From 354bb40e75d94466e91fe6960523612c9d17ccfb Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 2 Nov 2017 23:11:29 +0300 Subject: Add implementation --- COPYING | 37 + GPLv2 | 339 + INSTALL | 7 + README | 21 + README-DEV | 153 + README-GIT | 4 + README.orig | 56 + TODO | 1 + build/.gitignore | 1 + build/bootstrap.build | 40 + build/export.build | 10 + build/root.build | 24 + buildfile | 18 + manifest | 20 + mysql/atomic/gcc_atomic.h | 94 + mysql/atomic/gcc_sync.h | 106 + mysql/atomic/generic-msvc.h | 135 + mysql/atomic/solaris.h | 117 + mysql/base64.h | 61 + mysql/binary_log_types.h | 70 + mysql/buildfile | 254 + mysql/byte_order_generic_x86.h | 56 + mysql/config.h | 10 + mysql/config.h.cmake.orig | 452 + mysql/crypt_genhash_impl.h | 48 + mysql/decimal.h | 137 + mysql/errmsg.h | 113 + mysql/extra/yassl/COPYING | 340 + mysql/extra/yassl/FLOSS-EXCEPTIONS | 121 + mysql/extra/yassl/README | 786 + mysql/extra/yassl/include/buffer.hpp | 211 + mysql/extra/yassl/include/cert_wrapper.hpp | 137 + mysql/extra/yassl/include/crypto_wrapper.hpp | 428 + mysql/extra/yassl/include/factory.hpp | 101 + mysql/extra/yassl/include/handshake.hpp | 69 + mysql/extra/yassl/include/lock.hpp | 96 + mysql/extra/yassl/include/log.hpp | 55 + mysql/extra/yassl/include/openssl/crypto.h | 33 + mysql/extra/yassl/include/openssl/des.h | 20 + mysql/extra/yassl/include/openssl/des_old.h | 20 + mysql/extra/yassl/include/openssl/engine.h | 24 + mysql/extra/yassl/include/openssl/err.h | 27 + mysql/extra/yassl/include/openssl/evp.h | 29 + mysql/extra/yassl/include/openssl/hmac.h | 20 + mysql/extra/yassl/include/openssl/lhash.h | 21 + mysql/extra/yassl/include/openssl/md4.h | 20 + mysql/extra/yassl/include/openssl/md5.h | 23 + mysql/extra/yassl/include/openssl/objects.h | 20 + mysql/extra/yassl/include/openssl/opensslv.h | 31 + mysql/extra/yassl/include/openssl/pem.h | 20 + mysql/extra/yassl/include/openssl/pkcs12.h | 24 + mysql/extra/yassl/include/openssl/prefix_crypto.h | 20 + mysql/extra/yassl/include/openssl/prefix_ssl.h | 189 + mysql/extra/yassl/include/openssl/rand.h | 21 + mysql/extra/yassl/include/openssl/rsa.h | 29 + mysql/extra/yassl/include/openssl/sha.h | 20 + mysql/extra/yassl/include/openssl/ssl.h | 568 + .../extra/yassl/include/openssl/transport_types.h | 26 + mysql/extra/yassl/include/openssl/x509.h | 20 + mysql/extra/yassl/include/openssl/x509v3.h | 20 + mysql/extra/yassl/include/socket_wrapper.hpp | 104 + mysql/extra/yassl/include/timer.hpp | 40 + mysql/extra/yassl/include/yassl.hpp | 85 + mysql/extra/yassl/include/yassl_error.hpp | 88 + mysql/extra/yassl/include/yassl_imp.hpp | 748 + mysql/extra/yassl/include/yassl_int.hpp | 725 + mysql/extra/yassl/include/yassl_types.hpp | 540 + mysql/extra/yassl/src/buffer.cpp | 330 + mysql/extra/yassl/src/cert_wrapper.cpp | 408 + mysql/extra/yassl/src/crypto_wrapper.cpp | 1016 + mysql/extra/yassl/src/get_password.c | 218 + mysql/extra/yassl/src/handshake.cpp | 1190 + mysql/extra/yassl/src/lock.cpp | 87 + mysql/extra/yassl/src/log.cpp | 147 + mysql/extra/yassl/src/socket_wrapper.cpp | 238 + mysql/extra/yassl/src/ssl.cpp | 1883 + mysql/extra/yassl/src/timer.cpp | 80 + mysql/extra/yassl/src/yassl_error.cpp | 288 + mysql/extra/yassl/src/yassl_imp.cpp | 2642 + mysql/extra/yassl/src/yassl_int.cpp | 2826 + mysql/extra/yassl/taocrypt/COPYING | 340 + mysql/extra/yassl/taocrypt/README | 48 + mysql/extra/yassl/taocrypt/include/aes.hpp | 155 + mysql/extra/yassl/taocrypt/include/algebra.hpp | 226 + mysql/extra/yassl/taocrypt/include/arc4.hpp | 58 + mysql/extra/yassl/taocrypt/include/asn.hpp | 392 + mysql/extra/yassl/taocrypt/include/block.hpp | 202 + mysql/extra/yassl/taocrypt/include/blowfish.hpp | 88 + mysql/extra/yassl/taocrypt/include/coding.hpp | 91 + mysql/extra/yassl/taocrypt/include/des.hpp | 130 + mysql/extra/yassl/taocrypt/include/dh.hpp | 86 + mysql/extra/yassl/taocrypt/include/dsa.hpp | 126 + mysql/extra/yassl/taocrypt/include/error.hpp | 88 + mysql/extra/yassl/taocrypt/include/file.hpp | 130 + mysql/extra/yassl/taocrypt/include/hash.hpp | 110 + mysql/extra/yassl/taocrypt/include/hc128.hpp | 63 + mysql/extra/yassl/taocrypt/include/hmac.hpp | 138 + mysql/extra/yassl/taocrypt/include/integer.hpp | 332 + mysql/extra/yassl/taocrypt/include/kernelc.hpp | 34 + mysql/extra/yassl/taocrypt/include/md2.hpp | 64 + mysql/extra/yassl/taocrypt/include/md4.hpp | 62 + mysql/extra/yassl/taocrypt/include/md5.hpp | 70 + mysql/extra/yassl/taocrypt/include/misc.hpp | 888 + mysql/extra/yassl/taocrypt/include/modarith.hpp | 165 + mysql/extra/yassl/taocrypt/include/modes.hpp | 154 + mysql/extra/yassl/taocrypt/include/pwdbased.hpp | 91 + mysql/extra/yassl/taocrypt/include/rabbit.hpp | 65 + mysql/extra/yassl/taocrypt/include/random.hpp | 84 + mysql/extra/yassl/taocrypt/include/ripemd.hpp | 69 + mysql/extra/yassl/taocrypt/include/rsa.hpp | 250 + mysql/extra/yassl/taocrypt/include/runtime.hpp | 60 + mysql/extra/yassl/taocrypt/include/sha.hpp | 174 + mysql/extra/yassl/taocrypt/include/twofish.hpp | 94 + mysql/extra/yassl/taocrypt/include/type_traits.hpp | 77 + mysql/extra/yassl/taocrypt/include/types.hpp | 99 + mysql/extra/yassl/taocrypt/mySTL/algorithm.hpp | 108 + mysql/extra/yassl/taocrypt/mySTL/helpers.hpp | 153 + mysql/extra/yassl/taocrypt/mySTL/list.hpp | 367 + mysql/extra/yassl/taocrypt/mySTL/memory.hpp | 136 + mysql/extra/yassl/taocrypt/mySTL/memory_array.hpp | 135 + mysql/extra/yassl/taocrypt/mySTL/pair.hpp | 58 + mysql/extra/yassl/taocrypt/mySTL/stdexcept.hpp | 76 + mysql/extra/yassl/taocrypt/mySTL/vector.hpp | 153 + mysql/extra/yassl/taocrypt/src/aes.cpp | 1885 + mysql/extra/yassl/taocrypt/src/aestables.cpp | 36 + mysql/extra/yassl/taocrypt/src/algebra.cpp | 336 + mysql/extra/yassl/taocrypt/src/arc4.cpp | 243 + mysql/extra/yassl/taocrypt/src/asn.cpp | 1348 + mysql/extra/yassl/taocrypt/src/coding.cpp | 266 + mysql/extra/yassl/taocrypt/src/des.cpp | 778 + mysql/extra/yassl/taocrypt/src/dh.cpp | 103 + mysql/extra/yassl/taocrypt/src/dsa.cpp | 274 + mysql/extra/yassl/taocrypt/src/file.cpp | 115 + mysql/extra/yassl/taocrypt/src/hash.cpp | 191 + mysql/extra/yassl/taocrypt/src/hc128.cpp | 317 + mysql/extra/yassl/taocrypt/src/integer.cpp | 3894 ++ mysql/extra/yassl/taocrypt/src/md2.cpp | 125 + mysql/extra/yassl/taocrypt/src/md4.cpp | 157 + mysql/extra/yassl/taocrypt/src/md5.cpp | 506 + mysql/extra/yassl/taocrypt/src/misc.cpp | 297 + mysql/extra/yassl/taocrypt/src/rabbit.cpp | 255 + mysql/extra/yassl/taocrypt/src/random.cpp | 138 + mysql/extra/yassl/taocrypt/src/ripemd.cpp | 844 + mysql/extra/yassl/taocrypt/src/rsa.cpp | 215 + mysql/extra/yassl/taocrypt/src/sha.cpp | 1033 + mysql/hash.h | 125 + mysql/keycache.h | 156 + mysql/lf.h | 212 + mysql/libmysql/assert.c | 28 + mysql/libmysql/authentication_win/common.cpp | 510 + mysql/libmysql/authentication_win/common.h | 324 + mysql/libmysql/authentication_win/handshake.cpp | 288 + mysql/libmysql/authentication_win/handshake.h | 181 + .../authentication_win/handshake_client.cpp | 393 + mysql/libmysql/authentication_win/log_client.cpp | 65 + .../libmysql/authentication_win/plugin_client.cpp | 67 + mysql/libmysql/client_settings.h | 73 + mysql/libmysql/errmsg.c | 130 + mysql/libmysql/get_password.c | 205 + mysql/libmysql/libmysql.c | 5077 ++ mysql/libmysql/libmysql_exports_win32.def | 120 + mysql/libmysql/mysql_trace.c | 215 + mysql/libmysql/mysql_trace.h | 165 + mysql/little_endian.h | 93 + mysql/m_ctype.h | 806 + mysql/m_string.h | 341 + mysql/mutex_lock.h | 47 + mysql/my_aes.h | 137 + mysql/my_alloc.h | 78 + mysql/my_atomic.h | 76 + mysql/my_base.h | 647 + mysql/my_bit.h | 124 + mysql/my_bitmap.h | 144 + mysql/my_byteorder.h | 213 + mysql/my_command.h | 64 + mysql/my_compare.h | 127 + mysql/my_compiler.h | 178 + mysql/my_config.h | 348 + mysql/my_dbug.h | 245 + mysql/my_default.h | 55 + mysql/my_dir.h | 93 + mysql/my_getopt.h | 149 + mysql/my_global.h | 792 + mysql/my_icp.h | 48 + mysql/my_list.h | 45 + mysql/my_md5.h | 50 + mysql/my_md5_size.h | 27 + mysql/my_murmur3.h | 27 + mysql/my_rdtsc.h | 130 + mysql/my_rnd.h | 38 + mysql/my_sqlcommand.h | 179 + mysql/my_stacktrace.h | 114 + mysql/my_sys.h | 982 + mysql/my_thread.h | 192 + mysql/my_thread_local.h | 107 + mysql/my_time.h | 244 + mysql/my_timer.h | 75 + mysql/my_tree.h | 97 + mysql/my_uctype.h | 1484 + mysql/my_xml.h | 96 + mysql/myisampack.h | 234 + mysql/mysql.h | 728 + mysql/mysql/client_authentication.h | 28 + mysql/mysql/client_plugin.h | 202 + mysql/mysql/com_data.h | 125 + mysql/mysql/get_password.h | 36 + mysql/mysql/mysql_lex_string.h | 33 + mysql/mysql/plugin.h | 744 + mysql/mysql/plugin_auth_common.h | 143 + mysql/mysql/plugin_trace.h | 349 + mysql/mysql/psi/mysql_file.h | 1433 + mysql/mysql/psi/mysql_memory.h | 62 + mysql/mysql/psi/mysql_socket.h | 1255 + mysql/mysql/psi/mysql_stage.h | 198 + mysql/mysql/psi/mysql_table.h | 142 + mysql/mysql/psi/mysql_thread.h | 1323 + mysql/mysql/psi/psi.h | 2980 + mysql/mysql/psi/psi_base.h | 155 + mysql/mysql/psi/psi_memory.h | 155 + mysql/mysql/service_command.h | 436 + mysql/mysql/service_locking.h | 114 + mysql/mysql/service_my_plugin_log.h | 64 + mysql/mysql/service_my_snprintf.h | 101 + mysql/mysql/service_mysql_alloc.h | 81 + mysql/mysql/service_mysql_keyring.h | 62 + mysql/mysql/service_mysql_password_policy.h | 66 + mysql/mysql/service_mysql_string.h | 133 + mysql/mysql/service_parser.h | 286 + mysql/mysql/service_rpl_transaction_ctx.h | 81 + mysql/mysql/service_rpl_transaction_write_set.h | 80 + mysql/mysql/service_rules_table.h | 192 + mysql/mysql/service_security_context.h | 95 + mysql/mysql/service_srv_session.h | 173 + mysql/mysql/service_srv_session_info.h | 174 + mysql/mysql/service_thd_alloc.h | 132 + mysql/mysql/service_thd_wait.h | 114 + mysql/mysql/service_thread_scheduler.h | 85 + mysql/mysql/services.h | 59 + mysql/mysql_com.h | 614 + mysql/mysql_time.h | 55 + mysql/mysql_version.h | 7 + mysql/mysql_version.h.in.orig | 30 + mysql/mysqld_error.h | 1095 + mysql/mysys/array.c | 281 + mysql/mysys/base64.c | 464 + mysql/mysys/charset-def.c | 409 + mysql/mysys/charset.c | 968 + mysql/mysys/checksum.c | 35 + mysql/mysys/errors.c | 92 + mysql/mysys/hash.c | 812 + mysql/mysys/lf_alloc-pin.c | 470 + mysql/mysys/lf_dynarray.c | 208 + mysql/mysys/lf_hash.c | 722 + mysql/mysys/list.c | 114 + mysql/mysys/mf_arr_appstr.c | 62 + mysql/mysys/mf_cache.c | 105 + mysql/mysys/mf_dirname.c | 155 + mysql/mysys/mf_fn_ext.c | 54 + mysql/mysys/mf_format.c | 147 + mysql/mysys/mf_getdate.c | 73 + mysql/mysys/mf_iocache.c | 1733 + mysql/mysys/mf_iocache2.c | 514 + mysql/mysys/mf_keycache.c | 4051 ++ mysql/mysys/mf_keycaches.c | 363 + mysql/mysys/mf_loadpath.c | 72 + mysql/mysys/mf_pack.c | 409 + mysql/mysys/mf_path.c | 121 + mysql/mysys/mf_qsort.c | 205 + mysql/mysys/mf_qsort2.c | 20 + mysql/mysys/mf_radix.c | 59 + mysql/mysys/mf_same.c | 41 + mysql/mysys/mf_soundex.c | 105 + mysql/mysys/mf_tempfile.c | 140 + mysql/mysys/mf_unixpath.c | 36 + mysql/mysys/mf_wcomp.c | 89 + mysql/mysys/mulalloc.c | 64 + mysql/mysys/my_access.c | 268 + mysql/mysys/my_alloc.c | 557 + mysql/mysys/my_bit.c | 64 + mysql/mysys/my_bitmap.c | 672 + mysql/mysys/my_chmod.c | 102 + mysql/mysys/my_chsize.c | 106 + mysql/mysys/my_compare.c | 474 + mysql/mysys/my_compress.c | 267 + mysql/mysys/my_copy.c | 153 + mysql/mysys/my_create.c | 74 + mysql/mysys/my_delete.c | 133 + mysql/mysys/my_div.c | 38 + mysql/mysys/my_error.c | 477 + mysql/mysys/my_file.c | 144 + mysql/mysys/my_fopen.c | 379 + mysql/mysys/my_fstream.c | 186 + mysql/mysys/my_gethwaddr.c | 259 + mysql/mysys/my_getsystime.c | 122 + mysql/mysys/my_getwd.c | 162 + mysql/mysys/my_handler_errors.h | 114 + mysql/mysys/my_init.c | 564 + mysql/mysys/my_lib.c | 378 + mysql/mysys/my_lock.c | 221 + mysql/mysys/my_malloc.c | 325 + mysql/mysys/my_memmem.c | 84 + mysql/mysys/my_mess.c | 65 + mysql/mysys/my_mkdir.c | 48 + mysql/mysys/my_mmap.c | 89 + mysql/mysys/my_once.c | 120 + mysql/mysys/my_open.c | 194 + mysql/mysys/my_pread.c | 207 + mysql/mysys/my_rdtsc.c | 902 + mysql/mysys/my_read.c | 107 + mysql/mysys/my_redel.c | 132 + mysql/mysys/my_rename.c | 59 + mysql/mysys/my_seek.c | 111 + mysql/mysys/my_static.c | 143 + mysql/mysys/my_static.h | 41 + mysql/mysys/my_symlink.c | 208 + mysql/mysys/my_symlink2.c | 195 + mysql/mysys/my_sync.c | 195 + mysql/mysys/my_syslog.c | 287 + mysql/mysys/my_thr_init.c | 459 + mysql/mysys/my_thread.c | 185 + mysql/mysys/my_winerr.c | 130 + mysql/mysys/my_winfile.c | 682 + mysql/mysys/my_write.c | 129 + mysql/mysys/mysys_priv.h | 130 + mysql/mysys/posix_timers.c | 395 + mysql/mysys/psi_noop.c | 1040 + mysql/mysys/ptr_cmp.c | 55 + mysql/mysys/queues.c | 622 + mysql/mysys/sql_chars.c | 120 + mysql/mysys/stacktrace.c | 802 + mysql/mysys/string.c | 187 + mysql/mysys/thr_cond.c | 113 + mysql/mysys/thr_lock.c | 1522 + mysql/mysys/thr_mutex.c | 195 + mysql/mysys/thr_rwlock.c | 139 + mysql/mysys/tree.c | 760 + mysql/mysys/typelib.c | 388 + mysql/mysys_err.h | 95 + mysql/mysys_ssl/crypt_genhash_impl.cpp | 465 + mysql/mysys_ssl/mf_tempdir.cpp | 100 + mysql/mysys_ssl/my_aes.cpp | 59 + mysql/mysys_ssl/my_aes_impl.h | 31 + mysql/mysys_ssl/my_aes_yassl.cpp | 244 + mysql/mysys_ssl/my_default.cpp | 1523 + mysql/mysys_ssl/my_default_priv.h | 43 + mysql/mysys_ssl/my_getopt.cpp | 1615 + mysql/mysys_ssl/my_md5.cpp | 68 + mysql/mysys_ssl/my_murmur3.cpp | 134 + mysql/mysys_ssl/my_rnd.cpp | 115 + mysql/mysys_ssl/my_sha1.cpp | 141 + mysql/mysys_ssl/my_sha2.cpp | 68 + mysql/password.h | 34 + mysql/pfs_socket_provider.h | 71 + mysql/prealloced_array.h | 486 + mysql/probes_mysql.h | 29 + mysql/probes_mysql_nodtrace.h | 129 + mysql/queues.h | 93 + mysql/sha1.h | 38 + mysql/sha2.h | 70 + mysql/sql-common/client.c | 6241 ++ mysql/sql-common/client_authentication.cpp | 282 + mysql/sql-common/client_plugin.c | 592 + mysql/sql-common/my_time.c | 2022 + mysql/sql-common/pack.c | 140 + mysql/sql/atomic_class.h | 117 + mysql/sql/auth/password.c | 378 + mysql/sql/my_decimal.h | 538 + mysql/sql/mysqld.h | 979 + mysql/sql/net_serv.cpp | 1059 + mysql/sql/sql_alloc.h | 51 + mysql/sql/sql_cmd.h | 96 + mysql/sql/thr_malloc.h | 38 + mysql/sql_chars.h | 75 + mysql/sql_common.h | 206 + mysql/sql_string.h | 666 + mysql/strings/bchange.c | 35 + mysql/strings/ctype-big5.c | 6951 ++ mysql/strings/ctype-bin.c | 603 + mysql/strings/ctype-cp932.c | 34878 ++++++++++ mysql/strings/ctype-czech.c | 638 + mysql/strings/ctype-euc_kr.c | 10084 +++ mysql/strings/ctype-eucjpms.c | 67630 +++++++++++++++++++ mysql/strings/ctype-extra.c | 8773 +++ mysql/strings/ctype-gb18030.c | 22572 +++++++ mysql/strings/ctype-gb2312.c | 6486 ++ mysql/strings/ctype-gbk.c | 10884 +++ mysql/strings/ctype-latin1.c | 805 + mysql/strings/ctype-mb.c | 1502 + mysql/strings/ctype-simple.c | 1941 + mysql/strings/ctype-sjis.c | 34247 ++++++++++ mysql/strings/ctype-tis620.c | 990 + mysql/strings/ctype-uca.c | 26490 ++++++++ mysql/strings/ctype-ucs2.c | 3542 + mysql/strings/ctype-ujis.c | 67374 ++++++++++++++++++ mysql/strings/ctype-utf8.c | 8714 +++ mysql/strings/ctype-win1250ch.c | 715 + mysql/strings/ctype.c | 1104 + mysql/strings/decimal.c | 2640 + mysql/strings/dtoa.c | 2784 + mysql/strings/int2str.c | 155 + mysql/strings/is_prefix.c | 33 + mysql/strings/llstr.c | 41 + mysql/strings/longlong2str.c | 144 + mysql/strings/my_stpmov.c | 30 + mysql/strings/my_stpnmov.c | 33 + mysql/strings/my_strchr.c | 111 + mysql/strings/my_strtoll10.c | 236 + mysql/strings/my_vsnprintf.c | 683 + mysql/strings/str2int.c | 180 + mysql/strings/str_alloc.c | 40 + mysql/strings/strappend.c | 40 + mysql/strings/strcend.c | 36 + mysql/strings/strcont.c | 45 + mysql/strings/strend.c | 37 + mysql/strings/strfill.c | 35 + mysql/strings/strmake.c | 55 + mysql/strings/strxmov.c | 51 + mysql/strings/strxnmov.c | 64 + mysql/strings/t_ctype.h | 259 + mysql/strings/xml.c | 574 + mysql/thr_cond.h | 201 + mysql/thr_lock.h | 162 + mysql/thr_mutex.h | 227 + mysql/thr_rwlock.h | 214 + mysql/typelib.h | 54 + mysql/version.h | 0 mysql/version.h.in | 43 + mysql/vio/vio.c | 459 + mysql/vio/vio_priv.h | 67 + mysql/vio/viopipe.c | 117 + mysql/vio/vioshm.c | 226 + mysql/vio/viosocket.c | 1140 + mysql/vio/viossl.c | 511 + mysql/vio/viosslfactories.c | 729 + mysql/violite.h | 338 + mysql/zlib/README | 125 + mysql/zlib/README.MySQL | 16 + mysql/zlib/adler32.c | 149 + mysql/zlib/compress.c | 79 + mysql/zlib/crc32.c | 423 + mysql/zlib/crc32.h | 441 + mysql/zlib/deflate.c | 1736 + mysql/zlib/deflate.h | 331 + mysql/zlib/gzio.c | 1031 + mysql/zlib/infback.c | 623 + mysql/zlib/inffast.c | 318 + mysql/zlib/inffast.h | 11 + mysql/zlib/inffixed.h | 94 + mysql/zlib/inflate.c | 1380 + mysql/zlib/inflate.h | 115 + mysql/zlib/inftrees.c | 329 + mysql/zlib/inftrees.h | 55 + mysql/zlib/trees.c | 1219 + mysql/zlib/trees.h | 128 + mysql/zlib/uncompr.c | 61 + mysql/zlib/zconf.h | 328 + mysql/zlib/zlib.h | 1357 + mysql/zlib/zutil.c | 281 + mysql/zlib/zutil.h | 199 + tests/.gitignore | 3 + tests/basic/buildfile | 7 + tests/basic/driver.c | 23 + tests/basic/testscript | 5 + tests/build/.gitignore | 1 + tests/build/bootstrap.build | 9 + tests/build/root.build | 21 + tests/buildfile | 5 + 467 files changed, 461639 insertions(+) create mode 100644 COPYING create mode 100644 GPLv2 create mode 100644 INSTALL create mode 100644 README create mode 100644 README-DEV create mode 100644 README-GIT create mode 100644 README.orig create mode 100644 TODO create mode 100644 build/.gitignore create mode 100644 build/bootstrap.build create mode 100644 build/export.build create mode 100644 build/root.build create mode 100644 buildfile create mode 100644 manifest create mode 100644 mysql/atomic/gcc_atomic.h create mode 100644 mysql/atomic/gcc_sync.h create mode 100644 mysql/atomic/generic-msvc.h create mode 100644 mysql/atomic/solaris.h create mode 100644 mysql/base64.h create mode 100644 mysql/binary_log_types.h create mode 100644 mysql/buildfile create mode 100644 mysql/byte_order_generic_x86.h create mode 100644 mysql/config.h create mode 100644 mysql/config.h.cmake.orig create mode 100644 mysql/crypt_genhash_impl.h create mode 100644 mysql/decimal.h create mode 100644 mysql/errmsg.h create mode 100644 mysql/extra/yassl/COPYING create mode 100644 mysql/extra/yassl/FLOSS-EXCEPTIONS create mode 100644 mysql/extra/yassl/README create mode 100644 mysql/extra/yassl/include/buffer.hpp create mode 100644 mysql/extra/yassl/include/cert_wrapper.hpp create mode 100644 mysql/extra/yassl/include/crypto_wrapper.hpp create mode 100644 mysql/extra/yassl/include/factory.hpp create mode 100644 mysql/extra/yassl/include/handshake.hpp create mode 100644 mysql/extra/yassl/include/lock.hpp create mode 100644 mysql/extra/yassl/include/log.hpp create mode 100644 mysql/extra/yassl/include/openssl/crypto.h create mode 100644 mysql/extra/yassl/include/openssl/des.h create mode 100644 mysql/extra/yassl/include/openssl/des_old.h create mode 100644 mysql/extra/yassl/include/openssl/engine.h create mode 100644 mysql/extra/yassl/include/openssl/err.h create mode 100644 mysql/extra/yassl/include/openssl/evp.h create mode 100644 mysql/extra/yassl/include/openssl/hmac.h create mode 100644 mysql/extra/yassl/include/openssl/lhash.h create mode 100644 mysql/extra/yassl/include/openssl/md4.h create mode 100644 mysql/extra/yassl/include/openssl/md5.h create mode 100644 mysql/extra/yassl/include/openssl/objects.h create mode 100644 mysql/extra/yassl/include/openssl/opensslv.h create mode 100644 mysql/extra/yassl/include/openssl/pem.h create mode 100644 mysql/extra/yassl/include/openssl/pkcs12.h create mode 100644 mysql/extra/yassl/include/openssl/prefix_crypto.h create mode 100644 mysql/extra/yassl/include/openssl/prefix_ssl.h create mode 100644 mysql/extra/yassl/include/openssl/rand.h create mode 100644 mysql/extra/yassl/include/openssl/rsa.h create mode 100644 mysql/extra/yassl/include/openssl/sha.h create mode 100644 mysql/extra/yassl/include/openssl/ssl.h create mode 100644 mysql/extra/yassl/include/openssl/transport_types.h create mode 100644 mysql/extra/yassl/include/openssl/x509.h create mode 100644 mysql/extra/yassl/include/openssl/x509v3.h create mode 100644 mysql/extra/yassl/include/socket_wrapper.hpp create mode 100644 mysql/extra/yassl/include/timer.hpp create mode 100644 mysql/extra/yassl/include/yassl.hpp create mode 100644 mysql/extra/yassl/include/yassl_error.hpp create mode 100644 mysql/extra/yassl/include/yassl_imp.hpp create mode 100644 mysql/extra/yassl/include/yassl_int.hpp create mode 100644 mysql/extra/yassl/include/yassl_types.hpp create mode 100644 mysql/extra/yassl/src/buffer.cpp create mode 100644 mysql/extra/yassl/src/cert_wrapper.cpp create mode 100644 mysql/extra/yassl/src/crypto_wrapper.cpp create mode 100644 mysql/extra/yassl/src/get_password.c create mode 100644 mysql/extra/yassl/src/handshake.cpp create mode 100644 mysql/extra/yassl/src/lock.cpp create mode 100644 mysql/extra/yassl/src/log.cpp create mode 100644 mysql/extra/yassl/src/socket_wrapper.cpp create mode 100644 mysql/extra/yassl/src/ssl.cpp create mode 100644 mysql/extra/yassl/src/timer.cpp create mode 100644 mysql/extra/yassl/src/yassl_error.cpp create mode 100644 mysql/extra/yassl/src/yassl_imp.cpp create mode 100644 mysql/extra/yassl/src/yassl_int.cpp create mode 100644 mysql/extra/yassl/taocrypt/COPYING create mode 100644 mysql/extra/yassl/taocrypt/README create mode 100644 mysql/extra/yassl/taocrypt/include/aes.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/algebra.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/arc4.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/asn.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/block.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/blowfish.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/coding.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/des.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/dh.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/dsa.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/error.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/file.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/hash.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/hc128.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/hmac.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/integer.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/kernelc.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/md2.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/md4.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/md5.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/misc.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/modarith.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/modes.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/pwdbased.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/rabbit.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/random.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/ripemd.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/rsa.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/runtime.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/sha.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/twofish.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/type_traits.hpp create mode 100644 mysql/extra/yassl/taocrypt/include/types.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/algorithm.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/helpers.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/list.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/memory.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/memory_array.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/pair.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/stdexcept.hpp create mode 100644 mysql/extra/yassl/taocrypt/mySTL/vector.hpp create mode 100644 mysql/extra/yassl/taocrypt/src/aes.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/aestables.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/algebra.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/arc4.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/asn.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/coding.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/des.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/dh.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/dsa.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/file.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/hash.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/hc128.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/integer.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/md2.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/md4.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/md5.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/misc.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/rabbit.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/random.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/ripemd.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/rsa.cpp create mode 100644 mysql/extra/yassl/taocrypt/src/sha.cpp create mode 100644 mysql/hash.h create mode 100644 mysql/keycache.h create mode 100644 mysql/lf.h create mode 100644 mysql/libmysql/assert.c create mode 100644 mysql/libmysql/authentication_win/common.cpp create mode 100644 mysql/libmysql/authentication_win/common.h create mode 100644 mysql/libmysql/authentication_win/handshake.cpp create mode 100644 mysql/libmysql/authentication_win/handshake.h create mode 100644 mysql/libmysql/authentication_win/handshake_client.cpp create mode 100644 mysql/libmysql/authentication_win/log_client.cpp create mode 100644 mysql/libmysql/authentication_win/plugin_client.cpp create mode 100644 mysql/libmysql/client_settings.h create mode 100644 mysql/libmysql/errmsg.c create mode 100644 mysql/libmysql/get_password.c create mode 100644 mysql/libmysql/libmysql.c create mode 100644 mysql/libmysql/libmysql_exports_win32.def create mode 100644 mysql/libmysql/mysql_trace.c create mode 100644 mysql/libmysql/mysql_trace.h create mode 100644 mysql/little_endian.h create mode 100644 mysql/m_ctype.h create mode 100644 mysql/m_string.h create mode 100644 mysql/mutex_lock.h create mode 100644 mysql/my_aes.h create mode 100644 mysql/my_alloc.h create mode 100644 mysql/my_atomic.h create mode 100644 mysql/my_base.h create mode 100644 mysql/my_bit.h create mode 100644 mysql/my_bitmap.h create mode 100644 mysql/my_byteorder.h create mode 100644 mysql/my_command.h create mode 100644 mysql/my_compare.h create mode 100644 mysql/my_compiler.h create mode 100644 mysql/my_config.h create mode 100644 mysql/my_dbug.h create mode 100644 mysql/my_default.h create mode 100644 mysql/my_dir.h create mode 100644 mysql/my_getopt.h create mode 100644 mysql/my_global.h create mode 100644 mysql/my_icp.h create mode 100644 mysql/my_list.h create mode 100644 mysql/my_md5.h create mode 100644 mysql/my_md5_size.h create mode 100644 mysql/my_murmur3.h create mode 100644 mysql/my_rdtsc.h create mode 100644 mysql/my_rnd.h create mode 100644 mysql/my_sqlcommand.h create mode 100644 mysql/my_stacktrace.h create mode 100644 mysql/my_sys.h create mode 100644 mysql/my_thread.h create mode 100644 mysql/my_thread_local.h create mode 100644 mysql/my_time.h create mode 100644 mysql/my_timer.h create mode 100644 mysql/my_tree.h create mode 100644 mysql/my_uctype.h create mode 100644 mysql/my_xml.h create mode 100644 mysql/myisampack.h create mode 100644 mysql/mysql.h create mode 100644 mysql/mysql/client_authentication.h create mode 100644 mysql/mysql/client_plugin.h create mode 100644 mysql/mysql/com_data.h create mode 100644 mysql/mysql/get_password.h create mode 100644 mysql/mysql/mysql_lex_string.h create mode 100644 mysql/mysql/plugin.h create mode 100644 mysql/mysql/plugin_auth_common.h create mode 100644 mysql/mysql/plugin_trace.h create mode 100644 mysql/mysql/psi/mysql_file.h create mode 100644 mysql/mysql/psi/mysql_memory.h create mode 100644 mysql/mysql/psi/mysql_socket.h create mode 100644 mysql/mysql/psi/mysql_stage.h create mode 100644 mysql/mysql/psi/mysql_table.h create mode 100644 mysql/mysql/psi/mysql_thread.h create mode 100644 mysql/mysql/psi/psi.h create mode 100644 mysql/mysql/psi/psi_base.h create mode 100644 mysql/mysql/psi/psi_memory.h create mode 100644 mysql/mysql/service_command.h create mode 100644 mysql/mysql/service_locking.h create mode 100644 mysql/mysql/service_my_plugin_log.h create mode 100644 mysql/mysql/service_my_snprintf.h create mode 100644 mysql/mysql/service_mysql_alloc.h create mode 100644 mysql/mysql/service_mysql_keyring.h create mode 100644 mysql/mysql/service_mysql_password_policy.h create mode 100644 mysql/mysql/service_mysql_string.h create mode 100644 mysql/mysql/service_parser.h create mode 100644 mysql/mysql/service_rpl_transaction_ctx.h create mode 100644 mysql/mysql/service_rpl_transaction_write_set.h create mode 100644 mysql/mysql/service_rules_table.h create mode 100644 mysql/mysql/service_security_context.h create mode 100644 mysql/mysql/service_srv_session.h create mode 100644 mysql/mysql/service_srv_session_info.h create mode 100644 mysql/mysql/service_thd_alloc.h create mode 100644 mysql/mysql/service_thd_wait.h create mode 100644 mysql/mysql/service_thread_scheduler.h create mode 100644 mysql/mysql/services.h create mode 100644 mysql/mysql_com.h create mode 100644 mysql/mysql_time.h create mode 100644 mysql/mysql_version.h create mode 100644 mysql/mysql_version.h.in.orig create mode 100644 mysql/mysqld_error.h create mode 100644 mysql/mysys/array.c create mode 100644 mysql/mysys/base64.c create mode 100644 mysql/mysys/charset-def.c create mode 100644 mysql/mysys/charset.c create mode 100644 mysql/mysys/checksum.c create mode 100644 mysql/mysys/errors.c create mode 100644 mysql/mysys/hash.c create mode 100644 mysql/mysys/lf_alloc-pin.c create mode 100644 mysql/mysys/lf_dynarray.c create mode 100644 mysql/mysys/lf_hash.c create mode 100644 mysql/mysys/list.c create mode 100644 mysql/mysys/mf_arr_appstr.c create mode 100644 mysql/mysys/mf_cache.c create mode 100644 mysql/mysys/mf_dirname.c create mode 100644 mysql/mysys/mf_fn_ext.c create mode 100644 mysql/mysys/mf_format.c create mode 100644 mysql/mysys/mf_getdate.c create mode 100644 mysql/mysys/mf_iocache.c create mode 100644 mysql/mysys/mf_iocache2.c create mode 100644 mysql/mysys/mf_keycache.c create mode 100644 mysql/mysys/mf_keycaches.c create mode 100644 mysql/mysys/mf_loadpath.c create mode 100644 mysql/mysys/mf_pack.c create mode 100644 mysql/mysys/mf_path.c create mode 100644 mysql/mysys/mf_qsort.c create mode 100644 mysql/mysys/mf_qsort2.c create mode 100644 mysql/mysys/mf_radix.c create mode 100644 mysql/mysys/mf_same.c create mode 100644 mysql/mysys/mf_soundex.c create mode 100644 mysql/mysys/mf_tempfile.c create mode 100644 mysql/mysys/mf_unixpath.c create mode 100644 mysql/mysys/mf_wcomp.c create mode 100644 mysql/mysys/mulalloc.c create mode 100644 mysql/mysys/my_access.c create mode 100644 mysql/mysys/my_alloc.c create mode 100644 mysql/mysys/my_bit.c create mode 100644 mysql/mysys/my_bitmap.c create mode 100644 mysql/mysys/my_chmod.c create mode 100644 mysql/mysys/my_chsize.c create mode 100644 mysql/mysys/my_compare.c create mode 100644 mysql/mysys/my_compress.c create mode 100644 mysql/mysys/my_copy.c create mode 100644 mysql/mysys/my_create.c create mode 100644 mysql/mysys/my_delete.c create mode 100644 mysql/mysys/my_div.c create mode 100644 mysql/mysys/my_error.c create mode 100644 mysql/mysys/my_file.c create mode 100644 mysql/mysys/my_fopen.c create mode 100644 mysql/mysys/my_fstream.c create mode 100644 mysql/mysys/my_gethwaddr.c create mode 100644 mysql/mysys/my_getsystime.c create mode 100644 mysql/mysys/my_getwd.c create mode 100644 mysql/mysys/my_handler_errors.h create mode 100644 mysql/mysys/my_init.c create mode 100644 mysql/mysys/my_lib.c create mode 100644 mysql/mysys/my_lock.c create mode 100644 mysql/mysys/my_malloc.c create mode 100644 mysql/mysys/my_memmem.c create mode 100644 mysql/mysys/my_mess.c create mode 100644 mysql/mysys/my_mkdir.c create mode 100644 mysql/mysys/my_mmap.c create mode 100644 mysql/mysys/my_once.c create mode 100644 mysql/mysys/my_open.c create mode 100644 mysql/mysys/my_pread.c create mode 100644 mysql/mysys/my_rdtsc.c create mode 100644 mysql/mysys/my_read.c create mode 100644 mysql/mysys/my_redel.c create mode 100644 mysql/mysys/my_rename.c create mode 100644 mysql/mysys/my_seek.c create mode 100644 mysql/mysys/my_static.c create mode 100644 mysql/mysys/my_static.h create mode 100644 mysql/mysys/my_symlink.c create mode 100644 mysql/mysys/my_symlink2.c create mode 100644 mysql/mysys/my_sync.c create mode 100644 mysql/mysys/my_syslog.c create mode 100644 mysql/mysys/my_thr_init.c create mode 100644 mysql/mysys/my_thread.c create mode 100644 mysql/mysys/my_winerr.c create mode 100644 mysql/mysys/my_winfile.c create mode 100644 mysql/mysys/my_write.c create mode 100644 mysql/mysys/mysys_priv.h create mode 100644 mysql/mysys/posix_timers.c create mode 100644 mysql/mysys/psi_noop.c create mode 100644 mysql/mysys/ptr_cmp.c create mode 100644 mysql/mysys/queues.c create mode 100644 mysql/mysys/sql_chars.c create mode 100644 mysql/mysys/stacktrace.c create mode 100644 mysql/mysys/string.c create mode 100644 mysql/mysys/thr_cond.c create mode 100644 mysql/mysys/thr_lock.c create mode 100644 mysql/mysys/thr_mutex.c create mode 100644 mysql/mysys/thr_rwlock.c create mode 100644 mysql/mysys/tree.c create mode 100644 mysql/mysys/typelib.c create mode 100644 mysql/mysys_err.h create mode 100644 mysql/mysys_ssl/crypt_genhash_impl.cpp create mode 100644 mysql/mysys_ssl/mf_tempdir.cpp create mode 100644 mysql/mysys_ssl/my_aes.cpp create mode 100644 mysql/mysys_ssl/my_aes_impl.h create mode 100644 mysql/mysys_ssl/my_aes_yassl.cpp create mode 100644 mysql/mysys_ssl/my_default.cpp create mode 100644 mysql/mysys_ssl/my_default_priv.h create mode 100644 mysql/mysys_ssl/my_getopt.cpp create mode 100644 mysql/mysys_ssl/my_md5.cpp create mode 100644 mysql/mysys_ssl/my_murmur3.cpp create mode 100644 mysql/mysys_ssl/my_rnd.cpp create mode 100644 mysql/mysys_ssl/my_sha1.cpp create mode 100644 mysql/mysys_ssl/my_sha2.cpp create mode 100644 mysql/password.h create mode 100644 mysql/pfs_socket_provider.h create mode 100644 mysql/prealloced_array.h create mode 100644 mysql/probes_mysql.h create mode 100644 mysql/probes_mysql_nodtrace.h create mode 100644 mysql/queues.h create mode 100644 mysql/sha1.h create mode 100644 mysql/sha2.h create mode 100644 mysql/sql-common/client.c create mode 100644 mysql/sql-common/client_authentication.cpp create mode 100644 mysql/sql-common/client_plugin.c create mode 100644 mysql/sql-common/my_time.c create mode 100644 mysql/sql-common/pack.c create mode 100644 mysql/sql/atomic_class.h create mode 100644 mysql/sql/auth/password.c create mode 100644 mysql/sql/my_decimal.h create mode 100644 mysql/sql/mysqld.h create mode 100644 mysql/sql/net_serv.cpp create mode 100644 mysql/sql/sql_alloc.h create mode 100644 mysql/sql/sql_cmd.h create mode 100644 mysql/sql/thr_malloc.h create mode 100644 mysql/sql_chars.h create mode 100644 mysql/sql_common.h create mode 100644 mysql/sql_string.h create mode 100644 mysql/strings/bchange.c create mode 100644 mysql/strings/ctype-big5.c create mode 100644 mysql/strings/ctype-bin.c create mode 100644 mysql/strings/ctype-cp932.c create mode 100644 mysql/strings/ctype-czech.c create mode 100644 mysql/strings/ctype-euc_kr.c create mode 100644 mysql/strings/ctype-eucjpms.c create mode 100644 mysql/strings/ctype-extra.c create mode 100644 mysql/strings/ctype-gb18030.c create mode 100644 mysql/strings/ctype-gb2312.c create mode 100644 mysql/strings/ctype-gbk.c create mode 100644 mysql/strings/ctype-latin1.c create mode 100644 mysql/strings/ctype-mb.c create mode 100644 mysql/strings/ctype-simple.c create mode 100644 mysql/strings/ctype-sjis.c create mode 100644 mysql/strings/ctype-tis620.c create mode 100644 mysql/strings/ctype-uca.c create mode 100644 mysql/strings/ctype-ucs2.c create mode 100644 mysql/strings/ctype-ujis.c create mode 100644 mysql/strings/ctype-utf8.c create mode 100644 mysql/strings/ctype-win1250ch.c create mode 100644 mysql/strings/ctype.c create mode 100644 mysql/strings/decimal.c create mode 100644 mysql/strings/dtoa.c create mode 100644 mysql/strings/int2str.c create mode 100644 mysql/strings/is_prefix.c create mode 100644 mysql/strings/llstr.c create mode 100644 mysql/strings/longlong2str.c create mode 100644 mysql/strings/my_stpmov.c create mode 100644 mysql/strings/my_stpnmov.c create mode 100644 mysql/strings/my_strchr.c create mode 100644 mysql/strings/my_strtoll10.c create mode 100644 mysql/strings/my_vsnprintf.c create mode 100644 mysql/strings/str2int.c create mode 100644 mysql/strings/str_alloc.c create mode 100644 mysql/strings/strappend.c create mode 100644 mysql/strings/strcend.c create mode 100644 mysql/strings/strcont.c create mode 100644 mysql/strings/strend.c create mode 100644 mysql/strings/strfill.c create mode 100644 mysql/strings/strmake.c create mode 100644 mysql/strings/strxmov.c create mode 100644 mysql/strings/strxnmov.c create mode 100644 mysql/strings/t_ctype.h create mode 100644 mysql/strings/xml.c create mode 100644 mysql/thr_cond.h create mode 100644 mysql/thr_lock.h create mode 100644 mysql/thr_mutex.h create mode 100644 mysql/thr_rwlock.h create mode 100644 mysql/typelib.h create mode 100644 mysql/version.h create mode 100644 mysql/version.h.in create mode 100644 mysql/vio/vio.c create mode 100644 mysql/vio/vio_priv.h create mode 100644 mysql/vio/viopipe.c create mode 100644 mysql/vio/vioshm.c create mode 100644 mysql/vio/viosocket.c create mode 100644 mysql/vio/viossl.c create mode 100644 mysql/vio/viosslfactories.c create mode 100644 mysql/violite.h create mode 100644 mysql/zlib/README create mode 100644 mysql/zlib/README.MySQL create mode 100644 mysql/zlib/adler32.c create mode 100644 mysql/zlib/compress.c create mode 100644 mysql/zlib/crc32.c create mode 100644 mysql/zlib/crc32.h create mode 100644 mysql/zlib/deflate.c create mode 100644 mysql/zlib/deflate.h create mode 100644 mysql/zlib/gzio.c create mode 100644 mysql/zlib/infback.c create mode 100644 mysql/zlib/inffast.c create mode 100644 mysql/zlib/inffast.h create mode 100644 mysql/zlib/inffixed.h create mode 100644 mysql/zlib/inflate.c create mode 100644 mysql/zlib/inflate.h create mode 100644 mysql/zlib/inftrees.c create mode 100644 mysql/zlib/inftrees.h create mode 100644 mysql/zlib/trees.c create mode 100644 mysql/zlib/trees.h create mode 100644 mysql/zlib/uncompr.c create mode 100644 mysql/zlib/zconf.h create mode 100644 mysql/zlib/zlib.h create mode 100644 mysql/zlib/zutil.c create mode 100644 mysql/zlib/zutil.h create mode 100644 tests/.gitignore create mode 100644 tests/basic/buildfile create mode 100644 tests/basic/driver.c create mode 100644 tests/basic/testscript create mode 100644 tests/build/.gitignore create mode 100644 tests/build/bootstrap.build create mode 100644 tests/build/root.build create mode 100644 tests/buildfile diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..ba60367 --- /dev/null +++ b/COPYING @@ -0,0 +1,37 @@ +MySQL Server 5.7 + +This is a release of MySQL, a dual-license SQL database server. +For the avoidance of doubt, this particular copy of the software +is released under the version 2 of the GNU General Public License. +MySQL is brought to you by Oracle. + +Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + +License information can be found in the COPYING file. + +MySQL FOSS License Exception +We want free and open source software applications under certain +licenses to be able to use specified GPL-licensed MySQL client +libraries despite the fact that not all such FOSS licenses are +compatible with version 2 of the GNU General Public License. +Therefore there are special exceptions to the terms and conditions +of the GPLv2 as applied to these client libraries, which are +identified and described in more detail in the FOSS License +Exception at +. + +This distribution may include materials developed by third +parties. For license and attribution notices for these +materials, please refer to the documentation that accompanies +this distribution (see the "Licenses for Third-Party Components" +appendix) or view the online documentation at +. + +GPLv2 Disclaimer +For the avoidance of doubt, except that if any license choice +other than GPL or LGPL is available it will apply instead, +Oracle elects to use only the General Public License version 2 +(GPLv2) at this time for any software where a choice of GPL +license versions is made available with the language indicating +that GPLv2 or any later version may be used, or where a choice +of which version of the GPL is applied is otherwise unspecified. diff --git a/GPLv2 b/GPLv2 new file mode 100644 index 0000000..d511905 --- /dev/null +++ b/GPLv2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..0711405 --- /dev/null +++ b/INSTALL @@ -0,0 +1,7 @@ +The aim of this package is to make reading the INSTALL file unnecessary. So +next time try running: + +$ bpkg build libmysqlclient + +But if you don't want to use the package manager, then you can also build this +package manually using the standard build2 build system. diff --git a/README b/README new file mode 100644 index 0000000..f7f87c5 --- /dev/null +++ b/README @@ -0,0 +1,21 @@ +MySQL is a relational SQL database management system with libmysqlclient being +its C client library. Applications can use this library to pass queries to +MySQL database servers and to receive the results of those queries using the C +programming language. For more information see: + +https://www.mysql.com + +This package contains the original libmysqlclient library source code overlaid +with the build2-based build system and packaged for the build2 package manager +(bpkg). + +See the INSTALL file for the prerequisites and installation instructions. + +Send questions, bug reports, or any other feedback about the library itself to +the MySQL mailing lists. Send build system and packaging-related feedback to +the packaging@build2.org mailing list (see https://lists.build2.org for posting +guidelines, etc). + +The packaging of libmysqlclient for build2 is tracked in a Git repository at: + +https://git.build2.org/cgit/packaging/mysql/ diff --git a/README-DEV b/README-DEV new file mode 100644 index 0000000..f35edbf --- /dev/null +++ b/README-DEV @@ -0,0 +1,153 @@ +This document describes how libmysqlclient was packaged for build2. In +particular, this understanding will be useful when upgrading to a new upstream +version. + +The original libmysqlclient library is packaged together with other libraries, +the MySQL server, and client utilities. The library source files are spread +across several top-level subdirectories. These subdirectories also contain the +library-irrelevant files (which we skip) along with examples and tests. The +reasonable approach for defining the required source files is to exclude +everything you have doubts about and rely on the linker reporting unresolved +symbols. We balance between keeping the upstream package directory structure +and making sure that the library can be properly imported into a build2 +projects. Below are the packaging steps in more detail. + +1. Copy include/mysql_version.h.in to mysql/version.h.in, and create + mysql/mysql_version.h that includes . + +2. Copy config.h.cmake to mysql/config.h.cmake.orig, and use it for creating + mysql/my_config.h manually, defining/undefining only those macros that are + used in the library source code (see below). Also create mysql/config.h + that just includes . + + Note that some macro values can not be easily determined at the + preprocessing time. We define them based on the supported platform tests + and add mysql/libmysql/assert.c, containing compile-time assertions for + the macros in question. + + Also note that some of the macro values depend on the project + configuration. We add such macro definitions into the mysql/version.h.in + and include into mysql/my_config.h. We could place them + into a separate header template file, but probably there is already enough + config and version headers. + +3. Copy libbinlogevents/export/binary_log_types.h to mysql/. + +4. Part of the upstream package library headers are located under the include/ + subdirectory. We will copy it recursively to mysql/, but only those headers + that are required by the library source code. We start from an empty mysql/ + and add the headers that can't be found by the preprocessor. Note that you + need to be careful not to pickup system-installed headers (see below). + +5. Recursively copy source files from zlib/, strings/, mysys/, mysys_ssl/, + extra/yassl/, vio/, sql/, sql-common/ and libmysql/ to mysql/, preserving + the original directory structure, except files not required for the library + compilation/linkage (see above). Rename .cc files to .cpp afterwards, using + the following command (upstream uses a mixture of extensions which we just + not going to bother handling): + + $ for f in `find . -name '*.cc'`; do mv "$f" "${f%.cc}.cpp"; done + + Copy the READMEs and licenses for the bundled libraries as well. + +6. Copy client/get_password.c to mysql/extra/yassl/src/. + +7. Copy upstream package compile-time auto-generated include/mysqld_error.h + to mysql/. It is generated from sql/share/errmsg-utf8.txt by the pre-built + comp_err utility. The utility also produces some other headers (which we + don't use) and localized errmsg.sys files that are not installed with the + library. Could we not copy it from a binary or distribution or from + Debian/Fedora package? + +8. Create mysql/libmysql/libmysql_exports_win32.def to contain a list of the + exported names. For that purpose grep through libmysql/CMakeLists.txt to + see how the .def file is generated for Windows. The corresponding code + normally looks like: + + MERGE_LIBRARIES(libmysql SHARED ${LIBS} + EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} + COMPONENT SharedLibraries) + + If that's the case, collect names that get appended to the + CLIENT_API_FUNCTIONS and CLIENT_API_FUNCTIONS_UNDOCUMENTED variables. + +9. Copy README to COPYING, and truncate it to contain only the licensing + information. + +10. Copy COPYING to GPLv2. + +When merging libmysqlclient build2 package with a new version of the upstream +package make sure that all the preprocessor include directives reference the +packaged header files, rather than MariaDB or MySQL headers that are installed +into the system. It's easy to miss some headers in the package if MariaDB or +MySQL development package is installed on the host. We also need to check if +the bundled library headers are picked up. To verify the correctness you can +build the merged project, concatenate the produced .d files, sort the resulting +file removing duplicates and edit the result, leaving only the system headers. +Afterwards grep through the remained headers for some patterns: + +$ cat `find . -name '*.d'` | sort -u >headers +$ emacs headers # Edit, leaving system headers only. +$ fgrep -e 'mysql' -e 'mariadb' -e 'openssl' -e 'zlib' headers + + +$ for m in `cat mysql/config.h.cmake.orig | sed -n 's/.*#\s*\(define\|cmakedefine\)\s\{1,\}\([_A-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\2/p' | sort -u`; do + if grep -q -e "\b$m\b" `find . -name '*.h' -a ! -name 'my_config.h' -a ! -name 'config.h' -o -name '*.c'`; then + echo "$m" + fi + done >used-macros1 + +$ cat mysql/my_config.h | + sed -n 's/#\s*\(define\|undef\)\s\{1,\}\([_A-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\2/p' | + sort -u >defined-macros + +$ diff defined-macros used-macros + +Also make sure that the macros set in mysql/my_config.h is still up to date. +For that purpose obtain the macros that are used in the new source base, then +obtain the macros (un)defined in the current mysql/my_config.h and compare the +sets. That can be achieved running the following commands in the build2 project +root directory: + +$ for m in `cat mysql/config.h.cmake.orig | sed -n 's/.*#\s*\(define\|cmakedefine\)\s\{1,\}\([_a-zA-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\2/p' | sort -u`; do + if grep -q -e "\b$m\b" `find . -name '*.h' -a ! -name 'my_config.h' -a ! -name 'config.h' -o -name '*.c'`; then + echo "$m" + fi + done >used-macros + +$ cat mysql/my_config.h | + sed -n 's/#\s*\(define\|undef\)\s\{1,\}\([_a-zA-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\2/p' | + sort -u >defined-macros + +diff defined-macros used-macros + +To obtain the pre-defined macros for gcc and clang use following commands: + +$ gcc -dM -E - < /dev/null +$ clang -dM -E - < /dev/null + +Note that some macro definitions are passed to the preprocessor via the -D +command line options. Such macro sets may be specific for source file +subdirectories. It makes sense to check that the sets used for the build2 +package still match the ones for the new upstream package. For that purpose you +can grep the old and new upstream package CMakeList.txt files for +ADD_DEFINITIONS() directives and review the changes. If needed, you may also +run cmake for the upstream project and view the flags.make files created for +the corresponding source directories. Or, as a last resort, you can see the +actual compiler and linker command lines running make utility with VERBOSE=1 +option. For VC, you need to set output verbosity to Diagnostics level at the +'Tools/Options/Projects and Solutions\Build and Run' dialog tab, change the +current directory to the project build directory in CMD console, and run the +following command: + +> devenv MySQL.sln /build >build.log + +It also makes sense to check for changes in compiler and linker flags. You may +grep CMakeList.txt files for the appropriate directives, or you may compile the +upstream project in the verbose mode on the platform of interest. + +To configure the upstream package for the build use the commands like this: + +$ mkdir out +$ cd out +$ cmake -DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost -DWITHOUT_SERVER=ON .. diff --git a/README-GIT b/README-GIT new file mode 100644 index 0000000..9ae3e5c --- /dev/null +++ b/README-GIT @@ -0,0 +1,4 @@ +The checked out mysql/version.h will be overwritten during the build process +but these changes should be ignored. To do this automatically, run: + +git update-index --assume-unchanged mysql/version.h diff --git a/README.orig b/README.orig new file mode 100644 index 0000000..d48441b --- /dev/null +++ b/README.orig @@ -0,0 +1,56 @@ +MySQL Server 5.7 + +This is a release of MySQL, a dual-license SQL database server. +For the avoidance of doubt, this particular copy of the software +is released under the version 2 of the GNU General Public License. +MySQL is brought to you by Oracle. + +Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + +License information can be found in the COPYING file. + +MySQL FOSS License Exception +We want free and open source software applications under certain +licenses to be able to use specified GPL-licensed MySQL client +libraries despite the fact that not all such FOSS licenses are +compatible with version 2 of the GNU General Public License. +Therefore there are special exceptions to the terms and conditions +of the GPLv2 as applied to these client libraries, which are +identified and described in more detail in the FOSS License +Exception at +. + +This distribution may include materials developed by third +parties. For license and attribution notices for these +materials, please refer to the documentation that accompanies +this distribution (see the "Licenses for Third-Party Components" +appendix) or view the online documentation at +. + +GPLv2 Disclaimer +For the avoidance of doubt, except that if any license choice +other than GPL or LGPL is available it will apply instead, +Oracle elects to use only the General Public License version 2 +(GPLv2) at this time for any software where a choice of GPL +license versions is made available with the language indicating +that GPLv2 or any later version may be used, or where a choice +of which version of the GPL is applied is otherwise unspecified. + +For further information about MySQL or additional documentation, +see: +- The latest information about MySQL: http://www.mysql.com +- The current MySQL documentation: http://dev.mysql.com/doc + +Some Reference Manual sections of special interest: +- If you are migrating from an older version of MySQL, please + read the "Upgrading from..." section. +- To see what MySQL can do, take a look at the features section. +- For installation instructions, see the Installing and Upgrading + chapter. +- For the new features/bugfix history, see the MySQL Change History + appendix. + +You can browse the MySQL Reference Manual online or download it +in any of several formats at the URL given earlier in this file. +Source distributions include a local copy of the manual in the +Docs directory. diff --git a/TODO b/TODO new file mode 100644 index 0000000..d7aa6fd --- /dev/null +++ b/TODO @@ -0,0 +1 @@ +- Unbundle zlib (but see changes/patches)? diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..225c27f --- /dev/null +++ b/build/.gitignore @@ -0,0 +1 @@ +config.build diff --git a/build/bootstrap.build b/build/bootstrap.build new file mode 100644 index 0000000..d8cff23 --- /dev/null +++ b/build/bootstrap.build @@ -0,0 +1,40 @@ +# file : build/bootstrap.build +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +project = libmysqlclient + +using version +using config +using dist +using test +using install + +# The MySQL client library ABI version number has the .. +# form. The major number is increased for backwards-incompatible API changes, +# the minor number for backwards-compatible ones (for example, for adding a new +# function), and the patch number is typically increased for each package +# release, being in a sense redundant. Increase of the version component resets +# the rightmost ones to zero. See also: +# +# http://mysqlserverteam.com/the-client-library-part-2-the-version-number/ +# +# There is no way to deduce the ABI version from the release version, so we +# obtain the ABI version from the SHARED_LIB_MAJOR_VERSION variable value in +# cmake/mysql_version.cmake for each package release. Also, while at it, check +# that the protocol version is still correct (the PROTOCOL_VERSION variable). +# +# See also how Debian/Fedora package libmariadb if trying to wrap your head +# around this mess. +# +if ($version.major == 5 && $version.minor == 7 && $version.patch == 20) +{ + # @@ Should we also use the ABI minor version to make sure the library is + # also forward-compatible? + # + abi_version = 20 + + protocol_version = 10 +} +else + fail "increment the ABI version?" diff --git a/build/export.build b/build/export.build new file mode 100644 index 0000000..786efb8 --- /dev/null +++ b/build/export.build @@ -0,0 +1,10 @@ +# file : build/export.build +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +$out_root/: +{ + include mysql/ +} + +export $out_root/mysql/lib{mysqlclient} diff --git a/build/root.build b/build/root.build new file mode 100644 index 0000000..b699441 --- /dev/null +++ b/build/root.build @@ -0,0 +1,24 @@ +# file : build/root.build +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +c.std = 99 + +using c + +h{*}: extension = h +c{*}: extension = c + +# The upstream package uses -std=gnu++03 on Linux. However we can't specify +# C++03 as the code refers to the strtoull() C function that was introduced +# in C++11. Specifying C++11 looks like an overkill, and can break something +# else. +# +using cxx.guess + +cxx.std = ($cxx.id == 'gcc' || $cxx.id == 'clang' ? gnu++03 : 03) + +using cxx + +hxx{*}: extension = hpp +cxx{*}: extension = cpp diff --git a/buildfile b/buildfile new file mode 100644 index 0000000..b8ec70f --- /dev/null +++ b/buildfile @@ -0,0 +1,18 @@ +# file : buildfile +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +./: {*/ -build/} doc{COPYING GPLv2 INSTALL README version} file{manifest} + +# The version file is auto-generated (by the version module) from manifest. +# Include it in distribution and don't remove when cleaning in src (so that +# clean results in a state identical to distributed). +# +doc{version}: file{manifest} +doc{version}: dist = true +doc{version}: clean = ($src_root != $out_root) + +# Don't install tests or the INSTALL file. +# +dir{tests/}: install = false +doc{INSTALL}@./: install = false diff --git a/manifest b/manifest new file mode 100644 index 0000000..30f3dd1 --- /dev/null +++ b/manifest @@ -0,0 +1,20 @@ +: 1 +name: libmysqlclient + +# Note: remember to update doc-url below! +# +version: 5.7.20-a.0.z + +summary: MySQL C API client library +license: GPLv2 with FOSS License Exception +tags: mysql, database, client, connector, library, c, api, interface +description-file: README +url: https://www.mysql.com +doc-url: https://dev.mysql.com/doc/refman/5.7/en/c-api.html +src-url: https://git.build2.org/cgit/packaging/mysql/libmysqlclient/tree/ +package-url: https://git.build2.org/cgit/packaging/mysql/ +email: mysql@lists.mysql.com; Mailing list. +package-email: packaging@build2.org; Mailing list. +build-email: builds@build2.org +depends: * build2 >= 0.7.0- +depends: * bpkg >= 0.7.0- diff --git a/mysql/atomic/gcc_atomic.h b/mysql/atomic/gcc_atomic.h new file mode 100644 index 0000000..8807857 --- /dev/null +++ b/mysql/atomic/gcc_atomic.h @@ -0,0 +1,94 @@ +#ifndef GCC_ATOMIC_INCLUDED +#define GCC_ATOMIC_INCLUDED + +/* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* New GCC __atomic builtins introduced in GCC 4.7 */ + +static inline int my_atomic_cas32(int32 volatile *a, int32 *cmp, int32 set) +{ + return __atomic_compare_exchange_n(a, cmp, set, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); +} + +static inline int my_atomic_cas64(int64 volatile *a, int64 *cmp, int64 set) +{ + return __atomic_compare_exchange_n(a, cmp, set, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); +} + +static inline int my_atomic_casptr(void * volatile *a, void **cmp, void *set) +{ + return __atomic_compare_exchange_n(a, cmp, set, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); +} + +static inline int32 my_atomic_add32(int32 volatile *a, int32 v) +{ + return __atomic_fetch_add(a, v, __ATOMIC_SEQ_CST); +} + +static inline int64 my_atomic_add64(int64 volatile *a, int64 v) +{ + return __atomic_fetch_add(a, v, __ATOMIC_SEQ_CST); +} + +static inline int32 my_atomic_fas32(int32 volatile *a, int32 v) +{ + return __atomic_exchange_n(a, v, __ATOMIC_SEQ_CST); +} + +static inline int64 my_atomic_fas64(int64 volatile *a, int64 v) +{ + return __atomic_exchange_n(a, v, __ATOMIC_SEQ_CST); +} + +static inline void * my_atomic_fasptr(void * volatile *a, void * v) +{ + return __atomic_exchange_n(a, v, __ATOMIC_SEQ_CST); +} + +static inline int32 my_atomic_load32(int32 volatile *a) +{ + return __atomic_load_n(a, __ATOMIC_SEQ_CST); +} + +static inline int64 my_atomic_load64(int64 volatile *a) +{ + return __atomic_load_n(a, __ATOMIC_SEQ_CST); +} + +static inline void* my_atomic_loadptr(void * volatile *a) +{ + return __atomic_load_n(a, __ATOMIC_SEQ_CST); +} + +static inline void my_atomic_store32(int32 volatile *a, int32 v) +{ + __atomic_store_n(a, v, __ATOMIC_SEQ_CST); +} + +static inline void my_atomic_store64(int64 volatile *a, int64 v) +{ + __atomic_store_n(a, v, __ATOMIC_SEQ_CST); +} + +static inline void my_atomic_storeptr(void * volatile *a, void *v) +{ + __atomic_store_n(a, v, __ATOMIC_SEQ_CST); +} + +#endif /* GCC_ATOMIC_INCLUDED */ diff --git a/mysql/atomic/gcc_sync.h b/mysql/atomic/gcc_sync.h new file mode 100644 index 0000000..82eea35 --- /dev/null +++ b/mysql/atomic/gcc_sync.h @@ -0,0 +1,106 @@ +#ifndef GCC_SYNC_INCLUDED +#define GCC_SYNC_INCLUDED + +/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Old GCC __sync builtins introduced in GCC 4.1 */ + +static inline int my_atomic_cas32(int32 volatile *a, int32 *cmp, int32 set) +{ + int32 cmp_val= *cmp; + int32 sav= __sync_val_compare_and_swap(a, cmp_val, set); + int ret= (sav == cmp_val); + if (!ret) + *cmp = sav; + return ret; +} + +static inline int my_atomic_cas64(int64 volatile *a, int64 *cmp, int64 set) +{ + int64 cmp_val= *cmp; + int64 sav= __sync_val_compare_and_swap(a, cmp_val, set); + int ret= (sav == cmp_val); + if (!ret) + *cmp = sav; + return ret; +} + +static inline int my_atomic_casptr(void * volatile *a, void **cmp, void *set) +{ + void *cmp_val= *cmp; + void *sav= __sync_val_compare_and_swap(a, cmp_val, set); + int ret= (sav == cmp_val); + if (!ret) + *cmp = sav; + return ret; +} + +static inline int32 my_atomic_add32(int32 volatile *a, int32 v) +{ + return __sync_fetch_and_add(a, v); +} + +static inline int64 my_atomic_add64(int64 volatile *a, int64 v) +{ + return __sync_fetch_and_add(a, v); +} + +static inline int32 my_atomic_fas32(int32 volatile *a, int32 v) +{ + return __sync_lock_test_and_set(a, v); +} + +static inline int64 my_atomic_fas64(int64 volatile *a, int64 v) +{ + return __sync_lock_test_and_set(a, v); +} + +static inline void * my_atomic_fasptr(void * volatile *a, void * v) +{ + return __sync_lock_test_and_set(a, v); +} + +static inline int32 my_atomic_load32(int32 volatile *a) +{ + return __sync_fetch_and_or(a, 0); +} + +static inline int64 my_atomic_load64(int64 volatile *a) +{ + return __sync_fetch_and_or(a, 0); +} + +static inline void* my_atomic_loadptr(void * volatile *a) +{ + return __sync_fetch_and_or(a, 0); +} + +static inline void my_atomic_store32(int32 volatile *a, int32 v) +{ + (void) __sync_lock_test_and_set(a, v); +} + +static inline void my_atomic_store64(int64 volatile *a, int64 v) +{ + (void) __sync_lock_test_and_set(a, v); +} + +static inline void my_atomic_storeptr(void * volatile *a, void *v) +{ + (void) __sync_lock_test_and_set(a, v); +} + +#endif /* GCC_SYNC_INCLUDED */ diff --git a/mysql/atomic/generic-msvc.h b/mysql/atomic/generic-msvc.h new file mode 100644 index 0000000..9fe2cdd --- /dev/null +++ b/mysql/atomic/generic-msvc.h @@ -0,0 +1,135 @@ +#ifndef ATOMIC_MSC_INCLUDED +#define ATOMIC_MSC_INCLUDED + +/* Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include + +static inline int my_atomic_cas32(int32 volatile *a, int32 *cmp, int32 set) +{ + int32 initial_cmp= *cmp; + int32 initial_a= InterlockedCompareExchange((volatile LONG*)a, + set, initial_cmp); + int ret= (initial_a == initial_cmp); + if (!ret) + *cmp= initial_a; + return ret; +} + +static inline int my_atomic_cas64(int64 volatile *a, int64 *cmp, int64 set) +{ + int64 initial_cmp= *cmp; + int64 initial_a= InterlockedCompareExchange64((volatile LONGLONG*)a, + (LONGLONG)set, + (LONGLONG)initial_cmp); + int ret= (initial_a == initial_cmp); + if (!ret) + *cmp= initial_a; + return ret; +} + +static inline int my_atomic_casptr(void * volatile *a, void **cmp, void *set) +{ + void *initial_cmp= *cmp; + void *initial_a= InterlockedCompareExchangePointer(a, set, initial_cmp); + int ret= (initial_a == initial_cmp); + if (!ret) + *cmp= initial_a; + return ret; +} + +static inline int32 my_atomic_add32(int32 volatile *a, int32 v) +{ + return (int32)InterlockedExchangeAdd((volatile LONG*)a, v); +} + +static inline int64 my_atomic_add64(int64 volatile *a, int64 v) +{ + return (int64)InterlockedExchangeAdd64((volatile LONGLONG*)a, (LONGLONG)v); +} + +static inline int32 my_atomic_load32(int32 volatile *a) +{ + return (int32)InterlockedCompareExchange((volatile LONG *)a, 0, 0); +} + +static inline int64 my_atomic_load64(int64 volatile *a) +{ + return (int64)InterlockedCompareExchange64((volatile LONGLONG *)a, 0, 0); +} + +static inline void* my_atomic_loadptr(void * volatile *a) +{ + return InterlockedCompareExchangePointer(a, 0, 0); +} + +static inline int32 my_atomic_fas32(int32 volatile *a, int32 v) +{ + return (int32)InterlockedExchange((volatile LONG*)a, v); +} + +static inline int64 my_atomic_fas64(int64 volatile *a, int64 v) +{ + return (int64)InterlockedExchange64((volatile LONGLONG*)a, v); +} + +static inline void * my_atomic_fasptr(void * volatile *a, void * v) +{ + return InterlockedExchangePointer(a, v); +} + +static inline void my_atomic_store32(int32 volatile *a, int32 v) +{ + (void)InterlockedExchange((volatile LONG*)a, v); +} + +static inline void my_atomic_store64(int64 volatile *a, int64 v) +{ + (void)InterlockedExchange64((volatile LONGLONG*)a, v); +} + +static inline void my_atomic_storeptr(void * volatile *a, void *v) +{ + (void)InterlockedExchangePointer(a, v); +} + + +/* + my_yield_processor (equivalent of x86 PAUSE instruction) should be used + to improve performance on hyperthreaded CPUs. Intel recommends to use it in + spin loops also on non-HT machines to reduce power consumption (see e.g + http://softwarecommunity.intel.com/articles/eng/2004.htm) + + Running benchmarks for spinlocks implemented with InterlockedCompareExchange + and YieldProcessor shows that much better performance is achieved by calling + YieldProcessor in a loop - that is, yielding longer. On Intel boxes setting + loop count in the range 200-300 brought best results. + */ +#define YIELD_LOOPS 200 + +static inline int my_yield_processor() +{ + int i; + for (i=0; i + +#if defined(__GNUC__) +#define atomic_typeof(T,V) __typeof__(V) +#else +#define atomic_typeof(T,V) T +#endif + +static inline int my_atomic_cas32(int32 volatile *a, int32 *cmp, int32 set) +{ + int ret; + atomic_typeof(uint32_t, *cmp) sav; + sav= atomic_cas_32((volatile uint32_t *)a, (uint32_t)*cmp, (uint32_t)set); + ret= (sav == *cmp); + if (!ret) + *cmp= sav; + return ret; +} + +static inline int my_atomic_cas64(int64 volatile *a, int64 *cmp, int64 set) +{ + int ret; + atomic_typeof(uint64_t, *cmp) sav; + sav= atomic_cas_64((volatile uint64_t *)a, (uint64_t)*cmp, (uint64_t)set); + ret= (sav == *cmp); + if (!ret) + *cmp= sav; + return ret; +} + +static inline int my_atomic_casptr(void * volatile *a, void **cmp, void *set) +{ + int ret; + atomic_typeof(void *, *cmp) sav; + sav= atomic_cas_ptr((volatile void **)a, (void *)*cmp, (void *)set); + ret= (sav == *cmp); + if (!ret) + *cmp= sav; + return ret; +} + +static inline int32 my_atomic_add32(int32 volatile *a, int32 v) +{ + int32 nv= atomic_add_32_nv((volatile uint32_t *)a, v); + return nv - v; +} + +static inline int64 my_atomic_add64(int64 volatile *a, int64 v) +{ + int64 nv= atomic_add_64_nv((volatile uint64_t *)a, v); + return nv - v; +} + +static inline int32 my_atomic_fas32(int32 volatile *a, int32 v) +{ + return atomic_swap_32((volatile uint32_t *)a, (uint32_t)v); +} + +static inline int64 my_atomic_fas64(int64 volatile *a, int64 v) +{ + return atomic_swap_64((volatile uint64_t *)a, (uint64_t)v); +} + +static inline void * my_atomic_fasptr(void * volatile *a, void * v) +{ + return atomic_swap_ptr(a, v); +} + +static inline int32 my_atomic_load32(int32 volatile *a) +{ + return atomic_or_32_nv((volatile uint32_t *)a, 0); +} + +static inline int64 my_atomic_load64(int64 volatile *a) +{ + return atomic_or_64_nv((volatile uint64_t *)a, 0); +} + +static inline void* my_atomic_loadptr(void * volatile *a) +{ + return atomic_add_ptr_nv(a, 0); +} + +static inline void my_atomic_store32(int32 volatile *a, int32 v) +{ + (void) atomic_swap_32((volatile uint32_t *)a, (uint32_t)v); +} + +static inline void my_atomic_store64(int64 volatile *a, int64 v) +{ + (void) atomic_swap_64((volatile uint64_t *)a, (uint64_t)v); +} + +static inline void my_atomic_storeptr(void * volatile *a, void *v) +{ + (void) atomic_swap_ptr((volatile void **)a, (void *)v); +} + +#endif /* ATOMIC_SOLARIS_INCLUDED */ diff --git a/mysql/base64.h b/mysql/base64.h new file mode 100644 index 0000000..6406808 --- /dev/null +++ b/mysql/base64.h @@ -0,0 +1,61 @@ +/* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef __BASE64_H_INCLUDED__ +#define __BASE64_H_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + Calculate how much memory needed for dst of base64_encode() +*/ +uint64 base64_needed_encoded_length(uint64 length_of_data); + +/* + Maximum length base64_encode_needed_length() can accept with no overflow. +*/ +uint64 base64_encode_max_arg_length(void); + +/* + Calculate how much memory needed for dst of base64_decode() +*/ +uint64 base64_needed_decoded_length(uint64 length_of_encoded_data); + +/* + Maximum length base64_decode_needed_length() can accept with no overflow. +*/ +uint64 base64_decode_max_arg_length(); + +/* + Encode data as a base64 string +*/ +int base64_encode(const void *src, size_t src_len, char *dst); + +/* + Decode a base64 string into data +*/ +int64 base64_decode(const char *src, size_t src_len, + void *dst, const char **end_ptr, int flags); + +/* Allow multuple chunks 'AAA= AA== AA==', binlog uses this */ +#define MY_BASE64_DECODE_ALLOW_MULTIPLE_CHUNKS 1 + + +#ifdef __cplusplus +} +#endif +#endif /* !__BASE64_H_INCLUDED__ */ diff --git a/mysql/binary_log_types.h b/mysql/binary_log_types.h new file mode 100644 index 0000000..b20eacf --- /dev/null +++ b/mysql/binary_log_types.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file binary_log_types.h + + @brief This file contains the field type. + + + @note This file can be imported both from C and C++ code, so the + definitions have to be constructed to support this. +*/ + +#ifndef BINARY_LOG_TYPES_INCLUDED +#define BINARY_LOG_TYPES_INCLUDED + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* + * Constants exported from this package. + */ + +typedef enum enum_field_types { + MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, + MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, + MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, + MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP, + MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24, + MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + MYSQL_TYPE_BIT, + MYSQL_TYPE_TIMESTAMP2, + MYSQL_TYPE_DATETIME2, + MYSQL_TYPE_TIME2, + MYSQL_TYPE_JSON=245, + MYSQL_TYPE_NEWDECIMAL=246, + MYSQL_TYPE_ENUM=247, + MYSQL_TYPE_SET=248, + MYSQL_TYPE_TINY_BLOB=249, + MYSQL_TYPE_MEDIUM_BLOB=250, + MYSQL_TYPE_LONG_BLOB=251, + MYSQL_TYPE_BLOB=252, + MYSQL_TYPE_VAR_STRING=253, + MYSQL_TYPE_STRING=254, + MYSQL_TYPE_GEOMETRY=255 +} enum_field_types; + +#define DATETIME_MAX_DECIMALS 6 + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif /* BINARY_LOG_TYPES_INCLUDED */ diff --git a/mysql/buildfile b/mysql/buildfile new file mode 100644 index 0000000..cbb41bf --- /dev/null +++ b/mysql/buildfile @@ -0,0 +1,254 @@ +# file : mysql/buildfile +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +# Windows-specific utilities. +# +mysys_win32 = my_winerr my_winfile + +# Windows-specific named pipe and shared memory based communication channels. +# +vio_win32 = viopipe vioshm + +lib{mysqlclient}: {h }{* -version} \ + {h }{ version} \ + zlib/{h c }{* } \ + strings/{h c }{* } \ + atomic/{h }{* } \ + mysys/{h c }{* -posix_timers -{$mysys_win32}} \ + mysys_ssl/{h cxx}{* } \ + extra/yassl/{h c hxx cxx}{** } \ + vio/{h c }{* -{$vio_win32}} \ + sql/{h c hxx cxx}{** } \ + sql-common/{h c hxx cxx}{* } \ + libmysql/{h c }{* } \ + mysql/{h }{** } + +# Makes sense to distribute READMEs and licenses for the bundled libraries. +# +lib{mysqlclient}: zlib/file{README* } \ + extra/yassl/file{README COPYING FLOSS-EXCEPTIONS} \ + extra/yassl/taocrypt/file{README COPYING } + +tclass = $c.target.class +tsys = $c.target.system + +if ($tclass == 'linux') + lib{mysqlclient}: mysys/c{posix_timers} +else + lib{mysqlclient}: mysys/file{posix_timers.c} + +if ($tclass == 'windows') + lib{mysqlclient}: mysys/{ c }{$mysys_win32} \ + vio/{ c }{$vio_win32 } \ + libmysql/authentication_win/{h cxx}{* } +else + lib{mysqlclient}: mysys/file{$regex.apply($mysys_win32, '(.+)', '\1.c')} \ + vio/file{$regex.apply($vio_win32, '(.+)', '\1.c')} \ + libmysql/authentication_win/file{*.h *.cpp } + +lib{mysqlclient}: libmysql/file{libmysql_exports_win32.def} + +# See bootstrap.build for details. +# +if $version.pre_release + lib{mysqlclient}: bin.lib.version = @"-$version.project_id" +else + lib{mysqlclient}: bin.lib.version = @"-$abi_version" + +# Include the generated version header into the distribution (so that we +# don't pick up an installed one) and don't remove it when cleaning in src (so +# that clean results in a state identical to distributed). +# +# @@ We should probably allow to configure MYSQL_UNIX_ADDR via configuration +# variable config.libmysqlclient.unix_addr. Note that it is set differently +# for the upstream package and major Linux distributions: +# +# Debian/Ubuntu: /var/run/mysqld/mysqld.sock +# Fedora/RHEL: /var/lib/mysql/mysql.sock +# Source package: /tmp/mysql.sock +# +# @@ Note that if variable values changes (say install root is reconfigured), +# then the version files is not regenerated. Should we store instantiated +# variables name/value hash in the dependency file? This will be fixed +# as part of the in module. +# +h{version}: in{version} $src_root/file{manifest} + +h{version}: dist = true +h{version}: clean = ($src_root != $out_root) +h{version}: in.symbol = '@' + +h{version}: PROTOCOL_VERSION = $protocol_version +h{version}: VERSION = $version.project +h{version}: MYSQL_BASE_VERSION = "$version.major.$version.minor" +h{version}: MYSQL_VERSION_MAJOR = $version.major +h{version}: MYSQL_VERSION_MINOR = $version.minor +h{version}: MYSQL_SERVER_SUFFIX = '' +h{version}: DOT_FRM_VERSION = 6 # File format (server-related). +h{version}: MYSQL_VERSION_ID = \ + "\(10000 * $version.major + 100 * $version.minor + $version.patch\)" +h{version}: MYSQL_TCP_PORT = 3306 +h{version}: MYSQL_TCP_PORT_DEFAULT = 0 +h{version}: MYSQL_UNIX_ADDR = ($tclass != 'windows' ? /tmp/mysql.sock : '') +h{version}: COMPILATION_COMMENT = 'Source distribution' +h{version}: SYS_SCHEMA_VERSION = '1.5.1' # Server-related. +h{version}: MACHINE_TYPE = $c.target.cpu +h{version}: SYSTEM_TYPE = $tsys +h{version}: DEFAULT_BASEDIR = \ + ($install.root != [null] \ + ? $regex.replace("$install.resolve($install.root)", '\\', '/') \ + : '') +h{version}: PLUGINDIR = \ + ($install.root != [null] \ + ? $regex.replace($install.resolve($install.lib)/mysql/plugin, '\\', '/') \ + : '') +h{version}: SHAREDIR = \ + ($install.root != [null] \ + ? $regex.replace($install.resolve($install.data_root)/share/mysql, \ + '\\', '/') \ + : '') + +# We have dropped the macro definitions that are not used in the package code: +# +# -DHAVE_LIBEVENT1 +# +cc.poptions += -DHAVE_CONFIG_H -DDBUG_OFF + +if ($tclass != 'windows') +{ + cc.poptions += -D_FILE_OFFSET_BITS=64 + + if ($tclass == 'linux') + cc.poptions += -D_GNU_SOURCE +} +else +{ + # Note that the original package defines the WIN32 macro for VC only, + # relying on the fact that MinGW GCC defines it by default. However, the + # macro disappears from the default ones if to compile with -std=c9x (as we + # do). So we define it for both VC and MinGW GCC. + # + cc.poptions += -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -DNOGDI -DNOMINMAX \ + -DWIN32_LEAN_AND_MEAN -D_MBCS +} + +# Note that we add "-I$src_root" for the headers auto-generating machinery to +# work properly. +# +cc.poptions =+ "-I$out_root" "-I$src_root" "-I$src_base" + +zlib_poptions = "-I$src_base/zlib" +strings_poptions = "-I$src_base/strings" +mysys_poptions = "-I$src_base/mysys" + +# To keep "-I$out_root" "-I$src_root" first we use '+=', rather than '=+' to +# append poptions for the target wildcards. +# + zlib/obj{*}: cc.poptions += $zlib_poptions + mysys/obj{*}: cc.poptions += $mysys_poptions $zlib_poptions +strings/obj{*}: cc.poptions += $strings_poptions -DDISABLE_MYSQL_THREAD_H + +yassl_dir = $src_base/extra/yassl +taocrypt_dir = $yassl_dir/taocrypt + +taocrypt_poptions = "-I$taocrypt_dir/include" "-I$taocrypt_dir/mySTL" \ + -DHAVE_YASSL -DYASSL_PREFIX -DHAVE_OPENSSL \ + -DMULTI_THREADED + +extra/yassl/taocrypt/src/obj{*}: cc.poptions += $taocrypt_poptions + +yassl_poptions = "-I$yassl_dir/include" $taocrypt_poptions + +extra/yassl/src/obj{*}: \ + cc.poptions += -Dget_tty_password=yassl_mysql_get_tty_password \ + -Dget_tty_password_ext=yassl_mysql_get_tty_password_ext \ + $yassl_poptions + + vio/obj{*}: cc.poptions += "-I$src_base" $yassl_poptions +mysys_ssl/obj{*}: cc.poptions += "-I$src_base" $yassl_poptions $mysys_poptions + +# The CLIENT_PROTOCOL_TRACING macro seems to be required for debugging only. +# However, the compilation falls apart if undefined, so we keep it. +# +sql_poptions = "-I$src_base/sql" "-I$src_base/libmysql" \ + -DCLIENT_PROTOCOL_TRACING \ + $yassl_poptions $zlib_poptions $strings_poptions + +if ($tclass == 'windows') + sql_poptions += -DAUTHENTICATION_WIN + +sql/obj{*}: cc.poptions += $sql_poptions +sql-common/obj{*}: cc.poptions += $sql_poptions +libmysql/obj{*}: cc.poptions += $sql_poptions + +# The upstream package always adds -DDEBUG_ERRROR_LOG -DWINAUTH_USE_DBUG_LIB. +# Looks like they are required for debugging only, so let's omit them. +# +if ($tclass == 'windows') + libmysql/authentication_win/obj{*}: cc.poptions += -DSECURITY_WIN32 + +if ($tsys == 'win32-msvc') +{ + # Disable warnings that pop up with /W3. + # + cc.coptions += /wd4311 /wd4113 +} +else +{ + # We don't care about C++ ABI specification conformance, especially given + # that only C functions are exported. So we omit -fabi-version=2. + # + cc.coptions += -fno-omit-frame-pointer -fno-strict-aliasing + + # Disable warnings that pop up with -W -Wall. + # + cc.coptions += -Wno-unused-parameter -Wno-unused-variable \ + -Wno-unused-const-variable -Wno-unused-but-set-variable \ + -Wno-maybe-uninitialized +} + +if ($tclass != 'windows') +{ + # On Linux the upstream package also passes the cmake-generated + # libmysql.ver file. The symbols it contains are hard-coded into + # libmysql/CMakeList.txt. We have dropped the file for now. + # + if ($tclass == 'linux') + cc.loptions += -Wl,--no-undefined # Make sure all symbols are resolvable. + + cc.libs += ($tclass == 'bsd' ? -lexecinfo : -ldl) -lpthread -lm + + if ($tclass == 'linux') + cc.libs += -lrt # Posix timers. +} +else +{ + cc.libs += advapi32.lib + cc.loptions += "/DEF:$src_base/libmysql/libmysql_exports_win32.def" +} + +# The library clients must include the API header as . +# +lib{mysqlclient}: cc.export.poptions = "-I$out_root" "-I$src_root" + +# Let's install the bare minimum of headers: mysql.h and headers it recursively +# includes. +# +h{*}: install = false +hxx{*}: install = false + +# @@ Fix once LHS pair generation is implemented. +# +for h: mysql mysql_version mysql_com mysql_time my_list my_alloc my_command \ + binary_log_types typelib \ + mysql/client_plugin mysql/plugin_auth_common \ + mysql/psi/psi_base mysql/psi/psi_memory +{ + h{$h}@./: install = include/mysql/$path.directory($h) + h{$h}@./: install.subdirs = true +} + +# Install into the mysql/ subdirectory of, say, /usr/include. +# +h{version}: install = include/mysql/ diff --git a/mysql/byte_order_generic_x86.h b/mysql/byte_order_generic_x86.h new file mode 100644 index 0000000..b3762b5 --- /dev/null +++ b/mysql/byte_order_generic_x86.h @@ -0,0 +1,56 @@ +/* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Optimized functions for the x86 architecture (_WIN32 included). + + x86 handles misaligned reads and writes just fine, so suppress + UBSAN warnings for these functions. +*/ +static inline int16 sint2korr(const uchar *A) SUPPRESS_UBSAN; +static inline int16 sint2korr(const uchar *A) { return *((int16*) A); } + +static inline int32 sint4korr(const uchar *A) SUPPRESS_UBSAN; +static inline int32 sint4korr(const uchar *A) { return *((int32*) A); } + +static inline uint16 uint2korr(const uchar *A) SUPPRESS_UBSAN; +static inline uint16 uint2korr(const uchar *A) { return *((uint16*) A); } + +static inline uint32 uint4korr(const uchar *A) SUPPRESS_UBSAN; +static inline uint32 uint4korr(const uchar *A) { return *((uint32*) A); } + +static inline ulonglong uint8korr(const uchar *A) SUPPRESS_UBSAN; +static inline ulonglong uint8korr(const uchar *A) { return *((ulonglong*) A);} + +static inline longlong sint8korr(const uchar *A) SUPPRESS_UBSAN; +static inline longlong sint8korr(const uchar *A) { return *((longlong*) A); } + +static inline void int2store(uchar *T, uint16 A) SUPPRESS_UBSAN; +static inline void int2store(uchar *T, uint16 A) +{ + *((uint16*) T)= A; +} + +static inline void int4store(uchar *T, uint32 A) SUPPRESS_UBSAN; +static inline void int4store(uchar *T, uint32 A) +{ + *((uint32*) T)= A; +} + +static inline void int8store(uchar *T, ulonglong A) SUPPRESS_UBSAN; +static inline void int8store(uchar *T, ulonglong A) +{ + *((ulonglong*) T)= A; +} diff --git a/mysql/config.h b/mysql/config.h new file mode 100644 index 0000000..6e88f5f --- /dev/null +++ b/mysql/config.h @@ -0,0 +1,10 @@ +/* file : mysql/config.h -*- C -*- + * copyright : Copyright (c) 2016-2017 Code Synthesis Ltd + * license : GPLv2 with FOSS License Exception; see accompanying COPYING file + */ + +/* + * The upstream package auto-generated my_config.h and config.h (used by the + * bundled libs) are identical, so we just express one through the other. + */ +#include diff --git a/mysql/config.h.cmake.orig b/mysql/config.h.cmake.orig new file mode 100644 index 0000000..e0abacc --- /dev/null +++ b/mysql/config.h.cmake.orig @@ -0,0 +1,452 @@ +/* Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_CONFIG_H +#define MY_CONFIG_H + +/* + * From configure.cmake, in order of appearance + */ +#cmakedefine HAVE_LLVM_LIBCPP 1 +#cmakedefine _LARGEFILE_SOURCE 1 + +/* Libraries */ +#cmakedefine HAVE_LIBM 1 +#cmakedefine HAVE_LIBNSL 1 +#cmakedefine HAVE_LIBCRYPT 1 +#cmakedefine HAVE_LIBSOCKET 1 +#cmakedefine HAVE_LIBDL 1 +#cmakedefine HAVE_LIBRT 1 +#cmakedefine HAVE_LIBWRAP 1 +#cmakedefine HAVE_LIBWRAP_PROTOTYPES 1 + +/* Header files */ +#cmakedefine HAVE_ALLOCA_H 1 +#cmakedefine HAVE_ARPA_INET_H 1 +#cmakedefine HAVE_DLFCN_H 1 +#cmakedefine HAVE_EXECINFO_H 1 +#cmakedefine HAVE_FPU_CONTROL_H 1 +#cmakedefine HAVE_GRP_H 1 +#cmakedefine HAVE_IEEEFP_H 1 +#cmakedefine HAVE_LANGINFO_H 1 +#cmakedefine HAVE_MALLOC_H 1 +#cmakedefine HAVE_NETINET_IN_H 1 +#cmakedefine HAVE_POLL_H 1 +#cmakedefine HAVE_PWD_H 1 +#cmakedefine HAVE_STRINGS_H 1 +#cmakedefine HAVE_SYS_CDEFS_H 1 +#cmakedefine HAVE_SYS_IOCTL_H 1 +#cmakedefine HAVE_SYS_MMAN_H 1 +#cmakedefine HAVE_SYS_RESOURCE_H 1 +#cmakedefine HAVE_SYS_SELECT_H 1 +#cmakedefine HAVE_SYS_SOCKET_H 1 +#cmakedefine HAVE_TERM_H 1 +#cmakedefine HAVE_TERMIOS_H 1 +#cmakedefine HAVE_TERMIO_H 1 +#cmakedefine HAVE_UNISTD_H 1 +#cmakedefine HAVE_SYS_WAIT_H 1 +#cmakedefine HAVE_SYS_PARAM_H 1 +#cmakedefine HAVE_FNMATCH_H 1 +#cmakedefine HAVE_SYS_UN_H 1 +#cmakedefine HAVE_VIS_H 1 +#cmakedefine HAVE_SASL_SASL_H 1 + +/* Libevent */ +#cmakedefine HAVE_DEVPOLL 1 +#cmakedefine HAVE_SYS_DEVPOLL_H 1 +#cmakedefine HAVE_SYS_EPOLL_H 1 +#cmakedefine HAVE_TAILQFOREACH 1 + +/* Functions */ +#cmakedefine HAVE_ALIGNED_MALLOC 1 +#cmakedefine HAVE_BACKTRACE 1 +#cmakedefine HAVE_PRINTSTACK 1 +#cmakedefine HAVE_INDEX 1 +#cmakedefine HAVE_CLOCK_GETTIME 1 +#cmakedefine HAVE_CUSERID 1 +#cmakedefine HAVE_DIRECTIO 1 +#cmakedefine HAVE_FTRUNCATE 1 +#cmakedefine HAVE_COMPRESS 1 +#cmakedefine HAVE_CRYPT 1 +#cmakedefine HAVE_DLOPEN 1 +#cmakedefine HAVE_FCHMOD 1 +#cmakedefine HAVE_FCNTL 1 +#cmakedefine HAVE_FDATASYNC 1 +#cmakedefine HAVE_DECL_FDATASYNC 1 +#cmakedefine HAVE_FEDISABLEEXCEPT 1 +#cmakedefine HAVE_FSEEKO 1 +#cmakedefine HAVE_FSYNC 1 +#cmakedefine HAVE_GETHOSTBYADDR_R 1 +#cmakedefine HAVE_GETHRTIME 1 +#cmakedefine HAVE_GETNAMEINFO 1 +#cmakedefine HAVE_GETPASS 1 +#cmakedefine HAVE_GETPASSPHRASE 1 +#cmakedefine HAVE_GETPWNAM 1 +#cmakedefine HAVE_GETPWUID 1 +#cmakedefine HAVE_GETRLIMIT 1 +#cmakedefine HAVE_GETRUSAGE 1 +#cmakedefine HAVE_INITGROUPS 1 +#cmakedefine HAVE_ISSETUGID 1 +#cmakedefine HAVE_GETUID 1 +#cmakedefine HAVE_GETEUID 1 +#cmakedefine HAVE_GETGID 1 +#cmakedefine HAVE_GETEGID 1 +#cmakedefine HAVE_LSTAT 1 +#cmakedefine HAVE_MADVISE 1 +#cmakedefine HAVE_MALLOC_INFO 1 +#cmakedefine HAVE_MEMRCHR 1 +#cmakedefine HAVE_MLOCK 1 +#cmakedefine HAVE_MLOCKALL 1 +#cmakedefine HAVE_MMAP64 1 +#cmakedefine HAVE_POLL 1 +#cmakedefine HAVE_POSIX_FALLOCATE 1 +#cmakedefine HAVE_POSIX_MEMALIGN 1 +#cmakedefine HAVE_PREAD 1 +#cmakedefine HAVE_PTHREAD_CONDATTR_SETCLOCK 1 +#cmakedefine HAVE_PTHREAD_SIGMASK 1 +#cmakedefine HAVE_READLINK 1 +#cmakedefine HAVE_REALPATH 1 +#cmakedefine HAVE_SETFD 1 +#cmakedefine HAVE_SIGACTION 1 +#cmakedefine HAVE_SLEEP 1 +#cmakedefine HAVE_STPCPY 1 +#cmakedefine HAVE_STPNCPY 1 +#cmakedefine HAVE_STRLCPY 1 +#cmakedefine HAVE_STRNLEN 1 +#cmakedefine HAVE_STRLCAT 1 +#cmakedefine HAVE_STRSIGNAL 1 +#cmakedefine HAVE_FGETLN 1 +#cmakedefine HAVE_STRSEP 1 +#cmakedefine HAVE_TELL 1 +#cmakedefine HAVE_VASPRINTF 1 +#cmakedefine HAVE_MEMALIGN 1 +#cmakedefine HAVE_NL_LANGINFO 1 +#cmakedefine HAVE_HTONLL 1 +#cmakedefine DNS_USE_CPU_CLOCK_FOR_ID 1 +#cmakedefine HAVE_EPOLL 1 +/* #cmakedefine HAVE_EVENT_PORTS 1 */ +#cmakedefine HAVE_INET_NTOP 1 +#cmakedefine HAVE_WORKING_KQUEUE 1 +#cmakedefine HAVE_TIMERADD 1 +#cmakedefine HAVE_TIMERCLEAR 1 +#cmakedefine HAVE_TIMERCMP 1 +#cmakedefine HAVE_TIMERISSET 1 + +/* WL2373 */ +#cmakedefine HAVE_SYS_TIME_H 1 +#cmakedefine HAVE_SYS_TIMES_H 1 +#cmakedefine HAVE_TIMES 1 +#cmakedefine HAVE_GETTIMEOFDAY 1 + +/* Symbols */ +#cmakedefine HAVE_LRAND48 1 +#cmakedefine GWINSZ_IN_SYS_IOCTL 1 +#cmakedefine FIONREAD_IN_SYS_IOCTL 1 +#cmakedefine FIONREAD_IN_SYS_FILIO 1 +#cmakedefine HAVE_SIGEV_THREAD_ID 1 +#cmakedefine HAVE_SIGEV_PORT 1 +#cmakedefine HAVE_LOG2 1 + +#cmakedefine HAVE_ISINF 1 + +#cmakedefine HAVE_KQUEUE_TIMERS 1 +#cmakedefine HAVE_POSIX_TIMERS 1 + +/* Endianess */ +#cmakedefine WORDS_BIGENDIAN 1 + +/* Type sizes */ +#cmakedefine SIZEOF_VOIDP @SIZEOF_VOIDP@ +#cmakedefine SIZEOF_CHARP @SIZEOF_CHARP@ +#cmakedefine SIZEOF_LONG @SIZEOF_LONG@ +#cmakedefine SIZEOF_SHORT @SIZEOF_SHORT@ +#cmakedefine SIZEOF_INT @SIZEOF_INT@ +#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@ +#cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@ +#cmakedefine SIZEOF_TIME_T @SIZEOF_TIME_T@ +#cmakedefine HAVE_UINT 1 +#cmakedefine HAVE_ULONG 1 +#cmakedefine HAVE_U_INT32_T 1 +#cmakedefine HAVE_STRUCT_TIMESPEC + +/* Support for tagging symbols with __attribute__((visibility("hidden"))) */ +#cmakedefine HAVE_VISIBILITY_HIDDEN 1 + +/* Code tests*/ +#cmakedefine STACK_DIRECTION @STACK_DIRECTION@ +#cmakedefine TIME_WITH_SYS_TIME 1 +#cmakedefine NO_FCNTL_NONBLOCK 1 +#cmakedefine HAVE_PAUSE_INSTRUCTION 1 +#cmakedefine HAVE_FAKE_PAUSE_INSTRUCTION 1 +#cmakedefine HAVE_HMT_PRIORITY_INSTRUCTION 1 +#cmakedefine HAVE_ABI_CXA_DEMANGLE 1 +#cmakedefine HAVE_BUILTIN_UNREACHABLE 1 +#cmakedefine HAVE_BUILTIN_EXPECT 1 +#cmakedefine HAVE_BUILTIN_STPCPY 1 +#cmakedefine HAVE_GCC_ATOMIC_BUILTINS 1 +#cmakedefine HAVE_GCC_SYNC_BUILTINS 1 +#cmakedefine HAVE_VALGRIND + +/* IPV6 */ +#cmakedefine HAVE_NETINET_IN6_H 1 +#cmakedefine HAVE_STRUCT_SOCKADDR_IN6 1 +#cmakedefine HAVE_STRUCT_IN6_ADDR 1 +#cmakedefine HAVE_IPV6 1 + +#cmakedefine ss_family @ss_family@ +#cmakedefine HAVE_SOCKADDR_IN_SIN_LEN 1 +#cmakedefine HAVE_SOCKADDR_IN6_SIN6_LEN 1 + +/* + * Platform specific CMake files + */ +#define MACHINE_TYPE "@MYSQL_MACHINE_TYPE@" +#cmakedefine HAVE_LINUX_LARGE_PAGES 1 +#cmakedefine HAVE_SOLARIS_LARGE_PAGES 1 +#cmakedefine HAVE_SOLARIS_ATOMIC 1 +#cmakedefine HAVE_SOLARIS_STYLE_GETHOST 1 +#define SYSTEM_TYPE "@SYSTEM_TYPE@" +/* Windows stuff, mostly functions, that have Posix analogs but named differently */ +#cmakedefine IPPROTO_IPV6 @IPPROTO_IPV6@ +#cmakedefine IPV6_V6ONLY @IPV6_V6ONLY@ +/* This should mean case insensitive file system */ +#cmakedefine FN_NO_CASE_SENSE 1 + +/* + * From main CMakeLists.txt + */ +#cmakedefine MAX_INDEXES @MAX_INDEXES@ +#cmakedefine WITH_INNODB_MEMCACHED 1 +#cmakedefine ENABLE_MEMCACHED_SASL 1 +#cmakedefine ENABLE_MEMCACHED_SASL_PWDB 1 +#cmakedefine ENABLED_PROFILING 1 +#cmakedefine HAVE_ASAN +#cmakedefine ENABLED_LOCAL_INFILE 1 +#cmakedefine OPTIMIZER_TRACE 1 +#cmakedefine DEFAULT_MYSQL_HOME "@DEFAULT_MYSQL_HOME@" +#cmakedefine SHAREDIR "@SHAREDIR@" +#cmakedefine DEFAULT_BASEDIR "@DEFAULT_BASEDIR@" +#cmakedefine MYSQL_DATADIR "@MYSQL_DATADIR@" +#cmakedefine MYSQL_KEYRINGDIR "@MYSQL_KEYRINGDIR@" +#cmakedefine DEFAULT_CHARSET_HOME "@DEFAULT_CHARSET_HOME@" +#cmakedefine PLUGINDIR "@PLUGINDIR@" +#cmakedefine DEFAULT_SYSCONFDIR "@DEFAULT_SYSCONFDIR@" +#cmakedefine DEFAULT_TMPDIR @DEFAULT_TMPDIR@ +#cmakedefine INSTALL_SBINDIR "@default_prefix@/@INSTALL_SBINDIR@" +#cmakedefine INSTALL_BINDIR "@default_prefix@/@INSTALL_BINDIR@" +#cmakedefine INSTALL_MYSQLSHAREDIR "@default_prefix@/@INSTALL_MYSQLSHAREDIR@" +#cmakedefine INSTALL_SHAREDIR "@default_prefix@/@INSTALL_SHAREDIR@" +#cmakedefine INSTALL_PLUGINDIR "@default_prefix@/@INSTALL_PLUGINDIR@" +#cmakedefine INSTALL_INCLUDEDIR "@default_prefix@/@INSTALL_INCLUDEDIR@" +#cmakedefine INSTALL_SCRIPTDIR "@default_prefix@/@INSTALL_SCRIPTDIR@" +#cmakedefine INSTALL_MYSQLDATADIR "@default_prefix@/@INSTALL_MYSQLDATADIR@" +#cmakedefine INSTALL_MYSQLKEYRINGDIR "@default_prefix@/@INSTALL_MYSQLKEYRINGDIR@" +#cmakedefine INSTALL_PLUGINTESTDIR "@INSTALL_PLUGINTESTDIR@" +#cmakedefine INSTALL_INFODIR "@default_prefix@/@INSTALL_INFODIR@" +#cmakedefine INSTALL_MYSQLTESTDIR "@default_prefix@/@INSTALL_MYSQLTESTDIR@" +#cmakedefine INSTALL_DOCREADMEDIR "@default_prefix@/@INSTALL_DOCREADMEDIR@" +#cmakedefine INSTALL_DOCDIR "@default_prefix@/@INSTALL_DOCDIR@" +#cmakedefine INSTALL_MANDIR "@default_prefix@/@INSTALL_MANDIR@" +#cmakedefine INSTALL_SUPPORTFILESDIR "@default_prefix@/@INSTALL_SUPPORTFILESDIR@" +#cmakedefine INSTALL_LIBDIR "@default_prefix@/@INSTALL_LIBDIR@" + +/* + * Readline + */ +#cmakedefine HAVE_MBSTATE_T +#cmakedefine HAVE_LANGINFO_CODESET +#cmakedefine HAVE_WCSDUP +#cmakedefine HAVE_WCHAR_T 1 +#cmakedefine HAVE_WINT_T 1 +#cmakedefine HAVE_CURSES_H 1 +#cmakedefine HAVE_NCURSES_H 1 +#cmakedefine USE_LIBEDIT_INTERFACE 1 +#cmakedefine HAVE_HIST_ENTRY 1 +#cmakedefine USE_NEW_EDITLINE_INTERFACE 1 + +/* + * Libedit + */ +#cmakedefine HAVE_DECL_TGOTO 1 + +/* + * DTrace + */ +#cmakedefine HAVE_DTRACE 1 + +/* + * Character sets + */ +#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "@MYSQL_DEFAULT_CHARSET_NAME@" +#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "@MYSQL_DEFAULT_COLLATION_NAME@" +#cmakedefine HAVE_CHARSET_armscii8 1 +#cmakedefine HAVE_CHARSET_ascii 1 +#cmakedefine HAVE_CHARSET_big5 1 +#cmakedefine HAVE_CHARSET_cp1250 1 +#cmakedefine HAVE_CHARSET_cp1251 1 +#cmakedefine HAVE_CHARSET_cp1256 1 +#cmakedefine HAVE_CHARSET_cp1257 1 +#cmakedefine HAVE_CHARSET_cp850 1 +#cmakedefine HAVE_CHARSET_cp852 1 +#cmakedefine HAVE_CHARSET_cp866 1 +#cmakedefine HAVE_CHARSET_cp932 1 +#cmakedefine HAVE_CHARSET_dec8 1 +#cmakedefine HAVE_CHARSET_eucjpms 1 +#cmakedefine HAVE_CHARSET_euckr 1 +#cmakedefine HAVE_CHARSET_gb2312 1 +#cmakedefine HAVE_CHARSET_gbk 1 +#cmakedefine HAVE_CHARSET_gb18030 1 +#cmakedefine HAVE_CHARSET_geostd8 1 +#cmakedefine HAVE_CHARSET_greek 1 +#cmakedefine HAVE_CHARSET_hebrew 1 +#cmakedefine HAVE_CHARSET_hp8 1 +#cmakedefine HAVE_CHARSET_keybcs2 1 +#cmakedefine HAVE_CHARSET_koi8r 1 +#cmakedefine HAVE_CHARSET_koi8u 1 +#cmakedefine HAVE_CHARSET_latin1 1 +#cmakedefine HAVE_CHARSET_latin2 1 +#cmakedefine HAVE_CHARSET_latin5 1 +#cmakedefine HAVE_CHARSET_latin7 1 +#cmakedefine HAVE_CHARSET_macce 1 +#cmakedefine HAVE_CHARSET_macroman 1 +#cmakedefine HAVE_CHARSET_sjis 1 +#cmakedefine HAVE_CHARSET_swe7 1 +#cmakedefine HAVE_CHARSET_tis620 1 +#cmakedefine HAVE_CHARSET_ucs2 1 +#cmakedefine HAVE_CHARSET_ujis 1 +#cmakedefine HAVE_CHARSET_utf8mb4 1 +#cmakedefine HAVE_CHARSET_utf8mb3 1 +#cmakedefine HAVE_CHARSET_utf8 1 +#cmakedefine HAVE_CHARSET_utf16 1 +#cmakedefine HAVE_CHARSET_utf32 1 +#cmakedefine HAVE_UCA_COLLATIONS 1 + +/* + * Feature set + */ +#cmakedefine WITH_PARTITION_STORAGE_ENGINE 1 + +/* + * Performance schema + */ +#cmakedefine WITH_PERFSCHEMA_STORAGE_ENGINE 1 +#cmakedefine DISABLE_PSI_THREAD 1 +#cmakedefine DISABLE_PSI_MUTEX 1 +#cmakedefine DISABLE_PSI_RWLOCK 1 +#cmakedefine DISABLE_PSI_COND 1 +#cmakedefine DISABLE_PSI_FILE 1 +#cmakedefine DISABLE_PSI_TABLE 1 +#cmakedefine DISABLE_PSI_SOCKET 1 +#cmakedefine DISABLE_PSI_STAGE 1 +#cmakedefine DISABLE_PSI_STATEMENT 1 +#cmakedefine DISABLE_PSI_SP 1 +#cmakedefine DISABLE_PSI_PS 1 +#cmakedefine DISABLE_PSI_IDLE 1 +#cmakedefine DISABLE_PSI_STATEMENT_DIGEST 1 +#cmakedefine DISABLE_PSI_METADATA 1 +#cmakedefine DISABLE_PSI_MEMORY 1 +#cmakedefine DISABLE_PSI_TRANSACTION 1 + +/* + * syscall +*/ +#cmakedefine HAVE_SYS_THREAD_SELFID 1 +#cmakedefine HAVE_SYS_GETTID 1 +#cmakedefine HAVE_PTHREAD_GETTHREADID_NP 1 +#cmakedefine HAVE_PTHREAD_SETNAME_NP 1 +#cmakedefine HAVE_INTEGER_PTHREAD_SELF 1 + +/* Platform-specific C++ compiler behaviors we rely upon */ + +/* + This macro defines whether the compiler in use needs a 'typename' keyword + to access the types defined inside a class template, such types are called + dependent types. Some compilers require it, some others forbid it, and some + others may work with or without it. For example, GCC requires the 'typename' + keyword whenever needing to access a type inside a template, but msvc + forbids it. + */ +#cmakedefine HAVE_IMPLICIT_DEPENDENT_NAME_TYPING 1 + + +/* + * MySQL version + */ +#cmakedefine DOT_FRM_VERSION @DOT_FRM_VERSION@ +#define MYSQL_VERSION_MAJOR @MAJOR_VERSION@ +#define MYSQL_VERSION_MINOR @MINOR_VERSION@ +#define MYSQL_VERSION_PATCH @PATCH_VERSION@ +#define MYSQL_VERSION_EXTRA "@EXTRA_VERSION@" +#define PACKAGE "mysql" +#define PACKAGE_BUGREPORT "" +#define PACKAGE_NAME "MySQL Server" +#define PACKAGE_STRING "MySQL Server @VERSION@" +#define PACKAGE_TARNAME "mysql" +#define PACKAGE_VERSION "@VERSION@" +#define VERSION "@VERSION@" +#define PROTOCOL_VERSION 10 + +/* + * CPU info + */ +#cmakedefine CPU_LEVEL1_DCACHE_LINESIZE @CPU_LEVEL1_DCACHE_LINESIZE@ + +/* + * NDB + */ +#cmakedefine WITH_NDBCLUSTER_STORAGE_ENGINE 1 +#cmakedefine HAVE_PTHREAD_SETSCHEDPARAM 1 + +/* + * Other + */ +#cmakedefine EXTRA_DEBUG 1 +#cmakedefine HAVE_CHOWN 1 + +/* + * Hardcoded values needed by libevent/NDB/memcached + */ +#define HAVE_FCNTL_H 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_INTTYPES_H 1 +/* libevent's select.c is not Windows compatible */ +#ifndef _WIN32 +#define HAVE_SELECT 1 +#endif +#define HAVE_SIGNAL_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRDUP 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOLL 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define SIZEOF_CHAR 1 + +/* + * Needed by libevent + */ +#cmakedefine HAVE_SOCKLEN_T 1 + +/* For --secure-file-priv */ +#cmakedefine DEFAULT_SECURE_FILE_PRIV_DIR @DEFAULT_SECURE_FILE_PRIV_DIR@ +#cmakedefine DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR @DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR@ +#cmakedefine HAVE_LIBNUMA 1 + +/* For default value of --early_plugin_load */ +#cmakedefine DEFAULT_EARLY_PLUGIN_LOAD @DEFAULT_EARLY_PLUGIN_LOAD@ + +#endif diff --git a/mysql/crypt_genhash_impl.h b/mysql/crypt_genhash_impl.h new file mode 100644 index 0000000..9909186 --- /dev/null +++ b/mysql/crypt_genhash_impl.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef CRYPT_HASHGEN_IMPL_H +#define CRYPT_HASHGEN_IMPL_H +#define ROUNDS_DEFAULT 5000 +#define ROUNDS_MIN 1000 +#define ROUNDS_MAX 999999999 +#define MIXCHARS 32 +#define CRYPT_SALT_LENGTH 20 +#define CRYPT_MAGIC_LENGTH 3 +#define CRYPT_PARAM_LENGTH 13 +#define SHA256_HASH_LENGTH 43 +#define CRYPT_MAX_PASSWORD_SIZE (CRYPT_SALT_LENGTH + \ + SHA256_HASH_LENGTH + \ + CRYPT_MAGIC_LENGTH + \ + CRYPT_PARAM_LENGTH) + +#include +#include + +int extract_user_salt(char **salt_begin, + char **salt_end); +C_MODE_START +char * +my_crypt_genhash(char *ctbuffer, + size_t ctbufflen, + const char *plaintext, + size_t plaintext_len, + const char *switchsalt, + const char **params); +void generate_user_salt(char *buffer, int buffer_len); +void xor_string(char *to, int to_len, char *pattern, int pattern_len); + +C_MODE_END +#endif diff --git a/mysql/decimal.h b/mysql/decimal.h new file mode 100644 index 0000000..f963b6f --- /dev/null +++ b/mysql/decimal.h @@ -0,0 +1,137 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef DECIMAL_INCLUDED +#define DECIMAL_INCLUDED + +typedef enum +{TRUNCATE=0, HALF_EVEN, HALF_UP, CEILING, FLOOR} + decimal_round_mode; +typedef int32 decimal_digit_t; + +/** + intg is the number of *decimal* digits (NOT number of decimal_digit_t's !) + before the point + frac is the number of decimal digits after the point + len is the length of buf (length of allocated space) in decimal_digit_t's, + not in bytes + sign false means positive, true means negative + buf is an array of decimal_digit_t's + */ +typedef struct st_decimal_t { + int intg, frac, len; + my_bool sign; + decimal_digit_t *buf; +} decimal_t; + +#ifndef MYSQL_ABI_CHECK +int internal_str2dec(const char *from, decimal_t *to, char **end, + my_bool fixed); +int decimal2string(const decimal_t *from, char *to, int *to_len, + int fixed_precision, int fixed_decimals, + char filler); +int decimal2ulonglong(decimal_t *from, ulonglong *to); +int ulonglong2decimal(ulonglong from, decimal_t *to); +int decimal2longlong(decimal_t *from, longlong *to); +int longlong2decimal(longlong from, decimal_t *to); +int decimal2double(const decimal_t *from, double *to); +int double2decimal(double from, decimal_t *to); +int decimal_actual_fraction(decimal_t *from); +int decimal2bin(decimal_t *from, uchar *to, int precision, int scale); +int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale); + +/** + Convert decimal to lldiv_t. + The integer part is stored in to->quot. + The fractional part is multiplied to 10^9 and stored to to->rem. + @param from Decimal value + @param to lldiv_t value + @retval 0 on success + @retval !0 in error +*/ +int decimal2lldiv_t(const decimal_t *from, lldiv_t *to); + +/** + Convert doube to lldiv_t. + The integer part is stored in to->quot. + The fractional part is multiplied to 10^9 and stored to to->rem. + @param from Decimal value + @param to lldiv_t value + @retval 0 on success + @retval !0 in error +*/ + +int double2lldiv_t(double from, lldiv_t *to); +int decimal_size(int precision, int scale); +int decimal_bin_size(int precision, int scale); +int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, + int param); + +int decimal_intg(const decimal_t *from); +int decimal_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_cmp(const decimal_t *from1, const decimal_t *from2); +int decimal_mul(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_div(const decimal_t *from1, const decimal_t *from2, decimal_t *to, + int scale_incr); +int decimal_mod(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_round(const decimal_t *from, decimal_t *to, int new_scale, + decimal_round_mode mode); +int decimal_is_zero(const decimal_t *from); +void max_decimal(int precision, int frac, decimal_t *to); + +#define string2decimal(A,B,C) internal_str2dec((A), (B), (C), 0) +#define string2decimal_fixed(A,B,C) internal_str2dec((A), (B), (C), 1) + +/* set a decimal_t to zero */ + +#define decimal_make_zero(dec) do { \ + (dec)->buf[0]=0; \ + (dec)->intg=1; \ + (dec)->frac=0; \ + (dec)->sign=0; \ + } while(0) + +/* + returns the length of the buffer to hold string representation + of the decimal (including decimal dot, possible sign and \0) +*/ + +#define decimal_string_size(dec) (((dec)->intg ? (dec)->intg : 1) + \ + (dec)->frac + ((dec)->frac > 0) + 2) + +/* + conventions: + + decimal_smth() == 0 -- everything's ok + decimal_smth() <= 1 -- result is usable, but precision loss is possible + decimal_smth() <= 2 -- result can be unusable, most significant digits + could've been lost + decimal_smth() > 2 -- no result was generated +*/ + +#define E_DEC_OK 0 +#define E_DEC_TRUNCATED 1 +#define E_DEC_OVERFLOW 2 +#define E_DEC_DIV_ZERO 4 +#define E_DEC_BAD_NUM 8 +#define E_DEC_OOM 16 + +#define E_DEC_ERROR 31 +#define E_DEC_FATAL_ERROR 30 + +#endif // !MYSQL_ABI_CHECK + +#endif diff --git a/mysql/errmsg.h b/mysql/errmsg.h new file mode 100644 index 0000000..9c5327a --- /dev/null +++ b/mysql/errmsg.h @@ -0,0 +1,113 @@ +#ifndef ERRMSG_INCLUDED +#define ERRMSG_INCLUDED + +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Error messages for MySQL clients */ +/* (Error messages for the daemon are in sql/share/errmsg.txt) */ + +#ifdef __cplusplus +extern "C" { +#endif +void init_client_errs(void); +void finish_client_errs(void); +extern const char *client_errors[]; /* Error messages */ +#ifdef __cplusplus +} +#endif + +#define CR_MIN_ERROR 2000 /* For easier client code */ +#define CR_MAX_ERROR 2999 +#if !defined(ER) +#define ER(X) (((X) >= CR_ERROR_FIRST && (X) <= CR_ERROR_LAST)? \ + client_errors[(X)-CR_ERROR_FIRST]: client_errors[CR_UNKNOWN_ERROR]) + +#endif +#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */ + +/* Do not add error numbers before CR_ERROR_FIRST. */ +/* If necessary to add lower numbers, change CR_ERROR_FIRST accordingly. */ +#define CR_ERROR_FIRST 2000 /*Copy first error nr.*/ +#define CR_UNKNOWN_ERROR 2000 +#define CR_SOCKET_CREATE_ERROR 2001 +#define CR_CONNECTION_ERROR 2002 +#define CR_CONN_HOST_ERROR 2003 +#define CR_IPSOCK_ERROR 2004 +#define CR_UNKNOWN_HOST 2005 +#define CR_SERVER_GONE_ERROR 2006 +#define CR_VERSION_ERROR 2007 +#define CR_OUT_OF_MEMORY 2008 +#define CR_WRONG_HOST_INFO 2009 +#define CR_LOCALHOST_CONNECTION 2010 +#define CR_TCP_CONNECTION 2011 +#define CR_SERVER_HANDSHAKE_ERR 2012 +#define CR_SERVER_LOST 2013 +#define CR_COMMANDS_OUT_OF_SYNC 2014 +#define CR_NAMEDPIPE_CONNECTION 2015 +#define CR_NAMEDPIPEWAIT_ERROR 2016 +#define CR_NAMEDPIPEOPEN_ERROR 2017 +#define CR_NAMEDPIPESETSTATE_ERROR 2018 +#define CR_CANT_READ_CHARSET 2019 +#define CR_NET_PACKET_TOO_LARGE 2020 +#define CR_EMBEDDED_CONNECTION 2021 +#define CR_PROBE_SLAVE_STATUS 2022 +#define CR_PROBE_SLAVE_HOSTS 2023 +#define CR_PROBE_SLAVE_CONNECT 2024 +#define CR_PROBE_MASTER_CONNECT 2025 +#define CR_SSL_CONNECTION_ERROR 2026 +#define CR_MALFORMED_PACKET 2027 +#define CR_WRONG_LICENSE 2028 + +/* new 4.1 error codes */ +#define CR_NULL_POINTER 2029 +#define CR_NO_PREPARE_STMT 2030 +#define CR_PARAMS_NOT_BOUND 2031 +#define CR_DATA_TRUNCATED 2032 +#define CR_NO_PARAMETERS_EXISTS 2033 +#define CR_INVALID_PARAMETER_NO 2034 +#define CR_INVALID_BUFFER_USE 2035 +#define CR_UNSUPPORTED_PARAM_TYPE 2036 + +#define CR_SHARED_MEMORY_CONNECTION 2037 +#define CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR 2038 +#define CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR 2039 +#define CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR 2040 +#define CR_SHARED_MEMORY_CONNECT_MAP_ERROR 2041 +#define CR_SHARED_MEMORY_FILE_MAP_ERROR 2042 +#define CR_SHARED_MEMORY_MAP_ERROR 2043 +#define CR_SHARED_MEMORY_EVENT_ERROR 2044 +#define CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR 2045 +#define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2046 +#define CR_CONN_UNKNOW_PROTOCOL 2047 +#define CR_INVALID_CONN_HANDLE 2048 +#define CR_UNUSED_1 2049 +#define CR_FETCH_CANCELED 2050 +#define CR_NO_DATA 2051 +#define CR_NO_STMT_METADATA 2052 +#define CR_NO_RESULT_SET 2053 +#define CR_NOT_IMPLEMENTED 2054 +#define CR_SERVER_LOST_EXTENDED 2055 +#define CR_STMT_CLOSED 2056 +#define CR_NEW_STMT_METADATA 2057 +#define CR_ALREADY_CONNECTED 2058 +#define CR_AUTH_PLUGIN_CANNOT_LOAD 2059 +#define CR_DUPLICATE_CONNECTION_ATTR 2060 +#define CR_AUTH_PLUGIN_ERR 2061 +#define CR_INSECURE_API_ERR 2062 +#define CR_ERROR_LAST /*Copy last error nr:*/ 2062 +/* Add error numbers before CR_ERROR_LAST and change it accordingly. */ + +#endif /* ERRMSG_INCLUDED */ diff --git a/mysql/extra/yassl/COPYING b/mysql/extra/yassl/COPYING new file mode 100644 index 0000000..845980a --- /dev/null +++ b/mysql/extra/yassl/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/mysql/extra/yassl/FLOSS-EXCEPTIONS b/mysql/extra/yassl/FLOSS-EXCEPTIONS new file mode 100644 index 0000000..47f86ff --- /dev/null +++ b/mysql/extra/yassl/FLOSS-EXCEPTIONS @@ -0,0 +1,121 @@ +yaSSL FLOSS License Exception +**************************************** + +Version 0.2, 31 August 2006 + +The Sawtooth Consulting Ltd. Exception for Free/Libre and Open Source +Software-only Applications Using yaSSL Libraries (the "FLOSS Exception"). + +*Exception Intent* + +We want specified Free/Libre and Open Source Software ("FLOSS") +applications to be able to use specified GPL-licensed yaSSL +libraries (the "Program") despite the fact that not all FLOSS +licenses are compatible with version 2 of the GNU General Public +License (the "GPL"). + +*Legal Terms and Conditions* + +As a special exception to the terms and conditions of version 2.0 of +the GPL: + + 1. You are free to distribute a Derivative Work that is formed + entirely from the Program and one or more works (each, a "FLOSS + Work") licensed under one or more of the licenses listed below + in section 1, as long as: + + 1. You obey the GPL in all respects for the Program and the + Derivative Work, except for identifiable sections of the + Derivative Work which are not derived from the Program, + and which can reasonably be considered independent and + separate works in themselves, + + 2. all identifiable sections of the Derivative Work which + are not derived from the Program, and which can reasonably be + considered independent and separate works in themselves, + + * i + + are distributed subject to one of the FLOSS licenses + listed below, and + + * ii + + the object code or executable form of those sections are + accompanied by the complete corresponding machine-readable + source code for those sections on the same medium and under + the same FLOSS license as the corresponding object code or + executable forms of those sections, and + + + 3. any works which are aggregated with the Program or with + a Derivative Work on a volume of a storage or distribution + medium in accordance with the GPL, can reasonably be considered + independent and separate works in themselves which are not + derivatives of either the Program, a Derivative Work or a FLOSS + Work. + + + If the above conditions are not met, then the Program may only be + copied, modified, distributed or used under the terms and + conditions of the GPL or another valid licensing option from + Sawtooth Consulting Ltd. + + 2. FLOSS License List + + *License name* *Version(s)/Copyright Date* + Academic Free License 2.0 + Apache Software License 1.0/1.1/2.0 + Apple Public Source License 2.0 + Artistic license From Perl 5.8.0 + BSD license "July 22 1999" + Common Development and Distribution License (CDDL) 1.0 + Common Public License 1.0 + GNU Library or "Lesser" General Public 2.0/2.1 + License (LGPL) + Jabber Open Source License 1.0 + MIT license - + Mozilla Public License (MPL) 1.0/1.1 + Open Software License 2.0 + PHP License 3.0 + Python license (CNRI Python License) - + Python Software Foundation License 2.1.1 + Sleepycat License "1999" + University of Illinois/NCSA Open Source License - + W3C License "2001" + X11 License "2001" + Zlib/libpng License - + Zope Public License 2.0 + + Due to the many variants of some of the above licenses, we require + that any version follow the 2003 version of the Free Software + Foundation's Free Software Definition + (http://www.gnu.org/philosophy/free-sw.html + (http://www.gnu.org/philosophy/free-sw.html)) or version 1.9 of + the Open Source Definition by the Open Source Initiative + (http://www.opensource.org/docs/definition.php + (http://www.opensource.org/docs/definition.php)). + + 3. Definitions + + 1. Terms used, but not defined, herein shall have the + meaning provided in the GPL. + + 2. Derivative Work means a derivative work under copyright + law. + + + 4. Applicability This FLOSS Exception applies to all Programs that + contain a notice placed by Sawtooth Consulting Ltd. saying that the + Program may be distributed under the terms of this FLOSS Exception. + If you create or distribute a work which is a Derivative Work of + both the Program and any other work licensed under the GPL, then + this FLOSS Exception is not available for that work; thus, you + must remove the FLOSS Exception notice from that work and + comply with the GPL in all respects, including by retaining all + GPL notices. You may choose to redistribute a copy of the + Program exclusively under the terms of the GPL by removing the + FLOSS Exception notice from that copy of the Program, provided + that the copy has never been modified by you or any third party. + + diff --git a/mysql/extra/yassl/README b/mysql/extra/yassl/README new file mode 100644 index 0000000..de1bf51 --- /dev/null +++ b/mysql/extra/yassl/README @@ -0,0 +1,786 @@ +*** Note, Please read *** + +yaSSL takes a different approach to certificate verification than OpenSSL does. +The default policy for the client is to verify the server, this means that if +you don't load CAs to verify the server you'll get a connect error, unable to +verify. It you want to mimic OpenSSL behavior of not verifying the server and +reducing security you can do this by calling: + +SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); + +before calling SSL_new(); + +*** end Note *** + +yaSSL Release notes, version 2.4.4 (8/8/2017) + This release of yaSSL fixes an interop issue. A fix for detecting cipher + suites with non leading zeros is included as yaSSL only supports cipher + suites with leading zeros. Thanks for the report from Security Innovation + and Oracle. + + Users interoping with other SSL stacks should update. + +yaSSL Release notes, version 2.4.2 (9/22/2016) + This release of yaSSL fixes a medium security vulnerability. A fix for + potential AES side channel leaks is included that a local user monitoring + the same CPU core cache could exploit. VM users, hyper-threading users, + and users where potential attackers have access to the CPU cache will need + to update if they utilize AES. + + DSA padding fixes for unusual sizes is included as well. Users with DSA + certficiates should update. + +yaSSL Release notes, version 2.4.0 (5/20/2016) + This release of yaSSL fixes the OpenSSL compatibility function + SSL_CTX_load_verify_locations() when using the path directory to allow + unlimited path sizes. Minor Windows build fixes are included. + No high level security fixes in this version but we always recommend + updating. + + +yaSSL Release notes, version 2.3.9b (2/03/2016) + This release of yaSSL fixes the OpenSSL compatibility function + X509_NAME_get_index_by_NID() to use the actual index of the common name + instead of searching on the format prefix. Thanks for the report from + yashwant.sahu@oracle.com . Anyone using this function should update. + +yaSSL Release notes, version 2.3.9 (12/01/2015) + This release of yaSSL fixes two client side Diffie-Hellman problems. + yaSSL was only handling the cases of zero or one leading zeros for the key + agreement instead of potentially any number. This caused about 1 in 50,000 + connections to fail when using DHE cipher suites. The second problem was + the case where a server would send a public value shorter than the prime + value, causing about 1 in 128 client connections to fail, and also + caused the yaSSL client to read off the end of memory. All client side + DHE cipher suite users should update. + Thanks to Adam Langely (agl@imperialviolet.org) for the detailed report! + +yaSSL Release notes, version 2.3.8 (9/17/2015) + This release of yaSSL fixes a high security vulnerability. All users + SHOULD update. If using yaSSL for TLS on the server side with private + RSA keys allowing ephemeral key exchange you MUST update and regenerate + the RSA private keys. This report is detailed in: + https://people.redhat.com/~fweimer/rsa-crt-leaks.pdf + yaSSL now detects RSA signature faults and returns an error. + +yaSSL Patch notes, version 2.3.7e (6/26/2015) + This release of yaSSL includes a fix for Date less than comparison. + Previously yaSSL would return true on less than comparisons if the Dates + were equal. Reported by Oracle. No security problem, but if a cert was + generated right now, a server started using it in the same second, and a + client tried to verify it in the same second it would report not yet valid. + +yaSSL Patch notes, version 2.3.7d (6/22/2015) + This release of yaSSL includes a fix for input_buffer set_current with + index 0. SSL_peek() at front of waiting data could trigger. Robert + Golebiowski of Oracle identified and suggested a fix, thanks! + +yaSSL Patch notes, version 2.3.7c (6/12/2015) + This release of yaSSL does certificate DATE comparisons to the second + instead of to the minute, helpful when using freshly generated certs. + Though keep in mind that time sync differences could still show up. + +yaSSL Patch notes, version 2.3.7b (3/18/2015) + This release of yaSSL fixes a potential crash with corrupted private keys. + Also detects bad keys earlier for user. + +yaSSL Release notes, version 2.3.7 (12/10/2014) + This release of yaSSL fixes the potential to process duplicate handshake + messages by explicitly marking/checking received handshake messages. + +yaSSL Release notes, version 2.3.6 (11/25/2014) + + This release of yaSSL fixes some valgrind warnings/errors including + uninitialized reads and off by one index errors induced from fuzzing + the handshake. These were reported by Oracle. + +yaSSL Release notes, version 2.3.5 (9/29/2014) + + This release of yaSSL fixes an RSA Padding check vulnerability reported by + Intel Security Advanced Threat Research team + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +yaSSL Release notes, version 2.3.4 (8/15/2014) + + This release of yaSSL adds checking to the input_buffer class itself. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +yaSSL Release notes, version 2.3.2 (7/25/2014) + + This release of yaSSL updates test certs. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.3.0 (12/5/2013) + + This release of yaSSL updates asm for newer GCC versions. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.2.3 (4/23/2013) + + This release of yaSSL updates the test certificates as they were expired + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.2.2d (2/5/2013) + + This release of yaSSL contains countermeasuers for the Lucky 13 TLS 1.1 + CBC timing padding attack identified by Nadhem AlFardan and Kenneth Paterson + see: http://www.isg.rhul.ac.uk/tls/ + + It also adds SHA2 certificate verification and better checks for malicious + input. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.2.2 (7/5/2012) + + This release of yaSSL contains bug fixes and more security checks around + malicious certificates. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.1.2 (9/2/2011) + + This release of yaSSL contains bug fixes, better non-blocking support with + SSL_write, and OpenSSL RSA public key format support. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.0.0 (7/6/2010) + + This release of yaSSL contains bug fixes, new testing certs, + and a security patch for a potential heap overflow on forged application + data processing. Vulnerability discovered by Matthieu Bonetti from VUPEN + Security http://www.vupen.com. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.9.9 (1/26/2010) + + This release of yaSSL contains bug fixes, the removal of assert() s and + a security patch for a buffer overflow possibility in certificate name + processing. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.9.8 (10/14/09) + + This release of yaSSL contains bug fixes and adds new stream ciphers + Rabbit and HC-128 + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.9.6 (11/13/08) + + This release of yaSSL contains bug fixes, adds autconf shared library + support and has better server suite detection based on certficate and + private key. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.9.2 (9/24/08) + + This release of yaSSL contains bug fixes and improved certificate verify + callback support. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.8.8 (5/7/08) + + This release of yaSSL contains bug fixes, and better socket handling. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.8.6 (1/31/08) + + This release of yaSSL contains bug fixes, and fixes security problems + associated with using SSL 2.0 client hellos and improper input handling. + Please upgrade to this version if you are using a previous one. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.7.5 (10/15/07) + + This release of yaSSL contains bug fixes, adds MSVC 2005 project support, + GCC 4.2 support, IPV6 support and test, and new test certificates. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.7.2 (8/20/07) + + This release of yaSSL contains bug fixes and adds initial OpenVPN support. + Just configure at this point and beginning of build. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.6.8 (4/16/07) + + This release of yaSSL contains bug fixes and adds SHA-256, SHA-512, SHA-224, + and SHA-384. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 1.6.0 (2/22/07) + + This release of yaSSL contains bug fixes, portability enhancements, and + better X509 support. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + +*****************yaSSL Release notes, version 1.5.8 (1/10/07) + + This release of yaSSL contains bug fixes, portability enhancements, and + support for GCC 4.1.1 and vs2005 sp1. + + + + Since yaSSL now supports zlib, as does libcurl, the libcurl build test can + fail if yaSSL is built with zlib support since the zlib library isn't + passed. You can do two things to fix this: + + 1) build yaSSL w/o zlib --without-zlib + 2) or add flags to curl configure LDFLAGS="-lm -lz" + + + +*****************yaSSL Release notes, version 1.5.0 (11/09/06) + + This release of yaSSL contains bug fixes, portability enhancements, + and full TLS 1.1 support. Use the functions: + + SSL_METHOD *TLSv1_1_server_method(void); + SSL_METHOD *TLSv1_1_client_method(void); + + or the SSLv23 versions (even though yaSSL doesn't support SSL 2.0 the v23 + means to pick the highest of SSL 3.0, TLS 1.0, or TLS 1.1). + + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + + +****************yaSSL Release notes, version 1.4.5 (10/15/06) + + + This release of yaSSL contains bug fixes, portability enhancements, + zlib compression support, removal of assembly instructions at runtime if + not supported, and initial TLS 1.1 support. + + + Compression Notes: yaSSL uses zlib for compression and the compression + should only be used if yaSSL is at both ends because the implementation + details aren't yet standard. If you'd like to turn compression on use + the SSL_set_compression() function on the client before calling + SSL_connect(). If both the client and server were built with zlib support + then the connection will use compression. If the client isn't built with + support then SSL_set_compression() will return an error (-1). + + To build yaSSL with zlib support on Unix simply have zlib support on your + system and configure will find it if it's in the standard locations. If + it's somewhere else use the option ./configure --with-zlib=DIR. If you'd + like to disable compression support in yaSSL use ./configure --without-zlib. + + To build yaSSL with zlib support on Windows: + + 1) download zlib from http://www.zlib.net/ + 2) follow the instructions in zlib from projects/visualc6/README.txt + for how to add the zlib project into the yaSSL workspace noting that + you'll need to add configuration support for "Win32 Debug" and + "Win32 Release" in note 3 under "To use:". + 3) define HAVE_LIBZ when building yaSSL + + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + +********************yaSSL Release notes, version 1.4.0 (08/13/06) + + + This release of yaSSL contains bug fixes, portability enhancements, + nonblocking connect and accept, better OpenSSL error mapping, and + certificate caching for session resumption. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + +********************yaSSL Release notes, version 1.3.7 (06/26/06) + + + This release of yaSSL contains bug fixes, portability enhancements, + and libcurl 7.15.4 support (any newer versions may not build). + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + +********************yaSSL Release notes, version 1.3.5 (06/01/06) + + + This release of yaSSL contains bug fixes, portability enhancements, + better libcurl support, and improved non-blocking I/O. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + +********************yaSSL Release notes, version 1.3.0 (04/26/06) + + + This release of yaSSL contains minor bug fixes, portability enhancements, + and libcurl support. + +See normal build instructions below under 1.0.6. + + +--To build for libcurl on Linux, Solaris, *BSD, Mac OS X, or Cygwin: + + To build for libcurl the library needs to be built without C++ globals since + the linker will be called in a C context, also libcurl configure will expect + OpenSSL library names so some symbolic links are created. + + ./configure --enable-pure-c + make + make openssl-links + + (then go to your libcurl home and tell libcurl about yaSSL build dir) + ./configure --with-ssl=/yaSSL-BuildDir LDFLAGS=-lm + make + + +--To build for libcurl on Win32: + + Simply add the yaSSL project as a dependency to libcurl, add + yaSSL-Home\include and yaSSL-Home\include\openssl to the include list, and + define USE_SSLEAY and USE_OPENSSL + + please email todd@yassl.com if you have any questions. + + +*******************yaSSL Release notes, version 1.2.2 (03/27/06) + + + This release of yaSSL contains minor bug fixes and portability enhancements. + +See build instructions below under 1.0.6: + + + +*******************yaSSL Release notes, version 1.2.0 + + + This release of yaSSL contains minor bug fixes, portability enhancements, + Diffie-Hellman compatibility fixes for other servers and client, + optimization improvements, and x86 ASM changes. + +See build instructions below under 1.0.6: + + + +*****************yaSSL Release notes, version 1.1.5 + + This release of yaSSL contains minor bug fixes, portability enhancements, + and user requested changes including the ability to add all certificates in + a directory, more robust socket handling, no new overloading unless + requested, and an SSL_VERIFY_NONE option. + + +See build instructions below under 1.0.6: + + + +******************yaSSL Release notes, version 1.0.6 + +This release of yaSSL contains minor bug fixes, portability enhancements, +x86 assembly for ARC4, SHA, MD5, and RIPEMD, --enable-ia32-asm configure +option, and a security patch for certificate chain processing. + +--To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin: + + ./configure + make + + run testsuite from yaSSL-Home/testsuite to test the build + +to make a release build: + + ./configure --disable-debug + make + + run testsuite from yaSSL-Home/testsuite to test the build + + +--To build on Win32 + +Choose (Re)Build All from the project workspace + +run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build + + + +***************** yaSSL Release notes, version 1.0.5 + +This release of yaSSL contains minor bug fixes, portability enhancements, +x86 assembly for AES, 3DES, BLOWFISH, and TWOFISH, --without-debug configure +option, and --enable-kernel-mode configure option for using TaoCrypt with +kernel modules. + +--To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin: + + ./configure + make + + run testsuite from yaSSL-Home/testsuite to test the build + +to make a release build: + + ./configure --without-debug + make + + run testsuite from yaSSL-Home/testsuite to test the build + + +--To build on Win32 + +Choose (Re)Build All from the project workspace + +run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build + + +******************yaSSL Release notes, version 1.0.1 + +This release of yaSSL contains minor bug fixes, portability enhancements, +GCC 3.4.4 support, MSVC 2003 support, and more documentation. + +Please see build instructions in the release notes for 0.9.6 below. + + +******************yaSSL Release notes, version 1.0 + +This release of yaSSL contains minor bug fixes, portability enhancements, +GCC 4.0 support, testsuite, improvements, and API additions. + +Please see build instructions in the release notes for 0.9.6 below. + + +******************yaSSL Release notes, version 0.9.9 + +This release of yaSSL contains minor bug fixes, portability enchancements, +MSVC 7 support, memory improvements, and API additions. + +Please see build instructions in the release notes for 0.9.6 below. + + +******************yaSSL Release notes, version 0.9.8 + +This release of yaSSL contains minor bug fixes and portability enchancements. + +Please see build instructions in the release notes for 0.9.6 below. + + +******************yaSSL Release notes, version 0.9.6 + +This release of yaSSL contains minor bug fixes, removal of STL support, and +removal of exceptions and rtti so that the library can be linked without the +std c++ library. + +--To build on Linux, Solaris, FreeBSD, Mac OS X, or Cygwin + +./configure +make + +run testsuite from yaSSL-Home/testsuite to test the build + + +--To build on Win32 + +Choose (Re)Build All from the project workspace + +run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build + + + +******************yaSSL Release notes, version 0.9.2 + +This release of yaSSL contains minor bug fixes, expanded certificate +verification and chaining, and improved documentation. + +Please see build instructions in release notes 0.3.0. + + + +******************yaSSL Release notes, version 0.9.0 + +This release of yaSSL contains minor bug fixes, client verification handling, +hex and base64 encoing/decoding, and an improved test suite. + +Please see build instructions in release notes 0.3.0. + + +******************yaSSL Release notes, version 0.8.0 + +This release of yaSSL contains minor bug fixes, and initial porting effort to +64bit, BigEndian, and more UNIX systems. + +Please see build instructions in release notes 0.3.0. + + +******************yaSSL Release notes, version 0.6.0 + +This release of yaSSL contains minor bug fixes, source cleanup, and binary beta +(1) of the yaSSL libraries. + +Please see build instructions in release notes 0.3.0. + + + +******************yaSSL Release notes, version 0.5.0 + +This release of yaSSL contains minor bug fixes, full session resumption +support, and initial testing suite support. + + + +Please see build instructions in release notes 0.3.0. + + + +******************yaSSL Release notes, version 0.4.0 + +This release of yaSSL contains minor bug fixes, an optional memory tracker, +an echo client and server with input/output redirection for load testing, +and initial session caching support. + + +Please see build instructions in release notes 0.3.0. + + +******************yaSSL Release notes, version 0.3.5 + +This release of yaSSL contains minor bug fixes and extensions to the crypto +library including a full test suite. + + +*******************yaSSL Release notes, version 0.3.0 + +This release of yaSSL contains minor bug fixes and extensions to the crypto +library including AES and an improved random number generator. GNU autoconf +and automake are now used to simplify the build process on Linux. + +*** Linux Build process + +./configure +make + +*** Windows Build process + +open the yassl workspace and build the project + + +*******************yaSSL Release notes, version 0.2.9 + +This release of yaSSL contains minor bug fixes and extensions to the crypto +library. + +See the notes at the bottom of this page for build instructions. + + +*******************yaSSL Release notes, version 0.2.5 + +This release of yaSSL contains minor bug fixes and a beta binary of the yaSSL +libraries for win32 and linux. + +See the notes at the bottom of this page for build instructions. + + + +*******************yaSSL Release notes, version 0.2.0 + +This release of yaSSL contains minor bug fixes and initial alternate crypto +functionality. + +*** Complete Build *** + +See the notes in Readme.txt for build instructions. + +*** Update Build *** + +If you have already done a complete build of yaSSL as described in the release +0.0.1 - 0.1.0 notes and downloaded the update to 0.2.0, place the update file +yassl-update-0.2.0.tar.gz in the yaSSL home directory and issue the command: + +gzip -cd yassl-update-0.2.0.tar.gz | tar xvf - + +to update the previous release. + +Then issue the make command on linux or rebuild the yaSSL project on Windows. + +*******************yaSSL Release notes, version 0.1.0 + +This release of yaSSL contains minor bug fixes, full client and server TLSv1 +support including full ephemeral Diffie-Hellman support, SSL type RSA and DSS +signing and verification, and initial stunnel 4.05 build support. + + + +*********************yaSSL Release notes, version 0.0.3 + +The third release of yaSSL contains minor bug fixes, client certificate +enhancements, and initial ephemeral Diffie-Hellman integration: + + + +********************* + +yaSSL Release notes, version 0.0.2 + +The second release of yaSSL contains minor bug fixes, client certificate +enhancements, session resumption, and improved TLS support including: + +- HMAC for MD5 and SHA-1 +- PRF (pseudo random function) +- Master Secret and Key derivation routines +- Record Authentication codes +- Finish verify data check + +Once ephemeral RSA and DH are added yaSSL will be fully complaint with TLS. + + + +********************** + +yassl Release notes, version 0.0.1 + +The first release of yassl supports normal RSA mode SSLv3 connections with +support for SHA-1 and MD5 digests. Ciphers include DES, 3DES, and RC4. + +yassl uses the CryptoPP library for cryptography, the source is available at +www.cryptopp.com . + +yassl uses CML (the Certificate Management Library) for x509 support. More +features will be in future versions. The CML source is available for download +from www.digitalnet.com/knowledge/cml_home.htm . + +The next release of yassl will support the 3 lesser-used SSL connection modes; +HandShake resumption, Ephemeral RSA (or DH), and Client Authentication as well +as full support for TLS. Backwards support for SSLv2 is not planned at this +time. + + +********************** + +Building yassl on linux: + +use the ./buildall script to build everything. + +buildall will configure and build CML, CryptoPP, and yassl. Testing was +preformed with gcc version 3.3.2 on kernel 2.4.22. + + +********************** + +Building yassl on Windows: + +Testing was preformed on Windows 2000 with Visual C++ 6 sp5. + +1) decompress esnacc_r16.tgz in place, see buildall for syntax if unsure + +2) decompress smp_r23.tgz in place + +3) unzip cryptopp51/crypto51.zip in place + +4) Build SNACC (part of CML) using snacc_builds.dsw in the SNACC directory + +5) Build SMP (part of CMP) using smp.dsw in the smp directory + +6) Build yassl using yassl.dsw + + +********************** + +examples, server and client: + +Please see the server and client examples in both versions to see how to link +to yassl and the support libraries. On linux do 'make server' and 'make +client' to build them. On Windows you will find the example projects in the +main workspace, yassl.dsw. + +The example server and client are compatible with openssl. + + +********************** + +Building yassl into mysql on linux: + +Testing was done using mysql version 4.0.17. + +alter openssl_libs in the configure file, line 21056. Change '-lssl -lcrypto' +to '-lyassl -lcryptopp -lcmapi -lcmlasn -lctil -lc++asn1'. + +see build/config_command for the configure command used to configure mysql +please change /home/touska/ to the relevant directory of course. + +add yassl/lib to the LD_LIBRARY_PATH because libmysql/conf_to_src does not +use the ssl lib directory though it does use the ssl libraries. + +make + +make install + + +********************* + +License: yassl is currently under the GPL, please see license information +in the source and include files. + + +********************* + +Contact: please send comments or questions to Todd A Ouska at todd@yassl.com +and/or Larry Stefonic at larry@yassl.com. + + + diff --git a/mysql/extra/yassl/include/buffer.hpp b/mysql/extra/yassl/include/buffer.hpp new file mode 100644 index 0000000..77d2ed8 --- /dev/null +++ b/mysql/extra/yassl/include/buffer.hpp @@ -0,0 +1,211 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL buffer header defines input and output buffers to simulate streaming + * with SSL types and sockets + */ + +#ifndef yaSSL_BUFFER_HPP +#define yaSSL_BUFFER_HPP + +#include // assert +#include "yassl_types.hpp" // ysDelete +#include "memory.hpp" // mySTL::auto_ptr +#include STL_ALGORITHM_FILE + + +namespace STL = STL_NAMESPACE; + + +#ifdef _MSC_VER + // disable truncated debug symbols + #pragma warning(disable:4786) +#endif + + +namespace yaSSL { + +typedef unsigned char byte; +typedef unsigned int uint; +const uint AUTO = 0xFEEDBEEF; + + + +struct NoCheck { + int check(uint, uint); +}; + +struct Check { + int check(uint, uint); +}; + +/* input_buffer operates like a smart c style array with a checking option, + * meant to be read from through [] with AUTO index or read(). + * Should only write to at/near construction with assign() or raw (e.g., recv) + * followed by add_size with the number of elements added by raw write. + * + * Not using vector because need checked []access, offset, and the ability to + * write to the buffer bulk wise and have the correct size + */ + +class input_buffer : public Check { + uint size_; // number of elements in buffer + uint current_; // current offset position in buffer + byte* buffer_; // storage for buffer + byte* end_; // end of storage marker + int error_; // error number + byte zero_; // for returning const reference to zero byte +public: + input_buffer(); + + explicit input_buffer(uint s); + + // with assign + input_buffer(uint s, const byte* t, uint len); + + ~input_buffer(); + + // users can pass defualt zero length buffer and then allocate + void allocate(uint s); + + // for passing to raw writing functions at beginning, then use add_size + byte* get_buffer() const; + + // after a raw write user can set new size + // if you know the size before the write use assign() + void add_size(uint i); + + uint get_capacity() const; + + uint get_current() const; + + uint get_size() const; + + uint get_remaining() const; + + int get_error() const; + + void set_error(); + + void set_current(uint i); + + // read only access through [], advance current + // user passes in AUTO index for ease of use + const byte& operator[](uint i); + + // end of input test + bool eof(); + + // peek ahead + byte peek(); + + // write function, should use at/near construction + void assign(const byte* t, uint s); + + // use read to query input, adjusts current + void read(byte* dst, uint length); + +private: + input_buffer(const input_buffer&); // hide copy + input_buffer& operator=(const input_buffer&); // and assign +}; + + +/* output_buffer operates like a smart c style array with a checking option. + * Meant to be written to through [] with AUTO index or write(). + * Size (current) counter increases when written to. Can be constructed with + * zero length buffer but be sure to allocate before first use. + * Don't use add write for a couple bytes, use [] instead, way less overhead. + * + * Not using vector because need checked []access and the ability to + * write to the buffer bulk wise and retain correct size + */ +class output_buffer : public NoCheck { + uint current_; // current offset and elements in buffer + byte* buffer_; // storage for buffer + byte* end_; // end of storage marker +public: + // default + output_buffer(); + + // with allocate + explicit output_buffer(uint s); + + // with assign + output_buffer(uint s, const byte* t, uint len); + + ~output_buffer(); + + uint get_size() const; + + uint get_capacity() const; + + void set_current(uint c); + + // users can pass defualt zero length buffer and then allocate + void allocate(uint s); + + // for passing to reading functions when finished + const byte* get_buffer() const; + + // allow write access through [], update current + // user passes in AUTO as index for ease of use + byte& operator[](uint i); + + // end of output test + bool eof(); + + void write(const byte* t, uint s); + +private: + output_buffer(const output_buffer&); // hide copy + output_buffer& operator=(const output_buffer&); // and assign +}; + + + + +// turn delete an incomplete type into comipler error instead of warning +template +inline void checked_delete(T* p) +{ + typedef char complete_type[sizeof(T) ? 1 : -1]; + (void)sizeof(complete_type); + ysDelete(p); +} + + +// checked delete functor increases effeciency, no indirection on function call +// sets pointer to zero so safe for std conatiners +struct del_ptr_zero +{ + template + void operator()(T*& p) const + { + T* tmp = 0; + STL::swap(tmp, p); + checked_delete(tmp); + } +}; + + + +} // naemspace + +#endif // yaSSL_BUUFER_HPP diff --git a/mysql/extra/yassl/include/cert_wrapper.hpp b/mysql/extra/yassl/include/cert_wrapper.hpp new file mode 100644 index 0000000..8e3393b --- /dev/null +++ b/mysql/extra/yassl/include/cert_wrapper.hpp @@ -0,0 +1,137 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. + */ + + +/* The certificate wrapper header defines certificate management functions + * + */ + + +#ifndef yaSSL_CERT_WRAPPER_HPP +#define yaSSL_CERT_WRAPPER_HPP + +#ifdef _MSC_VER + // disable truncated debug symbols + #pragma warning(disable:4786) +#endif + + +#include "yassl_types.hpp" // SignatureAlgorithm +#include "buffer.hpp" // input_buffer +#include "asn.hpp" // SignerList +#include "openssl/ssl.h" // internal and external use +#include STL_LIST_FILE +#include STL_ALGORITHM_FILE + + +namespace STL = STL_NAMESPACE; + + +namespace yaSSL { + +typedef unsigned char opaque; +class X509; // forward openSSL type + +using TaoCrypt::SignerList; + +// an x509 version 3 certificate +class x509 { + uint length_; + opaque* buffer_; +public: + explicit x509(uint sz); + ~x509(); + + uint get_length() const; + const opaque* get_buffer() const; + opaque* use_buffer(); + + x509(const x509&); + x509& operator=(const x509&); +private: + void Swap(x509&); +}; + + +// Certificate Manager keeps a list of the cert chain and public key +class CertManager { + typedef STL::list CertList; + + CertList list_; // self + input_buffer privateKey_; + + CertList peerList_; // peer + input_buffer peerPublicKey_; + X509* peerX509_; // peer's openSSL X509 + X509* selfX509_; // our own openSSL X509 + + SignatureAlgorithm keyType_; // self key type + SignatureAlgorithm peerKeyType_; // peer's key type + + SignerList signers_; // decoded CA keys and names + // plus verified chained certs + bool verifyPeer_; + bool verifyNone_; // no error if verify fails + bool failNoCert_; + bool sendVerify_; + bool sendBlankCert_; + VerifyCallback verifyCallback_; // user verify callback +public: + CertManager(); + ~CertManager(); + + void AddPeerCert(x509* x); // take ownership + void CopySelfCert(const x509* x); + int CopyCaCert(const x509* x); + int Validate(); + + int SetPrivateKey(const x509&); + + const x509* get_cert() const; + const opaque* get_peerKey() const; + const opaque* get_privateKey() const; + X509* get_peerX509() const; + X509* get_selfX509() const; + SignatureAlgorithm get_keyType() const; + SignatureAlgorithm get_peerKeyType() const; + + uint get_peerKeyLength() const; + uint get_privateKeyLength() const; + + bool verifyPeer() const; + bool verifyNone() const; + bool failNoCert() const; + bool sendVerify() const; + bool sendBlankCert() const; + + void setVerifyPeer(); + void setVerifyNone(); + void setFailNoCert(); + void setSendVerify(); + void setSendBlankCert(); + void setPeerX509(X509*); + void setVerifyCallback(VerifyCallback); +private: + CertManager(const CertManager&); // hide copy + CertManager& operator=(const CertManager&); // and assigin +}; + + +} // naemspace + +#endif // yaSSL_CERT_WRAPPER_HPP diff --git a/mysql/extra/yassl/include/crypto_wrapper.hpp b/mysql/extra/yassl/include/crypto_wrapper.hpp new file mode 100644 index 0000000..c0395cb --- /dev/null +++ b/mysql/extra/yassl/include/crypto_wrapper.hpp @@ -0,0 +1,428 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* The crypto wrapper header is used to define policies for the cipher + * components used by SSL. There are 3 policies to consider: + * + * 1) MAC, the Message Authentication Code used for each Message + * 2) Bulk Cipher, the Cipher used to encrypt/decrypt each Message + * 3) Atuhentication, the Digitial Signing/Verifiaction scheme used + * + * This header doesn't rely on a specific crypto libraries internals, + * only the implementation should. + */ + + +#ifndef yaSSL_CRYPTO_WRAPPER_HPP +#define yaSSL_CRYPTO_WRAPPER_HPP + +#include "yassl_types.hpp" +#include // FILE + + +namespace yaSSL { + + +// Digest policy should implement a get_digest, update, and get sizes for pad +// and digest +struct Digest : public virtual_base { + virtual void get_digest(byte*) = 0; + virtual void get_digest(byte*, const byte*, unsigned int) = 0; + virtual void update(const byte*, unsigned int) = 0; + virtual uint get_digestSize() const = 0; + virtual uint get_padSize() const = 0; + virtual ~Digest() {} +}; + + +// For use with NULL Digests +struct NO_MAC : public Digest { + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; +}; + + +// MD5 Digest +class MD5 : public Digest { +public: + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; + MD5(); + ~MD5(); + MD5(const MD5&); + MD5& operator=(const MD5&); +private: + struct MD5Impl; + MD5Impl* pimpl_; +}; + + +// SHA-1 Digest +class SHA : public Digest { +public: + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; + SHA(); + ~SHA(); + SHA(const SHA&); + SHA& operator=(const SHA&); +private: + struct SHAImpl; + SHAImpl* pimpl_; + +}; + + +// RIPEMD-160 Digest +class RMD : public Digest { +public: + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; + RMD(); + ~RMD(); + RMD(const RMD&); + RMD& operator=(const RMD&); +private: + struct RMDImpl; + RMDImpl* pimpl_; + +}; + + +// HMAC_MD5 +class HMAC_MD5 : public Digest { +public: + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; + HMAC_MD5(const byte*, unsigned int); + ~HMAC_MD5(); +private: + struct HMAC_MD5Impl; + HMAC_MD5Impl* pimpl_; + + HMAC_MD5(const HMAC_MD5&); + HMAC_MD5& operator=(const HMAC_MD5&); +}; + + +// HMAC_SHA-1 +class HMAC_SHA : public Digest { +public: + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; + HMAC_SHA(const byte*, unsigned int); + ~HMAC_SHA(); +private: + struct HMAC_SHAImpl; + HMAC_SHAImpl* pimpl_; + + HMAC_SHA(const HMAC_SHA&); + HMAC_SHA& operator=(const HMAC_SHA&); +}; + + +// HMAC_RMD +class HMAC_RMD : public Digest { +public: + void get_digest(byte*); + void get_digest(byte*, const byte*, unsigned int); + void update(const byte*, unsigned int); + uint get_digestSize() const; + uint get_padSize() const; + HMAC_RMD(const byte*, unsigned int); + ~HMAC_RMD(); +private: + struct HMAC_RMDImpl; + HMAC_RMDImpl* pimpl_; + + HMAC_RMD(const HMAC_RMD&); + HMAC_RMD& operator=(const HMAC_RMD&); +}; + + +// BulkCipher policy should implement encrypt, decrypt, get block size, +// and set keys for encrypt and decrypt +struct BulkCipher : public virtual_base { + virtual void encrypt(byte*, const byte*, unsigned int) = 0; + virtual void decrypt(byte*, const byte*, unsigned int) = 0; + virtual void set_encryptKey(const byte*, const byte* = 0) = 0; + virtual void set_decryptKey(const byte*, const byte* = 0) = 0; + virtual uint get_blockSize() const = 0; + virtual int get_keySize() const = 0; + virtual int get_ivSize() const = 0; + virtual ~BulkCipher() {} +}; + + +// For use with NULL Ciphers +struct NO_Cipher : public BulkCipher { + void encrypt(byte*, const byte*, unsigned int) {} + void decrypt(byte*, const byte*, unsigned int) {} + void set_encryptKey(const byte*, const byte*) {} + void set_decryptKey(const byte*, const byte*) {} + uint get_blockSize() const { return 0; } + int get_keySize() const { return 0; } + int get_ivSize() const { return 0; } +}; + + +// SSLv3 and TLSv1 always use DES in CBC mode so IV is required +class DES : public BulkCipher { +public: + void encrypt(byte*, const byte*, unsigned int); + void decrypt(byte*, const byte*, unsigned int); + void set_encryptKey(const byte*, const byte*); + void set_decryptKey(const byte*, const byte*); + uint get_blockSize() const { return DES_BLOCK; } + int get_keySize() const { return DES_KEY_SZ; } + int get_ivSize() const { return DES_IV_SZ; } + DES(); + ~DES(); +private: + struct DESImpl; + DESImpl* pimpl_; + + DES(const DES&); // hide copy + DES& operator=(const DES&); // & assign +}; + + +// 3DES Encrypt-Decrypt-Encrypt in CBC mode +class DES_EDE : public BulkCipher { +public: + void encrypt(byte*, const byte*, unsigned int); + void decrypt(byte*, const byte*, unsigned int); + void set_encryptKey(const byte*, const byte*); + void set_decryptKey(const byte*, const byte*); + uint get_blockSize() const { return DES_BLOCK; } + int get_keySize() const { return DES_EDE_KEY_SZ; } + int get_ivSize() const { return DES_IV_SZ; } + DES_EDE(); + ~DES_EDE(); +private: + struct DES_EDEImpl; + DES_EDEImpl* pimpl_; + + DES_EDE(const DES_EDE&); // hide copy + DES_EDE& operator=(const DES_EDE&); // & assign +}; + + +// Alledged RC4 +class RC4 : public BulkCipher { +public: + void encrypt(byte*, const byte*, unsigned int); + void decrypt(byte*, const byte*, unsigned int); + void set_encryptKey(const byte*, const byte*); + void set_decryptKey(const byte*, const byte*); + uint get_blockSize() const { return 0; } + int get_keySize() const { return RC4_KEY_SZ; } + int get_ivSize() const { return 0; } + RC4(); + ~RC4(); +private: + struct RC4Impl; + RC4Impl* pimpl_; + + RC4(const RC4&); // hide copy + RC4& operator=(const RC4&); // & assign +}; + + +// AES +class AES : public BulkCipher { +public: + void encrypt(byte*, const byte*, unsigned int); + void decrypt(byte*, const byte*, unsigned int); + void set_encryptKey(const byte*, const byte*); + void set_decryptKey(const byte*, const byte*); + uint get_blockSize() const { return AES_BLOCK_SZ; } + int get_keySize() const; + int get_ivSize() const { return AES_IV_SZ; } + explicit AES(unsigned int = AES_128_KEY_SZ); + ~AES(); +private: + struct AESImpl; + AESImpl* pimpl_; + + AES(const AES&); // hide copy + AES& operator=(const AES&); // & assign +}; + + +// Random number generator +class RandomPool { +public: + void Fill(opaque* dst, uint sz) const; + RandomPool(); + ~RandomPool(); + + int GetError() const; + + friend class RSA; + friend class DSS; + friend class DiffieHellman; +private: + struct RandomImpl; + RandomImpl* pimpl_; + + RandomPool(const RandomPool&); // hide copy + RandomPool& operator=(const RandomPool&); // & assign +}; + + +// Authentication policy should implement sign, and verify +struct Auth : public virtual_base { + virtual void sign(byte*, const byte*, unsigned int, const RandomPool&) = 0; + virtual bool verify(const byte*, unsigned int, const byte*, + unsigned int) = 0; + virtual uint get_signatureLength() const = 0; + virtual ~Auth() {} +}; + + +// For use with NULL Authentication schemes +struct NO_Auth : public Auth { + void sign(byte*, const byte*, unsigned int, const RandomPool&) {} + bool verify(const byte*, unsigned int, const byte*, unsigned int) + { return true; } +}; + + +// Digitial Signature Standard scheme +class DSS : public Auth { +public: + void sign(byte*, const byte*, unsigned int, const RandomPool&); + bool verify(const byte*, unsigned int, const byte*, unsigned int); + uint get_signatureLength() const; + DSS(const byte*, unsigned int, bool publicKey = true); + ~DSS(); +private: + struct DSSImpl; + DSSImpl* pimpl_; + + DSS(const DSS&); + DSS& operator=(const DSS&); +}; + + +// RSA Authentication and exchange +class RSA : public Auth { +public: + void sign(byte*, const byte*, unsigned int, const RandomPool&); + bool verify(const byte*, unsigned int, const byte*, unsigned int); + void encrypt(byte*, const byte*, unsigned int, const RandomPool&); + void decrypt(byte*, const byte*, unsigned int, const RandomPool&); + uint get_signatureLength() const; + uint get_cipherLength() const; + RSA(const byte*, unsigned int, bool publicKey = true); + ~RSA(); +private: + struct RSAImpl; + RSAImpl* pimpl_; + + RSA(const RSA&); // hide copy + RSA& operator=(const RSA&); // & assing +}; + + +class Integer; + +// Diffie-Hellman agreement +// hide for now TODO: figure out a way to give access to C clients p and g args +class DiffieHellman { +public: + DiffieHellman(const byte*, unsigned int, const byte*, unsigned int, + const byte*, unsigned int, const RandomPool& random); + //DiffieHellman(const char*, const RandomPool&); + DiffieHellman(const Integer&, const Integer&, const RandomPool&); + ~DiffieHellman(); + + DiffieHellman(const DiffieHellman&); + DiffieHellman& operator=(const DiffieHellman&); + + uint get_agreedKeyLength() const; + const byte* get_agreedKey() const; + uint get_publicKeyLength() const; + const byte* get_publicKey() const; + void makeAgreement(const byte*, unsigned int); + + void set_sizes(int&, int&, int&) const; + void get_parms(byte*, byte*, byte*) const; +private: + struct DHImpl; + DHImpl* pimpl_; +}; + + +// Lagrge Integer +class Integer { +public: + Integer(); + ~Integer(); + + Integer(const Integer&); + Integer& operator=(const Integer&); + + void assign(const byte*, unsigned int); + + friend class DiffieHellman; +private: + struct IntegerImpl; + IntegerImpl* pimpl_; +}; + + +class x509; + + +struct EncryptedInfo { + enum { IV_SZ = 32, NAME_SZ = 80 }; + char name[NAME_SZ]; // max one line + byte iv[IV_SZ]; // in base16 rep + uint ivSz; + bool set; + + EncryptedInfo() : ivSz(0), set(false) {} +}; + +x509* PemToDer(FILE*, CertType, EncryptedInfo* info = 0); + + +} // naemspace + +#endif // yaSSL_CRYPTO_WRAPPER_HPP diff --git a/mysql/extra/yassl/include/factory.hpp b/mysql/extra/yassl/include/factory.hpp new file mode 100644 index 0000000..dd6532f --- /dev/null +++ b/mysql/extra/yassl/include/factory.hpp @@ -0,0 +1,101 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* The factory header defines an Object Factory, used by SSL message and + * handshake types. + * + * See Desgin Pattern in GoF and Alexandrescu's chapter in Modern C++ Design, + * page 208 + */ + + + +#ifndef yaSSL_FACTORY_HPP +#define yaSSL_FACTORY_HPP + +#include STL_VECTOR_FILE +#include STL_PAIR_FILE + + +namespace STL = STL_NAMESPACE; + + + + + +namespace yaSSL { + + +// Factory uses its callback map to create objects by id, +// returning an abstract base pointer +template +class Factory { + typedef STL::pair CallBack; + typedef STL::vector CallBackVector; + + CallBackVector callbacks_; +public: + // pass function pointer to register all callbacks upon creation + explicit Factory(void (*init)(Factory&)) + { + init(*this); + } + + // reserve place in vector before registering, used by init funcion + void Reserve(size_t sz) + { + callbacks_.reserve(sz); + } + + // register callback + void Register(const IdentifierType& id, ProductCreator pc) + { + callbacks_.push_back(STL::make_pair(id, pc)); + } + + // THE Creator, returns a new object of the proper type or 0 + AbstractProduct* CreateObject(const IdentifierType& id) const + { + typedef typename STL::vector::const_iterator cIter; + + cIter first = callbacks_.begin(); + cIter last = callbacks_.end(); + + while (first != last) { + if (first->first == id) + break; + ++first; + } + + if (first == callbacks_.end()) + return 0; + return (first->second)(); + } +private: + Factory(const Factory&); // hide copy + Factory& operator=(const Factory&); // and assign +}; + + +} // naemspace + +#endif // yaSSL_FACTORY_HPP diff --git a/mysql/extra/yassl/include/handshake.hpp b/mysql/extra/yassl/include/handshake.hpp new file mode 100644 index 0000000..0c9949a --- /dev/null +++ b/mysql/extra/yassl/include/handshake.hpp @@ -0,0 +1,69 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* The handshake header declares function prototypes for creating and reading + * the various handshake messages. + */ + + + +#ifndef yaSSL_HANDSHAKE_HPP +#define yaSSL_HANDSHAKE_HPP + +#include "yassl_types.hpp" + + +namespace yaSSL { + +// forward decls +class SSL; +class Finished; +class Data; +class Alert; +struct Hashes; + +enum BufferOutput { buffered, unbuffered }; + +void sendClientHello(SSL&); +void sendServerHello(SSL&, BufferOutput = buffered); +void sendServerHelloDone(SSL&, BufferOutput = buffered); +void sendClientKeyExchange(SSL&, BufferOutput = buffered); +void sendServerKeyExchange(SSL&, BufferOutput = buffered); +void sendChangeCipher(SSL&, BufferOutput = buffered); +void sendFinished(SSL&, ConnectionEnd, BufferOutput = buffered); +void sendCertificate(SSL&, BufferOutput = buffered); +void sendCertificateRequest(SSL&, BufferOutput = buffered); +void sendCertificateVerify(SSL&, BufferOutput = buffered); +int sendData(SSL&, const void*, int); +int sendAlert(SSL& ssl, const Alert& alert); + +int receiveData(SSL&, Data&, bool peek = false); +void processReply(SSL&); + +void buildFinished(SSL&, Finished&, const opaque*); +void build_certHashes(SSL&, Hashes&); + +void hmac(SSL&, byte*, const byte*, uint, ContentType, bool verify = false); +void TLS_hmac(SSL&, byte*, const byte*, uint, ContentType, + bool verify = false); +void PRF(byte* digest, uint digLen, const byte* secret, uint secLen, + const byte* label, uint labLen, const byte* seed, uint seedLen); + +} // naemspace + +#endif // yaSSL_HANDSHAKE_HPP diff --git a/mysql/extra/yassl/include/lock.hpp b/mysql/extra/yassl/include/lock.hpp new file mode 100644 index 0000000..5273f92 --- /dev/null +++ b/mysql/extra/yassl/include/lock.hpp @@ -0,0 +1,96 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* lock.hpp provides an os specific Lock, locks mutex on entry and unlocks + * automatically upon exit, no-ops provided for Single Threaded +*/ + +#ifndef yaSSL_LOCK_HPP +#define yaSSL_LOCK_HPP + +/* + Visual Studio Source Annotations header (sourceannotations.h) fails + to compile if outside of the global namespace. +*/ +#ifdef MULTI_THREADED +#ifdef _WIN32 +#include +#endif +#endif + +namespace yaSSL { + + +#ifdef MULTI_THREADED + #ifdef _WIN32 + #include + + class Mutex { + CRITICAL_SECTION cs_; + public: + Mutex(); + ~Mutex(); + + class Lock; + friend class Lock; + + class Lock { + Mutex& mutex_; + public: + explicit Lock(Mutex& lm); + ~Lock(); + }; + }; + #else // _WIN32 + #include + + class Mutex { + pthread_mutex_t mutex_; + public: + + Mutex(); + ~Mutex(); + + class Lock; + friend class Lock; + + class Lock { + Mutex& mutex_; + public: + explicit Lock(Mutex& lm); + ~Lock(); + }; + }; + + #endif // _WIN32 +#else // MULTI_THREADED (WE'RE SINGLE) + + class Mutex { + public: + class Lock { + public: + explicit Lock(Mutex&) {} + }; + }; + +#endif // MULTI_THREADED + + + +} // namespace +#endif // yaSSL_LOCK_HPP diff --git a/mysql/extra/yassl/include/log.hpp b/mysql/extra/yassl/include/log.hpp new file mode 100644 index 0000000..2651d07 --- /dev/null +++ b/mysql/extra/yassl/include/log.hpp @@ -0,0 +1,55 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL log interface + * + */ + +#ifndef yaSSL_LOG_HPP +#define yaSSL_LOG_HPP + +#include "socket_wrapper.hpp" + +#ifdef YASSL_LOG +#include +#endif + +namespace yaSSL { + +typedef unsigned int uint; + + +// Debug logger +class Log { +#ifdef YASSL_LOG + FILE* log_; +#endif +public: + explicit Log(const char* str = "yaSSL.log"); + ~Log(); + + void Trace(const char*); + void ShowTCP(socket_t, bool ended = false); + void ShowData(uint, bool sent = false); +}; + + +} // naemspace + +#endif // yaSSL_LOG_HPP diff --git a/mysql/extra/yassl/include/openssl/crypto.h b/mysql/extra/yassl/include/openssl/crypto.h new file mode 100644 index 0000000..fc2971a --- /dev/null +++ b/mysql/extra/yassl/include/openssl/crypto.h @@ -0,0 +1,33 @@ +/* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* crypto.h for openSSL */ + +#ifndef yaSSL_crypto_h__ +#define yaSSL_crypto_h__ + +#ifdef YASSL_PREFIX +#include "prefix_crypto.h" +#endif + +const char* SSLeay_version(int type); + +#define SSLEAY_NUMBER_DEFINED +#define SSLEAY_VERSION 0x0900L +#define SSLEAY_VERSION_NUMBER SSLEAY_VERSION + + +#endif /* yaSSL_crypto_h__ */ + diff --git a/mysql/extra/yassl/include/openssl/des.h b/mysql/extra/yassl/include/openssl/des.h new file mode 100644 index 0000000..f7394b6 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/des.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* des.h for openssl */ diff --git a/mysql/extra/yassl/include/openssl/des_old.h b/mysql/extra/yassl/include/openssl/des_old.h new file mode 100644 index 0000000..b6e2e3e --- /dev/null +++ b/mysql/extra/yassl/include/openssl/des_old.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* des_old.h for openvn */ diff --git a/mysql/extra/yassl/include/openssl/engine.h b/mysql/extra/yassl/include/openssl/engine.h new file mode 100644 index 0000000..15ddcd1 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/engine.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* engine.h for libcurl */ + +#undef HAVE_OPENSSL_ENGINE_H + + diff --git a/mysql/extra/yassl/include/openssl/err.h b/mysql/extra/yassl/include/openssl/err.h new file mode 100644 index 0000000..9484742 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/err.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2005, 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* err.h for openssl */ + +#ifndef yaSSL_err_h__ +#define yaSSL_err_h__ + + + +#endif /* yaSSL_err_h__ */ diff --git a/mysql/extra/yassl/include/openssl/evp.h b/mysql/extra/yassl/include/openssl/evp.h new file mode 100644 index 0000000..6aa7335 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/evp.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* evp.h for openSSL */ + +#ifndef SSLEAY_NUMBER_DEFINED +#define SSLEAY_NUMBER_DEFINED + +/* for OpenVPN */ +#define SSLEAY_VERSION_NUMBER 0x0090700f + + +#endif /* SSLEAY_NUMBER_DEFINED */ diff --git a/mysql/extra/yassl/include/openssl/hmac.h b/mysql/extra/yassl/include/openssl/hmac.h new file mode 100644 index 0000000..5da6644 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/hmac.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* hmac.h for openvpn */ diff --git a/mysql/extra/yassl/include/openssl/lhash.h b/mysql/extra/yassl/include/openssl/lhash.h new file mode 100644 index 0000000..6d64df7 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/lhash.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* lhash.h for openSSL */ + diff --git a/mysql/extra/yassl/include/openssl/md4.h b/mysql/extra/yassl/include/openssl/md4.h new file mode 100644 index 0000000..8a86499 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/md4.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* md4.h for libcurl */ diff --git a/mysql/extra/yassl/include/openssl/md5.h b/mysql/extra/yassl/include/openssl/md5.h new file mode 100644 index 0000000..b54ebcd --- /dev/null +++ b/mysql/extra/yassl/include/openssl/md5.h @@ -0,0 +1,23 @@ +/* + Copyright (C) 2005, 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* md5.h for openssl */ + +#include "ssl.h" /* in there for now */ + diff --git a/mysql/extra/yassl/include/openssl/objects.h b/mysql/extra/yassl/include/openssl/objects.h new file mode 100644 index 0000000..ed2c029 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/objects.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* objects.h for openvpn */ diff --git a/mysql/extra/yassl/include/openssl/opensslv.h b/mysql/extra/yassl/include/openssl/opensslv.h new file mode 100644 index 0000000..88b9ca6 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/opensslv.h @@ -0,0 +1,31 @@ +/* + Copyright (C) 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* opensslv.h compatibility */ + +#ifndef yaSSL_opensslv_h__ +#define yaSSL_opensslv_h__ + + +/* api version compatibility */ +#define OPENSSL_VERSION_NUMBER 0x0090700f + + +#endif /* yaSSLopensslv_h__ */ + diff --git a/mysql/extra/yassl/include/openssl/pem.h b/mysql/extra/yassl/include/openssl/pem.h new file mode 100644 index 0000000..c467e46 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/pem.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* pem.h for libcurl */ diff --git a/mysql/extra/yassl/include/openssl/pkcs12.h b/mysql/extra/yassl/include/openssl/pkcs12.h new file mode 100644 index 0000000..c3f8ee6 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/pkcs12.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* pkcs12.h for libcurl */ + + +#undef HAVE_OPENSSL_PKCS12_H + diff --git a/mysql/extra/yassl/include/openssl/prefix_crypto.h b/mysql/extra/yassl/include/openssl/prefix_crypto.h new file mode 100644 index 0000000..895dd51 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/prefix_crypto.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +#define SSLeay_version yaSSLeay_version diff --git a/mysql/extra/yassl/include/openssl/prefix_ssl.h b/mysql/extra/yassl/include/openssl/prefix_ssl.h new file mode 100644 index 0000000..806f103 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/prefix_ssl.h @@ -0,0 +1,189 @@ +/* + Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +#define Copyright yaCopyright +#define yaSSL_CleanUp yayaSSL_CleanUp +#define BN_bin2bn yaBN_bin2bn +#define DH_new yaDH_new +#define DH_free yaDH_free +#define RSA_free yaRSA_free +#define RSA_generate_key yaRSA_generate_key +#define X509_free yaX509_free +#define X509_STORE_CTX_get_current_cert yaX509_STORE_CTX_get_current_cert +#define X509_STORE_CTX_get_error yaX509_STORE_CTX_get_error +#define X509_STORE_CTX_get_error_depth yaX509_STORE_CTX_get_error_depth +#define X509_NAME_oneline yaX509_NAME_oneline +#define X509_get_issuer_name yaX509_get_issuer_name +#define X509_get_subject_name yaX509_get_subject_name +#define X509_verify_cert_error_string yaX509_verify_cert_error_string +#define X509_LOOKUP_add_dir yaX509_LOOKUP_add_dir +#define X509_LOOKUP_load_file yaX509_LOOKUP_load_file +#define X509_LOOKUP_hash_dir yaX509_LOOKUP_hash_dir +#define X509_LOOKUP_file yaX509_LOOKUP_file +#define X509_STORE_add_lookup yaX509_STORE_add_lookup +#define X509_STORE_new yaX509_STORE_new +#define X509_STORE_get_by_subject yaX509_STORE_get_by_subject +#define ERR_get_error_line_data yaERR_get_error_line_data +#define ERR_print_errors_fp yaERR_print_errors_fp +#define ERR_error_string yaERR_error_string +#define ERR_remove_state yaERR_remove_state +#define ERR_get_error yaERR_get_error +#define ERR_peek_error yaERR_peek_error +#define ERR_GET_REASON yaERR_GET_REASON +#define SSL_CTX_new yaSSL_CTX_new +#define SSL_new yaSSL_new +#define SSL_set_fd yaSSL_set_fd +#define SSL_get_fd yaSSL_get_fd +#define SSL_connect yaSSL_connect +#define SSL_write yaSSL_write +#define SSL_read yaSSL_read +#define SSL_accept yaSSL_accept +#define SSL_CTX_free yaSSL_CTX_free +#define SSL_free yaSSL_free +#define SSL_clear yaSSL_clear +#define SSL_shutdown yaSSL_shutdown +#define SSL_set_connect_state yaSSL_set_connect_state +#define SSL_set_accept_state yaSSL_set_accept_state +#define SSL_do_handshake yaSSL_do_handshake +#define SSL_get_cipher yaSSL_get_cipher +#define SSL_get_cipher_name yaSSL_get_cipher_name +#define SSL_get_shared_ciphers yaSSL_get_shared_ciphers +#define SSL_get_cipher_list yaSSL_get_cipher_list +#define SSL_get_version yaSSL_get_version +#define SSLeay_version yaSSLeay_version +#define SSL_get_error yaSSL_get_error +#define SSL_load_error_strings yaSSL_load_error_strings +#define SSL_set_session yaSSL_set_session +#define SSL_get_session yaSSL_get_session +#define SSL_flush_sessions yaSSL_flush_sessions +#define SSL_SESSION_set_timeout yaSSL_SESSION_set_timeout +#define SSL_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode +#define SSL_get_peer_certificate yaSSL_get_peer_certificate +#define SSL_get_verify_result yaSSL_get_verify_result +#define SSL_CTX_set_verify yaSSL_CTX_set_verify +#define SSL_CTX_load_verify_locations yaSSL_CTX_load_verify_locations +#define SSL_CTX_set_default_verify_paths yaSSL_CTX_set_default_verify_paths +#define SSL_CTX_check_private_key yaSSL_CTX_check_private_key +#define SSL_CTX_set_session_id_context yaSSL_CTX_set_session_id_context +#define SSL_CTX_set_tmp_rsa_callback yaSSL_CTX_set_tmp_rsa_callback +#define SSL_CTX_set_options yaSSL_CTX_set_options +#define SSL_CTX_set_session_cache_mode yaSSL_CTX_set_session_cache_mode +#define SSL_CTX_set_timeout yaSSL_CTX_set_timeout +#define SSL_CTX_use_certificate_chain_file yaSSL_CTX_use_certificate_chain_file +#define SSL_CTX_set_default_passwd_cb yaSSL_CTX_set_default_passwd_cb +#define SSL_CTX_use_RSAPrivateKey_file yaSSL_CTX_use_RSAPrivateKey_file +#define SSL_CTX_set_info_callback yaSSL_CTX_set_info_callback +#define SSL_CTX_sess_accept yaSSL_CTX_sess_accept +#define SSL_CTX_sess_connect yaSSL_CTX_sess_connect +#define SSL_CTX_sess_accept_good yaSSL_CTX_sess_accept_good +#define SSL_CTX_sess_connect_good yaSSL_CTX_sess_connect_good +#define SSL_CTX_sess_accept_renegotiate yaSSL_CTX_sess_accept_renegotiate +#define SSL_CTX_sess_connect_renegotiate yaSSL_CTX_sess_connect_renegotiate +#define SSL_CTX_sess_hits yaSSL_CTX_sess_hits +#define SSL_CTX_sess_cb_hits yaSSL_CTX_sess_cb_hits +#define SSL_CTX_sess_cache_full yaSSL_CTX_sess_cache_full +#define SSL_CTX_sess_misses yaSSL_CTX_sess_misses +#define SSL_CTX_sess_timeouts yaSSL_CTX_sess_timeouts +#define SSL_CTX_sess_number yaSSL_CTX_sess_number +#define SSL_CTX_sess_get_cache_size yaSSL_CTX_sess_get_cache_size +#define SSL_CTX_get_verify_mode yaSSL_CTX_get_verify_mode +#define SSL_get_verify_mode yaSSL_get_verify_mode +#define SSL_CTX_get_verify_depth yaSSL_CTX_get_verify_depth +#define SSL_get_verify_depth yaSSL_get_verify_depth +#define SSL_get_default_timeout yaSSL_get_default_timeout +#define SSL_CTX_get_session_cache_mode yaSSL_CTX_get_session_cache_mode +#define SSL_session_reused yaSSL_session_reused +#define SSL_set_rfd yaSSL_set_rfd +#define SSL_set_wfd yaSSL_set_wfd +#define SSL_set_shutdown yaSSL_set_shutdown +#define SSL_set_quiet_shutdown yaSSL_set_quiet_shutdown +#define SSL_get_quiet_shutdown yaSSL_get_quiet_shutdown +#define SSL_want_read yaSSL_want_read +#define SSL_want_write yaSSL_want_write +#define SSL_pending yaSSL_pending +#define SSLv3_method yaSSLv3_method +#define SSLv3_server_method yaSSLv3_server_method +#define SSLv3_client_method yaSSLv3_client_method +#define TLSv1_server_method yaTLSv1_server_method +#define TLSv1_client_method yaTLSv1_client_method +#define TLSv1_1_server_method yaTLSv1_1_server_method +#define TLSv1_1_client_method yaTLSv1_1_client_method +#define SSLv23_server_method yaSSLv23_server_method +#define SSL_CTX_use_certificate_file yaSSL_CTX_use_certificate_file +#define SSL_CTX_use_PrivateKey_file yaSSL_CTX_use_PrivateKey_file +#define SSL_CTX_set_cipher_list yaSSL_CTX_set_cipher_list +#define SSL_CTX_sess_set_cache_size yaSSL_CTX_sess_set_cache_size +#define SSL_CTX_set_tmp_dh yaSSL_CTX_set_tmp_dh +#define OpenSSL_add_all_algorithms yaOpenSSL_add_all_algorithms +#define SSL_library_init yaSSL_library_init +#define SSLeay_add_ssl_algorithms yaSSLeay_add_ssl_algorithms +#define SSL_get_current_cipher yaSSL_get_current_cipher +#define SSL_CIPHER_description yaSSL_CIPHER_description +#define SSL_alert_type_string_long yaSSL_alert_type_string_long +#define SSL_alert_desc_string_long yaSSL_alert_desc_string_long +#define SSL_state_string_long yaSSL_state_string_long +#define EVP_md5 yaEVP_md5 +#define EVP_des_ede3_cbc yaEVP_des_ede3_cbc +#define EVP_BytesToKey yaEVP_BytesToKey +#define DES_set_key_unchecked yaDES_set_key_unchecked +#define DES_ede3_cbc_encrypt yaDES_ede3_cbc_encrypt +#define RAND_screen yaRAND_screen +#define RAND_file_name yaRAND_file_name +#define RAND_write_file yaRAND_write_file +#define RAND_load_file yaRAND_load_file +#define RAND_status yaRAND_status +#define RAND_bytes yaRAND_bytes +#define DES_set_key yaDES_set_key +#define DES_set_odd_parity yaDES_set_odd_parity +#define DES_ecb_encrypt yaDES_ecb_encrypt +#define SSL_CTX_set_default_passwd_cb_userdata yaSSL_CTX_set_default_passwd_cb_userdata +#define SSL_SESSION_free yaSSL_SESSION_free +#define SSL_peek yaSSL_peek +#define SSL_get_certificate yaSSL_get_certificate +#define SSL_get_privatekey yaSSL_get_privatekey +#define X509_get_pubkey yaX509_get_pubkey +#define EVP_PKEY_copy_parameters yaEVP_PKEY_copy_parameters +#define EVP_PKEY_free yaEVP_PKEY_free +#define ERR_error_string_n yaERR_error_string_n +#define ERR_free_strings yaERR_free_strings +#define EVP_cleanup yaEVP_cleanup +#define X509_get_ext_d2i yaX509_get_ext_d2i +#define GENERAL_NAMES_free yaGENERAL_NAMES_free +#define sk_GENERAL_NAME_num yask_GENERAL_NAME_num +#define sk_GENERAL_NAME_value yask_GENERAL_NAME_value +#define ASN1_STRING_data yaASN1_STRING_data +#define ASN1_STRING_length yaASN1_STRING_length +#define ASN1_STRING_type yaASN1_STRING_type +#define X509_NAME_get_index_by_NID yaX509_NAME_get_index_by_NID +#define X509_NAME_ENTRY_get_data yaX509_NAME_ENTRY_get_data +#define X509_NAME_get_entry yaX509_NAME_get_entry +#define ASN1_STRING_to_UTF8 yaASN1_STRING_to_UTF8 +#define SSLv23_client_method yaSSLv23_client_method +#define SSLv2_client_method yaSSLv2_client_method +#define SSL_get1_session yaSSL_get1_session +#define X509_get_notBefore yaX509_get_notBefore +#define X509_get_notAfter yaX509_get_notAfter +#define yaSSL_ASN1_TIME_to_string ya_SSL_ASN1_TIME_to_string +#define MD4_Init yaMD4_Init +#define MD4_Update yaMD4_Update +#define MD4_Final yaMD4_Final +#define MD5_Init yaMD5_Init +#define MD5_Update yaMD5_Update +#define MD5_Final yaMD5_Final +#define SSL_set_compression yaSSL_set_compression +#define PEM_read_X509 yaSSL_PEM_read_X509 diff --git a/mysql/extra/yassl/include/openssl/rand.h b/mysql/extra/yassl/include/openssl/rand.h new file mode 100644 index 0000000..9e0cedf --- /dev/null +++ b/mysql/extra/yassl/include/openssl/rand.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* rand.h for openSSL */ + diff --git a/mysql/extra/yassl/include/openssl/rsa.h b/mysql/extra/yassl/include/openssl/rsa.h new file mode 100644 index 0000000..95305a8 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/rsa.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2005, 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* rsa.h for openSSL */ + + +#ifndef yaSSL_rsa_h__ +#define yaSSL_rsa_h__ + +enum { RSA_F4 = 1 }; + + +#endif /* yaSSL_rsa_h__ */ diff --git a/mysql/extra/yassl/include/openssl/sha.h b/mysql/extra/yassl/include/openssl/sha.h new file mode 100644 index 0000000..5b7c6bd --- /dev/null +++ b/mysql/extra/yassl/include/openssl/sha.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* sha.h for openvpn */ diff --git a/mysql/extra/yassl/include/openssl/ssl.h b/mysql/extra/yassl/include/openssl/ssl.h new file mode 100644 index 0000000..10fa491 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/ssl.h @@ -0,0 +1,568 @@ +/* + Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. + */ + +/* ssl.h defines openssl compatibility layer + * + */ + + + +#ifndef yaSSL_openssl_h__ +#define yaSSL_openssl_h__ + +#ifdef YASSL_PREFIX +#include "prefix_ssl.h" +#endif + +#include /* ERR_print fp */ +#include "opensslv.h" /* for version number */ +#include "rsa.h" + + +#define YASSL_VERSION "2.4.4" + + +#if defined(__cplusplus) +extern "C" { +#endif + + void yaSSL_CleanUp(); /* call once at end of application use to + free static singleton memory holders, + not a leak per se, but helpful when + looking for them */ + +#if defined(__cplusplus) +} // extern +#endif + +#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE) +namespace yaSSL { +extern "C" { +#endif + +#undef X509_NAME /* wincrypt.h clash */ + +#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE) + class SSL; + class SSL_SESSION; + class SSL_METHOD; + class SSL_CTX; + class SSL_CIPHER; + + class RSA; + + class X509; + class X509_NAME; +#else + typedef struct SSL SSL; + typedef struct SSL_SESSION SSL_SESSION; + typedef struct SSL_METHOD SSL_METHOD; + typedef struct SSL_CTX SSL_CTX; + typedef struct SSL_CIPHER SSL_CIPHER; + + typedef struct RSA RSA; + + typedef struct X509 X509; + typedef struct X509_NAME X509_NAME; +#endif + + +/* Big Number stuff, different file? */ +typedef struct BIGNUM BIGNUM; + +BIGNUM *BN_bin2bn(const unsigned char*, int, BIGNUM*); + + +/* Diffie-Hellman stuff, different file? */ +/* mySQL deferences to set group parameters */ +typedef struct DH { + BIGNUM* p; + BIGNUM* g; +} DH; + +DH* DH_new(void); +void DH_free(DH*); + +/* RSA stuff */ + +void RSA_free(RSA*); +RSA* RSA_generate_key(int, unsigned long, void(*)(int, int, void*), void*); + + +/* X509 stuff, different file? */ + +/* because mySQL dereferences to use error and current_cert, even after calling + * get functions for local references */ +typedef struct X509_STORE_CTX { + int error; + int error_depth; + X509* current_cert; +} X509_STORE_CTX; + + +typedef struct X509_STORE X509_STORE; +typedef struct X509_LOOKUP X509_LOOKUP; +typedef struct X509_OBJECT { char c; } X509_OBJECT; +typedef struct X509_CRL X509_CRL; +typedef struct X509_REVOKED X509_REVOKED; +typedef struct X509_LOOKUP_METHOD X509_LOOKUP_METHOD; + + +void X509_free(X509*); + + +/* bio stuff */ +typedef struct BIO BIO; + +/* ASN stuff */ + + + +X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX*); +int X509_STORE_CTX_get_error(X509_STORE_CTX*); +int X509_STORE_CTX_get_error_depth(X509_STORE_CTX*); + +char* X509_NAME_oneline(X509_NAME*, char*, int); +X509_NAME* X509_get_issuer_name(X509*); +X509_NAME* X509_get_subject_name(X509*); +const char* X509_verify_cert_error_string(long); + +int X509_LOOKUP_add_dir(X509_LOOKUP*, const char*, long); +int X509_LOOKUP_load_file(X509_LOOKUP*, const char*, long); +X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void); +X509_LOOKUP_METHOD* X509_LOOKUP_file(void); + +X509_LOOKUP* X509_STORE_add_lookup(X509_STORE*, X509_LOOKUP_METHOD*); +X509_STORE* X509_STORE_new(void); +int X509_STORE_get_by_subject(X509_STORE_CTX*, int, X509_NAME*, + X509_OBJECT*); + + + + +enum { /* X509 Constants */ + X509_V_OK = 0, + X509_V_ERR_CERT_CHAIN_TOO_LONG = 1, + X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 2, + X509_V_ERR_CERT_NOT_YET_VALID = 3, + X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 4, + X509_V_ERR_CERT_HAS_EXPIRED = 5, + X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 6, + X509_FILETYPE_PEM = 7, + X509_LU_X509 = 8, + X509_LU_CRL = 9, + X509_V_ERR_CRL_SIGNATURE_FAILURE = 10, + X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11, + X509_V_ERR_CRL_HAS_EXPIRED = 12, + X509_V_ERR_CERT_REVOKED = 13, + X509_V_FLAG_CRL_CHECK = 14, + X509_V_FLAG_CRL_CHECK_ALL = 15 +}; + + +/* Error stuff, could move to yassl_error */ +unsigned long ERR_get_error_line_data(const char**, int*, const char**, int *); +void ERR_print_errors_fp(FILE*); +char* ERR_error_string(unsigned long,char*); +void ERR_remove_state(unsigned long); +unsigned long ERR_get_error(void); +unsigned long ERR_peek_error(void); +int ERR_GET_REASON(int); + + +enum { /* ERR Constants */ + ERR_TXT_STRING = 1, + EVP_R_BAD_DECRYPT = 2 +}; + +/* + Allow type used by SSL_set_fd to be changed, default to int + in order to be compatible with OpenSSL + */ +#ifndef YASSL_SOCKET_T_DEFINED +typedef int YASSL_SOCKET_T; +#endif + +SSL_CTX* SSL_CTX_new(SSL_METHOD*); +SSL* SSL_new(SSL_CTX*); +int SSL_set_fd (SSL*, YASSL_SOCKET_T); +YASSL_SOCKET_T SSL_get_fd(const SSL*); +int SSL_connect(SSL*); /* if you get an error from connect + see note at top of README */ +int SSL_write(SSL*, const void*, int); +int SSL_read(SSL*, void*, int); +int SSL_accept(SSL*); +void SSL_CTX_free(SSL_CTX*); +void SSL_free(SSL*); +int SSL_clear(SSL*); +int SSL_shutdown(SSL*); + +void SSL_set_connect_state(SSL*); +void SSL_set_accept_state(SSL*); +int SSL_do_handshake(SSL*); + +const char* SSL_get_cipher(SSL*); +const char* SSL_get_cipher_name(SSL*); /* uses SSL_get_cipher */ +char* SSL_get_shared_ciphers(SSL*, char*, int); +const char* SSL_get_cipher_list(SSL*, int); +const char* SSL_get_version(SSL*); +const char* SSLeay_version(int); + +int SSL_get_error(SSL*, int); +void SSL_load_error_strings(void); + +int SSL_set_session(SSL *ssl, SSL_SESSION *session); +SSL_SESSION* SSL_get_session(SSL* ssl); +void SSL_flush_sessions(SSL_CTX *ctx, long tm); +long SSL_SESSION_set_timeout(SSL_SESSION*, long); +long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode); +X509* SSL_get_peer_certificate(SSL*); +long SSL_get_verify_result(SSL*); + + +typedef int (*VerifyCallback)(int, X509_STORE_CTX*); +typedef int (*pem_password_cb)(char*, int, int, void*); +int default_password_callback(char * buffer, int size_arg, int rwflag, + void * u); + +void SSL_CTX_set_verify(SSL_CTX*, int, VerifyCallback verify_callback); +int SSL_CTX_load_verify_locations(SSL_CTX*, const char*, const char*); +int SSL_CTX_set_default_verify_paths(SSL_CTX*); +int SSL_CTX_check_private_key(SSL_CTX*); +int SSL_CTX_set_session_id_context(SSL_CTX*, const unsigned char*, + unsigned int); + +void SSL_CTX_set_tmp_rsa_callback(SSL_CTX*, RSA*(*)(SSL*, int, int)); +long SSL_CTX_set_options(SSL_CTX*, long); +long SSL_CTX_set_session_cache_mode(SSL_CTX*, long); +long SSL_CTX_set_timeout(SSL_CTX*, long); +int SSL_CTX_use_certificate_chain_file(SSL_CTX*, const char*); +void SSL_CTX_set_default_passwd_cb(SSL_CTX*, pem_password_cb); +int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX*, const char*, int); +void SSL_CTX_set_info_callback(SSL_CTX*, void (*)()); + +long SSL_CTX_sess_accept(SSL_CTX*); +long SSL_CTX_sess_connect(SSL_CTX*); +long SSL_CTX_sess_accept_good(SSL_CTX*); +long SSL_CTX_sess_connect_good(SSL_CTX*); +long SSL_CTX_sess_accept_renegotiate(SSL_CTX*); +long SSL_CTX_sess_connect_renegotiate(SSL_CTX*); +long SSL_CTX_sess_hits(SSL_CTX*); +long SSL_CTX_sess_cb_hits(SSL_CTX*); +long SSL_CTX_sess_cache_full(SSL_CTX*); +long SSL_CTX_sess_misses(SSL_CTX*); +long SSL_CTX_sess_timeouts(SSL_CTX*); +long SSL_CTX_sess_number(SSL_CTX*); +long SSL_CTX_sess_get_cache_size(SSL_CTX*); + +int SSL_CTX_get_verify_mode(SSL_CTX*); +int SSL_get_verify_mode(SSL*); +int SSL_CTX_get_verify_depth(SSL_CTX*); +int SSL_get_verify_depth(SSL*); + +long SSL_get_default_timeout(SSL*); +long SSL_CTX_get_session_cache_mode(SSL_CTX*); +int SSL_session_reused(SSL*); + +int SSL_set_rfd(SSL*, int); +int SSL_set_wfd(SSL*, int); +void SSL_set_shutdown(SSL*, int); +void SSL_set_quiet_shutdown(SSL *ssl,int mode); +int SSL_get_quiet_shutdown(SSL *ssl); + +int SSL_want_read(SSL*); +int SSL_want_write(SSL*); + +int SSL_pending(SSL*); + + +enum { /* ssl Constants */ + SSL_WOULD_BLOCK = -8, + SSL_BAD_STAT = -7, + SSL_BAD_PATH = -6, + SSL_BAD_FILETYPE = -5, + SSL_BAD_FILE = -4, + SSL_NOT_IMPLEMENTED = -3, + SSL_UNKNOWN = -2, + SSL_FATAL_ERROR = -1, + SSL_NORMAL_SHUTDOWN = 0, + SSL_ERROR_NONE = 0, /* for most functions */ + SSL_FAILURE = 0, /* for some functions */ + SSL_SUCCESS = 1, + + SSL_FILETYPE_ASN1 = 10, + SSL_FILETYPE_PEM = 11, + SSL_FILETYPE_DEFAULT = 10, /* ASN1 */ + + SSL_VERIFY_NONE = 0, + SSL_VERIFY_PEER = 1, + SSL_VERIFY_FAIL_IF_NO_PEER_CERT = 2, + SSL_VERIFY_CLIENT_ONCE = 4, + + SSL_SESS_CACHE_OFF = 30, + SSL_SESS_CACHE_CLIENT = 31, + SSL_SESS_CACHE_SERVER = 32, + SSL_SESS_CACHE_BOTH = 33, + SSL_SESS_CACHE_NO_AUTO_CLEAR = 34, + SSL_SESS_CACHE_NO_INTERNAL_LOOKUP = 35, + + SSL_OP_MICROSOFT_SESS_ID_BUG = 50, + SSL_OP_NETSCAPE_CHALLENGE_BUG = 51, + SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG = 52, + SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG = 53, + SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER = 54, + SSL_OP_MSIE_SSLV2_RSA_PADDING = 55, + SSL_OP_SSLEAY_080_CLIENT_DH_BUG = 56, + SSL_OP_TLS_D5_BUG = 57, + SSL_OP_TLS_BLOCK_PADDING_BUG = 58, + SSL_OP_TLS_ROLLBACK_BUG = 59, + SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS = 60, + SSL_OP_ALL = 61, + SSL_OP_SINGLE_DH_USE = 62, + SSL_OP_EPHEMERAL_RSA = 63, + SSL_OP_PKCS1_CHECK_1 = 67, + SSL_OP_PKCS1_CHECK_2 = 68, + SSL_OP_NETSCAPE_CA_DN_BUG = 69, + SSL_OP_NON_EXPORT_FIRST = 70, + SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG = 71, + + SSL_ERROR_WANT_READ = 80, + SSL_ERROR_WANT_WRITE = 81, + SSL_ERROR_SYSCALL = 82, + SSL_ERROR_WANT_X509_LOOKUP = 83, + SSL_ERROR_ZERO_RETURN = 84, + SSL_ERROR_SSL = 85, + + SSL_ST_CONNECT = 90, + SSL_ST_ACCEPT = 91, + SSL_CB_LOOP = 92, + SSL_SENT_SHUTDOWN = 93, + SSL_RECEIVED_SHUTDOWN = 94, + SSL_CB_ALERT = 95, + SSL_CB_READ = 96, + SSL_CB_HANDSHAKE_DONE = 97, + + SSL_OP_NO_SSLv2 = 128, + SSL_OP_NO_SSLv3 = 256, + SSL_OP_NO_TLSv1 = 512, + SSL_OP_NO_TLSv1_1 = 1024, +}; + + +SSL_METHOD *SSLv3_method(void); +SSL_METHOD *SSLv3_server_method(void); +SSL_METHOD *SSLv3_client_method(void); +SSL_METHOD *TLSv1_server_method(void); +SSL_METHOD *TLSv1_client_method(void); +SSL_METHOD *TLSv1_1_server_method(void); +SSL_METHOD *TLSv1_1_client_method(void); +SSL_METHOD *SSLv23_server_method(void); + +int SSL_CTX_use_certificate_file(SSL_CTX*, const char*, int); +int SSL_CTX_use_PrivateKey_file(SSL_CTX*, const char*, int); +int SSL_CTX_set_cipher_list(SSL_CTX*, const char*); + +long SSL_CTX_sess_set_cache_size(SSL_CTX*, long); +long SSL_CTX_set_tmp_dh(SSL_CTX*, DH*); + +void OpenSSL_add_all_algorithms(void); +int SSL_library_init(); +int SSLeay_add_ssl_algorithms(void); + + +SSL_CIPHER* SSL_get_current_cipher(SSL*); +char* SSL_CIPHER_description(SSL_CIPHER*, char*, int); + + +char* SSL_alert_type_string_long(int); +char* SSL_alert_desc_string_long(int); +char* SSL_state_string_long(SSL*); + +X509* PEM_read_X509(FILE *fp, X509 *x, pem_password_cb cb, void *u); +/* EVP stuff, des and md5, different file? */ +typedef char EVP_MD; + +typedef char EVP_CIPHER; + +typedef struct EVP_PKEY EVP_PKEY; + +typedef unsigned char DES_cblock[8]; +typedef const DES_cblock const_DES_cblock; +typedef DES_cblock DES_key_schedule; + +enum { + DES_ENCRYPT = 1, + DES_DECRYPT = 0 +}; + +const EVP_MD* EVP_md5(void); +const EVP_CIPHER* EVP_des_ede3_cbc(void); + +typedef unsigned char opaque; + +int EVP_BytesToKey(const EVP_CIPHER*, const EVP_MD*, const opaque*, + const opaque*, int, int, opaque*, opaque*); + +void DES_set_key_unchecked(const_DES_cblock*, DES_key_schedule*); +void DES_ede3_cbc_encrypt(const opaque*, opaque*, long, DES_key_schedule*, + DES_key_schedule*, DES_key_schedule*, DES_cblock*, int); + + +/* RAND stuff */ +void RAND_screen(void); +const char* RAND_file_name(char*, size_t); +int RAND_write_file(const char*); +int RAND_load_file(const char*, long); + + +/* for libcurl */ +int RAND_status(void); +int RAND_bytes(unsigned char* buf, int num); + +int DES_set_key(const_DES_cblock*, DES_key_schedule*); +void DES_set_odd_parity(DES_cblock*); +void DES_ecb_encrypt(DES_cblock*, DES_cblock*, DES_key_schedule*, int); + +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX*, void* userdata); +void SSL_SESSION_free(SSL_SESSION* session); +int SSL_peek(SSL* ssl, void* buf, int num); + +X509* SSL_get_certificate(SSL* ssl); +EVP_PKEY* SSL_get_privatekey(SSL* ssl); +EVP_PKEY* X509_get_pubkey(X509* x); + +int EVP_PKEY_copy_parameters(EVP_PKEY* to, const EVP_PKEY* from); +void EVP_PKEY_free(EVP_PKEY* pkey); +void ERR_error_string_n(unsigned long e, char *buf, size_t len); +void ERR_free_strings(void); +void EVP_cleanup(void); + +void* X509_get_ext_d2i(X509* x, int nid, int* crit, int* idx); + +#define GEN_IPADD 7 +#define NID_subject_alt_name 85 +#define STACK_OF(x) x + + +/* defined here because libcurl dereferences */ +typedef struct ASN1_STRING { + int type; + int length; + unsigned char* data; +} ASN1_STRING; + + +typedef struct GENERAL_NAME { + int type; + union { + ASN1_STRING* ia5; + } d; +} GENERAL_NAME; + +void GENERAL_NAMES_free(STACK_OF(GENERAL_NAME) *x); + +int sk_GENERAL_NAME_num(STACK_OF(GENERAL_NAME) *x); +GENERAL_NAME* sk_GENERAL_NAME_value(STACK_OF(GENERAL_NAME) *x, int i); + + +unsigned char* ASN1_STRING_data(ASN1_STRING* x); +int ASN1_STRING_length(ASN1_STRING* x); +int ASN1_STRING_type(ASN1_STRING *x); + +typedef ASN1_STRING X509_NAME_ENTRY; + +int X509_NAME_get_index_by_NID(X509_NAME* name,int nid, int lastpos); + +ASN1_STRING* X509_NAME_ENTRY_get_data(X509_NAME_ENTRY* ne); +X509_NAME_ENTRY* X509_NAME_get_entry(X509_NAME* name, int loc); + +#define OPENSSL_malloc(x) malloc(x) +#define OPENSSL_free(x) free(x) + +int ASN1_STRING_to_UTF8(unsigned char** out, ASN1_STRING* in); + +SSL_METHOD* SSLv23_client_method(void); /* doesn't actually roll back */ +SSL_METHOD* SSLv2_client_method(void); /* will never work, no v 2 */ + + +SSL_SESSION* SSL_get1_session(SSL* ssl); /* what's ref count */ + + +#define CRYPTO_free(x) free(x) +#define ASN1_TIME ASN1_STRING + +ASN1_TIME* X509_get_notBefore(X509* x); +ASN1_TIME* X509_get_notAfter(X509* x); + + +#define ASN1_UTCTIME ASN1_STRING +#define NID_commonName 13 +#define V_ASN1_UTF8STRING 12 +#define GEN_DNS 2 + +#define CERTFICATE_ERROR 0x14090086 /* SSLv3 error */ + + +typedef struct MD4_CTX { + int buffer[32]; /* big enough to hold, check size in Init */ +} MD4_CTX; + +void MD4_Init(MD4_CTX*); +void MD4_Update(MD4_CTX*, const void*, unsigned long); +void MD4_Final(unsigned char*, MD4_CTX*); + + +typedef struct MD5_CTX { + int buffer[32]; /* big enough to hold, check size in Init */ +} MD5_CTX; + +void MD5_Init(MD5_CTX*); +void MD5_Update(MD5_CTX*, const void*, unsigned long); +void MD5_Final(unsigned char*, MD5_CTX*); + +#define MD5_DIGEST_LENGTH 16 + + +#define SSL_DEFAULT_CIPHER_LIST "" /* default all */ + + +/* yaSSL extensions */ +int SSL_set_compression(SSL*); /* turn on yaSSL zlib compression */ +char *yaSSL_ASN1_TIME_to_string(ASN1_TIME *time, char *buf, size_t len); + +#include "transport_types.h" + +/* + Set functions for yaSSL to use in order to send and receive data. + + These hooks are offered in order to enable non-blocking I/O. If + not set, yaSSL defaults to using send() and recv(). + + @todo Remove hooks and accompanying code when yaSSL is fixed. +*/ +void yaSSL_transport_set_ptr(SSL *, void *); +void yaSSL_transport_set_recv_function(SSL *, yaSSL_recv_func_t); +void yaSSL_transport_set_send_function(SSL *, yaSSL_send_func_t); + +#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE) +} /* namespace */ +} /* extern "C" */ +#endif + + +#endif /* yaSSL_openssl_h__ */ diff --git a/mysql/extra/yassl/include/openssl/transport_types.h b/mysql/extra/yassl/include/openssl/transport_types.h new file mode 100644 index 0000000..5a9d234 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/transport_types.h @@ -0,0 +1,26 @@ +/* + Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +#ifndef yaSSL_transport_types_h__ +#define yaSSL_transport_types_h__ + +/* Type of transport functions used for sending and receiving data. */ +typedef long (*yaSSL_recv_func_t) (void *, void *, size_t); +typedef long (*yaSSL_send_func_t) (void *, const void *, size_t); + +#endif diff --git a/mysql/extra/yassl/include/openssl/x509.h b/mysql/extra/yassl/include/openssl/x509.h new file mode 100644 index 0000000..74eb83e --- /dev/null +++ b/mysql/extra/yassl/include/openssl/x509.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* x509.h for libcurl */ diff --git a/mysql/extra/yassl/include/openssl/x509v3.h b/mysql/extra/yassl/include/openssl/x509v3.h new file mode 100644 index 0000000..b48e9b4 --- /dev/null +++ b/mysql/extra/yassl/include/openssl/x509v3.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* x509v3.h for libcurl */ diff --git a/mysql/extra/yassl/include/socket_wrapper.hpp b/mysql/extra/yassl/include/socket_wrapper.hpp new file mode 100644 index 0000000..ec3ab6f --- /dev/null +++ b/mysql/extra/yassl/include/socket_wrapper.hpp @@ -0,0 +1,104 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. + */ + + +/* The socket wrapper header defines a Socket class that hides the differences + * between Berkely style sockets and Windows sockets, allowing transparent TCP + * access. + */ + + +#ifndef yaSSL_SOCKET_WRAPPER_HPP +#define yaSSL_SOCKET_WRAPPER_HPP + + +#ifdef _WIN32 + #include +#else + #include + #include + #include + #include + #include + #include +#endif + + +namespace yaSSL { + +typedef unsigned int uint; + +#ifdef _WIN32 + typedef SOCKET socket_t; +#else + typedef int socket_t; + const socket_t INVALID_SOCKET = -1; + const int SD_RECEIVE = 0; + const int SD_SEND = 1; + const int SD_BOTH = 2; + const int SOCKET_ERROR = -1; +#endif + + extern "C" { + #include "openssl/transport_types.h" + } + +typedef unsigned char byte; + + +// Wraps Windows Sockets and BSD Sockets +class Socket { + socket_t socket_; // underlying socket descriptor + bool wouldBlock_; // if non-blocking data, for last read + bool nonBlocking_; // is option set + void *ptr_; // Argument to transport function + yaSSL_send_func_t send_func_; // Function to send data + yaSSL_recv_func_t recv_func_; // Function to receive data +public: + explicit Socket(socket_t s = INVALID_SOCKET); + ~Socket(); + + void set_fd(socket_t s); + uint get_ready() const; + socket_t get_fd() const; + + void set_transport_ptr(void *ptr); + void set_transport_recv_function(yaSSL_recv_func_t recv_func); + void set_transport_send_function(yaSSL_send_func_t send_func); + + uint send(const byte* buf, unsigned int len, unsigned int& sent); + uint receive(byte* buf, unsigned int len); + + bool wait(); + bool WouldBlock() const; + bool IsNonBlocking() const; + + void closeSocket(); + void shutDown(int how = SD_SEND); + + static int get_lastError(); + static void set_lastError(int error); +private: + Socket(const Socket&); // hide copy + Socket& operator= (const Socket&); // and assign +}; + + +} // naemspace + +#endif // yaSSL_SOCKET_WRAPPER_HPP diff --git a/mysql/extra/yassl/include/timer.hpp b/mysql/extra/yassl/include/timer.hpp new file mode 100644 index 0000000..0d99603 --- /dev/null +++ b/mysql/extra/yassl/include/timer.hpp @@ -0,0 +1,40 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* timer.hpp provides a high res and low res timers + * +*/ + + +#ifndef yaSSL_TIMER_HPP +#define yaSSL_TIMER_HPP + +namespace yaSSL { + +typedef double timer_d; +typedef unsigned int uint; + + + +timer_d timer(); +uint lowResTimer(); + + + +} // namespace +#endif // yaSSL_TIMER_HPP diff --git a/mysql/extra/yassl/include/yassl.hpp b/mysql/extra/yassl/include/yassl.hpp new file mode 100644 index 0000000..081d653 --- /dev/null +++ b/mysql/extra/yassl/include/yassl.hpp @@ -0,0 +1,85 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL externel header defines yaSSL API + */ + + +#ifndef yaSSL_EXT_HPP +#define yaSSL_EXT_HPP + + +namespace yaSSL { + + +#ifdef _WIN32 + typedef unsigned int SOCKET_T; +#else + typedef int SOCKET_T; +#endif + + +class Client { +public: + Client(); + ~Client(); + + // basics + int Connect(SOCKET_T); + int Write(const void*, int); + int Read(void*, int); + + // options + void SetCA(const char*); + void SetCert(const char*); + void SetKey(const char*); +private: + struct ClientImpl; + ClientImpl* pimpl_; + + Client(const Client&); // hide copy + Client& operator=(const Client&); // and assign +}; + + +class Server { +public: + Server(); + ~Server(); + + // basics + int Accept(SOCKET_T); + int Write(const void*, int); + int Read(void*, int); + + // options + void SetCA(const char*); + void SetCert(const char*); + void SetKey(const char*); +private: + struct ServerImpl; + ServerImpl* pimpl_; + + Server(const Server&); // hide copy + Server& operator=(const Server&); // and assign +}; + + +} // namespace yaSSL +#endif // yaSSL_EXT_HPP diff --git a/mysql/extra/yassl/include/yassl_error.hpp b/mysql/extra/yassl/include/yassl_error.hpp new file mode 100644 index 0000000..d63244d --- /dev/null +++ b/mysql/extra/yassl/include/yassl_error.hpp @@ -0,0 +1,88 @@ +/* + Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL error header defines error codes and an exception class + */ + +#ifndef yaSSL_ERROR_HPP +#define yaSSL_ERROR_HPP + + + +namespace yaSSL { + + +enum YasslError { + no_error = 0, + + // 10 - 47 from AlertDescription, 0 also close_notify + + range_error = 101, + realloc_error = 102, + factory_error = 103, + unknown_cipher = 104, + prefix_error = 105, + record_layer = 106, + handshake_layer = 107, + out_of_order = 108, + bad_input = 109, + match_error = 110, + no_key_file = 111, + verify_error = 112, + send_error = 113, + receive_error = 114, + certificate_error = 115, + privateKey_error = 116, + badVersion_error = 117, + compress_error = 118, + decompress_error = 119, + pms_version_error = 120, + sanityCipher_error = 121, + rsaSignFault_error = 122 + + // !!!! add error message to .cpp !!!! + + // 1000+ from TaoCrypt error.hpp + +}; + + +enum Library { yaSSL_Lib = 0, CryptoLib, SocketLib }; +enum { MAX_ERROR_SZ = 80 }; + +void SetErrorString(YasslError, char*); + +/* remove for now, if go back to exceptions use this wrapper +// Base class for all yaSSL exceptions +class Error : public mySTL::runtime_error { + YasslError error_; + Library lib_; +public: + explicit Error(const char* s = "", YasslError e = no_error, + Library l = yaSSL_Lib); + + YasslError get_number() const; + Library get_lib() const; +}; +*/ + + +} // naemspace + +#endif // yaSSL_ERROR_HPP diff --git a/mysql/extra/yassl/include/yassl_imp.hpp b/mysql/extra/yassl/include/yassl_imp.hpp new file mode 100644 index 0000000..a952da0 --- /dev/null +++ b/mysql/extra/yassl/include/yassl_imp.hpp @@ -0,0 +1,748 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* yaSSL implementation header defines all strucutres from the SSL.v3 + * specification "draft-freier-ssl-version3-02.txt" + * all page citations refer to this document unless otherwise noted. + */ + + +#ifndef yaSSL_IMP_HPP +#define yaSSL_IMP_HPP + +#ifdef _MSC_VER + // disable truncated debug symbols + #pragma warning(disable:4786) +#endif + +#include "yassl_types.hpp" +#include "factory.hpp" +#include STL_LIST_FILE + + +namespace STL = STL_NAMESPACE; + + +namespace yaSSL { + + +class SSL; // forward decls +class input_buffer; +class output_buffer; + + +struct ProtocolVersion { + uint8 major_; + uint8 minor_; // major and minor SSL/TLS version numbers + + ProtocolVersion(uint8 maj = 3, uint8 min = 0); +}; + + +// Record Layer Header for PlainText, Compressed, and CipherText +struct RecordLayerHeader { + ContentType type_; + ProtocolVersion version_; + uint16 length_; // should not exceed 2^14 +}; + + +// base for all messages +struct Message : public virtual_base { + virtual input_buffer& set(input_buffer&) =0; + virtual output_buffer& get(output_buffer&) const =0; + + virtual void Process(input_buffer&, SSL&) =0; + virtual ContentType get_type() const =0; + virtual uint16 get_length() const =0; + + virtual ~Message() {} +}; + + +class ChangeCipherSpec : public Message { + CipherChoice type_; +public: + ChangeCipherSpec(); + + friend input_buffer& operator>>(input_buffer&, ChangeCipherSpec&); + friend output_buffer& operator<<(output_buffer&, const ChangeCipherSpec&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + ContentType get_type() const; + uint16 get_length() const; + void Process(input_buffer&, SSL&); +private: + ChangeCipherSpec(const ChangeCipherSpec&); // hide copy + ChangeCipherSpec& operator=(const ChangeCipherSpec&); // and assign +}; + + + +class Alert : public Message { + AlertLevel level_; + AlertDescription description_; +public: + Alert() {} + Alert(AlertLevel al, AlertDescription ad); + + ContentType get_type() const; + uint16 get_length() const; + void Process(input_buffer&, SSL&); + + friend input_buffer& operator>>(input_buffer&, Alert&); + friend output_buffer& operator<<(output_buffer&, const Alert&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; +private: + Alert(const Alert&); // hide copy + Alert& operator=(const Alert&); // and assign +}; + + +class Data : public Message { + uint16 length_; + opaque* buffer_; // read buffer used by fillData input + const opaque* write_buffer_; // write buffer used by output operator +public: + Data(); + Data(uint16 len, opaque* b); + + friend output_buffer& operator<<(output_buffer&, const Data&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + ContentType get_type() const; + uint16 get_length() const; + void set_length(uint16 l); + opaque* set_buffer(); + void SetData(uint16, const opaque*); + void Process(input_buffer&, SSL&); +private: + Data(const Data&); // hide copy + Data& operator=(const Data&); // and assign +}; + + +uint32 c24to32(const uint24); // forward form internal header +void c32to24(uint32, uint24&); + + +// HandShake header, same for each message type from page 20/21 +class HandShakeHeader : public Message { + HandShakeType type_; + uint24 length_; // length of message +public: + HandShakeHeader() {} + + ContentType get_type() const; + uint16 get_length() const; + HandShakeType get_handshakeType() const; + void Process(input_buffer&, SSL&); + + void set_type(HandShakeType hst); + void set_length(uint32 u32); + + friend input_buffer& operator>>(input_buffer&, HandShakeHeader&); + friend output_buffer& operator<<(output_buffer&, const HandShakeHeader&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; +private: + HandShakeHeader(const HandShakeHeader&); // hide copy + HandShakeHeader& operator=(const HandShakeHeader&); // and assign +}; + + +// Base Class for all handshake messages +class HandShakeBase : public virtual_base { + int length_; +public: + int get_length() const; + void set_length(int); + + // for building buffer's type field + virtual HandShakeType get_type() const =0; + + // handles dispactch of proper >> + virtual input_buffer& set(input_buffer& in) =0; + virtual output_buffer& get(output_buffer& out) const =0; + + virtual void Process(input_buffer&, SSL&) =0; + + virtual ~HandShakeBase() {} +}; + + +struct HelloRequest : public HandShakeBase { + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + void Process(input_buffer&, SSL&); + + HandShakeType get_type() const; +}; + + +// The Client's Hello Message from page 23 +class ClientHello : public HandShakeBase { + ProtocolVersion client_version_; + Random random_; + uint8 id_len_; // session id length + opaque session_id_[ID_LEN]; + uint16 suite_len_; // cipher suite length + opaque cipher_suites_[MAX_SUITE_SZ]; + uint8 comp_len_; // compression length + CompressionMethod compression_methods_; +public: + friend input_buffer& operator>>(input_buffer&, ClientHello&); + friend output_buffer& operator<<(output_buffer&, const ClientHello&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + HandShakeType get_type() const; + void Process(input_buffer&, SSL&); + + const opaque* get_random() const; + friend void buildClientHello(SSL&, ClientHello&); + friend void ProcessOldClientHello(input_buffer& input, SSL& ssl); + + ClientHello(); + ClientHello(ProtocolVersion pv, bool useCompression); +private: + ClientHello(const ClientHello&); // hide copy + ClientHello& operator=(const ClientHello&); // and assign +}; + + + +// The Server's Hello Message from page 24 +class ServerHello : public HandShakeBase { + ProtocolVersion server_version_; + Random random_; + uint8 id_len_; // session id length + opaque session_id_[ID_LEN]; + opaque cipher_suite_[SUITE_LEN]; + CompressionMethod compression_method_; +public: + ServerHello(ProtocolVersion pv, bool useCompression); + ServerHello(); + + friend input_buffer& operator>>(input_buffer&, ServerHello&); + friend output_buffer& operator<<(output_buffer&, const ServerHello&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + HandShakeType get_type() const; + void Process(input_buffer&, SSL&); + + const opaque* get_random() const; + friend void buildServerHello(SSL&, ServerHello&); +private: + ServerHello(const ServerHello&); // hide copy + ServerHello& operator=(const ServerHello&); // and assign +}; + + +class x509; + +// Certificate could be a chain +class Certificate : public HandShakeBase { + const x509* cert_; +public: + Certificate(); + explicit Certificate(const x509* cert); + friend output_buffer& operator<<(output_buffer&, const Certificate&); + + const opaque* get_buffer() const; + + // Process handles input, needs SSL + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + HandShakeType get_type() const; + void Process(input_buffer&, SSL&); +private: + Certificate(const Certificate&); // hide copy + Certificate& operator=(const Certificate&); // and assign +}; + + + +// RSA Public Key +struct ServerRSAParams { + opaque* rsa_modulus_; + opaque* rsa_exponent_; +}; + + +// Ephemeral Diffie-Hellman Parameters +class ServerDHParams { + int pSz_; + int gSz_; + int pubSz_; + opaque* p_; + opaque* g_; + opaque* Ys_; +public: + ServerDHParams(); + ~ServerDHParams(); + + int get_pSize() const; + int get_gSize() const; + int get_pubSize() const; + + const opaque* get_p() const; + const opaque* get_g() const; + const opaque* get_pub() const; + + opaque* alloc_p(int sz); + opaque* alloc_g(int sz); + opaque* alloc_pub(int sz); +private: + ServerDHParams(const ServerDHParams&); // hide copy + ServerDHParams& operator=(const ServerDHParams&); // and assign +}; + + +struct ServerKeyBase : public virtual_base { + virtual ~ServerKeyBase() {} + virtual void build(SSL&) {} + virtual void read(SSL&, input_buffer&) {} + virtual int get_length() const; + virtual opaque* get_serverKey() const; +}; + + +// Server random number for FORTEZZA KEA +struct Fortezza_Server : public ServerKeyBase { + opaque r_s_[FORTEZZA_MAX]; +}; + + +struct SignatureBase : public virtual_base { + virtual ~SignatureBase() {} +}; + +struct anonymous_sa : public SignatureBase {}; + + +struct Hashes { + uint8 md5_[MD5_LEN]; + uint8 sha_[SHA_LEN]; +}; + + +struct rsa_sa : public SignatureBase { + Hashes hashes_; +}; + + +struct dsa_sa : public SignatureBase { + uint8 sha_[SHA_LEN]; +}; + + +// Server's Diffie-Hellman exchange +class DH_Server : public ServerKeyBase { + ServerDHParams parms_; + opaque* signature_; + + int length_; // total length of message + opaque* keyMessage_; // total exchange message +public: + DH_Server(); + ~DH_Server(); + + void build(SSL&); + void read(SSL&, input_buffer&); + int get_length() const; + opaque* get_serverKey() const; +private: + DH_Server(const DH_Server&); // hide copy + DH_Server& operator=(const DH_Server&); // and assign +}; + + +// Server's RSA exchange +struct RSA_Server : public ServerKeyBase { + ServerRSAParams params_; + opaque* signature_; // signed rsa_sa hashes +}; + + +class ServerKeyExchange : public HandShakeBase { + ServerKeyBase* server_key_; +public: + explicit ServerKeyExchange(SSL&); + ServerKeyExchange(); + ~ServerKeyExchange(); + + void createKey(SSL&); + void build(SSL& ssl); + + const opaque* getKey() const; + int getKeyLength() const; + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + friend output_buffer& operator<<(output_buffer&, const ServerKeyExchange&); + + void Process(input_buffer&, SSL&); + HandShakeType get_type() const; +private: + ServerKeyExchange(const ServerKeyExchange&); // hide copy + ServerKeyExchange& operator=(const ServerKeyExchange&); // and assign +}; + + + +class CertificateRequest : public HandShakeBase { + ClientCertificateType certificate_types_[CERT_TYPES]; + int typeTotal_; + STL::list certificate_authorities_; +public: + CertificateRequest(); + ~CertificateRequest(); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + friend input_buffer& operator>>(input_buffer&, CertificateRequest&); + friend output_buffer& operator<<(output_buffer&, + const CertificateRequest&); + + void Process(input_buffer&, SSL&); + HandShakeType get_type() const; + + void Build(); +private: + CertificateRequest(const CertificateRequest&); // hide copy + CertificateRequest& operator=(const CertificateRequest&); // and assign +}; + + +struct ServerHelloDone : public HandShakeBase { + ServerHelloDone(); + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + void Process(input_buffer& input, SSL& ssl); + + HandShakeType get_type() const; +}; + + +struct PreMasterSecret { + opaque random_[SECRET_LEN]; // first two bytes Protocol Version +}; + + +struct ClientKeyBase : public virtual_base { + virtual ~ClientKeyBase() {} + virtual void build(SSL&) {} + virtual void read(SSL&, input_buffer&) {} + virtual int get_length() const; + virtual opaque* get_clientKey() const; +}; + + +class EncryptedPreMasterSecret : public ClientKeyBase { + opaque* secret_; + int length_; +public: + EncryptedPreMasterSecret(); + ~EncryptedPreMasterSecret(); + + void build(SSL&); + void read(SSL&, input_buffer&); + int get_length() const; + opaque* get_clientKey() const; + void alloc(int sz); +private: + // hide copy and assign + EncryptedPreMasterSecret(const EncryptedPreMasterSecret&); + EncryptedPreMasterSecret& operator=(const EncryptedPreMasterSecret&); +}; + + +// Fortezza Key Parameters from page 29 +// hard code lengths cause only used here +struct FortezzaKeys : public ClientKeyBase { + opaque y_c_ [128]; // client's Yc, public value + opaque r_c_ [128]; // client's Rc + opaque y_signature_ [40]; // DSS signed public key + opaque wrapped_client_write_key_ [12]; // wrapped by the TEK + opaque wrapped_server_write_key_ [12]; // wrapped by the TEK + opaque client_write_iv_ [24]; + opaque server_write_iv_ [24]; + opaque master_secret_iv_ [24]; // IV used to encrypt preMaster + opaque encrypted_preMasterSecret_[48]; // random & crypted by the TEK +}; + + + +// Diffie-Hellman public key from page 40/41 +class ClientDiffieHellmanPublic : public ClientKeyBase { + PublicValueEncoding public_value_encoding_; + int length_; // includes two byte length for message + opaque* Yc_; // length + Yc_ + // dh_Yc only if explicit, otherwise sent in certificate + enum { KEY_OFFSET = 2 }; +public: + ClientDiffieHellmanPublic(); + ~ClientDiffieHellmanPublic(); + + void build(SSL&); + void read(SSL&, input_buffer&); + int get_length() const; + opaque* get_clientKey() const; + void alloc(int sz, bool offset = false); +private: + // hide copy and assign + ClientDiffieHellmanPublic(const ClientDiffieHellmanPublic&); + ClientDiffieHellmanPublic& operator=(const ClientDiffieHellmanPublic&); +}; + + +class ClientKeyExchange : public HandShakeBase { + ClientKeyBase* client_key_; +public: + explicit ClientKeyExchange(SSL& ssl); + ClientKeyExchange(); + ~ClientKeyExchange(); + + void createKey(SSL&); + void build(SSL& ssl); + + const opaque* getKey() const; + int getKeyLength() const; + + friend output_buffer& operator<<(output_buffer&, const ClientKeyExchange&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + HandShakeType get_type() const; + void Process(input_buffer&, SSL&); +private: + ClientKeyExchange(const ClientKeyExchange&); // hide copy + ClientKeyExchange& operator=(const ClientKeyExchange&); // and assign +}; + + +class CertificateVerify : public HandShakeBase { + Hashes hashes_; + byte* signature_; // owns +public: + CertificateVerify(); + ~CertificateVerify(); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + friend input_buffer& operator>>(input_buffer&, CertificateVerify&); + friend output_buffer& operator<<(output_buffer&, const CertificateVerify&); + + void Process(input_buffer&, SSL&); + HandShakeType get_type() const; + + void Build(SSL&); +private: + CertificateVerify(const CertificateVerify&); // hide copy + CertificateVerify& operator=(const CertificateVerify&); // and assign +}; + + +class Finished : public HandShakeBase { + Hashes hashes_; +public: + Finished(); + + uint8* set_md5(); + uint8* set_sha(); + + friend input_buffer& operator>>(input_buffer&, Finished&); + friend output_buffer& operator<<(output_buffer&, const Finished&); + + input_buffer& set(input_buffer& in); + output_buffer& get(output_buffer& out) const; + + void Process(input_buffer&, SSL&); + + HandShakeType get_type() const; +private: + Finished(const Finished&); // hide copy + Finished& operator=(const Finished&); // and assign +}; + + +class RandomPool; // forward for connection + + +// SSL Connection defined on page 11 +struct Connection { + opaque *pre_master_secret_; + opaque master_secret_[SECRET_LEN]; + opaque client_random_[RAN_LEN]; + opaque server_random_[RAN_LEN]; + opaque sessionID_[ID_LEN]; + opaque client_write_MAC_secret_[SHA_LEN]; // sha is max size + opaque server_write_MAC_secret_[SHA_LEN]; + opaque client_write_key_[AES_256_KEY_SZ]; // aes 256bit is max sz + opaque server_write_key_[AES_256_KEY_SZ]; + opaque client_write_IV_[AES_IV_SZ]; // aes is max size + opaque server_write_IV_[AES_IV_SZ]; + uint32 sequence_number_; + uint32 peer_sequence_number_; + uint32 pre_secret_len_; // pre master length + bool send_server_key_; // server key exchange? + bool master_clean_; // master secret clean? + bool TLS_; // TLSv1 or greater + bool TLSv1_1_; // TLSv1.1 or greater + bool sessionID_Set_; // do we have a session + bool compression_; // zlib compression? + ProtocolVersion version_; // negotiated version + ProtocolVersion chVersion_; // client hello version + RandomPool& random_; + + Connection(ProtocolVersion v, RandomPool& ran); + ~Connection(); + + void AllocPreSecret(uint sz); + void CleanPreMaster(); + void CleanMaster(); + void TurnOffTLS(); + void TurnOffTLS1_1(); +private: + Connection(const Connection&); // hide copy + Connection& operator=(const Connection&); // and assign +}; + + +struct Ciphers; // forward + + +// TLSv1 Security Spec, defined on page 56 of RFC 2246 +struct Parameters { + ConnectionEnd entity_; + BulkCipherAlgorithm bulk_cipher_algorithm_; + CipherType cipher_type_; + uint8 key_size_; + uint8 iv_size_; + IsExportable is_exportable_; + MACAlgorithm mac_algorithm_; + uint8 hash_size_; + CompressionMethod compression_algorithm_; + KeyExchangeAlgorithm kea_; // yassl additions + SignatureAlgorithm sig_algo_; // signature auth type + SignatureAlgorithm verify_algo_; // cert verify auth type + bool pending_; + bool resumable_; // new conns by session + uint16 encrypt_size_; // current msg encrypt sz + Cipher suite_[SUITE_LEN]; // choosen suite + uint8 suites_size_; + Cipher suites_[MAX_SUITE_SZ]; + char cipher_name_[MAX_SUITE_NAME]; + char cipher_list_[MAX_CIPHERS][MAX_SUITE_NAME]; + bool removeDH_; // for server's later use + + Parameters(ConnectionEnd, const Ciphers&, ProtocolVersion, bool haveDH); + + void SetSuites(ProtocolVersion pv, bool removeDH = false, + bool removeRSA = false, bool removeDSA = false); + void SetCipherNames(); +private: + Parameters(const Parameters&); // hide copy + Parameters& operator=(const Parameters&); // and assing +}; + + +input_buffer& operator>>(input_buffer&, RecordLayerHeader&); +output_buffer& operator<<(output_buffer&, const RecordLayerHeader&); + +input_buffer& operator>>(input_buffer&, Message&); +output_buffer& operator<<(output_buffer&, const Message&); + +input_buffer& operator>>(input_buffer&, HandShakeBase&); +output_buffer& operator<<(output_buffer&, const HandShakeBase&); + + +// Message Factory definition +// uses the ContentType enumeration for unique id +typedef Factory MessageFactory; +void InitMessageFactory(MessageFactory&); // registers derived classes + +// HandShake Factory definition +// uses the HandShakeType enumeration for unique id +typedef Factory HandShakeFactory; +void InitHandShakeFactory(HandShakeFactory&); // registers derived classes + +// ServerKey Factory definition +// uses KeyExchangeAlgorithm enumeration for unique id +typedef Factory ServerKeyFactory; +void InitServerKeyFactory(ServerKeyFactory&); + +// ClientKey Factory definition +// uses KeyExchangeAlgorithm enumeration for unique id +typedef Factory ClientKeyFactory; +void InitClientKeyFactory(ClientKeyFactory&); + + +// Message Creators +Message* CreateHandShake(); +Message* CreateCipherSpec(); +Message* CreateAlert(); +Message* CreateData(); + + +// HandShake Creators +HandShakeBase* CreateCertificate(); +HandShakeBase* CreateHelloRequest(); +HandShakeBase* CreateClientHello(); +HandShakeBase* CreateServerHello(); +HandShakeBase* CreateServerKeyExchange(); +HandShakeBase* CreateCertificateRequest(); +HandShakeBase* CreateServerHelloDone(); +HandShakeBase* CreateClientKeyExchange(); +HandShakeBase* CreateCertificateVerify(); +HandShakeBase* CreateFinished(); + + +// ServerKey Exchange Creators +ServerKeyBase* CreateRSAServerKEA(); +ServerKeyBase* CreateDHServerKEA(); +ServerKeyBase* CreateFortezzaServerKEA(); + +// ClientKey Exchange Creators +ClientKeyBase* CreateRSAClient(); +ClientKeyBase* CreateDHClient(); +ClientKeyBase* CreateFortezzaClient(); + + + +} // naemspace + +#endif // yaSSL_IMP_HPP diff --git a/mysql/extra/yassl/include/yassl_int.hpp b/mysql/extra/yassl/include/yassl_int.hpp new file mode 100644 index 0000000..240cf94 --- /dev/null +++ b/mysql/extra/yassl/include/yassl_int.hpp @@ -0,0 +1,725 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL internal header defines SSL supporting types not specified in the + * draft along with type conversion functions and openssl compatibility + */ + + +#ifndef yaSSL_INT_HPP +#define yaSSL_INT_HPP + +#include "yassl_imp.hpp" +#include "yassl_error.hpp" +#include "crypto_wrapper.hpp" +#include "cert_wrapper.hpp" +#include "log.hpp" +#include "lock.hpp" +#include "openssl/ssl.h" // ASN1_STRING and DH + +// Check if _POSIX_THREADS should be forced +#if !defined(_POSIX_THREADS) && defined(__hpux) +// HPUX does not define _POSIX_THREADS as it's not _fully_ implemented +#define _POSIX_THREADS +#endif + +#ifdef _POSIX_THREADS + #include +#endif + + +namespace STL = STL_NAMESPACE; + + +namespace yaSSL { + + +// State Machine for Record Layer Protocol +enum RecordLayerState { + recordNotReady = 0, // fatal error, no more processing + recordReady +}; + + +// State Machine for HandShake Protocol +enum HandShakeState { + handShakeNotReady = 0, // fatal error, no more processing + preHandshake, // initial state + inHandshake, // handshake started + handShakeReady // handshake done +}; + + +// client input HandShake state, use if HandShakeState == inHandShake +enum ClientState { + serverNull = 0, + serverHelloComplete, + serverCertComplete, + serverKeyExchangeComplete, + serverHelloDoneComplete, + serverFinishedComplete +}; + + +// server input HandShake state, use if HandShakeState == inHandShake +enum ServerState { + clientNull = 0, + clientHelloComplete, + clientKeyExchangeComplete, + clientFinishedComplete +}; + + +// client connect state for nonblocking restart +enum ConnectState { + CONNECT_BEGIN = 0, + CLIENT_HELLO_SENT, + FIRST_REPLY_DONE, + FINISHED_DONE, + SECOND_REPLY_DONE +}; + + +// server accpet state for nonblocking restart +enum AcceptState { + ACCEPT_BEGIN = 0, + ACCEPT_FIRST_REPLY_DONE, + SERVER_HELLO_DONE, + ACCEPT_SECOND_REPLY_DONE, + ACCEPT_FINISHED_DONE, + ACCEPT_THIRD_REPLY_DONE +}; + + +// track received messages to explicitly disallow duplicate messages +struct RecvdMessages { + uint8 gotClientHello_; + uint8 gotServerHello_; + uint8 gotCert_; + uint8 gotServerKeyExchange_; + uint8 gotCertRequest_; + uint8 gotServerHelloDone_; + uint8 gotCertVerify_; + uint8 gotClientKeyExchange_; + uint8 gotFinished_; + RecvdMessages() : gotClientHello_(0), gotServerHello_(0), gotCert_(0), + gotServerKeyExchange_(0), gotCertRequest_(0), + gotServerHelloDone_(0), gotCertVerify_(0), + gotClientKeyExchange_(0), gotFinished_(0) + {} +}; + + +// combines all states +class States { + RecordLayerState recordLayer_; + HandShakeState handshakeLayer_; + ClientState clientState_; + ServerState serverState_; + ConnectState connectState_; + AcceptState acceptState_; + RecvdMessages recvdMessages_; + char errorString_[MAX_ERROR_SZ]; + YasslError what_; +public: + States(); + + const RecordLayerState& getRecord() const; + const HandShakeState& getHandShake() const; + const ClientState& getClient() const; + const ServerState& getServer() const; + const ConnectState& GetConnect() const; + const AcceptState& GetAccept() const; + const char* getString() const; + YasslError What() const; + + RecordLayerState& useRecord(); + HandShakeState& useHandShake(); + ClientState& useClient(); + ServerState& useServer(); + ConnectState& UseConnect(); + AcceptState& UseAccept(); + char* useString(); + void SetError(YasslError); + int SetMessageRecvd(HandShakeType); +private: + States(const States&); // hide copy + States& operator=(const States&); // and assign +}; + + +// holds all factories +class sslFactory { + MessageFactory messageFactory_; // creates new messages by type + HandShakeFactory handShakeFactory_; // creates new handshake types + ServerKeyFactory serverKeyFactory_; // creates new server key types + ClientKeyFactory clientKeyFactory_; // creates new client key types + + sslFactory(); // only GetSSL_Factory creates +public: + const MessageFactory& getMessage() const; + const HandShakeFactory& getHandShake() const; + const ServerKeyFactory& getServerKey() const; + const ClientKeyFactory& getClientKey() const; + + friend sslFactory& GetSSL_Factory(); // singleton creator +private: + sslFactory(const sslFactory&); // hide copy + sslFactory& operator=(const sslFactory&); // and assign +}; + + +#undef X509_NAME // wincrypt.h clash + +// openSSL X509 names +class X509_NAME { + char* name_; + size_t sz_; + int cnPosition_; // start of common name, -1 is none + int cnLen_; // length of above + ASN1_STRING entry_; +public: + X509_NAME(const char*, size_t sz, int pos, int len); + ~X509_NAME(); + + const char* GetName() const; + ASN1_STRING* GetEntry(int i); + size_t GetLength() const; + int GetCnPosition() const { return cnPosition_; } + int GetCnLength() const { return cnLen_; } + +private: + X509_NAME(const X509_NAME&); // hide copy + X509_NAME& operator=(const X509_NAME&); // and assign +}; + + +class StringHolder { + ASN1_STRING asnString_; +public: + StringHolder(const char* str, int sz, byte type= 0); + ~StringHolder(); + + ASN1_STRING* GetString(); +private: + StringHolder(const StringHolder&); // hide copy + StringHolder& operator=(const StringHolder&); // and assign +}; + + +// openSSL X509 +class X509 { + X509_NAME issuer_; + X509_NAME subject_; + StringHolder beforeDate_; // not valid before + StringHolder afterDate_; // not valid after +public: + X509(const char* i, size_t, const char* s, size_t, + ASN1_STRING *b, ASN1_STRING *a, int, int, int, int); + ~X509() {} + + X509_NAME* GetIssuer(); + X509_NAME* GetSubject(); + + ASN1_STRING* GetBefore(); + ASN1_STRING* GetAfter(); + +private: + X509(const X509&); // hide copy + X509& operator=(const X509&); // and assign +}; + + +// openSSL bignum +struct BIGNUM { + /* + gcc 2.96 fix: because of two Integer classes (yaSSL::Integer and + TaoCrypt::Integer), we need to explicitly state the namespace + here to let gcc 2.96 deduce the correct type. + */ + yaSSL::Integer int_; + void assign(const byte* b, uint s) { int_.assign(b,s); } +}; + + +// openSSL session +class SSL_SESSION { + opaque sessionID_[ID_LEN]; + opaque master_secret_[SECRET_LEN]; + Cipher suite_[SUITE_LEN]; + uint bornOn_; // create time in seconds + uint timeout_; // timeout in seconds + RandomPool& random_; // will clean master secret + X509* peerX509_; +public: + explicit SSL_SESSION(RandomPool&); + SSL_SESSION(const SSL&, RandomPool&); + ~SSL_SESSION(); + + const opaque* GetID() const; + const opaque* GetSecret() const; + const Cipher* GetSuite() const; + uint GetBornOn() const; + uint GetTimeOut() const; + X509* GetPeerX509() const; + void SetTimeOut(uint); + + SSL_SESSION& operator=(const SSL_SESSION&); // allow assign for resumption +private: + SSL_SESSION(const SSL_SESSION&); // hide copy + + void CopyX509(X509*); +}; + + +// holds all sessions +class Sessions { + STL::list list_; + RandomPool random_; // for session cleaning + Mutex mutex_; // no-op for single threaded + int count_; // flush counter + + Sessions() : count_(0) {} // only GetSessions can create +public: + SSL_SESSION* lookup(const opaque*, SSL_SESSION* copy = 0); + void add(const SSL&); + void remove(const opaque*); + void Flush(); + + ~Sessions(); + + friend void Session_initialize(); + friend Sessions& GetSessions(); // singleton creator +private: + Sessions(const Sessions&); // hide copy + Sessions& operator=(const Sessions&); // and assign +}; + + +#ifdef _POSIX_THREADS + typedef pthread_t THREAD_ID_T; +#else + typedef DWORD THREAD_ID_T; +#endif + +// thread error data +struct ThreadError { + THREAD_ID_T threadID_; + int errorID_; +}; + + +// holds all errors +class Errors { + STL::list list_; + Mutex mutex_; + + Errors() {} // only GetErrors can create +public: + int Lookup(bool peek); // self lookup + void Add(int); + void Remove(); // remove self + + ~Errors() {} + + friend Errors& GetErrors(); // singleton creator +private: + Errors(const Errors&); // hide copy + Errors& operator=(const Errors); // and assign +}; + + +Sessions& GetSessions(); // forward singletons +sslFactory& GetSSL_Factory(); +Errors& GetErrors(); + + +// openSSL method and context types +class SSL_METHOD { + ProtocolVersion version_; + ConnectionEnd side_; + bool verifyPeer_; // request or send certificate + bool verifyNone_; // whether to verify certificate + bool failNoCert_; + bool multipleProtocol_; // for SSLv23 compatibility +public: + SSL_METHOD(ConnectionEnd ce, ProtocolVersion pv, + bool multipleProtocol = false); + + ProtocolVersion getVersion() const; + ConnectionEnd getSide() const; + + void setVerifyPeer(); + void setVerifyNone(); + void setFailNoCert(); + + bool verifyPeer() const; + bool verifyNone() const; + bool failNoCert() const; + bool multipleProtocol() const; +private: + SSL_METHOD(const SSL_METHOD&); // hide copy + SSL_METHOD& operator=(const SSL_METHOD&); // and assign +}; + + +struct Ciphers { + bool setSuites_; // user set suites from default + byte suites_[MAX_SUITE_SZ]; // new suites + int suiteSz_; // suite length in bytes + + Ciphers() : setSuites_(false), suiteSz_(0) {} +}; + + +struct DH; // forward + + +// save for SSL construction +struct DH_Parms { + Integer p_; + Integer g_; + bool set_; // if set by user + + DH_Parms() : set_(false) {} +}; + + +enum StatsField { + Accept, Connect, AcceptGood, ConnectGood, AcceptRenegotiate, + ConnectRenegotiate, Hits, CbHits, CacheFull, Misses, Timeouts, Number, + GetCacheSize, VerifyMode, VerifyDepth +}; + + +// SSL stats +struct Stats { + long accept_; + long connect_; + long acceptGood_; + long connectGood_; + long acceptRenegotiate_; + long connectRenegotiate_; + + long hits_; + long cbHits_; + long cacheFull_; + long misses_; + long timeouts_; + long number_; + long getCacheSize_; + + int verifyMode_; + int verifyDepth_; +public: + Stats() : accept_(0), connect_(0), acceptGood_(0), connectGood_(0), + acceptRenegotiate_(0), connectRenegotiate_(0), hits_(0), cbHits_(0), + cacheFull_(0), misses_(0), timeouts_(0), number_(0), getCacheSize_(0), + verifyMode_(0), verifyDepth_(0) + {} +private: + Stats(const Stats&); // hide copy + Stats& operator=(const Stats&); // and assign +}; + + +// the SSL context +class SSL_CTX { +public: + typedef STL::list CertList; +private: + SSL_METHOD* method_; + x509* certificate_; + x509* privateKey_; + CertList caList_; + Ciphers ciphers_; + DH_Parms dhParms_; + pem_password_cb passwordCb_; + void* userData_; + bool sessionCacheOff_; + bool sessionCacheFlushOff_; + Stats stats_; + Mutex mutex_; // for Stats + VerifyCallback verifyCallback_; +public: + explicit SSL_CTX(SSL_METHOD* meth); + ~SSL_CTX(); + + const x509* getCert() const; + const x509* getKey() const; + const SSL_METHOD* getMethod() const; + const Ciphers& GetCiphers() const; + const DH_Parms& GetDH_Parms() const; + const Stats& GetStats() const; + VerifyCallback getVerifyCallback() const; + pem_password_cb GetPasswordCb() const; + void* GetUserData() const; + bool GetSessionCacheOff() const; + bool GetSessionCacheFlushOff() const; + + void setVerifyPeer(); + void setVerifyNone(); + void setFailNoCert(); + void setVerifyCallback(VerifyCallback); + bool SetCipherList(const char*); + bool SetDH(const DH&); + void SetPasswordCb(pem_password_cb cb); + void SetUserData(void*); + void SetSessionCacheOff(); + void SetSessionCacheFlushOff(); + void SetMethod(SSL_METHOD* meth); + void IncrementStats(StatsField); + void AddCA(x509* ca); + const CertList& GetCA_List() const; + + friend int read_file(SSL_CTX*, const char*, int, CertType); +private: + SSL_CTX(const SSL_CTX&); // hide copy + SSL_CTX& operator=(const SSL_CTX&); // and assign +}; + + +// holds all cryptographic types +class Crypto { + Digest* digest_; // agreed upon digest + BulkCipher* cipher_; // agreed upon cipher + DiffieHellman* dh_; // dh parms + RandomPool random_; // random number generator + CertManager cert_; // manages certificates +public: + explicit Crypto(); + ~Crypto(); + + const Digest& get_digest() const; + const BulkCipher& get_cipher() const; + const DiffieHellman& get_dh() const; + const RandomPool& get_random() const; + const CertManager& get_certManager() const; + + Digest& use_digest(); + BulkCipher& use_cipher(); + DiffieHellman& use_dh(); + RandomPool& use_random(); + CertManager& use_certManager(); + + void SetDH(DiffieHellman*); + void SetDH(const DH_Parms&); + void setDigest(Digest*); + void setCipher(BulkCipher*); + + bool DhSet(); +private: + Crypto(const Crypto&); // hide copy + Crypto& operator=(const Crypto&); // and assign +}; + + +// holds all handshake and verify hashes +class sslHashes { + MD5 md5HandShake_; // md5 handshake hash + SHA shaHandShake_; // sha handshake hash + Finished verify_; // peer's verify hash + Hashes certVerify_; // peer's cert verify hash +public: + sslHashes() {} + + const MD5& get_MD5() const; + const SHA& get_SHA() const; + const Finished& get_verify() const; + const Hashes& get_certVerify() const; + + MD5& use_MD5(); + SHA& use_SHA(); + Finished& use_verify(); + Hashes& use_certVerify(); +private: + sslHashes(const sslHashes&); // hide copy + sslHashes& operator=(const sslHashes&); // and assign +}; + + +// holds input and output buffers +class Buffers { +public: + typedef STL::list inputList; + typedef STL::list outputList; + int prevSent; // previous plain text bytes sent when got WANT_WRITE + int plainSz; // plain text bytes in buffer to send when got WANT_WRITE +private: + inputList dataList_; // list of users app data / handshake + outputList handShakeList_; // buffered handshake msgs + input_buffer* rawInput_; // buffered raw input yet to process + output_buffer* output_; // WANT_WRITE buffered output +public: + Buffers(); + ~Buffers(); + + const inputList& getData() const; + const outputList& getHandShake() const; + + inputList& useData(); + outputList& useHandShake(); + + void SetRawInput(input_buffer*); // takes ownership + input_buffer* TakeRawInput(); // takes ownership + void SetOutput(output_buffer*); // takes ownership + output_buffer* TakeOutput(); // takes ownership +private: + Buffers(const Buffers&); // hide copy + Buffers& operator=(const Buffers&); // and assign +}; + + +// wraps security parameters +class Security { + Connection conn_; // connection information + Parameters parms_; // may be pending + SSL_SESSION resumeSession_; // if resuming + SSL_CTX* ctx_; // context used to init + bool resuming_; // trying to resume +public: + Security(ProtocolVersion, RandomPool&, ConnectionEnd, const Ciphers&, + SSL_CTX*, bool); + + const SSL_CTX* GetContext() const; + const Connection& get_connection() const; + const Parameters& get_parms() const; + const SSL_SESSION& get_resume() const; + bool get_resuming() const; + + Connection& use_connection(); + Parameters& use_parms(); + SSL_SESSION& use_resume(); + + void set_resuming(bool b); +private: + Security(const Security&); // hide copy + Security& operator=(const Security&); // and assign +}; + + +// THE SSL type +class SSL { + Crypto crypto_; // agreed crypto agents + Security secure_; // Connection and Session parms + States states_; // Record and HandShake states + sslHashes hashes_; // handshake, finished hashes + Socket socket_; // socket wrapper + Buffers buffers_; // buffered handshakes and data + Log log_; // logger + bool quietShutdown_; + + // optimization variables + bool has_data_; // buffered data ready? +public: + SSL(SSL_CTX* ctx); + + // gets and uses + const Crypto& getCrypto() const; + const Security& getSecurity() const; + const States& getStates() const; + const sslHashes& getHashes() const; + const sslFactory& getFactory() const; + const Socket& getSocket() const; + YasslError GetError() const; + bool GetMultiProtocol() const; + bool CompressionOn() const; + + Crypto& useCrypto(); + Security& useSecurity(); + States& useStates(); + sslHashes& useHashes(); + Socket& useSocket(); + Log& useLog(); + Buffers& useBuffers(); + + bool HasData() const; + bool GetQuietShutdown() const; + + // sets + void set_pending(Cipher suite); + void set_random(const opaque*, ConnectionEnd); + void set_sessionID(const opaque*); + void set_session(SSL_SESSION*); + void set_preMaster(const opaque*, uint); + void set_masterSecret(const opaque*); + void SetError(YasslError); + int SetCompression(); + void UnSetCompression(); + void SetQuietShutdown(bool mode); + + // helpers + bool isTLS() const; + bool isTLSv1_1() const; + void order_error(); + void makeMasterSecret(); + void makeTLSMasterSecret(); + void addData(input_buffer* data); + void fillData(Data&); + void PeekData(Data&); + void addBuffer(output_buffer* b); + void flushBuffer(); + void verifyState(const RecordLayerHeader&); + void verifyState(const HandShakeHeader&); + void verifyState(ClientState); + void verifyState(ServerState); + void verfiyHandShakeComplete(); + void matchSuite(const opaque*, uint length); + void deriveKeys(); + void deriveTLSKeys(); + void Send(const byte*, uint); + void SendWriteBuffered(); + + uint bufferedData(); + uint get_SEQIncrement(bool); + + const byte* get_macSecret(bool); +private: + void storeKeys(const opaque*); + void setKeys(); + void verifyClientState(HandShakeType); + void verifyServerState(HandShakeType); + + SSL(const SSL&); // hide copy + const SSL& operator=(const SSL&); // and assign +}; + + +// compression +int Compress(const byte*, int, input_buffer&); +int DeCompress(input_buffer&, int, input_buffer&); + + +// conversion functions +void c32to24(uint32, uint24&); +void c24to32(const uint24, uint32&); + +uint32 c24to32(const uint24); + +void ato16(const opaque*, uint16&); +void ato24(const opaque*, uint24&); + +void c16toa(uint16, opaque*); +void c24toa(const uint24, opaque*); +void c32toa(uint32 u32, opaque*); + + +} // naemspace + +#endif // yaSSL_INT_HPP diff --git a/mysql/extra/yassl/include/yassl_types.hpp b/mysql/extra/yassl/include/yassl_types.hpp new file mode 100644 index 0000000..129661c --- /dev/null +++ b/mysql/extra/yassl/include/yassl_types.hpp @@ -0,0 +1,540 @@ +/* + Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* yaSSL types header defines all constants, enums, and typedefs + * from the SSL.v3 specification "draft-freier-ssl-version3-02.txt" + */ + + +#ifndef yaSSL_TYPES_HPP +#define yaSSL_TYPES_HPP + +#include +#include "type_traits.hpp" + + +#ifdef _MSC_VER + // disable conversion warning + // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy + #pragma warning(disable:4244 4996) +#endif + + +#ifdef _MSC_VER + // disable conversion warning + // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy + #pragma warning(disable:4244 4996) +#endif + + +namespace yaSSL { + +#define YASSL_LIB + + +#ifdef YASSL_PURE_C + + // library allocation + struct new_t {}; // yaSSL New type + extern new_t ys; // pass in parameter + + } // namespace yaSSL + + void* operator new (size_t, yaSSL::new_t); + void* operator new[](size_t, yaSSL::new_t); + + void operator delete (void*, yaSSL::new_t); + void operator delete[](void*, yaSSL::new_t); + + + namespace yaSSL { + + + template + void ysDelete(T* ptr) + { + if (ptr) ptr->~T(); + ::operator delete(ptr, yaSSL::ys); + } + + template + void ysArrayDelete(T* ptr) + { + // can't do array placement destruction since not tracking size in + // allocation, only allow builtins to use array placement since they + // don't need destructors called + typedef char builtin[TaoCrypt::IsFundamentalType::Yes ? 1 : -1]; + (void)sizeof(builtin); + + ::operator delete[](ptr, yaSSL::ys); + } + + #define NEW_YS new (yaSSL::ys) + + // to resolve compiler generated operator delete on base classes with + // virtual destructors (when on stack) + class virtual_base { + public: + static void operator delete(void*) { } + }; + + +#else // YASSL_PURE_C + + + template + void ysDelete(T* ptr) + { + delete ptr; + } + + template + void ysArrayDelete(T* ptr) + { + delete[] ptr; + } + + #define NEW_YS new + + class virtual_base {}; + + + +#endif // YASSL_PURE_C + + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint32; +typedef uint8 uint24[3]; +typedef uint32 uint64[2]; + +typedef uint8 opaque; +typedef opaque byte; + +typedef unsigned int uint; + + +#ifdef USE_SYS_STL + // use system STL + #define STL_VECTOR_FILE + #define STL_LIST_FILE + #define STL_ALGORITHM_FILE + #define STL_MEMORY_FILE + #define STL_PAIR_FILE + + #define STL_NAMESPACE std +#else + // use mySTL + #define STL_VECTOR_FILE "vector.hpp" + #define STL_LIST_FILE "list.hpp" + #define STL_ALGORITHM_FILE "algorithm.hpp" + #define STL_MEMORY_FILE "memory.hpp" + #define STL_PAIR_FILE "pair.hpp" + + #define STL_NAMESPACE mySTL +#endif + + +#ifdef min + #undef min +#endif + +template +T min(T a, T b) +{ + return a < b ? a : b; +} + + + +// all length constants in bytes +const int ID_LEN = 32; // session id length +const int SUITE_LEN = 2; // cipher suite length +const int SECRET_LEN = 48; // pre RSA and all master secret length +const int MASTER_ROUNDS = 3; // master secret derivation rounds +const int RAN_LEN = 32; // client and server random length +const int MAC_BLOCK_SZ = 64; // MAC block size, & padding +const int MD5_LEN = 16; // MD5 digest length +const int SHA_LEN = 20; // SHA digest length +const int RMD_LEN = 20; // RIPEMD-160 digest length +const int PREFIX = 3; // up to 3 prefix letters for secret rounds +const int KEY_PREFIX = 7; // up to 7 prefix letters for key rounds +const int FORTEZZA_MAX = 128; // Maximum Fortezza Key length +const int MAX_SUITE_SZ = 128; // 64 max suites * sizeof(suite) +const int MAX_SUITE_NAME = 48; // max length of suite name +const int MAX_CIPHERS = 32; // max supported ciphers for cipher list +const int SIZEOF_ENUM = 1; // SSL considers an enum 1 byte, not 4 +const int SIZEOF_SENDER = 4; // Sender constant, for finished generation +const int PAD_MD5 = 48; // pad length 1 and 2 for md5 finished +const int PAD_SHA = 40; // should be 44, specd wrong by netscape +const int PAD_RMD = 44; // pad length for RIPEMD-160, some use 40?? +const int CERT_HEADER = 3; // always use 3 bytes for certificate +const int CERT_TYPES = 7; // certificate request types +const int REQUEST_HEADER = 2; // request uses 2 bytes +const int VERIFY_HEADER = 2; // verify length field +const int MIN_CERT_TYPES = 1; // minimum certificate request types +const int MIN_DIS_NAMES = 3; // minimum distinguished names +const int MIN_DIS_SIZE = 1; // minimum distinguished name size +const int RECORD_HEADER = 5; // type + version + length(2) +const int HANDSHAKE_HEADER = 4; // type + length(3) +const int FINISHED_SZ = MD5_LEN + SHA_LEN; // sizeof finished data +const int TLS_FINISHED_SZ = 12; // TLS verify data size +const int SEQ_SZ = 8; // 64 bit sequence number +const int LENGTH_SZ = 2; // length field for HMAC, data only +const int VERSION_SZ = SIZEOF_ENUM * 2; // SSL/TLS length of version +const int DES_KEY_SZ = 8; // DES Key length +const int DES_EDE_KEY_SZ = 24; // DES EDE Key length +const int DES_BLOCK = 8; // DES is always fixed block size 8 +const int DES_IV_SZ = DES_BLOCK; // Init Vector length for DES +const int RC4_KEY_SZ = 16; // RC4 Key length +const int AES_128_KEY_SZ = 16; // AES 128bit Key length +const int AES_192_KEY_SZ = 24; // AES 192bit Key length +const int AES_256_KEY_SZ = 32; // AES 256bit Key length +const int AES_BLOCK_SZ = 16; // AES 128bit block size, rfc 3268 +const int AES_IV_SZ = AES_BLOCK_SZ; // AES Init Vector length +const int DSS_SIG_SZ = 40; // two 20 byte high byte first Integers +const int DSS_ENCODED_EXTRA = 6; // seqID + len(1) + (intID + len(1)) * 2 +const int EVP_SALT_SZ = 8; +const int MASTER_LABEL_SZ = 13; // TLS master secret label size +const int KEY_LABEL_SZ = 13; // TLS key block expansion size +const int FINISHED_LABEL_SZ = 15; // TLS finished lable length +const int SEED_LEN = RAN_LEN * 2; // TLS seed, client + server random +const int DEFAULT_TIMEOUT = 500; // Default Session timeout in seconds +const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard +const int COMPRESS_EXTRA = 1024; // extra compression possible addition +const int SESSION_FLUSH_COUNT = 256; // when to flush session cache +const int MAX_PAD_SIZE = 256; // max TLS padding size +const int COMPRESS_CONSTANT = 13; // compression calculation constant +const int COMPRESS_UPPER = 55; // compression calculation numerator +const int COMPRESS_LOWER = 64; // compression calculation denominator +const int COMPRESS_DUMMY_SIZE = 64; // compression dummy round size + +typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS + +typedef opaque Random[RAN_LEN]; + +typedef opaque* DistinguishedName; + +typedef bool IsExportable; + + +enum CompressionMethod { no_compression = 0, zlib = 221 }; + +enum CipherType { stream, block }; + +enum CipherChoice { change_cipher_spec_choice = 1 }; + +enum PublicValueEncoding { implicit_encoding, explicit_encoding }; + +enum ConnectionEnd { server_end, client_end }; + +enum AlertLevel { warning = 1, fatal = 2 }; + + + +// Record Layer Header identifier from page 12 +enum ContentType { + no_type = 0, + change_cipher_spec = 20, + alert = 21, + handshake = 22, + application_data = 23 +}; + + +// HandShake Layer Header identifier from page 20 +enum HandShakeType { + no_shake = -1, + hello_request = 0, + client_hello = 1, + server_hello = 2, + certificate = 11, + server_key_exchange = 12, + certificate_request = 13, + server_hello_done = 14, + certificate_verify = 15, + client_key_exchange = 16, + finished = 20 +}; + + +// Valid Alert types from page 16/17 +enum AlertDescription { + close_notify = 0, + unexpected_message = 10, + bad_record_mac = 20, + decompression_failure = 30, + handshake_failure = 40, + no_certificate = 41, + bad_certificate = 42, + unsupported_certificate = 43, + certificate_revoked = 44, + certificate_expired = 45, + certificate_unknown = 46, + illegal_parameter = 47 +}; + + +// Supported Key Exchange Protocols +enum KeyExchangeAlgorithm { + no_kea = 0, + rsa_kea, + diffie_hellman_kea, + fortezza_kea +}; + + +// Supported Authentication Schemes +enum SignatureAlgorithm { + anonymous_sa_algo = 0, + rsa_sa_algo, + dsa_sa_algo +}; + + +// Valid client certificate request types from page 27 +enum ClientCertificateType { + rsa_sign = 1, + dss_sign = 2, + rsa_fixed_dh = 3, + dss_fixed_dh = 4, + rsa_ephemeral_dh = 5, + dss_ephemeral_dh = 6, + fortezza_kea_cert = 20 +}; + + +// Supported Ciphers from page 43 +enum BulkCipherAlgorithm { + cipher_null, + rc4, + rc2, + des, + triple_des, // leading 3 (3des) not valid identifier + des40, + idea, + aes +}; + + +// Supported Message Authentication Codes from page 43 +enum MACAlgorithm { + no_mac, + md5, + sha, + rmd +}; + + +// Certificate file Type +enum CertType { Cert = 0, PrivateKey, CA }; + + +// all Cipher Suites from pages 41/42 +const Cipher SSL_NULL_WITH_NULL_NULL = 0; // { 0x00, 0x00 } +const Cipher SSL_RSA_WITH_NULL_MD5 = 1; // { 0x00, 0x01 } +const Cipher SSL_RSA_WITH_NULL_SHA = 2; // { 0x00, 0x02 } +const Cipher SSL_RSA_EXPORT_WITH_RC4_40_MD5 = 3; // { 0x00, 0x03 } +const Cipher SSL_RSA_WITH_RC4_128_MD5 = 4; // { 0x00, 0x04 } +const Cipher SSL_RSA_WITH_RC4_128_SHA = 5; // { 0x00, 0x05 } +const Cipher SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 6; // { 0x00, 0x06 } +const Cipher SSL_RSA_WITH_IDEA_CBC_SHA = 7; // { 0x00, 0x07 } +const Cipher SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = 8; // { 0x00, 0x08 } +const Cipher SSL_RSA_WITH_DES_CBC_SHA = 9; // { 0x00, 0x09 } +const Cipher SSL_RSA_WITH_3DES_EDE_CBC_SHA = 10; // { 0x00, 0x0A } +const Cipher SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 11; // { 0x00, 0x0B } +const Cipher SSL_DH_DSS_WITH_DES_CBC_SHA = 12; // { 0x00, 0x0C } +const Cipher SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA = 13; // { 0x00, 0x0D } +const Cipher SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 14; // { 0x00, 0x0E } +const Cipher SSL_DH_RSA_WITH_DES_CBC_SHA = 15; // { 0x00, 0x0F } +const Cipher SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA = 16; // { 0x00, 0x10 } +const Cipher SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 17; // { 0x00, 0x11 } +const Cipher SSL_DHE_DSS_WITH_DES_CBC_SHA = 18; // { 0x00, 0x12 } +const Cipher SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 19; // { 0x00, 0x13 } +const Cipher SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 20; // { 0x00, 0x14 } +const Cipher SSL_DHE_RSA_WITH_DES_CBC_SHA = 21; // { 0x00, 0x15 } +const Cipher SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 22; // { 0x00, 0x16 } +const Cipher SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 = 23; // { 0x00, 0x17 } +const Cipher SSL_DH_anon_WITH_RC4_128_MD5 = 24; // { 0x00, 0x18 } +const Cipher SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 25; // { 0x00, 0x19 } +const Cipher SSL_DH_anon_WITH_DES_CBC_SHA = 26; // { 0x00, 0x1A } +const Cipher SSL_DH_anon_WITH_3DES_EDE_CBC_SHA = 27; // { 0x00, 0x1B } +const Cipher SSL_FORTEZZA_KEA_WITH_NULL_SHA = 28; // { 0x00, 0x1C } +const Cipher SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA = 29; // { 0x00, 0x1D } +const Cipher SSL_FORTEZZA_KEA_WITH_RC4_128_SHA = 30; // { 0x00, 0x1E } + +// .. to 0x2B uses Kerberos Authentication + + +// TLS AES extensions +const Cipher TLS_RSA_WITH_AES_128_CBC_SHA = 47; // { 0x00, 0x2F } +const Cipher TLS_DH_DSS_WITH_AES_128_CBC_SHA = 48; // { 0x00, 0x30 } +const Cipher TLS_DH_RSA_WITH_AES_128_CBC_SHA = 49; // { 0x00, 0x31 } +const Cipher TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 50; // { 0x00, 0x32 } +const Cipher TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 51; // { 0x00, 0x33 } +const Cipher TLS_DH_anon_WITH_AES_128_CBC_SHA = 52; // { 0x00, 0x34 } + +const Cipher TLS_RSA_WITH_AES_256_CBC_SHA = 53; // { 0x00, 0x35 } +const Cipher TLS_DH_DSS_WITH_AES_256_CBC_SHA = 54; // { 0x00, 0x36 } +const Cipher TLS_DH_RSA_WITH_AES_256_CBC_SHA = 55; // { 0x00, 0x37 } +const Cipher TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 56; // { 0x00, 0x38 } +const Cipher TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 57; // { 0x00, 0x39 } +const Cipher TLS_DH_anon_WITH_AES_256_CBC_SHA = 58; // { 0x00, 0x3A } + + +// OpenPGP extensions + +const Cipher TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160 = 114; // { 0x00, 0x72 }; +const Cipher TLS_DHE_DSS_WITH_AES_128_CBC_RMD160 = 115; // { 0x00, 0x73 }; +const Cipher TLS_DHE_DSS_WITH_AES_256_CBC_RMD160 = 116; // { 0x00, 0x74 }; +const Cipher TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160 = 119; // { 0x00, 0x77 }; +const Cipher TLS_DHE_RSA_WITH_AES_128_CBC_RMD160 = 120; // { 0x00, 0x78 }; +const Cipher TLS_DHE_RSA_WITH_AES_256_CBC_RMD160 = 121; // { 0x00, 0x79 }; +const Cipher TLS_RSA_WITH_3DES_EDE_CBC_RMD160 = 124; // { 0x00, 0x7C }; +const Cipher TLS_RSA_WITH_AES_128_CBC_RMD160 = 125; // { 0x00, 0x7D }; +const Cipher TLS_RSA_WITH_AES_256_CBC_RMD160 = 126; // { 0x00, 0x7E }; + + +const char* const null_str = ""; + +const char* const cipher_names[128] = +{ + null_str, // SSL_NULL_WITH_NULL_NULL = 0 + null_str, // SSL_RSA_WITH_NULL_MD5 = 1 + null_str, // SSL_RSA_WITH_NULL_SHA = 2 + null_str, // SSL_RSA_EXPORT_WITH_RC4_40_MD5 = 3 + "RC4-MD5", // SSL_RSA_WITH_RC4_128_MD5 = 4 + "RC4-SHA", // SSL_RSA_WITH_RC4_128_SHA = 5 + null_str, // SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 6 + null_str, // SSL_RSA_WITH_IDEA_CBC_SHA = 7 + null_str, // SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = 8 + "DES-CBC-SHA", // SSL_RSA_WITH_DES_CBC_SHA = 9 + "DES-CBC3-SHA", // SSL_RSA_WITH_3DES_EDE_CBC_SHA = 10 + + null_str, // SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 11 + null_str, // SSL_DH_DSS_WITH_DES_CBC_SHA = 12 + null_str, // SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA = 13 + null_str, // SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 14 + null_str, // SSL_DH_RSA_WITH_DES_CBC_SHA = 15 + null_str, // SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA = 16 + null_str, // SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 17 + "EDH-DSS-DES-CBC-SHA", // SSL_DHE_DSS_WITH_DES_CBC_SHA = 18 + "EDH-DSS-DES-CBC3-SHA", // SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 19 + null_str, // SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 20 + + "EDH-RSA-DES-CBC-SHA", // SSL_DHE_RSA_WITH_DES_CBC_SHA = 21 + "EDH-RSA-DES-CBC3-SHA", // SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 22 + null_str, // SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 = 23 + null_str, // SSL_DH_anon_WITH_RC4_128_MD5 = 24 + null_str, // SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 25 + null_str, // SSL_DH_anon_WITH_DES_CBC_SHA = 26 + null_str, // SSL_DH_anon_WITH_3DES_EDE_CBC_SHA = 27 + null_str, // SSL_FORTEZZA_KEA_WITH_NULL_SHA = 28 + null_str, // SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA = 29 + null_str, // SSL_FORTEZZA_KEA_WITH_RC4_128_SHA = 30 + + null_str, null_str, null_str, null_str, null_str, // 31 - 35 + null_str, null_str, null_str, null_str, null_str, // 36 - 40 + null_str, null_str, null_str, null_str, null_str, // 41 - 45 + null_str, // 46 + + // TLS AES extensions + "AES128-SHA", // TLS_RSA_WITH_AES_128_CBC_SHA = 47 + null_str, // TLS_DH_DSS_WITH_AES_128_CBC_SHA = 48 + null_str, // TLS_DH_RSA_WITH_AES_128_CBC_SHA = 49 + "DHE-DSS-AES128-SHA", // TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 50 + "DHE-RSA-AES128-SHA", // TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 51 + null_str, // TLS_DH_anon_WITH_AES_128_CBC_SHA = 52 + + "AES256-SHA", // TLS_RSA_WITH_AES_256_CBC_SHA = 53 + null_str, // TLS_DH_DSS_WITH_AES_256_CBC_SHA = 54 + null_str, // TLS_DH_RSA_WITH_AES_256_CBC_SHA = 55 + "DHE-DSS-AES256-SHA", // TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 56 + "DHE-RSA-AES256-SHA", // TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 57 + null_str, // TLS_DH_anon_WITH_AES_256_CBC_SHA = 58 + + null_str, // 59 + null_str, // 60 + null_str, null_str, null_str, null_str, null_str, // 61 - 65 + null_str, null_str, null_str, null_str, null_str, // 66 - 70 + null_str, null_str, null_str, null_str, null_str, // 71 - 75 + null_str, null_str, null_str, null_str, null_str, // 76 - 80 + null_str, null_str, null_str, null_str, null_str, // 81 - 85 + null_str, null_str, null_str, null_str, null_str, // 86 - 90 + null_str, null_str, null_str, null_str, null_str, // 91 - 95 + null_str, null_str, null_str, null_str, null_str, // 96 - 100 + null_str, null_str, null_str, null_str, null_str, // 101 - 105 + null_str, null_str, null_str, null_str, null_str, // 106 - 110 + null_str, null_str, null_str, // 111 - 113 + + "DHE-DSS-DES-CBC3-RMD", // TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160 = 114 + "DHE-DSS-AES128-RMD", // TLS_DHE_DSS_WITH_AES_128_CBC_RMD160 = 115 + "DHE-DSS-AES256-RMD", // TLS_DHE_DSS_WITH_AES_256_CBC_RMD160 = 116 + null_str, // 117 + null_str, // 118 + "DHE-RSA-DES-CBC3-RMD", // TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160 = 119 + "DHE-RSA-AES128-RMD", // TLS_DHE_RSA_WITH_AES_128_CBC_RMD160 = 120 + "DHE-RSA-AES256-RMD", // TLS_DHE_RSA_WITH_AES_256_CBC_RMD160 = 121 + null_str, // 122 + null_str, // 123 + "DES-CBC3-RMD", // TLS_RSA_WITH_3DES_EDE_CBC_RMD160 = 124 + "AES128-RMD", // TLS_RSA_WITH_AES_128_CBC_RMD160 = 125 + "AES256-RMD", // TLS_RSA_WITH_AES_256_CBC_RMD160 = 126 + null_str // 127 +}; + +// fill with MD5 pad size since biggest required +const opaque PAD1[PAD_MD5] = { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 + }; +const opaque PAD2[PAD_MD5] = { 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c + }; + +const opaque client[SIZEOF_SENDER] = { 0x43, 0x4C, 0x4E, 0x54 }; +const opaque server[SIZEOF_SENDER] = { 0x53, 0x52, 0x56, 0x52 }; + +const opaque tls_client[FINISHED_LABEL_SZ + 1] = "client finished"; +const opaque tls_server[FINISHED_LABEL_SZ + 1] = "server finished"; + +const opaque master_label[MASTER_LABEL_SZ + 1] = "master secret"; +const opaque key_label [KEY_LABEL_SZ + 1] = "key expansion"; + + +} // naemspace + +#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 +/* + gcc 2.96 bails out because of two declarations of byte: yaSSL::byte and + TaoCrypt::byte. TODO: define global types.hpp and move the declaration of + 'byte' there. +*/ +using yaSSL::byte; +#endif + + +#endif // yaSSL_TYPES_HPP diff --git a/mysql/extra/yassl/src/buffer.cpp b/mysql/extra/yassl/src/buffer.cpp new file mode 100644 index 0000000..954fdb5 --- /dev/null +++ b/mysql/extra/yassl/src/buffer.cpp @@ -0,0 +1,330 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL buffer header implements input/output buffers to simulate streaming + * with SSL types and sockets + */ + + +// First include (the generated) my_config.h, to get correct platform defines. +#include "my_config.h" +#include // memcpy +#include "runtime.hpp" +#include "buffer.hpp" +#include "yassl_types.hpp" + +namespace yaSSL { + + + + +/* return 0 on check success, always true for NoCheck policy */ +int NoCheck::check(uint, uint) +{ + return 0; +} + +/* return 0 on check success */ +int Check::check(uint i, uint max) +{ + if (i < max) + return 0; + + return -1; +} + + +/* input_buffer operates like a smart c style array with a checking option, + * meant to be read from through [] with AUTO index or read(). + * Should only write to at/near construction with assign() or raw (e.g., recv) + * followed by add_size with the number of elements added by raw write. + * + * Not using vector because need checked []access, offset, and the ability to + * write to the buffer bulk wise and have the correct size + */ + + +input_buffer::input_buffer() + : size_(0), current_(0), buffer_(0), end_(0), error_(0), zero_(0) +{} + + +input_buffer::input_buffer(uint s) + : size_(0), current_(0), buffer_(NEW_YS byte[s]), end_(buffer_ + s), + error_(0), zero_(0) +{} + + +// with assign +input_buffer::input_buffer(uint s, const byte* t, uint len) + : size_(0), current_(0), buffer_(NEW_YS byte[s]), end_(buffer_ + s), + error_(0), zero_(0) +{ + assign(t, len); +} + + +input_buffer::~input_buffer() +{ + ysArrayDelete(buffer_); +} + + +// users can pass defualt zero length buffer and then allocate +void input_buffer::allocate(uint s) +{ + if (error_ == 0) { + buffer_ = NEW_YS byte[s]; + end_ = buffer_ + s; + } +} + + +// for passing to raw writing functions at beginning, then use add_size +byte* input_buffer::get_buffer() const +{ + return buffer_; +} + + +// after a raw write user can set NEW_YS size +// if you know the size before the write use assign() +void input_buffer::add_size(uint i) +{ + if (error_ == 0 && check(size_ + i-1, get_capacity()) == 0) + size_ += i; + else + error_ = -1; +} + + +uint input_buffer::get_capacity() const +{ + if (error_ == 0) + return end_ - buffer_; + + return 0; +} + + +uint input_buffer::get_current() const +{ + if (error_ == 0) + return current_; + + return 0; +} + + +uint input_buffer::get_size() const +{ + if (error_ == 0) + return size_; + + return 0; +} + + +uint input_buffer::get_remaining() const +{ + if (error_ == 0) + return size_ - current_; + + return 0; +} + + +int input_buffer::get_error() const +{ + return error_; +} + + +void input_buffer::set_error() +{ + error_ = -1; +} + + +void input_buffer::set_current(uint i) +{ + if (error_ == 0 && check(i ? i - 1 : 0, size_) == 0) + current_ = i; + else + error_ = -1; +} + + +// read only access through [], advance current +// user passes in AUTO index for ease of use +const byte& input_buffer::operator[](uint i) +{ + if (error_ == 0 && check(current_, size_) == 0) + return buffer_[current_++]; + + error_ = -1; + return zero_; +} + + +// end of input test +bool input_buffer::eof() +{ + if (error_ != 0) + return true; + + return current_ >= size_; +} + + +// peek ahead +byte input_buffer::peek() +{ + if (error_ == 0 && check(current_, size_) == 0) + return buffer_[current_]; + + error_ = -1; + return 0; +} + + +// write function, should use at/near construction +void input_buffer::assign(const byte* t, uint s) +{ + if (t && error_ == 0 && check(current_, get_capacity()) == 0) { + add_size(s); + if (error_ == 0) { + memcpy(&buffer_[current_], t, s); + return; // success + } + } + + error_ = -1; +} + + +// use read to query input, adjusts current +void input_buffer::read(byte* dst, uint length) +{ + if (dst && error_ == 0 && check(current_ + length - 1, size_) == 0) { + memcpy(dst, &buffer_[current_], length); + current_ += length; + } else { + error_ = -1; + } +} + + + +/* output_buffer operates like a smart c style array with a checking option. + * Meant to be written to through [] with AUTO index or write(). + * Size (current) counter increases when written to. Can be constructed with + * zero length buffer but be sure to allocate before first use. + * Don't use add write for a couple bytes, use [] instead, way less overhead. + * + * Not using vector because need checked []access and the ability to + * write to the buffer bulk wise and retain correct size + */ + + +output_buffer::output_buffer() + : current_(0), buffer_(0), end_(0) +{} + + +// with allocate +output_buffer::output_buffer(uint s) + : current_(0), buffer_(NEW_YS byte[s]), end_(buffer_ + s) +{} + + +// with assign +output_buffer::output_buffer(uint s, const byte* t, uint len) + : current_(0), buffer_(NEW_YS byte[s]), end_(buffer_+ s) +{ + write(t, len); +} + + +output_buffer::~output_buffer() +{ + ysArrayDelete(buffer_); +} + + +uint output_buffer::get_size() const +{ + return current_; +} + + +uint output_buffer::get_capacity() const +{ + return (uint) (end_ - buffer_); +} + + +void output_buffer::set_current(uint c) +{ + check(c, get_capacity()); + current_ = c; +} + + +// users can pass defualt zero length buffer and then allocate +void output_buffer::allocate(uint s) +{ + buffer_ = NEW_YS byte[s]; end_ = buffer_ + s; +} + + +// for passing to reading functions when finished +const byte* output_buffer::get_buffer() const +{ + return buffer_; +} + + +// allow write access through [], update current +// user passes in AUTO as index for ease of use +byte& output_buffer::operator[](uint i) +{ + check(current_, get_capacity()); + return buffer_[current_++]; +} + + +// end of output test +bool output_buffer::eof() +{ + return current_ >= get_capacity(); +} + + +void output_buffer::write(const byte* t, uint s) +{ + check(current_ + s - 1, get_capacity()); + memcpy(&buffer_[current_], t, s); + current_ += s; +} + + + +} // naemspace + diff --git a/mysql/extra/yassl/src/cert_wrapper.cpp b/mysql/extra/yassl/src/cert_wrapper.cpp new file mode 100644 index 0000000..1092e42 --- /dev/null +++ b/mysql/extra/yassl/src/cert_wrapper.cpp @@ -0,0 +1,408 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* The certificate wrapper source implements certificate management functions + * + */ + +#include "runtime.hpp" +#include "cert_wrapper.hpp" +#include "yassl_int.hpp" +#include "error.hpp" + +#if defined(USE_CML_LIB) + #include "cmapi_cpp.h" +#else + #include "asn.hpp" + #include "file.hpp" +#endif // USE_CML_LIB + + +namespace yaSSL { + + +x509::x509(uint sz) : length_(sz), buffer_(NEW_YS opaque[sz]) +{ +} + + +x509::~x509() +{ + ysArrayDelete(buffer_); +} + + +x509::x509(const x509& that) : length_(that.length_), + buffer_(NEW_YS opaque[length_]) +{ + memcpy(buffer_, that.buffer_, length_); +} + + +void x509::Swap(x509& that) +{ + STL::swap(length_, that.length_); + STL::swap(buffer_, that.buffer_); +} + + +x509& x509::operator=(const x509& that) +{ + x509 temp(that); + Swap(temp); + return *this; +} + + +uint x509::get_length() const +{ + return length_; +} + + +const opaque* x509::get_buffer() const +{ + return buffer_; +} + + +opaque* x509::use_buffer() +{ + return buffer_; +} + + +//CertManager +CertManager::CertManager() + : peerX509_(0), selfX509_(0), verifyPeer_(false), verifyNone_(false), failNoCert_(false), + sendVerify_(false), sendBlankCert_(false), verifyCallback_(0) +{} + + +CertManager::~CertManager() +{ + ysDelete(peerX509_); + ysDelete(selfX509_); + + STL::for_each(signers_.begin(), signers_.end(), del_ptr_zero()) ; + + STL::for_each(peerList_.begin(), peerList_.end(), del_ptr_zero()) ; + + STL::for_each(list_.begin(), list_.end(), del_ptr_zero()) ; +} + + +bool CertManager::verifyPeer() const +{ + return verifyPeer_; +} + + +bool CertManager::verifyNone() const +{ + return verifyNone_; +} + + +bool CertManager::failNoCert() const +{ + return failNoCert_; +} + + +bool CertManager::sendVerify() const +{ + return sendVerify_; +} + + +void CertManager::setVerifyPeer() +{ + verifyPeer_ = true; +} + + +void CertManager::setVerifyNone() +{ + verifyNone_ = true; +} + +bool CertManager::sendBlankCert() const +{ + return sendBlankCert_; +} + + +void CertManager::setFailNoCert() +{ + failNoCert_ = true; +} + + +void CertManager::setSendVerify() +{ + sendVerify_ = true; +} + +void CertManager::setSendBlankCert() +{ + sendBlankCert_ = true; +} + + +void CertManager::setVerifyCallback(VerifyCallback vc) +{ + verifyCallback_ = vc; +} + + +void CertManager::AddPeerCert(x509* x) +{ + peerList_.push_back(x); // take ownership +} + + +void CertManager::CopySelfCert(const x509* x) +{ + if (x) + list_.push_back(NEW_YS x509(*x)); +} + + +// add to signers +int CertManager::CopyCaCert(const x509* x) +{ + TaoCrypt::Source source(x->get_buffer(), x->get_length()); + TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_, + TaoCrypt::CertDecoder::CA); + + if (!cert.GetError().What()) { + const TaoCrypt::PublicKey& key = cert.GetPublicKey(); + signers_.push_back(NEW_YS TaoCrypt::Signer(key.GetKey(), key.size(), + cert.GetCommonName(), cert.GetHash())); + } + // just don't add, not an error return cert.GetError().What(); + return 0; +} + + +const x509* CertManager::get_cert() const +{ + return list_.front(); +} + + +const opaque* CertManager::get_peerKey() const +{ + return peerPublicKey_.get_buffer(); +} + + +X509* CertManager::get_peerX509() const +{ + return peerX509_; +} + + +X509* CertManager::get_selfX509() const +{ + return selfX509_; +} + + +SignatureAlgorithm CertManager::get_peerKeyType() const +{ + return peerKeyType_; +} + + +SignatureAlgorithm CertManager::get_keyType() const +{ + return keyType_; +} + + +uint CertManager::get_peerKeyLength() const +{ + return peerPublicKey_.get_size(); +} + + +const opaque* CertManager::get_privateKey() const +{ + return privateKey_.get_buffer(); +} + + +uint CertManager::get_privateKeyLength() const +{ + return privateKey_.get_size(); +} + + +// Validate the peer's certificate list, from root to peer (last to first) +int CertManager::Validate() +{ + CertList::reverse_iterator last = peerList_.rbegin(); + size_t count = peerList_.size(); + + while ( count > 1 ) { + TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length()); + TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_); + + if (int err = cert.GetError().What()) + return err; + + const TaoCrypt::PublicKey& key = cert.GetPublicKey(); + signers_.push_back(NEW_YS TaoCrypt::Signer(key.GetKey(), key.size(), + cert.GetCommonName(), cert.GetHash())); + ++last; + --count; + } + + if (count) { + // peer's is at the front + TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length()); + TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_); + + int err = cert.GetError().What(); + if ( err && err != TaoCrypt::SIG_OTHER_E) + return err; + + uint sz = cert.GetPublicKey().size(); + peerPublicKey_.allocate(sz); + peerPublicKey_.assign(cert.GetPublicKey().GetKey(), sz); + + if (cert.GetKeyType() == TaoCrypt::RSAk) + peerKeyType_ = rsa_sa_algo; + else + peerKeyType_ = dsa_sa_algo; + + size_t iSz = strlen(cert.GetIssuer()) + 1; + size_t sSz = strlen(cert.GetCommonName()) + 1; + ASN1_STRING beforeDate, afterDate; + beforeDate.data= (unsigned char *) cert.GetBeforeDate(); + beforeDate.type= cert.GetBeforeDateType(); + beforeDate.length= strlen((char *) beforeDate.data) + 1; + afterDate.data= (unsigned char *) cert.GetAfterDate(); + afterDate.type= cert.GetAfterDateType(); + afterDate.length= strlen((char *) afterDate.data) + 1; + peerX509_ = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(), + sSz, &beforeDate, &afterDate, + cert.GetIssuerCnStart(), cert.GetIssuerCnLength(), + cert.GetSubjectCnStart(), cert.GetSubjectCnLength() + ); + + if (err == TaoCrypt::SIG_OTHER_E && verifyCallback_) { + X509_STORE_CTX store; + store.error = err; + store.error_depth = static_cast(count) - 1; + store.current_cert = peerX509_; + + int ok = verifyCallback_(0, &store); + if (ok) return 0; + } + + if (err == TaoCrypt::SIG_OTHER_E) return err; + } + return 0; +} + + +// Set the private key +int CertManager::SetPrivateKey(const x509& key) +{ + privateKey_.allocate(key.get_length()); + privateKey_.assign(key.get_buffer(), key.get_length()); + + // set key type + if (x509* cert = list_.front()) { + TaoCrypt::Source source(cert->get_buffer(), cert->get_length()); + TaoCrypt::CertDecoder cd(source, false); + cd.DecodeToKey(); + if (int err = cd.GetError().What()) + return err; + if (cd.GetKeyType() == TaoCrypt::RSAk) + keyType_ = rsa_sa_algo; + else + keyType_ = dsa_sa_algo; + + size_t iSz = strlen(cd.GetIssuer()) + 1; + size_t sSz = strlen(cd.GetCommonName()) + 1; + ASN1_STRING beforeDate, afterDate; + beforeDate.data= (unsigned char *) cd.GetBeforeDate(); + beforeDate.type= cd.GetBeforeDateType(); + beforeDate.length= strlen((char *) beforeDate.data) + 1; + afterDate.data= (unsigned char *) cd.GetAfterDate(); + afterDate.type= cd.GetAfterDateType(); + afterDate.length= strlen((char *) afterDate.data) + 1; + selfX509_ = NEW_YS X509(cd.GetIssuer(), iSz, cd.GetCommonName(), + sSz, &beforeDate, &afterDate, + cd.GetIssuerCnStart(), cd.GetIssuerCnLength(), + cd.GetSubjectCnStart(), cd.GetSubjectCnLength()); + } + return 0; +} + + +// Store OpenSSL type peer's cert +void CertManager::setPeerX509(X509* x) +{ + if (x == 0) return; + + X509_NAME* issuer = x->GetIssuer(); + X509_NAME* subject = x->GetSubject(); + ASN1_STRING* before = x->GetBefore(); + ASN1_STRING* after = x->GetAfter(); + + peerX509_ = NEW_YS X509(issuer->GetName(), issuer->GetLength(), + subject->GetName(), subject->GetLength(), before, after, + issuer->GetCnPosition(), issuer->GetCnLength(), + subject->GetCnPosition(), subject->GetCnLength()); +} + + +#if defined(USE_CML_LIB) + +// Get the peer's certificate, extract and save public key +void CertManager::SetPeerKey() +{ + // first cert is the peer's + x509* main = peerList_.front(); + + Bytes_struct cert; + cert.num = main->get_length(); + cert.data = main->set_buffer(); + + CML::Certificate cm(cert); + const CML::ASN::Cert& raw = cm.base(); + CTIL::CSM_Buffer key = raw.pubKeyInfo.key; + + uint sz; + opaque* key_buffer = reinterpret_cast(key.Get(sz)); + peerPublicKey_.allocate(sz); + peerPublicKey_.assign(key_buffer, sz); +} + + +#endif // USE_CML_LIB + + + +} // namespace diff --git a/mysql/extra/yassl/src/crypto_wrapper.cpp b/mysql/extra/yassl/src/crypto_wrapper.cpp new file mode 100644 index 0000000..12f956e --- /dev/null +++ b/mysql/extra/yassl/src/crypto_wrapper.cpp @@ -0,0 +1,1016 @@ +/* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* The crypto wrapper source implements the policies for the cipher + * components used by SSL. + * + * The implementation relies on a specfic library, taoCrypt. + */ + +#if !defined(USE_CRYPTOPP_LIB) + +#include "runtime.hpp" +#include "crypto_wrapper.hpp" +#include "cert_wrapper.hpp" + +#include "md5.hpp" +#include "sha.hpp" +#include "ripemd.hpp" +#include "hmac.hpp" +#include "modes.hpp" +#include "des.hpp" +#include "arc4.hpp" +#include "aes.hpp" +#include "rsa.hpp" +#include "dsa.hpp" +#include "dh.hpp" +#include "random.hpp" +#include "file.hpp" +#include "coding.hpp" + + +namespace yaSSL { + + +// MD5 Implementation +struct MD5::MD5Impl { + TaoCrypt::MD5 md5_; + MD5Impl() {} + explicit MD5Impl(const TaoCrypt::MD5& md5) : md5_(md5) {} +}; + + +MD5::MD5() : pimpl_(NEW_YS MD5Impl) {} + + +MD5::~MD5() { ysDelete(pimpl_); } + + +MD5::MD5(const MD5& that) : Digest(), pimpl_(NEW_YS + MD5Impl(that.pimpl_->md5_)) {} + + +MD5& MD5::operator=(const MD5& that) +{ + pimpl_->md5_ = that.pimpl_->md5_; + return *this; +} + + +uint MD5::get_digestSize() const +{ + return MD5_LEN; +} + + +uint MD5::get_padSize() const +{ + return PAD_MD5; +} + + +// Fill out with MD5 digest from in that is sz bytes, out must be >= digest sz +void MD5::get_digest(byte* out, const byte* in, unsigned int sz) +{ + pimpl_->md5_.Update(in, sz); + pimpl_->md5_.Final(out); +} + +// Fill out with MD5 digest from previous updates +void MD5::get_digest(byte* out) +{ + pimpl_->md5_.Final(out); +} + + +// Update the current digest +void MD5::update(const byte* in, unsigned int sz) +{ + pimpl_->md5_.Update(in, sz); +} + + +// SHA Implementation +struct SHA::SHAImpl { + TaoCrypt::SHA sha_; + SHAImpl() {} + explicit SHAImpl(const TaoCrypt::SHA& sha) : sha_(sha) {} +}; + + +SHA::SHA() : pimpl_(NEW_YS SHAImpl) {} + + +SHA::~SHA() { ysDelete(pimpl_); } + + +SHA::SHA(const SHA& that) : Digest(), pimpl_(NEW_YS SHAImpl(that.pimpl_->sha_)) {} + +SHA& SHA::operator=(const SHA& that) +{ + pimpl_->sha_ = that.pimpl_->sha_; + return *this; +} + + +uint SHA::get_digestSize() const +{ + return SHA_LEN; +} + + +uint SHA::get_padSize() const +{ + return PAD_SHA; +} + + +// Fill out with SHA digest from in that is sz bytes, out must be >= digest sz +void SHA::get_digest(byte* out, const byte* in, unsigned int sz) +{ + pimpl_->sha_.Update(in, sz); + pimpl_->sha_.Final(out); +} + + +// Fill out with SHA digest from previous updates +void SHA::get_digest(byte* out) +{ + pimpl_->sha_.Final(out); +} + + +// Update the current digest +void SHA::update(const byte* in, unsigned int sz) +{ + pimpl_->sha_.Update(in, sz); +} + + +// RMD-160 Implementation +struct RMD::RMDImpl { + TaoCrypt::RIPEMD160 rmd_; + RMDImpl() {} + explicit RMDImpl(const TaoCrypt::RIPEMD160& rmd) : rmd_(rmd) {} +}; + + +RMD::RMD() : pimpl_(NEW_YS RMDImpl) {} + + +RMD::~RMD() { ysDelete(pimpl_); } + + +RMD::RMD(const RMD& that) : Digest(), pimpl_(NEW_YS RMDImpl(that.pimpl_->rmd_)) {} + +RMD& RMD::operator=(const RMD& that) +{ + pimpl_->rmd_ = that.pimpl_->rmd_; + return *this; +} + + +uint RMD::get_digestSize() const +{ + return RMD_LEN; +} + + +uint RMD::get_padSize() const +{ + return PAD_RMD; +} + + +// Fill out with RMD digest from in that is sz bytes, out must be >= digest sz +void RMD::get_digest(byte* out, const byte* in, unsigned int sz) +{ + pimpl_->rmd_.Update(in, sz); + pimpl_->rmd_.Final(out); +} + + +// Fill out with RMD digest from previous updates +void RMD::get_digest(byte* out) +{ + pimpl_->rmd_.Final(out); +} + + +// Update the current digest +void RMD::update(const byte* in, unsigned int sz) +{ + pimpl_->rmd_.Update(in, sz); +} + + +// HMAC_MD5 Implementation +struct HMAC_MD5::HMAC_MD5Impl { + TaoCrypt::HMAC mac_; + HMAC_MD5Impl() {} +}; + + +HMAC_MD5::HMAC_MD5(const byte* secret, unsigned int len) + : pimpl_(NEW_YS HMAC_MD5Impl) +{ + pimpl_->mac_.SetKey(secret, len); +} + + +HMAC_MD5::~HMAC_MD5() { ysDelete(pimpl_); } + + +uint HMAC_MD5::get_digestSize() const +{ + return MD5_LEN; +} + + +uint HMAC_MD5::get_padSize() const +{ + return PAD_MD5; +} + + +// Fill out with MD5 digest from in that is sz bytes, out must be >= digest sz +void HMAC_MD5::get_digest(byte* out, const byte* in, unsigned int sz) +{ + pimpl_->mac_.Update(in, sz); + pimpl_->mac_.Final(out); +} + +// Fill out with MD5 digest from previous updates +void HMAC_MD5::get_digest(byte* out) +{ + pimpl_->mac_.Final(out); +} + + +// Update the current digest +void HMAC_MD5::update(const byte* in, unsigned int sz) +{ + pimpl_->mac_.Update(in, sz); +} + + +// HMAC_SHA Implementation +struct HMAC_SHA::HMAC_SHAImpl { + TaoCrypt::HMAC mac_; + HMAC_SHAImpl() {} +}; + + +HMAC_SHA::HMAC_SHA(const byte* secret, unsigned int len) + : pimpl_(NEW_YS HMAC_SHAImpl) +{ + pimpl_->mac_.SetKey(secret, len); +} + + +HMAC_SHA::~HMAC_SHA() { ysDelete(pimpl_); } + + +uint HMAC_SHA::get_digestSize() const +{ + return SHA_LEN; +} + + +uint HMAC_SHA::get_padSize() const +{ + return PAD_SHA; +} + + +// Fill out with SHA digest from in that is sz bytes, out must be >= digest sz +void HMAC_SHA::get_digest(byte* out, const byte* in, unsigned int sz) +{ + pimpl_->mac_.Update(in, sz); + pimpl_->mac_.Final(out); +} + +// Fill out with SHA digest from previous updates +void HMAC_SHA::get_digest(byte* out) +{ + pimpl_->mac_.Final(out); +} + + +// Update the current digest +void HMAC_SHA::update(const byte* in, unsigned int sz) +{ + pimpl_->mac_.Update(in, sz); +} + + + +// HMAC_RMD Implementation +struct HMAC_RMD::HMAC_RMDImpl { + TaoCrypt::HMAC mac_; + HMAC_RMDImpl() {} +}; + + +HMAC_RMD::HMAC_RMD(const byte* secret, unsigned int len) + : pimpl_(NEW_YS HMAC_RMDImpl) +{ + pimpl_->mac_.SetKey(secret, len); +} + + +HMAC_RMD::~HMAC_RMD() { ysDelete(pimpl_); } + + +uint HMAC_RMD::get_digestSize() const +{ + return RMD_LEN; +} + + +uint HMAC_RMD::get_padSize() const +{ + return PAD_RMD; +} + + +// Fill out with RMD digest from in that is sz bytes, out must be >= digest sz +void HMAC_RMD::get_digest(byte* out, const byte* in, unsigned int sz) +{ + pimpl_->mac_.Update(in, sz); + pimpl_->mac_.Final(out); +} + +// Fill out with RMD digest from previous updates +void HMAC_RMD::get_digest(byte* out) +{ + pimpl_->mac_.Final(out); +} + + +// Update the current digest +void HMAC_RMD::update(const byte* in, unsigned int sz) +{ + pimpl_->mac_.Update(in, sz); +} + + +struct DES::DESImpl { + TaoCrypt::DES_CBC_Encryption encryption; + TaoCrypt::DES_CBC_Decryption decryption; +}; + + +DES::DES() : pimpl_(NEW_YS DESImpl) {} + +DES::~DES() { ysDelete(pimpl_); } + + +void DES::set_encryptKey(const byte* k, const byte* iv) +{ + pimpl_->encryption.SetKey(k, DES_KEY_SZ, iv); +} + + +void DES::set_decryptKey(const byte* k, const byte* iv) +{ + pimpl_->decryption.SetKey(k, DES_KEY_SZ, iv); +} + +// DES encrypt plain of length sz into cipher +void DES::encrypt(byte* cipher, const byte* plain, unsigned int sz) +{ + pimpl_->encryption.Process(cipher, plain, sz); +} + + +// DES decrypt cipher of length sz into plain +void DES::decrypt(byte* plain, const byte* cipher, unsigned int sz) +{ + pimpl_->decryption.Process(plain, cipher, sz); +} + + +struct DES_EDE::DES_EDEImpl { + TaoCrypt::DES_EDE3_CBC_Encryption encryption; + TaoCrypt::DES_EDE3_CBC_Decryption decryption; +}; + + +DES_EDE::DES_EDE() : pimpl_(NEW_YS DES_EDEImpl) {} + +DES_EDE::~DES_EDE() { ysDelete(pimpl_); } + + +void DES_EDE::set_encryptKey(const byte* k, const byte* iv) +{ + pimpl_->encryption.SetKey(k, DES_EDE_KEY_SZ, iv); +} + + +void DES_EDE::set_decryptKey(const byte* k, const byte* iv) +{ + pimpl_->decryption.SetKey(k, DES_EDE_KEY_SZ, iv); +} + + +// 3DES encrypt plain of length sz into cipher +void DES_EDE::encrypt(byte* cipher, const byte* plain, unsigned int sz) +{ + pimpl_->encryption.Process(cipher, plain, sz); +} + + +// 3DES decrypt cipher of length sz into plain +void DES_EDE::decrypt(byte* plain, const byte* cipher, unsigned int sz) +{ + pimpl_->decryption.Process(plain, cipher, sz); +} + + +// Implementation of alledged RC4 +struct RC4::RC4Impl { + TaoCrypt::ARC4::Encryption encryption; + TaoCrypt::ARC4::Decryption decryption; +}; + + +RC4::RC4() : pimpl_(NEW_YS RC4Impl) {} + +RC4::~RC4() { ysDelete(pimpl_); } + + +void RC4::set_encryptKey(const byte* k, const byte*) +{ + pimpl_->encryption.SetKey(k, RC4_KEY_SZ); +} + + +void RC4::set_decryptKey(const byte* k, const byte*) +{ + pimpl_->decryption.SetKey(k, RC4_KEY_SZ); +} + + +// RC4 encrypt plain of length sz into cipher +void RC4::encrypt(byte* cipher, const byte* plain, unsigned int sz) +{ + pimpl_->encryption.Process(cipher, plain, sz); +} + + +// RC4 decrypt cipher of length sz into plain +void RC4::decrypt(byte* plain, const byte* cipher, unsigned int sz) +{ + pimpl_->decryption.Process(plain, cipher, sz); +} + + + +// Implementation of AES +struct AES::AESImpl { + TaoCrypt::AES_CBC_Encryption encryption; + TaoCrypt::AES_CBC_Decryption decryption; + unsigned int keySz_; + + AESImpl(unsigned int ks) : keySz_(ks) {} +}; + + +AES::AES(unsigned int ks) : pimpl_(NEW_YS AESImpl(ks)) {} + +AES::~AES() { ysDelete(pimpl_); } + + +int AES::get_keySize() const +{ + return pimpl_->keySz_; +} + + +void AES::set_encryptKey(const byte* k, const byte* iv) +{ + pimpl_->encryption.SetKey(k, pimpl_->keySz_, iv); +} + + +void AES::set_decryptKey(const byte* k, const byte* iv) +{ + pimpl_->decryption.SetKey(k, pimpl_->keySz_, iv); +} + + +// AES encrypt plain of length sz into cipher +void AES::encrypt(byte* cipher, const byte* plain, unsigned int sz) +{ + pimpl_->encryption.Process(cipher, plain, sz); +} + + +// AES decrypt cipher of length sz into plain +void AES::decrypt(byte* plain, const byte* cipher, unsigned int sz) +{ + pimpl_->decryption.Process(plain, cipher, sz); +} + + +struct RandomPool::RandomImpl { + TaoCrypt::RandomNumberGenerator RNG_; +}; + +RandomPool::RandomPool() : pimpl_(NEW_YS RandomImpl) {} + +RandomPool::~RandomPool() { ysDelete(pimpl_); } + +int RandomPool::GetError() const +{ + return pimpl_->RNG_.GetError(); +} + +void RandomPool::Fill(opaque* dst, uint sz) const +{ + pimpl_->RNG_.GenerateBlock(dst, sz); +} + + +// Implementation of DSS Authentication +struct DSS::DSSImpl { + void SetPublic (const byte*, unsigned int); + void SetPrivate(const byte*, unsigned int); + TaoCrypt::DSA_PublicKey publicKey_; + TaoCrypt::DSA_PrivateKey privateKey_; +}; + + +// Decode and store the public key +void DSS::DSSImpl::SetPublic(const byte* key, unsigned int sz) +{ + TaoCrypt::Source source(key, sz); + publicKey_.Initialize(source); +} + + +// Decode and store the public key +void DSS::DSSImpl::SetPrivate(const byte* key, unsigned int sz) +{ + TaoCrypt::Source source(key, sz); + privateKey_.Initialize(source); + publicKey_ = TaoCrypt::DSA_PublicKey(privateKey_); + +} + + +// Set public or private key +DSS::DSS(const byte* key, unsigned int sz, bool publicKey) + : pimpl_(NEW_YS DSSImpl) +{ + if (publicKey) + pimpl_->SetPublic(key, sz); + else + pimpl_->SetPrivate(key, sz); +} + + +DSS::~DSS() +{ + ysDelete(pimpl_); +} + + +uint DSS::get_signatureLength() const +{ + return pimpl_->publicKey_.SignatureLength(); +} + + +// DSS Sign message of length sz into sig +void DSS::sign(byte* sig, const byte* sha_digest, unsigned int /* shaSz */, + const RandomPool& random) +{ + using namespace TaoCrypt; + + DSA_Signer signer(pimpl_->privateKey_); + signer.Sign(sha_digest, sig, random.pimpl_->RNG_); +} + + +// DSS Verify message of length sz against sig, is it correct? +bool DSS::verify(const byte* sha_digest, unsigned int /* shaSz */, + const byte* sig, unsigned int /* sigSz */) +{ + using namespace TaoCrypt; + + DSA_Verifier ver(pimpl_->publicKey_); + return ver.Verify(sha_digest, sig); +} + + +// Implementation of RSA key interface +struct RSA::RSAImpl { + void SetPublic (const byte*, unsigned int); + void SetPrivate(const byte*, unsigned int); + TaoCrypt::RSA_PublicKey publicKey_; + TaoCrypt::RSA_PrivateKey privateKey_; +}; + + +// Decode and store the public key +void RSA::RSAImpl::SetPublic(const byte* key, unsigned int sz) +{ + TaoCrypt::Source source(key, sz); + publicKey_.Initialize(source); +} + + +// Decode and store the private key +void RSA::RSAImpl::SetPrivate(const byte* key, unsigned int sz) +{ + TaoCrypt::Source source(key, sz); + privateKey_.Initialize(source); + publicKey_ = TaoCrypt::RSA_PublicKey(privateKey_); +} + + +// Set public or private key +RSA::RSA(const byte* key, unsigned int sz, bool publicKey) + : pimpl_(NEW_YS RSAImpl) +{ + if (publicKey) + pimpl_->SetPublic(key, sz); + else + pimpl_->SetPrivate(key, sz); +} + +RSA::~RSA() +{ + ysDelete(pimpl_); +} + + +// get cipher text length, varies on key size +unsigned int RSA::get_cipherLength() const +{ + return pimpl_->publicKey_.FixedCiphertextLength(); +} + + +// get signautre length, varies on key size +unsigned int RSA::get_signatureLength() const +{ + return get_cipherLength(); +} + + +// RSA Sign message of length sz into sig +void RSA::sign(byte* sig, const byte* message, unsigned int sz, + const RandomPool& random) +{ + TaoCrypt::RSAES_Decryptor dec(pimpl_->privateKey_); + dec.SSL_Sign(message, sz, sig, random.pimpl_->RNG_); +} + + +// RSA Verify message of length sz against sig +bool RSA::verify(const byte* message, unsigned int sz, const byte* sig, + unsigned int) +{ + TaoCrypt::RSAES_Encryptor enc(pimpl_->publicKey_); + return enc.SSL_Verify(message, sz, sig); +} + + +// RSA public encrypt plain of length sz into cipher +void RSA::encrypt(byte* cipher, const byte* plain, unsigned int sz, + const RandomPool& random) +{ + + TaoCrypt::RSAES_Encryptor enc(pimpl_->publicKey_); + enc.Encrypt(plain, sz, cipher, random.pimpl_->RNG_); +} + + +// RSA private decrypt cipher of length sz into plain +void RSA::decrypt(byte* plain, const byte* cipher, unsigned int sz, + const RandomPool& random) +{ + TaoCrypt::RSAES_Decryptor dec(pimpl_->privateKey_); + dec.Decrypt(cipher, sz, plain, random.pimpl_->RNG_); +} + + +struct Integer::IntegerImpl { + TaoCrypt::Integer int_; + + IntegerImpl() {} + explicit IntegerImpl(const TaoCrypt::Integer& i) : int_(i) {} +}; + +Integer::Integer() : pimpl_(NEW_YS IntegerImpl) {} + +Integer::~Integer() { ysDelete(pimpl_); } + + + +Integer::Integer(const Integer& other) : pimpl_(NEW_YS + IntegerImpl(other.pimpl_->int_)) +{} + + +Integer& Integer::operator=(const Integer& that) +{ + pimpl_->int_ = that.pimpl_->int_; + + return *this; +} + + +void Integer::assign(const byte* num, unsigned int sz) +{ + pimpl_->int_ = TaoCrypt::Integer(num, sz); +} + + +struct DiffieHellman::DHImpl { + TaoCrypt::DH dh_; + TaoCrypt::RandomNumberGenerator& ranPool_; + byte* publicKey_; + byte* privateKey_; + byte* agreedKey_; + uint pubKeyLength_; + + DHImpl(TaoCrypt::RandomNumberGenerator& r) : ranPool_(r), publicKey_(0), + privateKey_(0), agreedKey_(0), pubKeyLength_(0) {} + ~DHImpl() + { + ysArrayDelete(agreedKey_); + ysArrayDelete(privateKey_); + ysArrayDelete(publicKey_); + } + + DHImpl(const DHImpl& that) : dh_(that.dh_), ranPool_(that.ranPool_), + publicKey_(0), privateKey_(0), agreedKey_(0), pubKeyLength_(0) + { + uint length = dh_.GetByteLength(); + AllocKeys(length, length, length); + } + + void AllocKeys(unsigned int pubSz, unsigned int privSz, unsigned int agrSz) + { + publicKey_ = NEW_YS byte[pubSz]; + privateKey_ = NEW_YS byte[privSz]; + agreedKey_ = NEW_YS byte[agrSz]; + } +}; + + + +/* +// server Side DH, server's view +DiffieHellman::DiffieHellman(const char* file, const RandomPool& random) + : pimpl_(NEW_YS DHImpl(random.pimpl_->RNG_)) +{ + using namespace TaoCrypt; + Source source; + FileSource(file, source); + if (source.size() == 0) + return; // TODO add error state, and force check + HexDecoder hd(source); + + pimpl_->dh_.Initialize(source); + + uint length = pimpl_->dh_.GetByteLength(); + + pimpl_->AllocKeys(length, length, length); + pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_, + pimpl_->publicKey_); +} +*/ + + +// server Side DH, client's view +DiffieHellman::DiffieHellman(const byte* p, unsigned int pSz, const byte* g, + unsigned int gSz, const byte* pub, + unsigned int pubSz, const RandomPool& random) + : pimpl_(NEW_YS DHImpl(random.pimpl_->RNG_)) +{ + using TaoCrypt::Integer; + + pimpl_->dh_.Initialize(Integer(p, pSz).Ref(), Integer(g, gSz).Ref()); + pimpl_->publicKey_ = NEW_YS opaque[pimpl_->pubKeyLength_ = pubSz]; + memcpy(pimpl_->publicKey_, pub, pubSz); +} + + +// Server Side DH, server's view +DiffieHellman::DiffieHellman(const Integer& p, const Integer& g, + const RandomPool& random) +: pimpl_(NEW_YS DHImpl(random.pimpl_->RNG_)) +{ + using TaoCrypt::Integer; + + pimpl_->dh_.Initialize(p.pimpl_->int_, g.pimpl_->int_); + + uint length = pimpl_->dh_.GetByteLength(); + + pimpl_->AllocKeys(length, length, length); + pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_, + pimpl_->publicKey_); +} + +DiffieHellman::~DiffieHellman() { ysDelete(pimpl_); } + + +// Client side and view, use server that for p and g +DiffieHellman::DiffieHellman(const DiffieHellman& that) + : pimpl_(NEW_YS DHImpl(*that.pimpl_)) +{ + pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_, + pimpl_->publicKey_); +} + + +DiffieHellman& DiffieHellman::operator=(const DiffieHellman& that) +{ + pimpl_->dh_ = that.pimpl_->dh_; + pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_, + pimpl_->publicKey_); + return *this; +} + + +void DiffieHellman::makeAgreement(const byte* other, unsigned int otherSz) +{ + pimpl_->dh_.Agree(pimpl_->agreedKey_, pimpl_->privateKey_, other, otherSz); +} + + +uint DiffieHellman::get_agreedKeyLength() const +{ + return pimpl_->dh_.GetByteLength(); +} + + +const byte* DiffieHellman::get_agreedKey() const +{ + return pimpl_->agreedKey_; +} + +uint DiffieHellman::get_publicKeyLength() const +{ + return pimpl_->pubKeyLength_; +} + +const byte* DiffieHellman::get_publicKey() const +{ + return pimpl_->publicKey_; +} + + +void DiffieHellman::set_sizes(int& pSz, int& gSz, int& pubSz) const +{ + using TaoCrypt::Integer; + Integer p = pimpl_->dh_.GetP(); + Integer g = pimpl_->dh_.GetG(); + + pSz = p.ByteCount(); + gSz = g.ByteCount(); + pubSz = pimpl_->dh_.GetByteLength(); +} + + +void DiffieHellman::get_parms(byte* bp, byte* bg, byte* bpub) const +{ + using TaoCrypt::Integer; + Integer p = pimpl_->dh_.GetP(); + Integer g = pimpl_->dh_.GetG(); + + p.Encode(bp, p.ByteCount()); + g.Encode(bg, g.ByteCount()); + memcpy(bpub, pimpl_->publicKey_, pimpl_->dh_.GetByteLength()); +} + + +// convert PEM file to DER x509 type +x509* PemToDer(FILE* file, CertType type, EncryptedInfo* info) +{ + using namespace TaoCrypt; + + char header[80]; + char footer[80]; + + if (type == Cert) { + strncpy(header, "-----BEGIN CERTIFICATE-----", sizeof(header)); + strncpy(footer, "-----END CERTIFICATE-----", sizeof(footer)); + } else { + strncpy(header, "-----BEGIN RSA PRIVATE KEY-----", sizeof(header)); + strncpy(footer, "-----END RSA PRIVATE KEY-----", sizeof(header)); + } + + long begin = -1; + long end = 0; + bool foundEnd = false; + + char line[80]; + + while(fgets(line, sizeof(line), file)) + if (strncmp(header, line, strlen(header)) == 0) { + begin = ftell(file); + break; + } + + // remove encrypted header if there + if (fgets(line, sizeof(line), file)) { + char encHeader[] = "Proc-Type"; + if (strncmp(encHeader, line, strlen(encHeader)) == 0 && + fgets(line,sizeof(line), file)) { + + char* start = strstr(line, "DES"); + char* finish = strstr(line, ","); + if (!start) + start = strstr(line, "AES"); + + if (!info) return 0; + + if ( start && finish && (start < finish)) { + memcpy(info->name, start, finish - start); + info->name[finish - start] = 0; + memcpy(info->iv, finish + 1, sizeof(info->iv)); + + char* newline = strstr(line, "\r"); + if (!newline) newline = strstr(line, "\n"); + if (newline && (newline > finish)) { + info->ivSz = newline - (finish + 1); + info->set = true; + } + } + begin = ftell(file); + if (fgets(line,sizeof(line), file)) // get blank line + begin = ftell(file); + } + + } + + while(fgets(line, sizeof(line), file)) + if (strncmp(footer, line, strlen(footer)) == 0) { + foundEnd = true; + break; + } + else + end = ftell(file); + + if (begin == -1 || !foundEnd) + return 0; + + input_buffer tmp(end - begin); + fseek(file, begin, SEEK_SET); + size_t bytes = fread(tmp.get_buffer(), end - begin, 1, file); + if (bytes != 1) + return 0; + + Source der(tmp.get_buffer(), end - begin); + Base64Decoder b64Dec(der); + + uint sz = der.size(); + mySTL::auto_ptr x(NEW_YS x509(sz)); + memcpy(x->use_buffer(), der.get_buffer(), sz); + + return x.release(); +} + + +} // namespace + + +#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION +namespace yaSSL { +template void ysDelete(DiffieHellman::DHImpl*); +template void ysDelete(Integer::IntegerImpl*); +template void ysDelete(RSA::RSAImpl*); +template void ysDelete(DSS::DSSImpl*); +template void ysDelete(RandomPool::RandomImpl*); +template void ysDelete(AES::AESImpl*); +template void ysDelete(RC4::RC4Impl*); +template void ysDelete(DES_EDE::DES_EDEImpl*); +template void ysDelete(DES::DESImpl*); +template void ysDelete(HMAC_RMD::HMAC_RMDImpl*); +template void ysDelete(HMAC_SHA::HMAC_SHAImpl*); +template void ysDelete(HMAC_MD5::HMAC_MD5Impl*); +template void ysDelete(RMD::RMDImpl*); +template void ysDelete(SHA::SHAImpl*); +template void ysDelete(MD5::MD5Impl*); +} +#endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION + +#endif // !USE_CRYPTOPP_LIB diff --git a/mysql/extra/yassl/src/get_password.c b/mysql/extra/yassl/src/get_password.c new file mode 100644 index 0000000..65e5763 --- /dev/null +++ b/mysql/extra/yassl/src/get_password.c @@ -0,0 +1,218 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* +** Ask for a password from tty +** This is an own file to avoid conflicts with curses +*/ +#include +#include +#include "mysql.h" +#include +#include +#include + +#ifdef HAVE_GETPASS +#ifdef HAVE_PWD_H +#include +#endif /* HAVE_PWD_H */ +#else /* ! HAVE_GETPASS */ +#ifndef _WIN32 +#ifdef HAVE_SYS_IOCTL_H +#include +#endif +#ifdef HAVE_TERMIOS_H /* For tty-password */ +#include +#define TERMIO struct termios +#else +#ifdef HAVE_TERMIO_H /* For tty-password */ +#include +#define TERMIO struct termio +#else +#include +#define TERMIO struct sgttyb +#endif +#endif +#else +#include +#endif /* _WIN32 */ +#endif /* HAVE_GETPASS */ + +#ifdef HAVE_GETPASSPHRASE /* For Solaris */ +#define getpass(A) getpassphrase(A) +#endif + +#ifdef _WIN32 +/* were just going to fake it here and get input from + the keyboard */ + +char *get_tty_password_ext(const char *opt_message, + strdup_handler_t strdup_function) +{ + char to[80]; + char *pos=to,*end=to+sizeof(to)-1; + int i=0; + DBUG_ENTER("get_tty_password_ext"); + _cputs(opt_message ? opt_message : "Enter password: "); + for (;;) + { + char tmp; + tmp=_getch(); + if (tmp == '\b' || (int) tmp == 127) + { + if (pos != to) + { + _cputs("\b \b"); + pos--; + continue; + } + } + if (tmp == '\n' || tmp == '\r' || tmp == 3) + break; + if (iscntrl(tmp) || pos == end) + continue; + _cputs("*"); + *(pos++) = tmp; + } + while (pos != to && isspace(pos[-1]) == ' ') + pos--; /* Allow dummy space at end */ + *pos=0; + _cputs("\n"); + DBUG_RETURN(strdup_function(to,MYF(MY_FAE))); +} + +#else + + +#ifndef HAVE_GETPASS +/* +** Can't use fgets, because readline will get confused +** length is max number of chars in to, not counting \0 +* to will not include the eol characters. +*/ + +static void get_password(char *to,uint length,int fd, my_bool echo) +{ + char *pos=to,*end=to+length; + + for (;;) + { + char tmp; + if (my_read(fd,&tmp,1,MYF(0)) != 1) + break; + if (tmp == '\b' || (int) tmp == 127) + { + if (pos != to) + { + if (echo) + { + fputs("\b \b",stderr); + fflush(stderr); + } + pos--; + continue; + } + } + if (tmp == '\n' || tmp == '\r' || tmp == 3) + break; + if (iscntrl(tmp) || pos == end) + continue; + if (echo) + { + fputc('*',stderr); + fflush(stderr); + } + *(pos++) = tmp; + } + while (pos != to && isspace(pos[-1]) == ' ') + pos--; /* Allow dummy space at end */ + *pos=0; + return; +} + +#endif /* ! HAVE_GETPASS */ + + +char *get_tty_password_ext(const char *opt_message, + strdup_handler_t strdup_function) +{ +#ifdef HAVE_GETPASS + char *passbuff; +#else /* ! HAVE_GETPASS */ + TERMIO org,tmp; +#endif /* HAVE_GETPASS */ + char buff[80]; + + DBUG_ENTER("get_tty_password_ext"); + +#ifdef HAVE_GETPASS + passbuff = getpass(opt_message ? opt_message : "Enter password: "); + + /* copy the password to buff and clear original (static) buffer */ + my_stpnmov(buff, passbuff, sizeof(buff) - 1); +#ifdef _PASSWORD_LEN + memset(passbuff, 0, _PASSWORD_LEN); +#endif +#else + if (isatty(fileno(stderr))) + { + fputs(opt_message ? opt_message : "Enter password: ",stderr); + fflush(stderr); + } +#if defined(HAVE_TERMIOS_H) + tcgetattr(fileno(stdin), &org); + tmp = org; + tmp.c_lflag &= ~(ECHO | ISIG | ICANON); + tmp.c_cc[VMIN] = 1; + tmp.c_cc[VTIME] = 0; + tcsetattr(fileno(stdin), TCSADRAIN, &tmp); + get_password(buff, sizeof(buff)-1, fileno(stdin), isatty(fileno(stderr))); + tcsetattr(fileno(stdin), TCSADRAIN, &org); +#elif defined(HAVE_TERMIO_H) + ioctl(fileno(stdin), (int) TCGETA, &org); + tmp=org; + tmp.c_lflag &= ~(ECHO | ISIG | ICANON); + tmp.c_cc[VMIN] = 1; + tmp.c_cc[VTIME]= 0; + ioctl(fileno(stdin),(int) TCSETA, &tmp); + get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stderr))); + ioctl(fileno(stdin),(int) TCSETA, &org); +#else + gtty(fileno(stdin), &org); + tmp=org; + tmp.sg_flags &= ~ECHO; + tmp.sg_flags |= RAW; + stty(fileno(stdin), &tmp); + get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stderr))); + stty(fileno(stdin), &org); +#endif + if (isatty(fileno(stderr))) + fputc('\n',stderr); +#endif /* HAVE_GETPASS */ + + DBUG_RETURN(strdup_function(buff,MYF(MY_FAE))); +} + +#endif /* _WIN32 */ + +static char * my_strdup_fct(const char *str, myf flags) +{ + return my_strdup(PSI_NOT_INSTRUMENTED, str, flags); +} + +char *get_tty_password(const char *opt_message) +{ + return get_tty_password_ext(opt_message, my_strdup_fct); +} diff --git a/mysql/extra/yassl/src/handshake.cpp b/mysql/extra/yassl/src/handshake.cpp new file mode 100644 index 0000000..91cc407 --- /dev/null +++ b/mysql/extra/yassl/src/handshake.cpp @@ -0,0 +1,1190 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* The handshake source implements functions for creating and reading + * the various handshake messages. + */ + + + +#include "runtime.hpp" +#include "handshake.hpp" +#include "yassl_int.hpp" + + +namespace yaSSL { + + + +// Build a client hello message from cipher suites and compression method +void buildClientHello(SSL& ssl, ClientHello& hello) +{ + // store for pre master secret + ssl.useSecurity().use_connection().chVersion_ = hello.client_version_; + + ssl.getCrypto().get_random().Fill(hello.random_, RAN_LEN); + if (ssl.getSecurity().get_resuming()) { + hello.id_len_ = ID_LEN; + memcpy(hello.session_id_, ssl.getSecurity().get_resume().GetID(), + ID_LEN); + } + else + hello.id_len_ = 0; + hello.suite_len_ = ssl.getSecurity().get_parms().suites_size_; + memcpy(hello.cipher_suites_, ssl.getSecurity().get_parms().suites_, + hello.suite_len_); + hello.comp_len_ = 1; + + hello.set_length(sizeof(ProtocolVersion) + + RAN_LEN + + hello.id_len_ + sizeof(hello.id_len_) + + hello.suite_len_ + sizeof(hello.suite_len_) + + hello.comp_len_ + sizeof(hello.comp_len_)); +} + + +// Build a server hello message +void buildServerHello(SSL& ssl, ServerHello& hello) +{ + if (ssl.getSecurity().get_resuming()) { + memcpy(hello.random_,ssl.getSecurity().get_connection().server_random_, + RAN_LEN); + memcpy(hello.session_id_, ssl.getSecurity().get_resume().GetID(), + ID_LEN); + } + else { + ssl.getCrypto().get_random().Fill(hello.random_, RAN_LEN); + ssl.getCrypto().get_random().Fill(hello.session_id_, ID_LEN); + } + hello.id_len_ = ID_LEN; + ssl.set_sessionID(hello.session_id_); + + hello.cipher_suite_[0] = ssl.getSecurity().get_parms().suite_[0]; + hello.cipher_suite_[1] = ssl.getSecurity().get_parms().suite_[1]; + hello.compression_method_ = hello.compression_method_; + + hello.set_length(sizeof(ProtocolVersion) + RAN_LEN + ID_LEN + + sizeof(hello.id_len_) + SUITE_LEN + SIZEOF_ENUM); +} + + +// add handshake from buffer into md5 and sha hashes, use handshake header +void hashHandShake(SSL& ssl, const input_buffer& input, uint sz) +{ + const opaque* buffer = input.get_buffer() + input.get_current() - + HANDSHAKE_HEADER; + sz += HANDSHAKE_HEADER; + ssl.useHashes().use_MD5().update(buffer, sz); + ssl.useHashes().use_SHA().update(buffer, sz); +} + + +// locals +namespace { + +// Write a plaintext record to buffer +void buildOutput(output_buffer& buffer, const RecordLayerHeader& rlHdr, + const Message& msg) +{ + buffer.allocate(RECORD_HEADER + rlHdr.length_); + buffer << rlHdr << msg; +} + + +// Write a plaintext record to buffer +void buildOutput(output_buffer& buffer, const RecordLayerHeader& rlHdr, + const HandShakeHeader& hsHdr, const HandShakeBase& shake) +{ + buffer.allocate(RECORD_HEADER + rlHdr.length_); + buffer << rlHdr << hsHdr << shake; +} + + +// Build Record Layer header for Message without handshake header +void buildHeader(SSL& ssl, RecordLayerHeader& rlHeader, const Message& msg) +{ + ProtocolVersion pv = ssl.getSecurity().get_connection().version_; + rlHeader.type_ = msg.get_type(); + rlHeader.version_.major_ = pv.major_; + rlHeader.version_.minor_ = pv.minor_; + rlHeader.length_ = msg.get_length(); +} + + +// Build HandShake and RecordLayer Headers for handshake output +void buildHeaders(SSL& ssl, HandShakeHeader& hsHeader, + RecordLayerHeader& rlHeader, const HandShakeBase& shake) +{ + int sz = shake.get_length(); + + hsHeader.set_type(shake.get_type()); + hsHeader.set_length(sz); + + ProtocolVersion pv = ssl.getSecurity().get_connection().version_; + rlHeader.type_ = handshake; + rlHeader.version_.major_ = pv.major_; + rlHeader.version_.minor_ = pv.minor_; + rlHeader.length_ = sz + HANDSHAKE_HEADER; +} + + +// add handshake from buffer into md5 and sha hashes, exclude record header +void hashHandShake(SSL& ssl, const output_buffer& output, bool removeIV = false) +{ + uint sz = output.get_size() - RECORD_HEADER; + + const opaque* buffer = output.get_buffer() + RECORD_HEADER; + + if (removeIV) { // TLSv1_1 IV + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + sz -= blockSz; + buffer += blockSz; + } + + ssl.useHashes().use_MD5().update(buffer, sz); + ssl.useHashes().use_SHA().update(buffer, sz); +} + + +// calculate MD5 hash for finished +void buildMD5(SSL& ssl, Finished& fin, const opaque* sender) +{ + + opaque md5_result[MD5_LEN]; + opaque md5_inner[SIZEOF_SENDER + SECRET_LEN + PAD_MD5]; + opaque md5_outer[SECRET_LEN + PAD_MD5 + MD5_LEN]; + + const opaque* master_secret = + ssl.getSecurity().get_connection().master_secret_; + + // make md5 inner + memcpy(md5_inner, sender, SIZEOF_SENDER); + memcpy(&md5_inner[SIZEOF_SENDER], master_secret, SECRET_LEN); + memcpy(&md5_inner[SIZEOF_SENDER + SECRET_LEN], PAD1, PAD_MD5); + + ssl.useHashes().use_MD5().get_digest(md5_result, md5_inner, + sizeof(md5_inner)); + + // make md5 outer + memcpy(md5_outer, master_secret, SECRET_LEN); + memcpy(&md5_outer[SECRET_LEN], PAD2, PAD_MD5); + memcpy(&md5_outer[SECRET_LEN + PAD_MD5], md5_result, MD5_LEN); + + ssl.useHashes().use_MD5().get_digest(fin.set_md5(), md5_outer, + sizeof(md5_outer)); +} + + +// calculate SHA hash for finished +void buildSHA(SSL& ssl, Finished& fin, const opaque* sender) +{ + + opaque sha_result[SHA_LEN]; + opaque sha_inner[SIZEOF_SENDER + SECRET_LEN + PAD_SHA]; + opaque sha_outer[SECRET_LEN + PAD_SHA + SHA_LEN]; + + const opaque* master_secret = + ssl.getSecurity().get_connection().master_secret_; + + // make sha inner + memcpy(sha_inner, sender, SIZEOF_SENDER); + memcpy(&sha_inner[SIZEOF_SENDER], master_secret, SECRET_LEN); + memcpy(&sha_inner[SIZEOF_SENDER + SECRET_LEN], PAD1, PAD_SHA); + + ssl.useHashes().use_SHA().get_digest(sha_result, sha_inner, + sizeof(sha_inner)); + + // make sha outer + memcpy(sha_outer, master_secret, SECRET_LEN); + memcpy(&sha_outer[SECRET_LEN], PAD2, PAD_SHA); + memcpy(&sha_outer[SECRET_LEN + PAD_SHA], sha_result, SHA_LEN); + + ssl.useHashes().use_SHA().get_digest(fin.set_sha(), sha_outer, + sizeof(sha_outer)); +} + + +// sanity checks on encrypted message size +static int sanity_check_message(SSL& ssl, uint msgSz) +{ + uint minSz = 0; + + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + if (msgSz % blockSz) + return -1; + + minSz = ssl.getSecurity().get_parms().hash_size_ + 1; // pad byte too + if (blockSz > minSz) + minSz = blockSz; + + if (ssl.isTLSv1_1()) + minSz += blockSz; // explicit IV + } + else { // stream + minSz = ssl.getSecurity().get_parms().hash_size_; + } + + if (msgSz < minSz) + return -1; + + return 0; +} + + +// decrypt input message in place, store size in case needed later +void decrypt_message(SSL& ssl, input_buffer& input, uint sz) +{ + input_buffer plain(sz); + opaque* cipher = input.get_buffer() + input.get_current(); + + if (sanity_check_message(ssl, sz) != 0) { + ssl.SetError(sanityCipher_error); + return; + } + + ssl.useCrypto().use_cipher().decrypt(plain.get_buffer(), cipher, sz); + memcpy(cipher, plain.get_buffer(), sz); + ssl.useSecurity().use_parms().encrypt_size_ = sz; + + if (ssl.isTLSv1_1()) // IV + input.set_current(input.get_current() + + ssl.getCrypto().get_cipher().get_blockSize()); +} + + +// output operator for input_buffer +output_buffer& operator<<(output_buffer& output, const input_buffer& input) +{ + output.write(input.get_buffer(), input.get_size()); + return output; +} + + +// write headers, handshake hash, mac, pad, and encrypt +void cipherFinished(SSL& ssl, Finished& fin, output_buffer& output) +{ + uint digestSz = ssl.getCrypto().get_digest().get_digestSize(); + uint finishedSz = ssl.isTLS() ? TLS_FINISHED_SZ : FINISHED_SZ; + uint sz = RECORD_HEADER + HANDSHAKE_HEADER + finishedSz + digestSz; + uint pad = 0; + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + if (ssl.isTLSv1_1()) + sz += blockSz; // IV + sz += 1; // pad byte + pad = (sz - RECORD_HEADER) % blockSz; + pad = blockSz - pad; + sz += pad; + } + + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + buildHeaders(ssl, hsHeader, rlHeader, fin); + rlHeader.length_ = sz - RECORD_HEADER; // record header includes mac + // and pad, hanshake doesn't + input_buffer iv; + if (ssl.isTLSv1_1() && ssl.getSecurity().get_parms().cipher_type_== block){ + iv.allocate(blockSz); + ssl.getCrypto().get_random().Fill(iv.get_buffer(), blockSz); + iv.add_size(blockSz); + } + uint ivSz = iv.get_size(); + output.allocate(sz); + output << rlHeader << iv << hsHeader << fin; + + hashHandShake(ssl, output, ssl.isTLSv1_1() ? true : false); + opaque digest[SHA_LEN]; // max size + if (ssl.isTLS()) + TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER + ivSz, + output.get_size() - RECORD_HEADER - ivSz, handshake); + else + hmac(ssl, digest, output.get_buffer() + RECORD_HEADER, + output.get_size() - RECORD_HEADER, handshake); + output.write(digest, digestSz); + + if (ssl.getSecurity().get_parms().cipher_type_ == block) + for (uint i = 0; i <= pad; i++) output[AUTO] = pad; // pad byte gets + // pad value too + input_buffer cipher(rlHeader.length_); + ssl.useCrypto().use_cipher().encrypt(cipher.get_buffer(), + output.get_buffer() + RECORD_HEADER, output.get_size() - RECORD_HEADER); + output.set_current(RECORD_HEADER); + output.write(cipher.get_buffer(), cipher.get_capacity()); +} + + +// build an encrypted data or alert message for output +void buildMessage(SSL& ssl, output_buffer& output, const Message& msg) +{ + uint digestSz = ssl.getCrypto().get_digest().get_digestSize(); + uint sz = RECORD_HEADER + msg.get_length() + digestSz; + uint pad = 0; + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + if (ssl.isTLSv1_1()) // IV + sz += blockSz; + sz += 1; // pad byte + pad = (sz - RECORD_HEADER) % blockSz; + pad = blockSz - pad; + sz += pad; + } + + RecordLayerHeader rlHeader; + buildHeader(ssl, rlHeader, msg); + rlHeader.length_ = sz - RECORD_HEADER; // record header includes mac + // and pad, hanshake doesn't + input_buffer iv; + if (ssl.isTLSv1_1() && ssl.getSecurity().get_parms().cipher_type_== block){ + iv.allocate(blockSz); + ssl.getCrypto().get_random().Fill(iv.get_buffer(), blockSz); + iv.add_size(blockSz); + } + + uint ivSz = iv.get_size(); + output.allocate(sz); + output << rlHeader << iv << msg; + + opaque digest[SHA_LEN]; // max size + if (ssl.isTLS()) + TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER + ivSz, + output.get_size() - RECORD_HEADER - ivSz, msg.get_type()); + else + hmac(ssl, digest, output.get_buffer() + RECORD_HEADER, + output.get_size() - RECORD_HEADER, msg.get_type()); + output.write(digest, digestSz); + + if (ssl.getSecurity().get_parms().cipher_type_ == block) + for (uint i = 0; i <= pad; i++) output[AUTO] = pad; // pad byte gets + // pad value too + input_buffer cipher(rlHeader.length_); + ssl.useCrypto().use_cipher().encrypt(cipher.get_buffer(), + output.get_buffer() + RECORD_HEADER, output.get_size() - RECORD_HEADER); + output.set_current(RECORD_HEADER); + output.write(cipher.get_buffer(), cipher.get_capacity()); +} + + +// build alert message +void buildAlert(SSL& ssl, output_buffer& output, const Alert& alert) +{ + if (ssl.getSecurity().get_parms().pending_ == false) // encrypted + buildMessage(ssl, output, alert); + else { + RecordLayerHeader rlHeader; + buildHeader(ssl, rlHeader, alert); + buildOutput(output, rlHeader, alert); + } +} + + +// build TLS finished message +void buildFinishedTLS(SSL& ssl, Finished& fin, const opaque* sender) +{ + opaque handshake_hash[FINISHED_SZ]; + + ssl.useHashes().use_MD5().get_digest(handshake_hash); + ssl.useHashes().use_SHA().get_digest(&handshake_hash[MD5_LEN]); + + const opaque* side; + if ( strncmp((const char*)sender, (const char*)client, SIZEOF_SENDER) == 0) + side = tls_client; + else + side = tls_server; + + PRF(fin.set_md5(), TLS_FINISHED_SZ, + ssl.getSecurity().get_connection().master_secret_, SECRET_LEN, + side, FINISHED_LABEL_SZ, + handshake_hash, FINISHED_SZ); + + fin.set_length(TLS_FINISHED_SZ); // shorter length for TLS +} + + +// compute p_hash for MD5 or SHA-1 for TLSv1 PRF +void p_hash(output_buffer& result, const output_buffer& secret, + const output_buffer& seed, MACAlgorithm hash) +{ + uint len = hash == md5 ? MD5_LEN : SHA_LEN; + uint times = result.get_capacity() / len; + uint lastLen = result.get_capacity() % len; + opaque previous[SHA_LEN]; // max size + opaque current[SHA_LEN]; // max size + mySTL::auto_ptr hmac; + + if (lastLen) times += 1; + + if (hash == md5) + hmac.reset(NEW_YS HMAC_MD5(secret.get_buffer(), secret.get_size())); + else + hmac.reset(NEW_YS HMAC_SHA(secret.get_buffer(), secret.get_size())); + // A0 = seed + hmac->get_digest(previous, seed.get_buffer(), seed.get_size());// A1 + uint lastTime = times - 1; + + for (uint i = 0; i < times; i++) { + hmac->update(previous, len); + hmac->get_digest(current, seed.get_buffer(), seed.get_size()); + + if (lastLen && (i == lastTime)) + result.write(current, lastLen); + else { + result.write(current, len); + //memcpy(previous, current, len); + hmac->get_digest(previous, previous, len); + } + } +} + + +// calculate XOR for TLSv1 PRF +void get_xor(byte *digest, uint digLen, output_buffer& md5, + output_buffer& sha) +{ + for (uint i = 0; i < digLen; i++) + digest[i] = md5[AUTO] ^ sha[AUTO]; +} + + +// build MD5 part of certificate verify +void buildMD5_CertVerify(SSL& ssl, byte* digest) +{ + opaque md5_result[MD5_LEN]; + opaque md5_inner[SECRET_LEN + PAD_MD5]; + opaque md5_outer[SECRET_LEN + PAD_MD5 + MD5_LEN]; + + const opaque* master_secret = + ssl.getSecurity().get_connection().master_secret_; + + // make md5 inner + memcpy(md5_inner, master_secret, SECRET_LEN); + memcpy(&md5_inner[SECRET_LEN], PAD1, PAD_MD5); + + ssl.useHashes().use_MD5().get_digest(md5_result, md5_inner, + sizeof(md5_inner)); + + // make md5 outer + memcpy(md5_outer, master_secret, SECRET_LEN); + memcpy(&md5_outer[SECRET_LEN], PAD2, PAD_MD5); + memcpy(&md5_outer[SECRET_LEN + PAD_MD5], md5_result, MD5_LEN); + + ssl.useHashes().use_MD5().get_digest(digest, md5_outer, sizeof(md5_outer)); +} + + +// build SHA part of certificate verify +void buildSHA_CertVerify(SSL& ssl, byte* digest) +{ + opaque sha_result[SHA_LEN]; + opaque sha_inner[SECRET_LEN + PAD_SHA]; + opaque sha_outer[SECRET_LEN + PAD_SHA + SHA_LEN]; + + const opaque* master_secret = + ssl.getSecurity().get_connection().master_secret_; + + // make sha inner + memcpy(sha_inner, master_secret, SECRET_LEN); + memcpy(&sha_inner[SECRET_LEN], PAD1, PAD_SHA); + + ssl.useHashes().use_SHA().get_digest(sha_result, sha_inner, + sizeof(sha_inner)); + + // make sha outer + memcpy(sha_outer, master_secret, SECRET_LEN); + memcpy(&sha_outer[SECRET_LEN], PAD2, PAD_SHA); + memcpy(&sha_outer[SECRET_LEN + PAD_SHA], sha_result, SHA_LEN); + + ssl.useHashes().use_SHA().get_digest(digest, sha_outer, sizeof(sha_outer)); +} + + +} // namespace for locals + + +// some clients still send sslv2 client hello +void ProcessOldClientHello(input_buffer& input, SSL& ssl) +{ + if (input.get_error() || input.get_remaining() < 2) { + ssl.SetError(bad_input); + return; + } + byte b0 = input[AUTO]; + byte b1 = input[AUTO]; + + uint16 sz = ((b0 & 0x7f) << 8) | b1; + + if (sz > input.get_remaining()) { + ssl.SetError(bad_input); + return; + } + + // hashHandShake manually + const opaque* buffer = input.get_buffer() + input.get_current(); + ssl.useHashes().use_MD5().update(buffer, sz); + ssl.useHashes().use_SHA().update(buffer, sz); + + b1 = input[AUTO]; // does this value mean client_hello? + + ClientHello ch; + ch.client_version_.major_ = input[AUTO]; + ch.client_version_.minor_ = input[AUTO]; + + byte len[2]; + + len[0] = input[AUTO]; + len[1] = input[AUTO]; + ato16(len, ch.suite_len_); + + len[0] = input[AUTO]; + len[1] = input[AUTO]; + uint16 sessionLen; + ato16(len, sessionLen); + ch.id_len_ = sessionLen; + + len[0] = input[AUTO]; + len[1] = input[AUTO]; + uint16 randomLen; + ato16(len, randomLen); + + if (input.get_error() || ch.suite_len_ > MAX_SUITE_SZ || + ch.suite_len_ > input.get_remaining() || + sessionLen > ID_LEN || randomLen > RAN_LEN) { + ssl.SetError(bad_input); + return; + } + + int j = 0; + for (uint16 i = 0; i < ch.suite_len_; i += 3) { + byte first = input[AUTO]; + if (first) // sslv2 type + input.read(len, SUITE_LEN); // skip + else { + input.read(&ch.cipher_suites_[j], SUITE_LEN); + j += SUITE_LEN; + } + } + ch.suite_len_ = j; + + if (ch.id_len_) + input.read(ch.session_id_, ch.id_len_); // id_len_ from sessionLen + + if (randomLen < RAN_LEN) + memset(ch.random_, 0, RAN_LEN - randomLen); + input.read(&ch.random_[RAN_LEN - randomLen], randomLen); + + ch.Process(input, ssl); +} + + +// Build a finished message, see 7.6.9 +void buildFinished(SSL& ssl, Finished& fin, const opaque* sender) +{ + // store current states, building requires get_digest which resets state + MD5 md5(ssl.getHashes().get_MD5()); + SHA sha(ssl.getHashes().get_SHA()); + + if (ssl.isTLS()) + buildFinishedTLS(ssl, fin, sender); + else { + buildMD5(ssl, fin, sender); + buildSHA(ssl, fin, sender); + } + + // restore + ssl.useHashes().use_MD5() = md5; + ssl.useHashes().use_SHA() = sha; +} + + +/* compute SSLv3 HMAC into digest see + * buffer is of sz size and includes HandShake Header but not a Record Header + * verify means to check peers hmac +*/ +void hmac(SSL& ssl, byte* digest, const byte* buffer, uint sz, + ContentType content, bool verify) +{ + Digest& mac = ssl.useCrypto().use_digest(); + opaque inner[SHA_LEN + PAD_MD5 + SEQ_SZ + SIZEOF_ENUM + LENGTH_SZ]; + opaque outer[SHA_LEN + PAD_MD5 + SHA_LEN]; + opaque result[SHA_LEN]; // max possible sizes + uint digestSz = mac.get_digestSize(); // actual sizes + uint padSz = mac.get_padSize(); + uint innerSz = digestSz + padSz + SEQ_SZ + SIZEOF_ENUM + LENGTH_SZ; + uint outerSz = digestSz + padSz + digestSz; + + // data + const opaque* mac_secret = ssl.get_macSecret(verify); + opaque seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 }; + opaque length[LENGTH_SZ]; + c16toa(sz, length); + c32toa(ssl.get_SEQIncrement(verify), &seq[sizeof(uint32)]); + + // make inner + memcpy(inner, mac_secret, digestSz); + memcpy(&inner[digestSz], PAD1, padSz); + memcpy(&inner[digestSz + padSz], seq, SEQ_SZ); + inner[digestSz + padSz + SEQ_SZ] = content; + memcpy(&inner[digestSz + padSz + SEQ_SZ + SIZEOF_ENUM], length, LENGTH_SZ); + + mac.update(inner, innerSz); + mac.get_digest(result, buffer, sz); // append content buffer + + // make outer + memcpy(outer, mac_secret, digestSz); + memcpy(&outer[digestSz], PAD2, padSz); + memcpy(&outer[digestSz + padSz], result, digestSz); + + mac.get_digest(digest, outer, outerSz); +} + + +// TLS type HAMC +void TLS_hmac(SSL& ssl, byte* digest, const byte* buffer, uint sz, + ContentType content, bool verify) +{ + mySTL::auto_ptr hmac; + opaque seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 }; + opaque length[LENGTH_SZ]; + opaque inner[SIZEOF_ENUM + VERSION_SZ + LENGTH_SZ]; // type + version + len + + c16toa(sz, length); + c32toa(ssl.get_SEQIncrement(verify), &seq[sizeof(uint32)]); + + MACAlgorithm algo = ssl.getSecurity().get_parms().mac_algorithm_; + + if (algo == sha) + hmac.reset(NEW_YS HMAC_SHA(ssl.get_macSecret(verify), SHA_LEN)); + else if (algo == rmd) + hmac.reset(NEW_YS HMAC_RMD(ssl.get_macSecret(verify), RMD_LEN)); + else + hmac.reset(NEW_YS HMAC_MD5(ssl.get_macSecret(verify), MD5_LEN)); + + hmac->update(seq, SEQ_SZ); // seq_num + inner[0] = content; // type + inner[SIZEOF_ENUM] = ssl.getSecurity().get_connection().version_.major_; + inner[SIZEOF_ENUM + SIZEOF_ENUM] = + ssl.getSecurity().get_connection().version_.minor_; // version + memcpy(&inner[SIZEOF_ENUM + VERSION_SZ], length, LENGTH_SZ); // length + hmac->update(inner, sizeof(inner)); + hmac->get_digest(digest, buffer, sz); // content +} + + +// compute TLSv1 PRF (pseudo random function using HMAC) +void PRF(byte* digest, uint digLen, const byte* secret, uint secLen, + const byte* label, uint labLen, const byte* seed, uint seedLen) +{ + uint half = (secLen + 1) / 2; + + output_buffer md5_half(half); + output_buffer sha_half(half); + output_buffer labelSeed(labLen + seedLen); + + md5_half.write(secret, half); + sha_half.write(secret + half - secLen % 2, half); + labelSeed.write(label, labLen); + labelSeed.write(seed, seedLen); + + output_buffer md5_result(digLen); + output_buffer sha_result(digLen); + + p_hash(md5_result, md5_half, labelSeed, md5); + p_hash(sha_result, sha_half, labelSeed, sha); + + md5_result.set_current(0); + sha_result.set_current(0); + get_xor(digest, digLen, md5_result, sha_result); +} + + +// build certificate hashes +void build_certHashes(SSL& ssl, Hashes& hashes) +{ + // store current states, building requires get_digest which resets state + MD5 md5(ssl.getHashes().get_MD5()); + SHA sha(ssl.getHashes().get_SHA()); + + if (ssl.isTLS()) { + ssl.useHashes().use_MD5().get_digest(hashes.md5_); + ssl.useHashes().use_SHA().get_digest(hashes.sha_); + } + else { + buildMD5_CertVerify(ssl, hashes.md5_); + buildSHA_CertVerify(ssl, hashes.sha_); + } + + // restore + ssl.useHashes().use_MD5() = md5; + ssl.useHashes().use_SHA() = sha; +} + + + +// do process input requests, return 0 is done, 1 is call again to complete +int DoProcessReply(SSL& ssl) +{ + uint ready = ssl.getSocket().get_ready(); + if (!ready) + ready= 64; + + // add buffered data if its there + input_buffer* buffered = ssl.useBuffers().TakeRawInput(); + uint buffSz = buffered ? buffered->get_size() : 0; + input_buffer buffer(buffSz + ready); + if (buffSz) { + buffer.assign(buffered->get_buffer(), buffSz); + ysDelete(buffered); + buffered = 0; + } + + // add new data + uint read = ssl.useSocket().receive(buffer.get_buffer() + buffSz, ready); + if (read == static_cast(-1)) { + ssl.SetError(receive_error); + return 0; + } else if (read == 0) + return 1; + + buffer.add_size(read); + uint offset = 0; + const MessageFactory& mf = ssl.getFactory().getMessage(); + + // old style sslv2 client hello? + if (ssl.getSecurity().get_parms().entity_ == server_end && + ssl.getStates().getServer() == clientNull) + if (buffer.peek() != handshake) { + ProcessOldClientHello(buffer, ssl); + if (ssl.GetError()) + return 0; + } + + while(!buffer.eof()) { + // each record + RecordLayerHeader hdr; + bool needHdr = false; + + if (static_cast(RECORD_HEADER) > buffer.get_remaining()) + needHdr = true; + else { + buffer >> hdr; + ssl.verifyState(hdr); + } + + if (ssl.GetError()) + return 0; + + // make sure we have enough input in buffer to process this record + if (needHdr || hdr.length_ > buffer.get_remaining()) { + // put header in front for next time processing + uint extra = needHdr ? 0 : RECORD_HEADER; + uint sz = buffer.get_remaining() + extra; + ssl.useBuffers().SetRawInput(NEW_YS input_buffer(sz, + buffer.get_buffer() + buffer.get_current() - extra, sz)); + return 1; + } + + while (buffer.get_current() < hdr.length_ + RECORD_HEADER + offset) { + // each message in record, can be more than 1 if not encrypted + if (ssl.GetError()) + return 0; + + if (ssl.getSecurity().get_parms().pending_ == false) { // cipher on + // sanity check for malicious/corrupted/illegal input + if (buffer.get_remaining() < hdr.length_) { + ssl.SetError(bad_input); + return 0; + } + decrypt_message(ssl, buffer, hdr.length_); + if (ssl.GetError()) + return 0; + } + + mySTL::auto_ptr msg(mf.CreateObject(hdr.type_)); + if (!msg.get()) { + ssl.SetError(factory_error); + return 0; + } + buffer >> *msg; + msg->Process(buffer, ssl); + if (ssl.GetError()) + return 0; + } + offset += hdr.length_ + RECORD_HEADER; + } + return 0; +} + + +// process input requests +void processReply(SSL& ssl) +{ + if (ssl.GetError()) return; + + if (DoProcessReply(ssl)) { + // didn't complete process + if (!ssl.getSocket().IsNonBlocking()) { + // keep trying now, blocking ok + while (!ssl.GetError()) + if (DoProcessReply(ssl) == 0) break; + } + else + // user will have try again later, non blocking + ssl.SetError(YasslError(SSL_ERROR_WANT_READ)); + } +} + + +// send client_hello, no buffering +void sendClientHello(SSL& ssl) +{ + ssl.verifyState(serverNull); + if (ssl.GetError()) return; + + ClientHello ch(ssl.getSecurity().get_connection().version_, + ssl.getSecurity().get_connection().compression_); + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + output_buffer out; + + buildClientHello(ssl, ch); + ssl.set_random(ch.get_random(), client_end); + buildHeaders(ssl, hsHeader, rlHeader, ch); + buildOutput(out, rlHeader, hsHeader, ch); + hashHandShake(ssl, out); + + ssl.Send(out.get_buffer(), out.get_size()); +} + + +// send client key exchange +void sendClientKeyExchange(SSL& ssl, BufferOutput buffer) +{ + ssl.verifyState(serverHelloDoneComplete); + if (ssl.GetError()) return; + + ClientKeyExchange ck(ssl); + ck.build(ssl); + ssl.makeMasterSecret(); + + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + buildHeaders(ssl, hsHeader, rlHeader, ck); + buildOutput(*out.get(), rlHeader, hsHeader, ck); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send server key exchange +void sendServerKeyExchange(SSL& ssl, BufferOutput buffer) +{ + if (ssl.GetError()) return; + ServerKeyExchange sk(ssl); + sk.build(ssl); + if (ssl.GetError()) return; + + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + buildHeaders(ssl, hsHeader, rlHeader, sk); + buildOutput(*out.get(), rlHeader, hsHeader, sk); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send change cipher +void sendChangeCipher(SSL& ssl, BufferOutput buffer) +{ + if (ssl.getSecurity().get_parms().entity_ == server_end) { + if (ssl.getSecurity().get_resuming()) + ssl.verifyState(clientKeyExchangeComplete); + else + ssl.verifyState(clientFinishedComplete); + } + if (ssl.GetError()) return; + + ChangeCipherSpec ccs; + RecordLayerHeader rlHeader; + buildHeader(ssl, rlHeader, ccs); + mySTL::auto_ptr out(NEW_YS output_buffer); + buildOutput(*out.get(), rlHeader, ccs); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send finished +void sendFinished(SSL& ssl, ConnectionEnd side, BufferOutput buffer) +{ + if (ssl.GetError()) return; + + Finished fin; + buildFinished(ssl, fin, side == client_end ? client : server); + mySTL::auto_ptr out(NEW_YS output_buffer); + cipherFinished(ssl, fin, *out.get()); // hashes handshake + + if (ssl.getSecurity().get_resuming()) { + if (side == server_end) + buildFinished(ssl, ssl.useHashes().use_verify(), client); // client + } + else { + if (!ssl.getSecurity().GetContext()->GetSessionCacheOff()) + GetSessions().add(ssl); // store session + if (side == client_end) + buildFinished(ssl, ssl.useHashes().use_verify(), server); // server + } + ssl.useSecurity().use_connection().CleanMaster(); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send data +int sendData(SSL& ssl, const void* buffer, int sz) +{ + int sent = 0; + + if (ssl.GetError() == YasslError(SSL_ERROR_WANT_READ)) + ssl.SetError(no_error); + + if (ssl.GetError() == YasslError(SSL_ERROR_WANT_WRITE)) { + ssl.SetError(no_error); + ssl.SendWriteBuffered(); + if (!ssl.GetError()) { + // advance sent to prvevious sent + plain size just sent + sent = ssl.useBuffers().prevSent + ssl.useBuffers().plainSz; + } + } + + ssl.verfiyHandShakeComplete(); + if (ssl.GetError()) return -1; + + for (;;) { + int len = min(sz - sent, MAX_RECORD_SIZE); + output_buffer out; + input_buffer tmp; + + Data data; + + if (sent == sz) break; + + if (ssl.CompressionOn()) { + if (Compress(static_cast(buffer) + sent, len, + tmp) == -1) { + ssl.SetError(compress_error); + return -1; + } + data.SetData(tmp.get_size(), tmp.get_buffer()); + } + else + data.SetData(len, static_cast(buffer) + sent); + + buildMessage(ssl, out, data); + ssl.Send(out.get_buffer(), out.get_size()); + + if (ssl.GetError()) { + if (ssl.GetError() == YasslError(SSL_ERROR_WANT_WRITE)) { + ssl.useBuffers().plainSz = len; + ssl.useBuffers().prevSent = sent; + } + return -1; + } + sent += len; + } + ssl.useLog().ShowData(sent, true); + return sent; +} + + +// send alert +int sendAlert(SSL& ssl, const Alert& alert) +{ + output_buffer out; + buildAlert(ssl, out, alert); + ssl.Send(out.get_buffer(), out.get_size()); + + return alert.get_length(); +} + + +// process input data +int receiveData(SSL& ssl, Data& data, bool peek) +{ + if (ssl.GetError() == YasslError(SSL_ERROR_WANT_READ)) + ssl.SetError(no_error); + + ssl.verfiyHandShakeComplete(); + if (ssl.GetError()) return -1; + + if (!ssl.HasData()) + processReply(ssl); + + if (peek) + ssl.PeekData(data); + else + ssl.fillData(data); + + ssl.useLog().ShowData(data.get_length()); + if (ssl.GetError()) return -1; + + if (data.get_length() == 0 && ssl.getSocket().WouldBlock()) { + ssl.SetError(YasslError(SSL_ERROR_WANT_READ)); + return SSL_WOULD_BLOCK; + } + return data.get_length(); +} + + +// send server hello +void sendServerHello(SSL& ssl, BufferOutput buffer) +{ + if (ssl.getSecurity().get_resuming()) + ssl.verifyState(clientKeyExchangeComplete); + else + ssl.verifyState(clientHelloComplete); + if (ssl.GetError()) return; + + ServerHello sh(ssl.getSecurity().get_connection().version_, + ssl.getSecurity().get_connection().compression_); + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + + buildServerHello(ssl, sh); + ssl.set_random(sh.get_random(), server_end); + buildHeaders(ssl, hsHeader, rlHeader, sh); + buildOutput(*out.get(), rlHeader, hsHeader, sh); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send server hello done +void sendServerHelloDone(SSL& ssl, BufferOutput buffer) +{ + if (ssl.GetError()) return; + + ServerHelloDone shd; + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + + buildHeaders(ssl, hsHeader, rlHeader, shd); + buildOutput(*out.get(), rlHeader, hsHeader, shd); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send certificate +void sendCertificate(SSL& ssl, BufferOutput buffer) +{ + if (ssl.GetError()) return; + + Certificate cert(ssl.getCrypto().get_certManager().get_cert()); + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + + buildHeaders(ssl, hsHeader, rlHeader, cert); + buildOutput(*out.get(), rlHeader, hsHeader, cert); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send certificate request +void sendCertificateRequest(SSL& ssl, BufferOutput buffer) +{ + if (ssl.GetError()) return; + + CertificateRequest request; + request.Build(); + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + + buildHeaders(ssl, hsHeader, rlHeader, request); + buildOutput(*out.get(), rlHeader, hsHeader, request); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +// send certificate verify +void sendCertificateVerify(SSL& ssl, BufferOutput buffer) +{ + if (ssl.GetError()) return; + + if(ssl.getCrypto().get_certManager().sendBlankCert()) return; + + CertificateVerify verify; + verify.Build(ssl); + if (ssl.GetError()) return; + + RecordLayerHeader rlHeader; + HandShakeHeader hsHeader; + mySTL::auto_ptr out(NEW_YS output_buffer); + + buildHeaders(ssl, hsHeader, rlHeader, verify); + buildOutput(*out.get(), rlHeader, hsHeader, verify); + hashHandShake(ssl, *out.get()); + + if (buffer == buffered) + ssl.addBuffer(out.release()); + else + ssl.Send(out->get_buffer(), out->get_size()); +} + + +} // namespace diff --git a/mysql/extra/yassl/src/lock.cpp b/mysql/extra/yassl/src/lock.cpp new file mode 100644 index 0000000..c74ea1c --- /dev/null +++ b/mysql/extra/yassl/src/lock.cpp @@ -0,0 +1,87 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* Locking functions + */ + +#include "runtime.hpp" +#include "lock.hpp" + + +namespace yaSSL { + + +#ifdef MULTI_THREADED + #ifdef _WIN32 + + Mutex::Mutex() + { + InitializeCriticalSection(&cs_); + } + + + Mutex::~Mutex() + { + DeleteCriticalSection(&cs_); + } + + + Mutex::Lock::Lock(Mutex& lm) : mutex_(lm) + { + EnterCriticalSection(&mutex_.cs_); + } + + + Mutex::Lock::~Lock() + { + LeaveCriticalSection(&mutex_.cs_); + } + + #else // _WIN32 + + Mutex::Mutex() + { + pthread_mutex_init(&mutex_, 0); + } + + + Mutex::~Mutex() + { + pthread_mutex_destroy(&mutex_); + } + + + Mutex::Lock::Lock(Mutex& lm) : mutex_(lm) + { + pthread_mutex_lock(&mutex_.mutex_); + } + + + Mutex::Lock::~Lock() + { + pthread_mutex_unlock(&mutex_.mutex_); + } + + + #endif // _WIN32 +#endif // MULTI_THREADED + + + +} // namespace yaSSL + diff --git a/mysql/extra/yassl/src/log.cpp b/mysql/extra/yassl/src/log.cpp new file mode 100644 index 0000000..2f112ac --- /dev/null +++ b/mysql/extra/yassl/src/log.cpp @@ -0,0 +1,147 @@ +/* + Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* Debug logging functions + */ + + +#include "runtime.hpp" +#include "log.hpp" + +#ifdef YASSL_LOG + #include + #include + #include +#endif + + + +namespace yaSSL { + + +#ifdef YASSL_LOG + + enum { MAX_MSG = 81 }; + + Log::Log(const char* str) + { + log_ = fopen(str, "w"); + Trace("********** Logger Attached **********"); + } + + + Log::~Log() + { + Trace("********** Logger Detached **********"); + fclose(log_); + } + + + // Trace a message + void Log::Trace(const char* str) + { + if (!log_) return; + + time_t clicks = time(0); + char timeStr[32]; + + memset(timeStr, 0, sizeof(timeStr)); + // get rid of newline + strncpy(timeStr, ctime(&clicks), sizeof(timeStr)); + unsigned int len = strlen(timeStr); + timeStr[len - 1] = 0; + + char msg[MAX_MSG]; + + strncpy(msg, timeStr, sizeof(timeStr)); + strncat(msg, ":", 1); + strncat(msg, str, MAX_MSG - sizeof(timeStr) - 2); + strncat(msg, "\n", 1); + msg[MAX_MSG - 1] = 0; + + fputs(msg, log_); + } + + + #if defined(_WIN32) || defined(__MACH__) || defined(__hpux__) + typedef int socklen_t; + #endif + + + // write tcp address + void Log::ShowTCP(socket_t fd, bool ended) + { + sockaddr_in peeraddr; + socklen_t len = sizeof(peeraddr); + if (getpeername(fd, (sockaddr*)&peeraddr, &len) != 0) + return; + + const char* p = reinterpret_cast(&peeraddr.sin_addr); + char msg[MAX_MSG]; + char number[16]; + + if (ended) + strncpy(msg, "yaSSL conn DONE w/ peer ", 26); + else + strncpy(msg, "yaSSL conn BEGUN w/ peer ", 26); + for (int i = 0; i < 4; ++i) { + sprintf(number, "%u", static_cast(p[i])); + strncat(msg, number, 8); + if (i < 3) + strncat(msg, ".", 1); + } + strncat(msg, " port ", 8); + sprintf(number, "%d", htons(peeraddr.sin_port)); + strncat(msg, number, 8); + + msg[MAX_MSG - 1] = 0; + Trace(msg); + } + + + // log processed data + void Log::ShowData(uint bytes, bool sent) + { + char msg[MAX_MSG]; + char number[16]; + + if (sent) + strncpy(msg, "Sent ", 10); + else + strncpy(msg, "Received ", 10); + sprintf(number, "%u", bytes); + strncat(msg, number, 8); + strncat(msg, " bytes of application data", 27); + + msg[MAX_MSG - 1] = 0; + Trace(msg); + } + + +#else // no YASSL_LOG + + + Log::Log(const char*) {} + Log::~Log() {} + void Log::Trace(const char*) {} + void Log::ShowTCP(socket_t, bool) {} + void Log::ShowData(uint, bool) {} + + +#endif // YASSL_LOG +} // namespace diff --git a/mysql/extra/yassl/src/socket_wrapper.cpp b/mysql/extra/yassl/src/socket_wrapper.cpp new file mode 100644 index 0000000..a23c1c1 --- /dev/null +++ b/mysql/extra/yassl/src/socket_wrapper.cpp @@ -0,0 +1,238 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* The socket wrapper source implements a Socket class that hides the + * differences between Berkely style sockets and Windows sockets, allowing + * transparent TCP access. + */ + + +#include "runtime.hpp" +#include "socket_wrapper.hpp" + +#ifndef _WIN32 + #include + #include + #include + #include + #include + #include + #include + #include +#endif // _WIN32 + +#if defined(__sun) || defined(__SCO_VERSION__) + #include +#endif + +#ifdef _WIN32 + const int SOCKET_EINVAL = WSAEINVAL; + const int SOCKET_EWOULDBLOCK = WSAEWOULDBLOCK; + const int SOCKET_EAGAIN = WSAEWOULDBLOCK; +#else + const int SOCKET_EINVAL = EINVAL; + const int SOCKET_EWOULDBLOCK = EWOULDBLOCK; + const int SOCKET_EAGAIN = EAGAIN; +#endif // _WIN32 + + +namespace { + + +extern "C" long system_recv(void *ptr, void *buf, size_t count) +{ + yaSSL::socket_t *socket = (yaSSL::socket_t *) ptr; + return ::recv(*socket, reinterpret_cast(buf), count, 0); +} + + +extern "C" long system_send(void *ptr, const void *buf, size_t count) +{ + yaSSL::socket_t *socket = (yaSSL::socket_t *) ptr; + return ::send(*socket, reinterpret_cast(buf), count, 0); +} + + +} + + +namespace yaSSL { + + +Socket::Socket(socket_t s) + : socket_(s), wouldBlock_(false), nonBlocking_(false), + ptr_(&socket_), send_func_(system_send), recv_func_(system_recv) +{} + + +void Socket::set_fd(socket_t s) +{ + socket_ = s; +} + + +socket_t Socket::get_fd() const +{ + return socket_; +} + + +Socket::~Socket() +{ + // don't close automatically now +} + + +void Socket::closeSocket() +{ + if (socket_ != INVALID_SOCKET) { +#ifdef _WIN32 + closesocket(socket_); +#else + close(socket_); +#endif + socket_ = INVALID_SOCKET; + } +} + + +uint Socket::get_ready() const +{ +#ifdef _WIN32 + unsigned long ready = 0; + ioctlsocket(socket_, FIONREAD, &ready); +#else + /* + 64-bit Solaris requires the variable passed to + FIONREAD be a 32-bit value. + */ + unsigned int ready = 0; + ioctl(socket_, FIONREAD, &ready); +#endif + + return ready; +} + + +void Socket::set_transport_ptr(void *ptr) +{ + ptr_ = ptr; +} + + +void Socket::set_transport_recv_function(yaSSL_recv_func_t recv_func) +{ + recv_func_ = recv_func; +} + + +void Socket::set_transport_send_function(yaSSL_send_func_t send_func) +{ + send_func_ = send_func; +} + + +uint Socket::send(const byte* buf, unsigned int sz, unsigned int& written) +{ + const byte* pos = buf; + const byte* end = pos + sz; + + wouldBlock_ = false; + + /* Remove send()/recv() hooks once non-blocking send is implemented. */ + while (pos != end) { + int sent = send_func_(ptr_, pos, static_cast(end - pos)); + if (sent == -1) { + if (get_lastError() == SOCKET_EWOULDBLOCK || + get_lastError() == SOCKET_EAGAIN) { + wouldBlock_ = true; // would have blocked this time only + nonBlocking_ = true; // nonblocking, win32 only way to tell + return 0; + } + return static_cast(-1); + } + pos += sent; + written += sent; + } + + return sz; +} + + +uint Socket::receive(byte* buf, unsigned int sz) +{ + wouldBlock_ = false; + + int recvd = recv_func_(ptr_, buf, sz); + + // idea to seperate error from would block by arnetheduck@gmail.com + if (recvd == -1) { + if (get_lastError() == SOCKET_EWOULDBLOCK || + get_lastError() == SOCKET_EAGAIN) { + wouldBlock_ = true; // would have blocked this time only + nonBlocking_ = true; // socket nonblocking, win32 only way to tell + return 0; + } + } + else if (recvd == 0) + return static_cast(-1); + + return recvd; +} + + +void Socket::shutDown(int how) +{ + shutdown(socket_, how); +} + + +int Socket::get_lastError() +{ +#ifdef _WIN32 + return WSAGetLastError(); +#else + return errno; +#endif +} + + +bool Socket::WouldBlock() const +{ + return wouldBlock_; +} + + +bool Socket::IsNonBlocking() const +{ + return nonBlocking_; +} + + +void Socket::set_lastError(int errorCode) +{ +#ifdef _WIN32 + WSASetLastError(errorCode); +#else + errno = errorCode; +#endif +} + + +} // namespace diff --git a/mysql/extra/yassl/src/ssl.cpp b/mysql/extra/yassl/src/ssl.cpp new file mode 100644 index 0000000..39244a0 --- /dev/null +++ b/mysql/extra/yassl/src/ssl.cpp @@ -0,0 +1,1883 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* SSL source implements all openssl compatibility API functions + * + * TODO: notes are mostly api additions to allow compilation with mysql + * they don't affect normal modes but should be provided for completeness + + * stunnel functions at end of file + */ + + + +/* see man pages for function descriptions */ + +#include "runtime.hpp" +#include "openssl/ssl.h" +#include "handshake.hpp" +#include "yassl_int.hpp" +#include "md5.hpp" // for TaoCrypt MD5 size assert +#include "md4.hpp" // for TaoCrypt MD4 size assert +#include "file.hpp" // for TaoCrypt Source +#include "coding.hpp" // HexDecoder +#include "helpers.hpp" // for placement new hack +#include "rsa.hpp" // for TaoCrypt RSA key decode +#include "dsa.hpp" // for TaoCrypt DSA key decode +#include + +#ifdef _WIN32 + #include // FindFirstFile etc.. +#else + #include // file helper + #include // stat + #include // opendir +#endif + + +namespace yaSSL { + + + +int read_file(SSL_CTX* ctx, const char* file, int format, CertType type) +{ + int ret = SSL_SUCCESS; + + if (format != SSL_FILETYPE_ASN1 && format != SSL_FILETYPE_PEM) + return SSL_BAD_FILETYPE; + + if (file == NULL || !file[0]) + return SSL_BAD_FILE; + + FILE* input = fopen(file, "rb"); + if (!input) + return SSL_BAD_FILE; + + if (type == CA) { + // may have a bunch of CAs + x509* ptr; + while ( (ptr = PemToDer(input, Cert)) ) + ctx->AddCA(ptr); + + if (!feof(input)) { + fclose(input); + return SSL_BAD_FILE; + } + } + else { + x509*& x = (type == Cert) ? ctx->certificate_ : ctx->privateKey_; + + if (format == SSL_FILETYPE_ASN1) { + fseek(input, 0, SEEK_END); + long sz = ftell(input); + rewind(input); + x = NEW_YS x509(sz); // takes ownership + size_t bytes = fread(x->use_buffer(), sz, 1, input); + if (bytes != 1) { + fclose(input); + return SSL_BAD_FILE; + } + } + else { + EncryptedInfo info; + x = PemToDer(input, type, &info); + if (!x) { + fclose(input); + return SSL_BAD_FILE; + } + if (info.set) { + // decrypt + char password[80]; + pem_password_cb cb = ctx->GetPasswordCb(); + if (!cb) { + fclose(input); + return SSL_BAD_FILE; + } + int passwordSz = cb(password, sizeof(password), 0, + ctx->GetUserData()); + byte key[AES_256_KEY_SZ]; // max sizes + byte iv[AES_IV_SZ]; + + // use file's salt for key derivation, but not real iv + TaoCrypt::Source source(info.iv, info.ivSz); + TaoCrypt::HexDecoder dec(source); + memcpy(info.iv, source.get_buffer(), min((uint)sizeof(info.iv), + source.size())); + EVP_BytesToKey(info.name, "MD5", info.iv, (byte*)password, + passwordSz, 1, key, iv); + + mySTL::auto_ptr cipher; + if (strncmp(info.name, "DES-CBC", 7) == 0) + cipher.reset(NEW_YS DES); + else if (strncmp(info.name, "DES-EDE3-CBC", 13) == 0) + cipher.reset(NEW_YS DES_EDE); + else if (strncmp(info.name, "AES-128-CBC", 13) == 0) + cipher.reset(NEW_YS AES(AES_128_KEY_SZ)); + else if (strncmp(info.name, "AES-192-CBC", 13) == 0) + cipher.reset(NEW_YS AES(AES_192_KEY_SZ)); + else if (strncmp(info.name, "AES-256-CBC", 13) == 0) + cipher.reset(NEW_YS AES(AES_256_KEY_SZ)); + else { + fclose(input); + return SSL_BAD_FILE; + } + cipher->set_decryptKey(key, info.iv); + mySTL::auto_ptr newx(NEW_YS x509(x->get_length())); + cipher->decrypt(newx->use_buffer(), x->get_buffer(), + x->get_length()); + ysDelete(x); + x = newx.release(); + } + } + } + + if (type == PrivateKey && ctx->privateKey_) { + // see if key is valid early + TaoCrypt::Source rsaSource(ctx->privateKey_->get_buffer(), + ctx->privateKey_->get_length()); + TaoCrypt::RSA_PrivateKey rsaKey; + rsaKey.Initialize(rsaSource); + + if (rsaSource.GetError().What()) { + // rsa failed see if DSA works + + TaoCrypt::Source dsaSource(ctx->privateKey_->get_buffer(), + ctx->privateKey_->get_length()); + TaoCrypt::DSA_PrivateKey dsaKey; + dsaKey.Initialize(dsaSource); + + if (dsaSource.GetError().What()) { + // neither worked + ret = SSL_FAILURE; + } + } + } + + fclose(input); + return ret; +} + + +extern "C" { + + +SSL_METHOD* SSLv3_method() +{ + return SSLv3_client_method(); +} + + +SSL_METHOD* SSLv3_server_method() +{ + return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,0)); +} + + +SSL_METHOD* SSLv3_client_method() +{ + return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,0)); +} + + +SSL_METHOD* TLSv1_server_method() +{ + return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,1)); +} + + +SSL_METHOD* TLSv1_client_method() +{ + return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,1)); +} + + +SSL_METHOD* TLSv1_1_server_method() +{ + return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,2)); +} + + +SSL_METHOD* TLSv1_1_client_method() +{ + return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,2)); +} + + +SSL_METHOD* SSLv23_server_method() +{ + // compatibility only, no version 2 support, but does SSL 3 and TLS 1 + return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,2), true); +} + + +SSL_METHOD* SSLv23_client_method() +{ + // compatibility only, no version 2 support, but does SSL 3 and TLS 1 + // though it sends TLS1 hello not SSLv2 so SSLv3 only servers will decline + // TODO: maybe add support to send SSLv2 hello ??? + return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,2), true); +} + + +SSL_CTX* SSL_CTX_new(SSL_METHOD* method) +{ + return NEW_YS SSL_CTX(method); +} + + +void SSL_CTX_free(SSL_CTX* ctx) +{ + ysDelete(ctx); +} + + +SSL* SSL_new(SSL_CTX* ctx) +{ + return NEW_YS SSL(ctx); +} + + +void SSL_free(SSL* ssl) +{ + ysDelete(ssl); +} + + +int SSL_set_fd(SSL* ssl, YASSL_SOCKET_T fd) +{ + ssl->useSocket().set_fd(fd); + return SSL_SUCCESS; +} + + +YASSL_SOCKET_T SSL_get_fd(const SSL* ssl) +{ + return ssl->getSocket().get_fd(); +} + + +// if you get an error from connect see note at top of README +int SSL_connect(SSL* ssl) +{ + if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ)) + ssl->SetError(no_error); + + if (ssl->GetError() == YasslError(SSL_ERROR_WANT_WRITE)) { + + ssl->SetError(no_error); + ssl->SendWriteBuffered(); + if (!ssl->GetError()) + ssl->useStates().UseConnect() = + ConnectState(ssl->getStates().GetConnect() + 1); + } + + ClientState neededState; + + switch (ssl->getStates().GetConnect()) { + + case CONNECT_BEGIN : + sendClientHello(*ssl); + if (!ssl->GetError()) + ssl->useStates().UseConnect() = CLIENT_HELLO_SENT; + + case CLIENT_HELLO_SENT : + neededState = ssl->getSecurity().get_resuming() ? + serverFinishedComplete : serverHelloDoneComplete; + while (ssl->getStates().getClient() < neededState) { + if (ssl->GetError()) break; + processReply(*ssl); + // if resumption failed, reset needed state + if (neededState == serverFinishedComplete) + if (!ssl->getSecurity().get_resuming()) + neededState = serverHelloDoneComplete; + } + if (!ssl->GetError()) + ssl->useStates().UseConnect() = FIRST_REPLY_DONE; + + case FIRST_REPLY_DONE : + if(ssl->getCrypto().get_certManager().sendVerify()) + sendCertificate(*ssl); + + if (!ssl->getSecurity().get_resuming()) + sendClientKeyExchange(*ssl); + + if(ssl->getCrypto().get_certManager().sendVerify()) + sendCertificateVerify(*ssl); + + sendChangeCipher(*ssl); + sendFinished(*ssl, client_end); + ssl->flushBuffer(); + + if (!ssl->GetError()) + ssl->useStates().UseConnect() = FINISHED_DONE; + + case FINISHED_DONE : + if (!ssl->getSecurity().get_resuming()) + while (ssl->getStates().getClient() < serverFinishedComplete) { + if (ssl->GetError()) break; + processReply(*ssl); + } + if (!ssl->GetError()) + ssl->useStates().UseConnect() = SECOND_REPLY_DONE; + + case SECOND_REPLY_DONE : + ssl->verifyState(serverFinishedComplete); + ssl->useLog().ShowTCP(ssl->getSocket().get_fd()); + + if (ssl->GetError()) { + GetErrors().Add(ssl->GetError()); + return SSL_FATAL_ERROR; + } + return SSL_SUCCESS; + + default : + return SSL_FATAL_ERROR; // unkown state + } +} + + +int SSL_write(SSL* ssl, const void* buffer, int sz) +{ + return sendData(*ssl, buffer, sz); +} + + +int SSL_read(SSL* ssl, void* buffer, int sz) +{ + Data data(min(sz, MAX_RECORD_SIZE), static_cast(buffer)); + return receiveData(*ssl, data); +} + + +int SSL_accept(SSL* ssl) +{ + if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ)) + ssl->SetError(no_error); + + if (ssl->GetError() == YasslError(SSL_ERROR_WANT_WRITE)) { + + ssl->SetError(no_error); + ssl->SendWriteBuffered(); + if (!ssl->GetError()) + ssl->useStates().UseAccept() = + AcceptState(ssl->getStates().GetAccept() + 1); + } + + switch (ssl->getStates().GetAccept()) { + + case ACCEPT_BEGIN : + processReply(*ssl); + if (!ssl->GetError()) + ssl->useStates().UseAccept() = ACCEPT_FIRST_REPLY_DONE; + + case ACCEPT_FIRST_REPLY_DONE : + sendServerHello(*ssl); + + if (!ssl->getSecurity().get_resuming()) { + sendCertificate(*ssl); + + if (ssl->getSecurity().get_connection().send_server_key_) + sendServerKeyExchange(*ssl); + + if(ssl->getCrypto().get_certManager().verifyPeer()) + sendCertificateRequest(*ssl); + + sendServerHelloDone(*ssl); + ssl->flushBuffer(); + } + + if (!ssl->GetError()) + ssl->useStates().UseAccept() = SERVER_HELLO_DONE; + + case SERVER_HELLO_DONE : + if (!ssl->getSecurity().get_resuming()) { + while (ssl->getStates().getServer() < clientFinishedComplete) { + if (ssl->GetError()) break; + processReply(*ssl); + } + } + if (!ssl->GetError()) + ssl->useStates().UseAccept() = ACCEPT_SECOND_REPLY_DONE; + + case ACCEPT_SECOND_REPLY_DONE : + sendChangeCipher(*ssl); + sendFinished(*ssl, server_end); + ssl->flushBuffer(); + + if (!ssl->GetError()) + ssl->useStates().UseAccept() = ACCEPT_FINISHED_DONE; + + case ACCEPT_FINISHED_DONE : + if (ssl->getSecurity().get_resuming()) { + while (ssl->getStates().getServer() < clientFinishedComplete) { + if (ssl->GetError()) break; + processReply(*ssl); + } + } + if (!ssl->GetError()) + ssl->useStates().UseAccept() = ACCEPT_THIRD_REPLY_DONE; + + case ACCEPT_THIRD_REPLY_DONE : + ssl->useLog().ShowTCP(ssl->getSocket().get_fd()); + + if (ssl->GetError()) { + GetErrors().Add(ssl->GetError()); + return SSL_FATAL_ERROR; + } + return SSL_SUCCESS; + + default: + return SSL_FATAL_ERROR; // unknown state + } +} + + +int SSL_do_handshake(SSL* ssl) +{ + if (ssl->getSecurity().get_parms().entity_ == client_end) + return SSL_connect(ssl); + else + return SSL_accept(ssl); +} + + +int SSL_clear(SSL* ssl) +{ + GetErrors().Remove(); + + return SSL_SUCCESS; +} + + +int SSL_shutdown(SSL* ssl) +{ + if (!ssl->GetQuietShutdown()) { + Alert alert(warning, close_notify); + sendAlert(*ssl, alert); + } + ssl->useLog().ShowTCP(ssl->getSocket().get_fd(), true); + + GetErrors().Remove(); + + return SSL_SUCCESS; +} + + +void SSL_set_quiet_shutdown(SSL *ssl,int mode) +{ + ssl->SetQuietShutdown(mode != 0); +} + + +int SSL_get_quiet_shutdown(SSL *ssl) +{ + return ssl->GetQuietShutdown(); +} + + +/* on by default but allow user to turn off */ +long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode) +{ + if (mode == SSL_SESS_CACHE_OFF) + ctx->SetSessionCacheOff(); + + if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR) + ctx->SetSessionCacheFlushOff(); + + return SSL_SUCCESS; +} + + +SSL_SESSION* SSL_get_session(SSL* ssl) +{ + if (ssl->getSecurity().GetContext()->GetSessionCacheOff()) + return 0; + + return GetSessions().lookup( + ssl->getSecurity().get_connection().sessionID_); +} + + +int SSL_set_session(SSL* ssl, SSL_SESSION* session) +{ + if (ssl->getSecurity().GetContext()->GetSessionCacheOff()) + return SSL_FAILURE; + + ssl->set_session(session); + return SSL_SUCCESS; +} + + +int SSL_session_reused(SSL* ssl) +{ + return ssl->getSecurity().get_resuming(); +} + + +long SSL_SESSION_set_timeout(SSL_SESSION* sess, long t) +{ + if (!sess) + return SSL_ERROR_NONE; + + sess->SetTimeOut(t); + return SSL_SUCCESS; +} + + +long SSL_get_default_timeout(SSL* /*ssl*/) +{ + return DEFAULT_TIMEOUT; +} + + +void SSL_flush_sessions(SSL_CTX *ctx, long /* tm */) +{ + if (ctx->GetSessionCacheOff()) + return; + + GetSessions().Flush(); +} + + +const char* SSL_get_cipher_name(SSL* ssl) +{ + return SSL_get_cipher(ssl); +} + + +const char* SSL_get_cipher(SSL* ssl) +{ + return ssl->getSecurity().get_parms().cipher_name_; +} + + +// SSLv2 only, not implemented +char* SSL_get_shared_ciphers(SSL* /*ssl*/, char* buf, int len) +{ + return strncpy(buf, "Not Implemented, SSLv2 only", len); +} + + +const char* SSL_get_cipher_list(SSL* ssl, int priority) +{ + if (priority < 0 || priority >= MAX_CIPHERS) + return 0; + + if (ssl->getSecurity().get_parms().cipher_list_[priority][0]) + return ssl->getSecurity().get_parms().cipher_list_[priority]; + + return 0; +} + + +int SSL_CTX_set_cipher_list(SSL_CTX* ctx, const char* list) +{ + if (ctx->SetCipherList(list)) + return SSL_SUCCESS; + else + return SSL_FAILURE; +} + + +const char* SSL_get_version(SSL* ssl) +{ + static const char* version3 = "SSLv3"; + static const char* version31 = "TLSv1"; + static const char* version32 = "TLSv1.1"; + + if (ssl->isTLSv1_1()) + return version32; + else if(ssl->isTLS()) + return version31; + else + return version3; +} + +const char* SSLeay_version(int) +{ + static const char* version = "SSLeay yaSSL compatibility"; + return version; +} + + +int SSL_get_error(SSL* ssl, int /*previous*/) +{ + return ssl->getStates().What(); +} + + + +/* turn on yaSSL zlib compression + returns 0 for success, else error (not built in) + only need to turn on for client, becuase server on by default if built in + but calling for server will tell you whether it's available or not +*/ +int SSL_set_compression(SSL* ssl) /* Chad didn't rename to ya~ because it is prob. bug. */ +{ + return ssl->SetCompression(); +} + + + +X509* X509_Copy(X509 *x) +{ + if (x == 0) return NULL; + + X509_NAME* issuer = x->GetIssuer(); + X509_NAME* subject = x->GetSubject(); + ASN1_TIME* before = x->GetBefore(); + ASN1_TIME* after = x->GetAfter(); + + X509 *newX509 = NEW_YS X509(issuer->GetName(), issuer->GetLength(), + subject->GetName(), subject->GetLength(), + before, after, + issuer->GetCnPosition(), issuer->GetCnLength(), + subject->GetCnPosition(), subject->GetCnLength()); + + return newX509; +} + +X509* SSL_get_peer_certificate(SSL* ssl) +{ + return X509_Copy(ssl->getCrypto().get_certManager().get_peerX509()); +} + + +void X509_free(X509* x) +{ + ysDelete(x); +} + + +X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX* ctx) +{ + return ctx->current_cert; +} + + +int X509_STORE_CTX_get_error(X509_STORE_CTX* ctx) +{ + return ctx->error; +} + + +int X509_STORE_CTX_get_error_depth(X509_STORE_CTX* ctx) +{ + return ctx->error_depth; +} + +X509* PEM_read_X509(FILE *fp, X509 *x, + pem_password_cb cb, + void *u) +{ + if (fp == NULL) + return NULL; + + // Get x509 handle and encryption information + x509* ptr = PemToDer(fp, Cert); + if (!ptr) + return NULL; + + // Now decode x509 object. + TaoCrypt::SignerList signers; + TaoCrypt::Source source(ptr->get_buffer(), ptr->get_length()); + TaoCrypt::CertDecoder cert(source, true, &signers, true, TaoCrypt::CertDecoder::CA); + + if (cert.GetError().What()) { + ysDelete(ptr); + return NULL; + } + + // Ok. Now create X509 object. + size_t iSz = strlen(cert.GetIssuer()) + 1; + size_t sSz = strlen(cert.GetCommonName()) + 1; + ASN1_STRING beforeDate, afterDate; + beforeDate.data = (unsigned char *) cert.GetBeforeDate(); + beforeDate.type = cert.GetBeforeDateType(); + beforeDate.length = strlen((char *) beforeDate.data) + 1; + afterDate.data = (unsigned char *) cert.GetAfterDate(); + afterDate.type = cert.GetAfterDateType(); + afterDate.length = strlen((char *) afterDate.data) + 1; + + X509 *thisX509 = NEW_YS X509(cert.GetIssuer(), iSz, cert.GetCommonName(), + sSz, &beforeDate, &afterDate, + cert.GetIssuerCnStart(), cert.GetIssuerCnLength(), + cert.GetSubjectCnStart(), cert.GetSubjectCnLength()); + + + ysDelete(ptr); + return thisX509; +} + +// copy name into buffer, at most sz bytes, if buffer is null +// will malloc buffer, caller responsible for freeing +char* X509_NAME_oneline(X509_NAME* name, char* buffer, int sz) +{ + if (!name->GetName()) return buffer; + + int len = (int)strlen(name->GetName()) + 1; + int copySz = min(len, sz); + + if (!buffer) { + buffer = (char*)malloc(len); + if (!buffer) return buffer; + copySz = len; + } + + if (copySz == 0) + return buffer; + + memcpy(buffer, name->GetName(), copySz - 1); + buffer[copySz - 1] = 0; + + return buffer; +} + + +X509_NAME* X509_get_issuer_name(X509* x) +{ + return x->GetIssuer(); +} + + +X509_NAME* X509_get_subject_name(X509* x) +{ + return x->GetSubject(); +} + + +void SSL_load_error_strings() // compatibility only +{} + + +void SSL_set_connect_state(SSL*) +{ + // already a client by default +} + + +void SSL_set_accept_state(SSL* ssl) +{ + ssl->useSecurity().use_parms().entity_ = server_end; +} + + +long SSL_get_verify_result(SSL*) +{ + // won't get here if not OK + return X509_V_OK; +} + + +long SSL_CTX_sess_set_cache_size(SSL_CTX* /*ctx*/, long /*sz*/) +{ + // unlimited size, can't set for now + return 0; +} + + +long SSL_CTX_get_session_cache_mode(SSL_CTX*) +{ + // always 0, unlimited size for now + return 0; +} + + +long SSL_CTX_set_tmp_dh(SSL_CTX* ctx, DH* dh) +{ + if (ctx->SetDH(*dh)) + return SSL_SUCCESS; + else + return SSL_FAILURE; +} + + +int SSL_CTX_use_certificate_file(SSL_CTX* ctx, const char* file, int format) +{ + return read_file(ctx, file, format, Cert); +} + + +int SSL_CTX_use_PrivateKey_file(SSL_CTX* ctx, const char* file, int format) +{ + return read_file(ctx, file, format, PrivateKey); +} + + +void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, VerifyCallback vc) +{ + if (mode & SSL_VERIFY_PEER) + ctx->setVerifyPeer(); + + if (mode == SSL_VERIFY_NONE) + ctx->setVerifyNone(); + + if (mode & SSL_VERIFY_FAIL_IF_NO_PEER_CERT) + ctx->setFailNoCert(); + + ctx->setVerifyCallback(vc); +} + + +int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* file, + const char* path) +{ + int ret = SSL_FAILURE; + const int HALF_PATH = 128; + + if (file) ret = read_file(ctx, file, SSL_FILETYPE_PEM, CA); + + if (ret == SSL_SUCCESS && path) { + // call read_file for each reqular file in path +#ifdef _WIN32 + + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + + const int DELIMITER_SZ = 2; + const int DELIMITER_STAR_SZ = 3; + int pathSz = (int)strlen(path); + int nameSz = pathSz + DELIMITER_STAR_SZ + 1; // plus 1 for terminator + char* name = NEW_YS char[nameSz]; // directory specification + memset(name, 0, nameSz); + strncpy(name, path, nameSz - DELIMITER_STAR_SZ - 1); + strncat(name, "\\*", DELIMITER_STAR_SZ); + + hFind = FindFirstFile(name, &FindFileData); + if (hFind == INVALID_HANDLE_VALUE) { + ysArrayDelete(name); + return SSL_BAD_PATH; + } + + do { + if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { + int curSz = (int)strlen(FindFileData.cFileName); + if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) { + ysArrayDelete(name); + // plus 1 for terminator + nameSz = pathSz + curSz + DELIMITER_SZ + 1; + name = NEW_YS char[nameSz]; + } + memset(name, 0, nameSz); + strncpy(name, path, nameSz - curSz - DELIMITER_SZ - 1); + strncat(name, "\\", DELIMITER_SZ); + strncat(name, FindFileData.cFileName, + nameSz - pathSz - DELIMITER_SZ - 1); + ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA); + } + } while (ret == SSL_SUCCESS && FindNextFile(hFind, &FindFileData)); + + ysArrayDelete(name); + FindClose(hFind); + +#else // _WIN32 + DIR* dir = opendir(path); + if (!dir) return SSL_BAD_PATH; + + struct dirent* entry; + struct stat buf; + const int DELIMITER_SZ = 1; + int pathSz = (int)strlen(path); + int nameSz = pathSz + DELIMITER_SZ + 1; //plus 1 for null terminator + char* name = NEW_YS char[nameSz]; // directory specification + + while (ret == SSL_SUCCESS && (entry = readdir(dir))) { + int curSz = (int)strlen(entry->d_name); + if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) { + ysArrayDelete(name); + nameSz = pathSz + DELIMITER_SZ + curSz + 1; + name = NEW_YS char[nameSz]; + } + memset(name, 0, nameSz); + strncpy(name, path, nameSz - curSz - 1); + strncat(name, "/", DELIMITER_SZ); + strncat(name, entry->d_name, nameSz - pathSz - DELIMITER_SZ - 1); + + if (stat(name, &buf) < 0) { + ysArrayDelete(name); + closedir(dir); + return SSL_BAD_STAT; + } + + if (S_ISREG(buf.st_mode)) + ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA); + } + + ysArrayDelete(name); + closedir(dir); + +#endif + } + + return ret; +} + + +int SSL_CTX_set_default_verify_paths(SSL_CTX* /*ctx*/) +{ + // TODO: figure out way to set/store default path, then call load_verify + return SSL_NOT_IMPLEMENTED; +} + + +int SSL_CTX_set_session_id_context(SSL_CTX*, const unsigned char*, + unsigned int) +{ + // No application specific context needed for yaSSL + return SSL_SUCCESS; +} + + +int SSL_CTX_check_private_key(SSL_CTX* /*ctx*/) +{ + // TODO: check private against public for RSA match + return SSL_NOT_IMPLEMENTED; +} + + +// TODO: all session stats +long SSL_CTX_sess_accept(SSL_CTX* ctx) +{ + return ctx->GetStats().accept_; +} + + +long SSL_CTX_sess_connect(SSL_CTX* ctx) +{ + return ctx->GetStats().connect_; +} + + +long SSL_CTX_sess_accept_good(SSL_CTX* ctx) +{ + return ctx->GetStats().acceptGood_; +} + + +long SSL_CTX_sess_connect_good(SSL_CTX* ctx) +{ + return ctx->GetStats().connectGood_; +} + + +long SSL_CTX_sess_accept_renegotiate(SSL_CTX* ctx) +{ + return ctx->GetStats().acceptRenegotiate_; +} + + +long SSL_CTX_sess_connect_renegotiate(SSL_CTX* ctx) +{ + return ctx->GetStats().connectRenegotiate_; +} + + +long SSL_CTX_sess_hits(SSL_CTX* ctx) +{ + return ctx->GetStats().hits_; +} + + +long SSL_CTX_sess_cb_hits(SSL_CTX* ctx) +{ + return ctx->GetStats().cbHits_; +} + + +long SSL_CTX_sess_cache_full(SSL_CTX* ctx) +{ + return ctx->GetStats().cacheFull_; +} + + +long SSL_CTX_sess_misses(SSL_CTX* ctx) +{ + return ctx->GetStats().misses_; +} + + +long SSL_CTX_sess_timeouts(SSL_CTX* ctx) +{ + return ctx->GetStats().timeouts_; +} + + +long SSL_CTX_sess_number(SSL_CTX* ctx) +{ + return ctx->GetStats().number_; +} + + +long SSL_CTX_sess_get_cache_size(SSL_CTX* ctx) +{ + return ctx->GetStats().getCacheSize_; +} +// end session stats TODO: + + +int SSL_CTX_get_verify_mode(SSL_CTX* ctx) +{ + return ctx->GetStats().verifyMode_; +} + + +int SSL_get_verify_mode(SSL* ssl) +{ + return ssl->getSecurity().GetContext()->GetStats().verifyMode_; +} + + +int SSL_CTX_get_verify_depth(SSL_CTX* ctx) +{ + return ctx->GetStats().verifyDepth_; +} + + +int SSL_get_verify_depth(SSL* ssl) +{ + return ssl->getSecurity().GetContext()->GetStats().verifyDepth_; +} + + +long SSL_CTX_set_options(SSL_CTX* ctx, long options) +{ + ProtocolVersion pv= ctx->getMethod()->getVersion(); + bool multi_proto= ctx->getMethod()->multipleProtocol(); + unsigned long ssl_ctx_mask= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1; + + do + { + if (options == 0) + break; + // only TLSv1.1 + if ((options & ssl_ctx_mask) == ssl_ctx_mask) + { + pv.minor_= 2; + multi_proto= false; + break; + } + // only TLSv1 + ssl_ctx_mask= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1_1; + if((options & ssl_ctx_mask) == ssl_ctx_mask) + { + pv.minor_= 1; + multi_proto= false; + break; + } + // TLSv1.1 and TLSv1 + ssl_ctx_mask= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; + if((options & ssl_ctx_mask) == ssl_ctx_mask) + { + pv.minor_= 2; + multi_proto= true; + break; + } + }while(0); + + SSL_METHOD *meth= NEW_YS SSL_METHOD(ctx->getMethod()->getSide(), ProtocolVersion(3,pv.minor_), multi_proto); + ctx->SetMethod(meth); + return SSL_SUCCESS; +} + + +void SSL_CTX_set_info_callback(SSL_CTX*, void (*)()) +{ + // TDOD: +} + + +void OpenSSL_add_all_algorithms() // compatibility only +{} + + +int SSL_library_init() // compatiblity only +{ + return 1; +} + + +DH* DH_new(void) +{ + DH* dh = NEW_YS DH; + if (dh) + dh->p = dh->g = 0; + return dh; +} + + +void DH_free(DH* dh) +{ + ysDelete(dh->g); + ysDelete(dh->p); + ysDelete(dh); +} + + +// convert positive big-endian num of length sz into retVal, which may need to +// be created +BIGNUM* BN_bin2bn(const unsigned char* num, int sz, BIGNUM* retVal) +{ + bool created = false; + mySTL::auto_ptr bn; + + if (!retVal) { + created = true; + bn.reset(NEW_YS BIGNUM); + retVal = bn.get(); + } + + retVal->assign(num, sz); + + if (created) + return bn.release(); + else + return retVal; +} + + +unsigned long ERR_get_error_line_data(const char**, int*, const char**, int *) +{ + //return SSL_NOT_IMPLEMENTED; + return 0; +} + + +void ERR_print_errors_fp(FILE* /*fp*/) +{ + // need ssl access to implement TODO: + //fprintf(fp, "%s", ssl.get_states().errorString_.c_str()); +} + + +char* ERR_error_string(unsigned long errNumber, char* buffer) +{ + static char* msg = (char*)"Please supply a buffer for error string"; + + if (buffer) { + SetErrorString(YasslError(errNumber), buffer); + return buffer; + } + + return msg; +} + + +const char* X509_verify_cert_error_string(long /* error */) +{ + // TODO: + static const char* msg = "Not Implemented"; + return msg; +} + + +const EVP_MD* EVP_md5(void) +{ + static const char* type = "MD5"; + return type; +} + + +const EVP_CIPHER* EVP_des_ede3_cbc(void) +{ + static const char* type = "DES-EDE3-CBC"; + return type; +} + + +int EVP_BytesToKey(const EVP_CIPHER* type, const EVP_MD* md, const byte* salt, + const byte* data, int sz, int count, byte* key, byte* iv) +{ + // only support MD5 for now + if (strncmp(md, "MD5", 3)) return 0; + + int keyLen = 0; + int ivLen = 0; + + // only support CBC DES and AES for now + if (strncmp(type, "DES-CBC", 7) == 0) { + keyLen = DES_KEY_SZ; + ivLen = DES_IV_SZ; + } + else if (strncmp(type, "DES-EDE3-CBC", 12) == 0) { + keyLen = DES_EDE_KEY_SZ; + ivLen = DES_IV_SZ; + } + else if (strncmp(type, "AES-128-CBC", 11) == 0) { + keyLen = AES_128_KEY_SZ; + ivLen = AES_IV_SZ; + } + else if (strncmp(type, "AES-192-CBC", 11) == 0) { + keyLen = AES_192_KEY_SZ; + ivLen = AES_IV_SZ; + } + else if (strncmp(type, "AES-256-CBC", 11) == 0) { + keyLen = AES_256_KEY_SZ; + ivLen = AES_IV_SZ; + } + else + return 0; + + yaSSL::MD5 myMD; + uint digestSz = myMD.get_digestSize(); + byte digest[SHA_LEN]; // max size + + int keyLeft = keyLen; + int ivLeft = ivLen; + int keyOutput = 0; + + while (keyOutput < (keyLen + ivLen)) { + int digestLeft = digestSz; + // D_(i - 1) + if (keyOutput) // first time D_0 is empty + myMD.update(digest, digestSz); + // data + myMD.update(data, sz); + // salt + if (salt) + myMD.update(salt, EVP_SALT_SZ); + myMD.get_digest(digest); + // count + for (int j = 1; j < count; j++) { + myMD.update(digest, digestSz); + myMD.get_digest(digest); + } + + if (keyLeft) { + int store = min(keyLeft, static_cast(digestSz)); + memcpy(&key[keyLen - keyLeft], digest, store); + + keyOutput += store; + keyLeft -= store; + digestLeft -= store; + } + + if (ivLeft && digestLeft) { + int store = min(ivLeft, digestLeft); + memcpy(&iv[ivLen - ivLeft], &digest[digestSz - digestLeft], store); + + keyOutput += store; + ivLeft -= store; + } + } + return keyOutput; +} + + + +void DES_set_key_unchecked(const_DES_cblock* key, DES_key_schedule* schedule) +{ + memcpy(schedule, key, sizeof(const_DES_cblock)); +} + + +void DES_ede3_cbc_encrypt(const byte* input, byte* output, long sz, + DES_key_schedule* ks1, DES_key_schedule* ks2, + DES_key_schedule* ks3, DES_cblock* ivec, int enc) +{ + DES_EDE des; + byte key[DES_EDE_KEY_SZ]; + + memcpy(key, *ks1, DES_BLOCK); + memcpy(&key[DES_BLOCK], *ks2, DES_BLOCK); + memcpy(&key[DES_BLOCK * 2], *ks3, DES_BLOCK); + + if (enc) { + des.set_encryptKey(key, *ivec); + des.encrypt(output, input, sz); + } + else { + des.set_decryptKey(key, *ivec); + des.decrypt(output, input, sz); + } +} + + +// functions for libcurl +int RAND_status() +{ + return 1; /* TaoCrypt provides enough seed */ +} + + +int DES_set_key(const_DES_cblock* key, DES_key_schedule* schedule) +{ + memcpy(schedule, key, sizeof(const_DES_cblock)); + return 1; +} + + +void DES_set_odd_parity(DES_cblock* key) +{ + // not needed now for TaoCrypt +} + + +void DES_ecb_encrypt(DES_cblock* input, DES_cblock* output, + DES_key_schedule* key, int enc) +{ + DES des; + + if (enc) { + des.set_encryptKey(*key, 0); + des.encrypt(*output, *input, DES_BLOCK); + } + else { + des.set_decryptKey(*key, 0); + des.decrypt(*output, *input, DES_BLOCK); + } +} + + +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX* ctx, void* userdata) +{ + ctx->SetUserData(userdata); +} + + +X509* SSL_get_certificate(SSL* ssl) +{ + return ssl->getCrypto().get_certManager().get_selfX509(); +} + + +EVP_PKEY* SSL_get_privatekey(SSL* ssl) +{ + // only called, not used + return 0; +} + + +void SSL_SESSION_free(SSL_SESSION* session) +{ + // managed by singleton +} + + + +EVP_PKEY* X509_get_pubkey(X509* x) +{ + // called, not used though + return 0; +} + + +int EVP_PKEY_copy_parameters(EVP_PKEY* to, const EVP_PKEY* from) +{ + // called, not used though + return 0; +} + + +void EVP_PKEY_free(EVP_PKEY* pkey) +{ + // never allocated from above +} + + +void ERR_error_string_n(unsigned long e, char *buf, size_t len) +{ + if (len) ERR_error_string(e, buf); +} + + +void ERR_free_strings(void) +{ + // handled internally +} + + +void EVP_cleanup(void) +{ + // nothing to do yet +} + + +ASN1_TIME* X509_get_notBefore(X509* x) +{ + if (x) return x->GetBefore(); + return 0; +} + + +ASN1_TIME* X509_get_notAfter(X509* x) +{ + if (x) return x->GetAfter(); + return 0; +} + + +SSL_METHOD* SSLv2_client_method(void) /* will never work, no v 2 */ +{ + return 0; +} + + +SSL_SESSION* SSL_get1_session(SSL* ssl) /* what's ref count */ +{ + return SSL_get_session(ssl); +} + + +void GENERAL_NAMES_free(STACK_OF(GENERAL_NAME) *x) +{ + // no extension names supported yet +} + + +int sk_GENERAL_NAME_num(STACK_OF(GENERAL_NAME) *x) +{ + // no extension names supported yet + return 0; +} + + +GENERAL_NAME* sk_GENERAL_NAME_value(STACK_OF(GENERAL_NAME) *x, int i) +{ + // no extension names supported yet + return 0; +} + + +unsigned char* ASN1_STRING_data(ASN1_STRING* x) +{ + if (x) return x->data; + return 0; +} + + +int ASN1_STRING_length(ASN1_STRING* x) +{ + if (x) return x->length; + return 0; +} + + +int ASN1_STRING_type(ASN1_STRING *x) +{ + if (x) return x->type; + return 0; +} + + +int X509_NAME_get_index_by_NID(X509_NAME* name,int nid, int lastpos) +{ + int idx = -1; // not found + int cnPos = -1; + + switch (nid) { + case NID_commonName: + cnPos = name->GetCnPosition(); + if (lastpos < cnPos) + idx = cnPos; + break; + } + + return idx; +} + + +ASN1_STRING* X509_NAME_ENTRY_get_data(X509_NAME_ENTRY* ne) +{ + // the same in yaSSL + return ne; +} + + +X509_NAME_ENTRY* X509_NAME_get_entry(X509_NAME* name, int loc) +{ + return name->GetEntry(loc); +} + + +// already formatted, caller responsible for freeing *out +int ASN1_STRING_to_UTF8(unsigned char** out, ASN1_STRING* in) +{ + if (!in) return 0; + + *out = (unsigned char*)malloc(in->length + 1); + if (*out) { + memcpy(*out, in->data, in->length); + (*out)[in->length] = 0; + } + return in->length; +} + + +void* X509_get_ext_d2i(X509* x, int nid, int* crit, int* idx) +{ + // no extensions supported yet + return 0; +} + + +void MD4_Init(MD4_CTX* md4) +{ + // make sure we have a big enough buffer + typedef char ok[sizeof(md4->buffer) >= sizeof(TaoCrypt::MD4) ? 1 : -1]; + (void) sizeof(ok); + + // using TaoCrypt since no dynamic memory allocated + // and no destructor will be called + new (reinterpret_cast(md4->buffer)) TaoCrypt::MD4(); +} + + +void MD4_Update(MD4_CTX* md4, const void* data, unsigned long sz) +{ + reinterpret_cast(md4->buffer)->Update( + static_cast(data), static_cast(sz)); +} + + +void MD4_Final(unsigned char* hash, MD4_CTX* md4) +{ + reinterpret_cast(md4->buffer)->Final(hash); +} + + +void MD5_Init(MD5_CTX* md5) +{ + // make sure we have a big enough buffer + typedef char ok[sizeof(md5->buffer) >= sizeof(TaoCrypt::MD5) ? 1 : -1]; + (void) sizeof(ok); + + // using TaoCrypt since no dynamic memory allocated + // and no destructor will be called + new (reinterpret_cast(md5->buffer)) TaoCrypt::MD5(); +} + + +void MD5_Update(MD5_CTX* md5, const void* data, unsigned long sz) +{ + reinterpret_cast(md5->buffer)->Update( + static_cast(data), static_cast(sz)); +} + + +void MD5_Final(unsigned char* hash, MD5_CTX* md5) +{ + reinterpret_cast(md5->buffer)->Final(hash); +} + + +int RAND_bytes(unsigned char* buf, int num) +{ + RandomPool ran; + + if (ran.GetError()) return 0; + + ran.Fill(buf, num); + return 1; +} + + +int SSL_peek(SSL* ssl, void* buffer, int sz) +{ + Data data(min(sz, MAX_RECORD_SIZE), static_cast(buffer)); + return receiveData(*ssl, data, true); +} + + +int SSL_pending(SSL* ssl) +{ + // Just in case there's pending data that hasn't been processed yet... + char c; + SSL_peek(ssl, &c, 1); + + return ssl->bufferedData(); +} + + +void SSL_CTX_set_default_passwd_cb(SSL_CTX* ctx, pem_password_cb cb) +{ + ctx->SetPasswordCb(cb); +} + + +int SSLeay_add_ssl_algorithms() // compatibility only +{ + return 1; +} + + +void ERR_remove_state(unsigned long) +{ + GetErrors().Remove(); +} + + +int ERR_GET_REASON(int l) +{ + return l & 0xfff; +} + + +unsigned long err_helper(bool peek = false) +{ + int ysError = GetErrors().Lookup(peek); + + // translate cert error for libcurl, it uses OpenSSL hex code + switch (ysError) { + case TaoCrypt::SIG_OTHER_E: + return CERTFICATE_ERROR; + break; + default : + return 0; + } + + return 0; // shut up compiler +} + + +unsigned long ERR_peek_error() +{ + return err_helper(true); +} + + +unsigned long ERR_get_error() +{ + return err_helper(); +} + + + // functions for stunnel + + void RAND_screen() + { + // TODO: + } + + + const char* RAND_file_name(char*, size_t) + { + // TODO: + return 0; + } + + + int RAND_write_file(const char*) + { + // TODO: + return 0; + } + + + int RAND_load_file(const char*, long) + { + // TODO: + return 0; + } + + + void RSA_free(RSA*) + { + // TODO: + } + + + RSA* RSA_generate_key(int, unsigned long, void(*)(int, int, void*), void*) + { + // TODO: + return 0; + } + + + int X509_LOOKUP_add_dir(X509_LOOKUP*, const char*, long) + { + // TODO: + return SSL_SUCCESS; + } + + + int X509_LOOKUP_load_file(X509_LOOKUP*, const char*, long) + { + // TODO: + return SSL_SUCCESS; + } + + + X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void) + { + // TODO: + return 0; + } + + + X509_LOOKUP_METHOD* X509_LOOKUP_file(void) + { + // TODO: + return 0; + } + + + X509_LOOKUP* X509_STORE_add_lookup(X509_STORE*, X509_LOOKUP_METHOD*) + { + // TODO: + return 0; + } + + + int X509_STORE_get_by_subject(X509_STORE_CTX*, int, X509_NAME*, X509_OBJECT*) + { + // TODO: + return SSL_SUCCESS; + } + + + X509_STORE* X509_STORE_new(void) + { + // TODO: + return 0; + } + + char* SSL_alert_type_string_long(int) + { + // TODO: + return 0; + } + + + char* SSL_alert_desc_string_long(int) + { + // TODO: + return 0; + } + + + char* SSL_state_string_long(SSL*) + { + // TODO: + return 0; + } + + + void SSL_CTX_set_tmp_rsa_callback(SSL_CTX*, RSA*(*)(SSL*, int, int)) + { + // TDOD: + } + + + long SSL_CTX_set_timeout(SSL_CTX*, long) + { + // TDOD: + return SSL_SUCCESS; + } + + + int SSL_CTX_use_certificate_chain_file(SSL_CTX*, const char*) + { + // TDOD: + return SSL_SUCCESS; + } + + + int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX*, const char*, int) + { + // TDOD: + return SSL_SUCCESS; + } + + + int SSL_set_rfd(SSL*, int) + { + return SSL_SUCCESS; // TODO: + } + + + int SSL_set_wfd(SSL*, int) + { + return SSL_SUCCESS; // TODO: + } + + + int SSL_want_read(SSL*) + { + return 0; // TODO: + } + + + int SSL_want_write(SSL*) + { + return 0; // TODO: + } + + + void SSL_set_shutdown(SSL*, int) + { + // TODO: + } + + + SSL_CIPHER* SSL_get_current_cipher(SSL*) + { + // TODO: + return 0; + } + + + char* SSL_CIPHER_description(SSL_CIPHER*, char*, int) + { + // TODO: + return 0; + } + + + + // end stunnel needs + + char *yaSSL_ASN1_TIME_to_string(ASN1_TIME *time, char *buf, size_t len) + { + tm t; + static const char *month_names[12]= + { + "Jan","Feb","Mar","Apr","May","Jun", + "Jul","Aug","Sep","Oct","Nov","Dec" + }; + + TaoCrypt::ASN1_TIME_extract(time->data, time->type, &t); +#ifdef _WIN32 + _snprintf(buf, len, "%s %2d %02d:%02d:%02d %d GMT", +#else + snprintf(buf, len, "%s %2d %02d:%02d:%02d %d GMT", +#endif + month_names[t.tm_mon], t.tm_mday, t.tm_hour, t.tm_min, + t.tm_sec, t.tm_year + 1900); + return buf; + } + + + void yaSSL_transport_set_ptr(SSL *ssl, void *ptr) + { + ssl->useSocket().set_transport_ptr(ptr); + } + + + void yaSSL_transport_set_recv_function(SSL *ssl, yaSSL_recv_func_t func) + { + ssl->useSocket().set_transport_recv_function(func); + } + + + void yaSSL_transport_set_send_function(SSL *ssl, yaSSL_send_func_t func) + { + ssl->useSocket().set_transport_send_function(func); + } + +} // extern "C" +} // namespace diff --git a/mysql/extra/yassl/src/timer.cpp b/mysql/extra/yassl/src/timer.cpp new file mode 100644 index 0000000..a1b9063 --- /dev/null +++ b/mysql/extra/yassl/src/timer.cpp @@ -0,0 +1,80 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* timer.cpp implements a high res and low res timer + * +*/ + +#include "runtime.hpp" +#include "timer.hpp" + +#ifdef _WIN32 +#include +#else +#include +#endif + +namespace yaSSL { + +#ifdef _WIN32 + + timer_d timer() + { + static bool init(false); + static LARGE_INTEGER freq; + + if (!init) { + QueryPerformanceFrequency(&freq); + init = true; + } + + LARGE_INTEGER count; + QueryPerformanceCounter(&count); + + return static_cast(count.QuadPart) / freq.QuadPart; + } + + + uint lowResTimer() + { + return static_cast(timer()); + } + +#else // _WIN32 + + timer_d timer() + { + struct timeval tv; + gettimeofday(&tv, 0); + + return static_cast(tv.tv_sec) + + static_cast(tv.tv_usec) / 1000000; + } + + + uint lowResTimer() + { + struct timeval tv; + gettimeofday(&tv, 0); + + return tv.tv_sec; + } + + +#endif // _WIN32 +} // namespace yaSSL diff --git a/mysql/extra/yassl/src/yassl_error.cpp b/mysql/extra/yassl/src/yassl_error.cpp new file mode 100644 index 0000000..5169b7d --- /dev/null +++ b/mysql/extra/yassl/src/yassl_error.cpp @@ -0,0 +1,288 @@ +/* + Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* yaSSL error implements and an exception class + */ + +#include "runtime.hpp" +#include "yassl_error.hpp" +#include "error.hpp" // TaoCrypt error numbers +#include "openssl/ssl.h" // SSL_ERROR_WANT_READ +#include // strncpy + +#ifdef _MSC_VER + // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy + #pragma warning(disable: 4996) +#endif + +namespace yaSSL { + + +/* may bring back in future +Error::Error(const char* s, YasslError e, Library l) + : mySTL::runtime_error(s), error_(e), lib_(l) +{ +} + + +YasslError Error::get_number() const +{ + return error_; +} + + +Library Error::get_lib() const +{ + + return lib_; +} +*/ + + +void SetErrorString(YasslError error, char* buffer) +{ + using namespace TaoCrypt; + const int max = MAX_ERROR_SZ; // shorthand + int localError = error; // errors from a few enums + + switch (localError) { + + // yaSSL proper errors + case range_error : + strncpy(buffer, "buffer index error, out of range", max); + break; + + case realloc_error : + strncpy(buffer, "trying to realloc a fixed buffer", max); + break; + + case factory_error : + strncpy(buffer, "unknown factory create request", max); + break; + + case unknown_cipher : + strncpy(buffer, "trying to use an unknown cipher", max); + break; + + case prefix_error : + strncpy(buffer, "bad master secret derivation, prefix too big", max); + break; + + case record_layer : + strncpy(buffer, "record layer not ready yet", max); + break; + + case handshake_layer : + strncpy(buffer, "handshake layer not ready yet", max); + break; + + case out_of_order : + strncpy(buffer, "handshake message received in wrong order", max); + break; + + case bad_input : + strncpy(buffer, "bad cipher suite input", max); + break; + + case match_error : + strncpy(buffer, "unable to match a supported cipher suite", max); + break; + + case no_key_file : + strncpy(buffer, "the server needs a private key file", max); + break; + + case verify_error : + strncpy(buffer, "unable to verify peer checksum", max); + break; + + case send_error : + strncpy(buffer, "socket layer send error", max); + break; + + case receive_error : + strncpy(buffer, "socket layer receive error", max); + break; + + case certificate_error : + strncpy(buffer, "unable to proccess cerificate", max); + break; + + case privateKey_error : + strncpy(buffer, "unable to proccess private key, bad format", max); + break; + + case badVersion_error : + strncpy(buffer, "protocol version mismatch", max); + break; + + case compress_error : + strncpy(buffer, "compression error", max); + break; + + case decompress_error : + strncpy(buffer, "decompression error", max); + break; + + case pms_version_error : + strncpy(buffer, "bad PreMasterSecret version error", max); + break; + + case sanityCipher_error : + strncpy(buffer, "sanity check on cipher text size error", max); + break; + + case rsaSignFault_error: + strncpy(buffer, "rsa signature fault error", max); + break; + + // openssl errors + case SSL_ERROR_WANT_READ : + strncpy(buffer, "the read operation would block", max); + break; + + case SSL_ERROR_WANT_WRITE : + strncpy(buffer, "the write operation would block", max); + break; + + case CERTFICATE_ERROR : + strncpy(buffer, "Unable to verify certificate", max); + break; + + // TaoCrypt errors + case NO_ERROR_E : + strncpy(buffer, "not in error state", max); + break; + + case WINCRYPT_E : + strncpy(buffer, "bad wincrypt acquire", max); + break; + + case CRYPTGEN_E : + strncpy(buffer, "CryptGenRandom error", max); + break; + + case OPEN_RAN_E : + strncpy(buffer, "unable to use random device", max); + break; + + case READ_RAN_E : + strncpy(buffer, "unable to use random device", max); + break; + + case INTEGER_E : + strncpy(buffer, "ASN: bad DER Integer Header", max); + break; + + case SEQUENCE_E : + strncpy(buffer, "ASN: bad Sequence Header", max); + break; + + case SET_E : + strncpy(buffer, "ASN: bad Set Header", max); + break; + + case VERSION_E : + strncpy(buffer, "ASN: version length not 1", max); + break; + + case SIG_OID_E : + strncpy(buffer, "ASN: signature OID mismatch", max); + break; + + case BIT_STR_E : + strncpy(buffer, "ASN: bad BitString Header", max); + break; + + case UNKNOWN_OID_E : + strncpy(buffer, "ASN: unknown key OID type", max); + break; + + case OBJECT_ID_E : + strncpy(buffer, "ASN: bad Ojbect ID Header", max); + break; + + case TAG_NULL_E : + strncpy(buffer, "ASN: expected TAG NULL", max); + break; + + case EXPECT_0_E : + strncpy(buffer, "ASN: expected 0", max); + break; + + case OCTET_STR_E : + strncpy(buffer, "ASN: bad Octet String Header", max); + break; + + case TIME_E : + strncpy(buffer, "ASN: bad TIME", max); + break; + + case DATE_SZ_E : + strncpy(buffer, "ASN: bad Date Size", max); + break; + + case SIG_LEN_E : + strncpy(buffer, "ASN: bad Signature Length", max); + break; + + case UNKOWN_SIG_E : + strncpy(buffer, "ASN: unknown signature OID", max); + break; + + case UNKOWN_HASH_E : + strncpy(buffer, "ASN: unknown hash OID", max); + break; + + case DSA_SZ_E : + strncpy(buffer, "ASN: bad DSA r or s size", max); + break; + + case BEFORE_DATE_E : + strncpy(buffer, "ASN: before date in the future", max); + break; + + case AFTER_DATE_E : + strncpy(buffer, "ASN: after date in the past", max); + break; + + case SIG_CONFIRM_E : + strncpy(buffer, "ASN: bad self signature confirmation", max); + break; + + case SIG_OTHER_E : + strncpy(buffer, "ASN: bad other signature confirmation", max); + break; + + case CONTENT_E : + strncpy(buffer, "bad content processing", max); + break; + + case PEM_E : + strncpy(buffer, "bad PEM format processing", max); + break; + + default : + strncpy(buffer, "unknown error number", max); + } +} + + + +} // namespace yaSSL diff --git a/mysql/extra/yassl/src/yassl_imp.cpp b/mysql/extra/yassl/src/yassl_imp.cpp new file mode 100644 index 0000000..ea09777 --- /dev/null +++ b/mysql/extra/yassl/src/yassl_imp.cpp @@ -0,0 +1,2642 @@ +/* + Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* yaSSL source implements all SSL.v3 secification structures. + */ + +#include "runtime.hpp" +#include "yassl_int.hpp" +#include "handshake.hpp" + +#include "asn.hpp" // provide crypto wrapper?? + + + +namespace yaSSL { + + +namespace { // locals + +bool isTLS(ProtocolVersion pv) +{ + if (pv.major_ >= 3 && pv.minor_ >= 1) + return true; + + return false; +} + + +} // namespace (locals) + + +void hashHandShake(SSL&, const input_buffer&, uint); + + +ProtocolVersion::ProtocolVersion(uint8 maj, uint8 min) + : major_(maj), minor_(min) +{} + + +// construct key exchange with known ssl parms +void ClientKeyExchange::createKey(SSL& ssl) +{ + const ClientKeyFactory& ckf = ssl.getFactory().getClientKey(); + client_key_ = ckf.CreateObject(ssl.getSecurity().get_parms().kea_); + + if (!client_key_) + ssl.SetError(factory_error); +} + + +// construct key exchange with known ssl parms +void ServerKeyExchange::createKey(SSL& ssl) +{ + const ServerKeyFactory& skf = ssl.getFactory().getServerKey(); + server_key_ = skf.CreateObject(ssl.getSecurity().get_parms().kea_); + + if (!server_key_) + ssl.SetError(factory_error); +} + + +// build/set PreMaster secret and encrypt, client side +void EncryptedPreMasterSecret::build(SSL& ssl) +{ + opaque tmp[SECRET_LEN]; + memset(tmp, 0, sizeof(tmp)); + ssl.getCrypto().get_random().Fill(tmp, SECRET_LEN); + ProtocolVersion pv = ssl.getSecurity().get_connection().chVersion_; + tmp[0] = pv.major_; + tmp[1] = pv.minor_; + ssl.set_preMaster(tmp, SECRET_LEN); + + const CertManager& cert = ssl.getCrypto().get_certManager(); + RSA rsa(cert.get_peerKey(), cert.get_peerKeyLength()); + bool tls = ssl.isTLS(); // if TLS, put length for encrypted data + alloc(rsa.get_cipherLength() + (tls ? 2 : 0)); + byte* holder = secret_; + if (tls) { + byte len[2]; + c16toa(rsa.get_cipherLength(), len); + memcpy(secret_, len, sizeof(len)); + holder += 2; + } + rsa.encrypt(holder, tmp, SECRET_LEN, ssl.getCrypto().get_random()); +} + + +// build/set premaster and Client Public key, client side +void ClientDiffieHellmanPublic::build(SSL& ssl) +{ + DiffieHellman& dhServer = ssl.useCrypto().use_dh(); + DiffieHellman dhClient(dhServer); + + uint keyLength = dhClient.get_agreedKeyLength(); // pub and agree same + + alloc(keyLength, true); + dhClient.makeAgreement(dhServer.get_publicKey(), + dhServer.get_publicKeyLength()); + c16toa(keyLength, Yc_); + memcpy(Yc_ + KEY_OFFSET, dhClient.get_publicKey(), keyLength); + + ssl.set_preMaster(dhClient.get_agreedKey(), keyLength); +} + + +// build server exhange, server side +void DH_Server::build(SSL& ssl) +{ + DiffieHellman& dhServer = ssl.useCrypto().use_dh(); + + int pSz, gSz, pubSz; + dhServer.set_sizes(pSz, gSz, pubSz); + dhServer.get_parms(parms_.alloc_p(pSz), parms_.alloc_g(gSz), + parms_.alloc_pub(pubSz)); + + short sigSz = 0; + mySTL::auto_ptr auth; + const CertManager& cert = ssl.getCrypto().get_certManager(); + + if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) { + if (cert.get_keyType() != rsa_sa_algo) { + ssl.SetError(privateKey_error); + return; + } + auth.reset(NEW_YS RSA(cert.get_privateKey(), + cert.get_privateKeyLength(), false)); + } + else { + if (cert.get_keyType() != dsa_sa_algo) { + ssl.SetError(privateKey_error); + return; + } + auth.reset(NEW_YS DSS(cert.get_privateKey(), + cert.get_privateKeyLength(), false)); + sigSz += DSS_ENCODED_EXTRA; + } + + sigSz += auth->get_signatureLength(); + if (!sigSz) { + ssl.SetError(privateKey_error); + return; + } + + length_ = 8; // pLen + gLen + YsLen + SigLen + length_ += pSz + gSz + pubSz + sigSz; + + output_buffer tmp(length_); + byte len[2]; + // P + c16toa(pSz, len); + tmp.write(len, sizeof(len)); + tmp.write(parms_.get_p(), pSz); + // G + c16toa(gSz, len); + tmp.write(len, sizeof(len)); + tmp.write(parms_.get_g(), gSz); + // Ys + c16toa(pubSz, len); + tmp.write(len, sizeof(len)); + tmp.write(parms_.get_pub(), pubSz); + + // Sig + byte hash[FINISHED_SZ]; + MD5 md5; + SHA sha; + signature_ = NEW_YS byte[sigSz]; + + const Connection& conn = ssl.getSecurity().get_connection(); + // md5 + md5.update(conn.client_random_, RAN_LEN); + md5.update(conn.server_random_, RAN_LEN); + md5.update(tmp.get_buffer(), tmp.get_size()); + md5.get_digest(hash); + + // sha + sha.update(conn.client_random_, RAN_LEN); + sha.update(conn.server_random_, RAN_LEN); + sha.update(tmp.get_buffer(), tmp.get_size()); + sha.get_digest(&hash[MD5_LEN]); + + if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) { + auth->sign(signature_, hash, sizeof(hash), + ssl.getCrypto().get_random()); + // check for rsa signautre fault + if (!auth->verify(hash, sizeof(hash), signature_, + auth->get_signatureLength())) { + ssl.SetError(rsaSignFault_error); + return; + } + } + else { + auth->sign(signature_, &hash[MD5_LEN], SHA_LEN, + ssl.getCrypto().get_random()); + byte encoded[DSS_SIG_SZ + DSS_ENCODED_EXTRA]; + TaoCrypt::EncodeDSA_Signature(signature_, encoded); + memcpy(signature_, encoded, sizeof(encoded)); + } + + c16toa(sigSz, len); + tmp.write(len, sizeof(len)); + tmp.write(signature_, sigSz); + + // key message + keyMessage_ = NEW_YS opaque[length_]; + memcpy(keyMessage_, tmp.get_buffer(), tmp.get_size()); +} + + +// read PreMaster secret and decrypt, server side +void EncryptedPreMasterSecret::read(SSL& ssl, input_buffer& input) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + const CertManager& cert = ssl.getCrypto().get_certManager(); + RSA rsa(cert.get_privateKey(), cert.get_privateKeyLength(), false); + uint16 cipherLen = rsa.get_cipherLength(); + if (ssl.isTLS()) { + byte len[2]; + len[0] = input[AUTO]; + len[1] = input[AUTO]; + ato16(len, cipherLen); + } + alloc(cipherLen); + input.read(secret_, length_); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + opaque preMasterSecret[SECRET_LEN]; + memset(preMasterSecret, 0, sizeof(preMasterSecret)); + rsa.decrypt(preMasterSecret, secret_, length_, + ssl.getCrypto().get_random()); + + ProtocolVersion pv = ssl.getSecurity().get_connection().chVersion_; + if (pv.major_ != preMasterSecret[0] || pv.minor_ != preMasterSecret[1]) + ssl.SetError(pms_version_error); // continue deriving for timing attack + + ssl.set_preMaster(preMasterSecret, SECRET_LEN); + ssl.makeMasterSecret(); +} + + +EncryptedPreMasterSecret::EncryptedPreMasterSecret() + : secret_(0), length_(0) +{} + + +EncryptedPreMasterSecret::~EncryptedPreMasterSecret() +{ + ysArrayDelete(secret_); +} + + +int EncryptedPreMasterSecret::get_length() const +{ + return length_; +} + + +opaque* EncryptedPreMasterSecret::get_clientKey() const +{ + return secret_; +} + + +void EncryptedPreMasterSecret::alloc(int sz) +{ + length_ = sz; + secret_ = NEW_YS opaque[sz]; +} + + +// read client's public key, server side +void ClientDiffieHellmanPublic::read(SSL& ssl, input_buffer& input) +{ + if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) { + ssl.SetError(bad_input); + return; + } + + DiffieHellman& dh = ssl.useCrypto().use_dh(); + + uint16 keyLength; + byte tmp[2]; + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, keyLength); + + if (keyLength < dh.get_agreedKeyLength()/2) { + ssl.SetError(bad_input); + return; + } + + alloc(keyLength); + input.read(Yc_, keyLength); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + dh.makeAgreement(Yc_, keyLength); + + ssl.set_preMaster(dh.get_agreedKey(), dh.get_agreedKeyLength()); + ssl.makeMasterSecret(); +} + + +ClientDiffieHellmanPublic::ClientDiffieHellmanPublic() + : length_(0), Yc_(0) +{} + + +ClientDiffieHellmanPublic::~ClientDiffieHellmanPublic() +{ + ysArrayDelete(Yc_); +} + + +int ClientDiffieHellmanPublic::get_length() const +{ + return length_; +} + + +opaque* ClientDiffieHellmanPublic::get_clientKey() const +{ + return Yc_; +} + + +void ClientDiffieHellmanPublic::alloc(int sz, bool offset) +{ + length_ = sz + (offset ? KEY_OFFSET : 0); + Yc_ = NEW_YS opaque[length_]; +} + + +// read server's p, g, public key and sig, client side +void DH_Server::read(SSL& ssl, input_buffer& input) +{ + if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) { + ssl.SetError(bad_input); + return; + } + uint16 length, messageTotal = 6; // pSz + gSz + pubSz + byte tmp[2]; + + // p + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, length); + messageTotal += length; + + input.read(parms_.alloc_p(length), length); + if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) { + ssl.SetError(bad_input); + return; + } + + // g + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, length); + messageTotal += length; + + input.read(parms_.alloc_g(length), length); + if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) { + ssl.SetError(bad_input); + return; + } + + // pub + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, length); + messageTotal += length; + + input.read(parms_.alloc_pub(length), length); + if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) { + ssl.SetError(bad_input); + return; + } + + // save message for hash verify + input_buffer message(messageTotal); + input.set_current(input.get_current() - messageTotal); + input.read(message.get_buffer(), messageTotal); + message.add_size(messageTotal); + if (input.get_error() || input.get_remaining() < (uint)LENGTH_SZ) { + ssl.SetError(bad_input); + return; + } + + // signature + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, length); + + if (length == 0) { + ssl.SetError(bad_input); + return; + } + signature_ = NEW_YS byte[length]; + input.read(signature_, length); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + // verify signature + byte hash[FINISHED_SZ]; + MD5 md5; + SHA sha; + + const Connection& conn = ssl.getSecurity().get_connection(); + // md5 + md5.update(conn.client_random_, RAN_LEN); + md5.update(conn.server_random_, RAN_LEN); + md5.update(message.get_buffer(), message.get_size()); + md5.get_digest(hash); + + // sha + sha.update(conn.client_random_, RAN_LEN); + sha.update(conn.server_random_, RAN_LEN); + sha.update(message.get_buffer(), message.get_size()); + sha.get_digest(&hash[MD5_LEN]); + + const CertManager& cert = ssl.getCrypto().get_certManager(); + + if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) { + RSA rsa(cert.get_peerKey(), cert.get_peerKeyLength()); + if (!rsa.verify(hash, sizeof(hash), signature_, length)) + ssl.SetError(verify_error); + } + else { + byte decodedSig[DSS_SIG_SZ]; + length = TaoCrypt::DecodeDSA_Signature(decodedSig, signature_, length); + + DSS dss(cert.get_peerKey(), cert.get_peerKeyLength()); + if (!dss.verify(&hash[MD5_LEN], SHA_LEN, decodedSig, length)) + ssl.SetError(verify_error); + } + + // save input + ssl.useCrypto().SetDH(NEW_YS DiffieHellman(parms_.get_p(), + parms_.get_pSize(), parms_.get_g(), parms_.get_gSize(), + parms_.get_pub(), parms_.get_pubSize(), + ssl.getCrypto().get_random())); +} + + +DH_Server::DH_Server() + : signature_(0), length_(0), keyMessage_(0) +{} + + +DH_Server::~DH_Server() +{ + ysArrayDelete(keyMessage_); + ysArrayDelete(signature_); +} + + +int DH_Server::get_length() const +{ + return length_; +} + + +opaque* DH_Server::get_serverKey() const +{ + return keyMessage_; +} + + +// set available suites +Parameters::Parameters(ConnectionEnd ce, const Ciphers& ciphers, + ProtocolVersion pv, bool haveDH) : entity_(ce) +{ + pending_ = true; // suite not set yet + strncpy(cipher_name_, "NONE", 5); + + removeDH_ = !haveDH; // only use on server side for set suites + + if (ciphers.setSuites_) { // use user set list + suites_size_ = ciphers.suiteSz_; + memcpy(suites_, ciphers.suites_, ciphers.suiteSz_); + SetCipherNames(); + } + else + SetSuites(pv, ce == server_end && removeDH_); // defaults + +} + + +void Parameters::SetSuites(ProtocolVersion pv, bool removeDH, bool removeRSA, + bool removeDSA) +{ + int i = 0; + // available suites, best first + // when adding more, make sure cipher_names is updated and + // MAX_CIPHERS is big enough + + if (isTLS(pv)) { + if (!removeDH) { + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA; + } + if (!removeDSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA; + } + } + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_RSA_WITH_AES_256_CBC_SHA; + } + if (!removeDH) { + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA; + } + if (!removeDSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA; + } + } + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_RSA_WITH_AES_128_CBC_SHA; + suites_[i++] = 0x00; + suites_[i++] = TLS_RSA_WITH_AES_256_CBC_RMD160; + suites_[i++] = 0x00; + suites_[i++] = TLS_RSA_WITH_AES_128_CBC_RMD160; + suites_[i++] = 0x00; + suites_[i++] = TLS_RSA_WITH_3DES_EDE_CBC_RMD160; + } + if (!removeDH) { + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_RSA_WITH_AES_256_CBC_RMD160; + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_RSA_WITH_AES_128_CBC_RMD160; + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160; + } + if (!removeDSA) { + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_DSS_WITH_AES_256_CBC_RMD160; + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_DSS_WITH_AES_128_CBC_RMD160; + suites_[i++] = 0x00; + suites_[i++] = TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160; + } + } + } + + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = SSL_RSA_WITH_RC4_128_SHA; + suites_[i++] = 0x00; + suites_[i++] = SSL_RSA_WITH_RC4_128_MD5; + + suites_[i++] = 0x00; + suites_[i++] = SSL_RSA_WITH_3DES_EDE_CBC_SHA; + suites_[i++] = 0x00; + suites_[i++] = SSL_RSA_WITH_DES_CBC_SHA; + } + if (!removeDH) { + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA; + } + if (!removeDSA) { + suites_[i++] = 0x00; + suites_[i++] = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA; + } + if (!removeRSA) { + suites_[i++] = 0x00; + suites_[i++] = SSL_DHE_RSA_WITH_DES_CBC_SHA; + } + if (!removeDSA) { + suites_[i++] = 0x00; + suites_[i++] = SSL_DHE_DSS_WITH_DES_CBC_SHA; + } + } + + suites_size_ = i; + + SetCipherNames(); +} + + +void Parameters::SetCipherNames() +{ + const int suites = suites_size_ / 2; + int pos = 0; + + for (int j = 0; j < suites; j++) { + int index = suites_[j*2 + 1]; // every other suite is suite id + size_t len = strlen(cipher_names[index]) + 1; + strncpy(cipher_list_[pos++], cipher_names[index], len); + } + cipher_list_[pos][0] = 0; +} + + +// input operator for RecordLayerHeader, adjust stream +input_buffer& operator>>(input_buffer& input, RecordLayerHeader& hdr) +{ + hdr.type_ = ContentType(input[AUTO]); + hdr.version_.major_ = input[AUTO]; + hdr.version_.minor_ = input[AUTO]; + + // length + byte tmp[2]; + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, hdr.length_); + + return input; +} + + +// output operator for RecordLayerHeader +output_buffer& operator<<(output_buffer& output, const RecordLayerHeader& hdr) +{ + output[AUTO] = hdr.type_; + output[AUTO] = hdr.version_.major_; + output[AUTO] = hdr.version_.minor_; + + // length + byte tmp[2]; + c16toa(hdr.length_, tmp); + output[AUTO] = tmp[0]; + output[AUTO] = tmp[1]; + + return output; +} + + +// virtual input operator for Messages +input_buffer& operator>>(input_buffer& input, Message& msg) +{ + return msg.set(input); +} + +// virtual output operator for Messages +output_buffer& operator<<(output_buffer& output, const Message& msg) +{ + return msg.get(output); +} + + +// input operator for HandShakeHeader +input_buffer& operator>>(input_buffer& input, HandShakeHeader& hs) +{ + hs.type_ = HandShakeType(input[AUTO]); + + hs.length_[0] = input[AUTO]; + hs.length_[1] = input[AUTO]; + hs.length_[2] = input[AUTO]; + + return input; +} + + +// output operator for HandShakeHeader +output_buffer& operator<<(output_buffer& output, const HandShakeHeader& hdr) +{ + output[AUTO] = hdr.type_; + output.write(hdr.length_, sizeof(hdr.length_)); + return output; +} + + +// HandShake Header Processing function +void HandShakeHeader::Process(input_buffer& input, SSL& ssl) +{ + ssl.verifyState(*this); + if (ssl.GetError()) return; + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + const HandShakeFactory& hsf = ssl.getFactory().getHandShake(); + mySTL::auto_ptr hs(hsf.CreateObject(type_)); + if (!hs.get()) { + ssl.SetError(factory_error); + return; + } + + uint len = c24to32(length_); + if (len > input.get_remaining()) { + ssl.SetError(bad_input); + return; + } + hashHandShake(ssl, input, len); + + hs->set_length(len); + input >> *hs; + hs->Process(input, ssl); +} + + +ContentType HandShakeHeader::get_type() const +{ + return handshake; +} + + +uint16 HandShakeHeader::get_length() const +{ + return c24to32(length_); +} + + +HandShakeType HandShakeHeader::get_handshakeType() const +{ + return type_; +} + + +void HandShakeHeader::set_type(HandShakeType hst) +{ + type_ = hst; +} + + +void HandShakeHeader::set_length(uint32 u32) +{ + c32to24(u32, length_); +} + + +input_buffer& HandShakeHeader::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& HandShakeHeader::get(output_buffer& out) const +{ + return out << *this; +} + + + +int HandShakeBase::get_length() const +{ + return length_; +} + + +void HandShakeBase::set_length(int l) +{ + length_ = l; +} + + +// for building buffer's type field +HandShakeType HandShakeBase::get_type() const +{ + return no_shake; +} + + +input_buffer& HandShakeBase::set(input_buffer& in) +{ + return in; +} + + +output_buffer& HandShakeBase::get(output_buffer& out) const +{ + return out; +} + + +void HandShakeBase::Process(input_buffer&, SSL&) +{} + + +input_buffer& HelloRequest::set(input_buffer& in) +{ + return in; +} + + +output_buffer& HelloRequest::get(output_buffer& out) const +{ + return out; +} + + +void HelloRequest::Process(input_buffer&, SSL&) +{} + + +HandShakeType HelloRequest::get_type() const +{ + return hello_request; +} + + +// input operator for CipherSpec +input_buffer& operator>>(input_buffer& input, ChangeCipherSpec& cs) +{ + cs.type_ = CipherChoice(input[AUTO]); + return input; +} + +// output operator for CipherSpec +output_buffer& operator<<(output_buffer& output, const ChangeCipherSpec& cs) +{ + output[AUTO] = cs.type_; + return output; +} + + +ChangeCipherSpec::ChangeCipherSpec() + : type_(change_cipher_spec_choice) +{} + + +input_buffer& ChangeCipherSpec::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& ChangeCipherSpec::get(output_buffer& out) const +{ + return out << *this; +} + + +ContentType ChangeCipherSpec::get_type() const +{ + return change_cipher_spec; +} + + +uint16 ChangeCipherSpec::get_length() const +{ + return SIZEOF_ENUM; +} + + +// CipherSpec processing handler +void ChangeCipherSpec::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + // detect duplicate change_cipher + if (ssl.getSecurity().get_parms().pending_ == false) { + ssl.order_error(); + return; + } + + ssl.useSecurity().use_parms().pending_ = false; + if (ssl.getSecurity().get_resuming()) { + if (ssl.getSecurity().get_parms().entity_ == client_end) + buildFinished(ssl, ssl.useHashes().use_verify(), server); // server + } + else if (ssl.getSecurity().get_parms().entity_ == server_end) + buildFinished(ssl, ssl.useHashes().use_verify(), client); // client +} + + +Alert::Alert(AlertLevel al, AlertDescription ad) + : level_(al), description_(ad) +{} + + +ContentType Alert::get_type() const +{ + return alert; +} + + +uint16 Alert::get_length() const +{ + return SIZEOF_ENUM * 2; +} + + +input_buffer& Alert::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& Alert::get(output_buffer& out) const +{ + return out << *this; +} + + +// input operator for Alert +input_buffer& operator>>(input_buffer& input, Alert& a) +{ + a.level_ = AlertLevel(input[AUTO]); + a.description_ = AlertDescription(input[AUTO]); + + return input; +} + + +// output operator for Alert +output_buffer& operator<<(output_buffer& output, const Alert& a) +{ + output[AUTO] = a.level_; + output[AUTO] = a.description_; + return output; +} + + +// Alert processing handler +void Alert::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + if (ssl.getSecurity().get_parms().pending_ == false) { // encrypted alert + int aSz = get_length(); // alert size already read on input + opaque verify[SHA_LEN]; + const opaque* data = input.get_buffer() + input.get_current() - aSz; + + if (ssl.isTLS()) + TLS_hmac(ssl, verify, data, aSz, alert, true); + else + hmac(ssl, verify, data, aSz, alert, true); + + // read mac and skip fill + int digestSz = ssl.getCrypto().get_digest().get_digestSize(); + opaque mac[SHA_LEN]; + input.read(mac, digestSz); + + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + int ivExtra = 0; + opaque fill; + + if (ssl.isTLSv1_1()) + ivExtra = ssl.getCrypto().get_cipher().get_blockSize(); + int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra - + aSz - digestSz; + for (int i = 0; i < padSz; i++) + fill = input[AUTO]; + } + + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + // verify + if (memcmp(mac, verify, digestSz)) { + ssl.SetError(verify_error); + return; + } + } + if (level_ == fatal) { + ssl.useStates().useRecord() = recordNotReady; + ssl.useStates().useHandShake() = handShakeNotReady; + ssl.SetError(YasslError(description_)); + } +} + + +Data::Data() + : length_(0), buffer_(0), write_buffer_(0) +{} + + +Data::Data(uint16 len, opaque* b) + : length_(len), buffer_(b), write_buffer_(0) +{} + + +void Data::SetData(uint16 len, const opaque* buffer) +{ + length_ = len; + write_buffer_ = buffer; +} + +input_buffer& Data::set(input_buffer& in) +{ + return in; +} + + +output_buffer& Data::get(output_buffer& out) const +{ + return out << *this; +} + + +ContentType Data::get_type() const +{ + return application_data; +} + + +uint16 Data::get_length() const +{ + return length_; +} + + +void Data::set_length(uint16 l) +{ + length_ = l; +} + + +opaque* Data::set_buffer() +{ + return buffer_; +} + + +// output operator for Data +output_buffer& operator<<(output_buffer& output, const Data& data) +{ + output.write(data.write_buffer_, data.length_); + return output; +} + + +// check all bytes for equality +static int constant_compare(const byte* a, const byte* b, int len) +{ + int good = 0; + int bad = 0; + + for (int i = 0; i < len; i++) { + if (a[i] == b[i]) + good++; + else + bad++; + } + + if (good == len) + return 0; + else + return 0 - bad; // failure +} + + +// check bytes for pad value +static int pad_check(const byte* input, byte pad, int len) +{ + int good = 0; + int bad = 0; + + for (int i = 0; i < len; i++) { + if (input[i] == pad) + good++; + else + bad++; + } + + if (good == len) + return 0; + else + return 0 - bad; // failure +} + + +// get number of compression rounds +static inline int get_rounds(int pLen, int padLen, int t) +{ + int roundL1 = 1; // round ups + int roundL2 = 1; + + int L1 = COMPRESS_CONSTANT + pLen - t; + int L2 = COMPRESS_CONSTANT + pLen - padLen - 1 - t; + + L1 -= COMPRESS_UPPER; + L2 -= COMPRESS_UPPER; + + if ( (L1 % COMPRESS_LOWER) == 0) + roundL1 = 0; + if ( (L2 % COMPRESS_LOWER) == 0) + roundL2 = 0; + + L1 /= COMPRESS_LOWER; + L2 /= COMPRESS_LOWER; + + L1 += roundL1; + L2 += roundL2; + + return L1 - L2; +} + + +// do compression rounds on dummy data +static inline void compress_rounds(SSL& ssl, int rounds, const byte* dummy) +{ + if (rounds) { + Digest* digest = NULL; + + MACAlgorithm ma = ssl.getSecurity().get_parms().mac_algorithm_; + if (ma == sha) + digest = NEW_YS SHA; + else if (ma == md5) + digest = NEW_YS MD5; + else if (ma == rmd) + digest = NEW_YS RMD; + else + return; + + for (int i = 0; i < rounds; i++) + digest->update(dummy, COMPRESS_LOWER); + + ysDelete(digest); + } +} + + +// timing resistant pad verification +static int timing_verify(SSL& ssl, const byte* input, int padLen, int t, + int pLen) +{ + byte verify[SHA_LEN]; + byte dummy[MAX_PAD_SIZE]; + + memset(dummy, 1, sizeof(dummy)); + + if ( (t + padLen + 1) > pLen) { + pad_check(dummy, (byte)padLen, MAX_PAD_SIZE); + if (ssl.isTLS()) + TLS_hmac(ssl, verify, input, pLen - t, application_data, 1); + else + hmac(ssl, verify, input, pLen - t, application_data, 1); + constant_compare(verify, input + pLen - t, t); + + return -1; + } + + if (pad_check(input + pLen - (padLen + 1), (byte)padLen, padLen + 1) != 0) { + pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1); + if (ssl.isTLS()) + TLS_hmac(ssl, verify, input, pLen - t, application_data, 1); + else + hmac(ssl, verify, input, pLen - t, application_data, 1); + constant_compare(verify, input + pLen - t, t); + + return -1; + } + + pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1); + if (ssl.isTLS()) + TLS_hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data,1); + else + hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data, 1); + + compress_rounds(ssl, get_rounds(pLen, padLen, t), dummy); + + if (constant_compare(verify, input + (pLen - padLen - 1 - t), t) != 0) + return -1; + + return 0; +} + + +// Process handler for Data +void Data::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + int msgSz = ssl.getSecurity().get_parms().encrypt_size_; + int pad = 0, padSz = 0; + int ivExtra = 0; + int digestSz = ssl.getCrypto().get_digest().get_digestSize(); + const byte* rawData = input.get_buffer() + input.get_current(); + opaque verify[SHA_LEN]; + + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + if (ssl.isTLSv1_1()) // IV + ivExtra = ssl.getCrypto().get_cipher().get_blockSize(); + pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1); + padSz = 1; + + if (ssl.isTLS()) { + if (timing_verify(ssl, rawData, pad,digestSz, msgSz-ivExtra) != 0) { + ssl.SetError(verify_error); + return; + } + } + else { // SSLv3, some don't do this padding right + int sz3 = msgSz - digestSz - pad - 1; + hmac(ssl, verify, rawData, sz3, application_data, true); + if (constant_compare(verify, rawData + sz3, digestSz) != 0) { + ssl.SetError(verify_error); + return; + } + } + } + else { // stream + int streamSz = msgSz - digestSz; + if (ssl.isTLS()) + TLS_hmac(ssl, verify, rawData, streamSz, application_data, true); + else + hmac(ssl, verify, rawData, streamSz, application_data, true); + if (constant_compare(verify, rawData + streamSz, digestSz) != 0) { + ssl.SetError(verify_error); + return; + } + } + + int dataSz = msgSz - ivExtra - digestSz - pad - padSz; + + if (dataSz < 0 || dataSz > (MAX_RECORD_SIZE + COMPRESS_EXTRA)) { + ssl.SetError(bad_input); + return; + } + + // read data + if (dataSz) { // could be compressed + if (ssl.CompressionOn()) { + input_buffer tmp; + if (DeCompress(input, dataSz, tmp) == -1) { + ssl.SetError(decompress_error); + return; + } + ssl.addData(NEW_YS input_buffer(tmp.get_size(), + tmp.get_buffer(), tmp.get_size())); + } + else { + input_buffer* data; + ssl.addData(data = NEW_YS input_buffer(dataSz)); + input.read(data->get_buffer(), dataSz); + data->add_size(dataSz); + } + } + + // advance past mac and fill + input.set_current(input.get_current() + digestSz + pad + padSz); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } +} + + +// virtual input operator for HandShakes +input_buffer& operator>>(input_buffer& input, HandShakeBase& hs) +{ + return hs.set(input); +} + + +// virtual output operator for HandShakes +output_buffer& operator<<(output_buffer& output, const HandShakeBase& hs) +{ + return hs.get(output); +} + + +Certificate::Certificate(const x509* cert) : cert_(cert) +{ + if (cert) + set_length(cert_->get_length() + 2 * CERT_HEADER); // list and cert size + else + set_length(CERT_HEADER); // total blank cert size, just list header +} + + +const opaque* Certificate::get_buffer() const +{ + if (cert_) + return cert_->get_buffer(); + + return NULL; +} + + +// output operator for Certificate +output_buffer& operator<<(output_buffer& output, const Certificate& cert) +{ + uint sz = cert.get_length(); + opaque tmp[CERT_HEADER]; + + if ((int)sz > CERT_HEADER) + sz -= 2 * CERT_HEADER; // actual cert, not including headers + else { + sz = 0; // blank cert case + c32to24(sz, tmp); + output.write(tmp, CERT_HEADER); + + return output; + } + + c32to24(sz + CERT_HEADER, tmp); + output.write(tmp, CERT_HEADER); + c32to24(sz, tmp); + output.write(tmp, CERT_HEADER); + output.write(cert.get_buffer(), sz); + + return output; +} + + +// certificate processing handler +void Certificate::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + CertManager& cm = ssl.useCrypto().use_certManager(); + + uint32 list_sz; + byte tmp[3]; + + if (input.get_remaining() < sizeof(tmp)) { + ssl.SetError(YasslError(bad_input)); + return; + } + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + tmp[2] = input[AUTO]; + c24to32(tmp, list_sz); + + if (list_sz > (uint)MAX_RECORD_SIZE) { // sanity check + ssl.SetError(YasslError(bad_input)); + return; + } + + while (list_sz) { + // cert size + uint32 cert_sz; + + if (input.get_remaining() < sizeof(tmp)) { + ssl.SetError(YasslError(bad_input)); + return; + } + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + tmp[2] = input[AUTO]; + c24to32(tmp, cert_sz); + + if (cert_sz > (uint)MAX_RECORD_SIZE || input.get_remaining() < cert_sz){ + ssl.SetError(YasslError(bad_input)); + return; + } + if (cert_sz) { + x509* myCert; + cm.AddPeerCert(myCert = NEW_YS x509(cert_sz)); + input.read(myCert->use_buffer(), myCert->get_length()); + } + + list_sz -= cert_sz + CERT_HEADER; + } + if (int err = cm.Validate()) + ssl.SetError(YasslError(err)); + else if (ssl.getSecurity().get_parms().entity_ == client_end) + ssl.useStates().useClient() = serverCertComplete; +} + + +Certificate::Certificate() + : cert_(0) +{} + + +input_buffer& Certificate::set(input_buffer& in) +{ + return in; +} + + +output_buffer& Certificate::get(output_buffer& out) const +{ + return out << *this; +} + + +HandShakeType Certificate::get_type() const +{ + return certificate; +} + + +ServerDHParams::ServerDHParams() + : pSz_(0), gSz_(0), pubSz_(0), p_(0), g_(0), Ys_(0) +{} + + +ServerDHParams::~ServerDHParams() +{ + ysArrayDelete(Ys_); + ysArrayDelete(g_); + ysArrayDelete(p_); +} + + +int ServerDHParams::get_pSize() const +{ + return pSz_; +} + + +int ServerDHParams::get_gSize() const +{ + return gSz_; +} + + +int ServerDHParams::get_pubSize() const +{ + return pubSz_; +} + + +const opaque* ServerDHParams::get_p() const +{ + return p_; +} + + +const opaque* ServerDHParams::get_g() const +{ + return g_; +} + + +const opaque* ServerDHParams::get_pub() const +{ + return Ys_; +} + + +opaque* ServerDHParams::alloc_p(int sz) +{ + p_ = NEW_YS opaque[pSz_ = sz]; + return p_; +} + + +opaque* ServerDHParams::alloc_g(int sz) +{ + g_ = NEW_YS opaque[gSz_ = sz]; + return g_; +} + + +opaque* ServerDHParams::alloc_pub(int sz) +{ + Ys_ = NEW_YS opaque[pubSz_ = sz]; + return Ys_; +} + + +int ServerKeyBase::get_length() const +{ + return 0; +} + + +opaque* ServerKeyBase::get_serverKey() const +{ + return 0; +} + + +// input operator for ServerHello +input_buffer& operator>>(input_buffer& input, ServerHello& hello) +{ + // Protocol + hello.server_version_.major_ = input[AUTO]; + hello.server_version_.minor_ = input[AUTO]; + + // Random + input.read(hello.random_, RAN_LEN); + + // Session + hello.id_len_ = input[AUTO]; + if (hello.id_len_ > ID_LEN) { + input.set_error(); + return input; + } + if (hello.id_len_) + input.read(hello.session_id_, hello.id_len_); + + // Suites + hello.cipher_suite_[0] = input[AUTO]; + hello.cipher_suite_[1] = input[AUTO]; + + // Compression + hello.compression_method_ = CompressionMethod(input[AUTO]); + + return input; +} + + +// output operator for ServerHello +output_buffer& operator<<(output_buffer& output, const ServerHello& hello) +{ + // Protocol + output[AUTO] = hello.server_version_.major_; + output[AUTO] = hello.server_version_.minor_; + + // Random + output.write(hello.random_, RAN_LEN); + + // Session + output[AUTO] = hello.id_len_; + output.write(hello.session_id_, ID_LEN); + + // Suites + output[AUTO] = hello.cipher_suite_[0]; + output[AUTO] = hello.cipher_suite_[1]; + + // Compression + output[AUTO] = hello.compression_method_; + + return output; +} + + +// Server Hello processing handler +void ServerHello::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + if (ssl.GetMultiProtocol()) { // SSLv23 support + if (ssl.isTLS() && server_version_.minor_ < 1) + // downgrade to SSLv3 + ssl.useSecurity().use_connection().TurnOffTLS(); + else if (ssl.isTLSv1_1() && server_version_.minor_ == 1) + // downdrage to TLSv1 + ssl.useSecurity().use_connection().TurnOffTLS1_1(); + } + else if (ssl.isTLSv1_1() && server_version_.minor_ < 2) { + ssl.SetError(badVersion_error); + return; + } + else if (ssl.isTLS() && server_version_.minor_ < 1) { + ssl.SetError(badVersion_error); + return; + } + else if (!ssl.isTLS() && (server_version_.major_ == 3 && + server_version_.minor_ >= 1)) { + ssl.SetError(badVersion_error); + return; + } + if (cipher_suite_[0] != 0x00) { + ssl.SetError(unknown_cipher); + return; + } + ssl.set_pending(cipher_suite_[1]); + ssl.set_random(random_, server_end); + if (id_len_) + ssl.set_sessionID(session_id_); + else + ssl.useSecurity().use_connection().sessionID_Set_ = false; + + if (ssl.getSecurity().get_resuming()) { + if (memcmp(session_id_, ssl.getSecurity().get_resume().GetID(), + ID_LEN) == 0) { + ssl.set_masterSecret(ssl.getSecurity().get_resume().GetSecret()); + if (ssl.isTLS()) + ssl.deriveTLSKeys(); + else + ssl.deriveKeys(); + ssl.useStates().useClient() = serverHelloDoneComplete; + return; + } + else { + ssl.useSecurity().set_resuming(false); + ssl.useLog().Trace("server denied resumption"); + } + } + + if (ssl.CompressionOn() && !compression_method_) + ssl.UnSetCompression(); // server isn't supporting yaSSL zlib request + + ssl.useStates().useClient() = serverHelloComplete; +} + + +ServerHello::ServerHello() +{ + memset(random_, 0, RAN_LEN); + memset(session_id_, 0, ID_LEN); +} + + +ServerHello::ServerHello(ProtocolVersion pv, bool useCompression) + : server_version_(pv), + compression_method_(useCompression ? zlib : no_compression) +{ + memset(random_, 0, RAN_LEN); + memset(session_id_, 0, ID_LEN); +} + + +input_buffer& ServerHello::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& ServerHello::get(output_buffer& out) const +{ + return out << *this; +} + + +HandShakeType ServerHello::get_type() const +{ + return server_hello; +} + + +const opaque* ServerHello::get_random() const +{ + return random_; +} + + +// Server Hello Done processing handler +void ServerHelloDone::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + ssl.useStates().useClient() = serverHelloDoneComplete; +} + + +ServerHelloDone::ServerHelloDone() +{ + set_length(0); +} + + +input_buffer& ServerHelloDone::set(input_buffer& in) +{ + return in; +} + + +output_buffer& ServerHelloDone::get(output_buffer& out) const +{ + return out; +} + + +HandShakeType ServerHelloDone::get_type() const +{ + return server_hello_done; +} + + +int ClientKeyBase::get_length() const +{ + return 0; +} + + +opaque* ClientKeyBase::get_clientKey() const +{ + return 0; +} + + +// input operator for Client Hello +input_buffer& operator>>(input_buffer& input, ClientHello& hello) +{ + uint begin = input.get_current(); // could have extensions at end + + // Protocol + hello.client_version_.major_ = input[AUTO]; + hello.client_version_.minor_ = input[AUTO]; + + // Random + input.read(hello.random_, RAN_LEN); + + // Session + hello.id_len_ = input[AUTO]; + if (hello.id_len_) input.read(hello.session_id_, ID_LEN); + + // Suites + byte tmp[2]; + uint16 len; + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, len); + + hello.suite_len_ = min(len, static_cast(MAX_SUITE_SZ)); + input.read(hello.cipher_suites_, hello.suite_len_); + if (len > hello.suite_len_) // ignore extra suites + input.set_current(input.get_current() + len - hello.suite_len_); + + // Compression + hello.comp_len_ = input[AUTO]; + hello.compression_methods_ = no_compression; + while (hello.comp_len_--) { + CompressionMethod cm = CompressionMethod(input[AUTO]); + if (cm == zlib) + hello.compression_methods_ = zlib; + } + + uint read = input.get_current() - begin; + uint expected = hello.get_length(); + + // ignore client hello extensions for now + if (read < expected) + input.set_current(input.get_current() + expected - read); + + return input; +} + + +// output operaotr for Client Hello +output_buffer& operator<<(output_buffer& output, const ClientHello& hello) +{ + // Protocol + output[AUTO] = hello.client_version_.major_; + output[AUTO] = hello.client_version_.minor_; + + // Random + output.write(hello.random_, RAN_LEN); + + // Session + output[AUTO] = hello.id_len_; + if (hello.id_len_) output.write(hello.session_id_, ID_LEN); + + // Suites + byte tmp[2]; + c16toa(hello.suite_len_, tmp); + output[AUTO] = tmp[0]; + output[AUTO] = tmp[1]; + output.write(hello.cipher_suites_, hello.suite_len_); + + // Compression + output[AUTO] = hello.comp_len_; + output[AUTO] = hello.compression_methods_; + + return output; +} + + +// Client Hello processing handler +void ClientHello::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + // store version for pre master secret + ssl.useSecurity().use_connection().chVersion_ = client_version_; + + if (client_version_.major_ != 3) { + ssl.SetError(badVersion_error); + return; + } + if (ssl.GetMultiProtocol()) { // SSLv23 support + if (ssl.isTLS() && client_version_.minor_ < 1) { + // downgrade to SSLv3 + ssl.useSecurity().use_connection().TurnOffTLS(); + + ProtocolVersion pv = ssl.getSecurity().get_connection().version_; + bool removeDH = ssl.getSecurity().get_parms().removeDH_; + bool removeRSA = false; + bool removeDSA = false; + + const CertManager& cm = ssl.getCrypto().get_certManager(); + if (cm.get_keyType() == rsa_sa_algo) + removeDSA = true; + else + removeRSA = true; + + // reset w/ SSL suites + ssl.useSecurity().use_parms().SetSuites(pv, removeDH, removeRSA, + removeDSA); + } + else if (ssl.isTLSv1_1() && client_version_.minor_ == 1) + // downgrade to TLSv1, but use same suites + ssl.useSecurity().use_connection().TurnOffTLS1_1(); + } + else if (ssl.isTLSv1_1() && client_version_.minor_ < 2) { + ssl.SetError(badVersion_error); + return; + } + else if (ssl.isTLS() && client_version_.minor_ < 1) { + ssl.SetError(badVersion_error); + return; + } + else if (!ssl.isTLS() && client_version_.minor_ >= 1) { + ssl.SetError(badVersion_error); + return; + } + + ssl.set_random(random_, client_end); + + while (id_len_) { // trying to resume + SSL_SESSION* session = 0; + if (!ssl.getSecurity().GetContext()->GetSessionCacheOff()) + session = GetSessions().lookup(session_id_); + if (!session) { + ssl.useLog().Trace("session lookup failed"); + break; + } + ssl.set_session(session); + ssl.useSecurity().set_resuming(true); + ssl.matchSuite(session->GetSuite(), SUITE_LEN); + if (ssl.GetError()) return; + ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]); + ssl.set_masterSecret(session->GetSecret()); + + opaque serverRandom[RAN_LEN]; + ssl.getCrypto().get_random().Fill(serverRandom, sizeof(serverRandom)); + ssl.set_random(serverRandom, server_end); + if (ssl.isTLS()) + ssl.deriveTLSKeys(); + else + ssl.deriveKeys(); + ssl.useStates().useServer() = clientKeyExchangeComplete; + return; + } + ssl.matchSuite(cipher_suites_, suite_len_); + if (ssl.GetError()) return; + ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]); + + if (compression_methods_ == zlib) + ssl.SetCompression(); + + ssl.useStates().useServer() = clientHelloComplete; +} + + +input_buffer& ClientHello::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& ClientHello::get(output_buffer& out) const +{ + return out << *this; +} + + +HandShakeType ClientHello::get_type() const +{ + return client_hello; +} + + +const opaque* ClientHello::get_random() const +{ + return random_; +} + + +ClientHello::ClientHello() +{ + memset(random_, 0, RAN_LEN); +} + + +ClientHello::ClientHello(ProtocolVersion pv, bool useCompression) + : client_version_(pv), + compression_methods_(useCompression ? zlib : no_compression) +{ + memset(random_, 0, RAN_LEN); +} + + +// output operator for ServerKeyExchange +output_buffer& operator<<(output_buffer& output, const ServerKeyExchange& sk) +{ + output.write(sk.getKey(), sk.getKeyLength()); + return output; +} + + +// Server Key Exchange processing handler +void ServerKeyExchange::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + createKey(ssl); + if (ssl.GetError()) return; + server_key_->read(ssl, input); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + ssl.useStates().useClient() = serverKeyExchangeComplete; +} + + +ServerKeyExchange::ServerKeyExchange(SSL& ssl) +{ + createKey(ssl); +} + + +ServerKeyExchange::ServerKeyExchange() + : server_key_(0) +{} + + +ServerKeyExchange::~ServerKeyExchange() +{ + ysDelete(server_key_); +} + + +void ServerKeyExchange::build(SSL& ssl) +{ + server_key_->build(ssl); + set_length(server_key_->get_length()); +} + + +const opaque* ServerKeyExchange::getKey() const +{ + return server_key_->get_serverKey(); +} + + +int ServerKeyExchange::getKeyLength() const +{ + return server_key_->get_length(); +} + + +input_buffer& ServerKeyExchange::set(input_buffer& in) +{ + return in; // process does +} + + +output_buffer& ServerKeyExchange::get(output_buffer& out) const +{ + return out << *this; +} + + +HandShakeType ServerKeyExchange::get_type() const +{ + return server_key_exchange; +} + + +// CertificateRequest +CertificateRequest::CertificateRequest() + : typeTotal_(0) +{ + memset(certificate_types_, 0, sizeof(certificate_types_)); +} + + +CertificateRequest::~CertificateRequest() +{ + + STL::for_each(certificate_authorities_.begin(), + certificate_authorities_.end(), + del_ptr_zero()) ; +} + + +void CertificateRequest::Build() +{ + certificate_types_[0] = rsa_sign; + certificate_types_[1] = dss_sign; + + typeTotal_ = 2; + + uint16 authCount = 0; + uint16 authSz = 0; + + for (int j = 0; j < authCount; j++) { + int sz = REQUEST_HEADER + MIN_DIS_SIZE; + DistinguishedName dn; + certificate_authorities_.push_back(dn = NEW_YS byte[sz]); + + opaque tmp[REQUEST_HEADER]; + c16toa(MIN_DIS_SIZE, tmp); + memcpy(dn, tmp, sizeof(tmp)); + + // fill w/ junk for now + memcpy(dn, tmp, MIN_DIS_SIZE); + authSz += sz; + } + + set_length(SIZEOF_ENUM + typeTotal_ + REQUEST_HEADER + authSz); +} + + +input_buffer& CertificateRequest::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& CertificateRequest::get(output_buffer& out) const +{ + return out << *this; +} + + +// input operator for CertificateRequest +input_buffer& operator>>(input_buffer& input, CertificateRequest& request) +{ + // types + request.typeTotal_ = input[AUTO]; + if (request.typeTotal_ > CERT_TYPES) { + input.set_error(); + return input; + } + for (int i = 0; i < request.typeTotal_; i++) + request.certificate_types_[i] = ClientCertificateType(input[AUTO]); + + byte tmp[2]; + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + uint16 sz; + ato16(tmp, sz); + + // authorities + while (sz) { + uint16 dnSz; + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + ato16(tmp, dnSz); + + input.set_current(input.get_current() + dnSz); + + sz -= dnSz + REQUEST_HEADER; + + if (input.get_error()) + break; + } + + return input; +} + + +// output operator for CertificateRequest +output_buffer& operator<<(output_buffer& output, + const CertificateRequest& request) +{ + // types + output[AUTO] = request.typeTotal_; + for (int i = 0; i < request.typeTotal_; i++) + output[AUTO] = request.certificate_types_[i]; + + // authorities + opaque tmp[REQUEST_HEADER]; + c16toa(request.get_length() - SIZEOF_ENUM - + request.typeTotal_ - REQUEST_HEADER, tmp); + output.write(tmp, sizeof(tmp)); + + STL::list::const_iterator first = + request.certificate_authorities_.begin(); + STL::list::const_iterator last = + request.certificate_authorities_.end(); + while (first != last) { + uint16 sz; + ato16(*first, sz); + output.write(*first, sz + REQUEST_HEADER); + + ++first; + } + + return output; +} + + +// CertificateRequest processing handler +void CertificateRequest::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + CertManager& cm = ssl.useCrypto().use_certManager(); + + cm.setSendVerify(); + if (cm.get_cert() == NULL || cm.get_privateKey() == NULL) + cm.setSendBlankCert(); // send blank cert, OpenSSL requires now +} + + +HandShakeType CertificateRequest::get_type() const +{ + return certificate_request; +} + + +// CertificateVerify +CertificateVerify::CertificateVerify() : signature_(0) +{} + + +CertificateVerify::~CertificateVerify() +{ + ysArrayDelete(signature_); +} + + +void CertificateVerify::Build(SSL& ssl) +{ + build_certHashes(ssl, hashes_); + + uint16 sz = 0; + byte len[VERIFY_HEADER]; + mySTL::auto_array sig; + + // sign + const CertManager& cert = ssl.getCrypto().get_certManager(); + if (cert.get_keyType() == rsa_sa_algo) { + RSA rsa(cert.get_privateKey(), cert.get_privateKeyLength(), false); + + sz = rsa.get_cipherLength() + VERIFY_HEADER; + sig.reset(NEW_YS byte[sz]); + + c16toa(sz - VERIFY_HEADER, len); + memcpy(sig.get(), len, VERIFY_HEADER); + rsa.sign(sig.get() + VERIFY_HEADER, hashes_.md5_, sizeof(Hashes), + ssl.getCrypto().get_random()); + // check for rsa signautre fault + if (!rsa.verify(hashes_.md5_, sizeof(Hashes), sig.get() + VERIFY_HEADER, + rsa.get_cipherLength())) { + ssl.SetError(rsaSignFault_error); + return; + } + } + else { // DSA + DSS dss(cert.get_privateKey(), cert.get_privateKeyLength(), false); + + sz = DSS_SIG_SZ + DSS_ENCODED_EXTRA + VERIFY_HEADER; + sig.reset(NEW_YS byte[sz]); + + c16toa(sz - VERIFY_HEADER, len); + memcpy(sig.get(), len, VERIFY_HEADER); + dss.sign(sig.get() + VERIFY_HEADER, hashes_.sha_, SHA_LEN, + ssl.getCrypto().get_random()); + + byte encoded[DSS_SIG_SZ + DSS_ENCODED_EXTRA]; + TaoCrypt::EncodeDSA_Signature(sig.get() + VERIFY_HEADER, encoded); + memcpy(sig.get() + VERIFY_HEADER, encoded, sizeof(encoded)); + } + set_length(sz); + signature_ = sig.release(); +} + + +input_buffer& CertificateVerify::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& CertificateVerify::get(output_buffer& out) const +{ + return out << *this; +} + + +// input operator for CertificateVerify +input_buffer& operator>>(input_buffer& input, CertificateVerify& request) +{ + byte tmp[VERIFY_HEADER]; + tmp[0] = input[AUTO]; + tmp[1] = input[AUTO]; + + uint16 sz = 0; + ato16(tmp, sz); + request.set_length(sz); + + if (sz == 0) { + input.set_error(); + return input; + } + + request.signature_ = NEW_YS byte[sz]; + input.read(request.signature_, sz); + + return input; +} + + +// output operator for CertificateVerify +output_buffer& operator<<(output_buffer& output, + const CertificateVerify& verify) +{ + output.write(verify.signature_, verify.get_length()); + + return output; +} + + +// CertificateVerify processing handler +void CertificateVerify::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + const Hashes& hashVerify = ssl.getHashes().get_certVerify(); + const CertManager& cert = ssl.getCrypto().get_certManager(); + + if (cert.get_peerKeyType() == rsa_sa_algo) { + RSA rsa(cert.get_peerKey(), cert.get_peerKeyLength()); + + if (!rsa.verify(hashVerify.md5_, sizeof(hashVerify), signature_, + get_length())) + ssl.SetError(verify_error); + } + else { // DSA + byte decodedSig[DSS_SIG_SZ]; + TaoCrypt::DecodeDSA_Signature(decodedSig, signature_, get_length()); + + DSS dss(cert.get_peerKey(), cert.get_peerKeyLength()); + if (!dss.verify(hashVerify.sha_, SHA_LEN, decodedSig, get_length())) + ssl.SetError(verify_error); + } +} + + +HandShakeType CertificateVerify::get_type() const +{ + return certificate_verify; +} + + +// output operator for ClientKeyExchange +output_buffer& operator<<(output_buffer& output, const ClientKeyExchange& ck) +{ + output.write(ck.getKey(), ck.getKeyLength()); + return output; +} + + +// Client Key Exchange processing handler +void ClientKeyExchange::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + createKey(ssl); + if (ssl.GetError()) return; + client_key_->read(ssl, input); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + if (ssl.getCrypto().get_certManager().verifyPeer()) + build_certHashes(ssl, ssl.useHashes().use_certVerify()); + + ssl.useStates().useServer() = clientKeyExchangeComplete; +} + + +ClientKeyExchange::ClientKeyExchange(SSL& ssl) +{ + createKey(ssl); +} + + +ClientKeyExchange::ClientKeyExchange() + : client_key_(0) +{} + + +ClientKeyExchange::~ClientKeyExchange() +{ + ysDelete(client_key_); +} + + +void ClientKeyExchange::build(SSL& ssl) +{ + client_key_->build(ssl); + set_length(client_key_->get_length()); +} + +const opaque* ClientKeyExchange::getKey() const +{ + return client_key_->get_clientKey(); +} + + +int ClientKeyExchange::getKeyLength() const +{ + return client_key_->get_length(); +} + + +input_buffer& ClientKeyExchange::set(input_buffer& in) +{ + return in; +} + + +output_buffer& ClientKeyExchange::get(output_buffer& out) const +{ + return out << *this; +} + + +HandShakeType ClientKeyExchange::get_type() const +{ + return client_key_exchange; +} + + +// input operator for Finished +input_buffer& operator>>(input_buffer& input, Finished&) +{ + /* do in process */ + + return input; +} + +// output operator for Finished +output_buffer& operator<<(output_buffer& output, const Finished& fin) +{ + if (fin.get_length() == FINISHED_SZ) { + output.write(fin.hashes_.md5_, MD5_LEN); + output.write(fin.hashes_.sha_, SHA_LEN); + } + else // TLS_FINISHED_SZ + output.write(fin.hashes_.md5_, TLS_FINISHED_SZ); + + return output; +} + + +// Finished processing handler +void Finished::Process(input_buffer& input, SSL& ssl) +{ + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + // verify hashes + const Finished& verify = ssl.getHashes().get_verify(); + uint finishedSz = ssl.isTLS() ? TLS_FINISHED_SZ : FINISHED_SZ; + + input.read(hashes_.md5_, finishedSz); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + if (memcmp(&hashes_, &verify.hashes_, finishedSz)) { + ssl.SetError(verify_error); + return; + } + + // read verify mac + opaque verifyMAC[SHA_LEN]; + uint macSz = finishedSz + HANDSHAKE_HEADER; + + if (ssl.isTLS()) + TLS_hmac(ssl, verifyMAC, input.get_buffer() + input.get_current() + - macSz, macSz, handshake, true); + else + hmac(ssl, verifyMAC, input.get_buffer() + input.get_current() - macSz, + macSz, handshake, true); + + // read mac and fill + opaque mac[SHA_LEN]; // max size + int digestSz = ssl.getCrypto().get_digest().get_digestSize(); + input.read(mac, digestSz); + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + uint ivExtra = 0; + if (ssl.getSecurity().get_parms().cipher_type_ == block) + if (ssl.isTLSv1_1()) + ivExtra = ssl.getCrypto().get_cipher().get_blockSize(); + + opaque fill; + int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra - + HANDSHAKE_HEADER - finishedSz - digestSz; + for (int i = 0; i < padSz; i++) + fill = input[AUTO]; + if (input.get_error()) { + ssl.SetError(bad_input); + return; + } + + // verify mac + if (memcmp(mac, verifyMAC, digestSz)) { + ssl.SetError(verify_error); + return; + } + + // update states + ssl.useStates().useHandShake() = handShakeReady; + if (ssl.getSecurity().get_parms().entity_ == client_end) + ssl.useStates().useClient() = serverFinishedComplete; + else + ssl.useStates().useServer() = clientFinishedComplete; +} + + +Finished::Finished() +{ + set_length(FINISHED_SZ); +} + + +uint8* Finished::set_md5() +{ + return hashes_.md5_; +} + + +uint8* Finished::set_sha() +{ + return hashes_.sha_; +} + + +input_buffer& Finished::set(input_buffer& in) +{ + return in >> *this; +} + + +output_buffer& Finished::get(output_buffer& out) const +{ + return out << *this; +} + + +HandShakeType Finished::get_type() const +{ + return finished; +} + + +void clean(volatile opaque* p, uint sz, RandomPool& ran) +{ + uint i(0); + + for (i = 0; i < sz; ++i) + p[i] = 0; + + ran.Fill(const_cast(p), sz); + + for (i = 0; i < sz; ++i) + p[i] = 0; +} + + + +Connection::Connection(ProtocolVersion v, RandomPool& ran) + : pre_master_secret_(0), sequence_number_(0), peer_sequence_number_(0), + pre_secret_len_(0), send_server_key_(false), master_clean_(false), + TLS_(v.major_ >= 3 && v.minor_ >= 1), + TLSv1_1_(v.major_ >= 3 && v.minor_ >= 2), compression_(false), + version_(v), random_(ran) +{ + memset(sessionID_, 0, sizeof(sessionID_)); +} + + +Connection::~Connection() +{ + CleanMaster(); CleanPreMaster(); ysArrayDelete(pre_master_secret_); +} + + +void Connection::AllocPreSecret(uint sz) +{ + pre_master_secret_ = NEW_YS opaque[pre_secret_len_ = sz]; +} + + +void Connection::TurnOffTLS() +{ + TLS_ = false; + version_.minor_ = 0; +} + + +void Connection::TurnOffTLS1_1() +{ + TLSv1_1_ = false; + version_.minor_ = 1; +} + + +// wipeout master secret +void Connection::CleanMaster() +{ + if (!master_clean_) { + volatile opaque* p = master_secret_; + clean(p, SECRET_LEN, random_); + master_clean_ = true; + } +} + + +// wipeout pre master secret +void Connection::CleanPreMaster() +{ + if (pre_master_secret_) { + volatile opaque* p = pre_master_secret_; + clean(p, pre_secret_len_, random_); + + ysArrayDelete(pre_master_secret_); + pre_master_secret_ = 0; + } +} + + +// Create functions for message factory +Message* CreateCipherSpec() { return NEW_YS ChangeCipherSpec; } +Message* CreateAlert() { return NEW_YS Alert; } +Message* CreateHandShake() { return NEW_YS HandShakeHeader; } +Message* CreateData() { return NEW_YS Data; } + +// Create functions for handshake factory +HandShakeBase* CreateHelloRequest() { return NEW_YS HelloRequest; } +HandShakeBase* CreateClientHello() { return NEW_YS ClientHello; } +HandShakeBase* CreateServerHello() { return NEW_YS ServerHello; } +HandShakeBase* CreateCertificate() { return NEW_YS Certificate; } +HandShakeBase* CreateServerKeyExchange() { return NEW_YS ServerKeyExchange;} +HandShakeBase* CreateCertificateRequest() { return NEW_YS + CertificateRequest; } +HandShakeBase* CreateServerHelloDone() { return NEW_YS ServerHelloDone; } +HandShakeBase* CreateCertificateVerify() { return NEW_YS CertificateVerify;} +HandShakeBase* CreateClientKeyExchange() { return NEW_YS ClientKeyExchange;} +HandShakeBase* CreateFinished() { return NEW_YS Finished; } + +// Create functions for server key exchange factory +ServerKeyBase* CreateRSAServerKEA() { return NEW_YS RSA_Server; } +ServerKeyBase* CreateDHServerKEA() { return NEW_YS DH_Server; } +ServerKeyBase* CreateFortezzaServerKEA() { return NEW_YS Fortezza_Server; } + +// Create functions for client key exchange factory +ClientKeyBase* CreateRSAClient() { return NEW_YS + EncryptedPreMasterSecret; } +ClientKeyBase* CreateDHClient() { return NEW_YS + ClientDiffieHellmanPublic; } +ClientKeyBase* CreateFortezzaClient() { return NEW_YS FortezzaKeys; } + + +// Constructor calls this to Register compile time callbacks +void InitMessageFactory(MessageFactory& mf) +{ + mf.Reserve(4); + mf.Register(alert, CreateAlert); + mf.Register(change_cipher_spec, CreateCipherSpec); + mf.Register(handshake, CreateHandShake); + mf.Register(application_data, CreateData); +} + + +// Constructor calls this to Register compile time callbacks +void InitHandShakeFactory(HandShakeFactory& hsf) +{ + hsf.Reserve(10); + hsf.Register(hello_request, CreateHelloRequest); + hsf.Register(client_hello, CreateClientHello); + hsf.Register(server_hello, CreateServerHello); + hsf.Register(certificate, CreateCertificate); + hsf.Register(server_key_exchange, CreateServerKeyExchange); + hsf.Register(certificate_request, CreateCertificateRequest); + hsf.Register(server_hello_done, CreateServerHelloDone); + hsf.Register(certificate_verify, CreateCertificateVerify); + hsf.Register(client_key_exchange, CreateClientKeyExchange); + hsf.Register(finished, CreateFinished); +} + + +// Constructor calls this to Register compile time callbacks +void InitServerKeyFactory(ServerKeyFactory& skf) +{ + skf.Reserve(3); + skf.Register(rsa_kea, CreateRSAServerKEA); + skf.Register(diffie_hellman_kea, CreateDHServerKEA); + skf.Register(fortezza_kea, CreateFortezzaServerKEA); +} + + +// Constructor calls this to Register compile time callbacks +void InitClientKeyFactory(ClientKeyFactory& ckf) +{ + ckf.Reserve(3); + ckf.Register(rsa_kea, CreateRSAClient); + ckf.Register(diffie_hellman_kea, CreateDHClient); + ckf.Register(fortezza_kea, CreateFortezzaClient); +} + + +} // namespace diff --git a/mysql/extra/yassl/src/yassl_int.cpp b/mysql/extra/yassl/src/yassl_int.cpp new file mode 100644 index 0000000..a39965c --- /dev/null +++ b/mysql/extra/yassl/src/yassl_int.cpp @@ -0,0 +1,2826 @@ +/* Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* yaSSL internal source implements SSL supporting types not specified in the + * draft along with type conversion functions. + */ + +// First include (the generated) my_config.h, to get correct platform defines. +#include "my_config.h" +#ifdef _WIN32 +#include +#else +#include +#endif + +#include "runtime.hpp" +#include "yassl_int.hpp" +#include "handshake.hpp" +#include "timer.hpp" + +#ifdef HAVE_LIBZ + #include "zlib.h" +#endif + + +#ifdef YASSL_PURE_C + + void* operator new(size_t sz, yaSSL::new_t) + { + void* ptr = malloc(sz ? sz : 1); + if (!ptr) abort(); + + return ptr; + } + + + void operator delete(void* ptr, yaSSL::new_t) + { + if (ptr) free(ptr); + } + + + void* operator new[](size_t sz, yaSSL::new_t nt) + { + return ::operator new(sz, nt); + } + + + void operator delete[](void* ptr, yaSSL::new_t nt) + { + ::operator delete(ptr, nt); + } + + namespace yaSSL { + + new_t ys; // for yaSSL library new + + } + +#endif // YASSL_PURE_C + +/* for the definition of get_tty_password() */ +#include + +namespace yaSSL { + + + + + + +// convert a 32 bit integer into a 24 bit one +void c32to24(uint32 u32, uint24& u24) +{ + u24[0] = (u32 >> 16) & 0xff; + u24[1] = (u32 >> 8) & 0xff; + u24[2] = u32 & 0xff; +} + + +// convert a 24 bit integer into a 32 bit one +void c24to32(const uint24 u24, uint32& u32) +{ + u32 = 0; + u32 = (u24[0] << 16) | (u24[1] << 8) | u24[2]; +} + + +// convert with return for ease of use +uint32 c24to32(const uint24 u24) +{ + uint32 ret; + c24to32(u24, ret); + + return ret; +} + + +// using a for opaque since underlying type is unsgined char and o is not a +// good leading identifier + +// convert opaque to 16 bit integer +void ato16(const opaque* c, uint16& u16) +{ + u16 = 0; + u16 = (c[0] << 8) | (c[1]); +} + + +// convert (copy) opaque to 24 bit integer +void ato24(const opaque* c, uint24& u24) +{ + u24[0] = c[0]; + u24[1] = c[1]; + u24[2] = c[2]; +} + + +// convert 16 bit integer to opaque +void c16toa(uint16 u16, opaque* c) +{ + c[0] = (u16 >> 8) & 0xff; + c[1] = u16 & 0xff; +} + + +// convert 24 bit integer to opaque +void c24toa(const uint24 u24, opaque* c) +{ + c[0] = u24[0]; + c[1] = u24[1]; + c[2] = u24[2]; +} + + +// convert 32 bit integer to opaque +void c32toa(uint32 u32, opaque* c) +{ + c[0] = (u32 >> 24) & 0xff; + c[1] = (u32 >> 16) & 0xff; + c[2] = (u32 >> 8) & 0xff; + c[3] = u32 & 0xff; +} + + +States::States() : recordLayer_(recordReady), handshakeLayer_(preHandshake), + clientState_(serverNull), serverState_(clientNull), + connectState_(CONNECT_BEGIN), acceptState_(ACCEPT_BEGIN), + what_(no_error) {} + +const RecordLayerState& States::getRecord() const +{ + return recordLayer_; +} + + +const HandShakeState& States::getHandShake() const +{ + return handshakeLayer_; +} + + +const ClientState& States::getClient() const +{ + return clientState_; +} + + +const ServerState& States::getServer() const +{ + return serverState_; +} + + +const ConnectState& States::GetConnect() const +{ + return connectState_; +} + + +const AcceptState& States::GetAccept() const +{ + return acceptState_; +} + + +const char* States::getString() const +{ + return errorString_; +} + + +YasslError States::What() const +{ + return what_; +} + + +RecordLayerState& States::useRecord() +{ + return recordLayer_; +} + + +HandShakeState& States::useHandShake() +{ + return handshakeLayer_; +} + + +ClientState& States::useClient() +{ + return clientState_; +} + + +ServerState& States::useServer() +{ + return serverState_; +} + + +ConnectState& States::UseConnect() +{ + return connectState_; +} + + +AcceptState& States::UseAccept() +{ + return acceptState_; +} + + +char* States::useString() +{ + return errorString_; +} + + +void States::SetError(YasslError ye) +{ + what_ = ye; +} + + +// mark message recvd, check for duplicates, return 0 on success +int States::SetMessageRecvd(HandShakeType hst) +{ + switch (hst) { + case hello_request: + break; // could send more than one + + case client_hello: + if (recvdMessages_.gotClientHello_) + return -1; + recvdMessages_.gotClientHello_ = 1; + break; + + case server_hello: + if (recvdMessages_.gotServerHello_) + return -1; + recvdMessages_.gotServerHello_ = 1; + break; + + case certificate: + if (recvdMessages_.gotCert_) + return -1; + recvdMessages_.gotCert_ = 1; + break; + + case server_key_exchange: + if (recvdMessages_.gotServerKeyExchange_) + return -1; + recvdMessages_.gotServerKeyExchange_ = 1; + break; + + case certificate_request: + if (recvdMessages_.gotCertRequest_) + return -1; + recvdMessages_.gotCertRequest_ = 1; + break; + + case server_hello_done: + if (recvdMessages_.gotServerHelloDone_) + return -1; + recvdMessages_.gotServerHelloDone_ = 1; + break; + + case certificate_verify: + if (recvdMessages_.gotCertVerify_) + return -1; + recvdMessages_.gotCertVerify_ = 1; + break; + + case client_key_exchange: + if (recvdMessages_.gotClientKeyExchange_) + return -1; + recvdMessages_.gotClientKeyExchange_ = 1; + break; + + case finished: + if (recvdMessages_.gotFinished_) + return -1; + recvdMessages_.gotFinished_ = 1; + break; + + + default: + return -1; + + } + + return 0; +} + + +sslFactory::sslFactory() : + messageFactory_(InitMessageFactory), + handShakeFactory_(InitHandShakeFactory), + serverKeyFactory_(InitServerKeyFactory), + clientKeyFactory_(InitClientKeyFactory) +{} + + +const MessageFactory& sslFactory::getMessage() const +{ + return messageFactory_; +} + + +const HandShakeFactory& sslFactory::getHandShake() const +{ + return handShakeFactory_; +} + + +const ServerKeyFactory& sslFactory::getServerKey() const +{ + return serverKeyFactory_; +} + + +const ClientKeyFactory& sslFactory::getClientKey() const +{ + return clientKeyFactory_; +} + + +// extract context parameters and store +SSL::SSL(SSL_CTX* ctx) + : secure_(ctx->getMethod()->getVersion(), crypto_.use_random(), + ctx->getMethod()->getSide(), ctx->GetCiphers(), ctx, + ctx->GetDH_Parms().set_), quietShutdown_(false), has_data_(false) +{ + if (int err = crypto_.get_random().GetError()) { + SetError(YasslError(err)); + return; + } + + CertManager& cm = crypto_.use_certManager(); + cm.CopySelfCert(ctx->getCert()); + + bool serverSide = secure_.use_parms().entity_ == server_end; + + if (ctx->getKey()) { + if (int err = cm.SetPrivateKey(*ctx->getKey())) { + SetError(YasslError(err)); + return; + } + else if (serverSide && !(ctx->GetCiphers().setSuites_)) { + // remove RSA or DSA suites depending on cert key type + ProtocolVersion pv = secure_.get_connection().version_; + + bool removeDH = secure_.use_parms().removeDH_; + bool removeRSA = false; + bool removeDSA = false; + + if (cm.get_keyType() == rsa_sa_algo) + removeDSA = true; + else + removeRSA = true; + secure_.use_parms().SetSuites(pv, removeDH, removeRSA, removeDSA); + } + } + else if (serverSide) { + SetError(no_key_file); + return; + } + + if (ctx->getMethod()->verifyPeer()) + cm.setVerifyPeer(); + if (ctx->getMethod()->verifyNone()) + cm.setVerifyNone(); + if (ctx->getMethod()->failNoCert()) + cm.setFailNoCert(); + cm.setVerifyCallback(ctx->getVerifyCallback()); + + if (serverSide) + crypto_.SetDH(ctx->GetDH_Parms()); + + const SSL_CTX::CertList& ca = ctx->GetCA_List(); + SSL_CTX::CertList::const_iterator first(ca.begin()); + SSL_CTX::CertList::const_iterator last(ca.end()); + + while (first != last) { + if (int err = cm.CopyCaCert(*first)) { + SetError(YasslError(err)); + return; + } + ++first; + } +} + + +// store pending security parameters from Server Hello +void SSL::set_pending(Cipher suite) +{ + Parameters& parms = secure_.use_parms(); + + switch (suite) { + + case TLS_RSA_WITH_AES_256_CBC_SHA: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = sha; + parms.kea_ = rsa_kea; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = AES_256_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ)); + strncpy(parms.cipher_name_, cipher_names[TLS_RSA_WITH_AES_256_CBC_SHA], + MAX_SUITE_NAME); + break; + + case TLS_RSA_WITH_AES_128_CBC_SHA: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = sha; + parms.kea_ = rsa_kea; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = AES_128_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS AES); + strncpy(parms.cipher_name_, cipher_names[TLS_RSA_WITH_AES_128_CBC_SHA], + MAX_SUITE_NAME); + break; + + case SSL_RSA_WITH_3DES_EDE_CBC_SHA: + parms.bulk_cipher_algorithm_ = triple_des; + parms.mac_algorithm_ = sha; + parms.kea_ = rsa_kea; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = DES_EDE_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS DES_EDE); + strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_3DES_EDE_CBC_SHA] + , MAX_SUITE_NAME); + break; + + case SSL_RSA_WITH_DES_CBC_SHA: + parms.bulk_cipher_algorithm_ = des; + parms.mac_algorithm_ = sha; + parms.kea_ = rsa_kea; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = DES_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS DES); + strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_DES_CBC_SHA], + MAX_SUITE_NAME); + break; + + case SSL_RSA_WITH_RC4_128_SHA: + parms.bulk_cipher_algorithm_ = rc4; + parms.mac_algorithm_ = sha; + parms.kea_ = rsa_kea; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = RC4_KEY_SZ; + parms.iv_size_ = 0; + parms.cipher_type_ = stream; + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS RC4); + strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_RC4_128_SHA], + MAX_SUITE_NAME); + break; + + case SSL_RSA_WITH_RC4_128_MD5: + parms.bulk_cipher_algorithm_ = rc4; + parms.mac_algorithm_ = md5; + parms.kea_ = rsa_kea; + parms.hash_size_ = MD5_LEN; + parms.key_size_ = RC4_KEY_SZ; + parms.iv_size_ = 0; + parms.cipher_type_ = stream; + crypto_.setDigest(NEW_YS MD5); + crypto_.setCipher(NEW_YS RC4); + strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_RC4_128_MD5], + MAX_SUITE_NAME); + break; + + case SSL_DHE_RSA_WITH_DES_CBC_SHA: + parms.bulk_cipher_algorithm_ = des; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = DES_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS DES); + strncpy(parms.cipher_name_, cipher_names[SSL_DHE_RSA_WITH_DES_CBC_SHA], + MAX_SUITE_NAME); + break; + + case SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA: + parms.bulk_cipher_algorithm_ = triple_des; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = DES_EDE_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS DES_EDE); + strncpy(parms.cipher_name_, + cipher_names[SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA], MAX_SUITE_NAME); + break; + + case TLS_DHE_RSA_WITH_AES_256_CBC_SHA: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = AES_256_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ)); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_RSA_WITH_AES_256_CBC_SHA], MAX_SUITE_NAME); + break; + + case TLS_DHE_RSA_WITH_AES_128_CBC_SHA: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = AES_128_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS AES); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_RSA_WITH_AES_128_CBC_SHA], MAX_SUITE_NAME); + break; + + case SSL_DHE_DSS_WITH_DES_CBC_SHA: + parms.bulk_cipher_algorithm_ = des; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = DES_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS DES); + strncpy(parms.cipher_name_, cipher_names[SSL_DHE_DSS_WITH_DES_CBC_SHA], + MAX_SUITE_NAME); + break; + + case SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA: + parms.bulk_cipher_algorithm_ = triple_des; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = DES_EDE_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS DES_EDE); + strncpy(parms.cipher_name_, + cipher_names[SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA], MAX_SUITE_NAME); + break; + + case TLS_DHE_DSS_WITH_AES_256_CBC_SHA: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = AES_256_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ)); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_DSS_WITH_AES_256_CBC_SHA], MAX_SUITE_NAME); + break; + + case TLS_DHE_DSS_WITH_AES_128_CBC_SHA: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = sha; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = SHA_LEN; + parms.key_size_ = AES_128_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS SHA); + crypto_.setCipher(NEW_YS AES); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_DSS_WITH_AES_128_CBC_SHA], MAX_SUITE_NAME); + break; + + case TLS_RSA_WITH_AES_256_CBC_RMD160: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = rmd; + parms.kea_ = rsa_kea; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = AES_256_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ)); + strncpy(parms.cipher_name_, + cipher_names[TLS_RSA_WITH_AES_256_CBC_RMD160], MAX_SUITE_NAME); + break; + + case TLS_RSA_WITH_AES_128_CBC_RMD160: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = rmd; + parms.kea_ = rsa_kea; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = AES_128_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS AES); + strncpy(parms.cipher_name_, + cipher_names[TLS_RSA_WITH_AES_128_CBC_RMD160], MAX_SUITE_NAME); + break; + + case TLS_RSA_WITH_3DES_EDE_CBC_RMD160: + parms.bulk_cipher_algorithm_ = triple_des; + parms.mac_algorithm_ = rmd; + parms.kea_ = rsa_kea; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = DES_EDE_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS DES_EDE); + strncpy(parms.cipher_name_, + cipher_names[TLS_RSA_WITH_3DES_EDE_CBC_RMD160], MAX_SUITE_NAME); + break; + + case TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160: + parms.bulk_cipher_algorithm_ = triple_des; + parms.mac_algorithm_ = rmd; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = DES_EDE_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS DES_EDE); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160], + MAX_SUITE_NAME); + break; + + case TLS_DHE_RSA_WITH_AES_256_CBC_RMD160: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = rmd; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = AES_256_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ)); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_RSA_WITH_AES_256_CBC_RMD160], + MAX_SUITE_NAME); + break; + + case TLS_DHE_RSA_WITH_AES_128_CBC_RMD160: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = rmd; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = rsa_sa_algo; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = AES_128_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS AES); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_RSA_WITH_AES_128_CBC_RMD160], + MAX_SUITE_NAME); + break; + + case TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160: + parms.bulk_cipher_algorithm_ = triple_des; + parms.mac_algorithm_ = rmd; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = DES_EDE_KEY_SZ; + parms.iv_size_ = DES_IV_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS DES_EDE); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160], + MAX_SUITE_NAME); + break; + + case TLS_DHE_DSS_WITH_AES_256_CBC_RMD160: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = rmd; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = AES_256_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS AES(AES_256_KEY_SZ)); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_DSS_WITH_AES_256_CBC_RMD160], + MAX_SUITE_NAME); + break; + + case TLS_DHE_DSS_WITH_AES_128_CBC_RMD160: + parms.bulk_cipher_algorithm_ = aes; + parms.mac_algorithm_ = rmd; + parms.kea_ = diffie_hellman_kea; + parms.sig_algo_ = dsa_sa_algo; + parms.hash_size_ = RMD_LEN; + parms.key_size_ = AES_128_KEY_SZ; + parms.iv_size_ = AES_BLOCK_SZ; + parms.cipher_type_ = block; + secure_.use_connection().send_server_key_ = true; // eph + crypto_.setDigest(NEW_YS RMD); + crypto_.setCipher(NEW_YS AES); + strncpy(parms.cipher_name_, + cipher_names[TLS_DHE_DSS_WITH_AES_128_CBC_RMD160], + MAX_SUITE_NAME); + break; + + default: + SetError(unknown_cipher); + } +} + +#ifdef _WIN32 +typedef volatile LONG yassl_pthread_once_t; +#define YASSL_PTHREAD_ONCE_INIT 0 +#define YASSL_PTHREAD_ONCE_INPROGRESS 1 +#define YASSL_PTHREAD_ONCE_DONE 2 + +int yassl_pthread_once(yassl_pthread_once_t *once_control, + void (*init_routine)(void)) +{ + LONG state; + + /* + Do "dirty" read to find out if initialization is already done, to + save an interlocked operation in common case. Memory barriers are ensured by + Visual C++ volatile implementation. + */ + if (*once_control == YASSL_PTHREAD_ONCE_DONE) + return 0; + + state= InterlockedCompareExchange(once_control, YASSL_PTHREAD_ONCE_INPROGRESS, + YASSL_PTHREAD_ONCE_INIT); + + switch(state) + { + case YASSL_PTHREAD_ONCE_INIT: + /* This is initializer thread */ + (*init_routine)(); + *once_control= YASSL_PTHREAD_ONCE_DONE; + break; + + case YASSL_PTHREAD_ONCE_INPROGRESS: + /* init_routine in progress. Wait for its completion */ + while(*once_control == YASSL_PTHREAD_ONCE_INPROGRESS) + { + Sleep(1); + } + break; + case YASSL_PTHREAD_ONCE_DONE: + /* Nothing to do */ + break; + } + return 0; +} +#else +#define yassl_pthread_once_t pthread_once_t +#if defined(PTHREAD_ONCE_INITIALIZER) +#define YASSL_PTHREAD_ONCE_INIT PTHREAD_ONCE_INITIALIZER +#else +#define YASSL_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT +#endif +#define yassl_pthread_once(C,F) pthread_once(C,F) +#endif // _WIN32 + +// store peer's random +void SSL::set_random(const opaque* random, ConnectionEnd sender) +{ + if (sender == client_end) + memcpy(secure_.use_connection().client_random_, random, RAN_LEN); + else + memcpy(secure_.use_connection().server_random_, random, RAN_LEN); +} + + +// store client pre master secret +void SSL::set_preMaster(const opaque* pre, uint sz) +{ + uint i(0); // trim leading zeros + uint fullSz(sz); + + while (i++ < fullSz && *pre == 0) { + sz--; + pre++; + } + + if (sz == 0) { + SetError(bad_input); + return; + } + + secure_.use_connection().AllocPreSecret(sz); + memcpy(secure_.use_connection().pre_master_secret_, pre, sz); +} + + +// set yaSSL zlib type compression +int SSL::SetCompression() +{ +#ifdef HAVE_LIBZ + secure_.use_connection().compression_ = true; + return 0; +#else + return -1; // not built in +#endif +} + + +// unset yaSSL zlib type compression +void SSL::UnSetCompression() +{ + secure_.use_connection().compression_ = false; +} + + +// is yaSSL zlib compression on +bool SSL::CompressionOn() const +{ + return secure_.get_connection().compression_; +} + + +// store master secret +void SSL::set_masterSecret(const opaque* sec) +{ + memcpy(secure_.use_connection().master_secret_, sec, SECRET_LEN); +} + +// store server issued id +void SSL::set_sessionID(const opaque* sessionID) +{ + memcpy(secure_.use_connection().sessionID_, sessionID, ID_LEN); + secure_.use_connection().sessionID_Set_ = true; +} + + +// store error +void SSL::SetError(YasslError ye) +{ + states_.SetError(ye); + //strncpy(states_.useString(), e.what(), mySTL::named_exception::NAME_SIZE); + // TODO: add string here +} + + +// set the quiet shutdown mode (close_nofiy not sent or received on shutdown) +void SSL::SetQuietShutdown(bool mode) +{ + quietShutdown_ = mode; +} + + +Buffers& SSL::useBuffers() +{ + return buffers_; +} + + +// locals +namespace { + +// DeriveKeys and MasterSecret helper sets prefix letters +static bool setPrefix(opaque* sha_input, int i) +{ + switch (i) { + case 0: + memcpy(sha_input, "A", 1); + break; + case 1: + memcpy(sha_input, "BB", 2); + break; + case 2: + memcpy(sha_input, "CCC", 3); + break; + case 3: + memcpy(sha_input, "DDDD", 4); + break; + case 4: + memcpy(sha_input, "EEEEE", 5); + break; + case 5: + memcpy(sha_input, "FFFFFF", 6); + break; + case 6: + memcpy(sha_input, "GGGGGGG", 7); + break; + default: + return false; // prefix_error + } + return true; +} + + +const char handshake_order[] = "Out of order HandShake Message!"; + + +} // namespcae for locals + + +void SSL::order_error() +{ + SetError(out_of_order); +} + + +// Create and store the master secret see page 32, 6.1 +void SSL::makeMasterSecret() +{ + if (GetError()) return; + + if (isTLS()) + makeTLSMasterSecret(); + else { + opaque sha_output[SHA_LEN]; + + const uint& preSz = secure_.get_connection().pre_secret_len_; + output_buffer md5_input(preSz + SHA_LEN); + output_buffer sha_input(PREFIX + preSz + 2 * RAN_LEN); + + MD5 md5; + SHA sha; + + md5_input.write(secure_.get_connection().pre_master_secret_, preSz); + + for (int i = 0; i < MASTER_ROUNDS; ++i) { + opaque prefix[PREFIX]; + if (!setPrefix(prefix, i)) { + SetError(prefix_error); + return; + } + + sha_input.set_current(0); + sha_input.write(prefix, i + 1); + + sha_input.write(secure_.get_connection().pre_master_secret_,preSz); + sha_input.write(secure_.get_connection().client_random_, RAN_LEN); + sha_input.write(secure_.get_connection().server_random_, RAN_LEN); + sha.get_digest(sha_output, sha_input.get_buffer(), + sha_input.get_size()); + + md5_input.set_current(preSz); + md5_input.write(sha_output, SHA_LEN); + md5.get_digest(&secure_.use_connection().master_secret_[i*MD5_LEN], + md5_input.get_buffer(), md5_input.get_size()); + } + deriveKeys(); + } + secure_.use_connection().CleanPreMaster(); +} + + +// create TLSv1 master secret +void SSL::makeTLSMasterSecret() +{ + opaque seed[SEED_LEN]; + + memcpy(seed, secure_.get_connection().client_random_, RAN_LEN); + memcpy(&seed[RAN_LEN], secure_.get_connection().server_random_, RAN_LEN); + + PRF(secure_.use_connection().master_secret_, SECRET_LEN, + secure_.get_connection().pre_master_secret_, + secure_.get_connection().pre_secret_len_, + master_label, MASTER_LABEL_SZ, + seed, SEED_LEN); + + deriveTLSKeys(); +} + + +// derive mac, write, and iv keys for server and client, see page 34, 6.2.2 +void SSL::deriveKeys() +{ + int length = 2 * secure_.get_parms().hash_size_ + + 2 * secure_.get_parms().key_size_ + + 2 * secure_.get_parms().iv_size_; + int rounds = (length + MD5_LEN - 1 ) / MD5_LEN; + input_buffer key_data(rounds * MD5_LEN); + + opaque sha_output[SHA_LEN]; + opaque md5_input[SECRET_LEN + SHA_LEN]; + opaque sha_input[KEY_PREFIX + SECRET_LEN + 2 * RAN_LEN]; + + MD5 md5; + SHA sha; + + memcpy(md5_input, secure_.get_connection().master_secret_, SECRET_LEN); + + for (int i = 0; i < rounds; ++i) { + int j = i + 1; + if (!setPrefix(sha_input, i)) { + SetError(prefix_error); + return; + } + + memcpy(&sha_input[j], secure_.get_connection().master_secret_, + SECRET_LEN); + memcpy(&sha_input[j+SECRET_LEN], + secure_.get_connection().server_random_, RAN_LEN); + memcpy(&sha_input[j + SECRET_LEN + RAN_LEN], + secure_.get_connection().client_random_, RAN_LEN); + sha.get_digest(sha_output, sha_input, + sizeof(sha_input) - KEY_PREFIX + j); + + memcpy(&md5_input[SECRET_LEN], sha_output, SHA_LEN); + md5.get_digest(key_data.get_buffer() + i * MD5_LEN, + md5_input, sizeof(md5_input)); + } + storeKeys(key_data.get_buffer()); +} + + +// derive mac, write, and iv keys for server and client +void SSL::deriveTLSKeys() +{ + int length = 2 * secure_.get_parms().hash_size_ + + 2 * secure_.get_parms().key_size_ + + 2 * secure_.get_parms().iv_size_; + opaque seed[SEED_LEN]; + input_buffer key_data(length); + + memcpy(seed, secure_.get_connection().server_random_, RAN_LEN); + memcpy(&seed[RAN_LEN], secure_.get_connection().client_random_, RAN_LEN); + + PRF(key_data.get_buffer(), length, secure_.get_connection().master_secret_, + SECRET_LEN, key_label, KEY_LABEL_SZ, seed, SEED_LEN); + + storeKeys(key_data.get_buffer()); +} + + +// store mac, write, and iv keys for client and server +void SSL::storeKeys(const opaque* key_data) +{ + int sz = secure_.get_parms().hash_size_; + memcpy(secure_.use_connection().client_write_MAC_secret_, key_data, sz); + int i = sz; + memcpy(secure_.use_connection().server_write_MAC_secret_,&key_data[i], sz); + i += sz; + + sz = secure_.get_parms().key_size_; + memcpy(secure_.use_connection().client_write_key_, &key_data[i], sz); + i += sz; + memcpy(secure_.use_connection().server_write_key_, &key_data[i], sz); + i += sz; + + sz = secure_.get_parms().iv_size_; + memcpy(secure_.use_connection().client_write_IV_, &key_data[i], sz); + i += sz; + memcpy(secure_.use_connection().server_write_IV_, &key_data[i], sz); + + setKeys(); +} + + +// set encrypt/decrypt keys and ivs +void SSL::setKeys() +{ + Connection& conn = secure_.use_connection(); + + if (secure_.get_parms().entity_ == client_end) { + crypto_.use_cipher().set_encryptKey(conn.client_write_key_, + conn.client_write_IV_); + crypto_.use_cipher().set_decryptKey(conn.server_write_key_, + conn.server_write_IV_); + } + else { + crypto_.use_cipher().set_encryptKey(conn.server_write_key_, + conn.server_write_IV_); + crypto_.use_cipher().set_decryptKey(conn.client_write_key_, + conn.client_write_IV_); + } +} + + + +// local functors +namespace yassl_int_cpp_local1 { // for explicit templates + +struct SumData { + uint total_; + SumData() : total_(0) {} + void operator()(input_buffer* data) { total_ += data->get_remaining(); } +}; + + +struct SumBuffer { + uint total_; + SumBuffer() : total_(0) {} + void operator()(output_buffer* buffer) { total_ += buffer->get_size(); } +}; + +} // namespace for locals +using namespace yassl_int_cpp_local1; + + +uint SSL::bufferedData() +{ + return STL::for_each(buffers_.getData().begin(),buffers_.getData().end(), + SumData()).total_; +} + + +// use input buffer to fill data +void SSL::fillData(Data& data) +{ + if (GetError()) return; + uint dataSz = data.get_length(); // input, data size to fill + size_t elements = buffers_.getData().size(); + + data.set_length(0); // output, actual data filled + dataSz = min(dataSz, bufferedData()); + + for (size_t i = 0; i < elements; i++) { + input_buffer* front = buffers_.getData().front(); + uint frontSz = front->get_remaining(); + uint readSz = min(dataSz - data.get_length(), frontSz); + + front->read(data.set_buffer() + data.get_length(), readSz); + data.set_length(data.get_length() + readSz); + + if (readSz == frontSz) { + buffers_.useData().pop_front(); + ysDelete(front); + } + if (data.get_length() == dataSz) + break; + } + + if (buffers_.getData().size() == 0) has_data_ = false; // none left +} + + +// like Fill but keep data in buffer +void SSL::PeekData(Data& data) +{ + if (GetError()) return; + uint dataSz = data.get_length(); // input, data size to fill + size_t elements = buffers_.getData().size(); + + data.set_length(0); // output, actual data filled + dataSz = min(dataSz, bufferedData()); + + Buffers::inputList::iterator front = buffers_.useData().begin(); + + while (elements) { + uint frontSz = (*front)->get_remaining(); + uint readSz = min(dataSz - data.get_length(), frontSz); + uint before = (*front)->get_current(); + + (*front)->read(data.set_buffer() + data.get_length(), readSz); + data.set_length(data.get_length() + readSz); + (*front)->set_current(before); + + if (data.get_length() == dataSz) + break; + + elements--; + front++; + } +} + + +// flush output buffer +void SSL::flushBuffer() +{ + if (GetError()) return; + + uint sz = STL::for_each(buffers_.getHandShake().begin(), + buffers_.getHandShake().end(), + SumBuffer()).total_; + output_buffer out(sz); + size_t elements = buffers_.getHandShake().size(); + + for (size_t i = 0; i < elements; i++) { + output_buffer* front = buffers_.getHandShake().front(); + out.write(front->get_buffer(), front->get_size()); + + buffers_.useHandShake().pop_front(); + ysDelete(front); + } + Send(out.get_buffer(), out.get_size()); +} + + +void SSL::Send(const byte* buffer, uint sz) +{ + unsigned int sent = 0; + + if (socket_.send(buffer, sz, sent) != sz) { + if (socket_.WouldBlock()) { + buffers_.SetOutput(NEW_YS output_buffer(sz - sent, buffer + sent, + sz - sent)); + SetError(YasslError(SSL_ERROR_WANT_WRITE)); + } + else + SetError(send_error); + } +} + + +void SSL::SendWriteBuffered() +{ + output_buffer* out = buffers_.TakeOutput(); + + if (out) { + mySTL::auto_ptr tmp(out); + Send(out->get_buffer(), out->get_size()); + } +} + + +// get sequence number, if verify get peer's +uint SSL::get_SEQIncrement(bool verify) +{ + if (verify) + return secure_.use_connection().peer_sequence_number_++; + else + return secure_.use_connection().sequence_number_++; +} + + +const byte* SSL::get_macSecret(bool verify) +{ + if ( (secure_.get_parms().entity_ == client_end && !verify) || + (secure_.get_parms().entity_ == server_end && verify) ) + return secure_.get_connection().client_write_MAC_secret_; + else + return secure_.get_connection().server_write_MAC_secret_; +} + + +void SSL::verifyState(const RecordLayerHeader& rlHeader) +{ + if (GetError()) return; + + if (rlHeader.version_.major_ != 3 || rlHeader.version_.minor_ > 2) { + SetError(badVersion_error); + return; + } + + if (states_.getRecord() == recordNotReady || + (rlHeader.type_ == application_data && // data and handshake + states_.getHandShake() != handShakeReady) ) // isn't complete yet + SetError(record_layer); +} + + +void SSL::verifyState(const HandShakeHeader& hsHeader) +{ + if (GetError()) return; + + if (states_.getHandShake() == handShakeNotReady) { + SetError(handshake_layer); + return; + } + + if (states_.SetMessageRecvd(hsHeader.get_handshakeType()) != 0) { + order_error(); + return; + } + + if (secure_.get_parms().entity_ == client_end) + verifyClientState(hsHeader.get_handshakeType()); + else + verifyServerState(hsHeader.get_handshakeType()); +} + + +void SSL::verifyState(ClientState cs) +{ + if (GetError()) return; + if (states_.getClient() != cs) order_error(); +} + + +void SSL::verifyState(ServerState ss) +{ + if (GetError()) return; + if (states_.getServer() != ss) order_error(); +} + + +void SSL::verfiyHandShakeComplete() +{ + if (GetError()) return; + if (states_.getHandShake() != handShakeReady) order_error(); +} + + +void SSL::verifyClientState(HandShakeType hsType) +{ + if (GetError()) return; + + switch(hsType) { + case server_hello : + if (states_.getClient() != serverNull) + order_error(); + break; + case certificate : + if (states_.getClient() != serverHelloComplete) + order_error(); + break; + case server_key_exchange : + if (states_.getClient() != serverCertComplete) + order_error(); + break; + case certificate_request : + if (states_.getClient() != serverCertComplete && + states_.getClient() != serverKeyExchangeComplete) + order_error(); + break; + case server_hello_done : + if (states_.getClient() != serverCertComplete && + states_.getClient() != serverKeyExchangeComplete) + order_error(); + break; + case finished : + if (states_.getClient() != serverHelloDoneComplete || + secure_.get_parms().pending_) // no change + order_error(); // cipher yet + break; + default : + order_error(); + }; +} + + +void SSL::verifyServerState(HandShakeType hsType) +{ + if (GetError()) return; + + switch(hsType) { + case client_hello : + if (states_.getServer() != clientNull) + order_error(); + break; + case certificate : + if (states_.getServer() != clientHelloComplete) + order_error(); + break; + case client_key_exchange : + if (states_.getServer() != clientHelloComplete) + order_error(); + break; + case certificate_verify : + if (states_.getServer() != clientKeyExchangeComplete) + order_error(); + break; + case finished : + if (states_.getServer() != clientKeyExchangeComplete || + secure_.get_parms().pending_) // no change + order_error(); // cipher yet + break; + default : + order_error(); + }; +} + + +// try to find a suite match +void SSL::matchSuite(const opaque* peer, uint length) +{ + if (length == 0 || (length % 2) != 0) { + SetError(bad_input); + return; + } + + // start with best, if a match we are good, Ciphers are at odd index + // since all SSL and TLS ciphers have 0x00 first byte + for (uint i = 1; i < secure_.get_parms().suites_size_; i += 2) + for (uint j = 0; (j + 1) < length; j+= 2) { + if (peer[j] != 0x00) { + continue; // only 0x00 first byte supported + } + + if (secure_.use_parms().suites_[i] == peer[j + 1]) { + secure_.use_parms().suite_[0] = 0x00; + secure_.use_parms().suite_[1] = peer[j + 1]; + return; + } + } + + SetError(match_error); +} + + +void SSL::set_session(SSL_SESSION* s) +{ + if (getSecurity().GetContext()->GetSessionCacheOff()) + return; + + if (s && GetSessions().lookup(s->GetID(), &secure_.use_resume())) { + secure_.set_resuming(true); + crypto_.use_certManager().setPeerX509(s->GetPeerX509()); + } +} + + +const Crypto& SSL::getCrypto() const +{ + return crypto_; +} + + +const Security& SSL::getSecurity() const +{ + return secure_; +} + + +const States& SSL::getStates() const +{ + return states_; +} + + +const sslHashes& SSL::getHashes() const +{ + return hashes_; +} + + +const sslFactory& SSL::getFactory() const +{ + return GetSSL_Factory(); +} + + +const Socket& SSL::getSocket() const +{ + return socket_; +} + + +YasslError SSL::GetError() const +{ + return states_.What(); +} + + +bool SSL::GetQuietShutdown() const +{ + return quietShutdown_; +} + + +bool SSL::GetMultiProtocol() const +{ + return secure_.GetContext()->getMethod()->multipleProtocol(); +} + + +Crypto& SSL::useCrypto() +{ + return crypto_; +} + + +Security& SSL::useSecurity() +{ + return secure_; +} + + +States& SSL::useStates() +{ + return states_; +} + + +sslHashes& SSL::useHashes() +{ + return hashes_; +} + + +Socket& SSL::useSocket() +{ + return socket_; +} + + +Log& SSL::useLog() +{ + return log_; +} + + +bool SSL::isTLS() const +{ + return secure_.get_connection().TLS_; +} + + +bool SSL::isTLSv1_1() const +{ + return secure_.get_connection().TLSv1_1_; +} + + +// is there buffered data available, optimization to remove iteration on buffer +bool SSL::HasData() const +{ + return has_data_; +} + + +void SSL::addData(input_buffer* data) +{ + buffers_.useData().push_back(data); + if (!has_data_) has_data_ = true; +} + + +void SSL::addBuffer(output_buffer* b) +{ + buffers_.useHandShake().push_back(b); +} + + +void SSL_SESSION::CopyX509(X509* x) +{ + if (x == 0) return; + + X509_NAME* issuer = x->GetIssuer(); + X509_NAME* subject = x->GetSubject(); + ASN1_TIME* before = x->GetBefore(); + ASN1_TIME* after = x->GetAfter(); + + peerX509_ = NEW_YS X509(issuer->GetName(), issuer->GetLength(), + subject->GetName(), subject->GetLength(), + before, after, + issuer->GetCnPosition(), issuer->GetCnLength(), + subject->GetCnPosition(), subject->GetCnLength()); +} + + +// store connection parameters +SSL_SESSION::SSL_SESSION(const SSL& ssl, RandomPool& ran) + : timeout_(DEFAULT_TIMEOUT), random_(ran), peerX509_(0) +{ + const Connection& conn = ssl.getSecurity().get_connection(); + + memcpy(sessionID_, conn.sessionID_, ID_LEN); + memcpy(master_secret_, conn.master_secret_, SECRET_LEN); + memcpy(suite_, ssl.getSecurity().get_parms().suite_, SUITE_LEN); + + bornOn_ = lowResTimer(); + + CopyX509(ssl.getCrypto().get_certManager().get_peerX509()); +} + + +// for resumption copy in ssl::parameters +SSL_SESSION::SSL_SESSION(RandomPool& ran) + : bornOn_(0), timeout_(0), random_(ran), peerX509_(0) +{ + memset(sessionID_, 0, ID_LEN); + memset(master_secret_, 0, SECRET_LEN); + memset(suite_, 0, SUITE_LEN); +} + + +SSL_SESSION& SSL_SESSION::operator=(const SSL_SESSION& that) +{ + memcpy(sessionID_, that.sessionID_, ID_LEN); + memcpy(master_secret_, that.master_secret_, SECRET_LEN); + memcpy(suite_, that.suite_, SUITE_LEN); + + bornOn_ = that.bornOn_; + timeout_ = that.timeout_; + + if (peerX509_) { + ysDelete(peerX509_); + peerX509_ = 0; + } + CopyX509(that.peerX509_); + + return *this; +} + + +const opaque* SSL_SESSION::GetID() const +{ + return sessionID_; +} + + +const opaque* SSL_SESSION::GetSecret() const +{ + return master_secret_; +} + + +const Cipher* SSL_SESSION::GetSuite() const +{ + return suite_; +} + + +X509* SSL_SESSION::GetPeerX509() const +{ + return peerX509_; +} + + +uint SSL_SESSION::GetBornOn() const +{ + return bornOn_; +} + + +uint SSL_SESSION::GetTimeOut() const +{ + return timeout_; +} + + +void SSL_SESSION::SetTimeOut(uint t) +{ + timeout_ = t; +} + + +extern void clean(volatile opaque*, uint, RandomPool&); + + +// clean up secret data +SSL_SESSION::~SSL_SESSION() +{ + volatile opaque* p = master_secret_; + clean(p, SECRET_LEN, random_); + + ysDelete(peerX509_); +} + + +static Sessions* sessionsInstance = 0; +static yassl_pthread_once_t session_created= YASSL_PTHREAD_ONCE_INIT; + +void Session_initialize() +{ + sessionsInstance = NEW_YS Sessions; +} + +extern "C" +{ + static void c_session_initialize() { Session_initialize(); } +} + + +Sessions& GetSessions() +{ + yassl_pthread_once(&session_created, c_session_initialize); + return *sessionsInstance; +} + + +static sslFactory* sslFactoryInstance = 0; + +sslFactory& GetSSL_Factory() +{ + if (!sslFactoryInstance) + sslFactoryInstance = NEW_YS sslFactory; + return *sslFactoryInstance; +} + + +static Errors* errorsInstance = 0; + +Errors& GetErrors() +{ + if (!errorsInstance) + errorsInstance = NEW_YS Errors; + return *errorsInstance; +} + + +typedef Mutex::Lock Lock; + + + +void Sessions::add(const SSL& ssl) +{ + if (ssl.getSecurity().get_connection().sessionID_Set_) { + Lock guard(mutex_); + list_.push_back(NEW_YS SSL_SESSION(ssl, random_)); + count_++; + } + + if (count_ > SESSION_FLUSH_COUNT) + if (!ssl.getSecurity().GetContext()->GetSessionCacheFlushOff()) + Flush(); +} + + +Sessions::~Sessions() +{ + STL::for_each(list_.begin(), list_.end(), del_ptr_zero()); +} + + +// locals +namespace yassl_int_cpp_local2 { // for explicit templates + +typedef STL::list::iterator sess_iterator; +typedef STL::list::iterator thr_iterator; + +struct sess_match { + const opaque* id_; + explicit sess_match(const opaque* p) : id_(p) {} + + bool operator()(SSL_SESSION* sess) + { + if ( memcmp(sess->GetID(), id_, ID_LEN) == 0) + return true; + return false; + } +}; + + +THREAD_ID_T GetSelf() +{ +#ifndef _POSIX_THREADS + return GetCurrentThreadId(); +#else + return pthread_self(); +#endif +} + +struct thr_match { + THREAD_ID_T id_; + explicit thr_match() : id_(GetSelf()) {} + + bool operator()(ThreadError thr) + { + if (thr.threadID_ == id_) + return true; + return false; + } +}; + + +} // local namespace +using namespace yassl_int_cpp_local2; + + +// lookup session by id, return a copy if space provided +SSL_SESSION* Sessions::lookup(const opaque* id, SSL_SESSION* copy) +{ + Lock guard(mutex_); + sess_iterator find = STL::find_if(list_.begin(), list_.end(), + sess_match(id)); + if (find != list_.end()) { + uint current = lowResTimer(); + if ( ((*find)->GetBornOn() + (*find)->GetTimeOut()) < current) { + del_ptr_zero()(*find); + list_.erase(find); + return 0; + } + if (copy) + *copy = *(*find); + return *find; + } + return 0; +} + + +// remove a session by id +void Sessions::remove(const opaque* id) +{ + Lock guard(mutex_); + sess_iterator find = STL::find_if(list_.begin(), list_.end(), + sess_match(id)); + if (find != list_.end()) { + del_ptr_zero()(*find); + list_.erase(find); + } +} + + +// flush expired sessions from cache +void Sessions::Flush() +{ + Lock guard(mutex_); + sess_iterator next = list_.begin(); + uint current = lowResTimer(); + + while (next != list_.end()) { + sess_iterator si = next; + ++next; + if ( ((*si)->GetBornOn() + (*si)->GetTimeOut()) < current) { + del_ptr_zero()(*si); + list_.erase(si); + } + } + count_ = 0; // reset flush counter +} + + +// remove a self thread error +void Errors::Remove() +{ + Lock guard(mutex_); + thr_iterator find = STL::find_if(list_.begin(), list_.end(), + thr_match()); + if (find != list_.end()) + list_.erase(find); +} + + +// lookup self error code +int Errors::Lookup(bool peek) +{ + Lock guard(mutex_); + thr_iterator find = STL::find_if(list_.begin(), list_.end(), + thr_match()); + if (find != list_.end()) { + int ret = find->errorID_; + if (!peek) + list_.erase(find); + return ret; + } + else + return 0; +} + + +// add a new error code for self +void Errors::Add(int error) +{ + ThreadError add; + add.errorID_ = error; + add.threadID_ = GetSelf(); + + Remove(); // may have old error + + Lock guard(mutex_); + list_.push_back(add); +} + + +SSL_METHOD::SSL_METHOD(ConnectionEnd ce, ProtocolVersion pv, bool multiProto) + : version_(pv), side_(ce), verifyPeer_(false), verifyNone_(false), + failNoCert_(false), multipleProtocol_(multiProto) +{} + + +ProtocolVersion SSL_METHOD::getVersion() const +{ + return version_; +} + + +ConnectionEnd SSL_METHOD::getSide() const +{ + return side_; +} + + +void SSL_METHOD::setVerifyPeer() +{ + verifyPeer_ = true; +} + + +void SSL_METHOD::setVerifyNone() +{ + verifyNone_ = true; +} + + +void SSL_METHOD::setFailNoCert() +{ + failNoCert_ = true; +} + + +bool SSL_METHOD::verifyPeer() const +{ + return verifyPeer_; +} + + +bool SSL_METHOD::verifyNone() const +{ + return verifyNone_; +} + + +bool SSL_METHOD::failNoCert() const +{ + return failNoCert_; +} + + +bool SSL_METHOD::multipleProtocol() const +{ + return multipleProtocol_; +} + + +/** Implement a my_strdup replacement, so we can reuse get_password() */ +extern "C" char *yassl_mysql_strdup(const char *from, int) +{ + return from ? strdup(from) : NULL; +} + + +extern "C" +{ +int +default_password_callback(char * buffer, int size_arg, int rwflag, + void * /* unused: callback_data */) +{ + char *passwd; + size_t passwd_len, size= (size_t) size_arg; + + passwd= ::yassl_mysql_get_tty_password_ext("Enter PEM pass phrase:", + yassl_mysql_strdup); + + if (!passwd) + return 0; + + passwd_len= strlen(passwd); + + if (!passwd_len) + return 0; + + if (size > 0) + { + size_t result_len= size - 1 > passwd_len ? + passwd_len : size - 1; + memcpy(buffer, passwd, result_len); + buffer[result_len]= 0; + } + free(passwd); + return passwd_len; +} +} + +SSL_CTX::SSL_CTX(SSL_METHOD* meth) + : method_(meth), certificate_(0), privateKey_(0), + passwordCb_(default_password_callback), + userData_(0), sessionCacheOff_(false), sessionCacheFlushOff_(false), + verifyCallback_(0) +{} + + +SSL_CTX::~SSL_CTX() +{ + ysDelete(method_); + ysDelete(certificate_); + ysDelete(privateKey_); + + STL::for_each(caList_.begin(), caList_.end(), del_ptr_zero()); +} + + +void SSL_CTX::AddCA(x509* ca) +{ + caList_.push_back(ca); +} + + +const SSL_CTX::CertList& +SSL_CTX::GetCA_List() const +{ + return caList_; +} + + +VerifyCallback SSL_CTX::getVerifyCallback() const +{ + return verifyCallback_; +} + + +const x509* SSL_CTX::getCert() const +{ + return certificate_; +} + + +const x509* SSL_CTX::getKey() const +{ + return privateKey_; +} + + +const SSL_METHOD* SSL_CTX::getMethod() const +{ + return method_; +} + + +const Ciphers& SSL_CTX::GetCiphers() const +{ + return ciphers_; +} + + +const DH_Parms& SSL_CTX::GetDH_Parms() const +{ + return dhParms_; +} + + +const Stats& SSL_CTX::GetStats() const +{ + return stats_; +} + + +pem_password_cb SSL_CTX::GetPasswordCb() const +{ + return passwordCb_; +} + + +void SSL_CTX::SetPasswordCb(pem_password_cb cb) +{ + passwordCb_ = cb; +} + + +void* SSL_CTX::GetUserData() const +{ + return userData_; +} + + +bool SSL_CTX::GetSessionCacheOff() const +{ + return sessionCacheOff_; +} + + +bool SSL_CTX::GetSessionCacheFlushOff() const +{ + return sessionCacheFlushOff_; +} + + +void SSL_CTX::SetUserData(void* data) +{ + userData_ = data; +} + + +void SSL_CTX::SetSessionCacheOff() +{ + sessionCacheOff_ = true; +} + + +void SSL_CTX::SetMethod(SSL_METHOD* meth) +{ + if(method_) + ysDelete(method_); + method_= meth; +} + + +void SSL_CTX::SetSessionCacheFlushOff() +{ + sessionCacheFlushOff_ = true; +} + + +void SSL_CTX::setVerifyPeer() +{ + method_->setVerifyPeer(); +} + + +void SSL_CTX::setVerifyNone() +{ + method_->setVerifyNone(); +} + + +void SSL_CTX::setFailNoCert() +{ + method_->setFailNoCert(); +} + + +void SSL_CTX::setVerifyCallback(VerifyCallback vc) +{ + verifyCallback_ = vc; +} + + +bool SSL_CTX::SetDH(const DH& dh) +{ + dhParms_.p_ = dh.p->int_; + dhParms_.g_ = dh.g->int_; + + return dhParms_.set_ = true; +} + + +bool SSL_CTX::SetCipherList(const char* list) +{ + if (!list) + return false; + + bool ret = false; + char name[MAX_SUITE_NAME]; + + char needle[] = ":"; + char* haystack = const_cast(list); + char* prev; + + const int suiteSz = sizeof(cipher_names) / sizeof(cipher_names[0]); + int idx = 0; + + for(;;) { + size_t len; + prev = haystack; + haystack = strstr(haystack, needle); + + if (!haystack) // last cipher + len = min(sizeof(name), strlen(prev)); + else + len = min(sizeof(name), (size_t)(haystack - prev)); + + strncpy(name, prev, len); + name[(len == sizeof(name)) ? len - 1 : len] = 0; + + for (int i = 0; i < suiteSz; i++) + if (strncmp(name, cipher_names[i], sizeof(name)) == 0) { + + ciphers_.suites_[idx++] = 0x00; // first byte always zero + ciphers_.suites_[idx++] = i; + + if (!ret) ret = true; // found at least one + break; + } + if (!haystack) break; + haystack++; + } + + if (ret) { + ciphers_.setSuites_ = true; + ciphers_.suiteSz_ = idx; + } + + return ret; +} + + +void SSL_CTX::IncrementStats(StatsField fd) +{ + + Lock guard(mutex_); + + switch (fd) { + + case Accept: + ++stats_.accept_; + break; + + case Connect: + ++stats_.connect_; + break; + + case AcceptGood: + ++stats_.acceptGood_; + break; + + case ConnectGood: + ++stats_.connectGood_; + break; + + case AcceptRenegotiate: + ++stats_.acceptRenegotiate_; + break; + + case ConnectRenegotiate: + ++stats_.connectRenegotiate_; + break; + + case Hits: + ++stats_.hits_; + break; + + case CbHits: + ++stats_.cbHits_; + break; + + case CacheFull: + ++stats_.cacheFull_; + break; + + case Misses: + ++stats_.misses_; + break; + + case Timeouts: + ++stats_.timeouts_; + break; + + case Number: + ++stats_.number_; + break; + + case GetCacheSize: + ++stats_.getCacheSize_; + break; + + case VerifyMode: + ++stats_.verifyMode_; + break; + + case VerifyDepth: + ++stats_.verifyDepth_; + break; + + default: + break; + } +} + + +Crypto::Crypto() + : digest_(0), cipher_(0), dh_(0) +{} + + +Crypto::~Crypto() +{ + ysDelete(dh_); + ysDelete(cipher_); + ysDelete(digest_); +} + + +const Digest& Crypto::get_digest() const +{ + return *digest_; +} + + +const BulkCipher& Crypto::get_cipher() const +{ + return *cipher_; +} + + +const DiffieHellman& Crypto::get_dh() const +{ + return *dh_; +} + + +const RandomPool& Crypto::get_random() const +{ + return random_; +} + + +const CertManager& Crypto::get_certManager() const +{ + return cert_; +} + + + +Digest& Crypto::use_digest() +{ + return *digest_; +} + + +BulkCipher& Crypto::use_cipher() +{ + return *cipher_; +} + + +DiffieHellman& Crypto::use_dh() +{ + return *dh_; +} + + +RandomPool& Crypto::use_random() +{ + return random_; +} + + +CertManager& Crypto::use_certManager() +{ + return cert_; +} + + + +void Crypto::SetDH(DiffieHellman* dh) +{ + dh_ = dh; +} + + +void Crypto::SetDH(const DH_Parms& dh) +{ + if (dh.set_) + dh_ = NEW_YS DiffieHellman(dh.p_, dh.g_, random_); +} + + +bool Crypto::DhSet() +{ + return dh_ != 0; +} + + +void Crypto::setDigest(Digest* digest) +{ + digest_ = digest; +} + + +void Crypto::setCipher(BulkCipher* c) +{ + cipher_ = c; +} + + +const MD5& sslHashes::get_MD5() const +{ + return md5HandShake_; +} + + +const SHA& sslHashes::get_SHA() const +{ + return shaHandShake_; +} + + +const Finished& sslHashes::get_verify() const +{ + return verify_; +} + + +const Hashes& sslHashes::get_certVerify() const +{ + return certVerify_; +} + + +MD5& sslHashes::use_MD5(){ + return md5HandShake_; +} + + +SHA& sslHashes::use_SHA() +{ + return shaHandShake_; +} + + +Finished& sslHashes::use_verify() +{ + return verify_; +} + + +Hashes& sslHashes::use_certVerify() +{ + return certVerify_; +} + + +Buffers::Buffers() : prevSent(0), plainSz(0), rawInput_(0), output_(0) +{} + + +Buffers::~Buffers() +{ + STL::for_each(handShakeList_.begin(), handShakeList_.end(), + del_ptr_zero()) ; + STL::for_each(dataList_.begin(), dataList_.end(), + del_ptr_zero()) ; + ysDelete(rawInput_); + ysDelete(output_); +} + + +void Buffers::SetOutput(output_buffer* ob) +{ + output_ = ob; +} + + +void Buffers::SetRawInput(input_buffer* ib) +{ + rawInput_ = ib; +} + + +input_buffer* Buffers::TakeRawInput() +{ + input_buffer* ret = rawInput_; + rawInput_ = 0; + + return ret; +} + + +output_buffer* Buffers::TakeOutput() +{ + output_buffer* ret = output_; + output_ = 0; + + return ret; +} + + +const Buffers::inputList& Buffers::getData() const +{ + return dataList_; +} + + +const Buffers::outputList& Buffers::getHandShake() const +{ + return handShakeList_; +} + + +Buffers::inputList& Buffers::useData() +{ + return dataList_; +} + + +Buffers::outputList& Buffers::useHandShake() +{ + return handShakeList_; +} + + +Security::Security(ProtocolVersion pv, RandomPool& ran, ConnectionEnd ce, + const Ciphers& ciphers, SSL_CTX* ctx, bool haveDH) + : conn_(pv, ran), parms_(ce, ciphers, pv, haveDH), resumeSession_(ran), + ctx_(ctx), resuming_(false) +{} + + +const Connection& Security::get_connection() const +{ + return conn_; +} + + +const SSL_CTX* Security::GetContext() const +{ + return ctx_; +} + + +const Parameters& Security::get_parms() const +{ + return parms_; +} + + +const SSL_SESSION& Security::get_resume() const +{ + return resumeSession_; +} + + +bool Security::get_resuming() const +{ + return resuming_; +} + + +Connection& Security::use_connection() +{ + return conn_; +} + + +Parameters& Security::use_parms() +{ + return parms_; +} + + +SSL_SESSION& Security::use_resume() +{ + return resumeSession_; +} + + +void Security::set_resuming(bool b) +{ + resuming_ = b; +} + + +X509_NAME::X509_NAME(const char* n, size_t sz, int pos, int len) + : name_(0), sz_(sz), cnPosition_(pos), cnLen_(len) +{ + if (sz) { + name_ = NEW_YS char[sz]; + memcpy(name_, n, sz); + } + entry_.data = 0; +} + + +X509_NAME::~X509_NAME() +{ + ysArrayDelete(name_); + ysArrayDelete(entry_.data); +} + + +const char* X509_NAME::GetName() const +{ + return name_; +} + + +size_t X509_NAME::GetLength() const +{ + return sz_; +} + + +X509::X509(const char* i, size_t iSz, const char* s, size_t sSz, + ASN1_STRING *b, ASN1_STRING *a, + int issPos, int issLen, + int subPos, int subLen) + : issuer_(i, iSz, issPos, issLen), subject_(s, sSz, subPos, subLen), + beforeDate_((char *) b->data, b->length, b->type), + afterDate_((char *) a->data, a->length, a->type) +{} + + +X509_NAME* X509::GetIssuer() +{ + return &issuer_; +} + + +X509_NAME* X509::GetSubject() +{ + return &subject_; +} + + +ASN1_TIME* X509::GetBefore() +{ + return beforeDate_.GetString(); +} + + +ASN1_TIME* X509::GetAfter() +{ + return afterDate_.GetString(); +} + + +ASN1_STRING* X509_NAME::GetEntry(int i) +{ + if (i < 0 || i >= int(sz_)) + return 0; + + if (i != cnPosition_ || cnLen_ <= 0) // only entry currently supported + return 0; + + if (cnLen_ > int(sz_-i)) // make sure there's room in read buffer + return 0; + + if (entry_.data) + ysArrayDelete(entry_.data); + entry_.data = NEW_YS byte[cnLen_+1]; // max size; + + memcpy(entry_.data, &name_[i], cnLen_); + entry_.data[cnLen_] = 0; + entry_.length = cnLen_; + entry_.type = 0; + return &entry_; +} + + +StringHolder::StringHolder(const char* str, int sz, byte type) +{ + asnString_.length = sz; + asnString_.data = NEW_YS byte[sz + 1]; + memcpy(asnString_.data, str, sz); + asnString_.type = type; +} + + +StringHolder::~StringHolder() +{ + ysArrayDelete(asnString_.data); +} + + +ASN1_STRING* StringHolder::GetString() +{ + return &asnString_; +} + + +#ifdef HAVE_LIBZ + + void* myAlloc(void* /* opaque */, unsigned int item, unsigned int size) + { + return NEW_YS unsigned char[item * size]; + } + + + void myFree(void* /* opaque */, void* memory) + { + unsigned char* ptr = static_cast(memory); + yaSSL::ysArrayDelete(ptr); + } + + + // put size in front of compressed data + int Compress(const byte* in, int sz, input_buffer& buffer) + { + byte tmp[LENGTH_SZ]; + z_stream c_stream; /* compression stream */ + + buffer.allocate(sz + sizeof(uint16) + COMPRESS_EXTRA); + + c_stream.zalloc = myAlloc; + c_stream.zfree = myFree; + c_stream.opaque = (voidpf)0; + + c_stream.next_in = const_cast(in); + c_stream.avail_in = sz; + c_stream.next_out = buffer.get_buffer() + sizeof(tmp); + c_stream.avail_out = buffer.get_capacity() - sizeof(tmp); + + if (deflateInit(&c_stream, 8) != Z_OK) return -1; + int err = deflate(&c_stream, Z_FINISH); + deflateEnd(&c_stream); + if (err != Z_OK && err != Z_STREAM_END) return -1; + + c16toa(sz, tmp); + memcpy(buffer.get_buffer(), tmp, sizeof(tmp)); + buffer.add_size(c_stream.total_out + sizeof(tmp)); + + return 0; + } + + + // get uncompressed size in front + int DeCompress(input_buffer& in, int sz, input_buffer& out) + { + byte tmp[LENGTH_SZ]; + + tmp[0] = in[AUTO]; + tmp[1] = in[AUTO]; + + uint16 len; + ato16(tmp, len); + + out.allocate(len); + + z_stream d_stream; /* decompression stream */ + + d_stream.zalloc = myAlloc; + d_stream.zfree = myFree; + d_stream.opaque = (voidpf)0; + + d_stream.next_in = in.get_buffer() + in.get_current(); + d_stream.avail_in = sz - sizeof(tmp); + d_stream.next_out = out.get_buffer(); + d_stream.avail_out = out.get_capacity(); + + if (inflateInit(&d_stream) != Z_OK) return -1; + int err = inflate(&d_stream, Z_FINISH); + inflateEnd(&d_stream); + if (err != Z_OK && err != Z_STREAM_END) return -1; + + out.add_size(d_stream.total_out); + in.set_current(in.get_current() + sz - sizeof(tmp)); + + return 0; + } + + +#else // LIBZ + + // these versions should never get called + int Compress(const byte* in, int sz, input_buffer& buffer) + { + return -1; + } + + + int DeCompress(input_buffer& in, int sz, input_buffer& out) + { + return -1; + } + + +#endif // LIBZ + + +} // namespace + + + +extern "C" void yaSSL_CleanUp() +{ + TaoCrypt::CleanUp(); + yaSSL::ysDelete(yaSSL::sslFactoryInstance); + yaSSL::ysDelete(yaSSL::sessionsInstance); + yaSSL::ysDelete(yaSSL::errorsInstance); + + // In case user calls more than once, prevent seg fault + yaSSL::sslFactoryInstance = 0; + yaSSL::sessionsInstance = 0; + yaSSL::errorsInstance = 0; +} + + +#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION +namespace mySTL { +template yaSSL::yassl_int_cpp_local1::SumData for_each::iterator, yaSSL::yassl_int_cpp_local1::SumData>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local1::SumData); +template yaSSL::yassl_int_cpp_local1::SumBuffer for_each::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer); +template mySTL::list::iterator find_if::iterator, yaSSL::yassl_int_cpp_local2::sess_match>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local2::sess_match); +template mySTL::list::iterator find_if::iterator, yaSSL::yassl_int_cpp_local2::thr_match>(mySTL::list::iterator, mySTL::list::iterator, yaSSL::yassl_int_cpp_local2::thr_match); +} +#endif + diff --git a/mysql/extra/yassl/taocrypt/COPYING b/mysql/extra/yassl/taocrypt/COPYING new file mode 100644 index 0000000..845980a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/mysql/extra/yassl/taocrypt/README b/mysql/extra/yassl/taocrypt/README new file mode 100644 index 0000000..bd786b7 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/README @@ -0,0 +1,48 @@ +TaoCrypt release 0.9.2 02/5/2007 + + +This release includes bug fixes, portability enhancements, and some +optimiations. + +See 0.9.0 for build instructions. + + + + +******************TaoCrypt release 0.9.0 09/18/2006 + +This is the first release of TaoCrypt, it was previously only included with +yaSSL. TaoCrypt is highly portable and fast, its features include: + +One way hash functions: SHA-1, MD2, MD4, MD5, RIPEMD-160 +Message authentication codes: HMAC +Block Ciphers: DES, Triple-DES, AES, Blowfish, Twofish +Stream Ciphers: ARC4 +Public Key Crypto: RSA, DSA, Diffie-Hellman +Password based key derivation: PBKDF2 from PKCS #5 +Pseudo Random Number Generators +Large Integer Support +Base 16/64 encoding/decoding +DER encoding/decoding +X.509 processing +SSE2 and ia32 asm for the right processors and compilers + + +To build on Unix + + ./configure + make + + To test the build, from the ./test directory run ./test + + +On Windows + + Open the taocrypt project workspace + Choose (Re)Build All + + To test the build, run the test executable + + +Please send any questions or comments to todd@yassl.com. + diff --git a/mysql/extra/yassl/taocrypt/include/aes.hpp b/mysql/extra/yassl/taocrypt/include/aes.hpp new file mode 100644 index 0000000..bccf6e7 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/aes.hpp @@ -0,0 +1,155 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* aes.hpp defines AES +*/ + + +#ifndef TAO_CRYPT_AES_HPP +#define TAO_CRYPT_AES_HPP + +#include "misc.hpp" +#include "modes.hpp" + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_AES_ASM +#endif + + + +namespace TaoCrypt { + + +enum { AES_BLOCK_SIZE = 16 }; + + +// AES encryption and decryption, see FIPS-197 +class AES : public Mode_BASE { +public: + enum { BLOCK_SIZE = AES_BLOCK_SIZE }; + + AES(CipherDir DIR, Mode MODE) + : Mode_BASE(BLOCK_SIZE, DIR, MODE) {} + +#ifdef DO_AES_ASM + void Process(byte*, const byte*, word32); +#endif + void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION); + void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); } +private: + static const word32 rcon_[]; + + word32 rounds_; + word32 key_[60]; // max size + + static const word32 Te[5][256]; + static const word32 Td[5][256]; + static const byte CTd4[256]; + + static const word32* Te0; + static const word32* Te1; + static const word32* Te2; + static const word32* Te3; + static const word32* Te4; + + static const word32* Td0; + static const word32* Td1; + static const word32* Td2; + static const word32* Td3; + static const word32* Td4; + + void encrypt(const byte*, const byte*, byte*) const; + void AsmEncrypt(const byte*, byte*, void*) const; + void decrypt(const byte*, const byte*, byte*) const; + void AsmDecrypt(const byte*, byte*, void*) const; + + void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + + word32 PreFetchTe() const; + word32 PreFetchTd() const; + word32 PreFetchCTd4() const; + + AES(const AES&); // hide copy + AES& operator=(const AES&); // and assign +}; + + +#if defined(__x86_64__) || defined(_M_X64) || \ + (defined(__ILP32__) && (__ILP32__ >= 1)) + #define TC_CACHE_LINE_SZ 64 +#else + /* default cache line size */ + #define TC_CACHE_LINE_SZ 32 +#endif + +inline word32 AES::PreFetchTe() const +{ + word32 x = 0; + + /* 4 tables of 256 entries */ + for (int i = 0; i < 4; i++) { + /* each entry is 4 bytes */ + for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) { + x &= Te[i][j]; + } + } + + return x; +} + + +inline word32 AES::PreFetchTd() const +{ + word32 x = 0; + + /* 4 tables of 256 entries */ + for (int i = 0; i < 4; i++) { + /* each entry is 4 bytes */ + for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) { + x &= Td[i][j]; + } + } + + return x; +} + + +inline word32 AES::PreFetchCTd4() const +{ + word32 x = 0; + int i; + + for (i = 0; i < 256; i += TC_CACHE_LINE_SZ) { + x &= CTd4[i]; + } + + return x; +} + + +typedef BlockCipher AES_ECB_Encryption; +typedef BlockCipher AES_ECB_Decryption; + +typedef BlockCipher AES_CBC_Encryption; +typedef BlockCipher AES_CBC_Decryption; + + +} // naemspace + +#endif // TAO_CRYPT_AES_HPP diff --git a/mysql/extra/yassl/taocrypt/include/algebra.hpp b/mysql/extra/yassl/taocrypt/include/algebra.hpp new file mode 100644 index 0000000..5ce7038 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/algebra.hpp @@ -0,0 +1,226 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's algebra.h from CryptoPP */ + +#ifndef TAO_CRYPT_ALGEBRA_HPP +#define TAO_CRYPT_ALGEBRA_HPP + +#include "integer.hpp" + +namespace TaoCrypt { + + +// "const Element&" returned by member functions are references +// to internal data members. Since each object may have only +// one such data member for holding results, the following code +// will produce incorrect results: +// abcd = group.Add(group.Add(a,b), group.Add(c,d)); +// But this should be fine: +// abcd = group.Add(a, group.Add(b, group.Add(c,d)); + +// Abstract Group +class TAOCRYPT_NO_VTABLE AbstractGroup : public virtual_base +{ +public: + typedef Integer Element; + + virtual ~AbstractGroup() {} + + virtual bool Equal(const Element &a, const Element &b) const =0; + virtual const Element& Identity() const =0; + virtual const Element& Add(const Element &a, const Element &b) const =0; + virtual const Element& Inverse(const Element &a) const =0; + virtual bool InversionIsFast() const {return false;} + + virtual const Element& Double(const Element &a) const; + virtual const Element& Subtract(const Element &a, const Element &b) const; + virtual Element& Accumulate(Element &a, const Element &b) const; + virtual Element& Reduce(Element &a, const Element &b) const; + + virtual Element ScalarMultiply(const Element &a, const Integer &e) const; + virtual Element CascadeScalarMultiply(const Element &x, const Integer &e1, + const Element &y, const Integer &e2) const; + + virtual void SimultaneousMultiply(Element *results, const Element &base, + const Integer *exponents, unsigned int exponentsCount) const; +}; + +// Abstract Ring +class TAOCRYPT_NO_VTABLE AbstractRing : public AbstractGroup +{ +public: + typedef Integer Element; + + AbstractRing() : AbstractGroup() {m_mg.m_pRing = this;} + AbstractRing(const AbstractRing &source) : AbstractGroup() + {m_mg.m_pRing = this;} + AbstractRing& operator=(const AbstractRing &source) {return *this;} + + virtual bool IsUnit(const Element &a) const =0; + virtual const Element& MultiplicativeIdentity() const =0; + virtual const Element& Multiply(const Element&, const Element&) const =0; + virtual const Element& MultiplicativeInverse(const Element &a) const =0; + + virtual const Element& Square(const Element &a) const; + virtual const Element& Divide(const Element &a, const Element &b) const; + + virtual Element Exponentiate(const Element &a, const Integer &e) const; + virtual Element CascadeExponentiate(const Element &x, const Integer &e1, + const Element &y, const Integer &e2) const; + + virtual void SimultaneousExponentiate(Element *results, const Element&, + const Integer *exponents, unsigned int exponentsCount) const; + + virtual const AbstractGroup& MultiplicativeGroup() const + {return m_mg;} + +private: + class MultiplicativeGroupT : public AbstractGroup + { + public: + const AbstractRing& GetRing() const + {return *m_pRing;} + + bool Equal(const Element &a, const Element &b) const + {return GetRing().Equal(a, b);} + + const Element& Identity() const + {return GetRing().MultiplicativeIdentity();} + + const Element& Add(const Element &a, const Element &b) const + {return GetRing().Multiply(a, b);} + + Element& Accumulate(Element &a, const Element &b) const + {return a = GetRing().Multiply(a, b);} + + const Element& Inverse(const Element &a) const + {return GetRing().MultiplicativeInverse(a);} + + const Element& Subtract(const Element &a, const Element &b) const + {return GetRing().Divide(a, b);} + + Element& Reduce(Element &a, const Element &b) const + {return a = GetRing().Divide(a, b);} + + const Element& Double(const Element &a) const + {return GetRing().Square(a);} + + Element ScalarMultiply(const Element &a, const Integer &e) const + {return GetRing().Exponentiate(a, e);} + + Element CascadeScalarMultiply(const Element &x, const Integer &e1, + const Element &y, const Integer &e2) const + {return GetRing().CascadeExponentiate(x, e1, y, e2);} + + void SimultaneousMultiply(Element *results, const Element &base, + const Integer *exponents, unsigned int exponentsCount) const + {GetRing().SimultaneousExponentiate(results, base, exponents, + exponentsCount);} + + const AbstractRing* m_pRing; + }; + + MultiplicativeGroupT m_mg; +}; + + +// Abstract Euclidean Domain +class TAOCRYPT_NO_VTABLE AbstractEuclideanDomain + : public AbstractRing +{ +public: + typedef Integer Element; + + virtual void DivisionAlgorithm(Element &r, Element &q, const Element &a, + const Element &d) const =0; + + virtual const Element& Mod(const Element &a, const Element &b) const =0; + virtual const Element& Gcd(const Element &a, const Element &b) const; + +protected: + mutable Element result; +}; + + +// EuclideanDomainOf +class EuclideanDomainOf : public AbstractEuclideanDomain +{ +public: + typedef Integer Element; + + EuclideanDomainOf() {} + + bool Equal(const Element &a, const Element &b) const + {return a==b;} + + const Element& Identity() const + {return Element::Zero();} + + const Element& Add(const Element &a, const Element &b) const + {return result = a+b;} + + Element& Accumulate(Element &a, const Element &b) const + {return a+=b;} + + const Element& Inverse(const Element &a) const + {return result = -a;} + + const Element& Subtract(const Element &a, const Element &b) const + {return result = a-b;} + + Element& Reduce(Element &a, const Element &b) const + {return a-=b;} + + const Element& Double(const Element &a) const + {return result = a.Doubled();} + + const Element& MultiplicativeIdentity() const + {return Element::One();} + + const Element& Multiply(const Element &a, const Element &b) const + {return result = a*b;} + + const Element& Square(const Element &a) const + {return result = a.Squared();} + + bool IsUnit(const Element &a) const + {return a.IsUnit();} + + const Element& MultiplicativeInverse(const Element &a) const + {return result = a.MultiplicativeInverse();} + + const Element& Divide(const Element &a, const Element &b) const + {return result = a/b;} + + const Element& Mod(const Element &a, const Element &b) const + {return result = a%b;} + + void DivisionAlgorithm(Element &r, Element &q, const Element &a, + const Element &d) const + {Element::Divide(r, q, a, d);} + +private: + mutable Element result; +}; + + + +} // namespace + +#endif // TAO_CRYPT_ALGEBRA_HPP diff --git a/mysql/extra/yassl/taocrypt/include/arc4.hpp b/mysql/extra/yassl/taocrypt/include/arc4.hpp new file mode 100644 index 0000000..be64ba4 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/arc4.hpp @@ -0,0 +1,58 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* arc4.hpp defines ARC4 +*/ + + +#ifndef TAO_CRYPT_ARC4_HPP +#define TAO_CRYPT_ARC4_HPP + +#include "misc.hpp" + +namespace TaoCrypt { + + +// ARC4 encryption and decryption +class ARC4 { +public: + enum { STATE_SIZE = 256 }; + + typedef ARC4 Encryption; + typedef ARC4 Decryption; + + ARC4() {} + + void Process(byte*, const byte*, word32); + void SetKey(const byte*, word32); +private: + byte x_; + byte y_; + byte state_[STATE_SIZE]; + + ARC4(const ARC4&); // hide copy + const ARC4 operator=(const ARC4&); // and assign + + void AsmProcess(byte*, const byte*, word32); +}; + +} // namespace + + +#endif // TAO_CRYPT_ARC4_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/asn.hpp b/mysql/extra/yassl/taocrypt/include/asn.hpp new file mode 100644 index 0000000..28c7c8f --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/asn.hpp @@ -0,0 +1,392 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* asn.hpp provides ASN1 BER, PublicKey, and x509v3 decoding +*/ + + +#ifndef TAO_CRYPT_ASN_HPP +#define TAO_CRYPT_ASN_HPP + + +#include +#include "misc.hpp" +#include "block.hpp" +#include "error.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "list.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + +namespace TaoCrypt { + +// these tags and flags are not complete +enum ASNTag +{ + BOOLEAN = 0x01, + INTEGER = 0x02, + BIT_STRING = 0x03, + OCTET_STRING = 0x04, + TAG_NULL = 0x05, + OBJECT_IDENTIFIER = 0x06, + OBJECT_DESCRIPTOR = 0x07, + EXTERNAL = 0x08, + REAL = 0x09, + ENUMERATED = 0x0a, + UTF8_STRING = 0x0c, + SEQUENCE = 0x10, + SET = 0x11, + NUMERIC_STRING = 0x12, + PRINTABLE_STRING = 0x13, + T61_STRING = 0x14, + VIDEOTEXT_STRING = 0x15, + IA5_STRING = 0x16, + UTC_TIME = 0x17, + GENERALIZED_TIME = 0x18, + GRAPHIC_STRING = 0x19, + VISIBLE_STRING = 0x1a, + GENERAL_STRING = 0x1b, + LONG_LENGTH = 0x80 +}; + +enum ASNIdFlag +{ + UNIVERSAL = 0x00, + DATA = 0x01, + HEADER = 0x02, + CONSTRUCTED = 0x20, + APPLICATION = 0x40, + CONTEXT_SPECIFIC = 0x80, + PRIVATE = 0xc0 +}; + + +enum DNTags +{ + COMMON_NAME = 0x03, // CN + SUR_NAME = 0x04, // SN + COUNTRY_NAME = 0x06, // C + LOCALITY_NAME = 0x07, // L + STATE_NAME = 0x08, // ST + ORG_NAME = 0x0a, // O + ORGUNIT_NAME = 0x0b // OU +}; + + +enum PCKS12_Tags +{ + /* DATA = 1, */ // from ASN1 + SIGNED_DATA = 2, + ENVELOPED_DATA = 3, + SIGNED_AND_ENVELOPED_DATA = 4, + DIGESTED_DATA = 5, + ENCRYPTED_DATA = 6 +}; + + +enum Constants +{ + MIN_DATE_SZ = 13, + MAX_DATE_SZ = 16, + MAX_ALGO_SZ = 16, + MAX_LENGTH_SZ = 5, + MAX_SEQ_SZ = 5, // enum(seq|con) + length(4) + MAX_ALGO_SIZE = 9, + MAX_DIGEST_SZ = 69, // SHA512 + enum(Bit or Octet) + length(4) + DSA_SIG_SZ = 40, + ASN_NAME_MAX = 512 // max total of all included names +}; + + +class Source; +class RSA_PublicKey; +class RSA_PrivateKey; +class DSA_PublicKey; +class DSA_PrivateKey; +class Integer; +class DH; + + +// General BER decoding +class BER_Decoder : public virtual_base { +protected: + Source& source_; +public: + explicit BER_Decoder(Source& s) : source_(s) {} + virtual ~BER_Decoder() {} + + Integer& GetInteger(Integer&); + word32 GetSequence(); + word32 GetSet(); + word32 GetVersion(); + word32 GetExplicitVersion(); + + Error GetError(); +private: + virtual void ReadHeader() = 0; + + BER_Decoder(const BER_Decoder&); // hide copy + BER_Decoder& operator=(const BER_Decoder&); // and assign +}; + + +// RSA Private Key BER Decoder +class RSA_Private_Decoder : public BER_Decoder { +public: + explicit RSA_Private_Decoder(Source& s) : BER_Decoder(s) {} + void Decode(RSA_PrivateKey&); +private: + void ReadHeader(); +}; + + +// RSA Public Key BER Decoder +class RSA_Public_Decoder : public BER_Decoder { +public: + explicit RSA_Public_Decoder(Source& s) : BER_Decoder(s) {} + void Decode(RSA_PublicKey&); +private: + void ReadHeader(); + void ReadHeaderOpenSSL(); +}; + + +// DSA Private Key BER Decoder +class DSA_Private_Decoder : public BER_Decoder { +public: + explicit DSA_Private_Decoder(Source& s) : BER_Decoder(s) {} + void Decode(DSA_PrivateKey&); +private: + void ReadHeader(); +}; + + +// DSA Public Key BER Decoder +class DSA_Public_Decoder : public BER_Decoder { +public: + explicit DSA_Public_Decoder(Source& s) : BER_Decoder(s) {} + void Decode(DSA_PublicKey&); +private: + void ReadHeader(); +}; + + +// DH Key BER Decoder +class DH_Decoder : public BER_Decoder { +public: + explicit DH_Decoder(Source& s) : BER_Decoder(s) {} + void Decode(DH&); +private: + void ReadHeader(); +}; + + +// PKCS12 BER Decoder +class PKCS12_Decoder : public BER_Decoder { +public: + explicit PKCS12_Decoder(Source& s) : BER_Decoder(s) {} + void Decode(); +private: + void ReadHeader(); +}; + + +// General PublicKey +class PublicKey { + byte* key_; + word32 sz_; +public: + explicit PublicKey(const byte* k = 0, word32 s = 0); + ~PublicKey() { tcArrayDelete(key_); } + + const byte* GetKey() const { return key_; } + word32 size() const { return sz_; } + + void SetKey(const byte*); + void SetSize(word32 s); + + void AddToEnd(const byte*, word32); +private: + PublicKey(const PublicKey&); // hide copy + PublicKey& operator=(const PublicKey&); // and assign +}; + + +enum { SHA_SIZE = 20 }; + + +// A Signing Authority +class Signer { + PublicKey key_; + char name_[ASN_NAME_MAX]; + byte hash_[SHA_SIZE]; +public: + Signer(const byte* k, word32 kSz, const char* n, const byte* h); + ~Signer(); + + const PublicKey& GetPublicKey() const { return key_; } + const char* GetName() const { return name_; } + const byte* GetHash() const { return hash_; } + +private: + Signer(const Signer&); // hide copy + Signer& operator=(const Signer&); // and assign +}; + + +typedef STL::list SignerList; + + +enum ContentType { HUH = 651 }; +enum SigType { SHAwDSA = 517, MD2wRSA = 646, MD5wRSA = 648, SHAwRSA = 649, + SHA256wRSA = 655, SHA384wRSA = 656, SHA512wRSA = 657, + SHA256wDSA = 416 }; +enum HashType { MD2h = 646, MD5h = 649, SHAh = 88, SHA256h = 414, SHA384h = 415, + SHA512h = 416 }; +enum KeyType { DSAk = 515, RSAk = 645 }; // sums of algo OID + + +// an x509v Certificate BER Decoder +class CertDecoder : public BER_Decoder { +public: + enum DateType { BEFORE, AFTER }; + enum NameType { ISSUER, SUBJECT }; + enum CertType { CA, USER }; + + explicit CertDecoder(Source&, bool decode = true, SignerList* sl = 0, + bool noVerify = false, CertType ct = USER); + ~CertDecoder(); + + const PublicKey& GetPublicKey() const { return key_; } + KeyType GetKeyType() const { return KeyType(keyOID_); } + const char* GetIssuer() const { return issuer_; } + const char* GetCommonName() const { return subject_; } + const byte* GetHash() const { return subjectHash_; } + const char* GetBeforeDate() const { return beforeDate_; } + byte GetBeforeDateType() const { return beforeDateType_; } + const char* GetAfterDate() const { return afterDate_; } + byte GetAfterDateType() const { return afterDateType_; } + int GetSubjectCnStart() const { return subCnPos_; } + int GetIssuerCnStart() const { return issCnPos_; } + int GetSubjectCnLength() const { return subCnLen_; } + int GetIssuerCnLength() const { return issCnLen_; } + void DecodeToKey(); +private: + PublicKey key_; + word32 certBegin_; // offset to start of cert + word32 sigIndex_; // offset to start of signature + word32 sigLength_; // length of signature + word32 signatureOID_; // sum of algorithm object id + word32 keyOID_; // sum of key algo object id + int subCnPos_; // subject common name start, -1 is none + int subCnLen_; // length of above + int issCnPos_; // issuer common name start, -1 is none + int issCnLen_; // length of above + byte subjectHash_[SHA_SIZE]; // hash of all Names + byte issuerHash_[SHA_SIZE]; // hash of all Names + byte* signature_; + char issuer_[ASN_NAME_MAX]; // Names + char subject_[ASN_NAME_MAX]; // Names + char beforeDate_[MAX_DATE_SZ+1]; // valid before date, +null term + byte beforeDateType_; // beforeDate time type + char afterDate_[MAX_DATE_SZ+1]; // valid after date, +null term + byte afterDateType_; // afterDate time type + bool verify_; // Default to yes, but could be off + + void ReadHeader(); + void Decode(SignerList*, CertType); + void StoreKey(); + void AddDSA(); + bool ValidateSelfSignature(); + bool ValidateSignature(SignerList*); + bool ConfirmSignature(Source&); + void GetKey(); + char* AddTag(char*, const char*, const char*, word32, word32); + void GetName(NameType); + void GetValidity(); + void GetDate(DateType); + void GetCompareHash(const byte*, word32, byte*, word32); + word32 GetAlgoId(); + word32 GetSignature(); + word32 GetDigest(); +}; + + +word32 GetLength(Source&); + +word32 SetLength(word32, byte*); +word32 SetSequence(word32, byte*); + +word32 EncodeDSA_Signature(const byte* signature, byte* output); +word32 EncodeDSA_Signature(const Integer& r, const Integer& s, byte* output); +word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz); + + +// General DER encoding +class DER_Encoder : public virtual_base { +public: + DER_Encoder() {} + virtual ~DER_Encoder() {} + + word32 SetAlgoID(HashType, byte*); + + Error GetError() const { return error_; } +private: + //virtual void WriteHeader() = 0; + Error error_; + + DER_Encoder(const DER_Encoder&); // hide copy + DER_Encoder& operator=(const DER_Encoder&); // and assign +}; + + + +class Signature_Encoder : public DER_Encoder { + const byte* digest_; + word32 digestSz_; + SigType digestOID_; +public: + explicit Signature_Encoder(const byte*, word32, HashType, Source&); + +private: + void WriteHeader(); + word32 SetDigest(const byte*, word32, byte*); + + Signature_Encoder(const Signature_Encoder&); // hide copy + Signature_Encoder& operator=(const Signature_Encoder&); // and assign +}; + + +// Get Cert in PEM format from BEGIN to END +int GetCert(Source&); + +// Get Cert in PEM format from pkcs12 file +int GetPKCS_Cert(const char* password, Source&); + +bool ASN1_TIME_extract(const unsigned char* date, unsigned char format, + tm *parsed_time); + +} // namespace + + +#endif // TAO_CRYPT_ASN_HPP diff --git a/mysql/extra/yassl/taocrypt/include/block.hpp b/mysql/extra/yassl/taocrypt/include/block.hpp new file mode 100644 index 0000000..4f58c82 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/block.hpp @@ -0,0 +1,202 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* block.hpp provides word and byte blocks with configurable allocators +*/ + + +#ifndef TAO_CRYPT_BLOCK_HPP +#define TAO_CRYPT_BLOCK_HPP + +#include "misc.hpp" +#include // memcpy +#include // ptrdiff_t + +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + +namespace TaoCrypt { + + +// a Base class for Allocators +template +class AllocatorBase +{ +public: + typedef T value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef T* pointer; + typedef const T* const_pointer; + typedef T& reference; + typedef const T& const_reference; + + pointer address(reference r) const {return (&r);} + const_pointer address(const_reference r) const {return (&r); } + void construct(pointer p, const T& val) {new (p) T(val);} + void destroy(pointer p) {p->~T();} + size_type max_size() const {return ~size_type(0)/sizeof(T);} +protected: +}; + + +// General purpose realloc +template +typename A::pointer StdReallocate(A& a, T* p, typename A::size_type oldSize, + typename A::size_type newSize, bool preserve) +{ + if (oldSize == newSize) + return p; + + if (preserve) { + A b = A(); + typename A::pointer newPointer = b.allocate(newSize, 0); + memcpy(newPointer, p, sizeof(T) * min(oldSize, newSize)); + a.deallocate(p, oldSize); + STL::swap(a, b); + return newPointer; + } + else { + a.deallocate(p, oldSize); + return a.allocate(newSize, 0); + } +} + + +// Allocator that zeros out memory on deletion +template +class AllocatorWithCleanup : public AllocatorBase +{ +public: + typedef typename AllocatorBase::pointer pointer; + typedef typename AllocatorBase::size_type size_type; + + pointer allocate(size_type n, const void* = 0) + { + if (n > this->max_size()) + return 0; + if (n == 0) + return 0; + return NEW_TC T[n]; + } + + void deallocate(void* p, size_type n) + { + memset(p, 0, n * sizeof(T)); + tcArrayDelete((T*)p); + } + + pointer reallocate(T* p, size_type oldSize, size_type newSize, + bool preserve) + { + return StdReallocate(*this, p, oldSize, newSize, preserve); + } + + // VS.NET STL enforces the policy of "All STL-compliant allocators have to + // provide a template class member called rebind". + template struct rebind { typedef AllocatorWithCleanup other;}; +}; + + +// Block class template +template > +class Block { +public: + explicit Block(word32 s = 0) : sz_(s), buffer_(allocator_.allocate(sz_)) + { CleanNew(sz_); } + + Block(const T* buff, word32 s) : sz_(s), buffer_(allocator_.allocate(sz_)) + { memcpy(buffer_, buff, sz_ * sizeof(T)); } + + Block(const Block& that) : sz_(that.sz_), buffer_(allocator_.allocate(sz_)) + { memcpy(buffer_, that.buffer_, sz_ * sizeof(T)); } + + Block& operator=(const Block& that) { + Block tmp(that); + Swap(tmp); + return *this; + } + + T& operator[] (word32 i) { return buffer_[i]; } + const T& operator[] (word32 i) const { return buffer_[i]; } + + T* operator+ (word32 i) { return buffer_ + i; } + const T* operator+ (word32 i) const { return buffer_ + i; } + + word32 size() const { return sz_; } + + T* get_buffer() const { return buffer_; } + T* begin() const { return get_buffer(); } + + void CleanGrow(word32 newSize) + { + if (newSize > sz_) { + buffer_ = allocator_.reallocate(buffer_, sz_, newSize, true); + memset(buffer_ + sz_, 0, (newSize - sz_) * sizeof(T)); + sz_ = newSize; + } + } + + void CleanNew(word32 newSize) + { + New(newSize); + memset(buffer_, 0, sz_ * sizeof(T)); + } + + void New(word32 newSize) + { + buffer_ = allocator_.reallocate(buffer_, sz_, newSize, false); + sz_ = newSize; + } + + void resize(word32 newSize) + { + buffer_ = allocator_.reallocate(buffer_, sz_, newSize, true); + sz_ = newSize; + } + + void Swap(Block& other) { + STL::swap(sz_, other.sz_); + STL::swap(buffer_, other.buffer_); + STL::swap(allocator_, other.allocator_); + } + + ~Block() { allocator_.deallocate(buffer_, sz_); } +private: + A allocator_; + word32 sz_; // size in Ts + T* buffer_; +}; + + +typedef Block ByteBlock; +typedef Block WordBlock; +typedef Block Word32Block; + + +} // namespace + +#endif // TAO_CRYPT_BLOCK_HPP diff --git a/mysql/extra/yassl/taocrypt/include/blowfish.hpp b/mysql/extra/yassl/taocrypt/include/blowfish.hpp new file mode 100644 index 0000000..1f8d058 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/blowfish.hpp @@ -0,0 +1,88 @@ +/* + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* blowfish.hpp defines Blowfish +*/ + + +#ifndef TAO_CRYPT_BLOWFISH_HPP +#define TAO_CRYPT_BLOWFISH_HPP + +#include "misc.hpp" +#include "modes.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_BLOWFISH_ASM +#endif + + +namespace TaoCrypt { + +enum { BLOWFISH_BLOCK_SIZE = 8 }; + + +// Blowfish encryption and decryption, see +class Blowfish : public Mode_BASE { +public: + enum { BLOCK_SIZE = BLOWFISH_BLOCK_SIZE, ROUNDS = 16 }; + + Blowfish(CipherDir DIR, Mode MODE) + : Mode_BASE(BLOCK_SIZE, DIR, MODE), sbox_(pbox_ + ROUNDS + 2) {} + +#ifdef DO_BLOWFISH_ASM + void Process(byte*, const byte*, word32); +#endif + void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION); + void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); } +private: + static const word32 p_init_[ROUNDS + 2]; + static const word32 s_init_[4 * 256]; + + word32 pbox_[ROUNDS + 2 + 4 * 256]; + word32* sbox_; + + void crypt_block(const word32 in[2], word32 out[2]) const; + void AsmProcess(const byte* in, byte* out) const; + void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + + Blowfish(const Blowfish&); // hide copy + Blowfish& operator=(const Blowfish&); // and assign +}; + + +typedef BlockCipher Blowfish_ECB_Encryption; +typedef BlockCipher Blowfish_ECB_Decryption; + +typedef BlockCipher Blowfish_CBC_Encryption; +typedef BlockCipher Blowfish_CBC_Decryption; + + + +} // namespace + +#endif // TAO_CRYPT_BLOWFISH_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/coding.hpp b/mysql/extra/yassl/taocrypt/include/coding.hpp new file mode 100644 index 0000000..61ac993 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/coding.hpp @@ -0,0 +1,91 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* coding.hpp defines hex and base64 encoding/decoing +*/ + +#ifndef TAO_CRYPT_CODING_HPP +#define TAO_CRYPT_CODING_HPP + +#include "misc.hpp" +#include "block.hpp" + +namespace TaoCrypt { + +class Source; + + +// Hex Encoding, see RFC 3548 +class HexEncoder { + ByteBlock encoded_; + Source& plain_; +public: + explicit HexEncoder(Source& s) : plain_(s) { Encode(); } +private: + void Encode(); + + HexEncoder(const HexEncoder&); // hide copy + HexEncoder& operator=(const HexEncoder&); // and assign +}; + + +// Hex Decoding, see RFC 3548 +class HexDecoder { + ByteBlock decoded_; + Source& coded_; +public: + explicit HexDecoder(Source& s) : coded_(s) { Decode(); } +private: + void Decode(); + + HexDecoder(const HexDecoder&); // hide copy + HexDecoder& operator=(const HexDecoder&); // and assign +}; + + +// Base 64 encoding, see RFC 3548 +class Base64Encoder { + ByteBlock encoded_; + Source& plain_; +public: + explicit Base64Encoder(Source& s) : plain_(s) { Encode(); } +private: + void Encode(); + + Base64Encoder(const Base64Encoder&); // hide copy + Base64Encoder& operator=(const Base64Encoder&); // and assign +}; + + +// Base 64 decoding, see RFC 3548 +class Base64Decoder { + ByteBlock decoded_; + Source& coded_; +public: + explicit Base64Decoder(Source& s) : coded_(s) { Decode(); } +private: + void Decode(); + + Base64Decoder(const Base64Decoder&); // hide copy + Base64Decoder& operator=(const Base64Decoder&); // and assign +}; + + +} // namespace + +#endif // TAO_CRYPT_CODING_HPP diff --git a/mysql/extra/yassl/taocrypt/include/des.hpp b/mysql/extra/yassl/taocrypt/include/des.hpp new file mode 100644 index 0000000..d88e9ef --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/des.hpp @@ -0,0 +1,130 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* des.hpp defines DES, DES_EDE2, and DES_EDE3 + see FIPS 46-2 and FIPS 81 +*/ + + +#ifndef TAO_CRYPT_DES_HPP +#define TAO_CRYPT_DES_HPP + +#include "misc.hpp" +#include "modes.hpp" + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_DES_ASM +#endif + + +namespace TaoCrypt { + + +enum { DES_BLOCK_SIZE = 8, DES_KEY_SIZE = 32 }; + + +class BasicDES { +public: + void SetKey(const byte*, word32, CipherDir dir); + void RawProcessBlock(word32&, word32&) const; +protected: + word32 k_[DES_KEY_SIZE]; +}; + + +// DES +class DES : public Mode_BASE, public BasicDES { +public: + DES(CipherDir DIR, Mode MODE) + : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {} + +private: + void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + + DES(const DES&); // hide copy + DES& operator=(const DES&); // and assign +}; + + +// DES_EDE2 +class DES_EDE2 : public Mode_BASE { +public: + DES_EDE2(CipherDir DIR, Mode MODE) + : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {} + + void SetKey(const byte*, word32, CipherDir dir); +private: + BasicDES des1_; + BasicDES des2_; + + void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + + DES_EDE2(const DES_EDE2&); // hide copy + DES_EDE2& operator=(const DES_EDE2&); // and assign +}; + + + +// DES_EDE3 +class DES_EDE3 : public Mode_BASE { +public: + DES_EDE3(CipherDir DIR, Mode MODE) + : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {} + + void SetKey(const byte*, word32, CipherDir dir); + void SetIV(const byte* iv) { memcpy(r_, iv, DES_BLOCK_SIZE); } +#ifdef DO_DES_ASM + void Process(byte*, const byte*, word32); +#endif +private: + BasicDES des1_; + BasicDES des2_; + BasicDES des3_; + + void AsmProcess(const byte* in, byte* out, void* box) const; + void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + + DES_EDE3(const DES_EDE3&); // hide copy + DES_EDE3& operator=(const DES_EDE3&); // and assign +}; + + +typedef BlockCipher DES_ECB_Encryption; +typedef BlockCipher DES_ECB_Decryption; + +typedef BlockCipher DES_CBC_Encryption; +typedef BlockCipher DES_CBC_Decryption; + +typedef BlockCipher DES_EDE2_ECB_Encryption; +typedef BlockCipher DES_EDE2_ECB_Decryption; + +typedef BlockCipher DES_EDE2_CBC_Encryption; +typedef BlockCipher DES_EDE2_CBC_Decryption; + +typedef BlockCipher DES_EDE3_ECB_Encryption; +typedef BlockCipher DES_EDE3_ECB_Decryption; + +typedef BlockCipher DES_EDE3_CBC_Encryption; +typedef BlockCipher DES_EDE3_CBC_Decryption; + + +} // namespace + + +#endif // TAO_CRYPT_DES_HPP diff --git a/mysql/extra/yassl/taocrypt/include/dh.hpp b/mysql/extra/yassl/taocrypt/include/dh.hpp new file mode 100644 index 0000000..bdb90dd --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/dh.hpp @@ -0,0 +1,86 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* dh.hpp provides Diffie-Hellman support +*/ + + +#ifndef TAO_CRYPT_DH_HPP +#define TAO_CRYPT_DH_HPP + +#include "misc.hpp" +#include "integer.hpp" + +namespace TaoCrypt { + + +class Source; + + +// Diffie-Hellman +class DH { +public: + DH() {} + DH(Integer& p, Integer& g) : p_(p), g_(g) {} + explicit DH(Source&); + + DH(const DH& that) : p_(that.p_), g_(that.g_) {} + DH& operator=(const DH& that) + { + DH tmp(that); + Swap(tmp); + return *this; + } + + void Swap(DH& other) + { + p_.Swap(other.p_); + g_.Swap(other.g_); + } + + void Initialize(Source&); + void Initialize(Integer& p, Integer& g) + { + SetP(p); + SetG(g); + } + + void GenerateKeyPair(RandomNumberGenerator&, byte*, byte*); + void Agree(byte*, const byte*, const byte*, word32 otherSz = 0); + + void SetP(const Integer& p) { p_ = p; } + void SetG(const Integer& g) { g_ = g; } + + Integer& GetP() { return p_; } + Integer& GetG() { return g_; } + + // for p and agree + word32 GetByteLength() const { return p_.ByteCount(); } +private: + // group parms + Integer p_; + Integer g_; + + void GeneratePrivate(RandomNumberGenerator&, byte*); + void GeneratePublic(const byte*, byte*); +}; + + +} // namespace + +#endif // TAO_CRYPT_DH_HPP diff --git a/mysql/extra/yassl/taocrypt/include/dsa.hpp b/mysql/extra/yassl/taocrypt/include/dsa.hpp new file mode 100644 index 0000000..d7f81c2 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/dsa.hpp @@ -0,0 +1,126 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* dsa.hpp provides Digitial Signautre Algorithm see FIPS 186-2 +*/ + +#ifndef TAO_CRYPT_DSA_HPP +#define TAO_CRYPT_DSA_HPP + +#include "integer.hpp" + + +namespace TaoCrypt { + +class Source; + + +class DSA_PublicKey { +protected: + Integer p_; + Integer q_; + Integer g_; + Integer y_; +public: + DSA_PublicKey() {} + explicit DSA_PublicKey(Source&); + + void Initialize(Source&); + void Initialize(const Integer& p, const Integer& q, const Integer& g, + const Integer& y); + + const Integer& GetModulus() const; + const Integer& GetSubGroupOrder() const; + const Integer& GetSubGroupGenerator() const; + const Integer& GetPublicPart() const; + + void SetModulus(const Integer&); + void SetSubGroupOrder(const Integer&); + void SetSubGroupGenerator(const Integer&); + void SetPublicPart(const Integer&); + + word32 SignatureLength() const; + + DSA_PublicKey(const DSA_PublicKey&); + DSA_PublicKey& operator=(const DSA_PublicKey&); + + void Swap(DSA_PublicKey& other); +}; + + + +class DSA_PrivateKey : public DSA_PublicKey { + Integer x_; +public: + DSA_PrivateKey() {} + explicit DSA_PrivateKey(Source&); + + void Initialize(Source&); + void Initialize(const Integer& p, const Integer& q, const Integer& g, + const Integer& y, const Integer& x); + + const Integer& GetPrivatePart() const; + + void SetPrivatePart(const Integer&); +private: + DSA_PrivateKey(const DSA_PrivateKey&); // hide copy + DSA_PrivateKey& operator=(const DSA_PrivateKey&); // and assign +}; + + + +class DSA_Signer { + const DSA_PrivateKey& key_; + Integer r_; + Integer s_; +public: + explicit DSA_Signer(const DSA_PrivateKey&); + + word32 Sign(const byte* sha_digest, byte* sig, RandomNumberGenerator&); + + const Integer& GetR() const; + const Integer& GetS() const; +private: + DSA_Signer(const DSA_Signer&); // hide copy + DSA_Signer& operator=(DSA_Signer&); // and assign +}; + + +class DSA_Verifier { + const DSA_PublicKey& key_; + Integer r_; + Integer s_; +public: + explicit DSA_Verifier(const DSA_PublicKey&); + + bool Verify(const byte* sha_digest, const byte* sig); + + const Integer& GetR() const; + const Integer& GetS() const; +private: + DSA_Verifier(const DSA_Verifier&); // hide copy + DSA_Verifier& operator=(const DSA_Verifier&); // and assign +}; + + + + + +} // namespace + +#endif // TAO_CRYPT_DSA_HPP diff --git a/mysql/extra/yassl/taocrypt/include/error.hpp b/mysql/extra/yassl/taocrypt/include/error.hpp new file mode 100644 index 0000000..cb2130d --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/error.hpp @@ -0,0 +1,88 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* error.hpp provides a taocrypt error numbers + * + */ + + +#ifndef TAO_CRYPT_ERROR_HPP +#define TAO_CRYPT_ERROR_HPP + + +namespace TaoCrypt { + + +enum ErrorNumber { + +NO_ERROR_E = 0, // "not in error state" + +// RandomNumberGenerator +WINCRYPT_E = 1001, // "bad wincrypt acquire" +CRYPTGEN_E = 1002, // "CryptGenRandom error" +OPEN_RAN_E = 1003, // "open /dev/urandom error" +READ_RAN_E = 1004, // "read /dev/urandom error" + +// Integer +INTEGER_E = 1010, // "bad DER Integer Header" + + +// ASN.1 +SEQUENCE_E = 1020, // "bad Sequence Header" +SET_E = 1021, // "bad Set Header" +VERSION_E = 1022, // "version length not 1" +SIG_OID_E = 1023, // "signature OID mismatch" +BIT_STR_E = 1024, // "bad BitString Header" +UNKNOWN_OID_E = 1025, // "unknown key OID type" +OBJECT_ID_E = 1026, // "bad Ojbect ID Header" +TAG_NULL_E = 1027, // "expected TAG NULL" +EXPECT_0_E = 1028, // "expected 0" +OCTET_STR_E = 1029, // "bad Octet String Header" +TIME_E = 1030, // "bad TIME" + +DATE_SZ_E = 1031, // "bad Date Size" +SIG_LEN_E = 1032, // "bad Signature Length" +UNKOWN_SIG_E = 1033, // "unknown signature OID" +UNKOWN_HASH_E = 1034, // "unknown hash OID" +DSA_SZ_E = 1035, // "bad DSA r or s size" +BEFORE_DATE_E = 1036, // "before date in the future" +AFTER_DATE_E = 1037, // "after date in the past" +SIG_CONFIRM_E = 1038, // "bad self signature confirmation" +SIG_OTHER_E = 1039, // "bad other signature confirmation" + +CONTENT_E = 1040, // "bad content processing" +PEM_E = 1041 // "bad pem format error" + + // add error string to yassl/src/yassl_error.cpp !!! +}; + + +struct Error { + ErrorNumber what_; // description number, 0 for no error + + explicit Error(ErrorNumber w = NO_ERROR_E) : what_(w) {} + + ErrorNumber What() const { return what_; } + void SetError(ErrorNumber w) { what_ = w; } +}; + + + +} // namespace TaoCrypt + +#endif // TAO_CRYPT_ERROR_HPP diff --git a/mysql/extra/yassl/taocrypt/include/file.hpp b/mysql/extra/yassl/taocrypt/include/file.hpp new file mode 100644 index 0000000..9851a00 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/file.hpp @@ -0,0 +1,130 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* file.hpp provies File Sources and Sinks +*/ + + +#ifndef TAO_CRYPT_FILE_HPP +#define TAO_CRYPT_FILE_HPP + +#include "misc.hpp" +#include "block.hpp" +#include "error.hpp" +#include + +namespace TaoCrypt { + + +class Source { + ByteBlock buffer_; + word32 current_; + Error error_; +public: + explicit Source(word32 sz = 0) : buffer_(sz), current_(0) {} + Source(const byte* b, word32 sz) : buffer_(b, sz), current_(0) {} + + word32 remaining() { if (GetError().What()) return 0; + else return buffer_.size() - current_; } + word32 size() const { return buffer_.size(); } + void grow(word32 sz) { buffer_.CleanGrow(sz); } + + bool IsLeft(word32 sz) { if (remaining() >= sz) return true; + else { SetError(CONTENT_E); return false; } } + + const byte* get_buffer() const { return buffer_.get_buffer(); } + const byte* get_current() const { return &buffer_[current_]; } + word32 get_index() const { return current_; } + void set_index(word32 i) { if (i < size()) current_ = i; } + + byte operator[] (word32 i) { current_ = i; return next(); } + byte next() { if (IsLeft(1)) return buffer_[current_++]; else return 0; } + byte prev() { if (current_) return buffer_[--current_]; else return 0; } + + void add(const byte* data, word32 len) + { + if (IsLeft(len)) { + memcpy(buffer_.get_buffer() + current_, data, len); + current_ += len; + } + } + + void advance(word32 i) { if (IsLeft(i)) current_ += i; } + void reset(ByteBlock&); + + Error GetError() { return error_; } + void SetError(ErrorNumber w) { error_.SetError(w); } + + friend class FileSource; // for get() + + Source(const Source& that) + : buffer_(that.buffer_), current_(that.current_) {} + + Source& operator=(const Source& that) + { + Source tmp(that); + Swap(tmp); + return *this; + } + + void Swap(Source& other) + { + buffer_.Swap(other.buffer_); + STL::swap(current_, other.current_); + } + +}; + + +// File Source +class FileSource { + FILE* file_; +public: + FileSource(const char* fname, Source& source); + ~FileSource(); + + word32 size(bool use_current = false); +private: + word32 get(Source&); + word32 size_left(); + + FileSource(const FileSource&); // hide + FileSource& operator=(const FileSource&); // hide +}; + + +// File Sink +class FileSink { + FILE* file_; +public: + FileSink(const char* fname, Source& source); + ~FileSink(); + + word32 size(bool use_current = false); +private: + void put(Source&); + + FileSink(const FileSink&); // hide + FileSink& operator=(const FileSink&); // hide +}; + + + +} // namespace + +#endif // TAO_CRYPT_FILE_HPP diff --git a/mysql/extra/yassl/taocrypt/include/hash.hpp b/mysql/extra/yassl/taocrypt/include/hash.hpp new file mode 100644 index 0000000..4d2f7dd --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/hash.hpp @@ -0,0 +1,110 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* hash.hpp provides a base for digest types +*/ + + +#ifndef TAO_CRYPT_HASH_HPP +#define TAO_CRYPT_HASH_HPP + +#include "misc.hpp" + +namespace TaoCrypt { + + +// HASH +class HASH : public virtual_base { +public: + virtual ~HASH() {} + + virtual void Update(const byte*, word32) = 0; + virtual void Final(byte*) = 0; + + virtual void Init() = 0; + + virtual word32 getBlockSize() const = 0; + virtual word32 getDigestSize() const = 0; +}; + + +// HASH with Transform +class HASHwithTransform : public HASH { +public: + HASHwithTransform(word32 digSz, word32 buffSz); + virtual ~HASHwithTransform() {} + virtual ByteOrder getByteOrder() const = 0; + virtual word32 getPadSize() const = 0; + + virtual void Update(const byte*, word32); + virtual void Final(byte*); + + word32 GetBitCountLo() const { return loLen_ << 3; } + word32 GetBitCountHi() const { return (loLen_ >> (8*sizeof(loLen_) - 3)) + + (hiLen_ << 3); } + enum { MaxDigestSz = 8, MaxBufferSz = 64 }; +protected: + typedef word32 HashLengthType; + word32 buffLen_; // in bytes + HashLengthType loLen_; // length in bytes + HashLengthType hiLen_; // length in bytes + word32 digest_[MaxDigestSz]; + word32 buffer_[MaxBufferSz / sizeof(word32)]; + + virtual void Transform() = 0; + + void AddLength(word32); +}; + + +#ifdef WORD64_AVAILABLE + +// 64-bit HASH with Transform +class HASH64withTransform : public HASH { +public: + HASH64withTransform(word32 digSz, word32 buffSz); + virtual ~HASH64withTransform() {} + virtual ByteOrder getByteOrder() const = 0; + virtual word32 getPadSize() const = 0; + + virtual void Update(const byte*, word32); + virtual void Final(byte*); + + word32 GetBitCountLo() const { return loLen_ << 3; } + word32 GetBitCountHi() const { return (loLen_ >> (8*sizeof(loLen_) - 3)) + + (hiLen_ << 3); } + enum { MaxDigestSz = 8, MaxBufferSz = 128 }; +protected: + typedef word32 HashLengthType; + word32 buffLen_; // in bytes + HashLengthType loLen_; // length in bytes + HashLengthType hiLen_; // length in bytes + word64 digest_[MaxDigestSz]; + word64 buffer_[MaxBufferSz / sizeof(word64)]; + + virtual void Transform() = 0; + + void AddLength(word32); +}; + +#endif // WORD64_AVAILABLE + + +} // namespace + +#endif // TAO_CRYPT_HASH_HPP diff --git a/mysql/extra/yassl/taocrypt/include/hc128.hpp b/mysql/extra/yassl/taocrypt/include/hc128.hpp new file mode 100644 index 0000000..69e9d63 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/hc128.hpp @@ -0,0 +1,63 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* hc128.hpp defines HC128 +*/ + + +#ifndef TAO_CRYPT_HC128_HPP +#define TAO_CRYPT_HC128_HPP + +#include "misc.hpp" + +namespace TaoCrypt { + + +// HC128 encryption and decryption +class HC128 { +public: + + typedef HC128 Encryption; + typedef HC128 Decryption; + + + HC128() {} + + void Process(byte*, const byte*, word32); + void SetKey(const byte*, const byte*); +private: + word32 T_[1024]; /* P[i] = T[i]; Q[i] = T[1024 + i ]; */ + word32 X_[16]; + word32 Y_[16]; + word32 counter1024_; /* counter1024 = i mod 1024 at the ith step */ + word32 key_[8]; + word32 iv_[8]; + + void SetIV(const byte*); + void GenerateKeystream(word32*); + void SetupUpdate(); + + HC128(const HC128&); // hide copy + const HC128 operator=(const HC128&); // and assign +}; + +} // namespace + + +#endif // TAO_CRYPT_HC128_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/hmac.hpp b/mysql/extra/yassl/taocrypt/include/hmac.hpp new file mode 100644 index 0000000..4df081b --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/hmac.hpp @@ -0,0 +1,138 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* hamc.hpp implements HMAC, see RFC 2104 +*/ + + +#ifndef TAO_CRYPT_HMAC_HPP +#define TAO_CRYPT_HMAC_HPP + +#include "hash.hpp" + +namespace TaoCrypt { + + +// HMAC class template +template +class HMAC { +public: + enum { IPAD = 0x36, OPAD = 0x5C }; + + HMAC() : ipad_(reinterpret_cast(&ip_)), + opad_(reinterpret_cast(&op_)), + innerHash_(reinterpret_cast(&innerH_)) + { + Init(); + } + void Update(const byte*, word32); + void Final(byte*); + void Init(); + + void SetKey(const byte*, word32); +private: + byte* ipad_; + byte* opad_; + byte* innerHash_; + bool innerHashKeyed_; + T mac_; + + // MSVC 6 HACK, gives compiler error if calculated in array + enum { HMAC_BSIZE = T::BLOCK_SIZE / sizeof(word32), + HMAC_DSIZE = T::DIGEST_SIZE / sizeof(word32) }; + + word32 ip_[HMAC_BSIZE]; // align ipad_ on word32 + word32 op_[HMAC_BSIZE]; // align opad_ on word32 + word32 innerH_[HMAC_DSIZE]; // align innerHash_ on word32 + + void KeyInnerHash(); + + HMAC(const HMAC&); + HMAC& operator= (const HMAC&); +}; + + +// Setup +template +void HMAC::Init() +{ + mac_.Init(); + innerHashKeyed_ = false; +} + + +// Key generation +template +void HMAC::SetKey(const byte* key, word32 length) +{ + Init(); + + if (length <= T::BLOCK_SIZE) + memcpy(ipad_, key, length); + else { + mac_.Update(key, length); + mac_.Final(ipad_); + length = T::DIGEST_SIZE; + } + memset(ipad_ + length, 0, T::BLOCK_SIZE - length); + + for (word32 i = 0; i < T::BLOCK_SIZE; i++) { + opad_[i] = ipad_[i] ^ OPAD; + ipad_[i] ^= IPAD; + } +} + + +// Inner Key Hash +template +void HMAC::KeyInnerHash() +{ + mac_.Update(ipad_, T::BLOCK_SIZE); + innerHashKeyed_ = true; +} + + +// Update +template +void HMAC::Update(const byte* msg, word32 length) +{ + if (!innerHashKeyed_) + KeyInnerHash(); + mac_.Update(msg, length); +} + + +// Final +template +void HMAC::Final(byte* hash) +{ + if (!innerHashKeyed_) + KeyInnerHash(); + mac_.Final(innerHash_); + + mac_.Update(opad_, T::BLOCK_SIZE); + mac_.Update(innerHash_, T::DIGEST_SIZE); + mac_.Final(hash); + + innerHashKeyed_ = false; +} + + +} // namespace + +#endif // TAO_CRYPT_HMAC_HPP diff --git a/mysql/extra/yassl/taocrypt/include/integer.hpp b/mysql/extra/yassl/taocrypt/include/integer.hpp new file mode 100644 index 0000000..05fe189 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/integer.hpp @@ -0,0 +1,332 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's integer.h from CryptoPP */ + + +#ifndef TAO_CRYPT_INTEGER_HPP +#define TAO_CRYPT_INTEGER_HPP + + +#ifdef _MSC_VER + // 4250: dominance + // 4660: explicitly instantiating a class already implicitly instantiated + // 4661: no suitable definition provided for explicit template request + // 4786: identifer was truncated in debug information + // 4355: 'this' : used in base member initializer list +# pragma warning(disable: 4250 4660 4661 4786 4355) +#endif + + +#include "misc.hpp" +#include "block.hpp" +#include "random.hpp" +#include "file.hpp" +#include +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +#ifdef TAOCRYPT_X86ASM_AVAILABLE + #if defined(__GNUC__) && (__GNUC__ >= 4) + // GCC 4 or greater optimizes too much inline on recursive for bigint, + // -O3 just as fast without asm here anyway + #undef TAOCRYPT_X86ASM_AVAILABLE + #endif +#endif + +#ifdef TAOCRYPT_X86ASM_AVAILABLE + +#ifdef _M_IX86 + #if (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 500)) || \ + (defined(__ICL) && (__ICL >= 500)) + #define SSE2_INTRINSICS_AVAILABLE + #define TAOCRYPT_MM_MALLOC_AVAILABLE + #elif defined(_MSC_VER) + // _mm_free seems to be the only way to tell if the Processor Pack is + //installed or not + #include + #if defined(_mm_free) + #define SSE2_INTRINSICS_AVAILABLE + #define TAOCRYPT_MM_MALLOC_AVAILABLE + #endif + #endif +#endif + +// SSE2 intrinsics work in GCC 3.3 or later +#if defined(__SSE2__) && (__GNUC__ == 4 || __GNUC_MAJOR__ > 3 || \ + __GNUC_MINOR__ > 2) + #define SSE2_INTRINSICS_AVAILABLE +#endif + +#endif // X86ASM + + + + +namespace TaoCrypt { + +#if defined(SSE2_INTRINSICS_AVAILABLE) + + // Allocator handling proper alignment + template + class AlignedAllocator : public AllocatorBase + { + public: + typedef typename AllocatorBase::pointer pointer; + typedef typename AllocatorBase::size_type size_type; + + pointer allocate(size_type n, const void* = 0); + void deallocate(void* p, size_type n); + pointer reallocate(T* p, size_type oldSize, size_type newSize, + bool preserve) + { + return StdReallocate(*this, p, oldSize, newSize, preserve); + } + + #if !(defined(TAOCRYPT_MALLOC_ALIGNMENT_IS_16) || \ + defined(TAOCRYPT_MEMALIGN_AVAILABLE) || \ + defined(TAOCRYPT_MM_MALLOC_AVAILABLE)) + #define TAOCRYPT_NO_ALIGNED_ALLOC + AlignedAllocator() : m_pBlock(0) {} + protected: + void *m_pBlock; + #endif + }; + + typedef Block > AlignedWordBlock; +#else + typedef WordBlock AlignedWordBlock; +#endif + + + +#ifdef _WIN32 + #undef max // avoid name clash +#endif +// general MAX +template inline +const T& max(const T& a, const T& b) +{ + return a > b ? a : b; +} + + +// Large Integer class +class Integer { +public: + enum Sign {POSITIVE = 0, NEGATIVE = 1 }; + enum Signedness { UNSIGNED, SIGNED }; + enum RandomNumberType { ANY, PRIME }; + + class DivideByZero {}; + + Integer(); + Integer(const Integer& t); + Integer(signed long value); + Integer(Sign s, word highWord, word lowWord); + + // BER Decode Source + explicit Integer(Source&); + + Integer(const byte* encodedInteger, unsigned int byteCount, + Signedness s = UNSIGNED); + + ~Integer() {} + + static const Integer& Zero(); + static const Integer& One(); + + Integer& Ref() { return *this; } + + Integer(RandomNumberGenerator& rng, const Integer& min, + const Integer& max); + + static Integer Power2(unsigned int e); + + unsigned int MinEncodedSize(Signedness = UNSIGNED) const; + unsigned int Encode(byte* output, unsigned int outputLen, + Signedness = UNSIGNED) const; + + void Decode(const byte* input, unsigned int inputLen, + Signedness = UNSIGNED); + void Decode(Source&); + + bool IsConvertableToLong() const; + signed long ConvertToLong() const; + + unsigned int BitCount() const; + unsigned int ByteCount() const; + unsigned int WordCount() const; + + bool GetBit(unsigned int i) const; + byte GetByte(unsigned int i) const; + unsigned long GetBits(unsigned int i, unsigned int n) const; + + bool IsZero() const { return !*this; } + bool NotZero() const { return !IsZero(); } + bool IsNegative() const { return sign_ == NEGATIVE; } + bool NotNegative() const { return !IsNegative(); } + bool IsPositive() const { return NotNegative() && NotZero(); } + bool NotPositive() const { return !IsPositive(); } + bool IsEven() const { return GetBit(0) == 0; } + bool IsOdd() const { return GetBit(0) == 1; } + + Integer& operator=(const Integer& t); + Integer& operator+=(const Integer& t); + Integer& operator-=(const Integer& t); + Integer& operator*=(const Integer& t) { return *this = Times(t); } + Integer& operator/=(const Integer& t) + { return *this = DividedBy(t);} + Integer& operator%=(const Integer& t) { return *this = Modulo(t); } + Integer& operator/=(word t) { return *this = DividedBy(t); } + Integer& operator%=(word t) { return *this = Modulo(t); } + Integer& operator<<=(unsigned int); + Integer& operator>>=(unsigned int); + + + void Randomize(RandomNumberGenerator &rng, unsigned int bitcount); + void Randomize(RandomNumberGenerator &rng, const Integer &min, + const Integer &max); + + void SetBit(unsigned int n, bool value = 1); + void SetByte(unsigned int n, byte value); + + void Negate(); + void SetPositive() { sign_ = POSITIVE; } + void SetNegative() { if (!!(*this)) sign_ = NEGATIVE; } + void Swap(Integer& a); + + bool operator!() const; + Integer operator+() const {return *this;} + Integer operator-() const; + Integer& operator++(); + Integer& operator--(); + Integer operator++(int) + { Integer temp = *this; ++*this; return temp; } + Integer operator--(int) + { Integer temp = *this; --*this; return temp; } + + int Compare(const Integer& a) const; + + Integer Plus(const Integer &b) const; + Integer Minus(const Integer &b) const; + Integer Times(const Integer &b) const; + Integer DividedBy(const Integer &b) const; + Integer Modulo(const Integer &b) const; + Integer DividedBy(word b) const; + word Modulo(word b) const; + + Integer operator>>(unsigned int n) const { return Integer(*this)>>=n; } + Integer operator<<(unsigned int n) const { return Integer(*this)<<=n; } + + Integer AbsoluteValue() const; + Integer Doubled() const { return Plus(*this); } + Integer Squared() const { return Times(*this); } + Integer SquareRoot() const; + + bool IsSquare() const; + bool IsUnit() const; + + Integer MultiplicativeInverse() const; + + friend Integer a_times_b_mod_c(const Integer& x, const Integer& y, + const Integer& m); + friend Integer a_exp_b_mod_c(const Integer& x, const Integer& e, + const Integer& m); + + static void Divide(Integer& r, Integer& q, const Integer& a, + const Integer& d); + static void Divide(word& r, Integer& q, const Integer& a, word d); + static void DivideByPowerOf2(Integer& r, Integer& q, const Integer& a, + unsigned int n); + static Integer Gcd(const Integer& a, const Integer& n); + + Integer InverseMod(const Integer& n) const; + word InverseMod(word n) const; + +private: + friend class ModularArithmetic; + friend class MontgomeryRepresentation; + + Integer(word value, unsigned int length); + int PositiveCompare(const Integer& t) const; + + friend void PositiveAdd(Integer& sum, const Integer& a, const Integer& b); + friend void PositiveSubtract(Integer& diff, const Integer& a, + const Integer& b); + friend void PositiveMultiply(Integer& product, const Integer& a, + const Integer& b); + friend void PositiveDivide(Integer& remainder, Integer& quotient, const + Integer& dividend, const Integer& divisor); + AlignedWordBlock reg_; + Sign sign_; +}; + +inline bool operator==(const Integer& a, const Integer& b) + {return a.Compare(b)==0;} +inline bool operator!=(const Integer& a, const Integer& b) + {return a.Compare(b)!=0;} +inline bool operator> (const Integer& a, const Integer& b) + {return a.Compare(b)> 0;} +inline bool operator>=(const Integer& a, const Integer& b) + {return a.Compare(b)>=0;} +inline bool operator< (const Integer& a, const Integer& b) + {return a.Compare(b)< 0;} +inline bool operator<=(const Integer& a, const Integer& b) + {return a.Compare(b)<=0;} + +inline Integer operator+(const Integer &a, const Integer &b) + {return a.Plus(b);} +inline Integer operator-(const Integer &a, const Integer &b) + {return a.Minus(b);} +inline Integer operator*(const Integer &a, const Integer &b) + {return a.Times(b);} +inline Integer operator/(const Integer &a, const Integer &b) + {return a.DividedBy(b);} +inline Integer operator%(const Integer &a, const Integer &b) + {return a.Modulo(b);} +inline Integer operator/(const Integer &a, word b) {return a.DividedBy(b);} +inline word operator%(const Integer &a, word b) {return a.Modulo(b);} + +inline void swap(Integer &a, Integer &b) +{ + a.Swap(b); +} + + +Integer CRT(const Integer& xp, const Integer& p, const Integer& xq, + const Integer& q, const Integer& u); + +inline Integer ModularExponentiation(const Integer& a, const Integer& e, + const Integer& m) +{ + return a_exp_b_mod_c(a, e, m); +} + +Integer ModularRoot(const Integer& a, const Integer& dp, const Integer& dq, + const Integer& p, const Integer& q, const Integer& u); + + + +} // namespace + +#endif // TAO_CRYPT_INTEGER_HPP diff --git a/mysql/extra/yassl/taocrypt/include/kernelc.hpp b/mysql/extra/yassl/taocrypt/include/kernelc.hpp new file mode 100644 index 0000000..0840b3f --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/kernelc.hpp @@ -0,0 +1,34 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* kernelc.hpp provides support for C std lib when compiled in kernel mode +*/ + +#ifndef TAOCRYPT_KERNELC_HPP +#define TAOCRYPT_KERNELC_HPP + +#include // get right size_t + +// system functions that c++ doesn't like headers for + +extern "C" void* memcpy(void*, const void*, size_t); +extern "C" void* memset(void*, int, size_t); +extern "C" void printk(char *fmt, ...); + + +#endif // TAOCRYPT_KERNELC_HPP diff --git a/mysql/extra/yassl/taocrypt/include/md2.hpp b/mysql/extra/yassl/taocrypt/include/md2.hpp new file mode 100644 index 0000000..5c2b141 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/md2.hpp @@ -0,0 +1,64 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* md2.hpp provides MD2 digest support, see RFC 1319 +*/ + +#ifndef TAO_CRYPT_MD2_HPP +#define TAO_CRYPT_MD2_HPP + + +#include "hash.hpp" +#include "block.hpp" + + +namespace TaoCrypt { + + +// MD2 digest +class MD2 : public HASH { +public: + enum { BLOCK_SIZE = 16, DIGEST_SIZE = 16, PAD_SIZE = 16, X_SIZE = 48 }; + MD2(); + + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + + void Update(const byte*, word32); + void Final(byte*); + + void Init(); + void Swap(MD2&); +private: + ByteBlock X_, C_, buffer_; + word32 count_; // bytes % PAD_SIZE + + MD2(const MD2&); + MD2& operator=(const MD2&); +}; + +inline void swap(MD2& a, MD2& b) +{ + a.Swap(b); +} + + +} // namespace + +#endif // TAO_CRYPT_MD2_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/md4.hpp b/mysql/extra/yassl/taocrypt/include/md4.hpp new file mode 100644 index 0000000..424c744 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/md4.hpp @@ -0,0 +1,62 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* md4.hpp provides MD4 digest support + * WANRING: MD4 is considered insecure, only use if you have to, e.g., yaSSL + * libcurl supports needs this for NTLM authentication +*/ + +#ifndef TAO_CRYPT_MD4_HPP +#define TAO_CRYPT_MD4_HPP + +#include "hash.hpp" + +namespace TaoCrypt { + + +// MD4 digest +class MD4 : public HASHwithTransform { +public: + enum { BLOCK_SIZE = 64, DIGEST_SIZE = 16, PAD_SIZE = 56, + TAO_BYTE_ORDER = LittleEndianOrder }; // in Bytes + MD4() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + MD4(const MD4&); + MD4& operator= (const MD4&); + + void Init(); + void Swap(MD4&); +private: + void Transform(); +}; + +inline void swap(MD4& a, MD4& b) +{ + a.Swap(b); +} + + +} // namespace + +#endif // TAO_CRYPT_MD4_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/md5.hpp b/mysql/extra/yassl/taocrypt/include/md5.hpp new file mode 100644 index 0000000..fce37bd --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/md5.hpp @@ -0,0 +1,70 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* md5.hpp provides MD5 digest support, see RFC 1321 +*/ + +#ifndef TAO_CRYPT_MD5_HPP +#define TAO_CRYPT_MD5_HPP + +#include "hash.hpp" + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_MD5_ASM +#endif + +namespace TaoCrypt { + + +// MD5 digest +class MD5 : public HASHwithTransform { +public: + enum { BLOCK_SIZE = 64, DIGEST_SIZE = 16, PAD_SIZE = 56, + TAO_BYTE_ORDER = LittleEndianOrder }; // in Bytes + MD5() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + MD5(const MD5&); + MD5& operator= (const MD5&); + +#ifdef DO_MD5_ASM + void Update(const byte*, word32); +#endif + + void Init(); + void Swap(MD5&); +private: + void Transform(); + void AsmTransform(const byte* data, word32 times); +}; + +inline void swap(MD5& a, MD5& b) +{ + a.Swap(b); +} + + +} // namespace + +#endif // TAO_CRYPT_MD5_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/misc.hpp b/mysql/extra/yassl/taocrypt/include/misc.hpp new file mode 100644 index 0000000..18f13e7 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/misc.hpp @@ -0,0 +1,888 @@ +/* + Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's misc.h from CryptoPP */ + +#ifndef TAO_CRYPT_MISC_HPP +#define TAO_CRYPT_MISC_HPP + + +#if !defined(DO_TAOCRYPT_KERNEL_MODE) + #include + #include +#else + #include "kernelc.hpp" +#endif + +#include "types.hpp" +#include "type_traits.hpp" + + + +namespace TaoCrypt { + + +// Delete static singleton holders +void CleanUp(); + + +#ifdef YASSL_PURE_C + + // library allocation + struct new_t {}; // TaoCrypt New type + extern new_t tc; // pass in parameter + + } // namespace TaoCrypt + + void* operator new (size_t, TaoCrypt::new_t); + void* operator new[](size_t, TaoCrypt::new_t); + + void operator delete (void*, TaoCrypt::new_t); + void operator delete[](void*, TaoCrypt::new_t); + + + namespace TaoCrypt { + + template + void tcDelete(T* ptr) + { + if (ptr) ptr->~T(); + ::operator delete(ptr, TaoCrypt::tc); + } + + template + void tcArrayDelete(T* ptr) + { + // can't do array placement destruction since not tracking size in + // allocation, only allow builtins to use array placement since they + // don't need destructors called + typedef char builtin[IsFundamentalType::Yes ? 1 : -1]; + (void)sizeof(builtin); + + ::operator delete[](ptr, TaoCrypt::tc); + } + + #define NEW_TC new (TaoCrypt::tc) + + + // to resolve compiler generated operator delete on base classes with + // virtual destructors (when on stack) + class virtual_base { + public: + static void operator delete(void*) { } + }; + +#else // YASSL_PURE_C + + + template + void tcDelete(T* ptr) + { + delete ptr; + } + + template + void tcArrayDelete(T* ptr) + { + delete[] ptr; + } + + #define NEW_TC new + + class virtual_base {}; + + +#endif // YASSL_PURE_C + + +#if defined(_MSC_VER) || defined(__BCPLUSPLUS__) + #define INTEL_INTRINSICS + #define FAST_ROTATE +#elif defined(__MWERKS__) && TARGET_CPU_PPC + #define PPC_INTRINSICS + #define FAST_ROTATE +#elif defined(__GNUC__) && defined(__i386__) + // GCC does peephole optimizations which should result in using rotate + // instructions + #define FAST_ROTATE +#endif + + +// no gas on these systems ?, disable for now +#if defined(__sun__) + #undef TAOCRYPT_DISABLE_X86ASM + #define TAOCRYPT_DISABLE_X86ASM +#endif + +// icc problem with -03 and integer, disable for now +#if defined(__INTEL_COMPILER) + #undef TAOCRYPT_DISABLE_X86ASM + #define TAOCRYPT_DISABLE_X86ASM +#endif + +// indpedent of build system, unless ia32 asm is enabled disable it +#if !defined(TAOCRYPT_ENABLE_X86ASM) + #undef TAOCRYPT_DISABLE_X86ASM + #define TAOCRYPT_DISABLE_X86ASM +#endif + +// Turn on ia32 ASM for Big Integer +// CodeWarrior defines _MSC_VER +#if !defined(TAOCRYPT_DISABLE_X86ASM) && ((defined(_MSC_VER) && \ + !defined(__MWERKS__) && defined(_M_IX86)) || \ + (defined(__GNUC__) && defined(__i386__))) + #define TAOCRYPT_X86ASM_AVAILABLE +#endif + + +#ifdef TAOCRYPT_X86ASM_AVAILABLE + bool HaveCpuId(); + bool IsPentium(); + void CpuId(word32 input, word32 *output); + + extern bool isMMX; +#endif + + + + +// Turn on ia32 ASM for Ciphers and Message Digests +// Seperate define since these are more complex, use member offsets +// and user may want to turn off while leaving Big Integer optos on +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && !defined(DISABLE_TAO_ASM) + #define TAO_ASM +#endif + + +// Extra word in older vtable implementations, for ASM member offset +#if defined(__GNUC__) && __GNUC__ < 3 + #define OLD_GCC_OFFSET +#endif + + +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +# define TAOCRYPT_MALLOC_ALIGNMENT_IS_16 +#endif + +#if defined(__linux__) || defined(__sun__) +# define TAOCRYPT_MEMALIGN_AVAILABLE +#endif + + +#if defined(_WIN32) + #define TAOCRYPT_WIN32_AVAILABLE +#endif + +#if defined(__unix__) || defined(__MACH__) + #define TAOCRYPT_UNIX_AVAILABLE +#endif + + +// VC60 workaround: it doesn't allow typename in some places +#if defined(_MSC_VER) && (_MSC_VER < 1300) + #define CPP_TYPENAME +#else + #define CPP_TYPENAME typename +#endif + + +#ifdef _MSC_VER + #define TAOCRYPT_NO_VTABLE __declspec(novtable) +#else + #define TAOCRYPT_NO_VTABLE +#endif + + +#ifdef USE_SYS_STL + // use system STL + #define STL_NAMESPACE std +#else + // use mySTL + #define STL_NAMESPACE mySTL +#endif + + +// ***************** DLL related ******************** + +#ifdef TAOCRYPT_WIN32_AVAILABLE + +#ifdef TAOCRYPT_EXPORTS + #define TAOCRYPT_IS_DLL + #define TAOCRYPT_DLL __declspec(dllexport) +#elif defined(TAOCRYPT_IMPORTS) + #define TAOCRYPT_IS_DLL + #define TAOCRYPT_DLL __declspec(dllimport) +#else + #define TAOCRYPT_DLL +#endif // EXPORTS + +#define TAOCRYPT_API __stdcall +#define TAOCRYPT_CDECL __cdecl + +#else // TAOCRYPT_WIN32_AVAILABLE + +#define TAOCRYPT_DLL +#define TAOCRYPT_API +#define TAOCRYPT_CDECL + +#endif // TAOCRYPT_WIN32_AVAILABLE + + +// ****************** tempalte stuff ******************* + + +#if defined(TAOCRYPT_MANUALLY_INSTANTIATE_TEMPLATES) && \ + !defined(TAOCRYPT_IMPORTS) + #define TAOCRYPT_DLL_TEMPLATE_CLASS template class TAOCRYPT_DLL +#elif defined(__MWERKS__) + #define TAOCRYPT_DLL_TEMPLATE_CLASS extern class TAOCRYPT_DLL +#else + #define TAOCRYPT_DLL_TEMPLATE_CLASS extern template class TAOCRYPT_DLL +#endif + + +#if defined(TAOCRYPT_MANUALLY_INSTANTIATE_TEMPLATES) && \ + !defined(TAOCRYPT_EXPORTS) + #define TAOCRYPT_STATIC_TEMPLATE_CLASS template class +#elif defined(__MWERKS__) + #define TAOCRYPT_STATIC_TEMPLATE_CLASS extern class +#else + #define TAOCRYPT_STATIC_TEMPLATE_CLASS extern template class +#endif + + +// ************** compile-time assertion *************** + +template +struct CompileAssert +{ + static char dummy[2*b-1]; +}; + +#define TAOCRYPT_COMPILE_ASSERT(assertion) \ + TAOCRYPT_COMPILE_ASSERT_INSTANCE(assertion, __LINE__) + +#if defined(TAOCRYPT_EXPORTS) || defined(TAOCRYPT_IMPORTS) + #define TAOCRYPT_COMPILE_ASSERT_INSTANCE(assertion, instance) +#else + #define TAOCRYPT_COMPILE_ASSERT_INSTANCE(assertion, instance) \ + (void)sizeof(CompileAssert<(assertion)>) +#endif + +#define TAOCRYPT_ASSERT_JOIN(X, Y) TAOCRYPT_DO_ASSERT_JOIN(X, Y) + +#define TAOCRYPT_DO_ASSERT_JOIN(X, Y) X##Y + + +/*************** helpers *****************************/ + +inline unsigned int BitsToBytes(unsigned int bitCount) +{ + return ((bitCount+7)/(8)); +} + +inline unsigned int BytesToWords(unsigned int byteCount) +{ + return ((byteCount+WORD_SIZE-1)/WORD_SIZE); +} + +inline unsigned int BitsToWords(unsigned int bitCount) +{ + return ((bitCount+WORD_BITS-1)/(WORD_BITS)); +} + +inline void CopyWords(word* r, const word* a, word32 n) +{ + for (word32 i = 0; i < n; i++) + r[i] = a[i]; +} + +inline unsigned int CountWords(const word* X, unsigned int N) +{ + while (N && X[N-1]==0) + N--; + return N; +} + +inline void SetWords(word* r, word a, unsigned int n) +{ + for (unsigned int i=0; i +struct EnumToType +{ + static ENUM_TYPE ToEnum() { return (ENUM_TYPE)VALUE; } +}; + +typedef EnumToType LittleEndian; +typedef EnumToType BigEndian; + + +#ifndef BIG_ENDIAN_ORDER + typedef LittleEndian HostByteOrder; +#else + typedef BigEndian HostByteOrder; +#endif + +inline ByteOrder GetHostByteOrder() +{ + return HostByteOrder::ToEnum(); +} + +inline bool HostByteOrderIs(ByteOrder order) +{ + return order == GetHostByteOrder(); +} + + +void xorbuf(byte*, const byte*, unsigned int); + + +template +inline bool IsPowerOf2(T n) +{ + return n > 0 && (n & (n-1)) == 0; +} + +template +inline T2 ModPowerOf2(T1 a, T2 b) +{ + return T2(a) & (b-1); +} + +template +inline T RoundDownToMultipleOf(T n, T m) +{ + return n - (IsPowerOf2(m) ? ModPowerOf2(n, m) : (n%m)); +} + +template +inline T RoundUpToMultipleOf(T n, T m) +{ + return RoundDownToMultipleOf(n+m-1, m); +} + +template +inline unsigned int GetAlignment(T* dummy = 0) // VC60 workaround +{ +#if (_MSC_VER >= 1300) + return __alignof(T); +#elif defined(__GNUC__) + return __alignof__(T); +#else + return sizeof(T); +#endif +} + +inline bool IsAlignedOn(const void* p, unsigned int alignment) +{ + return IsPowerOf2(alignment) ? ModPowerOf2((size_t)p, alignment) == 0 + : (size_t)p % alignment == 0; +} + +template +inline bool IsAligned(const void* p, T* dummy = 0) // VC60 workaround +{ + return IsAlignedOn(p, GetAlignment()); +} + + +template inline T rotlFixed(T x, unsigned int y) +{ + return (x<>(sizeof(T)*8-y)); +} + +template inline T rotrFixed(T x, unsigned int y) +{ + return (x>>y) | (x<<(sizeof(T)*8-y)); +} + +#ifdef INTEL_INTRINSICS + +#pragma intrinsic(_lrotl, _lrotr) + +template<> inline word32 rotlFixed(word32 x, word32 y) +{ + return y ? _lrotl(x, y) : x; +} + +template<> inline word32 rotrFixed(word32 x, word32 y) +{ + return y ? _lrotr(x, y) : x; +} + +#endif // INTEL_INTRINSICS + +#ifdef min +#undef min +#endif + + +template +inline const T& min(const T& a, const T& b) +{ + return a < b ? a : b; +} + + +inline word32 ByteReverse(word32 value) +{ +#ifdef PPC_INTRINSICS + // PPC: load reverse indexed instruction + return (word32)__lwbrx(&value,0); +#elif defined(FAST_ROTATE) + // 5 instructions with rotate instruction, 9 without + return (rotrFixed(value, 8U) & 0xff00ff00) | + (rotlFixed(value, 8U) & 0x00ff00ff); +#else + // 6 instructions with rotate instruction, 8 without + value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); + return rotlFixed(value, 16U); +#endif +} + + +#ifdef WORD64_AVAILABLE + +inline word64 ByteReverse(word64 value) +{ +#ifdef TAOCRYPT_SLOW_WORD64 + return (word64(ByteReverse(word32(value))) << 32) | + ByteReverse(word32(value>>32)); +#else + value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | + ((value & W64LIT(0x00FF00FF00FF00FF)) << 8); + value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | + ((value & W64LIT(0x0000FFFF0000FFFF)) << 16); + return rotlFixed(value, 32U); +#endif +} + +#endif // WORD64_AVAILABLE + + +template +inline void ByteReverse(T* out, const T* in, word32 byteCount) +{ + word32 count = byteCount/sizeof(T); + for (word32 i=0; i(out); + const word32* i = reinterpret_cast(in); + ByteReverse(o, i, byteCount); +} + + +template +inline T ByteReverseIf(T value, ByteOrder order) +{ + return HostByteOrderIs(order) ? value : ByteReverse(value); +} + + +template +inline void ByteReverseIf(T* out, const T* in, word32 bc, ByteOrder order) +{ + if (!HostByteOrderIs(order)) + ByteReverse(out, in, bc); + else if (out != in) + memcpy(out, in, bc); +} + + + +// do Asm Reverse is host is Little and x86asm +#ifdef LITTLE_ENDIAN_ORDER + #ifdef TAOCRYPT_X86ASM_AVAILABLE + #define LittleReverse AsmReverse + #else + #define LittleReverse ByteReverse + #endif +#else + #define LittleReverse +#endif + + +// do Asm Reverse is host is Big and x86asm +#ifdef BIG_ENDIAN_ORDER + #ifdef TAOCRYPT_X86ASM_AVAILABLE + #define BigReverse AsmReverse + #else + #define BigReverse ByteReverse + #endif +#else + #define BigReverse +#endif + + +#ifdef TAOCRYPT_X86ASM_AVAILABLE + + // faster than rotate, use bswap + + inline word32 AsmReverse(word32 wd) + { + #ifdef __GNUC__ + __asm__ + ( + "bswap %1" + : "=r"(wd) + : "0"(wd) + ); + #else + __asm + { + mov eax, wd + bswap eax + mov wd, eax + } + #endif + return wd; + } + +#endif + + +template +inline void GetUserKey(ByteOrder order, T* out, word32 outlen, const byte* in, + word32 inlen) +{ + const unsigned int U = sizeof(T); + memcpy(out, in, inlen); + memset((byte *)out+inlen, 0, outlen*U-inlen); + ByteReverseIf(out, out, RoundUpToMultipleOf(inlen, U), order); +} + + +#ifdef _MSC_VER + // disable conversion warning + // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy + #pragma warning(disable:4244 4996) +#endif + + +inline byte UnalignedGetWordNonTemplate(ByteOrder order, const byte *block, + byte*) +{ + return block[0]; +} + +inline word16 UnalignedGetWordNonTemplate(ByteOrder order, const byte* block, + word16*) +{ + return (order == BigEndianOrder) + ? block[1] | (block[0] << 8) + : block[0] | (block[1] << 8); +} + +inline word32 UnalignedGetWordNonTemplate(ByteOrder order, const byte* block, + word32*) +{ + return (order == BigEndianOrder) + ? word32(block[3]) | (word32(block[2]) << 8) | (word32(block[1]) << 16) + | (word32(block[0]) << 24) + : word32(block[0]) | (word32(block[1]) << 8) | (word32(block[2]) << 16) + | (word32(block[3]) << 24); +} + +template +inline T UnalignedGetWord(ByteOrder order, const byte *block, T* dummy = 0) +{ + return UnalignedGetWordNonTemplate(order, block, dummy); +} + +inline void UnalignedPutWord(ByteOrder order, byte *block, byte value, + const byte *xorBlock = 0) +{ + block[0] = xorBlock ? (value ^ xorBlock[0]) : value; +} + +#define GETBYTE(x, y) (unsigned int)byte((x)>>(8*(y))) + +inline void UnalignedPutWord(ByteOrder order, byte *block, word16 value, + const byte *xorBlock = 0) +{ + if (order == BigEndianOrder) + { + block[0] = GETBYTE(value, 1); + block[1] = GETBYTE(value, 0); + } + else + { + block[0] = GETBYTE(value, 0); + block[1] = GETBYTE(value, 1); + } + + if (xorBlock) + { + block[0] ^= xorBlock[0]; + block[1] ^= xorBlock[1]; + } +} + +inline void UnalignedPutWord(ByteOrder order, byte* block, word32 value, + const byte* xorBlock = 0) +{ + if (order == BigEndianOrder) + { + block[0] = GETBYTE(value, 3); + block[1] = GETBYTE(value, 2); + block[2] = GETBYTE(value, 1); + block[3] = GETBYTE(value, 0); + } + else + { + block[0] = GETBYTE(value, 0); + block[1] = GETBYTE(value, 1); + block[2] = GETBYTE(value, 2); + block[3] = GETBYTE(value, 3); + } + + if (xorBlock) + { + block[0] ^= xorBlock[0]; + block[1] ^= xorBlock[1]; + block[2] ^= xorBlock[2]; + block[3] ^= xorBlock[3]; + } +} + + +template +inline T GetWord(bool assumeAligned, ByteOrder order, const byte *block) +{ + if (assumeAligned) + return ByteReverseIf(*reinterpret_cast(block), order); + else + return UnalignedGetWord(order, block); +} + +template +inline void GetWord(bool assumeAligned, ByteOrder order, T &result, + const byte *block) +{ + result = GetWord(assumeAligned, order, block); +} + +template +inline void PutWord(bool assumeAligned, ByteOrder order, byte* block, T value, + const byte *xorBlock = 0) +{ + if (assumeAligned) + { + if (xorBlock) + *reinterpret_cast(block) = ByteReverseIf(value, order) + ^ *reinterpret_cast(xorBlock); + else + *reinterpret_cast(block) = ByteReverseIf(value, order); + } + else + UnalignedPutWord(order, block, value, xorBlock); +} + +template +class GetBlock +{ +public: + GetBlock(const void *block) + : m_block((const byte *)block) {} + + template + inline GetBlock & operator()(U &x) + { + TAOCRYPT_COMPILE_ASSERT(sizeof(U) >= sizeof(T)); + x = GetWord(A, B::ToEnum(), m_block); + m_block += sizeof(T); + return *this; + } + +private: + const byte *m_block; +}; + +template +class PutBlock +{ +public: + PutBlock(const void *xorBlock, void *block) + : m_xorBlock((const byte *)xorBlock), m_block((byte *)block) {} + + template + inline PutBlock & operator()(U x) + { + PutWord(A, B::ToEnum(), m_block, (T)x, m_xorBlock); + m_block += sizeof(T); + if (m_xorBlock) + m_xorBlock += sizeof(T); + return *this; + } + +private: + const byte *m_xorBlock; + byte *m_block; +}; + +/* + XXX MYSQL: Setting A (assumeAligned) to false, + keeping it true might trigger segfault on SPARC. +*/ +template +struct BlockGetAndPut +{ + // function needed because of C++ grammatical ambiguity between + // expression-statements and declarations + static inline GetBlock Get(const void *block) + {return GetBlock(block);} + typedef PutBlock Put; +}; + + + +template struct SafeShifter; + +template<> struct SafeShifter +{ + template + static inline T RightShift(T value, unsigned int bits) + { + return 0; + } + + template + static inline T LeftShift(T value, unsigned int bits) + { + return 0; + } +}; + +template<> struct SafeShifter +{ + template + static inline T RightShift(T value, unsigned int bits) + { + return value >> bits; + } + + template + static inline T LeftShift(T value, unsigned int bits) + { + return value << bits; + } +}; + +template +inline T SafeRightShift(T value) +{ + return SafeShifter<(bits>=(8*sizeof(T)))>::RightShift(value, bits); +} + +template +inline T SafeLeftShift(T value) +{ + return SafeShifter<(bits>=(8*sizeof(T)))>::LeftShift(value, bits); +} + + +inline +word ShiftWordsLeftByBits(word* r, unsigned int n, unsigned int shiftBits) +{ + word u, carry=0; + if (shiftBits) + for (unsigned int i=0; i> (WORD_BITS-shiftBits); + } + return carry; +} + + +inline +word ShiftWordsRightByBits(word* r, unsigned int n, unsigned int shiftBits) +{ + word u, carry=0; + if (shiftBits) + for (int i=n-1; i>=0; i--) + { + u = r[i]; + r[i] = (u >> shiftBits) | carry; + carry = u << (WORD_BITS-shiftBits); + } + return carry; +} + + +inline +void ShiftWordsLeftByWords(word* r, unsigned int n, unsigned int shiftWords) +{ + shiftWords = min(shiftWords, n); + if (shiftWords) + { + for (unsigned int i=n-1; i>=shiftWords; i--) + r[i] = r[i-shiftWords]; + SetWords(r, 0, shiftWords); + } +} + + +inline +void ShiftWordsRightByWords(word* r, unsigned int n, unsigned int shiftWords) +{ + shiftWords = min(shiftWords, n); + if (shiftWords) + { + for (unsigned int i=0; i+shiftWords +inline T1 SaturatingSubtract(T1 a, T2 b) +{ + TAOCRYPT_COMPILE_ASSERT_INSTANCE(T1(-1)>0, 0); // T1 is unsigned type + TAOCRYPT_COMPILE_ASSERT_INSTANCE(T2(-1)>0, 1); // T2 is unsigned type + return T1((a > b) ? (a - b) : 0); +} + + +// declares +unsigned int BytePrecision(word value); +unsigned int BitPrecision(word); +word Crop(word value, unsigned int size); + + + +} // namespace + +#endif // TAO_CRYPT_MISC_HPP diff --git a/mysql/extra/yassl/taocrypt/include/modarith.hpp b/mysql/extra/yassl/taocrypt/include/modarith.hpp new file mode 100644 index 0000000..5ac3f67 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/modarith.hpp @@ -0,0 +1,165 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* based on Wei Dai's modarith.h from CryptoPP */ + + +#ifndef TAO_CRYPT_MODARITH_HPP +#define TAO_CRYPT_MODARITH_HPP + +#include "misc.hpp" +#include "algebra.hpp" + +namespace TaoCrypt { + + +// ModularArithmetic +class ModularArithmetic : public AbstractRing +{ +public: + + typedef int RandomizationParameter; + typedef Integer Element; + + ModularArithmetic(const Integer &modulus = Integer::One()) + : modulus(modulus), result((word)0, modulus.reg_.size()) {} + + ModularArithmetic(const ModularArithmetic &ma) + : AbstractRing(), + modulus(ma.modulus), result((word)0, modulus.reg_.size()) {} + + const Integer& GetModulus() const {return modulus;} + void SetModulus(const Integer &newModulus) + { + modulus = newModulus; + result.reg_.resize(modulus.reg_.size()); + } + + virtual bool IsMontgomeryRepresentation() const {return false;} + + virtual Integer ConvertIn(const Integer &a) const + {return a%modulus;} + + virtual Integer ConvertOut(const Integer &a) const + {return a;} + + const Integer& Half(const Integer &a) const; + + bool Equal(const Integer &a, const Integer &b) const + {return a==b;} + + const Integer& Identity() const + {return Integer::Zero();} + + const Integer& Add(const Integer &a, const Integer &b) const; + + Integer& Accumulate(Integer &a, const Integer &b) const; + + const Integer& Inverse(const Integer &a) const; + + const Integer& Subtract(const Integer &a, const Integer &b) const; + + Integer& Reduce(Integer &a, const Integer &b) const; + + const Integer& Double(const Integer &a) const + {return Add(a, a);} + + const Integer& MultiplicativeIdentity() const + {return Integer::One();} + + const Integer& Multiply(const Integer &a, const Integer &b) const + {return result1 = a*b%modulus;} + + const Integer& Square(const Integer &a) const + {return result1 = a.Squared()%modulus;} + + bool IsUnit(const Integer &a) const + {return Integer::Gcd(a, modulus).IsUnit();} + + const Integer& MultiplicativeInverse(const Integer &a) const + {return result1 = a.InverseMod(modulus);} + + const Integer& Divide(const Integer &a, const Integer &b) const + {return Multiply(a, MultiplicativeInverse(b));} + + Integer CascadeExponentiate(const Integer &x, const Integer &e1, + const Integer &y, const Integer &e2) const; + + void SimultaneousExponentiate(Element *results, const Element &base, + const Integer *exponents, unsigned int exponentsCount) const; + + unsigned int MaxElementBitLength() const + {return (modulus-1).BitCount();} + + unsigned int MaxElementByteLength() const + {return (modulus-1).ByteCount();} + + + static const RandomizationParameter DefaultRandomizationParameter; + +protected: + Integer modulus; + mutable Integer result, result1; + +}; + + + +//! do modular arithmetics in Montgomery representation for increased speed +class MontgomeryRepresentation : public ModularArithmetic +{ +public: + MontgomeryRepresentation(const Integer &modulus); // modulus must be odd + + bool IsMontgomeryRepresentation() const {return true;} + + Integer ConvertIn(const Integer &a) const + {return (a<<(WORD_BITS*modulus.reg_.size()))%modulus;} + + Integer ConvertOut(const Integer &a) const; + + const Integer& MultiplicativeIdentity() const + {return result1 = Integer::Power2(WORD_BITS*modulus.reg_.size())%modulus;} + + const Integer& Multiply(const Integer &a, const Integer &b) const; + + const Integer& Square(const Integer &a) const; + + const Integer& MultiplicativeInverse(const Integer &a) const; + + Integer CascadeExponentiate(const Integer &x, const Integer &e1, + const Integer &y, const Integer &e2) const + {return AbstractRing::CascadeExponentiate(x, e1, y, e2);} + + void SimultaneousExponentiate(Element *results, const Element &base, + const Integer *exponents, unsigned int exponentsCount) const + {AbstractRing::SimultaneousExponentiate(results, base, + exponents, exponentsCount);} + +private: + Integer u; + mutable AlignedWordBlock workspace; +}; + + + + +} // namespace + +#endif // TAO_CRYPT_MODARITH_HPP diff --git a/mysql/extra/yassl/taocrypt/include/modes.hpp b/mysql/extra/yassl/taocrypt/include/modes.hpp new file mode 100644 index 0000000..bfe8c6e --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/modes.hpp @@ -0,0 +1,154 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* modes.hpp provides ECB and CBC modes for block cipher encryption/decryption +*/ + + +#ifndef TAO_CRYPT_MODES_HPP +#define TAO_CRYPT_MODES_HPP + +#include "misc.hpp" + +namespace TaoCrypt { + + +enum Mode { ECB, CBC }; + + + +// BlockCipher abstraction +template +class BlockCipher { +public: + BlockCipher() : cipher_(DIR, MODE) {} + + void Process(byte* c, const byte* p, word32 sz) + { cipher_.Process(c, p, sz); } + void SetKey(const byte* k, word32 sz) + { cipher_.SetKey(k, sz, DIR); } + void SetKey(const byte* k, word32 sz, const byte* iv) + { cipher_.SetKey(k, sz, DIR); cipher_.SetIV(iv); } +private: + T cipher_; + + BlockCipher(const BlockCipher&); // hide copy + BlockCipher& operator=(const BlockCipher&); // and assign +}; + + +// Mode Base for block ciphers, static size +class Mode_BASE : public virtual_base { +public: + enum { MaxBlockSz = 16 }; + + explicit Mode_BASE(int sz, CipherDir dir, Mode mode) + : blockSz_(sz), reg_(reinterpret_cast(r_)), + tmp_(reinterpret_cast(t_)), dir_(dir), mode_(mode) + {} + virtual ~Mode_BASE() {} + + virtual void Process(byte*, const byte*, word32); + + void SetIV(const byte* iv) { memcpy(reg_, iv, blockSz_); } +protected: + int blockSz_; + byte* reg_; + byte* tmp_; + + word32 r_[MaxBlockSz / sizeof(word32)]; // align reg_ on word32 + word32 t_[MaxBlockSz / sizeof(word32)]; // align tmp_ on word32 + + CipherDir dir_; + Mode mode_; + + void ECB_Process(byte*, const byte*, word32); + void CBC_Encrypt(byte*, const byte*, word32); + void CBC_Decrypt(byte*, const byte*, word32); + + Mode_BASE(const Mode_BASE&); // hide copy + Mode_BASE& operator=(const Mode_BASE&); // and assign + +private: + virtual void ProcessAndXorBlock(const byte*, const byte*, byte*) const = 0; +}; + + +inline void Mode_BASE::Process(byte* out, const byte* in, word32 sz) +{ + if (mode_ == ECB) + ECB_Process(out, in, sz); + else if (mode_ == CBC) { + if (dir_ == ENCRYPTION) + CBC_Encrypt(out, in, sz); + else + CBC_Decrypt(out, in, sz); + } +} + + +// ECB Process blocks +inline void Mode_BASE::ECB_Process(byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / blockSz_; + + while (blocks--) { + ProcessAndXorBlock(in, 0, out); + out += blockSz_; + in += blockSz_; + } +} + + +// CBC Encrypt +inline void Mode_BASE::CBC_Encrypt(byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / blockSz_; + + while (blocks--) { + xorbuf(reg_, in, blockSz_); + ProcessAndXorBlock(reg_, 0, reg_); + memcpy(out, reg_, blockSz_); + out += blockSz_; + in += blockSz_; + } +} + + +// CBC Decrypt +inline void Mode_BASE::CBC_Decrypt(byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / blockSz_; + byte hold[MaxBlockSz]; + + while (blocks--) { + memcpy(tmp_, in, blockSz_); + ProcessAndXorBlock(tmp_, 0, out); + xorbuf(out, reg_, blockSz_); + memcpy(hold, reg_, blockSz_); // swap reg_ and tmp_ + memcpy(reg_, tmp_, blockSz_); + memcpy(tmp_, hold, blockSz_); + out += blockSz_; + in += blockSz_; + } +} + + +} // namespace + +#endif // TAO_CRYPT_MODES_HPP diff --git a/mysql/extra/yassl/taocrypt/include/pwdbased.hpp b/mysql/extra/yassl/taocrypt/include/pwdbased.hpp new file mode 100644 index 0000000..cf4dff5 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/pwdbased.hpp @@ -0,0 +1,91 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* pwdbased.hpp defines PBKDF2 from PKCS #5 +*/ + + +#ifndef TAO_CRYPT_PWDBASED_HPP +#define TAO_CRYPT_PWDBASED_HPP + +#include +#include "misc.hpp" +#include "block.hpp" +#include "hmac.hpp" + +namespace TaoCrypt { + + +// From PKCS #5, T must be type suitable for HMAC +template +class PBKDF2_HMAC { +public: + word32 MaxDerivedKeyLength() const { return 0xFFFFFFFFU;} // avoid overflow + + word32 DeriveKey(byte* derived, word32 dLen, const byte* pwd, word32 pLen, + const byte* salt, word32 sLen, word32 iterations) const; +}; + + + +template +word32 PBKDF2_HMAC::DeriveKey(byte* derived, word32 dLen, const byte* pwd, + word32 pLen, const byte* salt, word32 sLen, + word32 iterations) const +{ + if (dLen > MaxDerivedKeyLength()) + return 0; + + ByteBlock buffer(T::DIGEST_SIZE); + HMAC hmac; + + hmac.SetKey(pwd, pLen); + + word32 i = 1; + + while (dLen > 0) { + hmac.Update(salt, sLen); + word32 j; + for (j = 0; j < 4; j++) { + byte b = i >> ((3-j)*8); + hmac.Update(&b, 1); + } + hmac.Final(buffer.get_buffer()); + + word32 segmentLen = min(dLen, buffer.size()); + memcpy(derived, buffer.get_buffer(), segmentLen); + + for (j = 1; j < iterations; j++) { + hmac.Update(buffer.get_buffer(), buffer.size()); + hmac.Final(buffer.get_buffer()); + xorbuf(derived, buffer.get_buffer(), segmentLen); + } + derived += segmentLen; + dLen -= segmentLen; + i++; + } + return iterations; +} + + + + +} // naemspace + +#endif // TAO_CRYPT_PWDBASED_HPP diff --git a/mysql/extra/yassl/taocrypt/include/rabbit.hpp b/mysql/extra/yassl/taocrypt/include/rabbit.hpp new file mode 100644 index 0000000..d3ec947 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/rabbit.hpp @@ -0,0 +1,65 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* rabbit.hpp defines Rabbit +*/ + + +#ifndef TAO_CRYPT_RABBIT_HPP +#define TAO_CRYPT_RABBIT_HPP + +#include "misc.hpp" + +namespace TaoCrypt { + + +// Rabbit encryption and decryption +class Rabbit { +public: + + typedef Rabbit Encryption; + typedef Rabbit Decryption; + + enum RabbitCtx { Master = 0, Work = 1 }; + + Rabbit() {} + + void Process(byte*, const byte*, word32); + void SetKey(const byte*, const byte*); +private: + struct Ctx { + word32 x[8]; + word32 c[8]; + word32 carry; + }; + + Ctx masterCtx_; + Ctx workCtx_; + + void NextState(RabbitCtx); + void SetIV(const byte*); + + Rabbit(const Rabbit&); // hide copy + const Rabbit operator=(const Rabbit&); // and assign +}; + +} // namespace + + +#endif // TAO_CRYPT_RABBIT_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/random.hpp b/mysql/extra/yassl/taocrypt/include/random.hpp new file mode 100644 index 0000000..70c4c0e --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/random.hpp @@ -0,0 +1,84 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* random.hpp provides a crypto secure Random Number Generator using an OS + specific seed +*/ + + +#ifndef TAO_CRYPT_RANDOM_HPP +#define TAO_CRYPT_RANDOM_HPP + +#include "arc4.hpp" +#include "error.hpp" + +namespace TaoCrypt { + + +// OS specific seeder +class OS_Seed { +public: + OS_Seed(); + ~OS_Seed(); + + void GenerateSeed(byte*, word32 sz); + Error GetError() const { return error_; } +private: +#if defined(_WIN32) + #if defined(_WIN64) + typedef unsigned __int64 ProviderHandle; + // type HCRYPTPROV, avoid #include + #else + typedef unsigned long ProviderHandle; + #endif + ProviderHandle handle_; +#else + int fd_; +#endif + Error error_; + + OS_Seed(const OS_Seed&); // hide copy + OS_Seed& operator=(const OS_Seed&); // hide assign +}; + + +// secure Random Nnumber Generator +class RandomNumberGenerator { +public: + RandomNumberGenerator(); + ~RandomNumberGenerator() {} + + void GenerateBlock(byte*, word32 sz); + byte GenerateByte(); + + ErrorNumber GetError() const { return seed_.GetError().What(); } +private: + OS_Seed seed_; + ARC4 cipher_; + + RandomNumberGenerator(const RandomNumberGenerator&); // hide copy + RandomNumberGenerator operator=(const RandomNumberGenerator&); // && assign +}; + + + + +} // namespace + +#endif // TAO_CRYPT_RANDOM_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/ripemd.hpp b/mysql/extra/yassl/taocrypt/include/ripemd.hpp new file mode 100644 index 0000000..5fb8aa8 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/ripemd.hpp @@ -0,0 +1,69 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* ripemd.hpp provides RIPEMD digest support +*/ + +#ifndef TAO_CRYPT_RIPEMD_HPP +#define TAO_CRYPT_RIPEMD_HPP + +#include "hash.hpp" + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_RIPEMD_ASM +#endif + +namespace TaoCrypt { + + +// RIPEMD160 digest +class RIPEMD160 : public HASHwithTransform { +public: + enum { BLOCK_SIZE = 64, DIGEST_SIZE = 20, PAD_SIZE = 56, + TAO_BYTE_ORDER = LittleEndianOrder }; // in Bytes + RIPEMD160() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + RIPEMD160(const RIPEMD160&); + RIPEMD160& operator= (const RIPEMD160&); + +#ifdef DO_RIPEMD_ASM + void Update(const byte*, word32); +#endif + void Init(); + void Swap(RIPEMD160&); +private: + void Transform(); + void AsmTransform(const byte* data, word32 times); +}; + +inline void swap(RIPEMD160& a, RIPEMD160& b) +{ + a.Swap(b); +} + + +} // namespace + +#endif // TAO_CRYPT_RIPEMD_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/rsa.hpp b/mysql/extra/yassl/taocrypt/include/rsa.hpp new file mode 100644 index 0000000..ee3e378 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/rsa.hpp @@ -0,0 +1,250 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* rsa.hpp provides RSA ES encrypt/decrypt, SSL (block type 1) sign and verify +*/ + +#ifndef TAO_CRYPT_RSA_HPP +#define TAO_CRYPT_RSA_HPP + +#include "integer.hpp" +#include "random.hpp" + + +namespace TaoCrypt { + +class Source; + + +// Public Key Length helper +class PK_Lengths { + const Integer& image_; +public: + explicit PK_Lengths(const Integer& i) : image_(i) {} + + word32 PaddedBlockBitLength() const {return image_.BitCount() - 1;} + word32 PaddedBlockByteLength() const + {return BitsToBytes(PaddedBlockBitLength());} + + word32 FixedCiphertextLength() const {return image_.ByteCount();} + word32 FixedMaxPlaintextLength() const + {return SaturatingSubtract(PaddedBlockBitLength() / 8, 10U); } +}; + + +// RSA Public Key +class RSA_PublicKey { +protected: + Integer n_; + Integer e_; +public: + RSA_PublicKey() {} + explicit RSA_PublicKey(Source&); + + void Initialize(const Integer& n, const Integer& e) {n_ = n; e_ = e;} + void Initialize(Source&); + + Integer ApplyFunction(const Integer& x) const; + + const Integer& GetModulus() const {return n_;} + const Integer& GetPublicExponent() const {return e_;} + + void SetModulus(const Integer& n) {n_ = n;} + void SetPublicExponent(const Integer& e) {e_ = e;} + + word32 FixedCiphertextLength() + { + return PK_Lengths(n_).FixedCiphertextLength(); + } + + RSA_PublicKey(const RSA_PublicKey& other) : n_(other.n_), e_(other.e_) {} + RSA_PublicKey& operator=(const RSA_PublicKey& that) + { + RSA_PublicKey tmp(that); + Swap(tmp); + return *this; + } + + void Swap(RSA_PublicKey& other) + { + n_.Swap(other.n_); + e_.Swap(other.e_); + } +}; + + +// RSA Private Key +class RSA_PrivateKey : public RSA_PublicKey { + Integer d_; + Integer p_; + Integer q_; + Integer dp_; + Integer dq_; + Integer u_; +public: + RSA_PrivateKey() {} + explicit RSA_PrivateKey(Source&); + + void Initialize(const Integer& n, const Integer& e, const Integer& d, + const Integer& p, const Integer& q, const Integer& dp, + const Integer& dq, const Integer& u) + {n_ = n; e_ = e; d_ = d; p_ = p; q_ = q; dp_ = dp; dq_ = dq; u_ = u;} + void Initialize(Source&); + + Integer CalculateInverse(RandomNumberGenerator&, const Integer&) const; + + const Integer& GetPrime1() const {return p_;} + const Integer& GetPrime2() const {return q_;} + const Integer& GetPrivateExponent() const {return d_;} + const Integer& GetModPrime1PrivateExponent() const {return dp_;} + const Integer& GetModPrime2PrivateExponent() const {return dq_;} + const Integer& GetMultiplicativeInverseOfPrime2ModPrime1() const + {return u_;} + + void SetPrime1(const Integer& p) {p_ = p;} + void SetPrime2(const Integer& q) {q_ = q;} + void SetPrivateExponent(const Integer& d) {d_ = d;} + void SetModPrime1PrivateExponent(const Integer& dp) {dp_ = dp;} + void SetModPrime2PrivateExponent(const Integer& dq) {dq_ = dq;} + void SetMultiplicativeInverseOfPrime2ModPrime1(const Integer& u) {u_ = u;} +private: + RSA_PrivateKey(const RSA_PrivateKey&); // hide copy + RSA_PrivateKey& operator=(const RSA_PrivateKey&); // and assign +}; + + +// block type 2 padding +class RSA_BlockType2 { +public: + void Pad(const byte*, word32, byte*, word32, + RandomNumberGenerator&) const; + word32 UnPad(const byte*, word32, byte*) const; +}; + + +// block type 1 padding +class RSA_BlockType1 { +public: + void Pad(const byte*, word32, byte*, word32, + RandomNumberGenerator&) const; + word32 UnPad(const byte*, word32, byte*) const; +}; + + +// RSA Encryptor, can use any padding +template +class RSA_Encryptor { + const RSA_PublicKey& key_; + Pad padding_; +public: + explicit RSA_Encryptor(const RSA_PublicKey& k) : key_(k) {} + + void Encrypt(const byte*, word32, byte*, RandomNumberGenerator&); + bool SSL_Verify(const byte* msg, word32 sz, const byte* sig); +}; + + +// RSA Decryptor, can use any padding +template +class RSA_Decryptor { + const RSA_PrivateKey& key_; + Pad padding_; +public: + explicit RSA_Decryptor(const RSA_PrivateKey& k) : key_(k) {} + + word32 Decrypt(const byte*, word32, byte*, RandomNumberGenerator&); + void SSL_Sign(const byte*, word32, byte*, RandomNumberGenerator&); +}; + + +// Public Encrypt +template +void RSA_Encryptor::Encrypt(const byte* plain, word32 sz, byte* cipher, + RandomNumberGenerator& rng) +{ + PK_Lengths lengths(key_.GetModulus()); + if (sz > lengths.FixedMaxPlaintextLength()) + return; + + ByteBlock paddedBlock(lengths.PaddedBlockByteLength()); + padding_.Pad(plain, sz, paddedBlock.get_buffer(), + lengths.PaddedBlockBitLength(), rng); + + key_.ApplyFunction(Integer(paddedBlock.get_buffer(), paddedBlock.size())). + Encode(cipher, lengths.FixedCiphertextLength()); +} + + +// Private Decrypt +template +word32 RSA_Decryptor::Decrypt(const byte* cipher, word32 sz, byte* plain, + RandomNumberGenerator& rng) +{ + PK_Lengths lengths(key_.GetModulus()); + + if (sz != lengths.FixedCiphertextLength()) + return 0; + + ByteBlock paddedBlock(lengths.PaddedBlockByteLength()); + Integer x = key_.CalculateInverse(rng, Integer(cipher, + lengths.FixedCiphertextLength()).Ref()); + if (x.ByteCount() > paddedBlock.size()) + x = Integer::Zero(); // don't return false, prevents timing attack + x.Encode(paddedBlock.get_buffer(), paddedBlock.size()); + return padding_.UnPad(paddedBlock.get_buffer(), + lengths.PaddedBlockBitLength(), plain); +} + + +// Private SSL type (block 1) Encrypt +template +void RSA_Decryptor::SSL_Sign(const byte* message, word32 sz, byte* sig, + RandomNumberGenerator& rng) +{ + RSA_PublicKey inverse; + inverse.Initialize(key_.GetModulus(), key_.GetPrivateExponent()); + RSA_Encryptor enc(inverse); // SSL Type + enc.Encrypt(message, sz, sig, rng); +} + + +word32 SSL_Decrypt(const RSA_PublicKey& key, const byte* sig, byte* plain); + + +// Public SSL type (block 1) Decrypt +template +bool RSA_Encryptor::SSL_Verify(const byte* message, word32 sz, + const byte* sig) +{ + ByteBlock plain(PK_Lengths(key_.GetModulus()).FixedMaxPlaintextLength()); + if (SSL_Decrypt(key_, sig, plain.get_buffer()) != sz) + return false; // not right justified or bad padding + + if ( (memcmp(plain.get_buffer(), message, sz)) == 0) + return true; + return false; +} + + +typedef RSA_Encryptor<> RSAES_Encryptor; +typedef RSA_Decryptor<> RSAES_Decryptor; + + +} // namespace + +#endif // TAO_CRYPT_RSA_HPP diff --git a/mysql/extra/yassl/taocrypt/include/runtime.hpp b/mysql/extra/yassl/taocrypt/include/runtime.hpp new file mode 100644 index 0000000..c984287 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/runtime.hpp @@ -0,0 +1,60 @@ +/* + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* runtime.hpp provides C++ runtime support functions when building a pure C + * version of yaSSL, user must define YASSL_PURE_C +*/ + + + +#ifndef yaSSL_NEW_HPP +#define yaSSL_NEW_HPP + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef YASSL_PURE_C + +#ifdef __sun + + +// Handler for pure virtual functions +namespace __Crun { + void pure_error(void); +} // namespace __Crun + +#endif // __sun + + +#if defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + +#if __GNUC__ > 2 + +extern "C" { +#if defined(DO_TAOCRYPT_KERNEL_MODE) + #include "kernelc.hpp" +#endif + int __cxa_pure_virtual () __attribute__ ((weak)); +} // extern "C" + +#endif // __GNUC__ > 2 +#endif // compiler check +#endif // YASSL_PURE_C +#endif // yaSSL_NEW_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/sha.hpp b/mysql/extra/yassl/taocrypt/include/sha.hpp new file mode 100644 index 0000000..cf6d0d0 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/sha.hpp @@ -0,0 +1,174 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* sha.hpp provides SHA-1 digests, see RFC 3174 +*/ + +#ifndef TAO_CRYPT_SHA_HPP +#define TAO_CRYPT_SHA_HPP + +#include "hash.hpp" + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_SHA_ASM +#endif + +namespace TaoCrypt { + + +// SHA-1 digest +class SHA : public HASHwithTransform { +public: + enum { BLOCK_SIZE = 64, DIGEST_SIZE = 20, PAD_SIZE = 56, + TAO_BYTE_ORDER = BigEndianOrder}; // in Bytes + SHA() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + +#ifdef DO_SHA_ASM + void Update(const byte* data, word32 len); +#endif + void Init(); + + SHA(const SHA&); + SHA& operator= (const SHA&); + + void Swap(SHA&); +private: + void Transform(); + void AsmTransform(const byte* data, word32 times); +}; + + +inline void swap(SHA& a, SHA& b) +{ + a.Swap(b); +} + +// SHA-256 digest +class SHA256 : public HASHwithTransform { +public: + enum { BLOCK_SIZE = 64, DIGEST_SIZE = 32, PAD_SIZE = 56, + TAO_BYTE_ORDER = BigEndianOrder}; // in Bytes + SHA256() : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + void Init(); + + SHA256(const SHA256&); + SHA256& operator= (const SHA256&); + + void Swap(SHA256&); +private: + void Transform(); +}; + + +// SHA-224 digest +class SHA224 : public HASHwithTransform { +public: + enum { BLOCK_SIZE = 64, DIGEST_SIZE = 28, PAD_SIZE = 56, + TAO_BYTE_ORDER = BigEndianOrder}; // in Bytes + SHA224() : HASHwithTransform(SHA256::DIGEST_SIZE /sizeof(word32),BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + void Init(); + + SHA224(const SHA224&); + SHA224& operator= (const SHA224&); + + void Swap(SHA224&); +private: + void Transform(); +}; + + +#ifdef WORD64_AVAILABLE + +// SHA-512 digest +class SHA512 : public HASH64withTransform { +public: + enum { BLOCK_SIZE = 128, DIGEST_SIZE = 64, PAD_SIZE = 112, + TAO_BYTE_ORDER = BigEndianOrder}; // in Bytes + SHA512() : HASH64withTransform(DIGEST_SIZE / sizeof(word64), BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + void Init(); + + SHA512(const SHA512&); + SHA512& operator= (const SHA512&); + + void Swap(SHA512&); +private: + void Transform(); +}; + + +// SHA-384 digest +class SHA384 : public HASH64withTransform { +public: + enum { BLOCK_SIZE = 128, DIGEST_SIZE = 48, PAD_SIZE = 112, + TAO_BYTE_ORDER = BigEndianOrder}; // in Bytes + SHA384() : HASH64withTransform(SHA512::DIGEST_SIZE/ sizeof(word64), + BLOCK_SIZE) + { Init(); } + ByteOrder getByteOrder() const { return ByteOrder(TAO_BYTE_ORDER); } + word32 getBlockSize() const { return BLOCK_SIZE; } + word32 getDigestSize() const { return DIGEST_SIZE; } + word32 getPadSize() const { return PAD_SIZE; } + + void Init(); + + SHA384(const SHA384&); + SHA384& operator= (const SHA384&); + + void Swap(SHA384&); +private: + void Transform(); +}; + +enum { MAX_SHA2_DIGEST_SIZE = 64 }; // SHA512 + +#else + +enum { MAX_SHA2_DIGEST_SIZE = 32 }; // SHA256 + +#endif // WORD64_AVAILABLE + + +} // namespace + + +#endif // TAO_CRYPT_SHA_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/twofish.hpp b/mysql/extra/yassl/taocrypt/include/twofish.hpp new file mode 100644 index 0000000..eeb9b6a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/twofish.hpp @@ -0,0 +1,94 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* twofish.hpp defines Twofish +*/ + + +#ifndef TAO_CRYPT_TWOFISH_HPP +#define TAO_CRYPT_TWOFISH_HPP + +#include "misc.hpp" +#include "modes.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_TWOFISH_ASM +#endif + +namespace TaoCrypt { + +enum { TWOFISH_BLOCK_SIZE = 16 }; + + +// Twofish encryption and decryption, see +class Twofish : public Mode_BASE { +public: + enum { BLOCK_SIZE = TWOFISH_BLOCK_SIZE }; + + Twofish(CipherDir DIR, Mode MODE) + : Mode_BASE(BLOCK_SIZE, DIR, MODE) {} + +#ifdef DO_TWOFISH_ASM + void Process(byte*, const byte*, word32); +#endif + void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION); + void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); } +private: + static const byte q_[2][256]; + static const word32 mds_[4][256]; + + word32 k_[40]; + word32 s_[4][256]; + + static word32 h0(word32 x, const word32 *key, unsigned int kLen); + static word32 h(word32 x, const word32 *key, unsigned int kLen); + + void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + + void encrypt(const byte*, const byte*, byte*) const; + void decrypt(const byte*, const byte*, byte*) const; + + void AsmEncrypt(const byte* inBlock, byte* outBlock) const; + void AsmDecrypt(const byte* inBlock, byte* outBlock) const; + + Twofish(const Twofish&); // hide copy + Twofish& operator=(const Twofish&); // and assign +}; + + +typedef BlockCipher Twofish_ECB_Encryption; +typedef BlockCipher Twofish_ECB_Decryption; + +typedef BlockCipher Twofish_CBC_Encryption; +typedef BlockCipher Twofish_CBC_Decryption; + + + +} // naemspace + +#endif // TAO_CRYPT_TWOFISH_HPP + diff --git a/mysql/extra/yassl/taocrypt/include/type_traits.hpp b/mysql/extra/yassl/taocrypt/include/type_traits.hpp new file mode 100644 index 0000000..8c6fe53 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/type_traits.hpp @@ -0,0 +1,77 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* type_traits defines fundamental types + * see discussion in C++ Templates, $19.1 +*/ + + +#ifndef TAO_CRYPT_TYPE_TRAITS_HPP +#define TAO_CRYPT_TYPE_TRAITS_HPP + +#include "types.hpp" + +namespace TaoCrypt { + + +// primary template: in general T is not a fundamental type + +template +class IsFundamentalType { + public: + enum { Yes = 0, No = 1 }; +}; + + +// macro to specialize for fundamental types +#define MK_FUNDAMENTAL_TYPE(T) \ + template<> class IsFundamentalType { \ + public: \ + enum { Yes = 1, No = 0 }; \ + }; + + +MK_FUNDAMENTAL_TYPE(void) + +MK_FUNDAMENTAL_TYPE(bool) +MK_FUNDAMENTAL_TYPE( char) +MK_FUNDAMENTAL_TYPE(signed char) +MK_FUNDAMENTAL_TYPE(unsigned char) + +MK_FUNDAMENTAL_TYPE(signed short) +MK_FUNDAMENTAL_TYPE(unsigned short) +MK_FUNDAMENTAL_TYPE(signed int) +MK_FUNDAMENTAL_TYPE(unsigned int) +MK_FUNDAMENTAL_TYPE(signed long) +MK_FUNDAMENTAL_TYPE(unsigned long) + +MK_FUNDAMENTAL_TYPE(float) +MK_FUNDAMENTAL_TYPE( double) +MK_FUNDAMENTAL_TYPE(long double) + +#if defined(WORD64_AVAILABLE) && defined(WORD64_IS_DISTINCT_TYPE) + MK_FUNDAMENTAL_TYPE(word64) +#endif + + +#undef MK_FUNDAMENTAL_TYPE + + +} // namespace + +#endif // TAO_CRYPT_TYPE_TRAITS_HPP diff --git a/mysql/extra/yassl/taocrypt/include/types.hpp b/mysql/extra/yassl/taocrypt/include/types.hpp new file mode 100644 index 0000000..67ea260 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/include/types.hpp @@ -0,0 +1,99 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's misc.h from CryptoPP, basic crypt types */ + + +#ifndef TAO_CRYPT_TYPES_HPP +#define TAO_CRYPT_TYPES_HPP + +#ifdef HAVE_CONFIG_H + #include "config.h" +#endif + +namespace TaoCrypt { + + +#if defined(WORDS_BIGENDIAN) || (defined(__MWERKS__) && !defined(__INTEL__)) + #define BIG_ENDIAN_ORDER +#endif + +#ifndef BIG_ENDIAN_ORDER + #define LITTLE_ENDIAN_ORDER +#endif + + +typedef unsigned char byte; +typedef unsigned short word16; +typedef unsigned int word32; + +#if defined(_MSC_VER) || defined(__BCPLUSPLUS__) + #define WORD64_AVAILABLE + #define WORD64_IS_DISTINCT_TYPE + typedef unsigned __int64 word64; + #define W64LIT(x) x##ui64 +#elif SIZEOF_LONG == 8 + #define WORD64_AVAILABLE + typedef unsigned long word64; + #define W64LIT(x) x##LL +#elif SIZEOF_LONG_LONG == 8 + #define WORD64_AVAILABLE + #define WORD64_IS_DISTINCT_TYPE + typedef unsigned long long word64; + #define W64LIT(x) x##LL +#endif + + +// compilers we've found 64-bit multiply insructions for +#if defined(__GNUC__) || defined(_MSC_VER) || defined(__DECCXX) + #if !(defined(__ICC) || defined(__INTEL_COMPILER)) + #define HAVE_64_MULTIPLY + #endif +#endif + + +#if defined(HAVE_64_MULTIPLY) && (defined(__ia64__) \ + || defined(_ARCH_PPC64) || defined(__mips64) || defined(__x86_64__) \ + || defined(_M_X64) || defined(_M_IA64)) +// These platforms have 64-bit CPU registers. Unfortunately most C++ compilers +// don't allow any way to access the 64-bit by 64-bit multiply instruction +// without using assembly, so in order to use word64 as word, the assembly +// instruction must be defined in Dword::Multiply(). + typedef word32 hword; + typedef word64 word; +#else + #define TAOCRYPT_NATIVE_DWORD_AVAILABLE + #ifdef WORD64_AVAILABLE + #define TAOCRYPT_SLOW_WORD64 + typedef word16 hword; + typedef word32 word; + typedef word64 dword; + #else + typedef byte hword; + typedef word16 word; + typedef word32 dword; + #endif +#endif + +const word32 WORD_SIZE = sizeof(word); +const word32 WORD_BITS = WORD_SIZE * 8; + + +} // namespace + +#endif // TAO_CRYPT_TYPES_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/algorithm.hpp b/mysql/extra/yassl/taocrypt/mySTL/algorithm.hpp new file mode 100644 index 0000000..83be964 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/algorithm.hpp @@ -0,0 +1,108 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL algorithm implements max, min, for_each, swap, find_if, copy, + * copy_backward, fill + */ + +#ifndef mySTL_ALGORITHM_HPP +#define mySTL_ALGORITHM_HPP + + +namespace mySTL { + + +template +inline const T& max(const T& a, const T&b) +{ + return a < b ? b : a; +} + + +template +inline const T& min(const T& a, const T&b) +{ + return b < a ? b : a; +} + + +template +Func for_each(InIter first, InIter last, Func op) +{ + while (first != last) { + op(*first); + ++first; + } + return op; +} + + +template +inline void swap(T& a, T& b) +{ + T tmp = a; + a = b; + b = tmp; +} + + +template +InIter find_if(InIter first, InIter last, Pred pred) +{ + while (first != last && !pred(*first)) + ++first; + return first; +} + + +template +inline OutputIter copy(InputIter first, InputIter last, OutputIter place) +{ + while (first != last) { + *place = *first; + ++first; + ++place; + } + return place; +} + + +template +inline OutputIter +copy_backward(InputIter first, InputIter last, OutputIter place) +{ + while (first != last) + *--place = *--last; + return place; +} + + +template +void fill(InputIter first, InputIter last, const T& v) +{ + while (first != last) { + *first = v; + ++first; + } +} + + +} // namespace mySTL + +#endif // mySTL_ALGORITHM_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/helpers.hpp b/mysql/extra/yassl/taocrypt/mySTL/helpers.hpp new file mode 100644 index 0000000..fc6e89d --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/helpers.hpp @@ -0,0 +1,153 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL helpers implements misc constructs for vector and list + * + */ + +#ifndef mySTL_HELPERS_HPP +#define mySTL_HELPERS_HPP + +#include +#ifdef _MSC_VER + #include +#endif + +/* + Workaround for the lack of operator new(size_t, void*) + in IBM VA C++ 6.0 + Also used as a workaround to avoid including +*/ + struct Dummy {}; + + inline void* operator new(size_t size, Dummy* d) + { + return static_cast(d); + } + + // for compilers that want matching delete + inline void operator delete(void* ptr, Dummy* d) + { + } + + typedef Dummy* yassl_pointer; + +namespace mySTL { + + +template +inline void construct(T* p, const T2& value) +{ + new (reinterpret_cast(p)) T(value); +} + + +template +inline void construct(T* p) +{ + new (reinterpret_cast(p)) T(); +} + + +template +inline void destroy(T* p) +{ + p->~T(); +} + + +template +void destroy(Iter first, Iter last) +{ + while (first != last) { + destroy(&*first); + ++first; + } +} + + +template +PlaceIter uninit_copy(Iter first, Iter last, PlaceIter place) +{ + while (first != last) { + construct(&*place, *first); + ++first; + ++place; + } + return place; +} + + +template +PlaceIter uninit_fill_n(PlaceIter place, Size n, const T& value) +{ + while (n) { + construct(&*place, value); + --n; + ++place; + } + return place; +} + + +template +T* GetArrayMemory(size_t items) +{ + unsigned char* ret; + + #ifdef YASSL_LIB + ret = NEW_YS unsigned char[sizeof(T) * items]; + #else + ret = NEW_TC unsigned char[sizeof(T) * items]; + #endif + + return reinterpret_cast(ret); +} + + +template +void FreeArrayMemory(T* ptr) +{ + unsigned char* p = reinterpret_cast(ptr); + + #ifdef YASSL_LIB + yaSSL::ysArrayDelete(p); + #else + TaoCrypt::tcArrayDelete(p); + #endif +} + + + +inline void* GetMemory(size_t bytes) +{ + return GetArrayMemory(bytes); +} + + +inline void FreeMemory(void* ptr) +{ + FreeArrayMemory(ptr); +} + + + +} // namespace mySTL + +#endif // mySTL_HELPERS_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/list.hpp b/mysql/extra/yassl/taocrypt/mySTL/list.hpp new file mode 100644 index 0000000..df03e0a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/list.hpp @@ -0,0 +1,367 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL list implements a simple list + * + */ + +#ifndef mySTL_LIST_HPP +#define mySTL_LIST_HPP + + +#include "helpers.hpp" + + +namespace mySTL { + + + +template +class list { + +#ifdef __SUNPRO_CC +/* + Sun Forte 7 C++ v. 5.4 needs class 'node' public to be visible to + the nested class 'iterator' (a non-standard behaviour). +*/ +public: +#endif + + struct node { + node(T t) : prev_(0), next_(0), value_(t) {} + + node* prev_; + node* next_; + T value_; + }; +public: + list() : head_(0), tail_(0), sz_(0) {} + ~list(); + + void push_front(T); + void pop_front(); + T front() const; + void push_back(T); + void pop_back(); + T back() const; + bool remove(T); + size_t size() const { return sz_; } + bool empty() const { return sz_ == 0; } + + class iterator { + node* current_; + public: + explicit iterator(node* p = 0) : current_(p) {} + + T& operator*() const + { + return current_->value_; + } + + T* operator->() const + { + return &(operator*()); + } + + iterator& operator++() + { + current_ = current_->next_; + return *this; + } + + iterator& operator--() + { + current_ = current_->prev_; + return *this; + } + + iterator operator++(int) + { + iterator tmp = *this; + current_ = current_->next_; + return tmp; + } + + iterator operator--(int) + { + iterator tmp = *this; + current_ = current_->prev_; + return tmp; + } + + bool operator==(const iterator& other) const + { + return current_ == other.current_; + } + + bool operator!=(const iterator& other) const + { + return current_ != other.current_; + } + + friend class list; + }; + + + class reverse_iterator { + node* current_; + public: + explicit reverse_iterator(node* p = 0) : current_(p) {} + + T& operator*() const + { + return current_->value_; + } + + T* operator->() const + { + return &(operator*()); + } + + reverse_iterator& operator++() + { + current_ = current_->prev_; + return *this; + } + + reverse_iterator& operator--() + { + current_ = current_->next_; + return *this; + } + + reverse_iterator operator++(int) + { + reverse_iterator tmp = *this; + current_ = current_->prev_; + return tmp; + } + + reverse_iterator operator--(int) + { + reverse_iterator tmp = *this; + current_ = current_->next_; + return tmp; + } + + bool operator==(const reverse_iterator& other) const + { + return current_ == other.current_; + } + + bool operator!=(const reverse_iterator& other) const + { + return current_ != other.current_; + } + + friend class list; + }; + + bool erase(iterator); + + iterator begin() const { return iterator(head_); } + reverse_iterator rbegin() const { return reverse_iterator(tail_); } + iterator end() const { return iterator(); } + reverse_iterator rend() const { return reverse_iterator(); } + + typedef iterator const_iterator; // for now + + class underflow {}; + class overflow {}; +private: + node* head_; + node* tail_; + size_t sz_; + + node* look_up(T); + + list(const list&); // hide copy + list& operator=(const list&); // and assign +}; + + +template +list::~list() +{ + node* start = head_; + node* next_; + + for (; start; start = next_) { + next_ = start->next_; + destroy(start); + FreeMemory(start); + } +} + + +template +void list::push_front(T t) +{ + void* mem = GetMemory(sizeof(node)); + node* add = new (reinterpret_cast(mem)) node(t); + + if (head_) { + add->next_ = head_; + head_->prev_ = add; + } + else + tail_ = add; + + head_ = add; + ++sz_; +} + + +template +void list::pop_front() +{ + node* front = head_; + + if (head_ == 0) + return; + else if (head_ == tail_) + head_ = tail_ = 0; + else { + head_ = head_->next_; + head_->prev_ = 0; + } + destroy(front); + FreeMemory(front); + --sz_; +} + + +template +T list::front() const +{ + if (head_ == 0) return T(); + return head_->value_; +} + + +template +void list::push_back(T t) +{ + void* mem = GetMemory(sizeof(node)); + node* add = new (reinterpret_cast(mem)) node(t); + + if (tail_) { + tail_->next_ = add; + add->prev_ = tail_; + } + else + head_ = add; + + tail_ = add; + ++sz_; +} + + +template +void list::pop_back() +{ + node* rear = tail_; + + if (tail_ == 0) + return; + else if (tail_ == head_) + tail_ = head_ = 0; + else { + tail_ = tail_->prev_; + tail_->next_ = 0; + } + destroy(rear); + FreeMemory(rear); + --sz_; +} + + +template +T list::back() const +{ + if (tail_ == 0) return T(); + return tail_->value_; +} + + +template +typename list::node* list::look_up(T t) +{ + node* list = head_; + + if (list == 0) return 0; + + for (; list; list = list->next_) + if (list->value_ == t) + return list; + + return 0; +} + + +template +bool list::remove(T t) +{ + node* del = look_up(t); + + if (del == 0) + return false; + else if (del == head_) + pop_front(); + else if (del == tail_) + pop_back(); + else { + del->prev_->next_ = del->next_; + del->next_->prev_ = del->prev_; + + destroy(del); + FreeMemory(del); + --sz_; + } + return true; +} + + +template +bool list::erase(iterator iter) +{ + node* del = iter.current_; + + if (del == 0) + return false; + else if (del == head_) + pop_front(); + else if (del == tail_) + pop_back(); + else { + del->prev_->next_ = del->next_; + del->next_->prev_ = del->prev_; + + destroy(del); + FreeMemory(del); + --sz_; + } + return true; +} + + + +} // namespace mySTL + +#endif // mySTL_LIST_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/memory.hpp b/mysql/extra/yassl/taocrypt/mySTL/memory.hpp new file mode 100644 index 0000000..7e709be --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/memory.hpp @@ -0,0 +1,136 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL memory implements auto_ptr + * + */ + +#ifndef mySTL_MEMORY_HPP +#define mySTL_MEMORY_HPP + +#include "memory_array.hpp" // for auto_array + +#ifdef _MSC_VER + // disable operator-> warning for builtins + #pragma warning(disable:4284) +#endif + + +namespace mySTL { + + +template +struct auto_ptr_ref { + T* ptr_; + explicit auto_ptr_ref(T* p) : ptr_(p) {} +}; + + +template +class auto_ptr { + T* ptr_; + + void Destroy() + { + #ifdef YASSL_LIB + yaSSL::ysDelete(ptr_); + #else + TaoCrypt::tcDelete(ptr_); + #endif + } +public: + explicit auto_ptr(T* p = 0) : ptr_(p) {} + + ~auto_ptr() + { + Destroy(); + } + + + auto_ptr(auto_ptr& other) : ptr_(other.release()) {} + + auto_ptr& operator=(auto_ptr& that) + { + if (this != &that) { + Destroy(); + ptr_ = that.release(); + } + return *this; + } + + + T* operator->() const + { + return ptr_; + } + + T& operator*() const + { + return *ptr_; + } + + T* get() const + { + return ptr_; + } + + T* release() + { + T* tmp = ptr_; + ptr_ = 0; + return tmp; + } + + void reset(T* p = 0) + { + if (ptr_ != p) { + Destroy(); + ptr_ = p; + } + } + + // auto_ptr_ref conversions + auto_ptr(auto_ptr_ref ref) : ptr_(ref.ptr_) {} + + auto_ptr& operator=(auto_ptr_ref ref) + { + if (this->ptr_ != ref.ptr_) { + Destroy(); + ptr_ = ref.ptr_; + } + return *this; + } + + template + operator auto_ptr() + { + return auto_ptr(this->release()); + } + + template + operator auto_ptr_ref() + { + return auto_ptr_ref(this->release()); + } +}; + + +} // namespace mySTL + +#endif // mySTL_MEMORY_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/memory_array.hpp b/mysql/extra/yassl/taocrypt/mySTL/memory_array.hpp new file mode 100644 index 0000000..1c238d9 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/memory_array.hpp @@ -0,0 +1,135 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL memory_arry implements auto_array + * + */ + +#ifndef mySTL_MEMORY_ARRAY_HPP +#define mySTL_MEMORY_ARRAY_HPP + + +#ifdef _MSC_VER + // disable operator-> warning for builtins + #pragma warning(disable:4284) +#endif + + +namespace mySTL { + + +template +struct auto_array_ref { + T* ptr_; + explicit auto_array_ref(T* p) : ptr_(p) {} +}; + + +template +class auto_array { + T* ptr_; + + void Destroy() + { + #ifdef YASSL_LIB + yaSSL::ysArrayDelete(ptr_); + #else + TaoCrypt::tcArrayDelete(ptr_); + #endif + } +public: + explicit auto_array(T* p = 0) : ptr_(p) {} + + ~auto_array() + { + Destroy(); + } + + + auto_array(auto_array& other) : ptr_(other.release()) {} + + auto_array& operator=(auto_array& that) + { + if (this != &that) { + Destroy(); + ptr_ = that.release(); + } + return *this; + } + + + T* operator->() const + { + return ptr_; + } + + T& operator*() const + { + return *ptr_; + } + + T* get() const + { + return ptr_; + } + + T* release() + { + T* tmp = ptr_; + ptr_ = 0; + return tmp; + } + + void reset(T* p = 0) + { + if (ptr_ != p) { + Destroy(); + ptr_ = p; + } + } + + // auto_array_ref conversions + auto_array(auto_array_ref ref) : ptr_(ref.ptr_) {} + + auto_array& operator=(auto_array_ref ref) + { + if (this->ptr_ != ref.ptr_) { + Destroy(); + ptr_ = ref.ptr_; + } + return *this; + } + + template + operator auto_array() + { + return auto_array(this->release()); + } + + template + operator auto_array_ref() + { + return auto_array_ref(this->release()); + } +}; + + +} // namespace mySTL + +#endif // mySTL_MEMORY_ARRAY_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/pair.hpp b/mysql/extra/yassl/taocrypt/mySTL/pair.hpp new file mode 100644 index 0000000..545827a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/pair.hpp @@ -0,0 +1,58 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL pair implements pair + * + */ + +#ifndef mySTL_PAIR_HPP +#define mySTL_PAIR_HPP + + + +namespace mySTL { + + +template +struct pair { + typedef T1 first_type; + typedef T2 second_type; + + first_type first; + second_type second; + + pair() {} + pair(const T1& t1, const T2& t2) : first(t1), second(t2) {} + + template + pair(const pair& p) : first(p.first), second(p.second) {} +}; + + +template +inline pair make_pair(const T1& a, const T2& b) +{ + return pair(a, b); +} + + + +} // namespace mySTL + +#endif // mySTL_PAIR_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/stdexcept.hpp b/mysql/extra/yassl/taocrypt/mySTL/stdexcept.hpp new file mode 100644 index 0000000..79ae6de --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/stdexcept.hpp @@ -0,0 +1,76 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL memory implements exception, runtime_error + * + */ + +#ifndef mySTL_STDEXCEPT_HPP +#define mySTL_STDEXCEPT_HPP + + +#include // strncpy +#include // size_t + + +namespace mySTL { + + +class exception { +public: + exception() {} + virtual ~exception() {} // to shut up compiler warnings + + virtual const char* what() const { return ""; } + + // for compiler generated call, never used + static void operator delete(void*) { } +private: + // don't allow dynamic creation of exceptions + static void* operator new(size_t); +}; + + +class named_exception : public exception { +public: + enum { NAME_SIZE = 80 }; + + explicit named_exception(const char* str) + { + strncpy(name_, str, NAME_SIZE); + name_[NAME_SIZE - 1] = 0; + } + + virtual const char* what() const { return name_; } +private: + char name_[NAME_SIZE]; +}; + + +class runtime_error : public named_exception { +public: + explicit runtime_error(const char* str) : named_exception(str) {} +}; + + + + +} // namespace mySTL + +#endif // mySTL_STDEXCEPT_HPP diff --git a/mysql/extra/yassl/taocrypt/mySTL/vector.hpp b/mysql/extra/yassl/taocrypt/mySTL/vector.hpp new file mode 100644 index 0000000..f3702b7 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/mySTL/vector.hpp @@ -0,0 +1,153 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* mySTL vector implements simple vector, w/ swap + * + */ + +#ifndef mySTL_VECTOR_HPP +#define mySTL_VECTOR_HPP + +#include "helpers.hpp" // construct, destory, fill, etc. +#include "algorithm.hpp" // swap + + +namespace mySTL { + + +template +struct vector_base { + T* start_; + T* finish_; + T* end_of_storage_; + + vector_base() : start_(0), finish_(0), end_of_storage_(0) {} + vector_base(size_t n) + { + start_ = GetArrayMemory(n); + finish_ = start_; + end_of_storage_ = start_ + n; + } + + ~vector_base() + { + FreeArrayMemory(start_); + } + + void Swap(vector_base& that) + { + swap(start_, that.start_); + swap(finish_, that.finish_); + swap(end_of_storage_, that.end_of_storage_); + } +}; + + + +template +class vector { +public: + typedef T* iterator; + typedef const T* const_iterator; + + vector() {} + explicit vector(size_t n) : vec_(n) + { + vec_.finish_ = uninit_fill_n(vec_.start_, n, T()); + } + + ~vector() { destroy(vec_.start_, vec_.finish_); } + + vector(const vector& other) : vec_(other.size()) + { + vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_, + vec_.start_); + } + + size_t capacity() const { return vec_.end_of_storage_ - vec_.start_; } + + size_t size() const { return vec_.finish_ - vec_.start_; } + + T& operator[](size_t idx) { return *(vec_.start_ + idx); } + const T& operator[](size_t idx) const { return *(vec_.start_ + idx); } + + const T* begin() const { return vec_.start_; } + const T* end() const { return vec_.finish_; } + + void push_back(const T& v) + { + if (vec_.finish_ != vec_.end_of_storage_) { + construct(vec_.finish_, v); + ++vec_.finish_; + } + else { + vector tmp(size() * 2 + 1, *this); + construct(tmp.vec_.finish_, v); + ++tmp.vec_.finish_; + Swap(tmp); + } + } + + void resize(size_t n, const T& v) + { + if (n == size()) return; + + if (n < size()) { + T* first = vec_.start_ + n; + destroy(first, vec_.finish_); + vec_.finish_ -= vec_.finish_ - first; + } + else { + vector tmp(n, *this); + tmp.vec_.finish_ = uninit_fill_n(tmp.vec_.finish_, n - size(), v); + Swap(tmp); + } + } + + void reserve(size_t n) + { + if (capacity() < n) { + vector tmp(n, *this); + Swap(tmp); + } + } + + void Swap(vector& that) + { + vec_.Swap(that.vec_); + } +private: + vector_base vec_; + + vector& operator=(const vector&); // hide assign + + // for growing, n must be bigger than other size + vector(size_t n, const vector& other) : vec_(n) + { + if (n > other.size()) + vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_, + vec_.start_); + } +}; + + + +} // namespace mySTL + +#endif // mySTL_VECTOR_HPP diff --git a/mysql/extra/yassl/taocrypt/src/aes.cpp b/mysql/extra/yassl/taocrypt/src/aes.cpp new file mode 100644 index 0000000..3fcf80a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/aes.cpp @@ -0,0 +1,1885 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* C++ based on Wei Dai's aes.cpp from CryptoPP */ +/* x86 asm original */ + +#if defined(TAOCRYPT_KERNEL_MODE) + #define DO_TAOCRYPT_KERNEL_MODE +#endif // only some modules now support this + +#include "runtime.hpp" +#include "aes.hpp" + + +namespace TaoCrypt { + + +#if defined(DO_AES_ASM) + +// ia32 optimized version +void AES::Process(byte* out, const byte* in, word32 sz) +{ + if (!isMMX) { + Mode_BASE::Process(out, in, sz); + return; + } + + word32 blocks = sz / BLOCK_SIZE; + + if (mode_ == ECB) + while (blocks--) { + if (dir_ == ENCRYPTION) + AsmEncrypt(in, out, (void*)Te0); + else + AsmDecrypt(in, out, (void*)Td0); + out += BLOCK_SIZE; + in += BLOCK_SIZE; + } + else if (mode_ == CBC) { + if (dir_ == ENCRYPTION) { + while (blocks--) { + r_[0] ^= *(word32*)in; + r_[1] ^= *(word32*)(in + 4); + r_[2] ^= *(word32*)(in + 8); + r_[3] ^= *(word32*)(in + 12); + + AsmEncrypt((byte*)r_, (byte*)r_, (void*)Te0); + + memcpy(out, r_, BLOCK_SIZE); + out += BLOCK_SIZE; + in += BLOCK_SIZE; + } + } + else { + while (blocks--) { + AsmDecrypt(in, out, (void*)Td0); + + *(word32*)out ^= r_[0]; + *(word32*)(out + 4) ^= r_[1]; + *(word32*)(out + 8) ^= r_[2]; + *(word32*)(out + 12) ^= r_[3]; + + memcpy(r_, in, BLOCK_SIZE); + out += BLOCK_SIZE; + in += BLOCK_SIZE; + } + } + } +} + +#endif // DO_AES_ASM + + +void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/) +{ + if (keylen <= 16) + keylen = 16; + else if (keylen >= 32) + keylen = 32; + else if (keylen != 24) + keylen = 24; + + rounds_ = keylen/4 + 6; + + word32 temp, *rk = key_; + unsigned int i=0; + + GetUserKey(BigEndianOrder, rk, keylen/4, userKey, keylen); + + switch(keylen) + { + case 16: + while (true) + { + temp = rk[3]; + rk[4] = rk[0] ^ + (Te2[GETBYTE(temp, 2)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^ + rcon_[i]; + rk[5] = rk[1] ^ rk[4]; + rk[6] = rk[2] ^ rk[5]; + rk[7] = rk[3] ^ rk[6]; + if (++i == 10) + break; + rk += 4; + } + break; + + case 24: + while (true) // for (;;) here triggers a bug in VC60 SP4 w/ Pro Pack + { + temp = rk[ 5]; + rk[ 6] = rk[ 0] ^ + (Te2[GETBYTE(temp, 2)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^ + rcon_[i]; + rk[ 7] = rk[ 1] ^ rk[ 6]; + rk[ 8] = rk[ 2] ^ rk[ 7]; + rk[ 9] = rk[ 3] ^ rk[ 8]; + if (++i == 8) + break; + rk[10] = rk[ 4] ^ rk[ 9]; + rk[11] = rk[ 5] ^ rk[10]; + rk += 6; + } + break; + + case 32: + while (true) + { + temp = rk[ 7]; + rk[ 8] = rk[ 0] ^ + (Te2[GETBYTE(temp, 2)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^ + rcon_[i]; + rk[ 9] = rk[ 1] ^ rk[ 8]; + rk[10] = rk[ 2] ^ rk[ 9]; + rk[11] = rk[ 3] ^ rk[10]; + if (++i == 7) + break; + temp = rk[11]; + rk[12] = rk[ 4] ^ + (Te2[GETBYTE(temp, 3)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 0)] & 0x000000ff); + rk[13] = rk[ 5] ^ rk[12]; + rk[14] = rk[ 6] ^ rk[13]; + rk[15] = rk[ 7] ^ rk[14]; + + rk += 8; + } + break; + } + + if (dir_ == DECRYPTION) + { + unsigned int i, j; + rk = key_; + + /* invert the order of the round keys: */ + for (i = 0, j = 4*rounds_; i < j; i += 4, j -= 4) { + temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp; + temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp; + temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp; + temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp; + } + // apply the inverse MixColumn transform to all round keys but the + // first and the last: + for (i = 1; i < rounds_; i++) { + rk += 4; + rk[0] = + Td0[Te1[GETBYTE(rk[0], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[0], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[0], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[0], 0)] & 0xff]; + rk[1] = + Td0[Te1[GETBYTE(rk[1], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[1], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[1], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[1], 0)] & 0xff]; + rk[2] = + Td0[Te1[GETBYTE(rk[2], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[2], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[2], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[2], 0)] & 0xff]; + rk[3] = + Td0[Te1[GETBYTE(rk[3], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[3], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[3], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[3], 0)] & 0xff]; + } + } +} + + +void AES::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out) const +{ + if (dir_ == ENCRYPTION) + encrypt(in, xOr, out); + else + decrypt(in, xOr, out); +} + + +typedef BlockGetAndPut gpBlock; + + +void AES::encrypt(const byte* inBlock, const byte* xorBlock, + byte* outBlock) const +{ + word32 s0, s1, s2, s3; + word32 t0, t1, t2, t3; + + const word32 *rk = key_; + /* + * map byte array block to cipher state + * and add initial round key: + */ + gpBlock::Get(inBlock)(s0)(s1)(s2)(s3); + s0 ^= rk[0]; + s1 ^= rk[1]; + s2 ^= rk[2]; + s3 ^= rk[3]; + + s0 |= PreFetchTe(); + /* + * Nr - 1 full rounds: + */ + + unsigned int r = rounds_ >> 1; + for (;;) { + t0 = + Te0[GETBYTE(s0, 3)] ^ + Te1[GETBYTE(s1, 2)] ^ + Te2[GETBYTE(s2, 1)] ^ + Te3[GETBYTE(s3, 0)] ^ + rk[4]; + t1 = + Te0[GETBYTE(s1, 3)] ^ + Te1[GETBYTE(s2, 2)] ^ + Te2[GETBYTE(s3, 1)] ^ + Te3[GETBYTE(s0, 0)] ^ + rk[5]; + t2 = + Te0[GETBYTE(s2, 3)] ^ + Te1[GETBYTE(s3, 2)] ^ + Te2[GETBYTE(s0, 1)] ^ + Te3[GETBYTE(s1, 0)] ^ + rk[6]; + t3 = + Te0[GETBYTE(s3, 3)] ^ + Te1[GETBYTE(s0, 2)] ^ + Te2[GETBYTE(s1, 1)] ^ + Te3[GETBYTE(s2, 0)] ^ + rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = + Te0[GETBYTE(t0, 3)] ^ + Te1[GETBYTE(t1, 2)] ^ + Te2[GETBYTE(t2, 1)] ^ + Te3[GETBYTE(t3, 0)] ^ + rk[0]; + s1 = + Te0[GETBYTE(t1, 3)] ^ + Te1[GETBYTE(t2, 2)] ^ + Te2[GETBYTE(t3, 1)] ^ + Te3[GETBYTE(t0, 0)] ^ + rk[1]; + s2 = + Te0[GETBYTE(t2, 3)] ^ + Te1[GETBYTE(t3, 2)] ^ + Te2[GETBYTE(t0, 1)] ^ + Te3[GETBYTE(t1, 0)] ^ + rk[2]; + s3 = + Te0[GETBYTE(t3, 3)] ^ + Te1[GETBYTE(t0, 2)] ^ + Te2[GETBYTE(t1, 1)] ^ + Te3[GETBYTE(t2, 0)] ^ + rk[3]; + } + + /* + * apply last round and + * map cipher state to byte array block: + */ + + s0 = + (Te2[GETBYTE(t0, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t1, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t2, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t3, 0)] & 0x000000ff) ^ + rk[0]; + s1 = + (Te2[GETBYTE(t1, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t2, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t3, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t0, 0)] & 0x000000ff) ^ + rk[1]; + s2 = + (Te2[GETBYTE(t2, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t3, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t0, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t1, 0)] & 0x000000ff) ^ + rk[2]; + s3 = + (Te2[GETBYTE(t3, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t0, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t1, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t2, 0)] & 0x000000ff) ^ + rk[3]; + + + gpBlock::Put(xorBlock, outBlock)(s0)(s1)(s2)(s3); +} + + +void AES::decrypt(const byte* inBlock, const byte* xorBlock, + byte* outBlock) const +{ + word32 s0, s1, s2, s3; + word32 t0, t1, t2, t3; + const word32* rk = key_; + + /* + * map byte array block to cipher state + * and add initial round key: + */ + gpBlock::Get(inBlock)(s0)(s1)(s2)(s3); + s0 ^= rk[0]; + s1 ^= rk[1]; + s2 ^= rk[2]; + s3 ^= rk[3]; + + s0 |= PreFetchTd(); + + /* + * Nr - 1 full rounds: + */ + + unsigned int r = rounds_ >> 1; + for (;;) { + t0 = + Td0[GETBYTE(s0, 3)] ^ + Td1[GETBYTE(s3, 2)] ^ + Td2[GETBYTE(s2, 1)] ^ + Td3[GETBYTE(s1, 0)] ^ + rk[4]; + t1 = + Td0[GETBYTE(s1, 3)] ^ + Td1[GETBYTE(s0, 2)] ^ + Td2[GETBYTE(s3, 1)] ^ + Td3[GETBYTE(s2, 0)] ^ + rk[5]; + t2 = + Td0[GETBYTE(s2, 3)] ^ + Td1[GETBYTE(s1, 2)] ^ + Td2[GETBYTE(s0, 1)] ^ + Td3[GETBYTE(s3, 0)] ^ + rk[6]; + t3 = + Td0[GETBYTE(s3, 3)] ^ + Td1[GETBYTE(s2, 2)] ^ + Td2[GETBYTE(s1, 1)] ^ + Td3[GETBYTE(s0, 0)] ^ + rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = + Td0[GETBYTE(t0, 3)] ^ + Td1[GETBYTE(t3, 2)] ^ + Td2[GETBYTE(t2, 1)] ^ + Td3[GETBYTE(t1, 0)] ^ + rk[0]; + s1 = + Td0[GETBYTE(t1, 3)] ^ + Td1[GETBYTE(t0, 2)] ^ + Td2[GETBYTE(t3, 1)] ^ + Td3[GETBYTE(t2, 0)] ^ + rk[1]; + s2 = + Td0[GETBYTE(t2, 3)] ^ + Td1[GETBYTE(t1, 2)] ^ + Td2[GETBYTE(t0, 1)] ^ + Td3[GETBYTE(t3, 0)] ^ + rk[2]; + s3 = + Td0[GETBYTE(t3, 3)] ^ + Td1[GETBYTE(t2, 2)] ^ + Td2[GETBYTE(t1, 1)] ^ + Td3[GETBYTE(t0, 0)] ^ + rk[3]; + } + /* + * apply last round and + * map cipher state to byte array block: + */ + + t0 |= PreFetchCTd4(); + + s0 = + ((word32)CTd4[GETBYTE(t0, 3)] << 24) ^ + ((word32)CTd4[GETBYTE(t3, 2)] << 16) ^ + ((word32)CTd4[GETBYTE(t2, 1)] << 8) ^ + ((word32)CTd4[GETBYTE(t1, 0)]) ^ + rk[0]; + s1 = + ((word32)CTd4[GETBYTE(t1, 3)] << 24) ^ + ((word32)CTd4[GETBYTE(t0, 2)] << 16) ^ + ((word32)CTd4[GETBYTE(t3, 1)] << 8) ^ + ((word32)CTd4[GETBYTE(t2, 0)]) ^ + rk[1]; + s2 = + ((word32)CTd4[GETBYTE(t2, 3)] << 24 ) ^ + ((word32)CTd4[GETBYTE(t1, 2)] << 16 ) ^ + ((word32)CTd4[GETBYTE(t0, 1)] << 8 ) ^ + ((word32)CTd4[GETBYTE(t3, 0)]) ^ + rk[2]; + s3 = + ((word32)CTd4[GETBYTE(t3, 3)] << 24) ^ + ((word32)CTd4[GETBYTE(t2, 2)] << 16) ^ + ((word32)CTd4[GETBYTE(t1, 1)] << 8) ^ + ((word32)CTd4[GETBYTE(t0, 0)]) ^ + rk[3]; + + gpBlock::Put(xorBlock, outBlock)(s0)(s1)(s2)(s3); +} + + +#if defined(DO_AES_ASM) + #ifdef __GNUC__ + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + + #define PROLOG() \ + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "movd mm7, ebp;" \ + "movd mm4, eax;" \ + "mov ebp, edx;" \ + "sub esp, 4;" + #define EPILOG() \ + "add esp, 4;" \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "S" (inBlock), "d" (boxes), "a" (outBlock) \ + : "%edi", "memory", "cc" \ + ); + + #else + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + + #define PROLOG() \ + AS1( push ebp ) \ + AS2( mov ebp, esp ) \ + AS2( movd mm3, edi ) \ + AS2( movd mm4, ebx ) \ + AS2( sub esp, 4 ) \ + AS2( movd mm7, ebp ) \ + AS2( mov [ebp - 4], esi ) \ + AS2( mov esi, DWORD PTR [ebp + 8] ) \ + AS2( mov ebp, DWORD PTR [ebp + 16] ) + + // ebp is restored at end + #define EPILOG() \ + AS2( mov esi, [ebp - 4] ) \ + AS2( movd ebx, mm4 ) \ + AS2( movd edi, mm3 ) \ + AS2( mov esp, ebp ) \ + AS1( pop ebp ) \ + AS1( emms ) \ + AS1( ret 12 ) + + + #endif + + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const +{ + + PROLOG() + + #ifdef OLD_GCC_OFFSET + AS2( mov edx, DWORD PTR [ecx + 60] ) // rounds + AS2( lea edi, [ecx + 64] ) // rk + #else + AS2( mov edx, DWORD PTR [ecx + 56] ) // rounds + AS2( lea edi, [ecx + 60] ) // rk + #endif + + AS1( dec edx ) + AS2( movd mm6, edi ) // save rk + AS2( movd mm5, edx ) // save rounds + + AS2( mov eax, DWORD PTR [esi] ) + AS2( mov ebx, DWORD PTR [esi + 4] ) + AS2( mov ecx, DWORD PTR [esi + 8] ) + AS2( mov edx, DWORD PTR [esi + 12] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( xor eax, DWORD PTR [edi] ) // s0 + AS2( xor ebx, DWORD PTR [edi + 4] ) // s1 + AS2( xor ecx, DWORD PTR [edi + 8] ) // s2 + AS2( xor edx, DWORD PTR [edi + 12] ) // s3 + +#ifdef _MSC_VER + AS1( loop1: ) // loop1 +#else + AS1(1: ) // loop1 +#endif + /* Put0 (mm0) = + Te0[get0,rs 24] ^ + Te1[get1,rs 16] ^ + Te2[get2,rs 8] ^ + Te3[get3,rs 0] + */ + + AS2( mov esi, eax ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, ebx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx edi, ch ) + AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) + + AS2( movzx edi, dl ) + AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) + + AS2( movd mm0, esi ) + + /* Put1 (mm1) = + Te0[get1,rs 24] ^ + Te1[get2,rs 16] ^ + Te2[get3,rs 8] ^ + Te3[get0,rs 0] + */ + + AS2( mov esi, ebx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, ecx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx edi, dh ) + AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) + + AS2( movzx edi, al ) + AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) + + AS2( movd mm1, esi ) + + + /* Put2 (mm2) = + Te0[get2,rs 24] ^ + Te1[get3,rs 16] ^ + Te2[get0,rs 8] ^ + Te3[get1,rs 0] + */ + + AS2( mov esi, ecx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, edx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx edi, ah ) + AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) + + AS2( movzx edi, bl ) + AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) + + AS2( movd mm2, esi ) + + /* Put3 (edx) = + Te0[get3,rs 24] ^ + Te1[get0,rs 16] ^ + Te2[get1,rs 8] ^ + Te3[get2,rs 0] + */ + + AS2( mov esi, edx ) + AS2( shr esi, 24 ) + AS2( mov edx, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, eax ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor edx, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx esi, bh ) + AS2( xor edx, DWORD PTR [ebp + 2048 + esi*4] ) + + AS2( movzx edi, cl ) + AS2( xor edx, DWORD PTR [ebp + 3072 + edi*4] ) + + // xOr + + AS2( movd esi, mm6 ) // rk + + AS2( movd eax, mm0 ) + AS2( add esi, 16 ) + AS2( movd ebx, mm1 ) + AS2( movd mm6, esi ) // save back + AS2( movd ecx, mm2 ) + + AS2( xor eax, DWORD PTR [esi] ) + AS2( xor ebx, DWORD PTR [esi + 4] ) + AS2( movd edi, mm5 ) + AS2( xor ecx, DWORD PTR [esi + 8] ) + AS2( xor edx, DWORD PTR [esi + 12] ) + + AS1( dec edi ) + AS2( movd mm5, edi ) + +#ifdef _MSC_VER + AS1( jnz loop1) // loop1 +#else + AS1( jnz 1b ) // loop1 +#endif + + // last round + /* + Put0 (mm0) = + (Te4[get0, rs24] & 0xff000000) ^ h = 4278190080 + (Te4[get1, rs16] & 0x00ff0000) ^ h = 16711680 + (Te4[get2, rs 8] & 0x0000ff00) ^ h = 65280 + (Te4[get3, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, eax ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and esi, 4278190080 ) + + AS2( mov edi, ebx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 16711680 ) + AS2( xor esi, edi ) + + AS2( movzx edi, ch ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 65280 ) + AS2( xor esi, edi ) + + AS2( movzx edi, dl ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 255 ) + AS2( xor esi, edi ) + + AS2( movd mm0, esi ) + + /* + Put1 (mm1) = + (Te4[get1, rs24] & 0xff000000) ^ h = 4278190080 + (Te4[get2, rs16] & 0x00ff0000) ^ h = 16711680 + (Te4[get3, rs 8] & 0x0000ff00) ^ h = 65280 + (Te4[get0, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, ebx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and esi, 4278190080 ) + + AS2( mov edi, ecx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 16711680 ) + AS2( xor esi, edi ) + + AS2( movzx edi, dh ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 65280 ) + AS2( xor esi, edi ) + + AS2( movzx edi, al ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 255 ) + AS2( xor esi, edi ) + + AS2( movd mm1, esi ) + + /* + Put2 (mm2) = + (Te4[get2, rs24] & 0xff000000) ^ h = 4278190080 + (Te4[get3, rs16] & 0x00ff0000) ^ h = 16711680 + (Te4[get0, rs 8] & 0x0000ff00) ^ h = 65280 + (Te4[get1, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, ecx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and esi, 4278190080 ) + + AS2( mov edi, edx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 16711680 ) + AS2( xor esi, edi ) + + AS2( movzx edi, ah ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 65280 ) + AS2( xor esi, edi ) + + AS2( movzx edi, bl ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 255 ) + AS2( xor esi, edi ) + + AS2( movd mm2, esi ) + + /* + Put3 (edx) = + (Te4[get3, rs24] & 0xff000000) ^ h = 4278190080 + (Te4[get0, rs16] & 0x00ff0000) ^ h = 16711680 + (Te4[get1, rs 8] & 0x0000ff00) ^ h = 65280 + (Te4[get2, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, edx ) + AS2( shr esi, 24 ) + AS2( mov edx, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and edx, 4278190080 ) + + AS2( mov edi, eax ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and esi, 16711680 ) + AS2( xor edx, esi ) + + AS2( movzx esi, bh ) + AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and edi, 65280 ) + AS2( xor edx, edi ) + + AS2( movzx edi, cl ) + AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and esi, 255 ) + AS2( xor edx, esi ) + + + // xOr + AS2( movd eax, mm0 ) + AS2( movd esi, mm6 ) // rk + AS2( movd ebx, mm1 ) + AS2( add esi, 16 ) + AS2( movd ecx, mm2 ) + + AS2( xor eax, DWORD PTR [esi] ) + AS2( xor ebx, DWORD PTR [esi + 4] ) + AS2( xor ecx, DWORD PTR [esi + 8] ) + AS2( xor edx, DWORD PTR [esi + 12] ) + + // end + AS2( movd ebp, mm7 ) + + // swap + AS1( bswap eax ) + AS1( bswap ebx ) + + // store + #ifdef __GNUC__ + AS2( movd esi, mm4 ) // outBlock + #else + AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock + #endif + + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( mov DWORD PTR [esi], eax ) + AS2( mov DWORD PTR [esi + 4], ebx ) + AS2( mov DWORD PTR [esi + 8], ecx ) + AS2( mov DWORD PTR [esi + 12], edx ) + + + EPILOG() +} + + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void AES::AsmDecrypt(const byte* inBlock, byte* outBlock, void* boxes) const +{ + + PROLOG() + + #ifdef OLD_GCC_OFFSET + AS2( mov edx, DWORD PTR [ecx + 60] ) // rounds + AS2( lea edi, [ecx + 64] ) // rk + #else + AS2( mov edx, DWORD PTR [ecx + 56] ) // rounds + AS2( lea edi, [ecx + 60] ) // rk + #endif + + AS1( dec edx ) + AS2( movd mm6, edi ) // save rk + AS2( movd mm5, edx ) // save rounds + + AS2( mov eax, DWORD PTR [esi] ) + AS2( mov ebx, DWORD PTR [esi + 4] ) + AS2( mov ecx, DWORD PTR [esi + 8] ) + AS2( mov edx, DWORD PTR [esi + 12] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( xor eax, DWORD PTR [edi] ) // s0 + AS2( xor ebx, DWORD PTR [edi + 4] ) // s1 + AS2( xor ecx, DWORD PTR [edi + 8] ) // s2 + AS2( xor edx, DWORD PTR [edi + 12] ) // s3 + + +#ifdef _MSC_VER + AS1( loop2: ) // loop2 +#else + AS1(2: ) // loop2 +#endif + /* Put0 (mm0) = + Td0[GETBYTE(get0, rs24)] ^ + Td1[GETBYTE(get3, rs16)] ^ + Td2[GETBYTE(get2, rs 8)] ^ + Td3[GETBYTE(tet1, )] + */ + AS2( mov esi, eax ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, edx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx edi, ch ) + AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) + + AS2( movzx edi, bl ) + AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) + + AS2( movd mm0, esi ) + + /* Put1 (mm1) = + Td0[GETBYTE(get1, rs24)] ^ + Td1[GETBYTE(get0, rs16)] ^ + Td2[GETBYTE(get3, rs 8)] ^ + Td3[GETBYTE(tet2, )] + */ + AS2( mov esi, ebx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, eax ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx edi, dh ) + AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) + + AS2( movzx edi, cl ) + AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) + + AS2( movd mm1, esi ) + + /* Put2 (mm2) = + Td0[GETBYTE(get2, rs24)] ^ + Td1[GETBYTE(get1, rs16)] ^ + Td2[GETBYTE(get0, rs 8)] ^ + Td3[GETBYTE(tet3, )] + */ + AS2( mov esi, ecx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, ebx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx edi, ah ) + AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) + + AS2( movzx edi, dl ) + AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) + + AS2( movd mm2, esi ) + + /* Put3 (edx) = + Td0[GETBYTE(get3, rs24)] ^ + Td1[GETBYTE(get2, rs16)] ^ + Td2[GETBYTE(get1, rs 8)] ^ + Td3[GETBYTE(tet0, )] + */ + AS2( mov esi, edx ) + AS2( shr esi, 24 ) + AS2( mov edx, DWORD PTR [ebp + esi*4] ) + + AS2( mov edi, ecx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( xor edx, DWORD PTR [ebp + 1024 + edi*4] ) + + AS2( movzx esi, bh ) + AS2( xor edx, DWORD PTR [ebp + 2048 + esi*4] ) + + AS2( movzx edi, al ) + AS2( xor edx, DWORD PTR [ebp + 3072 + edi*4] ) + + + // xOr + + AS2( movd esi, mm6 ) // rk + AS2( add esi, 16 ) + AS2( movd mm6, esi ) // save back + + AS2( movd eax, mm0 ) + AS2( movd ebx, mm1 ) + AS2( movd ecx, mm2 ) + + AS2( xor eax, DWORD PTR [esi] ) + AS2( xor ebx, DWORD PTR [esi + 4] ) + AS2( xor ecx, DWORD PTR [esi + 8] ) + AS2( xor edx, DWORD PTR [esi + 12] ) + + AS2( movd edi, mm5 ) + AS1( dec edi ) + AS2( movd mm5, edi ) + +#ifdef _MSC_VER + AS1( jnz loop2) // loop2 +#else + AS1( jnz 2b ) // loop2 +#endif + + // last round + /* + Put0 (mm0) = + (Td4[get0, rs24] & 0xff000000) ^ h = 4278190080 + (Td4[get3, rs16] & 0x00ff0000) ^ h = 16711680 + (Td4[get2, rs 8] & 0x0000ff00) ^ h = 65280 + (Td4[get1, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, eax ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and esi, 4278190080 ) + + AS2( mov edi, edx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 16711680 ) + AS2( xor esi, edi ) + + AS2( movzx edi, ch ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 65280 ) + AS2( xor esi, edi ) + + AS2( movzx edi, bl ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 255 ) + AS2( xor esi, edi ) + + AS2( movd mm0, esi ) + + /* + Put1 (mm1) = + (Td4[get1, rs24] & 0xff000000) ^ h = 4278190080 + (Td4[get0, rs16] & 0x00ff0000) ^ h = 16711680 + (Td4[get3, rs 8] & 0x0000ff00) ^ h = 65280 + (Td4[get2, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, ebx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and esi, 4278190080 ) + + AS2( mov edi, eax ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 16711680 ) + AS2( xor esi, edi ) + + AS2( movzx edi, dh ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 65280 ) + AS2( xor esi, edi ) + + AS2( movzx edi, cl ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 255 ) + AS2( xor esi, edi ) + + AS2( movd mm1, esi ) + + /* + Put2 (mm2) = + (Td4[get2, rs24] & 0xff000000) ^ h = 4278190080 + (Td4[get1, rs16] & 0x00ff0000) ^ h = 16711680 + (Td4[get0, rs 8] & 0x0000ff00) ^ h = 65280 + (Td4[get3, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, ecx ) + AS2( shr esi, 24 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and esi, 4278190080 ) + + AS2( mov edi, ebx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 16711680 ) + AS2( xor esi, edi ) + + AS2( movzx edi, ah ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 65280 ) + AS2( xor esi, edi ) + + AS2( movzx edi, dl ) + AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and edi, 255 ) + AS2( xor esi, edi ) + + AS2( movd mm2, esi ) + + /* + Put3 (edx) = + (Td4[get3, rs24] & 0xff000000) ^ h = 4278190080 + (Td4[get2, rs16] & 0x00ff0000) ^ h = 16711680 + (Td4[get1, rs 8] & 0x0000ff00) ^ h = 65280 + (Td4[get0, rs 0] & 0x000000ff) h = 255 + */ + AS2( mov esi, edx ) + AS2( shr esi, 24 ) + AS2( mov edx, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and edx, 4278190080 ) + + AS2( mov edi, ecx ) + AS2( shr edi, 16 ) + AS2( and edi, 255 ) + AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and esi, 16711680 ) + AS2( xor edx, esi ) + + AS2( movzx esi, bh ) + AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) + AS2( and edi, 65280 ) + AS2( xor edx, edi ) + + AS2( movzx edi, al ) + AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) + AS2( and esi, 255 ) + AS2( xor edx, esi ) + + + // xOr + AS2( movd esi, mm6 ) // rk + AS2( add esi, 16 ) + + AS2( movd eax, mm0 ) + AS2( movd ebx, mm1 ) + AS2( movd ecx, mm2 ) + + AS2( xor eax, DWORD PTR [esi] ) + AS2( xor ebx, DWORD PTR [esi + 4] ) + AS2( xor ecx, DWORD PTR [esi + 8] ) + AS2( xor edx, DWORD PTR [esi + 12] ) + + // end + AS2( movd ebp, mm7 ) + + // swap + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + // store + #ifdef __GNUC__ + AS2( movd esi, mm4 ) // outBlock + #else + AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock + #endif + AS2( mov DWORD PTR [esi], eax ) + AS2( mov DWORD PTR [esi + 4], ebx ) + AS2( mov DWORD PTR [esi + 8], ecx ) + AS2( mov DWORD PTR [esi + 12], edx ) + + + EPILOG() +} + + + +#endif // defined(DO_AES_ASM) + + + +const word32 AES::Te[5][256] = { +{ + 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, + 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, + 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, + 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, + 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, + 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, + 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, + 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, + 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, + 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, + 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, + 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, + 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, + 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, + 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, + 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, + 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, + 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, + 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, + 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, + 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, + 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, + 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, + 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, + 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, + 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, + 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, + 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, + 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, + 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, + 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, + 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, + 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, + 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, + 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, + 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, + 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, + 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, + 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, + 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, + 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, + 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, + 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, + 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, + 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, + 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, + 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, + 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, + 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, + 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, + 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, + 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, + 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, + 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, + 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, + 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, + 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, + 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, + 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, + 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, + 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, + 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, + 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, + 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, +}, +{ + 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, + 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, + 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, + 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, + 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU, + 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, + 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU, + 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, + 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, + 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, + 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, + 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, + 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, + 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU, + 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, + 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U, + 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, + 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, + 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, + 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, + 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, + 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, + 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U, + 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, + 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU, + 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, + 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, + 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, + 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, + 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, + 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, + 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U, + 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, + 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U, + 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, + 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, + 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, + 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, + 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, + 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, + 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU, + 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, + 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U, + 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, + 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, + 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, + 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, + 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, + 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, + 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U, + 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, + 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU, + 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, + 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, + 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, + 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, + 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, + 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, + 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U, + 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, + 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU, + 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, + 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, + 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, +}, +{ + 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, + 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, + 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, + 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, + 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU, + 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, + 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU, + 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, + 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, + 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, + 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, + 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U, + 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, + 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU, + 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, + 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U, + 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, + 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, + 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, + 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, + 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, + 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, + 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U, + 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, + 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU, + 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, + 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, + 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, + 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, + 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, + 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, + 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U, + 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, + 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U, + 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, + 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, + 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, + 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, + 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, + 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, + 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU, + 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, + 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U, + 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, + 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, + 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, + 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, + 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, + 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, + 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U, + 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, + 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU, + 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, + 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, + 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, + 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, + 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U, + 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, + 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U, + 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, + 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU, + 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, + 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, + 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, +}, +{ + 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, + 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, + 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, + 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, + 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU, + 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, + 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U, + 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, + 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, + 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, + 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, + 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU, + 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, + 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU, + 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, + 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU, + 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, + 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, + 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, + 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, + 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, + 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, + 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U, + 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, + 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU, + 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, + 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, + 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, + 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, + 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, + 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, + 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU, + 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, + 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU, + 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, + 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, + 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, + 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, + 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, + 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, + 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U, + 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, + 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U, + 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, + 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, + 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, + 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, + 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, + 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, + 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U, + 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, + 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU, + 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, + 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, + 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, + 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, + 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U, + 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, + 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U, + 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, + 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU, + 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, + 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, + 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, +}, +{ + 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, + 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, + 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU, + 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, + 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU, + 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, + 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU, + 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, + 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, + 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, + 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, + 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U, + 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, + 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU, + 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, + 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U, + 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, + 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, + 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, + 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, + 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU, + 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, + 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U, + 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, + 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU, + 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, + 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, + 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, + 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, + 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, + 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, + 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U, + 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, + 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U, + 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, + 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, + 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, + 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, + 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, + 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, + 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU, + 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, + 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U, + 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, + 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, + 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, + 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, + 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, + 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, + 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U, + 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, + 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU, + 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, + 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, + 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, + 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, + 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U, + 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, + 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U, + 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, + 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU, + 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, + 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, + 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, +} +}; + + +const word32 AES::Td[5][256] = { +{ + 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, + 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, + 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, + 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, + 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, + 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, + 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, + 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, + 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, + 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, + 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, + 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, + 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, + 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, + 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, + 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, + 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, + 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, + 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, + 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, + 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, + 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, + 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, + 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, + 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, + 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, + 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, + 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, + 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, + 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, + 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, + 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, + 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, + 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, + 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, + 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, + 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, + 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, + 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, + 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, + 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, + 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, + 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, + 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, + 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, + 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, + 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, + 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, + 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, + 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, + 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, + 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, + 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, + 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, + 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, + 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, + 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, + 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, + 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, + 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, + 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, + 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, + 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, + 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U, +}, +{ + 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, + 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, + 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, + 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, + 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U, + 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, + 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U, + 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, + 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, + 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, + 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, + 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, + 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, + 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU, + 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, + 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U, + 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, + 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, + 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, + 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, + 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, + 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, + 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU, + 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, + 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U, + 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, + 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, + 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, + 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, + 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU, + 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, + 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U, + 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, + 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU, + 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, + 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, + 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, + 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, + 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U, + 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, + 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU, + 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, + 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U, + 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, + 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, + 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, + 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, + 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, + 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, + 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U, + 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, + 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U, + 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, + 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, + 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, + 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, + 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, + 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, + 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U, + 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, + 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U, + 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, + 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, + 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, +}, +{ + 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, + 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, + 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, + 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, + 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU, + 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, + 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U, + 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, + 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, + 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, + 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, + 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, + 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, + 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U, + 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, + 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U, + 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, + 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, + 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, + 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, + + 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, + 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, + 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, + 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, + 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U, + 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, + 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU, + 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, + 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, + 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, + 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, + 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, + 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, + 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU, + 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, + 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U, + 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, + 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, + 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, + 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, + 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, + 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, + 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU, + 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, + 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U, + 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, + 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, + 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, + 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, + 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, + 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, + 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U, + 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, + 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U, + 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, + 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, + 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, + 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, + 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U, + 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, + 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U, + 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, + 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U, + 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, +}, +{ + 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, + 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, + 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U, + 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, + 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU, + 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, + 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U, + 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, + 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, + 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, + 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, + 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, + 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, + 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U, + 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, + 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU, + 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, + 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, + 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, + 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, + 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, + 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, + 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U, + 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, + 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U, + 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, + 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, + 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, + 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, + 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU, + 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, + 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U, + 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, + 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU, + 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, + 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, + 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, + 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, + 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U, + 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, + 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U, + 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, + 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U, + 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, + 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, + 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, + 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, + 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, + 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, + 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U, + 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, + 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U, + 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, + 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, + 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, + 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, + 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, + 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, + 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U, + 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, + 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U, + 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, + 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, + 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, +}, +{ + 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, + 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, + 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, + 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, + 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U, + 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, + 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U, + 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, + 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, + 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, + 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, + 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, + 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, + 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U, + 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, + 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U, + 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, + 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, + 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, + 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, + 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U, + 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, + 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U, + 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, + 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U, + 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, + 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, + 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, + 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, + 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, + 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, + 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU, + 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, + 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU, + 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, + 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, + 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, + 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, + 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, + 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, + 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U, + 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, + 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU, + 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, + 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, + 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, + 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, + 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, + 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, + 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U, + 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, + 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU, + 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, + 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, + 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, + 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, + 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, + 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, + 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU, + 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, + 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU, + 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, + 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, + 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, +} +}; + +const byte AES::CTd4[256] = +{ + 0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U, + 0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU, + 0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U, + 0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU, + 0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU, + 0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU, + 0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U, + 0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U, + 0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U, + 0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U, + 0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU, + 0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U, + 0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU, + 0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U, + 0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U, + 0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU, + 0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU, + 0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U, + 0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U, + 0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU, + 0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U, + 0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU, + 0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U, + 0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U, + 0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U, + 0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU, + 0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU, + 0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU, + 0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U, + 0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U, + 0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U, + 0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU, +}; + + +const word32* AES::Te0 = AES::Te[0]; +const word32* AES::Te1 = AES::Te[1]; +const word32* AES::Te2 = AES::Te[2]; +const word32* AES::Te3 = AES::Te[3]; + +const word32* AES::Td0 = AES::Td[0]; +const word32* AES::Td1 = AES::Td[1]; +const word32* AES::Td2 = AES::Td[2]; +const word32* AES::Td3 = AES::Td[3]; + + + +} // namespace + diff --git a/mysql/extra/yassl/taocrypt/src/aestables.cpp b/mysql/extra/yassl/taocrypt/src/aestables.cpp new file mode 100644 index 0000000..60795a5 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/aestables.cpp @@ -0,0 +1,36 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's aestables.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "aes.hpp" + + +namespace TaoCrypt { + + +const word32 AES::rcon_[] = { + 0x01000000, 0x02000000, 0x04000000, 0x08000000, + 0x10000000, 0x20000000, 0x40000000, 0x80000000, + 0x1B000000, 0x36000000, + /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ +}; + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/algebra.cpp b/mysql/extra/yassl/taocrypt/src/algebra.cpp new file mode 100644 index 0000000..ace1704 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/algebra.cpp @@ -0,0 +1,336 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* based on Wei Dai's algebra.cpp from CryptoPP */ +#undef NDEBUG +#define DEBUG // GCC 4.0 bug if NDEBUG and Optimize > 1 + +#include "runtime.hpp" +#include "algebra.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "vector.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + +namespace TaoCrypt { + + +const Integer& AbstractGroup::Double(const Element &a) const +{ + return Add(a, a); +} + +const Integer& AbstractGroup::Subtract(const Element &a, const Element &b) const +{ + // make copy of a in case Inverse() overwrites it + Element a1(a); + return Add(a1, Inverse(b)); +} + +Integer& AbstractGroup::Accumulate(Element &a, const Element &b) const +{ + return a = Add(a, b); +} + +Integer& AbstractGroup::Reduce(Element &a, const Element &b) const +{ + return a = Subtract(a, b); +} + +const Integer& AbstractRing::Square(const Element &a) const +{ + return Multiply(a, a); +} + + +const Integer& AbstractRing::Divide(const Element &a, const Element &b) const +{ + // make copy of a in case MultiplicativeInverse() overwrites it + Element a1(a); + return Multiply(a1, MultiplicativeInverse(b)); +} + + +const Integer& AbstractEuclideanDomain::Mod(const Element &a, + const Element &b) const +{ + Element q; + DivisionAlgorithm(result, q, a, b); + return result; +} + +const Integer& AbstractEuclideanDomain::Gcd(const Element &a, + const Element &b) const +{ + STL::vector g(3); + g[0]= b; + g[1]= a; + unsigned int i0=0, i1=1, i2=2; + + while (!Equal(g[i1], this->Identity())) + { + g[i2] = Mod(g[i0], g[i1]); + unsigned int t = i0; i0 = i1; i1 = i2; i2 = t; + } + + return result = g[i0]; +} + + +Integer AbstractGroup::ScalarMultiply(const Element &base, + const Integer &exponent) const +{ + Element result; + SimultaneousMultiply(&result, base, &exponent, 1); + return result; +} + + +Integer AbstractGroup::CascadeScalarMultiply(const Element &x, + const Integer &e1, const Element &y, const Integer &e2) const +{ + const unsigned expLen = max(e1.BitCount(), e2.BitCount()); + if (expLen==0) + return Identity(); + + const unsigned w = (expLen <= 46 ? 1 : (expLen <= 260 ? 2 : 3)); + const unsigned tableSize = 1< powerTable(tableSize << w); + + powerTable[1] = x; + powerTable[tableSize] = y; + if (w==1) + powerTable[3] = Add(x,y); + else + { + powerTable[2] = Double(x); + powerTable[2*tableSize] = Double(y); + + unsigned i, j; + + for (i=3; i=0; i--) + { + power1 = 2*power1 + e1.GetBit(i); + power2 = 2*power2 + e2.GetBit(i); + + if (i==0 || 2*power1 >= tableSize || 2*power2 >= tableSize) + { + unsigned squaresBefore = prevPosition-i; + unsigned squaresAfter = 0; + prevPosition = i; + while ((power1 || power2) && power1%2 == 0 && power2%2==0) + { + power1 /= 2; + power2 /= 2; + squaresBefore--; + squaresAfter++; + } + if (firstTime) + { + result = powerTable[(power2<= expLen) + { + finished = true; + return; + } + skipCount++; + } + + exp >>= skipCount; + windowBegin += skipCount; + expWindow = exp % (1 << windowSize); + + if (fastNegate && exp.GetBit(windowSize)) + { + negateNext = true; + expWindow = (1 << windowSize) - expWindow; + exp += windowModulus; + } + else + negateNext = false; + } + + Integer exp, windowModulus; + unsigned int windowSize, windowBegin, expWindow; + bool fastNegate, negateNext, firstTime, finished; +}; + + +void AbstractGroup::SimultaneousMultiply(Integer *results, const Integer &base, + const Integer *expBegin, unsigned int expCount) const +{ + STL::vector > buckets(expCount); + STL::vector exponents; + exponents.reserve(expCount); + unsigned int i; + + for (i=0; i 1) + { + for (size_t j = buckets[i].size()-2; j >= 1; j--) + { + Accumulate(buckets[i][j], buckets[i][j+1]); + Accumulate(r, buckets[i][j]); + } + Accumulate(buckets[i][0], buckets[i][1]); + r = Add(Double(r), buckets[i][0]); + } + } +} + +Integer AbstractRing::Exponentiate(const Element &base, + const Integer &exponent) const +{ + Element result; + SimultaneousExponentiate(&result, base, &exponent, 1); + return result; +} + + +Integer AbstractRing::CascadeExponentiate(const Element &x, + const Integer &e1, const Element &y, const Integer &e2) const +{ + return MultiplicativeGroup().AbstractGroup::CascadeScalarMultiply( + x, e1, y, e2); +} + + +void AbstractRing::SimultaneousExponentiate(Integer *results, + const Integer &base, + const Integer *exponents, unsigned int expCount) const +{ + MultiplicativeGroup().AbstractGroup::SimultaneousMultiply(results, base, + exponents, expCount); +} + + +} // namespace + + +#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION +namespace mySTL { +template TaoCrypt::WindowSlider* uninit_copy(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*); +template void destroy(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*); +template TaoCrypt::WindowSlider* GetArrayMemory(size_t); +template void FreeArrayMemory(TaoCrypt::WindowSlider*); +} +#endif + diff --git a/mysql/extra/yassl/taocrypt/src/arc4.cpp b/mysql/extra/yassl/taocrypt/src/arc4.cpp new file mode 100644 index 0000000..10a3a7d --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/arc4.cpp @@ -0,0 +1,243 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's arc4.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "arc4.hpp" + + +#if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) + #define DO_ARC4_ASM +#endif + + +namespace TaoCrypt { + +void ARC4::SetKey(const byte* key, word32 length) +{ + x_ = 1; + y_ = 0; + + word32 i; + + for (i = 0; i < STATE_SIZE; i++) + state_[i] = i; + + word32 keyIndex = 0, stateIndex = 0; + + for (i = 0; i < STATE_SIZE; i++) { + word32 a = state_[i]; + stateIndex += key[keyIndex] + a; + stateIndex &= 0xFF; + state_[i] = state_[stateIndex]; + state_[stateIndex] = a; + + if (++keyIndex >= length) + keyIndex = 0; + } +} + + +// local +namespace { + +inline unsigned int MakeByte(word32& x, word32& y, byte* s) +{ + word32 a = s[x]; + y = (y+a) & 0xff; + + word32 b = s[y]; + s[x] = b; + s[y] = a; + x = (x+1) & 0xff; + + return s[(a+b) & 0xff]; +} + +} // namespace + + + +void ARC4::Process(byte* out, const byte* in, word32 length) +{ + if (length == 0) return; + +#ifdef DO_ARC4_ASM + if (isMMX) { + AsmProcess(out, in, length); + return; + } +#endif + + byte *const s = state_; + word32 x = x_; + word32 y = y_; + + if (in == out) + while (length--) + *out++ ^= MakeByte(x, y, s); + else + while(length--) + *out++ = *in++ ^ MakeByte(x, y, s); + x_ = x; + y_ = y; +} + + + +#ifdef DO_ARC4_ASM + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void ARC4::AsmProcess(byte* out, const byte* in, word32 length) +{ +#ifdef __GNUC__ + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + + #define PROLOG() \ + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "mov ebp, eax;" + #define EPILOG() \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (out), "S" (in), "a" (length) \ + : "%edx", "memory", "cc" \ + ); + +#else + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + + #define PROLOG() \ + AS1( push ebp ) \ + AS2( mov ebp, esp ) \ + AS2( movd mm3, edi ) \ + AS2( movd mm4, ebx ) \ + AS2( movd mm5, esi ) \ + AS2( movd mm6, ebp ) \ + AS2( mov edi, DWORD PTR [ebp + 8] ) \ + AS2( mov esi, DWORD PTR [ebp + 12] ) \ + AS2( mov ebp, DWORD PTR [ebp + 16] ) + + #define EPILOG() \ + AS2( movd ebp, mm6 ) \ + AS2( movd esi, mm5 ) \ + AS2( movd ebx, mm4 ) \ + AS2( movd edi, mm3 ) \ + AS2( mov esp, ebp ) \ + AS1( pop ebp ) \ + AS1( emms ) \ + AS1( ret 12 ) + +#endif + + PROLOG() + + AS2( sub esp, 4 ) // make room + + AS2( cmp ebp, 0 ) + AS1( jz nothing ) + + AS2( mov [esp], ebp ) // length + + AS2( movzx edx, BYTE PTR [ecx + 1] ) // y + AS2( lea ebp, [ecx + 2] ) // state_ + AS2( movzx ecx, BYTE PTR [ecx] ) // x + + // setup loop + // a = s[x]; + AS2( movzx eax, BYTE PTR [ebp + ecx] ) + + +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif + + // y = (y+a) & 0xff; + AS2( add edx, eax ) + AS2( and edx, 255 ) + + // b = s[y]; + AS2( movzx ebx, BYTE PTR [ebp + edx] ) + + // s[x] = b; + AS2( mov [ebp + ecx], bl ) + + // s[y] = a; + AS2( mov [ebp + edx], al ) + + // x = (x+1) & 0xff; + AS1( inc ecx ) + AS2( and ecx, 255 ) + + //return s[(a+b) & 0xff]; + AS2( add eax, ebx ) + AS2( and eax, 255 ) + + AS2( movzx ebx, BYTE PTR [ebp + eax] ) + + // a = s[x]; for next round + AS2( movzx eax, BYTE PTR [ebp + ecx] ) + + // xOr w/ inByte + AS2( xor bl, BYTE PTR [esi] ) + AS1( inc esi ) + + // write to outByte + AS2( mov [edi], bl ) + AS1( inc edi ) + + AS1( dec DWORD PTR [esp] ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif + + + // write back to x_ and y_ + AS2( mov [ebp - 2], cl ) + AS2( mov [ebp - 1], dl ) + + +AS1( nothing: ) + + // inline adjust + AS2( add esp, 4 ) // fix room on stack + + EPILOG() +} + +#endif // DO_ARC4_ASM + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/asn.cpp b/mysql/extra/yassl/taocrypt/src/asn.cpp new file mode 100644 index 0000000..e0aef45 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/asn.cpp @@ -0,0 +1,1348 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* asn.cpp implements ASN1 BER, PublicKey, and x509v3 decoding +*/ + +#include "runtime.hpp" +#include "asn.hpp" +#include "file.hpp" +#include "integer.hpp" +#include "rsa.hpp" +#include "dsa.hpp" +#include "dh.hpp" +#include "md5.hpp" +#include "md2.hpp" +#include "sha.hpp" +#include "coding.hpp" +#include // gmtime(); +#include "memory.hpp" // some auto_ptr don't have reset, also need auto_array + + +namespace TaoCrypt { + +// like atoi but only use first byte +word32 btoi(byte b) +{ + return b - 0x30; +} + + +// two byte date/time, add to value +void GetTime(int *value, const byte* date, int& i) +{ + *value += btoi(date[i++]) * 10; + *value += btoi(date[i++]); +} + + +bool ASN1_TIME_extract(const unsigned char* date, unsigned char format, + tm *t) +{ + int i = 0; + memset(t, 0, sizeof (tm)); + + if (format != UTC_TIME && format != GENERALIZED_TIME) + return false; + + if (format == UTC_TIME) { + if (btoi(date[0]) >= 5) + t->tm_year = 1900; + else + t->tm_year = 2000; + } + else { // format == GENERALIZED_TIME + t->tm_year += btoi(date[i++]) * 1000; + t->tm_year += btoi(date[i++]) * 100; + } + + GetTime(&t->tm_year, date, i); t->tm_year -= 1900; // adjust + GetTime(&t->tm_mon, date, i); t->tm_mon -= 1; // adjust + GetTime(&t->tm_mday, date, i); + GetTime(&t->tm_hour, date, i); + GetTime(&t->tm_min, date, i); + GetTime(&t->tm_sec, date, i); + + if (date[i] != 'Z') // only Zulu supported for this profile + return false; + return true; +} + + +namespace { // locals + + +// to the second +bool operator>(tm& a, tm& b) +{ + if (a.tm_year > b.tm_year) + return true; + + if (a.tm_year == b.tm_year && a.tm_mon > b.tm_mon) + return true; + + if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon && a.tm_mday >b.tm_mday) + return true; + + if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon && + a.tm_mday == b.tm_mday && a.tm_hour > b.tm_hour) + return true; + + if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon && + a.tm_mday == b.tm_mday && a.tm_hour == b.tm_hour && + a.tm_min > b.tm_min) + return true; + + if (a.tm_year == b.tm_year && a.tm_mon == b.tm_mon && + a.tm_mday == b.tm_mday && a.tm_hour == b.tm_hour && + a.tm_min == b.tm_min && a.tm_sec > b.tm_sec) + return true; + + return false; +} + + +bool operator<(tm& a, tm&b) +{ + return (b>a); +} + + +// Make sure before and after dates are valid +bool ValidateDate(const byte* date, byte format, CertDecoder::DateType dt) +{ + tm certTime; + + if (!ASN1_TIME_extract(date, format, &certTime)) + return false; + + time_t ltime = time(0); + tm* localTime = gmtime(<ime); + + if (dt == CertDecoder::BEFORE) { + if (*localTime < certTime) + return false; + } + else + if (*localTime > certTime) + return false; + + return true; +} + + +class BadCertificate {}; + +} // local namespace + + + +// used by Integer as well +word32 GetLength(Source& source) +{ + word32 length = 0; + + byte b = source.next(); + if (b >= LONG_LENGTH) { + word32 bytes = b & 0x7F; + + if (source.IsLeft(bytes) == false) return 0; + + while (bytes--) { + b = source.next(); + length = (length << 8) | b; + } + } + else + length = b; + + if (source.IsLeft(length) == false) return 0; + + return length; +} + + +word32 SetLength(word32 length, byte* output) +{ + word32 i = 0; + + if (length < LONG_LENGTH) + output[i++] = length; + else { + output[i++] = BytePrecision(length) | 0x80; + + for (int j = BytePrecision(length); j; --j) { + output[i] = length >> (j - 1) * 8; + i++; + } + } + return i; +} + + +PublicKey::PublicKey(const byte* k, word32 s) : key_(0), sz_(0) +{ + if (s) { + SetSize(s); + SetKey(k); + } +} + + +void PublicKey::SetSize(word32 s) +{ + sz_ = s; + key_ = NEW_TC byte[sz_]; +} + + +void PublicKey::SetKey(const byte* k) +{ + memcpy(key_, k, sz_); +} + + +void PublicKey::AddToEnd(const byte* data, word32 len) +{ + mySTL::auto_array tmp(NEW_TC byte[sz_ + len]); + + memcpy(tmp.get(), key_, sz_); + memcpy(tmp.get() + sz_, data, len); + + byte* del = 0; + STL::swap(del, key_); + tcArrayDelete(del); + + key_ = tmp.release(); + sz_ += len; +} + + +Signer::Signer(const byte* k, word32 kSz, const char* n, const byte* h) + : key_(k, kSz) +{ + size_t sz = strlen(n); + memcpy(name_, n, sz); + name_[sz] = 0; + + memcpy(hash_, h, SHA::DIGEST_SIZE); +} + +Signer::~Signer() +{ +} + + +Error BER_Decoder::GetError() +{ + return source_.GetError(); +} + + +Integer& BER_Decoder::GetInteger(Integer& integer) +{ + if (!source_.GetError().What()) + integer.Decode(source_); + return integer; +} + + +// Read a Sequence, return length +word32 BER_Decoder::GetSequence() +{ + if (source_.GetError().What()) return 0; + + byte b = source_.next(); + if (b != (SEQUENCE | CONSTRUCTED)) { + source_.SetError(SEQUENCE_E); + return 0; + } + + return GetLength(source_); +} + + +// Read a Sequence, return length +word32 BER_Decoder::GetSet() +{ + if (source_.GetError().What()) return 0; + + byte b = source_.next(); + if (b != (SET | CONSTRUCTED)) { + source_.SetError(SET_E); + return 0; + } + + return GetLength(source_); +} + + +// Read Version, return it +word32 BER_Decoder::GetVersion() +{ + if (source_.GetError().What()) return 0; + + byte b = source_.next(); + if (b != INTEGER) { + source_.SetError(INTEGER_E); + return 0; + } + + b = source_.next(); + if (b != 0x01) { + source_.SetError(VERSION_E); + return 0; + } + + return source_.next(); +} + + +// Read ExplicitVersion, return it or 0 if not there (not an error) +word32 BER_Decoder::GetExplicitVersion() +{ + if (source_.GetError().What()) return 0; + + byte b = source_.next(); + + if (b == (CONTEXT_SPECIFIC | CONSTRUCTED)) { // not an error if not here + source_.next(); + return GetVersion(); + } + else + source_.prev(); // put back + + return 0; +} + + +// Decode a BER encoded RSA Private Key +void RSA_Private_Decoder::Decode(RSA_PrivateKey& key) +{ + ReadHeader(); + if (source_.GetError().What()) return; + // public + key.SetModulus(GetInteger(Integer().Ref())); + key.SetPublicExponent(GetInteger(Integer().Ref())); + + // private + key.SetPrivateExponent(GetInteger(Integer().Ref())); + key.SetPrime1(GetInteger(Integer().Ref())); + key.SetPrime2(GetInteger(Integer().Ref())); + key.SetModPrime1PrivateExponent(GetInteger(Integer().Ref())); + key.SetModPrime2PrivateExponent(GetInteger(Integer().Ref())); + key.SetMultiplicativeInverseOfPrime2ModPrime1(GetInteger(Integer().Ref())); +} + + +void RSA_Private_Decoder::ReadHeader() +{ + GetSequence(); + GetVersion(); +} + + +// Decode a BER encoded DSA Private Key +void DSA_Private_Decoder::Decode(DSA_PrivateKey& key) +{ + ReadHeader(); + if (source_.GetError().What()) return; + // group parameters + key.SetModulus(GetInteger(Integer().Ref())); + key.SetSubGroupOrder(GetInteger(Integer().Ref())); + key.SetSubGroupGenerator(GetInteger(Integer().Ref())); + + // key + key.SetPublicPart(GetInteger(Integer().Ref())); + key.SetPrivatePart(GetInteger(Integer().Ref())); +} + + +void DSA_Private_Decoder::ReadHeader() +{ + GetSequence(); + GetVersion(); +} + + +// Decode a BER encoded RSA Public Key +void RSA_Public_Decoder::Decode(RSA_PublicKey& key) +{ + ReadHeader(); + if (source_.GetError().What()) return; + + ReadHeaderOpenSSL(); // may or may not be + if (source_.GetError().What()) return; + + // public key + key.SetModulus(GetInteger(Integer().Ref())); + key.SetPublicExponent(GetInteger(Integer().Ref())); +} + + +// Read OpenSSL format public header +void RSA_Public_Decoder::ReadHeaderOpenSSL() +{ + byte b = source_.next(); // peek + source_.prev(); + + if (b != INTEGER) { // have OpenSSL public format + GetSequence(); + b = source_.next(); + if (b != OBJECT_IDENTIFIER) { + source_.SetError(OBJECT_ID_E); + return; + } + + word32 len = GetLength(source_); + source_.advance(len); + + b = source_.next(); + if (b == TAG_NULL) { // could have NULL tag and 0 terminator, may not + b = source_.next(); + if (b != 0) { + source_.SetError(EXPECT_0_E); + return; + } + } + else + source_.prev(); // put back + + b = source_.next(); + if (b != BIT_STRING) { + source_.SetError(BIT_STR_E); + return; + } + + len = GetLength(source_); + b = source_.next(); + if (b != 0) // could have 0 + source_.prev(); // put back + + GetSequence(); + } +} + + +void RSA_Public_Decoder::ReadHeader() +{ + GetSequence(); +} + + +// Decode a BER encoded DSA Public Key +void DSA_Public_Decoder::Decode(DSA_PublicKey& key) +{ + ReadHeader(); + if (source_.GetError().What()) return; + + // group parameters + key.SetModulus(GetInteger(Integer().Ref())); + key.SetSubGroupOrder(GetInteger(Integer().Ref())); + key.SetSubGroupGenerator(GetInteger(Integer().Ref())); + + // key + key.SetPublicPart(GetInteger(Integer().Ref())); +} + + +void DSA_Public_Decoder::ReadHeader() +{ + GetSequence(); +} + + +void DH_Decoder::ReadHeader() +{ + GetSequence(); +} + + +// Decode a BER encoded Diffie-Hellman Key +void DH_Decoder::Decode(DH& key) +{ + ReadHeader(); + if (source_.GetError().What()) return; + + // group parms + key.SetP(GetInteger(Integer().Ref())); + key.SetG(GetInteger(Integer().Ref())); +} + + +CertDecoder::CertDecoder(Source& s, bool decode, SignerList* signers, + bool noVerify, CertType ct) + : BER_Decoder(s), certBegin_(0), sigIndex_(0), sigLength_(0), subCnPos_(-1), + subCnLen_(0), issCnPos_(-1), issCnLen_(0), signature_(0), + verify_(!noVerify) +{ + issuer_[0] = 0; + subject_[0] = 0; + + if (decode) + Decode(signers, ct); + +} + + +CertDecoder::~CertDecoder() +{ + tcArrayDelete(signature_); +} + + +// process certificate header, set signature offset +void CertDecoder::ReadHeader() +{ + if (source_.GetError().What()) return; + + GetSequence(); // total + certBegin_ = source_.get_index(); + + sigIndex_ = GetSequence(); // this cert + sigIndex_ += source_.get_index(); + + GetExplicitVersion(); // version + GetInteger(Integer().Ref()); // serial number +} + + +// Decode a x509v3 Certificate +void CertDecoder::Decode(SignerList* signers, CertType ct) +{ + if (source_.GetError().What()) return; + DecodeToKey(); + if (source_.GetError().What()) return; + + if (source_.get_index() != sigIndex_) + source_.set_index(sigIndex_); + + word32 confirmOID = GetAlgoId(); + GetSignature(); + if (source_.GetError().What()) return; + + if ( confirmOID != signatureOID_ ) { + source_.SetError(SIG_OID_E); + return; + } + + if (ct != CA && verify_ && !ValidateSignature(signers)) + source_.SetError(SIG_OTHER_E); +} + + +void CertDecoder::DecodeToKey() +{ + ReadHeader(); + signatureOID_ = GetAlgoId(); + GetName(ISSUER); + GetValidity(); + GetName(SUBJECT); + GetKey(); +} + + +// Read public key +void CertDecoder::GetKey() +{ + if (source_.GetError().What()) return; + + GetSequence(); + keyOID_ = GetAlgoId(); + + if (keyOID_ == RSAk) { + byte b = source_.next(); + if (b != BIT_STRING) { + source_.SetError(BIT_STR_E); + return; + } + b = source_.next(); // length, future + b = source_.next(); + while(b != 0) + b = source_.next(); + } + else if (keyOID_ == DSAk) + ; // do nothing + else { + source_.SetError(UNKNOWN_OID_E); + return; + } + + StoreKey(); + if (keyOID_ == DSAk) + AddDSA(); +} + + +// Save public key +void CertDecoder::StoreKey() +{ + if (source_.GetError().What()) return; + + word32 read = source_.get_index(); + word32 length = GetSequence(); + + read = source_.get_index() - read; + length += read; + + if (source_.GetError().What()) return; + while (read--) source_.prev(); + + if (source_.IsLeft(length) == false) return; + key_.SetSize(length); + key_.SetKey(source_.get_current()); + source_.advance(length); +} + + +// DSA has public key after group +void CertDecoder::AddDSA() +{ + if (source_.GetError().What()) return; + + byte b = source_.next(); + if (b != BIT_STRING) { + source_.SetError(BIT_STR_E); + return; + } + b = source_.next(); // length, future + b = source_.next(); + while(b != 0) + b = source_.next(); + + word32 idx = source_.get_index(); + b = source_.next(); + if (b != INTEGER) { + source_.SetError(INTEGER_E); + return; + } + + word32 length = GetLength(source_); + length += source_.get_index() - idx; + + if (source_.IsLeft(length) == false) return; + + key_.AddToEnd(source_.get_buffer() + idx, length); +} + + +// process algo OID by summing, return it +word32 CertDecoder::GetAlgoId() +{ + if (source_.GetError().What()) return 0; + word32 length = GetSequence(); + + if (source_.GetError().What()) return 0; + + byte b = source_.next(); + if (b != OBJECT_IDENTIFIER) { + source_.SetError(OBJECT_ID_E); + return 0; + } + + length = GetLength(source_); + if (source_.IsLeft(length) == false) return 0; + + word32 oid = 0; + while(length--) + oid += source_.next(); // just sum it up for now + + // could have NULL tag and 0 terminator, but may not + b = source_.next(); + if (b == TAG_NULL) { + b = source_.next(); + if (b != 0) { + source_.SetError(EXPECT_0_E); + return 0; + } + } + else + // go back, didn't have it + b = source_.prev(); + + return oid; +} + + +// read cert signature, store in signature_ +word32 CertDecoder::GetSignature() +{ + if (source_.GetError().What()) return 0; + byte b = source_.next(); + + if (b != BIT_STRING) { + source_.SetError(BIT_STR_E); + return 0; + } + + sigLength_ = GetLength(source_); + if (sigLength_ <= 1 || source_.IsLeft(sigLength_) == false) { + source_.SetError(CONTENT_E); + return 0; + } + + b = source_.next(); + if (b != 0) { + source_.SetError(EXPECT_0_E); + return 0; + } + sigLength_--; + + signature_ = NEW_TC byte[sigLength_]; + memcpy(signature_, source_.get_current(), sigLength_); + source_.advance(sigLength_); + + return sigLength_; +} + + +// read cert digest, store in signature_ +word32 CertDecoder::GetDigest() +{ + if (source_.GetError().What()) return 0; + byte b = source_.next(); + + if (b != OCTET_STRING) { + source_.SetError(OCTET_STR_E); + return 0; + } + + sigLength_ = GetLength(source_); + + signature_ = NEW_TC byte[sigLength_]; + memcpy(signature_, source_.get_current(), sigLength_); + source_.advance(sigLength_); + + return sigLength_; +} + + +// memory length checked add tag to buffer +char* CertDecoder::AddTag(char* ptr, const char* buf_end, const char* tag_name, + word32 tag_name_length, word32 tag_value_length) +{ + if (ptr + tag_name_length + tag_value_length > buf_end) { + source_.SetError(CONTENT_E); + return 0; + } + + memcpy(ptr, tag_name, tag_name_length); + ptr += tag_name_length; + + memcpy(ptr, source_.get_current(), tag_value_length); + ptr += tag_value_length; + + return ptr; +} + + +// process NAME, either issuer or subject +void CertDecoder::GetName(NameType nt) +{ + if (source_.GetError().What()) return; + + SHA sha; + word32 length = GetSequence(); // length of all distinguished names + + if (length >= ASN_NAME_MAX) + return; + if (source_.IsLeft(length) == false) return; + length += source_.get_index(); + + char* ptr; + char* buf_end; + + if (nt == ISSUER) { + ptr = issuer_; + buf_end = ptr + sizeof(issuer_) - 1; // 1 byte for trailing 0 + } + else { + ptr = subject_; + buf_end = ptr + sizeof(subject_) - 1; // 1 byte for trailing 0 + } + + while (source_.get_index() < length) { + GetSet(); + if (source_.GetError().What() == SET_E) { + source_.SetError(NO_ERROR_E); // extensions may only have sequence + source_.prev(); + } + GetSequence(); + + byte b = source_.next(); + if (b != OBJECT_IDENTIFIER) { + source_.SetError(OBJECT_ID_E); + return; + } + + word32 oidSz = GetLength(source_); + if (source_.IsLeft(oidSz) == false) return; + + byte joint[2]; + if (source_.IsLeft(sizeof(joint)) == false) return; + memcpy(joint, source_.get_current(), sizeof(joint)); + + // v1 name types + if (joint[0] == 0x55 && joint[1] == 0x04) { + source_.advance(2); + byte id = source_.next(); + b = source_.next(); // strType + word32 strLen = GetLength(source_); + + if (source_.IsLeft(strLen) == false) return; + + switch (id) { + case COMMON_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/CN=", 4, strLen))) + return; + if (nt == ISSUER) { + issCnPos_ = (int)(ptr - strLen - issuer_); + issCnLen_ = (int)strLen; + } else { + subCnPos_ = (int)(ptr - strLen - subject_); + subCnLen_ = (int)strLen; + } + break; + case SUR_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/SN=", 4, strLen))) + return; + break; + case COUNTRY_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/C=", 3, strLen))) + return; + break; + case LOCALITY_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/L=", 3, strLen))) + return; + break; + case STATE_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/ST=", 4, strLen))) + return; + break; + case ORG_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/O=", 3, strLen))) + return; + break; + case ORGUNIT_NAME: + if (!(ptr = AddTag(ptr, buf_end, "/OU=", 4, strLen))) + return; + break; + } + + sha.Update(source_.get_current(), strLen); + source_.advance(strLen); + } + else { + bool email = false; + if (joint[0] == 0x2a && joint[1] == 0x86) // email id hdr + email = true; + + source_.advance(oidSz + 1); + word32 length = GetLength(source_); + if (source_.IsLeft(length) == false) return; + + if (email) { + if (!(ptr = AddTag(ptr, buf_end, "/emailAddress=", 14, length))) + return; + } + + source_.advance(length); + } + } + + *ptr = 0; + + if (nt == ISSUER) + sha.Final(issuerHash_); + else + sha.Final(subjectHash_); +} + + +// process a Date, either BEFORE or AFTER +void CertDecoder::GetDate(DateType dt) +{ + if (source_.GetError().What()) return; + + byte b = source_.next(); + if (b != UTC_TIME && b != GENERALIZED_TIME) { + source_.SetError(TIME_E); + return; + } + + word32 length = GetLength(source_); + if (source_.IsLeft(length) == false) return; + + byte date[MAX_DATE_SZ]; + if (length > MAX_DATE_SZ || length < MIN_DATE_SZ) { + source_.SetError(DATE_SZ_E); + return; + } + + memcpy(date, source_.get_current(), length); + source_.advance(length); + + if (!ValidateDate(date, b, dt) && verify_) { + if (dt == BEFORE) + source_.SetError(BEFORE_DATE_E); + else + source_.SetError(AFTER_DATE_E); + } + + // save for later use + if (dt == BEFORE) { + memcpy(beforeDate_, date, length); + beforeDate_[length] = 0; + beforeDateType_= b; + } + else { // after + memcpy(afterDate_, date, length); + afterDate_[length] = 0; + afterDateType_= b; + } +} + + +void CertDecoder::GetValidity() +{ + if (source_.GetError().What()) return; + + GetSequence(); + GetDate(BEFORE); + GetDate(AFTER); +} + + +bool CertDecoder::ValidateSelfSignature() +{ + Source pub(key_.GetKey(), key_.size()); + return ConfirmSignature(pub); +} + + +// extract compare signature hash from plain and place into digest +void CertDecoder::GetCompareHash(const byte* plain, word32 sz, byte* digest, + word32 digSz) +{ + if (source_.GetError().What()) return; + + Source s(plain, sz); + CertDecoder dec(s, false); + + dec.GetSequence(); + dec.GetAlgoId(); + dec.GetDigest(); + + if (dec.sigLength_ > digSz) { + source_.SetError(SIG_LEN_E); + return; + } + + memcpy(digest, dec.signature_, dec.sigLength_); +} + + +// validate signature signed by someone else +bool CertDecoder::ValidateSignature(SignerList* signers) +{ + if (!signers) + return false; + + SignerList::iterator first = signers->begin(); + SignerList::iterator last = signers->end(); + + while (first != last) { + if ( memcmp(issuerHash_, (*first)->GetHash(), SHA::DIGEST_SIZE) == 0) { + + const PublicKey& iKey = (*first)->GetPublicKey(); + Source pub(iKey.GetKey(), iKey.size()); + return ConfirmSignature(pub); + } + ++first; + } + return false; +} + + +// confirm certificate signature +bool CertDecoder::ConfirmSignature(Source& pub) +{ + HashType ht; + mySTL::auto_ptr hasher; + + if (signatureOID_ == MD5wRSA) { + hasher.reset(NEW_TC MD5); + ht = MD5h; + } + else if (signatureOID_ == MD2wRSA) { + hasher.reset(NEW_TC MD2); + ht = MD2h; + } + else if (signatureOID_ == SHAwRSA || signatureOID_ == SHAwDSA) { + hasher.reset(NEW_TC SHA); + ht = SHAh; + } + else if (signatureOID_ == SHA256wRSA || signatureOID_ == SHA256wDSA) { + hasher.reset(NEW_TC SHA256); + ht = SHA256h; + } +#ifdef WORD64_AVAILABLE + else if (signatureOID_ == SHA384wRSA) { + hasher.reset(NEW_TC SHA384); + ht = SHA384h; + } + else if (signatureOID_ == SHA512wRSA) { + hasher.reset(NEW_TC SHA512); + ht = SHA512h; + } +#endif + else { + source_.SetError(UNKOWN_SIG_E); + return false; + } + + byte digest[MAX_SHA2_DIGEST_SIZE]; // largest size + + hasher->Update(source_.get_buffer() + certBegin_, sigIndex_ - certBegin_); + hasher->Final(digest); + + if (keyOID_ == RSAk) { + // put in ASN.1 signature format + Source build; + Signature_Encoder(digest, hasher->getDigestSize(), ht, build); + + RSA_PublicKey pubKey(pub); + RSAES_Encryptor enc(pubKey); + + if (pubKey.FixedCiphertextLength() != sigLength_) { + source_.SetError(SIG_LEN_E); + return false; + } + + return enc.SSL_Verify(build.get_buffer(), build.size(), signature_); + } + else { // DSA + // extract r and s from sequence + byte seqDecoded[DSA_SIG_SZ]; + memset(seqDecoded, 0, sizeof(seqDecoded)); + DecodeDSA_Signature(seqDecoded, signature_, sigLength_); + + DSA_PublicKey pubKey(pub); + DSA_Verifier ver(pubKey); + + return ver.Verify(digest, seqDecoded); + } +} + + +Signature_Encoder::Signature_Encoder(const byte* dig, word32 digSz, + HashType digOID, Source& source) +{ + // build bottom up + + // Digest + byte digArray[MAX_DIGEST_SZ]; + word32 digestSz = SetDigest(dig, digSz, digArray); + + // AlgoID + byte algoArray[MAX_ALGO_SZ]; + word32 algoSz = SetAlgoID(digOID, algoArray); + + // Sequence + byte seqArray[MAX_SEQ_SZ]; + word32 seqSz = SetSequence(digestSz + algoSz, seqArray); + + source.grow(seqSz + algoSz + digestSz); // make sure enough room + source.add(seqArray, seqSz); + source.add(algoArray, algoSz); + source.add(digArray, digestSz); +} + + + +word32 Signature_Encoder::SetDigest(const byte* d, word32 dSz, byte* output) +{ + output[0] = OCTET_STRING; + output[1] = dSz; + memcpy(&output[2], d, dSz); + + return dSz + 2; +} + + + +word32 DER_Encoder::SetAlgoID(HashType aOID, byte* output) +{ + // adding TAG_NULL and 0 to end + static const byte shaAlgoID[] = { 0x2b, 0x0e, 0x03, 0x02, 0x1a, + 0x05, 0x00 }; + static const byte md5AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x02, 0x05, 0x05, 0x00 }; + static const byte md2AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x02, 0x02, 0x05, 0x00}; + static const byte sha256AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, + 0x04, 0x02, 0x01, 0x05, 0x00 }; + static const byte sha384AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, + 0x04, 0x02, 0x02, 0x05, 0x00 }; + static const byte sha512AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, + 0x04, 0x02, 0x03, 0x05, 0x00 }; + int algoSz = 0; + const byte* algoName = 0; + + switch (aOID) { + case SHAh: + algoSz = sizeof(shaAlgoID); + algoName = shaAlgoID; + break; + + case SHA256h: + algoSz = sizeof(sha256AlgoID); + algoName = sha256AlgoID; + break; + + case SHA384h: + algoSz = sizeof(sha384AlgoID); + algoName = sha384AlgoID; + break; + + case SHA512h: + algoSz = sizeof(sha512AlgoID); + algoName = sha512AlgoID; + break; + + case MD2h: + algoSz = sizeof(md2AlgoID); + algoName = md2AlgoID; + break; + + case MD5h: + algoSz = sizeof(md5AlgoID); + algoName = md5AlgoID; + break; + + default: + error_.SetError(UNKOWN_HASH_E); + return 0; + } + + + byte ID_Length[MAX_LENGTH_SZ]; + word32 idSz = SetLength(algoSz - 2, ID_Length); // don't include TAG_NULL/0 + + byte seqArray[MAX_SEQ_SZ + 1]; // add object_id to end + word32 seqSz = SetSequence(idSz + algoSz + 1, seqArray); + seqArray[seqSz++] = OBJECT_IDENTIFIER; + + memcpy(output, seqArray, seqSz); + memcpy(output + seqSz, ID_Length, idSz); + memcpy(output + seqSz + idSz, algoName, algoSz); + + return seqSz + idSz + algoSz; +} + + +word32 SetSequence(word32 len, byte* output) +{ + + output[0] = SEQUENCE | CONSTRUCTED; + return SetLength(len, output + 1) + 1; +} + + +word32 EncodeDSA_Signature(const byte* signature, byte* output) +{ + Integer r(signature, 20); + Integer s(signature + 20, 20); + + return EncodeDSA_Signature(r, s, output); +} + + +word32 EncodeDSA_Signature(const Integer& r, const Integer& s, byte* output) +{ + word32 rSz = r.ByteCount(); + word32 sSz = s.ByteCount(); + + byte rLen[MAX_LENGTH_SZ + 1]; + byte sLen[MAX_LENGTH_SZ + 1]; + + rLen[0] = INTEGER; + sLen[0] = INTEGER; + + word32 rLenSz = SetLength(rSz, &rLen[1]) + 1; + word32 sLenSz = SetLength(sSz, &sLen[1]) + 1; + + byte seqArray[MAX_SEQ_SZ]; + + word32 seqSz = SetSequence(rLenSz + rSz + sLenSz + sSz, seqArray); + + // seq + memcpy(output, seqArray, seqSz); + // r + memcpy(output + seqSz, rLen, rLenSz); + r.Encode(output + seqSz + rLenSz, rSz); + // s + memcpy(output + seqSz + rLenSz + rSz, sLen, sLenSz); + s.Encode(output + seqSz + rLenSz + rSz + sLenSz, sSz); + + return seqSz + rLenSz + rSz + sLenSz + sSz; +} + + +// put sequence encoded dsa signature into decoded in 2 20 byte integers +word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz) +{ + Source source(encoded, sz); + + if (source.next() != (SEQUENCE | CONSTRUCTED)) { + source.SetError(SEQUENCE_E); + return 0; + } + + GetLength(source); // total + + // r + if (source.next() != INTEGER) { + source.SetError(INTEGER_E); + return 0; + } + word32 rLen = GetLength(source); + if (rLen != 20) { + while (rLen > 20 && source.remaining() > 0) { // zero's at front, eat + source.next(); + --rLen; + } + if (rLen < 20) { // add zero's to front so 20 bytes + word32 tmpLen = rLen; + while (tmpLen < 20) { + decoded[0] = 0; + decoded++; + tmpLen++; + } + } + } + memcpy(decoded, source.get_buffer() + source.get_index(), rLen); + source.advance(rLen); + + // s + if (source.next() != INTEGER) { + source.SetError(INTEGER_E); + return 0; + } + word32 sLen = GetLength(source); + if (sLen != 20) { + while (sLen > 20 && source.remaining() > 0) { + source.next(); // zero's at front, eat + --sLen; + } + if (sLen < 20) { // add zero's to front so 20 bytes + word32 tmpLen = sLen; + while (tmpLen < 20) { + decoded[rLen] = 0; + decoded++; + tmpLen++; + } + } + } + memcpy(decoded + rLen, source.get_buffer() + source.get_index(), sLen); + source.advance(sLen); + + return 40; +} + + +/* +// Get Cert in PEM format from BEGIN to END +int GetCert(Source& source) +{ + char header[] = "-----BEGIN CERTIFICATE-----"; + char footer[] = "-----END CERTIFICATE-----"; + + char* begin = strstr((char*)source.get_buffer(), header); + char* end = strstr((char*)source.get_buffer(), footer); + + if (!begin || !end || begin >= end) return -1; + + end += strlen(footer); + if (*end == '\r') end++; + + Source tmp((byte*)begin, end - begin + 1); + source.Swap(tmp); + + return 0; +} + + + +// Decode a BER encoded PKCS12 structure +void PKCS12_Decoder::Decode() +{ + ReadHeader(); + if (source_.GetError().What()) return; + + // Get AuthSafe + + GetSequence(); + + // get object id + byte obj_id = source_.next(); + if (obj_id != OBJECT_IDENTIFIER) { + source_.SetError(OBJECT_ID_E); + return; + } + + word32 length = GetLength(source_); + + word32 algo_sum = 0; + while (length--) + algo_sum += source_.next(); + + + + + + + // Get MacData optional + // mac digestInfo like certdecoder::getdigest? + // macsalt octet string + // iter integer + +} + + +void PKCS12_Decoder::ReadHeader() +{ + // Gets Version + GetSequence(); + GetVersion(); +} + + +// Get Cert in PEM format from pkcs12 file +int GetPKCS_Cert(const char* password, Source& source) +{ + PKCS12_Decoder pkcs12(source); + pkcs12.Decode(); + + return 0; +} +*/ + + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/coding.cpp b/mysql/extra/yassl/taocrypt/src/coding.cpp new file mode 100644 index 0000000..bc4727c --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/coding.cpp @@ -0,0 +1,266 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* coding.cpp implements hex and base64 encoding/decoing +*/ + +#include "runtime.hpp" +#include "coding.hpp" +#include "file.hpp" + + +namespace TaoCrypt { + + +namespace { // locals + +const byte bad = 0xFF; // invalid encoding + +const byte hexEncode[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F' + }; + +const byte hexDecode[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + bad, bad, bad, bad, bad, bad, bad, + 10, 11, 12, 13, 14, 15 + }; // A starts at 0x41 not 0x3A + + +const byte base64Encode[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '+', '/' + }; + +const byte base64Decode[] = { 62, bad, bad, bad, 63, // + starts at 0x2B + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + bad, bad, bad, bad, bad, bad, bad, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, + bad, bad, bad, bad, bad, bad, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51 + }; + +const byte pad = '='; +const int pemLineSz = 64; + +} // local namespace + + +// Hex Encode +void HexEncoder::Encode() +{ + word32 bytes = plain_.size(); + encoded_.New(bytes * 2); + + word32 i = 0; + + while (bytes--) { + byte p = plain_.next(); + + byte b = p >> 4; + byte b2 = p & 0xF; + + encoded_[i++] = hexEncode[b]; + encoded_[i++] = hexEncode[b2]; + } + + plain_.reset(encoded_); +} + + +// Hex Decode +void HexDecoder::Decode() +{ + word32 bytes = coded_.size(); + decoded_.New(bytes / 2); + + word32 i(0); + + while (bytes) { + byte b = coded_.next() - 0x30; // 0 starts at 0x30 + byte b2 = coded_.next() - 0x30; + + // sanity checks + if (b >= sizeof(hexDecode)/sizeof(hexDecode[0])) { + coded_.SetError(PEM_E); + return; + } + if (b2 >= sizeof(hexDecode)/sizeof(hexDecode[0])) { + coded_.SetError(PEM_E); + return; + } + + b = hexDecode[b]; + b2 = hexDecode[b2]; + + decoded_[i++] = (b << 4) | b2; + bytes -= 2; + } + + coded_.reset(decoded_); +} + + +// Base 64 Encode +void Base64Encoder::Encode() +{ + word32 bytes = plain_.size(); + word32 outSz = (bytes + 3 - 1) / 3 * 4; + + outSz += (outSz + pemLineSz - 1) / pemLineSz; // new lines + encoded_.New(outSz); + + word32 i = 0; + word32 j = 0; + + while (bytes > 2) { + byte b1 = plain_.next(); + byte b2 = plain_.next(); + byte b3 = plain_.next(); + + // encoded idx + byte e1 = b1 >> 2; + byte e2 = ((b1 & 0x3) << 4) | (b2 >> 4); + byte e3 = ((b2 & 0xF) << 2) | (b3 >> 6); + byte e4 = b3 & 0x3F; + + // store + encoded_[i++] = base64Encode[e1]; + encoded_[i++] = base64Encode[e2]; + encoded_[i++] = base64Encode[e3]; + encoded_[i++] = base64Encode[e4]; + + bytes -= 3; + + if ((++j % 16) == 0 && bytes) + encoded_[i++] = '\n'; + } + + // last integral + if (bytes) { + bool twoBytes = (bytes == 2); + + byte b1 = plain_.next(); + byte b2 = (twoBytes) ? plain_.next() : 0; + + byte e1 = b1 >> 2; + byte e2 = ((b1 & 0x3) << 4) | (b2 >> 4); + byte e3 = (b2 & 0xF) << 2; + + encoded_[i++] = base64Encode[e1]; + encoded_[i++] = base64Encode[e2]; + encoded_[i++] = (twoBytes) ? base64Encode[e3] : pad; + encoded_[i++] = pad; + } + + encoded_[i++] = '\n'; + + if (i == outSz) + plain_.reset(encoded_); +} + + +// Base 64 Decode +void Base64Decoder::Decode() +{ + word32 bytes = coded_.size(); + word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz); + const byte maxIdx = (byte)sizeof(base64Decode) + 0x2B - 1; + plainSz = ((plainSz * 3) / 4) + 3; + decoded_.New(plainSz); + + word32 i = 0; + word32 j = 0; + + while (bytes > 3) { + byte e1 = coded_.next(); + byte e2 = coded_.next(); + byte e3 = coded_.next(); + byte e4 = coded_.next(); + + if (e1 == 0) // end file 0's + break; + + bool pad3 = false; + bool pad4 = false; + if (e3 == pad) + pad3 = true; + if (e4 == pad) + pad4 = true; + + if (e1 < 0x2B || e2 < 0x2B || e3 < 0x2B || e4 < 0x2B) { + coded_.SetError(PEM_E); + return; + } + + if (e1 > maxIdx || e2 > maxIdx || e3 > maxIdx || e4 > maxIdx) { + coded_.SetError(PEM_E); + return; + } + + e1 = base64Decode[e1 - 0x2B]; + e2 = base64Decode[e2 - 0x2B]; + e3 = (e3 == pad) ? 0 : base64Decode[e3 - 0x2B]; + e4 = (e4 == pad) ? 0 : base64Decode[e4 - 0x2B]; + + byte b1 = (e1 << 2) | (e2 >> 4); + byte b2 = ((e2 & 0xF) << 4) | (e3 >> 2); + byte b3 = ((e3 & 0x3) << 6) | e4; + + decoded_[i++] = b1; + if (!pad3) + decoded_[i++] = b2; + if (!pad4) + decoded_[i++] = b3; + else + break; + + bytes -= 4; + if ((++j % 16) == 0) { + byte endLine = coded_.next(); + bytes--; + while (endLine == ' ') { // remove possible whitespace + endLine = coded_.next(); + bytes--; + } + if (endLine == '\r') { + endLine = coded_.next(); + bytes--; + } + if (endLine != '\n') { + coded_.SetError(PEM_E); + return; + } + } + } + + if (i != decoded_.size()) + decoded_.resize(i); + coded_.reset(decoded_); +} + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/des.cpp b/mysql/extra/yassl/taocrypt/src/des.cpp new file mode 100644 index 0000000..53777f0 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/des.cpp @@ -0,0 +1,778 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* C++ part based on Wei Dai's des.cpp from CryptoPP */ +/* x86 asm is original */ + + +#if defined(TAOCRYPT_KERNEL_MODE) + #define DO_TAOCRYPT_KERNEL_MODE +#endif // only some modules now support this + + +#include "runtime.hpp" +#include "des.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + + +namespace TaoCrypt { + + +/* permuted choice table (key) */ +static const byte pc1[] = { + 57, 49, 41, 33, 25, 17, 9, + 1, 58, 50, 42, 34, 26, 18, + 10, 2, 59, 51, 43, 35, 27, + 19, 11, 3, 60, 52, 44, 36, + + 63, 55, 47, 39, 31, 23, 15, + 7, 62, 54, 46, 38, 30, 22, + 14, 6, 61, 53, 45, 37, 29, + 21, 13, 5, 28, 20, 12, 4 +}; + +/* number left rotations of pc1 */ +static const byte totrot[] = { + 1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 +}; + +/* permuted choice key (table) */ +static const byte pc2[] = { + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 +}; + +/* End of DES-defined tables */ + +/* bit 0 is left-most in byte */ +static const int bytebit[] = { + 0200,0100,040,020,010,04,02,01 +}; + +const word32 Spbox[8][64] = { +{ +0x01010400,0x00000000,0x00010000,0x01010404, +0x01010004,0x00010404,0x00000004,0x00010000, +0x00000400,0x01010400,0x01010404,0x00000400, +0x01000404,0x01010004,0x01000000,0x00000004, +0x00000404,0x01000400,0x01000400,0x00010400, +0x00010400,0x01010000,0x01010000,0x01000404, +0x00010004,0x01000004,0x01000004,0x00010004, +0x00000000,0x00000404,0x00010404,0x01000000, +0x00010000,0x01010404,0x00000004,0x01010000, +0x01010400,0x01000000,0x01000000,0x00000400, +0x01010004,0x00010000,0x00010400,0x01000004, +0x00000400,0x00000004,0x01000404,0x00010404, +0x01010404,0x00010004,0x01010000,0x01000404, +0x01000004,0x00000404,0x00010404,0x01010400, +0x00000404,0x01000400,0x01000400,0x00000000, +0x00010004,0x00010400,0x00000000,0x01010004}, +{ +0x80108020,0x80008000,0x00008000,0x00108020, +0x00100000,0x00000020,0x80100020,0x80008020, +0x80000020,0x80108020,0x80108000,0x80000000, +0x80008000,0x00100000,0x00000020,0x80100020, +0x00108000,0x00100020,0x80008020,0x00000000, +0x80000000,0x00008000,0x00108020,0x80100000, +0x00100020,0x80000020,0x00000000,0x00108000, +0x00008020,0x80108000,0x80100000,0x00008020, +0x00000000,0x00108020,0x80100020,0x00100000, +0x80008020,0x80100000,0x80108000,0x00008000, +0x80100000,0x80008000,0x00000020,0x80108020, +0x00108020,0x00000020,0x00008000,0x80000000, +0x00008020,0x80108000,0x00100000,0x80000020, +0x00100020,0x80008020,0x80000020,0x00100020, +0x00108000,0x00000000,0x80008000,0x00008020, +0x80000000,0x80100020,0x80108020,0x00108000}, +{ +0x00000208,0x08020200,0x00000000,0x08020008, +0x08000200,0x00000000,0x00020208,0x08000200, +0x00020008,0x08000008,0x08000008,0x00020000, +0x08020208,0x00020008,0x08020000,0x00000208, +0x08000000,0x00000008,0x08020200,0x00000200, +0x00020200,0x08020000,0x08020008,0x00020208, +0x08000208,0x00020200,0x00020000,0x08000208, +0x00000008,0x08020208,0x00000200,0x08000000, +0x08020200,0x08000000,0x00020008,0x00000208, +0x00020000,0x08020200,0x08000200,0x00000000, +0x00000200,0x00020008,0x08020208,0x08000200, +0x08000008,0x00000200,0x00000000,0x08020008, +0x08000208,0x00020000,0x08000000,0x08020208, +0x00000008,0x00020208,0x00020200,0x08000008, +0x08020000,0x08000208,0x00000208,0x08020000, +0x00020208,0x00000008,0x08020008,0x00020200}, +{ +0x00802001,0x00002081,0x00002081,0x00000080, +0x00802080,0x00800081,0x00800001,0x00002001, +0x00000000,0x00802000,0x00802000,0x00802081, +0x00000081,0x00000000,0x00800080,0x00800001, +0x00000001,0x00002000,0x00800000,0x00802001, +0x00000080,0x00800000,0x00002001,0x00002080, +0x00800081,0x00000001,0x00002080,0x00800080, +0x00002000,0x00802080,0x00802081,0x00000081, +0x00800080,0x00800001,0x00802000,0x00802081, +0x00000081,0x00000000,0x00000000,0x00802000, +0x00002080,0x00800080,0x00800081,0x00000001, +0x00802001,0x00002081,0x00002081,0x00000080, +0x00802081,0x00000081,0x00000001,0x00002000, +0x00800001,0x00002001,0x00802080,0x00800081, +0x00002001,0x00002080,0x00800000,0x00802001, +0x00000080,0x00800000,0x00002000,0x00802080}, +{ +0x00000100,0x02080100,0x02080000,0x42000100, +0x00080000,0x00000100,0x40000000,0x02080000, +0x40080100,0x00080000,0x02000100,0x40080100, +0x42000100,0x42080000,0x00080100,0x40000000, +0x02000000,0x40080000,0x40080000,0x00000000, +0x40000100,0x42080100,0x42080100,0x02000100, +0x42080000,0x40000100,0x00000000,0x42000000, +0x02080100,0x02000000,0x42000000,0x00080100, +0x00080000,0x42000100,0x00000100,0x02000000, +0x40000000,0x02080000,0x42000100,0x40080100, +0x02000100,0x40000000,0x42080000,0x02080100, +0x40080100,0x00000100,0x02000000,0x42080000, +0x42080100,0x00080100,0x42000000,0x42080100, +0x02080000,0x00000000,0x40080000,0x42000000, +0x00080100,0x02000100,0x40000100,0x00080000, +0x00000000,0x40080000,0x02080100,0x40000100}, +{ +0x20000010,0x20400000,0x00004000,0x20404010, +0x20400000,0x00000010,0x20404010,0x00400000, +0x20004000,0x00404010,0x00400000,0x20000010, +0x00400010,0x20004000,0x20000000,0x00004010, +0x00000000,0x00400010,0x20004010,0x00004000, +0x00404000,0x20004010,0x00000010,0x20400010, +0x20400010,0x00000000,0x00404010,0x20404000, +0x00004010,0x00404000,0x20404000,0x20000000, +0x20004000,0x00000010,0x20400010,0x00404000, +0x20404010,0x00400000,0x00004010,0x20000010, +0x00400000,0x20004000,0x20000000,0x00004010, +0x20000010,0x20404010,0x00404000,0x20400000, +0x00404010,0x20404000,0x00000000,0x20400010, +0x00000010,0x00004000,0x20400000,0x00404010, +0x00004000,0x00400010,0x20004010,0x00000000, +0x20404000,0x20000000,0x00400010,0x20004010}, +{ +0x00200000,0x04200002,0x04000802,0x00000000, +0x00000800,0x04000802,0x00200802,0x04200800, +0x04200802,0x00200000,0x00000000,0x04000002, +0x00000002,0x04000000,0x04200002,0x00000802, +0x04000800,0x00200802,0x00200002,0x04000800, +0x04000002,0x04200000,0x04200800,0x00200002, +0x04200000,0x00000800,0x00000802,0x04200802, +0x00200800,0x00000002,0x04000000,0x00200800, +0x04000000,0x00200800,0x00200000,0x04000802, +0x04000802,0x04200002,0x04200002,0x00000002, +0x00200002,0x04000000,0x04000800,0x00200000, +0x04200800,0x00000802,0x00200802,0x04200800, +0x00000802,0x04000002,0x04200802,0x04200000, +0x00200800,0x00000000,0x00000002,0x04200802, +0x00000000,0x00200802,0x04200000,0x00000800, +0x04000002,0x04000800,0x00000800,0x00200002}, +{ +0x10001040,0x00001000,0x00040000,0x10041040, +0x10000000,0x10001040,0x00000040,0x10000000, +0x00040040,0x10040000,0x10041040,0x00041000, +0x10041000,0x00041040,0x00001000,0x00000040, +0x10040000,0x10000040,0x10001000,0x00001040, +0x00041000,0x00040040,0x10040040,0x10041000, +0x00001040,0x00000000,0x00000000,0x10040040, +0x10000040,0x10001000,0x00041040,0x00040000, +0x00041040,0x00040000,0x10041000,0x00001000, +0x00000040,0x10040040,0x00001000,0x00041040, +0x10001000,0x00000040,0x10000040,0x10040000, +0x10040040,0x10000000,0x00040000,0x10001040, +0x00000000,0x10041040,0x00040040,0x10000040, +0x10040000,0x10001000,0x10001040,0x00000000, +0x10041040,0x00041000,0x00041000,0x00001040, +0x00001040,0x00040040,0x10000000,0x10041000} +}; + + +void BasicDES::SetKey(const byte* key, word32 /*length*/, CipherDir dir) +{ + byte buffer[56+56+8]; + byte *const pc1m = buffer; /* place to modify pc1 into */ + byte *const pcr = pc1m + 56; /* place to rotate pc1 into */ + byte *const ks = pcr + 56; + int i,j,l; + int m; + + for (j = 0; j < 56; j++) { /* convert pc1 to bits of key */ + l = pc1[j] - 1; /* integer bit location */ + m = l & 07; /* find bit */ + pc1m[j] = (key[l >> 3] & /* find which key byte l is in */ + bytebit[m]) /* and which bit of that byte */ + ? 1 : 0; /* and store 1-bit result */ + } + for (i = 0; i < 16; i++) { /* key chunk for each iteration */ + memset(ks, 0, 8); /* Clear key schedule */ + for (j = 0; j < 56; j++) /* rotate pc1 the right amount */ + pcr[j] = pc1m[(l = j + totrot[i]) < (j < 28 ? 28 : 56) ? l: l-28]; + /* rotate left and right halves independently */ + for (j = 0; j < 48; j++){ /* select bits individually */ + /* check bit that goes to ks[j] */ + if (pcr[pc2[j] - 1]){ + /* mask it in if it's there */ + l= j % 6; + ks[j/6] |= bytebit[l] >> 2; + } + } + /* Now convert to odd/even interleaved form for use in F */ + k_[2*i] = ((word32)ks[0] << 24) + | ((word32)ks[2] << 16) + | ((word32)ks[4] << 8) + | ((word32)ks[6]); + k_[2*i + 1] = ((word32)ks[1] << 24) + | ((word32)ks[3] << 16) + | ((word32)ks[5] << 8) + | ((word32)ks[7]); + } + + // reverse key schedule order + if (dir == DECRYPTION) + for (i = 0; i < 16; i += 2) { + STL::swap(k_[i], k_[32 - 2 - i]); + STL::swap(k_[i+1], k_[32 - 1 - i]); + } + +} + +static inline void IPERM(word32& left, word32& right) +{ + word32 work; + + right = rotlFixed(right, 4U); + work = (left ^ right) & 0xf0f0f0f0; + left ^= work; + + right = rotrFixed(right^work, 20U); + work = (left ^ right) & 0xffff0000; + left ^= work; + + right = rotrFixed(right^work, 18U); + work = (left ^ right) & 0x33333333; + left ^= work; + + right = rotrFixed(right^work, 6U); + work = (left ^ right) & 0x00ff00ff; + left ^= work; + + right = rotlFixed(right^work, 9U); + work = (left ^ right) & 0xaaaaaaaa; + left = rotlFixed(left^work, 1U); + right ^= work; +} + +static inline void FPERM(word32& left, word32& right) +{ + word32 work; + + right = rotrFixed(right, 1U); + work = (left ^ right) & 0xaaaaaaaa; + right ^= work; + left = rotrFixed(left^work, 9U); + work = (left ^ right) & 0x00ff00ff; + right ^= work; + left = rotlFixed(left^work, 6U); + work = (left ^ right) & 0x33333333; + right ^= work; + left = rotlFixed(left^work, 18U); + work = (left ^ right) & 0xffff0000; + right ^= work; + left = rotlFixed(left^work, 20U); + work = (left ^ right) & 0xf0f0f0f0; + right ^= work; + left = rotrFixed(left^work, 4U); +} + + +void BasicDES::RawProcessBlock(word32& lIn, word32& rIn) const +{ + word32 l = lIn, r = rIn; + const word32* kptr = k_; + + for (unsigned i=0; i<8; i++) + { + word32 work = rotrFixed(r, 4U) ^ kptr[4*i+0]; + l ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = r ^ kptr[4*i+1]; + l ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + + work = rotrFixed(l, 4U) ^ kptr[4*i+2]; + r ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = l ^ kptr[4*i+3]; + r ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + } + + lIn = l; rIn = r; +} + + + +typedef BlockGetAndPut Block; + + +void DES::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out) const +{ + word32 l,r; + Block::Get(in)(l)(r); + IPERM(l,r); + + RawProcessBlock(l, r); + + FPERM(l,r); + Block::Put(xOr, out)(r)(l); +} + + +void DES_EDE2::SetKey(const byte* key, word32 sz, CipherDir dir) +{ + des1_.SetKey(key, sz, dir); + des2_.SetKey(key + 8, sz, ReverseDir(dir)); +} + + +void DES_EDE2::ProcessAndXorBlock(const byte* in, const byte* xOr, + byte* out) const +{ + word32 l,r; + Block::Get(in)(l)(r); + IPERM(l,r); + + des1_.RawProcessBlock(l, r); + des2_.RawProcessBlock(r, l); + des1_.RawProcessBlock(l, r); + + FPERM(l,r); + Block::Put(xOr, out)(r)(l); +} + + +void DES_EDE3::SetKey(const byte* key, word32 sz, CipherDir dir) +{ + des1_.SetKey(key+(dir==ENCRYPTION?0:2*8), sz, dir); + des2_.SetKey(key+8, sz, ReverseDir(dir)); + des3_.SetKey(key+(dir==DECRYPTION?0:2*8), sz, dir); +} + + + +#if defined(DO_DES_ASM) + +// ia32 optimized version +void DES_EDE3::Process(byte* out, const byte* in, word32 sz) +{ + if (!isMMX) { + Mode_BASE::Process(out, in, sz); + return; + } + + word32 blocks = sz / DES_BLOCK_SIZE; + + if (mode_ == CBC) + if (dir_ == ENCRYPTION) + while (blocks--) { + r_[0] ^= *(word32*)in; + r_[1] ^= *(word32*)(in + 4); + + AsmProcess((byte*)r_, (byte*)r_, (void*)Spbox); + + memcpy(out, r_, DES_BLOCK_SIZE); + + in += DES_BLOCK_SIZE; + out += DES_BLOCK_SIZE; + } + else + while (blocks--) { + AsmProcess(in, out, (void*)Spbox); + + *(word32*)out ^= r_[0]; + *(word32*)(out + 4) ^= r_[1]; + + memcpy(r_, in, DES_BLOCK_SIZE); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } + else + while (blocks--) { + AsmProcess(in, out, (void*)Spbox); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } +} + +#endif // DO_DES_ASM + + +void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr, + byte* out) const +{ + word32 l,r; + Block::Get(in)(l)(r); + IPERM(l,r); + + des1_.RawProcessBlock(l, r); + des2_.RawProcessBlock(r, l); + des3_.RawProcessBlock(l, r); + + FPERM(l,r); + Block::Put(xOr, out)(r)(l); +} + + +#if defined(DO_DES_ASM) + +/* Uses IPERM algorithm from above + + left is in eax + right is in ebx + + uses ecx +*/ +#define AsmIPERM() \ + AS2( rol ebx, 4 ) \ + AS2( mov ecx, eax ) \ + AS2( xor ecx, ebx ) \ + AS2( and ecx, 0xf0f0f0f0 ) \ + AS2( xor ebx, ecx ) \ + AS2( xor eax, ecx ) \ + AS2( ror ebx, 20 ) \ + AS2( mov ecx, eax ) \ + AS2( xor ecx, ebx ) \ + AS2( and ecx, 0xffff0000 ) \ + AS2( xor ebx, ecx ) \ + AS2( xor eax, ecx ) \ + AS2( ror ebx, 18 ) \ + AS2( mov ecx, eax ) \ + AS2( xor ecx, ebx ) \ + AS2( and ecx, 0x33333333 ) \ + AS2( xor ebx, ecx ) \ + AS2( xor eax, ecx ) \ + AS2( ror ebx, 6 ) \ + AS2( mov ecx, eax ) \ + AS2( xor ecx, ebx ) \ + AS2( and ecx, 0x00ff00ff ) \ + AS2( xor ebx, ecx ) \ + AS2( xor eax, ecx ) \ + AS2( rol ebx, 9 ) \ + AS2( mov ecx, eax ) \ + AS2( xor ecx, ebx ) \ + AS2( and ecx, 0xaaaaaaaa ) \ + AS2( xor eax, ecx ) \ + AS2( rol eax, 1 ) \ + AS2( xor ebx, ecx ) + + +/* Uses FPERM algorithm from above + + left is in eax + right is in ebx + + uses ecx +*/ +#define AsmFPERM() \ + AS2( ror ebx, 1 ) \ + AS2( mov ecx, eax ) \ + AS2( xor ecx, ebx ) \ + AS2( and ecx, 0xaaaaaaaa ) \ + AS2( xor eax, ecx ) \ + AS2( xor ebx, ecx ) \ + AS2( ror eax, 9 ) \ + AS2( mov ecx, ebx ) \ + AS2( xor ecx, eax ) \ + AS2( and ecx, 0x00ff00ff ) \ + AS2( xor eax, ecx ) \ + AS2( xor ebx, ecx ) \ + AS2( rol eax, 6 ) \ + AS2( mov ecx, ebx ) \ + AS2( xor ecx, eax ) \ + AS2( and ecx, 0x33333333 ) \ + AS2( xor eax, ecx ) \ + AS2( xor ebx, ecx ) \ + AS2( rol eax, 18 ) \ + AS2( mov ecx, ebx ) \ + AS2( xor ecx, eax ) \ + AS2( and ecx, 0xffff0000 ) \ + AS2( xor eax, ecx ) \ + AS2( xor ebx, ecx ) \ + AS2( rol eax, 20 ) \ + AS2( mov ecx, ebx ) \ + AS2( xor ecx, eax ) \ + AS2( and ecx, 0xf0f0f0f0 ) \ + AS2( xor eax, ecx ) \ + AS2( xor ebx, ecx ) \ + AS2( ror eax, 4 ) + + + + +/* DesRound implements this algorithm: + + word32 work = rotrFixed(r, 4U) ^ key[0]; + l ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = r ^ key[1]; + l ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + + work = rotrFixed(l, 4U) ^ key[2]; + r ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = l ^ key[3]; + r ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + + left is in aex + right is in ebx + key is in edx + + edvances key for next round + + uses ecx, esi, and edi +*/ +#define DesRound() \ + AS2( mov ecx, ebx )\ + AS2( mov esi, DWORD PTR [edx] )\ + AS2( ror ecx, 4 )\ + AS2( xor ecx, esi )\ + AS2( and ecx, 0x3f3f3f3f )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor eax, [ebp + esi*4 + 6*256] )\ + AS2( shr ecx, 16 )\ + AS2( xor eax, [ebp + edi*4 + 4*256] )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor eax, [ebp + esi*4 + 2*256] )\ + AS2( mov esi, DWORD PTR [edx + 4] )\ + AS2( xor eax, [ebp + edi*4] )\ + AS2( mov ecx, ebx )\ + AS2( xor ecx, esi )\ + AS2( and ecx, 0x3f3f3f3f )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor eax, [ebp + esi*4 + 7*256] )\ + AS2( shr ecx, 16 )\ + AS2( xor eax, [ebp + edi*4 + 5*256] )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor eax, [ebp + esi*4 + 3*256] )\ + AS2( mov esi, DWORD PTR [edx + 8] )\ + AS2( xor eax, [ebp + edi*4 + 1*256] )\ + AS2( mov ecx, eax )\ + AS2( ror ecx, 4 )\ + AS2( xor ecx, esi )\ + AS2( and ecx, 0x3f3f3f3f )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor ebx, [ebp + esi*4 + 6*256] )\ + AS2( shr ecx, 16 )\ + AS2( xor ebx, [ebp + edi*4 + 4*256] )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor ebx, [ebp + esi*4 + 2*256] )\ + AS2( mov esi, DWORD PTR [edx + 12] )\ + AS2( xor ebx, [ebp + edi*4] )\ + AS2( mov ecx, eax )\ + AS2( xor ecx, esi )\ + AS2( and ecx, 0x3f3f3f3f )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor ebx, [ebp + esi*4 + 7*256] )\ + AS2( shr ecx, 16 )\ + AS2( xor ebx, [ebp + edi*4 + 5*256] )\ + AS2( movzx esi, cl )\ + AS2( movzx edi, ch )\ + AS2( xor ebx, [ebp + esi*4 + 3*256] )\ + AS2( add edx, 16 )\ + AS2( xor ebx, [ebp + edi*4 + 1*256] ) + + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void DES_EDE3::AsmProcess(const byte* in, byte* out, void* box) const +{ +#ifdef __GNUC__ + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + + #define PROLOG() \ + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "movd mm6, ebp;" \ + "movd mm7, ecx;" \ + "mov ebp, eax;" + #define EPILOG() \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "d" (this), "S" (in), "a" (box), "c" (out) \ + : "%edi", "memory", "cc" \ + ); + +#else + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + + #define PROLOG() \ + AS1( push ebp ) \ + AS2( mov ebp, esp ) \ + AS2( movd mm3, edi ) \ + AS2( movd mm4, ebx ) \ + AS2( movd mm5, esi ) \ + AS2( movd mm6, ebp ) \ + AS2( mov esi, DWORD PTR [ebp + 8] ) \ + AS2( mov edx, ecx ) \ + AS2( mov ebp, DWORD PTR [ebp + 16] ) + + // ebp restored at end + #define EPILOG() \ + AS2( movd edi, mm3 ) \ + AS2( movd ebx, mm4 ) \ + AS2( movd esi, mm5 ) \ + AS2( mov esp, ebp ) \ + AS1( pop ebp ) \ + AS1( emms ) \ + AS1( ret 12 ) + +#endif + + + PROLOG() + + AS2( movd mm2, edx ) + + #ifdef OLD_GCC_OFFSET + AS2( add edx, 60 ) // des1 = des1 key + #else + AS2( add edx, 56 ) // des1 = des1 key + #endif + + AS2( mov eax, DWORD PTR [esi] ) + AS2( mov ebx, DWORD PTR [esi + 4] ) + AS1( bswap eax ) // left + AS1( bswap ebx ) // right + + AsmIPERM() + + DesRound() // 1 + DesRound() // 2 + DesRound() // 3 + DesRound() // 4 + DesRound() // 5 + DesRound() // 6 + DesRound() // 7 + DesRound() // 8 + + // swap left and right + AS2( xchg eax, ebx ) + + DesRound() // 1 + DesRound() // 2 + DesRound() // 3 + DesRound() // 4 + DesRound() // 5 + DesRound() // 6 + DesRound() // 7 + DesRound() // 8 + + // swap left and right + AS2( xchg eax, ebx ) + + DesRound() // 1 + DesRound() // 2 + DesRound() // 3 + DesRound() // 4 + DesRound() // 5 + DesRound() // 6 + DesRound() // 7 + DesRound() // 8 + + AsmFPERM() + + //end + AS2( movd ebp, mm6 ) + + // swap and write out + AS1( bswap ebx ) + AS1( bswap eax ) + +#ifdef __GNUC__ + AS2( movd esi, mm7 ) // outBlock +#else + AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock +#endif + + AS2( mov DWORD PTR [esi], ebx ) // right first + AS2( mov DWORD PTR [esi + 4], eax ) + + + EPILOG() +} + + + +#endif // defined(DO_DES_ASM) + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/dh.cpp b/mysql/extra/yassl/taocrypt/src/dh.cpp new file mode 100644 index 0000000..615a8c6 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/dh.cpp @@ -0,0 +1,103 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* dh.cpp implements Diffie-Hellman support +*/ + +#include "runtime.hpp" +#include "dh.hpp" +#include "asn.hpp" +#include + +namespace TaoCrypt { + + +namespace { // locals + +unsigned int DiscreteLogWorkFactor(unsigned int n) +{ + // assuming discrete log takes about the same time as factoring + if (n<5) + return 0; + else + return (unsigned int)(2.4 * pow((double)n, 1.0/3.0) * + pow(log(double(n)), 2.0/3.0) - 5); +} + +} // namespace locals + + +// Generate a DH Key Pair +void DH::GenerateKeyPair(RandomNumberGenerator& rng, byte* priv, byte* pub) +{ + GeneratePrivate(rng, priv); + GeneratePublic(priv, pub); +} + + +// Generate private value +void DH::GeneratePrivate(RandomNumberGenerator& rng, byte* priv) +{ + Integer x(rng, Integer::One(), min(p_ - 1, + Integer::Power2(2*DiscreteLogWorkFactor(p_.BitCount())) ) ); + x.Encode(priv, p_.ByteCount()); +} + + +// Generate public value +void DH::GeneratePublic(const byte* priv, byte* pub) +{ + const word32 bc(p_.ByteCount()); + Integer x(priv, bc); + Integer y(a_exp_b_mod_c(g_, x, p_)); + y.Encode(pub, bc); +} + + +// Generate Agreement +void DH::Agree(byte* agree, const byte* priv, const byte* otherPub, word32 + otherSz) +{ + const word32 bc(p_.ByteCount()); + Integer x(priv, bc); + Integer y; + if (otherSz) + y.Decode(otherPub, otherSz); + else + y.Decode(otherPub, bc); + + Integer z(a_exp_b_mod_c(y, x, p_)); + z.Encode(agree, bc); +} + + +DH::DH(Source& source) +{ + Initialize(source); +} + + +void DH::Initialize(Source& source) +{ + DH_Decoder decoder(source); + decoder.Decode(*this); +} + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/dsa.cpp b/mysql/extra/yassl/taocrypt/src/dsa.cpp new file mode 100644 index 0000000..b19fed9 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/dsa.cpp @@ -0,0 +1,274 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +#include "runtime.hpp" +#include "dsa.hpp" +#include "sha.hpp" +#include "asn.hpp" +#include "modarith.hpp" + + +namespace TaoCrypt { + + +void DSA_PublicKey::Swap(DSA_PublicKey& other) +{ + p_.Swap(other.p_); + q_.Swap(other.q_); + g_.Swap(other.g_); + y_.Swap(other.y_); +} + + +DSA_PublicKey::DSA_PublicKey(const DSA_PublicKey& other) + : p_(other.p_), q_(other.q_), g_(other.g_), y_(other.y_) +{} + + +DSA_PublicKey& DSA_PublicKey::operator=(const DSA_PublicKey& that) +{ + DSA_PublicKey tmp(that); + Swap(tmp); + return *this; +} + + +DSA_PublicKey::DSA_PublicKey(Source& source) +{ + Initialize(source); +} + + +void DSA_PublicKey::Initialize(Source& source) +{ + DSA_Public_Decoder decoder(source); + decoder.Decode(*this); +} + + +void DSA_PublicKey::Initialize(const Integer& p, const Integer& q, + const Integer& g, const Integer& y) +{ + p_ = p; + q_ = q; + g_ = g; + y_ = y; +} + + +const Integer& DSA_PublicKey::GetModulus() const +{ + return p_; +} + +const Integer& DSA_PublicKey::GetSubGroupOrder() const +{ + return q_; +} + + +const Integer& DSA_PublicKey::GetSubGroupGenerator() const +{ + return g_; +} + + +const Integer& DSA_PublicKey::GetPublicPart() const +{ + return y_; +} + + +void DSA_PublicKey::SetModulus(const Integer& p) +{ + p_ = p; +} + + +void DSA_PublicKey::SetSubGroupOrder(const Integer& q) +{ + q_ = q; +} + + +void DSA_PublicKey::SetSubGroupGenerator(const Integer& g) +{ + g_ = g; +} + + +void DSA_PublicKey::SetPublicPart(const Integer& y) +{ + y_ = y; +} + + +word32 DSA_PublicKey::SignatureLength() const +{ + return GetSubGroupOrder().ByteCount() * 2; // r and s +} + + + +DSA_PrivateKey::DSA_PrivateKey(Source& source) +{ + Initialize(source); +} + + +void DSA_PrivateKey::Initialize(Source& source) +{ + DSA_Private_Decoder decoder(source); + decoder.Decode(*this); +} + + +void DSA_PrivateKey::Initialize(const Integer& p, const Integer& q, + const Integer& g, const Integer& y, + const Integer& x) +{ + DSA_PublicKey::Initialize(p, q, g, y); + x_ = x; +} + + +const Integer& DSA_PrivateKey::GetPrivatePart() const +{ + return x_; +} + + +void DSA_PrivateKey::SetPrivatePart(const Integer& x) +{ + x_ = x; +} + + +DSA_Signer::DSA_Signer(const DSA_PrivateKey& key) + : key_(key) +{} + + +word32 DSA_Signer::Sign(const byte* sha_digest, byte* sig, + RandomNumberGenerator& rng) +{ + const Integer& p = key_.GetModulus(); + const Integer& q = key_.GetSubGroupOrder(); + const Integer& g = key_.GetSubGroupGenerator(); + const Integer& x = key_.GetPrivatePart(); + byte* tmpPtr = sig; // initial signature output + + Integer k(rng, 1, q - 1); + + r_ = a_exp_b_mod_c(g, k, p); + r_ %= q; + + Integer H(sha_digest, SHA::DIGEST_SIZE); // sha Hash(m) + + Integer kInv = k.InverseMod(q); + s_ = (kInv * (H + x*r_)) % q; + + if (!(!!r_ && !!s_)) + return -1; + + int rSz = r_.ByteCount(); + int tmpSz = rSz; + + while (tmpSz++ < SHA::DIGEST_SIZE) { + *sig++ = 0; + } + + r_.Encode(sig, rSz); + + sig = tmpPtr + SHA::DIGEST_SIZE; // advance sig output to s + int sSz = s_.ByteCount(); + tmpSz = sSz; + + while (tmpSz++ < SHA::DIGEST_SIZE) { + *sig++ = 0; + } + + s_.Encode(sig, sSz); + + return 40; +} + + +DSA_Verifier::DSA_Verifier(const DSA_PublicKey& key) + : key_(key) +{} + + +bool DSA_Verifier::Verify(const byte* sha_digest, const byte* sig) +{ + const Integer& p = key_.GetModulus(); + const Integer& q = key_.GetSubGroupOrder(); + const Integer& g = key_.GetSubGroupGenerator(); + const Integer& y = key_.GetPublicPart(); + + int sz = q.ByteCount(); + + r_.Decode(sig, sz); + s_.Decode(sig + sz, sz); + + if (r_ >= q || r_ < 1 || s_ >= q || s_ < 1) + return false; + + Integer H(sha_digest, SHA::DIGEST_SIZE); // sha Hash(m) + + Integer w = s_.InverseMod(q); + Integer u1 = (H * w) % q; + Integer u2 = (r_ * w) % q; + + // verify r == ((g^u1 * y^u2) mod p) mod q + ModularArithmetic ma(p); + Integer v = ma.CascadeExponentiate(g, u1, y, u2); + v %= q; + + return r_ == v; +} + + + + +const Integer& DSA_Signer::GetR() const +{ + return r_; +} + + +const Integer& DSA_Signer::GetS() const +{ + return s_; +} + + +const Integer& DSA_Verifier::GetR() const +{ + return r_; +} + + +const Integer& DSA_Verifier::GetS() const +{ + return s_; +} + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/file.cpp b/mysql/extra/yassl/taocrypt/src/file.cpp new file mode 100644 index 0000000..7c2044b --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/file.cpp @@ -0,0 +1,115 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* file.cpp implements File Sources and Sinks +*/ + +#include "runtime.hpp" +#include "file.hpp" + + +namespace TaoCrypt { + + +FileSource::FileSource(const char* fname, Source& source) +{ + file_ = fopen(fname, "rb"); + if (file_) get(source); +} + + +FileSource::~FileSource() +{ + if (file_) + fclose(file_); +} + + + +// return size of source from beginning or current position +word32 FileSource::size(bool use_current) +{ + long current = ftell(file_); + long begin = current; + + if (!use_current) { + fseek(file_, 0, SEEK_SET); + begin = ftell(file_); + } + + fseek(file_, 0, SEEK_END); + long end = ftell(file_); + + fseek(file_, current, SEEK_SET); + + return end - begin; +} + + +word32 FileSource::size_left() +{ + return size(true); +} + + +// fill file source from source +word32 FileSource::get(Source& source) +{ + word32 sz(size()); + if (source.size() < sz) + source.grow(sz); + + size_t bytes = fread(source.buffer_.get_buffer(), 1, sz, file_); + + if (bytes == 1) + return sz; + else + return 0; +} + + +FileSink::FileSink(const char* fname, Source& source) +{ + file_ = fopen(fname, "wb"); + if (file_) put(source); +} + + +FileSink::~FileSink() +{ + if (file_) + fclose(file_); +} + + +// fill source from file sink +void FileSink::put(Source& source) +{ + fwrite(source.get_buffer(), 1, source.size(), file_); +} + + +// swap with other and reset to beginning +void Source::reset(ByteBlock& otherBlock) +{ + buffer_.Swap(otherBlock); + current_ = 0; +} + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/hash.cpp b/mysql/extra/yassl/taocrypt/src/hash.cpp new file mode 100644 index 0000000..c176e6a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/hash.cpp @@ -0,0 +1,191 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* hash.cpp implements a base for digest types +*/ + +#include "runtime.hpp" +#include + +#include "hash.hpp" + + +namespace TaoCrypt { + + +HASHwithTransform::HASHwithTransform(word32 digSz, word32 buffSz) +{ +} + + +void HASHwithTransform::AddLength(word32 len) +{ + HashLengthType tmp = loLen_; + if ( (loLen_ += len) < tmp) + hiLen_++; // carry low to high + hiLen_ += SafeRightShift<8*sizeof(HashLengthType)>(len); +} + + +// Update digest with data of size len, do in blocks +void HASHwithTransform::Update(const byte* data, word32 len) +{ + // do block size increments + word32 blockSz = getBlockSize(); + byte* local = reinterpret_cast(buffer_); + + while (len) { + word32 add = min(len, blockSz - buffLen_); + memcpy(&local[buffLen_], data, add); + + buffLen_ += add; + data += add; + len -= add; + + if (buffLen_ == blockSz) { + ByteReverseIf(local, local, blockSz, getByteOrder()); + Transform(); + AddLength(blockSz); + buffLen_ = 0; + } + } +} + + +// Final process, place digest in hash +void HASHwithTransform::Final(byte* hash) +{ + word32 blockSz = getBlockSize(); + word32 digestSz = getDigestSize(); + word32 padSz = getPadSize(); + ByteOrder order = getByteOrder(); + + AddLength(buffLen_); // before adding pads + HashLengthType preLoLen = GetBitCountLo(); + HashLengthType preHiLen = GetBitCountHi(); + byte* local = reinterpret_cast(buffer_); + + local[buffLen_++] = 0x80; // add 1 + + // pad with zeros + if (buffLen_ > padSz) { + memset(&local[buffLen_], 0, blockSz - buffLen_); + buffLen_ += blockSz - buffLen_; + + ByteReverseIf(local, local, blockSz, order); + Transform(); + buffLen_ = 0; + } + memset(&local[buffLen_], 0, padSz - buffLen_); + + ByteReverseIf(local, local, blockSz, order); + + memcpy(&local[padSz], order ? &preHiLen : &preLoLen, sizeof(preLoLen)); + memcpy(&local[padSz+4], order ? &preLoLen : &preHiLen, sizeof(preLoLen)); + + Transform(); + ByteReverseIf(digest_, digest_, digestSz, order); + memcpy(hash, digest_, digestSz); + + Init(); // reset state +} + + +#ifdef WORD64_AVAILABLE + +HASH64withTransform::HASH64withTransform(word32 digSz, word32 buffSz) +{ +} + + +void HASH64withTransform::AddLength(word32 len) +{ + HashLengthType tmp = loLen_; + if ( (loLen_ += len) < tmp) + hiLen_++; // carry low to high + hiLen_ += SafeRightShift<8*sizeof(HashLengthType)>(len); +} + + +// Update digest with data of size len, do in blocks +void HASH64withTransform::Update(const byte* data, word32 len) +{ + // do block size increments + word32 blockSz = getBlockSize(); + byte* local = reinterpret_cast(buffer_); + + while (len) { + word32 add = min(len, blockSz - buffLen_); + memcpy(&local[buffLen_], data, add); + + buffLen_ += add; + data += add; + len -= add; + + if (buffLen_ == blockSz) { + ByteReverseIf(buffer_, buffer_, blockSz, getByteOrder()); + Transform(); + AddLength(blockSz); + buffLen_ = 0; + } + } +} + + +// Final process, place digest in hash +void HASH64withTransform::Final(byte* hash) +{ + word32 blockSz = getBlockSize(); + word32 digestSz = getDigestSize(); + word32 padSz = getPadSize(); + ByteOrder order = getByteOrder(); + + AddLength(buffLen_); // before adding pads + HashLengthType preLoLen = GetBitCountLo(); + HashLengthType preHiLen = GetBitCountHi(); + byte* local = reinterpret_cast(buffer_); + + local[buffLen_++] = 0x80; // add 1 + + // pad with zeros + if (buffLen_ > padSz) { + memset(&local[buffLen_], 0, blockSz - buffLen_); + buffLen_ += blockSz - buffLen_; + + ByteReverseIf(buffer_, buffer_, blockSz, order); + Transform(); + buffLen_ = 0; + } + memset(&local[buffLen_], 0, padSz - buffLen_); + + ByteReverseIf(buffer_, buffer_, padSz, order); + + buffer_[blockSz / sizeof(word64) - 2] = order ? preHiLen : preLoLen; + buffer_[blockSz / sizeof(word64) - 1] = order ? preLoLen : preHiLen; + + Transform(); + ByteReverseIf(digest_, digest_, digestSz, order); + memcpy(hash, digest_, digestSz); + + Init(); // reset state +} + +#endif // WORD64_AVAILABLE + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/hc128.cpp b/mysql/extra/yassl/taocrypt/src/hc128.cpp new file mode 100644 index 0000000..1d329c8 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/hc128.cpp @@ -0,0 +1,317 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +#include "runtime.hpp" +#include "hc128.hpp" + + + +namespace TaoCrypt { + + + + +#ifdef BIG_ENDIAN_ORDER + #define LITTLE32(x) ByteReverse((word32)x) +#else + #define LITTLE32(x) (x) +#endif + + +/*h1 function*/ +#define h1(x, y) { \ + byte a,c; \ + a = (byte) (x); \ + c = (byte) ((x) >> 16); \ + y = (T_[512+a])+(T_[512+256+c]); \ +} + +/*h2 function*/ +#define h2(x, y) { \ + byte a,c; \ + a = (byte) (x); \ + c = (byte) ((x) >> 16); \ + y = (T_[a])+(T_[256+c]); \ +} + +/*one step of HC-128, update P and generate 32 bits keystream*/ +#define step_P(u,v,a,b,c,d,n){ \ + word32 tem0,tem1,tem2,tem3; \ + h1((X_[(d)]),tem3); \ + tem0 = rotrFixed((T_[(v)]),23); \ + tem1 = rotrFixed((X_[(c)]),10); \ + tem2 = rotrFixed((X_[(b)]),8); \ + (T_[(u)]) += tem2+(tem0 ^ tem1); \ + (X_[(a)]) = (T_[(u)]); \ + (n) = tem3 ^ (T_[(u)]) ; \ +} + +/*one step of HC-128, update Q and generate 32 bits keystream*/ +#define step_Q(u,v,a,b,c,d,n){ \ + word32 tem0,tem1,tem2,tem3; \ + h2((Y_[(d)]),tem3); \ + tem0 = rotrFixed((T_[(v)]),(32-23)); \ + tem1 = rotrFixed((Y_[(c)]),(32-10)); \ + tem2 = rotrFixed((Y_[(b)]),(32-8)); \ + (T_[(u)]) += tem2 + (tem0 ^ tem1); \ + (Y_[(a)]) = (T_[(u)]); \ + (n) = tem3 ^ (T_[(u)]) ; \ +} + + +/*16 steps of HC-128, generate 512 bits keystream*/ +void HC128::GenerateKeystream(word32* keystream) +{ + word32 cc,dd; + cc = counter1024_ & 0x1ff; + dd = (cc+16)&0x1ff; + + if (counter1024_ < 512) + { + counter1024_ = (counter1024_ + 16) & 0x3ff; + step_P(cc+0, cc+1, 0, 6, 13,4, keystream[0]); + step_P(cc+1, cc+2, 1, 7, 14,5, keystream[1]); + step_P(cc+2, cc+3, 2, 8, 15,6, keystream[2]); + step_P(cc+3, cc+4, 3, 9, 0, 7, keystream[3]); + step_P(cc+4, cc+5, 4, 10,1, 8, keystream[4]); + step_P(cc+5, cc+6, 5, 11,2, 9, keystream[5]); + step_P(cc+6, cc+7, 6, 12,3, 10,keystream[6]); + step_P(cc+7, cc+8, 7, 13,4, 11,keystream[7]); + step_P(cc+8, cc+9, 8, 14,5, 12,keystream[8]); + step_P(cc+9, cc+10,9, 15,6, 13,keystream[9]); + step_P(cc+10,cc+11,10,0, 7, 14,keystream[10]); + step_P(cc+11,cc+12,11,1, 8, 15,keystream[11]); + step_P(cc+12,cc+13,12,2, 9, 0, keystream[12]); + step_P(cc+13,cc+14,13,3, 10,1, keystream[13]); + step_P(cc+14,cc+15,14,4, 11,2, keystream[14]); + step_P(cc+15,dd+0, 15,5, 12,3, keystream[15]); + } + else + { + counter1024_ = (counter1024_ + 16) & 0x3ff; + step_Q(512+cc+0, 512+cc+1, 0, 6, 13,4, keystream[0]); + step_Q(512+cc+1, 512+cc+2, 1, 7, 14,5, keystream[1]); + step_Q(512+cc+2, 512+cc+3, 2, 8, 15,6, keystream[2]); + step_Q(512+cc+3, 512+cc+4, 3, 9, 0, 7, keystream[3]); + step_Q(512+cc+4, 512+cc+5, 4, 10,1, 8, keystream[4]); + step_Q(512+cc+5, 512+cc+6, 5, 11,2, 9, keystream[5]); + step_Q(512+cc+6, 512+cc+7, 6, 12,3, 10,keystream[6]); + step_Q(512+cc+7, 512+cc+8, 7, 13,4, 11,keystream[7]); + step_Q(512+cc+8, 512+cc+9, 8, 14,5, 12,keystream[8]); + step_Q(512+cc+9, 512+cc+10,9, 15,6, 13,keystream[9]); + step_Q(512+cc+10,512+cc+11,10,0, 7, 14,keystream[10]); + step_Q(512+cc+11,512+cc+12,11,1, 8, 15,keystream[11]); + step_Q(512+cc+12,512+cc+13,12,2, 9, 0, keystream[12]); + step_Q(512+cc+13,512+cc+14,13,3, 10,1, keystream[13]); + step_Q(512+cc+14,512+cc+15,14,4, 11,2, keystream[14]); + step_Q(512+cc+15,512+dd+0, 15,5, 12,3, keystream[15]); + } +} + + +/* The following defines the initialization functions */ +#define f1(x) (rotrFixed((x),7) ^ rotrFixed((x),18) ^ ((x) >> 3)) +#define f2(x) (rotrFixed((x),17) ^ rotrFixed((x),19) ^ ((x) >> 10)) + +/*update table P*/ +#define update_P(u,v,a,b,c,d){ \ + word32 tem0,tem1,tem2,tem3; \ + tem0 = rotrFixed((T_[(v)]),23); \ + tem1 = rotrFixed((X_[(c)]),10); \ + tem2 = rotrFixed((X_[(b)]),8); \ + h1((X_[(d)]),tem3); \ + (T_[(u)]) = ((T_[(u)]) + tem2+(tem0^tem1)) ^ tem3; \ + (X_[(a)]) = (T_[(u)]); \ +} + +/*update table Q*/ +#define update_Q(u,v,a,b,c,d){ \ + word32 tem0,tem1,tem2,tem3; \ + tem0 = rotrFixed((T_[(v)]),(32-23)); \ + tem1 = rotrFixed((Y_[(c)]),(32-10)); \ + tem2 = rotrFixed((Y_[(b)]),(32-8)); \ + h2((Y_[(d)]),tem3); \ + (T_[(u)]) = ((T_[(u)]) + tem2+(tem0^tem1)) ^ tem3; \ + (Y_[(a)]) = (T_[(u)]); \ +} + +/*16 steps of HC-128, without generating keystream, */ +/*but use the outputs to update P and Q*/ +void HC128::SetupUpdate() /*each time 16 steps*/ +{ + word32 cc,dd; + cc = counter1024_ & 0x1ff; + dd = (cc+16)&0x1ff; + + if (counter1024_ < 512) + { + counter1024_ = (counter1024_ + 16) & 0x3ff; + update_P(cc+0, cc+1, 0, 6, 13, 4); + update_P(cc+1, cc+2, 1, 7, 14, 5); + update_P(cc+2, cc+3, 2, 8, 15, 6); + update_P(cc+3, cc+4, 3, 9, 0, 7); + update_P(cc+4, cc+5, 4, 10,1, 8); + update_P(cc+5, cc+6, 5, 11,2, 9); + update_P(cc+6, cc+7, 6, 12,3, 10); + update_P(cc+7, cc+8, 7, 13,4, 11); + update_P(cc+8, cc+9, 8, 14,5, 12); + update_P(cc+9, cc+10,9, 15,6, 13); + update_P(cc+10,cc+11,10,0, 7, 14); + update_P(cc+11,cc+12,11,1, 8, 15); + update_P(cc+12,cc+13,12,2, 9, 0); + update_P(cc+13,cc+14,13,3, 10, 1); + update_P(cc+14,cc+15,14,4, 11, 2); + update_P(cc+15,dd+0, 15,5, 12, 3); + } + else + { + counter1024_ = (counter1024_ + 16) & 0x3ff; + update_Q(512+cc+0, 512+cc+1, 0, 6, 13, 4); + update_Q(512+cc+1, 512+cc+2, 1, 7, 14, 5); + update_Q(512+cc+2, 512+cc+3, 2, 8, 15, 6); + update_Q(512+cc+3, 512+cc+4, 3, 9, 0, 7); + update_Q(512+cc+4, 512+cc+5, 4, 10,1, 8); + update_Q(512+cc+5, 512+cc+6, 5, 11,2, 9); + update_Q(512+cc+6, 512+cc+7, 6, 12,3, 10); + update_Q(512+cc+7, 512+cc+8, 7, 13,4, 11); + update_Q(512+cc+8, 512+cc+9, 8, 14,5, 12); + update_Q(512+cc+9, 512+cc+10,9, 15,6, 13); + update_Q(512+cc+10,512+cc+11,10,0, 7, 14); + update_Q(512+cc+11,512+cc+12,11,1, 8, 15); + update_Q(512+cc+12,512+cc+13,12,2, 9, 0); + update_Q(512+cc+13,512+cc+14,13,3, 10, 1); + update_Q(512+cc+14,512+cc+15,14,4, 11, 2); + update_Q(512+cc+15,512+dd+0, 15,5, 12, 3); + } +} + + +/* for the 128-bit key: key[0]...key[15] +* key[0] is the least significant byte of ctx->key[0] (K_0); +* key[3] is the most significant byte of ctx->key[0] (K_0); +* ... +* key[12] is the least significant byte of ctx->key[3] (K_3) +* key[15] is the most significant byte of ctx->key[3] (K_3) +* +* for the 128-bit iv: iv[0]...iv[15] +* iv[0] is the least significant byte of ctx->iv[0] (IV_0); +* iv[3] is the most significant byte of ctx->iv[0] (IV_0); +* ... +* iv[12] is the least significant byte of ctx->iv[3] (IV_3) +* iv[15] is the most significant byte of ctx->iv[3] (IV_3) +*/ + + + +void HC128::SetIV(const byte* iv) +{ + word32 i; + + for (i = 0; i < (128 >> 5); i++) + iv_[i] = LITTLE32(((word32*)iv)[i]); + + for (; i < 8; i++) iv_[i] = iv_[i-4]; + + /* expand the key and IV into the table T */ + /* (expand the key and IV into the table P and Q) */ + + for (i = 0; i < 8; i++) T_[i] = key_[i]; + for (i = 8; i < 16; i++) T_[i] = iv_[i-8]; + + for (i = 16; i < (256+16); i++) + T_[i] = f2(T_[i-2]) + T_[i-7] + f1(T_[i-15]) + T_[i-16]+i; + + for (i = 0; i < 16; i++) T_[i] = T_[256+i]; + + for (i = 16; i < 1024; i++) + T_[i] = f2(T_[i-2]) + T_[i-7] + f1(T_[i-15]) + T_[i-16]+256+i; + + /* initialize counter1024, X and Y */ + counter1024_ = 0; + for (i = 0; i < 16; i++) X_[i] = T_[512-16+i]; + for (i = 0; i < 16; i++) Y_[i] = T_[512+512-16+i]; + + /* run the cipher 1024 steps before generating the output */ + for (i = 0; i < 64; i++) SetupUpdate(); +} + + +void HC128::SetKey(const byte* key, const byte* iv) +{ + word32 i; + + /* Key size in bits 128 */ + for (i = 0; i < (128 >> 5); i++) + key_[i] = LITTLE32(((word32*)key)[i]); + + for ( ; i < 8 ; i++) key_[i] = key_[i-4]; + + SetIV(iv); +} + + +/* The following defines the encryption of data stream */ +void HC128::Process(byte* output, const byte* input, word32 msglen) +{ + word32 i, keystream[16]; + + for ( ; msglen >= 64; msglen -= 64, input += 64, output += 64) + { + GenerateKeystream(keystream); + + /* unroll loop */ + ((word32*)output)[0] = ((word32*)input)[0] ^ LITTLE32(keystream[0]); + ((word32*)output)[1] = ((word32*)input)[1] ^ LITTLE32(keystream[1]); + ((word32*)output)[2] = ((word32*)input)[2] ^ LITTLE32(keystream[2]); + ((word32*)output)[3] = ((word32*)input)[3] ^ LITTLE32(keystream[3]); + ((word32*)output)[4] = ((word32*)input)[4] ^ LITTLE32(keystream[4]); + ((word32*)output)[5] = ((word32*)input)[5] ^ LITTLE32(keystream[5]); + ((word32*)output)[6] = ((word32*)input)[6] ^ LITTLE32(keystream[6]); + ((word32*)output)[7] = ((word32*)input)[7] ^ LITTLE32(keystream[7]); + ((word32*)output)[8] = ((word32*)input)[8] ^ LITTLE32(keystream[8]); + ((word32*)output)[9] = ((word32*)input)[9] ^ LITTLE32(keystream[9]); + ((word32*)output)[10] = ((word32*)input)[10] ^ LITTLE32(keystream[10]); + ((word32*)output)[11] = ((word32*)input)[11] ^ LITTLE32(keystream[11]); + ((word32*)output)[12] = ((word32*)input)[12] ^ LITTLE32(keystream[12]); + ((word32*)output)[13] = ((word32*)input)[13] ^ LITTLE32(keystream[13]); + ((word32*)output)[14] = ((word32*)input)[14] ^ LITTLE32(keystream[14]); + ((word32*)output)[15] = ((word32*)input)[15] ^ LITTLE32(keystream[15]); + } + + if (msglen > 0) + { + GenerateKeystream(keystream); + +#ifdef BIG_ENDIAN_ORDER + { + word32 wordsLeft = msglen / sizeof(word32); + if (msglen % sizeof(word32)) wordsLeft++; + + ByteReverse(keystream, keystream, wordsLeft * sizeof(word32)); + } +#endif + + for (i = 0; i < msglen; i++) + output[i] = input[i] ^ ((byte*)keystream)[i]; + } + +} + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/integer.cpp b/mysql/extra/yassl/taocrypt/src/integer.cpp new file mode 100644 index 0000000..478a13c --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/integer.cpp @@ -0,0 +1,3894 @@ +/* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* based on Wei Dai's integer.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "integer.hpp" +#include "modarith.hpp" +#include "asn.hpp" + + + +#ifdef __DECCXX + #include // for asm overflow assembly +#endif + +#if defined(_M_X64) || defined(_M_IA64) + #include +#pragma intrinsic(_umul128) +#endif + + +#ifdef __GNUC__ + #include + #include +#endif + + +#ifdef SSE2_INTRINSICS_AVAILABLE + #ifdef __GNUC__ + #include + #ifdef TAOCRYPT_MEMALIGN_AVAILABLE + #include + #else + #include + #endif + #else + #include + #endif +#elif defined(_MSC_VER) && defined(_M_IX86) +/* #pragma message("You do not seem to have the Visual C++ Processor Pack ") + #pragma message("installed, so use of SSE2 intrinsics will be disabled.") +*/ + #pragma message("installed, so use of SSE2 intrinsics will be disabled.") +#elif defined(__GNUC__) && defined(__i386__) +/* #warning You do not have GCC 3.3 or later, or did not specify the -msse2 \ + compiler option. Use of SSE2 intrinsics will be disabled. +*/ +#endif + + +namespace TaoCrypt { + + +#ifdef SSE2_INTRINSICS_AVAILABLE + +template +CPP_TYPENAME AlignedAllocator::pointer AlignedAllocator::allocate( + size_type n, const void *) +{ + if (n > this->max_size()) + return 0; + if (n == 0) + return 0; + if (n >= 4) + { + void* p; + #ifdef TAOCRYPT_MM_MALLOC_AVAILABLE + p = _mm_malloc(sizeof(T)*n, 16); + #elif defined(TAOCRYPT_MEMALIGN_AVAILABLE) + p = memalign(16, sizeof(T)*n); + #elif defined(TAOCRYPT_MALLOC_ALIGNMENT_IS_16) + p = malloc(sizeof(T)*n); + #else + p = (byte *)malloc(sizeof(T)*n + 8); + // assume malloc alignment is at least 8 + #endif + + #ifdef TAOCRYPT_NO_ALIGNED_ALLOC + m_pBlock = p; + if (!IsAlignedOn(p, 16)) + { + p = (byte *)p + 8; + } + #endif + + return (T*)p; + } + return NEW_TC T[n]; +} + + +template +void AlignedAllocator::deallocate(void* p, size_type n) +{ + memset(p, 0, n*sizeof(T)); + if (n >= 4) + { + #ifdef TAOCRYPT_MM_MALLOC_AVAILABLE + _mm_free(p); + #elif defined(TAOCRYPT_NO_ALIGNED_ALLOC) + free(m_pBlock); + m_pBlock = 0; + #else + free(p); + #endif + } + else + tcArrayDelete((T *)p); +} + +#endif // SSE2 + + +// ******** start of integer needs + +// start 5.2.1 adds DWord and Word ******** + +// ******************************************************** + +class DWord { +public: +DWord() {} + +#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + explicit DWord(word low) + { + whole_ = low; + } +#else + explicit DWord(word low) + { + halfs_.low = low; + halfs_.high = 0; + } +#endif + + DWord(word low, word high) + { + halfs_.low = low; + halfs_.high = high; + } + + static DWord Multiply(word a, word b) + { + DWord r; + + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + r.whole_ = (dword)a * b; + + #elif defined(_M_X64) || defined(_M_IA64) + r.halfs_.low = _umul128(a, b, &r.halfs_.high); + + #elif defined(__ia64__) + r.halfs_.low = a*b; + __asm__("xmpy.hu %0=%1,%2" : "=f" (r.halfs_.high) + : "f" (a), "f" (b)); + + #elif defined(_ARCH_PPC64) + r.halfs_.low = a*b; + __asm__("mulhdu %0,%1,%2" : "=r" (r.halfs_.high) + : "r" (a), "r" (b) : "cc"); + + #elif defined(__x86_64__) + __asm__("mulq %3" : "=d" (r.halfs_.high), "=a" (r.halfs_.low) : + "a" (a), "rm" (b) : "cc"); + + #elif defined(__mips64) + __asm__("dmultu %2,%3" : "=h" (r.halfs_.high), "=l" (r.halfs_.low) + : "r" (a), "r" (b)); + + #elif defined(_M_IX86) + // for testing + word64 t = (word64)a * b; + r.halfs_.high = ((word32 *)(&t))[1]; + r.halfs_.low = (word32)t; + #else + #error can not implement DWord + #endif + + return r; + } + + static DWord MultiplyAndAdd(word a, word b, word c) + { + DWord r = Multiply(a, b); + return r += c; + } + + DWord & operator+=(word a) + { + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + whole_ = whole_ + a; + #else + halfs_.low += a; + halfs_.high += (halfs_.low < a); + #endif + return *this; + } + + DWord operator+(word a) + { + DWord r; + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + r.whole_ = whole_ + a; + #else + r.halfs_.low = halfs_.low + a; + r.halfs_.high = halfs_.high + (r.halfs_.low < a); + #endif + return r; + } + + DWord operator-(DWord a) + { + DWord r; + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + r.whole_ = whole_ - a.whole_; + #else + r.halfs_.low = halfs_.low - a.halfs_.low; + r.halfs_.high = halfs_.high - a.halfs_.high - + (r.halfs_.low > halfs_.low); + #endif + return r; + } + + DWord operator-(word a) + { + DWord r; + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + r.whole_ = whole_ - a; + #else + r.halfs_.low = halfs_.low - a; + r.halfs_.high = halfs_.high - (r.halfs_.low > halfs_.low); + #endif + return r; + } + + // returns quotient, which must fit in a word + word operator/(word divisor); + + word operator%(word a); + + bool operator!() const + { + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + return !whole_; + #else + return !halfs_.high && !halfs_.low; + #endif + } + + word GetLowHalf() const {return halfs_.low;} + word GetHighHalf() const {return halfs_.high;} + word GetHighHalfAsBorrow() const {return 0-halfs_.high;} + +private: + struct dword_struct + { + #ifdef LITTLE_ENDIAN_ORDER + word low; + word high; + #else + word high; + word low; + #endif + }; + + union + { + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + dword whole_; + #endif + struct dword_struct halfs_; + }; +}; + + +class Word { +public: + Word() {} + + Word(word value) + { + whole_ = value; + } + + Word(hword low, hword high) + { + whole_ = low | (word(high) << (WORD_BITS/2)); + } + + static Word Multiply(hword a, hword b) + { + Word r; + r.whole_ = (word)a * b; + return r; + } + + Word operator-(Word a) + { + Word r; + r.whole_ = whole_ - a.whole_; + return r; + } + + Word operator-(hword a) + { + Word r; + r.whole_ = whole_ - a; + return r; + } + + // returns quotient, which must fit in a word + hword operator/(hword divisor) + { + return hword(whole_ / divisor); + } + + bool operator!() const + { + return !whole_; + } + + word GetWhole() const {return whole_;} + hword GetLowHalf() const {return hword(whole_);} + hword GetHighHalf() const {return hword(whole_>>(WORD_BITS/2));} + hword GetHighHalfAsBorrow() const {return 0-hword(whole_>>(WORD_BITS/2));} + +private: + word whole_; +}; + + +// dummy is VC60 compiler bug workaround +// do a 3 word by 2 word divide, returns quotient and leaves remainder in A +template +S DivideThreeWordsByTwo(S* A, S B0, S B1, D* dummy_VC6_WorkAround = 0) +{ + // estimate the quotient: do a 2 S by 1 S divide + S Q; + if (S(B1+1) == 0) + Q = A[2]; + else + Q = D(A[1], A[2]) / S(B1+1); + + // now subtract Q*B from A + D p = D::Multiply(B0, Q); + D u = (D) A[0] - p.GetLowHalf(); + A[0] = u.GetLowHalf(); + u = (D) A[1] - p.GetHighHalf() - u.GetHighHalfAsBorrow() - + D::Multiply(B1, Q); + A[1] = u.GetLowHalf(); + A[2] += u.GetHighHalf(); + + // Q <= actual quotient, so fix it + while (A[2] || A[1] > B1 || (A[1]==B1 && A[0]>=B0)) + { + u = (D) A[0] - B0; + A[0] = u.GetLowHalf(); + u = (D) A[1] - B1 - u.GetHighHalfAsBorrow(); + A[1] = u.GetLowHalf(); + A[2] += u.GetHighHalf(); + Q++; + } + + return Q; +} + + +// do a 4 word by 2 word divide, returns 2 word quotient in Q0 and Q1 +template +inline D DivideFourWordsByTwo(S *T, const D &Al, const D &Ah, const D &B) +{ + if (!B) // if divisor is 0, we assume divisor==2**(2*WORD_BITS) + return D(Ah.GetLowHalf(), Ah.GetHighHalf()); + else + { + S Q[2]; + T[0] = Al.GetLowHalf(); + T[1] = Al.GetHighHalf(); + T[2] = Ah.GetLowHalf(); + T[3] = Ah.GetHighHalf(); + Q[1] = DivideThreeWordsByTwo(T+1, B.GetLowHalf(), + B.GetHighHalf()); + Q[0] = DivideThreeWordsByTwo(T, B.GetLowHalf(), B.GetHighHalf()); + return D(Q[0], Q[1]); + } +} + + +// returns quotient, which must fit in a word +inline word DWord::operator/(word a) +{ + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + return word(whole_ / a); + #else + hword r[4]; + return DivideFourWordsByTwo(r, halfs_.low, + halfs_.high, a).GetWhole(); + #endif +} + +inline word DWord::operator%(word a) +{ + #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE + return word(whole_ % a); + #else + if (a < (word(1) << (WORD_BITS/2))) + { + hword h = hword(a); + word r = halfs_.high % h; + r = ((halfs_.low >> (WORD_BITS/2)) + (r << (WORD_BITS/2))) % h; + return hword((hword(halfs_.low) + (r << (WORD_BITS/2))) % h); + } + else + { + hword r[4]; + DivideFourWordsByTwo(r, halfs_.low, halfs_.high, a); + return Word(r[0], r[1]).GetWhole(); + } + #endif +} + + + +// end 5.2.1 DWord and Word adds + + + + + +static const unsigned int RoundupSizeTable[] = {2, 2, 2, 4, 4, 8, 8, 8, 8}; + +static inline unsigned int RoundupSize(unsigned int n) +{ + if (n<=8) + return RoundupSizeTable[n]; + else if (n<=16) + return 16; + else if (n<=32) + return 32; + else if (n<=64) + return 64; + else return 1U << BitPrecision(n-1); +} + + +static int Compare(const word *A, const word *B, unsigned int N) +{ + while (N--) + if (A[N] > B[N]) + return 1; + else if (A[N] < B[N]) + return -1; + + return 0; +} + +static word Increment(word *A, unsigned int N, word B=1) +{ + word t = A[0]; + A[0] = t+B; + if (A[0] >= t) + return 0; + for (unsigned i=1; i= A0) + if (B0 >= B1) + { + s = 0; + d = (dword)(A1-A0)*(B0-B1); + } + else + { + s = (A1-A0); + d = (dword)s*(word)(B0-B1); + } + else + if (B0 > B1) + { + s = (B0-B1); + d = (word)(A1-A0)*(dword)s; + } + else + { + s = 0; + d = (dword)(A0-A1)*(B1-B0); + } +*/ + // this segment is the branchless equivalent of above + word D[4] = {A[1]-A[0], A[0]-A[1], B[0]-B[1], B[1]-B[0]}; + unsigned int ai = A[1] < A[0]; + unsigned int bi = B[0] < B[1]; + unsigned int di = ai & bi; + DWord d = DWord::Multiply(D[di], D[di+2]); + D[1] = D[3] = 0; + unsigned int si = ai + !bi; + word s = D[si]; + + DWord A0B0 = DWord::Multiply(A[0], B[0]); + C[0] = A0B0.GetLowHalf(); + + DWord A1B1 = DWord::Multiply(A[1], B[1]); + DWord t = (DWord) A0B0.GetHighHalf() + A0B0.GetLowHalf() + d.GetLowHalf() + + A1B1.GetLowHalf(); + C[1] = t.GetLowHalf(); + + t = A1B1 + t.GetHighHalf() + A0B0.GetHighHalf() + d.GetHighHalf() + + A1B1.GetHighHalf() - s; + C[2] = t.GetLowHalf(); + C[3] = t.GetHighHalf(); +} + +void Portable::Multiply2Bottom(word *C, const word *A, const word *B) +{ + DWord t = DWord::Multiply(A[0], B[0]); + C[0] = t.GetLowHalf(); + C[1] = t.GetHighHalf() + A[0]*B[1] + A[1]*B[0]; +} + +word Portable::Multiply2Add(word *C, const word *A, const word *B) +{ + word D[4] = {A[1]-A[0], A[0]-A[1], B[0]-B[1], B[1]-B[0]}; + unsigned int ai = A[1] < A[0]; + unsigned int bi = B[0] < B[1]; + unsigned int di = ai & bi; + DWord d = DWord::Multiply(D[di], D[di+2]); + D[1] = D[3] = 0; + unsigned int si = ai + !bi; + word s = D[si]; + + DWord A0B0 = DWord::Multiply(A[0], B[0]); + DWord t = A0B0 + C[0]; + C[0] = t.GetLowHalf(); + + DWord A1B1 = DWord::Multiply(A[1], B[1]); + t = (DWord) t.GetHighHalf() + A0B0.GetLowHalf() + d.GetLowHalf() + + A1B1.GetLowHalf() + C[1]; + C[1] = t.GetLowHalf(); + + t = (DWord) t.GetHighHalf() + A1B1.GetLowHalf() + A0B0.GetHighHalf() + + d.GetHighHalf() + A1B1.GetHighHalf() - s + C[2]; + C[2] = t.GetLowHalf(); + + t = (DWord) t.GetHighHalf() + A1B1.GetHighHalf() + C[3]; + C[3] = t.GetLowHalf(); + return t.GetHighHalf(); +} + + +#define MulAcc(x, y) \ + p = DWord::MultiplyAndAdd(A[x], B[y], c); \ + c = p.GetLowHalf(); \ + p = (DWord) d + p.GetHighHalf(); \ + d = p.GetLowHalf(); \ + e += p.GetHighHalf(); + +#define SaveMulAcc(s, x, y) \ + R[s] = c; \ + p = DWord::MultiplyAndAdd(A[x], B[y], d); \ + c = p.GetLowHalf(); \ + p = (DWord) e + p.GetHighHalf(); \ + d = p.GetLowHalf(); \ + e = p.GetHighHalf(); + +#define SquAcc(x, y) \ + q = DWord::Multiply(A[x], A[y]); \ + p = q + c; \ + c = p.GetLowHalf(); \ + p = (DWord) d + p.GetHighHalf(); \ + d = p.GetLowHalf(); \ + e += p.GetHighHalf(); \ + p = q + c; \ + c = p.GetLowHalf(); \ + p = (DWord) d + p.GetHighHalf(); \ + d = p.GetLowHalf(); \ + e += p.GetHighHalf(); + +#define SaveSquAcc(s, x, y) \ + R[s] = c; \ + q = DWord::Multiply(A[x], A[y]); \ + p = q + d; \ + c = p.GetLowHalf(); \ + p = (DWord) e + p.GetHighHalf(); \ + d = p.GetLowHalf(); \ + e = p.GetHighHalf(); \ + p = q + c; \ + c = p.GetLowHalf(); \ + p = (DWord) d + p.GetHighHalf(); \ + d = p.GetLowHalf(); \ + e += p.GetHighHalf(); + + +void Portable::Multiply4(word *R, const word *A, const word *B) +{ + DWord p; + word c, d, e; + + p = DWord::Multiply(A[0], B[0]); + R[0] = p.GetLowHalf(); + c = p.GetHighHalf(); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + SaveMulAcc(2, 0, 3); + MulAcc(1, 2); + MulAcc(2, 1); + MulAcc(3, 0); + + SaveMulAcc(3, 3, 1); + MulAcc(2, 2); + MulAcc(1, 3); + + SaveMulAcc(4, 2, 3); + MulAcc(3, 2); + + R[5] = c; + p = DWord::MultiplyAndAdd(A[3], B[3], d); + R[6] = p.GetLowHalf(); + R[7] = e + p.GetHighHalf(); +} + +void Portable::Square2(word *R, const word *A) +{ + DWord p, q; + word c, d, e; + + p = DWord::Multiply(A[0], A[0]); + R[0] = p.GetLowHalf(); + c = p.GetHighHalf(); + d = e = 0; + + SquAcc(0, 1); + + R[1] = c; + p = DWord::MultiplyAndAdd(A[1], A[1], d); + R[2] = p.GetLowHalf(); + R[3] = e + p.GetHighHalf(); +} + +void Portable::Square4(word *R, const word *A) +{ +#ifdef _MSC_VER + // VC60 workaround: MSVC 6.0 has an optimization bug that makes + // (dword)A*B where either A or B has been cast to a dword before + // very expensive. Revisit this function when this + // bug is fixed. + Multiply4(R, A, A); +#else + const word *B = A; + DWord p, q; + word c, d, e; + + p = DWord::Multiply(A[0], A[0]); + R[0] = p.GetLowHalf(); + c = p.GetHighHalf(); + d = e = 0; + + SquAcc(0, 1); + + SaveSquAcc(1, 2, 0); + MulAcc(1, 1); + + SaveSquAcc(2, 0, 3); + SquAcc(1, 2); + + SaveSquAcc(3, 3, 1); + MulAcc(2, 2); + + SaveSquAcc(4, 2, 3); + + R[5] = c; + p = DWord::MultiplyAndAdd(A[3], A[3], d); + R[6] = p.GetLowHalf(); + R[7] = e + p.GetHighHalf(); +#endif +} + +void Portable::Multiply8(word *R, const word *A, const word *B) +{ + DWord p; + word c, d, e; + + p = DWord::Multiply(A[0], B[0]); + R[0] = p.GetLowHalf(); + c = p.GetHighHalf(); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + SaveMulAcc(2, 0, 3); + MulAcc(1, 2); + MulAcc(2, 1); + MulAcc(3, 0); + + SaveMulAcc(3, 0, 4); + MulAcc(1, 3); + MulAcc(2, 2); + MulAcc(3, 1); + MulAcc(4, 0); + + SaveMulAcc(4, 0, 5); + MulAcc(1, 4); + MulAcc(2, 3); + MulAcc(3, 2); + MulAcc(4, 1); + MulAcc(5, 0); + + SaveMulAcc(5, 0, 6); + MulAcc(1, 5); + MulAcc(2, 4); + MulAcc(3, 3); + MulAcc(4, 2); + MulAcc(5, 1); + MulAcc(6, 0); + + SaveMulAcc(6, 0, 7); + MulAcc(1, 6); + MulAcc(2, 5); + MulAcc(3, 4); + MulAcc(4, 3); + MulAcc(5, 2); + MulAcc(6, 1); + MulAcc(7, 0); + + SaveMulAcc(7, 1, 7); + MulAcc(2, 6); + MulAcc(3, 5); + MulAcc(4, 4); + MulAcc(5, 3); + MulAcc(6, 2); + MulAcc(7, 1); + + SaveMulAcc(8, 2, 7); + MulAcc(3, 6); + MulAcc(4, 5); + MulAcc(5, 4); + MulAcc(6, 3); + MulAcc(7, 2); + + SaveMulAcc(9, 3, 7); + MulAcc(4, 6); + MulAcc(5, 5); + MulAcc(6, 4); + MulAcc(7, 3); + + SaveMulAcc(10, 4, 7); + MulAcc(5, 6); + MulAcc(6, 5); + MulAcc(7, 4); + + SaveMulAcc(11, 5, 7); + MulAcc(6, 6); + MulAcc(7, 5); + + SaveMulAcc(12, 6, 7); + MulAcc(7, 6); + + R[13] = c; + p = DWord::MultiplyAndAdd(A[7], B[7], d); + R[14] = p.GetLowHalf(); + R[15] = e + p.GetHighHalf(); +} + +void Portable::Multiply4Bottom(word *R, const word *A, const word *B) +{ + DWord p; + word c, d, e; + + p = DWord::Multiply(A[0], B[0]); + R[0] = p.GetLowHalf(); + c = p.GetHighHalf(); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + R[2] = c; + R[3] = d + A[0] * B[3] + A[1] * B[2] + A[2] * B[1] + A[3] * B[0]; +} + +void Portable::Multiply8Bottom(word *R, const word *A, const word *B) +{ + DWord p; + word c, d, e; + + p = DWord::Multiply(A[0], B[0]); + R[0] = p.GetLowHalf(); + c = p.GetHighHalf(); + d = e = 0; + + MulAcc(0, 1); + MulAcc(1, 0); + + SaveMulAcc(1, 2, 0); + MulAcc(1, 1); + MulAcc(0, 2); + + SaveMulAcc(2, 0, 3); + MulAcc(1, 2); + MulAcc(2, 1); + MulAcc(3, 0); + + SaveMulAcc(3, 0, 4); + MulAcc(1, 3); + MulAcc(2, 2); + MulAcc(3, 1); + MulAcc(4, 0); + + SaveMulAcc(4, 0, 5); + MulAcc(1, 4); + MulAcc(2, 3); + MulAcc(3, 2); + MulAcc(4, 1); + MulAcc(5, 0); + + SaveMulAcc(5, 0, 6); + MulAcc(1, 5); + MulAcc(2, 4); + MulAcc(3, 3); + MulAcc(4, 2); + MulAcc(5, 1); + MulAcc(6, 0); + + R[6] = c; + R[7] = d + A[0] * B[7] + A[1] * B[6] + A[2] * B[5] + A[3] * B[4] + + A[4] * B[3] + A[5] * B[2] + A[6] * B[1] + A[7] * B[0]; +} + + +#undef MulAcc +#undef SaveMulAcc +#undef SquAcc +#undef SaveSquAcc + +// optimized + +#ifdef TAOCRYPT_X86ASM_AVAILABLE + +// ************** x86 feature detection *************** + + +#ifdef SSE2_INTRINSICS_AVAILABLE + +#ifndef _MSC_VER + static jmp_buf s_env; + static void SigIllHandler(int) + { + longjmp(s_env, 1); + } +#endif + +static bool HasSSE2() +{ + if (!IsPentium()) + return false; + + word32 cpuid[4]; + CpuId(1, cpuid); + if ((cpuid[3] & (1 << 26)) == 0) + return false; + +#ifdef _MSC_VER + __try + { + __asm xorpd xmm0, xmm0 // executing SSE2 instruction + } + __except (1) + { + return false; + } + return true; +#else + typedef void (*SigHandler)(int); + + SigHandler oldHandler = signal(SIGILL, SigIllHandler); + if (oldHandler == SIG_ERR) + return false; + + bool result = true; + if (setjmp(s_env)) + result = false; + else + __asm __volatile ("xorpd %xmm0, %xmm0"); + + signal(SIGILL, oldHandler); + return result; +#endif +} +#endif // SSE2_INTRINSICS_AVAILABLE + + +static bool IsP4() +{ + if (!IsPentium()) + return false; + + word32 cpuid[4]; + + CpuId(1, cpuid); + return ((cpuid[0] >> 8) & 0xf) == 0xf; +} + +// ************** Pentium/P4 optimizations *************** + +class PentiumOptimized : public Portable +{ +public: + static word TAOCRYPT_CDECL Add(word *C, const word *A, const word *B, + unsigned int N); + static word TAOCRYPT_CDECL Subtract(word *C, const word *A, const word *B, + unsigned int N); + static void TAOCRYPT_CDECL Multiply4(word *C, const word *A, + const word *B); + static void TAOCRYPT_CDECL Multiply8(word *C, const word *A, + const word *B); + static void TAOCRYPT_CDECL Multiply8Bottom(word *C, const word *A, + const word *B); +}; + +class P4Optimized +{ +public: + static word TAOCRYPT_CDECL Add(word *C, const word *A, const word *B, + unsigned int N); + static word TAOCRYPT_CDECL Subtract(word *C, const word *A, const word *B, + unsigned int N); +#ifdef SSE2_INTRINSICS_AVAILABLE + static void TAOCRYPT_CDECL Multiply4(word *C, const word *A, + const word *B); + static void TAOCRYPT_CDECL Multiply8(word *C, const word *A, + const word *B); + static void TAOCRYPT_CDECL Multiply8Bottom(word *C, const word *A, + const word *B); +#endif +}; + +typedef word (TAOCRYPT_CDECL * PAddSub)(word *C, const word *A, const word *B, + unsigned int N); +typedef void (TAOCRYPT_CDECL * PMul)(word *C, const word *A, const word *B); + +static PAddSub s_pAdd, s_pSub; +#ifdef SSE2_INTRINSICS_AVAILABLE +static PMul s_pMul4, s_pMul8, s_pMul8B; +#endif + +static void SetPentiumFunctionPointers() +{ + if (!IsPentium()) + { + s_pAdd = &Portable::Add; + s_pSub = &Portable::Subtract; + } + else if (IsP4()) + { + s_pAdd = &P4Optimized::Add; + s_pSub = &P4Optimized::Subtract; + } + else + { + s_pAdd = &PentiumOptimized::Add; + s_pSub = &PentiumOptimized::Subtract; + } + +#ifdef SSE2_INTRINSICS_AVAILABLE + if (!IsPentium()) + { + s_pMul4 = &Portable::Multiply4; + s_pMul8 = &Portable::Multiply8; + s_pMul8B = &Portable::Multiply8Bottom; + } + else if (HasSSE2()) + { + s_pMul4 = &P4Optimized::Multiply4; + s_pMul8 = &P4Optimized::Multiply8; + s_pMul8B = &P4Optimized::Multiply8Bottom; + } + else + { + s_pMul4 = &PentiumOptimized::Multiply4; + s_pMul8 = &PentiumOptimized::Multiply8; + s_pMul8B = &PentiumOptimized::Multiply8Bottom; + } +#endif +} + +static const char s_RunAtStartupSetPentiumFunctionPointers = + (SetPentiumFunctionPointers(), 0); + + +class LowLevel : public PentiumOptimized +{ +public: + inline static word Add(word *C, const word *A, const word *B, + unsigned int N) + {return s_pAdd(C, A, B, N);} + inline static word Subtract(word *C, const word *A, const word *B, + unsigned int N) + {return s_pSub(C, A, B, N);} + inline static void Square4(word *R, const word *A) + {Multiply4(R, A, A);} +#ifdef SSE2_INTRINSICS_AVAILABLE + inline static void Multiply4(word *C, const word *A, const word *B) + {s_pMul4(C, A, B);} + inline static void Multiply8(word *C, const word *A, const word *B) + {s_pMul8(C, A, B);} + inline static void Multiply8Bottom(word *C, const word *A, const word *B) + {s_pMul8B(C, A, B);} +#endif +}; + +// use some tricks to share assembly code between MSVC and GCC +#ifdef _MSC_VER + #define TAOCRYPT_NAKED __declspec(naked) + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + #define AddPrologue \ + __asm push ebp \ + __asm push ebx \ + __asm push esi \ + __asm push edi \ + __asm mov ecx, [esp+20] \ + __asm mov edx, [esp+24] \ + __asm mov ebx, [esp+28] \ + __asm mov esi, [esp+32] + #define AddEpilogue \ + __asm pop edi \ + __asm pop esi \ + __asm pop ebx \ + __asm pop ebp \ + __asm ret + #define MulPrologue \ + __asm push ebp \ + __asm push ebx \ + __asm push esi \ + __asm push edi \ + __asm mov ecx, [esp+28] \ + __asm mov esi, [esp+24] \ + __asm push [esp+20] + #define MulEpilogue \ + __asm add esp, 4 \ + __asm pop edi \ + __asm pop esi \ + __asm pop ebx \ + __asm pop ebp \ + __asm ret +#else + #define TAOCRYPT_NAKED + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + #define AddPrologue \ + word res; \ + __asm__ __volatile__ \ + ( \ + "push %%ebx;" /* save this manually, in case of -fPIC */ \ + "mov %3, %%ebx;" \ + ".intel_syntax noprefix;" \ + "push ebp;" + #define AddEpilogue \ + "pop ebp;" \ + ".att_syntax prefix;" \ + "pop %%ebx;" \ + "mov %%eax, %0;" \ + : "=g" (res) \ + : "c" (C), "d" (A), "m" (B), "S" (N) \ + : "%edi", "memory", "cc" \ + ); \ + return res; + + #define MulPrologue \ + __asm__ __volatile__ \ + ( \ + "push %%ebx;" /* save this manually, in case of -fPIC */ \ + "push %%ebp;" \ + "push %0;" \ + ".intel_syntax noprefix;" + #define MulEpilogue \ + "add esp, 4;" \ + "pop ebp;" \ + "pop ebx;" \ + ".att_syntax prefix;" \ + : \ + : "rm" (Z), "S" (X), "c" (Y) \ + : "%eax", "%edx", "%edi", "memory", "cc" \ + ); +#endif + +TAOCRYPT_NAKED word PentiumOptimized::Add(word *C, const word *A, + const word *B, unsigned int N) +{ + AddPrologue + + // now: ebx = B, ecx = C, edx = A, esi = N + AS2( sub ecx, edx) // hold the distance between C & A so we + // can add this to A to get C + AS2( xor eax, eax) // clear eax + + AS2( sub eax, esi) // eax is a negative index from end of B + AS2( lea ebx, [ebx+4*esi]) // ebx is end of B + + AS2( sar eax, 1) // unit of eax is now dwords; this also + // clears the carry flag + AS1( jz loopendAdd) // if no dwords then nothing to do + + AS1(loopstartAdd:) + AS2( mov esi,[edx]) // load lower word of A + AS2( mov ebp,[edx+4]) // load higher word of A + + AS2( mov edi,[ebx+8*eax]) // load lower word of B + AS2( lea edx,[edx+8]) // advance A and C + + AS2( adc esi,edi) // add lower words + AS2( mov edi,[ebx+8*eax+4]) // load higher word of B + + AS2( adc ebp,edi) // add higher words + AS1( inc eax) // advance B + + AS2( mov [edx+ecx-8],esi) // store lower word result + AS2( mov [edx+ecx-4],ebp) // store higher word result + + AS1( jnz loopstartAdd) // loop until eax overflows and becomes zero + + AS1(loopendAdd:) + AS2( adc eax, 0) // store carry into eax (return result register) + + AddEpilogue +} + +TAOCRYPT_NAKED word PentiumOptimized::Subtract(word *C, const word *A, + const word *B, unsigned int N) +{ + AddPrologue + + // now: ebx = B, ecx = C, edx = A, esi = N + AS2( sub ecx, edx) // hold the distance between C & A so we + // can add this to A to get C + AS2( xor eax, eax) // clear eax + + AS2( sub eax, esi) // eax is a negative index from end of B + AS2( lea ebx, [ebx+4*esi]) // ebx is end of B + + AS2( sar eax, 1) // unit of eax is now dwords; this also + // clears the carry flag + AS1( jz loopendSub) // if no dwords then nothing to do + + AS1(loopstartSub:) + AS2( mov esi,[edx]) // load lower word of A + AS2( mov ebp,[edx+4]) // load higher word of A + + AS2( mov edi,[ebx+8*eax]) // load lower word of B + AS2( lea edx,[edx+8]) // advance A and C + + AS2( sbb esi,edi) // subtract lower words + AS2( mov edi,[ebx+8*eax+4]) // load higher word of B + + AS2( sbb ebp,edi) // subtract higher words + AS1( inc eax) // advance B + + AS2( mov [edx+ecx-8],esi) // store lower word result + AS2( mov [edx+ecx-4],ebp) // store higher word result + + AS1( jnz loopstartSub) // loop until eax overflows and becomes zero + + AS1(loopendSub:) + AS2( adc eax, 0) // store carry into eax (return result register) + + AddEpilogue +} + +// On Pentium 4, the adc and sbb instructions are very expensive, so avoid them. + +TAOCRYPT_NAKED word P4Optimized::Add(word *C, const word *A, const word *B, + unsigned int N) +{ + AddPrologue + + // now: ebx = B, ecx = C, edx = A, esi = N + AS2( xor eax, eax) + AS1( neg esi) + AS1( jz loopendAddP4) // if no dwords then nothing to do + + AS2( mov edi, [edx]) + AS2( mov ebp, [ebx]) + AS1( jmp carry1AddP4) + + AS1(loopstartAddP4:) + AS2( mov edi, [edx+8]) + AS2( add ecx, 8) + AS2( add edx, 8) + AS2( mov ebp, [ebx]) + AS2( add edi, eax) + AS1( jc carry1AddP4) + AS2( xor eax, eax) + + AS1(carry1AddP4:) + AS2( add edi, ebp) + AS2( mov ebp, 1) + AS2( mov [ecx], edi) + AS2( mov edi, [edx+4]) + AS2( cmovc eax, ebp) + AS2( mov ebp, [ebx+4]) + AS2( add ebx, 8) + AS2( add edi, eax) + AS1( jc carry2AddP4) + AS2( xor eax, eax) + + AS1(carry2AddP4:) + AS2( add edi, ebp) + AS2( mov ebp, 1) + AS2( cmovc eax, ebp) + AS2( mov [ecx+4], edi) + AS2( add esi, 2) + AS1( jnz loopstartAddP4) + + AS1(loopendAddP4:) + + AddEpilogue +} + +TAOCRYPT_NAKED word P4Optimized::Subtract(word *C, const word *A, + const word *B, unsigned int N) +{ + AddPrologue + + // now: ebx = B, ecx = C, edx = A, esi = N + AS2( xor eax, eax) + AS1( neg esi) + AS1( jz loopendSubP4) // if no dwords then nothing to do + + AS2( mov edi, [edx]) + AS2( mov ebp, [ebx]) + AS1( jmp carry1SubP4) + + AS1(loopstartSubP4:) + AS2( mov edi, [edx+8]) + AS2( add edx, 8) + AS2( add ecx, 8) + AS2( mov ebp, [ebx]) + AS2( sub edi, eax) + AS1( jc carry1SubP4) + AS2( xor eax, eax) + + AS1(carry1SubP4:) + AS2( sub edi, ebp) + AS2( mov ebp, 1) + AS2( mov [ecx], edi) + AS2( mov edi, [edx+4]) + AS2( cmovc eax, ebp) + AS2( mov ebp, [ebx+4]) + AS2( add ebx, 8) + AS2( sub edi, eax) + AS1( jc carry2SubP4) + AS2( xor eax, eax) + + AS1(carry2SubP4:) + AS2( sub edi, ebp) + AS2( mov ebp, 1) + AS2( cmovc eax, ebp) + AS2( mov [ecx+4], edi) + AS2( add esi, 2) + AS1( jnz loopstartSubP4) + + AS1(loopendSubP4:) + + AddEpilogue +} + +// multiply assembly code originally contributed by Leonard Janke + +#define MulStartup \ + AS2(xor ebp, ebp) \ + AS2(xor edi, edi) \ + AS2(xor ebx, ebx) + +#define MulShiftCarry \ + AS2(mov ebp, edx) \ + AS2(mov edi, ebx) \ + AS2(xor ebx, ebx) + +#define MulAccumulateBottom(i,j) \ + AS2(mov eax, [ecx+4*j]) \ + AS2(imul eax, dword ptr [esi+4*i]) \ + AS2(add ebp, eax) + +#define MulAccumulate(i,j) \ + AS2(mov eax, [ecx+4*j]) \ + AS1(mul dword ptr [esi+4*i]) \ + AS2(add ebp, eax) \ + AS2(adc edi, edx) \ + AS2(adc bl, bh) + +#define MulStoreDigit(i) \ + AS2(mov edx, edi) \ + AS2(mov edi, [esp]) \ + AS2(mov [edi+4*i], ebp) + +#define MulLastDiagonal(digits) \ + AS2(mov eax, [ecx+4*(digits-1)]) \ + AS1(mul dword ptr [esi+4*(digits-1)]) \ + AS2(add ebp, eax) \ + AS2(adc edx, edi) \ + AS2(mov edi, [esp]) \ + AS2(mov [edi+4*(2*digits-2)], ebp) \ + AS2(mov [edi+4*(2*digits-1)], edx) + +TAOCRYPT_NAKED void PentiumOptimized::Multiply4(word* Z, const word* X, + const word* Y) +{ + MulPrologue + // now: [esp] = Z, esi = X, ecx = Y + MulStartup + MulAccumulate(0,0) + MulStoreDigit(0) + MulShiftCarry + + MulAccumulate(1,0) + MulAccumulate(0,1) + MulStoreDigit(1) + MulShiftCarry + + MulAccumulate(2,0) + MulAccumulate(1,1) + MulAccumulate(0,2) + MulStoreDigit(2) + MulShiftCarry + + MulAccumulate(3,0) + MulAccumulate(2,1) + MulAccumulate(1,2) + MulAccumulate(0,3) + MulStoreDigit(3) + MulShiftCarry + + MulAccumulate(3,1) + MulAccumulate(2,2) + MulAccumulate(1,3) + MulStoreDigit(4) + MulShiftCarry + + MulAccumulate(3,2) + MulAccumulate(2,3) + MulStoreDigit(5) + MulShiftCarry + + MulLastDiagonal(4) + MulEpilogue +} + +TAOCRYPT_NAKED void PentiumOptimized::Multiply8(word* Z, const word* X, + const word* Y) +{ + MulPrologue + // now: [esp] = Z, esi = X, ecx = Y + MulStartup + MulAccumulate(0,0) + MulStoreDigit(0) + MulShiftCarry + + MulAccumulate(1,0) + MulAccumulate(0,1) + MulStoreDigit(1) + MulShiftCarry + + MulAccumulate(2,0) + MulAccumulate(1,1) + MulAccumulate(0,2) + MulStoreDigit(2) + MulShiftCarry + + MulAccumulate(3,0) + MulAccumulate(2,1) + MulAccumulate(1,2) + MulAccumulate(0,3) + MulStoreDigit(3) + MulShiftCarry + + MulAccumulate(4,0) + MulAccumulate(3,1) + MulAccumulate(2,2) + MulAccumulate(1,3) + MulAccumulate(0,4) + MulStoreDigit(4) + MulShiftCarry + + MulAccumulate(5,0) + MulAccumulate(4,1) + MulAccumulate(3,2) + MulAccumulate(2,3) + MulAccumulate(1,4) + MulAccumulate(0,5) + MulStoreDigit(5) + MulShiftCarry + + MulAccumulate(6,0) + MulAccumulate(5,1) + MulAccumulate(4,2) + MulAccumulate(3,3) + MulAccumulate(2,4) + MulAccumulate(1,5) + MulAccumulate(0,6) + MulStoreDigit(6) + MulShiftCarry + + MulAccumulate(7,0) + MulAccumulate(6,1) + MulAccumulate(5,2) + MulAccumulate(4,3) + MulAccumulate(3,4) + MulAccumulate(2,5) + MulAccumulate(1,6) + MulAccumulate(0,7) + MulStoreDigit(7) + MulShiftCarry + + MulAccumulate(7,1) + MulAccumulate(6,2) + MulAccumulate(5,3) + MulAccumulate(4,4) + MulAccumulate(3,5) + MulAccumulate(2,6) + MulAccumulate(1,7) + MulStoreDigit(8) + MulShiftCarry + + MulAccumulate(7,2) + MulAccumulate(6,3) + MulAccumulate(5,4) + MulAccumulate(4,5) + MulAccumulate(3,6) + MulAccumulate(2,7) + MulStoreDigit(9) + MulShiftCarry + + MulAccumulate(7,3) + MulAccumulate(6,4) + MulAccumulate(5,5) + MulAccumulate(4,6) + MulAccumulate(3,7) + MulStoreDigit(10) + MulShiftCarry + + MulAccumulate(7,4) + MulAccumulate(6,5) + MulAccumulate(5,6) + MulAccumulate(4,7) + MulStoreDigit(11) + MulShiftCarry + + MulAccumulate(7,5) + MulAccumulate(6,6) + MulAccumulate(5,7) + MulStoreDigit(12) + MulShiftCarry + + MulAccumulate(7,6) + MulAccumulate(6,7) + MulStoreDigit(13) + MulShiftCarry + + MulLastDiagonal(8) + MulEpilogue +} + +TAOCRYPT_NAKED void PentiumOptimized::Multiply8Bottom(word* Z, const word* X, + const word* Y) +{ + MulPrologue + // now: [esp] = Z, esi = X, ecx = Y + MulStartup + MulAccumulate(0,0) + MulStoreDigit(0) + MulShiftCarry + + MulAccumulate(1,0) + MulAccumulate(0,1) + MulStoreDigit(1) + MulShiftCarry + + MulAccumulate(2,0) + MulAccumulate(1,1) + MulAccumulate(0,2) + MulStoreDigit(2) + MulShiftCarry + + MulAccumulate(3,0) + MulAccumulate(2,1) + MulAccumulate(1,2) + MulAccumulate(0,3) + MulStoreDigit(3) + MulShiftCarry + + MulAccumulate(4,0) + MulAccumulate(3,1) + MulAccumulate(2,2) + MulAccumulate(1,3) + MulAccumulate(0,4) + MulStoreDigit(4) + MulShiftCarry + + MulAccumulate(5,0) + MulAccumulate(4,1) + MulAccumulate(3,2) + MulAccumulate(2,3) + MulAccumulate(1,4) + MulAccumulate(0,5) + MulStoreDigit(5) + MulShiftCarry + + MulAccumulate(6,0) + MulAccumulate(5,1) + MulAccumulate(4,2) + MulAccumulate(3,3) + MulAccumulate(2,4) + MulAccumulate(1,5) + MulAccumulate(0,6) + MulStoreDigit(6) + MulShiftCarry + + MulAccumulateBottom(7,0) + MulAccumulateBottom(6,1) + MulAccumulateBottom(5,2) + MulAccumulateBottom(4,3) + MulAccumulateBottom(3,4) + MulAccumulateBottom(2,5) + MulAccumulateBottom(1,6) + MulAccumulateBottom(0,7) + MulStoreDigit(7) + MulEpilogue +} + +#undef AS1 +#undef AS2 + +#else // not x86 - no processor specific code at this layer + +typedef Portable LowLevel; + +#endif + +#ifdef SSE2_INTRINSICS_AVAILABLE + +#ifdef __GNUC__ +#define TAOCRYPT_FASTCALL +#else +#define TAOCRYPT_FASTCALL __fastcall +#endif + +static void TAOCRYPT_FASTCALL P4_Mul(__m128i *C, const __m128i *A, + const __m128i *B) +{ + __m128i a3210 = _mm_load_si128(A); + __m128i b3210 = _mm_load_si128(B); + + __m128i sum; + + __m128i z = _mm_setzero_si128(); + __m128i a2b2_a0b0 = _mm_mul_epu32(a3210, b3210); + C[0] = a2b2_a0b0; + + __m128i a3120 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(3, 1, 2, 0)); + __m128i b3021 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(3, 0, 2, 1)); + __m128i a1b0_a0b1 = _mm_mul_epu32(a3120, b3021); + __m128i a1b0 = _mm_unpackhi_epi32(a1b0_a0b1, z); + __m128i a0b1 = _mm_unpacklo_epi32(a1b0_a0b1, z); + C[1] = _mm_add_epi64(a1b0, a0b1); + + __m128i a31 = _mm_srli_epi64(a3210, 32); + __m128i b31 = _mm_srli_epi64(b3210, 32); + __m128i a3b3_a1b1 = _mm_mul_epu32(a31, b31); + C[6] = a3b3_a1b1; + + __m128i a1b1 = _mm_unpacklo_epi32(a3b3_a1b1, z); + __m128i b3012 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(3, 0, 1, 2)); + __m128i a2b0_a0b2 = _mm_mul_epu32(a3210, b3012); + __m128i a0b2 = _mm_unpacklo_epi32(a2b0_a0b2, z); + __m128i a2b0 = _mm_unpackhi_epi32(a2b0_a0b2, z); + sum = _mm_add_epi64(a1b1, a0b2); + C[2] = _mm_add_epi64(sum, a2b0); + + __m128i a2301 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(2, 3, 0, 1)); + __m128i b2103 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(2, 1, 0, 3)); + __m128i a3b0_a1b2 = _mm_mul_epu32(a2301, b3012); + __m128i a2b1_a0b3 = _mm_mul_epu32(a3210, b2103); + __m128i a3b0 = _mm_unpackhi_epi32(a3b0_a1b2, z); + __m128i a1b2 = _mm_unpacklo_epi32(a3b0_a1b2, z); + __m128i a2b1 = _mm_unpackhi_epi32(a2b1_a0b3, z); + __m128i a0b3 = _mm_unpacklo_epi32(a2b1_a0b3, z); + __m128i sum1 = _mm_add_epi64(a3b0, a1b2); + sum = _mm_add_epi64(a2b1, a0b3); + C[3] = _mm_add_epi64(sum, sum1); + + __m128i a3b1_a1b3 = _mm_mul_epu32(a2301, b2103); + __m128i a2b2 = _mm_unpackhi_epi32(a2b2_a0b0, z); + __m128i a3b1 = _mm_unpackhi_epi32(a3b1_a1b3, z); + __m128i a1b3 = _mm_unpacklo_epi32(a3b1_a1b3, z); + sum = _mm_add_epi64(a2b2, a3b1); + C[4] = _mm_add_epi64(sum, a1b3); + + __m128i a1302 = _mm_shuffle_epi32(a3210, _MM_SHUFFLE(1, 3, 0, 2)); + __m128i b1203 = _mm_shuffle_epi32(b3210, _MM_SHUFFLE(1, 2, 0, 3)); + __m128i a3b2_a2b3 = _mm_mul_epu32(a1302, b1203); + __m128i a3b2 = _mm_unpackhi_epi32(a3b2_a2b3, z); + __m128i a2b3 = _mm_unpacklo_epi32(a3b2_a2b3, z); + C[5] = _mm_add_epi64(a3b2, a2b3); +} + +void P4Optimized::Multiply4(word *C, const word *A, const word *B) +{ + __m128i temp[7]; + const word *w = (word *)temp; + const __m64 *mw = (__m64 *)w; + + P4_Mul(temp, (__m128i *)A, (__m128i *)B); + + C[0] = w[0]; + + __m64 s1, s2; + + __m64 w1 = _mm_cvtsi32_si64(w[1]); + __m64 w4 = mw[2]; + __m64 w6 = mw[3]; + __m64 w8 = mw[4]; + __m64 w10 = mw[5]; + __m64 w12 = mw[6]; + __m64 w14 = mw[7]; + __m64 w16 = mw[8]; + __m64 w18 = mw[9]; + __m64 w20 = mw[10]; + __m64 w22 = mw[11]; + __m64 w26 = _mm_cvtsi32_si64(w[26]); + + s1 = _mm_add_si64(w1, w4); + C[1] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w6, w8); + s1 = _mm_add_si64(s1, s2); + C[2] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w10, w12); + s1 = _mm_add_si64(s1, s2); + C[3] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w14, w16); + s1 = _mm_add_si64(s1, s2); + C[4] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w18, w20); + s1 = _mm_add_si64(s1, s2); + C[5] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w22, w26); + s1 = _mm_add_si64(s1, s2); + C[6] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + C[7] = _mm_cvtsi64_si32(s1) + w[27]; + _mm_empty(); +} + +void P4Optimized::Multiply8(word *C, const word *A, const word *B) +{ + __m128i temp[28]; + const word *w = (word *)temp; + const __m64 *mw = (__m64 *)w; + const word *x = (word *)temp+7*4; + const __m64 *mx = (__m64 *)x; + const word *y = (word *)temp+7*4*2; + const __m64 *my = (__m64 *)y; + const word *z = (word *)temp+7*4*3; + const __m64 *mz = (__m64 *)z; + + P4_Mul(temp, (__m128i *)A, (__m128i *)B); + + P4_Mul(temp+7, (__m128i *)A+1, (__m128i *)B); + + P4_Mul(temp+14, (__m128i *)A, (__m128i *)B+1); + + P4_Mul(temp+21, (__m128i *)A+1, (__m128i *)B+1); + + C[0] = w[0]; + + __m64 s1, s2, s3, s4; + + __m64 w1 = _mm_cvtsi32_si64(w[1]); + __m64 w4 = mw[2]; + __m64 w6 = mw[3]; + __m64 w8 = mw[4]; + __m64 w10 = mw[5]; + __m64 w12 = mw[6]; + __m64 w14 = mw[7]; + __m64 w16 = mw[8]; + __m64 w18 = mw[9]; + __m64 w20 = mw[10]; + __m64 w22 = mw[11]; + __m64 w26 = _mm_cvtsi32_si64(w[26]); + __m64 w27 = _mm_cvtsi32_si64(w[27]); + + __m64 x0 = _mm_cvtsi32_si64(x[0]); + __m64 x1 = _mm_cvtsi32_si64(x[1]); + __m64 x4 = mx[2]; + __m64 x6 = mx[3]; + __m64 x8 = mx[4]; + __m64 x10 = mx[5]; + __m64 x12 = mx[6]; + __m64 x14 = mx[7]; + __m64 x16 = mx[8]; + __m64 x18 = mx[9]; + __m64 x20 = mx[10]; + __m64 x22 = mx[11]; + __m64 x26 = _mm_cvtsi32_si64(x[26]); + __m64 x27 = _mm_cvtsi32_si64(x[27]); + + __m64 y0 = _mm_cvtsi32_si64(y[0]); + __m64 y1 = _mm_cvtsi32_si64(y[1]); + __m64 y4 = my[2]; + __m64 y6 = my[3]; + __m64 y8 = my[4]; + __m64 y10 = my[5]; + __m64 y12 = my[6]; + __m64 y14 = my[7]; + __m64 y16 = my[8]; + __m64 y18 = my[9]; + __m64 y20 = my[10]; + __m64 y22 = my[11]; + __m64 y26 = _mm_cvtsi32_si64(y[26]); + __m64 y27 = _mm_cvtsi32_si64(y[27]); + + __m64 z0 = _mm_cvtsi32_si64(z[0]); + __m64 z1 = _mm_cvtsi32_si64(z[1]); + __m64 z4 = mz[2]; + __m64 z6 = mz[3]; + __m64 z8 = mz[4]; + __m64 z10 = mz[5]; + __m64 z12 = mz[6]; + __m64 z14 = mz[7]; + __m64 z16 = mz[8]; + __m64 z18 = mz[9]; + __m64 z20 = mz[10]; + __m64 z22 = mz[11]; + __m64 z26 = _mm_cvtsi32_si64(z[26]); + + s1 = _mm_add_si64(w1, w4); + C[1] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w6, w8); + s1 = _mm_add_si64(s1, s2); + C[2] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w10, w12); + s1 = _mm_add_si64(s1, s2); + C[3] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x0, y0); + s2 = _mm_add_si64(w14, w16); + s1 = _mm_add_si64(s1, s3); + s1 = _mm_add_si64(s1, s2); + C[4] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x1, y1); + s4 = _mm_add_si64(x4, y4); + s1 = _mm_add_si64(s1, w18); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w20); + s1 = _mm_add_si64(s1, s3); + C[5] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x6, y6); + s4 = _mm_add_si64(x8, y8); + s1 = _mm_add_si64(s1, w22); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w26); + s1 = _mm_add_si64(s1, s3); + C[6] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x10, y10); + s4 = _mm_add_si64(x12, y12); + s1 = _mm_add_si64(s1, w27); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, s3); + C[7] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x14, y14); + s4 = _mm_add_si64(x16, y16); + s1 = _mm_add_si64(s1, z0); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, s3); + C[8] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x18, y18); + s4 = _mm_add_si64(x20, y20); + s1 = _mm_add_si64(s1, z1); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, z4); + s1 = _mm_add_si64(s1, s3); + C[9] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x22, y22); + s4 = _mm_add_si64(x26, y26); + s1 = _mm_add_si64(s1, z6); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, z8); + s1 = _mm_add_si64(s1, s3); + C[10] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x27, y27); + s1 = _mm_add_si64(s1, z10); + s1 = _mm_add_si64(s1, z12); + s1 = _mm_add_si64(s1, s3); + C[11] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(z14, z16); + s1 = _mm_add_si64(s1, s3); + C[12] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(z18, z20); + s1 = _mm_add_si64(s1, s3); + C[13] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(z22, z26); + s1 = _mm_add_si64(s1, s3); + C[14] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + C[15] = z[27] + _mm_cvtsi64_si32(s1); + _mm_empty(); +} + +void P4Optimized::Multiply8Bottom(word *C, const word *A, const word *B) +{ + __m128i temp[21]; + const word *w = (word *)temp; + const __m64 *mw = (__m64 *)w; + const word *x = (word *)temp+7*4; + const __m64 *mx = (__m64 *)x; + const word *y = (word *)temp+7*4*2; + const __m64 *my = (__m64 *)y; + + P4_Mul(temp, (__m128i *)A, (__m128i *)B); + + P4_Mul(temp+7, (__m128i *)A+1, (__m128i *)B); + + P4_Mul(temp+14, (__m128i *)A, (__m128i *)B+1); + + C[0] = w[0]; + + __m64 s1, s2, s3, s4; + + __m64 w1 = _mm_cvtsi32_si64(w[1]); + __m64 w4 = mw[2]; + __m64 w6 = mw[3]; + __m64 w8 = mw[4]; + __m64 w10 = mw[5]; + __m64 w12 = mw[6]; + __m64 w14 = mw[7]; + __m64 w16 = mw[8]; + __m64 w18 = mw[9]; + __m64 w20 = mw[10]; + __m64 w22 = mw[11]; + __m64 w26 = _mm_cvtsi32_si64(w[26]); + + __m64 x0 = _mm_cvtsi32_si64(x[0]); + __m64 x1 = _mm_cvtsi32_si64(x[1]); + __m64 x4 = mx[2]; + __m64 x6 = mx[3]; + __m64 x8 = mx[4]; + + __m64 y0 = _mm_cvtsi32_si64(y[0]); + __m64 y1 = _mm_cvtsi32_si64(y[1]); + __m64 y4 = my[2]; + __m64 y6 = my[3]; + __m64 y8 = my[4]; + + s1 = _mm_add_si64(w1, w4); + C[1] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w6, w8); + s1 = _mm_add_si64(s1, s2); + C[2] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s2 = _mm_add_si64(w10, w12); + s1 = _mm_add_si64(s1, s2); + C[3] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x0, y0); + s2 = _mm_add_si64(w14, w16); + s1 = _mm_add_si64(s1, s3); + s1 = _mm_add_si64(s1, s2); + C[4] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x1, y1); + s4 = _mm_add_si64(x4, y4); + s1 = _mm_add_si64(s1, w18); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w20); + s1 = _mm_add_si64(s1, s3); + C[5] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + s3 = _mm_add_si64(x6, y6); + s4 = _mm_add_si64(x8, y8); + s1 = _mm_add_si64(s1, w22); + s3 = _mm_add_si64(s3, s4); + s1 = _mm_add_si64(s1, w26); + s1 = _mm_add_si64(s1, s3); + C[6] = _mm_cvtsi64_si32(s1); + s1 = _mm_srli_si64(s1, 32); + + C[7] = _mm_cvtsi64_si32(s1) + w[27] + x[10] + y[10] + x[12] + y[12]; + _mm_empty(); +} + +#endif // #ifdef SSE2_INTRINSICS_AVAILABLE + +// end optimized + +// ******************************************************** + +#define A0 A +#define A1 (A+N2) +#define B0 B +#define B1 (B+N2) + +#define T0 T +#define T1 (T+N2) +#define T2 (T+N) +#define T3 (T+N+N2) + +#define R0 R +#define R1 (R+N2) +#define R2 (R+N) +#define R3 (R+N+N2) + +//VC60 workaround: compiler bug triggered without the extra dummy parameters + +// R[2*N] - result = A*B +// T[2*N] - temporary work space +// A[N] --- multiplier +// B[N] --- multiplicant + + +void RecursiveMultiply(word *R, word *T, const word *A, const word *B, + unsigned int N) +{ + if (LowLevel::MultiplyRecursionLimit() >= 8 && N==8) + LowLevel::Multiply8(R, A, B); + else if (LowLevel::MultiplyRecursionLimit() >= 4 && N==4) + LowLevel::Multiply4(R, A, B); + else if (N==2) + LowLevel::Multiply2(R, A, B); + else + { + const unsigned int N2 = N/2; + int carry; + + int aComp = Compare(A0, A1, N2); + int bComp = Compare(B0, B1, N2); + + switch (2*aComp + aComp + bComp) + { + case -4: + LowLevel::Subtract(R0, A1, A0, N2); + LowLevel::Subtract(R1, B0, B1, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + LowLevel::Subtract(T1, T1, R0, N2); + carry = -1; + break; + case -2: + LowLevel::Subtract(R0, A1, A0, N2); + LowLevel::Subtract(R1, B0, B1, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + carry = 0; + break; + case 2: + LowLevel::Subtract(R0, A0, A1, N2); + LowLevel::Subtract(R1, B1, B0, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + carry = 0; + break; + case 4: + LowLevel::Subtract(R0, A1, A0, N2); + LowLevel::Subtract(R1, B0, B1, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + LowLevel::Subtract(T1, T1, R1, N2); + carry = -1; + break; + default: + SetWords(T0, 0, N); + carry = 0; + } + + RecursiveMultiply(R0, T2, A0, B0, N2); + RecursiveMultiply(R2, T2, A1, B1, N2); + + // now T[01] holds (A1-A0)*(B0-B1),R[01] holds A0*B0, R[23] holds A1*B1 + + carry += LowLevel::Add(T0, T0, R0, N); + carry += LowLevel::Add(T0, T0, R2, N); + carry += LowLevel::Add(R1, R1, T0, N); + + Increment(R3, N2, carry); + } +} + + +void RecursiveSquare(word *R, word *T, const word *A, unsigned int N) +{ + if (LowLevel::SquareRecursionLimit() >= 4 && N==4) + LowLevel::Square4(R, A); + else if (N==2) + LowLevel::Square2(R, A); + else + { + const unsigned int N2 = N/2; + + RecursiveSquare(R0, T2, A0, N2); + RecursiveSquare(R2, T2, A1, N2); + RecursiveMultiply(T0, T2, A0, A1, N2); + + word carry = LowLevel::Add(R1, R1, T0, N); + carry += LowLevel::Add(R1, R1, T0, N); + Increment(R3, N2, carry); + } +} + + +// R[N] - bottom half of A*B +// T[N] - temporary work space +// A[N] - multiplier +// B[N] - multiplicant + + +void RecursiveMultiplyBottom(word *R, word *T, const word *A, const word *B, + unsigned int N) +{ + if (LowLevel::MultiplyBottomRecursionLimit() >= 8 && N==8) + LowLevel::Multiply8Bottom(R, A, B); + else if (LowLevel::MultiplyBottomRecursionLimit() >= 4 && N==4) + LowLevel::Multiply4Bottom(R, A, B); + else if (N==2) + LowLevel::Multiply2Bottom(R, A, B); + else + { + const unsigned int N2 = N/2; + + RecursiveMultiply(R, T, A0, B0, N2); + RecursiveMultiplyBottom(T0, T1, A1, B0, N2); + LowLevel::Add(R1, R1, T0, N2); + RecursiveMultiplyBottom(T0, T1, A0, B1, N2); + LowLevel::Add(R1, R1, T0, N2); + } +} + + +void RecursiveMultiplyTop(word *R, word *T, const word *L, const word *A, + const word *B, unsigned int N) +{ + if (N==4) + { + LowLevel::Multiply4(T, A, B); + memcpy(R, T+4, 4*WORD_SIZE); + } + else if (N==2) + { + LowLevel::Multiply2(T, A, B); + memcpy(R, T+2, 2*WORD_SIZE); + } + else + { + const unsigned int N2 = N/2; + int carry; + + int aComp = Compare(A0, A1, N2); + int bComp = Compare(B0, B1, N2); + + switch (2*aComp + aComp + bComp) + { + case -4: + LowLevel::Subtract(R0, A1, A0, N2); + LowLevel::Subtract(R1, B0, B1, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + LowLevel::Subtract(T1, T1, R0, N2); + carry = -1; + break; + case -2: + LowLevel::Subtract(R0, A1, A0, N2); + LowLevel::Subtract(R1, B0, B1, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + carry = 0; + break; + case 2: + LowLevel::Subtract(R0, A0, A1, N2); + LowLevel::Subtract(R1, B1, B0, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + carry = 0; + break; + case 4: + LowLevel::Subtract(R0, A1, A0, N2); + LowLevel::Subtract(R1, B0, B1, N2); + RecursiveMultiply(T0, T2, R0, R1, N2); + LowLevel::Subtract(T1, T1, R1, N2); + carry = -1; + break; + default: + SetWords(T0, 0, N); + carry = 0; + } + + RecursiveMultiply(T2, R0, A1, B1, N2); + + // now T[01] holds (A1-A0)*(B0-B1), T[23] holds A1*B1 + + word c2 = LowLevel::Subtract(R0, L+N2, L, N2); + c2 += LowLevel::Subtract(R0, R0, T0, N2); + word t = (Compare(R0, T2, N2) == -1); + + carry += t; + carry += Increment(R0, N2, c2+t); + carry += LowLevel::Add(R0, R0, T1, N2); + carry += LowLevel::Add(R0, R0, T3, N2); + + CopyWords(R1, T3, N2); + Increment(R1, N2, carry); + } +} + + +inline word Add(word *C, const word *A, const word *B, unsigned int N) +{ + return LowLevel::Add(C, A, B, N); +} + +inline word Subtract(word *C, const word *A, const word *B, unsigned int N) +{ + return LowLevel::Subtract(C, A, B, N); +} + +inline void Multiply(word *R, word *T, const word *A, const word *B, + unsigned int N) +{ + RecursiveMultiply(R, T, A, B, N); +} + +inline void Square(word *R, word *T, const word *A, unsigned int N) +{ + RecursiveSquare(R, T, A, N); +} + + +void AsymmetricMultiply(word *R, word *T, const word *A, unsigned int NA, + const word *B, unsigned int NB) +{ + if (NA == NB) + { + if (A == B) + Square(R, T, A, NA); + else + Multiply(R, T, A, B, NA); + + return; + } + + if (NA > NB) + { + STL::swap(A, B); + STL::swap(NA, NB); + } + + if (NA==2 && !A[1]) + { + switch (A[0]) + { + case 0: + SetWords(R, 0, NB+2); + return; + case 1: + CopyWords(R, B, NB); + R[NB] = R[NB+1] = 0; + return; + default: + R[NB] = LinearMultiply(R, B, A[0], NB); + R[NB+1] = 0; + return; + } + } + + Multiply(R, T, A, B, NA); + CopyWords(T+2*NA, R+NA, NA); + + unsigned i; + + for (i=2*NA; i>=1; + i++; + } + k+=i; + + if (t==1 && f[1]==0 && EvenWordCount(f, fgLen)==2) + { + if (s%2==0) + CopyWords(R, b, N); + else + Subtract(R, M, b, N); + return k; + } + + ShiftWordsRightByBits(f, fgLen, i); + t=ShiftWordsLeftByBits(c, bcLen, i); + if (t) + { + c[bcLen] = t; + bcLen+=2; + } + + if (f[fgLen-2]==0 && g[fgLen-2]==0 && f[fgLen-1]==0 && g[fgLen-1]==0) + fgLen-=2; + + if (Compare(f, g, fgLen)==-1) + { + STL::swap(f, g); + STL::swap(b, c); + s++; + } + + Subtract(f, f, g, fgLen); + + if (Add(b, b, c, bcLen)) + { + b[bcLen] = 1; + bcLen+=2; + } + } +} + +// R[N] - result = A/(2^k) mod M +// A[N] - input +// M[N] - modulus + +void DivideByPower2Mod(word *R, const word *A, unsigned int k, const word *M, + unsigned int N) +{ + CopyWords(R, A, N); + + while (k--) + { + if (R[0]%2==0) + ShiftWordsRightByBits(R, N, 1); + else + { + word carry = Add(R, R, M, N); + ShiftWordsRightByBits(R, N, 1); + R[N-1] += carry<<(WORD_BITS-1); + } + } +} + +// R[N] - result = A*(2^k) mod M +// A[N] - input +// M[N] - modulus + +void MultiplyByPower2Mod(word *R, const word *A, unsigned int k, const word *M, + unsigned int N) +{ + CopyWords(R, A, N); + + while (k--) + if (ShiftWordsLeftByBits(R, N, 1) || Compare(R, M, N)>=0) + Subtract(R, R, M, N); +} + + +// ********** end of integer needs + + +Integer::Integer() + : reg_(2), sign_(POSITIVE) +{ + reg_[0] = reg_[1] = 0; +} + + +Integer::Integer(const Integer& t) + : reg_(RoundupSize(t.WordCount())), sign_(t.sign_) +{ + CopyWords(reg_.get_buffer(), t.reg_.get_buffer(), reg_.size()); +} + + +Integer::Integer(signed long value) + : reg_(2) +{ + if (value >= 0) + sign_ = POSITIVE; + else + { + sign_ = NEGATIVE; + value = -value; + } + reg_[0] = word(value); + reg_[1] = word(SafeRightShift(value)); +} + + +Integer::Integer(Sign s, word high, word low) + : reg_(2), sign_(s) +{ + reg_[0] = low; + reg_[1] = high; +} + + +Integer::Integer(word value, unsigned int length) + : reg_(RoundupSize(length)), sign_(POSITIVE) +{ + reg_[0] = value; + SetWords(reg_ + 1, 0, reg_.size() - 1); +} + + +Integer::Integer(const byte *encodedInteger, unsigned int byteCount, + Signedness s) +{ + Decode(encodedInteger, byteCount, s); +} + +class BadBER {}; + +// BER Decode Source +Integer::Integer(Source& source) + : reg_(2), sign_(POSITIVE) +{ + Decode(source); +} + +void Integer::Decode(Source& source) +{ + byte b = source.next(); + if (b != INTEGER) { + source.SetError(INTEGER_E); + return; + } + + word32 length = GetLength(source); + if (length == 0 || source.GetError().What()) return; + + if ( (b = source.next()) == 0x00) + length--; + else + source.prev(); + + if (source.IsLeft(length) == false) return; + + unsigned int words = (length + WORD_SIZE - 1) / WORD_SIZE; + words = RoundupSize(words); + if (words > reg_.size()) reg_.CleanNew(words); + + for (int j = length; j > 0; j--) { + b = source.next(); + reg_ [(j-1) / WORD_SIZE] |= (word)b << ((j-1) % WORD_SIZE) * 8; + } +} + + +void Integer::Decode(const byte* input, unsigned int inputLen, Signedness s) +{ + unsigned int idx(0); + byte b = 0; + if (inputLen>0) + b = input[idx]; // peek + sign_ = ((s==SIGNED) && (b & 0x80)) ? NEGATIVE : POSITIVE; + + while (inputLen>0 && (sign_==POSITIVE ? b==0 : b==0xff)) + { + idx++; // skip + if (--inputLen>0) + b = input[idx]; // peek + } + + reg_.CleanNew(RoundupSize(BytesToWords(inputLen))); + + for (unsigned int i=inputLen; i > 0; i--) + { + b = input[idx++]; + reg_[(i-1)/WORD_SIZE] |= (word)b << ((i-1)%WORD_SIZE)*8; + } + + if (sign_ == NEGATIVE) + { + for (unsigned i=inputLen; i 0; i--) + output[idx++] = GetByte(i-1); + } + else + { + // take two's complement of *this + Integer temp = Integer::Power2(8*max(ByteCount(), outputLen)) + *this; + for (unsigned i=0; i range); + + *this += min; +} + + +Integer Integer::Power2(unsigned int e) +{ + Integer r((word)0, BitsToWords(e + 1)); + r.SetBit(e); + return r; +} + + +void Integer::SetBit(unsigned int n, bool value) +{ + if (value) + { + reg_.CleanGrow(RoundupSize(BitsToWords(n + 1))); + reg_[n / WORD_BITS] |= (word(1) << (n % WORD_BITS)); + } + else + { + if (n / WORD_BITS < reg_.size()) + reg_[n / WORD_BITS] &= ~(word(1) << (n % WORD_BITS)); + } +} + + +void Integer::SetByte(unsigned int n, byte value) +{ + reg_.CleanGrow(RoundupSize(BytesToWords(n+1))); + reg_[n/WORD_SIZE] &= ~(word(0xff) << 8*(n%WORD_SIZE)); + reg_[n/WORD_SIZE] |= (word(value) << 8*(n%WORD_SIZE)); +} + + +void Integer::Negate() +{ + if (!!(*this)) // don't flip sign if *this==0 + sign_ = Sign(1 - sign_); +} + + +bool Integer::operator!() const +{ + return IsNegative() ? false : (reg_[0]==0 && WordCount()==0); +} + + +Integer& Integer::operator=(const Integer& t) +{ + if (this != &t) + { + reg_.New(RoundupSize(t.WordCount())); + CopyWords(reg_.get_buffer(), t.reg_.get_buffer(), reg_.size()); + sign_ = t.sign_; + } + return *this; +} + + +Integer& Integer::operator+=(const Integer& t) +{ + reg_.CleanGrow(t.reg_.size()); + if (NotNegative()) + { + if (t.NotNegative()) + PositiveAdd(*this, *this, t); + else + PositiveSubtract(*this, *this, t); + } + else + { + if (t.NotNegative()) + PositiveSubtract(*this, t, *this); + else + { + PositiveAdd(*this, *this, t); + sign_ = Integer::NEGATIVE; + } + } + return *this; +} + + +Integer Integer::operator-() const +{ + Integer result(*this); + result.Negate(); + return result; +} + + +Integer& Integer::operator-=(const Integer& t) +{ + reg_.CleanGrow(t.reg_.size()); + if (NotNegative()) + { + if (t.NotNegative()) + PositiveSubtract(*this, *this, t); + else + PositiveAdd(*this, *this, t); + } + else + { + if (t.NotNegative()) + { + PositiveAdd(*this, *this, t); + sign_ = Integer::NEGATIVE; + } + else + PositiveSubtract(*this, t, *this); + } + return *this; +} + + +Integer& Integer::operator++() +{ + if (NotNegative()) + { + if (Increment(reg_.get_buffer(), reg_.size())) + { + reg_.CleanGrow(2*reg_.size()); + reg_[reg_.size()/2]=1; + } + } + else + { + word borrow = Decrement(reg_.get_buffer(), reg_.size()); + (void)borrow; // shut up compiler + if (WordCount()==0) + *this = Zero(); + } + return *this; +} + +Integer& Integer::operator--() +{ + if (IsNegative()) + { + if (Increment(reg_.get_buffer(), reg_.size())) + { + reg_.CleanGrow(2*reg_.size()); + reg_[reg_.size()/2]=1; + } + } + else + { + if (Decrement(reg_.get_buffer(), reg_.size())) + *this = -One(); + } + return *this; +} + + +Integer& Integer::operator<<=(unsigned int n) +{ + const unsigned int wordCount = WordCount(); + const unsigned int shiftWords = n / WORD_BITS; + const unsigned int shiftBits = n % WORD_BITS; + + reg_.CleanGrow(RoundupSize(wordCount+BitsToWords(n))); + ShiftWordsLeftByWords(reg_.get_buffer(), wordCount + shiftWords, + shiftWords); + ShiftWordsLeftByBits(reg_+shiftWords, wordCount+BitsToWords(shiftBits), + shiftBits); + return *this; +} + +Integer& Integer::operator>>=(unsigned int n) +{ + const unsigned int wordCount = WordCount(); + const unsigned int shiftWords = n / WORD_BITS; + const unsigned int shiftBits = n % WORD_BITS; + + ShiftWordsRightByWords(reg_.get_buffer(), wordCount, shiftWords); + if (wordCount > shiftWords) + ShiftWordsRightByBits(reg_.get_buffer(), wordCount-shiftWords, + shiftBits); + if (IsNegative() && WordCount()==0) // avoid -0 + *this = Zero(); + return *this; +} + + +void PositiveAdd(Integer& sum, const Integer& a, const Integer& b) +{ + word carry; + if (a.reg_.size() == b.reg_.size()) + carry = Add(sum.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), a.reg_.size()); + else if (a.reg_.size() > b.reg_.size()) + { + carry = Add(sum.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), b.reg_.size()); + CopyWords(sum.reg_+b.reg_.size(), a.reg_+b.reg_.size(), + a.reg_.size()-b.reg_.size()); + carry = Increment(sum.reg_+b.reg_.size(), a.reg_.size()-b.reg_.size(), + carry); + } + else + { + carry = Add(sum.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), a.reg_.size()); + CopyWords(sum.reg_+a.reg_.size(), b.reg_+a.reg_.size(), + b.reg_.size()-a.reg_.size()); + carry = Increment(sum.reg_+a.reg_.size(), b.reg_.size()-a.reg_.size(), + carry); + } + + if (carry) + { + sum.reg_.CleanGrow(2*sum.reg_.size()); + sum.reg_[sum.reg_.size()/2] = 1; + } + sum.sign_ = Integer::POSITIVE; +} + +void PositiveSubtract(Integer &diff, const Integer &a, const Integer& b) +{ + unsigned aSize = a.WordCount(); + aSize += aSize%2; + unsigned bSize = b.WordCount(); + bSize += bSize%2; + + if (aSize == bSize) + { + if (Compare(a.reg_.get_buffer(), b.reg_.get_buffer(), aSize) >= 0) + { + Subtract(diff.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), aSize); + diff.sign_ = Integer::POSITIVE; + } + else + { + Subtract(diff.reg_.get_buffer(), b.reg_.get_buffer(), + a.reg_.get_buffer(), aSize); + diff.sign_ = Integer::NEGATIVE; + } + } + else if (aSize > bSize) + { + word borrow = Subtract(diff.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), bSize); + CopyWords(diff.reg_+bSize, a.reg_+bSize, aSize-bSize); + borrow = Decrement(diff.reg_+bSize, aSize-bSize, borrow); + diff.sign_ = Integer::POSITIVE; + } + else + { + word borrow = Subtract(diff.reg_.get_buffer(), b.reg_.get_buffer(), + a.reg_.get_buffer(), aSize); + CopyWords(diff.reg_+aSize, b.reg_+aSize, bSize-aSize); + borrow = Decrement(diff.reg_+aSize, bSize-aSize, borrow); + diff.sign_ = Integer::NEGATIVE; + } +} + + +unsigned int Integer::MinEncodedSize(Signedness signedness) const +{ + unsigned int outputLen = max(1U, ByteCount()); + if (signedness == UNSIGNED) + return outputLen; + if (NotNegative() && (GetByte(outputLen-1) & 0x80)) + outputLen++; + if (IsNegative() && *this < -Power2(outputLen*8-1)) + outputLen++; + return outputLen; +} + + +int Integer::Compare(const Integer& t) const +{ + if (NotNegative()) + { + if (t.NotNegative()) + return PositiveCompare(t); + else + return 1; + } + else + { + if (t.NotNegative()) + return -1; + else + return -PositiveCompare(t); + } +} + + +int Integer::PositiveCompare(const Integer& t) const +{ + unsigned size = WordCount(), tSize = t.WordCount(); + + if (size == tSize) + return TaoCrypt::Compare(reg_.get_buffer(), t.reg_.get_buffer(), size); + else + return size > tSize ? 1 : -1; +} + + +bool Integer::GetBit(unsigned int n) const +{ + if (n/WORD_BITS >= reg_.size()) + return 0; + else + return bool((reg_[n/WORD_BITS] >> (n % WORD_BITS)) & 1); +} + + +unsigned long Integer::GetBits(unsigned int i, unsigned int n) const +{ + unsigned long v = 0; + for (unsigned int j=0; j= reg_.size()) + return 0; + else + return byte(reg_[n/WORD_SIZE] >> ((n%WORD_SIZE)*8)); +} + + +unsigned int Integer::BitCount() const +{ + unsigned wordCount = WordCount(); + if (wordCount) + return (wordCount-1)*WORD_BITS + BitPrecision(reg_[wordCount-1]); + else + return 0; +} + + +unsigned int Integer::ByteCount() const +{ + unsigned wordCount = WordCount(); + if (wordCount) + return (wordCount-1)*WORD_SIZE + BytePrecision(reg_[wordCount-1]); + else + return 0; +} + + +unsigned int Integer::WordCount() const +{ + return CountWords(reg_.get_buffer(), reg_.size()); +} + + +bool Integer::IsConvertableToLong() const +{ + if (ByteCount() > sizeof(long)) + return false; + + unsigned long value = reg_[0]; + value += SafeLeftShift(reg_[1]); + + if (sign_ == POSITIVE) + return (signed long)value >= 0; + else + return -(signed long)value < 0; +} + + +signed long Integer::ConvertToLong() const +{ + unsigned long value = reg_[0]; + value += SafeLeftShift(reg_[1]); + return sign_ == POSITIVE ? value : -(signed long)value; +} + + +void Integer::Swap(Integer& a) +{ + reg_.Swap(a.reg_); + STL::swap(sign_, a.sign_); +} + + +Integer Integer::Plus(const Integer& b) const +{ + Integer sum((word)0, max(reg_.size(), b.reg_.size())); + if (NotNegative()) + { + if (b.NotNegative()) + PositiveAdd(sum, *this, b); + else + PositiveSubtract(sum, *this, b); + } + else + { + if (b.NotNegative()) + PositiveSubtract(sum, b, *this); + else + { + PositiveAdd(sum, *this, b); + sum.sign_ = Integer::NEGATIVE; + } + } + return sum; +} + + +Integer Integer::Minus(const Integer& b) const +{ + Integer diff((word)0, max(reg_.size(), b.reg_.size())); + if (NotNegative()) + { + if (b.NotNegative()) + PositiveSubtract(diff, *this, b); + else + PositiveAdd(diff, *this, b); + } + else + { + if (b.NotNegative()) + { + PositiveAdd(diff, *this, b); + diff.sign_ = Integer::NEGATIVE; + } + else + PositiveSubtract(diff, b, *this); + } + return diff; +} + + +Integer Integer::Times(const Integer &b) const +{ + Integer product; + Multiply(product, *this, b); + return product; +} + + +#undef A0 +#undef A1 +#undef B0 +#undef B1 + +#undef T0 +#undef T1 +#undef T2 +#undef T3 + +#undef R0 +#undef R1 +#undef R2 +#undef R3 + + +static inline void AtomicDivide(word *Q, const word *A, const word *B) +{ + word T[4]; + DWord q = DivideFourWordsByTwo(T, DWord(A[0], A[1]), + DWord(A[2], A[3]), DWord(B[0], B[1])); + Q[0] = q.GetLowHalf(); + Q[1] = q.GetHighHalf(); + +#ifndef NDEBUG + if (B[0] || B[1]) + { + // multiply quotient and divisor and add remainder, make sure it + // equals dividend + word P[4]; + Portable::Multiply2(P, Q, B); + Add(P, P, T, 4); + } +#endif +} + + +// for use by Divide(), corrects the underestimated quotient {Q1,Q0} +static void CorrectQuotientEstimate(word *R, word *T, word *Q, const word *B, + unsigned int N) +{ + if (Q[1]) + { + T[N] = T[N+1] = 0; + unsigned i; + for (i=0; i= 0) + { + R[N] -= Subtract(R, R, B, N); + Q[1] += (++Q[0]==0); + } +} + +// R[NB] -------- remainder = A%B +// Q[NA-NB+2] --- quotient = A/B +// T[NA+2*NB+4] - temp work space +// A[NA] -------- dividend +// B[NB] -------- divisor + + +void Divide(word* R, word* Q, word* T, const word* A, unsigned int NA, + const word* B, unsigned int NB) +{ + // set up temporary work space + word *const TA=T; + word *const TB=T+NA+2; + word *const TP=T+NA+2+NB; + + // copy B into TB and normalize it so that TB has highest bit set to 1 + unsigned shiftWords = (B[NB-1]==0); + TB[0] = TB[NB-1] = 0; + CopyWords(TB+shiftWords, B, NB-shiftWords); + unsigned shiftBits = WORD_BITS - BitPrecision(TB[NB-1]); + ShiftWordsLeftByBits(TB, NB, shiftBits); + + // copy A into TA and normalize it + TA[0] = TA[NA] = TA[NA+1] = 0; + CopyWords(TA+shiftWords, A, NA); + ShiftWordsLeftByBits(TA, NA+2, shiftBits); + + if (TA[NA+1]==0 && TA[NA] <= 1) + { + Q[NA-NB+1] = Q[NA-NB] = 0; + while (TA[NA] || Compare(TA+NA-NB, TB, NB) >= 0) + { + TA[NA] -= Subtract(TA+NA-NB, TA+NA-NB, TB, NB); + ++Q[NA-NB]; + } + } + else + { + NA+=2; + } + + word BT[2]; + BT[0] = TB[NB-2] + 1; + BT[1] = TB[NB-1] + (BT[0]==0); + + // start reducing TA mod TB, 2 words at a time + for (unsigned i=NA-2; i>=NB; i-=2) + { + AtomicDivide(Q+i-NB, TA+i-2, BT); + CorrectQuotientEstimate(TA+i-NB, TP, Q+i-NB, TB, NB); + } + + // copy TA into R, and denormalize it + CopyWords(R, TA+shiftWords, NB); + ShiftWordsRightByBits(R, NB, shiftBits); +} + + +void PositiveDivide(Integer& remainder, Integer& quotient, + const Integer& a, const Integer& b) +{ + unsigned aSize = a.WordCount(); + unsigned bSize = b.WordCount(); + + if (a.PositiveCompare(b) == -1) + { + remainder = a; + remainder.sign_ = Integer::POSITIVE; + quotient = Integer::Zero(); + return; + } + + aSize += aSize%2; // round up to next even number + bSize += bSize%2; + + remainder.reg_.CleanNew(RoundupSize(bSize)); + remainder.sign_ = Integer::POSITIVE; + quotient.reg_.CleanNew(RoundupSize(aSize-bSize+2)); + quotient.sign_ = Integer::POSITIVE; + + AlignedWordBlock T(aSize+2*bSize+4); + Divide(remainder.reg_.get_buffer(), quotient.reg_.get_buffer(), + T.get_buffer(), a.reg_.get_buffer(), aSize, b.reg_.get_buffer(), + bSize); +} + +void Integer::Divide(Integer &remainder, Integer "ient, + const Integer ÷nd, const Integer &divisor) +{ + PositiveDivide(remainder, quotient, dividend, divisor); + + if (dividend.IsNegative()) + { + quotient.Negate(); + if (remainder.NotZero()) + { + --quotient; + remainder = divisor.AbsoluteValue() - remainder; + } + } + + if (divisor.IsNegative()) + quotient.Negate(); +} + +void Integer::DivideByPowerOf2(Integer &r, Integer &q, const Integer &a, + unsigned int n) +{ + q = a; + q >>= n; + + const unsigned int wordCount = BitsToWords(n); + if (wordCount <= a.WordCount()) + { + r.reg_.resize(RoundupSize(wordCount)); + CopyWords(r.reg_.get_buffer(), a.reg_.get_buffer(), wordCount); + SetWords(r.reg_+wordCount, 0, r.reg_.size()-wordCount); + if (n % WORD_BITS != 0) + r.reg_[wordCount-1] %= (word(1) << (n % WORD_BITS)); + } + else + { + r.reg_.resize(RoundupSize(a.WordCount())); + CopyWords(r.reg_.get_buffer(), a.reg_.get_buffer(), r.reg_.size()); + } + r.sign_ = POSITIVE; + + if (a.IsNegative() && r.NotZero()) + { + --q; + r = Power2(n) - r; + } +} + +Integer Integer::DividedBy(const Integer &b) const +{ + Integer remainder, quotient; + Integer::Divide(remainder, quotient, *this, b); + return quotient; +} + +Integer Integer::Modulo(const Integer &b) const +{ + Integer remainder, quotient; + Integer::Divide(remainder, quotient, *this, b); + return remainder; +} + +void Integer::Divide(word &remainder, Integer "ient, + const Integer ÷nd, word divisor) +{ + if ((divisor & (divisor-1)) == 0) // divisor is a power of 2 + { + quotient = dividend >> (BitPrecision(divisor)-1); + remainder = dividend.reg_[0] & (divisor-1); + return; + } + + unsigned int i = dividend.WordCount(); + quotient.reg_.CleanNew(RoundupSize(i)); + remainder = 0; + while (i--) + { + quotient.reg_[i] = DWord(dividend.reg_[i], remainder) / divisor; + remainder = DWord(dividend.reg_[i], remainder) % divisor; + } + + if (dividend.NotNegative()) + quotient.sign_ = POSITIVE; + else + { + quotient.sign_ = NEGATIVE; + if (remainder) + { + --quotient; + remainder = divisor - remainder; + } + } +} + +Integer Integer::DividedBy(word b) const +{ + word remainder; + Integer quotient; + Integer::Divide(remainder, quotient, *this, b); + return quotient; +} + +word Integer::Modulo(word divisor) const +{ + word remainder; + + if ((divisor & (divisor-1)) == 0) // divisor is a power of 2 + remainder = reg_[0] & (divisor-1); + else + { + unsigned int i = WordCount(); + + if (divisor <= 5) + { + DWord sum(0, 0); + while (i--) + sum += reg_[i]; + remainder = sum % divisor; + } + else + { + remainder = 0; + while (i--) + remainder = DWord(reg_[i], remainder) % divisor; + } + } + + if (IsNegative() && remainder) + remainder = divisor - remainder; + + return remainder; +} + + +Integer Integer::AbsoluteValue() const +{ + Integer result(*this); + result.sign_ = POSITIVE; + return result; +} + + +Integer Integer::SquareRoot() const +{ + if (!IsPositive()) + return Zero(); + + // overestimate square root + Integer x, y = Power2((BitCount()+1)/2); + + do + { + x = y; + y = (x + *this/x) >> 1; + } while (y=m) + return (*this%m).InverseMod(m); + + if (m.IsEven()) + { + if (!m || IsEven()) + return Zero(); // no inverse + if (*this == One()) + return One(); + + Integer u = m.InverseMod(*this); + return !u ? Zero() : (m*(*this-u)+1)/(*this); + } + + AlignedWordBlock T(m.reg_.size() * 4); + Integer r((word)0, m.reg_.size()); + unsigned k = AlmostInverse(r.reg_.get_buffer(), T.get_buffer(), + reg_.get_buffer(), reg_.size(), + m.reg_.get_buffer(), m.reg_.size()); + DivideByPower2Mod(r.reg_.get_buffer(), r.reg_.get_buffer(), k, + m.reg_.get_buffer(), m.reg_.size()); + return r; +} + +word Integer::InverseMod(const word mod) const +{ + word g0 = mod, g1 = *this % mod; + word v0 = 0, v1 = 1; + word y; + + while (g1) + { + if (g1 == 1) + return v1; + y = g0 / g1; + g0 = g0 % g1; + v0 += y * v1; + + if (!g0) + break; + if (g0 == 1) + return mod-v0; + y = g1 / g0; + g1 = g1 % g0; + v1 += y * v0; + } + return 0; +} + +// ********* ModArith stuff + +const Integer& ModularArithmetic::Half(const Integer &a) const +{ + if (a.reg_.size()==modulus.reg_.size()) + { + TaoCrypt::DivideByPower2Mod(result.reg_.begin(), a.reg_.begin(), 1, + modulus.reg_.begin(), a.reg_.size()); + return result; + } + else + return result1 = (a.IsEven() ? (a >> 1) : ((a+modulus) >> 1)); +} + +const Integer& ModularArithmetic::Add(const Integer &a, const Integer &b) const +{ + if (a.reg_.size()==modulus.reg_.size() && + b.reg_.size()==modulus.reg_.size()) + { + if (TaoCrypt::Add(result.reg_.begin(), a.reg_.begin(), b.reg_.begin(), + a.reg_.size()) + || Compare(result.reg_.get_buffer(), modulus.reg_.get_buffer(), + a.reg_.size()) >= 0) + { + TaoCrypt::Subtract(result.reg_.begin(), result.reg_.begin(), + modulus.reg_.begin(), a.reg_.size()); + } + return result; + } + else + { + result1 = a+b; + if (result1 >= modulus) + result1 -= modulus; + return result1; + } +} + +Integer& ModularArithmetic::Accumulate(Integer &a, const Integer &b) const +{ + if (a.reg_.size()==modulus.reg_.size() && + b.reg_.size()==modulus.reg_.size()) + { + if (TaoCrypt::Add(a.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), a.reg_.size()) + || Compare(a.reg_.get_buffer(), modulus.reg_.get_buffer(), + a.reg_.size()) >= 0) + { + TaoCrypt::Subtract(a.reg_.get_buffer(), a.reg_.get_buffer(), + modulus.reg_.get_buffer(), a.reg_.size()); + } + } + else + { + a+=b; + if (a>=modulus) + a-=modulus; + } + + return a; +} + +const Integer& ModularArithmetic::Subtract(const Integer &a, + const Integer &b) const +{ + if (a.reg_.size()==modulus.reg_.size() && + b.reg_.size()==modulus.reg_.size()) + { + if (TaoCrypt::Subtract(result.reg_.begin(), a.reg_.begin(), + b.reg_.begin(), a.reg_.size())) + TaoCrypt::Add(result.reg_.begin(), result.reg_.begin(), + modulus.reg_.begin(), a.reg_.size()); + return result; + } + else + { + result1 = a-b; + if (result1.IsNegative()) + result1 += modulus; + return result1; + } +} + +Integer& ModularArithmetic::Reduce(Integer &a, const Integer &b) const +{ + if (a.reg_.size()==modulus.reg_.size() && + b.reg_.size()==modulus.reg_.size()) + { + if (TaoCrypt::Subtract(a.reg_.get_buffer(), a.reg_.get_buffer(), + b.reg_.get_buffer(), a.reg_.size())) + TaoCrypt::Add(a.reg_.get_buffer(), a.reg_.get_buffer(), + modulus.reg_.get_buffer(), a.reg_.size()); + } + else + { + a-=b; + if (a.IsNegative()) + a+=modulus; + } + + return a; +} + +const Integer& ModularArithmetic::Inverse(const Integer &a) const +{ + if (!a) + return a; + + CopyWords(result.reg_.begin(), modulus.reg_.begin(), modulus.reg_.size()); + if (TaoCrypt::Subtract(result.reg_.begin(), result.reg_.begin(), + a.reg_.begin(), a.reg_.size())) + Decrement(result.reg_.begin()+a.reg_.size(), 1, + modulus.reg_.size()-a.reg_.size()); + + return result; +} + +Integer ModularArithmetic::CascadeExponentiate(const Integer &x, + const Integer &e1, const Integer &y, const Integer &e2) const +{ + if (modulus.IsOdd()) + { + MontgomeryRepresentation dr(modulus); + return dr.ConvertOut(dr.CascadeExponentiate(dr.ConvertIn(x), e1, + dr.ConvertIn(y), e2)); + } + else + return AbstractRing::CascadeExponentiate(x, e1, y, e2); +} + +void ModularArithmetic::SimultaneousExponentiate(Integer *results, + const Integer &base, const Integer *exponents, + unsigned int exponentsCount) const +{ + if (modulus.IsOdd()) + { + MontgomeryRepresentation dr(modulus); + dr.SimultaneousExponentiate(results, dr.ConvertIn(base), exponents, + exponentsCount); + for (unsigned int i=0; i + +namespace TaoCrypt { + + +MD2::MD2() + : X_(X_SIZE), C_(BLOCK_SIZE), buffer_(BLOCK_SIZE) +{ + Init(); +} + +void MD2::Init() +{ + memset(X_.get_buffer(), 0, X_SIZE); + memset(C_.get_buffer(), 0, BLOCK_SIZE); + memset(buffer_.get_buffer(), 0, BLOCK_SIZE); + count_ = 0; +} + + +void MD2::Update(const byte* data, word32 len) +{ + + static const byte S[256] = + { + 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, + 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, + 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, + 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, + 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, + 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, + 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, + 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, + 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, + 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, + 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, + 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, + 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, + 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, + 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, + 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, + 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, + 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 + }; + + while (len) { + word32 L = (PAD_SIZE - count_) < len ? (PAD_SIZE - count_) : len; + memcpy(buffer_.get_buffer() + count_, data, L); + count_ += L; + data += L; + len -= L; + + if (count_==PAD_SIZE) { + count_ = 0; + memcpy(X_.get_buffer() + PAD_SIZE, buffer_.get_buffer(), PAD_SIZE); + byte t = C_[15]; + + int i; + for(i = 0; i < PAD_SIZE; i++) { + X_[32 + i] = X_[PAD_SIZE + i] ^ X_[i]; + t = C_[i] ^= S[buffer_[i] ^ t]; + } + + t=0; + for(i = 0; i < 18; i++) { + for(int j = 0; j < X_SIZE; j += 8) { + t = X_[j+0] ^= S[t]; + t = X_[j+1] ^= S[t]; + t = X_[j+2] ^= S[t]; + t = X_[j+3] ^= S[t]; + t = X_[j+4] ^= S[t]; + t = X_[j+5] ^= S[t]; + t = X_[j+6] ^= S[t]; + t = X_[j+7] ^= S[t]; + } + t = (t + i) & 0xFF; + } + } + } +} + + +void MD2::Final(byte *hash) +{ + byte padding[BLOCK_SIZE]; + word32 padLen = PAD_SIZE - count_; + + for (word32 i = 0; i < padLen; i++) + padding[i] = static_cast(padLen); + + Update(padding, padLen); + Update(C_.get_buffer(), BLOCK_SIZE); + + memcpy(hash, X_.get_buffer(), DIGEST_SIZE); + + Init(); +} + + + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/md4.cpp b/mysql/extra/yassl/taocrypt/src/md4.cpp new file mode 100644 index 0000000..9364a1c --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/md4.cpp @@ -0,0 +1,157 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* based on Wei Dai's md4.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "md4.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + +namespace TaoCrypt { + +void MD4::Init() +{ + digest_[0] = 0x67452301L; + digest_[1] = 0xefcdab89L; + digest_[2] = 0x98badcfeL; + digest_[3] = 0x10325476L; + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + + +MD4::MD4(const MD4& that) : HASHwithTransform(DIGEST_SIZE / sizeof(word32), + BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + +MD4& MD4::operator= (const MD4& that) +{ + MD4 tmp(that); + Swap(tmp); + + return *this; +} + + +void MD4::Swap(MD4& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +void MD4::Transform() +{ +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define H(x, y, z) ((x) ^ (y) ^ (z)) + + word32 A, B, C, D; + + A = digest_[0]; + B = digest_[1]; + C = digest_[2]; + D = digest_[3]; + +#define function(a,b,c,d,k,s) a=rotlFixed(a+F(b,c,d)+buffer_[k],s); + function(A,B,C,D, 0, 3); + function(D,A,B,C, 1, 7); + function(C,D,A,B, 2,11); + function(B,C,D,A, 3,19); + function(A,B,C,D, 4, 3); + function(D,A,B,C, 5, 7); + function(C,D,A,B, 6,11); + function(B,C,D,A, 7,19); + function(A,B,C,D, 8, 3); + function(D,A,B,C, 9, 7); + function(C,D,A,B,10,11); + function(B,C,D,A,11,19); + function(A,B,C,D,12, 3); + function(D,A,B,C,13, 7); + function(C,D,A,B,14,11); + function(B,C,D,A,15,19); + +#undef function +#define function(a,b,c,d,k,s) a=rotlFixed(a+G(b,c,d)+buffer_[k]+0x5a827999,s); + function(A,B,C,D, 0, 3); + function(D,A,B,C, 4, 5); + function(C,D,A,B, 8, 9); + function(B,C,D,A,12,13); + function(A,B,C,D, 1, 3); + function(D,A,B,C, 5, 5); + function(C,D,A,B, 9, 9); + function(B,C,D,A,13,13); + function(A,B,C,D, 2, 3); + function(D,A,B,C, 6, 5); + function(C,D,A,B,10, 9); + function(B,C,D,A,14,13); + function(A,B,C,D, 3, 3); + function(D,A,B,C, 7, 5); + function(C,D,A,B,11, 9); + function(B,C,D,A,15,13); + +#undef function +#define function(a,b,c,d,k,s) a=rotlFixed(a+H(b,c,d)+buffer_[k]+0x6ed9eba1,s); + function(A,B,C,D, 0, 3); + function(D,A,B,C, 8, 9); + function(C,D,A,B, 4,11); + function(B,C,D,A,12,15); + function(A,B,C,D, 2, 3); + function(D,A,B,C,10, 9); + function(C,D,A,B, 6,11); + function(B,C,D,A,14,15); + function(A,B,C,D, 1, 3); + function(D,A,B,C, 9, 9); + function(C,D,A,B, 5,11); + function(B,C,D,A,13,15); + function(A,B,C,D, 3, 3); + function(D,A,B,C,11, 9); + function(C,D,A,B, 7,11); + function(B,C,D,A,15,15); + + digest_[0] += A; + digest_[1] += B; + digest_[2] += C; + digest_[3] += D; +} + + +} // namespace + diff --git a/mysql/extra/yassl/taocrypt/src/md5.cpp b/mysql/extra/yassl/taocrypt/src/md5.cpp new file mode 100644 index 0000000..45cfa8a --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/md5.cpp @@ -0,0 +1,506 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* based on Wei Dai's md5.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "md5.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + + +namespace TaoCrypt { + +void MD5::Init() +{ + digest_[0] = 0x67452301L; + digest_[1] = 0xefcdab89L; + digest_[2] = 0x98badcfeL; + digest_[3] = 0x10325476L; + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + + +MD5::MD5(const MD5& that) : HASHwithTransform(DIGEST_SIZE / sizeof(word32), + BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + +MD5& MD5::operator= (const MD5& that) +{ + MD5 tmp(that); + Swap(tmp); + + return *this; +} + + +void MD5::Swap(MD5& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +#ifdef DO_MD5_ASM + +// Update digest with data of size len +void MD5::Update(const byte* data, word32 len) +{ + if (!isMMX) { + HASHwithTransform::Update(data, len); + return; + } + + byte* local = reinterpret_cast(buffer_); + + // remove buffered data if possible + if (buffLen_) { + word32 add = min(len, BLOCK_SIZE - buffLen_); + memcpy(&local[buffLen_], data, add); + + buffLen_ += add; + data += add; + len -= add; + + if (buffLen_ == BLOCK_SIZE) { + Transform(); + AddLength(BLOCK_SIZE); + buffLen_ = 0; + } + } + + // at once for asm + if (buffLen_ == 0) { + word32 times = len / BLOCK_SIZE; + if (times) { + AsmTransform(data, times); + const word32 add = BLOCK_SIZE * times; + AddLength(add); + len -= add; + data += add; + } + } + + // cache any data left + if (len) { + memcpy(&local[buffLen_], data, len); + buffLen_ += len; + } +} + + + + +/* + // w = rotlFixed(w + f(x, y, z) + index[edi] + data, s) + x +#define ASMMD5STEP(f, w, x, y, z, index, data, s) \ + f(x, y, z) \ + AS2( mov ebp, [edi + index * 4] ) \ + AS2( lea w, [esi + w + data] ) \ + AS2( add w, ebp ) \ + AS2( rol w, s ) \ + AS2( add w, x ) + + + // F1(x, y, z) (z ^ (x & (y ^ z))) + // place in esi +#define ASMF1(x, y, z) \ + AS2( mov esi, y ) \ + AS2( xor esi, z ) \ + AS2( and esi, x ) \ + AS2( xor esi, z ) + + +#define ASMF2(x, y, z) ASMF1(z, x, y) + + + // F3(x ^ y ^ z) + // place in esi +#define ASMF3(x, y, z) \ + AS2( mov esi, x ) \ + AS2( xor esi, y ) \ + AS2( xor esi, z ) + + + + // F4(x, y, z) (y ^ (x | ~z)) + // place in esi +#define ASMF4(x, y, z) \ + AS2( mov esi, z ) \ + AS1( not esi ) \ + AS2( or esi, x ) \ + AS2( xor esi, y ) +*/ + + + // combine above ASMMD5STEP(f w/ each f ASMF1 - F4 + + // esi already set up, after using set for next round + // ebp already set up, set up using next round index + +#define MD5STEP1(w, x, y, z, index, data, s) \ + AS2( xor esi, z ) \ + AS2( and esi, x ) \ + AS2( lea w, [ebp + w + data] ) \ + AS2( xor esi, z ) \ + AS2( add w, esi ) \ + AS2( mov esi, x ) \ + AS2( rol w, s ) \ + AS2( mov ebp, [edi + index * 4] ) \ + AS2( add w, x ) + +#define MD5STEP2(w, x, y, z, index, data, s) \ + AS2( xor esi, x ) \ + AS2( and esi, z ) \ + AS2( lea w, [ebp + w + data] ) \ + AS2( xor esi, y ) \ + AS2( add w, esi ) \ + AS2( mov esi, x ) \ + AS2( rol w, s ) \ + AS2( mov ebp, [edi + index * 4] ) \ + AS2( add w, x ) + + +#define MD5STEP3(w, x, y, z, index, data, s) \ + AS2( xor esi, z ) \ + AS2( lea w, [ebp + w + data] ) \ + AS2( xor esi, x ) \ + AS2( add w, esi ) \ + AS2( mov esi, x ) \ + AS2( rol w, s ) \ + AS2( mov ebp, [edi + index * 4] ) \ + AS2( add w, x ) + + +#define MD5STEP4(w, x, y, z, index, data, s) \ + AS2( or esi, x ) \ + AS2( lea w, [ebp + w + data] ) \ + AS2( xor esi, y ) \ + AS2( add w, esi ) \ + AS2( mov esi, y ) \ + AS2( rol w, s ) \ + AS1( not esi ) \ + AS2( mov ebp, [edi + index * 4] ) \ + AS2( add w, x ) + + + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void MD5::AsmTransform(const byte* data, word32 times) +{ +#ifdef __GNUC__ + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + + #define PROLOG() \ + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" + #define EPILOG() \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (data), "a" (times) \ + : "%esi", "%edx", "memory", "cc" \ + ); + +#else + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + + #define PROLOG() \ + AS1( push ebp ) \ + AS2( mov ebp, esp ) \ + AS2( movd mm3, edi ) \ + AS2( movd mm4, ebx ) \ + AS2( movd mm5, esi ) \ + AS2( movd mm6, ebp ) \ + AS2( mov edi, DWORD PTR [ebp + 8] ) \ + AS2( mov eax, DWORD PTR [ebp + 12] ) + + #define EPILOG() \ + AS2( movd ebp, mm6 ) \ + AS2( movd esi, mm5 ) \ + AS2( movd ebx, mm4 ) \ + AS2( movd edi, mm3 ) \ + AS2( mov esp, ebp ) \ + AS1( pop ebp ) \ + AS1( emms ) \ + AS1( ret 8 ) + +#endif + + + PROLOG() + + AS2( mov esi, ecx ) + + #ifdef OLD_GCC_OFFSET + AS2( add esi, 20 ) // digest_[0] + #else + AS2( add esi, 16 ) // digest_[0] + #endif + + AS2( movd mm2, eax ) // store times_ + AS2( movd mm1, esi ) // store digest_ + + AS2( mov eax, [esi] ) // a + AS2( mov ebx, [esi + 4] ) // b + AS2( mov ecx, [esi + 8] ) // c + AS2( mov edx, [esi + 12] ) // d + +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif + + // set up + AS2( mov esi, ecx ) + AS2( mov ebp, [edi] ) + + MD5STEP1( eax, ebx, ecx, edx, 1, 0xd76aa478, 7) + MD5STEP1( edx, eax, ebx, ecx, 2, 0xe8c7b756, 12) + MD5STEP1( ecx, edx, eax, ebx, 3, 0x242070db, 17) + MD5STEP1( ebx, ecx, edx, eax, 4, 0xc1bdceee, 22) + MD5STEP1( eax, ebx, ecx, edx, 5, 0xf57c0faf, 7) + MD5STEP1( edx, eax, ebx, ecx, 6, 0x4787c62a, 12) + MD5STEP1( ecx, edx, eax, ebx, 7, 0xa8304613, 17) + MD5STEP1( ebx, ecx, edx, eax, 8, 0xfd469501, 22) + MD5STEP1( eax, ebx, ecx, edx, 9, 0x698098d8, 7) + MD5STEP1( edx, eax, ebx, ecx, 10, 0x8b44f7af, 12) + MD5STEP1( ecx, edx, eax, ebx, 11, 0xffff5bb1, 17) + MD5STEP1( ebx, ecx, edx, eax, 12, 0x895cd7be, 22) + MD5STEP1( eax, ebx, ecx, edx, 13, 0x6b901122, 7) + MD5STEP1( edx, eax, ebx, ecx, 14, 0xfd987193, 12) + MD5STEP1( ecx, edx, eax, ebx, 15, 0xa679438e, 17) + MD5STEP1( ebx, ecx, edx, eax, 1, 0x49b40821, 22) + + MD5STEP2( eax, ebx, ecx, edx, 6, 0xf61e2562, 5) + MD5STEP2( edx, eax, ebx, ecx, 11, 0xc040b340, 9) + MD5STEP2( ecx, edx, eax, ebx, 0, 0x265e5a51, 14) + MD5STEP2( ebx, ecx, edx, eax, 5, 0xe9b6c7aa, 20) + MD5STEP2( eax, ebx, ecx, edx, 10, 0xd62f105d, 5) + MD5STEP2( edx, eax, ebx, ecx, 15, 0x02441453, 9) + MD5STEP2( ecx, edx, eax, ebx, 4, 0xd8a1e681, 14) + MD5STEP2( ebx, ecx, edx, eax, 9, 0xe7d3fbc8, 20) + MD5STEP2( eax, ebx, ecx, edx, 14, 0x21e1cde6, 5) + MD5STEP2( edx, eax, ebx, ecx, 3, 0xc33707d6, 9) + MD5STEP2( ecx, edx, eax, ebx, 8, 0xf4d50d87, 14) + MD5STEP2( ebx, ecx, edx, eax, 13, 0x455a14ed, 20) + MD5STEP2( eax, ebx, ecx, edx, 2, 0xa9e3e905, 5) + MD5STEP2( edx, eax, ebx, ecx, 7, 0xfcefa3f8, 9) + MD5STEP2( ecx, edx, eax, ebx, 12, 0x676f02d9, 14) + MD5STEP2( ebx, ecx, edx, eax, 5, 0x8d2a4c8a, 20) + + MD5STEP3( eax, ebx, ecx, edx, 8, 0xfffa3942, 4) + MD5STEP3( edx, eax, ebx, ecx, 11, 0x8771f681, 11) + MD5STEP3( ecx, edx, eax, ebx, 14, 0x6d9d6122, 16) + MD5STEP3( ebx, ecx, edx, eax, 1, 0xfde5380c, 23) + MD5STEP3( eax, ebx, ecx, edx, 4, 0xa4beea44, 4) + MD5STEP3( edx, eax, ebx, ecx, 7, 0x4bdecfa9, 11) + MD5STEP3( ecx, edx, eax, ebx, 10, 0xf6bb4b60, 16) + MD5STEP3( ebx, ecx, edx, eax, 13, 0xbebfbc70, 23) + MD5STEP3( eax, ebx, ecx, edx, 0, 0x289b7ec6, 4) + MD5STEP3( edx, eax, ebx, ecx, 3, 0xeaa127fa, 11) + MD5STEP3( ecx, edx, eax, ebx, 6, 0xd4ef3085, 16) + MD5STEP3( ebx, ecx, edx, eax, 9, 0x04881d05, 23) + MD5STEP3( eax, ebx, ecx, edx, 12, 0xd9d4d039, 4) + MD5STEP3( edx, eax, ebx, ecx, 15, 0xe6db99e5, 11) + MD5STEP3( ecx, edx, eax, ebx, 2, 0x1fa27cf8, 16) + MD5STEP3( ebx, ecx, edx, eax, 0, 0xc4ac5665, 23) + + // setup + AS2( mov esi, edx ) + AS1( not esi ) + + MD5STEP4( eax, ebx, ecx, edx, 7, 0xf4292244, 6) + MD5STEP4( edx, eax, ebx, ecx, 14, 0x432aff97, 10) + MD5STEP4( ecx, edx, eax, ebx, 5, 0xab9423a7, 15) + MD5STEP4( ebx, ecx, edx, eax, 12, 0xfc93a039, 21) + MD5STEP4( eax, ebx, ecx, edx, 3, 0x655b59c3, 6) + MD5STEP4( edx, eax, ebx, ecx, 10, 0x8f0ccc92, 10) + MD5STEP4( ecx, edx, eax, ebx, 1, 0xffeff47d, 15) + MD5STEP4( ebx, ecx, edx, eax, 8, 0x85845dd1, 21) + MD5STEP4( eax, ebx, ecx, edx, 15, 0x6fa87e4f, 6) + MD5STEP4( edx, eax, ebx, ecx, 6, 0xfe2ce6e0, 10) + MD5STEP4( ecx, edx, eax, ebx, 13, 0xa3014314, 15) + MD5STEP4( ebx, ecx, edx, eax, 4, 0x4e0811a1, 21) + MD5STEP4( eax, ebx, ecx, edx, 11, 0xf7537e82, 6) + MD5STEP4( edx, eax, ebx, ecx, 2, 0xbd3af235, 10) + MD5STEP4( ecx, edx, eax, ebx, 9, 0x2ad7d2bb, 15) + MD5STEP4( ebx, ecx, edx, eax, 9, 0xeb86d391, 21) + + AS2( movd esi, mm1 ) // digest_ + + AS2( add [esi], eax ) // write out + AS2( add [esi + 4], ebx ) + AS2( add [esi + 8], ecx ) + AS2( add [esi + 12], edx ) + + AS2( add edi, 64 ) + + AS2( mov eax, [esi] ) + AS2( mov ebx, [esi + 4] ) + AS2( mov ecx, [esi + 8] ) + AS2( mov edx, [esi + 12] ) + + AS2( movd ebp, mm2 ) // times + AS1( dec ebp ) + AS2( movd mm2, ebp ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif + + + EPILOG() +} + + +#endif // DO_MD5_ASM + + +void MD5::Transform() +{ +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +#define MD5STEP(f, w, x, y, z, data, s) \ + w = rotlFixed(w + f(x, y, z) + data, s) + x + + // Copy context->state[] to working vars + word32 a = digest_[0]; + word32 b = digest_[1]; + word32 c = digest_[2]; + word32 d = digest_[3]; + + MD5STEP(F1, a, b, c, d, buffer_[0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, buffer_[1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, buffer_[2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, buffer_[3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, buffer_[4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, buffer_[5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, buffer_[6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, buffer_[7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, buffer_[8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, buffer_[9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, buffer_[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, buffer_[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, buffer_[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, buffer_[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, buffer_[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, buffer_[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, buffer_[1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, buffer_[6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, buffer_[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, buffer_[0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, buffer_[5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, buffer_[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, buffer_[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, buffer_[4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, buffer_[9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, buffer_[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, buffer_[3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, buffer_[8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, buffer_[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, buffer_[2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, buffer_[7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, buffer_[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, buffer_[5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, buffer_[8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, buffer_[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, buffer_[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, buffer_[1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, buffer_[4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, buffer_[7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, buffer_[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, buffer_[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, buffer_[0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, buffer_[3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, buffer_[6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, buffer_[9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, buffer_[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, buffer_[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, buffer_[2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, buffer_[0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, buffer_[7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, buffer_[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, buffer_[5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, buffer_[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, buffer_[3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, buffer_[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, buffer_[1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, buffer_[8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, buffer_[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, buffer_[6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, buffer_[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, buffer_[4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, buffer_[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, buffer_[2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, buffer_[9] + 0xeb86d391, 21); + + // Add the working vars back into digest state[] + digest_[0] += a; + digest_[1] += b; + digest_[2] += c; + digest_[3] += d; + + // Wipe variables + a = b = c = d = 0; +} + + +} // namespace + diff --git a/mysql/extra/yassl/taocrypt/src/misc.cpp b/mysql/extra/yassl/taocrypt/src/misc.cpp new file mode 100644 index 0000000..b576d3d --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/misc.cpp @@ -0,0 +1,297 @@ +/* + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's misc.cpp from CryptoPP */ + + +#include "runtime.hpp" +#include "misc.hpp" + + +#ifdef __GNUC__ + #include + #include +#endif + +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + +namespace STL = STL_NAMESPACE; + + +#ifdef YASSL_PURE_C + + void* operator new(size_t sz, TaoCrypt::new_t) + { + void* ptr = malloc(sz ? sz : 1); + if (!ptr) abort(); + + return ptr; + } + + + void operator delete(void* ptr, TaoCrypt::new_t) + { + if (ptr) free(ptr); + } + + + void* operator new[](size_t sz, TaoCrypt::new_t nt) + { + return ::operator new(sz, nt); + } + + + void operator delete[](void* ptr, TaoCrypt::new_t nt) + { + ::operator delete(ptr, nt); + } + + + /* uncomment to test + // make sure not using globals anywhere by forgetting to use overloaded + void* operator new(size_t sz); + + void operator delete(void* ptr); + + void* operator new[](size_t sz); + + void operator delete[](void* ptr); + */ + + + namespace TaoCrypt { + + new_t tc; // for library new + + } + +#ifdef __sun + +// Handler for pure virtual functions +namespace __Crun { + void pure_error() { + } +} + +#endif + +#if defined(__ICC) || defined(__INTEL_COMPILER) || (__GNUC__ > 2) + +extern "C" { + + int __cxa_pure_virtual() { + return 0; + } + +} // extern "C" + +#endif + +#endif // YASSL_PURE_C + + +namespace TaoCrypt { + + +inline void XorWords(word* r, const word* a, unsigned int n) +{ + for (unsigned int i=0; i> (i-1)*8) + break; + + return i; +} + + +unsigned int BitPrecision(word value) +{ + if (!value) + return 0; + + unsigned int l = 0, + h = 8 * sizeof(value); + + while (h-l > 1) + { + unsigned int t = (l+h)/2; + if (value >> t) + l = t; + else + h = t; + } + + return h; +} + + +word Crop(word value, unsigned int size) +{ + if (size < 8*sizeof(value)) + return (value & ((1L << size) - 1)); + else + return value; +} + + + +#ifdef TAOCRYPT_X86ASM_AVAILABLE + + +bool HaveCpuId() +{ +#ifdef _MSC_VER + __try + { + __asm + { + mov eax, 0 + cpuid + } + } + __except (1) + { + return false; + } + return true; +#else + word32 eax, ebx; + __asm__ __volatile + ( + /* Put EFLAGS in eax and ebx */ + "pushf;" + "pushf;" + "pop %0;" + "movl %0,%1;" + + /* Flip the cpuid bit and store back in EFLAGS */ + "xorl $0x200000,%0;" + "push %0;" + "popf;" + + /* Read EFLAGS again */ + "pushf;" + "pop %0;" + "popf" + : "=r" (eax), "=r" (ebx) + : + : "cc" + ); + + if (eax == ebx) + return false; + return true; +#endif +} + + +void CpuId(word32 input, word32 *output) +{ +#ifdef __GNUC__ + __asm__ + ( + // save ebx in case -fPIC is being used + "push %%ebx; cpuid; mov %%ebx, %%edi; pop %%ebx" + : "=a" (output[0]), "=D" (output[1]), "=c" (output[2]), "=d"(output[3]) + : "a" (input) + ); +#else + __asm + { + mov eax, input + cpuid + mov edi, output + mov [edi], eax + mov [edi+4], ebx + mov [edi+8], ecx + mov [edi+12], edx + } +#endif +} + + +bool IsPentium() +{ + if (!HaveCpuId()) + return false; + + word32 cpuid[4]; + + CpuId(0, cpuid); + STL::swap(cpuid[2], cpuid[3]); + if (memcmp(cpuid+1, "GenuineIntel", 12) != 0) + return false; + + CpuId(1, cpuid); + byte family = ((cpuid[0] >> 8) & 0xf); + if (family < 5) + return false; + + return true; +} + + + +static bool IsMmx() +{ + if (!IsPentium()) + return false; + + word32 cpuid[4]; + + CpuId(1, cpuid); + if ((cpuid[3] & (1 << 23)) == 0) + return false; + + return true; +} + + +bool isMMX = IsMmx(); + + +#endif // TAOCRYPT_X86ASM_AVAILABLE + + + + +} // namespace + diff --git a/mysql/extra/yassl/taocrypt/src/rabbit.cpp b/mysql/extra/yassl/taocrypt/src/rabbit.cpp new file mode 100644 index 0000000..5e32f38 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/rabbit.cpp @@ -0,0 +1,255 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +#include "runtime.hpp" +#include "rabbit.hpp" + + + +namespace TaoCrypt { + + +#define U32V(x) (word32)(x) + + +#ifdef BIG_ENDIAN_ORDER + #define LITTLE32(x) ByteReverse((word32)x) +#else + #define LITTLE32(x) (x) +#endif + + +// local +namespace { + + +/* Square a 32-bit unsigned integer to obtain the 64-bit result and return */ +/* the upper 32 bits XOR the lower 32 bits */ +word32 RABBIT_g_func(word32 x) +{ + /* Temporary variables */ + word32 a, b, h, l; + + /* Construct high and low argument for squaring */ + a = x&0xFFFF; + b = x>>16; + + /* Calculate high and low result of squaring */ + h = (((U32V(a*a)>>17) + U32V(a*b))>>15) + b*b; + l = x*x; + + /* Return high XOR low */ + return U32V(h^l); +} + + +} // namespace local + + +/* Calculate the next internal state */ +void Rabbit::NextState(RabbitCtx which) +{ + /* Temporary variables */ + word32 g[8], c_old[8], i; + + Ctx* ctx; + + if (which == Master) + ctx = &masterCtx_; + else + ctx = &workCtx_; + + /* Save old counter values */ + for (i=0; i<8; i++) + c_old[i] = ctx->c[i]; + + /* Calculate new counter values */ + ctx->c[0] = U32V(ctx->c[0] + 0x4D34D34D + ctx->carry); + ctx->c[1] = U32V(ctx->c[1] + 0xD34D34D3 + (ctx->c[0] < c_old[0])); + ctx->c[2] = U32V(ctx->c[2] + 0x34D34D34 + (ctx->c[1] < c_old[1])); + ctx->c[3] = U32V(ctx->c[3] + 0x4D34D34D + (ctx->c[2] < c_old[2])); + ctx->c[4] = U32V(ctx->c[4] + 0xD34D34D3 + (ctx->c[3] < c_old[3])); + ctx->c[5] = U32V(ctx->c[5] + 0x34D34D34 + (ctx->c[4] < c_old[4])); + ctx->c[6] = U32V(ctx->c[6] + 0x4D34D34D + (ctx->c[5] < c_old[5])); + ctx->c[7] = U32V(ctx->c[7] + 0xD34D34D3 + (ctx->c[6] < c_old[6])); + ctx->carry = (ctx->c[7] < c_old[7]); + + /* Calculate the g-values */ + for (i=0;i<8;i++) + g[i] = RABBIT_g_func(U32V(ctx->x[i] + ctx->c[i])); + + /* Calculate new state values */ + ctx->x[0] = U32V(g[0] + rotlFixed(g[7],16) + rotlFixed(g[6], 16)); + ctx->x[1] = U32V(g[1] + rotlFixed(g[0], 8) + g[7]); + ctx->x[2] = U32V(g[2] + rotlFixed(g[1],16) + rotlFixed(g[0], 16)); + ctx->x[3] = U32V(g[3] + rotlFixed(g[2], 8) + g[1]); + ctx->x[4] = U32V(g[4] + rotlFixed(g[3],16) + rotlFixed(g[2], 16)); + ctx->x[5] = U32V(g[5] + rotlFixed(g[4], 8) + g[3]); + ctx->x[6] = U32V(g[6] + rotlFixed(g[5],16) + rotlFixed(g[4], 16)); + ctx->x[7] = U32V(g[7] + rotlFixed(g[6], 8) + g[5]); +} + + +/* IV setup */ +void Rabbit::SetIV(const byte* iv) +{ + /* Temporary variables */ + word32 i0, i1, i2, i3, i; + + /* Generate four subvectors */ + i0 = LITTLE32(*(word32*)(iv+0)); + i2 = LITTLE32(*(word32*)(iv+4)); + i1 = (i0>>16) | (i2&0xFFFF0000); + i3 = (i2<<16) | (i0&0x0000FFFF); + + /* Modify counter values */ + workCtx_.c[0] = masterCtx_.c[0] ^ i0; + workCtx_.c[1] = masterCtx_.c[1] ^ i1; + workCtx_.c[2] = masterCtx_.c[2] ^ i2; + workCtx_.c[3] = masterCtx_.c[3] ^ i3; + workCtx_.c[4] = masterCtx_.c[4] ^ i0; + workCtx_.c[5] = masterCtx_.c[5] ^ i1; + workCtx_.c[6] = masterCtx_.c[6] ^ i2; + workCtx_.c[7] = masterCtx_.c[7] ^ i3; + + /* Copy state variables */ + for (i=0; i<8; i++) + workCtx_.x[i] = masterCtx_.x[i]; + workCtx_.carry = masterCtx_.carry; + + /* Iterate the system four times */ + for (i=0; i<4; i++) + NextState(Work); +} + + +/* Key setup */ +void Rabbit::SetKey(const byte* key, const byte* iv) +{ + /* Temporary variables */ + word32 k0, k1, k2, k3, i; + + /* Generate four subkeys */ + k0 = LITTLE32(*(word32*)(key+ 0)); + k1 = LITTLE32(*(word32*)(key+ 4)); + k2 = LITTLE32(*(word32*)(key+ 8)); + k3 = LITTLE32(*(word32*)(key+12)); + + /* Generate initial state variables */ + masterCtx_.x[0] = k0; + masterCtx_.x[2] = k1; + masterCtx_.x[4] = k2; + masterCtx_.x[6] = k3; + masterCtx_.x[1] = U32V(k3<<16) | (k2>>16); + masterCtx_.x[3] = U32V(k0<<16) | (k3>>16); + masterCtx_.x[5] = U32V(k1<<16) | (k0>>16); + masterCtx_.x[7] = U32V(k2<<16) | (k1>>16); + + /* Generate initial counter values */ + masterCtx_.c[0] = rotlFixed(k2, 16); + masterCtx_.c[2] = rotlFixed(k3, 16); + masterCtx_.c[4] = rotlFixed(k0, 16); + masterCtx_.c[6] = rotlFixed(k1, 16); + masterCtx_.c[1] = (k0&0xFFFF0000) | (k1&0xFFFF); + masterCtx_.c[3] = (k1&0xFFFF0000) | (k2&0xFFFF); + masterCtx_.c[5] = (k2&0xFFFF0000) | (k3&0xFFFF); + masterCtx_.c[7] = (k3&0xFFFF0000) | (k0&0xFFFF); + + /* Clear carry bit */ + masterCtx_.carry = 0; + + /* Iterate the system four times */ + for (i=0; i<4; i++) + NextState(Master); + + /* Modify the counters */ + for (i=0; i<8; i++) + masterCtx_.c[i] ^= masterCtx_.x[(i+4)&0x7]; + + /* Copy master instance to work instance */ + for (i=0; i<8; i++) { + workCtx_.x[i] = masterCtx_.x[i]; + workCtx_.c[i] = masterCtx_.c[i]; + } + workCtx_.carry = masterCtx_.carry; + + if (iv) SetIV(iv); +} + + +/* Encrypt/decrypt a message of any size */ +void Rabbit::Process(byte* output, const byte* input, word32 msglen) +{ + /* Temporary variables */ + word32 i; + + /* Encrypt/decrypt all full blocks */ + while (msglen >= 16) { + /* Iterate the system */ + NextState(Work); + + /* Encrypt/decrypt 16 bytes of data */ + *(word32*)(output+ 0) = *(word32*)(input+ 0) ^ + LITTLE32(workCtx_.x[0] ^ (workCtx_.x[5]>>16) ^ + U32V(workCtx_.x[3]<<16)); + *(word32*)(output+ 4) = *(word32*)(input+ 4) ^ + LITTLE32(workCtx_.x[2] ^ (workCtx_.x[7]>>16) ^ + U32V(workCtx_.x[5]<<16)); + *(word32*)(output+ 8) = *(word32*)(input+ 8) ^ + LITTLE32(workCtx_.x[4] ^ (workCtx_.x[1]>>16) ^ + U32V(workCtx_.x[7]<<16)); + *(word32*)(output+12) = *(word32*)(input+12) ^ + LITTLE32(workCtx_.x[6] ^ (workCtx_.x[3]>>16) ^ + U32V(workCtx_.x[1]<<16)); + + /* Increment pointers and decrement length */ + input += 16; + output += 16; + msglen -= 16; + } + + /* Encrypt/decrypt remaining data */ + if (msglen) { + + word32 tmp[4]; + byte* buffer = (byte*)tmp; + + memset(tmp, 0, sizeof(tmp)); /* help static analysis */ + + /* Iterate the system */ + NextState(Work); + + /* Generate 16 bytes of pseudo-random data */ + tmp[0] = LITTLE32(workCtx_.x[0] ^ + (workCtx_.x[5]>>16) ^ U32V(workCtx_.x[3]<<16)); + tmp[1] = LITTLE32(workCtx_.x[2] ^ + (workCtx_.x[7]>>16) ^ U32V(workCtx_.x[5]<<16)); + tmp[2] = LITTLE32(workCtx_.x[4] ^ + (workCtx_.x[1]>>16) ^ U32V(workCtx_.x[7]<<16)); + tmp[3] = LITTLE32(workCtx_.x[6] ^ + (workCtx_.x[3]>>16) ^ U32V(workCtx_.x[1]<<16)); + + /* Encrypt/decrypt the data */ + for (i=0; i +#include + +#if defined(_WIN32) + #include + #include +#else + #include + #include + #include +#endif // _WIN32 + +namespace TaoCrypt { + + +// Get seed and key cipher +RandomNumberGenerator::RandomNumberGenerator() +{ + byte key[32]; + byte junk[256]; + + seed_.GenerateSeed(key, sizeof(key)); + cipher_.SetKey(key, sizeof(key)); + GenerateBlock(junk, sizeof(junk)); // rid initial state +} + + +// place a generated block in output +void RandomNumberGenerator::GenerateBlock(byte* output, word32 sz) +{ + memset(output, 0, sz); + cipher_.Process(output, output, sz); +} + + +byte RandomNumberGenerator::GenerateByte() +{ + byte b; + GenerateBlock(&b, 1); + + return b; +} + + +#if defined(_WIN32) + +/* The OS_Seed implementation for windows */ + +OS_Seed::OS_Seed() +{ + if(!CryptAcquireContext(&handle_, 0, 0, PROV_RSA_FULL, + CRYPT_VERIFYCONTEXT)) + error_.SetError(WINCRYPT_E); +} + + +OS_Seed::~OS_Seed() +{ + CryptReleaseContext(handle_, 0); +} + + +void OS_Seed::GenerateSeed(byte* output, word32 sz) +{ + if (!CryptGenRandom(handle_, sz, output)) + error_.SetError(CRYPTGEN_E); +} + + +#else + +/* The default OS_Seed implementation */ + +OS_Seed::OS_Seed() +{ + fd_ = open("/dev/urandom",O_RDONLY); + if (fd_ == -1) { + fd_ = open("/dev/random",O_RDONLY); + if (fd_ == -1) + error_.SetError(OPEN_RAN_E); + } +} + + +OS_Seed::~OS_Seed() +{ + close(fd_); +} + + +// may block +void OS_Seed::GenerateSeed(byte* output, word32 sz) +{ + while (sz) { + int len = read(fd_, output, sz); + if (len == -1) { + error_.SetError(READ_RAN_E); + return; + } + + sz -= len; + output += len; + + if (sz) + sleep(1); + } +} + +#endif // _WIN32 + + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/ripemd.cpp b/mysql/extra/yassl/taocrypt/src/ripemd.cpp new file mode 100644 index 0000000..5d03dc6 --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/ripemd.cpp @@ -0,0 +1,844 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + + +/* based on Wei Dai's ripemd.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "ripemd.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + + +namespace TaoCrypt { + +void RIPEMD160::Init() +{ + digest_[0] = 0x67452301L; + digest_[1] = 0xefcdab89L; + digest_[2] = 0x98badcfeL; + digest_[3] = 0x10325476L; + digest_[4] = 0xc3d2e1f0L; + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + + +RIPEMD160::RIPEMD160(const RIPEMD160& that) + : HASHwithTransform(DIGEST_SIZE / sizeof(word32), BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + + +RIPEMD160& RIPEMD160::operator= (const RIPEMD160& that) +{ + RIPEMD160 tmp(that); + Swap(tmp); + + return *this; +} + + +void RIPEMD160::Swap(RIPEMD160& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +#ifdef DO_RIPEMD_ASM + +// Update digest with data of size len +void RIPEMD160::Update(const byte* data, word32 len) +{ + if (!isMMX) { + HASHwithTransform::Update(data, len); + return; + } + + byte* local = reinterpret_cast(buffer_); + + // remove buffered data if possible + if (buffLen_) { + word32 add = min(len, BLOCK_SIZE - buffLen_); + memcpy(&local[buffLen_], data, add); + + buffLen_ += add; + data += add; + len -= add; + + if (buffLen_ == BLOCK_SIZE) { + Transform(); + AddLength(BLOCK_SIZE); + buffLen_ = 0; + } + } + + // all at once for asm + if (buffLen_ == 0) { + word32 times = len / BLOCK_SIZE; + if (times) { + AsmTransform(data, times); + const word32 add = BLOCK_SIZE * times; + AddLength(add); + len -= add; + data += add; + } + } + + // cache any data left + if (len) { + memcpy(&local[buffLen_], data, len); + buffLen_ += len; + } +} + +#endif // DO_RIPEMD_ASM + + +// for all +#define F(x, y, z) (x ^ y ^ z) +#define G(x, y, z) (z ^ (x & (y^z))) +#define H(x, y, z) (z ^ (x | ~y)) +#define I(x, y, z) (y ^ (z & (x^y))) +#define J(x, y, z) (x ^ (y | ~z)) + +#define k0 0 +#define k1 0x5a827999 +#define k2 0x6ed9eba1 +#define k3 0x8f1bbcdc +#define k4 0xa953fd4e +#define k5 0x50a28be6 +#define k6 0x5c4dd124 +#define k7 0x6d703ef3 +#define k8 0x7a6d76e9 +#define k9 0 + +// for 160 and 320 +#define Subround(f, a, b, c, d, e, x, s, k) \ + a += f(b, c, d) + x + k;\ + a = rotlFixed((word32)a, s) + e;\ + c = rotlFixed((word32)c, 10U) + + +void RIPEMD160::Transform() +{ + unsigned long a1, b1, c1, d1, e1, a2, b2, c2, d2, e2; + a1 = a2 = digest_[0]; + b1 = b2 = digest_[1]; + c1 = c2 = digest_[2]; + d1 = d2 = digest_[3]; + e1 = e2 = digest_[4]; + + Subround(F, a1, b1, c1, d1, e1, buffer_[ 0], 11, k0); + Subround(F, e1, a1, b1, c1, d1, buffer_[ 1], 14, k0); + Subround(F, d1, e1, a1, b1, c1, buffer_[ 2], 15, k0); + Subround(F, c1, d1, e1, a1, b1, buffer_[ 3], 12, k0); + Subround(F, b1, c1, d1, e1, a1, buffer_[ 4], 5, k0); + Subround(F, a1, b1, c1, d1, e1, buffer_[ 5], 8, k0); + Subround(F, e1, a1, b1, c1, d1, buffer_[ 6], 7, k0); + Subround(F, d1, e1, a1, b1, c1, buffer_[ 7], 9, k0); + Subround(F, c1, d1, e1, a1, b1, buffer_[ 8], 11, k0); + Subround(F, b1, c1, d1, e1, a1, buffer_[ 9], 13, k0); + Subround(F, a1, b1, c1, d1, e1, buffer_[10], 14, k0); + Subround(F, e1, a1, b1, c1, d1, buffer_[11], 15, k0); + Subround(F, d1, e1, a1, b1, c1, buffer_[12], 6, k0); + Subround(F, c1, d1, e1, a1, b1, buffer_[13], 7, k0); + Subround(F, b1, c1, d1, e1, a1, buffer_[14], 9, k0); + Subround(F, a1, b1, c1, d1, e1, buffer_[15], 8, k0); + + Subround(G, e1, a1, b1, c1, d1, buffer_[ 7], 7, k1); + Subround(G, d1, e1, a1, b1, c1, buffer_[ 4], 6, k1); + Subround(G, c1, d1, e1, a1, b1, buffer_[13], 8, k1); + Subround(G, b1, c1, d1, e1, a1, buffer_[ 1], 13, k1); + Subround(G, a1, b1, c1, d1, e1, buffer_[10], 11, k1); + Subround(G, e1, a1, b1, c1, d1, buffer_[ 6], 9, k1); + Subround(G, d1, e1, a1, b1, c1, buffer_[15], 7, k1); + Subround(G, c1, d1, e1, a1, b1, buffer_[ 3], 15, k1); + Subround(G, b1, c1, d1, e1, a1, buffer_[12], 7, k1); + Subround(G, a1, b1, c1, d1, e1, buffer_[ 0], 12, k1); + Subround(G, e1, a1, b1, c1, d1, buffer_[ 9], 15, k1); + Subround(G, d1, e1, a1, b1, c1, buffer_[ 5], 9, k1); + Subround(G, c1, d1, e1, a1, b1, buffer_[ 2], 11, k1); + Subround(G, b1, c1, d1, e1, a1, buffer_[14], 7, k1); + Subround(G, a1, b1, c1, d1, e1, buffer_[11], 13, k1); + Subround(G, e1, a1, b1, c1, d1, buffer_[ 8], 12, k1); + + Subround(H, d1, e1, a1, b1, c1, buffer_[ 3], 11, k2); + Subround(H, c1, d1, e1, a1, b1, buffer_[10], 13, k2); + Subround(H, b1, c1, d1, e1, a1, buffer_[14], 6, k2); + Subround(H, a1, b1, c1, d1, e1, buffer_[ 4], 7, k2); + Subround(H, e1, a1, b1, c1, d1, buffer_[ 9], 14, k2); + Subround(H, d1, e1, a1, b1, c1, buffer_[15], 9, k2); + Subround(H, c1, d1, e1, a1, b1, buffer_[ 8], 13, k2); + Subround(H, b1, c1, d1, e1, a1, buffer_[ 1], 15, k2); + Subround(H, a1, b1, c1, d1, e1, buffer_[ 2], 14, k2); + Subround(H, e1, a1, b1, c1, d1, buffer_[ 7], 8, k2); + Subround(H, d1, e1, a1, b1, c1, buffer_[ 0], 13, k2); + Subround(H, c1, d1, e1, a1, b1, buffer_[ 6], 6, k2); + Subround(H, b1, c1, d1, e1, a1, buffer_[13], 5, k2); + Subround(H, a1, b1, c1, d1, e1, buffer_[11], 12, k2); + Subround(H, e1, a1, b1, c1, d1, buffer_[ 5], 7, k2); + Subround(H, d1, e1, a1, b1, c1, buffer_[12], 5, k2); + + Subround(I, c1, d1, e1, a1, b1, buffer_[ 1], 11, k3); + Subround(I, b1, c1, d1, e1, a1, buffer_[ 9], 12, k3); + Subround(I, a1, b1, c1, d1, e1, buffer_[11], 14, k3); + Subround(I, e1, a1, b1, c1, d1, buffer_[10], 15, k3); + Subround(I, d1, e1, a1, b1, c1, buffer_[ 0], 14, k3); + Subround(I, c1, d1, e1, a1, b1, buffer_[ 8], 15, k3); + Subround(I, b1, c1, d1, e1, a1, buffer_[12], 9, k3); + Subround(I, a1, b1, c1, d1, e1, buffer_[ 4], 8, k3); + Subround(I, e1, a1, b1, c1, d1, buffer_[13], 9, k3); + Subround(I, d1, e1, a1, b1, c1, buffer_[ 3], 14, k3); + Subround(I, c1, d1, e1, a1, b1, buffer_[ 7], 5, k3); + Subround(I, b1, c1, d1, e1, a1, buffer_[15], 6, k3); + Subround(I, a1, b1, c1, d1, e1, buffer_[14], 8, k3); + Subround(I, e1, a1, b1, c1, d1, buffer_[ 5], 6, k3); + Subround(I, d1, e1, a1, b1, c1, buffer_[ 6], 5, k3); + Subround(I, c1, d1, e1, a1, b1, buffer_[ 2], 12, k3); + + Subround(J, b1, c1, d1, e1, a1, buffer_[ 4], 9, k4); + Subround(J, a1, b1, c1, d1, e1, buffer_[ 0], 15, k4); + Subround(J, e1, a1, b1, c1, d1, buffer_[ 5], 5, k4); + Subround(J, d1, e1, a1, b1, c1, buffer_[ 9], 11, k4); + Subround(J, c1, d1, e1, a1, b1, buffer_[ 7], 6, k4); + Subround(J, b1, c1, d1, e1, a1, buffer_[12], 8, k4); + Subround(J, a1, b1, c1, d1, e1, buffer_[ 2], 13, k4); + Subround(J, e1, a1, b1, c1, d1, buffer_[10], 12, k4); + Subround(J, d1, e1, a1, b1, c1, buffer_[14], 5, k4); + Subround(J, c1, d1, e1, a1, b1, buffer_[ 1], 12, k4); + Subround(J, b1, c1, d1, e1, a1, buffer_[ 3], 13, k4); + Subround(J, a1, b1, c1, d1, e1, buffer_[ 8], 14, k4); + Subround(J, e1, a1, b1, c1, d1, buffer_[11], 11, k4); + Subround(J, d1, e1, a1, b1, c1, buffer_[ 6], 8, k4); + Subround(J, c1, d1, e1, a1, b1, buffer_[15], 5, k4); + Subround(J, b1, c1, d1, e1, a1, buffer_[13], 6, k4); + + Subround(J, a2, b2, c2, d2, e2, buffer_[ 5], 8, k5); + Subround(J, e2, a2, b2, c2, d2, buffer_[14], 9, k5); + Subround(J, d2, e2, a2, b2, c2, buffer_[ 7], 9, k5); + Subround(J, c2, d2, e2, a2, b2, buffer_[ 0], 11, k5); + Subround(J, b2, c2, d2, e2, a2, buffer_[ 9], 13, k5); + Subround(J, a2, b2, c2, d2, e2, buffer_[ 2], 15, k5); + Subround(J, e2, a2, b2, c2, d2, buffer_[11], 15, k5); + Subround(J, d2, e2, a2, b2, c2, buffer_[ 4], 5, k5); + Subround(J, c2, d2, e2, a2, b2, buffer_[13], 7, k5); + Subround(J, b2, c2, d2, e2, a2, buffer_[ 6], 7, k5); + Subround(J, a2, b2, c2, d2, e2, buffer_[15], 8, k5); + Subround(J, e2, a2, b2, c2, d2, buffer_[ 8], 11, k5); + Subround(J, d2, e2, a2, b2, c2, buffer_[ 1], 14, k5); + Subround(J, c2, d2, e2, a2, b2, buffer_[10], 14, k5); + Subround(J, b2, c2, d2, e2, a2, buffer_[ 3], 12, k5); + Subround(J, a2, b2, c2, d2, e2, buffer_[12], 6, k5); + + Subround(I, e2, a2, b2, c2, d2, buffer_[ 6], 9, k6); + Subround(I, d2, e2, a2, b2, c2, buffer_[11], 13, k6); + Subround(I, c2, d2, e2, a2, b2, buffer_[ 3], 15, k6); + Subround(I, b2, c2, d2, e2, a2, buffer_[ 7], 7, k6); + Subround(I, a2, b2, c2, d2, e2, buffer_[ 0], 12, k6); + Subround(I, e2, a2, b2, c2, d2, buffer_[13], 8, k6); + Subround(I, d2, e2, a2, b2, c2, buffer_[ 5], 9, k6); + Subround(I, c2, d2, e2, a2, b2, buffer_[10], 11, k6); + Subround(I, b2, c2, d2, e2, a2, buffer_[14], 7, k6); + Subround(I, a2, b2, c2, d2, e2, buffer_[15], 7, k6); + Subround(I, e2, a2, b2, c2, d2, buffer_[ 8], 12, k6); + Subround(I, d2, e2, a2, b2, c2, buffer_[12], 7, k6); + Subround(I, c2, d2, e2, a2, b2, buffer_[ 4], 6, k6); + Subround(I, b2, c2, d2, e2, a2, buffer_[ 9], 15, k6); + Subround(I, a2, b2, c2, d2, e2, buffer_[ 1], 13, k6); + Subround(I, e2, a2, b2, c2, d2, buffer_[ 2], 11, k6); + + Subround(H, d2, e2, a2, b2, c2, buffer_[15], 9, k7); + Subround(H, c2, d2, e2, a2, b2, buffer_[ 5], 7, k7); + Subround(H, b2, c2, d2, e2, a2, buffer_[ 1], 15, k7); + Subround(H, a2, b2, c2, d2, e2, buffer_[ 3], 11, k7); + Subround(H, e2, a2, b2, c2, d2, buffer_[ 7], 8, k7); + Subround(H, d2, e2, a2, b2, c2, buffer_[14], 6, k7); + Subround(H, c2, d2, e2, a2, b2, buffer_[ 6], 6, k7); + Subround(H, b2, c2, d2, e2, a2, buffer_[ 9], 14, k7); + Subround(H, a2, b2, c2, d2, e2, buffer_[11], 12, k7); + Subround(H, e2, a2, b2, c2, d2, buffer_[ 8], 13, k7); + Subround(H, d2, e2, a2, b2, c2, buffer_[12], 5, k7); + Subround(H, c2, d2, e2, a2, b2, buffer_[ 2], 14, k7); + Subround(H, b2, c2, d2, e2, a2, buffer_[10], 13, k7); + Subround(H, a2, b2, c2, d2, e2, buffer_[ 0], 13, k7); + Subround(H, e2, a2, b2, c2, d2, buffer_[ 4], 7, k7); + Subround(H, d2, e2, a2, b2, c2, buffer_[13], 5, k7); + + Subround(G, c2, d2, e2, a2, b2, buffer_[ 8], 15, k8); + Subround(G, b2, c2, d2, e2, a2, buffer_[ 6], 5, k8); + Subround(G, a2, b2, c2, d2, e2, buffer_[ 4], 8, k8); + Subround(G, e2, a2, b2, c2, d2, buffer_[ 1], 11, k8); + Subround(G, d2, e2, a2, b2, c2, buffer_[ 3], 14, k8); + Subround(G, c2, d2, e2, a2, b2, buffer_[11], 14, k8); + Subround(G, b2, c2, d2, e2, a2, buffer_[15], 6, k8); + Subround(G, a2, b2, c2, d2, e2, buffer_[ 0], 14, k8); + Subround(G, e2, a2, b2, c2, d2, buffer_[ 5], 6, k8); + Subround(G, d2, e2, a2, b2, c2, buffer_[12], 9, k8); + Subround(G, c2, d2, e2, a2, b2, buffer_[ 2], 12, k8); + Subround(G, b2, c2, d2, e2, a2, buffer_[13], 9, k8); + Subround(G, a2, b2, c2, d2, e2, buffer_[ 9], 12, k8); + Subround(G, e2, a2, b2, c2, d2, buffer_[ 7], 5, k8); + Subround(G, d2, e2, a2, b2, c2, buffer_[10], 15, k8); + Subround(G, c2, d2, e2, a2, b2, buffer_[14], 8, k8); + + Subround(F, b2, c2, d2, e2, a2, buffer_[12], 8, k9); + Subround(F, a2, b2, c2, d2, e2, buffer_[15], 5, k9); + Subround(F, e2, a2, b2, c2, d2, buffer_[10], 12, k9); + Subround(F, d2, e2, a2, b2, c2, buffer_[ 4], 9, k9); + Subround(F, c2, d2, e2, a2, b2, buffer_[ 1], 12, k9); + Subround(F, b2, c2, d2, e2, a2, buffer_[ 5], 5, k9); + Subround(F, a2, b2, c2, d2, e2, buffer_[ 8], 14, k9); + Subround(F, e2, a2, b2, c2, d2, buffer_[ 7], 6, k9); + Subround(F, d2, e2, a2, b2, c2, buffer_[ 6], 8, k9); + Subround(F, c2, d2, e2, a2, b2, buffer_[ 2], 13, k9); + Subround(F, b2, c2, d2, e2, a2, buffer_[13], 6, k9); + Subround(F, a2, b2, c2, d2, e2, buffer_[14], 5, k9); + Subround(F, e2, a2, b2, c2, d2, buffer_[ 0], 15, k9); + Subround(F, d2, e2, a2, b2, c2, buffer_[ 3], 13, k9); + Subround(F, c2, d2, e2, a2, b2, buffer_[ 9], 11, k9); + Subround(F, b2, c2, d2, e2, a2, buffer_[11], 11, k9); + + c1 = digest_[1] + c1 + d2; + digest_[1] = digest_[2] + d1 + e2; + digest_[2] = digest_[3] + e1 + a2; + digest_[3] = digest_[4] + a1 + b2; + digest_[4] = digest_[0] + b1 + c2; + digest_[0] = c1; +} + + +#ifdef DO_RIPEMD_ASM + +/* + // F(x ^ y ^ z) + // place in esi +#define ASMF(x, y, z) \ + AS2( mov esi, x ) \ + AS2( xor esi, y ) \ + AS2( xor esi, z ) + + + // G(z ^ (x & (y^z))) + // place in esi +#define ASMG(x, y, z) \ + AS2( mov esi, z ) \ + AS2( xor esi, y ) \ + AS2( and esi, x ) \ + AS2( xor esi, z ) + + + // H(z ^ (x | ~y)) + // place in esi +#define ASMH(x, y, z) \ + AS2( mov esi, y ) \ + AS1( not esi ) \ + AS2( or esi, x ) \ + AS2( xor esi, z ) + + + // I(y ^ (z & (x^y))) + // place in esi +#define ASMI(x, y, z) \ + AS2( mov esi, y ) \ + AS2( xor esi, x ) \ + AS2( and esi, z ) \ + AS2( xor esi, y ) + + + // J(x ^ (y | ~z))) + // place in esi +#define ASMJ(x, y, z) \ + AS2( mov esi, z ) \ + AS1( not esi ) \ + AS2( or esi, y ) \ + AS2( xor esi, x ) + + +// for 160 and 320 +// #define ASMSubround(f, a, b, c, d, e, i, s, k) +// a += f(b, c, d) + data[i] + k; +// a = rotlFixed((word32)a, s) + e; +// c = rotlFixed((word32)c, 10U) + +#define ASMSubround(f, a, b, c, d, e, index, s, k) \ + // a += f(b, c, d) + data[i] + k \ + AS2( mov esp, [edi + index * 4] ) \ + f(b, c, d) \ + AS2( add esi, k ) \ + AS2( add esi, esp ) \ + AS2( add a, esi ) \ + // a = rotlFixed((word32)a, s) + e \ + AS2( rol a, s ) \ + AS2( rol c, 10 ) \ + // c = rotlFixed((word32)c, 10U) \ + AS2( add a, e ) +*/ + + +// combine F into subround w/ setup +// esi already has c, setup for next round when done +// esp already has edi[index], setup for next round when done + +#define ASMSubroundF(a, b, c, d, e, index, s) \ + /* a += (b ^ c ^ d) + data[i] + k */ \ + AS2( xor esi, b ) \ + AS2( add a, [edi + index * 4] ) \ + AS2( xor esi, d ) \ + AS2( add a, esi ) \ + /* a = rotlFixed((word32)a, s) + e */ \ + AS2( mov esi, b ) \ + AS2( rol a, s ) \ + /* c = rotlFixed((word32)c, 10U) */ \ + AS2( rol c, 10 ) \ + AS2( add a, e ) + + +// combine G into subround w/ setup +// esi already has c, setup for next round when done +// esp already has edi[index], setup for next round when done + +#define ASMSubroundG(a, b, c, d, e, index, s, k) \ + /* a += (d ^ (b & (c^d))) + data[i] + k */ \ + AS2( xor esi, d ) \ + AS2( and esi, b ) \ + AS2( add a, [edi + index * 4] ) \ + AS2( xor esi, d ) \ + AS2( lea a, [esi + a + k] ) \ + /* a = rotlFixed((word32)a, s) + e */ \ + AS2( mov esi, b ) \ + AS2( rol a, s ) \ + /* c = rotlFixed((word32)c, 10U) */ \ + AS2( rol c, 10 ) \ + AS2( add a, e ) + + +// combine H into subround w/ setup +// esi already has c, setup for next round when done +// esp already has edi[index], setup for next round when done + +#define ASMSubroundH(a, b, c, d, e, index, s, k) \ + /* a += (d ^ (b | ~c)) + data[i] + k */ \ + AS1( not esi ) \ + AS2( or esi, b ) \ + AS2( add a, [edi + index * 4] ) \ + AS2( xor esi, d ) \ + AS2( lea a, [esi + a + k] ) \ + /* a = rotlFixed((word32)a, s) + e */ \ + AS2( mov esi, b ) \ + AS2( rol a, s ) \ + /* c = rotlFixed((word32)c, 10U) */ \ + AS2( rol c, 10 ) \ + AS2( add a, e ) + + +// combine I into subround w/ setup +// esi already has c, setup for next round when done +// esp already has edi[index], setup for next round when done + +#define ASMSubroundI(a, b, c, d, e, index, s, k) \ + /* a += (c ^ (d & (b^c))) + data[i] + k */ \ + AS2( xor esi, b ) \ + AS2( and esi, d ) \ + AS2( add a, [edi + index * 4] ) \ + AS2( xor esi, c ) \ + AS2( lea a, [esi + a + k] ) \ + /* a = rotlFixed((word32)a, s) + e */ \ + AS2( mov esi, b ) \ + AS2( rol a, s ) \ + /* c = rotlFixed((word32)c, 10U) */ \ + AS2( rol c, 10 ) \ + AS2( add a, e ) + + +// combine J into subround w/ setup +// esi already has d, setup for next round when done +// esp already has edi[index], setup for next round when done + +#define ASMSubroundJ(a, b, c, d, e, index, s, k) \ + /* a += (b ^ (c | ~d))) + data[i] + k */ \ + AS1( not esi ) \ + AS2( or esi, c ) \ + /* c = rotlFixed((word32)c, 10U) */ \ + AS2( add a, [edi + index * 4] ) \ + AS2( xor esi, b ) \ + AS2( rol c, 10 ) \ + AS2( lea a, [esi + a + k] ) \ + /* a = rotlFixed((word32)a, s) + e */ \ + AS2( rol a, s ) \ + AS2( mov esi, c ) \ + AS2( add a, e ) + + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void RIPEMD160::AsmTransform(const byte* data, word32 times) +{ +#ifdef __GNUC__ + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + + #define PROLOG() \ + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" + #define EPILOG() \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (data), "d" (times) \ + : "%esi", "%eax", "memory", "cc" \ + ); + +#else + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + + #define PROLOG() \ + AS1( push ebp ) \ + AS2( mov ebp, esp ) \ + AS2( movd mm3, edi ) \ + AS2( movd mm4, ebx ) \ + AS2( movd mm5, esi ) \ + AS2( movd mm6, ebp ) \ + AS2( mov edi, DWORD PTR [ebp + 8] ) \ + AS2( mov edx, DWORD PTR [ebp + 12] ) + + #define EPILOG() \ + AS2( movd ebp, mm6 ) \ + AS2( movd esi, mm5 ) \ + AS2( movd ebx, mm4 ) \ + AS2( movd edi, mm3 ) \ + AS2( mov esp, ebp ) \ + AS1( pop ebp ) \ + AS1( emms ) \ + AS1( ret 8 ) + +#endif + + PROLOG() + + #ifdef OLD_GCC_OFFSET + AS2( lea esi, [ecx + 20] ) // digest_[0] + #else + AS2( lea esi, [ecx + 16] ) // digest_[0] + #endif + + AS2( sub esp, 24 ) // make room for tmp a1 - e1 + AS2( movd mm1, esi ) // store digest_ + +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif + + AS2( movd mm2, edx ) // store times_ + + AS2( mov eax, [esi] ) // a1 + AS2( mov ebx, [esi + 4] ) // b1 + AS2( mov ecx, [esi + 8] ) // c1 + AS2( mov edx, [esi + 12] ) // d1 + AS2( mov ebp, [esi + 16] ) // e1 + + // setup + AS2( mov esi, ecx ) + + ASMSubroundF( eax, ebx, ecx, edx, ebp, 0, 11) + ASMSubroundF( ebp, eax, ebx, ecx, edx, 1, 14) + ASMSubroundF( edx, ebp, eax, ebx, ecx, 2, 15) + ASMSubroundF( ecx, edx, ebp, eax, ebx, 3, 12) + ASMSubroundF( ebx, ecx, edx, ebp, eax, 4, 5) + ASMSubroundF( eax, ebx, ecx, edx, ebp, 5, 8) + ASMSubroundF( ebp, eax, ebx, ecx, edx, 6, 7) + ASMSubroundF( edx, ebp, eax, ebx, ecx, 7, 9) + ASMSubroundF( ecx, edx, ebp, eax, ebx, 8, 11) + ASMSubroundF( ebx, ecx, edx, ebp, eax, 9, 13) + ASMSubroundF( eax, ebx, ecx, edx, ebp, 10, 14) + ASMSubroundF( ebp, eax, ebx, ecx, edx, 11, 15) + ASMSubroundF( edx, ebp, eax, ebx, ecx, 12, 6) + ASMSubroundF( ecx, edx, ebp, eax, ebx, 13, 7) + ASMSubroundF( ebx, ecx, edx, ebp, eax, 14, 9) + ASMSubroundF( eax, ebx, ecx, edx, ebp, 15, 8) + + ASMSubroundG( ebp, eax, ebx, ecx, edx, 7, 7, k1) + ASMSubroundG( edx, ebp, eax, ebx, ecx, 4, 6, k1) + ASMSubroundG( ecx, edx, ebp, eax, ebx, 13, 8, k1) + ASMSubroundG( ebx, ecx, edx, ebp, eax, 1, 13, k1) + ASMSubroundG( eax, ebx, ecx, edx, ebp, 10, 11, k1) + ASMSubroundG( ebp, eax, ebx, ecx, edx, 6, 9, k1) + ASMSubroundG( edx, ebp, eax, ebx, ecx, 15, 7, k1) + ASMSubroundG( ecx, edx, ebp, eax, ebx, 3, 15, k1) + ASMSubroundG( ebx, ecx, edx, ebp, eax, 12, 7, k1) + ASMSubroundG( eax, ebx, ecx, edx, ebp, 0, 12, k1) + ASMSubroundG( ebp, eax, ebx, ecx, edx, 9, 15, k1) + ASMSubroundG( edx, ebp, eax, ebx, ecx, 5, 9, k1) + ASMSubroundG( ecx, edx, ebp, eax, ebx, 2, 11, k1) + ASMSubroundG( ebx, ecx, edx, ebp, eax, 14, 7, k1) + ASMSubroundG( eax, ebx, ecx, edx, ebp, 11, 13, k1) + ASMSubroundG( ebp, eax, ebx, ecx, edx, 8, 12, k1) + + ASMSubroundH( edx, ebp, eax, ebx, ecx, 3, 11, k2) + ASMSubroundH( ecx, edx, ebp, eax, ebx, 10, 13, k2) + ASMSubroundH( ebx, ecx, edx, ebp, eax, 14, 6, k2) + ASMSubroundH( eax, ebx, ecx, edx, ebp, 4, 7, k2) + ASMSubroundH( ebp, eax, ebx, ecx, edx, 9, 14, k2) + ASMSubroundH( edx, ebp, eax, ebx, ecx, 15, 9, k2) + ASMSubroundH( ecx, edx, ebp, eax, ebx, 8, 13, k2) + ASMSubroundH( ebx, ecx, edx, ebp, eax, 1, 15, k2) + ASMSubroundH( eax, ebx, ecx, edx, ebp, 2, 14, k2) + ASMSubroundH( ebp, eax, ebx, ecx, edx, 7, 8, k2) + ASMSubroundH( edx, ebp, eax, ebx, ecx, 0, 13, k2) + ASMSubroundH( ecx, edx, ebp, eax, ebx, 6, 6, k2) + ASMSubroundH( ebx, ecx, edx, ebp, eax, 13, 5, k2) + ASMSubroundH( eax, ebx, ecx, edx, ebp, 11, 12, k2) + ASMSubroundH( ebp, eax, ebx, ecx, edx, 5, 7, k2) + ASMSubroundH( edx, ebp, eax, ebx, ecx, 12, 5, k2) + + ASMSubroundI( ecx, edx, ebp, eax, ebx, 1, 11, k3) + ASMSubroundI( ebx, ecx, edx, ebp, eax, 9, 12, k3) + ASMSubroundI( eax, ebx, ecx, edx, ebp, 11, 14, k3) + ASMSubroundI( ebp, eax, ebx, ecx, edx, 10, 15, k3) + ASMSubroundI( edx, ebp, eax, ebx, ecx, 0, 14, k3) + ASMSubroundI( ecx, edx, ebp, eax, ebx, 8, 15, k3) + ASMSubroundI( ebx, ecx, edx, ebp, eax, 12, 9, k3) + ASMSubroundI( eax, ebx, ecx, edx, ebp, 4, 8, k3) + ASMSubroundI( ebp, eax, ebx, ecx, edx, 13, 9, k3) + ASMSubroundI( edx, ebp, eax, ebx, ecx, 3, 14, k3) + ASMSubroundI( ecx, edx, ebp, eax, ebx, 7, 5, k3) + ASMSubroundI( ebx, ecx, edx, ebp, eax, 15, 6, k3) + ASMSubroundI( eax, ebx, ecx, edx, ebp, 14, 8, k3) + ASMSubroundI( ebp, eax, ebx, ecx, edx, 5, 6, k3) + ASMSubroundI( edx, ebp, eax, ebx, ecx, 6, 5, k3) + ASMSubroundI( ecx, edx, ebp, eax, ebx, 2, 12, k3) + + // setup + AS2( mov esi, ebp ) + + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 4, 9, k4) + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 0, 15, k4) + ASMSubroundJ( ebp, eax, ebx, ecx, edx, 5, 5, k4) + ASMSubroundJ( edx, ebp, eax, ebx, ecx, 9, 11, k4) + ASMSubroundJ( ecx, edx, ebp, eax, ebx, 7, 6, k4) + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 12, 8, k4) + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 2, 13, k4) + ASMSubroundJ( ebp, eax, ebx, ecx, edx, 10, 12, k4) + ASMSubroundJ( edx, ebp, eax, ebx, ecx, 14, 5, k4) + ASMSubroundJ( ecx, edx, ebp, eax, ebx, 1, 12, k4) + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 3, 13, k4) + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 8, 14, k4) + ASMSubroundJ( ebp, eax, ebx, ecx, edx, 11, 11, k4) + ASMSubroundJ( edx, ebp, eax, ebx, ecx, 6, 8, k4) + ASMSubroundJ( ecx, edx, ebp, eax, ebx, 15, 5, k4) + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 13, 6, k4) + + // store a1 - e1 on stack + AS2( movd esi, mm1 ) // digest_ + + AS2( mov [esp], eax ) + AS2( mov [esp + 4], ebx ) + AS2( mov [esp + 8], ecx ) + AS2( mov [esp + 12], edx ) + AS2( mov [esp + 16], ebp ) + + AS2( mov eax, [esi] ) // a2 + AS2( mov ebx, [esi + 4] ) // b2 + AS2( mov ecx, [esi + 8] ) // c2 + AS2( mov edx, [esi + 12] ) // d2 + AS2( mov ebp, [esi + 16] ) // e2 + + + // setup + AS2( mov esi, edx ) + + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 5, 8, k5) + ASMSubroundJ( ebp, eax, ebx, ecx, edx, 14, 9, k5) + ASMSubroundJ( edx, ebp, eax, ebx, ecx, 7, 9, k5) + ASMSubroundJ( ecx, edx, ebp, eax, ebx, 0, 11, k5) + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 9, 13, k5) + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 2, 15, k5) + ASMSubroundJ( ebp, eax, ebx, ecx, edx, 11, 15, k5) + ASMSubroundJ( edx, ebp, eax, ebx, ecx, 4, 5, k5) + ASMSubroundJ( ecx, edx, ebp, eax, ebx, 13, 7, k5) + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 6, 7, k5) + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 15, 8, k5) + ASMSubroundJ( ebp, eax, ebx, ecx, edx, 8, 11, k5) + ASMSubroundJ( edx, ebp, eax, ebx, ecx, 1, 14, k5) + ASMSubroundJ( ecx, edx, ebp, eax, ebx, 10, 14, k5) + ASMSubroundJ( ebx, ecx, edx, ebp, eax, 3, 12, k5) + ASMSubroundJ( eax, ebx, ecx, edx, ebp, 12, 6, k5) + + // setup + AS2( mov esi, ebx ) + + ASMSubroundI( ebp, eax, ebx, ecx, edx, 6, 9, k6) + ASMSubroundI( edx, ebp, eax, ebx, ecx, 11, 13, k6) + ASMSubroundI( ecx, edx, ebp, eax, ebx, 3, 15, k6) + ASMSubroundI( ebx, ecx, edx, ebp, eax, 7, 7, k6) + ASMSubroundI( eax, ebx, ecx, edx, ebp, 0, 12, k6) + ASMSubroundI( ebp, eax, ebx, ecx, edx, 13, 8, k6) + ASMSubroundI( edx, ebp, eax, ebx, ecx, 5, 9, k6) + ASMSubroundI( ecx, edx, ebp, eax, ebx, 10, 11, k6) + ASMSubroundI( ebx, ecx, edx, ebp, eax, 14, 7, k6) + ASMSubroundI( eax, ebx, ecx, edx, ebp, 15, 7, k6) + ASMSubroundI( ebp, eax, ebx, ecx, edx, 8, 12, k6) + ASMSubroundI( edx, ebp, eax, ebx, ecx, 12, 7, k6) + ASMSubroundI( ecx, edx, ebp, eax, ebx, 4, 6, k6) + ASMSubroundI( ebx, ecx, edx, ebp, eax, 9, 15, k6) + ASMSubroundI( eax, ebx, ecx, edx, ebp, 1, 13, k6) + ASMSubroundI( ebp, eax, ebx, ecx, edx, 2, 11, k6) + + ASMSubroundH( edx, ebp, eax, ebx, ecx, 15, 9, k7) + ASMSubroundH( ecx, edx, ebp, eax, ebx, 5, 7, k7) + ASMSubroundH( ebx, ecx, edx, ebp, eax, 1, 15, k7) + ASMSubroundH( eax, ebx, ecx, edx, ebp, 3, 11, k7) + ASMSubroundH( ebp, eax, ebx, ecx, edx, 7, 8, k7) + ASMSubroundH( edx, ebp, eax, ebx, ecx, 14, 6, k7) + ASMSubroundH( ecx, edx, ebp, eax, ebx, 6, 6, k7) + ASMSubroundH( ebx, ecx, edx, ebp, eax, 9, 14, k7) + ASMSubroundH( eax, ebx, ecx, edx, ebp, 11, 12, k7) + ASMSubroundH( ebp, eax, ebx, ecx, edx, 8, 13, k7) + ASMSubroundH( edx, ebp, eax, ebx, ecx, 12, 5, k7) + ASMSubroundH( ecx, edx, ebp, eax, ebx, 2, 14, k7) + ASMSubroundH( ebx, ecx, edx, ebp, eax, 10, 13, k7) + ASMSubroundH( eax, ebx, ecx, edx, ebp, 0, 13, k7) + ASMSubroundH( ebp, eax, ebx, ecx, edx, 4, 7, k7) + ASMSubroundH( edx, ebp, eax, ebx, ecx, 13, 5, k7) + + ASMSubroundG( ecx, edx, ebp, eax, ebx, 8, 15, k8) + ASMSubroundG( ebx, ecx, edx, ebp, eax, 6, 5, k8) + ASMSubroundG( eax, ebx, ecx, edx, ebp, 4, 8, k8) + ASMSubroundG( ebp, eax, ebx, ecx, edx, 1, 11, k8) + ASMSubroundG( edx, ebp, eax, ebx, ecx, 3, 14, k8) + ASMSubroundG( ecx, edx, ebp, eax, ebx, 11, 14, k8) + ASMSubroundG( ebx, ecx, edx, ebp, eax, 15, 6, k8) + ASMSubroundG( eax, ebx, ecx, edx, ebp, 0, 14, k8) + ASMSubroundG( ebp, eax, ebx, ecx, edx, 5, 6, k8) + ASMSubroundG( edx, ebp, eax, ebx, ecx, 12, 9, k8) + ASMSubroundG( ecx, edx, ebp, eax, ebx, 2, 12, k8) + ASMSubroundG( ebx, ecx, edx, ebp, eax, 13, 9, k8) + ASMSubroundG( eax, ebx, ecx, edx, ebp, 9, 12, k8) + ASMSubroundG( ebp, eax, ebx, ecx, edx, 7, 5, k8) + ASMSubroundG( edx, ebp, eax, ebx, ecx, 10, 15, k8) + ASMSubroundG( ecx, edx, ebp, eax, ebx, 14, 8, k8) + + ASMSubroundF( ebx, ecx, edx, ebp, eax, 12, 8) + ASMSubroundF( eax, ebx, ecx, edx, ebp, 15, 5) + ASMSubroundF( ebp, eax, ebx, ecx, edx, 10, 12) + ASMSubroundF( edx, ebp, eax, ebx, ecx, 4, 9) + ASMSubroundF( ecx, edx, ebp, eax, ebx, 1, 12) + ASMSubroundF( ebx, ecx, edx, ebp, eax, 5, 5) + ASMSubroundF( eax, ebx, ecx, edx, ebp, 8, 14) + ASMSubroundF( ebp, eax, ebx, ecx, edx, 7, 6) + ASMSubroundF( edx, ebp, eax, ebx, ecx, 6, 8) + ASMSubroundF( ecx, edx, ebp, eax, ebx, 2, 13) + ASMSubroundF( ebx, ecx, edx, ebp, eax, 13, 6) + ASMSubroundF( eax, ebx, ecx, edx, ebp, 14, 5) + ASMSubroundF( ebp, eax, ebx, ecx, edx, 0, 15) + ASMSubroundF( edx, ebp, eax, ebx, ecx, 3, 13) + ASMSubroundF( ecx, edx, ebp, eax, ebx, 9, 11) + ASMSubroundF( ebx, ecx, edx, ebp, eax, 11, 11) + + // advance data and store for next round + AS2( add edi, 64 ) + AS2( movd esi, mm1 ) // digest_ + AS2( movd mm0, edi ) // store + + // now edi as tmp + + // c1 = digest_[1] + c1 + d2; + AS2( add [esp + 8], edx ) // + d2 + AS2( mov edi, [esi + 4] ) // digest_[1] + AS2( add [esp + 8], edi ) + + // digest_[1] = digest_[2] + d1 + e2; + AS2( mov [esi + 4], ebp ) // e2 + AS2( mov edi, [esp + 12] ) // d1 + AS2( add edi, [esi + 8] ) // digest_[2] + AS2( add [esi + 4], edi ) + + // digest_[2] = digest_[3] + e1 + a2; + AS2( mov [esi + 8], eax ) // a2 + AS2( mov edi, [esp + 16] ) // e1 + AS2( add edi, [esi + 12] ) // digest_[3] + AS2( add [esi + 8], edi ) + + // digest_[3] = digest_[4] + a1 + b2; + AS2( mov [esi + 12], ebx ) // b2 + AS2( mov edi, [esp] ) // a1 + AS2( add edi, [esi + 16] ) // digest_[4] + AS2( add [esi + 12], edi ) + + // digest_[4] = digest_[0] + b1 + c2; + AS2( mov [esi + 16], ecx ) // c2 + AS2( mov edi, [esp + 4] ) // b1 + AS2( add edi, [esi] ) // digest_[0] + AS2( add [esi + 16], edi ) + + // digest_[0] = c1; + AS2( mov edi, [esp + 8] ) // c1 + AS2( mov [esi], edi ) + + // setup for loop back + AS2( movd edx, mm2 ) // times + AS2( movd edi, mm0 ) // data, already advanced + AS1( dec edx ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif + + // inline adjust + AS2( add esp, 24 ) // fix room on stack + + EPILOG() +} + + +#endif // DO_RIPEMD_ASM + + +} // namespace TaoCrypt diff --git a/mysql/extra/yassl/taocrypt/src/rsa.cpp b/mysql/extra/yassl/taocrypt/src/rsa.cpp new file mode 100644 index 0000000..73f678e --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/rsa.cpp @@ -0,0 +1,215 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's rsa.cpp from CryptoPP */ + +#include "runtime.hpp" +#include "rsa.hpp" +#include "asn.hpp" +#include "modarith.hpp" + + + +namespace TaoCrypt { + + +Integer RSA_PublicKey::ApplyFunction(const Integer& x) const +{ + return a_exp_b_mod_c(x, e_, n_); +} + + +RSA_PublicKey::RSA_PublicKey(Source& source) +{ + Initialize(source); +} + + +void RSA_PublicKey::Initialize(Source& source) +{ + RSA_Public_Decoder decoder(source); + decoder.Decode(*this); +} + + +Integer RSA_PrivateKey::CalculateInverse(RandomNumberGenerator& rng, + const Integer& x) const +{ + ModularArithmetic modn(n_); + + Integer r(rng, Integer::One(), n_ - Integer::One()); + Integer re = modn.Exponentiate(r, e_); + re = modn.Multiply(re, x); // blind + + // here we follow the notation of PKCS #1 and let u=q inverse mod p + // but in ModRoot, u=p inverse mod q, so we reverse the order of p and q + + Integer y = ModularRoot(re, dq_, dp_, q_, p_, u_); + y = modn.Divide(y, r); // unblind + + return y; +} + + +RSA_PrivateKey::RSA_PrivateKey(Source& source) +{ + Initialize(source); +} + + +void RSA_PrivateKey::Initialize(Source& source) +{ + RSA_Private_Decoder decoder(source); + decoder.Decode(*this); +} + + +void RSA_BlockType2::Pad(const byte *input, word32 inputLen, byte *pkcsBlock, + word32 pkcsBlockLen, RandomNumberGenerator& rng) const +{ + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + pkcsBlock[0] = 0; + pkcsBlock++; + } + pkcsBlockLen /= 8; + + pkcsBlock[0] = 2; // block type 2 + + // pad with non-zero random bytes + word32 padLen = pkcsBlockLen - inputLen - 1; + rng.GenerateBlock(&pkcsBlock[1], padLen); + for (word32 i = 1; i < padLen; i++) + if (pkcsBlock[i] == 0) pkcsBlock[i] = 0x01; + + pkcsBlock[pkcsBlockLen-inputLen-1] = 0; // separator + memcpy(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen); +} + +word32 RSA_BlockType2::UnPad(const byte *pkcsBlock, unsigned int pkcsBlockLen, + byte *output) const +{ + bool invalid = false; + unsigned int maxOutputLen = SaturatingSubtract(pkcsBlockLen / 8, 10U); + + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + invalid = (pkcsBlock[0] != 0) || invalid; + pkcsBlock++; + } + pkcsBlockLen /= 8; + + // Require block type 2. + invalid = (pkcsBlock[0] != 2) || invalid; + + // skip past the padding until we find the separator + unsigned i=1; + while (i maxOutputLen) || invalid; + + if (invalid) + return 0; + + memcpy (output, pkcsBlock+i, outputLen); + return outputLen; +} + + +void RSA_BlockType1::Pad(const byte* input, word32 inputLen, byte* pkcsBlock, + word32 pkcsBlockLen, RandomNumberGenerator&) const +{ + // sanity checks + if (input == NULL || pkcsBlock == NULL) + return; + + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + pkcsBlock[0] = 0; + pkcsBlock++; + } + pkcsBlockLen /= 8; + + pkcsBlock[0] = 1; // block type 1 for SSL + + // pad with 0xff bytes + memset(&pkcsBlock[1], 0xFF, pkcsBlockLen - inputLen - 2); + + pkcsBlock[pkcsBlockLen-inputLen-1] = 0; // separator + memcpy(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen); +} + + +word32 RSA_BlockType1::UnPad(const byte* pkcsBlock, word32 pkcsBlockLen, + byte* output) const +{ + bool invalid = false; + unsigned int maxOutputLen = SaturatingSubtract(pkcsBlockLen / 8, 10U); + + // convert from bit length to byte length + if (pkcsBlockLen % 8 != 0) + { + invalid = (pkcsBlock[0] != 0) || invalid; + pkcsBlock++; + } + pkcsBlockLen /= 8; + + // Require block type 1 for SSL. + invalid = (pkcsBlock[0] != 1) || invalid; + + // skip past the padding until we find the separator + unsigned i=1; + while (i maxOutputLen) || invalid; + + if (invalid) + return 0; + + memcpy(output, pkcsBlock+i, outputLen); + return outputLen; +} + + +word32 SSL_Decrypt(const RSA_PublicKey& key, const byte* sig, byte* plain) +{ + PK_Lengths lengths(key.GetModulus()); + + ByteBlock paddedBlock(BitsToBytes(lengths.PaddedBlockBitLength())); + Integer x = key.ApplyFunction(Integer(sig, + lengths.FixedCiphertextLength())); + if (x.ByteCount() > paddedBlock.size()) + x = Integer::Zero(); + x.Encode(paddedBlock.get_buffer(), paddedBlock.size()); + return RSA_BlockType1().UnPad(paddedBlock.get_buffer(), + lengths.PaddedBlockBitLength(), plain); +} + + +} // namespace diff --git a/mysql/extra/yassl/taocrypt/src/sha.cpp b/mysql/extra/yassl/taocrypt/src/sha.cpp new file mode 100644 index 0000000..4206f7f --- /dev/null +++ b/mysql/extra/yassl/taocrypt/src/sha.cpp @@ -0,0 +1,1033 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ + +/* based on Wei Dai's sha.cpp from CryptoPP */ + +#include "runtime.hpp" +#include +#include "sha.hpp" +#ifdef USE_SYS_STL + #include +#else + #include "algorithm.hpp" +#endif + + +namespace STL = STL_NAMESPACE; + + + +namespace TaoCrypt { + +#define blk0(i) (W[i] = buffer_[i]) +#define blk1(i) (W[i&15] = \ + rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1)) + +#define f1(x,y,z) (z^(x &(y^z))) +#define f2(x,y,z) (x^y^z) +#define f3(x,y,z) ((x&y)|(z&(x|y))) +#define f4(x,y,z) (x^y^z) + +// (R0+R1), R2, R3, R4 are the different operations used in SHA1 +#define R0(v,w,x,y,z,i) z+= f1(w,x,y) + blk0(i) + 0x5A827999+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R1(v,w,x,y,z,i) z+= f1(w,x,y) + blk1(i) + 0x5A827999+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R2(v,w,x,y,z,i) z+= f2(w,x,y) + blk1(i) + 0x6ED9EBA1+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R3(v,w,x,y,z,i) z+= f3(w,x,y) + blk1(i) + 0x8F1BBCDC+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R4(v,w,x,y,z,i) z+= f4(w,x,y) + blk1(i) + 0xCA62C1D6+ \ + rotlFixed(v,5); w = rotlFixed(w,30); + + +void SHA::Init() +{ + digest_[0] = 0x67452301L; + digest_[1] = 0xEFCDAB89L; + digest_[2] = 0x98BADCFEL; + digest_[3] = 0x10325476L; + digest_[4] = 0xC3D2E1F0L; + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + +void SHA256::Init() +{ + digest_[0] = 0x6A09E667L; + digest_[1] = 0xBB67AE85L; + digest_[2] = 0x3C6EF372L; + digest_[3] = 0xA54FF53AL; + digest_[4] = 0x510E527FL; + digest_[5] = 0x9B05688CL; + digest_[6] = 0x1F83D9ABL; + digest_[7] = 0x5BE0CD19L; + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + + +void SHA224::Init() +{ + digest_[0] = 0xc1059ed8; + digest_[1] = 0x367cd507; + digest_[2] = 0x3070dd17; + digest_[3] = 0xf70e5939; + digest_[4] = 0xffc00b31; + digest_[5] = 0x68581511; + digest_[6] = 0x64f98fa7; + digest_[7] = 0xbefa4fa4; + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + + +#ifdef WORD64_AVAILABLE + +void SHA512::Init() +{ + digest_[0] = W64LIT(0x6a09e667f3bcc908); + digest_[1] = W64LIT(0xbb67ae8584caa73b); + digest_[2] = W64LIT(0x3c6ef372fe94f82b); + digest_[3] = W64LIT(0xa54ff53a5f1d36f1); + digest_[4] = W64LIT(0x510e527fade682d1); + digest_[5] = W64LIT(0x9b05688c2b3e6c1f); + digest_[6] = W64LIT(0x1f83d9abfb41bd6b); + digest_[7] = W64LIT(0x5be0cd19137e2179); + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + + +void SHA384::Init() +{ + digest_[0] = W64LIT(0xcbbb9d5dc1059ed8); + digest_[1] = W64LIT(0x629a292a367cd507); + digest_[2] = W64LIT(0x9159015a3070dd17); + digest_[3] = W64LIT(0x152fecd8f70e5939); + digest_[4] = W64LIT(0x67332667ffc00b31); + digest_[5] = W64LIT(0x8eb44a8768581511); + digest_[6] = W64LIT(0xdb0c2e0d64f98fa7); + digest_[7] = W64LIT(0x47b5481dbefa4fa4); + + buffLen_ = 0; + loLen_ = 0; + hiLen_ = 0; +} + +#endif // WORD64_AVAILABLE + + +SHA::SHA(const SHA& that) : HASHwithTransform(DIGEST_SIZE / sizeof(word32), + BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + + +SHA256::SHA256(const SHA256& that) : HASHwithTransform(DIGEST_SIZE / + sizeof(word32), BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + + +SHA224::SHA224(const SHA224& that) : HASHwithTransform(SHA256::DIGEST_SIZE / + sizeof(word32), BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + + +#ifdef WORD64_AVAILABLE + +SHA512::SHA512(const SHA512& that) : HASH64withTransform(DIGEST_SIZE / + sizeof(word64), BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + + +SHA384::SHA384(const SHA384& that) : HASH64withTransform(SHA512::DIGEST_SIZE / + sizeof(word64), BLOCK_SIZE) +{ + buffLen_ = that.buffLen_; + loLen_ = that.loLen_; + hiLen_ = that.hiLen_; + + memcpy(digest_, that.digest_, DIGEST_SIZE); + memcpy(buffer_, that.buffer_, BLOCK_SIZE); +} + +#endif // WORD64_AVAILABLE + + +SHA& SHA::operator= (const SHA& that) +{ + SHA tmp(that); + Swap(tmp); + + return *this; +} + + +SHA256& SHA256::operator= (const SHA256& that) +{ + SHA256 tmp(that); + Swap(tmp); + + return *this; +} + + +SHA224& SHA224::operator= (const SHA224& that) +{ + SHA224 tmp(that); + Swap(tmp); + + return *this; +} + + +#ifdef WORD64_AVAILABLE + +SHA512& SHA512::operator= (const SHA512& that) +{ + SHA512 tmp(that); + Swap(tmp); + + return *this; +} + + +SHA384& SHA384::operator= (const SHA384& that) +{ + SHA384 tmp(that); + Swap(tmp); + + return *this; +} + +#endif // WORD64_AVAILABLE + + +void SHA::Swap(SHA& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +void SHA256::Swap(SHA256& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +void SHA224::Swap(SHA224& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +#ifdef WORD64_AVAILABLE + +void SHA512::Swap(SHA512& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + + +void SHA384::Swap(SHA384& other) +{ + STL::swap(loLen_, other.loLen_); + STL::swap(hiLen_, other.hiLen_); + STL::swap(buffLen_, other.buffLen_); + + memcpy(digest_, other.digest_, DIGEST_SIZE); + memcpy(buffer_, other.buffer_, BLOCK_SIZE); +} + +#endif // WORD64_AVIALABLE + + +#ifdef DO_SHA_ASM + +// Update digest with data of size len +void SHA::Update(const byte* data, word32 len) +{ + if (!isMMX) { + HASHwithTransform::Update(data, len); + return; + } + + byte* local = reinterpret_cast(buffer_); + + // remove buffered data if possible + if (buffLen_) { + word32 add = min(len, BLOCK_SIZE - buffLen_); + memcpy(&local[buffLen_], data, add); + + buffLen_ += add; + data += add; + len -= add; + + if (buffLen_ == BLOCK_SIZE) { + ByteReverse(local, local, BLOCK_SIZE); + Transform(); + AddLength(BLOCK_SIZE); + buffLen_ = 0; + } + } + + // all at once for asm + if (buffLen_ == 0) { + word32 times = len / BLOCK_SIZE; + if (times) { + AsmTransform(data, times); + const word32 add = BLOCK_SIZE * times; + AddLength(add); + len -= add; + data += add; + } + } + + // cache any data left + if (len) { + memcpy(&local[buffLen_], data, len); + buffLen_ += len; + } +} + +#endif // DO_SHA_ASM + + +void SHA::Transform() +{ + word32 W[BLOCK_SIZE / sizeof(word32)]; + + // Copy context->state[] to working vars + word32 a = digest_[0]; + word32 b = digest_[1]; + word32 c = digest_[2]; + word32 d = digest_[3]; + word32 e = digest_[4]; + + // 4 rounds of 20 operations each. Loop unrolled. + R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3); + R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7); + R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11); + R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15); + + R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19); + + R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23); + R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27); + R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31); + R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35); + R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39); + + R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43); + R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47); + R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51); + R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55); + R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59); + + R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63); + R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67); + R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71); + R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75); + R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79); + + // Add the working vars back into digest state[] + digest_[0] += a; + digest_[1] += b; + digest_[2] += c; + digest_[3] += d; + digest_[4] += e; + + // Wipe variables + a = b = c = d = e = 0; + memset(W, 0, sizeof(W)); +} + + +#define blk2(i) (W[i&15]+=s1(W[(i-2)&15])+W[(i-7)&15]+s0(W[(i-15)&15])) + +#define Ch(x,y,z) (z^(x&(y^z))) +#define Maj(x,y,z) ((x&y)|(z&(x|y))) + +#define a(i) T[(0-i)&7] +#define b(i) T[(1-i)&7] +#define c(i) T[(2-i)&7] +#define d(i) T[(3-i)&7] +#define e(i) T[(4-i)&7] +#define f(i) T[(5-i)&7] +#define g(i) T[(6-i)&7] +#define h(i) T[(7-i)&7] + +#define R(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+K[i+j]+(j?blk2(i):blk0(i));\ + d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i)) + +// for SHA256 +#define S0(x) (rotrFixed(x,2)^rotrFixed(x,13)^rotrFixed(x,22)) +#define S1(x) (rotrFixed(x,6)^rotrFixed(x,11)^rotrFixed(x,25)) +#define s0(x) (rotrFixed(x,7)^rotrFixed(x,18)^(x>>3)) +#define s1(x) (rotrFixed(x,17)^rotrFixed(x,19)^(x>>10)) + + +static const word32 K256[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +}; + + +static void Transform256(word32* digest_, word32* buffer_) +{ + const word32* K = K256; + + word32 W[16]; + word32 T[8]; + + // Copy digest to working vars + memcpy(T, digest_, sizeof(T)); + + // 64 operations, partially loop unrolled + for (unsigned int j = 0; j < 64; j += 16) { + R( 0); R( 1); R( 2); R( 3); + R( 4); R( 5); R( 6); R( 7); + R( 8); R( 9); R(10); R(11); + R(12); R(13); R(14); R(15); + } + + // Add the working vars back into digest + digest_[0] += a(0); + digest_[1] += b(0); + digest_[2] += c(0); + digest_[3] += d(0); + digest_[4] += e(0); + digest_[5] += f(0); + digest_[6] += g(0); + digest_[7] += h(0); + + // Wipe variables + memset(W, 0, sizeof(W)); + memset(T, 0, sizeof(T)); +} + + +// undef for 256 +#undef S0 +#undef S1 +#undef s0 +#undef s1 + + +void SHA256::Transform() +{ + Transform256(digest_, buffer_); +} + + +void SHA224::Transform() +{ + Transform256(digest_, buffer_); +} + + +#ifdef WORD64_AVAILABLE + +static const word64 K512[80] = { + W64LIT(0x428a2f98d728ae22), W64LIT(0x7137449123ef65cd), + W64LIT(0xb5c0fbcfec4d3b2f), W64LIT(0xe9b5dba58189dbbc), + W64LIT(0x3956c25bf348b538), W64LIT(0x59f111f1b605d019), + W64LIT(0x923f82a4af194f9b), W64LIT(0xab1c5ed5da6d8118), + W64LIT(0xd807aa98a3030242), W64LIT(0x12835b0145706fbe), + W64LIT(0x243185be4ee4b28c), W64LIT(0x550c7dc3d5ffb4e2), + W64LIT(0x72be5d74f27b896f), W64LIT(0x80deb1fe3b1696b1), + W64LIT(0x9bdc06a725c71235), W64LIT(0xc19bf174cf692694), + W64LIT(0xe49b69c19ef14ad2), W64LIT(0xefbe4786384f25e3), + W64LIT(0x0fc19dc68b8cd5b5), W64LIT(0x240ca1cc77ac9c65), + W64LIT(0x2de92c6f592b0275), W64LIT(0x4a7484aa6ea6e483), + W64LIT(0x5cb0a9dcbd41fbd4), W64LIT(0x76f988da831153b5), + W64LIT(0x983e5152ee66dfab), W64LIT(0xa831c66d2db43210), + W64LIT(0xb00327c898fb213f), W64LIT(0xbf597fc7beef0ee4), + W64LIT(0xc6e00bf33da88fc2), W64LIT(0xd5a79147930aa725), + W64LIT(0x06ca6351e003826f), W64LIT(0x142929670a0e6e70), + W64LIT(0x27b70a8546d22ffc), W64LIT(0x2e1b21385c26c926), + W64LIT(0x4d2c6dfc5ac42aed), W64LIT(0x53380d139d95b3df), + W64LIT(0x650a73548baf63de), W64LIT(0x766a0abb3c77b2a8), + W64LIT(0x81c2c92e47edaee6), W64LIT(0x92722c851482353b), + W64LIT(0xa2bfe8a14cf10364), W64LIT(0xa81a664bbc423001), + W64LIT(0xc24b8b70d0f89791), W64LIT(0xc76c51a30654be30), + W64LIT(0xd192e819d6ef5218), W64LIT(0xd69906245565a910), + W64LIT(0xf40e35855771202a), W64LIT(0x106aa07032bbd1b8), + W64LIT(0x19a4c116b8d2d0c8), W64LIT(0x1e376c085141ab53), + W64LIT(0x2748774cdf8eeb99), W64LIT(0x34b0bcb5e19b48a8), + W64LIT(0x391c0cb3c5c95a63), W64LIT(0x4ed8aa4ae3418acb), + W64LIT(0x5b9cca4f7763e373), W64LIT(0x682e6ff3d6b2b8a3), + W64LIT(0x748f82ee5defb2fc), W64LIT(0x78a5636f43172f60), + W64LIT(0x84c87814a1f0ab72), W64LIT(0x8cc702081a6439ec), + W64LIT(0x90befffa23631e28), W64LIT(0xa4506cebde82bde9), + W64LIT(0xbef9a3f7b2c67915), W64LIT(0xc67178f2e372532b), + W64LIT(0xca273eceea26619c), W64LIT(0xd186b8c721c0c207), + W64LIT(0xeada7dd6cde0eb1e), W64LIT(0xf57d4f7fee6ed178), + W64LIT(0x06f067aa72176fba), W64LIT(0x0a637dc5a2c898a6), + W64LIT(0x113f9804bef90dae), W64LIT(0x1b710b35131c471b), + W64LIT(0x28db77f523047d84), W64LIT(0x32caab7b40c72493), + W64LIT(0x3c9ebe0a15c9bebc), W64LIT(0x431d67c49c100d4c), + W64LIT(0x4cc5d4becb3e42b6), W64LIT(0x597f299cfc657e2a), + W64LIT(0x5fcb6fab3ad6faec), W64LIT(0x6c44198c4a475817) +}; + + +// for SHA512 +#define S0(x) (rotrFixed(x,28)^rotrFixed(x,34)^rotrFixed(x,39)) +#define S1(x) (rotrFixed(x,14)^rotrFixed(x,18)^rotrFixed(x,41)) +#define s0(x) (rotrFixed(x,1)^rotrFixed(x,8)^(x>>7)) +#define s1(x) (rotrFixed(x,19)^rotrFixed(x,61)^(x>>6)) + + +static void Transform512(word64* digest_, word64* buffer_) +{ + const word64* K = K512; + + word64 W[16]; + word64 T[8]; + + // Copy digest to working vars + memcpy(T, digest_, sizeof(T)); + + // 64 operations, partially loop unrolled + for (unsigned int j = 0; j < 80; j += 16) { + R( 0); R( 1); R( 2); R( 3); + R( 4); R( 5); R( 6); R( 7); + R( 8); R( 9); R(10); R(11); + R(12); R(13); R(14); R(15); + } + + // Add the working vars back into digest + + digest_[0] += a(0); + digest_[1] += b(0); + digest_[2] += c(0); + digest_[3] += d(0); + digest_[4] += e(0); + digest_[5] += f(0); + digest_[6] += g(0); + digest_[7] += h(0); + + // Wipe variables + memset(W, 0, sizeof(W)); + memset(T, 0, sizeof(T)); +} + + +void SHA512::Transform() +{ + Transform512(digest_, buffer_); +} + + +void SHA384::Transform() +{ + Transform512(digest_, buffer_); +} + +#endif // WORD64_AVIALABLE + + +#ifdef DO_SHA_ASM + +// f1(x,y,z) (z^(x &(y^z))) +// place in esi +#define ASMf1(x,y,z) \ + AS2( mov esi, y ) \ + AS2( xor esi, z ) \ + AS2( and esi, x ) \ + AS2( xor esi, z ) + + +// R0(v,w,x,y,z,i) = +// z+= f1(w,x,y) + W[i] + 0x5A827999 + rotlFixed(v,5); +// w = rotlFixed(w,30); + +// use esi for f +// use edi as tmp + + +#define ASMR0(v,w,x,y,z,i) \ + AS2( mov esi, x ) \ + AS2( mov edi, [esp + i * 4] ) \ + AS2( xor esi, y ) \ + AS2( and esi, w ) \ + AS2( lea z, [edi + z + 0x5A827999] ) \ + AS2( mov edi, v ) \ + AS2( xor esi, y ) \ + AS2( rol edi, 5 ) \ + AS2( add z, esi ) \ + AS2( rol w, 30 ) \ + AS2( add z, edi ) + + +/* Some macro stuff, but older gas ( < 2,16 ) can't process &, so do by hand + % won't work on gas at all + +#define xstr(s) str(s) +#define str(s) #s + +#define WOFF1(a) ( a & 15) +#define WOFF2(a) ((a + 2) & 15) +#define WOFF3(a) ((a + 8) & 15) +#define WOFF4(a) ((a + 13) & 15) + +#ifdef __GNUC__ + #define WGET1(i) asm("mov esp, [edi - "xstr(WOFF1(i))" * 4] "); + #define WGET2(i) asm("xor esp, [edi - "xstr(WOFF2(i))" * 4] "); + #define WGET3(i) asm("xor esp, [edi - "xstr(WOFF3(i))" * 4] "); + #define WGET4(i) asm("xor esp, [edi - "xstr(WOFF4(i))" * 4] "); + #define WPUT1(i) asm("mov [edi - "xstr(WOFF1(i))" * 4], esp "); +#else + #define WGET1(i) AS2( mov esp, [edi - WOFF1(i) * 4] ) + #define WGET2(i) AS2( xor esp, [edi - WOFF2(i) * 4] ) + #define WGET3(i) AS2( xor esp, [edi - WOFF3(i) * 4] ) + #define WGET4(i) AS2( xor esp, [edi - WOFF4(i) * 4] ) + #define WPUT1(i) AS2( mov [edi - WOFF1(i) * 4], esp ) +#endif +*/ + +// ASMR1 = ASMR0 but use esp for W calcs + +#define ASMR1(v,w,x,y,z,i,W1,W2,W3,W4) \ + AS2( mov edi, [esp + W1 * 4] ) \ + AS2( mov esi, x ) \ + AS2( xor edi, [esp + W2 * 4] ) \ + AS2( xor esi, y ) \ + AS2( xor edi, [esp + W3 * 4] ) \ + AS2( and esi, w ) \ + AS2( xor edi, [esp + W4 * 4] ) \ + AS2( rol edi, 1 ) \ + AS2( xor esi, y ) \ + AS2( mov [esp + W1 * 4], edi ) \ + AS2( lea z, [edi + z + 0x5A827999] ) \ + AS2( mov edi, v ) \ + AS2( rol edi, 5 ) \ + AS2( add z, esi ) \ + AS2( rol w, 30 ) \ + AS2( add z, edi ) + + +// ASMR2 = ASMR1 but f is xor, xor instead + +#define ASMR2(v,w,x,y,z,i,W1,W2,W3,W4) \ + AS2( mov edi, [esp + W1 * 4] ) \ + AS2( mov esi, x ) \ + AS2( xor edi, [esp + W2 * 4] ) \ + AS2( xor esi, y ) \ + AS2( xor edi, [esp + W3 * 4] ) \ + AS2( xor esi, w ) \ + AS2( xor edi, [esp + W4 * 4] ) \ + AS2( rol edi, 1 ) \ + AS2( add z, esi ) \ + AS2( mov [esp + W1 * 4], edi ) \ + AS2( lea z, [edi + z + 0x6ED9EBA1] ) \ + AS2( mov edi, v ) \ + AS2( rol edi, 5 ) \ + AS2( rol w, 30 ) \ + AS2( add z, edi ) + + +// ASMR3 = ASMR2 but f is (x&y)|(z&(x|y)) +// which is (w&x)|(y&(w|x)) + +#define ASMR3(v,w,x,y,z,i,W1,W2,W3,W4) \ + AS2( mov edi, [esp + W1 * 4] ) \ + AS2( mov esi, x ) \ + AS2( xor edi, [esp + W2 * 4] ) \ + AS2( or esi, w ) \ + AS2( xor edi, [esp + W3 * 4] ) \ + AS2( and esi, y ) \ + AS2( xor edi, [esp + W4 * 4] ) \ + AS2( movd mm0, esi ) \ + AS2( rol edi, 1 ) \ + AS2( mov esi, x ) \ + AS2( mov [esp + W1 * 4], edi ) \ + AS2( and esi, w ) \ + AS2( lea z, [edi + z + 0x8F1BBCDC] ) \ + AS2( movd edi, mm0 ) \ + AS2( or esi, edi ) \ + AS2( mov edi, v ) \ + AS2( rol edi, 5 ) \ + AS2( add z, esi ) \ + AS2( rol w, 30 ) \ + AS2( add z, edi ) + + +// ASMR4 = ASMR2 but different constant + +#define ASMR4(v,w,x,y,z,i,W1,W2,W3,W4) \ + AS2( mov edi, [esp + W1 * 4] ) \ + AS2( mov esi, x ) \ + AS2( xor edi, [esp + W2 * 4] ) \ + AS2( xor esi, y ) \ + AS2( xor edi, [esp + W3 * 4] ) \ + AS2( xor esi, w ) \ + AS2( xor edi, [esp + W4 * 4] ) \ + AS2( rol edi, 1 ) \ + AS2( add z, esi ) \ + AS2( mov [esp + W1 * 4], edi ) \ + AS2( lea z, [edi + z + 0xCA62C1D6] ) \ + AS2( mov edi, v ) \ + AS2( rol edi, 5 ) \ + AS2( rol w, 30 ) \ + AS2( add z, edi ) + + +#ifdef _MSC_VER + __declspec(naked) +#else + __attribute__ ((noinline)) +#endif +void SHA::AsmTransform(const byte* data, word32 times) +{ +#ifdef __GNUC__ + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" + + #define PROLOG() \ + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" + #define EPILOG() \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (data), "a" (times) \ + : "%esi", "%edx", "memory", "cc" \ + ); + +#else + #define AS1(x) __asm x + #define AS2(x, y) __asm x, y + + #define PROLOG() \ + AS1( push ebp ) \ + AS2( mov ebp, esp ) \ + AS2( movd mm3, edi ) \ + AS2( movd mm4, ebx ) \ + AS2( movd mm5, esi ) \ + AS2( movd mm6, ebp ) \ + AS2( mov edi, data ) \ + AS2( mov eax, times ) + + #define EPILOG() \ + AS2( movd ebp, mm6 ) \ + AS2( movd esi, mm5 ) \ + AS2( movd ebx, mm4 ) \ + AS2( movd edi, mm3 ) \ + AS2( mov esp, ebp ) \ + AS1( pop ebp ) \ + AS1( emms ) \ + AS1( ret 8 ) +#endif + + PROLOG() + + AS2( mov esi, ecx ) + + #ifdef OLD_GCC_OFFSET + AS2( add esi, 20 ) // digest_[0] + #else + AS2( add esi, 16 ) // digest_[0] + #endif + + AS2( movd mm2, eax ) // store times_ + AS2( movd mm1, esi ) // store digest_ + + AS2( sub esp, 68 ) // make room on stack + +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif + + // byte reverse 16 words of input, 4 at a time, put on stack for W[] + + // part 1 + AS2( mov eax, [edi] ) + AS2( mov ebx, [edi + 4] ) + AS2( mov ecx, [edi + 8] ) + AS2( mov edx, [edi + 12] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( mov [esp], eax ) + AS2( mov [esp + 4], ebx ) + AS2( mov [esp + 8], ecx ) + AS2( mov [esp + 12], edx ) + + // part 2 + AS2( mov eax, [edi + 16] ) + AS2( mov ebx, [edi + 20] ) + AS2( mov ecx, [edi + 24] ) + AS2( mov edx, [edi + 28] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( mov [esp + 16], eax ) + AS2( mov [esp + 20], ebx ) + AS2( mov [esp + 24], ecx ) + AS2( mov [esp + 28], edx ) + + + // part 3 + AS2( mov eax, [edi + 32] ) + AS2( mov ebx, [edi + 36] ) + AS2( mov ecx, [edi + 40] ) + AS2( mov edx, [edi + 44] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( mov [esp + 32], eax ) + AS2( mov [esp + 36], ebx ) + AS2( mov [esp + 40], ecx ) + AS2( mov [esp + 44], edx ) + + + // part 4 + AS2( mov eax, [edi + 48] ) + AS2( mov ebx, [edi + 52] ) + AS2( mov ecx, [edi + 56] ) + AS2( mov edx, [edi + 60] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) + AS1( bswap edx ) + + AS2( mov [esp + 48], eax ) + AS2( mov [esp + 52], ebx ) + AS2( mov [esp + 56], ecx ) + AS2( mov [esp + 60], edx ) + + AS2( mov [esp + 64], edi ) // store edi for end + + // read from digest_ + AS2( mov eax, [esi] ) // a1 + AS2( mov ebx, [esi + 4] ) // b1 + AS2( mov ecx, [esi + 8] ) // c1 + AS2( mov edx, [esi + 12] ) // d1 + AS2( mov ebp, [esi + 16] ) // e1 + + + ASMR0(eax, ebx, ecx, edx, ebp, 0) + ASMR0(ebp, eax, ebx, ecx, edx, 1) + ASMR0(edx, ebp, eax, ebx, ecx, 2) + ASMR0(ecx, edx, ebp, eax, ebx, 3) + ASMR0(ebx, ecx, edx, ebp, eax, 4) + ASMR0(eax, ebx, ecx, edx, ebp, 5) + ASMR0(ebp, eax, ebx, ecx, edx, 6) + ASMR0(edx, ebp, eax, ebx, ecx, 7) + ASMR0(ecx, edx, ebp, eax, ebx, 8) + ASMR0(ebx, ecx, edx, ebp, eax, 9) + ASMR0(eax, ebx, ecx, edx, ebp, 10) + ASMR0(ebp, eax, ebx, ecx, edx, 11) + ASMR0(edx, ebp, eax, ebx, ecx, 12) + ASMR0(ecx, edx, ebp, eax, ebx, 13) + ASMR0(ebx, ecx, edx, ebp, eax, 14) + ASMR0(eax, ebx, ecx, edx, ebp, 15) + + ASMR1(ebp, eax, ebx, ecx, edx, 16, 0, 2, 8, 13) + ASMR1(edx, ebp, eax, ebx, ecx, 17, 1, 3, 9, 14) + ASMR1(ecx, edx, ebp, eax, ebx, 18, 2, 4, 10, 15) + ASMR1(ebx, ecx, edx, ebp, eax, 19, 3, 5, 11, 0) + + ASMR2(eax, ebx, ecx, edx, ebp, 20, 4, 6, 12, 1) + ASMR2(ebp, eax, ebx, ecx, edx, 21, 5, 7, 13, 2) + ASMR2(edx, ebp, eax, ebx, ecx, 22, 6, 8, 14, 3) + ASMR2(ecx, edx, ebp, eax, ebx, 23, 7, 9, 15, 4) + ASMR2(ebx, ecx, edx, ebp, eax, 24, 8, 10, 0, 5) + ASMR2(eax, ebx, ecx, edx, ebp, 25, 9, 11, 1, 6) + ASMR2(ebp, eax, ebx, ecx, edx, 26, 10, 12, 2, 7) + ASMR2(edx, ebp, eax, ebx, ecx, 27, 11, 13, 3, 8) + ASMR2(ecx, edx, ebp, eax, ebx, 28, 12, 14, 4, 9) + ASMR2(ebx, ecx, edx, ebp, eax, 29, 13, 15, 5, 10) + ASMR2(eax, ebx, ecx, edx, ebp, 30, 14, 0, 6, 11) + ASMR2(ebp, eax, ebx, ecx, edx, 31, 15, 1, 7, 12) + ASMR2(edx, ebp, eax, ebx, ecx, 32, 0, 2, 8, 13) + ASMR2(ecx, edx, ebp, eax, ebx, 33, 1, 3, 9, 14) + ASMR2(ebx, ecx, edx, ebp, eax, 34, 2, 4, 10, 15) + ASMR2(eax, ebx, ecx, edx, ebp, 35, 3, 5, 11, 0) + ASMR2(ebp, eax, ebx, ecx, edx, 36, 4, 6, 12, 1) + ASMR2(edx, ebp, eax, ebx, ecx, 37, 5, 7, 13, 2) + ASMR2(ecx, edx, ebp, eax, ebx, 38, 6, 8, 14, 3) + ASMR2(ebx, ecx, edx, ebp, eax, 39, 7, 9, 15, 4) + + + ASMR3(eax, ebx, ecx, edx, ebp, 40, 8, 10, 0, 5) + ASMR3(ebp, eax, ebx, ecx, edx, 41, 9, 11, 1, 6) + ASMR3(edx, ebp, eax, ebx, ecx, 42, 10, 12, 2, 7) + ASMR3(ecx, edx, ebp, eax, ebx, 43, 11, 13, 3, 8) + ASMR3(ebx, ecx, edx, ebp, eax, 44, 12, 14, 4, 9) + ASMR3(eax, ebx, ecx, edx, ebp, 45, 13, 15, 5, 10) + ASMR3(ebp, eax, ebx, ecx, edx, 46, 14, 0, 6, 11) + ASMR3(edx, ebp, eax, ebx, ecx, 47, 15, 1, 7, 12) + ASMR3(ecx, edx, ebp, eax, ebx, 48, 0, 2, 8, 13) + ASMR3(ebx, ecx, edx, ebp, eax, 49, 1, 3, 9, 14) + ASMR3(eax, ebx, ecx, edx, ebp, 50, 2, 4, 10, 15) + ASMR3(ebp, eax, ebx, ecx, edx, 51, 3, 5, 11, 0) + ASMR3(edx, ebp, eax, ebx, ecx, 52, 4, 6, 12, 1) + ASMR3(ecx, edx, ebp, eax, ebx, 53, 5, 7, 13, 2) + ASMR3(ebx, ecx, edx, ebp, eax, 54, 6, 8, 14, 3) + ASMR3(eax, ebx, ecx, edx, ebp, 55, 7, 9, 15, 4) + ASMR3(ebp, eax, ebx, ecx, edx, 56, 8, 10, 0, 5) + ASMR3(edx, ebp, eax, ebx, ecx, 57, 9, 11, 1, 6) + ASMR3(ecx, edx, ebp, eax, ebx, 58, 10, 12, 2, 7) + ASMR3(ebx, ecx, edx, ebp, eax, 59, 11, 13, 3, 8) + + ASMR4(eax, ebx, ecx, edx, ebp, 60, 12, 14, 4, 9) + ASMR4(ebp, eax, ebx, ecx, edx, 61, 13, 15, 5, 10) + ASMR4(edx, ebp, eax, ebx, ecx, 62, 14, 0, 6, 11) + ASMR4(ecx, edx, ebp, eax, ebx, 63, 15, 1, 7, 12) + ASMR4(ebx, ecx, edx, ebp, eax, 64, 0, 2, 8, 13) + ASMR4(eax, ebx, ecx, edx, ebp, 65, 1, 3, 9, 14) + ASMR4(ebp, eax, ebx, ecx, edx, 66, 2, 4, 10, 15) + ASMR4(edx, ebp, eax, ebx, ecx, 67, 3, 5, 11, 0) + ASMR4(ecx, edx, ebp, eax, ebx, 68, 4, 6, 12, 1) + ASMR4(ebx, ecx, edx, ebp, eax, 69, 5, 7, 13, 2) + ASMR4(eax, ebx, ecx, edx, ebp, 70, 6, 8, 14, 3) + ASMR4(ebp, eax, ebx, ecx, edx, 71, 7, 9, 15, 4) + ASMR4(edx, ebp, eax, ebx, ecx, 72, 8, 10, 0, 5) + ASMR4(ecx, edx, ebp, eax, ebx, 73, 9, 11, 1, 6) + ASMR4(ebx, ecx, edx, ebp, eax, 74, 10, 12, 2, 7) + ASMR4(eax, ebx, ecx, edx, ebp, 75, 11, 13, 3, 8) + ASMR4(ebp, eax, ebx, ecx, edx, 76, 12, 14, 4, 9) + ASMR4(edx, ebp, eax, ebx, ecx, 77, 13, 15, 5, 10) + ASMR4(ecx, edx, ebp, eax, ebx, 78, 14, 0, 6, 11) + ASMR4(ebx, ecx, edx, ebp, eax, 79, 15, 1, 7, 12) + + + AS2( movd esi, mm1 ) // digest_ + + AS2( add [esi], eax ) // write out + AS2( add [esi + 4], ebx ) + AS2( add [esi + 8], ecx ) + AS2( add [esi + 12], edx ) + AS2( add [esi + 16], ebp ) + + // setup next round + AS2( movd ebp, mm2 ) // times + + AS2( mov edi, DWORD PTR [esp + 64] ) // data + + AS2( add edi, 64 ) // next round of data + AS2( mov [esp + 64], edi ) // restore + + AS1( dec ebp ) + AS2( movd mm2, ebp ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif + + // inline adjust + AS2( add esp, 68 ) // fix room on stack + + EPILOG() +} + + +#endif // DO_SHA_ASM + +} // namespace diff --git a/mysql/hash.h b/mysql/hash.h new file mode 100644 index 0000000..7bc97a7 --- /dev/null +++ b/mysql/hash.h @@ -0,0 +1,125 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Dynamic hashing of record with different key-length */ + +#ifndef _hash_h +#define _hash_h + +#include "my_global.h" /* uchar */ +#include "my_sys.h" /* DYNAMIC_ARRAY */ + +/* + This forward declaration is used from C files where the real + definition is included before. Since C does not allow repeated + typedef declarations, even when identical, the definition may not be + repeated. +*/ +#ifndef CHARSET_INFO_DEFINED +#define CHARSET_INFO_DEFINED +typedef struct charset_info_st CHARSET_INFO; +#endif /* CHARSET_INFO_DEFINED */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + Overhead to store an element in hash + Can be used to approximate memory consumption for a hash + */ +#define HASH_OVERHEAD (sizeof(char*)*2) + +/* flags for hash_init */ +#define HASH_UNIQUE 1 /* hash_insert fails on duplicate key */ + +struct st_hash; +typedef uint my_hash_value_type; +typedef uchar *(*my_hash_get_key)(const uchar *,size_t*,my_bool); +typedef void (*my_hash_free_key)(void *); +/** + Function type representing a hash function to be used with the HASH + container. + Should accept pointer to HASH, pointer to key buffer and key length + as parameters. +*/ +typedef my_hash_value_type (*my_hash_function)(const struct st_hash *, + const uchar *, + size_t); + +typedef struct st_hash { + size_t key_offset,key_length; /* Length of key if const length */ + size_t blength; + ulong records; + uint flags; + DYNAMIC_ARRAY array; /* Place for hash_keys */ + my_hash_get_key get_key; + void (*free)(void *); + CHARSET_INFO *charset; + my_hash_function hash_function; + PSI_memory_key m_psi_key; +} HASH; + +/* A search iterator state */ +typedef uint HASH_SEARCH_STATE; + +#define my_hash_init(A,B,C,D,E,F,G,H,I) \ + _my_hash_init(A,0,B,NULL,C,D,E,F,G,H,I) +#define my_hash_init2(A,B,C,D,E,F,G,H,I,J) \ + _my_hash_init(A,B,C,NULL,D,E,F,G,H,I,J) +#define my_hash_init3(A,B,C,D,E,F,G,H,I,J,K) \ + _my_hash_init(A,B,C,D,E,F,G,H,I,J,K) +my_bool _my_hash_init(HASH *hash, uint growth_size, CHARSET_INFO *charset, + my_hash_function hash_function, + ulong default_array_elements, size_t key_offset, + size_t key_length, my_hash_get_key get_key, + void (*free_element)(void*), + uint flags, + PSI_memory_key psi_key); +void my_hash_claim(HASH *tree); +void my_hash_free(HASH *tree); +void my_hash_reset(HASH *hash); +uchar *my_hash_element(HASH *hash, ulong idx); +uchar *my_hash_search(const HASH *info, const uchar *key, size_t length); +uchar *my_hash_search_using_hash_value(const HASH *info, + my_hash_value_type hash_value, + const uchar *key, size_t length); +my_hash_value_type my_calc_hash(const HASH *info, + const uchar *key, size_t length); +uchar *my_hash_first(const HASH *info, const uchar *key, size_t length, + HASH_SEARCH_STATE *state); +uchar *my_hash_first_from_hash_value(const HASH *info, + my_hash_value_type hash_value, + const uchar *key, + size_t length, + HASH_SEARCH_STATE *state); +uchar *my_hash_next(const HASH *info, const uchar *key, size_t length, + HASH_SEARCH_STATE *state); +my_bool my_hash_insert(HASH *info, const uchar *data); +my_bool my_hash_delete(HASH *hash, uchar *record); +my_bool my_hash_update(HASH *hash, uchar *record, uchar *old_key, + size_t old_key_length); +void my_hash_replace(HASH *hash, HASH_SEARCH_STATE *state, uchar *new_row); +my_bool my_hash_check(HASH *hash); /* Only in debug library */ + +#define my_hash_clear(H) memset((H), 0, sizeof(*(H))) +#define my_hash_inited(H) ((H)->blength != 0) +#define my_hash_init_opt(A,B,C,D,E,F,G,H,I) \ + (!my_hash_inited(A) && _my_hash_init(A,0,B,NULL,C,D,E,F,G,H,I)) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/mysql/keycache.h b/mysql/keycache.h new file mode 100644 index 0000000..6119f2c --- /dev/null +++ b/mysql/keycache.h @@ -0,0 +1,156 @@ +/* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Key cache variable structures */ + +#ifndef _keycache_h +#define _keycache_h + +#include "my_sys.h" /* flush_type */ + +C_MODE_START + +/* declare structures that is used by st_key_cache */ + +struct st_block_link; +typedef struct st_block_link BLOCK_LINK; +struct st_hash_link; +typedef struct st_hash_link HASH_LINK; + +/* Thread specific variables */ +typedef struct st_keycache_thread_var +{ + mysql_cond_t suspend; + struct st_keycache_thread_var *next,**prev; + void *opt_info; +} st_keycache_thread_var; + +/* info about requests in a waiting queue */ +typedef struct st_keycache_wqueue +{ + st_keycache_thread_var *last_thread; /* circular list of waiting threads */ +} KEYCACHE_WQUEUE; + +#define CHANGED_BLOCKS_HASH 128 /* must be power of 2 */ + +/* + The key cache structure + It also contains read-only statistics parameters. +*/ + +typedef struct st_key_cache +{ + my_bool key_cache_inited; + my_bool in_resize; /* true during resize operation */ + my_bool resize_in_flush; /* true during flush of resize operation */ + my_bool can_be_used; /* usage of cache for read/write is allowed */ + size_t key_cache_mem_size; /* specified size of the cache memory */ + uint key_cache_block_size; /* size of the page buffer of a cache block */ + ulonglong min_warm_blocks; /* min number of warm blocks; */ + ulonglong age_threshold; /* age threshold for hot blocks */ + ulonglong keycache_time; /* total number of block link operations */ + uint hash_entries; /* max number of entries in the hash table */ + int hash_links; /* max number of hash links */ + int hash_links_used; /* number of hash links currently used */ + int disk_blocks; /* max number of blocks in the cache */ + ulong blocks_used; /* maximum number of concurrently used blocks */ + ulong blocks_unused; /* number of currently unused blocks */ + ulong blocks_changed; /* number of currently dirty blocks */ + ulong warm_blocks; /* number of blocks in warm sub-chain */ + ulong cnt_for_resize_op; /* counter to block resize operation */ + long blocks_available; /* number of blocks available in the LRU chain */ + HASH_LINK **hash_root; /* arr. of entries into hash table buckets */ + HASH_LINK *hash_link_root; /* memory for hash table links */ + HASH_LINK *free_hash_list; /* list of free hash links */ + BLOCK_LINK *free_block_list; /* list of free blocks */ + BLOCK_LINK *block_root; /* memory for block links */ + uchar *block_mem; /* memory for block buffers */ + BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */ + BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */ + mysql_mutex_t cache_lock; /* to lock access to the cache structure */ + KEYCACHE_WQUEUE resize_queue; /* threads waiting during resize operation */ + /* + Waiting for a zero resize count. Using a queue for symmetry though + only one thread can wait here. + */ + KEYCACHE_WQUEUE waiting_for_resize_cnt; + KEYCACHE_WQUEUE waiting_for_hash_link; /* waiting for a free hash link */ + KEYCACHE_WQUEUE waiting_for_block; /* requests waiting for a free block */ + BLOCK_LINK *changed_blocks[CHANGED_BLOCKS_HASH]; /* hash for dirty file bl.*/ + BLOCK_LINK *file_blocks[CHANGED_BLOCKS_HASH]; /* hash for other file bl.*/ + + /* + The following variables are and variables used to hold parameters for + initializing the key cache. + */ + + ulonglong param_buff_size; /* size the memory allocated for the cache */ + ulonglong param_block_size; /* size of the blocks in the key cache */ + ulonglong param_division_limit; /* min. percentage of warm blocks */ + ulonglong param_age_threshold; /* determines when hot block is downgraded */ + + /* Statistics variables. These are reset in reset_key_cache_counters(). */ + ulong global_blocks_changed; /* number of currently dirty blocks */ + ulonglong global_cache_w_requests;/* number of write requests (write hits) */ + ulonglong global_cache_write; /* number of writes from cache to files */ + ulonglong global_cache_r_requests;/* number of read requests (read hits) */ + ulonglong global_cache_read; /* number of reads from files to cache */ + + int blocks; /* max number of blocks in the cache */ + my_bool in_init; /* Set to 1 in MySQL during init/resize */ +} KEY_CACHE; + +/* The default key cache */ +extern KEY_CACHE dflt_key_cache_var, *dflt_key_cache; + +extern int init_key_cache(KEY_CACHE *keycache, ulonglong key_cache_block_size, + size_t use_mem, ulonglong division_limit, + ulonglong age_threshold); +extern int resize_key_cache(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + ulonglong key_cache_block_size, + size_t use_mem, ulonglong division_limit, + ulonglong age_threshold); +extern uchar *key_cache_read(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length,int return_buffer); +extern int key_cache_insert(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, my_off_t filepos, int level, + uchar *buff, uint length); +extern int key_cache_write(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length,int force_write); +extern int flush_key_blocks(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + int file, enum flush_type type); +extern void end_key_cache(KEY_CACHE *keycache, my_bool cleanup); + +/* Functions to handle multiple key caches */ +extern my_bool multi_keycache_init(void); +extern void multi_keycache_free(void); +extern KEY_CACHE *multi_key_cache_search(uchar *key, uint length); +extern my_bool multi_key_cache_set(const uchar *key, uint length, + KEY_CACHE *key_cache); +extern void multi_key_cache_change(KEY_CACHE *old_data, + KEY_CACHE *new_data); +extern int reset_key_cache_counters(const char *name, + KEY_CACHE *key_cache); +C_MODE_END +#endif /* _keycache_h */ diff --git a/mysql/lf.h b/mysql/lf.h new file mode 100644 index 0000000..d6b73f3 --- /dev/null +++ b/mysql/lf.h @@ -0,0 +1,212 @@ +/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _lf_h +#define _lf_h + +#include "my_global.h" +#include "my_atomic.h" +#include "my_sys.h" +#include "hash.h" + +C_MODE_START + +/* + wait-free dynamic array, see lf_dynarray.c + + 4 levels of 256 elements each mean 4311810304 elements in an array - it + should be enough for a while +*/ +#define LF_DYNARRAY_LEVEL_LENGTH 256 +#define LF_DYNARRAY_LEVELS 4 + +typedef struct { + void * volatile level[LF_DYNARRAY_LEVELS]; + uint size_of_element; +} LF_DYNARRAY; + +typedef int (*lf_dynarray_func)(void *, void *); + +void lf_dynarray_init(LF_DYNARRAY *array, uint element_size); +void lf_dynarray_destroy(LF_DYNARRAY *array); +void *lf_dynarray_value(LF_DYNARRAY *array, uint idx); +void *lf_dynarray_lvalue(LF_DYNARRAY *array, uint idx); +int lf_dynarray_iterate(LF_DYNARRAY *array, lf_dynarray_func func, void *arg); + +/* + pin manager for memory allocator, lf_alloc-pin.c +*/ + +#define LF_PINBOX_PINS 4 +#define LF_PURGATORY_SIZE 10 + +typedef void lf_pinbox_free_func(void *, void *, void*); + +typedef struct { + LF_DYNARRAY pinarray; + lf_pinbox_free_func *free_func; + void *free_func_arg; + uint free_ptr_offset; + uint32 volatile pinstack_top_ver; /* this is a versioned pointer */ + uint32 volatile pins_in_array; /* number of elements in array */ +} LF_PINBOX; + +typedef struct st_lf_pins { + void * volatile pin[LF_PINBOX_PINS]; + LF_PINBOX *pinbox; + void *purgatory; + uint32 purgatory_count; + uint32 volatile link; +/* we want sizeof(LF_PINS) to be 64 to avoid false sharing */ +#if SIZEOF_INT*2+SIZEOF_CHARP*(LF_PINBOX_PINS+2) != 64 + char pad[64-sizeof(uint32)*2-sizeof(void*)*(LF_PINBOX_PINS+2)]; +#endif +} LF_PINS; + +/* + compile-time assert, to require "no less than N" pins + it's enough if it'll fail on at least one compiler, so + we'll enable it on GCC only, which supports zero-length arrays. +*/ +#if defined(__GNUC__) && defined(MY_LF_EXTRA_DEBUG) +#define LF_REQUIRE_PINS(N) \ + static const char require_pins[LF_PINBOX_PINS-N] \ + MY_ATTRIBUTE ((unused)); \ + static const int LF_NUM_PINS_IN_THIS_FILE= N; +#else +#define LF_REQUIRE_PINS(N) +#endif + +static inline void lf_pin(LF_PINS *pins, int pin, void *addr) +{ +#if defined(__GNUC__) && defined(MY_LF_EXTRA_DEBUG) + assert(pin < LF_NUM_PINS_IN_THIS_FILE); +#endif + my_atomic_storeptr(&pins->pin[pin], addr); +} + +static inline void lf_unpin(LF_PINS *pins, int pin) +{ +#if defined(__GNUC__) && defined(MY_LF_EXTRA_DEBUG) + assert(pin < LF_NUM_PINS_IN_THIS_FILE); +#endif + my_atomic_storeptr(&pins->pin[pin], NULL); +} + +void lf_pinbox_init(LF_PINBOX *pinbox, uint free_ptr_offset, + lf_pinbox_free_func *free_func, void * free_func_arg); +void lf_pinbox_destroy(LF_PINBOX *pinbox); +LF_PINS *lf_pinbox_get_pins(LF_PINBOX *pinbox); +void lf_pinbox_put_pins(LF_PINS *pins); +void lf_pinbox_free(LF_PINS *pins, void *addr); + + +/* + memory allocator, lf_alloc-pin.c +*/ +typedef void lf_allocator_func(uchar *); + +typedef struct st_lf_allocator { + LF_PINBOX pinbox; + uchar * volatile top; + uint element_size; + uint32 volatile mallocs; + lf_allocator_func *constructor; /* called, when an object is malloc()'ed */ + lf_allocator_func *destructor; /* called, when an object is free()'d */ +} LF_ALLOCATOR; + +#define lf_alloc_init(A, B, C) lf_alloc_init2(A, B, C, NULL, NULL) +void lf_alloc_init2(LF_ALLOCATOR *allocator, uint size, uint free_ptr_offset, + lf_allocator_func *ctor, lf_allocator_func *dtor); +void lf_alloc_destroy(LF_ALLOCATOR *allocator); +uint lf_alloc_pool_count(LF_ALLOCATOR *allocator); + +static inline void lf_alloc_direct_free(LF_ALLOCATOR *allocator, void *addr) +{ + if (allocator->destructor) + allocator->destructor((uchar *)addr); + my_free(addr); +} + +void *lf_alloc_new(LF_PINS *pins); + +struct st_lf_hash; +typedef uint lf_hash_func(const struct st_lf_hash *, const uchar *, size_t); +typedef void lf_hash_init_func(uchar *dst, const uchar* src); + +#define LF_HASH_UNIQUE 1 + +/* lf_hash overhead per element (that is, sizeof(LF_SLIST) */ +extern const int LF_HASH_OVERHEAD; + +typedef struct st_lf_hash { + LF_DYNARRAY array; /* hash itself */ + LF_ALLOCATOR alloc; /* allocator for elements */ + my_hash_get_key get_key; /* see HASH */ + CHARSET_INFO *charset; /* see HASH */ + lf_hash_func *hash_function; /* see HASH */ + uint key_offset, key_length; /* see HASH */ + uint element_size; /* size of memcpy'ed area on insert */ + uint flags; /* LF_HASH_UNIQUE, etc */ + int32 volatile size; /* size of array */ + int32 volatile count; /* number of elements in the hash */ + /** + "Initialize" hook - called to finish initialization of object provided by + LF_ALLOCATOR (which is pointed by "dst" parameter) and set element key + from object passed as parameter to lf_hash_insert (pointed by "src" + parameter). Allows to use LF_HASH with objects which are not "trivially + copyable". + NULL value means that element initialization is carried out by copying + first element_size bytes from object which provided as parameter to + lf_hash_insert. + */ + lf_hash_init_func *initialize; +} LF_HASH; + +#define lf_hash_init(A, B, C, D, E, F, G) \ + lf_hash_init2(A, B, C, D, E, F, G, NULL, NULL, NULL, NULL) +void lf_hash_init2(LF_HASH *hash, uint element_size, uint flags, + uint key_offset, uint key_length, my_hash_get_key get_key, + CHARSET_INFO *charset, lf_hash_func *hash_function, + lf_allocator_func *ctor, lf_allocator_func *dtor, + lf_hash_init_func *init); +void lf_hash_destroy(LF_HASH *hash); +int lf_hash_insert(LF_HASH *hash, LF_PINS *pins, const void *data); +void *lf_hash_search(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen); +int lf_hash_delete(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen); + +static inline LF_PINS *lf_hash_get_pins(LF_HASH *hash) +{ + return lf_pinbox_get_pins(&hash->alloc.pinbox); +} + +static inline void lf_hash_put_pins(LF_PINS *pins) +{ + lf_pinbox_put_pins(pins); +} + +static inline void lf_hash_search_unpin(LF_PINS *pins) +{ + lf_unpin(pins, 2); +} + +typedef int lf_hash_match_func(const uchar *el); +void *lf_hash_random_match(LF_HASH *hash, LF_PINS *pins, + lf_hash_match_func *match, uint rand_val); + +C_MODE_END + +#endif + diff --git a/mysql/libmysql/assert.c b/mysql/libmysql/assert.c new file mode 100644 index 0000000..e11db5b --- /dev/null +++ b/mysql/libmysql/assert.c @@ -0,0 +1,28 @@ +/* file : mysql/libmysql/assert.c -*- C -*- + * copyright : Copyright (c) 2016-2017 Code Synthesis Ltd + * license : GPLv2 with FOSS License Exception; see accompanying COPYING file + */ + +#include + +#ifdef _MSC_VER +# include // C_ASSERT() +#endif + +#include +#include + +/* + * Make sure that some assumptions made at the preprocessing stage are true. + */ + +/* + * _Static_assert() is introduced in C11, is supported by GCC and Clang for C99 + * as well, and is not supported by VC at all. + */ +#ifdef _MSC_VER +# define _Static_assert(C, M) C_ASSERT (C) +#endif + +_Static_assert (sizeof (off_t) == SIZEOF_OFF_T, "unexpected off_t size"); +_Static_assert (sizeof (time_t) == SIZEOF_TIME_T, "unexpected time_t size"); diff --git a/mysql/libmysql/authentication_win/common.cpp b/mysql/libmysql/authentication_win/common.cpp new file mode 100644 index 0000000..48c400d --- /dev/null +++ b/mysql/libmysql/authentication_win/common.cpp @@ -0,0 +1,510 @@ +/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "common.h" +#include // for ConvertSidToStringSid() +#include // for GetUserNameEx() + + +template <> void error_log_print(const char *fmt, ...); +template <> void error_log_print(const char *fmt, ...); +template <> void error_log_print(const char *fmt, ...); + +/** + Option indicating desired level of logging. Values: + + 0 - no logging + 1 - log only error messages + 2 - additionally log warnings + 3 - additionally log info notes + 4 - also log debug messages + + Value of this option should be taken into account in the + implementation of error_log_vprint() function (see + log_client.cc). + + Note: No error or debug messages are logged in production code + (see logging macros in common.h). +*/ +int opt_auth_win_log_level= 2; + + +/** Connection class **************************************************/ + +/** + Create connection out of an active MYSQL_PLUGIN_VIO object. + + @param[in] vio pointer to a @c MYSQL_PLUGIN_VIO object used for + connection - it can not be NULL +*/ + +Connection::Connection(MYSQL_PLUGIN_VIO *vio): m_vio(vio), m_error(0) +{ + DBUG_ASSERT(vio); +} + + +/** + Write data to the connection. + + @param[in] blob data to be written + + @return 0 on success, VIO error code on failure. + + @note In case of error, VIO error code is stored in the connection object + and can be obtained with @c error() method. +*/ + +int Connection::write(const Blob &blob) +{ + m_error= m_vio->write_packet(m_vio, blob.ptr(), static_cast(blob.len())); + +#ifndef DBUG_OFF + if (m_error) + DBUG_PRINT("error", ("vio write error %d", m_error)); +#endif + + return m_error; +} + + +/** + Read data from connection. + + @return A Blob containing read packet or null Blob in case of error. + + @note In case of error, VIO error code is stored in the connection object + and can be obtained with @c error() method. +*/ + +Blob Connection::read() +{ + unsigned char *ptr; + int len= m_vio->read_packet(m_vio, &ptr); + + if (len < 0) + { + m_error= true; + return Blob(); + } + + return Blob(ptr, len); +} + + +/** Sid class *****************************************************/ + + +/** + Create Sid object corresponding to a given account name. + + @param[in] account_name name of a Windows account + + The account name can be in any form accepted by @c LookupAccountName() + function. + + @note In case of errors created object is invalid and its @c is_valid() + method returns @c false. +*/ + +Sid::Sid(const wchar_t *account_name): m_data(NULL) +#ifndef DBUG_OFF +, m_as_string(NULL) +#endif +{ + DWORD sid_size= 0, domain_size= 0; + bool success; + + // Determine required buffer sizes + + success= LookupAccountNameW(NULL, account_name, NULL, &sid_size, + NULL, &domain_size, &m_type); + + if (!success && GetLastError() != ERROR_INSUFFICIENT_BUFFER) + { +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not determine SID buffer size, " + "LookupAccountName() failed with error %X (%s)", + GetLastError(), get_last_error_message(error_buf))); +#endif + return; + } + + // Query for SID (domain is ignored) + + wchar_t *domain= new wchar_t[domain_size]; + m_data= (TOKEN_USER*) new BYTE[sid_size + sizeof(TOKEN_USER)]; + m_data->User.Sid= (BYTE*)m_data + sizeof(TOKEN_USER); + + success= LookupAccountNameW(NULL, account_name, + m_data->User.Sid, &sid_size, + domain, &domain_size, + &m_type); + + if (!success || !is_valid()) + { +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not determine SID of '%S', " + "LookupAccountName() failed with error %X (%s)", + account_name, GetLastError(), + get_last_error_message(error_buf))); +#endif + goto fail; + } + + goto end; + +fail: + if (m_data) + delete [] m_data; + m_data= NULL; + +end: + if (domain) + delete [] domain; +} + + +/** + Create Sid object corresponding to a given security token. + + @param[in] token security token of a Windows account + + @note In case of errors created object is invalid and its @c is_valid() + method returns @c false. +*/ + +Sid::Sid(HANDLE token): m_data(NULL) +#ifndef DBUG_OFF +, m_as_string(NULL) +#endif +{ + DWORD req_size= 0; + bool success; + + // Determine required buffer size + + success= GetTokenInformation(token, TokenUser, NULL, 0, &req_size); + if (!success && GetLastError() != ERROR_INSUFFICIENT_BUFFER) + { +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not determine SID buffer size, " + "GetTokenInformation() failed with error %X (%s)", + GetLastError(), get_last_error_message(error_buf))); +#endif + return; + } + + m_data= (TOKEN_USER*) new BYTE[req_size]; + success= GetTokenInformation(token, TokenUser, m_data, req_size, &req_size); + + if (!success || !is_valid()) + { + delete [] m_data; + m_data= NULL; +#ifndef DBUG_OFF + if (!success) + { + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not read SID from security token, " + "GetTokenInformation() failed with error %X (%s)", + GetLastError(), get_last_error_message(error_buf))); + } +#endif + } +} + + +Sid::~Sid() +{ + if (m_data) + delete [] m_data; +#ifndef DBUG_OFF + if (m_as_string) + LocalFree(m_as_string); +#endif +} + +/// Check if Sid object is valid. +bool Sid::is_valid(void) const +{ + return m_data && m_data->User.Sid && IsValidSid(m_data->User.Sid); +} + + +#ifndef DBUG_OFF + +/** + Produces string representation of the SID. + + @return String representation of the SID or NULL in case of errors. + + @note Memory allocated for the string is automatically freed in Sid's + destructor. +*/ + +const char* Sid::as_string() +{ + if (!m_data) + return NULL; + + if (!m_as_string) + { + bool success= ConvertSidToStringSid(m_data->User.Sid, &m_as_string); + + if (!success) + { +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not get textual representation of a SID, " + "ConvertSidToStringSid() failed with error %X (%s)", + GetLastError(), get_last_error_message(error_buf))); +#endif + m_as_string= NULL; + return NULL; + } + } + + return m_as_string; +} + +#endif + + +bool Sid::operator ==(const Sid &other) +{ + if (!is_valid() || !other.is_valid()) + return false; + + return EqualSid(m_data->User.Sid, other.m_data->User.Sid); +} + + +/** Generating User Principal Name *************************/ + +/** + Call Windows API functions to get UPN of the current user and store it + in internal buffer. +*/ + +UPN::UPN(): m_buf(NULL) +{ + wchar_t buf1[MAX_SERVICE_NAME_LENGTH]; + + // First we try to use GetUserNameEx. + + m_len= sizeof(buf1)/sizeof(wchar_t); + + if (!GetUserNameExW(NameUserPrincipal, buf1, (PULONG)&m_len)) + { + if (GetLastError()) + { +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("note", ("When determining UPN" + ", GetUserNameEx() failed with error %X (%s)", + GetLastError(), get_last_error_message(error_buf))); +#endif + if (ERROR_MORE_DATA == GetLastError()) + ERROR_LOG(INFO, ("Buffer overrun when determining UPN:" + " need %ul characters but have %ul", + m_len, sizeof(buf1)/sizeof(WCHAR))); + } + + m_len= 0; // m_len == 0 indicates invalid UPN + return; + } + + /* + UPN is stored in buf1 in wide-char format - convert it to utf8 + for sending over network. + */ + + m_buf= wchar_to_utf8(buf1, &m_len); + + if(!m_buf) + ERROR_LOG(ERROR, ("Failed to convert UPN to utf8")); + + // Note: possible error would be indicated by the fact that m_buf is NULL. + return; +} + + +UPN::~UPN() +{ + if (m_buf) + free(m_buf); +} + + +/** + Convert a wide-char string to utf8 representation. + + @param[in] string null-terminated wide-char string to be converted + @param[in,out] len length of the string to be converted or 0; on + return length (in bytes, excluding terminating + null character) of the converted string + + If len is 0 then the length of the string will be computed by this function. + + @return Pointer to a buffer containing utf8 representation or NULL in + case of error. + + @note The returned buffer must be freed with @c free() call. +*/ + +char* wchar_to_utf8(const wchar_t *string, size_t *len) +{ + char *buf= NULL; + size_t str_len= len && *len ? *len : wcslen(string); + + /* + A conversion from utf8 to wchar_t will never take more than 3 bytes per + character, so a buffer of length 3 * str_len schould be sufficient. + We check that assumption with an assertion later. + */ + + size_t buf_len= 3 * str_len; + + buf= (char*)malloc(buf_len + 1); + if (!buf) + { + DBUG_PRINT("error",("Out of memory when converting string '%S' to utf8", + string)); + return NULL; + } + + int res= WideCharToMultiByte(CP_UTF8, // convert to UTF-8 + 0, // conversion flags + string, // input buffer + str_len, // its length + buf, buf_len, // output buffer and its size + NULL, NULL); // default character (not used) + + if (res) + { + buf[res]= '\0'; + if (len) + *len= res; + return buf; + } + + // res is 0 which indicates error + +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not convert string '%S' to utf8" + ", WideCharToMultiByte() failed with error %X (%s)", + string, GetLastError(), + get_last_error_message(error_buf))); +#endif + + // Let's check our assumption about sufficient buffer size + DBUG_ASSERT(ERROR_INSUFFICIENT_BUFFER != GetLastError()); + + return NULL; +} + + +/** + Convert an utf8 string to a wide-char string. + + @param[in] string null-terminated utf8 string to be converted + @param[in,out] len length of the string to be converted or 0; on + return length (in chars) of the converted string + + If len is 0 then the length of the string will be computed by this function. + + @return Pointer to a buffer containing wide-char representation or NULL in + case of error. + + @note The returned buffer must be freed with @c free() call. +*/ + +wchar_t* utf8_to_wchar(const char *string, size_t *len) +{ + size_t buf_len; + + /* + Note: length (in bytes) of an utf8 string is always bigger than the + number of characters in this string. Hence a buffer of size len will + be sufficient. We add 1 for the terminating null character. + */ + + buf_len= len && *len ? *len : strlen(string); + wchar_t *buf= (wchar_t*)malloc((buf_len+1)*sizeof(wchar_t)); + + if (!buf) + { + DBUG_PRINT("error",("Out of memory when converting utf8 string '%s'" + " to wide-char representation", string)); + return NULL; + } + + size_t res; + res= MultiByteToWideChar(CP_UTF8, // convert from UTF-8 + 0, // conversion flags + string, // input buffer + buf_len, // its size + buf, buf_len); // output buffer and its size + if (res) + { + buf[res]= '\0'; + if (len) + *len= res; + return buf; + } + + // error in MultiByteToWideChar() + +#ifndef DBUG_OFF + Error_message_buf error_buf; + DBUG_PRINT("error", ("Could not convert UPN from UTF-8" + ", MultiByteToWideChar() failed with error %X (%s)", + GetLastError(), get_last_error_message(error_buf))); +#endif + + // Let's check our assumption about sufficient buffer size + DBUG_ASSERT(ERROR_INSUFFICIENT_BUFFER != GetLastError()); + + return NULL; +} + + +/** Error handling ****************************************************/ + + +/** + Returns error message corresponding to the last Windows error given + by GetLastError(). + + @note Error message is overwritten by next call to + @c get_last_error_message(). +*/ + +const char* get_last_error_message(Error_message_buf buf) +{ + int error= GetLastError(); + + buf[0]= '\0'; + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)buf, sizeof(buf), NULL ); + + return buf; +} diff --git a/mysql/libmysql/authentication_win/common.h b/mysql/libmysql/authentication_win/common.h new file mode 100644 index 0000000..b7525fb --- /dev/null +++ b/mysql/libmysql/authentication_win/common.h @@ -0,0 +1,324 @@ +/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef COMMON_H +#define COMMON_H + +#include +#include +#include // for CtxtHandle +#include // for MYSQL_PLUGIN_VIO + +/// Maximum length of the target service name. +#define MAX_SERVICE_NAME_LENGTH 1024 + + +/** Debugging and error reporting infrastructure ***************************/ + +/* + Note: We use plugin local logging and error reporting mechanisms until + WL#2940 (plugin service: error reporting) is available. +*/ + +#undef INFO +#undef WARNING +#undef ERROR + +struct error_log_level +{ + typedef enum {INFO, WARNING, ERROR} type; +}; + +extern "C" int opt_auth_win_log_level; +unsigned int get_log_level(void); +void set_log_level(unsigned int); + + +/* + If DEBUG_ERROR_LOG is defined then error logging happens only + in debug-copiled code. Otherwise ERROR_LOG() expands to + error_log_print() even in production code. + + Note: Macro ERROR_LOG() can use printf-like format string like this: + + ERROR_LOG(Level, ("format string", args)); + + The implementation should handle it correctly. Currently it is passed + to fprintf() (see error_log_vprint() function). +*/ + +#if defined(DEBUG_ERROR_LOG) && defined(DBUG_OFF) +#define ERROR_LOG(Level, Msg) do {} while (0) +#else +#define ERROR_LOG(Level, Msg) error_log_print< error_log_level::Level > Msg +#endif + + +void error_log_vprint(error_log_level::type level, + const char *fmt, va_list args); + +template +void error_log_print(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + error_log_vprint(Level, fmt, args); + va_end(args); +} + +typedef char Error_message_buf[1024]; +const char* get_last_error_message(Error_message_buf); + + +/* + Internal implementation of debug message printing which does not use + dbug library. This is invoked via macro: + + DBUG_PRINT_DO(Keyword, ("format string", args)); + + This is supposed to be used as an implementation of DBUG_PRINT() macro, + unless the dbug library implementation is used or debug messages are disabled. +*/ + +#ifndef DBUG_OFF + +#define DBUG_PRINT_DO(Keyword, Msg) \ + do { \ + if (4 > get_log_level()) break; \ + fprintf(stderr, "winauth: %s: ", Keyword); \ + debug_msg Msg; \ + } while (0) + +inline +void debug_msg(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + vfprintf(stderr, fmt, args); + fputc('\n', stderr); + fflush(stderr); + va_end(args); +} + +#else +#define DBUG_PRINT_DO(K, M) do {} while (0) +#endif + + +#ifndef WINAUTH_USE_DBUG_LIB + +#undef DBUG_PRINT +#define DBUG_PRINT(Keyword, Msg) DBUG_PRINT_DO(Keyword, Msg) + +/* + Redefine few more debug macros to make sure that no symbols from + dbug library are used. +*/ + +#undef DBUG_ENTER +#define DBUG_ENTER(X) do {} while (0) + +#undef DBUG_RETURN +#define DBUG_RETURN(X) return (X) + +#undef DBUG_ASSERT +#ifndef DBUG_OFF +#define DBUG_ASSERT(X) assert (X) +#else +#define DBUG_ASSERT(X) do {} while (0) +#endif + +#undef DBUG_DUMP +#define DBUG_DUMP(A,B,C) do {} while (0) + +#endif + + +/** Blob class *************************************************************/ + +typedef unsigned char byte; + +/** + Class representing a region of memory (e.g., a string or binary buffer). + + @note This class does not allocate memory. It merely describes a region + of memory which must be allocated externally (if it is dynamic memory). +*/ + +class Blob +{ + byte *m_ptr; ///< Pointer to the first byte of the memory region. + size_t m_len; ///< Length of the memory region. + +public: + + Blob(): m_ptr(NULL), m_len(0) + {} + + Blob(const byte *ptr, const size_t len) + : m_ptr(const_cast(ptr)), m_len(len) + {} + + Blob(const char *str): m_ptr((byte*)str) + { + m_len= strlen(str); + } + + byte* ptr() const + { + return m_ptr; + } + + size_t len() const + { + return m_len; + } + + byte& operator[](unsigned pos) const + { + static byte out_of_range= 0; // alas, no exceptions... + return pos < len() ? m_ptr[pos] : out_of_range; + } + + bool is_null() const + { + return m_ptr == NULL; + } + + void trim(size_t l) + { + m_len= l; + } +}; + + +/** Connection class *******************************************************/ + +/** + Convenience wrapper around MYSQL_PLUGIN_VIO object providing basic + read/write operations. +*/ + +class Connection +{ + MYSQL_PLUGIN_VIO *m_vio; ///< Pointer to @c MYSQL_PLUGIN_VIO structure. + + /** + If non-zero, indicates that connection is broken. If this has happened + because of failed operation, stores non-zero error code from that failure. + */ + int m_error; + +public: + + Connection(MYSQL_PLUGIN_VIO *vio); + int write(const Blob&); + Blob read(); + + int error() const + { + return m_error; + } +}; + + +/** Sid class **************************************************************/ + +/** + Class for storing and manipulating Windows security identifiers (SIDs). +*/ + +class Sid +{ + TOKEN_USER *m_data; ///< Pointer to structure holding identifier's data. + SID_NAME_USE m_type; ///< Type of identified entity. + +public: + + Sid(const wchar_t*); + Sid(HANDLE sec_token); + ~Sid(); + + bool is_valid(void) const; + + bool is_group(void) const + { + return m_type == SidTypeGroup + || m_type == SidTypeWellKnownGroup + || m_type == SidTypeAlias; + } + + bool is_user(void) const + { + return m_type == SidTypeUser; + } + + bool operator==(const Sid&); + + operator PSID() const + { + return (PSID)m_data->User.Sid; + } + +#ifndef DBUG_OFF + +private: + char *m_as_string; ///< Cached string representation of the SID. +public: + const char* as_string(); + +#endif +}; + + +/** UPN class **************************************************************/ + +/** + An object of this class obtains and stores User Principal Name of the + account under which current process is running. +*/ + +class UPN +{ + char *m_buf; ///< Pointer to UPN in utf8 representation. + size_t m_len; ///< Length of the name. + +public: + + UPN(); + ~UPN(); + + bool is_valid() const + { + return m_len > 0; + } + + const Blob as_blob() const + { + return m_len ? Blob((byte*)m_buf, m_len) : Blob(); + } + + const char* as_string() const + { + return (const char*)m_buf; + } + +}; + + +char* wchar_to_utf8(const wchar_t*, size_t*); +wchar_t* utf8_to_wchar(const char*, size_t*); + +#endif diff --git a/mysql/libmysql/authentication_win/handshake.cpp b/mysql/libmysql/authentication_win/handshake.cpp new file mode 100644 index 0000000..7801bb0 --- /dev/null +++ b/mysql/libmysql/authentication_win/handshake.cpp @@ -0,0 +1,288 @@ +/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "handshake.h" + + +/** Handshake class implementation **********************************/ + +/** + Create common part of handshake context. + + @param[in] ssp name of the SSP (Security Service Provider) to + be used for authentication + @param[in] side is this handshake object used for server- or + client-side handshake + + Prepare for handshake using the @c ssp security module. We use + "Negotiate" which picks best available module. Parameter @c side + tells if this is preparing for server or client side authentication + and is used to prepare appropriate credentials. +*/ + +Handshake::Handshake(const char *ssp, side_t side) +: m_atts(0L), m_error(0), m_complete(FALSE), + m_have_credentials(false), m_have_sec_context(false) +#ifndef DBUG_OFF + , m_ssp_info(NULL) +#endif +{ + SECURITY_STATUS ret; + + // Obtain credentials for the authentication handshake. + + ret= AcquireCredentialsHandle(NULL, (SEC_CHAR*)ssp, + side == SERVER ? SECPKG_CRED_INBOUND : SECPKG_CRED_OUTBOUND, + NULL, NULL, NULL, NULL, &m_cred, &m_expire); + + if (ret != SEC_E_OK) + { + DBUG_PRINT("error", ("AcqireCredentialsHandle() failed" + " with error %X", ret)); + ERROR_LOG(ERROR, ("Could not obtain local credentials" + " required for authentication")); + m_error= ret; + } + + m_have_credentials= true; +} + + +Handshake::~Handshake() +{ + if (m_have_credentials) + FreeCredentialsHandle(&m_cred); + if (m_have_sec_context) + DeleteSecurityContext(&m_sctx); + m_output.mem_free(); + +#ifndef DBUG_OFF + if (m_ssp_info) + FreeContextBuffer(m_ssp_info); +#endif +} + + +/** + Read and process data packets from the other end of a connection. + + @param[IN] con a connection to read packets from + + Packets are read and processed until authentication handshake is + complete. It is assumed that the peer will send at least one packet. + Packets are processed with @c process_data() method. If new data is + generated during packet processing, this data is sent to the peer and + another round of packet exchange starts. + + @return 0 on success. + + @note In case of error, appropriate error message is logged. +*/ +int Handshake::packet_processing_loop() +{ + m_round= 0; + + do { + ++m_round; + // Read packet send by the peer + + DBUG_PRINT("info", ("Waiting for packet")); + Blob packet= read_packet(); + if (error()) + { + ERROR_LOG(ERROR, ("Error reading packet in round %d", m_round)); + return 1; + } + DBUG_PRINT("info", ("Got packet of length %d", packet.len())); + + /* + Process received data, possibly generating new data to be sent. + */ + + Blob new_data= process_data(packet); + + if (error()) + { + ERROR_LOG(ERROR, ("Error processing packet in round %d", m_round)); + return 1; + } + + /* + If new data has been generated, send it to the peer. Otherwise + handshake must be completed. + */ + + if (!new_data.is_null()) + { + DBUG_PRINT("info", ("Round %d started", m_round)); + + DBUG_PRINT("info", ("Sending packet of length %d", new_data.len())); + int ret= write_packet(new_data); + if (ret) + { + ERROR_LOG(ERROR, ("Error writing packet in round %d", m_round)); + return 1; + } + DBUG_PRINT("info", ("Data sent")); + } + else if (!is_complete()) + { + ERROR_LOG(ERROR, ("No data to send in round %d" + " but handshake is not complete", m_round)); + return 1; + } + + /* + To protect against malicious clients, break handshake exchange if + too many rounds. + */ + + if (m_round > MAX_HANDSHAKE_ROUNDS) + { + ERROR_LOG(ERROR, ("Authentication handshake could not be completed" + " after %d rounds", m_round)); + return 1; + } + + } while(!is_complete()); + + ERROR_LOG(INFO, ("Handshake completed after %d rounds", m_round)); + return 0; +} + + +#ifndef DBUG_OFF + +/** + Get name of the security package which was used in authentication. + + This method should be called only after handshake was completed. It is + available only in debug builds. + + @return Name of security package or NULL if it can not be obtained. +*/ + +const char* Handshake::ssp_name() +{ + if (!m_ssp_info && m_complete) + { + SecPkgContext_PackageInfo pinfo; + + int ret= QueryContextAttributes(&m_sctx, SECPKG_ATTR_PACKAGE_INFO, &pinfo); + + if (SEC_E_OK == ret) + { + m_ssp_info= pinfo.PackageInfo; + } + else + DBUG_PRINT("error", + ("Could not obtain SSP info from authentication context" + ", QueryContextAttributes() failed with error %X", ret)); + } + + return m_ssp_info ? m_ssp_info->Name : NULL; +} + +#endif + + +/** + Process result of @c {Initialize,Accept}SecurityContext() function. + + @param[in] ret return code from @c {Initialize,Accept}SecurityContext() + function + + This function analyses return value of Windows + @c {Initialize,Accept}SecurityContext() function. A call to + @c CompleteAuthToken() is done if requested. If authentication is complete, + this fact is marked in the internal state of the Handshake object. + If errors are detected the object is moved to error state. + + @return True if error has been detected. +*/ + +bool Handshake::process_result(int ret) +{ + /* + First check for errors and set the m_complete flag if the result + indicates that handshake is complete. + */ + + switch (ret) + { + case SEC_E_OK: + case SEC_I_COMPLETE_NEEDED: + // Handshake completed + m_complete= true; + break; + + case SEC_I_CONTINUE_NEEDED: + case SEC_I_COMPLETE_AND_CONTINUE: + break; + + default: + m_error= ret; + return true; + } + + m_have_sec_context= true; + + /* + If the result indicates a need for this, complete the authentication + token. + */ + + switch (ret) + { + case SEC_I_COMPLETE_NEEDED: + case SEC_I_COMPLETE_AND_CONTINUE: + ret= CompleteAuthToken(&m_sctx, &m_output); + if (ret != 0) + { + DBUG_PRINT("error", ("CompleteAuthToken() failed with error %X", ret)); + m_error= ret; + return true; + } + default: + break; + } + + return false; +} + + +/** Security_buffer class implementation **********************************/ + + +Security_buffer::Security_buffer(const Blob &blob): m_allocated(false) +{ + init(blob.ptr(), blob.len()); +} + + +Security_buffer::Security_buffer(): m_allocated(true) +{ + init(NULL, 0); +} + + +void Security_buffer::mem_free(void) +{ + if (m_allocated && NULL != ptr()) + { + FreeContextBuffer(ptr()); + init(NULL, 0); + } +} diff --git a/mysql/libmysql/authentication_win/handshake.h b/mysql/libmysql/authentication_win/handshake.h new file mode 100644 index 0000000..14b1386 --- /dev/null +++ b/mysql/libmysql/authentication_win/handshake.h @@ -0,0 +1,181 @@ +/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef HANDSHAKE_H +#define HANDSHAKE_H + +#include "common.h" + +/** + Name of the SSP (Security Support Provider) to be used for authentication. + + We use "Negotiate" which will find the most secure SSP which can be used + and redirect to that SSP. +*/ +#define SSP_NAME "Negotiate" + +/** + Maximal number of rounds in authentication handshake. + + Server will interrupt authentication handshake with error if client's + identity can not be determined within this many rounds. +*/ +#define MAX_HANDSHAKE_ROUNDS 50 + + +/// Convenience wrapper around @c SecBufferDesc. + +class Security_buffer: public SecBufferDesc +{ + SecBuffer m_buf; ///< A @c SecBuffer instance. + + void init(byte *ptr, size_t len) + { + ulVersion= 0; + cBuffers= 1; + pBuffers= &m_buf; + + m_buf.BufferType= SECBUFFER_TOKEN; + m_buf.pvBuffer= ptr; + m_buf.cbBuffer= (ulong)len; + } + + /// If @c false, no deallocation will be done in the destructor. + const bool m_allocated; + + // Copying/assignment is not supported and can lead to memory leaks + // So declaring copy constructor and assignment operator as private + Security_buffer( const Security_buffer& ); + const Security_buffer& operator=( const Security_buffer& ); + + public: + + Security_buffer(const Blob&); + Security_buffer(); + + ~Security_buffer() + { + mem_free(); + } + + byte* ptr() const + { + return (byte*)m_buf.pvBuffer; + } + + size_t len() const + { + return m_buf.cbBuffer; + } + + const Blob as_blob() const + { + return Blob(ptr(), len()); + } + + void mem_free(void); +}; + + +/// Common base for Handshake_{server,client}. + +class Handshake +{ +public: + + typedef enum {CLIENT, SERVER} side_t; + + Handshake(const char *ssp, side_t side); + virtual ~Handshake(); + + int Handshake::packet_processing_loop(); + + bool virtual is_complete() const + { + return m_complete; + } + + int error() const + { + return m_error; + } + +protected: + + /// Security context object created during the handshake. + CtxtHandle m_sctx; + + /// Credentials of the principal performing this handshake. + CredHandle m_cred; + + /// Stores expiry date of the created security context. + TimeStamp m_expire; + + /// Stores attributes of the created security context. + ULONG m_atts; + + /** + Round of the handshake (starting from round 1). One round + consist of reading packet from the other side, processing it and + optionally sending a reply (see @c packet_processing_loop()). + */ + unsigned int m_round; + + /// If non-zero, stores error code of the last failed operation. + int m_error; + + /// @c true when handshake is complete. + bool m_complete; + + /// @c true when the principal credentials has been determined. + bool m_have_credentials; + + /// @c true when the security context has been created. + bool m_have_sec_context; + + /// Buffer for data to be send to the other side. + Security_buffer m_output; + + bool process_result(int); + + /** + This method is used inside @c packet_processing_loop to process + data packets received from the other end. + + @param[IN] data data to be processed + + @return A blob with data to be sent to the other end or null blob if + no more data needs to be exchanged. + */ + virtual Blob process_data(const Blob &data) =0; + + /// Read packet from the other end. + virtual Blob read_packet() =0; + + /// Write packet to the other end. + virtual int write_packet(Blob &data) =0; + +#ifndef DBUG_OFF + +private: + SecPkgInfo *m_ssp_info; +public: + const char* ssp_name(); + +#endif +}; + + +#endif diff --git a/mysql/libmysql/authentication_win/handshake_client.cpp b/mysql/libmysql/authentication_win/handshake_client.cpp new file mode 100644 index 0000000..4cf6219 --- /dev/null +++ b/mysql/libmysql/authentication_win/handshake_client.cpp @@ -0,0 +1,393 @@ +/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "handshake.h" + +#include // for MYSQL structure + + +/// Client-side context for authentication handshake + +class Handshake_client: public Handshake +{ + /** + Name of the server's service for which we authenticate. + + The service name is sent by server in the initial packet. If no + service name is used, this member is @c NULL. + */ + SEC_WCHAR *m_service_name; + + /// Buffer for storing service name obtained from server. + SEC_WCHAR m_service_name_buf[MAX_SERVICE_NAME_LENGTH]; + + Connection &m_con; + +public: + + Handshake_client(Connection &con, const char *target, size_t len); + ~Handshake_client(); + + Blob first_packet(); + Blob process_data(const Blob&); + + Blob read_packet(); + int write_packet(Blob &data); +}; + + +/** + Create authentication handshake context for client. + + @param con connection for communication with the peer + @param target name of the target service with which we will authenticate + (can be NULL if not used) + + Some security packages (like Kerberos) require providing explicit name + of the service with which a client wants to authenticate. The server-side + authentication plugin sends this name in the greeting packet + (see @c win_auth_handshake_{server,client}() functions). +*/ + +Handshake_client::Handshake_client(Connection &con, + const char *target, size_t len) +: Handshake(SSP_NAME, CLIENT), m_service_name(NULL), m_con(con) +{ + if (!target || 0 == len) + return; + + // Convert received UPN to internal WCHAR representation. + + m_service_name= utf8_to_wchar(target, &len); + + if (m_service_name) + DBUG_PRINT("info", ("Using target service: %S\n", m_service_name)); + else + { + /* + Note: we ignore errors here - m_target will be NULL, the target name + will not be used and system will fall-back to NTLM authentication. But + we leave trace in error log. + */ + ERROR_LOG(WARNING, ("Could not decode UPN sent by the server" + "; target service name will not be used" + " and Kerberos authentication will not work")); + } +} + + +Handshake_client::~Handshake_client() +{ + if (m_service_name) + free(m_service_name); +} + + +Blob Handshake_client::read_packet() +{ + /* + We do a fake read in the first round because first + packet from the server containing UPN must be read + before the handshake context is created and the packet + processing loop starts. We return an empty blob here + and process_data() function will ignore it. + */ + if (m_round == 1) + return Blob(); + + // Otherwise we read packet from the connection. + + Blob packet= m_con.read(); + m_error= m_con.error(); + if (!m_error && packet.is_null()) + m_error= true; // (no specific error code assigned) + + if (m_error) + return Blob(); + + DBUG_PRINT("dump", ("Got the following bytes")); + DBUG_DUMP("dump", packet.ptr(), packet.len()); + return packet; +} + + + +int Handshake_client::write_packet(Blob &data) +{ + /* + Length of the first data payload send by client authentication plugin is + limited to 255 bytes (because it is wrapped inside client authentication + packet and is length-encoded with 1 byte for the length). + + If the data payload is longer than 254 bytes, then it is sent in two parts: + first part of length 255 will be embedded in the authentication packet, + second part will be sent in the following packet. Byte 255 of the first + part contains information about the total length of the payload. It is a + number of blocks of size 512 bytes which is sufficient to store the + combined packets. + + Server's logic for reading first client's payload is as follows + (see Handshake_server::read_packet()): + 1. Read data from the authentication packet, if it is shorter than 255 bytes + then that is all data sent by client. + 2. If there is 255 bytes of data in the authentication packet, read another + packet and append it to the data, skipping byte 255 of the first packet + which can be used to allocate buffer of appropriate size. + */ + + size_t len2= 0; // length of the second part of first data payload + byte saved_byte; // for saving byte 255 in which data length is stored + + if (m_round == 1 && data.len() > 254) + { + len2= data.len() - 254; + DBUG_PRINT("info", ("Splitting first packet of length %lu" + ", %lu bytes will be sent in a second part", + data.len(), len2)); + /* + Store in byte 255 the number of 512b blocks that are needed to + keep all the data. + */ + unsigned block_count= data.len()/512 + ((data.len() % 512) ? 1 : 0); + +#if !defined(DBUG_OFF) && defined(WINAUTH_USE_DBUG_LIB) + + /* + For testing purposes, use wrong block count to see how server + handles this. + */ + DBUG_EXECUTE_IF("winauth_first_packet_test",{ + block_count= data.len() == 601 ? 0 : + data.len() == 602 ? 1 : + block_count; + }); + +#endif + + DBUG_ASSERT(block_count < (unsigned)0x100); + saved_byte= data[254]; + data[254] = block_count; + + data.trim(255); + } + + DBUG_PRINT("dump", ("Sending the following data")); + DBUG_DUMP("dump", data.ptr(), data.len()); + int ret= m_con.write(data); + + if (ret) + return ret; + + // Write second part if it is present. + if (len2) + { + data[254]= saved_byte; + Blob data2(data.ptr() + 254, len2); + DBUG_PRINT("info", ("Sending second part of data")); + DBUG_DUMP("info", data2.ptr(), data2.len()); + ret= m_con.write(data2); + } + + return ret; +} + + +/** + Process data sent by server. + + @param[in] data blob with data from server + + This method analyses data sent by server during authentication handshake. + If client should continue packet exchange, this method returns data to + be sent to the server next. If no more data needs to be exchanged, an + empty blob is returned and @c is_complete() is @c true. In case of error + an empty blob is returned and @c error() gives non-zero error code. + + When invoked for the first time (in the first round of the handshake) + there is no data from the server (data blob is null) and the intial + packet is generated without an input. + + @return Data to be sent to the server next or null blob if no more data + needs to be exchanged or in case of error. +*/ + +Blob Handshake_client::process_data(const Blob &data) +{ +#if !defined(DBUG_OFF) && defined(WINAUTH_USE_DBUG_LIB) + /* + Code for testing the logic for sending the first client payload. + + A fake data of length given by environment variable TEST_PACKET_LENGTH + (or default 255 bytes) is sent to the server. First 2 bytes of the + payload contain its total length (LSB first). The length of test data + is limited to 2048 bytes. + + Upon receiving test data, server will check that data is correct and + refuse connection. If server detects data errors it will crash on + assertion. + + This code is executed if debug flag "winauth_first_packet_test" is + set, e.g. using client option: + + --debug="d,winauth_first_packet_test" + + The same debug flag must be enabled in the server, e.g. using + statement: + + SET GLOBAL debug= '+d,winauth_first_packet_test'; + */ + + static byte test_buf[2048]; + + if (m_round == 1 + && DBUG_EVALUATE_IF("winauth_first_packet_test", true, false)) + { + const char *env= getenv("TEST_PACKET_LENGTH"); + size_t len= env ? atoi(env) : 0; + if (!len) + len= 255; + if (len > sizeof(test_buf)) + len= sizeof(test_buf); + + // Store data length in first 2 bytes. + byte *ptr= test_buf; + *ptr++= len & 0xFF; + *ptr++= len >> 8; + + // Fill remaining bytes with known values. + for (byte b= 0; ptr < test_buf + len; ++ptr, ++b) + *ptr= b; + + return Blob(test_buf, len); + }; + +#endif + + Security_buffer input(data); + SECURITY_STATUS ret; + + m_output.mem_free(); + + ret= InitializeSecurityContextW( + &m_cred, + m_round == 1 ? NULL : &m_sctx, // partial context + m_service_name, // service name + ASC_REQ_ALLOCATE_MEMORY, // requested attributes + 0, // reserved + SECURITY_NETWORK_DREP, // data representation + m_round == 1 ? NULL : &input, // input data + 0, // reserved + &m_sctx, // context + &m_output, // output data + &m_atts, // attributes + &m_expire); // expire date + + if (process_result(ret)) + { + DBUG_PRINT("error", + ("InitializeSecurityContext() failed with error %X", ret)); + return Blob(); + } + + return m_output.as_blob(); +} + + +/**********************************************************************/ + + +/** + Perform authentication handshake from client side. + + @param[in] vio pointer to @c MYSQL_PLUGIN_VIO instance to be used + for communication with the server + @param[in] mysql pointer to a MySQL connection for which we authenticate + + After reading the initial packet from server, containing its UPN to be + used as service name, client starts packet exchange by sending the first + packet in this exchange. While handshake is not yet completed, client + reads packets sent by the server and process them, possibly generating new + data to be sent to the server. + + This function reports errors. + + @return 0 on success. +*/ + +int win_auth_handshake_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql) +{ + DBUG_ENTER("win_auth_handshake_client"); + + /* + Check if we should enable logging. + */ + { + const char *opt= getenv("AUTHENTICATION_WIN_LOG"); + int opt_val= opt ? atoi(opt) : 0; + if (opt && !opt_val) + { + if (!_strnicmp("on", opt, 2)) opt_val= 2; + if (!_strnicmp("yes", opt, 3)) opt_val= 2; + if (!_strnicmp("true", opt, 4)) opt_val= 2; + if (!_strnicmp("debug", opt, 5)) opt_val= 4; + if (!_strnicmp("dbug", opt, 4)) opt_val= 4; + } + set_log_level(opt_val); + } + + ERROR_LOG(INFO, ("Authentication handshake for account %s", mysql->user)); + + // Create connection object. + + Connection con(vio); + DBUG_ASSERT(!con.error()); + + // Read initial packet from server containing service name. + + Blob service_name= con.read(); + + if (con.error() || service_name.is_null()) + { + ERROR_LOG(ERROR, ("Error reading initial packet")); + DBUG_RETURN(CR_ERROR); + } + DBUG_PRINT("info", ("Got initial packet of length %d", service_name.len())); + + // Create authentication handshake context using the given service name. + + Handshake_client hndshk(con, + service_name[0] ? (char *)service_name.ptr() : NULL, + service_name.len()); + if (hndshk.error()) + { + ERROR_LOG(ERROR, ("Could not create authentication handshake context")); + DBUG_RETURN(CR_ERROR); + } + + DBUG_ASSERT(!hndshk.error()); + + /* + Read and process packets from server until handshake is complete. + Note that the first read from server is dummy + (see Handshake_client::read_packet()) as we already have read the + first packet to establish service name. + */ + if (hndshk.packet_processing_loop()) + DBUG_RETURN(CR_ERROR); + + DBUG_ASSERT(!hndshk.error() && hndshk.is_complete()); + + DBUG_RETURN(CR_OK); +} diff --git a/mysql/libmysql/authentication_win/log_client.cpp b/mysql/libmysql/authentication_win/log_client.cpp new file mode 100644 index 0000000..6973c95 --- /dev/null +++ b/mysql/libmysql/authentication_win/log_client.cpp @@ -0,0 +1,65 @@ +/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include +#include "common.h" + + +// Client-side logging function + +void error_log_vprint(error_log_level::type level, + const char *fmt, va_list args) +{ + const char *level_string= ""; + int log_level= get_log_level(); + + switch (level) + { + case error_log_level::INFO: + if (3 > log_level) + return; + level_string= "Note"; + break; + case error_log_level::WARNING: + if (2 > log_level) + return; + level_string= "Warning"; + break; + case error_log_level::ERROR: + if (1 > log_level) + return; + level_string= "ERROR"; + break; + } + + fprintf(stderr, "Windows Authentication Plugin %s: ", level_string); + vfprintf(stderr, fmt, args); + fputc('\n', stderr); + fflush(stderr); +} + + +// Trivial implementation of log-level setting storage. + +void set_log_level(unsigned int level) +{ + opt_auth_win_log_level= level; +} + + +unsigned int get_log_level(void) +{ + return opt_auth_win_log_level; +} diff --git a/mysql/libmysql/authentication_win/plugin_client.cpp b/mysql/libmysql/authentication_win/plugin_client.cpp new file mode 100644 index 0000000..d25aae8 --- /dev/null +++ b/mysql/libmysql/authentication_win/plugin_client.cpp @@ -0,0 +1,67 @@ +/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include +#include +#include + +#include "common.h" + +/* + The following MS C++ specific pragma embeds a comment in the resulting + object file. A "lib" comment tells the linker to use the specified + library, thus the dependency is handled automagically. +*/ + +#ifdef _MSC_VER +#pragma comment(lib, "Secur32") +#endif + +static int win_auth_client_plugin_init(char*, size_t, int, va_list) +{ + return 0; +} + + +static int win_auth_client_plugin_deinit() +{ + return 0; +} + + +int win_auth_handshake_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql); + + +/* + Client plugin declaration. This is added to mysql_client_builtins[] + in sql-common/client.c +*/ + +extern "C" +st_mysql_client_plugin_AUTHENTICATION win_auth_client_plugin= +{ + MYSQL_CLIENT_AUTHENTICATION_PLUGIN, + MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION, + "authentication_windows_client", + "Rafal Somla", + "Windows Authentication Plugin - client side", + {0,1,0}, + "GPL", + NULL, + win_auth_client_plugin_init, + win_auth_client_plugin_deinit, + NULL, // option handling + win_auth_handshake_client +}; diff --git a/mysql/libmysql/client_settings.h b/mysql/libmysql/client_settings.h new file mode 100644 index 0000000..3d44a81 --- /dev/null +++ b/mysql/libmysql/client_settings.h @@ -0,0 +1,73 @@ +/* Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef CLIENT_SETTINGS_INCLUDED +#define CLIENT_SETTINGS_INCLUDED +#else +#error You have already included an client_settings.h and it should not be included twice +#endif /* CLIENT_SETTINGS_INCLUDED */ + +extern uint mysql_port; +extern char * mysql_unix_port; + +/* + Note: CLIENT_CAPABILITIES is also defined in sql/client_settings.h. + When adding capabilities here, consider if they should be also added to + the server's version. +*/ +#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | \ + CLIENT_LONG_FLAG | \ + CLIENT_TRANSACTIONS | \ + CLIENT_PROTOCOL_41 | \ + CLIENT_RESERVED2 | \ + CLIENT_MULTI_RESULTS | \ + CLIENT_PS_MULTI_RESULTS | \ + CLIENT_PLUGIN_AUTH | \ + CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA | \ + CLIENT_CONNECT_ATTRS | \ + CLIENT_SESSION_TRACK | \ + CLIENT_DEPRECATE_EOF) + +void read_user_name(char *name); +my_bool handle_local_infile(MYSQL *mysql, const char *net_filename); + +void mysql_read_default_options(struct st_mysql_options *options, + const char *filename,const char *group); +void mysql_detach_stmt_list(LIST **stmt_list, const char *func_name); +MYSQL * STDCALL +cli_mysql_real_connect(MYSQL *mysql,const char *host, const char *user, + const char *passwd, const char *db, + uint port, const char *unix_socket,ulong client_flag); + +void cli_mysql_close(MYSQL *mysql); + +MYSQL_FIELD * cli_list_fields(MYSQL *mysql); +my_bool cli_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt); +MYSQL_DATA * cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, + uint fields); +int cli_stmt_execute(MYSQL_STMT *stmt); +int cli_read_binary_rows(MYSQL_STMT *stmt); +int cli_unbuffered_fetch(MYSQL *mysql, char **row); +const char * cli_read_statistics(MYSQL *mysql); +int cli_read_change_user_result(MYSQL *mysql); + +#ifdef EMBEDDED_LIBRARY +int init_embedded_server(int argc, char **argv, char **groups); +void end_embedded_server(); +#endif /*EMBEDDED_LIBRARY*/ + +C_MODE_START +extern int mysql_init_character_set(MYSQL *mysql); +C_MODE_END diff --git a/mysql/libmysql/errmsg.c b/mysql/libmysql/errmsg.c new file mode 100644 index 0000000..5534b6d --- /dev/null +++ b/mysql/libmysql/errmsg.c @@ -0,0 +1,130 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation. + + There are special exceptions to the terms and conditions of the GPL as it + is applied to this software. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Error messages for MySQL clients */ +/* (Error messages for the daemon are in share/language/errmsg.sys) */ + +#include +#include +#include "errmsg.h" + +const char *client_errors[]= +{ + "Unknown MySQL error", + "Can't create UNIX socket (%d)", + "Can't connect to local MySQL server through socket '%-.100s' (%d)", + "Can't connect to MySQL server on '%-.100s' (%d)", + "Can't create TCP/IP socket (%d)", + "Unknown MySQL server host '%-.100s' (%d)", + "MySQL server has gone away", + "Protocol mismatch; server version = %d, client version = %d", + "MySQL client ran out of memory", + "Wrong host info", + "Localhost via UNIX socket", + "%-.100s via TCP/IP", + "Error in server handshake", + "Lost connection to MySQL server during query", + "Commands out of sync; you can't run this command now", + "Named pipe: %-.32s", + "Can't wait for named pipe to host: %-.64s pipe: %-.32s (%lu)", + "Can't open named pipe to host: %-.64s pipe: %-.32s (%lu)", + "Can't set state of named pipe to host: %-.64s pipe: %-.32s (%lu)", + "Can't initialize character set %-.32s (path: %-.100s)", + "Got packet bigger than 'max_allowed_packet' bytes", + "Embedded server", + "Error on SHOW SLAVE STATUS:", + "Error on SHOW SLAVE HOSTS:", + "Error connecting to slave:", + "Error connecting to master:", + "SSL connection error: %-.100s", + "Malformed packet", + "This client library is licensed only for use with MySQL servers having '%s' license", + "Invalid use of null pointer", + "Statement not prepared", + "No data supplied for parameters in prepared statement", + "Data truncated", + "No parameters exist in the statement", + "Invalid parameter number", + "Can't send long data for non-string/non-binary data types (parameter: %d)", + "Using unsupported buffer type: %d (parameter: %d)", + "Shared memory: %-.100s", + "Can't open shared memory; client could not create request event (%lu)", + "Can't open shared memory; no answer event received from server (%lu)", + "Can't open shared memory; server could not allocate file mapping (%lu)", + "Can't open shared memory; server could not get pointer to file mapping (%lu)", + "Can't open shared memory; client could not allocate file mapping (%lu)", + "Can't open shared memory; client could not get pointer to file mapping (%lu)", + "Can't open shared memory; client could not create %s event (%lu)", + "Can't open shared memory; no answer from server (%lu)", + "Can't open shared memory; cannot send request event to server (%lu)", + "Wrong or unknown protocol", + "Invalid connection handle", + "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)", + "Row retrieval was canceled by mysql_stmt_close() call", + "Attempt to read column without prior row fetch", + "Prepared statement contains no metadata", + "Attempt to read a row while there is no result set associated with the statement", + "This feature is not implemented yet", + "Lost connection to MySQL server at '%s', system error: %d", + "Statement closed indirectly because of a preceding %s() call", + "The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again", + "This handle is already connected. Use a separate handle for each connection.", + "Authentication plugin '%s' cannot be loaded: %s", + "There is an attribute with the same name already", + "Authentication plugin '%s' reported error: %s", + "Insecure API function call: '%s' Use instead: '%s'", + "" +}; + +const char* get_client_errmsg(int nr) +{ + return client_errors[nr - CR_ERROR_FIRST]; +} + +/* + Register client error messages for use with my_error(). + + SYNOPSIS + init_client_errs() + + RETURN + void +*/ + +void init_client_errs(void) +{ + compile_time_assert(array_elements(client_errors) == + (CR_ERROR_LAST - CR_ERROR_FIRST + 2)); + (void) my_error_register(get_client_errmsg, CR_ERROR_FIRST, CR_ERROR_LAST); +} + + +/* + Unregister client error messages. + + SYNOPSIS + finish_client_errs() + + RETURN + void +*/ + +void finish_client_errs(void) +{ + (void) my_error_unregister(CR_ERROR_FIRST, CR_ERROR_LAST); +} diff --git a/mysql/libmysql/get_password.c b/mysql/libmysql/get_password.c new file mode 100644 index 0000000..d904fbe --- /dev/null +++ b/mysql/libmysql/get_password.c @@ -0,0 +1,205 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation. + + There are special exceptions to the terms and conditions of the GPL as it + is applied to this software. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* +** Ask for a password from tty +** This is an own file to avoid conflicts with curses +*/ +#include +#include +#include "mysql.h" +#include +#include + +#ifdef HAVE_GETPASS +#ifdef HAVE_PWD_H +#include +#endif /* HAVE_PWD_H */ +#else /* ! HAVE_GETPASS */ +#if !defined(_WIN32) +#ifdef HAVE_SYS_IOCTL_H +#include +#endif +#ifdef HAVE_TERMIOS_H /* For tty-password */ +#include +#define TERMIO struct termios +#else +#ifdef HAVE_TERMIO_H /* For tty-password */ +#include +#define TERMIO struct termio +#else +#include +#define TERMIO struct sgttyb +#endif +#endif +#else +#include +#endif /* _WIN32 */ +#endif /* HAVE_GETPASS */ + +#ifdef HAVE_GETPASSPHRASE /* For Solaris */ +#define getpass(A) getpassphrase(A) +#endif + +#if defined(_WIN32) +/* were just going to fake it here and get input from the keyboard */ +char *get_tty_password(const char *opt_message) +{ + char to[80]; + char *pos=to,*end=to+sizeof(to)-1; + int i=0; + DBUG_ENTER("get_tty_password"); + _cputs(opt_message ? opt_message : "Enter password: "); + for (;;) + { + char tmp; + tmp=_getch(); + if (tmp == '\b' || (int) tmp == 127) + { + if (pos != to) + { + _cputs("\b \b"); + pos--; + continue; + } + } + if (tmp == '\n' || tmp == '\r' || tmp == 3) + break; + if (iscntrl(tmp) || pos == end) + continue; + _cputs("*"); + *(pos++) = tmp; + } + while (pos != to && isspace(pos[-1]) == ' ') + pos--; /* Allow dummy space at end */ + *pos=0; + _cputs("\n"); + DBUG_RETURN(my_strdup(PSI_NOT_INSTRUMENTED, + to,MYF(MY_FAE))); +} + +#else + +#ifndef HAVE_GETPASS +/* + Can't use fgets, because readline will get confused + length is max number of chars in to, not counting \0 + to will not include the eol characters. +*/ + +static void get_password(char *to,uint length,int fd, my_bool echo) +{ + char *pos=to,*end=to+length; + + for (;;) + { + char tmp; + if (my_read(fd,&tmp,1,MYF(0)) != 1) + break; + if (tmp == '\b' || (int) tmp == 127) + { + if (pos != to) + { + if (echo) + { + fputs("\b \b",stdout); + fflush(stdout); + } + pos--; + continue; + } + } + if (tmp == '\n' || tmp == '\r' || tmp == 3) + break; + if (iscntrl(tmp) || pos == end) + continue; + if (echo) + { + fputc('*',stdout); + fflush(stdout); + } + *(pos++) = tmp; + } + while (pos != to && isspace(pos[-1]) == ' ') + pos--; /* Allow dummy space at end */ + *pos=0; + return; +} +#endif /* ! HAVE_GETPASS */ + + +char *get_tty_password(const char *opt_message) +{ +#ifdef HAVE_GETPASS + char *passbuff; +#else /* ! HAVE_GETPASS */ + TERMIO org,tmp; +#endif /* HAVE_GETPASS */ + char buff[80]; + + DBUG_ENTER("get_tty_password"); + +#ifdef HAVE_GETPASS + passbuff = getpass(opt_message ? opt_message : "Enter password: "); + + /* copy the password to buff and clear original (static) buffer */ + my_stpnmov(buff, passbuff, sizeof(buff) - 1); +#ifdef _PASSWORD_LEN + memset(passbuff, 0, _PASSWORD_LEN); +#endif +#else + if (isatty(fileno(stdout))) + { + fputs(opt_message ? opt_message : "Enter password: ",stdout); + fflush(stdout); + } +#if defined(HAVE_TERMIOS_H) + tcgetattr(fileno(stdin), &org); + tmp = org; + tmp.c_lflag &= ~(ECHO | ISIG | ICANON); + tmp.c_cc[VMIN] = 1; + tmp.c_cc[VTIME] = 0; + tcsetattr(fileno(stdin), TCSADRAIN, &tmp); + get_password(buff, sizeof(buff)-1, fileno(stdin), isatty(fileno(stdout))); + tcsetattr(fileno(stdin), TCSADRAIN, &org); +#elif defined(HAVE_TERMIO_H) + ioctl(fileno(stdin), (int) TCGETA, &org); + tmp=org; + tmp.c_lflag &= ~(ECHO | ISIG | ICANON); + tmp.c_cc[VMIN] = 1; + tmp.c_cc[VTIME]= 0; + ioctl(fileno(stdin),(int) TCSETA, &tmp); + get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout))); + ioctl(fileno(stdin),(int) TCSETA, &org); +#else + gtty(fileno(stdin), &org); + tmp=org; + tmp.sg_flags &= ~ECHO; + tmp.sg_flags |= RAW; + stty(fileno(stdin), &tmp); + get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout))); + stty(fileno(stdin), &org); +#endif + if (isatty(fileno(stdout))) + fputc('\n',stdout); +#endif /* HAVE_GETPASS */ + + DBUG_RETURN(my_strdup(PSI_NOT_INSTRUMENTED, + buff,MYF(MY_FAE))); +} +#endif /* _WIN32 */ diff --git a/mysql/libmysql/libmysql.c b/mysql/libmysql/libmysql.c new file mode 100644 index 0000000..51aab62 --- /dev/null +++ b/mysql/libmysql/libmysql.c @@ -0,0 +1,5077 @@ +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include +#include +#include +#include +#include "mysql.h" +#include "mysql_version.h" +#include "mysqld_error.h" +#include "errmsg.h" +#include +#include +#include +#include +#include "my_thread_local.h" +#ifdef HAVE_PWD_H +#include +#endif +#ifdef HAVE_SYS_SELECT_H +#include +#endif +#ifdef HAVE_POLL +#include +#endif +#ifdef HAVE_SYS_UN_H +#include +#endif +#if !defined(_WIN32) +#include /* because of signal() */ +#endif +#ifndef INADDR_NONE +#define INADDR_NONE -1 +#endif + +#include +#include "client_settings.h" +#include "mysql_trace.h" + + + +#ifdef EMBEDDED_LIBRARY +#undef net_flush +my_bool net_flush(NET *net); +#endif + +#if defined(_WIN32) +/* socket_errno is defined in my_global.h for all platforms */ +#define perror(A) +#else +#include +#define SOCKET_ERROR -1 +#endif /* _WIN32 */ + +/* + If allowed through some configuration, then this needs to + be changed +*/ +#define MAX_LONG_DATA_LENGTH 8192 +#define unsigned_field(A) ((A)->flags & UNSIGNED_FLAG) + +static void append_wild(char *to,char *end,const char *wild); + +static my_bool mysql_client_init= 0; +static my_bool org_my_init_done= 0; + +typedef struct st_mysql_stmt_extension +{ + MEM_ROOT fields_mem_root; +} MYSQL_STMT_EXT; + + +/* + Initialize the MySQL client library + + SYNOPSIS + mysql_server_init() + + NOTES + Should be called before doing any other calls to the MySQL + client library to initialize thread specific variables etc. + It's called by mysql_init() to ensure that things will work for + old not threaded applications that doesn't call mysql_server_init() + directly. + + RETURN + 0 ok + 1 could not initialize environment (out of memory or thread keys) +*/ + +int STDCALL mysql_server_init(int argc MY_ATTRIBUTE((unused)), + char **argv MY_ATTRIBUTE((unused)), + char **groups MY_ATTRIBUTE((unused))) +{ + int result= 0; + if (!mysql_client_init) + { + mysql_client_init=1; + org_my_init_done=my_init_done; + if (my_init()) /* Will init threads */ + return 1; + init_client_errs(); + if (mysql_client_plugin_init()) + return 1; +#if defined (HAVE_OPENSSL) && !defined(HAVE_YASSL) + ssl_start(); +#endif + + if (!mysql_port) + { + char *env; + struct servent *serv_ptr MY_ATTRIBUTE((unused)); + + mysql_port = MYSQL_PORT; + + /* + if builder specifically requested a default port, use that + (even if it coincides with our factory default). + only if they didn't do we check /etc/services (and, failing + on that, fall back to the factory default of 3306). + either default can be overridden by the environment variable + MYSQL_TCP_PORT, which in turn can be overridden with command + line options. + */ + +#if MYSQL_PORT_DEFAULT == 0 + if ((serv_ptr= getservbyname("mysql", "tcp"))) + mysql_port= (uint) ntohs((ushort) serv_ptr->s_port); +#endif + if ((env= getenv("MYSQL_TCP_PORT"))) + mysql_port=(uint) atoi(env); + } + + if (!mysql_unix_port) + { + char *env; +#ifdef _WIN32 + mysql_unix_port = (char*) MYSQL_NAMEDPIPE; +#else + mysql_unix_port = (char*) MYSQL_UNIX_ADDR; +#endif + if ((env = getenv("MYSQL_UNIX_PORT"))) + mysql_unix_port = env; + } + mysql_debug(NullS); +#if defined(SIGPIPE) && !defined(_WIN32) + (void) signal(SIGPIPE, SIG_IGN); +#endif +#ifdef EMBEDDED_LIBRARY + if (argc > -1) + result= init_embedded_server(argc, argv, groups); +#endif + } + else + result= (int)my_thread_init(); /* Init if new thread */ + return result; +} + + +/* + Free all memory and resources used by the client library + + NOTES + When calling this there should not be any other threads using + the library. + + To make things simpler when used with windows dll's (which calls this + function automaticly), it's safe to call this function multiple times. +*/ + + +void STDCALL mysql_server_end() +{ + if (!mysql_client_init) + return; + + mysql_client_plugin_deinit(); + +#ifdef EMBEDDED_LIBRARY + end_embedded_server(); +#endif + finish_client_errs(); + vio_end(); + + /* If library called my_init(), free memory allocated by it */ + if (!org_my_init_done) + { + my_end(0); + } + else + { + free_charsets(); + mysql_thread_end(); + } + + mysql_client_init= org_my_init_done= 0; +} + +my_bool STDCALL mysql_thread_init() +{ + return my_thread_init(); +} + +void STDCALL mysql_thread_end() +{ + my_thread_end(); +} + + +/* + Expand wildcard to a sql string +*/ + +static void +append_wild(char *to, char *end, const char *wild) +{ + end-=5; /* Some extra */ + if (wild && wild[0]) + { + to=my_stpcpy(to," like '"); + while (*wild && to < end) + { + if (*wild == '\\' || *wild == '\'') + *to++='\\'; + *to++= *wild++; + } + if (*wild) /* Too small buffer */ + *to++='%'; /* Nicer this way */ + to[0]='\''; + to[1]=0; + } +} + + +/************************************************************************** + Init debugging if MYSQL_DEBUG environment variable is found +**************************************************************************/ + +void STDCALL +mysql_debug(const char *debug MY_ATTRIBUTE((unused))) +{ +#ifndef DBUG_OFF + char *env; + if (debug) + { + DBUG_PUSH(debug); + } + else if ((env = getenv("MYSQL_DEBUG"))) + { + DBUG_PUSH(env); +#if !defined(_WINVER) && !defined(WINVER) + puts("\n-------------------------------------------------------"); + puts("MYSQL_DEBUG found. libmysql started with the following:"); + puts(env); + puts("-------------------------------------------------------\n"); +#else + { + char buff[80]; + buff[sizeof(buff)-1]= 0; + strxnmov(buff,sizeof(buff)-1,"libmysql: ", env, NullS); + MessageBox((HWND) 0,"Debugging variable MYSQL_DEBUG used",buff,MB_OK); + } +#endif + } +#endif +} + + +/************************************************************************** + Change user and database +**************************************************************************/ + +my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, + const char *passwd, const char *db) +{ + int rc; + CHARSET_INFO *saved_cs= mysql->charset; + char *saved_user= mysql->user; + char *saved_passwd= mysql->passwd; + char *saved_db= mysql->db; + + DBUG_ENTER("mysql_change_user"); + + /* Get the connection-default character set. */ + + if (mysql_init_character_set(mysql)) + { + mysql->charset= saved_cs; + DBUG_RETURN(TRUE); + } + + /* + Use an empty string instead of NULL. + Alloc user and password on heap because mysql_reconnect() + calls mysql_close() on success. + */ + mysql->user= my_strdup(PSI_NOT_INSTRUMENTED, user ? user : "", MYF(MY_WME)); + mysql->passwd= my_strdup(PSI_NOT_INSTRUMENTED, passwd ? passwd : "", + MYF(MY_WME)); + mysql->db= 0; + + rc= run_plugin_auth(mysql, 0, 0, 0, db); + + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + + /* + The server will close all statements no matter was the attempt + to change user successful or not. + */ + mysql_detach_stmt_list(&mysql->stmts, "mysql_change_user"); + if (rc == 0) + { + /* Free old connect information */ + my_free(saved_user); + my_free(saved_passwd); + my_free(saved_db); + + /* alloc new connect information */ + mysql->db= db ? my_strdup(PSI_NOT_INSTRUMENTED, + db, MYF(MY_WME)) : 0; + } + else + { + /* Free temporary connect information */ + my_free(mysql->user); + my_free(mysql->passwd); + my_free(mysql->db); + + /* Restore saved state */ + mysql->charset= saved_cs; + mysql->user= saved_user; + mysql->passwd= saved_passwd; + mysql->db= saved_db; + } + + DBUG_RETURN(rc); +} + +#if defined(HAVE_GETPWUID) && defined(NO_GETPWUID_DECL) +struct passwd *getpwuid(uid_t); +char* getlogin(void); +#endif + +#if !defined(_WIN32) + +void read_user_name(char *name) +{ + DBUG_ENTER("read_user_name"); + if (geteuid() == 0) + (void) my_stpcpy(name,"root"); /* allow use of surun */ + else + { +#ifdef HAVE_GETPWUID + struct passwd *skr; + const char *str; + if ((str=getlogin()) == NULL) + { + if ((skr=getpwuid(geteuid())) != NULL) + str=skr->pw_name; + else if (!(str=getenv("USER")) && !(str=getenv("LOGNAME")) && + !(str=getenv("LOGIN"))) + str="UNKNOWN_USER"; + } + (void) strmake(name,str,USERNAME_LENGTH); +#elif HAVE_CUSERID + (void) cuserid(name); +#else + my_stpcpy(name,"UNKNOWN_USER"); +#endif + } + DBUG_VOID_RETURN; +} + +#else /* If Windows */ + +void read_user_name(char *name) +{ + char *str=getenv("USER"); /* ODBC will send user variable */ + strmake(name,str ? str : "ODBC", USERNAME_LENGTH); +} + +#endif + +my_bool handle_local_infile(MYSQL *mysql, const char *net_filename) +{ + my_bool result= 1; + uint packet_length=MY_ALIGN(mysql->net.max_packet-16,IO_SIZE); + NET *net= &mysql->net; + int readcount; + void *li_ptr; /* pass state to local_infile functions */ + char *buf; /* buffer to be filled by local_infile_read */ + struct st_mysql_options *options= &mysql->options; + DBUG_ENTER("handle_local_infile"); + + /* check that we've got valid callback functions */ + if (!(options->local_infile_init && + options->local_infile_read && + options->local_infile_end && + options->local_infile_error)) + { + /* if any of the functions is invalid, set the default */ + mysql_set_local_infile_default(mysql); + } + + /* copy filename into local memory and allocate read buffer */ + if (!(buf=my_malloc(PSI_NOT_INSTRUMENTED, + packet_length, MYF(0)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(1); + } + + /* initialize local infile (open file, usually) */ + if ((*options->local_infile_init)(&li_ptr, net_filename, + options->local_infile_userdata)) + { + MYSQL_TRACE(SEND_FILE, mysql, (0, NULL)); + (void) my_net_write(net,(const uchar*) "",0); /* Server needs one packet */ + net_flush(net); + MYSQL_TRACE(PACKET_SENT, mysql, (0)); + my_stpcpy(net->sqlstate, unknown_sqlstate); + net->last_errno= + (*options->local_infile_error)(li_ptr, + net->last_error, + sizeof(net->last_error)-1); + MYSQL_TRACE(ERROR, mysql, ()); + goto err; + } + + /* read blocks of data from local infile callback */ + while ((readcount = + (*options->local_infile_read)(li_ptr, buf, + packet_length)) > 0) + { + MYSQL_TRACE(SEND_FILE, mysql, ((size_t)readcount, (const unsigned char*)buf)); + if (my_net_write(net, (uchar*) buf, readcount)) + { + DBUG_PRINT("error", + ("Lost connection to MySQL server during LOAD DATA of local file")); + set_mysql_error(mysql, CR_SERVER_LOST, unknown_sqlstate); + goto err; + } + MYSQL_TRACE(PACKET_SENT, mysql, (readcount)); + } + + /* Send empty packet to mark end of file */ + MYSQL_TRACE(SEND_FILE, mysql, (0, NULL)); + if (my_net_write(net, (const uchar*) "", 0) || net_flush(net)) + { + set_mysql_error(mysql, CR_SERVER_LOST, unknown_sqlstate); + goto err; + } + MYSQL_TRACE(PACKET_SENT, mysql, (0)); + + if (readcount < 0) + { + net->last_errno= + (*options->local_infile_error)(li_ptr, + net->last_error, + sizeof(net->last_error)-1); + MYSQL_TRACE(ERROR, mysql, ()); + goto err; + } + + result=0; /* Ok */ + +err: + /* free up memory allocated with _init, usually */ + (*options->local_infile_end)(li_ptr); + my_free(buf); + DBUG_RETURN(result); +} + + +/**************************************************************************** + Default handlers for LOAD LOCAL INFILE +****************************************************************************/ + +typedef struct st_default_local_infile +{ + int fd; + int error_num; + const char *filename; + char error_msg[LOCAL_INFILE_ERROR_LEN]; +} default_local_infile_data; + + +/* + Open file for LOAD LOCAL INFILE + + SYNOPSIS + default_local_infile_init() + ptr Store pointer to internal data here + filename File name to open. This may be in unix format ! + + + NOTES + Even if this function returns an error, the load data interface + guarantees that default_local_infile_end() is called. + + RETURN + 0 ok + 1 error +*/ + +static int default_local_infile_init(void **ptr, const char *filename, + void *userdata MY_ATTRIBUTE ((unused))) +{ + default_local_infile_data *data; + char tmp_name[FN_REFLEN]; + + if (!(*ptr= data= ((default_local_infile_data *) + my_malloc(PSI_NOT_INSTRUMENTED, + sizeof(default_local_infile_data), MYF(0))))) + return 1; /* out of memory */ + + data->error_msg[0]= 0; + data->error_num= 0; + data->filename= filename; + + fn_format(tmp_name, filename, "", "", MY_UNPACK_FILENAME); + if ((data->fd = my_open(tmp_name, O_RDONLY, MYF(0))) < 0) + { + char errbuf[MYSYS_STRERROR_SIZE]; + data->error_num= my_errno(); + my_snprintf(data->error_msg, sizeof(data->error_msg)-1, + EE(EE_FILENOTFOUND), tmp_name, data->error_num, + my_strerror(errbuf, sizeof(errbuf), data->error_num)); + return 1; + } + return 0; /* ok */ +} + + +/* + Read data for LOAD LOCAL INFILE + + SYNOPSIS + default_local_infile_read() + ptr Points to handle allocated by _init + buf Read data here + buf_len Ammount of data to read + + RETURN + > 0 number of bytes read + == 0 End of data + < 0 Error +*/ + +static int default_local_infile_read(void *ptr, char *buf, uint buf_len) +{ + int count; + default_local_infile_data*data = (default_local_infile_data *) ptr; + + if ((count= (int) my_read(data->fd, (uchar *) buf, buf_len, MYF(0))) < 0) + { + char errbuf[MYSYS_STRERROR_SIZE]; + data->error_num= EE_READ; /* the errmsg for not entire file read */ + my_snprintf(data->error_msg, sizeof(data->error_msg)-1, + EE(EE_READ), data->filename, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + return count; +} + + +/* + Read data for LOAD LOCAL INFILE + + SYNOPSIS + default_local_infile_end() + ptr Points to handle allocated by _init + May be NULL if _init failed! + + RETURN +*/ + +static void default_local_infile_end(void *ptr) +{ + default_local_infile_data *data= (default_local_infile_data *) ptr; + if (data) /* If not error on open */ + { + if (data->fd >= 0) + my_close(data->fd, MYF(MY_WME)); + my_free(ptr); + } +} + + +/* + Return error from LOAD LOCAL INFILE + + SYNOPSIS + default_local_infile_end() + ptr Points to handle allocated by _init + May be NULL if _init failed! + error_msg Store error text here + error_msg_len Max lenght of error_msg + + RETURN + error message number +*/ + +static int +default_local_infile_error(void *ptr, char *error_msg, uint error_msg_len) +{ + default_local_infile_data *data = (default_local_infile_data *) ptr; + if (data) /* If not error on open */ + { + strmake(error_msg, data->error_msg, error_msg_len); + return data->error_num; + } + /* This can only happen if we got error on malloc of handle */ + my_stpcpy(error_msg, ER(CR_OUT_OF_MEMORY)); + return CR_OUT_OF_MEMORY; +} + + +void +mysql_set_local_infile_handler(MYSQL *mysql, + int (*local_infile_init)(void **, const char *, + void *), + int (*local_infile_read)(void *, char *, uint), + void (*local_infile_end)(void *), + int (*local_infile_error)(void *, char *, uint), + void *userdata) +{ + mysql->options.local_infile_init= local_infile_init; + mysql->options.local_infile_read= local_infile_read; + mysql->options.local_infile_end= local_infile_end; + mysql->options.local_infile_error= local_infile_error; + mysql->options.local_infile_userdata = userdata; +} + + +void mysql_set_local_infile_default(MYSQL *mysql) +{ + mysql->options.local_infile_init= default_local_infile_init; + mysql->options.local_infile_read= default_local_infile_read; + mysql->options.local_infile_end= default_local_infile_end; + mysql->options.local_infile_error= default_local_infile_error; +} + + +/************************************************************************** + Do a query. If query returned rows, free old rows. + Read data by mysql_store_result or by repeat call of mysql_fetch_row +**************************************************************************/ + +int STDCALL +mysql_query(MYSQL *mysql, const char *query) +{ + return mysql_real_query(mysql,query, (ulong) strlen(query)); +} + + +/************************************************************************** + Return next field of the query results +**************************************************************************/ + +MYSQL_FIELD * STDCALL +mysql_fetch_field(MYSQL_RES *result) +{ + if (result->current_field >= result->field_count) + return(NULL); + return &result->fields[result->current_field++]; +} + + +/************************************************************************** + Move to a specific row and column +**************************************************************************/ + +void STDCALL +mysql_data_seek(MYSQL_RES *result, my_ulonglong row) +{ + MYSQL_ROWS *tmp=0; + DBUG_PRINT("info",("mysql_data_seek(%ld)",(long) row)); + if (result->data) + for (tmp=result->data->data; row-- && tmp ; tmp = tmp->next) ; + result->current_row=0; + result->data_cursor = tmp; +} + + +/************************************************************************* + put the row or field cursor one a position one got from mysql_row_tell() + This doesn't restore any data. The next mysql_fetch_row or + mysql_fetch_field will return the next row or field after the last used +*************************************************************************/ + +MYSQL_ROW_OFFSET STDCALL +mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET row) +{ + MYSQL_ROW_OFFSET return_value=result->data_cursor; + result->current_row= 0; + result->data_cursor= row; + return return_value; +} + + +MYSQL_FIELD_OFFSET STDCALL +mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET field_offset) +{ + MYSQL_FIELD_OFFSET return_value=result->current_field; + result->current_field=field_offset; + return return_value; +} + + +/***************************************************************************** + List all databases +*****************************************************************************/ + +MYSQL_RES * STDCALL +mysql_list_dbs(MYSQL *mysql, const char *wild) +{ + char buff[255]; + DBUG_ENTER("mysql_list_dbs"); + + append_wild(my_stpcpy(buff,"show databases"),buff+sizeof(buff),wild); + if (mysql_query(mysql,buff)) + DBUG_RETURN(0); + DBUG_RETURN (mysql_store_result(mysql)); +} + + +/***************************************************************************** + List all tables in a database + If wild is given then only the tables matching wild is returned +*****************************************************************************/ + +MYSQL_RES * STDCALL +mysql_list_tables(MYSQL *mysql, const char *wild) +{ + char buff[255]; + DBUG_ENTER("mysql_list_tables"); + + append_wild(my_stpcpy(buff,"show tables"),buff+sizeof(buff),wild); + if (mysql_query(mysql,buff)) + DBUG_RETURN(0); + DBUG_RETURN (mysql_store_result(mysql)); +} + + +MYSQL_FIELD *cli_list_fields(MYSQL *mysql) +{ + MYSQL_DATA *query; + MYSQL_FIELD *result; + + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_FIELD_DEF); + query= cli_read_rows(mysql,(MYSQL_FIELD*) 0, + protocol_41(mysql) ? 8 : 6); + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + + if (!query) + return NULL; + + mysql->field_count= (uint) query->rows; + result= unpack_fields(mysql, query->data,&mysql->field_alloc, + mysql->field_count, 1, mysql->server_capabilities); + free_rows(query); + return result; +} + + +/************************************************************************** + List all fields in a table + If wild is given then only the fields matching wild is returned + Instead of this use query: + show fields in 'table' like "wild" +**************************************************************************/ + +MYSQL_RES * STDCALL +mysql_list_fields(MYSQL *mysql, const char *table, const char *wild) +{ + MYSQL_RES *result; + MYSQL_FIELD *fields; + char buff[258],*end; + DBUG_ENTER("mysql_list_fields"); + DBUG_PRINT("enter",("table: '%s' wild: '%s'",table,wild ? wild : "")); + + end=strmake(strmake(buff, table,128)+1,wild ? wild : "",128); + free_old_query(mysql); + if (simple_command(mysql, COM_FIELD_LIST, (uchar*) buff, + (ulong) (end-buff), 1) || + !(fields= (*mysql->methods->list_fields)(mysql))) + DBUG_RETURN(NULL); + + if (!(result = (MYSQL_RES *) my_malloc(PSI_NOT_INSTRUMENTED, + sizeof(MYSQL_RES), + MYF(MY_WME | MY_ZEROFILL)))) + DBUG_RETURN(NULL); + + result->methods= mysql->methods; + result->field_alloc=mysql->field_alloc; + mysql->fields=0; + result->field_count = mysql->field_count; + result->fields= fields; + result->eof=1; + DBUG_RETURN(result); +} + +/* List all running processes (threads) in server */ + +MYSQL_RES * STDCALL +mysql_list_processes(MYSQL *mysql) +{ + uint field_count; + uchar *pos; + DBUG_ENTER("mysql_list_processes"); + + if (simple_command(mysql,COM_PROCESS_INFO,0,0,0)) + DBUG_RETURN(0); + free_old_query(mysql); + pos=(uchar*) mysql->net.read_pos; + field_count=(uint) net_field_length(&pos); + if (!(mysql->fields=cli_read_metadata(mysql, field_count, protocol_41(mysql) ? 7:5))) + DBUG_RETURN(NULL); + mysql->status=MYSQL_STATUS_GET_RESULT; + mysql->field_count=field_count; + DBUG_RETURN(mysql_store_result(mysql)); +} + + +int STDCALL +mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level) +{ + DBUG_ENTER("mysql_shutdown"); + if (mysql_get_server_version(mysql) < 50709) + { + uchar level[1]; + level[0]= (uchar) shutdown_level; + DBUG_RETURN (simple_command(mysql, COM_SHUTDOWN, level, 1, 0)); + } + + DBUG_RETURN(mysql_real_query(mysql, C_STRING_WITH_LEN("shutdown"))); +} + + +int STDCALL +mysql_refresh(MYSQL *mysql,uint options) +{ + uchar bits[1]; + DBUG_ENTER("mysql_refresh"); + bits[0]= (uchar) options; + DBUG_RETURN(simple_command(mysql, COM_REFRESH, bits, 1, 0)); +} + + +int STDCALL +mysql_kill(MYSQL *mysql,ulong pid) +{ + uchar buff[4]; + DBUG_ENTER("mysql_kill"); + /* + Sanity check: if ulong is 64-bits, user can submit a PID here that + overflows our 32-bit parameter to the somewhat obsolete COM_PROCESS_KILL. + If this is the case, we'll flag an error here. + The SQL statement KILL CONNECTION is the safer option here. + There is an analog of this failsafe in the server as we might see old + libmysql connection to a new server as well as the other way around. + */ + if (pid & (~0xfffffffful)) + DBUG_RETURN(CR_INVALID_CONN_HANDLE); + int4store(buff,pid); + DBUG_RETURN(simple_command(mysql,COM_PROCESS_KILL,buff,sizeof(buff),0)); +} + + +int STDCALL +mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option) +{ + uchar buff[2]; + DBUG_ENTER("mysql_set_server_option"); + int2store(buff, (uint) option); + DBUG_RETURN(simple_command(mysql, COM_SET_OPTION, buff, sizeof(buff), 0)); +} + + +int STDCALL +mysql_dump_debug_info(MYSQL *mysql) +{ + DBUG_ENTER("mysql_dump_debug_info"); + DBUG_RETURN(simple_command(mysql,COM_DEBUG,0,0,0)); +} + + +const char *cli_read_statistics(MYSQL *mysql) +{ + mysql->net.read_pos[mysql->packet_length]=0; /* End of stat string */ + if (!mysql->net.read_pos[0]) + { + set_mysql_error(mysql, CR_WRONG_HOST_INFO, unknown_sqlstate); + return mysql->net.last_error; + } + /* + After reading the single packet with reply to COM_STATISTICS + we are ready for new commands. + */ + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + return (char*) mysql->net.read_pos; +} + + +const char * STDCALL +mysql_stat(MYSQL *mysql) +{ + DBUG_ENTER("mysql_stat"); + if (simple_command(mysql,COM_STATISTICS,0,0,0)) + DBUG_RETURN(mysql->net.last_error); + DBUG_RETURN((*mysql->methods->read_statistics)(mysql)); +} + + +int STDCALL +mysql_ping(MYSQL *mysql) +{ + int res; + DBUG_ENTER("mysql_ping"); + res= simple_command(mysql,COM_PING,0,0,0); + if (res == CR_SERVER_LOST && mysql->reconnect) + res= simple_command(mysql,COM_PING,0,0,0); + DBUG_RETURN(res); +} + + +const char * STDCALL +mysql_get_server_info(MYSQL *mysql) +{ + return((char*) mysql->server_version); +} + + +const char * STDCALL +mysql_get_host_info(MYSQL *mysql) +{ + return(mysql->host_info); +} + + +uint STDCALL +mysql_get_proto_info(MYSQL *mysql) +{ + return (mysql->protocol_version); +} + +const char * STDCALL +mysql_get_client_info(void) +{ + return (char*) MYSQL_SERVER_VERSION; +} + +ulong STDCALL mysql_get_client_version(void) +{ + return MYSQL_VERSION_ID; +} + +my_bool STDCALL mysql_eof(MYSQL_RES *res) +{ + return res->eof; +} + +MYSQL_FIELD * STDCALL mysql_fetch_field_direct(MYSQL_RES *res,uint fieldnr) +{ + return &(res)->fields[fieldnr]; +} + +MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res) +{ + return (res)->fields; +} + +MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res) +{ + return res->data_cursor; +} + +MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res) +{ + return (res)->current_field; +} + +/* MYSQL */ + +unsigned int STDCALL mysql_field_count(MYSQL *mysql) +{ + return mysql->field_count; +} + +my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql) +{ + return mysql->affected_rows; +} + +my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql) +{ + return mysql->insert_id; +} + +const char *STDCALL mysql_sqlstate(MYSQL *mysql) +{ + return mysql ? mysql->net.sqlstate : cant_connect_sqlstate; +} + +uint STDCALL mysql_warning_count(MYSQL *mysql) +{ + return mysql->warning_count; +} + +const char *STDCALL mysql_info(MYSQL *mysql) +{ + if (!mysql) + { +#if defined(CLIENT_PROTOCOL_TRACING) + return "protocol tracing enabled"; +#else + return NULL; +#endif + } + return mysql->info; +} + +ulong STDCALL mysql_thread_id(MYSQL *mysql) +{ + /* + ulong may be 64-bit, but we currently only transmit 32-bit. + mysql_thread_id() is usually used in conjunction with mysql_kill() + which is similarly limited (and obsolete). + SELECTION CONNECTION_ID() / KILL CONNECTION avoid this issue. + */ + return (mysql)->thread_id; +} + +const char * STDCALL mysql_character_set_name(MYSQL *mysql) +{ + return mysql->charset->csname; +} + +void STDCALL mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *csinfo) +{ + csinfo->number = mysql->charset->number; + csinfo->state = mysql->charset->state; + csinfo->csname = mysql->charset->csname; + csinfo->name = mysql->charset->name; + csinfo->comment = mysql->charset->comment; + csinfo->mbminlen = mysql->charset->mbminlen; + csinfo->mbmaxlen = mysql->charset->mbmaxlen; + + if (mysql->options.charset_dir) + csinfo->dir = mysql->options.charset_dir; + else + csinfo->dir = charsets_dir; +} + +uint STDCALL mysql_thread_safe(void) +{ + return 1; +} + + +my_bool STDCALL mysql_embedded(void) +{ +#ifdef EMBEDDED_LIBRARY + return 1; +#else + return 0; +#endif +} + +/**************************************************************************** + Some support functions +****************************************************************************/ + +/* + Functions called my my_net_init() to set some application specific variables +*/ + +void my_net_local_init(NET *net) +{ + ulong local_net_buffer_length= 0; + ulong local_max_allowed_packet= 0; + + (void) mysql_get_option(NULL, MYSQL_OPT_MAX_ALLOWED_PACKET, + &local_max_allowed_packet); + (void) mysql_get_option(NULL, MYSQL_OPT_NET_BUFFER_LENGTH, + &local_net_buffer_length); + + net->max_packet= (uint) local_net_buffer_length; + my_net_set_read_timeout(net, CLIENT_NET_READ_TIMEOUT); + my_net_set_write_timeout(net, CLIENT_NET_WRITE_TIMEOUT); + net->retry_count= 1; + net->max_packet_size= MY_MAX(local_net_buffer_length, local_max_allowed_packet); +} + +/* + This function is used to create HEX string that you + can use in a SQL statement in of the either ways: + INSERT INTO blob_column VALUES (0xAABBCC); (any MySQL version) + INSERT INTO blob_column VALUES (X'AABBCC'); (4.1 and higher) + + The string in "from" is encoded to a HEX string. + The result is placed in "to" and a terminating null byte is appended. + + The string pointed to by "from" must be "length" bytes long. + You must allocate the "to" buffer to be at least length*2+1 bytes long. + Each character needs two bytes, and you need room for the terminating + null byte. When mysql_hex_string() returns, the contents of "to" will + be a null-terminated string. The return value is the length of the + encoded string, not including the terminating null character. + + The return value does not contain any leading 0x or a leading X' and + trailing '. The caller must supply whichever of those is desired. +*/ + +ulong STDCALL +mysql_hex_string(char *to, const char *from, ulong length) +{ + char *to0= to; + const char *end; + + for (end= from + length; from < end; from++) + { + *to++= _dig_vec_upper[((unsigned char) *from) >> 4]; + *to++= _dig_vec_upper[((unsigned char) *from) & 0x0F]; + } + *to= '\0'; + return (ulong) (to-to0); +} + +/* + Add escape characters to a string (blob?) to make it suitable for a insert + to should at least have place for length*2+1 chars + Returns the length of the to string +*/ + +ulong STDCALL +mysql_escape_string(char *to,const char *from,ulong length) +{ + return (uint) escape_string_for_mysql(default_charset_info, to, 0, from, length); +} + +/** + Escapes special characters in a string for use in an SQL statement. + + Escapes special characters in the unescaped string, taking into account + the current character set and sql mode of the connection so that is safe + to place the string in a mysql_query(). This function must be used for + binary data. + + This function does not work correctly when NO_BACKSLASH_ESCAPES sql mode + is used and string quote in the SQL statement is different than '\''. + + @deprecated This function should not be used. + Use mysql_real_escape_string_quote instead. + + @see mysql_real_escape_string_quote + + @param mysql [in] MySQL connection structure. + @param to [out] Escaped string output buffer. + @param from [in] String to escape. + @param length [in] String to escape length. + + @return Result value. + @retval != (ulong)-1 Succeeded. Number of bytes written to the output + buffer without the '\0' character. + @retval (ulong)-1 Failed. Use mysql_error() to get error message. +*/ + +ulong STDCALL +mysql_real_escape_string(MYSQL *mysql, char *to,const char *from, + ulong length) +{ + if (mysql->server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES) + { + DBUG_PRINT("error", + ("NO_BACKSLASH_ESCAPES sql mode requires usage of the " + "mysql_real_escape_string_quote function")); + set_mysql_extended_error(mysql, CR_INSECURE_API_ERR, unknown_sqlstate, + ER(CR_INSECURE_API_ERR), + "mysql_real_escape_string", + "mysql_real_escape_string_quote"); + return (ulong)-1; + } + + return (uint)mysql_real_escape_string_quote(mysql, to, from, length, '\''); +} + +/** + Escapes special characters in a string for use in an SQL statement. + + Escapes special characters in the unescaped string, taking into account + the current character set and sql mode of the connection so that is safe + to place the string in a mysql_query(). This function must be used for + binary data. + + This function should be used for escaping identifiers and string parameters. + + @param mysql [in] MySQL connection structure. + @param to [out] Escaped string output buffer. + @param from [in] String to escape. + @param length [in] String to escape length. + @param quote [in] String quoting character used in an SQL statement. This + should be one of '\'', '"' or '`' depending on the + parameter quoting applied in the SQL statement. + + @return Result value. + @retval != (ulong)-1 Succeeded. Number of bytes written to the output + buffer without the '\0' character. + @retval (ulong)-1 Failed. +*/ + +ulong STDCALL +mysql_real_escape_string_quote(MYSQL *mysql, char *to, const char *from, + ulong length, char quote) +{ + if (quote == '`' || mysql->server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES) + return (uint)escape_quotes_for_mysql(mysql->charset, to, 0, + from, length, quote); + return (uint)escape_string_for_mysql(mysql->charset, to, 0, from, length); +} + +void STDCALL +myodbc_remove_escape(MYSQL *mysql,char *name) +{ + char *to; + my_bool use_mb_flag=use_mb(mysql->charset); + char *end= NULL; + if (use_mb_flag) + for (end=name; *end ; end++) ; + + for (to=name ; *name ; name++) + { + int l; + if (use_mb_flag && (l = my_ismbchar( mysql->charset, name , end ) ) ) + { + while (l--) + *to++ = *name++; + name--; + continue; + } + if (*name == '\\' && name[1]) + name++; + *to++= *name; + } + *to=0; +} + +/******************************************************************** + Implementation of new client API for 4.1 version. + + mysql_stmt_* are real prototypes used by applications. + + To make API work in embedded library all functions performing + real I/O are prefixed with 'cli_' (abbreviated from 'Call Level + Interface'). This functions are invoked via pointers set in + MYSQL::methods structure. Embedded counterparts, prefixed with + 'emb_' reside in libmysqld/lib_sql.cc. +*********************************************************************/ + +/******************* Declarations ***********************************/ + +/* Default number of rows fetched per one COM_STMT_FETCH command. */ + +#define DEFAULT_PREFETCH_ROWS (ulong) 1 + +/* + These functions are called by function pointer MYSQL_STMT::read_row_func. + Each function corresponds to one of the read methods: + - mysql_stmt_fetch without prior mysql_stmt_store_result, + - mysql_stmt_fetch when result is stored, + - mysql_stmt_fetch when there are no rows (always returns MYSQL_NO_DATA) +*/ + +static int stmt_read_row_unbuffered(MYSQL_STMT *stmt, unsigned char **row); +static int stmt_read_row_buffered(MYSQL_STMT *stmt, unsigned char **row); +static int stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row); +static int stmt_read_row_no_data(MYSQL_STMT *stmt, unsigned char **row); +static int stmt_read_row_no_result_set(MYSQL_STMT *stmt, unsigned char **row); + +/* + This function is used in mysql_stmt_store_result if + STMT_ATTR_UPDATE_MAX_LENGTH attribute is set. +*/ +static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data); +static my_bool setup_one_fetch_function(MYSQL_BIND *, MYSQL_FIELD *field); + +/* Auxilary function used to reset statement handle. */ + +#define RESET_SERVER_SIDE 1 +#define RESET_LONG_DATA 2 +#define RESET_STORE_RESULT 4 +#define RESET_CLEAR_ERROR 8 + +static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags); + +/* + Maximum sizes of MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME + values stored in network buffer. +*/ + +/* 1 (length) + 2 (year) + 1 (month) + 1 (day) */ +#define MAX_DATE_REP_LENGTH 5 + +/* + 1 (length) + 1 (is negative) + 4 (day count) + 1 (hour) + + 1 (minute) + 1 (seconds) + 4 (microseconds) +*/ +#define MAX_TIME_REP_LENGTH 13 + +/* + 1 (length) + 2 (year) + 1 (month) + 1 (day) + + 1 (hour) + 1 (minute) + 1 (second) + 4 (microseconds) +*/ +#define MAX_DATETIME_REP_LENGTH 12 + +#define MAX_DOUBLE_STRING_REP_LENGTH 331 + +/* A macro to check truncation errors */ + +#define IS_TRUNCATED(value, is_unsigned, min, max, umax) \ + ((is_unsigned) ? (((value) > (umax) || (value) < 0) ? 1 : 0) : \ + (((value) > (max) || (value) < (min)) ? 1 : 0)) + +#define BIND_RESULT_DONE 1 +/* + We report truncations only if at least one of MYSQL_BIND::error + pointers is set. In this case stmt->bind_result_done |-ed with + this flag. +*/ +#define REPORT_DATA_TRUNCATION 2 + +/**************** Misc utility functions ****************************/ + +/* + Reallocate the NET package to have at least length bytes available. + + SYNPOSIS + my_realloc_str() + net The NET structure to modify. + length Ensure that net->buff has space for at least + this number of bytes. + + RETURN VALUES + 0 Success. + 1 Error, i.e. out of memory or requested packet size is bigger + than max_allowed_packet. The error code is stored in net->last_errno. +*/ + +static my_bool my_realloc_str(NET *net, ulong length) +{ + ulong buf_length= (ulong) (net->write_pos - net->buff); + my_bool res=0; + DBUG_ENTER("my_realloc_str"); + if (buf_length + length > net->max_packet) + { + res= net_realloc(net, buf_length + length); + if (res) + { + if (net->last_errno == ER_OUT_OF_RESOURCES) + net->last_errno= CR_OUT_OF_MEMORY; + else if (net->last_errno == ER_NET_PACKET_TOO_LARGE) + net->last_errno= CR_NET_PACKET_TOO_LARGE; + + my_stpcpy(net->sqlstate, unknown_sqlstate); + my_stpcpy(net->last_error, ER(net->last_errno)); + } + net->write_pos= net->buff+ buf_length; + } + DBUG_RETURN(res); +} + + +static void stmt_clear_error(MYSQL_STMT *stmt) +{ + if (stmt->last_errno) + { + stmt->last_errno= 0; + stmt->last_error[0]= '\0'; + my_stpcpy(stmt->sqlstate, not_error_sqlstate); + } +} + +/** + Set statement error code, sqlstate, and error message + from given errcode and sqlstate. +*/ + +void set_stmt_error(MYSQL_STMT * stmt, int errcode, + const char *sqlstate, const char *err) +{ + DBUG_ENTER("set_stmt_error"); + DBUG_PRINT("enter", ("error: %d '%s'", errcode, ER(errcode))); + DBUG_ASSERT(stmt != 0); + + if (err == 0) + err= ER(errcode); + + stmt->last_errno= errcode; + my_stpcpy(stmt->last_error, ER(errcode)); + my_stpcpy(stmt->sqlstate, sqlstate); + + DBUG_VOID_RETURN; +} + + +/** + Set statement error code, sqlstate, and error message from NET. + + @param stmt a statement handle. Copy the error here. + @param net mysql->net. Source of the error. +*/ + +void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net) +{ + DBUG_ENTER("set_stmt_errmsg"); + DBUG_PRINT("enter", ("error: %d/%s '%s'", + net->last_errno, + net->sqlstate, + net->last_error)); + DBUG_ASSERT(stmt != 0); + + stmt->last_errno= net->last_errno; + if (net->last_error[0] != '\0') + my_stpcpy(stmt->last_error, net->last_error); + my_stpcpy(stmt->sqlstate, net->sqlstate); + + DBUG_VOID_RETURN; +} + +/* + Read and unpack server reply to COM_STMT_PREPARE command (sent from + mysql_stmt_prepare). + + SYNOPSIS + cli_read_prepare_result() + mysql connection handle + stmt statement handle + + RETURN VALUES + 0 ok + 1 error +*/ + +my_bool cli_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt) +{ + uchar *pos; + uint field_count, param_count; + ulong packet_length; + DBUG_ENTER("cli_read_prepare_result"); + + /* free old result and initialize mysql->field_alloc */ + free_old_query(mysql); + + if ((packet_length= cli_safe_read(mysql, NULL)) == packet_error) + DBUG_RETURN(1); + mysql->warning_count= 0; + + pos= (uchar*) mysql->net.read_pos; + stmt->stmt_id= uint4korr(pos+1); pos+= 5; + /* Number of columns in result set */ + field_count= uint2korr(pos); pos+= 2; + /* Number of placeholders in the statement */ + param_count= uint2korr(pos); pos+= 2; + if (packet_length >= 12) + mysql->warning_count= uint2korr(pos+1); + + if (param_count != 0) + { + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_PARAM_DEF); + /* skip parameters data: we don't support it yet */ + if (!(cli_read_metadata(mysql, param_count, 7))) + DBUG_RETURN(1); + /* free memory allocated by cli_read_metadata() for parameters data */ + free_root(&mysql->field_alloc, MYF(0)); + } + + if (field_count != 0) + { + if (!(mysql->server_status & SERVER_STATUS_AUTOCOMMIT)) + mysql->server_status|= SERVER_STATUS_IN_TRANS; + + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_FIELD_DEF); + if (!(stmt->fields= cli_read_metadata_ex(mysql, &stmt->mem_root, + field_count, 7))) + DBUG_RETURN(1); + } + + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + + stmt->field_count= field_count; + stmt->param_count= (ulong) param_count; + DBUG_PRINT("exit",("field_count: %u param_count: %u warning_count: %u", + field_count, param_count, (uint) mysql->warning_count)); + + DBUG_RETURN(0); +} + + +/* + Allocate memory and init prepared statement structure. + + SYNOPSIS + mysql_stmt_init() + mysql connection handle + + DESCRIPTION + This is an entry point of the new API. Returned handle stands for + a server-side prepared statement. Memory for this structure (~700 + bytes) is allocated using 'malloc'. Once created, the handle can be + reused many times. Created statement handle is bound to connection + handle provided to this call: its lifetime is limited by lifetime + of connection. + 'mysql_stmt_init()' is a pure local call, server side structure is + created only in mysql_stmt_prepare. + Next steps you may want to make: + - set a statement attribute (mysql_stmt_attr_set()), + - prepare statement handle with a query (mysql_stmt_prepare()), + - close statement handle and free its memory (mysql_stmt_close()), + - reset statement with mysql_stmt_reset() (a no-op which will + just return). + Behaviour of the rest of API calls on this statement is not defined yet + (though we're working on making each wrong call sequence return + error). + + RETURN VALUE + statement structure upon success and NULL if out of + memory +*/ + +MYSQL_STMT * STDCALL +mysql_stmt_init(MYSQL *mysql) +{ + MYSQL_STMT *stmt; + DBUG_ENTER("mysql_stmt_init"); + + if (!(stmt= + (MYSQL_STMT *) my_malloc(PSI_NOT_INSTRUMENTED, + sizeof (MYSQL_STMT), + MYF(MY_WME | MY_ZEROFILL))) || + !(stmt->extension= + (MYSQL_STMT_EXT *) my_malloc(PSI_NOT_INSTRUMENTED, + sizeof (MYSQL_STMT_EXT), + MYF(MY_WME | MY_ZEROFILL)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + my_free(stmt); + DBUG_RETURN(NULL); + } + + init_alloc_root(PSI_NOT_INSTRUMENTED, &stmt->mem_root, 2048, 2048); + init_alloc_root(PSI_NOT_INSTRUMENTED, &stmt->result.alloc, 4096, 4096); + stmt->result.alloc.min_malloc= sizeof(MYSQL_ROWS); + mysql->stmts= list_add(mysql->stmts, &stmt->list); + stmt->list.data= stmt; + stmt->state= MYSQL_STMT_INIT_DONE; + stmt->mysql= mysql; + stmt->read_row_func= stmt_read_row_no_result_set; + stmt->prefetch_rows= DEFAULT_PREFETCH_ROWS; + my_stpcpy(stmt->sqlstate, not_error_sqlstate); + /* The rest of statement members was zeroed inside malloc */ + + init_alloc_root(PSI_NOT_INSTRUMENTED, &stmt->extension->fields_mem_root, 2048, 0); + + DBUG_RETURN(stmt); +} + + +/* + Prepare server side statement with query. + + SYNOPSIS + mysql_stmt_prepare() + stmt statement handle + query statement to prepare + length statement length + + DESCRIPTION + Associate statement with statement handle. This is done both on + client and server sides. At this point the server parses given query + and creates an internal structure to represent it. + Next steps you may want to make: + - find out if this statement returns a result set by + calling mysql_stmt_field_count(), and get result set metadata + with mysql_stmt_result_metadata(), + - if query contains placeholders, bind input parameters to placeholders + using mysql_stmt_bind_param(), + - otherwise proceed directly to mysql_stmt_execute(). + + IMPLEMENTATION NOTES + - if this is a re-prepare of the statement, first close previous data + structure on the server and free old statement data + - then send the query to server and get back number of placeholders, + number of columns in result set (if any), and result set metadata. + At the same time allocate memory for input and output parameters + to have less checks in mysql_stmt_bind_{param, result}. + + RETURN VALUES + 0 success + !0 error +*/ + +int STDCALL +mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, ulong length) +{ + MYSQL *mysql= stmt->mysql; + DBUG_ENTER("mysql_stmt_prepare"); + + if (!mysql) + { + /* mysql can be reset in mysql_close called from mysql_reconnect */ + set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + /* + Reset the last error in any case: that would clear the statement + if the previous prepare failed. + */ + stmt->last_errno= 0; + stmt->last_error[0]= '\0'; + + if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE) + { + /* This is second prepare with another statement */ + uchar buff[MYSQL_STMT_HEADER]; /* 4 bytes - stmt id */ + + if (reset_stmt_handle(stmt, RESET_LONG_DATA | RESET_STORE_RESULT)) + DBUG_RETURN(1); + /* + These members must be reset for API to + function in case of error or misuse. + */ + stmt->bind_param_done= stmt->bind_result_done= FALSE; + stmt->param_count= stmt->field_count= 0; + free_root(&stmt->mem_root, MYF(MY_KEEP_PREALLOC)); + free_root(&stmt->extension->fields_mem_root, MYF(0)); + + int4store(buff, stmt->stmt_id); + + /* + Close statement in server + + If there was a 'use' result from another statement, or from + mysql_use_result it won't be freed in mysql_stmt_free_result and + we should get 'Commands out of sync' here. + */ + stmt->state= MYSQL_STMT_INIT_DONE; + if (stmt_command(mysql, COM_STMT_CLOSE, buff, 4, stmt)) + { + set_stmt_errmsg(stmt, &mysql->net); + DBUG_RETURN(1); + } + } + + if (stmt_command(mysql, COM_STMT_PREPARE, (const uchar*) query, length, stmt)) + { + set_stmt_errmsg(stmt, &mysql->net); + DBUG_RETURN(1); + } + + if ((*mysql->methods->read_prepare_result)(mysql, stmt)) + { + set_stmt_errmsg(stmt, &mysql->net); + DBUG_RETURN(1); + } + + /* + alloc_root will return valid address even in case when param_count + and field_count are zero. Thus we should never rely on stmt->bind + or stmt->params when checking for existence of placeholders or + result set. + */ + if (!(stmt->params= (MYSQL_BIND *) alloc_root(&stmt->mem_root, + sizeof(MYSQL_BIND)* + (stmt->param_count + + stmt->field_count)))) + { + set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + stmt->bind= stmt->params + stmt->param_count; + stmt->state= MYSQL_STMT_PREPARE_DONE; + DBUG_PRINT("info", ("Parameter count: %u", stmt->param_count)); + DBUG_RETURN(0); +} + +/* + Get result set metadata from reply to mysql_stmt_execute. + This is used mainly for SHOW commands, as metadata for these + commands is sent only with result set. + To be removed when all commands will fully support prepared mode. +*/ + +static void alloc_stmt_fields(MYSQL_STMT *stmt) +{ + MYSQL_FIELD *fields, *field, *end; + MEM_ROOT *fields_mem_root= &stmt->extension->fields_mem_root; + MYSQL *mysql= stmt->mysql; + + DBUG_ASSERT(stmt->field_count); + + free_root(fields_mem_root, MYF(0)); + + /* + Get the field information for non-select statements + like SHOW and DESCRIBE commands + */ + if (!(stmt->fields= (MYSQL_FIELD *) alloc_root(fields_mem_root, + sizeof(MYSQL_FIELD) * + stmt->field_count)) || + !(stmt->bind= (MYSQL_BIND *) alloc_root(fields_mem_root, + sizeof(MYSQL_BIND) * + stmt->field_count))) + { + set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL); + return; + } + + for (fields= mysql->fields, end= fields+stmt->field_count, + field= stmt->fields; + field && fields < end; fields++, field++) + { + *field= *fields; /* To copy all numeric parts. */ + field->catalog= strmake_root(fields_mem_root, + fields->catalog, + fields->catalog_length); + field->db= strmake_root(fields_mem_root, + fields->db, + fields->db_length); + field->table= strmake_root(fields_mem_root, + fields->table, + fields->table_length); + field->org_table= strmake_root(fields_mem_root, + fields->org_table, + fields->org_table_length); + field->name= strmake_root(fields_mem_root, + fields->name, + fields->name_length); + field->org_name= strmake_root(fields_mem_root, + fields->org_name, + fields->org_name_length); + if (fields->def) + { + field->def= strmake_root(fields_mem_root, + fields->def, + fields->def_length); + field->def_length= fields->def_length; + } + else + { + field->def= NULL; + field->def_length= 0; + } + field->extension= 0; /* Avoid dangling links. */ + field->max_length= 0; /* max_length is set in mysql_stmt_store_result() */ + } +} + + +/** + Update result set columns metadata if it was sent again in + reply to COM_STMT_EXECUTE. + + @note If the new field count is different from the original one, + an error is set and no update is performed. +*/ + +static void update_stmt_fields(MYSQL_STMT *stmt) +{ + MYSQL_FIELD *field= stmt->mysql->fields; + MYSQL_FIELD *field_end= field + stmt->field_count; + MYSQL_FIELD *stmt_field= stmt->fields; + MYSQL_BIND *my_bind= stmt->bind_result_done ? stmt->bind : 0; + + if (stmt->field_count != stmt->mysql->field_count) + { + /* + The tables used in the statement were altered, + and the query now returns a different number of columns. + There is no way to continue without reallocating the bind + array: + - if the number of columns increased, mysql_stmt_fetch() + will write beyond allocated memory + - if the number of columns decreased, some user-bound + buffers will be left unassigned without user knowing + that. + */ + set_stmt_error(stmt, CR_NEW_STMT_METADATA, unknown_sqlstate, NULL); + return; + } + + for (; field < field_end; ++field, ++stmt_field) + { + stmt_field->charsetnr= field->charsetnr; + stmt_field->length = field->length; + stmt_field->type = field->type; + stmt_field->flags = field->flags; + stmt_field->decimals = field->decimals; + if (my_bind) + { + /* Ignore return value: it should be 0 if bind_result succeeded. */ + (void) setup_one_fetch_function(my_bind++, stmt_field); + } + } +} + +/* + Returns prepared statement metadata in the form of a result set. + + SYNOPSIS + mysql_stmt_result_metadata() + stmt statement handle + + DESCRIPTION + This function should be used after mysql_stmt_execute(). + You can safely check that prepared statement has a result set by calling + mysql_stmt_field_count(): if number of fields is not zero, you can call + this function to get fields metadata. + Next steps you may want to make: + - find out number of columns in result set by calling + mysql_num_fields(res) (the same value is returned by + mysql_stmt_field_count()) + - fetch metadata for any column with mysql_fetch_field, + mysql_fetch_field_direct, mysql_fetch_fields, mysql_field_seek. + - free returned MYSQL_RES structure with mysql_free_result. + - proceed to binding of output parameters. + + RETURN + NULL statement contains no result set or out of memory. + In the latter case you can retreive error message + with mysql_stmt_error. + MYSQL_RES a result set with no rows +*/ + +MYSQL_RES * STDCALL +mysql_stmt_result_metadata(MYSQL_STMT *stmt) +{ + MYSQL_RES *result; + DBUG_ENTER("mysql_stmt_result_metadata"); + + /* + stmt->fields is only defined if stmt->field_count is not null; + stmt->field_count is initialized in prepare. + */ + if (!stmt->field_count) + DBUG_RETURN(0); + + if (!(result=(MYSQL_RES*) my_malloc(PSI_NOT_INSTRUMENTED, + sizeof(*result), + MYF(MY_WME | MY_ZEROFILL)))) + { + set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL); + DBUG_RETURN(0); + } + + result->methods= stmt->mysql->methods; + result->eof= 1; /* Marker for buffered */ + result->fields= stmt->fields; + result->field_count= stmt->field_count; + /* The rest of members of 'result' was zeroed inside malloc */ + DBUG_RETURN(result); +} + + +/* + Returns parameter columns meta information in the form of + result set. + + SYNOPSYS + mysql_stmt_param_metadata() + stmt statement handle + + DESCRIPTION + This function can be called after you prepared the statement handle + with mysql_stmt_prepare(). + XXX: not implemented yet. + + RETURN + MYSQL_RES on success, 0 if there is no metadata. + Currently this function always returns 0. +*/ + +MYSQL_RES * STDCALL +mysql_stmt_param_metadata(MYSQL_STMT *stmt) +{ + DBUG_ENTER("mysql_stmt_param_metadata"); + + if (!stmt->param_count) + DBUG_RETURN(0); + + /* + TODO: Fix this when server sends the information. + Till then keep a dummy prototype. + */ + DBUG_RETURN(0); +} + + +/* Store type of parameter in network buffer. */ + +static void store_param_type(unsigned char **pos, MYSQL_BIND *param) +{ + uint typecode= param->buffer_type | (param->is_unsigned ? 32768 : 0); + int2store(*pos, typecode); + *pos+= 2; +} + + +/* + Functions to store parameter data in network packet. + + SYNOPSIS + store_param_xxx() + net MySQL NET connection + param MySQL bind param + + DESCRIPTION + These funtions are invoked from mysql_stmt_execute() by + MYSQL_BIND::store_param_func pointer. This pointer is set once per + many executions in mysql_stmt_bind_param(). The caller must ensure + that network buffer have enough capacity to store parameter + (MYSQL_BIND::buffer_length contains needed number of bytes). +*/ + +static void store_param_tinyint(NET *net, MYSQL_BIND *param) +{ + *(net->write_pos++)= *(uchar *) param->buffer; +} + +static void store_param_short(NET *net, MYSQL_BIND *param) +{ + short value= *(short*) param->buffer; + int2store(net->write_pos,value); + net->write_pos+=2; +} + +static void store_param_int32(NET *net, MYSQL_BIND *param) +{ + int32 value= *(int32*) param->buffer; + int4store(net->write_pos,value); + net->write_pos+=4; +} + +static void store_param_int64(NET *net, MYSQL_BIND *param) +{ + longlong value= *(longlong*) param->buffer; + int8store(net->write_pos,value); + net->write_pos+= 8; +} + +static void store_param_float(NET *net, MYSQL_BIND *param) +{ + float value= *(float*) param->buffer; + float4store(net->write_pos, value); + net->write_pos+= 4; +} + +static void store_param_double(NET *net, MYSQL_BIND *param) +{ + double value= *(double*) param->buffer; + float8store(net->write_pos, value); + net->write_pos+= 8; +} + +static void store_param_time(NET *net, MYSQL_BIND *param) +{ + MYSQL_TIME *tm= (MYSQL_TIME *) param->buffer; + uchar buff[MAX_TIME_REP_LENGTH], *pos; + uint length; + + pos= buff+1; + pos[0]= tm->neg ? 1: 0; + int4store(pos+1, tm->day); + pos[5]= (uchar) tm->hour; + pos[6]= (uchar) tm->minute; + pos[7]= (uchar) tm->second; + int4store(pos+8, tm->second_part); + if (tm->second_part) + length= 12; + else if (tm->hour || tm->minute || tm->second || tm->day) + length= 8; + else + length= 0; + buff[0]= (char) length++; + memcpy((char *)net->write_pos, buff, length); + net->write_pos+= length; +} + +static void net_store_datetime(NET *net, MYSQL_TIME *tm) +{ + uchar buff[MAX_DATETIME_REP_LENGTH], *pos; + uint length; + + pos= buff+1; + + int2store(pos, tm->year); + pos[2]= (uchar) tm->month; + pos[3]= (uchar) tm->day; + pos[4]= (uchar) tm->hour; + pos[5]= (uchar) tm->minute; + pos[6]= (uchar) tm->second; + int4store(pos+7, tm->second_part); + if (tm->second_part) + length= 11; + else if (tm->hour || tm->minute || tm->second) + length= 7; + else if (tm->year || tm->month || tm->day) + length= 4; + else + length= 0; + buff[0]= (char) length++; + memcpy((char *)net->write_pos, buff, length); + net->write_pos+= length; +} + +static void store_param_date(NET *net, MYSQL_BIND *param) +{ + MYSQL_TIME tm= *((MYSQL_TIME *) param->buffer); + tm.hour= tm.minute= tm.second= tm.second_part= 0; + net_store_datetime(net, &tm); +} + +static void store_param_datetime(NET *net, MYSQL_BIND *param) +{ + MYSQL_TIME *tm= (MYSQL_TIME *) param->buffer; + net_store_datetime(net, tm); +} + +static void store_param_str(NET *net, MYSQL_BIND *param) +{ + /* param->length is always set in mysql_stmt_bind_param */ + ulong length= *param->length; + uchar *to= net_store_length(net->write_pos, length); + memcpy(to, param->buffer, length); + net->write_pos= to+length; +} + + +/* + Mark if the parameter is NULL. + + SYNOPSIS + store_param_null() + net MySQL NET connection + param MySQL bind param + + DESCRIPTION + A data package starts with a string of bits where we set a bit + if a parameter is NULL. Unlike bit string in result set row, here + we don't have reserved bits for OK/error packet. +*/ + +static void store_param_null(NET *net, MYSQL_BIND *param) +{ + uint pos= param->param_number; + net->buff[pos/8]|= (uchar) (1 << (pos & 7)); +} + + +/* + Store one parameter in network packet: data is read from + client buffer and saved in network packet by means of one + of store_param_xxxx functions. +*/ + +static my_bool store_param(MYSQL_STMT *stmt, MYSQL_BIND *param) +{ + NET *net= &stmt->mysql->net; + DBUG_ENTER("store_param"); + DBUG_PRINT("enter",("type: %d buffer: 0x%lx length: %lu is_null: %d", + param->buffer_type, + (long) (param->buffer ? param->buffer : NullS), + *param->length, *param->is_null)); + + if (*param->is_null) + store_param_null(net, param); + else + { + /* + Param->length should ALWAYS point to the correct length for the type + Either to the length pointer given by the user or param->buffer_length + */ + if ((my_realloc_str(net, *param->length))) + { + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + (*param->store_param_func)(net, param); + } + DBUG_RETURN(0); +} + +static inline int add_binary_row(NET *net, MYSQL_STMT *stmt, ulong pkt_len, MYSQL_ROWS ***prev_ptr) +{ + MYSQL_ROWS *row; + uchar *cp= net->read_pos; + MYSQL_DATA *result= &stmt->result; + if (!(row= (MYSQL_ROWS*) alloc_root(&result->alloc, + sizeof(MYSQL_ROWS) + pkt_len - 1))) + { + set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL); + return 1; + } + row->data= (MYSQL_ROW) (row+1); + **prev_ptr= row; + *prev_ptr= &row->next; + memcpy((char *) row->data, (char *) cp+1, pkt_len-1); + row->length= pkt_len; /* To allow us to do sanity checks */ + result->rows++; + return 0; +} + +/* + Auxilary function to send COM_STMT_EXECUTE packet to server and read reply. + Used from cli_stmt_execute, which is in turn used by mysql_stmt_execute. +*/ + +static my_bool execute(MYSQL_STMT *stmt, char *packet, ulong length) +{ + MYSQL *mysql= stmt->mysql; + NET *net= &mysql->net; + uchar buff[4 /* size of stmt id */ + + 5 /* execution flags */]; + my_bool res; + my_bool is_data_packet= FALSE; + ulong pkt_len; + MYSQL_ROWS **prev_ptr= NULL; + DBUG_ENTER("execute"); + DBUG_DUMP("packet", (uchar *) packet, length); + + int4store(buff, stmt->stmt_id); /* Send stmt id to server */ + buff[4]= (char) stmt->flags; + int4store(buff+5, 1); /* iteration count */ + + res= MY_TEST(cli_advanced_command(mysql, COM_STMT_EXECUTE, buff, sizeof(buff), + (uchar*) packet, length, 1, stmt) || + (*mysql->methods->read_query_result)(mysql)); + + if ((mysql->server_capabilities & CLIENT_DEPRECATE_EOF)) + { + if (mysql->server_status & SERVER_STATUS_CURSOR_EXISTS) + mysql->server_status&= ~SERVER_STATUS_CURSOR_EXISTS; + + if (!res && (stmt->flags & CURSOR_TYPE_READ_ONLY)) + { + /* + server can now respond with a cursor - then the respond will be + or with binary rows result set . + The former can be the case when the prepared statement is a procedure + invocation, ie. call(). There also other cases. When server responds + with (cursor) packet we read it and get the server status. In case + it responds with binary row we add it to the binary rows result set + (the reset of the result set will be read in prepare_to_fetch_result). + */ + + if ((pkt_len= cli_safe_read(mysql, &is_data_packet)) == packet_error) + DBUG_RETURN(1); + + if (is_data_packet) + { + DBUG_ASSERT(stmt->result.rows == 0); + prev_ptr= &stmt->result.data; + if (add_binary_row(net, stmt, pkt_len, &prev_ptr)) + DBUG_RETURN(1); + } + else + read_ok_ex(mysql, pkt_len); + } + } + + stmt->affected_rows= mysql->affected_rows; + stmt->server_status= mysql->server_status; + stmt->insert_id= mysql->insert_id; + if (res) + { + /* + Don't set stmt error if stmt->mysql is NULL, as the error in this case + has already been set by mysql_prune_stmt_list(). + */ + if (stmt->mysql) + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + else if (mysql->status == MYSQL_STATUS_GET_RESULT) + stmt->mysql->status= MYSQL_STATUS_STATEMENT_GET_RESULT; + DBUG_RETURN(0); +} + + +int cli_stmt_execute(MYSQL_STMT *stmt) +{ + DBUG_ENTER("cli_stmt_execute"); + + if (stmt->param_count) + { + MYSQL *mysql= stmt->mysql; + NET *net= &mysql->net; + MYSQL_BIND *param, *param_end; + char *param_data; + ulong length; + uint null_count; + my_bool result; + + if (!stmt->bind_param_done) + { + set_stmt_error(stmt, CR_PARAMS_NOT_BOUND, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + if (mysql->status != MYSQL_STATUS_READY || + mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + { + set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + if (net->vio) + net_clear(net, 1); /* Sets net->write_pos */ + else + { + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + + /* Reserve place for null-marker bytes */ + null_count= (stmt->param_count+7) /8; + if (my_realloc_str(net, null_count + 1)) + { + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + memset(net->write_pos, 0, null_count); + net->write_pos+= null_count; + param_end= stmt->params + stmt->param_count; + + /* In case if buffers (type) altered, indicate to server */ + *(net->write_pos)++= (uchar) stmt->send_types_to_server; + if (stmt->send_types_to_server) + { + if (my_realloc_str(net, 2 * stmt->param_count)) + { + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + /* + Store types of parameters in first in first package + that is sent to the server. + */ + for (param= stmt->params; param < param_end ; param++) + store_param_type(&net->write_pos, param); + } + + for (param= stmt->params; param < param_end; param++) + { + /* check if mysql_stmt_send_long_data() was used */ + if (param->long_data_used) + param->long_data_used= 0; /* Clear for next execute call */ + else if (store_param(stmt, param)) + DBUG_RETURN(1); + } + length= (ulong) (net->write_pos - net->buff); + /* TODO: Look into avoding the following memdup */ + if (!(param_data= my_memdup(PSI_NOT_INSTRUMENTED, + net->buff, length, MYF(0)))) + { + set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + result= execute(stmt, param_data, length); + stmt->send_types_to_server=0; + my_free(param_data); + DBUG_RETURN(result); + } + DBUG_RETURN((int) execute(stmt,0,0)); +} + +/* + Read one row from buffered result set. Result set is created by prior + call to mysql_stmt_store_result(). + SYNOPSIS + stmt_read_row_buffered() + + RETURN VALUE + 0 - success; *row is set to valid row pointer (row data + is stored in result set buffer) + MYSQL_NO_DATA - end of result set. *row is set to NULL +*/ + +static int stmt_read_row_buffered(MYSQL_STMT *stmt, unsigned char **row) +{ + if (stmt->data_cursor) + { + *row= (uchar *) stmt->data_cursor->data; + stmt->data_cursor= stmt->data_cursor->next; + return 0; + } + *row= 0; + return MYSQL_NO_DATA; +} + +/* + Read one row from network: unbuffered non-cursor fetch. + If last row was read, or error occured, erase this statement + from record pointing to object unbuffered fetch is performed from. + + SYNOPSIS + stmt_read_row_unbuffered() + stmt statement handle + row pointer to write pointer to row data; + + RETURN VALUE + 0 - success; *row contains valid address of a row; + row data is stored in network buffer + 1 - error; error code is written to + stmt->last_{errno,error}; *row is not changed + MYSQL_NO_DATA - end of file was read from network; + *row is set to NULL +*/ + +static int stmt_read_row_unbuffered(MYSQL_STMT *stmt, unsigned char **row) +{ + int rc= 1; + MYSQL *mysql= stmt->mysql; + /* + This function won't be called if stmt->field_count is zero + or execution wasn't done: this is ensured by mysql_stmt_execute. + */ + if (!mysql) + { + set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL); + return 1; + } + if (mysql->status != MYSQL_STATUS_STATEMENT_GET_RESULT) + { + set_stmt_error(stmt, stmt->unbuffered_fetch_cancelled ? + CR_FETCH_CANCELED : CR_COMMANDS_OUT_OF_SYNC, + unknown_sqlstate, NULL); + goto error; + } + if ((*mysql->methods->unbuffered_fetch)(mysql, (char**) row)) + { + set_stmt_errmsg(stmt, &mysql->net); + /* + If there was an error, there are no more pending rows: + reset statement status to not hang up in following + mysql_stmt_close (it will try to flush result set before + closing the statement). + */ + mysql->status= MYSQL_STATUS_READY; + goto error; + } + if (!*row) + { + mysql->status= MYSQL_STATUS_READY; + rc= MYSQL_NO_DATA; + goto error; + } + return 0; +error: + if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled) + mysql->unbuffered_fetch_owner= 0; + return rc; +} + + +/* + Fetch statement row using server side cursor. + + SYNOPSIS + stmt_read_row_from_cursor() + + RETURN VALUE + 0 success + 1 error + MYSQL_NO_DATA end of data +*/ + +static int +stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row) +{ + if (stmt->data_cursor) + return stmt_read_row_buffered(stmt, row); + if (stmt->server_status & SERVER_STATUS_LAST_ROW_SENT) + stmt->server_status &= ~SERVER_STATUS_LAST_ROW_SENT; + else + { + MYSQL *mysql= stmt->mysql; + NET *net= &mysql->net; + MYSQL_DATA *result= &stmt->result; + uchar buff[4 /* statement id */ + + 4 /* number of rows to fetch */]; + + free_root(&result->alloc, MYF(MY_KEEP_PREALLOC)); + result->data= NULL; + result->rows= 0; + /* Send row request to the server */ + int4store(buff, stmt->stmt_id); + int4store(buff + 4, stmt->prefetch_rows); /* number of rows to fetch */ + if ((*mysql->methods->advanced_command)(mysql, COM_STMT_FETCH, + buff, sizeof(buff), (uchar*) 0, 0, + 1, stmt)) + { + /* + Don't set stmt error if stmt->mysql is NULL, as the error in this case + has already been set by mysql_prune_stmt_list(). + */ + if (stmt->mysql) + set_stmt_errmsg(stmt, net); + return 1; + } + if ((*mysql->methods->read_rows_from_cursor)(stmt)) + return 1; + stmt->server_status= mysql->server_status; + + stmt->data_cursor= result->data; + return stmt_read_row_buffered(stmt, row); + } + *row= 0; + return MYSQL_NO_DATA; +} + + +/* + Default read row function to not SIGSEGV in client in + case of wrong sequence of API calls. +*/ + +static int +stmt_read_row_no_data(MYSQL_STMT *stmt MY_ATTRIBUTE((unused)), + unsigned char **row MY_ATTRIBUTE((unused))) +{ + return MYSQL_NO_DATA; +} + +static int +stmt_read_row_no_result_set(MYSQL_STMT *stmt MY_ATTRIBUTE((unused)), + unsigned char **row MY_ATTRIBUTE((unused))) +{ + set_stmt_error(stmt, CR_NO_RESULT_SET, unknown_sqlstate, NULL); + return 1; +} + + +/* + Get/set statement attributes + + SYNOPSIS + mysql_stmt_attr_get() + mysql_stmt_attr_set() + + attr_type statement attribute + value casted to const void * pointer to value. + + RETURN VALUE + 0 success + !0 wrong attribute type +*/ + +my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + const void *value) +{ + switch (attr_type) { + case STMT_ATTR_UPDATE_MAX_LENGTH: + stmt->update_max_length= value ? *(const my_bool*) value : 0; + break; + case STMT_ATTR_CURSOR_TYPE: + { + ulong cursor_type; + cursor_type= value ? *(ulong*) value : 0UL; + if (cursor_type > (ulong) CURSOR_TYPE_READ_ONLY) + goto err_not_implemented; + stmt->flags= cursor_type; + break; + } + case STMT_ATTR_PREFETCH_ROWS: + { + ulong prefetch_rows= value ? *(ulong*) value : DEFAULT_PREFETCH_ROWS; + if (value == 0) + return TRUE; + stmt->prefetch_rows= prefetch_rows; + break; + } + default: + goto err_not_implemented; + } + return FALSE; +err_not_implemented: + set_stmt_error(stmt, CR_NOT_IMPLEMENTED, unknown_sqlstate, NULL); + return TRUE; +} + + +my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + void *value) +{ + switch (attr_type) { + case STMT_ATTR_UPDATE_MAX_LENGTH: + *(my_bool*) value= stmt->update_max_length; + break; + case STMT_ATTR_CURSOR_TYPE: + *(ulong*) value= stmt->flags; + break; + case STMT_ATTR_PREFETCH_ROWS: + *(ulong*) value= stmt->prefetch_rows; + break; + default: + return TRUE; + } + return FALSE; +} + + +/** + Update statement result set metadata from with the new field + information sent during statement execute. + + @pre mysql->field_count is not zero + + @retval TRUE if error: out of memory or the new + result set has a different number of columns + @retval FALSE success +*/ + +static void reinit_result_set_metadata(MYSQL_STMT *stmt) +{ + /* Server has sent result set metadata */ + if (stmt->field_count == 0) + { + /* + This is 'SHOW'/'EXPLAIN'-like query. Current implementation of + prepared statements can't send result set metadata for these queries + on prepare stage. Read it now. + */ + + stmt->field_count= stmt->mysql->field_count; + + alloc_stmt_fields(stmt); + } + else + { + /* + Update result set metadata if it for some reason changed between + prepare and execute, i.e.: + - in case of 'SELECT ?' we don't know column type unless data was + supplied to mysql_stmt_execute, so updated column type is sent + now. + - if data dictionary changed between prepare and execute, for + example a table used in the query was altered. + Note, that now (4.1.3) we always send metadata in reply to + COM_STMT_EXECUTE (even if it is not necessary), so either this or + previous branch always works. + TODO: send metadata only when it's really necessary and add a warning + 'Metadata changed' when it's sent twice. + */ + update_stmt_fields(stmt); + } +} + + +static void prepare_to_fetch_result(MYSQL_STMT *stmt) +{ + if (stmt->server_status & SERVER_STATUS_CURSOR_EXISTS) + { + stmt->mysql->status= MYSQL_STATUS_READY; + stmt->read_row_func= stmt_read_row_from_cursor; + } + else if (stmt->flags & CURSOR_TYPE_READ_ONLY) + { + /* + This is a single-row result set, a result set with no rows, EXPLAIN, + SHOW VARIABLES, or some other command which either a) bypasses the + cursors framework in the server and writes rows directly to the + network or b) is more efficient if all (few) result set rows are + precached on client and server's resources are freed. + */ + mysql_stmt_store_result(stmt); + } + else + { + stmt->mysql->unbuffered_fetch_owner= &stmt->unbuffered_fetch_cancelled; + stmt->unbuffered_fetch_cancelled= FALSE; + stmt->read_row_func= stmt_read_row_unbuffered; + } +} + + +/* + Send placeholders data to server (if there are placeholders) + and execute prepared statement. + + SYNOPSIS + mysql_stmt_execute() + stmt statement handle. The handle must be created + with mysql_stmt_init() and prepared with + mysql_stmt_prepare(). If there are placeholders + in the statement they must be bound to local + variables with mysql_stmt_bind_param(). + + DESCRIPTION + This function will automatically flush pending result + set (if there is one), send parameters data to the server + and read result of statement execution. + If previous result set was cached with mysql_stmt_store_result() + it will also be freed in the beginning of this call. + The server can return 3 types of responses to this command: + - error, can be retrieved with mysql_stmt_error() + - ok, no result set pending. In this case we just update + stmt->insert_id and stmt->affected_rows. + - the query returns a result set: there could be 0 .. N + rows in it. In this case the server can also send updated + result set metadata. + + Next steps you may want to make: + - find out if there is result set with mysql_stmt_field_count(). + If there is one: + - optionally, cache entire result set on client to unblock + connection with mysql_stmt_store_result() + - bind client variables to result set columns and start read rows + with mysql_stmt_fetch(). + - reset statement with mysql_stmt_reset() or close it with + mysql_stmt_close() + Otherwise: + - find out last insert id and number of affected rows with + mysql_stmt_insert_id(), mysql_stmt_affected_rows() + + RETURN + 0 success + 1 error, message can be retrieved with mysql_stmt_error(). +*/ + +int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt) +{ + MYSQL *mysql= stmt->mysql; + DBUG_ENTER("mysql_stmt_execute"); + + if (!mysql) + { + /* Error is already set in mysql_detatch_stmt_list */ + DBUG_RETURN(1); + } + + if (reset_stmt_handle(stmt, RESET_STORE_RESULT | RESET_CLEAR_ERROR)) + DBUG_RETURN(1); + /* + No need to check for stmt->state: if the statement wasn't + prepared we'll get 'unknown statement handler' error from server. + */ + if (mysql->methods->stmt_execute(stmt)) + DBUG_RETURN(1); + stmt->state= MYSQL_STMT_EXECUTE_DONE; + if (mysql->field_count) + { + reinit_result_set_metadata(stmt); + prepare_to_fetch_result(stmt); + } + DBUG_RETURN(MY_TEST(stmt->last_errno)); +} + + +/* + Return total parameters count in the statement +*/ + +ulong STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt) +{ + DBUG_ENTER("mysql_stmt_param_count"); + DBUG_RETURN(stmt->param_count); +} + +/* + Return total affected rows from the last statement +*/ + +my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt) +{ + return stmt->affected_rows; +} + + +/* + Returns the number of result columns for the most recent query + run on this statement. +*/ + +unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt) +{ + return stmt->field_count; +} + +/* + Return last inserted id for auto_increment columns. + + SYNOPSIS + mysql_stmt_insert_id() + stmt statement handle + + DESCRIPTION + Current implementation of this call has a caveat: stmt->insert_id is + unconditionally updated from mysql->insert_id in the end of each + mysql_stmt_execute(). This works OK if mysql->insert_id contains new + value (sent in reply to mysql_stmt_execute()), otherwise stmt->insert_id + value gets undefined, as it's updated from some arbitrary value saved in + connection structure during some other call. +*/ + +my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt) +{ + return stmt->insert_id; +} + + +static my_bool int_is_null_true= 1; /* Used for MYSQL_TYPE_NULL */ +static my_bool int_is_null_false= 0; + + +/* + Set up input data buffers for a statement. + + SYNOPSIS + mysql_stmt_bind_param() + stmt statement handle + The statement must be prepared with mysql_stmt_prepare(). + my_bind Array of mysql_stmt_param_count() bind parameters. + This function doesn't check that size of this argument + is >= mysql_stmt_field_count(): it's user's responsibility. + + DESCRIPTION + Use this call after mysql_stmt_prepare() to bind user variables to + placeholders. + Each element of bind array stands for a placeholder. Placeholders + are counted from 0. For example statement + 'INSERT INTO t (a, b) VALUES (?, ?)' + contains two placeholders, and for such statement you should supply + bind array of two elements (MYSQL_BIND bind[2]). + + By properly initializing bind array you can bind virtually any + C language type to statement's placeholders: + First, it's strongly recommended to always zero-initialize entire + bind structure before setting its members. This will both shorten + your application code and make it robust to future extensions of + MYSQL_BIND structure. + Then you need to assign typecode of your application buffer to + MYSQL_BIND::buffer_type. The following typecodes with their + correspondence to C language types are supported: + MYSQL_TYPE_TINY for 8-bit integer variables. Normally it's + 'signed char' and 'unsigned char'; + MYSQL_TYPE_SHORT for 16-bit signed and unsigned variables. This + is usually 'short' and 'unsigned short'; + MYSQL_TYPE_LONG for 32-bit signed and unsigned variables. It + corresponds to 'int' and 'unsigned int' on + vast majority of platforms. On IA-32 and some + other 32-bit systems you can also use 'long' + here; + MYSQL_TYPE_LONGLONG 64-bit signed or unsigned integer. Stands for + '[unsigned] long long' on most platforms; + MYSQL_TYPE_FLOAT 32-bit floating point type, 'float' on most + systems; + MYSQL_TYPE_DOUBLE 64-bit floating point type, 'double' on most + systems; + MYSQL_TYPE_TIME broken-down time stored in MYSQL_TIME + structure + MYSQL_TYPE_DATE date stored in MYSQL_TIME structure + MYSQL_TYPE_DATETIME datetime stored in MYSQL_TIME structure See + more on how to use these types for sending + dates and times below; + MYSQL_TYPE_STRING character string, assumed to be in + character-set-client. If character set of + client is not equal to character set of + column, value for this placeholder will be + converted to destination character set before + insert. + MYSQL_TYPE_BLOB sequence of bytes. This sequence is assumed to + be in binary character set (which is the same + as no particular character set), and is never + converted to any other character set. See also + notes about supplying string/blob length + below. + MYSQL_TYPE_NULL special typecode for binding nulls. + These C/C++ types are not supported yet by the API: long double, + bool. + + As you can see from the list above, it's responsibility of + application programmer to ensure that chosen typecode properly + corresponds to host language type. For example on all platforms + where we build MySQL packages (as of MySQL 4.1.4) int is a 32-bit + type. So for int you can always assume that proper typecode is + MYSQL_TYPE_LONG (however queer it sounds, the name is legacy of the + old MySQL API). In contrary sizeof(long) can be 4 or 8 8-bit bytes, + depending on platform. + + TODO: provide client typedefs for each integer and floating point + typecode, i. e. int8, uint8, float32, etc. + + Once typecode was set, it's necessary to assign MYSQL_BIND::buffer + to point to the buffer of given type. Finally, additional actions + may be taken for some types or use cases: + + Binding integer types. + For integer types you might also need to set MYSQL_BIND::is_unsigned + member. Set it to TRUE when binding unsigned char, unsigned short, + unsigned int, unsigned long, unsigned long long. + + Binding floating point types. + For floating point types you just need to set + MYSQL_BIND::buffer_type and MYSQL_BIND::buffer. The rest of the + members should be zero-initialized. + + Binding NULLs. + You might have a column always NULL, never NULL, or sometimes + NULL. For an always NULL column set MYSQL_BIND::buffer_type to + MYSQL_TYPE_NULL. The rest of the members just need to be + zero-initialized. For never NULL columns set + MYSQL_BIND::is_null to 0, or this has already been done if you + zero-initialized the entire structure. If you set + MYSQL_TYPE::is_null to point to an application buffer of type + 'my_bool', then this buffer will be checked on each execution: + this way you can set the buffer to TRUE, or any non-0 value for + NULLs, and to FALSE or 0 for not NULL data. + + Binding text strings and sequences of bytes. + For strings, in addition to MYSQL_BIND::buffer_type and + MYSQL_BIND::buffer you need to set MYSQL_BIND::length or + MYSQL_BIND::buffer_length. If 'length' is set, 'buffer_length' + is ignored. 'buffer_length' member should be used when size of + string doesn't change between executions. If you want to vary + buffer length for each value, set 'length' to point to an + application buffer of type 'unsigned long' and set this long to + length of the string before each mysql_stmt_execute(). + + Binding dates and times. + For binding dates and times prepared statements API provides + clients with MYSQL_TIME structure. A pointer to instance of this + structure should be assigned to MYSQL_BIND::buffer whenever + MYSQL_TYPE_TIME, MYSQL_TYPE_DATE, MYSQL_TYPE_DATETIME typecodes + are used. When typecode is MYSQL_TYPE_TIME, only members + 'hour', 'minute', 'second' and 'neg' (is time offset negative) + are used. These members only will be sent to the server. + MYSQL_TYPE_DATE implies use of 'year', 'month', 'day', 'neg'. + MYSQL_TYPE_DATETIME utilizes both parts of MYSQL_TIME structure. + You don't have to set MYSQL_TIME::time_type member: it's not + used when sending data to the server, typecode information is + enough. 'second_part' member can hold microsecond precision of + time value, but now it's only supported on protocol level: you + can't store microsecond in a column, or use in temporal + calculations. However, if you send a time value with microsecond + part for 'SELECT ?', statement, you'll get it back unchanged + from the server. + + Data conversion. + If conversion from host language type to data representation, + corresponding to SQL type, is required it's done on the server. + Data truncation is possible when conversion is lossy. For + example, if you supply MYSQL_TYPE_DATETIME value out of valid + SQL type TIMESTAMP range, the same conversion will be applied as + if this value would have been sent as string in the old + protocol. TODO: document how the server will behave in case of + truncation/data loss. + + After variables were bound, you can repeatedly set/change their + values and mysql_stmt_execute() the statement. + + See also: mysql_stmt_send_long_data() for sending long text/blob + data in pieces, examples in tests/mysql_client_test.c. + Next steps you might want to make: + - execute statement with mysql_stmt_execute(), + - reset statement using mysql_stmt_reset() or reprepare it with + another query using mysql_stmt_prepare() + - close statement with mysql_stmt_close(). + + IMPLEMENTATION + The function copies given bind array to internal storage of the + statement, and sets up typecode-specific handlers to perform + serialization of bound data. This means that although you don't need + to call this routine after each assignment to bind buffers, you + need to call it each time you change parameter typecodes, or other + members of MYSQL_BIND array. + This is a pure local call. Data types of client buffers are sent + along with buffers' data at first execution of the statement. + + RETURN + 0 success + 1 error, can be retrieved with mysql_stmt_error. +*/ + +my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT *stmt, MYSQL_BIND *my_bind) +{ + uint count=0; + MYSQL_BIND *param, *end; + DBUG_ENTER("mysql_stmt_bind_param"); + + if (!stmt->param_count) + { + if ((int) stmt->state < (int) MYSQL_STMT_PREPARE_DONE) + { + set_stmt_error(stmt, CR_NO_PREPARE_STMT, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + DBUG_RETURN(0); + } + + /* Allocated on prepare */ + memcpy((char*) stmt->params, (char*) my_bind, + sizeof(MYSQL_BIND) * stmt->param_count); + + for (param= stmt->params, end= param+stmt->param_count; + param < end ; + param++) + { + param->param_number= count++; + param->long_data_used= 0; + + /* If param->is_null is not set, then the value can never be NULL */ + if (!param->is_null) + param->is_null= &int_is_null_false; + + /* Setup data copy functions for the different supported types */ + switch (param->buffer_type) { + case MYSQL_TYPE_NULL: + param->is_null= &int_is_null_true; + break; + case MYSQL_TYPE_TINY: + /* Force param->length as this is fixed for this type */ + param->length= ¶m->buffer_length; + param->buffer_length= 1; + param->store_param_func= store_param_tinyint; + break; + case MYSQL_TYPE_SHORT: + param->length= ¶m->buffer_length; + param->buffer_length= 2; + param->store_param_func= store_param_short; + break; + case MYSQL_TYPE_LONG: + param->length= ¶m->buffer_length; + param->buffer_length= 4; + param->store_param_func= store_param_int32; + break; + case MYSQL_TYPE_LONGLONG: + param->length= ¶m->buffer_length; + param->buffer_length= 8; + param->store_param_func= store_param_int64; + break; + case MYSQL_TYPE_FLOAT: + param->length= ¶m->buffer_length; + param->buffer_length= 4; + param->store_param_func= store_param_float; + break; + case MYSQL_TYPE_DOUBLE: + param->length= ¶m->buffer_length; + param->buffer_length= 8; + param->store_param_func= store_param_double; + break; + case MYSQL_TYPE_TIME: + param->store_param_func= store_param_time; + param->buffer_length= MAX_TIME_REP_LENGTH; + break; + case MYSQL_TYPE_DATE: + param->store_param_func= store_param_date; + param->buffer_length= MAX_DATE_REP_LENGTH; + break; + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + param->store_param_func= store_param_datetime; + param->buffer_length= MAX_DATETIME_REP_LENGTH; + break; + case MYSQL_TYPE_TINY_BLOB: + case MYSQL_TYPE_MEDIUM_BLOB: + case MYSQL_TYPE_LONG_BLOB: + case MYSQL_TYPE_BLOB: + case MYSQL_TYPE_VARCHAR: + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_STRING: + case MYSQL_TYPE_DECIMAL: + case MYSQL_TYPE_NEWDECIMAL: + case MYSQL_TYPE_JSON: + param->store_param_func= store_param_str; + /* + For variable length types user must set either length or + buffer_length. + */ + break; + default: + my_stpcpy(stmt->sqlstate, unknown_sqlstate); + sprintf(stmt->last_error, + ER(stmt->last_errno= CR_UNSUPPORTED_PARAM_TYPE), + param->buffer_type, count); + DBUG_RETURN(1); + } + /* + If param->length is not given, change it to point to buffer_length. + This way we can always use *param->length to get the length of data + */ + if (!param->length) + param->length= ¶m->buffer_length; + } + /* We have to send/resend type information to MySQL */ + stmt->send_types_to_server= TRUE; + stmt->bind_param_done= TRUE; + DBUG_RETURN(0); +} + + +/******************************************************************** + Long data implementation +*********************************************************************/ + +/* + Send long data in pieces to the server + + SYNOPSIS + mysql_stmt_send_long_data() + stmt Statement handler + param_number Parameter number (0 - N-1) + data Data to send to server + length Length of data to send (may be 0) + + DESCRIPTION + This call can be used repeatedly to send long data in pieces + for any string/binary placeholder. Data supplied for + a placeholder is saved at server side till execute, and then + used instead of value from MYSQL_BIND object. More precisely, + if long data for a parameter was supplied, MYSQL_BIND object + corresponding to this parameter is not sent to server. In the + end of execution long data states of placeholders are reset, + so next time values of such placeholders will be taken again + from MYSQL_BIND array. + The server does not reply to this call: if there was an error + in data handling (which now only can happen if server run out + of memory) it would be returned in reply to + mysql_stmt_execute(). + You should choose type of long data carefully if you care + about character set conversions performed by server when the + statement is executed. No conversion is performed at all for + MYSQL_TYPE_BLOB and other binary typecodes. For + MYSQL_TYPE_STRING and the rest of text placeholders data is + converted from client character set to character set of + connection. If these character sets are different, this + conversion may require additional memory at server, equal to + total size of supplied pieces. + + RETURN VALUES + 0 ok + 1 error +*/ + +my_bool STDCALL +mysql_stmt_send_long_data(MYSQL_STMT *stmt, uint param_number, + const char *data, ulong length) +{ + MYSQL_BIND *param; + DBUG_ENTER("mysql_stmt_send_long_data"); + DBUG_ASSERT(stmt != 0); + DBUG_PRINT("enter",("param no: %d data: 0x%lx, length : %ld", + param_number, (long) data, length)); + + /* + We only need to check for stmt->param_count, if it's not null + prepare was done. + */ + if (param_number >= stmt->param_count) + { + set_stmt_error(stmt, CR_INVALID_PARAMETER_NO, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + param= stmt->params+param_number; + if (!IS_LONGDATA(param->buffer_type)) + { + /* Long data handling should be used only for string/binary types */ + my_stpcpy(stmt->sqlstate, unknown_sqlstate); + sprintf(stmt->last_error, ER(stmt->last_errno= CR_INVALID_BUFFER_USE), + param->param_number); + DBUG_RETURN(1); + } + + /* + Send long data packet if there is data or we're sending long data + for the first time. + */ + if (length || param->long_data_used == 0) + { + MYSQL *mysql= stmt->mysql; + /* Packet header: stmt id (4 bytes), param no (2 bytes) */ + uchar buff[MYSQL_LONG_DATA_HEADER]; + + int4store(buff, stmt->stmt_id); + int2store(buff + 4, param_number); + param->long_data_used= 1; + + /* + Note that we don't get any ok packet from the server in this case + This is intentional to save bandwidth. + */ + if ((*mysql->methods->advanced_command)(mysql, COM_STMT_SEND_LONG_DATA, + buff, sizeof(buff), (uchar*) data, + length, 1, stmt)) + { + /* + Don't set stmt error if stmt->mysql is NULL, as the error in this case + has already been set by mysql_prune_stmt_list(). + */ + if (stmt->mysql) + set_stmt_errmsg(stmt, &mysql->net); + DBUG_RETURN(1); + } + } + DBUG_RETURN(0); +} + + +/******************************************************************** + Fetch and conversion of result set rows (binary protocol). +*********************************************************************/ + +/* + Read date, (time, datetime) value from network buffer and store it + in MYSQL_TIME structure. + + SYNOPSIS + read_binary_{date,time,datetime}() + tm MYSQL_TIME structure to fill + pos pointer to current position in network buffer. + These functions increase pos to point to the beginning of the + next column. + + Auxiliary functions to read time (date, datetime) values from network + buffer and store in MYSQL_TIME structure. Jointly used by conversion + and no-conversion fetching. +*/ + +static void read_binary_time(MYSQL_TIME *tm, uchar **pos) +{ + /* net_field_length will set pos to the first byte of data */ + uint length= net_field_length(pos); + + if (length) + { + uchar *to= *pos; + tm->neg= to[0]; + + tm->day= (ulong) sint4korr(to+1); + tm->hour= (uint) to[5]; + tm->minute= (uint) to[6]; + tm->second= (uint) to[7]; + tm->second_part= (length > 8) ? (ulong) sint4korr(to+8) : 0; + tm->year= tm->month= 0; + if (tm->day) + { + /* Convert days to hours at once */ + tm->hour+= tm->day*24; + tm->day= 0; + } + tm->time_type= MYSQL_TIMESTAMP_TIME; + + *pos+= length; + } + else + set_zero_time(tm, MYSQL_TIMESTAMP_TIME); +} + +static void read_binary_datetime(MYSQL_TIME *tm, uchar **pos) +{ + uint length= net_field_length(pos); + + if (length) + { + uchar *to= *pos; + + tm->neg= 0; + tm->year= (uint) sint2korr(to); + tm->month= (uint) to[2]; + tm->day= (uint) to[3]; + + if (length > 4) + { + tm->hour= (uint) to[4]; + tm->minute= (uint) to[5]; + tm->second= (uint) to[6]; + } + else + tm->hour= tm->minute= tm->second= 0; + tm->second_part= (length > 7) ? (ulong) sint4korr(to+7) : 0; + tm->time_type= MYSQL_TIMESTAMP_DATETIME; + + *pos+= length; + } + else + set_zero_time(tm, MYSQL_TIMESTAMP_DATETIME); +} + +static void read_binary_date(MYSQL_TIME *tm, uchar **pos) +{ + uint length= net_field_length(pos); + + if (length) + { + uchar *to= *pos; + tm->year = (uint) sint2korr(to); + tm->month= (uint) to[2]; + tm->day= (uint) to[3]; + + tm->hour= tm->minute= tm->second= 0; + tm->second_part= 0; + tm->neg= 0; + tm->time_type= MYSQL_TIMESTAMP_DATE; + + *pos+= length; + } + else + set_zero_time(tm, MYSQL_TIMESTAMP_DATE); +} + + +/* + Convert string to supplied buffer of any type. + + SYNOPSIS + fetch_string_with_conversion() + param output buffer descriptor + value column data + length data length +*/ + +static void fetch_string_with_conversion(MYSQL_BIND *param, char *value, + size_t length) +{ + uchar *buffer= param->buffer; + char *endptr= value + length; + + /* + This function should support all target buffer types: the rest + of conversion functions can delegate conversion to it. + */ + switch (param->buffer_type) { + case MYSQL_TYPE_NULL: /* do nothing */ + break; + case MYSQL_TYPE_TINY: + { + int err; + longlong data= my_strtoll10(value, &endptr, &err); + *param->error= (IS_TRUNCATED(data, param->is_unsigned, + INT_MIN8, INT_MAX8, UINT_MAX8) || err > 0); + *buffer= (uchar) data; + break; + } + case MYSQL_TYPE_SHORT: + { + int err; + longlong data= my_strtoll10(value, &endptr, &err); + *param->error= (IS_TRUNCATED(data, param->is_unsigned, + INT_MIN16, INT_MAX16, UINT_MAX16) || err > 0); + shortstore(buffer, (short) data); + break; + } + case MYSQL_TYPE_LONG: + { + int err; + longlong data= my_strtoll10(value, &endptr, &err); + *param->error= (IS_TRUNCATED(data, param->is_unsigned, + INT_MIN32, INT_MAX32, UINT_MAX32) || err > 0); + longstore(buffer, (int32) data); + break; + } + case MYSQL_TYPE_LONGLONG: + { + int err; + longlong data= my_strtoll10(value, &endptr, &err); + *param->error= param->is_unsigned ? err != 0 : + (err > 0 || (err == 0 && data < 0)); + longlongstore(buffer, data); + break; + } + case MYSQL_TYPE_FLOAT: + { + int err; + double data= my_strntod(&my_charset_latin1, value, length, &endptr, &err); + float fdata= (float) data; + *param->error= (fdata != data) | MY_TEST(err); + floatstore(buffer, fdata); + break; + } + case MYSQL_TYPE_DOUBLE: + { + int err; + double data= my_strntod(&my_charset_latin1, value, length, &endptr, &err); + *param->error= MY_TEST(err); + doublestore(buffer, data); + break; + } + case MYSQL_TYPE_TIME: + { + MYSQL_TIME_STATUS status; + MYSQL_TIME *tm= (MYSQL_TIME *)buffer; + str_to_time(value, length, tm, &status); + *param->error= MY_TEST(status.warnings); + break; + } + case MYSQL_TYPE_DATE: + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + { + MYSQL_TIME_STATUS status; + MYSQL_TIME *tm= (MYSQL_TIME *)buffer; + (void) str_to_datetime(value, length, tm, TIME_FUZZY_DATE, &status); + *param->error= MY_TEST(status.warnings) && + (param->buffer_type == MYSQL_TYPE_DATE && + tm->time_type != MYSQL_TIMESTAMP_DATE); + break; + } + case MYSQL_TYPE_TINY_BLOB: + case MYSQL_TYPE_MEDIUM_BLOB: + case MYSQL_TYPE_LONG_BLOB: + case MYSQL_TYPE_BLOB: + case MYSQL_TYPE_DECIMAL: + case MYSQL_TYPE_NEWDECIMAL: + default: + { + /* + Copy column data to the buffer taking into account offset, + data length and buffer length. + */ + char *start= value + param->offset; + char *end= value + length; + size_t copy_length; + if (start < end) + { + copy_length= end - start; + /* We've got some data beyond offset: copy up to buffer_length bytes */ + if (param->buffer_length) + memcpy(buffer, start, MY_MIN(copy_length, param->buffer_length)); + } + else + copy_length= 0; + if (copy_length < param->buffer_length) + buffer[copy_length]= '\0'; + *param->error= copy_length > param->buffer_length; + /* + param->length will always contain length of entire column; + number of copied bytes may be way different: + */ + *param->length= (unsigned long)length; + break; + } + } +} + + +/* + Convert integer value to client buffer of any type. + + SYNOPSIS + fetch_long_with_conversion() + param output buffer descriptor + field column metadata + value column data +*/ + +static void fetch_long_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field, + longlong value, my_bool is_unsigned) +{ + uchar *buffer= param->buffer; + + switch (param->buffer_type) { + case MYSQL_TYPE_NULL: /* do nothing */ + break; + case MYSQL_TYPE_TINY: + *param->error= IS_TRUNCATED(value, param->is_unsigned, + INT_MIN8, INT_MAX8, UINT_MAX8); + *(uchar *)param->buffer= (uchar) value; + break; + case MYSQL_TYPE_SHORT: + *param->error= IS_TRUNCATED(value, param->is_unsigned, + INT_MIN16, INT_MAX16, UINT_MAX16); + shortstore(buffer, (short) value); + break; + case MYSQL_TYPE_LONG: + *param->error= IS_TRUNCATED(value, param->is_unsigned, + INT_MIN32, INT_MAX32, UINT_MAX32); + longstore(buffer, (int32) value); + break; + case MYSQL_TYPE_LONGLONG: + longlongstore(buffer, value); + *param->error= param->is_unsigned != is_unsigned && value < 0; + break; + case MYSQL_TYPE_FLOAT: + { + /* + We need to mark the local variable volatile to + workaround Intel FPU executive precision feature. + (See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 for details) + */ + volatile float data; + if (is_unsigned) + { + data= (float) ulonglong2double(value); + *param->error= ((ulonglong) value) != ((ulonglong) data); + } + else + { + data= (float)value; + *param->error= value != ((longlong) data); + } + floatstore(buffer, data); + break; + } + case MYSQL_TYPE_DOUBLE: + { + volatile double data; + if (is_unsigned) + { + data= ulonglong2double(value); + *param->error= ((ulonglong) value) != ((ulonglong) data); + } + else + { + data= (double)value; + *param->error= value != ((longlong) data); + } + doublestore(buffer, data); + break; + } + case MYSQL_TYPE_TIME: + case MYSQL_TYPE_DATE: + case MYSQL_TYPE_TIMESTAMP: + case MYSQL_TYPE_DATETIME: + { + int error; + value= number_to_datetime(value, (MYSQL_TIME *) buffer, TIME_FUZZY_DATE, + &error); + *param->error= MY_TEST(error); + break; + } + default: + { + uchar buff[22]; /* Enough for longlong */ + uchar *end= (uchar*) longlong10_to_str(value, (char*) buff, + is_unsigned ? 10: -10); + /* Resort to string conversion which supports all typecodes */ + uint length= (uint) (end-buff); + + if (field->flags & ZEROFILL_FLAG && length < field->length && + field->length < 21) + { + memmove(buff + field->length - length, buff, length); + memset(buff, '0', field->length - length); + length= field->length; + } + fetch_string_with_conversion(param, (char*) buff, length); + break; + } + } +} + +/* + Convert double/float column to supplied buffer of any type. + + SYNOPSIS + fetch_float_with_conversion() + param output buffer descriptor + field column metadata + value column data + type either MY_GCVT_ARG_FLOAT or MY_GCVT_ARG_DOUBLE. + Affects the maximum number of significant digits + returned by my_gcvt(). +*/ + +static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field, + double value, my_gcvt_arg_type type) +{ + uchar *buffer= param->buffer; + double val64 = (value < 0 ? -floor(-value) : floor(value)); + + switch (param->buffer_type) { + case MYSQL_TYPE_NULL: /* do nothing */ + break; + case MYSQL_TYPE_TINY: + /* + We need to _store_ data in the buffer before the truncation check to + workaround Intel FPU executive precision feature. + (See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 for details) + Sic: AFAIU it does not guarantee to work. + */ + if (param->is_unsigned) + *buffer= (uint8) value; + else + *buffer= (int8) value; + *param->error= val64 != (param->is_unsigned ? (double)((uint8) *buffer) : + (double)((int8) *buffer)); + break; + case MYSQL_TYPE_SHORT: + if (param->is_unsigned) + { + ushort data= (ushort) value; + shortstore(buffer, data); + } + else + { + short data= (short) value; + shortstore(buffer, data); + } + *param->error= val64 != (param->is_unsigned ? (double) (*(ushort*) buffer): + (double) (*(short*) buffer)); + break; + case MYSQL_TYPE_LONG: + if (param->is_unsigned) + { + uint32 data= (uint32) value; + longstore(buffer, data); + } + else + { + int32 data= (int32) value; + longstore(buffer, data); + } + *param->error= val64 != (param->is_unsigned ? (double) (*(uint32*) buffer): + (double) (*(int32*) buffer)); + break; + case MYSQL_TYPE_LONGLONG: + if (param->is_unsigned) + { + ulonglong data= (ulonglong) value; + longlongstore(buffer, data); + } + else + { + longlong data= (longlong) value; + longlongstore(buffer, data); + } + *param->error= val64 != (param->is_unsigned ? + ulonglong2double(*(ulonglong*) buffer) : + (double) (*(longlong*) buffer)); + break; + case MYSQL_TYPE_FLOAT: + { + float data= (float) value; + floatstore(buffer, data); + *param->error= (*(float*) buffer) != value; + break; + } + case MYSQL_TYPE_DOUBLE: + { + doublestore(buffer, value); + break; + } + default: + { + /* + Resort to fetch_string_with_conversion: this should handle + floating point -> string conversion nicely, honor all typecodes + and param->offset possibly set in mysql_stmt_fetch_column + */ + char buff[FLOATING_POINT_BUFFER]; + size_t len; + if (field->decimals >= NOT_FIXED_DEC) + len= my_gcvt(value, type, + (int) MY_MIN(sizeof(buff)-1, param->buffer_length), + buff, NULL); + else + len= my_fcvt(value, (int) field->decimals, buff, NULL); + + if (field->flags & ZEROFILL_FLAG && len < field->length && + field->length < MAX_DOUBLE_STRING_REP_LENGTH - 1) + { + memmove(buff + field->length - len, buff, len); + memset(buff, '0', field->length - len); + len= field->length; + } + fetch_string_with_conversion(param, buff, len); + + break; + } + } +} + + +/* + Fetch time/date/datetime to supplied buffer of any type + + SYNOPSIS + param output buffer descriptor + time column data +*/ + +static void fetch_datetime_with_conversion(MYSQL_BIND *param, + MYSQL_FIELD *field, + MYSQL_TIME *my_time) +{ + switch (param->buffer_type) { + case MYSQL_TYPE_NULL: /* do nothing */ + break; + case MYSQL_TYPE_DATE: + *(MYSQL_TIME *)(param->buffer)= *my_time; + *param->error= my_time->time_type != MYSQL_TIMESTAMP_DATE; + break; + case MYSQL_TYPE_TIME: + *(MYSQL_TIME *)(param->buffer)= *my_time; + *param->error= my_time->time_type != MYSQL_TIMESTAMP_TIME; + break; + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + *(MYSQL_TIME *)(param->buffer)= *my_time; + /* No error: time and date are compatible with datetime */ + break; + case MYSQL_TYPE_YEAR: + shortstore(param->buffer, my_time->year); + *param->error= 1; + break; + case MYSQL_TYPE_FLOAT: + case MYSQL_TYPE_DOUBLE: + { + ulonglong value= TIME_to_ulonglong(my_time); + fetch_float_with_conversion(param, field, + ulonglong2double(value), MY_GCVT_ARG_DOUBLE); + break; + } + case MYSQL_TYPE_TINY: + case MYSQL_TYPE_SHORT: + case MYSQL_TYPE_INT24: + case MYSQL_TYPE_LONG: + case MYSQL_TYPE_LONGLONG: + { + longlong value= (longlong) TIME_to_ulonglong(my_time); + fetch_long_with_conversion(param, field, value, TRUE); + break; + } + default: + { + /* + Convert time value to string and delegate the rest to + fetch_string_with_conversion: + */ + char buff[MAX_DATE_STRING_REP_LENGTH]; + uint length= my_TIME_to_str(my_time, buff, field->decimals); + /* Resort to string conversion */ + fetch_string_with_conversion(param, (char *)buff, length); + break; + } + } +} + + +/* + Fetch and convert result set column to output buffer. + + SYNOPSIS + fetch_result_with_conversion() + param output buffer descriptor + field column metadata + row points to a column of result set tuple in binary format + + DESCRIPTION + This is a fallback implementation of column fetch used + if column and output buffer types do not match. + Increases tuple pointer to point at the next column within the + tuple. +*/ + +static void fetch_result_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field, + uchar **row) +{ + enum enum_field_types field_type= field->type; + uint field_is_unsigned= field->flags & UNSIGNED_FLAG; + + switch (field_type) { + case MYSQL_TYPE_TINY: + { + uchar value= **row; + /* sic: we need to cast to 'signed char' as 'char' may be unsigned */ + longlong data= field_is_unsigned ? (longlong) value : + (longlong) (signed char) value; + fetch_long_with_conversion(param, field, data, 0); + *row+= 1; + break; + } + case MYSQL_TYPE_SHORT: + case MYSQL_TYPE_YEAR: + { + short value= sint2korr(*row); + longlong data= field_is_unsigned ? (longlong) (unsigned short) value : + (longlong) value; + fetch_long_with_conversion(param, field, data, 0); + *row+= 2; + break; + } + case MYSQL_TYPE_INT24: /* mediumint is sent as 4 bytes int */ + case MYSQL_TYPE_LONG: + { + int32 value= sint4korr(*row); + longlong data= field_is_unsigned ? (longlong) (uint32) value : + (longlong) value; + fetch_long_with_conversion(param, field, data, 0); + *row+= 4; + break; + } + case MYSQL_TYPE_LONGLONG: + { + longlong value= (longlong)sint8korr(*row); + fetch_long_with_conversion(param, field, value, + field->flags & UNSIGNED_FLAG); + *row+= 8; + break; + } + case MYSQL_TYPE_FLOAT: + { + float value; + float4get(&value,*row); + fetch_float_with_conversion(param, field, value, MY_GCVT_ARG_FLOAT); + *row+= 4; + break; + } + case MYSQL_TYPE_DOUBLE: + { + double value; + float8get(&value,*row); + fetch_float_with_conversion(param, field, value, MY_GCVT_ARG_DOUBLE); + *row+= 8; + break; + } + case MYSQL_TYPE_DATE: + { + MYSQL_TIME tm; + + read_binary_date(&tm, row); + fetch_datetime_with_conversion(param, field, &tm); + break; + } + case MYSQL_TYPE_TIME: + { + MYSQL_TIME tm; + + read_binary_time(&tm, row); + fetch_datetime_with_conversion(param, field, &tm); + break; + } + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + { + MYSQL_TIME tm; + + read_binary_datetime(&tm, row); + fetch_datetime_with_conversion(param, field, &tm); + break; + } + default: + { + ulong length= net_field_length(row); + fetch_string_with_conversion(param, (char*) *row, length); + *row+= length; + break; + } + } +} + + +/* + Functions to fetch data to application buffers without conversion. + + All functions have the following characteristics: + + SYNOPSIS + fetch_result_xxx() + param MySQL bind param + pos Row value + + DESCRIPTION + These are no-conversion functions, used in binary protocol to store + rows in application buffers. A function used only if type of binary data + is compatible with type of application buffer. + + RETURN + none +*/ + +static void fetch_result_tinyint(MYSQL_BIND *param, MYSQL_FIELD *field, + uchar **row) +{ + my_bool field_is_unsigned= MY_TEST(field->flags & UNSIGNED_FLAG); + uchar data= **row; + *(uchar *)param->buffer= data; + *param->error= param->is_unsigned != field_is_unsigned && data > INT_MAX8; + (*row)++; +} + +static void fetch_result_short(MYSQL_BIND *param, MYSQL_FIELD *field, + uchar **row) +{ + my_bool field_is_unsigned= MY_TEST(field->flags & UNSIGNED_FLAG); + ushort data= (ushort) sint2korr(*row); + shortstore(param->buffer, data); + *param->error= param->is_unsigned != field_is_unsigned && data > INT_MAX16; + *row+= 2; +} + +static void fetch_result_int32(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + my_bool field_is_unsigned= MY_TEST(field->flags & UNSIGNED_FLAG); + uint32 data= (uint32) sint4korr(*row); + longstore(param->buffer, data); + *param->error= param->is_unsigned != field_is_unsigned && data > INT_MAX32; + *row+= 4; +} + +static void fetch_result_int64(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + my_bool field_is_unsigned= MY_TEST(field->flags & UNSIGNED_FLAG); + ulonglong data= (ulonglong) sint8korr(*row); + *param->error= param->is_unsigned != field_is_unsigned && data > LLONG_MAX; + longlongstore(param->buffer, data); + *row+= 8; +} + +static void fetch_result_float(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + float value; + float4get(&value,*row); + floatstore(param->buffer, value); + *row+= 4; +} + +static void fetch_result_double(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + double value; + float8get(&value,*row); + doublestore(param->buffer, value); + *row+= 8; +} + +static void fetch_result_time(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer; + read_binary_time(tm, row); +} + +static void fetch_result_date(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer; + read_binary_date(tm, row); +} + +static void fetch_result_datetime(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer; + read_binary_datetime(tm, row); +} + +static void fetch_result_bin(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + ulong length= net_field_length(row); + ulong copy_length= MY_MIN(length, param->buffer_length); + memcpy(param->buffer, (char *)*row, copy_length); + *param->length= length; + *param->error= copy_length < length; + *row+= length; +} + +static void fetch_result_str(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) +{ + ulong length= net_field_length(row); + ulong copy_length= MY_MIN(length, param->buffer_length); + memcpy(param->buffer, (char *)*row, copy_length); + /* Add an end null if there is room in the buffer */ + if (copy_length != param->buffer_length) + ((uchar *)param->buffer)[copy_length]= '\0'; + *param->length= length; /* return total length */ + *param->error= copy_length < length; + *row+= length; +} + + +/* + functions to calculate max lengths for strings during + mysql_stmt_store_result() +*/ + +static void skip_result_fixed(MYSQL_BIND *param, + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) + +{ + (*row)+= param->pack_length; +} + + +static void skip_result_with_length(MYSQL_BIND *param MY_ATTRIBUTE((unused)), + MYSQL_FIELD *field MY_ATTRIBUTE((unused)), + uchar **row) + +{ + ulong length= net_field_length(row); + (*row)+= length; +} + + +static void skip_result_string(MYSQL_BIND *param MY_ATTRIBUTE((unused)), + MYSQL_FIELD *field, + uchar **row) + +{ + ulong length= net_field_length(row); + (*row)+= length; + if (field->max_length < length) + field->max_length= length; +} + + +/* + Check that two field types are binary compatible i. e. + have equal representation in the binary protocol and + require client-side buffers of the same type. + + SYNOPSIS + is_binary_compatible() + type1 parameter type supplied by user + type2 field type, obtained from result set metadata + + RETURN + TRUE or FALSE +*/ + +static my_bool is_binary_compatible(enum enum_field_types type1, + enum enum_field_types type2) +{ + static const enum enum_field_types + range1[]= { MYSQL_TYPE_SHORT, MYSQL_TYPE_YEAR, MYSQL_TYPE_NULL }, + range2[]= { MYSQL_TYPE_INT24, MYSQL_TYPE_LONG, MYSQL_TYPE_NULL }, + range3[]= { MYSQL_TYPE_DATETIME, MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_NULL }, + range4[]= { MYSQL_TYPE_ENUM, MYSQL_TYPE_SET, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB, + MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_STRING, MYSQL_TYPE_GEOMETRY, + MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NULL }; + static const enum enum_field_types + *range_list[]= { range1, range2, range3, range4 }, + **range_list_end= range_list + sizeof(range_list)/sizeof(*range_list); + const enum enum_field_types **range, *type; + + if (type1 == type2) + return TRUE; + for (range= range_list; range != range_list_end; ++range) + { + /* check that both type1 and type2 are in the same range */ + my_bool type1_found= FALSE, type2_found= FALSE; + for (type= *range; *type != MYSQL_TYPE_NULL; type++) + { + type1_found|= type1 == *type; + type2_found|= type2 == *type; + } + if (type1_found || type2_found) + return type1_found && type2_found; + } + return FALSE; +} + + +/* + Setup a fetch function for one column of a result set. + + SYNOPSIS + setup_one_fetch_function() + param output buffer descriptor + field column descriptor + + DESCRIPTION + When user binds result set buffers or when result set + metadata is changed, we need to setup fetch (and possibly + conversion) functions for all columns of the result set. + In addition to that here we set up skip_result function, used + to update result set metadata in case when + STMT_ATTR_UPDATE_MAX_LENGTH attribute is set. + Notice that while fetch_result is chosen depending on both + field->type and param->type, skip_result depends on field->type + only. + + RETURN + TRUE fetch function for this typecode was not found (typecode + is not supported by the client library) + FALSE success +*/ + +static my_bool setup_one_fetch_function(MYSQL_BIND *param, MYSQL_FIELD *field) +{ + DBUG_ENTER("setup_one_fetch_function"); + + /* Setup data copy functions for the different supported types */ + switch (param->buffer_type) { + case MYSQL_TYPE_NULL: /* for dummy binds */ + /* + It's not binary compatible with anything the server can return: + no need to setup fetch_result, as it'll be reset anyway + */ + *param->length= 0; + break; + case MYSQL_TYPE_TINY: + param->fetch_result= fetch_result_tinyint; + *param->length= 1; + break; + case MYSQL_TYPE_SHORT: + case MYSQL_TYPE_YEAR: + param->fetch_result= fetch_result_short; + *param->length= 2; + break; + case MYSQL_TYPE_INT24: + case MYSQL_TYPE_LONG: + param->fetch_result= fetch_result_int32; + *param->length= 4; + break; + case MYSQL_TYPE_LONGLONG: + param->fetch_result= fetch_result_int64; + *param->length= 8; + break; + case MYSQL_TYPE_FLOAT: + param->fetch_result= fetch_result_float; + *param->length= 4; + break; + case MYSQL_TYPE_DOUBLE: + param->fetch_result= fetch_result_double; + *param->length= 8; + break; + case MYSQL_TYPE_TIME: + param->fetch_result= fetch_result_time; + *param->length= sizeof(MYSQL_TIME); + break; + case MYSQL_TYPE_DATE: + param->fetch_result= fetch_result_date; + *param->length= sizeof(MYSQL_TIME); + break; + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + param->fetch_result= fetch_result_datetime; + *param->length= sizeof(MYSQL_TIME); + break; + case MYSQL_TYPE_TINY_BLOB: + case MYSQL_TYPE_MEDIUM_BLOB: + case MYSQL_TYPE_LONG_BLOB: + case MYSQL_TYPE_BLOB: + case MYSQL_TYPE_BIT: + DBUG_ASSERT(param->buffer_length != 0); + param->fetch_result= fetch_result_bin; + break; + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_STRING: + case MYSQL_TYPE_DECIMAL: + case MYSQL_TYPE_NEWDECIMAL: + case MYSQL_TYPE_NEWDATE: + case MYSQL_TYPE_JSON: + DBUG_ASSERT(param->buffer_length != 0); + param->fetch_result= fetch_result_str; + break; + default: + DBUG_PRINT("error", ("Unknown param->buffer_type: %u", + (uint) param->buffer_type)); + DBUG_RETURN(TRUE); + } + if (! is_binary_compatible(param->buffer_type, field->type)) + param->fetch_result= fetch_result_with_conversion; + + /* Setup skip_result functions (to calculate max_length) */ + param->skip_result= skip_result_fixed; + switch (field->type) { + case MYSQL_TYPE_NULL: /* for dummy binds */ + param->pack_length= 0; + field->max_length= 0; + break; + case MYSQL_TYPE_TINY: + param->pack_length= 1; + field->max_length= 4; /* as in '-127' */ + break; + case MYSQL_TYPE_YEAR: + case MYSQL_TYPE_SHORT: + param->pack_length= 2; + field->max_length= 6; /* as in '-32767' */ + break; + case MYSQL_TYPE_INT24: + field->max_length= 9; /* as in '16777216' or in '-8388607' */ + param->pack_length= 4; + break; + case MYSQL_TYPE_LONG: + field->max_length= 11; /* '-2147483647' */ + param->pack_length= 4; + break; + case MYSQL_TYPE_LONGLONG: + field->max_length= 21; /* '18446744073709551616' */ + param->pack_length= 8; + break; + case MYSQL_TYPE_FLOAT: + param->pack_length= 4; + field->max_length= MAX_DOUBLE_STRING_REP_LENGTH; + break; + case MYSQL_TYPE_DOUBLE: + param->pack_length= 8; + field->max_length= MAX_DOUBLE_STRING_REP_LENGTH; + break; + case MYSQL_TYPE_TIME: + field->max_length= 17; /* -819:23:48.123456 */ + param->skip_result= skip_result_with_length; + break; + case MYSQL_TYPE_DATE: + field->max_length= 10; /* 2003-11-11 */ + param->skip_result= skip_result_with_length; + break; + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + param->skip_result= skip_result_with_length; + field->max_length= MAX_DATE_STRING_REP_LENGTH; + break; + case MYSQL_TYPE_DECIMAL: + case MYSQL_TYPE_NEWDECIMAL: + case MYSQL_TYPE_ENUM: + case MYSQL_TYPE_SET: + case MYSQL_TYPE_GEOMETRY: + case MYSQL_TYPE_TINY_BLOB: + case MYSQL_TYPE_MEDIUM_BLOB: + case MYSQL_TYPE_LONG_BLOB: + case MYSQL_TYPE_BLOB: + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_STRING: + case MYSQL_TYPE_BIT: + case MYSQL_TYPE_NEWDATE: + case MYSQL_TYPE_JSON: + param->skip_result= skip_result_string; + break; + default: + DBUG_PRINT("error", ("Unknown field->type: %u", (uint) field->type)); + DBUG_RETURN(TRUE); + } + DBUG_RETURN(FALSE); +} + + +/* + Setup the bind buffers for resultset processing +*/ + +my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *my_bind) +{ + MYSQL_BIND *param, *end; + MYSQL_FIELD *field; + ulong bind_count= stmt->field_count; + uint param_count= 0; + DBUG_ENTER("mysql_stmt_bind_result"); + DBUG_PRINT("enter",("field_count: %lu", bind_count)); + + if (!bind_count) + { + int errorcode= (int) stmt->state < (int) MYSQL_STMT_PREPARE_DONE ? + CR_NO_PREPARE_STMT : CR_NO_STMT_METADATA; + set_stmt_error(stmt, errorcode, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + /* + We only need to check that stmt->field_count - if it is not null + stmt->bind was initialized in mysql_stmt_prepare + stmt->bind overlaps with bind if mysql_stmt_bind_param + is called from mysql_stmt_store_result. + BEWARE of buffer overwrite ... + */ + + if (stmt->bind != my_bind) + memcpy((char*) stmt->bind, (char*) my_bind, + sizeof(MYSQL_BIND) * bind_count); + + for (param= stmt->bind, end= param + bind_count, field= stmt->fields ; + param < end ; + param++, field++) + { + DBUG_PRINT("info",("buffer_type: %u field_type: %u", + (uint) param->buffer_type, (uint) field->type)); + /* + Set param->is_null to point to a dummy variable if it's not set. + This is to make the execute code easier + */ + if (!param->is_null) + param->is_null= ¶m->is_null_value; + + if (!param->length) + param->length= ¶m->length_value; + + if (!param->error) + param->error= ¶m->error_value; + + param->param_number= param_count++; + param->offset= 0; + + if (setup_one_fetch_function(param, field)) + { + my_stpcpy(stmt->sqlstate, unknown_sqlstate); + sprintf(stmt->last_error, + ER(stmt->last_errno= CR_UNSUPPORTED_PARAM_TYPE), + field->type, param_count); + DBUG_RETURN(1); + } + } + stmt->bind_result_done= BIND_RESULT_DONE; + if (stmt->mysql->options.report_data_truncation) + stmt->bind_result_done|= REPORT_DATA_TRUNCATION; + + DBUG_RETURN(0); +} + + +/* + Fetch row data to bind buffers +*/ + +static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row) +{ + MYSQL_BIND *my_bind, *end; + MYSQL_FIELD *field; + uchar *null_ptr, bit; + int truncation_count= 0; + /* + Precondition: if stmt->field_count is zero or row is NULL, read_row_* + function must return no data. + */ + DBUG_ASSERT(stmt->field_count); + DBUG_ASSERT(row); + + if (!stmt->bind_result_done) + { + /* If output parameters were not bound we should just return success */ + return 0; + } + + null_ptr= row; + row+= (stmt->field_count+9)/8; /* skip null bits */ + bit= 4; /* first 2 bits are reserved */ + + /* Copy complete row to application buffers */ + for (my_bind= stmt->bind, end= my_bind + stmt->field_count, + field= stmt->fields ; + my_bind < end ; + my_bind++, field++) + { + *my_bind->error= 0; + if (*null_ptr & bit) + { + /* + We should set both row_ptr and is_null to be able to see + nulls in mysql_stmt_fetch_column. This is because is_null may point + to user data which can be overwritten between mysql_stmt_fetch and + mysql_stmt_fetch_column, and in this case nullness of column will be + lost. See mysql_stmt_fetch_column for details. + */ + my_bind->row_ptr= NULL; + *my_bind->is_null= 1; + } + else + { + *my_bind->is_null= 0; + my_bind->row_ptr= row; + (*my_bind->fetch_result)(my_bind, field, &row); + truncation_count+= *my_bind->error; + } + if (!((bit<<=1) & 255)) + { + bit= 1; /* To next uchar */ + null_ptr++; + } + } + if (truncation_count && (stmt->bind_result_done & REPORT_DATA_TRUNCATION)) + return MYSQL_DATA_TRUNCATED; + return 0; +} + + +int cli_unbuffered_fetch(MYSQL *mysql, char **row) +{ + ulong len= 0; + my_bool is_data_packet; + if (packet_error == cli_safe_read(mysql, &is_data_packet)) + { + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + return 1; + } + + if (mysql->net.read_pos[0] != 0 && !is_data_packet) + { + /* in case of new client read the OK packet */ + if (mysql->server_capabilities & CLIENT_DEPRECATE_EOF) + read_ok_ex(mysql, len); + *row= NULL; + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + } + else + { + *row= (char*) (mysql->net.read_pos + 1); + } + + return 0; +} + + +/* + Fetch and return row data to bound buffers, if any +*/ + +int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt) +{ + int rc; + uchar *row; + DBUG_ENTER("mysql_stmt_fetch"); + + if ((rc= (*stmt->read_row_func)(stmt, &row)) || + ((rc= stmt_fetch_row(stmt, row)) && rc != MYSQL_DATA_TRUNCATED)) + { + stmt->state= MYSQL_STMT_PREPARE_DONE; /* XXX: this is buggy */ + stmt->read_row_func= (rc == MYSQL_NO_DATA) ? + stmt_read_row_no_data : stmt_read_row_no_result_set; + } + else + { + /* This is to know in mysql_stmt_fetch_column that data was fetched */ + stmt->state= MYSQL_STMT_FETCH_DONE; + } + DBUG_RETURN(rc); +} + + +/* + Fetch data for one specified column data + + SYNOPSIS + mysql_stmt_fetch_column() + stmt Prepared statement handler + my_bind Where data should be placed. Should be filled in as + when calling mysql_stmt_bind_result() + column Column to fetch (first column is 0) + ulong offset Offset in result data (to fetch blob in pieces) + This is normally 0 + RETURN + 0 ok + 1 error +*/ + +int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *my_bind, + uint column, ulong offset) +{ + MYSQL_BIND *param= stmt->bind+column; + DBUG_ENTER("mysql_stmt_fetch_column"); + + if ((int) stmt->state < (int) MYSQL_STMT_FETCH_DONE) + { + set_stmt_error(stmt, CR_NO_DATA, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + if (column >= stmt->field_count) + { + set_stmt_error(stmt, CR_INVALID_PARAMETER_NO, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + if (!my_bind->error) + my_bind->error= &my_bind->error_value; + *my_bind->error= 0; + if (param->row_ptr) + { + MYSQL_FIELD *field= stmt->fields+column; + uchar *row= param->row_ptr; + my_bind->offset= offset; + if (my_bind->is_null) + *my_bind->is_null= 0; + if (my_bind->length) /* Set the length if non char/binary types */ + *my_bind->length= *param->length; + else + my_bind->length= ¶m->length_value; /* Needed for fetch_result() */ + fetch_result_with_conversion(my_bind, field, &row); + } + else + { + if (my_bind->is_null) + *my_bind->is_null= 1; + } + DBUG_RETURN(0); +} + + +/* + Read all rows of data from server (binary format) +*/ + +int cli_read_binary_rows(MYSQL_STMT *stmt) +{ + ulong pkt_len; + uchar *cp; + MYSQL *mysql= stmt->mysql; + MYSQL_DATA *result= &stmt->result; + MYSQL_ROWS **prev_ptr= &result->data; + NET *net; + my_bool is_data_packet; + + DBUG_ENTER("cli_read_binary_rows"); + + if (!mysql) + { + set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + net = &mysql->net; + /* + We could have read one row in execute() due to the lack of a cursor, + but one at most. + */ + DBUG_ASSERT(result->rows <= 1); + if (result->rows == 1) + prev_ptr= &result->data->next; + + while ((pkt_len= cli_safe_read(mysql, &is_data_packet)) != packet_error) + { + cp= net->read_pos; + if (*cp == 0 || is_data_packet) + { + if (add_binary_row(net, stmt, pkt_len, &prev_ptr)) + goto err; + } + else + { + /* end of data */ + *prev_ptr= 0; + /* read warning count from OK packet or EOF packet if it is old client */ + if (mysql->server_capabilities & CLIENT_DEPRECATE_EOF && + !is_data_packet) + read_ok_ex(mysql, pkt_len); + else + mysql->warning_count= uint2korr(cp + 1); + /* + OUT parameters result sets has SERVER_PS_OUT_PARAMS and + SERVER_MORE_RESULTS_EXISTS flags in first EOF_Packet only. + Last EOF_Packet of OUT parameters result sets have no + SERVER_MORE_RESULTS_EXISTS flag as described here: + http://dev.mysql.com/doc/internals/en/stored-procedures.html#out-parameter-set + Following code reads last EOF_Packet of result set and can clear + those flags in server_status if we don't preserve them. + Without SERVER_MORE_RESULTS_EXISTS flag mysql_stmt_next_result fails + to read OK_Packet after OUT parameters result set. + So we need to preserve SERVER_MORE_RESULTS_EXISTS flag for OUT + parameters result set. + */ + if (mysql->server_status & SERVER_PS_OUT_PARAMS) + { + mysql->server_status= uint2korr(cp+3) + | SERVER_PS_OUT_PARAMS + | (mysql->server_status & SERVER_MORE_RESULTS_EXISTS); + } + else + mysql->server_status= uint2korr(cp+3); + DBUG_PRINT("info",("status: %u warning_count: %u", + mysql->server_status, mysql->warning_count)); +#if defined(CLIENT_PROTOCOL_TRACING) + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + else + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + DBUG_RETURN(0); + } + } + set_stmt_errmsg(stmt, net); + +err: + DBUG_RETURN(1); +} + + +/* + Update meta data for statement + + SYNOPSIS + stmt_update_metadata() + stmt Statement handler + row Binary data + + NOTES + Only updates MYSQL_FIELD->max_length for strings +*/ + +static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data) +{ + MYSQL_BIND *my_bind, *end; + MYSQL_FIELD *field; + uchar *null_ptr, bit; + uchar *row= (uchar*) data->data; +#ifndef DBUG_OFF + uchar *row_end= row + data->length; +#endif + + null_ptr= row; + row+= (stmt->field_count+9)/8; /* skip null bits */ + bit= 4; /* first 2 bits are reserved */ + + /* Go through all fields and calculate metadata */ + for (my_bind= stmt->bind, end= my_bind + stmt->field_count, field= stmt->fields ; + my_bind < end ; + my_bind++, field++) + { + if (!(*null_ptr & bit)) + (*my_bind->skip_result)(my_bind, field, &row); + DBUG_ASSERT(row <= row_end); + if (!((bit<<=1) & 255)) + { + bit= 1; /* To next uchar */ + null_ptr++; + } + } +} + + +/* + Store or buffer the binary results to stmt +*/ + +int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt) +{ + MYSQL *mysql= stmt->mysql; + MYSQL_DATA *result= &stmt->result; + DBUG_ENTER("mysql_stmt_store_result"); + + if (!mysql) + { + /* mysql can be reset in mysql_close called from mysql_reconnect */ + set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + if (!stmt->field_count) + DBUG_RETURN(0); + + if ((int) stmt->state < (int) MYSQL_STMT_EXECUTE_DONE) + { + set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + if (stmt->last_errno) + { + /* An attempt to use an invalid statement handle. */ + DBUG_RETURN(1); + } + + if (mysql->status == MYSQL_STATUS_READY && + stmt->server_status & SERVER_STATUS_CURSOR_EXISTS) + { + /* + Server side cursor exist, tell server to start sending the rows + */ + NET *net= &mysql->net; + uchar buff[4 /* statement id */ + + 4 /* number of rows to fetch */]; + + /* Send row request to the server */ + int4store(buff, stmt->stmt_id); + int4store(buff + 4, (int)~0); /* number of rows to fetch */ + if (cli_advanced_command(mysql, COM_STMT_FETCH, buff, sizeof(buff), + (uchar*) 0, 0, 1, stmt)) + { + /* + Don't set stmt error if stmt->mysql is NULL, as the error in this case + has already been set by mysql_prune_stmt_list(). + */ + if (stmt->mysql) + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + } + else if (mysql->status != MYSQL_STATUS_STATEMENT_GET_RESULT) + { + set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + + if (stmt->update_max_length && !stmt->bind_result_done) + { + /* + We must initalize the bind structure to be able to calculate + max_length + */ + MYSQL_BIND *my_bind, *end; + MYSQL_FIELD *field; + memset(stmt->bind, 0, sizeof(*stmt->bind) * stmt->field_count); + + for (my_bind= stmt->bind, end= my_bind + stmt->field_count, + field= stmt->fields; + my_bind < end ; + my_bind++, field++) + { + my_bind->buffer_type= MYSQL_TYPE_NULL; + my_bind->buffer_length=1; + } + + if (mysql_stmt_bind_result(stmt, stmt->bind)) + DBUG_RETURN(1); + stmt->bind_result_done= 0; /* No normal bind done */ + } + + if ((*mysql->methods->read_binary_rows)(stmt)) + { + free_root(&result->alloc, MYF(MY_KEEP_PREALLOC)); + result->data= NULL; + result->rows= 0; + mysql->status= MYSQL_STATUS_READY; + DBUG_RETURN(1); + } + + /* Assert that if there was a cursor, all rows have been fetched */ + DBUG_ASSERT(mysql->status != MYSQL_STATUS_READY || + (mysql->server_status & SERVER_STATUS_LAST_ROW_SENT)); + + if (stmt->update_max_length) + { + MYSQL_ROWS *cur= result->data; + for(; cur; cur=cur->next) + stmt_update_metadata(stmt, cur); + } + + stmt->data_cursor= result->data; + mysql->affected_rows= stmt->affected_rows= result->rows; + stmt->read_row_func= stmt_read_row_buffered; + mysql->unbuffered_fetch_owner= 0; /* set in stmt_execute */ + mysql->status= MYSQL_STATUS_READY; /* server is ready */ + DBUG_RETURN(0); /* Data buffered, must be fetched with mysql_stmt_fetch() */ +} + + +/* + Seek to desired row in the statement result set +*/ + +MYSQL_ROW_OFFSET STDCALL +mysql_stmt_row_seek(MYSQL_STMT *stmt, MYSQL_ROW_OFFSET row) +{ + MYSQL_ROW_OFFSET offset= stmt->data_cursor; + DBUG_ENTER("mysql_stmt_row_seek"); + + stmt->data_cursor= row; + DBUG_RETURN(offset); +} + + +/* + Return the current statement row cursor position +*/ + +MYSQL_ROW_OFFSET STDCALL +mysql_stmt_row_tell(MYSQL_STMT *stmt) +{ + DBUG_ENTER("mysql_stmt_row_tell"); + + DBUG_RETURN(stmt->data_cursor); +} + + +/* + Move the stmt result set data cursor to specified row +*/ + +void STDCALL +mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong row) +{ + MYSQL_ROWS *tmp= stmt->result.data; + DBUG_ENTER("mysql_stmt_data_seek"); + DBUG_PRINT("enter",("row id to seek: %ld",(long) row)); + + for (; tmp && row; --row, tmp= tmp->next) + ; + stmt->data_cursor= tmp; + if (!row && tmp) + { + /* Rewind the counter */ + stmt->read_row_func= stmt_read_row_buffered; + stmt->state= MYSQL_STMT_EXECUTE_DONE; + } + DBUG_VOID_RETURN; +} + + +/* + Return total rows the current statement result set +*/ + +my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt) +{ + DBUG_ENTER("mysql_stmt_num_rows"); + + DBUG_RETURN(stmt->result.rows); +} + + +/* + Free the client side memory buffers, reset long data state + on client if necessary, and reset the server side statement if + this has been requested. +*/ + +static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags) +{ + /* If statement hasn't been prepared there is nothing to reset */ + if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE) + { + MYSQL *mysql= stmt->mysql; + MYSQL_DATA *result= &stmt->result; + + /* + Reset stored result set if so was requested or it's a part + of cursor fetch. + */ + if (flags & RESET_STORE_RESULT) + { + /* Result buffered */ + free_root(&result->alloc, MYF(MY_KEEP_PREALLOC)); + result->data= NULL; + result->rows= 0; + stmt->data_cursor= NULL; + } + if (flags & RESET_LONG_DATA) + { + MYSQL_BIND *param= stmt->params, *param_end= param + stmt->param_count; + /* Clear long_data_used flags */ + for (; param < param_end; param++) + param->long_data_used= 0; + } + stmt->read_row_func= stmt_read_row_no_result_set; + if (mysql) + { + if ((int) stmt->state > (int) MYSQL_STMT_PREPARE_DONE) + { + if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled) + mysql->unbuffered_fetch_owner= 0; + if (stmt->field_count && mysql->status != MYSQL_STATUS_READY) + { + /* There is a result set and it belongs to this statement */ + (*mysql->methods->flush_use_result)(mysql, FALSE); + if (mysql->unbuffered_fetch_owner) + *mysql->unbuffered_fetch_owner= TRUE; + mysql->status= MYSQL_STATUS_READY; + } + } + if (flags & RESET_SERVER_SIDE) + { + /* + Reset the server side statement and close the server side + cursor if it exists. + */ + uchar buff[MYSQL_STMT_HEADER]; /* packet header: 4 bytes for stmt id */ + int4store(buff, stmt->stmt_id); + if ((*mysql->methods->advanced_command)(mysql, COM_STMT_RESET, buff, + sizeof(buff), 0, 0, 0, stmt)) + { + set_stmt_errmsg(stmt, &mysql->net); + stmt->state= MYSQL_STMT_INIT_DONE; + return 1; + } + } + } + if (flags & RESET_CLEAR_ERROR) + stmt_clear_error(stmt); + stmt->state= MYSQL_STMT_PREPARE_DONE; + } + return 0; +} + +my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt) +{ + DBUG_ENTER("mysql_stmt_free_result"); + + /* Free the client side and close the server side cursor if there is one */ + DBUG_RETURN(reset_stmt_handle(stmt, RESET_LONG_DATA | RESET_STORE_RESULT | + RESET_CLEAR_ERROR)); +} + +/******************************************************************** + statement error handling and close +*********************************************************************/ + +/* + Close the statement handle by freeing all alloced resources + + SYNOPSIS + mysql_stmt_close() + stmt Statement handle + + RETURN VALUES + 0 ok + 1 error +*/ + +my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt) +{ + MYSQL *mysql= stmt->mysql; + int rc= 0; + DBUG_ENTER("mysql_stmt_close"); + + free_root(&stmt->result.alloc, MYF(0)); + free_root(&stmt->mem_root, MYF(0)); + free_root(&stmt->extension->fields_mem_root, MYF(0)); + + if (mysql) + { + mysql->stmts= list_delete(mysql->stmts, &stmt->list); + /* + Clear NET error state: if the following commands come through + successfully, connection will still be usable for other commands. + */ + net_clear_error(&mysql->net); + if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE) + { + uchar buff[MYSQL_STMT_HEADER]; /* 4 bytes - stmt id */ + + if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled) + mysql->unbuffered_fetch_owner= 0; + if (mysql->status != MYSQL_STATUS_READY) + { + /* + Flush result set of the connection. If it does not belong + to this statement, set a warning. + */ + (*mysql->methods->flush_use_result)(mysql, TRUE); + if (mysql->unbuffered_fetch_owner) + *mysql->unbuffered_fetch_owner= TRUE; + mysql->status= MYSQL_STATUS_READY; + } + int4store(buff, stmt->stmt_id); + /* + If stmt_command failed, it would have already raised + error using set_mysql_error. Caller should use + mysql_error() or mysql_errno() to find out details. + Memory allocated for stmt will be released regardless + of the error. + */ + rc= stmt_command(mysql, COM_STMT_CLOSE, buff, 4, stmt); + } + } + + my_free(stmt->extension); + my_free(stmt); + + DBUG_RETURN(MY_TEST(rc)); +} + +/* + Reset the statement buffers in server +*/ + +my_bool STDCALL mysql_stmt_reset(MYSQL_STMT *stmt) +{ + DBUG_ENTER("mysql_stmt_reset"); + DBUG_ASSERT(stmt != 0); + if (!stmt->mysql) + { + /* mysql can be reset in mysql_close called from mysql_reconnect */ + set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + /* Reset the client and server sides of the prepared statement */ + DBUG_RETURN(reset_stmt_handle(stmt, + RESET_SERVER_SIDE | RESET_LONG_DATA | + RESET_CLEAR_ERROR)); +} + +/* + Return statement error code +*/ + +uint STDCALL mysql_stmt_errno(MYSQL_STMT * stmt) +{ + DBUG_ENTER("mysql_stmt_errno"); + DBUG_RETURN(stmt->last_errno); +} + +const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt) +{ + DBUG_ENTER("mysql_stmt_sqlstate"); + DBUG_RETURN(stmt->sqlstate); +} + +/* + Return statement error message +*/ + +const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt) +{ + DBUG_ENTER("mysql_stmt_error"); + DBUG_RETURN(stmt->last_error); +} + + +/******************************************************************** + Transactional APIs +*********************************************************************/ + +/* + Commit the current transaction +*/ + +my_bool STDCALL mysql_commit(MYSQL * mysql) +{ + DBUG_ENTER("mysql_commit"); + DBUG_RETURN((my_bool) mysql_real_query(mysql, "commit", 6)); +} + +/* + Rollback the current transaction +*/ + +my_bool STDCALL mysql_rollback(MYSQL * mysql) +{ + DBUG_ENTER("mysql_rollback"); + DBUG_RETURN((my_bool) mysql_real_query(mysql, "rollback", 8)); +} + + +/* + Set autocommit to either true or false +*/ + +my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode) +{ + DBUG_ENTER("mysql_autocommit"); + DBUG_PRINT("enter", ("mode : %d", auto_mode)); + + DBUG_RETURN((my_bool) mysql_real_query(mysql, auto_mode ? + "set autocommit=1":"set autocommit=0", + 16)); +} + + +/******************************************************************** + Multi query execution + SPs APIs +*********************************************************************/ + +/* + Returns true/false to indicate whether any more query results exist + to be read using mysql_next_result() +*/ + +my_bool STDCALL mysql_more_results(MYSQL *mysql) +{ + my_bool res; + DBUG_ENTER("mysql_more_results"); + + res= ((mysql->server_status & SERVER_MORE_RESULTS_EXISTS) ? 1: 0); + DBUG_PRINT("exit",("More results exists ? %d", res)); + DBUG_RETURN(res); +} + + +/* + Reads and returns the next query results +*/ +int STDCALL mysql_next_result(MYSQL *mysql) +{ + DBUG_ENTER("mysql_next_result"); + + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + + if (mysql->status != MYSQL_STATUS_READY) + { + set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate); + DBUG_RETURN(1); + } + + net_clear_error(&mysql->net); + mysql->affected_rows= ~(my_ulonglong) 0; + + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + DBUG_RETURN((*mysql->methods->next_result)(mysql)); + else + { + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + } + + DBUG_RETURN(-1); /* No more results */ +} + + +int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt) +{ + MYSQL *mysql= stmt->mysql; + int rc; + DBUG_ENTER("mysql_stmt_next_result"); + + if (!mysql) + DBUG_RETURN(1); + + if (stmt->last_errno) + DBUG_RETURN(stmt->last_errno); + + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + { + if (reset_stmt_handle(stmt, RESET_STORE_RESULT)) + DBUG_RETURN(1); + } + + rc= mysql_next_result(mysql); + + if (rc) + { + set_stmt_errmsg(stmt, &mysql->net); + DBUG_RETURN(rc); + } + + if (mysql->status == MYSQL_STATUS_GET_RESULT) + mysql->status= MYSQL_STATUS_STATEMENT_GET_RESULT; + + stmt->state= MYSQL_STMT_EXECUTE_DONE; + stmt->bind_result_done= FALSE; + stmt->field_count= mysql->field_count; + + if (mysql->field_count) + { + alloc_stmt_fields(stmt); + prepare_to_fetch_result(stmt); + } + + DBUG_RETURN(0); +} + + +MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql) +{ + return (*mysql->methods->use_result)(mysql); +} + +my_bool STDCALL mysql_read_query_result(MYSQL *mysql) +{ + return (*mysql->methods->read_query_result)(mysql); +} + +int STDCALL +mysql_reset_connection(MYSQL *mysql) +{ + DBUG_ENTER("mysql_reset_connection"); + if(simple_command(mysql,COM_RESET_CONNECTION,0,0,0)) + DBUG_RETURN(1); + else + { + mysql_detach_stmt_list(&mysql->stmts, "mysql_reset_connection"); + /* reset some of the members in mysql */ + mysql->insert_id= 0; + mysql->affected_rows= ~(my_ulonglong) 0; + free_old_query(mysql); + mysql->status=MYSQL_STATUS_READY; + DBUG_RETURN(0); + } +} diff --git a/mysql/libmysql/libmysql_exports_win32.def b/mysql/libmysql/libmysql_exports_win32.def new file mode 100644 index 0000000..dd034a7 --- /dev/null +++ b/mysql/libmysql/libmysql_exports_win32.def @@ -0,0 +1,120 @@ +EXPORTS + mysql_thread_end + mysql_thread_init + mysql_affected_rows + mysql_autocommit + mysql_stmt_bind_param + mysql_stmt_bind_result + mysql_change_user + mysql_character_set_name + mysql_close + mysql_commit + mysql_data_seek + mysql_debug + mysql_dump_debug_info + mysql_eof + mysql_errno + mysql_error + mysql_escape_string + mysql_hex_string + mysql_stmt_execute + mysql_stmt_fetch + mysql_stmt_fetch_column + mysql_fetch_field + mysql_fetch_field_direct + mysql_fetch_fields + mysql_fetch_lengths + mysql_fetch_row + mysql_field_count + mysql_field_seek + mysql_field_tell + mysql_free_result + mysql_get_client_info + mysql_get_host_info + mysql_get_proto_info + mysql_get_server_info + mysql_get_client_version + mysql_get_ssl_cipher + mysql_info + mysql_init + mysql_insert_id + mysql_kill + mysql_set_server_option + mysql_list_dbs + mysql_list_fields + mysql_list_processes + mysql_list_tables + mysql_more_results + mysql_next_result + mysql_num_fields + mysql_num_rows + mysql_options + mysql_stmt_param_count + mysql_stmt_param_metadata + mysql_ping + mysql_stmt_result_metadata + mysql_query + mysql_read_query_result + mysql_real_connect + mysql_real_escape_string + mysql_real_escape_string_quote + mysql_real_query + mysql_refresh + mysql_rollback + mysql_row_seek + mysql_row_tell + mysql_select_db + mysql_stmt_send_long_data + mysql_send_query + mysql_shutdown + mysql_ssl_set + mysql_stat + mysql_stmt_affected_rows + mysql_stmt_close + mysql_stmt_reset + mysql_stmt_data_seek + mysql_stmt_errno + mysql_stmt_error + mysql_stmt_free_result + mysql_stmt_num_rows + mysql_stmt_row_seek + mysql_stmt_row_tell + mysql_stmt_store_result + mysql_store_result + mysql_thread_id + mysql_thread_safe + mysql_use_result + mysql_warning_count + mysql_stmt_sqlstate + mysql_sqlstate + mysql_get_server_version + mysql_stmt_prepare + mysql_stmt_init + mysql_stmt_insert_id + mysql_stmt_attr_get + mysql_stmt_attr_set + mysql_stmt_field_count + mysql_set_local_infile_default + mysql_set_local_infile_handler + mysql_server_init + mysql_server_end + mysql_set_character_set + mysql_get_character_set_info + mysql_stmt_next_result + my_init + mysql_client_find_plugin + mysql_client_register_plugin + mysql_load_plugin + mysql_load_plugin_v + mysql_options4 + mysql_plugin_options + mysql_reset_connection + mysql_get_option + mysql_session_track_get_first + mysql_session_track_get_next + get_tty_password + my_load_defaults + handle_options + my_make_scrambled_password + + diff --git a/mysql/libmysql/mysql_trace.c b/mysql/libmysql/mysql_trace.c new file mode 100644 index 0000000..3073479 --- /dev/null +++ b/mysql/libmysql/mysql_trace.c @@ -0,0 +1,215 @@ +/* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + + ============================================= + Client-side protocol tracing infrastructure + ============================================= + + If a plugin of type MYSQL_CLIENT_TRACE_PLUGIN is loaded into + libmysql and its instance is pointed by the global trace_plugin + pointer, this plugin is notified of various protocol trace events. + See include/mysql/plugin_trace.h for documentation of trace plugin + methods and the list of possible trace events. + + These trace events are generated with MYSQL_TRACE() macro put in + relevant places in libmysql code. The macro calls mysql_trace_trace() + function defined here. This function calls trace plugin's + trace_event() method, if it is defined. + + For each traced connection, the state is kept in st_mysql_trace_info + structure (see mysql_trace.h). + + To correctly interpret each trace event, trace plugin is informed + of the current protocol stage (see include/mysql/plugin_trace.h for + list of stages). The current protocol stage is part of the + connection tracing state. It is updated with MYSQL_TRACE_STAGE() + hooks within libmysql code. +*/ + +#include +#include "mysql.h" +#include "mysql_trace.h" + +/* + Definition of the global trace_plugin pointer - see plugin_trace.h + for declaration and description. +*/ +struct st_mysql_client_plugin_TRACE *trace_plugin= NULL; + +/* + Macros for manipulating trace_info structure. +*/ +#define GET_DATA(TI) (TI)->trace_plugin_data +#define SET_DATA(TI,D) GET_DATA(TI) = (D) +#define GET_STAGE(TI) (TI)->stage +#define TEST_STAGE(TI,X) (GET_STAGE(TI) == PROTOCOL_STAGE_ ## X) +#define SET_STAGE(TI,X) GET_STAGE(TI) = PROTOCOL_STAGE_ ## X + + +/** + Initialize tracing in a given connection. + + This function is called from MYSQL_TRACE_STAGE() when the initial + CONNECTING stage is reported. It allocates and initializes trace_info + structure which is then attached to the connection handle. +*/ + +void mysql_trace_start(struct st_mysql *m) +{ + struct st_mysql_trace_info *trace_info; + + trace_info= my_malloc(PSI_NOT_INSTRUMENTED, + sizeof(struct st_mysql_trace_info), + MYF(MY_ZEROFILL)); + if (!trace_info) + { + /* + Note: in this case trace_data of the connection will + remain NULL and thus tracing will be disabled. + */ + return; + } + + /* + This function should be called only when a trace plugin + is loaded and thus trace_plugin pointer is not NULL. This + is handled in MYSQL_TRACE_STAGE() macro (mysql_trace.h). + */ + DBUG_ASSERT(trace_plugin); + + trace_info->plugin= trace_plugin; + trace_info->stage= PROTOCOL_STAGE_CONNECTING; + + /* + Call plugin's tracing_start() method, if defined. + */ + + if (trace_info->plugin->tracing_start) + { + trace_info->trace_plugin_data= + trace_info->plugin->tracing_start( + trace_info->plugin, + m, PROTOCOL_STAGE_CONNECTING); + } + else + { + trace_info->trace_plugin_data= NULL; + } + + /* Store trace_info in the connection handle. */ + + TRACE_DATA(m)= trace_info; +} + + +/** + Report a protocol trace event to trace plugin. + + Calls plugin's trace_event() method, if it is defined, passing to + it the event, the current protocol stage and event arguments (if any). + + Terminates tracing of the connection when appropriate. + + @param m MYSQL connection handle + @param ev trace event to be reported + @param args trace event arguments +*/ + +void mysql_trace_trace(struct st_mysql *m, + enum trace_event ev, + struct st_trace_event_args args) +{ + struct st_mysql_trace_info *trace_info= TRACE_DATA(m); + struct st_mysql_client_plugin_TRACE *plugin= trace_info ? trace_info->plugin : NULL; + int quit_tracing= 0; + + /* + If trace_info is NULL then this connection is not traced and this + function should not be called - this is handled inside MYSQL_TRACE() + macro. + */ + DBUG_ASSERT(trace_info); + + /* Call plugin's trace_event() method if defined */ + + if (plugin->trace_event) + { + /* + Temporarily disable tracing while executing plugin's method + by setting trace data pointer to NULL. Also, set reconnect + flag to 0 in case plugin executes any queries. + */ + my_bool saved_reconnect_flag= m->reconnect; + + TRACE_DATA(m)= NULL; + m->reconnect= 0; + quit_tracing= plugin->trace_event(plugin, GET_DATA(trace_info), m, + GET_STAGE(trace_info), ev, args); + m->reconnect= saved_reconnect_flag; + TRACE_DATA(m)= trace_info; + } + + /* Stop tracing if requested or end of connection. */ + + if (quit_tracing + || TEST_STAGE(trace_info, DISCONNECTED) + || TRACE_EVENT_DISCONNECTED == ev) + { + /* Note: this disables further tracing */ + TRACE_DATA(m)= NULL; + + if (plugin->tracing_stop) + plugin->tracing_stop(plugin, m, GET_DATA(trace_info)); + + my_free(trace_info); + } +} + + +#ifndef DBUG_OFF +/* + These functions are declared in plugin_trace.h. + + Consult documentation of *_LIST() macros (plugin_trace.h) to see how + switch() bodies are constructed with the *_get_name() macros. +*/ + +#define protocol_stage_get_name(X) case PROTOCOL_STAGE_ ## X: return #X; + +const char* protocol_stage_name(enum protocol_stage stage) +{ + switch(stage) + { + PROTOCOL_STAGE_LIST(get_name) + default: return ""; + } +} + + +#define trace_event_get_name(X) case TRACE_EVENT_ ## X: return #X; + +const char* trace_event_name(enum trace_event ev) +{ + switch(ev) + { + TRACE_EVENT_LIST(get_name) + default: return ""; + } +} + +#endif diff --git a/mysql/libmysql/mysql_trace.h b/mysql/libmysql/mysql_trace.h new file mode 100644 index 0000000..6ec4e76 --- /dev/null +++ b/mysql/libmysql/mysql_trace.h @@ -0,0 +1,165 @@ +/* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_TRACE_INCLUDED +#define MYSQL_TRACE_INCLUDED +/** + @file + + ===================================================== + Declarations for client-side tracing infrastructure + ===================================================== + + See libmysql/mysql_trace.c for a brief description. Trace plugin + declarations are in plugin_trace.h header. +*/ + + +C_MODE_START + +/* + Disable trace hooks if the infrastructure is not enabled or if + libmysql code is used from within the (embedded) server. +*/ +#if !defined(CLIENT_PROTOCOL_TRACING) \ + || defined(MYSQL_SERVER) \ + || defined(EMBEDDED_LIBRARY) + +#define MYSQL_TRACE(E, M, ARGS) +#define MYSQL_TRACE_STAGE(M, S) + +#else + +#include +#include /* for MYSQL_EXTENSION() */ +#include + + +/** + Per connection protocol tracing state + + For each connection which is traced an instance of this structure + is pointed by the trace_data member of st_mysql_extension structure + attached to that connection handle. + + If trace_data is NULL, for an initialized connection, then it means + that tracing in this connection is disabled. +*/ + +struct st_mysql_trace_info +{ + struct st_mysql_client_plugin_TRACE *plugin; + void *trace_plugin_data; + enum protocol_stage stage; +}; + +#define TRACE_DATA(M) (MYSQL_EXTENSION_PTR(M)->trace_data) + + +/* + See libmysql/mysql_trace.c for documentation and implementation of + these functions. +*/ + +void mysql_trace_trace(struct st_mysql*, + enum trace_event, + struct st_trace_event_args); +void mysql_trace_start(struct st_mysql*); + + +/** + The main protocol tracing hook. + + It is placed in places in the libmysql code where trace events occur. + If tracing of the connection is not disabled, it calls + mysql_trace_trace() function to report the event to the + trace plugin. + + @param E trace event (without TRACE_EVENT_ prefix) + @param M connection handle (pointer to MYSQL structure) + @param ARGS event specific arguments + + Event arguments are processed with appropriate TRACE_ARGS_* macro + (see below) to put them inside st_trace_event_args structure. +*/ + +#define MYSQL_TRACE(E, M, ARGS) \ + do { \ + if (NULL == TRACE_DATA(M)) break; \ + { \ + struct st_trace_event_args event_args= \ + TRACE_ARGS_ ## E ARGS; \ + mysql_trace_trace(M, \ + TRACE_EVENT_ ## E, \ + event_args); \ + } \ + } while(0) + + +/** + A hook to set the current protocol stage. + + @param M connection handle (pointer to MYSQL structure) + @param S the current stage (without PROTOCOL_STAGE_ prefix) + + If tracing is not disabled, the stage is stored in connection's + tracing state. A special case is if the current stage is the + initial CONNECTING one. In that case function mysql_trace_start() + is called to initialize tracing in this connection, provided that + a trace plugin is loaded. +*/ + +#define MYSQL_TRACE_STAGE(M, S) \ + do { \ + if (TRACE_DATA(M)) \ + TRACE_DATA(M)->stage= PROTOCOL_STAGE_ ## S; \ + else if (trace_plugin && \ + (PROTOCOL_STAGE_CONNECTING == PROTOCOL_STAGE_ ## S)) \ + mysql_trace_start(M); \ + } while(0) + +/* + Macros to parse event arguments and initialize the + st_trace_event_args structure accordingly. See description of + the structure in plugin_trace.h. +*/ + +#define TRACE_ARGS_SEND_SSL_REQUEST(Size, Packet) { NULL, 0, NULL, 0, Packet, Size } +#define TRACE_ARGS_SEND_AUTH_RESPONSE(Size, Packet) { NULL, 0, NULL, 0, Packet, Size } +#define TRACE_ARGS_SEND_AUTH_DATA(Size, Packet) { NULL, 0, NULL, 0, Packet, Size } +#define TRACE_ARGS_AUTH_PLUGIN(PluginName) { PluginName, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_SEND_COMMAND(Command, HdrSize, ArgSize, Header, Args) \ + { NULL, Command, Header, HdrSize, Args, ArgSize } +#define TRACE_ARGS_SEND_FILE(Size, Packet) { NULL, 0, NULL, 0, Packet, Size } + +#define TRACE_ARGS_PACKET_SENT(Size) { NULL, 0, NULL, 0, NULL, Size } +#define TRACE_ARGS_PACKET_RECEIVED(Size, Packet) { NULL, 0, NULL, 0, Packet, Size } +#define TRACE_ARGS_INIT_PACKET_RECEIVED(Size, Packet) { NULL, 0, NULL, 0, Packet, Size } + +#define TRACE_ARGS_ERROR() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_READ_PACKET() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_CONNECTING() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_CONNECTED() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_DISCONNECTED() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_AUTHENTICATED() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_SSL_CONNECT() { NULL, 0, NULL, 0, NULL, 0 } +#define TRACE_ARGS_SSL_CONNECTED() { NULL, 0, NULL, 0, NULL, 0 } + + +#endif /* !defined(CLIENT_PROTOCOL_TRACING) || defined(MYSQL_SERVER) */ + +C_MODE_END + +#endif diff --git a/mysql/little_endian.h b/mysql/little_endian.h new file mode 100644 index 0000000..fac4af0 --- /dev/null +++ b/mysql/little_endian.h @@ -0,0 +1,93 @@ +#ifndef LITTLE_ENDIAN_INCLUDED +#define LITTLE_ENDIAN_INCLUDED +/* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Data in little-endian format. +*/ + +#include + +static inline void float4get (float *V, const uchar *M) +{ + memcpy(V, (M), sizeof(float)); +} + +static inline void float4store(uchar *V, float M) +{ + memcpy(V, (&M), sizeof(float)); +} + +static inline void float8get (double *V, const uchar *M) +{ + memcpy(V, M, sizeof(double)); +} + +static inline void float8store(uchar *V, double M) +{ + memcpy(V, &M, sizeof(double)); +} + +static inline void floatget (float *V, const uchar *M) { float4get(V, M); } +static inline void floatstore (uchar *V, float M) { float4store(V, M); } + +/* Bi-endian hardware.... */ +#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) +static inline void doublestore(uchar *T, double V) +{ *(((char*)T)+0)=(char) ((uchar *) &V)[4]; + *(((char*)T)+1)=(char) ((uchar *) &V)[5]; + *(((char*)T)+2)=(char) ((uchar *) &V)[6]; + *(((char*)T)+3)=(char) ((uchar *) &V)[7]; + *(((char*)T)+4)=(char) ((uchar *) &V)[0]; + *(((char*)T)+5)=(char) ((uchar *) &V)[1]; + *(((char*)T)+6)=(char) ((uchar *) &V)[2]; + *(((char*)T)+7)=(char) ((uchar *) &V)[3]; } +static inline void doubleget(double *V, const uchar *M) +{ double def_temp; + ((uchar*) &def_temp)[0]=(M)[4]; + ((uchar*) &def_temp)[1]=(M)[5]; + ((uchar*) &def_temp)[2]=(M)[6]; + ((uchar*) &def_temp)[3]=(M)[7]; + ((uchar*) &def_temp)[4]=(M)[0]; + ((uchar*) &def_temp)[5]=(M)[1]; + ((uchar*) &def_temp)[6]=(M)[2]; + ((uchar*) &def_temp)[7]=(M)[3]; + (*V) = def_temp; } + +#else /* Bi-endian hardware.... */ + +static inline void doublestore(uchar *T, double V) { memcpy(T, &V, sizeof(double)); } +static inline void doubleget (double *V, const uchar *M) { memcpy(V, M, sizeof(double)); } + +#endif /* Bi-endian hardware.... */ + +static inline void ushortget(uint16 *V, const uchar *pM) { *V= uint2korr(pM); } +static inline void shortget (int16 *V, const uchar *pM) { *V= sint2korr(pM); } +static inline void longget (int32 *V, const uchar *pM) { *V= sint4korr(pM); } +static inline void ulongget (uint32 *V, const uchar *pM) { *V= uint4korr(pM); } +static inline void shortstore(uchar *T, int16 V) { int2store(T, V); } +static inline void longstore (uchar *T, int32 V) { int4store(T, V); } + +static inline void longlongget(longlong *V, const uchar *M) +{ + memcpy(V, (M), sizeof(ulonglong)); +} +static inline void longlongstore(uchar *T, longlong V) +{ + memcpy((T), &V, sizeof(ulonglong)); +} + +#endif /* LITTLE_ENDIAN_INCLUDED */ diff --git a/mysql/m_ctype.h b/mysql/m_ctype.h new file mode 100644 index 0000000..dd6ee75 --- /dev/null +++ b/mysql/m_ctype.h @@ -0,0 +1,806 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + A better inplementation of the UNIX ctype(3) library. +*/ + +#ifndef _m_ctype_h +#define _m_ctype_h + +#include "my_global.h" /* uint16, uchar */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define MY_CS_NAME_SIZE 32 +#define MY_CS_CTYPE_TABLE_SIZE 257 +#define MY_CS_TO_LOWER_TABLE_SIZE 256 +#define MY_CS_TO_UPPER_TABLE_SIZE 256 +#define MY_CS_SORT_ORDER_TABLE_SIZE 256 +#define MY_CS_TO_UNI_TABLE_SIZE 256 + +#define CHARSET_DIR "charsets/" + +#define my_wc_t ulong + +#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD + +/* + On i386 we store Unicode->CS conversion tables for + some character sets using Big-endian order, + to copy two bytes at onces. + This gives some performance improvement. +*/ +#ifdef __i386__ +#define MB2(x) (((x) >> 8) + (((x) & 0xFF) << 8)) +#define MY_PUT_MB2(s, code) { *((uint16*)(s))= (code); } +#else +#define MB2(x) (x) +#define MY_PUT_MB2(s, code) { (s)[0]= code >> 8; (s)[1]= code & 0xFF; } +#endif + + + +typedef struct unicase_info_char_st +{ + uint32 toupper; + uint32 tolower; + uint32 sort; +} MY_UNICASE_CHARACTER; + + +typedef struct unicase_info_st +{ + my_wc_t maxchar; + const MY_UNICASE_CHARACTER **page; +} MY_UNICASE_INFO; + + +extern MY_UNICASE_INFO my_unicase_default; +extern MY_UNICASE_INFO my_unicase_turkish; +extern MY_UNICASE_INFO my_unicase_mysql500; +extern MY_UNICASE_INFO my_unicase_unicode520; + +#define MY_UCA_MAX_CONTRACTION 6 +#define MY_UCA_MAX_WEIGHT_SIZE 8 +#define MY_UCA_WEIGHT_LEVELS 1 + +typedef struct my_contraction_t +{ + my_wc_t ch[MY_UCA_MAX_CONTRACTION]; /* Character sequence */ + uint16 weight[MY_UCA_MAX_WEIGHT_SIZE];/* Its weight string, 0-terminated */ + my_bool with_context; +} MY_CONTRACTION; + + + +typedef struct my_contraction_list_t +{ + size_t nitems; /* Number of items in the list */ + MY_CONTRACTION *item; /* List of contractions */ + char *flags; /* Character flags, e.g. "is contraction head") */ +} MY_CONTRACTIONS; + + +my_bool my_uca_can_be_contraction_head(const MY_CONTRACTIONS *c, my_wc_t wc); +my_bool my_uca_can_be_contraction_tail(const MY_CONTRACTIONS *c, my_wc_t wc); +uint16 *my_uca_contraction2_weight(const MY_CONTRACTIONS *c, + my_wc_t wc1, my_wc_t wc2); + + +/* Collation weights on a single level (e.g. primary, secondary, tertiarty) */ +typedef struct my_uca_level_info_st +{ + my_wc_t maxchar; + uchar *lengths; + uint16 **weights; + MY_CONTRACTIONS contractions; +} MY_UCA_WEIGHT_LEVEL; + + +typedef struct uca_info_st +{ + MY_UCA_WEIGHT_LEVEL level[MY_UCA_WEIGHT_LEVELS]; + + /* Logical positions */ + my_wc_t first_non_ignorable; + my_wc_t last_non_ignorable; + my_wc_t first_primary_ignorable; + my_wc_t last_primary_ignorable; + my_wc_t first_secondary_ignorable; + my_wc_t last_secondary_ignorable; + my_wc_t first_tertiary_ignorable; + my_wc_t last_tertiary_ignorable; + my_wc_t first_trailing; + my_wc_t last_trailing; + my_wc_t first_variable; + my_wc_t last_variable; + +} MY_UCA_INFO; + + + +extern MY_UCA_INFO my_uca_v400; + + +typedef struct uni_ctype_st +{ + uchar pctype; + uchar *ctype; +} MY_UNI_CTYPE; + +extern MY_UNI_CTYPE my_uni_ctype[256]; + +/* wm_wc and wc_mb return codes */ +#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */ +#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */ +#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */ +/* These following three are currently not really used */ +#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */ +/* A helper macros for "need at least n bytes" */ +#define MY_CS_TOOSMALLN(n) (-100-(n)) + +#define MY_SEQ_INTTAIL 1 +#define MY_SEQ_SPACES 2 + + /* My charsets_list flags */ +#define MY_CS_COMPILED 1 /* compiled-in sets */ +#define MY_CS_CONFIG 2 /* sets that have a *.conf file */ +#define MY_CS_INDEX 4 /* sets listed in the Index file */ +#define MY_CS_LOADED 8 /* sets that are currently loaded */ +#define MY_CS_BINSORT 16 /* if binary sort order */ +#define MY_CS_PRIMARY 32 /* if primary collation */ +#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */ +#define MY_CS_UNICODE 128 /* is a charset is BMP Unicode */ +#define MY_CS_READY 256 /* if a charset is initialized */ +#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/ +#define MY_CS_CSSORT 1024 /* if case sensitive sort order */ +#define MY_CS_HIDDEN 2048 /* don't display in SHOW */ +#define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */ +#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */ +#define MY_CS_UNICODE_SUPPLEMENT 16384 /* Non-BMP Unicode characters */ +#define MY_CS_LOWER_SORT 32768 /* If use lower case as weight */ +#define MY_CHARSET_UNDEFINED 0 + +/* Character repertoire flags */ +#define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */ +#define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */ +#define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */ + +/* Flags for strxfrm */ +#define MY_STRXFRM_LEVEL1 0x00000001 /* for primary weights */ +#define MY_STRXFRM_LEVEL2 0x00000002 /* for secondary weights */ +#define MY_STRXFRM_LEVEL3 0x00000004 /* for tertiary weights */ +#define MY_STRXFRM_LEVEL4 0x00000008 /* fourth level weights */ +#define MY_STRXFRM_LEVEL5 0x00000010 /* fifth level weights */ +#define MY_STRXFRM_LEVEL6 0x00000020 /* sixth level weights */ +#define MY_STRXFRM_LEVEL_ALL 0x0000003F /* Bit OR for the above six */ +#define MY_STRXFRM_NLEVELS 6 /* Number of possible levels*/ + +#define MY_STRXFRM_PAD_WITH_SPACE 0x00000040 /* if pad result with spaces */ +#define MY_STRXFRM_PAD_TO_MAXLEN 0x00000080 /* if pad tail(for filesort) */ + +#define MY_STRXFRM_DESC_LEVEL1 0x00000100 /* if desc order for level1 */ +#define MY_STRXFRM_DESC_LEVEL2 0x00000200 /* if desc order for level2 */ +#define MY_STRXFRM_DESC_LEVEL3 0x00000300 /* if desc order for level3 */ +#define MY_STRXFRM_DESC_LEVEL4 0x00000800 /* if desc order for level4 */ +#define MY_STRXFRM_DESC_LEVEL5 0x00001000 /* if desc order for level5 */ +#define MY_STRXFRM_DESC_LEVEL6 0x00002000 /* if desc order for level6 */ +#define MY_STRXFRM_DESC_SHIFT 8 + +#define MY_STRXFRM_UNUSED_00004000 0x00004000 /* for future extensions */ +#define MY_STRXFRM_UNUSED_00008000 0x00008000 /* for future extensions */ + +#define MY_STRXFRM_REVERSE_LEVEL1 0x00010000 /* if reverse order for level1 */ +#define MY_STRXFRM_REVERSE_LEVEL2 0x00020000 /* if reverse order for level2 */ +#define MY_STRXFRM_REVERSE_LEVEL3 0x00040000 /* if reverse order for level3 */ +#define MY_STRXFRM_REVERSE_LEVEL4 0x00080000 /* if reverse order for level4 */ +#define MY_STRXFRM_REVERSE_LEVEL5 0x00100000 /* if reverse order for level5 */ +#define MY_STRXFRM_REVERSE_LEVEL6 0x00200000 /* if reverse order for level6 */ +#define MY_STRXFRM_REVERSE_SHIFT 16 + + +typedef struct my_uni_idx_st +{ + uint16 from; + uint16 to; + const uchar *tab; +} MY_UNI_IDX; + +typedef struct +{ + uint beg; + uint end; + uint mb_len; +} my_match_t; + +struct charset_info_st; + +typedef struct my_charset_loader_st +{ + char error[128]; + void *(*once_alloc)(size_t); + void *(*mem_malloc)(size_t); + void *(*mem_realloc)(void *, size_t); + void (*mem_free)(void *); + void (*reporter)(enum loglevel, const char *format, ...); + int (*add_collation)(struct charset_info_st *cs); +} MY_CHARSET_LOADER; + + +extern int (*my_string_stack_guard)(int); + +/* See strings/CHARSET_INFO.txt for information about this structure */ +typedef struct my_collation_handler_st +{ + my_bool (*init)(struct charset_info_st *, MY_CHARSET_LOADER *); + /* Collation routines */ + int (*strnncoll)(const struct charset_info_st *, + const uchar *, size_t, const uchar *, size_t, my_bool); + int (*strnncollsp)(const struct charset_info_st *, + const uchar *, size_t, const uchar *, size_t, + my_bool diff_if_only_endspace_difference); + size_t (*strnxfrm)(const struct charset_info_st *, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags); + size_t (*strnxfrmlen)(const struct charset_info_st *, size_t); + my_bool (*like_range)(const struct charset_info_st *, + const char *s, size_t s_length, + pchar w_prefix, pchar w_one, pchar w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_len, size_t *max_len); + int (*wildcmp)(const struct charset_info_st *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape,int w_one, int w_many); + + int (*strcasecmp)(const struct charset_info_st *, const char *, + const char *); + + uint (*instr)(const struct charset_info_st *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + + /* Hash calculation */ + void (*hash_sort)(const struct charset_info_st *cs, const uchar *key, + size_t len, ulong *nr1, ulong *nr2); + my_bool (*propagate)(const struct charset_info_st *cs, const uchar *str, + size_t len); +} MY_COLLATION_HANDLER; + +extern MY_COLLATION_HANDLER my_collation_mb_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler; +extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler; + +/* Some typedef to make it easy for C++ to make function pointers */ +typedef int (*my_charset_conv_mb_wc)(const struct charset_info_st *, + my_wc_t *, const uchar *, const uchar *); +typedef int (*my_charset_conv_wc_mb)(const struct charset_info_st *, my_wc_t, + uchar *, uchar *); +typedef size_t (*my_charset_conv_case)(const struct charset_info_st *, + char *, size_t, char *, size_t); + + +/* See strings/CHARSET_INFO.txt about information on this structure */ +typedef struct my_charset_handler_st +{ + my_bool (*init)(struct charset_info_st *, MY_CHARSET_LOADER *loader); + /* Multibyte routines */ + uint (*ismbchar)(const struct charset_info_st *, const char *, + const char *); + uint (*mbcharlen)(const struct charset_info_st *, uint c); + size_t (*numchars)(const struct charset_info_st *, const char *b, + const char *e); + size_t (*charpos)(const struct charset_info_st *, const char *b, + const char *e, size_t pos); + size_t (*well_formed_len)(const struct charset_info_st *, + const char *b,const char *e, + size_t nchars, int *error); + size_t (*lengthsp)(const struct charset_info_st *, const char *ptr, + size_t length); + size_t (*numcells)(const struct charset_info_st *, const char *b, + const char *e); + + /* Unicode conversion */ + my_charset_conv_mb_wc mb_wc; + my_charset_conv_wc_mb wc_mb; + + /* CTYPE scanner */ + int (*ctype)(const struct charset_info_st *cs, int *ctype, + const uchar *s, const uchar *e); + + /* Functions for case and sort conversion */ + size_t (*caseup_str)(const struct charset_info_st *, char *); + size_t (*casedn_str)(const struct charset_info_st *, char *); + + my_charset_conv_case caseup; + my_charset_conv_case casedn; + + /* Charset dependant snprintf() */ + size_t (*snprintf)(const struct charset_info_st *, char *to, size_t n, + const char *fmt, + ...) MY_ATTRIBUTE((format(printf, 4, 5))); + size_t (*long10_to_str)(const struct charset_info_st *, char *to, size_t n, + int radix, long int val); + size_t (*longlong10_to_str)(const struct charset_info_st *, char *to, + size_t n, int radix, longlong val); + + void (*fill)(const struct charset_info_st *, char *to, size_t len, + int fill); + + /* String-to-number conversion routines */ + long (*strntol)(const struct charset_info_st *, const char *s, + size_t l, int base, char **e, int *err); + ulong (*strntoul)(const struct charset_info_st *, const char *s, + size_t l, int base, char **e, int *err); + longlong (*strntoll)(const struct charset_info_st *, const char *s, + size_t l, int base, char **e, int *err); + ulonglong (*strntoull)(const struct charset_info_st *, const char *s, + size_t l, int base, char **e, int *err); + double (*strntod)(const struct charset_info_st *, char *s, + size_t l, char **e, int *err); + longlong (*strtoll10)(const struct charset_info_st *cs, + const char *nptr, char **endptr, int *error); + ulonglong (*strntoull10rnd)(const struct charset_info_st *cs, + const char *str, size_t length, + int unsigned_fl, + char **endptr, int *error); + size_t (*scan)(const struct charset_info_st *, const char *b, + const char *e, int sq); +} MY_CHARSET_HANDLER; + +extern MY_CHARSET_HANDLER my_charset_8bit_handler; +extern MY_CHARSET_HANDLER my_charset_ascii_handler; +extern MY_CHARSET_HANDLER my_charset_ucs2_handler; + + +/* + We define this CHARSET_INFO_DEFINED here to prevent a repeat of the + typedef in hash.c, which will cause a compiler error. +*/ +#define CHARSET_INFO_DEFINED + +/* See strings/CHARSET_INFO.txt about information on this structure */ +typedef struct charset_info_st +{ + uint number; + uint primary_number; + uint binary_number; + uint state; + const char *csname; + const char *name; + const char *comment; + const char *tailoring; + const uchar *ctype; + const uchar *to_lower; + const uchar *to_upper; + const uchar *sort_order; + MY_UCA_INFO *uca; /* This can be changed in apply_one_rule() */ + const uint16 *tab_to_uni; + const MY_UNI_IDX *tab_from_uni; + const MY_UNICASE_INFO *caseinfo; + const struct lex_state_maps_st *state_maps; /* parser internal data */ + const uchar *ident_map; /* parser internal data */ + uint strxfrm_multiply; + uchar caseup_multiply; + uchar casedn_multiply; + uint mbminlen; + uint mbmaxlen; + uint mbmaxlenlen; + my_wc_t min_sort_char; + my_wc_t max_sort_char; /* For LIKE optimization */ + uchar pad_char; + my_bool escape_with_backslash_is_dangerous; + uchar levels_for_compare; + uchar levels_for_order; + + MY_CHARSET_HANDLER *cset; + MY_COLLATION_HANDLER *coll; + +} CHARSET_INFO; +#define ILLEGAL_CHARSET_INFO_NUMBER (~0U) + + +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename; + +extern CHARSET_INFO my_charset_big5_chinese_ci; +extern CHARSET_INFO my_charset_big5_bin; +extern CHARSET_INFO my_charset_cp932_japanese_ci; +extern CHARSET_INFO my_charset_cp932_bin; +extern CHARSET_INFO my_charset_cp1250_czech_ci; +extern CHARSET_INFO my_charset_eucjpms_japanese_ci; +extern CHARSET_INFO my_charset_eucjpms_bin; +extern CHARSET_INFO my_charset_euckr_korean_ci; +extern CHARSET_INFO my_charset_euckr_bin; +extern CHARSET_INFO my_charset_gb2312_chinese_ci; +extern CHARSET_INFO my_charset_gb2312_bin; +extern CHARSET_INFO my_charset_gbk_chinese_ci; +extern CHARSET_INFO my_charset_gbk_bin; +extern CHARSET_INFO my_charset_gb18030_chinese_ci; +extern CHARSET_INFO my_charset_gb18030_bin; +extern CHARSET_INFO my_charset_latin1_german2_ci; +extern CHARSET_INFO my_charset_latin1_bin; +extern CHARSET_INFO my_charset_latin2_czech_ci; +extern CHARSET_INFO my_charset_sjis_japanese_ci; +extern CHARSET_INFO my_charset_sjis_bin; +extern CHARSET_INFO my_charset_tis620_thai_ci; +extern CHARSET_INFO my_charset_tis620_bin; +extern CHARSET_INFO my_charset_ucs2_general_ci; +extern CHARSET_INFO my_charset_ucs2_bin; +extern CHARSET_INFO my_charset_ucs2_unicode_ci; +extern CHARSET_INFO my_charset_ucs2_general_mysql500_ci; +extern CHARSET_INFO my_charset_ujis_japanese_ci; +extern CHARSET_INFO my_charset_ujis_bin; +extern CHARSET_INFO my_charset_utf16_bin; +extern CHARSET_INFO my_charset_utf16_general_ci; +extern CHARSET_INFO my_charset_utf16_unicode_ci; +extern CHARSET_INFO my_charset_utf16le_bin; +extern CHARSET_INFO my_charset_utf16le_general_ci; +extern CHARSET_INFO my_charset_utf32_bin; +extern CHARSET_INFO my_charset_utf32_general_ci; +extern CHARSET_INFO my_charset_utf32_unicode_ci; + +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8_general_ci; +extern CHARSET_INFO my_charset_utf8_tolower_ci; +extern CHARSET_INFO my_charset_utf8_unicode_ci; +extern CHARSET_INFO my_charset_utf8_bin; +extern CHARSET_INFO my_charset_utf8_general_mysql500_ci; +extern CHARSET_INFO my_charset_utf8mb4_bin; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_general_ci; +extern CHARSET_INFO my_charset_utf8mb4_unicode_ci; +#define MY_UTF8MB3 "utf8" +#define MY_UTF8MB4 "utf8mb4" + + +/* declarations for simple charsets */ +extern size_t my_strnxfrm_simple(const CHARSET_INFO *, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags); +size_t my_strnxfrmlen_simple(const CHARSET_INFO *, size_t); +extern int my_strnncoll_simple(const CHARSET_INFO *, const uchar *, size_t, + const uchar *, size_t, my_bool); + +extern int my_strnncollsp_simple(const CHARSET_INFO *, const uchar *, size_t, + const uchar *, size_t, + my_bool diff_if_only_endspace_difference); + +extern void my_hash_sort_simple(const CHARSET_INFO *cs, + const uchar *key, size_t len, + ulong *nr1, ulong *nr2); + +extern size_t my_lengthsp_8bit(const CHARSET_INFO *cs, const char *ptr, + size_t length); + +extern uint my_instr_simple(const struct charset_info_st *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + + +/* Functions for 8bit */ +extern size_t my_caseup_str_8bit(const CHARSET_INFO *, char *); +extern size_t my_casedn_str_8bit(const CHARSET_INFO *, char *); +extern size_t my_caseup_8bit(const CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_8bit(const CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); + +extern int my_strcasecmp_8bit(const CHARSET_INFO * cs, const char *, + const char *); + +int my_mb_wc_8bit(const CHARSET_INFO *cs,my_wc_t *wc, const uchar *s, + const uchar *e); +int my_wc_mb_8bit(const CHARSET_INFO *cs,my_wc_t wc, uchar *s, uchar *e); + +int my_mb_ctype_8bit(const CHARSET_INFO *,int *, const uchar *,const uchar *); +int my_mb_ctype_mb(const CHARSET_INFO *,int *, const uchar *,const uchar *); + +size_t my_scan_8bit(const CHARSET_INFO *cs, const char *b, const char *e, + int sq); + +size_t my_snprintf_8bit(const struct charset_info_st *, char *to, size_t n, + const char *fmt, ...) + MY_ATTRIBUTE((format(printf, 4, 5))); + +long my_strntol_8bit(const CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); +ulong my_strntoul_8bit(const CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); +longlong my_strntoll_8bit(const CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); +ulonglong my_strntoull_8bit(const CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); +double my_strntod_8bit(const CHARSET_INFO *, char *s, size_t l, char **e, + int *err); +size_t my_long10_to_str_8bit(const CHARSET_INFO *, char *to, size_t l, + int radix, long int val); +size_t my_longlong10_to_str_8bit(const CHARSET_INFO *, char *to, size_t l, + int radix, longlong val); + +longlong my_strtoll10_8bit(const CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); +longlong my_strtoll10_ucs2(const CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); + +ulonglong my_strntoull10rnd_8bit(const CHARSET_INFO *cs, + const char *str, size_t length, int + unsigned_fl, char **endptr, int *error); +ulonglong my_strntoull10rnd_ucs2(const CHARSET_INFO *cs, + const char *str, size_t length, + int unsigned_fl, char **endptr, int *error); + +void my_fill_8bit(const CHARSET_INFO *cs, char* to, size_t l, int fill); + +/* For 8-bit character set */ +my_bool my_like_range_simple(const CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +/* For ASCII-based multi-byte character sets with mbminlen=1 */ +my_bool my_like_range_mb(const CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +/* For other character sets, with arbitrary mbminlen and mbmaxlen numbers */ +my_bool my_like_range_generic(const CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +int my_wildcmp_8bit(const CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_wildcmp_bin(const CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +size_t my_numchars_8bit(const CHARSET_INFO *, const char *b, const char *e); +size_t my_numcells_8bit(const CHARSET_INFO *, const char *b, const char *e); +size_t my_charpos_8bit(const CHARSET_INFO *, const char *b, const char *e, + size_t pos); +size_t my_well_formed_len_8bit(const CHARSET_INFO *, const char *b, + const char *e, size_t pos, int *error); +uint my_mbcharlen_8bit(const CHARSET_INFO *, uint c); + + +/* Functions for multibyte charsets */ +extern size_t my_caseup_str_mb(const CHARSET_INFO *, char *); +extern size_t my_casedn_str_mb(const CHARSET_INFO *, char *); +extern size_t my_caseup_mb(const CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_mb(const CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_caseup_mb_varlen(const CHARSET_INFO *, char *src, + size_t srclen, char *dst, size_t dstlen); +extern size_t my_casedn_mb_varlen(const CHARSET_INFO *, char *src, + size_t srclen, char *dst, size_t dstlen); +extern size_t my_caseup_ujis(const CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_ujis(const CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern int my_strcasecmp_mb(const CHARSET_INFO * cs,const char *, + const char *); + +int my_wildcmp_mb(const CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); +size_t my_numchars_mb(const CHARSET_INFO *, const char *b, const char *e); +size_t my_numcells_mb(const CHARSET_INFO *, const char *b, const char *e); +size_t my_charpos_mb(const CHARSET_INFO *, const char *b, const char *e, + size_t pos); +size_t my_well_formed_len_mb(const CHARSET_INFO *, const char *b, + const char *e, size_t pos, int *error); +uint my_instr_mb(const struct charset_info_st *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + +int my_strnncoll_mb_bin(const CHARSET_INFO * cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix); + +int my_strnncollsp_mb_bin(const CHARSET_INFO *cs, + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference); + +int my_wildcmp_mb_bin(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_strcasecmp_mb_bin(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)), + const char *s, const char *t); + +void my_hash_sort_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *key, size_t len,ulong *nr1, ulong *nr2); + +size_t my_strnxfrm_mb(const CHARSET_INFO *, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags); + +size_t my_strnxfrm_unicode(const CHARSET_INFO *, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags); + +size_t my_strnxfrm_unicode_full_bin(const CHARSET_INFO *, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags); +size_t my_strnxfrmlen_unicode_full_bin(const CHARSET_INFO *, size_t); + +int my_wildcmp_unicode(const CHARSET_INFO *cs, + const char *str, const char *str_end, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many, + const MY_UNICASE_INFO *weights); + +extern my_bool my_parse_charset_xml(MY_CHARSET_LOADER *loader, + const char *buf, size_t buflen); +extern char *my_strchr(const CHARSET_INFO *cs, const char *str, + const char *end, pchar c); +extern size_t my_strcspn(const CHARSET_INFO *cs, const char *str, + const char *end, const char *reject, + size_t reject_length); + +my_bool my_propagate_simple(const CHARSET_INFO *cs, const uchar *str, + size_t len); +my_bool my_propagate_complex(const CHARSET_INFO *cs, const uchar *str, + size_t len); + + +uint my_string_repertoire(const CHARSET_INFO *cs, const char *str, size_t len); +my_bool my_charset_is_ascii_based(const CHARSET_INFO *cs); +my_bool my_charset_is_8bit_pure_ascii(const CHARSET_INFO *cs); +uint my_charset_repertoire(const CHARSET_INFO *cs); + + +uint my_strxfrm_flag_normalize(uint flags, uint nlevels); +void my_strxfrm_desc_and_reverse(uchar *str, uchar *strend, + uint flags, uint level); +size_t my_strxfrm_pad_desc_and_reverse(const CHARSET_INFO *cs, + uchar *str, uchar *frmend, uchar *strend, + uint nweights, uint flags, uint level); + +my_bool my_charset_is_ascii_compatible(const CHARSET_INFO *cs); + +const MY_CONTRACTIONS *my_charset_get_contractions(const CHARSET_INFO *cs, + int level); + +extern size_t my_vsnprintf_ex(const CHARSET_INFO *cs, char *to, size_t n, + const char* fmt, va_list ap); + +size_t my_convert(char *to, size_t to_length, const CHARSET_INFO *to_cs, + const char *from, size_t from_length, + const CHARSET_INFO *from_cs, uint *errors); + +uint my_mbcharlen_ptr(const CHARSET_INFO *cs, const char *s, const char *e); + +#define _MY_U 01 /* Upper case */ +#define _MY_L 02 /* Lower case */ +#define _MY_NMR 04 /* Numeral (digit) */ +#define _MY_SPC 010 /* Spacing character */ +#define _MY_PNT 020 /* Punctuation */ +#define _MY_CTR 040 /* Control character */ +#define _MY_B 0100 /* Blank */ +#define _MY_X 0200 /* heXadecimal digit */ + + +#define my_isascii(c) (!((c) & ~0177)) +#define my_toascii(c) ((c) & 0177) +#define my_tocntrl(c) ((c) & 31) +#define my_toprint(c) ((c) | 64) +#define my_toupper(s,c) (char) ((s)->to_upper[(uchar) (c)]) +#define my_tolower(s,c) (char) ((s)->to_lower[(uchar) (c)]) +#define my_isalpha(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L)) +#define my_isupper(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_U) +#define my_islower(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_L) +#define my_isdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_NMR) +#define my_isxdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_X) +#define my_isalnum(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L | _MY_NMR)) +#define my_isspace(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_SPC) +#define my_ispunct(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_PNT) +#define my_isprint(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B)) +#define my_isgraph(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR)) +#define my_iscntrl(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_CTR) + +/* Some macros that should be cleaned up a little */ +#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_') +#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_') + +#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT) +#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM) +#define my_strnxfrm(cs, d, dl, s, sl) \ + ((cs)->coll->strnxfrm((cs), (d), (dl), (dl), (s), (sl), MY_STRXFRM_PAD_WITH_SPACE)) +#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0)) +#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \ + ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j))) +#define my_wildcmp(cs,s,se,w,we,e,o,m) ((cs)->coll->wildcmp((cs),(s),(se),(w),(we),(e),(o),(m))) +#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b))) +#define my_charpos(cs, b, e, num) (cs)->cset->charpos((cs), (const char*) (b), (const char *)(e), (num)) + + +#define use_mb(s) ((s)->cset->ismbchar != NULL) +#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b))) +#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a))) +/** + Get the length of gb18030 code by the given two leading bytes + + @param[in] s charset_info + @param[in] a first byte of gb18030 code + @param[in] b second byte of gb18030 code + @return the length of gb18030 code starting with given two bytes, + the length would be 2 or 4 for valid gb18030 code, + or 0 for invalid gb18030 code +*/ +#define my_mbcharlen_2(s, a, b) ((s)->cset->mbcharlen((s),((((a) & 0xFF) << 8) + ((b) & 0xFF)))) +/** + Get the maximum length of leading bytes needed to determine the length of a + multi-byte gb18030 code + + @param[in] s charset_info + @return number of leading bytes we need, would be 2 for gb18030 + and 1 for all other charsets +*/ +#define my_mbmaxlenlen(s) ((s)->mbmaxlenlen) +/** + Judge if the given byte is a possible leading byte for a charset. + For gb18030 whose mbmaxlenlen is 2, we can't determine the length of + a multi-byte character by looking at the first byte only + + @param[in] s charset_info + @param[in] i possible leading byte + @return true if it is, otherwise false +*/ +#define my_ismb1st(s, i) \ + (my_mbcharlen((s), (i)) > 1 || \ + (my_mbmaxlenlen((s)) == 2 && my_mbcharlen((s), (i)) == 0)) + +#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a))) +#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a))) +#define my_strntol(s, a, b, c, d, e) ((s)->cset->strntol((s),(a),(b),(c),(d),(e))) +#define my_strntoul(s, a, b, c, d, e) ((s)->cset->strntoul((s),(a),(b),(c),(d),(e))) +#define my_strntoll(s, a, b, c, d, e) ((s)->cset->strntoll((s),(a),(b),(c),(d),(e))) +#define my_strntoull(s, a, b, c,d, e) ((s)->cset->strntoull((s),(a),(b),(c),(d),(e))) +#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s),(a),(b),(c),(d))) + +#ifdef __cplusplus +} +#endif + +#endif /* _m_ctype_h */ diff --git a/mysql/m_string.h b/mysql/m_string.h new file mode 100644 index 0000000..ee9f869 --- /dev/null +++ b/mysql/m_string.h @@ -0,0 +1,341 @@ +/* + Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _m_string_h +#define _m_string_h + +#include "my_global.h" /* HAVE_* */ + +#include + +#define bfill please_use_memset_rather_than_bfill +#define bzero please_use_memset_rather_than_bzero +#define bmove please_use_memmove_rather_than_bmove +#define strmov please_use_my_stpcpy_or_my_stpmov_rather_than_strmov +#define strnmov please_use_my_stpncpy_or_my_stpnmov_rather_than_strnmov + +#include "mysql/service_my_snprintf.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/* + my_str_malloc(), my_str_realloc() and my_str_free() are assigned to + implementations in strings/alloc.c, but can be overridden in + the calling program. + */ +extern void *(*my_str_malloc)(size_t); +extern void *(*my_str_realloc)(void *, size_t); +extern void (*my_str_free)(void *); + +/* Declared in int2str() */ +extern char _dig_vec_upper[]; +extern char _dig_vec_lower[]; + + /* Prototypes for string functions */ + +extern void bchange(uchar *dst,size_t old_len,const uchar *src, + size_t new_len,size_t tot_len); +extern void strappend(char *s,size_t len,pchar fill); +extern char *strend(const char *s); +extern char *strcend(const char *, pchar); +extern char *strfill(char * s,size_t len,pchar fill); +extern char *strmake(char *dst,const char *src,size_t length); + +extern char *my_stpmov(char *dst,const char *src); +extern char *my_stpnmov(char *dst, const char *src, size_t n); +extern char *strcont(const char *src, const char *set); +extern char *strxmov(char *dst, const char *src, ...); +extern char *strxnmov(char *dst, size_t len, const char *src, ...); + +/** + Copy a string from src to dst until (and including) terminating null byte. + + @param dst Destination + @param src Source + + @note src and dst cannot overlap. + Use my_stpmov() if src and dst overlaps. + + @note Unsafe, consider using my_stpnpy() instead. + + @return pointer to terminating null byte. +*/ +static inline char *my_stpcpy(char *dst, const char *src) +{ +#if defined(HAVE_BUILTIN_STPCPY) + return __builtin_stpcpy(dst, src); +#elif defined(HAVE_STPCPY) + return stpcpy(dst, src); +#else + /* Fallback to implementation supporting overlap. */ + return my_stpmov(dst, src); +#endif +} + +/** + Copy fixed-size string from src to dst. + + @param dst Destination + @param src Source + @param n Maximum number of characters to copy. + + @note src and dst cannot overlap + Use my_stpnmov() if src and dst overlaps. + + @return pointer to terminating null byte. +*/ +static inline char *my_stpncpy(char *dst, const char *src, size_t n) +{ +#if defined(HAVE_STPNCPY) + return stpncpy(dst, src, n); +#else + /* Fallback to implementation supporting overlap. */ + return my_stpnmov(dst, src, n); +#endif +} + +static inline longlong my_strtoll(const char *nptr, char **endptr, int base) +{ +#if defined _WIN32 + return _strtoi64(nptr, endptr, base); +#else + return strtoll(nptr, endptr, base); +#endif +} + +static inline ulonglong my_strtoull(const char *nptr, char **endptr, int base) +{ +#if defined _WIN32 + return _strtoui64(nptr, endptr, base); +#else + return strtoull(nptr, endptr, base); +#endif +} + +static inline char *my_strtok_r(char *str, const char *delim, char **saveptr) +{ +#if defined _WIN32 + return strtok_s(str, delim, saveptr); +#else + return strtok_r(str, delim, saveptr); +#endif +} + +/* native_ rather than my_ since my_strcasecmp already exists */ +static inline int native_strcasecmp(const char *s1, const char *s2) +{ +#if defined _WIN32 + return _stricmp(s1, s2); +#else + return strcasecmp(s1, s2); +#endif +} + +/* native_ rather than my_ for consistency with native_strcasecmp */ +static inline int native_strncasecmp(const char *s1, const char *s2, size_t n) +{ +#if defined _WIN32 + return _strnicmp(s1, s2, n); +#else + return strncasecmp(s1, s2, n); +#endif +} + +/* Prototypes of normal stringfunctions (with may ours) */ +#ifndef HAVE_STRNLEN +extern size_t strnlen(const char *s, size_t n); +#endif + +extern int is_prefix(const char *, const char *); + +/* Conversion routines */ +typedef enum { + MY_GCVT_ARG_FLOAT, + MY_GCVT_ARG_DOUBLE +} my_gcvt_arg_type; + +double my_strtod(const char *str, char **end, int *error); +double my_atof(const char *nptr); +size_t my_fcvt(double x, int precision, char *to, my_bool *error); +size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to, + my_bool *error); + +#define NOT_FIXED_DEC 31 + +/* + The longest string my_fcvt can return is 311 + "precision" bytes. + Here we assume that we never cal my_fcvt() with precision >= NOT_FIXED_DEC + (+ 1 byte for the terminating '\0'). +*/ +#define FLOATING_POINT_BUFFER (311 + NOT_FIXED_DEC) + +/* + We want to use the 'e' format in some cases even if we have enough space + for the 'f' one just to mimic sprintf("%.15g") behavior for large integers, + and to improve it for numbers < 10^(-4). + That is, for |x| < 1 we require |x| >= 10^(-15), and for |x| > 1 we require + it to be integer and be <= 10^DBL_DIG for the 'f' format to be used. + We don't lose precision, but make cases like "1e200" or "0.00001" look nicer. +*/ +#define MAX_DECPT_FOR_F_FORMAT DBL_DIG + +/* + The maximum possible field width for my_gcvt() conversion. + (DBL_DIG + 2) significant digits + sign + "." + ("e-NNN" or + MAX_DECPT_FOR_F_FORMAT zeros for cases when |x|<1 and the 'f' format is used). +*/ +#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + MY_MAX(5, MAX_DECPT_FOR_F_FORMAT)) \ + +extern char *llstr(longlong value,char *buff); +extern char *ullstr(longlong value,char *buff); + +extern char *int2str(long val, char *dst, int radix, int upcase); +extern char *int10_to_str(long val,char *dst,int radix); +extern char *str2int(const char *src,int radix,long lower,long upper, + long *val); +longlong my_strtoll10(const char *nptr, char **endptr, int *error); +#if SIZEOF_LONG == SIZEOF_LONG_LONG +#define ll2str(A,B,C,D) int2str((A),(B),(C),(D)) +#define longlong10_to_str(A,B,C) int10_to_str((A),(B),(C)) +#undef strtoll +#define strtoll(A,B,C) strtol((A),(B),(C)) +#define strtoull(A,B,C) strtoul((A),(B),(C)) +#else +extern char *ll2str(longlong val,char *dst,int radix, int upcase); +extern char *longlong10_to_str(longlong val,char *dst,int radix); +#endif +#define longlong2str(A,B,C) ll2str((A),(B),(C),1) + +#if defined(__cplusplus) +} +#endif + +/* + LEX_STRING -- a pair of a C-string and its length. + (it's part of the plugin API as a MYSQL_LEX_STRING) + Ditto LEX_CSTRING/MYSQL_LEX_CSTRING. +*/ + +#include +typedef struct st_mysql_lex_string LEX_STRING; +typedef struct st_mysql_const_lex_string LEX_CSTRING; + +#define STRING_WITH_LEN(X) (X), ((sizeof(X) - 1)) +#define USTRING_WITH_LEN(X) ((uchar*) X), ((sizeof(X) - 1)) +#define C_STRING_WITH_LEN(X) ((char *) (X)), ((sizeof(X) - 1)) + + +/** + Skip trailing space. + + On most systems reading memory in larger chunks (ideally equal to the size of + the chinks that the machine physically reads from memory) causes fewer memory + access loops and hence increased performance. + This is why the 'int' type is used : it's closest to that (according to how + it's defined in C). + So when we determine the amount of whitespace at the end of a string we do + the following : + 1. We divide the string into 3 zones : + a) from the start of the string (__start) to the first multiple + of sizeof(int) (__start_words) + b) from the end of the string (__end) to the last multiple of sizeof(int) + (__end_words) + c) a zone that is aligned to sizeof(int) and can be safely accessed + through an int * + 2. We start comparing backwards from (c) char-by-char. If all we find is + space then we continue + 3. If there are elements in zone (b) we compare them as unsigned ints to a + int mask (SPACE_INT) consisting of all spaces + 4. Finally we compare the remaining part (a) of the string char by char. + This covers for the last non-space unsigned int from 3. (if any) + + This algorithm works well for relatively larger strings, but it will slow + the things down for smaller strings (because of the additional calculations + and checks compared to the naive method). Thus the barrier of length 20 + is added. + + @param ptr pointer to the input string + @param len the length of the string + @return the last non-space character +*/ +#if defined(__sparc) || defined(__sparcv9) +static inline const uchar *skip_trailing_space(const uchar *ptr,size_t len) +{ + /* SPACE_INT is a word that contains only spaces */ +#if SIZEOF_INT == 4 + const unsigned SPACE_INT= 0x20202020U; +#elif SIZEOF_INT == 8 + const unsigned SPACE_INT= 0x2020202020202020ULL; +#else +#error define the appropriate constant for a word full of spaces +#endif + + const uchar *end= ptr + len; + + if (len > 20) + { + const uchar *end_words= (const uchar *)(intptr) + (((ulonglong)(intptr)end) / SIZEOF_INT * SIZEOF_INT); + const uchar *start_words= (const uchar *)(intptr) + ((((ulonglong)(intptr)ptr) + SIZEOF_INT - 1) / SIZEOF_INT * SIZEOF_INT); + + DBUG_ASSERT(end_words > ptr); + while (end > end_words && end[-1] == 0x20) + end--; + if (end[-1] == 0x20 && start_words < end_words) + while (end > start_words && ((unsigned *)end)[-1] == SPACE_INT) + end -= SIZEOF_INT; + } + while (end > ptr && end[-1] == 0x20) + end--; + return (end); +} +#else +/* + Reads 8 bytes at a time, ignoring alignment. + We use uint8korr, which is fast (it simply reads a *ulonglong) + on all platforms, except sparc. +*/ +static inline const uchar *skip_trailing_space(const uchar *ptr, size_t len) +{ + const uchar *end= ptr + len; + while (end - ptr >= 8) + { + if (uint8korr(end-8) != 0x2020202020202020ULL) + break; + end-= 8; + } + while (end > ptr && end[-1] == 0x20) + end--; + return (end); +} +#endif + +static inline void lex_string_set(LEX_STRING *lex_str, const char *c_str) +{ + lex_str->str= (char *) c_str; + lex_str->length= strlen(c_str); +} + +static inline void lex_cstring_set(LEX_CSTRING *lex_str, const char *c_str) +{ + lex_str->str= c_str; + lex_str->length= strlen(c_str); +} + +#endif diff --git a/mysql/mutex_lock.h b/mysql/mutex_lock.h new file mode 100644 index 0000000..abb2c51 --- /dev/null +++ b/mysql/mutex_lock.h @@ -0,0 +1,47 @@ +/* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MUTEX_LOCK_INCLUDED +#define MUTEX_LOCK_INCLUDED + +#include +#include + +/** + A simple wrapper around a mutex: + Grabs the mutex in the CTOR, releases it in the DTOR. + The mutex may be NULL, in which case this is a no-op. +*/ +class Mutex_lock +{ +public: + explicit Mutex_lock(mysql_mutex_t *mutex) : m_mutex(mutex) + { + if (m_mutex) + mysql_mutex_lock(m_mutex); + } + ~Mutex_lock() + { + if (m_mutex) + mysql_mutex_unlock(m_mutex); + } +private: + mysql_mutex_t *m_mutex; + + Mutex_lock(const Mutex_lock&); /* Not copyable. */ + void operator=(const Mutex_lock&); /* Not assignable. */ +}; + +#endif // MUTEX_LOCK_INCLUDED diff --git a/mysql/my_aes.h b/mysql/my_aes.h new file mode 100644 index 0000000..c5f7e85 --- /dev/null +++ b/mysql/my_aes.h @@ -0,0 +1,137 @@ +#ifndef MY_AES_INCLUDED +#define MY_AES_INCLUDED + +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +/* Header file for my_aes.c */ +/* Wrapper to give simple interface for MySQL to AES standard encryption */ + +C_MODE_START + +/** AES IV size is 16 bytes for all supported ciphers except ECB */ +#define MY_AES_IV_SIZE 16 + +/** AES block size is fixed to be 128 bits for CBC and ECB */ +#define MY_AES_BLOCK_SIZE 16 + + +/** Supported AES cipher/block mode combos */ +enum my_aes_opmode +{ + my_aes_128_ecb, + my_aes_192_ecb, + my_aes_256_ecb, + my_aes_128_cbc, + my_aes_192_cbc, + my_aes_256_cbc +#ifndef HAVE_YASSL + ,my_aes_128_cfb1, + my_aes_192_cfb1, + my_aes_256_cfb1, + my_aes_128_cfb8, + my_aes_192_cfb8, + my_aes_256_cfb8, + my_aes_128_cfb128, + my_aes_192_cfb128, + my_aes_256_cfb128, + my_aes_128_ofb, + my_aes_192_ofb, + my_aes_256_ofb +#endif +}; + +#define MY_AES_BEGIN my_aes_128_ecb +#ifdef HAVE_YASSL +#define MY_AES_END my_aes_256_cbc +#else +#define MY_AES_END my_aes_256_ofb +#endif + +/* If bad data discovered during decoding */ +#define MY_AES_BAD_DATA -1 + +/** String representations of the supported AES modes. Keep in sync with my_aes_opmode */ +extern const char *my_aes_opmode_names[]; + +/** + Encrypt a buffer using AES + + @param source [in] Pointer to data for encryption + @param source_length [in] Size of encryption data + @param dest [out] Buffer to place encrypted data (must be large enough) + @param key [in] Key to be used for encryption + @param key_length [in] Length of the key. Will handle keys of any length + @param mode [in] encryption mode + @param iv [in] 16 bytes initialization vector if needed. Otherwise NULL + @param padding [in] if padding needed. + @return size of encrypted data, or negative in case of error +*/ + +int my_aes_encrypt(const unsigned char *source, uint32 source_length, + unsigned char *dest, + const unsigned char *key, uint32 key_length, + enum my_aes_opmode mode, const unsigned char *iv, + bool padding = true); + +/** + Decrypt an AES encrypted buffer + + @param source Pointer to data for decryption + @param source_length size of encrypted data + @param dest buffer to place decrypted data (must be large enough) + @param key Key to be used for decryption + @param key_length Length of the key. Will handle keys of any length + @param mode encryption mode + @param iv 16 bytes initialization vector if needed. Otherwise NULL + @param padding if padding needed. + @return size of original data. +*/ + + +int my_aes_decrypt(const unsigned char *source, uint32 source_length, + unsigned char *dest, + const unsigned char *key, uint32 key_length, + enum my_aes_opmode mode, const unsigned char *iv, + bool padding = true); + +/** + Calculate the size of a buffer large enough for encrypted data + + @param source_length length of data to be encrypted + @param mode encryption mode + @return size of buffer required to store encrypted data +*/ + +int my_aes_get_size(uint32 source_length, enum my_aes_opmode mode); + +/** + Return true if the AES cipher and block mode requires an IV + + SYNOPSIS + my_aes_needs_iv() + @param mode encryption mode + + @retval TRUE IV needed + @retval FALSE IV not needed +*/ + +my_bool my_aes_needs_iv(my_aes_opmode opmode); + + +C_MODE_END + +#endif /* MY_AES_INCLUDED */ diff --git a/mysql/my_alloc.h b/mysql/my_alloc.h new file mode 100644 index 0000000..d236c93 --- /dev/null +++ b/mysql/my_alloc.h @@ -0,0 +1,78 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Data structures for mysys/my_alloc.c (root memory allocator) +*/ + +#ifndef _my_alloc_h +#define _my_alloc_h + +#define ALLOC_MAX_BLOCK_TO_DROP 4096 +#define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP 10 + +/* PSI_memory_key */ +#include "mysql/psi/psi_memory.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_used_mem +{ /* struct for once_alloc (block) */ + struct st_used_mem *next; /* Next block in use */ + unsigned int left; /* memory left in block */ + unsigned int size; /* size of block */ +} USED_MEM; + + +typedef struct st_mem_root +{ + USED_MEM *free; /* blocks with free memory in it */ + USED_MEM *used; /* blocks almost without free memory */ + USED_MEM *pre_alloc; /* preallocated block */ + /* if block have less memory it will be put in 'used' list */ + size_t min_malloc; + size_t block_size; /* initial block size */ + unsigned int block_num; /* allocated blocks counter */ + /* + first free block in queue test counter (if it exceed + MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list) + */ + unsigned int first_block_usage; + + /* + Maximum amount of memory this mem_root can hold. A value of 0 + implies there is no limit. + */ + size_t max_capacity; + + /* Allocated size for this mem_root */ + + size_t allocated_size; + + /* Enable this for error reporting if capacity is exceeded */ + my_bool error_for_capacity_exceeded; + + void (*error_handler)(void); + + PSI_memory_key m_psi_key; +} MEM_ROOT; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mysql/my_atomic.h b/mysql/my_atomic.h new file mode 100644 index 0000000..065209d --- /dev/null +++ b/mysql/my_atomic.h @@ -0,0 +1,76 @@ +#ifndef MY_ATOMIC_INCLUDED +#define MY_ATOMIC_INCLUDED + +/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + This header defines five atomic operations: + + my_atomic_add#(&var, what) + 'Fetch and Add' + add 'what' to *var, and return the old value of *var + + my_atomic_fas#(&var, what) + 'Fetch And Store' + store 'what' in *var, and return the old value of *var + + my_atomic_cas#(&var, &old, new) + An odd variation of 'Compare And Set/Swap' + if *var is equal to *old, then store 'new' in *var, and return TRUE + otherwise store *var in *old, and return FALSE + Usually, &old should not be accessed if the operation is successful. + + my_atomic_load#(&var) + return *var + + my_atomic_store#(&var, what) + store 'what' in *var + + '#' is substituted by a size suffix - 32, 64, or ptr + (e.g. my_atomic_add64, my_atomic_fas32, my_atomic_casptr). +*/ + +/* + We choose implementation as follows: + ------------------------------------ + On Windows using Visual C++ the native implementation should be + preferrable. When using gcc we prefer the Solaris implementation + before the gcc because of stability preference, we choose gcc + builtins if available. If neither Visual C++ or gcc we still choose + the Solaris implementation on Solaris (mainly for SunStudio compilers). +*/ +#if defined(_MSC_VER) +# include "atomic/generic-msvc.h" +#elif defined(HAVE_SOLARIS_ATOMIC) +# include "atomic/solaris.h" +#elif defined(HAVE_GCC_SYNC_BUILTINS) /* Use old __sync by default */ +# include "atomic/gcc_sync.h" +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) /* Use __atomic on e.g. powerpc */ +# include "atomic/gcc_atomic.h" +#else +# error Native atomics support not found! +#endif + +/* + the macro below defines (as an expression) the code that + will be run in spin-loops. Intel manuals recummend to have PAUSE there. + It is expected to be defined in include/atomic/ *.h files +*/ +#ifndef LF_BACKOFF +#define LF_BACKOFF (1) +#endif + +#endif /* MY_ATOMIC_INCLUDED */ diff --git a/mysql/my_base.h b/mysql/my_base.h new file mode 100644 index 0000000..22587ec --- /dev/null +++ b/mysql/my_base.h @@ -0,0 +1,647 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + + +/* This file includes constants used with all databases */ + +#ifndef _my_base_h +#define _my_base_h + +#include "my_global.h" + +/* The following is bits in the flag parameter to ha_open() */ + +#define HA_OPEN_ABORT_IF_LOCKED 0 /* default */ +#define HA_OPEN_WAIT_IF_LOCKED 1 +#define HA_OPEN_IGNORE_IF_LOCKED 2 +#define HA_OPEN_TMP_TABLE 4 /* Table is a temp table */ +#define HA_OPEN_DELAY_KEY_WRITE 8 /* Don't update index */ +#define HA_OPEN_ABORT_IF_CRASHED 16 +#define HA_OPEN_FOR_REPAIR 32 /* open even if crashed */ +#define HA_OPEN_FROM_SQL_LAYER 64 +#define HA_OPEN_MMAP 128 /* open memory mapped */ +#define HA_OPEN_COPY 256 /* Open copy (for repair) */ +/* Internal temp table, used for temporary results */ +#define HA_OPEN_INTERNAL_TABLE 512 +/** + Don't connect any share_psi to the handler, since it is a partition. + It would not be used, since partitions don't call unbind_psi()/rebind_psi(). +*/ +#define HA_OPEN_NO_PSI_CALL 1024 /* Don't call/connect PSI */ + +/* The following is parameter to ha_rkey() how to use key */ + +/* + We define a complete-field prefix of a key value as a prefix where + the last included field in the prefix contains the full field, not + just some bytes from the start of the field. A partial-field prefix + is allowed to contain only a few first bytes from the last included + field. + + Below HA_READ_KEY_EXACT, ..., HA_READ_BEFORE_KEY can take a + complete-field prefix of a key value as the search + key. HA_READ_PREFIX and HA_READ_PREFIX_LAST could also take a + partial-field prefix, but currently (4.0.10) they are only used with + complete-field prefixes. MySQL uses a padding trick to implement + LIKE 'abc%' queries. + + NOTE that in InnoDB HA_READ_PREFIX_LAST will NOT work with a + partial-field prefix because InnoDB currently strips spaces from the + end of varchar fields! +*/ + +enum ha_rkey_function { + HA_READ_KEY_EXACT, /* Find first record else error */ + HA_READ_KEY_OR_NEXT, /* Record or next record */ + HA_READ_KEY_OR_PREV, /* Record or previous */ + HA_READ_AFTER_KEY, /* Find next rec. after key-record */ + HA_READ_BEFORE_KEY, /* Find next rec. before key-record */ + HA_READ_PREFIX, /* Key which as same prefix */ + HA_READ_PREFIX_LAST, /* Last key with the same prefix */ + HA_READ_PREFIX_LAST_OR_PREV, /* Last or prev key with the same prefix */ + HA_READ_MBR_CONTAIN, /* Minimum Bounding Rectangle contains */ + HA_READ_MBR_INTERSECT, /* Minimum Bounding Rectangle intersect */ + HA_READ_MBR_WITHIN, /* Minimum Bounding Rectangle within */ + HA_READ_MBR_DISJOINT, /* Minimum Bounding Rectangle disjoint */ + HA_READ_MBR_EQUAL, /* Minimum Bounding Rectangle equal */ + HA_READ_INVALID= -1 /* Invalid enumeration value, always last. */ +}; + + /* Key algorithm types */ + +enum ha_key_alg { + HA_KEY_ALG_UNDEF= 0, /* Not specified (old file) */ + HA_KEY_ALG_BTREE= 1, /* B-tree, default one */ + HA_KEY_ALG_RTREE= 2, /* R-tree, for spatial searches */ + HA_KEY_ALG_HASH= 3, /* HASH keys (HEAP tables) */ + HA_KEY_ALG_FULLTEXT= 4 /* FULLTEXT (MyISAM tables) */ +}; + + /* Storage media types */ + +enum ha_storage_media { + HA_SM_DEFAULT= 0, /* Not specified (engine default) */ + HA_SM_DISK= 1, /* DISK storage */ + HA_SM_MEMORY= 2 /* MAIN MEMORY storage */ +}; + + /* The following is parameter to ha_extra() */ + +enum ha_extra_function { + HA_EXTRA_NORMAL=0, /* Optimize for space (def) */ + HA_EXTRA_QUICK=1, /* Optimize for speed */ + HA_EXTRA_NOT_USED=2, + HA_EXTRA_CACHE=3, /* Cache record in HA_rrnd() */ + HA_EXTRA_NO_CACHE=4, /* End caching of records (def) */ + HA_EXTRA_NO_READCHECK=5, /* No readcheck on update */ + HA_EXTRA_READCHECK=6, /* Use readcheck (def) */ + HA_EXTRA_KEYREAD=7, /* Read only key to database */ + HA_EXTRA_NO_KEYREAD=8, /* Normal read of records (def) */ + HA_EXTRA_NO_USER_CHANGE=9, /* No user is allowed to write */ + HA_EXTRA_KEY_CACHE=10, + HA_EXTRA_NO_KEY_CACHE=11, + HA_EXTRA_WAIT_LOCK=12, /* Wait until file is avalably (def) */ + HA_EXTRA_NO_WAIT_LOCK=13, /* If file is locked, return quickly */ + HA_EXTRA_WRITE_CACHE=14, /* Use write cache in ha_write() */ + HA_EXTRA_FLUSH_CACHE=15, /* flush write_record_cache */ + HA_EXTRA_NO_KEYS=16, /* Remove all update of keys */ + HA_EXTRA_KEYREAD_CHANGE_POS=17, /* Keyread, but change pos */ + /* xxxxchk -r must be used */ + HA_EXTRA_REMEMBER_POS=18, /* Remember pos for next/prev */ + HA_EXTRA_RESTORE_POS=19, + HA_EXTRA_REINIT_CACHE=20, /* init cache from current record */ + HA_EXTRA_FORCE_REOPEN=21, /* Datafile have changed on disk */ + HA_EXTRA_FLUSH, /* Flush tables to disk */ + HA_EXTRA_NO_ROWS, /* Don't write rows */ + HA_EXTRA_RESET_STATE, /* Reset positions */ + HA_EXTRA_IGNORE_DUP_KEY, /* Dup keys don't rollback everything*/ + HA_EXTRA_NO_IGNORE_DUP_KEY, + HA_EXTRA_PREPARE_FOR_DROP, + HA_EXTRA_PREPARE_FOR_UPDATE, /* Remove read cache if problems */ + HA_EXTRA_PRELOAD_BUFFER_SIZE, /* Set buffer size for preloading */ + /* + On-the-fly switching between unique and non-unique key inserting. + */ + HA_EXTRA_CHANGE_KEY_TO_UNIQUE, + HA_EXTRA_CHANGE_KEY_TO_DUP, + /* + When using HA_EXTRA_KEYREAD, overwrite only key member fields and keep + other fields intact. When this is off (by default) InnoDB will use memcpy + to overwrite entire row. + */ + HA_EXTRA_KEYREAD_PRESERVE_FIELDS, + HA_EXTRA_MMAP, + /* + Ignore if the a tuple is not found, continue processing the + transaction and ignore that 'row'. Needed for idempotency + handling on the slave + + Currently only used by NDB storage engine. Partition handler ignores flag. + */ + HA_EXTRA_IGNORE_NO_KEY, + HA_EXTRA_NO_IGNORE_NO_KEY, + /* + Mark the table as a log table. For some handlers (e.g. CSV) this results + in a special locking for the table. + */ + HA_EXTRA_MARK_AS_LOG_TABLE, + /* + Informs handler that write_row() which tries to insert new row into the + table and encounters some already existing row with same primary/unique + key can replace old row with new row instead of reporting error (basically + it informs handler that we do REPLACE instead of simple INSERT). + Off by default. + */ + HA_EXTRA_WRITE_CAN_REPLACE, + HA_EXTRA_WRITE_CANNOT_REPLACE, + /* + Inform handler that delete_row()/update_row() cannot batch deletes/updates + and should perform them immediately. This may be needed when table has + AFTER DELETE/UPDATE triggers which access to subject table. + These flags are reset by the handler::extra(HA_EXTRA_RESET) call. + */ + HA_EXTRA_DELETE_CANNOT_BATCH, + HA_EXTRA_UPDATE_CANNOT_BATCH, + /* + Inform handler that an "INSERT...ON DUPLICATE KEY UPDATE" will be + executed. This condition is unset by HA_EXTRA_NO_IGNORE_DUP_KEY. + */ + HA_EXTRA_INSERT_WITH_UPDATE, + /* Inform handler that we will do a rename */ + HA_EXTRA_PREPARE_FOR_RENAME, + /* + Special actions for MERGE tables. + */ + HA_EXTRA_ADD_CHILDREN_LIST, + HA_EXTRA_ATTACH_CHILDREN, + HA_EXTRA_IS_ATTACHED_CHILDREN, + HA_EXTRA_DETACH_CHILDREN, + /* + Prepare table for export + (e.g. quiesce the table and write table metadata). + */ + HA_EXTRA_EXPORT, + /** Do secondary sort by handler::ref (rowid) after key sort. */ + HA_EXTRA_SECONDARY_SORT_ROWID +}; + +/* Compatible option, to be deleted in 6.0 */ +#define HA_EXTRA_PREPARE_FOR_DELETE HA_EXTRA_PREPARE_FOR_DROP + + /* The following is parameter to ha_panic() */ + +enum ha_panic_function { + HA_PANIC_CLOSE, /* Close all databases */ + HA_PANIC_WRITE, /* Unlock and write status */ + HA_PANIC_READ /* Lock and read keyinfo */ +}; + + /* The following is parameter to ha_create(); keytypes */ + +enum ha_base_keytype { + HA_KEYTYPE_END=0, + HA_KEYTYPE_TEXT=1, /* Key is sorted as letters */ + HA_KEYTYPE_BINARY=2, /* Key is sorted as unsigned chars */ + HA_KEYTYPE_SHORT_INT=3, + HA_KEYTYPE_LONG_INT=4, + HA_KEYTYPE_FLOAT=5, + HA_KEYTYPE_DOUBLE=6, + HA_KEYTYPE_NUM=7, /* Not packed num with pre-space */ + HA_KEYTYPE_USHORT_INT=8, + HA_KEYTYPE_ULONG_INT=9, + HA_KEYTYPE_LONGLONG=10, + HA_KEYTYPE_ULONGLONG=11, + HA_KEYTYPE_INT24=12, + HA_KEYTYPE_UINT24=13, + HA_KEYTYPE_INT8=14, + /* Varchar (0-255 bytes) with length packed with 1 byte */ + HA_KEYTYPE_VARTEXT1=15, /* Key is sorted as letters */ + HA_KEYTYPE_VARBINARY1=16, /* Key is sorted as unsigned chars */ + /* Varchar (0-65535 bytes) with length packed with 2 bytes */ + HA_KEYTYPE_VARTEXT2=17, /* Key is sorted as letters */ + HA_KEYTYPE_VARBINARY2=18, /* Key is sorted as unsigned chars */ + HA_KEYTYPE_BIT=19 +}; + +#define HA_MAX_KEYTYPE 31 /* Must be log2-1 */ + + /* These flags kan be OR:ed to key-flag */ + +#define HA_NOSAME 1 /* Set if not dupplicated records */ +#define HA_PACK_KEY 2 /* Pack string key to previous key */ +#define HA_AUTO_KEY 16 +#define HA_BINARY_PACK_KEY 32 /* Packing of all keys to prev key */ +#define HA_FULLTEXT 128 /* For full-text search */ +#define HA_UNIQUE_CHECK 256 /* Check the key for uniqueness */ +#define HA_SPATIAL 1024 /* For spatial search */ +#define HA_NULL_ARE_EQUAL 2048 /* NULL in key are cmp as equal */ +#define HA_GENERATED_KEY 8192 /* Automaticly generated key */ + + /* The combination of the above can be used for key type comparison. */ +#define HA_KEYFLAG_MASK (HA_NOSAME | HA_PACK_KEY | HA_AUTO_KEY | \ + HA_BINARY_PACK_KEY | HA_FULLTEXT | HA_UNIQUE_CHECK | \ + HA_SPATIAL | HA_NULL_ARE_EQUAL | HA_GENERATED_KEY) + +/* + Key contains partial segments. + + This flag is internal to the MySQL server by design. It is not supposed + neither to be saved in FRM-files, nor to be passed to storage engines. + It is intended to pass information into internal static sort_keys(KEY *, + KEY *) function. + + This flag can be calculated -- it's based on key lengths comparison. +*/ +#define HA_KEY_HAS_PART_KEY_SEG 65536 +/** + Key was renamed (or is result of renaming a key). + + This is another flag internal to SQL-layer. + Used by in-place ALTER TABLE implementation. + + @note This flag can be set for keys which have other changes than + simple renaming as well. So from the point of view of storage + engine such key might have to be dropped and re-created with + new definition. +*/ +#define HA_KEY_RENAMED (1 << 17) +/** Set if a key is on any virtual generated columns */ +#define HA_VIRTUAL_GEN_KEY (1 << 18) + + /* Automatic bits in key-flag */ + +#define HA_SPACE_PACK_USED 4 /* Test for if SPACE_PACK used */ +#define HA_VAR_LENGTH_KEY 8 +#define HA_NULL_PART_KEY 64 +#define HA_USES_COMMENT 4096 +#define HA_USES_PARSER 16384 /* Fulltext index uses [pre]parser */ +#define HA_USES_BLOCK_SIZE ((uint) 32768) +#define HA_SORT_ALLOWS_SAME 512 /* Intern bit when sorting records */ + + /* These flags can be added to key-seg-flag */ + +#define HA_SPACE_PACK 1 /* Pack space in key-seg */ +#define HA_PART_KEY_SEG 4 /* Used by MySQL for part-key-cols */ +#define HA_VAR_LENGTH_PART 8 +#define HA_NULL_PART 16 +#define HA_BLOB_PART 32 +#define HA_SWAP_KEY 64 +#define HA_REVERSE_SORT 128 /* Sort key in reverse order */ +#define HA_NO_SORT 256 /* do not bother sorting on this keyseg */ +/* + End space in unique/varchar are considered equal. (Like 'a' and 'a ') + Only needed for internal temporary tables. +*/ +#define HA_END_SPACE_ARE_EQUAL 512 +#define HA_BIT_PART 1024 + + /* optionbits for database */ +#define HA_OPTION_PACK_RECORD 1 +#define HA_OPTION_PACK_KEYS 2 +#define HA_OPTION_COMPRESS_RECORD 4 +#define HA_OPTION_LONG_BLOB_PTR 8 /* new ISAM format */ +#define HA_OPTION_TMP_TABLE 16 +#define HA_OPTION_CHECKSUM 32 +#define HA_OPTION_DELAY_KEY_WRITE 64 +#define HA_OPTION_NO_PACK_KEYS 128 /* Reserved for MySQL */ +#define HA_OPTION_CREATE_FROM_ENGINE 256 +#define HA_OPTION_RELIES_ON_SQL_LAYER 512 +#define HA_OPTION_NULL_FIELDS 1024 +#define HA_OPTION_PAGE_CHECKSUM 2048 +/** STATS_PERSISTENT=1 has been specified in the SQL command (either CREATE +or ALTER TABLE). Table and index statistics that are collected by the +storage engine and used by the optimizer for query optimization will be +stored on disk and will not change after a server restart. */ +#define HA_OPTION_STATS_PERSISTENT 4096 +/** STATS_PERSISTENT=0 has been specified in CREATE/ALTER TABLE. Statistics +for the table will be wiped away on server shutdown and new ones recalculated +after the server is started again. If none of HA_OPTION_STATS_PERSISTENT or +HA_OPTION_NO_STATS_PERSISTENT is set, this means that the setting is not +explicitly set at table level and the corresponding table will use whatever +is the global server default. */ +#define HA_OPTION_NO_STATS_PERSISTENT 8192 +#define HA_OPTION_TEMP_COMPRESS_RECORD ((uint) 16384) /* set by isamchk */ +#define HA_OPTION_READ_ONLY_DATA ((uint) 32768) /* Set by isamchk */ + + /* Bits in flag to create() */ + +#define HA_DONT_TOUCH_DATA 1 /* Don't empty datafile (isamchk) */ +#define HA_PACK_RECORD 2 /* Request packed record format */ +#define HA_CREATE_TMP_TABLE 4 +#define HA_CREATE_CHECKSUM 8 +#define HA_CREATE_KEEP_FILES 16 /* don't overwrite .MYD and MYI */ +#define HA_CREATE_PAGE_CHECKSUM 32 +#define HA_CREATE_DELAY_KEY_WRITE 64 +#define HA_CREATE_RELIES_ON_SQL_LAYER 128 +#define HA_CREATE_INTERNAL_TABLE 256 + +/* + The following flags (OR-ed) are passed to handler::info() method. + The method copies misc handler information out of the storage engine + to data structures accessible from MySQL + + Same flags are also passed down to mi_status, myrg_status, etc. +*/ + +/* this one is not used */ +#define HA_STATUS_POS 1 +/* + assuming the table keeps shared actual copy of the 'info' and + local, possibly outdated copy, the following flag means that + it should not try to get the actual data (locking the shared structure) + slightly outdated version will suffice +*/ +#define HA_STATUS_NO_LOCK 2 +/* update the time of the last modification (in handler::update_time) */ +#define HA_STATUS_TIME 4 +/* + update the 'constant' part of the info: + handler::max_data_file_length, max_index_file_length, create_time + sortkey, ref_length, block_size, data_file_name, index_file_name. + handler::table->s->keys_in_use, keys_for_keyread, rec_per_key +*/ +#define HA_STATUS_CONST 8 +/* + update the 'variable' part of the info: + handler::records, deleted, data_file_length, index_file_length, + check_time, mean_rec_length +*/ +#define HA_STATUS_VARIABLE 16 +/* + get the information about the key that caused last duplicate value error + update handler::errkey and handler::dupp_ref + see handler::get_dup_key() +*/ +#define HA_STATUS_ERRKEY 32 +/* + update handler::auto_increment_value +*/ +#define HA_STATUS_AUTO 64 +/* + Get also delete_length when HA_STATUS_VARIABLE is called. It's ok to set it also + when only HA_STATUS_VARIABLE but it won't be used. +*/ +#define HA_STATUS_VARIABLE_EXTRA 128 + +/* + Errorcodes given by handler functions + + opt_sum_query() assumes these codes are > 1 + Do not add error numbers before HA_ERR_FIRST. + If necessary to add lower numbers, change HA_ERR_FIRST accordingly. +*/ +#define HA_ERR_FIRST 120 /* Copy of first error nr.*/ + +#define HA_ERR_KEY_NOT_FOUND 120 /* Didn't find key on read or update */ +#define HA_ERR_FOUND_DUPP_KEY 121 /* Dupplicate key on write */ +#define HA_ERR_INTERNAL_ERROR 122 /* Internal error */ +#define HA_ERR_RECORD_CHANGED 123 /* Uppdate with is recoverable */ +#define HA_ERR_WRONG_INDEX 124 /* Wrong index given to function */ +#define HA_ERR_CRASHED 126 /* Indexfile is crashed */ +#define HA_ERR_WRONG_IN_RECORD 127 /* Record-file is crashed */ +#define HA_ERR_OUT_OF_MEM 128 /* Record-file is crashed */ +#define HA_ERR_NOT_A_TABLE 130 /* not a MYI file - no signature */ +#define HA_ERR_WRONG_COMMAND 131 /* Command not supported */ +#define HA_ERR_OLD_FILE 132 /* old databasfile */ +#define HA_ERR_NO_ACTIVE_RECORD 133 /* No record read in update() */ +#define HA_ERR_RECORD_DELETED 134 /* A record is not there */ +#define HA_ERR_RECORD_FILE_FULL 135 /* No more room in file */ +#define HA_ERR_INDEX_FILE_FULL 136 /* No more room in file */ +#define HA_ERR_END_OF_FILE 137 /* end in next/prev/first/last */ +#define HA_ERR_UNSUPPORTED 138 /* unsupported extension used */ +#define HA_ERR_TOO_BIG_ROW 139 /* Too big row */ +#define HA_WRONG_CREATE_OPTION 140 /* Wrong create option */ +#define HA_ERR_FOUND_DUPP_UNIQUE 141 /* Dupplicate unique on write */ +#define HA_ERR_UNKNOWN_CHARSET 142 /* Can't open charset */ +#define HA_ERR_WRONG_MRG_TABLE_DEF 143 /* conflicting tables in MERGE */ +#define HA_ERR_CRASHED_ON_REPAIR 144 /* Last (automatic?) repair failed */ +#define HA_ERR_CRASHED_ON_USAGE 145 /* Table must be repaired */ +#define HA_ERR_LOCK_WAIT_TIMEOUT 146 +#define HA_ERR_LOCK_TABLE_FULL 147 +#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */ +#define HA_ERR_LOCK_DEADLOCK 149 +#define HA_ERR_CANNOT_ADD_FOREIGN 150 /* Cannot add a foreign key constr. */ +#define HA_ERR_NO_REFERENCED_ROW 151 /* Cannot add a child row */ +#define HA_ERR_ROW_IS_REFERENCED 152 /* Cannot delete a parent row */ +#define HA_ERR_NO_SAVEPOINT 153 /* No savepoint with that name */ +#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 154 /* Non unique key block size */ +#define HA_ERR_NO_SUCH_TABLE 155 /* The table does not exist in engine */ +#define HA_ERR_TABLE_EXIST 156 /* The table existed in storage engine */ +#define HA_ERR_NO_CONNECTION 157 /* Could not connect to storage engine */ +/* NULLs are not supported in spatial index */ +#define HA_ERR_NULL_IN_SPATIAL 158 +#define HA_ERR_TABLE_DEF_CHANGED 159 /* The table changed in storage engine */ +/* There's no partition in table for given value */ +#define HA_ERR_NO_PARTITION_FOUND 160 +#define HA_ERR_RBR_LOGGING_FAILED 161 /* Row-based binlogging of row failed */ +#define HA_ERR_DROP_INDEX_FK 162 /* Index needed in foreign key constr */ +/* + Upholding foreign key constraints would lead to a duplicate key error + in some other table. +*/ +#define HA_ERR_FOREIGN_DUPLICATE_KEY 163 +/* The table changed in storage engine */ +#define HA_ERR_TABLE_NEEDS_UPGRADE 164 +#define HA_ERR_TABLE_READONLY 165 /* The table is not writable */ + +#define HA_ERR_AUTOINC_READ_FAILED 166 /* Failed to get next autoinc value */ +#define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set row autoinc value */ +#define HA_ERR_GENERIC 168 /* Generic error */ +/* row not actually updated: new values same as the old values */ +#define HA_ERR_RECORD_IS_THE_SAME 169 +/* It is not possible to log this statement */ +#define HA_ERR_LOGGING_IMPOSSIBLE 170 /* It is not possible to log this + statement */ +#define HA_ERR_CORRUPT_EVENT 171 /* The event was corrupt, leading to + illegal data being read */ +#define HA_ERR_NEW_FILE 172 /* New file format */ +#define HA_ERR_ROWS_EVENT_APPLY 173 /* The event could not be processed + no other hanlder error happened */ +#define HA_ERR_INITIALIZATION 174 /* Error during initialization */ +#define HA_ERR_FILE_TOO_SHORT 175 /* File too short */ +#define HA_ERR_WRONG_CRC 176 /* Wrong CRC on page */ +#define HA_ERR_TOO_MANY_CONCURRENT_TRXS 177 /*Too many active concurrent transactions */ +/* There's no explicitly listed partition in table for the given value */ +#define HA_ERR_NOT_IN_LOCK_PARTITIONS 178 +#define HA_ERR_INDEX_COL_TOO_LONG 179 /* Index column length exceeds limit */ +#define HA_ERR_INDEX_CORRUPT 180 /* InnoDB index corrupted */ +#define HA_ERR_UNDO_REC_TOO_BIG 181 /* Undo log record too big */ +#define HA_FTS_INVALID_DOCID 182 /* Invalid InnoDB Doc ID */ +#define HA_ERR_TABLE_IN_FK_CHECK 183 /* Table being used in foreign key check */ +#define HA_ERR_TABLESPACE_EXISTS 184 /* The tablespace existed in storage engine */ +#define HA_ERR_TOO_MANY_FIELDS 185 /* Table has too many columns */ +#define HA_ERR_ROW_IN_WRONG_PARTITION 186 /* Row in wrong partition */ +#define HA_ERR_INNODB_READ_ONLY 187 /* InnoDB is in read only mode. */ +#define HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT 188 /* FTS query exceeds result cache limit */ +#define HA_ERR_TEMP_FILE_WRITE_FAILURE 189 /* Temporary file write failure */ +#define HA_ERR_INNODB_FORCED_RECOVERY 190 /* Innodb is in force recovery mode */ +#define HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE 191 /* Too many words in a phrase */ +#define HA_ERR_FK_DEPTH_EXCEEDED 192 /* FK cascade depth exceeded */ +#define HA_MISSING_CREATE_OPTION 193 /* Option Missing during Create */ +#define HA_ERR_SE_OUT_OF_MEMORY 194 /* Out of memory in storage engine */ +#define HA_ERR_TABLE_CORRUPT 195 /* Table/Clustered index is corrupted. */ +#define HA_ERR_QUERY_INTERRUPTED 196 /* The query was interrupted */ +#define HA_ERR_TABLESPACE_MISSING 197 /* Missing Tablespace */ +#define HA_ERR_TABLESPACE_IS_NOT_EMPTY 198 /* Tablespace is not empty */ +#define HA_ERR_WRONG_FILE_NAME 199 /* Invalid Filename */ +#define HA_ERR_NOT_ALLOWED_COMMAND 200 /* Operation is not allowed */ +#define HA_ERR_COMPUTE_FAILED 201 /* Compute generated column value failed */ +#define HA_ERR_LAST 201 /* Copy of last error nr */ + +/* Number of different errors */ +#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1) + + /* Other constants */ + +#define HA_NAMELEN 64 /* Max length of saved filename */ +#define NO_SUCH_KEY (~(uint)0) /* used as a key no. */ + +typedef ulong key_part_map; +#define HA_WHOLE_KEY (~(key_part_map)0) + + /* Intern constants in databases */ + + /* bits in _search */ +#define SEARCH_FIND 1 +#define SEARCH_NO_FIND 2 +#define SEARCH_SAME 4 +#define SEARCH_BIGGER 8 +#define SEARCH_SMALLER 16 +#define SEARCH_SAVE_BUFF 32 +#define SEARCH_UPDATE 64 +#define SEARCH_PREFIX 128 +#define SEARCH_LAST 256 +#define MBR_CONTAIN 512 +#define MBR_INTERSECT 1024 +#define MBR_WITHIN 2048 +#define MBR_DISJOINT 4096 +#define MBR_EQUAL 8192 +#define MBR_DATA 16384 +#define SEARCH_NULL_ARE_EQUAL 32768 /* NULL in keys are equal */ +#define SEARCH_NULL_ARE_NOT_EQUAL 65536 /* NULL in keys are not equal */ + + /* bits in opt_flag */ +#define QUICK_USED 1 +#define READ_CACHE_USED 2 +#define READ_CHECK_USED 4 +#define KEY_READ_USED 8 +#define WRITE_CACHE_USED 16 +#define OPT_NO_ROWS 32 + + /* bits in update */ +#define HA_STATE_CHANGED 1 /* Database has changed */ +#define HA_STATE_AKTIV 2 /* Has a current record */ +#define HA_STATE_WRITTEN 4 /* Record is written */ +#define HA_STATE_DELETED 8 +#define HA_STATE_NEXT_FOUND 16 /* Next found record (record before) */ +#define HA_STATE_PREV_FOUND 32 /* Prev found record (record after) */ +#define HA_STATE_NO_KEY 64 /* Last read didn't find record */ +#define HA_STATE_KEY_CHANGED 128 +#define HA_STATE_WRITE_AT_END 256 /* set in _ps_find_writepos */ +#define HA_STATE_BUFF_SAVED 512 /* If current keybuff is info->buff */ +#define HA_STATE_ROW_CHANGED 1024 /* To invalide ROW cache */ +#define HA_STATE_EXTEND_BLOCK 2048 + +/* myisampack expects no more than 32 field types. */ +enum en_fieldtype { + FIELD_LAST=-1,FIELD_NORMAL,FIELD_SKIP_ENDSPACE,FIELD_SKIP_PRESPACE, + FIELD_SKIP_ZERO,FIELD_BLOB,FIELD_CONSTANT,FIELD_INTERVALL,FIELD_ZERO, + FIELD_VARCHAR,FIELD_CHECK, + FIELD_enum_val_count +}; + +enum data_file_type { + STATIC_RECORD, DYNAMIC_RECORD, COMPRESSED_RECORD, BLOCK_RECORD +}; + +/* For key ranges */ + +enum key_range_flags { + NO_MIN_RANGE= 1 << 0, ///< from -inf + NO_MAX_RANGE= 1 << 1, ///< to +inf + /* X < key, i.e. not including the left endpoint */ + NEAR_MIN= 1 << 2, + /* X > key, i.e. not including the right endpoint */ + NEAR_MAX= 1 << 3, + /* + This flag means that index is a unique index, and the interval is + equivalent to "AND(keypart_i = const_i)", where all of const_i are + not NULLs. + */ + UNIQUE_RANGE= 1 << 4, + /* + This flag means that the interval is equivalent to + "AND(keypart_i = const_i)", where not all key parts may be used + but all of const_i are not NULLs. + */ + EQ_RANGE= 1 << 5, + /* + This flag has the same meaning as UNIQUE_RANGE, except that for at + least one keypart the condition is "keypart IS NULL". + */ + NULL_RANGE= 1 << 6, + /** + This flag means that the index is an rtree index, and the interval is + specified using HA_READ_MBR_XXX defined in enum ha_rkey_function. + */ + GEOM_FLAG= 1 << 7, + /* Deprecated, currently used only by NDB at row retrieval */ + SKIP_RANGE= 1 << 8, + /* + Used together with EQ_RANGE to indicate that index statistics + should be used instead of sampling the index. + */ + USE_INDEX_STATISTICS= 1 << 9 +}; + + +typedef struct st_key_range +{ + const uchar *key; + uint length; + key_part_map keypart_map; + enum ha_rkey_function flag; +} key_range; + +typedef struct st_key_multi_range +{ + key_range start_key; + key_range end_key; + char *ptr; /* Free to use by caller (ptr to row etc) */ + uint range_flag; /* key range flags see above */ +} KEY_MULTI_RANGE; + + +/* For number of records */ +#define rows2double(A) ulonglong2double(A) +typedef my_off_t ha_rows; + +#define HA_POS_ERROR (~ (ha_rows) 0) +#define HA_OFFSET_ERROR (~ (my_off_t) 0) + +#if SYSTEM_SIZEOF_OFF_T == 4 +#define MAX_FILE_SIZE INT_MAX32 +#else +#define MAX_FILE_SIZE LLONG_MAX +#endif + +#define HA_VARCHAR_PACKLENGTH(field_length) ((field_length) < 256 ? 1 :2) + +/* invalidator function reference for Query Cache */ +C_MODE_START +typedef void (* invalidator_by_filename)(const char * filename); +C_MODE_END + +#endif /* _my_base_h */ diff --git a/mysql/my_bit.h b/mysql/my_bit.h new file mode 100644 index 0000000..8d9f485 --- /dev/null +++ b/mysql/my_bit.h @@ -0,0 +1,124 @@ +/* + Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_BIT_INCLUDED +#define MY_BIT_INCLUDED + +/* + Some useful bit functions +*/ + +C_MODE_START + +extern const char _my_bits_nbits[256]; +extern const uchar _my_bits_reverse_table[256]; + +/* + Find smallest X in 2^X >= value + This can be used to divide a number with value by doing a shift instead +*/ + +static inline uint my_bit_log2(ulong value) +{ + uint bit; + for (bit=0 ; value > 1 ; value>>=1, bit++) ; + return bit; +} + +static inline uint my_count_bits(ulonglong v) +{ +#if SIZEOF_LONG_LONG > 4 + /* The following code is a bit faster on 16 bit machines than if we would + only shift v */ + ulong v2=(ulong) (v >> 32); + return (uint) (uchar) (_my_bits_nbits[(uchar) v] + + _my_bits_nbits[(uchar) (v >> 8)] + + _my_bits_nbits[(uchar) (v >> 16)] + + _my_bits_nbits[(uchar) (v >> 24)] + + _my_bits_nbits[(uchar) (v2)] + + _my_bits_nbits[(uchar) (v2 >> 8)] + + _my_bits_nbits[(uchar) (v2 >> 16)] + + _my_bits_nbits[(uchar) (v2 >> 24)]); +#else + return (uint) (uchar) (_my_bits_nbits[(uchar) v] + + _my_bits_nbits[(uchar) (v >> 8)] + + _my_bits_nbits[(uchar) (v >> 16)] + + _my_bits_nbits[(uchar) (v >> 24)]); +#endif +} + +static inline uint my_count_bits_uint32(uint32 v) +{ + return (uint) (uchar) (_my_bits_nbits[(uchar) v] + + _my_bits_nbits[(uchar) (v >> 8)] + + _my_bits_nbits[(uchar) (v >> 16)] + + _my_bits_nbits[(uchar) (v >> 24)]); +} + + +/* + Next highest power of two + + SYNOPSIS + my_round_up_to_next_power() + v Value to check + + RETURN + Next or equal power of 2 + Note: 0 will return 0 + + NOTES + Algorithm by Sean Anderson, according to: + http://graphics.stanford.edu/~seander/bithacks.html + (Orignal code public domain) + + Comments shows how this works with 01100000000000000000000000001011 +*/ + +static inline uint32 my_round_up_to_next_power(uint32 v) +{ + v--; /* 01100000000000000000000000001010 */ + v|= v >> 1; /* 01110000000000000000000000001111 */ + v|= v >> 2; /* 01111100000000000000000000001111 */ + v|= v >> 4; /* 01111111110000000000000000001111 */ + v|= v >> 8; /* 01111111111111111100000000001111 */ + v|= v >> 16; /* 01111111111111111111111111111111 */ + return v+1; /* 10000000000000000000000000000000 */ +} + +static inline uint32 my_clear_highest_bit(uint32 v) +{ + uint32 w=v >> 1; + w|= w >> 1; + w|= w >> 2; + w|= w >> 4; + w|= w >> 8; + w|= w >> 16; + return v & w; +} + +static inline uint32 my_reverse_bits(uint32 key) +{ + return + (_my_bits_reverse_table[ key & 255] << 24) | + (_my_bits_reverse_table[(key>> 8) & 255] << 16) | + (_my_bits_reverse_table[(key>>16) & 255] << 8) | + _my_bits_reverse_table[(key>>24) ]; +} + +C_MODE_END + +#endif /* MY_BIT_INCLUDED */ diff --git a/mysql/my_bitmap.h b/mysql/my_bitmap.h new file mode 100644 index 0000000..f45c1bc --- /dev/null +++ b/mysql/my_bitmap.h @@ -0,0 +1,144 @@ +/* + Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef _my_bitmap_h_ +#define _my_bitmap_h_ + +#define MY_BIT_NONE (~(uint) 0) + +#include +#include "mysql/psi/mysql_thread.h" /* mysql_mutex_t */ + +typedef uint32 my_bitmap_map; + +typedef struct st_bitmap +{ + my_bitmap_map *bitmap; + uint n_bits; /* number of bits occupied by the above */ + my_bitmap_map last_word_mask; + my_bitmap_map *last_word_ptr; + /* + mutex will be acquired for the duration of each bitmap operation if + thread_safe flag in bitmap_init was set. Otherwise, we optimize by not + acquiring the mutex + */ + mysql_mutex_t *mutex; +} MY_BITMAP; + +#ifdef __cplusplus +extern "C" { +#endif +extern void create_last_word_mask(MY_BITMAP *map); +extern my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits, + my_bool thread_safe); +extern my_bool bitmap_is_clear_all(const MY_BITMAP *map); +extern my_bool bitmap_is_prefix(const MY_BITMAP *map, uint prefix_size); +extern my_bool bitmap_is_set_all(const MY_BITMAP *map); +extern my_bool bitmap_is_subset(const MY_BITMAP *map1, const MY_BITMAP *map2); +extern my_bool bitmap_is_overlapping(const MY_BITMAP *map1, + const MY_BITMAP *map2); +extern my_bool bitmap_test_and_set(MY_BITMAP *map, uint bitmap_bit); +extern my_bool bitmap_test_and_clear(MY_BITMAP *map, uint bitmap_bit); +extern my_bool bitmap_fast_test_and_set(MY_BITMAP *map, uint bitmap_bit); +extern uint bitmap_set_next(MY_BITMAP *map); +extern uint bitmap_get_first(const MY_BITMAP *map); +extern uint bitmap_get_first_set(const MY_BITMAP *map); +extern uint bitmap_get_next_set(const MY_BITMAP *map, uint bitmap_bit); +extern uint bitmap_bits_set(const MY_BITMAP *map); +extern void bitmap_free(MY_BITMAP *map); +extern void bitmap_set_above(MY_BITMAP *map, uint from_byte, uint use_bit); +extern void bitmap_set_prefix(MY_BITMAP *map, uint prefix_size); +extern void bitmap_intersect(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_subtract(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_union(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_xor(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_invert(MY_BITMAP *map); +extern void bitmap_copy(MY_BITMAP *map, const MY_BITMAP *map2); + +extern uint bitmap_lock_set_next(MY_BITMAP *map); +extern void bitmap_lock_clear_bit(MY_BITMAP *map, uint bitmap_bit); +/* Fast, not thread safe, bitmap functions */ +#define bitmap_buffer_size(bits) (((bits)+31)/32)*4 +#define no_bytes_in_map(map) (((map)->n_bits + 7)/8) +#define no_words_in_map(map) (((map)->n_bits + 31)/32) + +static inline void bitmap_set_bit(MY_BITMAP *map, uint bit) +{ + DBUG_ASSERT(bit < map->n_bits); + ((uchar*)map->bitmap)[bit / 8] |= (1 << (bit & 7)); +} + + +static inline void bitmap_flip_bit(MY_BITMAP *map, uint bit) +{ + DBUG_ASSERT(bit < map->n_bits); + ((uchar*)map->bitmap)[bit / 8] ^= (1 << (bit & 7)); +} + + +static inline void bitmap_clear_bit(MY_BITMAP *map, uint bit) +{ + DBUG_ASSERT(bit < map->n_bits); + ((uchar*)map->bitmap)[bit / 8] &= ~(1 << (bit & 7)); +} + + +static inline my_bool bitmap_is_set(const MY_BITMAP *map, uint bit) +{ + DBUG_ASSERT(bit < map->n_bits); + return ((uchar*)map->bitmap)[bit / 8] & (1 << (bit & 7)); +} + +/** + Quite unlike other C comparison functions ending with 'cmp', e.g. memcmp(), + strcmp(), this function returns true if the bitmaps are equal, and false + otherwise. + + @retval true The bitmaps are equal. + @retval false The bitmaps differ. + */ +static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2) +{ + DBUG_ASSERT(map1->n_bits > 0); + DBUG_ASSERT(map2->n_bits > 0); + + if (memcmp(map1->bitmap, map2->bitmap, 4*(no_words_in_map(map1)-1)) != 0) + return FALSE; + return ((*map1->last_word_ptr | map1->last_word_mask) == + (*map2->last_word_ptr | map2->last_word_mask)); +} + +/* + Clears all bits. This is allowed even for a zero-size bitmap. + */ +static inline void bitmap_clear_all(MY_BITMAP *map) +{ + memset(map->bitmap, 0, 4 * no_words_in_map(map)); +} + +/* + Sets all bits. This is allowed even for a zero-size bitmap. + */ +static inline void bitmap_set_all(MY_BITMAP *map) +{ + memset(map->bitmap, 0xFF, 4 * no_words_in_map(map)); +} + +#ifdef __cplusplus +} +#endif + +#endif /* _my_bitmap_h_ */ diff --git a/mysql/my_byteorder.h b/mysql/my_byteorder.h new file mode 100644 index 0000000..daedd62 --- /dev/null +++ b/mysql/my_byteorder.h @@ -0,0 +1,213 @@ +#ifndef MY_BYTEORDER_INCLUDED +#define MY_BYTEORDER_INCLUDED + +/* Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +/* + Functions for reading and storing in machine independent + format (low byte first). There are 'korr' (assume 'corrector') variants + for integer types, but 'get' (assume 'getter') for floating point types. +*/ +#if defined(__i386__) || defined(_WIN32) || defined(__x86_64__) +#include "byte_order_generic_x86.h" +#else +#include "byte_order_generic.h" +#endif + +static inline int32 sint3korr(const uchar *A) +{ + return + ((int32) (((A[2]) & 128) ? + (((uint32) 255L << 24) | + (((uint32) A[2]) << 16) | + (((uint32) A[1]) << 8) | + ((uint32) A[0])) : + (((uint32) A[2]) << 16) | + (((uint32) A[1]) << 8) | + ((uint32) A[0]))) + ; +} + +static inline uint32 uint3korr(const uchar *A) +{ + return + (uint32) (((uint32) (A[0])) + + (((uint32) (A[1])) << 8) + + (((uint32) (A[2])) << 16)) + ; +} + +static inline ulonglong uint5korr(const uchar *A) +{ + return + ((ulonglong)(((uint32) (A[0])) + + (((uint32) (A[1])) << 8) + + (((uint32) (A[2])) << 16) + + (((uint32) (A[3])) << 24)) + + (((ulonglong) (A[4])) << 32)) + ; +} + +static inline ulonglong uint6korr(const uchar *A) +{ + return + ((ulonglong)(((uint32) (A[0])) + + (((uint32) (A[1])) << 8) + + (((uint32) (A[2])) << 16) + + (((uint32) (A[3])) << 24)) + + (((ulonglong) (A[4])) << 32) + + (((ulonglong) (A[5])) << 40)) + ; +} + +static inline void int3store(uchar *T, uint A) +{ + *(T)= (uchar) (A); + *(T+1)= (uchar) (A >> 8); + *(T+2)= (uchar) (A >> 16); +} + +static inline void int5store(uchar *T, ulonglong A) +{ + *(T)= (uchar) (A); + *(T+1)= (uchar) (A >> 8); + *(T+2)= (uchar) (A >> 16); + *(T+3)= (uchar) (A >> 24); + *(T+4)= (uchar) (A >> 32); +} + +static inline void int6store(uchar *T, ulonglong A) +{ + *(T)= (uchar) (A); + *(T+1)= (uchar) (A >> 8); + *(T+2)= (uchar) (A >> 16); + *(T+3)= (uchar) (A >> 24); + *(T+4)= (uchar) (A >> 32); + *(T+5)= (uchar) (A >> 40); +} + +#ifdef __cplusplus + +static inline int16 sint2korr(const char *pT) +{ + return sint2korr(static_cast(static_cast(pT))); +} + +static inline uint16 uint2korr(const char *pT) +{ + return uint2korr(static_cast(static_cast(pT))); +} + +static inline uint32 uint3korr(const char *pT) +{ + return uint3korr(static_cast(static_cast(pT))); +} + +static inline int32 sint3korr(const char *pT) +{ + return sint3korr(static_cast(static_cast(pT))); +} + +static inline uint32 uint4korr(const char *pT) +{ + return uint4korr(static_cast(static_cast(pT))); +} + +static inline int32 sint4korr(const char *pT) +{ + return sint4korr(static_cast(static_cast(pT))); +} + +static inline ulonglong uint6korr(const char *pT) +{ + return uint6korr(static_cast(static_cast(pT))); +} + +static inline ulonglong uint8korr(const char *pT) +{ + return uint8korr(static_cast(static_cast(pT))); +} + +static inline longlong sint8korr(const char *pT) +{ + return sint8korr(static_cast(static_cast(pT))); +} + + +static inline void int2store(char *pT, uint16 A) +{ + int2store(static_cast(static_cast(pT)), A); +} + +static inline void int3store(char *pT, uint A) +{ + int3store(static_cast(static_cast(pT)), A); +} + +static inline void int4store(char *pT, uint32 A) +{ + int4store(static_cast(static_cast(pT)), A); +} + +static inline void int5store(char *pT, ulonglong A) +{ + int5store(static_cast(static_cast(pT)), A); +} + +static inline void int6store(char *pT, ulonglong A) +{ + int6store(static_cast(static_cast(pT)), A); +} + +static inline void int8store(char *pT, ulonglong A) +{ + int8store(static_cast(static_cast(pT)), A); +} + +#endif /* __cplusplus */ + +/* + Functions for reading and storing in machine format from/to + short/long to/from some place in memory V should be a variable + and M a pointer to byte. +*/ +#ifdef WORDS_BIGENDIAN +#include "big_endian.h" +#else +#include "little_endian.h" +#endif + +#ifdef __cplusplus + +static inline void float4store(char *V, float M) +{ + float4store(static_cast(static_cast(V)), M); +} + +static inline void float8get(double *V, const char *M) +{ + float8get(V, static_cast(static_cast(M))); +} + +static inline void float8store(char *V, double M) +{ + float8store(static_cast(static_cast(V)), M); +} + +#endif /* __cplusplus */ + +#endif /* MY_BYTEORDER_INCLUDED */ diff --git a/mysql/my_command.h b/mysql/my_command.h new file mode 100644 index 0000000..56adcff --- /dev/null +++ b/mysql/my_command.h @@ -0,0 +1,64 @@ +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _mysql_command_h +#define _mysql_command_h + +/** + @enum enum_server_command + @brief You should add new commands to the end of this list, otherwise old + servers won't be able to handle them as 'unsupported'. +*/ +enum enum_server_command +{ + COM_SLEEP, + COM_QUIT, + COM_INIT_DB, + COM_QUERY, + COM_FIELD_LIST, + COM_CREATE_DB, + COM_DROP_DB, + COM_REFRESH, + COM_SHUTDOWN, + COM_STATISTICS, + COM_PROCESS_INFO, + COM_CONNECT, + COM_PROCESS_KILL, + COM_DEBUG, + COM_PING, + COM_TIME, + COM_DELAYED_INSERT, + COM_CHANGE_USER, + COM_BINLOG_DUMP, + COM_TABLE_DUMP, + COM_CONNECT_OUT, + COM_REGISTER_SLAVE, + COM_STMT_PREPARE, + COM_STMT_EXECUTE, + COM_STMT_SEND_LONG_DATA, + COM_STMT_CLOSE, + COM_STMT_RESET, + COM_SET_OPTION, + COM_STMT_FETCH, + COM_DAEMON, + COM_BINLOG_DUMP_GTID, + COM_RESET_CONNECTION, + /* don't forget to update const char *command_name[] in sql_parse.cc */ + + /* Must be last */ + COM_END +}; + +#endif /* _mysql_command_h */ diff --git a/mysql/my_compare.h b/mysql/my_compare.h new file mode 100644 index 0000000..bb83679 --- /dev/null +++ b/mysql/my_compare.h @@ -0,0 +1,127 @@ +/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef _my_compare_h +#define _my_compare_h + +#include "myisampack.h" +#ifdef __cplusplus +extern "C" { +#endif + +#include "m_ctype.h" /* CHARSET_INFO */ +#include "my_icp.h" /* ICP_RESULT */ + +/* + There is a hard limit for the maximum number of keys as there are only + 8 bits in the index file header for the number of keys in a table. + This means that 0..255 keys can exist for a table. The idea of + HA_MAX_POSSIBLE_KEY is to ensure that one can use myisamchk & tools on + a MyISAM table for which one has more keys than MyISAM is normally + compiled for. If you don't have this, you will get a core dump when + running myisamchk compiled for 128 keys on a table with 255 keys. +*/ + +#define HA_MAX_POSSIBLE_KEY 255 /* For myisamchk */ +/* + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. +*/ + +#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ +#define HA_MAX_KEY_SEG 16 /* Max segments for key */ + +#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) +#define HA_MAX_KEY_BUFF (HA_MAX_KEY_LENGTH+HA_MAX_KEY_SEG*6+8+8) + +typedef struct st_HA_KEYSEG /* Key-portion */ +{ + const CHARSET_INFO *charset; + uint32 start; /* Start of key in record */ + uint32 null_pos; /* position to NULL indicator */ + uint16 bit_pos; /* Position to bit part */ + uint16 flag; + uint16 length; /* Keylength */ + uint16 language; + uint8 type; /* Type of key (for sort) */ + uint8 null_bit; /* bitmask to test for NULL */ + uint8 bit_start,bit_end; /* if bit field */ + uint8 bit_length; /* Length of bit part */ +} HA_KEYSEG; + +#define get_key_length(length,key) \ +{ if (*(uchar*) (key) != 255) \ + length= (uint) *(uchar*) ((key)++); \ + else \ + { length= mi_uint2korr((key)+1); (key)+=3; } \ +} + +#define get_key_length_rdonly(length,key) \ +{ if (*(uchar*) (key) != 255) \ + length= ((uint) *(uchar*) ((key))); \ + else \ + { length= mi_uint2korr((key)+1); } \ +} + +#define get_key_pack_length(length,length_pack,key) \ +{ if (*(uchar*) (key) != 255) \ + { length= (uint) *(uchar*) ((key)++); length_pack= 1; }\ + else \ + { length=mi_uint2korr((key)+1); (key)+= 3; length_pack= 3; } \ +} + +#define store_key_length_inc(key,length) \ +{ if ((length) < 255) \ + { *(key)++= (length); } \ + else \ + { *(key)=255; mi_int2store((key)+1,(length)); (key)+=3; } \ +} + +#define size_to_store_key_length(length) ((length) < 255 ? 1 : 3) + +#define get_rec_bits(bit_ptr, bit_ofs, bit_len) \ + (((((uint16) (bit_ptr)[1] << 8) | (uint16) (bit_ptr)[0]) >> (bit_ofs)) & \ + ((1 << (bit_len)) - 1)) + +#define set_rec_bits(bits, bit_ptr, bit_ofs, bit_len) \ +{ \ + (bit_ptr)[0]= ((bit_ptr)[0] & ~(((1 << (bit_len)) - 1) << (bit_ofs))) | \ + ((bits) << (bit_ofs)); \ + if ((bit_ofs) + (bit_len) > 8) \ + (bit_ptr)[1]= ((bit_ptr)[1] & ~((1 << ((bit_len) - 8 + (bit_ofs))) - 1)) | \ + ((bits) >> (8 - (bit_ofs))); \ +} + +#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \ + set_rec_bits(0, bit_ptr, bit_ofs, bit_len) + +extern int ha_compare_text(const CHARSET_INFO *, uchar *, uint, uchar *, uint , + my_bool, my_bool); +extern int ha_key_cmp(HA_KEYSEG *keyseg, uchar *a, + uchar *b, uint key_length, uint nextflag, + uint *diff_pos); + +/* + Inside an in-memory data record, memory pointers to pieces of the + record (like BLOBs) are stored in their native byte order and in + this amount of bytes. +*/ +#define portable_sizeof_char_ptr 8 + +#ifdef __cplusplus +} +#endif + +#endif /* _my_compare_h */ diff --git a/mysql/my_compiler.h b/mysql/my_compiler.h new file mode 100644 index 0000000..2092537 --- /dev/null +++ b/mysql/my_compiler.h @@ -0,0 +1,178 @@ +#ifndef MY_COMPILER_INCLUDED +#define MY_COMPILER_INCLUDED + +/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + Header for compiler-dependent features. + + Intended to contain a set of reusable wrappers for preprocessor + macros, attributes, pragmas, and any other features that are + specific to a target compiler. +*/ + +#include /* size_t */ + +#if defined __GNUC__ +/* + Convenience macro to test the minimum required GCC version. + These should be used with care as Clang also sets __GNUC__ and + __GNUC_MINOR__ (currently to 4.2). Prefer using feature specific + CMake checks in configure.cmake instead. +*/ +# define MY_GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) +#else +# define MY_GNUC_PREREQ(maj, min) (0) +#endif + +/* + The macros below are borrowed from include/linux/compiler.h in the + Linux kernel. Use them to indicate the likelyhood of the truthfulness + of a condition. This serves two purposes - newer versions of gcc will be + able to optimize for branch predication, which could yield siginficant + performance gains in frequently executed sections of the code, and the + other reason to use them is for documentation +*/ +#ifdef HAVE_BUILTIN_EXPECT + +// likely/unlikely are likely to clash with other symbols, do not #define +#if defined(__cplusplus) +inline bool likely(bool expr) +{ + return __builtin_expect(expr, true); +} +inline bool unlikely(bool expr) +{ + return __builtin_expect(expr, false); +} +#else +# define likely(x) __builtin_expect((x),1) +# define unlikely(x) __builtin_expect((x),0) +#endif + +#else /* HAVE_BUILTIN_EXPECT */ + +#if defined(__cplusplus) +inline bool likely(bool expr) +{ + return expr; +} +inline bool unlikely(bool expr) +{ + return expr; +} +#else +# define likely(x) (x) +# define unlikely(x) (x) +#endif + +#endif /* HAVE_BUILTIN_EXPECT */ + +/* Comunicate to the compiler the unreachability of the code. */ +#ifdef HAVE_BUILTIN_UNREACHABLE +# define MY_ASSERT_UNREACHABLE() __builtin_unreachable() +#else +# define MY_ASSERT_UNREACHABLE() do { assert(0); } while (0) +#endif + +#if defined __GNUC__ || defined __SUNPRO_C || defined __SUNPRO_CC +/* Specifies the minimum alignment of a type. */ +# define MY_ALIGNOF(type) __alignof__(type) +/* Determine the alignment requirement of a type. */ +# define MY_ALIGNED(n) __attribute__((__aligned__((n)))) +/* Microsoft Visual C++ */ +#elif defined _MSC_VER +# define MY_ALIGNOF(type) __alignof(type) +# define MY_ALIGNED(n) __declspec(align(n)) +#else /* Make sure they are defined for other compilers. */ +# define MY_ALIGNOF(type) +# define MY_ALIGNED(size) +#endif + +/* Visual Studio requires '__inline' for C code */ +#if !defined(__cplusplus) && defined(_MSC_VER) +# define inline __inline +#endif + +/* Provide __func__ macro definition for Visual Studio. */ +#if defined(_MSC_VER) +# define __func__ __FUNCTION__ +#endif + +/** + C++ Type Traits +*/ +#ifdef __cplusplus + +/** + Opaque storage with a particular alignment. + Partial specialization used due to MSVC++. +*/ +template struct my_alignment_imp; +template<> struct MY_ALIGNED(1) my_alignment_imp<1> {}; +template<> struct MY_ALIGNED(2) my_alignment_imp<2> {}; +template<> struct MY_ALIGNED(4) my_alignment_imp<4> {}; +template<> struct MY_ALIGNED(8) my_alignment_imp<8> {}; +template<> struct MY_ALIGNED(16) my_alignment_imp<16> {}; + +/** + A POD type with a given size and alignment. + + @remark If the compiler does not support a alignment attribute + (MY_ALIGN macro), the default alignment of a double is + used instead. + + @tparam size The minimum size. + @tparam alignment The desired alignment: 1, 2, 4, 8 or 16. +*/ +template +struct my_aligned_storage +{ + union + { + char data[size]; + my_alignment_imp align; + }; +}; + +#endif /* __cplusplus */ + +/* + Disable MY_ATTRIBUTE for Sun Studio and Visual Studio. + Note that Sun Studio supports some __attribute__ variants, + but not format or unused which we use quite a lot. +*/ +#ifndef MY_ATTRIBUTE +#if defined(__GNUC__) +# define MY_ATTRIBUTE(A) __attribute__(A) +#else +# define MY_ATTRIBUTE(A) +#endif +#endif + +#ifndef __has_attribute +# define __has_attribute(x) 0 +#endif + +#if __has_attribute(no_sanitize_undefined) +# define SUPPRESS_UBSAN __attribute__((no_sanitize_undefined)) +#else +# define SUPPRESS_UBSAN +#endif + +#endif /* MY_COMPILER_INCLUDED */ diff --git a/mysql/my_config.h b/mysql/my_config.h new file mode 100644 index 0000000..591680e --- /dev/null +++ b/mysql/my_config.h @@ -0,0 +1,348 @@ +/* file : mysql/my_config.h -*- C -*- + * copyright : Copyright (c) 2016-2017 Code Synthesis Ltd + * license : GPLv2 with FOSS License Exception; see accompanying COPYING file + */ + +#ifndef MYSQL_MY_CONFIG_H +#define MYSQL_MY_CONFIG_H + +/* + * For the semantics of the following macros refer to + * mysql/config.h.cmake.orig file. + * + * Note that we will explicitly undefine macros that are present in the mariadb + * source code but should not be defined. While this is not technically + * required, it simplifies the change tracking (see README-DEV). As a bonus we + * also make sure that they are not get eventually defined by some system + * headers. + */ + +/* + * The version header defines the following macros: + +#define PROTOCOL_VERSION +#define MYSQL_VERSION_MAJOR +#define MYSQL_VERSION_MINOR +#define MACHINE_TYPE +#define SYSTEM_TYPE +#define DEFAULT_BASEDIR "/usr/local/mysql" +#define DEFAULT_CHARSET_HOME "/usr/local/mysql" +#define PLUGINDIR "/usr/local/mysql/lib/plugin" +#define SHAREDIR "/usr/local/mysql/share" + + * Keep all the macros listed (in this exact form) for the change tracking + * (see README-DEV). + */ +#include + +#define PACKAGE_VERSION MYSQL_SERVER_VERSION +#define VERSION MYSQL_SERVER_VERSION + +/* + * Endianess. + */ +#ifdef FreeBSD_ +# include /* BYTE_ORDER */ +#else +# if defined(_WIN32) +# ifndef BYTE_ORDER +# define BIG_ENDIAN 4321 +# define LITTLE_ENDIAN 1234 +# define BYTE_ORDER LITTLE_ENDIAN +# endif +# else +# include /* BYTE_ORDER/__BYTE_ORDER */ +# ifndef BYTE_ORDER +# ifdef __BYTE_ORDER +# define BYTE_ORDER __BYTE_ORDER +# define BIG_ENDIAN __BIG_ENDIAN +# define LITTLE_ENDIAN __LITTLE_ENDIAN +# else +# error no BYTE_ORDER/__BYTE_ORDER define +# endif +# endif +# endif +#endif + +#if BYTE_ORDER == BIG_ENDIAN +# define WORDS_BIGENDIAN 1 +#endif + +/* + * Types and type sizes. + */ +#ifndef _WIN32 +# define SIZEOF_VOIDP __SIZEOF_POINTER__ +# define SIZEOF_CHARP __SIZEOF_POINTER__ +# define SIZEOF_INT __SIZEOF_INT__ +# define SIZEOF_LONG __SIZEOF_LONG__ +# define SIZEOF_LONG_LONG __SIZEOF_LONG_LONG__ + +/* + * Is always 8 bytes, thanks to the -D_FILE_OFFSET_BITS=64 preprocessor option + * passed (see buildfile). We also check this at the compile time using + * _Static_assert() (see mysql/libmysql/assert.c). + */ +# define SIZEOF_OFF_T 8 + +/* + * There is no way to exactly tell the time_t type size at the preprocessing + * time, so we define it as the most probable one. We check this assumption + * at the compile time using _Static_assert() (see mysql/libmysql/assert.c). + */ +# define SIZEOF_TIME_T __SIZEOF_LONG__ +#else +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 4 +# ifdef _WIN64 +# define SIZEOF_VOIDP 8 +# define SIZEOF_TIME_T 8 +# else +# define SIZEOF_VOIDP 4 +# define SIZEOF_TIME_T 8 +# endif +# define SIZEOF_CHARP SIZEOF_VOIDP +#endif + +#define HAVE_STRUCT_TIMESPEC + +/* + * Hard to even find any records of these types. + */ +#undef HAVE_UINT +#undef HAVE_ULONG + +/* + * Usage of libc++. + */ +#ifdef _LIBCPP_VERSION +# define HAVE_LLVM_LIBCPP 1 +#endif + +/* + * Specific for Linux. + */ +#ifdef __linux__ +# define HAVE_MMAP64 1 +# define HAVE_POSIX_TIMERS 1 + +/* + * Irrelevant for the client. + */ +# undef HAVE_LINUX_LARGE_PAGES +#endif + +/* + * Specific for FreeBSD. + */ +#ifdef __FreeBSD__ +# define HAVE_IEEEFP_H 1 +#endif + +/* + * Specific for FreeBSD and Linux. + */ +#if defined(__FreeBSD__) || defined(__linux__) +# define HAVE_CLOCK_GETTIME 1 +# define HAVE_CUSERID 1 +# define HAVE_SIGEV_THREAD_ID 1 +# define HAVE_DECL_FDATASYNC 1 +#endif + +/* + * Specific for FreeBSD and Mac OS. + */ +#if defined(__FreeBSD__) || defined(__APPLE__) +# define FIONREAD_IN_SYS_FILIO 1 +# define HAVE_KQUEUE_TIMERS 1 +# define HAVE_SOCKADDR_IN_SIN_LEN 1 +# define HAVE_SOCKADDR_IN6_SIN6_LEN 1 +#endif + +/* + * Specific for POSIX. + */ +#ifndef _WIN32 +# define HAVE_DLFCN_H 1 +# define HAVE_LANGINFO_H 1 +# define HAVE_POLL_H 1 +# define HAVE_POLL 1 +# define HAVE_PWD_H 1 +# define HAVE_SYS_IOCTL_H 1 +# define HAVE_SYS_MMAN_H 1 +# define HAVE_SYS_RESOURCE_H 1 +# define HAVE_SYS_SELECT_H 1 +# define HAVE_SYS_SOCKET_H 1 +# define HAVE_TERMIOS_H 1 +# define HAVE_UNISTD_H 1 +# define HAVE_SYS_UN_H 1 +# define HAVE_BACKTRACE 1 +# define HAVE_FTRUNCATE 1 +# define HAVE_DLOPEN 1 +# define HAVE_FCNTL 1 +# define HAVE_FDATASYNC 1 +# define HAVE_FSEEKO 1 +# define HAVE_FSYNC 1 +# define HAVE_GETPASS 1 +# define HAVE_GETPWNAM 1 +# define HAVE_GETPWUID 1 +# define HAVE_GETRLIMIT 1 +# define HAVE_GETRUSAGE 1 +# define HAVE_LSTAT 1 +# define HAVE_READLINK 1 +# define HAVE_REALPATH 1 +# define HAVE_STPCPY 1 +# define HAVE_STPNCPY 1 +# define HAVE_NL_LANGINFO 1 +# define HAVE_SYS_TIME_H 1 +# define HAVE_SYS_TIMES_H 1 +# define HAVE_TIMES 1 +# define HAVE_GETTIMEOFDAY 1 +# define FIONREAD_IN_SYS_IOCTL 1 +# define TIME_WITH_SYS_TIME 1 +# define DEFAULT_TMPDIR P_tmpdir + +/* + * Not POSIX but are present on Linux and BSDs. + */ +# define HAVE_EXECINFO_H 1 + +/* + * Support for tagging symbols with __attribute__((visibility("hidden"))) + */ +# define HAVE_VISIBILITY_HIDDEN 1 + +/* + * Compiler builtins. + */ +# define HAVE_BUILTIN_UNREACHABLE 1 +# define HAVE_BUILTIN_EXPECT 1 +# define HAVE_BUILTIN_STPCPY 1 +# define HAVE_GCC_ATOMIC_BUILTINS 1 +# define HAVE_GCC_SYNC_BUILTINS 1 + +/* + * Specific for Windows. + */ +#else +# define WITH_PERFSCHEMA_STORAGE_ENGINE 1 +# define HAVE_TELL 1 +# define DEFAULT_TMPDIR "" +#endif + +/* + * Common for all supported OSes/compilers. + */ +#define HAVE_COMPRESS 1 +#define HAVE_STRNLEN 1 +#define HAVE_ISINF 1 +#define HAVE_IPV6 1 +#define MAX_INDEXES 64U + +/* + * Collations are added for the enabled character sets. + */ +#define MYSQL_DEFAULT_CHARSET_NAME "latin1" +#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" +#define HAVE_CHARSET_armscii8 1 +#define HAVE_CHARSET_ascii 1 +#define HAVE_CHARSET_big5 1 +#define HAVE_CHARSET_cp1250 1 +#define HAVE_CHARSET_cp1251 1 +#define HAVE_CHARSET_cp1256 1 +#define HAVE_CHARSET_cp1257 1 +#define HAVE_CHARSET_cp850 1 +#define HAVE_CHARSET_cp852 1 +#define HAVE_CHARSET_cp866 1 +#define HAVE_CHARSET_cp932 1 +#define HAVE_CHARSET_dec8 1 +#define HAVE_CHARSET_eucjpms 1 +#define HAVE_CHARSET_euckr 1 +#define HAVE_CHARSET_gb18030 1 +#define HAVE_CHARSET_gb2312 1 +#define HAVE_CHARSET_gbk 1 +#define HAVE_CHARSET_geostd8 1 +#define HAVE_CHARSET_greek 1 +#define HAVE_CHARSET_hebrew 1 +#define HAVE_CHARSET_hp8 1 +#define HAVE_CHARSET_keybcs2 1 +#define HAVE_CHARSET_koi8r 1 +#define HAVE_CHARSET_koi8u 1 +#define HAVE_CHARSET_latin1 1 +#define HAVE_CHARSET_latin2 1 +#define HAVE_CHARSET_latin5 1 +#define HAVE_CHARSET_latin7 1 +#define HAVE_CHARSET_macce 1 +#define HAVE_CHARSET_macroman 1 +#define HAVE_CHARSET_sjis 1 +#define HAVE_CHARSET_swe7 1 +#define HAVE_CHARSET_tis620 1 +#define HAVE_CHARSET_ucs2 1 +#define HAVE_CHARSET_ujis 1 +#define HAVE_CHARSET_utf16 1 +#define HAVE_CHARSET_utf32 1 +#define HAVE_CHARSET_utf8 1 +#define HAVE_CHARSET_utf8mb4 1 +#define HAVE_UCA_COLLATIONS 1 + +#undef DISABLE_PSI_THREAD +#undef DISABLE_PSI_MUTEX +#undef DISABLE_PSI_RWLOCK +#undef DISABLE_PSI_COND +#undef DISABLE_PSI_FILE +#undef DISABLE_PSI_TABLE +#undef DISABLE_PSI_SOCKET +#undef DISABLE_PSI_STAGE +#undef DISABLE_PSI_STATEMENT +#undef DISABLE_PSI_SP +#undef DISABLE_PSI_PS +#undef DISABLE_PSI_IDLE +#undef DISABLE_PSI_STATEMENT_DIGEST +#undef DISABLE_PSI_METADATA +#undef DISABLE_PSI_MEMORY +#undef DISABLE_PSI_TRANSACTION + +/* + * Obsolete headers and functions. + */ +#undef HAVE_TERMIO_H + +/* + * Specific for unsupported OSes (Solaris, SunOS, HP-UX...). + */ +#undef HAVE_PRINTSTACK +#undef HAVE_GETHRTIME +#undef HAVE_GETPASSPHRASE +#undef HAVE_SIGEV_PORT +#undef HAVE_SOLARIS_ATOMIC + +/* + * The upstream package undefines it for all supported compilers. + */ +#undef HAVE_ABI_CXA_DEMANGLE + +/* + * The upstream package defines it only for MacOS. Let's disable tracing for it + * as well. + */ +#undef HAVE_DTRACE + +/* + * We don't assume any instrumentation. + */ +#undef HAVE_VALGRIND +#undef HAVE_ASAN + +/* + * Usage of alloca() is discouraged on Linux and BSDs, so let's not use it. + */ +#undef HAVE_ALLOCA_H + +#undef ss_family +#undef ENABLED_LOCAL_INFILE +#undef WITH_NDBCLUSTER_STORAGE_ENGINE +#undef EXTRA_DEBUG + +#endif // MYSQL_MY_CONFIG_H diff --git a/mysql/my_dbug.h b/mysql/my_dbug.h new file mode 100644 index 0000000..2af2e66 --- /dev/null +++ b/mysql/my_dbug.h @@ -0,0 +1,245 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_DBUG_INCLUDED +#define MY_DBUG_INCLUDED + +#include "my_global.h" /* MYSQL_PLUGIN_IMPORT */ + +#ifdef __cplusplus +extern "C" { +#endif +#if !defined(DBUG_OFF) + +struct _db_stack_frame_ { + const char *func; /* function name of the previous stack frame */ + const char *file; /* filename of the function of previous frame */ + uint level; /* this nesting level, highest bit enables tracing */ + struct _db_stack_frame_ *prev; /* pointer to the previous frame */ +}; + +struct _db_code_state_; +extern MYSQL_PLUGIN_IMPORT my_bool _dbug_on_; +extern my_bool _db_keyword_(struct _db_code_state_ *, const char *, int); +extern int _db_explain_(struct _db_code_state_ *cs, char *buf, size_t len); +extern int _db_explain_init_(char *buf, size_t len); +extern int _db_is_pushed_(void); +extern void _db_setjmp_(void); +extern void _db_longjmp_(void); +extern void _db_process_(const char *name); +extern void _db_push_(const char *control); +extern void _db_pop_(void); +extern void _db_set_(const char *control); +extern void _db_set_init_(const char *control); +extern void _db_enter_(const char *_func_, const char *_file_, uint _line_, + struct _db_stack_frame_ *_stack_frame_); +extern void _db_return_(uint _line_, struct _db_stack_frame_ *_stack_frame_); +extern void _db_pargs_(uint _line_,const char *keyword); +extern int _db_enabled_(); +extern void _db_doprnt_(const char *format,...) + MY_ATTRIBUTE((format(printf, 1, 2))); +extern void _db_doputs_(const char *log); +extern void _db_dump_(uint _line_,const char *keyword, + const unsigned char *memory, size_t length); +extern void _db_end_(void); +extern void _db_lock_file_(void); +extern void _db_unlock_file_(void); +extern FILE *_db_fp_(void); +extern void _db_flush_(); +extern const char* _db_get_func_(void); + +#define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_; \ + _db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_) +#define DBUG_LEAVE _db_return_ (__LINE__, &_db_stack_frame_) +#define DBUG_RETURN(a1) do {DBUG_LEAVE; return(a1);} while(0) +#define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0) +#define DBUG_EXECUTE(keyword,a1) \ + do {if (_db_keyword_(0, (keyword), 0)) { a1 }} while(0) +#define DBUG_EXECUTE_IF(keyword,a1) \ + do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0) +#define DBUG_EVALUATE(keyword,a1,a2) \ + (_db_keyword_(0,(keyword), 0) ? (a1) : (a2)) +#define DBUG_EVALUATE_IF(keyword,a1,a2) \ + (_db_keyword_(0,(keyword), 1) ? (a1) : (a2)) +#define DBUG_PRINT(keyword,arglist) \ + do \ + { \ + if (_dbug_on_) \ + { \ + _db_pargs_(__LINE__,keyword); \ + if (_db_enabled_()) \ + { \ + _db_doprnt_ arglist; \ + } \ + } \ + } while(0) + +/* + An alternate to DBUG_PRINT() macro, which takes a single string + as the second argument. +*/ +#define DBUG_PUTS(keyword,arg) \ + do \ + { \ + if (_dbug_on_) \ + { \ + _db_pargs_(__LINE__,keyword); \ + if (_db_enabled_()) \ + { \ + _db_doputs_(arg); \ + } \ + } \ + } while(0) + +#define DBUG_PUSH(a1) _db_push_ (a1) +#define DBUG_POP() _db_pop_ () +#define DBUG_SET(a1) _db_set_ (a1) +#define DBUG_SET_INITIAL(a1) _db_set_init_ (a1) +#define DBUG_PROCESS(a1) _db_process_(a1) +#define DBUG_FILE _db_fp_() +#define DBUG_SETJMP(a1) (_db_setjmp_ (), setjmp (a1)) +#define DBUG_LONGJMP(a1,a2) (_db_longjmp_ (), longjmp (a1, a2)) +#define DBUG_DUMP(keyword,a1,a2) _db_dump_(__LINE__,keyword,a1,a2) +#define DBUG_END() _db_end_ () +#define DBUG_LOCK_FILE _db_lock_file_() +#define DBUG_UNLOCK_FILE _db_unlock_file_() +#define DBUG_ASSERT(A) assert(A) +#define DBUG_EXPLAIN(buf,len) _db_explain_(0, (buf),(len)) +#define DBUG_EXPLAIN_INITIAL(buf,len) _db_explain_init_((buf),(len)) +#define DEBUGGER_OFF do { _dbug_on_= 0; } while(0) +#define DEBUGGER_ON do { _dbug_on_= 1; } while(0) +#ifndef _WIN32 +#define DBUG_ABORT() (_db_flush_(), abort()) +#else +/* + Avoid popup with abort/retry/ignore buttons. When BUG#31745 is fixed we can + call abort() instead of _exit(2) (now it would cause a "test signal" popup). +*/ +#include +#define DBUG_ABORT() (_db_flush_(),\ + (void)_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE),\ + (void)_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR),\ + _exit(2)) +#endif +#define DBUG_CHECK_CRASH(func, op) \ + do { char _dbuf_[255]; strxnmov(_dbuf_, sizeof(_dbuf_)-1, (func), (op)); \ + DBUG_EXECUTE_IF(_dbuf_, DBUG_ABORT()); } while(0) +#define DBUG_CRASH_ENTER(func) \ + DBUG_ENTER(func); DBUG_CHECK_CRASH(func, "_crash_enter") +#define DBUG_CRASH_RETURN(val) \ + DBUG_CHECK_CRASH(_db_get_func_(), "_crash_return") +#define DBUG_CRASH_VOID_RETURN \ + DBUG_CHECK_CRASH (_db_get_func_(), "_crash_return") + +/* + Make the program fail, without creating a core file. + abort() will send SIGABRT which (most likely) generates core. + Use SIGKILL instead, which cannot be caught. + We also pause the current thread, until the signal is actually delivered. + An alternative would be to use _exit(EXIT_FAILURE), + but then valgrind would report lots of memory leaks. + */ +#ifdef _WIN32 +#define DBUG_SUICIDE() DBUG_ABORT() +#else +extern void _db_suicide_(); +extern void _db_flush_gcov_(); +#define DBUG_SUICIDE() (_db_flush_(), _db_suicide_()) +#endif + +#else /* No debugger */ + +#define DBUG_ENTER(a1) +#define DBUG_LEAVE +#define DBUG_RETURN(a1) do { return(a1); } while(0) +#define DBUG_VOID_RETURN do { return; } while(0) +#define DBUG_EXECUTE(keyword,a1) do { } while(0) +#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0) +#define DBUG_EVALUATE(keyword,a1,a2) (a2) +#define DBUG_EVALUATE_IF(keyword,a1,a2) (a2) +#define DBUG_PRINT(keyword,arglist) do { } while(0) +#define DBUG_PUTS(keyword,arg) do { } while(0) +#define DBUG_LOG(keyword,arglist) do { } while(0) +#define DBUG_PUSH(a1) do { } while(0) +#define DBUG_SET(a1) do { } while(0) +#define DBUG_SET_INITIAL(a1) do { } while(0) +#define DBUG_POP() do { } while(0) +#define DBUG_PROCESS(a1) do { } while(0) +#define DBUG_SETJMP(a1) setjmp(a1) +#define DBUG_LONGJMP(a1) longjmp(a1) +#define DBUG_DUMP(keyword,a1,a2) do { } while(0) +#define DBUG_END() do { } while(0) +#define DBUG_ASSERT(A) do { } while(0) +#define DBUG_LOCK_FILE do { } while(0) +#define DBUG_FILE (stderr) +#define DBUG_UNLOCK_FILE do { } while(0) +#define DBUG_EXPLAIN(buf,len) +#define DBUG_EXPLAIN_INITIAL(buf,len) +#define DEBUGGER_OFF do { } while(0) +#define DEBUGGER_ON do { } while(0) +#define DBUG_ABORT() do { } while(0) +#define DBUG_CRASH_ENTER(func) +#define DBUG_CRASH_RETURN(val) do { return(val); } while(0) +#define DBUG_CRASH_VOID_RETURN do { return; } while(0) +#define DBUG_SUICIDE() do { } while(0) + +#endif + +#ifdef EXTRA_DEBUG +/** + Sync points allow us to force the server to reach a certain line of code + and block there until the client tells the server it is ok to go on. + The client tells the server to block with SELECT GET_LOCK() + and unblocks it with SELECT RELEASE_LOCK(). Used for debugging difficult + concurrency problems +*/ +#define DBUG_SYNC_POINT(lock_name,lock_timeout) \ + debug_sync_point(lock_name,lock_timeout) +void debug_sync_point(const char* lock_name, uint lock_timeout); +#else +#define DBUG_SYNC_POINT(lock_name,lock_timeout) +#endif /* EXTRA_DEBUG */ + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +#if !defined(DBUG_OFF) +#include + +/* + A C++ interface to the DBUG_PUTS macro. The DBUG_LOG macro also + takes two arguments. The first argument is the keyword, as that of the + DBUG_PRINT. The 2nd argument 'v' will be passed to a C++ output stream. + This enables the use of C++ style output stream operator. In the code, it + will be used as follows: + + DBUG_LOG("blob", "space: " << space_id); + + Note: DBUG_PRINT() has a limitation of 1024 bytes for a single + print out. This limitation is not there for DBUG_PUTS and DBUG_LOG + macros. +*/ + +#define DBUG_LOG(keyword, v) do { \ + std::ostringstream sout; \ + sout << v; \ + DBUG_PUTS(keyword, sout.str().c_str()); \ +} while(0) +#endif /* DBUG_OFF */ +#endif /* __cplusplus */ + +#endif /* MY_DBUG_INCLUDED */ diff --git a/mysql/my_default.h b/mysql/my_default.h new file mode 100644 index 0000000..66d6d91 --- /dev/null +++ b/mysql/my_default.h @@ -0,0 +1,55 @@ +/* Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_DEFAULT_INCLUDED +#define MY_DEFAULT_INCLUDED + + +#include "my_global.h" + +C_MODE_START + +extern const char *my_defaults_extra_file; +extern const char *my_defaults_group_suffix; +extern const char *my_defaults_file; +extern my_bool my_getopt_use_args_separator; +extern my_bool my_defaults_read_login_file; + +/* Define the type of function to be passed to process_default_option_files */ +typedef int (*Process_option_func)(void *ctx, const char *group_name, + const char *option); + +my_bool my_getopt_is_args_separator(const char* arg); +int get_defaults_options(int argc, char **argv, + char **defaults, char **extra_defaults, + char **group_suffix, char **login_path, + my_bool found_no_defaults); +int my_load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv, const char ***); +int check_file_permissions(const char *file_name, my_bool is_login_file); +int load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv); +int my_search_option_files(const char *conf_file, int *argc, + char ***argv, uint *args_used, + Process_option_func func, void *func_ctx, + const char **default_directories, + my_bool is_login_file, my_bool found_no_defaults); +void free_defaults(char **argv); +void my_print_default_files(const char *conf_file); +void print_defaults(const char *conf_file, const char **groups); + +C_MODE_END + +#endif // MY_DEFAULT_INCLUDED diff --git a/mysql/my_dir.h b/mysql/my_dir.h new file mode 100644 index 0000000..0b512cd --- /dev/null +++ b/mysql/my_dir.h @@ -0,0 +1,93 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_DIR_H +#define MY_DIR_H + +#include "my_global.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + /* Defines for my_dir and my_stat */ + +#ifdef _WIN32 +#define S_IROTH _S_IREAD +#define S_IFIFO _S_IFIFO +#endif + +#define MY_S_IFMT S_IFMT /* type of file */ +#define MY_S_IFDIR S_IFDIR /* directory */ +#define MY_S_IFCHR S_IFCHR /* character special */ +#define MY_S_IFBLK S_IFBLK /* block special */ +#define MY_S_IFREG S_IFREG /* regular */ +#define MY_S_IFIFO S_IFIFO /* fifo */ +#define MY_S_ISUID S_ISUID /* set user id on execution */ +#define MY_S_ISGID S_ISGID /* set group id on execution */ +#define MY_S_ISVTX S_ISVTX /* save swapped text even after use */ +#define MY_S_IREAD S_IREAD /* read permission, owner */ +#define MY_S_IWRITE S_IWRITE /* write permission, owner */ +#define MY_S_IEXEC S_IEXEC /* execute/search permission, owner */ + +#define MY_S_ISDIR(m) (((m) & MY_S_IFMT) == MY_S_IFDIR) +#define MY_S_ISCHR(m) (((m) & MY_S_IFMT) == MY_S_IFCHR) +#define MY_S_ISBLK(m) (((m) & MY_S_IFMT) == MY_S_IFBLK) +#define MY_S_ISREG(m) (((m) & MY_S_IFMT) == MY_S_IFREG) +#define MY_S_ISFIFO(m) (((m) & MY_S_IFMT) == MY_S_IFIFO) + +#define MY_DONT_SORT 512 /* my_lib; Don't sort files */ +#define MY_WANT_STAT 1024 /* my_lib; stat files */ + + /* typedefs for my_dir & my_stat */ + +#if(_MSC_VER) +#define MY_STAT struct _stati64 /* 64 bit file size */ +#else +#define MY_STAT struct stat /* Orginal struct have what we need */ +#endif + +/* Struct describing one file returned from my_dir */ +typedef struct fileinfo +{ + char *name; + MY_STAT *mystat; +} FILEINFO; + +typedef struct st_my_dir /* Struct returned from my_dir */ +{ + /* + These members are just copies of parts of DYNAMIC_ARRAY structure, + which is allocated right after the end of MY_DIR structure (MEM_ROOT + for storing names is also resides there). We've left them here because + we don't want to change code that uses my_dir. + */ + struct fileinfo *dir_entry; + uint number_off_files; +} MY_DIR; + +extern MY_DIR *my_dir(const char *path,myf MyFlags); +extern void my_dirend(MY_DIR *buffer); +extern MY_STAT *my_stat(const char *path, MY_STAT *stat_area, myf my_flags); +extern int my_fstat(int filenr, MY_STAT *stat_area, myf MyFlags); + +#ifdef __cplusplus +} +#endif + +#endif /* MY_DIR_H */ + diff --git a/mysql/my_getopt.h b/mysql/my_getopt.h new file mode 100644 index 0000000..7908297 --- /dev/null +++ b/mysql/my_getopt.h @@ -0,0 +1,149 @@ + /* + Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _my_getopt_h +#define _my_getopt_h + +#include "my_sys.h" /* loglevel */ + +C_MODE_START + +#define GET_NO_ARG 1 +#define GET_BOOL 2 +#define GET_INT 3 +#define GET_UINT 4 +#define GET_LONG 5 +#define GET_ULONG 6 +#define GET_LL 7 +#define GET_ULL 8 +#define GET_STR 9 +#define GET_STR_ALLOC 10 +#define GET_DISABLED 11 +#define GET_ENUM 12 +#define GET_SET 13 +#define GET_DOUBLE 14 +#define GET_FLAGSET 15 +#define GET_PASSWORD 16 + +#if SIZEOF_INT == 4 +#define GET_INT32 GET_INT +#define GET_UINT32 GET_UINT +#elif SIZEOF_LONG == 4 +#define GET_INT32 GET_LONG +#define GET_UINT32 GET_ULONG +#else +#error Neither int or long is of 4 bytes width +#endif + +#define GET_ASK_ADDR 128 +#define GET_TYPE_MASK 127 + +/** + Enumeration of the my_option::arg_type attributes. + It should be noted that for historical reasons variables with the combination + arg_type=NO_ARG, my_option::var_type=GET_BOOL still accepts + arguments. This is someone counter intuitive and care should be taken + if the code is refactored. +*/ +enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG }; + +struct st_typelib; + +struct my_option +{ + const char *name; /**< Name of the option. name=NULL + marks the end of the my_option[] + array. + */ + int id; /**< For 0255 no short option + is created, but a long option still + can be identified uniquely in the + my_get_one_option() callback. + If an opton needs neither special + treatment in the my_get_one_option() + nor one-letter short equivalent + use id=0. + id=-1 is a special case and is used + to generate deprecation warnings for + plugin options. It should not be + used for anything else. + */ + const char *comment; /**< option comment, for autom. --help. + if it's NULL the option is not + visible in --help. + */ + void *value; /**< A pointer to the variable value */ + void *u_max_value; /**< The user def. max variable value */ + struct st_typelib *typelib; /**< Pointer to possible values */ + ulong var_type; /**< GET_BOOL, GET_ULL, etc */ + enum get_opt_arg_type arg_type; /**< e.g. REQUIRED_ARG or OPT_ARG */ + longlong def_value; /**< Default value */ + longlong min_value; /**< Min allowed value (for numbers) */ + ulonglong max_value; /**< Max allowed value (for numbers) */ + longlong sub_size; /**< Unused */ + long block_size; /**< Value should be a mult. of this (for numbers) */ + void *app_type; /**< To be used by an application */ +}; + + +typedef my_bool (*my_get_one_option)(int, const struct my_option *, char *); +/** + Used to retrieve a reference to the object (variable) that holds the value + for the given option. For example, if var_type is GET_UINT, the function + must return a pointer to a variable of type uint. A argument is stored in + the location pointed to by the returned pointer. +*/ +typedef void *(*my_getopt_value)(const char *, size_t, const struct my_option *, + int *); + + +extern char *disabled_my_option; +extern my_bool my_getopt_print_errors; +extern my_bool my_getopt_skip_unknown; +extern my_error_reporter my_getopt_error_reporter; + +extern int handle_options (int *argc, char ***argv, + const struct my_option *longopts, my_get_one_option); +extern int my_handle_options (int *argc, char ***argv, + const struct my_option *longopts, + my_get_one_option, + const char **command_list, my_bool ignore_unknown_option); +extern void print_cmdline_password_warning(); +extern void my_cleanup_options(const struct my_option *options); +extern void my_cleanup_options(const struct my_option *options); +extern void my_print_help(const struct my_option *options); +extern void my_print_variables(const struct my_option *options); +extern void my_print_variables_ex(const struct my_option *options, FILE* file); +extern void my_getopt_register_get_addr(my_getopt_value); + +ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp, + my_bool *fix); +longlong getopt_ll_limit_value(longlong, const struct my_option *, + my_bool *fix); +double getopt_double_limit_value(double num, const struct my_option *optp, + my_bool *fix); +my_bool getopt_compare_strings(const char *s, const char *t, uint length); +ulonglong max_of_int_range(int var_type); + +ulonglong getopt_double2ulonglong(double); +double getopt_ulonglong2double(ulonglong); + +C_MODE_END + +#endif /* _my_getopt_h */ + diff --git a/mysql/my_global.h b/mysql/my_global.h new file mode 100644 index 0000000..ea127a8 --- /dev/null +++ b/mysql/my_global.h @@ -0,0 +1,792 @@ +/* + Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_GLOBAL_INCLUDED +#define MY_GLOBAL_INCLUDED + +/* + This include file should be included first in every header file. + + This makes sure my_config.h is included to get platform specific + symbols defined and it makes sure a lot of platform/compiler + differences are mitigated. +*/ + +#include "my_config.h" + +#define __STDC_LIMIT_MACROS /* Enable C99 limit macros */ +#define __STDC_FORMAT_MACROS /* Enable C99 printf format macros */ +#define _USE_MATH_DEFINES /* Get access to M_PI, M_E, etc. in math.h */ + +#ifdef _WIN32 +/* Include common headers.*/ +# include +# include /* SOCKET */ +# include /* access(), chmod() */ +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* Recommended by debian */ +#include + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#if !defined(_WIN32) +#include +#endif +#ifdef MY_MSCRT_DEBUG +#include +#endif + +/* + A lot of our programs uses asserts, so better to always include it + This also fixes a problem when people uses DBUG_ASSERT without including + assert.h +*/ +#include + +/* Include standard definitions of operator new and delete. */ +#ifdef __cplusplus +# include +#endif + +#include "my_compiler.h" + + +/* + InnoDB depends on some MySQL internals which other plugins should not + need. This is because of InnoDB's foreign key support, "safe" binlog + truncation, and other similar legacy features. + + We define accessors for these internals unconditionally, but do not + expose them in mysql/plugin.h. They are declared in ha_innodb.h for + InnoDB's use. +*/ +#define INNODB_COMPATIBILITY_HOOKS + +/* Macros to make switching between C and C++ mode easier */ +#ifdef __cplusplus +#define C_MODE_START extern "C" { +#define C_MODE_END } +#else +#define C_MODE_START +#define C_MODE_END +#endif + +#ifdef WITH_PERFSCHEMA_STORAGE_ENGINE +#define HAVE_PSI_INTERFACE +#endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */ + +/* Make it easier to add conditional code in _expressions_ */ +#ifdef _WIN32 +#define IF_WIN(A,B) A +#else +#define IF_WIN(A,B) B +#endif + +#if defined (_WIN32) +/* + off_t is 32 bit long. We do not use C runtime functions + with off_t but native Win32 file IO APIs, that work with + 64 bit offsets. +*/ +#undef SIZEOF_OFF_T +#define SIZEOF_OFF_T 8 + +static inline void sleep(unsigned long seconds) +{ + Sleep(seconds * 1000); +} + +/* Define missing access() modes. */ +#define F_OK 0 +#define W_OK 2 +#define R_OK 4 /* Test for read permission. */ + +/* Define missing file locking constants. */ +#define F_RDLCK 1 +#define F_WRLCK 2 +#define F_UNLCK 3 +#define F_TO_EOF 0x3FFFFFFF + +#define O_NONBLOCK 1 /* For emulation of fcntl() */ + +/* + SHUT_RDWR is called SD_BOTH in windows and + is defined to 2 in winsock2.h + #define SD_BOTH 0x02 +*/ +#define SHUT_RDWR 0x02 + +/* Shared memory and named pipe connections are supported. */ +#define shared_memory_buffer_length 16000 +#define default_shared_memory_base_name "MYSQL" +#endif /* _WIN32*/ + +/** + Cast a member of a structure to the structure that contains it. + + @param ptr Pointer to the member. + @param type Type of the structure that contains the member. + @param member Name of the member within the structure. +*/ +#define my_container_of(ptr, type, member) \ + ((type *)((char *)ptr - offsetof(type, member))) + +/* an assert that works at compile-time. only for constant expression */ +#define compile_time_assert(X) \ + do \ + { \ + typedef char compile_time_assert[(X) ? 1 : -1] MY_ATTRIBUTE((unused)); \ + } while(0) + +#define QUOTE_ARG(x) #x /* Quote argument (before cpp) */ +#define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */ + +#ifdef _WIN32 +#define SO_EXT ".dll" +#elif defined(__APPLE__) +#define SO_EXT ".dylib" +#else +#define SO_EXT ".so" +#endif + +#if !defined(HAVE_UINT) +typedef unsigned int uint; +typedef unsigned short ushort; +#endif + +#define swap_variables(t, a, b) { t dummy; dummy= a; a= b; b= dummy; } +#define MY_TEST(a) ((a) ? 1 : 0) +#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0) +#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0) +#define test_all_bits(a,b) (((a) & (b)) == (b)) +#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0]))) + +/* Define some general constants */ +#ifndef TRUE +#define TRUE (1) /* Logical true */ +#define FALSE (0) /* Logical false */ +#endif + +/* Some types that is different between systems */ + +typedef int File; /* File descriptor */ +#ifdef _WIN32 +typedef SOCKET my_socket; +#else +typedef int my_socket; /* File descriptor for sockets */ +#define INVALID_SOCKET -1 +#endif +C_MODE_START +typedef void (*sig_return)();/* Returns type from signal */ +C_MODE_END +#if defined(__GNUC__) +typedef char pchar; /* Mixed prototypes can take char */ +typedef char pbool; /* Mixed prototypes can take char */ +#else +typedef int pchar; /* Mixed prototypes can't take char */ +typedef int pbool; /* Mixed prototypes can't take char */ +#endif +C_MODE_START +typedef int (*qsort_cmp)(const void *,const void *); +typedef int (*qsort_cmp2)(const void*, const void *,const void *); +C_MODE_END +#ifdef _WIN32 +typedef int socket_len_t; +typedef int sigset_t; +typedef int mode_t; +typedef SSIZE_T ssize_t; +#else +typedef socklen_t socket_len_t; +#endif +typedef socket_len_t SOCKET_SIZE_TYPE; /* Used by NDB */ + +/* file create flags */ + +#ifndef O_SHARE /* Probably not windows */ +#define O_SHARE 0 /* Flag to my_open for shared files */ +#ifndef O_BINARY +#define O_BINARY 0 /* Flag to my_open for binary files */ +#endif +#ifndef FILE_BINARY +#define FILE_BINARY O_BINARY /* Flag to my_fopen for binary streams */ +#endif +#ifdef HAVE_FCNTL +#define HAVE_FCNTL_LOCK +#define F_TO_EOF 0L /* Param to lockf() to lock rest of file */ +#endif +#endif /* O_SHARE */ + +#ifndef O_TEMPORARY +#define O_TEMPORARY 0 +#endif +#ifndef O_SHORT_LIVED +#define O_SHORT_LIVED 0 +#endif +#ifndef O_NOFOLLOW +#define O_NOFOLLOW 0 +#endif + +/* additional file share flags for win32 */ +#ifdef _WIN32 +#define _SH_DENYRWD 0x110 /* deny read/write mode & delete */ +#define _SH_DENYWRD 0x120 /* deny write mode & delete */ +#define _SH_DENYRDD 0x130 /* deny read mode & delete */ +#define _SH_DENYDEL 0x140 /* deny delete only */ +#endif /* _WIN32 */ + + +/* General constants */ +#define FN_LEN 256 /* Max file name len */ +#define FN_HEADLEN 253 /* Max length of filepart of file name */ +#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ +#define FN_REFLEN 512 /* Max length of full path-name */ +#define FN_REFLEN_SE 4000 /* Max length of full path-name in SE */ +#define FN_EXTCHAR '.' +#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ +#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ +#define FN_PARENTDIR ".." /* Parent directory; Must be a string */ + +#ifdef _WIN32 +#define FN_LIBCHAR '\\' +#define FN_LIBCHAR2 '/' +#define FN_DIRSEP "/\\" /* Valid directory separators */ +#define FN_EXEEXT ".exe" +#define FN_SOEXT ".dll" +#define FN_ROOTDIR "\\" +#define FN_DEVCHAR ':' +#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */ +#else +#define FN_LIBCHAR '/' +/* + FN_LIBCHAR2 is not defined on !Windows. Use is_directory_separator(). +*/ +#define FN_DIRSEP "/" /* Valid directory separators */ +#define FN_EXEEXT "" +#define FN_SOEXT ".so" +#define FN_ROOTDIR "/" +#endif + +static inline int is_directory_separator(char c) +{ +#ifdef _WIN32 + return c == FN_LIBCHAR || c == FN_LIBCHAR2; +#else + return c == FN_LIBCHAR; +#endif +} + +/* + MY_FILE_MIN is Windows speciality and is used to quickly detect + the mismatch of CRT and mysys file IO usage on Windows at runtime. + CRT file descriptors can be in the range 0-2047, whereas descriptors returned + by my_open() will start with 2048. If a file descriptor with value less then + MY_FILE_MIN is passed to mysys IO function, chances are it stemms from + open()/fileno() and not my_open()/my_fileno. + + For Posix, mysys functions are light wrappers around libc, and MY_FILE_MIN + is logically 0. +*/ + +#ifdef _WIN32 +#define MY_FILE_MIN 2048 +#else +#define MY_FILE_MIN 0 +#endif + +/* + MY_NFILE is the default size of my_file_info array. + + It is larger on Windows, because it all file handles are stored in my_file_info + Default size is 16384 and this should be enough for most cases.If it is not + enough, --max-open-files with larger value can be used. + + For Posix , my_file_info array is only used to store filenames for + error reporting and its size is not a limitation for number of open files. +*/ +#ifdef _WIN32 +#define MY_NFILE (16384 + MY_FILE_MIN) +#else +#define MY_NFILE 64 +#endif + +#define OS_FILE_LIMIT UINT_MAX + +/* + Io buffer size; Must be a power of 2 and a multiple of 512. May be + smaller what the disk page size. This influences the speed of the + isam btree library. eg to big to slow. +*/ +#define IO_SIZE 4096 +/* + How much overhead does malloc have. The code often allocates + something like 1024-MALLOC_OVERHEAD bytes +*/ +#define MALLOC_OVERHEAD 8 + + /* get memory in huncs */ +#define ONCE_ALLOC_INIT (uint) (4096-MALLOC_OVERHEAD) + /* Typical record cash */ +#define RECORD_CACHE_SIZE (uint) (64*1024-MALLOC_OVERHEAD) + /* Typical key cash */ +#define KEY_CACHE_SIZE (uint) (8*1024*1024) + /* Default size of a key cache block */ +#define KEY_CACHE_BLOCK_SIZE (uint) 1024 + + +/* Some defines of functions for portability */ + +#if (_WIN32) +#if !defined(_WIN64) +inline double my_ulonglong2double(unsigned long long value) +{ + long long nr=(long long) value; + if (nr >= 0) + return (double) nr; + return (18446744073709551616.0 + (double) nr); +} +#define ulonglong2double my_ulonglong2double +#define my_off_t2double my_ulonglong2double +#endif /* _WIN64 */ +inline unsigned long long my_double2ulonglong(double d) +{ + double t= d - (double) 0x8000000000000000ULL; + + if (t >= 0) + return ((unsigned long long) t) + 0x8000000000000000ULL; + return (unsigned long long) d; +} +#define double2ulonglong my_double2ulonglong +#endif /* _WIN32 */ + +#ifndef ulonglong2double +#define ulonglong2double(A) ((double) (ulonglong) (A)) +#define my_off_t2double(A) ((double) (my_off_t) (A)) +#endif +#ifndef double2ulonglong +#define double2ulonglong(A) ((ulonglong) (double) (A)) +#endif + +#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL) +#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL +#define INT_MIN32 (~0x7FFFFFFFL) +#define INT_MAX32 0x7FFFFFFFL +#define UINT_MAX32 0xFFFFFFFFL +#define INT_MIN24 (~0x007FFFFF) +#define INT_MAX24 0x007FFFFF +#define UINT_MAX24 0x00FFFFFF +#define INT_MIN16 (~0x7FFF) +#define INT_MAX16 0x7FFF +#define UINT_MAX16 0xFFFF +#define INT_MIN8 (~0x7F) +#define INT_MAX8 0x7F +#define UINT_MAX8 0xFF + +#ifndef SIZE_T_MAX +#define SIZE_T_MAX (~((size_t) 0)) +#endif + +// Our ifdef trickery for my_isfinite does not work with gcc/solaris unless we: +#ifdef HAVE_IEEEFP_H +#include +#endif + +#if (__cplusplus >= 201103L) + /* For C++11 use the new std functions rather than C99 macros. */ + #include + #define my_isfinite(X) std::isfinite(X) + #define my_isnan(X) std::isnan(X) + #define my_isinf(X) std::isinf(X) +#else + #ifdef HAVE_LLVM_LIBCPP /* finite is deprecated in libc++ */ + #define my_isfinite(X) isfinite(X) + #elif defined _WIN32 + #define my_isfinite(X) _finite(X) + #else + #define my_isfinite(X) finite(X) + #endif + #define my_isnan(X) isnan(X) + #ifdef HAVE_ISINF + /* System-provided isinf() is available and safe to use */ + #define my_isinf(X) isinf(X) + #else /* !HAVE_ISINF */ + #define my_isinf(X) (!my_isfinite(X) && !my_isnan(X)) + #endif +#endif /* __cplusplus >= 201103L */ + +/* + Max size that must be added to a so that we know Size to make + adressable obj. +*/ +#if SIZEOF_CHARP == 4 +typedef long my_ptrdiff_t; +#else +typedef long long my_ptrdiff_t; +#endif + +#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1)) +#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double)) +/* Size to make adressable obj. */ +#define ADD_TO_PTR(ptr,size,type) (type) ((uchar*) (ptr)+size) +#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((uchar*) (A) - (uchar*) (B)) + +/* + Custom version of standard offsetof() macro which can be used to get + offsets of members in class for non-POD types (according to the current + version of C++ standard offsetof() macro can't be used in such cases and + attempt to do so causes warnings to be emitted, OTOH in many cases it is + still OK to assume that all instances of the class has the same offsets + for the same members). + + This is temporary solution which should be removed once File_parser class + and related routines are refactored. +*/ + +#define my_offsetof(TYPE, MEMBER) \ + ((size_t)((char *)&(((TYPE *)0x10)->MEMBER) - (char*)0x10)) + +#define NullS (char *) 0 + +#ifdef _WIN32 +#define STDCALL __stdcall +#else +#define STDCALL +#endif + +/* Typdefs for easyier portability */ + +typedef unsigned char uchar; /* Short for unsigned char */ +typedef signed char int8; /* Signed integer >= 8 bits */ +typedef unsigned char uint8; /* Unsigned integer >= 8 bits */ +typedef short int16; +typedef unsigned short uint16; +#if SIZEOF_INT == 4 +typedef int int32; +typedef unsigned int uint32; +#elif SIZEOF_LONG == 4 +typedef long int32; +typedef unsigned long uint32; +#else +#error Neither int or long is of 4 bytes width +#endif + +#if !defined(HAVE_ULONG) +typedef unsigned long ulong; /* Short for unsigned long */ +#endif +/* + Using [unsigned] long long is preferable as [u]longlong because we use + [unsigned] long long unconditionally in many places, + for example in constants with [U]LL suffix. +*/ +typedef unsigned long long int ulonglong; /* ulong or unsigned long long */ +typedef long long int longlong; +typedef longlong int64; +typedef ulonglong uint64; + +#if defined (_WIN32) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif + +#if SIZEOF_CHARP == SIZEOF_INT +typedef int intptr; +#elif SIZEOF_CHARP == SIZEOF_LONG +typedef long intptr; +#elif SIZEOF_CHARP == SIZEOF_LONG_LONG +typedef long long intptr; +#else +#error sizeof(void *) is neither sizeof(int) nor sizeof(long) nor sizeof(long long) +#endif + +#define MY_ERRPTR ((void*)(intptr)1) + +#if defined(_WIN32) +typedef unsigned long long my_off_t; +typedef unsigned long long os_off_t; +#else +typedef off_t os_off_t; +#if SIZEOF_OFF_T > 4 +typedef ulonglong my_off_t; +#else +typedef unsigned long my_off_t; +#endif +#endif /*_WIN32*/ +#define MY_FILEPOS_ERROR (~(my_off_t) 0) + +/* + TODO Convert these to use Bitmap class. + */ +typedef ulonglong table_map; /* Used for table bits in join */ +typedef ulonglong nesting_map; /* Used for flags of nesting constructs */ + +#if defined(_WIN32) +#define socket_errno WSAGetLastError() +#define SOCKET_EINTR WSAEINTR +#define SOCKET_EAGAIN WSAEINPROGRESS +#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK +#define SOCKET_EADDRINUSE WSAEADDRINUSE +#define SOCKET_ETIMEDOUT WSAETIMEDOUT +#define SOCKET_ECONNRESET WSAECONNRESET +#define SOCKET_ENFILE ENFILE +#define SOCKET_EMFILE EMFILE +#else /* Unix */ +#define socket_errno errno +#define closesocket(A) close(A) +#define SOCKET_EINTR EINTR +#define SOCKET_EAGAIN EAGAIN +#define SOCKET_EWOULDBLOCK EWOULDBLOCK +#define SOCKET_EADDRINUSE EADDRINUSE +#define SOCKET_ETIMEDOUT ETIMEDOUT +#define SOCKET_ECONNRESET ECONNRESET +#define SOCKET_ENFILE ENFILE +#define SOCKET_EMFILE EMFILE +#endif + +typedef int myf; /* Type of MyFlags in my_funcs */ +typedef char my_bool; /* Small bool */ + +/* Macros for converting *constants* to the right type */ +#define MYF(v) (myf) (v) + +/* Some helper macros */ +#define YESNO(X) ((X) ? "yes" : "no") + +#define MY_HOW_OFTEN_TO_WRITE 1000 /* How often we want info on screen */ + +#include + +#ifdef HAVE_CHARSET_utf8 +#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8" +#else +#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME +#endif + +#if defined(_WIN32) +#define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name) +#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0) +#define dlclose(lib) FreeLibrary((HMODULE)lib) +#ifndef HAVE_DLOPEN +#define HAVE_DLOPEN +#endif +#define DLERROR_GENERATE(errmsg, error_number) \ + char win_errormsg[2048]; \ + if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, \ + 0, error_number, 0, win_errormsg, 2048, NULL)) \ + { \ + char *ptr; \ + for (ptr= &win_errormsg[0] + strlen(win_errormsg) - 1; \ + ptr >= &win_errormsg[0] && strchr("\r\n\t\0x20", *ptr); \ + ptr--) \ + *ptr= 0; \ + errmsg= win_errormsg; \ + } \ + else \ + errmsg= "" +#define dlerror() "" +#define dlopen_errno GetLastError() + +#else /* _WIN32 */ +#define DLERROR_GENERATE(errmsg, error_number) errmsg= dlerror() +#define dlopen_errno errno +#endif /* _WIN32 */ + +/* Length of decimal number represented by INT32. */ +#define MY_INT32_NUM_DECIMAL_DIGITS 11U + +/* Length of decimal number represented by INT64. */ +#define MY_INT64_NUM_DECIMAL_DIGITS 21U + +/* Define some useful general macros (should be done after all headers). */ +#define MY_MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MY_MIN(a, b) ((a) < (b) ? (a) : (b)) + +#if !defined(__cplusplus) && !defined(bool) +#define bool In_C_you_should_use_my_bool_instead() +#endif + +/* + MYSQL_PLUGIN_IMPORT macro is used to export mysqld data + (i.e variables) for usage in storage engine loadable plugins. + Outside of Windows, it is dummy. +*/ +#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN)) +#define MYSQL_PLUGIN_IMPORT __declspec(dllimport) +#else +#define MYSQL_PLUGIN_IMPORT +#endif + +#include + +#ifdef EMBEDDED_LIBRARY +#define NO_EMBEDDED_ACCESS_CHECKS +/* Things we don't need in the embedded version of MySQL */ +#undef HAVE_OPENSSL +#endif /* EMBEDDED_LIBRARY */ + + +enum loglevel { + ERROR_LEVEL= 0, + WARNING_LEVEL= 1, + INFORMATION_LEVEL= 2 +}; + + +#ifdef _WIN32 +/**************************************************************************** +** Replacements for localtime_r and gmtime_r +****************************************************************************/ + +static inline struct tm *localtime_r(const time_t *timep, struct tm *tmp) +{ + localtime_s(tmp, timep); + return tmp; +} + +static inline struct tm *gmtime_r(const time_t *clock, struct tm *res) +{ + gmtime_s(res, clock); + return res; +} +#endif /* _WIN32 */ + +#ifndef HAVE_STRUCT_TIMESPEC /* Windows before VS2015 */ +/* + Declare a union to make sure FILETIME is properly aligned + so it can be used directly as a 64 bit value. The value + stored is in 100ns units. +*/ +union ft64 { + FILETIME ft; + __int64 i64; + }; + +struct timespec { + union ft64 tv; + /* The max timeout value in millisecond for native_cond_timedwait */ + long max_timeout_msec; +}; + +#endif /* !HAVE_STRUCT_TIMESPEC */ + +C_MODE_START +extern ulonglong my_getsystime(void); +C_MODE_END + +static inline void set_timespec_nsec(struct timespec *abstime, ulonglong nsec) +{ +#ifdef HAVE_STRUCT_TIMESPEC + ulonglong now= my_getsystime() + (nsec / 100); + ulonglong tv_sec= now / 10000000ULL; +#if SIZEOF_TIME_T < SIZEOF_LONG_LONG + /* Ensure that the number of seconds don't overflow. */ + tv_sec= MY_MIN(tv_sec, ((ulonglong)INT_MAX32)); +#endif + abstime->tv_sec= (time_t)tv_sec; + abstime->tv_nsec= (now % 10000000ULL) * 100 + (nsec % 100); +#else /* !HAVE_STRUCT_TIMESPEC */ + ulonglong max_timeout_msec= (nsec / 1000000); + union ft64 tv; + GetSystemTimeAsFileTime(&tv.ft); + abstime->tv.i64= tv.i64 + (__int64)(nsec / 100); +#if SIZEOF_LONG < SIZEOF_LONG_LONG + /* Ensure that the msec value doesn't overflow. */ + max_timeout_msec= MY_MIN(max_timeout_msec, ((ulonglong)INT_MAX32)); +#endif + abstime->max_timeout_msec= (long)max_timeout_msec; +#endif /* !HAVE_STRUCT_TIMESPEC */ +} + +static inline void set_timespec(struct timespec *abstime, ulonglong sec) +{ + set_timespec_nsec(abstime, sec * 1000000000ULL); +} + +/** + Compare two timespec structs. + + @retval 1 If ts1 ends after ts2. + @retval -1 If ts1 ends before ts2. + @retval 0 If ts1 is equal to ts2. +*/ +static inline int cmp_timespec(struct timespec *ts1, struct timespec *ts2) +{ +#ifdef HAVE_STRUCT_TIMESPEC + if (ts1->tv_sec > ts2->tv_sec || + (ts1->tv_sec == ts2->tv_sec && ts1->tv_nsec > ts2->tv_nsec)) + return 1; + if (ts1->tv_sec < ts2->tv_sec || + (ts1->tv_sec == ts2->tv_sec && ts1->tv_nsec < ts2->tv_nsec)) + return -1; +#else + if (ts1->tv.i64 > ts2->tv.i64) + return 1; + if (ts1->tv.i64 < ts2->tv.i64) + return -1; +#endif + return 0; +} + +static inline ulonglong diff_timespec(struct timespec *ts1, struct timespec *ts2) +{ +#ifdef HAVE_STRUCT_TIMESPEC + return (ts1->tv_sec - ts2->tv_sec) * 1000000000ULL + + ts1->tv_nsec - ts2->tv_nsec; +#else + return (ts1->tv.i64 - ts2->tv.i64) * 100; +#endif +} + +#ifdef _WIN32 +typedef int MY_MODE; +#else +typedef mode_t MY_MODE; +#endif /* _WIN32 */ + +/* File permissions */ +#define USER_READ (1L << 0) +#define USER_WRITE (1L << 1) +#define USER_EXECUTE (1L << 2) +#define GROUP_READ (1L << 3) +#define GROUP_WRITE (1L << 4) +#define GROUP_EXECUTE (1L << 5) +#define OTHERS_READ (1L << 6) +#define OTHERS_WRITE (1L << 7) +#define OTHERS_EXECUTE (1L << 8) +#define USER_RWX USER_READ | USER_WRITE | USER_EXECUTE +#define GROUP_RWX GROUP_READ | GROUP_WRITE | GROUP_EXECUTE +#define OTHERS_RWX OTHERS_READ | OTHERS_WRITE | OTHERS_EXECUTE + +/* Defaults */ +#define DEFAULT_SSL_CA_CERT "ca.pem" +#define DEFAULT_SSL_CA_KEY "ca-key.pem" +#define DEFAULT_SSL_SERVER_CERT "server-cert.pem" +#define DEFAULT_SSL_SERVER_KEY "server-key.pem" + +#if defined(_WIN32) || defined(_WIN64) + #define strcasecmp _stricmp +#endif +#endif // MY_GLOBAL_INCLUDED diff --git a/mysql/my_icp.h b/mysql/my_icp.h new file mode 100644 index 0000000..8b77b7c --- /dev/null +++ b/mysql/my_icp.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef _my_icp_h +#define _my_icp_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + Values returned by index_cond_func_xxx functions. +*/ + +typedef enum icp_result { + /** Index tuple doesn't satisfy the pushed index condition (the engine + should discard the tuple and go to the next one) */ + ICP_NO_MATCH, + + /** Index tuple satisfies the pushed index condition (the engine should + fetch and return the record) */ + ICP_MATCH, + + /** Index tuple is out of the range that we're scanning, e.g. if we're + scanning "t.key BETWEEN 10 AND 20" and got a "t.key=21" tuple (the engine + should stop scanning and return HA_ERR_END_OF_FILE right away). */ + ICP_OUT_OF_RANGE + +} ICP_RESULT; + + +#ifdef __cplusplus +} +#endif + +#endif /* _my_icp_h */ diff --git a/mysql/my_list.h b/mysql/my_list.h new file mode 100644 index 0000000..294be66 --- /dev/null +++ b/mysql/my_list.h @@ -0,0 +1,45 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _list_h_ +#define _list_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_list { + struct st_list *prev,*next; + void *data; +} LIST; + +typedef int (*list_walk_action)(void *,void *); + +extern LIST *list_add(LIST *root,LIST *element); +extern LIST *list_delete(LIST *root,LIST *element); +extern LIST *list_cons(void *data,LIST *root); +extern LIST *list_reverse(LIST *root); +extern void list_free(LIST *root,unsigned int free_data); +extern unsigned int list_length(LIST *); +extern int list_walk(LIST *,list_walk_action action,unsigned char * argument); + +#define list_rest(a) ((a)->next) +#define list_push(a,b) (a)=list_cons((b),(a)) +#define list_pop(A) {LIST *old=(A); (A)=list_delete(old,old); my_free(old); } + +#ifdef __cplusplus +} +#endif +#endif diff --git a/mysql/my_md5.h b/mysql/my_md5.h new file mode 100644 index 0000000..c24478a --- /dev/null +++ b/mysql/my_md5.h @@ -0,0 +1,50 @@ +#ifndef MY_MD5_INCLUDED +#define MY_MD5_INCLUDED + +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "m_string.h" +#include "my_md5_size.h" + +/* + Wrapper function for MD5 implementation. +*/ +#ifdef __cplusplus +extern "C" { +#endif + +void compute_md5_hash(char *digest, const char *buf, int len); + +/* + Convert an array of bytes to a hexadecimal representation. + + Used to generate a hexadecimal representation of a message digest. +*/ +static inline void array_to_hex(char *to, const unsigned char *str, uint len) +{ + const unsigned char *str_end= str + len; + for (; str != str_end; ++str) + { + *to++= _dig_vec_lower[((uchar) *str) >> 4]; + *to++= _dig_vec_lower[((uchar) *str) & 0x0F]; + } +} + +#ifdef __cplusplus +} +#endif + +#endif /* MY_MD5_INCLUDED */ diff --git a/mysql/my_md5_size.h b/mysql/my_md5_size.h new file mode 100644 index 0000000..555b570 --- /dev/null +++ b/mysql/my_md5_size.h @@ -0,0 +1,27 @@ +#ifndef MY_MD5_SIZE_INCLUDED +#define MY_MD5_SIZE_INCLUDED +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +/** + @file my_md5_size.h + + This is not part of md5.h, so that it can be included using C linkage, + unlike that file. +*/ + +#define MD5_HASH_SIZE 16 /* Hash size in bytes */ + +#endif // MY_MD5_SIZE_INCLUDED diff --git a/mysql/my_murmur3.h b/mysql/my_murmur3.h new file mode 100644 index 0000000..9ef4286 --- /dev/null +++ b/mysql/my_murmur3.h @@ -0,0 +1,27 @@ +#ifndef MY_MURMUR3_INCLUDED +#define MY_MURMUR3_INCLUDED + +/* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include + +C_MODE_START + +uint32 murmur3_32(const uchar * key, size_t len, uint32 seed); + +C_MODE_END + +#endif /* MY_MURMUR3_INCLUDED */ diff --git a/mysql/my_rdtsc.h b/mysql/my_rdtsc.h new file mode 100644 index 0000000..0647096 --- /dev/null +++ b/mysql/my_rdtsc.h @@ -0,0 +1,130 @@ +/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + rdtsc3 -- multi-platform timer code + pgulutzan@mysql.com, 2005-08-29 + modified 2008-11-02 +*/ + +#ifndef MY_RDTSC_H +#define MY_RDTSC_H + +/** + Characteristics of a timer. +*/ +struct my_timer_unit_info +{ + /** Routine used for the timer. */ + ulonglong routine; + /** Overhead of the timer. */ + ulonglong overhead; + /** Frequency of the timer. */ + ulonglong frequency; + /** Resolution of the timer. */ + ulonglong resolution; +}; + +/** + Characteristics of all the supported timers. + @sa my_timer_init(). +*/ +struct my_timer_info +{ + /** Characteristics of the cycle timer. */ + struct my_timer_unit_info cycles; + /** Characteristics of the nanosecond timer. */ + struct my_timer_unit_info nanoseconds; + /** Characteristics of the microsecond timer. */ + struct my_timer_unit_info microseconds; + /** Characteristics of the millisecond timer. */ + struct my_timer_unit_info milliseconds; + /** Characteristics of the tick timer. */ + struct my_timer_unit_info ticks; +}; + +typedef struct my_timer_info MY_TIMER_INFO; + +C_MODE_START + +/** + A cycle timer. + @return the current timer value, in cycles. +*/ +ulonglong my_timer_cycles(void); + +/** + A namoseconds timer. + @return the current timer value, in nanoseconds. +*/ +ulonglong my_timer_nanoseconds(void); + +/** + A microseconds timer. + @return the current timer value, in microseconds. +*/ +ulonglong my_timer_microseconds(void); + +/** + A millisecond timer. + @return the current timer value, in milliseconds. +*/ +ulonglong my_timer_milliseconds(void); + +/** + A ticks timer. + @return the current timer value, in ticks. +*/ +ulonglong my_timer_ticks(void); + +/** + Timer initialization function. + @param [out] mti the timer characteristics. +*/ +void my_timer_init(MY_TIMER_INFO *mti); + +C_MODE_END + +#define MY_TIMER_ROUTINE_ASM_X86 1 +#define MY_TIMER_ROUTINE_ASM_X86_64 2 +/* #define MY_TIMER_ROUTINE_RDTSCLL 3 - No longer used */ +#define MY_TIMER_ROUTINE_ASM_X86_WIN 4 +#define MY_TIMER_ROUTINE_RDTSC 5 +#define MY_TIMER_ROUTINE_ASM_IA64 6 +#define MY_TIMER_ROUTINE_ASM_PPC 7 +/* #define MY_TIMER_ROUTINE_SGI_CYCLE 8 - No longer used */ +#define MY_TIMER_ROUTINE_GETHRTIME 9 +/* #define MY_TIMER_ROUTINE_READ_REAL_TIME 10 - No longer used */ +#define MY_TIMER_ROUTINE_CLOCK_GETTIME 11 +#define MY_TIMER_ROUTINE_NXGETTIME 12 +#define MY_TIMER_ROUTINE_GETTIMEOFDAY 13 +#define MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER 14 +#define MY_TIMER_ROUTINE_GETTICKCOUNT 15 +/* #define MY_TIMER_ROUTINE_TIME 16 - No longer used */ +#define MY_TIMER_ROUTINE_TIMES 17 +/* #define MY_TIMER_ROUTINE_FTIME 18 - No longer used */ +#define MY_TIMER_ROUTINE_ASM_PPC64 19 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64 20 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32 21 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_I386 22 +#define MY_TIMER_ROUTINE_ASM_GCC_SPARC64 23 +#define MY_TIMER_ROUTINE_ASM_GCC_SPARC32 24 +#define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME 25 +#define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27 +#define MY_TIMER_ROUTINE_ASM_AARCH64 28 + +#endif + diff --git a/mysql/my_rnd.h b/mysql/my_rnd.h new file mode 100644 index 0000000..b9985dd --- /dev/null +++ b/mysql/my_rnd.h @@ -0,0 +1,38 @@ +#ifndef MY_RANDOM_INCLUDED +#define MY_RANDOM_INCLUDED + +/* + Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + A wrapper to use OpenSSL/YaSSL PRNGs. +*/ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +double my_rnd_ssl(struct rand_struct *rand_st); +int my_rand_buffer(unsigned char *buffer, size_t buffer_size); + +#ifdef __cplusplus +} +#endif + +#endif /* MY_RANDOM_INCLUDED */ diff --git a/mysql/my_sqlcommand.h b/mysql/my_sqlcommand.h new file mode 100644 index 0000000..8462833 --- /dev/null +++ b/mysql/my_sqlcommand.h @@ -0,0 +1,179 @@ +/* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _mysql_sql_command_h +#define _mysql_sql_command_h + +/* + @enum enum_sql_command + @brief SQL Commands + + SQL Command is resolved during SQL parsing and assigned to the Lex + object, accessible from the THD. + + When a command is added here, be sure it's also added in mysqld.cc + in "struct show_var_st status_vars[]= {" ... + + If the command returns a result set or is not allowed in stored + functions or triggers, please also make sure that + sp_get_flags_for_command (sp_head.cc) returns proper flags for the + added SQLCOM_. +*/ +enum enum_sql_command { + SQLCOM_SELECT, + SQLCOM_CREATE_TABLE, + SQLCOM_CREATE_INDEX, + SQLCOM_ALTER_TABLE, + SQLCOM_UPDATE, + SQLCOM_INSERT, + SQLCOM_INSERT_SELECT, + SQLCOM_DELETE, + SQLCOM_TRUNCATE, + SQLCOM_DROP_TABLE, + SQLCOM_DROP_INDEX, + SQLCOM_SHOW_DATABASES, + SQLCOM_SHOW_TABLES, + SQLCOM_SHOW_FIELDS, + SQLCOM_SHOW_KEYS, + SQLCOM_SHOW_VARIABLES, + SQLCOM_SHOW_STATUS, + SQLCOM_SHOW_ENGINE_LOGS, + SQLCOM_SHOW_ENGINE_STATUS, + SQLCOM_SHOW_ENGINE_MUTEX, + SQLCOM_SHOW_PROCESSLIST, + SQLCOM_SHOW_MASTER_STAT, + SQLCOM_SHOW_SLAVE_STAT, + SQLCOM_SHOW_GRANTS, + SQLCOM_SHOW_CREATE, + SQLCOM_SHOW_CHARSETS, + SQLCOM_SHOW_COLLATIONS, + SQLCOM_SHOW_CREATE_DB, + SQLCOM_SHOW_TABLE_STATUS, + SQLCOM_SHOW_TRIGGERS, + SQLCOM_LOAD, + SQLCOM_SET_OPTION, + SQLCOM_LOCK_TABLES, + SQLCOM_UNLOCK_TABLES, + SQLCOM_GRANT, + SQLCOM_CHANGE_DB, + SQLCOM_CREATE_DB, + SQLCOM_DROP_DB, + SQLCOM_ALTER_DB, + SQLCOM_REPAIR, + SQLCOM_REPLACE, + SQLCOM_REPLACE_SELECT, + SQLCOM_CREATE_FUNCTION, + SQLCOM_DROP_FUNCTION, + SQLCOM_REVOKE, + SQLCOM_OPTIMIZE, + SQLCOM_CHECK, + SQLCOM_ASSIGN_TO_KEYCACHE, + SQLCOM_PRELOAD_KEYS, + SQLCOM_FLUSH, + SQLCOM_KILL, + SQLCOM_ANALYZE, + SQLCOM_ROLLBACK, + SQLCOM_ROLLBACK_TO_SAVEPOINT, + SQLCOM_COMMIT, + SQLCOM_SAVEPOINT, + SQLCOM_RELEASE_SAVEPOINT, + SQLCOM_SLAVE_START, + SQLCOM_SLAVE_STOP, + SQLCOM_START_GROUP_REPLICATION, + SQLCOM_STOP_GROUP_REPLICATION, + SQLCOM_BEGIN, + SQLCOM_CHANGE_MASTER, + SQLCOM_CHANGE_REPLICATION_FILTER, + SQLCOM_RENAME_TABLE, + SQLCOM_RESET, + SQLCOM_PURGE, + SQLCOM_PURGE_BEFORE, + SQLCOM_SHOW_BINLOGS, + SQLCOM_SHOW_OPEN_TABLES, + SQLCOM_HA_OPEN, + SQLCOM_HA_CLOSE, + SQLCOM_HA_READ, + SQLCOM_SHOW_SLAVE_HOSTS, + SQLCOM_DELETE_MULTI, + SQLCOM_UPDATE_MULTI, + SQLCOM_SHOW_BINLOG_EVENTS, + SQLCOM_DO, + SQLCOM_SHOW_WARNS, + SQLCOM_EMPTY_QUERY, + SQLCOM_SHOW_ERRORS, + SQLCOM_SHOW_STORAGE_ENGINES, + SQLCOM_SHOW_PRIVILEGES, + SQLCOM_HELP, + SQLCOM_CREATE_USER, + SQLCOM_DROP_USER, + SQLCOM_RENAME_USER, + SQLCOM_REVOKE_ALL, + SQLCOM_CHECKSUM, + SQLCOM_CREATE_PROCEDURE, + SQLCOM_CREATE_SPFUNCTION, + SQLCOM_CALL, + SQLCOM_DROP_PROCEDURE, + SQLCOM_ALTER_PROCEDURE, + SQLCOM_ALTER_FUNCTION, + SQLCOM_SHOW_CREATE_PROC, + SQLCOM_SHOW_CREATE_FUNC, + SQLCOM_SHOW_STATUS_PROC, + SQLCOM_SHOW_STATUS_FUNC, + SQLCOM_PREPARE, + SQLCOM_EXECUTE, + SQLCOM_DEALLOCATE_PREPARE, + SQLCOM_CREATE_VIEW, + SQLCOM_DROP_VIEW, + SQLCOM_CREATE_TRIGGER, + SQLCOM_DROP_TRIGGER, + SQLCOM_XA_START, + SQLCOM_XA_END, + SQLCOM_XA_PREPARE, + SQLCOM_XA_COMMIT, + SQLCOM_XA_ROLLBACK, + SQLCOM_XA_RECOVER, + SQLCOM_SHOW_PROC_CODE, + SQLCOM_SHOW_FUNC_CODE, + SQLCOM_ALTER_TABLESPACE, + SQLCOM_INSTALL_PLUGIN, + SQLCOM_UNINSTALL_PLUGIN, + SQLCOM_BINLOG_BASE64_EVENT, + SQLCOM_SHOW_PLUGINS, + SQLCOM_CREATE_SERVER, + SQLCOM_DROP_SERVER, + SQLCOM_ALTER_SERVER, + SQLCOM_CREATE_EVENT, + SQLCOM_ALTER_EVENT, + SQLCOM_DROP_EVENT, + SQLCOM_SHOW_CREATE_EVENT, + SQLCOM_SHOW_EVENTS, + SQLCOM_SHOW_CREATE_TRIGGER, + SQLCOM_ALTER_DB_UPGRADE, + SQLCOM_SHOW_PROFILE, + SQLCOM_SHOW_PROFILES, + SQLCOM_SIGNAL, + SQLCOM_RESIGNAL, + SQLCOM_SHOW_RELAYLOG_EVENTS, + SQLCOM_GET_DIAGNOSTICS, + SQLCOM_ALTER_USER, + SQLCOM_EXPLAIN_OTHER, + SQLCOM_SHOW_CREATE_USER, + SQLCOM_SHUTDOWN, + SQLCOM_ALTER_INSTANCE, + /* This should be the last !!! */ + SQLCOM_END +}; + +#endif /* _mysql_sql_command_h */ diff --git a/mysql/my_stacktrace.h b/mysql/my_stacktrace.h new file mode 100644 index 0000000..a1e16a2 --- /dev/null +++ b/mysql/my_stacktrace.h @@ -0,0 +1,114 @@ +/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _my_stacktrace_h_ +#define _my_stacktrace_h_ + +#include + +C_MODE_START + +/* + HAVE_BACKTRACE - Linux, FreeBSD, OSX + HAVE_PRINTSTACK - Solaris + _WIN32 - Windows +*/ +#if defined(HAVE_BACKTRACE) || defined(HAVE_PRINTSTACK) || defined(_WIN32) +#define HAVE_STACKTRACE 1 +void my_init_stacktrace(); +void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack); +void my_safe_puts_stderr(const char* val, size_t max_len); +#if HAVE_BACKTRACE && HAVE_ABI_CXA_DEMANGLE +char *my_demangle(const char *mangled_name, int *status); +#endif +#ifdef _WIN32 +void my_set_exception_pointers(EXCEPTION_POINTERS *ep); +void my_create_minidump(const char *name, HANDLE process, DWORD pid); +#endif +#endif /* HAVE_BACKTRACE || HAVE_PRINTSTACK || _WIN32 */ + +void my_write_core(int sig); + + + +/** + Async-signal-safe utility functions used by signal handler routines. + Declared here in order to unit-test them. + These are not general-purpose, but tailored to the signal handling routines. +*/ +/** + Converts a longlong value to string. + @param base 10 for decimal, 16 for hex values (0..9a..f) + @param val The value to convert + @param buf Assumed to point to the *end* of the buffer. + @returns Pointer to the first character of the converted string. + Negative values: + for base-10 the return string will be prepended with '-' + for base-16 the return string will contain 16 characters + Implemented with simplicity, and async-signal-safety in mind. +*/ +char *my_safe_itoa(int base, longlong val, char *buf); + +/** + Converts a ulonglong value to string. + @param base 10 for decimal, 16 for hex values (0..9a..f) + @param val The value to convert + @param buf Assumed to point to the *end* of the buffer. + @returns Pointer to the first character of the converted string. + Implemented with simplicity, and async-signal-safety in mind. +*/ +char *my_safe_utoa(int base, ulonglong val, char *buf); + +/** + A (very) limited version of snprintf. + @param to Destination buffer. + @param n Size of destination buffer. + @param fmt printf() style format string. + @returns Number of bytes written, including terminating '\0' + Supports 'd' 'i' 'u' 'x' 'p' 's' conversion. + Supports 'l' and 'll' modifiers for integral types. + Does not support any width/precision. + Implemented with simplicity, and async-signal-safety in mind. +*/ +size_t my_safe_snprintf(char* to, size_t n, const char* fmt, ...) + MY_ATTRIBUTE((format(printf, 3, 4))); + +/** + A (very) limited version of snprintf, which writes the result to STDERR. + @sa my_safe_snprintf + Implemented with simplicity, and async-signal-safety in mind. + @note Has an internal buffer capacity of 512 bytes, + which should suffice for our signal handling routines. +*/ +size_t my_safe_printf_stderr(const char* fmt, ...) + MY_ATTRIBUTE((format(printf, 1, 2))); + +/** + Writes up to count bytes from buffer to STDERR. + Implemented with simplicity, and async-signal-safety in mind. + @param buf Buffer containing data to be written. + @param count Number of bytes to write. + @returns Number of bytes written. +*/ +size_t my_write_stderr(const void *buf, size_t count); + +/** + Writes system time to STDERR without allocating new memory. +*/ +void my_safe_print_system_time(); + +C_MODE_END + +#endif /* _my_stacktrace_h_ */ diff --git a/mysql/my_sys.h b/mysql/my_sys.h new file mode 100644 index 0000000..21bdc5f --- /dev/null +++ b/mysql/my_sys.h @@ -0,0 +1,982 @@ +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _my_sys_h +#define _my_sys_h + +#include "my_global.h" /* C_MODE_START, C_MODE_END */ +#include "m_ctype.h" /* for CHARSET_INFO */ + +#include "my_thread.h" /* Needed for psi.h */ +#include "mysql/psi/psi.h" +#include "mysql/service_mysql_alloc.h" +#include "mysql/psi/mysql_memory.h" +#include "mysql/psi/mysql_thread.h" + +#ifdef HAVE_ALLOCA_H +#include +#endif +#ifdef _WIN32 +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +C_MODE_START + +#ifdef HAVE_VALGRIND +# include +# define MEM_MALLOCLIKE_BLOCK(p1, p2, p3, p4) VALGRIND_MALLOCLIKE_BLOCK(p1, p2, p3, p4) +# define MEM_FREELIKE_BLOCK(p1, p2) VALGRIND_FREELIKE_BLOCK(p1, p2) +# include +# define MEM_UNDEFINED(a,len) VALGRIND_MAKE_MEM_UNDEFINED(a,len) +# define MEM_NOACCESS(a,len) VALGRIND_MAKE_MEM_NOACCESS(a,len) +# define MEM_CHECK_ADDRESSABLE(a,len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,len) +#else /* HAVE_VALGRIND */ +# define MEM_MALLOCLIKE_BLOCK(p1, p2, p3, p4) do {} while (0) +# define MEM_FREELIKE_BLOCK(p1, p2) do {} while (0) +# define MEM_UNDEFINED(a,len) ((void) 0) +# define MEM_NOACCESS(a,len) ((void) 0) +# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0) +#endif /* HAVE_VALGRIND */ + +#include + +#define MY_INIT(name) { my_progname= name; my_init(); } + +/** + Max length of an error message generated by mysys utilities. + Some mysys functions produce error messages. These mostly go + to stderr. + This constant defines the size of the buffer used to format + the message. It should be kept in sync with MYSQL_ERRMSG_SIZE, + since sometimes mysys errors are stored in the server diagnostics + area, and we would like to avoid unexpected truncation. +*/ +#define MYSYS_ERRMSG_SIZE (512) +#define MYSYS_STRERROR_SIZE (128) + +#define MY_FILE_ERROR ((size_t) -1) + + /* General bitmaps for my_func's */ +#define MY_FFNF 1 /* Fatal if file not found */ +#define MY_FNABP 2 /* Fatal if not all bytes read/writen */ +#define MY_NABP 4 /* Error if not all bytes read/writen */ +#define MY_FAE 8 /* Fatal if any error */ +#define MY_WME 16 /* Write message on error */ +#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */ +#define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */ +#define MY_SYNC_DIR 8192 /* my_create/delete/rename: sync directory */ +#define MY_UNUSED 64 /* Unused (was support for RAID) */ +#define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */ +#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */ +#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */ +#define MY_COPYTIME 64 /* my_redel() copys time */ +#define MY_DELETE_OLD 256 /* my_create_with_symlink() */ +#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */ +#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */ +#define MY_REDEL_MAKE_BACKUP 256 +#define MY_REDEL_NO_COPY_STAT 512 /* my_redel() doesn't call my_copystat() */ +#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */ +#define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */ +#define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */ +#define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */ +#define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */ +#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */ +#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */ +#define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */ +#define MY_SYNC 4096 /* my_copy(): sync dst file */ + +#define MYF_RW MYF(MY_WME+MY_NABP) /* For my_read & my_write */ + +#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */ +#define MY_GIVE_INFO 2 /* Give time info about process*/ +#define MY_DONT_FREE_DBUG 4 /* Do not call DBUG_END() in my_end() */ + +/* Flags for my_error() */ +#define ME_BELL 4 /* DEPRECATED: Ring bell then printing message */ +#define ME_ERRORLOG 64 /* Write the error message to error log */ +#define ME_FATALERROR 1024 /* Fatal statement error */ + + /* Bits in last argument to fn_format */ +#define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */ +#define MY_REPLACE_EXT 2 /* replace extension with 'ext' */ +#define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */ +#define MY_PACK_FILENAME 8 /* Pack name (home -> ~) */ +#define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */ +#define MY_RETURN_REAL_PATH 32 /* return full path for file */ +#define MY_SAFE_PATH 64 /* Return NULL if too long path */ +#define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */ +#define MY_APPEND_EXT 256 /* add 'ext' as additional extension*/ + + + /* My seek flags */ +#define MY_SEEK_SET 0 +#define MY_SEEK_CUR 1 +#define MY_SEEK_END 2 + + /* Some constants */ +#define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */ +#define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */ +#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */ +#define DFLT_INIT_HITS 3 + + /* root_alloc flags */ +#define MY_KEEP_PREALLOC 1 +#define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */ + + /* Internal error numbers (for assembler functions) */ +#define MY_ERRNO_EDOM 33 +#define MY_ERRNO_ERANGE 34 + + /* Bits for get_date timeflag */ +#define GETDATE_DATE_TIME 1 +#define GETDATE_SHORT_DATE 2 +#define GETDATE_HHMMSSTIME 4 +#define GETDATE_GMT 8 +#define GETDATE_FIXEDLENGTH 16 + + /* defines when allocating data */ +extern void *my_multi_malloc(PSI_memory_key key, myf flags, ...); + +/* + Switch to my_malloc() if the memory block to be allocated is bigger than + max_alloca_sz. +*/ +extern PSI_memory_key key_memory_max_alloca; +#define my_safe_alloca(size, max_alloca_sz) ((size <= max_alloca_sz) ? \ + my_alloca(size) : \ + my_malloc(key_memory_max_alloca, size, MYF(0))) +#define my_safe_afree(ptr, size, max_alloca_sz) if (size > max_alloca_sz) \ + my_free(ptr) + +#if !defined(DBUG_OFF) || defined(HAVE_VALGRIND) +/** + Put bad content in memory to be sure it will segfault if dereferenced. + With Valgrind, verify that memory is addressable, and mark it undefined. + We cache value of B because if B is expression which depends on A, memset() + trashes value of B. +*/ +#define TRASH(A,B) do { \ + const size_t l= (B); \ + MEM_CHECK_ADDRESSABLE(A, l); \ + memset(A, 0x8F, l); \ + MEM_UNDEFINED(A, l); \ + } while (0) +#else +#define TRASH(A,B) do {} while(0) +#endif +#if defined(ENABLED_DEBUG_SYNC) +extern void (*debug_sync_C_callback_ptr)(const char *, size_t); +#define DEBUG_SYNC_C(_sync_point_name_) do { \ + if (debug_sync_C_callback_ptr != NULL) \ + (*debug_sync_C_callback_ptr)(STRING_WITH_LEN(_sync_point_name_)); } \ + while(0) +#define DEBUG_SYNC_C_IF_THD(thd, _sync_point_name_) do { \ + if (debug_sync_C_callback_ptr != NULL && thd) \ + (*debug_sync_C_callback_ptr)(STRING_WITH_LEN(_sync_point_name_)); } \ + while(0) +#else +#define DEBUG_SYNC_C(_sync_point_name_) +#define DEBUG_SYNC_C_IF_THD(thd, _sync_point_name_) +#endif /* defined(ENABLED_DEBUG_SYNC) */ + +#ifdef HAVE_LINUX_LARGE_PAGES +extern uint my_get_large_page_size(void); +extern uchar * my_large_malloc(PSI_memory_key key, size_t size, myf my_flags); +extern void my_large_free(uchar *ptr); +extern my_bool my_use_large_pages; +extern uint my_large_page_size; +#else +#define my_get_large_page_size() (0) +#define my_large_malloc(A,B,C) my_malloc((A),(B),(C)) +#define my_large_free(A) my_free((A)) +#endif /* HAVE_LINUX_LARGE_PAGES */ + +#define my_alloca(SZ) alloca((size_t) (SZ)) + +#include /* errno is a define */ + +extern char *home_dir; /* Home directory for user */ +extern const char *my_progname; /* program-name (printed in errors) */ +extern char curr_dir[]; /* Current directory for user */ +extern void (*error_handler_hook)(uint my_err, const char *str,myf MyFlags); +extern void (*fatal_error_handler_hook)(uint my_err, const char *str, + myf MyFlags); +extern void (*local_message_hook)(enum loglevel ll, + const char *format, va_list args); +extern uint my_file_limit; +extern MYSQL_PLUGIN_IMPORT ulong my_thread_stack_size; + +/* + Hooks for reporting execution stage information. The server implementation + of these will also set THD::current_cond/current_mutex. + By having hooks, we avoid direct dependencies on server code. +*/ +extern void (*enter_cond_hook)(void *opaque_thd, + mysql_cond_t *cond, + mysql_mutex_t *mutex, + const PSI_stage_info *stage, + PSI_stage_info *old_stage, + const char *src_function, + const char *src_file, + int src_line); + +extern void (*exit_cond_hook)(void *opaque_thd, + const PSI_stage_info *stage, + const char *src_function, + const char *src_file, + int src_line); + +/* + Hook for checking if the thread has been killed. +*/ +extern int (*is_killed_hook)(const void *opaque_thd); + +/* charsets */ +#define MY_ALL_CHARSETS_SIZE 2048 +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE]; +extern CHARSET_INFO compiled_charsets[]; + +/* statistics */ +extern ulong my_file_opened,my_stream_opened, my_tmp_file_created; +extern ulong my_file_total_opened; +extern my_bool my_init_done; + +extern MYSQL_PLUGIN_IMPORT int my_umask; /* Default creation mask */ +extern int my_umask_dir; + +extern ulong my_default_record_cache_size; +extern my_bool my_disable_locking, + my_enable_symlinks; +extern char wild_many,wild_one,wild_prefix; +extern const char *charsets_dir; + +enum cache_type +{ + TYPE_NOT_SET= 0, READ_CACHE, WRITE_CACHE, + SEQ_READ_APPEND /* sequential read or append */, + READ_FIFO, READ_NET,WRITE_NET}; + +enum flush_type +{ + FLUSH_KEEP, /* flush block and keep it in the cache */ + FLUSH_RELEASE, /* flush block and remove it from the cache */ + FLUSH_IGNORE_CHANGED, /* remove block from the cache */ + /* + As my_disable_flush_pagecache_blocks is always 0, the following option + is strictly equivalent to FLUSH_KEEP + */ + FLUSH_FORCE_WRITE +}; + +enum file_type +{ + UNOPEN = 0, FILE_BY_OPEN, FILE_BY_CREATE, STREAM_BY_FOPEN, STREAM_BY_FDOPEN, + FILE_BY_MKSTEMP, FILE_BY_DUP +}; + +struct st_my_file_info +{ + char *name; +#ifdef _WIN32 + HANDLE fhandle; /* win32 file handle */ + int oflag; /* open flags, e.g O_APPEND */ +#endif + enum file_type type; +}; + +extern struct st_my_file_info *my_file_info; + +/* needed for client-only build */ +#ifndef PSI_FILE_KEY_DEFINED +typedef unsigned int PSI_file_key; +#define PSI_FILE_KEY_DEFINED +#endif + +typedef struct st_dynamic_array +{ + uchar *buffer; + uint elements,max_element; + uint alloc_increment; + uint size_of_element; + PSI_memory_key m_psi_key; +} DYNAMIC_ARRAY; + +typedef struct st_my_tmpdir +{ + char **list; + uint cur, max; + mysql_mutex_t mutex; +} MY_TMPDIR; + +typedef struct st_dynamic_string +{ + char *str; + size_t length,max_length,alloc_increment; +} DYNAMIC_STRING; + +struct st_io_cache; +typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*); + +typedef struct st_io_cache_share +{ + mysql_mutex_t mutex; /* To sync on reads into buffer. */ + mysql_cond_t cond; /* To wait for signals. */ + mysql_cond_t cond_writer; /* For a synchronized writer. */ + /* Offset in file corresponding to the first byte of buffer. */ + my_off_t pos_in_file; + /* If a synchronized write cache is the source of the data. */ + struct st_io_cache *source_cache; + uchar *buffer; /* The read buffer. */ + uchar *read_end; /* Behind last valid byte of buffer. */ + int running_threads; /* threads not in lock. */ + int total_threads; /* threads sharing the cache. */ + int error; /* Last error. */ +} IO_CACHE_SHARE; + +typedef struct st_io_cache /* Used when cacheing files */ +{ + /* Offset in file corresponding to the first byte of uchar* buffer. */ + my_off_t pos_in_file; + /* + The offset of end of file for READ_CACHE and WRITE_CACHE. + For SEQ_READ_APPEND it the maximum of the actual end of file and + the position represented by read_end. + */ + my_off_t end_of_file; + /* Points to current read position in the buffer */ + uchar *read_pos; + /* the non-inclusive boundary in the buffer for the currently valid read */ + uchar *read_end; + uchar *buffer; /* The read buffer */ + /* Used in ASYNC_IO */ + uchar *request_pos; + + /* Only used in WRITE caches and in SEQ_READ_APPEND to buffer writes */ + uchar *write_buffer; + /* + Only used in SEQ_READ_APPEND, and points to the current read position + in the write buffer. Note that reads in SEQ_READ_APPEND caches can + happen from both read buffer (uchar* buffer) and write buffer + (uchar* write_buffer). + */ + uchar *append_read_pos; + /* Points to current write position in the write buffer */ + uchar *write_pos; + /* The non-inclusive boundary of the valid write area */ + uchar *write_end; + + /* + Current_pos and current_end are convenience variables used by + my_b_tell() and other routines that need to know the current offset + current_pos points to &write_pos, and current_end to &write_end in a + WRITE_CACHE, and &read_pos and &read_end respectively otherwise + */ + uchar **current_pos, **current_end; + + /* + The lock is for append buffer used in SEQ_READ_APPEND cache + need mutex copying from append buffer to read buffer. + */ + mysql_mutex_t append_buffer_lock; + /* + The following is used when several threads are reading the + same file in parallel. They are synchronized on disk + accesses reading the cached part of the file asynchronously. + It should be set to NULL to disable the feature. Only + READ_CACHE mode is supported. + */ + IO_CACHE_SHARE *share; + + /* + A caller will use my_b_read() macro to read from the cache + if the data is already in cache, it will be simply copied with + memcpy() and internal variables will be accordinging updated with + no functions invoked. However, if the data is not fully in the cache, + my_b_read() will call read_function to fetch the data. read_function + must never be invoked directly. + */ + int (*read_function)(struct st_io_cache *,uchar *,size_t); + /* + Same idea as in the case of read_function, except my_b_write() needs to + be replaced with my_b_append() for a SEQ_READ_APPEND cache + */ + int (*write_function)(struct st_io_cache *,const uchar *,size_t); + /* + Specifies the type of the cache. Depending on the type of the cache + certain operations might not be available and yield unpredicatable + results. Details to be documented later + */ + enum cache_type type; + /* + Callbacks when the actual read I/O happens. These were added and + are currently used for binary logging of LOAD DATA INFILE - when a + block is read from the file, we create a block create/append event, and + when IO_CACHE is closed, we create an end event. These functions could, + of course be used for other things + */ + IO_CACHE_CALLBACK pre_read; + IO_CACHE_CALLBACK post_read; + IO_CACHE_CALLBACK pre_close; + /* + Counts the number of times, when we were forced to use disk. We use it to + increase the binlog_cache_disk_use and binlog_stmt_cache_disk_use status + variables. + */ + ulong disk_writes; + void* arg; /* for use by pre/post_read */ + char *file_name; /* if used with 'open_cached_file' */ + char *dir,*prefix; + File file; /* file descriptor */ + PSI_file_key file_key; /* instrumented file key */ + + /* + seek_not_done is set by my_b_seek() to inform the upcoming read/write + operation that a seek needs to be preformed prior to the actual I/O + error is 0 if the cache operation was successful, -1 if there was a + "hard" error, and the actual number of I/O-ed bytes if the read/write was + partial. + */ + int seek_not_done,error; + /* buffer_length is memory size allocated for buffer or write_buffer */ + size_t buffer_length; + /* read_length is the same as buffer_length except when we use async io */ + size_t read_length; + myf myflags; /* Flags used to my_read/my_write */ + /* + alloced_buffer is 1 if the buffer was allocated by init_io_cache() and + 0 if it was supplied by the user. + Currently READ_NET is the only one that will use a buffer allocated + somewhere else + */ + my_bool alloced_buffer; +} IO_CACHE; + +typedef int (*qsort2_cmp)(const void *, const void *, const void *); + +/* + Subset of struct stat fields filled by stat/lstat/fstat that uniquely + identify a file +*/ +typedef struct st_file_id +{ + dev_t st_dev; + ino_t st_ino; +} ST_FILE_ID; + +typedef void (*my_error_reporter)(enum loglevel level, const char *format, ...) + MY_ATTRIBUTE((format(printf, 2, 3))); + +extern my_error_reporter my_charset_error_reporter; + +/* defines for mf_iocache */ +extern PSI_file_key key_file_io_cache; + +/* Test if buffer is inited */ +#define my_b_clear(info) (info)->buffer=0 +#define my_b_inited(info) (info)->buffer +#define my_b_EOF INT_MIN + +#define my_b_read(info,Buffer,Count) \ + ((info)->read_pos + (Count) <= (info)->read_end ?\ + (memcpy(Buffer,(info)->read_pos,(size_t) (Count)), \ + ((info)->read_pos+=(Count)),0) :\ + (*(info)->read_function)((info),Buffer,Count)) + +#define my_b_write(info,Buffer,Count) \ + ((info)->write_pos + (Count) <=(info)->write_end ?\ + (memcpy((info)->write_pos, (Buffer), (size_t)(Count)),\ + ((info)->write_pos+=(Count)),0) : \ + (*(info)->write_function)((info),(uchar *)(Buffer),(Count))) + +#define my_b_get(info) \ + ((info)->read_pos != (info)->read_end ?\ + ((info)->read_pos++, (int) (uchar) (info)->read_pos[-1]) :\ + _my_b_get(info)) + +#define my_b_tell(info) ((info)->pos_in_file + \ + (size_t) (*(info)->current_pos - (info)->request_pos)) + +#define my_b_get_buffer_start(info) (info)->request_pos +#define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \ + (char*) my_b_get_buffer_start(info) +#define my_b_get_pos_in_file(info) (info)->pos_in_file + +/* tell write offset in the SEQ_APPEND cache */ +int my_b_copy_to_file(IO_CACHE *cache, FILE *file); +my_off_t my_b_append_tell(IO_CACHE* info); +my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ + +#define my_b_bytes_in_cache(info) (size_t) (*(info)->current_end - \ + *(info)->current_pos) + +typedef uint32 ha_checksum; + +#include + + + /* Prototypes for mysys and my_func functions */ + +extern int my_copy(const char *from,const char *to,myf MyFlags); +extern int my_delete(const char *name,myf MyFlags); +extern int my_getwd(char * buf,size_t size,myf MyFlags); +extern int my_setwd(const char *dir,myf MyFlags); +extern int my_lock(File fd,int op,my_off_t start, my_off_t length,myf MyFlags); +extern void *my_once_alloc(size_t Size,myf MyFlags); +extern void my_once_free(void); +extern char *my_once_strdup(const char *src,myf myflags); +extern void *my_once_memdup(const void *src, size_t len, myf myflags); +extern File my_open(const char *FileName,int Flags,myf MyFlags); +extern File my_register_filename(File fd, const char *FileName, + enum file_type type_of_file, + uint error_message_number, myf MyFlags); +extern File my_create(const char *FileName,int CreateFlags, + int AccessFlags, myf MyFlags); +extern int my_close(File Filedes,myf MyFlags); +extern int my_mkdir(const char *dir, int Flags, myf MyFlags); +extern int my_readlink(char *to, const char *filename, myf MyFlags); +extern int my_is_symlink(const char *filename, ST_FILE_ID *file_id); +extern int my_realpath(char *to, const char *filename, myf MyFlags); +extern int my_is_same_file(File file, const ST_FILE_ID *file_id); +extern File my_create_with_symlink(const char *linkname, const char *filename, + int createflags, int access_flags, + myf MyFlags); +extern int my_delete_with_symlink(const char *name, myf MyFlags); +extern int my_rename_with_symlink(const char *from,const char *to,myf MyFlags); +extern int my_symlink(const char *content, const char *linkname, myf MyFlags); +extern size_t my_read(File Filedes,uchar *Buffer,size_t Count,myf MyFlags); +extern size_t my_pread(File Filedes,uchar *Buffer,size_t Count,my_off_t offset, + myf MyFlags); +extern int my_rename(const char *from,const char *to,myf MyFlags); +extern my_off_t my_seek(File fd,my_off_t pos,int whence,myf MyFlags); +extern my_off_t my_tell(File fd,myf MyFlags); +extern size_t my_write(File Filedes,const uchar *Buffer,size_t Count, + myf MyFlags); +extern size_t my_pwrite(File Filedes,const uchar *Buffer,size_t Count, + my_off_t offset,myf MyFlags); +extern size_t my_fread(FILE *stream,uchar *Buffer,size_t Count,myf MyFlags); +extern size_t my_fwrite(FILE *stream,const uchar *Buffer,size_t Count, + myf MyFlags); +extern my_off_t my_fseek(FILE *stream,my_off_t pos,int whence,myf MyFlags); +extern my_off_t my_ftell(FILE *stream,myf MyFlags); + +/* implemented in my_syslog.c */ + +// Maximum size of message that will be logged. +#define MAX_SYSLOG_MESSAGE_SIZE 1024 + +/* Platform-independent SysLog support */ + +/* facilities on unixoid syslog. harmless on systemd / Win platforms. */ +typedef struct st_syslog_facility { int id; const char *name; } SYSLOG_FACILITY; +extern SYSLOG_FACILITY syslog_facility[]; + +enum my_syslog_options { MY_SYSLOG_PIDS= 1 }; + +int my_openlog(const char *eventSourceName, int option, int facility); +int my_closelog(); +int my_syslog(const CHARSET_INFO *cs, enum loglevel level, const char *msg); + +/* implemented in my_memmem.c */ +extern void *my_memmem(const void *haystack, size_t haystacklen, + const void *needle, size_t needlelen); + + +#ifdef _WIN32 +extern int my_access(const char *path, int amode); +#else +#define my_access access +#endif + +extern int check_if_legal_filename(const char *path); +extern int check_if_legal_tablename(const char *path); + +#ifdef _WIN32 +extern my_bool is_filename_allowed(const char *name, size_t length, + my_bool allow_current_dir); +#else /* _WIN32 */ +# define is_filename_allowed(name, length, allow_cwd) (TRUE) +#endif /* _WIN32 */ + +#ifdef _WIN32 +extern int nt_share_delete(const char *name,myf MyFlags); +#define my_delete_allow_opened(fname,flags) nt_share_delete((fname),(flags)) +#else +#define my_delete_allow_opened(fname,flags) my_delete((fname),(flags)) +#endif + +#ifdef _WIN32 +/* Windows-only functions (CRT equivalents)*/ +extern HANDLE my_get_osfhandle(File fd); +extern void my_osmaperr(unsigned long last_error); +#endif + +extern const char* get_global_errmsg(int nr); +extern void wait_for_free_space(const char *filename, int errors); +extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags); +extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags); +extern FILE *my_freopen(const char *path, const char *mode, FILE *stream); +extern int my_fclose(FILE *fd,myf MyFlags); +extern File my_fileno(FILE *fd); +extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags); +extern void thr_set_sync_wait_callback(void (*before_sync)(void), + void (*after_sync)(void)); +extern int my_sync(File fd, myf my_flags); +extern int my_sync_dir(const char *dir_name, myf my_flags); +extern int my_sync_dir_by_file(const char *file_name, myf my_flags); +extern char *my_strerror(char *buf, size_t len, int errnum); +extern const char *my_get_err_msg(int nr); +extern void my_error(int nr,myf MyFlags, ...); +extern void my_printf_error(uint my_err, const char *format, + myf MyFlags, ...) + MY_ATTRIBUTE((format(printf, 2, 4))); +extern void my_printv_error(uint error, const char *format, myf MyFlags, + va_list ap); +extern int my_error_register(const char* (*get_errmsg) (int), + int first, int last); +extern my_bool my_error_unregister(int first, int last); +extern void my_message(uint my_err, const char *str,myf MyFlags); +extern void my_message_stderr(uint my_err, const char *str, myf MyFlags); +void my_message_local_stderr(enum loglevel ll, + const char *format, va_list args); +extern void my_message_local(enum loglevel ll, const char *format, ...); +extern my_bool my_init(void); +extern void my_end(int infoflag); +extern int my_redel(const char *from, const char *to, int MyFlags); +extern int my_copystat(const char *from, const char *to, int MyFlags); +extern char * my_filename(File fd); +extern MY_MODE get_file_perm(ulong perm_flags); +extern my_bool my_chmod(const char *filename, ulong perm_flags, myf my_flags); + +#ifdef EXTRA_DEBUG +void my_print_open_files(void); +#else +#define my_print_open_files() +#endif + +extern my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist); +extern char *my_tmpdir(MY_TMPDIR *tmpdir); +extern void free_tmpdir(MY_TMPDIR *tmpdir); + +extern size_t dirname_part(char * to,const char *name, size_t *to_res_length); +extern size_t dirname_length(const char *name); +#define base_name(A) (A+dirname_length(A)) +extern int test_if_hard_path(const char *dir_name); +extern my_bool has_path(const char *name); +extern char *convert_dirname(char *to, const char *from, const char *from_end); +extern void to_unix_path(char * name); +extern char * fn_ext(const char *name); +extern char * fn_same(char * toname,const char *name,int flag); +extern char * fn_format(char * to,const char *name,const char *dir, + const char *form, uint flag); +extern size_t strlength(const char *str); +extern void pack_dirname(char * to,const char *from); +extern size_t normalize_dirname(char * to, const char *from); +extern size_t unpack_dirname(char * to,const char *from); +extern size_t cleanup_dirname(char * to,const char *from); +extern size_t system_filename(char * to,const char *from); +extern size_t unpack_filename(char * to,const char *from); +extern char * intern_filename(char * to,const char *from); +extern int pack_filename(char * to, const char *name, size_t max_length); +extern char * my_path(char * to,const char *progname, + const char *own_pathname_part); +extern char * my_load_path(char * to, const char *path, + const char *own_path_prefix); +extern int wild_compare(const char *str,const char *wildstr, + pbool str_is_pattern); +extern my_bool array_append_string_unique(const char *str, + const char **array, size_t size); +extern void get_date(char * to,int timeflag,time_t use_time); +extern void soundex(CHARSET_INFO *, char * out_pntr, char * in_pntr, + pbool remove_garbage); + +extern my_bool radixsort_is_appliccable(uint n_items, size_t size_of_element); +extern void radixsort_for_str_ptr(uchar* base[], uint number_of_elements, + size_t size_of_element,uchar *buffer[]); +extern void my_qsort(void *base_ptr, size_t total_elems, size_t size, + qsort_cmp cmp); +extern void my_qsort2(void *base_ptr, size_t total_elems, size_t size, + qsort2_cmp cmp, const void *cmp_argument); +void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos); +my_off_t my_get_ptr(uchar *ptr, size_t pack_length); +extern int init_io_cache_ext(IO_CACHE *info,File file,size_t cachesize, + enum cache_type type,my_off_t seek_offset, + pbool use_async_io, myf cache_myflags, + PSI_file_key file_key); +extern int init_io_cache(IO_CACHE *info,File file,size_t cachesize, + enum cache_type type,my_off_t seek_offset, + pbool use_async_io, myf cache_myflags); +extern my_bool reinit_io_cache(IO_CACHE *info,enum cache_type type, + my_off_t seek_offset,pbool use_async_io, + pbool clear_cache); +extern void setup_io_cache(IO_CACHE* info); +extern int _my_b_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_read_r(IO_CACHE *info,uchar *Buffer,size_t Count); +extern void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare, + IO_CACHE *write_cache, uint num_threads); +extern void remove_io_thread(IO_CACHE *info); +extern int _my_b_seq_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_net_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_get(IO_CACHE *info); +extern int _my_b_write(IO_CACHE *info,const uchar *Buffer,size_t Count); +extern int my_b_append(IO_CACHE *info,const uchar *Buffer,size_t Count); +extern int my_b_safe_write(IO_CACHE *info,const uchar *Buffer,size_t Count); + +extern int my_block_write(IO_CACHE *info, const uchar *Buffer, + size_t Count, my_off_t pos); +extern int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock); + +#define flush_io_cache(info) my_b_flush_io_cache((info),1) + +extern int end_io_cache(IO_CACHE *info); +extern size_t my_b_fill(IO_CACHE *info); +extern void my_b_seek(IO_CACHE *info,my_off_t pos); +extern size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length); +extern my_off_t my_b_filelength(IO_CACHE *info); +extern size_t my_b_printf(IO_CACHE *info, const char* fmt, ...) + MY_ATTRIBUTE((format(printf, 2, 3))); +extern size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list ap); +extern my_bool open_cached_file(IO_CACHE *cache,const char *dir, + const char *prefix, size_t cache_size, + myf cache_myflags); +extern my_bool real_open_cached_file(IO_CACHE *cache); +extern void close_cached_file(IO_CACHE *cache); +File create_temp_file(char *to, const char *dir, const char *pfx, + int mode, myf MyFlags); + +// Use Prealloced_array or std::vector or something similar in C++ +#if defined(__cplusplus) + +#define init_dynamic_array please_use_an_appropriately_typed_container +#define my_init_dynamic_array please_use_an_appropriately_typed_container + +#else + +extern my_bool my_init_dynamic_array(DYNAMIC_ARRAY *array, + PSI_memory_key key, + uint element_size, + void *init_buffer, + uint init_alloc, + uint alloc_increment); +/* init_dynamic_array() function is deprecated */ +extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size, + uint init_alloc, uint alloc_increment); +#define dynamic_element(array,array_index,type) \ + ((type)((array)->buffer) +(array_index)) + +#endif /* __cplusplus */ + +/* Some functions are still in use in C++, because HASH uses DYNAMIC_ARRAY */ +extern my_bool insert_dynamic(DYNAMIC_ARRAY *array, const void *element); +extern void *alloc_dynamic(DYNAMIC_ARRAY *array); +extern void *pop_dynamic(DYNAMIC_ARRAY*); +extern void get_dynamic(DYNAMIC_ARRAY *array, void *element, uint array_index); +extern void claim_dynamic(DYNAMIC_ARRAY *array); +extern void delete_dynamic(DYNAMIC_ARRAY *array); +extern void freeze_size(DYNAMIC_ARRAY *array); +static inline void reset_dynamic(DYNAMIC_ARRAY *array) +{ + array->elements= 0; +} + +extern my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, + size_t init_alloc,size_t alloc_increment); +extern my_bool dynstr_append(DYNAMIC_STRING *str, const char *append); +my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, + size_t length); +extern my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append, + ...); +extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str); +extern my_bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size); +extern my_bool dynstr_trunc(DYNAMIC_STRING *str, size_t n); +extern void dynstr_free(DYNAMIC_STRING *str); +#define alloc_root_inited(A) ((A)->min_malloc != 0) +#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8) +#define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0) +extern void init_alloc_root(PSI_memory_key key, + MEM_ROOT *mem_root, size_t block_size, + size_t pre_alloc_size); +extern void *alloc_root(MEM_ROOT *mem_root, size_t Size); +extern void *multi_alloc_root(MEM_ROOT *mem_root, ...); +extern void claim_root(MEM_ROOT *root); +extern void free_root(MEM_ROOT *root, myf MyFLAGS); +extern void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, + size_t prealloc_size); +extern char *strdup_root(MEM_ROOT *root,const char *str); +static inline char *safe_strdup_root(MEM_ROOT *root, const char *str) +{ + return str ? strdup_root(root, str) : 0; +} +extern char *strmake_root(MEM_ROOT *root,const char *str,size_t len); +extern void *memdup_root(MEM_ROOT *root,const void *str, size_t len); +extern void set_memroot_max_capacity(MEM_ROOT *mem_root, size_t size); +extern void set_memroot_error_reporting(MEM_ROOT *mem_root, + my_bool report_error); +extern my_bool my_compress(uchar *, size_t *, size_t *); +extern my_bool my_uncompress(uchar *, size_t , size_t *); +extern uchar *my_compress_alloc(const uchar *packet, size_t *len, + size_t *complen); +extern int packfrm(uchar *, size_t, uchar **, size_t *); +extern int unpackfrm(uchar **, size_t *, const uchar *); + +extern ha_checksum my_checksum(ha_checksum crc, const uchar *mem, + size_t count); + +/* Wait a given number of microseconds */ +static inline void my_sleep(time_t m_seconds) +{ +#if defined(_WIN32) + Sleep((DWORD)m_seconds/1000+1); /* Sleep() has millisecond arg */ +#else + struct timeval t; + t.tv_sec= m_seconds / 1000000L; + t.tv_usec= m_seconds % 1000000L; + select(0,0,0,0,&t); /* sleep */ +#endif +} + +extern ulong crc32(ulong crc, const uchar *buf, uint len); +extern uint my_set_max_open_files(uint files); +void my_free_open_file_info(void); + +extern time_t my_time(myf flags); +extern ulonglong my_getsystime(void); +extern ulonglong my_micro_time(); +extern my_bool my_gethwaddr(uchar *to); + +#ifdef HAVE_SYS_MMAN_H +#include + +#ifndef MAP_NOSYNC +#define MAP_NOSYNC 0 +#endif + +/* + Not defined in FreeBSD 11. + Was never implemented in FreeBSD, so we just set it to 0. +*/ +#ifndef MAP_NORESERVE +#define MAP_NORESERVE 0 +#endif + +#ifdef HAVE_MMAP64 +#define my_mmap(a,b,c,d,e,f) mmap64(a,b,c,d,e,f) +#else +#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f) +#endif +#define my_munmap(a,b) munmap((a),(b)) + +#else +/* not a complete set of mmap() flags, but only those that nesessary */ +#define PROT_READ 1 +#define PROT_WRITE 2 +#define MAP_NORESERVE 0 +#define MAP_SHARED 0x0001 +#define MAP_PRIVATE 0x0002 +#define MAP_NOSYNC 0x0800 +#define MAP_FAILED ((void *)-1) +#define MS_SYNC 0x0000 + +void *my_mmap(void *, size_t, int, int, int, my_off_t); +int my_munmap(void *, size_t); +#endif + +/* my_getpagesize */ +static inline int my_getpagesize() +{ +#ifndef _WIN32 + return getpagesize(); +#else + SYSTEM_INFO si; + GetSystemInfo(&si); + return (int)si.dwPageSize; +#endif +} + +int my_msync(int, void *, size_t, int); + +/* character sets */ +extern void my_charset_loader_init_mysys(MY_CHARSET_LOADER *loader); +extern uint get_charset_number(const char *cs_name, uint cs_flags); +extern uint get_collation_number(const char *name); +extern const char *get_charset_name(uint cs_number); + +extern CHARSET_INFO *get_charset(uint cs_number, myf flags); +extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); +extern CHARSET_INFO *my_collation_get_by_name(MY_CHARSET_LOADER *loader, + const char *name, myf flags); +extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, + uint cs_flags, myf my_flags); +extern CHARSET_INFO *my_charset_get_by_name(MY_CHARSET_LOADER *loader, + const char *name, + uint cs_flags, myf my_flags); +extern my_bool resolve_charset(const char *cs_name, + const CHARSET_INFO *default_cs, + const CHARSET_INFO **cs); +extern my_bool resolve_collation(const char *cl_name, + const CHARSET_INFO *default_cl, + const CHARSET_INFO **cl); +extern void free_charsets(void); +extern char *get_charsets_dir(char *buf); +extern my_bool my_charset_same(const CHARSET_INFO *cs1, + const CHARSET_INFO *cs2); +extern my_bool init_compiled_charsets(myf flags); +extern void add_compiled_collation(CHARSET_INFO *cs); +extern size_t escape_string_for_mysql(const CHARSET_INFO *charset_info, + char *to, size_t to_length, + const char *from, size_t length); +#ifdef _WIN32 +/* File system character set */ +extern CHARSET_INFO *fs_character_set(void); +#endif +extern size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info, + char *to, size_t to_length, + const char *from, size_t length, char quote); +#ifdef _WIN32 +extern my_bool have_tcpip; /* Is set if tcpip is used */ + +/* implemented in my_windac.c */ + +int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror, + DWORD owner_rights, DWORD everybody_rights); + +void my_security_attr_free(SECURITY_ATTRIBUTES *sa); + +/* implemented in my_conio.c */ +my_bool my_win_is_console(FILE *file); +char *my_win_console_readline(const CHARSET_INFO *cs, char *mbbuf, size_t mbbufsize, + size_t *nread); +void my_win_console_write(const CHARSET_INFO *cs, const char *data, size_t datalen); +void my_win_console_fputs(const CHARSET_INFO *cs, const char *data); +void my_win_console_putc(const CHARSET_INFO *cs, int c); +void my_win_console_vfprintf(const CHARSET_INFO *cs, const char *fmt, va_list args); +int my_win_translate_command_line_args(const CHARSET_INFO *cs, int *ac, char ***av); +#endif /* _WIN32 */ + +#ifdef HAVE_PSI_INTERFACE +extern MYSQL_PLUGIN_IMPORT struct PSI_bootstrap *PSI_hook; +extern void set_psi_server(PSI *psi); +void my_init_mysys_psi_keys(void); +#endif + +struct st_mysql_file; +extern struct st_mysql_file *mysql_stdin; + +C_MODE_END +#endif /* _my_sys_h */ diff --git a/mysql/my_thread.h b/mysql/my_thread.h new file mode 100644 index 0000000..bd65e06 --- /dev/null +++ b/mysql/my_thread.h @@ -0,0 +1,192 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* Defines to make different thread packages compatible */ + +#ifndef MY_THREAD_INCLUDED +#define MY_THREAD_INCLUDED + +#include "my_global.h" /* my_bool */ + +#if !defined(_WIN32) +#include +#endif + +#ifndef ETIME +#define ETIME ETIMEDOUT /* For FreeBSD */ +#endif + +#ifndef ETIMEDOUT +#define ETIMEDOUT 145 /* Win32 doesn't have this */ +#endif + +/* + MySQL can survive with 32K, but some glibc libraries require > 128K stack + To resolve hostnames. Also recursive stored procedures needs stack. +*/ +#if defined(__sparc) && (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) +#define STACK_MULTIPLIER 2UL +#else +#define STACK_MULTIPLIER 1UL +#endif + +#if SIZEOF_CHARP > 4 +#define DEFAULT_THREAD_STACK (STACK_MULTIPLIER * 256UL * 1024UL) +#else +#define DEFAULT_THREAD_STACK (STACK_MULTIPLIER * 192UL * 1024UL) +#endif + +#ifdef __cplusplus +#define EXTERNC extern "C" +#else +#define EXTERNC +#endif + +C_MODE_START + +#ifdef _WIN32 +typedef volatile LONG my_thread_once_t; +typedef DWORD my_thread_t; +typedef struct thread_attr +{ + DWORD dwStackSize; + int detachstate; +} my_thread_attr_t; +#define MY_THREAD_CREATE_JOINABLE 0 +#define MY_THREAD_CREATE_DETACHED 1 +typedef void * (__cdecl *my_start_routine)(void *); +#define MY_THREAD_ONCE_INIT 0 +#define MY_THREAD_ONCE_INPROGRESS 1 +#define MY_THREAD_ONCE_DONE 2 +#else +typedef pthread_once_t my_thread_once_t; +typedef pthread_t my_thread_t; +typedef pthread_attr_t my_thread_attr_t; +#define MY_THREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE +#define MY_THREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED +typedef void *(* my_start_routine)(void *); +#define MY_THREAD_ONCE_INIT PTHREAD_ONCE_INIT +#endif + +typedef struct st_my_thread_handle +{ + my_thread_t thread; +#ifdef _WIN32 + HANDLE handle; +#endif +} my_thread_handle; + +int my_thread_once(my_thread_once_t *once_control, void (*init_routine)(void)); + +static inline my_thread_t my_thread_self() +{ +#ifdef _WIN32 + return GetCurrentThreadId(); +#else + return pthread_self(); +#endif +} + +static inline int my_thread_equal(my_thread_t t1, my_thread_t t2) +{ +#ifdef _WIN32 + return t1 == t2; +#else + return pthread_equal(t1, t2); +#endif +} + +static inline int my_thread_attr_init(my_thread_attr_t *attr) +{ +#ifdef _WIN32 + attr->dwStackSize= 0; + /* Set to joinable by default to match Linux */ + attr->detachstate= MY_THREAD_CREATE_JOINABLE; + return 0; +#else + return pthread_attr_init(attr); +#endif +} + +static inline int my_thread_attr_destroy(my_thread_attr_t *attr) +{ +#ifdef _WIN32 + attr->dwStackSize= 0; + /* Set to joinable by default to match Linux */ + attr->detachstate= MY_THREAD_CREATE_JOINABLE; + return 0; +#else + return pthread_attr_destroy(attr); +#endif +} + +static inline int my_thread_attr_setstacksize(my_thread_attr_t *attr, + size_t stacksize) +{ +#ifdef _WIN32 + attr->dwStackSize= (DWORD)stacksize; + return 0; +#else + return pthread_attr_setstacksize(attr, stacksize); +#endif +} + +static inline int my_thread_attr_setdetachstate(my_thread_attr_t *attr, + int detachstate) +{ +#ifdef _WIN32 + attr->detachstate= detachstate; + return 0; +#else + return pthread_attr_setdetachstate(attr, detachstate); +#endif +} + +static inline int my_thread_attr_getstacksize(my_thread_attr_t *attr, + size_t *stacksize) +{ +#ifdef _WIN32 + *stacksize= (size_t)attr->dwStackSize; + return 0; +#else + return pthread_attr_getstacksize(attr, stacksize); +#endif +} + +static inline void my_thread_yield() +{ +#ifdef _WIN32 + SwitchToThread(); +#else + sched_yield(); +#endif +} + +int my_thread_create(my_thread_handle *thread, const my_thread_attr_t *attr, + my_start_routine func, void *arg); +int my_thread_join(my_thread_handle *thread, void **value_ptr); +int my_thread_cancel(my_thread_handle *thread); +void my_thread_exit(void *value_ptr); + + +extern my_bool my_thread_global_init(); +extern void my_thread_global_reinit(); +extern void my_thread_global_end(); +extern my_bool my_thread_init(); +extern void my_thread_end(); + +C_MODE_END + +#endif /* MY_THREAD_INCLUDED */ diff --git a/mysql/my_thread_local.h b/mysql/my_thread_local.h new file mode 100644 index 0000000..fabd71a --- /dev/null +++ b/mysql/my_thread_local.h @@ -0,0 +1,107 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef MY_THREAD_LOCAL_INCLUDED +#define MY_THREAD_LOCAL_INCLUDED + +#ifndef _WIN32 +#include +#endif + +struct _db_code_state_; +typedef uint32 my_thread_id; + +C_MODE_START + +#ifdef _WIN32 +typedef DWORD thread_local_key_t; +#else +typedef pthread_key_t thread_local_key_t; +#endif + +static inline int my_create_thread_local_key(thread_local_key_t *key, + void (*destructor)(void *)) +{ +#ifdef _WIN32 + *key= TlsAlloc(); + return (*key == TLS_OUT_OF_INDEXES); +#else + return pthread_key_create(key, destructor); +#endif +} + +static inline int my_delete_thread_local_key(thread_local_key_t key) +{ +#ifdef _WIN32 + return !TlsFree(key); +#else + return pthread_key_delete(key); +#endif +} + +static inline void* my_get_thread_local(thread_local_key_t key) +{ +#ifdef _WIN32 + return TlsGetValue(key); +#else + return pthread_getspecific(key); +#endif +} + +static inline int my_set_thread_local(thread_local_key_t key, + void *value) +{ +#ifdef _WIN32 + return !TlsSetValue(key, value); +#else + return pthread_setspecific(key, value); +#endif +} + +/** + Retrieve the MySQL thread-local storage variant of errno. +*/ +int my_errno(); + +/** + Set the MySQL thread-local storage variant of errno. +*/ +void set_my_errno(int my_errno); + +#ifdef _WIN32 +/* + thr_winerr is used for returning the original OS error-code in Windows, + my_osmaperr() returns EINVAL for all unknown Windows errors, hence we + preserve the original Windows Error code in thr_winerr. +*/ +int thr_winerr(); + +void set_thr_winerr(int winerr); + +#endif + +#ifndef DBUG_OFF +/* Return pointer to DBUG for holding current state */ +struct _db_code_state_ **my_thread_var_dbug(); + +my_thread_id my_thread_var_id(); + +void set_my_thread_var_id(my_thread_id id); + +#endif + +C_MODE_END + +#endif // MY_THREAD_LOCAL_INCLUDED diff --git a/mysql/my_time.h b/mysql/my_time.h new file mode 100644 index 0000000..77c90a7 --- /dev/null +++ b/mysql/my_time.h @@ -0,0 +1,244 @@ +/* Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + This is a private header of sql-common library, containing + declarations for my_time.c +*/ + +#ifndef _my_time_h_ +#define _my_time_h_ +#include "my_global.h" +#include "mysql_time.h" + +C_MODE_START + +extern ulonglong log_10_int[20]; +extern uchar days_in_month[]; +extern const char my_zero_datetime6[]; /* "0000-00-00 00:00:00.000000" */ + +/* + Portable time_t replacement. + Should be signed and hold seconds for 1902 -- 2038-01-19 range + i.e at least a 32bit variable + + Using the system built in time_t is not an option as + we rely on the above requirements in the time functions +*/ +typedef long my_time_t; + +typedef enum enum_mysql_timestamp_type timestamp_type; + +#define MY_TIME_T_MAX LONG_MAX +#define MY_TIME_T_MIN LONG_MIN + +/* Time handling defaults */ +#define TIMESTAMP_MAX_YEAR 2038 +#define TIMESTAMP_MIN_YEAR (1900 + YY_PART_YEAR - 1) +#define TIMESTAMP_MAX_VALUE INT_MAX32 +#define TIMESTAMP_MIN_VALUE 1 + +/* two-digit years < this are 20..; >= this are 19.. */ +#define YY_PART_YEAR 70 + +/* + check for valid times only if the range of time_t is greater than + the range of my_time_t +*/ +#if SIZEOF_TIME_T > 4 +# define IS_TIME_T_VALID_FOR_TIMESTAMP(x) \ + ((x) <= TIMESTAMP_MAX_VALUE && \ + (x) >= TIMESTAMP_MIN_VALUE) +#else +# define IS_TIME_T_VALID_FOR_TIMESTAMP(x) \ + ((x) >= TIMESTAMP_MIN_VALUE) +#endif + +/* Flags to str_to_datetime and number_to_datetime */ +typedef uint my_time_flags_t; +static const my_time_flags_t TIME_FUZZY_DATE= 1; +static const my_time_flags_t TIME_DATETIME_ONLY= 2; +static const my_time_flags_t TIME_NO_NSEC_ROUNDING= 4; +static const my_time_flags_t TIME_NO_DATE_FRAC_WARN= 8; +static const my_time_flags_t TIME_NO_ZERO_IN_DATE= 16; +static const my_time_flags_t TIME_NO_ZERO_DATE= 32; +static const my_time_flags_t TIME_INVALID_DATES= 64; + +/* Conversion warnings */ +#define MYSQL_TIME_WARN_TRUNCATED 1 +#define MYSQL_TIME_WARN_OUT_OF_RANGE 2 +#define MYSQL_TIME_WARN_INVALID_TIMESTAMP 4 +#define MYSQL_TIME_WARN_ZERO_DATE 8 +#define MYSQL_TIME_NOTE_TRUNCATED 16 +#define MYSQL_TIME_WARN_ZERO_IN_DATE 32 + +/* Usefull constants */ +#define SECONDS_IN_24H 86400L + +/* Limits for the TIME data type */ +#define TIME_MAX_HOUR 838 +#define TIME_MAX_MINUTE 59 +#define TIME_MAX_SECOND 59 +#define TIME_MAX_VALUE (TIME_MAX_HOUR*10000 + TIME_MAX_MINUTE*100 + \ + TIME_MAX_SECOND) +#define TIME_MAX_VALUE_SECONDS (TIME_MAX_HOUR * 3600L + \ + TIME_MAX_MINUTE * 60L + TIME_MAX_SECOND) + +/* + Structure to return status from + str_to_datetime(), str_to_time(), number_to_datetime(), number_to_time() +*/ +typedef struct st_mysql_time_status +{ + int warnings; + uint fractional_digits; + uint nanoseconds; +} MYSQL_TIME_STATUS; + +static inline void my_time_status_init(MYSQL_TIME_STATUS *status) +{ + status->warnings= status->fractional_digits= status->nanoseconds= 0; +} + + +my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date, + my_time_flags_t flags, int *was_cut); +my_bool str_to_datetime(const char *str, size_t length, MYSQL_TIME *l_time, + my_time_flags_t flags, MYSQL_TIME_STATUS *status); +longlong number_to_datetime(longlong nr, MYSQL_TIME *time_res, + my_time_flags_t flags, int *was_cut); +my_bool number_to_time(longlong nr, MYSQL_TIME *ltime, int *warnings); +ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *); +ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *); +ulonglong TIME_to_ulonglong_time(const MYSQL_TIME *); +ulonglong TIME_to_ulonglong(const MYSQL_TIME *); + +#define MY_PACKED_TIME_GET_INT_PART(x) ((x) >> 24) +#define MY_PACKED_TIME_GET_FRAC_PART(x) ((x) % (1LL << 24)) +#define MY_PACKED_TIME_MAKE(i, f) ((((longlong) (i)) << 24) + (f)) +#define MY_PACKED_TIME_MAKE_INT(i) ((((longlong) (i)) << 24)) + +longlong year_to_longlong_datetime_packed(long year); +longlong TIME_to_longlong_datetime_packed(const MYSQL_TIME *); +longlong TIME_to_longlong_date_packed(const MYSQL_TIME *); +longlong TIME_to_longlong_time_packed(const MYSQL_TIME *); +longlong TIME_to_longlong_packed(const MYSQL_TIME *); + +void TIME_from_longlong_datetime_packed(MYSQL_TIME *ltime, longlong nr); +void TIME_from_longlong_time_packed(MYSQL_TIME *ltime, longlong nr); +void TIME_from_longlong_date_packed(MYSQL_TIME *ltime, longlong nr); +void TIME_set_yymmdd(MYSQL_TIME *ltime, uint yymmdd); +void TIME_set_hhmmss(MYSQL_TIME *ltime, uint hhmmss); + +void my_datetime_packed_to_binary(longlong nr, uchar *ptr, uint dec); +longlong my_datetime_packed_from_binary(const uchar *ptr, uint dec); + +void my_time_packed_to_binary(longlong nr, uchar *ptr, uint dec); +longlong my_time_packed_from_binary(const uchar *ptr, uint dec); + +void my_timestamp_to_binary(const struct timeval *tm, uchar *ptr, uint dec); +void my_timestamp_from_binary(struct timeval *tm, const uchar *ptr, uint dec); + +my_bool str_to_time(const char *str, size_t length, MYSQL_TIME *l_time, + MYSQL_TIME_STATUS *status); + +my_bool check_time_mmssff_range(const MYSQL_TIME *ltime); +my_bool check_time_range_quick(const MYSQL_TIME *ltime); +my_bool check_datetime_range(const MYSQL_TIME *ltime); +void adjust_time_range(struct st_mysql_time *, int *warning); + +long calc_daynr(uint year,uint month,uint day); +uint calc_days_in_year(uint year); +uint year_2000_handling(uint year); + +void my_init_time(void); + + +/* + Function to check sanity of a TIMESTAMP value + + DESCRIPTION + Check if a given MYSQL_TIME value fits in TIMESTAMP range. + This function doesn't make precise check, but rather a rough + estimate. + + RETURN VALUES + TRUE The value seems sane + FALSE The MYSQL_TIME value is definitely out of range +*/ + +static inline my_bool validate_timestamp_range(const MYSQL_TIME *t) +{ + if ((t->year > TIMESTAMP_MAX_YEAR || t->year < TIMESTAMP_MIN_YEAR) || + (t->year == TIMESTAMP_MAX_YEAR && (t->month > 1 || t->day > 19)) || + (t->year == TIMESTAMP_MIN_YEAR && (t->month < 12 || t->day < 31))) + return FALSE; + + return TRUE; +} + +my_time_t +my_system_gmt_sec(const MYSQL_TIME *t, long *my_timezone, + my_bool *in_dst_time_gap); + +void set_zero_time(MYSQL_TIME *tm, enum enum_mysql_timestamp_type time_type); +void set_max_time(MYSQL_TIME *tm, my_bool neg); +void set_max_hhmmss(MYSQL_TIME *tm); + +/* + Required buffer length for my_time_to_str, my_date_to_str, + my_datetime_to_str and TIME_to_string functions. Note, that the + caller is still responsible to check that given TIME structure + has values in valid ranges, otherwise size of the buffer could + be not enough. We also rely on the fact that even wrong values + sent using binary protocol fit in this buffer. +*/ +#define MAX_DATE_STRING_REP_LENGTH 30 + +int my_time_to_str(const MYSQL_TIME *l_time, char *to, uint dec); +int my_date_to_str(const MYSQL_TIME *l_time, char *to); +int my_datetime_to_str(const MYSQL_TIME *l_time, char *to, uint dec); +int my_TIME_to_str(const MYSQL_TIME *l_time, char *to, uint dec); + +int my_timeval_to_str(const struct timeval *tm, char *to, uint dec); + +/* + Available interval types used in any statement. + + 'interval_type' must be sorted so that simple intervals comes first, + ie year, quarter, month, week, day, hour, etc. The order based on + interval size is also important and the intervals should be kept in a + large to smaller order. (get_interval_value() depends on this) + + Note: If you change the order of elements in this enum you should fix + order of elements in 'interval_type_to_name' and 'interval_names' + arrays + + See also interval_type_to_name, get_interval_value, interval_names +*/ + +enum interval_type +{ + INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_WEEK, INTERVAL_DAY, + INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND, INTERVAL_MICROSECOND, + INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE, + INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND, + INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND, INTERVAL_HOUR_MICROSECOND, + INTERVAL_MINUTE_MICROSECOND, INTERVAL_SECOND_MICROSECOND, INTERVAL_LAST +}; + +C_MODE_END + +#endif /* _my_time_h_ */ diff --git a/mysql/my_timer.h b/mysql/my_timer.h new file mode 100644 index 0000000..08691bb --- /dev/null +++ b/mysql/my_timer.h @@ -0,0 +1,75 @@ +/* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_TIMER_H +#define MY_TIMER_H + +#include "my_global.h" /* C_MODE_START, C_MODE_END */ +#include "mysql/psi/psi.h" /* PSI_thread_key, PSI_mutex_key, PSI_memory_key */ + +/* POSIX timers API. */ +#ifdef HAVE_POSIX_TIMERS +# include /* timer_t */ + typedef timer_t os_timer_t; +#elif HAVE_KQUEUE_TIMERS +# include /* uintptr_t */ + typedef uintptr_t os_timer_t; +#elif _WIN32 + typedef struct st_os_timer + { + HANDLE timer_handle; + my_bool timer_state; + } os_timer_t; +#endif + +typedef struct st_my_timer my_timer_t; + +/* Non-copyable timer object. */ +struct st_my_timer +{ + /* Timer ID used to identify the timer in timer requests. */ + os_timer_t id; + + /** Timer expiration notification function. */ + void (*notify_function)(my_timer_t *); +}; + +C_MODE_START + +#ifdef HAVE_PSI_INTERFACE +extern PSI_thread_key key_thread_timer_notifier; +#endif + +/* Initialize internal components. */ +int my_timer_initialize(void); + +/* Release any resources acquired. */ +void my_timer_deinitialize(void); + +/* Create a timer object. */ +int my_timer_create(my_timer_t *timer); + +/* Set the time (in milliseconds) until the next expiration of the timer. */ +int my_timer_set(my_timer_t *timer, unsigned long time); + +/* Cancel the timer */ +int my_timer_cancel(my_timer_t *timer, int *state); + +/* Delete a timer object. */ +void my_timer_delete(my_timer_t *timer); + +C_MODE_END + +#endif /* MY_TIMER_H */ diff --git a/mysql/my_tree.h b/mysql/my_tree.h new file mode 100644 index 0000000..3db7b39 --- /dev/null +++ b/mysql/my_tree.h @@ -0,0 +1,97 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _tree_h +#define _tree_h +#ifdef __cplusplus +extern "C" { +#endif + +#include "my_base.h" /* get 'enum ha_rkey_function' */ +#include "my_alloc.h" /* MEM_ROOT */ + +/* Worst case tree is half full. This gives use 2^(MAX_TREE_HEIGHT/2) leafs */ +#define MAX_TREE_HEIGHT 64 + +#define ELEMENT_KEY(tree,element)\ +(tree->offset_to_key ? (void*)((uchar*) element+tree->offset_to_key) :\ + *((void**) (element+1))) + +#define tree_set_pointer(element,ptr) *((uchar **) (element+1))=((uchar*) (ptr)) + +#define TREE_NO_DUPS 1 + +typedef enum { left_root_right, right_root_left } TREE_WALK; +typedef uint32 element_count; +typedef int (*tree_walk_action)(void *,element_count,void *); + +typedef enum { free_init, free_free, free_end } TREE_FREE; +typedef void (*tree_element_free)(void*, TREE_FREE, const void *); + +typedef struct st_tree_element { + struct st_tree_element *left,*right; + uint32 count:31, + colour:1; /* black is marked as 1 */ +} TREE_ELEMENT; + +#define ELEMENT_CHILD(element, offs) (*(TREE_ELEMENT**)((char*)element + offs)) + +typedef struct st_tree { + TREE_ELEMENT *root,null_element; + TREE_ELEMENT **parents[MAX_TREE_HEIGHT]; + uint offset_to_key,elements_in_tree,size_of_element; + ulong memory_limit, allocated; + qsort_cmp2 compare; + const void *custom_arg; + MEM_ROOT mem_root; + my_bool with_delete; + tree_element_free free; + uint flag; +} TREE; + + /* Functions on whole tree */ +void init_tree(TREE *tree, size_t default_alloc_size, ulong memory_limit, + int size, qsort_cmp2 compare, my_bool with_delete, + tree_element_free free_element, const void *custom_arg); +void delete_tree(TREE*); +void reset_tree(TREE*); + /* similar to delete tree, except we do not my_free() blocks in mem_root + */ +#define is_tree_inited(tree) ((tree)->root != 0) + + /* Functions on leafs */ +TREE_ELEMENT *tree_insert(TREE *tree,void *key, uint key_size, + const void *custom_arg); +void *tree_search(TREE *tree, void *key, const void *custom_arg); +int tree_walk(TREE *tree,tree_walk_action action, + void *argument, TREE_WALK visit); +int tree_delete(TREE *tree, void *key, uint key_size, const void *custom_arg); +void *tree_search_key(TREE *tree, const void *key, + TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, + enum ha_rkey_function flag, const void *custom_arg); +void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents, + TREE_ELEMENT ***last_pos, int child_offs); +void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs, + int r_offs); +ha_rows tree_record_pos(TREE *tree, const void *key, + enum ha_rkey_function search_flag, + const void *custom_arg); + +#define TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*)) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/mysql/my_uctype.h b/mysql/my_uctype.h new file mode 100644 index 0000000..80ef01c --- /dev/null +++ b/mysql/my_uctype.h @@ -0,0 +1,1484 @@ +#ifndef MY_UCTYPE_INCLUDED +#define MY_UCTYPE_INCLUDED + +/* Copyright (c) 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Unicode ctype data + Generated from UnicodeData-5.0.0d9.txt +*/ +static unsigned char uctype_page00[256]= +{ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 16, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16, + 16, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 16, 16, 16, 16, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 16, 32, 16, 16, + 16, 16, 20, 20, 16, 2, 16, 16, 16, 20, 2, 16, 20, 20, 20, 16, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page01[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, + 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, + 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, + 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, + 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2 +}; + +static unsigned char uctype_page02[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, + 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 2, 2, 2, 2, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page03[256]= +{ + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 16, 16, 0, 0, 0, 0, 2, 2, 2, 2, 16, 0, + 0, 0, 0, 0, 16, 16, 1, 16, 1, 1, 1, 0, 1, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 2, 2, 2, 2, 1, 2, 16, 1, 2, 1, 1, 2, 2, 1, 1, 1 +}; + +static unsigned char uctype_page04[256]= +{ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 16, 18, 18, 18, 18, 0, 18, 18, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 +}; + +static unsigned char uctype_page05[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 16, 16, 16, 16, 16, 16, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 16, 16, 0, 0, 0, 0, 0, + 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 16, 18, + 16, 18, 18, 16, 18, 18, 16, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page06[256]= +{ + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, + 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 16, 0, 0, 16, 16, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 2, 2, + 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 16, 2, 18, 18, 18, 18, 18, 18, 18, 32, 18, 18, + 18, 18, 18, 18, 18, 2, 2, 18, 18, 16, 18, 18, 18, 18, 2, 2, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 16, 16, 2 +}; + +static unsigned char uctype_page07[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 32, + 2, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 2, 2, 16, 16, 16, 16, 2, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page09[256]= +{ + 0, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, + 2, 18, 18, 18, 18, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 18, 18, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18, 18, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 2, 2, 0, 2, + 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 16, 16, 20, 20, 20, 20, 20, 20, 16, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0A[256]= +{ + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 18, 0, 18, 18, + 18, 18, 18, 0, 0, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 18, 18, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0B[256]= +{ + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 0, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 2, 2, 0, 2, + 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, + 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 0, 0, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 20, 20, 20, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0C[256]= +{ + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0D[256]= +{ + 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 18, 0, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 18, 0, 0, 0, 0, 18, + 18, 18, 18, 18, 18, 0, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0E[256]= +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 18, 2, 2, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 16, + 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 2, + 2, 18, 2, 2, 18, 18, 18, 18, 18, 18, 0, 18, 18, 2, 0, 0, + 2, 2, 2, 2, 2, 0, 2, 0, 18, 18, 18, 18, 18, 18, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0F[256]= +{ + 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 16, 16, 16, 16, 16, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 16, 18, 16, 18, 16, 18, 16, 16, 16, 16, 18, 18, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 16, 18, 18, 2, 2, 2, 2, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 16, 16, + 16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 16, 16, 0, 0, 16, + 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page10[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 18, 18, 18, 18, + 18, 18, 18, 0, 0, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 0, 0, 0 +}; + +static unsigned char uctype_page11[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page12[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page13[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page14[256]= +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page16[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page17[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 2, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 18, 18, 18, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 16, 16, 16, 2, 16, 16, 16, 16, 2, 18, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page18[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 8, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page19[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, + 16, 0, 0, 0, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 2, 2, 2, 2, 2, 2, 2, 18, 18, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page1A[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 0, 0, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page1B[256]= +{ + 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page1D[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18 +}; + +static unsigned char uctype_page1E[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page1F[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 0, 1, 0, 1, 0, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 2, 16, + 16, 16, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 16, 16, + 2, 2, 2, 2, 0, 0, 2, 2, 1, 1, 1, 1, 0, 16, 16, 16, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 16, 16, 16, + 0, 0, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 16, 0 +}; + +static unsigned char uctype_page20[256]= +{ + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 32, 32, 32, 32, 32, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 32, 32, 32, 32, 32, 8, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, + 20, 2, 0, 0, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 2, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 0, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page21[256]= +{ + 16, 16, 1, 16, 16, 16, 16, 1, 16, 16, 2, 1, 1, 1, 2, 2, + 1, 1, 1, 2, 16, 1, 16, 16, 16, 1, 1, 1, 1, 1, 16, 16, + 16, 16, 16, 16, 1, 16, 1, 16, 1, 16, 1, 1, 1, 1, 16, 2, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 16, 16, 2, 2, 1, 1, + 16, 16, 16, 16, 16, 1, 2, 2, 2, 2, 16, 16, 16, 16, 2, 0, + 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page23[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page24[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +}; + +static unsigned char uctype_page26[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page27[256]= +{ + 0, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 0, 16, + 16, 16, 16, 0, 0, 0, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 16, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page2B[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page2C[256]= +{ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 2, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 20, 16, 16 +}; + +static unsigned char uctype_page2D[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page2E[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 16, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page2F[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0 +}; + +static unsigned char uctype_page30[256]= +{ + 8, 16, 16, 16, 16, 2, 2, 7, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 7, 7, 7, 7, 7, 7, 7, 7, 7, 18, 18, 18, 18, 18, 18, + 16, 2, 2, 2, 2, 2, 16, 16, 7, 7, 7, 2, 2, 16, 16, 16, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 18, 18, 16, 16, 2, 2, 2, + 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2 +}; + +static unsigned char uctype_page31[256]= +{ + 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 16, 16, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page32[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0 +}; + +static unsigned char uctype_page4D[256]= +{ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page9F[256]= +{ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageA4[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageA7[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageA8[256]= +{ + 2, 2, 18, 2, 2, 2, 18, 2, 2, 2, 2, 18, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 18, 18, 18, 18, 18, 16, 16, 16, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageD7[256]= +{ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageD8[256]= +{ + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageDB[256]= +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32 +}; + +static unsigned char uctype_pageDC[256]= +{ + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageDF[256]= +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32 +}; + +static unsigned char uctype_pageE0[256]= +{ + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageF8[256]= +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32 +}; + +static unsigned char uctype_pageFA[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageFB[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 18, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, + 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_pageFD[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 0, 0 +}; + +static unsigned char uctype_pageFE[256]= +{ + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, + 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 32 +}; + +static unsigned char uctype_pageFF[256]= +{ + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 16, 16, 0, 0 +}; + +MY_UNI_CTYPE my_uni_ctype[256]={ + {0,uctype_page00}, + {0,uctype_page01}, + {0,uctype_page02}, + {0,uctype_page03}, + {0,uctype_page04}, + {0,uctype_page05}, + {0,uctype_page06}, + {0,uctype_page07}, + {0,NULL}, + {0,uctype_page09}, + {0,uctype_page0A}, + {0,uctype_page0B}, + {0,uctype_page0C}, + {0,uctype_page0D}, + {0,uctype_page0E}, + {0,uctype_page0F}, + {0,uctype_page10}, + {0,uctype_page11}, + {0,uctype_page12}, + {0,uctype_page13}, + {0,uctype_page14}, + {2,NULL}, + {0,uctype_page16}, + {0,uctype_page17}, + {0,uctype_page18}, + {0,uctype_page19}, + {0,uctype_page1A}, + {0,uctype_page1B}, + {0,NULL}, + {0,uctype_page1D}, + {0,uctype_page1E}, + {0,uctype_page1F}, + {0,uctype_page20}, + {0,uctype_page21}, + {16,NULL}, + {0,uctype_page23}, + {0,uctype_page24}, + {16,NULL}, + {0,uctype_page26}, + {0,uctype_page27}, + {16,NULL}, + {16,NULL}, + {16,NULL}, + {0,uctype_page2B}, + {0,uctype_page2C}, + {0,uctype_page2D}, + {0,uctype_page2E}, + {0,uctype_page2F}, + {0,uctype_page30}, + {0,uctype_page31}, + {0,uctype_page32}, + {16,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {0,uctype_page4D}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {0,uctype_page9F}, + {2,NULL}, + {2,NULL}, + {2,NULL}, + {2,NULL}, + {0,uctype_pageA4}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageA7}, + {0,uctype_pageA8}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {0,uctype_pageD7}, + {0,uctype_pageD8}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageDB}, + {0,uctype_pageDC}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageDF}, + {0,uctype_pageE0}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageF8}, + {2,NULL}, + {0,uctype_pageFA}, + {0,uctype_pageFB}, + {2,NULL}, + {0,uctype_pageFD}, + {0,uctype_pageFE}, + {0,uctype_pageFF} +}; + + +#endif /* MY_UCTYPE_INCLUDED */ diff --git a/mysql/my_xml.h b/mysql/my_xml.h new file mode 100644 index 0000000..639fdc7 --- /dev/null +++ b/mysql/my_xml.h @@ -0,0 +1,96 @@ +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + + +#ifndef _my_xml_h +#define _my_xml_h + +#ifdef __cplusplus +extern "C" { +#endif + + +#define MY_XML_OK 0 +#define MY_XML_ERROR 1 + +/* + A flag whether to use absolute tag names in call-back functions, + like "a", "a.b" and "a.b.c" (used in character set file parser), + or relative names like "a", "b" and "c". +*/ +#define MY_XML_FLAG_RELATIVE_NAMES 1 + +/* + A flag whether to skip normilization of text values before calling + call-back functions: i.e. skip leading/trailing spaces, + \r, \n, \t characters. +*/ +#define MY_XML_FLAG_SKIP_TEXT_NORMALIZATION 2 + +enum my_xml_node_type +{ + MY_XML_NODE_TAG, /* can have TAG, ATTR and TEXT children */ + MY_XML_NODE_ATTR, /* can have TEXT children */ + MY_XML_NODE_TEXT /* cannot have children */ +}; + +typedef struct xml_stack_st +{ + int flags; + enum my_xml_node_type current_node_type; + char errstr[128]; + + struct { + char static_buffer[128]; + char *buffer; + size_t buffer_size; + char *start; + char *end; + } attr; + + const char *beg; + const char *cur; + const char *end; + void *user_data; + int (*enter)(struct xml_stack_st *st,const char *val, size_t len); + int (*value)(struct xml_stack_st *st,const char *val, size_t len); + int (*leave_xml)(struct xml_stack_st *st,const char *val, size_t len); +} MY_XML_PARSER; + +void my_xml_parser_create(MY_XML_PARSER *st); +void my_xml_parser_free(MY_XML_PARSER *st); +int my_xml_parse(MY_XML_PARSER *st,const char *str, size_t len); + +void my_xml_set_value_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, + const char *, + size_t len)); +void my_xml_set_enter_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, + const char *, + size_t len)); +void my_xml_set_leave_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, + const char *, + size_t len)); +void my_xml_set_user_data(MY_XML_PARSER *st, void *); + +size_t my_xml_error_pos(MY_XML_PARSER *st); +uint my_xml_error_lineno(MY_XML_PARSER *st); + +const char *my_xml_error_string(MY_XML_PARSER *st); + +#ifdef __cplusplus +} +#endif + +#endif /* _my_xml_h */ diff --git a/mysql/myisampack.h b/mysql/myisampack.h new file mode 100644 index 0000000..48c3f67 --- /dev/null +++ b/mysql/myisampack.h @@ -0,0 +1,234 @@ +#ifndef MYISAMPACK_INCLUDED +#define MYISAMPACK_INCLUDED + +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Storing of values in high byte first order. + + integer keys and file pointers are stored with high byte first to get + better compression +*/ + +/* these two are for uniformity */ +#define mi_sint1korr(A) ((int8)(*A)) +#define mi_uint1korr(A) ((uint8)(*A)) + +#define mi_sint2korr(A) ((int16) (((int16) (((uchar*) (A))[1])) +\ + ((int16) ((int16) ((char*) (A))[0]) << 8))) +#define mi_sint3korr(A) ((int32) (((((uchar*) (A))[0]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) ((uchar*) (A))[0]) << 16) |\ + (((uint32) ((uchar*) (A))[1]) << 8) | \ + ((uint32) ((uchar*) (A))[2])) : \ + (((uint32) ((uchar*) (A))[0]) << 16) |\ + (((uint32) ((uchar*) (A))[1]) << 8) | \ + ((uint32) ((uchar*) (A))[2]))) +#define mi_sint4korr(A) ((int32) (((int32) (((uchar*) (A))[3])) +\ + ((int32) (((uchar*) (A))[2]) << 8) +\ + ((int32) (((uchar*) (A))[1]) << 16) +\ + ((int32) ((int16) ((char*) (A))[0]) << 24))) +#define mi_sint8korr(A) ((longlong) mi_uint8korr(A)) +#define mi_uint2korr(A) ((uint16) (((uint16) (((uchar*) (A))[1])) +\ + ((uint16) (((uchar*) (A))[0]) << 8))) +#define mi_uint3korr(A) ((uint32) (((uint32) (((uchar*) (A))[2])) +\ + (((uint32) (((uchar*) (A))[1])) << 8) +\ + (((uint32) (((uchar*) (A))[0])) << 16))) +#define mi_uint4korr(A) ((uint32) (((uint32) (((uchar*) (A))[3])) +\ + (((uint32) (((uchar*) (A))[2])) << 8) +\ + (((uint32) (((uchar*) (A))[1])) << 16) +\ + (((uint32) (((uchar*) (A))[0])) << 24))) +#define mi_uint5korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[4])) +\ + (((uint32) (((uchar*) (A))[3])) << 8) +\ + (((uint32) (((uchar*) (A))[2])) << 16) +\ + (((uint32) (((uchar*) (A))[1])) << 24)) +\ + (((ulonglong) (((uchar*) (A))[0])) << 32)) +#define mi_uint6korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[5])) +\ + (((uint32) (((uchar*) (A))[4])) << 8) +\ + (((uint32) (((uchar*) (A))[3])) << 16) +\ + (((uint32) (((uchar*) (A))[2])) << 24)) +\ + (((ulonglong) (((uint32) (((uchar*) (A))[1])) +\ + (((uint32) (((uchar*) (A))[0]) << 8)))) <<\ + 32)) +#define mi_uint7korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[6])) +\ + (((uint32) (((uchar*) (A))[5])) << 8) +\ + (((uint32) (((uchar*) (A))[4])) << 16) +\ + (((uint32) (((uchar*) (A))[3])) << 24)) +\ + (((ulonglong) (((uint32) (((uchar*) (A))[2])) +\ + (((uint32) (((uchar*) (A))[1])) << 8) +\ + (((uint32) (((uchar*) (A))[0])) << 16))) <<\ + 32)) +#define mi_uint8korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[7])) +\ + (((uint32) (((uchar*) (A))[6])) << 8) +\ + (((uint32) (((uchar*) (A))[5])) << 16) +\ + (((uint32) (((uchar*) (A))[4])) << 24)) +\ + (((ulonglong) (((uint32) (((uchar*) (A))[3])) +\ + (((uint32) (((uchar*) (A))[2])) << 8) +\ + (((uint32) (((uchar*) (A))[1])) << 16) +\ + (((uint32) (((uchar*) (A))[0])) << 24))) <<\ + 32)) + +/* This one is for uniformity */ +#define mi_int1store(T,A) *((uchar*)(T))= (uchar) (A) + +#define mi_int2store(T,A) { uint def_temp= (uint) (A) ;\ + ((uchar*) (T))[1]= (uchar) (def_temp);\ + ((uchar*) (T))[0]= (uchar) (def_temp >> 8); } +#define mi_int3store(T,A) { /*lint -save -e734 */\ + ulong def_temp= (ulong) (A);\ + ((uchar*) (T))[2]= (uchar) (def_temp);\ + ((uchar*) (T))[1]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[0]= (uchar) (def_temp >> 16);\ + /*lint -restore */} +#define mi_int4store(T,A) { ulong def_temp= (ulong) (A);\ + ((uchar*) (T))[3]= (uchar) (def_temp);\ + ((uchar*) (T))[2]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[1]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[0]= (uchar) (def_temp >> 24); } +#define mi_int5store(T,A) { ulong def_temp= (ulong) (A),\ + def_temp2= (ulong) ((A) >> 32);\ + ((uchar*) (T))[4]= (uchar) (def_temp);\ + ((uchar*) (T))[3]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[2]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[1]= (uchar) (def_temp >> 24);\ + ((uchar*) (T))[0]= (uchar) (def_temp2); } +#define mi_int6store(T,A) { ulong def_temp= (ulong) (A),\ + def_temp2= (ulong) ((A) >> 32);\ + ((uchar*) (T))[5]= (uchar) (def_temp);\ + ((uchar*) (T))[4]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[3]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[2]= (uchar) (def_temp >> 24);\ + ((uchar*) (T))[1]= (uchar) (def_temp2);\ + ((uchar*) (T))[0]= (uchar) (def_temp2 >> 8); } +#define mi_int7store(T,A) { ulong def_temp= (ulong) (A),\ + def_temp2= (ulong) ((A) >> 32);\ + ((uchar*) (T))[6]= (uchar) (def_temp);\ + ((uchar*) (T))[5]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[4]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[3]= (uchar) (def_temp >> 24);\ + ((uchar*) (T))[2]= (uchar) (def_temp2);\ + ((uchar*) (T))[1]= (uchar) (def_temp2 >> 8);\ + ((uchar*) (T))[0]= (uchar) (def_temp2 >> 16); } +#define mi_int8store(T,A) { ulong def_temp3= (ulong) (A),\ + def_temp4= (ulong) ((A) >> 32);\ + mi_int4store((uchar*) (T) + 0, def_temp4);\ + mi_int4store((uchar*) (T) + 4, def_temp3); } + +#ifdef WORDS_BIGENDIAN + +#define mi_float4store(T,A) { ((uchar*) (T))[0]= ((uchar*) &A)[0];\ + ((uchar*) (T))[1]= ((uchar*) &A)[1];\ + ((uchar*) (T))[2]= ((uchar*) &A)[2];\ + ((uchar*) (T))[3]= ((uchar*) &A)[3]; } + +#define mi_float4get(V,M) { float def_temp;\ + ((uchar*) &def_temp)[0]= ((uchar*) (M))[0];\ + ((uchar*) &def_temp)[1]= ((uchar*) (M))[1];\ + ((uchar*) &def_temp)[2]= ((uchar*) (M))[2];\ + ((uchar*) &def_temp)[3]= ((uchar*) (M))[3];\ + (V)= def_temp; } + +#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((uchar*) &V)[0];\ + ((uchar*) (T))[1]= ((uchar*) &V)[1];\ + ((uchar*) (T))[2]= ((uchar*) &V)[2];\ + ((uchar*) (T))[3]= ((uchar*) &V)[3];\ + ((uchar*) (T))[4]= ((uchar*) &V)[4];\ + ((uchar*) (T))[5]= ((uchar*) &V)[5];\ + ((uchar*) (T))[6]= ((uchar*) &V)[6];\ + ((uchar*) (T))[7]= ((uchar*) &V)[7]; } + +#define mi_float8get(V,M) { double def_temp;\ + ((uchar*) &def_temp)[0]= ((uchar*) (M))[0];\ + ((uchar*) &def_temp)[1]= ((uchar*) (M))[1];\ + ((uchar*) &def_temp)[2]= ((uchar*) (M))[2];\ + ((uchar*) &def_temp)[3]= ((uchar*) (M))[3];\ + ((uchar*) &def_temp)[4]= ((uchar*) (M))[4];\ + ((uchar*) &def_temp)[5]= ((uchar*) (M))[5];\ + ((uchar*) &def_temp)[6]= ((uchar*) (M))[6];\ + ((uchar*) &def_temp)[7]= ((uchar*) (M))[7]; \ + (V)= def_temp; } +#else + +#define mi_float4store(T,A) { ((uchar*) (T))[0]= ((uchar*) &A)[3];\ + ((uchar*) (T))[1]= ((uchar*) &A)[2];\ + ((uchar*) (T))[2]= ((uchar*) &A)[1];\ + ((uchar*) (T))[3]= ((uchar*) &A)[0]; } + +#define mi_float4get(V,M) { float def_temp;\ + ((uchar*) &def_temp)[0]= ((uchar*) (M))[3];\ + ((uchar*) &def_temp)[1]= ((uchar*) (M))[2];\ + ((uchar*) &def_temp)[2]= ((uchar*) (M))[1];\ + ((uchar*) &def_temp)[3]= ((uchar*) (M))[0];\ + (V)= def_temp; } + +#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) +#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((uchar*) &V)[3];\ + ((uchar*) (T))[1]= ((uchar*) &V)[2];\ + ((uchar*) (T))[2]= ((uchar*) &V)[1];\ + ((uchar*) (T))[3]= ((uchar*) &V)[0];\ + ((uchar*) (T))[4]= ((uchar*) &V)[7];\ + ((uchar*) (T))[5]= ((uchar*) &V)[6];\ + ((uchar*) (T))[6]= ((uchar*) &V)[5];\ + ((uchar*) (T))[7]= ((uchar*) &V)[4];} + +#define mi_float8get(V,M) { double def_temp;\ + ((uchar*) &def_temp)[0]= ((uchar*) (M))[3];\ + ((uchar*) &def_temp)[1]= ((uchar*) (M))[2];\ + ((uchar*) &def_temp)[2]= ((uchar*) (M))[1];\ + ((uchar*) &def_temp)[3]= ((uchar*) (M))[0];\ + ((uchar*) &def_temp)[4]= ((uchar*) (M))[7];\ + ((uchar*) &def_temp)[5]= ((uchar*) (M))[6];\ + ((uchar*) &def_temp)[6]= ((uchar*) (M))[5];\ + ((uchar*) &def_temp)[7]= ((uchar*) (M))[4];\ + (V)= def_temp; } + +#else +#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((uchar*) &V)[7];\ + ((uchar*) (T))[1]= ((uchar*) &V)[6];\ + ((uchar*) (T))[2]= ((uchar*) &V)[5];\ + ((uchar*) (T))[3]= ((uchar*) &V)[4];\ + ((uchar*) (T))[4]= ((uchar*) &V)[3];\ + ((uchar*) (T))[5]= ((uchar*) &V)[2];\ + ((uchar*) (T))[6]= ((uchar*) &V)[1];\ + ((uchar*) (T))[7]= ((uchar*) &V)[0];} + +#define mi_float8get(V,M) { double def_temp;\ + ((uchar*) &def_temp)[0]= ((uchar*) (M))[7];\ + ((uchar*) &def_temp)[1]= ((uchar*) (M))[6];\ + ((uchar*) &def_temp)[2]= ((uchar*) (M))[5];\ + ((uchar*) &def_temp)[3]= ((uchar*) (M))[4];\ + ((uchar*) &def_temp)[4]= ((uchar*) (M))[3];\ + ((uchar*) &def_temp)[5]= ((uchar*) (M))[2];\ + ((uchar*) &def_temp)[6]= ((uchar*) (M))[1];\ + ((uchar*) &def_temp)[7]= ((uchar*) (M))[0];\ + (V)= def_temp; } +#endif /* __FLOAT_WORD_ORDER */ +#endif /* WORDS_BIGENDIAN */ + +#define mi_rowstore(T,A) mi_int8store(T, A) +#define mi_rowkorr(T) mi_uint8korr(T) + +#if SIZEOF_OFF_T > 4 +#define mi_sizestore(T,A) mi_int8store(T, A) +#define mi_sizekorr(T) mi_uint8korr(T) +#else +#define mi_sizestore(T,A) { if ((A) == HA_OFFSET_ERROR)\ + memset((T), 255, 8);\ + else { mi_int4store((T), 0);\ + mi_int4store(((T) + 4), A); }} +#define mi_sizekorr(T) mi_uint4korr((uchar*) (T) + 4) +#endif +#endif /* MYISAMPACK_INCLUDED */ diff --git a/mysql/mysql.h b/mysql/mysql.h new file mode 100644 index 0000000..768e541 --- /dev/null +++ b/mysql/mysql.h @@ -0,0 +1,728 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + This file defines the client API to MySQL and also the ABI of the + dynamically linked libmysqlclient. + + The ABI should never be changed in a released product of MySQL, + thus you need to take great care when changing the file. In case + the file is changed so the ABI is broken, you must also update + the SHARED_LIB_MAJOR_VERSION in cmake/mysql_version.cmake +*/ + +#ifndef _mysql_h +#define _mysql_h + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MY_GLOBAL_INCLUDED /* If not standard header */ +#ifndef MYSQL_ABI_CHECK +#include +#endif +typedef char my_bool; +#if !defined(_WIN32) +#define STDCALL +#else +#define STDCALL __stdcall +#endif + +#ifndef my_socket_defined +#ifdef _WIN32 +#include +#ifdef WIN32_LEAN_AND_MEAN +#include +#endif +#define my_socket SOCKET +#else +typedef int my_socket; +#endif /* _WIN32 */ +#endif /* my_socket_defined */ +#endif /* MY_GLOBAL_INCLUDED */ + +#include "mysql_version.h" +#include "mysql_com.h" +#include "mysql_time.h" + +#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */ + +/* Include declarations of plug-in API */ +#include "mysql/client_plugin.h" + +extern unsigned int mysql_port; +extern char *mysql_unix_port; + +#define CLIENT_NET_READ_TIMEOUT 365*24*3600 /* Timeout on read */ +#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600 /* Timeout on write */ + +#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) +#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) +#define IS_BLOB(n) ((n) & BLOB_FLAG) +/** + Returns true if the value is a number which does not need quotes for + the sql_lex.cc parser to parse correctly. +*/ +#define IS_NUM(t) (((t) <= MYSQL_TYPE_INT24 && (t) != MYSQL_TYPE_TIMESTAMP) || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL) +#define IS_LONGDATA(t) ((t) >= MYSQL_TYPE_TINY_BLOB && (t) <= MYSQL_TYPE_STRING) + + +typedef struct st_mysql_field { + char *name; /* Name of column */ + char *org_name; /* Original column name, if an alias */ + char *table; /* Table of column if column was a field */ + char *org_table; /* Org table name, if table was an alias */ + char *db; /* Database for table */ + char *catalog; /* Catalog for table */ + char *def; /* Default value (set by mysql_list_fields) */ + unsigned long length; /* Width of column (create length) */ + unsigned long max_length; /* Max width for selected set */ + unsigned int name_length; + unsigned int org_name_length; + unsigned int table_length; + unsigned int org_table_length; + unsigned int db_length; + unsigned int catalog_length; + unsigned int def_length; + unsigned int flags; /* Div flags */ + unsigned int decimals; /* Number of decimals in field */ + unsigned int charsetnr; /* Character set */ + enum enum_field_types type; /* Type of field. See mysql_com.h for types */ + void *extension; +} MYSQL_FIELD; + +typedef char **MYSQL_ROW; /* return data as array of strings */ +typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */ + +#ifndef MY_GLOBAL_INCLUDED +#if defined (_WIN32) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif +#endif + +#include "typelib.h" + +#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0) + +/* backward compatibility define - to be removed eventually */ +#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED + +typedef struct st_mysql_rows { + struct st_mysql_rows *next; /* list of rows */ + MYSQL_ROW data; + unsigned long length; +} MYSQL_ROWS; + +typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ + +#include "my_alloc.h" + +typedef struct embedded_query_result EMBEDDED_QUERY_RESULT; +typedef struct st_mysql_data { + MYSQL_ROWS *data; + struct embedded_query_result *embedded_info; + MEM_ROOT alloc; + my_ulonglong rows; + unsigned int fields; + /* extra info for embedded library */ + void *extension; +} MYSQL_DATA; + +enum mysql_option +{ + MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, + MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, + MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, + MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, + MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT, + MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION, + MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH, + MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT, + MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH, + MYSQL_OPT_BIND, + MYSQL_OPT_SSL_KEY, MYSQL_OPT_SSL_CERT, + MYSQL_OPT_SSL_CA, MYSQL_OPT_SSL_CAPATH, MYSQL_OPT_SSL_CIPHER, + MYSQL_OPT_SSL_CRL, MYSQL_OPT_SSL_CRLPATH, + MYSQL_OPT_CONNECT_ATTR_RESET, MYSQL_OPT_CONNECT_ATTR_ADD, + MYSQL_OPT_CONNECT_ATTR_DELETE, + MYSQL_SERVER_PUBLIC_KEY, + MYSQL_ENABLE_CLEARTEXT_PLUGIN, + MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, + MYSQL_OPT_SSL_ENFORCE, + MYSQL_OPT_MAX_ALLOWED_PACKET, MYSQL_OPT_NET_BUFFER_LENGTH, + MYSQL_OPT_TLS_VERSION, + MYSQL_OPT_SSL_MODE +}; + +/** + @todo remove the "extension", move st_mysql_options completely + out of mysql.h +*/ +struct st_mysql_options_extention; + +struct st_mysql_options { + unsigned int connect_timeout, read_timeout, write_timeout; + unsigned int port, protocol; + unsigned long client_flag; + char *host,*user,*password,*unix_socket,*db; + struct st_dynamic_array *init_commands; + char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; + char *ssl_key; /* PEM key file */ + char *ssl_cert; /* PEM cert file */ + char *ssl_ca; /* PEM CA file */ + char *ssl_capath; /* PEM directory of CA-s? */ + char *ssl_cipher; /* cipher to use */ + char *shared_memory_base_name; + unsigned long max_allowed_packet; + my_bool use_ssl; /* Deprecated ! Former use_ssl */ + my_bool compress,named_pipe; + my_bool unused1; + my_bool unused2; + my_bool unused3; + my_bool unused4; + enum mysql_option methods_to_use; + union { + /* + The ip/hostname to use when authenticating + client against embedded server built with + grant tables - only used in embedded server + */ + char *client_ip; + + /* + The local address to bind when connecting to + remote server - not used in embedded server + */ + char *bind_address; + } ci; + my_bool unused5; + /* 0 - never report, 1 - always report (default) */ + my_bool report_data_truncation; + + /* function pointers for local infile support */ + int (*local_infile_init)(void **, const char *, void *); + int (*local_infile_read)(void *, char *, unsigned int); + void (*local_infile_end)(void *); + int (*local_infile_error)(void *, char *, unsigned int); + void *local_infile_userdata; + struct st_mysql_options_extention *extension; +}; + +enum mysql_status +{ + MYSQL_STATUS_READY, MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT, + MYSQL_STATUS_STATEMENT_GET_RESULT +}; + +enum mysql_protocol_type +{ + MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, + MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY +}; + +enum mysql_ssl_mode +{ + SSL_MODE_DISABLED= 1, SSL_MODE_PREFERRED, SSL_MODE_REQUIRED, + SSL_MODE_VERIFY_CA, SSL_MODE_VERIFY_IDENTITY +}; + +typedef struct character_set +{ + unsigned int number; /* character set number */ + unsigned int state; /* character set state */ + const char *csname; /* collation name */ + const char *name; /* character set name */ + const char *comment; /* comment */ + const char *dir; /* character set directory */ + unsigned int mbminlen; /* min. length for multibyte strings */ + unsigned int mbmaxlen; /* max. length for multibyte strings */ +} MY_CHARSET_INFO; + +struct st_mysql_methods; +struct st_mysql_stmt; + +typedef struct st_mysql +{ + NET net; /* Communication parameters */ + unsigned char *connector_fd; /* ConnectorFd for SSL */ + char *host,*user,*passwd,*unix_socket,*server_version,*host_info; + char *info, *db; + struct charset_info_st *charset; + MYSQL_FIELD *fields; + MEM_ROOT field_alloc; + my_ulonglong affected_rows; + my_ulonglong insert_id; /* id if insert on table with NEXTNR */ + my_ulonglong extra_info; /* Not used */ + unsigned long thread_id; /* Id for connection in server */ + unsigned long packet_length; + unsigned int port; + unsigned long client_flag,server_capabilities; + unsigned int protocol_version; + unsigned int field_count; + unsigned int server_status; + unsigned int server_language; + unsigned int warning_count; + struct st_mysql_options options; + enum mysql_status status; + my_bool free_me; /* If free in mysql_close */ + my_bool reconnect; /* set to 1 if automatic reconnect */ + + /* session-wide random string */ + char scramble[SCRAMBLE_LENGTH+1]; + my_bool unused1; + void *unused2, *unused3, *unused4, *unused5; + + LIST *stmts; /* list of all statements */ + const struct st_mysql_methods *methods; + void *thd; + /* + Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag + from mysql_stmt_close if close had to cancel result set of this object. + */ + my_bool *unbuffered_fetch_owner; + /* needed for embedded server - no net buffer to store the 'info' */ + char *info_buffer; + void *extension; +} MYSQL; + + +typedef struct st_mysql_res { + my_ulonglong row_count; + MYSQL_FIELD *fields; + MYSQL_DATA *data; + MYSQL_ROWS *data_cursor; + unsigned long *lengths; /* column lengths of current row */ + MYSQL *handle; /* for unbuffered reads */ + const struct st_mysql_methods *methods; + MYSQL_ROW row; /* If unbuffered read */ + MYSQL_ROW current_row; /* buffer to current row */ + MEM_ROOT field_alloc; + unsigned int field_count, current_field; + my_bool eof; /* Used by mysql_fetch_row */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + void *extension; +} MYSQL_RES; + + +#if !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT) +#define MYSQL_CLIENT +#endif + +/* + Set up and bring down the server; to ensure that applications will + work when linked against either the standard client library or the + embedded server library, these functions should be called. +*/ +int STDCALL mysql_server_init(int argc, char **argv, char **groups); +void STDCALL mysql_server_end(void); + +/* + mysql_server_init/end need to be called when using libmysqld or + libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so + you don't need to call it explicitely; but you need to call + mysql_server_end() to free memory). The names are a bit misleading + (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general + names which suit well whether you're using libmysqld or libmysqlclient. We + intend to promote these aliases over the mysql_server* ones. +*/ +#define mysql_library_init mysql_server_init +#define mysql_library_end mysql_server_end + + +/* + Set up and bring down a thread; these function should be called + for each thread in an application which opens at least one MySQL + connection. All uses of the connection(s) should be between these + function calls. +*/ +my_bool STDCALL mysql_thread_init(void); +void STDCALL mysql_thread_end(void); + +/* + Functions to get information from the MYSQL and MYSQL_RES structures + Should definitely be used if one uses shared libraries. +*/ + +my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res); +unsigned int STDCALL mysql_num_fields(MYSQL_RES *res); +my_bool STDCALL mysql_eof(MYSQL_RES *res); +MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, + unsigned int fieldnr); +MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res); +MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res); +MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res); + +unsigned int STDCALL mysql_field_count(MYSQL *mysql); +my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql); +my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql); +unsigned int STDCALL mysql_errno(MYSQL *mysql); +const char * STDCALL mysql_error(MYSQL *mysql); +const char *STDCALL mysql_sqlstate(MYSQL *mysql); +unsigned int STDCALL mysql_warning_count(MYSQL *mysql); +const char * STDCALL mysql_info(MYSQL *mysql); +unsigned long STDCALL mysql_thread_id(MYSQL *mysql); +const char * STDCALL mysql_character_set_name(MYSQL *mysql); +int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname); + +MYSQL * STDCALL mysql_init(MYSQL *mysql); +my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, + const char *cert, const char *ca, + const char *capath, const char *cipher); +const char * STDCALL mysql_get_ssl_cipher(MYSQL *mysql); +my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, + const char *passwd, const char *db); +MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, + const char *user, + const char *passwd, + const char *db, + unsigned int port, + const char *unix_socket, + unsigned long clientflag); +int STDCALL mysql_select_db(MYSQL *mysql, const char *db); +int STDCALL mysql_query(MYSQL *mysql, const char *q); +int STDCALL mysql_send_query(MYSQL *mysql, const char *q, + unsigned long length); +int STDCALL mysql_real_query(MYSQL *mysql, const char *q, + unsigned long length); +MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); + +void STDCALL mysql_get_character_set_info(MYSQL *mysql, + MY_CHARSET_INFO *charset); + +int STDCALL mysql_session_track_get_first(MYSQL *mysql, + enum enum_session_state_type type, + const char **data, + size_t *length); +int STDCALL mysql_session_track_get_next(MYSQL *mysql, + enum enum_session_state_type type, + const char **data, + size_t *length); +/* local infile support */ + +#define LOCAL_INFILE_ERROR_LEN 512 + +void +mysql_set_local_infile_handler(MYSQL *mysql, + int (*local_infile_init)(void **, const char *, + void *), + int (*local_infile_read)(void *, char *, + unsigned int), + void (*local_infile_end)(void *), + int (*local_infile_error)(void *, char*, + unsigned int), + void *); + +void +mysql_set_local_infile_default(MYSQL *mysql); + +int STDCALL mysql_shutdown(MYSQL *mysql, + enum mysql_enum_shutdown_level + shutdown_level); +int STDCALL mysql_dump_debug_info(MYSQL *mysql); +int STDCALL mysql_refresh(MYSQL *mysql, + unsigned int refresh_options); +int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid); +int STDCALL mysql_set_server_option(MYSQL *mysql, + enum enum_mysql_set_option + option); +int STDCALL mysql_ping(MYSQL *mysql); +const char * STDCALL mysql_stat(MYSQL *mysql); +const char * STDCALL mysql_get_server_info(MYSQL *mysql); +const char * STDCALL mysql_get_client_info(void); +unsigned long STDCALL mysql_get_client_version(void); +const char * STDCALL mysql_get_host_info(MYSQL *mysql); +unsigned long STDCALL mysql_get_server_version(MYSQL *mysql); +unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild); +MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild); +MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql); +int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, + const void *arg); +int STDCALL mysql_options4(MYSQL *mysql,enum mysql_option option, + const void *arg1, const void *arg2); +int STDCALL mysql_get_option(MYSQL *mysql, enum mysql_option option, + const void *arg); +void STDCALL mysql_free_result(MYSQL_RES *result); +void STDCALL mysql_data_seek(MYSQL_RES *result, + my_ulonglong offset); +MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, + MYSQL_ROW_OFFSET offset); +MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, + MYSQL_FIELD_OFFSET offset); +MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); +unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); +MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); +MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, + const char *wild); +unsigned long STDCALL mysql_escape_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_hex_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, + char *to,const char *from, + unsigned long length); +unsigned long STDCALL mysql_real_escape_string_quote(MYSQL *mysql, + char *to, const char *from, + unsigned long length, char quote); +void STDCALL mysql_debug(const char *debug); +void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); +unsigned int STDCALL mysql_thread_safe(void); +my_bool STDCALL mysql_embedded(void); +my_bool STDCALL mysql_read_query_result(MYSQL *mysql); +int STDCALL mysql_reset_connection(MYSQL *mysql); + +/* + The following definitions are added for the enhanced + client-server protocol +*/ + +/* statement state */ +enum enum_mysql_stmt_state +{ + MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, + MYSQL_STMT_FETCH_DONE +}; + + +/* + This structure is used to define bind information, and + internally by the client library. + Public members with their descriptions are listed below + (conventionally `On input' refers to the binds given to + mysql_stmt_bind_param, `On output' refers to the binds given + to mysql_stmt_bind_result): + + buffer_type - One of the MYSQL_* types, used to describe + the host language type of buffer. + On output: if column type is different from + buffer_type, column value is automatically converted + to buffer_type before it is stored in the buffer. + buffer - On input: points to the buffer with input data. + On output: points to the buffer capable to store + output data. + The type of memory pointed by buffer must correspond + to buffer_type. See the correspondence table in + the comment to mysql_stmt_bind_param. + + The two above members are mandatory for any kind of bind. + + buffer_length - the length of the buffer. You don't have to set + it for any fixed length buffer: float, double, + int, etc. It must be set however for variable-length + types, such as BLOBs or STRINGs. + + length - On input: in case when lengths of input values + are different for each execute, you can set this to + point at a variable containining value length. This + way the value length can be different in each execute. + If length is not NULL, buffer_length is not used. + Note, length can even point at buffer_length if + you keep bind structures around while fetching: + this way you can change buffer_length before + each execution, everything will work ok. + On output: if length is set, mysql_stmt_fetch will + write column length into it. + + is_null - On input: points to a boolean variable that should + be set to TRUE for NULL values. + This member is useful only if your data may be + NULL in some but not all cases. + If your data is never NULL, is_null should be set to 0. + If your data is always NULL, set buffer_type + to MYSQL_TYPE_NULL, and is_null will not be used. + + is_unsigned - On input: used to signify that values provided for one + of numeric types are unsigned. + On output describes signedness of the output buffer. + If, taking into account is_unsigned flag, column data + is out of range of the output buffer, data for this column + is regarded truncated. Note that this has no correspondence + to the sign of result set column, if you need to find it out + use mysql_stmt_result_metadata. + error - where to write a truncation error if it is present. + possible error value is: + 0 no truncation + 1 value is out of range or buffer is too small + + Please note that MYSQL_BIND also has internals members. +*/ + +typedef struct st_mysql_bind +{ + unsigned long *length; /* output length pointer */ + my_bool *is_null; /* Pointer to null indicator */ + void *buffer; /* buffer to get/put data */ + /* set this if you want to track data truncations happened during fetch */ + my_bool *error; + unsigned char *row_ptr; /* for the current data position */ + void (*store_param_func)(NET *net, struct st_mysql_bind *param); + void (*fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); + void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); + /* output buffer length, must be set when fetching str/binary */ + unsigned long buffer_length; + unsigned long offset; /* offset position for char/binary fetch */ + unsigned long length_value; /* Used if length is 0 */ + unsigned int param_number; /* For null count and error messages */ + unsigned int pack_length; /* Internal length for packed data */ + enum enum_field_types buffer_type; /* buffer type */ + my_bool error_value; /* used if error is 0 */ + my_bool is_unsigned; /* set if integer type is unsigned */ + my_bool long_data_used; /* If used with mysql_send_long_data */ + my_bool is_null_value; /* Used if is_null is 0 */ + void *extension; +} MYSQL_BIND; + + +struct st_mysql_stmt_extension; + +/* statement handler */ +typedef struct st_mysql_stmt +{ + MEM_ROOT mem_root; /* root allocations */ + LIST list; /* list to keep track of all stmts */ + MYSQL *mysql; /* connection handle */ + MYSQL_BIND *params; /* input parameters */ + MYSQL_BIND *bind; /* output parameters */ + MYSQL_FIELD *fields; /* result set metadata */ + MYSQL_DATA result; /* cached result set */ + MYSQL_ROWS *data_cursor; /* current row in cached result */ + /* + mysql_stmt_fetch() calls this function to fetch one row (it's different + for buffered, unbuffered and cursor fetch). + */ + int (*read_row_func)(struct st_mysql_stmt *stmt, + unsigned char **row); + /* copy of mysql->affected_rows after statement execution */ + my_ulonglong affected_rows; + my_ulonglong insert_id; /* copy of mysql->insert_id */ + unsigned long stmt_id; /* Id for prepared statement */ + unsigned long flags; /* i.e. type of cursor to open */ + unsigned long prefetch_rows; /* number of rows per one COM_FETCH */ + /* + Copied from mysql->server_status after execute/fetch to know + server-side cursor status for this statement. + */ + unsigned int server_status; + unsigned int last_errno; /* error code */ + unsigned int param_count; /* input parameter count */ + unsigned int field_count; /* number of columns in result set */ + enum enum_mysql_stmt_state state; /* statement state */ + char last_error[MYSQL_ERRMSG_SIZE]; /* error message */ + char sqlstate[SQLSTATE_LENGTH+1]; + /* Types of input parameters should be sent to server */ + my_bool send_types_to_server; + my_bool bind_param_done; /* input buffers were supplied */ + unsigned char bind_result_done; /* output buffers were supplied */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + /* + Is set to true if we need to calculate field->max_length for + metadata fields when doing mysql_stmt_store_result. + */ + my_bool update_max_length; + struct st_mysql_stmt_extension *extension; +} MYSQL_STMT; + +enum enum_stmt_attr_type +{ + /* + When doing mysql_stmt_store_result calculate max_length attribute + of statement metadata. This is to be consistent with the old API, + where this was done automatically. + In the new API we do that only by request because it slows down + mysql_stmt_store_result sufficiently. + */ + STMT_ATTR_UPDATE_MAX_LENGTH, + /* + unsigned long with combination of cursor flags (read only, for update, + etc) + */ + STMT_ATTR_CURSOR_TYPE, + /* + Amount of rows to retrieve from server per one fetch if using cursors. + Accepts unsigned long attribute in the range 1 - ulong_max + */ + STMT_ATTR_PREFETCH_ROWS +}; + + +MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql); +int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, + unsigned long length); +int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind_arg, + unsigned int column, + unsigned long offset); +int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt); +unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + const void *attr); +my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + void *attr); +my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt); +my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, + unsigned int param_number, + const char *data, + unsigned long length); +MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt); +MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, + MYSQL_ROW_OFFSET offset); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt); +void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset); +my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt); + +my_bool STDCALL mysql_commit(MYSQL * mysql); +my_bool STDCALL mysql_rollback(MYSQL * mysql); +my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode); +my_bool STDCALL mysql_more_results(MYSQL *mysql); +int STDCALL mysql_next_result(MYSQL *mysql); +int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt); +void STDCALL mysql_close(MYSQL *sock); + + +/* status return codes */ +#define MYSQL_NO_DATA 100 +#define MYSQL_DATA_TRUNCATED 101 + +#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) + +#define HAVE_MYSQL_REAL_CONNECT + +#ifdef __cplusplus +} +#endif + +#endif /* _mysql_h */ diff --git a/mysql/mysql/client_authentication.h b/mysql/mysql/client_authentication.h new file mode 100644 index 0000000..8943579 --- /dev/null +++ b/mysql/mysql/client_authentication.h @@ -0,0 +1,28 @@ +/* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef CLIENT_AUTHENTICATION_H +#define CLIENT_AUTHENTICATION_H +#include +#include "mysql.h" +#include "mysql/client_plugin.h" + +C_MODE_START +int sha256_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql); +int sha256_password_init(char *, size_t, int, va_list); +int sha256_password_deinit(void); +C_MODE_END + +#endif + diff --git a/mysql/mysql/client_plugin.h b/mysql/mysql/client_plugin.h new file mode 100644 index 0000000..d6471db --- /dev/null +++ b/mysql/mysql/client_plugin.h @@ -0,0 +1,202 @@ +#ifndef MYSQL_CLIENT_PLUGIN_INCLUDED +/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + + MySQL Client Plugin API + + This file defines the API for plugins that work on the client side +*/ +#define MYSQL_CLIENT_PLUGIN_INCLUDED + +#ifndef MYSQL_ABI_CHECK +#include +#include +#endif + +/* + On Windows, exports from DLL need to be declared. + Also, plugin needs to be declared as extern "C" because MSVC + unlike other compilers, uses C++ mangling for variables not only + for functions. +*/ + +#undef MYSQL_PLUGIN_EXPORT + +#if defined(_MSC_VER) +#if defined(MYSQL_DYNAMIC_PLUGIN) + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport) + #else + #define MYSQL_PLUGIN_EXPORT __declspec(dllexport) + #endif +#else /* MYSQL_DYNAMIC_PLUGIN */ + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" + #else + #define MYSQL_PLUGIN_EXPORT + #endif +#endif /*MYSQL_DYNAMIC_PLUGIN */ +#else /*_MSC_VER */ +#define MYSQL_PLUGIN_EXPORT +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +/* known plugin types */ +#define MYSQL_CLIENT_reserved1 0 +#define MYSQL_CLIENT_reserved2 1 +#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN 2 +#define MYSQL_CLIENT_TRACE_PLUGIN 3 + +#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION 0x0100 +#define MYSQL_CLIENT_TRACE_PLUGIN_INTERFACE_VERSION 0x0100 + +#define MYSQL_CLIENT_MAX_PLUGINS 4 + +#define mysql_declare_client_plugin(X) \ + MYSQL_PLUGIN_EXPORT struct st_mysql_client_plugin_ ## X \ + _mysql_client_plugin_declaration_ = { \ + MYSQL_CLIENT_ ## X ## _PLUGIN, \ + MYSQL_CLIENT_ ## X ## _PLUGIN_INTERFACE_VERSION, +#define mysql_end_client_plugin } + +/* generic plugin header structure */ +#define MYSQL_CLIENT_PLUGIN_HEADER \ + int type; \ + unsigned int interface_version; \ + const char *name; \ + const char *author; \ + const char *desc; \ + unsigned int version[3]; \ + const char *license; \ + void *mysql_api; \ + int (*init)(char *, size_t, int, va_list); \ + int (*deinit)(void); \ + int (*options)(const char *option, const void *); + +struct st_mysql_client_plugin +{ + MYSQL_CLIENT_PLUGIN_HEADER +}; + +struct st_mysql; + +/******** authentication plugin specific declarations *********/ +#include "plugin_auth_common.h" + +struct st_mysql_client_plugin_AUTHENTICATION +{ + MYSQL_CLIENT_PLUGIN_HEADER + int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql); +}; + +/******** using plugins ************/ + +/** + loads a plugin and initializes it + + @param mysql MYSQL structure. + @param name a name of the plugin to load + @param type type of plugin that should be loaded, -1 to disable type check + @param argc number of arguments to pass to the plugin initialization + function + @param ... arguments for the plugin initialization function + + @retval + a pointer to the loaded plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_load_plugin(struct st_mysql *mysql, const char *name, int type, + int argc, ...); + +/** + loads a plugin and initializes it, taking va_list as an argument + + This is the same as mysql_load_plugin, but take va_list instead of + a list of arguments. + + @param mysql MYSQL structure. + @param name a name of the plugin to load + @param type type of plugin that should be loaded, -1 to disable type check + @param argc number of arguments to pass to the plugin initialization + function + @param args arguments for the plugin initialization function + + @retval + a pointer to the loaded plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_load_plugin_v(struct st_mysql *mysql, const char *name, int type, + int argc, va_list args); + +/** + finds an already loaded plugin by name, or loads it, if necessary + + @param mysql MYSQL structure. + @param name a name of the plugin to load + @param type type of plugin that should be loaded + + @retval + a pointer to the plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_client_find_plugin(struct st_mysql *mysql, const char *name, int type); + +/** + adds a plugin structure to the list of loaded plugins + + This is useful if an application has the necessary functionality + (for example, a special load data handler) statically linked into + the application binary. It can use this function to register the plugin + directly, avoiding the need to factor it out into a shared object. + + @param mysql MYSQL structure. It is only used for error reporting + @param plugin an st_mysql_client_plugin structure to register + + @retval + a pointer to the plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_client_register_plugin(struct st_mysql *mysql, + struct st_mysql_client_plugin *plugin); + +/** + set plugin options + + Can be used to set extra options and affect behavior for a plugin. + This function may be called multiple times to set several options + + @param plugin an st_mysql_client_plugin structure + @param option a string which specifies the option to set + @param value value for the option. + + @retval 0 on success, 1 in case of failure +**/ +int mysql_plugin_options(struct st_mysql_client_plugin *plugin, + const char *option, const void *value); + + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/mysql/mysql/com_data.h b/mysql/mysql/com_data.h new file mode 100644 index 0000000..2fe9cf2 --- /dev/null +++ b/mysql/mysql/com_data.h @@ -0,0 +1,125 @@ +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; version 2 of the License. + + This program 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 General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., 51 + Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef PLUGIN_PROTOCOL_INCLUDED +#define PLUGIN_PROTOCOL_INCLUDED + +#ifndef MYSQL_ABI_CHECK +#include "my_global.h" /* Needed for my_bool in mysql_com.h */ +#include "mysql_com.h" /* mysql_enum_shutdown_level */ +#endif + + +/** +@file + Definition of COM_DATA to be used with the Command service as data input + structure. +*/ + + +typedef struct st_com_init_db_data +{ + const char *db_name; + unsigned long length; +} COM_INIT_DB_DATA; + +typedef struct st_com_refresh_data +{ + unsigned char options; +} COM_REFRESH_DATA; + +typedef struct st_com_shutdown_data +{ + enum mysql_enum_shutdown_level level; +} COM_SHUTDOWN_DATA; + +typedef struct st_com_kill_data +{ + unsigned long id; +} COM_KILL_DATA; + +typedef struct st_com_set_option_data +{ + unsigned int opt_command; +} COM_SET_OPTION_DATA; + +typedef struct st_com_stmt_execute_data +{ + unsigned long stmt_id; + unsigned long flags; + unsigned char *params; + unsigned long params_length; +} COM_STMT_EXECUTE_DATA; + +typedef struct st_com_stmt_fetch_data +{ + unsigned long stmt_id; + unsigned long num_rows; +} COM_STMT_FETCH_DATA; + +typedef struct st_com_stmt_send_long_data_data +{ + unsigned long stmt_id; + unsigned int param_number; + unsigned char *longdata; + unsigned long length; +} COM_STMT_SEND_LONG_DATA_DATA; + +typedef struct st_com_stmt_prepare_data +{ + const char *query; + unsigned int length; +} COM_STMT_PREPARE_DATA; + +typedef struct st_stmt_close_data +{ + unsigned int stmt_id; +} COM_STMT_CLOSE_DATA; + +typedef struct st_com_stmt_reset_data +{ + unsigned int stmt_id; +} COM_STMT_RESET_DATA; + +typedef struct st_com_query_data +{ + const char *query; + unsigned int length; +} COM_QUERY_DATA; + +typedef struct st_com_field_list_data +{ + unsigned char *table_name; + unsigned int table_name_length; + const unsigned char *query; + unsigned int query_length; +} COM_FIELD_LIST_DATA; + +union COM_DATA { + COM_INIT_DB_DATA com_init_db; + COM_REFRESH_DATA com_refresh; + COM_SHUTDOWN_DATA com_shutdown; + COM_KILL_DATA com_kill; + COM_SET_OPTION_DATA com_set_option; + COM_STMT_EXECUTE_DATA com_stmt_execute; + COM_STMT_FETCH_DATA com_stmt_fetch; + COM_STMT_SEND_LONG_DATA_DATA com_stmt_send_long_data; + COM_STMT_PREPARE_DATA com_stmt_prepare; + COM_STMT_CLOSE_DATA com_stmt_close; + COM_STMT_RESET_DATA com_stmt_reset; + COM_QUERY_DATA com_query; + COM_FIELD_LIST_DATA com_field_list; +}; + +#endif /* PLUGIN_PROTOCOL_INCLUDED */ diff --git a/mysql/mysql/get_password.h b/mysql/mysql/get_password.h new file mode 100644 index 0000000..a633c58 --- /dev/null +++ b/mysql/mysql/get_password.h @@ -0,0 +1,36 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* +** Ask for a password from tty +** This is an own file to avoid conflicts with curses +*/ + +#ifndef MYSQL_GET_PASSWORD_H_INCLUDED +#define MYSQL_GET_PASSWORD_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +typedef char *(* strdup_handler_t)(const char *, int); +char *get_tty_password_ext(const char *opt_message, + strdup_handler_t strdup_function); + +#ifdef __cplusplus +} +#endif + +#endif /* ! MYSQL_GET_PASSWORD_H_INCLUDED */ diff --git a/mysql/mysql/mysql_lex_string.h b/mysql/mysql/mysql_lex_string.h new file mode 100644 index 0000000..ce3b6e4 --- /dev/null +++ b/mysql/mysql/mysql_lex_string.h @@ -0,0 +1,33 @@ +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_LEX_STRING_INCLUDED +#define MYSQL_LEX_STRING_INCLUDED + +struct st_mysql_lex_string +{ + char *str; + size_t length; +}; +typedef struct st_mysql_lex_string MYSQL_LEX_STRING; + +struct st_mysql_const_lex_string +{ + const char *str; + size_t length; +}; +typedef struct st_mysql_const_lex_string MYSQL_LEX_CSTRING; + +#endif // MYSQL_LEX_STRING_INCLUDED diff --git a/mysql/mysql/plugin.h b/mysql/mysql/plugin.h new file mode 100644 index 0000000..d683203 --- /dev/null +++ b/mysql/mysql/plugin.h @@ -0,0 +1,744 @@ +/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _my_plugin_h +#define _my_plugin_h + +#ifndef MYSQL_ABI_CHECK +#include +#include "mysql_version.h" /* MYSQL_VERSION_ID */ +#endif + +/* + On Windows, exports from DLL need to be declared. + Also, plugin needs to be declared as extern "C" because MSVC + unlike other compilers, uses C++ mangling for variables not only + for functions. +*/ +#if defined(_MSC_VER) +#if defined(MYSQL_DYNAMIC_PLUGIN) + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport) + #else + #define MYSQL_PLUGIN_EXPORT __declspec(dllexport) + #endif +#else /* MYSQL_DYNAMIC_PLUGIN */ + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" + #else + #define MYSQL_PLUGIN_EXPORT + #endif +#endif /*MYSQL_DYNAMIC_PLUGIN */ +#else /*_MSC_VER */ +#define MYSQL_PLUGIN_EXPORT +#endif + +#ifdef __cplusplus +class THD; +class Item; +#define MYSQL_THD THD* +#else +#define MYSQL_THD void* +#endif + +typedef void * MYSQL_PLUGIN; + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#define MYSQL_XIDDATASIZE 128 +/** + struct st_mysql_xid is binary compatible with the XID structure as + in the X/Open CAE Specification, Distributed Transaction Processing: + The XA Specification, X/Open Company Ltd., 1991. + http://www.opengroup.org/bookstore/catalog/c193.htm + + @see XID in sql/handler.h +*/ +struct st_mysql_xid { + long formatID; + long gtrid_length; + long bqual_length; + char data[MYSQL_XIDDATASIZE]; /* Not \0-terminated */ +}; +typedef struct st_mysql_xid MYSQL_XID; + +/************************************************************************* + Plugin API. Common for all plugin types. +*/ + +#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0107 + +/* + The allowable types of plugins +*/ +#define MYSQL_UDF_PLUGIN 0 /* User-defined function */ +#define MYSQL_STORAGE_ENGINE_PLUGIN 1 /* Storage Engine */ +#define MYSQL_FTPARSER_PLUGIN 2 /* Full-text parser plugin */ +#define MYSQL_DAEMON_PLUGIN 3 /* The daemon/raw plugin type */ +#define MYSQL_INFORMATION_SCHEMA_PLUGIN 4 /* The I_S plugin type */ +#define MYSQL_AUDIT_PLUGIN 5 /* The Audit plugin type */ +#define MYSQL_REPLICATION_PLUGIN 6 /* The replication plugin type */ +#define MYSQL_AUTHENTICATION_PLUGIN 7 /* The authentication plugin type */ +#define MYSQL_VALIDATE_PASSWORD_PLUGIN 8 /* validate password plugin type */ +#define MYSQL_GROUP_REPLICATION_PLUGIN 9 /* The Group Replication plugin */ +#define MYSQL_KEYRING_PLUGIN 10 /* The Keyring plugin type */ +#define MYSQL_MAX_PLUGIN_TYPE_NUM 11 /* The number of plugin types */ + +/* We use the following strings to define licenses for plugins */ +#define PLUGIN_LICENSE_PROPRIETARY 0 +#define PLUGIN_LICENSE_GPL 1 +#define PLUGIN_LICENSE_BSD 2 + +#define PLUGIN_LICENSE_PROPRIETARY_STRING "PROPRIETARY" +#define PLUGIN_LICENSE_GPL_STRING "GPL" +#define PLUGIN_LICENSE_BSD_STRING "BSD" + +/* + Macros for beginning and ending plugin declarations. Between + mysql_declare_plugin and mysql_declare_plugin_end there should + be a st_mysql_plugin struct for each plugin to be declared. +*/ + + +#ifndef MYSQL_DYNAMIC_PLUGIN +#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ +MYSQL_PLUGIN_EXPORT int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \ +MYSQL_PLUGIN_EXPORT int PSIZE= sizeof(struct st_mysql_plugin); \ +MYSQL_PLUGIN_EXPORT struct st_mysql_plugin DECLS[]= { +#else +#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ +MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \ +MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \ +MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= { +#endif + +#define mysql_declare_plugin(NAME) \ +__MYSQL_DECLARE_PLUGIN(NAME, \ + builtin_ ## NAME ## _plugin_interface_version, \ + builtin_ ## NAME ## _sizeof_struct_st_plugin, \ + builtin_ ## NAME ## _plugin) + +#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0,0}} + +/** + Declarations for SHOW STATUS support in plugins +*/ +enum enum_mysql_show_type +{ + SHOW_UNDEF, SHOW_BOOL, + SHOW_INT, ///< shown as _unsigned_ int + SHOW_LONG, ///< shown as _unsigned_ long + SHOW_LONGLONG, ///< shown as _unsigned_ longlong + SHOW_CHAR, SHOW_CHAR_PTR, + SHOW_ARRAY, SHOW_FUNC, SHOW_DOUBLE +#ifdef MYSQL_SERVER + /* + This include defines server-only values of the enum. + Using them in plugins is not supported. + */ + #include "sql_plugin_enum.h" +#endif +}; + +/** + Status variable scope. + Only GLOBAL status variable scope is available in plugins. +*/ +enum enum_mysql_show_scope +{ + SHOW_SCOPE_UNDEF, + SHOW_SCOPE_GLOBAL +#ifdef MYSQL_SERVER + /* Server-only values. Not supported in plugins. */ + , + SHOW_SCOPE_SESSION, + SHOW_SCOPE_ALL +#endif +}; + +/** + SHOW STATUS Server status variable +*/ +struct st_mysql_show_var +{ + const char *name; + char *value; + enum enum_mysql_show_type type; + enum enum_mysql_show_scope scope; +}; + +#define SHOW_VAR_MAX_NAME_LEN 64 +#define SHOW_VAR_FUNC_BUFF_SIZE 1024 +typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, char *); + + +/* + Constants for plugin flags. + */ + +#define PLUGIN_OPT_NO_INSTALL 1UL /* Not dynamically loadable */ +#define PLUGIN_OPT_NO_UNINSTALL 2UL /* Not dynamically unloadable */ + + +/* + declarations for server variables and command line options +*/ + + +#define PLUGIN_VAR_BOOL 0x0001 +#define PLUGIN_VAR_INT 0x0002 +#define PLUGIN_VAR_LONG 0x0003 +#define PLUGIN_VAR_LONGLONG 0x0004 +#define PLUGIN_VAR_STR 0x0005 +#define PLUGIN_VAR_ENUM 0x0006 +#define PLUGIN_VAR_SET 0x0007 +#define PLUGIN_VAR_DOUBLE 0x0008 +#define PLUGIN_VAR_UNSIGNED 0x0080 +#define PLUGIN_VAR_THDLOCAL 0x0100 /* Variable is per-connection */ +#define PLUGIN_VAR_READONLY 0x0200 /* Server variable is read only */ +#define PLUGIN_VAR_NOSYSVAR 0x0400 /* Not a server variable */ +#define PLUGIN_VAR_NOCMDOPT 0x0800 /* Not a command line option */ +#define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */ +#define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */ +#define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */ +#define PLUGIN_VAR_NODEFAULT 0x4000 /* SET DEFAULT is prohibited */ +#define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */ + +struct st_mysql_sys_var; +struct st_mysql_value; + +/* + SYNOPSIS + (*mysql_var_check_func)() + thd thread handle + var dynamic variable being altered + save pointer to temporary storage + value user provided value + RETURN + 0 user provided value is OK and the update func may be called. + any other value indicates error. + + This function should parse the user provided value and store in the + provided temporary storage any data as required by the update func. + There is sufficient space in the temporary storage to store a double. + Note that the update func may not be called if any other error occurs + so any memory allocated should be thread-local so that it may be freed + automatically at the end of the statement. +*/ + +typedef int (*mysql_var_check_func)(MYSQL_THD thd, + struct st_mysql_sys_var *var, + void *save, struct st_mysql_value *value); + +/* + SYNOPSIS + (*mysql_var_update_func)() + thd thread handle + var dynamic variable being altered + var_ptr pointer to dynamic variable + save pointer to temporary storage + RETURN + NONE + + This function should use the validated value stored in the temporary store + and persist it in the provided pointer to the dynamic variable. + For example, strings may require memory to be allocated. +*/ +typedef void (*mysql_var_update_func)(MYSQL_THD thd, + struct st_mysql_sys_var *var, + void *var_ptr, const void *save); + + +/* the following declarations are for internal use only */ + + +#define PLUGIN_VAR_MASK \ + (PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \ + PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \ + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC | \ + PLUGIN_VAR_NODEFAULT) + +#define MYSQL_PLUGIN_VAR_HEADER \ + int flags; \ + const char *name; \ + const char *comment; \ + mysql_var_check_func check; \ + mysql_var_update_func update + +#define MYSQL_SYSVAR_NAME(name) mysql_sysvar_ ## name +#define MYSQL_SYSVAR(name) \ + ((struct st_mysql_sys_var *)&(MYSQL_SYSVAR_NAME(name))) + +/* + for global variables, the value pointer is the first + element after the header, the default value is the second. + for thread variables, the value offset is the first + element after the header, the default value is the second. +*/ + + +#define DECLARE_MYSQL_SYSVAR_BASIC(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + type *value; \ + const type def_val; \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_SYSVAR_SIMPLE(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + type *value; type def_val; \ + type min_val; type max_val; \ + type blk_sz; \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_SYSVAR_TYPELIB(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + type *value; type def_val; \ + TYPELIB *typelib; \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_THDVAR_FUNC(type) \ + type *(*resolve)(MYSQL_THD thd, int offset) + +#define DECLARE_MYSQL_THDVAR_BASIC(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + int offset; \ + const type def_val; \ + DECLARE_THDVAR_FUNC(type); \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_THDVAR_SIMPLE(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + int offset; \ + type def_val; type min_val; \ + type max_val; type blk_sz; \ + DECLARE_THDVAR_FUNC(type); \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_THDVAR_TYPELIB(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + int offset; \ + type def_val; \ + DECLARE_THDVAR_FUNC(type); \ + TYPELIB *typelib; \ +} MYSQL_SYSVAR_NAME(name) + + +/* + the following declarations are for use by plugin implementors +*/ + +#define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \ +DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \ + PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def} + +#define MYSQL_SYSVAR_STR(name, varname, opt, comment, check, update, def) \ +DECLARE_MYSQL_SYSVAR_BASIC(name, char *) = { \ + PLUGIN_VAR_STR | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def} + +#define MYSQL_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, int) = { \ + PLUGIN_VAR_INT | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned int) = { \ + PLUGIN_VAR_INT | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, long) = { \ + PLUGIN_VAR_LONG | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long) = { \ + PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, long long) = { \ + PLUGIN_VAR_LONGLONG | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \ + PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \ + PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, typelib } + +#define MYSQL_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long long) = { \ + PLUGIN_VAR_SET | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, typelib } + +#define MYSQL_SYSVAR_DOUBLE(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, double) = { \ + PLUGIN_VAR_DOUBLE | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_THDVAR_BOOL(name, opt, comment, check, update, def) \ +DECLARE_MYSQL_THDVAR_BASIC(name, char) = { \ + PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL} + +#define MYSQL_THDVAR_STR(name, opt, comment, check, update, def) \ +DECLARE_MYSQL_THDVAR_BASIC(name, char *) = { \ + PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL} + +#define MYSQL_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, int) = { \ + PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned int) = { \ + PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, long) = { \ + PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long) = { \ + PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, long long) = { \ + PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long long) = { \ + PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long) = { \ + PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL, typelib } + +#define MYSQL_THDVAR_SET(name, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long long) = { \ + PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL, typelib } + +#define MYSQL_THDVAR_DOUBLE(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, double) = { \ + PLUGIN_VAR_DOUBLE | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +/* accessor macros */ + +#define SYSVAR(name) \ + (*(MYSQL_SYSVAR_NAME(name).value)) + +/* when thd == null, result points to global value */ +#define THDVAR(thd, name) \ + (*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset))) + + +/* + Plugin description structure. +*/ + +struct st_mysql_plugin +{ + int type; /* the plugin type (a MYSQL_XXX_PLUGIN value) */ + void *info; /* pointer to type-specific plugin descriptor */ + const char *name; /* plugin name */ + const char *author; /* plugin author (for I_S.PLUGINS) */ + const char *descr; /* general descriptive text (for I_S.PLUGINS) */ + int license; /* the plugin license (PLUGIN_LICENSE_XXX) */ + int (*init)(MYSQL_PLUGIN); /* the function to invoke when plugin is loaded */ + int (*deinit)(MYSQL_PLUGIN);/* the function to invoke when plugin is unloaded */ + unsigned int version; /* plugin version (for I_S.PLUGINS) */ + struct st_mysql_show_var *status_vars; + struct st_mysql_sys_var **system_vars; + void * __reserved1; /* reserved for dependency checking */ + unsigned long flags; /* flags for plugin */ +}; + +/************************************************************************* + API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN) +*/ +#define MYSQL_FTPARSER_INTERFACE_VERSION 0x0101 + +/************************************************************************* + API for Query Rewrite plugin. (MYSQL_QUERY_REWRITE_PLUGIN) +*/ + +#define MYSQL_REWRITE_PRE_PARSE_INTERFACE_VERSION 0x0010 +#define MYSQL_REWRITE_POST_PARSE_INTERFACE_VERSION 0x0010 + +/************************************************************************* + API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN) +*/ + +/* handlertons of different MySQL releases are incompatible */ +#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) + +/* + Here we define only the descriptor structure, that is referred from + st_mysql_plugin. +*/ + +struct st_mysql_daemon +{ + int interface_version; +}; + + +/************************************************************************* + API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN) +*/ + +/* handlertons of different MySQL releases are incompatible */ +#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) + +/* + Here we define only the descriptor structure, that is referred from + st_mysql_plugin. +*/ + +struct st_mysql_information_schema +{ + int interface_version; +}; + + +/************************************************************************* + API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN) +*/ + +/* handlertons of different MySQL releases are incompatible */ +#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) + +/* + The real API is in the sql/handler.h + Here we define only the descriptor structure, that is referred from + st_mysql_plugin. +*/ + +struct st_mysql_storage_engine +{ + int interface_version; +}; + +struct handlerton; + + +/* + API for Replication plugin. (MYSQL_REPLICATION_PLUGIN) +*/ + #define MYSQL_REPLICATION_INTERFACE_VERSION 0x0400 + + /** + Replication plugin descriptor + */ + struct Mysql_replication { + int interface_version; + }; + +/************************************************************************* + st_mysql_value struct for reading values from mysqld. + Used by server variables framework to parse user-provided values. + Will be used for arguments when implementing UDFs. + + Note that val_str() returns a string in temporary memory + that will be freed at the end of statement. Copy the string + if you need it to persist. +*/ + +#define MYSQL_VALUE_TYPE_STRING 0 +#define MYSQL_VALUE_TYPE_REAL 1 +#define MYSQL_VALUE_TYPE_INT 2 + +struct st_mysql_value +{ + int (*value_type)(struct st_mysql_value *); + const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length); + int (*val_real)(struct st_mysql_value *, double *realbuf); + int (*val_int)(struct st_mysql_value *, long long *intbuf); + int (*is_unsigned)(struct st_mysql_value *); +}; + + +/************************************************************************* + Miscellaneous functions for plugin implementors +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +int thd_in_lock_tables(const MYSQL_THD thd); +int thd_tablespace_op(const MYSQL_THD thd); +long long thd_test_options(const MYSQL_THD thd, long long test_options); +int thd_sql_command(const MYSQL_THD thd); +const char *set_thd_proc_info(MYSQL_THD thd, const char *info, + const char *calling_func, + const char *calling_file, + const unsigned int calling_line); +void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton); +void thd_storage_lock_wait(MYSQL_THD thd, long long value); +int thd_tx_isolation(const MYSQL_THD thd); +int thd_tx_is_read_only(const MYSQL_THD thd); +MYSQL_THD thd_tx_arbitrate(MYSQL_THD requestor, MYSQL_THD holder); +int thd_tx_priority(const MYSQL_THD thd); +int thd_tx_is_dd_trx(const MYSQL_THD thd); +char *thd_security_context(MYSQL_THD thd, char *buffer, size_t length, + size_t max_query_len); +/* Increments the row counter, see THD::row_count */ +void thd_inc_row_count(MYSQL_THD thd); +int thd_allow_batch(MYSQL_THD thd); + + +/** + Mark transaction to rollback and mark error as fatal to a + sub-statement if in sub statement mode. + + @param thd user thread connection handle + @param all if all != 0, rollback the main transaction +*/ + +void thd_mark_transaction_to_rollback(MYSQL_THD thd, int all); + +/** + Create a temporary file. + + @details + The temporary file is created in a location specified by the mysql + server configuration (--tmpdir option). The caller does not need to + delete the file, it will be deleted automatically. + + @param prefix prefix for temporary file name + @retval -1 error + @retval >= 0 a file handle that can be passed to dup or my_close +*/ +int mysql_tmpfile(const char *prefix); + +/** + Check the killed state of a connection + + @details + In MySQL support for the KILL statement is cooperative. The KILL + statement only sets a "killed" flag. This function returns the value + of that flag. A thread should check it often, especially inside + time-consuming loops, and gracefully abort the operation if it is + non-zero. + + @param thd user thread connection handle + @retval 0 the connection is active + @retval 1 the connection has been killed +*/ +int thd_killed(const MYSQL_THD thd); + +/** + Set the killed status of the current statement. + + @param thd user thread connection handle +*/ +void thd_set_kill_status(const MYSQL_THD thd); + +/** + Get binary log position for latest written entry. + + @note The file variable will be set to a buffer holding the name of + the file name currently, but this can change if a rotation + occur. Copy the string if you want to retain it. + + @param thd Use thread connection handle + @param file_var Pointer to variable that will hold the file name. + @param pos_var Pointer to variable that will hold the file position. + */ +void thd_binlog_pos(const MYSQL_THD thd, + const char **file_var, + unsigned long long *pos_var); + +/** + Return the thread id of a user thread + + @param thd user thread connection handle + @return thread id +*/ +unsigned long thd_get_thread_id(const MYSQL_THD thd); + +/** + Get the XID for this connection's transaction + + @param thd user thread connection handle + @param xid location where identifier is stored +*/ +void thd_get_xid(const MYSQL_THD thd, MYSQL_XID *xid); + +/** + Invalidate the query cache for a given table. + + @param thd user thread connection handle + @param key databasename/tablename in the canonical format. + @param key_length length of key in bytes, including the PATH separator + @param using_trx flag: TRUE if using transactions, FALSE otherwise +*/ +void mysql_query_cache_invalidate4(MYSQL_THD thd, + const char *key, unsigned int key_length, + int using_trx); + + +/** + Provide a handler data getter to simplify coding +*/ +void *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton); + + +/** + Provide a handler data setter to simplify coding + + @details + Set ha_data pointer (storage engine per-connection information). + + To avoid unclean deactivation (uninstall) of storage engine plugin + in the middle of transaction, additional storage engine plugin + lock is acquired. + + If ha_data is not null and storage engine plugin was not locked + by thd_set_ha_data() in this connection before, storage engine + plugin gets locked. + + If ha_data is null and storage engine plugin was locked by + thd_set_ha_data() in this connection before, storage engine + plugin lock gets released. + + If handlerton::close_connection() didn't reset ha_data, server does + it immediately after calling handlerton::close_connection(). +*/ +void thd_set_ha_data(MYSQL_THD thd, const struct handlerton *hton, + const void *ha_data); +#ifdef __cplusplus +} +#endif + +#endif /* _my_plugin_h */ diff --git a/mysql/mysql/plugin_auth_common.h b/mysql/mysql/plugin_auth_common.h new file mode 100644 index 0000000..1eb1786 --- /dev/null +++ b/mysql/mysql/plugin_auth_common.h @@ -0,0 +1,143 @@ +#ifndef MYSQL_PLUGIN_AUTH_COMMON_INCLUDED +/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + + This file defines constants and data structures that are the same for + both client- and server-side authentication plugins. +*/ +#define MYSQL_PLUGIN_AUTH_COMMON_INCLUDED + +/** the max allowed length for a user name */ +#define MYSQL_USERNAME_LENGTH 96 + +/** + return values of the plugin authenticate_user() method. +*/ + +/** + Authentication failed, plugin internal error. + An error occurred in the authentication plugin itself. + These errors are reported in table performance_schema.host_cache, + column COUNT_AUTH_PLUGIN_ERRORS. +*/ +#define CR_AUTH_PLUGIN_ERROR 3 +/** + Authentication failed, client server handshake. + An error occurred during the client server handshake. + These errors are reported in table performance_schema.host_cache, + column COUNT_HANDSHAKE_ERRORS. +*/ +#define CR_AUTH_HANDSHAKE 2 +/** + Authentication failed, user credentials. + For example, wrong passwords. + These errors are reported in table performance_schema.host_cache, + column COUNT_AUTHENTICATION_ERRORS. +*/ +#define CR_AUTH_USER_CREDENTIALS 1 +/** + Authentication failed. Additionally, all other CR_xxx values + (libmysql error code) can be used too. + + The client plugin may set the error code and the error message directly + in the MYSQL structure and return CR_ERROR. If a CR_xxx specific error + code was returned, an error message in the MYSQL structure will be + overwritten. If CR_ERROR is returned without setting the error in MYSQL, + CR_UNKNOWN_ERROR will be user. +*/ +#define CR_ERROR 0 +/** + Authentication (client part) was successful. It does not mean that the + authentication as a whole was successful, usually it only means + that the client was able to send the user name and the password to the + server. If CR_OK is returned, the libmysql reads the next packet expecting + it to be one of OK, ERROR, or CHANGE_PLUGIN packets. +*/ +#define CR_OK -1 +/** + Authentication was successful. + It means that the client has done its part successfully and also that + a plugin has read the last packet (one of OK, ERROR, CHANGE_PLUGIN). + In this case, libmysql will not read a packet from the server, + but it will use the data at mysql->net.read_pos. + + A plugin may return this value if the number of roundtrips in the + authentication protocol is not known in advance, and the client plugin + needs to read one packet more to determine if the authentication is finished + or not. +*/ +#define CR_OK_HANDSHAKE_COMPLETE -2 + +/** +Flag to be passed back to server from authentication plugins via +authenticated_as when proxy mapping should be done by the server. +*/ +#define PROXY_FLAG 0 + +/* + We need HANDLE definition if on Windows. Define WIN32_LEAN_AND_MEAN (if + not already done) to minimize amount of imported declarations. +*/ +#ifdef _WIN32 +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#endif + +typedef struct st_plugin_vio_info +{ + enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET, + MYSQL_VIO_PIPE, MYSQL_VIO_MEMORY } protocol; + int socket; /**< it's set, if the protocol is SOCKET or TCP */ +#ifdef _WIN32 + HANDLE handle; /**< it's set, if the protocol is PIPE or MEMORY */ +#endif +} MYSQL_PLUGIN_VIO_INFO; + +/** + Provides plugin access to communication channel +*/ +typedef struct st_plugin_vio +{ + /** + Plugin provides a pointer reference and this function sets it to the + contents of any incoming packet. Returns the packet length, or -1 if + the plugin should terminate. + */ + int (*read_packet)(struct st_plugin_vio *vio, + unsigned char **buf); + + /** + Plugin provides a buffer with data and the length and this + function sends it as a packet. Returns 0 on success, 1 on failure. + */ + int (*write_packet)(struct st_plugin_vio *vio, + const unsigned char *packet, + int packet_len); + + /** + Fills in a st_plugin_vio_info structure, providing the information + about the connection. + */ + void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info); + +} MYSQL_PLUGIN_VIO; + +#endif + diff --git a/mysql/mysql/plugin_trace.h b/mysql/mysql/plugin_trace.h new file mode 100644 index 0000000..71ac0b1 --- /dev/null +++ b/mysql/mysql/plugin_trace.h @@ -0,0 +1,349 @@ +/* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef PLUGIN_TRACE_INCLUDED +#define PLUGIN_TRACE_INCLUDED +/** + @file + + ======================================================================== + Declarations for client-side plugins of type MYSQL_CLIENT_TRACE_PLUGIN + ======================================================================== + + See libmysql/mysql_trace.c for a brief description of the client-side + protocol tracing infrastructure. +*/ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + Lists of protocol stages and trace events + ========================================= + + These lists are defined with PROTOCOL_STAGE_LIST() and TRACE_EVENT_LIST(), + respectively. Macros accept a disposition name as an argument. + + For example, to process list of protocol stages using disposition "foo", + define protocol_stage_foo(Stage) macro and then put + + PROTOCOL_STAGE_LIST(foo) + + in your code. This will expand to sequence of protocol_stage_foo(X) + macros where X ranges over the list of protocol stages, and these macros + should generate the actual code. See below how this technique is used + to generate protocol_stage and trace_events enums. +*/ + +/** + Protocol stages + --------------- + + A client following the MySQL protocol goes through several stages of it. Each + stage determines what packets can be expected from the server or can be send + by the client. + + Upon receiving each trace event, trace plugin will be notified of the current + protocol stage so that it can correctly interpret the event. + + These are the possible protocol stages and the transitions between them. + + .. digraph:: protocol_stages + + CONNECTING -> WAIT_FOR_INIT_PACKET; + CONNECTING -> DISCONNECTED [ label = "failed connection" ]; + + WAIT_FOR_INIT_PACKET -> AUTHENTICATE; + WAIT_FOR_INIT_PACKET -> SSL_NEGOTIATION -> AUTHENTICATE; + + AUTHENTICATE -> READY_FOR_COMMAND [ label = "accepted" ]; + AUTHENTICATE -> DISCONNECTED [ label = "rejected" ]; + + READY_FOR_COMMAND -> DISCONNECTED [ label = "COM_QUIT" ]; + READY_FOR_COMMAND -> AUTHENTICATE [ label="after change user" ]; + READY_FOR_COMMAND -> WAIT_FOR_PACKET + [ label="wait for a single packet after, e.g., COM_STATISTICS" ]; + READY_FOR_COMMAND -> WAIT_FOR_RESULT; + READY_FOR_COMMAND -> WAIT_FOR_PS_DESCRIPTION + [ label="after prepare command" ]; + + WAIT_FOR_PACKET -> READY_FOR_COMAND; + + WAIT_FOR_RESULT -> READY_FOR_COMMAND [ label="simple reply" ]; + WAIT_FOR_RESULT -> WAIT_FOR_FIELD_DEF; + WAIT_FOR_RESULT -> FILE_REQUEST; + + WAIT_FOR_FIELD_DEF -> WAIT_FOR_ROW [ label="in a resultset" ]; + WAIT_FOR_FIELD_DEF -> READY_FOR_COMMAND + [ label="after describe table or prepare command" ]; + + WAIT_FOR_ROW -> READY_FOR_COMMAND; + WAIT_FOR_ROW -> WAIT_FOR_RESULT [ label="multi-resultset" ]; + + WAIT_FOR_PS_DESCRIPTION -> WAIT_FOR_PARAM_DEF; + WAIT_FOR_PS_DESCRIPTION -> READY_FOR_COMMAND + [ label="no params and result" ]; + WAIT_FOR_PS_DESCRIPTION -> WAIT_FOR_FIELD_DEF [ label="no params" ]; + + WAIT_FOR_PARAM_DEF -> WAIT_FOR_FIELD_DEF; + WAIT_FOR_PARAM_DEF -> READY_FOR_COMMAND [ label="no result" ]; + + FILE_REQUEST -> WAIT_FOR_RESULT [label="when whole file sent"]; +*/ + +#define PROTOCOL_STAGE_LIST(X) \ + protocol_stage_ ## X(CONNECTING) \ + protocol_stage_ ## X(WAIT_FOR_INIT_PACKET) \ + protocol_stage_ ## X(AUTHENTICATE) \ + protocol_stage_ ## X(SSL_NEGOTIATION) \ + protocol_stage_ ## X(READY_FOR_COMMAND) \ + protocol_stage_ ## X(WAIT_FOR_PACKET) \ + protocol_stage_ ## X(WAIT_FOR_RESULT) \ + protocol_stage_ ## X(WAIT_FOR_FIELD_DEF) \ + protocol_stage_ ## X(WAIT_FOR_ROW) \ + protocol_stage_ ## X(FILE_REQUEST) \ + protocol_stage_ ## X(WAIT_FOR_PS_DESCRIPTION) \ + protocol_stage_ ## X(WAIT_FOR_PARAM_DEF) \ + protocol_stage_ ## X(DISCONNECTED) + +/** + Trace events + ------------ + + The following events are generated during the various stages of the + client-server conversation. + + ---------------------- ----------------------------------------------------- + Connection events + ---------------------- ----------------------------------------------------- + CONNECTING Client is connecting to the server. + CONNECTED Physical connection has been established. + DISCONNECTED Connection with server was broken. + ---------------------- ----------------------------------------------------- + SSL events + ---------------------- ----------------------------------------------------- + SEND_SSL_REQUEST Client is sending SSL connection request. + SSL_CONNECT Client is initiating SSL handshake. + SSL_CONNECTED SSL connection has been established. + ---------------------- ----------------------------------------------------- + Authentication events + ---------------------- ----------------------------------------------------- + CHALLENGE_RECEIVED Client received authentication challenge. + AUTH_PLUGIN Client selects an authentication plugin to be used + in the following authentication exchange. + SEND_AUTH_RESPONSE Client sends response to the authentication + challenge. + SEND_AUTH_DATA Client sends extra authentication data packet. + AUTHENTICATED Server has accepted connection. + ---------------------- ----------------------------------------------------- + Command phase events + ---------------------- ----------------------------------------------------- + SEND_COMMAND Client is sending a command to the server. + SEND_FILE Client is sending local file contents to the server. + ---------------------- ----------------------------------------------------- + General events + ---------------------- ----------------------------------------------------- + READ_PACKET Client starts waiting for a packet from server. + PACKET_RECEIVED A packet from server has been received. + PACKET_SENT After successful sending of a packet to the server. + ERROR Client detected an error. + ---------------------- ----------------------------------------------------- +*/ + +#define TRACE_EVENT_LIST(X) \ + trace_event_ ## X(ERROR) \ + trace_event_ ## X(CONNECTING) \ + trace_event_ ## X(CONNECTED) \ + trace_event_ ## X(DISCONNECTED) \ + trace_event_ ## X(SEND_SSL_REQUEST) \ + trace_event_ ## X(SSL_CONNECT) \ + trace_event_ ## X(SSL_CONNECTED) \ + trace_event_ ## X(INIT_PACKET_RECEIVED) \ + trace_event_ ## X(AUTH_PLUGIN) \ + trace_event_ ## X(SEND_AUTH_RESPONSE) \ + trace_event_ ## X(SEND_AUTH_DATA) \ + trace_event_ ## X(AUTHENTICATED) \ + trace_event_ ## X(SEND_COMMAND) \ + trace_event_ ## X(SEND_FILE) \ + trace_event_ ## X(READ_PACKET) \ + trace_event_ ## X(PACKET_RECEIVED) \ + trace_event_ ## X(PACKET_SENT) + +/** + Some trace events have additional arguments. These are stored in + st_trace_event_args structure. Various events store their arguments in the + structure as follows. Unused members are set to 0/NULL. + + AUTH_PLUGIN + ------------- ---------------------------------- + plugin_name the name of the plugin + ------------- ---------------------------------- + + SEND_COMMAND + ------------- ---------------------------------- + cmd the command code + hdr pointer to command packet header + hdr_len length of the header + pkt pointer to command arguments + pkt_len length of arguments + ------------- ---------------------------------- + + Other SEND_* and *_RECEIVED events + ------------- ---------------------------------- + pkt the data sent or received + pkt_len length of the data + ------------- ---------------------------------- + + PACKET_SENT + ------------- ---------------------------------- + pkt_len number of bytes sent + ------------- ---------------------------------- +*/ + +struct st_trace_event_args +{ + const char *plugin_name; + int cmd; + const unsigned char *hdr; + size_t hdr_len; + const unsigned char *pkt; + size_t pkt_len; +}; + + +/* Definitions of protocol_stage and trace_event enums. */ + +#define protocol_stage_enum(X) PROTOCOL_STAGE_ ## X, + +enum protocol_stage { + PROTOCOL_STAGE_LIST(enum) + PROTOCOL_STAGE_LAST +}; + +#define trace_event_enum(X) TRACE_EVENT_ ## X, + +enum trace_event { + TRACE_EVENT_LIST(enum) + TRACE_EVENT_LAST +}; + + +/* + Trace plugin methods + ==================== +*/ + +struct st_mysql_client_plugin_TRACE; +struct st_mysql; + +/** + Trace plugin tracing_start() method. + + Called when tracing with this plugin starts on a connection. A trace + plugin might want to maintain per-connection information. It can + return a pointer to memory area holding such information. It will be + stored in a connection handle and passed to other plugin methods. + + @param self pointer to the plugin instance + @param connection_handle + @param stage protocol stage in which tracing has started - currently + it is always CONNECTING stage. + + @return A pointer to plugin-specific, per-connection data if any. +*/ + +typedef +void* (tracing_start_callback)(struct st_mysql_client_plugin_TRACE *self, + struct st_mysql *connection_handle, + enum protocol_stage stage); + +/** + Trace plugin tracing_stop() method. + + Called when tracing of the connection has ended. If a plugin + allocated any per-connection resources, it should de-allocate them + here. + + @param self pointer to the plugin instance + @param connection_handle + @param plugin_data pointer to plugin's per-connection data. +*/ + +typedef +void (tracing_stop_callback)(struct st_mysql_client_plugin_TRACE *self, + struct st_mysql *connection_handle, + void *plugin_data); + +/** + Trace plugin trace_event() method. + + Called when a trace event occurs. Plugin can decide to stop tracing + this connection by returning non-zero value. + + @param self pointer to the plugin instance + @param plugin_data pointer to plugin's per-connection data + @param connection_handle + @param stage current protocol stage + @param event the trace event + @param args trace event arguments + + @return Non-zero if tracing of the connection should end here. +*/ + +typedef +int (trace_event_handler)(struct st_mysql_client_plugin_TRACE *self, + void *plugin_data, + struct st_mysql *connection_handle, + enum protocol_stage stage, + enum trace_event event, + struct st_trace_event_args args); + + +struct st_mysql_client_plugin_TRACE +{ + MYSQL_CLIENT_PLUGIN_HEADER + tracing_start_callback *tracing_start; + tracing_stop_callback *tracing_stop; + trace_event_handler *trace_event; +}; + +/** + The global trace_plugin pointer. If it is not NULL, it points at a + loaded trace plugin which should be used to trace all connections made + to the server. +*/ +extern +struct st_mysql_client_plugin_TRACE *trace_plugin; + +#ifndef DBUG_OFF + +/* + Functions for getting names of trace events and protocol + stages for debugging purposes. +*/ +const char* protocol_stage_name(enum protocol_stage stage); +const char* trace_event_name(enum trace_event ev); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mysql/mysql/psi/mysql_file.h b/mysql/mysql/psi/mysql_file.h new file mode 100644 index 0000000..fd28886 --- /dev/null +++ b/mysql/mysql/psi/mysql_file.h @@ -0,0 +1,1433 @@ +/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_FILE_H +#define MYSQL_FILE_H + +#include + +/* For strlen() */ +#include +/* For MY_STAT */ +#include +/* For my_chsize */ +#include + +/** + @file mysql/psi/mysql_file.h + Instrumentation helpers for mysys file io. + This header file provides the necessary declarations + to use the mysys file API with the performance schema instrumentation. + In some compilers (SunStudio), 'static inline' functions, when declared + but not used, are not optimized away (because they are unused) by default, + so that including a static inline function from a header file does + create unwanted dependencies, causing unresolved symbols at link time. + Other compilers, like gcc, optimize these dependencies by default. + + Since the instrumented APIs declared here are wrapper on top + of mysys file io APIs, including mysql/psi/mysql_file.h assumes that + the dependency on my_sys already exists. +*/ + +#include "mysql/psi/psi.h" + +#ifndef PSI_FILE_CALL +#define PSI_FILE_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +/** + @defgroup File_instrumentation File Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + @def mysql_file_register(P1, P2, P3) + File registration. +*/ +#define mysql_file_register(P1, P2, P3) \ + inline_mysql_file_register(P1, P2, P3) + +/** + @def mysql_file_fgets(P1, P2, F) + Instrumented fgets. + @c mysql_file_fgets is a replacement for @c fgets. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fgets(P1, P2, F) \ + inline_mysql_file_fgets(__FILE__, __LINE__, P1, P2, F) +#else + #define mysql_file_fgets(P1, P2, F) \ + inline_mysql_file_fgets(P1, P2, F) +#endif + +/** + @def mysql_file_fgetc(F) + Instrumented fgetc. + @c mysql_file_fgetc is a replacement for @c fgetc. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fgetc(F) inline_mysql_file_fgetc(__FILE__, __LINE__, F) +#else + #define mysql_file_fgetc(F) inline_mysql_file_fgetc(F) +#endif + +/** + @def mysql_file_fputs(P1, F) + Instrumented fputs. + @c mysql_file_fputs is a replacement for @c fputs. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fputs(P1, F) \ + inline_mysql_file_fputs(__FILE__, __LINE__, P1, F) +#else + #define mysql_file_fputs(P1, F)\ + inline_mysql_file_fputs(P1, F) +#endif + +/** + @def mysql_file_fputc(P1, F) + Instrumented fputc. + @c mysql_file_fputc is a replacement for @c fputc. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fputc(P1, F) \ + inline_mysql_file_fputc(__FILE__, __LINE__, P1, F) +#else + #define mysql_file_fputc(P1, F) \ + inline_mysql_file_fputc(P1, F) +#endif + +/** + @def mysql_file_fprintf + Instrumented fprintf. + @c mysql_file_fprintf is a replacement for @c fprintf. +*/ +#define mysql_file_fprintf inline_mysql_file_fprintf + +/** + @def mysql_file_vfprintf(F, P1, P2) + Instrumented vfprintf. + @c mysql_file_vfprintf is a replacement for @c vfprintf. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_vfprintf(F, P1, P2) \ + inline_mysql_file_vfprintf(__FILE__, __LINE__, F, P1, P2) +#else + #define mysql_file_vfprintf(F, P1, P2) \ + inline_mysql_file_vfprintf(F, P1, P2) +#endif + +/** + @def mysql_file_fflush(F, P1, P2) + Instrumented fflush. + @c mysql_file_fflush is a replacement for @c fflush. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fflush(F) \ + inline_mysql_file_fflush(__FILE__, __LINE__, F) +#else + #define mysql_file_fflush(F) \ + inline_mysql_file_fflush(F) +#endif + +/** + @def mysql_file_feof(F) + Instrumented feof. + @c mysql_file_feof is a replacement for @c feof. +*/ +#define mysql_file_feof(F) inline_mysql_file_feof(F) + +/** + @def mysql_file_fstat(FN, S, FL) + Instrumented fstat. + @c mysql_file_fstat is a replacement for @c my_fstat. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fstat(FN, S, FL) \ + inline_mysql_file_fstat(__FILE__, __LINE__, FN, S, FL) +#else + #define mysql_file_fstat(FN, S, FL) \ + inline_mysql_file_fstat(FN, S, FL) +#endif + +/** + @def mysql_file_stat(K, FN, S, FL) + Instrumented stat. + @c mysql_file_stat is a replacement for @c my_stat. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_stat(K, FN, S, FL) \ + inline_mysql_file_stat(K, __FILE__, __LINE__, FN, S, FL) +#else + #define mysql_file_stat(K, FN, S, FL) \ + inline_mysql_file_stat(FN, S, FL) +#endif + +/** + @def mysql_file_chsize(F, P1, P2, P3) + Instrumented chsize. + @c mysql_file_chsize is a replacement for @c my_chsize. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_chsize(F, P1, P2, P3) \ + inline_mysql_file_chsize(__FILE__, __LINE__, F, P1, P2, P3) +#else + #define mysql_file_chsize(F, P1, P2, P3) \ + inline_mysql_file_chsize(F, P1, P2, P3) +#endif + +/** + @def mysql_file_fopen(K, N, F1, F2) + Instrumented fopen. + @c mysql_file_fopen is a replacement for @c my_fopen. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fopen(K, N, F1, F2) \ + inline_mysql_file_fopen(K, __FILE__, __LINE__, N, F1, F2) +#else + #define mysql_file_fopen(K, N, F1, F2) \ + inline_mysql_file_fopen(N, F1, F2) +#endif + +/** + @def mysql_file_fclose(FD, FL) + Instrumented fclose. + @c mysql_file_fclose is a replacement for @c my_fclose. + Without the instrumentation, this call will have the same behavior as the + undocumented and possibly platform specific my_fclose(NULL, ...) behavior. + With the instrumentation, mysql_fclose(NULL, ...) will safely return 0, + which is an extension compared to my_fclose and is therefore compliant. + mysql_fclose is on purpose *not* implementing + @code DBUG_ASSERT(file != NULL) @endcode, + since doing so could introduce regressions. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fclose(FD, FL) \ + inline_mysql_file_fclose(__FILE__, __LINE__, FD, FL) +#else + #define mysql_file_fclose(FD, FL) \ + inline_mysql_file_fclose(FD, FL) +#endif + +/** + @def mysql_file_fread(FD, P1, P2, P3) + Instrumented fread. + @c mysql_file_fread is a replacement for @c my_fread. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fread(FD, P1, P2, P3) \ + inline_mysql_file_fread(__FILE__, __LINE__, FD, P1, P2, P3) +#else + #define mysql_file_fread(FD, P1, P2, P3) \ + inline_mysql_file_fread(FD, P1, P2, P3) +#endif + +/** + @def mysql_file_fwrite(FD, P1, P2, P3) + Instrumented fwrite. + @c mysql_file_fwrite is a replacement for @c my_fwrite. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fwrite(FD, P1, P2, P3) \ + inline_mysql_file_fwrite(__FILE__, __LINE__, FD, P1, P2, P3) +#else + #define mysql_file_fwrite(FD, P1, P2, P3) \ + inline_mysql_file_fwrite(FD, P1, P2, P3) +#endif + +/** + @def mysql_file_fseek(FD, P, W, F) + Instrumented fseek. + @c mysql_file_fseek is a replacement for @c my_fseek. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_fseek(FD, P, W, F) \ + inline_mysql_file_fseek(__FILE__, __LINE__, FD, P, W, F) +#else + #define mysql_file_fseek(FD, P, W, F) \ + inline_mysql_file_fseek(FD, P, W, F) +#endif + +/** + @def mysql_file_ftell(FD, F) + Instrumented ftell. + @c mysql_file_ftell is a replacement for @c my_ftell. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_ftell(FD, F) \ + inline_mysql_file_ftell(__FILE__, __LINE__, FD, F) +#else + #define mysql_file_ftell(FD, F) \ + inline_mysql_file_ftell(FD, F) +#endif + +/** + @def mysql_file_create(K, N, F1, F2, F3) + Instrumented create. + @c mysql_file_create is a replacement for @c my_create. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_create(K, N, F1, F2, F3) \ + inline_mysql_file_create(K, __FILE__, __LINE__, N, F1, F2, F3) +#else + #define mysql_file_create(K, N, F1, F2, F3) \ + inline_mysql_file_create(N, F1, F2, F3) +#endif + +/** + @def mysql_file_create_temp(K, T, D, P, M, F) + Instrumented create_temp_file. + @c mysql_file_create_temp is a replacement for @c create_temp_file. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_create_temp(K, T, D, P, M, F) \ + inline_mysql_file_create_temp(K, __FILE__, __LINE__, T, D, P, M, F) +#else + #define mysql_file_create_temp(K, T, D, P, M, F) \ + inline_mysql_file_create_temp(T, D, P, M, F) +#endif + +/** + @def mysql_file_open(K, N, F1, F2) + Instrumented open. + @c mysql_file_open is a replacement for @c my_open. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_open(K, N, F1, F2) \ + inline_mysql_file_open(K, __FILE__, __LINE__, N, F1, F2) +#else + #define mysql_file_open(K, N, F1, F2) \ + inline_mysql_file_open(N, F1, F2) +#endif + +/** + @def mysql_file_close(FD, F) + Instrumented close. + @c mysql_file_close is a replacement for @c my_close. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_close(FD, F) \ + inline_mysql_file_close(__FILE__, __LINE__, FD, F) +#else + #define mysql_file_close(FD, F) \ + inline_mysql_file_close(FD, F) +#endif + +/** + @def mysql_file_read(FD, B, S, F) + Instrumented read. + @c mysql_read is a replacement for @c my_read. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_read(FD, B, S, F) \ + inline_mysql_file_read(__FILE__, __LINE__, FD, B, S, F) +#else + #define mysql_file_read(FD, B, S, F) \ + inline_mysql_file_read(FD, B, S, F) +#endif + +/** + @def mysql_file_write(FD, B, S, F) + Instrumented write. + @c mysql_file_write is a replacement for @c my_write. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_write(FD, B, S, F) \ + inline_mysql_file_write(__FILE__, __LINE__, FD, B, S, F) +#else + #define mysql_file_write(FD, B, S, F) \ + inline_mysql_file_write(FD, B, S, F) +#endif + +/** + @def mysql_file_pread(FD, B, S, O, F) + Instrumented pread. + @c mysql_pread is a replacement for @c my_pread. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_pread(FD, B, S, O, F) \ + inline_mysql_file_pread(__FILE__, __LINE__, FD, B, S, O, F) +#else + #define mysql_file_pread(FD, B, S, O, F) \ + inline_mysql_file_pread(FD, B, S, O, F) +#endif + +/** + @def mysql_file_pwrite(FD, B, S, O, F) + Instrumented pwrite. + @c mysql_file_pwrite is a replacement for @c my_pwrite. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_pwrite(FD, B, S, O, F) \ + inline_mysql_file_pwrite(__FILE__, __LINE__, FD, B, S, O, F) +#else + #define mysql_file_pwrite(FD, B, S, O, F) \ + inline_mysql_file_pwrite(FD, B, S, O, F) +#endif + +/** + @def mysql_file_seek(FD, P, W, F) + Instrumented seek. + @c mysql_file_seek is a replacement for @c my_seek. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_seek(FD, P, W, F) \ + inline_mysql_file_seek(__FILE__, __LINE__, FD, P, W, F) +#else + #define mysql_file_seek(FD, P, W, F) \ + inline_mysql_file_seek(FD, P, W, F) +#endif + +/** + @def mysql_file_tell(FD, F) + Instrumented tell. + @c mysql_file_tell is a replacement for @c my_tell. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_tell(FD, F) \ + inline_mysql_file_tell(__FILE__, __LINE__, FD, F) +#else + #define mysql_file_tell(FD, F) \ + inline_mysql_file_tell(FD, F) +#endif + +/** + @def mysql_file_delete(K, P1, P2) + Instrumented delete. + @c mysql_file_delete is a replacement for @c my_delete. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_delete(K, P1, P2) \ + inline_mysql_file_delete(K, __FILE__, __LINE__, P1, P2) +#else + #define mysql_file_delete(K, P1, P2) \ + inline_mysql_file_delete(P1, P2) +#endif + +/** + @def mysql_file_rename(K, P1, P2, P3) + Instrumented rename. + @c mysql_file_rename is a replacement for @c my_rename. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_rename(K, P1, P2, P3) \ + inline_mysql_file_rename(K, __FILE__, __LINE__, P1, P2, P3) +#else + #define mysql_file_rename(K, P1, P2, P3) \ + inline_mysql_file_rename(P1, P2, P3) +#endif + +/** + @def mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) + Instrumented create with symbolic link. + @c mysql_file_create_with_symlink is a replacement + for @c my_create_with_symlink. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) \ + inline_mysql_file_create_with_symlink(K, __FILE__, __LINE__, \ + P1, P2, P3, P4, P5) +#else + #define mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) \ + inline_mysql_file_create_with_symlink(P1, P2, P3, P4, P5) +#endif + +/** + @def mysql_file_delete_with_symlink(K, P1, P2) + Instrumented delete with symbolic link. + @c mysql_file_delete_with_symlink is a replacement + for @c my_delete_with_symlink. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_delete_with_symlink(K, P1, P2) \ + inline_mysql_file_delete_with_symlink(K, __FILE__, __LINE__, P1, P2) +#else + #define mysql_file_delete_with_symlink(K, P1, P2) \ + inline_mysql_file_delete_with_symlink(P1, P2) +#endif + +/** + @def mysql_file_rename_with_symlink(K, P1, P2, P3) + Instrumented rename with symbolic link. + @c mysql_file_rename_with_symlink is a replacement + for @c my_rename_with_symlink. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_rename_with_symlink(K, P1, P2, P3) \ + inline_mysql_file_rename_with_symlink(K, __FILE__, __LINE__, P1, P2, P3) +#else + #define mysql_file_rename_with_symlink(K, P1, P2, P3) \ + inline_mysql_file_rename_with_symlink(P1, P2, P3) +#endif + +/** + @def mysql_file_sync(P1, P2) + Instrumented file sync. + @c mysql_file_sync is a replacement for @c my_sync. +*/ +#ifdef HAVE_PSI_FILE_INTERFACE + #define mysql_file_sync(P1, P2) \ + inline_mysql_file_sync(__FILE__, __LINE__, P1, P2) +#else + #define mysql_file_sync(P1, P2) \ + inline_mysql_file_sync(P1, P2) +#endif + +/** + An instrumented FILE structure. + @sa MYSQL_FILE +*/ +struct st_mysql_file +{ + /** The real file. */ + FILE *m_file; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c MYSQL_FILE interface. + */ + struct PSI_file *m_psi; +}; + +/** + Type of an instrumented file. + @c MYSQL_FILE is a drop-in replacement for @c FILE. + @sa mysql_file_open +*/ +typedef struct st_mysql_file MYSQL_FILE; + +static inline void inline_mysql_file_register( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *category, + PSI_file_info *info, + int count +#else + const char *category MY_ATTRIBUTE ((unused)), + void *info MY_ATTRIBUTE ((unused)), + int count MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_FILE_CALL(register_file)(category, info, count); +#endif +} + +static inline char * +inline_mysql_file_fgets( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + char *str, int size, MYSQL_FILE *file) +{ + char *result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_READ); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) size, src_file, src_line); + result= fgets(str, size, file->m_file); + PSI_FILE_CALL(end_file_wait)(locker, result ? strlen(result) : 0); + return result; + } +#endif + + result= fgets(str, size, file->m_file); + return result; +} + +static inline int +inline_mysql_file_fgetc( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_READ); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 1, src_file, src_line); + result= fgetc(file->m_file); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 1); + return result; + } +#endif + + result= fgetc(file->m_file); + return result; +} + +static inline int +inline_mysql_file_fputs( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + const char *str, MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + bytes= str ? strlen(str) : 0; + PSI_FILE_CALL(start_file_wait)(locker, bytes, src_file, src_line); + result= fputs(str, file->m_file); + PSI_FILE_CALL(end_file_wait)(locker, bytes); + return result; + } +#endif + + result= fputs(str, file->m_file); + return result; +} + +static inline int +inline_mysql_file_fputc( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + char c, MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 1, src_file, src_line); + result= fputc(c, file->m_file); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 1); + return result; + } +#endif + + result= fputc(c, file->m_file); + return result; +} + +static inline int +inline_mysql_file_fprintf(MYSQL_FILE *file, const char *format, ...) +{ + /* + TODO: figure out how to pass src_file and src_line from the caller. + */ + int result; + va_list args; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, __FILE__, __LINE__); + va_start(args, format); + result= vfprintf(file->m_file, format, args); + va_end(args); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) result); + return result; + } +#endif + + va_start(args, format); + result= vfprintf(file->m_file, format, args); + va_end(args); + return result; +} + +static inline int +inline_mysql_file_vfprintf( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, const char *format, va_list args) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= vfprintf(file->m_file, format, args); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) result); + return result; + } +#endif + + result= vfprintf(file->m_file, format, args); + return result; +} + +static inline int +inline_mysql_file_fflush( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_FLUSH); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= fflush(file->m_file); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= fflush(file->m_file); + return result; +} + +static inline int inline_mysql_file_feof(MYSQL_FILE *file) +{ + /* Not instrumented, there is no wait involved */ + return feof(file->m_file); +} + +static inline int +inline_mysql_file_fstat( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + int filenr, MY_STAT *stat_area, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, filenr, PSI_FILE_FSTAT); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_fstat(filenr, stat_area, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_fstat(filenr, stat_area, flags); + return result; +} + +static inline MY_STAT * +inline_mysql_file_stat( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *path, MY_STAT *stat_area, myf flags) +{ + MY_STAT *result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_STAT, path, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line); + result= my_stat(path, stat_area, flags); + PSI_FILE_CALL(end_file_open_wait)(locker, result); + return result; + } +#endif + + result= my_stat(path, stat_area, flags); + return result; +} + +static inline int +inline_mysql_file_chsize( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, my_off_t newlength, int filler, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_CHSIZE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) newlength, src_file, + src_line); + result= my_chsize(file, newlength, filler, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) newlength); + return result; + } +#endif + + result= my_chsize(file, newlength, filler, flags); + return result; +} + +static inline MYSQL_FILE* +inline_mysql_file_fopen( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *filename, int flags, myf myFlags) +{ + MYSQL_FILE *that; + that= (MYSQL_FILE*) my_malloc(PSI_NOT_INSTRUMENTED, + sizeof(MYSQL_FILE), MYF(MY_WME)); + if (likely(that != NULL)) + { +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_STREAM_OPEN, filename, that); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_open_wait) + (locker, src_file, src_line); + that->m_file= my_fopen(filename, flags, myFlags); + that->m_psi= PSI_FILE_CALL(end_file_open_wait)(locker, that->m_file); + if (unlikely(that->m_file == NULL)) + { + my_free(that); + return NULL; + } + return that; + } +#endif + + that->m_psi= NULL; + that->m_file= my_fopen(filename, flags, myFlags); + if (unlikely(that->m_file == NULL)) + { + my_free(that); + return NULL; + } + } + return that; +} + +static inline int +inline_mysql_file_fclose( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, myf flags) +{ + int result= 0; + if (likely(file != NULL)) + { +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_STREAM_CLOSE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line); + result= my_fclose(file->m_file, flags); + PSI_FILE_CALL(end_file_close_wait)(locker, result); + my_free(file); + return result; + } +#endif + + result= my_fclose(file->m_file, flags); + my_free(file); + } + return result; +} + +static inline size_t +inline_mysql_file_fread( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, uchar *buffer, size_t count, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes_read; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_READ); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line); + result= my_fread(file->m_file, buffer, count, flags); + if (flags & (MY_NABP | MY_FNABP)) + bytes_read= (result == 0) ? count : 0; + else + bytes_read= (result != MY_FILE_ERROR) ? result : 0; + PSI_FILE_CALL(end_file_wait)(locker, bytes_read); + return result; + } +#endif + + result= my_fread(file->m_file, buffer, count, flags); + return result; +} + +static inline size_t +inline_mysql_file_fwrite( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, const uchar *buffer, size_t count, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes_written; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line); + result= my_fwrite(file->m_file, buffer, count, flags); + if (flags & (MY_NABP | MY_FNABP)) + bytes_written= (result == 0) ? count : 0; + else + bytes_written= (result != MY_FILE_ERROR) ? result : 0; + PSI_FILE_CALL(end_file_wait)(locker, bytes_written); + return result; + } +#endif + + result= my_fwrite(file->m_file, buffer, count, flags); + return result; +} + +static inline my_off_t +inline_mysql_file_fseek( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, my_off_t pos, int whence, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_SEEK); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_fseek(file->m_file, pos, whence, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_fseek(file->m_file, pos, whence, flags); + return result; +} + +static inline my_off_t +inline_mysql_file_ftell( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_stream_locker) + (&state, file->m_psi, PSI_FILE_TELL); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_ftell(file->m_file, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_ftell(file->m_file, flags); + return result; +} + +static inline File +inline_mysql_file_create( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *filename, int create_flags, int access_flags, myf myFlags) +{ + File file; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_CREATE, filename, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line); + file= my_create(filename, create_flags, access_flags, myFlags); + PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file); + return file; + } +#endif + + file= my_create(filename, create_flags, access_flags, myFlags); + return file; +} + +static inline File +inline_mysql_file_create_temp( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + char *to, const char *dir, const char *pfx, int mode, myf myFlags) +{ + File file; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_CREATE, NULL, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line); + /* The file name is generated by create_temp_file(). */ + file= create_temp_file(to, dir, pfx, mode, myFlags); + PSI_FILE_CALL(end_temp_file_open_wait_and_bind_to_descriptor)(locker, file, (const char*)to); + return file; + } +#endif + + file= create_temp_file(to, dir, pfx, mode, myFlags); + return file; +} + +static inline File +inline_mysql_file_open( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *filename, int flags, myf myFlags) +{ + File file; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_OPEN, filename, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line); + file= my_open(filename, flags, myFlags); + PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file); + return file; + } +#endif + + file= my_open(filename, flags, myFlags); + return file; +} + +static inline int +inline_mysql_file_close( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_CLOSE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line); + result= my_close(file, flags); + PSI_FILE_CALL(end_file_close_wait)(locker, result); + return result; + } +#endif + + result= my_close(file, flags); + return result; +} + +static inline size_t +inline_mysql_file_read( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, uchar *buffer, size_t count, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes_read; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_READ); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line); + result= my_read(file, buffer, count, flags); + if (flags & (MY_NABP | MY_FNABP)) + bytes_read= (result == 0) ? count : 0; + else + bytes_read= (result != MY_FILE_ERROR) ? result : 0; + PSI_FILE_CALL(end_file_wait)(locker, bytes_read); + return result; + } +#endif + + result= my_read(file, buffer, count, flags); + return result; +} + +static inline size_t +inline_mysql_file_write( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, const uchar *buffer, size_t count, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes_written; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line); + result= my_write(file, buffer, count, flags); + if (flags & (MY_NABP | MY_FNABP)) + bytes_written= (result == 0) ? count : 0; + else + bytes_written= (result != MY_FILE_ERROR) ? result : 0; + PSI_FILE_CALL(end_file_wait)(locker, bytes_written); + return result; + } +#endif + + result= my_write(file, buffer, count, flags); + return result; +} + +static inline size_t +inline_mysql_file_pread( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, uchar *buffer, size_t count, my_off_t offset, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes_read; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_READ); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line); + result= my_pread(file, buffer, count, offset, flags); + if (flags & (MY_NABP | MY_FNABP)) + bytes_read= (result == 0) ? count : 0; + else + bytes_read= (result != MY_FILE_ERROR) ? result : 0; + PSI_FILE_CALL(end_file_wait)(locker, bytes_read); + return result; + } +#endif + + result= my_pread(file, buffer, count, offset, flags); + return result; +} + +static inline size_t +inline_mysql_file_pwrite( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, const uchar *buffer, size_t count, my_off_t offset, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + size_t bytes_written; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line); + result= my_pwrite(file, buffer, count, offset, flags); + if (flags & (MY_NABP | MY_FNABP)) + bytes_written= (result == 0) ? count : 0; + else + bytes_written= (result != MY_FILE_ERROR) ? result : 0; + PSI_FILE_CALL(end_file_wait)(locker, bytes_written); + return result; + } +#endif + + result= my_pwrite(file, buffer, count, offset, flags); + return result; +} + +static inline my_off_t +inline_mysql_file_seek( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, my_off_t pos, int whence, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_SEEK); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_seek(file, pos, whence, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_seek(file, pos, whence, flags); + return result; +} + +static inline my_off_t +inline_mysql_file_tell( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File file, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, file, PSI_FILE_TELL); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_tell(file, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_tell(file, flags); + return result; +} + +static inline int +inline_mysql_file_delete( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *name, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_DELETE, name, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line); + result= my_delete(name, flags); + PSI_FILE_CALL(end_file_close_wait)(locker, result); + return result; + } +#endif + + result= my_delete(name, flags); + return result; +} + +static inline int +inline_mysql_file_rename( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *from, const char *to, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_RENAME, to, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_rename(from, to, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_rename(from, to, flags); + return result; +} + +static inline File +inline_mysql_file_create_with_symlink( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *linkname, const char *filename, int create_flags, + int access_flags, myf flags) +{ + File file; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_CREATE, filename, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line); + file= my_create_with_symlink(linkname, filename, create_flags, access_flags, + flags); + PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file); + return file; + } +#endif + + file= my_create_with_symlink(linkname, filename, create_flags, access_flags, + flags); + return file; +} + +static inline int +inline_mysql_file_delete_with_symlink( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *name, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_DELETE, name, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line); + result= my_delete_with_symlink(name, flags); + PSI_FILE_CALL(end_file_close_wait)(locker, result); + return result; + } +#endif + + result= my_delete_with_symlink(name, flags); + return result; +} + +static inline int +inline_mysql_file_rename_with_symlink( +#ifdef HAVE_PSI_FILE_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *from, const char *to, myf flags) +{ + int result; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_name_locker) + (&state, key, PSI_FILE_RENAME, to, &locker); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_rename_with_symlink(from, to, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_rename_with_symlink(from, to, flags); + return result; +} + +static inline int +inline_mysql_file_sync( +#ifdef HAVE_PSI_FILE_INTERFACE + const char *src_file, uint src_line, +#endif + File fd, myf flags) +{ + int result= 0; +#ifdef HAVE_PSI_FILE_INTERFACE + struct PSI_file_locker *locker; + PSI_file_locker_state state; + locker= PSI_FILE_CALL(get_thread_file_descriptor_locker) + (&state, fd, PSI_FILE_SYNC); + if (likely(locker != NULL)) + { + PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line); + result= my_sync(fd, flags); + PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0); + return result; + } +#endif + + result= my_sync(fd, flags); + return result; +} + +/** @} (end of group File_instrumentation) */ + +#endif + diff --git a/mysql/mysql/psi/mysql_memory.h b/mysql/mysql/psi/mysql_memory.h new file mode 100644 index 0000000..55dd818 --- /dev/null +++ b/mysql/mysql/psi/mysql_memory.h @@ -0,0 +1,62 @@ +/* Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_MEMORY_H +#define MYSQL_MEMORY_H + +/** + @file mysql/psi/mysql_memory.h + Instrumentation helpers for memory allocation. +*/ + +#include "mysql/psi/psi.h" + +#ifndef PSI_MEMORY_CALL +#define PSI_MEMORY_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +/** + @defgroup Memory_instrumentation Memory Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + @def mysql_memory_register(P1, P2, P3) + Memory registration. +*/ +#define mysql_memory_register(P1, P2, P3) \ + inline_mysql_memory_register(P1, P2, P3) + +static inline void inline_mysql_memory_register( +#ifdef HAVE_PSI_MEMORY_INTERFACE + const char *category, + PSI_memory_info *info, + int count) +#else + const char *category MY_ATTRIBUTE((unused)), + void *info MY_ATTRIBUTE((unused)), + int count MY_ATTRIBUTE((unused))) +#endif +{ +#ifdef HAVE_PSI_MEMORY_INTERFACE + PSI_MEMORY_CALL(register_memory)(category, info, count); +#endif +} + +/** @} (end of group Memory_instrumentation) */ + +#endif + diff --git a/mysql/mysql/psi/mysql_socket.h b/mysql/mysql/psi/mysql_socket.h new file mode 100644 index 0000000..ad76e31 --- /dev/null +++ b/mysql/mysql/psi/mysql_socket.h @@ -0,0 +1,1255 @@ +/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; version 2 of the +License. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +02110-1301 USA +*/ + +#ifndef MYSQL_SOCKET_H +#define MYSQL_SOCKET_H + +/* For strlen() */ +#include +/* For MY_STAT */ +#include +/* For my_chsize */ +#include +/* For socket api */ +#ifdef _WIN32 + #include + #include + #include + #define SOCKBUF_T char +#else + #include + #define SOCKBUF_T void +#endif +/** + @file mysql/psi/mysql_socket.h +[...] +*/ + +#include "mysql/psi/psi.h" + +#ifndef PSI_SOCKET_CALL +#define PSI_SOCKET_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +/** + @defgroup Socket_instrumentation Socket Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + @def mysql_socket_register(P1, P2, P3) + Socket registration. +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_register(P1, P2, P3) \ + inline_mysql_socket_register(P1, P2, P3) +#else + #define mysql_socket_register(P1, P2, P3) \ + do {} while (0) +#endif + +/** An instrumented socket. */ +struct st_mysql_socket +{ + /** The real socket descriptor. */ + my_socket fd; + + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c MYSQL_SOCKET interface. + */ + struct PSI_socket *m_psi; +}; + +/** + An instrumented socket. + @c MYSQL_SOCKET is a replacement for @c my_socket. +*/ +typedef struct st_mysql_socket MYSQL_SOCKET; + + +/** + @def MYSQL_INVALID_SOCKET + MYSQL_SOCKET initial value. +*/ +//MYSQL_SOCKET MYSQL_INVALID_SOCKET= {INVALID_SOCKET, NULL}; +#define MYSQL_INVALID_SOCKET mysql_socket_invalid() + +/** + MYSQL_SOCKET helper. Initialize instrumented socket. + @sa mysql_socket_getfd + @sa mysql_socket_setfd +*/ +static inline MYSQL_SOCKET +mysql_socket_invalid() +{ + MYSQL_SOCKET mysql_socket= {INVALID_SOCKET, NULL}; + return mysql_socket; +} + +/** + Set socket descriptor and address. + @param socket nstrumented socket + @param addr unformatted socket address + @param addr_len length of socket addres +*/ + +static inline void +mysql_socket_set_address( +#ifdef HAVE_PSI_SOCKET_INTERFACE + MYSQL_SOCKET socket, + const struct sockaddr *addr, + socklen_t addr_len +#else + MYSQL_SOCKET socket MY_ATTRIBUTE ((unused)), + const struct sockaddr *addr MY_ATTRIBUTE ((unused)), + socklen_t addr_len MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (socket.m_psi != NULL) + PSI_SOCKET_CALL(set_socket_info)(socket.m_psi, NULL, addr, addr_len); +#endif +} + +/** + Set socket descriptor and address. + @param socket instrumented socket +*/ +static inline void +mysql_socket_set_thread_owner( +#ifdef HAVE_PSI_SOCKET_INTERFACE +MYSQL_SOCKET socket +#else +MYSQL_SOCKET socket MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (socket.m_psi != NULL) + PSI_SOCKET_CALL(set_socket_thread_owner)(socket.m_psi); +#endif +} + +/** + MYSQL_SOCKET helper. Get socket descriptor. + @param mysql_socket Instrumented socket + @sa mysql_socket_setfd +*/ +static inline my_socket +mysql_socket_getfd(MYSQL_SOCKET mysql_socket) +{ + return mysql_socket.fd; +} + +/** + MYSQL_SOCKET helper. Set socket descriptor. + @param mysql_socket Instrumented socket + @param fd Socket descriptor + @sa mysql_socket_getfd +*/ +static inline void +mysql_socket_setfd(MYSQL_SOCKET *mysql_socket, my_socket fd) +{ + if (likely(mysql_socket != NULL)) + mysql_socket->fd= fd; +} + +/** + @def MYSQL_SOCKET_WAIT_VARIABLES + Instrumentation helper for socket waits. + This instrumentation declares local variables. + Do not use a ';' after this macro + @param LOCKER locker + @param STATE locker state + @sa MYSQL_START_SOCKET_WAIT. + @sa MYSQL_END_SOCKET_WAIT. +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define MYSQL_SOCKET_WAIT_VARIABLES(LOCKER, STATE) \ + struct PSI_socket_locker* LOCKER; \ + PSI_socket_locker_state STATE; +#else + #define MYSQL_SOCKET_WAIT_VARIABLES(LOCKER, STATE) +#endif + +/** + @def MYSQL_START_SOCKET_WAIT + Instrumentation helper for socket waits. + This instrumentation marks the start of a wait event. + @param LOCKER locker + @param STATE locker state + @param SOCKET instrumented socket + @param OP The socket operation to be performed + @param COUNT bytes to be written/read + @sa MYSQL_END_SOCKET_WAIT. +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define MYSQL_START_SOCKET_WAIT(LOCKER, STATE, SOCKET, OP, COUNT) \ + LOCKER= inline_mysql_start_socket_wait(STATE, SOCKET, OP, COUNT,\ + __FILE__, __LINE__) +#else + #define MYSQL_START_SOCKET_WAIT(LOCKER, STATE, SOCKET, OP, COUNT) \ + do {} while (0) +#endif + +/** + @def MYSQL_END_SOCKET_WAIT + Instrumentation helper for socket waits. + This instrumentation marks the end of a wait event. + @param LOCKER locker + @param COUNT actual bytes written/read, or -1 + @sa MYSQL_START_SOCKET_WAIT. +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define MYSQL_END_SOCKET_WAIT(LOCKER, COUNT) \ + inline_mysql_end_socket_wait(LOCKER, COUNT) +#else + #define MYSQL_END_SOCKET_WAIT(LOCKER, COUNT) \ + do {} while (0) +#endif + +/** + @def MYSQL_SOCKET_SET_STATE + Set the state (IDLE, ACTIVE) of an instrumented socket. + @param SOCKET the instrumented socket + @param STATE the new state + @sa PSI_socket_state +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define MYSQL_SOCKET_SET_STATE(SOCKET, STATE) \ + inline_mysql_socket_set_state(SOCKET, STATE) +#else + #define MYSQL_SOCKET_SET_STATE(SOCKET, STATE) \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_SOCKET_INTERFACE +/** + Instrumentation calls for MYSQL_START_SOCKET_WAIT. + @sa MYSQL_START_SOCKET_WAIT. +*/ +static inline struct PSI_socket_locker* +inline_mysql_start_socket_wait(PSI_socket_locker_state *state, + MYSQL_SOCKET mysql_socket, + enum PSI_socket_operation op, + size_t byte_count, + const char *src_file, int src_line) +{ + struct PSI_socket_locker *locker; + if (mysql_socket.m_psi != NULL) + { + locker= PSI_SOCKET_CALL(start_socket_wait) + (state, mysql_socket.m_psi, op, byte_count, src_file, src_line); + } + else + locker= NULL; + return locker; +} + +/** + Instrumentation calls for MYSQL_END_SOCKET_WAIT. + @sa MYSQL_END_SOCKET_WAIT. +*/ +static inline void +inline_mysql_end_socket_wait(struct PSI_socket_locker *locker, size_t byte_count) +{ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, byte_count); +} + +/** + Set the state (IDLE, ACTIVE) of an instrumented socket. + @param socket the instrumented socket + @param state the new state + @sa PSI_socket_state +*/ +static inline void +inline_mysql_socket_set_state(MYSQL_SOCKET socket, enum PSI_socket_state state) +{ + if (socket.m_psi != NULL) + PSI_SOCKET_CALL(set_socket_state)(socket.m_psi, state); +} +#endif /* HAVE_PSI_SOCKET_INTERFACE */ + +/** + @def mysql_socket_socket(K, D, T, P) + Create a socket. + @c mysql_socket_socket is a replacement for @c socket. + @param K PSI_socket_key for this instrumented socket + @param D Socket domain + @param T Protocol type + @param P Transport protocol +*/ + +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_socket(K, D, T, P) \ + inline_mysql_socket_socket(K, D, T, P) +#else + #define mysql_socket_socket(K, D, T, P) \ + inline_mysql_socket_socket(D, T, P) +#endif + +/** + @def mysql_socket_bind(FD, AP, L) + Bind a socket to a local port number and IP address + @c mysql_socket_bind is a replacement for @c bind. + @param FD Instrumented socket descriptor returned by socket() + @param AP Pointer to local port number and IP address in sockaddr structure + @param L Length of sockaddr structure +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_bind(FD, AP, L) \ + inline_mysql_socket_bind(__FILE__, __LINE__, FD, AP, L) +#else + #define mysql_socket_bind(FD, AP, L) \ + inline_mysql_socket_bind(FD, AP, L) +#endif + +/** + @def mysql_socket_getsockname(FD, AP, LP) + Return port number and IP address of the local host + @c mysql_socket_getsockname is a replacement for @c getsockname. + @param FD Instrumented socket descriptor returned by socket() + @param AP Pointer to returned address of local host in @c sockaddr structure + @param LP Pointer to length of @c sockaddr structure +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_getsockname(FD, AP, LP) \ + inline_mysql_socket_getsockname(__FILE__, __LINE__, FD, AP, LP) +#else + #define mysql_socket_getsockname(FD, AP, LP) \ + inline_mysql_socket_getsockname(FD, AP, LP) +#endif + +/** + @def mysql_socket_connect(FD, AP, L) + Establish a connection to a remote host. + @c mysql_socket_connect is a replacement for @c connect. + @param FD Instrumented socket descriptor returned by socket() + @param AP Pointer to target address in sockaddr structure + @param L Length of sockaddr structure +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_connect(FD, AP, L) \ + inline_mysql_socket_connect(__FILE__, __LINE__, FD, AP, L) +#else + #define mysql_socket_connect(FD, AP, L) \ + inline_mysql_socket_connect(FD, AP, L) +#endif + +/** + @def mysql_socket_getpeername(FD, AP, LP) + Get port number and IP address of remote host that a socket is connected to. + @c mysql_socket_getpeername is a replacement for @c getpeername. + @param FD Instrumented socket descriptor returned by socket() or accept() + @param AP Pointer to returned address of remote host in sockaddr structure + @param LP Pointer to length of sockaddr structure +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_getpeername(FD, AP, LP) \ + inline_mysql_socket_getpeername(__FILE__, __LINE__, FD, AP, LP) +#else + #define mysql_socket_getpeername(FD, AP, LP) \ + inline_mysql_socket_getpeername(FD, AP, LP) +#endif + +/** + @def mysql_socket_send(FD, B, N, FL) + Send data from the buffer, B, to a connected socket. + @c mysql_socket_send is a replacement for @c send. + @param FD Instrumented socket descriptor returned by socket() or accept() + @param B Buffer to send + @param N Number of bytes to send + @param FL Control flags +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_send(FD, B, N, FL) \ + inline_mysql_socket_send(__FILE__, __LINE__, FD, B, N, FL) +#else + #define mysql_socket_send(FD, B, N, FL) \ + inline_mysql_socket_send(FD, B, N, FL) +#endif + +/** + @def mysql_socket_recv(FD, B, N, FL) + Receive data from a connected socket. + @c mysql_socket_recv is a replacement for @c recv. + @param FD Instrumented socket descriptor returned by socket() or accept() + @param B Buffer to receive to + @param N Maximum bytes to receive + @param FL Control flags +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_recv(FD, B, N, FL) \ + inline_mysql_socket_recv(__FILE__, __LINE__, FD, B, N, FL) +#else + #define mysql_socket_recv(FD, B, N, FL) \ + inline_mysql_socket_recv(FD, B, N, FL) +#endif + +/** + @def mysql_socket_sendto(FD, B, N, FL, AP, L) + Send data to a socket at the specified address. + @c mysql_socket_sendto is a replacement for @c sendto. + @param FD Instrumented socket descriptor returned by socket() + @param B Buffer to send + @param N Number of bytes to send + @param FL Control flags + @param AP Pointer to destination sockaddr structure + @param L Size of sockaddr structure +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_sendto(FD, B, N, FL, AP, L) \ + inline_mysql_socket_sendto(__FILE__, __LINE__, FD, B, N, FL, AP, L) +#else + #define mysql_socket_sendto(FD, B, N, FL, AP, L) \ + inline_mysql_socket_sendto(FD, B, N, FL, AP, L) +#endif + +/** + @def mysql_socket_recvfrom(FD, B, N, FL, AP, L) + Receive data from a socket and return source address information + @c mysql_socket_recvfrom is a replacement for @c recvfrom. + @param FD Instrumented socket descriptor returned by socket() + @param B Buffer to receive to + @param N Maximum bytes to receive + @param FL Control flags + @param AP Pointer to source address in sockaddr_storage structure + @param LP Size of sockaddr_storage structure +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_recvfrom(FD, B, N, FL, AP, LP) \ + inline_mysql_socket_recvfrom(__FILE__, __LINE__, FD, B, N, FL, AP, LP) +#else + #define mysql_socket_recvfrom(FD, B, N, FL, AP, LP) \ + inline_mysql_socket_recvfrom(FD, B, N, FL, AP, LP) +#endif + +/** + @def mysql_socket_getsockopt(FD, LV, ON, OP, OL) + Get a socket option for the specified socket. + @c mysql_socket_getsockopt is a replacement for @c getsockopt. + @param FD Instrumented socket descriptor returned by socket() + @param LV Protocol level + @param ON Option to query + @param OP Buffer which will contain the value for the requested option + @param OL Pointer to length of OP +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_getsockopt(FD, LV, ON, OP, OL) \ + inline_mysql_socket_getsockopt(__FILE__, __LINE__, FD, LV, ON, OP, OL) +#else + #define mysql_socket_getsockopt(FD, LV, ON, OP, OL) \ + inline_mysql_socket_getsockopt(FD, LV, ON, OP, OL) +#endif + +/** + @def mysql_socket_setsockopt(FD, LV, ON, OP, OL) + Set a socket option for the specified socket. + @c mysql_socket_setsockopt is a replacement for @c setsockopt. + @param FD Instrumented socket descriptor returned by socket() + @param LV Protocol level + @param ON Option to modify + @param OP Buffer containing the value for the specified option + @param OL Pointer to length of OP +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_setsockopt(FD, LV, ON, OP, OL) \ + inline_mysql_socket_setsockopt(__FILE__, __LINE__, FD, LV, ON, OP, OL) +#else + #define mysql_socket_setsockopt(FD, LV, ON, OP, OL) \ + inline_mysql_socket_setsockopt(FD, LV, ON, OP, OL) +#endif + +/** + @def mysql_sock_set_nonblocking + Set socket to non-blocking. + @param FD instrumented socket descriptor +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_sock_set_nonblocking(FD) \ + inline_mysql_sock_set_nonblocking(__FILE__, __LINE__, FD) +#else + #define mysql_sock_set_nonblocking(FD) \ + inline_mysql_sock_set_nonblocking(FD) +#endif + +/** + @def mysql_socket_listen(FD, N) + Set socket state to listen for an incoming connection. + @c mysql_socket_listen is a replacement for @c listen. + @param FD Instrumented socket descriptor, bound and connected + @param N Maximum number of pending connections allowed. +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_listen(FD, N) \ + inline_mysql_socket_listen(__FILE__, __LINE__, FD, N) +#else + #define mysql_socket_listen(FD, N) \ + inline_mysql_socket_listen(FD, N) +#endif + +/** + @def mysql_socket_accept(K, FD, AP, LP) + Accept a connection from any remote host; TCP only. + @c mysql_socket_accept is a replacement for @c accept. + @param K PSI_socket_key for this instrumented socket + @param FD Instrumented socket descriptor, bound and placed in a listen state + @param AP Pointer to sockaddr structure with returned IP address and port of connected host + @param LP Pointer to length of valid information in AP +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_accept(K, FD, AP, LP) \ + inline_mysql_socket_accept(__FILE__, __LINE__, K, FD, AP, LP) +#else + #define mysql_socket_accept(K, FD, AP, LP) \ + inline_mysql_socket_accept(FD, AP, LP) +#endif + +/** + @def mysql_socket_close(FD) + Close a socket and sever any connections. + @c mysql_socket_close is a replacement for @c close. + @param FD Instrumented socket descriptor returned by socket() or accept() +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_close(FD) \ + inline_mysql_socket_close(__FILE__, __LINE__, FD) +#else + #define mysql_socket_close(FD) \ + inline_mysql_socket_close(FD) +#endif + +/** + @def mysql_socket_shutdown(FD, H) + Disable receives and/or sends on a socket. + @c mysql_socket_shutdown is a replacement for @c shutdown. + @param FD Instrumented socket descriptor returned by socket() or accept() + @param H Specifies which operations to shutdown +*/ +#ifdef HAVE_PSI_SOCKET_INTERFACE + #define mysql_socket_shutdown(FD, H) \ + inline_mysql_socket_shutdown(__FILE__, __LINE__, FD, H) +#else + #define mysql_socket_shutdown(FD, H) \ + inline_mysql_socket_shutdown(FD, H) +#endif + +#ifdef HAVE_PSI_SOCKET_INTERFACE +static inline void inline_mysql_socket_register( + const char *category, + PSI_socket_info *info, + int count) +{ + PSI_SOCKET_CALL(register_socket)(category, info, count); +} +#endif + +/** mysql_socket_socket */ + +static inline MYSQL_SOCKET +inline_mysql_socket_socket +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + PSI_socket_key key, +#endif + int domain, int type, int protocol) +{ + MYSQL_SOCKET mysql_socket= MYSQL_INVALID_SOCKET; + mysql_socket.fd= socket(domain, type, protocol); + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (likely(mysql_socket.fd != INVALID_SOCKET)) + { + mysql_socket.m_psi= PSI_SOCKET_CALL(init_socket) + (key, (const my_socket*)&mysql_socket.fd, NULL, 0); + } +#endif + return mysql_socket; +} + +/** mysql_socket_bind */ + +static inline int +inline_mysql_socket_bind +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, const struct sockaddr *addr, socklen_t len) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker_state state; + PSI_socket_locker *locker; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_BIND, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= bind(mysql_socket.fd, addr, len); + + /* Instrumentation end */ + if (result == 0) + PSI_SOCKET_CALL(set_socket_info)(mysql_socket.m_psi, NULL, addr, len); + + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= bind(mysql_socket.fd, addr, len); + return result; +} + +/** mysql_socket_getsockname */ + +static inline int +inline_mysql_socket_getsockname +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, struct sockaddr *addr, socklen_t *len) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_BIND, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= getsockname(mysql_socket.fd, addr, len); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= getsockname(mysql_socket.fd, addr, len); + + return result; +} + +/** mysql_socket_connect */ + +static inline int +inline_mysql_socket_connect +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, const struct sockaddr *addr, socklen_t len) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_CONNECT, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= connect(mysql_socket.fd, addr, len); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= connect(mysql_socket.fd, addr, len); + + return result; +} + +/** mysql_socket_getpeername */ + +static inline int +inline_mysql_socket_getpeername +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, struct sockaddr *addr, socklen_t *len) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_BIND, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= getpeername(mysql_socket.fd, addr, len); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= getpeername(mysql_socket.fd, addr, len); + + return result; +} + +/** mysql_socket_send */ + +static inline ssize_t +inline_mysql_socket_send +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, const SOCKBUF_T *buf, size_t n, int flags) +{ + ssize_t result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_SEND, n, src_file, src_line); + + /* Instrumented code */ + result= send(mysql_socket.fd, buf, IF_WIN((int),) n, flags); + + /* Instrumentation end */ + if (locker != NULL) + { + size_t bytes_written; + bytes_written= (result > -1) ? result : 0; + PSI_SOCKET_CALL(end_socket_wait)(locker, bytes_written); + } + + return result; + } +#endif + + /* Non instrumented code */ + result= send(mysql_socket.fd, buf, IF_WIN((int),) n, flags); + + return result; +} + +/** mysql_socket_recv */ + +static inline ssize_t +inline_mysql_socket_recv +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, SOCKBUF_T *buf, size_t n, int flags) +{ + ssize_t result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_RECV, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= recv(mysql_socket.fd, buf, IF_WIN((int),) n, flags); + + /* Instrumentation end */ + if (locker != NULL) + { + size_t bytes_read; + bytes_read= (result > -1) ? result : 0; + PSI_SOCKET_CALL(end_socket_wait)(locker, bytes_read); + } + + return result; + } +#endif + + /* Non instrumented code */ + result= recv(mysql_socket.fd, buf, IF_WIN((int),) n, flags); + + return result; +} + +/** mysql_socket_sendto */ + +static inline ssize_t +inline_mysql_socket_sendto +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, const SOCKBUF_T *buf, size_t n, int flags, const struct sockaddr *addr, socklen_t addr_len) +{ + ssize_t result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_SEND, n, src_file, src_line); + + /* Instrumented code */ + result= sendto(mysql_socket.fd, buf, IF_WIN((int),) n, flags, addr, addr_len); + + /* Instrumentation end */ + if (locker != NULL) + { + size_t bytes_written; + bytes_written = (result > -1) ? result : 0; + PSI_SOCKET_CALL(end_socket_wait)(locker, bytes_written); + } + + return result; + } +#endif + + /* Non instrumented code */ + result= sendto(mysql_socket.fd, buf, IF_WIN((int),) n, flags, addr, addr_len); + + return result; +} + +/** mysql_socket_recvfrom */ + +static inline ssize_t +inline_mysql_socket_recvfrom +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, SOCKBUF_T *buf, size_t n, int flags, + struct sockaddr *addr, socklen_t *addr_len) +{ + ssize_t result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_RECV, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= recvfrom(mysql_socket.fd, buf, IF_WIN((int),) n, flags, addr, addr_len); + + /* Instrumentation end */ + if (locker != NULL) + { + size_t bytes_read; + bytes_read = (result > -1) ? result : 0; + PSI_SOCKET_CALL(end_socket_wait)(locker, bytes_read); + } + + return result; + } +#endif + + /* Non instrumented code */ + result= recvfrom(mysql_socket.fd, buf, IF_WIN((int),) n, flags, addr, addr_len); + + return result; +} + +/** mysql_socket_getsockopt */ + +static inline int +inline_mysql_socket_getsockopt +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, int level, int optname, SOCKBUF_T *optval, socklen_t *optlen) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_OPT, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= getsockopt(mysql_socket.fd, level, optname, optval, optlen); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= getsockopt(mysql_socket.fd, level, optname, optval, optlen); + + return result; +} + +/** mysql_socket_setsockopt */ + +static inline int +inline_mysql_socket_setsockopt +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, int level, int optname, const SOCKBUF_T *optval, + socklen_t optlen) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_OPT, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= setsockopt(mysql_socket.fd, level, optname, optval, optlen); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= setsockopt(mysql_socket.fd, level, optname, optval, optlen); + + return result; +} + +/** set_socket_nonblock */ +static inline int +set_socket_nonblock(my_socket fd) +{ + int ret= 0; +#ifdef _WIN32 + { + u_long nonblocking= 1; + ret= ioctlsocket(fd, FIONBIO, &nonblocking); + } +#else + { + int fd_flags; + fd_flags= fcntl(fd, F_GETFL, 0); + if (fd_flags < 0) + return errno; +#if defined(O_NONBLOCK) + fd_flags |= O_NONBLOCK; +#elif defined(O_NDELAY) + fd_flags |= O_NDELAY; +#elif defined(O_FNDELAY) + fd_flags |= O_FNDELAY; +#else +#error "No definition of non-blocking flag found." +#endif /* O_NONBLOCK */ + if (fcntl(fd, F_SETFL, fd_flags) == -1) + ret= errno; + } +#endif /* _WIN32 */ + return ret; +} + +/** mysql_socket_set_nonblocking */ + +static inline int +inline_mysql_sock_set_nonblocking +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket +) +{ + int result= 0; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_OPT, + (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= set_socket_nonblock(mysql_socket.fd); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= set_socket_nonblock(mysql_socket.fd); + + return result; +} + +/** mysql_socket_listen */ + +static inline int +inline_mysql_socket_listen +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, int backlog) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_CONNECT, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= listen(mysql_socket.fd, backlog); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ + result= listen(mysql_socket.fd, backlog); + + return result; +} + +/** mysql_socket_accept */ + +static inline MYSQL_SOCKET +inline_mysql_socket_accept +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, PSI_socket_key key, +#endif + MYSQL_SOCKET socket_listen, struct sockaddr *addr, socklen_t *addr_len) +{ + MYSQL_SOCKET socket_accept= MYSQL_INVALID_SOCKET; + socklen_t addr_length= (addr_len != NULL) ? *addr_len : 0; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (socket_listen.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, socket_listen.m_psi, PSI_SOCKET_CONNECT, (size_t)0, src_file, src_line); + + /* Instrumented code */ + socket_accept.fd= accept(socket_listen.fd, addr, &addr_length); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + } + else +#endif + { + /* Non instrumented code */ + socket_accept.fd= accept(socket_listen.fd, addr, &addr_length); + } + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (likely(socket_accept.fd != INVALID_SOCKET)) + { + /* Initialize the instrument with the new socket descriptor and address */ + socket_accept.m_psi= PSI_SOCKET_CALL(init_socket) + (key, (const my_socket*)&socket_accept.fd, addr, addr_length); + } +#endif + + return socket_accept; +} + +/** mysql_socket_close */ + +static inline int +inline_mysql_socket_close +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket) +{ + int result; + +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + /* Instrumentation start */ + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_CLOSE, (size_t)0, src_file, src_line); + + /* Instrumented code */ + result= closesocket(mysql_socket.fd); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + /* Remove the instrumentation for this socket. */ + if (mysql_socket.m_psi != NULL) + PSI_SOCKET_CALL(destroy_socket)(mysql_socket.m_psi); + + return result; + } +#endif + + /* Non instrumented code */ + result= closesocket(mysql_socket.fd); + + return result; +} + +/** mysql_socket_shutdown */ + +static inline int +inline_mysql_socket_shutdown +( +#ifdef HAVE_PSI_SOCKET_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_SOCKET mysql_socket, int how) +{ + int result; + +#ifdef _WIN32 + static LPFN_DISCONNECTEX DisconnectEx = NULL; + if (DisconnectEx == NULL) + { + DWORD dwBytesReturned; + GUID guidDisconnectEx = WSAID_DISCONNECTEX; + WSAIoctl(mysql_socket.fd, SIO_GET_EXTENSION_FUNCTION_POINTER, + &guidDisconnectEx, sizeof(GUID), + &DisconnectEx, sizeof(DisconnectEx), + &dwBytesReturned, NULL, NULL); + } +#endif + +/* Instrumentation start */ +#ifdef HAVE_PSI_SOCKET_INTERFACE + if (mysql_socket.m_psi != NULL) + { + PSI_socket_locker *locker; + PSI_socket_locker_state state; + locker= PSI_SOCKET_CALL(start_socket_wait) + (&state, mysql_socket.m_psi, PSI_SOCKET_SHUTDOWN, (size_t)0, src_file, src_line); + + /* Instrumented code */ +#ifdef _WIN32 + if (DisconnectEx) + result= (DisconnectEx(mysql_socket.fd, (LPOVERLAPPED) NULL, + (DWORD) 0, (DWORD) 0) == TRUE) ? 0 : -1; + else +#endif + result= shutdown(mysql_socket.fd, how); + + /* Instrumentation end */ + if (locker != NULL) + PSI_SOCKET_CALL(end_socket_wait)(locker, (size_t)0); + + return result; + } +#endif + + /* Non instrumented code */ +#ifdef _WIN32 + if (DisconnectEx) + result= (DisconnectEx(mysql_socket.fd, (LPOVERLAPPED) NULL, + (DWORD) 0, (DWORD) 0) == TRUE) ? 0 : -1; + else +#endif + result= shutdown(mysql_socket.fd, how); + + return result; +} + +/** @} (end of group Socket_instrumentation) */ + +#endif + diff --git a/mysql/mysql/psi/mysql_stage.h b/mysql/mysql/psi/mysql_stage.h new file mode 100644 index 0000000..9c1623f --- /dev/null +++ b/mysql/mysql/psi/mysql_stage.h @@ -0,0 +1,198 @@ +/* Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_STAGE_H +#define MYSQL_STAGE_H + +/** + @file mysql/psi/mysql_stage.h + Instrumentation helpers for stages. +*/ + +#include "mysql/psi/psi.h" + +#ifndef PSI_STAGE_CALL +#define PSI_STAGE_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +/** + @defgroup Stage_instrumentation Stage Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + @def mysql_stage_register(P1, P2, P3) + Stage registration. +*/ +#ifdef HAVE_PSI_STAGE_INTERFACE +#define mysql_stage_register(P1, P2, P3) \ + inline_mysql_stage_register(P1, P2, P3) +#else +#define mysql_stage_register(P1, P2, P3) \ + do {} while (0) +#endif + +/** + @def MYSQL_SET_STAGE + Set the current stage. + Use this API when the file and line + is passed from the caller. + @param K the stage key + @param F the source file name + @param L the source file line + @return the current stage progress +*/ +#ifdef HAVE_PSI_STAGE_INTERFACE + #define MYSQL_SET_STAGE(K, F, L) \ + inline_mysql_set_stage(K, F, L) +#else + #define MYSQL_SET_STAGE(K, F, L) \ + NULL +#endif + +/** + @def mysql_set_stage + Set the current stage. + @param K the stage key + @return the current stage progress +*/ +#ifdef HAVE_PSI_STAGE_INTERFACE + #define mysql_set_stage(K) \ + inline_mysql_set_stage(K, __FILE__, __LINE__) +#else + #define mysql_set_stage(K) \ + NULL +#endif + +/** + @def mysql_end_stage + End the last stage +*/ +#ifdef HAVE_PSI_STAGE_INTERFACE + #define mysql_end_stage \ + inline_mysql_end_stage +#else + #define mysql_end_stage \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +static inline void inline_mysql_stage_register( + const char *category, PSI_stage_info **info, int count) +{ + PSI_STAGE_CALL(register_stage)(category, info, count); +} +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +static inline PSI_stage_progress* +inline_mysql_set_stage(PSI_stage_key key, + const char *src_file, int src_line) +{ + return PSI_STAGE_CALL(start_stage)(key, src_file, src_line); +} +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +static inline void +inline_mysql_end_stage() +{ + PSI_STAGE_CALL(end_stage)(); +} +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +#define mysql_stage_set_work_completed(P1, P2) \ + inline_mysql_stage_set_work_completed(P1, P2) + +#define mysql_stage_get_work_completed(P1) \ + inline_mysql_stage_get_work_completed(P1) +#else +#define mysql_stage_set_work_completed(P1, P2) \ + do {} while (0) + +#define mysql_stage_get_work_completed(P1) \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +#define mysql_stage_inc_work_completed(P1, P2) \ + inline_mysql_stage_inc_work_completed(P1, P2) +#else +#define mysql_stage_inc_work_completed(P1, P2) \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +#define mysql_stage_set_work_estimated(P1, P2) \ + inline_mysql_stage_set_work_estimated(P1, P2) + +#define mysql_stage_get_work_estimated(P1) \ + inline_mysql_stage_get_work_estimated(P1) +#else +#define mysql_stage_set_work_estimated(P1, P2) \ + do {} while (0) + +#define mysql_stage_get_work_estimated(P1) \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +static inline void +inline_mysql_stage_set_work_completed(PSI_stage_progress *progress, + ulonglong val) +{ + if (progress != NULL) + progress->m_work_completed= val; +} + +static inline ulonglong +inline_mysql_stage_get_work_completed(PSI_stage_progress *progress) +{ + return progress->m_work_completed; +} +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +static inline void +inline_mysql_stage_inc_work_completed(PSI_stage_progress *progress, + ulonglong val) +{ + if (progress != NULL) + progress->m_work_completed+= val; +} +#endif + +#ifdef HAVE_PSI_STAGE_INTERFACE +static inline void +inline_mysql_stage_set_work_estimated(PSI_stage_progress *progress, + ulonglong val) +{ + if (progress != NULL) + progress->m_work_estimated= val; +} + +static inline ulonglong +inline_mysql_stage_get_work_estimated(PSI_stage_progress *progress) +{ + return progress->m_work_estimated; +} +#endif + +/** @} (end of group Stage_instrumentation) */ + +#endif + diff --git a/mysql/mysql/psi/mysql_table.h b/mysql/mysql/psi/mysql_table.h new file mode 100644 index 0000000..00f7566 --- /dev/null +++ b/mysql/mysql/psi/mysql_table.h @@ -0,0 +1,142 @@ +/* Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_TABLE_H +#define MYSQL_TABLE_H + +/** + @file mysql/psi/mysql_table.h + Instrumentation helpers for table io. +*/ + +#include "mysql/psi/psi.h" + +#ifndef PSI_TABLE_CALL +#define PSI_TABLE_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +/** + @defgroup Table_instrumentation Table Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + @def MYSQL_TABLE_WAIT_VARIABLES + Instrumentation helper for table waits. + This instrumentation declares local variables. + Do not use a ';' after this macro + @param LOCKER the locker + @param STATE the locker state + @sa MYSQL_START_TABLE_IO_WAIT. + @sa MYSQL_END_TABLE_IO_WAIT. + @sa MYSQL_START_TABLE_LOCK_WAIT. + @sa MYSQL_END_TABLE_LOCK_WAIT. +*/ +#ifdef HAVE_PSI_TABLE_INTERFACE + #define MYSQL_TABLE_WAIT_VARIABLES(LOCKER, STATE) \ + struct PSI_table_locker* LOCKER; \ + PSI_table_locker_state STATE; +#else + #define MYSQL_TABLE_WAIT_VARIABLES(LOCKER, STATE) +#endif + +/** + @def MYSQL_START_TABLE_LOCK_WAIT + Instrumentation helper for table lock waits. + This instrumentation marks the start of a wait event. + @param LOCKER the locker + @param STATE the locker state + @param PSI the instrumented table + @param OP the table operation to be performed + @param FLAGS per table operation flags. + @sa MYSQL_END_TABLE_LOCK_WAIT. +*/ +#ifdef HAVE_PSI_TABLE_INTERFACE + #define MYSQL_START_TABLE_LOCK_WAIT(LOCKER, STATE, PSI, OP, FLAGS) \ + LOCKER= inline_mysql_start_table_lock_wait(STATE, PSI, \ + OP, FLAGS, __FILE__, __LINE__) +#else + #define MYSQL_START_TABLE_LOCK_WAIT(LOCKER, STATE, PSI, OP, FLAGS) \ + do {} while (0) +#endif + +/** + @def MYSQL_END_TABLE_LOCK_WAIT + Instrumentation helper for table lock waits. + This instrumentation marks the end of a wait event. + @param LOCKER the locker + @sa MYSQL_START_TABLE_LOCK_WAIT. +*/ +#ifdef HAVE_PSI_TABLE_INTERFACE + #define MYSQL_END_TABLE_LOCK_WAIT(LOCKER) \ + inline_mysql_end_table_lock_wait(LOCKER) +#else + #define MYSQL_END_TABLE_LOCK_WAIT(LOCKER) \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_TABLE_INTERFACE + #define MYSQL_UNLOCK_TABLE(T) \ + inline_mysql_unlock_table(T) +#else + #define MYSQL_UNLOCK_TABLE(T) \ + do {} while (0) +#endif + +#ifdef HAVE_PSI_TABLE_INTERFACE +/** + Instrumentation calls for MYSQL_START_TABLE_LOCK_WAIT. + @sa MYSQL_END_TABLE_LOCK_WAIT. +*/ +static inline struct PSI_table_locker * +inline_mysql_start_table_lock_wait(PSI_table_locker_state *state, + struct PSI_table *psi, + enum PSI_table_lock_operation op, + ulong flags, const char *src_file, int src_line) +{ + if (psi != NULL) + { + struct PSI_table_locker *locker; + locker= PSI_TABLE_CALL(start_table_lock_wait) + (state, psi, op, flags, src_file, src_line); + return locker; + } + return NULL; +} + +/** + Instrumentation calls for MYSQL_END_TABLE_LOCK_WAIT. + @sa MYSQL_START_TABLE_LOCK_WAIT. +*/ +static inline void +inline_mysql_end_table_lock_wait(struct PSI_table_locker *locker) +{ + if (locker != NULL) + PSI_TABLE_CALL(end_table_lock_wait)(locker); +} + +static inline void +inline_mysql_unlock_table(struct PSI_table *table) +{ + if (table != NULL) + PSI_TABLE_CALL(unlock_table)(table); +} +#endif + +/** @} (end of group Table_instrumentation) */ + +#endif + diff --git a/mysql/mysql/psi/mysql_thread.h b/mysql/mysql/psi/mysql_thread.h new file mode 100644 index 0000000..c5ace99 --- /dev/null +++ b/mysql/mysql/psi/mysql_thread.h @@ -0,0 +1,1323 @@ +/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_THREAD_H +#define MYSQL_THREAD_H + +/** + @file mysql/psi/mysql_thread.h + Instrumentation helpers for mysys threads, mutexes, + read write locks and conditions. + This header file provides the necessary declarations + to use the mysys thread API with the performance schema instrumentation. + In some compilers (SunStudio), 'static inline' functions, when declared + but not used, are not optimized away (because they are unused) by default, + so that including a static inline function from a header file does + create unwanted dependencies, causing unresolved symbols at link time. + Other compilers, like gcc, optimize these dependencies by default. + + Since the instrumented APIs declared here are wrapper on top + of my_thread / safemutex / etc APIs, + including mysql/psi/mysql_thread.h assumes that + the dependency on my_thread and safemutex already exists. +*/ +/* + Note: there are several orthogonal dimensions here. + + Dimension 1: Instrumentation + HAVE_PSI_INTERFACE is defined when the instrumentation is compiled in. + This may happen both in debug or production builds. + + Dimension 2: Debug + SAFE_MUTEX is defined when debug is compiled in. + This may happen both with and without instrumentation. + + Dimension 3: Platform + Mutexes are implemented with one of: + - the pthread library + - fast mutexes + - window apis + This is implemented by various macro definitions in my_thread.h + + This causes complexity with '#ifdef'-ery that can't be avoided. +*/ + +#include "my_thread.h" +#include "my_thread_local.h" +#include "thr_mutex.h" +#include "thr_rwlock.h" +#include "mysql/psi/psi.h" +#ifdef MYSQL_SERVER +#ifndef MYSQL_DYNAMIC_PLUGIN +#include "pfs_thread_provider.h" +#endif +#endif + +#ifndef PSI_MUTEX_CALL +#define PSI_MUTEX_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +#ifndef PSI_RWLOCK_CALL +#define PSI_RWLOCK_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +#ifndef PSI_COND_CALL +#define PSI_COND_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +#ifndef PSI_THREAD_CALL +#define PSI_THREAD_CALL(M) PSI_DYNAMIC_CALL(M) +#endif + +/** + @defgroup Thread_instrumentation Thread Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + An instrumented mutex structure. + @sa mysql_mutex_t +*/ +struct st_mysql_mutex +{ + /** The real mutex. */ + my_mutex_t m_mutex; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_mutex_t interface. + */ + struct PSI_mutex *m_psi; +}; + +/** + Type of an instrumented mutex. + @c mysql_mutex_t is a drop-in replacement for @c my_mutex_t. + @sa mysql_mutex_assert_owner + @sa mysql_mutex_assert_not_owner + @sa mysql_mutex_init + @sa mysql_mutex_lock + @sa mysql_mutex_unlock + @sa mysql_mutex_destroy +*/ +typedef struct st_mysql_mutex mysql_mutex_t; + +/** + An instrumented rwlock structure. + @sa mysql_rwlock_t +*/ +struct st_mysql_rwlock +{ + /** The real rwlock */ + native_rw_lock_t m_rwlock; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_rwlock_t interface. + */ + struct PSI_rwlock *m_psi; +}; + +/** + An instrumented prlock structure. + @sa mysql_prlock_t +*/ +struct st_mysql_prlock +{ + /** The real prlock */ + rw_pr_lock_t m_prlock; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_rwlock_t interface. + */ + struct PSI_rwlock *m_psi; +}; + +/** + Type of an instrumented rwlock. + @c mysql_rwlock_t is a drop-in replacement for @c pthread_rwlock_t. + @sa mysql_rwlock_init + @sa mysql_rwlock_rdlock + @sa mysql_rwlock_tryrdlock + @sa mysql_rwlock_wrlock + @sa mysql_rwlock_trywrlock + @sa mysql_rwlock_unlock + @sa mysql_rwlock_destroy +*/ +typedef struct st_mysql_rwlock mysql_rwlock_t; + +/** + Type of an instrumented prlock. + A prlock is a read write lock that 'prefers readers' (pr). + @c mysql_prlock_t is a drop-in replacement for @c rw_pr_lock_t. + @sa mysql_prlock_init + @sa mysql_prlock_rdlock + @sa mysql_prlock_wrlock + @sa mysql_prlock_unlock + @sa mysql_prlock_destroy +*/ +typedef struct st_mysql_prlock mysql_prlock_t; + +/** + An instrumented cond structure. + @sa mysql_cond_t +*/ +struct st_mysql_cond +{ + /** The real condition */ + native_cond_t m_cond; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_cond_t interface. + */ + struct PSI_cond *m_psi; +}; + +/** + Type of an instrumented condition. + @c mysql_cond_t is a drop-in replacement for @c native_cond_t. + @sa mysql_cond_init + @sa mysql_cond_wait + @sa mysql_cond_timedwait + @sa mysql_cond_signal + @sa mysql_cond_broadcast + @sa mysql_cond_destroy +*/ +typedef struct st_mysql_cond mysql_cond_t; + +/* + Consider the following code: + static inline void foo() { bar(); } + when foo() is never called. + + With gcc, foo() is a local static function, so the dependencies + are optimized away at compile time, and there is no dependency on bar(). + With other compilers (HP, Sun Studio), the function foo() implementation + is compiled, and bar() needs to be present to link. + + Due to the existing header dependencies in MySQL code, this header file + is sometime used when it is not needed, which in turn cause link failures + on some platforms. + The proper fix would be to cut these extra dependencies in the calling code. + DISABLE_MYSQL_THREAD_H is a work around to limit dependencies. + DISABLE_MYSQL_PRLOCK_H is similar, and is used to disable specifically + the prlock wrappers. +*/ +#ifndef DISABLE_MYSQL_THREAD_H + +/** + @def mysql_mutex_assert_owner(M) + Wrapper, to use safe_mutex_assert_owner with instrumented mutexes. + @c mysql_mutex_assert_owner is a drop-in replacement + for @c safe_mutex_assert_owner. +*/ +#ifdef SAFE_MUTEX +#define mysql_mutex_assert_owner(M) \ + safe_mutex_assert_owner(&(M)->m_mutex); +#else +#define mysql_mutex_assert_owner(M) { } +#endif + +/** + @def mysql_mutex_assert_not_owner(M) + Wrapper, to use safe_mutex_assert_not_owner with instrumented mutexes. + @c mysql_mutex_assert_not_owner is a drop-in replacement + for @c safe_mutex_assert_not_owner. +*/ +#ifdef SAFE_MUTEX +#define mysql_mutex_assert_not_owner(M) \ + safe_mutex_assert_not_owner(&(M)->m_mutex); +#else +#define mysql_mutex_assert_not_owner(M) { } +#endif + +/** + @def mysql_prlock_assert_write_owner(M) + Drop-in replacement + for @c rw_pr_lock_assert_write_owner. +*/ +#define mysql_prlock_assert_write_owner(M) \ + rw_pr_lock_assert_write_owner(&(M)->m_prlock) + +/** + @def mysql_prlock_assert_not_write_owner(M) + Drop-in replacement + for @c rw_pr_lock_assert_not_write_owner. +*/ +#define mysql_prlock_assert_not_write_owner(M) \ + rw_pr_lock_assert_not_write_owner(&(M)->m_prlock) + +/** + @def mysql_mutex_register(P1, P2, P3) + Mutex registration. +*/ +#define mysql_mutex_register(P1, P2, P3) \ + inline_mysql_mutex_register(P1, P2, P3) + +/** + @def mysql_mutex_init(K, M, A) + Instrumented mutex_init. + @c mysql_mutex_init is a replacement for @c pthread_mutex_init. + @param K The PSI_mutex_key for this instrumented mutex + @param M The mutex to initialize + @param A Mutex attributes +*/ + +#ifdef HAVE_PSI_MUTEX_INTERFACE + #ifdef SAFE_MUTEX + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(K, M, A, __FILE__, __LINE__) + #else + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(K, M, A) + #endif +#else + #ifdef SAFE_MUTEX + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(M, A, __FILE__, __LINE__) + #else + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(M, A) + #endif +#endif + +/** + @def mysql_mutex_destroy(M) + Instrumented mutex_destroy. + @c mysql_mutex_destroy is a drop-in replacement + for @c pthread_mutex_destroy. +*/ +#ifdef SAFE_MUTEX + #define mysql_mutex_destroy(M) \ + inline_mysql_mutex_destroy(M, __FILE__, __LINE__) +#else + #define mysql_mutex_destroy(M) \ + inline_mysql_mutex_destroy(M) +#endif + +/** + @def mysql_mutex_lock(M) + Instrumented mutex_lock. + @c mysql_mutex_lock is a drop-in replacement for @c pthread_mutex_lock. + @param M The mutex to lock +*/ + +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) + #define mysql_mutex_lock(M) \ + inline_mysql_mutex_lock(M, __FILE__, __LINE__) +#else + #define mysql_mutex_lock(M) \ + inline_mysql_mutex_lock(M) +#endif + +/** + @def mysql_mutex_trylock(M) + Instrumented mutex_lock. + @c mysql_mutex_trylock is a drop-in replacement + for @c my_mutex_trylock. +*/ + +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) + #define mysql_mutex_trylock(M) \ + inline_mysql_mutex_trylock(M, __FILE__, __LINE__) +#else + #define mysql_mutex_trylock(M) \ + inline_mysql_mutex_trylock(M) +#endif + +/** + @def mysql_mutex_unlock(M) + Instrumented mutex_unlock. + @c mysql_mutex_unlock is a drop-in replacement for @c pthread_mutex_unlock. +*/ +#ifdef SAFE_MUTEX + #define mysql_mutex_unlock(M) \ + inline_mysql_mutex_unlock(M, __FILE__, __LINE__) +#else + #define mysql_mutex_unlock(M) \ + inline_mysql_mutex_unlock(M) +#endif + +/** + @def mysql_rwlock_register(P1, P2, P3) + Rwlock registration. +*/ +#define mysql_rwlock_register(P1, P2, P3) \ + inline_mysql_rwlock_register(P1, P2, P3) + +/** + @def mysql_rwlock_init(K, RW) + Instrumented rwlock_init. + @c mysql_rwlock_init is a replacement for @c pthread_rwlock_init. + Note that pthread_rwlockattr_t is not supported in MySQL. + @param K The PSI_rwlock_key for this instrumented rwlock + @param RW The rwlock to initialize +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(K, RW) +#else + #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(RW) +#endif + +/** + @def mysql_prlock_init(K, RW) + Instrumented rw_pr_init. + @c mysql_prlock_init is a replacement for @c rw_pr_init. + @param K The PSI_rwlock_key for this instrumented prlock + @param RW The prlock to initialize +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(K, RW) +#else + #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(RW) +#endif + +/** + @def mysql_rwlock_destroy(RW) + Instrumented rwlock_destroy. + @c mysql_rwlock_destroy is a drop-in replacement + for @c pthread_rwlock_destroy. +*/ +#define mysql_rwlock_destroy(RW) inline_mysql_rwlock_destroy(RW) + +/** + @def mysql_prlock_destroy(RW) + Instrumented rw_pr_destroy. + @c mysql_prlock_destroy is a drop-in replacement + for @c rw_pr_destroy. +*/ +#define mysql_prlock_destroy(RW) inline_mysql_prlock_destroy(RW) + +/** + @def mysql_rwlock_rdlock(RW) + Instrumented rwlock_rdlock. + @c mysql_rwlock_rdlock is a drop-in replacement + for @c pthread_rwlock_rdlock. +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_rwlock_rdlock(RW) \ + inline_mysql_rwlock_rdlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_rdlock(RW) \ + inline_mysql_rwlock_rdlock(RW) +#endif + +/** + @def mysql_prlock_rdlock(RW) + Instrumented rw_pr_rdlock. + @c mysql_prlock_rdlock is a drop-in replacement + for @c rw_pr_rdlock. +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_prlock_rdlock(RW) \ + inline_mysql_prlock_rdlock(RW, __FILE__, __LINE__) +#else + #define mysql_prlock_rdlock(RW) \ + inline_mysql_prlock_rdlock(RW) +#endif + +/** + @def mysql_rwlock_wrlock(RW) + Instrumented rwlock_wrlock. + @c mysql_rwlock_wrlock is a drop-in replacement + for @c pthread_rwlock_wrlock. +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_rwlock_wrlock(RW) \ + inline_mysql_rwlock_wrlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_wrlock(RW) \ + inline_mysql_rwlock_wrlock(RW) +#endif + +/** + @def mysql_prlock_wrlock(RW) + Instrumented rw_pr_wrlock. + @c mysql_prlock_wrlock is a drop-in replacement + for @c rw_pr_wrlock. +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_prlock_wrlock(RW) \ + inline_mysql_prlock_wrlock(RW, __FILE__, __LINE__) +#else + #define mysql_prlock_wrlock(RW) \ + inline_mysql_prlock_wrlock(RW) +#endif + +/** + @def mysql_rwlock_tryrdlock(RW) + Instrumented rwlock_tryrdlock. + @c mysql_rwlock_tryrdlock is a drop-in replacement + for @c pthread_rwlock_tryrdlock. +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_rwlock_tryrdlock(RW) \ + inline_mysql_rwlock_tryrdlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_tryrdlock(RW) \ + inline_mysql_rwlock_tryrdlock(RW) +#endif + +/** + @def mysql_rwlock_trywrlock(RW) + Instrumented rwlock_trywrlock. + @c mysql_rwlock_trywrlock is a drop-in replacement + for @c pthread_rwlock_trywrlock. +*/ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + #define mysql_rwlock_trywrlock(RW) \ + inline_mysql_rwlock_trywrlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_trywrlock(RW) \ + inline_mysql_rwlock_trywrlock(RW) +#endif + +/** + @def mysql_rwlock_unlock(RW) + Instrumented rwlock_unlock. + @c mysql_rwlock_unlock is a drop-in replacement + for @c pthread_rwlock_unlock. +*/ +#define mysql_rwlock_unlock(RW) inline_mysql_rwlock_unlock(RW) + +/** + @def mysql_prlock_unlock(RW) + Instrumented rw_pr_unlock. + @c mysql_prlock_unlock is a drop-in replacement + for @c rw_pr_unlock. +*/ +#define mysql_prlock_unlock(RW) inline_mysql_prlock_unlock(RW) + +/** + @def mysql_cond_register(P1, P2, P3) + Cond registration. +*/ +#define mysql_cond_register(P1, P2, P3) \ + inline_mysql_cond_register(P1, P2, P3) + +/** + @def mysql_cond_init(K, C) + Instrumented cond_init. + @c mysql_cond_init is a replacement for @c pthread_cond_init. + Note that pthread_condattr_t is not supported in MySQL. + @param C The cond to initialize + @param K The PSI_cond_key for this instrumented cond + +*/ +#ifdef HAVE_PSI_COND_INTERFACE + #define mysql_cond_init(K, C) inline_mysql_cond_init(K, C) +#else + #define mysql_cond_init(K, C) inline_mysql_cond_init(C) +#endif + +/** + @def mysql_cond_destroy(C) + Instrumented cond_destroy. + @c mysql_cond_destroy is a drop-in replacement for @c pthread_cond_destroy. +*/ +#define mysql_cond_destroy(C) inline_mysql_cond_destroy(C) + +/** + @def mysql_cond_wait(C) + Instrumented cond_wait. + @c mysql_cond_wait is a drop-in replacement for @c native_cond_wait. +*/ +#if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) + #define mysql_cond_wait(C, M) \ + inline_mysql_cond_wait(C, M, __FILE__, __LINE__) +#else + #define mysql_cond_wait(C, M) \ + inline_mysql_cond_wait(C, M) +#endif + +/** + @def mysql_cond_timedwait(C, M, W) + Instrumented cond_timedwait. + @c mysql_cond_timedwait is a drop-in replacement + for @c native_cond_timedwait. +*/ +#if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) + #define mysql_cond_timedwait(C, M, W) \ + inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__) +#else + #define mysql_cond_timedwait(C, M, W) \ + inline_mysql_cond_timedwait(C, M, W) +#endif + +/** + @def mysql_cond_signal(C) + Instrumented cond_signal. + @c mysql_cond_signal is a drop-in replacement for @c pthread_cond_signal. +*/ +#define mysql_cond_signal(C) inline_mysql_cond_signal(C) + +/** + @def mysql_cond_broadcast(C) + Instrumented cond_broadcast. + @c mysql_cond_broadcast is a drop-in replacement + for @c pthread_cond_broadcast. +*/ +#define mysql_cond_broadcast(C) inline_mysql_cond_broadcast(C) + +/** + @def mysql_thread_register(P1, P2, P3) + Thread registration. +*/ +#define mysql_thread_register(P1, P2, P3) \ + inline_mysql_thread_register(P1, P2, P3) + +/** + @def mysql_thread_create(K, P1, P2, P3, P4) + Instrumented my_thread_create. + This function creates both the thread instrumentation and a thread. + @c mysql_thread_create is a replacement for @c my_thread_create. + The parameter P4 (or, if it is NULL, P1) will be used as the + instrumented thread "indentity". + Providing a P1 / P4 parameter with a different value for each call + will on average improve performances, since this thread identity value + is used internally to randomize access to data and prevent contention. + This is optional, and the improvement is not guaranteed, only statistical. + @param K The PSI_thread_key for this instrumented thread + @param P1 my_thread_create parameter 1 + @param P2 my_thread_create parameter 2 + @param P3 my_thread_create parameter 3 + @param P4 my_thread_create parameter 4 +*/ +#ifdef HAVE_PSI_THREAD_INTERFACE + #define mysql_thread_create(K, P1, P2, P3, P4) \ + inline_mysql_thread_create(K, P1, P2, P3, P4) +#else + #define mysql_thread_create(K, P1, P2, P3, P4) \ + my_thread_create(P1, P2, P3, P4) +#endif + +/** + @def mysql_thread_set_psi_id(I) + Set the thread identifier for the instrumentation. + @param I The thread identifier +*/ +#ifdef HAVE_PSI_THREAD_INTERFACE + #define mysql_thread_set_psi_id(I) inline_mysql_thread_set_psi_id(I) +#else + #define mysql_thread_set_psi_id(I) do {} while (0) +#endif + +/** + @def mysql_thread_set_psi_THD(T) + Set the thread sql session for the instrumentation. + @param I The thread identifier +*/ +#ifdef HAVE_PSI_THREAD_INTERFACE + #define mysql_thread_set_psi_THD(T) inline_mysql_thread_set_psi_THD(T) +#else + #define mysql_thread_set_psi_THD(T) do {} while (0) +#endif + +static inline void inline_mysql_mutex_register( +#ifdef HAVE_PSI_MUTEX_INTERFACE + const char *category, + PSI_mutex_info *info, + int count +#else + const char *category MY_ATTRIBUTE ((unused)), + void *info MY_ATTRIBUTE ((unused)), + int count MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_MUTEX_INTERFACE + PSI_MUTEX_CALL(register_mutex)(category, info, count); +#endif +} + +static inline int inline_mysql_mutex_init( +#ifdef HAVE_PSI_MUTEX_INTERFACE + PSI_mutex_key key, +#endif + mysql_mutex_t *that, + const native_mutexattr_t *attr +#ifdef SAFE_MUTEX + , const char *src_file, uint src_line +#endif + ) +{ +#ifdef HAVE_PSI_MUTEX_INTERFACE + that->m_psi= PSI_MUTEX_CALL(init_mutex)(key, &that->m_mutex); +#else + that->m_psi= NULL; +#endif + return my_mutex_init(&that->m_mutex, attr +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); +} + +static inline int inline_mysql_mutex_destroy( + mysql_mutex_t *that +#ifdef SAFE_MUTEX + , const char *src_file, uint src_line +#endif + ) +{ +#ifdef HAVE_PSI_MUTEX_INTERFACE + if (that->m_psi != NULL) + { + PSI_MUTEX_CALL(destroy_mutex)(that->m_psi); + that->m_psi= NULL; + } +#endif + return my_mutex_destroy(&that->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); +} + +static inline int inline_mysql_mutex_lock( + mysql_mutex_t *that +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_MUTEX_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_mutex_locker *locker; + PSI_mutex_locker_state state; + locker= PSI_MUTEX_CALL(start_mutex_wait)(&state, that->m_psi, + PSI_MUTEX_LOCK, src_file, src_line); + + /* Instrumented code */ + result= my_mutex_lock(&that->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + /* Instrumentation end */ + if (locker != NULL) + PSI_MUTEX_CALL(end_mutex_wait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= my_mutex_lock(&that->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + return result; +} + +static inline int inline_mysql_mutex_trylock( + mysql_mutex_t *that +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_MUTEX_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_mutex_locker *locker; + PSI_mutex_locker_state state; + locker= PSI_MUTEX_CALL(start_mutex_wait)(&state, that->m_psi, + PSI_MUTEX_TRYLOCK, src_file, src_line); + + /* Instrumented code */ + result= my_mutex_trylock(&that->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + /* Instrumentation end */ + if (locker != NULL) + PSI_MUTEX_CALL(end_mutex_wait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= my_mutex_trylock(&that->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + return result; +} + +static inline int inline_mysql_mutex_unlock( + mysql_mutex_t *that +#ifdef SAFE_MUTEX + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_MUTEX_INTERFACE + if (that->m_psi != NULL) + PSI_MUTEX_CALL(unlock_mutex)(that->m_psi); +#endif + + result= my_mutex_unlock(&that->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + return result; +} + +static inline void inline_mysql_rwlock_register( +#ifdef HAVE_PSI_RWLOCK_INTERFACE + const char *category, + PSI_rwlock_info *info, + int count +#else + const char *category MY_ATTRIBUTE ((unused)), + void *info MY_ATTRIBUTE ((unused)), + int count MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + PSI_RWLOCK_CALL(register_rwlock)(category, info, count); +#endif +} + +static inline int inline_mysql_rwlock_init( +#ifdef HAVE_PSI_RWLOCK_INTERFACE + PSI_rwlock_key key, +#endif + mysql_rwlock_t *that) +{ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + that->m_psi= PSI_RWLOCK_CALL(init_rwlock)(key, &that->m_rwlock); +#else + that->m_psi= NULL; +#endif + return native_rw_init(&that->m_rwlock); +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_init( +#ifdef HAVE_PSI_RWLOCK_INTERFACE + PSI_rwlock_key key, +#endif + mysql_prlock_t *that) +{ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + that->m_psi= PSI_RWLOCK_CALL(init_rwlock)(key, &that->m_prlock); +#else + that->m_psi= NULL; +#endif + return rw_pr_init(&that->m_prlock); +} +#endif + +static inline int inline_mysql_rwlock_destroy( + mysql_rwlock_t *that) +{ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + PSI_RWLOCK_CALL(destroy_rwlock)(that->m_psi); + that->m_psi= NULL; + } +#endif + return native_rw_destroy(&that->m_rwlock); +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_destroy( + mysql_prlock_t *that) +{ +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + PSI_RWLOCK_CALL(destroy_rwlock)(that->m_psi); + that->m_psi= NULL; + } +#endif + return rw_pr_destroy(&that->m_prlock); +} +#endif + +static inline int inline_mysql_rwlock_rdlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_RWLOCK_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_rwlock_locker *locker; + PSI_rwlock_locker_state state; + locker= PSI_RWLOCK_CALL(start_rwlock_rdwait)(&state, that->m_psi, + PSI_RWLOCK_READLOCK, src_file, src_line); + + /* Instrumented code */ + result= native_rw_rdlock(&that->m_rwlock); + + /* Instrumentation end */ + if (locker != NULL) + PSI_RWLOCK_CALL(end_rwlock_rdwait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= native_rw_rdlock(&that->m_rwlock); + + return result; +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_rdlock( + mysql_prlock_t *that +#ifdef HAVE_PSI_RWLOCK_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_rwlock_locker *locker; + PSI_rwlock_locker_state state; + locker= PSI_RWLOCK_CALL(start_rwlock_rdwait)(&state, that->m_psi, + PSI_RWLOCK_READLOCK, src_file, src_line); + + /* Instrumented code */ + result= rw_pr_rdlock(&that->m_prlock); + + /* Instrumentation end */ + if (locker != NULL) + PSI_RWLOCK_CALL(end_rwlock_rdwait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= rw_pr_rdlock(&that->m_prlock); + + return result; +} +#endif + +static inline int inline_mysql_rwlock_wrlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_RWLOCK_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_rwlock_locker *locker; + PSI_rwlock_locker_state state; + locker= PSI_RWLOCK_CALL(start_rwlock_wrwait)(&state, that->m_psi, + PSI_RWLOCK_WRITELOCK, src_file, src_line); + + /* Instrumented code */ + result= native_rw_wrlock(&that->m_rwlock); + + /* Instrumentation end */ + if (locker != NULL) + PSI_RWLOCK_CALL(end_rwlock_wrwait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= native_rw_wrlock(&that->m_rwlock); + + return result; +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_wrlock( + mysql_prlock_t *that +#ifdef HAVE_PSI_RWLOCK_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_rwlock_locker *locker; + PSI_rwlock_locker_state state; + locker= PSI_RWLOCK_CALL(start_rwlock_wrwait)(&state, that->m_psi, + PSI_RWLOCK_WRITELOCK, src_file, src_line); + + /* Instrumented code */ + result= rw_pr_wrlock(&that->m_prlock); + + /* Instrumentation end */ + if (locker != NULL) + PSI_RWLOCK_CALL(end_rwlock_wrwait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= rw_pr_wrlock(&that->m_prlock); + + return result; +} +#endif + +static inline int inline_mysql_rwlock_tryrdlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_RWLOCK_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_rwlock_locker *locker; + PSI_rwlock_locker_state state; + locker= PSI_RWLOCK_CALL(start_rwlock_rdwait)(&state, that->m_psi, + PSI_RWLOCK_TRYREADLOCK, src_file, src_line); + + /* Instrumented code */ + result= native_rw_tryrdlock(&that->m_rwlock); + + /* Instrumentation end */ + if (locker != NULL) + PSI_RWLOCK_CALL(end_rwlock_rdwait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= native_rw_tryrdlock(&that->m_rwlock); + + return result; +} + +static inline int inline_mysql_rwlock_trywrlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_RWLOCK_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_rwlock_locker *locker; + PSI_rwlock_locker_state state; + locker= PSI_RWLOCK_CALL(start_rwlock_wrwait)(&state, that->m_psi, + PSI_RWLOCK_TRYWRITELOCK, src_file, src_line); + + /* Instrumented code */ + result= native_rw_trywrlock(&that->m_rwlock); + + /* Instrumentation end */ + if (locker != NULL) + PSI_RWLOCK_CALL(end_rwlock_wrwait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= native_rw_trywrlock(&that->m_rwlock); + + return result; +} + +static inline int inline_mysql_rwlock_unlock( + mysql_rwlock_t *that) +{ + int result; +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + PSI_RWLOCK_CALL(unlock_rwlock)(that->m_psi); +#endif + result= native_rw_unlock(&that->m_rwlock); + return result; +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_unlock( + mysql_prlock_t *that) +{ + int result; +#ifdef HAVE_PSI_RWLOCK_INTERFACE + if (that->m_psi != NULL) + PSI_RWLOCK_CALL(unlock_rwlock)(that->m_psi); +#endif + result= rw_pr_unlock(&that->m_prlock); + return result; +} +#endif + +static inline void inline_mysql_cond_register( +#ifdef HAVE_PSI_COND_INTERFACE + const char *category, + PSI_cond_info *info, + int count +#else + const char *category MY_ATTRIBUTE ((unused)), + void *info MY_ATTRIBUTE ((unused)), + int count MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_COND_INTERFACE + PSI_COND_CALL(register_cond)(category, info, count); +#endif +} + +static inline int inline_mysql_cond_init( +#ifdef HAVE_PSI_COND_INTERFACE + PSI_cond_key key, +#endif + mysql_cond_t *that) +{ +#ifdef HAVE_PSI_COND_INTERFACE + that->m_psi= PSI_COND_CALL(init_cond)(key, &that->m_cond); +#else + that->m_psi= NULL; +#endif + return native_cond_init(&that->m_cond); +} + +static inline int inline_mysql_cond_destroy( + mysql_cond_t *that) +{ +#ifdef HAVE_PSI_COND_INTERFACE + if (that->m_psi != NULL) + { + PSI_COND_CALL(destroy_cond)(that->m_psi); + that->m_psi= NULL; + } +#endif + return native_cond_destroy(&that->m_cond); +} + +static inline int inline_mysql_cond_wait( + mysql_cond_t *that, + mysql_mutex_t *mutex +#if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_COND_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_cond_locker *locker; + PSI_cond_locker_state state; + locker= PSI_COND_CALL(start_cond_wait)(&state, that->m_psi, mutex->m_psi, + PSI_COND_WAIT, src_file, src_line); + + /* Instrumented code */ + result= my_cond_wait(&that->m_cond, &mutex->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + /* Instrumentation end */ + if (locker != NULL) + PSI_COND_CALL(end_cond_wait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= my_cond_wait(&that->m_cond, &mutex->m_mutex +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + return result; +} + +static inline int inline_mysql_cond_timedwait( + mysql_cond_t *that, + mysql_mutex_t *mutex, + const struct timespec *abstime +#if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) + , const char *src_file, uint src_line +#endif + ) +{ + int result; + +#ifdef HAVE_PSI_COND_INTERFACE + if (that->m_psi != NULL) + { + /* Instrumentation start */ + PSI_cond_locker *locker; + PSI_cond_locker_state state; + locker= PSI_COND_CALL(start_cond_wait)(&state, that->m_psi, mutex->m_psi, + PSI_COND_TIMEDWAIT, src_file, src_line); + + /* Instrumented code */ + result= my_cond_timedwait(&that->m_cond, &mutex->m_mutex, abstime +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + /* Instrumentation end */ + if (locker != NULL) + PSI_COND_CALL(end_cond_wait)(locker, result); + + return result; + } +#endif + + /* Non instrumented code */ + result= my_cond_timedwait(&that->m_cond, &mutex->m_mutex, abstime +#ifdef SAFE_MUTEX + , src_file, src_line +#endif + ); + + return result; +} + +static inline int inline_mysql_cond_signal( + mysql_cond_t *that) +{ + int result; +#ifdef HAVE_PSI_COND_INTERFACE + if (that->m_psi != NULL) + PSI_COND_CALL(signal_cond)(that->m_psi); +#endif + result= native_cond_signal(&that->m_cond); + return result; +} + +static inline int inline_mysql_cond_broadcast( + mysql_cond_t *that) +{ + int result; +#ifdef HAVE_PSI_COND_INTERFACE + if (that->m_psi != NULL) + PSI_COND_CALL(broadcast_cond)(that->m_psi); +#endif + result= native_cond_broadcast(&that->m_cond); + return result; +} + +static inline void inline_mysql_thread_register( +#ifdef HAVE_PSI_THREAD_INTERFACE + const char *category, + PSI_thread_info *info, + int count +#else + const char *category MY_ATTRIBUTE ((unused)), + void *info MY_ATTRIBUTE ((unused)), + int count MY_ATTRIBUTE ((unused)) +#endif +) +{ +#ifdef HAVE_PSI_THREAD_INTERFACE + PSI_THREAD_CALL(register_thread)(category, info, count); +#endif +} + +#ifdef HAVE_PSI_THREAD_INTERFACE +static inline int inline_mysql_thread_create( + PSI_thread_key key, + my_thread_handle *thread, const my_thread_attr_t *attr, + my_start_routine start_routine, void *arg) +{ + int result; + result= PSI_THREAD_CALL(spawn_thread)(key, thread, attr, start_routine, arg); + return result; +} + +static inline void inline_mysql_thread_set_psi_id(my_thread_id id) +{ + struct PSI_thread *psi= PSI_THREAD_CALL(get_thread)(); + PSI_THREAD_CALL(set_thread_id)(psi, id); +} + +#ifdef __cplusplus +class THD; +static inline void inline_mysql_thread_set_psi_THD(THD *thd) +{ + struct PSI_thread *psi= PSI_THREAD_CALL(get_thread)(); + PSI_THREAD_CALL(set_thread_THD)(psi, thd); +} +#endif /* __cplusplus */ + +#endif + +#endif /* DISABLE_MYSQL_THREAD_H */ + +/** @} (end of group Thread_instrumentation) */ + +#endif + diff --git a/mysql/mysql/psi/psi.h b/mysql/mysql/psi/psi.h new file mode 100644 index 0000000..9fb6286 --- /dev/null +++ b/mysql/mysql/psi/psi.h @@ -0,0 +1,2980 @@ +/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H +#define MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H + +#ifdef EMBEDDED_LIBRARY +#define DISABLE_ALL_PSI +#endif /* EMBEDDED_LIBRARY */ + +#ifndef MY_GLOBAL_INCLUDED +/* + Make sure a .c or .cc file contains an include to my_global.h first. + When this include is missing, all the #ifdef HAVE_XXX have no effect, + and the resulting binary won't build, or won't link, + or will crash at runtime + since various structures will have different binary definitions. +*/ +#error "You must include my_global.h in the code for the build to be correct." +#endif + +#include "psi_base.h" +#include "psi_memory.h" + +/* + MAINTAINER: + The following pattern: + typedef struct XYZ XYZ; + is not needed in C++, but required for C. +*/ + +C_MODE_START + +/** @sa MDL_key. */ +struct MDL_key; +typedef struct MDL_key MDL_key; + +/** @sa enum_mdl_type. */ +typedef int opaque_mdl_type; + +/** @sa enum_mdl_duration. */ +typedef int opaque_mdl_duration; + +/** @sa MDL_wait::enum_wait_status. */ +typedef int opaque_mdl_status; + +/** @sa enum_vio_type. */ +typedef int opaque_vio_type; + +struct TABLE_SHARE; + +struct sql_digest_storage; + +#ifdef __cplusplus + class THD; +#else + /* + Phony declaration when compiling C code. + This is ok, because the C code will never have a THD anyway. + */ + struct opaque_THD + { + int dummy; + }; + typedef struct opaque_THD THD; +#endif + +/** + @file mysql/psi/psi.h + Performance schema instrumentation interface. + + @defgroup Instrumentation_interface Instrumentation Interface + @ingroup Performance_schema + @{ +*/ + +/** + Interface for an instrumented mutex. + This is an opaque structure. +*/ +struct PSI_mutex; +typedef struct PSI_mutex PSI_mutex; + +/** + Interface for an instrumented rwlock. + This is an opaque structure. +*/ +struct PSI_rwlock; +typedef struct PSI_rwlock PSI_rwlock; + +/** + Interface for an instrumented condition. + This is an opaque structure. +*/ +struct PSI_cond; +typedef struct PSI_cond PSI_cond; + +/** + Interface for an instrumented table share. + This is an opaque structure. +*/ +struct PSI_table_share; +typedef struct PSI_table_share PSI_table_share; + +/** + Interface for an instrumented table handle. + This is an opaque structure. +*/ +struct PSI_table; +typedef struct PSI_table PSI_table; + +/** + Interface for an instrumented thread. + This is an opaque structure. +*/ +struct PSI_thread; +typedef struct PSI_thread PSI_thread; + +/** + Interface for an instrumented file handle. + This is an opaque structure. +*/ +struct PSI_file; +typedef struct PSI_file PSI_file; + +/** + Interface for an instrumented socket descriptor. + This is an opaque structure. +*/ +struct PSI_socket; +typedef struct PSI_socket PSI_socket; + +/** + Interface for an instrumented prepared statement. + This is an opaque structure. +*/ +struct PSI_prepared_stmt; +typedef struct PSI_prepared_stmt PSI_prepared_stmt; + +/** + Interface for an instrumented table operation. + This is an opaque structure. +*/ +struct PSI_table_locker; +typedef struct PSI_table_locker PSI_table_locker; + +/** + Interface for an instrumented statement. + This is an opaque structure. +*/ +struct PSI_statement_locker; +typedef struct PSI_statement_locker PSI_statement_locker; + +/** + Interface for an instrumented transaction. + This is an opaque structure. +*/ +struct PSI_transaction_locker; +typedef struct PSI_transaction_locker PSI_transaction_locker; + +/** + Interface for an instrumented idle operation. + This is an opaque structure. +*/ +struct PSI_idle_locker; +typedef struct PSI_idle_locker PSI_idle_locker; + +/** + Interface for an instrumented statement digest operation. + This is an opaque structure. +*/ +struct PSI_digest_locker; +typedef struct PSI_digest_locker PSI_digest_locker; + +/** + Interface for an instrumented stored procedure share. + This is an opaque structure. +*/ +struct PSI_sp_share; +typedef struct PSI_sp_share PSI_sp_share; + +/** + Interface for an instrumented stored program. + This is an opaque structure. +*/ +struct PSI_sp_locker; +typedef struct PSI_sp_locker PSI_sp_locker; + +/** + Interface for an instrumented metadata lock. + This is an opaque structure. +*/ +struct PSI_metadata_lock; +typedef struct PSI_metadata_lock PSI_metadata_lock; + +/** + Interface for an instrumented stage progress. + This is a public structure, for efficiency. +*/ +struct PSI_stage_progress +{ + ulonglong m_work_completed; + ulonglong m_work_estimated; +}; +typedef struct PSI_stage_progress PSI_stage_progress; + +/** IO operation performed on an instrumented table. */ +enum PSI_table_io_operation +{ + /** Row fetch. */ + PSI_TABLE_FETCH_ROW= 0, + /** Row write. */ + PSI_TABLE_WRITE_ROW= 1, + /** Row update. */ + PSI_TABLE_UPDATE_ROW= 2, + /** Row delete. */ + PSI_TABLE_DELETE_ROW= 3 +}; +typedef enum PSI_table_io_operation PSI_table_io_operation; + +/** + State data storage for @c start_table_io_wait_v1_t, + @c start_table_lock_wait_v1_t. + This structure provide temporary storage to a table locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_table_io_wait_v1_t + @sa start_table_lock_wait_v1_t +*/ +struct PSI_table_locker_state +{ + /** Internal state. */ + uint m_flags; + /** Current io operation. */ + enum PSI_table_io_operation m_io_operation; + /** Current table handle. */ + struct PSI_table *m_table; + /** Current table share. */ + struct PSI_table_share *m_table_share; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; + /** + Implementation specific. + For table io, the table io index. + For table lock, the lock type. + */ + uint m_index; +}; +typedef struct PSI_table_locker_state PSI_table_locker_state; + +/** Entry point for the performance schema interface. */ +struct PSI_bootstrap +{ + /** + ABI interface finder. + Calling this method with an interface version number returns either + an instance of the ABI for this version, or NULL. + @param version the interface version number to find + @return a versioned interface (PSI_v1, PSI_v2 or PSI) + @sa PSI_VERSION_1 + @sa PSI_v1 + @sa PSI_VERSION_2 + @sa PSI_v2 + @sa PSI_CURRENT_VERSION + @sa PSI + */ + void* (*get_interface)(int version); +}; +typedef struct PSI_bootstrap PSI_bootstrap; + +#ifdef HAVE_PSI_INTERFACE + +#ifdef DISABLE_ALL_PSI + +#ifndef DISABLE_PSI_THREAD +#define DISABLE_PSI_THREAD +#endif + +#ifndef DISABLE_PSI_MUTEX +#define DISABLE_PSI_MUTEX +#endif + +#ifndef DISABLE_PSI_RWLOCK +#define DISABLE_PSI_RWLOCK +#endif + +#ifndef DISABLE_PSI_COND +#define DISABLE_PSI_COND +#endif + +#ifndef DISABLE_PSI_FILE +#define DISABLE_PSI_FILE +#endif + +#ifndef DISABLE_PSI_TABLE +#define DISABLE_PSI_TABLE +#endif + +#ifndef DISABLE_PSI_SOCKET +#define DISABLE_PSI_SOCKET +#endif + +#ifndef DISABLE_PSI_STAGE +#define DISABLE_PSI_STAGE +#endif + +#ifndef DISABLE_PSI_STATEMENT +#define DISABLE_PSI_STATEMENT +#endif + +#ifndef DISABLE_PSI_SP +#define DISABLE_PSI_SP +#endif + +#ifndef DISABLE_PSI_IDLE +#define DISABLE_PSI_IDLE +#endif + +#ifndef DISABLE_PSI_STATEMENT_DIGEST +#define DISABLE_PSI_STATEMENT_DIGEST +#endif + +#ifndef DISABLE_PSI_METADATA +#define DISABLE_PSI_METADATA +#endif + +#ifndef DISABLE_PSI_MEMORY +#define DISABLE_PSI_MEMORY +#endif + +#ifndef DISABLE_PSI_TRANSACTION +#define DISABLE_PSI_TRANSACTION +#endif + +#ifndef DISABLE_PSI_SP +#define DISABLE_PSI_SP +#endif + +#ifndef DISABLE_PSI_PS +#define DISABLE_PSI_PS +#endif + +#endif + +/** + @def DISABLE_PSI_MUTEX + Compiling option to disable the mutex instrumentation. + This option is mostly intended to be used during development, + when doing special builds with only a subset of the performance schema instrumentation, + for code analysis / profiling / performance tuning of a specific instrumentation alone. + @sa DISABLE_PSI_RWLOCK + @sa DISABLE_PSI_COND + @sa DISABLE_PSI_FILE + @sa DISABLE_PSI_THREAD + @sa DISABLE_PSI_TABLE + @sa DISABLE_PSI_STAGE + @sa DISABLE_PSI_STATEMENT + @sa DISABLE_PSI_SP + @sa DISABLE_PSI_STATEMENT_DIGEST + @sa DISABLE_PSI_SOCKET + @sa DISABLE_PSI_MEMORY + @sa DISABLE_PSI_IDLE + @sa DISABLE_PSI_METADATA + @sa DISABLE PSI_TRANSACTION +*/ + +#ifndef DISABLE_PSI_MUTEX +#define HAVE_PSI_MUTEX_INTERFACE +#endif + +/** + @def DISABLE_PSI_RWLOCK + Compiling option to disable the rwlock instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_RWLOCK +#define HAVE_PSI_RWLOCK_INTERFACE +#endif + +/** + @def DISABLE_PSI_COND + Compiling option to disable the cond instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_COND +#define HAVE_PSI_COND_INTERFACE +#endif + +/** + @def DISABLE_PSI_FILE + Compiling option to disable the file instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_FILE +#define HAVE_PSI_FILE_INTERFACE +#endif + +/** + @def DISABLE_PSI_THREAD + Compiling option to disable the thread instrumentation. + @sa DISABLE_PSI_MUTEX +*/ +#ifndef DISABLE_PSI_THREAD +#define HAVE_PSI_THREAD_INTERFACE +#endif + +/** + @def DISABLE_PSI_TABLE + Compiling option to disable the table instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_TABLE +#define HAVE_PSI_TABLE_INTERFACE +#endif + +/** + @def DISABLE_PSI_STAGE + Compiling option to disable the stage instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_STAGE +#define HAVE_PSI_STAGE_INTERFACE +#endif + +/** + @def DISABLE_PSI_STATEMENT + Compiling option to disable the statement instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_STATEMENT +#define HAVE_PSI_STATEMENT_INTERFACE +#endif + +/** + @def DISABLE_PSI_SP + Compiling option to disable the stored program instrumentation. + @sa DISABLE_PSI_MUTEX +*/ +#ifndef DISABLE_PSI_SP +#define HAVE_PSI_SP_INTERFACE +#endif + +/** + @def DISABLE_PSI_PS + Compiling option to disable the prepared statement instrumentation. + @sa DISABLE_PSI_MUTEX +*/ +#ifndef DISABLE_PSI_STATEMENT +#ifndef DISABLE_PSI_PS +#define HAVE_PSI_PS_INTERFACE +#endif +#endif + +/** + @def DISABLE_PSI_STATEMENT_DIGEST + Compiling option to disable the statement digest instrumentation. +*/ + +#ifndef DISABLE_PSI_STATEMENT +#ifndef DISABLE_PSI_STATEMENT_DIGEST +#define HAVE_PSI_STATEMENT_DIGEST_INTERFACE +#endif +#endif + +/** + @def DISABLE_PSI_TRANSACTION + Compiling option to disable the transaction instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_TRANSACTION +#define HAVE_PSI_TRANSACTION_INTERFACE +#endif + +/** + @def DISABLE_PSI_SOCKET + Compiling option to disable the statement instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_SOCKET +#define HAVE_PSI_SOCKET_INTERFACE +#endif + +/** + @def DISABLE_PSI_MEMORY + Compiling option to disable the memory instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_MEMORY +#define HAVE_PSI_MEMORY_INTERFACE +#endif + +/** + @def DISABLE_PSI_IDLE + Compiling option to disable the idle instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_IDLE +#define HAVE_PSI_IDLE_INTERFACE +#endif + +/** + @def DISABLE_PSI_METADATA + Compiling option to disable the metadata instrumentation. + @sa DISABLE_PSI_MUTEX +*/ + +#ifndef DISABLE_PSI_METADATA +#define HAVE_PSI_METADATA_INTERFACE +#endif + +/** + @def PSI_VERSION_1 + Performance Schema Interface number for version 1. + This version is supported. +*/ +#define PSI_VERSION_1 1 + +/** + @def PSI_VERSION_2 + Performance Schema Interface number for version 2. + This version is not implemented, it's a placeholder. +*/ +#define PSI_VERSION_2 2 + +/** + @def PSI_CURRENT_VERSION + Performance Schema Interface number for the most recent version. + The most current version is @c PSI_VERSION_1 +*/ +#define PSI_CURRENT_VERSION 1 + +#ifndef USE_PSI_2 +#ifndef USE_PSI_1 +#define USE_PSI_1 +#endif +#endif + +/** + Interface for an instrumented mutex operation. + This is an opaque structure. +*/ +struct PSI_mutex_locker; +typedef struct PSI_mutex_locker PSI_mutex_locker; + +/** + Interface for an instrumented rwlock operation. + This is an opaque structure. +*/ +struct PSI_rwlock_locker; +typedef struct PSI_rwlock_locker PSI_rwlock_locker; + +/** + Interface for an instrumented condition operation. + This is an opaque structure. +*/ +struct PSI_cond_locker; +typedef struct PSI_cond_locker PSI_cond_locker; + +/** + Interface for an instrumented file operation. + This is an opaque structure. +*/ +struct PSI_file_locker; +typedef struct PSI_file_locker PSI_file_locker; + +/** + Interface for an instrumented socket operation. + This is an opaque structure. +*/ +struct PSI_socket_locker; +typedef struct PSI_socket_locker PSI_socket_locker; + +/** + Interface for an instrumented MDL operation. + This is an opaque structure. +*/ +struct PSI_metadata_locker; +typedef struct PSI_metadata_locker PSI_metadata_locker; + +/** Operation performed on an instrumented mutex. */ +enum PSI_mutex_operation +{ + /** Lock. */ + PSI_MUTEX_LOCK= 0, + /** Lock attempt. */ + PSI_MUTEX_TRYLOCK= 1 +}; +typedef enum PSI_mutex_operation PSI_mutex_operation; + +/** + Operation performed on an instrumented rwlock. + For basic READ / WRITE lock, + operations are "READ" or "WRITE". + For SX-locks, operations are "SHARED", "SHARED-EXCLUSIVE" or "EXCLUSIVE". +*/ +enum PSI_rwlock_operation +{ + /** Read lock. */ + PSI_RWLOCK_READLOCK= 0, + /** Write lock. */ + PSI_RWLOCK_WRITELOCK= 1, + /** Read lock attempt. */ + PSI_RWLOCK_TRYREADLOCK= 2, + /** Write lock attempt. */ + PSI_RWLOCK_TRYWRITELOCK= 3, + + /** Shared lock. */ + PSI_RWLOCK_SHAREDLOCK= 4, + /** Shared Exclusive lock. */ + PSI_RWLOCK_SHAREDEXCLUSIVELOCK= 5, + /** Exclusive lock. */ + PSI_RWLOCK_EXCLUSIVELOCK= 6, + /** Shared lock attempt. */ + PSI_RWLOCK_TRYSHAREDLOCK= 7, + /** Shared Exclusive lock attempt. */ + PSI_RWLOCK_TRYSHAREDEXCLUSIVELOCK= 8, + /** Exclusive lock attempt. */ + PSI_RWLOCK_TRYEXCLUSIVELOCK= 9 + +}; +typedef enum PSI_rwlock_operation PSI_rwlock_operation; + +/** Operation performed on an instrumented condition. */ +enum PSI_cond_operation +{ + /** Wait. */ + PSI_COND_WAIT= 0, + /** Wait, with timeout. */ + PSI_COND_TIMEDWAIT= 1 +}; +typedef enum PSI_cond_operation PSI_cond_operation; + +/** Operation performed on an instrumented file. */ +enum PSI_file_operation +{ + /** File creation, as in @c create(). */ + PSI_FILE_CREATE= 0, + /** Temporary file creation, as in @c create_temp_file(). */ + PSI_FILE_CREATE_TMP= 1, + /** File open, as in @c open(). */ + PSI_FILE_OPEN= 2, + /** File open, as in @c fopen(). */ + PSI_FILE_STREAM_OPEN= 3, + /** File close, as in @c close(). */ + PSI_FILE_CLOSE= 4, + /** File close, as in @c fclose(). */ + PSI_FILE_STREAM_CLOSE= 5, + /** + Generic file read, such as @c fgets(), @c fgetc(), @c fread(), @c read(), + @c pread(). + */ + PSI_FILE_READ= 6, + /** + Generic file write, such as @c fputs(), @c fputc(), @c fprintf(), + @c vfprintf(), @c fwrite(), @c write(), @c pwrite(). + */ + PSI_FILE_WRITE= 7, + /** Generic file seek, such as @c fseek() or @c seek(). */ + PSI_FILE_SEEK= 8, + /** Generic file tell, such as @c ftell() or @c tell(). */ + PSI_FILE_TELL= 9, + /** File flush, as in @c fflush(). */ + PSI_FILE_FLUSH= 10, + /** File stat, as in @c stat(). */ + PSI_FILE_STAT= 11, + /** File stat, as in @c fstat(). */ + PSI_FILE_FSTAT= 12, + /** File chsize, as in @c my_chsize(). */ + PSI_FILE_CHSIZE= 13, + /** File delete, such as @c my_delete() or @c my_delete_with_symlink(). */ + PSI_FILE_DELETE= 14, + /** File rename, such as @c my_rename() or @c my_rename_with_symlink(). */ + PSI_FILE_RENAME= 15, + /** File sync, as in @c fsync() or @c my_sync(). */ + PSI_FILE_SYNC= 16 +}; +typedef enum PSI_file_operation PSI_file_operation; + +/** Lock operation performed on an instrumented table. */ +enum PSI_table_lock_operation +{ + /** Table lock, in the server layer. */ + PSI_TABLE_LOCK= 0, + /** Table lock, in the storage engine layer. */ + PSI_TABLE_EXTERNAL_LOCK= 1 +}; +typedef enum PSI_table_lock_operation PSI_table_lock_operation; + +/** State of an instrumented socket. */ +enum PSI_socket_state +{ + /** Idle, waiting for the next command. */ + PSI_SOCKET_STATE_IDLE= 1, + /** Active, executing a command. */ + PSI_SOCKET_STATE_ACTIVE= 2 +}; +typedef enum PSI_socket_state PSI_socket_state; + +/** Operation performed on an instrumented socket. */ +enum PSI_socket_operation +{ + /** Socket creation, as in @c socket() or @c socketpair(). */ + PSI_SOCKET_CREATE= 0, + /** Socket connection, as in @c connect(), @c listen() and @c accept(). */ + PSI_SOCKET_CONNECT= 1, + /** Socket bind, as in @c bind(), @c getsockname() and @c getpeername(). */ + PSI_SOCKET_BIND= 2, + /** Socket close, as in @c shutdown(). */ + PSI_SOCKET_CLOSE= 3, + /** Socket send, @c send(). */ + PSI_SOCKET_SEND= 4, + /** Socket receive, @c recv(). */ + PSI_SOCKET_RECV= 5, + /** Socket send, @c sendto(). */ + PSI_SOCKET_SENDTO= 6, + /** Socket receive, @c recvfrom). */ + PSI_SOCKET_RECVFROM= 7, + /** Socket send, @c sendmsg(). */ + PSI_SOCKET_SENDMSG= 8, + /** Socket receive, @c recvmsg(). */ + PSI_SOCKET_RECVMSG= 9, + /** Socket seek, such as @c fseek() or @c seek(). */ + PSI_SOCKET_SEEK= 10, + /** Socket options, as in @c getsockopt() and @c setsockopt(). */ + PSI_SOCKET_OPT= 11, + /** Socket status, as in @c sockatmark() and @c isfdtype(). */ + PSI_SOCKET_STAT= 12, + /** Socket shutdown, as in @c shutdown(). */ + PSI_SOCKET_SHUTDOWN= 13, + /** Socket select, as in @c select() and @c poll(). */ + PSI_SOCKET_SELECT= 14 +}; +typedef enum PSI_socket_operation PSI_socket_operation; + +/** + Instrumented mutex key. + To instrument a mutex, a mutex key must be obtained using @c register_mutex. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_mutex_key; + +/** + Instrumented rwlock key. + To instrument a rwlock, a rwlock key must be obtained + using @c register_rwlock. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_rwlock_key; + +/** + Instrumented cond key. + To instrument a condition, a condition key must be obtained + using @c register_cond. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_cond_key; + +/** + Instrumented thread key. + To instrument a thread, a thread key must be obtained + using @c register_thread. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_thread_key; + +/** + Instrumented file key. + To instrument a file, a file key must be obtained using @c register_file. + Using a zero key always disable the instrumentation. +*/ +#ifndef PSI_FILE_KEY_DEFINED +typedef unsigned int PSI_file_key; +#define PSI_FILE_KEY_DEFINED +#endif + +/** + Instrumented stage key. + To instrument a stage, a stage key must be obtained using @c register_stage. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_stage_key; + +/** + Instrumented statement key. + To instrument a statement, a statement key must be obtained using @c register_statement. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_statement_key; + +/** + Instrumented socket key. + To instrument a socket, a socket key must be obtained using @c register_socket. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_socket_key; + +#ifdef HAVE_PSI_1 + +/** + @defgroup Group_PSI_v1 Application Binary Interface, version 1 + @ingroup Instrumentation_interface + @{ +*/ + +/** + Mutex information. + @since PSI_VERSION_1 + This structure is used to register an instrumented mutex. +*/ +struct PSI_mutex_info_v1 +{ + /** + Pointer to the key assigned to the registered mutex. + */ + PSI_mutex_key *m_key; + /** + The name of the mutex to register. + */ + const char *m_name; + /** + The flags of the mutex to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_mutex_info_v1 PSI_mutex_info_v1; + +/** + Rwlock information. + @since PSI_VERSION_1 + This structure is used to register an instrumented rwlock. +*/ +struct PSI_rwlock_info_v1 +{ + /** + Pointer to the key assigned to the registered rwlock. + */ + PSI_rwlock_key *m_key; + /** + The name of the rwlock to register. + */ + const char *m_name; + /** + The flags of the rwlock to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_rwlock_info_v1 PSI_rwlock_info_v1; + +/** + Condition information. + @since PSI_VERSION_1 + This structure is used to register an instrumented cond. +*/ +struct PSI_cond_info_v1 +{ + /** + Pointer to the key assigned to the registered cond. + */ + PSI_cond_key *m_key; + /** + The name of the cond to register. + */ + const char *m_name; + /** + The flags of the cond to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_cond_info_v1 PSI_cond_info_v1; + +/** + Thread instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented thread. +*/ +struct PSI_thread_info_v1 +{ + /** + Pointer to the key assigned to the registered thread. + */ + PSI_thread_key *m_key; + /** + The name of the thread instrument to register. + */ + const char *m_name; + /** + The flags of the thread to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_thread_info_v1 PSI_thread_info_v1; + +/** + File instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented file. +*/ +struct PSI_file_info_v1 +{ + /** + Pointer to the key assigned to the registered file. + */ + PSI_file_key *m_key; + /** + The name of the file instrument to register. + */ + const char *m_name; + /** + The flags of the file instrument to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_file_info_v1 PSI_file_info_v1; + +/** + Stage instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented stage. +*/ +struct PSI_stage_info_v1 +{ + /** The registered stage key. */ + PSI_stage_key m_key; + /** The name of the stage instrument to register. */ + const char *m_name; + /** The flags of the stage instrument to register. */ + int m_flags; +}; +typedef struct PSI_stage_info_v1 PSI_stage_info_v1; + +/** + Statement instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented statement. +*/ +struct PSI_statement_info_v1 +{ + /** The registered statement key. */ + PSI_statement_key m_key; + /** The name of the statement instrument to register. */ + const char *m_name; + /** The flags of the statement instrument to register. */ + int m_flags; +}; +typedef struct PSI_statement_info_v1 PSI_statement_info_v1; + +/** + Socket instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented socket. +*/ +struct PSI_socket_info_v1 +{ + /** + Pointer to the key assigned to the registered socket. + */ + PSI_socket_key *m_key; + /** + The name of the socket instrument to register. + */ + const char *m_name; + /** + The flags of the socket instrument to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_socket_info_v1 PSI_socket_info_v1; + +/** + State data storage for @c start_idle_wait_v1_t. + This structure provide temporary storage to an idle locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_idle_wait_v1_t. +*/ +struct PSI_idle_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_idle_locker_state_v1 PSI_idle_locker_state_v1; + +/** + State data storage for @c start_mutex_wait_v1_t. + This structure provide temporary storage to a mutex locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_mutex_wait_v1_t +*/ +struct PSI_mutex_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current operation. */ + enum PSI_mutex_operation m_operation; + /** Current mutex. */ + struct PSI_mutex *m_mutex; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_mutex_locker_state_v1 PSI_mutex_locker_state_v1; + +/** + State data storage for @c start_rwlock_rdwait_v1_t, @c start_rwlock_wrwait_v1_t. + This structure provide temporary storage to a rwlock locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_rwlock_rdwait_v1_t + @sa start_rwlock_wrwait_v1_t +*/ +struct PSI_rwlock_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current operation. */ + enum PSI_rwlock_operation m_operation; + /** Current rwlock. */ + struct PSI_rwlock *m_rwlock; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state_v1; + +/** + State data storage for @c start_cond_wait_v1_t. + This structure provide temporary storage to a condition locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_cond_wait_v1_t +*/ +struct PSI_cond_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current operation. */ + enum PSI_cond_operation m_operation; + /** Current condition. */ + struct PSI_cond *m_cond; + /** Current mutex. */ + struct PSI_mutex *m_mutex; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state_v1; + +/** + State data storage for @c get_thread_file_name_locker_v1_t. + This structure provide temporary storage to a file locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_file_name_locker_v1_t + @sa get_thread_file_stream_locker_v1_t + @sa get_thread_file_descriptor_locker_v1_t +*/ +struct PSI_file_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current operation. */ + enum PSI_file_operation m_operation; + /** Current file. */ + struct PSI_file *m_file; + /** Current file name. */ + const char *m_name; + /** Current file class. */ + void *m_class; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Operation number of bytes. */ + size_t m_number_of_bytes; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_file_locker_state_v1 PSI_file_locker_state_v1; + +/** + State data storage for @c start_metadata_wait_v1_t. + This structure provide temporary storage to a metadata locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_metadata_wait_v1_t +*/ +struct PSI_metadata_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current metadata lock. */ + struct PSI_metadata_lock *m_metadata_lock; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_metadata_locker_state_v1 PSI_metadata_locker_state_v1; + +/* Duplicate of NAME_LEN, to avoid dependency on mysql_com.h */ +#define PSI_SCHEMA_NAME_LEN (64 * 3) + +/** + State data storage for @c get_thread_statement_locker_v1_t, + @c get_thread_statement_locker_v1_t. + This structure provide temporary storage to a statement locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_statement_locker_v1_t +*/ +struct PSI_statement_locker_state_v1 +{ + /** Discarded flag. */ + my_bool m_discarded; + /** In prepare flag. */ + my_bool m_in_prepare; + /** Metric, no index used flag. */ + uchar m_no_index_used; + /** Metric, no good index used flag. */ + uchar m_no_good_index_used; + /** Internal state. */ + uint m_flags; + /** Instrumentation class. */ + void *m_class; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_statement; + /** Locked time. */ + ulonglong m_lock_time; + /** Rows sent. */ + ulonglong m_rows_sent; + /** Rows examined. */ + ulonglong m_rows_examined; + /** Metric, temporary tables created on disk. */ + ulong m_created_tmp_disk_tables; + /** Metric, temporary tables created. */ + ulong m_created_tmp_tables; + /** Metric, number of select full join. */ + ulong m_select_full_join; + /** Metric, number of select full range join. */ + ulong m_select_full_range_join; + /** Metric, number of select range. */ + ulong m_select_range; + /** Metric, number of select range check. */ + ulong m_select_range_check; + /** Metric, number of select scan. */ + ulong m_select_scan; + /** Metric, number of sort merge passes. */ + ulong m_sort_merge_passes; + /** Metric, number of sort merge. */ + ulong m_sort_range; + /** Metric, number of sort rows. */ + ulong m_sort_rows; + /** Metric, number of sort scans. */ + ulong m_sort_scan; + /** Statement digest. */ + const struct sql_digest_storage *m_digest; + /** Current schema name. */ + char m_schema_name[PSI_SCHEMA_NAME_LEN]; + /** Length in bytes of @c m_schema_name. */ + uint m_schema_name_length; + /** Statement character set number. */ + uint m_cs_number; + PSI_sp_share *m_parent_sp_share; + PSI_prepared_stmt *m_parent_prepared_stmt; +}; +typedef struct PSI_statement_locker_state_v1 PSI_statement_locker_state_v1; + +/** + State data storage for @c get_thread_transaction_locker_v1_t, + @c get_thread_transaction_locker_v1_t. + This structure provide temporary storage to a transaction locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_transaction_locker_v1_t +*/ +struct PSI_transaction_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Instrumentation class. */ + void *m_class; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Internal data. */ + void *m_transaction; + /** True if read-only transaction, false if read-write. */ + my_bool m_read_only; + /** True if transaction is autocommit. */ + my_bool m_autocommit; + /** Number of statements. */ + ulong m_statement_count; + /** Total number of savepoints. */ + ulong m_savepoint_count; + /** Number of rollback_to_savepoint. */ + ulong m_rollback_to_savepoint_count; + /** Number of release_savepoint. */ + ulong m_release_savepoint_count; +}; + +typedef struct PSI_transaction_locker_state_v1 PSI_transaction_locker_state_v1; + +/** + State data storage for @c start_socket_wait_v1_t. + This structure provide temporary storage to a socket locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa start_socket_wait_v1_t +*/ +struct PSI_socket_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current socket. */ + struct PSI_socket *m_socket; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Operation number of bytes. */ + size_t m_number_of_bytes; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Current operation. */ + enum PSI_socket_operation m_operation; + /** Source file. */ + const char* m_src_file; + /** Source line number. */ + int m_src_line; + /** Internal data. */ + void *m_wait; +}; +typedef struct PSI_socket_locker_state_v1 PSI_socket_locker_state_v1; + +struct PSI_sp_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Stored Procedure share. */ + PSI_sp_share* m_sp_share; +}; +typedef struct PSI_sp_locker_state_v1 PSI_sp_locker_state_v1; + +/* Using typedef to make reuse between PSI_v1 and PSI_v2 easier later. */ + +/** + Mutex registration API. + @param category a category name (typically a plugin name) + @param info an array of mutex info to register + @param count the size of the info array +*/ +typedef void (*register_mutex_v1_t) + (const char *category, struct PSI_mutex_info_v1 *info, int count); + +/** + Rwlock registration API. + @param category a category name (typically a plugin name) + @param info an array of rwlock info to register + @param count the size of the info array +*/ +typedef void (*register_rwlock_v1_t) + (const char *category, struct PSI_rwlock_info_v1 *info, int count); + +/** + Cond registration API. + @param category a category name (typically a plugin name) + @param info an array of cond info to register + @param count the size of the info array +*/ +typedef void (*register_cond_v1_t) + (const char *category, struct PSI_cond_info_v1 *info, int count); + +/** + Thread registration API. + @param category a category name (typically a plugin name) + @param info an array of thread info to register + @param count the size of the info array +*/ +typedef void (*register_thread_v1_t) + (const char *category, struct PSI_thread_info_v1 *info, int count); + +/** + File registration API. + @param category a category name (typically a plugin name) + @param info an array of file info to register + @param count the size of the info array +*/ +typedef void (*register_file_v1_t) + (const char *category, struct PSI_file_info_v1 *info, int count); + +/** + Stage registration API. + @param category a category name + @param info an array of stage info to register + @param count the size of the info array +*/ +typedef void (*register_stage_v1_t) + (const char *category, struct PSI_stage_info_v1 **info, int count); + +/** + Statement registration API. + @param category a category name + @param info an array of stage info to register + @param count the size of the info array +*/ +typedef void (*register_statement_v1_t) + (const char *category, struct PSI_statement_info_v1 *info, int count); + +/** + Socket registration API. + @param category a category name (typically a plugin name) + @param info an array of socket info to register + @param count the size of the info array +*/ +typedef void (*register_socket_v1_t) + (const char *category, struct PSI_socket_info_v1 *info, int count); + +/** + Mutex instrumentation initialisation API. + @param key the registered mutex key + @param identity the address of the mutex itself + @return an instrumented mutex +*/ +typedef struct PSI_mutex* (*init_mutex_v1_t) + (PSI_mutex_key key, const void *identity); + +/** + Mutex instrumentation destruction API. + @param mutex the mutex to destroy +*/ +typedef void (*destroy_mutex_v1_t)(struct PSI_mutex *mutex); + +/** + Rwlock instrumentation initialisation API. + @param key the registered rwlock key + @param identity the address of the rwlock itself + @return an instrumented rwlock +*/ +typedef struct PSI_rwlock* (*init_rwlock_v1_t) + (PSI_rwlock_key key, const void *identity); + +/** + Rwlock instrumentation destruction API. + @param rwlock the rwlock to destroy +*/ +typedef void (*destroy_rwlock_v1_t)(struct PSI_rwlock *rwlock); + +/** + Cond instrumentation initialisation API. + @param key the registered key + @param identity the address of the rwlock itself + @return an instrumented cond +*/ +typedef struct PSI_cond* (*init_cond_v1_t) + (PSI_cond_key key, const void *identity); + +/** + Cond instrumentation destruction API. + @param cond the rcond to destroy +*/ +typedef void (*destroy_cond_v1_t)(struct PSI_cond *cond); + +/** + Socket instrumentation initialisation API. + @param key the registered mutex key + @param socket descriptor + @param addr the socket ip address + @param addr_len length of socket ip address + @return an instrumented socket +*/ +typedef struct PSI_socket* (*init_socket_v1_t) + (PSI_socket_key key, const my_socket *fd, + const struct sockaddr *addr, socklen_t addr_len); + +/** + socket instrumentation destruction API. + @param socket the socket to destroy +*/ +typedef void (*destroy_socket_v1_t)(struct PSI_socket *socket); + +/** + Acquire a table share instrumentation. + @param temporary True for temporary tables + @param share The SQL layer table share + @return a table share instrumentation, or NULL +*/ +typedef struct PSI_table_share* (*get_table_share_v1_t) + (my_bool temporary, struct TABLE_SHARE *share); + +/** + Release a table share. + @param info the table share to release +*/ +typedef void (*release_table_share_v1_t)(struct PSI_table_share *share); + +/** + Drop a table share. + @param temporary True for temporary tables + @param schema_name the table schema name + @param schema_name_length the table schema name length + @param table_name the table name + @param table_name_length the table name length +*/ +typedef void (*drop_table_share_v1_t) + (my_bool temporary, const char *schema_name, int schema_name_length, + const char *table_name, int table_name_length); + +/** + Open an instrumentation table handle. + @param share the table to open + @param identity table handle identity + @return a table handle, or NULL +*/ +typedef struct PSI_table* (*open_table_v1_t) + (struct PSI_table_share *share, const void *identity); + +/** + Unbind a table handle from the current thread. + This operation happens when an opened table is added to the open table cache. + @param table the table to unbind +*/ +typedef void (*unbind_table_v1_t) + (struct PSI_table *table); + +/** + Rebind a table handle to the current thread. + This operation happens when a table from the open table cache + is reused for a thread. + @param table the table to unbind +*/ +typedef PSI_table* (*rebind_table_v1_t) + (PSI_table_share *share, const void *identity, PSI_table *table); + +/** + Close an instrumentation table handle. + Note that the table handle is invalid after this call. + @param table the table handle to close +*/ +typedef void (*close_table_v1_t)(struct TABLE_SHARE *server_share, + struct PSI_table *table); + +/** + Create a file instrumentation for a created file. + This method does not create the file itself, but is used to notify the + instrumentation interface that a file was just created. + @param key the file instrumentation key for this file + @param name the file name + @param file the file handle +*/ +typedef void (*create_file_v1_t)(PSI_file_key key, const char *name, + File file); + +/** + Spawn a thread. + This method creates a new thread, with instrumentation. + @param key the instrumentation key for this thread + @param thread the resulting thread + @param attr the thread attributes + @param start_routine the thread start routine + @param arg the thread start routine argument +*/ +typedef int (*spawn_thread_v1_t)(PSI_thread_key key, + my_thread_handle *thread, + const my_thread_attr_t *attr, + void *(*start_routine)(void*), void *arg); + +/** + Create instrumentation for a thread. + @param key the registered key + @param identity an address typical of the thread + @return an instrumented thread +*/ +typedef struct PSI_thread* (*new_thread_v1_t) + (PSI_thread_key key, const void *identity, ulonglong thread_id); + +/** + Assign a THD to an instrumented thread. + @param thread the instrumented thread + @param THD the sql layer THD to assign +*/ +typedef void (*set_thread_THD_v1_t)(struct PSI_thread *thread, + THD *thd); + +/** + Assign an id to an instrumented thread. + @param thread the instrumented thread + @param id the id to assign +*/ +typedef void (*set_thread_id_v1_t)(struct PSI_thread *thread, + ulonglong id); + +/** + Assign the current operating system thread id to an instrumented thread. + The operating system task id is obtained from @c gettid() + @param thread the instrumented thread +*/ +typedef void (*set_thread_os_id_v1_t)(struct PSI_thread *thread); + +/** + Get the instrumentation for the running thread. + For this function to return a result, + the thread instrumentation must have been attached to the + running thread using @c set_thread() + @return the instrumentation for the running thread +*/ +typedef struct PSI_thread* (*get_thread_v1_t)(void); + +/** + Assign a user name to the instrumented thread. + @param user the user name + @param user_len the user name length +*/ +typedef void (*set_thread_user_v1_t)(const char *user, int user_len); + +/** + Assign a user name and host name to the instrumented thread. + @param user the user name + @param user_len the user name length + @param host the host name + @param host_len the host name length +*/ +typedef void (*set_thread_account_v1_t)(const char *user, int user_len, + const char *host, int host_len); + +/** + Assign a current database to the instrumented thread. + @param db the database name + @param db_len the database name length +*/ +typedef void (*set_thread_db_v1_t)(const char* db, int db_len); + +/** + Assign a current command to the instrumented thread. + @param command the current command +*/ +typedef void (*set_thread_command_v1_t)(int command); + +/** + Assign a connection type to the instrumented thread. + @param conn_type the connection type +*/ +typedef void (*set_connection_type_v1_t)(opaque_vio_type conn_type); + + +/** + Assign a start time to the instrumented thread. + @param start_time the thread start time +*/ +typedef void (*set_thread_start_time_v1_t)(time_t start_time); + +/** + Assign a state to the instrumented thread. + @param state the thread state +*/ +typedef void (*set_thread_state_v1_t)(const char* state); + +/** + Assign a process info to the instrumented thread. + @param info the process into string + @param info_len the process into string length +*/ +typedef void (*set_thread_info_v1_t)(const char* info, uint info_len); + +/** + Attach a thread instrumentation to the running thread. + In case of thread pools, this method should be called when + a worker thread picks a work item and runs it. + Also, this method should be called if the instrumented code does not + keep the pointer returned by @c new_thread() and relies on @c get_thread() + instead. + @param thread the thread instrumentation +*/ +typedef void (*set_thread_v1_t)(struct PSI_thread *thread); + +/** Delete the current thread instrumentation. */ +typedef void (*delete_current_thread_v1_t)(void); + +/** Delete a thread instrumentation. */ +typedef void (*delete_thread_v1_t)(struct PSI_thread *thread); + +/** + Get a file instrumentation locker, for opening or creating a file. + @param state data storage for the locker + @param key the file instrumentation key + @param op the operation to perform + @param name the file name + @param identity a pointer representative of this file. + @return a file locker, or NULL +*/ +typedef struct PSI_file_locker* (*get_thread_file_name_locker_v1_t) + (struct PSI_file_locker_state_v1 *state, + PSI_file_key key, enum PSI_file_operation op, const char *name, + const void *identity); + +/** + Get a file stream instrumentation locker. + @param state data storage for the locker + @param file the file stream to access + @param op the operation to perform + @return a file locker, or NULL +*/ +typedef struct PSI_file_locker* (*get_thread_file_stream_locker_v1_t) + (struct PSI_file_locker_state_v1 *state, + struct PSI_file *file, enum PSI_file_operation op); + +/** + Get a file instrumentation locker. + @param state data storage for the locker + @param file the file descriptor to access + @param op the operation to perform + @return a file locker, or NULL +*/ +typedef struct PSI_file_locker* (*get_thread_file_descriptor_locker_v1_t) + (struct PSI_file_locker_state_v1 *state, + File file, enum PSI_file_operation op); + +/** + Record a mutex instrumentation unlock event. + @param mutex the mutex instrumentation +*/ +typedef void (*unlock_mutex_v1_t) + (struct PSI_mutex *mutex); + +/** + Record a rwlock instrumentation unlock event. + @param rwlock the rwlock instrumentation +*/ +typedef void (*unlock_rwlock_v1_t) + (struct PSI_rwlock *rwlock); + +/** + Record a condition instrumentation signal event. + @param cond the cond instrumentation +*/ +typedef void (*signal_cond_v1_t) + (struct PSI_cond *cond); + +/** + Record a condition instrumentation broadcast event. + @param cond the cond instrumentation +*/ +typedef void (*broadcast_cond_v1_t) + (struct PSI_cond *cond); + +/** + Record an idle instrumentation wait start event. + @param state data storage for the locker + @param file the source file name + @param line the source line number + @return an idle locker, or NULL +*/ +typedef struct PSI_idle_locker* (*start_idle_wait_v1_t) + (struct PSI_idle_locker_state_v1 *state, const char *src_file, uint src_line); + +/** + Record an idle instrumentation wait end event. + @param locker a thread locker for the running thread +*/ +typedef void (*end_idle_wait_v1_t) + (struct PSI_idle_locker *locker); + +/** + Record a mutex instrumentation wait start event. + @param state data storage for the locker + @param mutex the instrumented mutex to lock + @param op the operation to perform + @param file the source file name + @param line the source line number + @return a mutex locker, or NULL +*/ +typedef struct PSI_mutex_locker* (*start_mutex_wait_v1_t) + (struct PSI_mutex_locker_state_v1 *state, + struct PSI_mutex *mutex, + enum PSI_mutex_operation op, + const char *src_file, uint src_line); + +/** + Record a mutex instrumentation wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_mutex_wait_v1_t) + (struct PSI_mutex_locker *locker, int rc); + +/** + Record a rwlock instrumentation read wait start event. + @param locker a thread locker for the running thread + @param must must block: 1 for lock, 0 for trylock +*/ +typedef struct PSI_rwlock_locker* (*start_rwlock_rdwait_v1_t) + (struct PSI_rwlock_locker_state_v1 *state, + struct PSI_rwlock *rwlock, + enum PSI_rwlock_operation op, + const char *src_file, uint src_line); + +/** + Record a rwlock instrumentation read wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_rwlock_rdwait_v1_t) + (struct PSI_rwlock_locker *locker, int rc); + +/** + Record a rwlock instrumentation write wait start event. + @param locker a thread locker for the running thread + @param must must block: 1 for lock, 0 for trylock +*/ +typedef struct PSI_rwlock_locker* (*start_rwlock_wrwait_v1_t) + (struct PSI_rwlock_locker_state_v1 *state, + struct PSI_rwlock *rwlock, + enum PSI_rwlock_operation op, + const char *src_file, uint src_line); + +/** + Record a rwlock instrumentation write wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_rwlock_wrwait_v1_t) + (struct PSI_rwlock_locker *locker, int rc); + +/** + Record a condition instrumentation wait start event. + @param locker a thread locker for the running thread + @param must must block: 1 for wait, 0 for timedwait +*/ +typedef struct PSI_cond_locker* (*start_cond_wait_v1_t) + (struct PSI_cond_locker_state_v1 *state, + struct PSI_cond *cond, + struct PSI_mutex *mutex, + enum PSI_cond_operation op, + const char *src_file, uint src_line); + +/** + Record a condition instrumentation wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_cond_wait_v1_t) + (struct PSI_cond_locker *locker, int rc); + +/** + Record a table instrumentation io wait start event. + @param locker a table locker for the running thread + @param file the source file name + @param line the source line number +*/ +typedef struct PSI_table_locker* (*start_table_io_wait_v1_t) + (struct PSI_table_locker_state *state, + struct PSI_table *table, + enum PSI_table_io_operation op, + uint index, + const char *src_file, uint src_line); + +/** + Record a table instrumentation io wait end event. + @param locker a table locker for the running thread + @param numrows the number of rows involved in io +*/ +typedef void (*end_table_io_wait_v1_t) + (struct PSI_table_locker *locker, + ulonglong numrows); + +/** + Record a table instrumentation lock wait start event. + @param locker a table locker for the running thread + @param file the source file name + @param line the source line number +*/ +typedef struct PSI_table_locker* (*start_table_lock_wait_v1_t) + (struct PSI_table_locker_state *state, + struct PSI_table *table, + enum PSI_table_lock_operation op, + ulong flags, + const char *src_file, uint src_line); + +/** + Record a table instrumentation lock wait end event. + @param locker a table locker for the running thread +*/ +typedef void (*end_table_lock_wait_v1_t)(struct PSI_table_locker *locker); + +typedef void (*unlock_table_v1_t)(struct PSI_table *table); + +/** + Start a file instrumentation open operation. + @param locker the file locker + @param op the operation to perform + @param src_file the source file name + @param src_line the source line number +*/ +typedef void (*start_file_open_wait_v1_t) + (struct PSI_file_locker *locker, const char *src_file, uint src_line); + +/** + End a file instrumentation open operation, for file streams. + @param locker the file locker. + @param result the opened file (NULL indicates failure, non NULL success). + @return an instrumented file handle +*/ +typedef struct PSI_file* (*end_file_open_wait_v1_t) + (struct PSI_file_locker *locker, void *result); + +/** + End a file instrumentation open operation, for non stream files. + @param locker the file locker. + @param file the file number assigned by open() or create() for this file. +*/ +typedef void (*end_file_open_wait_and_bind_to_descriptor_v1_t) + (struct PSI_file_locker *locker, File file); + +/** + End a file instrumentation open operation, for non stream temporary files. + @param locker the file locker. + @param file the file number assigned by open() or create() for this file. + @param filename the file name generated during temporary file creation. +*/ +typedef void (*end_temp_file_open_wait_and_bind_to_descriptor_v1_t) + (struct PSI_file_locker *locker, File file, const char *filename); + +/** + Record a file instrumentation start event. + @param locker a file locker for the running thread + @param op file operation to be performed + @param count the number of bytes requested, or 0 if not applicable + @param src_file the source file name + @param src_line the source line number +*/ +typedef void (*start_file_wait_v1_t) + (struct PSI_file_locker *locker, size_t count, + const char *src_file, uint src_line); + +/** + Record a file instrumentation end event. + Note that for file close operations, the instrumented file handle + associated with the file (which was provided to obtain a locker) + is invalid after this call. + @param locker a file locker for the running thread + @param count the number of bytes actually used in the operation, + or 0 if not applicable, or -1 if the operation failed + @sa get_thread_file_name_locker + @sa get_thread_file_stream_locker + @sa get_thread_file_descriptor_locker +*/ +typedef void (*end_file_wait_v1_t) + (struct PSI_file_locker *locker, size_t count); + +/** + Start a file instrumentation close operation. + @param locker the file locker + @param op the operation to perform + @param src_file the source file name + @param src_line the source line number +*/ +typedef void (*start_file_close_wait_v1_t) + (struct PSI_file_locker *locker, const char *src_file, uint src_line); + +/** + End a file instrumentation close operation. + @param locker the file locker. + @param rc the close operation return code (0 for success). + @return an instrumented file handle +*/ +typedef void (*end_file_close_wait_v1_t) + (struct PSI_file_locker *locker, int rc); + +/** + Start a new stage, and implicitly end the previous stage. + @param key the key of the new stage + @param src_file the source file name + @param src_line the source line number + @return the new stage progress +*/ +typedef PSI_stage_progress* (*start_stage_v1_t) + (PSI_stage_key key, const char *src_file, int src_line); + +typedef PSI_stage_progress* (*get_current_stage_progress_v1_t)(void); + +/** End the current stage. */ +typedef void (*end_stage_v1_t) (void); + +/** + Get a statement instrumentation locker. + @param state data storage for the locker + @param key the statement instrumentation key + @param charset client character set + @return a statement locker, or NULL +*/ +typedef struct PSI_statement_locker* (*get_thread_statement_locker_v1_t) + (struct PSI_statement_locker_state_v1 *state, + PSI_statement_key key, const void *charset, PSI_sp_share *sp_share); + +/** + Refine a statement locker to a more specific key. + Note that only events declared mutable can be refined. + @param the statement locker for the current event + @param key the new key for the event + @sa PSI_FLAG_MUTABLE +*/ +typedef struct PSI_statement_locker* (*refine_statement_v1_t) + (struct PSI_statement_locker *locker, + PSI_statement_key key); + +/** + Start a new statement event. + @param locker the statement locker for this event + @param db the active database name for this statement + @param db_length the active database name length for this statement + @param src_file source file name + @param src_line source line number +*/ +typedef void (*start_statement_v1_t) + (struct PSI_statement_locker *locker, + const char *db, uint db_length, + const char *src_file, uint src_line); + +/** + Set the statement text for a statement event. + @param locker the current statement locker + @param text the statement text + @param text_len the statement text length +*/ +typedef void (*set_statement_text_v1_t) + (struct PSI_statement_locker *locker, + const char *text, uint text_len); + +/** + Set a statement event lock time. + @param locker the statement locker + @param lock_time the locked time, in microseconds +*/ +typedef void (*set_statement_lock_time_t) + (struct PSI_statement_locker *locker, ulonglong lock_time); + +/** + Set a statement event rows sent metric. + @param locker the statement locker + @param count the number of rows sent +*/ +typedef void (*set_statement_rows_sent_t) + (struct PSI_statement_locker *locker, ulonglong count); + +/** + Set a statement event rows examined metric. + @param locker the statement locker + @param count the number of rows examined +*/ +typedef void (*set_statement_rows_examined_t) + (struct PSI_statement_locker *locker, ulonglong count); + +/** + Increment a statement event "created tmp disk tables" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_created_tmp_disk_tables_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "created tmp tables" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_created_tmp_tables_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "select full join" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_select_full_join_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "select full range join" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_select_full_range_join_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "select range join" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_select_range_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "select range check" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_select_range_check_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "select scan" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_select_scan_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "sort merge passes" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_sort_merge_passes_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "sort range" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_sort_range_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "sort rows" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_sort_rows_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Increment a statement event "sort scan" metric. + @param locker the statement locker + @param count the metric increment value +*/ +typedef void (*inc_statement_sort_scan_t) + (struct PSI_statement_locker *locker, ulong count); + +/** + Set a statement event "no index used" metric. + @param locker the statement locker + @param count the metric value +*/ +typedef void (*set_statement_no_index_used_t) + (struct PSI_statement_locker *locker); + +/** + Set a statement event "no good index used" metric. + @param locker the statement locker + @param count the metric value +*/ +typedef void (*set_statement_no_good_index_used_t) + (struct PSI_statement_locker *locker); + +/** + End a statement event. + @param locker the statement locker + @param stmt_da the statement diagnostics area. + @sa Diagnostics_area +*/ +typedef void (*end_statement_v1_t) + (struct PSI_statement_locker *locker, void *stmt_da); + +/** + Get a transaction instrumentation locker. + @param state data storage for the locker + @param xid the xid for this transaction + @param trxid the InnoDB transaction id + @param iso_level isolation level for this transaction + @param read_only true if transaction access mode is read-only + @param autocommit true if transaction is autocommit + @return a transaction locker, or NULL +*/ +typedef struct PSI_transaction_locker* (*get_thread_transaction_locker_v1_t) + (struct PSI_transaction_locker_state_v1 *state, const void *xid, + const ulonglong *trxid, int isolation_level, my_bool read_only, + my_bool autocommit); + +/** + Start a new transaction event. + @param locker the transaction locker for this event + @param src_file source file name + @param src_line source line number +*/ +typedef void (*start_transaction_v1_t) + (struct PSI_transaction_locker *locker, + const char *src_file, uint src_line); + +/** + Set the transaction xid. + @param locker the transaction locker for this event + @param xid the id of the XA transaction + #param xa_state is the state of the XA transaction +*/ +typedef void (*set_transaction_xid_v1_t) + (struct PSI_transaction_locker *locker, + const void *xid, int xa_state); + +/** + Set the state of the XA transaction. + @param locker the transaction locker for this event + @param xa_state the new state of the xa transaction +*/ +typedef void (*set_transaction_xa_state_v1_t) + (struct PSI_transaction_locker *locker, + int xa_state); + +/** + Set the transaction gtid. + @param locker the transaction locker for this event + @param sid the source id for the transaction, mapped from sidno + @param gtid_spec the gtid specifier for the transaction +*/ +typedef void (*set_transaction_gtid_v1_t) + (struct PSI_transaction_locker *locker, + const void *sid, const void *gtid_spec); + +/** + Set the transaction trx_id. + @param locker the transaction locker for this event + @param trxid the storage engine transaction ID +*/ +typedef void (*set_transaction_trxid_v1_t) + (struct PSI_transaction_locker *locker, + const ulonglong *trxid); + +/** + Increment a transaction event savepoint count. + @param locker the transaction locker + @param count the increment value +*/ +typedef void (*inc_transaction_savepoints_v1_t) + (struct PSI_transaction_locker *locker, ulong count); + +/** + Increment a transaction event rollback to savepoint count. + @param locker the transaction locker + @param count the increment value +*/ +typedef void (*inc_transaction_rollback_to_savepoint_v1_t) + (struct PSI_transaction_locker *locker, ulong count); + +/** + Increment a transaction event release savepoint count. + @param locker the transaction locker + @param count the increment value +*/ +typedef void (*inc_transaction_release_savepoint_v1_t) + (struct PSI_transaction_locker *locker, ulong count); + +/** + Commit or rollback the transaction. + @param locker the transaction locker for this event + @param commit true if transaction was committed, false if rolled back +*/ +typedef void (*end_transaction_v1_t) + (struct PSI_transaction_locker *locker, + my_bool commit); + +/** + Record a socket instrumentation start event. + @param locker a socket locker for the running thread + @param op socket operation to be performed + @param count the number of bytes requested, or 0 if not applicable + @param src_file the source file name + @param src_line the source line number +*/ +typedef struct PSI_socket_locker* (*start_socket_wait_v1_t) + (struct PSI_socket_locker_state_v1 *state, + struct PSI_socket *socket, + enum PSI_socket_operation op, + size_t count, + const char *src_file, uint src_line); + +/** + Record a socket instrumentation end event. + Note that for socket close operations, the instrumented socket handle + associated with the socket (which was provided to obtain a locker) + is invalid after this call. + @param locker a socket locker for the running thread + @param count the number of bytes actually used in the operation, + or 0 if not applicable, or -1 if the operation failed + @sa get_thread_socket_locker +*/ +typedef void (*end_socket_wait_v1_t) + (struct PSI_socket_locker *locker, size_t count); + +/** + Set the socket state for an instrumented socket. + @param socket the instrumented socket + @param state socket state + */ +typedef void (*set_socket_state_v1_t)(struct PSI_socket *socket, + enum PSI_socket_state state); + +/** + Set the socket info for an instrumented socket. + @param socket the instrumented socket + @param fd the socket descriptor + @param addr the socket ip address + @param addr_len length of socket ip address + @param thread_id associated thread id +*/ +typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket, + const my_socket *fd, + const struct sockaddr *addr, + socklen_t addr_len); + +/** + Bind a socket to the thread that owns it. + @param socket instrumented socket +*/ +typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket); + +/** + Get a prepare statement. + @param locker a statement locker for the running thread. +*/ +typedef PSI_prepared_stmt* (*create_prepared_stmt_v1_t) + (void *identity, uint stmt_id, PSI_statement_locker *locker, + const char *stmt_name, size_t stmt_name_length, + const char *name, size_t length); + +/** + destroy a prepare statement. + @param prepared_stmt prepared statement. +*/ +typedef void (*destroy_prepared_stmt_v1_t) + (PSI_prepared_stmt *prepared_stmt); + +/** + repreare a prepare statement. + @param prepared_stmt prepared statement. +*/ +typedef void (*reprepare_prepared_stmt_v1_t) + (PSI_prepared_stmt *prepared_stmt); + +/** + Record a prepare statement instrumentation execute event. + @param locker a statement locker for the running thread. + @param prepared_stmt prepared statement. +*/ +typedef void (*execute_prepared_stmt_v1_t) + (PSI_statement_locker *locker, PSI_prepared_stmt* prepared_stmt); + +/** + Get a digest locker for the current statement. + @param locker a statement locker for the running thread +*/ +typedef struct PSI_digest_locker * (*digest_start_v1_t) + (struct PSI_statement_locker *locker); + +/** + Add a token to the current digest instrumentation. + @param locker a digest locker for the current statement + @param token the lexical token to add + @param yylval the lexical token attributes +*/ +typedef void (*digest_end_v1_t) + (struct PSI_digest_locker *locker, const struct sql_digest_storage *digest); + +typedef PSI_sp_locker* (*start_sp_v1_t) + (struct PSI_sp_locker_state_v1 *state, struct PSI_sp_share* sp_share); + +typedef void (*end_sp_v1_t) + (struct PSI_sp_locker *locker); + +typedef void (*drop_sp_v1_t) + (uint object_type, + const char *schema_name, uint schema_name_length, + const char *object_name, uint object_name_length); + +/** + Acquire a sp share instrumentation. + @param type of stored program + @param schema name of stored program + @param name of stored program + @return a stored program share instrumentation, or NULL +*/ +typedef struct PSI_sp_share* (*get_sp_share_v1_t) + (uint object_type, + const char *schema_name, uint schema_name_length, + const char *object_name, uint object_name_length); + +/** + Release a stored program share. + @param info the stored program share to release +*/ +typedef void (*release_sp_share_v1_t)(struct PSI_sp_share *share); + +typedef PSI_metadata_lock* (*create_metadata_lock_v1_t) + (void *identity, + const MDL_key *key, + opaque_mdl_type mdl_type, + opaque_mdl_duration mdl_duration, + opaque_mdl_status mdl_status, + const char *src_file, + uint src_line); + +typedef void (*set_metadata_lock_status_v1_t)(PSI_metadata_lock *lock, + opaque_mdl_status mdl_status); + +typedef void (*destroy_metadata_lock_v1_t)(PSI_metadata_lock *lock); + +typedef struct PSI_metadata_locker* (*start_metadata_wait_v1_t) + (struct PSI_metadata_locker_state_v1 *state, + struct PSI_metadata_lock *mdl, + const char *src_file, uint src_line); + +typedef void (*end_metadata_wait_v1_t) + (struct PSI_metadata_locker *locker, int rc); + +/** + Stores an array of connection attributes + @param buffer char array of length encoded connection attributes + in network format + @param length length of the data in buffer + @param from_cs charset in which @c buffer is encoded + @return state + @retval non_0 attributes truncated + @retval 0 stored the attribute +*/ +typedef int (*set_thread_connect_attrs_v1_t)(const char *buffer, uint length, + const void *from_cs); + +/** + Performance Schema Interface, version 1. + @since PSI_VERSION_1 +*/ +struct PSI_v1 +{ + /** @sa register_mutex_v1_t. */ + register_mutex_v1_t register_mutex; + /** @sa register_rwlock_v1_t. */ + register_rwlock_v1_t register_rwlock; + /** @sa register_cond_v1_t. */ + register_cond_v1_t register_cond; + /** @sa register_thread_v1_t. */ + register_thread_v1_t register_thread; + /** @sa register_file_v1_t. */ + register_file_v1_t register_file; + /** @sa register_stage_v1_t. */ + register_stage_v1_t register_stage; + /** @sa register_statement_v1_t. */ + register_statement_v1_t register_statement; + /** @sa register_socket_v1_t. */ + register_socket_v1_t register_socket; + /** @sa init_mutex_v1_t. */ + init_mutex_v1_t init_mutex; + /** @sa destroy_mutex_v1_t. */ + destroy_mutex_v1_t destroy_mutex; + /** @sa init_rwlock_v1_t. */ + init_rwlock_v1_t init_rwlock; + /** @sa destroy_rwlock_v1_t. */ + destroy_rwlock_v1_t destroy_rwlock; + /** @sa init_cond_v1_t. */ + init_cond_v1_t init_cond; + /** @sa destroy_cond_v1_t. */ + destroy_cond_v1_t destroy_cond; + /** @sa init_socket_v1_t. */ + init_socket_v1_t init_socket; + /** @sa destroy_socket_v1_t. */ + destroy_socket_v1_t destroy_socket; + + /** @sa get_table_share_v1_t. */ + get_table_share_v1_t get_table_share; + /** @sa release_table_share_v1_t. */ + release_table_share_v1_t release_table_share; + /** @sa drop_table_share_v1_t. */ + drop_table_share_v1_t drop_table_share; + /** @sa open_table_v1_t. */ + open_table_v1_t open_table; + /** @sa unbind_table_v1_t. */ + unbind_table_v1_t unbind_table; + /** @sa rebind_table_v1_t. */ + rebind_table_v1_t rebind_table; + /** @sa close_table_v1_t. */ + close_table_v1_t close_table; + /** @sa create_file_v1_t. */ + create_file_v1_t create_file; + /** @sa spawn_thread_v1_t. */ + spawn_thread_v1_t spawn_thread; + /** @sa new_thread_v1_t. */ + new_thread_v1_t new_thread; + /** @sa set_thread_id_v1_t. */ + set_thread_id_v1_t set_thread_id; + /** @sa set_thread_THD_v1_t. */ + set_thread_THD_v1_t set_thread_THD; + /** @sa set_thread_os_id_v1_t. */ + set_thread_os_id_v1_t set_thread_os_id; + /** @sa get_thread_v1_t. */ + get_thread_v1_t get_thread; + /** @sa set_thread_user_v1_t. */ + set_thread_user_v1_t set_thread_user; + /** @sa set_thread_account_v1_t. */ + set_thread_account_v1_t set_thread_account; + /** @sa set_thread_db_v1_t. */ + set_thread_db_v1_t set_thread_db; + /** @sa set_thread_command_v1_t. */ + set_thread_command_v1_t set_thread_command; + /** @sa set_connection_type_v1_t. */ + set_connection_type_v1_t set_connection_type; + /** @sa set_thread_start_time_v1_t. */ + set_thread_start_time_v1_t set_thread_start_time; + /** @sa set_thread_state_v1_t. */ + set_thread_state_v1_t set_thread_state; + /** @sa set_thread_info_v1_t. */ + set_thread_info_v1_t set_thread_info; + /** @sa set_thread_v1_t. */ + set_thread_v1_t set_thread; + /** @sa delete_current_thread_v1_t. */ + delete_current_thread_v1_t delete_current_thread; + /** @sa delete_thread_v1_t. */ + delete_thread_v1_t delete_thread; + /** @sa get_thread_file_name_locker_v1_t. */ + get_thread_file_name_locker_v1_t get_thread_file_name_locker; + /** @sa get_thread_file_stream_locker_v1_t. */ + get_thread_file_stream_locker_v1_t get_thread_file_stream_locker; + /** @sa get_thread_file_descriptor_locker_v1_t. */ + get_thread_file_descriptor_locker_v1_t get_thread_file_descriptor_locker; + /** @sa unlock_mutex_v1_t. */ + unlock_mutex_v1_t unlock_mutex; + /** @sa unlock_rwlock_v1_t. */ + unlock_rwlock_v1_t unlock_rwlock; + /** @sa signal_cond_v1_t. */ + signal_cond_v1_t signal_cond; + /** @sa broadcast_cond_v1_t. */ + broadcast_cond_v1_t broadcast_cond; + /** @sa start_idle_wait_v1_t. */ + start_idle_wait_v1_t start_idle_wait; + /** @sa end_idle_wait_v1_t. */ + end_idle_wait_v1_t end_idle_wait; + /** @sa start_mutex_wait_v1_t. */ + start_mutex_wait_v1_t start_mutex_wait; + /** @sa end_mutex_wait_v1_t. */ + end_mutex_wait_v1_t end_mutex_wait; + /** @sa start_rwlock_rdwait_v1_t. */ + start_rwlock_rdwait_v1_t start_rwlock_rdwait; + /** @sa end_rwlock_rdwait_v1_t. */ + end_rwlock_rdwait_v1_t end_rwlock_rdwait; + /** @sa start_rwlock_wrwait_v1_t. */ + start_rwlock_wrwait_v1_t start_rwlock_wrwait; + /** @sa end_rwlock_wrwait_v1_t. */ + end_rwlock_wrwait_v1_t end_rwlock_wrwait; + /** @sa start_cond_wait_v1_t. */ + start_cond_wait_v1_t start_cond_wait; + /** @sa end_cond_wait_v1_t. */ + end_cond_wait_v1_t end_cond_wait; + /** @sa start_table_io_wait_v1_t. */ + start_table_io_wait_v1_t start_table_io_wait; + /** @sa end_table_io_wait_v1_t. */ + end_table_io_wait_v1_t end_table_io_wait; + /** @sa start_table_lock_wait_v1_t. */ + start_table_lock_wait_v1_t start_table_lock_wait; + /** @sa end_table_lock_wait_v1_t. */ + end_table_lock_wait_v1_t end_table_lock_wait; + /** @sa start_file_open_wait_v1_t. */ + start_file_open_wait_v1_t start_file_open_wait; + /** @sa end_file_open_wait_v1_t. */ + end_file_open_wait_v1_t end_file_open_wait; + /** @sa end_file_open_wait_and_bind_to_descriptor_v1_t. */ + end_file_open_wait_and_bind_to_descriptor_v1_t + end_file_open_wait_and_bind_to_descriptor; + /** @sa end_temp_file_open_wait_and_bind_to_descriptor_v1_t. */ + end_temp_file_open_wait_and_bind_to_descriptor_v1_t + end_temp_file_open_wait_and_bind_to_descriptor; + /** @sa start_file_wait_v1_t. */ + start_file_wait_v1_t start_file_wait; + /** @sa end_file_wait_v1_t. */ + end_file_wait_v1_t end_file_wait; + /** @sa start_file_close_wait_v1_t. */ + start_file_close_wait_v1_t start_file_close_wait; + /** @sa end_file_close_wait_v1_t. */ + end_file_close_wait_v1_t end_file_close_wait; + /** @sa start_stage_v1_t. */ + start_stage_v1_t start_stage; + /** @sa get_current_stage_progress_v1_t. */ + get_current_stage_progress_v1_t get_current_stage_progress; + /** @sa end_stage_v1_t. */ + end_stage_v1_t end_stage; + /** @sa get_thread_statement_locker_v1_t. */ + get_thread_statement_locker_v1_t get_thread_statement_locker; + /** @sa refine_statement_v1_t. */ + refine_statement_v1_t refine_statement; + /** @sa start_statement_v1_t. */ + start_statement_v1_t start_statement; + /** @sa set_statement_text_v1_t. */ + set_statement_text_v1_t set_statement_text; + /** @sa set_statement_lock_time_t. */ + set_statement_lock_time_t set_statement_lock_time; + /** @sa set_statement_rows_sent_t. */ + set_statement_rows_sent_t set_statement_rows_sent; + /** @sa set_statement_rows_examined_t. */ + set_statement_rows_examined_t set_statement_rows_examined; + /** @sa inc_statement_created_tmp_disk_tables. */ + inc_statement_created_tmp_disk_tables_t inc_statement_created_tmp_disk_tables; + /** @sa inc_statement_created_tmp_tables. */ + inc_statement_created_tmp_tables_t inc_statement_created_tmp_tables; + /** @sa inc_statement_select_full_join. */ + inc_statement_select_full_join_t inc_statement_select_full_join; + /** @sa inc_statement_select_full_range_join. */ + inc_statement_select_full_range_join_t inc_statement_select_full_range_join; + /** @sa inc_statement_select_range. */ + inc_statement_select_range_t inc_statement_select_range; + /** @sa inc_statement_select_range_check. */ + inc_statement_select_range_check_t inc_statement_select_range_check; + /** @sa inc_statement_select_scan. */ + inc_statement_select_scan_t inc_statement_select_scan; + /** @sa inc_statement_sort_merge_passes. */ + inc_statement_sort_merge_passes_t inc_statement_sort_merge_passes; + /** @sa inc_statement_sort_range. */ + inc_statement_sort_range_t inc_statement_sort_range; + /** @sa inc_statement_sort_rows. */ + inc_statement_sort_rows_t inc_statement_sort_rows; + /** @sa inc_statement_sort_scan. */ + inc_statement_sort_scan_t inc_statement_sort_scan; + /** @sa set_statement_no_index_used. */ + set_statement_no_index_used_t set_statement_no_index_used; + /** @sa set_statement_no_good_index_used. */ + set_statement_no_good_index_used_t set_statement_no_good_index_used; + /** @sa end_statement_v1_t. */ + end_statement_v1_t end_statement; + /** @sa get_thread_transaction_locker_v1_t. */ + get_thread_transaction_locker_v1_t get_thread_transaction_locker; + /** @sa start_transaction_v1_t. */ + start_transaction_v1_t start_transaction; + /** @sa set_transaction_xid_v1_t. */ + set_transaction_xid_v1_t set_transaction_xid; + /** @sa set_transaction_xa_state_v1_t. */ + set_transaction_xa_state_v1_t set_transaction_xa_state; + /** @sa set_transaction_gtid_v1_t. */ + set_transaction_gtid_v1_t set_transaction_gtid; + /** @sa set_transaction_trxid_v1_t. */ + set_transaction_trxid_v1_t set_transaction_trxid; + /** @sa inc_transaction_savepoints_v1_t. */ + inc_transaction_savepoints_v1_t inc_transaction_savepoints; + /** @sa inc_transaction_rollback_to_savepoint_v1_t. */ + inc_transaction_rollback_to_savepoint_v1_t inc_transaction_rollback_to_savepoint; + /** @sa inc_transaction_release_savepoint_v1_t. */ + inc_transaction_release_savepoint_v1_t inc_transaction_release_savepoint; + /** @sa end_transaction_v1_t. */ + end_transaction_v1_t end_transaction; + /** @sa start_socket_wait_v1_t. */ + start_socket_wait_v1_t start_socket_wait; + /** @sa end_socket_wait_v1_t. */ + end_socket_wait_v1_t end_socket_wait; + /** @sa set_socket_state_v1_t. */ + set_socket_state_v1_t set_socket_state; + /** @sa set_socket_info_v1_t. */ + set_socket_info_v1_t set_socket_info; + /** @sa set_socket_thread_owner_v1_t. */ + set_socket_thread_owner_v1_t set_socket_thread_owner; + /** @sa create_prepared_stmt_v1_t. */ + create_prepared_stmt_v1_t create_prepared_stmt; + /** @sa destroy_prepared_stmt_v1_t. */ + destroy_prepared_stmt_v1_t destroy_prepared_stmt; + /** @sa reprepare_prepared_stmt_v1_t. */ + reprepare_prepared_stmt_v1_t reprepare_prepared_stmt; + /** @sa execute_prepared_stmt_v1_t. */ + execute_prepared_stmt_v1_t execute_prepared_stmt; + /** @sa digest_start_v1_t. */ + digest_start_v1_t digest_start; + /** @sa digest_end_v1_t. */ + digest_end_v1_t digest_end; + /** @sa set_thread_connect_attrs_v1_t. */ + set_thread_connect_attrs_v1_t set_thread_connect_attrs; + /** @sa start_sp_v1_t. */ + start_sp_v1_t start_sp; + /** @sa start_sp_v1_t. */ + end_sp_v1_t end_sp; + /** @sa drop_sp_v1_t. */ + drop_sp_v1_t drop_sp; + /** @sa get_sp_share_v1_t. */ + get_sp_share_v1_t get_sp_share; + /** @sa release_sp_share_v1_t. */ + release_sp_share_v1_t release_sp_share; + /** @sa register_memory_v1_t. */ + register_memory_v1_t register_memory; + /** @sa memory_alloc_v1_t. */ + memory_alloc_v1_t memory_alloc; + /** @sa memory_realloc_v1_t. */ + memory_realloc_v1_t memory_realloc; + /** @sa memory_claim_v1_t. */ + memory_claim_v1_t memory_claim; + /** @sa memory_free_v1_t. */ + memory_free_v1_t memory_free; + + unlock_table_v1_t unlock_table; + + create_metadata_lock_v1_t create_metadata_lock; + set_metadata_lock_status_v1_t set_metadata_lock_status; + destroy_metadata_lock_v1_t destroy_metadata_lock; + + start_metadata_wait_v1_t start_metadata_wait; + end_metadata_wait_v1_t end_metadata_wait; +}; + +/** @} (end of group Group_PSI_v1) */ + +#endif /* HAVE_PSI_1 */ + +#ifdef USE_PSI_2 +#define HAVE_PSI_2 +#endif + +#ifdef HAVE_PSI_2 + +/** + @defgroup Group_PSI_v2 Application Binary Interface, version 2 + @ingroup Instrumentation_interface + @{ +*/ + +/** + Performance Schema Interface, version 2. + This is a placeholder, this interface is not defined yet. + @since PSI_VERSION_2 +*/ +struct PSI_v2 +{ + /** Placeholder */ + int placeholder; + /* ... extended interface ... */ +}; + +/** Placeholder */ +struct PSI_mutex_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_rwlock_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_cond_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_thread_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_file_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_stage_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_statement_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_transaction_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_idle_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_mutex_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_rwlock_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_cond_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_file_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_statement_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_transaction_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_socket_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +struct PSI_metadata_locker_state_v2 +{ + int placeholder; +}; + +/** @} (end of group Group_PSI_v2) */ + +#endif /* HAVE_PSI_2 */ + +/** + @typedef PSI + The instrumentation interface for the current version. + @sa PSI_CURRENT_VERSION +*/ + +/** + @typedef PSI_mutex_info + The mutex information structure for the current version. +*/ + +/** + @typedef PSI_rwlock_info + The rwlock information structure for the current version. +*/ + +/** + @typedef PSI_cond_info + The cond information structure for the current version. +*/ + +/** + @typedef PSI_thread_info + The thread information structure for the current version. +*/ + +/** + @typedef PSI_file_info + The file information structure for the current version. +*/ + +/* Export the required version */ +#ifdef USE_PSI_1 +typedef struct PSI_v1 PSI; +typedef struct PSI_mutex_info_v1 PSI_mutex_info; +typedef struct PSI_rwlock_info_v1 PSI_rwlock_info; +typedef struct PSI_cond_info_v1 PSI_cond_info; +typedef struct PSI_thread_info_v1 PSI_thread_info; +typedef struct PSI_file_info_v1 PSI_file_info; +typedef struct PSI_stage_info_v1 PSI_stage_info; +typedef struct PSI_statement_info_v1 PSI_statement_info; +typedef struct PSI_transaction_info_v1 PSI_transaction_info; +typedef struct PSI_socket_info_v1 PSI_socket_info; +typedef struct PSI_idle_locker_state_v1 PSI_idle_locker_state; +typedef struct PSI_mutex_locker_state_v1 PSI_mutex_locker_state; +typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state; +typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state; +typedef struct PSI_file_locker_state_v1 PSI_file_locker_state; +typedef struct PSI_statement_locker_state_v1 PSI_statement_locker_state; +typedef struct PSI_transaction_locker_state_v1 PSI_transaction_locker_state; +typedef struct PSI_socket_locker_state_v1 PSI_socket_locker_state; +typedef struct PSI_sp_locker_state_v1 PSI_sp_locker_state; +typedef struct PSI_metadata_locker_state_v1 PSI_metadata_locker_state; +#endif + +#ifdef USE_PSI_2 +typedef struct PSI_v2 PSI; +typedef struct PSI_mutex_info_v2 PSI_mutex_info; +typedef struct PSI_rwlock_info_v2 PSI_rwlock_info; +typedef struct PSI_cond_info_v2 PSI_cond_info; +typedef struct PSI_thread_info_v2 PSI_thread_info; +typedef struct PSI_file_info_v2 PSI_file_info; +typedef struct PSI_stage_info_v2 PSI_stage_info; +typedef struct PSI_statement_info_v2 PSI_statement_info; +typedef struct PSI_transaction_info_v2 PSI_transaction_info; +typedef struct PSI_socket_info_v2 PSI_socket_info; +typedef struct PSI_idle_locker_state_v2 PSI_idle_locker_state; +typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state; +typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state; +typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state; +typedef struct PSI_file_locker_state_v2 PSI_file_locker_state; +typedef struct PSI_statement_locker_state_v2 PSI_statement_locker_state; +typedef struct PSI_transaction_locker_state_v2 PSI_transaction_locker_state; +typedef struct PSI_socket_locker_state_v2 PSI_socket_locker_state; +typedef struct PSI_sp_locker_state_v2 PSI_sp_locker_state; +typedef struct PSI_metadata_locker_state_v2 PSI_metadata_locker_state; +#endif + +#else /* HAVE_PSI_INTERFACE */ + +/** + Dummy structure, used to declare PSI_server when no instrumentation + is available. + The content does not matter, since PSI_server will be NULL. +*/ +struct PSI_none +{ + int opaque; +}; +typedef struct PSI_none PSI; + +/** + Stage instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented stage. +*/ +struct PSI_stage_info_none +{ + /** Unused stage key. */ + unsigned int m_key; + /** The name of the stage instrument. */ + const char *m_name; + /** Unused stage flags. */ + int m_flags; +}; + +/** + The stage instrumentation has to co exist with the legacy + THD::set_proc_info instrumentation. + To avoid duplication of the instrumentation in the server, + the common PSI_stage_info structure is used, + so we export it here, even when not building + with HAVE_PSI_INTERFACE. +*/ +typedef struct PSI_stage_info_none PSI_stage_info; + +#endif /* HAVE_PSI_INTERFACE */ + +extern MYSQL_PLUGIN_IMPORT PSI *PSI_server; + +/* + Allow to override PSI_XXX_CALL at compile time + with more efficient implementations, if available. + If nothing better is available, + make a dynamic call using the PSI_server function pointer. +*/ + +#define PSI_DYNAMIC_CALL(M) PSI_server->M + +/** @} */ + +C_MODE_END +#endif /* MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H */ + diff --git a/mysql/mysql/psi/psi_base.h b/mysql/mysql/psi/psi_base.h new file mode 100644 index 0000000..94cb5c9 --- /dev/null +++ b/mysql/mysql/psi/psi_base.h @@ -0,0 +1,155 @@ +/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_PSI_BASE_H +#define MYSQL_PSI_BASE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + @file mysql/psi/psi_base.h + Performance schema instrumentation interface. + + @defgroup Instrumentation_interface Instrumentation Interface + @ingroup Performance_schema + @{ +*/ + +#define PSI_INSTRUMENT_ME 0 + +#define PSI_NOT_INSTRUMENTED 0 + +/** + Global flag. + This flag indicate that an instrumentation point is a global variable, + or a singleton. +*/ +#define PSI_FLAG_GLOBAL (1 << 0) + +/** + Mutable flag. + This flag indicate that an instrumentation point is a general placeholder, + that can mutate into a more specific instrumentation point. +*/ +#define PSI_FLAG_MUTABLE (1 << 1) + +#define PSI_FLAG_THREAD (1 << 2) + +/** + Stage progress flag. + This flag apply to the stage instruments only. + It indicates the instrumentation provides progress data. +*/ +#define PSI_FLAG_STAGE_PROGRESS (1 << 3) + +/** + Shared Exclusive flag. + Indicates that rwlock support the shared exclusive state. +*/ +#define PSI_RWLOCK_FLAG_SX (1 << 4) + +/** + Transferable flag. + This flag indicate that an instrumented object can + be created by a thread and destroyed by another thread. +*/ +#define PSI_FLAG_TRANSFER (1 << 5) + +/** + Volatility flag. + This flag indicate that an instrumented object + has a volatility (life cycle) comparable + to the volatility of a session. +*/ +#define PSI_FLAG_VOLATILITY_SESSION (1 << 6) + +#ifdef HAVE_PSI_INTERFACE + +/** + @def PSI_VERSION_1 + Performance Schema Interface number for version 1. + This version is supported. +*/ +#define PSI_VERSION_1 1 + +/** + @def PSI_VERSION_2 + Performance Schema Interface number for version 2. + This version is not implemented, it's a placeholder. +*/ +#define PSI_VERSION_2 2 + +/** + @def PSI_CURRENT_VERSION + Performance Schema Interface number for the most recent version. + The most current version is @c PSI_VERSION_1 +*/ +#define PSI_CURRENT_VERSION 1 + +/** + @def USE_PSI_1 + Define USE_PSI_1 to use the interface version 1. +*/ + +/** + @def USE_PSI_2 + Define USE_PSI_2 to use the interface version 2. +*/ + +/** + @def HAVE_PSI_1 + Define HAVE_PSI_1 if the interface version 1 needs to be compiled in. +*/ + +/** + @def HAVE_PSI_2 + Define HAVE_PSI_2 if the interface version 2 needs to be compiled in. +*/ + +#ifndef USE_PSI_2 +#ifndef USE_PSI_1 +#define USE_PSI_1 +#endif +#endif + +#ifdef USE_PSI_1 +#define HAVE_PSI_1 +#endif + +#ifdef USE_PSI_2 +#define HAVE_PSI_2 +#endif + +/* + Allow to override PSI_XXX_CALL at compile time + with more efficient implementations, if available. + If nothing better is available, + make a dynamic call using the PSI_server function pointer. +*/ + +#define PSI_DYNAMIC_CALL(M) PSI_server->M + +#endif /* HAVE_PSI_INTERFACE */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* MYSQL_PSI_BASE_H */ + diff --git a/mysql/mysql/psi/psi_memory.h b/mysql/mysql/psi/psi_memory.h new file mode 100644 index 0000000..725b3ed --- /dev/null +++ b/mysql/mysql/psi/psi_memory.h @@ -0,0 +1,155 @@ +/* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_PSI_MEMORY_H +#define MYSQL_PSI_MEMORY_H + +#include "psi_base.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + @file mysql/psi/psi_memory.h + Performance schema instrumentation interface. + + @defgroup Instrumentation_interface Instrumentation Interface + @ingroup Performance_schema + @{ +*/ + +#ifdef HAVE_PSI_INTERFACE +#ifndef DISABLE_ALL_PSI +#ifndef DISABLE_PSI_MEMORY +#define HAVE_PSI_MEMORY_INTERFACE +#endif /* DISABLE_PSI_MEMORY */ +#endif /* DISABLE_ALL_PSI */ +#endif /* HAVE_PSI_INTERFACE */ + +struct PSI_thread; + +/** + Instrumented memory key. + To instrument memory, a memory key must be obtained using @c register_memory. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_memory_key; + +#ifdef HAVE_PSI_1 + +/** + @defgroup Group_PSI_v1 Application Binary Interface, version 1 + @ingroup Instrumentation_interface + @{ +*/ + +/** + Memory instrument information. + @since PSI_VERSION_1 + This structure is used to register instrumented memory. +*/ +struct PSI_memory_info_v1 +{ + /** Pointer to the key assigned to the registered memory. */ + PSI_memory_key *m_key; + /** The name of the memory instrument to register. */ + const char *m_name; + /** + The flags of the socket instrument to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; +typedef struct PSI_memory_info_v1 PSI_memory_info_v1; + +/** + Memory registration API. + @param category a category name (typically a plugin name) + @param info an array of memory info to register + @param count the size of the info array +*/ +typedef void (*register_memory_v1_t) + (const char *category, struct PSI_memory_info_v1 *info, int count); + +/** + Instrument memory allocation. + @param key the memory instrument key + @param size the size of memory allocated + @param[out] owner the memory owner + @return the effective memory instrument key +*/ +typedef PSI_memory_key (*memory_alloc_v1_t) + (PSI_memory_key key, size_t size, struct PSI_thread ** owner); + +/** + Instrument memory re allocation. + @param key the memory instrument key + @param old_size the size of memory previously allocated + @param new_size the size of memory re allocated + @param[in, out] owner the memory owner + @return the effective memory instrument key +*/ +typedef PSI_memory_key (*memory_realloc_v1_t) + (PSI_memory_key key, size_t old_size, size_t new_size, struct PSI_thread ** owner); + +/** + Instrument memory claim. + @param key the memory instrument key + @param size the size of memory allocated + @param[in, out] owner the memory owner + @return the effective memory instrument key +*/ +typedef PSI_memory_key (*memory_claim_v1_t) + (PSI_memory_key key, size_t size, struct PSI_thread ** owner); + +/** + Instrument memory free. + @param key the memory instrument key + @param size the size of memory allocated + @param owner the memory owner +*/ +typedef void (*memory_free_v1_t) + (PSI_memory_key key, size_t size, struct PSI_thread * owner); + +/** @} (end of group Group_PSI_v1) */ + +#endif /* HAVE_PSI_1 */ + +#ifdef HAVE_PSI_2 +struct PSI_memory_info_v2 +{ + int placeholder; +}; + +#endif /* HAVE_PSI_2 */ + +#ifdef USE_PSI_1 +typedef struct PSI_memory_info_v1 PSI_memory_info; +#endif + +#ifdef USE_PSI_2 +typedef struct PSI_memory_info_v2 PSI_memory_info; +#endif + +/** @} (end of group Instrumentation_interface) */ + +#ifdef __cplusplus +} +#endif + + +#endif /* MYSQL_PSI_MEMORY_H */ + diff --git a/mysql/mysql/service_command.h b/mysql/mysql/service_command.h new file mode 100644 index 0000000..7b90b8f --- /dev/null +++ b/mysql/mysql/service_command.h @@ -0,0 +1,436 @@ +#ifndef MYSQL_SERVICE_COMMAND_INCLUDED +#define MYSQL_SERVICE_COMMAND_INCLUDED +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + Header file for the Command service. This service is to provide means + of executing different commands, like COM_QUERY, COM_STMT_PREPARE, + in the server. +*/ + +#include "mysql/service_srv_session.h" +#include "mysql/com_data.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "mysql_time.h" +#include "decimal.h" +#ifndef MYSQL_ABI_CHECK +#include "m_ctype.h" +#include /* uint32_t */ +#endif + +/* POD structure for the field metadata from the server */ +struct st_send_field +{ + const char *db_name; + const char *table_name; + const char *org_table_name; + const char *col_name; + const char *org_col_name; + unsigned long length; + unsigned int charsetnr; + unsigned int flags; + unsigned int decimals; + enum_field_types type; +}; + + +struct st_command_service_cbs +{ + /* + For a statement that returns a result, the flow of called callbacks will be: + + start_result_metadata() + field_metadata() + .... + end_result_metadata() (in the classic protocol this generates an EOF packet) + start_row() + get_xxx() + ... + end_row() + start_row() + get_xxx() + ... + end_row() + handle_ok() (with data for an EOF packet) + + For a statement that does NOT return a result, but only status, like + INSERT, UPDATE, DELETE, REPLACE, TRUNCATE, CREATE, DROP, ALTER, etc. only + handle_ok() will be invoked, in case of success. + + All statements that result in an error will invoke handle_error(). + + For statements that return a result set, handle_error() might be invoked + even after metadata was sent. This will indicate an error during the + execution of the statement. + */ + + /*** Getting metadata ***/ + /** + Indicates beginning of metadata for the result set + + @param ctx Plugin's context + @param num_cols Number of fields being sent + @param flags Flags to alter the metadata sending + @param resultcs Charset of the result set + + @note resultcs is the charset in which the data should be encoded before + sent to the client. This is the value of the session variable + character_set_results. The implementor most probably will need to save + this value in the context and use it as "to" charset in get_string(). + + In case of CS_BINARY_REPRESENTATION, get_string() receives as a parameter + the charset of the string, as it is stored on disk. + + In case of CS_TEXT_REPRESENTATION, the string value might be already a + stringified value or non-string data, which is in character_set_results. + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*start_result_metadata)(void *ctx, uint num_cols, uint flags, + const CHARSET_INFO *resultcs); + + /** + Field metadata is provided via this callback + + @param ctx Plugin's context + @param field Field's metadata (see field.h) + @param charset Field's charset + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*field_metadata)(void *ctx, struct st_send_field *field, + const CHARSET_INFO *charset); + + /** + Indicates end of metadata for the result set + + @param ctx Plugin's context + @param server_status Status of server (see mysql_com.h, SERVER_STATUS_*) + @param warn_count Number of warnings generated during execution to the + moment when the metadata is sent. + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*end_result_metadata)(void *ctx, uint server_status, + uint warn_count); + + /** + Indicates the beginning of a new row in the result set/metadata + + @param ctx Plugin's context + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*start_row)(void *ctx); + + /** + Indicates the end of the current row in the result set/metadata + + @param ctx Plugin's context + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*end_row)(void *ctx); + + /** + An error occured during execution + + @details This callback indicates that an error occured during command + execution and the partial row should be dropped. Server will raise error + and return. + + @param ctx Plugin's context + + @returns + true an error occured, server will abort the command + false ok + + */ + void (*abort_row)(void *ctx); + + /** + Return client's capabilities (see mysql_com.h, CLIENT_*) + + @param ctx Plugin's context + + @return Bitmap of client's capabilities + */ + ulong (*get_client_capabilities)(void *ctx); + + /****** Getting data ******/ + /** + Receive NULL value from server + + @param ctx Plugin's context + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*get_null)(void * ctx); + + /** + Receive TINY/SHORT/LONG value from server + + @param ctx Plugin's context + @param value Value received + + @note In order to know which type exactly was received, the plugin must + track the metadata that was sent just prior to the result set. + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*get_integer)(void * ctx, longlong value); + + /** + Get LONGLONG value from server + + @param ctx Plugin's context + @param value Value received + @param is_unsigned TRUE <=> value is unsigned + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*get_longlong)(void * ctx, longlong value, uint is_unsigned); + + /** + Receive DECIMAL value from server + + @param ctx Plugin's context + @param value Value received + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*get_decimal)(void * ctx, const decimal_t * value); + + /** + Receive FLOAT/DOUBLE from server + + @param ctx Plugin's context + @param value Value received + @param decimals Number of decimals + + @note In order to know which type exactly was received, the plugin must + track the metadata that was sent just prior to the result set. + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*get_double)(void * ctx, double value, uint32_t decimals); + + /** + Get DATE value from server + + @param ctx Plugin's context + @param value Value received + + @returns + 1 an error occured during storing, server will abort the command + 0 ok + */ + int (*get_date)(void * ctx, const MYSQL_TIME * value); + + /** + Receive TIME value from server + + @param ctx Plugin's context + @param value Value received + @param decimals Number of decimals + + @returns + 1 an error occured during storing, server will abort the command + 0 ok + */ + int (*get_time)(void * ctx, const MYSQL_TIME * value, uint decimals); + + /** + Receive DATETIME value from server + + @param ctx Plugin's context + @param value Value received + @param decimals Number of decimals + + @returns + 1 an error occured during storing, server will abort the command + 0 ok + */ + int (*get_datetime)(void * ctx, const MYSQL_TIME * value, uint decimals); + + /** + Get STRING value from server + + @param ctx Plugin's context + @param value Data + @param length Data length + @param valuecs Data charset + + @note In case of CS_BINARY_REPRESENTATION, get_string() receives as + a parameter the charset of the string, as it is stored on disk. + + In case of CS_TEXT_REPRESENTATION, the string value might be already a + stringified value or non-string data, which is in character_set_results. + + @see start_result_metadata() + + @returns + 1 an error occured, server will abort the command + 0 ok + */ + int (*get_string)(void * ctx, const char * value, size_t length, + const CHARSET_INFO * valuecs); + + /****** Getting execution status ******/ + /** + Command ended with success + + @param ctx Plugin's context + @param server_status Status of server (see mysql_com.h, + SERVER_STATUS_*) + @param statement_warn_count Number of warnings thrown during execution + @param affected_rows Number of rows affected by the command + @param last_insert_id Last insert id being assigned during execution + @param message A message from server + */ + void (*handle_ok)(void * ctx, + uint server_status, uint statement_warn_count, + ulonglong affected_rows, ulonglong last_insert_id, + const char * message); + + /** + Command ended with ERROR + + @param ctx Plugin's context + @param sql_errno Error code + @param err_msg Error message + @param sqlstate SQL state correspongin to the error code + */ + void (*handle_error)(void * ctx, uint sql_errno, const char * err_msg, + const char * sqlstate); + + /** + Callback for shutdown notification from the server. + + @param ctx Plugin's context + @param server_shutdown Whether this is a normal connection shutdown (0) or + server shutdown (1). + */ + void (*shutdown)(void *ctx, int server_shutdown); +}; + +enum cs_text_or_binary +{ + CS_TEXT_REPRESENTATION= 1, /* Let the server convert everything to string */ + CS_BINARY_REPRESENTATION= 2, /* Let the server use native types */ +}; + +extern struct command_service_st { + int (*run_command)(MYSQL_SESSION session, + enum enum_server_command command, + const union COM_DATA * data, + const CHARSET_INFO * client_cs, + const struct st_command_service_cbs * callbacks, + enum cs_text_or_binary text_or_binary, + void * service_callbacks_ctx); +} *command_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define command_service_run_command(t, command, data, cset, cbs, t_or_b, ctx) \ + command_service->run_command((t), (command), (data), (cset), \ + (cbs), (t_or_b), (ctx)) +#else + + +/** + Executes a server command in a session. + + + There are two cases. Execution in a physical thread : + 1. initialized by the srv_session service + 2. NOT initialized by the srv_session service + + In case of 1, if there is currently attached session, and it is + different from the passed one, the former will be automatically + detached. The session to be used for the execution will then be + attached. After the command is executed, the attached session will + not be detached. It will be detached by a next call to run_command() + with another session as parameter. In other words, for all sessions + used in a physical thread, there will be at most one in attached + state. + + In case of 2, the current state (current_thd) will be + preserved. Then the given session will move to attached state and + the command will be executed. After the execution the state of the + session will be changed to detached and the preserved state + (current_thd) will be restored. + + The client charset is used for commands like COM_QUERY and + COM_STMT_PREPARE to know how to threat the char* fields. This + charset will be used until the next call of run_command when it may + be changed again. + + @param session The session + @param command The command to be executed. + @param data The data needed for the command to be executed + @param client_cs The charset for the string data input(COM_QUERY for example) + @param callbacks Callbacks to be used by the server to encode data and + to communicate with the client (plugin) side. + @param text_or_binary Select which representation the server will use for the + data passed to the callbacks. For more information + @see cs_text_or_binary enum + @param service_callbacks_ctx Context passed to the command service callbacks + + @return + 0 success + 1 failure +*/ +int command_service_run_command(MYSQL_SESSION session, + enum enum_server_command command, + const union COM_DATA * data, + const CHARSET_INFO * client_cs, + const struct st_command_service_cbs * callbacks, + enum cs_text_or_binary text_or_binary, + void * service_callbacks_ctx); + +#endif /* MYSQL_DYNAMIC_PLUGIN */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mysql/mysql/service_locking.h b/mysql/mysql/service_locking.h new file mode 100644 index 0000000..06f02d2 --- /dev/null +++ b/mysql/mysql/service_locking.h @@ -0,0 +1,114 @@ +/* + Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef SERVICE_LOCKING_INCLUDED +#define SERVICE_LOCKING_INCLUDED + +/* + This service provides support for taking read/write locks. + It is intended for use with fabric, but it is still a general + service. The locks are in a separate namespace from other + locks in the server, and there is also no interactions with + transactions (i.e. locks are not released on commit/abort). + + These locks are implemented using the metadata lock (MDL) subsystem + and thus deadlocks involving locking service locks and other types + of metadata will be detected using the MDL deadlock detector. +*/ + +#ifdef __cplusplus +class THD; +#define MYSQL_THD THD* +#else +#define MYSQL_THD void* +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + Types of locking service locks. + LOCKING_SERVICE_READ is compatible with LOCKING_SERVICE_READ. + All other combinations are incompatible. +*/ +enum enum_locking_service_lock_type +{ LOCKING_SERVICE_READ, LOCKING_SERVICE_WRITE }; + +extern struct mysql_locking_service_st { + /** + Acquire locking service locks. + + @param opaque_thd Thread handle. If NULL, current_thd will be used. + @param lock_namespace Namespace of the locks to acquire. + @param lock_names Array of names of the locks to acquire. + @param lock_num Number of elements in 'lock_names'. + @param lock_type Lock type to acquire. LOCKING_SERVICE_READ or _WRITE. + @param lock_timeout Number of seconds to wait before giving up. + + @retval 1 Acquisition failed, error has been reported. + @retval 0 Acquisition successful, all locks acquired. + + @note both lock_namespace and lock_names are limited to 64 characters max. + Names are compared using binary comparison. + */ + int (*mysql_acquire_locks)(MYSQL_THD opaque_thd, const char* lock_namespace, + const char**lock_names, size_t lock_num, + enum enum_locking_service_lock_type lock_type, + unsigned long lock_timeout); + + /** + Release all lock service locks taken by the given connection + in the given namespace. + + @param opaque_thd Thread handle. If NULL, current_thd will be used. + @param lock_namespace Namespace of the locks to release. + + @retval 1 Release failed, error has been reported. + @retval 0 Release successful, all locks acquired. + */ + int (*mysql_release_locks)(MYSQL_THD opaque_thd, const char* lock_namespace); +} *mysql_locking_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define mysql_acquire_locking_service_locks(_THD, _NAMESPACE, _NAMES, _NUM, \ + _TYPE, _TIMEOUT) \ + mysql_locking_service->mysql_acquire_locks(_THD, _NAMESPACE, _NAMES, _NUM, \ + _TYPE, _TIMEOUT) +#define mysql_release_locking_service_locks(_THD, _NAMESPACE) \ + mysql_locking_service->mysql_release_locks(_THD, _NAMESPACE) + +#else + +int mysql_acquire_locking_service_locks(MYSQL_THD opaque_thd, + const char* lock_namespace, + const char**lock_names, + size_t lock_num, + enum enum_locking_service_lock_type lock_type, + unsigned long lock_timeout); + +int mysql_release_locking_service_locks(MYSQL_THD opaque_thd, + const char* lock_namespace); + +#endif /* MYSQL_DYNAMIC_PLUGIN */ + +#ifdef __cplusplus +} +#endif + +#endif /* SERVICE_LOCKING_INCLUDED */ diff --git a/mysql/mysql/service_my_plugin_log.h b/mysql/mysql/service_my_plugin_log.h new file mode 100644 index 0000000..0cf7817 --- /dev/null +++ b/mysql/mysql/service_my_plugin_log.h @@ -0,0 +1,64 @@ +/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + This service provides functions to report error conditions and log to + mysql error log. +*/ + +#ifndef MYSQL_SERVICE_MY_PLUGIN_LOG_INCLUDED +#define MYSQL_SERVICE_MY_PLUGIN_LOG_INCLUDED + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +/* keep in sync with the loglevel enum in my_sys.h */ +enum plugin_log_level +{ + MY_ERROR_LEVEL, + MY_WARNING_LEVEL, + MY_INFORMATION_LEVEL +}; + + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct my_plugin_log_service +{ + /** write a message to the log */ + int (*my_plugin_log_message)(MYSQL_PLUGIN *, enum plugin_log_level, const char *, ...); +} *my_plugin_log_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_plugin_log_message my_plugin_log_service->my_plugin_log_message + +#else + +int my_plugin_log_message(MYSQL_PLUGIN *plugin, enum plugin_log_level level, + const char *format, ...); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mysql/mysql/service_my_snprintf.h b/mysql/mysql/service_my_snprintf.h new file mode 100644 index 0000000..d734ae1 --- /dev/null +++ b/mysql/mysql/service_my_snprintf.h @@ -0,0 +1,101 @@ +#ifndef MYSQL_SERVICE_MY_SNPRINTF_INCLUDED +#define MYSQL_SERVICE_MY_SNPRINTF_INCLUDED +/* Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + my_snprintf service + + Portable and limited vsnprintf() implementation. + + This is a portable, limited vsnprintf() implementation, with some + extra features. "Portable" means that it'll produce identical result + on all platforms (for example, on Windows and Linux system printf %e + formats the exponent differently, on different systems %p either + prints leading 0x or not, %s may accept null pointer or crash on + it). "Limited" means that it does not support all the C89 features. + But it supports few extensions, not in any standard. + + my_vsnprintf(to, n, fmt, ap) + + @param[out] to A buffer to store the result in + @param[in] n Store up to n-1 characters, followed by an end 0 + @param[in] fmt printf-like format string + @param[in] ap Arguments + + @return a number of bytes written to a buffer *excluding* terminating '\0' + + @post + The syntax of a format string is generally the same: + % + where everithing but the format is optional. + + Three one-character flags are recognized: + '0' has the standard zero-padding semantics; + '-' is parsed, but silently ignored; + '`' (backtick) is only supported for strings (%s) and means that the + string will be quoted according to MySQL identifier quoting rules. + + Both and can be specified as numbers or '*'. + If an asterisk is used, an argument of type int is consumed. + + can be 'l', 'll', or 'z'. + + Supported formats are 's' (null pointer is accepted, printed as + "(null)"), 'b' (extension, see below), 'c', 'd', 'i', 'u', 'x', 'o', + 'X', 'p' (works as 0x%x). + + Standard syntax for positional arguments $n is supported. + + Extensions: + + Flag '`' (backtick): see above. + + Format 'b': binary buffer, prints exactly bytes from the + argument, without stopping at '\0'. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MYSQL_ABI_CHECK +#include +#include +#endif + +extern struct my_snprintf_service_st { + size_t (*my_snprintf_type)(char*, size_t, const char*, ...); + size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list); +} *my_snprintf_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_vsnprintf my_snprintf_service->my_vsnprintf_type +#define my_snprintf my_snprintf_service->my_snprintf_type + +#else + +size_t my_snprintf(char* to, size_t n, const char* fmt, ...); +size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* #define MYSQL_SERVICE_MY_SNPRINTF_INCLUDED */ diff --git a/mysql/mysql/service_mysql_alloc.h b/mysql/mysql/service_mysql_alloc.h new file mode 100644 index 0000000..a43a169 --- /dev/null +++ b/mysql/mysql/service_mysql_alloc.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_MYSQL_ALLOC_INCLUDED +#define MYSQL_SERVICE_MYSQL_ALLOC_INCLUDED + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +/* PSI_memory_key */ +#include "mysql/psi/psi_memory.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* myf */ +typedef int myf_t; + +typedef void * (*mysql_malloc_t)(PSI_memory_key key, size_t size, myf_t flags); +typedef void * (*mysql_realloc_t)(PSI_memory_key key, void *ptr, size_t size, myf_t flags); +typedef void (*mysql_claim_t)(void *ptr); +typedef void (*mysql_free_t)(void *ptr); +typedef void * (*my_memdup_t)(PSI_memory_key key, const void *from, size_t length, myf_t flags); +typedef char * (*my_strdup_t)(PSI_memory_key key, const char *from, myf_t flags); +typedef char * (*my_strndup_t)(PSI_memory_key key, const char *from, size_t length, myf_t flags); + +struct mysql_malloc_service_st +{ + mysql_malloc_t mysql_malloc; + mysql_realloc_t mysql_realloc; + mysql_claim_t mysql_claim; + mysql_free_t mysql_free; + my_memdup_t my_memdup; + my_strdup_t my_strdup; + my_strndup_t my_strndup; +}; + +extern struct mysql_malloc_service_st *mysql_malloc_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_malloc mysql_malloc_service->mysql_malloc +#define my_realloc mysql_malloc_service->mysql_realloc +#define my_claim mysql_malloc_service->mysql_claim +#define my_free mysql_malloc_service->mysql_free +#define my_memdup mysql_malloc_service->my_memdup +#define my_strdup mysql_malloc_service->my_strdup +#define my_strndup mysql_malloc_service->my_strndup + +#else + +extern void * my_malloc(PSI_memory_key key, size_t size, myf_t flags); +extern void * my_realloc(PSI_memory_key key, void *ptr, size_t size, myf_t flags); +extern void my_claim(void *ptr); +extern void my_free(void *ptr); +extern void * my_memdup(PSI_memory_key key, const void *from, size_t length, myf_t flags); +extern char * my_strdup(PSI_memory_key key, const char *from, myf_t flags); +extern char * my_strndup(PSI_memory_key key, const char *from, size_t length, myf_t flags); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/mysql/mysql/service_mysql_keyring.h b/mysql/mysql/service_mysql_keyring.h new file mode 100644 index 0000000..991d5fd --- /dev/null +++ b/mysql/mysql/service_mysql_keyring.h @@ -0,0 +1,62 @@ +/* Copyright (c) 2014, 2016 Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_MYSQL_PLUGIN_KEYRING_INCLUDED +#define MYSQL_SERVICE_MYSQL_PLUGIN_KEYRING_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct mysql_keyring_service_st +{ + int (*my_key_store_func)(const char *, const char *, const char *, + const void *, size_t); + int (*my_key_fetch_func)(const char *, char **, const char *, void **, + size_t *); + int (*my_key_remove_func)(const char *, const char *); + int (*my_key_generate_func)(const char *, const char *, const char *, + size_t); +} *mysql_keyring_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_key_store(key_id, key_type, user_id, key, key_len) \ + mysql_keyring_service->my_key_store_func(key_id, key_type, user_id, key, \ + key_len) +#define my_key_fetch(key_id, key_type, user_id, key, key_len) \ + mysql_keyring_service->my_key_fetch_func(key_id, key_type, user_id, key, \ + key_len) +#define my_key_remove(key_id, user_id) \ + mysql_keyring_service->my_key_remove_func(key_id, user_id) +#define my_key_generate(key_id, key_type, user_id, key_len) \ + mysql_keyring_service->my_key_generate_func(key_id, key_type, user_id, \ + key_len) +#else + +int my_key_store(const char *, const char *, const char *, const void *, size_t); +int my_key_fetch(const char *, char **, const char *, void **, + size_t *); +int my_key_remove(const char *, const char *); +int my_key_generate(const char *, const char *, const char *, size_t); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif //MYSQL_SERVICE_MYSQL_PLUGIN_KEYRING_INCLUDED + diff --git a/mysql/mysql/service_mysql_password_policy.h b/mysql/mysql/service_mysql_password_policy.h new file mode 100644 index 0000000..09f121d --- /dev/null +++ b/mysql/mysql/service_mysql_password_policy.h @@ -0,0 +1,66 @@ +/* Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_MYSQL_PLUGIN_AUTH_INCLUDED +#define MYSQL_SERVICE_MYSQL_PLUGIN_AUTH_INCLUDED + +/** + @file include/mysql/service_mysql_plugin_auth.h + This service provides functions to validatete password, check for strength + of password based on common policy. + + SYNOPSIS + my_validate_password_policy() - function to validate password + based on defined policy + const char* buffer holding the password value + unsigned int buffer length + + my_calculate_password_strength() - function to calculate strength + of the password based on the policies defined. + const char* buffer holding the password value + unsigned int buffer length + + Both the service function returns 0 on SUCCESS and 1 incase input password does not + match against the policy rules defined. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct mysql_password_policy_service_st { + int (*my_validate_password_policy_func)(const char *, unsigned int); + int (*my_calculate_password_strength_func)(const char *, unsigned int); +} *mysql_password_policy_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_validate_password_policy(buffer, length) \ + mysql_password_policy_service->my_validate_password_policy_func(buffer, length) +#define my_calculate_password_strength(buffer, length) \ + mysql_password_policy_service->my_calculate_password_strength_func(buffer, length) + +#else + +int my_validate_password_policy(const char *, unsigned int); +int my_calculate_password_strength(const char *, unsigned int); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mysql/mysql/service_mysql_string.h b/mysql/mysql/service_mysql_string.h new file mode 100644 index 0000000..c8cde97 --- /dev/null +++ b/mysql/mysql/service_mysql_string.h @@ -0,0 +1,133 @@ +/* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This service provides functions to parse mysql String */ + +#ifndef MYSQL_SERVICE_MYSQL_STRING_INCLUDED +#define MYSQL_SERVICE_MYSQL_STRING_INCLUDED + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void *mysql_string_iterator_handle; +typedef void *mysql_string_handle; + +extern struct mysql_string_service_st { + int (*mysql_string_convert_to_char_ptr_type) + (mysql_string_handle, const char *, char *, unsigned int, int *); + mysql_string_iterator_handle (*mysql_string_get_iterator_type) + (mysql_string_handle); + int (*mysql_string_iterator_next_type)(mysql_string_iterator_handle); + int (*mysql_string_iterator_isupper_type)(mysql_string_iterator_handle); + int (*mysql_string_iterator_islower_type)(mysql_string_iterator_handle); + int (*mysql_string_iterator_isdigit_type)(mysql_string_iterator_handle); + mysql_string_handle (*mysql_string_to_lowercase_type)(mysql_string_handle); + void (*mysql_string_free_type)(mysql_string_handle); + void (*mysql_string_iterator_free_type)(mysql_string_iterator_handle); +} *mysql_string_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define mysql_string_convert_to_char_ptr(string_handle, charset_name, \ + buffer, buffer_size, error) \ + mysql_string_service->mysql_string_convert_to_char_ptr_type \ + (string_handle, charset_name, buffer, \ + buffer_size, error) + +#define mysql_string_get_iterator(string_handle) \ + mysql_string_service->mysql_string_get_iterator_type(string_handle) + +#define mysql_string_iterator_next(iterator_handle) \ + mysql_string_service->mysql_string_iterator_next_type(iterator_handle) + +#define mysql_string_iterator_isupper(iterator_handle) \ + mysql_string_service->mysql_string_iterator_isupper_type \ + (iterator_handle) + +#define mysql_string_iterator_islower(iterator_handle) \ + mysql_string_service->mysql_string_iterator_islower_type \ + (iterator_handle) + +#define mysql_string_iterator_isdigit(iterator_handle) \ + mysql_string_service->mysql_string_iterator_isdigit_type \ + (iterator_handle) + +#define mysql_string_to_lowercase(string_handle) \ + mysql_string_service->mysql_string_to_lowercase_type(string_handle) + +#define mysql_string_free(mysql_string_handle) \ + mysql_string_service->mysql_string_free_type(mysql_string_handle) + +#define mysql_string_iterator_free(mysql_string_iterator_handle) \ + mysql_string_service->mysql_string_iterator_free_type \ + (mysql_string_iterator_handle) +#else + +/* This service function convert string into given character set */ +int mysql_string_convert_to_char_ptr(mysql_string_handle string_handle, + const char *charset_name, char *buffer, + unsigned int buffer_size, int *error); + +/* This service function returns the beginning of the iterator handle */ +mysql_string_iterator_handle mysql_string_get_iterator(mysql_string_handle + string_handle); +/* + This service function gets the next iterator handle + returns 0 if reached the end else return 1 +*/ +int mysql_string_iterator_next(mysql_string_iterator_handle iterator_handle); + +/* + This service function return 1 if current iterator handle points to a + uppercase character else return 0 for client character set. +*/ +int mysql_string_iterator_isupper(mysql_string_iterator_handle iterator_handle); + +/* + This service function return 1 if current iterator handle points to a + lowercase character else return 0 for client character set. +*/ +int mysql_string_iterator_islower(mysql_string_iterator_handle iterator_handle); + +/* + This service function return 1 if current iterator handle points to a digit + else return 0 for client character sets. +*/ +int mysql_string_iterator_isdigit(mysql_string_iterator_handle iterator_handle); + +/* convert string_handle into lowercase */ +mysql_string_handle mysql_string_to_lowercase(mysql_string_handle + string_handle); + +/* It deallocates the string created on server side during plugin operations */ +void mysql_string_free(mysql_string_handle); + +/* + It deallocates the string iterator created on server side + during plugin operations +*/ +void mysql_string_iterator_free(mysql_string_iterator_handle); + +#endif +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mysql/mysql/service_parser.h b/mysql/mysql/service_parser.h new file mode 100644 index 0000000..3cf7c8b --- /dev/null +++ b/mysql/mysql/service_parser.h @@ -0,0 +1,286 @@ +#ifndef MYSQL_SERVICE_PARSER_INCLUDED +#define MYSQL_SERVICE_PARSER_INCLUDED +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "my_md5_size.h" +#include + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +class THD; +class Item; +#define MYSQL_THD THD* +typedef Item* MYSQL_ITEM; +#else +#define MYSQL_THD void* +typedef void* MYSQL_ITEM; +#endif /* __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + @file service_parser + + Plugin service that provides access to the parser and some operations on the + parse tree. +*/ + +#define PARSER_SERVICE_DIGEST_LENGTH MD5_HASH_SIZE + +#define STATEMENT_TYPE_SELECT 1 +#define STATEMENT_TYPE_OTHER 2 + +typedef +int (*parse_node_visit_function)(MYSQL_ITEM item, unsigned char* arg); + + +typedef +int (*sql_condition_handler_function)(int sql_errno, + const char* sqlstate, + const char* msg, + void *state); + +struct st_my_thread_handle; + +extern struct mysql_parser_service_st { + + MYSQL_THD (*mysql_current_session)(); + + MYSQL_THD (*mysql_open_session)(); + + void (*mysql_start_thread)(MYSQL_THD thd, void *(*callback_fun)(void*), + void *arg, + struct st_my_thread_handle *thread_handle); + + void (*mysql_join_thread)(struct st_my_thread_handle *thread_handle); + + void (*mysql_set_current_database)(MYSQL_THD thd, const MYSQL_LEX_STRING db); + + /** + Parses the query. + + @param thd The session in which to parse. + + @param query The query to parse. + + @param is_prepared If non-zero, the query will be parsed as a prepared + statement and won't throw errors when the query string contains '?'. + + @param handle_condition Callback function that is called if a condition is + raised during the preparation, parsing or cleanup after parsing. If this + argument is non-NULL, the diagnostics area will be cleared before this + function returns. + + @param condition_handler_state Will be passed to handle_condition when + called. Otherwise ignored. + + @retval 0 Success. + @retval 1 Parse error. + */ + int (*mysql_parse)(MYSQL_THD thd, const MYSQL_LEX_STRING query, + unsigned char is_prepared, + sql_condition_handler_function handle_condition, + void *condition_handler_state); + + int (*mysql_get_statement_type)(MYSQL_THD thd); + + /** + Returns the digest of the last parsed statement in the session. + + @param thd The session in which the statement was parsed. + + @param digest[out] An area of at least size PARSER_SERVICE_DIGEST_LENGTH, + where the digest is written. + + @retval 0 Success. + @retval 1 Parse error. + */ + int (*mysql_get_statement_digest)(MYSQL_THD thd, unsigned char *digest); + + + /** + Returns the number of parameters ('?') in the parsed query. + This works only if the last query was parsed as a prepared statement. + + @param thd The session in which the query was parsed. + + @return The number of parameter markers. + */ + int (*mysql_get_number_params)(MYSQL_THD thd); + + + /** + Stores in 'positions' the positions in the last parsed query of each + parameter marker('?'). Positions must be an already allocated array of at + least mysql_parser_service_st::mysql_get_number_params() size. This works + only if the last query was parsed as a prepared statement. + + @param thd The session in which the query was parsed. + + @param positions An already allocated array of at least + mysql_parser_service_st::mysql_get_number_params() size. + + @return The number of parameter markers and hence number of written + positions. + */ + int (*mysql_extract_prepared_params)(MYSQL_THD thd, int *positions); + + + /** + Walks the tree depth first and applies a user defined function on each + literal. + + @param thd The session in which the query was parsed. + + @param processor Will be called for each literal in the parse tree. + + @param arg Will be passed as argument to each call to 'processor'. + */ + int (*mysql_visit_tree)(MYSQL_THD thd, parse_node_visit_function processor, + unsigned char* arg); + + + /** + Renders the MYSQL_ITEM as a string and returns a reference in the form of + a MYSQL_LEX_STRING. The string buffer is allocated by the server and must + be freed by mysql_free_string(). + + @param item The literal to print. + + @return The result of printing the literal. + + @see mysql_parser_service_st::mysql_free_string(). + */ + MYSQL_LEX_STRING (*mysql_item_string)(MYSQL_ITEM item); + + + /** + Frees a string buffer allocated by the server. + + @param The string whose buffer will be freed. + */ + void (*mysql_free_string)(MYSQL_LEX_STRING string); + + + /** + Returns the current query string. This string is managed by the server and + should @b not be freed by a plugin. + + @param thd The session in which the query was submitted. + + @return The query string. + */ + MYSQL_LEX_STRING (*mysql_get_query)(MYSQL_THD thd); + + + /** + Returns the current query in normalized form. This string is managed by + the server and should @b not be freed by a plugin. + + @param thd The session in which the query was submitted. + + @return The query string normalized. + */ + MYSQL_LEX_STRING (*mysql_get_normalized_query)(MYSQL_THD thd); +} *mysql_parser_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define mysql_parser_current_session() \ + mysql_parser_service->mysql_current_session() + +#define mysql_parser_open_session() \ + mysql_parser_service->mysql_open_session() + +#define mysql_parser_start_thread(thd, func, arg, thread_handle) \ + mysql_parser_service->mysql_start_thread(thd, func, arg, thread_handle) + +#define mysql_parser_join_thread(thread_handle) \ + mysql_parser_service->mysql_join_thread(thread_handle) + +#define mysql_parser_set_current_database(thd, db) \ + mysql_parser_service->mysql_set_current_database(thd, db) + +#define mysql_parser_parse(thd, query, is_prepared, \ + condition_handler, condition_handler_state) \ + mysql_parser_service->mysql_parse(thd, query, is_prepared, \ + condition_handler, \ + condition_handler_state) + +#define mysql_parser_get_statement_type(thd) \ + mysql_parser_service->mysql_get_statement_type(thd) + +#define mysql_parser_get_statement_digest(thd, digest) \ + mysql_parser_service->mysql_get_statement_digest(thd, digest) + +#define mysql_parser_get_number_params(thd) \ + mysql_parser_service->mysql_get_number_params(thd) + +#define mysql_parser_extract_prepared_params(thd, positions) \ + mysql_parser_service->mysql_extract_prepared_params(thd, positions) + +#define mysql_parser_visit_tree(thd, processor, arg) \ + mysql_parser_service->mysql_visit_tree(thd, processor, arg) + +#define mysql_parser_item_string(item) \ + mysql_parser_service->mysql_item_string(item) + +#define mysql_parser_free_string(string) \ + mysql_parser_service->mysql_free_string(string) + +#define mysql_parser_get_query(thd) \ + mysql_parser_service->mysql_get_query(thd) + +#define mysql_parser_get_normalized_query(thd) \ + mysql_parser_service->mysql_get_normalized_query(thd) + +#else +typedef void *(*callback_function)(void*); +MYSQL_THD mysql_parser_current_session(); +MYSQL_THD mysql_parser_open_session(); +void mysql_parser_start_thread(MYSQL_THD thd, callback_function fun, void *arg, + struct st_my_thread_handle *thread_handle); +void mysql_parser_join_thread(struct st_my_thread_handle *thread_handle); +void mysql_parser_set_current_database(MYSQL_THD thd, + const MYSQL_LEX_STRING db); +int mysql_parser_parse(MYSQL_THD thd, const MYSQL_LEX_STRING query, + unsigned char is_prepared, + sql_condition_handler_function handle_condition, + void *condition_handler_state); +int mysql_parser_get_statement_type(MYSQL_THD thd); +int mysql_parser_get_statement_digest(MYSQL_THD thd, unsigned char *digest); +int mysql_parser_get_number_params(MYSQL_THD thd); +int mysql_parser_extract_prepared_params(MYSQL_THD thd, int *positions); +int mysql_parser_visit_tree(MYSQL_THD thd, parse_node_visit_function processor, + unsigned char* arg); +MYSQL_LEX_STRING mysql_parser_item_string(MYSQL_ITEM item); +void mysql_parser_free_string(MYSQL_LEX_STRING string); +MYSQL_LEX_STRING mysql_parser_get_query(MYSQL_THD thd); +MYSQL_LEX_STRING mysql_parser_get_normalized_query(MYSQL_THD thd); + +#endif /* MYSQL_DYNAMIC_PLUGIN */ + +#ifdef __cplusplus +} +#endif + +#endif /* MYSQL_SERVICE_PARSER_INCLUDED */ diff --git a/mysql/mysql/service_rpl_transaction_ctx.h b/mysql/mysql/service_rpl_transaction_ctx.h new file mode 100644 index 0000000..e25b22f --- /dev/null +++ b/mysql/mysql/service_rpl_transaction_ctx.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_RPL_TRANSACTION_CTX_INCLUDED + +/** + @file include/mysql/service_rpl_transaction_ctx.h + This service provides a function for plugins to report if a transaction of a + given THD should continue or be aborted. + + SYNOPSIS + set_transaction_ctx() + should be called during RUN_HOOK macro, on which we know that thread is + on plugin context and it is before + Rpl_transaction_ctx::is_transaction_rollback() check. +*/ + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct st_transaction_termination_ctx +{ + unsigned long m_thread_id; + unsigned int m_flags; // reserved + + /* + If the instruction is to rollback the transaction, + then this flag is set to false. + Note: type is char like on my_bool. + */ + char m_rollback_transaction; + + /* + If the plugin has generated a GTID, then the follwoing + fields MUST be set. + Note: type is char like on my_bool. + */ + char m_generated_gtid; + int m_sidno; + long long int m_gno; +}; +typedef struct st_transaction_termination_ctx Transaction_termination_ctx; + +extern struct rpl_transaction_ctx_service_st { + int (*set_transaction_ctx)(Transaction_termination_ctx transaction_termination_ctx); +} *rpl_transaction_ctx_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define set_transaction_ctx(transaction_termination_ctx) \ + (rpl_transaction_ctx_service->set_transaction_ctx((transaction_termination_ctx))) + +#else + +int set_transaction_ctx(Transaction_termination_ctx transaction_termination_ctx); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_RPL_TRANSACTION_CTX_INCLUDED +#endif diff --git a/mysql/mysql/service_rpl_transaction_write_set.h b/mysql/mysql/service_rpl_transaction_write_set.h new file mode 100644 index 0000000..7f849c2 --- /dev/null +++ b/mysql/mysql/service_rpl_transaction_write_set.h @@ -0,0 +1,80 @@ +/* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_TRANSACTION_WRITE_SET_INCLUDED + +/** + @file include/mysql/service_rpl_transaction_write_set.h + This service provides a function for plugins to get the write set of a given + transaction. + + SYNOPSIS + get_transaction_write_set() + This service is used to fetch the write_set extracted for the currently + executing transaction by passing the thread_id as an input parameter for + the method. + + @param [in] - thread_id - It is the thread identifier of the currently + executing thread. + + In the current implementation it is being called during RUN_HOOK macro, + on which we know that thread is on plugin context. + + Cleanup : + The service caller must take of the memory allocated during the service + call to prevent memory leaks. +*/ + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + This structure is used to keep the list of the hash values of the records + changed in the transaction. +*/ +struct st_trans_write_set +{ + unsigned int m_flags; // reserved + unsigned long write_set_size; // Size of the PKE set of the transaction. + unsigned long long* write_set; // A pointer to the PKE set. +}; +typedef struct st_trans_write_set Transaction_write_set; + +extern struct transaction_write_set_service_st { + Transaction_write_set* (*get_transaction_write_set)(unsigned long m_thread_id); +} *transaction_write_set_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define get_transaction_write_set(m_thread_id) \ + (transaction_write_set_service->get_transaction_write_set((m_thread_id))) + +#else + +Transaction_write_set* get_transaction_write_set(unsigned long m_thread_id); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_TRANSACTION_WRITE_SET_INCLUDED +#endif diff --git a/mysql/mysql/service_rules_table.h b/mysql/mysql/service_rules_table.h new file mode 100644 index 0000000..aca3926 --- /dev/null +++ b/mysql/mysql/service_rules_table.h @@ -0,0 +1,192 @@ +#ifdef __cplusplus +#ifndef SERVICE_RULES_TABLE_INCLUDED +#define SERVICE_RULES_TABLE_INCLUDED + +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include + +#ifndef MYSQL_ABI_CHECK +#include +#endif + + +/** + @file service_rules_table.h + + Plugin service that provides access to the rewrite rules table that is used + by the Rewriter plugin. No other use intended. +*/ + +class THD; +struct TABLE_LIST; +class Field; + +namespace rules_table_service +{ + + +/** + There must be one function of this kind in order for the symbols in the + server's dynamic library to be visible to plugins. +*/ +int dummy_function_to_ensure_we_are_linked_into_the_server(); + + +/** + Frees a const char pointer allocated in the server's dynamic library using + new[]. +*/ +void free_string(const char *str); + + +/** + Writable cursor that allows reading and updating of rows in a persistent + table. +*/ +class Cursor +{ +public: + typedef int column_id; + + static const column_id ILLEGAL_COLUMN_ID= -1; + + /** + Creates a cursor to an already-opened table. The constructor is kept + explicit because of implicit conversions from void*. + */ + explicit Cursor(THD *thd); + + /// Creates a past-the-end cursor. + Cursor() : + m_thd(NULL), m_table_list(NULL), m_is_finished(true) + {} + + column_id pattern_column() const { return m_pattern_column; } + column_id pattern_database_column() const + { + return m_pattern_database_column; + } + column_id replacement_column() const { return m_replacement_column; } + column_id enabled_column() const { return m_enabled_column; } + column_id message_column() const { return m_message_column; } + column_id pattern_digest_column() const { return m_pattern_digest_column; } + column_id normalized_pattern_column() const { + return m_normalized_pattern_column; + } + + /** + True if the table does not contain columns named 'pattern', 'replacement', + 'enabled' and 'message'. In this case the cursor is equal to any + past-the-end Cursor. + */ + bool table_is_malformed() { return m_table_is_malformed; } + + /** + Fetches the value of the column with the given number as a C string. + + This interface is meant for crossing dynamic library boundaries, hence the + use of C-style const char*. The function casts a column value to a C + string and returns a copy, allocated in the callee's DL. The pointer + must be freed using free_string(). + + @param fieldno One of PATTERN_COLUMN, REPLACEMENT_COLUMN, ENABLED_COLUMN + or MESSAGE_COLUMN. + */ + const char *fetch_string(int fieldno); + + /** + Equality operator. The only cursors that are equal are past-the-end + cursors. + */ + bool operator== (const Cursor &other) + { + return (m_is_finished == other.m_is_finished); + } + + /** + Inequality operator. All cursors are considered different except + past-the-end cursors. + */ + bool operator!= (const Cursor &other) { return !(*this == other); } + + /** + Advances this Cursor. Read errors are kept, and had_serious_read_error() + will tell if there was an unexpected error (e.g. not EOF) while reading. + */ + Cursor &operator++ () + { + if (!m_is_finished) + read(); + return *this; + } + + /// Prepares the write buffer for updating the current row. + void make_writeable(); + + /** + Sets the value of column colno to a string value. + + @param colno The column number. + @param str The string. + @param length The string's length. + */ + void set(int colno, const char* str, size_t length); + + /// Writes the row in the write buffer to the table at the current row. + int write(); + + /// True if there was an unexpected error while reading, e.g. other than EOF. + bool had_serious_read_error() const; + + /// Closes the table scan if initiated and commits the transaction. + ~Cursor(); + +private: + int field_index(const char *field_name); + + int m_pattern_column; + int m_pattern_database_column; + int m_replacement_column; + int m_enabled_column; + int m_message_column; + int m_pattern_digest_column; + int m_normalized_pattern_column; + + THD *m_thd; + TABLE_LIST *m_table_list; + + bool m_is_finished; + bool m_table_is_malformed; + int m_last_read_status; + + int read(); +}; + + +/** + A past-the-end Cursor. All past-the-end cursors are considered equal + when compared with operator ==. +*/ +Cursor end(); + +} + +#endif // SERVICE_RULES_TABLE_INCLUDED +#endif // __cplusplus diff --git a/mysql/mysql/service_security_context.h b/mysql/mysql/service_security_context.h new file mode 100644 index 0000000..2efa747 --- /dev/null +++ b/mysql/mysql/service_security_context.h @@ -0,0 +1,95 @@ +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_SECURITY_CONTEXT +#define MYSQL_SERVICE_SECURITY_CONTEXT + +/** + @file include/mysql/service_security_context.h + + This service provides functions for plugins and storage engines to + manipulate the thread's security context. +*/ + +#ifdef __cplusplus +class Security_context; +#define MYSQL_SECURITY_CONTEXT Security_context* +#else +#define MYSQL_SECURITY_CONTEXT void* +#endif +typedef char my_svc_bool; + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct security_context_service_st { + my_svc_bool (*thd_get_security_context)(MYSQL_THD, MYSQL_SECURITY_CONTEXT *out_ctx); + my_svc_bool (*thd_set_security_context)(MYSQL_THD, MYSQL_SECURITY_CONTEXT in_ctx); + + my_svc_bool (*security_context_create)(MYSQL_SECURITY_CONTEXT *out_ctx); + my_svc_bool (*security_context_destroy)(MYSQL_SECURITY_CONTEXT); + my_svc_bool (*security_context_copy)(MYSQL_SECURITY_CONTEXT in_ctx, MYSQL_SECURITY_CONTEXT *out_ctx); + + my_svc_bool (*security_context_lookup)(MYSQL_SECURITY_CONTEXT ctx, + const char *user, const char *host, + const char *ip, const char *db); + + my_svc_bool (*security_context_get_option)(MYSQL_SECURITY_CONTEXT, const char *name, void *inout_pvalue); + my_svc_bool (*security_context_set_option)(MYSQL_SECURITY_CONTEXT, const char *name, void *pvalue); +} *security_context_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_get_security_context(_THD, _CTX) \ + security_context_service->thd_get_security_context(_THD, _CTX) +#define thd_set_security_context(_THD, _CTX) \ + security_context_service->thd_set_security_context(_THD, _CTX) + +#define security_context_create(_CTX) \ + security_context_service->security_context_create(_CTX) +#define security_context_destroy(_CTX) \ + security_context_service->security_context_destroy(_CTX) +#define security_context_copy(_CTX1, _CTX2) \ + security_context_service->security_context_copy(_CTX1,_CTX2) + +#define security_context_lookup(_CTX, _U, _H, _IP, _DB) \ + security_context_service->security_context_lookup(_CTX, _U, _H, _IP, _DB) + +#define security_context_get_option(_SEC_CTX, _NAME, _VALUE) \ + security_context_service->security_context_get_option(_SEC_CTX, _NAME, _VALUE) +#define security_context_set_option(_SEC_CTX, _NAME, _VALUE) \ + security_context_service->security_context_set_option(_SEC_CTX, _NAME, _VALUE) +#else + my_svc_bool thd_get_security_context(MYSQL_THD, MYSQL_SECURITY_CONTEXT *out_ctx); + my_svc_bool thd_set_security_context(MYSQL_THD, MYSQL_SECURITY_CONTEXT in_ctx); + + my_svc_bool security_context_create(MYSQL_SECURITY_CONTEXT *out_ctx); + my_svc_bool security_context_destroy(MYSQL_SECURITY_CONTEXT ctx); + my_svc_bool security_context_copy(MYSQL_SECURITY_CONTEXT in_ctx, MYSQL_SECURITY_CONTEXT *out_ctx); + + my_svc_bool security_context_lookup(MYSQL_SECURITY_CONTEXT ctx, + const char *user, const char *host, + const char *ip, const char *db); + + my_svc_bool security_context_get_option(MYSQL_SECURITY_CONTEXT, const char *name, void *inout_pvalue); + my_svc_bool security_context_set_option(MYSQL_SECURITY_CONTEXT, const char *name, void *pvalue); +#endif /* !MYSQL_DYNAMIC_PLUGIN */ + +#ifdef __cplusplus +} +#endif /* _cplusplus */ + +#endif /* !MYSQL_SERVICE_SECURITY_CONTEXT */ diff --git a/mysql/mysql/service_srv_session.h b/mysql/mysql/service_srv_session.h new file mode 100644 index 0000000..e6c83c8 --- /dev/null +++ b/mysql/mysql/service_srv_session.h @@ -0,0 +1,173 @@ +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef MYSQL_SRV_SESSION_SERVICE_INCLUDED +#define MYSQL_SRV_SESSION_SERVICE_INCLUDED + +/** + @file + Header file for the Server session service. This service is to provide + of creating sessions with the server. These sessions can be furtherly used + together with the Command service to execute commands in the server. +*/ + + +#ifdef __cplusplus +class Srv_session; +typedef class Srv_session* MYSQL_SESSION; +#else +struct Srv_session; +typedef struct Srv_session* MYSQL_SESSION; +#endif + +#ifndef MYSQL_ABI_CHECK +#include "mysql/plugin.h" /* MYSQL_THD */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*srv_session_error_cb)(void *ctx, + unsigned int sql_errno, + const char *err_msg); + +extern struct srv_session_service_st +{ + int (*init_session_thread)(const void *plugin); + + void (*deinit_session_thread)(); + + MYSQL_SESSION (*open_session)(srv_session_error_cb error_cb, + void *plugix_ctx); + + int (*detach_session)(MYSQL_SESSION session); + + int (*close_session)(MYSQL_SESSION session); + + int (*server_is_available)(); +} *srv_session_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define srv_session_init_thread(plugin) \ + srv_session_service->init_session_thread((plugin)) + +#define srv_session_deinit_thread() \ + srv_session_service->deinit_session_thread() + +#define srv_session_open(cb, ctx) \ + srv_session_service->open_session((cb), (ctx)) + +#define srv_session_detach(session) \ + srv_session_service->detach_session((session)) + +#define srv_session_close(session) \ + srv_session_service->close_session((session)) + +#define srv_session_server_is_available() \ + srv_session_service->server_is_available() + +#else + +/** + Initializes the current physical thread to use with session service. + + Call this function ONLY in physical threads which are not initialized in + any way by the server. + + @param plugin Pointer to the plugin structure, passed to the plugin over + the plugin init function. + + @return + 0 success + 1 failure +*/ +int srv_session_init_thread(const void *plugin); + +/** + Deinitializes the current physical thread to use with session service. + + + Call this function ONLY in physical threads which were initialized using + srv_session_init_thread(). +*/ +void srv_session_deinit_thread(); + +/** + Opens a server session. + + In a thread not initialized by the server itself, this function should be + called only after srv_session_init_thread() has already been called. + + @param error_cb Default completion callback + @param plugin_ctx Plugin's context, opaque pointer that would + be provided to callbacks. Might be NULL. + @return + session on success + NULL on failure +*/ +MYSQL_SESSION srv_session_open(srv_session_error_cb cb, void *plugix_ctx); + +/** + Detaches a session from current physical thread. + + Detaches a previously attached session. Sessions are automatically attached + when they are used with the Command service (command_service_run_command()). + If the session is opened in a spawned thread, then it will stay attached + after command_service_run_command() until another session is used in the + same physical thread. The command services will detach the previously used + session and attach the one to be used for execution. + + This function should be called in case the session has to be used in + different physical thread. It will unbound the session from the current + physical thread. After that the session can be used in a different thread. + + @param session Session to detach + + @returns + 0 success + 1 failure +*/ +int srv_session_detach(MYSQL_SESSION session); + +/** + Closes a previously opened session. + + @param session Session to close + + @return + 0 success + 1 failure +*/ +int srv_session_close(MYSQL_SESSION session); + +/** + Returns if the server is available (not booting or shutting down) + + @return + 0 not available + 1 available +*/ +int srv_session_server_is_available(); + + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* MYSQL_SRV_SESSION_SERVICE_INCLUDED */ diff --git a/mysql/mysql/service_srv_session_info.h b/mysql/mysql/service_srv_session_info.h new file mode 100644 index 0000000..366529d --- /dev/null +++ b/mysql/mysql/service_srv_session_info.h @@ -0,0 +1,174 @@ +#ifndef MYSQL_SERVICE_SRV_SESSION_INFO_INCLUDED +#define MYSQL_SERVICE_SRV_SESSION_INFO_INCLUDED +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + Service providing setters and getters for some properties of a session +*/ + + +#include "mysql/service_srv_session.h" +#ifndef MYSQL_ABI_CHECK +#include "my_thread.h" /* my_thread_id */ +#include "m_string.h" /* LEX_CSTRING */ +#include "plugin.h" /* MYSQL_THD */ +#include "mysql_com.h" /* Vio for violite.h */ +#include "violite.h" /* enum_vio_type */ +#include /* uint16_t */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct srv_session_info_service_st { + MYSQL_THD (*get_thd)(MYSQL_SESSION session); + + my_thread_id (*get_session_id)(MYSQL_SESSION session); + + LEX_CSTRING (*get_current_db)(MYSQL_SESSION session); + + uint16_t (*get_client_port)(MYSQL_SESSION session); + int (*set_client_port)(MYSQL_SESSION session, uint16_t port); + + int (*set_connection_type)(MYSQL_SESSION session, enum enum_vio_type type); + + int (*killed)(MYSQL_SESSION session); + + unsigned int (*session_count)(); + unsigned int (*thread_count)(const void *plugin); +} *srv_session_info_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define srv_session_info_get_thd(session) srv_session_info_service->get_thd((session)) +#define srv_session_info_get_session_id(sess) srv_session_info_service->get_session_id((sess)) +#define srv_session_info_get_current_db(sess) srv_session_info_service->get_current_db((sess)) +#define srv_session_info_get_client_port(sess) srv_session_info_service->get_client_port((sess)) +#define srv_session_info_set_client_port(sess, port) srv_session_info_service->set_client_port((sess), (port)) +#define srv_session_info_set_connection_type(sess, type) srv_session_info_service->set_connection_type((sess), (type)) +#define srv_session_info_killed(sess) srv_session_info_service->killed((sess)) +#define srv_session_info_session_count(sess) srv_session_info_service->session_count(sess) +#define srv_session_info_thread_count(plugin) srv_session_info_service->thread_count(plugin) + +#else + +/** + Returns the THD of a session. + + @param session Session + + @returns + address of the THD +*/ +MYSQL_THD srv_session_info_get_thd(MYSQL_SESSION session); + +/** + Returns the ID of a session. + + @param session Session +*/ +my_thread_id srv_session_info_get_session_id(MYSQL_SESSION session); + +/** + Returns the current database of a session. + + @note {NULL, 0} is returned case of no current database or session is NULL + + + @param session Session +*/ +LEX_CSTRING srv_session_info_get_current_db(MYSQL_SESSION session); + +/** + Returns the client port of a session. + + @note The client port in SHOW PROCESSLIST, INFORMATION_SCHEMA.PROCESSLIST. + This port is NOT shown in PERFORMANCE_SCHEMA.THREADS. + + @param session Session +*/ +uint16_t srv_session_info_get_client_port(MYSQL_SESSION session); + +/** + Sets the client port of a session. + + @note The client port in SHOW PROCESSLIST, INFORMATION_SCHEMA.PROCESSLIST. + This port is NOT shown in PERFORMANCE_SCHEMA.THREADS. + + @param session Session + @param port Port number + + @return + 0 success + 1 failure +*/ +int srv_session_info_set_client_port(MYSQL_SESSION session, uint16_t port); + +/** + Sets the connection type of a session. + + @see enum_vio_type + + @note The type is shown in PERFORMANCE_SCHEMA.THREADS. The value is translated + from the enum to a string according to @see vio_type_names array + in vio/vio.c + + @note If NO_VIO_TYPE passed as type the call will fail. + + @return + 0 success + 1 failure +*/ +int srv_session_info_set_connection_type(MYSQL_SESSION session, + enum enum_vio_type type); + +/** + Returns whether the session was killed + + @param session Session + + @return + 0 not killed + 1 killed +*/ +int srv_session_info_killed(MYSQL_SESSION session); + +/** + Returns the number opened sessions in thread initialized by srv_session + service. +*/ +unsigned int srv_session_info_session_count(); + + +/** + Returns the number opened sessions in thread initialized by srv_session + service. + + @param plugin Pointer to the plugin structure, passed to the plugin over + the plugin init function. +*/ +unsigned int srv_session_info_thread_count(const void *plugin); + +#endif /* MYSQL_DYNAMIC_PLUGIN */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* MYSQL_SERVICE_SRV_SESSION_INFO_INCLUDED */ diff --git a/mysql/mysql/service_thd_alloc.h b/mysql/mysql/service_thd_alloc.h new file mode 100644 index 0000000..5a89026 --- /dev/null +++ b/mysql/mysql/service_thd_alloc.h @@ -0,0 +1,132 @@ +#ifndef MYSQL_SERVICE_THD_ALLOC_INCLUDED +/* Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + This service provdes functions to allocate memory in a connection local + memory pool. The memory allocated there will be automatically freed at the + end of the statement, don't use it for allocations that should live longer + than that. For short living allocations this is more efficient than + using my_malloc and friends, and automatic "garbage collection" allows not + to think about memory leaks. + + The pool is best for small to medium objects, don't use it for large + allocations - they are better served with my_malloc. +*/ + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +class THD; +#define MYSQL_THD THD* +#else +#define MYSQL_THD void* +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern struct thd_alloc_service_st { + void *(*thd_alloc_func)(MYSQL_THD, size_t); + void *(*thd_calloc_func)(MYSQL_THD, size_t); + char *(*thd_strdup_func)(MYSQL_THD, const char *); + char *(*thd_strmake_func)(MYSQL_THD, const char *, size_t); + void *(*thd_memdup_func)(MYSQL_THD, const void*, size_t); + MYSQL_LEX_STRING *(*thd_make_lex_string_func)(MYSQL_THD, MYSQL_LEX_STRING *, + const char *, size_t, int); +} *thd_alloc_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_alloc(thd,size) (thd_alloc_service->thd_alloc_func((thd), (size))) + +#define thd_calloc(thd,size) (thd_alloc_service->thd_calloc_func((thd), (size))) + +#define thd_strdup(thd,str) (thd_alloc_service->thd_strdup_func((thd), (str))) + +#define thd_strmake(thd,str,size) \ + (thd_alloc_service->thd_strmake_func((thd), (str), (size))) + +#define thd_memdup(thd,str,size) \ + (thd_alloc_service->thd_memdup_func((thd), (str), (size))) + +#define thd_make_lex_string(thd, lex_str, str, size, allocate_lex_string) \ + (thd_alloc_service->thd_make_lex_string_func((thd), (lex_str), (str), \ + (size), (allocate_lex_string))) + +#else + +/** + Allocate memory in the connection's local memory pool + + @details + When properly used in place of @c my_malloc(), this can significantly + improve concurrency. Don't use this or related functions to allocate + large chunks of memory. Use for temporary storage only. The memory + will be freed automatically at the end of the statement; no explicit + code is required to prevent memory leaks. + + @see alloc_root() +*/ +void *thd_alloc(MYSQL_THD thd, size_t size); +/** + @see thd_alloc() +*/ +void *thd_calloc(MYSQL_THD thd, size_t size); +/** + @see thd_alloc() +*/ +char *thd_strdup(MYSQL_THD thd, const char *str); +/** + @see thd_alloc() +*/ +char *thd_strmake(MYSQL_THD thd, const char *str, size_t size); +/** + @see thd_alloc() +*/ +void *thd_memdup(MYSQL_THD thd, const void* str, size_t size); + +/** + Create a LEX_STRING in this connection's local memory pool + + @param thd user thread connection handle + @param lex_str pointer to LEX_STRING object to be initialized + @param str initializer to be copied into lex_str + @param size length of str, in bytes + @param allocate_lex_string flag: if TRUE, allocate new LEX_STRING object, + instead of using lex_str value + @return NULL on failure, or pointer to the LEX_STRING object + + @see thd_alloc() +*/ +MYSQL_LEX_STRING *thd_make_lex_string(MYSQL_THD thd, MYSQL_LEX_STRING *lex_str, + const char *str, size_t size, + int allocate_lex_string); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_THD_ALLOC_INCLUDED +#endif + diff --git a/mysql/mysql/service_thd_wait.h b/mysql/mysql/service_thd_wait.h new file mode 100644 index 0000000..62f2ea4 --- /dev/null +++ b/mysql/mysql/service_thd_wait.h @@ -0,0 +1,114 @@ +/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQL_SERVICE_THD_WAIT_INCLUDED +#define MYSQL_SERVICE_THD_WAIT_INCLUDED + +/** + @file include/mysql/service_thd_wait.h + This service provides functions for plugins and storage engines to report + when they are going to sleep/stall. + + SYNOPSIS + thd_wait_begin() - call just before a wait begins + thd Thread object + Use NULL if the thd is NOT known. + wait_type Type of wait + 1 -- short wait (e.g. for mutex) + 2 -- medium wait (e.g. for disk io) + 3 -- large wait (e.g. for locked row/table) + NOTES + This is used by the threadpool to have better knowledge of which + threads that currently are actively running on CPUs. When a thread + reports that it's going to sleep/stall, the threadpool scheduler is + free to start another thread in the pool most likely. The expected wait + time is simply an indication of how long the wait is expected to + become, the real wait time could be very different. + + thd_wait_end() called immediately after the wait is complete + + thd_wait_end() MUST be called if thd_wait_begin() was called. + + Using thd_wait_...() service is optional but recommended. Using it will + improve performance as the thread pool will be more active at managing the + thread workload. +*/ + +#ifdef __cplusplus +class THD; +#define MYSQL_THD THD* +#else +#define MYSQL_THD void* +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + One should only report wait events that could potentially block for a + long time. A mutex wait is too short of an event to report. The reason + is that an event which is reported leads to a new thread starts + executing a query and this has a negative impact of usage of CPU caches + and thus the expected gain of starting a new thread must be higher than + the expected cost of lost performance due to starting a new thread. + + Good examples of events that should be reported are waiting for row locks + that could easily be for many milliseconds or even seconds and the same + holds true for global read locks, table locks and other meta data locks. + Another event of interest is going to sleep for an extended time. + + Note that user-level locks no longer use THD_WAIT_USER_LOCK wait type. + Since their implementation relies on metadata locks manager it uses + THD_WAIT_META_DATA_LOCK instead. +*/ +typedef enum _thd_wait_type_e { + THD_WAIT_SLEEP= 1, + THD_WAIT_DISKIO= 2, + THD_WAIT_ROW_LOCK= 3, + THD_WAIT_GLOBAL_LOCK= 4, + THD_WAIT_META_DATA_LOCK= 5, + THD_WAIT_TABLE_LOCK= 6, + THD_WAIT_USER_LOCK= 7, + THD_WAIT_BINLOG= 8, + THD_WAIT_GROUP_COMMIT= 9, + THD_WAIT_SYNC= 10, + THD_WAIT_LAST= 11 +} thd_wait_type; + +extern struct thd_wait_service_st { + void (*thd_wait_begin_func)(MYSQL_THD, int); + void (*thd_wait_end_func)(MYSQL_THD); +} *thd_wait_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_wait_begin(_THD, _WAIT_TYPE) \ + thd_wait_service->thd_wait_begin_func(_THD, _WAIT_TYPE) +#define thd_wait_end(_THD) thd_wait_service->thd_wait_end_func(_THD) + +#else + +void thd_wait_begin(MYSQL_THD thd, int wait_type); +void thd_wait_end(MYSQL_THD thd); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/mysql/mysql/service_thread_scheduler.h b/mysql/mysql/service_thread_scheduler.h new file mode 100644 index 0000000..832aff0 --- /dev/null +++ b/mysql/mysql/service_thread_scheduler.h @@ -0,0 +1,85 @@ +/* + Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef SERVICE_THREAD_SCHEDULER_INCLUDED +#define SERVICE_THREAD_SCHEDULER_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +struct Connection_handler_functions; +struct THD_event_functions; + +extern struct my_thread_scheduler_service { + int (*connection_handler_set)(struct Connection_handler_functions *, + struct THD_event_functions *); + int (*connection_handler_reset)(); +} *my_thread_scheduler_service; + + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_connection_handler_set(F, M) \ + my_thread_scheduler_service->connection_handler_set((F), (M)) +#define my_connection_handler_reset() \ + my_thread_scheduler_service->connection_handler_reset() + +#else + +/** + Instantiates Plugin_connection_handler based on the supplied + Conection_handler_functions and sets it as the current + connection handler. + + Also sets the THD_event_functions functions which will + be called by the server when e.g. begining a wait. + + Remembers the existing connection handler so that it can be restored later. + + @param chf struct with functions to be called when e.g. handling + new clients. + @param tef struct with functions to be called when events + (e.g. lock wait) happens. + + @note Both pointers (i.e. not the structs themselves) will be copied, + so the structs must not disappear. + + @note We don't support dynamically loading more than one connection handler. + + @retval 1 failure + @retval 0 success +*/ +int my_connection_handler_set(struct Connection_handler_functions *chf, + struct THD_event_functions *tef); + +/** + Destroys the current connection handler and restores the previous. + Should only be called after calling my_connection_handler_set(). + + @retval 1 failure + @retval 0 success +*/ +int my_connection_handler_reset(); + +#endif /* MYSQL_DYNAMIC_PLUGIN */ + +#ifdef __cplusplus +} +#endif + +#endif /* SERVICE_THREAD_SCHEDULER_INCLUDED */ diff --git a/mysql/mysql/services.h b/mysql/mysql/services.h new file mode 100644 index 0000000..8f3cca9 --- /dev/null +++ b/mysql/mysql/services.h @@ -0,0 +1,59 @@ +#ifndef MYSQL_SERVICES_INCLUDED +/* Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +/* + Out of extern because of inclusion of files which include my_compiler.h + which in turn complains about C-linkage of templates. + service_srv_session.h and service_command.h use proper extern "C" for + their exported symbols. +*/ +#ifndef EMBEDDED_LIBRARY +#include +#include +#include +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +#include +#endif + +#define MYSQL_SERVICES_INCLUDED +#endif /* MYSQL_SERVICES_INCLUDED */ diff --git a/mysql/mysql_com.h b/mysql/mysql_com.h new file mode 100644 index 0000000..d864d07 --- /dev/null +++ b/mysql/mysql_com.h @@ -0,0 +1,614 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* +** Common definition between mysql server & client +*/ + +#ifndef _mysql_com_h +#define _mysql_com_h +#include "binary_log_types.h" +#include "my_command.h" +#define HOSTNAME_LENGTH 60 +#define SYSTEM_CHARSET_MBMAXLEN 3 +#define FILENAME_CHARSET_MBMAXLEN 5 +#define NAME_CHAR_LEN 64 /* Field/table name length */ +#define USERNAME_CHAR_LENGTH 32 +#define USERNAME_CHAR_LENGTH_STR "32" +#ifndef NAME_LEN +#define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN) +#endif +#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXLEN) +#define CONNECT_STRING_MAXLEN 1024 + +#define MYSQL_AUTODETECT_CHARSET_NAME "auto" + +#define SERVER_VERSION_LENGTH 60 +#define SQLSTATE_LENGTH 5 + +/* + Maximum length of comments +*/ +#define TABLE_COMMENT_INLINE_MAXLEN 180 /* pre 6.0: 60 characters */ +#define TABLE_COMMENT_MAXLEN 2048 +#define COLUMN_COMMENT_MAXLEN 1024 +#define INDEX_COMMENT_MAXLEN 1024 +#define TABLE_PARTITION_COMMENT_MAXLEN 1024 + +/* + Maximum length of protocol packet. + OK packet length limit also restricted to this value as any length greater + than this value will have first byte of OK packet to be 254 thus does not + provide a means to identify if this is OK or EOF packet. +*/ +#define MAX_PACKET_LENGTH (256L*256L*256L-1) + +/* + USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain + username and hostname parts of the user identifier with trailing zero in + MySQL standard format: + user_name_part@host_name_part\0 +*/ +#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2 + +#define LOCAL_HOST "localhost" +#define LOCAL_HOST_NAMEDPIPE "." + + +#if defined(_WIN32) +#define MYSQL_NAMEDPIPE "MySQL" +#define MYSQL_SERVICENAME "MySQL" +#endif /* _WIN32 */ + +/* The length of the header part for each generated column in the .frm file. */ +#define FRM_GCOL_HEADER_SIZE 4 +/* + Maximum length of the expression statement defined for generated columns. +*/ +#define GENERATED_COLUMN_EXPRESSION_MAXLEN 65535 - FRM_GCOL_HEADER_SIZE +/* + Length of random string sent by server on handshake; this is also length of + obfuscated password, received from client +*/ +#define SCRAMBLE_LENGTH 20 +#define AUTH_PLUGIN_DATA_PART_1_LENGTH 8 +/* length of password stored in the db: new passwords are preceeded with '*' */ +#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1) + + +#define NOT_NULL_FLAG 1 /* Field can't be NULL */ +#define PRI_KEY_FLAG 2 /* Field is part of a primary key */ +#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */ +#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */ +#define BLOB_FLAG 16 /* Field is a blob */ +#define UNSIGNED_FLAG 32 /* Field is unsigned */ +#define ZEROFILL_FLAG 64 /* Field is zerofill */ +#define BINARY_FLAG 128 /* Field is binary */ + +/* The following are only sent to new clients */ +#define ENUM_FLAG 256 /* field is an enum */ +#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */ +#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ +#define SET_FLAG 2048 /* field is a set */ +#define NO_DEFAULT_VALUE_FLAG 4096 /* Field doesn't have default value */ +#define ON_UPDATE_NOW_FLAG 8192 /* Field is set to NOW on UPDATE */ +#define NUM_FLAG 32768 /* Field is num (for clients) */ +#define PART_KEY_FLAG 16384 /* Intern; Part of some key */ +#define GROUP_FLAG 32768 /* Intern: Group field */ +#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */ +#define BINCMP_FLAG 131072 /* Intern: Used by sql_yacc */ +#define GET_FIXED_FIELDS_FLAG (1 << 18) /* Used to get fields in item tree */ +#define FIELD_IN_PART_FUNC_FLAG (1 << 19)/* Field part of partition func */ +/** + Intern: Field in TABLE object for new version of altered table, + which participates in a newly added index. +*/ +#define FIELD_IN_ADD_INDEX (1 << 20) +#define FIELD_IS_RENAMED (1<< 21) /* Intern: Field is being renamed */ +#define FIELD_FLAGS_STORAGE_MEDIA 22 /* Field storage media, bit 22-23 */ +#define FIELD_FLAGS_STORAGE_MEDIA_MASK (3 << FIELD_FLAGS_STORAGE_MEDIA) +#define FIELD_FLAGS_COLUMN_FORMAT 24 /* Field column format, bit 24-25 */ +#define FIELD_FLAGS_COLUMN_FORMAT_MASK (3 << FIELD_FLAGS_COLUMN_FORMAT) +#define FIELD_IS_DROPPED (1<< 26) /* Intern: Field is being dropped */ +#define EXPLICIT_NULL_FLAG (1<< 27) /* Field is explicitly specified as + NULL by the user */ + +#define REFRESH_GRANT 1 /* Refresh grant tables */ +#define REFRESH_LOG 2 /* Start on new log file */ +#define REFRESH_TABLES 4 /* close all tables */ +#define REFRESH_HOSTS 8 /* Flush host cache */ +#define REFRESH_STATUS 16 /* Flush status variables */ +#define REFRESH_THREADS 32 /* Flush thread cache */ +#define REFRESH_SLAVE 64 /* Reset master info and restart slave + thread */ +#define REFRESH_MASTER 128 /* Remove all bin logs in the index + and truncate the index */ +#define REFRESH_ERROR_LOG 256 /* Rotate only the erorr log */ +#define REFRESH_ENGINE_LOG 512 /* Flush all storage engine logs */ +#define REFRESH_BINARY_LOG 1024 /* Flush the binary log */ +#define REFRESH_RELAY_LOG 2048 /* Flush the relay log */ +#define REFRESH_GENERAL_LOG 4096 /* Flush the general log */ +#define REFRESH_SLOW_LOG 8192 /* Flush the slow query log */ + +/* The following can't be set with mysql_refresh() */ +#define REFRESH_READ_LOCK 16384 /* Lock tables for read */ +#define REFRESH_FAST 32768 /* Intern flag */ + +/* RESET (remove all queries) from query cache */ +#define REFRESH_QUERY_CACHE 65536 +#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */ +#define REFRESH_DES_KEY_FILE 0x40000L +#define REFRESH_USER_RESOURCES 0x80000L +#define REFRESH_FOR_EXPORT 0x100000L /* FLUSH TABLES ... FOR EXPORT */ +#define REFRESH_OPTIMIZER_COSTS 0x200000L /* FLUSH OPTIMIZER_COSTS */ + +#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ +#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ +#define CLIENT_LONG_FLAG 4 /* Get all column flags */ +#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ +#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ +#define CLIENT_COMPRESS 32 /* Can use compression protocol */ +#define CLIENT_ODBC 64 /* Odbc client */ +#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ +#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ +#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ +#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ +#define CLIENT_SSL 2048 /* Switch to SSL after handshake */ +#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ +#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ +#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ +#define CLIENT_RESERVED2 32768 /* Old flag for 4.1 authentication */ +#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */ +#define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */ +#define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */ + +#define CLIENT_PLUGIN_AUTH (1UL << 19) /* Client supports plugin authentication */ +#define CLIENT_CONNECT_ATTRS (1UL << 20) /* Client supports connection attributes */ + +/* Enable authentication response packet to be larger than 255 bytes. */ +#define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21) + +/* Don't close the connection for a connection with expired password. */ +#define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22) + +/** + Capable of handling server state change information. Its a hint to the + server to include the state change information in Ok packet. +*/ +#define CLIENT_SESSION_TRACK (1UL << 23) +/* Client no longer needs EOF packet */ +#define CLIENT_DEPRECATE_EOF (1UL << 24) + +#define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30) +#define CLIENT_REMEMBER_OPTIONS (1UL << 31) + +#ifdef HAVE_COMPRESS +#define CAN_CLIENT_COMPRESS CLIENT_COMPRESS +#else +#define CAN_CLIENT_COMPRESS 0 +#endif + +/* Gather all possible capabilites (flags) supported by the server */ +#define CLIENT_ALL_FLAGS (CLIENT_LONG_PASSWORD \ + | CLIENT_FOUND_ROWS \ + | CLIENT_LONG_FLAG \ + | CLIENT_CONNECT_WITH_DB \ + | CLIENT_NO_SCHEMA \ + | CLIENT_COMPRESS \ + | CLIENT_ODBC \ + | CLIENT_LOCAL_FILES \ + | CLIENT_IGNORE_SPACE \ + | CLIENT_PROTOCOL_41 \ + | CLIENT_INTERACTIVE \ + | CLIENT_SSL \ + | CLIENT_IGNORE_SIGPIPE \ + | CLIENT_TRANSACTIONS \ + | CLIENT_RESERVED \ + | CLIENT_RESERVED2 \ + | CLIENT_MULTI_STATEMENTS \ + | CLIENT_MULTI_RESULTS \ + | CLIENT_PS_MULTI_RESULTS \ + | CLIENT_SSL_VERIFY_SERVER_CERT \ + | CLIENT_REMEMBER_OPTIONS \ + | CLIENT_PLUGIN_AUTH \ + | CLIENT_CONNECT_ATTRS \ + | CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA \ + | CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS \ + | CLIENT_SESSION_TRACK \ + | CLIENT_DEPRECATE_EOF \ +) + +/* + Switch off the flags that are optional and depending on build flags + If any of the optional flags is supported by the build it will be switched + on before sending to the client during the connection handshake. +*/ +#define CLIENT_BASIC_FLAGS (((CLIENT_ALL_FLAGS & ~CLIENT_SSL) \ + & ~CLIENT_COMPRESS) \ + & ~CLIENT_SSL_VERIFY_SERVER_CERT) + +/** + Is raised when a multi-statement transaction + has been started, either explicitly, by means + of BEGIN or COMMIT AND CHAIN, or + implicitly, by the first transactional + statement, when autocommit=off. +*/ +#define SERVER_STATUS_IN_TRANS 1 +#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ +#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ +#define SERVER_QUERY_NO_GOOD_INDEX_USED 16 +#define SERVER_QUERY_NO_INDEX_USED 32 +/** + The server was able to fulfill the clients request and opened a + read-only non-scrollable cursor for a query. This flag comes + in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. +*/ +#define SERVER_STATUS_CURSOR_EXISTS 64 +/** + This flag is sent when a read-only cursor is exhausted, in reply to + COM_STMT_FETCH command. +*/ +#define SERVER_STATUS_LAST_ROW_SENT 128 +#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ +#define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512 +/** + Sent to the client if after a prepared statement reprepare + we discovered that the new statement returns a different + number of result set columns. +*/ +#define SERVER_STATUS_METADATA_CHANGED 1024 +#define SERVER_QUERY_WAS_SLOW 2048 + +/** + To mark ResultSet containing output parameter values. +*/ +#define SERVER_PS_OUT_PARAMS 4096 + +/** + Set at the same time as SERVER_STATUS_IN_TRANS if the started + multi-statement transaction is a read-only transaction. Cleared + when the transaction commits or aborts. Since this flag is sent + to clients in OK and EOF packets, the flag indicates the + transaction status at the end of command execution. +*/ +#define SERVER_STATUS_IN_TRANS_READONLY 8192 + +/** + This status flag, when on, implies that one of the state information has + changed on the server because of the execution of the last statement. +*/ +#define SERVER_SESSION_STATE_CHANGED (1UL << 14) + +/** + Server status flags that must be cleared when starting + execution of a new SQL statement. + Flags from this set are only added to the + current server status by the execution engine, but + never removed -- the execution engine expects them + to disappear automagically by the next command. +*/ +#define SERVER_STATUS_CLEAR_SET (SERVER_QUERY_NO_GOOD_INDEX_USED| \ + SERVER_QUERY_NO_INDEX_USED|\ + SERVER_MORE_RESULTS_EXISTS|\ + SERVER_STATUS_METADATA_CHANGED |\ + SERVER_QUERY_WAS_SLOW |\ + SERVER_STATUS_DB_DROPPED |\ + SERVER_STATUS_CURSOR_EXISTS|\ + SERVER_STATUS_LAST_ROW_SENT|\ + SERVER_SESSION_STATE_CHANGED) + +#define MYSQL_ERRMSG_SIZE 512 +#define NET_READ_TIMEOUT 30 /* Timeout on read */ +#define NET_WRITE_TIMEOUT 60 /* Timeout on write */ +#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */ + +#define ONLY_KILL_QUERY 1 + + +struct st_vio; /* Only C */ +typedef struct st_vio Vio; + +#define MAX_TINYINT_WIDTH 3 /* Max width for a TINY w.o. sign */ +#define MAX_SMALLINT_WIDTH 5 /* Max width for a SHORT w.o. sign */ +#define MAX_MEDIUMINT_WIDTH 8 /* Max width for a INT24 w.o. sign */ +#define MAX_INT_WIDTH 10 /* Max width for a LONG w.o. sign */ +#define MAX_BIGINT_WIDTH 20 /* Max width for a LONGLONG */ +#define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */ +#define MAX_BLOB_WIDTH 16777216 /* Default width for blob */ + +typedef struct st_net { + Vio *vio; + unsigned char *buff,*buff_end,*write_pos,*read_pos; + my_socket fd; /* For Perl DBI/dbd */ + /* + The following variable is set if we are doing several queries in one + command ( as in LOAD TABLE ... FROM MASTER ), + and do not want to confuse the client with OK at the wrong time + */ + unsigned long remain_in_buf,length, buf_length, where_b; + unsigned long max_packet,max_packet_size; + unsigned int pkt_nr,compress_pkt_nr; + unsigned int write_timeout, read_timeout, retry_count; + int fcntl; + unsigned int *return_status; + unsigned char reading_or_writing; + char save_char; + my_bool unused1; /* Please remove with the next incompatible ABI change */ + my_bool unused2; /* Please remove with the next incompatible ABI change */ + my_bool compress; + my_bool unused3; /* Please remove with the next incompatible ABI change. */ + /* + Pointer to query object in query cache, do not equal NULL (0) for + queries in cache that have not stored its results yet + */ + /* + Unused, please remove with the next incompatible ABI change. + */ + unsigned char *unused; + unsigned int last_errno; + unsigned char error; + my_bool unused4; /* Please remove with the next incompatible ABI change. */ + my_bool unused5; /* Please remove with the next incompatible ABI change. */ + /** Client library error message buffer. Actually belongs to struct MYSQL. */ + char last_error[MYSQL_ERRMSG_SIZE]; + /** Client library sqlstate buffer. Set along with the error message. */ + char sqlstate[SQLSTATE_LENGTH+1]; + /** + Extension pointer, for the caller private use. + Any program linking with the networking library can use this pointer, + which is handy when private connection specific data needs to be + maintained. + The mysqld server process uses this pointer internally, + to maintain the server internal instrumentation for the connection. + */ + void *extension; +} NET; + + +#define packet_error (~(unsigned long) 0) +/* For backward compatibility */ +#define CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS +#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL +#define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL +#define FIELD_TYPE_TINY MYSQL_TYPE_TINY +#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT +#define FIELD_TYPE_LONG MYSQL_TYPE_LONG +#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT +#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE +#define FIELD_TYPE_NULL MYSQL_TYPE_NULL +#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP +#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG +#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 +#define FIELD_TYPE_DATE MYSQL_TYPE_DATE +#define FIELD_TYPE_TIME MYSQL_TYPE_TIME +#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME +#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR +#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE +#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM +#define FIELD_TYPE_SET MYSQL_TYPE_SET +#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB +#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB +#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB +#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB +#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING +#define FIELD_TYPE_STRING MYSQL_TYPE_STRING +#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY +#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM +#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY +#define FIELD_TYPE_BIT MYSQL_TYPE_BIT + + +/* Shutdown/kill enums and constants */ + +/* Bits for THD::killable. */ +#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0) +#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1) +#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2) +#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3) + +enum mysql_enum_shutdown_level { + /* + We want levels to be in growing order of hardness (because we use number + comparisons). Note that DEFAULT does not respect the growing property, but + it's ok. + */ + SHUTDOWN_DEFAULT = 0, + /* wait for existing connections to finish */ + SHUTDOWN_WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT, + /* wait for existing trans to finish */ + SHUTDOWN_WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS, + /* wait for existing updates to finish (=> no partial MyISAM update) */ + SHUTDOWN_WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE, + /* flush InnoDB buffers and other storage engines' buffers*/ + SHUTDOWN_WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1), + /* don't flush InnoDB buffers, flush other storage engines' buffers*/ + SHUTDOWN_WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1, + /* Now the 2 levels of the KILL command */ + KILL_QUERY= 254, + KILL_CONNECTION= 255 +}; + + +enum enum_cursor_type +{ + CURSOR_TYPE_NO_CURSOR= 0, + CURSOR_TYPE_READ_ONLY= 1, + CURSOR_TYPE_FOR_UPDATE= 2, + CURSOR_TYPE_SCROLLABLE= 4 +}; + + +/* options for mysql_set_option */ +enum enum_mysql_set_option +{ + MYSQL_OPTION_MULTI_STATEMENTS_ON, + MYSQL_OPTION_MULTI_STATEMENTS_OFF +}; + +/* + Type of state change information that the server can include in the Ok + packet. + Note : 1) session_state_type shouldn't go past 255 (i.e. 1-byte boundary). + 2) Modify the definition of SESSION_TRACK_END when a new member is + added. +*/ +enum enum_session_state_type +{ + SESSION_TRACK_SYSTEM_VARIABLES, /* Session system variables */ + SESSION_TRACK_SCHEMA, /* Current schema */ + SESSION_TRACK_STATE_CHANGE, /* track session state changes */ + SESSION_TRACK_GTIDS, + SESSION_TRACK_TRANSACTION_CHARACTERISTICS, /* Transaction chistics */ + SESSION_TRACK_TRANSACTION_STATE /* Transaction state */ +}; + +#define SESSION_TRACK_BEGIN SESSION_TRACK_SYSTEM_VARIABLES + +#define SESSION_TRACK_END SESSION_TRACK_TRANSACTION_STATE + +#define IS_SESSION_STATE_TYPE(T) \ + (((int)(T) >= SESSION_TRACK_BEGIN) && ((T) <= SESSION_TRACK_END)) + +#define net_new_transaction(net) ((net)->pkt_nr=0) + +#ifdef __cplusplus +extern "C" { +#endif + +my_bool my_net_init(NET *net, Vio* vio); +void my_net_local_init(NET *net); +void net_end(NET *net); +void net_clear(NET *net, my_bool check_buffer); +void net_claim_memory_ownership(NET *net); +my_bool net_realloc(NET *net, size_t length); +my_bool net_flush(NET *net); +my_bool my_net_write(NET *net,const unsigned char *packet, size_t len); +my_bool net_write_command(NET *net,unsigned char command, + const unsigned char *header, size_t head_len, + const unsigned char *packet, size_t len); +my_bool net_write_packet(NET *net, const unsigned char *packet, size_t length); +unsigned long my_net_read(NET *net); + +#ifdef MY_GLOBAL_INCLUDED +void my_net_set_write_timeout(NET *net, uint timeout); +void my_net_set_read_timeout(NET *net, uint timeout); +#endif + +struct rand_struct { + unsigned long seed1,seed2,max_value; + double max_value_dbl; +}; + +#ifdef __cplusplus +} +#endif + + /* The following is for user defined functions */ + +enum Item_result {STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, + DECIMAL_RESULT}; + +typedef struct st_udf_args +{ + unsigned int arg_count; /* Number of arguments */ + enum Item_result *arg_type; /* Pointer to item_results */ + char **args; /* Pointer to argument */ + unsigned long *lengths; /* Length of string arguments */ + char *maybe_null; /* Set to 1 for all maybe_null args */ + char **attributes; /* Pointer to attribute name */ + unsigned long *attribute_lengths; /* Length of attribute arguments */ + void *extension; +} UDF_ARGS; + + /* This holds information about the result */ + +typedef struct st_udf_init +{ + my_bool maybe_null; /* 1 if function can return NULL */ + unsigned int decimals; /* for real functions */ + unsigned long max_length; /* For string functions */ + char *ptr; /* free pointer for function data */ + my_bool const_item; /* 1 if function always returns the same value */ + void *extension; +} UDF_INIT; +/* + TODO: add a notion for determinism of the UDF. + See Item_udf_func::update_used_tables () +*/ + + /* Constants when using compression */ +#define NET_HEADER_SIZE 4 /* standard header size */ +#define COMP_HEADER_SIZE 3 /* compression header extra size */ + + /* Prototypes to password functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + These functions are used for authentication by client and server and + implemented in sql/password.c +*/ + +void randominit(struct rand_struct *, unsigned long seed1, + unsigned long seed2); +double my_rnd(struct rand_struct *); +void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st); + +void hash_password(unsigned long *to, const char *password, unsigned int password_len); +void make_scrambled_password_323(char *to, const char *password); +void scramble_323(char *to, const char *message, const char *password); +my_bool check_scramble_323(const unsigned char *reply, const char *message, + unsigned long *salt); +void get_salt_from_password_323(unsigned long *res, const char *password); +void make_password_from_salt_323(char *to, const unsigned long *salt); + +void make_scrambled_password(char *to, const char *password); +void scramble(char *to, const char *message, const char *password); +my_bool check_scramble(const unsigned char *reply, const char *message, + const unsigned char *hash_stage2); +void get_salt_from_password(unsigned char *res, const char *password); +void make_password_from_salt(char *to, const unsigned char *hash_stage2); +char *octet2hex(char *to, const char *str, unsigned int len); + +/* end of password.c */ + +char *get_tty_password(const char *opt_message); +const char *mysql_errno_to_sqlstate(unsigned int mysql_errno); + +/* Some other useful functions */ + +my_bool my_thread_init(void); +void my_thread_end(void); + +#ifdef MY_GLOBAL_INCLUDED +ulong STDCALL net_field_length(uchar **packet); +my_ulonglong net_field_length_ll(uchar **packet); +uchar *net_store_length(uchar *pkg, ulonglong length); +unsigned int net_length_size(ulonglong num); +#endif + +#ifdef __cplusplus +} +#endif + +#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ +#define MYSQL_STMT_HEADER 4 +#define MYSQL_LONG_DATA_HEADER 6 + +#define NOT_FIXED_DEC 31 +#endif diff --git a/mysql/mysql_time.h b/mysql/mysql_time.h new file mode 100644 index 0000000..ac9719c --- /dev/null +++ b/mysql/mysql_time.h @@ -0,0 +1,55 @@ +/* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#ifndef _mysql_time_h_ +#define _mysql_time_h_ + +/* + Time declarations shared between the server and client API: + you should not add anything to this header unless it's used + (and hence should be visible) in mysql.h. + If you're looking for a place to add new time-related declaration, + it's most likely my_time.h. See also "C API Handling of Date + and Time Values" chapter in documentation. +*/ + +enum enum_mysql_timestamp_type +{ + MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, + MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2 +}; + + +/* + Structure which is used to represent datetime values inside MySQL. + + We assume that values in this structure are normalized, i.e. year <= 9999, + month <= 12, day <= 31, hour <= 23, hour <= 59, hour <= 59. Many functions + in server such as my_system_gmt_sec() or make_time() family of functions + rely on this (actually now usage of make_*() family relies on a bit weaker + restriction). Also functions that produce MYSQL_TIME as result ensure this. + There is one exception to this rule though if this structure holds time + value (time_type == MYSQL_TIMESTAMP_TIME) days and hour member can hold + bigger values. +*/ +typedef struct st_mysql_time +{ + unsigned int year, month, day, hour, minute, second; + unsigned long second_part; /**< microseconds */ + my_bool neg; + enum enum_mysql_timestamp_type time_type; +} MYSQL_TIME; + +#endif /* _mysql_time_h_ */ diff --git a/mysql/mysql_version.h b/mysql/mysql_version.h new file mode 100644 index 0000000..45fe511 --- /dev/null +++ b/mysql/mysql_version.h @@ -0,0 +1,7 @@ +/* + * file : mysql/mysql_version.h + * copyright : Copyright (c) 2016-2017 Code Synthesis Ltd + * license : GPLv2 with FOSS License Exception; see accompanying COPYING file + */ + +#include diff --git a/mysql/mysql_version.h.in.orig b/mysql/mysql_version.h.in.orig new file mode 100644 index 0000000..7c6fccd --- /dev/null +++ b/mysql/mysql_version.h.in.orig @@ -0,0 +1,30 @@ +/* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB + & Detron HB, 1996, 1999-2004, 2007 MySQL AB. + This file is public domain and comes with NO WARRANTY of any kind +*/ + +/* Version numbers for protocol & mysqld */ + +#ifndef _mysql_version_h +#define _mysql_version_h + +#define PROTOCOL_VERSION @PROTOCOL_VERSION@ +#define MYSQL_SERVER_VERSION "@VERSION@" +#define MYSQL_BASE_VERSION "mysqld-@MYSQL_BASE_VERSION@" +#define MYSQL_SERVER_SUFFIX_DEF "@MYSQL_SERVER_SUFFIX@" +#define FRM_VER @DOT_FRM_VERSION@ +#define MYSQL_VERSION_ID @MYSQL_VERSION_ID@ +#define MYSQL_PORT @MYSQL_TCP_PORT@ +#define MYSQL_PORT_DEFAULT @MYSQL_TCP_PORT_DEFAULT@ +#define MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@" +#define MYSQL_CONFIG_NAME "my" +#define MYSQL_COMPILATION_COMMENT "@COMPILATION_COMMENT@" +#define LIBMYSQL_VERSION "@VERSION@" +#define LIBMYSQL_VERSION_ID @MYSQL_VERSION_ID@ +#define SYS_SCHEMA_VERSION "@SYS_SCHEMA_VERSION@" + +#ifndef LICENSE +#define LICENSE GPL +#endif /* LICENSE */ + +#endif /* _mysql_version_h */ diff --git a/mysql/mysqld_error.h b/mysql/mysqld_error.h new file mode 100644 index 0000000..92c8fa6 --- /dev/null +++ b/mysql/mysqld_error.h @@ -0,0 +1,1095 @@ +/* Autogenerated file, please don't edit */ + +#ifndef MYSQLD_ERROR_INCLUDED +#define MYSQLD_ERROR_INCLUDED + +static const int errmsg_section_start[] = { 1000, 3000 }; +static const int errmsg_section_size[] = { 886, 200 }; + +#define ER_HASHCHK 1000 +#define ER_NISAMCHK 1001 +#define ER_NO 1002 +#define ER_YES 1003 +#define ER_CANT_CREATE_FILE 1004 +#define ER_CANT_CREATE_TABLE 1005 +#define ER_CANT_CREATE_DB 1006 +#define ER_DB_CREATE_EXISTS 1007 +#define ER_DB_DROP_EXISTS 1008 +#define ER_DB_DROP_DELETE 1009 +#define ER_DB_DROP_RMDIR 1010 +#define ER_CANT_DELETE_FILE 1011 +#define ER_CANT_FIND_SYSTEM_REC 1012 +#define ER_CANT_GET_STAT 1013 +#define ER_CANT_GET_WD 1014 +#define ER_CANT_LOCK 1015 +#define ER_CANT_OPEN_FILE 1016 +#define ER_FILE_NOT_FOUND 1017 +#define ER_CANT_READ_DIR 1018 +#define ER_CANT_SET_WD 1019 +#define ER_CHECKREAD 1020 +#define ER_DISK_FULL 1021 +#define ER_DUP_KEY 1022 +#define ER_ERROR_ON_CLOSE 1023 +#define ER_ERROR_ON_READ 1024 +#define ER_ERROR_ON_RENAME 1025 +#define ER_ERROR_ON_WRITE 1026 +#define ER_FILE_USED 1027 +#define ER_FILSORT_ABORT 1028 +#define ER_FORM_NOT_FOUND 1029 +#define ER_GET_ERRNO 1030 +#define ER_ILLEGAL_HA 1031 +#define ER_KEY_NOT_FOUND 1032 +#define ER_NOT_FORM_FILE 1033 +#define ER_NOT_KEYFILE 1034 +#define ER_OLD_KEYFILE 1035 +#define ER_OPEN_AS_READONLY 1036 +#define ER_OUTOFMEMORY 1037 +#define ER_OUT_OF_SORTMEMORY 1038 +#define ER_UNEXPECTED_EOF 1039 +#define ER_CON_COUNT_ERROR 1040 +#define ER_OUT_OF_RESOURCES 1041 +#define ER_BAD_HOST_ERROR 1042 +#define ER_HANDSHAKE_ERROR 1043 +#define ER_DBACCESS_DENIED_ERROR 1044 +#define ER_ACCESS_DENIED_ERROR 1045 +#define ER_NO_DB_ERROR 1046 +#define ER_UNKNOWN_COM_ERROR 1047 +#define ER_BAD_NULL_ERROR 1048 +#define ER_BAD_DB_ERROR 1049 +#define ER_TABLE_EXISTS_ERROR 1050 +#define ER_BAD_TABLE_ERROR 1051 +#define ER_NON_UNIQ_ERROR 1052 +#define ER_SERVER_SHUTDOWN 1053 +#define ER_BAD_FIELD_ERROR 1054 +#define ER_WRONG_FIELD_WITH_GROUP 1055 +#define ER_WRONG_GROUP_FIELD 1056 +#define ER_WRONG_SUM_SELECT 1057 +#define ER_WRONG_VALUE_COUNT 1058 +#define ER_TOO_LONG_IDENT 1059 +#define ER_DUP_FIELDNAME 1060 +#define ER_DUP_KEYNAME 1061 +#define ER_DUP_ENTRY 1062 +#define ER_WRONG_FIELD_SPEC 1063 +#define ER_PARSE_ERROR 1064 +#define ER_EMPTY_QUERY 1065 +#define ER_NONUNIQ_TABLE 1066 +#define ER_INVALID_DEFAULT 1067 +#define ER_MULTIPLE_PRI_KEY 1068 +#define ER_TOO_MANY_KEYS 1069 +#define ER_TOO_MANY_KEY_PARTS 1070 +#define ER_TOO_LONG_KEY 1071 +#define ER_KEY_COLUMN_DOES_NOT_EXITS 1072 +#define ER_BLOB_USED_AS_KEY 1073 +#define ER_TOO_BIG_FIELDLENGTH 1074 +#define ER_WRONG_AUTO_KEY 1075 +#define ER_READY 1076 +#define ER_NORMAL_SHUTDOWN 1077 +#define ER_GOT_SIGNAL 1078 +#define ER_SHUTDOWN_COMPLETE 1079 +#define ER_FORCING_CLOSE 1080 +#define ER_IPSOCK_ERROR 1081 +#define ER_NO_SUCH_INDEX 1082 +#define ER_WRONG_FIELD_TERMINATORS 1083 +#define ER_BLOBS_AND_NO_TERMINATED 1084 +#define ER_TEXTFILE_NOT_READABLE 1085 +#define ER_FILE_EXISTS_ERROR 1086 +#define ER_LOAD_INFO 1087 +#define ER_ALTER_INFO 1088 +#define ER_WRONG_SUB_KEY 1089 +#define ER_CANT_REMOVE_ALL_FIELDS 1090 +#define ER_CANT_DROP_FIELD_OR_KEY 1091 +#define ER_INSERT_INFO 1092 +#define ER_UPDATE_TABLE_USED 1093 +#define ER_NO_SUCH_THREAD 1094 +#define ER_KILL_DENIED_ERROR 1095 +#define ER_NO_TABLES_USED 1096 +#define ER_TOO_BIG_SET 1097 +#define ER_NO_UNIQUE_LOGFILE 1098 +#define ER_TABLE_NOT_LOCKED_FOR_WRITE 1099 +#define ER_TABLE_NOT_LOCKED 1100 +#define ER_BLOB_CANT_HAVE_DEFAULT 1101 +#define ER_WRONG_DB_NAME 1102 +#define ER_WRONG_TABLE_NAME 1103 +#define ER_TOO_BIG_SELECT 1104 +#define ER_UNKNOWN_ERROR 1105 +#define ER_UNKNOWN_PROCEDURE 1106 +#define ER_WRONG_PARAMCOUNT_TO_PROCEDURE 1107 +#define ER_WRONG_PARAMETERS_TO_PROCEDURE 1108 +#define ER_UNKNOWN_TABLE 1109 +#define ER_FIELD_SPECIFIED_TWICE 1110 +#define ER_INVALID_GROUP_FUNC_USE 1111 +#define ER_UNSUPPORTED_EXTENSION 1112 +#define ER_TABLE_MUST_HAVE_COLUMNS 1113 +#define ER_RECORD_FILE_FULL 1114 +#define ER_UNKNOWN_CHARACTER_SET 1115 +#define ER_TOO_MANY_TABLES 1116 +#define ER_TOO_MANY_FIELDS 1117 +#define ER_TOO_BIG_ROWSIZE 1118 +#define ER_STACK_OVERRUN 1119 +#define ER_WRONG_OUTER_JOIN 1120 +#define ER_NULL_COLUMN_IN_INDEX 1121 +#define ER_CANT_FIND_UDF 1122 +#define ER_CANT_INITIALIZE_UDF 1123 +#define ER_UDF_NO_PATHS 1124 +#define ER_UDF_EXISTS 1125 +#define ER_CANT_OPEN_LIBRARY 1126 +#define ER_CANT_FIND_DL_ENTRY 1127 +#define ER_FUNCTION_NOT_DEFINED 1128 +#define ER_HOST_IS_BLOCKED 1129 +#define ER_HOST_NOT_PRIVILEGED 1130 +#define ER_PASSWORD_ANONYMOUS_USER 1131 +#define ER_PASSWORD_NOT_ALLOWED 1132 +#define ER_PASSWORD_NO_MATCH 1133 +#define ER_UPDATE_INFO 1134 +#define ER_CANT_CREATE_THREAD 1135 +#define ER_WRONG_VALUE_COUNT_ON_ROW 1136 +#define ER_CANT_REOPEN_TABLE 1137 +#define ER_INVALID_USE_OF_NULL 1138 +#define ER_REGEXP_ERROR 1139 +#define ER_MIX_OF_GROUP_FUNC_AND_FIELDS 1140 +#define ER_NONEXISTING_GRANT 1141 +#define ER_TABLEACCESS_DENIED_ERROR 1142 +#define ER_COLUMNACCESS_DENIED_ERROR 1143 +#define ER_ILLEGAL_GRANT_FOR_TABLE 1144 +#define ER_GRANT_WRONG_HOST_OR_USER 1145 +#define ER_NO_SUCH_TABLE 1146 +#define ER_NONEXISTING_TABLE_GRANT 1147 +#define ER_NOT_ALLOWED_COMMAND 1148 +#define ER_SYNTAX_ERROR 1149 +#define ER_UNUSED1 1150 +#define ER_UNUSED2 1151 +#define ER_ABORTING_CONNECTION 1152 +#define ER_NET_PACKET_TOO_LARGE 1153 +#define ER_NET_READ_ERROR_FROM_PIPE 1154 +#define ER_NET_FCNTL_ERROR 1155 +#define ER_NET_PACKETS_OUT_OF_ORDER 1156 +#define ER_NET_UNCOMPRESS_ERROR 1157 +#define ER_NET_READ_ERROR 1158 +#define ER_NET_READ_INTERRUPTED 1159 +#define ER_NET_ERROR_ON_WRITE 1160 +#define ER_NET_WRITE_INTERRUPTED 1161 +#define ER_TOO_LONG_STRING 1162 +#define ER_TABLE_CANT_HANDLE_BLOB 1163 +#define ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 1164 +#define ER_UNUSED3 1165 +#define ER_WRONG_COLUMN_NAME 1166 +#define ER_WRONG_KEY_COLUMN 1167 +#define ER_WRONG_MRG_TABLE 1168 +#define ER_DUP_UNIQUE 1169 +#define ER_BLOB_KEY_WITHOUT_LENGTH 1170 +#define ER_PRIMARY_CANT_HAVE_NULL 1171 +#define ER_TOO_MANY_ROWS 1172 +#define ER_REQUIRES_PRIMARY_KEY 1173 +#define ER_NO_RAID_COMPILED 1174 +#define ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE 1175 +#define ER_KEY_DOES_NOT_EXITS 1176 +#define ER_CHECK_NO_SUCH_TABLE 1177 +#define ER_CHECK_NOT_IMPLEMENTED 1178 +#define ER_CANT_DO_THIS_DURING_AN_TRANSACTION 1179 +#define ER_ERROR_DURING_COMMIT 1180 +#define ER_ERROR_DURING_ROLLBACK 1181 +#define ER_ERROR_DURING_FLUSH_LOGS 1182 +#define ER_ERROR_DURING_CHECKPOINT 1183 +#define ER_NEW_ABORTING_CONNECTION 1184 +#define ER_DUMP_NOT_IMPLEMENTED 1185 +#define ER_FLUSH_MASTER_BINLOG_CLOSED 1186 +#define ER_INDEX_REBUILD 1187 +#define ER_MASTER 1188 +#define ER_MASTER_NET_READ 1189 +#define ER_MASTER_NET_WRITE 1190 +#define ER_FT_MATCHING_KEY_NOT_FOUND 1191 +#define ER_LOCK_OR_ACTIVE_TRANSACTION 1192 +#define ER_UNKNOWN_SYSTEM_VARIABLE 1193 +#define ER_CRASHED_ON_USAGE 1194 +#define ER_CRASHED_ON_REPAIR 1195 +#define ER_WARNING_NOT_COMPLETE_ROLLBACK 1196 +#define ER_TRANS_CACHE_FULL 1197 +#define ER_SLAVE_MUST_STOP 1198 +#define ER_SLAVE_NOT_RUNNING 1199 +#define ER_BAD_SLAVE 1200 +#define ER_MASTER_INFO 1201 +#define ER_SLAVE_THREAD 1202 +#define ER_TOO_MANY_USER_CONNECTIONS 1203 +#define ER_SET_CONSTANTS_ONLY 1204 +#define ER_LOCK_WAIT_TIMEOUT 1205 +#define ER_LOCK_TABLE_FULL 1206 +#define ER_READ_ONLY_TRANSACTION 1207 +#define ER_DROP_DB_WITH_READ_LOCK 1208 +#define ER_CREATE_DB_WITH_READ_LOCK 1209 +#define ER_WRONG_ARGUMENTS 1210 +#define ER_NO_PERMISSION_TO_CREATE_USER 1211 +#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212 +#define ER_LOCK_DEADLOCK 1213 +#define ER_TABLE_CANT_HANDLE_FT 1214 +#define ER_CANNOT_ADD_FOREIGN 1215 +#define ER_NO_REFERENCED_ROW 1216 +#define ER_ROW_IS_REFERENCED 1217 +#define ER_CONNECT_TO_MASTER 1218 +#define ER_QUERY_ON_MASTER 1219 +#define ER_ERROR_WHEN_EXECUTING_COMMAND 1220 +#define ER_WRONG_USAGE 1221 +#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1222 +#define ER_CANT_UPDATE_WITH_READLOCK 1223 +#define ER_MIXING_NOT_ALLOWED 1224 +#define ER_DUP_ARGUMENT 1225 +#define ER_USER_LIMIT_REACHED 1226 +#define ER_SPECIFIC_ACCESS_DENIED_ERROR 1227 +#define ER_LOCAL_VARIABLE 1228 +#define ER_GLOBAL_VARIABLE 1229 +#define ER_NO_DEFAULT 1230 +#define ER_WRONG_VALUE_FOR_VAR 1231 +#define ER_WRONG_TYPE_FOR_VAR 1232 +#define ER_VAR_CANT_BE_READ 1233 +#define ER_CANT_USE_OPTION_HERE 1234 +#define ER_NOT_SUPPORTED_YET 1235 +#define ER_MASTER_FATAL_ERROR_READING_BINLOG 1236 +#define ER_SLAVE_IGNORED_TABLE 1237 +#define ER_INCORRECT_GLOBAL_LOCAL_VAR 1238 +#define ER_WRONG_FK_DEF 1239 +#define ER_KEY_REF_DO_NOT_MATCH_TABLE_REF 1240 +#define ER_OPERAND_COLUMNS 1241 +#define ER_SUBQUERY_NO_1_ROW 1242 +#define ER_UNKNOWN_STMT_HANDLER 1243 +#define ER_CORRUPT_HELP_DB 1244 +#define ER_CYCLIC_REFERENCE 1245 +#define ER_AUTO_CONVERT 1246 +#define ER_ILLEGAL_REFERENCE 1247 +#define ER_DERIVED_MUST_HAVE_ALIAS 1248 +#define ER_SELECT_REDUCED 1249 +#define ER_TABLENAME_NOT_ALLOWED_HERE 1250 +#define ER_NOT_SUPPORTED_AUTH_MODE 1251 +#define ER_SPATIAL_CANT_HAVE_NULL 1252 +#define ER_COLLATION_CHARSET_MISMATCH 1253 +#define ER_SLAVE_WAS_RUNNING 1254 +#define ER_SLAVE_WAS_NOT_RUNNING 1255 +#define ER_TOO_BIG_FOR_UNCOMPRESS 1256 +#define ER_ZLIB_Z_MEM_ERROR 1257 +#define ER_ZLIB_Z_BUF_ERROR 1258 +#define ER_ZLIB_Z_DATA_ERROR 1259 +#define ER_CUT_VALUE_GROUP_CONCAT 1260 +#define ER_WARN_TOO_FEW_RECORDS 1261 +#define ER_WARN_TOO_MANY_RECORDS 1262 +#define ER_WARN_NULL_TO_NOTNULL 1263 +#define ER_WARN_DATA_OUT_OF_RANGE 1264 +#define WARN_DATA_TRUNCATED 1265 +#define ER_WARN_USING_OTHER_HANDLER 1266 +#define ER_CANT_AGGREGATE_2COLLATIONS 1267 +#define ER_DROP_USER 1268 +#define ER_REVOKE_GRANTS 1269 +#define ER_CANT_AGGREGATE_3COLLATIONS 1270 +#define ER_CANT_AGGREGATE_NCOLLATIONS 1271 +#define ER_VARIABLE_IS_NOT_STRUCT 1272 +#define ER_UNKNOWN_COLLATION 1273 +#define ER_SLAVE_IGNORED_SSL_PARAMS 1274 +#define ER_SERVER_IS_IN_SECURE_AUTH_MODE 1275 +#define ER_WARN_FIELD_RESOLVED 1276 +#define ER_BAD_SLAVE_UNTIL_COND 1277 +#define ER_MISSING_SKIP_SLAVE 1278 +#define ER_UNTIL_COND_IGNORED 1279 +#define ER_WRONG_NAME_FOR_INDEX 1280 +#define ER_WRONG_NAME_FOR_CATALOG 1281 +#define ER_WARN_QC_RESIZE 1282 +#define ER_BAD_FT_COLUMN 1283 +#define ER_UNKNOWN_KEY_CACHE 1284 +#define ER_WARN_HOSTNAME_WONT_WORK 1285 +#define ER_UNKNOWN_STORAGE_ENGINE 1286 +#define ER_WARN_DEPRECATED_SYNTAX 1287 +#define ER_NON_UPDATABLE_TABLE 1288 +#define ER_FEATURE_DISABLED 1289 +#define ER_OPTION_PREVENTS_STATEMENT 1290 +#define ER_DUPLICATED_VALUE_IN_TYPE 1291 +#define ER_TRUNCATED_WRONG_VALUE 1292 +#define ER_TOO_MUCH_AUTO_TIMESTAMP_COLS 1293 +#define ER_INVALID_ON_UPDATE 1294 +#define ER_UNSUPPORTED_PS 1295 +#define ER_GET_ERRMSG 1296 +#define ER_GET_TEMPORARY_ERRMSG 1297 +#define ER_UNKNOWN_TIME_ZONE 1298 +#define ER_WARN_INVALID_TIMESTAMP 1299 +#define ER_INVALID_CHARACTER_STRING 1300 +#define ER_WARN_ALLOWED_PACKET_OVERFLOWED 1301 +#define ER_CONFLICTING_DECLARATIONS 1302 +#define ER_SP_NO_RECURSIVE_CREATE 1303 +#define ER_SP_ALREADY_EXISTS 1304 +#define ER_SP_DOES_NOT_EXIST 1305 +#define ER_SP_DROP_FAILED 1306 +#define ER_SP_STORE_FAILED 1307 +#define ER_SP_LILABEL_MISMATCH 1308 +#define ER_SP_LABEL_REDEFINE 1309 +#define ER_SP_LABEL_MISMATCH 1310 +#define ER_SP_UNINIT_VAR 1311 +#define ER_SP_BADSELECT 1312 +#define ER_SP_BADRETURN 1313 +#define ER_SP_BADSTATEMENT 1314 +#define ER_UPDATE_LOG_DEPRECATED_IGNORED 1315 +#define ER_UPDATE_LOG_DEPRECATED_TRANSLATED 1316 +#define ER_QUERY_INTERRUPTED 1317 +#define ER_SP_WRONG_NO_OF_ARGS 1318 +#define ER_SP_COND_MISMATCH 1319 +#define ER_SP_NORETURN 1320 +#define ER_SP_NORETURNEND 1321 +#define ER_SP_BAD_CURSOR_QUERY 1322 +#define ER_SP_BAD_CURSOR_SELECT 1323 +#define ER_SP_CURSOR_MISMATCH 1324 +#define ER_SP_CURSOR_ALREADY_OPEN 1325 +#define ER_SP_CURSOR_NOT_OPEN 1326 +#define ER_SP_UNDECLARED_VAR 1327 +#define ER_SP_WRONG_NO_OF_FETCH_ARGS 1328 +#define ER_SP_FETCH_NO_DATA 1329 +#define ER_SP_DUP_PARAM 1330 +#define ER_SP_DUP_VAR 1331 +#define ER_SP_DUP_COND 1332 +#define ER_SP_DUP_CURS 1333 +#define ER_SP_CANT_ALTER 1334 +#define ER_SP_SUBSELECT_NYI 1335 +#define ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG 1336 +#define ER_SP_VARCOND_AFTER_CURSHNDLR 1337 +#define ER_SP_CURSOR_AFTER_HANDLER 1338 +#define ER_SP_CASE_NOT_FOUND 1339 +#define ER_FPARSER_TOO_BIG_FILE 1340 +#define ER_FPARSER_BAD_HEADER 1341 +#define ER_FPARSER_EOF_IN_COMMENT 1342 +#define ER_FPARSER_ERROR_IN_PARAMETER 1343 +#define ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER 1344 +#define ER_VIEW_NO_EXPLAIN 1345 +#define ER_FRM_UNKNOWN_TYPE 1346 +#define ER_WRONG_OBJECT 1347 +#define ER_NONUPDATEABLE_COLUMN 1348 +#define ER_VIEW_SELECT_DERIVED_UNUSED 1349 +#define ER_VIEW_SELECT_CLAUSE 1350 +#define ER_VIEW_SELECT_VARIABLE 1351 +#define ER_VIEW_SELECT_TMPTABLE 1352 +#define ER_VIEW_WRONG_LIST 1353 +#define ER_WARN_VIEW_MERGE 1354 +#define ER_WARN_VIEW_WITHOUT_KEY 1355 +#define ER_VIEW_INVALID 1356 +#define ER_SP_NO_DROP_SP 1357 +#define ER_SP_GOTO_IN_HNDLR 1358 +#define ER_TRG_ALREADY_EXISTS 1359 +#define ER_TRG_DOES_NOT_EXIST 1360 +#define ER_TRG_ON_VIEW_OR_TEMP_TABLE 1361 +#define ER_TRG_CANT_CHANGE_ROW 1362 +#define ER_TRG_NO_SUCH_ROW_IN_TRG 1363 +#define ER_NO_DEFAULT_FOR_FIELD 1364 +#define ER_DIVISION_BY_ZERO 1365 +#define ER_TRUNCATED_WRONG_VALUE_FOR_FIELD 1366 +#define ER_ILLEGAL_VALUE_FOR_TYPE 1367 +#define ER_VIEW_NONUPD_CHECK 1368 +#define ER_VIEW_CHECK_FAILED 1369 +#define ER_PROCACCESS_DENIED_ERROR 1370 +#define ER_RELAY_LOG_FAIL 1371 +#define ER_PASSWD_LENGTH 1372 +#define ER_UNKNOWN_TARGET_BINLOG 1373 +#define ER_IO_ERR_LOG_INDEX_READ 1374 +#define ER_BINLOG_PURGE_PROHIBITED 1375 +#define ER_FSEEK_FAIL 1376 +#define ER_BINLOG_PURGE_FATAL_ERR 1377 +#define ER_LOG_IN_USE 1378 +#define ER_LOG_PURGE_UNKNOWN_ERR 1379 +#define ER_RELAY_LOG_INIT 1380 +#define ER_NO_BINARY_LOGGING 1381 +#define ER_RESERVED_SYNTAX 1382 +#define ER_WSAS_FAILED 1383 +#define ER_DIFF_GROUPS_PROC 1384 +#define ER_NO_GROUP_FOR_PROC 1385 +#define ER_ORDER_WITH_PROC 1386 +#define ER_LOGGING_PROHIBIT_CHANGING_OF 1387 +#define ER_NO_FILE_MAPPING 1388 +#define ER_WRONG_MAGIC 1389 +#define ER_PS_MANY_PARAM 1390 +#define ER_KEY_PART_0 1391 +#define ER_VIEW_CHECKSUM 1392 +#define ER_VIEW_MULTIUPDATE 1393 +#define ER_VIEW_NO_INSERT_FIELD_LIST 1394 +#define ER_VIEW_DELETE_MERGE_VIEW 1395 +#define ER_CANNOT_USER 1396 +#define ER_XAER_NOTA 1397 +#define ER_XAER_INVAL 1398 +#define ER_XAER_RMFAIL 1399 +#define ER_XAER_OUTSIDE 1400 +#define ER_XAER_RMERR 1401 +#define ER_XA_RBROLLBACK 1402 +#define ER_NONEXISTING_PROC_GRANT 1403 +#define ER_PROC_AUTO_GRANT_FAIL 1404 +#define ER_PROC_AUTO_REVOKE_FAIL 1405 +#define ER_DATA_TOO_LONG 1406 +#define ER_SP_BAD_SQLSTATE 1407 +#define ER_STARTUP 1408 +#define ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR 1409 +#define ER_CANT_CREATE_USER_WITH_GRANT 1410 +#define ER_WRONG_VALUE_FOR_TYPE 1411 +#define ER_TABLE_DEF_CHANGED 1412 +#define ER_SP_DUP_HANDLER 1413 +#define ER_SP_NOT_VAR_ARG 1414 +#define ER_SP_NO_RETSET 1415 +#define ER_CANT_CREATE_GEOMETRY_OBJECT 1416 +#define ER_FAILED_ROUTINE_BREAK_BINLOG 1417 +#define ER_BINLOG_UNSAFE_ROUTINE 1418 +#define ER_BINLOG_CREATE_ROUTINE_NEED_SUPER 1419 +#define ER_EXEC_STMT_WITH_OPEN_CURSOR 1420 +#define ER_STMT_HAS_NO_OPEN_CURSOR 1421 +#define ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG 1422 +#define ER_NO_DEFAULT_FOR_VIEW_FIELD 1423 +#define ER_SP_NO_RECURSION 1424 +#define ER_TOO_BIG_SCALE 1425 +#define ER_TOO_BIG_PRECISION 1426 +#define ER_M_BIGGER_THAN_D 1427 +#define ER_WRONG_LOCK_OF_SYSTEM_TABLE 1428 +#define ER_CONNECT_TO_FOREIGN_DATA_SOURCE 1429 +#define ER_QUERY_ON_FOREIGN_DATA_SOURCE 1430 +#define ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST 1431 +#define ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE 1432 +#define ER_FOREIGN_DATA_STRING_INVALID 1433 +#define ER_CANT_CREATE_FEDERATED_TABLE 1434 +#define ER_TRG_IN_WRONG_SCHEMA 1435 +#define ER_STACK_OVERRUN_NEED_MORE 1436 +#define ER_TOO_LONG_BODY 1437 +#define ER_WARN_CANT_DROP_DEFAULT_KEYCACHE 1438 +#define ER_TOO_BIG_DISPLAYWIDTH 1439 +#define ER_XAER_DUPID 1440 +#define ER_DATETIME_FUNCTION_OVERFLOW 1441 +#define ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG 1442 +#define ER_VIEW_PREVENT_UPDATE 1443 +#define ER_PS_NO_RECURSION 1444 +#define ER_SP_CANT_SET_AUTOCOMMIT 1445 +#define ER_MALFORMED_DEFINER 1446 +#define ER_VIEW_FRM_NO_USER 1447 +#define ER_VIEW_OTHER_USER 1448 +#define ER_NO_SUCH_USER 1449 +#define ER_FORBID_SCHEMA_CHANGE 1450 +#define ER_ROW_IS_REFERENCED_2 1451 +#define ER_NO_REFERENCED_ROW_2 1452 +#define ER_SP_BAD_VAR_SHADOW 1453 +#define ER_TRG_NO_DEFINER 1454 +#define ER_OLD_FILE_FORMAT 1455 +#define ER_SP_RECURSION_LIMIT 1456 +#define ER_SP_PROC_TABLE_CORRUPT 1457 +#define ER_SP_WRONG_NAME 1458 +#define ER_TABLE_NEEDS_UPGRADE 1459 +#define ER_SP_NO_AGGREGATE 1460 +#define ER_MAX_PREPARED_STMT_COUNT_REACHED 1461 +#define ER_VIEW_RECURSIVE 1462 +#define ER_NON_GROUPING_FIELD_USED 1463 +#define ER_TABLE_CANT_HANDLE_SPKEYS 1464 +#define ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA 1465 +#define ER_REMOVED_SPACES 1466 +#define ER_AUTOINC_READ_FAILED 1467 +#define ER_USERNAME 1468 +#define ER_HOSTNAME 1469 +#define ER_WRONG_STRING_LENGTH 1470 +#define ER_NON_INSERTABLE_TABLE 1471 +#define ER_ADMIN_WRONG_MRG_TABLE 1472 +#define ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT 1473 +#define ER_NAME_BECOMES_EMPTY 1474 +#define ER_AMBIGUOUS_FIELD_TERM 1475 +#define ER_FOREIGN_SERVER_EXISTS 1476 +#define ER_FOREIGN_SERVER_DOESNT_EXIST 1477 +#define ER_ILLEGAL_HA_CREATE_OPTION 1478 +#define ER_PARTITION_REQUIRES_VALUES_ERROR 1479 +#define ER_PARTITION_WRONG_VALUES_ERROR 1480 +#define ER_PARTITION_MAXVALUE_ERROR 1481 +#define ER_PARTITION_SUBPARTITION_ERROR 1482 +#define ER_PARTITION_SUBPART_MIX_ERROR 1483 +#define ER_PARTITION_WRONG_NO_PART_ERROR 1484 +#define ER_PARTITION_WRONG_NO_SUBPART_ERROR 1485 +#define ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR 1486 +#define ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR 1487 +#define ER_FIELD_NOT_FOUND_PART_ERROR 1488 +#define ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR 1489 +#define ER_INCONSISTENT_PARTITION_INFO_ERROR 1490 +#define ER_PARTITION_FUNC_NOT_ALLOWED_ERROR 1491 +#define ER_PARTITIONS_MUST_BE_DEFINED_ERROR 1492 +#define ER_RANGE_NOT_INCREASING_ERROR 1493 +#define ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR 1494 +#define ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR 1495 +#define ER_PARTITION_ENTRY_ERROR 1496 +#define ER_MIX_HANDLER_ERROR 1497 +#define ER_PARTITION_NOT_DEFINED_ERROR 1498 +#define ER_TOO_MANY_PARTITIONS_ERROR 1499 +#define ER_SUBPARTITION_ERROR 1500 +#define ER_CANT_CREATE_HANDLER_FILE 1501 +#define ER_BLOB_FIELD_IN_PART_FUNC_ERROR 1502 +#define ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF 1503 +#define ER_NO_PARTS_ERROR 1504 +#define ER_PARTITION_MGMT_ON_NONPARTITIONED 1505 +#define ER_FOREIGN_KEY_ON_PARTITIONED 1506 +#define ER_DROP_PARTITION_NON_EXISTENT 1507 +#define ER_DROP_LAST_PARTITION 1508 +#define ER_COALESCE_ONLY_ON_HASH_PARTITION 1509 +#define ER_REORG_HASH_ONLY_ON_SAME_NO 1510 +#define ER_REORG_NO_PARAM_ERROR 1511 +#define ER_ONLY_ON_RANGE_LIST_PARTITION 1512 +#define ER_ADD_PARTITION_SUBPART_ERROR 1513 +#define ER_ADD_PARTITION_NO_NEW_PARTITION 1514 +#define ER_COALESCE_PARTITION_NO_PARTITION 1515 +#define ER_REORG_PARTITION_NOT_EXIST 1516 +#define ER_SAME_NAME_PARTITION 1517 +#define ER_NO_BINLOG_ERROR 1518 +#define ER_CONSECUTIVE_REORG_PARTITIONS 1519 +#define ER_REORG_OUTSIDE_RANGE 1520 +#define ER_PARTITION_FUNCTION_FAILURE 1521 +#define ER_PART_STATE_ERROR 1522 +#define ER_LIMITED_PART_RANGE 1523 +#define ER_PLUGIN_IS_NOT_LOADED 1524 +#define ER_WRONG_VALUE 1525 +#define ER_NO_PARTITION_FOR_GIVEN_VALUE 1526 +#define ER_FILEGROUP_OPTION_ONLY_ONCE 1527 +#define ER_CREATE_FILEGROUP_FAILED 1528 +#define ER_DROP_FILEGROUP_FAILED 1529 +#define ER_TABLESPACE_AUTO_EXTEND_ERROR 1530 +#define ER_WRONG_SIZE_NUMBER 1531 +#define ER_SIZE_OVERFLOW_ERROR 1532 +#define ER_ALTER_FILEGROUP_FAILED 1533 +#define ER_BINLOG_ROW_LOGGING_FAILED 1534 +#define ER_BINLOG_ROW_WRONG_TABLE_DEF 1535 +#define ER_BINLOG_ROW_RBR_TO_SBR 1536 +#define ER_EVENT_ALREADY_EXISTS 1537 +#define ER_EVENT_STORE_FAILED 1538 +#define ER_EVENT_DOES_NOT_EXIST 1539 +#define ER_EVENT_CANT_ALTER 1540 +#define ER_EVENT_DROP_FAILED 1541 +#define ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG 1542 +#define ER_EVENT_ENDS_BEFORE_STARTS 1543 +#define ER_EVENT_EXEC_TIME_IN_THE_PAST 1544 +#define ER_EVENT_OPEN_TABLE_FAILED 1545 +#define ER_EVENT_NEITHER_M_EXPR_NOR_M_AT 1546 +#define ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED 1547 +#define ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE 1548 +#define ER_EVENT_CANNOT_DELETE 1549 +#define ER_EVENT_COMPILE_ERROR 1550 +#define ER_EVENT_SAME_NAME 1551 +#define ER_EVENT_DATA_TOO_LONG 1552 +#define ER_DROP_INDEX_FK 1553 +#define ER_WARN_DEPRECATED_SYNTAX_WITH_VER 1554 +#define ER_CANT_WRITE_LOCK_LOG_TABLE 1555 +#define ER_CANT_LOCK_LOG_TABLE 1556 +#define ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED 1557 +#define ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE 1558 +#define ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR 1559 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT 1560 +#define ER_NDB_CANT_SWITCH_BINLOG_FORMAT 1561 +#define ER_PARTITION_NO_TEMPORARY 1562 +#define ER_PARTITION_CONST_DOMAIN_ERROR 1563 +#define ER_PARTITION_FUNCTION_IS_NOT_ALLOWED 1564 +#define ER_DDL_LOG_ERROR 1565 +#define ER_NULL_IN_VALUES_LESS_THAN 1566 +#define ER_WRONG_PARTITION_NAME 1567 +#define ER_CANT_CHANGE_TX_CHARACTERISTICS 1568 +#define ER_DUP_ENTRY_AUTOINCREMENT_CASE 1569 +#define ER_EVENT_MODIFY_QUEUE_ERROR 1570 +#define ER_EVENT_SET_VAR_ERROR 1571 +#define ER_PARTITION_MERGE_ERROR 1572 +#define ER_CANT_ACTIVATE_LOG 1573 +#define ER_RBR_NOT_AVAILABLE 1574 +#define ER_BASE64_DECODE_ERROR 1575 +#define ER_EVENT_RECURSION_FORBIDDEN 1576 +#define ER_EVENTS_DB_ERROR 1577 +#define ER_ONLY_INTEGERS_ALLOWED 1578 +#define ER_UNSUPORTED_LOG_ENGINE 1579 +#define ER_BAD_LOG_STATEMENT 1580 +#define ER_CANT_RENAME_LOG_TABLE 1581 +#define ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 1582 +#define ER_WRONG_PARAMETERS_TO_NATIVE_FCT 1583 +#define ER_WRONG_PARAMETERS_TO_STORED_FCT 1584 +#define ER_NATIVE_FCT_NAME_COLLISION 1585 +#define ER_DUP_ENTRY_WITH_KEY_NAME 1586 +#define ER_BINLOG_PURGE_EMFILE 1587 +#define ER_EVENT_CANNOT_CREATE_IN_THE_PAST 1588 +#define ER_EVENT_CANNOT_ALTER_IN_THE_PAST 1589 +#define ER_SLAVE_INCIDENT 1590 +#define ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT 1591 +#define ER_BINLOG_UNSAFE_STATEMENT 1592 +#define ER_SLAVE_FATAL_ERROR 1593 +#define ER_SLAVE_RELAY_LOG_READ_FAILURE 1594 +#define ER_SLAVE_RELAY_LOG_WRITE_FAILURE 1595 +#define ER_SLAVE_CREATE_EVENT_FAILURE 1596 +#define ER_SLAVE_MASTER_COM_FAILURE 1597 +#define ER_BINLOG_LOGGING_IMPOSSIBLE 1598 +#define ER_VIEW_NO_CREATION_CTX 1599 +#define ER_VIEW_INVALID_CREATION_CTX 1600 +#define ER_SR_INVALID_CREATION_CTX 1601 +#define ER_TRG_CORRUPTED_FILE 1602 +#define ER_TRG_NO_CREATION_CTX 1603 +#define ER_TRG_INVALID_CREATION_CTX 1604 +#define ER_EVENT_INVALID_CREATION_CTX 1605 +#define ER_TRG_CANT_OPEN_TABLE 1606 +#define ER_CANT_CREATE_SROUTINE 1607 +#define ER_NEVER_USED 1608 +#define ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT 1609 +#define ER_SLAVE_CORRUPT_EVENT 1610 +#define ER_LOAD_DATA_INVALID_COLUMN_UNUSED 1611 +#define ER_LOG_PURGE_NO_FILE 1612 +#define ER_XA_RBTIMEOUT 1613 +#define ER_XA_RBDEADLOCK 1614 +#define ER_NEED_REPREPARE 1615 +#define ER_DELAYED_NOT_SUPPORTED 1616 +#define WARN_NO_MASTER_INFO 1617 +#define WARN_OPTION_IGNORED 1618 +#define ER_PLUGIN_DELETE_BUILTIN 1619 +#define WARN_PLUGIN_BUSY 1620 +#define ER_VARIABLE_IS_READONLY 1621 +#define ER_WARN_ENGINE_TRANSACTION_ROLLBACK 1622 +#define ER_SLAVE_HEARTBEAT_FAILURE 1623 +#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE 1624 +#define ER_NDB_REPLICATION_SCHEMA_ERROR 1625 +#define ER_CONFLICT_FN_PARSE_ERROR 1626 +#define ER_EXCEPTIONS_WRITE_ERROR 1627 +#define ER_TOO_LONG_TABLE_COMMENT 1628 +#define ER_TOO_LONG_FIELD_COMMENT 1629 +#define ER_FUNC_INEXISTENT_NAME_COLLISION 1630 +#define ER_DATABASE_NAME 1631 +#define ER_TABLE_NAME 1632 +#define ER_PARTITION_NAME 1633 +#define ER_SUBPARTITION_NAME 1634 +#define ER_TEMPORARY_NAME 1635 +#define ER_RENAMED_NAME 1636 +#define ER_TOO_MANY_CONCURRENT_TRXS 1637 +#define WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED 1638 +#define ER_DEBUG_SYNC_TIMEOUT 1639 +#define ER_DEBUG_SYNC_HIT_LIMIT 1640 +#define ER_DUP_SIGNAL_SET 1641 +#define ER_SIGNAL_WARN 1642 +#define ER_SIGNAL_NOT_FOUND 1643 +#define ER_SIGNAL_EXCEPTION 1644 +#define ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER 1645 +#define ER_SIGNAL_BAD_CONDITION_TYPE 1646 +#define WARN_COND_ITEM_TRUNCATED 1647 +#define ER_COND_ITEM_TOO_LONG 1648 +#define ER_UNKNOWN_LOCALE 1649 +#define ER_SLAVE_IGNORE_SERVER_IDS 1650 +#define ER_QUERY_CACHE_DISABLED 1651 +#define ER_SAME_NAME_PARTITION_FIELD 1652 +#define ER_PARTITION_COLUMN_LIST_ERROR 1653 +#define ER_WRONG_TYPE_COLUMN_VALUE_ERROR 1654 +#define ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR 1655 +#define ER_MAXVALUE_IN_VALUES_IN 1656 +#define ER_TOO_MANY_VALUES_ERROR 1657 +#define ER_ROW_SINGLE_PARTITION_FIELD_ERROR 1658 +#define ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD 1659 +#define ER_PARTITION_FIELDS_TOO_LONG 1660 +#define ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE 1661 +#define ER_BINLOG_ROW_MODE_AND_STMT_ENGINE 1662 +#define ER_BINLOG_UNSAFE_AND_STMT_ENGINE 1663 +#define ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE 1664 +#define ER_BINLOG_STMT_MODE_AND_ROW_ENGINE 1665 +#define ER_BINLOG_ROW_INJECTION_AND_STMT_MODE 1666 +#define ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1667 +#define ER_BINLOG_UNSAFE_LIMIT 1668 +#define ER_UNUSED4 1669 +#define ER_BINLOG_UNSAFE_SYSTEM_TABLE 1670 +#define ER_BINLOG_UNSAFE_AUTOINC_COLUMNS 1671 +#define ER_BINLOG_UNSAFE_UDF 1672 +#define ER_BINLOG_UNSAFE_SYSTEM_VARIABLE 1673 +#define ER_BINLOG_UNSAFE_SYSTEM_FUNCTION 1674 +#define ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS 1675 +#define ER_MESSAGE_AND_STATEMENT 1676 +#define ER_SLAVE_CONVERSION_FAILED 1677 +#define ER_SLAVE_CANT_CREATE_CONVERSION 1678 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT 1679 +#define ER_PATH_LENGTH 1680 +#define ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT 1681 +#define ER_WRONG_NATIVE_TABLE_STRUCTURE 1682 +#define ER_WRONG_PERFSCHEMA_USAGE 1683 +#define ER_WARN_I_S_SKIPPED_TABLE 1684 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT 1685 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT 1686 +#define ER_SPATIAL_MUST_HAVE_GEOM_COL 1687 +#define ER_TOO_LONG_INDEX_COMMENT 1688 +#define ER_LOCK_ABORTED 1689 +#define ER_DATA_OUT_OF_RANGE 1690 +#define ER_WRONG_SPVAR_TYPE_IN_LIMIT 1691 +#define ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1692 +#define ER_BINLOG_UNSAFE_MIXED_STATEMENT 1693 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN 1694 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN 1695 +#define ER_FAILED_READ_FROM_PAR_FILE 1696 +#define ER_VALUES_IS_NOT_INT_TYPE_ERROR 1697 +#define ER_ACCESS_DENIED_NO_PASSWORD_ERROR 1698 +#define ER_SET_PASSWORD_AUTH_PLUGIN 1699 +#define ER_GRANT_PLUGIN_USER_EXISTS 1700 +#define ER_TRUNCATE_ILLEGAL_FK 1701 +#define ER_PLUGIN_IS_PERMANENT 1702 +#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN 1703 +#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX 1704 +#define ER_STMT_CACHE_FULL 1705 +#define ER_MULTI_UPDATE_KEY_CONFLICT 1706 +#define ER_TABLE_NEEDS_REBUILD 1707 +#define WARN_OPTION_BELOW_LIMIT 1708 +#define ER_INDEX_COLUMN_TOO_LONG 1709 +#define ER_ERROR_IN_TRIGGER_BODY 1710 +#define ER_ERROR_IN_UNKNOWN_TRIGGER_BODY 1711 +#define ER_INDEX_CORRUPT 1712 +#define ER_UNDO_RECORD_TOO_BIG 1713 +#define ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT 1714 +#define ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE 1715 +#define ER_BINLOG_UNSAFE_REPLACE_SELECT 1716 +#define ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT 1717 +#define ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT 1718 +#define ER_BINLOG_UNSAFE_UPDATE_IGNORE 1719 +#define ER_PLUGIN_NO_UNINSTALL 1720 +#define ER_PLUGIN_NO_INSTALL 1721 +#define ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT 1722 +#define ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC 1723 +#define ER_BINLOG_UNSAFE_INSERT_TWO_KEYS 1724 +#define ER_TABLE_IN_FK_CHECK 1725 +#define ER_UNSUPPORTED_ENGINE 1726 +#define ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST 1727 +#define ER_CANNOT_LOAD_FROM_TABLE_V2 1728 +#define ER_MASTER_DELAY_VALUE_OUT_OF_RANGE 1729 +#define ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT 1730 +#define ER_PARTITION_EXCHANGE_DIFFERENT_OPTION 1731 +#define ER_PARTITION_EXCHANGE_PART_TABLE 1732 +#define ER_PARTITION_EXCHANGE_TEMP_TABLE 1733 +#define ER_PARTITION_INSTEAD_OF_SUBPARTITION 1734 +#define ER_UNKNOWN_PARTITION 1735 +#define ER_TABLES_DIFFERENT_METADATA 1736 +#define ER_ROW_DOES_NOT_MATCH_PARTITION 1737 +#define ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX 1738 +#define ER_WARN_INDEX_NOT_APPLICABLE 1739 +#define ER_PARTITION_EXCHANGE_FOREIGN_KEY 1740 +#define ER_NO_SUCH_KEY_VALUE 1741 +#define ER_RPL_INFO_DATA_TOO_LONG 1742 +#define ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE 1743 +#define ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE 1744 +#define ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX 1745 +#define ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT 1746 +#define ER_PARTITION_CLAUSE_ON_NONPARTITIONED 1747 +#define ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET 1748 +#define ER_NO_SUCH_PARTITION__UNUSED 1749 +#define ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE 1750 +#define ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE 1751 +#define ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE 1752 +#define ER_MTS_FEATURE_IS_NOT_SUPPORTED 1753 +#define ER_MTS_UPDATED_DBS_GREATER_MAX 1754 +#define ER_MTS_CANT_PARALLEL 1755 +#define ER_MTS_INCONSISTENT_DATA 1756 +#define ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING 1757 +#define ER_DA_INVALID_CONDITION_NUMBER 1758 +#define ER_INSECURE_PLAIN_TEXT 1759 +#define ER_INSECURE_CHANGE_MASTER 1760 +#define ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO 1761 +#define ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO 1762 +#define ER_SQLTHREAD_WITH_SECURE_SLAVE 1763 +#define ER_TABLE_HAS_NO_FT 1764 +#define ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER 1765 +#define ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION 1766 +#define ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST 1767 +#define ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION 1768 +#define ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION 1769 +#define ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL 1770 +#define ER_SKIPPING_LOGGED_TRANSACTION 1771 +#define ER_MALFORMED_GTID_SET_SPECIFICATION 1772 +#define ER_MALFORMED_GTID_SET_ENCODING 1773 +#define ER_MALFORMED_GTID_SPECIFICATION 1774 +#define ER_GNO_EXHAUSTED 1775 +#define ER_BAD_SLAVE_AUTO_POSITION 1776 +#define ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF 1777 +#define ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET 1778 +#define ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON 1779 +#define ER_GTID_MODE_REQUIRES_BINLOG 1780 +#define ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF 1781 +#define ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON 1782 +#define ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF 1783 +#define ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF__UNUSED 1784 +#define ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE 1785 +#define ER_GTID_UNSAFE_CREATE_SELECT 1786 +#define ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION 1787 +#define ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME 1788 +#define ER_MASTER_HAS_PURGED_REQUIRED_GTIDS 1789 +#define ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID 1790 +#define ER_UNKNOWN_EXPLAIN_FORMAT 1791 +#define ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION 1792 +#define ER_TOO_LONG_TABLE_PARTITION_COMMENT 1793 +#define ER_SLAVE_CONFIGURATION 1794 +#define ER_INNODB_FT_LIMIT 1795 +#define ER_INNODB_NO_FT_TEMP_TABLE 1796 +#define ER_INNODB_FT_WRONG_DOCID_COLUMN 1797 +#define ER_INNODB_FT_WRONG_DOCID_INDEX 1798 +#define ER_INNODB_ONLINE_LOG_TOO_BIG 1799 +#define ER_UNKNOWN_ALTER_ALGORITHM 1800 +#define ER_UNKNOWN_ALTER_LOCK 1801 +#define ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS 1802 +#define ER_MTS_RECOVERY_FAILURE 1803 +#define ER_MTS_RESET_WORKERS 1804 +#define ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2 1805 +#define ER_SLAVE_SILENT_RETRY_TRANSACTION 1806 +#define ER_DISCARD_FK_CHECKS_RUNNING 1807 +#define ER_TABLE_SCHEMA_MISMATCH 1808 +#define ER_TABLE_IN_SYSTEM_TABLESPACE 1809 +#define ER_IO_READ_ERROR 1810 +#define ER_IO_WRITE_ERROR 1811 +#define ER_TABLESPACE_MISSING 1812 +#define ER_TABLESPACE_EXISTS 1813 +#define ER_TABLESPACE_DISCARDED 1814 +#define ER_INTERNAL_ERROR 1815 +#define ER_INNODB_IMPORT_ERROR 1816 +#define ER_INNODB_INDEX_CORRUPT 1817 +#define ER_INVALID_YEAR_COLUMN_LENGTH 1818 +#define ER_NOT_VALID_PASSWORD 1819 +#define ER_MUST_CHANGE_PASSWORD 1820 +#define ER_FK_NO_INDEX_CHILD 1821 +#define ER_FK_NO_INDEX_PARENT 1822 +#define ER_FK_FAIL_ADD_SYSTEM 1823 +#define ER_FK_CANNOT_OPEN_PARENT 1824 +#define ER_FK_INCORRECT_OPTION 1825 +#define ER_FK_DUP_NAME 1826 +#define ER_PASSWORD_FORMAT 1827 +#define ER_FK_COLUMN_CANNOT_DROP 1828 +#define ER_FK_COLUMN_CANNOT_DROP_CHILD 1829 +#define ER_FK_COLUMN_NOT_NULL 1830 +#define ER_DUP_INDEX 1831 +#define ER_FK_COLUMN_CANNOT_CHANGE 1832 +#define ER_FK_COLUMN_CANNOT_CHANGE_CHILD 1833 +#define ER_UNUSED5 1834 +#define ER_MALFORMED_PACKET 1835 +#define ER_READ_ONLY_MODE 1836 +#define ER_GTID_NEXT_TYPE_UNDEFINED_GROUP 1837 +#define ER_VARIABLE_NOT_SETTABLE_IN_SP 1838 +#define ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF 1839 +#define ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY 1840 +#define ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY 1841 +#define ER_GTID_PURGED_WAS_CHANGED 1842 +#define ER_GTID_EXECUTED_WAS_CHANGED 1843 +#define ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES 1844 +#define ER_ALTER_OPERATION_NOT_SUPPORTED 1845 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON 1846 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY 1847 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION 1848 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME 1849 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE 1850 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK 1851 +#define ER_UNUSED6 1852 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK 1853 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC 1854 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS 1855 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS 1856 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS 1857 +#define ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE 1858 +#define ER_DUP_UNKNOWN_IN_INDEX 1859 +#define ER_IDENT_CAUSES_TOO_LONG_PATH 1860 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL 1861 +#define ER_MUST_CHANGE_PASSWORD_LOGIN 1862 +#define ER_ROW_IN_WRONG_PARTITION 1863 +#define ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX 1864 +#define ER_INNODB_NO_FT_USES_PARSER 1865 +#define ER_BINLOG_LOGICAL_CORRUPTION 1866 +#define ER_WARN_PURGE_LOG_IN_USE 1867 +#define ER_WARN_PURGE_LOG_IS_ACTIVE 1868 +#define ER_AUTO_INCREMENT_CONFLICT 1869 +#define WARN_ON_BLOCKHOLE_IN_RBR 1870 +#define ER_SLAVE_MI_INIT_REPOSITORY 1871 +#define ER_SLAVE_RLI_INIT_REPOSITORY 1872 +#define ER_ACCESS_DENIED_CHANGE_USER_ERROR 1873 +#define ER_INNODB_READ_ONLY 1874 +#define ER_STOP_SLAVE_SQL_THREAD_TIMEOUT 1875 +#define ER_STOP_SLAVE_IO_THREAD_TIMEOUT 1876 +#define ER_TABLE_CORRUPT 1877 +#define ER_TEMP_FILE_WRITE_FAILURE 1878 +#define ER_INNODB_FT_AUX_NOT_HEX_ID 1879 +#define ER_OLD_TEMPORALS_UPGRADED 1880 +#define ER_INNODB_FORCED_RECOVERY 1881 +#define ER_AES_INVALID_IV 1882 +#define ER_PLUGIN_CANNOT_BE_UNINSTALLED 1883 +#define ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP 1884 +#define ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER 1885 +#define ER_FILE_CORRUPT 3000 +#define ER_ERROR_ON_MASTER 3001 +#define ER_INCONSISTENT_ERROR 3002 +#define ER_STORAGE_ENGINE_NOT_LOADED 3003 +#define ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER 3004 +#define ER_WARN_LEGACY_SYNTAX_CONVERTED 3005 +#define ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN 3006 +#define ER_CANNOT_DISCARD_TEMPORARY_TABLE 3007 +#define ER_FK_DEPTH_EXCEEDED 3008 +#define ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2 3009 +#define ER_WARN_TRIGGER_DOESNT_HAVE_CREATED 3010 +#define ER_REFERENCED_TRG_DOES_NOT_EXIST 3011 +#define ER_EXPLAIN_NOT_SUPPORTED 3012 +#define ER_INVALID_FIELD_SIZE 3013 +#define ER_MISSING_HA_CREATE_OPTION 3014 +#define ER_ENGINE_OUT_OF_MEMORY 3015 +#define ER_PASSWORD_EXPIRE_ANONYMOUS_USER 3016 +#define ER_SLAVE_SQL_THREAD_MUST_STOP 3017 +#define ER_NO_FT_MATERIALIZED_SUBQUERY 3018 +#define ER_INNODB_UNDO_LOG_FULL 3019 +#define ER_INVALID_ARGUMENT_FOR_LOGARITHM 3020 +#define ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP 3021 +#define ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO 3022 +#define ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS 3023 +#define ER_QUERY_TIMEOUT 3024 +#define ER_NON_RO_SELECT_DISABLE_TIMER 3025 +#define ER_DUP_LIST_ENTRY 3026 +#define ER_SQL_MODE_NO_EFFECT 3027 +#define ER_AGGREGATE_ORDER_FOR_UNION 3028 +#define ER_AGGREGATE_ORDER_NON_AGG_QUERY 3029 +#define ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR 3030 +#define ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER 3031 +#define ER_SERVER_OFFLINE_MODE 3032 +#define ER_GIS_DIFFERENT_SRIDS 3033 +#define ER_GIS_UNSUPPORTED_ARGUMENT 3034 +#define ER_GIS_UNKNOWN_ERROR 3035 +#define ER_GIS_UNKNOWN_EXCEPTION 3036 +#define ER_GIS_INVALID_DATA 3037 +#define ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION 3038 +#define ER_BOOST_GEOMETRY_CENTROID_EXCEPTION 3039 +#define ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION 3040 +#define ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION 3041 +#define ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION 3042 +#define ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION 3043 +#define ER_STD_BAD_ALLOC_ERROR 3044 +#define ER_STD_DOMAIN_ERROR 3045 +#define ER_STD_LENGTH_ERROR 3046 +#define ER_STD_INVALID_ARGUMENT 3047 +#define ER_STD_OUT_OF_RANGE_ERROR 3048 +#define ER_STD_OVERFLOW_ERROR 3049 +#define ER_STD_RANGE_ERROR 3050 +#define ER_STD_UNDERFLOW_ERROR 3051 +#define ER_STD_LOGIC_ERROR 3052 +#define ER_STD_RUNTIME_ERROR 3053 +#define ER_STD_UNKNOWN_EXCEPTION 3054 +#define ER_GIS_DATA_WRONG_ENDIANESS 3055 +#define ER_CHANGE_MASTER_PASSWORD_LENGTH 3056 +#define ER_USER_LOCK_WRONG_NAME 3057 +#define ER_USER_LOCK_DEADLOCK 3058 +#define ER_REPLACE_INACCESSIBLE_ROWS 3059 +#define ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS 3060 +#define ER_ILLEGAL_USER_VAR 3061 +#define ER_GTID_MODE_OFF 3062 +#define ER_UNSUPPORTED_BY_REPLICATION_THREAD 3063 +#define ER_INCORRECT_TYPE 3064 +#define ER_FIELD_IN_ORDER_NOT_SELECT 3065 +#define ER_AGGREGATE_IN_ORDER_NOT_SELECT 3066 +#define ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN 3067 +#define ER_NET_OK_PACKET_TOO_LARGE 3068 +#define ER_INVALID_JSON_DATA 3069 +#define ER_INVALID_GEOJSON_MISSING_MEMBER 3070 +#define ER_INVALID_GEOJSON_WRONG_TYPE 3071 +#define ER_INVALID_GEOJSON_UNSPECIFIED 3072 +#define ER_DIMENSION_UNSUPPORTED 3073 +#define ER_SLAVE_CHANNEL_DOES_NOT_EXIST 3074 +#define ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT 3075 +#define ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG 3076 +#define ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY 3077 +#define ER_SLAVE_CHANNEL_DELETE 3078 +#define ER_SLAVE_MULTIPLE_CHANNELS_CMD 3079 +#define ER_SLAVE_MAX_CHANNELS_EXCEEDED 3080 +#define ER_SLAVE_CHANNEL_MUST_STOP 3081 +#define ER_SLAVE_CHANNEL_NOT_RUNNING 3082 +#define ER_SLAVE_CHANNEL_WAS_RUNNING 3083 +#define ER_SLAVE_CHANNEL_WAS_NOT_RUNNING 3084 +#define ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP 3085 +#define ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER 3086 +#define ER_WRONG_FIELD_WITH_GROUP_V2 3087 +#define ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2 3088 +#define ER_WARN_DEPRECATED_SYSVAR_UPDATE 3089 +#define ER_WARN_DEPRECATED_SQLMODE 3090 +#define ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID 3091 +#define ER_GROUP_REPLICATION_CONFIGURATION 3092 +#define ER_GROUP_REPLICATION_RUNNING 3093 +#define ER_GROUP_REPLICATION_APPLIER_INIT_ERROR 3094 +#define ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT 3095 +#define ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR 3096 +#define ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR 3097 +#define ER_BEFORE_DML_VALIDATION_ERROR 3098 +#define ER_PREVENTS_VARIABLE_WITHOUT_RBR 3099 +#define ER_RUN_HOOK_ERROR 3100 +#define ER_TRANSACTION_ROLLBACK_DURING_COMMIT 3101 +#define ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED 3102 +#define ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN 3103 +#define ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN 3104 +#define ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN 3105 +#define ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN 3106 +#define ER_GENERATED_COLUMN_NON_PRIOR 3107 +#define ER_DEPENDENT_BY_GENERATED_COLUMN 3108 +#define ER_GENERATED_COLUMN_REF_AUTO_INC 3109 +#define ER_FEATURE_NOT_AVAILABLE 3110 +#define ER_CANT_SET_GTID_MODE 3111 +#define ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF 3112 +#define ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION 3113 +#define ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON 3114 +#define ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF 3115 +#define ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS 3116 +#define ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS 3117 +#define ER_ACCOUNT_HAS_BEEN_LOCKED 3118 +#define ER_WRONG_TABLESPACE_NAME 3119 +#define ER_TABLESPACE_IS_NOT_EMPTY 3120 +#define ER_WRONG_FILE_NAME 3121 +#define ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION 3122 +#define ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR 3123 +#define ER_WARN_BAD_MAX_EXECUTION_TIME 3124 +#define ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME 3125 +#define ER_WARN_CONFLICTING_HINT 3126 +#define ER_WARN_UNKNOWN_QB_NAME 3127 +#define ER_UNRESOLVED_HINT_NAME 3128 +#define ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE 3129 +#define ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED 3130 +#define ER_LOCKING_SERVICE_WRONG_NAME 3131 +#define ER_LOCKING_SERVICE_DEADLOCK 3132 +#define ER_LOCKING_SERVICE_TIMEOUT 3133 +#define ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED 3134 +#define ER_SQL_MODE_MERGED 3135 +#define ER_VTOKEN_PLUGIN_TOKEN_MISMATCH 3136 +#define ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND 3137 +#define ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID 3138 +#define ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED 3139 +#define ER_INVALID_JSON_TEXT 3140 +#define ER_INVALID_JSON_TEXT_IN_PARAM 3141 +#define ER_INVALID_JSON_BINARY_DATA 3142 +#define ER_INVALID_JSON_PATH 3143 +#define ER_INVALID_JSON_CHARSET 3144 +#define ER_INVALID_JSON_CHARSET_IN_FUNCTION 3145 +#define ER_INVALID_TYPE_FOR_JSON 3146 +#define ER_INVALID_CAST_TO_JSON 3147 +#define ER_INVALID_JSON_PATH_CHARSET 3148 +#define ER_INVALID_JSON_PATH_WILDCARD 3149 +#define ER_JSON_VALUE_TOO_BIG 3150 +#define ER_JSON_KEY_TOO_BIG 3151 +#define ER_JSON_USED_AS_KEY 3152 +#define ER_JSON_VACUOUS_PATH 3153 +#define ER_JSON_BAD_ONE_OR_ALL_ARG 3154 +#define ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE 3155 +#define ER_INVALID_JSON_VALUE_FOR_CAST 3156 +#define ER_JSON_DOCUMENT_TOO_DEEP 3157 +#define ER_JSON_DOCUMENT_NULL_KEY 3158 +#define ER_SECURE_TRANSPORT_REQUIRED 3159 +#define ER_NO_SECURE_TRANSPORTS_CONFIGURED 3160 +#define ER_DISABLED_STORAGE_ENGINE 3161 +#define ER_USER_DOES_NOT_EXIST 3162 +#define ER_USER_ALREADY_EXISTS 3163 +#define ER_AUDIT_API_ABORT 3164 +#define ER_INVALID_JSON_PATH_ARRAY_CELL 3165 +#define ER_BUFPOOL_RESIZE_INPROGRESS 3166 +#define ER_FEATURE_DISABLED_SEE_DOC 3167 +#define ER_SERVER_ISNT_AVAILABLE 3168 +#define ER_SESSION_WAS_KILLED 3169 +#define ER_CAPACITY_EXCEEDED 3170 +#define ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER 3171 +#define ER_TABLE_NEEDS_UPG_PART 3172 +#define ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID 3173 +#define ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL 3174 +#define ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT 3175 +#define ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE 3176 +#define ER_LOCK_REFUSED_BY_ENGINE 3177 +#define ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN 3178 +#define ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE 3179 +#define ER_MASTER_KEY_ROTATION_ERROR_BY_SE 3180 +#define ER_MASTER_KEY_ROTATION_BINLOG_FAILED 3181 +#define ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE 3182 +#define ER_TABLESPACE_CANNOT_ENCRYPT 3183 +#define ER_INVALID_ENCRYPTION_OPTION 3184 +#define ER_CANNOT_FIND_KEY_IN_KEYRING 3185 +#define ER_CAPACITY_EXCEEDED_IN_PARSER 3186 +#define ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE 3187 +#define ER_KEYRING_UDF_KEYRING_SERVICE_ERROR 3188 +#define ER_USER_COLUMN_OLD_LENGTH 3189 +#define ER_CANT_RESET_MASTER 3190 +#define ER_GROUP_REPLICATION_MAX_GROUP_SIZE 3191 +#define ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED 3192 +#define ER_TABLE_REFERENCED 3193 +#define ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE 3194 +#define ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO 3195 +#define ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID 3196 +#define ER_XA_RETRY 3197 +#define ER_KEYRING_AWS_UDF_AWS_KMS_ERROR 3198 +#define ER_BINLOG_UNSAFE_XA 3199 +#endif diff --git a/mysql/mysys/array.c b/mysql/mysys/array.c new file mode 100644 index 0000000..cf54304 --- /dev/null +++ b/mysql/mysys/array.c @@ -0,0 +1,281 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Handling of arrays that can grow dynamicly. */ + +#include "mysys_priv.h" +#include "m_string.h" +#include "my_sys.h" + +/* + Initiate dynamic array + + SYNOPSIS + my_init_dynamic_array() + array Pointer to an array + element_size Size of element + init_buffer Initial buffer pointer + init_alloc Number of initial elements + alloc_increment Increment for adding new elements + + DESCRIPTION + init_dynamic_array() initiates array and allocate space for + init_alloc eilements. + Array is usable even if space allocation failed, hence, the + function never returns TRUE. + Static buffers must begin immediately after the array structure. + + RETURN VALUE + FALSE Ok +*/ + +my_bool my_init_dynamic_array(DYNAMIC_ARRAY *array, + PSI_memory_key psi_key, + uint element_size, + void *init_buffer, + uint init_alloc, + uint alloc_increment) +{ + DBUG_ENTER("init_dynamic_array"); + if (!alloc_increment) + { + alloc_increment=MY_MAX((8192-MALLOC_OVERHEAD)/element_size,16); + if (init_alloc > 8 && alloc_increment > init_alloc * 2) + alloc_increment=init_alloc*2; + } + + if (!init_alloc) + { + init_alloc=alloc_increment; + init_buffer= 0; + } + array->elements=0; + array->max_element=init_alloc; + array->alloc_increment=alloc_increment; + array->size_of_element=element_size; + array->m_psi_key= psi_key; + if ((array->buffer= init_buffer)) + DBUG_RETURN(FALSE); + /* + Since the dynamic array is usable even if allocation fails here malloc + should not throw an error + */ + if (!(array->buffer= (uchar*) my_malloc(psi_key, + element_size*init_alloc, MYF(0)))) + array->max_element=0; + DBUG_RETURN(FALSE); +} + +my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size, + uint init_alloc, uint alloc_increment) +{ + /* placeholder to preserve ABI */ + return my_init_dynamic_array(array, + PSI_INSTRUMENT_ME, + element_size, + NULL, /* init_buffer */ + init_alloc, + alloc_increment); +} +/* + Insert element at the end of array. Allocate memory if needed. + + SYNOPSIS + insert_dynamic() + array + element + + RETURN VALUE + TRUE Insert failed + FALSE Ok +*/ + +my_bool insert_dynamic(DYNAMIC_ARRAY *array, const void *element) +{ + uchar* buffer; + if (array->elements == array->max_element) + { /* Call only when nessesary */ + if (!(buffer=alloc_dynamic(array))) + return TRUE; + } + else + { + buffer=array->buffer+(array->elements * array->size_of_element); + array->elements++; + } + memcpy(buffer,element,(size_t) array->size_of_element); + return FALSE; +} + + +/* + Alloc space for next element(s) + + SYNOPSIS + alloc_dynamic() + array + + DESCRIPTION + alloc_dynamic() checks if there is empty space for at least + one element if not tries to allocate space for alloc_increment + elements at the end of array. + + RETURN VALUE + pointer Pointer to empty space for element + 0 Error +*/ + +void *alloc_dynamic(DYNAMIC_ARRAY *array) +{ + if (array->elements == array->max_element) + { + char *new_ptr; + if (array->buffer == (uchar *)(array + 1)) + { + /* + In this senerio, the buffer is statically preallocated, + so we have to create an all-new malloc since we overflowed + */ + if (!(new_ptr= (char *) my_malloc(array->m_psi_key, + (array->max_element+ + array->alloc_increment) * + array->size_of_element, + MYF(MY_WME)))) + return 0; + memcpy(new_ptr, array->buffer, + array->elements * array->size_of_element); + } + else + if (!(new_ptr=(char*) my_realloc(array->m_psi_key, + array->buffer,(array->max_element+ + array->alloc_increment)* + array->size_of_element, + MYF(MY_WME | MY_ALLOW_ZERO_PTR)))) + return 0; + array->buffer= (uchar*) new_ptr; + array->max_element+=array->alloc_increment; + } + return array->buffer+(array->elements++ * array->size_of_element); +} + + +/* + Pop last element from array. + + SYNOPSIS + pop_dynamic() + array + + RETURN VALUE + pointer Ok + 0 Array is empty +*/ + +void *pop_dynamic(DYNAMIC_ARRAY *array) +{ + if (array->elements) + return array->buffer+(--array->elements * array->size_of_element); + return 0; +} + + +/* + Get an element from array by given index + + SYNOPSIS + get_dynamic() + array + uchar* Element to be returned. If idx > elements contain zeroes. + idx Index of element wanted. +*/ + +void get_dynamic(DYNAMIC_ARRAY *array, void *element, uint idx) +{ + if (idx >= array->elements) + { + DBUG_PRINT("warning",("To big array idx: %d, array size is %d", + idx,array->elements)); + memset(element, 0, array->size_of_element); + return; + } + memcpy(element,array->buffer+idx*array->size_of_element, + (size_t) array->size_of_element); +} + +void claim_dynamic(DYNAMIC_ARRAY *array) +{ + /* + Check for a static buffer + */ + if (array->buffer == (uchar *)(array + 1)) + return; + + my_claim(array->buffer); +} + + +/* + Empty array by freeing all memory + + SYNOPSIS + delete_dynamic() + array Array to be deleted +*/ + +void delete_dynamic(DYNAMIC_ARRAY *array) +{ + /* + Just mark as empty if we are using a static buffer + */ + if (array->buffer == (uchar *)(array + 1)) + array->elements= 0; + else + if (array->buffer) + { + my_free(array->buffer); + array->buffer=0; + array->elements=array->max_element=0; + } +} + + +/* + Free unused memory + + SYNOPSIS + freeze_size() + array Array to be freed + +*/ + +void freeze_size(DYNAMIC_ARRAY *array) +{ + uint elements=MY_MAX(array->elements,1); + + /* + Do nothing if we are using a static buffer + */ + if (array->buffer == (uchar *)(array + 1)) + return; + + if (array->buffer && array->max_element != elements) + { + array->buffer=(uchar*) my_realloc(array->m_psi_key, + array->buffer, + elements*array->size_of_element, + MYF(MY_WME)); + array->max_element=elements; + } +} diff --git a/mysql/mysys/base64.c b/mysql/mysys/base64.c new file mode 100644 index 0000000..3deafea --- /dev/null +++ b/mysql/mysys/base64.c @@ -0,0 +1,464 @@ +/* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include /* strchr() */ +#include /* my_isspace() */ +#include + +#ifndef MAIN + +static char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +/** + * Maximum length base64_needed_encoded_length() + * can handle without overflow. + */ +uint64 +base64_encode_max_arg_length() +{ +#if (SIZEOF_VOIDP == 8) + /* + 6827690988321067803 -> 9223372036854775805 + 6827690988321067804 -> -9223372036854775807 + */ + return 0x5EC0D4C77B03531BLL; +#else + /* + 1589695686 -> 2147483646 + 1589695687 -> -2147483645 + */ + return 0x5EC0D4C6; +#endif +} + + +uint64 +base64_needed_encoded_length(uint64 length_of_data) +{ + uint64 nb_base64_chars; + if (length_of_data == 0) return 1; + nb_base64_chars= (length_of_data + 2) / 3 * 4; + + return + nb_base64_chars + /* base64 char incl padding */ + (nb_base64_chars - 1)/ 76 + /* newlines */ + 1; /* NUL termination of string */ +} + + +/** + * Maximum length base64_needed_decoded_length() + * can handle without overflow. + */ +uint64 +base64_decode_max_arg_length() +{ +#if (SIZEOF_VOIDP == 8) + return 0x2AAAAAAAAAAAAAAALL; +#else + return 0x2AAAAAAA; +#endif +} + + +uint64 +base64_needed_decoded_length(uint64 length_of_encoded_data) +{ + return (uint64) ceil(length_of_encoded_data * 3 / 4); +} + + +/* + Encode a data as base64. + + Note: We require that dst is pre-allocated to correct size. + See base64_needed_encoded_length(). +*/ + +int +base64_encode(const void *src, size_t src_len, char *dst) +{ + const unsigned char *s= (const unsigned char*)src; + size_t i= 0; + size_t len= 0; + + for (; i < src_len; len += 4) + { + unsigned c; + + if (len == 76) + { + len= 0; + *dst++= '\n'; + } + + c= s[i++]; + c <<= 8; + + if (i < src_len) + c += s[i]; + c <<= 8; + i++; + + if (i < src_len) + c += s[i]; + i++; + + *dst++= base64_table[(c >> 18) & 0x3f]; + *dst++= base64_table[(c >> 12) & 0x3f]; + + if (i > (src_len + 1)) + *dst++= '='; + else + *dst++= base64_table[(c >> 6) & 0x3f]; + + if (i > src_len) + *dst++= '='; + else + *dst++= base64_table[(c >> 0) & 0x3f]; + } + *dst= '\0'; + + return 0; +} + + +/* + Base64 decoder stream +*/ +typedef struct my_base64_decoder_t +{ + const char *src; /* Pointer to the current input position */ + const char *end; /* Pointer to the end of input buffer */ + uint c; /* Collect bits into this number */ + int error; /* Error code */ + uchar state; /* Character number in the current group of 4 */ + uchar mark; /* Number of padding marks in the current group */ +} MY_BASE64_DECODER; + + +/* + Helper table for decoder. + -2 means "space character" + -1 means "bad character" + Non-negative values mean valid base64 encoding character. +*/ +static int8 +from_base64_table[]= +{ +/*00*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-1,-1, +/*10*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*20*/ -2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63, /* !"#$%&'()*+,-./ */ +/*30*/ 52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1, /* 0123456789:;<=>? */ +/*40*/ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, /* @ABCDEFGHIJKLMNO */ +/*50*/ 15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1, /* PQRSTUVWXYZ[\]^_ */ +/*60*/ -1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, /* `abcdefghijklmno */ +/*70*/ 41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1, /* pqrstuvwxyz{|}~ */ +/*80*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*90*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*A0*/ -2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*B0*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*C0*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*D0*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*E0*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +/*F0*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 +}; + + +/** + * Skip leading spaces in a base64 encoded stream + * and stop on the first non-space character. + * decoder->src will point to the first non-space character, + * or to the end of the input string. + * In case when end-of-input met on unexpected position, + * decoder->error is also set to 1. + * + * @param decoder Pointer to MY_BASE64_DECODER + * + * @return + * FALSE on success (there are some more non-space input characters) + * TRUE on error (end-of-input found) + */ +static inline my_bool +my_base64_decoder_skip_spaces(MY_BASE64_DECODER *decoder) +{ + for ( ; decoder->src < decoder->end; decoder->src++) + { + if (from_base64_table[(uchar) *decoder->src] != -2) + return FALSE; + } + if (decoder->state > 0) + decoder->error= 1; /* Unexpected end-of-input found */ + return TRUE; +} + + +/** + * Convert the next character in a base64 encoded stream + * to a number in the range [0..63] + * and mix it with the previously collected value in decoder->c. + * + * @param decode base64 decoding stream + * + * @return + * FALSE on success + * TRUE on error (invalid base64 character found) + */ +static inline my_bool +my_base64_add(MY_BASE64_DECODER *decoder) +{ + int res; + decoder->c <<= 6; + if ((res= from_base64_table[(uchar) *decoder->src++]) < 0) + return (decoder->error= TRUE); + decoder->c+= (uint) res; + return FALSE; +} + + +/** + * Get the next character from a base64 encoded stream. + * Skip spaces, then scan the next base64 character or a pad character + * and collect bits into decoder->c. + * + * @param decoder Pointer to MY_BASE64_DECODER + * @return + * FALSE on success (a valid base64 encoding character found) + * TRUE on error (unexpected character or unexpected end-of-input found) + */ +static inline my_bool +my_base64_decoder_getch(MY_BASE64_DECODER *decoder) +{ + if (my_base64_decoder_skip_spaces(decoder)) + return TRUE; /* End-of-input */ + + if (!my_base64_add(decoder)) /* Valid base64 character found */ + { + if (decoder->mark) + { + /* If we have scanned '=' already, then only '=' is valid */ + DBUG_ASSERT(decoder->state == 3); + decoder->error= 1; + decoder->src--; + return TRUE; /* expected '=', but encoding character found */ + } + decoder->state++; + return FALSE; + } + + /* Process error */ + switch (decoder->state) + { + case 0: + case 1: + decoder->src--; + return TRUE; /* base64 character expected */ + break; + + case 2: + case 3: + if (decoder->src[-1] == '=') + { + decoder->error= 0; /* Not an error - it's a pad character */ + decoder->mark++; + } + else + { + decoder->src--; + return TRUE; /* base64 character or '=' expected */ + } + break; + + default: + DBUG_ASSERT(0); + return TRUE; /* Wrong state, should not happen */ + } + + decoder->state++; + return FALSE; +} + + +/** + * Decode a base64 string + * The base64-encoded data in the range ['src','*end_ptr') will be + * decoded and stored starting at 'dst'. The decoding will stop + * after 'len' characters have been read from 'src', or when padding + * occurs in the base64-encoded data. In either case: if 'end_ptr' is + * non-null, '*end_ptr' will be set to point to the character after + * the last read character, even in the presence of error. + * + * Note: We require that 'dst' is pre-allocated to correct size. + * + * @param src Pointer to base64-encoded string + * @param len Length of string at 'src' + * @param dst Pointer to location where decoded data will be stored + * @param end_ptr Pointer to variable that will refer to the character + * after the end of the encoded data that were decoded. + * Can be NULL. + * @flags flags e.g. allow multiple chunks + * @return Number of bytes written at 'dst', or -1 in case of failure + */ +int64 +base64_decode(const char *src_base, size_t len, + void *dst, const char **end_ptr, int flags) +{ + char *d= (char*) dst; + MY_BASE64_DECODER decoder; + + decoder.src= src_base; + decoder.end= src_base + len; + decoder.error= 0; + decoder.mark= 0; + + for ( ; ; ) + { + decoder.c= 0; + decoder.state= 0; + + if (my_base64_decoder_getch(&decoder) || + my_base64_decoder_getch(&decoder) || + my_base64_decoder_getch(&decoder) || + my_base64_decoder_getch(&decoder)) + break; + + *d++= (decoder.c >> 16) & 0xff; + *d++= (decoder.c >> 8) & 0xff; + *d++= (decoder.c >> 0) & 0xff; + + if (decoder.mark) + { + d-= decoder.mark; + if (!(flags & MY_BASE64_DECODE_ALLOW_MULTIPLE_CHUNKS)) + break; + decoder.mark= 0; + } + } + + /* Return error if there are more non-space characters */ + decoder.state= 0; + if (!my_base64_decoder_skip_spaces(&decoder)) + decoder.error= 1; + + if (end_ptr != NULL) + *end_ptr= decoder.src; + + return decoder.error ? -1 : (int) (d - (char*) dst); +} + + +#else /* MAIN */ + +#define require(b) { \ + if (!(b)) { \ + printf("Require failed at %s:%d\n", __FILE__, __LINE__); \ + abort(); \ + } \ +} + + +int +main(void) +{ + int i; + size_t j; + size_t k, l; + size_t dst_len; + size_t needed_length; + char * src; + char * s; + char * str; + char * dst; + const char *end_ptr; + size_t src_len; + + for (i= 0; i <= 500; i++) + { + /* Create source data */ + if (i == 500) + { +#if (SIZEOF_VOIDP == 8) + printf("Test case for base64 max event length: 2119594243\n"); + src_len= 2119594243; +#else + printf("Test case for base64 max event length: 536870912\n"); + src_len= 536870912; +#endif + } + else + src_len= rand() % 1000 + 1; + + src= (char *) malloc(src_len); + s= src; + + require(src); + for (j= 0; jname; cs++) + add_compiled_collation(cs); + + return FALSE; +} diff --git a/mysql/mysys/charset.c b/mysql/mysys/charset.c new file mode 100644 index 0000000..0ac55fc --- /dev/null +++ b/mysql/mysys/charset.c @@ -0,0 +1,968 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include +#include +#include +#include "mysql/psi/mysql_file.h" +#include "sql_chars.h" + +/* + The code below implements this functionality: + + - Initializing charset related structures + - Loading dynamic charsets + - Searching for a proper CHARSET_INFO + using charset name, collation name or collation ID + - Setting server default character set +*/ + +my_bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2) +{ + return ((cs1 == cs2) || !strcmp(cs1->csname,cs2->csname)); +} + + +static uint +get_collation_number_internal(const char *name) +{ + CHARSET_INFO **cs; + for (cs= all_charsets; + cs < all_charsets + array_elements(all_charsets); + cs++) + { + if ( cs[0] && cs[0]->name && + !my_strcasecmp(&my_charset_latin1, cs[0]->name, name)) + return cs[0]->number; + } + return 0; +} + + +static void simple_cs_init_functions(CHARSET_INFO *cs) +{ + if (cs->state & MY_CS_BINSORT) + cs->coll= &my_collation_8bit_bin_handler; + else + cs->coll= &my_collation_8bit_simple_ci_handler; + + cs->cset= &my_charset_8bit_handler; +} + + + +static int cs_copy_data(CHARSET_INFO *to, CHARSET_INFO *from) +{ + to->number= from->number ? from->number : to->number; + + if (from->csname) + if (!(to->csname= my_once_strdup(from->csname,MYF(MY_WME)))) + goto err; + + if (from->name) + if (!(to->name= my_once_strdup(from->name,MYF(MY_WME)))) + goto err; + + if (from->comment) + if (!(to->comment= my_once_strdup(from->comment,MYF(MY_WME)))) + goto err; + + if (from->ctype) + { + if (!(to->ctype= (uchar*) my_once_memdup((char*) from->ctype, + MY_CS_CTYPE_TABLE_SIZE, + MYF(MY_WME)))) + goto err; + if (init_state_maps(to)) + goto err; + } + if (from->to_lower) + if (!(to->to_lower= (uchar*) my_once_memdup((char*) from->to_lower, + MY_CS_TO_LOWER_TABLE_SIZE, + MYF(MY_WME)))) + goto err; + + if (from->to_upper) + if (!(to->to_upper= (uchar*) my_once_memdup((char*) from->to_upper, + MY_CS_TO_UPPER_TABLE_SIZE, + MYF(MY_WME)))) + goto err; + if (from->sort_order) + { + if (!(to->sort_order= (uchar*) my_once_memdup((char*) from->sort_order, + MY_CS_SORT_ORDER_TABLE_SIZE, + MYF(MY_WME)))) + goto err; + + } + if (from->tab_to_uni) + { + uint sz= MY_CS_TO_UNI_TABLE_SIZE*sizeof(uint16); + if (!(to->tab_to_uni= (uint16*) my_once_memdup((char*)from->tab_to_uni, + sz, MYF(MY_WME)))) + goto err; + } + if (from->tailoring) + if (!(to->tailoring= my_once_strdup(from->tailoring,MYF(MY_WME)))) + goto err; + + return 0; + +err: + return 1; +} + + + +static my_bool simple_cs_is_full(CHARSET_INFO *cs) +{ + return ((cs->csname && cs->tab_to_uni && cs->ctype && cs->to_upper && + cs->to_lower) && + (cs->number && cs->name && + (cs->sort_order || (cs->state & MY_CS_BINSORT) ))); +} + + +static void +copy_uca_collation(CHARSET_INFO *to, CHARSET_INFO *from) +{ + to->cset= from->cset; + to->coll= from->coll; + to->strxfrm_multiply= from->strxfrm_multiply; + to->min_sort_char= from->min_sort_char; + to->max_sort_char= from->max_sort_char; + to->mbminlen= from->mbminlen; + to->mbmaxlen= from->mbmaxlen; + to->caseup_multiply= from->caseup_multiply; + to->casedn_multiply= from->casedn_multiply; + to->state|= MY_CS_AVAILABLE | MY_CS_LOADED | + MY_CS_STRNXFRM | MY_CS_UNICODE; +} + + +static int add_collation(CHARSET_INFO *cs) +{ + if (cs->name && (cs->number || + (cs->number=get_collation_number_internal(cs->name))) && + cs->number < array_elements(all_charsets)) + { + if (!all_charsets[cs->number]) + { + if (!(all_charsets[cs->number]= + (CHARSET_INFO*) my_once_alloc(sizeof(CHARSET_INFO),MYF(0)))) + return MY_XML_ERROR; + memset(all_charsets[cs->number], 0, sizeof(CHARSET_INFO)); + } + + if (cs->primary_number == cs->number) + cs->state |= MY_CS_PRIMARY; + + if (cs->binary_number == cs->number) + cs->state |= MY_CS_BINSORT; + + all_charsets[cs->number]->state|= cs->state; + + if (!(all_charsets[cs->number]->state & MY_CS_COMPILED)) + { + CHARSET_INFO *newcs= all_charsets[cs->number]; + if (cs_copy_data(all_charsets[cs->number],cs)) + return MY_XML_ERROR; + + newcs->caseup_multiply= newcs->casedn_multiply= 1; + newcs->levels_for_compare= 1; + newcs->levels_for_order= 1; + + if (!strcmp(cs->csname,"ucs2") ) + { +#if defined(HAVE_CHARSET_ucs2) && defined(HAVE_UCA_COLLATIONS) + copy_uca_collation(newcs, &my_charset_ucs2_unicode_ci); + newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII; +#endif + } + else if (!strcmp(cs->csname, "utf8") || !strcmp(cs->csname, "utf8mb3")) + { +#if defined (HAVE_CHARSET_utf8) && defined(HAVE_UCA_COLLATIONS) + copy_uca_collation(newcs, &my_charset_utf8_unicode_ci); + newcs->ctype= my_charset_utf8_unicode_ci.ctype; + if (init_state_maps(newcs)) + return MY_XML_ERROR; +#endif + } + else if (!strcmp(cs->csname, "utf8mb4")) + { +#if defined (HAVE_CHARSET_utf8mb4) && defined(HAVE_UCA_COLLATIONS) + copy_uca_collation(newcs, &my_charset_utf8mb4_unicode_ci); + newcs->ctype= my_charset_utf8mb4_unicode_ci.ctype; + newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED; +#endif + } + else if (!strcmp(cs->csname, "utf16")) + { +#if defined (HAVE_CHARSET_utf16) && defined(HAVE_UCA_COLLATIONS) + copy_uca_collation(newcs, &my_charset_utf16_unicode_ci); + newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII; +#endif + } + else if (!strcmp(cs->csname, "utf32")) + { +#if defined (HAVE_CHARSET_utf32) && defined(HAVE_UCA_COLLATIONS) + copy_uca_collation(newcs, &my_charset_utf32_unicode_ci); + newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII; +#endif + } + else + { + const uchar *sort_order= all_charsets[cs->number]->sort_order; + simple_cs_init_functions(all_charsets[cs->number]); + newcs->mbminlen= 1; + newcs->mbmaxlen= 1; + if (simple_cs_is_full(all_charsets[cs->number])) + { + all_charsets[cs->number]->state |= MY_CS_LOADED; + } + all_charsets[cs->number]->state|= MY_CS_AVAILABLE; + + /* + Check if case sensitive sort order: A < a < B. + We need MY_CS_FLAG for regex library, and for + case sensitivity flag for 5.0 client protocol, + to support isCaseSensitive() method in JDBC driver + */ + if (sort_order && sort_order['A'] < sort_order['a'] && + sort_order['a'] < sort_order['B']) + all_charsets[cs->number]->state|= MY_CS_CSSORT; + + if (my_charset_is_8bit_pure_ascii(all_charsets[cs->number])) + all_charsets[cs->number]->state|= MY_CS_PUREASCII; + if (!my_charset_is_ascii_compatible(cs)) + all_charsets[cs->number]->state|= MY_CS_NONASCII; + } + } + else + { + /* + We need the below to make get_charset_name() + and get_charset_number() working even if a + character set has not been really incompiled. + The above functions are used for example + in error message compiler extra/comp_err.c. + If a character set was compiled, this information + will get lost and overwritten in add_compiled_collation(). + */ + CHARSET_INFO *dst= all_charsets[cs->number]; + dst->number= cs->number; + if (cs->comment) + if (!(dst->comment= my_once_strdup(cs->comment,MYF(MY_WME)))) + return MY_XML_ERROR; + if (cs->csname) + if (!(dst->csname= my_once_strdup(cs->csname,MYF(MY_WME)))) + return MY_XML_ERROR; + if (cs->name) + if (!(dst->name= my_once_strdup(cs->name,MYF(MY_WME)))) + return MY_XML_ERROR; + } + cs->number= 0; + cs->primary_number= 0; + cs->binary_number= 0; + cs->name= NULL; + cs->state= 0; + cs->sort_order= NULL; + cs->state= 0; + } + return MY_XML_OK; +} + + +/** + Report character set initialization errors and warnings. + Be silent by default: no warnings on the client side. +*/ +static void +default_reporter(enum loglevel level MY_ATTRIBUTE ((unused)), + const char *format MY_ATTRIBUTE ((unused)), + ...) +{ +} +my_error_reporter my_charset_error_reporter= default_reporter; + + +/** + Wrappers for memory functions my_malloc (and friends) + with C-compatbile API without extra "myf" argument. +*/ +static void * +my_once_alloc_c(size_t size) +{ return my_once_alloc(size, MYF(MY_WME)); } + + +static void * +my_malloc_c(size_t size) +{ return my_malloc(key_memory_charset_loader, size, MYF(MY_WME)); } + + +static void * +my_realloc_c(void *old, size_t size) +{ return my_realloc(key_memory_charset_loader, + old, size, MYF(MY_WME)); } + +static void +my_free_c(void *ptr) +{ + my_free(ptr); +} + +/** + Initialize character set loader to use mysys memory management functions. + @param loader Loader to initialize +*/ +void +my_charset_loader_init_mysys(MY_CHARSET_LOADER *loader) +{ + loader->error[0]= '\0'; + loader->once_alloc= my_once_alloc_c; + loader->mem_malloc= my_malloc_c; + loader->mem_realloc= my_realloc_c; + loader->mem_free= my_free_c; + loader->reporter= my_charset_error_reporter; + loader->add_collation= add_collation; +} + + +#define MY_MAX_ALLOWED_BUF 1024*1024 +#define MY_CHARSET_INDEX "Index.xml" + +const char *charsets_dir= NULL; + + +static my_bool +my_read_charset_file(MY_CHARSET_LOADER *loader, + const char *filename, + myf myflags) +{ + uchar *buf; + int fd; + size_t len, tmp_len; + MY_STAT stat_info; + + if (!my_stat(filename, &stat_info, MYF(myflags)) || + ((len= (uint)stat_info.st_size) > MY_MAX_ALLOWED_BUF) || + !(buf= (uchar*) my_malloc(key_memory_charset_file, + len,myflags))) + return TRUE; + + if ((fd= mysql_file_open(key_file_charset, filename, O_RDONLY, myflags)) < 0) + goto error; + tmp_len= mysql_file_read(fd, buf, len, myflags); + mysql_file_close(fd, myflags); + if (tmp_len != len) + goto error; + + if (my_parse_charset_xml(loader, (char *) buf, len)) + { + my_printf_error(EE_UNKNOWN_CHARSET, "Error while parsing '%s': %s\n", + MYF(0), filename, loader->error); + goto error; + } + + my_free(buf); + return FALSE; + +error: + my_free(buf); + return TRUE; +} + + +char *get_charsets_dir(char *buf) +{ + const char *sharedir= SHAREDIR; + char *res; + DBUG_ENTER("get_charsets_dir"); + + if (charsets_dir != NULL) + strmake(buf, charsets_dir, FN_REFLEN-1); + else + { + if (test_if_hard_path(sharedir) || + is_prefix(sharedir, DEFAULT_CHARSET_HOME)) + strxmov(buf, sharedir, "/", CHARSET_DIR, NullS); + else + strxmov(buf, DEFAULT_CHARSET_HOME, "/", sharedir, "/", CHARSET_DIR, + NullS); + } + res= convert_dirname(buf,buf,NullS); + DBUG_PRINT("info",("charsets dir: '%s'", buf)); + DBUG_RETURN(res); +} + +CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE]={NULL}; +CHARSET_INFO *default_charset_info = &my_charset_latin1; + +void add_compiled_collation(CHARSET_INFO *cs) +{ + DBUG_ASSERT(cs->number < array_elements(all_charsets)); + all_charsets[cs->number]= cs; + cs->state|= MY_CS_AVAILABLE; +} + + +static my_thread_once_t charsets_initialized= MY_THREAD_ONCE_INIT; +static my_thread_once_t charsets_template= MY_THREAD_ONCE_INIT; + +static void init_available_charsets(void) +{ + char fname[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; + MY_CHARSET_LOADER loader; + + memset(&all_charsets, 0, sizeof(all_charsets)); + init_compiled_charsets(MYF(0)); + + /* Copy compiled charsets */ + + my_charset_loader_init_mysys(&loader); + my_stpcpy(get_charsets_dir(fname), MY_CHARSET_INDEX); + my_read_charset_file(&loader, fname, MYF(0)); +} + + +void free_charsets(void) +{ + charsets_initialized= charsets_template; +} + + +static const char* +get_collation_name_alias(const char *name, char *buf, size_t bufsize) +{ + if (!native_strncasecmp(name, "utf8mb3_", 8)) + { + my_snprintf(buf, bufsize, "utf8_%s", name + 8); + return buf; + } + return NULL; +} + + +uint get_collation_number(const char *name) +{ + uint id; + char alias[64]; + my_thread_once(&charsets_initialized, init_available_charsets); + if ((id= get_collation_number_internal(name))) + return id; + if ((name= get_collation_name_alias(name, alias, sizeof(alias)))) + return get_collation_number_internal(name); + return 0; +} + + +static uint +get_charset_number_internal(const char *charset_name, uint cs_flags) +{ + CHARSET_INFO **cs; + + for (cs= all_charsets; + cs < all_charsets + array_elements(all_charsets); + cs++) + { + if ( cs[0] && cs[0]->csname && (cs[0]->state & cs_flags) && + !my_strcasecmp(&my_charset_latin1, cs[0]->csname, charset_name)) + return cs[0]->number; + } + return 0; +} + + +static const char* +get_charset_name_alias(const char *name) +{ + if (!my_strcasecmp(&my_charset_latin1, name, "utf8mb3")) + return "utf8"; + return NULL; +} + + +uint get_charset_number(const char *charset_name, uint cs_flags) +{ + uint id; + my_thread_once(&charsets_initialized, init_available_charsets); + if ((id= get_charset_number_internal(charset_name, cs_flags))) + return id; + if ((charset_name= get_charset_name_alias(charset_name))) + return get_charset_number_internal(charset_name, cs_flags); + return 0; +} + + +const char *get_charset_name(uint charset_number) +{ + my_thread_once(&charsets_initialized, init_available_charsets); + + if (charset_number < array_elements(all_charsets)) + { + CHARSET_INFO *cs= all_charsets[charset_number]; + + if (cs && (cs->number == charset_number) && cs->name) + return (char*) cs->name; + } + + return "?"; /* this mimics find_type() */ +} + + +static CHARSET_INFO * +get_internal_charset(MY_CHARSET_LOADER *loader, uint cs_number, myf flags) +{ + char buf[FN_REFLEN]; + CHARSET_INFO *cs; + + DBUG_ASSERT(cs_number < array_elements(all_charsets)); + + if ((cs= all_charsets[cs_number])) + { + if (cs->state & MY_CS_READY) /* if CS is already initialized */ + return cs; + + /* + To make things thread safe we are not allowing other threads to interfere + while we may changing the cs_info_table + */ + mysql_mutex_lock(&THR_LOCK_charset); + + if (!(cs->state & (MY_CS_COMPILED|MY_CS_LOADED))) /* if CS is not in memory */ + { + MY_CHARSET_LOADER loader; + strxmov(get_charsets_dir(buf), cs->csname, ".xml", NullS); + my_charset_loader_init_mysys(&loader); + my_read_charset_file(&loader, buf, flags); + } + + if (cs->state & MY_CS_AVAILABLE) + { + if (!(cs->state & MY_CS_READY)) + { + if ((cs->cset->init && cs->cset->init(cs, loader)) || + (cs->coll->init && cs->coll->init(cs, loader))) + { + cs= NULL; + } + else + cs->state|= MY_CS_READY; + } + } + else + cs= NULL; + + mysql_mutex_unlock(&THR_LOCK_charset); + } + return cs; +} + + +CHARSET_INFO *get_charset(uint cs_number, myf flags) +{ + CHARSET_INFO *cs; + MY_CHARSET_LOADER loader; + + if (cs_number == default_charset_info->number) + return default_charset_info; + + my_thread_once(&charsets_initialized, init_available_charsets); + + if (cs_number >= array_elements(all_charsets)) + return NULL; + + my_charset_loader_init_mysys(&loader); + cs= get_internal_charset(&loader, cs_number, flags); + + if (!cs && (flags & MY_WME)) + { + char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)], cs_string[23]; + my_stpcpy(get_charsets_dir(index_file),MY_CHARSET_INDEX); + cs_string[0]='#'; + int10_to_str(cs_number, cs_string+1, 10); + my_error(EE_UNKNOWN_CHARSET, MYF(0), cs_string, index_file); + } + return cs; +} + + +/** + Find collation by name: extended version of get_charset_by_name() + to return error messages to the caller. + @param loader Character set loader + @param name Collation name + @param flags Flags + @return NULL on error, pointer to collation on success +*/ + +CHARSET_INFO * +my_collation_get_by_name(MY_CHARSET_LOADER *loader, + const char *name, myf flags) +{ + uint cs_number; + CHARSET_INFO *cs; + my_thread_once(&charsets_initialized, init_available_charsets); + + cs_number= get_collation_number(name); + my_charset_loader_init_mysys(loader); + cs= cs_number ? get_internal_charset(loader, cs_number, flags) : NULL; + + if (!cs && (flags & MY_WME)) + { + char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; + my_stpcpy(get_charsets_dir(index_file),MY_CHARSET_INDEX); + my_error(EE_UNKNOWN_COLLATION, MYF(0), name, index_file); + } + return cs; +} + + +CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags) +{ + MY_CHARSET_LOADER loader; + my_charset_loader_init_mysys(&loader); + return my_collation_get_by_name(&loader, cs_name, flags); +} + + +/** + Find character set by name: extended version of get_charset_by_csname() + to return error messages to the caller. + @param loader Character set loader + @param name Collation name + @param cs_flags Character set flags (e.g. default or binary collation) + @param flags Flags + @return NULL on error, pointer to collation on success +*/ +CHARSET_INFO * +my_charset_get_by_name(MY_CHARSET_LOADER *loader, + const char *cs_name, uint cs_flags, myf flags) +{ + uint cs_number; + CHARSET_INFO *cs; + DBUG_ENTER("get_charset_by_csname"); + DBUG_PRINT("enter",("name: '%s'", cs_name)); + + my_thread_once(&charsets_initialized, init_available_charsets); + + cs_number= get_charset_number(cs_name, cs_flags); + cs= cs_number ? get_internal_charset(loader, cs_number, flags) : NULL; + + if (!cs && (flags & MY_WME)) + { + char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; + my_stpcpy(get_charsets_dir(index_file),MY_CHARSET_INDEX); + my_error(EE_UNKNOWN_CHARSET, MYF(0), cs_name, index_file); + } + + DBUG_RETURN(cs); +} + + +CHARSET_INFO * +get_charset_by_csname(const char *cs_name, uint cs_flags, myf flags) +{ + MY_CHARSET_LOADER loader; + my_charset_loader_init_mysys(&loader); + return my_charset_get_by_name(&loader, cs_name, cs_flags, flags); +} + + +/** + Resolve character set by the character set name (utf8, latin1, ...). + + The function tries to resolve character set by the specified name. If + there is character set with the given name, it is assigned to the "cs" + parameter and FALSE is returned. If there is no such character set, + "default_cs" is assigned to the "cs" and TRUE is returned. + + @param[in] cs_name Character set name. + @param[in] default_cs Default character set. + @param[out] cs Variable to store character set. + + @return FALSE if character set was resolved successfully; TRUE if there + is no character set with given name. +*/ + +my_bool resolve_charset(const char *cs_name, + const CHARSET_INFO *default_cs, + const CHARSET_INFO **cs) +{ + *cs= get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0)); + + if (*cs == NULL) + { + *cs= default_cs; + return TRUE; + } + + return FALSE; +} + + +/** + Resolve collation by the collation name (utf8_general_ci, ...). + + The function tries to resolve collation by the specified name. If there + is collation with the given name, it is assigned to the "cl" parameter + and FALSE is returned. If there is no such collation, "default_cl" is + assigned to the "cl" and TRUE is returned. + + @param[out] cl Variable to store collation. + @param[in] cl_name Collation name. + @param[in] default_cl Default collation. + + @return FALSE if collation was resolved successfully; TRUE if there is no + collation with given name. +*/ + +my_bool resolve_collation(const char *cl_name, + const CHARSET_INFO *default_cl, + const CHARSET_INFO **cl) +{ + *cl= get_charset_by_name(cl_name, MYF(0)); + + if (*cl == NULL) + { + *cl= default_cl; + return TRUE; + } + + return FALSE; +} + + +/* + Escape string with backslashes (\) + + SYNOPSIS + escape_string_for_mysql() + charset_info Charset of the strings + to Buffer for escaped string + to_length Length of destination buffer, or 0 + from The string to escape + length The length of the string to escape + + DESCRIPTION + This escapes the contents of a string by adding backslashes before special + characters, and turning others into specific escape sequences, such as + turning newlines into \n and null bytes into \0. + + NOTE + To maintain compatibility with the old C API, to_length may be 0 to mean + "big enough" + + RETURN VALUES + (size_t) -1 The escaped string did not fit in the to buffer + # The length of the escaped string +*/ + +size_t escape_string_for_mysql(const CHARSET_INFO *charset_info, + char *to, size_t to_length, + const char *from, size_t length) +{ + const char *to_start= to; + const char *end, *to_end=to_start + (to_length ? to_length-1 : 2*length); + my_bool overflow= FALSE; + my_bool use_mb_flag= use_mb(charset_info); + for (end= from + length; from < end; from++) + { + char escape= 0; + int tmp_length; + if (use_mb_flag && (tmp_length= my_ismbchar(charset_info, from, end))) + { + if (to + tmp_length > to_end) + { + overflow= TRUE; + break; + } + while (tmp_length--) + *to++= *from++; + from--; + continue; + } + /* + If the next character appears to begin a multi-byte character, we + escape that first byte of that apparent multi-byte character. (The + character just looks like a multi-byte character -- if it were actually + a multi-byte character, it would have been passed through in the test + above.) + + Without this check, we can create a problem by converting an invalid + multi-byte character into a valid one. For example, 0xbf27 is not + a valid GBK character, but 0xbf5c is. (0x27 = ', 0x5c = \) + */ + tmp_length= use_mb_flag ? my_mbcharlen_ptr(charset_info, from, end) : 0; + if (tmp_length > 1) + escape= *from; + else + switch (*from) { + case 0: /* Must be escaped for 'mysql' */ + escape= '0'; + break; + case '\n': /* Must be escaped for logs */ + escape= 'n'; + break; + case '\r': + escape= 'r'; + break; + case '\\': + escape= '\\'; + break; + case '\'': + escape= '\''; + break; + case '"': /* Better safe than sorry */ + escape= '"'; + break; + case '\032': /* This gives problems on Win32 */ + escape= 'Z'; + break; + } + if (escape) + { + if (to + 2 > to_end) + { + overflow= TRUE; + break; + } + *to++= '\\'; + *to++= escape; + } + else + { + if (to + 1 > to_end) + { + overflow= TRUE; + break; + } + *to++= *from; + } + } + *to= 0; + return overflow ? (size_t) -1 : (size_t) (to - to_start); +} + + +#ifdef _WIN32 +static CHARSET_INFO *fs_cset_cache= NULL; + +CHARSET_INFO *fs_character_set() +{ + if (!fs_cset_cache) + { + char buf[10]= "cp"; + GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, + buf+2, sizeof(buf)-3); + /* + We cannot call get_charset_by_name here + because fs_character_set() is executed before + LOCK_THD_charset mutex initialization, which + is used inside get_charset_by_name. + As we're now interested in cp932 only, + let's just detect it using strcmp(). + */ + fs_cset_cache= + #ifdef HAVE_CHARSET_cp932 + !strcmp(buf, "cp932") ? &my_charset_cp932_japanese_ci : + #endif + &my_charset_bin; + } + return fs_cset_cache; +} +#endif + +/* + Escape apostrophes by doubling them up + + SYNOPSIS + escape_quotes_for_mysql() + charset_info Charset of the strings + to Buffer for escaped string + to_length Length of destination buffer, or 0 + from The string to escape + length The length of the string to escape + quote The quote the buffer will be escaped against + + DESCRIPTION + This escapes the contents of a string by doubling up any character + specified by the quote parameter. This is used when the + NO_BACKSLASH_ESCAPES SQL_MODE is in effect on the server. + + NOTE + To be consistent with escape_string_for_mysql(), to_length may be 0 to + mean "big enough" + + RETURN VALUES + ~0 The escaped string did not fit in the to buffer + >=0 The length of the escaped string +*/ + +size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info, + char *to, size_t to_length, + const char *from, size_t length, char quote) +{ + const char *to_start= to; + const char *end, *to_end=to_start + (to_length ? to_length-1 : 2*length); + my_bool overflow= FALSE; + my_bool use_mb_flag= use_mb(charset_info); + for (end= from + length; from < end; from++) + { + int tmp_length; + if (use_mb_flag && (tmp_length= my_ismbchar(charset_info, from, end))) + { + if (to + tmp_length > to_end) + { + overflow= TRUE; + break; + } + while (tmp_length--) + *to++= *from++; + from--; + continue; + } + /* + We don't have the same issue here with a non-multi-byte character being + turned into a multi-byte character by the addition of an escaping + character, because we are only escaping the ' character with itself. + */ + if (*from == quote) + { + if (to + 2 > to_end) + { + overflow= TRUE; + break; + } + *to++= quote; + *to++= quote; + } + else + { + if (to + 1 > to_end) + { + overflow= TRUE; + break; + } + *to++= *from; + } + } + *to= 0; + return overflow ? (ulong)~0 : (ulong) (to - to_start); +} diff --git a/mysql/mysys/checksum.c b/mysql/mysys/checksum.c new file mode 100644 index 0000000..87f3056 --- /dev/null +++ b/mysql/mysys/checksum.c @@ -0,0 +1,35 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +#include +#include +#include + +/* + Calculate a long checksum for a memoryblock. + + SYNOPSIS + my_checksum() + crc start value for crc + pos pointer to memory block + length length of the block +*/ + +ha_checksum my_checksum(ha_checksum crc, const uchar *pos, size_t length) +{ + return (ha_checksum)crc32((uint)crc, pos, (uint)length); +} + diff --git a/mysql/mysys/errors.c b/mysql/mysys/errors.c new file mode 100644 index 0000000..b972102 --- /dev/null +++ b/mysql/mysys/errors.c @@ -0,0 +1,92 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "mysys_err.h" +#include "my_sys.h" +#include "my_thread_local.h" + +const char *globerrs[GLOBERRS]= +{ + "Can't create/write to file '%s' (Errcode: %d - %s)", + "Error reading file '%s' (Errcode: %d - %s)", + "Error writing file '%s' (Errcode: %d - %s)", + "Error on close of '%s' (Errcode: %d - %s)", + "Out of memory (Needed %u bytes)", + "Error on delete of '%s' (Errcode: %d - %s)", + "Error on rename of '%s' to '%s' (Errcode: %d - %s)", + "", + "Unexpected EOF found when reading file '%s' (Errcode: %d - %s)", + "Can't lock file (Errcode: %d - %s)", + "Can't unlock file (Errcode: %d - %s)", + "Can't read dir of '%s' (Errcode: %d - %s)", + "Can't get stat of '%s' (Errcode: %d - %s)", + "Can't change size of file (Errcode: %d - %s)", + "Can't open stream from handle (Errcode: %d - %s)", + "Can't get working directory (Errcode: %d - %s)", + "Can't change dir to '%s' (Errcode: %d - %s)", + "Warning: '%s' had %d links", + "Warning: %d files and %d streams is left open\n", + "Disk is full writing '%s' (Errcode: %d - %s). Waiting for someone to free space...", + "Can't create directory '%s' (Errcode: %d - %s)", + "Character set '%s' is not a compiled character set and is not specified in the '%s' file", + "Out of resources when opening file '%s' (Errcode: %d - %s)", + "Can't read value for symlink '%s' (Error %d - %s)", + "Can't create symlink '%s' pointing at '%s' (Error %d - %s)", + "Error on realpath() on '%s' (Error %d - %s)", + "Can't sync file '%s' to disk (Errcode: %d - %s)", + "Collation '%s' is not a compiled collation and is not specified in the '%s' file", + "File '%s' not found (Errcode: %d - %s)", + "File '%s' (fileno: %d) was not closed", + "Can't change ownership of the file '%s' (Errcode: %d - %s)", + "Can't change permissions of the file '%s' (Errcode: %d - %s)", + "Can't seek in file '%s' (Errcode: %d - %s)", + "Memory capacity exceeded (capacity %llu bytes)" +}; + + +/* + We cannot call my_error/my_printf_error here in this function. + Those functions will set status variable in diagnostic area + and there is no provision to reset them back. + Here we are waiting for free space and will wait forever till + space is created. So just giving warning in the error file + should be enough. +*/ +void wait_for_free_space(const char *filename, int errors) +{ + if (!(errors % MY_WAIT_GIVE_USER_A_MESSAGE)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_message_local(ERROR_LEVEL, EE(EE_DISK_FULL), + filename,my_errno, + my_strerror(errbuf, sizeof(errbuf), my_errno())); + my_message_local(ERROR_LEVEL, + "Retry in %d secs. Message reprinted in %d secs", + MY_WAIT_FOR_USER_TO_FIX_PANIC, + MY_WAIT_GIVE_USER_A_MESSAGE * MY_WAIT_FOR_USER_TO_FIX_PANIC ); + } + DBUG_EXECUTE_IF("simulate_no_free_space_error", + { + (void) sleep(1); + return; + }); + (void) sleep(MY_WAIT_FOR_USER_TO_FIX_PANIC); +} + +const char *get_global_errmsg(int nr) +{ + return globerrs[nr - EE_ERROR_FIRST]; +} diff --git a/mysql/mysys/hash.c b/mysql/mysys/hash.c new file mode 100644 index 0000000..b02d20a --- /dev/null +++ b/mysql/mysys/hash.c @@ -0,0 +1,812 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* The hash functions used for saveing keys */ +/* One of key_length or key_length_offset must be given */ +/* Key length of 0 isn't allowed */ + +#include "mysys_priv.h" +#include +#include +#include "hash.h" + +#define NO_RECORD ((uint) -1) +#define LOWFIND 1 +#define LOWUSED 2 +#define HIGHFIND 4 +#define HIGHUSED 8 + +typedef struct st_hash_info { + uint next; /* index to next key */ + uchar *data; /* data for current entry */ +} HASH_LINK; + +static uint my_hash_mask(my_hash_value_type hashnr, + size_t buffmax, size_t maxlength); +static void movelink(HASH_LINK *array,uint pos,uint next_link,uint newlink); +static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key, + size_t length); + +static my_hash_value_type calc_hash(const HASH *hash, + const uchar *key, size_t length) +{ + return hash->hash_function(hash, key, length); +} + + +/** + Adaptor function which allows to use hash function from character + set with HASH. +*/ + +static my_hash_value_type cset_hash_sort_adapter(const HASH *hash, + const uchar *key, + size_t length) +{ + ulong nr1=1, nr2=4; + hash->charset->coll->hash_sort(hash->charset,(uchar*) key,length,&nr1,&nr2); + return (my_hash_value_type)nr1; +} + + +/** + @brief Initialize the hash + + @details + + Initialize the hash, by defining and giving valid values for + its elements. The failure to allocate memory for the + hash->array element will not result in a fatal failure. The + dynamic array that is part of the hash will allocate memory + as required during insertion. + + @param[in,out] hash The hash that is initialized + @param[in] charset The charater set information + @param[in] hash_function Hash function to be used. NULL - + use standard hash from character + set. + @param[in] size The hash size + @param[in] key_offest The key offset for the hash + @param[in] key_length The length of the key used in + the hash + @param[in] get_key get the key for the hash + @param[in] free_element pointer to the function that + does cleanup + @param[in] flags flags set in the hash + @return inidicates success or failure of initialization + @retval 0 success + @retval 1 failure +*/ +my_bool +_my_hash_init(HASH *hash, uint growth_size, CHARSET_INFO *charset, + my_hash_function hash_function, + ulong size, size_t key_offset, size_t key_length, + my_hash_get_key get_key, + void (*free_element)(void*), uint flags, + PSI_memory_key psi_key) +{ + my_bool retval; + + DBUG_ENTER("my_hash_init"); + DBUG_PRINT("enter",("hash: 0x%lx size: %u", (long) hash, (uint) size)); + + hash->records=0; + hash->key_offset=key_offset; + hash->key_length=key_length; + hash->blength=1; + hash->get_key=get_key; + hash->free=free_element; + hash->flags=flags; + hash->charset=charset; + hash->hash_function= hash_function ? hash_function : cset_hash_sort_adapter; + hash->m_psi_key= psi_key; + retval= my_init_dynamic_array(&hash->array, + psi_key, + sizeof(HASH_LINK), + NULL, /* init_buffer */ + size, growth_size); + DBUG_RETURN(retval); +} + + +static inline void my_hash_claim_elements(HASH *hash) +{ + HASH_LINK *data= dynamic_element(&hash->array, 0, HASH_LINK*); + HASH_LINK *end= data + hash->records; + while (data < end) + my_claim((data++)->data); +} + +/* + Call hash->free on all elements in hash. + + SYNOPSIS + my_hash_free_elements() + hash hash table + + NOTES: + Sets records to 0 +*/ + +static inline void my_hash_free_elements(HASH *hash) +{ + if (hash->free) + { + HASH_LINK *data=dynamic_element(&hash->array,0,HASH_LINK*); + HASH_LINK *end= data + hash->records; + while (data < end) + (*hash->free)((data++)->data); + } + hash->records=0; +} + +void my_hash_claim(HASH *hash) +{ + DBUG_ENTER("my_hash_claim"); + DBUG_PRINT("enter",("hash: 0x%lx", (long) hash)); + + my_hash_claim_elements(hash); + claim_dynamic(&hash->array); + DBUG_VOID_RETURN; +} + + +/* + Free memory used by hash. + + SYNOPSIS + my_hash_free() + hash the hash to delete elements of + + NOTES: Hash can't be reused without calling my_hash_init again. +*/ + +void my_hash_free(HASH *hash) +{ + DBUG_ENTER("my_hash_free"); + DBUG_PRINT("enter",("hash: 0x%lx", (long) hash)); + + my_hash_free_elements(hash); + hash->free= 0; + delete_dynamic(&hash->array); + hash->blength= 0; + DBUG_VOID_RETURN; +} + + +/* + Delete all elements from the hash (the hash itself is to be reused). + + SYNOPSIS + my_hash_reset() + hash the hash to delete elements of +*/ + +void my_hash_reset(HASH *hash) +{ + DBUG_ENTER("my_hash_reset"); + DBUG_PRINT("enter",("hash: 0x%lxd", (long) hash)); + + my_hash_free_elements(hash); + reset_dynamic(&hash->array); + /* Set row pointers so that the hash can be reused at once */ + hash->blength= 1; + DBUG_VOID_RETURN; +} + +/* some helper functions */ + +/* + This function is char* instead of uchar* as HPUX11 compiler can't + handle inline functions that are not defined as native types +*/ + +static inline char* +my_hash_key(const HASH *hash, const uchar *record, size_t *length, + my_bool first) +{ + if (hash->get_key) + return (char*) (*hash->get_key)(record,length,first); + *length=hash->key_length; + return (char*) record+hash->key_offset; +} + + /* Calculate pos according to keys */ + +static uint my_hash_mask(my_hash_value_type hashnr, size_t buffmax, + size_t maxlength) +{ + if ((hashnr & (buffmax-1)) < maxlength) return (hashnr & (buffmax-1)); + return (hashnr & ((buffmax >> 1) -1)); +} + +static uint my_hash_rec_mask(const HASH *hash, HASH_LINK *pos, + size_t buffmax, size_t maxlength) +{ + size_t length; + uchar *key= (uchar*) my_hash_key(hash, pos->data, &length, 0); + return my_hash_mask(calc_hash(hash, key, length), buffmax, maxlength); +} + + + +static inline my_hash_value_type rec_hashnr(HASH *hash,const uchar *record) +{ + size_t length; + uchar *key= (uchar*) my_hash_key(hash, record, &length, 0); + return calc_hash(hash,key,length); +} + + +uchar* my_hash_search(const HASH *hash, const uchar *key, size_t length) +{ + HASH_SEARCH_STATE state; + return my_hash_first(hash, key, length, &state); +} + +uchar* my_hash_search_using_hash_value(const HASH *hash, + my_hash_value_type hash_value, + const uchar *key, + size_t length) +{ + HASH_SEARCH_STATE state; + return my_hash_first_from_hash_value(hash, hash_value, + key, length, &state); +} + +my_hash_value_type my_calc_hash(const HASH *hash, + const uchar *key, size_t length) +{ + return calc_hash(hash, key, length ? length : hash->key_length); +} + + +/* + Search after a record based on a key + + NOTE + Assigns the number of the found record to HASH_SEARCH_STATE state +*/ + +uchar* my_hash_first(const HASH *hash, const uchar *key, size_t length, + HASH_SEARCH_STATE *current_record) +{ + uchar *res; + if (my_hash_inited(hash)) + res= my_hash_first_from_hash_value(hash, + calc_hash(hash, key, length ? length : hash->key_length), + key, length, current_record); + else + res= 0; + return res; +} + + +uchar* my_hash_first_from_hash_value(const HASH *hash, + my_hash_value_type hash_value, + const uchar *key, + size_t length, + HASH_SEARCH_STATE *current_record) +{ + HASH_LINK *pos; + uint flag,idx; + DBUG_ENTER("my_hash_first_from_hash_value"); + + flag=1; + if (hash->records) + { + idx= my_hash_mask(hash_value, + hash->blength, hash->records); + do + { + pos= dynamic_element(&hash->array,idx,HASH_LINK*); + if (!hashcmp(hash,pos,key,length)) + { + DBUG_PRINT("exit",("found key at %d",idx)); + *current_record= idx; + DBUG_RETURN (pos->data); + } + if (flag) + { + flag=0; /* Reset flag */ + if (my_hash_rec_mask(hash, pos, hash->blength, hash->records) != idx) + break; /* Wrong link */ + } + } + while ((idx=pos->next) != NO_RECORD); + } + *current_record= NO_RECORD; + DBUG_RETURN(0); +} + + /* Get next record with identical key */ + /* Can only be called if previous calls was my_hash_search */ + +uchar* my_hash_next(const HASH *hash, const uchar *key, size_t length, + HASH_SEARCH_STATE *current_record) +{ + HASH_LINK *pos; + uint idx; + + if (*current_record != NO_RECORD) + { + HASH_LINK *data=dynamic_element(&hash->array,0,HASH_LINK*); + for (idx=data[*current_record].next; idx != NO_RECORD ; idx=pos->next) + { + pos=data+idx; + if (!hashcmp(hash,pos,key,length)) + { + *current_record= idx; + return pos->data; + } + } + *current_record= NO_RECORD; + } + return 0; +} + + + /* Change link from pos to new_link */ + +static void movelink(HASH_LINK *array,uint find,uint next_link,uint newlink) +{ + HASH_LINK *old_link; + do + { + old_link=array+next_link; + } + while ((next_link=old_link->next) != find); + old_link->next= newlink; + return; +} + +/* + Compare a key in a record to a whole key. Return 0 if identical + + SYNOPSIS + hashcmp() + hash hash table + pos position of hash record to use in comparison + key key for comparison + length length of key + + NOTES: + If length is 0, comparison is done using the length of the + record being compared against. + + RETURN + = 0 key of record == key + != 0 key of record != key + */ + +static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key, + size_t length) +{ + size_t rec_keylength; + uchar *rec_key= (uchar*) my_hash_key(hash, pos->data, &rec_keylength, 1); + return ((length && length != rec_keylength) || + my_strnncoll(hash->charset, (uchar*) rec_key, rec_keylength, + (uchar*) key, rec_keylength)); +} + + + /* Write a hash-key to the hash-index */ + +my_bool my_hash_insert(HASH *info, const uchar *record) +{ + int flag; + size_t idx,halfbuff,first_index; + my_hash_value_type hash_nr; + uchar *ptr_to_rec= NULL, *ptr_to_rec2= NULL; + HASH_LINK *data, *empty, *gpos= NULL, *gpos2= NULL, *pos; + + if (HASH_UNIQUE & info->flags) + { + uchar *key= (uchar*) my_hash_key(info, record, &idx, 1); + if (my_hash_search(info, key, idx)) + return(TRUE); /* Duplicate entry */ + } + + flag=0; + if (!(empty=(HASH_LINK*) alloc_dynamic(&info->array))) + return(TRUE); /* No more memory */ + + data=dynamic_element(&info->array,0,HASH_LINK*); + halfbuff= info->blength >> 1; + + idx=first_index=info->records-halfbuff; + if (idx != info->records) /* If some records */ + { + do + { + pos=data+idx; + hash_nr=rec_hashnr(info,pos->data); + if (flag == 0) /* First loop; Check if ok */ + if (my_hash_mask(hash_nr, info->blength, info->records) != first_index) + break; + if (!(hash_nr & halfbuff)) + { /* Key will not move */ + if (!(flag & LOWFIND)) + { + if (flag & HIGHFIND) + { + flag=LOWFIND | HIGHFIND; + /* key shall be moved to the current empty position */ + gpos=empty; + ptr_to_rec=pos->data; + empty=pos; /* This place is now free */ + } + else + { + flag=LOWFIND | LOWUSED; /* key isn't changed */ + gpos=pos; + ptr_to_rec=pos->data; + } + } + else + { + if (!(flag & LOWUSED)) + { + /* Change link of previous LOW-key */ + gpos->data=ptr_to_rec; + gpos->next= (uint) (pos-data); + flag= (flag & HIGHFIND) | (LOWFIND | LOWUSED); + } + gpos=pos; + ptr_to_rec=pos->data; + } + } + else + { /* key will be moved */ + if (!(flag & HIGHFIND)) + { + flag= (flag & LOWFIND) | HIGHFIND; + /* key shall be moved to the last (empty) position */ + gpos2 = empty; empty=pos; + ptr_to_rec2=pos->data; + } + else + { + if (!(flag & HIGHUSED)) + { + /* Change link of previous hash-key and save */ + gpos2->data=ptr_to_rec2; + gpos2->next=(uint) (pos-data); + flag= (flag & LOWFIND) | (HIGHFIND | HIGHUSED); + } + gpos2=pos; + ptr_to_rec2=pos->data; + } + } + } + while ((idx=pos->next) != NO_RECORD); + + if ((flag & (LOWFIND | LOWUSED)) == LOWFIND) + { + gpos->data=ptr_to_rec; + gpos->next=NO_RECORD; + } + if ((flag & (HIGHFIND | HIGHUSED)) == HIGHFIND) + { + gpos2->data=ptr_to_rec2; + gpos2->next=NO_RECORD; + } + } + /* Check if we are at the empty position */ + + idx= my_hash_mask(rec_hashnr(info, record), info->blength, info->records + 1); + pos=data+idx; + if (pos == empty) + { + pos->data=(uchar*) record; + pos->next=NO_RECORD; + } + else + { + /* Check if more records in same hash-nr family */ + empty[0]=pos[0]; + gpos= data + my_hash_rec_mask(info, pos, info->blength, info->records + 1); + if (pos == gpos) + { + pos->data=(uchar*) record; + pos->next=(uint) (empty - data); + } + else + { + pos->data=(uchar*) record; + pos->next=NO_RECORD; + movelink(data,(uint) (pos-data),(uint) (gpos-data),(uint) (empty-data)); + } + } + if (++info->records == info->blength) + info->blength+= info->blength; + return(0); +} + + +/****************************************************************************** +** Remove one record from hash-table. The record with the same record +** ptr is removed. +** if there is a free-function it's called for record if found +******************************************************************************/ + +my_bool my_hash_delete(HASH *hash, uchar *record) +{ + size_t blength; + uint pos2, idx, empty_index; + my_hash_value_type pos_hashnr, lastpos_hashnr; + HASH_LINK *data,*lastpos,*gpos,*pos,*pos3,*empty; + DBUG_ENTER("my_hash_delete"); + if (!hash->records) + DBUG_RETURN(1); + + blength=hash->blength; + data=dynamic_element(&hash->array,0,HASH_LINK*); + /* Search after record with key */ + pos= data + my_hash_mask(rec_hashnr(hash, record), blength, hash->records); + gpos = 0; + + while (pos->data != record) + { + gpos=pos; + if (pos->next == NO_RECORD) + DBUG_RETURN(1); /* Key not found */ + pos=data+pos->next; + } + + if ( --(hash->records) < hash->blength >> 1) hash->blength>>=1; + lastpos=data+hash->records; + + /* Remove link to record */ + empty=pos; empty_index=(uint) (empty-data); + if (gpos) + gpos->next=pos->next; /* unlink current ptr */ + else if (pos->next != NO_RECORD) + { + empty=data+(empty_index=pos->next); + pos->data=empty->data; + pos->next=empty->next; + } + + if (empty == lastpos) /* last key at wrong pos or no next link */ + goto exit; + + /* Move the last key (lastpos) */ + lastpos_hashnr=rec_hashnr(hash,lastpos->data); + /* pos is where lastpos should be */ + pos= data + my_hash_mask(lastpos_hashnr, hash->blength, hash->records); + if (pos == empty) /* Move to empty position. */ + { + empty[0]=lastpos[0]; + goto exit; + } + pos_hashnr=rec_hashnr(hash,pos->data); + /* pos3 is where the pos should be */ + pos3= data + my_hash_mask(pos_hashnr, hash->blength, hash->records); + if (pos != pos3) + { /* pos is on wrong posit */ + empty[0]=pos[0]; /* Save it here */ + pos[0]=lastpos[0]; /* This should be here */ + movelink(data,(uint) (pos-data),(uint) (pos3-data),empty_index); + goto exit; + } + pos2= my_hash_mask(lastpos_hashnr, blength, hash->records + 1); + if (pos2 == my_hash_mask(pos_hashnr, blength, hash->records + 1)) + { /* Identical key-positions */ + if (pos2 != hash->records) + { + empty[0]=lastpos[0]; + movelink(data,(uint) (lastpos-data),(uint) (pos-data),empty_index); + goto exit; + } + idx= (uint) (pos-data); /* Link pos->next after lastpos */ + } + else idx= NO_RECORD; /* Different positions merge */ + + empty[0]=lastpos[0]; + movelink(data,idx,empty_index,pos->next); + pos->next=empty_index; + +exit: + (void) pop_dynamic(&hash->array); + if (hash->free) + (*hash->free)((uchar*) record); + DBUG_RETURN(0); +} + + /* + Update keys when record has changed. + This is much more efficent than using a delete & insert. + */ + +my_bool my_hash_update(HASH *hash, uchar *record, uchar *old_key, + size_t old_key_length) +{ + uint new_index,new_pos_index,records; + size_t blength, idx, empty; + HASH_LINK org_link,*data,*previous,*pos; + DBUG_ENTER("my_hash_update"); + + if (HASH_UNIQUE & hash->flags) + { + HASH_SEARCH_STATE state; + uchar *found, *new_key= (uchar*) my_hash_key(hash, record, &idx, 1); + if ((found= my_hash_first(hash, new_key, idx, &state))) + { + do + { + if (found != record) + DBUG_RETURN(1); /* Duplicate entry */ + } + while ((found= my_hash_next(hash, new_key, idx, &state))); + } + } + + data=dynamic_element(&hash->array,0,HASH_LINK*); + blength=hash->blength; records=hash->records; + + /* Search after record with key */ + + idx= my_hash_mask(calc_hash(hash, old_key, (old_key_length ? + old_key_length : + hash->key_length)), + blength, records); + new_index= my_hash_mask(rec_hashnr(hash, record), blength, records); + if (idx == new_index) + DBUG_RETURN(0); /* Nothing to do (No record check) */ + previous=0; + for (;;) + { + + if ((pos= data+idx)->data == record) + break; + previous=pos; + if ((idx=pos->next) == NO_RECORD) + DBUG_RETURN(1); /* Not found in links */ + } + org_link= *pos; + empty=idx; + + /* Relink record from current chain */ + + if (!previous) + { + if (pos->next != NO_RECORD) + { + empty=pos->next; + *pos= data[pos->next]; + } + } + else + previous->next=pos->next; /* unlink pos */ + + /* Move data to correct position */ + if (new_index == empty) + { + /* + At this point record is unlinked from the old chain, thus it holds + random position. By the chance this position is equal to position + for the first element in the new chain. That means updated record + is the only record in the new chain. + */ + if (empty != idx) + { + /* + Record was moved while unlinking it from the old chain. + Copy data to a new position. + */ + data[empty]= org_link; + } + data[empty].next= NO_RECORD; + DBUG_RETURN(0); + } + pos=data+new_index; + new_pos_index= my_hash_rec_mask(hash, pos, blength, records); + if (new_index != new_pos_index) + { /* Other record in wrong position */ + data[empty] = *pos; + movelink(data,new_index,new_pos_index,(uint)empty); + org_link.next=NO_RECORD; + data[new_index]= org_link; + } + else + { /* Link in chain at right position */ + org_link.next=data[new_index].next; + data[empty]=org_link; + data[new_index].next= (uint)empty; + } + DBUG_RETURN(0); +} + + +uchar *my_hash_element(HASH *hash, ulong idx) +{ + if (idx < hash->records) + return dynamic_element(&hash->array,idx,HASH_LINK*)->data; + return 0; +} + + +/* + Replace old row with new row. This should only be used when key + isn't changed +*/ + +void my_hash_replace(HASH *hash, HASH_SEARCH_STATE *current_record, + uchar *new_row) +{ + if (*current_record != NO_RECORD) /* Safety */ + dynamic_element(&hash->array, *current_record, HASH_LINK*)->data= new_row; +} + + +#ifndef DBUG_OFF + +my_bool my_hash_check(HASH *hash) +{ + int error; + uint i,rec_link,found,max_links,seek,links,idx; + uint records; + size_t blength; + HASH_LINK *data,*hash_info; + + records=hash->records; blength=hash->blength; + data=dynamic_element(&hash->array,0,HASH_LINK*); + error=0; + + for (i=found=max_links=seek=0 ; i < records ; i++) + { + if (my_hash_rec_mask(hash, data + i, blength, records) == i) + { + found++; seek++; links=1; + for (idx=data[i].next ; + idx != NO_RECORD && found < records + 1; + idx=hash_info->next) + { + if (idx >= records) + { + DBUG_PRINT("error", + ("Found pointer outside array to %d from link starting at %d", + idx,i)); + error=1; + } + hash_info=data+idx; + seek+= ++links; + if ((rec_link= my_hash_rec_mask(hash, hash_info, + blength, records)) != i) + { + DBUG_PRINT("error", ("Record in wrong link at %d: Start %d " + "Record: 0x%lx Record-link %d", + idx, i, (long) hash_info->data, rec_link)); + error=1; + } + else + found++; + } + if (links > max_links) max_links=links; + } + } + if (found != records) + { + DBUG_PRINT("error",("Found %u of %u records", found, records)); + error=1; + } + if (records) + DBUG_PRINT("info", + ("records: %u seeks: %d max links: %d hitrate: %.2f", + records,seek,max_links,(float) seek / (float) records)); + return error; +} +#endif diff --git a/mysql/mysys/lf_alloc-pin.c b/mysql/mysys/lf_alloc-pin.c new file mode 100644 index 0000000..4f5dbed --- /dev/null +++ b/mysql/mysys/lf_alloc-pin.c @@ -0,0 +1,470 @@ +/* QQ: TODO multi-pinbox */ +/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + wait-free concurrent allocator based on pinning addresses + + It works as follows: every thread (strictly speaking - every CPU, but + it's too difficult to do) has a small array of pointers. They're called + "pins". Before using an object its address must be stored in this array + (pinned). When an object is no longer necessary its address must be + removed from this array (unpinned). When a thread wants to free() an + object it scans all pins of all threads to see if somebody has this + object pinned. If yes - the object is not freed (but stored in a + "purgatory"). To reduce the cost of a single free() pins are not scanned + on every free() but only added to (thread-local) purgatory. On every + LF_PURGATORY_SIZE free() purgatory is scanned and all unpinned objects + are freed. + + Pins are used to solve ABA problem. To use pins one must obey + a pinning protocol: + + 1. Let's assume that PTR is a shared pointer to an object. Shared means + that any thread may modify it anytime to point to a different object + and free the old object. Later the freed object may be potentially + allocated by another thread. If we're unlucky that other thread may + set PTR to point to this object again. This is ABA problem. + 2. Create a local pointer LOCAL_PTR. + 3. Pin the PTR in a loop: + do + { + LOCAL_PTR= PTR; + pin(PTR, PIN_NUMBER); + } while (LOCAL_PTR != PTR) + 4. It is guaranteed that after the loop has ended, LOCAL_PTR + points to an object (or NULL, if PTR may be NULL), that + will never be freed. It is not guaranteed though + that LOCAL_PTR == PTR (as PTR can change any time) + 5. When done working with the object, remove the pin: + unpin(PIN_NUMBER) + 6. When copying pins (as in the list traversing loop: + pin(CUR, 1); + while () + { + do // standard + { // pinning + NEXT=CUR->next; // loop + pin(NEXT, 0); // see #3 + } while (NEXT != CUR->next); // above + ... + ... + CUR=NEXT; + pin(CUR, 1); // copy pin[0] to pin[1] + } + which keeps CUR address constantly pinned), note than pins may be + copied only upwards (!!!), that is pin[N] to pin[M], M > N. + 7. Don't keep the object pinned longer than necessary - the number of + pins you have is limited (and small), keeping an object pinned + prevents its reuse and cause unnecessary mallocs. + + Explanations: + + 3. The loop is important. The following can occur: + thread1> LOCAL_PTR= PTR + thread2> free(PTR); PTR=0; + thread1> pin(PTR, PIN_NUMBER); + now thread1 cannot access LOCAL_PTR, even if it's pinned, + because it points to a freed memory. That is, it *must* + verify that it has indeed pinned PTR, the shared pointer. + + 6. When a thread wants to free some LOCAL_PTR, and it scans + all lists of pins to see whether it's pinned, it does it + upwards, from low pin numbers to high. Thus another thread + must copy an address from one pin to another in the same + direction - upwards, otherwise the scanning thread may + miss it. + + Implementation details: + + Pins are given away from a "pinbox". Pinbox is stack-based allocator. + It used dynarray for storing pins, new elements are allocated by dynarray + as necessary, old are pushed in the stack for reuse. ABA is solved by + versioning a pointer - because we use an array, a pointer to pins is 16 bit, + upper 16 bits are used for a version. +*/ +#include "lf.h" +#include "mysys_priv.h" /* key_memory_lf_node */ + +#define LF_PINBOX_MAX_PINS 65536 + +static void lf_pinbox_real_free(LF_PINS *pins); + +/* + Initialize a pinbox. Normally called from lf_alloc_init. + See the latter for details. +*/ +void lf_pinbox_init(LF_PINBOX *pinbox, uint free_ptr_offset, + lf_pinbox_free_func *free_func, void *free_func_arg) +{ + DBUG_ASSERT(free_ptr_offset % sizeof(void *) == 0); + compile_time_assert(sizeof(LF_PINS) == 64); + lf_dynarray_init(&pinbox->pinarray, sizeof(LF_PINS)); + pinbox->pinstack_top_ver= 0; + pinbox->pins_in_array= 0; + pinbox->free_ptr_offset= free_ptr_offset; + pinbox->free_func= free_func; + pinbox->free_func_arg= free_func_arg; +} + +void lf_pinbox_destroy(LF_PINBOX *pinbox) +{ + lf_dynarray_destroy(&pinbox->pinarray); +} + +/* + Get pins from a pinbox. + + SYNOPSYS + pinbox - + + DESCRIPTION + get a new LF_PINS structure from a stack of unused pins, + or allocate a new one out of dynarray. +*/ +LF_PINS *lf_pinbox_get_pins(LF_PINBOX *pinbox) +{ + uint32 pins, next, top_ver; + LF_PINS *el; + /* + We have an array of max. 64k elements. + The highest index currently allocated is pinbox->pins_in_array. + Freed elements are in a lifo stack, pinstack_top_ver. + pinstack_top_ver is 32 bits; 16 low bits are the index in the + array, to the first element of the list. 16 high bits are a version + (every time the 16 low bits are updated, the 16 high bits are + incremented). Versioning prevents the ABA problem. + */ + top_ver= pinbox->pinstack_top_ver; + do + { + if (!(pins= top_ver % LF_PINBOX_MAX_PINS)) + { + /* the stack of free elements is empty */ + pins= my_atomic_add32((int32 volatile*) &pinbox->pins_in_array, 1)+1; + if (unlikely(pins >= LF_PINBOX_MAX_PINS)) + return 0; + /* + note that the first allocated element has index 1 (pins==1). + index 0 is reserved to mean "NULL pointer" + */ + el= (LF_PINS *)lf_dynarray_lvalue(&pinbox->pinarray, pins); + if (unlikely(!el)) + return 0; + break; + } + el= (LF_PINS *)lf_dynarray_value(&pinbox->pinarray, pins); + next= el->link; + } while (!my_atomic_cas32((int32 volatile*) &pinbox->pinstack_top_ver, + (int32*) &top_ver, + top_ver-pins+next+LF_PINBOX_MAX_PINS)); + /* + set el->link to the index of el in the dynarray (el->link has two usages: + - if element is allocated, it's its own index + - if element is free, it's its next element in the free stack + */ + el->link= pins; + el->purgatory_count= 0; + el->pinbox= pinbox; + return el; +} + +/* + Put pins back to a pinbox. + + DESCRIPTION + empty the purgatory (XXX deadlock warning below!), + push LF_PINS structure to a stack +*/ +void lf_pinbox_put_pins(LF_PINS *pins) +{ + LF_PINBOX *pinbox= pins->pinbox; + uint32 top_ver, nr; + nr= pins->link; + +#ifndef DBUG_OFF + { + /* This thread should not hold any pin. */ + int i; + for (i= 0; i < LF_PINBOX_PINS; i++) + DBUG_ASSERT(pins->pin[i] == 0); + } +#endif /* DBUG_OFF */ + + /* + XXX this will deadlock if other threads will wait for + the caller to do something after _lf_pinbox_put_pins(), + and they would have pinned addresses that the caller wants to free. + Thus: only free pins when all work is done and nobody can wait for you!!! + */ + while (pins->purgatory_count) + { + lf_pinbox_real_free(pins); + if (pins->purgatory_count) + { + my_thread_yield(); + } + } + top_ver= pinbox->pinstack_top_ver; + do + { + pins->link= top_ver % LF_PINBOX_MAX_PINS; + } while (!my_atomic_cas32((int32 volatile*) &pinbox->pinstack_top_ver, + (int32*) &top_ver, + top_ver-pins->link+nr+LF_PINBOX_MAX_PINS)); +} + +/* + Get the next pointer in the purgatory list. + Note that next_node is not used to avoid the extra volatile. +*/ +#define pnext_node(P, X) (*((void **)(((char *)(X)) + (P)->free_ptr_offset))) + +static inline void add_to_purgatory(LF_PINS *pins, void *addr) +{ + pnext_node(pins->pinbox, addr)= pins->purgatory; + pins->purgatory= addr; + pins->purgatory_count++; +} + +/* + Free an object allocated via pinbox allocator + + DESCRIPTION + add an object to purgatory. if necessary, call lf_pinbox_real_free() + to actually free something. +*/ +void lf_pinbox_free(LF_PINS *pins, void *addr) +{ + add_to_purgatory(pins, addr); + if (pins->purgatory_count % LF_PURGATORY_SIZE == 0) + lf_pinbox_real_free(pins); +} + +struct st_match_and_save_arg { + LF_PINS *pins; + LF_PINBOX *pinbox; + void *old_purgatory; +}; + +/* + Callback for lf_dynarray_iterate: + Scan all pins of all threads, for each active (non-null) pin, + scan the current thread's purgatory. If present there, move it + to a new purgatory. At the end, the old purgatory will contain + pointers not pinned by any thread. +*/ +static int match_and_save(LF_PINS *el, struct st_match_and_save_arg *arg) +{ + int i; + LF_PINS *el_end= el + LF_DYNARRAY_LEVEL_LENGTH; + for (; el < el_end; el++) + { + for (i= 0; i < LF_PINBOX_PINS; i++) + { + void *p= el->pin[i]; + if (p) + { + void *cur= arg->old_purgatory; + void **list_prev= &arg->old_purgatory; + while (cur) + { + void *next= pnext_node(arg->pinbox, cur); + + if (p == cur) + { + /* pinned - keeping */ + add_to_purgatory(arg->pins, cur); + /* unlink from old purgatory */ + *list_prev= next; + } + else + list_prev= (void **)((char *)cur+arg->pinbox->free_ptr_offset); + cur= next; + } + if (!arg->old_purgatory) + return 1; + } + } + } + return 0; +} + +/* + Scan the purgatory and free everything that can be freed +*/ +static void lf_pinbox_real_free(LF_PINS *pins) +{ + LF_PINBOX *pinbox= pins->pinbox; + + /* Store info about current purgatory. */ + struct st_match_and_save_arg arg = {pins, pinbox, pins->purgatory}; + /* Reset purgatory. */ + pins->purgatory= NULL; + pins->purgatory_count= 0; + + lf_dynarray_iterate(&pinbox->pinarray, + (lf_dynarray_func)match_and_save, &arg); + + if (arg.old_purgatory) + { + /* Some objects in the old purgatory were not pinned, free them. */ + void *last= arg.old_purgatory; + while (pnext_node(pinbox, last)) + last= pnext_node(pinbox, last); + pinbox->free_func(arg.old_purgatory, last, pinbox->free_func_arg); + } +} + +#define next_node(P, X) (*((uchar * volatile *)(((uchar *)(X)) + (P)->free_ptr_offset))) +#define anext_node(X) next_node(&allocator->pinbox, (X)) + +/* lock-free memory allocator for fixed-size objects */ + +LF_REQUIRE_PINS(1) + +/* + callback for lf_pinbox_real_free to free a list of unpinned objects - + add it back to the allocator stack + + DESCRIPTION + 'first' and 'last' are the ends of the linked list of nodes: + first->el->el->....->el->last. Use first==last to free only one element. +*/ +static void alloc_free(uchar *first, + uchar volatile *last, + LF_ALLOCATOR *allocator) +{ + /* + we need a union here to access type-punned pointer reliably. + otherwise gcc -fstrict-aliasing will not see 'tmp' changed in the loop + */ + union { uchar * node; void *ptr; } tmp; + tmp.node= allocator->top; + do + { + anext_node(last)= tmp.node; + } while (!my_atomic_casptr((void **)(char *)&allocator->top, + (void **)&tmp.ptr, first) && LF_BACKOFF); +} + +/** + Initialize lock-free allocator. + + @param allocator Allocator structure to initialize. + @param size A size of an object to allocate. + @param free_ptr_offset An offset inside the object to a sizeof(void *) + memory that is guaranteed to be unused after + the object is put in the purgatory. Unused by + ANY thread, not only the purgatory owner. + This memory will be used to link + waiting-to-be-freed objects in a purgatory list. + @param ctor Function to be called after object was + malloc()'ed. + @param dtor Function to be called before object is free()'d. +*/ + +void lf_alloc_init2(LF_ALLOCATOR *allocator, uint size, uint free_ptr_offset, + lf_allocator_func *ctor, lf_allocator_func *dtor) +{ + lf_pinbox_init(&allocator->pinbox, free_ptr_offset, + (lf_pinbox_free_func *)alloc_free, allocator); + allocator->top= 0; + allocator->mallocs= 0; + allocator->element_size= size; + allocator->constructor= ctor; + allocator->destructor= dtor; + DBUG_ASSERT(size >= sizeof(void*) + free_ptr_offset); +} + +/* + destroy the allocator, free everything that's in it + + NOTE + As every other init/destroy function here and elsewhere it + is not thread safe. No, this function is no different, ensure + that no thread needs the allocator before destroying it. + We are not responsible for any damage that may be caused by + accessing the allocator when it is being or has been destroyed. + Oh yes, and don't put your cat in a microwave. +*/ +void lf_alloc_destroy(LF_ALLOCATOR *allocator) +{ + uchar *node= allocator->top; + while (node) + { + uchar *tmp= anext_node(node); + if (allocator->destructor) + allocator->destructor(node); + my_free(node); + node= tmp; + } + lf_pinbox_destroy(&allocator->pinbox); + allocator->top= 0; +} + +/* + Allocate and return an new object. + + DESCRIPTION + Pop an unused object from the stack or malloc it is the stack is empty. + pin[0] is used, it's removed on return. +*/ +void *lf_alloc_new(LF_PINS *pins) +{ + LF_ALLOCATOR *allocator= (LF_ALLOCATOR *)(pins->pinbox->free_func_arg); + uchar *node; + for (;;) + { + do + { + node= allocator->top; + lf_pin(pins, 0, node); + } while (node != allocator->top && LF_BACKOFF); + if (!node) + { + node= (void *)my_malloc(key_memory_lf_node, + allocator->element_size, MYF(MY_WME)); + if (allocator->constructor) + allocator->constructor(node); +#ifdef MY_LF_EXTRA_DEBUG + if (likely(node != 0)) + my_atomic_add32(&allocator->mallocs, 1); +#endif + break; + } + if (my_atomic_casptr((void **)(char *)&allocator->top, + (void *)&node, anext_node(node))) + break; + } + lf_unpin(pins, 0); + return node; +} + +/* + count the number of objects in a pool. + + NOTE + This is NOT thread-safe !!! +*/ +uint lf_alloc_pool_count(LF_ALLOCATOR *allocator) +{ + uint i; + uchar *node; + for (node= allocator->top, i= 0; node; node= anext_node(node), i++) + /* no op */; + return i; +} + diff --git a/mysql/mysys/lf_dynarray.c b/mysql/mysys/lf_dynarray.c new file mode 100644 index 0000000..c5cb50f --- /dev/null +++ b/mysql/mysys/lf_dynarray.c @@ -0,0 +1,208 @@ +/* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Analog of DYNAMIC_ARRAY that never reallocs + (so no pointer into the array may ever become invalid). + + Memory is allocated in non-contiguous chunks. + This data structure is not space efficient for sparse arrays. + + Every element is aligned to sizeof(element) boundary + (to avoid false sharing if element is big enough). + + LF_DYNARRAY is a recursive structure. On the zero level + LF_DYNARRAY::level[0] it's an array of LF_DYNARRAY_LEVEL_LENGTH elements, + on the first level it's an array of LF_DYNARRAY_LEVEL_LENGTH pointers + to arrays of elements, on the second level it's an array of pointers + to arrays of pointers to arrays of elements. And so on. + + With four levels the number of elements is limited to 4311810304 + (but as in all functions index is uint, the real limit is 2^32-1) + + Actually, it's wait-free, not lock-free ;-) +*/ + +#include +#include +#include +#include +#include + +void lf_dynarray_init(LF_DYNARRAY *array, uint element_size) +{ + memset(array, 0, sizeof(*array)); + array->size_of_element= element_size; +} + +static void recursive_free(void **alloc, int level) +{ + if (!alloc) + return; + + if (level) + { + int i; + for (i= 0; i < LF_DYNARRAY_LEVEL_LENGTH; i++) + recursive_free(alloc[i], level-1); + my_free(alloc); + } + else + my_free(alloc[-1]); +} + +void lf_dynarray_destroy(LF_DYNARRAY *array) +{ + int i; + for (i= 0; i < LF_DYNARRAY_LEVELS; i++) + recursive_free(array->level[i], i); +} + +static const ulong dynarray_idxes_in_prev_levels[LF_DYNARRAY_LEVELS]= +{ + 0, /* +1 here to to avoid -1's below */ + LF_DYNARRAY_LEVEL_LENGTH, + LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH + + LF_DYNARRAY_LEVEL_LENGTH, + LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH * + LF_DYNARRAY_LEVEL_LENGTH + LF_DYNARRAY_LEVEL_LENGTH * + LF_DYNARRAY_LEVEL_LENGTH + LF_DYNARRAY_LEVEL_LENGTH +}; + +static const ulong dynarray_idxes_in_prev_level[LF_DYNARRAY_LEVELS]= +{ + 0, /* +1 here to to avoid -1's below */ + LF_DYNARRAY_LEVEL_LENGTH, + LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH, + LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH * + LF_DYNARRAY_LEVEL_LENGTH, +}; + +/* + Returns a valid lvalue pointer to the element number 'idx'. + Allocates memory if necessary. +*/ +void *lf_dynarray_lvalue(LF_DYNARRAY *array, uint idx) +{ + void * ptr, * volatile * ptr_ptr= 0; + int i; + + for (i= LF_DYNARRAY_LEVELS-1; idx < dynarray_idxes_in_prev_levels[i]; i--) + /* no-op */; + ptr_ptr= &array->level[i]; + idx-= dynarray_idxes_in_prev_levels[i]; + for (; i > 0; i--) + { + if (!(ptr= *ptr_ptr)) + { + void *alloc= my_malloc(key_memory_lf_dynarray, + LF_DYNARRAY_LEVEL_LENGTH * sizeof(void *), + MYF(MY_WME|MY_ZEROFILL)); + if (unlikely(!alloc)) + return(NULL); + if (my_atomic_casptr(ptr_ptr, &ptr, alloc)) + ptr= alloc; + else + my_free(alloc); + } + ptr_ptr= ((void **)ptr) + idx / dynarray_idxes_in_prev_level[i]; + idx%= dynarray_idxes_in_prev_level[i]; + } + if (!(ptr= *ptr_ptr)) + { + uchar *alloc, *data; + alloc= my_malloc(key_memory_lf_dynarray, + LF_DYNARRAY_LEVEL_LENGTH * array->size_of_element + + MY_MAX(array->size_of_element, sizeof(void *)), + MYF(MY_WME|MY_ZEROFILL)); + if (unlikely(!alloc)) + return(NULL); + /* reserve the space for free() address */ + data= alloc + sizeof(void *); + { /* alignment */ + intptr mod= ((intptr)data) % array->size_of_element; + if (mod) + data+= array->size_of_element - mod; + } + ((void **)data)[-1]= alloc; /* free() will need the original pointer */ + if (my_atomic_casptr(ptr_ptr, &ptr, data)) + ptr= data; + else + my_free(alloc); + } + return ((uchar*)ptr) + array->size_of_element * idx; +} + +/* + Returns a pointer to the element number 'idx' + or NULL if an element does not exists +*/ +void *lf_dynarray_value(LF_DYNARRAY *array, uint idx) +{ + void * ptr, * volatile * ptr_ptr= 0; + int i; + + for (i= LF_DYNARRAY_LEVELS-1; idx < dynarray_idxes_in_prev_levels[i]; i--) + /* no-op */; + ptr_ptr= &array->level[i]; + idx-= dynarray_idxes_in_prev_levels[i]; + for (; i > 0; i--) + { + if (!(ptr= *ptr_ptr)) + return(NULL); + ptr_ptr= ((void **)ptr) + idx / dynarray_idxes_in_prev_level[i]; + idx %= dynarray_idxes_in_prev_level[i]; + } + if (!(ptr= *ptr_ptr)) + return(NULL); + return ((uchar*)ptr) + array->size_of_element * idx; +} + +static int recursive_iterate(LF_DYNARRAY *array, void *ptr, int level, + lf_dynarray_func func, void *arg) +{ + int res, i; + if (!ptr) + return 0; + if (!level) + return func(ptr, arg); + for (i= 0; i < LF_DYNARRAY_LEVEL_LENGTH; i++) + if ((res= recursive_iterate(array, ((void **)ptr)[i], level-1, func, arg))) + return res; + return 0; +} + +/* + Calls func(array, arg) on every array of LF_DYNARRAY_LEVEL_LENGTH elements + in lf_dynarray. + + DESCRIPTION + lf_dynarray consists of a set of arrays, LF_DYNARRAY_LEVEL_LENGTH elements + each. lf_dynarray_iterate() calls user-supplied function on every array + from the set. It is the fastest way to scan the array, faster than + for (i=0; i < N; i++) { func(lf_dynarray_value(dynarray, i)); } + + NOTE + if func() returns non-zero, the scan is aborted +*/ +int lf_dynarray_iterate(LF_DYNARRAY *array, lf_dynarray_func func, void *arg) +{ + int i, res; + for (i= 0; i < LF_DYNARRAY_LEVELS; i++) + if ((res= recursive_iterate(array, array->level[i], i, func, arg))) + return res; + return 0; +} + diff --git a/mysql/mysys/lf_hash.c b/mysql/mysys/lf_hash.c new file mode 100644 index 0000000..b55734f --- /dev/null +++ b/mysql/mysys/lf_hash.c @@ -0,0 +1,722 @@ +/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + extensible hash + + TODO + try to get rid of dummy nodes ? + for non-unique hash, count only _distinct_ values + (but how to do it in lf_hash_delete ?) +*/ +#include +#include +#include +#include +#include +#include + +LF_REQUIRE_PINS(3) + +/* An element of the list */ +typedef struct { + intptr volatile link; /* a pointer to the next element in a listand a flag */ + uint32 hashnr; /* reversed hash number, for sorting */ + const uchar *key; + size_t keylen; + /* + data is stored here, directly after the keylen. + thus the pointer to data is (void*)(slist_element_ptr+1) + */ +} LF_SLIST; + +const int LF_HASH_OVERHEAD= sizeof(LF_SLIST); + +/* + a structure to pass the context (pointers two the three successive elements + in a list) from my_lfind to linsert/ldelete +*/ +typedef struct { + intptr volatile *prev; + LF_SLIST *curr, *next; +} CURSOR; + +/* + the last bit in LF_SLIST::link is a "deleted" flag. + the helper macros below convert it to a pure pointer or a pure flag +*/ +#define PTR(V) (LF_SLIST *)((V) & (~(intptr)1)) +#define DELETED(V) ((V) & 1) + +/* + DESCRIPTION + Search for hashnr/key/keylen in the list starting from 'head' and + position the cursor. The list is ORDER BY hashnr, key + + RETURN + 0 - not found + 1 - found + + NOTE + cursor is positioned in either case + pins[0..2] are used, they are NOT removed on return +*/ +static int my_lfind(LF_SLIST * volatile *head, CHARSET_INFO *cs, uint32 hashnr, + const uchar *key, size_t keylen, CURSOR *cursor, LF_PINS *pins) +{ + uint32 cur_hashnr; + const uchar *cur_key; + size_t cur_keylen; + intptr link; + +retry: + cursor->prev= (intptr *)head; + do { /* PTR() isn't necessary below, head is a dummy node */ + cursor->curr= (LF_SLIST *)(*cursor->prev); + lf_pin(pins, 1, cursor->curr); + } while (*cursor->prev != (intptr)cursor->curr && LF_BACKOFF); + for (;;) + { + if (unlikely(!cursor->curr)) + return 0; /* end of the list */ + do { + /* QQ: XXX or goto retry ? */ + link= cursor->curr->link; + cursor->next= PTR(link); + lf_pin(pins, 0, cursor->next); + } while (link != cursor->curr->link && LF_BACKOFF); + cur_hashnr= cursor->curr->hashnr; + cur_key= cursor->curr->key; + cur_keylen= cursor->curr->keylen; + if (*cursor->prev != (intptr)cursor->curr) + { + (void)LF_BACKOFF; + goto retry; + } + if (!DELETED(link)) + { + if (cur_hashnr >= hashnr) + { + int r= 1; + if (cur_hashnr > hashnr || + (r= my_strnncoll(cs, (uchar*) cur_key, cur_keylen, (uchar*) key, + keylen)) >= 0) + return !r; + } + cursor->prev= &(cursor->curr->link); + lf_pin(pins, 2, cursor->curr); + } + else + { + /* + we found a deleted node - be nice, help the other thread + and remove this deleted node + */ + if (my_atomic_casptr((void **)cursor->prev, + (void **)&cursor->curr, cursor->next)) + lf_pinbox_free(pins, cursor->curr); + else + { + (void)LF_BACKOFF; + goto retry; + } + } + cursor->curr= cursor->next; + lf_pin(pins, 1, cursor->curr); + } +} + + +/** + Search for list element satisfying condition specified by match + function and position cursor on it. + + @param head Head of the list to search in. + @param first_hashnr Hash value to start search from. + @param last_hashnr Hash value to stop search after. + @param match Match function. + @param cursor Cursor to be position. + @param pins LF_PINS for the calling thread to be used during + search for pinning result. + + @retval 0 - not found + @retval 1 - found +*/ + +static int my_lfind_match(LF_SLIST * volatile *head, + uint32 first_hashnr, uint32 last_hashnr, + lf_hash_match_func *match, + CURSOR *cursor, LF_PINS *pins) +{ + uint32 cur_hashnr; + intptr link; + +retry: + cursor->prev= (intptr *)head; + do { /* PTR() isn't necessary below, head is a dummy node */ + cursor->curr= (LF_SLIST *)(*cursor->prev); + lf_pin(pins, 1, cursor->curr); + } while (*cursor->prev != (intptr)cursor->curr && LF_BACKOFF); + for (;;) + { + if (unlikely(!cursor->curr)) + return 0; /* end of the list */ + do { + /* QQ: XXX or goto retry ? */ + link= cursor->curr->link; + cursor->next= PTR(link); + lf_pin(pins, 0, cursor->next); + } while (link != cursor->curr->link && LF_BACKOFF); + cur_hashnr= cursor->curr->hashnr; + if (*cursor->prev != (intptr)cursor->curr) + { + (void)LF_BACKOFF; + goto retry; + } + if (!DELETED(link)) + { + if (cur_hashnr >= first_hashnr) + { + if (cur_hashnr > last_hashnr) + return 0; + + if (cur_hashnr & 1) + { + /* Normal node. Check if element matches condition. */ + if ((*match)((uchar *)(cursor->curr + 1))) + return 1; + } + else + { + /* + Dummy node. Nothing to check here. + + Still thanks to the fact that dummy nodes are never deleted we + can save it as a safe place to restart iteration if ever needed. + */ + head= (LF_SLIST * volatile *)&(cursor->curr->link); + } + } + + cursor->prev= &(cursor->curr->link); + lf_pin(pins, 2, cursor->curr); + } + else + { + /* + we found a deleted node - be nice, help the other thread + and remove this deleted node + */ + if (my_atomic_casptr((void **)cursor->prev, + (void **)&cursor->curr, cursor->next)) + lf_pinbox_free(pins, cursor->curr); + else + { + (void)LF_BACKOFF; + goto retry; + } + } + cursor->curr= cursor->next; + lf_pin(pins, 1, cursor->curr); + } +} + + +/* + DESCRIPTION + insert a 'node' in the list that starts from 'head' in the correct + position (as found by my_lfind) + + RETURN + 0 - inserted + not 0 - a pointer to a duplicate (not pinned and thus unusable) + + NOTE + it uses pins[0..2], on return all pins are removed. + if there're nodes with the same key value, a new node is added before them. +*/ +static LF_SLIST *linsert(LF_SLIST * volatile *head, CHARSET_INFO *cs, + LF_SLIST *node, LF_PINS *pins, uint flags) +{ + CURSOR cursor; + int res; + + for (;;) + { + if (my_lfind(head, cs, node->hashnr, node->key, node->keylen, + &cursor, pins) && + (flags & LF_HASH_UNIQUE)) + { + res= 0; /* duplicate found */ + break; + } + else + { + node->link= (intptr)cursor.curr; + DBUG_ASSERT(node->link != (intptr)node); /* no circular references */ + DBUG_ASSERT(cursor.prev != &node->link); /* no circular references */ + if (my_atomic_casptr((void **)cursor.prev, (void **)&cursor.curr, node)) + { + res= 1; /* inserted ok */ + break; + } + } + } + lf_unpin(pins, 0); + lf_unpin(pins, 1); + lf_unpin(pins, 2); + /* + Note that cursor.curr is not pinned here and the pointer is unreliable, + the object may dissapear anytime. But if it points to a dummy node, the + pointer is safe, because dummy nodes are never freed - initialize_bucket() + uses this fact. + */ + return res ? 0 : cursor.curr; +} + +/* + DESCRIPTION + deletes a node as identified by hashnr/keey/keylen from the list + that starts from 'head' + + RETURN + 0 - ok + 1 - not found + + NOTE + it uses pins[0..2], on return all pins are removed. +*/ +static int ldelete(LF_SLIST * volatile *head, CHARSET_INFO *cs, uint32 hashnr, + const uchar *key, uint keylen, LF_PINS *pins) +{ + CURSOR cursor; + int res; + + for (;;) + { + if (!my_lfind(head, cs, hashnr, key, keylen, &cursor, pins)) + { + res= 1; /* not found */ + break; + } + else + { + /* mark the node deleted */ + if (my_atomic_casptr((void **)&(cursor.curr->link), + (void **)&cursor.next, + (void *)(((intptr)cursor.next) | 1))) + { + /* and remove it from the list */ + if (my_atomic_casptr((void **)cursor.prev, + (void **)&cursor.curr, cursor.next)) + lf_pinbox_free(pins, cursor.curr); + else + { + /* + somebody already "helped" us and removed the node ? + Let's check if we need to help that someone too! + (to ensure the number of "set DELETED flag" actions + is equal to the number of "remove from the list" actions) + */ + my_lfind(head, cs, hashnr, key, keylen, &cursor, pins); + } + res= 0; + break; + } + } + } + lf_unpin(pins, 0); + lf_unpin(pins, 1); + lf_unpin(pins, 2); + return res; +} + +/* + DESCRIPTION + searches for a node as identified by hashnr/keey/keylen in the list + that starts from 'head' + + RETURN + 0 - not found + node - found + + NOTE + it uses pins[0..2], on return the pin[2] keeps the node found + all other pins are removed. +*/ +static LF_SLIST *my_lsearch(LF_SLIST * volatile *head, CHARSET_INFO *cs, + uint32 hashnr, const uchar *key, uint keylen, + LF_PINS *pins) +{ + CURSOR cursor; + int res= my_lfind(head, cs, hashnr, key, keylen, &cursor, pins); + if (res) + lf_pin(pins, 2, cursor.curr); + lf_unpin(pins, 0); + lf_unpin(pins, 1); + return res ? cursor.curr : 0; +} + +static inline const uchar* hash_key(const LF_HASH *hash, + const uchar *record, size_t *length) +{ + if (hash->get_key) + return (*hash->get_key)(record, length, 0); + *length= hash->key_length; + return record + hash->key_offset; +} + +/* + Compute the hash key value from the raw key. + + @note, that the hash value is limited to 2^31, because we need one + bit to distinguish between normal and dummy nodes. +*/ +static inline uint calc_hash(LF_HASH *hash, const uchar *key, size_t keylen) +{ + return (hash->hash_function(hash, key, keylen)) & INT_MAX32; +} + +#define MAX_LOAD 1.0 /* average number of elements in a bucket */ + +static int initialize_bucket(LF_HASH *, LF_SLIST * volatile*, uint, LF_PINS *); + + +/** + Adaptor function which allows to use hash function from character + set with LF_HASH. +*/ +static uint cset_hash_sort_adapter(const LF_HASH *hash, const uchar *key, + size_t length) +{ + ulong nr1=1, nr2=4; + hash->charset->coll->hash_sort(hash->charset, key, length, &nr1, &nr2); + return (uint)nr1; +} + + +/* + Initializes lf_hash, the arguments are compatible with hash_init + + @note element_size sets both the size of allocated memory block for + lf_alloc and a size of memcpy'ed block size in lf_hash_insert. Typically + they are the same, indeed. But LF_HASH::element_size can be decreased + after lf_hash_init, and then lf_alloc will allocate larger block that + lf_hash_insert will copy over. It is desireable if part of the element + is expensive to initialize - for example if there is a mutex or + DYNAMIC_ARRAY. In this case they should be initialize in the + LF_ALLOCATOR::constructor, and lf_hash_insert should not overwrite them. + See wt_init() for example. + As an alternative to using the above trick with decreasing + LF_HASH::element_size one can provide an "initialize" hook that will finish + initialization of object provided by LF_ALLOCATOR and set element key from + object passed as parameter to lf_hash_insert instead of doing simple memcpy. +*/ +void lf_hash_init2(LF_HASH *hash, uint element_size, uint flags, + uint key_offset, uint key_length, my_hash_get_key get_key, + CHARSET_INFO *charset, lf_hash_func *hash_function, + lf_allocator_func *ctor, lf_allocator_func *dtor, + lf_hash_init_func *init) +{ + lf_alloc_init2(&hash->alloc, sizeof(LF_SLIST)+element_size, + offsetof(LF_SLIST, key), ctor, dtor); + lf_dynarray_init(&hash->array, sizeof(LF_SLIST *)); + hash->size= 1; + hash->count= 0; + hash->element_size= element_size; + hash->flags= flags; + hash->charset= charset ? charset : &my_charset_bin; + hash->key_offset= key_offset; + hash->key_length= key_length; + hash->get_key= get_key; + hash->hash_function= hash_function ? hash_function : cset_hash_sort_adapter; + hash->initialize= init; + DBUG_ASSERT(get_key ? !key_offset && !key_length : key_length); +} + +void lf_hash_destroy(LF_HASH *hash) +{ + LF_SLIST *el, **head= (LF_SLIST **)lf_dynarray_value(&hash->array, 0); + + if (unlikely(!head)) + return; + el= *head; + + while (el) + { + intptr next= el->link; + if (el->hashnr & 1) + lf_alloc_direct_free(&hash->alloc, el); /* normal node */ + else + my_free(el); /* dummy node */ + el= (LF_SLIST *)next; + } + lf_alloc_destroy(&hash->alloc); + lf_dynarray_destroy(&hash->array); +} + +/* + DESCRIPTION + inserts a new element to a hash. it will have a _copy_ of + data, not a pointer to it. + + RETURN + 0 - inserted + 1 - didn't (unique key conflict) + -1 - out of memory + + NOTE + see linsert() for pin usage notes +*/ +int lf_hash_insert(LF_HASH *hash, LF_PINS *pins, const void *data) +{ + int csize, bucket, hashnr; + LF_SLIST *node, * volatile *el; + + node= (LF_SLIST *)lf_alloc_new(pins); + if (unlikely(!node)) + return -1; + if (hash->initialize) + (*hash->initialize)((uchar*)(node + 1), (const uchar*)data); + else + memcpy(node+1, data, hash->element_size); + node->key= hash_key(hash, (uchar *)(node+1), &node->keylen); + hashnr= calc_hash(hash, node->key, node->keylen); + bucket= hashnr % hash->size; + el= lf_dynarray_lvalue(&hash->array, bucket); + if (unlikely(!el)) + return -1; + if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins))) + return -1; + node->hashnr= my_reverse_bits(hashnr) | 1; /* normal node */ + if (linsert(el, hash->charset, node, pins, hash->flags)) + { + lf_pinbox_free(pins, node); + return 1; + } + csize= hash->size; + if ((my_atomic_add32(&hash->count, 1)+1.0) / csize > MAX_LOAD) + my_atomic_cas32(&hash->size, &csize, csize*2); + return 0; +} + +/* + DESCRIPTION + deletes an element with the given key from the hash (if a hash is + not unique and there're many elements with this key - the "first" + matching element is deleted) + RETURN + 0 - deleted + 1 - didn't (not found) + -1 - out of memory + NOTE + see ldelete() for pin usage notes +*/ +int lf_hash_delete(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen) +{ + LF_SLIST * volatile *el; + uint bucket, hashnr= calc_hash(hash, (uchar *)key, keylen); + + bucket= hashnr % hash->size; + el= lf_dynarray_lvalue(&hash->array, bucket); + if (unlikely(!el)) + return -1; + /* + note that we still need to initialize_bucket here, + we cannot return "node not found", because an old bucket of that + node may've been split and the node was assigned to a new bucket + that was never accessed before and thus is not initialized. + */ + if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins))) + return -1; + if (ldelete(el, hash->charset, my_reverse_bits(hashnr) | 1, + (uchar *)key, keylen, pins)) + { + return 1; + } + my_atomic_add32(&hash->count, -1); + return 0; +} + + +/** + Find hash element corresponding to the key. + + @param hash The hash to search element in. + @param pins Pins for the calling thread which were earlier + obtained from this hash using lf_hash_get_pins(). + @param key Key + @param keylen Key length + + @retval A pointer to an element with the given key (if a hash is not unique + and there're many elements with this key - the "first" matching + element). + @retval NULL - if nothing is found + @retval MY_ERRPTR - if OOM + + @note Uses pins[0..2]. On return pins[0..1] are removed and pins[2] + is used to pin object found. It is also not removed in case when + object is not found/error occurs but pin value is undefined in + this case. + So calling lf_hash_unpin() is mandatory after call to this function + in case of both success and failure. + @sa my_lsearch(). +*/ + +void *lf_hash_search(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen) +{ + LF_SLIST * volatile *el, *found; + uint bucket, hashnr= calc_hash(hash, (uchar *)key, keylen); + + bucket= hashnr % hash->size; + el= lf_dynarray_lvalue(&hash->array, bucket); + if (unlikely(!el)) + return MY_ERRPTR; + if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins))) + return MY_ERRPTR; + found= my_lsearch(el, hash->charset, my_reverse_bits(hashnr) | 1, + (uchar *)key, keylen, pins); + return found ? found+1 : 0; +} + + +/** + Find random hash element which satisfies condition specified by + match function. + + @param hash Hash to search element in. + @param pin Pins for calling thread to be used during search + and for pinning its result. + @param match Pointer to match function. This function takes + pointer to object stored in hash as parameter + and returns 0 if object doesn't satisfy its + condition (and non-0 value if it does). + @param rand_val Random value to be used for selecting hash + bucket from which search in sort-ordered + list needs to be started. + + @retval A pointer to a random element matching condition. + @retval NULL - if nothing is found + @retval MY_ERRPTR - OOM. + + @note This function follows the same pinning protocol as lf_hash_search(), + i.e. uses pins[0..2]. On return pins[0..1] are removed and pins[2] + is used to pin object found. It is also not removed in case when + object is not found/error occurs but its value is undefined in + this case. + So calling lf_hash_unpin() is mandatory after call to this function + in case of both success and failure. +*/ + +void *lf_hash_random_match(LF_HASH *hash, LF_PINS *pins, + lf_hash_match_func *match, + uint rand_val) +{ + /* Convert random value to valid hash value. */ + uint hashnr= (rand_val & INT_MAX32); + uint bucket; + uint32 rev_hashnr; + LF_SLIST * volatile *el; + CURSOR cursor; + int res; + + bucket= hashnr % hash->size; + rev_hashnr= my_reverse_bits(hashnr); + + el= lf_dynarray_lvalue(&hash->array, bucket); + if (unlikely(!el)) + return MY_ERRPTR; + /* + Bucket might be totally empty if it has not been accessed since last + time LF_HASH::size has been increased. In this case we initialize it + by inserting dummy node for this bucket to the correct position in + split-ordered list. This should help future lf_hash_* calls trying to + access the same bucket. + */ + if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins))) + return MY_ERRPTR; + + /* + To avoid bias towards the first matching element in the bucket, we start + looking for elements with inversed hash value greater or equal than + inversed value of our random hash. + */ + res= my_lfind_match(el, rev_hashnr | 1, UINT_MAX32, match, &cursor, pins); + + if (! res && hashnr != 0) + { + /* + We have not found matching element - probably we were too close to + the tail of our split-ordered list. To avoid bias against elements + at the head of the list we restart our search from its head. Unless + we were already searching from it. + + To avoid going through elements at which we have already looked + twice we stop once we reach element from which we have begun our + first search. + */ + el= lf_dynarray_lvalue(&hash->array, 0); + if (unlikely(!el)) + return MY_ERRPTR; + res= my_lfind_match(el, 1, rev_hashnr, match, &cursor, pins); + } + + if (res) + lf_pin(pins, 2, cursor.curr); + lf_unpin(pins, 0); + lf_unpin(pins, 1); + + return res ? cursor.curr + 1 : 0; +} + +static const uchar *dummy_key= (uchar*)""; + +/* + RETURN + 0 - ok + -1 - out of memory +*/ +static int initialize_bucket(LF_HASH *hash, LF_SLIST * volatile *node, + uint bucket, LF_PINS *pins) +{ + uint parent= my_clear_highest_bit(bucket); + LF_SLIST *dummy= (LF_SLIST *)my_malloc(key_memory_lf_slist, + sizeof(LF_SLIST), MYF(MY_WME)); + LF_SLIST **tmp= 0, *cur; + LF_SLIST * volatile *el= lf_dynarray_lvalue(&hash->array, parent); + if (unlikely(!el || !dummy)) + return -1; + if (*el == NULL && bucket && + unlikely(initialize_bucket(hash, el, parent, pins))) + return -1; + dummy->hashnr= my_reverse_bits(bucket) | 0; /* dummy node */ + dummy->key= dummy_key; + dummy->keylen= 0; + if ((cur= linsert(el, hash->charset, dummy, pins, LF_HASH_UNIQUE))) + { + my_free(dummy); + dummy= cur; + } + my_atomic_casptr((void **)node, (void **)&tmp, dummy); + /* + note that if the CAS above failed (after linsert() succeeded), + it would mean that some other thread has executed linsert() for + the same dummy node, its linsert() failed, it picked up our + dummy node (in "dummy= cur") and executed the same CAS as above. + Which means that even if CAS above failed we don't need to retry, + and we should not free(dummy) - there's no memory leak here + */ + return 0; +} diff --git a/mysql/mysys/list.c b/mysql/mysys/list.c new file mode 100644 index 0000000..800149f --- /dev/null +++ b/mysql/mysys/list.c @@ -0,0 +1,114 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Code for handling dubble-linked lists in C +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + + /* Add a element to start of list */ + +LIST *list_add(LIST *root, LIST *element) +{ + DBUG_ENTER("list_add"); + DBUG_PRINT("enter",("root: 0x%lx element: 0x%lx", (long) root, (long) element)); + if (root) + { + if (root->prev) /* If add in mid of list */ + root->prev->next= element; + element->prev=root->prev; + root->prev=element; + } + else + element->prev=0; + element->next=root; + DBUG_RETURN(element); /* New root */ +} + + +LIST *list_delete(LIST *root, LIST *element) +{ + if (element->prev) + element->prev->next=element->next; + else + root=element->next; + if (element->next) + element->next->prev=element->prev; + return root; +} + + +void list_free(LIST *root, uint free_data) +{ + LIST *next; + while (root) + { + next=root->next; + if (free_data) + my_free(root->data); + my_free(root); + root=next; + } +} + + +LIST *list_cons(void *data, LIST *list) +{ + LIST *new_charset=(LIST*) my_malloc(key_memory_LIST, + sizeof(LIST),MYF(MY_FAE)); + if (!new_charset) + return 0; + new_charset->data=data; + return list_add(list,new_charset); +} + + +LIST *list_reverse(LIST *root) +{ + LIST *last; + + last=root; + while (root) + { + last=root; + root=root->next; + last->next=last->prev; + last->prev=root; + } + return last; +} + +uint list_length(LIST *list) +{ + uint count; + for (count=0 ; list ; list=list->next, count++) ; + return count; +} + + +int list_walk(LIST *list, list_walk_action action, uchar* argument) +{ + int error=0; + while (list) + { + if ((error = (*action)(list->data,argument))) + return error; + list=list_rest(list); + } + return 0; +} diff --git a/mysql/mysys/mf_arr_appstr.c b/mysql/mysys/mf_arr_appstr.c new file mode 100644 index 0000000..71d4ad0 --- /dev/null +++ b/mysql/mysys/mf_arr_appstr.c @@ -0,0 +1,62 @@ +/* Copyright (C) 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "mysys_priv.h" +#include /* strcmp() */ + + +/** + Append str to array, or move to the end if it already exists + + @param str String to be appended + @param array The array, terminated by a NULL element, all unused elements + pre-initialized to NULL + @param size Size of the array; array must be terminated by a NULL + pointer, so can hold size - 1 elements + + @retval FALSE Success + @retval TRUE Failure, array is full +*/ + +my_bool array_append_string_unique(const char *str, + const char **array, size_t size) +{ + const char **p; + /* end points at the terminating NULL element */ + const char **end= array + size - 1; + DBUG_ASSERT(*end == NULL); + + for (p= array; *p; ++p) + { + if (strcmp(*p, str) == 0) + break; + } + if (p >= end) + return TRUE; /* Array is full */ + + DBUG_ASSERT(*p == NULL || strcmp(*p, str) == 0); + + while (*(p + 1)) + { + *p= *(p + 1); + ++p; + } + + DBUG_ASSERT(p < end); + *p= str; + + return FALSE; /* Success */ +} diff --git a/mysql/mysys/mf_cache.c b/mysql/mysys/mf_cache.c new file mode 100644 index 0000000..680f394 --- /dev/null +++ b/mysql/mysys/mf_cache.c @@ -0,0 +1,105 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Open a temporary file and cache it with io_cache. Delete it on close */ + +#include "my_global.h" +#include "mysys_priv.h" +#include "mysql/psi/mysql_file.h" +#include "my_sys.h" +#include +#include "my_static.h" +#include "mysys_err.h" + + /* + Remove an open tempfile so that it doesn't survive + if we crash. + */ + +static my_bool cache_remove_open_tmp(IO_CACHE *cache MY_ATTRIBUTE((unused)), + const char *name) +{ +#if O_TEMPORARY == 0 + /* The following should always succeed */ + (void) my_delete(name,MYF(MY_WME)); +#endif /* O_TEMPORARY == 0 */ + return 0; +} + + /* + ** Open tempfile cached by IO_CACHE + ** Should be used when no seeks are done (only reinit_io_buff) + ** Return 0 if cache is inited ok + ** The actual file is created when the IO_CACHE buffer gets filled + ** If dir is not given, use TMPDIR. + */ + +my_bool open_cached_file(IO_CACHE *cache, const char* dir, const char *prefix, + size_t cache_size, myf cache_myflags) +{ + DBUG_ENTER("open_cached_file"); + cache->dir= dir ? my_strdup(key_memory_IO_CACHE, + dir,MYF(cache_myflags & MY_WME)) : (char*) 0; + cache->prefix= (prefix ? my_strdup(key_memory_IO_CACHE, + prefix,MYF(cache_myflags & MY_WME)) : + (char*) 0); + cache->file_name=0; + cache->buffer=0; /* Mark that not open */ + if (!init_io_cache(cache,-1,cache_size,WRITE_CACHE,0L,0, + MYF(cache_myflags | MY_NABP))) + { + DBUG_RETURN(0); + } + my_free(cache->dir); + my_free(cache->prefix); + DBUG_RETURN(1); +} + +/* Create the temporary file */ + +my_bool real_open_cached_file(IO_CACHE *cache) +{ + char name_buff[FN_REFLEN]; + int error=1; + DBUG_ENTER("real_open_cached_file"); + if ((cache->file= mysql_file_create_temp(cache->file_key, name_buff, + cache->dir, cache->prefix, + (O_RDWR | O_BINARY | O_TRUNC | O_TEMPORARY | O_SHORT_LIVED), + MYF(MY_WME))) >= 0) + { + error=0; + cache_remove_open_tmp(cache, name_buff); + } + DBUG_RETURN(error); +} + + +void close_cached_file(IO_CACHE *cache) +{ + DBUG_ENTER("close_cached_file"); + if (my_b_inited(cache)) + { + File file=cache->file; + cache->file= -1; /* Don't flush data */ + (void) end_io_cache(cache); + if (file >= 0) + { + (void) mysql_file_close(file, MYF(0)); + } + my_free(cache->dir); + my_free(cache->prefix); + } + DBUG_VOID_RETURN; +} diff --git a/mysql/mysys/mf_dirname.c b/mysql/mysys/mf_dirname.c new file mode 100644 index 0000000..8ddd0ba --- /dev/null +++ b/mysql/mysys/mf_dirname.c @@ -0,0 +1,155 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + + /* Functions definied in this file */ + +size_t dirname_length(const char *name) +{ + char *pos, *gpos; +#ifdef _WIN32 + CHARSET_INFO *fs= fs_character_set(); +#endif +#ifdef FN_DEVCHAR + if ((pos=(char*)strrchr(name,FN_DEVCHAR)) == 0) +#endif + pos=(char*) name-1; + + gpos= pos++; + for ( ; *pos ; pos++) /* Find last FN_LIBCHAR */ + { +#ifdef _WIN32 + uint l; + if (use_mb(fs) && (l= my_ismbchar(fs, pos, pos + 3))) + { + pos+= l - 1; + continue; + } +#endif + if (*pos == FN_LIBCHAR || *pos == '/') + gpos=pos; + } + return (size_t) (gpos+1-(char*) name); +} + + +/* + Gives directory part of filename. Directory ends with '/' + + SYNOPSIS + dirname_part() + to Store directory name here + name Original name + to_length Store length of 'to' here + + RETURN + # Length of directory part in 'name' +*/ + +size_t dirname_part(char *to, const char *name, size_t *to_res_length) +{ + size_t length; + DBUG_ENTER("dirname_part"); + DBUG_PRINT("enter",("'%s'",name)); + + length=dirname_length(name); + *to_res_length= (size_t) (convert_dirname(to, name, name+length) - to); + DBUG_RETURN(length); +} /* dirname */ + + +/* + Convert directory name to use under this system + + SYNPOSIS + convert_dirname() + to Store result here. Must be at least of size + min(FN_REFLEN, strlen(from) + 1) to make room + for adding FN_LIBCHAR at the end. + from Original filename. May be == to + from_end Pointer at end of filename (normally end \0) + + IMPLEMENTATION + If Windows converts '/' to '\' + Adds a FN_LIBCHAR to end if the result string if there isn't one + and the last isn't dev_char. + Copies data from 'from' until ASCII(0) for until from == from_end + If you want to use the whole 'from' string, just send NullS as the + last argument. + + If the result string is larger than FN_REFLEN -1, then it's cut. + + RETURN + Returns pointer to end \0 in to +*/ + +#ifndef FN_DEVCHAR +#define FN_DEVCHAR '\0' /* For easier code */ +#endif + +char *convert_dirname(char *to, const char *from, const char *from_end) +{ + char *to_org=to; +#ifdef _WIN32 + CHARSET_INFO *fs= fs_character_set(); +#endif + DBUG_ENTER("convert_dirname"); + + /* We use -2 here, becasue we need place for the last FN_LIBCHAR */ + if (!from_end || (from_end - from) > FN_REFLEN-2) + from_end=from+FN_REFLEN -2; + +#if FN_LIBCHAR != '/' + { + for (; from < from_end && *from ; from++) + { + if (*from == '/') + *to++= FN_LIBCHAR; + else + { +#ifdef _WIN32 + uint l; + if (use_mb(fs) && (l= my_ismbchar(fs, from, from + 3))) + { + memmove(to, from, l); + to+= l; + from+= l - 1; + to_org= to; /* Don't look inside mbchar */ + } + else +#endif + { + *to++= *from; + } + } + } + *to=0; + } +#else + /* This is ok even if to == from, becasue we need to cut the string */ + to= strmake(to, from, (size_t) (from_end-from)); +#endif + + /* Add FN_LIBCHAR to the end of directory path */ + if (to != to_org && (to[-1] != FN_LIBCHAR && to[-1] != FN_DEVCHAR)) + { + *to++=FN_LIBCHAR; + *to=0; + } + DBUG_RETURN(to); /* Pointer to end of dir */ +} /* convert_dirname */ diff --git a/mysql/mysys/mf_fn_ext.c b/mysql/mysys/mf_fn_ext.c new file mode 100644 index 0000000..807c473 --- /dev/null +++ b/mysql/mysys/mf_fn_ext.c @@ -0,0 +1,54 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +#include "mysys_priv.h" +#include + +/* + Return a pointer to the extension of the filename. + + SYNOPSIS + fn_ext() + name Name of file + + DESCRIPTION + The extension is defined as everything after the last extension character + (normally '.') after the directory name. + + RETURN VALUES + Pointer to to the extension character. If there isn't any extension, + points at the end ASCII(0) of the filename. +*/ + +char *fn_ext(const char *name) +{ + const char *pos, *gpos; + DBUG_ENTER("fn_ext"); + DBUG_PRINT("mfunkt",("name: '%s'",name)); + +#if defined(FN_DEVCHAR) || defined(_WIN32) + { + char buff[FN_REFLEN]; + size_t res_length; + gpos= name+ dirname_part(buff,(char*) name, &res_length); + } +#else + if (!(gpos= strrchr(name, FN_LIBCHAR))) + gpos= name; +#endif + pos=strrchr(gpos,FN_EXTCHAR); + DBUG_RETURN((char*) (pos ? pos : strend(gpos))); +} /* fn_ext */ diff --git a/mysql/mysys/mf_format.c b/mysql/mysys/mf_format.c new file mode 100644 index 0000000..e319615 --- /dev/null +++ b/mysql/mysys/mf_format.c @@ -0,0 +1,147 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +/* + Formats a filename with possible replace of directory of extension + Function can handle the case where 'to' == 'name' + For a description of the flag values, consult my_sys.h + The arguments should be in unix format. +*/ + +char * fn_format(char * to, const char *name, const char *dir, + const char *extension, uint flag) +{ + char dev[FN_REFLEN], buff[FN_REFLEN], *pos, *startpos; + const char *ext; + size_t length; + size_t dev_length; + DBUG_ENTER("fn_format"); + DBUG_ASSERT(name != NULL); + DBUG_ASSERT(extension != NULL); + DBUG_PRINT("enter",("name: %s dir: %s extension: %s flag: %d", + name,dir,extension,flag)); + + /* Copy and skip directory */ + name+=(length=dirname_part(dev, (startpos=(char *) name), &dev_length)); + if (length == 0 || (flag & MY_REPLACE_DIR)) + { + DBUG_ASSERT(dir != NULL); + /* Use given directory */ + convert_dirname(dev,dir,NullS); /* Fix to this OS */ + } + else if ((flag & MY_RELATIVE_PATH) && !test_if_hard_path(dev)) + { + DBUG_ASSERT(dir != NULL); + /* Put 'dir' before the given path */ + strmake(buff,dev,sizeof(buff)-1); + pos=convert_dirname(dev,dir,NullS); + strmake(pos,buff,sizeof(buff)-1- (int) (pos-dev)); + } + + if (flag & MY_PACK_FILENAME) + pack_dirname(dev,dev); /* Put in ./.. and ~/.. */ + if (flag & MY_UNPACK_FILENAME) + (void) unpack_dirname(dev,dev); /* Replace ~/.. with dir */ + + if (!(flag & MY_APPEND_EXT) && + (pos= (char*) strchr(name,FN_EXTCHAR)) != NullS) + { + if ((flag & MY_REPLACE_EXT) == 0) /* If we should keep old ext */ + { + length=strlength(name); /* Use old extension */ + ext = ""; + } + else + { + length= (size_t) (pos-(char*) name); /* Change extension */ + ext= extension; + } + } + else + { + length=strlength(name); /* No ext, use the now one */ + ext=extension; + } + + if (strlen(dev)+length+strlen(ext) >= FN_REFLEN || length >= FN_LEN ) + { + /* To long path, return original or NULL */ + size_t tmp_length; + if (flag & MY_SAFE_PATH) + DBUG_RETURN(NullS); + tmp_length= strlength(startpos); + DBUG_PRINT("error",("dev: '%s' ext: '%s' length: %u",dev,ext, + (uint) length)); + (void) strmake(to, startpos, MY_MIN(tmp_length, FN_REFLEN-1)); + } + else + { + if (to == startpos) + { + memmove(buff, name, length); /* Save name for last copy */ + name=buff; + } + pos=strmake(my_stpcpy(to,dev),name,length); + (void) my_stpcpy(pos,ext); /* Don't convert extension */ + } + /* + If MY_RETURN_REAL_PATH and MY_RESOLVE_SYMLINK is given, only do + realpath if the file is a symbolic link + */ + if (flag & MY_RETURN_REAL_PATH) + (void) my_realpath(to, to, MYF(flag & MY_RESOLVE_SYMLINKS ? + MY_RESOLVE_LINK: 0)); + else if (flag & MY_RESOLVE_SYMLINKS) + { + my_stpcpy(buff,to); + (void) my_readlink(to, buff, MYF(0)); + } + DBUG_RETURN(to); +} /* fn_format */ + + +/* + strlength(const string str) + Return length of string with end-space:s not counted. +*/ + +size_t strlength(const char *str) +{ + const char * pos; + const char * found; + DBUG_ENTER("strlength"); + + pos= found= str; + + while (*pos) + { + if (*pos != ' ') + { + while (*++pos && *pos != ' ') {}; + if (!*pos) + { + found=pos; /* String ends here */ + break; + } + } + found=pos; + while (*++pos == ' ') {}; + } + DBUG_RETURN((size_t) (found - str)); +} /* strlength */ diff --git a/mysql/mysys/mf_getdate.c b/mysql/mysys/mf_getdate.c new file mode 100644 index 0000000..5efadcd --- /dev/null +++ b/mysql/mysys/mf_getdate.c @@ -0,0 +1,73 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Get date in a printable form: yyyy-mm-dd hh:mm:ss */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +/* + get date as string + + SYNOPSIS + get_date() + to - string where date will be written + flag - format of date: + If flag & GETDATE_TIME Return date and time + If flag & GETDATE_SHORT_DATE Return short date format YYMMDD + If flag & GETDATE_HHMMSSTIME Return time in HHMMDD format. + If flag & GETDATE_GMT Date/time in GMT + If flag & GETDATE_FIXEDLENGTH Return fixed length date/time + date - for conversion +*/ + + +void get_date(char * to, int flag, time_t date) +{ + struct tm *start_time; + time_t skr; + struct tm tm_tmp; + + skr=date ? (time_t) date : my_time(0); + if (flag & GETDATE_GMT) + gmtime_r(&skr,&tm_tmp); + else + localtime_r(&skr,&tm_tmp); + start_time= &tm_tmp; + if (flag & GETDATE_SHORT_DATE) + sprintf(to,"%02d%02d%02d", + start_time->tm_year % 100, + start_time->tm_mon+1, + start_time->tm_mday); + else + sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ? + "%4d-%02d-%02d" : "%d-%02d-%02d"), + start_time->tm_year+1900, + start_time->tm_mon+1, + start_time->tm_mday); + if (flag & GETDATE_DATE_TIME) + sprintf(strend(to), + ((flag & GETDATE_FIXEDLENGTH) ? + " %02d:%02d:%02d" : " %2d:%02d:%02d"), + start_time->tm_hour, + start_time->tm_min, + start_time->tm_sec); + else if (flag & GETDATE_HHMMSSTIME) + sprintf(strend(to),"%02d%02d%02d", + start_time->tm_hour, + start_time->tm_min, + start_time->tm_sec); +} /* get_date */ diff --git a/mysql/mysys/mf_iocache.c b/mysql/mysys/mf_iocache.c new file mode 100644 index 0000000..bc5f1bb --- /dev/null +++ b/mysql/mysys/mf_iocache.c @@ -0,0 +1,1733 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Cashing of files with only does (sequential) read or writes of fixed- + length records. A read isn't allowed to go over file-length. A read is ok + if it ends at file-length and next read can try to read after file-length + (and get a EOF-error). + Possibly use of asyncronic io. + macros for read and writes for faster io. + Used instead of FILE when reading or writing whole files. + This code makes mf_rec_cache obsolete (currently only used by ISAM) + One can change info->pos_in_file to a higher value to skip bytes in file if + also info->read_pos is set to info->read_end. + If called through open_cached_file(), then the temporary file will + only be created if a write exeeds the file buffer or if one calls + my_b_flush_io_cache(). + + If one uses SEQ_READ_APPEND, then two buffers are allocated, one for + reading and another for writing. Reads are first done from disk and + then done from the write buffer. This is an efficient way to read + from a log file when one is writing to it at the same time. + For this to work, the file has to be opened in append mode! + Note that when one uses SEQ_READ_APPEND, one MUST write using + my_b_append ! This is needed because we need to lock the mutex + every time we access the write buffer. + +TODO: + When one SEQ_READ_APPEND and we are reading and writing at the same time, + each time the write buffer gets full and it's written to disk, we will + always do a disk read to read a part of the buffer from disk to the + read buffer. + This should be fixed so that when we do a my_b_flush_io_cache() and + we have been reading the write buffer, we should transfer the rest of the + write buffer to the read buffer before we start to reuse it. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include +#include "my_thread_local.h" +#include "mysql/psi/mysql_file.h" + +PSI_file_key key_file_io_cache; + +#define lock_append_buffer(info) \ + mysql_mutex_lock(&(info)->append_buffer_lock) +#define unlock_append_buffer(info) \ + mysql_mutex_unlock(&(info)->append_buffer_lock) + +#define IO_ROUND_UP(X) (((X)+IO_SIZE-1) & ~(IO_SIZE-1)) +#define IO_ROUND_DN(X) ( (X) & ~(IO_SIZE-1)) + +/* + Setup internal pointers inside IO_CACHE + + SYNOPSIS + setup_io_cache() + info IO_CACHE handler + + NOTES + This is called on automaticly on init or reinit of IO_CACHE + It must be called externally if one moves or copies an IO_CACHE + object. +*/ + +void setup_io_cache(IO_CACHE* info) +{ + /* Ensure that my_b_tell() and my_b_bytes_in_cache works */ + if (info->type == WRITE_CACHE) + { + info->current_pos= &info->write_pos; + info->current_end= &info->write_end; + } + else + { + info->current_pos= &info->read_pos; + info->current_end= &info->read_end; + } +} + + +static void +init_functions(IO_CACHE* info) +{ + enum cache_type type= info->type; + switch (type) { + case READ_NET: + /* + Must be initialized by the caller. The problem is that + _my_b_net_read has to be defined in sql directory because of + the dependency on THD, and therefore cannot be visible to + programs that link against mysys but know nothing about THD, such + as myisamchk + */ + break; + case SEQ_READ_APPEND: + info->read_function = _my_b_seq_read; + info->write_function = 0; /* Force a core if used */ + break; + default: + info->read_function = info->share ? _my_b_read_r : _my_b_read; + info->write_function = _my_b_write; + } + + setup_io_cache(info); +} + + +/* + Initialize an IO_CACHE object + + SYNOPSIS + init_io_cache_ext() + info cache handler to initialize + file File that should be associated to to the handler + If == -1 then real_open_cached_file() + will be called when it's time to open file. + cachesize Size of buffer to allocate for read/write + If == 0 then use my_default_record_cache_size + type Type of cache + seek_offset Where cache should start reading/writing + use_async_io Set to 1 of we should use async_io (if avaiable) + cache_myflags Bitmap of different flags + MY_WME | MY_FAE | MY_NABP | MY_FNABP | + MY_DONT_CHECK_FILESIZE + file_key Instrumented file key for temporary cache file + + RETURN + 0 ok + # error +*/ + +int init_io_cache_ext(IO_CACHE *info, File file, size_t cachesize, + enum cache_type type, my_off_t seek_offset, + pbool use_async_io, myf cache_myflags, + PSI_file_key file_key) +{ + size_t min_cache; + my_off_t pos; + my_off_t end_of_file= ~(my_off_t) 0; + DBUG_ENTER("init_io_cache_ext"); + DBUG_PRINT("enter",("cache: 0x%lx type: %d pos: %ld", + (ulong) info, (int) type, (ulong) seek_offset)); + + info->file= file; + info->file_key= file_key; + info->type= TYPE_NOT_SET; /* Don't set it until mutex are created */ + info->pos_in_file= seek_offset; + info->pre_close = info->pre_read = info->post_read = 0; + info->arg = 0; + info->alloced_buffer = 0; + info->buffer=0; + info->seek_not_done= 0; + + if (file >= 0) + { + pos= mysql_file_tell(file, MYF(0)); + if ((pos == (my_off_t) -1) && (my_errno() == ESPIPE)) + { + /* + This kind of object doesn't support seek() or tell(). Don't set a + flag that will make us again try to seek() later and fail. + */ + info->seek_not_done= 0; + /* + Additionally, if we're supposed to start somewhere other than the + the beginning of whatever this file is, then somebody made a bad + assumption. + */ + DBUG_ASSERT(seek_offset == 0); + } + else + info->seek_not_done= MY_TEST(seek_offset != pos); + } + + info->disk_writes= 0; + info->share=0; + + if (!cachesize && !(cachesize= my_default_record_cache_size)) + DBUG_RETURN(1); /* No cache requested */ + min_cache=use_async_io ? IO_SIZE*4 : IO_SIZE*2; + if (type == READ_CACHE || type == SEQ_READ_APPEND) + { /* Assume file isn't growing */ + if (!(cache_myflags & MY_DONT_CHECK_FILESIZE)) + { + /* Calculate end of file to avoid allocating oversized buffers */ + end_of_file= mysql_file_seek(file, 0L, MY_SEEK_END, MYF(0)); + /* Need to reset seek_not_done now that we just did a seek. */ + info->seek_not_done= end_of_file == seek_offset ? 0 : 1; + if (end_of_file < seek_offset) + end_of_file=seek_offset; + /* Trim cache size if the file is very small */ + if ((my_off_t) cachesize > end_of_file-seek_offset+IO_SIZE*2-1) + { + cachesize= (size_t) (end_of_file-seek_offset)+IO_SIZE*2-1; + use_async_io=0; /* No need to use async */ + } + } + } + cache_myflags &= ~MY_DONT_CHECK_FILESIZE; + if (type != READ_NET && type != WRITE_NET) + { + /* Retry allocating memory in smaller blocks until we get one */ + cachesize= ((cachesize + min_cache-1) & ~(min_cache-1)); + for (;;) + { + size_t buffer_block; + /* + Unset MY_WAIT_IF_FULL bit if it is set, to prevent conflict with + MY_ZEROFILL. + */ + myf flags= (myf) (cache_myflags & ~(MY_WME | MY_WAIT_IF_FULL)); + + if (cachesize < min_cache) + cachesize = min_cache; + buffer_block= cachesize; + if (type == SEQ_READ_APPEND) + buffer_block *= 2; + if (cachesize == min_cache) + flags|= (myf) MY_WME; + + if ((info->buffer= (uchar*) my_malloc(key_memory_IO_CACHE, + buffer_block, flags)) != 0) + { + info->write_buffer=info->buffer; + if (type == SEQ_READ_APPEND) + info->write_buffer = info->buffer + cachesize; + info->alloced_buffer=1; + break; /* Enough memory found */ + } + if (cachesize == min_cache) + DBUG_RETURN(2); /* Can't alloc cache */ + /* Try with less memory */ + cachesize= (cachesize*3/4 & ~(min_cache-1)); + } + } + + DBUG_PRINT("info",("init_io_cache: cachesize = %lu", (ulong) cachesize)); + info->read_length=info->buffer_length=cachesize; + info->myflags=cache_myflags & ~(MY_NABP | MY_FNABP); + info->request_pos= info->read_pos= info->write_pos = info->buffer; + if (type == SEQ_READ_APPEND) + { + info->append_read_pos = info->write_pos = info->write_buffer; + info->write_end = info->write_buffer + info->buffer_length; + mysql_mutex_init(key_IO_CACHE_append_buffer_lock, + &info->append_buffer_lock, MY_MUTEX_INIT_FAST); + } +#if defined(SAFE_MUTEX) + else + { + /* Clear mutex so that safe_mutex will notice that it's not initialized */ + memset(&info->append_buffer_lock, 0, sizeof(info->append_buffer_lock)); + } +#endif + + if (type == WRITE_CACHE) + info->write_end= + info->buffer+info->buffer_length- (seek_offset & (IO_SIZE-1)); + else + info->read_end=info->buffer; /* Nothing in cache */ + + /* End_of_file may be changed by user later */ + info->end_of_file= end_of_file; + info->error=0; + info->type= type; + init_functions(info); + DBUG_RETURN(0); +} /* init_io_cache_ext */ + +/* + Initialize an IO_CACHE object + + SYNOPSIS + init_io_cache() - Wrapper for init_io_cache_ext() + + NOTE + This function should be used if the IO_CACHE tempfile is not instrumented. +*/ + +int init_io_cache(IO_CACHE *info, File file, size_t cachesize, + enum cache_type type, my_off_t seek_offset, + pbool use_async_io, myf cache_myflags) +{ + return init_io_cache_ext(info, file, cachesize, type, seek_offset, + use_async_io, cache_myflags, key_file_io_cache); +} + +/* + Use this to reset cache to re-start reading or to change the type + between READ_CACHE <-> WRITE_CACHE + If we are doing a reinit of a cache where we have the start of the file + in the cache, we are reusing this memory without flushing it to disk. +*/ + +my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type, + my_off_t seek_offset, + pbool use_async_io MY_ATTRIBUTE((unused)), + pbool clear_cache) +{ + DBUG_ENTER("reinit_io_cache"); + DBUG_PRINT("enter",("cache: 0x%lx type: %d seek_offset: %lu clear_cache: %d", + (ulong) info, type, (ulong) seek_offset, + (int) clear_cache)); + + /* One can't do reinit with the following types */ + DBUG_ASSERT(type != READ_NET && info->type != READ_NET && + type != WRITE_NET && info->type != WRITE_NET && + type != SEQ_READ_APPEND && info->type != SEQ_READ_APPEND); + + /* If the whole file is in memory, avoid flushing to disk */ + if (! clear_cache && + seek_offset >= info->pos_in_file && + seek_offset <= my_b_tell(info)) + { + /* Reuse current buffer without flushing it to disk */ + uchar *pos; + if (info->type == WRITE_CACHE && type == READ_CACHE) + { + info->read_end=info->write_pos; + info->end_of_file=my_b_tell(info); + /* + Trigger a new seek only if we have a valid + file handle. + */ + info->seek_not_done= (info->file != -1); + } + else if (type == WRITE_CACHE) + { + if (info->type == READ_CACHE) + { + info->write_end=info->write_buffer+info->buffer_length; + info->seek_not_done=1; + } + info->end_of_file = ~(my_off_t) 0; + } + pos=info->request_pos+(seek_offset-info->pos_in_file); + if (type == WRITE_CACHE) + info->write_pos=pos; + else + info->read_pos= pos; + } + else + { + /* + If we change from WRITE_CACHE to READ_CACHE, assume that everything + after the current positions should be ignored + */ + if (info->type == WRITE_CACHE && type == READ_CACHE) + info->end_of_file=my_b_tell(info); + /* flush cache if we want to reuse it */ + if (!clear_cache && my_b_flush_io_cache(info,1)) + DBUG_RETURN(1); + info->pos_in_file=seek_offset; + /* Better to do always do a seek */ + info->seek_not_done=1; + info->request_pos=info->read_pos=info->write_pos=info->buffer; + if (type == READ_CACHE) + { + info->read_end=info->buffer; /* Nothing in cache */ + } + else + { + info->write_end=(info->buffer + info->buffer_length - + (seek_offset & (IO_SIZE-1))); + info->end_of_file= ~(my_off_t) 0; + } + } + info->type=type; + info->error=0; + init_functions(info); + + DBUG_RETURN(0); +} /* reinit_io_cache */ + + + +/* + Read buffered. + + SYNOPSIS + _my_b_read() + info IO_CACHE pointer + Buffer Buffer to retrieve count bytes from file + Count Number of bytes to read into Buffer + + NOTE + This function is only called from the my_b_read() macro when there + isn't enough characters in the buffer to satisfy the request. + + WARNING + + When changing this function, be careful with handling file offsets + (end-of_file, pos_in_file). Do not cast them to possibly smaller + types than my_off_t unless you can be sure that their value fits. + Same applies to differences of file offsets. + + When changing this function, check _my_b_read_r(). It might need the + same change. + + RETURN + 0 we succeeded in reading all data + 1 Error: couldn't read requested characters. In this case: + If info->error == -1, we got a read error. + Otherwise info->error contains the number of bytes in Buffer. +*/ + +int _my_b_read(IO_CACHE *info, uchar *Buffer, size_t Count) +{ + size_t length,diff_length,left_length, max_length; + my_off_t pos_in_file; + DBUG_ENTER("_my_b_read"); + + /* If the buffer is not empty yet, copy what is available. */ + if ((left_length= (size_t) (info->read_end-info->read_pos))) + { + DBUG_ASSERT(Count >= left_length); /* User is not using my_b_read() */ + memcpy(Buffer,info->read_pos, left_length); + Buffer+=left_length; + Count-=left_length; + } + + /* pos_in_file always point on where info->buffer was read */ + pos_in_file=info->pos_in_file+ (size_t) (info->read_end - info->buffer); + + /* + Whenever a function which operates on IO_CACHE flushes/writes + some part of the IO_CACHE to disk it will set the property + "seek_not_done" to indicate this to other functions operating + on the IO_CACHE. + */ + if (info->seek_not_done) + { + if ((mysql_file_seek(info->file, pos_in_file, MY_SEEK_SET, MYF(0)) + != MY_FILEPOS_ERROR)) + { + /* No error, reset seek_not_done flag. */ + info->seek_not_done= 0; + } + else + { + /* + If the seek failed and the error number is ESPIPE, it is because + info->file is a pipe or socket or FIFO. We never should have tried + to seek on that. See Bugs#25807 and #22828 for more info. + */ + DBUG_ASSERT(my_errno() != ESPIPE); + info->error= -1; + DBUG_RETURN(1); + } + } + + /* + Calculate, how much we are within a IO_SIZE block. Ideally this + should be zero. + */ + diff_length= (size_t) (pos_in_file & (IO_SIZE-1)); + + /* + If more than a block plus the rest of the current block is wanted, + we do read directly, without filling the buffer. + */ + if (Count >= (size_t) (IO_SIZE+(IO_SIZE-diff_length))) + { /* Fill first intern buffer */ + size_t read_length; + if (info->end_of_file <= pos_in_file) + { + /* End of file. Return, what we did copy from the buffer. */ + info->error= (int) left_length; + DBUG_RETURN(1); + } + /* + Crop the wanted count to a multiple of IO_SIZE and subtract, + what we did already read from a block. That way, the read will + end aligned with a block. + */ + length=(Count & (size_t) ~(IO_SIZE-1))-diff_length; + if ((read_length= mysql_file_read(info->file,Buffer, length, info->myflags)) + != length) + { + /* + If we didn't get, what we wanted, we either return -1 for a read + error, or (it's end of file), how much we got in total. + */ + info->error= (read_length == (size_t) -1 ? -1 : + (int) (read_length+left_length)); + DBUG_RETURN(1); + } + Count-=length; + Buffer+=length; + pos_in_file+=length; + left_length+=length; + diff_length=0; + } + + /* + At this point, we want less than one and a partial block. + We will read a full cache, minus the number of bytes, we are + within a block already. So we will reach new alignment. + */ + max_length= info->read_length-diff_length; + /* We will not read past end of file. */ + if (info->type != READ_FIFO && + max_length > (info->end_of_file - pos_in_file)) + max_length= (size_t) (info->end_of_file - pos_in_file); + /* + If there is nothing left to read, + we either are done, or we failed to fulfill the request. + Otherwise, we read max_length into the cache. + */ + if (!max_length) + { + if (Count) + { + /* We couldn't fulfil the request. Return, how much we got. */ + info->error= (int)left_length; + DBUG_RETURN(1); + } + length=0; /* Didn't read any chars */ + } + else if ((length= mysql_file_read(info->file,info->buffer, max_length, + info->myflags)) < Count || + length == (size_t) -1) + { + /* + We got an read error, or less than requested (end of file). + If not a read error, copy, what we got. + */ + if (length != (size_t) -1) + memcpy(Buffer, info->buffer, length); + info->pos_in_file= pos_in_file; + /* For a read error, return -1, otherwise, what we got in total. */ + info->error= length == (size_t) -1 ? -1 : (int) (length+left_length); + info->read_pos=info->read_end=info->buffer; + DBUG_RETURN(1); + } + /* + Count is the remaining number of bytes requested. + length is the amount of data in the cache. + Read Count bytes from the cache. + */ + info->read_pos=info->buffer+Count; + info->read_end=info->buffer+length; + info->pos_in_file=pos_in_file; + memcpy(Buffer, info->buffer, Count); + DBUG_RETURN(0); +} + + +/* + Prepare IO_CACHE for shared use. + + SYNOPSIS + init_io_cache_share() + read_cache A read cache. This will be copied for + every thread after setup. + cshare The share. + write_cache If non-NULL a write cache that is to be + synchronized with the read caches. + num_threads Number of threads sharing the cache + including the write thread if any. + + DESCRIPTION + + The shared cache is used so: One IO_CACHE is initialized with + init_io_cache(). This includes the allocation of a buffer. Then a + share is allocated and init_io_cache_share() is called with the io + cache and the share. Then the io cache is copied for each thread. So + every thread has its own copy of IO_CACHE. But the allocated buffer + is shared because cache->buffer is the same for all caches. + + One thread reads data from the file into the buffer. All threads + read from the buffer, but every thread maintains its own set of + pointers into the buffer. When all threads have used up the buffer + contents, one of the threads reads the next block of data into the + buffer. To accomplish this, each thread enters the cache lock before + accessing the buffer. They wait in lock_io_cache() until all threads + joined the lock. The last thread entering the lock is in charge of + reading from file to buffer. It wakes all threads when done. + + Synchronizing a write cache to the read caches works so: Whenever + the write buffer needs a flush, the write thread enters the lock and + waits for all other threads to enter the lock too. They do this when + they have used up the read buffer. When all threads are in the lock, + the write thread copies the write buffer to the read buffer and + wakes all threads. + + share->running_threads is the number of threads not being in the + cache lock. When entering lock_io_cache() the number is decreased. + When the thread that fills the buffer enters unlock_io_cache() the + number is reset to the number of threads. The condition + running_threads == 0 means that all threads are in the lock. Bumping + up the number to the full count is non-intuitive. But increasing the + number by one for each thread that leaves the lock could lead to a + solo run of one thread. The last thread to join a lock reads from + file to buffer, wakes the other threads, processes the data in the + cache and enters the lock again. If no other thread left the lock + meanwhile, it would think it's the last one again and read the next + block... + + The share has copies of 'error', 'buffer', 'read_end', and + 'pos_in_file' from the thread that filled the buffer. We may not be + able to access this information directly from its cache because the + thread may be removed from the share before the variables could be + copied by all other threads. Or, if a write buffer is synchronized, + it would change its 'pos_in_file' after waking the other threads, + possibly before they could copy its value. + + However, the 'buffer' variable in the share is for a synchronized + write cache. It needs to know where to put the data. Otherwise it + would need access to the read cache of one of the threads that is + not yet removed from the share. + + RETURN + void +*/ + +void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare, + IO_CACHE *write_cache, uint num_threads) +{ + DBUG_ENTER("init_io_cache_share"); + DBUG_PRINT("io_cache_share", ("read_cache: 0x%lx share: 0x%lx " + "write_cache: 0x%lx threads: %u", + (long) read_cache, (long) cshare, + (long) write_cache, num_threads)); + + DBUG_ASSERT(num_threads > 1); + DBUG_ASSERT(read_cache->type == READ_CACHE); + DBUG_ASSERT(!write_cache || (write_cache->type == WRITE_CACHE)); + + mysql_mutex_init(key_IO_CACHE_SHARE_mutex, + &cshare->mutex, MY_MUTEX_INIT_FAST); + mysql_cond_init(key_IO_CACHE_SHARE_cond, &cshare->cond); + mysql_cond_init(key_IO_CACHE_SHARE_cond_writer, &cshare->cond_writer); + + cshare->running_threads= num_threads; + cshare->total_threads= num_threads; + cshare->error= 0; /* Initialize. */ + cshare->buffer= read_cache->buffer; + cshare->read_end= NULL; /* See function comment of lock_io_cache(). */ + cshare->pos_in_file= 0; /* See function comment of lock_io_cache(). */ + cshare->source_cache= write_cache; /* Can be NULL. */ + + read_cache->share= cshare; + read_cache->read_function= _my_b_read_r; + read_cache->current_pos= NULL; + read_cache->current_end= NULL; + + if (write_cache) + write_cache->share= cshare; + + DBUG_VOID_RETURN; +} + + +/* + Remove a thread from shared access to IO_CACHE. + + SYNOPSIS + remove_io_thread() + cache The IO_CACHE to be removed from the share. + + NOTE + + Every thread must do that on exit for not to deadlock other threads. + + The last thread destroys the pthread resources. + + A writer flushes its cache first. + + RETURN + void +*/ + +void remove_io_thread(IO_CACHE *cache) +{ + IO_CACHE_SHARE *cshare= cache->share; + uint total; + DBUG_ENTER("remove_io_thread"); + + /* If the writer goes, it needs to flush the write cache. */ + if (cache == cshare->source_cache) + flush_io_cache(cache); + + mysql_mutex_lock(&cshare->mutex); + DBUG_PRINT("io_cache_share", ("%s: 0x%lx", + (cache == cshare->source_cache) ? + "writer" : "reader", (long) cache)); + + /* Remove from share. */ + total= --cshare->total_threads; + DBUG_PRINT("io_cache_share", ("remaining threads: %u", total)); + + /* Detach from share. */ + cache->share= NULL; + + /* If the writer goes, let the readers know. */ + if (cache == cshare->source_cache) + { + DBUG_PRINT("io_cache_share", ("writer leaves")); + cshare->source_cache= NULL; + } + + /* If all threads are waiting for me to join the lock, wake them. */ + if (!--cshare->running_threads) + { + DBUG_PRINT("io_cache_share", ("the last running thread leaves, wake all")); + mysql_cond_signal(&cshare->cond_writer); + mysql_cond_broadcast(&cshare->cond); + } + + mysql_mutex_unlock(&cshare->mutex); + + if (!total) + { + DBUG_PRINT("io_cache_share", ("last thread removed, destroy share")); + mysql_cond_destroy (&cshare->cond_writer); + mysql_cond_destroy (&cshare->cond); + mysql_mutex_destroy(&cshare->mutex); + } + + DBUG_VOID_RETURN; +} + + +/* + Lock IO cache and wait for all other threads to join. + + SYNOPSIS + lock_io_cache() + cache The cache of the thread entering the lock. + pos File position of the block to read. + Unused for the write thread. + + DESCRIPTION + + Wait for all threads to finish with the current buffer. We want + all threads to proceed in concert. The last thread to join + lock_io_cache() will read the block from file and all threads start + to use it. Then they will join again for reading the next block. + + The waiting threads detect a fresh buffer by comparing + cshare->pos_in_file with the position they want to process next. + Since the first block may start at position 0, we take + cshare->read_end as an additional condition. This variable is + initialized to NULL and will be set after a block of data is written + to the buffer. + + RETURN + 1 OK, lock in place, go ahead and read. + 0 OK, unlocked, another thread did the read. +*/ + +static int lock_io_cache(IO_CACHE *cache, my_off_t pos) +{ + IO_CACHE_SHARE *cshare= cache->share; + DBUG_ENTER("lock_io_cache"); + + /* Enter the lock. */ + mysql_mutex_lock(&cshare->mutex); + cshare->running_threads--; + DBUG_PRINT("io_cache_share", ("%s: 0x%lx pos: %lu running: %u", + (cache == cshare->source_cache) ? + "writer" : "reader", (long) cache, (ulong) pos, + cshare->running_threads)); + + if (cshare->source_cache) + { + /* A write cache is synchronized to the read caches. */ + + if (cache == cshare->source_cache) + { + /* The writer waits until all readers are here. */ + while (cshare->running_threads) + { + DBUG_PRINT("io_cache_share", ("writer waits in lock")); + mysql_cond_wait(&cshare->cond_writer, &cshare->mutex); + } + DBUG_PRINT("io_cache_share", ("writer awoke, going to copy")); + + /* Stay locked. Leave the lock later by unlock_io_cache(). */ + DBUG_RETURN(1); + } + + /* The last thread wakes the writer. */ + if (!cshare->running_threads) + { + DBUG_PRINT("io_cache_share", ("waking writer")); + mysql_cond_signal(&cshare->cond_writer); + } + + /* + Readers wait until the data is copied from the writer. Another + reason to stop waiting is the removal of the write thread. If this + happens, we leave the lock with old data in the buffer. + */ + while ((!cshare->read_end || (cshare->pos_in_file < pos)) && + cshare->source_cache) + { + DBUG_PRINT("io_cache_share", ("reader waits in lock")); + mysql_cond_wait(&cshare->cond, &cshare->mutex); + } + + /* + If the writer was removed from the share while this thread was + asleep, we need to simulate an EOF condition. The writer cannot + reset the share variables as they might still be in use by readers + of the last block. When we awake here then because the last + joining thread signalled us. If the writer is not the last, it + will not signal. So it is safe to clear the buffer here. + */ + if (!cshare->read_end || (cshare->pos_in_file < pos)) + { + DBUG_PRINT("io_cache_share", ("reader found writer removed. EOF")); + cshare->read_end= cshare->buffer; /* Empty buffer. */ + cshare->error= 0; /* EOF is not an error. */ + } + } + else + { + /* + There are read caches only. The last thread arriving in + lock_io_cache() continues with a locked cache and reads the block. + */ + if (!cshare->running_threads) + { + DBUG_PRINT("io_cache_share", ("last thread joined, going to read")); + /* Stay locked. Leave the lock later by unlock_io_cache(). */ + DBUG_RETURN(1); + } + + /* + All other threads wait until the requested block is read by the + last thread arriving. Another reason to stop waiting is the + removal of a thread. If this leads to all threads being in the + lock, we have to continue also. The first of the awaken threads + will then do the read. + */ + while ((!cshare->read_end || (cshare->pos_in_file < pos)) && + cshare->running_threads) + { + DBUG_PRINT("io_cache_share", ("reader waits in lock")); + mysql_cond_wait(&cshare->cond, &cshare->mutex); + } + + /* If the block is not yet read, continue with a locked cache and read. */ + if (!cshare->read_end || (cshare->pos_in_file < pos)) + { + DBUG_PRINT("io_cache_share", ("reader awoke, going to read")); + /* Stay locked. Leave the lock later by unlock_io_cache(). */ + DBUG_RETURN(1); + } + + /* Another thread did read the block already. */ + } + DBUG_PRINT("io_cache_share", ("reader awoke, going to process %u bytes", + (uint) (cshare->read_end ? (size_t) + (cshare->read_end - cshare->buffer) : + 0))); + + /* + Leave the lock. Do not call unlock_io_cache() later. The thread that + filled the buffer did this and marked all threads as running. + */ + mysql_mutex_unlock(&cshare->mutex); + DBUG_RETURN(0); +} + + +/* + Unlock IO cache. + + SYNOPSIS + unlock_io_cache() + cache The cache of the thread leaving the lock. + + NOTE + This is called by the thread that filled the buffer. It marks all + threads as running and awakes them. This must not be done by any + other thread. + + Do not signal cond_writer. Either there is no writer or the writer + is the only one who can call this function. + + The reason for resetting running_threads to total_threads before + waking all other threads is that it could be possible that this + thread is so fast with processing the buffer that it enters the lock + before even one other thread has left it. If every awoken thread + would increase running_threads by one, this thread could think that + he is again the last to join and would not wait for the other + threads to process the data. + + RETURN + void +*/ + +static void unlock_io_cache(IO_CACHE *cache) +{ + IO_CACHE_SHARE *cshare= cache->share; + DBUG_ENTER("unlock_io_cache"); + DBUG_PRINT("io_cache_share", ("%s: 0x%lx pos: %lu running: %u", + (cache == cshare->source_cache) ? + "writer" : "reader", + (long) cache, (ulong) cshare->pos_in_file, + cshare->total_threads)); + + cshare->running_threads= cshare->total_threads; + mysql_cond_broadcast(&cshare->cond); + mysql_mutex_unlock(&cshare->mutex); + DBUG_VOID_RETURN; +} + + +/* + Read from IO_CACHE when it is shared between several threads. + + SYNOPSIS + _my_b_read_r() + cache IO_CACHE pointer + Buffer Buffer to retrieve count bytes from file + Count Number of bytes to read into Buffer + + NOTE + This function is only called from the my_b_read() macro when there + isn't enough characters in the buffer to satisfy the request. + + IMPLEMENTATION + + It works as follows: when a thread tries to read from a file (that + is, after using all the data from the (shared) buffer), it just + hangs on lock_io_cache(), waiting for other threads. When the very + last thread attempts a read, lock_io_cache() returns 1, the thread + does actual IO and unlock_io_cache(), which signals all the waiting + threads that data is in the buffer. + + WARNING + + When changing this function, be careful with handling file offsets + (end-of_file, pos_in_file). Do not cast them to possibly smaller + types than my_off_t unless you can be sure that their value fits. + Same applies to differences of file offsets. (Bug #11527) + + When changing this function, check _my_b_read(). It might need the + same change. + + RETURN + 0 we succeeded in reading all data + 1 Error: can't read requested characters +*/ + +int _my_b_read_r(IO_CACHE *cache, uchar *Buffer, size_t Count) +{ + my_off_t pos_in_file; + size_t length, diff_length, left_length; + IO_CACHE_SHARE *cshare= cache->share; + DBUG_ENTER("_my_b_read_r"); + + if ((left_length= (size_t) (cache->read_end - cache->read_pos))) + { + DBUG_ASSERT(Count >= left_length); /* User is not using my_b_read() */ + memcpy(Buffer, cache->read_pos, left_length); + Buffer+= left_length; + Count-= left_length; + } + while (Count) + { + size_t cnt, len; + + pos_in_file= cache->pos_in_file + (cache->read_end - cache->buffer); + diff_length= (size_t) (pos_in_file & (IO_SIZE-1)); + length=IO_ROUND_UP(Count+diff_length)-diff_length; + length= ((length <= cache->read_length) ? + length + IO_ROUND_DN(cache->read_length - length) : + length - IO_ROUND_UP(length - cache->read_length)); + if (cache->type != READ_FIFO && + (length > (cache->end_of_file - pos_in_file))) + length= (size_t) (cache->end_of_file - pos_in_file); + if (length == 0) + { + cache->error= (int) left_length; + DBUG_RETURN(1); + } + if (lock_io_cache(cache, pos_in_file)) + { + /* With a synchronized write/read cache we won't come here... */ + DBUG_ASSERT(!cshare->source_cache); + /* + ... unless the writer has gone before this thread entered the + lock. Simulate EOF in this case. It can be distinguished by + cache->file. + */ + if (cache->file < 0) + len= 0; + else + { + /* + Whenever a function which operates on IO_CACHE flushes/writes + some part of the IO_CACHE to disk it will set the property + "seek_not_done" to indicate this to other functions operating + on the IO_CACHE. + */ + if (cache->seek_not_done) + { + if (mysql_file_seek(cache->file, pos_in_file, MY_SEEK_SET, MYF(0)) + == MY_FILEPOS_ERROR) + { + cache->error= -1; + unlock_io_cache(cache); + DBUG_RETURN(1); + } + } + len= mysql_file_read(cache->file, cache->buffer, length, cache->myflags); + } + DBUG_PRINT("io_cache_share", ("read %lu bytes", (ulong) len)); + + cache->read_end= cache->buffer + (len == (size_t) -1 ? 0 : len); + cache->error= (len == length ? 0 : (int) len); + cache->pos_in_file= pos_in_file; + + /* Copy important values to the share. */ + cshare->error= cache->error; + cshare->read_end= cache->read_end; + cshare->pos_in_file= pos_in_file; + + /* Mark all threads as running and wake them. */ + unlock_io_cache(cache); + } + else + { + /* + With a synchronized write/read cache readers always come here. + Copy important values from the share. + */ + cache->error= cshare->error; + cache->read_end= cshare->read_end; + cache->pos_in_file= cshare->pos_in_file; + + len= ((cache->error == -1) ? (size_t) -1 : + (size_t) (cache->read_end - cache->buffer)); + } + cache->read_pos= cache->buffer; + cache->seek_not_done= 0; + if (len == 0 || len == (size_t) -1) + { + DBUG_PRINT("io_cache_share", ("reader error. len %lu left %lu", + (ulong) len, (ulong) left_length)); + cache->error= (int) left_length; + DBUG_RETURN(1); + } + cnt= (len > Count) ? Count : len; + memcpy(Buffer, cache->read_pos, cnt); + Count -= cnt; + Buffer+= cnt; + left_length+= cnt; + cache->read_pos+= cnt; + } + DBUG_RETURN(0); +} + + +/* + Copy data from write cache to read cache. + + SYNOPSIS + copy_to_read_buffer() + write_cache The write cache. + write_buffer The source of data, mostly the cache buffer. + write_length The number of bytes to copy. + + NOTE + The write thread will wait for all read threads to join the cache + lock. Then it copies the data over and wakes the read threads. + + RETURN + void +*/ + +static void copy_to_read_buffer(IO_CACHE *write_cache, + const uchar *write_buffer, size_t write_length) +{ + IO_CACHE_SHARE *cshare= write_cache->share; + + DBUG_ASSERT(cshare->source_cache == write_cache); + /* + write_length is usually less or equal to buffer_length. + It can be bigger if _my_b_write() is called with a big length. + */ + while (write_length) + { + size_t copy_length= MY_MIN(write_length, write_cache->buffer_length); + int MY_ATTRIBUTE((unused)) rc; + + rc= lock_io_cache(write_cache, write_cache->pos_in_file); + /* The writing thread does always have the lock when it awakes. */ + DBUG_ASSERT(rc); + + memcpy(cshare->buffer, write_buffer, copy_length); + + cshare->error= 0; + cshare->read_end= cshare->buffer + copy_length; + cshare->pos_in_file= write_cache->pos_in_file; + + /* Mark all threads as running and wake them. */ + unlock_io_cache(write_cache); + + write_buffer+= copy_length; + write_length-= copy_length; + } +} + + +/* + Do sequential read from the SEQ_READ_APPEND cache. + + We do this in three stages: + - first read from info->buffer + - then if there are still data to read, try the file descriptor + - afterwards, if there are still data to read, try append buffer + + RETURNS + 0 Success + 1 Failed to read +*/ + +int _my_b_seq_read(IO_CACHE *info, uchar *Buffer, size_t Count) +{ + size_t length, diff_length, left_length, save_count, max_length; + my_off_t pos_in_file; + save_count=Count; + + /* first, read the regular buffer */ + if ((left_length=(size_t) (info->read_end-info->read_pos))) + { + DBUG_ASSERT(Count > left_length); /* User is not using my_b_read() */ + memcpy(Buffer,info->read_pos, left_length); + Buffer+=left_length; + Count-=left_length; + } + lock_append_buffer(info); + + /* pos_in_file always point on where info->buffer was read */ + if ((pos_in_file=info->pos_in_file + + (size_t) (info->read_end - info->buffer)) >= info->end_of_file) + goto read_append_buffer; + + /* + With read-append cache we must always do a seek before we read, + because the write could have moved the file pointer astray + */ + if (mysql_file_seek(info->file, pos_in_file, MY_SEEK_SET, MYF(0)) == MY_FILEPOS_ERROR) + { + info->error= -1; + unlock_append_buffer(info); + return (1); + } + info->seek_not_done=0; + + diff_length= (size_t) (pos_in_file & (IO_SIZE-1)); + + /* now the second stage begins - read from file descriptor */ + if (Count >= (size_t) (IO_SIZE+(IO_SIZE-diff_length))) + { + /* Fill first intern buffer */ + size_t read_length; + + length=(Count & (size_t) ~(IO_SIZE-1))-diff_length; + if ((read_length= mysql_file_read(info->file,Buffer, length, + info->myflags)) == (size_t) -1) + { + info->error= -1; + unlock_append_buffer(info); + return 1; + } + Count-=read_length; + Buffer+=read_length; + pos_in_file+=read_length; + + if (read_length != length) + { + /* + We only got part of data; Read the rest of the data from the + write buffer + */ + goto read_append_buffer; + } + left_length+=length; + diff_length=0; + } + + max_length= info->read_length-diff_length; + if (max_length > (info->end_of_file - pos_in_file)) + max_length= (size_t) (info->end_of_file - pos_in_file); + if (!max_length) + { + if (Count) + goto read_append_buffer; + length=0; /* Didn't read any more chars */ + } + else + { + length= mysql_file_read(info->file,info->buffer, max_length, info->myflags); + if (length == (size_t) -1) + { + info->error= -1; + unlock_append_buffer(info); + return 1; + } + if (length < Count) + { + memcpy(Buffer, info->buffer, length); + Count -= length; + Buffer += length; + + /* + added the line below to make + DBUG_ASSERT(pos_in_file==info->end_of_file) pass. + otherwise this does not appear to be needed + */ + pos_in_file += length; + goto read_append_buffer; + } + } + unlock_append_buffer(info); + info->read_pos=info->buffer+Count; + info->read_end=info->buffer+length; + info->pos_in_file=pos_in_file; + memcpy(Buffer,info->buffer,(size_t) Count); + return 0; + +read_append_buffer: + + /* + Read data from the current write buffer. + Count should never be == 0 here (The code will work even if count is 0) + */ + + { + /* First copy the data to Count */ + size_t len_in_buff = (size_t) (info->write_pos - info->append_read_pos); + size_t copy_len; + size_t transfer_len; + + DBUG_ASSERT(info->append_read_pos <= info->write_pos); + /* + TODO: figure out if the assert below is needed or correct. + */ + DBUG_ASSERT(pos_in_file == info->end_of_file); + copy_len= MY_MIN(Count, len_in_buff); + memcpy(Buffer, info->append_read_pos, copy_len); + info->append_read_pos += copy_len; + Count -= copy_len; + if (Count) + info->error = (int)(save_count - Count); + + /* Fill read buffer with data from write buffer */ + memcpy(info->buffer, info->append_read_pos, + (size_t) (transfer_len=len_in_buff - copy_len)); + info->read_pos= info->buffer; + info->read_end= info->buffer+transfer_len; + info->append_read_pos=info->write_pos; + info->pos_in_file=pos_in_file+copy_len; + info->end_of_file+=len_in_buff; + } + unlock_append_buffer(info); + return Count ? 1 : 0; +} + + +/* Read one byte when buffer is empty */ + +int _my_b_get(IO_CACHE *info) +{ + uchar buff; + IO_CACHE_CALLBACK pre_read,post_read; + if ((pre_read = info->pre_read)) + (*pre_read)(info); + if ((*(info)->read_function)(info,&buff,1)) + return my_b_EOF; + if ((post_read = info->post_read)) + (*post_read)(info); + return (int) (uchar) buff; +} + +/* + Write a byte buffer to IO_CACHE and flush to disk + if IO_CACHE is full. + + RETURN VALUE + 1 On error on write + 0 On success + -1 On error; my_errno contains error code. +*/ + +int _my_b_write(IO_CACHE *info, const uchar *Buffer, size_t Count) +{ + size_t rest_length,length; + my_off_t pos_in_file= info->pos_in_file; + + DBUG_EXECUTE_IF("simulate_huge_load_data_file", + { + pos_in_file=(my_off_t)(5000000000ULL); + }); + if (pos_in_file+info->buffer_length > info->end_of_file) + { + errno=EFBIG; + set_my_errno(EFBIG); + return info->error = -1; + } + + rest_length= (size_t) (info->write_end - info->write_pos); + memcpy(info->write_pos,Buffer,(size_t) rest_length); + Buffer+=rest_length; + Count-=rest_length; + info->write_pos+=rest_length; + + if (my_b_flush_io_cache(info,1)) + return 1; + if (Count >= IO_SIZE) + { /* Fill first intern buffer */ + length=Count & (size_t) ~(IO_SIZE-1); + if (info->seek_not_done) + { + /* + Whenever a function which operates on IO_CACHE flushes/writes + some part of the IO_CACHE to disk it will set the property + "seek_not_done" to indicate this to other functions operating + on the IO_CACHE. + */ + if (mysql_file_seek(info->file, info->pos_in_file, MY_SEEK_SET, MYF(0))) + { + info->error= -1; + return (1); + } + info->seek_not_done=0; + } + if (mysql_file_write(info->file, Buffer, length, info->myflags | MY_NABP)) + return info->error= -1; + + /* + In case of a shared I/O cache with a writer we normally do direct + write cache to read cache copy. Simulate this here by direct + caller buffer to read cache copy. Do it after the write so that + the cache readers actions on the flushed part can go in parallel + with the write of the extra stuff. copy_to_read_buffer() + synchronizes writer and readers so that after this call the + readers can act on the extra stuff while the writer can go ahead + and prepare the next output. copy_to_read_buffer() relies on + info->pos_in_file. + */ + if (info->share) + copy_to_read_buffer(info, Buffer, length); + + Count-=length; + Buffer+=length; + info->pos_in_file+=length; + } + memcpy(info->write_pos,Buffer,(size_t) Count); + info->write_pos+=Count; + return 0; +} + + +/* + Append a block to the write buffer. + This is done with the buffer locked to ensure that we don't read from + the write buffer before we are ready with it. +*/ + +int my_b_append(IO_CACHE *info, const uchar *Buffer, size_t Count) +{ + size_t rest_length,length; + + /* + Assert that we cannot come here with a shared cache. If we do one + day, we might need to add a call to copy_to_read_buffer(). + */ + DBUG_ASSERT(!info->share); + + lock_append_buffer(info); + rest_length= (size_t) (info->write_end - info->write_pos); + if (Count <= rest_length) + goto end; + memcpy(info->write_pos, Buffer, rest_length); + Buffer+=rest_length; + Count-=rest_length; + info->write_pos+=rest_length; + if (my_b_flush_io_cache(info,0)) + { + unlock_append_buffer(info); + return 1; + } + if (Count >= IO_SIZE) + { /* Fill first intern buffer */ + length=Count & (size_t) ~(IO_SIZE-1); + if (mysql_file_write(info->file,Buffer, length, info->myflags | MY_NABP)) + { + unlock_append_buffer(info); + return info->error= -1; + } + Count-=length; + Buffer+=length; + info->end_of_file+=length; + } + +end: + memcpy(info->write_pos,Buffer,(size_t) Count); + info->write_pos+=Count; + unlock_append_buffer(info); + return 0; +} + + +int my_b_safe_write(IO_CACHE *info, const uchar *Buffer, size_t Count) +{ + /* + Sasha: We are not writing this with the ? operator to avoid hitting + a possible compiler bug. At least gcc 2.95 cannot deal with + several layers of ternary operators that evaluated comma(,) operator + expressions inside - I do have a test case if somebody wants it + */ + if (info->type == SEQ_READ_APPEND) + return my_b_append(info, Buffer, Count); + return my_b_write(info, Buffer, Count); +} + + +/* + Write a block to disk where part of the data may be inside the record + buffer. As all write calls to the data goes through the cache, + we will never get a seek over the end of the buffer +*/ + +int my_block_write(IO_CACHE *info, const uchar *Buffer, size_t Count, + my_off_t pos) +{ + size_t length; + int error=0; + + /* + Assert that we cannot come here with a shared cache. If we do one + day, we might need to add a call to copy_to_read_buffer(). + */ + DBUG_ASSERT(!info->share); + + if (pos < info->pos_in_file) + { + /* Of no overlap, write everything without buffering */ + if (pos + Count <= info->pos_in_file) + return (int)mysql_file_pwrite(info->file, Buffer, Count, pos, + info->myflags | MY_NABP); + /* Write the part of the block that is before buffer */ + length= (uint) (info->pos_in_file - pos); + if (mysql_file_pwrite(info->file, Buffer, length, pos, info->myflags | MY_NABP)) + info->error= error= -1; + Buffer+=length; + pos+= length; + Count-= length; +#ifdef _WIN32 + info->seek_not_done=1; +#endif + } + + /* Check if we want to write inside the used part of the buffer.*/ + length= (size_t) (info->write_end - info->buffer); + if (pos < info->pos_in_file + length) + { + size_t offset= (size_t) (pos - info->pos_in_file); + length-=offset; + if (length > Count) + length=Count; + memcpy(info->buffer+offset, Buffer, length); + Buffer+=length; + Count-= length; + /* Fix length of buffer if the new data was larger */ + if (info->buffer+length > info->write_pos) + info->write_pos=info->buffer+length; + if (!Count) + return (error); + } + /* Write at the end of the current buffer; This is the normal case */ + if (_my_b_write(info, Buffer, Count)) + error= -1; + return error; +} + + + /* Flush write cache */ + +#define LOCK_APPEND_BUFFER if (need_append_buffer_lock) \ + lock_append_buffer(info); +#define UNLOCK_APPEND_BUFFER if (need_append_buffer_lock) \ + unlock_append_buffer(info); + +int my_b_flush_io_cache(IO_CACHE *info, + int need_append_buffer_lock MY_ATTRIBUTE((unused))) +{ + size_t length; + my_off_t pos_in_file; + my_bool append_cache= (info->type == SEQ_READ_APPEND); + DBUG_ENTER("my_b_flush_io_cache"); + DBUG_PRINT("enter", ("cache: 0x%lx", (long) info)); + + DBUG_EXECUTE_IF("simulate_error_during_flush_cache_to_file", + { + DBUG_RETURN(TRUE); + }); + if (!append_cache) + need_append_buffer_lock= 0; + + if (info->type == WRITE_CACHE || append_cache) + { + if (info->file == -1) + { + if (real_open_cached_file(info)) + DBUG_RETURN((info->error= -1)); + } + LOCK_APPEND_BUFFER; + + if ((length=(size_t) (info->write_pos - info->write_buffer))) + { + /* + In case of a shared I/O cache with a writer we do direct write + cache to read cache copy. Do it before the write here so that + the readers can work in parallel with the write. + copy_to_read_buffer() relies on info->pos_in_file. + */ + if (info->share) + copy_to_read_buffer(info, info->write_buffer, length); + + pos_in_file=info->pos_in_file; + /* + If we have append cache, we always open the file with + O_APPEND which moves the pos to EOF automatically on every write + */ + if (!append_cache && info->seek_not_done) + { /* File touched, do seek */ + if (mysql_file_seek(info->file, pos_in_file, MY_SEEK_SET, MYF(0)) == + MY_FILEPOS_ERROR) + { + UNLOCK_APPEND_BUFFER; + DBUG_RETURN((info->error= -1)); + } + if (!append_cache) + info->seek_not_done=0; + } + if (!append_cache) + info->pos_in_file+=length; + info->write_end= (info->write_buffer+info->buffer_length- + ((pos_in_file+length) & (IO_SIZE-1))); + + if (mysql_file_write(info->file,info->write_buffer,length, + info->myflags | MY_NABP)) + info->error= -1; + else + info->error= 0; + if (!append_cache) + { + set_if_bigger(info->end_of_file,(pos_in_file+length)); + } + else + { + info->end_of_file+=(info->write_pos-info->append_read_pos); + DBUG_ASSERT(info->end_of_file == mysql_file_tell(info->file, MYF(0))); + } + + info->append_read_pos=info->write_pos=info->write_buffer; + ++info->disk_writes; + UNLOCK_APPEND_BUFFER; + DBUG_RETURN(info->error); + } + } + UNLOCK_APPEND_BUFFER; + DBUG_RETURN(0); +} + +/* + Free an IO_CACHE object + + SYNOPSOS + end_io_cache() + info IO_CACHE Handle to free + + NOTES + It's currently safe to call this if one has called init_io_cache() + on the 'info' object, even if init_io_cache() failed. + This function is also safe to call twice with the same handle. + + RETURN + 0 ok + # Error +*/ + +int end_io_cache(IO_CACHE *info) +{ + int error=0; + IO_CACHE_CALLBACK pre_close; + DBUG_ENTER("end_io_cache"); + DBUG_PRINT("enter",("cache: 0x%lx", (ulong) info)); + + /* + Every thread must call remove_io_thread(). The last one destroys + the share elements. + */ + DBUG_ASSERT(!info->share || !info->share->total_threads); + + if ((pre_close=info->pre_close)) + { + (*pre_close)(info); + info->pre_close= 0; + } + if (info->alloced_buffer) + { + info->alloced_buffer=0; + if (info->file != -1) /* File doesn't exist */ + error= my_b_flush_io_cache(info,1); + my_free(info->buffer); + info->buffer=info->read_pos=(uchar*) 0; + } + if (info->type == SEQ_READ_APPEND) + { + /* Destroy allocated mutex */ + info->type= TYPE_NOT_SET; + mysql_mutex_destroy(&info->append_buffer_lock); + } + DBUG_RETURN(error); +} /* end_io_cache */ + + +/********************************************************************** + Testing of MF_IOCACHE +**********************************************************************/ + +#ifdef MAIN + +#include + +void die(const char* fmt, ...) +{ + va_list va_args; + va_start(va_args,fmt); + fprintf(stderr,"Error:"); + vfprintf(stderr, fmt,va_args); + fprintf(stderr,", errno=%d\n", errno); + exit(1); +} + +int open_file(const char* fname, IO_CACHE* info, int cache_size) +{ + int fd; + if ((fd=my_open(fname,O_CREAT | O_RDWR,MYF(MY_WME))) < 0) + die("Could not open %s", fname); + if (init_io_cache(info, fd, cache_size, SEQ_READ_APPEND, 0,0,MYF(MY_WME))) + die("failed in init_io_cache()"); + return fd; +} + +void close_file(IO_CACHE* info) +{ + end_io_cache(info); + my_close(info->file, MYF(MY_WME)); +} + +int main(int argc, char** argv) +{ + IO_CACHE sra_cache; /* SEQ_READ_APPEND */ + MY_STAT status; + const char* fname="/tmp/iocache.test"; + int cache_size=16384; + char llstr_buf[22]; + int max_block,total_bytes=0; + int i,num_loops=100,error=0; + char *p; + char* block, *block_end; + MY_INIT(argv[0]); + max_block = cache_size*3; + if (!(block=(char*)my_malloc(PSI_NOT_INSTRUMENTED, + max_block,MYF(MY_WME)))) + die("Not enough memory to allocate test block"); + block_end = block + max_block; + for (p = block,i=0; p < block_end;i++) + { + *p++ = (char)i; + } + if (my_stat(fname,&status, MYF(0)) && + my_delete(fname,MYF(MY_WME))) + { + die("Delete of %s failed, aborting", fname); + } + open_file(fname,&sra_cache, cache_size); + for (i = 0; i < num_loops; i++) + { + char buf[4]; + int block_size = abs(rand() % max_block); + int4store(buf, block_size); + if (my_b_append(&sra_cache,buf,4) || + my_b_append(&sra_cache, block, block_size)) + die("write failed"); + total_bytes += 4+block_size; + } + close_file(&sra_cache); + my_free(block); + if (!my_stat(fname,&status,MYF(MY_WME))) + die("%s failed to stat, but I had just closed it,\ + wonder how that happened"); + printf("Final size of %s is %s, wrote %d bytes\n",fname, + llstr(status.st_size,llstr_buf), + total_bytes); + my_delete(fname, MYF(MY_WME)); + /* check correctness of tests */ + if (total_bytes != status.st_size) + { + fprintf(stderr,"Not the same number of bytes acutally in file as bytes \ +supposedly written\n"); + error=1; + } + exit(error); + return 0; +} +#endif diff --git a/mysql/mysys/mf_iocache2.c b/mysql/mysys/mf_iocache2.c new file mode 100644 index 0000000..c3505e6 --- /dev/null +++ b/mysql/mysys/mf_iocache2.c @@ -0,0 +1,514 @@ +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + More functions to be used with IO_CACHE files +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include +#include + +/* + Copy contents of an IO_CACHE to a file. + + SYNOPSIS + my_b_copy_to_file() + cache IO_CACHE to copy from + file File to copy to + + DESCRIPTION + Copy the contents of the cache to the file. The cache will be + re-inited to a read cache and will read from the beginning of the + cache. + + If a failure to write fully occurs, the cache is only copied + partially. + + TODO + Make this function solid by handling partial reads from the cache + in a correct manner: it should be atomic. + + RETURN VALUE + 0 All OK + 1 An error occured +*/ +int +my_b_copy_to_file(IO_CACHE *cache, FILE *file) +{ + size_t bytes_in_cache; + DBUG_ENTER("my_b_copy_to_file"); + + /* Reinit the cache to read from the beginning of the cache */ + if (reinit_io_cache(cache, READ_CACHE, 0L, FALSE, FALSE)) + DBUG_RETURN(1); + bytes_in_cache= my_b_bytes_in_cache(cache); + do + { + if (my_fwrite(file, cache->read_pos, bytes_in_cache, + MYF(MY_WME | MY_NABP)) == (size_t) -1) + DBUG_RETURN(1); + cache->read_pos= cache->read_end; + } while ((bytes_in_cache= my_b_fill(cache))); + if(cache->error == -1) + DBUG_RETURN(1); + DBUG_RETURN(0); +} + + +my_off_t my_b_append_tell(IO_CACHE* info) +{ + /* + Sometimes we want to make sure that the variable is not put into + a register in debugging mode so we can see its value in the core + */ +#ifndef DBUG_OFF +# define dbug_volatile volatile +#else +# define dbug_volatile +#endif + + /* + Prevent optimizer from putting res in a register when debugging + we need this to be able to see the value of res when the assert fails + */ + dbug_volatile my_off_t res; + + /* + We need to lock the append buffer mutex to keep flush_io_cache() + from messing with the variables that we need in order to provide the + answer to the question. + */ + mysql_mutex_lock(&info->append_buffer_lock); + +#ifndef DBUG_OFF + /* + Make sure EOF is where we think it is. Note that we cannot just use + my_tell() because we have a reader thread that could have left the + file offset in a non-EOF location + */ + { + volatile my_off_t save_pos; + save_pos = my_tell(info->file,MYF(0)); + my_seek(info->file,(my_off_t)0,MY_SEEK_END,MYF(0)); + /* + Save the value of my_tell in res so we can see it when studying coredump + */ + DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer) + == (res=my_tell(info->file,MYF(0)))); + my_seek(info->file,save_pos,MY_SEEK_SET,MYF(0)); + } +#endif + res = info->end_of_file + (info->write_pos-info->append_read_pos); + mysql_mutex_unlock(&info->append_buffer_lock); + return res; +} + +my_off_t my_b_safe_tell(IO_CACHE *info) +{ + if (unlikely(info->type == SEQ_READ_APPEND)) + return my_b_append_tell(info); + return my_b_tell(info); +} + +/* + Make next read happen at the given position + For write cache, make next write happen at the given position +*/ + +void my_b_seek(IO_CACHE *info,my_off_t pos) +{ + my_off_t offset; + DBUG_ENTER("my_b_seek"); + DBUG_PRINT("enter",("pos: %lu", (ulong) pos)); + + /* + TODO: + Verify that it is OK to do seek in the non-append + area in SEQ_READ_APPEND cache + a) see if this always works + b) see if there is a better way to make it work + */ + if (info->type == SEQ_READ_APPEND) + (void) flush_io_cache(info); + + offset=(pos - info->pos_in_file); + + if (info->type == READ_CACHE || info->type == SEQ_READ_APPEND) + { + /* TODO: explain why this works if pos < info->pos_in_file */ + if ((ulonglong) offset < (ulonglong) (info->read_end - info->buffer)) + { + /* The read is in the current buffer; Reuse it */ + info->read_pos = info->buffer + offset; + DBUG_VOID_RETURN; + } + else + { + /* Force a new read on next my_b_read */ + info->read_pos=info->read_end=info->buffer; + } + } + else if (info->type == WRITE_CACHE) + { + /* If write is in current buffer, reuse it */ + if ((ulonglong) offset <= + (ulonglong) (info->write_end - info->write_buffer)) + { + info->write_pos = info->write_buffer + offset; + DBUG_VOID_RETURN; + } + (void) flush_io_cache(info); + /* Correct buffer end so that we write in increments of IO_SIZE */ + info->write_end=(info->write_buffer+info->buffer_length- + (pos & (IO_SIZE-1))); + } + info->pos_in_file=pos; + info->seek_not_done=1; + DBUG_VOID_RETURN; +} + + +/* + Fill buffer of the cache. + + NOTES + This assumes that you have already used all characters in the CACHE, + independent of the read_pos value! + + RETURN + 0 On error or EOF (info->error = -1 on error) + # Number of characters +*/ + + +size_t my_b_fill(IO_CACHE *info) +{ + my_off_t pos_in_file=(info->pos_in_file+ + (size_t) (info->read_end - info->buffer)); + size_t diff_length, length, max_length; + + if (info->seek_not_done) + { /* File touched, do seek */ + if (my_seek(info->file,pos_in_file,MY_SEEK_SET,MYF(0)) == + MY_FILEPOS_ERROR) + { + info->error= 0; + return 0; + } + info->seek_not_done=0; + } + diff_length=(size_t) (pos_in_file & (IO_SIZE-1)); + max_length=(info->read_length-diff_length); + if (max_length >= (info->end_of_file - pos_in_file)) + max_length= (size_t) (info->end_of_file - pos_in_file); + + if (!max_length) + { + info->error= 0; + return 0; /* EOF */ + } + DBUG_EXECUTE_IF ("simulate_my_b_fill_error", + {DBUG_SET("+d,simulate_file_read_error");}); + if ((length= my_read(info->file,info->buffer,max_length, + info->myflags)) == (size_t) -1) + { + info->error= -1; + return 0; + } + info->read_pos=info->buffer; + info->read_end=info->buffer+length; + info->pos_in_file=pos_in_file; + return length; +} + + +/* + Read a string ended by '\n' into a buffer of 'max_length' size. + Returns number of characters read, 0 on error. + last byte is set to '\0' + If buffer is full then to[max_length-1] will be set to \0. +*/ + +size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length) +{ + char *start = to; + size_t length; + max_length--; /* Save place for end \0 */ + + /* Calculate number of characters in buffer */ + if (!(length= my_b_bytes_in_cache(info)) && + !(length= my_b_fill(info))) + return 0; + + for (;;) + { + uchar *pos, *end; + if (length > max_length) + length=max_length; + for (pos=info->read_pos,end=pos+length ; pos < end ;) + { + if ((*to++ = *pos++) == '\n') + { + info->read_pos=pos; + *to='\0'; + return (size_t) (to-start); + } + } + if (!(max_length-=length)) + { + /* Found enough charcters; Return found string */ + info->read_pos=pos; + *to='\0'; + return (size_t) (to-start); + } + if (!(length=my_b_fill(info))) + return 0; + } +} + + +my_off_t my_b_filelength(IO_CACHE *info) +{ + if (info->type == WRITE_CACHE) + return my_b_tell(info); + + info->seek_not_done= 1; + return my_seek(info->file, 0L, MY_SEEK_END, MYF(0)); +} + + +/** + Simple printf version. Used for logging in MySQL. + Supports '%c', '%s', '%b', '%d', '%u', '%ld', '%lu' and '%llu'. + Returns number of written characters, or (size_t) -1 on error. + + @param info The IO_CACHE to write to + @param fmt format string + @param ... variable list of arguments + @return number of bytes written, -1 if an error occurred +*/ + +size_t my_b_printf(IO_CACHE *info, const char* fmt, ...) +{ + size_t result; + va_list args; + va_start(args,fmt); + result=my_b_vprintf(info, fmt, args); + va_end(args); + return result; +} + + +/** + Implementation of my_b_printf. + + @param info The IO_CACHE to write to + @param fmt format string + @param args variable list of arguments + @return number of bytes written, -1 if an error occurred +*/ + +size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list args) +{ + size_t out_length= 0; + uint minimum_width; /* as yet unimplemented */ + uint minimum_width_sign; + uint precision; /* as yet unimplemented for anything but %b */ + my_bool is_zero_padded; + + /* + Store the location of the beginning of a format directive, for the + case where we learn we shouldn't have been parsing a format string + at all, and we don't want to lose the flag/precision/width/size + information. + */ + const char* backtrack; + + for (; *fmt != '\0'; fmt++) + { + /* Copy everything until '%' or end of string */ + const char *start=fmt; + size_t length; + + for (; (*fmt != '\0') && (*fmt != '%'); fmt++) ; + + length= (size_t) (fmt - start); + out_length+=length; + if (my_b_write(info, (const uchar*) start, length)) + goto err; + + if (*fmt == '\0') /* End of format */ + return out_length; + + /* + By this point, *fmt must be a percent; Keep track of this location and + skip over the percent character. + */ + DBUG_ASSERT(*fmt == '%'); + backtrack= fmt; + fmt++; + + is_zero_padded= FALSE; + minimum_width_sign= 1; + minimum_width= 0; + precision= 0; + /* Skip if max size is used (to be compatible with printf) */ + +process_flags: + switch (*fmt) + { + case '-': + minimum_width_sign= -1; fmt++; goto process_flags; + case '0': + is_zero_padded= TRUE; fmt++; goto process_flags; + case '#': + /** @todo Implement "#" conversion flag. */ fmt++; goto process_flags; + case ' ': + /** @todo Implement " " conversion flag. */ fmt++; goto process_flags; + case '+': + /** @todo Implement "+" conversion flag. */ fmt++; goto process_flags; + } + + if (*fmt == '*') + { + minimum_width= (int) va_arg(args, int); + fmt++; + } + else + { + while (my_isdigit(&my_charset_latin1, *fmt)) { + minimum_width=(minimum_width * 10) + (*fmt - '0'); + fmt++; + } + } + minimum_width*= minimum_width_sign; + + if (*fmt == '.') + { + fmt++; + if (*fmt == '*') { + precision= (int) va_arg(args, int); + fmt++; + } + else + { + while (my_isdigit(&my_charset_latin1, *fmt)) { + precision=(precision * 10) + (*fmt - '0'); + fmt++; + } + } + } + + if (*fmt == 's') /* String parameter */ + { + char *par = va_arg(args, char *); + size_t length2 = strlen(par); + /* TODO: implement precision */ + out_length+= length2; + if (my_b_write(info, (uchar*) par, length2)) + goto err; + } + else if (*fmt == 'c') /* char type parameter */ + { + char par[2]; + par[0] = va_arg(args, int); + out_length++; + if (my_b_write(info, (uchar*) par, 1)) + goto err; + } + else if (*fmt == 'b') /* Sized buffer parameter, only precision makes sense */ + { + char *par = va_arg(args, char *); + out_length+= precision; + if (my_b_write(info, (uchar*) par, precision)) + goto err; + } + else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */ + { + int iarg; + size_t length2; + char buff[32]; + + iarg = va_arg(args, int); + if (*fmt == 'd') + length2= (size_t) (int10_to_str((long) iarg,buff, -10) - buff); + else + length2= (uint) (int10_to_str((long) (uint) iarg,buff,10)- buff); + + /* minimum width padding */ + if (minimum_width > length2) + { + char *buffz; + + buffz= my_alloca(minimum_width - length2); + if (is_zero_padded) + memset(buffz, '0', minimum_width - length2); + else + memset(buffz, ' ', minimum_width - length2); + if (my_b_write(info, buffz, minimum_width - length2)) + { + goto err; + } + } + + out_length+= length2; + if (my_b_write(info, (uchar*) buff, length2)) + goto err; + } + else if ((*fmt == 'l' && fmt[1] == 'd') || fmt[1] == 'u') + /* long parameter */ + { + long iarg; + size_t length2; + char buff[32]; + + iarg = va_arg(args, long); + if (*++fmt == 'd') + length2= (size_t) (int10_to_str(iarg,buff, -10) - buff); + else + length2= (size_t) (int10_to_str(iarg,buff,10)- buff); + out_length+= length2; + if (my_b_write(info, (uchar*) buff, length2)) + goto err; + } + else if (fmt[0] == 'l' && fmt[1] == 'l' && fmt[2] == 'u') + { + ulonglong iarg; + size_t length2; + char buff[32]; + + iarg = va_arg(args, ulonglong); + length2= (size_t) (longlong10_to_str(iarg, buff, 10) - buff); + out_length+= length2; + fmt+= 2; + if (my_b_write(info, (uchar *) buff, length2)) + goto err; + } + else + { + /* %% or unknown code */ + if (my_b_write(info, (uchar*) backtrack, (size_t) (fmt-backtrack))) + goto err; + out_length+= fmt-backtrack; + } + } + return out_length; + +err: + return (size_t) -1; +} diff --git a/mysql/mysys/mf_keycache.c b/mysql/mysys/mf_keycache.c new file mode 100644 index 0000000..cb712ed --- /dev/null +++ b/mysql/mysys/mf_keycache.c @@ -0,0 +1,4051 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + These functions handle keyblock cacheing for ISAM and MyISAM tables. + + One cache can handle many files. + It must contain buffers of the same blocksize. + init_key_cache() should be used to init cache handler. + + The free list (free_block_list) is a stack like structure. + When a block is freed by free_block(), it is pushed onto the stack. + When a new block is required it is first tried to pop one from the stack. + If the stack is empty, it is tried to get a never-used block from the pool. + If this is empty too, then a block is taken from the LRU ring, flushing it + to disk, if neccessary. This is handled in find_key_block(). + With the new free list, the blocks can have three temperatures: + hot, warm and cold (which is free). This is remembered in the block header + by the enum BLOCK_TEMPERATURE temperature variable. Remembering the + temperature is neccessary to correctly count the number of warm blocks, + which is required to decide when blocks are allowed to become hot. Whenever + a block is inserted to another (sub-)chain, we take the old and new + temperature into account to decide if we got one more or less warm block. + blocks_unused is the sum of never used blocks in the pool and of currently + free blocks. blocks_used is the number of blocks fetched from the pool and + as such gives the maximum number of in-use blocks at any time. +*/ + +/* + Key Cache Locking + ================= + + All key cache locking is done with a single mutex per key cache: + keycache->cache_lock. This mutex is locked almost all the time + when executing code in this file (mf_keycache.c). + However it is released for I/O and some copy operations. + + The cache_lock is also released when waiting for some event. Waiting + and signalling is done via condition variables. In most cases the + thread waits on its thread->suspend condition variable. Every thread + has a my_thread_var structure, which contains this variable and a + '*next' and '**prev' pointer. These pointers are used to insert the + thread into a wait queue. + + A thread can wait for one block and thus be in one wait queue at a + time only. + + Before starting to wait on its condition variable with + mysql_cond_wait(), the thread enters itself to a specific wait queue + with link_into_queue() (double linked with '*next' + '**prev') or + wait_on_queue() (single linked with '*next'). + + Another thread, when releasing a resource, looks up the waiting thread + in the related wait queue. It sends a signal with + mysql_cond_signal() to the waiting thread. + + NOTE: Depending on the particular wait situation, either the sending + thread removes the waiting thread from the wait queue with + unlink_from_queue() or release_whole_queue() respectively, or the waiting + thread removes itself. + + There is one exception from this locking scheme when one thread wants + to reuse a block for some other address. This works by first marking + the block reserved (status= BLOCK_IN_SWITCH) and then waiting for all + threads that are reading the block to finish. Each block has a + reference to a condition variable (condvar). It holds a reference to + the thread->suspend condition variable for the waiting thread (if such + a thread exists). When that thread is signaled, the reference is + cleared. The number of readers of a block is registered in + block->hash_link->requests. See wait_for_readers() / remove_reader() + for details. This is similar to the above, but it clearly means that + only one thread can wait for a particular block. There is no queue in + this case. Strangely enough block->convar is used for waiting for the + assigned hash_link only. More precisely it is used to wait for all + requests to be unregistered from the assigned hash_link. + + The resize_queue serves two purposes: + 1. Threads that want to do a resize wait there if in_resize is set. + This is not used in the server. The server refuses a second resize + request if one is already active. keycache->in_init is used for the + synchronization. See set_var.cc. + 2. Threads that want to access blocks during resize wait here during + the re-initialization phase. + When the resize is done, all threads on the queue are signalled. + Hypothetical resizers can compete for resizing, and read/write + requests will restart to request blocks from the freshly resized + cache. If the cache has been resized too small, it is disabled and + 'can_be_used' is false. In this case read/write requests bypass the + cache. Since they increment and decrement 'cnt_for_resize_op', the + next resizer can wait on the queue 'waiting_for_resize_cnt' until all + I/O finished. +*/ + +#include "mysys_priv.h" +#include "mysys_err.h" +#include +#include "my_static.h" +#include +#include +#include +#include +#include "probes_mysql.h" +#include "my_thread_local.h" + +#define STRUCT_PTR(TYPE, MEMBER, a) \ + (TYPE *) ((char *) (a) - offsetof(TYPE, MEMBER)) + +/* types of condition variables */ +#define COND_FOR_REQUESTED 0 +#define COND_FOR_SAVED 1 +#define COND_FOR_READERS 2 + +typedef mysql_cond_t KEYCACHE_CONDVAR; + +/* descriptor of the page in the key cache block buffer */ +struct st_keycache_page +{ + int file; /* file to which the page belongs to */ + my_off_t filepos; /* position of the page in the file */ +}; +typedef struct st_keycache_page KEYCACHE_PAGE; + +/* element in the chain of a hash table bucket */ +struct st_hash_link +{ + struct st_hash_link *next, **prev; /* to connect links in the same bucket */ + struct st_block_link *block; /* reference to the block for the page: */ + File file; /* from such a file */ + my_off_t diskpos; /* with such an offset */ + uint requests; /* number of requests for the page */ +}; + +/* simple states of a block */ +#define BLOCK_ERROR 1 /* an error occured when performing file i/o */ +#define BLOCK_READ 2 /* file block is in the block buffer */ +#define BLOCK_IN_SWITCH 4 /* block is preparing to read new page */ +#define BLOCK_REASSIGNED 8 /* blk does not accept requests for old page */ +#define BLOCK_IN_FLUSH 16 /* block is selected for flush */ +#define BLOCK_CHANGED 32 /* block buffer contains a dirty page */ +#define BLOCK_IN_USE 64 /* block is not free */ +#define BLOCK_IN_EVICTION 128 /* block is selected for eviction */ +#define BLOCK_IN_FLUSHWRITE 256 /* block is in write to file */ +#define BLOCK_FOR_UPDATE 512 /* block is selected for buffer modification */ + +/* page status, returned by find_key_block */ +#define PAGE_READ 0 +#define PAGE_TO_BE_READ 1 +#define PAGE_WAIT_TO_BE_READ 2 + +/* block temperature determines in which (sub-)chain the block currently is */ +enum BLOCK_TEMPERATURE { BLOCK_COLD /*free*/ , BLOCK_WARM , BLOCK_HOT }; + +/* key cache block */ +struct st_block_link +{ + struct st_block_link + *next_used, **prev_used; /* to connect links in the LRU chain (ring) */ + struct st_block_link + *next_changed, **prev_changed; /* for lists of file dirty/clean blocks */ + struct st_hash_link *hash_link; /* backward ptr to referring hash_link */ + KEYCACHE_WQUEUE wqueue[2]; /* queues on waiting requests for new/old pages */ + uint requests; /* number of requests for the block */ + uchar *buffer; /* buffer for the block page */ + uint offset; /* beginning of modified data in the buffer */ + uint length; /* end of data in the buffer */ + uint status; /* state of the block */ + enum BLOCK_TEMPERATURE temperature; /* block temperature: cold, warm, hot */ + uint hits_left; /* number of hits left until promotion */ + ulonglong last_hit_time; /* timestamp of the last hit */ + KEYCACHE_CONDVAR *condvar; /* condition variable for 'no readers' event */ +}; + +KEY_CACHE dflt_key_cache_var; +KEY_CACHE *dflt_key_cache= &dflt_key_cache_var; + +#define FLUSH_CACHE 2000 /* sort this many blocks at once */ + +static void change_key_cache_param(KEY_CACHE *keycache, + ulonglong division_limit, + ulonglong age_threshold); +static int flush_all_key_blocks(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var); + +static void wait_on_queue(KEYCACHE_WQUEUE *wqueue, + mysql_mutex_t *mutex, + st_keycache_thread_var *thread); +static void release_whole_queue(KEYCACHE_WQUEUE *wqueue); + +static void free_block(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + BLOCK_LINK *block); + +#define KEYCACHE_HASH(f, pos) \ +(((ulong) ((pos) / keycache->key_cache_block_size) + \ + (ulong) (f)) & (keycache->hash_entries-1)) +#define FILE_HASH(f) ((uint) (f) & (CHANGED_BLOCKS_HASH-1)) + +#define BLOCK_NUMBER(b) \ + ((uint) (((char*)(b)-(char *) keycache->block_root)/sizeof(BLOCK_LINK))) +#define HASH_LINK_NUMBER(h) \ + ((uint) (((char*)(h)-(char *) keycache->hash_link_root)/sizeof(HASH_LINK))) + +#if !defined(DBUG_OFF) +static int fail_block(BLOCK_LINK *block); +static int fail_hlink(HASH_LINK *hlink); +static int cache_empty(KEY_CACHE *keycache); +#endif + +static inline uint next_power(uint value) +{ + return (uint) my_round_up_to_next_power((uint32) value) << 1; +} + + +/* + Initialize a key cache + + SYNOPSIS + init_key_cache() + keycache pointer to a key cache data structure + key_cache_block_size size of blocks to keep cached data + use_mem total memory to use for the key cache + division_limit division limit (may be zero) + age_threshold age threshold (may be zero) + + RETURN VALUE + number of blocks in the key cache, if successful, + 0 - otherwise. + + NOTES. + if keycache->key_cache_inited != 0 we assume that the key cache + is already initialized. This is for now used by myisamchk, but shouldn't + be something that a program should rely on! + + It's assumed that no two threads call this function simultaneously + referring to the same key cache handle. + +*/ + +int init_key_cache(KEY_CACHE *keycache, ulonglong key_cache_block_size, + size_t use_mem, ulonglong division_limit, + ulonglong age_threshold) +{ + ulong blocks, hash_links; + size_t length; + int error; + DBUG_ENTER("init_key_cache"); + DBUG_ASSERT(key_cache_block_size >= 512); + + if (keycache->key_cache_inited && keycache->disk_blocks > 0) + { + DBUG_PRINT("warning",("key cache already in use")); + DBUG_RETURN(0); + } + + keycache->global_cache_w_requests= keycache->global_cache_r_requests= 0; + keycache->global_cache_read= keycache->global_cache_write= 0; + keycache->disk_blocks= -1; + if (! keycache->key_cache_inited) + { + keycache->key_cache_inited= 1; + /* + Initialize these variables once only. + Their value must survive re-initialization during resizing. + */ + keycache->in_resize= 0; + keycache->resize_in_flush= 0; + keycache->cnt_for_resize_op= 0; + keycache->waiting_for_resize_cnt.last_thread= NULL; + keycache->in_init= 0; + mysql_mutex_init(key_KEY_CACHE_cache_lock, + &keycache->cache_lock, MY_MUTEX_INIT_FAST); + keycache->resize_queue.last_thread= NULL; + } + + keycache->key_cache_mem_size= use_mem; + keycache->key_cache_block_size= (uint)key_cache_block_size; + DBUG_PRINT("info", ("key_cache_block_size: %llu", + key_cache_block_size)); + + blocks= (ulong) (use_mem / (sizeof(BLOCK_LINK) + 2 * sizeof(HASH_LINK) + + sizeof(HASH_LINK*) * 5/4 + key_cache_block_size)); + /* It doesn't make sense to have too few blocks (less than 8) */ + if (blocks >= 8) + { + for ( ; ; ) + { + /* Set my_hash_entries to the next bigger 2 power */ + if ((keycache->hash_entries= next_power(blocks)) < blocks * 5/4) + keycache->hash_entries<<= 1; + hash_links= 2 * blocks; + while ((length= (ALIGN_SIZE(blocks * sizeof(BLOCK_LINK)) + + ALIGN_SIZE(hash_links * sizeof(HASH_LINK)) + + ALIGN_SIZE(sizeof(HASH_LINK*) * + keycache->hash_entries))) + + ((size_t) blocks * keycache->key_cache_block_size) > use_mem) + blocks--; + /* Allocate memory for cache page buffers */ + if ((keycache->block_mem= + my_large_malloc(key_memory_KEY_CACHE, + (size_t) blocks * keycache->key_cache_block_size, + MYF(0)))) + { + /* + Allocate memory for blocks, hash_links and hash entries; + For each block 2 hash links are allocated + */ + if ((keycache->block_root= (BLOCK_LINK*) my_malloc(key_memory_KEY_CACHE, + length, + MYF(0)))) + break; + my_large_free(keycache->block_mem); + keycache->block_mem= 0; + } + if (blocks < 8) + { + set_my_errno(ENOMEM); + my_error(EE_OUTOFMEMORY, MYF(ME_FATALERROR), + blocks * keycache->key_cache_block_size); + goto err; + } + blocks= blocks / 4*3; + } + keycache->blocks_unused= blocks; + keycache->disk_blocks= (int) blocks; + keycache->hash_links= hash_links; + keycache->hash_root= (HASH_LINK**) ((char*) keycache->block_root + + ALIGN_SIZE(blocks*sizeof(BLOCK_LINK))); + keycache->hash_link_root= (HASH_LINK*) ((char*) keycache->hash_root + + ALIGN_SIZE((sizeof(HASH_LINK*) * + keycache->hash_entries))); + memset(keycache->block_root, 0, + keycache->disk_blocks * sizeof(BLOCK_LINK)); + memset(keycache->hash_root, 0, + keycache->hash_entries * sizeof(HASH_LINK*)); + memset(keycache->hash_link_root, 0, + keycache->hash_links * sizeof(HASH_LINK)); + keycache->hash_links_used= 0; + keycache->free_hash_list= NULL; + keycache->blocks_used= keycache->blocks_changed= 0; + + keycache->global_blocks_changed= 0; + keycache->blocks_available=0; /* For debugging */ + + /* The LRU chain is empty after initialization */ + keycache->used_last= NULL; + keycache->used_ins= NULL; + keycache->free_block_list= NULL; + keycache->keycache_time= 0; + keycache->warm_blocks= 0; + keycache->min_warm_blocks= (division_limit ? + blocks * division_limit / 100 + 1 : + blocks); + keycache->age_threshold= (age_threshold ? + blocks * age_threshold / 100 : + blocks); + + keycache->can_be_used= 1; + + keycache->waiting_for_hash_link.last_thread= NULL; + keycache->waiting_for_block.last_thread= NULL; + DBUG_PRINT("exit", + ("disk_blocks: %d block_root: 0x%lx hash_entries: %d\ + hash_root: 0x%lx hash_links: %d hash_link_root: 0x%lx", + keycache->disk_blocks, (long) keycache->block_root, + keycache->hash_entries, (long) keycache->hash_root, + keycache->hash_links, (long) keycache->hash_link_root)); + memset(keycache->changed_blocks, 0, + sizeof(keycache->changed_blocks[0]) * CHANGED_BLOCKS_HASH); + memset(keycache->file_blocks, 0, + sizeof(keycache->file_blocks[0]) * CHANGED_BLOCKS_HASH); + } + else + { + /* key_buffer_size is specified too small. Disable the cache. */ + keycache->can_be_used= 0; + } + + keycache->blocks= keycache->disk_blocks > 0 ? keycache->disk_blocks : 0; + DBUG_RETURN((int) keycache->disk_blocks); + +err: + error= my_errno(); + keycache->disk_blocks= 0; + keycache->blocks= 0; + if (keycache->block_mem) + { + my_large_free((uchar*) keycache->block_mem); + keycache->block_mem= NULL; + } + if (keycache->block_root) + { + my_free(keycache->block_root); + keycache->block_root= NULL; + } + set_my_errno(error); + keycache->can_be_used= 0; + DBUG_RETURN(0); +} + + +/* + Resize a key cache + + SYNOPSIS + resize_key_cache() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + key_cache_block_size size of blocks to keep cached data + use_mem total memory to use for the new key cache + division_limit new division limit (if not zero) + age_threshold new age threshold (if not zero) + + RETURN VALUE + number of blocks in the key cache, if successful, + 0 - otherwise. + + NOTES. + The function first compares the memory size and the block size parameters + with the key cache values. + + If they differ the function free the the memory allocated for the + old key cache blocks by calling the end_key_cache function and + then rebuilds the key cache with new blocks by calling + init_key_cache. + + The function starts the operation only when all other threads + performing operations with the key cache let her to proceed + (when cnt_for_resize=0). +*/ + +int resize_key_cache(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + ulonglong key_cache_block_size, + size_t use_mem, ulonglong division_limit, + ulonglong age_threshold) +{ + int blocks; + DBUG_ENTER("resize_key_cache"); + + if (!keycache->key_cache_inited) + DBUG_RETURN(keycache->disk_blocks); + + if(key_cache_block_size == keycache->key_cache_block_size && + use_mem == keycache->key_cache_mem_size) + { + change_key_cache_param(keycache, division_limit, age_threshold); + DBUG_RETURN(keycache->disk_blocks); + } + + mysql_mutex_lock(&keycache->cache_lock); + + /* + We may need to wait for another thread which is doing a resize + already. This cannot happen in the MySQL server though. It allows + one resizer only. In set_var.cc keycache->in_init is used to block + multiple attempts. + */ + while (keycache->in_resize) + { + /* purecov: begin inspected */ + wait_on_queue(&keycache->resize_queue, &keycache->cache_lock, + thread_var); + /* purecov: end */ + } + + /* + Mark the operation in progress. This blocks other threads from doing + a resize in parallel. It prohibits new blocks to enter the cache. + Read/write requests can bypass the cache during the flush phase. + */ + keycache->in_resize= 1; + + /* Need to flush only if keycache is enabled. */ + if (keycache->can_be_used) + { + /* Start the flush phase. */ + keycache->resize_in_flush= 1; + + if (flush_all_key_blocks(keycache, thread_var)) + { + /* TODO: if this happens, we should write a warning in the log file ! */ + keycache->resize_in_flush= 0; + blocks= 0; + keycache->can_be_used= 0; + goto finish; + } + DBUG_ASSERT(cache_empty(keycache)); + + /* End the flush phase. */ + keycache->resize_in_flush= 0; + } + + /* + Some direct read/write operations (bypassing the cache) may still be + unfinished. Wait until they are done. If the key cache can be used, + direct I/O is done in increments of key_cache_block_size. That is, + every block is checked if it is in the cache. We need to wait for + pending I/O before re-initializing the cache, because we may change + the block size. Otherwise they could check for blocks at file + positions where the new block division has none. We do also want to + wait for I/O done when (if) the cache was disabled. It must not + run in parallel with normal cache operation. + */ + while (keycache->cnt_for_resize_op) + wait_on_queue(&keycache->waiting_for_resize_cnt, &keycache->cache_lock, + thread_var); + + /* + Free old cache structures, allocate new structures, and initialize + them. Note that the cache_lock mutex and the resize_queue are left + untouched. We do not lose the cache_lock and will release it only at + the end of this function. + */ + end_key_cache(keycache, 0); /* Don't free mutex */ + /* The following will work even if use_mem is 0 */ + blocks= init_key_cache(keycache, key_cache_block_size, use_mem, + division_limit, age_threshold); + +finish: + /* + Mark the resize finished. This allows other threads to start a + resize or to request new cache blocks. + */ + keycache->in_resize= 0; + + /* Signal waiting threads. */ + release_whole_queue(&keycache->resize_queue); + + mysql_mutex_unlock(&keycache->cache_lock); + DBUG_RETURN(blocks); +} + + +/* + Increment counter blocking resize key cache operation +*/ +static inline void inc_counter_for_resize_op(KEY_CACHE *keycache) +{ + keycache->cnt_for_resize_op++; +} + + +/* + Decrement counter blocking resize key cache operation; + Signal the operation to proceed when counter becomes equal zero +*/ +static inline void dec_counter_for_resize_op(KEY_CACHE *keycache) +{ + if (!--keycache->cnt_for_resize_op) + release_whole_queue(&keycache->waiting_for_resize_cnt); +} + +/* + Change the key cache parameters + + SYNOPSIS + change_key_cache_param() + keycache pointer to a key cache data structure + division_limit new division limit (if not zero) + age_threshold new age threshold (if not zero) + + RETURN VALUE + none + + NOTES. + Presently the function resets the key cache parameters + concerning midpoint insertion strategy - division_limit and + age_threshold. +*/ + +static void change_key_cache_param(KEY_CACHE *keycache, + ulonglong division_limit, + ulonglong age_threshold) +{ + DBUG_ENTER("change_key_cache_param"); + + mysql_mutex_lock(&keycache->cache_lock); + if (division_limit) + keycache->min_warm_blocks= (keycache->disk_blocks * + division_limit / 100 + 1); + if (age_threshold) + keycache->age_threshold= (keycache->disk_blocks * + age_threshold / 100); + mysql_mutex_unlock(&keycache->cache_lock); + DBUG_VOID_RETURN; +} + + +/* + Remove key_cache from memory + + SYNOPSIS + end_key_cache() + keycache key cache handle + cleanup Complete free (Free also mutex for key cache) + + RETURN VALUE + none +*/ + +void end_key_cache(KEY_CACHE *keycache, my_bool cleanup) +{ + DBUG_ENTER("end_key_cache"); + DBUG_PRINT("enter", ("key_cache: 0x%lx", (long) keycache)); + + if (!keycache->key_cache_inited) + DBUG_VOID_RETURN; + + if (keycache->disk_blocks > 0) + { + if (keycache->block_mem) + { + my_large_free((uchar*) keycache->block_mem); + keycache->block_mem= NULL; + my_free(keycache->block_root); + keycache->block_root= NULL; + } + keycache->disk_blocks= -1; + /* Reset blocks_changed to be safe if flush_all_key_blocks is called */ + keycache->blocks_changed= 0; + } + + DBUG_PRINT("status", ("used: %lu changed: %lu w_requests: %lu " + "writes: %lu r_requests: %lu reads: %lu", + keycache->blocks_used, keycache->global_blocks_changed, + (ulong) keycache->global_cache_w_requests, + (ulong) keycache->global_cache_write, + (ulong) keycache->global_cache_r_requests, + (ulong) keycache->global_cache_read)); + + /* + Reset these values to be able to detect a disabled key cache. + See Bug#44068 (RESTORE can disable the MyISAM Key Cache). + */ + keycache->blocks_used= 0; + keycache->blocks_unused= 0; + + if (cleanup) + { + mysql_mutex_destroy(&keycache->cache_lock); + keycache->key_cache_inited= keycache->can_be_used= 0; + } + DBUG_VOID_RETURN; +} /* end_key_cache */ + + +/** + Link a thread into double-linked queue of waiting threads. + + @param wqueue pointer to the queue structure + @param thread pointer to the keycache variables for the + thread to be added to the queue + + Queue is represented by a circular list of the keycache variable structures. + Since each thread has its own keycache variables, this is equal to a list + of threads. The list is double-linked of the type (**prev,*next), accessed by + a pointer to the last element. +*/ + +static void link_into_queue(KEYCACHE_WQUEUE *wqueue, + st_keycache_thread_var *thread) +{ + st_keycache_thread_var *last; + + DBUG_ASSERT(!thread->next && !thread->prev); + if (! (last= wqueue->last_thread)) + { + /* Queue is empty */ + thread->next= thread; + thread->prev= &thread->next; + } + else + { + thread->prev= last->next->prev; + last->next->prev= &thread->next; + thread->next= last->next; + last->next= thread; + } + wqueue->last_thread= thread; +} + + +/** + Unlink a thread from double-linked queue of waiting threads + + @param wqueue pointer to the queue structure + @param thread pointer to the keycache variables for the + thread to be removed to the queue + + @note See link_into_queue +*/ + +static void unlink_from_queue(KEYCACHE_WQUEUE *wqueue, + st_keycache_thread_var *thread) +{ + DBUG_ASSERT(thread->next && thread->prev); + if (thread->next == thread) + /* The queue contains only one member */ + wqueue->last_thread= NULL; + else + { + thread->next->prev= thread->prev; + *thread->prev=thread->next; + if (wqueue->last_thread == thread) + wqueue->last_thread= STRUCT_PTR(st_keycache_thread_var, next, + thread->prev); + } + thread->next= NULL; +#if !defined(DBUG_OFF) + /* + This makes it easier to see it's not in a chain during debugging. + And some DBUG_ASSERT() rely on it. + */ + thread->prev= NULL; +#endif +} + + +/* + Add a thread to single-linked queue of waiting threads + + SYNOPSIS + wait_on_queue() + wqueue Pointer to the queue structure. + mutex Cache_lock to acquire after awake. + thread Thread to be added + + RETURN VALUE + none + + NOTES. + Queue is represented by a circular list of the thread structures + The list is single-linked of the type (*next), accessed by a pointer + to the last element. + + The function protects against stray signals by verifying that the + current thread is unlinked from the queue when awaking. However, + since several threads can wait for the same event, it might be + necessary for the caller of the function to check again if the + condition for awake is indeed matched. +*/ + +static void wait_on_queue(KEYCACHE_WQUEUE *wqueue, + mysql_mutex_t *mutex, + st_keycache_thread_var *thread) +{ + st_keycache_thread_var *last; + + /* Add to queue. */ + DBUG_ASSERT(!thread->next); + DBUG_ASSERT(!thread->prev); /* Not required, but must be true anyway. */ + if (! (last= wqueue->last_thread)) + thread->next= thread; + else + { + thread->next= last->next; + last->next= thread; + } + wqueue->last_thread= thread; + + /* + Wait until thread is removed from queue by the signalling thread. + The loop protects against stray signals. + */ + do + { + mysql_cond_wait(&thread->suspend, mutex); + } + while (thread->next); +} + + +/* + Remove all threads from queue signaling them to proceed + + SYNOPSIS + release_whole_queue() + wqueue pointer to the queue structure + + RETURN VALUE + none + + NOTES. + See notes for wait_on_queue(). + When removed from the queue each thread is signaled via condition + variable thread->suspend. +*/ + +static void release_whole_queue(KEYCACHE_WQUEUE *wqueue) +{ + st_keycache_thread_var *last; + st_keycache_thread_var *next; + st_keycache_thread_var *thread; + + /* Queue may be empty. */ + if (!(last= wqueue->last_thread)) + return; + + next= last->next; + do + { + thread=next; + /* Signal the thread. */ + mysql_cond_signal(&thread->suspend); + /* Take thread from queue. */ + next=thread->next; + thread->next= NULL; + } + while (thread != last); + + /* Now queue is definitely empty. */ + wqueue->last_thread= NULL; +} + + +/* + Unlink a block from the chain of dirty/clean blocks +*/ + +static inline void unlink_changed(BLOCK_LINK *block) +{ + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + if (block->next_changed) + block->next_changed->prev_changed= block->prev_changed; + *block->prev_changed= block->next_changed; + +#if !defined(DBUG_OFF) + /* + This makes it easier to see it's not in a chain during debugging. + And some DBUG_ASSERT() rely on it. + */ + block->next_changed= NULL; + block->prev_changed= NULL; +#endif +} + + +/* + Link a block into the chain of dirty/clean blocks +*/ + +static inline void link_changed(BLOCK_LINK *block, BLOCK_LINK **phead) +{ + DBUG_ASSERT(!block->next_changed); + DBUG_ASSERT(!block->prev_changed); + block->prev_changed= phead; + if ((block->next_changed= *phead)) + (*phead)->prev_changed= &block->next_changed; + *phead= block; +} + + +/* + Link a block in a chain of clean blocks of a file. + + SYNOPSIS + link_to_file_list() + keycache Key cache handle + block Block to relink + file File to be linked to + unlink If to unlink first + + DESCRIPTION + Unlink a block from whichever chain it is linked in, if it's + asked for, and link it to the chain of clean blocks of the + specified file. + + NOTE + Please do never set/clear BLOCK_CHANGED outside of + link_to_file_list() or link_to_changed_list(). + You would risk to damage correct counting of changed blocks + and to find blocks in the wrong hash. + + RETURN + void +*/ + +static void link_to_file_list(KEY_CACHE *keycache, + BLOCK_LINK *block, int file, + my_bool unlink_block) +{ + DBUG_ASSERT(block->status & BLOCK_IN_USE); + DBUG_ASSERT(block->hash_link && block->hash_link->block == block); + DBUG_ASSERT(block->hash_link->file == file); + if (unlink_block) + unlink_changed(block); + link_changed(block, &keycache->file_blocks[FILE_HASH(file)]); + if (block->status & BLOCK_CHANGED) + { + block->status&= ~BLOCK_CHANGED; + keycache->blocks_changed--; + keycache->global_blocks_changed--; + } +} + + +/* + Re-link a block from the clean chain to the dirty chain of a file. + + SYNOPSIS + link_to_changed_list() + keycache key cache handle + block block to relink + + DESCRIPTION + Unlink a block from the chain of clean blocks of a file + and link it to the chain of dirty blocks of the same file. + + NOTE + Please do never set/clear BLOCK_CHANGED outside of + link_to_file_list() or link_to_changed_list(). + You would risk to damage correct counting of changed blocks + and to find blocks in the wrong hash. + + RETURN + void +*/ + +static void link_to_changed_list(KEY_CACHE *keycache, + BLOCK_LINK *block) +{ + DBUG_ASSERT(block->status & BLOCK_IN_USE); + DBUG_ASSERT(!(block->status & BLOCK_CHANGED)); + DBUG_ASSERT(block->hash_link && block->hash_link->block == block); + + unlink_changed(block); + link_changed(block, + &keycache->changed_blocks[FILE_HASH(block->hash_link->file)]); + block->status|=BLOCK_CHANGED; + keycache->blocks_changed++; + keycache->global_blocks_changed++; +} + + +/* + Link a block to the LRU chain at the beginning or at the end of + one of two parts. + + SYNOPSIS + link_block() + keycache pointer to a key cache data structure + block pointer to the block to link to the LRU chain + hot <-> to link the block into the hot subchain + at_end <-> to link the block at the end of the subchain + + RETURN VALUE + none + + NOTES. + The LRU ring is represented by a circular list of block structures. + The list is double-linked of the type (**prev,*next) type. + The LRU ring is divided into two parts - hot and warm. + There are two pointers to access the last blocks of these two + parts. The beginning of the warm part follows right after the + end of the hot part. + Only blocks of the warm part can be used for eviction. + The first block from the beginning of this subchain is always + taken for eviction (keycache->last_used->next) + + LRU chain: +------+ H O T +------+ + +----| end |----...<----| beg |----+ + | +------+last +------+ | + v<-link in latest hot (new end) | + | link in latest warm (new end)->^ + | +------+ W A R M +------+ | + +----| beg |---->...----| end |----+ + +------+ +------+ins + first for eviction + + It is also possible that the block is selected for eviction and thus + not linked in the LRU ring. +*/ + +static void link_block(KEY_CACHE *keycache, BLOCK_LINK *block, my_bool hot, + my_bool at_end) +{ + BLOCK_LINK *ins; + BLOCK_LINK **pins; + + DBUG_ASSERT((block->status & ~BLOCK_CHANGED) == (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(block->hash_link); /*backptr to block NULL from free_block()*/ + DBUG_ASSERT(!block->requests); + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + DBUG_ASSERT(!block->next_used); + DBUG_ASSERT(!block->prev_used); + + if (!hot && keycache->waiting_for_block.last_thread) + { + /* Signal that in the LRU warm sub-chain an available block has appeared */ + st_keycache_thread_var *last_thread= + keycache->waiting_for_block.last_thread; + st_keycache_thread_var *first_thread= last_thread->next; + st_keycache_thread_var *next_thread= first_thread; + HASH_LINK *hash_link= (HASH_LINK *) first_thread->opt_info; + st_keycache_thread_var *thread; + do + { + thread= next_thread; + next_thread= thread->next; + /* + We notify about the event all threads that ask + for the same page as the first thread in the queue + */ + if ((HASH_LINK *) thread->opt_info == hash_link) + { + mysql_cond_signal(&thread->suspend); + unlink_from_queue(&keycache->waiting_for_block, thread); + block->requests++; + } + } + while (thread != last_thread); + hash_link->block= block; + /* + NOTE: We assigned the block to the hash_link and signalled the + requesting thread(s). But it is possible that other threads runs + first. These threads see the hash_link assigned to a block which + is assigned to another hash_link and not marked BLOCK_IN_SWITCH. + This can be a problem for functions that do not select the block + via its hash_link: flush and free. They do only see a block which + is in a "normal" state and don't know that it will be evicted soon. + + We cannot set BLOCK_IN_SWITCH here because only one of the + requesting threads must handle the eviction. All others must wait + for it to complete. If we set the flag here, the threads would not + know who is in charge of the eviction. Without the flag, the first + thread takes the stick and sets the flag. + + But we need to note in the block that is has been selected for + eviction. It must not be freed. The evicting thread will not + expect the block in the free list. Before freeing we could also + check if block->requests > 1. But I think including another flag + in the check of block->status is slightly more efficient and + probably easier to read. + */ + block->status|= BLOCK_IN_EVICTION; + return; + } + + pins= hot ? &keycache->used_ins : &keycache->used_last; + ins= *pins; + if (ins) + { + ins->next_used->prev_used= &block->next_used; + block->next_used= ins->next_used; + block->prev_used= &ins->next_used; + ins->next_used= block; + if (at_end) + *pins= block; + } + else + { + /* The LRU ring is empty. Let the block point to itself. */ + keycache->used_last= keycache->used_ins= block->next_used= block; + block->prev_used= &block->next_used; + } + DBUG_ASSERT((ulong) keycache->blocks_available <= + keycache->blocks_used); +} + + +/* + Unlink a block from the LRU chain + + SYNOPSIS + unlink_block() + keycache pointer to a key cache data structure + block pointer to the block to unlink from the LRU chain + + RETURN VALUE + none + + NOTES. + See NOTES for link_block +*/ + +static void unlink_block(KEY_CACHE *keycache, BLOCK_LINK *block) +{ + DBUG_ASSERT((block->status & ~BLOCK_CHANGED) == (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(block->hash_link); /*backptr to block NULL from free_block()*/ + DBUG_ASSERT(!block->requests); + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + DBUG_ASSERT(block->next_used && block->prev_used && + (block->next_used->prev_used == &block->next_used) && + (*block->prev_used == block)); + if (block->next_used == block) + /* The list contains only one member */ + keycache->used_last= keycache->used_ins= NULL; + else + { + block->next_used->prev_used= block->prev_used; + *block->prev_used= block->next_used; + if (keycache->used_last == block) + keycache->used_last= STRUCT_PTR(BLOCK_LINK, next_used, block->prev_used); + if (keycache->used_ins == block) + keycache->used_ins=STRUCT_PTR(BLOCK_LINK, next_used, block->prev_used); + } + block->next_used= NULL; +#if !defined(DBUG_OFF) + /* + This makes it easier to see it's not in a chain during debugging. + And some DBUG_ASSERT() rely on it. + */ + block->prev_used= NULL; +#endif +} + + +/* + Register requests for a block. + + SYNOPSIS + reg_requests() + keycache Pointer to a key cache data structure. + block Pointer to the block to register a request on. + count Number of requests. Always 1. + + NOTE + The first request unlinks the block from the LRU ring. This means + that it is protected against eveiction. + + RETURN + void +*/ +static void reg_requests(KEY_CACHE *keycache, BLOCK_LINK *block, int count) +{ + DBUG_ASSERT(block->status & BLOCK_IN_USE); + DBUG_ASSERT(block->hash_link); + + if (!block->requests) + unlink_block(keycache, block); + block->requests+=count; +} + + +/* + Unregister request for a block + linking it to the LRU chain if it's the last request + + SYNOPSIS + unreg_request() + keycache pointer to a key cache data structure + block pointer to the block to link to the LRU chain + at_end <-> to link the block at the end of the LRU chain + + RETURN VALUE + none + + NOTES. + Every linking to the LRU ring decrements by one a special block + counter (if it's positive). If the at_end parameter is TRUE the block is + added either at the end of warm sub-chain or at the end of hot sub-chain. + It is added to the hot subchain if its counter is zero and number of + blocks in warm sub-chain is not less than some low limit (determined by + the division_limit parameter). Otherwise the block is added to the warm + sub-chain. If the at_end parameter is FALSE the block is always added + at beginning of the warm sub-chain. + Thus a warm block can be promoted to the hot sub-chain when its counter + becomes zero for the first time. + At the same time the block at the very beginning of the hot subchain + might be moved to the beginning of the warm subchain if it stays untouched + for a too long time (this time is determined by parameter age_threshold). + + It is also possible that the block is selected for eviction and thus + not linked in the LRU ring. +*/ + +static void unreg_request(KEY_CACHE *keycache, + BLOCK_LINK *block, int at_end) +{ + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(block->hash_link); /*backptr to block NULL from free_block()*/ + DBUG_ASSERT(block->requests); + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + DBUG_ASSERT(!block->next_used); + DBUG_ASSERT(!block->prev_used); + /* + Unregister the request, but do not link erroneous blocks into the + LRU ring. + */ + if (!--block->requests && !(block->status & BLOCK_ERROR)) + { + my_bool hot; + if (block->hits_left) + block->hits_left--; + hot= !block->hits_left && at_end && + keycache->warm_blocks > keycache->min_warm_blocks; + if (hot) + { + if (block->temperature == BLOCK_WARM) + keycache->warm_blocks--; + block->temperature= BLOCK_HOT; + } + link_block(keycache, block, hot, (my_bool)at_end); + block->last_hit_time= keycache->keycache_time; + keycache->keycache_time++; + /* + At this place, the block might be in the LRU ring or not. If an + evicter was waiting for a block, it was selected for eviction and + not linked in the LRU ring. + */ + + /* + Check if we should link a hot block to the warm block sub-chain. + It is possible that we select the same block as above. But it can + also be another block. In any case a block from the LRU ring is + selected. In other words it works even if the above block was + selected for eviction and not linked in the LRU ring. Since this + happens only if the LRU ring is empty, the block selected below + would be NULL and the rest of the function skipped. + */ + block= keycache->used_ins; + if (block && keycache->keycache_time - block->last_hit_time > + keycache->age_threshold) + { + unlink_block(keycache, block); + link_block(keycache, block, 0, 0); + if (block->temperature != BLOCK_WARM) + { + keycache->warm_blocks++; + block->temperature= BLOCK_WARM; + } + } + } +} + +/* + Remove a reader of the page in block +*/ + +static void remove_reader(BLOCK_LINK *block) +{ + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(block->hash_link && block->hash_link->block == block); + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + DBUG_ASSERT(!block->next_used); + DBUG_ASSERT(!block->prev_used); + DBUG_ASSERT(block->hash_link->requests); + + if (! --block->hash_link->requests && block->condvar) + mysql_cond_signal(block->condvar); +} + + +/* + Wait until the last reader of the page in block + signals on its termination +*/ + +static void wait_for_readers(KEY_CACHE *keycache, + BLOCK_LINK *block, + st_keycache_thread_var *thread) +{ + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(!(block->status & (BLOCK_IN_FLUSH | BLOCK_CHANGED))); + DBUG_ASSERT(block->hash_link); + DBUG_ASSERT(block->hash_link->block == block); + /* Linked in file_blocks or changed_blocks hash. */ + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + /* Not linked in LRU ring. */ + DBUG_ASSERT(!block->next_used); + DBUG_ASSERT(!block->prev_used); + while (block->hash_link->requests) + { + /* There must be no other waiter. We have no queue here. */ + DBUG_ASSERT(!block->condvar); + block->condvar= &thread->suspend; + mysql_cond_wait(&thread->suspend, &keycache->cache_lock); + block->condvar= NULL; + } +} + + +/* + Add a hash link to a bucket in the hash_table +*/ + +static inline void link_hash(HASH_LINK **start, HASH_LINK *hash_link) +{ + if (*start) + (*start)->prev= &hash_link->next; + hash_link->next= *start; + hash_link->prev= start; + *start= hash_link; +} + + +/* + Remove a hash link from the hash table +*/ + +static void unlink_hash(KEY_CACHE *keycache, HASH_LINK *hash_link) +{ + DBUG_ASSERT(hash_link->requests == 0); + if ((*hash_link->prev= hash_link->next)) + hash_link->next->prev= hash_link->prev; + hash_link->block= NULL; + + if (keycache->waiting_for_hash_link.last_thread) + { + /* Signal that a free hash link has appeared */ + st_keycache_thread_var *last_thread= + keycache->waiting_for_hash_link.last_thread; + st_keycache_thread_var *first_thread= last_thread->next; + st_keycache_thread_var *next_thread= first_thread; + KEYCACHE_PAGE *first_page= (KEYCACHE_PAGE *) (first_thread->opt_info); + st_keycache_thread_var *thread; + + hash_link->file= first_page->file; + hash_link->diskpos= first_page->filepos; + do + { + KEYCACHE_PAGE *page; + thread= next_thread; + page= (KEYCACHE_PAGE *) thread->opt_info; + next_thread= thread->next; + /* + We notify about the event all threads that ask + for the same page as the first thread in the queue + */ + if (page->file == hash_link->file && page->filepos == hash_link->diskpos) + { + mysql_cond_signal(&thread->suspend); + unlink_from_queue(&keycache->waiting_for_hash_link, thread); + } + } + while (thread != last_thread); + link_hash(&keycache->hash_root[KEYCACHE_HASH(hash_link->file, + hash_link->diskpos)], + hash_link); + return; + } + hash_link->next= keycache->free_hash_list; + keycache->free_hash_list= hash_link; +} + + +/* + Get the hash link for a page +*/ + +static HASH_LINK *get_hash_link(KEY_CACHE *keycache, + int file, my_off_t filepos, + st_keycache_thread_var *thread) +{ + HASH_LINK *hash_link, **start; +#ifndef DBUG_OFF + int cnt; +#endif + +restart: + /* + Find the bucket in the hash table for the pair (file, filepos); + start contains the head of the bucket list, + hash_link points to the first member of the list + */ + hash_link= *(start= &keycache->hash_root[KEYCACHE_HASH(file, filepos)]); +#ifndef DBUG_OFF + cnt= 0; +#endif + /* Look for an element for the pair (file, filepos) in the bucket chain */ + while (hash_link && + (hash_link->diskpos != filepos || hash_link->file != file)) + { + hash_link= hash_link->next; +#ifndef DBUG_OFF + cnt++; + DBUG_ASSERT(cnt <= keycache->hash_links_used); +#endif + } + if (! hash_link) + { + /* There is no hash link in the hash table for the pair (file, filepos) */ + if (keycache->free_hash_list) + { + hash_link= keycache->free_hash_list; + keycache->free_hash_list= hash_link->next; + } + else if (keycache->hash_links_used < keycache->hash_links) + { + hash_link= &keycache->hash_link_root[keycache->hash_links_used++]; + } + else + { + /* Wait for a free hash link */ + KEYCACHE_PAGE page; + page.file= file; + page.filepos= filepos; + thread->opt_info= (void *) &page; + link_into_queue(&keycache->waiting_for_hash_link, thread); + mysql_cond_wait(&thread->suspend, + &keycache->cache_lock); + thread->opt_info= NULL; + goto restart; + } + hash_link->file= file; + hash_link->diskpos= filepos; + link_hash(start, hash_link); + } + /* Register the request for the page */ + hash_link->requests++; + + return hash_link; +} + + +/* + Get a block for the file page requested by a keycache read/write operation; + If the page is not in the cache return a free block, if there is none + return the lru block after saving its buffer if the page is dirty. + + SYNOPSIS + + find_key_block() + keycache pointer to a key cache data structure + thread pointer to thread specific variables + file handler for the file to read page from + filepos position of the page in the file + init_hits_left how initialize the block counter for the page + wrmode <-> get for writing + page_st out {PAGE_READ,PAGE_TO_BE_READ,PAGE_WAIT_TO_BE_READ} + + RETURN VALUE + Pointer to the found block if successful, 0 - otherwise + + NOTES. + For the page from file positioned at filepos the function checks whether + the page is in the key cache specified by the first parameter. + If this is the case it immediately returns the block. + If not, the function first chooses a block for this page. If there is + no not used blocks in the key cache yet, the function takes the block + at the very beginning of the warm sub-chain. It saves the page in that + block if it's dirty before returning the pointer to it. + The function returns in the page_st parameter the following values: + PAGE_READ - if page already in the block, + PAGE_TO_BE_READ - if it is to be read yet by the current thread + WAIT_TO_BE_READ - if it is to be read by another thread + If an error occurs THE BLOCK_ERROR bit is set in the block status. + It might happen that there are no blocks in LRU chain (in warm part) - + all blocks are unlinked for some read/write operations. Then the function + waits until first of this operations links any block back. +*/ + +static BLOCK_LINK *find_key_block(KEY_CACHE *keycache, + st_keycache_thread_var *thread, + File file, my_off_t filepos, + int init_hits_left, + int wrmode, int *page_st) +{ + HASH_LINK *hash_link; + BLOCK_LINK *block; + int error= 0; + int page_status; + + DBUG_ENTER("find_key_block"); + DBUG_PRINT("enter", ("fd: %d pos: %lu wrmode: %d", + file, (ulong) filepos, wrmode)); + +restart: + /* + If the flush phase of a resize operation fails, the cache is left + unusable. This will be detected only after "goto restart". + */ + if (!keycache->can_be_used) + DBUG_RETURN(0); + + /* + Find the hash_link for the requested file block (file, filepos). We + do always get a hash_link here. It has registered our request so + that no other thread can use it for another file block until we + release the request (which is done by remove_reader() usually). The + hash_link can have a block assigned to it or not. If there is a + block, it may be assigned to this hash_link or not. In cases where a + block is evicted from the cache, it is taken from the LRU ring and + referenced by the new hash_link. But the block can still be assigned + to its old hash_link for some time if it needs to be flushed first, + or if there are other threads still reading it. + + Summary: + hash_link is always returned. + hash_link->block can be: + - NULL or + - not assigned to this hash_link or + - assigned to this hash_link. If assigned, the block can have + - invalid data (when freshly assigned) or + - valid data. Valid data can be + - changed over the file contents (dirty) or + - not changed (clean). + */ + hash_link= get_hash_link(keycache, file, filepos, thread); + DBUG_ASSERT((hash_link->file == file) && (hash_link->diskpos == filepos)); + + page_status= -1; + if ((block= hash_link->block) && + block->hash_link == hash_link && (block->status & BLOCK_READ)) + { + /* Assigned block with valid (changed or unchanged) contents. */ + page_status= PAGE_READ; + } + /* + else (page_status == -1) + - block == NULL or + - block not assigned to this hash_link or + - block assigned but not yet read from file (invalid data). + */ + + if (keycache->in_resize) + { + /* This is a request during a resize operation */ + + if (!block) + { + /* + The file block is not in the cache. We don't need it in the + cache: we are going to read or write directly to file. Cancel + the request. We can simply decrement hash_link->requests because + we did not release cache_lock since increasing it. So no other + thread can wait for our request to become released. + */ + if (hash_link->requests == 1) + { + /* + We are the only one to request this hash_link (this file/pos). + Free the hash_link. + */ + hash_link->requests--; + unlink_hash(keycache, hash_link); + DBUG_RETURN(0); + } + + /* + More requests on the hash_link. Someone tries to evict a block + for this hash_link (could have started before resizing started). + This means that the LRU ring is empty. Otherwise a block could + be assigned immediately. Behave like a thread that wants to + evict a block for this file/pos. Add to the queue of threads + waiting for a block. Wait until there is one assigned. + + Refresh the request on the hash-link so that it cannot be reused + for another file/pos. + */ + thread->opt_info= (void *) hash_link; + link_into_queue(&keycache->waiting_for_block, thread); + do + { + mysql_cond_wait(&thread->suspend, + &keycache->cache_lock); + } while (thread->next); + thread->opt_info= NULL; + /* + A block should now be assigned to the hash_link. But it may + still need to be evicted. Anyway, we should re-check the + situation. page_status must be set correctly. + */ + hash_link->requests--; + goto restart; + } /* end of if (!block) */ + + /* + There is a block for this file/pos in the cache. Register a + request on it. This unlinks it from the LRU ring (if it is there) + and hence protects it against eviction (if not already in + eviction). We need this for returning the block to the caller, for + calling remove_reader() (for debugging purposes), and for calling + free_block(). The only case where we don't need the request is if + the block is in eviction. In that case we have to unregister the + request later. + */ + reg_requests(keycache, block, 1); + + if (page_status != PAGE_READ) + { + /* + - block not assigned to this hash_link or + - block assigned but not yet read from file (invalid data). + + This must be a block in eviction. It will be read soon. We need + to wait here until this happened. Otherwise the caller could + access a wrong block or a block which is in read. While waiting + we cannot lose hash_link nor block. We have registered a request + on the hash_link. Everything can happen to the block but changes + in the hash_link -> block relationship. In other words: + everything can happen to the block but free or another completed + eviction. + + Note that we bahave like a secondary requestor here. We just + cannot return with PAGE_WAIT_TO_BE_READ. This would work for + read requests and writes on dirty blocks that are not in flush + only. Waiting here on COND_FOR_REQUESTED works in all + situations. + */ + DBUG_ASSERT(((block->hash_link != hash_link) && + (block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))) || + ((block->hash_link == hash_link) && + !(block->status & BLOCK_READ))); + wait_on_queue(&block->wqueue[COND_FOR_REQUESTED], &keycache->cache_lock, + thread); + /* + Here we can trust that the block has been assigned to this + hash_link (block->hash_link == hash_link) and read into the + buffer (BLOCK_READ). The worst things possible here are that the + block is in free (BLOCK_REASSIGNED). But the block is still + assigned to the hash_link. The freeing thread waits until we + release our request on the hash_link. The block must not be + again in eviction because we registered an request on it before + starting to wait. + */ + DBUG_ASSERT(block->hash_link == hash_link); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))); + } + /* + The block is in the cache. Assigned to the hash_link. Valid data. + Note that in case of page_st == PAGE_READ, the block can be marked + for eviction. In any case it can be marked for freeing. + */ + + if (!wrmode) + { + /* A reader can just read the block. */ + *page_st= PAGE_READ; + DBUG_ASSERT((hash_link->file == file) && + (hash_link->diskpos == filepos) && + (block->hash_link == hash_link)); + DBUG_RETURN(block); + } + + /* + This is a writer. No two writers for the same block can exist. + This must be assured by locks outside of the key cache. + */ + DBUG_ASSERT(!(block->status & BLOCK_FOR_UPDATE) || fail_block(block)); + + while (block->status & BLOCK_IN_FLUSH) + { + /* + Wait until the block is flushed to file. Do not release the + request on the hash_link yet to prevent that the block is freed + or reassigned while we wait. While we wait, several things can + happen to the block, including another flush. But the block + cannot be reassigned to another hash_link until we release our + request on it. But it can be marked BLOCK_REASSIGNED from free + or eviction, while they wait for us to release the hash_link. + */ + wait_on_queue(&block->wqueue[COND_FOR_SAVED], &keycache->cache_lock, + thread); + /* + If the flush phase failed, the resize could have finished while + we waited here. + */ + if (!keycache->in_resize) + { + remove_reader(block); + unreg_request(keycache, block, 1); + goto restart; + } + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(!(block->status & BLOCK_FOR_UPDATE) || fail_block(block)); + DBUG_ASSERT(block->hash_link == hash_link); + } + + if (block->status & BLOCK_CHANGED) + { + /* + We want to write a block with changed contents. If the cache + block size is bigger than the callers block size (e.g. MyISAM), + the caller may replace part of the block only. Changes of the + other part of the block must be preserved. Since the block has + not yet been selected for flush, we can still add our changes. + */ + *page_st= PAGE_READ; + DBUG_ASSERT((hash_link->file == file) && + (hash_link->diskpos == filepos) && + (block->hash_link == hash_link)); + DBUG_RETURN(block); + } + + /* + This is a write request for a clean block. We do not want to have + new dirty blocks in the cache while resizing. We will free the + block and write directly to file. If the block is in eviction or + in free, we just let it go. + + Unregister from the hash_link. This must be done before freeing + the block. And it must be done if not freeing the block. Because + we could have waited above, we need to call remove_reader(). Other + threads could wait for us to release our request on the hash_link. + */ + remove_reader(block); + + /* If the block is not in eviction and not in free, we can free it. */ + if (!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH | + BLOCK_REASSIGNED))) + { + /* + Free block as we are going to write directly to file. + Although we have an exlusive lock for the updated key part, + the control can be yielded by the current thread as we might + have unfinished readers of other key parts in the block + buffer. Still we are guaranteed not to have any readers + of the key part we are writing into until the block is + removed from the cache as we set the BLOCK_REASSIGNED + flag (see the code below that handles reading requests). + */ + free_block(keycache, thread, block); + } + else + { + /* + The block will be evicted/freed soon. Don't touch it in any way. + Unregister the request that we registered above. + */ + unreg_request(keycache, block, 1); + + /* + The block is still assigned to the hash_link (the file/pos that + we are going to write to). Wait until the eviction/free is + complete. Otherwise the direct write could complete before all + readers are done with the block. So they could read outdated + data. + + Since we released our request on the hash_link, it can be reused + for another file/pos. Hence we cannot just check for + block->hash_link == hash_link. As long as the resize is + proceeding the block cannot be reassigned to the same file/pos + again. So we can terminate the loop when the block is no longer + assigned to this file/pos. + */ + do + { + wait_on_queue(&block->wqueue[COND_FOR_SAVED], + &keycache->cache_lock, thread); + /* + If the flush phase failed, the resize could have finished + while we waited here. + */ + if (!keycache->in_resize) + goto restart; + } while (block->hash_link && + (block->hash_link->file == file) && + (block->hash_link->diskpos == filepos)); + } + DBUG_RETURN(0); + } + + if (page_status == PAGE_READ && + (block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH | + BLOCK_REASSIGNED))) + { + /* + This is a request for a block to be removed from cache. The block + is assigned to this hash_link and contains valid data, but is + marked for eviction or to be freed. Possible reasons why it has + not yet been evicted/freed can be a flush before reassignment + (BLOCK_IN_SWITCH), readers of the block have not finished yet + (BLOCK_REASSIGNED), or the evicting thread did not yet awake after + the block has been selected for it (BLOCK_IN_EVICTION). + */ + + /* + Only reading requests can proceed until the old dirty page is flushed, + all others are to be suspended, then resubmitted + */ + if (!wrmode && !(block->status & BLOCK_REASSIGNED)) + { + /* + This is a read request and the block not yet reassigned. We can + register our request and proceed. This unlinks the block from + the LRU ring and protects it against eviction. + */ + reg_requests(keycache, block, 1); + } + else + { + /* + Either this is a write request for a block that is in eviction + or in free. We must not use it any more. Instead we must evict + another block. But we cannot do this before the eviction/free is + done. Otherwise we would find the same hash_link + block again + and again. + + Or this is a read request for a block in eviction/free that does + not require a flush, but waits for readers to finish with the + block. We do not read this block to let the eviction/free happen + as soon as possible. Again we must wait so that we don't find + the same hash_link + block again and again. + */ + DBUG_ASSERT(hash_link->requests); + hash_link->requests--; + wait_on_queue(&block->wqueue[COND_FOR_SAVED], &keycache->cache_lock, + thread); + /* + The block is no longer assigned to this hash_link. + Get another one. + */ + goto restart; + } + } + else + { + /* + This is a request for a new block or for a block not to be removed. + Either + - block == NULL or + - block not assigned to this hash_link or + - block assigned but not yet read from file, + or + - block assigned with valid (changed or unchanged) data and + - it will not be reassigned/freed. + */ + if (! block) + { + /* No block is assigned to the hash_link yet. */ + if (keycache->blocks_unused) + { + if (keycache->free_block_list) + { + /* There is a block in the free list. */ + block= keycache->free_block_list; + keycache->free_block_list= block->next_used; + block->next_used= NULL; + } + else + { + size_t block_mem_offset; + /* There are some never used blocks, take first of them */ + DBUG_ASSERT(keycache->blocks_used < + (ulong) keycache->disk_blocks); + block= &keycache->block_root[keycache->blocks_used]; + block_mem_offset= + ((size_t) keycache->blocks_used) * keycache->key_cache_block_size; + block->buffer= ADD_TO_PTR(keycache->block_mem, + block_mem_offset, + uchar*); + keycache->blocks_used++; + DBUG_ASSERT(!block->next_used); + } + DBUG_ASSERT(!block->prev_used); + DBUG_ASSERT(!block->next_changed); + DBUG_ASSERT(!block->prev_changed); + DBUG_ASSERT(!block->hash_link); + DBUG_ASSERT(!block->status); + DBUG_ASSERT(!block->requests); + keycache->blocks_unused--; + block->status= BLOCK_IN_USE; + block->length= 0; + block->offset= keycache->key_cache_block_size; + block->requests= 1; + block->temperature= BLOCK_COLD; + block->hits_left= init_hits_left; + block->last_hit_time= 0; + block->hash_link= hash_link; + hash_link->block= block; + link_to_file_list(keycache, block, file, 0); + page_status= PAGE_TO_BE_READ; + } + else + { + /* + There are no free blocks and no never used blocks, use a block + from the LRU ring. + */ + + if (! keycache->used_last) + { + /* + The LRU ring is empty. Wait until a new block is added to + it. Several threads might wait here for the same hash_link, + all of them must get the same block. While waiting for a + block, after a block is selected for this hash_link, other + threads can run first before this one awakes. During this + time interval other threads find this hash_link pointing to + the block, which is still assigned to another hash_link. In + this case the block is not marked BLOCK_IN_SWITCH yet, but + it is marked BLOCK_IN_EVICTION. + */ + + thread->opt_info= (void *) hash_link; + link_into_queue(&keycache->waiting_for_block, thread); + do + { + mysql_cond_wait(&thread->suspend, + &keycache->cache_lock); + } + while (thread->next); + thread->opt_info= NULL; + /* Assert that block has a request registered. */ + DBUG_ASSERT(hash_link->block->requests); + /* Assert that block is not in LRU ring. */ + DBUG_ASSERT(!hash_link->block->next_used); + DBUG_ASSERT(!hash_link->block->prev_used); + } + + /* + If we waited above, hash_link->block has been assigned by + link_block(). Otherwise it is still NULL. In the latter case + we need to grab a block from the LRU ring ourselves. + */ + block= hash_link->block; + if (! block) + { + /* Select the last block from the LRU ring. */ + block= keycache->used_last->next_used; + block->hits_left= init_hits_left; + block->last_hit_time= 0; + hash_link->block= block; + /* + Register a request on the block. This unlinks it from the + LRU ring and protects it against eviction. + */ + DBUG_ASSERT(!block->requests); + reg_requests(keycache, block,1); + /* + We do not need to set block->status|= BLOCK_IN_EVICTION here + because we will set block->status|= BLOCK_IN_SWITCH + immediately without releasing the lock in between. This does + also support debugging. When looking at the block, one can + see if the block has been selected by link_block() after the + LRU ring was empty, or if it was grabbed directly from the + LRU ring in this branch. + */ + } + + /* + If we had to wait above, there is a small chance that another + thread grabbed this block for the same file block already. But + in most cases the first condition is true. + */ + if (block->hash_link != hash_link && + ! (block->status & BLOCK_IN_SWITCH) ) + { + /* this is a primary request for a new page */ + block->status|= BLOCK_IN_SWITCH; + + if (block->status & BLOCK_CHANGED) + { + /* The block contains a dirty page - push it out of the cache */ + + if (block->status & BLOCK_IN_FLUSH) + { + /* + The block is marked for flush. If we do not wait here, + it could happen that we write the block, reassign it to + another file block, then, before the new owner can read + the new file block, the flusher writes the cache block + (which still has the old contents) to the new file block! + */ + wait_on_queue(&block->wqueue[COND_FOR_SAVED], + &keycache->cache_lock, thread); + /* + The block is marked BLOCK_IN_SWITCH. It should be left + alone except for reading. No free, no write. + */ + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + DBUG_ASSERT(!(block->status & (BLOCK_REASSIGNED | + BLOCK_CHANGED | + BLOCK_FOR_UPDATE))); + } + else + { + block->status|= BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE; + /* + BLOCK_IN_EVICTION may be true or not. Other flags must + have a fixed value. + */ + DBUG_ASSERT((block->status & ~BLOCK_IN_EVICTION) == + (BLOCK_READ | BLOCK_IN_SWITCH | + BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE | + BLOCK_CHANGED | BLOCK_IN_USE)); + DBUG_ASSERT(block->hash_link); + + mysql_mutex_unlock(&keycache->cache_lock); + /* + The call is thread safe because only the current + thread might change the block->hash_link value + */ + error= (int)my_pwrite(block->hash_link->file, + block->buffer + block->offset, + block->length - block->offset, + block->hash_link->diskpos + block->offset, + MYF(MY_NABP | MY_WAIT_IF_FULL)); + mysql_mutex_lock(&keycache->cache_lock); + + /* Block status must not have changed. */ + DBUG_ASSERT((block->status & ~BLOCK_IN_EVICTION) == + (BLOCK_READ | BLOCK_IN_SWITCH | + BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE | + BLOCK_CHANGED | BLOCK_IN_USE) || fail_block(block)); + keycache->global_cache_write++; + } + } + + block->status|= BLOCK_REASSIGNED; + /* + The block comes from the LRU ring. It must have a hash_link + assigned. + */ + DBUG_ASSERT(block->hash_link); + if (block->hash_link) + { + /* + All pending requests for this page must be resubmitted. + This must be done before waiting for readers. They could + wait for the flush to complete. And we must also do it + after the wait. Flushers might try to free the block while + we wait. They would wait until the reassignment is + complete. Also the block status must reflect the correct + situation: The block is not changed nor in flush any more. + Note that we must not change the BLOCK_CHANGED flag + outside of link_to_file_list() so that it is always in the + correct queue and the *blocks_changed counters are + correct. + */ + block->status&= ~(BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE); + link_to_file_list(keycache, block, block->hash_link->file, 1); + release_whole_queue(&block->wqueue[COND_FOR_SAVED]); + /* + The block is still assigned to its old hash_link. + Wait until all pending read requests + for this page are executed + (we could have avoided this waiting, if we had read + a page in the cache in a sweep, without yielding control) + */ + wait_for_readers(keycache, block, thread); + DBUG_ASSERT(block->hash_link && block->hash_link->block == block && + block->prev_changed); + /* The reader must not have been a writer. */ + DBUG_ASSERT(!(block->status & BLOCK_CHANGED)); + + /* Wake flushers that might have found the block in between. */ + release_whole_queue(&block->wqueue[COND_FOR_SAVED]); + + /* Remove the hash link for the old file block from the hash. */ + unlink_hash(keycache, block->hash_link); + + /* + For sanity checks link_to_file_list() asserts that block + and hash_link refer to each other. Hence we need to assign + the hash_link first, but then we would not know if it was + linked before. Hence we would not know if to unlink it. So + unlink it here and call link_to_file_list(..., FALSE). + */ + unlink_changed(block); + } + block->status= error ? BLOCK_ERROR : BLOCK_IN_USE ; + block->length= 0; + block->offset= keycache->key_cache_block_size; + block->hash_link= hash_link; + link_to_file_list(keycache, block, file, 0); + page_status= PAGE_TO_BE_READ; + + DBUG_ASSERT(block->hash_link->block == block); + DBUG_ASSERT(hash_link->block->hash_link == hash_link); + } + else + { + /* + Either (block->hash_link == hash_link), + or (block->status & BLOCK_IN_SWITCH). + + This is for secondary requests for a new file block only. + Either it is already assigned to the new hash_link meanwhile + (if we had to wait due to empty LRU), or it is already in + eviction by another thread. Since this block has been + grabbed from the LRU ring and attached to this hash_link, + another thread cannot grab the same block from the LRU ring + anymore. If the block is in eviction already, it must become + attached to the same hash_link and as such destined for the + same file block. + */ + page_status= (((block->hash_link == hash_link) && + (block->status & BLOCK_READ)) ? + PAGE_READ : PAGE_WAIT_TO_BE_READ); + } + } + } + else + { + /* + Block is not NULL. This hash_link points to a block. + Either + - block not assigned to this hash_link (yet) or + - block assigned but not yet read from file, + or + - block assigned with valid (changed or unchanged) data and + - it will not be reassigned/freed. + + The first condition means hash_link points to a block in + eviction. This is not necessarily marked by BLOCK_IN_SWITCH yet. + But then it is marked BLOCK_IN_EVICTION. See the NOTE in + link_block(). In both cases it is destined for this hash_link + and its file block address. When this hash_link got its block + address, the block was removed from the LRU ring and cannot be + selected for eviction (for another hash_link) again. + + Register a request on the block. This is another protection + against eviction. + */ + DBUG_ASSERT(((block->hash_link != hash_link) && + (block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))) || + ((block->hash_link == hash_link) && + !(block->status & BLOCK_READ)) || + ((block->status & BLOCK_READ) && + !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH)))); + reg_requests(keycache, block, 1); + page_status= (((block->hash_link == hash_link) && + (block->status & BLOCK_READ)) ? + PAGE_READ : PAGE_WAIT_TO_BE_READ); + } + } + + DBUG_ASSERT(page_status != -1); + /* Same assert basically, but be very sure. */ + DBUG_ASSERT(block); + /* Assert that block has a request and is not in LRU ring. */ + DBUG_ASSERT(block->requests); + DBUG_ASSERT(!block->next_used); + DBUG_ASSERT(!block->prev_used); + /* Assert that we return the correct block. */ + DBUG_ASSERT((page_status == PAGE_WAIT_TO_BE_READ) || + ((block->hash_link->file == file) && + (block->hash_link->diskpos == filepos))); + *page_st=page_status; + DBUG_RETURN(block); +} + + +/* + Read into a key cache block buffer from disk. + + SYNOPSIS + + read_block() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + block block to which buffer the data is to be read + read_length size of data to be read + min_length at least so much data must be read + primary <-> the current thread will read the data + + RETURN VALUE + None + + NOTES. + The function either reads a page data from file to the block buffer, + or waits until another thread reads it. What page to read is determined + by a block parameter - reference to a hash link for this page. + If an error occurs THE BLOCK_ERROR bit is set in the block status. + We do not report error when the size of successfully read + portion is less than read_length, but not less than min_length. +*/ + +static void read_block(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + BLOCK_LINK *block, uint read_length, + uint min_length, my_bool primary) +{ + size_t got_length; + + /* On entry cache_lock is locked */ + + if (primary) + { + /* + This code is executed only by threads that submitted primary + requests. Until block->status contains BLOCK_READ, all other + request for the block become secondary requests. For a primary + request the block must be properly initialized. + */ + DBUG_ASSERT(((block->status & ~BLOCK_FOR_UPDATE) == BLOCK_IN_USE) || + fail_block(block)); + DBUG_ASSERT((block->length == 0) || fail_block(block)); + DBUG_ASSERT((block->offset == keycache->key_cache_block_size) || + fail_block(block)); + DBUG_ASSERT((block->requests > 0) || fail_block(block)); + + keycache->global_cache_read++; + /* Page is not in buffer yet, is to be read from disk */ + mysql_mutex_unlock(&keycache->cache_lock); + /* + Here other threads may step in and register as secondary readers. + They will register in block->wqueue[COND_FOR_REQUESTED]. + */ + got_length= my_pread(block->hash_link->file, block->buffer, + read_length, block->hash_link->diskpos, MYF(0)); + mysql_mutex_lock(&keycache->cache_lock); + /* + The block can now have been marked for free (in case of + FLUSH_RELEASE). Otherwise the state must be unchanged. + */ + DBUG_ASSERT(((block->status & ~(BLOCK_REASSIGNED | + BLOCK_FOR_UPDATE)) == BLOCK_IN_USE) || + fail_block(block)); + DBUG_ASSERT((block->length == 0) || fail_block(block)); + DBUG_ASSERT((block->offset == keycache->key_cache_block_size) || + fail_block(block)); + DBUG_ASSERT((block->requests > 0) || fail_block(block)); + + if (got_length < min_length) + block->status|= BLOCK_ERROR; + else + { + block->status|= BLOCK_READ; + block->length= (int)got_length; + /* + Do not set block->offset here. If this block is marked + BLOCK_CHANGED later, we want to flush only the modified part. So + only a writer may set block->offset down from + keycache->key_cache_block_size. + */ + } + /* Signal that all pending requests for this page now can be processed */ + release_whole_queue(&block->wqueue[COND_FOR_REQUESTED]); + } + else + { + /* + This code is executed only by threads that submitted secondary + requests. At this point it could happen that the cache block is + not yet assigned to the hash_link for the requested file block. + But at awake from the wait this should be the case. Unfortunately + we cannot assert this here because we do not know the hash_link + for the requested file block nor the file and position. So we have + to assert this in the caller. + */ + wait_on_queue(&block->wqueue[COND_FOR_REQUESTED], &keycache->cache_lock, + thread_var); + } +} + + +/* + Read a block of data from a cached file into a buffer; + + SYNOPSIS + + key_cache_read() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + file handler for the file for the block of data to be read + filepos position of the block of data in the file + level determines the weight of the data + buff buffer to where the data must be placed + length length of the buffer + block_length length of the block in the key cache buffer + return_buffer return pointer to the key cache buffer with the data + + RETURN VALUE + Returns address from where the data is placed if sucessful, 0 - otherwise. + + NOTES. + The function ensures that a block of data of size length from file + positioned at filepos is in the buffers for some key cache blocks. + Then the function either copies the data into the buffer buff, or, + if return_buffer is TRUE, it just returns the pointer to the key cache + buffer with the data. + Filepos must be a multiple of 'block_length', but it doesn't + have to be a multiple of key_cache_block_size; +*/ + +uchar *key_cache_read(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length MY_ATTRIBUTE((unused)), + int return_buffer MY_ATTRIBUTE((unused))) +{ + my_bool locked_and_incremented= FALSE; + int error=0; + uchar *start= buff; + DBUG_ENTER("key_cache_read"); + DBUG_PRINT("enter", ("fd: %u pos: %lu length: %u", + (uint) file, (ulong) filepos, length)); + + if (keycache->key_cache_inited) + { + /* Key cache is used */ + BLOCK_LINK *block; + uint read_length; + uint offset; + int page_st; + + if (MYSQL_KEYCACHE_READ_START_ENABLED()) + { + MYSQL_KEYCACHE_READ_START(my_filename(file), length, + (ulong) (keycache->blocks_used * + keycache->key_cache_block_size), + (ulong) (keycache->blocks_unused * + keycache->key_cache_block_size)); + } + + /* + When the key cache is once initialized, we use the cache_lock to + reliably distinguish the cases of normal operation, resizing, and + disabled cache. We always increment and decrement + 'cnt_for_resize_op' so that a resizer can wait for pending I/O. + */ + mysql_mutex_lock(&keycache->cache_lock); + /* + Cache resizing has two phases: Flushing and re-initializing. In + the flush phase read requests are allowed to bypass the cache for + blocks not in the cache. find_key_block() returns NULL in this + case. + + After the flush phase new I/O requests must wait until the + re-initialization is done. The re-initialization can be done only + if no I/O request is in progress. The reason is that + key_cache_block_size can change. With enabled cache, I/O is done + in chunks of key_cache_block_size. Every chunk tries to use a + cache block first. If the block size changes in the middle, a + block could be missed and old data could be read. + */ + while (keycache->in_resize && !keycache->resize_in_flush) + wait_on_queue(&keycache->resize_queue, &keycache->cache_lock, + thread_var); + /* Register the I/O for the next resize. */ + inc_counter_for_resize_op(keycache); + locked_and_incremented= TRUE; + /* Requested data may not always be aligned to cache blocks. */ + offset= (uint) (filepos % keycache->key_cache_block_size); + /* Read data in key_cache_block_size increments */ + do + { + /* Cache could be disabled in a later iteration. */ + if (!keycache->can_be_used) + { + goto no_key_cache; + } + /* Start reading at the beginning of the cache block. */ + filepos-= offset; + /* Do not read beyond the end of the cache block. */ + read_length= length; + set_if_smaller(read_length, keycache->key_cache_block_size-offset); + DBUG_ASSERT(read_length > 0); + + if (block_length > keycache->key_cache_block_size || offset) + return_buffer=0; + + /* Request the cache block that matches file/pos. */ + keycache->global_cache_r_requests++; + + MYSQL_KEYCACHE_READ_BLOCK(keycache->key_cache_block_size); + + block= find_key_block(keycache, thread_var, file, filepos, level, 0, + &page_st); + if (!block) + { + /* + This happens only for requests submitted during key cache + resize. The block is not in the cache and shall not go in. + Read directly from file. + */ + keycache->global_cache_read++; + mysql_mutex_unlock(&keycache->cache_lock); + error= (my_pread(file, (uchar*) buff, read_length, + filepos + offset, MYF(MY_NABP)) != 0); + mysql_mutex_lock(&keycache->cache_lock); + goto next_block; + } + if (!(block->status & BLOCK_ERROR)) + { + if (page_st != PAGE_READ) + { + MYSQL_KEYCACHE_READ_MISS(); + /* The requested page is to be read into the block buffer */ + read_block(keycache, thread_var, block, + keycache->key_cache_block_size, read_length+offset, + (my_bool)(page_st == PAGE_TO_BE_READ)); + /* + A secondary request must now have the block assigned to the + requested file block. It does not hurt to check it for + primary requests too. + */ + DBUG_ASSERT(keycache->can_be_used); + DBUG_ASSERT(block->hash_link->file == file); + DBUG_ASSERT(block->hash_link->diskpos == filepos); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + } + else if (block->length < read_length + offset) + { + /* + Impossible if nothing goes wrong: + this could only happen if we are using a file with + small key blocks and are trying to read outside the file + */ + set_my_errno(-1); + block->status|= BLOCK_ERROR; + } + else + { + MYSQL_KEYCACHE_READ_HIT(); + } + } + + /* block status may have added BLOCK_ERROR in the above 'if'. */ + if (!(block->status & BLOCK_ERROR)) + { + { + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + mysql_mutex_unlock(&keycache->cache_lock); + + /* Copy data from the cache buffer */ + memcpy(buff, block->buffer+offset, (size_t) read_length); + + mysql_mutex_lock(&keycache->cache_lock); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + } + } + + remove_reader(block); + + /* Error injection for coverage testing. */ + DBUG_EXECUTE_IF("key_cache_read_block_error", + block->status|= BLOCK_ERROR;); + + /* Do not link erroneous blocks into the LRU ring, but free them. */ + if (!(block->status & BLOCK_ERROR)) + { + /* + Link the block into the LRU ring if it's the last submitted + request for the block. This enables eviction for the block. + */ + unreg_request(keycache, block, 1); + } + else + { + free_block(keycache, thread_var, block); + error= 1; + break; + } + + next_block: + buff+= read_length; + filepos+= read_length+offset; + offset= 0; + + } while ((length-= read_length)); + if (MYSQL_KEYCACHE_READ_DONE_ENABLED()) + { + MYSQL_KEYCACHE_READ_DONE((ulong) (keycache->blocks_used * + keycache->key_cache_block_size), + (ulong) (keycache->blocks_unused * + keycache->key_cache_block_size)); + } + goto end; + } + +no_key_cache: + /* Key cache is not used */ + + keycache->global_cache_r_requests++; + keycache->global_cache_read++; + + if (locked_and_incremented) + mysql_mutex_unlock(&keycache->cache_lock); + if (my_pread(file, (uchar*) buff, length, filepos, MYF(MY_NABP))) + error= 1; + if (locked_and_incremented) + mysql_mutex_lock(&keycache->cache_lock); + +end: + if (locked_and_incremented) + { + dec_counter_for_resize_op(keycache); + mysql_mutex_unlock(&keycache->cache_lock); + } + DBUG_PRINT("exit", ("error: %d", error )); + DBUG_RETURN(error ? (uchar*) 0 : start); +} + + +/* + Insert a block of file data from a buffer into key cache + + SYNOPSIS + key_cache_insert() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + file handler for the file to insert data from + filepos position of the block of data in the file to insert + level determines the weight of the data + buff buffer to read data from + length length of the data in the buffer + + NOTES + This is used by MyISAM to move all blocks from a index file to the key + cache + + RETURN VALUE + 0 if a success, 1 - otherwise. +*/ + +int key_cache_insert(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, my_off_t filepos, int level, + uchar *buff, uint length) +{ + int error= 0; + DBUG_ENTER("key_cache_insert"); + DBUG_PRINT("enter", ("fd: %u pos: %lu length: %u", + (uint) file,(ulong) filepos, length)); + + if (keycache->key_cache_inited) + { + /* Key cache is used */ + BLOCK_LINK *block; + uint read_length; + uint offset; + int page_st; + my_bool locked_and_incremented= FALSE; + + /* + When the keycache is once initialized, we use the cache_lock to + reliably distinguish the cases of normal operation, resizing, and + disabled cache. We always increment and decrement + 'cnt_for_resize_op' so that a resizer can wait for pending I/O. + */ + mysql_mutex_lock(&keycache->cache_lock); + /* + We do not load index data into a disabled cache nor into an + ongoing resize. + */ + if (!keycache->can_be_used || keycache->in_resize) + goto no_key_cache; + /* Register the pseudo I/O for the next resize. */ + inc_counter_for_resize_op(keycache); + locked_and_incremented= TRUE; + /* Loaded data may not always be aligned to cache blocks. */ + offset= (uint) (filepos % keycache->key_cache_block_size); + /* Load data in key_cache_block_size increments. */ + do + { + /* Cache could be disabled or resizing in a later iteration. */ + if (!keycache->can_be_used || keycache->in_resize) + goto no_key_cache; + /* Start loading at the beginning of the cache block. */ + filepos-= offset; + /* Do not load beyond the end of the cache block. */ + read_length= length; + set_if_smaller(read_length, keycache->key_cache_block_size-offset); + DBUG_ASSERT(read_length > 0); + + /* The block has been read by the caller already. */ + keycache->global_cache_read++; + /* Request the cache block that matches file/pos. */ + keycache->global_cache_r_requests++; + block= find_key_block(keycache, thread_var, file, filepos, level, 0, + &page_st); + if (!block) + { + /* + This happens only for requests submitted during key cache + resize. The block is not in the cache and shall not go in. + Stop loading index data. + */ + goto no_key_cache; + } + if (!(block->status & BLOCK_ERROR)) + { + if ((page_st == PAGE_WAIT_TO_BE_READ) || + ((page_st == PAGE_TO_BE_READ) && + (offset || (read_length < keycache->key_cache_block_size)))) + { + /* + Either + + this is a secondary request for a block to be read into the + cache. The block is in eviction. It is not yet assigned to + the requested file block (It does not point to the right + hash_link). So we cannot call remove_reader() on the block. + And we cannot access the hash_link directly here. We need to + wait until the assignment is complete. read_block() executes + the correct wait when called with primary == FALSE. + + Or + + this is a primary request for a block to be read into the + cache and the supplied data does not fill the whole block. + + This function is called on behalf of a LOAD INDEX INTO CACHE + statement, which is a read-only task and allows other + readers. It is possible that a parallel running reader tries + to access this block. If it needs more data than has been + supplied here, it would report an error. To be sure that we + have all data in the block that is available in the file, we + read the block ourselves. + + Though reading again what the caller did read already is an + expensive operation, we need to do this for correctness. + */ + read_block(keycache, thread_var, block, + keycache->key_cache_block_size, + read_length + offset, (page_st == PAGE_TO_BE_READ)); + /* + A secondary request must now have the block assigned to the + requested file block. It does not hurt to check it for + primary requests too. + */ + DBUG_ASSERT(keycache->can_be_used); + DBUG_ASSERT(block->hash_link->file == file); + DBUG_ASSERT(block->hash_link->diskpos == filepos); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + } + else if (page_st == PAGE_TO_BE_READ) + { + /* + This is a new block in the cache. If we come here, we have + data for the whole block. + */ + DBUG_ASSERT(block->hash_link->requests); + DBUG_ASSERT(block->status & BLOCK_IN_USE); + DBUG_ASSERT((page_st == PAGE_TO_BE_READ) || + (block->status & BLOCK_READ)); + + mysql_mutex_unlock(&keycache->cache_lock); + /* + Here other threads may step in and register as secondary readers. + They will register in block->wqueue[COND_FOR_REQUESTED]. + */ + + /* Copy data from buff */ + memcpy(block->buffer+offset, buff, (size_t) read_length); + + mysql_mutex_lock(&keycache->cache_lock); + DBUG_ASSERT(block->status & BLOCK_IN_USE); + DBUG_ASSERT((page_st == PAGE_TO_BE_READ) || + (block->status & BLOCK_READ)); + /* + After the data is in the buffer, we can declare the block + valid. Now other threads do not need to register as + secondary readers any more. They can immediately access the + block. + */ + block->status|= BLOCK_READ; + block->length= read_length+offset; + /* + Do not set block->offset here. If this block is marked + BLOCK_CHANGED later, we want to flush only the modified part. So + only a writer may set block->offset down from + keycache->key_cache_block_size. + */ + /* Signal all pending requests. */ + release_whole_queue(&block->wqueue[COND_FOR_REQUESTED]); + } + else + { + /* + page_st == PAGE_READ. The block is in the buffer. All data + must already be present. Blocks are always read with all + data available on file. Assert that the block does not have + less contents than the preloader supplies. If the caller has + data beyond block->length, it means that a file write has + been done while this block was in cache and not extended + with the new data. If the condition is met, we can simply + ignore the block. + */ + DBUG_ASSERT((page_st == PAGE_READ) && + (read_length + offset <= block->length)); + } + + /* + A secondary request must now have the block assigned to the + requested file block. It does not hurt to check it for primary + requests too. + */ + DBUG_ASSERT(block->hash_link->file == file); + DBUG_ASSERT(block->hash_link->diskpos == filepos); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + } /* end of if (!(block->status & BLOCK_ERROR)) */ + + remove_reader(block); + + /* Error injection for coverage testing. */ + DBUG_EXECUTE_IF("key_cache_insert_block_error", + block->status|= BLOCK_ERROR; errno=EIO;); + + /* Do not link erroneous blocks into the LRU ring, but free them. */ + if (!(block->status & BLOCK_ERROR)) + { + /* + Link the block into the LRU ring if it's the last submitted + request for the block. This enables eviction for the block. + */ + unreg_request(keycache, block, 1); + } + else + { + free_block(keycache, thread_var, block); + error= 1; + break; + } + + buff+= read_length; + filepos+= read_length+offset; + offset= 0; + + } while ((length-= read_length)); + + no_key_cache: + if (locked_and_incremented) + dec_counter_for_resize_op(keycache); + mysql_mutex_unlock(&keycache->cache_lock); + } + DBUG_RETURN(error); +} + + +/* + Write a buffer into a cached file. + + SYNOPSIS + + key_cache_write() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + file handler for the file to write data to + filepos position in the file to write data to + level determines the weight of the data + buff buffer with the data + length length of the buffer + dont_write if is 0 then all dirty pages involved in writing + should have been flushed from key cache + + RETURN VALUE + 0 if a success, 1 - otherwise. + + NOTES. + The function copies the data of size length from buff into buffers + for key cache blocks that are assigned to contain the portion of + the file starting with position filepos. + It ensures that this data is flushed to the file if dont_write is FALSE. + Filepos must be a multiple of 'block_length', but it doesn't + have to be a multiple of key_cache_block_size; + + dont_write is always TRUE in the server (info->lock_type is never F_UNLCK). +*/ + +int key_cache_write(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length MY_ATTRIBUTE((unused)), + int dont_write) +{ + my_bool locked_and_incremented= FALSE; + int error=0; + DBUG_ENTER("key_cache_write"); + DBUG_PRINT("enter", + ("fd: %u pos: %lu length: %u block_length: %u" + " key_block_length: %u", + (uint) file, (ulong) filepos, length, block_length, + keycache ? keycache->key_cache_block_size : 0)); + + if (!dont_write) + { + /* purecov: begin inspected */ + /* Not used in the server. */ + /* Force writing from buff into disk. */ + keycache->global_cache_w_requests++; + keycache->global_cache_write++; + if (my_pwrite(file, buff, length, filepos, MYF(MY_NABP | MY_WAIT_IF_FULL))) + DBUG_RETURN(1); + /* purecov: end */ + } + + if (keycache->key_cache_inited) + { + /* Key cache is used */ + BLOCK_LINK *block; + uint read_length; + uint offset; + int page_st; + + if (MYSQL_KEYCACHE_WRITE_START_ENABLED()) + { + MYSQL_KEYCACHE_WRITE_START(my_filename(file), length, + (ulong) (keycache->blocks_used * + keycache->key_cache_block_size), + (ulong) (keycache->blocks_unused * + keycache->key_cache_block_size)); + } + + /* + When the key cache is once initialized, we use the cache_lock to + reliably distinguish the cases of normal operation, resizing, and + disabled cache. We always increment and decrement + 'cnt_for_resize_op' so that a resizer can wait for pending I/O. + */ + mysql_mutex_lock(&keycache->cache_lock); + /* + Cache resizing has two phases: Flushing and re-initializing. In + the flush phase write requests can modify dirty blocks that are + not yet in flush. Otherwise they are allowed to bypass the cache. + find_key_block() returns NULL in both cases (clean blocks and + non-cached blocks). + + After the flush phase new I/O requests must wait until the + re-initialization is done. The re-initialization can be done only + if no I/O request is in progress. The reason is that + key_cache_block_size can change. With enabled cache I/O is done in + chunks of key_cache_block_size. Every chunk tries to use a cache + block first. If the block size changes in the middle, a block + could be missed and data could be written below a cached block. + */ + while (keycache->in_resize && !keycache->resize_in_flush) + wait_on_queue(&keycache->resize_queue, &keycache->cache_lock, + thread_var); + /* Register the I/O for the next resize. */ + inc_counter_for_resize_op(keycache); + locked_and_incremented= TRUE; + /* Requested data may not always be aligned to cache blocks. */ + offset= (uint) (filepos % keycache->key_cache_block_size); + /* Write data in key_cache_block_size increments. */ + do + { + /* Cache could be disabled in a later iteration. */ + if (!keycache->can_be_used) + goto no_key_cache; + + MYSQL_KEYCACHE_WRITE_BLOCK(keycache->key_cache_block_size); + /* Start writing at the beginning of the cache block. */ + filepos-= offset; + /* Do not write beyond the end of the cache block. */ + read_length= length; + set_if_smaller(read_length, keycache->key_cache_block_size-offset); + DBUG_ASSERT(read_length > 0); + + /* Request the cache block that matches file/pos. */ + keycache->global_cache_w_requests++; + block= find_key_block(keycache, thread_var, file, filepos, level, 1, + &page_st); + if (!block) + { + /* + This happens only for requests submitted during key cache + resize. The block is not in the cache and shall not go in. + Write directly to file. + */ + if (dont_write) + { + /* Used in the server. */ + keycache->global_cache_write++; + mysql_mutex_unlock(&keycache->cache_lock); + if (my_pwrite(file, (uchar*) buff, read_length, filepos + offset, + MYF(MY_NABP | MY_WAIT_IF_FULL))) + error=1; + mysql_mutex_lock(&keycache->cache_lock); + } + goto next_block; + } + /* + Prevent block from flushing and from being selected for to be + freed. This must be set when we release the cache_lock. + However, we must not set the status of the block before it is + assigned to this file/pos. + */ + if (page_st != PAGE_WAIT_TO_BE_READ) + block->status|= BLOCK_FOR_UPDATE; + /* + We must read the file block first if it is not yet in the cache + and we do not replace all of its contents. + + In cases where the cache block is big enough to contain (parts + of) index blocks of different indexes, our request can be + secondary (PAGE_WAIT_TO_BE_READ). In this case another thread is + reading the file block. If the read completes after us, it + overwrites our new contents with the old contents. So we have to + wait for the other thread to complete the read of this block. + read_block() takes care for the wait. + */ + if (!(block->status & BLOCK_ERROR) && + ((page_st == PAGE_TO_BE_READ && + (offset || read_length < keycache->key_cache_block_size)) || + (page_st == PAGE_WAIT_TO_BE_READ))) + { + read_block(keycache, thread_var, block, + offset + read_length >= keycache->key_cache_block_size? + offset : keycache->key_cache_block_size, + offset, (page_st == PAGE_TO_BE_READ)); + DBUG_ASSERT(keycache->can_be_used); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + /* + Prevent block from flushing and from being selected for to be + freed. This must be set when we release the cache_lock. + Here we set it in case we could not set it above. + */ + block->status|= BLOCK_FOR_UPDATE; + } + /* + The block should always be assigned to the requested file block + here. It need not be BLOCK_READ when overwriting the whole block. + */ + DBUG_ASSERT(block->hash_link->file == file); + DBUG_ASSERT(block->hash_link->diskpos == filepos); + DBUG_ASSERT(block->status & BLOCK_IN_USE); + DBUG_ASSERT((page_st == PAGE_TO_BE_READ) || (block->status & BLOCK_READ)); + /* + The block to be written must not be marked BLOCK_REASSIGNED. + Otherwise it could be freed in dirty state or reused without + another flush during eviction. It must also not be in flush. + Otherwise the old contens may have been flushed already and + the flusher could clear BLOCK_CHANGED without flushing the + new changes again. + */ + DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED)); + + while (block->status & BLOCK_IN_FLUSHWRITE) + { + /* + Another thread is flushing the block. It was dirty already. + Wait until the block is flushed to file. Otherwise we could + modify the buffer contents just while it is written to file. + An unpredictable file block contents would be the result. + While we wait, several things can happen to the block, + including another flush. But the block cannot be reassigned to + another hash_link until we release our request on it. + */ + wait_on_queue(&block->wqueue[COND_FOR_SAVED], &keycache->cache_lock, + thread_var); + DBUG_ASSERT(keycache->can_be_used); + DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE)); + /* Still must not be marked for free. */ + DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED)); + DBUG_ASSERT(block->hash_link && (block->hash_link->block == block)); + } + + /* + We could perhaps release the cache_lock during access of the + data like in the other functions. Locks outside of the key cache + assure that readers and a writer do not access the same range of + data. Parallel accesses should happen only if the cache block + contains multiple index block(fragment)s. So different parts of + the buffer would be read/written. An attempt to flush during + memcpy() is prevented with BLOCK_FOR_UPDATE. + */ + if (!(block->status & BLOCK_ERROR)) + { + mysql_mutex_unlock(&keycache->cache_lock); + memcpy(block->buffer+offset, buff, (size_t) read_length); + + mysql_mutex_lock(&keycache->cache_lock); + } + + if (!dont_write) + { + /* Not used in the server. buff has been written to disk at start. */ + if ((block->status & BLOCK_CHANGED) && + (!offset && read_length >= keycache->key_cache_block_size)) + link_to_file_list(keycache, block, block->hash_link->file, 1); + } + else if (! (block->status & BLOCK_CHANGED)) + link_to_changed_list(keycache, block); + block->status|=BLOCK_READ; + /* + Allow block to be selected for to be freed. Since it is marked + BLOCK_CHANGED too, it won't be selected for to be freed without + a flush. + */ + block->status&= ~BLOCK_FOR_UPDATE; + set_if_smaller(block->offset, offset); + set_if_bigger(block->length, read_length+offset); + + /* Threads may be waiting for the changes to be complete. */ + release_whole_queue(&block->wqueue[COND_FOR_REQUESTED]); + + /* + If only a part of the cache block is to be replaced, and the + rest has been read from file, then the cache lock has been + released for I/O and it could be possible that another thread + wants to evict or free the block and waits for it to be + released. So we must not just decrement hash_link->requests, but + also wake a waiting thread. + */ + remove_reader(block); + + /* Error injection for coverage testing. */ + DBUG_EXECUTE_IF("key_cache_write_block_error", + block->status|= BLOCK_ERROR;); + + /* Do not link erroneous blocks into the LRU ring, but free them. */ + if (!(block->status & BLOCK_ERROR)) + { + /* + Link the block into the LRU ring if it's the last submitted + request for the block. This enables eviction for the block. + */ + unreg_request(keycache, block, 1); + } + else + { + /* Pretend a "clean" block to avoid complications. */ + block->status&= ~(BLOCK_CHANGED); + free_block(keycache, thread_var, block); + error= 1; + break; + } + + next_block: + buff+= read_length; + filepos+= read_length+offset; + offset= 0; + + } while ((length-= read_length)); + goto end; + } + +no_key_cache: + /* Key cache is not used */ + if (dont_write) + { + /* Used in the server. */ + keycache->global_cache_w_requests++; + keycache->global_cache_write++; + if (locked_and_incremented) + mysql_mutex_unlock(&keycache->cache_lock); + if (my_pwrite(file, (uchar*) buff, length, filepos, + MYF(MY_NABP | MY_WAIT_IF_FULL))) + error=1; + if (locked_and_incremented) + mysql_mutex_lock(&keycache->cache_lock); + } + +end: + if (locked_and_incremented) + { + dec_counter_for_resize_op(keycache); + mysql_mutex_unlock(&keycache->cache_lock); + } + + if (MYSQL_KEYCACHE_WRITE_DONE_ENABLED()) + { + MYSQL_KEYCACHE_WRITE_DONE((ulong) (keycache->blocks_used * + keycache->key_cache_block_size), + (ulong) (keycache->blocks_unused * + keycache->key_cache_block_size)); + } + + DBUG_RETURN(error); +} + + +/* + Free block. + + SYNOPSIS + free_block() + keycache Pointer to a key cache data structure + thread_var Pointer to thread specific variables + block Pointer to the block to free + + DESCRIPTION + Remove reference to block from hash table. + Remove block from the chain of clean blocks. + Add block to the free list. + + NOTE + Block must not be free (status == 0). + Block must not be in free_block_list. + Block must not be in the LRU ring. + Block must not be in eviction (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH). + Block must not be in free (BLOCK_REASSIGNED). + Block must not be in flush (BLOCK_IN_FLUSH). + Block must not be dirty (BLOCK_CHANGED). + Block must not be in changed_blocks (dirty) hash. + Block must be in file_blocks (clean) hash. + Block must refer to a hash_link. + Block must have a request registered on it. +*/ + +static void free_block(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + BLOCK_LINK *block) +{ + /* + Assert that the block is not free already. And that it is in a clean + state. Note that the block might just be assigned to a hash_link and + not yet read (BLOCK_READ may not be set here). In this case a reader + is registered in the hash_link and free_block() will wait for it + below. + */ + DBUG_ASSERT((block->status & BLOCK_IN_USE) && + !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH | + BLOCK_REASSIGNED | BLOCK_IN_FLUSH | + BLOCK_CHANGED | BLOCK_FOR_UPDATE))); + /* Assert that the block is in a file_blocks chain. */ + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + /* Assert that the block is not in the LRU ring. */ + DBUG_ASSERT(!block->next_used && !block->prev_used); + /* + IMHO the below condition (if()) makes no sense. I can't see how it + could be possible that free_block() is entered with a NULL hash_link + pointer. The only place where it can become NULL is in free_block() + (or before its first use ever, but for those blocks free_block() is + not called). I don't remove the conditional as it cannot harm, but + place an DBUG_ASSERT to confirm my hypothesis. Eventually the + condition (if()) can be removed. + */ + DBUG_ASSERT(block->hash_link && block->hash_link->block == block); + if (block->hash_link) + { + /* + While waiting for readers to finish, new readers might request the + block. But since we set block->status|= BLOCK_REASSIGNED, they + will wait on block->wqueue[COND_FOR_SAVED]. They must be signalled + later. + */ + block->status|= BLOCK_REASSIGNED; + wait_for_readers(keycache, block, thread_var); + /* + The block must not have been freed by another thread. Repeat some + checks. An additional requirement is that it must be read now + (BLOCK_READ). + */ + DBUG_ASSERT(block->hash_link && block->hash_link->block == block); + DBUG_ASSERT((block->status & (BLOCK_READ | BLOCK_IN_USE | + BLOCK_REASSIGNED)) && + !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH | + BLOCK_IN_FLUSH | BLOCK_CHANGED | + BLOCK_FOR_UPDATE))); + DBUG_ASSERT(block->prev_changed && *block->prev_changed == block); + DBUG_ASSERT(!block->prev_used); + /* + Unset BLOCK_REASSIGNED again. If we hand the block to an evicting + thread (through unreg_request() below), other threads must not see + this flag. They could become confused. + */ + block->status&= ~BLOCK_REASSIGNED; + /* + Do not release the hash_link until the block is off all lists. + At least not if we hand it over for eviction in unreg_request(). + */ + } + + /* + Unregister the block request and link the block into the LRU ring. + This enables eviction for the block. If the LRU ring was empty and + threads are waiting for a block, then the block wil be handed over + for eviction immediately. Otherwise we will unlink it from the LRU + ring again, without releasing the lock in between. So decrementing + the request counter and updating statistics are the only relevant + operation in this case. Assert that there are no other requests + registered. + */ + DBUG_ASSERT(block->requests == 1); + unreg_request(keycache, block, 0); + /* + Note that even without releasing the cache lock it is possible that + the block is immediately selected for eviction by link_block() and + thus not added to the LRU ring. In this case we must not touch the + block any more. + */ + if (block->status & BLOCK_IN_EVICTION) + return; + + /* Error blocks are not put into the LRU ring. */ + if (!(block->status & BLOCK_ERROR)) + { + /* Here the block must be in the LRU ring. Unlink it again. */ + DBUG_ASSERT(block->next_used && block->prev_used && + *block->prev_used == block); + unlink_block(keycache, block); + } + if (block->temperature == BLOCK_WARM) + keycache->warm_blocks--; + block->temperature= BLOCK_COLD; + + /* Remove from file_blocks hash. */ + unlink_changed(block); + + /* Remove reference to block from hash table. */ + unlink_hash(keycache, block->hash_link); + block->hash_link= NULL; + + block->status= 0; + block->length= 0; + block->offset= keycache->key_cache_block_size; + + /* Enforced by unlink_changed(), but just to be sure. */ + DBUG_ASSERT(!block->next_changed && !block->prev_changed); + /* Enforced by unlink_block(): not in LRU ring nor in free_block_list. */ + DBUG_ASSERT(!block->next_used && !block->prev_used); + /* Insert the free block in the free list. */ + block->next_used= keycache->free_block_list; + keycache->free_block_list= block; + /* Keep track of the number of currently unused blocks. */ + keycache->blocks_unused++; + + /* All pending requests for this page must be resubmitted. */ + release_whole_queue(&block->wqueue[COND_FOR_SAVED]); +} + + +static int cmp_sec_link(BLOCK_LINK **a, BLOCK_LINK **b) +{ + return (((*a)->hash_link->diskpos < (*b)->hash_link->diskpos) ? -1 : + ((*a)->hash_link->diskpos > (*b)->hash_link->diskpos) ? 1 : 0); +} + + +/* + Flush a portion of changed blocks to disk, + free used blocks if requested +*/ + +static int flush_cached_blocks(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, BLOCK_LINK **cache, + BLOCK_LINK **end, + enum flush_type type) +{ + int error; + int last_errno= 0; + uint count= (uint) (end-cache); + + /* Don't lock the cache during the flush */ + mysql_mutex_unlock(&keycache->cache_lock); + /* + As all blocks referred in 'cache' are marked by BLOCK_IN_FLUSH + we are guarunteed no thread will change them + */ + my_qsort((uchar*) cache, count, sizeof(*cache), (qsort_cmp) cmp_sec_link); + + mysql_mutex_lock(&keycache->cache_lock); + /* + Note: Do not break the loop. We have registered a request on every + block in 'cache'. These must be unregistered by free_block() or + unreg_request(). + */ + for ( ; cache != end ; cache++) + { + BLOCK_LINK *block= *cache; + + /* + If the block contents is going to be changed, we abandon the flush + for this block. flush_key_blocks_int() will restart its search and + handle the block properly. + */ + if (!(block->status & BLOCK_FOR_UPDATE)) + { + /* Blocks coming here must have a certain status. */ + DBUG_ASSERT(block->hash_link); + DBUG_ASSERT(block->hash_link->block == block); + DBUG_ASSERT(block->hash_link->file == file); + DBUG_ASSERT((block->status & ~BLOCK_IN_EVICTION) == + (BLOCK_READ | BLOCK_IN_FLUSH | BLOCK_CHANGED | BLOCK_IN_USE)); + block->status|= BLOCK_IN_FLUSHWRITE; + mysql_mutex_unlock(&keycache->cache_lock); + error= (int)my_pwrite(file, block->buffer+block->offset, + block->length - block->offset, + block->hash_link->diskpos+ block->offset, + MYF(MY_NABP | MY_WAIT_IF_FULL)); + mysql_mutex_lock(&keycache->cache_lock); + keycache->global_cache_write++; + if (error) + { + block->status|= BLOCK_ERROR; + if (!last_errno) + last_errno= errno ? errno : -1; + } + block->status&= ~BLOCK_IN_FLUSHWRITE; + /* Block must not have changed status except BLOCK_FOR_UPDATE. */ + DBUG_ASSERT(block->hash_link); + DBUG_ASSERT(block->hash_link->block == block); + DBUG_ASSERT(block->hash_link->file == file); + DBUG_ASSERT((block->status & ~(BLOCK_FOR_UPDATE | BLOCK_IN_EVICTION)) == + (BLOCK_READ | BLOCK_IN_FLUSH | BLOCK_CHANGED | BLOCK_IN_USE)); + /* + Set correct status and link in right queue for free or later use. + free_block() must not see BLOCK_CHANGED and it may need to wait + for readers of the block. These should not see the block in the + wrong hash. If not freeing the block, we need to have it in the + right queue anyway. + */ + link_to_file_list(keycache, block, file, 1); + } + block->status&= ~BLOCK_IN_FLUSH; + /* + Let to proceed for possible waiting requests to write to the block page. + It might happen only during an operation to resize the key cache. + */ + release_whole_queue(&block->wqueue[COND_FOR_SAVED]); + /* type will never be FLUSH_IGNORE_CHANGED here */ + if (!(type == FLUSH_KEEP || type == FLUSH_FORCE_WRITE) && + !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH | + BLOCK_FOR_UPDATE))) + { + /* + Note that a request has been registered against the block in + flush_key_blocks_int(). + */ + free_block(keycache, thread_var, block); + } + else + { + /* + Link the block into the LRU ring if it's the last submitted + request for the block. This enables eviction for the block. + Note that a request has been registered against the block in + flush_key_blocks_int(). + */ + unreg_request(keycache, block, 1); + } + + } /* end of for ( ; cache != end ; cache++) */ + return last_errno; +} + + +/* + Flush all key blocks for a file to disk, but don't do any mutex locks. + + SYNOPSIS + flush_key_blocks_int() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + file handler for the file to flush to + flush_type type of the flush + + NOTES + This function doesn't do any mutex locks because it needs to be called both + from flush_key_blocks and flush_all_key_blocks (the later one does the + mutex lock in the resize_key_cache() function). + + We do only care about changed blocks that exist when the function is + entered. We do not guarantee that all changed blocks of the file are + flushed if more blocks change while this function is running. + + RETURN + 0 ok + 1 error +*/ + +static int flush_key_blocks_int(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, enum flush_type type) +{ + BLOCK_LINK *cache_buff[FLUSH_CACHE],**cache; + int last_errno= 0; + int last_errcnt= 0; + DBUG_ENTER("flush_key_blocks_int"); + DBUG_PRINT("enter",("file: %d blocks_used: %lu blocks_changed: %lu", + file, keycache->blocks_used, keycache->blocks_changed)); + + cache= cache_buff; + if (keycache->disk_blocks > 0) + { + /* Key cache exists and flush is not disabled */ + int error= 0; + uint count= FLUSH_CACHE; + BLOCK_LINK **pos,**end; + BLOCK_LINK *first_in_switch= NULL; + BLOCK_LINK *last_in_flush; + BLOCK_LINK *last_for_update; + BLOCK_LINK *block, *next; +#ifndef DBUG_OFF + uint cnt=0; +#endif + + if (type != FLUSH_IGNORE_CHANGED) + { + /* + Count how many key blocks we have to cache to be able + to flush all dirty pages with minimum seek moves + */ + count= 0; + for (block= keycache->changed_blocks[FILE_HASH(file)] ; + block ; + block= block->next_changed) + { + if ((block->hash_link->file == file) && + !(block->status & BLOCK_IN_FLUSH)) + { + count++; + DBUG_ASSERT(count<= keycache->blocks_used); + } + } + /* + Allocate a new buffer only if its bigger than the one we have. + Assure that we always have some entries for the case that new + changed blocks appear while we need to wait for something. + */ + if ((count > FLUSH_CACHE) && + !(cache= (BLOCK_LINK**) my_malloc(key_memory_KEY_CACHE, + sizeof(BLOCK_LINK*)*count, + MYF(0)))) + cache= cache_buff; + /* + After a restart there could be more changed blocks than now. + So we should not let count become smaller than the fixed buffer. + */ + if (cache == cache_buff) + count= FLUSH_CACHE; + } + + /* Retrieve the blocks and write them to a buffer to be flushed */ +restart: + last_in_flush= NULL; + last_for_update= NULL; + end= (pos= cache)+count; + for (block= keycache->changed_blocks[FILE_HASH(file)] ; + block ; + block= next) + { +#ifndef DBUG_OFF + cnt++; + DBUG_ASSERT(cnt <= keycache->blocks_used); +#endif + next= block->next_changed; + if (block->hash_link->file == file) + { + if (!(block->status & (BLOCK_IN_FLUSH | BLOCK_FOR_UPDATE))) + { + /* + Note: The special handling of BLOCK_IN_SWITCH is obsolete + since we set BLOCK_IN_FLUSH if the eviction includes a + flush. It can be removed in a later version. + */ + if (!(block->status & BLOCK_IN_SWITCH)) + { + /* + We care only for the blocks for which flushing was not + initiated by another thread and which are not in eviction. + Registering a request on the block unlinks it from the LRU + ring and protects against eviction. + */ + reg_requests(keycache, block, 1); + if (type != FLUSH_IGNORE_CHANGED) + { + /* It's not a temporary file */ + if (pos == end) + { + /* + This should happen relatively seldom. Remove the + request because we won't do anything with the block + but restart and pick it again in the next iteration. + */ + unreg_request(keycache, block, 0); + /* + This happens only if there is not enough + memory for the big block + */ + if ((error= flush_cached_blocks(keycache, thread_var, file, + cache, end, type))) + { + /* Do not loop infinitely trying to flush in vain. */ + if ((last_errno == error) && (++last_errcnt > 5)) + goto err; + last_errno= error; + } + /* + Restart the scan as some other thread might have changed + the changed blocks chain: the blocks that were in switch + state before the flush started have to be excluded + */ + goto restart; + } + /* + Mark the block with BLOCK_IN_FLUSH in order not to let + other threads to use it for new pages and interfere with + our sequence of flushing dirty file pages. We must not + set this flag before actually putting the block on the + write burst array called 'cache'. + */ + block->status|= BLOCK_IN_FLUSH; + /* Add block to the array for a write burst. */ + *pos++= block; + } + else + { + /* It's a temporary file */ + DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED)); + /* + free_block() must not be called with BLOCK_CHANGED. Note + that we must not change the BLOCK_CHANGED flag outside of + link_to_file_list() so that it is always in the correct + queue and the *blocks_changed counters are correct. + */ + link_to_file_list(keycache, block, file, 1); + if (!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))) + { + /* A request has been registered against the block above. */ + free_block(keycache, thread_var, block); + } + else + { + /* + Link the block into the LRU ring if it's the last + submitted request for the block. This enables eviction + for the block. A request has been registered against + the block above. + */ + unreg_request(keycache, block, 1); + } + } + } + else + { + /* + Link the block into a list of blocks 'in switch'. + + WARNING: Here we introduce a place where a changed block + is not in the changed_blocks hash! This is acceptable for + a BLOCK_IN_SWITCH. Never try this for another situation. + Other parts of the key cache code rely on changed blocks + being in the changed_blocks hash. + */ + unlink_changed(block); + link_changed(block, &first_in_switch); + } + } + else if (type != FLUSH_KEEP) + { + /* + During the normal flush at end of statement (FLUSH_KEEP) we + do not need to ensure that blocks in flush or update by + other threads are flushed. They will be flushed by them + later. In all other cases we must assure that we do not have + any changed block of this file in the cache when this + function returns. + */ + if (block->status & BLOCK_IN_FLUSH) + { + /* Remember the last block found to be in flush. */ + last_in_flush= block; + } + else + { + /* Remember the last block found to be selected for update. */ + last_for_update= block; + } + } + } + } + if (pos != cache) + { + if ((error= + flush_cached_blocks(keycache, thread_var, file, cache, pos, type))) + { + /* Do not loop inifnitely trying to flush in vain. */ + if ((last_errno == error) && (++last_errcnt > 5)) + goto err; + last_errno= error; + } + /* + Do not restart here during the normal flush at end of statement + (FLUSH_KEEP). We have now flushed at least all blocks that were + changed when entering this function. In all other cases we must + assure that we do not have any changed block of this file in the + cache when this function returns. + */ + if (type != FLUSH_KEEP) + goto restart; + } + if (last_in_flush) + { + /* + There are no blocks to be flushed by this thread, but blocks in + flush by other threads. Wait until one of the blocks is flushed. + Re-check the condition for last_in_flush. We may have unlocked + the cache_lock in flush_cached_blocks(). The state of the block + could have changed. + */ + if (last_in_flush->status & BLOCK_IN_FLUSH) + wait_on_queue(&last_in_flush->wqueue[COND_FOR_SAVED], + &keycache->cache_lock, thread_var); + /* Be sure not to lose a block. They may be flushed in random order. */ + goto restart; + } + if (last_for_update) + { + /* + There are no blocks to be flushed by this thread, but blocks for + update by other threads. Wait until one of the blocks is updated. + Re-check the condition for last_for_update. We may have unlocked + the cache_lock in flush_cached_blocks(). The state of the block + could have changed. + */ + if (last_for_update->status & BLOCK_FOR_UPDATE) + wait_on_queue(&last_for_update->wqueue[COND_FOR_REQUESTED], + &keycache->cache_lock, thread_var); + /* The block is now changed. Flush it. */ + goto restart; + } + + /* + Wait until the list of blocks in switch is empty. The threads that + are switching these blocks will relink them to clean file chains + while we wait and thus empty the 'first_in_switch' chain. + */ + while (first_in_switch) + { +#ifndef DBUG_OFF + cnt= 0; +#endif + wait_on_queue(&first_in_switch->wqueue[COND_FOR_SAVED], + &keycache->cache_lock, thread_var); +#ifndef DBUG_OFF + cnt++; + DBUG_ASSERT(cnt <= keycache->blocks_used); +#endif + /* + Do not restart here. We have flushed all blocks that were + changed when entering this function and were not marked for + eviction. Other threads have now flushed all remaining blocks in + the course of their eviction. + */ + } + + if (! (type == FLUSH_KEEP || type == FLUSH_FORCE_WRITE)) + { + BLOCK_LINK *last_for_update= NULL; + BLOCK_LINK *last_in_switch= NULL; + uint total_found= 0; + uint found; + + /* + Finally free all clean blocks for this file. + During resize this may be run by two threads in parallel. + */ + do + { + found= 0; + for (block= keycache->file_blocks[FILE_HASH(file)] ; + block ; + block= next) + { + /* Remember the next block. After freeing we cannot get at it. */ + next= block->next_changed; + + /* Changed blocks cannot appear in the file_blocks hash. */ + DBUG_ASSERT(!(block->status & BLOCK_CHANGED)); + if (block->hash_link->file == file) + { + /* We must skip blocks that will be changed. */ + if (block->status & BLOCK_FOR_UPDATE) + { + last_for_update= block; + continue; + } + + /* + We must not free blocks in eviction (BLOCK_IN_EVICTION | + BLOCK_IN_SWITCH) or blocks intended to be freed + (BLOCK_REASSIGNED). + */ + if (!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH | + BLOCK_REASSIGNED))) + { + struct st_hash_link *next_hash_link= NULL; + my_off_t next_diskpos= 0; + File next_file= 0; + uint next_status= 0; + uint hash_requests= 0; + + total_found++; + found++; + DBUG_ASSERT(found <= keycache->blocks_used); + + /* + Register a request. This unlinks the block from the LRU + ring and protects it against eviction. This is required + by free_block(). + */ + reg_requests(keycache, block, 1); + + /* + free_block() may need to wait for readers of the block. + This is the moment where the other thread can move the + 'next' block from the chain. free_block() needs to wait + if there are requests for the block pending. + */ + if (next && (hash_requests= block->hash_link->requests)) + { + /* Copy values from the 'next' block and its hash_link. */ + next_status= next->status; + next_hash_link= next->hash_link; + next_diskpos= next_hash_link->diskpos; + next_file= next_hash_link->file; + DBUG_ASSERT(next == next_hash_link->block); + } + + free_block(keycache, thread_var, block); + /* + If we had to wait and the state of the 'next' block + changed, break the inner loop. 'next' may no longer be + part of the current chain. + + We do not want to break the loop after every free_block(), + not even only after waits. The chain might be quite long + and contain blocks for many files. Traversing it again and + again to find more blocks for this file could become quite + inefficient. + */ + if (next && hash_requests && + ((next_status != next->status) || + (next_hash_link != next->hash_link) || + (next_file != next_hash_link->file) || + (next_diskpos != next_hash_link->diskpos) || + (next != next_hash_link->block))) + break; + } + else + { + last_in_switch= block; + } + } + } /* end for block in file_blocks */ + } while (found); + + /* + If any clean block has been found, we may have waited for it to + become free. In this case it could be possible that another clean + block became dirty. This is possible if the write request existed + before the flush started (BLOCK_FOR_UPDATE). Re-check the hashes. + */ + if (total_found) + goto restart; + + /* + To avoid an infinite loop, wait until one of the blocks marked + for update is updated. + */ + if (last_for_update) + { + /* We did not wait. Block must not have changed status. */ + DBUG_ASSERT(last_for_update->status & BLOCK_FOR_UPDATE); + wait_on_queue(&last_for_update->wqueue[COND_FOR_REQUESTED], + &keycache->cache_lock, thread_var); + goto restart; + } + + /* + To avoid an infinite loop wait until one of the blocks marked + for eviction is switched. + */ + if (last_in_switch) + { + /* We did not wait. Block must not have changed status. */ + DBUG_ASSERT(last_in_switch->status & (BLOCK_IN_EVICTION | + BLOCK_IN_SWITCH | + BLOCK_REASSIGNED)); + wait_on_queue(&last_in_switch->wqueue[COND_FOR_SAVED], + &keycache->cache_lock, thread_var); + goto restart; + } + + } /* if (! (type == FLUSH_KEEP || type == FLUSH_FORCE_WRITE)) */ + + } /* if (keycache->disk_blocks > 0 */ + +err: + if (cache != cache_buff) + my_free(cache); + if (last_errno) + errno=last_errno; /* Return first error */ + DBUG_RETURN(last_errno != 0); +} + + +/* + Flush all blocks for a file to disk + + SYNOPSIS + + flush_key_blocks() + keycache pointer to a key cache data structure + thread_var pointer to thread specific variables + file handler for the file to flush to + flush_type type of the flush + + RETURN + 0 ok + 1 error +*/ + +int flush_key_blocks(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var, + File file, enum flush_type type) +{ + int res= 0; + DBUG_ENTER("flush_key_blocks"); + DBUG_PRINT("enter", ("keycache: 0x%lx", (long) keycache)); + + if (!keycache->key_cache_inited) + DBUG_RETURN(0); + + mysql_mutex_lock(&keycache->cache_lock); + /* While waiting for lock, keycache could have been ended. */ + if (keycache->disk_blocks > 0) + { + inc_counter_for_resize_op(keycache); + res= flush_key_blocks_int(keycache, thread_var, file, type); + dec_counter_for_resize_op(keycache); + } + mysql_mutex_unlock(&keycache->cache_lock); + DBUG_RETURN(res); +} + + +/* + Flush all blocks in the key cache to disk. + + SYNOPSIS + flush_all_key_blocks() + keycache pointer to key cache root structure + thread_var pointer to thread specific variables + + DESCRIPTION + + Flushing of the whole key cache is done in two phases. + + 1. Flush all changed blocks, waiting for them if necessary. Loop + until there is no changed block left in the cache. + + 2. Free all clean blocks. Normally this means free all blocks. The + changed blocks were flushed in phase 1 and became clean. However we + may need to wait for blocks that are read by other threads. While we + wait, a clean block could become changed if that operation started + before the resize operation started. To be safe we must restart at + phase 1. + + When we can run through the changed_blocks and file_blocks hashes + without finding a block any more, then we are done. + + Note that we hold keycache->cache_lock all the time unless we need + to wait for something. + + RETURN + 0 OK + != 0 Error +*/ + +static int flush_all_key_blocks(KEY_CACHE *keycache, + st_keycache_thread_var *thread_var) +{ + BLOCK_LINK *block; + uint total_found; + uint found; + uint idx; + DBUG_ENTER("flush_all_key_blocks"); + + do + { + mysql_mutex_assert_owner(&keycache->cache_lock); + total_found= 0; + + /* + Phase1: Flush all changed blocks, waiting for them if necessary. + Loop until there is no changed block left in the cache. + */ + do + { + found= 0; + /* Step over the whole changed_blocks hash array. */ + for (idx= 0; idx < CHANGED_BLOCKS_HASH; idx++) + { + /* + If an array element is non-empty, use the first block from its + chain to find a file for flush. All changed blocks for this + file are flushed. So the same block will not appear at this + place again with the next iteration. New writes for blocks are + not accepted during the flush. If multiple files share the + same hash bucket, one of them will be flushed per iteration + of the outer loop of phase 1. + */ + if ((block= keycache->changed_blocks[idx])) + { + found++; + /* + Flush dirty blocks but do not free them yet. They can be used + for reading until all other blocks are flushed too. + */ + if (flush_key_blocks_int(keycache, thread_var, + block->hash_link->file, + FLUSH_FORCE_WRITE)) + DBUG_RETURN(1); + } + } + + } while (found); + + /* + Phase 2: Free all clean blocks. Normally this means free all + blocks. The changed blocks were flushed in phase 1 and became + clean. However we may need to wait for blocks that are read by + other threads. While we wait, a clean block could become changed + if that operation started before the resize operation started. To + be safe we must restart at phase 1. + */ + do + { + found= 0; + /* Step over the whole file_blocks hash array. */ + for (idx= 0; idx < CHANGED_BLOCKS_HASH; idx++) + { + /* + If an array element is non-empty, use the first block from its + chain to find a file for flush. All blocks for this file are + freed. So the same block will not appear at this place again + with the next iteration. If multiple files share the + same hash bucket, one of them will be flushed per iteration + of the outer loop of phase 2. + */ + if ((block= keycache->file_blocks[idx])) + { + total_found++; + found++; + if (flush_key_blocks_int(keycache, thread_var, + block->hash_link->file, + FLUSH_RELEASE)) + DBUG_RETURN(1); + } + } + + } while (found); + + /* + If any clean block has been found, we may have waited for it to + become free. In this case it could be possible that another clean + block became dirty. This is possible if the write request existed + before the resize started (BLOCK_FOR_UPDATE). Re-check the hashes. + */ + } while (total_found); + +#ifndef DBUG_OFF + /* Now there should not exist any block any more. */ + for (idx= 0; idx < CHANGED_BLOCKS_HASH; idx++) + { + DBUG_ASSERT(!keycache->changed_blocks[idx]); + DBUG_ASSERT(!keycache->file_blocks[idx]); + } +#endif + + DBUG_RETURN(0); +} + + +/* + Reset the counters of a key cache. + + SYNOPSIS + reset_key_cache_counters() + name the name of a key cache + key_cache pointer to the key kache to be reset + + DESCRIPTION + This procedure is used by process_key_caches() to reset the counters of all + currently used key caches, both the default one and the named ones. + + RETURN + 0 on success (always because it can't fail) +*/ + +int reset_key_cache_counters(const char *name MY_ATTRIBUTE((unused)), + KEY_CACHE *key_cache) +{ + DBUG_ENTER("reset_key_cache_counters"); + if (!key_cache->key_cache_inited) + { + DBUG_PRINT("info", ("Key cache %s not initialized.", name)); + DBUG_RETURN(0); + } + DBUG_PRINT("info", ("Resetting counters for key cache %s.", name)); + + key_cache->global_blocks_changed= 0; /* Key_blocks_not_flushed */ + key_cache->global_cache_r_requests= 0; /* Key_read_requests */ + key_cache->global_cache_read= 0; /* Key_reads */ + key_cache->global_cache_w_requests= 0; /* Key_write_requests */ + key_cache->global_cache_write= 0; /* Key_writes */ + DBUG_RETURN(0); +} + + +#if !defined(DBUG_OFF) +#define F_B_PRT(_f_, _v_) DBUG_PRINT("assert_fail", (_f_, _v_)) + +static int fail_block(BLOCK_LINK *block) +{ + F_B_PRT("block->next_used: %lx\n", (ulong) block->next_used); + F_B_PRT("block->prev_used: %lx\n", (ulong) block->prev_used); + F_B_PRT("block->next_changed: %lx\n", (ulong) block->next_changed); + F_B_PRT("block->prev_changed: %lx\n", (ulong) block->prev_changed); + F_B_PRT("block->hash_link: %lx\n", (ulong) block->hash_link); + F_B_PRT("block->status: %u\n", block->status); + F_B_PRT("block->length: %u\n", block->length); + F_B_PRT("block->offset: %u\n", block->offset); + F_B_PRT("block->requests: %u\n", block->requests); + F_B_PRT("block->temperature: %u\n", block->temperature); + return 0; /* Let the assert fail. */ +} + +static int fail_hlink(HASH_LINK *hlink) +{ + F_B_PRT("hlink->next: %lx\n", (ulong) hlink->next); + F_B_PRT("hlink->prev: %lx\n", (ulong) hlink->prev); + F_B_PRT("hlink->block: %lx\n", (ulong) hlink->block); + F_B_PRT("hlink->diskpos: %lu\n", (ulong) hlink->diskpos); + F_B_PRT("hlink->file: %d\n", hlink->file); + return 0; /* Let the assert fail. */ +} + +static int cache_empty(KEY_CACHE *keycache) +{ + int errcnt= 0; + int idx; + if (keycache->disk_blocks <= 0) + return 1; + for (idx= 0; idx < keycache->disk_blocks; idx++) + { + BLOCK_LINK *block= keycache->block_root + idx; + if (block->status || block->requests || block->hash_link) + { + my_message_local(INFORMATION_LEVEL, "block index: %u", idx); + fail_block(block); + errcnt++; + } + } + for (idx= 0; idx < keycache->hash_links; idx++) + { + HASH_LINK *hash_link= keycache->hash_link_root + idx; + if (hash_link->requests || hash_link->block) + { + my_message_local(INFORMATION_LEVEL, "hash_link index: %u", idx); + fail_hlink(hash_link); + errcnt++; + } + } + if (errcnt) + { + my_message_local(INFORMATION_LEVEL, "blocks: %d used: %lu", + keycache->disk_blocks, keycache->blocks_used); + my_message_local(INFORMATION_LEVEL, "hash_links: %d used: %d", + keycache->hash_links, keycache->hash_links_used); + } + return !errcnt; +} +#endif + diff --git a/mysql/mysys/mf_keycaches.c b/mysql/mysys/mf_keycaches.c new file mode 100644 index 0000000..8622105 --- /dev/null +++ b/mysql/mysys/mf_keycaches.c @@ -0,0 +1,363 @@ +/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Handling of multiple key caches + + The idea is to have a thread safe hash on the table name, + with a default key cache value that is returned if the table name is not in + the cache. +*/ + +#include "mysys_priv.h" +#include +#include +#include + +/***************************************************************************** + General functions to handle SAFE_HASH objects. + + A SAFE_HASH object is used to store the hash, the lock and default value + needed by the rest of the key cache code. + This is a separate struct to make it easy to later reuse the code for other + purposes + + All entries are linked in a list to allow us to traverse all elements + and delete selected ones. (HASH doesn't allow any easy ways to do this). +*****************************************************************************/ + +/* + Struct to store a key and pointer to object +*/ + +typedef struct st_safe_hash_entry +{ + uchar *key; + uint length; + uchar *data; + struct st_safe_hash_entry *next, **prev; +} SAFE_HASH_ENTRY; + + +typedef struct st_safe_hash_with_default +{ + mysql_rwlock_t lock; + HASH hash; + uchar *default_value; + SAFE_HASH_ENTRY *root; +} SAFE_HASH; + + +/* + Free a SAFE_HASH_ENTRY + + This function is called by the hash object on delete +*/ + +static void safe_hash_entry_free(SAFE_HASH_ENTRY *entry) +{ + DBUG_ENTER("free_assign_entry"); + my_free(entry); + DBUG_VOID_RETURN; +} + + +/* Get key and length for a SAFE_HASH_ENTRY */ + +static uchar *safe_hash_entry_get(SAFE_HASH_ENTRY *entry, size_t *length, + my_bool not_used MY_ATTRIBUTE((unused))) +{ + *length=entry->length; + return (uchar*) entry->key; +} + + +/* + Init a SAFE_HASH object + + SYNOPSIS + safe_hash_init() + hash safe_hash handler + elements Expected max number of elements + default_value default value + + NOTES + In case of error we set hash->default_value to 0 to allow one to call + safe_hash_free on an object that couldn't be initialized. + + RETURN + 0 ok + 1 error +*/ + +static my_bool safe_hash_init(SAFE_HASH *hash, uint elements, + uchar *default_value) +{ + DBUG_ENTER("safe_hash"); + if (my_hash_init(&hash->hash, &my_charset_bin, elements, + 0, 0, (my_hash_get_key) safe_hash_entry_get, + (void (*)(void*)) safe_hash_entry_free, 0, + key_memory_SAFE_HASH_ENTRY)) + { + hash->default_value= 0; + DBUG_RETURN(1); + } + mysql_rwlock_init(key_SAFE_HASH_lock, &hash->lock); + hash->default_value= default_value; + hash->root= 0; + DBUG_RETURN(0); +} + + +/* + Free a SAFE_HASH object + + NOTES + This is safe to call on any object that has been sent to safe_hash_init() +*/ + +static void safe_hash_free(SAFE_HASH *hash) +{ + /* + Test if safe_hash_init succeeded. This will also guard us against multiple + free calls. + */ + if (hash->default_value) + { + my_hash_free(&hash->hash); + mysql_rwlock_destroy(&hash->lock); + hash->default_value=0; + } +} + +/* + Return the value stored for a key or default value if no key +*/ + +static uchar *safe_hash_search(SAFE_HASH *hash, const uchar *key, uint length) +{ + uchar *result; + DBUG_ENTER("safe_hash_search"); + mysql_rwlock_rdlock(&hash->lock); + result= my_hash_search(&hash->hash, key, length); + mysql_rwlock_unlock(&hash->lock); + if (!result) + result= hash->default_value; + else + result= ((SAFE_HASH_ENTRY*) result)->data; + DBUG_PRINT("exit",("data: 0x%lx", (long) result)); + DBUG_RETURN(result); +} + + +/* + Associate a key with some data + + SYONOPSIS + safe_hash_set() + hash Hash handle + key key (path to table etc..) + length Length of key + data data to to associate with the data + + NOTES + This can be used both to insert a new entry and change an existing + entry. + If one associates a key with the default key cache, the key is deleted + + RETURN + 0 ok + 1 error (Can only be EOM). In this case my_message() is called. +*/ + +static my_bool safe_hash_set(SAFE_HASH *hash, const uchar *key, uint length, + uchar *data) +{ + SAFE_HASH_ENTRY *entry; + my_bool error= 0; + DBUG_ENTER("safe_hash_set"); + DBUG_PRINT("enter",("key: %.*s data: 0x%lx", length, key, (long) data)); + + mysql_rwlock_wrlock(&hash->lock); + entry= (SAFE_HASH_ENTRY*) my_hash_search(&hash->hash, key, length); + + if (data == hash->default_value) + { + /* + The key is to be associated with the default entry. In this case + we can just delete the entry (if it existed) from the hash as a + search will return the default entry + */ + if (!entry) /* nothing to do */ + goto end; + /* unlink entry from list */ + if ((*entry->prev= entry->next)) + entry->next->prev= entry->prev; + my_hash_delete(&hash->hash, (uchar*) entry); + goto end; + } + if (entry) + { + /* Entry existed; Just change the pointer to point at the new data */ + entry->data= data; + } + else + { + if (!(entry= (SAFE_HASH_ENTRY *) my_malloc(key_memory_SAFE_HASH_ENTRY, + sizeof(*entry) + length, + MYF(MY_WME)))) + { + error= 1; + goto end; + } + entry->key= (uchar*) (entry +1); + memcpy((char*) entry->key, (char*) key, length); + entry->length= length; + entry->data= data; + /* Link entry to list */ + if ((entry->next= hash->root)) + entry->next->prev= &entry->next; + entry->prev= &hash->root; + hash->root= entry; + if (my_hash_insert(&hash->hash, (uchar*) entry)) + { + /* This can only happen if hash got out of memory */ + my_free(entry); + error= 1; + goto end; + } + } + +end: + mysql_rwlock_unlock(&hash->lock); + DBUG_RETURN(error); +} + + +/* + Change all entres with one data value to another data value + + SYONOPSIS + safe_hash_change() + hash Hash handle + old_data Old data + new_data Change all 'old_data' to this + + NOTES + We use the linked list to traverse all elements in the hash as + this allows us to delete elements in the case where 'new_data' is the + default value. +*/ + +static void safe_hash_change(SAFE_HASH *hash, uchar *old_data, uchar *new_data) +{ + SAFE_HASH_ENTRY *entry, *next; + DBUG_ENTER("safe_hash_set"); + + mysql_rwlock_wrlock(&hash->lock); + + for (entry= hash->root ; entry ; entry= next) + { + next= entry->next; + if (entry->data == old_data) + { + if (new_data == hash->default_value) + { + if ((*entry->prev= entry->next)) + entry->next->prev= entry->prev; + my_hash_delete(&hash->hash, (uchar*) entry); + } + else + entry->data= new_data; + } + } + + mysql_rwlock_unlock(&hash->lock); + DBUG_VOID_RETURN; +} + + +/***************************************************************************** + Functions to handle the key cache objects +*****************************************************************************/ + +/* Variable to store all key cache objects */ +static SAFE_HASH key_cache_hash; + + +my_bool multi_keycache_init(void) +{ + return safe_hash_init(&key_cache_hash, 16, (uchar*) dflt_key_cache); +} + + +void multi_keycache_free(void) +{ + safe_hash_free(&key_cache_hash); +} + +/* + Get a key cache to be used for a specific table. + + SYNOPSIS + multi_key_cache_search() + key key to find (usually table path) + uint length Length of key. + + NOTES + This function is coded in such a way that we will return the + default key cache even if one never called multi_keycache_init. + This will ensure that it works with old MyISAM clients. + + RETURN + key cache to use +*/ + +KEY_CACHE *multi_key_cache_search(uchar *key, uint length) +{ + if (!key_cache_hash.hash.records) + return dflt_key_cache; + return (KEY_CACHE*) safe_hash_search(&key_cache_hash, key, length); +} + + +/* + Assosiate a key cache with a key + + + SYONOPSIS + multi_key_cache_set() + key key (path to table etc..) + length Length of key + key_cache cache to assococite with the table + + NOTES + This can be used both to insert a new entry and change an existing + entry +*/ + + +my_bool multi_key_cache_set(const uchar *key, uint length, + KEY_CACHE *key_cache) +{ + return safe_hash_set(&key_cache_hash, key, length, (uchar*) key_cache); +} + + +void multi_key_cache_change(KEY_CACHE *old_data, + KEY_CACHE *new_data) +{ + safe_hash_change(&key_cache_hash, (uchar*) old_data, (uchar*) new_data); +} diff --git a/mysql/mysys/mf_loadpath.c b/mysql/mysys/mf_loadpath.c new file mode 100644 index 0000000..41fb143 --- /dev/null +++ b/mysql/mysys/mf_loadpath.c @@ -0,0 +1,72 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +/** + Returns full load-path for a file. to may be = path. + + @param to Pointer to destination which will hold the expanded path. + @param path Pointer to buffer containing the supplied path. + @param own_path_prefix Prefix to be appended to path. + + @retval to Pointer to the supplied destination buffer + that will hold the full load-path. +*/ + +char * my_load_path(char * to, const char *path, + const char *own_path_prefix) +{ + char buff[FN_REFLEN]; + int cur_prefix_len; + const char *buff_ptr= path; + + DBUG_ENTER("my_load_path"); + DBUG_PRINT("enter",("path: %s prefix: %s",path, + own_path_prefix ? own_path_prefix : "")); + + cur_prefix_len= (path[0] == FN_CURLIB && path[1] == FN_LIBCHAR)?2:0; + + // If path starts with current dir or parent-dir unpack path. + if ( cur_prefix_len || is_prefix(path, FN_PARENTDIR)) + { + if ((strlen(path) + cur_prefix_len) < FN_REFLEN && + !my_getwd(buff, (uint) (FN_REFLEN - strlen(path) + cur_prefix_len), MYF(0))) + { + (void) strncat(buff, path + cur_prefix_len, FN_REFLEN - strlen(buff) - 1); + buff_ptr= buff; + } + } + /* + Prepend the path with own_path_prefix if own_path_prefix is + specified and path doesn't start with home directory character + and path is not a hard-path. + If path is hard path or home dir, return the path. + */ + else if (own_path_prefix != NULL && + !(path[0] == FN_HOMELIB && path[1] == FN_LIBCHAR) && + !test_if_hard_path(path)) + { + (void) strxnmov(buff, sizeof(buff)-1, own_path_prefix, path, NullS); + buff_ptr= buff; + } + + my_stpnmov(to, buff_ptr, FN_REFLEN); + to[FN_REFLEN-1]= '\0'; + DBUG_PRINT("exit",("to: %s",to)); + DBUG_RETURN(to); +} /* my_load_path */ diff --git a/mysql/mysys/mf_pack.c b/mysql/mysys/mf_pack.c new file mode 100644 index 0000000..bfdce0e --- /dev/null +++ b/mysql/mysys/mf_pack.c @@ -0,0 +1,409 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#ifdef HAVE_PWD_H +#include +#endif + +static char * expand_tilde(char **path); + + /* Pack a dirname ; Changes HOME to ~/ and current dev to ./ */ + /* from is a dirname (from dirname() ?) ending with FN_LIBCHAR */ + /* to may be == from */ + +void pack_dirname(char * to, const char *from) +{ + int cwd_err; + size_t d_length, length, buff_length= 0; + char * start; + char buff[FN_REFLEN]; + DBUG_ENTER("pack_dirname"); + + (void) intern_filename(to,from); /* Change to intern name */ + +#ifdef FN_DEVCHAR + if ((start=strrchr(to,FN_DEVCHAR)) != 0) /* Skip device part */ + start++; + else +#endif + start=to; + + if (!(cwd_err= my_getwd(buff,FN_REFLEN,MYF(0)))) + { + buff_length= strlen(buff); + d_length= (size_t) (start-to); + if ((start == to || + (buff_length == d_length && !memcmp(buff,start,d_length))) && + *start != FN_LIBCHAR && *start) + { /* Put current dir before */ + bchange((uchar*) to, d_length, (uchar*) buff, buff_length, strlen(to)+1); + } + } + + if ((d_length= cleanup_dirname(to,to)) != 0) + { + length=0; + if (home_dir) + { + length= strlen(home_dir); + if (home_dir[length-1] == FN_LIBCHAR) + length--; /* Don't test last '/' */ + } + if (length > 1 && length < d_length) + { /* test if /xx/yy -> ~/yy */ + if (memcmp(to,home_dir,length) == 0 && to[length] == FN_LIBCHAR) + { + to[0]=FN_HOMELIB; /* Filename begins with ~ */ + (void) my_stpmov(to+1,to+length); + } + } + if (! cwd_err) + { /* Test if cwd is ~/... */ + if (length > 1 && length < buff_length) + { + if (memcmp(buff,home_dir,length) == 0 && buff[length] == FN_LIBCHAR) + { + buff[0]=FN_HOMELIB; + (void) my_stpmov(buff+1,buff+length); + } + } + if (is_prefix(to,buff)) + { + length= strlen(buff); + if (to[length]) + (void) my_stpmov(to,to+length); /* Remove everything before */ + else + { + to[0]= FN_CURLIB; /* Put ./ instead of cwd */ + to[1]= FN_LIBCHAR; + to[2]= '\0'; + } + } + } + } + DBUG_PRINT("exit",("to: '%s'",to)); + DBUG_VOID_RETURN; +} /* pack_dirname */ + + +/* + remove unwanted chars from dirname + + SYNOPSIS + cleanup_dirname() + to Store result here + from Dirname to fix. May be same as to + + IMPLEMENTATION + "/../" removes prev dir + "/~/" removes all before ~ + //" is same as "/", except on Win32 at start of a file + "/./" is removed + Unpacks home_dir if "~/.." used + Unpacks current dir if if "./.." used + + RETURN + # length of new name +*/ + +size_t cleanup_dirname(char *to, const char *from) +{ + size_t length; + char *pos; + char *from_ptr; + char *start; + char parent[5], /* for "FN_PARENTDIR" */ + buff[FN_REFLEN+1],*end_parentdir; +#ifdef _WIN32 + CHARSET_INFO *fs= fs_character_set(); +#endif + DBUG_ENTER("cleanup_dirname"); + DBUG_PRINT("enter",("from: '%s'",from)); + + start=buff; + from_ptr=(char *) from; +#ifdef FN_DEVCHAR + if ((pos=strrchr(from_ptr,FN_DEVCHAR)) != 0) + { /* Skip device part */ + length=(size_t) (pos-from_ptr)+1; + start=my_stpnmov(buff,from_ptr,length); from_ptr+=length; + } +#endif + + parent[0]=FN_LIBCHAR; + length=(size_t) (my_stpcpy(parent+1,FN_PARENTDIR)-parent); + for (pos=start ; (*pos= *from_ptr++) != 0 ; pos++) + { +#ifdef _WIN32 + uint l; + if (use_mb(fs) && (l= my_ismbchar(fs, from_ptr - 1, from_ptr + 2))) + { + for (l-- ; l ; *++pos= *from_ptr++, l--); + start= pos + 1; /* Don't look inside multi-byte char */ + continue; + } +#endif + if (*pos == '/') + *pos = FN_LIBCHAR; + if (*pos == FN_LIBCHAR) + { + if ((size_t) (pos-start) > length && memcmp(pos-length,parent,length) == 0) + { /* If .../../; skip prev */ + pos-=length; + if (pos != start) + { /* not /../ */ + pos--; + if (*pos == FN_HOMELIB && (pos == start || pos[-1] == FN_LIBCHAR)) + { + if (!home_dir) + { + pos+=length+1; /* Don't unpack ~/.. */ + continue; + } + pos=my_stpcpy(buff,home_dir)-1; /* Unpacks ~/.. */ + if (*pos == FN_LIBCHAR) + pos--; /* home ended with '/' */ + } + if (*pos == FN_CURLIB && (pos == start || pos[-1] == FN_LIBCHAR)) + { + if (my_getwd(curr_dir,FN_REFLEN,MYF(0))) + { + pos+=length+1; /* Don't unpack ./.. */ + continue; + } + pos=my_stpcpy(buff,curr_dir)-1; /* Unpacks ./.. */ + if (*pos == FN_LIBCHAR) + pos--; /* home ended with '/' */ + } + end_parentdir=pos; + while (pos >= start && *pos != FN_LIBCHAR) /* remove prev dir */ + pos--; + if (pos[1] == FN_HOMELIB || + (pos >= start && memcmp(pos, parent, length) == 0)) + { /* Don't remove ~user/ */ + pos=my_stpcpy(end_parentdir+1,parent); + *pos=FN_LIBCHAR; + continue; + } + } + } + else if ((size_t) (pos-start) == length-1 && + !memcmp(start,parent+1,length-1)) + start=pos; /* Starts with "../" */ + else if (pos-start > 0 && pos[-1] == FN_LIBCHAR) + { +#ifdef FN_NETWORK_DRIVES + if (pos-start != 1) +#endif + pos--; /* Remove dupplicate '/' */ + } + else if (pos-start > 1 && pos[-1] == FN_CURLIB && pos[-2] == FN_LIBCHAR) + pos-=2; /* Skip /./ */ + else if (pos > buff+1 && pos[-1] == FN_HOMELIB && pos[-2] == FN_LIBCHAR) + { /* Found ..../~/ */ + buff[0]=FN_HOMELIB; + buff[1]=FN_LIBCHAR; + start=buff; pos=buff+1; + } + } + } + (void) my_stpcpy(to,buff); + DBUG_PRINT("exit",("to: '%s'",to)); + DBUG_RETURN((size_t) (pos-buff)); +} /* cleanup_dirname */ + + +/** + Convert a directory name to a format which can be compared as strings + + @param to result buffer, FN_REFLEN chars in length; may be == from + @param from 'packed' directory name, in whatever format + @returns size of the normalized name + + @details + - Ensures that last char is FN_LIBCHAR, unless it is FN_DEVCHAR + - Uses cleanup_dirname + + It does *not* expand ~/ (although, see cleanup_dirname). Nor does it do + any case folding. All case-insensitive normalization should be done by + the caller. +*/ + +size_t normalize_dirname(char *to, const char *from) +{ + size_t length; + char buff[FN_REFLEN]; + DBUG_ENTER("normalize_dirname"); + + /* + Despite the name, this actually converts the name to the system's + format (TODO: name this properly). + */ + (void) intern_filename(buff, from); + length= strlen(buff); /* Fix that '/' is last */ + if (length && +#ifdef FN_DEVCHAR + buff[length - 1] != FN_DEVCHAR && +#endif + buff[length - 1] != FN_LIBCHAR && buff[length - 1] != '/') + { + /* we need reserve 2 bytes for the trailing slash and the zero */ + if (length >= sizeof (buff) - 1) + length= sizeof (buff) - 2; + buff[length]= FN_LIBCHAR; + buff[length + 1]= '\0'; + } + + length=cleanup_dirname(to, buff); + + DBUG_RETURN(length); +} + + +/** + Fixes a directory name so that can be used by open() + + @param to Result buffer, FN_REFLEN characters. May be == from + @param from 'Packed' directory name (may contain ~) + + @details + - Uses normalize_dirname() + - Expands ~/... to home_dir/... + - Changes a UNIX filename to system filename (replaces / with \ on windows) + + @returns + Length of new directory name (= length of to) +*/ + +size_t unpack_dirname(char * to, const char *from) +{ + size_t length, h_length; + char buff[FN_REFLEN+1+4],*suffix,*tilde_expansion; + DBUG_ENTER("unpack_dirname"); + + length= normalize_dirname(buff, from); + + if (buff[0] == FN_HOMELIB) + { + suffix=buff+1; tilde_expansion=expand_tilde(&suffix); + if (tilde_expansion) + { + length-= (size_t) (suffix-buff)-1; + if (length+(h_length= strlen(tilde_expansion)) <= FN_REFLEN) + { + if ((h_length > 0) && (tilde_expansion[h_length-1] == FN_LIBCHAR)) + h_length--; + memmove(buff + h_length, suffix, length); + memmove(buff, tilde_expansion, h_length); + } + } + } + DBUG_RETURN(system_filename(to,buff)); /* Fix for open */ +} /* unpack_dirname */ + + + /* Expand tilde to home or user-directory */ + /* Path is reset to point at FN_LIBCHAR after ~xxx */ + +static char * expand_tilde(char **path) +{ + if (path[0][0] == FN_LIBCHAR) + return home_dir; /* ~/ expanded to home */ +#ifdef HAVE_GETPWNAM + { + char *str,save; + struct passwd *user_entry; + + if (!(str=strchr(*path,FN_LIBCHAR))) + str=strend(*path); + save= *str; *str= '\0'; + user_entry=getpwnam(*path); + *str=save; + endpwent(); + if (user_entry) + { + *path=str; + return user_entry->pw_dir; + } + } +#endif + return (char *) 0; +} + + +/* + Fix filename so it can be used by open, create + + SYNOPSIS + unpack_filename() + to Store result here. Must be at least of size FN_REFLEN. + from Filename in unix format (with ~) + + RETURN + # length of to + + NOTES + to may be == from + ~ will only be expanded if total length < FN_REFLEN +*/ + + +size_t unpack_filename(char * to, const char *from) +{ + size_t length, n_length, buff_length; + char buff[FN_REFLEN]; + DBUG_ENTER("unpack_filename"); + + length=dirname_part(buff, from, &buff_length);/* copy & convert dirname */ + n_length=unpack_dirname(buff,buff); + if (n_length+strlen(from+length) < FN_REFLEN) + { + (void) my_stpcpy(buff+n_length,from+length); + length= system_filename(to,buff); /* Fix to usably filename */ + } + else + length= system_filename(to,from); /* Fix to usably filename */ + DBUG_RETURN(length); +} /* unpack_filename */ + + + /* Convert filename (unix standard) to system standard */ + /* Used before system command's like open(), create() .. */ + /* Returns used length of to; total length should be FN_REFLEN */ + +size_t system_filename(char *to, const char *from) +{ + return (size_t) (strmake(to,from,FN_REFLEN-1)-to); +} + + /* Fix a filename to intern (UNIX format) */ + +char *intern_filename(char *to, const char *from) +{ + size_t length, to_length; + char buff[FN_REFLEN]; + if (from == to) + { /* Dirname may destroy from */ + (void) my_stpnmov(buff, from, FN_REFLEN); + from=buff; + } + length= dirname_part(to, from, &to_length); /* Copy dirname & fix chars */ + (void) my_stpnmov(to + to_length, from + length, FN_REFLEN - to_length); + return (to); +} /* intern_filename */ diff --git a/mysql/mysys/mf_path.c b/mysql/mysys/mf_path.c new file mode 100644 index 0000000..d3de3b2 --- /dev/null +++ b/mysql/mysys/mf_path.c @@ -0,0 +1,121 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +static char *find_file_in_path(char *to,const char *name); + + /* Finds where program can find it's files. + pre_pathname is found by first locking at progname (argv[0]). + if progname contains path the path is returned. + else if progname is found in path, return it + else if progname is given and POSIX environment variable "_" is set + then path is taken from "_". + If filename doesn't contain a path append MY_BASEDIR_VERSION or + MY_BASEDIR if defined, else append "/my/running". + own_path_name_part is concatinated to result. + my_path puts result in to and returns to */ + +char * my_path(char * to, const char *progname, + const char *own_pathname_part) +{ + char *start, *end, *prog; + size_t to_length; + DBUG_ENTER("my_path"); + + start=to; /* Return this */ + if (progname && (dirname_part(to, progname, &to_length) || + find_file_in_path(to,progname) || + ((prog=getenv("_")) != 0 && + dirname_part(to, prog, &to_length)))) + { + (void) intern_filename(to,to); + if (!test_if_hard_path(to)) + { + if (!my_getwd(curr_dir,FN_REFLEN,MYF(0))) + bchange((uchar*) to, 0, (uchar*) curr_dir, strlen(curr_dir), strlen(to)+1); + } + } + else + { + if ((end = getenv("MY_BASEDIR_VERSION")) == 0 && + (end = getenv("MY_BASEDIR")) == 0) + { +#ifdef DEFAULT_BASEDIR + end= (char*) DEFAULT_BASEDIR; +#else + end= (char*) "/my/"; +#endif + } + (void) intern_filename(to,end); + to=strend(to); + if (to != start && to[-1] != FN_LIBCHAR) + *to++ = FN_LIBCHAR; + (void) my_stpcpy(to,own_pathname_part); + } + DBUG_PRINT("exit",("to: '%s'",start)); + DBUG_RETURN(start); +} /* my_path */ + + + /* test if file without filename is found in path */ + /* Returns to if found and to has dirpart if found, else NullS */ + +#if defined(_WIN32) +#define F_OK 0 +#define PATH_SEP ';' +#define PROGRAM_EXTENSION ".exe" +#else +#define PATH_SEP ':' +#endif + +static char *find_file_in_path(char *to, const char *name) +{ + char *path,*pos,dir[2]; + const char *ext=""; + + if (!(path=getenv("PATH"))) + return NullS; + dir[0]=FN_LIBCHAR; dir[1]=0; +#ifdef PROGRAM_EXTENSION + if (!fn_ext(name)[0]) + ext=PROGRAM_EXTENSION; +#endif + + for (pos=path ; (pos=strchr(pos,PATH_SEP)) ; path= ++pos) + { + if (path != pos) + { + strxmov(my_stpnmov(to,path,(uint) (pos-path)),dir,name,ext,NullS); + if (!access(to,F_OK)) + { + to[(uint) (pos-path)+1]=0; /* Return path only */ + return to; + } + } + } +#ifdef _WIN32 + to[0]=FN_CURLIB; + strxmov(to+1,dir,name,ext,NullS); + if (!access(to,F_OK)) /* Test in current dir */ + { + to[2]=0; /* Leave ".\" */ + return to; + } +#endif + return NullS; /* File not found */ +} diff --git a/mysql/mysys/mf_qsort.c b/mysql/mysys/mf_qsort.c new file mode 100644 index 0000000..7d15fa6 --- /dev/null +++ b/mysql/mysys/mf_qsort.c @@ -0,0 +1,205 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + qsort implementation optimized for comparison of pointers + Inspired by the qsort implementations by Douglas C. Schmidt, + and Bentley & McIlroy's "Engineering a Sort Function". +*/ + + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +/* We need to use qsort with 2 different compare functions */ +#ifdef QSORT_EXTRA_CMP_ARGUMENT +#define CMP(A,B) ((*cmp)(cmp_argument,(A),(B))) +#else +#define CMP(A,B) ((*cmp)((A),(B))) +#endif + +#define SWAP(A, B, size,swap_ptrs) \ +do { \ + if (swap_ptrs) \ + { \ + char **a = (char**) (A), **b = (char**) (B); \ + char *tmp = *a; *a++ = *b; *b++ = tmp; \ + } \ + else \ + { \ + char *a = (A), *b = (B); \ + char *end= a+size; \ + do \ + { \ + char tmp = *a; *a++ = *b; *b++ = tmp; \ + } while (a < end); \ + } \ +} while (0) + +/* Put the median in the middle argument */ +#define MEDIAN(low, mid, high) \ +{ \ + if (CMP(high,low) < 0) \ + SWAP(high, low, size, ptr_cmp); \ + if (CMP(mid, low) < 0) \ + SWAP(mid, low, size, ptr_cmp); \ + else if (CMP(high, mid) < 0) \ + SWAP(mid, high, size, ptr_cmp); \ +} + +/* The following node is used to store ranges to avoid recursive calls */ + +typedef struct st_stack +{ + char *low,*high; +} stack_node; + +#define PUSH(LOW,HIGH) {stack_ptr->low = LOW; stack_ptr++->high = HIGH;} +#define POP(LOW,HIGH) {LOW = (--stack_ptr)->low; HIGH = stack_ptr->high;} + +/* The following stack size is enough for ulong ~0 elements */ +#define STACK_SIZE (8 * sizeof(unsigned long int)) +#define THRESHOLD_FOR_INSERT_SORT 10 + +/**************************************************************************** +** 'standard' quicksort with the following extensions: +** +** Can be compiled with the qsort2_cmp compare function +** Store ranges on stack to avoid recursion +** Use insert sort on small ranges +** Optimize for sorting of pointers (used often by MySQL) +** Use median comparison to find partition element +*****************************************************************************/ + +#ifdef QSORT_EXTRA_CMP_ARGUMENT +void my_qsort2(void *base_ptr, size_t count, size_t size, qsort2_cmp cmp, + const void *cmp_argument) +#else +void my_qsort(void *base_ptr, size_t count, size_t size, qsort_cmp cmp) +#endif +{ + char *low, *high, *pivot; + stack_node stack[STACK_SIZE], *stack_ptr; + my_bool ptr_cmp; + /* Handle the simple case first */ + /* This will also make the rest of the code simpler */ + if (count <= 1) + return; + + low = (char*) base_ptr; + high = low+ size * (count - 1); + stack_ptr = stack + 1; + pivot = (char *) my_alloca((int) size); + ptr_cmp= size == sizeof(char*) && !((low - (char*) 0)& (sizeof(char*)-1)); + + /* The following loop sorts elements between high and low */ + do + { + char *low_ptr, *high_ptr, *mid; + + count=((size_t) (high - low) / size)+1; + /* If count is small, then an insert sort is faster than qsort */ + if (count < THRESHOLD_FOR_INSERT_SORT) + { + for (low_ptr = low + size; low_ptr <= high; low_ptr += size) + { + char *ptr; + for (ptr = low_ptr; ptr > low && CMP(ptr - size, ptr) > 0; + ptr -= size) + SWAP(ptr, ptr - size, size, ptr_cmp); + } + POP(low, high); + continue; + } + + /* Try to find a good middle element */ + mid= low + size * (count >> 1); + if (count > 40) /* Must be bigger than 24 */ + { + size_t step = size* (count / 8); + MEDIAN(low, low + step, low+step*2); + MEDIAN(mid - step, mid, mid+step); + MEDIAN(high - 2 * step, high-step, high); + /* Put best median in 'mid' */ + MEDIAN(low+step, mid, high-step); + low_ptr = low; + high_ptr = high; + } + else + { + MEDIAN(low, mid, high); + /* The low and high argument are already in sorted against 'pivot' */ + low_ptr = low + size; + high_ptr = high - size; + } + memcpy(pivot, mid, size); + + do + { + while (CMP(low_ptr, pivot) < 0) + low_ptr += size; + while (CMP(pivot, high_ptr) < 0) + high_ptr -= size; + + if (low_ptr < high_ptr) + { + SWAP(low_ptr, high_ptr, size, ptr_cmp); + low_ptr += size; + high_ptr -= size; + } + else + { + if (low_ptr == high_ptr) + { + low_ptr += size; + high_ptr -= size; + } + break; + } + } + while (low_ptr <= high_ptr); + + /* + Prepare for next iteration. + Skip partitions of size 1 as these doesn't have to be sorted + Push the larger partition and sort the smaller one first. + This ensures that the stack is keept small. + */ + + if ((int) (high_ptr - low) <= 0) + { + if ((int) (high - low_ptr) <= 0) + { + POP(low, high); /* Nothing more to sort */ + } + else + low = low_ptr; /* Ignore small left part. */ + } + else if ((int) (high - low_ptr) <= 0) + high = high_ptr; /* Ignore small right part. */ + else if ((high_ptr - low) > (high - low_ptr)) + { + PUSH(low, high_ptr); /* Push larger left part */ + low = low_ptr; + } + else + { + PUSH(low_ptr, high); /* Push larger right part */ + high = high_ptr; + } + } while (stack_ptr > stack); + return; +} diff --git a/mysql/mysys/mf_qsort2.c b/mysql/mysys/mf_qsort2.c new file mode 100644 index 0000000..f54cdac --- /dev/null +++ b/mysql/mysys/mf_qsort2.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2000 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* qsort that sends one extra argument to the compare subrutine */ + +#define QSORT_EXTRA_CMP_ARGUMENT +#include "mf_qsort.c" diff --git a/mysql/mysys/mf_radix.c b/mysql/mysys/mf_radix.c new file mode 100644 index 0000000..aa112df --- /dev/null +++ b/mysql/mysys/mf_radix.c @@ -0,0 +1,59 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Radixsort for pointers to fixed length strings. + A very quick sort for not to long (< 20 char) strings. + Neads a extra buffers of number_of_elements pointers but is + 2-3 times faster than quicksort +*/ + +#include "mysys_priv.h" +#include + + /* Radixsort */ + +my_bool radixsort_is_appliccable(uint n_items, size_t size_of_element) +{ + return size_of_element <= 20 && n_items >= 1000 && n_items < 100000; +} + +void radixsort_for_str_ptr(uchar **base, uint number_of_elements, size_t size_of_element, uchar **buffer) +{ + uchar **end,**ptr,**buffer_ptr; + uint32 *count_ptr,*count_end,count[256]; + int pass; + + end=base+number_of_elements; count_end=count+256; + for (pass=(int) size_of_element-1 ; pass >= 0 ; pass--) + { + memset(count, 0, sizeof(uint32)*256); + for (ptr= base ; ptr < end ; ptr++) + count[ptr[0][pass]]++; + if (count[0] == number_of_elements) + goto next; + for (count_ptr=count+1 ; count_ptr < count_end ; count_ptr++) + { + if (*count_ptr == number_of_elements) + goto next; + (*count_ptr)+= *(count_ptr-1); + } + for (ptr= end ; ptr-- != base ;) + buffer[--count[ptr[0][pass]]]= *ptr; + for (ptr=base, buffer_ptr=buffer ; ptr < end ;) + (*ptr++) = *buffer_ptr++; + next:; + } +} diff --git a/mysql/mysys/mf_same.c b/mysql/mysys/mf_same.c new file mode 100644 index 0000000..86c3eaf --- /dev/null +++ b/mysql/mysys/mf_same.c @@ -0,0 +1,41 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* Kopierar biblioteksstrukturen och extensionen fr}n ett filnamn */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + + /* + Copy directory and/or extension between filenames. + (For the meaning of 'flag', check mf_format.c) + 'to' may be equal to 'name'. + Returns 'to'. + */ + +char * fn_same(char *to, const char *name, int flag) +{ + char dev[FN_REFLEN]; + const char *ext; + size_t dev_length; + DBUG_ENTER("fn_same"); + DBUG_PRINT("enter",("to: %s name: %s flag: %d",to,name,flag)); + + if ((ext=strrchr(name+dirname_part(dev, name, &dev_length),FN_EXTCHAR)) == 0) + ext=""; + + DBUG_RETURN(fn_format(to,to,dev,ext,flag)); +} /* fn_same */ diff --git a/mysql/mysys/mf_soundex.c b/mysql/mysys/mf_soundex.c new file mode 100644 index 0000000..88a76c2 --- /dev/null +++ b/mysql/mysys/mf_soundex.c @@ -0,0 +1,105 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/**************************************************************** +* SOUNDEX ALGORITHM in C * +* * +* The basic Algorithm source is taken from EDN Nov. * +* 14, 1985 pg. 36. * +* * +* As a test Those in Illinois will find that the * +* first group of numbers in their drivers license * +* number is the soundex number for their last name. * +* * +* RHW PC-IBBS ID. #1230 * +* * +* As an extension if remove_garbage is set then all non- * +* alpha characters are skipped * +* * +* Note, that this implementation corresponds to the * +* original version of the algorithm, not to the more * +* popular "enhanced" version, described by Knuth. * +****************************************************************/ + +#include "mysys_priv.h" +#include +#include "my_static.h" + +static char get_scode(CHARSET_INFO * cs, char **ptr,pbool remove_garbage); + + /* outputed string is 4 byte long */ + /* out_pntr can be == in_pntr */ + +void soundex(CHARSET_INFO * cs, char * out_pntr, char * in_pntr, + pbool remove_garbage) +{ + char ch,last_ch; + char *end; + const uchar *map=cs->to_upper; + + if (remove_garbage) + { + while (*in_pntr && !my_isalpha(cs,*in_pntr)) /* Skip pre-space */ + in_pntr++; + } + *out_pntr++ = map[(uchar)*in_pntr]; /* Copy first letter */ + last_ch = get_scode(cs,&in_pntr,0); /* code of the first letter */ + /* for the first 'double-letter */ + /* check. */ + end=out_pntr+3; /* Loop on input letters until */ + /* end of input (null) or output */ + /* letter code count = 3 */ + + in_pntr++; + while (out_pntr < end && (ch = get_scode(cs,&in_pntr,remove_garbage)) != 0) + { + in_pntr++; + if ((ch != '0') && (ch != last_ch)) /* if not skipped or double */ + { + *out_pntr++ = ch; /* letter, copy to output */ + } /* for next double-letter check */ + last_ch = ch; /* save code of last input letter */ + } + while (out_pntr < end) + *out_pntr++ = '0'; + *out_pntr=0; /* end string */ + return; +} /* soundex */ + + + /* + If alpha, map input letter to soundex code. + If not alpha and remove_garbage is set then skip to next char + else return 0 + */ + +static char get_scode(CHARSET_INFO * cs,char **ptr, pbool remove_garbage) +{ + uchar ch; + + if (remove_garbage) + { + while (**ptr && !my_isalpha(cs,**ptr)) + (*ptr)++; + } + ch=my_toupper(cs,**ptr); + if (ch < 'A' || ch > 'Z') + { + if (my_isalpha(cs,ch)) /* If extended alfa (country spec) */ + return '0'; /* threat as vokal */ + return 0; /* Can't map */ + } + return(soundex_map[ch-'A']); +} /* get_scode */ diff --git a/mysql/mysys/mf_tempfile.c b/mysql/mysys/mf_tempfile.c new file mode 100644 index 0000000..beeabba --- /dev/null +++ b/mysql/mysys/mf_tempfile.c @@ -0,0 +1,140 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include +#include "my_static.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + + +/* + @brief + Create a temporary file with unique name in a given directory + + @details + create_temp_file + to pointer to buffer where temporary filename will be stored + dir directory where to create the file + prefix prefix the filename with this + mode Flags to use for my_create/my_open + MyFlags Magic flags + + @return + File descriptor of opened file if success + -1 and sets errno if fails. + + @note + The behaviour of this function differs a lot between + implementation, it's main use is to generate a file with + a name that does not already exist. + + When passing O_TEMPORARY flag in "mode" the file should + be automatically deleted + + The implementation using mkstemp should be considered the + reference implementation when adding a new or modifying an + existing one + +*/ + +File create_temp_file(char *to, const char *dir, const char *prefix, + int mode, myf MyFlags) +{ + File file= -1; +#ifdef _WIN32 + TCHAR path_buf[MAX_PATH-14]; +#endif + + DBUG_ENTER("create_temp_file"); + DBUG_PRINT("enter", ("dir: %s, prefix: %s", dir, prefix)); +#if defined(_WIN32) + + /* + Use GetTempPath to determine path for temporary files. + This is because the documentation for GetTempFileName + has the following to say about this parameter: + "If this parameter is NULL, the function fails." + */ + if (!dir) + { + if(GetTempPath(sizeof(path_buf), path_buf) > 0) + dir = path_buf; + } + /* + Use GetTempFileName to generate a unique filename, create + the file and release it's handle + - uses up to the first three letters from prefix + */ + if (GetTempFileName(dir, prefix, 0, to) == 0) + DBUG_RETURN(-1); + + DBUG_PRINT("info", ("name: %s", to)); + + /* + Open the file without the "open only if file doesn't already exist" + since the file has already been created by GetTempFileName + */ + if ((file= my_open(to, (mode & ~O_EXCL), MyFlags)) < 0) + { + /* Open failed, remove the file created by GetTempFileName */ + int tmp= my_errno(); + (void) my_delete(to, MYF(0)); + set_my_errno(tmp); + } + +#else /* mkstemp() is available on all non-Windows supported platforms. */ + { + char prefix_buff[30]; + uint pfx_len; + File org_file; + + pfx_len= (uint) (my_stpcpy(my_stpnmov(prefix_buff, + prefix ? prefix : "tmp.", + sizeof(prefix_buff)-7),"XXXXXX") - + prefix_buff); + if (!dir && ! (dir =getenv("TMPDIR"))) + dir= DEFAULT_TMPDIR; + if (strlen(dir)+ pfx_len > FN_REFLEN-2) + { + errno=ENAMETOOLONG; + set_my_errno(ENAMETOOLONG); + DBUG_RETURN(file); + } + my_stpcpy(convert_dirname(to,dir,NullS),prefix_buff); + org_file=mkstemp(to); + if (mode & O_TEMPORARY) + (void) my_delete(to, MYF(MY_WME)); + file=my_register_filename(org_file, to, FILE_BY_MKSTEMP, + EE_CANTCREATEFILE, MyFlags); + /* If we didn't manage to register the name, remove the temp file */ + if (org_file >= 0 && file < 0) + { + int tmp=my_errno(); + close(org_file); + (void) my_delete(to, MYF(MY_WME)); + set_my_errno(tmp); + } + } +#endif + if (file >= 0) + { + mysql_mutex_lock(&THR_LOCK_open); + my_tmp_file_created++; + mysql_mutex_unlock(&THR_LOCK_open); + } + DBUG_RETURN(file); +} diff --git a/mysql/mysys/mf_unixpath.c b/mysql/mysys/mf_unixpath.c new file mode 100644 index 0000000..05df11e --- /dev/null +++ b/mysql/mysys/mf_unixpath.c @@ -0,0 +1,36 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include + +/** + Convert filename to unix style filename. + + @remark On Windows, converts '\' to '/'. + + @param to A pathname. +*/ + +void to_unix_path(char *to MY_ATTRIBUTE((unused))) +{ +#if FN_LIBCHAR != '/' + { + to--; + while ((to=strchr(to+1,FN_LIBCHAR)) != 0) + *to='/'; + } +#endif +} diff --git a/mysql/mysys/mf_wcomp.c b/mysql/mysys/mf_wcomp.c new file mode 100644 index 0000000..3d2510b --- /dev/null +++ b/mysql/mysys/mf_wcomp.c @@ -0,0 +1,89 @@ +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* Funktions for comparing with wild-cards */ + +#include "mysys_priv.h" + + /* Test if a string is "comparable" to a wild-card string */ + /* returns 0 if the strings are "comparable" */ + +char wild_many='*'; +char wild_one='?'; +char wild_prefix=0; /* QQ this can potentially cause a SIGSEGV */ + +int wild_compare(const char *str, const char *wildstr, + pbool str_is_pattern) +{ + char cmp; + DBUG_ENTER("wild_compare"); + + while (*wildstr) + { + while (*wildstr && *wildstr != wild_many && *wildstr != wild_one) + { + if (*wildstr == wild_prefix && wildstr[1]) + { + wildstr++; + if (str_is_pattern && *str++ != wild_prefix) + DBUG_RETURN(1); + } + if (*wildstr++ != *str++) + DBUG_RETURN(1); + } + if (! *wildstr ) + DBUG_RETURN(*str != 0); + if (*wildstr++ == wild_one) + { + if (! *str || (str_is_pattern && *str == wild_many)) + DBUG_RETURN(1); /* One char; skip */ + if (*str++ == wild_prefix && str_is_pattern && *str) + str++; + } + else + { /* Found '*' */ + while (str_is_pattern && *str == wild_many) + str++; + for (; *wildstr == wild_many || *wildstr == wild_one; wildstr++) + if (*wildstr == wild_many) + { + while (str_is_pattern && *str == wild_many) + str++; + } + else + { + if (str_is_pattern && *str == wild_prefix && str[1]) + str+=2; + else if (! *str++) + DBUG_RETURN (1); + } + if (!*wildstr) + DBUG_RETURN(0); /* '*' as last char: OK */ + if ((cmp= *wildstr) == wild_prefix && wildstr[1] && !str_is_pattern) + cmp=wildstr[1]; + for (;;str++) + { + while (*str && *str != cmp) + str++; + if (!*str) + DBUG_RETURN (1); + if (wild_compare(str,wildstr,str_is_pattern) == 0) + DBUG_RETURN (0); + } + /* We will never come here */ + } + } + DBUG_RETURN (*str != 0); +} /* wild_compare */ diff --git a/mysql/mysys/mulalloc.c b/mysql/mysys/mulalloc.c new file mode 100644 index 0000000..e47e9f4 --- /dev/null +++ b/mysql/mysys/mulalloc.c @@ -0,0 +1,64 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +/* + Malloc many pointers at the same time + Only ptr1 can be free'd, and doing this will free all + the memory allocated. ptr2, etc all point inside big allocated + memory area. + + SYNOPSIS + my_multi_malloc() + myFlags Flags + ptr1, length1 Multiple arguments terminated by null ptr + ptr2, length2 ... + ... + NULL +*/ + +void* my_multi_malloc(PSI_memory_key key, myf myFlags, ...) +{ + va_list args; + char **ptr,*start,*res; + size_t tot_length,length; + DBUG_ENTER("my_multi_malloc"); + + va_start(args,myFlags); + tot_length=0; + while ((ptr=va_arg(args, char **))) + { + length=va_arg(args,uint); + tot_length+=ALIGN_SIZE(length); + } + va_end(args); + + if (!(start=(char *) my_malloc(key, tot_length,myFlags))) + DBUG_RETURN(0); /* purecov: inspected */ + + va_start(args,myFlags); + res=start; + while ((ptr=va_arg(args, char **))) + { + *ptr=res; + length=va_arg(args,uint); + res+=ALIGN_SIZE(length); + } + va_end(args); + DBUG_RETURN((void*) start); +} diff --git a/mysql/mysys/my_access.c b/mysql/mysys/my_access.c new file mode 100644 index 0000000..0d66643 --- /dev/null +++ b/mysql/mysys/my_access.c @@ -0,0 +1,268 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include "my_thread_local.h" + +#ifdef _WIN32 + +/* + Check a file or path for accessability. + + SYNOPSIS + file_access() + path Path to file + amode Access method + + DESCRIPTION + This function wraps the normal access method because the access + available in MSVCRT> +reports that filenames such as LPT1 and + COM1 are valid (they are but should not be so for us). + + RETURN VALUES + 0 ok + -1 error (We use -1 as my_access is mapped to access on other platforms) +*/ + +int my_access(const char *path, int amode) +{ + WIN32_FILE_ATTRIBUTE_DATA fileinfo; + BOOL result; + + result= GetFileAttributesEx(path, GetFileExInfoStandard, &fileinfo); + if (! result || + (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY) && (amode & W_OK)) + { + errno= EACCES; + set_my_errno(EACCES); + return -1; + } + return 0; +} + +#endif /* _WIN32 */ + + +/* + List of file names that causes problem on windows + + NOTE that one can also not have file names of type CON.TXT + + NOTE: it is important to keep "CLOCK$" on the first place, + we skip it in check_if_legal_tablename. +*/ +static const char *reserved_names[]= +{ + "CLOCK$", + "CON", "PRN", "AUX", "NUL", + "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", + "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9", + NullS +}; + +#define MAX_RESERVED_NAME_LENGTH 6 + + +/* + Looks up a null-terminated string in a list, + case insensitively. + + SYNOPSIS + str_list_find() + list list of items + str item to find + + RETURN + 0 ok + 1 reserved file name +*/ +static int str_list_find(const char **list, const char *str) +{ + const char **name; + for (name= list; *name; name++) + { + if (!my_strcasecmp(&my_charset_latin1, *name, str)) + return 1; + } + return 0; +} + + +/* + A map for faster reserved_names lookup, + helps to avoid loops in many cases. + 1 - can be the first letter + 2 - can be the second letter + 4 - can be the third letter +*/ +static char reserved_map[256]= +{ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* !"#$%&'()*+,-./ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0123456789:;<=>? */ + 0,1,0,1,0,0,0,0,0,0,0,0,7,4,5,2, /* @ABCDEFGHIJKLMNO */ + 3,0,2,0,4,2,0,0,4,0,0,0,0,0,0,0, /* PQRSTUVWXYZ[\]^_ */ + 0,1,0,1,0,0,0,0,0,0,0,0,7,4,5,2, /* bcdefghijklmno */ + 3,0,2,0,4,2,0,0,4,0,0,0,0,0,0,0, /* pqrstuvwxyz{|}~. */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* ................ */ +}; + + +/* + Check if a table name may cause problems + + SYNOPSIS + check_if_legal_tablename + name Table name (without any extensions) + + DESCRIPTION + We don't check 'CLOCK$' because dollar sign is encoded as @0024, + making table file name 'CLOCK@0024', which is safe. + This is why we start lookup from the second element + (i.e. &reserver_name[1]) + + RETURN + 0 ok + 1 reserved file name +*/ + +int check_if_legal_tablename(const char *name) +{ + DBUG_ENTER("check_if_legal_tablename"); + DBUG_RETURN(name[0] != 0 && name[1] != 0 && + (reserved_map[(uchar) name[0]] & 1) && + (reserved_map[(uchar) name[1]] & 2) && + (reserved_map[(uchar) name[2]] & 4) && + str_list_find(&reserved_names[1], name)); +} + + +#ifdef _WIN32 +/** + Checks if the drive letter supplied is valid or not. Valid drive + letters are A to Z, both lower case and upper case. + + @param drive_letter : The drive letter to validate. + + @return TRUE if the drive exists, FALSE otherwise. +*/ +static my_bool does_drive_exists(char drive_letter) +{ + DWORD drive_mask= GetLogicalDrives(); + drive_letter= toupper(drive_letter); + + return (drive_letter >= 'A' && drive_letter <= 'Z') && + (drive_mask & (0x1 << (drive_letter - 'A'))); +} + +/** + Verifies if the file name supplied is allowed or not. On Windows + file names with a colon (:) are not allowed because such file names + store data in Alternate Data Streams which can be used to hide + the data. + + @param name contains the file name with or without path + @param length contains the length of file name + @param allow_current_dir TRUE if paths like C:foobar are allowed, + FALSE otherwise + + @return TRUE if the file name is allowed, FALSE otherwise. +*/ +my_bool is_filename_allowed(const char *name MY_ATTRIBUTE((unused)), + size_t length MY_ATTRIBUTE((unused)), + my_bool allow_current_dir MY_ATTRIBUTE((unused))) +{ + /* + For Windows, check if the file name contains : character. + Start from end of path and search if the file name contains : + */ + const char* ch = NULL; + for (ch= name + length - 1; ch >= name; --ch) + { + if (FN_LIBCHAR == *ch || '/' == *ch) + break; + else if (':' == *ch) + { + /* + File names like C:foobar.txt are allowed since the syntax means + file foobar.txt in current directory of C drive. However file + names likes CC:foobar are not allowed since this syntax means ADS + foobar in file CC. + */ + return (allow_current_dir && (ch - name == 1) && + does_drive_exists(*name)); + } + } + return TRUE; +} /* is_filename_allowed */ +#endif /* _WIN32 */ + +#if defined(_WIN32) + + +/* + Check if a path will access a reserverd file name that may cause problems + + SYNOPSIS + check_if_legal_filename + path Path to file + + RETURN + 0 ok + 1 reserved file name +*/ + +int check_if_legal_filename(const char *path) +{ + const char *end; + const char **reserved_name; + DBUG_ENTER("check_if_legal_filename"); + + if (!is_filename_allowed(path, strlen(path), TRUE)) + DBUG_RETURN(1); + + path+= dirname_length(path); /* To start of filename */ + if (!(end= strchr(path, FN_EXTCHAR))) + end= strend(path); + if (path == end || (uint) (end - path) > MAX_RESERVED_NAME_LENGTH) + DBUG_RETURN(0); /* Simplify inner loop */ + + for (reserved_name= reserved_names; *reserved_name; reserved_name++) + { + const char *reserved= *reserved_name; /* never empty */ + const char *name= path; + + do + { + if (*reserved != my_toupper(&my_charset_latin1, *name)) + break; + if (++name == end && !reserved[1]) + DBUG_RETURN(1); /* Found wrong path */ + } while (*++reserved); + } + DBUG_RETURN(0); +} + +#endif /* defined(_WIN32) */ diff --git a/mysql/mysys/my_alloc.c b/mysql/mysys/my_alloc.c new file mode 100644 index 0000000..1d72917 --- /dev/null +++ b/mysql/mysys/my_alloc.c @@ -0,0 +1,557 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Routines to handle mallocing of results which will be freed the same time */ + +#include +#include +#include +#include "mysys_err.h" + +static inline my_bool is_mem_available(MEM_ROOT *mem_root, size_t size); + +/* + For instrumented code: don't preallocate memory in alloc_root(). + This gives a lot more memory chunks, each with a red-zone around them. + */ +#if !defined(HAVE_VALGRIND) && !defined(HAVE_ASAN) +#define PREALLOCATE_MEMORY_CHUNKS +#endif + + +/* + Initialize memory root + + SYNOPSIS + init_alloc_root() + mem_root - memory root to initialize + block_size - size of chunks (blocks) used for memory allocation + (It is external size of chunk i.e. it should include + memory required for internal structures, thus it + should be no less than ALLOC_ROOT_MIN_BLOCK_SIZE) + pre_alloc_size - if non-0, then size of block that should be + pre-allocated during memory root initialization. + + DESCRIPTION + This function prepares memory root for further use, sets initial size of + chunk for memory allocation and pre-allocates first block if specified. + Altough error can happen during execution of this function if + pre_alloc_size is non-0 it won't be reported. Instead it will be + reported as error in first alloc_root() on this memory root. +*/ + +void init_alloc_root(PSI_memory_key key, + MEM_ROOT *mem_root, size_t block_size, + size_t pre_alloc_size MY_ATTRIBUTE((unused))) +{ + DBUG_ENTER("init_alloc_root"); + DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root)); + + mem_root->free= mem_root->used= mem_root->pre_alloc= 0; + mem_root->min_malloc= 32; + mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE; + mem_root->error_handler= 0; + mem_root->block_num= 4; /* We shift this with >>2 */ + mem_root->first_block_usage= 0; + mem_root->m_psi_key= key; + mem_root->max_capacity= 0; + mem_root->allocated_size= 0; + mem_root->error_for_capacity_exceeded= FALSE; + +#if defined(PREALLOCATE_MEMORY_CHUNKS) + if (pre_alloc_size) + { + if ((mem_root->free= mem_root->pre_alloc= + (USED_MEM*) my_malloc(key, + pre_alloc_size+ ALIGN_SIZE(sizeof(USED_MEM)), + MYF(0)))) + { + mem_root->free->size= (uint)(pre_alloc_size+ALIGN_SIZE(sizeof(USED_MEM))); + mem_root->free->left= (uint)pre_alloc_size; + mem_root->free->next= 0; + mem_root->allocated_size+= pre_alloc_size+ ALIGN_SIZE(sizeof(USED_MEM)); + } + } +#endif + DBUG_VOID_RETURN; +} + +/** This is a no-op unless the build is debug or for Valgrind. */ +#define TRASH_MEM(X) TRASH(((char*)(X) + ((X)->size-(X)->left)), (X)->left) + + +/* + SYNOPSIS + reset_root_defaults() + mem_root memory root to change defaults of + block_size new value of block size. Must be greater or equal + than ALLOC_ROOT_MIN_BLOCK_SIZE (this value is about + 68 bytes and depends on platform and compilation flags) + pre_alloc_size new size of preallocated block. If not zero, + must be equal to or greater than block size, + otherwise means 'no prealloc'. + DESCRIPTION + Function aligns and assigns new value to block size; then it tries to + reuse one of existing blocks as prealloc block, or malloc new one of + requested size. If no blocks can be reused, all unused blocks are freed + before allocation. +*/ + +void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, + size_t pre_alloc_size MY_ATTRIBUTE((unused))) +{ + DBUG_ASSERT(alloc_root_inited(mem_root)); + + mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE; +#if defined(PREALLOCATE_MEMORY_CHUNKS) + if (pre_alloc_size) + { + size_t size= pre_alloc_size + ALIGN_SIZE(sizeof(USED_MEM)); + if (!mem_root->pre_alloc || mem_root->pre_alloc->size != size) + { + USED_MEM *mem, **prev= &mem_root->free; + /* + Free unused blocks, so that consequent calls + to reset_root_defaults won't eat away memory. + */ + while (*prev) + { + mem= *prev; + if (mem->size == (uint)size) + { + /* We found a suitable block, no need to do anything else */ + mem_root->pre_alloc= mem; + return; + } + if (mem->left + ALIGN_SIZE(sizeof(USED_MEM)) == mem->size) + { + /* remove block from the list and free it */ + *prev= mem->next; + { + mem->left= mem->size; + mem_root->allocated_size-= mem->size; + TRASH_MEM(mem); + my_free(mem); + } + } + else + prev= &mem->next; + } + /* Allocate new prealloc block and add it to the end of free list */ + if (is_mem_available(mem_root, size) && + (mem= (USED_MEM *) my_malloc(mem_root->m_psi_key, + size, MYF(0)))) + { + mem->size= (uint)size; + mem->left= (uint)pre_alloc_size; + mem->next= *prev; + *prev= mem_root->pre_alloc= mem; + mem_root->allocated_size+= size; + } + else + { + mem_root->pre_alloc= 0; + } + } + } + else +#endif + mem_root->pre_alloc= 0; +} + + +/** + Function allocates the requested memory in the mem_root specified. + If max_capacity is defined for the mem_root, it only allocates + if the requested size can be allocated without exceeding the limit. + However, when error_for_capacity_exceeded is set, an error is flagged + (see set_error_reporting), but allocation is still performed. + + @param mem_root memory root to allocate memory from + @length size to be allocated + + @retval + void * Pointer to the memory thats been allocated + @retval + NULL Memory is not available. +*/ + +void *alloc_root(MEM_ROOT *mem_root, size_t length) +{ +#if !defined(PREALLOCATE_MEMORY_CHUNKS) + USED_MEM *next; + DBUG_ENTER("alloc_root"); + DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root)); + + DBUG_ASSERT(alloc_root_inited(mem_root)); + + DBUG_EXECUTE_IF("simulate_out_of_memory", + { + if (mem_root->error_handler) + (*mem_root->error_handler)(); + DBUG_SET("-d,simulate_out_of_memory"); + DBUG_RETURN((void*) 0); /* purecov: inspected */ + }); + + length+=ALIGN_SIZE(sizeof(USED_MEM)); + if (!is_mem_available(mem_root, length)) + { + if (mem_root->error_for_capacity_exceeded) + my_error(EE_CAPACITY_EXCEEDED, MYF(0), + (ulonglong) mem_root->max_capacity); + else + DBUG_RETURN(NULL); + } + if (!(next = (USED_MEM*) my_malloc(mem_root->m_psi_key, + length,MYF(MY_WME | ME_FATALERROR)))) + { + if (mem_root->error_handler) + (*mem_root->error_handler)(); + DBUG_RETURN((uchar*) 0); /* purecov: inspected */ + } + mem_root->allocated_size+= length; + next->next= mem_root->used; + next->size= (uint)length; + next->left= (uint)(length - ALIGN_SIZE(sizeof(USED_MEM))); + mem_root->used= next; + DBUG_PRINT("exit",("ptr: 0x%lx", (long) (((char*) next)+ + ALIGN_SIZE(sizeof(USED_MEM))))); + DBUG_RETURN((uchar*) (((char*) next)+ALIGN_SIZE(sizeof(USED_MEM)))); +#else + size_t get_size, block_size; + uchar* point; + USED_MEM *next= 0; + USED_MEM **prev; + DBUG_ENTER("alloc_root"); + DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root)); + DBUG_ASSERT(alloc_root_inited(mem_root)); + + DBUG_EXECUTE_IF("simulate_out_of_memory", + { + /* Avoid reusing an already allocated block */ + if (mem_root->error_handler) + (*mem_root->error_handler)(); + DBUG_SET("-d,simulate_out_of_memory"); + DBUG_RETURN((void*) 0); /* purecov: inspected */ + }); + length= ALIGN_SIZE(length); + if ((*(prev= &mem_root->free)) != NULL) + { + if ((*prev)->left < length && + mem_root->first_block_usage++ >= ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP && + (*prev)->left < ALLOC_MAX_BLOCK_TO_DROP) + { + next= *prev; + *prev= next->next; /* Remove block from list */ + next->next= mem_root->used; + mem_root->used= next; + mem_root->first_block_usage= 0; + } + for (next= *prev ; next && next->left < length ; next= next->next) + prev= &next->next; + } + if (! next) + { /* Time to alloc new block */ + block_size= mem_root->block_size * (mem_root->block_num >> 2); + get_size= length+ALIGN_SIZE(sizeof(USED_MEM)); + get_size= MY_MAX(get_size, block_size); + + if (!is_mem_available(mem_root, get_size)) + { + if (mem_root->error_for_capacity_exceeded) + my_error(EE_CAPACITY_EXCEEDED, MYF(0), + (ulonglong) mem_root->max_capacity); + else + DBUG_RETURN(NULL); + } + if (!(next = (USED_MEM*) my_malloc(mem_root->m_psi_key, + get_size,MYF(MY_WME | ME_FATALERROR)))) + { + if (mem_root->error_handler) + (*mem_root->error_handler)(); + DBUG_RETURN((void*) 0); /* purecov: inspected */ + } + mem_root->allocated_size+= get_size; + mem_root->block_num++; + next->next= *prev; + next->size= (uint)get_size; + next->left= (uint)(get_size-ALIGN_SIZE(sizeof(USED_MEM))); + *prev=next; + } + + point= (uchar*) ((char*) next+ (next->size-next->left)); + /*TODO: next part may be unneded due to mem_root->first_block_usage counter*/ + if ((next->left-= (uint)length) < mem_root->min_malloc) + { /* Full block */ + *prev= next->next; /* Remove block from list */ + next->next= mem_root->used; + mem_root->used= next; + mem_root->first_block_usage= 0; + } + DBUG_PRINT("exit",("ptr: 0x%lx", (ulong) point)); + DBUG_RETURN((void*) point); +#endif +} + + +/* + Allocate many pointers at the same time. + + DESCRIPTION + ptr1, ptr2, etc all point into big allocated memory area. + + SYNOPSIS + multi_alloc_root() + root Memory root + ptr1, length1 Multiple arguments terminated by a NULL pointer + ptr2, length2 ... + ... + NULL + + RETURN VALUE + A pointer to the beginning of the allocated memory block + in case of success or NULL if out of memory. +*/ + +void *multi_alloc_root(MEM_ROOT *root, ...) +{ + va_list args; + char **ptr, *start, *res; + size_t tot_length, length; + DBUG_ENTER("multi_alloc_root"); + + va_start(args, root); + tot_length= 0; + while ((ptr= va_arg(args, char **))) + { + length= va_arg(args, uint); + tot_length+= ALIGN_SIZE(length); + } + va_end(args); + + if (!(start= (char*) alloc_root(root, tot_length))) + DBUG_RETURN(0); /* purecov: inspected */ + + va_start(args, root); + res= start; + while ((ptr= va_arg(args, char **))) + { + *ptr= res; + length= va_arg(args, uint); + res+= ALIGN_SIZE(length); + } + va_end(args); + DBUG_RETURN((void*) start); +} + +/* Mark all data in blocks free for reusage */ + +static inline void mark_blocks_free(MEM_ROOT* root) +{ + USED_MEM *next; + USED_MEM **last; + + /* iterate through (partially) free blocks, mark them free */ + last= &root->free; + for (next= root->free; next; next= *(last= &next->next)) + { + next->left= next->size - (uint)ALIGN_SIZE(sizeof(USED_MEM)); + TRASH_MEM(next); + } + + /* Combine the free and the used list */ + *last= next=root->used; + + /* now go through the used blocks and mark them free */ + for (; next; next= next->next) + { + next->left= next->size - (uint)ALIGN_SIZE(sizeof(USED_MEM)); + TRASH_MEM(next); + } + + /* Now everything is set; Indicate that nothing is used anymore */ + root->used= 0; + root->first_block_usage= 0; +} + +void claim_root(MEM_ROOT *root) +{ + USED_MEM *next,*old; + DBUG_ENTER("claim_root"); + DBUG_PRINT("enter",("root: 0x%lx", (long) root)); + + for (next=root->used; next ;) + { + old=next; next= next->next ; + my_claim(old); + } + + for (next=root->free ; next ;) + { + old=next; next= next->next; + my_claim(old); + } + + DBUG_VOID_RETURN; +} + + +/* + Deallocate everything used by alloc_root or just move + used blocks to free list if called with MY_USED_TO_FREE + + SYNOPSIS + free_root() + root Memory root + MyFlags Flags for what should be freed: + + MY_MARK_BLOCKS_FREED Don't free blocks, just mark them free + MY_KEEP_PREALLOC If this is not set, then free also the + preallocated block + + NOTES + One can call this function either with root block initialised with + init_alloc_root() or with a zero()-ed block. + It's also safe to call this multiple times with the same mem_root. +*/ + +void free_root(MEM_ROOT *root, myf MyFlags) +{ + USED_MEM *next,*old; + DBUG_ENTER("free_root"); + DBUG_PRINT("enter",("root: 0x%lx flags: %u", (long) root, (uint) MyFlags)); + + if (MyFlags & MY_MARK_BLOCKS_FREE) + { + mark_blocks_free(root); + DBUG_VOID_RETURN; + } + if (!(MyFlags & MY_KEEP_PREALLOC)) + root->pre_alloc=0; + + for (next=root->used; next ;) + { + old=next; next= next->next ; + if (old != root->pre_alloc) + { + old->left= old->size; + TRASH_MEM(old); + my_free(old); + } + } + for (next=root->free ; next ;) + { + old=next; next= next->next; + if (old != root->pre_alloc) + { + old->left= old->size; + TRASH_MEM(old); + my_free(old); + } + } + root->used=root->free=0; + if (root->pre_alloc) + { + root->free=root->pre_alloc; + root->free->left=root->pre_alloc->size-(uint)ALIGN_SIZE(sizeof(USED_MEM)); + root->allocated_size= root->pre_alloc->size; + TRASH_MEM(root->pre_alloc); + root->free->next=0; + } + else + root->allocated_size= 0; + root->block_num= 4; + root->first_block_usage= 0; + DBUG_VOID_RETURN; +} + + +char *strdup_root(MEM_ROOT *root, const char *str) +{ + return strmake_root(root, str, strlen(str)); +} + + +char *strmake_root(MEM_ROOT *root, const char *str, size_t len) +{ + char *pos; + if ((pos=alloc_root(root,len+1))) + { + memcpy(pos,str,len); + pos[len]=0; + } + return pos; +} + + +void *memdup_root(MEM_ROOT *root, const void *str, size_t len) +{ + char *pos; + if ((pos=alloc_root(root,len))) + memcpy(pos,str,len); + return pos; +} + +/** + Check if the set max_capacity is exceeded if the requested + size is allocated + + @param mem_root memory root to check for allocation + @param size requested size to be allocated + + @retval + 1 Memory is available + @retval + 0 Memory is not available +*/ +static inline my_bool is_mem_available(MEM_ROOT *mem_root, size_t size) +{ + if (mem_root->max_capacity) + { + if ((mem_root->allocated_size + size) > mem_root->max_capacity) + return 0; + } + return 1; +} + +/** + set max_capacity for this mem_root. Should be called after init_alloc_root. + If the max_capacity specified is less than what is already pre_alloced + in init_alloc_root, only the future allocations are affected. + + @param mem_root memory root to set the max capacity + @param max_value Maximum capacity this mem_root can hold +*/ +void set_memroot_max_capacity(MEM_ROOT *mem_root, size_t max_value) +{ + DBUG_ASSERT(alloc_root_inited(mem_root)); + mem_root->max_capacity= max_value; +} + +/** + Enable/disable error reporting for exceeding max_capacity. If error + reporting is enabled, an error is flagged to indicate that the capacity + is exceeded. However allocation will still happen for the requested memory. + + @param mem_root memory root + @param report_eroor set to true if error should be reported + else set to false +*/ +void set_memroot_error_reporting(MEM_ROOT *mem_root, my_bool report_error) +{ + DBUG_ASSERT(alloc_root_inited(mem_root)); + mem_root->error_for_capacity_exceeded= report_error; +} + diff --git a/mysql/mysys/my_bit.c b/mysql/mysys/my_bit.c new file mode 100644 index 0000000..d36f52b --- /dev/null +++ b/mysql/mysys/my_bit.c @@ -0,0 +1,64 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include + +#include + +const char _my_bits_nbits[256] = { + 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8, +}; + +/* + perl -e 'print map{", 0x".unpack H2,pack B8,unpack b8,chr$_}(0..255)' +*/ +const uchar _my_bits_reverse_table[256]={ +0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, +0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, +0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, +0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, 0x0C, 0x8C, 0x4C, 0xCC, +0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, 0x02, +0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, +0x72, 0xF2, 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, +0xDA, 0x3A, 0xBA, 0x7A, 0xFA, 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, +0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, +0xAE, 0x6E, 0xEE, 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, 0x01, 0x81, +0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, +0xF1, 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, +0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15, +0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, +0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, 0x03, 0x83, 0x43, +0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, +0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, +0xBB, 0x7B, 0xFB, 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, +0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, +0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF +}; + diff --git a/mysql/mysys/my_bitmap.c b/mysql/mysys/my_bitmap.c new file mode 100644 index 0000000..10a345c --- /dev/null +++ b/mysql/mysys/my_bitmap.c @@ -0,0 +1,672 @@ +/* + Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* + Handling of uchar arrays as large bitmaps. + + API limitations (or, rather asserted safety assumptions, + to encourage correct programming) + + * the internal size is a set of 32 bit words + * the number of bits specified in creation can be any number > 0 + a bitmap with zero bits can be created and initialized, but not used. + * there are THREAD safe versions of most calls called bitmap_lock_* + + TODO: + Make assembler THREAD safe versions of these using test-and-set instructions + + Original version created by Sergei Golubchik 2001 - 2004. + New version written and test program added and some changes to the interface + was made by Mikael Ronström 2005, with assistance of Tomas Ulin and Mats + Kindahl. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include +#include + +void create_last_word_mask(MY_BITMAP *map) +{ + /* Get the number of used bits (1..8) in the last byte */ + unsigned int const used= 1U + ((map->n_bits-1U) & 0x7U); + + /* + Create a mask with the upper 'unused' bits set and the lower 'used' + bits clear. The bits within each byte is stored in big-endian order. + */ + unsigned char const mask= (~((1 << used) - 1)) & 255; + + /* + The first bytes are to be set to zero since they represent real bits + in the bitvector. The last bytes are set to 0xFF since they represent + bytes not used by the bitvector. Finally the last byte contains bits + as set by the mask above. + */ + unsigned char *ptr= (unsigned char*)&map->last_word_mask; + + /* Avoid out-of-bounds read/write if we have zero bits. */ + map->last_word_ptr= map->n_bits == 0 ? map->bitmap : + map->bitmap + no_words_in_map(map) - 1; + + switch (no_bytes_in_map(map) & 3) { + case 1: + map->last_word_mask= ~0U; + ptr[0]= mask; + return; + case 2: + map->last_word_mask= ~0U; + ptr[0]= 0; + ptr[1]= mask; + return; + case 3: + map->last_word_mask= 0U; + ptr[2]= mask; + ptr[3]= 0xFFU; + return; + case 0: + map->last_word_mask= 0U; + ptr[3]= mask; + return; + } +} + + +static inline void bitmap_lock(MY_BITMAP *map MY_ATTRIBUTE((unused))) +{ + if (map->mutex) + mysql_mutex_lock(map->mutex); +} + + +static inline void bitmap_unlock(MY_BITMAP *map MY_ATTRIBUTE((unused))) +{ + if (map->mutex) + mysql_mutex_unlock(map->mutex); +} + + +static inline uint get_first_set(uint32 value, uint word_pos) +{ + uchar *byte_ptr= (uchar*)&value; + uchar byte_value; + uint byte_pos, bit_pos; + + for (byte_pos=0; byte_pos < 4; byte_pos++, byte_ptr++) + { + byte_value= *byte_ptr; + if (byte_value) + { + for (bit_pos=0; ; bit_pos++) + if (byte_value & (1 << bit_pos)) + return (word_pos*32) + (byte_pos*8) + bit_pos; + } + } + return MY_BIT_NONE; +} + + +static inline uint get_first_not_set(uint32 value, uint word_pos) +{ + uchar *byte_ptr= (uchar*)&value; + uchar byte_value; + uint byte_pos, bit_pos; + + for (byte_pos=0; byte_pos < 4; byte_pos++, byte_ptr++) + { + byte_value= *byte_ptr; + if (byte_value != 0xFF) + { + for (bit_pos=0; ; bit_pos++) + if (!(byte_value & (1 << bit_pos))) + return (word_pos*32) + (byte_pos*8) + bit_pos; + } + } + return MY_BIT_NONE; +} + + +my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits, + my_bool thread_safe MY_ATTRIBUTE((unused))) +{ + DBUG_ENTER("bitmap_init"); + if (!buf) + { + uint size_in_bytes= bitmap_buffer_size(n_bits); + uint extra= 0; + + if (thread_safe) + { + size_in_bytes= ALIGN_SIZE(size_in_bytes); + extra= sizeof(mysql_mutex_t); + } + map->mutex= 0; + + if (!(buf= (my_bitmap_map*) my_malloc(key_memory_MY_BITMAP_bitmap, + size_in_bytes+extra, MYF(MY_WME)))) + DBUG_RETURN(1); + + if (thread_safe) + { + map->mutex= (mysql_mutex_t *) ((char*) buf + size_in_bytes); + mysql_mutex_init(key_BITMAP_mutex, map->mutex, MY_MUTEX_INIT_FAST); + } + + } + + else + { + DBUG_ASSERT(thread_safe == 0); + map->mutex= NULL; + } + + + map->bitmap= buf; + map->n_bits= n_bits; + create_last_word_mask(map); + bitmap_clear_all(map); + DBUG_RETURN(0); +} + + +void bitmap_free(MY_BITMAP *map) +{ + DBUG_ENTER("bitmap_free"); + if (map->bitmap) + { + if (map->mutex) + mysql_mutex_destroy(map->mutex); + + my_free(map->bitmap); + map->bitmap=0; + } + DBUG_VOID_RETURN; +} + + +/* + test if bit already set and set it if it was not (thread unsafe method) + + SYNOPSIS + bitmap_fast_test_and_set() + MAP bit map struct + BIT bit number + + RETURN + 0 bit was not set + !=0 bit was set +*/ + +my_bool bitmap_fast_test_and_set(MY_BITMAP *map, uint bitmap_bit) +{ + uchar *value= ((uchar*) map->bitmap) + (bitmap_bit / 8); + uchar bit= 1 << ((bitmap_bit) & 7); + uchar res= (*value) & bit; + *value|= bit; + return res; +} + + +/* + test if bit already set and set it if it was not (thread safe method) + + SYNOPSIS + bitmap_fast_test_and_set() + map bit map struct + bitmap_bit bit number + + RETURN + 0 bit was not set + !=0 bit was set +*/ + +my_bool bitmap_test_and_set(MY_BITMAP *map, uint bitmap_bit) +{ + my_bool res; + DBUG_ASSERT(map->bitmap && bitmap_bit < map->n_bits); + bitmap_lock(map); + res= bitmap_fast_test_and_set(map, bitmap_bit); + bitmap_unlock(map); + return res; +} + +/* + test if bit already set and clear it if it was set(thread unsafe method) + + SYNOPSIS + bitmap_fast_test_and_set() + MAP bit map struct + BIT bit number + + RETURN + 0 bit was not set + !=0 bit was set +*/ + +my_bool bitmap_fast_test_and_clear(MY_BITMAP *map, uint bitmap_bit) +{ + uchar *byte= (uchar*) map->bitmap + (bitmap_bit / 8); + uchar bit= 1 << ((bitmap_bit) & 7); + uchar res= (*byte) & bit; + *byte&= ~bit; + return res; +} + + +my_bool bitmap_test_and_clear(MY_BITMAP *map, uint bitmap_bit) +{ + my_bool res; + DBUG_ASSERT(map->bitmap && bitmap_bit < map->n_bits); + bitmap_lock(map); + res= bitmap_fast_test_and_clear(map, bitmap_bit); + bitmap_unlock(map); + return res; +} + + +uint bitmap_set_next(MY_BITMAP *map) +{ + uint bit_found; + DBUG_ASSERT(map->bitmap); + if ((bit_found= bitmap_get_first(map)) != MY_BIT_NONE) + bitmap_set_bit(map, bit_found); + return bit_found; +} + + +/** + Set the specified number of bits in the bitmap buffer. + + @param map [IN] Bitmap + @param prefix_size [IN] Number of bits to be set + + @return void +*/ +void bitmap_set_prefix(MY_BITMAP *map, uint prefix_size) +{ + uint prefix_bytes, prefix_bits, d; + uchar *m= (uchar *)map->bitmap; + + DBUG_ASSERT(map->bitmap && + (prefix_size <= map->n_bits || prefix_size == (uint) ~0)); + set_if_smaller(prefix_size, map->n_bits); + if ((prefix_bytes= prefix_size / 8)) + memset(m, 0xff, prefix_bytes); + m+= prefix_bytes; + if ((prefix_bits= prefix_size & 7)) + { + *(m++)= (1 << prefix_bits)-1; + // As the prefix bits are set, lets count this byte too as a prefix byte. + prefix_bytes ++; + } + if ((d= no_bytes_in_map(map)-prefix_bytes)) + memset(m, 0, d); +} + + +my_bool bitmap_is_prefix(const MY_BITMAP *map, uint prefix_size) +{ + uint prefix_bits= prefix_size % 32; + my_bitmap_map *word_ptr= map->bitmap, last_word; + my_bitmap_map *end_prefix= word_ptr + prefix_size / 32; + DBUG_ASSERT(word_ptr && prefix_size <= map->n_bits); + + /* 1: Words that should be filled with 1 */ + for (; word_ptr < end_prefix; word_ptr++) + if (*word_ptr != 0xFFFFFFFF) + return FALSE; + + DBUG_ASSERT(map->n_bits > 0); + last_word= *map->last_word_ptr & ~map->last_word_mask; + + /* 2: Word which contains the end of the prefix (if any) */ + if (prefix_bits) + { + if (word_ptr == map->last_word_ptr) + return uint4korr((uchar*)&last_word) == (uint32)((1 << prefix_bits) - 1); + else if (uint4korr((uchar*)word_ptr) != (uint32)((1 << prefix_bits) - 1)) + return FALSE; + word_ptr++; + } + + /* 3: Words that should be filled with 0 */ + for (; word_ptr < map->last_word_ptr; word_ptr++) + if (*word_ptr != 0) + return FALSE; + + /* + We can end up here in two situations: + 1) We went through the whole bitmap in step 1. This will happen if the + whole bitmap is filled with 1 and prefix_size is a multiple of 32 + (i.e. the prefix does not end in the middle of a word). + In this case word_ptr will be larger than map->last_word_ptr. + 2) We have gone through steps 1-3 and just need to check that also + the last word is 0. + */ + return word_ptr > map->last_word_ptr || last_word == 0; +} + + +my_bool bitmap_is_set_all(const MY_BITMAP *map) +{ + my_bitmap_map *data_ptr= map->bitmap; + my_bitmap_map *end= map->last_word_ptr; + + DBUG_ASSERT(map->n_bits > 0); + for (; data_ptr < end; data_ptr++) + if (*data_ptr != 0xFFFFFFFF) + return FALSE; + if ((*map->last_word_ptr | map->last_word_mask) != 0xFFFFFFFF) + return FALSE; + return TRUE; +} + + +my_bool bitmap_is_clear_all(const MY_BITMAP *map) +{ + my_bitmap_map *data_ptr= map->bitmap; + my_bitmap_map *end= map->last_word_ptr; + + DBUG_ASSERT(map->n_bits > 0); + for (; data_ptr < end; data_ptr++) + if (*data_ptr) + return FALSE; + if (*map->last_word_ptr & ~map->last_word_mask) + return FALSE; + return TRUE; +} + +/* Return TRUE if map1 is a subset of map2 */ + +my_bool bitmap_is_subset(const MY_BITMAP *map1, const MY_BITMAP *map2) +{ + my_bitmap_map *m1= map1->bitmap, *m2= map2->bitmap, *end; + + DBUG_ASSERT(map1->bitmap && map2->bitmap && + map1->n_bits==map2->n_bits); + + end= map1->last_word_ptr; + for (; m1 < end; m1++, m2++) + if (*m1 & ~(*m2)) + return FALSE; + + DBUG_ASSERT(map1->n_bits > 0); + DBUG_ASSERT(map2->n_bits > 0); + + if ((*map1->last_word_ptr & ~map1->last_word_mask) & + ~(*map2->last_word_ptr & ~map2->last_word_mask)) + return FALSE; + return TRUE; +} + +/* True if bitmaps has any common bits */ + +my_bool bitmap_is_overlapping(const MY_BITMAP *map1, const MY_BITMAP *map2) +{ + my_bitmap_map *m1= map1->bitmap, *m2= map2->bitmap, *end; + + DBUG_ASSERT(map1->bitmap && map2->bitmap && + map1->n_bits==map2->n_bits); + + DBUG_ASSERT(map1->n_bits > 0); + DBUG_ASSERT(map2->n_bits > 0); + + end= map1->last_word_ptr; + for (; m1 < end; m1++, m2++) + if (*m1 & *m2) + return TRUE; + + if ((*map1->last_word_ptr & ~map1->last_word_mask) & + (*map2->last_word_ptr & ~map2->last_word_mask)) + return TRUE; + return FALSE; +} + + +void bitmap_intersect(MY_BITMAP *map, const MY_BITMAP *map2) +{ + my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end; + uint len= no_words_in_map(map), len2 = no_words_in_map(map2); + + DBUG_ASSERT(map->bitmap && map2->bitmap); + + end= to + MY_MIN(len, len2); + for (; to < end; to++, from++) + *to &= *from; + + if (len >= len2) + map->bitmap[len2 - 1] &= ~map2->last_word_mask; + + if (len2 < len) + { + end+=len-len2; + for (; to < end; to++) + *to= 0; + } +} + + +/* + Set/clear all bits above a bit. + + SYNOPSIS + bitmap_set_above() + map RETURN The bitmap to change. + from_byte The bitmap buffer byte offset to start with. + use_bit The bit value (1/0) to use for all upper bits. + + NOTE + You can only set/clear full bytes. + The function is meant for the situation that you copy a smaller bitmap + to a bigger bitmap. Bitmap lengths are always multiple of eigth (the + size of a byte). Using 'from_byte' saves multiplication and division + by eight during parameter passing. + + RETURN + void +*/ + +void bitmap_set_above(MY_BITMAP *map, uint from_byte, uint use_bit) +{ + uchar use_byte= use_bit ? 0xff : 0; + uchar *to= (uchar *)map->bitmap + from_byte; + uchar *end= (uchar *)map->bitmap + (map->n_bits+7)/8; + + for (; to < end; to++) + *to= use_byte; +} + + +void bitmap_subtract(MY_BITMAP *map, const MY_BITMAP *map2) +{ + my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end; + DBUG_ASSERT(map->bitmap && map2->bitmap && + map->n_bits==map2->n_bits); + DBUG_ASSERT(map->n_bits > 0); + end= map->last_word_ptr; + + for (; to <= end; to++, from++) + *to &= ~(*from); +} + + +void bitmap_union(MY_BITMAP *map, const MY_BITMAP *map2) +{ + my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end; + DBUG_ASSERT(map->bitmap && map2->bitmap && + map->n_bits==map2->n_bits); + DBUG_ASSERT(map->n_bits > 0); + end= map->last_word_ptr; + + for (; to <= end; to++, from++) + *to |= *from; +} + + +void bitmap_xor(MY_BITMAP *map, const MY_BITMAP *map2) +{ + my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end; + DBUG_ASSERT(map->bitmap && map2->bitmap && + map->n_bits==map2->n_bits); + DBUG_ASSERT(map->n_bits > 0); + end= map->last_word_ptr; + + for (; to <= end; to++, from++) + *to ^= *from; +} + + +void bitmap_invert(MY_BITMAP *map) +{ + my_bitmap_map *to= map->bitmap, *end; + DBUG_ASSERT(map->bitmap); + DBUG_ASSERT(map->n_bits > 0); + end= map->last_word_ptr; + + for (; to <= end; to++) + *to ^= 0xFFFFFFFF; +} + + +uint bitmap_bits_set(const MY_BITMAP *map) +{ + my_bitmap_map *data_ptr= map->bitmap; + my_bitmap_map *end= map->last_word_ptr; + uint res= 0; + DBUG_ASSERT(map->bitmap); + DBUG_ASSERT(map->n_bits > 0); + + for (; data_ptr < end; data_ptr++) + res+= my_count_bits_uint32(*data_ptr); + + /*Reset last bits to zero*/ + res+= my_count_bits_uint32(*map->last_word_ptr & ~map->last_word_mask); + return res; +} + + +void bitmap_copy(MY_BITMAP *map, const MY_BITMAP *map2) +{ + my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end; + DBUG_ASSERT(map->bitmap && map2->bitmap && + map->n_bits==map2->n_bits); + DBUG_ASSERT(map->n_bits > 0); + end= map->last_word_ptr; + + for (; to <= end; to++, from++) + *to = *from; +} + + +uint bitmap_get_first_set(const MY_BITMAP *map) +{ + uint word_pos; + my_bitmap_map *data_ptr, *end= map->last_word_ptr; + + DBUG_ASSERT(map->bitmap); + DBUG_ASSERT(map->n_bits > 0); + data_ptr= map->bitmap; + + for (word_pos=0; data_ptr < end; data_ptr++, word_pos++) + if (*data_ptr) + return get_first_set(*data_ptr, word_pos); + + return get_first_set(*map->last_word_ptr & ~map->last_word_mask, word_pos); +} + + +/** + Get the next set bit. + + @param map Bitmap + @param bitmap_bit Bit to start search from + + @return Index to first bit set after bitmap_bit +*/ + +uint bitmap_get_next_set(const MY_BITMAP *map, uint bitmap_bit) +{ + uint word_pos, byte_to_mask, i; + my_bitmap_map first_word; + unsigned char *ptr= (unsigned char*) &first_word; + my_bitmap_map *data_ptr, *end= map->last_word_ptr; + + DBUG_ASSERT(map->bitmap); + DBUG_ASSERT(map->n_bits > 0); + + /* Look for the next bit */ + bitmap_bit++; + if (bitmap_bit >= map->n_bits) + return MY_BIT_NONE; + word_pos= bitmap_bit / 32; + data_ptr= map->bitmap + word_pos; + first_word= *data_ptr; + + /* Mask out previous bits */ + byte_to_mask= (bitmap_bit % 32) / 8; + for (i= 0; i < byte_to_mask; i++) + ptr[i]= 0; + ptr[byte_to_mask]&= 0xFFU << (bitmap_bit & 7); + + if (data_ptr == end) + return get_first_set(first_word & ~map->last_word_mask, word_pos); + + if (first_word) + return get_first_set(first_word, word_pos); + + for (data_ptr++, word_pos++; data_ptr < end; data_ptr++, word_pos++) + if (*data_ptr) + return get_first_set(*data_ptr, word_pos); + + return get_first_set(*end & ~map->last_word_mask, word_pos); +} + + +uint bitmap_get_first(const MY_BITMAP *map) +{ + uint word_pos; + my_bitmap_map *data_ptr, *end= map->last_word_ptr; + + DBUG_ASSERT(map->bitmap); + DBUG_ASSERT(map->n_bits > 0); + data_ptr= map->bitmap; + + for (word_pos=0; data_ptr < end; data_ptr++, word_pos++) + if (*data_ptr != 0xFFFFFFFF) + return get_first_not_set(*data_ptr, word_pos); + + return get_first_not_set(*map->last_word_ptr | map->last_word_mask, word_pos); +} + + +uint bitmap_lock_set_next(MY_BITMAP *map) +{ + uint bit_found; + bitmap_lock(map); + bit_found= bitmap_set_next(map); + bitmap_unlock(map); + return bit_found; +} + + +void bitmap_lock_clear_bit(MY_BITMAP *map, uint bitmap_bit) +{ + bitmap_lock(map); + DBUG_ASSERT(map->bitmap && bitmap_bit < map->n_bits); + bitmap_clear_bit(map, bitmap_bit); + bitmap_unlock(map); +} diff --git a/mysql/mysys/my_chmod.c b/mysql/mysys/my_chmod.c new file mode 100644 index 0000000..389960d --- /dev/null +++ b/mysql/mysys/my_chmod.c @@ -0,0 +1,102 @@ +/* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA */ + + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + +/* + Generate MY_MODE representation from perm_flags. + + @param perm_flags Permission information + + @return Permission in MY_STAT format +*/ + +MY_MODE get_file_perm(ulong perm_flags) +{ + MY_MODE file_perm= 0; + if (perm_flags <= 0) + return file_perm; + +#if defined _WIN32 + if (perm_flags & (USER_READ | GROUP_READ | OTHERS_READ)) + file_perm|= _S_IREAD; + if (perm_flags & (USER_WRITE | GROUP_WRITE | OTHERS_WRITE)) + file_perm|= _S_IWRITE; +#else + if (perm_flags & USER_READ) + file_perm|= S_IRUSR; + if (perm_flags & USER_WRITE) + file_perm|= S_IWUSR; + if (perm_flags & USER_EXECUTE) + file_perm|= S_IXUSR; + if (perm_flags & GROUP_READ) + file_perm|= S_IRGRP; + if (perm_flags & GROUP_WRITE) + file_perm|= S_IWGRP; + if (perm_flags & GROUP_EXECUTE) + file_perm|= S_IXGRP; + if (perm_flags & OTHERS_READ) + file_perm|= S_IROTH; + if (perm_flags & OTHERS_WRITE) + file_perm|= S_IWOTH; + if (perm_flags & OTHERS_EXECUTE) + file_perm|= S_IXOTH; +#endif + + return file_perm; +} + +/* + my_chmod : Change permission on a file + + @param filename : Name of the file + @param perm_flags : Permission information + @param my_flags : Error handling + + @return + @retval TRUE : Error changing file permission + @retval FALSE : File permission changed successfully +*/ + +my_bool my_chmod(const char *filename, ulong perm_flags, myf my_flags) +{ + int ret_val; + MY_MODE file_perm; + DBUG_ENTER("my_chmod"); + DBUG_ASSERT(filename && filename[0]); + + file_perm= get_file_perm(perm_flags); +#ifdef _WIN32 + ret_val= _chmod(filename, file_perm); +#else + ret_val= chmod(filename, file_perm); +#endif + + if (ret_val && (my_flags & (MY_FAE+MY_WME))) + { + char errbuf[MYSYS_STRERROR_SIZE]; + set_my_errno(errno); + my_error(EE_CHANGE_PERMISSIONS, MYF(0), filename, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + + DBUG_RETURN(ret_val ? TRUE : FALSE); +} diff --git a/mysql/mysys/my_chsize.c b/mysql/mysys/my_chsize.c new file mode 100644 index 0000000..ca388dc --- /dev/null +++ b/mysql/mysys/my_chsize.c @@ -0,0 +1,106 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include "m_string.h" +#include "my_thread_local.h" + +/* + Change size of file. + + SYNOPSIS + my_chsize() + fd File descriptor + new_length New file size + filler If we don't have truncate, fill up all bytes after + new_length with this character + MyFlags Flags + + DESCRIPTION + my_chsize() truncates file if shorter else fill with the filler character. + The function also changes the file pointer. Usually it points to the end + of the file after execution. + + RETURN VALUE + 0 Ok + 1 Error +*/ +int my_chsize(File fd, my_off_t newlength, int filler, myf MyFlags) +{ + my_off_t oldsize; + uchar buff[IO_SIZE]; + DBUG_ENTER("my_chsize"); + DBUG_PRINT("my",("fd: %d length: %lu MyFlags: %d",fd,(ulong) newlength, + MyFlags)); + + if ((oldsize= my_seek(fd, 0L, MY_SEEK_END, MYF(MY_WME+MY_FAE))) == newlength) + DBUG_RETURN(0); + + DBUG_PRINT("info",("old_size: %ld", (ulong) oldsize)); + + if (oldsize > newlength) + { +#ifdef _WIN32 + if (my_win_chsize(fd, newlength)) + { + set_my_errno(errno); + goto err; + } + DBUG_RETURN(0); +#elif defined(HAVE_FTRUNCATE) + if (ftruncate(fd, (off_t) newlength)) + { + set_my_errno(errno); + goto err; + } + DBUG_RETURN(0); +#else + /* + Fill space between requested length and true length with 'filler' + We should never come here on any modern machine + */ + if (my_seek(fd, newlength, MY_SEEK_SET, MYF(MY_WME+MY_FAE)) + == MY_FILEPOS_ERROR) + { + goto err; + } + swap_variables(my_off_t, newlength, oldsize); +#endif + } + + /* Full file with 'filler' until it's as big as requested */ + memset(buff, filler, IO_SIZE); + while (newlength-oldsize > IO_SIZE) + { + if (my_write(fd, buff, IO_SIZE, MYF(MY_NABP))) + goto err; + oldsize+= IO_SIZE; + } + if (my_write(fd,buff,(size_t) (newlength-oldsize), MYF(MY_NABP))) + goto err; + DBUG_RETURN(0); + +err: + DBUG_PRINT("error", ("errno: %d", errno)); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_CHSIZE, MYF(0), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN(1); +} /* my_chsize */ diff --git a/mysql/mysys/my_compare.c b/mysql/mysys/my_compare.c new file mode 100644 index 0000000..a23c2a3 --- /dev/null +++ b/mysql/mysys/my_compare.c @@ -0,0 +1,474 @@ +/* Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include +#include +#include +#include +#include + +#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1) + +int ha_compare_text(const CHARSET_INFO *charset_info, uchar *a, uint a_length, + uchar *b, uint b_length, my_bool part_key, + my_bool skip_end_space) +{ + if (!part_key) + return charset_info->coll->strnncollsp(charset_info, a, a_length, + b, b_length, (my_bool)!skip_end_space); + return charset_info->coll->strnncoll(charset_info, a, a_length, + b, b_length, part_key); +} + + +static int compare_bin(uchar *a, uint a_length, uchar *b, uint b_length, + my_bool part_key, my_bool skip_end_space) +{ + uint length= MY_MIN(a_length, b_length); + uchar *end= a+ length; + int flag; + + while (a < end) + if ((flag= (int) *a++ - (int) *b++)) + return flag; + if (part_key && b_length < a_length) + return 0; + if (skip_end_space && a_length != b_length) + { + int swap= 1; + /* + We are using space compression. We have to check if longer key + has next character < ' ', in which case it's less than the shorter + key that has an implicite space afterwards. + + This code is identical to the one in + strings/ctype-simple.c:my_strnncollsp_simple + */ + if (a_length < b_length) + { + /* put shorter key in a */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + } + for (end= a + a_length-length; a < end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + return 0; + } + return (int) (a_length-b_length); +} + + +/* + Compare two keys + + SYNOPSIS + ha_key_cmp() + keyseg Array of key segments of key to compare + a First key to compare, in format from _mi_pack_key() + This is normally key specified by user + b Second key to compare. This is always from a row + key_length Length of key to compare. This can be shorter than + a to just compare sub keys + next_flag How keys should be compared + If bit SEARCH_FIND is not set the keys includes the row + position and this should also be compared + diff_pos OUT Number of first keypart where values differ, counting + from one. + diff_pos[1] OUT (b + diff_pos[1]) points to first value in tuple b + that is different from corresponding value in tuple a. + + EXAMPLES + Example1: if the function is called for tuples + ('aaa','bbb') and ('eee','fff'), then + diff_pos[0] = 1 (as 'aaa' != 'eee') + diff_pos[1] = 0 (offset from beggining of tuple b to 'eee' keypart). + + Example2: if the index function is called for tuples + ('aaa','bbb') and ('aaa','fff'), + diff_pos[0] = 2 (as 'aaa' != 'eee') + diff_pos[1] = 3 (offset from beggining of tuple b to 'fff' keypart, + here we assume that first key part is CHAR(3) NOT NULL) + + NOTES + Number-keys can't be splited + + RETURN VALUES + <0 If a < b + 0 If a == b + >0 If a > b +*/ + +#define FCMP(A,B) ((int) (A) - (int) (B)) + +int ha_key_cmp(HA_KEYSEG *keyseg, uchar *a, + uchar *b, uint key_length, uint nextflag, + uint *diff_pos) +{ + int flag; + int16 s_1,s_2; + int32 l_1,l_2; + uint32 u_1,u_2; + float f_1,f_2; + double d_1,d_2; + uint next_key_length; + uchar *orig_b= b; + + *diff_pos=0; + for ( ; (int) key_length >0 ; key_length=next_key_length, keyseg++) + { + uchar *end; + uint piks=! (keyseg->flag & HA_NO_SORT); + (*diff_pos)++; + diff_pos[1]= (uint)(b - orig_b); + + /* Handle NULL part */ + if (keyseg->null_bit) + { + key_length--; + if (*a != *b && piks) + { + flag = (int) *a - (int) *b; + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + } + b++; + if (!*a++) /* If key was NULL */ + { + if (nextflag == (SEARCH_FIND | SEARCH_UPDATE)) + nextflag=SEARCH_SAME; /* Allow duplicate keys */ + else if (nextflag & SEARCH_NULL_ARE_NOT_EQUAL) + { + /* + This is only used from mi_check() to calculate cardinality. + It can't be used when searching for a key as this would cause + compare of (a,b) and (b,a) to return the same value. + */ + return -1; + } + next_key_length=key_length; + continue; /* To next key part */ + } + } + end= a + MY_MIN(keyseg->length, key_length); + next_key_length=key_length-keyseg->length; + + switch ((enum ha_base_keytype) keyseg->type) { + case HA_KEYTYPE_TEXT: /* Ascii; Key is converted */ + if (keyseg->flag & HA_SPACE_PACK) + { + int a_length,b_length,pack_length; + get_key_length(a_length,a); + get_key_pack_length(b_length,pack_length,b); + next_key_length=key_length-b_length-pack_length; + + if (piks && + (flag=ha_compare_text(keyseg->charset,a,a_length,b,b_length, + (my_bool) ((nextflag & SEARCH_PREFIX) && + next_key_length <= 0), + (my_bool)!(nextflag & SEARCH_PREFIX)))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a+=a_length; + b+=b_length; + break; + } + else + { + uint length=(uint) (end-a), a_length=length, b_length=length; + if (piks && + (flag= ha_compare_text(keyseg->charset, a, a_length, b, b_length, + (my_bool) ((nextflag & SEARCH_PREFIX) && + next_key_length <= 0), + (my_bool)!(nextflag & SEARCH_PREFIX)))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a=end; + b+=length; + } + break; + case HA_KEYTYPE_BINARY: + case HA_KEYTYPE_BIT: + if (keyseg->flag & HA_SPACE_PACK) + { + int a_length,b_length,pack_length; + get_key_length(a_length,a); + get_key_pack_length(b_length,pack_length,b); + next_key_length=key_length-b_length-pack_length; + + if (piks && + (flag=compare_bin(a,a_length,b,b_length, + (my_bool) ((nextflag & SEARCH_PREFIX) && + next_key_length <= 0),1))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a+=a_length; + b+=b_length; + break; + } + else + { + uint length=keyseg->length; + if (piks && + (flag=compare_bin(a,length,b,length, + (my_bool) ((nextflag & SEARCH_PREFIX) && + next_key_length <= 0),0))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a+=length; + b+=length; + } + break; + case HA_KEYTYPE_VARTEXT1: + case HA_KEYTYPE_VARTEXT2: + { + int a_length,b_length,pack_length; + get_key_length(a_length,a); + get_key_pack_length(b_length,pack_length,b); + next_key_length=key_length-b_length-pack_length; + + if (piks && + (flag= ha_compare_text(keyseg->charset,a,a_length,b,b_length, + (my_bool) ((nextflag & SEARCH_PREFIX) && + next_key_length <= 0), + (my_bool) ((nextflag & (SEARCH_FIND | + SEARCH_UPDATE)) == + SEARCH_FIND && + ! (keyseg->flag & + HA_END_SPACE_ARE_EQUAL))))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a+= a_length; + b+= b_length; + break; + } + break; + case HA_KEYTYPE_VARBINARY1: + case HA_KEYTYPE_VARBINARY2: + { + int a_length,b_length,pack_length; + get_key_length(a_length,a); + get_key_pack_length(b_length,pack_length,b); + next_key_length=key_length-b_length-pack_length; + + if (piks && + (flag=compare_bin(a,a_length,b,b_length, + (my_bool) ((nextflag & SEARCH_PREFIX) && + next_key_length <= 0), 0))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a+=a_length; + b+=b_length; + } + break; + case HA_KEYTYPE_INT8: + { + int i_1= (int) *((signed char*) a); + int i_2= (int) *((signed char*) b); + if (piks && (flag = CMP_NUM(i_1,i_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b++; + break; + } + case HA_KEYTYPE_SHORT_INT: + s_1= mi_sint2korr(a); + s_2= mi_sint2korr(b); + if (piks && (flag = CMP_NUM(s_1,s_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 2; /* sizeof(short int); */ + break; + case HA_KEYTYPE_USHORT_INT: + { + uint16 us_1,us_2; + us_1= mi_sint2korr(a); + us_2= mi_sint2korr(b); + if (piks && (flag = CMP_NUM(us_1,us_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+=2; /* sizeof(short int); */ + break; + } + case HA_KEYTYPE_LONG_INT: + l_1= mi_sint4korr(a); + l_2= mi_sint4korr(b); + if (piks && (flag = CMP_NUM(l_1,l_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 4; /* sizeof(long int); */ + break; + case HA_KEYTYPE_ULONG_INT: + u_1= mi_sint4korr(a); + u_2= mi_sint4korr(b); + if (piks && (flag = CMP_NUM(u_1,u_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 4; /* sizeof(long int); */ + break; + case HA_KEYTYPE_INT24: + l_1=mi_sint3korr(a); + l_2=mi_sint3korr(b); + if (piks && (flag = CMP_NUM(l_1,l_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 3; + break; + case HA_KEYTYPE_UINT24: + l_1=mi_uint3korr(a); + l_2=mi_uint3korr(b); + if (piks && (flag = CMP_NUM(l_1,l_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 3; + break; + case HA_KEYTYPE_FLOAT: + mi_float4get(f_1,a); + mi_float4get(f_2,b); + /* + The following may give a compiler warning about floating point + comparison not being safe, but this is ok in this context as + we are bascily doing sorting + */ + if (piks && (flag = CMP_NUM(f_1,f_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 4; /* sizeof(float); */ + break; + case HA_KEYTYPE_DOUBLE: + mi_float8get(d_1,a); + mi_float8get(d_2,b); + /* + The following may give a compiler warning about floating point + comparison not being safe, but this is ok in this context as + we are bascily doing sorting + */ + if (piks && (flag = CMP_NUM(d_1,d_2))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 8; /* sizeof(double); */ + break; + case HA_KEYTYPE_NUM: /* Numeric key */ + { + int swap_flag= 0; + int alength,blength; + + if (keyseg->flag & HA_REVERSE_SORT) + { + swap_variables(uchar*, a, b); + swap_flag=1; /* Remember swap of a & b */ + end= a+ (int) (end-b); + } + if (keyseg->flag & HA_SPACE_PACK) + { + alength= *a++; blength= *b++; + end=a+alength; + next_key_length=key_length-blength-1; + } + else + { + alength= (int) (end-a); + blength=keyseg->length; + /* remove pre space from keys */ + for ( ; alength && *a == ' ' ; a++, alength--) ; + for ( ; blength && *b == ' ' ; b++, blength--) ; + } + if (piks) + { + if (*a == '-') + { + if (*b != '-') + return -1; + a++; b++; + swap_variables(uchar*, a, b); + swap_variables(int, alength, blength); + swap_flag=1-swap_flag; + alength--; blength--; + end=a+alength; + } + else if (*b == '-') + return 1; + while (alength && (*a == '+' || *a == '0')) + { + a++; alength--; + } + while (blength && (*b == '+' || *b == '0')) + { + b++; blength--; + } + if (alength != blength) + return (alength < blength) ? -1 : 1; + while (a < end) + if (*a++ != *b++) + return ((int) a[-1] - (int) b[-1]); + } + else + { + b+=(end-a); + a=end; + } + + if (swap_flag) /* Restore pointers */ + swap_variables(uchar*, a, b); + break; + } + case HA_KEYTYPE_LONGLONG: + { + longlong ll_a,ll_b; + ll_a= mi_sint8korr(a); + ll_b= mi_sint8korr(b); + if (piks && (flag = CMP_NUM(ll_a,ll_b))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 8; + break; + } + case HA_KEYTYPE_ULONGLONG: + { + ulonglong ll_a,ll_b; + ll_a= mi_uint8korr(a); + ll_b= mi_uint8korr(b); + if (piks && (flag = CMP_NUM(ll_a,ll_b))) + return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); + a= end; + b+= 8; + break; + } + case HA_KEYTYPE_END: /* Ready */ + goto end; /* diff_pos is incremented */ + } + } + (*diff_pos)++; +end: + if (!(nextflag & SEARCH_FIND)) + { + uint i; + if (nextflag & (SEARCH_NO_FIND | SEARCH_LAST)) /* Find record after key */ + return (nextflag & (SEARCH_BIGGER | SEARCH_LAST)) ? -1 : 1; + flag=0; + for (i=keyseg->length ; i-- > 0 ; ) + { + if (*a++ != *b++) + { + flag= FCMP(a[-1],b[-1]); + break; + } + } + if (nextflag & SEARCH_SAME) + return (flag); /* read same */ + if (nextflag & SEARCH_BIGGER) + return (flag <= 0 ? -1 : 1); /* read next */ + return (flag < 0 ? -1 : 1); /* read previous */ + } + return 0; +} /* ha_key_cmp */ + + diff --git a/mysql/mysys/my_compress.c b/mysql/mysys/my_compress.c new file mode 100644 index 0000000..1869560 --- /dev/null +++ b/mysql/mysys/my_compress.c @@ -0,0 +1,267 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Written by Sinisa Milivojevic */ + +#include +#include +#ifdef HAVE_COMPRESS +#include +#include +#include + +/* + This replaces the packet with a compressed packet + + SYNOPSIS + my_compress() + packet Data to compress. This is is replaced with the compressed data. + len Length of data to compress at 'packet' + complen out: 0 if packet was not compressed + + RETURN + 1 error. 'len' is not changed' + 0 ok. In this case 'len' contains the size of the compressed packet +*/ + +my_bool my_compress(uchar *packet, size_t *len, size_t *complen) +{ + DBUG_ENTER("my_compress"); + if (*len < MIN_COMPRESS_LENGTH) + { + *complen=0; + DBUG_PRINT("note",("Packet too short: Not compressed")); + } + else + { + uchar *compbuf=my_compress_alloc(packet,len,complen); + if (!compbuf) + DBUG_RETURN(*complen ? 0 : 1); + memcpy(packet,compbuf,*len); + my_free(compbuf); + } + DBUG_RETURN(0); +} + + +uchar *my_compress_alloc(const uchar *packet, size_t *len, size_t *complen) +{ + uchar *compbuf; + uLongf tmp_complen; + int res; + *complen= *len * 120 / 100 + 12; + + if (!(compbuf= (uchar *) my_malloc(key_memory_my_compress_alloc, + *complen, MYF(MY_WME)))) + return 0; /* Not enough memory */ + + tmp_complen= (uint) *complen; + res= compress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet, (uLong) *len); + *complen= tmp_complen; + + if (res != Z_OK) + { + my_free(compbuf); + return 0; + } + + if (*complen >= *len) + { + *complen= 0; + my_free(compbuf); + DBUG_PRINT("note",("Packet got longer on compression; Not compressed")); + return 0; + } + /* Store length of compressed packet in *len */ + swap_variables(size_t, *len, *complen); + return compbuf; +} + + +/* + Uncompress packet + + SYNOPSIS + my_uncompress() + packet Compressed data. This is is replaced with the orignal data. + len Length of compressed data + complen Length of the packet buffer (must be enough for the original + data) + + RETURN + 1 error + 0 ok. In this case 'complen' contains the updated size of the + real data. +*/ + +my_bool my_uncompress(uchar *packet, size_t len, size_t *complen) +{ + uLongf tmp_complen; + DBUG_ENTER("my_uncompress"); + + if (*complen) /* If compressed */ + { + uchar *compbuf= (uchar *) my_malloc(key_memory_my_compress_alloc, + *complen,MYF(MY_WME)); + int error; + if (!compbuf) + DBUG_RETURN(1); /* Not enough memory */ + + tmp_complen= (uint) *complen; + error= uncompress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet, + (uLong) len); + *complen= tmp_complen; + if (error != Z_OK) + { /* Probably wrong packet */ + DBUG_PRINT("error",("Can't uncompress packet, error: %d",error)); + my_free(compbuf); + DBUG_RETURN(1); + } + memcpy(packet, compbuf, *complen); + my_free(compbuf); + } + else + *complen= len; + DBUG_RETURN(0); +} + +/* + Internal representation of the frm blob is: + + ver 4 bytes + orglen 4 bytes + complen 4 bytes +*/ + +#define BLOB_HEADER 12 + + +/* + packfrm is a method used to compress the frm file for storage in a + handler. This method was developed for the NDB handler and has been moved + here to serve also other uses. + + SYNOPSIS + packfrm() + data Data reference to frm file data. + len Length of frm file data + out:pack_data Reference to the pointer to the packed frm data + out:pack_len Length of packed frm file data + + NOTES + data is replaced with compressed content + + RETURN VALUES + 0 Success + >0 Failure +*/ + +int packfrm(uchar *data, size_t len, + uchar **pack_data, size_t *pack_len) +{ + int error; + size_t org_len, comp_len, blob_len; + uchar *blob; + DBUG_ENTER("packfrm"); + DBUG_PRINT("enter", ("data: 0x%lx len: %lu", (long) data, (ulong) len)); + + error= 1; + org_len= len; + if (my_compress((uchar*)data, &org_len, &comp_len)) + goto err; + + DBUG_PRINT("info", ("org_len: %lu comp_len: %lu", (ulong) org_len, + (ulong) comp_len)); + DBUG_DUMP("compressed", data, org_len); + + error= 2; + blob_len= BLOB_HEADER + org_len; + if (!(blob= (uchar*) my_malloc(key_memory_pack_frm, + blob_len,MYF(MY_WME)))) + goto err; + + /* Store compressed blob in machine independent format */ + int4store(blob, 1); + int4store(blob+4, (uint32) len); + int4store(blob+8, (uint32) org_len); /* compressed length */ + + /* Copy frm data into blob, already in machine independent format */ + memcpy(blob+BLOB_HEADER, data, org_len); + + *pack_data= blob; + *pack_len= blob_len; + error= 0; + + DBUG_PRINT("exit", ("pack_data: 0x%lx pack_len: %lu", + (long) *pack_data, (ulong) *pack_len)); +err: + DBUG_RETURN(error); + +} + +/* + unpackfrm is a method used to decompress the frm file received from a + handler. This method was developed for the NDB handler and has been moved + here to serve also other uses for other clustered storage engines. + + SYNOPSIS + unpackfrm() + pack_data Data reference to packed frm file data + out:unpack_data Reference to the pointer to the unpacked frm data + out:unpack_len Length of unpacked frm file data + + RETURN VALUES¨ + 0 Success + >0 Failure +*/ + +int unpackfrm(uchar **unpack_data, size_t *unpack_len, + const uchar *pack_data) +{ + uchar *data; + size_t complen, orglen; + ulong ver; + DBUG_ENTER("unpackfrm"); + DBUG_PRINT("enter", ("pack_data: 0x%lx", (long) pack_data)); + + ver= uint4korr(pack_data); + orglen= uint4korr(pack_data+4); + complen= uint4korr(pack_data+8); + + DBUG_PRINT("blob",("ver: %lu complen: %lu orglen: %lu", + ver, (ulong) complen, (ulong) orglen)); + DBUG_DUMP("blob->data", pack_data + BLOB_HEADER, complen); + + if (ver != 1) + DBUG_RETURN(1); + if (!(data= my_malloc(key_memory_pack_frm, + MY_MAX(orglen, complen), MYF(MY_WME)))) + DBUG_RETURN(2); + memcpy(data, pack_data + BLOB_HEADER, complen); + + if (my_uncompress(data, complen, &orglen)) + { + my_free(data); + DBUG_RETURN(3); + } + + *unpack_data= data; + *unpack_len= orglen; + + DBUG_PRINT("exit", ("frmdata: 0x%lx len: %lu", (long) *unpack_data, + (ulong) *unpack_len)); + DBUG_RETURN(0); +} +#endif /* HAVE_COMPRESS */ diff --git a/mysql/mysys/my_copy.c b/mysql/mysys/my_copy.c new file mode 100644 index 0000000..a416389 --- /dev/null +++ b/mysql/mysys/my_copy.c @@ -0,0 +1,153 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include /* for stat */ +#include +#include "mysys_err.h" +#include "my_thread_local.h" + +#ifndef _WIN32 +#include +#else +#include +#endif + +/* + int my_copy(const char *from, const char *to, myf MyFlags) + + NOTES + Ordinary ownership and accesstimes are copied from 'from-file' + If MyFlags & MY_HOLD_ORIGINAL_MODES is set and to-file exists then + the modes of to-file isn't changed + If MyFlags & MY_DONT_OVERWRITE_FILE is set, we will give an error + if the file existed. + + WARNING + Don't set MY_FNABP or MY_NABP bits on when calling this function ! + + RETURN + 0 ok + # Error + +*/ + +int my_copy(const char *from, const char *to, myf MyFlags) +{ + size_t Count; + my_bool new_file_stat= 0; /* 1 if we could stat "to" */ + int create_flag; + File from_file,to_file; + uchar buff[IO_SIZE]; + MY_STAT stat_buff,new_stat_buff; + DBUG_ENTER("my_copy"); + DBUG_PRINT("my",("from %s to %s MyFlags %d", from, to, MyFlags)); + + from_file=to_file= -1; + memset(&new_stat_buff, 0, sizeof(MY_STAT)); + DBUG_ASSERT(!(MyFlags & (MY_FNABP | MY_NABP))); /* for my_read/my_write */ + if (MyFlags & MY_HOLD_ORIGINAL_MODES) /* Copy stat if possible */ + new_file_stat= MY_TEST(my_stat((char*) to, &new_stat_buff, MYF(0))); + + if ((from_file=my_open(from,O_RDONLY | O_SHARE,MyFlags)) >= 0) + { + if (!my_stat(from, &stat_buff, MyFlags)) + { + set_my_errno(errno); + goto err; + } + if (MyFlags & MY_HOLD_ORIGINAL_MODES && new_file_stat) + stat_buff=new_stat_buff; + create_flag= (MyFlags & MY_DONT_OVERWRITE_FILE) ? O_EXCL : O_TRUNC; + + if ((to_file= my_create(to,(int) stat_buff.st_mode, + O_WRONLY | create_flag | O_BINARY | O_SHARE, + MyFlags)) < 0) + goto err; + + while ((Count=my_read(from_file, buff, sizeof(buff), MyFlags)) != 0) + { + if (Count == (uint) -1 || + my_write(to_file,buff,Count,MYF(MyFlags | MY_NABP))) + goto err; + } + + /* sync the destination file */ + if (MyFlags & MY_SYNC) + { + if (my_sync(to_file, MyFlags)) + goto err; + } + + if (my_close(from_file,MyFlags) | my_close(to_file,MyFlags)) + DBUG_RETURN(-1); /* Error on close */ + + /* Reinitialize closed fd, so they won't be closed again. */ + from_file= -1; + to_file= -1; + + /* Copy modes if possible */ + + if (MyFlags & MY_HOLD_ORIGINAL_MODES && !new_file_stat) + DBUG_RETURN(0); /* File copyed but not stat */ + /* Copy modes */ + if (chmod(to, stat_buff.st_mode & 07777)) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CHANGE_PERMISSIONS, MYF(0), from, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + goto err; + } +#if !defined(_WIN32) + /* Copy ownership */ + if (chown(to, stat_buff.st_uid, stat_buff.st_gid)) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CHANGE_OWNERSHIP, MYF(0), from, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + goto err; + } +#endif + + if (MyFlags & MY_COPYTIME) + { + struct utimbuf timep; + timep.actime = stat_buff.st_atime; + timep.modtime = stat_buff.st_mtime; + (void) utime((char*) to, &timep); /* last accessed and modified times */ + } + + DBUG_RETURN(0); + } + +err: + if (from_file >= 0) (void) my_close(from_file,MyFlags); + if (to_file >= 0) + { + (void) my_close(to_file, MyFlags); + /* attempt to delete the to-file we've partially written */ + (void) my_delete(to, MyFlags); + } + DBUG_RETURN(-1); +} /* my_copy */ diff --git a/mysql/mysys/my_create.c b/mysql/mysys/my_create.c new file mode 100644 index 0000000..a140eb7 --- /dev/null +++ b/mysql/mysys/my_create.c @@ -0,0 +1,74 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include +#include "mysys_err.h" +#include +#include +#include "my_thread_local.h" +#if defined(_WIN32) +#include +#endif + + /* + ** Create a new file + ** Arguments: + ** Path-name of file + ** Read | write on file (umask value) + ** Read & Write on open file + ** Special flags + */ + + +File my_create(const char *FileName, int CreateFlags, int access_flags, + myf MyFlags) +{ + int fd, rc; + DBUG_ENTER("my_create"); + DBUG_PRINT("my",("Name: '%s' CreateFlags: %d AccessFlags: %d MyFlags: %d", + FileName, CreateFlags, access_flags, MyFlags)); +#if defined(_WIN32) + fd= my_win_open(FileName, access_flags | O_CREAT); +#else + fd= open((char *) FileName, access_flags | O_CREAT, + CreateFlags ? CreateFlags : my_umask); +#endif + + if ((MyFlags & MY_SYNC_DIR) && (fd >=0) && + my_sync_dir_by_file(FileName, MyFlags)) + { + my_close(fd, MyFlags); + fd= -1; + } + + rc= my_register_filename(fd, FileName, FILE_BY_CREATE, + EE_CANTCREATEFILE, MyFlags); + /* + my_register_filename() may fail on some platforms even if the call to + *open() above succeeds. In this case, don't leave the stale file because + callers assume the file to not exist if my_create() fails, so they don't + do any cleanups. + */ + if (unlikely(fd >= 0 && rc < 0)) + { + int tmp= my_errno(); + my_close(fd, MyFlags); + my_delete(FileName, MyFlags); + set_my_errno(tmp); + } + + DBUG_RETURN(rc); +} /* my_create */ diff --git a/mysql/mysys/my_delete.c b/mysql/mysys/my_delete.c new file mode 100644 index 0000000..7f82e60 --- /dev/null +++ b/mysql/mysys/my_delete.c @@ -0,0 +1,133 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + + +int my_delete(const char *name, myf MyFlags) +{ + int err; + DBUG_ENTER("my_delete"); + DBUG_PRINT("my",("name %s MyFlags %d", name, MyFlags)); + + if ((err = unlink(name)) == -1) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_DELETE, MYF(0), + name, errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + } + else if ((MyFlags & MY_SYNC_DIR) && + my_sync_dir_by_file(name, MyFlags)) + err= -1; + DBUG_RETURN(err); +} /* my_delete */ + +#if defined(_WIN32) +/** + Delete file which is possibly not closed. + + This function is intended to be used exclusively as a temporal solution + for Win NT in case when it is needed to delete a not closed file (note + that the file must be opened everywhere with FILE_SHARE_DELETE mode). + Deleting not-closed files can not be supported on Win 98|ME (and because + of that is considered harmful). + + The function deletes the file with its preliminary renaming. This is + because when not-closed share-delete file is deleted it still lives on + a disk until it will not be closed everwhere. This may conflict with an + attempt to create a new file with the same name. The deleted file is + renamed to ..deleted where - the initial name of the + file, - a hexadecimal number chosen to make the temporal name to + be unique. + + @param the name of the being deleted file + @param the flags instructing how to react on an error internally in + the function + + @note The per-thread @c my_errno holds additional info for a caller to + decide how critical the error can be. + + @retval + 0 ok + @retval + 1 error + + +*/ +int nt_share_delete(const char *name, myf MyFlags) +{ + char buf[MAX_PATH + 20]; + ulong cnt; + DBUG_ENTER("nt_share_delete"); + DBUG_PRINT("my",("name %s MyFlags %d", name, MyFlags)); + + for (cnt= GetTickCount(); cnt; cnt--) + { + errno= 0; + sprintf(buf, "%s.%08X.deleted", name, cnt); + if (MoveFile(name, buf)) + break; + + if ((errno= GetLastError()) == ERROR_ALREADY_EXISTS) + continue; + + /* This happened during tests with MERGE tables. */ + if (errno == ERROR_ACCESS_DENIED) + continue; + + DBUG_PRINT("warning", ("Failed to rename %s to %s, errno: %d", + name, buf, errno)); + break; + } + + if (errno == ERROR_FILE_NOT_FOUND) + { + set_my_errno(ENOENT); // marking, that `name' doesn't exist + } + else if (errno == 0) + { + if (DeleteFile(buf)) + DBUG_RETURN(0); + /* + The below is more complicated than necessary. For some reason, the + assignment to my_errno clears the error number, which is retrieved + by GetLastError() (VC2005EE). Assigning to errno first, allows to + retrieve the correct value. + */ + errno= GetLastError(); + if (errno == 0) + set_my_errno(ENOENT); // marking, that `buf' doesn't exist + else + set_my_errno(errno); + } + else + set_my_errno(errno); + + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_DELETE, MYF(0), + name, my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN(-1); +} +#endif diff --git a/mysql/mysys/my_div.c b/mysql/mysys/my_div.c new file mode 100644 index 0000000..a50e326 --- /dev/null +++ b/mysql/mysys/my_div.c @@ -0,0 +1,38 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "mysys_priv.h" +#include "my_sys.h" + +/* + Get filename of file + + SYNOPSIS + my_filename() + fd File descriptor +*/ + +char * my_filename(File fd) +{ + DBUG_ENTER("my_filename"); + if ((uint) fd >= (uint) my_file_limit) + DBUG_RETURN((char*) "UNKNOWN"); + if (fd >= 0 && my_file_info[fd].type != UNOPEN) + { + DBUG_RETURN(my_file_info[fd].name); + } + else + DBUG_RETURN((char*) "UNOPENED"); /* Debug message */ +} diff --git a/mysql/mysys/my_error.c b/mysql/mysys/my_error.c new file mode 100644 index 0000000..9262488 --- /dev/null +++ b/mysql/mysys/my_error.c @@ -0,0 +1,477 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include +#include +#include "my_base.h" +#include "my_handler_errors.h" +#include "my_thread_local.h" + +/* Max length of a error message. Should be kept in sync with MYSQL_ERRMSG_SIZE. */ +#define ERRMSGSIZE (512) + +/* Define some external variables for error handling */ + +/* + WARNING! + my_error family functions have to be used according following rules: + - if message has no parameters, use my_message(ER_CODE, ER(ER_CODE), MYF(N)) + - if message has parameters and is registered: my_error(ER_CODE, MYF(N), ...) + - for free-form messages use my_printf_error(ER_CODE, format, MYF(N), ...) + + These three send their messages using error_handler_hook, which normally + means we'll send them to the client if we have one, or to error-log / stderr + otherwise. +*/ + +/* + Message texts are registered into a linked list of 'my_err_head' structs. + Each struct contains + (1.) a pointer to a function that returns C character strings with '\0' + termination + (2.) the error number for the first message in the array (array index 0) + (3.) the error number for the last message in the array + (array index (last - first)). + The function may return NULL pointers and pointers to empty strings. + Both kinds will be translated to "Unknown error %d.", if my_error() + is called with a respective error number. + The list of header structs is sorted in increasing order of error numbers. + Negative error numbers are allowed. Overlap of error numbers is not allowed. + Not registered error numbers will be translated to "Unknown error %d.". +*/ +static struct my_err_head +{ + struct my_err_head *meh_next; /* chain link */ + const char* (*get_errmsg) (int); /* returns error message format */ + int meh_first; /* error number matching array slot 0 */ + int meh_last; /* error number matching last slot */ +} my_errmsgs_globerrs = {NULL, get_global_errmsg, EE_ERROR_FIRST, EE_ERROR_LAST}; + +static struct my_err_head *my_errmsgs_list= &my_errmsgs_globerrs; + + +/** + Get a string describing a system or handler error. thread-safe. + + @param buf a buffer in which to return the error message + @param len the size of the aforementioned buffer + @param nr the error number + + @retval buf always buf. for signature compatibility with strerror(3). +*/ + +char *my_strerror(char *buf, size_t len, int nr) +{ + char *msg= NULL; + + buf[0]= '\0'; /* failsafe */ + + /* + These (handler-) error messages are shared by perror, as required + by the principle of least surprise. + */ + if ((nr >= HA_ERR_FIRST) && (nr <= HA_ERR_LAST)) + msg= (char *) handler_error_messages[nr - HA_ERR_FIRST]; + + if (msg != NULL) + strmake(buf, msg, len - 1); + else + { + /* + On Windows, do things the Windows way. On a system that supports both + the GNU and the XSI variant, use whichever was configured (GNU); if + this choice is not advertised, use the default (POSIX/XSI). Testing + for __GNUC__ is not sufficient to determine whether this choice exists. + */ +#if defined(_WIN32) + strerror_s(buf, len, nr); + if (thr_winerr() != 0) + { + /* + If error code is EINVAL, and Windows Error code has been set, we append + the Windows error code to the message. + */ + if (nr == EINVAL) + { + char tmp_buff[256] ; + + my_snprintf(tmp_buff, sizeof(tmp_buff), + " [OS Error Code : 0x%x]", thr_winerr()); + + strcat_s(buf, len, tmp_buff); + } + + set_thr_winerr(0); + } +#elif ((defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE >= 200112L)) || \ + (defined _XOPEN_SOURCE && (_XOPEN_SOURCE >= 600))) && \ + ! defined _GNU_SOURCE + strerror_r(nr, buf, len); /* I can build with or without GNU */ +#elif defined _GNU_SOURCE + char *r= strerror_r(nr, buf, len); + if (r != buf) /* Want to help, GNU? */ + strmake(buf, r, len - 1); /* Then don't. */ +#else + strerror_r(nr, buf, len); +#endif + } + + /* + strerror() return values are implementation-dependent, so let's + be pragmatic. + */ + if (!buf[0]) + strmake(buf, "unknown error", len - 1); + + return buf; +} + + +/** + @brief Get an error format string from one of the my_error_register()ed sets + + @note + NULL values are possible even within a registered range. + + @param nr Errno + + @retval NULL if no message is registered for this error number + @retval str C-string +*/ + +const char *my_get_err_msg(int nr) +{ + const char *format; + struct my_err_head *meh_p; + + /* Search for the range this error is in. */ + for (meh_p= my_errmsgs_list; meh_p; meh_p= meh_p->meh_next) + if (nr <= meh_p->meh_last) + break; + + /* + If we found the range this error number is in, get the format string. + If the string is empty, or a NULL pointer, or if we're out of return, + we return NULL. + */ + if (!(format= (meh_p && (nr >= meh_p->meh_first)) ? + meh_p->get_errmsg(nr) : NULL) || + !*format) + return NULL; + + return format; +} + + +/** + Fill in and print a previously registered error message. + + @note + Goes through the (sole) function registered in error_handler_hook + + @param nr error number + @param MyFlags Flags + @param ... variable list matching that error format string +*/ + +void my_error(int nr, myf MyFlags, ...) +{ + const char *format; + va_list args; + char ebuff[ERRMSGSIZE]; + DBUG_ENTER("my_error"); + DBUG_PRINT("my", ("nr: %d MyFlags: %d errno: %d", nr, MyFlags, errno)); + + if (!(format = my_get_err_msg(nr))) + (void) my_snprintf(ebuff, sizeof(ebuff), "Unknown error %d", nr); + else + { + va_start(args,MyFlags); + (void) my_vsnprintf_ex(&my_charset_utf8_general_ci, ebuff, + sizeof(ebuff), format, args); + va_end(args); + } + (*error_handler_hook)(nr, ebuff, MyFlags); + DBUG_VOID_RETURN; +} + + +/** + Print an error message. + + @note + Goes through the (sole) function registered in error_handler_hook + + @param error error number + @param format format string + @param MyFlags Flags + @param ... variable list matching that error format string +*/ + +void my_printf_error(uint error, const char *format, myf MyFlags, ...) +{ + va_list args; + char ebuff[ERRMSGSIZE]; + DBUG_ENTER("my_printf_error"); + DBUG_PRINT("my", ("nr: %d MyFlags: %d errno: %d Format: %s", + error, MyFlags, errno, format)); + + va_start(args,MyFlags); + (void) my_vsnprintf_ex(&my_charset_utf8_general_ci, ebuff, + sizeof(ebuff), format, args); + va_end(args); + (*error_handler_hook)(error, ebuff, MyFlags); + DBUG_VOID_RETURN; +} + +/** + Print an error message. + + @note + Goes through the (sole) function registered in error_handler_hook + + @param error error number + @param format format string + @param MyFlags Flags + @param ap variable list matching that error format string +*/ + +void my_printv_error(uint error, const char *format, myf MyFlags, va_list ap) +{ + char ebuff[ERRMSGSIZE]; + DBUG_ENTER("my_printv_error"); + DBUG_PRINT("my", ("nr: %d MyFlags: %d errno: %d format: %s", + error, MyFlags, errno, format)); + + (void) my_vsnprintf(ebuff, sizeof(ebuff), format, ap); + (*error_handler_hook)(error, ebuff, MyFlags); + DBUG_VOID_RETURN; +} + +/** + Print an error message. + + @note + Goes through the (sole) function registered in error_handler_hook + + @param error error number + @param str error message + @param MyFlags Flags +*/ + +void my_message(uint error, const char *str, myf MyFlags) +{ + (*error_handler_hook)(error, str, MyFlags); +} + + +/** + Register error messages for use with my_error(). + + @description + + The function is expected to return addresses to NUL-terminated + C character strings. + NULL pointers and empty strings ("") are allowed. These will be mapped to + "Unknown error" when my_error() is called with a matching error number. + This function registers the error numbers 'first' to 'last'. + No overlapping with previously registered error numbers is allowed. + + @param get_errmsg function that returns error messages + @param first error number of first message in the array + @param last error number of last message in the array + + @retval 0 OK + @retval != 0 Error +*/ + +int my_error_register(const char* (*get_errmsg) (int), int first, int last) +{ + struct my_err_head *meh_p; + struct my_err_head **search_meh_pp; + + /* Allocate a new header structure. */ + if (! (meh_p= (struct my_err_head*) my_malloc(key_memory_my_err_head, + sizeof(struct my_err_head), + MYF(MY_WME)))) + return 1; + meh_p->get_errmsg= get_errmsg; + meh_p->meh_first= first; + meh_p->meh_last= last; + + /* Search for the right position in the list. */ + for (search_meh_pp= &my_errmsgs_list; + *search_meh_pp; + search_meh_pp= &(*search_meh_pp)->meh_next) + { + if ((*search_meh_pp)->meh_last > first) + break; + } + + /* Error numbers must be unique. No overlapping is allowed. */ + if (*search_meh_pp && ((*search_meh_pp)->meh_first <= last)) + { + my_free(meh_p); + return 1; + } + + /* Insert header into the chain. */ + meh_p->meh_next= *search_meh_pp; + *search_meh_pp= meh_p; + return 0; +} + + +/** + Unregister formerly registered error messages. + + @description + + This function unregisters the error numbers 'first' to 'last'. + These must have been previously registered by my_error_register(). + 'first' and 'last' must exactly match the registration. + If a matching registration is present, the header is removed from the + list. + + @param first error number of first message + @param last error number of last message + + @retval TRUE Error, no such number range registered. + @retval FALSE OK +*/ + +my_bool my_error_unregister(int first, int last) +{ + struct my_err_head *meh_p; + struct my_err_head **search_meh_pp; + + /* Search for the registration in the list. */ + for (search_meh_pp= &my_errmsgs_list; + *search_meh_pp; + search_meh_pp= &(*search_meh_pp)->meh_next) + { + if (((*search_meh_pp)->meh_first == first) && + ((*search_meh_pp)->meh_last == last)) + break; + } + if (! *search_meh_pp) + return TRUE; + + /* Remove header from the chain. */ + meh_p= *search_meh_pp; + *search_meh_pp= meh_p->meh_next; + + /* Free the header. */ + my_free(meh_p); + + return FALSE; +} + + +/** + Unregister all formerly registered error messages. + + @description + + This function unregisters all error numbers that previously have + been previously registered by my_error_register(). + All headers are removed from the list; the messages themselves are + not released here as they may be static. +*/ + +void my_error_unregister_all(void) +{ + struct my_err_head *cursor, *saved_next; + + for (cursor= my_errmsgs_globerrs.meh_next; cursor != NULL; cursor= saved_next) + { + /* We need this ptr, but we're about to free its container, so save it. */ + saved_next= cursor->meh_next; + + my_free(cursor); + } + my_errmsgs_globerrs.meh_next= NULL; /* Freed in first iteration above. */ + + my_errmsgs_list= &my_errmsgs_globerrs; +} + +/** + Issue a message locally (i.e. on the same host the program is + running on, don't transmit to a client). + + This is the default value for local_message_hook, and therefore + the default printer for my_message_local(). mysys users should + not call this directly, but go through my_message_local() instead. + + This printer prepends an Error/Warning/Note label to the string, + then prints it to stderr using my_message_stderr(). + Since my_message_stderr() appends a '\n', the format string + should not end in a newline. + + @param ll log level: (ERROR|WARNING|INFORMATION)_LEVEL + the printer may use these to filter for verbosity + @param format a format string a la printf. Should not end in '\n' + @param args parameters to go with that format string +*/ +void my_message_local_stderr(enum loglevel ll, + const char *format, va_list args) +{ + char buff[1024]; + size_t len; + + DBUG_ENTER("my_message_local_stderr"); + + len= my_snprintf(buff, sizeof(buff), "[%s] ", + (ll == ERROR_LEVEL ? "ERROR" : ll == WARNING_LEVEL ? + "Warning" : "Note")); + my_vsnprintf(buff + len, sizeof(buff) - len, format, args); + + my_message_stderr(0, buff, MYF(0)); + + DBUG_VOID_RETURN; +} + +/** + Issue a message locally (i.e. on the same host the program is + running on, don't transmit to a client). + + This goes through local_message_hook, i.e. by default, it calls + my_message_local_stderr() which prepends an Error/Warning/Note + label to the string, then prints it to stderr. More advanced + programs can use their own printers; mysqld for instance uses + its own error log facilities which prepend an ISO 8601 / RFC 3339 + compliant timestamp etc. + + @param ll log level: (ERROR|WARNING|INFORMATION)_LEVEL + the printer may use these to filter for verbosity + @param format a format string a la printf. Should not end in '\n'. + @param ... parameters to go with that format string +*/ + +void my_message_local(enum loglevel ll, const char *format, ...) +{ + va_list args; + DBUG_ENTER("local_print_error"); + + va_start(args, format); + (*local_message_hook)(ll, format, args); + va_end(args); + + DBUG_VOID_RETURN; +} diff --git a/mysql/mysys/my_file.c b/mysql/mysys/my_file.c new file mode 100644 index 0000000..b2faed0 --- /dev/null +++ b/mysql/mysys/my_file.c @@ -0,0 +1,144 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_static.h" +#include +#ifdef HAVE_SYS_RESOURCE_H +#include /* RLIMIT_NOFILE */ +#endif + +/* + set how many open files we want to be able to handle + + SYNOPSIS + set_maximum_open_files() + max_file_limit Files to open + + NOTES + The request may not fulfilled becasue of system limitations + + RETURN + Files available to open. + May be more or less than max_file_limit! +*/ + +#if defined(HAVE_GETRLIMIT) + +/* + This value is certainly wrong on all 64bit platforms, + and also wrong on many 32bit platforms. + It is better to get a compile error, than to use a wrong value. +#ifndef RLIM_INFINITY +#define RLIM_INFINITY ((uint) 0xffffffff) +#endif +*/ + +static uint set_max_open_files(uint max_file_limit) +{ + struct rlimit rlimit; + uint old_cur; + DBUG_ENTER("set_max_open_files"); + DBUG_PRINT("enter",("files: %u", max_file_limit)); + + if (!getrlimit(RLIMIT_NOFILE,&rlimit)) + { + old_cur= (uint) rlimit.rlim_cur; + DBUG_PRINT("info", ("rlim_cur: %u rlim_max: %u", + (uint) rlimit.rlim_cur, + (uint) rlimit.rlim_max)); + if (rlimit.rlim_cur == (rlim_t) RLIM_INFINITY) + rlimit.rlim_cur = max_file_limit; + if (rlimit.rlim_cur >= max_file_limit) + DBUG_RETURN(rlimit.rlim_cur); /* purecov: inspected */ + rlimit.rlim_cur= rlimit.rlim_max= max_file_limit; + if (setrlimit(RLIMIT_NOFILE, &rlimit)) + max_file_limit= old_cur; /* Use original value */ + else + { + rlimit.rlim_cur= 0; /* Safety if next call fails */ + (void) getrlimit(RLIMIT_NOFILE,&rlimit); + DBUG_PRINT("info", ("rlim_cur: %u", (uint) rlimit.rlim_cur)); + if (rlimit.rlim_cur) /* If call didn't fail */ + max_file_limit= (uint) rlimit.rlim_cur; + } + } + DBUG_PRINT("exit",("max_file_limit: %u", max_file_limit)); + DBUG_RETURN(max_file_limit); +} + +#else +static uint set_max_open_files(uint max_file_limit) +{ + /* We don't know the limit. Return best guess */ + return MY_MIN(max_file_limit, OS_FILE_LIMIT); +} +#endif + + +/* + Change number of open files + + SYNOPSIS: + my_set_max_open_files() + files Number of requested files + + RETURN + number of files available for open +*/ + +uint my_set_max_open_files(uint files) +{ + struct st_my_file_info *tmp; + DBUG_ENTER("my_set_max_open_files"); + DBUG_PRINT("enter",("files: %u my_file_limit: %u", files, my_file_limit)); + + files+= MY_FILE_MIN; + files= set_max_open_files(MY_MIN(files, OS_FILE_LIMIT)); + if (files <= MY_NFILE) + DBUG_RETURN(files); + + if (!(tmp= (struct st_my_file_info*) my_malloc(key_memory_my_file_info, + sizeof(*tmp) * files, + MYF(MY_WME)))) + DBUG_RETURN(MY_NFILE); + + /* Copy any initialized files */ + memcpy((char*) tmp, (char*) my_file_info, + sizeof(*tmp) * MY_MIN(my_file_limit, files)); + memset((tmp + my_file_limit), 0, + MY_MAX((int) (files - my_file_limit), 0) * sizeof(*tmp)); + my_free_open_file_info(); /* Free if already allocated */ + my_file_info= tmp; + my_file_limit= files; + DBUG_PRINT("exit",("files: %u", files)); + DBUG_RETURN(files); +} + + +void my_free_open_file_info() +{ + DBUG_ENTER("my_free_file_info"); + if (my_file_info != my_file_info_default) + { + /* Copy data back for my_print_open_files */ + memcpy((char*) my_file_info_default, my_file_info, + sizeof(*my_file_info_default)* MY_NFILE); + my_free(my_file_info); + my_file_info= my_file_info_default; + my_file_limit= MY_NFILE; + } + DBUG_VOID_RETURN; +} diff --git a/mysql/mysys/my_fopen.c b/mysql/mysys/my_fopen.c new file mode 100644 index 0000000..2196b47 --- /dev/null +++ b/mysql/mysys/my_fopen.c @@ -0,0 +1,379 @@ +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "mysys_priv.h" +#include "my_static.h" +#include +#include "mysys_err.h" +#include "my_thread_local.h" + + +static void make_ftype(char * to,int flag); + +/* + Open a file as stream + + SYNOPSIS + my_fopen() + FileName Path-name of file + Flags Read | write | append | trunc (like for open()) + MyFlags Flags for handling errors + + RETURN + 0 Error + # File handler +*/ + +FILE *my_fopen(const char *filename, int flags, myf MyFlags) +{ + FILE *fd; + char type[5]; + char *dup_filename= NULL; + DBUG_ENTER("my_fopen"); + DBUG_PRINT("my",("Name: '%s' flags: %d MyFlags: %d", + filename, flags, MyFlags)); + + make_ftype(type,flags); + +#ifdef _WIN32 + fd= my_win_fopen(filename, type); +#else + fd= fopen(filename, type); +#endif + if (fd != 0) + { + /* + The test works if MY_NFILE < 128. The problem is that fileno() is char + on some OS (SUNOS). Actually the filename save isn't that important + so we can ignore if this doesn't work. + */ + + int filedesc= my_fileno(fd); + if ((uint)filedesc >= my_file_limit) + { + mysql_mutex_lock(&THR_LOCK_open); + my_stream_opened++; + mysql_mutex_unlock(&THR_LOCK_open); + DBUG_RETURN(fd); /* safeguard */ + } + dup_filename= my_strdup(key_memory_my_file_info, filename, MyFlags); + if (dup_filename != NULL) + { + mysql_mutex_lock(&THR_LOCK_open); + my_file_info[filedesc].name= dup_filename; + my_stream_opened++; + my_file_total_opened++; + my_file_info[filedesc].type= STREAM_BY_FOPEN; + mysql_mutex_unlock(&THR_LOCK_open); + DBUG_PRINT("exit",("stream: 0x%lx", (long) fd)); + DBUG_RETURN(fd); + } + (void) my_fclose(fd,MyFlags); + set_my_errno(ENOMEM); + } + else + set_my_errno(errno); + DBUG_PRINT("error",("Got error %d on open",my_errno())); + if (MyFlags & (MY_FFNF | MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error((flags & O_RDONLY) || (flags == O_RDONLY ) ? EE_FILENOTFOUND : + EE_CANTCREATEFILE, + MYF(0), filename, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN((FILE*) 0); +} /* my_fopen */ + + +#if defined(_WIN32) + +static FILE *my_win_freopen(const char *path, const char *mode, FILE *stream) +{ + int handle_fd, fd= _fileno(stream); + HANDLE osfh; + + DBUG_ASSERT(path && stream); + + /* Services don't have stdout/stderr on Windows, so _fileno returns -1. */ + if (fd < 0) + { + if (!freopen(path, mode, stream)) + return NULL; + + fd= _fileno(stream); + } + + if ((osfh= CreateFile(path, GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE | + FILE_SHARE_DELETE, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, + NULL)) == INVALID_HANDLE_VALUE) + { + _close(fd); + return NULL; + } + + if ((handle_fd= _open_osfhandle((intptr_t)osfh, + _O_APPEND | _O_TEXT)) == -1) + { + CloseHandle(osfh); + return NULL; + } + + if (_dup2(handle_fd, fd) < 0) + { + CloseHandle(osfh); + return NULL; + } + + _close(handle_fd); + + return stream; +} +#else + +/** + Replacement for freopen() which will not close the stream until the + new file has been successfully opened. This gives the ability log + the reason for reopen's failure to the stream, and also to flush any + buffered messages already written to the stream, before terminating + the process. + + After a new stream to path has been opened, its file descriptor is + obtained, and dup2() is used to associate the original stream with + the new file. The newly opened stream and associated file descriptor + is then closed with fclose(). + + @param path file which the stream should be opened to + @param mode FILE mode to use when opening new file + @param stream stream to reopen + + @retval FILE stream being passed in if successful, + @retval nullptr otherwise + */ +static FILE *my_safe_freopen(const char *path, const char *mode, FILE *stream) +{ + int streamfd= -1; + FILE *pathstream= NULL; + int pathfd= -1; + int ds= -1; + + DBUG_ASSERT(path != NULL && stream != NULL); + streamfd= fileno(stream); + if (streamfd == -1) + { + /* We have not done anything to the stream, but if we cannot + get its fd, it is probably in a bad state anyway... */ + return NULL; + } + pathstream= fopen(path, mode); + if (pathstream == NULL) + { + /* Failed to open file for some reason. stream should still be + usable. */ + return NULL; + } + + pathfd= fileno(pathstream); + if (pathfd == -1) + { + fclose(pathstream); + return NULL; + } + do + { + ds= fflush(stream); + if (ds == 0) + { + ds= dup2(pathfd, streamfd); + } + } + while (ds == -1 && errno == EINTR); + fclose(pathstream); + return (ds == -1 ? NULL : stream); +} +#endif + + +/** + Change the file associated with a file stream. + + @param path Path to file. + @param mode Mode of the stream. + @param stream File stream. + + @note + This function is used to redirect stdout and stderr to a file and + subsequently to close and reopen that file for log rotation. + + @retval A FILE pointer on success. Otherwise, NULL. +*/ + +FILE *my_freopen(const char *path, const char *mode, FILE *stream) +{ + FILE *result; + +#if defined(_WIN32) + result= my_win_freopen(path, mode, stream); +#else + result= my_safe_freopen(path, mode, stream); +#endif + + return result; +} + + +/* Close a stream */ +int my_fclose(FILE *fd, myf MyFlags) +{ + int err,file; + DBUG_ENTER("my_fclose"); + DBUG_PRINT("my",("stream: 0x%lx MyFlags: %d", (long) fd, MyFlags)); + + mysql_mutex_lock(&THR_LOCK_open); + file= my_fileno(fd); +#ifndef _WIN32 + err= fclose(fd); +#else + err= my_win_fclose(fd); +#endif + if(err < 0) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_BADCLOSE, MYF(0), my_filename(file), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + } + else + my_stream_opened--; + if ((uint) file < my_file_limit && my_file_info[file].type != UNOPEN) + { + my_file_info[file].type = UNOPEN; + my_free(my_file_info[file].name); + } + mysql_mutex_unlock(&THR_LOCK_open); + DBUG_RETURN(err); +} /* my_fclose */ + + + /* Make a stream out of a file handle */ + /* Name may be 0 */ + +FILE *my_fdopen(File Filedes, const char *name, int Flags, myf MyFlags) +{ + FILE *fd; + char type[5]; + DBUG_ENTER("my_fdopen"); + DBUG_PRINT("my",("Fd: %d Flags: %d MyFlags: %d", + Filedes, Flags, MyFlags)); + + make_ftype(type,Flags); +#ifdef _WIN32 + fd= my_win_fdopen(Filedes, type); +#else + fd= fdopen(Filedes, type); +#endif + if (!fd) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_OPEN_STREAM, MYF(0), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + } + else + { + mysql_mutex_lock(&THR_LOCK_open); + my_stream_opened++; + if ((uint) Filedes < (uint) my_file_limit) + { + if (my_file_info[Filedes].type != UNOPEN) + { + my_file_opened--; /* File is opened with my_open ! */ + } + else + { + my_file_info[Filedes].name= my_strdup(key_memory_my_file_info, + name,MyFlags); + } + my_file_info[Filedes].type = STREAM_BY_FDOPEN; + } + mysql_mutex_unlock(&THR_LOCK_open); + } + + DBUG_PRINT("exit",("stream: 0x%lx", (long) fd)); + DBUG_RETURN(fd); +} /* my_fdopen */ + + +/* + Make a fopen() typestring from a open() type bitmap + + SYNOPSIS + make_ftype() + to String for fopen() is stored here + flag Flag used by open() + + IMPLEMENTATION + This routine attempts to find the best possible match + between a numeric option and a string option that could be + fed to fopen. There is not a 1 to 1 mapping between the two. + + NOTE + On Unix, O_RDONLY is usually 0 + + MAPPING + r == O_RDONLY + w == O_WRONLY|O_TRUNC|O_CREAT + a == O_WRONLY|O_APPEND|O_CREAT + r+ == O_RDWR + w+ == O_RDWR|O_TRUNC|O_CREAT + a+ == O_RDWR|O_APPEND|O_CREAT +*/ + +static void make_ftype(char * to, int flag) +{ + /* check some possible invalid combinations */ + DBUG_ASSERT((flag & (O_TRUNC | O_APPEND)) != (O_TRUNC | O_APPEND)); + DBUG_ASSERT((flag & (O_WRONLY | O_RDWR)) != (O_WRONLY | O_RDWR)); + + if ((flag & (O_RDONLY|O_WRONLY)) == O_WRONLY) + *to++= (flag & O_APPEND) ? 'a' : 'w'; + else if (flag & O_RDWR) + { + /* Add '+' after theese */ + if (flag & (O_TRUNC | O_CREAT)) + *to++= 'w'; + else if (flag & O_APPEND) + *to++= 'a'; + else + *to++= 'r'; + *to++= '+'; + } + else + *to++= 'r'; + +#if FILE_BINARY /* If we have binary-files */ + if (flag & FILE_BINARY) + *to++='b'; +#endif + *to='\0'; +} /* make_ftype */ diff --git a/mysql/mysys/my_fstream.c b/mysql/mysys/my_fstream.c new file mode 100644 index 0000000..83d1ebb --- /dev/null +++ b/mysql/mysys/my_fstream.c @@ -0,0 +1,186 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include +#include "my_thread_local.h" + + +#ifdef HAVE_FSEEKO +#undef ftell +#undef fseek +#define ftell(A) ftello(A) +#define fseek(A,B,C) fseeko((A),(B),(C)) +#endif + +/* + Read a chunk of bytes from a FILE + + SYNOPSIS + my_fread() + stream File descriptor + Buffer Buffer to read to + Count Number of bytes to read + MyFlags Flags on what to do on error + + RETURN + (size_t) -1 Error + # Number of bytes read + */ + +size_t my_fread(FILE *stream, uchar *Buffer, size_t Count, myf MyFlags) +{ + size_t readbytes; + DBUG_ENTER("my_fread"); + DBUG_PRINT("my",("stream: 0x%lx Buffer: 0x%lx Count: %u MyFlags: %d", + (long) stream, (long) Buffer, (uint) Count, MyFlags)); + + if ((readbytes= fread(Buffer, sizeof(char), Count, stream)) != Count) + { + DBUG_PRINT("error",("Read only %d bytes", (int) readbytes)); + if (MyFlags & (MY_WME | MY_FAE | MY_FNABP)) + { + if (ferror(stream)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_READ, MYF(0), + my_filename(my_fileno(stream)), + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + else + if (MyFlags & (MY_NABP | MY_FNABP)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_EOFERR, MYF(0), + my_filename(my_fileno(stream)), errno, + my_strerror(errbuf, sizeof(errbuf), errno)); + } + } + set_my_errno(errno ? errno : -1); + if (ferror(stream) || MyFlags & (MY_NABP | MY_FNABP)) + DBUG_RETURN((size_t) -1); /* Return with error */ + } + if (MyFlags & (MY_NABP | MY_FNABP)) + DBUG_RETURN(0); /* Read ok */ + DBUG_RETURN(readbytes); +} /* my_fread */ + + +/* + Write a chunk of bytes to a stream + + my_fwrite() + stream File descriptor + Buffer Buffer to write from + Count Number of bytes to write + MyFlags Flags on what to do on error + + RETURN + (size_t) -1 Error + # Number of bytes written +*/ + +size_t my_fwrite(FILE *stream, const uchar *Buffer, size_t Count, myf MyFlags) +{ + size_t writtenbytes =0; + my_off_t seekptr; + + DBUG_ENTER("my_fwrite"); + DBUG_PRINT("my",("stream: 0x%lx Buffer: 0x%lx Count: %u MyFlags: %d", + (long) stream, (long) Buffer, (uint) Count, MyFlags)); + DBUG_EXECUTE_IF("simulate_fwrite_error", DBUG_RETURN(-1);); + + seekptr= ftell(stream); + for (;;) + { + size_t written; + if ((written = (size_t) fwrite((char*) Buffer,sizeof(char), + Count, stream)) != Count) + { + DBUG_PRINT("error",("Write only %d bytes", (int) writtenbytes)); + set_my_errno(errno); + if (written != (size_t) -1) + { + seekptr+=written; + Buffer+=written; + writtenbytes+=written; + Count-=written; + } + if (errno == EINTR) + { + (void) my_fseek(stream,seekptr,MY_SEEK_SET,MYF(0)); + continue; + } + if (ferror(stream) || (MyFlags & (MY_NABP | MY_FNABP))) + { + if (MyFlags & (MY_WME | MY_FAE | MY_FNABP)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_WRITE, MYF(0), + my_filename(my_fileno(stream)), + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + writtenbytes= (size_t) -1; /* Return that we got error */ + break; + } + } + if (MyFlags & (MY_NABP | MY_FNABP)) + writtenbytes= 0; /* Everything OK */ + else + writtenbytes+= written; + break; + } + DBUG_RETURN(writtenbytes); +} /* my_fwrite */ + + +/* Seek to position in file */ + +my_off_t my_fseek(FILE *stream, my_off_t pos, int whence, + myf MyFlags MY_ATTRIBUTE((unused))) +{ + DBUG_ENTER("my_fseek"); + DBUG_PRINT("my",("stream: 0x%lx pos: %lu whence: %d MyFlags: %d", + (long) stream, (long) pos, whence, MyFlags)); + DBUG_RETURN(fseek(stream, (off_t) pos, whence) ? + MY_FILEPOS_ERROR : (my_off_t) ftell(stream)); +} /* my_seek */ + + +/* Tell current position of file */ + +my_off_t my_ftell(FILE *stream, myf MyFlags MY_ATTRIBUTE((unused))) +{ + off_t pos; + DBUG_ENTER("my_ftell"); + DBUG_PRINT("my",("stream: 0x%lx MyFlags: %d", (long) stream, MyFlags)); + pos=ftell(stream); + DBUG_PRINT("exit",("ftell: %lu",(ulong) pos)); + DBUG_RETURN((my_off_t) pos); +} /* my_ftell */ + + +/* Get a File corresponding to the stream*/ +int my_fileno(FILE *f) +{ +#ifdef _WIN32 + return my_win_fileno(f); +#else + return fileno(f); +#endif +} diff --git a/mysql/mysys/my_gethwaddr.c b/mysql/mysys/my_gethwaddr.c new file mode 100644 index 0000000..5b48e5b --- /dev/null +++ b/mysql/mysys/my_gethwaddr.c @@ -0,0 +1,259 @@ +/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* get hardware address for an interface */ +/* if there are many available, any non-zero one can be used */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +#ifndef MAIN + +#ifdef __FreeBSD__ + +#include +#include +#include +#include +#include + +my_bool my_gethwaddr(uchar *to) +{ + size_t len; + char *buf, *next, *end; + struct if_msghdr *ifm; + struct sockaddr_dl *sdl; + int res=1, mib[6]={CTL_NET, AF_ROUTE, 0, AF_LINK, NET_RT_IFLIST, 0}; + char zero_array[ETHER_ADDR_LEN] = {0}; + + if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1) + goto err; + if (!(buf = alloca(len))) + goto err; + if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) + goto err; + + end = buf + len; + + for (next = buf ; res && next < end ; next += ifm->ifm_msglen) + { + ifm = (struct if_msghdr *)next; + if (ifm->ifm_type == RTM_IFINFO) + { + sdl= (struct sockaddr_dl *)(ifm + 1); + memcpy(to, LLADDR(sdl), ETHER_ADDR_LEN); + res= memcmp(to, zero_array, ETHER_ADDR_LEN) ? 0 : 1; + } + } + +err: + return res; +} + +#elif __linux__ + +#include +#include +#include + +#define MAX_IFS 64 + +my_bool my_gethwaddr(uchar *to) +{ + int fd= -1; + int res= 1; + struct ifreq ifr; + struct ifreq ifs[MAX_IFS]; + struct ifreq *ifri= NULL; + struct ifreq *ifend= NULL; + + char zero_array[ETHER_ADDR_LEN] = {0}; + struct ifconf ifc; + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) + return 1; + + /* Retrieve interfaces */ + ifc.ifc_len= sizeof(ifs); + ifc.ifc_req= ifs; + if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) + { + close(fd); + return 1; + } + + /* Initialize out parameter */ + memcpy(to, zero_array, ETHER_ADDR_LEN); + + /* Calculate first address after array */ + ifend= ifs + (ifc.ifc_len / sizeof(struct ifreq)); + + /* Loop over all interfaces */ + for (ifri= ifc.ifc_req; ifri < ifend; ifri++) + { + if (ifri->ifr_addr.sa_family == AF_INET) + { + /* Reset struct, copy interface name */ + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, ifri->ifr_name, sizeof(ifr.ifr_name)); + + /* Get HW address, break if not 0 */ + if (ioctl(fd, SIOCGIFHWADDR, &ifr) >= 0) + { + memcpy(to, &ifr.ifr_hwaddr.sa_data, ETHER_ADDR_LEN); + if (memcmp(to, zero_array, ETHER_ADDR_LEN)) + { + res= 0; + break; + } + } + } + } + close(fd); + return res; +} + +#elif defined(_WIN32) + +/* + Workaround for BUG#32082 (Definition of VOID in my_global.h conflicts with + windows headers) +*/ +#ifdef VOID +#undef VOID +#define VOID void +#endif + +#include + +/* + The following typedef is for dynamically loading iphlpapi.dll / + GetAdaptersAddresses. Dynamic loading is used because + GetAdaptersAddresses is not available on Windows 2000 which MySQL + still supports. Static linking would cause an unresolved export. +*/ +typedef DWORD (WINAPI *pfnGetAdaptersAddresses)(IN ULONG Family, + IN DWORD Flags,IN PVOID Reserved, + OUT PIP_ADAPTER_ADDRESSES pAdapterAddresses, + IN OUT PULONG pOutBufLen); + +/* + my_gethwaddr - Windows version + + @brief Retrieve MAC address from network hardware + + @param[out] to MAC address exactly six bytes + + @return Operation status + @retval 0 OK + @retval <>0 FAILED +*/ +my_bool my_gethwaddr(uchar *to) +{ + PIP_ADAPTER_ADDRESSES pAdapterAddresses; + PIP_ADAPTER_ADDRESSES pCurrAddresses; + IP_ADAPTER_ADDRESSES adapterAddresses; + ULONG address_len; + my_bool return_val= 1; + static pfnGetAdaptersAddresses fnGetAdaptersAddresses= + (pfnGetAdaptersAddresses)-1; + + if(fnGetAdaptersAddresses == (pfnGetAdaptersAddresses)-1) + { + /* Get the function from the DLL */ + fnGetAdaptersAddresses= (pfnGetAdaptersAddresses) + GetProcAddress(LoadLibrary("iphlpapi.dll"), + "GetAdaptersAddresses"); + } + if (!fnGetAdaptersAddresses) + return 1; /* failed to get function */ + address_len= sizeof (IP_ADAPTER_ADDRESSES); + + /* Get the required size for the address data. */ + if (fnGetAdaptersAddresses(AF_UNSPEC, 0, 0, &adapterAddresses, &address_len) + == ERROR_BUFFER_OVERFLOW) + { + pAdapterAddresses= my_malloc(key_memory_win_IP_ADAPTER_ADDRESSES, + address_len, 0); + if (!pAdapterAddresses) + return 1; /* error, alloc failed */ + } + else + pAdapterAddresses= &adapterAddresses; /* one is enough don't alloc */ + + /* Get the hardware info. */ + if (fnGetAdaptersAddresses(AF_UNSPEC, 0, 0, pAdapterAddresses, &address_len) + == NO_ERROR) + { + pCurrAddresses= pAdapterAddresses; + + while (pCurrAddresses) + { + /* Look for ethernet cards. */ + if (pCurrAddresses->IfType == IF_TYPE_ETHERNET_CSMACD) + { + /* check for a good address */ + if (pCurrAddresses->PhysicalAddressLength < 6) + continue; /* bad address */ + + /* save 6 bytes of the address in the 'to' parameter */ + memcpy(to, pCurrAddresses->PhysicalAddress, 6); + + /* Network card found, we're done. */ + return_val= 0; + break; + } + pCurrAddresses= pCurrAddresses->Next; + } + } + + /* Clean up memory allocation. */ + if (pAdapterAddresses != &adapterAddresses) + my_free(pAdapterAddresses); + + return return_val; +} + +#else /* __FreeBSD__ || __linux__ || _WIN32 */ +/* just fail */ +my_bool my_gethwaddr(uchar *to MY_ATTRIBUTE((unused))) +{ + return 1; +} +#endif + +#else /* MAIN */ +int main(int argc MY_ATTRIBUTE((unused)),char **argv) +{ + uchar mac[6]; + uint i; + MY_INIT(argv[0]); + if (my_gethwaddr(mac)) + { + printf("my_gethwaddr failed with errno %d\n", errno); + exit(1); + } + for (i=0; i < sizeof(mac); i++) + { + if (i) printf(":"); + printf("%02x", mac[i]); + } + printf("\n"); + return 0; +} +#endif + diff --git a/mysql/mysys/my_getsystime.c b/mysql/mysys/my_getsystime.c new file mode 100644 index 0000000..3007c4e --- /dev/null +++ b/mysql/mysys/my_getsystime.c @@ -0,0 +1,122 @@ +/* Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* get time since epoc in 100 nanosec units */ +/* thus to get the current time we should use the system function + with the highest possible resolution */ + +#include "mysys_priv.h" +#include "my_static.h" + +#if HAVE_SYS_TIME_H +#include +#endif + +/** + Get high-resolution time. + + @remark For windows platforms we need the frequency value of + the CPU. This is initialized in my_init.c through + QueryPerformanceFrequency(). If the Windows platform + doesn't support QueryPerformanceFrequency(), zero is + returned. + + @retval current high-resolution time. +*/ + +ulonglong my_getsystime() +{ +#ifdef HAVE_CLOCK_GETTIME + struct timespec tp; + clock_gettime(CLOCK_REALTIME, &tp); + return (ulonglong)tp.tv_sec*10000000+(ulonglong)tp.tv_nsec/100; +#elif defined(_WIN32) + LARGE_INTEGER t_cnt; + if (query_performance_frequency) + { + QueryPerformanceCounter(&t_cnt); + return ((t_cnt.QuadPart / query_performance_frequency * 10000000) + + ((t_cnt.QuadPart % query_performance_frequency) * 10000000 / + query_performance_frequency) + query_performance_offset); + } + return 0; +#else + /* TODO: check for other possibilities for hi-res timestamping */ + struct timeval tv; + gettimeofday(&tv,NULL); + return (ulonglong)tv.tv_sec*10000000+(ulonglong)tv.tv_usec*10; +#endif +} + + +/** + Return current time. + + @param flags If MY_WME is set, write error if time call fails. + + @retval current time. +*/ + +time_t my_time(myf flags) +{ + time_t t; + /* + The following loop is here beacuse time() may fail on some systems. + We're using a hardcoded my_message_stderr() here rather than going + through the hook in my_message_local() because it's far too easy to + come full circle with any logging function that writes timestamps ... + */ + while ((t= time(0)) == (time_t) -1) + { + if (flags & MY_WME) + my_message_stderr(0, "time() call failed", MYF(0)); + } + return t; +} + + +#define OFFSET_TO_EPOCH 116444736000000000ULL + +/** + Return time in microseconds. + + @remark This function is to be used to measure performance in + micro seconds. As it's not defined whats the start time + for the clock, this function us only useful to measure + time between two moments. + + @retval Value in microseconds from some undefined point in time. +*/ + +ulonglong my_micro_time() +{ +#ifdef _WIN32 + ulonglong newtime; + GetSystemTimeAsFileTime((FILETIME*)&newtime); + newtime-= OFFSET_TO_EPOCH; + return (newtime/10); +#else + ulonglong newtime; + struct timeval t; + /* + The following loop is here because gettimeofday may fail on some systems + */ + while (gettimeofday(&t, NULL) != 0) + {} + newtime= (ulonglong)t.tv_sec * 1000000 + t.tv_usec; + return newtime; +#endif +} + diff --git a/mysql/mysys/my_getwd.c b/mysql/mysys/my_getwd.c new file mode 100644 index 0000000..6d650a8 --- /dev/null +++ b/mysql/mysys/my_getwd.c @@ -0,0 +1,162 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* my_setwd() and my_getwd() works with intern_filenames !! */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include "mysys_err.h" +#include "my_thread_local.h" +#if defined(_WIN32) +#include +#include +#include +#endif + +/* Gets current working directory in buff. + + SYNPOSIS + my_getwd() + buf Buffer to store result. Can be curr_dir[]. + size Size of buffer + MyFlags Flags + + NOTES + Directory is allways ended with FN_LIBCHAR + + RESULT + 0 ok + # error +*/ + +int my_getwd(char * buf, size_t size, myf MyFlags) +{ + char * pos; + DBUG_ENTER("my_getwd"); + DBUG_PRINT("my",("buf: 0x%lx size: %u MyFlags %d", + (long) buf, (uint) size, MyFlags)); + + if (size < 1) + DBUG_RETURN(-1); + + if (curr_dir[0]) /* Current pos is saved here */ + (void) strmake(buf,&curr_dir[0],size-1); + else + { + if (size < 2) + DBUG_RETURN(-1); + if (!getcwd(buf,(uint) (size-2)) && MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + set_my_errno(errno); + my_error(EE_GETWD, MYF(0), + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + DBUG_RETURN(-1); + } + if (*((pos=strend(buf))-1) != FN_LIBCHAR) /* End with FN_LIBCHAR */ + { + pos[0]= FN_LIBCHAR; + pos[1]=0; + } + (void) strmake(&curr_dir[0],buf, (size_t) (FN_REFLEN-1)); + } + DBUG_RETURN(0); +} /* my_getwd */ + + +/* Set new working directory */ + +int my_setwd(const char *dir, myf MyFlags) +{ + int res; + size_t length; + char *start, *pos; + DBUG_ENTER("my_setwd"); + DBUG_PRINT("my",("dir: '%s' MyFlags %d", dir, MyFlags)); + + start=(char *) dir; + if (! dir[0] || (dir[0] == FN_LIBCHAR && dir[1] == 0)) + dir=FN_ROOTDIR; + if ((res=chdir((char*) dir)) != 0) + { + set_my_errno(errno); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_SETWD, MYF(0), start, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + } + else + { + if (test_if_hard_path(start)) + { /* Hard pathname */ + pos= strmake(&curr_dir[0],start,(size_t) FN_REFLEN-1); + if (pos[-1] != FN_LIBCHAR) + { + length=(uint) (pos-(char*) curr_dir); + curr_dir[length]=FN_LIBCHAR; /* must end with '/' */ + curr_dir[length+1]='\0'; + } + } + else + curr_dir[0]='\0'; /* Don't save name */ + } + DBUG_RETURN(res); +} /* my_setwd */ + + + + /* Test if hard pathname */ + /* Returns 1 if dirname is a hard path */ + +int test_if_hard_path(const char *dir_name) +{ + if (dir_name[0] == FN_HOMELIB && dir_name[1] == FN_LIBCHAR) + return (home_dir != NullS && test_if_hard_path(home_dir)); + if (dir_name[0] == FN_LIBCHAR) + return (TRUE); +#ifdef FN_DEVCHAR + return (strchr(dir_name,FN_DEVCHAR) != 0); +#else + return FALSE; +#endif +} /* test_if_hard_path */ + + +/* + Test if a name contains an (absolute or relative) path. + + SYNOPSIS + has_path() + name The name to test. + + RETURN + TRUE name contains a path. + FALSE name does not contain a path. +*/ + +my_bool has_path(const char *name) +{ + return MY_TEST(strchr(name, FN_LIBCHAR)) +#if FN_LIBCHAR != '/' + || MY_TEST(strchr(name,'/')) +#endif +#ifdef FN_DEVCHAR + || MY_TEST(strchr(name, FN_DEVCHAR)) +#endif + ; +} diff --git a/mysql/mysys/my_handler_errors.h b/mysql/mysys/my_handler_errors.h new file mode 100644 index 0000000..00bec2e --- /dev/null +++ b/mysql/mysys/my_handler_errors.h @@ -0,0 +1,114 @@ +#ifndef MYSYS_MY_HANDLER_ERRORS_INCLUDED +#define MYSYS_MY_HANDLER_ERRORS_INCLUDED + +/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +/* + Errors a handler can give you +*/ + +static const char *handler_error_messages[]= +{ + "Didn't find key on read or update", + "Duplicate key on write or update", + "Internal (unspecified) error in handler", + "Someone has changed the row since it was read (while the table was locked to prevent it)", + "Wrong index given to function", + "Undefined handler error 125", + "Index file is crashed", + "Record file is crashed", + "Out of memory in engine", + "Undefined handler error 129", + "Incorrect file format", + "Command not supported by database", + "Old database file", + "No record read before update", + "Record was already deleted (or record file crashed)", + "No more room in record file", + "No more room in index file", + "No more records (read after end of file)", + "Unsupported extension used for table", + "Too big row", + "Wrong create options", + "Duplicate unique key or constraint on write or update", + "Unknown character set used in table", + "Conflicting table definitions in sub-tables of MERGE table", + "Table is crashed and last repair failed", + "Table was marked as crashed and should be repaired", + "Lock timed out; Retry transaction", + "Lock table is full; Restart program with a larger locktable", + "Updates are not allowed under a read only transactions", + "Lock deadlock; Retry transaction", + "Foreign key constraint is incorrectly formed", + "Cannot add a child row", + "Cannot delete a parent row", + "No savepoint with that name", + "Non unique key block size", + "The table does not exist in engine", + "The table already existed in storage engine", + "Could not connect to storage engine", + "Unexpected null pointer found when using spatial index", + "The table changed in storage engine", + "There's no partition in table for the given value", + "Row-based binlogging of row failed", + "Index needed in foreign key constraint", + "Upholding foreign key constraints would lead to a duplicate key error in " + "some other table", + "Table needs to be upgraded before it can be used", + "Table is read only", + "Failed to get next auto increment value", + "Failed to set row auto increment value", + "Unknown (generic) error from engine", + "Record is the same", + "It is not possible to log this statement", + "The event was corrupt, leading to illegal data being read", + "The table is of a new format not supported by this version", + "The event could not be processed no other hanlder error happened", + "Got a fatal error during initialzaction of handler", + "File to short; Expected more data in file", + "Read page with wrong checksum", + "Too many active concurrent transactions", + "Record not matching the given partition set", + "Index column length exceeds limit", + "Index corrupted", + "Undo record too big", + "Invalid InnoDB FTS Doc ID", + "Table is being used in foreign key check", + "Tablespace already exists", + "Too many columns", + "Row in wrong partition", + "InnoDB is in read only mode", + "FTS query exceeds result cache memory limit", + "Temporary file write failure", + "Operation not allowed when innodb_forced_recovery > 0", + "Too many words in a FTS phrase or proximity search", + "Foreign key cascade delete/update exceeds max depth", + "Required Create option missing", + "Out of memory in storage engine", + "Table corrupted", + "Query interrupted", + "Tablespace cannot be accessed", + "Tablespace is not empty", + "Incorrect file name", + "Operation is not allowed", + "Compute generate value failed" +}; + +extern void my_handler_error_register(void); +extern void my_handler_error_unregister(void); + + +#endif /* MYSYS_MY_HANDLER_ERRORS_INCLUDED */ diff --git a/mysql/mysys/my_init.c b/mysql/mysys/my_init.c new file mode 100644 index 0000000..54d44e6 --- /dev/null +++ b/mysql/mysys/my_init.c @@ -0,0 +1,564 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "my_static.h" +#include "mysys_err.h" +#include "m_string.h" +#include "mysql/psi/mysql_stage.h" +#include "mysql/psi/mysql_file.h" + +#ifdef HAVE_SYS_RESOURCE_H +#include +#endif + +#ifdef _WIN32 +#include +#include +/* WSAStartup needs winsock library*/ +#pragma comment(lib, "ws2_32") +my_bool have_tcpip=0; +static void my_win_init(); +#endif + +#define SCALE_SEC 100 +#define SCALE_USEC 10000 + +my_bool my_init_done= FALSE; +ulong my_thread_stack_size= 65536; +MYSQL_FILE *mysql_stdin= NULL; +static MYSQL_FILE instrumented_stdin; + + +static ulong atoi_octal(const char *str) +{ + long int tmp; + while (*str && my_isspace(&my_charset_latin1, *str)) + str++; + str2int(str, + (*str == '0' ? 8 : 10), /* Octalt or decimalt */ + 0, INT_MAX, &tmp); + return (ulong) tmp; +} + + +#if defined(MY_MSCRT_DEBUG) +int set_crt_report_leaks() +{ + HANDLE hLogFile; + + _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF // debug allocation on + | _CRTDBG_LEAK_CHECK_DF // leak checks on exit + | _CRTDBG_CHECK_ALWAYS_DF // memory check (slow) + ); + + return (( + NULL == (hLogFile= GetStdHandle(STD_ERROR_HANDLE)) || + -1 == _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE) || + _CRTDBG_HFILE_ERROR == _CrtSetReportFile(_CRT_WARN, hLogFile) || + -1 == _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE) || + _CRTDBG_HFILE_ERROR == _CrtSetReportFile(_CRT_ERROR, hLogFile) || + -1 == _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE) || + _CRTDBG_HFILE_ERROR == _CrtSetReportFile(_CRT_ASSERT, hLogFile)) ? 1 : 0); +} +#endif + + +/** + Initialize my_sys functions, resources and variables + + @return Initialization result + @retval FALSE Success + @retval TRUE Error. Couldn't initialize environment +*/ +my_bool my_init() +{ + char *str; + + if (my_init_done) + return FALSE; + + my_init_done= TRUE; + +#if defined(MY_MSCRT_DEBUG) + set_crt_report_leaks(); +#endif + + my_umask= 0640; /* Default umask for new files */ + my_umask_dir= 0750; /* Default umask for new directories */ + + /* Default creation of new files */ + if ((str= getenv("UMASK")) != 0) + my_umask= (int) (atoi_octal(str) | 0640); + /* Default creation of new dir's */ + if ((str= getenv("UMASK_DIR")) != 0) + my_umask_dir= (int) (atoi_octal(str) | 0750); + + instrumented_stdin.m_file= stdin; + instrumented_stdin.m_psi= NULL; /* not yet instrumented */ + mysql_stdin= & instrumented_stdin; + + if (my_thread_global_init()) + return TRUE; + + if (my_thread_init()) + return TRUE; + + /* $HOME is needed early to parse configuration files located in ~/ */ + if ((home_dir= getenv("HOME")) != 0) + home_dir= intern_filename(home_dir_buff, home_dir); + + { + DBUG_ENTER("my_init"); + DBUG_PROCESS((char*) (my_progname ? my_progname : "unknown")); +#ifdef _WIN32 + my_win_init(); +#endif + DBUG_PRINT("exit", ("home: '%s'", home_dir)); + DBUG_RETURN(FALSE); + } +} /* my_init */ + + + /* End my_sys */ + +void my_end(int infoflag) +{ + /* + We do not use DBUG_ENTER here, as after cleanup DBUG is no longer + operational, so we cannot use DBUG_RETURN. + */ + + FILE *info_file= (DBUG_FILE ? DBUG_FILE : stderr); + + if (!my_init_done) + return; + + if ((infoflag & MY_CHECK_ERROR) || (info_file != stderr)) + + { /* Test if some file is left open */ + if (my_file_opened | my_stream_opened) + { + char ebuff[512]; + my_snprintf(ebuff, sizeof(ebuff), EE(EE_OPEN_WARNING), + my_file_opened, my_stream_opened); + my_message_stderr(EE_OPEN_WARNING, ebuff, MYF(0)); + DBUG_PRINT("error", ("%s", ebuff)); + my_print_open_files(); + } + } + free_charsets(); + my_error_unregister_all(); + my_once_free(); + + if ((infoflag & MY_GIVE_INFO) || (info_file != stderr)) + { +#ifdef HAVE_GETRUSAGE + struct rusage rus; + if (!getrusage(RUSAGE_SELF, &rus)) + fprintf(info_file,"\n\ +User time %.2f, System time %.2f\n \ +Maximum resident set size %ld, Integral resident set size %ld\n\ +Non-physical pagefaults %ld, Physical pagefaults %ld, Swaps %ld\n\ +Blocks in %ld out %ld, Messages in %ld out %ld, Signals %ld\n\ +Voluntary context switches %ld, Involuntary context switches %ld\n", + (rus.ru_utime.tv_sec * SCALE_SEC + + rus.ru_utime.tv_usec / SCALE_USEC) / 100.0, + (rus.ru_stime.tv_sec * SCALE_SEC + + rus.ru_stime.tv_usec / SCALE_USEC) / 100.0, + rus.ru_maxrss, rus.ru_idrss, + rus.ru_minflt, rus.ru_majflt, + rus.ru_nswap, rus.ru_inblock, rus.ru_oublock, + rus.ru_msgsnd, rus.ru_msgrcv, rus.ru_nsignals, + rus.ru_nvcsw, rus.ru_nivcsw); +#endif +#if defined(_WIN32) + _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE ); + _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDERR ); + _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE ); + _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR ); + _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE ); + _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR ); + _CrtCheckMemory(); + _CrtDumpMemoryLeaks(); +#endif + } + + if (!(infoflag & MY_DONT_FREE_DBUG)) + { + DBUG_END(); /* Must be done before my_thread_end */ + } + + my_thread_end(); + my_thread_global_end(); + +#ifdef _WIN32 + if (have_tcpip) + WSACleanup(); +#endif /* _WIN32 */ + + my_init_done= FALSE; +} /* my_end */ + + +#ifdef _WIN32 +/* + my_parameter_handler + + Invalid parameter handler we will use instead of the one "baked" + into the CRT for MSC v8. This one just prints out what invalid + parameter was encountered. By providing this routine, routines like + lseek will return -1 when we expect them to instead of crash. +*/ + +void my_parameter_handler(const wchar_t * expression, const wchar_t * function, + const wchar_t * file, unsigned int line, + uintptr_t pReserved) +{ + DBUG_PRINT("my",("Expression: %s function: %s file: %s, line: %d", + expression, function, file, line)); +} + + +#ifdef __MSVC_RUNTIME_CHECKS +#include + +/* Turn off runtime checks for 'handle_rtc_failure' */ +#pragma runtime_checks("", off) + +/* + handle_rtc_failure + Windows: run-time error checks are reported to ... +*/ + +int handle_rtc_failure(int err_type, const char *file, int line, + const char* module, const char *format, ...) +{ + va_list args; + char buff[2048]; + size_t len; + + len= my_snprintf(buff, sizeof(buff), "At %s:%d: ", file, line); + + va_start(args, format); + vsnprintf(buff + len, sizeof(buff) - len, format, args); + va_end(args); + + my_message_local(ERROR_LEVEL, buff); + + return 0; /* Error is handled */ +} +#pragma runtime_checks("", restore) +#endif + +#define OFFSET_TO_EPOC ((__int64) 134774 * 24 * 60 * 60 * 1000 * 1000 * 10) +#define MS 10000000 + +static void win_init_time() +{ + /* The following is used by time functions */ + FILETIME ft; + LARGE_INTEGER li, t_cnt; + + DBUG_ASSERT(sizeof(LARGE_INTEGER) == sizeof(query_performance_frequency)); + + if (QueryPerformanceFrequency((LARGE_INTEGER *)&query_performance_frequency) == 0) + query_performance_frequency= 0; + else + { + GetSystemTimeAsFileTime(&ft); + li.LowPart= ft.dwLowDateTime; + li.HighPart= ft.dwHighDateTime; + query_performance_offset= li.QuadPart-OFFSET_TO_EPOC; + QueryPerformanceCounter(&t_cnt); + query_performance_offset-= (t_cnt.QuadPart / + query_performance_frequency * MS + + t_cnt.QuadPart % + query_performance_frequency * MS / + query_performance_frequency); + } +} + + +/* + Open HKEY_LOCAL_MACHINE\SOFTWARE\MySQL and set any strings found + there as environment variables +*/ +static void win_init_registry() +{ + HKEY key_handle; + + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, (LPCTSTR)"SOFTWARE\\MySQL", + 0, KEY_READ, &key_handle) == ERROR_SUCCESS) + { + LONG ret; + DWORD index= 0; + DWORD type; + char key_name[256], key_data[1024]; + DWORD key_name_len= sizeof(key_name) - 1; + DWORD key_data_len= sizeof(key_data) - 1; + + while ((ret= RegEnumValue(key_handle, index++, + key_name, &key_name_len, + NULL, &type, (LPBYTE)&key_data, + &key_data_len)) != ERROR_NO_MORE_ITEMS) + { + char env_string[sizeof(key_name) + sizeof(key_data) + 2]; + + if (ret == ERROR_MORE_DATA) + { + /* Registry value larger than 'key_data', skip it */ + DBUG_PRINT("error", ("Skipped registry value that was too large")); + } + else if (ret == ERROR_SUCCESS) + { + if (type == REG_SZ) + { + strxmov(env_string, key_name, "=", key_data, NullS); + + /* variable for putenv must be allocated ! */ + putenv(strdup(env_string)) ; + } + } + else + { + /* Unhandled error, break out of loop */ + break; + } + + key_name_len= sizeof(key_name) - 1; + key_data_len= sizeof(key_data) - 1; + } + + RegCloseKey(key_handle); + } +} + + +/*------------------------------------------------------------------ + Name: CheckForTcpip| Desc: checks if tcpip has been installed on system + According to Microsoft Developers documentation the first registry + entry should be enough to check if TCP/IP is installed, but as expected + this doesn't work on all Win32 machines :( +------------------------------------------------------------------*/ + +#define TCPIPKEY "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters" +#define WINSOCK2KEY "SYSTEM\\CurrentControlSet\\Services\\Winsock2\\Parameters" +#define WINSOCKKEY "SYSTEM\\CurrentControlSet\\Services\\Winsock\\Parameters" + +static my_bool win32_have_tcpip() +{ + HKEY hTcpipRegKey; + if (RegOpenKeyEx ( HKEY_LOCAL_MACHINE, TCPIPKEY, 0, KEY_READ, + &hTcpipRegKey) != ERROR_SUCCESS) + { + if (RegOpenKeyEx ( HKEY_LOCAL_MACHINE, WINSOCK2KEY, 0, KEY_READ, + &hTcpipRegKey) != ERROR_SUCCESS) + { + if (RegOpenKeyEx ( HKEY_LOCAL_MACHINE, WINSOCKKEY, 0, KEY_READ, + &hTcpipRegKey) != ERROR_SUCCESS) + if (!getenv("HAVE_TCPIP") || have_tcpip) /* Provide a workaround */ + return (FALSE); + } + } + RegCloseKey ( hTcpipRegKey); + return (TRUE); +} + + +static my_bool win32_init_tcp_ip() +{ + if (win32_have_tcpip()) + { + WORD wVersionRequested = MAKEWORD( 2, 2 ); + WSADATA wsaData; + /* Be a good citizen: maybe another lib has already initialised + sockets, so dont clobber them unless necessary */ + if (WSAStartup( wVersionRequested, &wsaData )) + { + /* Load failed, maybe because of previously loaded + incompatible version; try again */ + WSACleanup( ); + if (!WSAStartup( wVersionRequested, &wsaData )) + have_tcpip=1; + } + else + { + if (wsaData.wVersion != wVersionRequested) + { + /* Version is no good, try again */ + WSACleanup( ); + if (!WSAStartup( wVersionRequested, &wsaData )) + have_tcpip=1; + } + else + have_tcpip=1; + } + } + return(0); +} + + +static void my_win_init() +{ + DBUG_ENTER("my_win_init"); + + /* this is required to make crt functions return -1 appropriately */ + _set_invalid_parameter_handler(my_parameter_handler); + +#ifdef __MSVC_RUNTIME_CHECKS + /* + Install handler to send RTC (Runtime Error Check) warnings + to log file + */ + _RTC_SetErrorFunc(handle_rtc_failure); +#endif + + _tzset(); + + win_init_time(); + win_init_registry(); + win32_init_tcp_ip(); + + DBUG_VOID_RETURN; +} +#endif /* _WIN32 */ + +PSI_stage_info stage_waiting_for_table_level_lock= +{0, "Waiting for table level lock", 0}; + +#ifdef HAVE_PSI_INTERFACE + +PSI_mutex_key key_BITMAP_mutex, key_IO_CACHE_append_buffer_lock, + key_IO_CACHE_SHARE_mutex, key_KEY_CACHE_cache_lock, + key_THR_LOCK_charset, key_THR_LOCK_heap, + key_THR_LOCK_lock, key_THR_LOCK_malloc, + key_THR_LOCK_mutex, key_THR_LOCK_myisam, key_THR_LOCK_net, + key_THR_LOCK_open, key_THR_LOCK_threads, + key_TMPDIR_mutex, key_THR_LOCK_myisam_mmap; + +static PSI_mutex_info all_mysys_mutexes[]= +{ + { &key_BITMAP_mutex, "BITMAP::mutex", 0}, + { &key_IO_CACHE_append_buffer_lock, "IO_CACHE::append_buffer_lock", 0}, + { &key_IO_CACHE_SHARE_mutex, "IO_CACHE::SHARE_mutex", 0}, + { &key_KEY_CACHE_cache_lock, "KEY_CACHE::cache_lock", 0}, + { &key_THR_LOCK_charset, "THR_LOCK_charset", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_heap, "THR_LOCK_heap", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_lock, "THR_LOCK_lock", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_malloc, "THR_LOCK_malloc", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_mutex, "THR_LOCK::mutex", 0}, + { &key_THR_LOCK_myisam, "THR_LOCK_myisam", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_net, "THR_LOCK_net", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_open, "THR_LOCK_open", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_threads, "THR_LOCK_threads", PSI_FLAG_GLOBAL}, + { &key_TMPDIR_mutex, "TMPDIR_mutex", PSI_FLAG_GLOBAL}, + { &key_THR_LOCK_myisam_mmap, "THR_LOCK_myisam_mmap", PSI_FLAG_GLOBAL} +}; + +PSI_rwlock_key key_SAFE_HASH_lock; + +static PSI_rwlock_info all_mysys_rwlocks[]= +{ + { &key_SAFE_HASH_lock, "SAFE_HASH::lock", 0} +}; + +PSI_cond_key key_IO_CACHE_SHARE_cond, + key_IO_CACHE_SHARE_cond_writer, + key_THR_COND_threads; + +static PSI_cond_info all_mysys_conds[]= +{ + { &key_IO_CACHE_SHARE_cond, "IO_CACHE_SHARE::cond", 0}, + { &key_IO_CACHE_SHARE_cond_writer, "IO_CACHE_SHARE::cond_writer", 0}, + { &key_THR_COND_threads, "THR_COND_threads", 0} +}; + +#ifdef HAVE_LINUX_LARGE_PAGES +PSI_file_key key_file_proc_meminfo; +#endif /* HAVE_LINUX_LARGE_PAGES */ +PSI_file_key key_file_charset, key_file_cnf; + +static PSI_file_info all_mysys_files[]= +{ +#ifdef HAVE_LINUX_LARGE_PAGES + { &key_file_proc_meminfo, "proc_meminfo", 0}, +#endif /* HAVE_LINUX_LARGE_PAGES */ + { &key_file_charset, "charset", 0}, + { &key_file_cnf, "cnf", 0} +}; + +PSI_stage_info *all_mysys_stages[]= +{ + & stage_waiting_for_table_level_lock +}; + +static PSI_memory_info all_mysys_memory[]= +{ +#ifdef _WIN32 + { &key_memory_win_SECURITY_ATTRIBUTES, "win_SECURITY_ATTRIBUTES", 0}, + { &key_memory_win_PACL, "win_PACL", 0}, + { &key_memory_win_IP_ADAPTER_ADDRESSES, "win_IP_ADAPTER_ADDRESSES", 0}, +#endif + + { &key_memory_max_alloca, "max_alloca", 0}, + { &key_memory_charset_file, "charset_file", 0}, + { &key_memory_charset_loader, "charset_loader", 0}, + { &key_memory_lf_node, "lf_node", 0}, + { &key_memory_lf_dynarray, "lf_dynarray", 0}, + { &key_memory_lf_slist, "lf_slist", 0}, + { &key_memory_LIST, "LIST", 0}, + { &key_memory_IO_CACHE, "IO_CACHE", 0}, + { &key_memory_KEY_CACHE, "KEY_CACHE", 0}, + { &key_memory_SAFE_HASH_ENTRY, "SAFE_HASH_ENTRY", 0}, + { &key_memory_MY_TMPDIR_full_list, "MY_TMPDIR::full_list", 0}, + { &key_memory_MY_BITMAP_bitmap, "MY_BITMAP::bitmap", 0}, + { &key_memory_my_compress_alloc, "my_compress_alloc", 0}, + { &key_memory_pack_frm, "pack_frm", 0}, + { &key_memory_my_err_head, "my_err_head", 0}, + { &key_memory_my_file_info, "my_file_info", 0}, + { &key_memory_MY_DIR, "MY_DIR", 0}, + { &key_memory_MY_STAT, "MY_STAT", 0}, + { &key_memory_QUEUE, "QUEUE", 0}, + { &key_memory_DYNAMIC_STRING, "DYNAMIC_STRING", 0}, + { &key_memory_TREE, "TREE", 0} +}; + +void my_init_mysys_psi_keys() +{ + const char* category= "mysys"; + int count; + + count= sizeof(all_mysys_mutexes)/sizeof(all_mysys_mutexes[0]); + mysql_mutex_register(category, all_mysys_mutexes, count); + + count= sizeof(all_mysys_rwlocks)/sizeof(all_mysys_rwlocks[0]); + mysql_rwlock_register(category, all_mysys_rwlocks, count); + + count= sizeof(all_mysys_conds)/sizeof(all_mysys_conds[0]); + mysql_cond_register(category, all_mysys_conds, count); + + count= sizeof(all_mysys_files)/sizeof(all_mysys_files[0]); + mysql_file_register(category, all_mysys_files, count); + + count= array_elements(all_mysys_stages); + mysql_stage_register(category, all_mysys_stages, count); + + count= array_elements(all_mysys_memory); + mysql_memory_register(category, all_mysys_memory, count); +} +#endif /* HAVE_PSI_INTERFACE */ + diff --git a/mysql/mysys/my_lib.c b/mysql/mysys/my_lib.c new file mode 100644 index 0000000..f2c2940 --- /dev/null +++ b/mysql/mysys/my_lib.c @@ -0,0 +1,378 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +/* TODO: check for overun of memory for names. */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "m_string.h" +#include "my_dir.h" /* Structs used by my_dir,includes sys/types */ +#include "mysys_err.h" +#include "my_thread_local.h" +#if !defined(_WIN32) +# include +#endif + + +/* + We are assuming that directory we are reading is either has less than + 100 files and so can be read in one initial chunk or has more than 1000 + files and so big increment are suitable. +*/ +#define ENTRIES_START_SIZE (8192/sizeof(FILEINFO)) +#define ENTRIES_INCREMENT (65536/sizeof(FILEINFO)) +#define NAMES_START_SIZE 32768 + +static int comp_names(struct fileinfo *a,struct fileinfo *b); + + + /* We need this because program don't know with malloc we used */ + +void my_dirend(MY_DIR *buffer) +{ + DBUG_ENTER("my_dirend"); + if (buffer) + { + delete_dynamic((DYNAMIC_ARRAY*)((char*)buffer + + ALIGN_SIZE(sizeof(MY_DIR)))); + free_root((MEM_ROOT*)((char*)buffer + ALIGN_SIZE(sizeof(MY_DIR)) + + ALIGN_SIZE(sizeof(DYNAMIC_ARRAY))), MYF(0)); + my_free(buffer); + } + DBUG_VOID_RETURN; +} /* my_dirend */ + + + /* Compare in sort of filenames */ + +static int comp_names(struct fileinfo *a, struct fileinfo *b) +{ + return (strcmp(a->name,b->name)); +} /* comp_names */ + + +#if !defined(_WIN32) + +static char* directory_file_name(char *dst, const char *src); + +MY_DIR *my_dir(const char *path, myf MyFlags) +{ + char *buffer; + MY_DIR *result= 0; + FILEINFO finfo; + DYNAMIC_ARRAY *dir_entries_storage; + MEM_ROOT *names_storage; + DIR *dirp; + char tmp_path[FN_REFLEN + 2], *tmp_file; + const struct dirent *dp; + + DBUG_ENTER("my_dir"); + DBUG_PRINT("my",("path: '%s' MyFlags: %d",path,MyFlags)); + + dirp = opendir(directory_file_name(tmp_path,(char *) path)); + if (dirp == NULL || + ! (buffer= my_malloc(key_memory_MY_DIR, + ALIGN_SIZE(sizeof(MY_DIR)) + + ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)) + + sizeof(MEM_ROOT), MyFlags))) + goto error; + + dir_entries_storage= (DYNAMIC_ARRAY*)(buffer + ALIGN_SIZE(sizeof(MY_DIR))); + names_storage= (MEM_ROOT*)(buffer + ALIGN_SIZE(sizeof(MY_DIR)) + + ALIGN_SIZE(sizeof(DYNAMIC_ARRAY))); + + if (my_init_dynamic_array(dir_entries_storage, + key_memory_MY_DIR, + sizeof(FILEINFO), + NULL, /* init_buffer */ + ENTRIES_START_SIZE, ENTRIES_INCREMENT)) + { + my_free(buffer); + goto error; + } + init_alloc_root(key_memory_MY_DIR, names_storage, NAMES_START_SIZE, NAMES_START_SIZE); + + /* MY_DIR structure is allocated and completly initialized at this point */ + result= (MY_DIR*)buffer; + + tmp_file=strend(tmp_path); + + for (dp= readdir(dirp) ; dp; dp= readdir(dirp)) + { + if (!(finfo.name= strdup_root(names_storage, dp->d_name))) + goto error; + + if (MyFlags & MY_WANT_STAT) + { + if (!(finfo.mystat= (MY_STAT*)alloc_root(names_storage, + sizeof(MY_STAT)))) + goto error; + + memset(finfo.mystat, 0, sizeof(MY_STAT)); + (void) my_stpcpy(tmp_file,dp->d_name); + (void) my_stat(tmp_path, finfo.mystat, MyFlags); + if (!(finfo.mystat->st_mode & MY_S_IREAD)) + continue; + } + else + finfo.mystat= NULL; + + if (insert_dynamic(dir_entries_storage, (uchar*)&finfo)) + goto error; + } + + (void) closedir(dirp); + + result->dir_entry= (FILEINFO *)dir_entries_storage->buffer; + result->number_off_files= dir_entries_storage->elements; + + if (!(MyFlags & MY_DONT_SORT)) + my_qsort((void *) result->dir_entry, result->number_off_files, + sizeof(FILEINFO), (qsort_cmp) comp_names); + DBUG_RETURN(result); + + error: + set_my_errno(errno); + if (dirp) + (void) closedir(dirp); + my_dirend(result); + if (MyFlags & (MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_DIR, MYF(0), path, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN((MY_DIR *) NULL); +} /* my_dir */ + + +/* + * Convert from directory name to filename. + * On UNIX, it's simple: just make sure there is a terminating / + + * Returns pointer to dst; + */ + +static char* directory_file_name(char *dst, const char *src) +{ + /* Process as Unix format: just remove test the final slash. */ + char *end; + DBUG_ASSERT(strlen(src) < (FN_REFLEN + 1)); + + if (src[0] == 0) + src= (char*) "."; /* Use empty as current */ + end= my_stpnmov(dst, src, FN_REFLEN + 1); + if (end[-1] != FN_LIBCHAR) + { + end[0]=FN_LIBCHAR; /* Add last '/' */ + end[1]='\0'; + } + return dst; +} + +#else + +/* +***************************************************************************** +** Read long filename using windows rutines +***************************************************************************** +*/ + +MY_DIR *my_dir(const char *path, myf MyFlags) +{ + char *buffer; + MY_DIR *result= 0; + FILEINFO finfo; + DYNAMIC_ARRAY *dir_entries_storage; + MEM_ROOT *names_storage; + struct _finddata_t find; + ushort mode; + char tmp_path[FN_REFLEN],*tmp_file,attrib; +#ifdef _WIN64 + __int64 handle; +#else + long handle; +#endif + DBUG_ENTER("my_dir"); + DBUG_PRINT("my",("path: '%s' stat: %d MyFlags: %d",path,MyFlags)); + + /* Put LIB-CHAR as last path-character if not there */ + tmp_file=tmp_path; + if (!*path) + *tmp_file++ ='.'; /* From current dir */ + tmp_file= my_stpnmov(tmp_file, path, FN_REFLEN-5); + if (tmp_file[-1] == FN_DEVCHAR) + *tmp_file++= '.'; /* From current dev-dir */ + if (tmp_file[-1] != FN_LIBCHAR) + *tmp_file++ =FN_LIBCHAR; + tmp_file[0]='*'; /* Windows needs this !??? */ + tmp_file[1]='.'; + tmp_file[2]='*'; + tmp_file[3]='\0'; + + if (!(buffer= my_malloc(key_memory_MY_DIR, + ALIGN_SIZE(sizeof(MY_DIR)) + + ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)) + + sizeof(MEM_ROOT), MyFlags))) + goto error; + + dir_entries_storage= (DYNAMIC_ARRAY*)(buffer + ALIGN_SIZE(sizeof(MY_DIR))); + names_storage= (MEM_ROOT*)(buffer + ALIGN_SIZE(sizeof(MY_DIR)) + + ALIGN_SIZE(sizeof(DYNAMIC_ARRAY))); + + if (my_init_dynamic_array(dir_entries_storage, + key_memory_MY_DIR, + sizeof(FILEINFO), + NULL, /* init_buffer */ + ENTRIES_START_SIZE, ENTRIES_INCREMENT)) + { + my_free(buffer); + goto error; + } + init_alloc_root(key_memory_MY_DIR, names_storage, NAMES_START_SIZE, NAMES_START_SIZE); + + /* MY_DIR structure is allocated and completly initialized at this point */ + result= (MY_DIR*)buffer; + + if ((handle=_findfirst(tmp_path,&find)) == -1L) + { + DBUG_PRINT("info", ("findfirst returned error, errno: %d", errno)); + if (errno != EINVAL) + goto error; + /* + Could not read the directory, no read access. + Probably because by "chmod -r". + continue and return zero files in dir + */ + } + else + { + + do + { + attrib= find.attrib; + /* + Do not show hidden and system files which Windows sometimes create. + Note. Because Borland's findfirst() is called with the third + argument = 0 hidden/system files are excluded from the search. + */ + if (attrib & (_A_HIDDEN | _A_SYSTEM)) + continue; + if (!(finfo.name= strdup_root(names_storage, find.name))) + goto error; + if (MyFlags & MY_WANT_STAT) + { + if (!(finfo.mystat= (MY_STAT*)alloc_root(names_storage, + sizeof(MY_STAT)))) + goto error; + + memset(finfo.mystat, 0, sizeof(MY_STAT)); + finfo.mystat->st_size=find.size; + mode= MY_S_IREAD; + if (!(attrib & _A_RDONLY)) + mode|= MY_S_IWRITE; + if (attrib & _A_SUBDIR) + mode|= MY_S_IFDIR; + finfo.mystat->st_mode= mode; + finfo.mystat->st_mtime= ((uint32) find.time_write); + } + else + finfo.mystat= NULL; + + if (insert_dynamic(dir_entries_storage, (uchar*)&finfo)) + goto error; + } + while (_findnext(handle,&find) == 0); + + _findclose(handle); + } + + result->dir_entry= (FILEINFO *)dir_entries_storage->buffer; + result->number_off_files= dir_entries_storage->elements; + + if (!(MyFlags & MY_DONT_SORT)) + my_qsort((void *) result->dir_entry, result->number_off_files, + sizeof(FILEINFO), (qsort_cmp) comp_names); + DBUG_PRINT("exit", ("found %d files", result->number_off_files)); + DBUG_RETURN(result); +error: + set_my_errno(errno); + if (handle != -1) + _findclose(handle); + my_dirend(result); + if (MyFlags & MY_FAE+MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_DIR, MYF(0), path, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + DBUG_RETURN((MY_DIR *) NULL); +} /* my_dir */ + +#endif /* _WIN32 */ + +/**************************************************************************** +** File status +** Note that MY_STAT is assumed to be same as struct stat +****************************************************************************/ + + +int my_fstat(File Filedes, MY_STAT *stat_area, + myf MyFlags MY_ATTRIBUTE((unused))) +{ + DBUG_ENTER("my_fstat"); + DBUG_PRINT("my",("fd: %d MyFlags: %d", Filedes, MyFlags)); +#ifdef _WIN32 + DBUG_RETURN(my_win_fstat(Filedes, stat_area)); +#else + DBUG_RETURN(fstat(Filedes, (struct stat *) stat_area)); +#endif +} + + +MY_STAT *my_stat(const char *path, MY_STAT *stat_area, myf my_flags) +{ + const int m_used= (stat_area == NULL); + DBUG_ENTER("my_stat"); + DBUG_PRINT("my", ("path: '%s' stat_area: 0x%lx MyFlags: %d", path, + (long) stat_area, my_flags)); + + if (m_used) + if (!(stat_area= (MY_STAT *) my_malloc(key_memory_MY_STAT, + sizeof(MY_STAT), my_flags))) + goto error; +#ifndef _WIN32 + if (! stat((char *) path, (struct stat *) stat_area) ) + DBUG_RETURN(stat_area); +#else + if (! my_win_stat(path, stat_area) ) + DBUG_RETURN(stat_area); +#endif + DBUG_PRINT("error",("Got errno: %d from stat", errno)); + set_my_errno(errno); + if (m_used) /* Free if new area */ + my_free(stat_area); + +error: + if (my_flags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_STAT, MYF(0), path, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + DBUG_RETURN((MY_STAT *) NULL); + } + DBUG_RETURN((MY_STAT *) NULL); +} /* my_stat */ diff --git a/mysql/mysys/my_lock.c b/mysql/mysys/my_lock.c new file mode 100644 index 0000000..1b4336c --- /dev/null +++ b/mysql/mysys/my_lock.c @@ -0,0 +1,221 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + + +#ifndef _WIN32 +#include + +static int volatile my_have_got_alarm= 0; +static uint my_time_to_wait_for_lock= 2; /* In seconds */ + +void my_set_alarm_variable(int signo MY_ATTRIBUTE((unused))) +{ + my_have_got_alarm= 1; /* Tell program that time expired */ +} +#endif /* !_WIN32 */ + +#ifdef _WIN32 +#define WIN_LOCK_INFINITE -1 +#define WIN_LOCK_SLEEP_MILLIS 100 + +static int win_lock(File fd, int locktype, my_off_t start, my_off_t length, + int timeout_sec) +{ + LARGE_INTEGER liOffset,liLength; + DWORD dwFlags; + OVERLAPPED ov= {0}; + HANDLE hFile= (HANDLE)my_get_osfhandle(fd); + DWORD lastError= 0; + int i; + int timeout_millis= timeout_sec * 1000; + + DBUG_ENTER("win_lock"); + + liOffset.QuadPart= start; + liLength.QuadPart= length; + + ov.Offset= liOffset.LowPart; + ov.OffsetHigh= liOffset.HighPart; + + if (locktype == F_UNLCK) + { + if (UnlockFileEx(hFile, 0, liLength.LowPart, liLength.HighPart, &ov)) + DBUG_RETURN(0); + /* + For compatibility with fcntl implementation, ignore error, + if region was not locked + */ + if (GetLastError() == ERROR_NOT_LOCKED) + { + SetLastError(0); + DBUG_RETURN(0); + } + goto error; + } + else if (locktype == F_RDLCK) + /* read lock is mapped to a shared lock. */ + dwFlags= 0; + else + /* write lock is mapped to an exclusive lock. */ + dwFlags= LOCKFILE_EXCLUSIVE_LOCK; + + /* + Drop old lock first to avoid double locking. + During analyze of Bug#38133 (Myisamlog test fails on Windows) + I met the situation that the program myisamlog locked the file + exclusively, then additionally shared, then did one unlock, and + then blocked on an attempt to lock it exclusively again. + Unlocking before every lock fixed the problem. + Note that this introduces a race condition. When the application + wants to convert an exclusive lock into a shared one, it will now + first unlock the file and then lock it shared. A waiting exclusive + lock could step in here. For reasons described in Bug#38133 and + Bug#41124 (Server hangs on Windows with --external-locking after + INSERT...SELECT) and in the review thread at + http://lists.mysql.com/commits/60721 it seems to be the better + option than not to unlock here. + If one day someone notices a way how to do file lock type changes + on Windows without unlocking before taking the new lock, please + change this code accordingly to fix the race condition. + */ + if (!UnlockFileEx(hFile, 0, liLength.LowPart, liLength.HighPart, &ov) && + (GetLastError() != ERROR_NOT_LOCKED)) + goto error; + + if (timeout_sec == WIN_LOCK_INFINITE) + { + if (LockFileEx(hFile, dwFlags, 0, liLength.LowPart, liLength.HighPart, &ov)) + DBUG_RETURN(0); + goto error; + } + + dwFlags|= LOCKFILE_FAIL_IMMEDIATELY; + timeout_millis= timeout_sec * 1000; + /* Try lock in a loop, until the lock is acquired or timeout happens */ + for(i= 0; ;i+= WIN_LOCK_SLEEP_MILLIS) + { + if (LockFileEx(hFile, dwFlags, 0, liLength.LowPart, liLength.HighPart, &ov)) + DBUG_RETURN(0); + + if (GetLastError() != ERROR_LOCK_VIOLATION) + goto error; + + if (i >= timeout_millis) + break; + Sleep(WIN_LOCK_SLEEP_MILLIS); + } + + /* timeout */ + errno= EAGAIN; + DBUG_RETURN(-1); + +error: + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); +} +#endif + + + +/* + Lock a part of a file + + RETURN VALUE + 0 Success + -1 An error has occured and 'my_errno' is set + to indicate the actual error code. +*/ + +int my_lock(File fd, int locktype, my_off_t start, my_off_t length, + myf MyFlags) +{ + DBUG_ENTER("my_lock"); + DBUG_PRINT("my",("fd: %d Op: %d start: %ld Length: %ld MyFlags: %d", + fd,locktype,(long) start,(long) length,MyFlags)); + if (my_disable_locking) + DBUG_RETURN(0); + +#if defined(_WIN32) + { + int timeout_sec; + if (MyFlags & MY_DONT_WAIT) + timeout_sec= 0; + else + timeout_sec= WIN_LOCK_INFINITE; + + if (win_lock(fd, locktype, start, length, timeout_sec) == 0) + DBUG_RETURN(0); + } +#else + { + struct flock lock; + + lock.l_type= (short) locktype; + lock.l_whence= SEEK_SET; + lock.l_start= (off_t) start; + lock.l_len= (off_t) length; + + if (MyFlags & MY_DONT_WAIT) + { + int value; + uint alarm_old; + sig_return alarm_signal; + + if (fcntl(fd,F_SETLK,&lock) != -1) /* Check if we can lock */ + DBUG_RETURN(0); /* Ok, file locked */ + DBUG_PRINT("info",("Was locked, trying with alarm")); + my_have_got_alarm= 0; + alarm_old= alarm(my_time_to_wait_for_lock); + alarm_signal= signal(SIGALRM, my_set_alarm_variable); + while ((value= fcntl(fd, F_SETLKW, &lock)) && !my_have_got_alarm && + errno == EINTR) + { /* Setup again so we don`t miss it */ + (void) alarm(my_time_to_wait_for_lock); + my_have_got_alarm= 0; + } + (void) signal(SIGALRM, alarm_signal); + (void) alarm(alarm_old); + if (value != -1) + DBUG_RETURN(0); + if (errno == EINTR) + errno=EAGAIN; + } + else if (fcntl(fd,F_SETLKW,&lock) != -1) /* Wait until a lock */ + DBUG_RETURN(0); + } +#endif /* _WIN32 */ + + /* We got an error. We don't want EACCES errors */ + set_my_errno((errno == EACCES) ? EAGAIN : errno ? errno : -1); + + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + if (locktype == F_UNLCK) + my_error(EE_CANTUNLOCK, MYF(0), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + else + my_error(EE_CANTLOCK, MYF(0), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_PRINT("error",("my_errno: %d (%d)",my_errno(),errno)); + DBUG_RETURN(-1); +} /* my_lock */ diff --git a/mysql/mysys/my_malloc.c b/mysql/mysys/my_malloc.c new file mode 100644 index 0000000..230ee5b --- /dev/null +++ b/mysql/mysys/my_malloc.c @@ -0,0 +1,325 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + +#ifdef HAVE_PSI_MEMORY_INTERFACE +#define USE_MALLOC_WRAPPER +#endif + +static void *my_raw_malloc(size_t size, myf my_flags); +static void my_raw_free(void *ptr); + +#ifdef USE_MALLOC_WRAPPER +struct my_memory_header +{ + PSI_memory_key m_key; + uint m_magic; + size_t m_size; + PSI_thread *m_owner; +}; +typedef struct my_memory_header my_memory_header; +#define HEADER_SIZE 32 + +#define MAGIC 1234 + +#define USER_TO_HEADER(P) \ + ( (my_memory_header*) (((char *) P) - HEADER_SIZE )) +#define HEADER_TO_USER(P) \ + ( ((char*) P) + HEADER_SIZE ) + +void * my_malloc(PSI_memory_key key, size_t size, myf flags) +{ + my_memory_header *mh; + size_t raw_size; + compile_time_assert(sizeof(my_memory_header) <= HEADER_SIZE); + + raw_size= HEADER_SIZE + size; + mh= (my_memory_header*) my_raw_malloc(raw_size, flags); + if (likely(mh != NULL)) + { + void *user_ptr; + mh->m_magic= MAGIC; + mh->m_size= size; + mh->m_key= PSI_MEMORY_CALL(memory_alloc)(key, size, & mh->m_owner); + user_ptr= HEADER_TO_USER(mh); + MEM_MALLOCLIKE_BLOCK(user_ptr, size, 0, (flags & MY_ZEROFILL)); + return user_ptr; + } + return NULL; +} + +void * +my_realloc(PSI_memory_key key, void *ptr, size_t size, myf flags) +{ + my_memory_header *old_mh; + size_t old_size; + size_t min_size; + void *new_ptr; + + if (ptr == NULL) + return my_malloc(key, size, flags); + + old_mh= USER_TO_HEADER(ptr); + DBUG_ASSERT((old_mh->m_key == key) || (old_mh->m_key == PSI_NOT_INSTRUMENTED)); + DBUG_ASSERT(old_mh->m_magic == MAGIC); + + old_size= old_mh->m_size; + + if (old_size == size) + return ptr; + + new_ptr= my_malloc(key, size, flags); + if (likely(new_ptr != NULL)) + { +#ifndef DBUG_OFF + my_memory_header *new_mh= USER_TO_HEADER(new_ptr); +#endif + + DBUG_ASSERT((new_mh->m_key == key) || (new_mh->m_key == PSI_NOT_INSTRUMENTED)); + DBUG_ASSERT(new_mh->m_magic == MAGIC); + DBUG_ASSERT(new_mh->m_size == size); + + min_size= (old_size < size) ? old_size : size; + memcpy(new_ptr, ptr, min_size); + my_free(ptr); + + return new_ptr; + } + return NULL; +} + +void my_claim(void *ptr) +{ + my_memory_header *mh; + + if (ptr == NULL) + return; + + mh= USER_TO_HEADER(ptr); + DBUG_ASSERT(mh->m_magic == MAGIC); + mh->m_key= PSI_MEMORY_CALL(memory_claim)(mh->m_key, mh->m_size, & mh->m_owner); +} + +void my_free(void *ptr) +{ + my_memory_header *mh; + + if (ptr == NULL) + return; + + mh= USER_TO_HEADER(ptr); + DBUG_ASSERT(mh->m_magic == MAGIC); + PSI_MEMORY_CALL(memory_free)(mh->m_key, mh->m_size, mh->m_owner); + /* Catch double free */ + mh->m_magic= 0xDEAD; + MEM_FREELIKE_BLOCK(ptr, 0); + my_raw_free(mh); +} + +#else + +void *my_malloc(PSI_memory_key key MY_ATTRIBUTE((unused)), + size_t size, myf my_flags) +{ + return my_raw_malloc(size, my_flags); +} + +static void *my_raw_realloc(void *oldpoint, size_t size, myf my_flags); + +void *my_realloc(PSI_memory_key key MY_ATTRIBUTE((unused)), + void *ptr, size_t size, myf flags) +{ + return my_raw_realloc(ptr, size, flags); +} + +void my_claim(void *ptr MY_ATTRIBUTE((unused))) +{ + /* Empty */ +} + +void my_free(void *ptr) +{ + my_raw_free(ptr); +} +#endif + + +/** + Allocate a sized block of memory. + + @param size The size of the memory block in bytes. + @param flags Failure action modifiers (bitmasks). + + @return A pointer to the allocated memory block, or NULL on failure. +*/ +static void *my_raw_malloc(size_t size, myf my_flags) +{ + void* point; + DBUG_ENTER("my_raw_malloc"); + DBUG_PRINT("my",("size: %lu my_flags: %d", (ulong) size, my_flags)); + + /* Safety */ + if (!size) + size=1; + +#if defined(MY_MSCRT_DEBUG) + if (my_flags & MY_ZEROFILL) + point= _calloc_dbg(size, 1, _CLIENT_BLOCK, __FILE__, __LINE__); + else + point= _malloc_dbg(size, _CLIENT_BLOCK, __FILE__, __LINE__); +#else + if (my_flags & MY_ZEROFILL) + point= calloc(size, 1); + else + point= malloc(size); +#endif + + DBUG_EXECUTE_IF("simulate_out_of_memory", + { + free(point); + point= NULL; + }); + DBUG_EXECUTE_IF("simulate_persistent_out_of_memory", + { + free(point); + point= NULL; + }); + + if (point == NULL) + { + set_my_errno(errno); + if (my_flags & MY_FAE) + error_handler_hook=fatal_error_handler_hook; + if (my_flags & (MY_FAE+MY_WME)) + my_error(EE_OUTOFMEMORY, MYF(ME_ERRORLOG + ME_FATALERROR),size); + DBUG_EXECUTE_IF("simulate_out_of_memory", + DBUG_SET("-d,simulate_out_of_memory");); + if (my_flags & MY_FAE) + exit(1); + } + + DBUG_PRINT("exit",("ptr: %p", point)); + DBUG_RETURN(point); +} + + +#ifndef USE_MALLOC_WRAPPER +/** + @brief wrapper around realloc() + + @param oldpoint pointer to currently allocated area + @param size new size requested, must be >0 + @param my_flags flags + + @note if size==0 realloc() may return NULL; my_realloc() treats this as an + error which is not the intention of realloc() +*/ +static void *my_raw_realloc(void *oldpoint, size_t size, myf my_flags) +{ + void *point; + DBUG_ENTER("my_realloc"); + DBUG_PRINT("my",("ptr: %p size: %lu my_flags: %d", oldpoint, + (ulong) size, my_flags)); + + DBUG_ASSERT(size > 0); + /* These flags are mutually exclusive. */ + DBUG_ASSERT(!((my_flags & MY_FREE_ON_ERROR) && + (my_flags & MY_HOLD_ON_ERROR))); + DBUG_EXECUTE_IF("simulate_out_of_memory", + point= NULL; + goto end;); + if (!oldpoint && (my_flags & MY_ALLOW_ZERO_PTR)) + DBUG_RETURN(my_raw_malloc(size, my_flags)); +#if defined(MY_MSCRT_DEBUG) + point= _realloc_dbg(oldpoint, size, _CLIENT_BLOCK, __FILE__, __LINE__); +#else + point= realloc(oldpoint, size); +#endif +#ifndef DBUG_OFF +end: +#endif + if (point == NULL) + { + if (my_flags & MY_HOLD_ON_ERROR) + DBUG_RETURN(oldpoint); + if (my_flags & MY_FREE_ON_ERROR) + my_free(oldpoint); + set_my_errno(errno); + if (my_flags & (MY_FAE+MY_WME)) + my_error(EE_OUTOFMEMORY, MYF(ME_FATALERROR), + size); + DBUG_EXECUTE_IF("simulate_out_of_memory", + DBUG_SET("-d,simulate_out_of_memory");); + } + DBUG_PRINT("exit",("ptr: %p", point)); + DBUG_RETURN(point); +} +#endif + +/** + Free memory allocated with my_raw_malloc. + + @remark Relies on free being able to handle a NULL argument. + + @param ptr Pointer to the memory allocated by my_raw_malloc. +*/ +static void my_raw_free(void *ptr) +{ + DBUG_ENTER("my_free"); + DBUG_PRINT("my",("ptr: %p", ptr)); +#if defined(MY_MSCRT_DEBUG) + _free_dbg(ptr, _CLIENT_BLOCK); +#else + free(ptr); +#endif + DBUG_VOID_RETURN; +} + + +void *my_memdup(PSI_memory_key key, const void *from, size_t length, myf my_flags) +{ + void *ptr; + if ((ptr= my_malloc(key, length, my_flags)) != 0) + memcpy(ptr, from, length); + return ptr; +} + + +char *my_strdup(PSI_memory_key key, const char *from, myf my_flags) +{ + char *ptr; + size_t length= strlen(from)+1; + if ((ptr= (char*) my_malloc(key, length, my_flags))) + memcpy(ptr, from, length); + return ptr; +} + + +char *my_strndup(PSI_memory_key key, const char *from, size_t length, myf my_flags) +{ + char *ptr; + if ((ptr= (char*) my_malloc(key, length+1, my_flags))) + { + memcpy(ptr, from, length); + ptr[length]= 0; + } + return ptr; +} + diff --git a/mysql/mysys/my_memmem.c b/mysql/mysys/my_memmem.c new file mode 100644 index 0000000..e15dedf --- /dev/null +++ b/mysql/mysys/my_memmem.c @@ -0,0 +1,84 @@ +/* Copyright (c) 2000, 2006, 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include +#include + +/* + my_memmem, port of a GNU extension. + + Returns a pointer to the beginning of the substring, needle, or NULL if the + substring is not found in haystack. +*/ + +void *my_memmem(const void *haystack, size_t haystacklen, + const void *needle, size_t needlelen) +{ + const unsigned char *cursor; + const unsigned char *last_possible_needle_location = + (unsigned char *)haystack + haystacklen - needlelen; + + /* Easy answers */ + if (needlelen > haystacklen) return(NULL); + if (needle == NULL) return(NULL); + if (haystack == NULL) return(NULL); + if (needlelen == 0) return(NULL); + if (haystacklen == 0) return(NULL); + + for (cursor = haystack; cursor <= last_possible_needle_location; cursor++) { + if (memcmp(needle, cursor, needlelen) == 0) { + return((void *) cursor); + } + } + return(NULL); +} + + + +#ifdef MAIN +#include + +int main(int argc, char *argv[]) { + char haystack[10], needle[3]; + + memmove(haystack, "0123456789", 10); + + memmove(needle, "no", 2); + assert(my_memmem(haystack, 10, needle, 2) == NULL); + + memmove(needle, "345", 3); + assert(my_memmem(haystack, 10, needle, 3) != NULL); + + memmove(needle, "789", 3); + assert(my_memmem(haystack, 10, needle, 3) != NULL); + assert(my_memmem(haystack, 9, needle, 3) == NULL); + + memmove(needle, "012", 3); + assert(my_memmem(haystack, 10, needle, 3) != NULL); + assert(my_memmem(NULL, 10, needle, 3) == NULL); + + assert(my_memmem(NULL, 10, needle, 3) == NULL); + assert(my_memmem(haystack, 0, needle, 3) == NULL); + assert(my_memmem(haystack, 10, NULL, 3) == NULL); + assert(my_memmem(haystack, 10, needle, 0) == NULL); + + assert(my_memmem(haystack, 1, needle, 3) == NULL); + + printf("success\n"); + return(0); +} + +#endif diff --git a/mysql/mysys/my_mess.c b/mysql/mysys/my_mess.c new file mode 100644 index 0000000..0c6d24d --- /dev/null +++ b/mysql/mysys/my_mess.c @@ -0,0 +1,65 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" + +/** + Print an error message on stderr. + Prefixed with the binary's name (sans .exe, where applicable, + and without path, both to keep our test cases sane). + The name is intended to aid debugging by clarifying which + binary reported an error, especially in cases like mysql_upgrade + which calls several other tools whose messages should be + distinguishable from each other's, and from mysql_upgrade's. + + This is low-level, in most cases, you should use my_message_local() + instead (which by default goes through my_message_local_stderr(), + which is a wrapper around this function that adds a severity level). + + @param error The error number. Currently unused. + @param str The message to print. Not trailing \n needed. + @param MyFlags ME_BELL to beep, or 0. +*/ +void my_message_stderr(uint error MY_ATTRIBUTE((unused)), + const char *str, myf MyFlags) +{ + DBUG_ENTER("my_message_stderr"); + DBUG_PRINT("enter",("message: %s",str)); + (void) fflush(stdout); + if (MyFlags & ME_BELL) + (void) fputc('\007', stderr); + if (my_progname) + { + size_t l; + const char *r; + + if ((r= strrchr(my_progname, FN_LIBCHAR))) + r++; + else + r= my_progname; + + l= strlen(r); + #ifdef _WIN32 + if ((l > 4) && !strcmp(&r[l - 4], ".exe")) + l-= 4; /* purecov: inspected */ /* Windows-only */ + #endif + fprintf(stderr, "%.*s: ", (int) l, r); + } + (void)fputs(str,stderr); + (void)fputc('\n',stderr); + (void)fflush(stderr); + DBUG_VOID_RETURN; +} diff --git a/mysql/mysys/my_mkdir.c b/mysql/mysys/my_mkdir.c new file mode 100644 index 0000000..00f0a48 --- /dev/null +++ b/mysql/mysys/my_mkdir.c @@ -0,0 +1,48 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include "my_thread_local.h" +#include +#include +#ifdef _WIN32 +#include +#endif + +int my_mkdir(const char *dir, int Flags, myf MyFlags) +{ + DBUG_ENTER("my_dir"); + DBUG_PRINT("enter",("dir: %s",dir)); + +#if defined(_WIN32) + if (mkdir((char*) dir)) +#else + if (mkdir((char*) dir, Flags & my_umask_dir)) +#endif + { + set_my_errno(errno); + DBUG_PRINT("error",("error %d when creating direcory %s",my_errno(),dir)); + if (MyFlags & (MY_FFNF | MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_MKDIR, MYF(0), dir, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN(-1); + } + DBUG_RETURN(0); +} diff --git a/mysql/mysys/my_mmap.c b/mysql/mysys/my_mmap.c new file mode 100644 index 0000000..b58c657 --- /dev/null +++ b/mysql/mysys/my_mmap.c @@ -0,0 +1,89 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" + +#ifdef HAVE_SYS_MMAN_H + +/* + system msync() only syncs mmap'ed area to fs cache. + fsync() is required to really sync to disc +*/ +int my_msync(int fd, void *addr, size_t len, int flags) +{ + msync(addr, len, flags); + return my_sync(fd, MYF(0)); +} + +#elif defined(_WIN32) + +static SECURITY_ATTRIBUTES mmap_security_attributes= + {sizeof(SECURITY_ATTRIBUTES), 0, TRUE}; + +void *my_mmap(void *addr, size_t len, int prot, + int flags, File fd, my_off_t offset) +{ + HANDLE hFileMap; + LPVOID ptr; + HANDLE hFile= (HANDLE)my_get_osfhandle(fd); + DBUG_ENTER("my_mmap"); + DBUG_PRINT("mysys", ("map fd: %d", fd)); + + if (hFile == INVALID_HANDLE_VALUE) + DBUG_RETURN(MAP_FAILED); + + hFileMap=CreateFileMapping(hFile, &mmap_security_attributes, + PAGE_READWRITE, 0, (DWORD) len, NULL); + if (hFileMap == 0) + DBUG_RETURN(MAP_FAILED); + + ptr=MapViewOfFile(hFileMap, + prot & PROT_WRITE ? FILE_MAP_WRITE : FILE_MAP_READ, + (DWORD)(offset >> 32), (DWORD)offset, len); + + /* + MSDN explicitly states that it's possible to close File Mapping Object + even when a view is not unmapped - then the object will be held open + implicitly until unmap, as every view stores internally a handler of + a corresponding File Mapping Object + */ + CloseHandle(hFileMap); + + if (ptr) + { + DBUG_PRINT("mysys", ("mapped addr: %p", ptr)); + DBUG_RETURN(ptr); + } + + DBUG_RETURN(MAP_FAILED); +} + +int my_munmap(void *addr, size_t len) +{ + DBUG_ENTER("my_munmap"); + DBUG_PRINT("mysys", ("unmap addr: %p", addr)); + DBUG_RETURN(UnmapViewOfFile(addr) ? 0 : -1); +} + +int my_msync(int fd, void *addr, size_t len, int flags) +{ + return FlushViewOfFile(addr, len) ? 0 : -1; +} + +#else +#error "no mmap!" +#endif + diff --git a/mysql/mysys/my_once.c b/mysql/mysys/my_once.c new file mode 100644 index 0000000..b0938f0 --- /dev/null +++ b/mysql/mysys/my_once.c @@ -0,0 +1,120 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Not MT-SAFE */ + +#include "mysys_priv.h" +#include "my_static.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + +/* + Alloc for things we don't nend to free run-time (that only + should be free'd on exit) + + SYNOPSIS + my_once_alloc() + Size + MyFlags + + NOTES + No DBUG_ENTER... here to get smaller dbug-startup +*/ + +void* my_once_alloc(size_t Size, myf MyFlags) +{ + size_t get_size, max_left; + uchar* point; + USED_MEM *next; + USED_MEM **prev; + + Size= ALIGN_SIZE(Size); + prev= &my_once_root_block; + max_left=0; + for (next=my_once_root_block ; next && next->left < Size ; next= next->next) + { + if (next->left > max_left) + max_left=next->left; + prev= &next->next; + } + if (! next) + { /* Time to alloc new block */ + get_size= Size+ALIGN_SIZE(sizeof(USED_MEM)); + if (max_left*4 < my_once_extra && get_size < my_once_extra) + get_size=my_once_extra; /* Normal alloc */ + + if ((next = (USED_MEM*) malloc(get_size)) == 0) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE+MY_WME)) + my_error(EE_OUTOFMEMORY, MYF(ME_FATALERROR), get_size); + return((uchar*) 0); + } + DBUG_PRINT("test",("my_once_malloc %lu byte malloced", (ulong) get_size)); + next->next= 0; + next->size= (uint)get_size; + next->left= (uint)(get_size-ALIGN_SIZE(sizeof(USED_MEM))); + *prev=next; + } + point= (uchar*) ((char*) next+ (next->size-next->left)); + next->left-= (uint)Size; + + if (MyFlags & MY_ZEROFILL) + memset(point, 0, Size); + return((void*) point); +} /* my_once_alloc */ + + +char *my_once_strdup(const char *src,myf myflags) +{ + size_t len= strlen(src)+1; + uchar *dst= my_once_alloc(len, myflags); + if (dst) + memcpy(dst, src, len); + return (char*) dst; +} + + +void *my_once_memdup(const void *src, size_t len, myf myflags) +{ + uchar *dst= my_once_alloc(len, myflags); + if (dst) + memcpy(dst, src, len); + return dst; +} + + +/* + Deallocate everything that was allocated with my_once_alloc + + SYNOPSIS + my_once_free() +*/ + +void my_once_free(void) +{ + USED_MEM *next,*old; + DBUG_ENTER("my_once_free"); + + for (next=my_once_root_block ; next ; ) + { + old=next; next= next->next ; + free((uchar*) old); + } + my_once_root_block=0; + + DBUG_VOID_RETURN; +} /* my_once_free */ diff --git a/mysql/mysys/my_open.c b/mysql/mysys/my_open.c new file mode 100644 index 0000000..b67ac6f --- /dev/null +++ b/mysql/mysys/my_open.c @@ -0,0 +1,194 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include +#include "my_thread_local.h" + + +/* + Open a file + + SYNOPSIS + my_open() + FileName Fully qualified file name + Flags Read | write + MyFlags Special flags + + RETURN VALUE + File descriptor +*/ + +File my_open(const char *FileName, int Flags, myf MyFlags) + /* Path-name of file */ + /* Read | write .. */ + /* Special flags */ +{ + File fd; + DBUG_ENTER("my_open"); + DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d", + FileName, Flags, MyFlags)); +#if defined(_WIN32) + fd= my_win_open(FileName, Flags); +#else + fd = open(FileName, Flags, my_umask); /* Normal unix */ +#endif + + fd= my_register_filename(fd, FileName, FILE_BY_OPEN, EE_FILENOTFOUND, MyFlags); + DBUG_RETURN(fd); +} /* my_open */ + + +/* + Close a file + + SYNOPSIS + my_close() + fd File sescriptor + myf Special Flags + +*/ + +int my_close(File fd, myf MyFlags) +{ + int err; + DBUG_ENTER("my_close"); + DBUG_PRINT("my",("fd: %d MyFlags: %d",fd, MyFlags)); + + mysql_mutex_lock(&THR_LOCK_open); +#ifndef _WIN32 + do + { + err= close(fd); + } while (err == -1 && errno == EINTR); +#else + err= my_win_close(fd); +#endif + if (err) + { + DBUG_PRINT("error",("Got error %d on close",err)); + set_my_errno(errno); + if (MyFlags & (MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_BADCLOSE, MYF(0), my_filename(fd), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + } + if ((uint) fd < my_file_limit && my_file_info[fd].type != UNOPEN) + { + my_free(my_file_info[fd].name); + my_file_info[fd].type = UNOPEN; + } + my_file_opened--; + mysql_mutex_unlock(&THR_LOCK_open); + DBUG_RETURN(err); +} /* my_close */ + + +/* + Register file in my_file_info[] + + SYNOPSIS + my_register_filename() + fd File number opened, -1 if error on open + FileName File name + type_file_type How file was created + error_message_number Error message number if caller got error (fd == -1) + MyFlags Flags for my_close() + + RETURN + -1 error + # Filenumber + +*/ + +File my_register_filename(File fd, const char *FileName, enum file_type + type_of_file, uint error_message_number, myf MyFlags) +{ + char *dup_filename= NULL; + DBUG_ENTER("my_register_filename"); + if ((int) fd >= MY_FILE_MIN) + { + if ((uint) fd >= my_file_limit) + { +#if defined(_WIN32) + set_my_errno(EMFILE); +#else + mysql_mutex_lock(&THR_LOCK_open); + my_file_opened++; + mysql_mutex_unlock(&THR_LOCK_open); + DBUG_RETURN(fd); /* safeguard */ +#endif + } + else + { + dup_filename= my_strdup(key_memory_my_file_info, FileName, MyFlags); + if (dup_filename != NULL) + { + mysql_mutex_lock(&THR_LOCK_open); + my_file_info[fd].name= dup_filename; + my_file_opened++; + my_file_total_opened++; + my_file_info[fd].type = type_of_file; + mysql_mutex_unlock(&THR_LOCK_open); + DBUG_PRINT("exit",("fd: %d",fd)); + DBUG_RETURN(fd); + } + set_my_errno(ENOMEM); + } + (void) my_close(fd, MyFlags); + } + else + set_my_errno(errno); + + DBUG_PRINT("error",("Got error %d on open", my_errno())); + if (MyFlags & (MY_FFNF | MY_FAE | MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + if (my_errno() == EMFILE) + error_message_number= EE_OUT_OF_FILERESOURCES; + DBUG_PRINT("error",("print err: %d",error_message_number)); + my_error(error_message_number, MYF(0), FileName, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN(-1); +} + + + + +#ifdef EXTRA_DEBUG + +void my_print_open_files(void) +{ + if (my_file_opened | my_stream_opened) + { + uint i; + for (i= 0 ; i < my_file_limit ; i++) + { + if (my_file_info[i].type != UNOPEN) + { + my_message_local(INFORMATION_LEVEL, + EE(EE_FILE_NOT_CLOSED), my_file_info[i].name, i); + } + } + } +} + +#endif diff --git a/mysql/mysys/my_pread.c b/mysql/mysys/my_pread.c new file mode 100644 index 0000000..1511fd7 --- /dev/null +++ b/mysql/mysys/my_pread.c @@ -0,0 +1,207 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include "my_base.h" +#include +#include +#include "my_thread_local.h" + + +/* + Read a chunk of bytes from a file from a given position + + SYNOPSIOS + my_pread() + Filedes File decsriptor + Buffer Buffer to read data into + Count Number of bytes to read + offset Position to read from + MyFlags Flags + + NOTES + This differs from the normal pread() call in that we don't care + to set the position in the file back to the original position + if the system doesn't support pread(). + + RETURN + (size_t) -1 Error + # Number of bytes read +*/ + +size_t my_pread(File Filedes, uchar *Buffer, size_t Count, my_off_t offset, + myf MyFlags) +{ + size_t readbytes; + int error= 0; + DBUG_ENTER("my_pread"); + DBUG_PRINT("my",("fd: %d Seek: %llu Buffer: %p Count: %lu MyFlags: %d", + Filedes, (ulonglong)offset, Buffer, (ulong)Count, MyFlags)); + for (;;) + { + errno= 0; /* Linux, Windows don't reset this on EOF/success */ +#if defined(_WIN32) + readbytes= my_win_pread(Filedes, Buffer, Count, offset); +#else + readbytes= pread(Filedes, Buffer, Count, offset); +#endif + error= (readbytes != Count); + if(error) + { + set_my_errno(errno ? errno : -1); + if (errno == 0 || (readbytes != (size_t) -1 && + (MyFlags & (MY_NABP | MY_FNABP)))) + set_my_errno(HA_ERR_FILE_TOO_SHORT); + + DBUG_PRINT("warning",("Read only %d bytes off %u from %d, errno: %d", + (int) readbytes, (uint) Count,Filedes,my_errno())); + + if ((readbytes == 0 || readbytes == (size_t) -1) && errno == EINTR) + { + DBUG_PRINT("debug", ("my_pread() was interrupted and returned %d", + (int) readbytes)); + continue; /* Interrupted */ + } + + if (MyFlags & (MY_WME | MY_FAE | MY_FNABP)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + if (readbytes == (size_t) -1) + my_error(EE_READ, MYF(0), my_filename(Filedes), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + else if (MyFlags & (MY_NABP | MY_FNABP)) + my_error(EE_EOFERR, MYF(0), my_filename(Filedes), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + if (readbytes == (size_t) -1 || (MyFlags & (MY_FNABP | MY_NABP))) + DBUG_RETURN(MY_FILE_ERROR); /* Return with error */ + } + if (MyFlags & (MY_NABP | MY_FNABP)) + DBUG_RETURN(0); /* Read went ok; Return 0 */ + DBUG_RETURN(readbytes); /* purecov: inspected */ + } +} /* my_pread */ + + +/** + Write a chunk of bytes to a file at a given position + + SYNOPSIOS + my_pwrite() + Filedes File decsriptor + Buffer Buffer to write data from + Count Number of bytes to write + offset Position to write to + MyFlags Flags + + NOTES + This differs from the normal pwrite() call in that we don't care + to set the position in the file back to the original position + if the system doesn't support pwrite() + + if (MyFlags & (MY_NABP | MY_FNABP)) + @returns + 0 if Count == 0 + On succes, 0 + On failure, (size_t)-1 == MY_FILE_ERROR + + otherwise + @returns + 0 if Count == 0 + On success, the number of bytes written. + On partial success (if less than Count bytes could be written), + the actual number of bytes written. + On failure, (size_t)-1 == MY_FILE_ERROR +*/ + +size_t my_pwrite(File Filedes, const uchar *Buffer, size_t Count, + my_off_t offset, myf MyFlags) +{ + size_t writtenbytes; + size_t sum_written= 0; + uint errors= 0; + const size_t initial_count= Count; + + DBUG_ENTER("my_pwrite"); + DBUG_PRINT("my",("fd: %d Seek: %llu Buffer: %p Count: %lu MyFlags: %d", + Filedes, offset, Buffer, (ulong)Count, MyFlags)); + + for (;;) + { + errno= 0; +#if defined (_WIN32) + writtenbytes= my_win_pwrite(Filedes, Buffer, Count, offset); +#else + writtenbytes= pwrite(Filedes, Buffer, Count, offset); +#endif + if(writtenbytes == Count) + { + sum_written+= writtenbytes; + break; + } + set_my_errno(errno); + if (writtenbytes != (size_t) -1) + { + sum_written+= writtenbytes; + Buffer+= writtenbytes; + Count-= writtenbytes; + offset+= writtenbytes; + } + DBUG_PRINT("error",("Write only %u bytes", (uint) writtenbytes)); + + if (is_killed_hook(NULL)) + MyFlags&= ~ MY_WAIT_IF_FULL; /* End if aborted by user */ + + if ((my_errno() == ENOSPC || my_errno() == EDQUOT) && + (MyFlags & MY_WAIT_IF_FULL)) + { + wait_for_free_space(my_filename(Filedes), errors); + errors++; + continue; + } + if (writtenbytes != 0 && writtenbytes != (size_t) -1) + continue; + else if (my_errno() == EINTR) + { + continue; /* Retry */ + } + else if (writtenbytes == 0 && !errors++) /* Retry once */ + { + /* We may come here if the file quota is exeeded */ + continue; + } + break; /* Return bytes written */ + } + if (MyFlags & (MY_NABP | MY_FNABP)) + { + if (sum_written == initial_count) + DBUG_RETURN(0); /* Want only errors, not bytes written */ + if (MyFlags & (MY_WME | MY_FAE | MY_FNABP)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_WRITE, MYF(0), my_filename(Filedes), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN(MY_FILE_ERROR); + } + DBUG_EXECUTE_IF("check", my_seek(Filedes, -1, SEEK_SET, MYF(0));); + + if (sum_written == 0) + DBUG_RETURN(MY_FILE_ERROR); + + DBUG_RETURN(sum_written); +} /* my_pwrite */ diff --git a/mysql/mysys/my_rdtsc.c b/mysql/mysys/my_rdtsc.c new file mode 100644 index 0000000..2be781f --- /dev/null +++ b/mysql/mysys/my_rdtsc.c @@ -0,0 +1,902 @@ +/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + rdtsc3 -- multi-platform timer code + pgulutzan@mysql.com, 2005-08-29 + modified 2008-11-02 + + Functions: + + my_timer_cycles ulonglong cycles + my_timer_nanoseconds ulonglong nanoseconds + my_timer_microseconds ulonglong "microseconds" + my_timer_milliseconds ulonglong milliseconds + my_timer_ticks ulonglong ticks + my_timer_init initialization / test + + We'll call the first 5 functions (the ones that return + a ulonglong) "my_timer_xxx" functions. + Each my_timer_xxx function returns a 64-bit timing value + since an arbitrary 'epoch' start. Since the only purpose + is to determine elapsed times, wall-clock time-of-day + is not known and not relevant. + + The my_timer_init function is necessary for initializing. + It returns information (underlying routine name, + frequency, resolution, overhead) about all my_timer_xxx + functions. A program should call my_timer_init once, + use the information to decide what my_timer_xxx function + to use, and subsequently call that function by function + pointer. + + A typical use would be: + my_timer_init() ... once, at program start + ... + time1= my_timer_xxx() ... time before start + [code that's timed] + time2= my_timer_xxx() ... time after end + elapsed_time= (time2 - time1) - overhead +*/ + +#include "my_global.h" +#include "my_rdtsc.h" + +#include +#if defined(_WIN32) +#include "windows.h" +#endif + +#if defined(TIME_WITH_SYS_TIME) +#include +#include /* for clock_gettime */ +#endif + +#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_TIMES) +#include /* for times */ +#endif + +#if defined(__APPLE__) && defined(__MACH__) +#include +#endif + +#if defined(__SUNPRO_CC) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7) +extern "C" ulonglong my_timer_cycles_il_sparc64(); +#elif defined(__SUNPRO_CC) && defined(_ILP32) && !defined(__SunOS_5_7) +extern "C" ulonglong my_timer_cycles_il_sparc32(); +#elif defined(__SUNPRO_CC) && defined(__i386) && defined(_ILP32) +extern "C" ulonglong my_timer_cycles_il_i386(); +#elif defined(__SUNPRO_CC) && defined(__x86_64) && defined(_LP64) +extern "C" ulonglong my_timer_cycles_il_x86_64(); +#elif defined(__SUNPRO_C) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7) +ulonglong my_timer_cycles_il_sparc64(); +#elif defined(__SUNPRO_C) && defined(_ILP32) && !defined(__SunOS_5_7) +ulonglong my_timer_cycles_il_sparc32(); +#elif defined(__SUNPRO_C) && defined(__i386) && defined(_ILP32) +ulonglong my_timer_cycles_il_i386(); +#elif defined(__SUNPRO_C) && defined(__x86_64) && defined(_LP64) +ulonglong my_timer_cycles_il_x86_64(); +#endif + +/* + For cycles, we depend on RDTSC for x86 platforms, + or on time buffer (which is not really a cycle count + but a separate counter with less than nanosecond + resolution) for most PowerPC platforms, or on + gethrtime which is okay for solaris. +*/ + +ulonglong my_timer_cycles(void) +{ +#if defined(__GNUC__) && defined(__i386__) + /* This works much better if compiled with "gcc -O3". */ + ulonglong result; + __asm__ __volatile__ ("rdtsc" : "=A" (result)); + return result; +#elif defined(__SUNPRO_C) && defined(__i386) + __asm("rdtsc"); +#elif defined(__GNUC__) && defined(__x86_64__) + ulonglong result; + __asm__ __volatile__ ("rdtsc\n\t" \ + "shlq $32,%%rdx\n\t" \ + "orq %%rdx,%%rax" + : "=a" (result) :: "%edx"); + return result; +#elif defined(_WIN32) && defined(_M_IX86) + __asm {rdtsc}; +#elif defined(_WIN64) && defined(_M_X64) + /* For 64-bit Windows: unsigned __int64 __rdtsc(); */ + return __rdtsc(); +#elif defined(__GNUC__) && defined(__ia64__) + { + ulonglong result; + __asm __volatile__ ("mov %0=ar.itc" : "=r" (result)); + return result; + } +#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__)) && (defined(__64BIT__) || defined(_ARCH_PPC64)) + { + ulonglong result; + __asm __volatile__ ("mftb %0" : "=r" (result)); + return result; + } +#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__)) && (!defined(__64BIT__) && !defined(_ARCH_PPC64)) + { + /* + mftbu means "move from time-buffer-upper to result". + The loop is saying: x1=upper, x2=lower, x3=upper, + if x1!=x3 there was an overflow so repeat. + */ + unsigned int x1, x2, x3; + ulonglong result; + for (;;) + { + __asm __volatile__ ( "mftbu %0" : "=r"(x1) ); + __asm __volatile__ ( "mftb %0" : "=r"(x2) ); + __asm __volatile__ ( "mftbu %0" : "=r"(x3) ); + if (x1 == x3) break; + } + result = x1; + return ( result << 32 ) | x2; + } +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7) + return (my_timer_cycles_il_sparc64()); +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(_ILP32) && !defined(__SunOS_5_7) + return (my_timer_cycles_il_sparc32()); +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__i386) && defined(_ILP32) + /* This is probably redundant for __SUNPRO_C. */ + return (my_timer_cycles_il_i386()); +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__x86_64) && defined(_LP64) + return (my_timer_cycles_il_x86_64()); +#elif defined(__GNUC__) && defined(__sparcv9) && defined(_LP64) + { + ulonglong result; + __asm __volatile__ ("rd %%tick,%0" : "=r" (result)); + return result; + } +#elif defined(__GNUC__) && defined(__sparc__) && !defined(_LP64) + { + union { + ulonglong wholeresult; + struct { + ulong high; + ulong low; + } splitresult; + } result; + __asm __volatile__ ("rd %%tick,%1; srlx %1,32,%0" : "=r" (result.splitresult.high), "=r" (result.splitresult.low)); + return result.wholeresult; + } +#elif defined(__GNUC__) && defined(__aarch64__) + { + ulonglong result; + __asm __volatile__ ("mrs %[rt],cntvct_el0" : [rt] "=r" (result)); + return result; + } +#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) + /* gethrtime may appear as either cycle or nanosecond counter */ + return (ulonglong) gethrtime(); +#else + return 0; +#endif +} + +/* + For nanoseconds, most platforms have nothing available that + (a) doesn't require bringing in a 40-kb librt.so library + (b) really has nanosecond resolution. +*/ + +ulonglong my_timer_nanoseconds(void) +{ +#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) + /* SunOS 5.10+, Solaris, HP-UX: hrtime_t gethrtime(void) */ + return (ulonglong) gethrtime(); +#elif defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_REALTIME) + { + struct timespec tp; + clock_gettime(CLOCK_REALTIME, &tp); + return (ulonglong) tp.tv_sec * 1000000000 + (ulonglong) tp.tv_nsec; + } +#elif defined(__APPLE__) && defined(__MACH__) + { + ulonglong tm; + static mach_timebase_info_data_t timebase_info= {0,0}; + if (timebase_info.denom == 0) + (void) mach_timebase_info(&timebase_info); + tm= mach_absolute_time(); + return (tm * timebase_info.numer) / timebase_info.denom; + } +#else + return 0; +#endif +} + +/* + For microseconds, gettimeofday() is available on + almost all platforms. On Windows we use + QueryPerformanceCounter which will usually tick over + 3.5 million times per second, and we don't throw + away the extra precision. (On Windows Server 2003 + the frequency is same as the cycle frequency.) +*/ + +ulonglong my_timer_microseconds(void) +{ +#if defined(HAVE_GETTIMEOFDAY) + { + static ulonglong last_value= 0; + struct timeval tv; + if (gettimeofday(&tv, NULL) == 0) + last_value= (ulonglong) tv.tv_sec * 1000000 + (ulonglong) tv.tv_usec; + else + { + /* + There are reports that gettimeofday(2) can have intermittent failures + on some platform, see for example Bug#36819. + We are not trying again or looping, just returning the best value possible + under the circumstances ... + */ + last_value++; + } + return last_value; + } +#elif defined(_WIN32) + { + /* QueryPerformanceCounter usually works with about 1/3 microsecond. */ + LARGE_INTEGER t_cnt; + + QueryPerformanceCounter(&t_cnt); + return (ulonglong) t_cnt.QuadPart; + } +#else + return 0; +#endif +} + +/* + For milliseconds, gettimeofday() is available on + almost all platforms. On Windows we use + GetSystemTimeAsFileTime. +*/ + +ulonglong my_timer_milliseconds(void) +{ +#if defined(HAVE_GETTIMEOFDAY) + { + static ulonglong last_ms_value= 0; + struct timeval tv; + if (gettimeofday(&tv, NULL) == 0) + last_ms_value= (ulonglong) tv.tv_sec * 1000 + + (ulonglong) tv.tv_usec / 1000; + else + { + /* + There are reports that gettimeofday(2) can have intermittent failures + on some platform, see for example Bug#36819. + We are not trying again or looping, just returning the best value possible + under the circumstances ... + */ + last_ms_value++; + } + return last_ms_value; + } +#elif defined(_WIN32) + FILETIME ft; + GetSystemTimeAsFileTime( &ft ); + return ((ulonglong)ft.dwLowDateTime + + (((ulonglong)ft.dwHighDateTime) << 32))/10000; +#else + return 0; +#endif +} + +/* + For ticks, which we handle with times(), the frequency + is usually 100/second and the overhead is surprisingly + bad, sometimes even worse than gettimeofday's overhead. +*/ + +ulonglong my_timer_ticks(void) +{ +#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_TIMES) + { + struct tms times_buf; + return (ulonglong) times(×_buf); + } +#elif defined(_WIN32) + return (ulonglong) GetTickCount(); +#else + return 0; +#endif +} + +/* + The my_timer_init() function and its sub-functions + have several loops which call timers. If there's + something wrong with a timer -- which has never + happened in tests -- we want the loop to end after + an arbitrary number of iterations, and my_timer_info + will show a discouraging result. The arbitrary + number is 1,000,000. +*/ +#define MY_TIMER_ITERATIONS 1000000 + +/* + Calculate overhead. Called from my_timer_init(). + Usually best_timer_overhead = cycles.overhead or + nanoseconds.overhead, so returned amount is in + cycles or nanoseconds. We repeat the calculation + ten times, so that we can disregard effects of + caching or interrupts. Result is quite consistent + for cycles, at least. But remember it's a minimum. +*/ + +static void my_timer_init_overhead(ulonglong *overhead, + ulonglong (*cycle_timer)(void), + ulonglong (*this_timer)(void), + ulonglong best_timer_overhead) +{ + ulonglong time1, time2; + int i; + + /* *overhead, least of 20 calculations - cycles.overhead */ + for (i= 0, *overhead= 1000000000; i < 20; ++i) + { + time1= cycle_timer(); + this_timer(); /* rather than 'time_tmp= timer();' */ + time2= cycle_timer() - time1; + if (*overhead > time2) + *overhead= time2; + } + *overhead-= best_timer_overhead; +} + +/* + Calculate Resolution. Called from my_timer_init(). + If a timer goes up by jumps, e.g. 1050, 1075, 1100, ... + then the best resolution is the minimum jump, e.g. 25. + If it's always divisible by 1000 then it's just a + result of multiplication of a lower-precision timer + result, e.g. nanoseconds are often microseconds * 1000. + If the minimum jump is less than an arbitrary passed + figure (a guess based on maximum overhead * 2), ignore. + Usually we end up with nanoseconds = 1 because it's too + hard to detect anything <= 100 nanoseconds. + Often GetTickCount() has resolution = 15. + We don't check with ticks because they take too long. +*/ +static ulonglong my_timer_init_resolution(ulonglong (*this_timer)(void), + ulonglong overhead_times_2) +{ + ulonglong time1, time2; + ulonglong best_jump; + int i, jumps, divisible_by_1000, divisible_by_1000000; + + divisible_by_1000= divisible_by_1000000= 0; + best_jump= 1000000; + for (i= jumps= 0; jumps < 3 && i < MY_TIMER_ITERATIONS * 10; ++i) + { + time1= this_timer(); + time2= this_timer(); + time2-= time1; + if (time2) + { + ++jumps; + if (!(time2 % 1000)) + { + ++divisible_by_1000; + if (!(time2 % 1000000)) + ++divisible_by_1000000; + } + if (best_jump > time2) + best_jump= time2; + /* For milliseconds, one jump is enough. */ + if (overhead_times_2 == 0) + break; + } + } + if (jumps == 3) + { + if (jumps == divisible_by_1000000) + return 1000000; + if (jumps == divisible_by_1000) + return 1000; + } + if (best_jump > overhead_times_2) + return best_jump; + return 1; +} + +/* + Calculate cycle frequency by seeing how many cycles pass + in a 200-microsecond period. I tried with 10-microsecond + periods originally, and the result was often very wrong. +*/ + +static ulonglong my_timer_init_frequency(MY_TIMER_INFO *mti) +{ + int i; + ulonglong time1, time2, time3, time4; + time1= my_timer_cycles(); + time2= my_timer_microseconds(); + time3= time2; /* Avoids a Microsoft/IBM compiler warning */ + for (i= 0; i < MY_TIMER_ITERATIONS; ++i) + { + time3= my_timer_microseconds(); + if (time3 - time2 > 200) break; + } + time4= my_timer_cycles() - mti->cycles.overhead; + time4-= mti->microseconds.overhead; + return (mti->microseconds.frequency * (time4 - time1)) / (time3 - time2); +} + +/* + Call my_timer_init before the first call to my_timer_xxx(). + If something must be initialized, it happens here. + Set: what routine is being used e.g. "asm_x86" + Set: function, overhead, actual frequency, resolution. +*/ + +void my_timer_init(MY_TIMER_INFO *mti) +{ + ulonglong (*best_timer)(void); + ulonglong best_timer_overhead; + ulonglong time1, time2; + int i; + + /* cycles */ + mti->cycles.frequency= 1000000000; +#if defined(__GNUC__) && defined(__i386__) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86; +#elif defined(__SUNPRO_C) && defined(__i386) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86; +#elif defined(__GNUC__) && defined(__x86_64__) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86_64; +#elif defined(_WIN32) && defined(_M_IX86) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86_WIN; +#elif defined(_WIN64) && defined(_M_X64) + mti->cycles.routine= MY_TIMER_ROUTINE_RDTSC; +#elif defined(__GNUC__) && defined(__ia64__) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_IA64; +#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__)) && (defined(__64BIT__) || defined(_ARCH_PPC64)) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_PPC64; +#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__)) && (!defined(__64BIT__) && !defined(_ARCH_PPC64)) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_PPC; +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64; +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(_ILP32) && !defined(__SunOS_5_7) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32; +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__i386) && defined(_ILP32) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_I386; +#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__x86_64) && defined(_LP64) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64; +#elif defined(__GNUC__) && defined(__sparcv9) && defined(_LP64) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC64; +#elif defined(__GNUC__) && defined(__sparc__) && !defined(_LP64) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC32; +#elif defined(__GNUC__) && defined(__aarch64__) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_AARCH64; +#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) + mti->cycles.routine= MY_TIMER_ROUTINE_GETHRTIME; +#else + mti->cycles.routine= 0; +#endif + + if (!mti->cycles.routine || !my_timer_cycles()) + { + mti->cycles.routine= 0; + mti->cycles.resolution= 0; + mti->cycles.frequency= 0; + mti->cycles.overhead= 0; + } + + /* nanoseconds */ + mti->nanoseconds.frequency= 1000000000; /* initial assumption */ +#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) + mti->nanoseconds.routine= MY_TIMER_ROUTINE_GETHRTIME; +#elif defined(HAVE_CLOCK_GETTIME) + mti->nanoseconds.routine= MY_TIMER_ROUTINE_CLOCK_GETTIME; +#elif defined(__APPLE__) && defined(__MACH__) + mti->nanoseconds.routine= MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME; +#else + mti->nanoseconds.routine= 0; +#endif + if (!mti->nanoseconds.routine || !my_timer_nanoseconds()) + { + mti->nanoseconds.routine= 0; + mti->nanoseconds.resolution= 0; + mti->nanoseconds.frequency= 0; + mti->nanoseconds.overhead= 0; + } + + /* microseconds */ + mti->microseconds.frequency= 1000000; /* initial assumption */ +#if defined(HAVE_GETTIMEOFDAY) + mti->microseconds.routine= MY_TIMER_ROUTINE_GETTIMEOFDAY; +#elif defined(_WIN32) + { + LARGE_INTEGER li; + /* Windows: typical frequency = 3579545, actually 1/3 microsecond. */ + if (!QueryPerformanceFrequency(&li)) + mti->microseconds.routine= 0; + else + { + mti->microseconds.frequency= li.QuadPart; + mti->microseconds.routine= MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER; + } + } +#else + mti->microseconds.routine= 0; +#endif + if (!mti->microseconds.routine || !my_timer_microseconds()) + { + mti->microseconds.routine= 0; + mti->microseconds.resolution= 0; + mti->microseconds.frequency= 0; + mti->microseconds.overhead= 0; + } + + /* milliseconds */ + mti->milliseconds.frequency= 1000; /* initial assumption */ +#if defined(HAVE_GETTIMEOFDAY) + mti->milliseconds.routine= MY_TIMER_ROUTINE_GETTIMEOFDAY; +#elif defined(_WIN32) + mti->milliseconds.routine= MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME; +#else + mti->milliseconds.routine= 0; +#endif + if (!mti->milliseconds.routine || !my_timer_milliseconds()) + { + mti->milliseconds.routine= 0; + mti->milliseconds.resolution= 0; + mti->milliseconds.frequency= 0; + mti->milliseconds.overhead= 0; + } + + /* ticks */ + mti->ticks.frequency= 100; /* permanent assumption */ +#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_TIMES) + mti->ticks.routine= MY_TIMER_ROUTINE_TIMES; +#elif defined(_WIN32) + mti->ticks.routine= MY_TIMER_ROUTINE_GETTICKCOUNT; +#else + mti->ticks.routine= 0; +#endif + if (!mti->ticks.routine || !my_timer_ticks()) + { + mti->ticks.routine= 0; + mti->ticks.resolution= 0; + mti->ticks.frequency= 0; + mti->ticks.overhead= 0; + } + + /* + Calculate overhead in terms of the timer that + gives the best resolution: cycles or nanoseconds. + I doubt it ever will be as bad as microseconds. + */ + if (mti->cycles.routine) + best_timer= &my_timer_cycles; + else + { + if (mti->nanoseconds.routine) + { + best_timer= &my_timer_nanoseconds; + } + else + best_timer= &my_timer_microseconds; + } + + /* best_timer_overhead = least of 20 calculations */ + for (i= 0, best_timer_overhead= 1000000000; i < 20; ++i) + { + time1= best_timer(); + time2= best_timer() - time1; + if (best_timer_overhead > time2) + best_timer_overhead= time2; + } + if (mti->cycles.routine) + my_timer_init_overhead(&mti->cycles.overhead, + best_timer, + &my_timer_cycles, + best_timer_overhead); + if (mti->nanoseconds.routine) + my_timer_init_overhead(&mti->nanoseconds.overhead, + best_timer, + &my_timer_nanoseconds, + best_timer_overhead); + if (mti->microseconds.routine) + my_timer_init_overhead(&mti->microseconds.overhead, + best_timer, + &my_timer_microseconds, + best_timer_overhead); + if (mti->milliseconds.routine) + my_timer_init_overhead(&mti->milliseconds.overhead, + best_timer, + &my_timer_milliseconds, + best_timer_overhead); + if (mti->ticks.routine) + my_timer_init_overhead(&mti->ticks.overhead, + best_timer, + &my_timer_ticks, + best_timer_overhead); + +/* + Calculate resolution for nanoseconds or microseconds + or milliseconds, by seeing if it's always divisible + by 1000, and by noticing how much jumping occurs. + For ticks, just assume the resolution is 1. +*/ + if (mti->cycles.routine) + mti->cycles.resolution= 1; + if (mti->nanoseconds.routine) + mti->nanoseconds.resolution= + my_timer_init_resolution(&my_timer_nanoseconds, 20000); + if (mti->microseconds.routine) + mti->microseconds.resolution= + my_timer_init_resolution(&my_timer_microseconds, 20); + if (mti->milliseconds.routine) + mti->milliseconds.resolution= + my_timer_init_resolution(&my_timer_milliseconds, 0); + if (mti->ticks.routine) + mti->ticks.resolution= 1; + +/* + Calculate cycles frequency, + if we have both a cycles routine and a microseconds routine. + In tests, this usually results in a figure within 2% of + what "cat /proc/cpuinfo" says. + If the microseconds routine is QueryPerformanceCounter + (i.e. it's Windows), and the microseconds frequency is > + 500,000,000 (i.e. it's Windows Server so it uses RDTSC) + and the microseconds resolution is > 100 (i.e. dreadful), + then calculate cycles frequency = microseconds frequency. +*/ + if (mti->cycles.routine + && mti->microseconds.routine) + { + if (mti->microseconds.routine == + MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER + && mti->microseconds.frequency > 500000000 + && mti->microseconds.resolution > 100) + mti->cycles.frequency= mti->microseconds.frequency; + else + { + ulonglong time1, time2; + time1= my_timer_init_frequency(mti); + /* Repeat once in case there was an interruption. */ + time2= my_timer_init_frequency(mti); + if (time1 < time2) mti->cycles.frequency= time1; + else mti->cycles.frequency= time2; + } + } + +/* + Calculate milliseconds frequency = + (cycles-frequency/#-of-cycles) * #-of-milliseconds, + if we have both a milliseconds routine and a cycles + routine. + This will be inaccurate if milliseconds resolution > 1. + This is probably only useful when testing new platforms. +*/ + if (mti->milliseconds.routine + && mti->milliseconds.resolution < 1000 + && mti->microseconds.routine + && mti->cycles.routine) + { + int i; + ulonglong time1, time2, time3, time4; + time1= my_timer_cycles(); + time2= my_timer_milliseconds(); + time3= time2; /* Avoids a Microsoft/IBM compiler warning */ + for (i= 0; i < MY_TIMER_ITERATIONS * 1000; ++i) + { + time3= my_timer_milliseconds(); + if (time3 - time2 > 10) break; + } + time4= my_timer_cycles(); + mti->milliseconds.frequency= + (mti->cycles.frequency * (time3 - time2)) / (time4 - time1); + } + +/* + Calculate ticks.frequency = + (cycles-frequency/#-of-cycles * #-of-ticks, + if we have both a ticks routine and a cycles + routine, + This is probably only useful when testing new platforms. +*/ + if (mti->ticks.routine + && mti->microseconds.routine + && mti->cycles.routine) + { + int i; + ulonglong time1, time2, time3, time4; + time1= my_timer_cycles(); + time2= my_timer_ticks(); + time3= time2; /* Avoids a Microsoft/IBM compiler warning */ + for (i= 0; i < MY_TIMER_ITERATIONS * 1000; ++i) + { + time3= my_timer_ticks(); + if (time3 - time2 > 10) break; + } + time4= my_timer_cycles(); + mti->ticks.frequency= + (mti->cycles.frequency * (time3 - time2)) / (time4 - time1); + } +} + +/* + Additional Comments + ------------------- + + This is for timing, i.e. finding out how long a piece of code + takes. If you want time of day matching a wall clock, the + my_timer_xxx functions won't help you. + + The best timer is the one with highest frequency, lowest + overhead, and resolution=1. The my_timer_info() routine will tell + you at runtime which timer that is. Usually it will be + my_timer_cycles() but be aware that, although it's best, + it has possible flaws and dangers. Depending on platform: + - The frequency might change. We don't test for this. It + happens on laptops for power saving, and on blade servers + for avoiding overheating. + - The overhead that my_timer_init() returns is the minimum. + In fact it could be slightly greater because of caching or + because you call the routine by address, as recommended. + It could be hugely greater if there's an interrupt. + - The x86 cycle counter, RDTSC doesn't "serialize". That is, + if there is out-of-order execution, rdtsc might be processed + after an instruction that logically follows it. + (We could force serialization, but that would be slower.) + - It is possible to set a flag which renders RDTSC + inoperative. Somebody responsible for the kernel + of the operating system would have to make this + decision. For the platforms we've tested with, there's + no such problem. + - With a multi-processor arrangement, it's possible + to get the cycle count from one processor in + thread X, and the cycle count from another processor + in thread Y. They may not always be in synch. + - You can't depend on a cycle counter being available for + all platforms. On Alphas, the + cycle counter is only 32-bit, so it would overflow quickly, + so we don't bother with it. On platforms that we haven't + tested, there might be some if/endif combination that we + didn't expect, or some assembler routine that we didn't + supply. + + The recommended way to use the timer routines is: + 1. Somewhere near the beginning of the program, call + my_timer_init(). This should only be necessary once, + although you can call it again if you think that the + frequency has changed. + 2. Determine the best timer based on frequency, resolution, + overhead -- all things that my_timer_init() returns. + Preserve the address of the timer and the my_timer_into + results in an easily-accessible place. + 3. Instrument the code section that you're monitoring, thus: + time1= my_timer_xxx(); + Instrumented code; + time2= my_timer_xxx(); + elapsed_time= (time2 - time1) - overhead; + If the timer is always on, then overhead is always there, + so don't subtract it. + 4. Save the elapsed time, or add it to a totaller. + 5. When all timing processes are complete, transfer the + saved / totalled elapsed time to permanent storage. + Optionally you can convert cycles to microseconds at + this point. (Don't do so every time you calculate + elapsed_time! That would waste time and lose precision!) + For converting cycles to microseconds, use the frequency + that my_timer_init() returns. You'll also need to convert + if the my_timer_microseconds() function is the Windows + function QueryPerformanceCounter(), since that's sometimes + a counter with precision slightly better than microseconds. + + Since we recommend calls by function pointer, we supply + no inline functions. + + Some comments on the many candidate routines for timing ... + + clock() -- We don't use because it would overflow frequently. + + clock_gettime() -- In tests, clock_gettime often had + resolution = 1000. + + gettimeofday() -- available on most platforms, though not + on Windows. There is a hardware timer (sometimes a Programmable + Interrupt Timer or "PIT") (sometimes a "HPET") used for + interrupt generation. When it interrupts (a "tick" or "jiffy", + typically 1 centisecond) it sets xtime. For gettimeofday, a + Linux kernel routine usually gets xtime and then gets rdtsc + to get elapsed nanoseconds since the last tick. On Red Hat + Enterprise Linux 3, there was once a bug which caused the + resolution to be 1000, i.e. one centisecond. We never check + for time-zone change. + + getnstimeofday() -- something to watch for in future Linux + + do_gettimeofday() -- exists on Linux but not for "userland" + + get_cycles() -- a multi-platform function, worth watching + in future Linux versions. But we found platform-specific + functions which were better documented in operating-system + manuals. And get_cycles() can fail or return a useless + 32-bit number. It might be available on some platforms, + such as arm, which we didn't test. Using + "include " or "include " + can lead to autoconf or compile errors, depending on system. + + rdtsc, __rdtsc, rdtscll: available for x86 with Linux BSD, + Solaris, Windows. See "possible flaws and dangers" comments. + + times(): what we use for ticks. Should just read the last + (xtime) tick count, therefore should be fast, but usually + isn't. + + GetTickCount(): we use this for my_timer_ticks() on + Windows. Actually it really is a tick counter, so resolution + >= 10 milliseconds unless you have a very old Windows version. + With Windows 95 or 98 or ME, timeGetTime() has better resolution than + GetTickCount (1ms rather than 55ms). But with Windows NT or XP or 2000, + they're both getting from a variable in the Process Environment Block + (PEB), and the variable is set by the programmable interrupt timer, so + the resolution is the same (usually 10-15 milliseconds). Also timeGetTime + is slower on old machines: + http://www.doumo.jp/aon-java/jsp/postgretips/tips.jsp?tips=74. + Also timeGetTime requires linking winmm.lib, + Therefore we use GetTickCount. + It will overflow every 49 days because the return is 32-bit. + There is also a GetTickCount64 but it requires Vista or Windows Server 2008. + (As for GetSystemTimeAsFileTime, its precision is spurious, it + just reads the tick variable like the other functions do. + However, we don't expect it to overflow every 49 days, so we + will prefer it for my_timer_milliseconds().) + + QueryPerformanceCounter() we use this for my_timer_microseconds() + on Windows. 1-PIT-tick (often 1/3-microsecond). Usually reads + the PIT so it's slow. On some Windows variants, uses RDTSC. + + GetLocalTime() this is available on Windows but we don't use it. + + getclock(): documented for Alpha, but not found during tests. + + mach_absolute_time() and UpTime() are recommended for Apple. + Inititally they weren't tried, because asm_ppc seems to do the job. + But now we use mach_absolute_time for nanoseconds. + + Any clock-based timer can be affected by NPT (ntpd program), + which means: + - full-second correction can occur for leap second + - tiny corrections can occcur approimately every 11 minutes + (but I think they only affect the RTC which isn't the PIT). + + We define "precision" as "frequency" and "high precision" is + "frequency better than 1 microsecond". We define "resolution" + as a synonym for "granularity". We define "accuracy" as + "closeness to the truth" as established by some authoritative + clock, but we can't measure accuracy. + + Do not expect any of our timers to be monotonic; we + won't guarantee that they return constantly-increasing + unique numbers. + + We tested with AIX, Solaris (x86 + Sparc), Linux (x86 + + Itanium), Windows, 64-bit Windows, QNX, FreeBSD, HPUX, + Irix, Mac. We didn't test with SCO. + +*/ + diff --git a/mysql/mysys/my_read.c b/mysql/mysys/my_read.c new file mode 100644 index 0000000..c80ad1c --- /dev/null +++ b/mysql/mysys/my_read.c @@ -0,0 +1,107 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include +#include "my_thread_local.h" + +/* + Read a chunk of bytes from a file with retry's if needed + + The parameters are: + File descriptor + Buffer to hold at least Count bytes + Bytes to read + Flags on what to do on error + + Return: + -1 on error + 0 if flag has bits MY_NABP or MY_FNABP set + N number of bytes read. +*/ + +size_t my_read(File Filedes, uchar *Buffer, size_t Count, myf MyFlags) +{ + size_t readbytes, save_count; + DBUG_ENTER("my_read"); + DBUG_PRINT("my",("fd: %d Buffer: %p Count: %lu MyFlags: %d", + Filedes, Buffer, (ulong) Count, MyFlags)); + save_count= Count; + + for (;;) + { + errno= 0; /* Linux, Windows don't reset this on EOF/success */ +#ifdef _WIN32 + readbytes= my_win_read(Filedes, Buffer, Count); +#else + readbytes= read(Filedes, Buffer, Count); +#endif + DBUG_EXECUTE_IF ("simulate_file_read_error", + { + errno= ENOSPC; + readbytes= (size_t) -1; + DBUG_SET("-d,simulate_file_read_error"); + DBUG_SET("-d,simulate_my_b_fill_error"); + }); + + if (readbytes != Count) + { + set_my_errno(errno); + if (errno == 0 || (readbytes != (size_t) -1 && + (MyFlags & (MY_NABP | MY_FNABP)))) + set_my_errno(HA_ERR_FILE_TOO_SHORT); + DBUG_PRINT("warning",("Read only %d bytes off %lu from %d, errno: %d", + (int) readbytes, (ulong) Count, Filedes, + my_errno())); + + if ((readbytes == 0 || (int) readbytes == -1) && errno == EINTR) + { + DBUG_PRINT("debug", ("my_read() was interrupted and returned %ld", + (long) readbytes)); + continue; /* Interrupted */ + } + + if (MyFlags & (MY_WME | MY_FAE | MY_FNABP)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + if (readbytes == (size_t) -1) + my_error(EE_READ, MYF(0), my_filename(Filedes), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + else if (MyFlags & (MY_NABP | MY_FNABP)) + my_error(EE_EOFERR, MYF(0), my_filename(Filedes), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + if (readbytes == (size_t) -1 || + ((MyFlags & (MY_FNABP | MY_NABP)) && !(MyFlags & MY_FULL_IO))) + DBUG_RETURN(MY_FILE_ERROR); /* Return with error */ + if (readbytes != (size_t) -1 && (MyFlags & MY_FULL_IO)) + { + Buffer+= readbytes; + Count-= readbytes; + continue; + } + } + + if (MyFlags & (MY_NABP | MY_FNABP)) + readbytes= 0; /* Ok on read */ + else if (MyFlags & MY_FULL_IO) + readbytes= save_count; + break; + } + DBUG_RETURN(readbytes); +} /* my_read */ diff --git a/mysql/mysys/my_redel.c b/mysql/mysys/my_redel.c new file mode 100644 index 0000000..43e7e73 --- /dev/null +++ b/mysql/mysys/my_redel.c @@ -0,0 +1,132 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include +#include "mysys_err.h" +#include "my_thread_local.h" + +#ifndef _WIN32 +#include +#else +#include +#endif + + /* + Rename with copy stat form old file + Copy stats from old file to new file, deletes orginal and + changes new file name to old file name + + if MY_REDEL_MAKE_COPY is given, then the orginal file + is renamed to org_name-'current_time'.BAK + + if MY_REDEL_NO_COPY_STAT is given, stats are not copied + from org_name to tmp_name. + */ + +#define REDEL_EXT ".BAK" + +int my_redel(const char *org_name, const char *tmp_name, myf MyFlags) +{ + int error=1; + DBUG_ENTER("my_redel"); + DBUG_PRINT("my",("org_name: '%s' tmp_name: '%s' MyFlags: %d", + org_name,tmp_name,MyFlags)); + + if (!(MyFlags & MY_REDEL_NO_COPY_STAT)) + { + if (my_copystat(org_name,tmp_name,MyFlags) < 0) + goto end; + } + if (MyFlags & MY_REDEL_MAKE_BACKUP) + { + char name_buff[FN_REFLEN+20]; + char ext[20]; + ext[0]='-'; + get_date(ext+1,2+4,(time_t) 0); + my_stpcpy(strend(ext),REDEL_EXT); + if (my_rename(org_name, fn_format(name_buff, org_name, "", ext, 2), + MyFlags)) + goto end; + } + else if (my_delete_allow_opened(org_name, MyFlags)) + goto end; + if (my_rename(tmp_name,org_name,MyFlags)) + goto end; + + error=0; +end: + DBUG_RETURN(error); +} /* my_redel */ + + + /* Copy stat from one file to another */ + /* Return -1 if can't get stat, 1 if wrong type of file */ + +int my_copystat(const char *from, const char *to, int MyFlags) +{ + MY_STAT statbuf; + + if (my_stat(from, &statbuf, MyFlags) == NULL) + return -1; /* Can't get stat on input file */ + + if ((statbuf.st_mode & S_IFMT) != S_IFREG) + return 1; + + /* Copy modes */ + if (chmod(to, statbuf.st_mode & 07777)) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CHANGE_PERMISSIONS, MYF(0), from, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + return -1; + } + +#if !defined(_WIN32) + if (statbuf.st_nlink > 1 && MyFlags & MY_LINK_WARNING) + { + if (MyFlags & MY_LINK_WARNING) + my_error(EE_LINK_WARNING,MYF(0),from,statbuf.st_nlink); + } + /* Copy ownership */ + if (chown(to, statbuf.st_uid, statbuf.st_gid)) + { + set_my_errno(errno); + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CHANGE_OWNERSHIP, MYF(0), from, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + return -1; + } +#endif /* !_WIN32 */ + + if (MyFlags & MY_COPYTIME) + { + struct utimbuf timep; + timep.actime = statbuf.st_atime; + timep.modtime = statbuf.st_mtime; + (void) utime((char*) to, &timep);/* Update last accessed and modified times */ + } + + return 0; +} /* my_copystat */ diff --git a/mysql/mysys/my_rename.c b/mysql/mysys/my_rename.c new file mode 100644 index 0000000..c8ad130 --- /dev/null +++ b/mysql/mysys/my_rename.c @@ -0,0 +1,59 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include "mysys_err.h" +#include "m_string.h" +#include "my_thread_local.h" +#undef my_rename + + /* On unix rename deletes to file if it exists */ + +int my_rename(const char *from, const char *to, myf MyFlags) +{ + int error = 0; + DBUG_ENTER("my_rename"); + DBUG_PRINT("my",("from %s to %s MyFlags %d", from, to, MyFlags)); + +#if defined(_WIN32) + if(!MoveFileEx(from, to, MOVEFILE_COPY_ALLOWED| + MOVEFILE_REPLACE_EXISTING)) + { + my_osmaperr(GetLastError()); +#else + if (rename(from,to)) + { +#endif + set_my_errno(errno); + error = -1; + if (MyFlags & (MY_FAE+MY_WME)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_LINK, MYF(0), from, to, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + } + else if (MyFlags & MY_SYNC_DIR) + { + /* do only the needed amount of syncs: */ + if (my_sync_dir_by_file(from, MyFlags) || + (strcmp(from, to) && + my_sync_dir_by_file(to, MyFlags))) + error= -1; + } + DBUG_RETURN(error); +} /* my_rename */ diff --git a/mysql/mysys/my_seek.c b/mysql/mysys/my_seek.c new file mode 100644 index 0000000..3a73e06 --- /dev/null +++ b/mysql/mysys/my_seek.c @@ -0,0 +1,111 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include "my_thread_local.h" + +/* + Seek to a position in a file. + + ARGUMENTS + File fd The file descriptor + my_off_t pos The expected position (absolute or relative) + int whence A direction parameter and one of + {SEEK_SET, SEEK_CUR, SEEK_END} + myf MyFlags MY_THREADSAFE must be set in case my_seek may be mixed + with my_pread/my_pwrite calls and fd is shared among + threads. + + DESCRIPTION + The my_seek function is a wrapper around the system call lseek and + repositions the offset of the file descriptor fd to the argument + offset according to the directive whence as follows: + SEEK_SET The offset is set to offset bytes. + SEEK_CUR The offset is set to its current location plus offset bytes + SEEK_END The offset is set to the size of the file plus offset bytes + + RETURN VALUE + my_off_t newpos The new position in the file. + MY_FILEPOS_ERROR An error was encountered while performing + the seek. my_errno is set to indicate the + actual error. +*/ + +my_off_t my_seek(File fd, my_off_t pos, int whence, myf MyFlags) +{ + os_off_t newpos= -1; + DBUG_ENTER("my_seek"); + DBUG_PRINT("my",("fd: %d Pos: %llu Whence: %d MyFlags: %d", + fd, (ulonglong) pos, whence, MyFlags)); + + /* + Make sure we are using a valid file descriptor! + */ + DBUG_ASSERT(fd != -1); +#if defined (_WIN32) + newpos= my_win_lseek(fd, pos, whence); +#else + newpos= lseek(fd, pos, whence); +#endif + if (newpos == (os_off_t) -1) + { + set_my_errno(errno); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_SEEK, MYF(0), my_filename(fd), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_PRINT("error", ("lseek: %llu errno: %d", (ulonglong) newpos, errno)); + DBUG_RETURN(MY_FILEPOS_ERROR); + } + if ((my_off_t) newpos != pos) + { + DBUG_PRINT("exit",("pos: %llu", (ulonglong) newpos)); + } + DBUG_RETURN((my_off_t) newpos); +} /* my_seek */ + + + /* Tell current position of file */ + /* ARGSUSED */ + +my_off_t my_tell(File fd, myf MyFlags) +{ + os_off_t pos; + DBUG_ENTER("my_tell"); + DBUG_PRINT("my",("fd: %d MyFlags: %d",fd, MyFlags)); + DBUG_ASSERT(fd >= 0); +#if defined (HAVE_TELL) && !defined (_WIN32) + pos= tell(fd); +#else + pos= my_seek(fd, 0L, MY_SEEK_CUR,0); +#endif + if (pos == (os_off_t) -1) + { + set_my_errno(errno); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_SEEK, MYF(0), my_filename(fd), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_PRINT("error", ("tell: %llu errno: %d", (ulonglong) pos, my_errno())); + } + DBUG_PRINT("exit",("pos: %llu", (ulonglong) pos)); + DBUG_RETURN((my_off_t) pos); +} /* my_tell */ diff --git a/mysql/mysys/my_static.c b/mysql/mysys/my_static.c new file mode 100644 index 0000000..60db888 --- /dev/null +++ b/mysql/mysys/my_static.c @@ -0,0 +1,143 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Static variables for mysys library. All definied here for easy making of + a shared library +*/ + +#include "mysys_priv.h" +#include "my_static.h" + +PSI_memory_key key_memory_charset_file; +PSI_memory_key key_memory_charset_loader; +PSI_memory_key key_memory_lf_node; +PSI_memory_key key_memory_lf_dynarray; +PSI_memory_key key_memory_lf_slist; +PSI_memory_key key_memory_LIST; +PSI_memory_key key_memory_IO_CACHE; +PSI_memory_key key_memory_KEY_CACHE; +PSI_memory_key key_memory_SAFE_HASH_ENTRY; +PSI_memory_key key_memory_MY_BITMAP_bitmap; +PSI_memory_key key_memory_my_compress_alloc; +PSI_memory_key key_memory_pack_frm; +PSI_memory_key key_memory_my_err_head; +PSI_memory_key key_memory_my_file_info; +PSI_memory_key key_memory_max_alloca; +PSI_memory_key key_memory_MY_DIR; +PSI_memory_key key_memory_MY_STAT; +PSI_memory_key key_memory_MY_TMPDIR_full_list; +PSI_memory_key key_memory_QUEUE; +PSI_memory_key key_memory_DYNAMIC_STRING; +PSI_memory_key key_memory_TREE; + +#ifdef _WIN32 +PSI_memory_key key_memory_win_SECURITY_ATTRIBUTES; +PSI_memory_key key_memory_win_PACL; +PSI_memory_key key_memory_win_IP_ADAPTER_ADDRESSES; +#endif /* _WIN32 */ + + /* from my_init */ +char * home_dir=0; +const char *my_progname=0; +char curr_dir[FN_REFLEN]= {0}, + home_dir_buff[FN_REFLEN]= {0}; +ulong my_stream_opened=0,my_file_opened=0, my_tmp_file_created=0; +ulong my_file_total_opened= 0; +int my_umask=0664, my_umask_dir=0777; + +struct st_my_file_info my_file_info_default[MY_NFILE]; +uint my_file_limit= MY_NFILE; +struct st_my_file_info *my_file_info= my_file_info_default; + + /* from mf_reccache.c */ +ulong my_default_record_cache_size=RECORD_CACHE_SIZE; + + /* from soundex.c */ + /* ABCDEFGHIJKLMNOPQRSTUVWXYZ */ + /* :::::::::::::::::::::::::: */ +const char *soundex_map= "01230120022455012623010202"; + + /* from my_malloc */ +USED_MEM* my_once_root_block=0; /* pointer to first block */ +uint my_once_extra=ONCE_ALLOC_INIT; /* Memory to alloc / block */ + + /* from my_largepage.c */ +#ifdef HAVE_LINUX_LARGE_PAGES +my_bool my_use_large_pages= 0; +uint my_large_page_size= 0; +#endif + + /* from errors.c */ +void (*error_handler_hook)(uint error, const char *str, myf MyFlags)= + my_message_stderr; +void (*fatal_error_handler_hook)(uint error, const char *str, myf MyFlags)= + my_message_stderr; +void (*local_message_hook)(enum loglevel ll, const char *format, va_list args)= + my_message_local_stderr; + +static void enter_cond_dummy(void *a MY_ATTRIBUTE((unused)), + mysql_cond_t *b MY_ATTRIBUTE((unused)), + mysql_mutex_t *c MY_ATTRIBUTE((unused)), + const PSI_stage_info *d MY_ATTRIBUTE((unused)), + PSI_stage_info *e MY_ATTRIBUTE((unused)), + const char *f MY_ATTRIBUTE((unused)), + const char *g MY_ATTRIBUTE((unused)), + int h MY_ATTRIBUTE((unused))) +{ }; + +static void exit_cond_dummy(void *a MY_ATTRIBUTE((unused)), + const PSI_stage_info *b MY_ATTRIBUTE((unused)), + const char *c MY_ATTRIBUTE((unused)), + const char *d MY_ATTRIBUTE((unused)), + int e MY_ATTRIBUTE((unused))) +{ }; + +static int is_killed_dummy(const void *a MY_ATTRIBUTE((unused))) +{ + return 0; +} + +/* + Initialize these hooks to dummy implementations. The real server + implementations will be set during server startup by + init_server_components(). +*/ +void (*enter_cond_hook)(void *, mysql_cond_t *, mysql_mutex_t *, + const PSI_stage_info *, PSI_stage_info *, + const char *, const char *, int)= enter_cond_dummy; + +void (*exit_cond_hook)(void *, const PSI_stage_info *, + const char *, const char *, int)= exit_cond_dummy; + +int (*is_killed_hook)(const void *)= is_killed_dummy; + +#if defined(ENABLED_DEBUG_SYNC) +/** + Global pointer to be set if callback function is defined + (e.g. in mysqld). See sql/debug_sync.cc. +*/ +void (*debug_sync_C_callback_ptr)(const char *, size_t); +#endif /* defined(ENABLED_DEBUG_SYNC) */ + +#ifdef _WIN32 +/* from my_getsystime.c */ +ulonglong query_performance_frequency, query_performance_offset; +#endif + + /* How to disable options */ +my_bool my_disable_locking=0; +my_bool my_enable_symlinks= 1; + diff --git a/mysql/mysys/my_static.h b/mysql/mysys/my_static.h new file mode 100644 index 0000000..a036613 --- /dev/null +++ b/mysql/mysys/my_static.h @@ -0,0 +1,41 @@ +#ifndef MYSYS_MY_STATIC_INCLUDED +#define MYSYS_MY_STATIC_INCLUDED + +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Static variables for mysys library. All definied here for easy making of + a shared library +*/ + +#include "my_global.h" +#include "my_sys.h" + +C_MODE_START +extern char curr_dir[FN_REFLEN], home_dir_buff[FN_REFLEN]; + +extern const char *soundex_map; + +extern USED_MEM* my_once_root_block; +extern uint my_once_extra; + +extern struct st_my_file_info my_file_info_default[MY_NFILE]; + +extern ulonglong query_performance_frequency, query_performance_offset; + +C_MODE_END + +#endif /* MYSYS_MY_STATIC_INCLUDED */ diff --git a/mysql/mysys/my_symlink.c b/mysql/mysys/my_symlink.c new file mode 100644 index 0000000..4777928 --- /dev/null +++ b/mysql/mysys/my_symlink.c @@ -0,0 +1,208 @@ +/* Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include +#include "my_thread_local.h" +#include "my_dir.h" +#ifdef HAVE_REALPATH +#include +#include +#endif + +/* + Reads the content of a symbolic link + If the file is not a symbolic link, return the original file name in to. + + RETURN + 0 If filename was a symlink, (to will be set to value of symlink) + 1 If filename was a normal file (to will be set to filename) + -1 on error. +*/ + +int my_readlink(char *to, const char *filename, myf MyFlags) +{ +#ifndef HAVE_READLINK + my_stpcpy(to,filename); + return 1; +#else + int result=0; + int length; + DBUG_ENTER("my_readlink"); + + if ((length=readlink(filename, to, FN_REFLEN-1)) < 0) + { + /* Don't give an error if this wasn't a symlink */ + set_my_errno(errno); + if (my_errno() == EINVAL) + { + result= 1; + my_stpcpy(to,filename); + } + else + { + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_READLINK, MYF(0), filename, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + result= -1; + } + } + else + to[length]=0; + DBUG_PRINT("exit" ,("result: %d", result)); + DBUG_RETURN(result); +#endif /* HAVE_READLINK */ +} + + +/* Create a symbolic link */ + +int my_symlink(const char *content, const char *linkname, myf MyFlags) +{ +#ifndef HAVE_READLINK + return 0; +#else + int result; + DBUG_ENTER("my_symlink"); + DBUG_PRINT("enter",("content: %s linkname: %s", content, linkname)); + + result= 0; + if (symlink(content, linkname)) + { + result= -1; + set_my_errno(errno); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANT_SYMLINK, MYF(0), linkname, content, + errno, my_strerror(errbuf, sizeof(errbuf), errno)); + } + } + else if ((MyFlags & MY_SYNC_DIR) && my_sync_dir_by_file(linkname, MyFlags)) + result= -1; + DBUG_RETURN(result); +#endif /* HAVE_READLINK */ +} + +#if defined(MAXPATHLEN) +#define BUFF_LEN MAXPATHLEN +#else +#define BUFF_LEN FN_LEN +#endif + + +int my_is_symlink(const char *filename MY_ATTRIBUTE((unused)), + ST_FILE_ID *file_id) +{ +#if defined (HAVE_LSTAT) && defined (S_ISLNK) + struct stat stat_buff; + int result= !lstat(filename, &stat_buff) && S_ISLNK(stat_buff.st_mode); + if (file_id && !result) + { + file_id->st_dev= stat_buff.st_dev; + file_id->st_ino= stat_buff.st_ino; + } + return result; +#elif defined (_WIN32) + DWORD dwAttr = GetFileAttributes(filename); + return (dwAttr != INVALID_FILE_ATTRIBUTES) && + (dwAttr & FILE_ATTRIBUTE_REPARSE_POINT); +#else /* No symlinks */ + return 0; +#endif +} + +/* + Resolve all symbolic links in path + 'to' may be equal to 'filename' +*/ + +int my_realpath(char *to, const char *filename, myf MyFlags) +{ +#if defined(HAVE_REALPATH) + int result=0; + char buff[BUFF_LEN]; + char *ptr; + DBUG_ENTER("my_realpath"); + + DBUG_PRINT("info",("executing realpath")); + if ((ptr=realpath(filename,buff))) + strmake(to,ptr,FN_REFLEN-1); + else + { + /* + Realpath didn't work; Use my_load_path() which is a poor substitute + original name but will at least be able to resolve paths that starts + with '.'. + */ + DBUG_PRINT("error",("realpath failed with errno: %d", errno)); + set_my_errno(errno); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_REALPATH, MYF(0), filename, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + my_load_path(to, filename, NullS); + result= -1; + } + DBUG_RETURN(result); +#elif defined(_WIN32) + int ret= GetFullPathName(filename,FN_REFLEN, to, NULL); + if (ret == 0 || ret > FN_REFLEN) + { + set_my_errno((ret > FN_REFLEN) ? ENAMETOOLONG : GetLastError()); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_REALPATH, MYF(0), filename, + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + /* + GetFullPathName didn't work : use my_load_path() which is a poor + substitute original name but will at least be able to resolve + paths that starts with '.'. + */ + my_load_path(to, filename, NullS); + return -1; + } +#else + my_load_path(to, filename, NullS); +#endif + return 0; +} + + +/** + Return non-zero if the file descriptor and a previously lstat-ed file + identified by file_id point to the same file +*/ +int my_is_same_file(File file, const ST_FILE_ID *file_id) +{ + MY_STAT stat_buf; + if (my_fstat(file, &stat_buf, MYF(0)) == -1) + { + set_my_errno(errno); + return 0; + } + return (stat_buf.st_dev == file_id->st_dev) + && (stat_buf.st_ino == file_id->st_ino); +} diff --git a/mysql/mysys/my_symlink2.c b/mysql/mysys/my_symlink2.c new file mode 100644 index 0000000..0540b47 --- /dev/null +++ b/mysql/mysys/my_symlink2.c @@ -0,0 +1,195 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Advanced symlink handling. + This is used in MyISAM to let users symlinks tables to different disk. + The main idea with these functions is to automaticly create, delete and + rename files and symlinks like they would be one unit. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + +File my_create_with_symlink(const char *linkname, const char *filename, + int createflags, int access_flags, myf MyFlags) +{ + File file; + int tmp_errno; + /* Test if we should create a link */ + int create_link; + char abs_linkname[FN_REFLEN]; + DBUG_ENTER("my_create_with_symlink"); + DBUG_PRINT("enter", ("linkname: %s filename: %s", + linkname ? linkname : "(null)", + filename ? filename : "(null)")); + + if (!my_enable_symlinks) + { + DBUG_PRINT("info", ("Symlinks disabled")); + /* Create only the file, not the link and file */ + create_link= 0; + if (linkname) + filename= linkname; + } + else + { + if (linkname) + my_realpath(abs_linkname, linkname, MYF(0)); + create_link= (linkname && strcmp(abs_linkname,filename)); + } + + if (!(MyFlags & MY_DELETE_OLD)) + { + if (!access(filename,F_OK)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + errno= EEXIST; + set_my_errno(EEXIST); + my_error(EE_CANTCREATEFILE, MYF(0), filename, + EEXIST, my_strerror(errbuf, sizeof(errbuf), EEXIST)); + DBUG_RETURN(-1); + } + if (create_link && !access(linkname,F_OK)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + errno= EEXIST; + set_my_errno(EEXIST); + my_error(EE_CANTCREATEFILE, MYF(0), linkname, + EEXIST, my_strerror(errbuf, sizeof(errbuf), EEXIST)); + DBUG_RETURN(-1); + } + } + + if ((file=my_create(filename, createflags, access_flags, MyFlags)) >= 0) + { + if (create_link) + { + /* Delete old link/file */ + if (MyFlags & MY_DELETE_OLD) + my_delete(linkname, MYF(0)); + /* Create link */ + if (my_symlink(filename, linkname, MyFlags)) + { + /* Fail, remove everything we have done */ + tmp_errno=my_errno(); + my_close(file,MYF(0)); + my_delete(filename, MYF(0)); + file= -1; + set_my_errno(tmp_errno); + } + } + } + DBUG_RETURN(file); +} + +/* + If the file was a symlink, delete both symlink and the file which the + symlink pointed to. +*/ + +int my_delete_with_symlink(const char *name, myf MyFlags) +{ + char link_name[FN_REFLEN]; + int was_symlink= (my_enable_symlinks && + !my_readlink(link_name, name, MYF(0))); + int result; + DBUG_ENTER("my_delete_with_symlink"); + + if (!(result=my_delete(name, MyFlags))) + { + if (was_symlink) + result=my_delete(link_name, MyFlags); + } + DBUG_RETURN(result); +} + +/* + If the file is a normal file, just rename it. + If the file is a symlink: + - Create a new file with the name 'to' that points at + symlink_dir/basename(to) + - Rename the symlinked file to symlink_dir/basename(to) + - Delete 'from' + If something goes wrong, restore everything. +*/ + +int my_rename_with_symlink(const char *from, const char *to, myf MyFlags) +{ +#ifndef HAVE_READLINK + return my_rename(from, to, MyFlags); +#else + char link_name[FN_REFLEN], tmp_name[FN_REFLEN]; + int was_symlink= (my_enable_symlinks && + !my_readlink(link_name, from, MYF(0))); + int result=0; + int name_is_different; + DBUG_ENTER("my_rename_with_symlink"); + + if (!was_symlink) + DBUG_RETURN(my_rename(from, to, MyFlags)); + + /* Change filename that symlink pointed to */ + my_stpcpy(tmp_name, to); + fn_same(tmp_name,link_name,1); /* Copy dir */ + name_is_different= strcmp(link_name, tmp_name); + if (name_is_different && !access(tmp_name, F_OK)) + { + set_my_errno(EEXIST); + if (MyFlags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_CANTCREATEFILE, MYF(0), tmp_name, + EEXIST, my_strerror(errbuf, sizeof(errbuf), EEXIST)); + } + DBUG_RETURN(1); + } + + /* Create new symlink */ + if (my_symlink(tmp_name, to, MyFlags)) + DBUG_RETURN(1); + + /* + Rename symlinked file if the base name didn't change. + This can happen if you use this function where 'from' and 'to' has + the same basename and different directories. + */ + + if (name_is_different && my_rename(link_name, tmp_name, MyFlags)) + { + int save_errno=my_errno(); + my_delete(to, MyFlags); /* Remove created symlink */ + set_my_errno(save_errno); + DBUG_RETURN(1); + } + + /* Remove original symlink */ + if (my_delete(from, MyFlags)) + { + int save_errno=my_errno(); + /* Remove created link */ + my_delete(to, MyFlags); + /* Rename file back */ + if (strcmp(link_name, tmp_name)) + (void) my_rename(tmp_name, link_name, MyFlags); + set_my_errno(save_errno); + result= 1; + } + DBUG_RETURN(result); +#endif /* HAVE_READLINK */ +} diff --git a/mysql/mysys/my_sync.c b/mysql/mysys/my_sync.c new file mode 100644 index 0000000..2ddfc7d --- /dev/null +++ b/mysql/mysys/my_sync.c @@ -0,0 +1,195 @@ +/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + +static void (*before_sync_wait)(void)= 0; +static void (*after_sync_wait)(void)= 0; + +void thr_set_sync_wait_callback(void (*before_wait)(void), + void (*after_wait)(void)) +{ + before_sync_wait= before_wait; + after_sync_wait= after_wait; +} + +/* + Sync data in file to disk + + SYNOPSIS + my_sync() + fd File descritor to sync + my_flags Flags (now only MY_WME is supported) + + NOTE + If file system supports its, only file data is synced, not inode data. + + MY_IGNORE_BADFD is useful when fd is "volatile" - not protected by a + mutex. In this case by the time of fsync(), fd may be already closed by + another thread, or even reassigned to a different file. With this flag - + MY_IGNORE_BADFD - such a situation will not be considered an error. + (which is correct behaviour, if we know that the other thread synced the + file before closing) + + RETURN + 0 ok + -1 error +*/ + +int my_sync(File fd, myf my_flags) +{ + int res; + DBUG_ENTER("my_sync"); + DBUG_PRINT("my",("Fd: %d my_flags: %d", fd, my_flags)); + + if (before_sync_wait) + (*before_sync_wait)(); + do + { +#if defined(F_FULLFSYNC) + /* + In Mac OS X >= 10.3 this call is safer than fsync() (it forces the + disk's cache and guarantees ordered writes). + */ + if (!(res= fcntl(fd, F_FULLFSYNC, 0))) + break; /* ok */ + /* Some file systems don't support F_FULLFSYNC and fail above: */ + DBUG_PRINT("info",("fcntl(F_FULLFSYNC) failed, falling back")); +#endif +#if defined(HAVE_FDATASYNC) && HAVE_DECL_FDATASYNC + res= fdatasync(fd); +#elif defined(HAVE_FSYNC) + res= fsync(fd); +#elif defined(_WIN32) + res= my_win_fsync(fd); +#else +#error Cannot find a way to sync a file, durability in danger + res= 0; /* No sync (strange OS) */ +#endif + } while (res == -1 && errno == EINTR); + + if (res) + { + int er= errno; + set_my_errno(er); + if (!er) + set_my_errno(-1); /* Unknown error */ + if (after_sync_wait) + (*after_sync_wait)(); + if ((my_flags & MY_IGNORE_BADFD) && + (er == EBADF || er == EINVAL || er == EROFS +#ifdef __APPLE__ + || er == ENOTSUP +#endif + )) + { + DBUG_PRINT("info", ("ignoring errno %d", er)); + res= 0; + } + else if (my_flags & MY_WME) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_SYNC, MYF(0), my_filename(fd), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + } + else + { + if (after_sync_wait) + (*after_sync_wait)(); + } + DBUG_RETURN(res); +} /* my_sync */ + + +/* + Force directory information to disk. + + SYNOPSIS + my_sync_dir() + dir_name the name of the directory + my_flags flags (MY_WME etc) + + RETURN + 0 if ok, !=0 if error +*/ + +#ifdef __linux__ +static const char cur_dir_name[]= {FN_CURLIB, 0}; +#endif + +int my_sync_dir(const char *dir_name MY_ATTRIBUTE((unused)), + myf my_flags MY_ATTRIBUTE((unused))) +{ +/* + Only Linux is known to need an explicit sync of the directory to make sure a + file creation/deletion/renaming in(from,to) this directory durable. +*/ +#ifdef __linux__ + File dir_fd; + int res= 0; + const char *correct_dir_name; + DBUG_ENTER("my_sync_dir"); + DBUG_PRINT("my",("Dir: '%s' my_flags: %d", dir_name, my_flags)); + /* Sometimes the path does not contain an explicit directory */ + correct_dir_name= (dir_name[0] == 0) ? cur_dir_name : dir_name; + /* + Syncing a dir may give EINVAL on tmpfs on Linux, which is ok. + EIO on the other hand is very important. Hence MY_IGNORE_BADFD. + */ + if ((dir_fd= my_open(correct_dir_name, O_RDONLY, MYF(my_flags))) >= 0) + { + if (my_sync(dir_fd, MYF(my_flags | MY_IGNORE_BADFD))) + res= 2; + if (my_close(dir_fd, MYF(my_flags))) + res= 3; + } + else + res= 1; + DBUG_RETURN(res); +#else + return 0; +#endif +} + + +/* + Force directory information to disk. + + SYNOPSIS + my_sync_dir_by_file() + file_name the name of a file in the directory + my_flags flags (MY_WME etc) + + RETURN + 0 if ok, !=0 if error +*/ + +int my_sync_dir_by_file(const char *file_name MY_ATTRIBUTE((unused)), + myf my_flags MY_ATTRIBUTE((unused))) +{ +#ifdef __linux__ + char dir_name[FN_REFLEN]; + size_t dir_name_length; + dirname_part(dir_name, file_name, &dir_name_length); + return my_sync_dir(dir_name, my_flags); +#else + return 0; +#endif +} diff --git a/mysql/mysys/my_syslog.c b/mysql/mysys/my_syslog.c new file mode 100644 index 0000000..e45410b --- /dev/null +++ b/mysql/mysys/my_syslog.c @@ -0,0 +1,287 @@ +/* + Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include + +#ifndef _WIN32 +#include + +/* + Some C libraries offer a variant of this, but we roll our own so we + won't have to worry about portability. +*/ +SYSLOG_FACILITY syslog_facility[] = { + { LOG_DAEMON, "daemon" }, /* default for mysqld */ + { LOG_USER, "user" }, /* default for mysql command-line client */ + + { LOG_LOCAL0, "local0" }, { LOG_LOCAL1, "local1" }, { LOG_LOCAL2, "local2" }, + { LOG_LOCAL3, "local3" }, { LOG_LOCAL4, "local4" }, { LOG_LOCAL5, "local5" }, + { LOG_LOCAL6, "local6" }, { LOG_LOCAL7, "local7" }, + + /* "just in case" */ + { LOG_AUTH, "auth" }, { LOG_CRON, "cron" }, { LOG_KERN, "kern" }, + { LOG_LPR, "lpr" }, { LOG_MAIL, "mail" }, { LOG_NEWS, "news" }, + { LOG_SYSLOG, "syslog" }, { LOG_UUCP, "uucp" }, + +#if defined(LOG_FTP) + { LOG_FTP, "ftp" }, +#endif +#if defined(LOG_AUTHPRIV) + { LOG_AUTHPRIV, "authpriv" }, +#endif + + { -1, NULL }}; +#endif + + +#ifdef _WIN32 +#define MSG_DEFAULT 0xC0000064L +static HANDLE hEventLog= NULL; // global +#endif + +/** + Sends message to the system logger. On Windows, the specified message is + internally converted to UCS-2 encoding, while on other platforms, no + conversion takes place and the string is passed to the syslog API as it is. + + @param cs [in] Character set info of the message string + @param level [in] Log level + @param msg [in] Message to be logged + + @return + 0 Success + -1 Error +*/ +int my_syslog(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + enum loglevel level, + const char *msg) +{ + int _level; +#ifdef _WIN32 + wchar_t buff[MAX_SYSLOG_MESSAGE_SIZE]; + wchar_t *u16buf= NULL; + size_t nchars; + uint dummy_errors; + + DBUG_ENTER("my_syslog"); + + _level= (level == INFORMATION_LEVEL) ? EVENTLOG_INFORMATION_TYPE : + (level == WARNING_LEVEL) ? EVENTLOG_WARNING_TYPE : EVENTLOG_ERROR_TYPE; + + if (hEventLog) + { + nchars= my_convert((char *) buff, sizeof(buff) - sizeof(buff[0]), + &my_charset_utf16le_bin, msg, + MAX_SYSLOG_MESSAGE_SIZE, cs, &dummy_errors); + + // terminate it with NULL + buff[nchars / sizeof(wchar_t)]= L'\0'; + u16buf= buff; + + if (!ReportEventW(hEventLog, _level, 0, MSG_DEFAULT, NULL, 1, 0, + (LPCWSTR*) &u16buf, NULL)) + goto err; + } + + // Message successfully written to the event log. + DBUG_RETURN(0); + +err: + // map error appropriately + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); + +#else + DBUG_ENTER("my_syslog"); + + _level= (level == INFORMATION_LEVEL) ? LOG_INFO : + (level == WARNING_LEVEL) ? LOG_WARNING : LOG_ERR; + + syslog(_level, "%s", msg); + DBUG_RETURN(0); + +#endif /* _WIN32 */ +} + + +#ifdef _WIN32 + +/** + Create a key in the Windows registry. + We'll setup a "MySQL" key in the EventLog branch (RegCreateKey), + set our executable name (GetModuleFileName) as file-name + ("EventMessageFile"), then set the message types we expect to + be logging ("TypesSupported"). + If the key does not exist, sufficient privileges will be required + to create and configure it. If the key does exist, opening it + should be unprivileged; modifying will fail on insufficient + privileges, but that is non-fatal. + + @param key [in] Name of the event generator. + (Only last part of the key, e.g. "MySQL") + + @return + 0 Success + -1 Error +*/ + +const char registry_prefix[]= + "SYSTEM\\CurrentControlSet\\services\\eventlog\\Application\\"; + +static int windows_eventlog_create_registry_entry(const char *key) +{ + HKEY hRegKey= NULL; + DWORD dwError= 0; + TCHAR szPath[MAX_PATH]; + DWORD dwTypes; + + size_t l= sizeof(registry_prefix) + strlen(key) + 1; + char *buff; + + int ret= 0; + + DBUG_ENTER("my_syslog"); + + if ((buff= (char *) my_malloc(PSI_NOT_INSTRUMENTED, l, MYF(0))) == NULL) + DBUG_RETURN(-1); + + my_snprintf(buff, l, "%s%s", registry_prefix, key); + + // Opens the event source registry key; creates it first if required. + dwError= RegCreateKey(HKEY_LOCAL_MACHINE, buff, &hRegKey); + + my_free(buff); + + if (dwError != ERROR_SUCCESS) + { + if (dwError == ERROR_ACCESS_DENIED) + { + my_message_stderr(0, "Could not create or access the registry key needed for the MySQL application\n" + "to log to the Windows EventLog. Run the application with sufficient\n" + "privileges once to create the key, add the key manually, or turn off\n" + "logging for that application.", MYF(0)); + } + DBUG_RETURN(-1); + } + + /* Name of the PE module that contains the message resource */ + GetModuleFileName(NULL, szPath, MAX_PATH); + + /* Register EventMessageFile (DLL/exec containing event identifiers) */ + dwError = RegSetValueEx(hRegKey, "EventMessageFile", 0, REG_EXPAND_SZ, + (PBYTE) szPath, (DWORD) (strlen(szPath) + 1)); + if ((dwError != ERROR_SUCCESS) && (dwError != ERROR_ACCESS_DENIED)) + ret = -1; + + /* Register supported event types */ + dwTypes= (EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | + EVENTLOG_INFORMATION_TYPE); + dwError= RegSetValueEx(hRegKey, "TypesSupported", 0, REG_DWORD, + (LPBYTE) &dwTypes, sizeof dwTypes); + if ((dwError != ERROR_SUCCESS) && (dwError != ERROR_ACCESS_DENIED)) + ret= -1; + + RegCloseKey(hRegKey); + + DBUG_RETURN(ret); +} +#endif + + +/** + Opens/Registers a new handle for system logging. + Note: It's a thread-unsafe function. It should either + be invoked from the main thread or some extra thread + safety measures need to be taken. + + @param name [in] Name of the event source / syslog ident + + @return + 0 Success + -1 Error, log not opened + -2 Error, not updated, using previous values +*/ +int my_openlog(const char *name, int option, int facility) +{ +#ifndef _WIN32 + int opts= (option & MY_SYSLOG_PIDS) ? LOG_PID : 0; + + DBUG_ENTER("my_openlog"); + openlog(name, opts | LOG_NDELAY, facility); + +#else + + HANDLE hEL_new; + + DBUG_ENTER("my_openlog"); + + // OOM failsafe. Not needed for syslog. + if (name == NULL) + DBUG_RETURN(-1); + + if ((windows_eventlog_create_registry_entry(name) != 0) || + !(hEL_new= RegisterEventSource(NULL, name))) + { + // map error appropriately + my_osmaperr(GetLastError()); + DBUG_RETURN((hEventLog == NULL) ? -1 : -2); + } + else + { + if (hEventLog != NULL) + DeregisterEventSource(hEventLog); + hEventLog= hEL_new; + } +#endif + + DBUG_RETURN(0); +} + + +/** + Closes/de-registers the system logging handle. + Note: Its a thread-unsafe function. It should + either be invoked from the main thread or some + extra thread safety measures need to be taken. + + @return + 0 Success + -1 Error +*/ +int my_closelog(void) +{ + DBUG_ENTER("my_closelog"); +#ifndef _WIN32 + closelog(); + DBUG_RETURN(0); +#else + if ((hEventLog != NULL) && (! DeregisterEventSource(hEventLog))) + goto err; + + hEventLog= NULL; + DBUG_RETURN(0); + +err: + hEventLog= NULL; + // map error appropriately + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); +#endif +} diff --git a/mysql/mysys/my_thr_init.c b/mysql/mysys/my_thr_init.c new file mode 100644 index 0000000..db0881c --- /dev/null +++ b/mysql/mysys/my_thr_init.c @@ -0,0 +1,459 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Functions to handle initializating and allocationg of all mysys & debug + thread variables. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include +#include "my_thread_local.h" + +static my_bool THR_KEY_mysys_initialized= FALSE; +static my_bool my_thread_global_init_done= FALSE; +#ifndef DBUG_OFF +static uint THR_thread_count= 0; +static uint my_thread_end_wait_time= 5; +static my_thread_id thread_id= 0; +static thread_local_key_t THR_KEY_mysys; +#endif +static thread_local_key_t THR_KEY_myerrno; +#ifdef _WIN32 +static thread_local_key_t THR_KEY_winerrno; +#endif + +mysql_mutex_t THR_LOCK_malloc, THR_LOCK_open, + THR_LOCK_lock, THR_LOCK_myisam, THR_LOCK_heap, + THR_LOCK_net, THR_LOCK_charset, + THR_LOCK_myisam_mmap; +#ifndef DBUG_OFF +mysql_mutex_t THR_LOCK_threads; +mysql_cond_t THR_COND_threads; +#endif + +#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +native_mutexattr_t my_fast_mutexattr; +#endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +native_mutexattr_t my_errorcheck_mutexattr; +#endif +#ifdef _WIN32 +static void install_sigabrt_handler(); +#endif + +#ifndef DBUG_OFF +struct st_my_thread_var +{ + my_thread_id id; + struct _db_code_state_ *dbug; +}; + +static struct st_my_thread_var *mysys_thread_var() +{ + DBUG_ASSERT(THR_KEY_mysys_initialized); + return (struct st_my_thread_var*)my_get_thread_local(THR_KEY_mysys); +} + + +static int set_mysys_thread_var(struct st_my_thread_var *mysys_var) +{ + DBUG_ASSERT(THR_KEY_mysys_initialized); + return my_set_thread_local(THR_KEY_mysys, mysys_var); +} +#endif + + +/** + Re-initialize components initialized early with @c my_thread_global_init. + Some mutexes were initialized before the instrumentation. + Destroy + create them again, now that the instrumentation + is in place. + This is safe, since this function() is called before creating new threads, + so the mutexes are not in use. +*/ + +void my_thread_global_reinit() +{ + DBUG_ASSERT(my_thread_global_init_done); + +#ifdef HAVE_PSI_INTERFACE + my_init_mysys_psi_keys(); +#endif + + mysql_mutex_destroy(&THR_LOCK_heap); + mysql_mutex_init(key_THR_LOCK_heap, &THR_LOCK_heap, MY_MUTEX_INIT_FAST); + + mysql_mutex_destroy(&THR_LOCK_net); + mysql_mutex_init(key_THR_LOCK_net, &THR_LOCK_net, MY_MUTEX_INIT_FAST); + + mysql_mutex_destroy(&THR_LOCK_myisam); + mysql_mutex_init(key_THR_LOCK_myisam, &THR_LOCK_myisam, MY_MUTEX_INIT_SLOW); + + mysql_mutex_destroy(&THR_LOCK_malloc); + mysql_mutex_init(key_THR_LOCK_malloc, &THR_LOCK_malloc, MY_MUTEX_INIT_FAST); + + mysql_mutex_destroy(&THR_LOCK_open); + mysql_mutex_init(key_THR_LOCK_open, &THR_LOCK_open, MY_MUTEX_INIT_FAST); + + mysql_mutex_destroy(&THR_LOCK_charset); + mysql_mutex_init(key_THR_LOCK_charset, &THR_LOCK_charset, MY_MUTEX_INIT_FAST); + +#ifndef DBUG_OFF + mysql_mutex_destroy(&THR_LOCK_threads); + mysql_mutex_init(key_THR_LOCK_threads, &THR_LOCK_threads, MY_MUTEX_INIT_FAST); + + mysql_cond_destroy(&THR_COND_threads); + mysql_cond_init(key_THR_COND_threads, &THR_COND_threads); +#endif +} + + +/** + initialize thread environment + + @retval FALSE ok + @retval TRUE error (Couldn't create THR_KEY_mysys) +*/ + +my_bool my_thread_global_init() +{ + int pth_ret; + + if (my_thread_global_init_done) + return FALSE; + my_thread_global_init_done= TRUE; + +#if defined(SAFE_MUTEX) + safe_mutex_global_init(); /* Must be called early */ +#endif + +#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + /* + Set mutex type to "fast" a.k.a "adaptive" + + In this case the thread may steal the mutex from some other thread + that is waiting for the same mutex. This will save us some + context switches but may cause a thread to 'starve forever' while + waiting for the mutex (not likely if the code within the mutex is + short). + */ + pthread_mutexattr_init(&my_fast_mutexattr); + pthread_mutexattr_settype(&my_fast_mutexattr, + PTHREAD_MUTEX_ADAPTIVE_NP); +#endif + +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + /* + Set mutex type to "errorcheck" + */ + pthread_mutexattr_init(&my_errorcheck_mutexattr); + pthread_mutexattr_settype(&my_errorcheck_mutexattr, + PTHREAD_MUTEX_ERRORCHECK); +#endif + + DBUG_ASSERT(! THR_KEY_mysys_initialized); +#ifndef DBUG_OFF + if ((pth_ret= my_create_thread_local_key(&THR_KEY_mysys, NULL)) != 0) + { /* purecov: begin inspected */ + my_message_local(ERROR_LEVEL, "Can't initialize threads: error %d", + pth_ret); + /* purecov: end */ + return TRUE; + } +#endif + if ((pth_ret= my_create_thread_local_key(&THR_KEY_myerrno, NULL)) != 0) + { /* purecov: begin inspected */ + my_message_local(ERROR_LEVEL, "Can't initialize threads: error %d", + pth_ret); + /* purecov: end */ + return TRUE; + } +#ifdef _WIN32 + if ((pth_ret= my_create_thread_local_key(&THR_KEY_winerrno, NULL)) != 0) + { /* purecov: begin inspected */ + my_message_local(ERROR_LEVEL, "Can't initialize threads: error %d", + pth_ret); + /* purecov: end */ + return TRUE; + } +#endif + THR_KEY_mysys_initialized= TRUE; + + mysql_mutex_init(key_THR_LOCK_malloc, &THR_LOCK_malloc, MY_MUTEX_INIT_FAST); + mysql_mutex_init(key_THR_LOCK_open, &THR_LOCK_open, MY_MUTEX_INIT_FAST); + mysql_mutex_init(key_THR_LOCK_charset, &THR_LOCK_charset, MY_MUTEX_INIT_FAST); + mysql_mutex_init(key_THR_LOCK_lock, &THR_LOCK_lock, MY_MUTEX_INIT_FAST); + mysql_mutex_init(key_THR_LOCK_myisam, &THR_LOCK_myisam, MY_MUTEX_INIT_SLOW); + mysql_mutex_init(key_THR_LOCK_myisam_mmap, &THR_LOCK_myisam_mmap, MY_MUTEX_INIT_FAST); + mysql_mutex_init(key_THR_LOCK_heap, &THR_LOCK_heap, MY_MUTEX_INIT_FAST); + mysql_mutex_init(key_THR_LOCK_net, &THR_LOCK_net, MY_MUTEX_INIT_FAST); +#ifndef DBUG_OFF + mysql_mutex_init(key_THR_LOCK_threads, &THR_LOCK_threads, MY_MUTEX_INIT_FAST); + mysql_cond_init(key_THR_COND_threads, &THR_COND_threads); +#endif + + return FALSE; +} + + +void my_thread_global_end() +{ +#ifndef DBUG_OFF + struct timespec abstime; + my_bool all_threads_killed= TRUE; + + set_timespec(&abstime, my_thread_end_wait_time); + mysql_mutex_lock(&THR_LOCK_threads); + while (THR_thread_count > 0) + { + int error= mysql_cond_timedwait(&THR_COND_threads, &THR_LOCK_threads, + &abstime); + if (error == ETIMEDOUT || error == ETIME) + { +#ifndef _WIN32 + /* + We shouldn't give an error here, because if we don't have + pthread_kill(), programs like mysqld can't ensure that all threads + are killed when we enter here. + */ + if (THR_thread_count) + /* purecov: begin inspected */ + my_message_local(ERROR_LEVEL, "Error in my_thread_global_end(): " + "%d threads didn't exit", THR_thread_count); + /* purecov: end */ +#endif + all_threads_killed= FALSE; + break; + } + } + mysql_mutex_unlock(&THR_LOCK_threads); +#endif + + DBUG_ASSERT(THR_KEY_mysys_initialized); +#ifndef DBUG_OFF + my_delete_thread_local_key(THR_KEY_mysys); +#endif + my_delete_thread_local_key(THR_KEY_myerrno); +#ifdef _WIN32 + my_delete_thread_local_key(THR_KEY_winerrno); +#endif + THR_KEY_mysys_initialized= FALSE; +#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + pthread_mutexattr_destroy(&my_fast_mutexattr); +#endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + pthread_mutexattr_destroy(&my_errorcheck_mutexattr); +#endif + mysql_mutex_destroy(&THR_LOCK_malloc); + mysql_mutex_destroy(&THR_LOCK_open); + mysql_mutex_destroy(&THR_LOCK_lock); + mysql_mutex_destroy(&THR_LOCK_myisam); + mysql_mutex_destroy(&THR_LOCK_myisam_mmap); + mysql_mutex_destroy(&THR_LOCK_heap); + mysql_mutex_destroy(&THR_LOCK_net); + mysql_mutex_destroy(&THR_LOCK_charset); +#ifndef DBUG_OFF + if (all_threads_killed) + { + mysql_mutex_destroy(&THR_LOCK_threads); + mysql_cond_destroy(&THR_COND_threads); + } +#endif + + my_thread_global_init_done= FALSE; +} + + +/** + Allocate thread specific memory for the thread, used by mysys and dbug + + @note This function may called multiple times for a thread, for example + if one uses my_init() followed by mysql_server_init(). + + @retval FALSE ok + @retval TRUE Fatal error; mysys/dbug functions can't be used +*/ + +my_bool my_thread_init() +{ +#ifndef DBUG_OFF + struct st_my_thread_var *tmp; +#endif + + if (!my_thread_global_init_done) + return TRUE; /* cannot proceed with unintialized library */ + +#ifdef _WIN32 + install_sigabrt_handler(); +#endif + +#ifndef DBUG_OFF + if (mysys_thread_var()) + return FALSE; + + if (!(tmp= (struct st_my_thread_var *) calloc(1, sizeof(*tmp)))) + return TRUE; + + mysql_mutex_lock(&THR_LOCK_threads); + tmp->id= ++thread_id; + ++THR_thread_count; + mysql_mutex_unlock(&THR_LOCK_threads); + set_mysys_thread_var(tmp); +#endif + + return FALSE; +} + + +/** + Deallocate memory used by the thread for book-keeping + + @note This may be called multiple times for a thread. + This happens for example when one calls 'mysql_server_init()' + mysql_server_end() and then ends with a mysql_end(). +*/ + +void my_thread_end() +{ +#ifndef DBUG_OFF + struct st_my_thread_var *tmp= mysys_thread_var(); +#endif + +#ifdef HAVE_PSI_INTERFACE + /* + Remove the instrumentation for this thread. + This must be done before trashing st_my_thread_var, + because the LF_HASH depends on it. + */ + PSI_THREAD_CALL(delete_current_thread)(); +#endif + +#if !defined(DBUG_OFF) + if (tmp) + { + /* tmp->dbug is allocated inside DBUG library */ + if (tmp->dbug) + { + DBUG_POP(); + free(tmp->dbug); + tmp->dbug= NULL; + } + free(tmp); + + /* + Decrement counter for number of running threads. We are using this + in my_thread_global_end() to wait until all threads have called + my_thread_end and thus freed all memory they have allocated in + my_thread_init() and DBUG_xxxx + */ + mysql_mutex_lock(&THR_LOCK_threads); + DBUG_ASSERT(THR_thread_count != 0); + if (--THR_thread_count == 0) + mysql_cond_signal(&THR_COND_threads); + mysql_mutex_unlock(&THR_LOCK_threads); + } + set_mysys_thread_var(NULL); +#endif +} + + +int my_errno() +{ + if (THR_KEY_mysys_initialized) + return (int)(intptr)my_get_thread_local(THR_KEY_myerrno); + return 0; +} + + +void set_my_errno(int my_errno) +{ + if (THR_KEY_mysys_initialized) + (void) my_set_thread_local(THR_KEY_myerrno, (void*)(intptr)my_errno); +} + + +#ifdef _WIN32 +int thr_winerr() +{ + if (THR_KEY_mysys_initialized) + return (int)(intptr)my_get_thread_local(THR_KEY_winerrno); + return 0; +} + + +void set_thr_winerr(int winerr) +{ + if (THR_KEY_mysys_initialized) + (void) my_set_thread_local(THR_KEY_winerrno, (void*)(intptr)winerr); +} +#endif + + +#ifndef DBUG_OFF +my_thread_id my_thread_var_id() +{ + return mysys_thread_var()->id; +} + + +void set_my_thread_var_id(my_thread_id id) +{ + mysys_thread_var()->id= id; +} + + +struct _db_code_state_ **my_thread_var_dbug() +{ + struct st_my_thread_var *tmp; + /* + Instead of enforcing DBUG_ASSERT(THR_KEY_mysys_initialized) here, + which causes any DBUG_ENTER and related traces to fail when + used in init / cleanup code, we are more tolerant: + using DBUG_ENTER / DBUG_PRINT / DBUG_RETURN + when the dbug instrumentation is not in place will do nothing. + */ + if (! THR_KEY_mysys_initialized) + return NULL; + tmp= mysys_thread_var(); + return tmp ? &tmp->dbug : NULL; +} +#endif /* DBUG_OFF */ + + +#ifdef _WIN32 +/* + In Visual Studio 2005 and later, default SIGABRT handler will overwrite + any unhandled exception filter set by the application and will try to + call JIT debugger. This is not what we want, this we calling __debugbreak + to stop in debugger, if process is being debugged or to generate + EXCEPTION_BREAKPOINT and then handle_segfault will do its magic. +*/ + +static void my_sigabrt_handler(int sig) +{ + __debugbreak(); +} + +static void install_sigabrt_handler() +{ + /*abort() should not override our exception filter*/ + _set_abort_behavior(0,_CALL_REPORTFAULT); + signal(SIGABRT,my_sigabrt_handler); +} +#endif + diff --git a/mysql/mysys/my_thread.c b/mysql/mysys/my_thread.c new file mode 100644 index 0000000..5db580e --- /dev/null +++ b/mysql/mysys/my_thread.c @@ -0,0 +1,185 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "my_thread.h" + +#ifdef _WIN32 +#include "my_sys.h" /* my_osmaperr */ +#include +#include + +struct thread_start_parameter +{ + my_start_routine func; + void *arg; +}; + + +static unsigned int __stdcall win_thread_start(void *p) +{ + struct thread_start_parameter *par= (struct thread_start_parameter *)p; + my_start_routine func= par->func; + void *arg= par->arg; + free(p); + (*func)(arg); + return 0; +} +#endif + + +/* + One time initialization. For simplicity, we assume initializer thread + does not exit within init_routine(). +*/ +int my_thread_once(my_thread_once_t *once_control, void (*init_routine)(void)) +{ +#ifndef _WIN32 + return pthread_once(once_control, init_routine); +#else + LONG state; + + /* + Do "dirty" read to find out if initialization is already done, to + save an interlocked operation in common case. Memory barriers are ensured by + Visual C++ volatile implementation. + */ + if (*once_control == MY_THREAD_ONCE_DONE) + return 0; + + state= InterlockedCompareExchange(once_control, MY_THREAD_ONCE_INPROGRESS, + MY_THREAD_ONCE_INIT); + + switch(state) + { + case MY_THREAD_ONCE_INIT: + /* This is initializer thread */ + (*init_routine)(); + *once_control= MY_THREAD_ONCE_DONE; + break; + + case MY_THREAD_ONCE_INPROGRESS: + /* init_routine in progress. Wait for its completion */ + while(*once_control == MY_THREAD_ONCE_INPROGRESS) + { + Sleep(1); + } + break; + case MY_THREAD_ONCE_DONE: + /* Nothing to do */ + break; + } + return 0; +#endif /* _WIN32 */ +} + + +int my_thread_create(my_thread_handle *thread, const my_thread_attr_t *attr, + my_start_routine func, void *arg) +{ +#ifndef _WIN32 + return pthread_create(&thread->thread, attr, func, arg); +#else + struct thread_start_parameter *par; + unsigned int stack_size; + + par= (struct thread_start_parameter *)malloc(sizeof(*par)); + if (!par) + goto error_return; + + par->func= func; + par->arg= arg; + stack_size= attr ? attr->dwStackSize : 0; + + thread->handle= (HANDLE)_beginthreadex(NULL, stack_size, win_thread_start, + par, 0, &thread->thread); + + if (thread->handle) + { + /* Note that JOINABLE is default, so attr == NULL => JOINABLE. */ + if (attr && attr->detachstate == MY_THREAD_CREATE_DETACHED) + { + /* + Close handles for detached threads right away to avoid leaking + handles. For joinable threads we need the handle during + my_thread_join. It will be closed there. + */ + CloseHandle(thread->handle); + thread->handle= NULL; + } + return 0; + } + + my_osmaperr(GetLastError()); + free(par); + +error_return: + thread->thread= 0; + thread->handle= NULL; + return 1; +#endif +} + + +int my_thread_join(my_thread_handle *thread, void **value_ptr) +{ +#ifndef _WIN32 + return pthread_join(thread->thread, value_ptr); +#else + DWORD ret; + int result= 0; + ret= WaitForSingleObject(thread->handle, INFINITE); + if (ret != WAIT_OBJECT_0) + { + my_osmaperr(GetLastError()); + result= 1; + } + if (thread->handle) + CloseHandle(thread->handle); + thread->thread= 0; + thread->handle= NULL; + return result; +#endif +} + + +int my_thread_cancel(my_thread_handle *thread) +{ +#ifndef _WIN32 + return pthread_cancel(thread->thread); +#else + BOOL ok= FALSE; + + if (thread->handle) + { + ok= TerminateThread(thread->handle, 0); + CloseHandle(thread->handle); + } + if (ok) + return 0; + + errno= EINVAL; + return -1; +#endif +} + + +void my_thread_exit(void *value_ptr) +{ +#ifndef _WIN32 + pthread_exit(value_ptr); +#else + _endthreadex(0); +#endif +} diff --git a/mysql/mysys/my_winerr.c b/mysql/mysys/my_winerr.c new file mode 100644 index 0000000..5910010 --- /dev/null +++ b/mysql/mysys/my_winerr.c @@ -0,0 +1,130 @@ +/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Convert Windows API error (GetLastError() to Posix equivalent (errno) + The exported function my_osmaperr() is modelled after and borrows + heavily from undocumented _dosmaperr()(found of the static Microsoft C runtime). +*/ + +#include +#include +#include "my_thread_local.h" + + +struct errentry +{ + unsigned long oscode; /* OS return value */ + int sysv_errno; /* System V error code */ +}; + +static struct errentry errtable[]= { + { ERROR_INVALID_FUNCTION, EINVAL }, /* 1 */ + { ERROR_FILE_NOT_FOUND, ENOENT }, /* 2 */ + { ERROR_PATH_NOT_FOUND, ENOENT }, /* 3 */ + { ERROR_TOO_MANY_OPEN_FILES, EMFILE }, /* 4 */ + { ERROR_ACCESS_DENIED, EACCES }, /* 5 */ + { ERROR_INVALID_HANDLE, EBADF }, /* 6 */ + { ERROR_ARENA_TRASHED, ENOMEM }, /* 7 */ + { ERROR_NOT_ENOUGH_MEMORY, ENOMEM }, /* 8 */ + { ERROR_INVALID_BLOCK, ENOMEM }, /* 9 */ + { ERROR_BAD_ENVIRONMENT, E2BIG }, /* 10 */ + { ERROR_BAD_FORMAT, ENOEXEC }, /* 11 */ + { ERROR_INVALID_ACCESS, EINVAL }, /* 12 */ + { ERROR_INVALID_DATA, EINVAL }, /* 13 */ + { ERROR_INVALID_DRIVE, ENOENT }, /* 15 */ + { ERROR_CURRENT_DIRECTORY, EACCES }, /* 16 */ + { ERROR_NOT_SAME_DEVICE, EXDEV }, /* 17 */ + { ERROR_NO_MORE_FILES, ENOENT }, /* 18 */ + { ERROR_LOCK_VIOLATION, EACCES }, /* 33 */ + { ERROR_BAD_NETPATH, ENOENT }, /* 53 */ + { ERROR_NETWORK_ACCESS_DENIED, EACCES }, /* 65 */ + { ERROR_BAD_NET_NAME, ENOENT }, /* 67 */ + { ERROR_FILE_EXISTS, EEXIST }, /* 80 */ + { ERROR_CANNOT_MAKE, EACCES }, /* 82 */ + { ERROR_FAIL_I24, EACCES }, /* 83 */ + { ERROR_INVALID_PARAMETER, EINVAL }, /* 87 */ + { ERROR_NO_PROC_SLOTS, EAGAIN }, /* 89 */ + { ERROR_DRIVE_LOCKED, EACCES }, /* 108 */ + { ERROR_BROKEN_PIPE, EPIPE }, /* 109 */ + { ERROR_DISK_FULL, ENOSPC }, /* 112 */ + { ERROR_INVALID_TARGET_HANDLE, EBADF }, /* 114 */ + { ERROR_INVALID_NAME, ENOENT }, /* 123 */ + { ERROR_INVALID_HANDLE, EINVAL }, /* 124 */ + { ERROR_WAIT_NO_CHILDREN, ECHILD }, /* 128 */ + { ERROR_CHILD_NOT_COMPLETE, ECHILD }, /* 129 */ + { ERROR_DIRECT_ACCESS_HANDLE, EBADF }, /* 130 */ + { ERROR_NEGATIVE_SEEK, EINVAL }, /* 131 */ + { ERROR_SEEK_ON_DEVICE, EACCES }, /* 132 */ + { ERROR_DIR_NOT_EMPTY, ENOTEMPTY }, /* 145 */ + { ERROR_NOT_LOCKED, EACCES }, /* 158 */ + { ERROR_BAD_PATHNAME, ENOENT }, /* 161 */ + { ERROR_MAX_THRDS_REACHED, EAGAIN }, /* 164 */ + { ERROR_LOCK_FAILED, EACCES }, /* 167 */ + { ERROR_ALREADY_EXISTS, EEXIST }, /* 183 */ + { ERROR_FILENAME_EXCED_RANGE, ENOENT }, /* 206 */ + { ERROR_NESTING_NOT_ALLOWED, EAGAIN }, /* 215 */ + { ERROR_NOT_ENOUGH_QUOTA, ENOMEM } /* 1816 */ +}; + +/* size of the table */ +#define ERRTABLESIZE (sizeof(errtable)/sizeof(errtable[0])) + +/* The following two constants must be the minimum and maximum +values in the (contiguous) range of Exec Failure errors. */ +#define MIN_EXEC_ERROR ERROR_INVALID_STARTING_CODESEG +#define MAX_EXEC_ERROR ERROR_INFLOOP_IN_RELOC_CHAIN + +/* These are the low and high value in the range of errors that are +access violations */ +#define MIN_EACCES_RANGE ERROR_WRITE_PROTECT +#define MAX_EACCES_RANGE ERROR_SHARING_BUFFER_EXCEEDED + + +static int get_errno_from_oserr(unsigned long oserrno) +{ + int i; + + /* check the table for the OS error code */ + for (i= 0; i < ERRTABLESIZE; ++i) + { + if (oserrno == errtable[i].oscode) + { + return errtable[i].sysv_errno; + } + } + + /* The error code wasn't in the table. We check for a range of */ + /* EACCES errors or exec failure errors (ENOEXEC). Otherwise */ + /* EINVAL is returned. */ + + if (oserrno >= MIN_EACCES_RANGE && oserrno <= MAX_EACCES_RANGE) + return EACCES; + else if (oserrno >= MIN_EXEC_ERROR && oserrno <= MAX_EXEC_ERROR) + return ENOEXEC; + else + return EINVAL; +} + +/* Set errno corresponsing to GetLastError() value */ +void my_osmaperr( unsigned long oserrno) +{ + /* + set thr_winerr so that we could return the Windows Error Code + when it is EINVAL. + */ + set_thr_winerr(oserrno); + errno= get_errno_from_oserr(oserrno); +} diff --git a/mysql/mysys/my_winfile.c b/mysql/mysys/my_winfile.c new file mode 100644 index 0000000..a5c13a3 --- /dev/null +++ b/mysql/mysys/my_winfile.c @@ -0,0 +1,682 @@ +/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + The purpose of this file is to provide implementation of file IO routines on + Windows that can be thought as drop-in replacement for corresponding C runtime + functionality. + + Compared to Windows CRT, this one + - does not have the same file descriptor + limitation (default is 16384 and can be increased further, whereas CRT poses + a hard limit of 2048 file descriptors) + - the file operations are not serialized + - positional IO pread/pwrite is ported here. + - no text mode for files, all IO is "binary" + + Naming convention: + All routines are prefixed with my_win_, e.g Posix open() is implemented with + my_win_open() + + Implemented are + - POSIX routines(e.g open, read, lseek ...) + - Some ANSI C stream routines (fopen, fdopen, fileno, fclose) + - Windows CRT equvalients (my_get_osfhandle, open_osfhandle) + + Worth to note: + - File descriptors used here are located in a range that is not compatible + with CRT on purpose. Attempt to use a file descriptor from Windows CRT library + range in my_win_* function will be punished with DBUG_ASSERT() + + - File streams (FILE *) are actually from the C runtime. The routines provided + here are useful only in scernarios that use low-level IO with my_win_fileno() +*/ + +#ifdef _WIN32 + +#include "mysys_priv.h" +#include "my_thread_local.h" +#include +#include + +/* Associates a file descriptor with an existing operating-system file handle.*/ +File my_open_osfhandle(HANDLE handle, int oflag) +{ + int offset= -1; + uint i; + DBUG_ENTER("my_open_osfhandle"); + + mysql_mutex_lock(&THR_LOCK_open); + for(i= MY_FILE_MIN; i < my_file_limit;i++) + { + if(my_file_info[i].fhandle == 0) + { + struct st_my_file_info *finfo= &(my_file_info[i]); + finfo->type= FILE_BY_OPEN; + finfo->fhandle= handle; + finfo->oflag= oflag; + offset= i; + break; + } + } + mysql_mutex_unlock(&THR_LOCK_open); + if(offset == -1) + errno= EMFILE; /* to many file handles open */ + DBUG_RETURN(offset); +} + + +static void invalidate_fd(File fd) +{ + DBUG_ENTER("invalidate_fd"); + DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit); + my_file_info[fd].fhandle= 0; + DBUG_VOID_RETURN; +} + + +/* Get Windows handle for a file descriptor */ +HANDLE my_get_osfhandle(File fd) +{ + DBUG_ENTER("my_get_osfhandle"); + DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit); + DBUG_RETURN(my_file_info[fd].fhandle); +} + + +static int my_get_open_flags(File fd) +{ + DBUG_ENTER("my_get_open_flags"); + DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit); + DBUG_RETURN(my_file_info[fd].oflag); +} + + +/* + Open a file with sharing. Similar to _sopen() from libc, but allows managing + share delete on win32 + + SYNOPSIS + my_win_sopen() + path file name + oflag operation flags + shflag share flag + pmode permission flags + + RETURN VALUE + File descriptor of opened file if success + -1 and sets errno if fails. +*/ + +File my_win_sopen(const char *path, int oflag, int shflag, int pmode) +{ + int fh; /* handle of opened file */ + int mask; + HANDLE osfh; /* OS handle of opened file */ + DWORD fileaccess; /* OS file access (requested) */ + DWORD fileshare; /* OS file sharing mode */ + DWORD filecreate; /* OS method of opening/creating */ + DWORD fileattrib; /* OS file attribute flags */ + SECURITY_ATTRIBUTES SecurityAttributes; + + DBUG_ENTER("my_win_sopen"); + + if (check_if_legal_filename(path)) + { + errno= EACCES; + DBUG_RETURN(-1); + } + SecurityAttributes.nLength= sizeof(SecurityAttributes); + SecurityAttributes.lpSecurityDescriptor= NULL; + SecurityAttributes.bInheritHandle= !(oflag & _O_NOINHERIT); + + /* decode the access flags */ + switch (oflag & (_O_RDONLY | _O_WRONLY | _O_RDWR)) { + case _O_RDONLY: /* read access */ + fileaccess= GENERIC_READ; + break; + case _O_WRONLY: /* write access */ + fileaccess= GENERIC_WRITE; + break; + case _O_RDWR: /* read and write access */ + fileaccess= GENERIC_READ | GENERIC_WRITE; + break; + default: /* error, bad oflag */ + errno= EINVAL; + DBUG_RETURN(-1); + } + + /* decode sharing flags */ + switch (shflag) { + case _SH_DENYRW: /* exclusive access except delete */ + fileshare= FILE_SHARE_DELETE; + break; + case _SH_DENYWR: /* share read and delete access */ + fileshare= FILE_SHARE_READ | FILE_SHARE_DELETE; + break; + case _SH_DENYRD: /* share write and delete access */ + fileshare= FILE_SHARE_WRITE | FILE_SHARE_DELETE; + break; + case _SH_DENYNO: /* share read, write and delete access */ + fileshare= FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE; + break; + case _SH_DENYRWD: /* exclusive access */ + fileshare= 0L; + break; + case _SH_DENYWRD: /* share read access */ + fileshare= FILE_SHARE_READ; + break; + case _SH_DENYRDD: /* share write access */ + fileshare= FILE_SHARE_WRITE; + break; + case _SH_DENYDEL: /* share read and write access */ + fileshare= FILE_SHARE_READ | FILE_SHARE_WRITE; + break; + default: /* error, bad shflag */ + errno= EINVAL; + DBUG_RETURN(-1); + } + + /* decode open/create method flags */ + switch (oflag & (_O_CREAT | _O_EXCL | _O_TRUNC)) { + case 0: + case _O_EXCL: /* ignore EXCL w/o CREAT */ + filecreate= OPEN_EXISTING; + break; + + case _O_CREAT: + filecreate= OPEN_ALWAYS; + break; + + case _O_CREAT | _O_EXCL: + case _O_CREAT | _O_TRUNC | _O_EXCL: + filecreate= CREATE_NEW; + break; + + case _O_TRUNC: + case _O_TRUNC | _O_EXCL: /* ignore EXCL w/o CREAT */ + filecreate= TRUNCATE_EXISTING; + break; + + case _O_CREAT | _O_TRUNC: + filecreate= CREATE_ALWAYS; + break; + + default: + /* this can't happen ... all cases are covered */ + errno= EINVAL; + DBUG_RETURN(-1); + } + + /* decode file attribute flags if _O_CREAT was specified */ + fileattrib= FILE_ATTRIBUTE_NORMAL; /* default */ + if (oflag & _O_CREAT) + { + _umask((mask= _umask(0))); + + if (!((pmode & ~mask) & _S_IWRITE)) + fileattrib= FILE_ATTRIBUTE_READONLY; + } + + /* Set temporary file (delete-on-close) attribute if requested. */ + if (oflag & _O_TEMPORARY) + { + fileattrib|= FILE_FLAG_DELETE_ON_CLOSE; + fileaccess|= DELETE; + } + + /* Set temporary file (delay-flush-to-disk) attribute if requested.*/ + if (oflag & _O_SHORT_LIVED) + fileattrib|= FILE_ATTRIBUTE_TEMPORARY; + + /* Set sequential or random access attribute if requested. */ + if (oflag & _O_SEQUENTIAL) + fileattrib|= FILE_FLAG_SEQUENTIAL_SCAN; + else if (oflag & _O_RANDOM) + fileattrib|= FILE_FLAG_RANDOM_ACCESS; + + /* try to open/create the file */ + if ((osfh= CreateFile(path, fileaccess, fileshare, &SecurityAttributes, + filecreate, fileattrib, NULL)) == INVALID_HANDLE_VALUE) + { + /* + OS call to open/create file failed! map the error, release + the lock, and return -1. note that it's not necessary to + call _free_osfhnd (it hasn't been used yet). + */ + my_osmaperr(GetLastError()); /* map error */ + DBUG_RETURN(-1); /* return error to caller */ + } + + if ((fh= my_open_osfhandle(osfh, + oflag & (_O_APPEND | _O_RDONLY | _O_TEXT))) == -1) + { + CloseHandle(osfh); + } + + DBUG_RETURN(fh); /* return handle */ +} + + +File my_win_open(const char *path, int flags) +{ + DBUG_ENTER("my_win_open"); + DBUG_RETURN(my_win_sopen((char *) path, flags | _O_BINARY, _SH_DENYNO, + _S_IREAD | S_IWRITE)); +} + + +int my_win_close(File fd) +{ + DBUG_ENTER("my_win_close"); + if(CloseHandle(my_get_osfhandle(fd))) + { + invalidate_fd(fd); + DBUG_RETURN(0); + } + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); +} + + +size_t my_win_pread(File Filedes, uchar *Buffer, size_t Count, my_off_t offset) +{ + DWORD nBytesRead; + HANDLE hFile; + OVERLAPPED ov= {0}; + LARGE_INTEGER li; + + DBUG_ENTER("my_win_pread"); + + if(!Count) + DBUG_RETURN(0); +#ifdef _WIN64 + if(Count > UINT_MAX) + Count= UINT_MAX; +#endif + + hFile= (HANDLE)my_get_osfhandle(Filedes); + li.QuadPart= offset; + ov.Offset= li.LowPart; + ov.OffsetHigh= li.HighPart; + + if(!ReadFile(hFile, Buffer, (DWORD)Count, &nBytesRead, &ov)) + { + DWORD lastError= GetLastError(); + /* + ERROR_BROKEN_PIPE is returned when no more data coming + through e.g. a command pipe in windows : see MSDN on ReadFile. + */ + if(lastError == ERROR_HANDLE_EOF || lastError == ERROR_BROKEN_PIPE) + DBUG_RETURN(0); /*return 0 at EOF*/ + my_osmaperr(lastError); + DBUG_RETURN((size_t)-1); + } + DBUG_RETURN(nBytesRead); +} + + +size_t my_win_read(File Filedes, uchar *Buffer, size_t Count) +{ + DWORD nBytesRead; + HANDLE hFile; + + DBUG_ENTER("my_win_read"); + if(!Count) + DBUG_RETURN(0); +#ifdef _WIN64 + if(Count > UINT_MAX) + Count= UINT_MAX; +#endif + + hFile= (HANDLE)my_get_osfhandle(Filedes); + + if(!ReadFile(hFile, Buffer, (DWORD)Count, &nBytesRead, NULL)) + { + DWORD lastError= GetLastError(); + /* + ERROR_BROKEN_PIPE is returned when no more data coming + through e.g. a command pipe in windows : see MSDN on ReadFile. + */ + if(lastError == ERROR_HANDLE_EOF || lastError == ERROR_BROKEN_PIPE) + DBUG_RETURN(0); /*return 0 at EOF*/ + my_osmaperr(lastError); + DBUG_RETURN((size_t)-1); + } + DBUG_RETURN(nBytesRead); +} + + +size_t my_win_pwrite(File Filedes, const uchar *Buffer, size_t Count, + my_off_t offset) +{ + DWORD nBytesWritten; + HANDLE hFile; + OVERLAPPED ov= {0}; + LARGE_INTEGER li; + + DBUG_ENTER("my_win_pwrite"); + DBUG_PRINT("my",("Filedes: %d, Buffer: %p, Count: %llu, offset: %llu", + Filedes, Buffer, (ulonglong)Count, (ulonglong)offset)); + + if(!Count) + DBUG_RETURN(0); + +#ifdef _WIN64 + if(Count > UINT_MAX) + Count= UINT_MAX; +#endif + + hFile= (HANDLE)my_get_osfhandle(Filedes); + li.QuadPart= offset; + ov.Offset= li.LowPart; + ov.OffsetHigh= li.HighPart; + + if(!WriteFile(hFile, Buffer, (DWORD)Count, &nBytesWritten, &ov)) + { + my_osmaperr(GetLastError()); + DBUG_RETURN((size_t)-1); + } + else + DBUG_RETURN(nBytesWritten); +} + + +my_off_t my_win_lseek(File fd, my_off_t pos, int whence) +{ + LARGE_INTEGER offset; + LARGE_INTEGER newpos; + + DBUG_ENTER("my_win_lseek"); + + /* Check compatibility of Windows and Posix seek constants */ + compile_time_assert(FILE_BEGIN == SEEK_SET && FILE_CURRENT == SEEK_CUR + && FILE_END == SEEK_END); + + offset.QuadPart= pos; + if(!SetFilePointerEx(my_get_osfhandle(fd), offset, &newpos, whence)) + { + my_osmaperr(GetLastError()); + newpos.QuadPart= -1; + } + DBUG_RETURN(newpos.QuadPart); +} + + +#ifndef FILE_WRITE_TO_END_OF_FILE +#define FILE_WRITE_TO_END_OF_FILE 0xffffffff +#endif +size_t my_win_write(File fd, const uchar *Buffer, size_t Count) +{ + DWORD nWritten; + OVERLAPPED ov; + OVERLAPPED *pov= NULL; + HANDLE hFile; + + DBUG_ENTER("my_win_write"); + DBUG_PRINT("my",("Filedes: %d, Buffer: %p, Count %llu", fd, Buffer, + (ulonglong)Count)); + + if(!Count) + DBUG_RETURN(0); + +#ifdef _WIN64 + if(Count > UINT_MAX) + Count= UINT_MAX; +#endif + + if(my_get_open_flags(fd) & _O_APPEND) + { + /* + Atomic append to the end of file is is done by special initialization of + the OVERLAPPED structure. See MSDN WriteFile documentation for more info. + */ + memset(&ov, 0, sizeof(ov)); + ov.Offset= FILE_WRITE_TO_END_OF_FILE; + ov.OffsetHigh= -1; + pov= &ov; + } + + hFile= my_get_osfhandle(fd); + if(!WriteFile(hFile, Buffer, (DWORD)Count, &nWritten, pov)) + { + my_osmaperr(GetLastError()); + DBUG_RETURN((size_t)-1); + } + DBUG_RETURN(nWritten); +} + + +int my_win_chsize(File fd, my_off_t newlength) +{ + HANDLE hFile; + LARGE_INTEGER length; + DBUG_ENTER("my_win_chsize"); + + hFile= (HANDLE) my_get_osfhandle(fd); + length.QuadPart= newlength; + if (!SetFilePointerEx(hFile, length , NULL , FILE_BEGIN)) + goto err; + if (!SetEndOfFile(hFile)) + goto err; + DBUG_RETURN(0); +err: + my_osmaperr(GetLastError()); + set_my_errno(errno); + DBUG_RETURN(-1); +} + + +/* Get the file descriptor for stdin,stdout or stderr */ +static File my_get_stdfile_descriptor(FILE *stream) +{ + HANDLE hFile; + DWORD nStdHandle; + DBUG_ENTER("my_get_stdfile_descriptor"); + + if(stream == stdin) + nStdHandle= STD_INPUT_HANDLE; + else if(stream == stdout) + nStdHandle= STD_OUTPUT_HANDLE; + else if(stream == stderr) + nStdHandle= STD_ERROR_HANDLE; + else + DBUG_RETURN(-1); + + hFile= GetStdHandle(nStdHandle); + if(hFile != INVALID_HANDLE_VALUE) + DBUG_RETURN(my_open_osfhandle(hFile, 0)); + DBUG_RETURN(-1); +} + + +File my_win_fileno(FILE *file) +{ + HANDLE hFile= (HANDLE)_get_osfhandle(fileno(file)); + int retval= -1; + uint i; + + DBUG_ENTER("my_win_fileno"); + + for(i= MY_FILE_MIN; i < my_file_limit; i++) + { + if(my_file_info[i].fhandle == hFile) + { + retval= i; + break; + } + } + if(retval == -1) + /* try std stream */ + DBUG_RETURN(my_get_stdfile_descriptor(file)); + DBUG_RETURN(retval); +} + + +FILE *my_win_fopen(const char *filename, const char *type) +{ + FILE *file; + int flags= 0; + DBUG_ENTER("my_win_open"); + + /* + If we are not creating, then we need to use my_access to make sure + the file exists since Windows doesn't handle files like "com1.sym" + very well + */ + if (check_if_legal_filename(filename)) + { + errno= EACCES; + DBUG_RETURN(NULL); + } + + file= fopen(filename, type); + if(!file) + DBUG_RETURN(NULL); + + if(strchr(type,'a') != NULL) + flags= O_APPEND; + + /* + Register file handle in my_table_info. + Necessary for my_fileno() + */ + if(my_open_osfhandle((HANDLE)_get_osfhandle(fileno(file)), flags) < 0) + { + fclose(file); + DBUG_RETURN(NULL); + } + DBUG_RETURN(file); +} + + +FILE * my_win_fdopen(File fd, const char *type) +{ + FILE *file; + int crt_fd; + int flags= 0; + + DBUG_ENTER("my_win_fdopen"); + + if(strchr(type,'a') != NULL) + flags= O_APPEND; + /* Convert OS file handle to CRT file descriptor and then call fdopen*/ + crt_fd= _open_osfhandle((intptr_t)my_get_osfhandle(fd), flags); + if(crt_fd < 0) + file= NULL; + else + file= fdopen(crt_fd, type); + DBUG_RETURN(file); +} + + +int my_win_fclose(FILE *file) +{ + File fd; + + DBUG_ENTER("my_win_close"); + fd= my_fileno(file); + if(fd < 0) + DBUG_RETURN(-1); + if(fclose(file) < 0) + DBUG_RETURN(-1); + invalidate_fd(fd); + DBUG_RETURN(0); +} + + + +/* + Quick and dirty my_fstat() implementation for Windows. + Use CRT fstat on temporarily allocated file descriptor. + Patch file size, because size that fstat returns is not + reliable (may be outdated) +*/ +int my_win_fstat(File fd, struct _stati64 *buf) +{ + int crt_fd; + int retval; + HANDLE hFile, hDup; + + DBUG_ENTER("my_win_fstat"); + + hFile= my_get_osfhandle(fd); + if(!DuplicateHandle( GetCurrentProcess(), hFile, GetCurrentProcess(), + &hDup ,0,FALSE,DUPLICATE_SAME_ACCESS)) + { + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); + } + if ((crt_fd= _open_osfhandle((intptr_t)hDup,0)) < 0) + DBUG_RETURN(-1); + + retval= _fstati64(crt_fd, buf); + if(retval == 0) + { + /* File size returned by stat is not accurate (may be outdated), fix it*/ + GetFileSizeEx(hDup, (PLARGE_INTEGER) (&(buf->st_size))); + } + _close(crt_fd); + DBUG_RETURN(retval); +} + + + +int my_win_stat( const char *path, struct _stati64 *buf) +{ + DBUG_ENTER("my_win_stat"); + if(_stati64( path, buf) == 0) + { + /* File size returned by stat is not accurate (may be outdated), fix it*/ + WIN32_FILE_ATTRIBUTE_DATA data; + if (GetFileAttributesEx(path, GetFileExInfoStandard, &data)) + { + LARGE_INTEGER li; + li.LowPart= data.nFileSizeLow; + li.HighPart= data.nFileSizeHigh; + buf->st_size= li.QuadPart; + } + DBUG_RETURN(0); + } + DBUG_RETURN(-1); +} + + + +int my_win_fsync(File fd) +{ + DBUG_ENTER("my_win_fsync"); + if(FlushFileBuffers(my_get_osfhandle(fd))) + DBUG_RETURN(0); + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); +} + + + +int my_win_dup(File fd) +{ + HANDLE hDup; + DBUG_ENTER("my_win_dup"); + if (DuplicateHandle(GetCurrentProcess(), my_get_osfhandle(fd), + GetCurrentProcess(), &hDup, 0, FALSE, DUPLICATE_SAME_ACCESS)) + { + DBUG_RETURN(my_open_osfhandle(hDup, my_get_open_flags(fd))); + } + my_osmaperr(GetLastError()); + DBUG_RETURN(-1); +} + +#endif /*_WIN32*/ diff --git a/mysql/mysys/my_write.c b/mysql/mysys/my_write.c new file mode 100644 index 0000000..d849949 --- /dev/null +++ b/mysql/mysys/my_write.c @@ -0,0 +1,129 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include +#include "my_thread_local.h" + + +/** + Write a chunk of bytes to a file + + if (MyFlags & (MY_NABP | MY_FNABP)) + @returns + 0 if Count == 0 + On succes, 0 + On failure, (size_t)-1 == MY_FILE_ERROR + + otherwise + @returns + 0 if Count == 0 + On success, the number of bytes written. + On partial success (if less than Count bytes could be written), + the actual number of bytes written. + On failure, (size_t)-1 == MY_FILE_ERROR +*/ +size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags) +{ + size_t writtenbytes; + size_t sum_written= 0; + uint errors= 0; + const size_t initial_count= Count; + + DBUG_ENTER("my_write"); + DBUG_PRINT("my",("fd: %d Buffer: %p Count: %lu MyFlags: %d", + Filedes, Buffer, (ulong) Count, MyFlags)); + + /* The behavior of write(fd, buf, 0) is not portable */ + if (unlikely(!Count)) + DBUG_RETURN(0); + + DBUG_EXECUTE_IF ("simulate_no_free_space_error", + { DBUG_SET("+d,simulate_file_write_error");}); + for (;;) + { + errno= 0; +#ifdef _WIN32 + writtenbytes= my_win_write(Filedes, Buffer, Count); +#else + writtenbytes= write(Filedes, Buffer, Count); +#endif + DBUG_EXECUTE_IF("simulate_file_write_error", + { + errno= ENOSPC; + writtenbytes= (size_t) -1; + }); + if (writtenbytes == Count) + { + sum_written+= writtenbytes; + break; + } + if (writtenbytes != (size_t) -1) + { /* Safeguard */ + sum_written+= writtenbytes; + Buffer+= writtenbytes; + Count-= writtenbytes; + } + set_my_errno(errno); + DBUG_PRINT("error",("Write only %ld bytes, error: %d", + (long) writtenbytes, my_errno())); + if (is_killed_hook(NULL)) + MyFlags&= ~ MY_WAIT_IF_FULL; /* End if aborted by user */ + + if ((my_errno() == ENOSPC || my_errno() == EDQUOT) && + (MyFlags & MY_WAIT_IF_FULL)) + { + wait_for_free_space(my_filename(Filedes), errors); + errors++; + DBUG_EXECUTE_IF("simulate_no_free_space_error", + { DBUG_SET("-d,simulate_file_write_error");}); + continue; + } + + if (writtenbytes != 0 && writtenbytes != (size_t) -1) + continue; /* Retry if something written */ + else if (my_errno() == EINTR) + { + DBUG_PRINT("debug", ("my_write() was interrupted and returned %ld", + (long) writtenbytes)); + continue; /* Interrupted, retry */ + } + else if (writtenbytes == 0 && !errors++) /* Retry once */ + { + /* We may come here if the file quota is exeeded */ + continue; + } + break; + } + if (MyFlags & (MY_NABP | MY_FNABP)) + { + if (sum_written == initial_count) + DBUG_RETURN(0); /* Want only errors, not bytes written */ + if (MyFlags & (MY_WME | MY_FAE | MY_FNABP)) + { + char errbuf[MYSYS_STRERROR_SIZE]; + my_error(EE_WRITE, MYF(0), my_filename(Filedes), + my_errno(), my_strerror(errbuf, sizeof(errbuf), my_errno())); + } + DBUG_RETURN(MY_FILE_ERROR); + } + + if (sum_written == 0) + DBUG_RETURN(MY_FILE_ERROR); + + DBUG_RETURN(sum_written); +} /* my_write */ diff --git a/mysql/mysys/mysys_priv.h b/mysql/mysys/mysys_priv.h new file mode 100644 index 0000000..8b7a554 --- /dev/null +++ b/mysql/mysys/mysys_priv.h @@ -0,0 +1,130 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSYS_PRIV_INCLUDED +#define MYSYS_PRIV_INCLUDED + +#include "my_global.h" +#include "mysql/psi/mysql_thread.h" + +#ifdef HAVE_PSI_INTERFACE + +#include +#include + +C_MODE_START + +extern PSI_mutex_key key_BITMAP_mutex, key_IO_CACHE_append_buffer_lock, + key_IO_CACHE_SHARE_mutex, key_KEY_CACHE_cache_lock, + key_THR_LOCK_charset, key_THR_LOCK_heap, + key_THR_LOCK_lock, key_THR_LOCK_malloc, + key_THR_LOCK_mutex, key_THR_LOCK_myisam, key_THR_LOCK_net, + key_THR_LOCK_open, key_THR_LOCK_threads, + key_TMPDIR_mutex, key_THR_LOCK_myisam_mmap; + +extern PSI_rwlock_key key_SAFE_HASH_lock; + +extern PSI_cond_key key_IO_CACHE_SHARE_cond, + key_IO_CACHE_SHARE_cond_writer, + key_THR_COND_threads; + +#endif /* HAVE_PSI_INTERFACE */ + +extern PSI_stage_info stage_waiting_for_table_level_lock; + +extern mysql_mutex_t THR_LOCK_malloc, THR_LOCK_open, THR_LOCK_keycache; +extern mysql_mutex_t THR_LOCK_lock, THR_LOCK_net; +extern mysql_mutex_t THR_LOCK_charset; + +#ifdef HAVE_PSI_INTERFACE +#ifdef HAVE_LINUX_LARGE_PAGES +extern PSI_file_key key_file_proc_meminfo; +#endif /* HAVE_LINUX_LARGE_PAGES */ +extern PSI_file_key key_file_charset; + +C_MODE_END + +#endif /* HAVE_PSI_INTERFACE */ + +/* These keys are always defined. */ + +C_MODE_START + +extern PSI_memory_key key_memory_charset_file; +extern PSI_memory_key key_memory_charset_loader; +extern PSI_memory_key key_memory_lf_node; +extern PSI_memory_key key_memory_lf_dynarray; +extern PSI_memory_key key_memory_lf_slist; +extern PSI_memory_key key_memory_LIST; +extern PSI_memory_key key_memory_IO_CACHE; +extern PSI_memory_key key_memory_KEY_CACHE; +extern PSI_memory_key key_memory_SAFE_HASH_ENTRY; +extern PSI_memory_key key_memory_MY_TMPDIR_full_list; +extern PSI_memory_key key_memory_MY_BITMAP_bitmap; +extern PSI_memory_key key_memory_my_compress_alloc; +extern PSI_memory_key key_memory_pack_frm; +extern PSI_memory_key key_memory_my_err_head; +extern PSI_memory_key key_memory_my_file_info; +extern PSI_memory_key key_memory_MY_DIR; +extern PSI_memory_key key_memory_MY_STAT; +extern PSI_memory_key key_memory_QUEUE; +extern PSI_memory_key key_memory_DYNAMIC_STRING; +extern PSI_memory_key key_memory_TREE; +extern PSI_memory_key key_memory_defaults; + +#ifdef _WIN32 +extern PSI_memory_key key_memory_win_SECURITY_ATTRIBUTES; +extern PSI_memory_key key_memory_win_PACL; +extern PSI_memory_key key_memory_win_IP_ADAPTER_ADDRESSES; +#endif + +C_MODE_END + +/* + EDQUOT is used only in 3 C files only in mysys/. If it does not exist on + system, we set it to some value which can never happen. +*/ +#ifndef EDQUOT +#define EDQUOT (-1) +#endif + +void my_error_unregister_all(void); + +#ifdef _WIN32 +#include +/* my_winfile.c exports, should not be used outside mysys */ +extern File my_win_open(const char *path, int oflag); +extern int my_win_close(File fd); +extern size_t my_win_read(File fd, uchar *buffer, size_t count); +extern size_t my_win_write(File fd, const uchar *buffer, size_t count); +extern size_t my_win_pread(File fd, uchar *buffer, size_t count, + my_off_t offset); +extern size_t my_win_pwrite(File fd, const uchar *buffer, size_t count, + my_off_t offset); +extern my_off_t my_win_lseek(File fd, my_off_t pos, int whence); +extern int my_win_chsize(File fd, my_off_t newlength); +extern FILE* my_win_fopen(const char *filename, const char *type); +extern File my_win_fclose(FILE *file); +extern File my_win_fileno(FILE *file); +extern FILE* my_win_fdopen(File Filedes, const char *type); +extern int my_win_stat(const char *path, struct _stati64 *buf); +extern int my_win_fstat(File fd, struct _stati64 *buf); +extern int my_win_fsync(File fd); +extern File my_win_dup(File fd); +extern File my_win_sopen(const char *path, int oflag, int shflag, int perm); +extern File my_open_osfhandle(HANDLE handle, int oflag); +#endif + +#endif /* MYSYS_PRIV_INCLUDED */ diff --git a/mysql/mysys/posix_timers.c b/mysql/mysys/posix_timers.c new file mode 100644 index 0000000..2215a66 --- /dev/null +++ b/mysql/mysys/posix_timers.c @@ -0,0 +1,395 @@ +/* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +#include "my_global.h" +#include "my_thread.h" /* my_thread_init, my_thread_end */ +#include "my_sys.h" /* my_message_local */ +#include "my_timer.h" /* my_timer_t */ + +#include /* memset */ +#include + +#if defined(HAVE_SIGEV_THREAD_ID) +#include /* SYS_gettid */ + +#ifndef sigev_notify_thread_id +#define sigev_notify_thread_id _sigev_un._tid +#endif + +#define MY_TIMER_EVENT_SIGNO (SIGRTMIN) +#define MY_TIMER_KILL_SIGNO (SIGRTMIN+1) + +/* Timer thread ID (TID). */ +static pid_t timer_notify_thread_id; + +#elif defined(HAVE_SIGEV_PORT) +#include + +int port_id= -1; + +#endif + +/* Timer thread object. */ +static my_thread_handle timer_notify_thread; + +#if defined(HAVE_SIGEV_THREAD_ID) +/** + Timer expiration notification thread. + + @param arg Barrier object. +*/ + +static void * +timer_notify_thread_func(void *arg) +{ + sigset_t set; + siginfo_t info; + my_timer_t *timer; + pthread_barrier_t *barrier= arg; + + my_thread_init(); + + sigemptyset(&set); + sigaddset(&set, MY_TIMER_EVENT_SIGNO); + sigaddset(&set, MY_TIMER_KILL_SIGNO); + + /* Get the thread ID of the current thread. */ + timer_notify_thread_id= (pid_t) syscall(SYS_gettid); + + /* Wake up parent thread, timer_notify_thread_id is available. */ + pthread_barrier_wait(barrier); + + while (1) + { + if (sigwaitinfo(&set, &info) < 0) + continue; + + if (info.si_signo == MY_TIMER_EVENT_SIGNO) + { + timer= (my_timer_t*)info.si_value.sival_ptr; + timer->notify_function(timer); + } + else if (info.si_signo == MY_TIMER_KILL_SIGNO) + break; + } + + my_thread_end(); + + return NULL; +} + + +/** + Create a helper thread to dispatch timer expiration notifications. + + @return On success, 0. On error, -1 is returned. +*/ + +static int +start_helper_thread(void) +{ + pthread_barrier_t barrier; + + if (pthread_barrier_init(&barrier, NULL, 2)) + { + my_message_local(ERROR_LEVEL, + "Failed to initialize pthread barrier. errno=%d", errno); + return -1; + } + + if (mysql_thread_create(key_thread_timer_notifier, &timer_notify_thread, + NULL, timer_notify_thread_func, &barrier)) + { + my_message_local(ERROR_LEVEL, + "Failed to create timer notify thread (errno= %d).", + errno); + pthread_barrier_destroy(&barrier); + return -1; + } + + pthread_barrier_wait(&barrier); + pthread_barrier_destroy(&barrier); + + return 0; +} + + +/** + Initialize internal components. + + @return On success, 0. + On error, -1 is returned, and errno is set to indicate the error. +*/ + +int +my_timer_initialize(void) +{ + int rc; + sigset_t set, old_set; + + if (sigfillset(&set)) + { + my_message_local(ERROR_LEVEL, + "Failed to intialize signal set (errno=%d).", errno); + return -1; + } + + /* + Temporarily block all signals. New thread will inherit signal + mask of the current thread. + */ + if (pthread_sigmask(SIG_BLOCK, &set, &old_set)) + return -1; + + /* Create a helper thread. */ + rc= start_helper_thread(); + + /* Restore the signal mask. */ + pthread_sigmask(SIG_SETMASK, &old_set, NULL); + + return rc; +} + + +/** + Release any resources that were allocated as part of initialization. +*/ + +void +my_timer_deinitialize(void) +{ + /* Kill helper thread. */ + pthread_kill(timer_notify_thread.thread, MY_TIMER_KILL_SIGNO); + + /* Wait for helper thread termination. */ + my_thread_join(&timer_notify_thread, NULL); +} + + +/** + Create a timer object. + + @param timer Location where the timer ID is returned. + + @return On success, 0. + On error, -1 is returned, and errno is set to indicate the error. +*/ + +int +my_timer_create(my_timer_t *timer) +{ + struct sigevent sigev; + + memset(&sigev, 0, sizeof(sigev)); + + sigev.sigev_value.sival_ptr= timer; + sigev.sigev_signo= MY_TIMER_EVENT_SIGNO; + sigev.sigev_notify= SIGEV_SIGNAL | SIGEV_THREAD_ID; + sigev.sigev_notify_thread_id= timer_notify_thread_id; + + return timer_create(CLOCK_MONOTONIC, &sigev, &timer->id); +} +#elif defined(HAVE_SIGEV_PORT) +/** + Timer expiration notification thread. + + @param arg Barrier object. +*/ + +static void * +timer_notify_thread_func(void *arg MY_ATTRIBUTE((unused))) +{ + port_event_t port_event; + my_timer_t *timer; + + my_thread_init(); + + while (1) + { + if (port_get(port_id, &port_event, NULL)) + break; + + if (port_event.portev_source != PORT_SOURCE_TIMER) + continue; + + timer= (my_timer_t*)port_event.portev_user; + timer->notify_function(timer); + } + + my_thread_end(); + + return NULL; +} + + +/** + Create a helper thread to dispatch timer expiration notifications. + + @return On success, 0. On error, -1 is returned. +*/ + +static int +start_helper_thread(void) +{ + if (mysql_thread_create(key_thread_timer_notifier, &timer_notify_thread, + NULL, timer_notify_thread_func, NULL)) + { + my_message_local(ERROR_LEVEL, + "Failed to create timer notify thread (errno= %d).", + errno); + return -1; + } + + return 0; +} + + +/** + Initialize internal components. + + @return On success, 0. + On error, -1 is returned, and errno is set to indicate the error. +*/ + +int +my_timer_initialize(void) +{ + int rc; + + if ((port_id= port_create()) < 0) + { + my_message_local(ERROR_LEVEL, "Failed to create port (errno= %d).", errno); + return -1; + } + + /* Create a helper thread. */ + rc= start_helper_thread(); + + return rc; +} + + +/** + Release any resources that were allocated as part of initialization. +*/ + +void +my_timer_deinitialize(void) +{ + DBUG_ASSERT(port_id >= 0); + + // close port + close(port_id); + + /* Wait for helper thread termination. */ + my_thread_join(&timer_notify_thread, NULL); +} + + +/** + Create a timer object. + + @param timer Location where the timer ID is returned. + + @return On success, 0. + On error, -1 is returned, and errno is set to indicate the error. +*/ + +int +my_timer_create(my_timer_t *timer) +{ + struct sigevent sigev; + port_notify_t port_notify; + + port_notify.portnfy_port= port_id; + port_notify.portnfy_user= timer; + + memset(&sigev, 0, sizeof(sigev)); + sigev.sigev_value.sival_ptr= &port_notify; + sigev.sigev_notify= SIGEV_PORT; + + return timer_create(CLOCK_REALTIME, &sigev, &timer->id); +} +#endif + + +/** + Set the time until the next expiration of the timer. + + @param timer Timer object. + @param time Amount of time (in milliseconds) before the timer expires. + + @return On success, 0. + On error, -1 is returned, and errno is set to indicate the error. +*/ + +int +my_timer_set(my_timer_t *timer, unsigned long time) +{ + const struct itimerspec spec= { + .it_interval= {.tv_sec= 0, .tv_nsec= 0}, + .it_value= {.tv_sec= time / 1000, + .tv_nsec= (time % 1000) * 1000000} + }; + + return timer_settime(timer->id, 0, &spec, NULL); +} + + +/** + Cancel the timer. + + @param timer Timer object. + @param state The state of the timer at the time of cancellation, either + signaled (false) or nonsignaled (true). + + @return On success, 0. + On error, -1 is returned, and errno is set to indicate the error. +*/ + +int +my_timer_cancel(my_timer_t *timer, int *state) +{ + int status; + struct itimerspec old_spec; + + /* A zeroed initial expiration value disarms the timer. */ + const struct timespec zero_time= { .tv_sec= 0, .tv_nsec= 0 }; + const struct itimerspec zero_spec= { .it_value= zero_time }; + + /* + timer_settime returns the amount of time before the timer + would have expired or zero if the timer was disarmed. + */ + if (! (status= timer_settime(timer->id, 0, &zero_spec, &old_spec))) + *state= (old_spec.it_value.tv_sec || old_spec.it_value.tv_nsec); + + return status; +} + + +/** + Delete a timer object. + + @param timer Timer object. +*/ + +void +my_timer_delete(my_timer_t *timer) +{ + timer_delete(timer->id); +} + diff --git a/mysql/mysys/psi_noop.c b/mysql/mysys/psi_noop.c new file mode 100644 index 0000000..6835096 --- /dev/null +++ b/mysql/mysys/psi_noop.c @@ -0,0 +1,1040 @@ +/* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +/* + Always provide the noop performance interface, for plugins. +*/ + +#define USE_PSI_V1 +#define HAVE_PSI_INTERFACE + +#include "my_global.h" +#include "my_thread.h" +#include "my_sys.h" +#include "mysql/psi/psi.h" + +C_MODE_START + +#define NNN MY_ATTRIBUTE((unused)) + +static void register_mutex_noop(const char *category NNN, + PSI_mutex_info *info NNN, + int count NNN) +{ + return; +} + +static void register_rwlock_noop(const char *category NNN, + PSI_rwlock_info *info NNN, + int count NNN) +{ + return; +} + +static void register_cond_noop(const char *category NNN, + PSI_cond_info *info NNN, + int count NNN) +{ + return; +} + +static void register_thread_noop(const char *category NNN, + PSI_thread_info *info NNN, + int count NNN) +{ + return; +} + +static void register_file_noop(const char *category NNN, + PSI_file_info *info NNN, + int count NNN) +{ + return; +} + +static void register_stage_noop(const char *category NNN, + PSI_stage_info **info_array NNN, + int count NNN) +{ + return; +} + +static void register_statement_noop(const char *category NNN, + PSI_statement_info *info NNN, + int count NNN) +{ + return; +} + +static void register_socket_noop(const char *category NNN, + PSI_socket_info *info NNN, + int count NNN) +{ + return; +} + +static PSI_mutex* +init_mutex_noop(PSI_mutex_key key NNN, const void *identity NNN) +{ + return NULL; +} + +static void destroy_mutex_noop(PSI_mutex* mutex NNN) +{ + return; +} + +static PSI_rwlock* +init_rwlock_noop(PSI_rwlock_key key NNN, const void *identity NNN) +{ + return NULL; +} + +static void destroy_rwlock_noop(PSI_rwlock* rwlock NNN) +{ + return; +} + +static PSI_cond* +init_cond_noop(PSI_cond_key key NNN, const void *identity NNN) +{ + return NULL; +} + +static void destroy_cond_noop(PSI_cond* cond NNN) +{ + return; +} + +static PSI_socket* +init_socket_noop(PSI_socket_key key NNN, const my_socket *fd NNN, + const struct sockaddr *addr NNN, socklen_t addr_len NNN) +{ + return NULL; +} + +static void destroy_socket_noop(PSI_socket* socket NNN) +{ + return; +} + +static PSI_table_share* +get_table_share_noop(my_bool temporary NNN, struct TABLE_SHARE *share NNN) +{ + return NULL; +} + +static void release_table_share_noop(PSI_table_share* share NNN) +{ + return; +} + +static void +drop_table_share_noop(my_bool temporary NNN, const char *schema_name NNN, + int schema_name_length NNN, const char *table_name NNN, + int table_name_length NNN) +{ + return; +} + +static PSI_table* +open_table_noop(PSI_table_share *share NNN, const void *identity NNN) +{ + return NULL; +} + +static void unbind_table_noop(PSI_table *table NNN) +{ + return; +} + +static PSI_table* +rebind_table_noop(PSI_table_share *share NNN, + const void *identity NNN, + PSI_table *table NNN) +{ + return NULL; +} + +static void close_table_noop(struct TABLE_SHARE *share NNN, + PSI_table *table NNN) +{ + return; +} + +static void create_file_noop(PSI_file_key key NNN, + const char *name NNN, File file NNN) +{ + return; +} + +static int spawn_thread_noop(PSI_thread_key key NNN, + my_thread_handle *thread NNN, + const my_thread_attr_t *attr NNN, + my_start_routine start_routine, void *arg NNN) +{ + return my_thread_create(thread, attr, start_routine, arg); +} + +static PSI_thread* +new_thread_noop(PSI_thread_key key NNN, + const void *identity NNN, ulonglong thread_id NNN) +{ + return NULL; +} + +static void set_thread_id_noop(PSI_thread *thread NNN, ulonglong id NNN) +{ + return; +} + +static void set_thread_THD_noop(PSI_thread *thread NNN, THD *thd NNN) +{ + return; +} + +static void set_thread_os_id_noop(PSI_thread *thread NNN) +{ + return; +} + +static PSI_thread* +get_thread_noop(void NNN) +{ + return NULL; +} + +static void set_thread_user_noop(const char *user NNN, int user_len NNN) +{ + return; +} + +static void set_thread_user_host_noop(const char *user NNN, int user_len NNN, + const char *host NNN, int host_len NNN) +{ + return; +} + +static void set_thread_db_noop(const char* db NNN, int db_len NNN) +{ + return; +} + +static void set_thread_command_noop(int command NNN) +{ + return; +} + +static void set_connection_type_noop(opaque_vio_type conn_type NNN) +{ + return; +} + +static void set_thread_start_time_noop(time_t start_time NNN) +{ + return; +} + +static void set_thread_state_noop(const char* state NNN) +{ + return; +} + +static void set_thread_info_noop(const char* info NNN, uint info_len NNN) +{ + return; +} + +static void set_thread_noop(PSI_thread* thread NNN) +{ + return; +} + +static void delete_current_thread_noop(void) +{ + return; +} + +static void delete_thread_noop(PSI_thread *thread NNN) +{ + return; +} + +static PSI_file_locker* +get_thread_file_name_locker_noop(PSI_file_locker_state *state NNN, + PSI_file_key key NNN, + enum PSI_file_operation op NNN, + const char *name NNN, const void *identity NNN) +{ + return NULL; +} + +static PSI_file_locker* +get_thread_file_stream_locker_noop(PSI_file_locker_state *state NNN, + PSI_file *file NNN, + enum PSI_file_operation op NNN) +{ + return NULL; +} + + +static PSI_file_locker* +get_thread_file_descriptor_locker_noop(PSI_file_locker_state *state NNN, + File file NNN, + enum PSI_file_operation op NNN) +{ + return NULL; +} + +static void unlock_mutex_noop(PSI_mutex *mutex NNN) +{ + return; +} + +static void unlock_rwlock_noop(PSI_rwlock *rwlock NNN) +{ + return; +} + +static void signal_cond_noop(PSI_cond* cond NNN) +{ + return; +} + +static void broadcast_cond_noop(PSI_cond* cond NNN) +{ + return; +} + +static PSI_idle_locker* +start_idle_wait_noop(PSI_idle_locker_state* state NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_idle_wait_noop(PSI_idle_locker* locker NNN) +{ + return; +} + +static PSI_mutex_locker* +start_mutex_wait_noop(PSI_mutex_locker_state *state NNN, + PSI_mutex *mutex NNN, + PSI_mutex_operation op NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_mutex_wait_noop(PSI_mutex_locker* locker NNN, int rc NNN) +{ + return; +} + + +static PSI_rwlock_locker* +start_rwlock_rdwait_noop(struct PSI_rwlock_locker_state_v1 *state NNN, + struct PSI_rwlock *rwlock NNN, + enum PSI_rwlock_operation op NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_rwlock_rdwait_noop(PSI_rwlock_locker* locker NNN, int rc NNN) +{ + return; +} + +static struct PSI_rwlock_locker* +start_rwlock_wrwait_noop(struct PSI_rwlock_locker_state_v1 *state NNN, + struct PSI_rwlock *rwlock NNN, + enum PSI_rwlock_operation op NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_rwlock_wrwait_noop(PSI_rwlock_locker* locker NNN, int rc NNN) +{ + return; +} + +static struct PSI_cond_locker* +start_cond_wait_noop(struct PSI_cond_locker_state_v1 *state NNN, + struct PSI_cond *cond NNN, + struct PSI_mutex *mutex NNN, + enum PSI_cond_operation op NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_cond_wait_noop(PSI_cond_locker* locker NNN, int rc NNN) +{ + return; +} + +static struct PSI_table_locker* +start_table_io_wait_noop(struct PSI_table_locker_state *state NNN, + struct PSI_table *table NNN, + enum PSI_table_io_operation op NNN, + uint index NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_table_io_wait_noop(PSI_table_locker* locker NNN, + ulonglong numrows NNN) +{ + return; +} + +static struct PSI_table_locker* +start_table_lock_wait_noop(struct PSI_table_locker_state *state NNN, + struct PSI_table *table NNN, + enum PSI_table_lock_operation op NNN, + ulong flags NNN, + const char *src_file NNN, uint src_line NNN) +{ + return NULL; +} + +static void end_table_lock_wait_noop(PSI_table_locker* locker NNN) +{ + return; +} + +static void start_file_open_wait_noop(PSI_file_locker *locker NNN, + const char *src_file NNN, + uint src_line NNN) +{ + return; +} + +static PSI_file* end_file_open_wait_noop(PSI_file_locker *locker NNN, + void *result NNN) +{ + return NULL; +} + +static void end_file_open_wait_and_bind_to_descriptor_noop + (PSI_file_locker *locker NNN, File file NNN) +{ + return; +} + +static void end_temp_file_open_wait_and_bind_to_descriptor_noop + (PSI_file_locker *locker NNN, File file NNN, const char *filaneme NNN) +{ + return; +} + +static void start_file_wait_noop(PSI_file_locker *locker NNN, + size_t count NNN, + const char *src_file NNN, + uint src_line NNN) +{ + return; +} + +static void end_file_wait_noop(PSI_file_locker *locker NNN, + size_t count NNN) +{ + return; +} + +static void start_file_close_wait_noop(PSI_file_locker *locker NNN, + const char *src_file NNN, + uint src_line NNN) +{ + return; +} + +static void end_file_close_wait_noop(PSI_file_locker *locker NNN, + int result NNN) +{ + return; +} + +static PSI_stage_progress* +start_stage_noop(PSI_stage_key key NNN, + const char *src_file NNN, int src_line NNN) +{ + return NULL; +} + +static PSI_stage_progress* +get_current_stage_progress_noop() +{ + return NULL; +} + +static void end_stage_noop(void) +{ + return; +} + +static PSI_statement_locker* +get_thread_statement_locker_noop(PSI_statement_locker_state *state NNN, + PSI_statement_key key NNN, + const void *charset NNN, + PSI_sp_share *sp_share NNN) +{ + return NULL; +} + +static PSI_statement_locker* +refine_statement_noop(PSI_statement_locker *locker NNN, + PSI_statement_key key NNN) +{ + return NULL; +} + +static void start_statement_noop(PSI_statement_locker *locker NNN, + const char *db NNN, uint db_len NNN, + const char *src_file NNN, uint src_line NNN) +{ + return; +} + +static void set_statement_text_noop(PSI_statement_locker *locker NNN, + const char *text NNN, uint text_len NNN) +{ + return; +} + +static void set_statement_lock_time_noop(PSI_statement_locker *locker NNN, + ulonglong count NNN) +{ + return; +} + +static void set_statement_rows_sent_noop(PSI_statement_locker *locker NNN, + ulonglong count NNN) +{ + return; +} + +static void set_statement_rows_examined_noop(PSI_statement_locker *locker NNN, + ulonglong count NNN) +{ + return; +} + +static void inc_statement_created_tmp_disk_tables_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_created_tmp_tables_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_select_full_join_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_select_full_range_join_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_select_range_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_select_range_check_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_select_scan_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_sort_merge_passes_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_sort_range_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_sort_rows_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_statement_sort_scan_noop(PSI_statement_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void set_statement_no_index_used_noop(PSI_statement_locker *locker NNN) +{ + return; +} + +static void set_statement_no_good_index_used_noop(PSI_statement_locker *locker NNN) +{ + return; +} + +static void end_statement_noop(PSI_statement_locker *locker NNN, + void *stmt_da NNN) +{ + return; +} + +static PSI_transaction_locker* +get_thread_transaction_locker_noop(PSI_transaction_locker_state *state NNN, + const void *xid NNN, + const ulonglong *trxid NNN, + int isolation_level NNN, + my_bool read_only NNN, + my_bool autocommit NNN) +{ + return NULL; +} + +static void start_transaction_noop(PSI_transaction_locker *locker NNN, + const char *src_file NNN, uint src_line NNN) +{ + return; +} + +static void set_transaction_xid_noop(PSI_transaction_locker *locker NNN, + const void *xid NNN, + int xa_state NNN) +{ + return; +} + +static void set_transaction_xa_state_noop(PSI_transaction_locker *locker NNN, + int xa_state NNN) +{ + return; +} + +static void set_transaction_gtid_noop(PSI_transaction_locker *locker NNN, + const void *sid NNN, + const void *gtid_spec NNN) +{ + return; +} + +static void set_transaction_trxid_noop(PSI_transaction_locker *locker NNN, + const ulonglong *trxid NNN) +{ + return; +} + +static void inc_transaction_savepoints_noop(PSI_transaction_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_transaction_rollback_to_savepoint_noop(PSI_transaction_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void inc_transaction_release_savepoint_noop(PSI_transaction_locker *locker NNN, + ulong count NNN) +{ + return; +} + +static void end_transaction_noop(PSI_transaction_locker *locker NNN, + my_bool commit NNN) +{ + return; +} + +static PSI_socket_locker* +start_socket_wait_noop(PSI_socket_locker_state *state NNN, + PSI_socket *socket NNN, + PSI_socket_operation op NNN, + size_t count NNN, + const char *src_file NNN, + uint src_line NNN) +{ + return NULL; +} + +static void end_socket_wait_noop(PSI_socket_locker *locker NNN, + size_t count NNN) +{ + return; +} + +static void set_socket_state_noop(PSI_socket *socket NNN, + enum PSI_socket_state state NNN) +{ + return; +} + +static void set_socket_info_noop(PSI_socket *socket NNN, + const my_socket *fd NNN, + const struct sockaddr *addr NNN, + socklen_t addr_len NNN) +{ + return; +} + +static void set_socket_thread_owner_noop(PSI_socket *socket NNN) +{ + return; +} + +static PSI_prepared_stmt* +create_prepare_stmt_noop(void *identity NNN, uint stmt_id NNN, + PSI_statement_locker *locker NNN, + const char *stmt_name NNN, size_t stmt_name_length NNN, + const char *name NNN, size_t length NNN) +{ + return NULL; +} + +static void +execute_prepare_stmt_noop(PSI_statement_locker *locker NNN, + PSI_prepared_stmt *prepared_stmt NNN) +{ + return; +} + +void +destroy_prepared_stmt_noop(PSI_prepared_stmt *prepared_stmt NNN) +{ + return; +} + +void +reprepare_prepared_stmt_noop(PSI_prepared_stmt *prepared_stmt NNN) +{ + return; +} + +static struct PSI_digest_locker* +digest_start_noop(PSI_statement_locker *locker NNN) +{ + return NULL; +} + +static void +digest_end_noop(PSI_digest_locker *locker NNN, + const struct sql_digest_storage *digest NNN) +{ + return; +} + +static int +set_thread_connect_attrs_noop(const char *buffer MY_ATTRIBUTE((unused)), + uint length MY_ATTRIBUTE((unused)), + const void *from_cs MY_ATTRIBUTE((unused))) +{ + return 0; +} + +static PSI_sp_locker* +pfs_start_sp_noop(PSI_sp_locker_state *state NNN, PSI_sp_share *sp_share NNN) +{ + return NULL; +} + +static void pfs_end_sp_noop(PSI_sp_locker *locker NNN) +{ + return; +} + +static void +pfs_drop_sp_noop(uint object_type NNN, + const char *schema_name NNN, uint schema_name_length NNN, + const char *object_name NNN, uint object_name_length NNN) +{ + return; +} + +static PSI_sp_share* +pfs_get_sp_share_noop(uint object_type NNN, + const char *schema_name NNN, uint schema_name_length NNN, + const char *object_name NNN, uint object_name_length NNN) +{ + return NULL; +} + +static void +pfs_release_sp_share_noop(PSI_sp_share *sp_share NNN) +{ + return; +} + +static void register_memory_noop(const char *category NNN, + PSI_memory_info *info NNN, + int count NNN) +{ + return; +} + +static PSI_memory_key memory_alloc_noop(PSI_memory_key key NNN, size_t size NNN, struct PSI_thread ** owner NNN) +{ + *owner= NULL; + return PSI_NOT_INSTRUMENTED; +} + +static PSI_memory_key memory_realloc_noop(PSI_memory_key key NNN, size_t old_size NNN, size_t new_size NNN, struct PSI_thread ** owner NNN) +{ + *owner= NULL; + return PSI_NOT_INSTRUMENTED; +} + +static PSI_memory_key memory_claim_noop(PSI_memory_key key NNN, size_t size NNN, struct PSI_thread ** owner) +{ + *owner= NULL; + return PSI_NOT_INSTRUMENTED; +} + +static void memory_free_noop(PSI_memory_key key NNN, size_t size NNN, struct PSI_thread * owner NNN) +{ + return; +} + +static void unlock_table_noop(PSI_table *table NNN) +{ + return; +} + +static PSI_metadata_lock * +create_metadata_lock_noop(void *identity NNN, + const MDL_key *mdl_key NNN, + opaque_mdl_type mdl_type NNN, + opaque_mdl_duration mdl_duration NNN, + opaque_mdl_status mdl_status NNN, + const char *src_file NNN, + uint src_line NNN) +{ + return NULL; +} + +static void +set_metadata_lock_status_noop(PSI_metadata_lock* lock NNN, + opaque_mdl_status mdl_status NNN) +{ +} + +static void +destroy_metadata_lock_noop(PSI_metadata_lock* lock NNN) +{ +} + +static PSI_metadata_locker * +start_metadata_wait_noop(PSI_metadata_locker_state *state NNN, + PSI_metadata_lock *mdl NNN, + const char *src_file NNN, + uint src_line NNN) +{ + return NULL; +} + +static void +end_metadata_wait_noop(PSI_metadata_locker *locker NNN, + int rc NNN) +{ +} + +static PSI PSI_noop= +{ + register_mutex_noop, + register_rwlock_noop, + register_cond_noop, + register_thread_noop, + register_file_noop, + register_stage_noop, + register_statement_noop, + register_socket_noop, + init_mutex_noop, + destroy_mutex_noop, + init_rwlock_noop, + destroy_rwlock_noop, + init_cond_noop, + destroy_cond_noop, + init_socket_noop, + destroy_socket_noop, + get_table_share_noop, + release_table_share_noop, + drop_table_share_noop, + open_table_noop, + unbind_table_noop, + rebind_table_noop, + close_table_noop, + create_file_noop, + spawn_thread_noop, + new_thread_noop, + set_thread_id_noop, + set_thread_THD_noop, + set_thread_os_id_noop, + get_thread_noop, + set_thread_user_noop, + set_thread_user_host_noop, + set_thread_db_noop, + set_thread_command_noop, + set_connection_type_noop, + set_thread_start_time_noop, + set_thread_state_noop, + set_thread_info_noop, + set_thread_noop, + delete_current_thread_noop, + delete_thread_noop, + get_thread_file_name_locker_noop, + get_thread_file_stream_locker_noop, + get_thread_file_descriptor_locker_noop, + unlock_mutex_noop, + unlock_rwlock_noop, + signal_cond_noop, + broadcast_cond_noop, + start_idle_wait_noop, + end_idle_wait_noop, + start_mutex_wait_noop, + end_mutex_wait_noop, + start_rwlock_rdwait_noop, + end_rwlock_rdwait_noop, + start_rwlock_wrwait_noop, + end_rwlock_wrwait_noop, + start_cond_wait_noop, + end_cond_wait_noop, + start_table_io_wait_noop, + end_table_io_wait_noop, + start_table_lock_wait_noop, + end_table_lock_wait_noop, + start_file_open_wait_noop, + end_file_open_wait_noop, + end_file_open_wait_and_bind_to_descriptor_noop, + end_temp_file_open_wait_and_bind_to_descriptor_noop, + start_file_wait_noop, + end_file_wait_noop, + start_file_close_wait_noop, + end_file_close_wait_noop, + start_stage_noop, + get_current_stage_progress_noop, + end_stage_noop, + get_thread_statement_locker_noop, + refine_statement_noop, + start_statement_noop, + set_statement_text_noop, + set_statement_lock_time_noop, + set_statement_rows_sent_noop, + set_statement_rows_examined_noop, + inc_statement_created_tmp_disk_tables_noop, + inc_statement_created_tmp_tables_noop, + inc_statement_select_full_join_noop, + inc_statement_select_full_range_join_noop, + inc_statement_select_range_noop, + inc_statement_select_range_check_noop, + inc_statement_select_scan_noop, + inc_statement_sort_merge_passes_noop, + inc_statement_sort_range_noop, + inc_statement_sort_rows_noop, + inc_statement_sort_scan_noop, + set_statement_no_index_used_noop, + set_statement_no_good_index_used_noop, + end_statement_noop, + get_thread_transaction_locker_noop, + start_transaction_noop, + set_transaction_xid_noop, + set_transaction_xa_state_noop, + set_transaction_gtid_noop, + set_transaction_trxid_noop, + inc_transaction_savepoints_noop, + inc_transaction_rollback_to_savepoint_noop, + inc_transaction_release_savepoint_noop, + end_transaction_noop, + start_socket_wait_noop, + end_socket_wait_noop, + set_socket_state_noop, + set_socket_info_noop, + set_socket_thread_owner_noop, + create_prepare_stmt_noop, + destroy_prepared_stmt_noop, + reprepare_prepared_stmt_noop, + execute_prepare_stmt_noop, + digest_start_noop, + digest_end_noop, + set_thread_connect_attrs_noop, + pfs_start_sp_noop, + pfs_end_sp_noop, + pfs_drop_sp_noop, + pfs_get_sp_share_noop, + pfs_release_sp_share_noop, + register_memory_noop, + memory_alloc_noop, + memory_realloc_noop, + memory_claim_noop, + memory_free_noop, + + unlock_table_noop, + create_metadata_lock_noop, + set_metadata_lock_status_noop, + destroy_metadata_lock_noop, + start_metadata_wait_noop, + end_metadata_wait_noop +}; + +/** + Hook for the instrumentation interface. + Code implementing the instrumentation interface should register here. +*/ +struct PSI_bootstrap *PSI_hook= NULL; + +/** + Instance of the instrumentation interface for the MySQL server. + @todo This is currently a global variable, which is handy when + compiling instrumented code that is bundled with the server. + When dynamic plugin are truly supported, this variable will need + to be replaced by a macro, so that each XYZ plugin can have it's own + xyz_psi_server variable, obtained from PSI_bootstrap::get_interface() + with the version used at compile time for plugin XYZ. +*/ + +PSI *PSI_server= & PSI_noop; + +void set_psi_server(PSI *psi) +{ + PSI_server= psi; +} + +C_MODE_END + diff --git a/mysql/mysys/ptr_cmp.c b/mysql/mysys/ptr_cmp.c new file mode 100644 index 0000000..9a06d33 --- /dev/null +++ b/mysql/mysys/ptr_cmp.c @@ -0,0 +1,55 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include + +void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos) +{ + switch (pack_length) { +#if SIZEOF_OFF_T > 4 + case 8: mi_int8store(buff,pos); break; + case 7: mi_int7store(buff,pos); break; + case 6: mi_int6store(buff,pos); break; + case 5: mi_int5store(buff,pos); break; +#endif + case 4: mi_int4store(buff,pos); break; + case 3: mi_int3store(buff,pos); break; + case 2: mi_int2store(buff,pos); break; + case 1: buff[0]= (uchar) pos; break; + default: DBUG_ASSERT(0); + } + return; +} + +my_off_t my_get_ptr(uchar *ptr, size_t pack_length) +{ + my_off_t pos; + switch (pack_length) { +#if SIZEOF_OFF_T > 4 + case 8: pos= (my_off_t) mi_uint8korr(ptr); break; + case 7: pos= (my_off_t) mi_uint7korr(ptr); break; + case 6: pos= (my_off_t) mi_uint6korr(ptr); break; + case 5: pos= (my_off_t) mi_uint5korr(ptr); break; +#endif + case 4: pos= (my_off_t) mi_uint4korr(ptr); break; + case 3: pos= (my_off_t) mi_uint3korr(ptr); break; + case 2: pos= (my_off_t) mi_uint2korr(ptr); break; + case 1: pos= (my_off_t) *(uchar*) ptr; break; + default: DBUG_ASSERT(0); return 0; + } + return pos; +} + diff --git a/mysql/mysys/queues.c b/mysql/mysys/queues.c new file mode 100644 index 0000000..a15b348 --- /dev/null +++ b/mysql/mysys/queues.c @@ -0,0 +1,622 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Code for handling of priority Queues. + Implemention of queues from "Algoritms in C" by Robert Sedgewick. + An optimisation of _downheap suggested in Exercise 7.51 in "Data + Structures & Algorithms in C++" by Mark Allen Weiss, Second Edition + was implemented by Mikael Ronstrom 2005. Also the O(N) algorithm + of queue_fix was implemented. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "mysys_err.h" +#include + +int resize_queue(QUEUE *queue, uint max_elements); + +/* + Init queue + + SYNOPSIS + init_queue() + queue Queue to initialise + max_elements Max elements that will be put in queue + offset_to_key Offset to key in element stored in queue + Used when sending pointers to compare function + max_at_top Set to 1 if you want biggest element on top. + compare Compare function for elements, takes 3 arguments. + first_cmp_arg First argument to compare function + + NOTES + Will allocate max_element pointers for queue array + + RETURN + 0 ok + 1 Could not allocate memory +*/ + +int init_queue(QUEUE *queue, uint max_elements, uint offset_to_key, + pbool max_at_top, int (*compare) (void *, uchar *, uchar *), + void *first_cmp_arg) +{ + DBUG_ENTER("init_queue"); + if ((queue->root= (uchar **) my_malloc(key_memory_QUEUE, + (max_elements+1)*sizeof(void*), + MYF(MY_WME))) == 0) + DBUG_RETURN(1); + queue->elements=0; + queue->compare=compare; + queue->first_cmp_arg=first_cmp_arg; + queue->max_elements=max_elements; + queue->offset_to_key=offset_to_key; + queue_set_max_at_top(queue, max_at_top); + DBUG_RETURN(0); +} + + + +/* + Init queue, uses init_queue internally for init work but also accepts + auto_extent as parameter + + SYNOPSIS + init_queue_ex() + queue Queue to initialise + max_elements Max elements that will be put in queue + offset_to_key Offset to key in element stored in queue + Used when sending pointers to compare function + max_at_top Set to 1 if you want biggest element on top. + compare Compare function for elements, takes 3 arguments. + first_cmp_arg First argument to compare function + auto_extent When the queue is full and there is insert operation + extend the queue. + + NOTES + Will allocate max_element pointers for queue array + + RETURN + 0 ok + 1 Could not allocate memory +*/ + +int init_queue_ex(QUEUE *queue, uint max_elements, uint offset_to_key, + pbool max_at_top, int (*compare) (void *, uchar *, uchar *), + void *first_cmp_arg, uint auto_extent) +{ + int ret; + DBUG_ENTER("init_queue_ex"); + + if ((ret= init_queue(queue, max_elements, offset_to_key, max_at_top, compare, + first_cmp_arg))) + DBUG_RETURN(ret); + + queue->auto_extent= auto_extent; + DBUG_RETURN(0); +} + +/* + Reinitialize queue for other usage + + SYNOPSIS + reinit_queue() + queue Queue to initialise + max_elements Max elements that will be put in queue + offset_to_key Offset to key in element stored in queue + Used when sending pointers to compare function + max_at_top Set to 1 if you want biggest element on top. + compare Compare function for elements, takes 3 arguments. + first_cmp_arg First argument to compare function + + NOTES + This will delete all elements from the queue. If you don't want this, + use resize_queue() instead. + + RETURN + 0 ok + EE_OUTOFMEMORY Wrong max_elements +*/ + +int reinit_queue(QUEUE *queue, uint max_elements, uint offset_to_key, + pbool max_at_top, int (*compare) (void *, uchar *, uchar *), + void *first_cmp_arg) +{ + DBUG_ENTER("reinit_queue"); + queue->elements=0; + queue->compare=compare; + queue->first_cmp_arg=first_cmp_arg; + queue->offset_to_key=offset_to_key; + queue_set_max_at_top(queue, max_at_top); + resize_queue(queue, max_elements); + DBUG_RETURN(0); +} + + +/* + Resize queue + + SYNOPSIS + resize_queue() + queue Queue + max_elements New max size for queue + + NOTES + If you resize queue to be less than the elements you have in it, + the extra elements will be deleted + + RETURN + 0 ok + 1 Error. In this case the queue is unchanged +*/ + +int resize_queue(QUEUE *queue, uint max_elements) +{ + uchar **new_root; + DBUG_ENTER("resize_queue"); + if (queue->max_elements == max_elements) + DBUG_RETURN(0); + if ((new_root= (uchar **) my_realloc(key_memory_QUEUE, + (void *)queue->root, + (max_elements+1)*sizeof(void*), + MYF(MY_WME))) == 0) + DBUG_RETURN(1); + set_if_smaller(queue->elements, max_elements); + queue->max_elements= max_elements; + queue->root= new_root; + DBUG_RETURN(0); +} + + +/* + Delete queue + + SYNOPSIS + delete_queue() + queue Queue to delete + + IMPLEMENTATION + Just free allocated memory. + + NOTES + Can be called safely multiple times +*/ + +void delete_queue(QUEUE *queue) +{ + DBUG_ENTER("delete_queue"); + my_free(queue->root); + queue->root= NULL; + DBUG_VOID_RETURN; +} + + + /* Code for insert, search and delete of elements */ + +void queue_insert(QUEUE *queue, uchar *element) +{ + uint idx, next; + DBUG_ASSERT(queue->elements < queue->max_elements); + queue->root[0]= element; + idx= ++queue->elements; + /* max_at_top swaps the comparison if we want to order by desc */ + while ((queue->compare(queue->first_cmp_arg, + element + queue->offset_to_key, + queue->root[(next= idx >> 1)] + + queue->offset_to_key) * queue->max_at_top) < 0) + { + queue->root[idx]= queue->root[next]; + idx= next; + } + queue->root[idx]= element; +} + + /* Remove item from queue */ + /* Returns pointer to removed element */ + +uchar *queue_remove(QUEUE *queue, uint idx) +{ + uchar *element; + DBUG_ASSERT(idx < queue->max_elements); + element= queue->root[++idx]; /* Intern index starts from 1 */ + queue->root[idx]= queue->root[queue->elements--]; + _downheap(queue, idx); + return element; +} + + +void _downheap(QUEUE *queue, uint idx) +{ + uchar *element; + uint elements,half_queue,offset_to_key, next_index; + my_bool first= TRUE; + uint start_idx= idx; + + offset_to_key=queue->offset_to_key; + element=queue->root[idx]; + half_queue=(elements=queue->elements) >> 1; + + while (idx <= half_queue) + { + next_index=idx+idx; + if (next_index < elements && + (queue->compare(queue->first_cmp_arg, + queue->root[next_index]+offset_to_key, + queue->root[next_index+1]+offset_to_key) * + queue->max_at_top) > 0) + next_index++; + if (first && + (((queue->compare(queue->first_cmp_arg, + queue->root[next_index]+offset_to_key, + element+offset_to_key) * queue->max_at_top) >= 0))) + { + queue->root[idx]= element; + return; + } + queue->root[idx]=queue->root[next_index]; + idx=next_index; + first= FALSE; + } + + next_index= idx >> 1; + while (next_index > start_idx) + { + if ((queue->compare(queue->first_cmp_arg, + queue->root[next_index]+offset_to_key, + element+offset_to_key) * + queue->max_at_top) < 0) + break; + queue->root[idx]=queue->root[next_index]; + idx=next_index; + next_index= idx >> 1; + } + queue->root[idx]=element; +} + +/* + Fix heap when every element was changed. +*/ + +void queue_fix(QUEUE *queue) +{ + uint i; + for (i= queue->elements >> 1; i > 0; i--) + _downheap(queue, i); +} + +#ifdef MAIN + /* + A test program for the priority queue implementation. + It can also be used to benchmark changes of the implementation + Build by doing the following in the directory mysys + make queues + ./queues + + Written by Mikael Ronström, 2005 + */ + +static uint num_array[1025]; +static uint tot_no_parts= 0; +static uint tot_no_loops= 0; +static uint expected_part= 0; +static uint expected_num= 0; +static my_bool max_ind= 0; +static my_bool fix_used= 0; +static ulonglong start_time= 0; + +static my_bool is_divisible_by(uint num, uint divisor) +{ + uint quotient= num / divisor; + if (quotient * divisor == num) + return TRUE; + return FALSE; +} + +void calculate_next() +{ + uint part= expected_part, num= expected_num; + uint no_parts= tot_no_parts; + if (max_ind) + { + do + { + while (++part <= no_parts) + { + if (is_divisible_by(num, part) && + (num <= ((1 << 21) + part))) + { + expected_part= part; + expected_num= num; + return; + } + } + part= 0; + } while (--num); + } + else + { + do + { + while (--part > 0) + { + if (is_divisible_by(num, part)) + { + expected_part= part; + expected_num= num; + return; + } + } + part= no_parts + 1; + } while (++num); + } +} + +void calculate_end_next(uint part) +{ + uint no_parts= tot_no_parts, num; + num_array[part]= 0; + if (max_ind) + { + expected_num= 0; + for (part= no_parts; part > 0 ; part--) + { + if (num_array[part]) + { + num= num_array[part] & 0x3FFFFF; + if (num >= expected_num) + { + expected_num= num; + expected_part= part; + } + } + } + if (expected_num == 0) + expected_part= 0; + } + else + { + expected_num= 0xFFFFFFFF; + for (part= 1; part <= no_parts; part++) + { + if (num_array[part]) + { + num= num_array[part] & 0x3FFFFF; + if (num <= expected_num) + { + expected_num= num; + expected_part= part; + } + } + } + if (expected_num == 0xFFFFFFFF) + expected_part= 0; + } + return; +} +static int test_compare(void *null_arg, uchar *a, uchar *b) +{ + uint a_num= (*(uint*)a) & 0x3FFFFF; + uint b_num= (*(uint*)b) & 0x3FFFFF; + uint a_part, b_part; + (void) null_arg; + if (a_num > b_num) + return +1; + if (a_num < b_num) + return -1; + a_part= (*(uint*)a) >> 22; + b_part= (*(uint*)b) >> 22; + if (a_part < b_part) + return +1; + if (a_part > b_part) + return -1; + return 0; +} + +my_bool check_num(uint num_part) +{ + uint part= num_part >> 22; + uint num= num_part & 0x3FFFFF; + if (part == expected_part) + if (num == expected_num) + return FALSE; + printf("Expect part %u Expect num 0x%x got part %u num 0x%x max_ind %u fix_used %u \n", + expected_part, expected_num, part, num, max_ind, fix_used); + return TRUE; +} + + +void perform_insert(QUEUE *queue) +{ + uint i= 1, no_parts= tot_no_parts; + uint backward_start= 0; + + expected_part= 1; + expected_num= 1; + + if (max_ind) + backward_start= 1 << 21; + + do + { + uint num= (i + backward_start); + if (max_ind) + { + while (!is_divisible_by(num, i)) + num--; + if (max_ind && (num > expected_num || + (num == expected_num && i < expected_part))) + { + expected_num= num; + expected_part= i; + } + } + num_array[i]= num + (i << 22); + if (fix_used) + queue_element(queue, i-1)= (uchar*)&num_array[i]; + else + queue_insert(queue, (uchar*)&num_array[i]); + } while (++i <= no_parts); + if (fix_used) + { + queue->elements= no_parts; + queue_fix(queue); + } +} + +my_bool perform_ins_del(QUEUE *queue, my_bool max_ind) +{ + uint i= 0, no_loops= tot_no_loops, j= tot_no_parts; + do + { + uint num_part= *(uint*)queue_top(queue); + uint part= num_part >> 22; + if (check_num(num_part)) + return TRUE; + if (j++ >= no_loops) + { + calculate_end_next(part); + queue_remove(queue, (uint) 0); + } + else + { + calculate_next(); + if (max_ind) + num_array[part]-= part; + else + num_array[part]+= part; + queue_top(queue)= (uchar*)&num_array[part]; + queue_replaced(queue); + } + } while (++i < no_loops); + return FALSE; +} + +my_bool do_test(uint no_parts, uint l_max_ind, my_bool l_fix_used) +{ + QUEUE queue; + my_bool result; + max_ind= l_max_ind; + fix_used= l_fix_used; + init_queue(&queue, no_parts, 0, max_ind, test_compare, NULL); + tot_no_parts= no_parts; + tot_no_loops= 1024; + perform_insert(&queue); + result= perform_ins_del(&queue, max_ind); + if (result) + { + printf("Error\n"); + delete_queue(&queue); + return TRUE; + } + delete_queue(&queue); + return FALSE; +} + +static void start_measurement() +{ + start_time= my_getsystime(); +} + +static void stop_measurement() +{ + ulonglong stop_time= my_getsystime(); + uint time_in_micros; + stop_time-= start_time; + stop_time/= 10; /* Convert to microseconds */ + time_in_micros= (uint)stop_time; + printf("Time expired is %u microseconds \n", time_in_micros); +} + +static void benchmark_test() +{ + QUEUE queue_real; + QUEUE *queue= &queue_real; + uint i, add; + fix_used= TRUE; + max_ind= FALSE; + tot_no_parts= 1024; + init_queue(queue, tot_no_parts, 0, max_ind, test_compare, NULL); + /* + First benchmark whether queue_fix is faster than using queue_insert + for sizes of 16 partitions. + */ + for (tot_no_parts= 2, add=2; tot_no_parts < 128; + tot_no_parts+= add, add++) + { + printf("Start benchmark queue_fix, tot_no_parts= %u \n", tot_no_parts); + start_measurement(); + for (i= 0; i < 128; i++) + { + perform_insert(queue); + queue_remove_all(queue); + } + stop_measurement(); + + fix_used= FALSE; + printf("Start benchmark queue_insert\n"); + start_measurement(); + for (i= 0; i < 128; i++) + { + perform_insert(queue); + queue_remove_all(queue); + } + stop_measurement(); + } + /* + Now benchmark insertion and deletion of 16400 elements. + Used in consecutive runs this shows whether the optimised _downheap + is faster than the standard implementation. + */ + printf("Start benchmarking _downheap \n"); + start_measurement(); + perform_insert(queue); + for (i= 0; i < 65536; i++) + { + uint num, part; + num= *(uint*)queue_top(queue); + num+= 16; + part= num >> 22; + num_array[part]= num; + queue_top(queue)= (uchar*)&num_array[part]; + queue_replaced(queue); + } + for (i= 0; i < 16; i++) + queue_remove(queue, (uint) 0); + queue_remove_all(queue); + stop_measurement(); + delete_queue(queue); +} + +int main() +{ + int i, add= 1; + for (i= 1; i < 1024; i+=add, add++) + { + printf("Start test for priority queue of size %u\n", i); + if (do_test(i, 0, 1)) + return -1; + if (do_test(i, 1, 1)) + return -1; + if (do_test(i, 0, 0)) + return -1; + if (do_test(i, 1, 0)) + return -1; + } + benchmark_test(); + printf("OK\n"); + return 0; +} +#endif diff --git a/mysql/mysys/sql_chars.c b/mysql/mysys/sql_chars.c new file mode 100644 index 0000000..071b0dd --- /dev/null +++ b/mysql/mysys/sql_chars.c @@ -0,0 +1,120 @@ +/* + Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "sql_chars.h" +#include "m_ctype.h" +#include "my_sys.h" + +static +void hint_lex_init_maps(charset_info_st *cs, + enum hint_lex_char_classes *hint_map) +{ + size_t i; + for (i= 0; i < 256 ; i++) + { + if (my_ismb1st(cs, i)) + hint_map[i]= HINT_CHR_MB; + else if (my_isalpha(cs, i)) + hint_map[i]= HINT_CHR_IDENT; + else if (my_isdigit(cs, i)) + hint_map[i]= HINT_CHR_DIGIT; + else if (my_isspace(cs, i)) + { + DBUG_ASSERT(!my_ismb1st(cs, i)); + hint_map[i]= HINT_CHR_SPACE; + } + else + hint_map[i]= HINT_CHR_CHAR; + } + hint_map[(uchar) '*']= HINT_CHR_ASTERISK; + hint_map[(uchar) '@']= HINT_CHR_AT; + hint_map[(uchar) '`']= HINT_CHR_BACKQUOTE; + hint_map[(uchar) '"']= HINT_CHR_DOUBLEQUOTE; + hint_map[(uchar) '_']= HINT_CHR_IDENT; + hint_map[(uchar) '$']= HINT_CHR_IDENT; + hint_map[(uchar) '/']= HINT_CHR_SLASH; + hint_map[(uchar) '\n']= HINT_CHR_NL; +} + + +my_bool init_state_maps(charset_info_st *cs) +{ + uint i; + uchar *ident_map; + enum my_lex_states *state_map= NULL; + + lex_state_maps_st *lex_state_maps= + (lex_state_maps_st *) my_once_alloc(sizeof(lex_state_maps_st), MYF(MY_WME)); + + if (lex_state_maps == NULL) + return TRUE; // OOM + + cs->state_maps= lex_state_maps; + state_map= lex_state_maps->main_map; + + if (!(cs->ident_map= ident_map= (uchar*) my_once_alloc(256, MYF(MY_WME)))) + return TRUE; // OOM + + hint_lex_init_maps(cs, lex_state_maps->hint_map); + + /* Fill state_map with states to get a faster parser */ + for (i=0; i < 256 ; i++) + { + if (my_isalpha(cs,i)) + state_map[i]= MY_LEX_IDENT; + else if (my_isdigit(cs,i)) + state_map[i]= MY_LEX_NUMBER_IDENT; + else if (my_ismb1st(cs, i)) + /* To get whether it's a possible leading byte for a charset. */ + state_map[i]= MY_LEX_IDENT; + else if (my_isspace(cs,i)) + state_map[i]= MY_LEX_SKIP; + else + state_map[i]= MY_LEX_CHAR; + } + state_map[(uchar)'_']=state_map[(uchar)'$']= MY_LEX_IDENT; + state_map[(uchar)'\'']= MY_LEX_STRING; + state_map[(uchar)'.']= MY_LEX_REAL_OR_POINT; + state_map[(uchar)'>']=state_map[(uchar)'=']=state_map[(uchar)'!']= MY_LEX_CMP_OP; + state_map[(uchar)'<']= MY_LEX_LONG_CMP_OP; + state_map[(uchar)'&']=state_map[(uchar)'|']= MY_LEX_BOOL; + state_map[(uchar)'#']= MY_LEX_COMMENT; + state_map[(uchar)';']= MY_LEX_SEMICOLON; + state_map[(uchar)':']= MY_LEX_SET_VAR; + state_map[0]= MY_LEX_EOL; + state_map[(uchar)'\\']= MY_LEX_ESCAPE; + state_map[(uchar)'/']= MY_LEX_LONG_COMMENT; + state_map[(uchar)'*']= MY_LEX_END_LONG_COMMENT; + state_map[(uchar)'@']= MY_LEX_USER_END; + state_map[(uchar) '`']= MY_LEX_USER_VARIABLE_DELIMITER; + state_map[(uchar)'"']= MY_LEX_STRING_OR_DELIMITER; + + /* + Create a second map to make it faster to find identifiers + */ + for (i=0; i < 256 ; i++) + { + ident_map[i]= (uchar) (state_map[i] == MY_LEX_IDENT || + state_map[i] == MY_LEX_NUMBER_IDENT); + } + + /* Special handling of hex and binary strings */ + state_map[(uchar)'x']= state_map[(uchar)'X']= MY_LEX_IDENT_OR_HEX; + state_map[(uchar)'b']= state_map[(uchar)'B']= MY_LEX_IDENT_OR_BIN; + state_map[(uchar)'n']= state_map[(uchar)'N']= MY_LEX_IDENT_OR_NCHAR; + + return FALSE; +} diff --git a/mysql/mysys/stacktrace.c b/mysql/mysys/stacktrace.c new file mode 100644 index 0000000..f4fe6c8 --- /dev/null +++ b/mysql/mysys/stacktrace.c @@ -0,0 +1,802 @@ +/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "my_stacktrace.h" + +#ifndef _WIN32 +#include "my_thread.h" +#include "m_string.h" +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#ifdef HAVE_STACKTRACE + +#ifdef __linux__ +#include /* isprint */ +#include /* SYS_gettid */ +#endif + +#if HAVE_EXECINFO_H +#include +#endif + +#ifdef __linux__ +/* __bss_start doesn't seem to work on FreeBSD and doesn't exist on OSX/Solaris. */ +#define PTR_SANE(p) ((p) && (char*)(p) >= heap_start && (char*)(p) <= heap_end) +static char *heap_start; +extern char *__bss_start; +#else +#define PTR_SANE(p) (p) +#endif /* __linux */ + +void my_init_stacktrace() +{ +#ifdef __linux__ + heap_start = (char*) &__bss_start; +#endif /* __linux__ */ +} + +#ifdef __linux__ + +static void print_buffer(char *buffer, size_t count) +{ + const char s[]= " "; + for (; count && *buffer; --count) + { + my_write_stderr(isprint(*buffer) ? buffer : s, 1); + ++buffer; + } +} + +/** + Access the pages of this process through /proc/self/task//mem + in order to safely print the contents of a memory address range. + + @param addr The address at the start of the memory region. + @param max_len The length of the memory region. + + @return Zero on success. +*/ +static int safe_print_str(const char *addr, int max_len) +{ + int fd; + pid_t tid; + off_t offset; + ssize_t nbytes= 0; + size_t total, count; + char buf[256]; + + tid= (pid_t) syscall(SYS_gettid); + + sprintf(buf, "/proc/self/task/%d/mem", tid); + + if ((fd= open(buf, O_RDONLY)) < 0) + return -1; + + /* Ensure that off_t can hold a pointer. */ + compile_time_assert(sizeof(off_t) >= sizeof(intptr)); + + total= max_len; + offset= (intptr) addr; + + /* Read up to the maximum number of bytes. */ + while (total) + { + count= MY_MIN(sizeof(buf), total); + + if ((nbytes= pread(fd, buf, count, offset)) < 0) + { + /* Just in case... */ + if (errno == EINTR) + continue; + else + break; + } + + /* Advance offset into memory. */ + total-= nbytes; + offset+= nbytes; + addr+= nbytes; + + /* Output the printable characters. */ + print_buffer(buf, nbytes); + + /* Break if less than requested... */ + if ((count - nbytes)) + break; + } + + /* Output a new line if something was printed. */ + if (total != (size_t) max_len) + my_safe_printf_stderr("%s", "\n"); + + if (nbytes == -1) + my_safe_printf_stderr("Can't read from address %p\n", addr); + + close(fd); + + return 0; +} + +#endif /* __linux __ */ + +void my_safe_puts_stderr(const char* val, size_t max_len) +{ +#ifdef __linux__ +/* Only needed by the linux version of PTR_SANE */ + char *heap_end; + + if (!safe_print_str(val, max_len)) + return; + + heap_end= (char*) sbrk(0); +#endif + + if (!PTR_SANE(val)) + { + my_safe_printf_stderr("%s", "is an invalid pointer\n"); + return; + } + + for (; max_len && PTR_SANE(val) && *val; --max_len) + my_write_stderr((val++), 1); + my_safe_printf_stderr("%s", "\n"); +} + +#if defined(HAVE_PRINTSTACK) + +/* Use Solaris' symbolic stack trace routine. */ +#include + +void my_print_stacktrace(uchar* stack_bottom MY_ATTRIBUTE((unused)), + ulong thread_stack MY_ATTRIBUTE((unused))) +{ + if (printstack(fileno(stderr)) == -1) + my_safe_printf_stderr("%s", + "Error when traversing the stack, stack appears corrupt.\n"); + else + my_safe_printf_stderr("Please read " + "http://dev.mysql.com/doc/refman/%u.%u/en/resolve-stack-dump.html\n" + "and follow instructions on how to resolve the stack trace.\n" + "Resolved stack trace is much more helpful in diagnosing the\n" + "problem, so please do resolve it\n", + MYSQL_VERSION_MAJOR, MYSQL_VERSION_MINOR); +} + +#elif HAVE_BACKTRACE + +#if HAVE_ABI_CXA_DEMANGLE + +char MY_ATTRIBUTE ((weak)) * +my_demangle(const char *mangled_name MY_ATTRIBUTE((unused)), + int *status MY_ATTRIBUTE((unused))) +{ + return NULL; +} + +static void my_demangle_symbols(char **addrs, int n) +{ + int status, i; + char *begin, *end, *demangled; + + for (i= 0; i < n; i++) + { + demangled= NULL; + begin= strchr(addrs[i], '('); + end= begin ? strchr(begin, '+') : NULL; + + if (begin && end) + { + *begin++= *end++= '\0'; + demangled= my_demangle(begin, &status); + if (!demangled || status) + { + demangled= NULL; + begin[-1]= '('; + end[-1]= '+'; + } + } + + if (demangled) + my_safe_printf_stderr("%s(%s+%s\n", addrs[i], demangled, end); + else + my_safe_printf_stderr("%s\n", addrs[i]); + } +} + +#endif /* HAVE_ABI_CXA_DEMANGLE */ + +void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack) +{ + void *addrs[128]; + char **strings= NULL; + int n = backtrace(addrs, array_elements(addrs)); + my_safe_printf_stderr("stack_bottom = %p thread_stack 0x%lx\n", + stack_bottom, thread_stack); +#if HAVE_ABI_CXA_DEMANGLE + if ((strings= backtrace_symbols(addrs, n))) + { + my_demangle_symbols(strings, n); + free(strings); + } +#endif + if (!strings) + { + backtrace_symbols_fd(addrs, n, fileno(stderr)); + } +} + +#endif /* HAVE_PRINTSTACK || HAVE_BACKTRACE */ +#endif /* HAVE_STACKTRACE */ + +/* Produce a core for the thread */ +void my_write_core(int sig) +{ + signal(sig, SIG_DFL); + pthread_kill(my_thread_self(), sig); +#if defined(P_MYID) + /* On Solaris, the above kill is not enough */ + sigsend(P_PID,P_MYID,sig); +#endif +} + +#else /* _WIN32*/ + +#include +#include +#if _MSC_VER +#pragma comment(lib, "dbghelp") +#endif + +static EXCEPTION_POINTERS *exception_ptrs; + +#define MODULE64_SIZE_WINXP 576 +#define STACKWALK_MAX_FRAMES 64 + +void my_init_stacktrace() +{ +} + + +void my_set_exception_pointers(EXCEPTION_POINTERS *ep) +{ + exception_ptrs = ep; +} + +/* + Appends directory to symbol path. +*/ +static void add_to_symbol_path(char *path, size_t path_buffer_size, + char *dir, size_t dir_buffer_size) +{ + strcat_s(dir, dir_buffer_size, ";"); + if (!strstr(path, dir)) + { + strcat_s(path, path_buffer_size, dir); + } +} + +/* + Get symbol path - semicolon-separated list of directories to search for debug + symbols. We expect PDB in the same directory as corresponding exe or dll, + so the path is build from directories of the loaded modules. If environment + variable _NT_SYMBOL_PATH is set, it's value appended to the symbol search path +*/ +static void get_symbol_path(char *path, size_t size) +{ + HANDLE hSnap; + char *envvar; + char *p; +#ifndef DBUG_OFF + static char pdb_debug_dir[MAX_PATH + 7]; +#endif + + path[0]= '\0'; + +#ifndef DBUG_OFF + /* + Add "debug" subdirectory of the application directory, sometimes PDB will + placed here by installation. + */ + GetModuleFileName(NULL, pdb_debug_dir, MAX_PATH); + p= strrchr(pdb_debug_dir, '\\'); + if(p) + { + *p= 0; + strcat_s(pdb_debug_dir, sizeof(pdb_debug_dir), "\\debug;"); + add_to_symbol_path(path, size, pdb_debug_dir, sizeof(pdb_debug_dir)); + } +#endif + + /* + Enumerate all modules, and add their directories to the path. + Avoid duplicate entries. + */ + hSnap= CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId()); + if (hSnap != INVALID_HANDLE_VALUE) + { + BOOL ret; + MODULEENTRY32 mod; + mod.dwSize= sizeof(MODULEENTRY32); + for (ret= Module32First(hSnap, &mod); ret; ret= Module32Next(hSnap, &mod)) + { + char *module_dir= mod.szExePath; + p= strrchr(module_dir,'\\'); + if (!p) + { + /* + Path separator was not found. Not known to happen, if ever happens, + will indicate current directory. + */ + module_dir[0]= '.'; + module_dir[1]= '\0'; + } + else + { + *p= '\0'; + } + add_to_symbol_path(path, size, module_dir,sizeof(mod.szExePath)); + } + CloseHandle(hSnap); + } + + + /* Add _NT_SYMBOL_PATH, if present. */ + envvar= getenv("_NT_SYMBOL_PATH"); + if(envvar) + { + strcat_s(path, size, envvar); + } +} + +#define MAX_SYMBOL_PATH 32768 + +/* Platform SDK in VS2003 does not have definition for SYMOPT_NO_PROMPTS*/ +#ifndef SYMOPT_NO_PROMPTS +#define SYMOPT_NO_PROMPTS 0 +#endif + +void my_print_stacktrace(uchar* unused1, ulong unused2) +{ + HANDLE hProcess= GetCurrentProcess(); + HANDLE hThread= GetCurrentThread(); + static IMAGEHLP_MODULE64 module= {sizeof(module)}; + static IMAGEHLP_SYMBOL64_PACKAGE package; + DWORD64 addr; + DWORD machine; + int i; + CONTEXT context; + STACKFRAME64 frame={0}; + static char symbol_path[MAX_SYMBOL_PATH]; + + if(!exception_ptrs) + return; + + /* Copy context, as stackwalking on original will unwind the stack */ + context = *(exception_ptrs->ContextRecord); + /*Initialize symbols.*/ + SymSetOptions(SYMOPT_LOAD_LINES|SYMOPT_NO_PROMPTS|SYMOPT_DEFERRED_LOADS|SYMOPT_DEBUG); + get_symbol_path(symbol_path, sizeof(symbol_path)); + SymInitialize(hProcess, symbol_path, TRUE); + + /*Prepare stackframe for the first StackWalk64 call*/ + frame.AddrFrame.Mode= frame.AddrPC.Mode= frame.AddrStack.Mode= AddrModeFlat; +#if (defined _M_IX86) + machine= IMAGE_FILE_MACHINE_I386; + frame.AddrFrame.Offset= context.Ebp; + frame.AddrPC.Offset= context.Eip; + frame.AddrStack.Offset= context.Esp; +#elif (defined _M_X64) + machine = IMAGE_FILE_MACHINE_AMD64; + frame.AddrFrame.Offset= context.Rbp; + frame.AddrPC.Offset= context.Rip; + frame.AddrStack.Offset= context.Rsp; +#else + /*There is currently no need to support IA64*/ +#pragma error ("unsupported architecture") +#endif + + package.sym.SizeOfStruct= sizeof(package.sym); + package.sym.MaxNameLength= sizeof(package.name); + + /*Walk the stack, output useful information*/ + for(i= 0; i< STACKWALK_MAX_FRAMES;i++) + { + DWORD64 function_offset= 0; + DWORD line_offset= 0; + IMAGEHLP_LINE64 line= {sizeof(line)}; + BOOL have_module= FALSE; + BOOL have_symbol= FALSE; + BOOL have_source= FALSE; + + if(!StackWalk64(machine, hProcess, hThread, &frame, &context, 0, 0, 0 ,0)) + break; + addr= frame.AddrPC.Offset; + + have_module= SymGetModuleInfo64(hProcess,addr,&module); +#ifdef _M_IX86 + if(!have_module) + { + /* + ModuleInfo structure has been "compatibly" extended in releases after XP, + and its size was increased. To make XP dbghelp.dll function + happy, pretend passing the old structure. + */ + module.SizeOfStruct= MODULE64_SIZE_WINXP; + have_module= SymGetModuleInfo64(hProcess, addr, &module); + } +#endif + + have_symbol= SymGetSymFromAddr64(hProcess, addr, &function_offset, + &(package.sym)); + have_source= SymGetLineFromAddr64(hProcess, addr, &line_offset, &line); + + my_safe_printf_stderr("%p ", addr); + if(have_module) + { + char *base_image_name= strrchr(module.ImageName, '\\'); + if(base_image_name) + base_image_name++; + else + base_image_name= module.ImageName; + my_safe_printf_stderr("%s!", base_image_name); + } + if(have_symbol) + my_safe_printf_stderr("%s()", package.sym.Name); + + else if(have_module) + my_safe_printf_stderr("%s", "???"); + + if(have_source) + { + char *base_file_name= strrchr(line.FileName, '\\'); + if(base_file_name) + base_file_name++; + else + base_file_name= line.FileName; + my_safe_printf_stderr("[%s:%u]", + base_file_name, line.LineNumber); + } + my_safe_printf_stderr("%s", "\n"); + } +} + + +/* + Write dump. The dump is created in current directory, + file name is constructed from executable name plus + ".dmp" extension +*/ +void my_write_core(int unused) +{ + char path[MAX_PATH]; + char dump_fname[MAX_PATH]= "core.dmp"; + + if(!exception_ptrs) + return; + + if(GetModuleFileName(NULL, path, sizeof(path))) + { + _splitpath(path, NULL, NULL,dump_fname,NULL); + strncat(dump_fname, ".dmp", sizeof(dump_fname)); + } + my_create_minidump(dump_fname, 0, 0); +} + + +/** Create a minidump. + @param name path of minidump file. + @param process HANDLE to process. (0 for own process). + @param pid Process id. +*/ + +void my_create_minidump(const char *name, HANDLE process, DWORD pid) +{ + char path[MAX_PATH]; + MINIDUMP_EXCEPTION_INFORMATION info; + HANDLE hFile; + + if (process == 0) + { + /* Does not need to CloseHandle() for the below. */ + process= GetCurrentProcess(); + pid= GetCurrentProcessId(); + info.ExceptionPointers= exception_ptrs; + info.ClientPointers= FALSE; + info.ThreadId= GetCurrentThreadId(); + } + + hFile= CreateFile(name, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL, 0); + if(hFile) + { + MINIDUMP_TYPE mdt= (MINIDUMP_TYPE) (MiniDumpNormal | + MiniDumpWithThreadInfo | + MiniDumpWithProcessThreadData); + /* Create minidump, use info only if same process. */ + if(MiniDumpWriteDump(process, pid, hFile, mdt, + process ? NULL : &info, 0, 0)) + { + my_safe_printf_stderr("Minidump written to %s\n", + _fullpath(path, name, sizeof(path)) ? + path : name); + } + else + { + my_safe_printf_stderr("MiniDumpWriteDump() failed, last error %d\n", + GetLastError()); + } + CloseHandle(hFile); + } + else + { + my_safe_printf_stderr("CreateFile(%s) failed, last error %d\n", + name, GetLastError()); + } +} + + +void my_safe_puts_stderr(const char *val, size_t len) +{ + __try + { + my_write_stderr(val, len); + my_safe_printf_stderr("%s", "\n"); + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + my_safe_printf_stderr("%s", "is an invalid string pointer\n"); + } +} +#endif /* _WIN32 */ + + +#ifdef _WIN32 +size_t my_write_stderr(const void *buf, size_t count) +{ + DWORD bytes_written; + SetFilePointer(GetStdHandle(STD_ERROR_HANDLE), 0, NULL, FILE_END); + WriteFile(GetStdHandle(STD_ERROR_HANDLE), buf, (DWORD)count, &bytes_written, NULL); + return bytes_written; +} +#else +size_t my_write_stderr(const void *buf, size_t count) +{ + return (size_t) write(STDERR_FILENO, buf, count); +} +#endif + + +static const char digits[]= "0123456789abcdef"; + +char *my_safe_utoa(int base, ulonglong val, char *buf) +{ + *buf--= 0; + do { + *buf--= digits[val % base]; + } while ((val /= base) != 0); + return buf + 1; +} + + +char *my_safe_itoa(int base, longlong val, char *buf) +{ + char *orig_buf= buf; + const my_bool is_neg= (val < 0); + *buf--= 0; + + if (is_neg) + val= -val; + if (is_neg && base == 16) + { + int ix; + val-= 1; + for (ix= 0; ix < 16; ++ix) + buf[-ix]= '0'; + } + + do { + *buf--= digits[val % base]; + } while ((val /= base) != 0); + + if (is_neg && base == 10) + *buf--= '-'; + + if (is_neg && base == 16) + { + int ix; + buf= orig_buf - 1; + for (ix= 0; ix < 16; ++ix, --buf) + { + switch (*buf) + { + case '0': *buf= 'f'; break; + case '1': *buf= 'e'; break; + case '2': *buf= 'd'; break; + case '3': *buf= 'c'; break; + case '4': *buf= 'b'; break; + case '5': *buf= 'a'; break; + case '6': *buf= '9'; break; + case '7': *buf= '8'; break; + case '8': *buf= '7'; break; + case '9': *buf= '6'; break; + case 'a': *buf= '5'; break; + case 'b': *buf= '4'; break; + case 'c': *buf= '3'; break; + case 'd': *buf= '2'; break; + case 'e': *buf= '1'; break; + case 'f': *buf= '0'; break; + } + } + } + return buf+1; +} + + +static const char *check_longlong(const char *fmt, my_bool *have_longlong) +{ + *have_longlong= FALSE; + if (*fmt == 'l') + { + fmt++; + if (*fmt != 'l') + *have_longlong= (sizeof(long) == sizeof(longlong)); + else + { + fmt++; + *have_longlong= TRUE; + } + } + return fmt; +} + +static size_t my_safe_vsnprintf(char *to, size_t size, + const char* format, va_list ap) +{ + char *start= to; + char *end= start + size - 1; + for (; *format; ++format) + { + my_bool have_longlong = FALSE; + if (*format != '%') + { + if (to == end) /* end of buffer */ + break; + *to++= *format; /* copy ordinary char */ + continue; + } + ++format; /* skip '%' */ + + format= check_longlong(format, &have_longlong); + + switch (*format) + { + case 'd': + case 'i': + case 'u': + case 'x': + case 'p': + { + longlong ival= 0; + ulonglong uval = 0; + if (*format == 'p') + have_longlong= (sizeof(void *) == sizeof(longlong)); + if (have_longlong) + { + if (*format == 'u') + uval= va_arg(ap, ulonglong); + else + ival= va_arg(ap, longlong); + } + else + { + if (*format == 'u') + uval= va_arg(ap, unsigned int); + else + ival= va_arg(ap, int); + } + + { + char buff[22]; + const int base= (*format == 'x' || *format == 'p') ? 16 : 10; + char *val_as_str= (*format == 'u') ? + my_safe_utoa(base, uval, &buff[sizeof(buff)-1]) : + my_safe_itoa(base, ival, &buff[sizeof(buff)-1]); + + /* + Strip off "ffffffff" if we have 'x' format without 'll' + Similarly for 'p' format on 32bit systems. + */ + if (base == 16 && !have_longlong && ival < 0) + val_as_str+= 8; + + while (*val_as_str && to < end) + *to++= *val_as_str++; + continue; + } + } + case 's': + { + const char *val= va_arg(ap, char*); + if (!val) + val= "(null)"; + while (*val && to < end) + *to++= *val++; + continue; + } + } + } + *to= 0; + return to - start; +} + + +size_t my_safe_snprintf(char* to, size_t n, const char* fmt, ...) +{ + size_t result; + va_list args; + va_start(args,fmt); + result= my_safe_vsnprintf(to, n, fmt, args); + va_end(args); + return result; +} + + +size_t my_safe_printf_stderr(const char* fmt, ...) +{ + char to[512]; + size_t result; + va_list args; + va_start(args,fmt); + result= my_safe_vsnprintf(to, sizeof(to), fmt, args); + va_end(args); + my_write_stderr(to, result); + return result; +} + + +void my_safe_print_system_time() +{ + char hrs_buf[3]= "00"; + char mins_buf[3]= "00"; + char secs_buf[3]= "00"; + int base= 10; +#ifdef _WIN32 + SYSTEMTIME utc_time; + long hrs, mins, secs; + GetSystemTime(&utc_time); + hrs= utc_time.wHour; + mins= utc_time.wMinute; + secs= utc_time.wSecond; +#else + /* Using time() instead of my_time() to avoid looping */ + const time_t curr_time= time(NULL); + /* Calculate time of day */ + const long tmins = curr_time / 60; + const long thrs = tmins / 60; + const long hrs = thrs % 24; + const long mins = tmins % 60; + const long secs = curr_time % 60; +#endif + + my_safe_itoa(base, hrs, &hrs_buf[2]); + my_safe_itoa(base, mins, &mins_buf[2]); + my_safe_itoa(base, secs, &secs_buf[2]); + + my_safe_printf_stderr("---------- %s:%s:%s UTC - ", + hrs_buf, mins_buf, secs_buf); +} + diff --git a/mysql/mysys/string.c b/mysql/mysys/string.c new file mode 100644 index 0000000..693c28c --- /dev/null +++ b/mysql/mysys/string.c @@ -0,0 +1,187 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Code for handling strings with can grow dynamicly. + Copyright Monty Program KB. + By monty. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include + +my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, + size_t init_alloc, size_t alloc_increment) +{ + size_t length; + DBUG_ENTER("init_dynamic_string"); + + if (!alloc_increment) + alloc_increment=128; + length=1; + if (init_str && (length= strlen(init_str)+1) < init_alloc) + init_alloc=((length+alloc_increment-1)/alloc_increment)*alloc_increment; + if (!init_alloc) + init_alloc=alloc_increment; + + if (!(str->str=(char*) my_malloc(key_memory_DYNAMIC_STRING, + init_alloc,MYF(MY_WME)))) + DBUG_RETURN(TRUE); + str->length=length-1; + if (init_str) + memcpy(str->str,init_str,length); + str->max_length=init_alloc; + str->alloc_increment=alloc_increment; + DBUG_RETURN(FALSE); +} + + +my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str) +{ + uint length=0; + DBUG_ENTER("dynstr_set"); + + if (init_str && (length= (uint) strlen(init_str)+1) > str->max_length) + { + str->max_length=((length+str->alloc_increment-1)/str->alloc_increment)* + str->alloc_increment; + if (!str->max_length) + str->max_length=str->alloc_increment; + if (!(str->str=(char*) my_realloc(key_memory_DYNAMIC_STRING, + str->str,str->max_length,MYF(MY_WME)))) + DBUG_RETURN(TRUE); + } + if (init_str) + { + str->length=length-1; + memcpy(str->str,init_str,length); + } + else + str->length=0; + DBUG_RETURN(FALSE); +} + + +my_bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size) +{ + DBUG_ENTER("dynstr_realloc"); + + if (!additional_size) DBUG_RETURN(FALSE); + if (str->length + additional_size > str->max_length) + { + str->max_length=((str->length + additional_size+str->alloc_increment-1)/ + str->alloc_increment)*str->alloc_increment; + if (!(str->str=(char*) my_realloc(key_memory_DYNAMIC_STRING, + str->str,str->max_length,MYF(MY_WME)))) + DBUG_RETURN(TRUE); + } + DBUG_RETURN(FALSE); +} + + +my_bool dynstr_append(DYNAMIC_STRING *str, const char *append) +{ + return dynstr_append_mem(str,append,(uint) strlen(append)); +} + + +my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, + size_t length) +{ + char *new_ptr; + if (str->length+length >= str->max_length) + { + size_t new_length=(str->length+length+str->alloc_increment)/ + str->alloc_increment; + new_length*=str->alloc_increment; + if (!(new_ptr=(char*) my_realloc(key_memory_DYNAMIC_STRING, + str->str,new_length,MYF(MY_WME)))) + return TRUE; + str->str=new_ptr; + str->max_length=new_length; + } + memcpy(str->str + str->length,append,length); + str->length+=length; + str->str[str->length]=0; /* Safety for C programs */ + return FALSE; +} + + +my_bool dynstr_trunc(DYNAMIC_STRING *str, size_t n) +{ + str->length-=n; + str->str[str->length]= '\0'; + return FALSE; +} + +/* + Concatenates any number of strings, escapes any OS quote in the result then + surround the whole affair in another set of quotes which is finally appended + to specified DYNAMIC_STRING. This function is especially useful when + building strings to be executed with the system() function. + + @param str Dynamic String which will have addtional strings appended. + @param append String to be appended. + @param ... Optional. Additional string(s) to be appended. + + @note The final argument in the list must be NullS even if no additional + options are passed. + + @return True = Success. +*/ + +my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append, ...) +{ +#ifdef _WIN32 + const char *quote_str= "\""; + const uint quote_len= 1; +#else + const char *quote_str= "\'"; + const uint quote_len= 1; +#endif /* _WIN32 */ + my_bool ret= TRUE; + va_list dirty_text; + + ret&= dynstr_append_mem(str, quote_str, quote_len); /* Leading quote */ + va_start(dirty_text, append); + while (append != NullS) + { + const char *cur_pos= append; + const char *next_pos= cur_pos; + + /* Search for quote in each string and replace with escaped quote */ + while(*(next_pos= strcend(cur_pos, quote_str[0])) != '\0') + { + ret&= dynstr_append_mem(str, cur_pos, (uint) (next_pos - cur_pos)); + ret&= dynstr_append_mem(str ,"\\", 1); + ret&= dynstr_append_mem(str, quote_str, quote_len); + cur_pos= next_pos + 1; + } + ret&= dynstr_append_mem(str, cur_pos, (uint) (next_pos - cur_pos)); + append= va_arg(dirty_text, char *); + } + va_end(dirty_text); + ret&= dynstr_append_mem(str, quote_str, quote_len); /* Trailing quote */ + + return ret; +} + + +void dynstr_free(DYNAMIC_STRING *str) +{ + my_free(str->str); + str->str= NULL; +} diff --git a/mysql/mysys/thr_cond.c b/mysql/mysys/thr_cond.c new file mode 100644 index 0000000..25decb4 --- /dev/null +++ b/mysql/mysys/thr_cond.c @@ -0,0 +1,113 @@ +/* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifdef SAFE_MUTEX + +#include "thr_cond.h" +#include "my_thread_local.h" + +int safe_cond_wait(native_cond_t *cond, my_mutex_t *mp, + const char *file, uint line) +{ + int error; + native_mutex_lock(&mp->global); + if (mp->count == 0) + { + fprintf(stderr,"safe_mutex: Trying to cond_wait on a unlocked mutex at %s, line %d\n",file,line); + fflush(stderr); + abort(); + } + if (!my_thread_equal(my_thread_self(),mp->thread)) + { + fprintf(stderr,"safe_mutex: Trying to cond_wait on a mutex at %s, line %d that was locked by another thread at: %s, line: %d\n", + file,line,mp->file,mp->line); + fflush(stderr); + abort(); + } + + if (mp->count-- != 1) + { + fprintf(stderr,"safe_mutex: Count was %d on locked mutex at %s, line %d\n", + mp->count+1, file, line); + fflush(stderr); + abort(); + } + native_mutex_unlock(&mp->global); + error= native_cond_wait(cond,&mp->mutex); + native_mutex_lock(&mp->global); + if (error) + { + fprintf(stderr,"safe_mutex: Got error: %d (%d) when doing a safe_mutex_wait at %s, line %d\n", error, errno, file, line); + fflush(stderr); + abort(); + } + mp->thread= my_thread_self(); + if (mp->count++) + { +#ifndef DBUG_OFF + fprintf(stderr, + "safe_mutex: Count was %d in thread 0x%x when locking mutex at %s, line %d\n", + mp->count-1, my_thread_var_id(), file, line); + fflush(stderr); +#endif + abort(); + } + mp->file= file; + mp->line=line; + native_mutex_unlock(&mp->global); + return error; +} + + +int safe_cond_timedwait(native_cond_t *cond, my_mutex_t *mp, + const struct timespec *abstime, + const char *file, uint line) +{ + int error; + native_mutex_lock(&mp->global); + if (mp->count != 1 || !my_thread_equal(my_thread_self(),mp->thread)) + { + fprintf(stderr,"safe_mutex: Trying to cond_wait at %s, line %d on a not hold mutex\n",file,line); + fflush(stderr); + abort(); + } + mp->count--; /* Mutex will be released */ + native_mutex_unlock(&mp->global); + error= native_cond_timedwait(cond,&mp->mutex,abstime); +#ifdef EXTRA_DEBUG + if (error && (error != EINTR && error != ETIMEDOUT && error != ETIME)) + { + fprintf(stderr,"safe_mutex: Got error: %d (%d) when doing a safe_cond_timedwait at %s, line %d\n", error, errno, file, line); + } +#endif + native_mutex_lock(&mp->global); + mp->thread= my_thread_self(); + if (mp->count++) + { +#ifndef DBUG_OFF + fprintf(stderr, + "safe_mutex: Count was %d in thread 0x%x when locking mutex at %s, line %d (error: %d (%d))\n", + mp->count-1, my_thread_var_id(), file, line, error, error); + fflush(stderr); +#endif + abort(); + } + mp->file= file; + mp->line=line; + native_mutex_unlock(&mp->global); + return error; +} + +#endif diff --git a/mysql/mysys/thr_lock.c b/mysql/mysys/thr_lock.c new file mode 100644 index 0000000..0fc54cb --- /dev/null +++ b/mysql/mysys/thr_lock.c @@ -0,0 +1,1522 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* +Read and write locks for Posix threads. All tread must acquire +all locks it needs through thr_multi_lock() to avoid dead-locks. +A lock consists of a master lock (THR_LOCK), and lock instances +(THR_LOCK_DATA). +Any thread can have any number of lock instances (read and write:s) on +any lock. All lock instances must be freed. +Locks are prioritized according to: + +The current lock types are: + +TL_READ # Low priority read +TL_READ_WITH_SHARED_LOCKS +TL_READ_HIGH_PRIORITY # High priority read +TL_READ_NO_INSERT # Read without concurrent inserts +TL_WRITE_ALLOW_WRITE # Write lock that allows other writers +TL_WRITE_CONCURRENT_INSERT + # Insert that can be mixed when selects + # Allows lower locks to take over +TL_WRITE_LOW_PRIORITY # Low priority write +TL_WRITE # High priority write +TL_WRITE_ONLY # High priority write + # Abort all new lock request with an error + +Locks are prioritized according to: + +WRITE_ALLOW_WRITE, WRITE_CONCURRENT_INSERT, WRITE_LOW_PRIORITY, READ, +WRITE, READ_HIGH_PRIORITY and WRITE_ONLY + +Locks in the same privilege level are scheduled in first-in-first-out order. + +To allow concurrent read/writes locks, with 'WRITE_CONCURRENT_INSERT' one +should put a pointer to the following functions in the lock structure: +(If the pointer is zero (default), the function is not called) + +check_status: + Before giving a lock of type TL_WRITE_CONCURRENT_INSERT, + we check if this function exists and returns 0. + If not, then the lock is upgraded to TL_WRITE_LOCK + In MyISAM this is a simple check if the insert can be done + at the end of the datafile. +update_status: + Before a write lock is released, this function is called. + In MyISAM this functions updates the count and length of the datafile +get_status: + When one gets a lock this functions is called. + In MyISAM this stores the number of rows and size of the datafile + for concurrent reads. + +The lock algorithm allows one to have one TL_WRITE_CONCURRENT_INSERT +lock at the same time as multiple read locks. + +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include "thr_lock.h" +#include "mysql/psi/mysql_table.h" +#include +#include + +ulong locks_immediate = 0L, locks_waited = 0L; +enum thr_lock_type thr_upgraded_concurrent_insert_lock = TL_WRITE; + +/* The following constants are only for debug output */ +#define MAX_THREADS 100 +#define MAX_LOCKS 100 + + +LIST *thr_lock_thread_list; /* List of threads in use */ +ulong max_write_lock_count= ~(ulong) 0L; + +static void (*before_lock_wait)(void)= 0; +static void (*after_lock_wait)(void)= 0; + +void thr_set_lock_wait_callback(void (*before_wait)(void), + void (*after_wait)(void)) +{ + before_lock_wait= before_wait; + after_lock_wait= after_wait; +} + + +static inline my_bool +thr_lock_owner_equal(THR_LOCK_INFO *rhs, THR_LOCK_INFO *lhs) +{ + return rhs == lhs; +} + + +#ifdef EXTRA_DEBUG +#define MAX_FOUND_ERRORS 10 /* Report 10 first errors */ +static uint found_errors=0; + +static int check_lock(struct st_lock_list *list, const char* lock_type, + const char *where, my_bool same_owner, my_bool no_cond) +{ + THR_LOCK_DATA *data,**prev; + uint count=0; + THR_LOCK_INFO *first_owner= NULL; + + prev= &list->data; + if (list->data) + { + enum thr_lock_type last_lock_type=list->data->type; + + if (same_owner && list->data) + first_owner= list->data->owner; + for (data=list->data; data && count++ < MAX_LOCKS ; data=data->next) + { + if (data->type != last_lock_type) + last_lock_type=TL_IGNORE; + if (data->prev != prev) + { + my_message_stderr(0, "prev link %d didn't point at " + "previous lock at %s: %s", count, lock_type, where); + return 1; + } + if (same_owner && + !thr_lock_owner_equal(data->owner, first_owner) && + last_lock_type != TL_WRITE_ALLOW_WRITE) + { + my_message_stderr(0, "Found locks from different threads " + "in %s: %s", lock_type, where); + return 1; + } + if (no_cond && data->cond) + { + my_message_stderr(0, "Found active lock with not reset " + "cond %s: %s", lock_type, where); + return 1; + } + prev= &data->next; + } + if (data) + { + my_message_stderr(0, "found too many locks at %s: %s", + lock_type, where); + return 1; + } + } + if (prev != list->last) + { + my_message_stderr(0, "last didn't point at last lock at %s: %s", + lock_type, where); + return 1; + } + return 0; +} + + +static void check_locks(THR_LOCK *lock, const char *where, + my_bool allow_no_locks) +{ + uint old_found_errors=found_errors; + DBUG_ENTER("check_locks"); + + if (found_errors < MAX_FOUND_ERRORS) + { + if (check_lock(&lock->write,"write",where,1,1) | + check_lock(&lock->write_wait,"write_wait",where,0,0) | + check_lock(&lock->read,"read",where,0,1) | + check_lock(&lock->read_wait,"read_wait",where,0,0)) + found_errors++; + + if (found_errors < MAX_FOUND_ERRORS) + { + uint count=0; + THR_LOCK_DATA *data; + for (data=lock->read.data ; data ; data=data->next) + { + if ((int) data->type == (int) TL_READ_NO_INSERT) + count++; + /* Protect against infinite loop. */ + DBUG_ASSERT(count <= lock->read_no_write_count); + } + if (count != lock->read_no_write_count) + { + found_errors++; + my_message_stderr(0, "at '%s': Locks read_no_write_count " + "was %u when it should have been %u", + where, lock->read_no_write_count,count); + } + + if (!lock->write.data) + { + if (!allow_no_locks && !lock->read.data && + (lock->write_wait.data || lock->read_wait.data)) + { + found_errors++; + my_message_stderr(0, "at '%s': No locks in use but locks " + "are in wait queue", where); + } + if (!lock->write_wait.data) + { + if (!allow_no_locks && lock->read_wait.data) + { + found_errors++; + my_message_stderr(0, "at '%s': No write locks and " + "waiting read locks", where); + } + } + else + { + if (!allow_no_locks && + (((lock->write_wait.data->type == TL_WRITE_CONCURRENT_INSERT || + lock->write_wait.data->type == TL_WRITE_ALLOW_WRITE) && + !lock->read_no_write_count))) + { + found_errors++; + my_message_stderr(0, "at '%s': Write lock %d waiting " + "while no exclusive read locks", + where, (int) lock->write_wait.data->type); + } + } + } + else + { /* Have write lock */ + if (lock->write_wait.data) + { + if (!allow_no_locks && + lock->write.data->type == TL_WRITE_ALLOW_WRITE && + lock->write_wait.data->type == TL_WRITE_ALLOW_WRITE) + { + found_errors++; + my_message_stderr(0, "at '%s': Found WRITE_ALLOW_WRITE " + "lock waiting for WRITE_ALLOW_WRITE lock", where); + } + } + if (lock->read.data) + { + if (!thr_lock_owner_equal(lock->write.data->owner, + lock->read.data->owner) && + ((lock->write.data->type > TL_WRITE_CONCURRENT_INSERT && + lock->write.data->type != TL_WRITE_ONLY) || + ((lock->write.data->type == TL_WRITE_CONCURRENT_INSERT || + lock->write.data->type == TL_WRITE_ALLOW_WRITE) && + lock->read_no_write_count))) + { + found_errors++; + my_message_stderr(0, "at '%s': Found lock of type %d " + "that is write and read locked", + where, lock->write.data->type); + DBUG_PRINT("warning",("At '%s': Found lock of type %d that is write and read locked\n", + where, lock->write.data->type)); + + } + } + if (lock->read_wait.data) + { + if (!allow_no_locks && lock->write.data->type <= TL_WRITE_CONCURRENT_INSERT && + lock->read_wait.data->type <= TL_READ_HIGH_PRIORITY) + { + found_errors++; + my_message_stderr(0, "at '%s': Found read lock of " + "type %d waiting for write lock of type %d", + where, (int) lock->read_wait.data->type, + (int) lock->write.data->type); + } + } + } + } + if (found_errors != old_found_errors) + { + DBUG_PRINT("error",("Found wrong lock")); + } + } + DBUG_VOID_RETURN; +} + +#else /* EXTRA_DEBUG */ +#define check_locks(A,B,C) +#endif + + + /* Initialize a lock */ + +void thr_lock_init(THR_LOCK *lock) +{ + DBUG_ENTER("thr_lock_init"); + memset(lock, 0, sizeof(*lock)); + + mysql_mutex_init(key_THR_LOCK_mutex, &lock->mutex, MY_MUTEX_INIT_FAST); + lock->read.last= &lock->read.data; + lock->read_wait.last= &lock->read_wait.data; + lock->write_wait.last= &lock->write_wait.data; + lock->write.last= &lock->write.data; + + mysql_mutex_lock(&THR_LOCK_lock); /* Add to locks in use */ + lock->list.data=(void*) lock; + thr_lock_thread_list=list_add(thr_lock_thread_list,&lock->list); + mysql_mutex_unlock(&THR_LOCK_lock); + DBUG_VOID_RETURN; +} + + +void thr_lock_delete(THR_LOCK *lock) +{ + DBUG_ENTER("thr_lock_delete"); + mysql_mutex_lock(&THR_LOCK_lock); + thr_lock_thread_list=list_delete(thr_lock_thread_list,&lock->list); + mysql_mutex_unlock(&THR_LOCK_lock); + mysql_mutex_destroy(&lock->mutex); + DBUG_VOID_RETURN; +} + + +void thr_lock_info_init(THR_LOCK_INFO *info, my_thread_id thread_id, + mysql_cond_t *suspend) +{ + info->thread_id= thread_id; + info->suspend= suspend; +} + + /* Initialize a lock instance */ + +void thr_lock_data_init(THR_LOCK *lock,THR_LOCK_DATA *data, void *param) +{ + data->lock=lock; + data->type=TL_UNLOCK; + data->owner= 0; /* no owner yet */ + data->status_param=param; + data->cond=0; +} + + +static inline my_bool +has_old_lock(THR_LOCK_DATA *data, THR_LOCK_INFO *owner) +{ + for ( ; data ; data=data->next) + { + if (thr_lock_owner_equal(data->owner, owner)) + return 1; /* Already locked by thread */ + } + return 0; +} + +static void wake_up_waiters(THR_LOCK *lock); + + +static enum enum_thr_lock_result +wait_for_lock(struct st_lock_list *wait, THR_LOCK_DATA *data, + THR_LOCK_INFO *owner, + my_bool in_wait_list, ulong lock_wait_timeout) +{ + struct timespec wait_timeout; + enum enum_thr_lock_result result= THR_LOCK_ABORTED; + PSI_stage_info old_stage; + DBUG_ENTER("wait_for_lock"); + + /* + One can use this to signal when a thread is going to wait for a lock. + See debug_sync.cc. + + Beware of waiting for a signal here. The lock has aquired its mutex. + While waiting on a signal here, the locking thread could not aquire + the mutex to release the lock. One could lock up the table + completely. + + In detail it works so: When thr_lock() tries to acquire a table + lock, it locks the lock->mutex, checks if it can have the lock, and + if not, it calls wait_for_lock(). Here it unlocks the table lock + while waiting on a condition. The sync point is located before this + wait for condition. If we have a waiting action here, we hold the + the table locks mutex all the time. Any attempt to look at the table + lock by another thread blocks it immediately on lock->mutex. This + can easily become an unexpected and unobvious blockage. So be + warned: Do not request a WAIT_FOR action for the 'wait_for_lock' + sync point unless you really know what you do. + */ + DEBUG_SYNC_C("wait_for_lock"); + + if (!in_wait_list) + { + (*wait->last)=data; /* Wait for lock */ + data->prev= wait->last; + wait->last= &data->next; + } + + locks_waited++; + + /* Set up control struct to allow others to abort locks */ + data->cond= owner->suspend; + + enter_cond_hook(NULL, data->cond, &data->lock->mutex, + &stage_waiting_for_table_level_lock, &old_stage, + __func__, __FILE__, __LINE__); + + /* + Since before_lock_wait potentially can create more threads to + scheduler work for, we don't want to call the before_lock_wait + callback unless it will really start to wait. + + For similar reasons, we do not want to call before_lock_wait and + after_lock_wait for each lap around the loop, so we restrict + ourselves to call it before_lock_wait once before starting to wait + and once after the thread has exited the wait loop. + */ + if ((!is_killed_hook(NULL) || in_wait_list) && before_lock_wait) + (*before_lock_wait)(); + + set_timespec(&wait_timeout, lock_wait_timeout); + while (!is_killed_hook(NULL) || in_wait_list) + { + int rc= mysql_cond_timedwait(data->cond, &data->lock->mutex, &wait_timeout); + /* + We must break the wait if one of the following occurs: + - the connection has been aborted (!is_killed_hook()), + - the lock has been granted (data->cond is set to NULL by the granter), + or the waiting has been aborted (additionally data->type is set to + TL_UNLOCK). + - the wait has timed out (rc == ETIMEDOUT) + Order of checks below is important to not report about timeout + if the predicate is true. + */ + if (data->cond == 0) + { + DBUG_PRINT("thr_lock", ("lock granted/aborted")); + break; + } + if (rc == ETIMEDOUT || rc == ETIME) + { + /* purecov: begin inspected */ + DBUG_PRINT("thr_lock", ("lock timed out")); + result= THR_LOCK_WAIT_TIMEOUT; + break; + /* purecov: end */ + } + } + + /* + We call the after_lock_wait callback once the wait loop has + finished. + */ + if (after_lock_wait) + (*after_lock_wait)(); + + if (data->cond || data->type == TL_UNLOCK) + { + if (data->cond) /* aborted or timed out */ + { + if (((*data->prev)=data->next)) /* remove from wait-list */ + data->next->prev= data->prev; + else + wait->last=data->prev; + data->type= TL_UNLOCK; /* No lock */ + check_locks(data->lock, "killed or timed out wait_for_lock", 1); + wake_up_waiters(data->lock); + } + else + { + DBUG_PRINT("thr_lock", ("lock aborted")); + check_locks(data->lock, "aborted wait_for_lock", 0); + } + } + else + { + result= THR_LOCK_SUCCESS; + if (data->lock->get_status) + (*data->lock->get_status)(data->status_param, 0); + check_locks(data->lock,"got wait_for_lock",0); + } + mysql_mutex_unlock(&data->lock->mutex); + + exit_cond_hook(NULL, &old_stage, __func__, __FILE__, __LINE__); + + DBUG_RETURN(result); +} + + +enum enum_thr_lock_result +thr_lock(THR_LOCK_DATA *data, THR_LOCK_INFO *owner, + enum thr_lock_type lock_type, ulong lock_wait_timeout) +{ + THR_LOCK *lock=data->lock; + enum enum_thr_lock_result result= THR_LOCK_SUCCESS; + struct st_lock_list *wait_queue; + MYSQL_TABLE_WAIT_VARIABLES(locker, state) /* no ';' */ + DBUG_ENTER("thr_lock"); + + data->next=0; + data->cond=0; /* safety */ + data->type=lock_type; + data->owner= owner; /* Must be reset ! */ + + MYSQL_START_TABLE_LOCK_WAIT(locker, &state, data->m_psi, + PSI_TABLE_LOCK, lock_type); + + mysql_mutex_lock(&lock->mutex); + DBUG_PRINT("lock",("data: 0x%lx thread: 0x%x lock: 0x%lx type: %d", + (long) data, data->owner->thread_id, + (long) lock, (int) lock_type)); + check_locks(lock,(uint) lock_type <= (uint) TL_READ_NO_INSERT ? + "enter read_lock" : "enter write_lock",0); + if ((int) lock_type <= (int) TL_READ_NO_INSERT) + { + /* Request for READ lock */ + if (lock->write.data) + { + /* + We can allow a read lock even if there is already a + write lock on the table if they are owned by the same + thread or if they satisfy the following lock + compatibility matrix: + + Request + /------- + H|++++ WRITE_ALLOW_WRITE + e|+++- WRITE_CONCURRENT_INSERT + l |||| + d |||| + |||\= READ_NO_INSERT + ||\ = READ_HIGH_PRIORITY + |\ = READ_WITH_SHARED_LOCKS + \ = READ + + + = Request can be satisified. + - = Request cannot be satisified. + + READ_NO_INSERT and WRITE_ALLOW_WRITE should in principle + be incompatible. Before this could have caused starvation of + LOCK TABLE READ in InnoDB under high write load. However + now READ_NO_INSERT is only used for LOCK TABLES READ and this + statement is handled by the MDL subsystem. + See Bug#42147 for more information. + */ + + DBUG_PRINT("lock",("write locked 1 by thread: 0x%x", + lock->write.data->owner->thread_id)); + if (thr_lock_owner_equal(data->owner, lock->write.data->owner) || + (lock->write.data->type < TL_WRITE_CONCURRENT_INSERT) || + ((lock->write.data->type == TL_WRITE_CONCURRENT_INSERT) && + ((int) lock_type <= (int) TL_READ_HIGH_PRIORITY))) + { /* Already got a write lock */ + (*lock->read.last)=data; /* Add to running FIFO */ + data->prev=lock->read.last; + lock->read.last= &data->next; + if (lock_type == TL_READ_NO_INSERT) + lock->read_no_write_count++; + check_locks(lock,"read lock with old write lock",0); + if (lock->get_status) + (*lock->get_status)(data->status_param, 0); + locks_immediate++; + goto end; + } + if (lock->write.data->type == TL_WRITE_ONLY) + { + /* We are not allowed to get a READ lock in this case */ + data->type=TL_UNLOCK; + result= THR_LOCK_ABORTED; /* Can't wait for this one */ + goto end; + } + } + else if (!lock->write_wait.data || + lock->write_wait.data->type <= TL_WRITE_LOW_PRIORITY || + lock_type == TL_READ_HIGH_PRIORITY || + has_old_lock(lock->read.data, data->owner)) /* Has old read lock */ + { /* No important write-locks */ + (*lock->read.last)=data; /* Add to running FIFO */ + data->prev=lock->read.last; + lock->read.last= &data->next; + if (lock->get_status) + (*lock->get_status)(data->status_param, 0); + if (lock_type == TL_READ_NO_INSERT) + lock->read_no_write_count++; + check_locks(lock,"read lock with no write locks",0); + locks_immediate++; + goto end; + } + /* + We're here if there is an active write lock or no write + lock but a high priority write waiting in the write_wait queue. + In the latter case we should yield the lock to the writer. + */ + wait_queue= &lock->read_wait; + } + else /* Request for WRITE lock */ + { + if (lock_type == TL_WRITE_CONCURRENT_INSERT && ! lock->check_status) + data->type=lock_type= thr_upgraded_concurrent_insert_lock; + + if (lock->write.data) /* If there is a write lock */ + { + if (lock->write.data->type == TL_WRITE_ONLY) + { + /* purecov: begin tested */ + /* Allow lock owner to bypass TL_WRITE_ONLY. */ + if (!thr_lock_owner_equal(data->owner, lock->write.data->owner)) + { + /* We are not allowed to get a lock in this case */ + data->type=TL_UNLOCK; + result= THR_LOCK_ABORTED; /* Can't wait for this one */ + goto end; + } + /* purecov: end */ + } + + /* + The idea is to allow us to get a lock at once if we already have + a write lock or if there is no pending write locks and if all + write locks are of TL_WRITE_ALLOW_WRITE type. + + Note that, since lock requests for the same table are sorted in + such way that requests with higher thr_lock_type value come first + (with one exception (*)), lock being requested usually has + equal or "weaker" type than one which thread might have already + acquired. + *) The only exception to this rule is case when type of old lock + is TL_WRITE_LOW_PRIORITY and type of new lock is changed inside + of thr_lock() from TL_WRITE_CONCURRENT_INSERT to TL_WRITE since + engine turns out to be not supporting concurrent inserts. + Note that since TL_WRITE has the same compatibility rules as + TL_WRITE_LOW_PRIORITY (their only difference is priority), + it is OK to grant new lock without additional checks in such + situation. + + Therefore it is OK to allow acquiring write lock on the table if + this thread already holds some write lock on it. + + (INSERT INTO t1 VALUES (f1()), where f1() is stored function which + tries to update t1, is an example of statement which requests two + different types of write lock on the same table). + */ + DBUG_ASSERT(! has_old_lock(lock->write.data, data->owner) || + ((lock_type <= lock->write.data->type || + (lock_type == TL_WRITE && + lock->write.data->type == TL_WRITE_LOW_PRIORITY)))); + + if ((lock_type == TL_WRITE_ALLOW_WRITE && + ! lock->write_wait.data && + lock->write.data->type == TL_WRITE_ALLOW_WRITE) || + has_old_lock(lock->write.data, data->owner)) + { + /* + We have already got a write lock or all locks are + TL_WRITE_ALLOW_WRITE + */ + DBUG_PRINT("info", ("write_wait.data: 0x%lx old_type: %d", + (ulong) lock->write_wait.data, + lock->write.data->type)); + + (*lock->write.last)=data; /* Add to running fifo */ + data->prev=lock->write.last; + lock->write.last= &data->next; + check_locks(lock,"second write lock",0); + if (data->lock->get_status) + (*data->lock->get_status)(data->status_param, 0); + locks_immediate++; + goto end; + } + DBUG_PRINT("lock",("write locked 2 by thread: 0x%x", + lock->write.data->owner->thread_id)); + } + else + { + DBUG_PRINT("info", ("write_wait.data: 0x%lx", + (ulong) lock->write_wait.data)); + if (!lock->write_wait.data) + { /* no scheduled write locks */ + my_bool concurrent_insert= 0; + if (lock_type == TL_WRITE_CONCURRENT_INSERT) + { + concurrent_insert= 1; + if ((*lock->check_status)(data->status_param)) + { + concurrent_insert= 0; + data->type=lock_type= thr_upgraded_concurrent_insert_lock; + } + } + + if (!lock->read.data || + (lock_type <= TL_WRITE_CONCURRENT_INSERT && + ((lock_type != TL_WRITE_CONCURRENT_INSERT && + lock_type != TL_WRITE_ALLOW_WRITE) || + !lock->read_no_write_count))) + { + (*lock->write.last)=data; /* Add as current write lock */ + data->prev=lock->write.last; + lock->write.last= &data->next; + if (data->lock->get_status) + (*data->lock->get_status)(data->status_param, concurrent_insert); + check_locks(lock,"only write lock",0); + locks_immediate++; + goto end; + } + } + DBUG_PRINT("lock",("write locked 3 by thread: 0x%x type: %d", + lock->read.data->owner->thread_id, data->type)); + } + wait_queue= &lock->write_wait; + } + /* Can't get lock yet; Wait for it */ + result= wait_for_lock(wait_queue, data, owner, 0, + lock_wait_timeout); + MYSQL_END_TABLE_LOCK_WAIT(locker); + DBUG_RETURN(result); +end: + mysql_mutex_unlock(&lock->mutex); + MYSQL_END_TABLE_LOCK_WAIT(locker); + DBUG_RETURN(result); +} + + +static inline void free_all_read_locks(THR_LOCK *lock, + my_bool using_concurrent_insert) +{ + THR_LOCK_DATA *data=lock->read_wait.data; + + check_locks(lock,"before freeing read locks",1); + + /* move all locks from read_wait list to read list */ + (*lock->read.last)=data; + data->prev=lock->read.last; + lock->read.last=lock->read_wait.last; + + /* Clear read_wait list */ + lock->read_wait.last= &lock->read_wait.data; + + do + { + mysql_cond_t *cond= data->cond; + if ((int) data->type == (int) TL_READ_NO_INSERT) + { + if (using_concurrent_insert) + { + /* + We can't free this lock; + Link lock away from read chain back into read_wait chain + */ + if (((*data->prev)=data->next)) + data->next->prev=data->prev; + else + lock->read.last=data->prev; + *lock->read_wait.last= data; + data->prev= lock->read_wait.last; + lock->read_wait.last= &data->next; + continue; + } + lock->read_no_write_count++; + } + /* purecov: begin inspected */ + DBUG_PRINT("lock",("giving read lock to thread: 0x%x", + data->owner->thread_id)); + /* purecov: end */ + data->cond=0; /* Mark thread free */ + mysql_cond_signal(cond); + } while ((data=data->next)); + *lock->read_wait.last=0; + if (!lock->read_wait.data) + lock->write_lock_count=0; + check_locks(lock,"after giving read locks",0); +} + + /* Unlock lock and free next thread on same lock */ + +void thr_unlock(THR_LOCK_DATA *data) +{ + THR_LOCK *lock=data->lock; + enum thr_lock_type lock_type=data->type; + DBUG_ENTER("thr_unlock"); + DBUG_PRINT("lock",("data: 0x%lx thread: 0x%x lock: 0x%lx", + (long) data, data->owner->thread_id, (long) lock)); + mysql_mutex_lock(&lock->mutex); + check_locks(lock,"start of release lock",0); + + if (((*data->prev)=data->next)) /* remove from lock-list */ + data->next->prev= data->prev; + else if (lock_type <= TL_READ_NO_INSERT) + lock->read.last=data->prev; + else + lock->write.last=data->prev; + if (lock_type >= TL_WRITE_CONCURRENT_INSERT) + { + if (lock->update_status) + (*lock->update_status)(data->status_param); + } + else + { + if (lock->restore_status) + (*lock->restore_status)(data->status_param); + } + if (lock_type == TL_READ_NO_INSERT) + lock->read_no_write_count--; + data->type=TL_UNLOCK; /* Mark unlocked */ + MYSQL_UNLOCK_TABLE(data->m_psi); + check_locks(lock,"after releasing lock",1); + wake_up_waiters(lock); + mysql_mutex_unlock(&lock->mutex); + DBUG_VOID_RETURN; +} + + +/** + @brief Wake up all threads which pending requests for the lock + can be satisfied. + + @param lock Lock for which threads should be woken up + +*/ + +static void wake_up_waiters(THR_LOCK *lock) +{ + THR_LOCK_DATA *data; + enum thr_lock_type lock_type; + + DBUG_ENTER("wake_up_waiters"); + + if (!lock->write.data) /* If no active write locks */ + { + data=lock->write_wait.data; + if (!lock->read.data) /* If no more locks in use */ + { + /* Release write-locks with TL_WRITE or TL_WRITE_ONLY priority first */ + if (data && + (data->type != TL_WRITE_LOW_PRIORITY || !lock->read_wait.data || + lock->read_wait.data->type < TL_READ_HIGH_PRIORITY)) + { + if (lock->write_lock_count++ > max_write_lock_count) + { + /* Too many write locks in a row; Release all waiting read locks */ + lock->write_lock_count=0; + if (lock->read_wait.data) + { + DBUG_PRINT("info",("Freeing all read_locks because of max_write_lock_count")); + free_all_read_locks(lock,0); + goto end; + } + } + for (;;) + { + if (((*data->prev)=data->next)) /* remove from wait-list */ + data->next->prev= data->prev; + else + lock->write_wait.last=data->prev; + (*lock->write.last)=data; /* Put in execute list */ + data->prev=lock->write.last; + data->next=0; + lock->write.last= &data->next; + if (data->type == TL_WRITE_CONCURRENT_INSERT && + (*lock->check_status)(data->status_param)) + data->type=TL_WRITE; /* Upgrade lock */ + /* purecov: begin inspected */ + DBUG_PRINT("lock",("giving write lock of type %d to thread: 0x%x", + data->type, data->owner->thread_id)); + /* purecov: end */ + { + mysql_cond_t *cond= data->cond; + data->cond=0; /* Mark thread free */ + mysql_cond_signal(cond); /* Start waiting thread */ + } + if (data->type != TL_WRITE_ALLOW_WRITE || + !lock->write_wait.data || + lock->write_wait.data->type != TL_WRITE_ALLOW_WRITE) + break; + data=lock->write_wait.data; /* Free this too */ + } + if (data->type >= TL_WRITE_LOW_PRIORITY) + goto end; + /* Release possible read locks together with the write lock */ + } + if (lock->read_wait.data) + free_all_read_locks(lock, + data && + (data->type == TL_WRITE_CONCURRENT_INSERT || + data->type == TL_WRITE_ALLOW_WRITE)); + else + { + DBUG_PRINT("lock",("No waiting read locks to free")); + } + } + else if (data && + (lock_type= data->type) <= TL_WRITE_CONCURRENT_INSERT && + ((lock_type != TL_WRITE_CONCURRENT_INSERT && + lock_type != TL_WRITE_ALLOW_WRITE) || + !lock->read_no_write_count)) + { + /* + For ALLOW_READ, WRITE_ALLOW_WRITE or CONCURRENT_INSERT locks + start WRITE locks together with the READ locks + */ + if (lock_type == TL_WRITE_CONCURRENT_INSERT && + (*lock->check_status)(data->status_param)) + { + data->type=TL_WRITE; /* Upgrade lock */ + if (lock->read_wait.data) + free_all_read_locks(lock,0); + goto end; + } + do { + mysql_cond_t *cond= data->cond; + if (((*data->prev)=data->next)) /* remove from wait-list */ + data->next->prev= data->prev; + else + lock->write_wait.last=data->prev; + (*lock->write.last)=data; /* Put in execute list */ + data->prev=lock->write.last; + lock->write.last= &data->next; + data->next=0; /* Only one write lock */ + data->cond=0; /* Mark thread free */ + mysql_cond_signal(cond); /* Start waiting thread */ + } while (lock_type == TL_WRITE_ALLOW_WRITE && + (data=lock->write_wait.data) && + data->type == TL_WRITE_ALLOW_WRITE); + if (lock->read_wait.data) + free_all_read_locks(lock, + (lock_type == TL_WRITE_CONCURRENT_INSERT || + lock_type == TL_WRITE_ALLOW_WRITE)); + } + else if (!data && lock->read_wait.data) + free_all_read_locks(lock,0); + } +end: + check_locks(lock, "after waking up waiters", 0); + DBUG_VOID_RETURN; +} + + +/* +** Get all locks in a specific order to avoid dead-locks +** Sort acording to lock position and put write_locks before read_locks if +** lock on same lock. +*/ + + +#define LOCK_CMP(A,B) ((uchar*) (A->lock) - (uint) ((A)->type) < (uchar*) (B->lock)- (uint) ((B)->type)) + +static void sort_locks(THR_LOCK_DATA **data,uint count) +{ + THR_LOCK_DATA **pos,**end,**prev,*tmp; + + /* Sort locks with insertion sort (fast because almost always few locks) */ + + for (pos=data+1,end=data+count; pos < end ; pos++) + { + tmp= *pos; + if (LOCK_CMP(tmp,pos[-1])) + { + prev=pos; + do { + prev[0]=prev[-1]; + } while (--prev != data && LOCK_CMP(tmp,prev[-1])); + prev[0]=tmp; + } + } +} + + +enum enum_thr_lock_result +thr_multi_lock(THR_LOCK_DATA **data, uint count, THR_LOCK_INFO *owner, + ulong lock_wait_timeout) +{ + THR_LOCK_DATA **pos,**end; + DBUG_ENTER("thr_multi_lock"); + DBUG_PRINT("lock",("data: 0x%lx count: %d", (long) data, count)); + if (count > 1) + sort_locks(data,count); + /* lock everything */ + for (pos=data,end=data+count; pos < end ; pos++) + { + enum enum_thr_lock_result result= thr_lock(*pos, owner, (*pos)->type, + lock_wait_timeout); + if (result != THR_LOCK_SUCCESS) + { /* Aborted */ + thr_multi_unlock(data,(uint) (pos-data)); + DBUG_RETURN(result); + } + DEBUG_SYNC_C("thr_multi_lock_after_thr_lock"); +#ifdef MAIN + printf("Thread: T@%u Got lock: 0x%lx type: %d\n", + pos[0]->owner->thread_id, (long) pos[0]->lock, pos[0]->type); + fflush(stdout); +#endif + } + thr_lock_merge_status(data, count); + DBUG_RETURN(THR_LOCK_SUCCESS); +} + + +/** + Ensure that all locks for a given table have the same + status_param. + + This is a MyISAM and possibly Maria specific crutch. MyISAM + engine stores data file length, record count and other table + properties in status_param member of handler. When a table is + locked, connection-local copy is made from a global copy + (myisam_share) by mi_get_status(). When a table is unlocked, + the changed status is transferred back to the global share by + mi_update_status(). + + One thing MyISAM doesn't do is to ensure that when the same + table is opened twice in a connection all instances share the + same status_param. This is necessary, however: for one, to keep + all instances of a connection "on the same page" with regard to + the current state of the table. For other, unless this is done, + myisam_share will always get updated from the last unlocked + instance (in mi_update_status()), and when this instance was not + the one that was used to update data, records may be lost. + + For each table, this function looks up the last lock_data in the + list of acquired locks, and makes sure that all other instances + share status_param with it. +*/ + +void +thr_lock_merge_status(THR_LOCK_DATA **data, uint count) +{ + THR_LOCK_DATA **pos= data; + THR_LOCK_DATA **end= data + count; + if (count > 1) + { + THR_LOCK_DATA *last_lock= end[-1]; + pos=end-1; + do + { + pos--; + if (last_lock->lock == (*pos)->lock && + last_lock->lock->copy_status) + { + if (last_lock->type <= TL_READ_NO_INSERT) + { + THR_LOCK_DATA **read_lock; + /* + If we are locking the same table with read locks we must ensure + that all tables share the status of the last write lock or + the same read lock. + */ + for (; + (*pos)->type <= TL_READ_NO_INSERT && + pos != data && + pos[-1]->lock == (*pos)->lock ; + pos--) ; + + read_lock = pos+1; + do + { + (last_lock->lock->copy_status)((*read_lock)->status_param, + (*pos)->status_param); + } while (*(read_lock++) != last_lock); + last_lock= (*pos); /* Point at last write lock */ + } + else + (*last_lock->lock->copy_status)((*pos)->status_param, + last_lock->status_param); + } + else + last_lock=(*pos); + } while (pos != data); + } +} + + /* free all locks */ + +void thr_multi_unlock(THR_LOCK_DATA **data,uint count) +{ + THR_LOCK_DATA **pos,**end; + DBUG_ENTER("thr_multi_unlock"); + DBUG_PRINT("lock",("data: 0x%lx count: %d", (long) data, count)); + + for (pos=data,end=data+count; pos < end ; pos++) + { +#ifdef MAIN + printf("Thread: T@%u Rel lock: 0x%lx type: %d\n", + pos[0]->owner->thread_id, (long) pos[0]->lock, pos[0]->type); + fflush(stdout); +#endif + if ((*pos)->type != TL_UNLOCK) + thr_unlock(*pos); + else + { + DBUG_PRINT("lock",("Free lock: data: 0x%lx thread: 0x%x lock: 0x%lx", + (long) *pos, (*pos)->owner->thread_id, + (long) (*pos)->lock)); + } + } + DBUG_VOID_RETURN; +} + +/* + Abort all threads waiting for a lock. The lock will be upgraded to + TL_WRITE_ONLY to abort any new accesses to the lock +*/ + +void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock) +{ + THR_LOCK_DATA *data; + DBUG_ENTER("thr_abort_locks"); + mysql_mutex_lock(&lock->mutex); + + for (data=lock->read_wait.data; data ; data=data->next) + { + data->type=TL_UNLOCK; /* Mark killed */ + /* It's safe to signal the cond first: we're still holding the mutex. */ + mysql_cond_signal(data->cond); + data->cond=0; /* Removed from list */ + } + for (data=lock->write_wait.data; data ; data=data->next) + { + data->type=TL_UNLOCK; + mysql_cond_signal(data->cond); + data->cond=0; + } + lock->read_wait.last= &lock->read_wait.data; + lock->write_wait.last= &lock->write_wait.data; + lock->read_wait.data=lock->write_wait.data=0; + if (upgrade_lock && lock->write.data) + lock->write.data->type=TL_WRITE_ONLY; + mysql_mutex_unlock(&lock->mutex); + DBUG_VOID_RETURN; +} + + +/* + Abort all locks for specific table/thread combination + + This is used to abort all locks for a specific thread +*/ + +void thr_abort_locks_for_thread(THR_LOCK *lock, my_thread_id thread_id) +{ + THR_LOCK_DATA *data; + DBUG_ENTER("thr_abort_locks_for_thread"); + + mysql_mutex_lock(&lock->mutex); + for (data= lock->read_wait.data; data ; data= data->next) + { + if (data->owner->thread_id == thread_id) /* purecov: tested */ + { + DBUG_PRINT("info",("Aborting read-wait lock")); + data->type= TL_UNLOCK; /* Mark killed */ + /* It's safe to signal the cond first: we're still holding the mutex. */ + mysql_cond_signal(data->cond); + data->cond= 0; /* Removed from list */ + + if (((*data->prev)= data->next)) + data->next->prev= data->prev; + else + lock->read_wait.last= data->prev; + } + } + for (data= lock->write_wait.data; data ; data= data->next) + { + if (data->owner->thread_id == thread_id) /* purecov: tested */ + { + DBUG_PRINT("info",("Aborting write-wait lock")); + data->type= TL_UNLOCK; + mysql_cond_signal(data->cond); + data->cond= 0; + + if (((*data->prev)= data->next)) + data->next->prev= data->prev; + else + lock->write_wait.last= data->prev; + } + } + wake_up_waiters(lock); + mysql_mutex_unlock(&lock->mutex); + DBUG_VOID_RETURN; +} + + +/* + Downgrade a WRITE_* to a lower WRITE level + SYNOPSIS + thr_downgrade_write_lock() + in_data Lock data of thread downgrading its lock + new_lock_type New write lock type + RETURN VALUE + NONE + DESCRIPTION + This can be used to downgrade a lock already owned. When the downgrade + occurs also other waiters, both readers and writers can be allowed to + start. + The previous lock is often TL_WRITE_ONLY but can also be + TL_WRITE. The normal downgrade variants are: + TL_WRITE_ONLY => TL_WRITE after a short exclusive lock while holding a + write table lock + TL_WRITE_ONLY => TL_WRITE_ALLOW_WRITE After a short exclusive lock after + already earlier having dongraded lock to TL_WRITE_ALLOW_WRITE + The implementation is conservative and rather don't start rather than + go on unknown paths to start, the common cases are handled. + + NOTE: + In its current implementation it is only allowed to downgrade from + TL_WRITE_ONLY. In this case there are no waiters. Thus no wake up + logic is required. +*/ + +void thr_downgrade_write_lock(THR_LOCK_DATA *in_data, + enum thr_lock_type new_lock_type) +{ + THR_LOCK *lock=in_data->lock; +#ifndef DBUG_OFF + enum thr_lock_type old_lock_type= in_data->type; +#endif + DBUG_ENTER("thr_downgrade_write_only_lock"); + + mysql_mutex_lock(&lock->mutex); + DBUG_ASSERT(old_lock_type == TL_WRITE_ONLY); + DBUG_ASSERT(old_lock_type > new_lock_type); + in_data->type= new_lock_type; + check_locks(lock,"after downgrading lock",0); + + mysql_mutex_unlock(&lock->mutex); + DBUG_VOID_RETURN; +} + + +#include + +static void thr_print_lock(const char* name,struct st_lock_list *list) +{ + THR_LOCK_DATA *data,**prev; + uint count=0; + + if (list->data) + { + printf("%-10s: ",name); + prev= &list->data; + for (data=list->data; data && count++ < MAX_LOCKS ; data=data->next) + { + printf("0x%lx (%u:%d); ", (ulong) data, data->owner->thread_id, + (int) data->type); + if (data->prev != prev) + printf("\nWarning: prev didn't point at previous lock\n"); + prev= &data->next; + } + puts(""); + if (prev != list->last) + printf("Warning: last didn't point at last lock\n"); + } +} + +void thr_print_locks(void) +{ + LIST *list; + uint count=0; + + mysql_mutex_lock(&THR_LOCK_lock); + puts("Current locks:"); + for (list= thr_lock_thread_list; list && count++ < MAX_THREADS; + list= list_rest(list)) + { + THR_LOCK *lock=(THR_LOCK*) list->data; + mysql_mutex_lock(&lock->mutex); + printf("lock: 0x%lx:",(ulong) lock); + if ((lock->write_wait.data || lock->read_wait.data) && + (! lock->read.data && ! lock->write.data)) + printf(" WARNING: "); + if (lock->write.data) + printf(" write"); + if (lock->write_wait.data) + printf(" write_wait"); + if (lock->read.data) + printf(" read"); + if (lock->read_wait.data) + printf(" read_wait"); + puts(""); + thr_print_lock("write",&lock->write); + thr_print_lock("write_wait",&lock->write_wait); + thr_print_lock("read",&lock->read); + thr_print_lock("read_wait",&lock->read_wait); + mysql_mutex_unlock(&lock->mutex); + puts(""); + } + fflush(stdout); + mysql_mutex_unlock(&THR_LOCK_lock); +} + + +/***************************************************************************** +** Test of thread locks +****************************************************************************/ + +#ifdef MAIN + +struct st_test { + uint lock_nr; + enum thr_lock_type lock_type; +}; + +THR_LOCK locks[5]; /* 4 locks */ + +struct st_test test_0[] = {{0,TL_READ}}; /* One lock */ +struct st_test test_1[] = {{0,TL_READ},{0,TL_WRITE}}; /* Read and write lock of lock 0 */ +struct st_test test_2[] = {{1,TL_WRITE},{0,TL_READ},{2,TL_READ}}; +struct st_test test_3[] = {{2,TL_WRITE},{1,TL_READ},{0,TL_READ}}; /* Deadlock with test_2 ? */ +struct st_test test_4[] = {{0,TL_WRITE},{0,TL_READ},{0,TL_WRITE},{0,TL_READ}}; +struct st_test test_5[] = {{0,TL_READ},{1,TL_READ},{2,TL_READ},{3,TL_READ}}; /* Many reads */ +struct st_test test_6[] = {{0,TL_WRITE},{1,TL_WRITE},{2,TL_WRITE},{3,TL_WRITE}}; /* Many writes */ +struct st_test test_7[] = {{3,TL_READ}}; +struct st_test test_8[] = {{1,TL_READ_NO_INSERT},{2,TL_READ_NO_INSERT},{3,TL_READ_NO_INSERT}}; /* Should be quick */ +struct st_test test_9[] = {{4,TL_READ_HIGH_PRIORITY}}; +struct st_test test_10[] ={{4,TL_WRITE}}; +struct st_test test_11[] = {{0,TL_WRITE_LOW_PRIORITY},{1,TL_WRITE_LOW_PRIORITY},{2,TL_WRITE_LOW_PRIORITY},{3,TL_WRITE_LOW_PRIORITY}}; /* Many writes */ +struct st_test test_12[] = {{0,TL_WRITE_CONCURRENT_INSERT},{1,TL_WRITE_CONCURRENT_INSERT},{2,TL_WRITE_CONCURRENT_INSERT},{3,TL_WRITE_CONCURRENT_INSERT}}; +struct st_test test_13[] = {{0,TL_WRITE_CONCURRENT_INSERT},{1,TL_READ}}; +struct st_test test_14[] = {{0,TL_WRITE_ALLOW_WRITE},{1,TL_READ}}; +struct st_test test_15[] = {{0,TL_WRITE_ALLOW_WRITE},{1,TL_WRITE_ALLOW_WRITE}}; + +struct st_test *tests[] = {test_0,test_1,test_2,test_3,test_4,test_5,test_6, + test_7,test_8,test_9,test_10,test_11,test_12, + test_13,test_14,test_15}; +int lock_counts[]= {sizeof(test_0)/sizeof(struct st_test), + sizeof(test_1)/sizeof(struct st_test), + sizeof(test_2)/sizeof(struct st_test), + sizeof(test_3)/sizeof(struct st_test), + sizeof(test_4)/sizeof(struct st_test), + sizeof(test_5)/sizeof(struct st_test), + sizeof(test_6)/sizeof(struct st_test), + sizeof(test_7)/sizeof(struct st_test), + sizeof(test_8)/sizeof(struct st_test), + sizeof(test_9)/sizeof(struct st_test), + sizeof(test_10)/sizeof(struct st_test), + sizeof(test_11)/sizeof(struct st_test), + sizeof(test_12)/sizeof(struct st_test), + sizeof(test_13)/sizeof(struct st_test), + sizeof(test_14)/sizeof(struct st_test), + sizeof(test_15)/sizeof(struct st_test) +}; + + +static mysql_cond_t COND_thread_count; +static mysql_mutex_t LOCK_thread_count; +static uint thread_count; +static ulong sum=0; + +#define MAX_LOCK_COUNT 8 +#define TEST_TIMEOUT 100000 + +/* The following functions is for WRITE_CONCURRENT_INSERT */ + +static void test_get_status(void* param MY_ATTRIBUTE((unused)), + int concurrent_insert MY_ATTRIBUTE((unused))) +{ +} + +static void test_update_status(void* param MY_ATTRIBUTE((unused))) +{ +} + +static void test_copy_status(void* to MY_ATTRIBUTE((unused)) , + void *from MY_ATTRIBUTE((unused))) +{ +} + +static my_bool test_check_status(void* param MY_ATTRIBUTE((unused))) +{ + return 0; +} + + +static void *test_thread(void *arg) +{ + int i,j,param=*((int*) arg); + THR_LOCK_DATA data[MAX_LOCK_COUNT]; + THR_LOCK_INFO lock_info; + THR_LOCK_DATA *multi_locks[MAX_LOCK_COUNT]; + my_thread_id id; + mysql_cond_t COND_thr_lock; + + id= param + 1; /* Main thread uses value 0. */ + mysql_cond_init(0, &COND_thr_lock); + + printf("Thread T@%d started\n", id); + fflush(stdout); + + thr_lock_info_init(&lock_info, id, &COND_thr_lock); + for (i=0; i < lock_counts[param] ; i++) + { + thr_lock_data_init(locks+tests[param][i].lock_nr,data+i,NULL); + data[i].m_psi= NULL; + } + for (j=1 ; j < 10 ; j++) /* try locking 10 times */ + { + for (i=0; i < lock_counts[param] ; i++) + { /* Init multi locks */ + multi_locks[i]= &data[i]; + data[i].type= tests[param][i].lock_type; + } + thr_multi_lock(multi_locks, lock_counts[param], &lock_info, TEST_TIMEOUT); + mysql_mutex_lock(&LOCK_thread_count); + { + int tmp=rand() & 7; /* Do something from 0-2 sec */ + if (tmp == 0) + sleep(1); + else if (tmp == 1) + sleep(2); + else + { + ulong k; + for (k=0 ; k < (ulong) (tmp-2)*100000L ; k++) + sum+=k; + } + } + mysql_mutex_unlock(&LOCK_thread_count); + thr_multi_unlock(multi_locks,lock_counts[param]); + } + + printf("Thread T@%d ended\n", id); + fflush(stdout); + thr_print_locks(); + mysql_mutex_lock(&LOCK_thread_count); + thread_count--; + mysql_cond_signal(&COND_thread_count); /* Tell main we are ready */ + mysql_mutex_unlock(&LOCK_thread_count); + mysql_cond_destroy(&COND_thr_lock); + free((uchar*) arg); + return 0; +} + + +int main(int argc MY_ATTRIBUTE((unused)),char **argv MY_ATTRIBUTE((unused))) +{ + my_thread_handle tid; + my_thread_attr_t thr_attr; + int i,*param,error; + MY_INIT(argv[0]); + if (argc > 1 && argv[1][0] == '-' && argv[1][1] == '#') + DBUG_PUSH(argv[1]+2); + + printf("Main thread: T@%u\n", 0); /* 0 for main thread, 1+ for test_thread */ + + if ((error= mysql_cond_init(0, &COND_thread_count))) + { + my_message_stderr(0, "Got error %d from mysql_cond_init", errno); + exit(1); + } + if ((error= mysql_mutex_init(0, &LOCK_thread_count, MY_MUTEX_INIT_FAST))) + { + my_message_stderr(0, "Got error %d from mysql_cond_init", errno); + exit(1); + } + + for (i=0 ; i < (int) array_elements(locks) ; i++) + { + thr_lock_init(locks+i); + locks[i].check_status= test_check_status; + locks[i].update_status=test_update_status; + locks[i].copy_status= test_copy_status; + locks[i].get_status= test_get_status; + } + if ((error=my_thread_attr_init(&thr_attr))) + { + my_message_stderr(0, "Got error %d from pthread_attr_init",errno); + exit(1); + } + if ((error= my_thread_attr_setdetachstate(&thr_attr, MY_THREAD_CREATE_DETACHED))) + { + my_message_stderr(0, "Got error %d from " + "my_thread_attr_setdetachstate", errno); + exit(1); + } + if ((error= my_thread_attr_setstacksize(&thr_attr,65536L))) + { + my_message_stderr(0, "Got error %d from " + "my_thread_attr_setstacksize", error); + exit(1); + } + for (i=0 ; i < (int) array_elements(lock_counts) ; i++) + { + param=(int*) malloc(sizeof(int)); + *param=i; + + if ((error= mysql_mutex_lock(&LOCK_thread_count))) + { + my_message_stderr(0, "Got error %d from mysql_mutex_lock", + errno); + exit(1); + } + if ((error= mysql_thread_create(0, + &tid, &thr_attr, test_thread, + (void*) param))) + { + my_message_stderr(0, "Got error %d from mysql_thread_create", + errno); + mysql_mutex_unlock(&LOCK_thread_count); + exit(1); + } + thread_count++; + mysql_mutex_unlock(&LOCK_thread_count); + } + + my_thread_attr_destroy(&thr_attr); + if ((error= mysql_mutex_lock(&LOCK_thread_count))) + my_message_stderr(0, "Got error %d from mysql_mutex_lock", error); + while (thread_count) + { + if ((error= mysql_cond_wait(&COND_thread_count, &LOCK_thread_count))) + my_message_stderr(0, "Got error %d from mysql_cond_wait", + error); + } + if ((error= mysql_mutex_unlock(&LOCK_thread_count))) + my_message_stderr(0, "Got error %d from mysql_mutex_unlock", + error); + for (i=0 ; i < (int) array_elements(locks) ; i++) + thr_lock_delete(locks+i); +#ifdef EXTRA_DEBUG + if (found_errors) + printf("Got %d warnings\n", found_errors); + else +#endif + printf("Test succeeded\n"); + return 0; +} + +#endif /* MAIN */ diff --git a/mysql/mysys/thr_mutex.c b/mysql/mysys/thr_mutex.c new file mode 100644 index 0000000..f0396b7 --- /dev/null +++ b/mysql/mysys/thr_mutex.c @@ -0,0 +1,195 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "thr_mutex.h" +#include "my_thread_local.h" + +#if defined(SAFE_MUTEX) +/* This makes a wrapper for mutex handling to make it easier to debug mutex */ + +static my_bool safe_mutex_inited= FALSE; + +/** + While it looks like this function is pointless, it makes it possible to + catch usage of global static mutexes. Since the order of construction of + global objects in different compilation units is undefined, this is + quite useful. +*/ +void safe_mutex_global_init(void) +{ + safe_mutex_inited= TRUE; +} + + +int safe_mutex_init(my_mutex_t *mp, const native_mutexattr_t *attr, + const char *file, uint line) +{ + DBUG_ASSERT(safe_mutex_inited); + memset(mp, 0, sizeof(*mp)); + native_mutex_init(&mp->global,MY_MUTEX_INIT_ERRCHK); + native_mutex_init(&mp->mutex,attr); + /* Mark that mutex is initialized */ + mp->file= file; + mp->line= line; + return 0; +} + + +int safe_mutex_lock(my_mutex_t *mp, my_bool try_lock, + const char *file, uint line) +{ + int error; + native_mutex_lock(&mp->global); + if (!mp->file) + { + native_mutex_unlock(&mp->global); + fprintf(stderr, + "safe_mutex: Trying to lock uninitialized mutex at %s, line %d\n", + file, line); + fflush(stderr); + abort(); + } + + if (mp->count > 0) + { + if (try_lock) + { + native_mutex_unlock(&mp->global); + return EBUSY; + } + else if (my_thread_equal(my_thread_self(),mp->thread)) + { +#ifndef DBUG_OFF + fprintf(stderr, + "safe_mutex: Trying to lock mutex at %s, line %d, when the" + " mutex was already locked at %s, line %d in thread T@%u\n", + file, line, mp->file, mp->line, my_thread_var_id()); + fflush(stderr); +#endif + abort(); + } + } + native_mutex_unlock(&mp->global); + + /* + If we are imitating trylock(), we need to take special + precautions. + + - We cannot use pthread_mutex_lock() only since another thread can + overtake this thread and take the lock before this thread + causing pthread_mutex_trylock() to hang. In this case, we should + just return EBUSY. Hence, we use pthread_mutex_trylock() to be + able to return immediately. + + - We cannot just use trylock() and continue execution below, since + this would generate an error and abort execution if the thread + was overtaken and trylock() returned EBUSY . In this case, we + instead just return EBUSY, since this is the expected behaviour + of trylock(). + */ + if (try_lock) + { + error= native_mutex_trylock(&mp->mutex); + if (error == EBUSY) + return error; + } + else + error= native_mutex_lock(&mp->mutex); + + if (error || (error=native_mutex_lock(&mp->global))) + { + fprintf(stderr,"Got error %d when trying to lock mutex at %s, line %d\n", + error, file, line); + fflush(stderr); + abort(); + } + mp->thread= my_thread_self(); + if (mp->count++) + { + fprintf(stderr,"safe_mutex: Error in thread libray: Got mutex at %s, \ +line %d more than 1 time\n", file,line); + fflush(stderr); + abort(); + } + mp->file= file; + mp->line=line; + native_mutex_unlock(&mp->global); + return error; +} + + +int safe_mutex_unlock(my_mutex_t *mp, const char *file, uint line) +{ + int error; + native_mutex_lock(&mp->global); + if (mp->count == 0) + { + fprintf(stderr,"safe_mutex: Trying to unlock mutex that wasn't locked at %s, line %d\n Last used at %s, line: %d\n", + file,line,mp->file ? mp->file : "",mp->line); + fflush(stderr); + abort(); + } + if (!my_thread_equal(my_thread_self(),mp->thread)) + { + fprintf(stderr,"safe_mutex: Trying to unlock mutex at %s, line %d that was locked by another thread at: %s, line: %d\n", + file,line,mp->file,mp->line); + fflush(stderr); + abort(); + } + mp->thread= 0; + mp->count--; + error=native_mutex_unlock(&mp->mutex); + if (error) + { + fprintf(stderr,"safe_mutex: Got error: %d (%d) when trying to unlock mutex at %s, line %d\n", error, errno, file, line); + fflush(stderr); + abort(); + } + native_mutex_unlock(&mp->global); + return error; +} + + +int safe_mutex_destroy(my_mutex_t *mp, const char *file, uint line) +{ + int error=0; + native_mutex_lock(&mp->global); + if (!mp->file) + { + native_mutex_unlock(&mp->global); + fprintf(stderr, + "safe_mutex: Trying to destroy uninitialized mutex at %s, line %d\n", + file, line); + fflush(stderr); + abort(); + } + if (mp->count != 0) + { + native_mutex_unlock(&mp->global); + fprintf(stderr,"safe_mutex: Trying to destroy a mutex that was locked at %s, line %d at %s, line %d\n", + mp->file,mp->line, file, line); + fflush(stderr); + abort(); + } + native_mutex_unlock(&mp->global); + if (native_mutex_destroy(&mp->global)) + error=1; + if (native_mutex_destroy(&mp->mutex)) + error=1; + mp->file= 0; /* Mark destroyed */ + return error; +} + +#endif /* SAFE_MUTEX */ diff --git a/mysql/mysys/thr_rwlock.c b/mysql/mysys/thr_rwlock.c new file mode 100644 index 0000000..cadedda --- /dev/null +++ b/mysql/mysys/thr_rwlock.c @@ -0,0 +1,139 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* Synchronization - readers / writer thread locks */ + +#include "thr_rwlock.h" + +int rw_pr_init(rw_pr_lock_t *rwlock) +{ + native_mutex_init(&rwlock->lock, NULL); + native_cond_init(&rwlock->no_active_readers); + rwlock->active_readers= 0; + rwlock->writers_waiting_readers= 0; + rwlock->active_writer= FALSE; +#ifdef SAFE_MUTEX + rwlock->writer_thread= 0; +#endif + return 0; +} + + +int rw_pr_destroy(rw_pr_lock_t *rwlock) +{ + native_cond_destroy(&rwlock->no_active_readers); + native_mutex_destroy(&rwlock->lock); + return 0; +} + + +int rw_pr_rdlock(rw_pr_lock_t *rwlock) +{ + native_mutex_lock(&rwlock->lock); + /* + The fact that we were able to acquire 'lock' mutex means + that there are no active writers and we can acquire rd-lock. + Increment active readers counter to prevent requests for + wr-lock from succeeding and unlock mutex. + */ + rwlock->active_readers++; + native_mutex_unlock(&rwlock->lock); + return 0; +} + + +int rw_pr_wrlock(rw_pr_lock_t *rwlock) +{ + native_mutex_lock(&rwlock->lock); + + if (rwlock->active_readers != 0) + { + /* There are active readers. We have to wait until they are gone. */ + rwlock->writers_waiting_readers++; + + while (rwlock->active_readers != 0) + native_cond_wait(&rwlock->no_active_readers, &rwlock->lock); + + rwlock->writers_waiting_readers--; + } + + /* + We own 'lock' mutex so there is no active writers. + Also there are no active readers. + This means that we can grant wr-lock. + Not releasing 'lock' mutex until unlock will block + both requests for rd and wr-locks. + Set 'active_writer' flag to simplify unlock. + + Thanks to the fact wr-lock/unlock in the absence of + contention from readers is essentially mutex lock/unlock + with a few simple checks make this rwlock implementation + wr-lock optimized. + */ + rwlock->active_writer= TRUE; +#ifdef SAFE_MUTEX + rwlock->writer_thread= my_thread_self(); +#endif + return 0; +} + + +int rw_pr_unlock(rw_pr_lock_t *rwlock) +{ + if (rwlock->active_writer) + { + /* We are unlocking wr-lock. */ +#ifdef SAFE_MUTEX + rwlock->writer_thread= 0; +#endif + rwlock->active_writer= FALSE; + if (rwlock->writers_waiting_readers) + { + /* + Avoid expensive cond signal in case when there is no contention + or it is wr-only. + + Note that from view point of performance it would be better to + signal on the condition variable after unlocking mutex (as it + reduces number of contex switches). + + Unfortunately this would mean that such rwlock can't be safely + used by MDL subsystem, which relies on the fact that it is OK + to destroy rwlock once it is in unlocked state. + */ + native_cond_signal(&rwlock->no_active_readers); + } + native_mutex_unlock(&rwlock->lock); + } + else + { + /* We are unlocking rd-lock. */ + native_mutex_lock(&rwlock->lock); + rwlock->active_readers--; + if (rwlock->active_readers == 0 && + rwlock->writers_waiting_readers) + { + /* + If we are last reader and there are waiting + writers wake them up. + */ + native_cond_signal(&rwlock->no_active_readers); + } + native_mutex_unlock(&rwlock->lock); + } + return 0; +} + + diff --git a/mysql/mysys/tree.c b/mysql/mysys/tree.c new file mode 100644 index 0000000..1f21b67 --- /dev/null +++ b/mysql/mysys/tree.c @@ -0,0 +1,760 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Code for handling red-black (balanced) binary trees. + key in tree is allocated accrding to following: + + 1) If size < 0 then tree will not allocate keys and only a pointer to + each key is saved in tree. + compare and search functions uses and returns key-pointer + + 2) If size == 0 then there are two options: + - key_size != 0 to tree_insert: The key will be stored in the tree. + - key_size == 0 to tree_insert: A pointer to the key is stored. + compare and search functions uses and returns key-pointer. + + 3) if key_size is given to init_tree then each node will continue the + key and calls to insert_key may increase length of key. + if key_size > sizeof(pointer) and key_size is a multiple of 8 (double + allign) then key will be put on a 8 alligned adress. Else + the key will be on adress (element+1). This is transparent for user + compare and search functions uses a pointer to given key-argument. + + - If you use a free function for tree-elements and you are freeing + the element itself, you should use key_size = 0 to init_tree and + tree_search + + The actual key in TREE_ELEMENT is saved as a pointer or after the + TREE_ELEMENT struct. + If one uses only pointers in tree one can use tree_set_pointer() to + change address of data. + + Implemented by monty. +*/ + +/* + NOTE: + tree->compare function should be ALWAYS called as + (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element), key) + and not other way around, as + (*tree->compare)(custom_arg, key, ELEMENT_KEY(tree,element)) + + ft_boolean_search.c (at least) relies on that. +*/ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include +#include "my_base.h" + +#define BLACK 1 +#define RED 0 +#define DEFAULT_ALLOC_SIZE 8192 +#define DEFAULT_ALIGN_SIZE 8192 + +static void delete_tree_element(TREE *,TREE_ELEMENT *); +static int tree_walk_left_root_right(TREE *,TREE_ELEMENT *, + tree_walk_action,void *); +static int tree_walk_right_root_left(TREE *,TREE_ELEMENT *, + tree_walk_action,void *); +static void left_rotate(TREE_ELEMENT **parent,TREE_ELEMENT *leaf); +static void right_rotate(TREE_ELEMENT **parent, TREE_ELEMENT *leaf); +static void rb_insert(TREE *tree,TREE_ELEMENT ***parent, + TREE_ELEMENT *leaf); +static void rb_delete_fixup(TREE *tree,TREE_ELEMENT ***parent); + + + /* The actuall code for handling binary trees */ + +#ifndef DBUG_OFF +static int test_rb_tree(TREE_ELEMENT *element); +#endif + +void init_tree(TREE *tree, size_t default_alloc_size, ulong memory_limit, + int size, qsort_cmp2 compare, my_bool with_delete, + tree_element_free free_element, const void *custom_arg) +{ + DBUG_ENTER("init_tree"); + DBUG_PRINT("enter",("tree: 0x%lx size: %d", (long) tree, size)); + + if (default_alloc_size < DEFAULT_ALLOC_SIZE) + default_alloc_size= DEFAULT_ALLOC_SIZE; + default_alloc_size= MY_ALIGN(default_alloc_size, DEFAULT_ALIGN_SIZE); + memset(&tree->null_element, 0, sizeof(tree->null_element)); + tree->root= &tree->null_element; + tree->compare=compare; + tree->size_of_element=size > 0 ? (uint) size : 0; + tree->memory_limit=memory_limit; + tree->free=free_element; + tree->allocated=0; + tree->elements_in_tree=0; + tree->custom_arg = custom_arg; + tree->null_element.colour=BLACK; + tree->null_element.left=tree->null_element.right=0; + tree->flag= 0; + if (!free_element && size >= 0 && + ((uint) size <= sizeof(void*) || ((uint) size & (sizeof(void*)-1)))) + { + /* + We know that the data doesn't have to be aligned (like if the key + contains a double), so we can store the data combined with the + TREE_ELEMENT. + */ + tree->offset_to_key=sizeof(TREE_ELEMENT); /* Put key after element */ + /* Fix allocation size so that we don't lose any memory */ + default_alloc_size/=(sizeof(TREE_ELEMENT)+size); + if (!default_alloc_size) + default_alloc_size=1; + default_alloc_size*=(sizeof(TREE_ELEMENT)+size); + } + else + { + tree->offset_to_key=0; /* use key through pointer */ + tree->size_of_element+=sizeof(void*); + } + if (!(tree->with_delete=with_delete)) + { + init_alloc_root(key_memory_TREE, + &tree->mem_root, default_alloc_size, 0); + tree->mem_root.min_malloc=(sizeof(TREE_ELEMENT)+tree->size_of_element); + } + DBUG_VOID_RETURN; +} + +static void free_tree(TREE *tree, myf free_flags) +{ + DBUG_ENTER("free_tree"); + DBUG_PRINT("enter",("tree: 0x%lx", (long) tree)); + + if (tree->root) /* If initialized */ + { + if (tree->with_delete) + delete_tree_element(tree,tree->root); + else + { + if (tree->free) + { + if (tree->memory_limit) + (*tree->free)(NULL, free_init, tree->custom_arg); + delete_tree_element(tree,tree->root); + if (tree->memory_limit) + (*tree->free)(NULL, free_end, tree->custom_arg); + } + free_root(&tree->mem_root, free_flags); + } + } + tree->root= &tree->null_element; + tree->elements_in_tree=0; + tree->allocated=0; + + DBUG_VOID_RETURN; +} + +void delete_tree(TREE* tree) +{ + free_tree(tree, MYF(0)); /* my_free() mem_root if applicable */ +} + +void reset_tree(TREE* tree) +{ + /* do not free mem_root, just mark blocks as free */ + free_tree(tree, MYF(MY_MARK_BLOCKS_FREE)); +} + + +static void delete_tree_element(TREE *tree, TREE_ELEMENT *element) +{ + if (element != &tree->null_element) + { + delete_tree_element(tree,element->left); + if (tree->free) + (*tree->free)(ELEMENT_KEY(tree,element), free_free, tree->custom_arg); + delete_tree_element(tree,element->right); + if (tree->with_delete) + my_free(element); + } +} + + +/* + insert, search and delete of elements + + The following should be true: + parent[0] = & parent[-1][0]->left || + parent[0] = & parent[-1][0]->right +*/ + +TREE_ELEMENT *tree_insert(TREE *tree, void *key, uint key_size, + const void* custom_arg) +{ + int cmp; + TREE_ELEMENT *element,***parent; + + parent= tree->parents; + *parent = &tree->root; element= tree->root; + for (;;) + { + if (element == &tree->null_element || + (cmp = (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element), + key)) == 0) + break; + if (cmp < 0) + { + *++parent= &element->right; element= element->right; + } + else + { + *++parent = &element->left; element= element->left; + } + } + if (element == &tree->null_element) + { + uint alloc_size=sizeof(TREE_ELEMENT)+key_size+tree->size_of_element; + tree->allocated+=alloc_size; + + if (tree->memory_limit && tree->elements_in_tree + && tree->allocated > tree->memory_limit) + { + reset_tree(tree); + return tree_insert(tree, key, key_size, custom_arg); + } + + key_size+=tree->size_of_element; + if (tree->with_delete) + element=(TREE_ELEMENT *) my_malloc(key_memory_TREE, + alloc_size, MYF(MY_WME)); + else + element=(TREE_ELEMENT *) alloc_root(&tree->mem_root,alloc_size); + if (!element) + return(NULL); + **parent=element; + element->left=element->right= &tree->null_element; + if (!tree->offset_to_key) + { + if (key_size == sizeof(void*)) /* no length, save pointer */ + *((void**) (element+1))=key; + else + { + *((void**) (element+1))= (void*) ((void **) (element+1)+1); + memcpy((uchar*) *((void **) (element+1)),key, + (size_t) (key_size-sizeof(void*))); + } + } + else + memcpy((uchar*) element+tree->offset_to_key,key,(size_t) key_size); + element->count=1; + tree->elements_in_tree++; + rb_insert(tree,parent,element); /* rebalance tree */ + } + else + { + if (tree->flag & TREE_NO_DUPS) + return(NULL); + element->count++; + /* Avoid a wrap over of the count. */ + if (! element->count) + element->count--; + } + DBUG_EXECUTE("check_tree", test_rb_tree(tree->root);); + return element; +} + +int tree_delete(TREE *tree, void *key, uint key_size, const void *custom_arg) +{ + int cmp,remove_colour; + TREE_ELEMENT *element,***parent, ***org_parent, *nod; + if (!tree->with_delete) + return 1; /* not allowed */ + + parent= tree->parents; + *parent= &tree->root; element= tree->root; + for (;;) + { + if (element == &tree->null_element) + return 1; /* Was not in tree */ + if ((cmp = (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element), + key)) == 0) + break; + if (cmp < 0) + { + *++parent= &element->right; element= element->right; + } + else + { + *++parent = &element->left; element= element->left; + } + } + if (element->left == &tree->null_element) + { + (**parent)=element->right; + remove_colour= element->colour; + } + else if (element->right == &tree->null_element) + { + (**parent)=element->left; + remove_colour= element->colour; + } + else + { + org_parent= parent; + *++parent= &element->right; nod= element->right; + while (nod->left != &tree->null_element) + { + *++parent= &nod->left; nod= nod->left; + } + (**parent)=nod->right; /* unlink nod from tree */ + remove_colour= nod->colour; + org_parent[0][0]=nod; /* put y in place of element */ + org_parent[1]= &nod->right; + nod->left=element->left; + nod->right=element->right; + nod->colour=element->colour; + } + if (remove_colour == BLACK) + rb_delete_fixup(tree,parent); + if (tree->free) + (*tree->free)(ELEMENT_KEY(tree,element), free_free, tree->custom_arg); + tree->allocated-= sizeof(TREE_ELEMENT) + tree->size_of_element + key_size; + my_free(element); + tree->elements_in_tree--; + return 0; +} + + +void *tree_search(TREE *tree, void *key, const void *custom_arg) +{ + int cmp; + TREE_ELEMENT *element=tree->root; + + for (;;) + { + if (element == &tree->null_element) + return (void*) 0; + if ((cmp = (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element), + key)) == 0) + return ELEMENT_KEY(tree,element); + if (cmp < 0) + element=element->right; + else + element=element->left; + } +} + +void *tree_search_key(TREE *tree, const void *key, + TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, + enum ha_rkey_function flag, const void *custom_arg) +{ + int cmp; + TREE_ELEMENT *element= tree->root; + TREE_ELEMENT **last_left_step_parent= NULL, **last_right_step_parent= NULL; + TREE_ELEMENT **last_equal_element= NULL; + +/* + TODO: support for HA_READ_KEY_OR_PREV, HA_READ_PREFIX flags if needed. +*/ + + *parents = &tree->null_element; + while (element != &tree->null_element) + { + *++parents= element; + if ((cmp= (*tree->compare)(custom_arg, ELEMENT_KEY(tree, element), + key)) == 0) + { + switch (flag) { + case HA_READ_KEY_EXACT: + case HA_READ_KEY_OR_NEXT: + case HA_READ_BEFORE_KEY: + last_equal_element= parents; + cmp= 1; + break; + case HA_READ_AFTER_KEY: + cmp= -1; + break; + case HA_READ_PREFIX_LAST: + case HA_READ_PREFIX_LAST_OR_PREV: + last_equal_element= parents; + cmp= -1; + break; + default: + return NULL; + } + } + if (cmp < 0) /* element < key */ + { + last_right_step_parent= parents; + element= element->right; + } + else + { + last_left_step_parent= parents; + element= element->left; + } + } + switch (flag) { + case HA_READ_KEY_EXACT: + case HA_READ_PREFIX_LAST: + *last_pos= last_equal_element; + break; + case HA_READ_KEY_OR_NEXT: + *last_pos= last_equal_element ? last_equal_element : last_left_step_parent; + break; + case HA_READ_AFTER_KEY: + *last_pos= last_left_step_parent; + break; + case HA_READ_PREFIX_LAST_OR_PREV: + *last_pos= last_equal_element ? last_equal_element : last_right_step_parent; + break; + case HA_READ_BEFORE_KEY: + *last_pos= last_right_step_parent; + break; + default: + return NULL; + } + return *last_pos ? ELEMENT_KEY(tree, **last_pos) : NULL; +} + +/* + Search first (the most left) or last (the most right) tree element +*/ +void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents, + TREE_ELEMENT ***last_pos, int child_offs) +{ + TREE_ELEMENT *element= tree->root; + + *parents= &tree->null_element; + while (element != &tree->null_element) + { + *++parents= element; + element= ELEMENT_CHILD(element, child_offs); + } + *last_pos= parents; + return **last_pos != &tree->null_element ? + ELEMENT_KEY(tree, **last_pos) : NULL; +} + +void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs, + int r_offs) +{ + TREE_ELEMENT *x= **last_pos; + + if (ELEMENT_CHILD(x, r_offs) != &tree->null_element) + { + x= ELEMENT_CHILD(x, r_offs); + *++*last_pos= x; + while (ELEMENT_CHILD(x, l_offs) != &tree->null_element) + { + x= ELEMENT_CHILD(x, l_offs); + *++*last_pos= x; + } + return ELEMENT_KEY(tree, x); + } + else + { + TREE_ELEMENT *y= *--*last_pos; + while (y != &tree->null_element && x == ELEMENT_CHILD(y, r_offs)) + { + x= y; + y= *--*last_pos; + } + return y == &tree->null_element ? NULL : ELEMENT_KEY(tree, y); + } +} + +/* + Expected that tree is fully balanced + (each path from root to leaf has the same length) +*/ +ha_rows tree_record_pos(TREE *tree, const void *key, + enum ha_rkey_function flag, const void *custom_arg) +{ + int cmp; + TREE_ELEMENT *element= tree->root; + double left= 1; + double right= tree->elements_in_tree; + + while (element != &tree->null_element) + { + if ((cmp= (*tree->compare)(custom_arg, ELEMENT_KEY(tree, element), + key)) == 0) + { + switch (flag) { + case HA_READ_KEY_EXACT: + case HA_READ_BEFORE_KEY: + cmp= 1; + break; + case HA_READ_AFTER_KEY: + cmp= -1; + break; + default: + return HA_POS_ERROR; + } + } + if (cmp < 0) /* element < key */ + { + element= element->right; + left= (left + right) / 2; + } + else + { + element= element->left; + right= (left + right) / 2; + } + } + switch (flag) { + case HA_READ_KEY_EXACT: + case HA_READ_BEFORE_KEY: + return (ha_rows) right; + case HA_READ_AFTER_KEY: + return (ha_rows) left; + default: + return HA_POS_ERROR; + } +} + +int tree_walk(TREE *tree, tree_walk_action action, void *argument, TREE_WALK visit) +{ + switch (visit) { + case left_root_right: + return tree_walk_left_root_right(tree,tree->root,action,argument); + case right_root_left: + return tree_walk_right_root_left(tree,tree->root,action,argument); + } + return 0; /* Keep gcc happy */ +} + +static int tree_walk_left_root_right(TREE *tree, TREE_ELEMENT *element, tree_walk_action action, void *argument) +{ + int error; + if (element->left) /* Not null_element */ + { + if ((error=tree_walk_left_root_right(tree,element->left,action, + argument)) == 0 && + (error=(*action)(ELEMENT_KEY(tree,element), + (element_count) element->count, + argument)) == 0) + error=tree_walk_left_root_right(tree,element->right,action,argument); + return error; + } + return 0; +} + +static int tree_walk_right_root_left(TREE *tree, TREE_ELEMENT *element, tree_walk_action action, void *argument) +{ + int error; + if (element->right) /* Not null_element */ + { + if ((error=tree_walk_right_root_left(tree,element->right,action, + argument)) == 0 && + (error=(*action)(ELEMENT_KEY(tree,element), + (element_count) element->count, + argument)) == 0) + error=tree_walk_right_root_left(tree,element->left,action,argument); + return error; + } + return 0; +} + + + /* Functions to fix up the tree after insert and delete */ + +static void left_rotate(TREE_ELEMENT **parent, TREE_ELEMENT *leaf) +{ + TREE_ELEMENT *y; + + y=leaf->right; + leaf->right=y->left; + parent[0]=y; + y->left=leaf; +} + +static void right_rotate(TREE_ELEMENT **parent, TREE_ELEMENT *leaf) +{ + TREE_ELEMENT *x; + + x=leaf->left; + leaf->left=x->right; + parent[0]=x; + x->right=leaf; +} + +static void rb_insert(TREE *tree, TREE_ELEMENT ***parent, TREE_ELEMENT *leaf) +{ + TREE_ELEMENT *y,*par,*par2; + + leaf->colour=RED; + while (leaf != tree->root && (par=parent[-1][0])->colour == RED) + { + if (par == (par2=parent[-2][0])->left) + { + y= par2->right; + if (y->colour == RED) + { + par->colour=BLACK; + y->colour=BLACK; + leaf=par2; + parent-=2; + leaf->colour=RED; /* And the loop continues */ + } + else + { + if (leaf == par->right) + { + left_rotate(parent[-1],par); + par=leaf; /* leaf is now parent to old leaf */ + } + par->colour=BLACK; + par2->colour=RED; + right_rotate(parent[-2],par2); + break; + } + } + else + { + y= par2->left; + if (y->colour == RED) + { + par->colour=BLACK; + y->colour=BLACK; + leaf=par2; + parent-=2; + leaf->colour=RED; /* And the loop continues */ + } + else + { + if (leaf == par->left) + { + right_rotate(parent[-1],par); + par=leaf; + } + par->colour=BLACK; + par2->colour=RED; + left_rotate(parent[-2],par2); + break; + } + } + } + tree->root->colour=BLACK; +} + +static void rb_delete_fixup(TREE *tree, TREE_ELEMENT ***parent) +{ + TREE_ELEMENT *x,*w,*par; + + x= **parent; + while (x != tree->root && x->colour == BLACK) + { + if (x == (par=parent[-1][0])->left) + { + w=par->right; + if (w->colour == RED) + { + w->colour=BLACK; + par->colour=RED; + left_rotate(parent[-1],par); + parent[0]= &w->left; + *++parent= &par->left; + w=par->right; + } + if (w->left->colour == BLACK && w->right->colour == BLACK) + { + w->colour=RED; + x=par; + parent--; + } + else + { + if (w->right->colour == BLACK) + { + w->left->colour=BLACK; + w->colour=RED; + right_rotate(&par->right,w); + w=par->right; + } + w->colour=par->colour; + par->colour=BLACK; + w->right->colour=BLACK; + left_rotate(parent[-1],par); + x=tree->root; + break; + } + } + else + { + w=par->left; + if (w->colour == RED) + { + w->colour=BLACK; + par->colour=RED; + right_rotate(parent[-1],par); + parent[0]= &w->right; + *++parent= &par->right; + w=par->left; + } + if (w->right->colour == BLACK && w->left->colour == BLACK) + { + w->colour=RED; + x=par; + parent--; + } + else + { + if (w->left->colour == BLACK) + { + w->right->colour=BLACK; + w->colour=RED; + left_rotate(&par->left,w); + w=par->left; + } + w->colour=par->colour; + par->colour=BLACK; + w->left->colour=BLACK; + right_rotate(parent[-1],par); + x=tree->root; + break; + } + } + } + x->colour=BLACK; +} + +#ifndef DBUG_OFF + + /* Test that the proporties for a red-black tree holds */ + +static int test_rb_tree(TREE_ELEMENT *element) +{ + int count_l,count_r; + + if (!element->left) + return 0; /* Found end of tree */ + if (element->colour == RED && + (element->left->colour == RED || element->right->colour == RED)) + { + printf("Wrong tree: Found two red in a row\n"); + return -1; + } + count_l=test_rb_tree(element->left); + count_r=test_rb_tree(element->right); + if (count_l >= 0 && count_r >= 0) + { + if (count_l == count_r) + return count_l+(element->colour == BLACK); + printf("Wrong tree: Incorrect black-count: %d - %d\n",count_l,count_r); + } + return -1; +} +#endif diff --git a/mysql/mysys/typelib.c b/mysql/mysys/typelib.c new file mode 100644 index 0000000..247c4d9 --- /dev/null +++ b/mysql/mysys/typelib.c @@ -0,0 +1,388 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* Functions to handle typelib */ + +#include "mysys_priv.h" +#include "my_sys.h" +#include +#include + + +#define is_field_separator(X) ((X) == ',' || (X) == '=') + +int find_type_or_exit(const char *x, TYPELIB *typelib, const char *option) +{ + int res; + const char **ptr; + + if ((res= find_type((char *) x, typelib, FIND_TYPE_BASIC)) <= 0) + { + ptr= typelib->type_names; + if (!*x) + fprintf(stderr, "No option given to %s\n", option); + else + fprintf(stderr, "Unknown option to %s: %s\n", option, x); + fprintf(stderr, "Alternatives are: '%s'", *ptr); + while (*++ptr) + fprintf(stderr, ",'%s'", *ptr); + fprintf(stderr, "\n"); + exit(1); + } + return res; +} + + +/** + Search after a string in a list of strings. Endspace in x is not compared. + + @param x String to find + @param typelib TYPELIB (struct of pointer to values + count) + @param flags flags to tune behaviour: a combination of + FIND_TYPE_NO_PREFIX + FIND_TYPE_ALLOW_NUMBER + FIND_TYPE_COMMA_TERM. + FIND_TYPE_NO_OVERWRITE can be passed but is + superfluous (is always implicitely on). + + @retval + -1 Too many matching values + @retval + 0 No matching value + @retval + >0 Offset+1 in typelib for matched string +*/ + + +int find_type(const char *x, const TYPELIB *typelib, uint flags) +{ + int find,pos; + int findpos= 0; /* guarded by find */ + const char *i; + const char *j; + DBUG_ENTER("find_type"); + DBUG_PRINT("enter",("x: '%s' lib: 0x%lx", x, (long) typelib)); + + DBUG_ASSERT(!(flags & ~(FIND_TYPE_NO_PREFIX | FIND_TYPE_ALLOW_NUMBER | + FIND_TYPE_NO_OVERWRITE | FIND_TYPE_COMMA_TERM))); + if (!typelib->count) + { + DBUG_PRINT("exit",("no count")); + DBUG_RETURN(0); + } + find=0; + for (pos=0 ; (j=typelib->type_names[pos]) ; pos++) + { + for (i=x ; + *i && (!(flags & FIND_TYPE_COMMA_TERM) || !is_field_separator(*i)) && + my_toupper(&my_charset_latin1,*i) == + my_toupper(&my_charset_latin1,*j) ; i++, j++) ; + if (! *j) + { + while (*i == ' ') + i++; /* skip_end_space */ + if (! *i || ((flags & FIND_TYPE_COMMA_TERM) && is_field_separator(*i))) + DBUG_RETURN(pos+1); + } + if ((!*i && + (!(flags & FIND_TYPE_COMMA_TERM) || !is_field_separator(*i))) && + (!*j || !(flags & FIND_TYPE_NO_PREFIX))) + { + find++; + findpos=pos; + } + } + if (find == 0 && (flags & FIND_TYPE_ALLOW_NUMBER) && x[0] == '#' && + strend(x)[-1] == '#' && + (findpos=atoi(x+1)-1) >= 0 && (uint) findpos < typelib->count) + find=1; + else if (find == 0 || ! x[0]) + { + DBUG_PRINT("exit",("Couldn't find type")); + DBUG_RETURN(0); + } + else if (find != 1 || (flags & FIND_TYPE_NO_PREFIX)) + { + DBUG_PRINT("exit",("Too many possybilities")); + DBUG_RETURN(-1); + } + DBUG_RETURN(findpos+1); +} /* find_type */ + + +/** + Get name of type nr + + @note + first type is 1, 0 = empty field +*/ + +void make_type(char * to, uint nr, + TYPELIB *typelib) +{ + DBUG_ENTER("make_type"); + if (!nr) + to[0]=0; + else + (void) my_stpcpy(to,get_type(typelib,nr-1)); + DBUG_VOID_RETURN; +} /* make_type */ + + +/** + Get type + + @note + first type is 0 +*/ + +const char *get_type(TYPELIB *typelib, uint nr) +{ + if (nr < (uint) typelib->count && typelib->type_names) + return(typelib->type_names[nr]); + return "?"; +} + + +/** + Create an integer value to represent the supplied comma-seperated + string where each string in the TYPELIB denotes a bit position. + + @param x string to decompose + @param lib TYPELIB (struct of pointer to values + count) + @param err index (not char position) of string element which was not + found or 0 if there was no error + + @retval + a integer representation of the supplied string +*/ + +my_ulonglong find_typeset(char *x, TYPELIB *lib, int *err) +{ + my_ulonglong result; + int find; + char *i; + DBUG_ENTER("find_set"); + DBUG_PRINT("enter",("x: '%s' lib: 0x%lx", x, (long) lib)); + + if (!lib->count) + { + DBUG_PRINT("exit",("no count")); + DBUG_RETURN(0); + } + result= 0; + *err= 0; + while (*x) + { + (*err)++; + i= x; + while (*x && !is_field_separator(*x)) + x++; + if (x[0] && x[1]) /* skip separator if found */ + x++; + if ((find= find_type(i, lib, FIND_TYPE_COMMA_TERM) - 1) < 0) + DBUG_RETURN(0); + result|= (1ULL << find); + } + *err= 0; + DBUG_RETURN(result); +} /* find_set */ + + +/** + Create a copy of a specified TYPELIB structure. + + @param root pointer to a MEM_ROOT object for allocations + @param from pointer to a source TYPELIB structure + + @retval + pointer to the new TYPELIB structure on successful copy + @retval + NULL otherwise +*/ + +TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from) +{ + TYPELIB *to; + uint i; + + if (!from) + return NULL; + + if (!(to= (TYPELIB*) alloc_root(root, sizeof(TYPELIB)))) + return NULL; + + if (!(to->type_names= (const char **) + alloc_root(root, (sizeof(char *) + sizeof(int)) * (from->count + 1)))) + return NULL; + to->type_lengths= (unsigned int *)(to->type_names + from->count + 1); + to->count= from->count; + if (from->name) + { + if (!(to->name= strdup_root(root, from->name))) + return NULL; + } + else + to->name= NULL; + + for (i= 0; i < from->count; i++) + { + if (!(to->type_names[i]= strmake_root(root, from->type_names[i], + from->type_lengths[i]))) + return NULL; + to->type_lengths[i]= from->type_lengths[i]; + } + to->type_names[to->count]= NULL; + to->type_lengths[to->count]= 0; + + return to; +} + + +static const char *on_off_default_names[]= { "off","on","default", 0}; +static TYPELIB on_off_default_typelib= {array_elements(on_off_default_names)-1, + "", on_off_default_names, 0}; + +/** + Parse a TYPELIB name from the buffer + + @param lib Set of names to scan for. + @param strpos INOUT Start of the buffer (updated to point to the next + character after the name) + @param end End of the buffer + + @note + The buffer is assumed to contain one of the names specified in the TYPELIB, + followed by comma, '=', or end of the buffer. + + @retval + 0 No matching name + @retval + >0 Offset+1 in typelib for matched name +*/ + +static uint parse_name(const TYPELIB *lib, const char **strpos, const char *end) +{ + const char *pos= *strpos; + uint find= find_type(pos, lib, FIND_TYPE_COMMA_TERM); + for (; pos != end && *pos != '=' && *pos !=',' ; pos++); + *strpos= pos; + return find; +} + +/** + Parse and apply a set of flag assingments + + @param lib Flag names + @param default_name Number of "default" in the typelib + @param cur_set Current set of flags (start from this state) + @param default_set Default set of flags (use this for assign-default + keyword and flag=default assignments) + @param str String to be parsed + @param length Length of the string + @param err_pos OUT If error, set to point to start of wrong set string + NULL on success + @param err_len OUT If error, set to the length of wrong set string + + @details + Parse a set of flag assignments, that is, parse a string in form: + + param_name1=value1,param_name2=value2,... + + where the names are specified in the TYPELIB, and each value can be + either 'on','off', or 'default'. Setting the same name twice is not + allowed. + + Besides param=val assignments, we support the "default" keyword (keyword + #default_name in the typelib). It can be used one time, if specified it + causes us to build the new set over the default_set rather than cur_set + value. + + @note + it's not charset aware + + @retval + Parsed set value if (*errpos == NULL), otherwise undefined +*/ + +my_ulonglong find_set_from_flags(const TYPELIB *lib, uint default_name, + my_ulonglong cur_set, my_ulonglong default_set, + const char *str, uint length, + char **err_pos, uint *err_len) +{ + const char *end= str + length; + my_ulonglong flags_to_set= 0, flags_to_clear= 0, res; + my_bool set_defaults= 0; + + *err_pos= 0; /* No error yet */ + if (str != end) + { + const char *start= str; + for (;;) + { + const char *pos= start; + uint flag_no, value; + + if (!(flag_no= parse_name(lib, &pos, end))) + goto err; + + if (flag_no == default_name) + { + /* Using 'default' twice isn't allowed. */ + if (set_defaults) + goto err; + set_defaults= TRUE; + } + else + { + my_ulonglong bit= (1ULL << (flag_no - 1)); + /* parse the '=on|off|default' */ + if ((flags_to_clear | flags_to_set) & bit || + pos >= end || *pos++ != '=' || + !(value= parse_name(&on_off_default_typelib, &pos, end))) + goto err; + + if (value == 1) /* this is '=off' */ + flags_to_clear|= bit; + else if (value == 2) /* this is '=on' */ + flags_to_set|= bit; + else /* this is '=default' */ + { + if (default_set & bit) + flags_to_set|= bit; + else + flags_to_clear|= bit; + } + } + if (pos >= end) + break; + + if (*pos++ != ',') + goto err; + + start=pos; + continue; + err: + *err_pos= (char*)start; + *err_len= (uint)(end - start); + break; + } + } + res= set_defaults? default_set : cur_set; + res|= flags_to_set; + res&= ~flags_to_clear; + return res; +} + diff --git a/mysql/mysys_err.h b/mysql/mysys_err.h new file mode 100644 index 0000000..4fd2cf3 --- /dev/null +++ b/mysql/mysys_err.h @@ -0,0 +1,95 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef _mysys_err_h +#define _mysys_err_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define GLOBERRS (EE_ERROR_LAST - EE_ERROR_FIRST + 1) /* Nr of global errors */ +#define EE(X) (globerrs[(X) - EE_ERROR_FIRST]) + +extern const char *globerrs[]; /* my_error_messages is here */ + +/* Error message numbers in global map */ +/* + Do not add error numbers before EE_ERROR_FIRST. + If necessary to add lower numbers, change EE_ERROR_FIRST accordingly. + + We start with error 1 to not confuse peoples with 'error 0' +*/ + +#define EE_ERROR_FIRST 1 /*Copy first error nr.*/ +#define EE_CANTCREATEFILE 1 +#define EE_READ 2 +#define EE_WRITE 3 +#define EE_BADCLOSE 4 +#define EE_OUTOFMEMORY 5 +#define EE_DELETE 6 +#define EE_LINK 7 +#define EE_EOFERR 9 +#define EE_CANTLOCK 10 +#define EE_CANTUNLOCK 11 +#define EE_DIR 12 +#define EE_STAT 13 +#define EE_CANT_CHSIZE 14 +#define EE_CANT_OPEN_STREAM 15 +#define EE_GETWD 16 +#define EE_SETWD 17 +#define EE_LINK_WARNING 18 +#define EE_OPEN_WARNING 19 +#define EE_DISK_FULL 20 +#define EE_CANT_MKDIR 21 +#define EE_UNKNOWN_CHARSET 22 +#define EE_OUT_OF_FILERESOURCES 23 +#define EE_CANT_READLINK 24 +#define EE_CANT_SYMLINK 25 +#define EE_REALPATH 26 +#define EE_SYNC 27 +#define EE_UNKNOWN_COLLATION 28 +#define EE_FILENOTFOUND 29 +#define EE_FILE_NOT_CLOSED 30 +#define EE_CHANGE_OWNERSHIP 31 +#define EE_CHANGE_PERMISSIONS 32 +#define EE_CANT_SEEK 33 +#define EE_CAPACITY_EXCEEDED 34 +#define EE_ERROR_LAST 34 /* Copy last error nr */ +/* Add error numbers before EE_ERROR_LAST and change it accordingly. */ + +/* Exit codes for option processing. When exiting from server use the + MYSQLD_*EXIT codes defined in sql_const.h */ + +#define EXIT_UNSPECIFIED_ERROR 1 +#define EXIT_UNKNOWN_OPTION 2 +#define EXIT_AMBIGUOUS_OPTION 3 +#define EXIT_NO_ARGUMENT_ALLOWED 4 +#define EXIT_ARGUMENT_REQUIRED 5 +#define EXIT_VAR_PREFIX_NOT_UNIQUE 6 +#define EXIT_UNKNOWN_VARIABLE 7 +#define EXIT_OUT_OF_MEMORY 8 +#define EXIT_UNKNOWN_SUFFIX 9 +#define EXIT_NO_PTR_TO_VARIABLE 10 +#define EXIT_CANNOT_CONNECT_TO_SERVICE 11 +#define EXIT_OPTION_DISABLED 12 +#define EXIT_ARGUMENT_INVALID 13 + + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/mysql/mysys_ssl/crypt_genhash_impl.cpp b/mysql/mysys_ssl/crypt_genhash_impl.cpp new file mode 100644 index 0000000..80b61dc --- /dev/null +++ b/mysql/mysys_ssl/crypt_genhash_impl.cpp @@ -0,0 +1,465 @@ +/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +// First include (the generated) my_config.h, to get correct platform defines. +#include "my_config.h" + +#ifdef HAVE_OPENSSL + +#ifdef HAVE_YASSL +#include +#include +#else +#include +#include +#endif + +#include "crypt_genhash_impl.h" + +#include "m_string.h" + +#include +#include +#include + +#ifdef HAVE_ALLOCA_H +#include +#endif + +#ifndef HAVE_YASSL +#define DIGEST_CTX SHA256_CTX +#define DIGESTInit SHA256_Init +#define DIGESTUpdate SHA256_Update +#define DIGESTFinal SHA256_Final +#define DIGEST_LEN SHA256_DIGEST_LENGTH +#else +#define DIGEST_CTX TaoCrypt::SHA256 +#define DIGEST_LEN 32 +void DIGESTInit(DIGEST_CTX *ctx) +{ + ctx->Init(); +} + +void DIGESTUpdate(DIGEST_CTX *ctx, const void *plaintext, int len) +{ + ctx->Update((const TaoCrypt::byte *)plaintext, len); +} + +void DIGESTFinal(void *txt, DIGEST_CTX *ctx) +{ + ctx->Final((TaoCrypt::byte *)txt); +} + +#endif // HAVE_YASSL + +static const char crypt_alg_magic[] = "$5"; + +#ifndef MAX +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) +#endif +#ifndef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif + + +/** + Size-bounded string copying and concatenation + This is a replacement for STRLCPY(3) +*/ + +size_t +strlcat(char *dst, const char *src, size_t siz) +{ + char *d= dst; + const char *s= src; + size_t n= siz; + size_t dlen; + /* Find the end of dst and adjust bytes left but don't go past end */ + while (n-- != 0 && *d != '\0') + d++; + dlen= d - dst; + n= siz - dlen; + if (n == 0) + return(dlen + siz); + while (*s != '\0') + { + if (n != 1) + { + *d++= *s; + n--; + } + s++; + } + *d= '\0'; + return(dlen + (s - src)); /* count does not include NUL */ +} + +static const int crypt_alg_magic_len = sizeof (crypt_alg_magic) - 1; + +static unsigned char b64t[] = /* 0 ... 63 => ascii - 64 */ + "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +#define b64_from_24bit(B2, B1, B0, N) \ +{ \ + uint32_t w = ((B2) << 16) | ((B1) << 8) | (B0); \ + int n = (N); \ + while (--n >= 0 && ctbufflen > 0) { \ + *p++ = b64t[w & 0x3f]; \ + w >>= 6; \ + ctbufflen--; \ +} \ +} + +#define ROUNDS "rounds=" +#define ROUNDSLEN (sizeof (ROUNDS) - 1) + +/** + Get the integer value after rounds= where ever it occurs in the string. + if the last char after the int is a , or $ that is fine anything else is an + error. +*/ +static uint getrounds(const char *s) +{ + const char *r; + const char *p; + char *e; + long val; + + if (s == NULL) + return (0); + + if ((r = strstr(s, ROUNDS)) == NULL) + { + return (0); + } + + if (strncmp(r, ROUNDS, ROUNDSLEN) != 0) + { + return (0); + } + + p= r + ROUNDSLEN; + errno= 0; + val= strtol(p, &e, 10); + /* + An error occurred or there is non-numeric stuff at the end + which isn't one of the crypt(3c) special chars ',' or '$' + */ + if (errno != 0 || val < 0 || !(*e == '\0' || *e == ',' || *e == '$')) + { + return (0); + } + + return ((uint32_t) val); +} + +/** + Finds the interval which envelopes the user salt in a crypt password + The crypt format is assumed to be $a$bbbb$cccccc\0 and the salt is found + by counting the delimiters and marking begin and end. + + @param salt_being[in] Pointer to start of crypt passwd + @param salt_being[out] Pointer to first byte of the salt + @param salt_end[in] Pointer to the last byte in passwd + @param salt_end[out] Pointer to the byte immediatly following the salt ($) + + @return The size of the salt identified +*/ + +int extract_user_salt(char **salt_begin, + char **salt_end) +{ + char *it= *salt_begin; + int delimiter_count= 0; + while(it != *salt_end) + { + if (*it == '$') + { + ++delimiter_count; + if (delimiter_count == 2) + { + *salt_begin= it + 1; + } + if (delimiter_count == 3) + break; + } + ++it; + } + *salt_end= it; + return *salt_end - *salt_begin; +} + +const char *sha256_find_digest(char *pass) +{ + int sz= strlen(pass); + return pass + sz - SHA256_HASH_LENGTH; +} + +/* + * Portions of the below code come from crypt_bsdmd5.so (bsdmd5.c) : + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + * $FreeBSD: crypt.c,v 1.5 1996/10/14 08:34:02 phk Exp $ + * + */ + +/* + * The below code implements the specification from: + * + * From http://people.redhat.com/drepper/SHA-crypt.txt + * + * Portions of the code taken from inspired by or verified against the + * source in the above document which is licensed as: + * + * "Released into the Public Domain by Ulrich Drepper ." + */ + +/* + Due to a Solaris namespace bug DS is a reserved word. To work around this + DS is undefined. +*/ +#undef DS + +/* ARGSUSED4 */ +extern "C" +char * +my_crypt_genhash(char *ctbuffer, + size_t ctbufflen, + const char *plaintext, + size_t plaintext_len, + const char *switchsalt, + const char **params) +{ + int salt_len; + size_t i; + char *salt; + unsigned char A[DIGEST_LEN]; + unsigned char B[DIGEST_LEN]; + unsigned char DP[DIGEST_LEN]; + unsigned char DS[DIGEST_LEN]; + DIGEST_CTX ctxA, ctxB, ctxC, ctxDP, ctxDS; + uint rounds = ROUNDS_DEFAULT; + int srounds = 0; + bool custom_rounds= false; + char *p; + char *P, *Pp; + char *S, *Sp; + + /* Refine the salt */ + salt = (char *)switchsalt; + + /* skip our magic string */ + if (strncmp(salt, crypt_alg_magic, crypt_alg_magic_len) == 0) + { + salt += crypt_alg_magic_len + 1; + } + + srounds = getrounds(salt); + if (srounds != 0) { + rounds = MAX(ROUNDS_MIN, MIN(srounds, ROUNDS_MAX)); + custom_rounds= true; + p = strchr(salt, '$'); + if (p != NULL) + salt = p + 1; + } + + salt_len = MIN(strcspn(salt, "$"), CRYPT_SALT_LENGTH); + //plaintext_len = strlen(plaintext); + + /* 1. */ + DIGESTInit(&ctxA); + + /* 2. The password first, since that is what is most unknown */ + DIGESTUpdate(&ctxA, plaintext, plaintext_len); + + /* 3. Then the raw salt */ + DIGESTUpdate(&ctxA, salt, salt_len); + + /* 4. - 8. */ + DIGESTInit(&ctxB); + DIGESTUpdate(&ctxB, plaintext, plaintext_len); + DIGESTUpdate(&ctxB, salt, salt_len); + DIGESTUpdate(&ctxB, plaintext, plaintext_len); + DIGESTFinal(B, &ctxB); + + /* 9. - 10. */ + for (i= plaintext_len; i > MIXCHARS; i -= MIXCHARS) + DIGESTUpdate(&ctxA, B, MIXCHARS); + DIGESTUpdate(&ctxA, B, i); + + /* 11. */ + for (i= plaintext_len; i > 0; i >>= 1) { + if ((i & 1) != 0) + { + DIGESTUpdate(&ctxA, B, MIXCHARS); + } + else + { + DIGESTUpdate(&ctxA, plaintext, plaintext_len); + } + } + + /* 12. */ + DIGESTFinal(A, &ctxA); + + /* 13. - 15. */ + DIGESTInit(&ctxDP); + for (i= 0; i < plaintext_len; i++) + DIGESTUpdate(&ctxDP, plaintext, plaintext_len); + DIGESTFinal(DP, &ctxDP); + + /* 16. */ + Pp= P= (char *)alloca(plaintext_len); + for (i= plaintext_len; i >= MIXCHARS; i -= MIXCHARS) + { + Pp= (char *)(memcpy(Pp, DP, MIXCHARS)) + MIXCHARS; + } + (void) memcpy(Pp, DP, i); + + /* 17. - 19. */ + DIGESTInit(&ctxDS); + for (i= 0; i < 16U + (uint8_t)A[0]; i++) + DIGESTUpdate(&ctxDS, salt, salt_len); + DIGESTFinal(DS, &ctxDS); + + /* 20. */ + Sp= S= (char *)alloca(salt_len); + for (i= salt_len; i >= MIXCHARS; i -= MIXCHARS) + { + Sp= (char *)(memcpy(Sp, DS, MIXCHARS)) + MIXCHARS; + } + (void) memcpy(Sp, DS, i); + + /* 21. */ + for (i= 0; i < rounds; i++) + { + DIGESTInit(&ctxC); + + if ((i & 1) != 0) + { + DIGESTUpdate(&ctxC, P, plaintext_len); + } + else + { + if (i == 0) + DIGESTUpdate(&ctxC, A, MIXCHARS); + else + DIGESTUpdate(&ctxC, DP, MIXCHARS); + } + + if (i % 3 != 0) { + DIGESTUpdate(&ctxC, S, salt_len); + } + + if (i % 7 != 0) { + DIGESTUpdate(&ctxC, P, plaintext_len); + } + + if ((i & 1) != 0) + { + if (i == 0) + DIGESTUpdate(&ctxC, A, MIXCHARS); + else + DIGESTUpdate(&ctxC, DP, MIXCHARS); + } + else + { + DIGESTUpdate(&ctxC, P, plaintext_len); + } + DIGESTFinal(DP, &ctxC); + } + + /* 22. Now make the output string */ + if (custom_rounds) + { + (void) my_snprintf(ctbuffer, ctbufflen, + "%s$rounds=%zu$", crypt_alg_magic, (size_t)rounds); + } + else + { + (void) my_snprintf(ctbuffer, ctbufflen, + "%s$", crypt_alg_magic); + } + (void) strncat(ctbuffer, (const char *)salt, salt_len); + (void) strlcat(ctbuffer, "$", ctbufflen); + + p= ctbuffer + strlen(ctbuffer); + ctbufflen -= strlen(ctbuffer); + + b64_from_24bit(DP[ 0], DP[10], DP[20], 4); + b64_from_24bit(DP[21], DP[ 1], DP[11], 4); + b64_from_24bit(DP[12], DP[22], DP[ 2], 4); + b64_from_24bit(DP[ 3], DP[13], DP[23], 4); + b64_from_24bit(DP[24], DP[ 4], DP[14], 4); + b64_from_24bit(DP[15], DP[25], DP[ 5], 4); + b64_from_24bit(DP[ 6], DP[16], DP[26], 4); + b64_from_24bit(DP[27], DP[ 7], DP[17], 4); + b64_from_24bit(DP[18], DP[28], DP[ 8], 4); + b64_from_24bit(DP[ 9], DP[19], DP[29], 4); + b64_from_24bit(0, DP[31], DP[30], 3); + *p= '\0'; + + (void) memset(A, 0, sizeof (A)); + (void) memset(B, 0, sizeof (B)); + (void) memset(DP, 0, sizeof (DP)); + (void) memset(DS, 0, sizeof (DS)); + + return (ctbuffer); +} + + +/** + Generate a random string using ASCII characters but avoid seperator character. + Stdlib rand and srand are used to produce pseudo random numbers between + with about 7 bit worth of entropty between 1-127. +*/ +extern "C" +void generate_user_salt(char *buffer, int buffer_len) +{ + char *end= buffer + buffer_len - 1; +#ifdef HAVE_YASSL + yaSSL::RAND_bytes((unsigned char *) buffer, buffer_len); +#else + RAND_bytes((unsigned char *) buffer, buffer_len); +#endif + + /* Sequence must be a legal UTF8 string */ + for (; buffer < end; buffer++) + { + *buffer &= 0x7f; + if (*buffer == '\0' || *buffer == '$') + *buffer= *buffer + 1; + } + /* Make sure the buffer is terminated properly */ + *end= '\0'; +} + +void xor_string(char *to, int to_len, char *pattern, int pattern_len) +{ + int loop= 0; + while(loop <= to_len) + { + *(to + loop) ^= *(pattern + loop % pattern_len); + ++loop; + } +} + +#endif // HAVE_OPENSSL diff --git a/mysql/mysys_ssl/mf_tempdir.cpp b/mysql/mysys_ssl/mf_tempdir.cpp new file mode 100644 index 0000000..2935509 --- /dev/null +++ b/mysql/mysys_ssl/mf_tempdir.cpp @@ -0,0 +1,100 @@ +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "mysys_priv.h" +#include +#include "prealloced_array.h" +#include "mutex_lock.h" + +#if defined(_WIN32) +#define DELIM ';' +#else +#define DELIM ':' +#endif + +my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist) +{ + char *end, *copy; + char buff[FN_REFLEN]; + DBUG_ENTER("init_tmpdir"); + DBUG_PRINT("enter", ("pathlist: %s", pathlist ? pathlist : "NULL")); + + Prealloced_array full_list(key_memory_MY_TMPDIR_full_list); + + memset(tmpdir, 0, sizeof(*tmpdir)); + if (!pathlist || !pathlist[0]) + { + /* Get default temporary directory */ + pathlist=getenv("TMPDIR"); /* Use this if possible */ +#if defined(_WIN32) + if (!pathlist) + pathlist=getenv("TEMP"); + if (!pathlist) + pathlist=getenv("TMP"); +#endif + if (!pathlist || !pathlist[0]) + pathlist= DEFAULT_TMPDIR; + } + do + { + size_t length; + end=strcend(pathlist, DELIM); + strmake(buff, pathlist, (uint) (end-pathlist)); + length= cleanup_dirname(buff, buff); + if (!(copy= my_strndup(key_memory_MY_TMPDIR_full_list, + buff, length, MYF(MY_WME))) || + full_list.push_back(copy)) + DBUG_RETURN(TRUE); + pathlist=end+1; + } + while (*end); + + tmpdir->list= + static_cast(my_malloc(key_memory_MY_TMPDIR_full_list, + sizeof(char*) * full_list.size(), + MYF(MY_WME))); + if (tmpdir->list == NULL) + DBUG_RETURN(TRUE); + + mysql_mutex_init(key_TMPDIR_mutex, &tmpdir->mutex, MY_MUTEX_INIT_FAST); + memcpy(tmpdir->list, &full_list[0], sizeof(char*) * full_list.size()); + tmpdir->max= full_list.size() - 1; + tmpdir->cur= 0; + DBUG_RETURN(FALSE); +} + + +char *my_tmpdir(MY_TMPDIR *tmpdir) +{ + if (0 == tmpdir->max) + return tmpdir->list[0]; + + Mutex_lock(&tmpdir->mutex); + char *dir= tmpdir->list[tmpdir->cur]; + tmpdir->cur= (tmpdir->cur == tmpdir->max) ? 0 : tmpdir->cur + 1; + + return dir; +} + + +void free_tmpdir(MY_TMPDIR *tmpdir) +{ + if (tmpdir->list == NULL) + return; + for (uint i= 0; i <= tmpdir->max; i++) + my_free(tmpdir->list[i]); + my_free(tmpdir->list); + mysql_mutex_destroy(&tmpdir->mutex); +} diff --git a/mysql/mysys_ssl/my_aes.cpp b/mysql/mysys_ssl/my_aes.cpp new file mode 100644 index 0000000..f5ebe8b --- /dev/null +++ b/mysql/mysys_ssl/my_aes.cpp @@ -0,0 +1,59 @@ +/* Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +#include +#include +#include +#include "my_aes_impl.h" + + +/** + Transforms an arbitrary long key into a fixed length AES key + + AES keys are of fixed length. This routine takes an arbitrary long key + iterates over it in AES key length increment and XORs the bytes with the + AES key buffer being prepared. + The bytes from the last incomplete iteration are XORed to the start + of the key until their depletion. + Needed since crypto function routines expect a fixed length key. + + @param key [in] Key to use for real key creation + @param key_length [in] Length of the key + @param rkey [out] Real key (used by OpenSSL/YaSSL) + @param opmode [out] encryption mode +*/ + +void my_aes_create_key(const unsigned char *key, uint key_length, + uint8 *rkey, enum my_aes_opmode opmode) +{ + const uint key_size= my_aes_opmode_key_sizes[opmode] / 8; + uint8 *rkey_end; /* Real key boundary */ + uint8 *ptr; /* Start of the real key*/ + uint8 *sptr; /* Start of the working key */ + uint8 *key_end= ((uint8 *)key) + key_length; /* Working key boundary*/ + + rkey_end= rkey + key_size; + + memset(rkey, 0, key_size); /* Set initial key */ + + for (ptr= rkey, sptr= (uint8 *)key; sptr < key_end; ptr++, sptr++) + { + if (ptr == rkey_end) + /* Just loop over tmp_key until we used all key */ + ptr= rkey; + *ptr^= *sptr; + } +} diff --git a/mysql/mysys_ssl/my_aes_impl.h b/mysql/mysys_ssl/my_aes_impl.h new file mode 100644 index 0000000..2e18b2e --- /dev/null +++ b/mysql/mysys_ssl/my_aes_impl.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + + +/** Maximum supported key kength */ +#define MAX_AES_KEY_LENGTH 256 + +/* TODO: remove in a future version */ +/* Guard against using an old export control restriction #define */ +#ifdef AES_USE_KEY_BITS +#error AES_USE_KEY_BITS not supported +#endif + +extern uint *my_aes_opmode_key_sizes; + + +void my_aes_create_key(const unsigned char *key, uint key_length, + uint8 *rkey, enum my_aes_opmode opmode); + diff --git a/mysql/mysys_ssl/my_aes_yassl.cpp b/mysql/mysys_ssl/my_aes_yassl.cpp new file mode 100644 index 0000000..f387e34 --- /dev/null +++ b/mysql/mysys_ssl/my_aes_yassl.cpp @@ -0,0 +1,244 @@ +/* Copyright (c) 2015, 2016 Oracle and/or its affiliates. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include +#include "my_aes_impl.h" + +#include "aes.hpp" +#include "openssl/ssl.h" + +/* keep in sync with enum my_aes_opmode in my_aes.h */ +const char *my_aes_opmode_names[]= +{ + "aes-128-ecb", + "aes-192-ecb", + "aes-256-ecb", + "aes-128-cbc", + "aes-192-cbc", + "aes-256-cbc", + NULL /* needed for the type enumeration */ +}; + + +/* keep in sync with enum my_aes_opmode in my_aes.h */ +static uint my_aes_opmode_key_sizes_impl[]= +{ + 128 /* aes-128-ecb */, + 192 /* aes-192-ecb */, + 256 /* aes-256-ecb */, + 128 /* aes-128-cbc */, + 192 /* aes-192-cbc */, + 256 /* aes-256-cbc */, +}; + +uint *my_aes_opmode_key_sizes= my_aes_opmode_key_sizes_impl; + + +template +class MyCipherCtx +{ +public: + MyCipherCtx(enum my_aes_opmode mode) : m_mode(mode) + { + switch (m_mode) + { + case my_aes_128_ecb: + case my_aes_192_ecb: + case my_aes_256_ecb: + m_need_iv= false; + break; + default: + m_need_iv= true; + break; + } + } + + bool SetKey(const unsigned char *key, uint block_size, + const unsigned char *iv) + { + if (m_need_iv) + { + if (!iv) + return TRUE; + cbc.SetKey(key, block_size, iv); + } + else + ecb.SetKey(key, block_size); + return false; + } + + void Process(unsigned char *dest, const unsigned char * source, + uint block_size) + { + if (m_need_iv) + cbc.Process(dest, source, block_size); + else + ecb.Process(dest, source, block_size); + } + + bool needs_iv() const + { + return m_need_iv; + } + +private: + /* we initialize the two classes to avoid dynamic allocation */ + TaoCrypt::BlockCipher ecb; + TaoCrypt::BlockCipher cbc; + enum my_aes_opmode m_mode; + bool m_need_iv; +}; + + +int my_aes_encrypt(const unsigned char *source, uint32 source_length, + unsigned char *dest, + const unsigned char *key, uint32 key_length, + enum my_aes_opmode mode, const unsigned char *iv, + bool padding) +{ + MyCipherCtx enc(mode); + + /* 128 bit block used for padding */ + unsigned char block[MY_AES_BLOCK_SIZE]; + uint num_blocks; /* number of complete blocks */ + uint i; + /* predicted real key size */ + const uint key_size= my_aes_opmode_key_sizes[mode] / 8; + /* The real key to be used for encryption */ + unsigned char rkey[MAX_AES_KEY_LENGTH / 8]; + + my_aes_create_key(key, key_length, rkey, mode); + + if (enc.SetKey(rkey, key_size, iv)) + return MY_AES_BAD_DATA; + + num_blocks= source_length / MY_AES_BLOCK_SIZE; + + /* Encode all complete blocks */ + for (i = num_blocks; i > 0; + i--, source+= MY_AES_BLOCK_SIZE, dest+= MY_AES_BLOCK_SIZE) + enc.Process(dest, source, MY_AES_BLOCK_SIZE); + + /* If no padding, return here */ + if (!padding) + return (int) (MY_AES_BLOCK_SIZE * num_blocks); + /* + Re-implement standard PKCS padding for the last block. + Pad the last incomplete data block (even if empty) with bytes + equal to the size of extra padding stored into that last packet. + This also means that there will always be one more block, + even if the source data size is dividable by the AES block size. + */ + unsigned char pad_len= + MY_AES_BLOCK_SIZE - (source_length - MY_AES_BLOCK_SIZE * num_blocks); + memcpy(block, source, MY_AES_BLOCK_SIZE - pad_len); + memset(block + MY_AES_BLOCK_SIZE - pad_len, pad_len, pad_len); + + enc.Process(dest, block, MY_AES_BLOCK_SIZE); + + /* we've added a block */ + num_blocks+= 1; + + return (int) (MY_AES_BLOCK_SIZE * num_blocks); +} + +int my_aes_decrypt(const unsigned char *source, uint32 source_length, + unsigned char *dest, + const unsigned char *key, uint32 key_length, + enum my_aes_opmode mode, const unsigned char *iv, + bool padding) +{ + MyCipherCtx dec(mode); + /* 128 bit block used for padding */ + uint8 block[MY_AES_BLOCK_SIZE]; + uint32 num_blocks; /* Number of complete blocks */ + int i; + /* predicted real key size */ + const uint key_size= my_aes_opmode_key_sizes[mode] / 8; + /* The real key to be used for decryption */ + unsigned char rkey[MAX_AES_KEY_LENGTH / 8]; + + my_aes_create_key(key, key_length, rkey, mode); + dec.SetKey(rkey, key_size, iv); + + num_blocks= source_length / MY_AES_BLOCK_SIZE; + + /* + Input size has to be a multiple of the AES block size. + And, due to the standard PKCS padding, at least one block long. + */ + if ((source_length != num_blocks * MY_AES_BLOCK_SIZE) || num_blocks == 0) + return MY_AES_BAD_DATA; + + /* Decode all but the last block */ + for (i= padding? num_blocks - 1: num_blocks; i > 0; + i--, source+= MY_AES_BLOCK_SIZE, dest+= MY_AES_BLOCK_SIZE) + dec.Process(dest, source, MY_AES_BLOCK_SIZE); + + /* If no padding, return here. */ + if (!padding) + return MY_AES_BLOCK_SIZE * num_blocks; + + /* unwarp the standard PKCS padding */ + dec.Process(block, source, MY_AES_BLOCK_SIZE); + + /* Use last char in the block as size */ + uint8 pad_len = block[MY_AES_BLOCK_SIZE - 1]; + + if (pad_len > MY_AES_BLOCK_SIZE) + return MY_AES_BAD_DATA; + /* We could also check whole padding but we do not really need this */ + + memcpy(dest, block, MY_AES_BLOCK_SIZE - pad_len); + return MY_AES_BLOCK_SIZE * num_blocks - pad_len; +} + +/** + Get size of buffer which will be large enough for encrypted data + + SYNOPSIS + my_aes_get_size() + @param source_length [in] Length of data to be encrypted + @param mode encryption mode + + @return Size of buffer required to store encrypted data +*/ + +int my_aes_get_size(uint32 source_length, my_aes_opmode opmode) +{ + return MY_AES_BLOCK_SIZE * (source_length / MY_AES_BLOCK_SIZE) + + MY_AES_BLOCK_SIZE; +} + +/** + Return true if the AES cipher and block mode requires an IV + + SYNOPSIS + my_aes_needs_iv() + @param mode encryption mode + + @retval TRUE IV needed + @retval FALSE IV not needed +*/ + +my_bool my_aes_needs_iv(my_aes_opmode opmode) +{ + MyCipherCtx enc(opmode); + + return enc.needs_iv() ? TRUE : FALSE; +} + diff --git a/mysql/mysys_ssl/my_default.cpp b/mysql/mysys_ssl/my_default.cpp new file mode 100644 index 0000000..5a45200 --- /dev/null +++ b/mysql/mysys_ssl/my_default.cpp @@ -0,0 +1,1523 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/**************************************************************************** + Add all options from files named "group".cnf from the default_directories + before the command line arguments. + On Windows defaults will also search in the Windows directory for a file + called 'group'.ini + As long as the program uses the last argument for conflicting + options one only have to add a call to "load_defaults" to enable + use of default values. + pre- and end 'blank space' are removed from options and values. The + following escape sequences are recognized in values: \b \t \n \r \\ + + The following arguments are handled automatically; If used, they must be + first argument on the command line! + --no-defaults ; no options are read, except for the ones provided in the + login file. + --defaults-file=full-path-to-default-file ; Only this file will be read. + --defaults-extra-file=full-path-to-default-file ; Read this file before ~/ + --defaults-group-suffix ; Also read groups with concat(group, suffix) + --print-defaults ; Print the modified command line and exit + --login-path=login-path-name ; Read options under login-path-name from + the login file. +****************************************************************************/ + +#include "../mysys/mysys_priv.h" +#include "my_default.h" +#include "my_default_priv.h" +#include "m_string.h" +#include "m_ctype.h" +#include +#include +#include "mysql/psi/mysql_file.h" +#ifdef _WIN32 +#include +#endif + +#include "prealloced_array.h" + +C_MODE_START +#ifdef HAVE_PSI_INTERFACE +extern PSI_file_key key_file_cnf; +#endif +PSI_memory_key key_memory_defaults; +C_MODE_END + +/** + arguments separator + + load_defaults() loads arguments from config file and put them + before the arguments from command line, this separator is used to + separate the arguments loaded from config file and arguments user + provided on command line. + + Options with value loaded from config file are always in the form + '--option=value', while for command line options, the value can be + given as the next argument. Thus we used a separator so that + handle_options() can distinguish them. + + Note: any other places that does not need to distinguish them + should skip the separator. + + The content of arguments separator does not matter, one should only + check the pointer, use "----args-separator----" here to ease debug + if someone misused it. + + The args seprator will only be added when + my_getopt_use_args_seprator is set to TRUE before calling + load_defaults(); + + See BUG#25192 +*/ +static const char *args_separator= "----args-separator----"; +inline static void set_args_separator(char** arg) +{ + DBUG_ASSERT(my_getopt_use_args_separator); + *arg= (char*)args_separator; +} + +/* + This flag indicates that the argument separator string + (args_separator) should be added to the list of arguments, + in order to separate arguments received from config file + and command line. +*/ +my_bool my_getopt_use_args_separator= FALSE; +my_bool my_getopt_is_args_separator(const char* arg) +{ + return (arg == args_separator); +} +const char *my_defaults_file=0; +const char *my_defaults_group_suffix=0; +const char *my_defaults_extra_file=0; + +static const char *my_login_path= 0; + +static char my_defaults_file_buffer[FN_REFLEN]; +static char my_defaults_extra_file_buffer[FN_REFLEN]; + +static my_bool defaults_already_read= FALSE; + +/* Which directories are searched for options (and in which order) */ + +#define MAX_DEFAULT_DIRS 6 +#define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ +static const char **default_directories = NULL; + +#ifdef _WIN32 +static const char *f_extensions[]= { ".ini", ".cnf", 0 }; +#define NEWLINE "\r\n" +#else +static const char *f_extensions[]= { ".cnf", 0 }; +#define NEWLINE "\n" +#endif + +extern "C" { +static int handle_default_option(void *in_ctx, const char *group_name, + const char *option); +} + +/* + This structure defines the context that we pass to callback + function 'handle_default_option' used in search_default_file + to process each option. This context is used if search_default_file + was called from load_defaults. +*/ + +typedef Prealloced_array My_args; +struct handle_option_ctx +{ + MEM_ROOT *alloc; + My_args *m_args; + TYPELIB *group; +}; + +static int search_default_file(Process_option_func func, void *func_ctx, + const char *dir, const char *config_file, + my_bool is_login_file); +static int search_default_file_with_ext(Process_option_func func, + void *func_ctx, + const char *dir, const char *ext, + const char *config_file, + int recursion_level, + my_bool is_login_file); +static my_bool mysql_file_getline(char *str, int size, MYSQL_FILE *file, + my_bool is_login_file); + +/** + Create the list of default directories. + + @param alloc MEM_ROOT where the list of directories is stored + + @details + The directories searched, in order, are: + - Windows: GetSystemWindowsDirectory() + - Windows: GetWindowsDirectory() + - Windows: C:/ + - Windows: Directory above where the executable is located + - Unix: /etc/ + - Unix: /etc/mysql/ + - Unix: --sysconfdir= (compile-time option) + - ALL: getenv("MYSQL_HOME") + - ALL: --defaults-extra-file= (run-time option) + - Unix: ~/ + + On all systems, if a directory is already in the list, it will be moved + to the end of the list. This avoids reading defaults files multiple times, + while ensuring the correct precedence. + + @retval NULL Failure (out of memory, probably) + @retval other Pointer to NULL-terminated array of default directories +*/ + +static const char **init_default_directories(MEM_ROOT *alloc); + + +static char *remove_end_comment(char *ptr); + + +/* + Expand a file name so that the current working directory is added if + the name is relative. + + RETURNS + 0 All OK + 2 Out of memory or path too long + 3 Not able to get working directory + */ + +static int +fn_expand(const char *filename, char *result_buf) +{ + char dir[FN_REFLEN]; + const int flags= MY_UNPACK_FILENAME | MY_SAFE_PATH | MY_RELATIVE_PATH; + DBUG_ENTER("fn_expand"); + DBUG_PRINT("enter", ("filename: %s, result_buf: 0x%lx", + filename, (unsigned long) result_buf)); + if (my_getwd(dir, sizeof(dir), MYF(0))) + DBUG_RETURN(3); + DBUG_PRINT("debug", ("dir: %s", dir)); + if (fn_format(result_buf, filename, dir, "", flags) == NULL) + DBUG_RETURN(2); + DBUG_PRINT("return", ("result: %s", result_buf)); + DBUG_RETURN(0); +} + +/* + Process config files in default directories. + + SYNOPSIS + my_search_option_files() + conf_file Basename for configuration file to search for. + If this is a path, then only this file is read. + argc Pointer to argc of original program + argv Pointer to argv of original program + args_used Pointer to variable for storing the number of + arguments used. + func Pointer to the function to process options + func_ctx It's context. Usually it is the structure to + store additional options. + default_directories List of default directories. + found_no_defaults TRUE, if --no-defaults is specified. + + DESCRIPTION + Process the default options from argc & argv + Read through each found config file looks and calls 'func' to process + each option. This function also reads options from login file. + + NOTES + --defaults-group-suffix is only processed if we are called from + load_defaults(). + + + RETURN + 0 ok + 1 given cinf_file doesn't exist + 2 out of memory + 3 Can't get current working directory + + The global variable 'my_defaults_group_suffix' is updated with value for + --defaults_group_suffix +*/ + +int my_search_option_files(const char *conf_file, int *argc, char ***argv, + uint *args_used, Process_option_func func, + void *func_ctx, const char **default_directories, + my_bool is_login_file, my_bool found_no_defaults) +{ + const char **dirs, *forced_default_file, *forced_extra_defaults; + int error= 0; + DBUG_ENTER("my_search_option_files"); + + /* Skip for login file. */ + if (! is_login_file) + { + /* Check if we want to force the use a specific default file */ + *args_used+= get_defaults_options(*argc - *args_used, *argv + *args_used, + (char **) &forced_default_file, + (char **) &forced_extra_defaults, + (char **) &my_defaults_group_suffix, + (char **) &my_login_path, found_no_defaults); + + if (! my_defaults_group_suffix) + my_defaults_group_suffix= getenv(STRINGIFY_ARG(DEFAULT_GROUP_SUFFIX_ENV)); + + if (forced_extra_defaults && !defaults_already_read) + { + int error= fn_expand(forced_extra_defaults, + my_defaults_extra_file_buffer); + if (error) + DBUG_RETURN(error); + + my_defaults_extra_file= my_defaults_extra_file_buffer; + } + + if (forced_default_file && !defaults_already_read) + { + int error= fn_expand(forced_default_file, my_defaults_file_buffer); + if (error) + DBUG_RETURN(error); + my_defaults_file= my_defaults_file_buffer; + } + + defaults_already_read= TRUE; + + /* + We can only handle 'defaults-group-suffix' if we are called from + load_defaults() as otherwise we can't know the type of 'func_ctx' + */ + + if (my_defaults_group_suffix && func == handle_default_option) + { + /* Handle --defaults-group-suffix= */ + uint i; + const char **extra_groups; + const size_t instance_len= strlen(my_defaults_group_suffix); + struct handle_option_ctx *ctx= (struct handle_option_ctx*) func_ctx; + char *ptr; + TYPELIB *group= ctx->group; + + if (!(extra_groups= + (const char**)alloc_root(ctx->alloc, + (2*group->count+1)*sizeof(char*)))) + DBUG_RETURN(2); + + for (i= 0; i < group->count; i++) + { + size_t len; + extra_groups[i]= group->type_names[i]; /** copy group */ + + len= strlen(extra_groups[i]); + if (!(ptr= (char *) alloc_root(ctx->alloc, + (uint) (len + instance_len + 1)))) + DBUG_RETURN(2); + + extra_groups[i+group->count]= ptr; + + /** Construct new group */ + memcpy(ptr, extra_groups[i], len); + memcpy(ptr+len, my_defaults_group_suffix, instance_len+1); + } + + group->count*= 2; + group->type_names= extra_groups; + group->type_names[group->count]= 0; + } + } + else if (my_login_path && func == handle_default_option) + { + /* Handle --login_path= */ + uint i; + size_t len; + const char **extra_groups; + size_t instance_len= 0; + struct handle_option_ctx *ctx= (struct handle_option_ctx*) func_ctx; + char *ptr; + TYPELIB *group= ctx->group; + + if (!(extra_groups= (const char**)alloc_root(ctx->alloc, + (group->count + 3) + * sizeof(char *)))) + DBUG_RETURN(2); + + for (i= 0; i < group->count; i++) + { + extra_groups[i]= group->type_names[i]; /** copy group */ + } + + extra_groups[i]= my_login_path; + + if (my_defaults_group_suffix && func == handle_default_option) + { + instance_len= strlen(my_defaults_group_suffix); + len= strlen(extra_groups[i]); + + if (!(ptr= (char *) alloc_root(ctx->alloc, + (uint) (len + instance_len + 1)))) + DBUG_RETURN(2); + + extra_groups[i + 1]= ptr; + + /** Construct new group */ + memcpy(ptr, extra_groups[i], len); + memcpy(ptr+len, my_defaults_group_suffix, instance_len + 1); + group->count += 1; + } + + group->count += 1; + group->type_names= extra_groups; + group->type_names[group->count]= 0; + } + + // If conf_file is an absolute path, we only read it + if (dirname_length(conf_file)) + { + if ((error= search_default_file(func, func_ctx, NullS, conf_file, + is_login_file)) < 0) + goto err; + } + // If my defaults file is set (from a previous run), we read it + else if (my_defaults_file) + { + if ((error= search_default_file_with_ext(func, func_ctx, "", "", + my_defaults_file, 0, + is_login_file)) < 0) + goto err; + if (error > 0) + { + my_message_local(ERROR_LEVEL, + "Could not open required defaults file: %s", + my_defaults_file); + goto err; + } + } + else if (! found_no_defaults) + { + for (dirs= default_directories ; *dirs; dirs++) + { + if (**dirs) + { + if (search_default_file(func, func_ctx, *dirs, conf_file, + is_login_file) < 0) + goto err; + } + else if (my_defaults_extra_file) + { + if ((error= search_default_file_with_ext(func, func_ctx, "", "", + my_defaults_extra_file, 0, + is_login_file)) < 0) + goto err; /* Fatal error */ + if (error > 0) + { + my_message_local(ERROR_LEVEL, + "Could not open required defaults file: %s", + my_defaults_extra_file); + goto err; + } + } + } + } + + DBUG_RETURN(0); + +err: + my_message_local(ERROR_LEVEL, + "Fatal error in defaults handling. Program aborted!"); + DBUG_RETURN(1); +} + + +/* + The option handler for load_defaults. + + SYNOPSIS + handle_deault_option() + in_ctx Handler context. In this case it is a + handle_option_ctx structure. + group_name The name of the group the option belongs to. + option The very option to be processed. It is already + prepared to be used in argv (has -- prefix). If it + is NULL, we are handling a new group (section). + + DESCRIPTION + This handler checks whether a group is one of the listed and adds an option + to the array if yes. Some other handler can record, for instance, all + groups and their options, not knowing in advance the names and amount of + groups. + + RETURN + 0 - ok + 1 - error occured +*/ + +static int handle_default_option(void *in_ctx, const char *group_name, + const char *option) +{ + char *tmp; + struct handle_option_ctx *ctx= (struct handle_option_ctx *) in_ctx; + + if (!option) + return 0; + + if (find_type((char *)group_name, ctx->group, FIND_TYPE_NO_PREFIX)) + { + if (!(tmp= (char *) alloc_root(ctx->alloc, strlen(option) + 1))) + return 1; + if (ctx->m_args->push_back(tmp)) + return 1; + my_stpcpy(tmp, option); + } + + return 0; +} + + +/* + Gets options from the command line, however if --no-defaults + option is used, --defaults-file & --defaults-extra-file options + would be ignored. + + SYNOPSIS + get_defaults_options() + argc Pointer to argc of original program + argv Pointer to argv of original program + defaults --defaults-file option + extra_defaults --defaults-extra-file option + group_suffix --defaults-group-suffix option + login_path --login-path option + + RETURN + # Number of arguments used from *argv + defaults and extra_defaults will be set to option of the appropriate + items of argv array, or to NULL if there are no such options +*/ + +int get_defaults_options(int argc, char **argv, + char **defaults, + char **extra_defaults, + char **group_suffix, + char **login_path, + my_bool found_no_defaults) +{ + int org_argc= argc, prev_argc= 0, default_option_count= 0; + *defaults= *extra_defaults= *group_suffix= *login_path= 0; + + while (argc >= 2 && argc != prev_argc) + { + /* Skip program name or previously handled argument */ + argv++; + prev_argc= argc; /* To check if we found */ + /* --no-defaults is always the first option. */ + if (is_prefix(*argv,"--no-defaults") && ! default_option_count) + { + argc--; + default_option_count ++; + continue; + } + if (!*defaults && is_prefix(*argv, "--defaults-file=") && ! found_no_defaults) + { + *defaults= *argv + sizeof("--defaults-file=")-1; + argc--; + default_option_count ++; + continue; + } + if (!*extra_defaults && is_prefix(*argv, "--defaults-extra-file=") + && ! found_no_defaults) + { + *extra_defaults= *argv + sizeof("--defaults-extra-file=")-1; + argc--; + default_option_count ++; + continue; + } + if (!*group_suffix && is_prefix(*argv, "--defaults-group-suffix=")) + { + *group_suffix= *argv + sizeof("--defaults-group-suffix=")-1; + argc--; + default_option_count ++; + continue; + } + if (!*login_path && is_prefix(*argv, "--login-path=")) + { + *login_path= *argv + sizeof("--login-path=")-1; + argc--; + default_option_count ++; + continue; + } + } + return org_argc - argc; +} + +/* + Wrapper around my_load_defaults() for interface compatibility. + + SYNOPSIS + load_defaults() + conf_file Basename for configuration file to search for. + If this is a path, then only this file is read. + groups Which [group] entrys to read. + Points to an null terminated array of pointers + argc Pointer to argc of original program + argv Pointer to argv of original program + + NOTES + + This function is NOT thread-safe as it uses a global pointer internally. + See also notes for my_load_defaults(). + + RETURN + 0 ok + 1 The given conf_file didn't exists +*/ +int load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv) +{ + return my_load_defaults(conf_file, groups, argc, argv, &default_directories); +} + +/** A global to turn off or on reading the mylogin file. On by default */ +my_bool my_defaults_read_login_file= TRUE; +/* + Read options from configurations files + + SYNOPSIS + my_load_defaults() + conf_file Basename for configuration file to search for. + If this is a path, then only this file is read. + groups Which [group] entrys to read. + Points to an null terminated array of pointers + argc Pointer to argc of original program + argv Pointer to argv of original program + default_directories Pointer to a location where a pointer to the list + of default directories will be stored + + IMPLEMENTATION + + Read options from configuration files and put them BEFORE the arguments + that are already in argc and argv. This way the calling program can + easily command line options override options in configuration files + + NOTES + In case of fatal error, the function will print a warning and do + exit(1) + + To free used memory one should call free_defaults() with the argument + that was put in *argv + + RETURN + - If successful, 0 is returned. If 'default_directories' is not NULL, + a pointer to the array of default directory paths is stored to a location + it points to. That stored value must be passed to my_search_option_files() + later. + + - 1 is returned if the given conf_file didn't exist. In this case, the + value pointed to by default_directories is undefined. +*/ + + +int my_load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv, const char ***default_directories) +{ + My_args my_args(key_memory_defaults); + TYPELIB group; + my_bool found_print_defaults= 0; + uint args_used= 0; + int error= 0; + MEM_ROOT alloc; + char *ptr,**res; + struct handle_option_ctx ctx; + const char **dirs; + char my_login_file[FN_REFLEN]; + my_bool found_no_defaults= false; + uint args_sep= my_getopt_use_args_separator ? 1 : 0; + DBUG_ENTER("load_defaults"); + + init_alloc_root(key_memory_defaults, &alloc,512,0); + if ((dirs= init_default_directories(&alloc)) == NULL) + goto err; + /* + Check if the user doesn't want any default option processing + --no-defaults is always the first option + */ + if (*argc >= 2 && !strcmp(argv[0][1], "--no-defaults")) + found_no_defaults= TRUE; + + group.count=0; + group.name= "defaults"; + group.type_names= groups; + + for (; *groups ; groups++) + group.count++; + + ctx.alloc= &alloc; + ctx.m_args= &my_args; + ctx.group= &group; + + if ((error= my_search_option_files(conf_file, argc, argv, + &args_used, handle_default_option, + (void *) &ctx, dirs, false, found_no_defaults))) + { + free_root(&alloc,MYF(0)); + DBUG_RETURN(error); + } + + if (my_defaults_read_login_file) + { + /* Read options from login group. */ + if (my_default_get_login_file(my_login_file, sizeof(my_login_file)) && + (error= my_search_option_files(my_login_file, argc, argv, &args_used, + handle_default_option, (void *) &ctx, + dirs, true, found_no_defaults))) + { + free_root(&alloc, MYF(0)); + DBUG_RETURN(error); + } + } + /* + Here error contains <> 0 only if we have a fully specified conf_file + or a forced default file + */ + if (!(ptr=(char*) + alloc_root(&alloc,sizeof(alloc)+ + (my_args.size() + *argc + 1 + args_sep) *sizeof(char*)))) + goto err; + res= (char**) (ptr+sizeof(alloc)); + + /* copy name + found arguments + command line arguments to new array */ + res[0]= argv[0][0]; /* Name MUST be set, even by embedded library */ + if (!my_args.empty()) + memcpy((res+1), &my_args[0], my_args.size() * sizeof(char*)); + /* Skip --defaults-xxx options */ + (*argc)-= args_used; + (*argv)+= args_used; + + /* + Check if we wan't to see the new argument list + This options must always be the last of the default options + */ + if (*argc >= 2 && !strcmp(argv[0][1],"--print-defaults")) + { + found_print_defaults=1; + --*argc; ++*argv; /* skip argument */ + } + + if (my_getopt_use_args_separator) + { + /* set arguments separator for arguments from config file and + command line */ + set_args_separator(&res[my_args.size() + 1]); + } + + if (*argc) + memcpy((uchar*) (res + 1 + my_args.size() + args_sep), + (char*) ((*argv)+1), + (*argc-1)*sizeof(char*)); + res[my_args.size() + *argc + args_sep]= 0; /* last null */ + + (*argc)+= my_args.size() + args_sep; + *argv= res; + *(MEM_ROOT*) ptr= alloc; /* Save alloc root for free */ + + if (default_directories) + *default_directories= dirs; + + if (found_no_defaults) + DBUG_RETURN(0); + + if (found_print_defaults) + { + int i; + printf("%s would have been started with the following arguments:\n", + **argv); + for (i=1 ; i < *argc ; i++) + if (!my_getopt_is_args_separator((*argv)[i])) /* skip arguments separator */ + { + if(strncmp((*argv)[i], "--password", 10) == 0) + printf("%s ", "--password=*****"); + else + printf("%s ", (*argv)[i]); + } + puts(""); + exit(0); + } + + DBUG_RETURN(0); + + err: + my_message_local(ERROR_LEVEL, + "Fatal error in defaults handling. Program aborted!"); + exit(1); + return 0; /* Keep compiler happy */ +} + + +void free_defaults(char **argv) +{ + MEM_ROOT ptr; + memcpy(&ptr, ((char *) argv) - sizeof(ptr), sizeof(ptr)); + free_root(&ptr,MYF(0)); +} + + +static int search_default_file(Process_option_func opt_handler, + void *handler_ctx, + const char *dir, + const char *config_file, + my_bool is_login_file) +{ + char **ext; + const char *empty_list[]= { "", 0 }; + my_bool have_ext= fn_ext(config_file)[0] != 0; + const char **exts_to_use= have_ext ? empty_list : f_extensions; + + for (ext= (char**) exts_to_use; *ext; ext++) + { + int error; + if ((error= search_default_file_with_ext(opt_handler, handler_ctx, + dir, *ext, + config_file, 0, is_login_file)) < 0) + return error; + } + return 0; +} + + +/* + Skip over keyword and get argument after keyword + + SYNOPSIS + get_argument() + keyword Include directive keyword + kwlen Length of keyword + ptr Pointer to the keword in the line under process + line line number + + RETURN + 0 error + # Returns pointer to the argument after the keyword. +*/ + +static char *get_argument(const char *keyword, size_t kwlen, + char *ptr, char *name, uint line) +{ + char *end; + + /* Skip over "include / includedir keyword" and following whitespace */ + + for (ptr+= kwlen - 1; + my_isspace(&my_charset_latin1, ptr[0]); + ptr++) + {} + + /* + Trim trailing whitespace from directory name + The -1 below is for the newline added by fgets() + Note that my_isspace() is true for \r and \n + */ + for (end= ptr + strlen(ptr) - 1; + my_isspace(&my_charset_latin1, *(end - 1)); + end--) + {} + end[0]= 0; /* Cut off end space */ + + /* Print error msg if there is nothing after !include* directive */ + if (end <= ptr) + { + my_message_local(ERROR_LEVEL, + "Wrong '!%s' directive in config file %s at line %d!", + keyword, name, line); + return 0; + } + return ptr; +} + + +/* + Open a configuration file (if exists) and read given options from it + + SYNOPSIS + search_default_file_with_ext() + opt_handler Option handler function. It is used to process + every separate option. + handler_ctx Pointer to the structure to store actual + parameters of the function. + dir directory to read + ext Extension for configuration file + config_file Name of configuration file + group groups to read + recursion_level the level of recursion, got while processing + "!include" or "!includedir" + is_login_file TRUE, when login file is being processed. + + RETURN + 0 Success + -1 Fatal error, abort + 1 File not found (Warning) +*/ + +static int search_default_file_with_ext(Process_option_func opt_handler, + void *handler_ctx, + const char *dir, + const char *ext, + const char *config_file, + int recursion_level, + my_bool is_login_file) +{ + char name[FN_REFLEN + 10], buff[4096], curr_gr[4096], *ptr, *end, **tmp_ext; + char *value, option[4096+2], tmp[FN_REFLEN]; + static const char includedir_keyword[]= "includedir"; + static const char include_keyword[]= "include"; + const int max_recursion_level= 10; + MYSQL_FILE *fp; + uint line=0; + my_bool found_group=0; + uint i, rc; + MY_DIR *search_dir; + FILEINFO *search_file; + + if ((dir ? strlen(dir) : 0 )+strlen(config_file) >= FN_REFLEN-3) + return 0; /* Ignore wrong paths */ + if (dir) + { + end=convert_dirname(name, dir, NullS); + if (dir[0] == FN_HOMELIB) /* Add . to filenames in home */ + *end++='.'; + strxmov(end,config_file,ext,NullS); + } + else + { + my_stpcpy(name,config_file); + } + fn_format(name,name,"","",4); + + if ((rc= check_file_permissions(name, is_login_file)) < 2) + return (int) rc; + + if (is_login_file) + { + if ( !(fp = mysql_file_fopen(key_file_cnf, name, (O_RDONLY | O_BINARY), + MYF(0)))) + return 1; /* Ignore wrong files. */ + } + else + { + if ( !(fp = mysql_file_fopen(key_file_cnf, name, O_RDONLY, MYF(0)))) + return 1; /* Ignore wrong files */ + } + + while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) + { + line++; + /* Ignore comment and empty lines */ + for (ptr= buff; my_isspace(&my_charset_latin1, *ptr); ptr++) + {} + + if (*ptr == '#' || *ptr == ';' || !*ptr) + continue; + + /* Configuration File Directives */ + if (*ptr == '!') + { + if (recursion_level >= max_recursion_level) + { + for (end= ptr + strlen(ptr) - 1; + my_isspace(&my_charset_latin1, *(end - 1)); + end--) + {} + end[0]= 0; + my_message_local(WARNING_LEVEL, + "skipping '%s' directive as maximum include" + "recursion level was reached in file %s at line %d!", + ptr, name, line); + continue; + } + + /* skip over `!' and following whitespace */ + for (++ptr; my_isspace(&my_charset_latin1, ptr[0]); ptr++) + {} + + if ((!strncmp(ptr, includedir_keyword, + sizeof(includedir_keyword) - 1)) && + my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1])) + { + if (!(ptr= get_argument(includedir_keyword, + sizeof(includedir_keyword), + ptr, name, line))) + goto err; + + if (!(search_dir= my_dir(ptr, MYF(MY_WME)))) + goto err; + + for (i= 0; i < search_dir->number_off_files; i++) + { + search_file= search_dir->dir_entry + i; + ext= fn_ext(search_file->name); + + /* check extension */ + for (tmp_ext= (char**) f_extensions; *tmp_ext; tmp_ext++) + { + if (!strcmp(ext, *tmp_ext)) + break; + } + + if (*tmp_ext) + { + fn_format(tmp, search_file->name, ptr, "", + MY_UNPACK_FILENAME | MY_SAFE_PATH); + + search_default_file_with_ext(opt_handler, handler_ctx, "", "", tmp, + recursion_level + 1, is_login_file); + } + } + + my_dirend(search_dir); + } + else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) && + my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword)-1])) + { + if (!(ptr= get_argument(include_keyword, + sizeof(include_keyword), ptr, + name, line))) + goto err; + + search_default_file_with_ext(opt_handler, handler_ctx, "", "", ptr, + recursion_level + 1, is_login_file); + } + + continue; + } + + if (*ptr == '[') /* Group name */ + { + found_group=1; + if (!(end= strchr(++ptr,']'))) + { + my_message_local(ERROR_LEVEL, + "Wrong group definition in config file %s at line %d!", + name,line); + goto err; + } + /* Remove end space */ + for ( ; my_isspace(&my_charset_latin1, end[-1]); end --) + {} + + end[0]=0; + + strmake(curr_gr, ptr, MY_MIN((size_t) (end-ptr)+1, sizeof(curr_gr)-1)); + + /* signal that a new group is found */ + opt_handler(handler_ctx, curr_gr, NULL); + + continue; + } + if (!found_group) + { + my_message_local(ERROR_LEVEL, + "Found option without preceding group in config file" + " %s at line %d!", name,line); + goto err; + } + + + end= remove_end_comment(ptr); + if ((value= strchr(ptr, '='))) + end= value; /* Option without argument */ + for ( ; my_isspace(&my_charset_latin1, end[-1]) ; end--) + {} + + if (!value) + { + strmake(my_stpcpy(option,"--"),ptr, (size_t) (end-ptr)); + if (opt_handler(handler_ctx, curr_gr, option)) + goto err; + } + else + { + /* Remove pre- and end space */ + char *value_end; + for (value++ ; my_isspace(&my_charset_latin1, *value); value ++) + {} + + value_end=strend(value); + /* + We don't have to test for value_end >= value as we know there is + an '=' before + */ + for ( ; my_isspace(&my_charset_latin1, value_end[-1]); value_end --) + {} + + if (value_end < value) /* Empty string */ + value_end=value; + + /* remove quotes around argument */ + if ((*value == '\"' || *value == '\'') && /* First char is quote */ + (value + 1 < value_end ) && /* String is longer than 1 */ + *value == value_end[-1] ) /* First char is equal to last char */ + { + value++; + value_end--; + } + ptr=my_stpnmov(my_stpcpy(option,"--"),ptr,(size_t) (end-ptr)); + *ptr++= '='; + + for ( ; value != value_end; value++) + { + if (*value == '\\' && value != value_end-1) + { + switch(*++value) { + case 'n': + *ptr++='\n'; + break; + case 't': + *ptr++= '\t'; + break; + case 'r': + *ptr++ = '\r'; + break; + case 'b': + *ptr++ = '\b'; + break; + case 's': + *ptr++= ' '; /* space */ + break; + case '\"': + *ptr++= '\"'; + break; + case '\'': + *ptr++= '\''; + break; + case '\\': + *ptr++= '\\'; + break; + default: /* Unknown; Keep '\' */ + *ptr++= '\\'; + *ptr++= *value; + break; + } + } + else + *ptr++= *value; + } + *ptr=0; + if (opt_handler(handler_ctx, curr_gr, option)) + goto err; + } + } + mysql_file_fclose(fp, MYF(0)); + return(0); + + err: + mysql_file_fclose(fp, MYF(0)); + return -1; /* Fatal error */ +} + + +static char *remove_end_comment(char *ptr) +{ + char quote= 0; /* we are inside quote marks */ + char escape= 0; /* symbol is protected by escape chagacter */ + + for (; *ptr; ptr++) + { + if ((*ptr == '\'' || *ptr == '\"') && !escape) + { + if (!quote) + quote= *ptr; + else if (quote == *ptr) + quote= 0; + } + /* We are not inside a string */ + if (!quote && *ptr == '#') + { + *ptr= 0; + return ptr; + } + escape= (quote && *ptr == '\\' && !escape); + } + return ptr; +} + + +/** + Read one line from the specified file. In case + of scrambled login file, the line read is first + decrypted and then returned. + + @param str [out] Buffer to store the read text. + @param size [in] At max, size-1 bytes to be read. + @param file [in] Source file. + @param is_login_file [in] TRUE, when login file is being processed. + + @return 1 Success + 0 Error +*/ + +static my_bool mysql_file_getline(char *str, int size, MYSQL_FILE *file, + my_bool is_login_file) +{ + uchar cipher[4096], len_buf[MAX_CIPHER_STORE_LEN]; + static unsigned char my_key[LOGIN_KEY_LEN]; + int length= 0, cipher_len= 0; + + if (is_login_file) + { + if (mysql_file_ftell(file, MYF(MY_WME)) == 0) + { + /* Move past unused bytes. */ + mysql_file_fseek(file, 4, SEEK_SET, MYF(MY_WME)); + if (mysql_file_fread(file, my_key, LOGIN_KEY_LEN, + MYF(MY_WME)) != LOGIN_KEY_LEN) + return 0; + } + + if (mysql_file_fread(file, len_buf, MAX_CIPHER_STORE_LEN, + MYF(MY_WME)) == MAX_CIPHER_STORE_LEN) + { + cipher_len= sint4korr(len_buf); + if (cipher_len > size) + return 0; + } + else + return 0; + + mysql_file_fread(file, cipher, cipher_len, MYF(MY_WME)); + if ((length= my_aes_decrypt(cipher, cipher_len, (unsigned char *) str, + my_key, LOGIN_KEY_LEN, my_aes_128_ecb, NULL)) < 0) + { + /* Attempt to decrypt failed. */ + return 0; + } + str[length]= 0; + return 1; + } + else + { + if (mysql_file_fgets(str, size, file)) + return 1; + else + return 0; + } +} + + +void my_print_default_files(const char *conf_file) +{ + const char *empty_list[]= { "", 0 }; + my_bool have_ext= fn_ext(conf_file)[0] != 0; + const char **exts_to_use= have_ext ? empty_list : f_extensions; + char name[FN_REFLEN], **ext; + + puts("\nDefault options are read from the following files in the given order:"); + + if (dirname_length(conf_file)) + fputs(conf_file,stdout); + else + { + const char **dirs; + MEM_ROOT alloc; + init_alloc_root(key_memory_defaults, &alloc, 512, 0); + + if ((dirs= init_default_directories(&alloc)) == NULL) + { + fputs("Internal error initializing default directories list", stdout); + } + else + { + for ( ; *dirs; dirs++) + { + for (ext= (char**) exts_to_use; *ext; ext++) + { + const char *pos; + char *end; + if (**dirs) + pos= *dirs; + else if (my_defaults_extra_file) + pos= my_defaults_extra_file; + else + continue; + end= convert_dirname(name, pos, NullS); + if (name[0] == FN_HOMELIB) /* Add . to filenames in home */ + *end++= '.'; + + if (my_defaults_extra_file == pos) + end[(strlen(end)-1)] = ' '; + else + strxmov(end, conf_file, *ext , " ", NullS); + fputs(name, stdout); + } + } + } + + free_root(&alloc, MYF(0)); + } + puts(""); +} + +void print_defaults(const char *conf_file, const char **groups) +{ + const char **groups_save= groups; + my_print_default_files(conf_file); + + fputs("The following groups are read:",stdout); + for ( ; *groups ; groups++) + { + fputc(' ',stdout); + fputs(*groups,stdout); + } + + if (my_defaults_group_suffix) + { + groups= groups_save; + for ( ; *groups ; groups++) + { + fputc(' ',stdout); + fputs(*groups,stdout); + fputs(my_defaults_group_suffix,stdout); + } + } + puts("\nThe following options may be given as the first argument:\n\ +--print-defaults Print the program argument list and exit.\n\ +--no-defaults Don't read default options from any option file,\n\ + except for login file.\n\ +--defaults-file=# Only read default options from the given file #.\n\ +--defaults-extra-file=# Read this file after the global files are read.\n\ +--defaults-group-suffix=#\n\ + Also read groups with concat(group, suffix)\n\ +--login-path=# Read this path from the login file."); +} + + +static int add_directory(MEM_ROOT *alloc, const char *dir, const char **dirs) +{ + char buf[FN_REFLEN]; + size_t len; + char *p; + my_bool err MY_ATTRIBUTE((unused)); + + len= normalize_dirname(buf, dir); + if (!(p= strmake_root(alloc, buf, len))) + return 1; /* Failure */ + /* Should never fail if DEFAULT_DIRS_SIZE is correct size */ + err= array_append_string_unique(p, dirs, DEFAULT_DIRS_SIZE); + DBUG_ASSERT(err == FALSE); + + return 0; +} + + +#ifdef _WIN32 +/* + This wrapper for GetSystemWindowsDirectory() will dynamically bind to the + function if it is available, emulate it on NT4 Terminal Server by stripping + the \SYSTEM32 from the end of the results of GetSystemDirectory(), or just + return GetSystemDirectory(). + */ + +typedef UINT (WINAPI *GET_SYSTEM_WINDOWS_DIRECTORY)(LPSTR, UINT); + +static size_t my_get_system_windows_directory(char *buffer, size_t size) +{ + size_t count; + GET_SYSTEM_WINDOWS_DIRECTORY + func_ptr= (GET_SYSTEM_WINDOWS_DIRECTORY) + GetProcAddress(GetModuleHandle("kernel32.dll"), + "GetSystemWindowsDirectoryA"); + + if (func_ptr) + return func_ptr(buffer, (uint) size); + + /* + Windows NT 4.0 Terminal Server Edition: + To retrieve the shared Windows directory, call GetSystemDirectory and + trim the "System32" element from the end of the returned path. + */ + count= GetSystemDirectory(buffer, (uint) size); + if (count > 8 && stricmp(buffer+(count-8), "\\System32") == 0) + { + count-= 8; + buffer[count] = '\0'; + } + return count; +} + + +static const char *my_get_module_parent(char *buf, size_t size) +{ + char *last= NULL; + char *end; + if (!GetModuleFileName(NULL, buf, (DWORD) size)) + return NULL; + end= strend(buf); + + /* + Look for the second-to-last \ in the filename, but hang on + to a pointer after the last \ in case we're in the root of + a drive. + */ + for ( ; end > buf; end--) + { + if (*end == FN_LIBCHAR) + { + if (last) + { + /* Keep the last '\' as this works both with D:\ and a directory */ + end[1]= 0; + break; + } + last= end; + } + } + + return buf; +} +#endif /* _WIN32 */ + + +static const char **init_default_directories(MEM_ROOT *alloc) +{ + const char **dirs; + char *env; + int errors= 0; + + dirs= (const char **)alloc_root(alloc, DEFAULT_DIRS_SIZE * sizeof(char *)); + if (dirs == NULL) + return NULL; + memset(dirs, 0, DEFAULT_DIRS_SIZE * sizeof(char *)); + +#ifdef _WIN32 + + { + char fname_buffer[FN_REFLEN]; + if (my_get_system_windows_directory(fname_buffer, sizeof(fname_buffer))) + errors += add_directory(alloc, fname_buffer, dirs); + + if (GetWindowsDirectory(fname_buffer, sizeof(fname_buffer))) + errors += add_directory(alloc, fname_buffer, dirs); + + errors += add_directory(alloc, "C:/", dirs); + + if (my_get_module_parent(fname_buffer, sizeof(fname_buffer)) != NULL) + errors += add_directory(alloc, fname_buffer, dirs); + } + +#else + + errors += add_directory(alloc, "/etc/", dirs); + errors += add_directory(alloc, "/etc/mysql/", dirs); + +#if defined(DEFAULT_SYSCONFDIR) + if (DEFAULT_SYSCONFDIR[0]) + errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); +#endif /* DEFAULT_SYSCONFDIR */ + +#endif + + if ((env= getenv("MYSQL_HOME"))) + errors += add_directory(alloc, env, dirs); + + /* Placeholder for --defaults-extra-file= */ + errors += add_directory(alloc, "", dirs); + +#if !defined(_WIN32) + errors += add_directory(alloc, "~/", dirs); +#endif + + return (errors > 0 ? NULL : dirs); +} + +/** + Place the login file name in the specified buffer. + + @param file_name [out] Buffer to hold login file name + @param file_name_size [in] Length of the buffer + + @return 1 - Success + 0 - Failure +*/ + +int my_default_get_login_file(char *file_name, size_t file_name_size) +{ + size_t rc; + + if (getenv("MYSQL_TEST_LOGIN_FILE")) + rc= my_snprintf(file_name, file_name_size, "%s", + getenv("MYSQL_TEST_LOGIN_FILE")); +#ifdef _WIN32 + else if (getenv("APPDATA")) + rc= my_snprintf(file_name, file_name_size, "%s\\MySQL\\.mylogin.cnf", + getenv("APPDATA")); +#else + else if (getenv("HOME")) + rc= my_snprintf(file_name, file_name_size, "%s/.mylogin.cnf", + getenv("HOME")); +#endif + else + { + memset(file_name, 0, file_name_size); + return 0; + } + /* Anything <= 0 will be treated as error. */ + if (rc <= 0) + return 0; + + return 1; +} + +/** + Check file permissions of the option file. + + @param file_name [in] Name of the option file. + @param is_login_file [in] TRUE, when login file is being processed. + + @return 0 - Non-allowable file permissions. + 1 - Failed to stat. + 2 - Success. +*/ +int check_file_permissions(const char *file_name, my_bool is_login_file) +{ +#if !defined(_WIN32) + MY_STAT stat_info; + + if (!my_stat(file_name,&stat_info,MYF(0))) + return 1; + /* + Ignore .mylogin.cnf file if not exclusively readable/writable + by current user. + */ + if (is_login_file && (stat_info.st_mode & (S_IXUSR | S_IRWXG | S_IRWXO)) + && (stat_info.st_mode & S_IFMT) == S_IFREG) + { + my_message_local(WARNING_LEVEL, "%s should be readable/writable only by " + "current user.", file_name); + return 0; + } + /* + Ignore world-writable regular files. + This is mainly done to protect us to not read a file created by + the mysqld server, but the check is still valid in most context. + */ + else if ((stat_info.st_mode & S_IWOTH) && + (stat_info.st_mode & S_IFMT) == S_IFREG) + + { + my_message_local(WARNING_LEVEL, + "World-writable config file '%s' is ignored.", file_name); + return 0; + } +#endif + return 2; /* Success */ +} + diff --git a/mysql/mysys_ssl/my_default_priv.h b/mysql/mysys_ssl/my_default_priv.h new file mode 100644 index 0000000..9c55d47 --- /dev/null +++ b/mysql/mysys_ssl/my_default_priv.h @@ -0,0 +1,43 @@ +/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef MY_DEFAULT_PRIV_INCLUDED +#define MY_DEFAULT_PRIV_INCLUDED + +#include "my_global.h" /* C_MODE_START, C_MODE_END */ + +/* + Number of byte used to store the length of + cipher that follows. +*/ +#define MAX_CIPHER_STORE_LEN 4U +#define LOGIN_KEY_LEN 20U + +C_MODE_START + +/** + Place the login file name in the specified buffer. + + @param file_name [out] Buffer to hold login file name + @param file_name_size [in] Length of the buffer + + @return 1 - Success + 0 - Failure +*/ +int my_default_get_login_file(char *file_name, size_t file_name_size); + +C_MODE_END + +#endif /* MY_DEFAULT_PRIV_INCLUDED */ diff --git a/mysql/mysys_ssl/my_getopt.cpp b/mysql/mysys_ssl/my_getopt.cpp new file mode 100644 index 0000000..40ae171 --- /dev/null +++ b/mysql/mysys_ssl/my_getopt.cpp @@ -0,0 +1,1615 @@ +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#include +#include +#include +#include +#include +#include +#include +#include "my_default.h" +#include +#include "../mysys/mysys_priv.h" + +typedef void (*init_func_p)(const struct my_option *option, void *variable, + longlong value); + +my_error_reporter my_getopt_error_reporter= &my_message_local; + +static bool findopt(char *, uint, const struct my_option **); +my_bool getopt_compare_strings(const char *, const char *, uint); +static longlong getopt_ll(char *arg, const struct my_option *optp, int *err); +static ulonglong getopt_ull(char *, const struct my_option *, int *); +static double getopt_double(char *arg, const struct my_option *optp, int *err); +static void init_variables(const struct my_option *, init_func_p); +static void init_one_value(const struct my_option *, void *, longlong); +static void fini_one_value(const struct my_option *, void *, longlong); +static int setval(const struct my_option *, void *, char *, my_bool); +static char *check_struct_option(char *cur_arg, char *key_name); +static my_bool get_bool_argument(const struct my_option *opts, + const char *argument, + bool *error); + +/* + The following three variables belong to same group and the number and + order of their arguments must correspond to each other. +*/ +static const char *special_opt_prefix[]= +{"skip", "disable", "enable", "maximum", "loose", 0}; +static const uint special_opt_prefix_lengths[]= +{ 4, 7, 6, 7, 5, 0}; +enum enum_special_opt +{ OPT_SKIP, OPT_DISABLE, OPT_ENABLE, OPT_MAXIMUM, OPT_LOOSE}; + +char *disabled_my_option= (char*) "0"; +char *enabled_my_option= (char*) "1"; + +/* + This is a flag that can be set in client programs. 0 means that + my_getopt will not print error messages, but the client should do + it by itself +*/ + +my_bool my_getopt_print_errors= 1; + +/* + This is a flag that can be set in client programs. 1 means that + my_getopt will skip over options it does not know how to handle. +*/ + +my_bool my_getopt_skip_unknown= 0; + +static my_getopt_value getopt_get_addr; + +void my_getopt_register_get_addr(my_getopt_value func_addr) +{ + getopt_get_addr= func_addr; +} + + +/** + Wrapper around my_handle_options() for interface compatibility. + + @param argc [in, out] Command line options (count) + @param argv [in, out] Command line options (values) + @param longopts [in] Descriptor of all valid options + @param get_one_option [in] Optional callback function to process each option, + can be NULL. + + @return Error in case of ambiguous or unknown options, + 0 on success. +*/ +int handle_options(int *argc, char ***argv, + const struct my_option *longopts, + my_get_one_option get_one_option) +{ + return my_handle_options(argc, argv, longopts, get_one_option, NULL, FALSE); +} + +union ull_dbl +{ + ulonglong ull; + double dbl; +}; + +/** + Returns an ulonglong value containing a raw + representation of the given double value. +*/ +ulonglong getopt_double2ulonglong(double v) +{ + union ull_dbl u; + u.dbl= v; + compile_time_assert(sizeof(ulonglong) >= sizeof(double)); + return u.ull; +} + +/** + Returns the double value which corresponds to + the given raw representation. +*/ +double getopt_ulonglong2double(ulonglong v) +{ + union ull_dbl u; + u.ull= v; + return u.dbl; +} + +/** + Handle command line options. + Sort options. + Put options first, until special end of options (--), + or until the end of argv. Parse options, check that the given option + matches with one of the options in struct 'my_option'. + Check that option was given an argument if it requires one + Call the optional 'get_one_option()' function once for each option. + + Note that handle_options() can be invoked multiple times to + parse a command line in several steps. + In this case, use the global flag @c my_getopt_skip_unknown to indicate + that options unknown in the current step should be preserved in the + command line for later parsing in subsequent steps. + + For 'long' options (--a_long_option), @c my_getopt_skip_unknown is + fully supported. Command line parameters such as: + - "--a_long_option" + - "--a_long_option=value" + - "--a_long_option value" + will be preserved as is when the option is not known. + + For 'short' options (-S), support for @c my_getopt_skip_unknown + comes with some limitation, because several short options + can also be specified together in the same command line argument, + as in "-XYZ". + + The first use case supported is: all short options are declared. + handle_options() will be able to interpret "-XYZ" as one of: + - an unknown X option + - "-X -Y -Z", three short options with no arguments + - "-X -YZ", where Y is a short option with argument Z + - "-XYZ", where X is a short option with argument YZ + based on the full short options specifications. + + The second use case supported is: no short option is declared. + handle_options() will reject "-XYZ" as unknown, to be parsed later. + + The use case that is explicitly not supported is to provide + only a partial list of short options to handle_options(). + This function can not be expected to extract some option Y + in the middle of the string "-XYZ" in these conditions, + without knowing if X will be declared an option later. + + Note that this limitation only impacts parsing of several + short options from the same command line argument, + as in "mysqld -anW5". + When each short option is properly separated out in the command line + argument, for example in "mysqld -a -n -w5", the code would actually + work even with partial options specs given at each stage. + + @param [in, out] argc command line options (count) + @param [in, out] argv command line options (values) + @param [in] longopts descriptor of all valid options + @param [in] get_one_option optional callback function to process each option, + can be NULL. + @param [in] command_list NULL-terminated list of strings (commands) which + (if set) is looked up for all non-option strings + found while parsing the command line parameters. + The parsing terminates if a match is found. At + exit, argv [out] would contain all the remaining + unparsed options along with the matched command. + + @param [in] ignore_unknown_option When set to TRUE, options are continued to + be read even when unknown options are + encountered. + + @return error in case of ambiguous or unknown options, + 0 on success. +*/ +int my_handle_options(int *argc, char ***argv, + const struct my_option *longopts, + my_get_one_option get_one_option, + const char **command_list, my_bool ignore_unknown_option) +{ + uint argvpos= 0, length; + my_bool end_of_options= 0, must_be_var, set_maximum_value, + option_is_loose; + char **pos, **pos_end, *optend, *opt_str, key_name[FN_REFLEN]; + const struct my_option *optp; + void *value; + int error, i; + my_bool is_cmdline_arg= 1; + bool opt_found; + + /* handle_options() assumes arg0 (program name) always exists */ + DBUG_ASSERT(argc && *argc >= 1); + DBUG_ASSERT(argv && *argv); + (*argc)--; /* Skip the program name */ + (*argv)++; /* --- || ---- */ + init_variables(longopts, init_one_value); + + /* + Search for args_separator, if found, then the first part of the + arguments are loaded from configs + */ + for (pos= *argv, pos_end=pos+ *argc; pos != pos_end ; pos++) + { + if (my_getopt_is_args_separator(*pos)) + { + is_cmdline_arg= 0; + break; + } + } + + for (pos= *argv, pos_end=pos+ *argc; pos != pos_end ; pos++) + { + char **first= pos; + char *cur_arg= *pos; + opt_found= false; + if (!is_cmdline_arg && (my_getopt_is_args_separator(cur_arg))) + { + is_cmdline_arg= 1; + + /* save the separator too if skip unkown options */ + if (my_getopt_skip_unknown) + (*argv)[argvpos++]= cur_arg; + else + (*argc)--; + continue; + } + if (cur_arg[0] == '-' && cur_arg[1] && !end_of_options) /* must be opt */ + { + char *argument= 0; + must_be_var= 0; + set_maximum_value= 0; + option_is_loose= 0; + + cur_arg++; /* skip '-' */ + if (*cur_arg == '-') /* check for long option, */ + { + if (!*++cur_arg) /* skip the double dash */ + { + /* '--' means end of options, look no further */ + end_of_options= 1; + (*argc)--; + continue; + } + opt_str= check_struct_option(cur_arg, key_name); + optend= strcend(opt_str, '='); + length= (uint) (optend - opt_str); + if (*optend == '=') + optend++; + else + optend= 0; + + /* + Find first the right option. Return error in case of an ambiguous, + or unknown option + */ + optp= longopts; + if (!(opt_found= findopt(opt_str, length, &optp))) + { + /* + Didn't find any matching option. Let's see if someone called + option with a special option prefix + */ + if (!must_be_var) + { + if (optend) + must_be_var= 1; /* option is followed by an argument */ + for (i= 0; special_opt_prefix[i]; i++) + { + if (!getopt_compare_strings(special_opt_prefix[i], opt_str, + special_opt_prefix_lengths[i]) && + (opt_str[special_opt_prefix_lengths[i]] == '-' || + opt_str[special_opt_prefix_lengths[i]] == '_')) + { + /* + We were called with a special prefix, we can reuse opt_found + */ + opt_str+= special_opt_prefix_lengths[i] + 1; + length-= special_opt_prefix_lengths[i] + 1; + if (i == OPT_LOOSE) + option_is_loose= 1; + if ((opt_found= findopt(opt_str, length, &optp))) + { + switch (i) { + case OPT_SKIP: + case OPT_DISABLE: /* fall through */ + /* + double negation is actually enable again, + for example: --skip-option=0 -> option = TRUE + */ + optend= (optend && *optend == '0' && !(*(optend + 1))) ? + enabled_my_option : disabled_my_option; + break; + case OPT_ENABLE: + optend= (optend && *optend == '0' && !(*(optend + 1))) ? + disabled_my_option : enabled_my_option; + break; + case OPT_MAXIMUM: + set_maximum_value= 1; + must_be_var= 1; + break; + } + break; /* break from the inner loop, main loop continues */ + } + i= -1; /* restart the loop */ + } + } + } + if (!opt_found) + { + if (my_getopt_skip_unknown) + { + /* Preserve all the components of this unknown option. */ + do { + (*argv)[argvpos++]= *first++; + } while (first <= pos); + continue; + } + if (must_be_var) + { + if (my_getopt_print_errors) + my_getopt_error_reporter(option_is_loose ? + WARNING_LEVEL : ERROR_LEVEL, + "unknown variable '%s'", cur_arg); + if (!option_is_loose) + return EXIT_UNKNOWN_VARIABLE; + } + else + { + if (my_getopt_print_errors) + my_getopt_error_reporter(option_is_loose ? + WARNING_LEVEL : ERROR_LEVEL, + "unknown option '--%s'", cur_arg); + if (!(option_is_loose || ignore_unknown_option)) + return EXIT_UNKNOWN_OPTION; + } + if (option_is_loose || ignore_unknown_option) + { + (*argc)--; + continue; + } + } + } + if ((optp->var_type & GET_TYPE_MASK) == GET_DISABLED) + { + if (my_getopt_print_errors) + my_message_local(option_is_loose ? WARNING_LEVEL : ERROR_LEVEL, + "%s: Option '%s' used, but is disabled", + my_progname, opt_str); + if (option_is_loose) + { + (*argc)--; + continue; + } + return EXIT_OPTION_DISABLED; + } + error= 0; + value= optp->var_type & GET_ASK_ADDR ? + (*getopt_get_addr)(key_name, strlen(key_name), optp, &error) : + optp->value; + if (error) + return error; + + if (optp->arg_type == NO_ARG) + { + /* + Due to historical reasons GET_BOOL var_types still accepts arguments + despite the NO_ARG arg_type attribute. This can seems a bit unintuitive + and care should be taken when refactoring this code. + */ + if (optend && (optp->var_type & GET_TYPE_MASK) != GET_BOOL) + { + if (my_getopt_print_errors) + my_getopt_error_reporter(ERROR_LEVEL, + "%s: option '--%s' cannot take an argument", + my_progname, optp->name); + return EXIT_NO_ARGUMENT_ALLOWED; + } + if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL) + { + /* + Set bool to 1 if no argument or if the user has used + --enable-'option-name'. + *optend was set to '0' if one used --disable-option + */ + (*argc)--; + if(!optend) + *((my_bool*) value)= (my_bool) 1; + else + { + my_bool ret= 0; + bool error= 0; + ret= get_bool_argument(optp, optend, &error); + if(error) + { + my_getopt_error_reporter(WARNING_LEVEL, + "%s: ignoring option '--%s' " + "due to invalid value '%s'", + my_progname, optp->name, optend); + continue; + } + else + *((my_bool*) value)= ret; + } + if (get_one_option && get_one_option(optp->id, optp, + *((my_bool*) value) ? + enabled_my_option : disabled_my_option)) + return EXIT_ARGUMENT_INVALID; + continue; + } + argument= optend; + } + else if (optp->arg_type == REQUIRED_ARG && !optend) + { + /* Check if there are more arguments after this one, + Note: options loaded from config file that requires value + should always be in the form '--option=value'. + */ + if (!is_cmdline_arg || !*++pos) + { + if (my_getopt_print_errors) + my_getopt_error_reporter(ERROR_LEVEL, + "%s: option '--%s' requires an argument", + my_progname, optp->name); + return EXIT_ARGUMENT_REQUIRED; + } + argument= *pos; + (*argc)--; + } + else + argument= optend; + + if (optp->var_type == GET_PASSWORD && is_cmdline_arg && argument) + print_cmdline_password_warning(); + } + else /* must be short option */ + { + for (optend= cur_arg; *optend; optend++) + { + opt_found= false; + for (optp= longopts; optp->name; optp++) + { + if (optp->id && optp->id == (int) (uchar) *optend) + { + /* Option recognized. Find next what to do with it */ + opt_found= true; + if ((optp->var_type & GET_TYPE_MASK) == GET_DISABLED) + { + if (my_getopt_print_errors) + my_message_local(ERROR_LEVEL, + "%s: Option '-%c' used, but is disabled", + my_progname, optp->id); + return EXIT_OPTION_DISABLED; + } + if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL && + optp->arg_type == NO_ARG) + { + *((my_bool*) optp->value)= (my_bool) 1; + if (get_one_option && get_one_option(optp->id, optp, argument)) + return EXIT_UNSPECIFIED_ERROR; + continue; + } + else if (optp->arg_type == REQUIRED_ARG || + optp->arg_type == OPT_ARG) + { + if (*(optend + 1)) + { + /* The rest of the option is option argument */ + argument= optend + 1; + /* This is in effect a jump out of the outer loop */ + optend= (char*) " "; + if (optp->var_type == GET_PASSWORD && is_cmdline_arg) + print_cmdline_password_warning(); + } + else + { + if (optp->arg_type == OPT_ARG) + { + if (optp->var_type == GET_BOOL) + *((my_bool*) optp->value)= (my_bool) 1; + if (get_one_option && get_one_option(optp->id, optp, argument)) + return EXIT_UNSPECIFIED_ERROR; + continue; + } + /* Check if there are more arguments after this one */ + if (!pos[1]) + { + if (my_getopt_print_errors) + my_getopt_error_reporter(ERROR_LEVEL, + "%s: option '-%c' requires an argument", + my_progname, optp->id); + return EXIT_ARGUMENT_REQUIRED; + } + argument= *++pos; + (*argc)--; + /* the other loop will break, because *optend + 1 == 0 */ + } + } + if ((error= setval(optp, optp->value, argument, + set_maximum_value))) + return error; + if (get_one_option && get_one_option(optp->id, optp, argument)) + return EXIT_UNSPECIFIED_ERROR; + break; + } + } + if (!opt_found) + { + if (my_getopt_skip_unknown) + { + /* + We are currently parsing a single argv[] argument + of the form "-XYZ". + One or the argument found (say Y) is not an option. + Hack the string "-XYZ" to make a "-YZ" substring in it, + and push that to the output as an unrecognized parameter. + */ + DBUG_ASSERT(optend > *pos); + DBUG_ASSERT(optend >= cur_arg); + DBUG_ASSERT(optend <= *pos + strlen(*pos)); + DBUG_ASSERT(*optend); + optend--; + optend[0]= '-'; /* replace 'X' or '-' by '-' */ + (*argv)[argvpos++]= optend; + /* + Do not continue to parse at the current "-XYZ" argument, + skip to the next argv[] argument instead. + */ + optend= (char*) " "; + } + else + { + if (my_getopt_print_errors) + my_getopt_error_reporter(ERROR_LEVEL, + "%s: unknown option '-%c'", + my_progname, *optend); + return EXIT_UNKNOWN_OPTION; + } + } + } + if (opt_found) + (*argc)--; /* option handled (short), decrease argument count */ + continue; + } + if ((error= setval(optp, value, argument, set_maximum_value))) + return error; + if (get_one_option && get_one_option(optp->id, optp, argument)) + return EXIT_UNSPECIFIED_ERROR; + + (*argc)--; /* option handled (long), decrease argument count */ + } + else /* non-option found */ + { + if (command_list) + { + while (* command_list) + { + if (!strcmp(*command_list, cur_arg)) + { + /* Match found. */ + (*argv)[argvpos ++]= cur_arg; + + /* Copy rest of the un-parsed elements & return. */ + while ((++ pos) != pos_end) + (*argv)[argvpos ++]= *pos; + goto done; + } + command_list ++; + } + } + (*argv)[argvpos ++]= cur_arg; + } + } + +done: + /* + Destroy the first, already handled option, so that programs that look + for arguments in 'argv', without checking 'argc', know when to stop. + Items in argv, before the destroyed one, are all non-option -arguments + to the program, yet to be (possibly) handled. + */ + (*argv)[argvpos]= 0; + return 0; +} + + +/** + * This function should be called to print a warning message + * if password string is specified on the command line. + */ + +void print_cmdline_password_warning() +{ + static my_bool password_warning_announced= FALSE; + + if (!password_warning_announced) + { + my_message_local(WARNING_LEVEL, "Using a password on the command line " + "interface can be insecure."); + password_warning_announced= TRUE; + } +} + + +/** + @brief Check for struct options + + @param[in] cur_arg Current argument under processing from argv + @param[in] key_name variable where to store the possible key name + + @details + In case option is a struct option, returns a pointer to the current + argument at the position where the struct option (key_name) ends, the + next character after the dot. In case argument is not a struct option, + returns a pointer to the argument. + key_name will hold the name of the key, or 0 if not found. + + @return char* + If struct option Pointer to next character after dot. + If no struct option Pointer to the argument +*/ + +static char *check_struct_option(char *cur_arg, char *key_name) +{ + char *dot_pos, *equal_pos, *space_pos; + + dot_pos= strcend(cur_arg + 1, '.'); /* Skip the first character */ + equal_pos= strcend(cur_arg, '='); + space_pos= strcend(cur_arg, ' '); + + /* + If the first dot is after an equal sign, then it is part + of a variable value and the option is not a struct option. + Also, if the last character in the string before the ending + NULL, or the character right before equal sign is the first + dot found, the option is not a struct option. + */ + if ((equal_pos > dot_pos) && (space_pos > dot_pos)) + { + size_t len= (uint) (dot_pos - cur_arg); + set_if_smaller(len, FN_REFLEN-1); + strmake(key_name, cur_arg, len); + return ++dot_pos; + } + else + { + key_name[0]= 0; + return cur_arg; + } +} + + +/** + Parse a boolean command line argument + + "ON", "TRUE" and "1" will return true, + other values will return false. + + @param[in] argument The value argument + @return boolean value +*/ +static my_bool get_bool_argument(const struct my_option *opts, + const char *argument, + bool *error) +{ + if (!my_strcasecmp(&my_charset_latin1, argument, "true") || + !my_strcasecmp(&my_charset_latin1, argument, "on") || + !my_strcasecmp(&my_charset_latin1, argument, "1")) + return 1; + else if (!my_strcasecmp(&my_charset_latin1, argument, "false") || + !my_strcasecmp(&my_charset_latin1, argument, "off") || + !my_strcasecmp(&my_charset_latin1, argument, "0")) + return 0; + else + *error= 1; + return 0; +} + +/* + function: setval + + Arguments: opts, argument + Will set the option value to given value +*/ + +static int setval(const struct my_option *opts, void *value, char *argument, + my_bool set_maximum_value) +{ + int err= 0, res= 0; + bool error= 0; + ulong var_type= opts->var_type & GET_TYPE_MASK; + + if (!argument) + argument= enabled_my_option; + + /* + Thus check applies only to options that have a defined value + storage pointer. + We do it for numeric types only, as empty value is a valid + option for strings (the only way to reset back to default value). + Note: it does not relate to OPT_ARG/REQUIRED_ARG/NO_ARG, since + --param="" is not generally the same as --param. + TODO: Add an option definition flag to signify whether empty value + (i.e. --param="") is an acceptable value or an error and extend + the check to all options. + */ + if (!*argument && + ( + var_type == GET_INT || + var_type == GET_UINT || + var_type == GET_LONG || + var_type == GET_ULONG || + var_type == GET_LL || + var_type == GET_ULL || + var_type == GET_DOUBLE || + var_type == GET_ENUM + ) + ) + { + if (strncmp(opts->name, "port", 10) == 0) + { + my_getopt_error_reporter(WARNING_LEVEL, + "%s: Empty value for '%s' specified. Will throw an error in future versions", + my_progname, opts->name); + } + else + { + my_getopt_error_reporter(ERROR_LEVEL, + "%s: Empty value for '%s' specified", + my_progname, opts->name); + return EXIT_ARGUMENT_REQUIRED; + } + } + + if (value) + { + if (set_maximum_value && !(value= opts->u_max_value)) + { + my_getopt_error_reporter(ERROR_LEVEL, + "%s: Maximum value of '%s' cannot be set", + my_progname, opts->name); + return EXIT_NO_PTR_TO_VARIABLE; + } + + switch (var_type) { + case GET_BOOL: /* If argument differs from 0, enable option, else disable */ + *((my_bool*) value)= get_bool_argument(opts, argument, &error); + if(error) + my_getopt_error_reporter(WARNING_LEVEL, + "option '%s': boolean value '%s' wasn't recognized. Set to OFF.", + opts->name, argument); + break; + case GET_INT: + *((int*) value)= (int) getopt_ll(argument, opts, &err); + break; + case GET_UINT: + *((uint*) value)= (uint) getopt_ull(argument, opts, &err); + break; + case GET_LONG: + *((long*) value)= (long) getopt_ll(argument, opts, &err); + break; + case GET_ULONG: + *((long*) value)= (long) getopt_ull(argument, opts, &err); + break; + case GET_LL: + *((longlong*) value)= getopt_ll(argument, opts, &err); + break; + case GET_ULL: + *((ulonglong*) value)= getopt_ull(argument, opts, &err); + break; + case GET_DOUBLE: + *((double*) value)= getopt_double(argument, opts, &err); + break; + case GET_STR: + case GET_PASSWORD: + if (argument == enabled_my_option) + break; /* string options don't use this default of "1" */ + *((char**) value)= argument; + break; + case GET_STR_ALLOC: + if (argument == enabled_my_option) + break; /* string options don't use this default of "1" */ + my_free(*((char**) value)); + if (!(*((char**) value)= my_strdup(key_memory_defaults, + argument, MYF(MY_WME)))) + { + res= EXIT_OUT_OF_MEMORY; + goto ret; + }; + break; + case GET_ENUM: + { + int type= find_type(argument, opts->typelib, FIND_TYPE_BASIC); + if (type == 0) + { + /* + Accept an integer representation of the enumerated item. + */ + char *endptr; + ulong arg= strtoul(argument, &endptr, 10); + if (*endptr || arg >= opts->typelib->count) + { + res= EXIT_ARGUMENT_INVALID; + goto ret; + } + *(ulong*)value= arg; + } + else if (type < 0) + { + res= EXIT_AMBIGUOUS_OPTION; + goto ret; + } + else + *(ulong*)value= type - 1; + } + break; + case GET_SET: + *((ulonglong*)value)= find_typeset(argument, opts->typelib, &err); + if (err) + { + /* Accept an integer representation of the set */ + char *endptr; + ulonglong arg= (ulonglong) strtol(argument, &endptr, 10); + if (*endptr || (arg >> 1) >= (1ULL << (opts->typelib->count-1))) + { + res= EXIT_ARGUMENT_INVALID; + goto ret; + }; + *(ulonglong*)value= arg; + err= 0; + } + break; + case GET_FLAGSET: + { + char *error; + uint error_len; + + *((ulonglong*)value)= + find_set_from_flags(opts->typelib, opts->typelib->count, + *(ulonglong *)value, opts->def_value, + argument, (uint)strlen(argument), + &error, &error_len); + if (error) + { + res= EXIT_ARGUMENT_INVALID; + goto ret; + }; + } + break; + case GET_NO_ARG: /* get_one_option has taken care of the value already */ + default: /* dummy default to avoid compiler warnings */ + break; + } + if (err) + { + res= EXIT_UNKNOWN_SUFFIX; + goto ret; + }; + } + return 0; + +ret: + my_getopt_error_reporter(ERROR_LEVEL, + "%s: Error while setting value '%s' to '%s'", + my_progname, argument, opts->name); + return res; +} + + +/** + Find option + + IMPLEMENTATION + Go through all options in the my_option struct. Return true + if an option is found. sets opt_res to the option found, if any. + + @param optpat name of option to find (with - or _) + @param length Length of optpat + @param[in,out] opt_res Options + + @retval false No matching options + @retval true Found an option +*/ + +static bool findopt(char *optpat, uint length, + const struct my_option **opt_res) +{ + for (const struct my_option *opt= *opt_res; opt->name; opt++) + if (!getopt_compare_strings(opt->name, optpat, length) && + !opt->name[length]) + { + (*opt_res)= opt; + return true; + } + return false; +} + + +/* + function: compare_strings + + Works like strncmp, other than 1.) considers '-' and '_' the same. + 2.) Returns -1 if strings differ, 0 if they are equal +*/ + +my_bool getopt_compare_strings(const char *s, const char *t, + uint length) +{ + char const *end= s + length; + for (;s != end ; s++, t++) + { + if ((*s != '-' ? *s : '_') != (*t != '-' ? *t : '_')) + return 1; + } + return 0; +} + +/* + function: eval_num_suffix + + Transforms a number with a suffix to real number. Suffix can + be k|K for kilo, m|M for mega or g|G for giga. +*/ + +static longlong eval_num_suffix(char *argument, int *error, char *option_name) +{ + char *endchar; + longlong num; + + *error= 0; + errno= 0; + num= my_strtoll(argument, &endchar, 10); + if (errno == ERANGE) + { + my_getopt_error_reporter(ERROR_LEVEL, + "Incorrect integer value: '%s'", argument); + *error= 1; + return 0; + } + if (*endchar == 'k' || *endchar == 'K') + num*= 1024L; + else if (*endchar == 'm' || *endchar == 'M') + num*= 1024L * 1024L; + else if (*endchar == 'g' || *endchar == 'G') + num*= 1024L * 1024L * 1024L; + else if (*endchar) + { + my_message_local(ERROR_LEVEL, + "Unknown suffix '%c' used for variable '%s' (value '%s')", + *endchar, option_name, argument); + *error= 1; + return 0; + } + return num; +} + +/** + function: eval_num_suffix_ull + This is the same as eval_num_suffix, but is meant for unsigned long long + values. Transforms an unsigned number with a suffix to real number. Suffix can + be k|K for kilo, m|M for mega or g|G for giga. + @param [IN] argument argument value for option_name + @param [IN, OUT] error error no. + @param [IN] option_name name of option +*/ + +static ulonglong eval_num_suffix_ull(char *argument, int *error, char *option_name) +{ + char *endchar; + ulonglong num; + + *error= 0; + errno= 0; + num= my_strtoull(argument, &endchar, 10); + if (errno == ERANGE) + { + my_getopt_error_reporter(ERROR_LEVEL, + "Incorrect unsigned integer value: '%s'", argument); + *error= 1; + return 0; + } + if (*endchar == 'k' || *endchar == 'K') + num*= 1024L; + else if (*endchar == 'm' || *endchar == 'M') + num*= 1024L * 1024L; + else if (*endchar == 'g' || *endchar == 'G') + num*= 1024L * 1024L * 1024L; + else if (*endchar) + { + my_message_local(ERROR_LEVEL, + "Unknown suffix '%c' used for variable '%s' (value '%s')", + *endchar, option_name, argument); + *error= 1; + return 0; + } + return num; +} + +/* + function: getopt_ll + + Evaluates and returns the value that user gave as an argument + to a variable. Recognizes (case insensitive) K as KILO, M as MEGA + and G as GIGA bytes. Some values must be in certain blocks, as + defined in the given my_option struct, this function will check + that those values are honored. + In case of an error, set error value in *err. +*/ + +static longlong getopt_ll(char *arg, const struct my_option *optp, int *err) +{ + longlong num=eval_num_suffix(arg, err, (char*) optp->name); + return getopt_ll_limit_value(num, optp, NULL); +} + + +/** + Maximum possible value for an integer GET_* variable type + @param var_type type of integer variable (GET_*) + @returns maximum possible value for this type + */ +ulonglong max_of_int_range(int var_type) +{ + switch (var_type) + { + case GET_INT: + return INT_MAX; + case GET_LONG: + return LONG_MAX; + case GET_LL: + return LLONG_MAX; + case GET_UINT: + return UINT_MAX; + case GET_ULONG: + return ULONG_MAX; + case GET_ULL: + return ULLONG_MAX; + default: + DBUG_ASSERT(0); + return 0; + } +} + + +/* + function: getopt_ll_limit_value + + Applies min/max/block_size to a numeric value of an option. + Returns "fixed" value. +*/ + +longlong getopt_ll_limit_value(longlong num, const struct my_option *optp, + my_bool *fix) +{ + longlong old= num; + my_bool adjusted= FALSE; + char buf1[255], buf2[255]; + ulonglong block_size= (optp->block_size ? (ulonglong) optp->block_size : 1L); + const longlong max_of_type= + (longlong)max_of_int_range(optp->var_type & GET_TYPE_MASK); + + if (num > 0 && ((ulonglong) num > (ulonglong) optp->max_value) && + optp->max_value) /* if max value is not set -> no upper limit */ + { + num= (ulonglong) optp->max_value; + adjusted= TRUE; + } + + if (num > max_of_type) + { + num= max_of_type; + adjusted= TRUE; + } + + num= (num / block_size); + num= (longlong) (num * block_size); + + if (num < optp->min_value) + { + num= optp->min_value; + if (old < optp->min_value) + adjusted= TRUE; + } + + if (fix) + *fix= old != num; + else if (adjusted) + my_getopt_error_reporter(WARNING_LEVEL, + "option '%s': signed value %s adjusted to %s", + optp->name, llstr(old, buf1), llstr(num, buf2)); + return num; +} + +static inline my_bool is_negative_num(char* num) +{ + while (my_isspace(&my_charset_latin1, *num)) + num++; + + return (*num == '-'); +} + +/* + function: getopt_ull + + This is the same as getopt_ll, but is meant for unsigned long long + values. +*/ + +static ulonglong getopt_ull(char *arg, const struct my_option *optp, int *err) +{ + char buf[255]; + ulonglong num; + + /* If a negative number is specified as a value for the option. */ + if (arg == NULL || is_negative_num(arg) == TRUE) + { + num= (ulonglong) optp->min_value; + my_getopt_error_reporter(WARNING_LEVEL, + "option '%s': value %s adjusted to %s", + optp->name, arg, ullstr(num, buf)); + } + else + num= eval_num_suffix_ull(arg, err, (char*) optp->name); + + return getopt_ull_limit_value(num, optp, NULL); +} + + +ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp, + my_bool *fix) +{ + my_bool adjusted= FALSE; + ulonglong old= num; + char buf1[255], buf2[255]; + const ulonglong max_of_type= + max_of_int_range(optp->var_type & GET_TYPE_MASK); + + if (num > (ulonglong) optp->max_value && + optp->max_value) /* if max value is not set -> no upper limit */ + { + num= (ulonglong) optp->max_value; + adjusted= TRUE; + } + + if (num > max_of_type) + { + num= max_of_type; + adjusted= TRUE; + } + + if (optp->block_size > 1) + { + num/= (ulonglong) optp->block_size; + num*= (ulonglong) optp->block_size; + } + + if (num < (ulonglong) optp->min_value) + { + num= (ulonglong) optp->min_value; + if (old < (ulonglong) optp->min_value) + adjusted= TRUE; + } + + if (fix) + *fix= old != num; + else if (adjusted) + my_getopt_error_reporter(WARNING_LEVEL, + "option '%s': unsigned value %s adjusted to %s", + optp->name, ullstr(old, buf1), ullstr(num, buf2)); + + return num; +} + +double getopt_double_limit_value(double num, const struct my_option *optp, + my_bool *fix) +{ + my_bool adjusted= FALSE; + double old= num; + double min, max; + + max= getopt_ulonglong2double(optp->max_value); + min= getopt_ulonglong2double(optp->min_value); + if (max && num > max) + { + num= max; + adjusted= TRUE; + } + if (num < min) + { + num= min; + adjusted= TRUE; + } + if (fix) + *fix= adjusted; + else if (adjusted) + my_getopt_error_reporter(WARNING_LEVEL, + "option '%s': value %g adjusted to %g", + optp->name, old, num); + return num; +} + +/* + Get double value withing ranges + + Evaluates and returns the value that user gave as an argument to a variable. + + RETURN + decimal value of arg + + In case of an error, prints an error message and sets *err to + EXIT_ARGUMENT_INVALID. Otherwise err is not touched +*/ + +static double getopt_double(char *arg, const struct my_option *optp, int *err) +{ + double num; + int error; + char *end= arg + 1000; /* Big enough as *arg is \0 terminated */ + num= my_strtod(arg, &end, &error); + if (end[0] != 0 || error) + { + my_getopt_error_reporter(ERROR_LEVEL, + "Invalid decimal value for option '%s'\n", optp->name); + *err= EXIT_ARGUMENT_INVALID; + return 0.0; + } + return getopt_double_limit_value(num, optp, NULL); +} + +/* + Init one value to it's default values + + SYNOPSIS + init_one_value() + option Option to initialize + value Pointer to variable +*/ + +static void init_one_value(const struct my_option *option, void *variable, + longlong value) +{ + DBUG_ENTER("init_one_value"); + switch ((option->var_type & GET_TYPE_MASK)) { + case GET_BOOL: + *((my_bool*) variable)= (my_bool) value; + break; + case GET_INT: + *((int*) variable)= (int) getopt_ll_limit_value((int) value, option, NULL); + break; + case GET_ENUM: + *((ulong*) variable)= (ulong) value; + break; + case GET_UINT: + *((uint*) variable)= (uint) getopt_ull_limit_value((uint) value, option, NULL); + break; + case GET_LONG: + *((long*) variable)= (long) getopt_ll_limit_value((long) value, option, NULL); + break; + case GET_ULONG: + *((ulong*) variable)= (ulong) getopt_ull_limit_value((ulong) value, option, NULL); + break; + case GET_LL: + *((longlong*) variable)= getopt_ll_limit_value(value, option, NULL); + break; + case GET_ULL: + *((ulonglong*) variable)= getopt_ull_limit_value((ulonglong) value, option, NULL); + break; + case GET_SET: + case GET_FLAGSET: + *((ulonglong*) variable)= (ulonglong) value; + break; + case GET_DOUBLE: + *((double*) variable)= getopt_ulonglong2double(value); + break; + case GET_STR: + case GET_PASSWORD: + /* + Do not clear variable value if it has no default value. + The default value may already be set. + NOTE: To avoid compiler warnings, we first cast longlong to intptr, + so that the value has the same size as a pointer. + */ + if ((char*) (intptr) value) + *((char**) variable)= (char*) (intptr) value; + break; + case GET_STR_ALLOC: + /* + Do not clear variable value if it has no default value. + The default value may already be set. + NOTE: To avoid compiler warnings, we first cast longlong to intptr, + so that the value has the same size as a pointer. + */ + if ((char*) (intptr) value) + { + char **pstr= (char **) variable; + my_free(*pstr); + *pstr= my_strdup(key_memory_defaults, + (char*) (intptr) value, MYF(MY_WME)); + } + break; + default: /* dummy default to avoid compiler warnings */ + break; + } + DBUG_VOID_RETURN; +} + + +/* + Init one value to it's default values + + SYNOPSIS + init_one_value() + option Option to initialize + value Pointer to variable +*/ + +static void fini_one_value(const struct my_option *option, void *variable, + longlong value MY_ATTRIBUTE ((unused))) +{ + DBUG_ENTER("fini_one_value"); + switch ((option->var_type & GET_TYPE_MASK)) { + case GET_STR_ALLOC: + my_free(*((char**) variable)); + *((char**) variable)= NULL; + break; + default: /* dummy default to avoid compiler warnings */ + break; + } + DBUG_VOID_RETURN; +} + + +void my_cleanup_options(const struct my_option *options) +{ + init_variables(options, fini_one_value); +} + + +/* + initialize all variables to their default values + + SYNOPSIS + init_variables() + options Array of options + + NOTES + We will initialize the value that is pointed to by options->value. + If the value is of type GET_ASK_ADDR, we will ask for the address + for a value and initialize. +*/ + +static void init_variables(const struct my_option *options, + init_func_p init_one_value) +{ + DBUG_ENTER("init_variables"); + for (; options->name; options++) + { + void *value; + DBUG_PRINT("options", ("name: '%s'", options->name)); + /* + We must set u_max_value first as for some variables + options->u_max_value == options->value and in this case we want to + set the value to default value. + */ + if (options->u_max_value) + init_one_value(options, options->u_max_value, options->max_value); + value= (options->var_type & GET_ASK_ADDR ? + (*getopt_get_addr)("", 0, options, 0) : options->value); + if (value) + init_one_value(options, value, options->def_value); + } + DBUG_VOID_RETURN; +} + +/** + Prints variable or option name, replacing _ with - to given file stream + parameter (by default to stdout). + @param [IN] optp my_option parameter + @param [IN] file stream where the output of optp parameter name + goes (by default to stdout). +*/ +static uint print_name(const struct my_option *optp, FILE* file = stdout) +{ + const char *s= optp->name; + for (;*s;s++) + putc(*s == '_' ? '-' : *s, file); + return s - optp->name; +} + +/* + function: my_print_options + + Print help for all options and variables. +*/ + +void my_print_help(const struct my_option *options) +{ + uint col, name_space= 22, comment_space= 57; + const char *line_end; + const struct my_option *optp; + + for (optp= options; optp->name; optp++) + { + if (optp->id && optp->id < 256) + { + printf(" -%c%s", optp->id, strlen(optp->name) ? ", " : " "); + col= 6; + } + else + { + printf(" "); + col= 2; + } + if (strlen(optp->name)) + { + printf("--"); + col+= 2 + print_name(optp); + if (optp->arg_type == NO_ARG || + (optp->var_type & GET_TYPE_MASK) == GET_BOOL) + { + putchar(' '); + col++; + } + else if ((optp->var_type & GET_TYPE_MASK) == GET_STR || + (optp->var_type & GET_TYPE_MASK) == GET_PASSWORD || + (optp->var_type & GET_TYPE_MASK) == GET_STR_ALLOC || + (optp->var_type & GET_TYPE_MASK) == GET_ENUM || + (optp->var_type & GET_TYPE_MASK) == GET_SET || + (optp->var_type & GET_TYPE_MASK) == GET_FLAGSET ) + { + printf("%s=name%s ", optp->arg_type == OPT_ARG ? "[" : "", + optp->arg_type == OPT_ARG ? "]" : ""); + col+= (optp->arg_type == OPT_ARG) ? 8 : 6; + } + else + { + printf("%s=#%s ", optp->arg_type == OPT_ARG ? "[" : "", + optp->arg_type == OPT_ARG ? "]" : ""); + col+= (optp->arg_type == OPT_ARG) ? 5 : 3; + } + if (col > name_space && optp->comment && *optp->comment) + { + putchar('\n'); + col= 0; + } + } + for (; col < name_space; col++) + putchar(' '); + if (optp->comment && *optp->comment) + { + const char *comment= optp->comment, *end= strend(comment); + + while ((uint) (end - comment) > comment_space) + { + for (line_end= comment + comment_space; *line_end != ' '; line_end--) + {} + for (; comment != line_end; comment++) + putchar(*comment); + comment++; /* skip the space, as a newline will take it's place now */ + putchar('\n'); + for (col= 0; col < name_space; col++) + putchar(' '); + } + printf("%s", comment); + } + putchar('\n'); + if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL) + { + if (optp->def_value != 0) + { + printf("%*s(Defaults to on; use --skip-", name_space, ""); + print_name(optp); + printf(" to disable.)\n"); + } + } + } +} + +/** + function: my_print_variables + Print variables. + @param [IN] options my_option list +*/ +void my_print_variables(const struct my_option *options) +{ + my_print_variables_ex(options, stdout); +} + +/** + function: my_print_variables_ex + Print variables to given file parameter stream (by default to stdout). + @param [IN] options my_options list + @param [IN] file stream where the output goes. +*/ + +void my_print_variables_ex(const struct my_option *options, FILE* file) +{ + uint name_space= 34, nr; + size_t length; + ulonglong llvalue; + char buff[255]; + const struct my_option *optp; + + for (optp= options; optp->name; optp++) + { + length= strlen(optp->name)+1; + if (length > name_space) + name_space= length; + } + + fprintf(file, "\nVariables (--variable-name=value)\n"); + fprintf(file, "%-*s%s", name_space, "and boolean options {FALSE|TRUE}", + "Value (after reading options)\n"); + for (length=1; length < 75; length++) + putc(length == name_space ? ' ' : '-', file); + putc('\n', file); + + for (optp= options; optp->name; optp++) + { + void *value= (optp->var_type & GET_ASK_ADDR ? + (*getopt_get_addr)("", 0, optp, 0) : optp->value); + if (value) + { + length= print_name(optp, file); + for (; length < name_space; length++) + putc(' ', file); + switch ((optp->var_type & GET_TYPE_MASK)) { + case GET_SET: + if (!(llvalue= *(ulonglong*) value)) + fprintf(file, "%s\n", ""); + else + for (nr= 0; llvalue && nr < optp->typelib->count; nr++, llvalue >>=1) + { + if (llvalue & 1) + fprintf(file, llvalue > 1 ? "%s," : "%s\n", + get_type(optp->typelib, nr)); + } + break; + case GET_FLAGSET: + llvalue= *(ulonglong*) value; + for (nr= 0; llvalue && nr < optp->typelib->count; nr++, llvalue >>=1) + { + fprintf(file, "%s%s=", (nr ? "," : ""), get_type(optp->typelib, nr)); + fprintf(file, llvalue & 1 ? "on" : "off"); + } + fprintf(file, "\n"); + break; + case GET_ENUM: + fprintf(file, "%s\n", get_type(optp->typelib, *(ulong*) value)); + break; + case GET_STR: + case GET_PASSWORD: + case GET_STR_ALLOC: /* fall through */ + fprintf(file, "%s\n", *((char**) value) ? *((char**) value) : + "(No default value)"); + break; + case GET_BOOL: + fprintf(file, "%s\n", *((my_bool*) value) ? "TRUE" : "FALSE"); + break; + case GET_INT: + fprintf(file, "%d\n", *((int*) value)); + break; + case GET_UINT: + fprintf(file, "%d\n", *((uint*) value)); + break; + case GET_LONG: + fprintf(file, "%ld\n", *((long*) value)); + break; + case GET_ULONG: + fprintf(file, "%lu\n", *((ulong*) value)); + break; + case GET_LL: + fprintf(file, "%s\n", llstr(*((longlong*) value), buff)); + break; + case GET_ULL: + longlong2str(*((ulonglong*) value), buff, 10); + fprintf(file, "%s\n", buff); + break; + case GET_DOUBLE: + fprintf(file, "%g\n", *(double*) value); + break; + case GET_NO_ARG: + fprintf(file, "(No default value)\n"); + break; + default: + fprintf(file, "(Disabled)\n"); + break; + } + } + } +} diff --git a/mysql/mysys_ssl/my_md5.cpp b/mysql/mysys_ssl/my_md5.cpp new file mode 100644 index 0000000..4c14366 --- /dev/null +++ b/mysql/mysys_ssl/my_md5.cpp @@ -0,0 +1,68 @@ +/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + + +/** + @file + + @brief + Wrapper functions for OpenSSL and YaSSL. Also provides a Compatibility layer + to make available YaSSL's MD5 implementation. +*/ + +#include +#include + +#if defined(HAVE_YASSL) +#include "my_config.h" +#include "md5.hpp" + +static void my_md5_hash(char *digest, const char *buf, int len) +{ + TaoCrypt::MD5 hasher; + hasher.Update((TaoCrypt::byte *) buf, len); + hasher.Final((TaoCrypt::byte *) digest); +} + +#elif defined(HAVE_OPENSSL) +#include + +static void my_md5_hash(unsigned char* digest, unsigned const char *buf, int len) +{ + MD5_CTX ctx; + MD5_Init (&ctx); + MD5_Update (&ctx, buf, len); + MD5_Final (digest, &ctx); +} + +#endif /* HAVE_YASSL */ + +/** + Wrapper function to compute MD5 message digest. + + @param digest [out] Computed MD5 digest + @param buf [in] Message to be computed + @param len [in] Length of the message + + @return void +*/ +void compute_md5_hash(char *digest, const char *buf, int len) +{ +#if defined(HAVE_YASSL) + my_md5_hash(digest, buf, len); +#elif defined(HAVE_OPENSSL) + my_md5_hash((unsigned char*)digest, (unsigned const char*)buf, len); +#endif /* HAVE_YASSL */ +} diff --git a/mysql/mysys_ssl/my_murmur3.cpp b/mysql/mysys_ssl/my_murmur3.cpp new file mode 100644 index 0000000..82dccb6 --- /dev/null +++ b/mysql/mysys_ssl/my_murmur3.cpp @@ -0,0 +1,134 @@ +/* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* + Implementation of 32-bit version of MurmurHash3 - fast non-cryptographic + hash function with good statistical properties, which is based on public + domain code by Austin Appleby. +*/ + +#include + + +/* + Platform-specific implementations of ROTL32 helper. +*/ + +#if defined(_MSC_VER) + +/* Microsoft Visual Studio supports intrinsic for rotate left. */ + +#include + +#define ROTL32(x, y) _rotl(x, y) + +/* + Force inlining of intrinsic even though /Oi option is turned off + in release builds. +*/ +#pragma intrinsic(_rotl) + +#else // !defined(_MSC_VER) + +/* + Many other compilers should be able to optimize the below + function to single instruction. +*/ + +inline uint32 rotl32 (uint32 x, char r) +{ + return (x << r) | (x >> (32 - r)); +} + +#define ROTL32(x,y) rotl32(x,y) + +#endif // !defined(_MSC_VER) + + +/** + Compute 32-bit version of MurmurHash3 hash for the key. + + @param key Key for which hash value to be computed. + @param len Key length. + @param seed Seed for hash computation. + + @note WARNING! Since MurmurHash3 is known to be susceptible to "hash DoS" + attack it should not be used in any situation where attacker has + control over key being hashed and thus can cause performance problems + due to degradation of hash lookup to linear list search. + + @returns Hash value for the key. +*/ + +uint32 murmur3_32(const uchar *key, size_t len, uint32 seed) +{ + const uchar *tail= key + (len - len % 4); + + uint32 h1= seed; + + /* Constants for magic numbers that are used more than once. */ + const uint32 c1= 0xcc9e2d51; + const uint32 c2= 0x1b873593; + + /* Body: process all 32-bit blocks in the key. */ + + for (const uchar *data= key; data != tail; data+= 4) + { + uint32 k1= uint4korr(data); + + k1*= c1; + k1= ROTL32(k1, 15); + k1*= c2; + + h1^= k1; + h1= ROTL32(h1, 13); + h1= h1 * 5 + 0xe6546b64; + } + + /* Tail: handle remaining len % 4 bytes. */ + + uint32 k1= 0; + + switch(len % 4) + { + case 3: + k1^= static_cast(tail[2]) << 16; + /* Fall through. */ + case 2: + k1^= static_cast(tail[1]) << 8; + /* Fall through. */ + case 1: + k1^= tail[0]; + k1*= c1; + k1= ROTL32(k1, 15); + k1*= c2; + h1^= k1; + }; + + /* + Finalization mix: + Add length and force all bits of a hash block to avalanche. + */ + + h1^= len; + + h1^= h1 >> 16; + h1*= 0x85ebca6b; + h1^= h1 >> 13; + h1*= 0xc2b2ae35; + h1^= h1 >> 16; + + return h1; +} diff --git a/mysql/mysys_ssl/my_rnd.cpp b/mysql/mysys_ssl/my_rnd.cpp new file mode 100644 index 0000000..19fd37e --- /dev/null +++ b/mysql/mysys_ssl/my_rnd.cpp @@ -0,0 +1,115 @@ +/* + Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include + +#if defined(HAVE_YASSL) + +#if defined(YASSL_PREFIX) +#define RAND_bytes yaRAND_bytes +#endif /* YASSL_PREFIX */ + +#include + +#elif defined(HAVE_OPENSSL) +#include +#include +#endif /* HAVE_YASSL */ + + +/* + A wrapper to use OpenSSL/yaSSL PRNGs. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + Generate random number. + + @param rand_st [INOUT] Structure used for number generation. + + @retval Generated pseudo random number. +*/ + +double my_rnd(struct rand_struct *rand_st) +{ + rand_st->seed1= (rand_st->seed1*3+rand_st->seed2) % rand_st->max_value; + rand_st->seed2= (rand_st->seed1+rand_st->seed2+33) % rand_st->max_value; + return (((double) rand_st->seed1) / rand_st->max_value_dbl); +} + + + +/** +Fill a buffer with random bytes using the SSL library routines + +@param buffer [OUT] Buffer to receive the random data +@param buffer_size [IN] sizeof the the buffer + +@retval 1 error ocurred. +@retval 0 OK +*/ +int +my_rand_buffer(unsigned char *buffer, size_t buffer_size) +{ + int rc; +#if defined(HAVE_YASSL) /* YaSSL */ + rc= yaSSL::RAND_bytes(buffer, buffer_size); + + if (!rc) + return 1; +#elif defined(HAVE_OPENSSL) + rc= RAND_bytes(buffer, buffer_size); + + if (!rc) + { + ERR_clear_error(); + return 1; + } +#else /* no SSL */ +#error not using an SSL library not supported +#endif + return 0; +} + + +/** + Generate a random number using the OpenSSL/yaSSL supplied + random number generator if available. + + @param rand_st [INOUT] Structure used for number generation + only if none of the SSL libraries are + available. + + @retval Generated random number. +*/ + +double my_rnd_ssl(struct rand_struct *rand_st) +{ + unsigned int res; + + if (my_rand_buffer((unsigned char *) &res, sizeof(res))) + return my_rnd(rand_st); + + return (double)res / (double)UINT_MAX; +} + + +#ifdef __cplusplus +} +#endif diff --git a/mysql/mysys_ssl/my_sha1.cpp b/mysql/mysys_ssl/my_sha1.cpp new file mode 100644 index 0000000..5d9d480 --- /dev/null +++ b/mysql/mysys_ssl/my_sha1.cpp @@ -0,0 +1,141 @@ +/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + + +/** + @file + + @brief + Wrapper functions for OpenSSL, YaSSL implementations. Also provides a + Compatibility layer to make available YaSSL's SHA1 implementation. +*/ + +#include +#include + +#if defined(HAVE_YASSL) +#include "sha.hpp" + +/** + Compute SHA1 message digest using YaSSL. + + @param digest [out] Computed SHA1 digest + @param buf [in] Message to be computed + @param len [in] Length of the message + + @return void +*/ +void mysql_sha1_yassl(uint8 *digest, const char *buf, size_t len) +{ + TaoCrypt::SHA hasher; + hasher.Update((const TaoCrypt::byte *) buf, (TaoCrypt::word32)len); + hasher.Final ((TaoCrypt::byte *) digest); +} + +/** + Compute SHA1 message digest for two messages in order to + emulate sha1(msg1, msg2) using YaSSL. + + @param digest [out] Computed SHA1 digest + @param buf1 [in] First message + @param len1 [in] Length of first message + @param buf2 [in] Second message + @param len2 [in] Length of second message + + @return void +*/ +void mysql_sha1_multi_yassl(uint8 *digest, const char *buf1, int len1, + const char *buf2, int len2) +{ + TaoCrypt::SHA hasher; + hasher.Update((const TaoCrypt::byte *) buf1, len1); + hasher.Update((const TaoCrypt::byte *) buf2, len2); + hasher.Final((TaoCrypt::byte *) digest); +} + +#elif defined(HAVE_OPENSSL) +#include + +int mysql_sha1_reset(SHA_CTX *context) +{ + return SHA1_Init(context); +} + + +int mysql_sha1_input(SHA_CTX *context, const uint8 *message_array, + unsigned length) +{ + return SHA1_Update(context, message_array, length); +} + + +int mysql_sha1_result(SHA_CTX *context, + uint8 Message_Digest[SHA1_HASH_SIZE]) +{ + return SHA1_Final(Message_Digest, context); +} + +#endif /* HAVE_YASSL */ + +/** + Wrapper function to compute SHA1 message digest. + + @param digest [out] Computed SHA1 digest + @param buf [in] Message to be computed + @param len [in] Length of the message + + @return void +*/ +void compute_sha1_hash(uint8 *digest, const char *buf, size_t len) +{ +#if defined(HAVE_YASSL) + mysql_sha1_yassl(digest, buf, len); +#elif defined(HAVE_OPENSSL) + SHA_CTX sha1_context; + + mysql_sha1_reset(&sha1_context); + mysql_sha1_input(&sha1_context, (const uint8 *) buf, len); + mysql_sha1_result(&sha1_context, digest); +#endif /* HAVE_YASSL */ +} + + +/** + Wrapper function to compute SHA1 message digest for + two messages in order to emulate sha1(msg1, msg2). + + @param digest [out] Computed SHA1 digest + @param buf1 [in] First message + @param len1 [in] Length of first message + @param buf2 [in] Second message + @param len2 [in] Length of second message + + @return void +*/ +void compute_sha1_hash_multi(uint8 *digest, const char *buf1, int len1, + const char *buf2, int len2) +{ +#if defined(HAVE_YASSL) + mysql_sha1_multi_yassl(digest, buf1, len1, buf2, len2); +#elif defined(HAVE_OPENSSL) + SHA_CTX sha1_context; + + mysql_sha1_reset(&sha1_context); + mysql_sha1_input(&sha1_context, (const uint8 *) buf1, len1); + mysql_sha1_input(&sha1_context, (const uint8 *) buf2, len2); + mysql_sha1_result(&sha1_context, digest); +#endif /* HAVE_YASSL */ +} + diff --git a/mysql/mysys_ssl/my_sha2.cpp b/mysql/mysys_ssl/my_sha2.cpp new file mode 100644 index 0000000..0020033 --- /dev/null +++ b/mysql/mysys_ssl/my_sha2.cpp @@ -0,0 +1,68 @@ +/* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + + +/** + @file + A compatibility layer to our built-in SSL implementation, to mimic the + oft-used external library, OpenSSL. +*/ + +#include +#include + +#ifdef HAVE_YASSL + +/* + If TaoCrypt::SHA512 or ::SHA384 are not defined (but ::SHA256 is), it's + probably that neither of config.h's SIZEOF_LONG or SIZEOF_LONG_LONG are + 64 bits long. At present, both OpenSSL and YaSSL require 64-bit integers + for SHA-512. (The SIZEOF_* definitions come from autoconf's config.h .) +*/ + +# define GEN_YASSL_SHA2_BRIDGE(size) \ +unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \ + char unsigned *output_ptr) { \ + TaoCrypt::SHA##size hasher; \ + \ + hasher.Update(input_ptr, input_length); \ + hasher.Final(output_ptr); \ + return(output_ptr); \ +} + + +/** + @fn SHA512 + @fn SHA384 + @fn SHA256 + @fn SHA224 + + Instantiate an hash object, fill in the cleartext value, compute the digest, + and extract the result from the object. + + (Generate the functions. See similar .h code for the prototypes.) +*/ +# ifndef OPENSSL_NO_SHA512 +GEN_YASSL_SHA2_BRIDGE(512); +GEN_YASSL_SHA2_BRIDGE(384); +# else +# warning Some SHA2 functionality is missing. See OPENSSL_NO_SHA512. +# endif +GEN_YASSL_SHA2_BRIDGE(256); +GEN_YASSL_SHA2_BRIDGE(224); + +# undef GEN_YASSL_SHA2_BRIDGE + +#endif /* HAVE_YASSL */ diff --git a/mysql/password.h b/mysql/password.h new file mode 100644 index 0000000..cb5d87e --- /dev/null +++ b/mysql/password.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef PASSWORD_INCLUDED +#define PASSWORD_INCLUDED + +#include "my_global.h" + +struct rand_struct *get_sql_rand(); + +C_MODE_START + +void my_make_scrambled_password(char *to, const char *password, + size_t pass_len); +void my_make_scrambled_password_sha1(char *to, const char *password, + size_t pass_len); + +void hash_password(ulong *result, const char *password, uint password_len); + +C_MODE_END + +#endif /* PASSWORD_INCLUDED */ diff --git a/mysql/pfs_socket_provider.h b/mysql/pfs_socket_provider.h new file mode 100644 index 0000000..bfafdaa --- /dev/null +++ b/mysql/pfs_socket_provider.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#ifndef PFS_SOCKET_PROVIDER_H +#define PFS_SOCKET_PROVIDER_H + +/** + @file include/pfs_socket_provider.h + Performance schema instrumentation (declarations). +*/ + +#ifdef HAVE_PSI_SOCKET_INTERFACE +#ifdef MYSQL_SERVER +#ifndef EMBEDDED_LIBRARY +#ifndef MYSQL_DYNAMIC_PLUGIN + +#include "mysql/psi/psi.h" + +#define PSI_SOCKET_CALL(M) pfs_ ## M ## _v1 + +C_MODE_START + +void pfs_register_socket_v1(const char *category, + PSI_socket_info_v1 *info, + int count); + +PSI_socket* +pfs_init_socket_v1(PSI_socket_key key, const my_socket *fd, + const struct sockaddr *addr, socklen_t addr_len); + +void pfs_destroy_socket_v1(PSI_socket *socket); + +PSI_socket_locker* +pfs_start_socket_wait_v1(PSI_socket_locker_state *state, + PSI_socket *socket, + PSI_socket_operation op, + size_t count, + const char *src_file, uint src_line); + +void pfs_end_socket_wait_v1(PSI_socket_locker *locker, size_t byte_count); + +void pfs_set_socket_state_v1(PSI_socket *socket, PSI_socket_state state); + +void pfs_set_socket_info_v1(PSI_socket *socket, + const my_socket *fd, + const struct sockaddr *addr, + socklen_t addr_len); + +void pfs_set_socket_thread_owner_v1(PSI_socket *socket); + +C_MODE_END + +#endif /* EMBEDDED_LIBRARY */ +#endif /* MYSQL_DYNAMIC_PLUGIN */ +#endif /* MYSQL_SERVER */ +#endif /* HAVE_PSI_SOCKET_INTERFACE */ + +#endif + diff --git a/mysql/prealloced_array.h b/mysql/prealloced_array.h new file mode 100644 index 0000000..d4a5f70 --- /dev/null +++ b/mysql/prealloced_array.h @@ -0,0 +1,486 @@ +/* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef PREALLOCED_ARRAY_INCLUDED +#define PREALLOCED_ARRAY_INCLUDED + +#include "my_global.h" +#include "my_sys.h" +#include "my_dbug.h" + +#include + +/** + A typesafe replacement for DYNAMIC_ARRAY. We do our own memory management, + and pre-allocate space for a number of elements. The purpose is to + pre-allocate enough elements to cover normal use cases, thus saving + malloc()/free() overhead. + If we run out of space, we use malloc to allocate more space. + + The interface is chosen to be similar to std::vector. + We keep the std::vector property that storage is contiguous. + + @remark + Unlike DYNAMIC_ARRAY, elements are properly copied + (rather than memcpy()d) if the underlying array needs to be expanded. + + @remark + Depending on Has_trivial_destructor, we destroy objects which are + removed from the array (including when the array object itself is destroyed). + + @tparam Element_type The type of the elements of the container. + Elements must be copyable. + @tparam Prealloc Number of elements to pre-allocate. + @tparam Has_trivial_destructor If true, we don't destroy elements. + We could have used type traits to determine this. + __has_trivial_destructor is supported by some (but not all) + compilers we use. + We set the default to true, since we will most likely store pointers + (shuffling objects around may be expensive). + */ +template +class Prealloced_array +{ + /** + Casts the raw buffer to the proper Element_type. + We use a raw buffer rather than Element_type[] in order to avoid having + CTORs/DTORs invoked by the C++ runtime. + */ + Element_type *cast_rawbuff() + { + return static_cast(static_cast(&m_buff.data[0])); + } +public: + + /// Standard typedefs. + typedef Element_type value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + + typedef Element_type *iterator; + typedef const Element_type *const_iterator; + + explicit Prealloced_array(PSI_memory_key psi_key) + : m_size(0), m_capacity(Prealloc), m_array_ptr(cast_rawbuff()), + m_psi_key(psi_key) + { + // We do not want a zero-size array. + compile_time_assert(Prealloc != 0); + } + + /** + An object instance "owns" its array, so we do deep copy here. + */ + Prealloced_array(const Prealloced_array &that) + : m_size(0), m_capacity(Prealloc), m_array_ptr(cast_rawbuff()), + m_psi_key(that.m_psi_key) + { + if (this->reserve(that.capacity())) + return; + for (const Element_type *p= that.begin(); p != that.end(); ++p) + this->push_back(*p); + } + + /** + Range constructor. + + Constructs a container with as many elements as the range [first,last), + with each element constructed from its corresponding element in that range, + in the same order. + */ + Prealloced_array(PSI_memory_key psi_key, + const_iterator first, const_iterator last) + : m_size(0), m_capacity(Prealloc), m_array_ptr(cast_rawbuff()), + m_psi_key(psi_key) + { + if (this->reserve(last - first)) + return; + for (; first != last; ++first) + push_back(*first); + } + + /** + Copies all the elements from 'that' into this container. + Any objects in this container are destroyed first. + */ + Prealloced_array &operator=(const Prealloced_array &that) + { + this->clear(); + if (this->reserve(that.capacity())) + return *this; + for (const Element_type *p= that.begin(); p != that.end(); ++p) + this->push_back(*p); + return *this; + } + + /** + Runs DTOR on all elements if needed. + Deallocates array if we exceeded the Preallocated amount. + */ + ~Prealloced_array() + { + if (!Has_trivial_destructor) + { + clear(); + } + if (m_array_ptr != cast_rawbuff()) + my_free(m_array_ptr); + } + + size_t capacity() const { return m_capacity; } + size_t element_size() const { return sizeof(Element_type); } + bool empty() const { return m_size == 0; } + size_t size() const { return m_size; } + + Element_type &at(size_t n) + { + DBUG_ASSERT(n < size()); + return m_array_ptr[n]; + } + + const Element_type &at(size_t n) const + { + DBUG_ASSERT(n < size()); + return m_array_ptr[n]; + } + + Element_type &operator[](size_t n) { return at(n); } + const Element_type &operator[](size_t n) const { return at(n); } + + Element_type &back() { return at(size() - 1); } + const Element_type &back() const { return at(size() - 1); } + + Element_type &front() { return at(0); } + const Element_type &front() const { return at(0); } + + /** + begin : Returns a pointer to the first element in the array. + end : Returns a pointer to the past-the-end element in the array. + */ + iterator begin() { return m_array_ptr; } + iterator end() { return m_array_ptr + size(); } + const_iterator begin() const { return m_array_ptr; } + const_iterator end() const { return m_array_ptr + size(); } + + /** + Reserves space for array elements. + Copies over existing elements, in case we are re-expanding the array. + + @param n number of elements. + @retval true if out-of-memory, false otherwise. + */ + bool reserve(size_t n) + { + if (n <= m_capacity) + return false; + + void *mem= my_malloc(m_psi_key, n * element_size(), MYF(MY_WME)); + if (!mem) + return true; + Element_type *new_array= static_cast(mem); + + // Copy all the existing elements into the new array. + for (size_t ix= 0; ix < m_size; ++ix) + { + Element_type *new_p= &new_array[ix]; + const Element_type &old_p= m_array_ptr[ix]; + ::new (new_p) Element_type(old_p); // Copy into new location. + if (!Has_trivial_destructor) + old_p.~Element_type(); // Destroy the old element. + } + + if (m_array_ptr != cast_rawbuff()) + my_free(m_array_ptr); + + // Forget the old array; + m_array_ptr= new_array; + m_capacity= n; + return false; + } + + /** + Copies an element into the back of the array. + Complexity: Constant (amortized time, reallocation may happen). + @retval true if out-of-memory, false otherwise. + */ + bool push_back(const Element_type &element) + { + const size_t expansion_factor= 2; + if (m_size == m_capacity && reserve(m_capacity * expansion_factor)) + return true; + Element_type *p= &m_array_ptr[m_size++]; + ::new (p) Element_type(element); + return false; + } + + /** + Removes the last element in the array, effectively reducing the + container size by one. This destroys the removed element. + */ + void pop_back() + { + DBUG_ASSERT(!empty()); + if (!Has_trivial_destructor) + back().~Element_type(); + m_size-= 1; + } + + /** + The array is extended by inserting a new element before the element at the + specified position. + + This is generally an inefficient operation, since we need to copy + elements to make a new "hole" in the array. + + We use std::copy_backward to move objects, hence Element_type must be + assignable. + + @retval An iterator pointing to the inserted value. + */ + iterator insert(iterator position, const value_type &val) + { + const difference_type n= position - begin(); + if (position == end()) + push_back(val); + else + { + resize(m_size + 1); + // resize() may invalidate position, so do not use it here. + std::copy_backward(begin() + n, end() - 1, end()); + *(begin() + n) = val; + } + return begin() + n; + } + + /** + Similar to std::set<>::insert() + Extends the array by inserting a new element, but only if it cannot be found + in the array already. + + Assumes that the array is sorted with std::less + Insertion using this function will maintain order. + + @retval A pair, with its member pair::first set an iterator pointing to + either the newly inserted element, or to the equivalent element + already in the array. The pair::second element is set to true if + the new element was inserted, or false if an equivalent element + already existed. + */ + std::pair insert_unique(const value_type &val) + { + std::pair p= std::equal_range(begin(), end(), val); + // p.first == p.second means we did not find it. + if (p.first == p.second) + return std::make_pair(insert(p.first, val), true); + return std::make_pair(p.first, false); + } + + /** + Similar to std::set<>::erase() + Removes a single element from the array by value. + The removed element is destroyed. + This effectively reduces the container size by one. + + This is generally an inefficient operation, since we need to copy + elements to fill the "hole" in the array. + + Assumes that the array is sorted with std::less. + + @retval number of elements removed, 0 or 1. + */ + size_type erase_unique(const value_type &val) + { + std::pair p= std::equal_range(begin(), end(), val); + if (p.first == p.second) + return 0; // Not found + erase(p.first); + return 1; + } + + /** + Similar to std::set<>::count() + + @note Assumes that array is maintained with insert_unique/erase_unique. + + @retval 1 if element is found, 0 otherwise. + */ + size_type count_unique(const value_type& val) const + { + return std::binary_search(begin(), end(), val); + } + + /** + Removes a single element from the array. + The removed element is destroyed. + This effectively reduces the container size by one. + + This is generally an inefficient operation, since we need to copy + elements to fill the "hole" in the array. + + We use std::copy to move objects, hence Element_type must be assignable. + */ + iterator erase(iterator position) + { + DBUG_ASSERT(position != end()); + if (position + 1 != end()) + std::copy(position + 1, end(), position); + this->pop_back(); + return position; + } + + /** + Removes a single element from the array. + */ + iterator erase(size_t ix) + { + DBUG_ASSERT(ix < size()); + return erase(begin() + ix); + } + + /** + Removes tail elements from the array. + The removed elements are destroyed. + This effectively reduces the containers size by 'end() - first'. + */ + void erase_at_end(iterator first) + { + iterator last= end(); + const difference_type diff= last - first; + if (!Has_trivial_destructor) + { + for (; first != last; ++first) + first->~Element_type(); + } + m_size-= diff; + } + + /** + Removes a range of elements from the array. + The removed elements are destroyed. + This effectively reduces the containers size by 'last - first'. + + This is generally an inefficient operation, since we need to copy + elements to fill the "hole" in the array. + + We use std::copy to move objects, hence Element_type must be assignable. + */ + iterator erase(iterator first, iterator last) + { + if (first != last) + erase_at_end(std::copy(last, end(), first)); + return first; + } + + /** + Exchanges the content of the container by the content of rhs, which + is another vector object of the same type. Sizes may differ. + + We use std::swap to do the operation. + */ + void swap(Prealloced_array &rhs) + { + // Just swap pointers if both arrays have done malloc. + if (m_array_ptr != cast_rawbuff() && + rhs.m_array_ptr != rhs.cast_rawbuff()) + { + std::swap(m_size, rhs.m_size); + std::swap(m_capacity, rhs.m_capacity); + std::swap(m_array_ptr, rhs.m_array_ptr); + std::swap(m_psi_key, rhs.m_psi_key); + return; + } + std::swap(*this, rhs); + } + + /** + Requests the container to reduce its capacity to fit its size. + */ + void shrink_to_fit() + { + // Cannot shrink the pre-allocated array. + if (m_array_ptr == cast_rawbuff()) + return; + // No point in swapping. + if (size() == capacity()) + return; + Prealloced_array(m_psi_key, begin(), end()).swap(*this); + } + + /** + Resizes the container so that it contains n elements. + + If n is smaller than the current container size, the content is + reduced to its first n elements, removing those beyond (and + destroying them). + + If n is greater than the current container size, the content is + expanded by inserting at the end as many elements as needed to + reach a size of n. If val is specified, the new elements are + initialized as copies of val, otherwise, they are + value-initialized. + + If n is also greater than the current container capacity, an automatic + reallocation of the allocated storage space takes place. + + Notice that this function changes the actual content of the + container by inserting or erasing elements from it. + */ + void resize(size_t n, const Element_type &val= Element_type()) + { + if (n == m_size) + return; + if (n > m_size) + { + if (!reserve(n)) + { + while (n != m_size) + push_back(val); + } + return; + } + if (!Has_trivial_destructor) + { + while (n != m_size) + pop_back(); + } + m_size= n; + } + + /** + Removes (and destroys) all elements. + Does not change capacity. + */ + void clear() + { + if (!Has_trivial_destructor) + { + for (Element_type *p= begin(); p != end(); ++p) + p->~Element_type(); // Destroy discarded element. + } + m_size= 0; + } + +private: + size_t m_size; + size_t m_capacity; + // This buffer must be properly aligned. + my_aligned_storagem_buff; + Element_type *m_array_ptr; + PSI_memory_key m_psi_key; +}; + +#endif // PREALLOCED_ARRAY_INCLUDED diff --git a/mysql/probes_mysql.h b/mysql/probes_mysql.h new file mode 100644 index 0000000..191860d --- /dev/null +++ b/mysql/probes_mysql.h @@ -0,0 +1,29 @@ +/* Copyright (c) 2008 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef PROBES_MYSQL_H + +#define PROBES_MYSQL_H + +#include + +#if defined(HAVE_DTRACE) && !defined(DISABLE_DTRACE) +#include "probes_mysql_dtrace.h" +#else +#include "probes_mysql_nodtrace.h" +#endif + +#endif /* PROBES_MYSQL_H */ diff --git a/mysql/probes_mysql_nodtrace.h b/mysql/probes_mysql_nodtrace.h new file mode 100644 index 0000000..bc3b65a --- /dev/null +++ b/mysql/probes_mysql_nodtrace.h @@ -0,0 +1,129 @@ +/* + * Generated by dheadgen(1). + */ + +#ifndef _PROBES_MYSQL_D +#define _PROBES_MYSQL_D + +#ifdef __cplusplus +extern "C" { +#endif + +#define MYSQL_CONNECTION_START(arg0, arg1, arg2) +#define MYSQL_CONNECTION_START_ENABLED() (0) +#define MYSQL_CONNECTION_DONE(arg0, arg1) +#define MYSQL_CONNECTION_DONE_ENABLED() (0) +#define MYSQL_COMMAND_START(arg0, arg1, arg2, arg3) +#define MYSQL_COMMAND_START_ENABLED() (0) +#define MYSQL_COMMAND_DONE(arg0) +#define MYSQL_COMMAND_DONE_ENABLED() (0) +#define MYSQL_QUERY_START(arg0, arg1, arg2, arg3, arg4) +#define MYSQL_QUERY_START_ENABLED() (0) +#define MYSQL_QUERY_DONE(arg0) +#define MYSQL_QUERY_DONE_ENABLED() (0) +#define MYSQL_QUERY_PARSE_START(arg0) +#define MYSQL_QUERY_PARSE_START_ENABLED() (0) +#define MYSQL_QUERY_PARSE_DONE(arg0) +#define MYSQL_QUERY_PARSE_DONE_ENABLED() (0) +#define MYSQL_QUERY_CACHE_HIT(arg0, arg1) +#define MYSQL_QUERY_CACHE_HIT_ENABLED() (0) +#define MYSQL_QUERY_CACHE_MISS(arg0) +#define MYSQL_QUERY_CACHE_MISS_ENABLED() (0) +#define MYSQL_QUERY_EXEC_START(arg0, arg1, arg2, arg3, arg4, arg5) +#define MYSQL_QUERY_EXEC_START_ENABLED() (0) +#define MYSQL_QUERY_EXEC_DONE(arg0) +#define MYSQL_QUERY_EXEC_DONE_ENABLED() (0) +#define MYSQL_INSERT_ROW_START(arg0, arg1) +#define MYSQL_INSERT_ROW_START_ENABLED() (0) +#define MYSQL_INSERT_ROW_DONE(arg0) +#define MYSQL_INSERT_ROW_DONE_ENABLED() (0) +#define MYSQL_UPDATE_ROW_START(arg0, arg1) +#define MYSQL_UPDATE_ROW_START_ENABLED() (0) +#define MYSQL_UPDATE_ROW_DONE(arg0) +#define MYSQL_UPDATE_ROW_DONE_ENABLED() (0) +#define MYSQL_DELETE_ROW_START(arg0, arg1) +#define MYSQL_DELETE_ROW_START_ENABLED() (0) +#define MYSQL_DELETE_ROW_DONE(arg0) +#define MYSQL_DELETE_ROW_DONE_ENABLED() (0) +#define MYSQL_READ_ROW_START(arg0, arg1, arg2) +#define MYSQL_READ_ROW_START_ENABLED() (0) +#define MYSQL_READ_ROW_DONE(arg0) +#define MYSQL_READ_ROW_DONE_ENABLED() (0) +#define MYSQL_INDEX_READ_ROW_START(arg0, arg1) +#define MYSQL_INDEX_READ_ROW_START_ENABLED() (0) +#define MYSQL_INDEX_READ_ROW_DONE(arg0) +#define MYSQL_INDEX_READ_ROW_DONE_ENABLED() (0) +#define MYSQL_HANDLER_RDLOCK_START(arg0, arg1) +#define MYSQL_HANDLER_RDLOCK_START_ENABLED() (0) +#define MYSQL_HANDLER_WRLOCK_START(arg0, arg1) +#define MYSQL_HANDLER_WRLOCK_START_ENABLED() (0) +#define MYSQL_HANDLER_UNLOCK_START(arg0, arg1) +#define MYSQL_HANDLER_UNLOCK_START_ENABLED() (0) +#define MYSQL_HANDLER_RDLOCK_DONE(arg0) +#define MYSQL_HANDLER_RDLOCK_DONE_ENABLED() (0) +#define MYSQL_HANDLER_WRLOCK_DONE(arg0) +#define MYSQL_HANDLER_WRLOCK_DONE_ENABLED() (0) +#define MYSQL_HANDLER_UNLOCK_DONE(arg0) +#define MYSQL_HANDLER_UNLOCK_DONE_ENABLED() (0) +#define MYSQL_FILESORT_START(arg0, arg1) +#define MYSQL_FILESORT_START_ENABLED() (0) +#define MYSQL_FILESORT_DONE(arg0, arg1) +#define MYSQL_FILESORT_DONE_ENABLED() (0) +#define MYSQL_SELECT_START(arg0) +#define MYSQL_SELECT_START_ENABLED() (0) +#define MYSQL_SELECT_DONE(arg0, arg1) +#define MYSQL_SELECT_DONE_ENABLED() (0) +#define MYSQL_INSERT_START(arg0) +#define MYSQL_INSERT_START_ENABLED() (0) +#define MYSQL_INSERT_DONE(arg0, arg1) +#define MYSQL_INSERT_DONE_ENABLED() (0) +#define MYSQL_INSERT_SELECT_START(arg0) +#define MYSQL_INSERT_SELECT_START_ENABLED() (0) +#define MYSQL_INSERT_SELECT_DONE(arg0, arg1) +#define MYSQL_INSERT_SELECT_DONE_ENABLED() (0) +#define MYSQL_UPDATE_START(arg0) +#define MYSQL_UPDATE_START_ENABLED() (0) +#define MYSQL_UPDATE_DONE(arg0, arg1, arg2) +#define MYSQL_UPDATE_DONE_ENABLED() (0) +#define MYSQL_MULTI_UPDATE_START(arg0) +#define MYSQL_MULTI_UPDATE_START_ENABLED() (0) +#define MYSQL_MULTI_UPDATE_DONE(arg0, arg1, arg2) +#define MYSQL_MULTI_UPDATE_DONE_ENABLED() (0) +#define MYSQL_DELETE_START(arg0) +#define MYSQL_DELETE_START_ENABLED() (0) +#define MYSQL_DELETE_DONE(arg0, arg1) +#define MYSQL_DELETE_DONE_ENABLED() (0) +#define MYSQL_MULTI_DELETE_START(arg0) +#define MYSQL_MULTI_DELETE_START_ENABLED() (0) +#define MYSQL_MULTI_DELETE_DONE(arg0, arg1) +#define MYSQL_MULTI_DELETE_DONE_ENABLED() (0) +#define MYSQL_NET_READ_START() +#define MYSQL_NET_READ_START_ENABLED() (0) +#define MYSQL_NET_READ_DONE(arg0, arg1) +#define MYSQL_NET_READ_DONE_ENABLED() (0) +#define MYSQL_NET_WRITE_START(arg0) +#define MYSQL_NET_WRITE_START_ENABLED() (0) +#define MYSQL_NET_WRITE_DONE(arg0) +#define MYSQL_NET_WRITE_DONE_ENABLED() (0) +#define MYSQL_KEYCACHE_READ_START(arg0, arg1, arg2, arg3) +#define MYSQL_KEYCACHE_READ_START_ENABLED() (0) +#define MYSQL_KEYCACHE_READ_BLOCK(arg0) +#define MYSQL_KEYCACHE_READ_BLOCK_ENABLED() (0) +#define MYSQL_KEYCACHE_READ_HIT() +#define MYSQL_KEYCACHE_READ_HIT_ENABLED() (0) +#define MYSQL_KEYCACHE_READ_MISS() +#define MYSQL_KEYCACHE_READ_MISS_ENABLED() (0) +#define MYSQL_KEYCACHE_READ_DONE(arg0, arg1) +#define MYSQL_KEYCACHE_READ_DONE_ENABLED() (0) +#define MYSQL_KEYCACHE_WRITE_START(arg0, arg1, arg2, arg3) +#define MYSQL_KEYCACHE_WRITE_START_ENABLED() (0) +#define MYSQL_KEYCACHE_WRITE_BLOCK(arg0) +#define MYSQL_KEYCACHE_WRITE_BLOCK_ENABLED() (0) +#define MYSQL_KEYCACHE_WRITE_DONE(arg0, arg1) +#define MYSQL_KEYCACHE_WRITE_DONE_ENABLED() (0) + +#ifdef __cplusplus +} +#endif + +#endif /* _PROBES_MYSQL_D */ diff --git a/mysql/queues.h b/mysql/queues.h new file mode 100644 index 0000000..4ce6598 --- /dev/null +++ b/mysql/queues.h @@ -0,0 +1,93 @@ +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef QUEUES_INCLUDED +#define QUEUES_INCLUDED + +/* + Code for handling of priority Queues. + Implemention of queues from "Algoritms in C" by Robert Sedgewick. + By monty. +*/ + +#include "my_global.h" /* uchar */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_queue { + uchar **root; + void *first_cmp_arg; + uint elements; + uint max_elements; + uint offset_to_key; /* compare is done on element+offset */ + int max_at_top; /* Normally 1, set to -1 if queue_top gives max */ + int (*compare)(void *, uchar *,uchar *); + uint auto_extent; +} QUEUE; + +void _downheap(QUEUE *queue,uint idx); +void queue_fix(QUEUE *queue); + +#define queue_top(queue) ((queue)->root[1]) +#define queue_element(queue,index) ((queue)->root[index+1]) +#define queue_end(queue) ((queue)->root[(queue)->elements]) + +static inline void queue_replaced(QUEUE *queue) +{ + _downheap(queue, 1); +} + +static inline void queue_set_max_at_top(QUEUE *queue, int set_arg) +{ + queue->max_at_top= set_arg ? -1 : 1; +} + +typedef int (*queue_compare)(void *,uchar *, uchar *); + +int init_queue(QUEUE *queue,uint max_elements,uint offset_to_key, + pbool max_at_top, queue_compare compare, + void *first_cmp_arg); +int init_queue_ex(QUEUE *queue,uint max_elements,uint offset_to_key, + pbool max_at_top, queue_compare compare, + void *first_cmp_arg, uint auto_extent); +int reinit_queue(QUEUE *queue,uint max_elements,uint offset_to_key, + pbool max_at_top, queue_compare compare, + void *first_cmp_arg); +void delete_queue(QUEUE *queue); +void queue_insert(QUEUE *queue,uchar *element); +uchar *queue_remove(QUEUE *queue,uint idx); + +static inline void queue_remove_all(QUEUE *queue) +{ + queue->elements= 0; +} + +static inline my_bool queue_is_full(QUEUE *queue) +{ + return queue->elements == queue->max_elements; +} + +static inline my_bool is_queue_inited(QUEUE *queue) +{ + return queue->root != NULL; +} + +#ifdef __cplusplus +} +#endif + +#endif // QUEUES_INCLUDED diff --git a/mysql/sha1.h b/mysql/sha1.h new file mode 100644 index 0000000..353fe99 --- /dev/null +++ b/mysql/sha1.h @@ -0,0 +1,38 @@ +#ifndef SHA1_INCLUDED +#define SHA1_INCLUDED + +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#define SHA1_HASH_SIZE 20 /* Hash size in bytes */ + +C_MODE_START + +void compute_sha1_hash(uint8 *digest, const char *buf, size_t len) +#if defined(HAVE_VISIBILITY_HIDDEN) + MY_ATTRIBUTE((visibility("hidden"))) +#endif +; +void compute_sha1_hash_multi(uint8 *digest, const char *buf1, int len1, + const char *buf2, int len2) +#if defined(HAVE_VISIBILITY_HIDDEN) + MY_ATTRIBUTE((visibility("hidden"))) +#endif +; + +C_MODE_END + +#endif /* SHA1_INCLUDED */ diff --git a/mysql/sha2.h b/mysql/sha2.h new file mode 100644 index 0000000..031d02f --- /dev/null +++ b/mysql/sha2.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef included_sha2_h +#define included_sha2_h + +#include + +#if defined(HAVE_YASSL) || defined(HAVE_OPENSSL) + +#include + +# ifndef HAVE_YASSL +# include + +# else + +#include "../extra/yassl/taocrypt/include/sha.hpp" + +# ifdef __cplusplus +extern "C" { +# endif + +#ifndef SHA512_DIGEST_LENGTH +#define SHA512_DIGEST_LENGTH TaoCrypt::SHA512::DIGEST_SIZE +#endif + +#ifndef SHA384_DIGEST_LENGTH +#define SHA384_DIGEST_LENGTH TaoCrypt::SHA384::DIGEST_SIZE +#endif + +#ifndef SHA256_DIGEST_LENGTH +#define SHA256_DIGEST_LENGTH TaoCrypt::SHA256::DIGEST_SIZE +#endif + +#ifndef SHA224_DIGEST_LENGTH +#define SHA224_DIGEST_LENGTH TaoCrypt::SHA224::DIGEST_SIZE +#endif + +#define GEN_YASSL_SHA2_BRIDGE(size) \ +unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \ + char unsigned *output_ptr); + +GEN_YASSL_SHA2_BRIDGE(512); +GEN_YASSL_SHA2_BRIDGE(384); +GEN_YASSL_SHA2_BRIDGE(256); +GEN_YASSL_SHA2_BRIDGE(224); + +#undef GEN_YASSL_SHA2_BRIDGE + +# ifdef __cplusplus +} +# endif + +# endif /* HAVE_YASSL */ + +#endif /* HAVE_OPENSSL || HAVE_YASSL */ +#endif /* included_sha2_h */ diff --git a/mysql/sql-common/client.c b/mysql/sql-common/client.c new file mode 100644 index 0000000..11c23b6 --- /dev/null +++ b/mysql/sql-common/client.c @@ -0,0 +1,6241 @@ +/* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + This file is included by both libmysql.c (the MySQL client C API) + and the mysqld server to connect to another MYSQL server. + + The differences for the two cases are: + + - Things that only works for the client: + - Trying to automaticly determinate user name if not supplied to + mysql_real_connect() + - Support for reading local file with LOAD DATA LOCAL + - SHARED memory handling + - Prepared statements + - Things that only works for the server + + In all other cases, the code should be idential for the client and + server. +*/ + +#include +#include "mysql.h" +#include "hash.h" +#include "mysql/client_authentication.h" + +#ifdef EMBEDDED_LIBRARY + +#undef MYSQL_SERVER + +#ifndef MYSQL_CLIENT +#define MYSQL_CLIENT +#endif + +#define CLI_MYSQL_REAL_CONNECT STDCALL cli_mysql_real_connect + +#undef net_flush +my_bool net_flush(NET *net); + +#else /*EMBEDDED_LIBRARY*/ +#define CLI_MYSQL_REAL_CONNECT STDCALL mysql_real_connect +#endif /*EMBEDDED_LIBRARY*/ + +#include +#include "my_default.h" +#include +#include +#include +#include "mysql_version.h" +#include "mysqld_error.h" +#include "errmsg.h" +#include + +#if !defined(_WIN32) +#include /* because of signal() */ +#endif /* !defined(_WIN32) */ + +#include +#include +#include + +#ifdef HAVE_PWD_H +#include +#endif + +#ifdef HAVE_SYS_SELECT_H +# include +#endif + +#ifdef HAVE_SYS_UN_H +# include +#endif + +#ifndef _WIN32 +#include +#define SOCKET_ERROR -1 +#endif + +#include "client_settings.h" +#include +#include +#include "../libmysql/mysql_trace.h" /* MYSQL_TRACE() instrumentation */ + +#define STATE_DATA(M) \ + (NULL != (M) ? &(MYSQL_EXTENSION_PTR(M)->state_change) : NULL) + +#define ADD_INFO(M, element, type) \ +{ \ + M= STATE_DATA(mysql); \ + M->info_list[type].head_node= list_add(M->info_list[type].head_node, \ + element); \ +} + +#define native_password_plugin_name "mysql_native_password" + +PSI_memory_key key_memory_mysql_options; +PSI_memory_key key_memory_MYSQL_DATA; +PSI_memory_key key_memory_MYSQL; +PSI_memory_key key_memory_MYSQL_RES; +PSI_memory_key key_memory_MYSQL_ROW; +PSI_memory_key key_memory_MYSQL_state_change_info; +PSI_memory_key key_memory_MYSQL_HANDSHAKE; + +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) +PSI_memory_key key_memory_create_shared_memory; +#endif /* _WIN32 && ! EMBEDDED_LIBRARY */ + +#ifdef HAVE_PSI_INTERFACE +/* + This code is common to the client and server, + and also used in the server when server A connects to server B, + for example with replication. + Therefore, the code is also instrumented. +*/ + +static PSI_memory_info all_client_memory[]= +{ +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + { &key_memory_create_shared_memory, "create_shared_memory", 0}, +#endif /* _WIN32 && ! EMBEDDED_LIBRARY */ + + { &key_memory_mysql_options, "mysql_options", 0}, + { &key_memory_MYSQL_DATA, "MYSQL_DATA", 0}, + { &key_memory_MYSQL, "MYSQL", 0}, + { &key_memory_MYSQL_RES, "MYSQL_RES", 0}, + { &key_memory_MYSQL_ROW, "MYSQL_ROW", 0}, + { &key_memory_MYSQL_state_change_info, "MYSQL_STATE_CHANGE_INFO", 0}, + { &key_memory_MYSQL_HANDSHAKE, "MYSQL_HANDSHAKE", 0} +}; + +void init_client_psi_keys(void) +{ + const char *category= "client"; + int count; + + count= array_elements(all_client_memory); + mysql_memory_register(category, all_client_memory, count); +} + +#endif /* HAVE_PSI_INTERFACE */ + +uint mysql_port=0; +char *mysql_unix_port= 0; +const char *unknown_sqlstate= "HY000"; +const char *not_error_sqlstate= "00000"; +const char *cant_connect_sqlstate= "08001"; +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) +char *shared_memory_base_name= 0; +const char *def_shared_memory_base_name= default_shared_memory_base_name; +#endif + +ulong g_net_buffer_length= 8192; +ulong g_max_allowed_packet= 1024L*1024L*1024L; + +void mysql_close_free_options(MYSQL *mysql); +void mysql_close_free(MYSQL *mysql); +static void mysql_prune_stmt_list(MYSQL *mysql); + +CHARSET_INFO *default_client_charset_info = &my_charset_latin1; + +/* Server error code and message */ +unsigned int mysql_server_last_errno; +char mysql_server_last_error[MYSQL_ERRMSG_SIZE]; +/* forward declaration */ +static int read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths); +/** + Convert the connect timeout option to a timeout value for VIO + functions (vio_socket_connect() and vio_io_wait()). + + @param mysql Connection handle (client side). + + @return The timeout value in milliseconds, or -1 if no timeout. +*/ + +static int get_vio_connect_timeout(MYSQL *mysql) +{ + int timeout_ms; + uint timeout_sec; + + /* + A timeout of 0 means no timeout. Also, the connect_timeout + option value is in seconds, while VIO timeouts are measured + in milliseconds. Hence, check for a possible overflow. In + case of overflow, set to no timeout. + */ + timeout_sec= mysql->options.connect_timeout; + + if (!timeout_sec || (timeout_sec > INT_MAX/1000)) + timeout_ms= -1; + else + timeout_ms= (int) (timeout_sec * 1000); + + return timeout_ms; +} + + +#ifdef _WIN32 + +/** + Convert the connect timeout option to a timeout value for WIN32 + synchronization functions. + + @remark Specific for WIN32 connection methods shared memory and + named pipe. + + @param mysql Connection handle (client side). + + @return The timeout value in milliseconds, or INFINITE if no timeout. +*/ + +static DWORD get_win32_connect_timeout(MYSQL *mysql) +{ + DWORD timeout_ms; + uint timeout_sec; + + /* + A timeout of 0 means no timeout. Also, the connect_timeout + option value is in seconds, while WIN32 timeouts are in + milliseconds. Hence, check for a possible overflow. In case + of overflow, set to no timeout. + */ + timeout_sec= mysql->options.connect_timeout; + + if (!timeout_sec || (timeout_sec > INT_MAX/1000)) + timeout_ms= INFINITE; + else + timeout_ms= (DWORD) (timeout_sec * 1000); + + return timeout_ms; +} + +#endif + + +/** + Set the internal error message to mysql handler + + @param mysql connection handle (client side) + @param errcode CR_ error code, passed to ER macro to get + error text + @parma sqlstate SQL standard sqlstate +*/ + +void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate) +{ + NET *net; + DBUG_ENTER("set_mysql_error"); + DBUG_PRINT("enter", ("error :%d '%s'", errcode, ER(errcode))); + DBUG_ASSERT(mysql != 0); + + if (mysql) + { + net= &mysql->net; + net->last_errno= errcode; + my_stpcpy(net->last_error, ER(errcode)); + my_stpcpy(net->sqlstate, sqlstate); + MYSQL_TRACE(ERROR, mysql, ()); + } + else + { + mysql_server_last_errno= errcode; + my_stpcpy(mysql_server_last_error, ER(errcode)); + } + DBUG_VOID_RETURN; +} + +/** + Is this NET instance initialized? + @c my_net_init() and net_end() + */ + +my_bool my_net_is_inited(NET *net) +{ + return net->buff != NULL; +} + +/** + Clear possible error state of struct NET + + @param net clear the state of the argument +*/ + +void net_clear_error(NET *net) +{ + net->last_errno= 0; + net->last_error[0]= '\0'; + my_stpcpy(net->sqlstate, not_error_sqlstate); +} + +/** + Set an error message on the client. + + @param mysql connection handle + @param errcode CR_* errcode, for client errors + @param sqlstate SQL standard sql state, unknown_sqlstate for the + majority of client errors. + @param format error message template, in sprintf format + @param ... variable number of arguments +*/ + +void set_mysql_extended_error(MYSQL *mysql, int errcode, + const char *sqlstate, + const char *format, ...) +{ + NET *net; + va_list args; + DBUG_ENTER("set_mysql_extended_error"); + DBUG_PRINT("enter", ("error :%d '%s'", errcode, format)); + DBUG_ASSERT(mysql != 0); + + net= &mysql->net; + net->last_errno= errcode; + va_start(args, format); + my_vsnprintf(net->last_error, sizeof(net->last_error)-1, + format, args); + va_end(args); + my_stpcpy(net->sqlstate, sqlstate); + + MYSQL_TRACE(ERROR, mysql, ()); + + DBUG_VOID_RETURN; +} + + + +/* + Create a named pipe connection +*/ + +#ifdef _WIN32 + +static HANDLE create_named_pipe(MYSQL *mysql, DWORD connect_timeout, + const char **arg_host, + const char **arg_unix_socket) +{ + HANDLE hPipe=INVALID_HANDLE_VALUE; + char pipe_name[1024]; + DWORD dwMode; + int i; + my_bool testing_named_pipes=0; + const char *host= *arg_host, *unix_socket= *arg_unix_socket; + + if ( ! unix_socket || (unix_socket)[0] == 0x00) + unix_socket = mysql_unix_port; + if (!host || !strcmp(host,LOCAL_HOST)) + host=LOCAL_HOST_NAMEDPIPE; + + + pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */ + strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\", host, "\\pipe\\", + unix_socket, NullS); + DBUG_PRINT("info",("Server name: '%s'. Named Pipe: %s", host, unix_socket)); + + for (i=0 ; i < 100 ; i++) /* Don't retry forever */ + { + if ((hPipe = CreateFile(pipe_name, + GENERIC_READ | GENERIC_WRITE, + 0, + NULL, + OPEN_EXISTING, + FILE_FLAG_OVERLAPPED, + NULL )) != INVALID_HANDLE_VALUE) + break; + if (GetLastError() != ERROR_PIPE_BUSY) + { + set_mysql_extended_error(mysql, CR_NAMEDPIPEOPEN_ERROR, + unknown_sqlstate, ER(CR_NAMEDPIPEOPEN_ERROR), + host, unix_socket, (ulong) GetLastError()); + return INVALID_HANDLE_VALUE; + } + /* wait for for an other instance */ + if (!WaitNamedPipe(pipe_name, connect_timeout)) + { + set_mysql_extended_error(mysql, CR_NAMEDPIPEWAIT_ERROR, unknown_sqlstate, + ER(CR_NAMEDPIPEWAIT_ERROR), + host, unix_socket, (ulong) GetLastError()); + return INVALID_HANDLE_VALUE; + } + } + if (hPipe == INVALID_HANDLE_VALUE) + { + set_mysql_extended_error(mysql, CR_NAMEDPIPEOPEN_ERROR, unknown_sqlstate, + ER(CR_NAMEDPIPEOPEN_ERROR), host, unix_socket, + (ulong) GetLastError()); + return INVALID_HANDLE_VALUE; + } + dwMode = PIPE_READMODE_BYTE | PIPE_WAIT; + if ( !SetNamedPipeHandleState(hPipe, &dwMode, NULL, NULL) ) + { + CloseHandle( hPipe ); + set_mysql_extended_error(mysql, CR_NAMEDPIPESETSTATE_ERROR, + unknown_sqlstate, ER(CR_NAMEDPIPESETSTATE_ERROR), + host, unix_socket, (ulong) GetLastError()); + return INVALID_HANDLE_VALUE; + } + *arg_host=host ; *arg_unix_socket=unix_socket; /* connect arg */ + return (hPipe); +} +#endif + + +/* + Create new shared memory connection, return handler of connection + + @param mysql Pointer of mysql structure + @param net Pointer of net structure + @param connect_timeout Timeout of connection (in milliseconds) + + @return HANDLE to the shared memory area. +*/ + +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) +static HANDLE create_shared_memory(MYSQL *mysql, NET *net, + DWORD connect_timeout) +{ + ulong smem_buffer_length = shared_memory_buffer_length + 4; + /* + event_connect_request is event object for start connection actions + event_connect_answer is event object for confirm, that server put data + handle_connect_file_map is file-mapping object, use for create shared + memory + handle_connect_map is pointer on shared memory + handle_map is pointer on shared memory for client + event_server_wrote, + event_server_read, + event_client_wrote, + event_client_read are events for transfer data between server and client + handle_file_map is file-mapping object, use for create shared memory + */ + HANDLE event_connect_request = NULL; + HANDLE event_connect_answer = NULL; + HANDLE handle_connect_file_map = NULL; + char *handle_connect_map = NULL; + + char *handle_map = NULL; + HANDLE event_server_wrote = NULL; + HANDLE event_server_read = NULL; + HANDLE event_client_wrote = NULL; + HANDLE event_client_read = NULL; + HANDLE event_conn_closed = NULL; + HANDLE handle_file_map = NULL; + HANDLE connect_named_mutex = NULL; + ulong connect_number; + char connect_number_char[22], *p; + char *tmp= NULL; + char *suffix_pos; + DWORD error_allow = 0; + DWORD error_code = 0; + DWORD event_access_rights= SYNCHRONIZE | EVENT_MODIFY_STATE; + char *shared_memory_base_name = mysql->options.shared_memory_base_name; + static const char *name_prefixes[] = {"","Global\\"}; + const char *prefix; + int i; + + /* + If this is NULL, somebody freed the MYSQL* options. mysql_close() + is a good candidate. We don't just silently (re)set it to + def_shared_memory_base_name as that would create really confusing/buggy + behavior if the user passed in a different name on the command-line or + in a my.cnf. + */ + DBUG_ASSERT(shared_memory_base_name != NULL); + + /* + get enough space base-name + '_' + longest suffix we might ever send + */ + if (!(tmp= (char *)my_malloc(key_memory_create_shared_memory, + strlen(shared_memory_base_name) + 32L, MYF(MY_FAE)))) + goto err; + + /* + The name of event and file-mapping events create agree next rule: + shared_memory_base_name+unique_part + Where: + shared_memory_base_name is unique value for each server + unique_part is uniquel value for each object (events and file-mapping) + */ + for (i = 0; i< array_elements(name_prefixes); i++) + { + prefix= name_prefixes[i]; + suffix_pos = strxmov(tmp, prefix , shared_memory_base_name, "_", NullS); + my_stpcpy(suffix_pos, "CONNECT_REQUEST"); + event_connect_request= OpenEvent(event_access_rights, FALSE, tmp); + if (event_connect_request) + { + break; + } + } + if (!event_connect_request) + { + error_allow = CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR; + goto err; + } + my_stpcpy(suffix_pos, "CONNECT_ANSWER"); + if (!(event_connect_answer= OpenEvent(event_access_rights,FALSE,tmp))) + { + error_allow = CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR; + goto err; + } + my_stpcpy(suffix_pos, "CONNECT_DATA"); + if (!(handle_connect_file_map= OpenFileMapping(FILE_MAP_WRITE,FALSE,tmp))) + { + error_allow = CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR; + goto err; + } + if (!(handle_connect_map= MapViewOfFile(handle_connect_file_map, + FILE_MAP_WRITE,0,0,sizeof(DWORD)))) + { + error_allow = CR_SHARED_MEMORY_CONNECT_MAP_ERROR; + goto err; + } + + my_stpcpy(suffix_pos, "CONNECT_NAMED_MUTEX"); + connect_named_mutex= CreateMutex(NULL, TRUE, tmp); + if (connect_named_mutex == NULL) + { + error_allow= CR_SHARED_MEMORY_CONNECT_SET_ERROR; + goto err; + } + + /* Send to server request of connection */ + if (!SetEvent(event_connect_request)) + { + error_allow = CR_SHARED_MEMORY_CONNECT_SET_ERROR; + goto err; + } + + /* Wait of answer from server */ + if (WaitForSingleObject(event_connect_answer, connect_timeout) != + WAIT_OBJECT_0) + { + error_allow = CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR; + goto err; + } + + ReleaseMutex(connect_named_mutex); + CloseHandle(connect_named_mutex); + connect_named_mutex = NULL; + + /* Get number of connection */ + connect_number = uint4korr(handle_connect_map);/*WAX2*/ + p= int10_to_str(connect_number, connect_number_char, 10); + + /* + The name of event and file-mapping events create agree next rule: + shared_memory_base_name+unique_part+number_of_connection + + Where: + shared_memory_base_name is uniquel value for each server + unique_part is uniquel value for each object (events and file-mapping) + number_of_connection is number of connection between server and client + */ + suffix_pos = strxmov(tmp, prefix , shared_memory_base_name, "_", connect_number_char, + "_", NullS); + my_stpcpy(suffix_pos, "DATA"); + if ((handle_file_map = OpenFileMapping(FILE_MAP_WRITE,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_FILE_MAP_ERROR; + goto err2; + } + if ((handle_map = MapViewOfFile(handle_file_map,FILE_MAP_WRITE,0,0, + smem_buffer_length)) == NULL) + { + error_allow = CR_SHARED_MEMORY_MAP_ERROR; + goto err2; + } + + my_stpcpy(suffix_pos, "SERVER_WROTE"); + if ((event_server_wrote = OpenEvent(event_access_rights,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_EVENT_ERROR; + goto err2; + } + + my_stpcpy(suffix_pos, "SERVER_READ"); + if ((event_server_read = OpenEvent(event_access_rights,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_EVENT_ERROR; + goto err2; + } + + my_stpcpy(suffix_pos, "CLIENT_WROTE"); + if ((event_client_wrote = OpenEvent(event_access_rights,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_EVENT_ERROR; + goto err2; + } + + my_stpcpy(suffix_pos, "CLIENT_READ"); + if ((event_client_read = OpenEvent(event_access_rights,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_EVENT_ERROR; + goto err2; + } + + my_stpcpy(suffix_pos, "CONNECTION_CLOSED"); + if ((event_conn_closed = OpenEvent(event_access_rights,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_EVENT_ERROR; + goto err2; + } + /* + Set event that server should send data + */ + SetEvent(event_server_read); + +err2: + if (error_allow == 0) + { + net->vio= vio_new_win32shared_memory(handle_file_map,handle_map, + event_server_wrote, + event_server_read,event_client_wrote, + event_client_read,event_conn_closed); + } + else + { + error_code = GetLastError(); + if (event_server_read) + CloseHandle(event_server_read); + if (event_server_wrote) + CloseHandle(event_server_wrote); + if (event_client_read) + CloseHandle(event_client_read); + if (event_client_wrote) + CloseHandle(event_client_wrote); + if (event_conn_closed) + CloseHandle(event_conn_closed); + if (handle_map) + UnmapViewOfFile(handle_map); + if (handle_file_map) + CloseHandle(handle_file_map); + } +err: + my_free(tmp); + if (error_allow) + error_code = GetLastError(); + if (event_connect_request) + CloseHandle(event_connect_request); + if (event_connect_answer) + CloseHandle(event_connect_answer); + if (handle_connect_map) + UnmapViewOfFile(handle_connect_map); + if (handle_connect_file_map) + CloseHandle(handle_connect_file_map); + if (error_allow) + { + if (connect_named_mutex) + { + ReleaseMutex(connect_named_mutex); + CloseHandle(connect_named_mutex); + } + + if (error_allow == CR_SHARED_MEMORY_EVENT_ERROR) + set_mysql_extended_error(mysql, error_allow, unknown_sqlstate, + ER(error_allow), suffix_pos, error_code); + else + set_mysql_extended_error(mysql, error_allow, unknown_sqlstate, + ER(error_allow), error_code); + return(INVALID_HANDLE_VALUE); + } + return(handle_map); +} +#endif + +/* + Free all memory acquired to store state change information. +*/ +void free_state_change_info(MYSQL_EXTENSION *ext) +{ + STATE_INFO *info; + int i; + + if (ext) + info= &ext->state_change; + else + return; + + for (i= SESSION_TRACK_SYSTEM_VARIABLES; i <= SESSION_TRACK_END; i++) + { + if (list_length(info->info_list[i].head_node) != 0) + { + /* + Since nodes were multi-alloced, we don't need to free the data + separately. But the str member in data needs to be freed. + */ + LIST *tmp_list= info->info_list[i].head_node; + while (tmp_list) + { + LEX_STRING *tmp= (LEX_STRING *)(tmp_list)->data; + if (tmp->str) + my_free(tmp->str); + tmp_list= tmp_list->next; + } + list_free(info->info_list[i].head_node, (uint) 0); + } + } + memset(info, 0, sizeof(STATE_INFO)); +} + + +/** + Read Ok packet along with the server state change information. +*/ +void read_ok_ex(MYSQL *mysql, ulong length) +{ + size_t total_len, len; + uchar *pos, *saved_pos; + my_ulonglong affected_rows, insert_id; + char *db; + + struct charset_info_st *saved_cs; + char charset_name[64]; + my_bool is_charset; + + STATE_INFO *info= NULL; + enum enum_session_state_type type; + LIST *element= NULL; + LEX_STRING *data=NULL; + + pos= mysql->net.read_pos + 1; + + affected_rows = net_field_length_ll(&pos); /* affected rows */ + insert_id = net_field_length_ll(&pos); /* insert id */ + + /* + The following check ensures that we skip the assignment for the + above read fields (i.e. affected_rows and insert_id) wherein the + EOF packets are deprecated and the server sends OK packet instead + with a packet header of 0xFE (254) to identify it as an EOF packet. + We ignore this assignment as the valid contents of EOF packet include + packet marker, server status and warning count only. However, we would + assign these values to the connection handle if it was an OK packet + with a packet header of 0x00. + */ + if (!((mysql->server_capabilities & CLIENT_DEPRECATE_EOF) && + mysql->net.read_pos[0] == 254)) + { + mysql->affected_rows= affected_rows; + mysql->insert_id= insert_id; + + DBUG_PRINT("info",("affected_rows: %lu insert_id: %lu", + (ulong) mysql->affected_rows, + (ulong) mysql->insert_id)); + } + /* server status */ + mysql->server_status= uint2korr(pos); + pos += 2; + + if (protocol_41(mysql)) + { + mysql->warning_count=uint2korr(pos); + pos += 2; + } else + mysql->warning_count= 0; /* MySQL 4.0 protocol */ + + DBUG_PRINT("info",("status: %u warning_count: %u", + mysql->server_status, mysql->warning_count)); + if (mysql->server_capabilities & CLIENT_SESSION_TRACK) + { + free_state_change_info(mysql->extension); + + if (pos < mysql->net.read_pos + length) + { + /* get the info field */ + size_t length_msg_member= (size_t)net_field_length(&pos); + mysql->info= (length_msg_member ? (char *)pos : NULL); + pos += (length_msg_member); + + /* read session state changes info */ + if (mysql->server_status & SERVER_SESSION_STATE_CHANGED) + { + saved_pos= pos; + total_len= (size_t)net_field_length(&pos); + /* ensure that mysql->info is zero-terminated */ + if (mysql->info) + *saved_pos= 0; + + while (total_len > 0) + { + saved_pos= pos; + type= (enum enum_session_state_type) net_field_length(&pos); + + switch (type) + { + case SESSION_TRACK_SYSTEM_VARIABLES: + /* Move past the total length of the changed entity. */ + (void) net_field_length(&pos); + + /* Name of the system variable. */ + len= (size_t) net_field_length(&pos); + + if (!my_multi_malloc(key_memory_MYSQL_state_change_info, + MYF(0), + &element, sizeof(LIST), + &data, sizeof(LEX_STRING), + NullS)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + if(!(data->str= (char *)my_malloc(PSI_NOT_INSTRUMENTED, len, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + memcpy(data->str, (char *) pos, len); + data->length= len; + pos += len; + + element->data= data; + ADD_INFO(info, element, SESSION_TRACK_SYSTEM_VARIABLES); + + /* + Check if the changed variable was charset. In that case we need to + update mysql->charset. + */ + if (!strncmp(data->str, "character_set_client", data->length)) + is_charset= 1; + else + is_charset= 0; + + if (!my_multi_malloc(key_memory_MYSQL_state_change_info, + MYF(0), + &element, sizeof(LIST), + &data, sizeof(LEX_STRING), + NullS)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + /* Value of the system variable. */ + len= (size_t) net_field_length(&pos); + if(!(data->str= (char *)my_malloc(PSI_NOT_INSTRUMENTED, len, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + memcpy(data->str, (char *) pos, len); + data->length= len; + pos += len; + + element->data= data; + ADD_INFO(info, element, SESSION_TRACK_SYSTEM_VARIABLES); + + if (is_charset == 1) + { + saved_cs= mysql->charset; + + memcpy(charset_name, data->str, data->length); + charset_name[data->length]= 0; + + if (!(mysql->charset= get_charset_by_csname(charset_name, + MY_CS_PRIMARY, + MYF(MY_WME)))) + { + /* Ideally, the control should never reach her. */ + DBUG_ASSERT(0); + mysql->charset= saved_cs; + } + } + break; + case SESSION_TRACK_TRANSACTION_STATE: + case SESSION_TRACK_TRANSACTION_CHARACTERISTICS: + case SESSION_TRACK_SCHEMA: + + if (!my_multi_malloc(key_memory_MYSQL_state_change_info, + MYF(0), + &element, sizeof(LIST), + &data, sizeof(LEX_STRING), + NullS)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + /* Move past the total length of the changed entity. */ + (void) net_field_length(&pos); + + len= (size_t) net_field_length(&pos); + if(!(data->str= (char *)my_malloc(PSI_NOT_INSTRUMENTED, len, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + memcpy(data->str, (char *) pos, len); + data->length= len; + pos += len; + + element->data= data; + ADD_INFO(info, element, type); + + if (type == SESSION_TRACK_SCHEMA) + { + if (!(db= (char *) my_malloc(key_memory_MYSQL_state_change_info, + data->length + 1, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + if (mysql->db) + my_free(mysql->db); + + memcpy(db, data->str, data->length); + db[data->length]= '\0'; + mysql->db= db; + } + + break; + case SESSION_TRACK_GTIDS: + if (!my_multi_malloc(key_memory_MYSQL_state_change_info, + MYF(0), + &element, sizeof(LIST), + &data, sizeof(LEX_STRING), + NullS)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + /* Move past the total length of the changed entity. */ + (void) net_field_length(&pos); + + /* read (and ignore for now) the GTIDS encoding specification code */ + (void) net_field_length(&pos); + + /* + For now we ignore the encoding specification, since only one + is supported. In the future the decoding of what comes next + depends on the specification code. + */ + + /* read the length of the encoded string. */ + len= (size_t) net_field_length(&pos); + if(!(data->str= (char *)my_malloc(PSI_NOT_INSTRUMENTED, len, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + memcpy(data->str, (char *) pos, len); + data->length= len; + pos += len; + + element->data= data; + ADD_INFO(info, element, SESSION_TRACK_GTIDS); + break; + case SESSION_TRACK_STATE_CHANGE: + if (!my_multi_malloc(key_memory_MYSQL_state_change_info, + MYF(0), + &element, sizeof(LIST), + &data, sizeof(LEX_STRING), + NullS)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + + /* Get the length of the boolean tracker */ + len= (size_t) net_field_length(&pos); + /* length for boolean tracker is always 1 */ + DBUG_ASSERT(len == 1); + if(!(data->str= (char *)my_malloc(PSI_NOT_INSTRUMENTED, len, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + return; + } + memcpy(data->str, (char *) pos, len); + data->length= len; + pos += len; + + element->data= data; + ADD_INFO(info, element, SESSION_TRACK_STATE_CHANGE); + + break; + default: + DBUG_ASSERT(type <= SESSION_TRACK_END); + /* + Unknown/unsupported type received, get the total length and move + past it. + */ + len= (size_t) net_field_length(&pos); + pos += len; + break; + } + total_len -= (pos - saved_pos); + } + if (info) + { + for (type= SESSION_TRACK_BEGIN; type < SESSION_TRACK_END; type++) + { + if (info->info_list[type].head_node) + { + info->info_list[type].current_node= + info->info_list[type].head_node= + list_reverse(info->info_list[type].head_node); + } + } + } + } + } + } + else if (pos < mysql->net.read_pos + length && net_field_length(&pos)) + mysql->info=(char*) pos; + else + mysql->info=NULL; + return; +} + + +/** + Read a packet from server. Give error message if socket was down + or packet is an error message + + @param[IN] mysql connection handle + @param[IN] parse_ok if set to TRUE then parse OK packet + if it is received + @param[OUT] is_data_packet + if set to TRUE then packet received is + a "data packet", that is not OK or ERR + packet or EOF in case of old servers + + @retval The length of the packet that was read or packet_error in + case of error. In case of error its description is stored + in mysql handle. +*/ + +ulong +cli_safe_read_with_ok(MYSQL *mysql, my_bool parse_ok, + my_bool *is_data_packet) +{ + NET *net= &mysql->net; + ulong len=0; + + MYSQL_TRACE(READ_PACKET, mysql, ()); + + if (is_data_packet) + *is_data_packet= FALSE; + + if (net->vio != 0) + len=my_net_read(net); + + if (len == packet_error || len == 0) + { + DBUG_PRINT("error",("Wrong connection or packet. fd: %s len: %lu", + vio_description(net->vio),len)); +#ifdef MYSQL_SERVER + if (net->vio && (net->last_errno == ER_NET_READ_INTERRUPTED)) + return (packet_error); +#endif /*MYSQL_SERVER*/ + end_server(mysql); + set_mysql_error(mysql, net->last_errno == ER_NET_PACKET_TOO_LARGE ? + CR_NET_PACKET_TOO_LARGE: CR_SERVER_LOST, unknown_sqlstate); + return (packet_error); + } + + MYSQL_TRACE(PACKET_RECEIVED, mysql, (len, net->read_pos)); + + if (net->read_pos[0] == 255) + { + /* + After server reprts an error, usually it is ready to accept new commands and + we set stage to READY_FOR_COMMAND. This can be modified by the caller of + cli_safe_read(). + */ + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + + if (len > 3) + { + uchar *pos= net->read_pos+1; + net->last_errno=uint2korr(pos); + pos+=2; + len-=2; + if (protocol_41(mysql) && pos[0] == '#') + { + strmake(net->sqlstate, (char*)pos+1, SQLSTATE_LENGTH); + pos+= SQLSTATE_LENGTH+1; + } + else + { + /* + The SQL state hasn't been received -- it should be reset to HY000 + (unknown error sql state). + */ + + my_stpcpy(net->sqlstate, unknown_sqlstate); + } + + (void) strmake(net->last_error,(char*) pos, + MY_MIN((uint) len,(uint) sizeof(net->last_error)-1)); + } + else + set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); + /* + Cover a protocol design error: error packet does not + contain the server status. Therefore, the client has no way + to find out whether there are more result sets of + a multiple-result-set statement pending. Luckily, in 5.0 an + error always aborts execution of a statement, wherever it is + a multi-statement or a stored procedure, so it should be + safe to unconditionally turn off the flag here. + */ + mysql->server_status&= ~SERVER_MORE_RESULTS_EXISTS; + + DBUG_PRINT("error",("Got error: %d/%s (%s)", + net->last_errno, + net->sqlstate, + net->last_error)); + return(packet_error); + } + else + { + /* if it is OK packet irrespective of new/old server */ + if (net->read_pos[0] == 0) + { + if (parse_ok) + { + read_ok_ex(mysql, len); + return len; + } + } + /* + Now we have a data packet, unless it is OK packet starting with + 0xFE - we detect that case below. + */ + if (is_data_packet) + *is_data_packet= TRUE; + /* + For a packet starting with 0xFE detect if it is OK packet or a + huge data packet. Note that old servers do not send OK packets + starting with 0xFE. + */ + if ((mysql->server_capabilities & CLIENT_DEPRECATE_EOF) && + (net->read_pos[0] == 254)) + { + /* detect huge data packet */ + if (len > MAX_PACKET_LENGTH) + return len; + /* otherwise we have OK packet starting with 0xFE */ + if (is_data_packet) + *is_data_packet= FALSE; + /* parse it if requested */ + if (parse_ok) + read_ok_ex(mysql, len); + return len; + } + /* for old client detect EOF packet */ + if (!(mysql->server_capabilities & CLIENT_DEPRECATE_EOF) && + (net->read_pos[0] == 254) && (len < 8)) + { + if (is_data_packet) + *is_data_packet= FALSE; + } + } + return len; +} + + +/** + Read a packet from server. Give error message if connection was broken or + ERR packet was received. Detect if the packet received was an OK, ERR or + something else (a "data packet"). + + @param[IN] mysql connection handle + @param[OUT] is_data_packet + if set to TRUE then the packet received + was a "data packet". + + @retval The length of the packet that was read or packet_error in case of + error. In case of error its description is stored in mysql handle. +*/ +ulong cli_safe_read(MYSQL *mysql, my_bool *is_data_packet) +{ + return cli_safe_read_with_ok(mysql, 0, is_data_packet); +} + + +void free_rows(MYSQL_DATA *cur) +{ + if (cur) + { + free_root(&cur->alloc,MYF(0)); + my_free(cur); + } +} + +my_bool +cli_advanced_command(MYSQL *mysql, enum enum_server_command command, + const uchar *header, size_t header_length, + const uchar *arg, size_t arg_length, my_bool skip_check, + MYSQL_STMT *stmt) +{ + NET *net= &mysql->net; + my_bool result= 1; + my_bool stmt_skip= stmt ? stmt->state != MYSQL_STMT_INIT_DONE : FALSE; + DBUG_ENTER("cli_advanced_command"); + + if (mysql->net.vio == 0) + { /* Do reconnect if possible */ + if (mysql_reconnect(mysql) || stmt_skip) + DBUG_RETURN(1); + } + if (mysql->status != MYSQL_STATUS_READY || + mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + { + DBUG_PRINT("error",("state: %d", mysql->status)); + set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate); + DBUG_RETURN(1); + } + + net_clear_error(net); + mysql->info=0; + mysql->affected_rows= ~(my_ulonglong) 0; + /* + Do not check the socket/protocol buffer on COM_QUIT as the + result of a previous command might not have been read. This + can happen if a client sends a query but does not reap the + result before attempting to close the connection. + */ + net_clear(&mysql->net, (command != COM_QUIT)); + + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + MYSQL_TRACE(SEND_COMMAND, mysql, (command, header_length, arg_length, header, arg)); + +#if !defined(EMBEDDED_LIBRARY) + /* + If auto-reconnect mode is enabled check if connection is still alive before + sending new command. Otherwise, send() might not notice that connection was + closed by the server (for example, due to KILL statement), and the fact that + connection is gone will be noticed only on attempt to read command's result, + when it is too late to reconnect. Note that such scenario can still occur if + connection gets killed after this check but before command is sent to + server. But this should be rare. + */ + if ((command != COM_QUIT) && mysql->reconnect && !vio_is_connected(net->vio)) + net->error= 2; +#endif + + if (net_write_command(net,(uchar) command, header, header_length, + arg, arg_length)) + { + DBUG_PRINT("error",("Can't send command to server. Error: %d", + socket_errno)); + if (net->last_errno == ER_NET_PACKET_TOO_LARGE) + { + set_mysql_error(mysql, CR_NET_PACKET_TOO_LARGE, unknown_sqlstate); + goto end; + } + end_server(mysql); + if (mysql_reconnect(mysql) || stmt_skip) + goto end; + + MYSQL_TRACE(SEND_COMMAND, mysql, (command, header_length, arg_length, header, arg)); + if (net_write_command(net,(uchar) command, header, header_length, + arg, arg_length)) + { + set_mysql_error(mysql, CR_SERVER_GONE_ERROR, unknown_sqlstate); + goto end; + } + } + + MYSQL_TRACE(PACKET_SENT, mysql, (header_length + arg_length)); + +#if defined(CLIENT_PROTOCOL_TRACING) + switch (command) + { + case COM_STMT_PREPARE: + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_PS_DESCRIPTION); + break; + + case COM_STMT_FETCH: + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_ROW); + break; + + /* + No server reply is expected after these commands so we reamin ready + for the next command. + */ + case COM_STMT_SEND_LONG_DATA: + case COM_STMT_CLOSE: + case COM_REGISTER_SLAVE: + case COM_QUIT: + break; + + /* + These replication commands are not supported and we bail out + by pretending that connection has been closed. + */ + case COM_BINLOG_DUMP: + case COM_BINLOG_DUMP_GTID: + case COM_TABLE_DUMP: + MYSQL_TRACE(DISCONNECTED, mysql, ()); + break; + + /* + After COM_CHANGE_USER a regular authentication exchange + is performed. + */ + case COM_CHANGE_USER: + MYSQL_TRACE_STAGE(mysql, AUTHENTICATE); + break; + + /* + Server replies to COM_STATISTICS with a single packet + containing a string with statistics information. + */ + case COM_STATISTICS: + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_PACKET); + break; + + /* + For all other commands we expect server to send regular reply which + is either OK, ERR or a result-set header. + */ + default: MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); break; + } +#endif + + result=0; + if (!skip_check) + { + result= ((mysql->packet_length= cli_safe_read_with_ok(mysql, 1, NULL)) == + packet_error ? 1 : 0); + +#if defined(CLIENT_PROTOCOL_TRACING) + /* + Return to READY_FOR_COMMAND protocol stage in case server reports error + or sends OK packet. + */ + if (!result || mysql->net.read_pos[0] == 0x00) + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + } + +end: + DBUG_PRINT("exit",("result: %d", result)); + DBUG_RETURN(result); +} + +void free_old_query(MYSQL *mysql) +{ + DBUG_ENTER("free_old_query"); + if (mysql->fields) + free_root(&mysql->field_alloc,MYF(0)); + init_alloc_root(PSI_NOT_INSTRUMENTED, + &mysql->field_alloc, 8192, 0); /* Assume rowlength < 8192 */ + mysql->fields= 0; + mysql->field_count= 0; /* For API */ + mysql->warning_count= 0; + mysql->info= 0; + DBUG_VOID_RETURN; +} + + +/** + Finish reading of a partial result set from the server. + Get the EOF packet, and update mysql->status + and mysql->warning_count. + + @return TRUE if a communication or protocol error, an error + is set in this case, FALSE otherwise. +*/ + +my_bool flush_one_result(MYSQL *mysql) +{ + ulong packet_length; + my_bool is_data_packet; + + DBUG_ASSERT(mysql->status != MYSQL_STATUS_READY); + + do + { + packet_length= cli_safe_read(mysql, &is_data_packet); + /* + There is an error reading from the connection, + or (sic!) there were no error and no + data in the stream, i.e. no more data from the server. + Since we know our position in the stream (somewhere in + the middle of a result set), this latter case is an error too + -- each result set must end with a EOF packet. + cli_safe_read() has set an error for us, just return. + */ + if (packet_length == packet_error) + return TRUE; + } + while (mysql->net.read_pos[0] == 0 || is_data_packet); + + /* Analyse final OK packet (EOF packet if it is old client) */ + + if (protocol_41(mysql)) + { + uchar *pos= mysql->net.read_pos + 1; + if (mysql->server_capabilities & CLIENT_DEPRECATE_EOF && + !is_data_packet) + read_ok_ex(mysql, packet_length); + else + { + mysql->warning_count= uint2korr(pos); + pos+=2; + mysql->server_status=uint2korr(pos); + } + pos+=2; + } +#if defined(CLIENT_PROTOCOL_TRACING) + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + else + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + return FALSE; +} + + +/** + Read a packet from network. If it's an OK packet, flush it. + + @return TRUE if error, FALSE otherwise. In case of + success, is_ok_packet is set to TRUE or FALSE, + based on what we got from network. +*/ + +my_bool opt_flush_ok_packet(MYSQL *mysql, my_bool *is_ok_packet) +{ + my_bool is_data_packet; + ulong packet_length= cli_safe_read(mysql, &is_data_packet); + + if (packet_length == packet_error) + return TRUE; + + /* cli_safe_read always reads a non-empty packet. */ + DBUG_ASSERT(packet_length); + + *is_ok_packet= ((mysql->net.read_pos[0] == 0) || + ((mysql->server_capabilities & CLIENT_DEPRECATE_EOF) && + mysql->net.read_pos[0] == 254 && + packet_length < MAX_PACKET_LENGTH)); + if (*is_ok_packet) + { + read_ok_ex(mysql, packet_length); +#if defined(CLIENT_PROTOCOL_TRACING) + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + else + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + } + + return FALSE; +} + + +/* + Flush result set sent from server +*/ + +static void cli_flush_use_result(MYSQL *mysql, my_bool flush_all_results) +{ + /* Clear the current execution status */ + DBUG_ENTER("cli_flush_use_result"); + DBUG_PRINT("warning",("Not all packets read, clearing them")); + + if (flush_one_result(mysql)) + DBUG_VOID_RETURN; /* An error occurred */ + + if (! flush_all_results) + DBUG_VOID_RETURN; + + while (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + { + my_bool is_ok_packet; + if (opt_flush_ok_packet(mysql, &is_ok_packet)) + DBUG_VOID_RETURN; /* An error occurred. */ + if (is_ok_packet) + { + /* + Indeed what we got from network was an OK packet, and we + know that OK is the last one in a multi-result-set, so + just return. + */ + DBUG_VOID_RETURN; + } + + /* + It's a result set, not an OK packet. A result set contains + of two result set subsequences: field metadata, terminated + with EOF packet, and result set data, again terminated with + EOF packet. Read and flush them. + */ + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_FIELD_DEF); + if (!(mysql->server_capabilities & CLIENT_DEPRECATE_EOF)) + { + if (flush_one_result(mysql)) + DBUG_VOID_RETURN; /* An error occurred. */ + } + else + { + if ((mysql->fields= cli_read_metadata(mysql, + mysql->net.read_pos[0], protocol_41(mysql) ? 7:5))) + free_root(&mysql->field_alloc,MYF(0)); + else + DBUG_VOID_RETURN; + } + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_ROW); + if (flush_one_result(mysql)) + DBUG_VOID_RETURN; + } + DBUG_VOID_RETURN; +} + + +#ifdef _WIN32 +static my_bool is_NT(void) +{ + char *os=getenv("OS"); + return (os && !strcmp(os, "Windows_NT")) ? 1 : 0; +} +#endif + + +#ifdef CHECK_LICENSE +/** + Check server side variable 'license'. + + If the variable does not exist or does not contain 'Commercial', + we're talking to non-commercial server from commercial client. + + @retval 0 success + @retval !0 network error or the server is not commercial. + Error code is saved in mysql->net.last_errno. +*/ + +static int check_license(MYSQL *mysql) +{ + MYSQL_ROW row; + MYSQL_RES *res; + NET *net= &mysql->net; + static const char query[]= "SELECT @@license"; + static const char required_license[]= STRINGIFY_ARG(LICENSE); + + if (mysql_real_query(mysql, query, (ulong)(sizeof(query)-1))) + { + if (net->last_errno == ER_UNKNOWN_SYSTEM_VARIABLE) + { + set_mysql_extended_error(mysql, CR_WRONG_LICENSE, unknown_sqlstate, + ER(CR_WRONG_LICENSE), required_license); + } + return 1; + } + if (!(res= mysql_use_result(mysql))) + return 1; + row= mysql_fetch_row(res); + /* + If no rows in result set, or column value is NULL (none of these + two is ever true for server variables now), or column value + mismatch, set wrong license error. + */ + if (!net->last_errno && + (!row || !row[0] || + strncmp(row[0], required_license, sizeof(required_license)))) + { + set_mysql_extended_error(mysql, CR_WRONG_LICENSE, unknown_sqlstate, + ER(CR_WRONG_LICENSE), required_license); + } + mysql_free_result(res); + return net->last_errno; +} +#endif /* CHECK_LICENSE */ + + +/************************************************************************** + Shut down connection +**************************************************************************/ + +void end_server(MYSQL *mysql) +{ + int save_errno= errno; + DBUG_ENTER("end_server"); + if (mysql->net.vio != 0) + { + DBUG_PRINT("info",("Net: %s", vio_description(mysql->net.vio))); +#ifdef MYSQL_SERVER + slave_io_thread_detach_vio(); +#endif + vio_delete(mysql->net.vio); + mysql->net.vio= 0; /* Marker */ + mysql_prune_stmt_list(mysql); + } + net_end(&mysql->net); + free_old_query(mysql); + errno= save_errno; + MYSQL_TRACE(DISCONNECTED, mysql, ()); + DBUG_VOID_RETURN; +} + + +void STDCALL +mysql_free_result(MYSQL_RES *result) +{ + DBUG_ENTER("mysql_free_result"); + DBUG_PRINT("enter",("mysql_res: 0x%lx", (long) result)); + if (result) + { + MYSQL *mysql= result->handle; + if (mysql) + { + if (mysql->unbuffered_fetch_owner == &result->unbuffered_fetch_cancelled) + mysql->unbuffered_fetch_owner= 0; + if (mysql->status == MYSQL_STATUS_USE_RESULT) + { + (*mysql->methods->flush_use_result)(mysql, FALSE); + mysql->status=MYSQL_STATUS_READY; + if (mysql->unbuffered_fetch_owner) + *mysql->unbuffered_fetch_owner= TRUE; + } + } + free_rows(result->data); + if (result->fields) + free_root(&result->field_alloc,MYF(0)); + my_free(result->row); + my_free(result); + } + DBUG_VOID_RETURN; +} + +/**************************************************************************** + Get options from my.cnf +****************************************************************************/ + +static const char *default_options[]= +{ + "port","socket","compress","password","pipe", "timeout", "user", + "init-command", "host", "database", "debug", "return-found-rows", + "ssl-key" ,"ssl-cert" ,"ssl-ca" ,"ssl-capath", + "character-sets-dir", "default-character-set", "interactive-timeout", + "connect-timeout", "local-infile", "disable-local-infile", + "ssl-cipher", "max-allowed-packet", "protocol", "shared-memory-base-name", + "multi-results", "multi-statements", "multi-queries", "secure-auth", + "report-data-truncation", "plugin-dir", "default-auth", + "bind-address", "ssl-crl", "ssl-crlpath", "enable-cleartext-plugin", "tls-version", + "ssl_mode", + NullS +}; +enum option_id { + OPT_port=1, OPT_socket, OPT_compress, OPT_password, OPT_pipe, OPT_timeout, OPT_user, + OPT_init_command, OPT_host, OPT_database, OPT_debug, OPT_return_found_rows, + OPT_ssl_key, OPT_ssl_cert, OPT_ssl_ca, OPT_ssl_capath, + OPT_character_sets_dir, OPT_default_character_set, OPT_interactive_timeout, + OPT_connect_timeout, OPT_local_infile, OPT_disable_local_infile, + OPT_ssl_cipher, OPT_max_allowed_packet, OPT_protocol, OPT_shared_memory_base_name, + OPT_multi_results, OPT_multi_statements, OPT_multi_queries, OPT_secure_auth, + OPT_report_data_truncation, OPT_plugin_dir, OPT_default_auth, + OPT_bind_address, OPT_ssl_crl, OPT_ssl_crlpath, OPT_enable_cleartext_plugin, + OPT_tls_version, OPT_ssl_mode, + OPT_keep_this_one_last +}; + +static TYPELIB option_types={array_elements(default_options)-1, + "options",default_options, NULL}; + +const char *sql_protocol_names_lib[] = +{ "TCP", "SOCKET", "PIPE", "MEMORY", NullS }; +TYPELIB sql_protocol_typelib = {array_elements(sql_protocol_names_lib)-1,"", + sql_protocol_names_lib, NULL}; + +static int add_init_command(struct st_mysql_options *options, const char *cmd) +{ + char *tmp; + + if (!options->init_commands) + { + options->init_commands= (DYNAMIC_ARRAY*)my_malloc(key_memory_mysql_options, + sizeof(DYNAMIC_ARRAY), + MYF(MY_WME)); + init_dynamic_array(options->init_commands,sizeof(char*),0,5); + } + + if (!(tmp= my_strdup(key_memory_mysql_options, + cmd,MYF(MY_WME))) || + insert_dynamic(options->init_commands, &tmp)) + { + my_free(tmp); + return 1; + } + + return 0; +} + +#define ALLOCATE_EXTENSIONS(OPTS) \ + (OPTS)->extension= (struct st_mysql_options_extention *) \ + my_malloc(key_memory_mysql_options, \ + sizeof(struct st_mysql_options_extention), \ + MYF(MY_WME | MY_ZEROFILL)) \ + +#define ENSURE_EXTENSIONS_PRESENT(OPTS) \ + do { \ + if (!(OPTS)->extension) \ + ALLOCATE_EXTENSIONS(OPTS); \ + } while (0) + + +#define EXTENSION_SET_STRING(OPTS, X, STR) \ + do { \ + if ((OPTS)->extension) \ + my_free((OPTS)->extension->X); \ + else \ + ALLOCATE_EXTENSIONS(OPTS); \ + (OPTS)->extension->X= ((STR) != NULL) ? \ + my_strdup(key_memory_mysql_options, \ + (STR), MYF(MY_WME)) : NULL; \ + } while (0) + +#define SET_OPTION(opt_var,arg) \ + do { \ + if (mysql->options.opt_var) \ + my_free(mysql->options.opt_var); \ + mysql->options.opt_var = arg ? my_strdup(key_memory_mysql_options, arg, MYF(MY_WME)) : NULL; \ + } while (0) + + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) +#define EXTENSION_SET_SSL_STRING(OPTS, X, STR, mode) \ + do { \ + EXTENSION_SET_STRING(OPTS, X, STR); \ + if ((OPTS)->extension->X) \ + (OPTS)->extension->ssl_mode= mode; \ + } while (0) +#else +#define EXTENSION_SET_SSL_STRING(OPTS, X, STR, mode) \ + do { \ + ; \ + } while(0) +#endif + +static char *set_ssl_option_unpack_path(const char *arg) +{ + char *opt_var= NULL; + if (arg) + { + char *buff= (char *)my_malloc(key_memory_mysql_options, FN_REFLEN + 1, + MYF(MY_WME)); + unpack_filename(buff, (char *)arg); + opt_var= my_strdup(key_memory_mysql_options, buff, MYF(MY_WME)); + my_free(buff); + } + return opt_var; +} + + +void mysql_read_default_options(struct st_mysql_options *options, + const char *filename,const char *group) +{ + int argc; + char *argv_buff[1],**argv; + const char *groups[3]; + DBUG_ENTER("mysql_read_default_options"); + DBUG_PRINT("enter",("file: %s group: %s",filename,group ? group :"NULL")); + + compile_time_assert(OPT_keep_this_one_last == + array_elements(default_options)); + + argc=1; argv=argv_buff; argv_buff[0]= (char*) "client"; + groups[0]= (char*) "client"; groups[1]= (char*) group; groups[2]=0; + + my_load_defaults(filename, groups, &argc, &argv, NULL); + if (argc != 1) /* If some default option */ + { + char **option=argv; + while (*++option) + { + if (my_getopt_is_args_separator(option[0])) /* skip arguments separator */ + continue; + /* DBUG_PRINT("info",("option: %s",option[0])); */ + if (option[0][0] == '-' && option[0][1] == '-') + { + char *end=strcend(*option,'='); + char *opt_arg=0; + if (*end) + { + opt_arg=end+1; + *end=0; /* Remove '=' */ + } + /* Change all '_' in variable name to '-' */ + for (end= *option ; *(end= strcend(end,'_')) ; ) + *end= '-'; + switch (find_type(*option + 2, &option_types, FIND_TYPE_BASIC)) { + case OPT_port: + if (opt_arg) + options->port=atoi(opt_arg); + break; + case OPT_socket: + if (opt_arg) + { + my_free(options->unix_socket); + options->unix_socket=my_strdup(key_memory_mysql_options, + opt_arg,MYF(MY_WME)); + } + break; + case OPT_compress: + options->compress=1; + options->client_flag|= CLIENT_COMPRESS; + break; + case OPT_password: + if (opt_arg) + { + my_free(options->password); + options->password=my_strdup(key_memory_mysql_options, + opt_arg,MYF(MY_WME)); + } + break; + case OPT_pipe: + options->protocol = MYSQL_PROTOCOL_PIPE; + case OPT_connect_timeout: + case OPT_timeout: + if (opt_arg) + options->connect_timeout=atoi(opt_arg); + break; + case OPT_user: + if (opt_arg) + { + my_free(options->user); + options->user=my_strdup(key_memory_mysql_options, + opt_arg,MYF(MY_WME)); + } + break; + case OPT_init_command: + add_init_command(options,opt_arg); + break; + case OPT_host: + if (opt_arg) + { + my_free(options->host); + options->host=my_strdup(key_memory_mysql_options, + opt_arg,MYF(MY_WME)); + } + break; + case OPT_database: + if (opt_arg) + { + my_free(options->db); + options->db=my_strdup(key_memory_mysql_options, + opt_arg,MYF(MY_WME)); + } + break; + case OPT_debug: +#ifdef MYSQL_CLIENT + mysql_debug(opt_arg ? opt_arg : "d:t:o,/tmp/client.trace"); + break; +#endif + case OPT_return_found_rows: + options->client_flag|=CLIENT_FOUND_ROWS; + break; +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + case OPT_ssl_key: + my_free(options->ssl_key); + options->ssl_key = my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_ssl_cert: + my_free(options->ssl_cert); + options->ssl_cert = my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_ssl_ca: + my_free(options->ssl_ca); + options->ssl_ca = my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_ssl_capath: + my_free(options->ssl_capath); + options->ssl_capath = my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_ssl_cipher: + my_free(options->ssl_cipher); + options->ssl_cipher= my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_tls_version: + EXTENSION_SET_SSL_STRING(options, tls_version, opt_arg, SSL_MODE_PREFERRED); + break; + case OPT_ssl_crl: + EXTENSION_SET_SSL_STRING(options, ssl_crl, opt_arg, SSL_MODE_PREFERRED); + break; + case OPT_ssl_crlpath: + EXTENSION_SET_SSL_STRING(options, ssl_crlpath, opt_arg, SSL_MODE_PREFERRED); + break; +#else + case OPT_ssl_key: + case OPT_ssl_cert: + case OPT_ssl_ca: + case OPT_ssl_capath: + case OPT_ssl_cipher: + case OPT_ssl_crl: + case OPT_ssl_crlpath: + case OPT_tls_version : + break; +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ + case OPT_character_sets_dir: + my_free(options->charset_dir); + options->charset_dir = my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_default_character_set: + my_free(options->charset_name); + options->charset_name = my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_interactive_timeout: + options->client_flag|= CLIENT_INTERACTIVE; + break; + case OPT_local_infile: + if (!opt_arg || atoi(opt_arg) != 0) + options->client_flag|= CLIENT_LOCAL_FILES; + else + options->client_flag&= ~CLIENT_LOCAL_FILES; + break; + case OPT_disable_local_infile: + options->client_flag&= ~CLIENT_LOCAL_FILES; + break; + case OPT_max_allowed_packet: + if (opt_arg) + options->max_allowed_packet= atoi(opt_arg); + break; + case OPT_protocol: + if ((options->protocol= find_type(opt_arg, &sql_protocol_typelib, + FIND_TYPE_BASIC)) <= 0) + { + my_message_local(ERROR_LEVEL, + "Unknown option to protocol: %s", opt_arg); + exit(1); + } + break; + case OPT_shared_memory_base_name: +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + if (options->shared_memory_base_name != def_shared_memory_base_name) + my_free(options->shared_memory_base_name); + options->shared_memory_base_name=my_strdup(key_memory_mysql_options, + opt_arg,MYF(MY_WME)); +#endif + break; + case OPT_multi_results: + options->client_flag|= CLIENT_MULTI_RESULTS; + break; + case OPT_multi_statements: + case OPT_multi_queries: + options->client_flag|= CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS; + break; + case OPT_secure_auth: + /* this is a no-op */ + break; + case OPT_report_data_truncation: + options->report_data_truncation= opt_arg ? MY_TEST(atoi(opt_arg)) : 1; + break; + case OPT_plugin_dir: + { + char buff[FN_REFLEN], buff2[FN_REFLEN]; + if (strlen(opt_arg) >= FN_REFLEN) + opt_arg[FN_REFLEN]= '\0'; + if (my_realpath(buff, opt_arg, 0)) + { + DBUG_PRINT("warning",("failed to normalize the plugin path: %s", + opt_arg)); + break; + } + convert_dirname(buff2, buff, NULL); + EXTENSION_SET_STRING(options, plugin_dir, buff2); + } + break; + case OPT_default_auth: + EXTENSION_SET_STRING(options, default_auth, opt_arg); + break; + case OPT_bind_address: + my_free(options->ci.bind_address); + options->ci.bind_address= my_strdup(key_memory_mysql_options, + opt_arg, MYF(MY_WME)); + break; + case OPT_enable_cleartext_plugin: + ENSURE_EXTENSIONS_PRESENT(options); + options->extension->enable_cleartext_plugin= + (!opt_arg || atoi(opt_arg) != 0) ? TRUE : FALSE; + break; + + default: + DBUG_PRINT("warning",("unknown option: %s",option[0])); + } + } + } + } + free_defaults(argv); + DBUG_VOID_RETURN; +} + + +/************************************************************************** + Get column lengths of the current row + If one uses mysql_use_result, res->lengths contains the length information, + else the lengths are calculated from the offset between pointers. +**************************************************************************/ + +static void cli_fetch_lengths(ulong *to, MYSQL_ROW column, + unsigned int field_count) +{ + ulong *prev_length; + char *start=0; + MYSQL_ROW end; + + prev_length=0; /* Keep gcc happy */ + for (end=column + field_count + 1 ; column != end ; column++, to++) + { + if (!*column) + { + *to= 0; /* Null */ + continue; + } + if (start) /* Found end of prev string */ + *prev_length= (ulong) (*column-start-1); + start= *column; + prev_length= to; + } +} + +/** + Read field metadata from field descriptor and store it in MYSQL_FIELD structure. + String values in MYSQL_FIELD are allocated in a given allocator root. + + @param mysql connection handle + @param alloc memory allocator root + @param default_value flag telling if default values should be read from + descriptor + @param server_capabilities protocol capability flags which determine format of + the descriptor + @param row field descriptor + @param field address of MYSQL_FIELD structure to store metadata in. + + @returns 0 on success. +*/ + +int +unpack_field(MYSQL *mysql, MEM_ROOT *alloc, my_bool default_value, + uint server_capabilities, MYSQL_ROWS *row, MYSQL_FIELD *field) +{ + ulong lengths[9]; /* Max length of each field */ + DBUG_ENTER("unpack_field"); + + if (!field) + { + set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); + DBUG_RETURN(1); + } + + memset(field, 0, sizeof(MYSQL_FIELD)); + + if (server_capabilities & CLIENT_PROTOCOL_41) + { + uchar *pos; + /* fields count may be wrong */ + cli_fetch_lengths(&lengths[0], row->data, default_value ? 8 : 7); + field->catalog= strmake_root(alloc,(char*) row->data[0], lengths[0]); + field->db= strmake_root(alloc,(char*) row->data[1], lengths[1]); + field->table= strmake_root(alloc,(char*) row->data[2], lengths[2]); + field->org_table= strmake_root(alloc,(char*) row->data[3], lengths[3]); + field->name= strmake_root(alloc,(char*) row->data[4], lengths[4]); + field->org_name= strmake_root(alloc,(char*) row->data[5], lengths[5]); + + field->catalog_length= lengths[0]; + field->db_length= lengths[1]; + field->table_length= lengths[2]; + field->org_table_length= lengths[3]; + field->name_length= lengths[4]; + field->org_name_length= lengths[5]; + + /* Unpack fixed length parts */ + if (lengths[6] != 12) + { + /* malformed packet. signal an error. */ + set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); + DBUG_RETURN(1); + } + + pos= (uchar*) row->data[6]; + field->charsetnr= uint2korr(pos); + field->length= (uint) uint4korr(pos+2); + field->type= (enum enum_field_types) pos[6]; + field->flags= uint2korr(pos+7); + field->decimals= (uint) pos[9]; + + if (IS_NUM(field->type)) + field->flags|= NUM_FLAG; + if (default_value && row->data[7]) + { + field->def=strmake_root(alloc,(char*) row->data[7], lengths[7]); + field->def_length= lengths[7]; + } + else + field->def=0; + field->max_length= 0; + } +#ifndef DELETE_SUPPORT_OF_4_0_PROTOCOL + else + { + cli_fetch_lengths(&lengths[0], row->data, default_value ? 6 : 5); + field->org_table= field->table= strdup_root(alloc,(char*) row->data[0]); + field->name= strdup_root(alloc,(char*) row->data[1]); + field->length= (uint) uint3korr((uchar*) row->data[2]); + field->type= (enum enum_field_types) (uchar) row->data[3][0]; + + field->catalog=(char*) ""; + field->db= (char*) ""; + field->catalog_length= 0; + field->db_length= 0; + field->org_table_length= field->table_length= lengths[0]; + field->name_length= lengths[1]; + + if (server_capabilities & CLIENT_LONG_FLAG) + { + field->flags= uint2korr((uchar*) row->data[4]); + field->decimals=(uint) (uchar) row->data[4][2]; + } + else + { + field->flags= (uint) (uchar) row->data[4][0]; + field->decimals=(uint) (uchar) row->data[4][1]; + } + if (IS_NUM(field->type)) + field->flags|= NUM_FLAG; + if (default_value && row->data[5]) + { + field->def=strdup_root(alloc,(char*) row->data[5]); + field->def_length= lengths[5]; + } + else + field->def=0; + field->max_length= 0; + } +#endif /* DELETE_SUPPORT_OF_4_0_PROTOCOL */ + DBUG_RETURN(0); +} + +/*************************************************************************** + Change field rows to field structs +***************************************************************************/ + +MYSQL_FIELD * +unpack_fields(MYSQL *mysql, MYSQL_ROWS *data,MEM_ROOT *alloc,uint fields, + my_bool default_value, uint server_capabilities) +{ + MYSQL_ROWS *row; + MYSQL_FIELD *field,*result; + DBUG_ENTER("unpack_fields"); + + field= result= (MYSQL_FIELD*) alloc_root(alloc, + (uint) sizeof(*field)*fields); + if (!result) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(0); + } + memset(field, 0, sizeof(MYSQL_FIELD)*fields); + for (row=data; row ; row = row->next,field++) + { + /* fields count may be wrong */ + DBUG_ASSERT((uint) (field - result) < fields); + if (unpack_field(mysql, alloc, default_value, server_capabilities, + row, field)) + { + DBUG_RETURN(NULL); + } + } + DBUG_RETURN(result); +} + + +/** + Read metadata resultset from server + Memory allocated in a given allocator root. + + @param[IN] mysql connection handle + @param[IN] alloc memory allocator root + @param[IN] field_count total number of fields + @param[IN] field number of columns in single field descriptor + + @retval an array of field rows + +*/ +MYSQL_FIELD *cli_read_metadata_ex(MYSQL *mysql, MEM_ROOT *alloc, + ulong field_count, unsigned int field) +{ + ulong *len; + uint f; + uchar *pos; + MYSQL_FIELD *fields, *result; + MYSQL_ROWS data; + NET *net = &mysql->net; + + DBUG_ENTER("cli_read_metadata"); + + len= (ulong*) alloc_root(alloc, sizeof(ulong)*field); + + fields= result= (MYSQL_FIELD*) alloc_root(alloc, + (uint) sizeof(MYSQL_FIELD)*field_count); + if (!result) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(0); + } + memset(fields, 0, sizeof(MYSQL_FIELD)*field_count); + + data.data= (MYSQL_ROW) alloc_root(alloc, sizeof(char *)*(field+1)); + memset(data.data, 0, sizeof(char *)*(field+1)); + + /* + In this below loop we read each column info as 1 single row + and save it in mysql->fields array + */ + for (f=0 ; f < field_count ; ++f) + { + if(read_one_row(mysql, field, data.data, len) == -1) + DBUG_RETURN(NULL); + if(unpack_field(mysql, alloc, 0, mysql->server_capabilities, &data, + fields++)) + DBUG_RETURN(NULL); + } + /* Read EOF packet in case of old client */ + if (!(mysql->server_capabilities & CLIENT_DEPRECATE_EOF)) + { + if (packet_error == cli_safe_read(mysql, NULL)) + DBUG_RETURN(0); + pos= net->read_pos; + if (*pos == 254) + { + mysql->warning_count= uint2korr(pos + 1); + mysql->server_status= uint2korr(pos + 3); + } + } + DBUG_RETURN(result); +} + + +/** + Read metadata resultset from server + + @param[IN] mysql connection handle + @param[IN] field_count total number of fields + @param[IN] field number of columns in single field descriptor + + @retval an array of field rows + +*/ +MYSQL_FIELD *cli_read_metadata(MYSQL *mysql, ulong field_count, + unsigned int field) +{ + return cli_read_metadata_ex(mysql, &mysql->field_alloc, field_count, field); +} + + +/* Read all rows (data) from server */ + +MYSQL_DATA *cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, + unsigned int fields) +{ + uint field; + ulong pkt_len; + ulong len; + uchar *cp; + char *to, *end_to; + MYSQL_DATA *result; + MYSQL_ROWS **prev_ptr,*cur; + NET *net = &mysql->net; + my_bool is_data_packet; + DBUG_ENTER("cli_read_rows"); + + if ((pkt_len= cli_safe_read(mysql, &is_data_packet)) == packet_error) + DBUG_RETURN(0); + if (!(result=(MYSQL_DATA*) my_malloc(key_memory_MYSQL_DATA, + sizeof(MYSQL_DATA), + MYF(MY_WME | MY_ZEROFILL)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(0); + } + init_alloc_root(PSI_NOT_INSTRUMENTED, + &result->alloc, 8192, 0); /* Assume rowlength < 8192 */ + result->alloc.min_malloc=sizeof(MYSQL_ROWS); + prev_ptr= &result->data; + result->rows=0; + result->fields=fields; + + /* + The last EOF packet is either a single 254 character or (in MySQL 4.1) + 254 followed by 1-7 status bytes or an OK packet starting with 0xFE + */ + + while (*(cp=net->read_pos) == 0 || is_data_packet) + { + result->rows++; + if (!(cur= (MYSQL_ROWS*) alloc_root(&result->alloc, + sizeof(MYSQL_ROWS))) || + !(cur->data= ((MYSQL_ROW) + alloc_root(&result->alloc, + (fields+1)*sizeof(char *)+pkt_len)))) + { + free_rows(result); + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(0); + } + *prev_ptr=cur; + prev_ptr= &cur->next; + to= (char*) (cur->data+fields+1); + end_to=to+pkt_len-1; + for (field=0 ; field < fields ; field++) + { + if ((len=(ulong) net_field_length(&cp)) == NULL_LENGTH) + { /* null field */ + cur->data[field] = 0; + } + else + { + cur->data[field] = to; + if (len > (ulong) (end_to - to)) + { + free_rows(result); + set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); + DBUG_RETURN(0); + } + memcpy(to,(char*) cp,len); to[len]=0; + to+=len+1; + cp+=len; + if (mysql_fields) + { + if (mysql_fields[field].max_length < len) + mysql_fields[field].max_length=len; + } + } + } + cur->data[field]=to; /* End of last field */ + if ((pkt_len= cli_safe_read(mysql, &is_data_packet)) == packet_error) + { + free_rows(result); + DBUG_RETURN(0); + } + } + *prev_ptr=0; /* last pointer is null */ + /* read EOF packet or OK packet if it is new client */ + if (pkt_len > 1) + { + if (mysql->server_capabilities & CLIENT_DEPRECATE_EOF && + !is_data_packet) + read_ok_ex(mysql, pkt_len); + else + { + mysql->warning_count= uint2korr(cp + 1); + mysql->server_status= uint2korr(cp + 3); + } + + DBUG_PRINT("info",("status: %u warning_count: %u", + mysql->server_status, mysql->warning_count)); + } + +#if defined(CLIENT_PROTOCOL_TRACING) + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + else + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + DBUG_PRINT("exit", ("Got %lu rows", (ulong) result->rows)); + DBUG_RETURN(result); +} + +/* + Read one row. Uses packet buffer as storage for fields. + When next packet is read, the previous field values are destroyed +*/ + + +static int +read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths) +{ + uint field; + ulong pkt_len,len; + my_bool is_data_packet; + uchar *pos, *prev_pos, *end_pos; + NET *net= &mysql->net; + + if ((pkt_len= cli_safe_read(mysql, &is_data_packet)) == packet_error) + return -1; + if (net->read_pos[0] != 0x00 && !is_data_packet) + { + if (pkt_len > 1) /* MySQL 4.1 protocol */ + { + if (mysql->server_capabilities & CLIENT_DEPRECATE_EOF) + read_ok_ex(mysql, pkt_len); + else + { + mysql->warning_count= uint2korr(net->read_pos + 1); + mysql->server_status= uint2korr(net->read_pos+3); + } + } +#if defined(CLIENT_PROTOCOL_TRACING) + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + else + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + return 1; /* End of data */ + } + prev_pos= 0; /* allowed to write at packet[-1] */ + pos=net->read_pos; + end_pos=pos+pkt_len; + for (field=0 ; field < fields ; field++) + { + if ((len=(ulong) net_field_length(&pos)) == NULL_LENGTH) + { /* null field */ + row[field] = 0; + *lengths++=0; + } + else + { + if (len > (ulong) (end_pos - pos)) + { + set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); + return -1; + } + row[field] = (char*) pos; + pos+=len; + *lengths++=len; + } + if (prev_pos) + *prev_pos=0; /* Terminate prev field */ + prev_pos=pos; + } + row[field]=(char*) prev_pos+1; /* End of last field */ + *prev_pos=0; /* Terminate last field */ + return 0; +} + + +/**************************************************************************** + Init MySQL structure or allocate one +****************************************************************************/ + + +MYSQL * STDCALL +mysql_init(MYSQL *mysql) +{ + if (mysql_server_init(0, NULL, NULL)) + return 0; + if (!mysql) + { + if (!(mysql=(MYSQL*) my_malloc(key_memory_MYSQL, + sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL)))) + { + set_mysql_error(NULL, CR_OUT_OF_MEMORY, unknown_sqlstate); + return 0; + } + mysql->free_me=1; + } + else + memset(mysql, 0, sizeof(*(mysql))); + mysql->charset=default_client_charset_info; + my_stpcpy(mysql->net.sqlstate, not_error_sqlstate); + + /* + Only enable LOAD DATA INFILE by default if configured with option + ENABLED_LOCAL_INFILE + */ + +#if defined(ENABLED_LOCAL_INFILE) && !defined(MYSQL_SERVER) + mysql->options.client_flag|= CLIENT_LOCAL_FILES; +#endif + +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + mysql->options.shared_memory_base_name= (char*) def_shared_memory_base_name; +#endif + + mysql->options.methods_to_use= MYSQL_OPT_GUESS_CONNECTION; + mysql->options.report_data_truncation= TRUE; /* default */ + + /* Initialize extensions. */ + if (!(mysql->extension= mysql_extension_init(mysql))) + { + set_mysql_error(NULL, CR_OUT_OF_MEMORY, unknown_sqlstate); + return 0; + } + + /* + By default we don't reconnect because it could silently corrupt data (after + reconnection you potentially lose table locks, user variables, session + variables (transactions but they are specifically dealt with in + mysql_reconnect()). + This is a change: < 5.0.3 mysql->reconnect was set to 1 by default. + How this change impacts existing apps: + - existing apps which relyed on the default will see a behaviour change; + they will have to set reconnect=1 after mysql_real_connect(). + - existing apps which explicitely asked for reconnection (the only way they + could do it was by setting mysql.reconnect to 1 after mysql_real_connect()) + will not see a behaviour change. + - existing apps which explicitely asked for no reconnection + (mysql.reconnect=0) will not see a behaviour change. + */ + mysql->reconnect= 0; +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) && !defined(MYSQL_SERVER) + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + mysql->options.extension->ssl_mode= SSL_MODE_PREFERRED; +#endif + + return mysql; +} + + +/* + MYSQL::extension handling (see sql_common.h for declaration + of st_mysql_extension structure). +*/ + +MYSQL_EXTENSION* mysql_extension_init(MYSQL *mysql MY_ATTRIBUTE((unused))) +{ + MYSQL_EXTENSION *ext; + + ext= my_malloc(PSI_NOT_INSTRUMENTED, + sizeof(MYSQL_EXTENSION), MYF(MY_WME | MY_ZEROFILL)); + return ext; +} + + +void mysql_extension_free(struct st_mysql_extension* ext) +{ + if (!ext) + return; + if (ext->trace_data) + my_free(ext->trace_data); + + // free state change related resources. + free_state_change_info(ext); + + my_free(ext); +} + + +/* + Fill in SSL part of MYSQL structure and set 'use_ssl' flag. + NB! Errors are not reported until you do mysql_real_connect. +*/ + +my_bool STDCALL +mysql_ssl_set(MYSQL *mysql MY_ATTRIBUTE((unused)) , + const char *key MY_ATTRIBUTE((unused)), + const char *cert MY_ATTRIBUTE((unused)), + const char *ca MY_ATTRIBUTE((unused)), + const char *capath MY_ATTRIBUTE((unused)), + const char *cipher MY_ATTRIBUTE((unused))) +{ + my_bool result= 0; + DBUG_ENTER("mysql_ssl_set"); +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + result= + mysql_options(mysql, MYSQL_OPT_SSL_KEY, key) + + mysql_options(mysql, MYSQL_OPT_SSL_CERT, cert) + + mysql_options(mysql, MYSQL_OPT_SSL_CA, ca) + + mysql_options(mysql, MYSQL_OPT_SSL_CAPATH, capath) + + mysql_options(mysql, MYSQL_OPT_SSL_CIPHER, cipher) + ? 1 : 0; +#endif + DBUG_RETURN(result); +} + + +/* + Free strings in the SSL structure and clear 'use_ssl' flag. + NB! Errors are not reported until you do mysql_real_connect. +*/ + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + +static void +mysql_ssl_free(MYSQL *mysql MY_ATTRIBUTE((unused))) +{ + struct st_VioSSLFd *ssl_fd= (struct st_VioSSLFd*) mysql->connector_fd; + DBUG_ENTER("mysql_ssl_free"); + + my_free(mysql->options.ssl_key); + my_free(mysql->options.ssl_cert); + my_free(mysql->options.ssl_ca); + my_free(mysql->options.ssl_capath); + my_free(mysql->options.ssl_cipher); + if (mysql->options.extension) + { + my_free(mysql->options.extension->tls_version); + my_free(mysql->options.extension->ssl_crl); + my_free(mysql->options.extension->ssl_crlpath); + } + if (ssl_fd) + SSL_CTX_free(ssl_fd->ssl_context); + my_free(mysql->connector_fd); + mysql->options.ssl_key = 0; + mysql->options.ssl_cert = 0; + mysql->options.ssl_ca = 0; + mysql->options.ssl_capath = 0; + mysql->options.ssl_cipher= 0; + if (mysql->options.extension) + { + mysql->options.extension->ssl_crl = 0; + mysql->options.extension->ssl_crlpath = 0; + mysql->options.extension->ssl_ctx_flags= 0; + mysql->options.extension->tls_version= 0; + mysql->options.extension->ssl_mode= SSL_MODE_DISABLED; + } + mysql->connector_fd = 0; + DBUG_VOID_RETURN; +} + +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ + +/* + Return the SSL cipher (if any) used for current + connection to the server. + + SYNOPSYS + mysql_get_ssl_cipher() + mysql pointer to the mysql connection + +*/ + +const char * STDCALL +mysql_get_ssl_cipher(MYSQL *mysql MY_ATTRIBUTE((unused))) +{ + DBUG_ENTER("mysql_get_ssl_cipher"); +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + if (mysql->net.vio && mysql->net.vio->ssl_arg) + DBUG_RETURN(SSL_get_cipher_name((SSL*)mysql->net.vio->ssl_arg)); +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ + DBUG_RETURN(NULL); +} + + +/* + Check the server's (subject) Common Name against the + hostname we connected to + + SYNOPSIS + ssl_verify_server_cert() + vio pointer to a SSL connected vio + server_hostname name of the server that we connected to + errptr if we fail, we'll return (a pointer to a string + describing) the reason here + + RETURN VALUES + 0 Success + 1 Failed to validate server + + */ + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + +static int ssl_verify_server_cert(Vio *vio, const char* server_hostname, const char **errptr) +{ + SSL *ssl; + X509 *server_cert= NULL; + char *cn= NULL; + int cn_loc= -1; + ASN1_STRING *cn_asn1= NULL; + X509_NAME_ENTRY *cn_entry= NULL; + X509_NAME *subject= NULL; + int ret_validation= 1; + + DBUG_ENTER("ssl_verify_server_cert"); + DBUG_PRINT("enter", ("server_hostname: %s", server_hostname)); + + if (!(ssl= (SSL*)vio->ssl_arg)) + { + *errptr= "No SSL pointer found"; + goto error; + } + + if (!server_hostname) + { + *errptr= "No server hostname supplied"; + goto error; + } + + if (!(server_cert= SSL_get_peer_certificate(ssl))) + { + *errptr= "Could not get server certificate"; + goto error; + } + + if (X509_V_OK != SSL_get_verify_result(ssl)) + { + *errptr= "Failed to verify the server certificate"; + goto error; + } + /* + We already know that the certificate exchanged was valid; the SSL library + handled that. Now we need to verify that the contents of the certificate + are what we expect. + */ + + /* + Some notes for future development + We should check host name in alternative name first and then if needed check in common name. + Currently yssl doesn't support alternative name. + openssl 1.0.2 support X509_check_host method for host name validation, we may need to start using + X509_check_host in the future. + */ + + subject= X509_get_subject_name((X509 *) server_cert); + // Find the CN location in the subject + cn_loc= X509_NAME_get_index_by_NID(subject, NID_commonName, -1); + if (cn_loc < 0) + { + *errptr= "Failed to get CN location in the certificate subject"; + goto error; + } + + // Get the CN entry for given location + cn_entry= X509_NAME_get_entry(subject, cn_loc); + if (cn_entry == NULL) + { + *errptr= "Failed to get CN entry using CN location"; + goto error; + } + + // Get CN from common name entry + cn_asn1 = X509_NAME_ENTRY_get_data(cn_entry); + if (cn_asn1 == NULL) + { + *errptr= "Failed to get CN from CN entry"; + goto error; + } + + cn= (char *) ASN1_STRING_data(cn_asn1); + + // There should not be any NULL embedded in the CN + if ((size_t)ASN1_STRING_length(cn_asn1) != strlen(cn)) + { + *errptr= "NULL embedded in the certificate CN"; + goto error; + } + + DBUG_PRINT("info", ("Server hostname in cert: %s", cn)); + if (!strcmp(cn, server_hostname)) + { + /* Success */ + ret_validation= 0; + } + + *errptr= "SSL certificate validation failure"; + +error: + if (server_cert != NULL) + X509_free (server_cert); + DBUG_RETURN(ret_validation); +} + +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ + + +/* + Note that the mysql argument must be initialized with mysql_init() + before calling mysql_real_connect ! +*/ + +static my_bool cli_read_query_result(MYSQL *mysql); +static MYSQL_RES *cli_use_result(MYSQL *mysql); + +int cli_read_change_user_result(MYSQL *mysql) +{ + return cli_safe_read(mysql, NULL); +} + +static MYSQL_METHODS client_methods= +{ + cli_read_query_result, /* read_query_result */ + cli_advanced_command, /* advanced_command */ + cli_read_rows, /* read_rows */ + cli_use_result, /* use_result */ + cli_fetch_lengths, /* fetch_lengths */ + cli_flush_use_result, /* flush_use_result */ + cli_read_change_user_result /* read_change_user_result */ +#ifndef MYSQL_SERVER + ,cli_list_fields, /* list_fields */ + cli_read_prepare_result, /* read_prepare_result */ + cli_stmt_execute, /* stmt_execute */ + cli_read_binary_rows, /* read_binary_rows */ + cli_unbuffered_fetch, /* unbuffered_fetch */ + NULL, /* free_embedded_thd */ + cli_read_statistics, /* read_statistics */ + cli_read_query_result, /* next_result */ + cli_read_binary_rows, /* read_rows_from_cursor */ + free_rows +#endif +}; + + + +typedef enum my_cs_match_type_enum +{ + /* MySQL and OS charsets are fully compatible */ + my_cs_exact, + /* MySQL charset is very close to OS charset */ + my_cs_approx, + /* + MySQL knows this charset, but it is not supported as client character set. + */ + my_cs_unsupp +} my_cs_match_type; + + +typedef struct str2str_st +{ + const char *os_name; + const char *my_name; + my_cs_match_type param; +} MY_CSET_OS_NAME; + +const MY_CSET_OS_NAME charsets[]= +{ +#ifdef _WIN32 + {"cp437", "cp850", my_cs_approx}, + {"cp850", "cp850", my_cs_exact}, + {"cp852", "cp852", my_cs_exact}, + {"cp858", "cp850", my_cs_approx}, + {"cp866", "cp866", my_cs_exact}, + {"cp874", "tis620", my_cs_approx}, + {"cp932", "cp932", my_cs_exact}, + {"cp936", "gbk", my_cs_approx}, + {"cp949", "euckr", my_cs_approx}, + {"cp950", "big5", my_cs_exact}, + {"cp1200", "utf16le", my_cs_unsupp}, + {"cp1201", "utf16", my_cs_unsupp}, + {"cp1250", "cp1250", my_cs_exact}, + {"cp1251", "cp1251", my_cs_exact}, + {"cp1252", "latin1", my_cs_exact}, + {"cp1253", "greek", my_cs_exact}, + {"cp1254", "latin5", my_cs_exact}, + {"cp1255", "hebrew", my_cs_approx}, + {"cp1256", "cp1256", my_cs_exact}, + {"cp1257", "cp1257", my_cs_exact}, + {"cp10000", "macroman", my_cs_exact}, + {"cp10001", "sjis", my_cs_approx}, + {"cp10002", "big5", my_cs_approx}, + {"cp10008", "gb2312", my_cs_approx}, + {"cp10021", "tis620", my_cs_approx}, + {"cp10029", "macce", my_cs_exact}, + {"cp12001", "utf32", my_cs_unsupp}, + {"cp20107", "swe7", my_cs_exact}, + {"cp20127", "latin1", my_cs_approx}, + {"cp20866", "koi8r", my_cs_exact}, + {"cp20932", "ujis", my_cs_exact}, + {"cp20936", "gb2312", my_cs_approx}, + {"cp20949", "euckr", my_cs_approx}, + {"cp21866", "koi8u", my_cs_exact}, + {"cp28591", "latin1", my_cs_approx}, + {"cp28592", "latin2", my_cs_exact}, + {"cp28597", "greek", my_cs_exact}, + {"cp28598", "hebrew", my_cs_exact}, + {"cp28599", "latin5", my_cs_exact}, + {"cp28603", "latin7", my_cs_exact}, +#ifdef UNCOMMENT_THIS_WHEN_WL_4579_IS_DONE + {"cp28605", "latin9", my_cs_exact}, +#endif + {"cp38598", "hebrew", my_cs_exact}, + {"cp51932", "ujis", my_cs_exact}, + {"cp51936", "gb2312", my_cs_exact}, + {"cp51949", "euckr", my_cs_exact}, + {"cp51950", "big5", my_cs_exact}, + {"cp54936", "gb18030", my_cs_exact}, + {"cp65001", "utf8", my_cs_exact}, + +#else /* not Windows */ + + {"646", "latin1", my_cs_approx}, /* Default on Solaris */ + {"ANSI_X3.4-1968", "latin1", my_cs_approx}, + {"ansi1251", "cp1251", my_cs_exact}, + {"armscii8", "armscii8", my_cs_exact}, + {"armscii-8", "armscii8", my_cs_exact}, + {"ASCII", "latin1", my_cs_approx}, + {"Big5", "big5", my_cs_exact}, + {"cp1251", "cp1251", my_cs_exact}, + {"cp1255", "hebrew", my_cs_approx}, + {"CP866", "cp866", my_cs_exact}, + {"eucCN", "gb2312", my_cs_exact}, + {"euc-CN", "gb2312", my_cs_exact}, + {"eucJP", "ujis", my_cs_exact}, + {"euc-JP", "ujis", my_cs_exact}, + {"eucKR", "euckr", my_cs_exact}, + {"euc-KR", "euckr", my_cs_exact}, + {"gb18030", "gb18030", my_cs_exact}, + {"gb2312", "gb2312", my_cs_exact}, + {"gbk", "gbk", my_cs_exact}, + {"georgianps", "geostd8", my_cs_exact}, + {"georgian-ps", "geostd8", my_cs_exact}, + {"IBM-1252", "cp1252", my_cs_exact}, + + {"iso88591", "latin1", my_cs_approx}, + {"ISO_8859-1", "latin1", my_cs_approx}, + {"ISO8859-1", "latin1", my_cs_approx}, + {"ISO-8859-1", "latin1", my_cs_approx}, + + {"iso885913", "latin7", my_cs_exact}, + {"ISO_8859-13", "latin7", my_cs_exact}, + {"ISO8859-13", "latin7", my_cs_exact}, + {"ISO-8859-13", "latin7", my_cs_exact}, + +#ifdef UNCOMMENT_THIS_WHEN_WL_4579_IS_DONE + {"iso885915", "latin9", my_cs_exact}, + {"ISO_8859-15", "latin9", my_cs_exact}, + {"ISO8859-15", "latin9", my_cs_exact}, + {"ISO-8859-15", "latin9", my_cs_exact}, +#endif + + {"iso88592", "latin2", my_cs_exact}, + {"ISO_8859-2", "latin2", my_cs_exact}, + {"ISO8859-2", "latin2", my_cs_exact}, + {"ISO-8859-2", "latin2", my_cs_exact}, + + {"iso88597", "greek", my_cs_exact}, + {"ISO_8859-7", "greek", my_cs_exact}, + {"ISO8859-7", "greek", my_cs_exact}, + {"ISO-8859-7", "greek", my_cs_exact}, + + {"iso88598", "hebrew", my_cs_exact}, + {"ISO_8859-8", "hebrew", my_cs_exact}, + {"ISO8859-8", "hebrew", my_cs_exact}, + {"ISO-8859-8", "hebrew", my_cs_exact}, + + {"iso88599", "latin5", my_cs_exact}, + {"ISO_8859-9", "latin5", my_cs_exact}, + {"ISO8859-9", "latin5", my_cs_exact}, + {"ISO-8859-9", "latin5", my_cs_exact}, + + {"koi8r", "koi8r", my_cs_exact}, + {"KOI8-R", "koi8r", my_cs_exact}, + {"koi8u", "koi8u", my_cs_exact}, + {"KOI8-U", "koi8u", my_cs_exact}, + + {"roman8", "hp8", my_cs_exact}, /* Default on HP UX */ + + {"Shift_JIS", "sjis", my_cs_exact}, + {"SJIS", "sjis", my_cs_exact}, + {"shiftjisx0213", "sjis", my_cs_exact}, + + {"tis620", "tis620", my_cs_exact}, + {"tis-620", "tis620", my_cs_exact}, + + {"ujis", "ujis", my_cs_exact}, + + {"US-ASCII", "latin1", my_cs_approx}, + + {"utf8", "utf8", my_cs_exact}, + {"utf-8", "utf8", my_cs_exact}, +#endif + {NULL, NULL, 0} +}; + + +static const char * +my_os_charset_to_mysql_charset(const char *csname) +{ + const MY_CSET_OS_NAME *csp; + for (csp= charsets; csp->os_name; csp++) + { + if (!my_strcasecmp(&my_charset_latin1, csp->os_name, csname)) + { + switch (csp->param) + { + case my_cs_exact: + return csp->my_name; + + case my_cs_approx: + /* + Maybe we should print a warning eventually: + character set correspondence is not exact. + */ + return csp->my_name; + + default: + my_printf_error(ER_UNKNOWN_ERROR, + "OS character set '%s'" + " is not supported by MySQL client", + MYF(0), csp->my_name); + goto def; + } + } + } + + my_printf_error(ER_UNKNOWN_ERROR, + "Unknown OS character set '%s'.", + MYF(0), csname); + +def: + csname= MYSQL_DEFAULT_CHARSET_NAME; + my_printf_error(ER_UNKNOWN_ERROR, + "Switching to the default character set '%s'.", + MYF(0), csname); + return csname; +} + + +#ifndef _WIN32 +#include /* for getenv() */ +#ifdef HAVE_LANGINFO_H +#include +#endif +#include +#endif /* _WIN32 */ + + +static int +mysql_autodetect_character_set(MYSQL *mysql) +{ + const char *csname= MYSQL_DEFAULT_CHARSET_NAME; + +#ifdef _WIN32 + char cpbuf[64]; + { + my_snprintf(cpbuf, sizeof(cpbuf), "cp%d", (int) GetConsoleCP()); + csname= my_os_charset_to_mysql_charset(cpbuf); + } +#elif defined(HAVE_NL_LANGINFO) + { + if (setlocale(LC_CTYPE, "") && (csname= nl_langinfo(CODESET))) + csname= my_os_charset_to_mysql_charset(csname); + } +#endif + + if (mysql->options.charset_name) + my_free(mysql->options.charset_name); + if (!(mysql->options.charset_name= my_strdup(key_memory_mysql_options, + csname, MYF(MY_WME)))) + return 1; + return 0; +} + + +static void +mysql_set_character_set_with_default_collation(MYSQL *mysql) +{ + const char *save= charsets_dir; + if (mysql->options.charset_dir) + charsets_dir=mysql->options.charset_dir; + + if ((mysql->charset= get_charset_by_csname(mysql->options.charset_name, + MY_CS_PRIMARY, MYF(MY_WME)))) + { + /* Try to set compiled default collation when it's possible. */ + CHARSET_INFO *collation; + if ((collation= + get_charset_by_name(MYSQL_DEFAULT_COLLATION_NAME, MYF(MY_WME))) && + my_charset_same(mysql->charset, collation)) + { + mysql->charset= collation; + } + else + { + /* + Default compiled collation not found, or is not applicable + to the requested character set. + Continue with the default collation of the character set. + */ + } + } + charsets_dir= save; +} + + +C_MODE_START +int mysql_init_character_set(MYSQL *mysql) +{ + /* Set character set */ + if (!mysql->options.charset_name) + { + if (!(mysql->options.charset_name= + my_strdup(key_memory_mysql_options, + MYSQL_DEFAULT_CHARSET_NAME,MYF(MY_WME)))) + return 1; + } + else if (!strcmp(mysql->options.charset_name, + MYSQL_AUTODETECT_CHARSET_NAME) && + mysql_autodetect_character_set(mysql)) + return 1; + + mysql_set_character_set_with_default_collation(mysql); + + if (!mysql->charset) + { + if (mysql->options.charset_dir) + set_mysql_extended_error(mysql, CR_CANT_READ_CHARSET, unknown_sqlstate, + ER(CR_CANT_READ_CHARSET), + mysql->options.charset_name, + mysql->options.charset_dir); + else + { + char cs_dir_name[FN_REFLEN]; + get_charsets_dir(cs_dir_name); + set_mysql_extended_error(mysql, CR_CANT_READ_CHARSET, unknown_sqlstate, + ER(CR_CANT_READ_CHARSET), + mysql->options.charset_name, + cs_dir_name); + } + return 1; + } + return 0; +} +C_MODE_END + +/*********** client side authentication support **************************/ + +typedef struct st_mysql_client_plugin_AUTHENTICATION auth_plugin_t; +static int client_mpvio_write_packet(struct st_plugin_vio*, const uchar*, int); +static int native_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql); +static int clear_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql); + +static auth_plugin_t native_password_client_plugin= +{ + MYSQL_CLIENT_AUTHENTICATION_PLUGIN, + MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION, + native_password_plugin_name, + "R.J.Silk, Sergei Golubchik", + "Native MySQL authentication", + {1, 0, 0}, + "GPL", + NULL, + NULL, + NULL, + NULL, + native_password_auth_client +}; + +static auth_plugin_t clear_password_client_plugin= +{ + MYSQL_CLIENT_AUTHENTICATION_PLUGIN, + MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION, + "mysql_clear_password", + "Georgi Kodinov", + "Clear password authentication plugin", + {0,1,0}, + "GPL", + NULL, + NULL, + NULL, + NULL, + clear_password_auth_client +}; + +#if defined(HAVE_OPENSSL) +static auth_plugin_t sha256_password_client_plugin= +{ + MYSQL_CLIENT_AUTHENTICATION_PLUGIN, + MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION, + "sha256_password", + "Oracle Inc", + "SHA256 based authentication with salt", + {1, 0, 0}, + "GPL", + NULL, + sha256_password_init, + sha256_password_deinit, + NULL, + sha256_password_auth_client +}; +#endif +#ifdef AUTHENTICATION_WIN +extern auth_plugin_t win_auth_client_plugin; +#endif + +/* + Test trace plugin can be used only in debug builds. In non-debug ones + it is ignored, even if it was enabled by build options (TEST_TRACE_PLUGIN macro). +*/ + +#if defined(CLIENT_PROTOCOL_TRACING) \ + && defined(TEST_TRACE_PLUGIN) \ + && !defined(DBUG_OFF) +extern auth_plugin_t test_trace_plugin; +#endif + +struct st_mysql_client_plugin *mysql_client_builtins[]= +{ + (struct st_mysql_client_plugin *)&native_password_client_plugin, + (struct st_mysql_client_plugin *)&clear_password_client_plugin, +#if defined(HAVE_OPENSSL) + (struct st_mysql_client_plugin *) &sha256_password_client_plugin, +#endif +#ifdef AUTHENTICATION_WIN + (struct st_mysql_client_plugin *)&win_auth_client_plugin, +#endif +#if defined(CLIENT_PROTOCOL_TRACING) \ + && defined(TEST_TRACE_PLUGIN) \ + && !defined(DBUG_OFF) + (struct st_mysql_client_plugin *)&test_trace_plugin, +#endif + 0 +}; + + +static uchar * +write_length_encoded_string3(uchar *buf, char *string, size_t length) +{ + buf= net_store_length(buf, length); + memcpy(buf, string, length); + buf+= length; + return buf; +} + + +uchar * +send_client_connect_attrs(MYSQL *mysql, uchar *buf) +{ + /* check if the server supports connection attributes */ + if (mysql->server_capabilities & CLIENT_CONNECT_ATTRS) + { + + /* Always store the length if the client supports it */ + buf= net_store_length(buf, + mysql->options.extension ? + mysql->options.extension->connection_attributes_length : + 0); + + /* check if we have connection attributes */ + if (mysql->options.extension && + my_hash_inited(&mysql->options.extension->connection_attributes)) + { + HASH *attrs= &mysql->options.extension->connection_attributes; + ulong idx; + + /* loop over and dump the connection attributes */ + for (idx= 0; idx < attrs->records; idx++) + { + LEX_STRING *attr= (LEX_STRING *) my_hash_element(attrs, idx); + LEX_STRING *key= attr, *value= attr + 1; + + /* we can't have zero length keys */ + DBUG_ASSERT(key->length); + + buf= write_length_encoded_string3(buf, key->str, key->length); + buf= write_length_encoded_string3(buf, value->str, value->length); + } + } + } + return buf; +} + + +static size_t get_length_store_length(size_t length) +{ + /* as defined in net_store_length */ + #define MAX_VARIABLE_STRING_LENGTH 9 + uchar length_buffer[MAX_VARIABLE_STRING_LENGTH], *ptr; + + ptr= net_store_length(length_buffer, length); + + return ptr - &length_buffer[0]; +} + + +/* this is a "superset" of MYSQL_PLUGIN_VIO, in C++ I use inheritance */ +typedef struct { + int (*read_packet)(struct st_plugin_vio *vio, uchar **buf); + int (*write_packet)(struct st_plugin_vio *vio, const uchar *pkt, int pkt_len); + void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info); + /* -= end of MYSQL_PLUGIN_VIO =- */ + MYSQL *mysql; + auth_plugin_t *plugin; /**< what plugin we're under */ + const char *db; + struct { + uchar *pkt; /**< pointer into NET::buff */ + uint pkt_len; + } cached_server_reply; + int packets_read, packets_written; /**< counters for send/received packets */ + int mysql_change_user; /**< if it's mysql_change_user() */ + int last_read_packet_len; /**< the length of the last *read* packet */ +} MCPVIO_EXT; + + +/* + Write 1-8 bytes of string length header infromation to dest depending on + value of src_len, then copy src_len bytes from src to dest. + + @param dest Destination buffer of size src_len+8 + @param dest_end One byte past the end of the dest buffer + @param src Source buff of size src_len + @param src_end One byte past the end of the src buffer + + @return pointer dest+src_len+header size or NULL if +*/ + +char *write_length_encoded_string4(char *dest, char *dest_end, char *src, + char *src_end) +{ + size_t src_len= (size_t)(src_end - src); + uchar *to= net_store_length((uchar*) dest, src_len); + if ((char*)(to + src_len) >= dest_end) + return NULL; + memcpy(to, src, src_len); + return (char*)(to + src_len); +} + + +/* + Write 1 byte of string length header information to dest and + copy src_len bytes from src to dest. +*/ +char *write_string(char *dest, char *dest_end, char *src, char *src_end) +{ + size_t src_len= (size_t)(src_end - src); + uchar *to= NULL; + if (src_len >= 251) + return NULL; + *dest=(uchar) src_len; + to= (uchar*) dest+1; + if ((char*)(to + src_len) >= dest_end) + return NULL; + memcpy(to, src, src_len); + return (char*)(to + src_len); +} +/** + sends a COM_CHANGE_USER command with a caller provided payload + + Packet format: + + Bytes Content + ----- ---- + n user name - \0-terminated string + n password + 3.23 scramble - \0-terminated string (9 bytes) + otherwise - length (1 byte) coded + n database name - \0-terminated string + 2 character set number (if the server >= 4.1.x) + n client auth plugin name - \0-terminated string, + (if the server supports plugin auth) + + @retval 0 ok + @retval 1 error +*/ +static int send_change_user_packet(MCPVIO_EXT *mpvio, + const uchar *data, int data_len) +{ + MYSQL *mysql= mpvio->mysql; + char *buff, *end; + int res= 1; + size_t connect_attrs_len= + (mysql->server_capabilities & CLIENT_CONNECT_ATTRS && + mysql->options.extension) ? + mysql->options.extension->connection_attributes_length : 0; + + buff= my_alloca(USERNAME_LENGTH + data_len + 1 + NAME_LEN + 2 + NAME_LEN + + connect_attrs_len + 9 /* for the length of the attrs */); + + end= strmake(buff, mysql->user, USERNAME_LENGTH) + 1; + + if (!data_len) + *end++= 0; + else + { + DBUG_ASSERT(data_len <= 255); + if (data_len > 255) + { + set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); + goto error; + } + *end++= data_len; + memcpy(end, data, data_len); + end+= data_len; + } + end= strmake(end, mpvio->db ? mpvio->db : "", NAME_LEN) + 1; + + if (mysql->server_capabilities & CLIENT_PROTOCOL_41) + { + int2store((uchar*) end, (ushort) mysql->charset->number); + end+= 2; + } + + if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH) + end= strmake(end, mpvio->plugin->name, NAME_LEN) + 1; + + end= (char *) send_client_connect_attrs(mysql, (uchar *) end); + + res= simple_command(mysql, COM_CHANGE_USER, + (uchar*)buff, (ulong)(end-buff), 1); + +error: + return res; +} + +/** + Fill in the beginning of the client reply packet. + + Used to fill in the beginning of the client reply packet + or the ssl request packet. + + @param mysql The mysql handler to operate + @param[out] buff The buffer to receive the packet + @param buff_size The max size of the buffer. Used in debug only. + @return one past to where the buffer is filled + +*/ +static char * +mysql_fill_packet_header(MYSQL *mysql, char *buff, + size_t buff_size MY_ATTRIBUTE((unused))) +{ + NET *net= &mysql->net; + char *end; + uchar *buff_p= (uchar*) buff; + (void)buff_size; /* avoid warnings */ + + if (mysql->client_flag & CLIENT_PROTOCOL_41) + { + /* 4.1 server and 4.1 client has a 32 byte option flag */ + DBUG_ASSERT(buff_size >= 32); + + int4store(buff_p, mysql->client_flag); + int4store(buff_p + 4, net->max_packet_size); + buff[8]= (char) mysql->charset->number; + memset(buff + 9, 0, 32 - 9); + end= buff + 32; + } + else + { + DBUG_ASSERT(buff_size >= 5); + DBUG_ASSERT(mysql->client_flag <= UINT_MAX16); + + int2store(buff_p, (uint16) mysql->client_flag); + int3store(buff_p + 2, net->max_packet_size); + end= buff + 5; + } + return end; +} + + +/** + Calcualtes client capabilities in effect (mysql->client_flag) + + Needs to be called immediately after receiving the server handshake packet. + + @param mysql the connection context + @param db The database specified by the client app + @param db The client flag as specified by the client app + */ + +static void +cli_calculate_client_flag(MYSQL *mysql, const char *db, ulong client_flag) +{ + mysql->client_flag= client_flag; + mysql->client_flag|= mysql->options.client_flag; + mysql->client_flag|= CLIENT_CAPABILITIES; + + if (mysql->client_flag & CLIENT_MULTI_STATEMENTS) + mysql->client_flag|= CLIENT_MULTI_RESULTS; + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + if (mysql->options.extension && + mysql->options.extension->ssl_mode != SSL_MODE_DISABLED) + mysql->client_flag |= CLIENT_SSL; +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY*/ + + if (db) + mysql->client_flag|= CLIENT_CONNECT_WITH_DB; + else + mysql->client_flag&= ~CLIENT_CONNECT_WITH_DB; + + /* Remove options that server doesn't support */ + mysql->client_flag= mysql->client_flag & + (~(CLIENT_COMPRESS | CLIENT_SSL | CLIENT_PROTOCOL_41) + | mysql->server_capabilities); + + if(mysql->options.protocol == MYSQL_PROTOCOL_SOCKET && + mysql->options.extension && + mysql->options.extension->ssl_mode <= SSL_MODE_PREFERRED) + { + mysql->client_flag&= ~CLIENT_SSL; + mysql->options.extension->ssl_mode= SSL_MODE_DISABLED; + } +#ifndef HAVE_COMPRESS + mysql->client_flag&= ~CLIENT_COMPRESS; +#endif +} + + +/** +Establishes SSL if requested and supported. + +@param mysql the connection handle +@retval 0 success +@retval 1 failure +*/ +static int +cli_establish_ssl(MYSQL *mysql) +{ +#ifdef HAVE_OPENSSL + NET *net= &mysql->net; + + /* Don't fallback on unencrypted connection if SSL required. */ + if (mysql->options.extension && + mysql->options.extension->ssl_mode >= SSL_MODE_REQUIRED && + !(mysql->server_capabilities & CLIENT_SSL)) + { + set_mysql_extended_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate, + ER(CR_SSL_CONNECTION_ERROR), + "SSL is required but the server doesn't " + "support it"); + goto error; + } + + /* + If the ssl_mode is VERIFY_CA or VERIFY_IDENTITY, make sure that the + connection doesn't succeed without providing the CA certificate. + */ + if (mysql->options.extension && + mysql->options.extension->ssl_mode > SSL_MODE_REQUIRED && + !(mysql->options.ssl_ca || mysql->options.ssl_capath)) + { + set_mysql_extended_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate, + ER(CR_SSL_CONNECTION_ERROR), + "CA certificate is required if ssl-mode " + "is VERIFY_CA or VERIFY_IDENTITY"); + goto error; + } + + /* + Attempt SSL connection if ssl_mode != SSL_MODE_DISABLED and the + server supports SSL. Fallback on unencrypted connection otherwise. + */ + if (mysql->options.extension && + mysql->options.extension->ssl_mode != SSL_MODE_DISABLED && + (mysql->server_capabilities & CLIENT_SSL)) + { + /* Do the SSL layering. */ + struct st_mysql_options *options= &mysql->options; + struct st_VioSSLFd *ssl_fd; + enum enum_ssl_init_error ssl_init_error; + const char *cert_error; + unsigned long ssl_error; + char buff[33], *end; + + end= mysql_fill_packet_header(mysql, buff, sizeof(buff)); + + /* + Send mysql->client_flag, max_packet_size - unencrypted otherwise + the server does not know we want to do SSL + */ + MYSQL_TRACE(SEND_SSL_REQUEST, mysql, (end - buff, (const unsigned char*) buff)); + if (my_net_write(net, (uchar*) buff, (size_t) (end - buff)) || net_flush(net)) + { + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "sending connection information to server", + errno); + goto error; + } + + MYSQL_TRACE_STAGE(mysql, SSL_NEGOTIATION); + + /* Create the VioSSLConnectorFd - init SSL and load certs */ + if (!(ssl_fd= new_VioSSLConnectorFd(options->ssl_key, + options->ssl_cert, + options->ssl_ca, + options->ssl_capath, + options->ssl_cipher, + &ssl_init_error, + options->extension ? + options->extension->ssl_crl : NULL, + options->extension ? + options->extension->ssl_crlpath : NULL, + options->extension ? + options->extension->ssl_ctx_flags : 0))) + { + set_mysql_extended_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate, + ER(CR_SSL_CONNECTION_ERROR), sslGetErrString(ssl_init_error)); + goto error; + } + mysql->connector_fd= (unsigned char *) ssl_fd; + + /* Connect to the server */ + DBUG_PRINT("info", ("IO layer change in progress...")); + MYSQL_TRACE(SSL_CONNECT, mysql, ()); + if (sslconnect(ssl_fd, net->vio, + (long) (mysql->options.connect_timeout), &ssl_error)) + { + char buf[512]; + ERR_error_string_n(ssl_error, buf, 512); + buf[511]= 0; + set_mysql_extended_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate, + ER(CR_SSL_CONNECTION_ERROR), + buf); + goto error; + } + DBUG_PRINT("info", ("IO layer change done!")); + + /* Verify server cert */ + if ((mysql->client_flag & CLIENT_SSL_VERIFY_SERVER_CERT) && + ssl_verify_server_cert(net->vio, mysql->host, &cert_error)) + { + set_mysql_extended_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate, + ER(CR_SSL_CONNECTION_ERROR), cert_error); + goto error; + } + + MYSQL_TRACE(SSL_CONNECTED, mysql, ()); + MYSQL_TRACE_STAGE(mysql, AUTHENTICATE); + } + + return 0; + +error: + return 1; + +#else + (void)mysql; /* avoid warning */ + +#endif /* HAVE_OPENSSL */ + return 0; +} + + +#define MAX_CONNECTION_ATTR_STORAGE_LENGTH 65536 + +/** + sends a client authentication packet (second packet in the 3-way handshake) + + Packet format (when the server is 4.0 or earlier): + + Bytes Content + ----- ---- + 2 client capabilities + 3 max packet size + n user name, \0-terminated + 9 scramble_323, \0-terminated + + Packet format (when the server is 4.1 or newer): + + Bytes Content + ----- ---- + 4 client capabilities + 4 max packet size + 1 charset number + 23 reserved (always 0) + n user name, \0-terminated + n plugin auth data (e.g. scramble), length encoded + n database name, \0-terminated + (if CLIENT_CONNECT_WITH_DB is set in the capabilities) + n client auth plugin name - \0-terminated string, + (if CLIENT_PLUGIN_AUTH is set in the capabilities) + + @retval 0 ok + @retval 1 error +*/ +static int send_client_reply_packet(MCPVIO_EXT *mpvio, + const uchar *data, int data_len) +{ + MYSQL *mysql= mpvio->mysql; + NET *net= &mysql->net; + char *buff, *end; + size_t buff_size; + size_t connect_attrs_len= + (mysql->server_capabilities & CLIENT_CONNECT_ATTRS && + mysql->options.extension) ? + mysql->options.extension->connection_attributes_length : 0; + + DBUG_ASSERT(connect_attrs_len < MAX_CONNECTION_ATTR_STORAGE_LENGTH); + + + /* + Fixed size of the packet is 32 bytes. See mysql_fill_packet_header. + +9 because data is a length encoded binary where meta data size is max 9. + */ + buff_size= 33 + USERNAME_LENGTH + data_len + 9 + NAME_LEN + NAME_LEN + connect_attrs_len + 9; + buff= my_alloca(buff_size); + + /* The client_flags is already calculated. Just fill in the packet header */ + end= mysql_fill_packet_header(mysql, buff, buff_size); + + DBUG_PRINT("info",("Server version = '%s' capabilites: %lu status: %u client_flag: %lu", + mysql->server_version, mysql->server_capabilities, + mysql->server_status, mysql->client_flag)); + + compile_time_assert(MYSQL_USERNAME_LENGTH == USERNAME_LENGTH); + + /* This needs to be changed as it's not useful with big packets */ + if (mysql->user[0]) + strmake(end, mysql->user, USERNAME_LENGTH); + else + read_user_name(end); + + /* We have to handle different version of handshake here */ + DBUG_PRINT("info",("user: %s",end)); + end= strend(end) + 1; + if (data_len) + { + /* + Since the older versions of server do not have + CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA capability, + a check is performed on this before sending auth data. + If lenenc support is not available, the data is sent + in the format of first byte representing the length of + the string followed by the actual string. + */ + if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA) + end= write_length_encoded_string4(end, (char *) (buff + buff_size), + (char *) data, + (char *) (data + data_len)); + else + end= write_string(end, (char *) (buff + buff_size), + (char *) data, + (char *) (data + data_len)); + if (end == NULL) + goto error; + } + else + *end++= 0; + + /* Add database if needed */ + if (mpvio->db && (mysql->server_capabilities & CLIENT_CONNECT_WITH_DB)) + { + end= strmake(end, mpvio->db, NAME_LEN) + 1; + mysql->db= my_strdup(key_memory_MYSQL, + mpvio->db, MYF(MY_WME)); + } + + if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH) + end= strmake(end, mpvio->plugin->name, NAME_LEN) + 1; + + end= (char *) send_client_connect_attrs(mysql, (uchar *) end); + + /* Write authentication package */ + MYSQL_TRACE(SEND_AUTH_RESPONSE, mysql, (end-buff, (const unsigned char*)buff)); + if (my_net_write(net, (uchar*) buff, (size_t) (end-buff)) || net_flush(net)) + { + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "sending authentication information", + errno); + goto error; + } + MYSQL_TRACE(PACKET_SENT, mysql, (end-buff)); + return 0; + +error: + return 1; +} + +/** + vio->read_packet() callback method for client authentication plugins + + This function is called by a client authentication plugin, when it wants + to read data from the server. +*/ +static int client_mpvio_read_packet(struct st_plugin_vio *mpv, uchar **buf) +{ + MCPVIO_EXT *mpvio= (MCPVIO_EXT*)mpv; + MYSQL *mysql= mpvio->mysql; + ulong pkt_len; + + /* there are cached data left, feed it to a plugin */ + if (mpvio->cached_server_reply.pkt) + { + *buf= mpvio->cached_server_reply.pkt; + mpvio->cached_server_reply.pkt= 0; + mpvio->packets_read++; + return mpvio->cached_server_reply.pkt_len; + } + + if (mpvio->packets_read == 0) + { + /* + the server handshake packet came from the wrong plugin, + or it's mysql_change_user(). Either way, there is no data + for a plugin to read. send a dummy packet to the server + to initiate a dialog. + */ + if (client_mpvio_write_packet(mpv, 0, 0)) + return (int)packet_error; + } + + /* otherwise read the data */ + pkt_len= (*mysql->methods->read_change_user_result)(mysql); + mpvio->last_read_packet_len= pkt_len; + *buf= mysql->net.read_pos; + + /* was it a request to change plugins ? */ + if (**buf == 254) + return (int)packet_error; /* if yes, this plugin shan't continue */ + + /* + the server sends \1\255 or \1\254 instead of just \255 or \254 - + for us to not confuse it with an error or "change plugin" packets. + We remove this escaping \1 here. + + See also server_mpvio_write_packet() where the escaping is done. + */ + if (pkt_len && **buf == 1) + { + (*buf)++; + pkt_len--; + } + mpvio->packets_read++; + return pkt_len; +} + +/** + vio->write_packet() callback method for client authentication plugins + + This function is called by a client authentication plugin, when it wants + to send data to the server. + + It transparently wraps the data into a change user or authentication + handshake packet, if neccessary. +*/ +static int client_mpvio_write_packet(struct st_plugin_vio *mpv, + const uchar *pkt, int pkt_len) +{ + int res; + MCPVIO_EXT *mpvio= (MCPVIO_EXT*)mpv; + + if (mpvio->packets_written == 0) + { + if (mpvio->mysql_change_user) + res= send_change_user_packet(mpvio, pkt, pkt_len); + else + res= send_client_reply_packet(mpvio, pkt, pkt_len); + } + else + { + NET *net= &mpvio->mysql->net; + + MYSQL_TRACE(SEND_AUTH_DATA, mpvio->mysql, (pkt_len, pkt)); + + if (mpvio->mysql->thd) + res= 1; /* no chit-chat in embedded */ + else + res= my_net_write(net, pkt, pkt_len) || net_flush(net); + + if (!res) + { + MYSQL_TRACE(PACKET_SENT, mpvio->mysql, (pkt_len)); + } + else + set_mysql_extended_error(mpvio->mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "sending authentication information", + errno); + } + mpvio->packets_written++; + return res; +} + +/** + fills MYSQL_PLUGIN_VIO_INFO structure with the information about the + connection +*/ +void mpvio_info(Vio *vio, MYSQL_PLUGIN_VIO_INFO *info) +{ + memset(info, 0, sizeof(*info)); + switch (vio->type) { + case VIO_TYPE_TCPIP: + info->protocol= MYSQL_VIO_TCP; + info->socket= (int)vio_fd(vio); + return; + case VIO_TYPE_SOCKET: + info->protocol= MYSQL_VIO_SOCKET; + info->socket= (int)vio_fd(vio); + return; + case VIO_TYPE_SSL: + { + struct sockaddr addr; + socklen_t addrlen= sizeof(addr); + if (getsockname(vio_fd(vio), &addr, &addrlen)) + return; + info->protocol= addr.sa_family == AF_UNIX ? + MYSQL_VIO_SOCKET : MYSQL_VIO_TCP; + info->socket= (int)vio_fd(vio); + return; + } +#ifdef _WIN32 + case VIO_TYPE_NAMEDPIPE: + info->protocol= MYSQL_VIO_PIPE; + info->handle= vio->hPipe; + return; +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + case VIO_TYPE_SHARED_MEMORY: + info->protocol= MYSQL_VIO_MEMORY; + info->handle= vio->handle_file_map; /* or what ? */ + return; +#endif +#endif + default: DBUG_ASSERT(0); + } +} + +static void client_mpvio_info(MYSQL_PLUGIN_VIO *vio, + MYSQL_PLUGIN_VIO_INFO *info) +{ + MCPVIO_EXT *mpvio= (MCPVIO_EXT*)vio; + mpvio_info(mpvio->mysql->net.vio, info); +} + + +my_bool libmysql_cleartext_plugin_enabled= 0; + +static my_bool check_plugin_enabled(MYSQL *mysql, auth_plugin_t *plugin) +{ + if (plugin == &clear_password_client_plugin && + (!libmysql_cleartext_plugin_enabled && + (!mysql->options.extension || + !mysql->options.extension->enable_cleartext_plugin))) + { + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, + unknown_sqlstate, + ER(CR_AUTH_PLUGIN_CANNOT_LOAD), + clear_password_client_plugin.name, + "plugin not enabled"); + return TRUE; + } + return FALSE; +} + + +/** + Client side of the plugin driver authentication. + + @note this is used by both the mysql_real_connect and mysql_change_user + + @param mysql mysql + @param data pointer to the plugin auth data (scramble) in the + handshake packet + @param data_len the length of the data + @param data_plugin a plugin that data were prepared for + or 0 if it's mysql_change_user() + @param db initial db to use, can be 0 + + @retval 0 ok + @retval 1 error +*/ +int run_plugin_auth(MYSQL *mysql, char *data, uint data_len, + const char *data_plugin, const char *db) +{ + const char *auth_plugin_name; + auth_plugin_t *auth_plugin; + MCPVIO_EXT mpvio; + ulong pkt_length; + int res; + + DBUG_ENTER ("run_plugin_auth"); + /* determine the default/initial plugin to use */ + if (mysql->options.extension && mysql->options.extension->default_auth && + mysql->server_capabilities & CLIENT_PLUGIN_AUTH) + { + auth_plugin_name= mysql->options.extension->default_auth; + if (!(auth_plugin= (auth_plugin_t*) mysql_client_find_plugin(mysql, + auth_plugin_name, MYSQL_CLIENT_AUTHENTICATION_PLUGIN))) + DBUG_RETURN (1); /* oops, not found */ + } + else + { + auth_plugin= &native_password_client_plugin; + auth_plugin_name= auth_plugin->name; + } + + if (check_plugin_enabled(mysql, auth_plugin)) + DBUG_RETURN(1); + + DBUG_PRINT ("info", ("using plugin %s", auth_plugin_name)); + + mysql->net.last_errno= 0; /* just in case */ + + if (data_plugin && strcmp(data_plugin, auth_plugin_name)) + { + /* data was prepared for a different plugin, don't show it to this one */ + data= 0; + data_len= 0; + } + + mpvio.mysql_change_user= data_plugin == 0; + mpvio.cached_server_reply.pkt= (uchar*)data; + mpvio.cached_server_reply.pkt_len= data_len; + mpvio.read_packet= client_mpvio_read_packet; + mpvio.write_packet= client_mpvio_write_packet; + mpvio.info= client_mpvio_info; + mpvio.mysql= mysql; + mpvio.packets_read= mpvio.packets_written= 0; + mpvio.db= db; + mpvio.plugin= auth_plugin; + + MYSQL_TRACE(AUTH_PLUGIN, mysql, (auth_plugin->name)); + + res= auth_plugin->authenticate_user((struct st_plugin_vio *)&mpvio, mysql); + DBUG_PRINT ("info", ("authenticate_user returned %s", + res == CR_OK ? "CR_OK" : + res == CR_ERROR ? "CR_ERROR" : + res == CR_OK_HANDSHAKE_COMPLETE ? + "CR_OK_HANDSHAKE_COMPLETE" : "error")); + + compile_time_assert(CR_OK == -1); + compile_time_assert(CR_ERROR == 0); + + /* + The connection may be closed. If so: do not try to read from the buffer. + */ + if (res > CR_OK && + (!my_net_is_inited(&mysql->net) || mysql->net.read_pos[0] != 254)) + { + /* + the plugin returned an error. write it down in mysql, + unless the error code is CR_ERROR and mysql->net.last_errno + is already set (the plugin has done it) + */ + DBUG_PRINT ("info", ("res=%d", res)); + if (res > CR_ERROR) + set_mysql_error(mysql, res, unknown_sqlstate); + else + if (!mysql->net.last_errno) + set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); + DBUG_RETURN (1); + } + + /* read the OK packet (or use the cached value in mysql->net.read_pos */ + if (res == CR_OK) + pkt_length= (*mysql->methods->read_change_user_result)(mysql); + else /* res == CR_OK_HANDSHAKE_COMPLETE */ + pkt_length= mpvio.last_read_packet_len; + + DBUG_PRINT ("info", ("OK packet length=%lu", pkt_length)); + if (pkt_length == packet_error) + { + if (mysql->net.last_errno == CR_SERVER_LOST) + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "reading authorization packet", + errno); + DBUG_RETURN (1); + } + + if (mysql->net.read_pos[0] == 254) + { + /* The server asked to use a different authentication plugin */ + if (pkt_length < 2) + { + set_mysql_error(mysql, CR_MALFORMED_PACKET, + unknown_sqlstate); /* purecov: inspected */ + DBUG_RETURN(1); + } + else + { + /* "use different plugin" packet */ + uint len; + auth_plugin_name= (char*)mysql->net.read_pos + 1; + len= (uint)strlen(auth_plugin_name); /* safe as my_net_read always appends \0 */ + mpvio.cached_server_reply.pkt_len= pkt_length - len - 2; + mpvio.cached_server_reply.pkt= mysql->net.read_pos + len + 2; + DBUG_PRINT ("info", ("change plugin packet from server for plugin %s", + auth_plugin_name)); + } + + if (!(auth_plugin= (auth_plugin_t *) mysql_client_find_plugin(mysql, + auth_plugin_name, MYSQL_CLIENT_AUTHENTICATION_PLUGIN))) + DBUG_RETURN (1); + + if (check_plugin_enabled(mysql, auth_plugin)) + DBUG_RETURN(1); + + MYSQL_TRACE(AUTH_PLUGIN, mysql, (auth_plugin->name)); + + mpvio.plugin= auth_plugin; + res= auth_plugin->authenticate_user((struct st_plugin_vio *)&mpvio, mysql); + + DBUG_PRINT ("info", ("second authenticate_user returned %s", + res == CR_OK ? "CR_OK" : + res == CR_ERROR ? "CR_ERROR" : + res == CR_OK_HANDSHAKE_COMPLETE ? + "CR_OK_HANDSHAKE_COMPLETE" : "error")); + if (res > CR_OK) + { + if (res > CR_ERROR) + set_mysql_error(mysql, res, unknown_sqlstate); + else + if (!mysql->net.last_errno) + set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); + DBUG_RETURN (1); + } + + if (res != CR_OK_HANDSHAKE_COMPLETE) + { + /* Read what server thinks about out new auth message report */ + if (cli_safe_read(mysql, NULL) == packet_error) + { + if (mysql->net.last_errno == CR_SERVER_LOST) + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "reading final connect information", + errno); + DBUG_RETURN (1); + } + } + } + /* + net->read_pos[0] should always be 0 here if the server implements + the protocol correctly + */ + res= (mysql->net.read_pos[0] != 0); + + MYSQL_TRACE(AUTHENTICATED, mysql, ()); + DBUG_RETURN(res); +} + + +/** set some default attributes */ +static int +set_connect_attributes(MYSQL *mysql, char *buff, size_t buf_len) +{ + int rc= 0; + + /* + Clean up any values set by the client code. We want these options as + consistent as possible + */ + rc+= mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "_client_name"); + rc+= mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "_os"); + rc+= mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "_platform"); + rc+= mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "_pid"); + rc+= mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "_thread"); + rc+= mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "_client_version"); + + /* + Now let's set up some values + */ + rc+= mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, + "_client_name", "libmysql"); + rc+= mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, + "_client_version", PACKAGE_VERSION); + rc+= mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, + "_os", SYSTEM_TYPE); + rc+= mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, + "_platform", MACHINE_TYPE); +#ifdef _WIN32 + my_snprintf(buff, buf_len, "%lu", (ulong) GetCurrentProcessId()); +#else + my_snprintf(buff, buf_len, "%lu", (ulong) getpid()); +#endif + rc+= mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "_pid", buff); + +#ifdef _WIN32 + my_snprintf(buff, buf_len, "%lu", (ulong) GetCurrentThreadId()); + rc+= mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "_thread", buff); +#endif + + return rc > 0 ? 1 : 0; +} + + +MYSQL * STDCALL +CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, + const char *passwd, const char *db, + uint port, const char *unix_socket,ulong client_flag) +{ + char buff[NAME_LEN+USERNAME_LENGTH+100]; + int scramble_data_len, pkt_scramble_len= 0; + char *end,*host_info= 0, *server_version_end, *pkt_end; + char *scramble_data; + char *scramble_buffer= NULL; + const char *scramble_plugin; + ulong pkt_length; + NET *net= &mysql->net; + my_bool scramble_buffer_allocated= FALSE; +#ifdef _WIN32 + HANDLE hPipe=INVALID_HANDLE_VALUE; +#endif +#ifdef HAVE_SYS_UN_H + struct sockaddr_un UNIXaddr; +#endif + DBUG_ENTER("mysql_real_connect"); + + DBUG_PRINT("enter",("host: %s db: %s user: %s (client)", + host ? host : "(Null)", + db ? db : "(Null)", + user ? user : "(Null)")); + + /* Test whether we're already connected */ + if (net->vio) + { + set_mysql_error(mysql, CR_ALREADY_CONNECTED, unknown_sqlstate); + DBUG_RETURN(0); + } + + if (set_connect_attributes(mysql, buff, sizeof(buff))) + DBUG_RETURN(0); + + mysql->methods= &client_methods; + net->vio = 0; /* If something goes wrong */ + mysql->client_flag=0; /* For handshake */ + + /* use default options */ + if (mysql->options.my_cnf_file || mysql->options.my_cnf_group) + { + mysql_read_default_options(&mysql->options, + (mysql->options.my_cnf_file ? + mysql->options.my_cnf_file : "my"), + mysql->options.my_cnf_group); + my_free(mysql->options.my_cnf_file); + my_free(mysql->options.my_cnf_group); + mysql->options.my_cnf_file=mysql->options.my_cnf_group=0; + } + + /* Some empty-string-tests are done because of ODBC */ + if (!host || !host[0]) + host=mysql->options.host; + if (!user || !user[0]) + { + user=mysql->options.user; + if (!user) + user= ""; + } + if (!passwd) + { + passwd=mysql->options.password; +#if !defined(MYSQL_SERVER) + if (!passwd) + passwd=getenv("MYSQL_PWD"); /* get it from environment */ +#endif + if (!passwd) + passwd= ""; + } + if (!db || !db[0]) + db=mysql->options.db; + if (!port) + port=mysql->options.port; + if (!unix_socket) + unix_socket=mysql->options.unix_socket; + + mysql->server_status=SERVER_STATUS_AUTOCOMMIT; + DBUG_PRINT("info", ("Connecting")); + + MYSQL_TRACE_STAGE(mysql, CONNECTING); + MYSQL_TRACE(CONNECTING, mysql, ()); + + /* + Part 0: Grab a socket and connect it to the server + */ +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + if ((!mysql->options.protocol || + mysql->options.protocol == MYSQL_PROTOCOL_MEMORY) && + (!host || !strcmp(host,LOCAL_HOST))) + { + HANDLE handle_map; + DBUG_PRINT("info", ("Using shared memory")); + + handle_map= create_shared_memory(mysql, net, + get_win32_connect_timeout(mysql)); + + if (handle_map == INVALID_HANDLE_VALUE) + { + DBUG_PRINT("error", + ("host: '%s' socket: '%s' shared memory: %s have_tcpip: %d", + host ? host : "", + unix_socket ? unix_socket : "", + (int) mysql->options.shared_memory_base_name, + (int) have_tcpip)); + if (mysql->options.protocol == MYSQL_PROTOCOL_MEMORY) + goto error; + + /* + Try also with PIPE or TCP/IP. Clear the error from + create_shared_memory(). + */ + + net_clear_error(net); + } + else + { + mysql->options.protocol=MYSQL_PROTOCOL_MEMORY; + unix_socket = 0; + host=mysql->options.shared_memory_base_name; + my_snprintf(host_info=buff, sizeof(buff)-1, + ER(CR_SHARED_MEMORY_CONNECTION), host); + } + } +#endif /* _WIN32 && !EMBEDDED_LIBRARY */ +#if defined(HAVE_SYS_UN_H) + if (!net->vio && + (!mysql->options.protocol || + mysql->options.protocol == MYSQL_PROTOCOL_SOCKET) && + (unix_socket || mysql_unix_port) && + (!host || !strcmp(host,LOCAL_HOST))) + { + my_socket sock= socket(AF_UNIX, SOCK_STREAM, 0); + DBUG_PRINT("info", ("Using socket")); + if (sock == SOCKET_ERROR) + { + set_mysql_extended_error(mysql, CR_SOCKET_CREATE_ERROR, + unknown_sqlstate, + ER(CR_SOCKET_CREATE_ERROR), + socket_errno); + goto error; + } + + net->vio= vio_new(sock, VIO_TYPE_SOCKET, + VIO_LOCALHOST | VIO_BUFFERED_READ); + if (!net->vio) + { + DBUG_PRINT("error",("Unknow protocol %d ", mysql->options.protocol)); + set_mysql_error(mysql, CR_CONN_UNKNOW_PROTOCOL, unknown_sqlstate); + closesocket(sock); + goto error; + } + + host= LOCAL_HOST; + if (!unix_socket) + unix_socket= mysql_unix_port; + host_info= (char*) ER(CR_LOCALHOST_CONNECTION); + DBUG_PRINT("info", ("Using UNIX sock '%s'", unix_socket)); + + memset(&UNIXaddr, 0, sizeof(UNIXaddr)); + UNIXaddr.sun_family= AF_UNIX; + strmake(UNIXaddr.sun_path, unix_socket, sizeof(UNIXaddr.sun_path)-1); + + if (vio_socket_connect(net->vio, (struct sockaddr *) &UNIXaddr, + sizeof(UNIXaddr), get_vio_connect_timeout(mysql))) + { + DBUG_PRINT("error",("Got error %d on connect to local server", + socket_errno)); + set_mysql_extended_error(mysql, CR_CONNECTION_ERROR, + unknown_sqlstate, + ER(CR_CONNECTION_ERROR), + unix_socket, socket_errno); + vio_delete(net->vio); + net->vio= 0; + goto error; + } + mysql->options.protocol=MYSQL_PROTOCOL_SOCKET; + } +#elif defined(_WIN32) + if (!net->vio && + (mysql->options.protocol == MYSQL_PROTOCOL_PIPE || + (host && !strcmp(host,LOCAL_HOST_NAMEDPIPE)) || + (! have_tcpip && (unix_socket || !host && is_NT())))) + { + hPipe= create_named_pipe(mysql, get_win32_connect_timeout(mysql), + &host, &unix_socket); + + if (hPipe == INVALID_HANDLE_VALUE) + { + DBUG_PRINT("error", + ("host: '%s' socket: '%s' have_tcpip: %d", + host ? host : "", + unix_socket ? unix_socket : "", + (int) have_tcpip)); + if (mysql->options.protocol == MYSQL_PROTOCOL_PIPE || + (host && !strcmp(host,LOCAL_HOST_NAMEDPIPE)) || + (unix_socket && !strcmp(unix_socket,MYSQL_NAMEDPIPE))) + goto error; + /* Try also with TCP/IP */ + } + else + { + net->vio= vio_new_win32pipe(hPipe); + my_snprintf(host_info=buff, sizeof(buff)-1, + ER(CR_NAMEDPIPE_CONNECTION), unix_socket); + } + } +#endif + DBUG_PRINT("info", ("net->vio: %p protocol: %d", + net->vio, mysql->options.protocol)); + if (!net->vio && + (!mysql->options.protocol || + mysql->options.protocol == MYSQL_PROTOCOL_TCP)) + { + struct addrinfo *res_lst, *client_bind_ai_lst= NULL, hints, *t_res; + char port_buf[NI_MAXSERV]; + my_socket sock= SOCKET_ERROR; + int gai_errno, saved_error= 0, status= -1, bind_result= 0; + uint flags= VIO_BUFFERED_READ; + + unix_socket=0; /* This is not used */ + + if (!port) + port= mysql_port; + + if (!host) + host= LOCAL_HOST; + + my_snprintf(host_info=buff, sizeof(buff)-1, ER(CR_TCP_CONNECTION), host); + DBUG_PRINT("info",("Server name: '%s'. TCP sock: %d", host, port)); + + memset(&hints, 0, sizeof(hints)); + hints.ai_socktype= SOCK_STREAM; + hints.ai_protocol= IPPROTO_TCP; + hints.ai_family= AF_UNSPEC; + + DBUG_PRINT("info",("IPV6 getaddrinfo %s", host)); + my_snprintf(port_buf, NI_MAXSERV, "%d", port); + gai_errno= getaddrinfo(host, port_buf, &hints, &res_lst); + + if (gai_errno != 0) + { + /* + For DBUG we are keeping the right message but for client we default to + historical error message. + */ + DBUG_PRINT("info",("IPV6 getaddrinfo error %d", gai_errno)); + set_mysql_extended_error(mysql, CR_UNKNOWN_HOST, unknown_sqlstate, + ER(CR_UNKNOWN_HOST), host, errno); + + goto error; + } + + /* Get address info for client bind name if it is provided */ + if (mysql->options.ci.bind_address) + { + int bind_gai_errno= 0; + + DBUG_PRINT("info",("Resolving addresses for client bind: '%s'", + mysql->options.ci.bind_address)); + /* Lookup address info for name */ + bind_gai_errno= getaddrinfo(mysql->options.ci.bind_address, 0, + &hints, &client_bind_ai_lst); + if (bind_gai_errno) + { + DBUG_PRINT("info",("client bind getaddrinfo error %d", bind_gai_errno)); + set_mysql_extended_error(mysql, CR_UNKNOWN_HOST, unknown_sqlstate, + ER(CR_UNKNOWN_HOST), + mysql->options.ci.bind_address, + bind_gai_errno); + + freeaddrinfo(res_lst); + goto error; + } + DBUG_PRINT("info", (" got address info for client bind name")); + } + + /* + A hostname might map to multiple IP addresses (IPv4/IPv6). Go over the + list of IP addresses until a successful connection can be established. + For each IP address, attempt to bind the socket to each client address + for the client-side bind hostname until the bind is successful. + */ + DBUG_PRINT("info", ("Try connect on all addresses for host.")); + for (t_res= res_lst; t_res; t_res= t_res->ai_next) + { + DBUG_PRINT("info", ("Create socket, family: %d type: %d proto: %d", + t_res->ai_family, t_res->ai_socktype, + t_res->ai_protocol)); + + sock= socket(t_res->ai_family, t_res->ai_socktype, t_res->ai_protocol); + if (sock == SOCKET_ERROR) + { + DBUG_PRINT("info", ("Socket created was invalid")); + /* Try next address if there is one */ + saved_error= socket_errno; + continue; + } + + if (client_bind_ai_lst) + { + struct addrinfo* curr_bind_ai= NULL; + DBUG_PRINT("info", ("Attempting to bind socket to bind address(es)")); + + /* + We'll attempt to bind to each of the addresses returned, until + we find one that works. + If none works, we'll try the next destination host address + (if any) + */ + curr_bind_ai= client_bind_ai_lst; + + while (curr_bind_ai != NULL) + { + /* Attempt to bind the socket to the given address */ + bind_result= bind(sock, + curr_bind_ai->ai_addr, + curr_bind_ai->ai_addrlen); + if (!bind_result) + break; /* Success */ + + DBUG_PRINT("info", ("bind failed, attempting another bind address")); + /* Problem with the bind, move to next address if present */ + curr_bind_ai= curr_bind_ai->ai_next; + } + + if (bind_result) + { + /* + Could not bind to any client-side address with this destination + Try the next destination address (if any) + */ + DBUG_PRINT("info", ("All bind attempts with this address failed")); + saved_error= socket_errno; + closesocket(sock); + continue; + } + DBUG_PRINT("info", ("Successfully bound client side of socket")); + } + + /* Create a new Vio object to abstract the socket. */ + if (!net->vio) + { + if (!(net->vio= vio_new(sock, VIO_TYPE_TCPIP, flags))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + closesocket(sock); + freeaddrinfo(res_lst); + if (client_bind_ai_lst) + freeaddrinfo(client_bind_ai_lst); + goto error; + } + } + /* Just reinitialize if one is already allocated. */ + else if (vio_reset(net->vio, VIO_TYPE_TCPIP, sock, NULL, flags)) + { + set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); + closesocket(sock); + freeaddrinfo(res_lst); + if (client_bind_ai_lst) + freeaddrinfo(client_bind_ai_lst); + goto error; + } + + DBUG_PRINT("info", ("Connect socket")); + status= vio_socket_connect(net->vio, t_res->ai_addr, + (socklen_t)t_res->ai_addrlen, + get_vio_connect_timeout(mysql)); + /* + Here we rely on vio_socket_connect() to return success only if + the connect attempt was really successful. Otherwise we would + stop trying another address, believing we were successful. + */ + if (!status) + break; + + /* + Save either the socket error status or the error code of + the failed vio_connection operation. It is necessary to + avoid having it overwritten by later operations. + */ + saved_error= socket_errno; + + DBUG_PRINT("info", ("No success, try next address.")); + } + DBUG_PRINT("info", + ("End of connect attempts, sock: %d status: %d error: %d", + sock, status, saved_error)); + + freeaddrinfo(res_lst); + if (client_bind_ai_lst) + freeaddrinfo(client_bind_ai_lst); + + if (sock == SOCKET_ERROR) + { + set_mysql_extended_error(mysql, CR_IPSOCK_ERROR, unknown_sqlstate, + ER(CR_IPSOCK_ERROR), saved_error); + goto error; + } + + if (status) + { + DBUG_PRINT("error",("Got error %d on connect to '%s'", saved_error, host)); + set_mysql_extended_error(mysql, CR_CONN_HOST_ERROR, unknown_sqlstate, + ER(CR_CONN_HOST_ERROR), host, saved_error); + goto error; + } + } + + DBUG_PRINT("info", ("net->vio: %p", net->vio)); + if (!net->vio) + { + DBUG_PRINT("error",("Unknow protocol %d ",mysql->options.protocol)); + set_mysql_error(mysql, CR_CONN_UNKNOW_PROTOCOL, unknown_sqlstate); + goto error; + } + + if (my_net_init(net, net->vio)) + { + vio_delete(net->vio); + net->vio = 0; + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + goto error; + } + vio_keepalive(net->vio,TRUE); + + /* If user set read_timeout, let it override the default */ + if (mysql->options.read_timeout) + my_net_set_read_timeout(net, mysql->options.read_timeout); + + /* If user set write_timeout, let it override the default */ + if (mysql->options.write_timeout) + my_net_set_write_timeout(net, mysql->options.write_timeout); + + if (mysql->options.max_allowed_packet) + net->max_packet_size= mysql->options.max_allowed_packet; + + MYSQL_TRACE(CONNECTED, mysql, ()); + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_INIT_PACKET); + + /* Get version info */ + mysql->protocol_version= PROTOCOL_VERSION; /* Assume this */ + if (mysql->options.connect_timeout && + (vio_io_wait(net->vio, VIO_IO_EVENT_READ, + get_vio_connect_timeout(mysql)) < 1)) + { + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "waiting for initial communication packet", + socket_errno); + goto error; + } + + /* + Part 1: Connection established, read and parse first packet + */ + DBUG_PRINT("info", ("Read first packet.")); + + if ((pkt_length=cli_safe_read(mysql, NULL)) == packet_error) + { + if (mysql->net.last_errno == CR_SERVER_LOST) + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "reading initial communication packet", + socket_errno); + goto error; + } + pkt_end= (char*)net->read_pos + pkt_length; + /* Check if version of protocol matches current one */ + mysql->protocol_version= net->read_pos[0]; + DBUG_DUMP("packet",(uchar*) net->read_pos,10); + DBUG_PRINT("info",("mysql protocol version %d, server=%d", + PROTOCOL_VERSION, mysql->protocol_version)); + if (mysql->protocol_version != PROTOCOL_VERSION) + { + set_mysql_extended_error(mysql, CR_VERSION_ERROR, unknown_sqlstate, + ER(CR_VERSION_ERROR), mysql->protocol_version, + PROTOCOL_VERSION); + goto error; + } + server_version_end= end= strend((char*) net->read_pos+1); + mysql->thread_id=uint4korr((uchar*) end + 1); + end+=5; + /* + Scramble is split into two parts because old clients do not understand + long scrambles; here goes the first part. + */ + scramble_data= end; + scramble_data_len= AUTH_PLUGIN_DATA_PART_1_LENGTH + 1; + scramble_plugin= NULL; + end+= scramble_data_len; + + if (pkt_end >= end + 1) + mysql->server_capabilities=uint2korr((uchar*) end); + if (pkt_end >= end + 18) + { + /* New protocol with 16 bytes to describe server characteristics */ + mysql->server_language=end[2]; + mysql->server_status=uint2korr((uchar*) end + 3); + mysql->server_capabilities|= uint2korr((uchar*) end + 5) << 16; + pkt_scramble_len= end[7]; + if (pkt_scramble_len < 0) + { + set_mysql_error(mysql, CR_MALFORMED_PACKET, + unknown_sqlstate); /* purecov: inspected */ + goto error; + } + } + end+= 18; + + if (mysql_init_character_set(mysql)) + goto error; + + /* Save connection information */ + if (!my_multi_malloc(key_memory_MYSQL, + MYF(0), + &mysql->host_info, (uint) strlen(host_info)+1, + &mysql->host, (uint) strlen(host)+1, + &mysql->unix_socket,unix_socket ? + (uint) strlen(unix_socket)+1 : (uint) 1, + &mysql->server_version, + (uint) (server_version_end - (char*) net->read_pos + 1), + NullS) || + !(mysql->user=my_strdup(key_memory_MYSQL, + user,MYF(0))) || + !(mysql->passwd=my_strdup(key_memory_MYSQL, + passwd,MYF(0)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + goto error; + } + my_stpcpy(mysql->host_info,host_info); + my_stpcpy(mysql->host,host); + if (unix_socket) + my_stpcpy(mysql->unix_socket,unix_socket); + else + mysql->unix_socket=0; + my_stpcpy(mysql->server_version,(char*) net->read_pos+1); + mysql->port=port; + + if (pkt_end >= end + SCRAMBLE_LENGTH - AUTH_PLUGIN_DATA_PART_1_LENGTH + 1) + + { + /* + move the first scramble part - directly in the NET buffer - + to get a full continuous scramble. We've read all the header, + and can overwrite it now. + */ + memmove(end - AUTH_PLUGIN_DATA_PART_1_LENGTH, scramble_data, + AUTH_PLUGIN_DATA_PART_1_LENGTH); + scramble_data= end - AUTH_PLUGIN_DATA_PART_1_LENGTH; + if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH) + { + scramble_data_len= pkt_scramble_len; + scramble_plugin= scramble_data + scramble_data_len; + if (scramble_data + scramble_data_len > pkt_end) + scramble_data_len= (int)(pkt_end - scramble_data); + } + else + { + scramble_data_len= (int)(pkt_end - scramble_data); + scramble_plugin= native_password_plugin_name; + } + } + else + { + set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); + goto error; + } + + MYSQL_TRACE(INIT_PACKET_RECEIVED, mysql, (pkt_length, net->read_pos)); + MYSQL_TRACE_STAGE(mysql, AUTHENTICATE); + +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + if ((mysql->options.extension && + mysql->options.extension->ssl_mode <= SSL_MODE_PREFERRED) && + (mysql->options.protocol == MYSQL_PROTOCOL_MEMORY || + mysql->options.protocol == MYSQL_PROTOCOL_PIPE)) + { + mysql->options.extension->ssl_mode= SSL_MODE_DISABLED; + } +#endif + /* try and bring up SSL if possible */ + cli_calculate_client_flag(mysql, db, client_flag); + + /* + Allocate separate buffer for scramble data if we are going + to attempt TLS connection. This would prevent a possible + overwrite through my_net_write. + */ + if (scramble_data_len && + mysql->options.extension && + mysql->options.extension->ssl_mode != SSL_MODE_DISABLED) + { + if (!(scramble_buffer= (char *) my_malloc(key_memory_MYSQL_HANDSHAKE, + scramble_data_len, MYF(MY_WME)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + goto error; + } + scramble_buffer_allocated= TRUE; + memcpy(scramble_buffer, scramble_data, scramble_data_len); + } + else + { + scramble_buffer= scramble_data; + } + + if (cli_establish_ssl(mysql)) + goto error; + + /* + Part 2: invoke the plugin to send the authentication data to the server + */ + + if (run_plugin_auth(mysql, scramble_buffer, scramble_data_len, + scramble_plugin, db)) + goto error; + + if (scramble_buffer_allocated == TRUE) + { + scramble_buffer_allocated= FALSE; + my_free(scramble_buffer); + } + + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); + + /* + Part 3: authenticated, finish the initialization of the connection + */ + + if (mysql->client_flag & CLIENT_COMPRESS) /* We will use compression */ + net->compress=1; + +#ifdef CHECK_LICENSE + if (check_license(mysql)) + goto error; +#endif + + if (db && !mysql->db && mysql_select_db(mysql, db)) + { + if (mysql->net.last_errno == CR_SERVER_LOST) + set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate, + ER(CR_SERVER_LOST_EXTENDED), + "Setting intital database", + errno); + goto error; + } + + /* + Using init_commands is not supported when connecting from within the + server. + */ +#ifndef MYSQL_SERVER + if (mysql->options.init_commands) + { + DYNAMIC_ARRAY *init_commands= mysql->options.init_commands; + char **ptr= (char**)init_commands->buffer; + char **end_command= ptr + init_commands->elements; + + my_bool reconnect=mysql->reconnect; + mysql->reconnect=0; + + for (; ptr < end_command; ptr++) + { + int status; + + if (mysql_real_query(mysql,*ptr, (ulong) strlen(*ptr))) + goto error; + + do { + if (mysql->fields) + { + MYSQL_RES *res; + if (!(res= cli_use_result(mysql))) + goto error; + mysql_free_result(res); + } + if ((status= mysql_next_result(mysql)) > 0) + goto error; + } while (status == 0); + } + mysql->reconnect=reconnect; + } +#endif + + DBUG_PRINT("exit", ("Mysql handler: 0x%lx", (long) mysql)); + DBUG_RETURN(mysql); + +error: + DBUG_PRINT("error",("message: %u/%s (%s)", + net->last_errno, + net->sqlstate, + net->last_error)); + { + /* Free alloced memory */ + end_server(mysql); + mysql_close_free(mysql); + if (!(client_flag & CLIENT_REMEMBER_OPTIONS)) + mysql_close_free_options(mysql); + if (scramble_buffer_allocated) + my_free(scramble_buffer); + } + DBUG_RETURN(0); +} + + +my_bool mysql_reconnect(MYSQL *mysql) +{ + MYSQL tmp_mysql; + DBUG_ENTER("mysql_reconnect"); + DBUG_ASSERT(mysql); + DBUG_PRINT("enter", ("mysql->reconnect: %d", mysql->reconnect)); + + if (!mysql->reconnect || + (mysql->server_status & SERVER_STATUS_IN_TRANS) || !mysql->host_info) + { + /* Allow reconnect next time */ + mysql->server_status&= ~SERVER_STATUS_IN_TRANS; + set_mysql_error(mysql, CR_SERVER_GONE_ERROR, unknown_sqlstate); + DBUG_RETURN(1); + } + mysql_init(&tmp_mysql); + mysql_close_free_options(&tmp_mysql); + tmp_mysql.options= mysql->options; + tmp_mysql.options.my_cnf_file= tmp_mysql.options.my_cnf_group= 0; + + if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd, + mysql->db, mysql->port, mysql->unix_socket, + mysql->client_flag | CLIENT_REMEMBER_OPTIONS)) + { + memset(&tmp_mysql.options, 0, sizeof(tmp_mysql.options)); + mysql_close(&tmp_mysql); + mysql->net.last_errno= tmp_mysql.net.last_errno; + my_stpcpy(mysql->net.last_error, tmp_mysql.net.last_error); + my_stpcpy(mysql->net.sqlstate, tmp_mysql.net.sqlstate); + DBUG_RETURN(1); + } + if (mysql_set_character_set(&tmp_mysql, mysql->charset->csname)) + { + DBUG_PRINT("error", ("mysql_set_character_set() failed")); + memset(&tmp_mysql.options, 0, sizeof(tmp_mysql.options)); + mysql_close(&tmp_mysql); + mysql->net.last_errno= tmp_mysql.net.last_errno; + my_stpcpy(mysql->net.last_error, tmp_mysql.net.last_error); + my_stpcpy(mysql->net.sqlstate, tmp_mysql.net.sqlstate); + DBUG_RETURN(1); + } + + DBUG_PRINT("info", ("reconnect succeded")); + tmp_mysql.reconnect= 1; + tmp_mysql.free_me= mysql->free_me; + + /* Move prepared statements (if any) over to the new mysql object */ + tmp_mysql.stmts= mysql->stmts; + mysql->stmts= 0; + + /* Don't free options as these are now used in tmp_mysql */ + memset(&mysql->options, 0, sizeof(mysql->options)); + mysql->free_me=0; + mysql_close(mysql); + *mysql=tmp_mysql; + net_clear(&mysql->net, 1); + mysql->affected_rows= ~(my_ulonglong) 0; + DBUG_RETURN(0); +} + + +/************************************************************************** + Set current database +**************************************************************************/ + +int STDCALL +mysql_select_db(MYSQL *mysql, const char *db) +{ + int error; + DBUG_ENTER("mysql_select_db"); + DBUG_PRINT("enter",("db: '%s'",db)); + + if ((error=simple_command(mysql,COM_INIT_DB, (const uchar*) db, + (ulong) strlen(db),0))) + DBUG_RETURN(error); + my_free(mysql->db); + mysql->db=my_strdup(key_memory_MYSQL, + db,MYF(MY_WME)); + DBUG_RETURN(0); +} + + +/************************************************************************* + Send a QUIT to the server and close the connection + If handle is alloced by mysql connect free it. +*************************************************************************/ + +void mysql_close_free_options(MYSQL *mysql) +{ + DBUG_ENTER("mysql_close_free_options"); + + my_free(mysql->options.user); + my_free(mysql->options.host); + my_free(mysql->options.password); + my_free(mysql->options.unix_socket); + my_free(mysql->options.db); + my_free(mysql->options.my_cnf_file); + my_free(mysql->options.my_cnf_group); + my_free(mysql->options.charset_dir); + my_free(mysql->options.charset_name); + my_free(mysql->options.ci.client_ip); + /* ci.bind_adress is union with client_ip, already freed above */ + if (mysql->options.init_commands) + { + DYNAMIC_ARRAY *init_commands= mysql->options.init_commands; + char **ptr= (char**)init_commands->buffer; + char **end= ptr + init_commands->elements; + for (; ptroptions.shared_memory_base_name != def_shared_memory_base_name) + my_free(mysql->options.shared_memory_base_name); +#endif /* _WIN32 && !EMBEDDED_LIBRARY */ + if (mysql->options.extension) + { + my_free(mysql->options.extension->plugin_dir); + my_free(mysql->options.extension->default_auth); + my_free(mysql->options.extension->server_public_key_path); + my_hash_free(&mysql->options.extension->connection_attributes); + my_free(mysql->options.extension); + } + memset(&mysql->options, 0, sizeof(mysql->options)); + DBUG_VOID_RETURN; +} + + +/* + Free all memory allocated in a MYSQL handle but preserve + current options if any. +*/ + +void mysql_close_free(MYSQL *mysql) +{ + my_free(mysql->host_info); + my_free(mysql->user); + my_free(mysql->passwd); + my_free(mysql->db); + + /* Free extension if any */ + if (mysql->extension) + mysql_extension_free(mysql->extension); + + my_free(mysql->info_buffer); + mysql->info_buffer= 0; + + /* Clear pointers for better safety */ + mysql->host_info= NULL; + mysql->user= NULL; + mysql->passwd= NULL; + mysql->db= NULL; + mysql->extension= NULL; +} + + +/** + For use when the connection to the server has been lost (in which case + the server has discarded all information about prepared statements + associated with the connection). + + Mark all statements in mysql->stmts by setting stmt->mysql= 0 if the + statement has transitioned beyond the MYSQL_STMT_INIT_DONE state, and + unlink the statement from the mysql->stmts list. + + The remaining pruned list of statements (if any) is kept in mysql->stmts. + + @param mysql pointer to the MYSQL object + + @return none +*/ +static void mysql_prune_stmt_list(MYSQL *mysql) +{ + LIST *pruned_list= NULL; + + while(mysql->stmts) + { + LIST *element= mysql->stmts; + MYSQL_STMT *stmt; + + mysql->stmts= list_delete(element, element); + stmt= (MYSQL_STMT *) element->data; + if (stmt->state != MYSQL_STMT_INIT_DONE) + { + stmt->mysql= 0; + stmt->last_errno= CR_SERVER_LOST; + my_stpcpy(stmt->last_error, ER(CR_SERVER_LOST)); + my_stpcpy(stmt->sqlstate, unknown_sqlstate); + } + else + { + pruned_list= list_add(pruned_list, element); + } + } + + mysql->stmts= pruned_list; +} + + +/* + Clear connection pointer of every statement: this is necessary + to give error on attempt to use a prepared statement of closed + connection. + + SYNOPSYS + mysql_detach_stmt_list() + stmt_list pointer to mysql->stmts + func_name name of calling function + + NOTE + There is similar code in mysql_reconnect(), so changes here + should also be reflected there. +*/ + +void mysql_detach_stmt_list(LIST **stmt_list MY_ATTRIBUTE((unused)), + const char *func_name MY_ATTRIBUTE((unused))) +{ +#ifdef MYSQL_CLIENT + /* Reset connection handle in all prepared statements. */ + LIST *element= *stmt_list; + char buff[MYSQL_ERRMSG_SIZE]; + DBUG_ENTER("mysql_detach_stmt_list"); + + my_snprintf(buff, sizeof(buff)-1, ER(CR_STMT_CLOSED), func_name); + for (; element; element= element->next) + { + MYSQL_STMT *stmt= (MYSQL_STMT *) element->data; + set_stmt_error(stmt, CR_STMT_CLOSED, unknown_sqlstate, buff); + stmt->mysql= 0; + /* No need to call list_delete for statement here */ + } + *stmt_list= 0; + DBUG_VOID_RETURN; +#endif /* MYSQL_CLIENT */ +} + + +void STDCALL mysql_close(MYSQL *mysql) +{ + DBUG_ENTER("mysql_close"); + if (mysql) /* Some simple safety */ + { + /* If connection is still up, send a QUIT message */ + if (mysql->net.vio != 0) + { + free_old_query(mysql); + mysql->status=MYSQL_STATUS_READY; /* Force command */ + simple_command(mysql,COM_QUIT,(uchar*) 0,0,1); + mysql->reconnect=0; + end_server(mysql); /* Sets mysql->net.vio= 0 */ + } + mysql_close_free_options(mysql); + mysql_close_free(mysql); + mysql_detach_stmt_list(&mysql->stmts, "mysql_close"); +#ifndef MYSQL_SERVER + if (mysql->thd) + (*mysql->methods->free_embedded_thd)(mysql); +#endif + if (mysql->free_me) + my_free(mysql); + } + DBUG_VOID_RETURN; +} + + +static my_bool cli_read_query_result(MYSQL *mysql) +{ + uchar *pos; + ulong field_count; + ulong length; + DBUG_ENTER("cli_read_query_result"); + + if ((length = cli_safe_read(mysql, NULL)) == packet_error) + DBUG_RETURN(1); + free_old_query(mysql); /* Free old result */ +#ifdef MYSQL_CLIENT /* Avoid warn of unused labels*/ +get_info: +#endif + pos=(uchar*) mysql->net.read_pos; + if ((field_count= net_field_length(&pos)) == 0) + { + read_ok_ex(mysql, length); +#if defined(CLIENT_PROTOCOL_TRACING) + if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS) + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + else + MYSQL_TRACE_STAGE(mysql, READY_FOR_COMMAND); +#endif + DBUG_RETURN(0); + } +#ifdef MYSQL_CLIENT + if (field_count == NULL_LENGTH) /* LOAD DATA LOCAL INFILE */ + { + int error; + + MYSQL_TRACE_STAGE(mysql, FILE_REQUEST); + + if (!(mysql->options.client_flag & CLIENT_LOCAL_FILES)) + { + set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); + DBUG_RETURN(1); + } + + error= handle_local_infile(mysql,(char*) pos); + + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_RESULT); + + if ((length= cli_safe_read(mysql, NULL)) == packet_error || error) + DBUG_RETURN(1); + goto get_info; /* Get info packet */ + } +#endif + if (!(mysql->server_status & SERVER_STATUS_AUTOCOMMIT)) + mysql->server_status|= SERVER_STATUS_IN_TRANS; + + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_FIELD_DEF); + + if (!(mysql->fields=cli_read_metadata(mysql, field_count, protocol_41(mysql) ? 7:5))) + { + free_root(&mysql->field_alloc,MYF(0)); + DBUG_RETURN(1); + } + mysql->status= MYSQL_STATUS_GET_RESULT; + mysql->field_count= (uint) field_count; + + MYSQL_TRACE_STAGE(mysql, WAIT_FOR_ROW); + + DBUG_PRINT("exit",("ok")); + DBUG_RETURN(0); +} + + +/* + Send the query and return so we can do something else. + Needs to be followed by mysql_read_query_result() when we want to + finish processing it. +*/ + +int STDCALL +mysql_send_query(MYSQL* mysql, const char* query, ulong length) +{ + STATE_INFO *info; + + DBUG_ENTER("mysql_send_query"); + + if ((info= STATE_DATA(mysql))) + free_state_change_info(mysql->extension); + + DBUG_RETURN(simple_command(mysql, COM_QUERY, (uchar*) query, length, 1)); +} + + +int STDCALL +mysql_real_query(MYSQL *mysql, const char *query, ulong length) +{ + int retval; + DBUG_ENTER("mysql_real_query"); + DBUG_PRINT("enter",("handle: %p", mysql)); + DBUG_PRINT("query",("Query = '%-.*s'", (int) length, query)); + DBUG_EXECUTE_IF("inject_ER_NET_READ_INTERRUPTED", + { + mysql->net.last_errno= ER_NET_READ_INTERRUPTED; + DBUG_SET("-d,inject_ER_NET_READ_INTERRUPTED"); + DBUG_RETURN(1); + }); + + if (mysql_send_query(mysql,query,length)) + DBUG_RETURN(1); + retval= (int) (*mysql->methods->read_query_result)(mysql); + DBUG_RETURN(retval); +} + + +/************************************************************************** + Alloc result struct for buffered results. All rows are read to buffer. + mysql_data_seek may be used. +**************************************************************************/ + +MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql) +{ + MYSQL_RES *result; + DBUG_ENTER("mysql_store_result"); + + if (!mysql->fields) + DBUG_RETURN(0); + if (mysql->status != MYSQL_STATUS_GET_RESULT) + { + set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate); + DBUG_RETURN(0); + } + mysql->status=MYSQL_STATUS_READY; /* server is ready */ + if (!(result=(MYSQL_RES*) my_malloc(key_memory_MYSQL_RES, + (uint) (sizeof(MYSQL_RES)+ + sizeof(ulong) * + mysql->field_count), + MYF(MY_WME | MY_ZEROFILL)))) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(0); + } + result->methods= mysql->methods; + result->eof=1; /* Marker for buffered */ + result->lengths=(ulong*) (result+1); + if (!(result->data= + (*mysql->methods->read_rows)(mysql,mysql->fields,mysql->field_count))) + { + my_free(result); + DBUG_RETURN(0); + } + mysql->affected_rows= result->row_count= result->data->rows; + result->data_cursor= result->data->data; + result->fields= mysql->fields; + result->field_alloc= mysql->field_alloc; + result->field_count= mysql->field_count; + /* The rest of result members is zerofilled in my_malloc */ + mysql->fields=0; /* fields is now in result */ + clear_alloc_root(&mysql->field_alloc); + /* just in case this was mistakenly called after mysql_stmt_execute() */ + mysql->unbuffered_fetch_owner= 0; + DBUG_RETURN(result); /* Data fetched */ +} + + +/************************************************************************** + Alloc struct for use with unbuffered reads. Data is fetched by domand + when calling to mysql_fetch_row. + mysql_data_seek is a noop. + + No other queries may be specified with the same MYSQL handle. + There shouldn't be much processing per row because mysql server shouldn't + have to wait for the client (and will not wait more than 30 sec/packet). +**************************************************************************/ + +static MYSQL_RES * cli_use_result(MYSQL *mysql) +{ + MYSQL_RES *result; + DBUG_ENTER("cli_use_result"); + + if (!mysql->fields) + DBUG_RETURN(0); + if (mysql->status != MYSQL_STATUS_GET_RESULT) + { + set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate); + DBUG_RETURN(0); + } + if (!(result=(MYSQL_RES*) my_malloc(key_memory_MYSQL_RES, + sizeof(*result)+ + sizeof(ulong)*mysql->field_count, + MYF(MY_WME | MY_ZEROFILL)))) + DBUG_RETURN(0); + result->lengths=(ulong*) (result+1); + result->methods= mysql->methods; + if (!(result->row=(MYSQL_ROW) + my_malloc(key_memory_MYSQL_ROW, + sizeof(result->row[0])*(mysql->field_count+1), MYF(MY_WME)))) + { /* Ptrs: to one row */ + my_free(result); + DBUG_RETURN(0); + } + result->fields= mysql->fields; + result->field_alloc= mysql->field_alloc; + result->field_count= mysql->field_count; + result->current_field=0; + result->handle= mysql; + result->current_row= 0; + mysql->fields=0; /* fields is now in result */ + clear_alloc_root(&mysql->field_alloc); + mysql->status=MYSQL_STATUS_USE_RESULT; + mysql->unbuffered_fetch_owner= &result->unbuffered_fetch_cancelled; + DBUG_RETURN(result); /* Data is read to be fetched */ +} + + +/************************************************************************** + Return next row of the query results +**************************************************************************/ + +MYSQL_ROW STDCALL +mysql_fetch_row(MYSQL_RES *res) +{ + DBUG_ENTER("mysql_fetch_row"); + if (!res->data) + { /* Unbufferred fetch */ + if (!res->eof) + { + MYSQL *mysql= res->handle; + if (mysql->status != MYSQL_STATUS_USE_RESULT) + { + set_mysql_error(mysql, + res->unbuffered_fetch_cancelled ? + CR_FETCH_CANCELED : CR_COMMANDS_OUT_OF_SYNC, + unknown_sqlstate); + } + else if (!(read_one_row(mysql, res->field_count, res->row, res->lengths))) + { + res->row_count++; + DBUG_RETURN(res->current_row=res->row); + } + DBUG_PRINT("info",("end of data")); + res->eof=1; + mysql->status=MYSQL_STATUS_READY; + /* + Reset only if owner points to us: there is a chance that somebody + started new query after mysql_stmt_close(): + */ + if (mysql->unbuffered_fetch_owner == &res->unbuffered_fetch_cancelled) + mysql->unbuffered_fetch_owner= 0; + /* Don't clear handle in mysql_free_result */ + res->handle=0; + } + DBUG_RETURN((MYSQL_ROW) NULL); + } + { + MYSQL_ROW tmp; + if (!res->data_cursor) + { + DBUG_PRINT("info",("end of data")); + DBUG_RETURN(res->current_row=(MYSQL_ROW) NULL); + } + tmp = res->data_cursor->data; + res->data_cursor = res->data_cursor->next; + DBUG_RETURN(res->current_row=tmp); + } +} + + +/************************************************************************** + Get column lengths of the current row + If one uses mysql_use_result, res->lengths contains the length information, + else the lengths are calculated from the offset between pointers. +**************************************************************************/ + +ulong * STDCALL +mysql_fetch_lengths(MYSQL_RES *res) +{ + MYSQL_ROW column; + + if (!(column=res->current_row)) + return 0; /* Something is wrong */ + if (res->data) + (*res->methods->fetch_lengths)(res->lengths, column, res->field_count); + return res->lengths; +} + +int STDCALL +mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg) +{ + DBUG_ENTER("mysql_option"); + DBUG_PRINT("enter",("option: %d",(int) option)); + switch (option) { + case MYSQL_OPT_CONNECT_TIMEOUT: + mysql->options.connect_timeout= *(uint*) arg; + break; + case MYSQL_OPT_READ_TIMEOUT: + mysql->options.read_timeout= *(uint*) arg; + break; + case MYSQL_OPT_WRITE_TIMEOUT: + mysql->options.write_timeout= *(uint*) arg; + break; + case MYSQL_OPT_COMPRESS: + mysql->options.compress= 1; /* Remember for connect */ + mysql->options.client_flag|= CLIENT_COMPRESS; + break; + case MYSQL_OPT_NAMED_PIPE: /* This option is depricated */ + mysql->options.protocol=MYSQL_PROTOCOL_PIPE; /* Force named pipe */ + break; + case MYSQL_OPT_LOCAL_INFILE: /* Allow LOAD DATA LOCAL ?*/ + if (!arg || MY_TEST(*(uint*) arg)) + mysql->options.client_flag|= CLIENT_LOCAL_FILES; + else + mysql->options.client_flag&= ~CLIENT_LOCAL_FILES; + break; + case MYSQL_INIT_COMMAND: + add_init_command(&mysql->options,arg); + break; + case MYSQL_READ_DEFAULT_FILE: + my_free(mysql->options.my_cnf_file); + mysql->options.my_cnf_file=my_strdup(key_memory_mysql_options, + arg,MYF(MY_WME)); + break; + case MYSQL_READ_DEFAULT_GROUP: + my_free(mysql->options.my_cnf_group); + mysql->options.my_cnf_group=my_strdup(key_memory_mysql_options, + arg,MYF(MY_WME)); + break; + case MYSQL_SET_CHARSET_DIR: + my_free(mysql->options.charset_dir); + mysql->options.charset_dir=my_strdup(key_memory_mysql_options, + arg,MYF(MY_WME)); + break; + case MYSQL_SET_CHARSET_NAME: + my_free(mysql->options.charset_name); + mysql->options.charset_name=my_strdup(key_memory_mysql_options, + arg,MYF(MY_WME)); + break; + case MYSQL_OPT_PROTOCOL: + mysql->options.protocol= *(uint*) arg; + break; + case MYSQL_SHARED_MEMORY_BASE_NAME: +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + if (mysql->options.shared_memory_base_name != def_shared_memory_base_name) + my_free(mysql->options.shared_memory_base_name); + mysql->options.shared_memory_base_name=my_strdup(key_memory_mysql_options, + arg,MYF(MY_WME)); +#endif + break; + case MYSQL_OPT_USE_REMOTE_CONNECTION: + case MYSQL_OPT_USE_EMBEDDED_CONNECTION: + case MYSQL_OPT_GUESS_CONNECTION: + mysql->options.methods_to_use= option; + break; + case MYSQL_SET_CLIENT_IP: + my_free(mysql->options.ci.client_ip); + mysql->options.ci.client_ip= my_strdup(key_memory_mysql_options, + arg, MYF(MY_WME)); + break; + case MYSQL_SECURE_AUTH: + if (!*(my_bool *) arg) + DBUG_RETURN(1); + break; + case MYSQL_REPORT_DATA_TRUNCATION: + mysql->options.report_data_truncation= MY_TEST(*(my_bool *) arg); + break; + case MYSQL_OPT_RECONNECT: + mysql->reconnect= *(my_bool *) arg; + break; + case MYSQL_OPT_BIND: + my_free(mysql->options.ci.bind_address); + mysql->options.ci.bind_address= my_strdup(key_memory_mysql_options, + arg, MYF(MY_WME)); + break; + case MYSQL_OPT_SSL_VERIFY_SERVER_CERT: + if (*(my_bool*) arg) + mysql->options.client_flag|= CLIENT_SSL_VERIFY_SERVER_CERT; + else + mysql->options.client_flag&= ~CLIENT_SSL_VERIFY_SERVER_CERT; + break; + case MYSQL_PLUGIN_DIR: + EXTENSION_SET_STRING(&mysql->options, plugin_dir, arg); + break; + case MYSQL_DEFAULT_AUTH: + EXTENSION_SET_STRING(&mysql->options, default_auth, arg); + break; + case MYSQL_OPT_SSL_KEY: + if (mysql->options.ssl_key) + my_free(mysql->options.ssl_key); + mysql->options.ssl_key= set_ssl_option_unpack_path(arg); + break; + case MYSQL_OPT_SSL_CERT: + if (mysql->options.ssl_cert) + my_free(mysql->options.ssl_cert); + mysql->options.ssl_cert= set_ssl_option_unpack_path(arg); + break; + case MYSQL_OPT_SSL_CA: + if (mysql->options.ssl_ca) + my_free(mysql->options.ssl_ca); + mysql->options.ssl_ca= set_ssl_option_unpack_path(arg); + break; + case MYSQL_OPT_SSL_CAPATH: + if (mysql->options.ssl_capath) + my_free(mysql->options.ssl_capath); + mysql->options.ssl_capath= set_ssl_option_unpack_path(arg); + break; + case MYSQL_OPT_SSL_CIPHER: + SET_OPTION(ssl_cipher, arg); + break; + case MYSQL_OPT_SSL_CRL: + if (mysql->options.extension) + my_free(mysql->options.extension->ssl_crl); + else + ALLOCATE_EXTENSIONS(&mysql->options); + mysql->options.extension->ssl_crl= + set_ssl_option_unpack_path(arg); + break; + case MYSQL_OPT_SSL_CRLPATH: + if (mysql->options.extension) + my_free(mysql->options.extension->ssl_crlpath); + else + ALLOCATE_EXTENSIONS(&mysql->options); + mysql->options.extension->ssl_crlpath= + set_ssl_option_unpack_path(arg); + break; + case MYSQL_OPT_TLS_VERSION: +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + EXTENSION_SET_STRING(&mysql->options, tls_version, arg); + if ((mysql->options.extension->ssl_ctx_flags= + process_tls_version(mysql->options.extension->tls_version)) == -1) + DBUG_RETURN(1); +#endif + break; + case MYSQL_OPT_SSL_ENFORCE: +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + mysql->options.extension->ssl_mode= SSL_MODE_REQUIRED; +#endif + break; + case MYSQL_OPT_SSL_MODE: +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + mysql->options.extension->ssl_mode= *(uint *) arg; + if (mysql->options.extension->ssl_mode == SSL_MODE_VERIFY_IDENTITY) + mysql->options.client_flag|= CLIENT_SSL_VERIFY_SERVER_CERT; + else + mysql->options.client_flag&= ~CLIENT_SSL_VERIFY_SERVER_CERT; +#endif + break; + case MYSQL_SERVER_PUBLIC_KEY: + EXTENSION_SET_STRING(&mysql->options, server_public_key_path, arg); + break; + + case MYSQL_OPT_CONNECT_ATTR_RESET: + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + if (my_hash_inited(&mysql->options.extension->connection_attributes)) + { + my_hash_free(&mysql->options.extension->connection_attributes); + mysql->options.extension->connection_attributes_length= 0; + } + break; + case MYSQL_OPT_CONNECT_ATTR_DELETE: + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + if (my_hash_inited(&mysql->options.extension->connection_attributes)) + { + size_t len; + uchar *elt; + + len= arg ? strlen(arg) : 0; + + if (len) + { + elt= my_hash_search(&mysql->options.extension->connection_attributes, + arg, len); + if (elt) + { + LEX_STRING *attr= (LEX_STRING *) elt; + LEX_STRING *key= attr, *value= attr + 1; + + mysql->options.extension->connection_attributes_length-= + get_length_store_length(key->length) + key->length + + get_length_store_length(value->length) + value->length; + + my_hash_delete(&mysql->options.extension->connection_attributes, + elt); + + } + } + } + break; + case MYSQL_ENABLE_CLEARTEXT_PLUGIN: + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + mysql->options.extension->enable_cleartext_plugin= + (*(my_bool*) arg) ? TRUE : FALSE; + break; + case MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS: + if (*(my_bool*) arg) + mysql->options.client_flag|= CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS; + else + mysql->options.client_flag&= ~CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS; + break; + + case MYSQL_OPT_MAX_ALLOWED_PACKET: + if (mysql) + mysql->options.max_allowed_packet= (*(ulong *) arg); + else + g_max_allowed_packet= (*(ulong *) arg); + break; + + case MYSQL_OPT_NET_BUFFER_LENGTH: + g_net_buffer_length= (*(ulong *) arg); + break; + + default: + DBUG_RETURN(1); + } + DBUG_RETURN(0); +} + + +/** + Return the current values for the options settable through mysql_options() + + Returns the current values for all of the connection options. + Callers should not manipulate the returned data ! + Data are valid at the time of returning them until the next C API CALL + arg should always be a pointer to a variable of the appropriate type. + type of variable, based on the parameter: + + uint + MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT, + MYSQL_OPT_PROTOCOL, MYSQL_OPT_SSL_MODE + + my_bool + MYSQL_OPT_COMPRESS, MYSQL_OPT_LOCAL_INFILE, MYSQL_OPT_USE_REMOTE_CONNECTION, + MYSQL_OPT_USE_EMBEDDED_CONNECTION, MYSQL_OPT_GUESS_CONNECTION, + MYSQL_SECURE_AUTH, MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT, + MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_OPT_SSL_ENFORCE, + MYSQL_ENABLE_CLEARTEXT_PLUGIN, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS + + const char * + MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, + MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_SHARED_MEMORY_BASE_NAME, + MYSQL_SET_CLIENT_IP, MYSQL_OPT_BIND, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH, + MYSQL_OPT_SSL_KEY, MYSQL_OPT_SSL_CERT, MYSQL_OPT_SSL_CA, MYSQL_OPT_SSL_CAPATH, + MYSQL_OPT_SSL_CIPHER, MYSQL_OPT_SSL_CRL, MYSQL_OPT_SSL_CRLPATH, MYSQL_OPT_TLS_VERSION, + MYSQL_SERVER_PUBLIC_KEY + + + MYSQL_OPT_NAMED_PIPE, MYSQL_OPT_CONNECT_ATTR_RESET, + MYSQL_OPT_CONNECT_ATTR_DELETE, MYSQL_INIT_COMMAND + + @param mysql The MYSQL connection to operate on + @param option The option to return the value for + @param out arg Must be non-null. Receives the current value. + @return status + @retval 0 SUCCESS +*/ + +int STDCALL +mysql_get_option(MYSQL *mysql, enum mysql_option option, const void *arg) +{ + DBUG_ENTER("mysql_option"); + DBUG_PRINT("enter", ("option: %d", (int)option)); + + if (!arg) + DBUG_RETURN(1); + + switch (option) { + case MYSQL_OPT_CONNECT_TIMEOUT: + *((uint *)arg) = mysql->options.connect_timeout; + break; + case MYSQL_OPT_READ_TIMEOUT: + *((uint *)arg)= mysql->options.read_timeout; + break; + case MYSQL_OPT_WRITE_TIMEOUT: + *((uint *)arg)= mysql->options.write_timeout; + break; + case MYSQL_OPT_COMPRESS: + *((my_bool *)arg) = mysql->options.compress ? TRUE : FALSE; + break; + case MYSQL_OPT_LOCAL_INFILE: /* Allow LOAD DATA LOCAL ?*/ + *((uint *)arg)= (mysql->options.client_flag & CLIENT_LOCAL_FILES) ? + TRUE : FALSE; + break; + case MYSQL_READ_DEFAULT_FILE: + *((char **)arg)= mysql->options.my_cnf_file; + break; + case MYSQL_READ_DEFAULT_GROUP: + *((char **)arg)= mysql->options.my_cnf_group; + break; + case MYSQL_SET_CHARSET_DIR: + *((char **)arg)= mysql->options.charset_dir; + break; + case MYSQL_SET_CHARSET_NAME: + *((char **)arg)= mysql->options.charset_name; + break; + case MYSQL_OPT_PROTOCOL: + *((uint *)arg)= mysql->options.protocol; + break; + case MYSQL_SHARED_MEMORY_BASE_NAME: +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + *((char **)arg)= mysql->options.shared_memory_base_name; +#else + *((const char **)arg)= ""; +#endif + break; + case MYSQL_OPT_USE_REMOTE_CONNECTION: + *((my_bool *)arg)= + (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION) ? + TRUE : FALSE; + break; + case MYSQL_OPT_USE_EMBEDDED_CONNECTION: + *((my_bool *)arg) = + (mysql->options.methods_to_use == MYSQL_OPT_USE_EMBEDDED_CONNECTION) ? + TRUE : FALSE; + break; + case MYSQL_OPT_GUESS_CONNECTION: + *((my_bool *)arg) = + (mysql->options.methods_to_use == MYSQL_OPT_GUESS_CONNECTION) ? + TRUE : FALSE; + break; + case MYSQL_SET_CLIENT_IP: + *((char **)arg) = mysql->options.ci.client_ip; + break; + case MYSQL_SECURE_AUTH: + *((my_bool *)arg)= TRUE; + break; + case MYSQL_REPORT_DATA_TRUNCATION: + *((my_bool *)arg)= mysql->options.report_data_truncation; + break; + case MYSQL_OPT_RECONNECT: + *((my_bool *)arg)= mysql->reconnect; + break; + case MYSQL_OPT_BIND: + *((char **)arg)= mysql->options.ci.bind_address; + break; + case MYSQL_OPT_SSL_VERIFY_SERVER_CERT: /* Deprecated. */ + *((my_bool *)arg) = (mysql->options.client_flag & + CLIENT_SSL_VERIFY_SERVER_CERT) ? TRUE : FALSE; + break; + case MYSQL_OPT_SSL_ENFORCE: /* Deprecated. */ + *((my_bool *) arg)= (mysql->options.extension && + mysql->options.extension->ssl_mode >= SSL_MODE_REQUIRED) ? + TRUE : FALSE; + break; + case MYSQL_OPT_SSL_MODE: + *((uint *) arg)= mysql->options.extension ? + mysql->options.extension->ssl_mode : 0; + break; + case MYSQL_PLUGIN_DIR: + *((char **)arg)= mysql->options.extension ? + mysql->options.extension->plugin_dir : NULL; + break; + case MYSQL_DEFAULT_AUTH: + *((char **)arg)= mysql->options.extension ? + mysql->options.extension->default_auth : NULL; + break; + case MYSQL_OPT_SSL_KEY: + *((char **)arg)= mysql->options.ssl_key; + break; + case MYSQL_OPT_SSL_CERT: + *((char **)arg)= mysql->options.ssl_cert; + break; + case MYSQL_OPT_SSL_CA: + *((char **)arg)= mysql->options.ssl_ca; + break; + case MYSQL_OPT_SSL_CAPATH: + *((char **)arg)= mysql->options.ssl_capath; + break; + case MYSQL_OPT_SSL_CIPHER: + *((char **)arg)= mysql->options.ssl_cipher; + break; + case MYSQL_OPT_TLS_VERSION: + *((char **)arg)= mysql->options.extension ? + mysql->options.extension->tls_version : NULL; + break; + case MYSQL_OPT_SSL_CRL: + *((char **)arg)= mysql->options.extension ? + mysql->options.extension->ssl_crl : NULL; + break; + case MYSQL_OPT_SSL_CRLPATH: + *((char **)arg)= mysql->options.extension ? + mysql->options.extension->ssl_crlpath : NULL; + break; + case MYSQL_SERVER_PUBLIC_KEY: + *((char **)arg)= mysql->options.extension ? + mysql->options.extension->server_public_key_path : NULL; + break; + case MYSQL_ENABLE_CLEARTEXT_PLUGIN: + *((my_bool *)arg)= (mysql->options.extension && + mysql->options.extension->enable_cleartext_plugin) ? + TRUE : FALSE; + break; + case MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS: + *((my_bool*)arg)= (mysql->options.client_flag & + CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS) ? TRUE : FALSE; + break; + + case MYSQL_OPT_MAX_ALLOWED_PACKET: + if (mysql) + *((ulong*)arg)= mysql->options.max_allowed_packet; + else + *((ulong*)arg)= g_max_allowed_packet; + break; + + case MYSQL_OPT_NET_BUFFER_LENGTH: + *((ulong*)arg)= g_net_buffer_length; + break; + + case MYSQL_OPT_NAMED_PIPE: /* This option is depricated */ + case MYSQL_INIT_COMMAND: /* Cumulative */ + case MYSQL_OPT_CONNECT_ATTR_RESET: /* Cumulative */ + case MYSQL_OPT_CONNECT_ATTR_DELETE: /* Cumulative */ + default: + DBUG_RETURN(1); + } + DBUG_RETURN(0); +} + + +/** + A function to return the key from a connection attribute +*/ +uchar * +get_attr_key(LEX_STRING *part, size_t *length, + my_bool not_used MY_ATTRIBUTE((unused))) +{ + *length= part[0].length; + return (uchar *) part[0].str; +} + +int STDCALL +mysql_options4(MYSQL *mysql,enum mysql_option option, + const void *arg1, const void *arg2) +{ + DBUG_ENTER("mysql_option"); + DBUG_PRINT("enter",("option: %d",(int) option)); + + switch (option) + { + case MYSQL_OPT_CONNECT_ATTR_ADD: + { + LEX_STRING *elt; + char *key, *value; + size_t key_len= arg1 ? strlen(arg1) : 0, + value_len= arg2 ? strlen(arg2) : 0; + size_t attr_storage_length= key_len + value_len; + + /* we can't have a zero length key */ + if (!key_len) + { + set_mysql_error(mysql, CR_INVALID_PARAMETER_NO, unknown_sqlstate); + DBUG_RETURN(1); + } + + /* calculate the total storage length of the attribute */ + attr_storage_length+= get_length_store_length(key_len); + attr_storage_length+= get_length_store_length(value_len); + + ENSURE_EXTENSIONS_PRESENT(&mysql->options); + + /* + Throw and error if the maximum combined length of the attribute value + will be greater than the maximum that we can safely transmit. + */ + if (attr_storage_length + + mysql->options.extension->connection_attributes_length > + MAX_CONNECTION_ATTR_STORAGE_LENGTH) + { + set_mysql_error(mysql, CR_INVALID_PARAMETER_NO, unknown_sqlstate); + DBUG_RETURN(1); + } + + if (!my_hash_inited(&mysql->options.extension->connection_attributes)) + { + if (my_hash_init(&mysql->options.extension->connection_attributes, + &my_charset_bin, 0, 0, 0, (my_hash_get_key) get_attr_key, + my_free, HASH_UNIQUE, + key_memory_mysql_options)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(1); + } + } + if (!my_multi_malloc(key_memory_mysql_options, + MY_WME, + &elt, 2 * sizeof(LEX_STRING), + &key, key_len + 1, + &value, value_len + 1, + NULL)) + { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); + DBUG_RETURN(1); + } + elt[0].str= key; elt[0].length= key_len; + elt[1].str= value; elt[1].length= value_len; + if (key_len) + memcpy(key, arg1, key_len); + key[key_len]= 0; + if (value_len) + memcpy(value, arg2, value_len); + value[value_len]= 0; + if (my_hash_insert(&mysql->options.extension->connection_attributes, + (uchar *) elt)) + { + /* can't insert the value */ + my_free(elt); + set_mysql_error(mysql, CR_DUPLICATE_CONNECTION_ATTR, + unknown_sqlstate); + DBUG_RETURN(1); + } + + mysql->options.extension->connection_attributes_length+= + attr_storage_length; + + break; + } + + default: + DBUG_RETURN(1); + } + DBUG_RETURN(0); +} + + +/**************************************************************************** + Functions to get information from the MySQL structure + These are functions to make shared libraries more usable. +****************************************************************************/ + +/* MYSQL_RES */ +my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res) +{ + return res->row_count; +} + +unsigned int STDCALL mysql_num_fields(MYSQL_RES *res) +{ + return res->field_count; +} + +uint STDCALL mysql_errno(MYSQL *mysql) +{ + return mysql ? mysql->net.last_errno : mysql_server_last_errno; +} + + +const char * STDCALL mysql_error(MYSQL *mysql) +{ + return mysql ? mysql->net.last_error : mysql_server_last_error; +} + + +/** + Read data and its length from a LIST node. + + Assumes LIST which stores data blobs in LEX_STRING structures, + where LEX_STRING::str is pointer to the data and LEX_STRING::length + is the length of this data. + + If node is NULL then data and length are set to NULL and 0, respectively, + and function returns 0, otherwise, if data has been read from the node, + function returns 1. +*/ + +static int get_data_and_length(LIST *node, const char **data, size_t *length) +{ + DBUG_ASSERT(!node || node->data); + if (data) + *data= node ? ((LEX_STRING*)(node->data))->str : NULL; + if (length) + *length= node ? ((LEX_STRING*)(node->data))->length : 0; + + return node ? 0 : 1; +} + + +/** + Get the first state change information received from the server. + + @param mysql [IN] mysql handle + @param type [IN] state change type + @param data [OUT] buffer to store the data + @param length [OUT] length of the data + + @return + 0 - Valid data stored + 1 - No data +*/ + +int STDCALL mysql_session_track_get_first(MYSQL *mysql, + enum enum_session_state_type type, + const char **data, + size_t *length) +{ + STATE_INFO *info= STATE_DATA(mysql); + + if (!info || !IS_SESSION_STATE_TYPE(type) + || !(info->info_list[type].head_node)) + return get_data_and_length(NULL, data, length); + + info->info_list[type].current_node= info->info_list[type].head_node; + + return mysql_session_track_get_next(mysql, type, data, length); +} + + +/** + Get the subsequent state change information received from the server. + + @param mysql [IN] mysql handle + @param type [IN] state change type + @param data [OUT] buffer to store the data + @param length [OUT] length of the data + + @return + 0 - Valid data stored + 1 - No data +*/ + +int STDCALL mysql_session_track_get_next(MYSQL *mysql, + enum enum_session_state_type type, + const char **data, + size_t *length) +{ + STATE_INFO *info= STATE_DATA(mysql); + int ret; + + if (!info || !IS_SESSION_STATE_TYPE(type) + || !(info->info_list[type].current_node)) + return get_data_and_length(NULL, data, length); + + ret= get_data_and_length(info->info_list[type].current_node, + data, length); + + info->info_list[type].current_node= list_rest(info->info_list[type].current_node); + + return ret; +} + + +/* + Get version number for server in a form easy to test on + + SYNOPSIS + mysql_get_server_version() + mysql Connection + + EXAMPLE + 4.1.0-alfa -> 40100 + + NOTES + We will ensure that a newer server always has a bigger number. + + RETURN + Signed number > 323000 + Zero if there is no connection +*/ + +ulong STDCALL +mysql_get_server_version(MYSQL *mysql) +{ + ulong major= 0, minor= 0, version= 0; + + if (mysql->server_version) + { + char *pos= mysql->server_version, *end_pos; + major= strtoul(pos, &end_pos, 10); pos=end_pos+1; + minor= strtoul(pos, &end_pos, 10); pos=end_pos+1; + version= strtoul(pos, &end_pos, 10); + } + else + { + set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate); + } + + return major*10000 + minor*100 + version; +} + + +/* + mysql_set_character_set function sends SET NAMES cs_name to + the server (which changes character_set_client, character_set_result + and character_set_connection) and updates mysql->charset so other + functions like mysql_real_escape will work correctly. +*/ +int STDCALL mysql_set_character_set(MYSQL *mysql, const char *cs_name) +{ + struct charset_info_st *cs; + const char *save_csdir= charsets_dir; + + if (mysql->options.charset_dir) + charsets_dir= mysql->options.charset_dir; + + if (!mysql->net.vio) + { + /* Initialize with automatic OS character set detection. */ + mysql_options(mysql, MYSQL_SET_CHARSET_NAME, cs_name); + mysql_init_character_set(mysql); + /* + In case of automatic OS character set detection + mysql_init_character_set changes mysql->options.charset_name + from "auto" to the real character set name. + Reset cs_name to the detected character set name, accordingly. + */ + cs_name= mysql->options.charset_name; + } + + if (strlen(cs_name) < MY_CS_NAME_SIZE && + (cs= get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0)))) + { + char buff[MY_CS_NAME_SIZE + 10]; + charsets_dir= save_csdir; + if (!mysql->net.vio) + { + /* If there is no connection yet we don't send "SET NAMES" query */ + mysql->charset= cs; + return 0; + } + /* Skip execution of "SET NAMES" for pre-4.1 servers */ + if (mysql_get_server_version(mysql) < 40100) + return 0; + sprintf(buff, "SET NAMES %s", cs_name); + if (!mysql_real_query(mysql, buff, (ulong) strlen(buff))) + { + mysql->charset= cs; + } + } + else + { + char cs_dir_name[FN_REFLEN]; + get_charsets_dir(cs_dir_name); + set_mysql_extended_error(mysql, CR_CANT_READ_CHARSET, unknown_sqlstate, + ER(CR_CANT_READ_CHARSET), cs_name, cs_dir_name); + } + charsets_dir= save_csdir; + return mysql->net.last_errno; +} + +/** + client authentication plugin that does native MySQL authentication + using a 20-byte (4.1+) scramble +*/ +static int native_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql) +{ + int pkt_len; + uchar *pkt; + + DBUG_ENTER("native_password_auth_client"); + + + if (((MCPVIO_EXT *)vio)->mysql_change_user) + { + /* + in mysql_change_user() the client sends the first packet. + we use the old scramble. + */ + pkt= (uchar*)mysql->scramble; + pkt_len= SCRAMBLE_LENGTH + 1; + } + else + { + /* read the scramble */ + if ((pkt_len= vio->read_packet(vio, &pkt)) < 0) + DBUG_RETURN(CR_ERROR); + + if (pkt_len != SCRAMBLE_LENGTH + 1) + DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR); + + /* save it in MYSQL */ + memcpy(mysql->scramble, pkt, SCRAMBLE_LENGTH); + mysql->scramble[SCRAMBLE_LENGTH] = 0; + } + + if (mysql->passwd[0]) + { + char scrambled[SCRAMBLE_LENGTH + 1]; + DBUG_PRINT("info", ("sending scramble")); + scramble(scrambled, (char*)pkt, mysql->passwd); + if (vio->write_packet(vio, (uchar*)scrambled, SCRAMBLE_LENGTH)) + DBUG_RETURN(CR_ERROR); + } + else + { + DBUG_PRINT("info", ("no password")); + if (vio->write_packet(vio, 0, 0)) /* no password */ + DBUG_RETURN(CR_ERROR); + } + + DBUG_RETURN(CR_OK); +} + +/** + The main function of the mysql_clear_password authentication plugin. +*/ + +static int clear_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql) +{ + int res; + + /* send password in clear text */ + res= vio->write_packet(vio, (const unsigned char *) mysql->passwd, + (int)strlen(mysql->passwd) + 1); + + return res ? CR_ERROR : CR_OK; +} + + diff --git a/mysql/sql-common/client_authentication.cpp b/mysql/sql-common/client_authentication.cpp new file mode 100644 index 0000000..eaeb2d4 --- /dev/null +++ b/mysql/sql-common/client_authentication.cpp @@ -0,0 +1,282 @@ +/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +// First include (the generated) my_config.h, to get correct platform defines. +#include "my_config.h" + +#if defined(HAVE_OPENSSL) +#include "crypt_genhash_impl.h" +#include "mysql/client_authentication.h" +#include "m_ctype.h" +#include "sql_common.h" +#include "errmsg.h" +#include "sql_string.h" + +#include +#include +#if !defined(HAVE_YASSL) +#include +#include +#include +#if defined(_WIN32) && !defined(_OPENSSL_Applink) && defined(HAVE_OPENSSL_APPLINK_C) +#include +#endif +#endif +#include "mysql/plugin.h" + +#define MAX_CIPHER_LENGTH 1024 + +#if !defined(HAVE_YASSL) +mysql_mutex_t g_public_key_mutex; +#endif + +int sha256_password_init(char *a, size_t b, int c, va_list d) +{ +#if !defined(HAVE_YASSL) + mysql_mutex_init(0,&g_public_key_mutex, MY_MUTEX_INIT_SLOW); +#endif + return 0; +} + +int sha256_password_deinit(void) +{ +#if !defined(HAVE_YASSL) + mysql_mutex_destroy(&g_public_key_mutex); +#endif + return 0; +} + + +#if !defined(HAVE_YASSL) +/** + Reads and parse RSA public key data from a file. + + @param mysql connection handle with file path data + + @return Pointer to the RSA public key storage buffer +*/ + +RSA *rsa_init(MYSQL *mysql) +{ + static RSA *g_public_key= NULL; + RSA *key= NULL; + + mysql_mutex_lock(&g_public_key_mutex); + key= g_public_key; + mysql_mutex_unlock(&g_public_key_mutex); + + if (key != NULL) + return key; + + FILE *pub_key_file= NULL; + + if (mysql->options.extension != NULL && + mysql->options.extension->server_public_key_path != NULL && + mysql->options.extension->server_public_key_path != '\0') + { + pub_key_file= fopen(mysql->options.extension->server_public_key_path, + "r"); + } + /* No public key is used; return 0 without errors to indicate this. */ + else + return 0; + + if (pub_key_file == NULL) + { + /* + If a key path was submitted but no key located then we print an error + message. Else we just report that there is no public key. + */ + my_message_local(WARNING_LEVEL, "Can't locate server public key '%s'", + mysql->options.extension->server_public_key_path); + + return 0; + } + + mysql_mutex_lock(&g_public_key_mutex); + key= g_public_key= PEM_read_RSA_PUBKEY(pub_key_file, 0, 0, 0); + mysql_mutex_unlock(&g_public_key_mutex); + fclose(pub_key_file); + if (g_public_key == NULL) + { + ERR_clear_error(); + my_message_local(WARNING_LEVEL, "Public key is not in PEM format: '%s'", + mysql->options.extension->server_public_key_path); + return 0; + } + + return key; +} +#endif // !defined(HAVE_YASSL) + +/** + Authenticate the client using the RSA or TLS and a SHA256 salted password. + + @param vio Provides plugin access to communication channel + @param mysql Client connection handler + + @return Error status + @retval CR_ERROR An error occurred. + @retval CR_OK Authentication succeeded. +*/ + +extern "C" +int sha256_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql) +{ + bool uses_password= mysql->passwd[0] != 0; +#if !defined(HAVE_YASSL) + unsigned char encrypted_password[MAX_CIPHER_LENGTH]; + static char request_public_key= '\1'; + RSA *public_key= NULL; + bool got_public_key_from_server= false; +#endif + bool connection_is_secure= false; + unsigned char scramble_pkt[20]; + unsigned char *pkt; + + + DBUG_ENTER("sha256_password_auth_client"); + + /* + Get the scramble from the server because we need it when sending encrypted + password. + */ + if (vio->read_packet(vio, &pkt) != SCRAMBLE_LENGTH + 1) + { + DBUG_PRINT("info",("Scramble is not of correct length.")); + DBUG_RETURN(CR_ERROR); + } + if (pkt[SCRAMBLE_LENGTH] != '\0') + { + DBUG_PRINT("info",("Missing protocol token in scramble data.")); + DBUG_RETURN(CR_ERROR); + } + /* + Copy the scramble to the stack or it will be lost on the next use of the + net buffer. + */ + memcpy(scramble_pkt, pkt, SCRAMBLE_LENGTH); + + if (mysql_get_ssl_cipher(mysql) != NULL) + connection_is_secure= true; + + /* If connection isn't secure attempt to get the RSA public key file */ + if (!connection_is_secure) + { + #if !defined(HAVE_YASSL) + public_key= rsa_init(mysql); +#endif + } + + if (!uses_password) + { + /* We're not using a password */ + static const unsigned char zero_byte= '\0'; + if (vio->write_packet(vio, &zero_byte, 1)) + DBUG_RETURN(CR_ERROR); + } + else + { + /* Password is a 0-terminated byte array ('\0' character included) */ + unsigned int passwd_len= static_cast(strlen(mysql->passwd) + 1); + if (!connection_is_secure) + { +#if !defined(HAVE_YASSL) + /* + If no public key; request one from the server. + */ + if (public_key == NULL) + { + if (vio->write_packet(vio, (const unsigned char *) &request_public_key, + 1)) + DBUG_RETURN(CR_ERROR); + + int pkt_len= 0; + unsigned char *pkt; + if ((pkt_len= vio->read_packet(vio, &pkt)) == -1) + DBUG_RETURN(CR_ERROR); + BIO* bio= BIO_new_mem_buf(pkt, pkt_len); + public_key= PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL); + BIO_free(bio); + if (public_key == 0) + { + ERR_clear_error(); + DBUG_RETURN(CR_ERROR); + } + got_public_key_from_server= true; + } + + /* + An arbitrary limitation based on the assumption that passwords + larger than e.g. 15 symbols don't contribute to security. + Note also that it's furter restricted to RSA_size() - 41 down + below, so this leaves 471 bytes of possible RSA key sizes which + should be reasonably future-proof. + We avoid heap allocation for speed reasons. + */ + char passwd_scramble[512]; + + if (passwd_len > sizeof(passwd_scramble)) + { + /* password too long for the buffer */ + if (got_public_key_from_server) + RSA_free(public_key); + DBUG_RETURN(CR_ERROR); + } + memmove(passwd_scramble, mysql->passwd, passwd_len); + + /* Obfuscate the plain text password with the session scramble */ + xor_string(passwd_scramble, passwd_len - 1, (char *) scramble_pkt, + SCRAMBLE_LENGTH); + /* Encrypt the password and send it to the server */ + int cipher_length= RSA_size(public_key); + /* + When using RSA_PKCS1_OAEP_PADDING the password length must be less + than RSA_size(rsa) - 41. + */ + if (passwd_len + 41 >= (unsigned) cipher_length) + { + /* password message is to long */ + if (got_public_key_from_server) + RSA_free(public_key); + DBUG_RETURN(CR_ERROR); + } + RSA_public_encrypt(passwd_len, (unsigned char *) passwd_scramble, + encrypted_password, + public_key, RSA_PKCS1_OAEP_PADDING); + if (got_public_key_from_server) + RSA_free(public_key); + + if (vio->write_packet(vio, (uchar*) encrypted_password, cipher_length)) + DBUG_RETURN(CR_ERROR); +#else + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_ERR, unknown_sqlstate, + ER(CR_AUTH_PLUGIN_ERR), "sha256_password", + "Authentication requires SSL encryption"); + DBUG_RETURN(CR_ERROR); // If no openssl support +#endif + } + else + { + /* The vio is encrypted already; just send the plain text passwd */ + if (vio->write_packet(vio, (uchar*) mysql->passwd, passwd_len)) + DBUG_RETURN(CR_ERROR); + } + } + + DBUG_RETURN(CR_OK); +} + +#endif diff --git a/mysql/sql-common/client_plugin.c b/mysql/sql-common/client_plugin.c new file mode 100644 index 0000000..c7dfda9 --- /dev/null +++ b/mysql/sql-common/client_plugin.c @@ -0,0 +1,592 @@ +/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + + Support code for the client side (libmysql) plugins + + Client plugins are somewhat different from server plugins, they are simpler. + + They do not need to be installed or in any way explicitly loaded on the + client, they are loaded automatically on demand. + One client plugin per shared object, soname *must* match the plugin name. + + There is no reference counting and no unloading either. +*/ + +#include +#include "mysql.h" +#include +#include +#include + +#include +#include "errmsg.h" +#include + +#ifdef HAVE_DLFCN_H +#include +#endif + +#if defined(CLIENT_PROTOCOL_TRACING) +#include +#endif + +PSI_memory_key key_memory_root; +PSI_memory_key key_memory_load_env_plugins; + +#ifdef HAVE_PSI_INTERFACE +PSI_mutex_key key_mutex_LOCK_load_client_plugin; + +static PSI_mutex_info all_client_plugin_mutexes[]= +{ + {&key_mutex_LOCK_load_client_plugin, "LOCK_load_client_plugin", PSI_FLAG_GLOBAL} +}; + +static PSI_memory_info all_client_plugin_memory[]= +{ + {&key_memory_root, "root", PSI_FLAG_GLOBAL}, + {&key_memory_load_env_plugins, "load_env_plugins", PSI_FLAG_GLOBAL} +}; + +static void init_client_plugin_psi_keys() +{ + const char* category= "sql"; + int count; + + count= array_elements(all_client_plugin_mutexes); + mysql_mutex_register(category, all_client_plugin_mutexes, count); + + count= array_elements(all_client_plugin_memory); + mysql_memory_register(category, all_client_plugin_memory, count); +} +#endif /* HAVE_PSI_INTERFACE */ + +struct st_client_plugin_int { + struct st_client_plugin_int *next; + void *dlhandle; + struct st_mysql_client_plugin *plugin; +}; + +static my_bool initialized= 0; +static MEM_ROOT mem_root; + +static const char *plugin_declarations_sym= "_mysql_client_plugin_declaration_"; +static uint plugin_version[MYSQL_CLIENT_MAX_PLUGINS]= +{ + 0, /* these two are taken by Connector/C */ + 0, /* these two are taken by Connector/C */ + MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION, + MYSQL_CLIENT_TRACE_PLUGIN_INTERFACE_VERSION, +}; + +/* + Loaded plugins are stored in a linked list. + The list is append-only, the elements are added to the head (like in a stack). + The elements are added under a mutex, but the list can be read and traversed + without any mutex because once an element is added to the list, it stays + there. The main purpose of a mutex is to prevent two threads from + loading the same plugin twice in parallel. +*/ +struct st_client_plugin_int *plugin_list[MYSQL_CLIENT_MAX_PLUGINS]; +static mysql_mutex_t LOCK_load_client_plugin; + +static int is_not_initialized(MYSQL *mysql, const char *name) +{ + if (initialized) + return 0; + + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, + unknown_sqlstate, ER(CR_AUTH_PLUGIN_CANNOT_LOAD), + name, "not initialized"); + return 1; +} + +/** + finds a plugin in the list + + @param name plugin name to search for + @param type plugin type + + @note this does NOT necessarily need a mutex, take care! + + @retval a pointer to a found plugin or 0 +*/ +static struct st_mysql_client_plugin * +find_plugin(const char *name, int type) +{ + struct st_client_plugin_int *p; + + DBUG_ASSERT(initialized); + DBUG_ASSERT(type >= 0 && type < MYSQL_CLIENT_MAX_PLUGINS); + if (type < 0 || type >= MYSQL_CLIENT_MAX_PLUGINS) + return 0; + + for (p= plugin_list[type]; p; p= p->next) + { + if (strcmp(p->plugin->name, name) == 0) + return p->plugin; + } + return NULL; +} + +/** + verifies the plugin and adds it to the list + + @param mysql MYSQL structure (for error reporting) + @param plugin plugin to install + @param dlhandle a handle to the shared object (returned by dlopen) + or 0 if the plugin was not dynamically loaded + @param argc number of arguments in the 'va_list args' + @param args arguments passed to the plugin initialization function + + @retval a pointer to an installed plugin or 0 +*/ +static struct st_mysql_client_plugin * +do_add_plugin(MYSQL *mysql, struct st_mysql_client_plugin *plugin, + void *dlhandle, + int argc, va_list args) +{ + const char *errmsg; + struct st_client_plugin_int plugin_int, *p; + char errbuf[1024]; + + DBUG_ASSERT(initialized); + + plugin_int.plugin= plugin; + plugin_int.dlhandle= dlhandle; + + if (plugin->type >= MYSQL_CLIENT_MAX_PLUGINS) + { + errmsg= "Unknown client plugin type"; + goto err1; + } + + if (plugin->interface_version < plugin_version[plugin->type] || + (plugin->interface_version >> 8) > + (plugin_version[plugin->type] >> 8)) + { + errmsg= "Incompatible client plugin interface"; + goto err1; + } + +#if defined(CLIENT_PROTOCOL_TRACING) && !defined(MYSQL_SERVER) + /* + If we try to load a protocol trace plugin but one is already + loaded (global trace_plugin pointer is not NULL) then we ignore + the new trace plugin and give error. This is done before the + new plugin gets initialized. + */ + if (plugin->type == MYSQL_CLIENT_TRACE_PLUGIN && NULL != trace_plugin) + { + errmsg= "Can not load another trace plugin while one is already loaded"; + goto err1; + } +#endif + + /* Call the plugin initialization function, if any */ + if (plugin->init && plugin->init(errbuf, sizeof(errbuf), argc, args)) + { + errmsg= errbuf; + goto err1; + } + + p= (struct st_client_plugin_int *) + memdup_root(&mem_root, &plugin_int, sizeof(plugin_int)); + + if (!p) + { + errmsg= "Out of memory"; + goto err2; + } + + mysql_mutex_assert_owner(&LOCK_load_client_plugin); + + p->next= plugin_list[plugin->type]; + plugin_list[plugin->type]= p; + net_clear_error(&mysql->net); + +#if defined(CLIENT_PROTOCOL_TRACING) && !defined(MYSQL_SERVER) + /* + If loaded plugin is a protocol trace one, then set the global + trace_plugin pointer to point at it. When trace_plugin is not NULL, + each new connection will be traced using the plugin pointed by it + (see MYSQL_TRACE_STAGE() macro in libmysql/mysql_trace.h). + */ + if (plugin->type == MYSQL_CLIENT_TRACE_PLUGIN) + { + trace_plugin = (struct st_mysql_client_plugin_TRACE*)plugin; + } +#endif + + return plugin; + +err2: + if (plugin->deinit) + plugin->deinit(); +err1: + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, unknown_sqlstate, + ER(CR_AUTH_PLUGIN_CANNOT_LOAD), plugin->name, + errmsg); + if (dlhandle) + dlclose(dlhandle); + return NULL; +} + + +static struct st_mysql_client_plugin * +add_plugin_noargs(MYSQL *mysql, struct st_mysql_client_plugin *plugin, + void *dlhandle, + int argc, ...) +{ + struct st_mysql_client_plugin *retval= NULL; + va_list ap; + va_start(ap, argc); + retval= do_add_plugin(mysql, plugin, dlhandle, argc, ap); + va_end(ap); + return retval; +} + + +static struct st_mysql_client_plugin * +add_plugin_withargs(MYSQL *mysql, struct st_mysql_client_plugin *plugin, + void *dlhandle, + int argc, va_list args) +{ + return do_add_plugin(mysql, plugin, dlhandle, argc, args); +} + + + +/** + Loads plugins which are specified in the environment variable + LIBMYSQL_PLUGINS. + + Multiple plugins must be separated by semicolon. This function doesn't + return or log an error. + + The function is be called by mysql_client_plugin_init + + @todo + Support extended syntax, passing parameters to plugins, for example + LIBMYSQL_PLUGINS="plugin1(param1,param2);plugin2;..." + or + LIBMYSQL_PLUGINS="plugin1=int:param1,str:param2;plugin2;..." +*/ +static void load_env_plugins(MYSQL *mysql) +{ + char *plugs, *free_env, *s= getenv("LIBMYSQL_PLUGINS"); + char *enable_cleartext_plugin= getenv("LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN"); + + if (enable_cleartext_plugin && strchr("1Yy", enable_cleartext_plugin[0])) + libmysql_cleartext_plugin_enabled= 1; + + /* no plugins to load */ + if(!s) + return; + + free_env= plugs= my_strdup(key_memory_load_env_plugins, + s, MYF(MY_WME)); + + do { + if ((s= strchr(plugs, ';'))) + *s= '\0'; + mysql_load_plugin(mysql, plugs, -1, 0); + plugs= s + 1; + } while (s); + + my_free(free_env); + +} + + +/********** extern functions to be used by libmysql *********************/ + +/** + Initializes the client plugin layer. + + This function must be called before any other client plugin function. + + @retval 0 successful + @retval != 0 error occured +*/ +int mysql_client_plugin_init() +{ + MYSQL mysql; + struct st_mysql_client_plugin **builtin; + + if (initialized) + return 0; + +#ifdef HAVE_PSI_INTERFACE + init_client_plugin_psi_keys(); +#endif /* HAVE_PSI_INTERFACE */ + + memset(&mysql, 0, sizeof(mysql)); /* dummy mysql for set_mysql_extended_error */ + + mysql_mutex_init(key_mutex_LOCK_load_client_plugin, + &LOCK_load_client_plugin, MY_MUTEX_INIT_SLOW); + init_alloc_root(key_memory_root, &mem_root, 128, 128); + + memset(&plugin_list, 0, sizeof(plugin_list)); + + initialized= 1; + + mysql_mutex_lock(&LOCK_load_client_plugin); + + for (builtin= mysql_client_builtins; *builtin; builtin++) + add_plugin_noargs(&mysql, *builtin, 0, 0); + + mysql_mutex_unlock(&LOCK_load_client_plugin); + + load_env_plugins(&mysql); + + mysql_close_free(&mysql); + + return 0; +} + +/** + Deinitializes the client plugin layer. + + Unloades all client plugins and frees any associated resources. +*/ +void mysql_client_plugin_deinit() +{ + int i; + struct st_client_plugin_int *p; + + if (!initialized) + return; + + for (i=0; i < MYSQL_CLIENT_MAX_PLUGINS; i++) + for (p= plugin_list[i]; p; p= p->next) + { + if (p->plugin->deinit) + p->plugin->deinit(); + if (p->dlhandle) + dlclose(p->dlhandle); + } + + memset(&plugin_list, 0, sizeof(plugin_list)); + initialized= 0; + free_root(&mem_root, MYF(0)); + mysql_mutex_destroy(&LOCK_load_client_plugin); +} + + +/************* public facing functions, for client consumption *********/ + +/* see for a full description */ +struct st_mysql_client_plugin * +mysql_client_register_plugin(MYSQL *mysql, + struct st_mysql_client_plugin *plugin) +{ + if (is_not_initialized(mysql, plugin->name)) + return NULL; + + mysql_mutex_lock(&LOCK_load_client_plugin); + + /* make sure the plugin wasn't loaded meanwhile */ + if (find_plugin(plugin->name, plugin->type)) + { + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, + unknown_sqlstate, ER(CR_AUTH_PLUGIN_CANNOT_LOAD), + plugin->name, "it is already loaded"); + plugin= NULL; + } + else + plugin= add_plugin_noargs(mysql, plugin, 0, 0); + + mysql_mutex_unlock(&LOCK_load_client_plugin); + return plugin; +} + +/* see for a full description */ +struct st_mysql_client_plugin * +mysql_load_plugin_v(MYSQL *mysql, const char *name, int type, + int argc, va_list args) +{ + const char *errmsg; + char dlpath[FN_REFLEN+1]; + void *sym, *dlhandle; + struct st_mysql_client_plugin *plugin; + const char *plugindir; +#ifdef _WIN32 + char win_errormsg[2048]; +#endif + + DBUG_ENTER ("mysql_load_plugin_v"); + DBUG_PRINT ("entry", ("name=%s type=%d int argc=%d", name, type, argc)); + if (is_not_initialized(mysql, name)) + { + DBUG_PRINT ("leave", ("mysql not initialized")); + DBUG_RETURN (NULL); + } + + mysql_mutex_lock(&LOCK_load_client_plugin); + + /* make sure the plugin wasn't loaded meanwhile */ + if (type >= 0 && find_plugin(name, type)) + { + errmsg= "it is already loaded"; + goto err; + } + + if (mysql->options.extension && mysql->options.extension->plugin_dir) + { + plugindir= mysql->options.extension->plugin_dir; + } + else + { + plugindir= getenv("LIBMYSQL_PLUGIN_DIR"); + if (!plugindir) + { + plugindir= PLUGINDIR; + } + } + + /* Compile dll path */ + strxnmov(dlpath, sizeof(dlpath) - 1, + plugindir, "/", + name, SO_EXT, NullS); + + DBUG_PRINT ("info", ("dlopeninig %s", dlpath)); + /* Open new dll handle */ + if (!(dlhandle= dlopen(dlpath, RTLD_NOW))) + { +#if defined(__APPLE__) + /* Apple supports plugins with .so also, so try this as well */ + strxnmov(dlpath, sizeof(dlpath) - 1, + plugindir, "/", + name, ".so", NullS); + if ((dlhandle= dlopen(dlpath, RTLD_NOW))) + goto have_plugin; +#endif + +#ifdef _WIN32 + /* There should be no win32 calls between failed dlopen() and GetLastError() */ + if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + 0, GetLastError(), 0, win_errormsg, 2048, NULL)) + errmsg= win_errormsg; + else + errmsg= ""; +#else + errmsg= dlerror(); +#endif + DBUG_PRINT ("info", ("failed to dlopen")); + goto err; + } + +#if defined(__APPLE__) +have_plugin: +#endif + if (!(sym= dlsym(dlhandle, plugin_declarations_sym))) + { + errmsg= "not a plugin"; + dlclose(dlhandle); + goto err; + } + + plugin= (struct st_mysql_client_plugin*)sym; + + if (type >=0 && type != plugin->type) + { + errmsg= "type mismatch"; + goto err; + } + + if (strcmp(name, plugin->name)) + { + errmsg= "name mismatch"; + goto err; + } + + if (type < 0 && find_plugin(name, plugin->type)) + { + errmsg= "it is already loaded"; + goto err; + } + + plugin= add_plugin_withargs(mysql, plugin, dlhandle, argc, args); + + mysql_mutex_unlock(&LOCK_load_client_plugin); + + DBUG_PRINT ("leave", ("plugin loaded ok")); + DBUG_RETURN (plugin); + +err: + mysql_mutex_unlock(&LOCK_load_client_plugin); + DBUG_PRINT ("leave", ("plugin load error : %s", errmsg)); + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, unknown_sqlstate, + ER(CR_AUTH_PLUGIN_CANNOT_LOAD), name, errmsg); + DBUG_RETURN (NULL); +} + +/* see for a full description */ +struct st_mysql_client_plugin * +mysql_load_plugin(MYSQL *mysql, const char *name, int type, int argc, ...) +{ + struct st_mysql_client_plugin *p; + va_list args; + va_start(args, argc); + p= mysql_load_plugin_v(mysql, name, type, argc, args); + va_end(args); + return p; +} + +/* see for a full description */ +struct st_mysql_client_plugin * +mysql_client_find_plugin(MYSQL *mysql, const char *name, int type) +{ + struct st_mysql_client_plugin *p; + + DBUG_ENTER ("mysql_client_find_plugin"); + DBUG_PRINT ("entry", ("name=%s, type=%d", name, type)); + if (is_not_initialized(mysql, name)) + DBUG_RETURN (NULL); + + if (type < 0 || type >= MYSQL_CLIENT_MAX_PLUGINS) + { + set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, unknown_sqlstate, + ER(CR_AUTH_PLUGIN_CANNOT_LOAD), name, + "invalid type"); + } + + if ((p= find_plugin(name, type))) + { + DBUG_PRINT ("leave", ("found %p", p)); + DBUG_RETURN (p); + } + + /* not found, load it */ + p= mysql_load_plugin(mysql, name, type, 0); + DBUG_PRINT ("leave", ("loaded %p", p)); + DBUG_RETURN (p); +} + + +/* see for a full description */ +int mysql_plugin_options(struct st_mysql_client_plugin *plugin, + const char *option, + const void *value) +{ + DBUG_ENTER("mysql_plugin_options"); + /* does the plugin support options call? */ + if (!plugin || !plugin->options) + DBUG_RETURN(1); + DBUG_RETURN(plugin->options(option, value)); +} diff --git a/mysql/sql-common/my_time.c b/mysql/sql-common/my_time.c new file mode 100644 index 0000000..35ca499 --- /dev/null +++ b/mysql/sql-common/my_time.c @@ -0,0 +1,2022 @@ +/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include +#include +/* Windows version of localtime_r() is declared in my_global.h */ +#include +#include "binary_log_types.h" + +ulonglong log_10_int[20]= +{ + 1, 10, 100, 1000, 10000UL, 100000UL, 1000000UL, 10000000UL, + 100000000ULL, 1000000000ULL, 10000000000ULL, 100000000000ULL, + 1000000000000ULL, 10000000000000ULL, 100000000000000ULL, + 1000000000000000ULL, 10000000000000000ULL, 100000000000000000ULL, + 1000000000000000000ULL, 10000000000000000000ULL +}; + + +const char my_zero_datetime6[]= "0000-00-00 00:00:00.000000"; + + +/* Position for YYYY-DD-MM HH-MM-DD.FFFFFF AM in default format */ + +static uchar internal_format_positions[]= +{0, 1, 2, 3, 4, 5, 6, (uchar) 255}; + +static char time_separator=':'; + +static ulong const days_at_timestart=719528; /* daynr at 1970.01.01 */ +uchar days_in_month[]= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0}; + +/* + Offset of system time zone from UTC in seconds used to speed up + work of my_system_gmt_sec() function. +*/ +static long my_time_zone=0; + + +/* Calc days in one year. works with 0 <= year <= 99 */ + +uint calc_days_in_year(uint year) +{ + return ((year & 3) == 0 && (year%100 || (year%400 == 0 && year)) ? + 366 : 365); +} + + +/** + Set MYSQL_TIME structure to 0000-00-00 00:00:00.000000 + @param tm[OUT] The value to set. + @param time_type Timestasmp type +*/ +void set_zero_time(MYSQL_TIME *tm, + enum enum_mysql_timestamp_type time_type) +{ + memset(tm, 0, sizeof(*tm)); + tm->time_type= time_type; +} + + +/** + Set hour, minute and second of a MYSQL_TIME variable to maximum time value. + Unlike set_max_time(), does not touch the other structure members. +*/ +void set_max_hhmmss(MYSQL_TIME *tm) +{ + tm->hour= TIME_MAX_HOUR; + tm->minute= TIME_MAX_MINUTE; + tm->second= TIME_MAX_SECOND; +} + + +/** + Set MYSQL_TIME variable to maximum time value + @param tm OUT The variable to set. + @param neg Sign: 1 if negative, 0 if positive. +*/ +void set_max_time(MYSQL_TIME *tm, my_bool neg) +{ + set_zero_time(tm, MYSQL_TIMESTAMP_TIME); + set_max_hhmmss(tm); + tm->neg= neg; +} + + +/** + @brief Check datetime value for validity according to flags. + + @param[in] ltime Date to check. + @param[in] not_zero_date ltime is not the zero date + @param[in] flags flags to check + (see str_to_datetime() flags in my_time.h) + @param[out] was_cut set to 2 if value was invalid according to flags. + (Feb 29 in non-leap etc.) This remains unchanged + if value is not invalid. + @details Here we assume that year and month is ok! + If month is 0 we allow any date. (This only happens if we allow zero + date parts in str_to_datetime()) + Disallow dates with zero year and non-zero month and/or day. + + @return + 0 OK + 1 error +*/ + +my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date, + my_time_flags_t flags, int *was_cut) +{ + if (not_zero_date) + { + if (((flags & TIME_NO_ZERO_IN_DATE) || !(flags & TIME_FUZZY_DATE)) && + (ltime->month == 0 || ltime->day == 0)) + { + *was_cut= MYSQL_TIME_WARN_ZERO_IN_DATE; + return TRUE; + } + else if ((!(flags & TIME_INVALID_DATES) && + ltime->month && ltime->day > days_in_month[ltime->month-1] && + (ltime->month != 2 || calc_days_in_year(ltime->year) != 366 || + ltime->day != 29))) + { + *was_cut= MYSQL_TIME_WARN_OUT_OF_RANGE; + return TRUE; + } + } + else if (flags & TIME_NO_ZERO_DATE) + { + *was_cut= MYSQL_TIME_WARN_ZERO_DATE; + return TRUE; + } + return FALSE; +} + + +/** + Check if TIME fields are fatally bad and cannot be further adjusted. + @param ltime Time value. + @retval TRUE if the value is fatally bad. + @retval FALSE if the value is Ok. +*/ +my_bool check_time_mmssff_range(const MYSQL_TIME *ltime) +{ + return ltime->minute >= 60 || ltime->second >= 60 || + ltime->second_part > 999999; +} + + +/** + Check TIME range. The value can include day part, + for example: '1 10:20:30.123456'. + + minute, second and second_part values are not checked + unless hour is equal TIME_MAX_HOUR. + + @param ltime Rime value. + @returns Test result. + @retval FALSE if value is Ok. + @retval TRUE if value is out of range. +*/ +my_bool check_time_range_quick(const MYSQL_TIME *ltime) +{ + longlong hour= (longlong) ltime->hour + 24LL * ltime->day; + /* The input value should not be fatally bad */ + DBUG_ASSERT(!check_time_mmssff_range(ltime)); + if (hour <= TIME_MAX_HOUR && + (hour != TIME_MAX_HOUR || ltime->minute != TIME_MAX_MINUTE || + ltime->second != TIME_MAX_SECOND || !ltime->second_part)) + return FALSE; + return TRUE; +} + + +/** + Check datetime, date, or normalized time (i.e. time without days) range. + @param ltime Datetime value. + @returns + @retval FALSE on success + @retval TRUE on error +*/ +my_bool check_datetime_range(const MYSQL_TIME *ltime) +{ + /* + In case of MYSQL_TIMESTAMP_TIME hour value can be up to TIME_MAX_HOUR. + In case of MYSQL_TIMESTAMP_DATETIME it cannot be bigger than 23. + */ + return + ltime->year > 9999U || ltime->month > 12U || ltime->day > 31U || + ltime->minute > 59U || ltime->second > 59U || ltime->second_part > 999999U || + (ltime->hour > + (ltime->time_type == MYSQL_TIMESTAMP_TIME ? TIME_MAX_HOUR : 23U)); +} + + +/* + Convert a timestamp string to a MYSQL_TIME value. + + SYNOPSIS + str_to_datetime() + str String to parse + length Length of string + l_time Date is stored here + flags Bitmap of following items + TIME_FUZZY_DATE Set if we should allow partial dates + TIME_DATETIME_ONLY Set if we only allow full datetimes. + TIME_NO_ZERO_IN_DATE Don't allow partial dates + TIME_NO_ZERO_DATE Don't allow 0000-00-00 date + TIME_INVALID_DATES Allow 2000-02-31 + status Conversion status + + + DESCRIPTION + At least the following formats are recogniced (based on number of digits) + YYMMDD, YYYYMMDD, YYMMDDHHMMSS, YYYYMMDDHHMMSS + YY-MM-DD, YYYY-MM-DD, YY-MM-DD HH.MM.SS + YYYYMMDDTHHMMSS where T is a the character T (ISO8601) + Also dates where all parts are zero are allowed + + The second part may have an optional .###### fraction part. + + NOTES + This function should work with a format position vector as long as the + following things holds: + - All date are kept together and all time parts are kept together + - Date and time parts must be separated by blank + - Second fractions must come after second part and be separated + by a '.'. (The second fractions are optional) + - AM/PM must come after second fractions (or after seconds if no fractions) + - Year must always been specified. + - If time is before date, then we will use datetime format only if + the argument consist of two parts, separated by space. + Otherwise we will assume the argument is a date. + - The hour part must be specified in hour-minute-second order. + + status->warnings is set to: + 0 Value OK + MYSQL_TIME_WARN_TRUNCATED If value was cut during conversion + MYSQL_TIME_WARN_OUT_OF_RANGE check_date(date,flags) considers date invalid + + l_time->time_type is set as follows: + MYSQL_TIMESTAMP_NONE String wasn't a timestamp, like + [DD [HH:[MM:[SS]]]].fraction. + l_time is not changed. + MYSQL_TIMESTAMP_DATE DATE string (YY MM and DD parts ok) + MYSQL_TIMESTAMP_DATETIME Full timestamp + MYSQL_TIMESTAMP_ERROR Timestamp with wrong values. + All elements in l_time is set to 0 + RETURN VALUES + 0 - Ok + 1 - Error +*/ + +#define MAX_DATE_PARTS 8 + +my_bool +str_to_datetime(const char *str, size_t length, MYSQL_TIME *l_time, + my_time_flags_t flags, MYSQL_TIME_STATUS *status) +{ + uint field_length= 0, year_length= 0, digits, i, number_of_fields; + uint date[MAX_DATE_PARTS], date_len[MAX_DATE_PARTS]; + uint add_hours= 0, start_loop; + ulong not_zero_date, allow_space; + my_bool is_internal_format; + const char *pos, *last_field_pos= NULL; + const char *end=str+length; + const uchar *format_position; + my_bool found_delimitier= 0, found_space= 0; + uint frac_pos, frac_len; + DBUG_ENTER("str_to_datetime"); + DBUG_PRINT("ENTER", ("str: %.*s", (int)length, str)); + + my_time_status_init(status); + + /* Skip space at start */ + for (; str != end && my_isspace(&my_charset_latin1, *str) ; str++) + ; + if (str == end || ! my_isdigit(&my_charset_latin1, *str)) + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + l_time->time_type= MYSQL_TIMESTAMP_NONE; + DBUG_RETURN(1); + } + + is_internal_format= 0; + /* This has to be changed if want to activate different timestamp formats */ + format_position= internal_format_positions; + + /* + Calculate number of digits in first part. + If length= 8 or >= 14 then year is of format YYYY. + (YYYY-MM-DD, YYYYMMDD, YYYYYMMDDHHMMSS) + */ + for (pos=str; + pos != end && (my_isdigit(&my_charset_latin1,*pos) || *pos == 'T'); + pos++) + ; + + digits= (uint) (pos-str); + start_loop= 0; /* Start of scan loop */ + date_len[format_position[0]]= 0; /* Length of year field */ + if (pos == end || *pos == '.') + { + /* Found date in internal format (only numbers like YYYYMMDD) */ + year_length= (digits == 4 || digits == 8 || digits >= 14) ? 4 : 2; + field_length= year_length; + is_internal_format= 1; + format_position= internal_format_positions; + } + else + { + if (format_position[0] >= 3) /* If year is after HHMMDD */ + { + /* + If year is not in first part then we have to determinate if we got + a date field or a datetime field. + We do this by checking if there is two numbers separated by + space in the input. + */ + while (pos < end && !my_isspace(&my_charset_latin1, *pos)) + pos++; + while (pos < end && !my_isdigit(&my_charset_latin1, *pos)) + pos++; + if (pos == end) + { + if (flags & TIME_DATETIME_ONLY) + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + l_time->time_type= MYSQL_TIMESTAMP_NONE; + DBUG_RETURN(1); /* Can't be a full datetime */ + } + /* Date field. Set hour, minutes and seconds to 0 */ + date[0]= date[1]= date[2]= date[3]= date[4]= 0; + start_loop= 5; /* Start with first date part */ + } + } + + field_length= format_position[0] == 0 ? 4 : 2; + } + + /* + Only allow space in the first "part" of the datetime field and: + - after days, part seconds + - before and after AM/PM (handled by code later) + + 2003-03-03 20:00:20 AM + 20:00:20.000000 AM 03-03-2000 + */ + i= MY_MAX((uint) format_position[0], (uint) format_position[1]); + set_if_bigger(i, (uint) format_position[2]); + allow_space= ((1 << i) | (1 << format_position[6])); + allow_space&= (1 | 2 | 4 | 8 | 64); + + not_zero_date= 0; + for (i = start_loop; + i < MAX_DATE_PARTS-1 && str != end && + my_isdigit(&my_charset_latin1,*str); + i++) + { + const char *start= str; + ulong tmp_value= (uint) (uchar) (*str++ - '0'); + + /* + Internal format means no delimiters; every field has a fixed + width. Otherwise, we scan until we find a delimiter and discard + leading zeroes -- except for the microsecond part, where leading + zeroes are significant, and where we never process more than six + digits. + */ + my_bool scan_until_delim= !is_internal_format && + ((i != format_position[6])); + + while (str != end && my_isdigit(&my_charset_latin1,str[0]) && + (scan_until_delim || --field_length)) + { + tmp_value=tmp_value*10 + (ulong) (uchar) (*str - '0'); + str++; + } + date_len[i]= (uint) (str - start); + if (tmp_value > 999999) /* Impossible date part */ + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + l_time->time_type= MYSQL_TIMESTAMP_NONE; + DBUG_RETURN(1); + } + date[i]=tmp_value; + not_zero_date|= tmp_value; + + /* Length of next field */ + field_length= format_position[i+1] == 0 ? 4 : 2; + + if ((last_field_pos= str) == end) + { + i++; /* Register last found part */ + break; + } + /* Allow a 'T' after day to allow CCYYMMDDT type of fields */ + if (i == format_position[2] && *str == 'T') + { + str++; /* ISO8601: CCYYMMDDThhmmss */ + continue; + } + if (i == format_position[5]) /* Seconds */ + { + if (*str == '.') /* Followed by part seconds */ + { + str++; + /* + Shift last_field_pos, so '2001-01-01 00:00:00.' + is treated as a valid value + */ + last_field_pos= str; + field_length= 6; /* 6 digits */ + } + else if (my_isdigit(&my_charset_latin1,str[0])) + { + /* + We do not see a decimal point which would have indicated a + fractional second part in further read. So we skip the further + processing of digits. + */ + i++; + break; + } + continue; + } + while (str != end && + (my_ispunct(&my_charset_latin1,*str) || + my_isspace(&my_charset_latin1,*str))) + { + if (my_isspace(&my_charset_latin1,*str)) + { + if (!(allow_space & (1 << i))) + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + l_time->time_type= MYSQL_TIMESTAMP_NONE; + DBUG_RETURN(1); + } + found_space= 1; + } + str++; + found_delimitier= 1; /* Should be a 'normal' date */ + } + /* Check if next position is AM/PM */ + if (i == format_position[6]) /* Seconds, time for AM/PM */ + { + i++; /* Skip AM/PM part */ + if (format_position[7] != 255) /* If using AM/PM */ + { + if (str+2 <= end && (str[1] == 'M' || str[1] == 'm')) + { + if (str[0] == 'p' || str[0] == 'P') + add_hours= 12; + else if (str[0] != 'a' || str[0] != 'A') + continue; /* Not AM/PM */ + str+= 2; /* Skip AM/PM */ + /* Skip space after AM/PM */ + while (str != end && my_isspace(&my_charset_latin1,*str)) + str++; + } + } + } + last_field_pos= str; + } + if (found_delimitier && !found_space && (flags & TIME_DATETIME_ONLY)) + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + l_time->time_type= MYSQL_TIMESTAMP_NONE; + DBUG_RETURN(1); /* Can't be a datetime */ + } + + str= last_field_pos; + + number_of_fields= i - start_loop; + while (i < MAX_DATE_PARTS) + { + date_len[i]= 0; + date[i++]= 0; + } + + if (!is_internal_format) + { + year_length= date_len[(uint) format_position[0]]; + if (!year_length) /* Year must be specified */ + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + l_time->time_type= MYSQL_TIMESTAMP_NONE; + DBUG_RETURN(1); + } + + l_time->year= date[(uint) format_position[0]]; + l_time->month= date[(uint) format_position[1]]; + l_time->day= date[(uint) format_position[2]]; + l_time->hour= date[(uint) format_position[3]]; + l_time->minute= date[(uint) format_position[4]]; + l_time->second= date[(uint) format_position[5]]; + + frac_pos= (uint) format_position[6]; + frac_len= date_len[frac_pos]; + status->fractional_digits= frac_len; + if (frac_len < 6) + date[frac_pos]*= (uint) log_10_int[DATETIME_MAX_DECIMALS - frac_len]; + l_time->second_part= date[frac_pos]; + + if (format_position[7] != (uchar) 255) + { + if (l_time->hour > 12) + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + goto err; + } + l_time->hour= l_time->hour%12 + add_hours; + } + } + else + { + l_time->year= date[0]; + l_time->month= date[1]; + l_time->day= date[2]; + l_time->hour= date[3]; + l_time->minute= date[4]; + l_time->second= date[5]; + if (date_len[6] < 6) + date[6]*= (uint) log_10_int[DATETIME_MAX_DECIMALS - date_len[6]]; + l_time->second_part=date[6]; + status->fractional_digits= date_len[6]; + } + l_time->neg= 0; + + if (year_length == 2 && not_zero_date) + l_time->year+= (l_time->year < YY_PART_YEAR ? 2000 : 1900); + + /* + Set time_type before check_datetime_range(), + as the latter relies on initialized time_type value. + */ + l_time->time_type= (number_of_fields <= 3 ? + MYSQL_TIMESTAMP_DATE : MYSQL_TIMESTAMP_DATETIME); + + if (number_of_fields < 3 || check_datetime_range(l_time)) + { + /* Only give warning for a zero date if there is some garbage after */ + if (!not_zero_date) /* If zero date */ + { + for (; str != end ; str++) + { + if (!my_isspace(&my_charset_latin1, *str)) + { + not_zero_date= 1; /* Give warning */ + break; + } + } + } + status->warnings|= not_zero_date ? MYSQL_TIME_WARN_TRUNCATED : + MYSQL_TIME_WARN_ZERO_DATE; + goto err; + } + + if (check_date(l_time, not_zero_date != 0, flags, &status->warnings)) + goto err; + + /* Scan all digits left after microseconds */ + if (status->fractional_digits == 6 && str != end) + { + if (my_isdigit(&my_charset_latin1, *str)) + { + /* + We don't need the exact nanoseconds value. + Knowing the first digit is enough for rounding. + */ + status->nanoseconds= 100 * (int) (*str++ - '0'); + for (; str != end && my_isdigit(&my_charset_latin1, *str); str++) + { } + } + } + + for (; str != end ; str++) + { + if (!my_isspace(&my_charset_latin1,*str)) + { + status->warnings= MYSQL_TIME_WARN_TRUNCATED; + break; + } + } + + DBUG_RETURN(0); + +err: + set_zero_time(l_time, MYSQL_TIMESTAMP_ERROR); + DBUG_RETURN(1); +} + + +/* + Convert a time string to a MYSQL_TIME struct. + + SYNOPSIS + str_to_time() + str A string in full TIMESTAMP format or + [-] DAYS [H]H:MM:SS, [H]H:MM:SS, [M]M:SS, [H]HMMSS, + [M]MSS or [S]S + There may be an optional [.second_part] after seconds + length Length of str + l_time Store result here + status Conversion status + + status.warning is set to: + MYSQL_TIME_WARN_TRUNCATED flag if the input string + was cut during conversion, and/or + MYSQL_TIME_WARN_OUT_OF_RANGE flag, if the value is out of range. + + NOTES + Because of the extra days argument, this function can only + work with times where the time arguments are in the above order. + + RETURN + 0 ok + 1 error +*/ + +my_bool str_to_time(const char *str, size_t length, MYSQL_TIME *l_time, + MYSQL_TIME_STATUS *status) +{ + ulong date[5]; + ulonglong value; + const char *end=str+length, *end_of_days; + my_bool found_days,found_hours; + uint state; + + my_time_status_init(status); + l_time->neg=0; + for (; str != end && my_isspace(&my_charset_latin1,*str) ; str++) + length--; + if (str != end && *str == '-') + { + l_time->neg=1; + str++; + length--; + } + if (str == end) + return 1; + + /* Check first if this is a full TIMESTAMP */ + if (length >= 12) + { /* Probably full timestamp */ + (void) str_to_datetime(str, length, l_time, + (TIME_FUZZY_DATE | TIME_DATETIME_ONLY), status); + if (l_time->time_type >= MYSQL_TIMESTAMP_ERROR) + return l_time->time_type == MYSQL_TIMESTAMP_ERROR; + my_time_status_init(status); + } + + /* Not a timestamp. Try to get this as a DAYS_TO_SECOND string */ + for (value=0; str != end && my_isdigit(&my_charset_latin1,*str) ; str++) + value=value*10L + (long) (*str - '0'); + + if (value > UINT_MAX) + return 1; + + /* Skip all space after 'days' */ + end_of_days= str; + for (; str != end && my_isspace(&my_charset_latin1, str[0]) ; str++) + ; + + state= 0; + found_days=found_hours=0; + if ((uint) (end-str) > 1 && str != end_of_days && + my_isdigit(&my_charset_latin1, *str)) + { /* Found days part */ + date[0]= (ulong) value; + state= 1; /* Assume next is hours */ + found_days= 1; + } + else if ((end-str) > 1 && *str == time_separator && + my_isdigit(&my_charset_latin1, str[1])) + { + date[0]= 0; /* Assume we found hours */ + date[1]= (ulong) value; + state=2; + found_hours=1; + str++; /* skip ':' */ + } + else + { + /* String given as one number; assume HHMMSS format */ + date[0]= 0; + date[1]= (ulong) (value/10000); + date[2]= (ulong) (value/100 % 100); + date[3]= (ulong) (value % 100); + state=4; + goto fractional; + } + + /* Read hours, minutes and seconds */ + for (;;) + { + for (value=0; str != end && my_isdigit(&my_charset_latin1,*str) ; str++) + value=value*10L + (long) (*str - '0'); + date[state++]= (ulong) value; + if (state == 4 || (end-str) < 2 || *str != time_separator || + !my_isdigit(&my_charset_latin1,str[1])) + break; + str++; /* Skip time_separator (':') */ + } + + if (state != 4) + { /* Not HH:MM:SS */ + /* Fix the date to assume that seconds was given */ + if (!found_hours && !found_days) + { + size_t len= sizeof(long) * (state - 1); + memmove((uchar*) (date+4) - len, (uchar*) (date+state) - len, len); + memset(date, 0, sizeof(long)*(4-state)); + } + else + memset((date+state), 0, sizeof(long)*(4-state)); + } + +fractional: + /* Get fractional second part */ + if ((end-str) >= 2 && *str == '.' && my_isdigit(&my_charset_latin1,str[1])) + { + int field_length= 5; + str++; value=(uint) (uchar) (*str - '0'); + while (++str != end && my_isdigit(&my_charset_latin1, *str)) + { + if (field_length-- > 0) + value= value*10 + (uint) (uchar) (*str - '0'); + } + if (field_length >= 0) + { + status->fractional_digits= DATETIME_MAX_DECIMALS - field_length; + if (field_length > 0) + value*= (long) log_10_int[field_length]; + } + else + { + /* Scan digits left after microseconds */ + status->fractional_digits= 6; + status->nanoseconds= 100 * (int) (str[-1] - '0'); + for ( ; str != end && my_isdigit(&my_charset_latin1, *str); str++) + { } + } + date[4]= (ulong) value; + } + else if ((end - str) == 1 && *str == '.') + { + str++; + date[4]= 0; + } + else + date[4]=0; + + /* Check for exponent part: E | E */ + /* (may occur as result of %g formatting of time value) */ + if ((end - str) > 1 && + (*str == 'e' || *str == 'E') && + (my_isdigit(&my_charset_latin1, str[1]) || + ((str[1] == '-' || str[1] == '+') && + (end - str) > 2 && + my_isdigit(&my_charset_latin1, str[2])))) + return 1; + + if (internal_format_positions[7] != 255) + { + /* Read a possible AM/PM */ + while (str != end && my_isspace(&my_charset_latin1, *str)) + str++; + if (str+2 <= end && (str[1] == 'M' || str[1] == 'm')) + { + if (str[0] == 'p' || str[0] == 'P') + { + str+= 2; + date[1]= date[1]%12 + 12; + } + else if (str[0] == 'a' || str[0] == 'A') + str+=2; + } + } + + /* Integer overflow checks */ + if (date[0] > UINT_MAX || date[1] > UINT_MAX || + date[2] > UINT_MAX || date[3] > UINT_MAX || + date[4] > UINT_MAX) + return 1; + + l_time->year= 0; /* For protocol::store_time */ + l_time->month= 0; + + l_time->day= 0; + l_time->hour= date[1] + date[0] * 24; /* Mix days and hours */ + + l_time->minute= date[2]; + l_time->second= date[3]; + l_time->second_part= date[4]; + l_time->time_type= MYSQL_TIMESTAMP_TIME; + + if (check_time_mmssff_range(l_time)) + { + status->warnings|= MYSQL_TIME_WARN_OUT_OF_RANGE; + return TRUE; + } + + /* Adjust the value into supported MYSQL_TIME range */ + adjust_time_range(l_time, &status->warnings); + + /* Check if there is garbage at end of the MYSQL_TIME specification */ + if (str != end) + { + do + { + if (!my_isspace(&my_charset_latin1,*str)) + { + status->warnings|= MYSQL_TIME_WARN_TRUNCATED; + break; + } + } while (++str != end); + } + return 0; +} + + +/** + Convert number to TIME + @param nr Number to convert. + @param OUT ltime Variable to convert to. + @param OUT warnings Warning vector. + + @retval false OK + @retval true No. is out of range +*/ +my_bool +number_to_time(longlong nr, MYSQL_TIME *ltime, int *warnings) +{ + if (nr > TIME_MAX_VALUE) + { + /* For huge numbers try full DATETIME, like str_to_time does. */ + if (nr >= 10000000000LL) /* '0001-00-00 00-00-00' */ + { + int warnings_backup= *warnings; + if (number_to_datetime(nr, ltime, 0, warnings) != -1LL) + return FALSE; + *warnings= warnings_backup; + } + set_max_time(ltime, 0); + *warnings|= MYSQL_TIME_WARN_OUT_OF_RANGE; + return TRUE; + } + else if (nr < -TIME_MAX_VALUE) + { + set_max_time(ltime, 1); + *warnings|= MYSQL_TIME_WARN_OUT_OF_RANGE; + return TRUE; + } + if ((ltime->neg= (nr < 0))) + nr= -nr; + if (nr % 100 >= 60 || nr / 100 % 100 >= 60) /* Check hours and minutes */ + { + set_zero_time(ltime, MYSQL_TIMESTAMP_TIME); + *warnings|= MYSQL_TIME_WARN_OUT_OF_RANGE; + return TRUE; + } + ltime->time_type= MYSQL_TIMESTAMP_TIME; + ltime->year= ltime->month= ltime->day= 0; + TIME_set_hhmmss(ltime, (uint)nr); + ltime->second_part= 0; + return FALSE; +} + + +/** + Adjust 'time' value to lie in the MYSQL_TIME range. + If the time value lies outside of the range [-838:59:59, 838:59:59], + set it to the closest endpoint of the range and set + MYSQL_TIME_WARN_OUT_OF_RANGE flag in the 'warning' variable. + + @param time pointer to MYSQL_TIME value + @param warning set MYSQL_TIME_WARN_OUT_OF_RANGE flag if the value is out of range +*/ +void adjust_time_range(struct st_mysql_time *my_time, int *warning) +{ + DBUG_ASSERT(!check_time_mmssff_range(my_time)); + if (check_time_range_quick(my_time)) + { + my_time->day= my_time->second_part= 0; + set_max_hhmmss(my_time); + *warning|= MYSQL_TIME_WARN_OUT_OF_RANGE; + } +} + + +/* + Prepare offset of system time zone from UTC for my_system_gmt_sec() func. + + SYNOPSIS + my_init_time() +*/ +void my_init_time(void) +{ + time_t seconds; + struct tm *l_time,tm_tmp; + MYSQL_TIME my_time; + my_bool not_used; + + seconds= (time_t) time((time_t*) 0); + localtime_r(&seconds,&tm_tmp); + l_time= &tm_tmp; + my_time_zone= 3600; /* Comp. for -3600 in my_gmt_sec */ + my_time.year= (uint) l_time->tm_year+1900; + my_time.month= (uint) l_time->tm_mon+1; + my_time.day= (uint) l_time->tm_mday; + my_time.hour= (uint) l_time->tm_hour; + my_time.minute= (uint) l_time->tm_min; + my_time.second= (uint) l_time->tm_sec; + my_time.time_type= MYSQL_TIMESTAMP_DATETIME; + my_time.neg= 0; + my_time.second_part= 0; + my_system_gmt_sec(&my_time, &my_time_zone, ¬_used); /* Init my_time_zone */ +} + + +/* + Handle 2 digit year conversions + + SYNOPSIS + year_2000_handling() + year 2 digit year + + RETURN + Year between 1970-2069 +*/ + +uint year_2000_handling(uint year) +{ + if ((year=year+1900) < 1900+YY_PART_YEAR) + year+=100; + return year; +} + + +/* + Calculate nr of day since year 0 in new date-system (from 1615) + + SYNOPSIS + calc_daynr() + year Year (exact 4 digit year, no year conversions) + month Month + day Day + + NOTES: 0000-00-00 is a valid date, and will return 0 + + RETURN + Days since 0000-00-00 +*/ + +long calc_daynr(uint year,uint month,uint day) +{ + long delsum; + int temp; + int y= year; /* may be < 0 temporarily */ + DBUG_ENTER("calc_daynr"); + + if (y == 0 && month == 0) + DBUG_RETURN(0); /* Skip errors */ + /* Cast to int to be able to handle month == 0 */ + delsum= (long) (365 * y + 31 *((int) month - 1) + (int) day); + if (month <= 2) + y--; + else + delsum-= (long) ((int) month * 4 + 23) / 10; + temp=(int) ((y/100+1)*3)/4; + DBUG_PRINT("exit",("year: %d month: %d day: %d -> daynr: %ld", + y+(month <= 2),month,day,delsum+y/4-temp)); + DBUG_ASSERT(delsum+(int) y/4-temp >= 0); + DBUG_RETURN(delsum+(int) y/4-temp); +} /* calc_daynr */ + + +/* + Convert time in MYSQL_TIME representation in system time zone to its + my_time_t form (number of seconds in UTC since begginning of Unix Epoch). + + SYNOPSIS + my_system_gmt_sec() + t - time value to be converted + my_timezone - pointer to long where offset of system time zone + from UTC will be stored for caching + in_dst_time_gap - set to true if time falls into spring time-gap + + NOTES + The idea is to cache the time zone offset from UTC (including daylight + saving time) for the next call to make things faster. But currently we + just calculate this offset during startup (by calling my_init_time() + function) and use it all the time. + Time value provided should be legal time value (e.g. '2003-01-01 25:00:00' + is not allowed). + + RETURN VALUE + Time in UTC seconds since Unix Epoch representation. +*/ +my_time_t +my_system_gmt_sec(const MYSQL_TIME *t_src, long *my_timezone, + my_bool *in_dst_time_gap) +{ + uint loop; + time_t tmp= 0; + int shift= 0; + MYSQL_TIME tmp_time; + MYSQL_TIME *t= &tmp_time; + struct tm *l_time,tm_tmp; + long diff, current_timezone; + + /* + Use temp variable to avoid trashing input data, which could happen in + case of shift required for boundary dates processing. + */ + memcpy(&tmp_time, t_src, sizeof(MYSQL_TIME)); + + if (!validate_timestamp_range(t)) + return 0; + + /* + Calculate the gmt time based on current time and timezone + The -1 on the end is to ensure that if have a date that exists twice + (like 2002-10-27 02:00:0 MET), we will find the initial date. + + By doing -3600 we will have to call localtime_r() several times, but + I couldn't come up with a better way to get a repeatable result :( + + We can't use mktime() as it's buggy on many platforms and not thread safe. + + Note: this code assumes that our time_t estimation is not too far away + from real value (we assume that localtime_r(tmp) will return something + within 24 hrs from t) which is probably true for all current time zones. + + Note2: For the dates, which have time_t representation close to + MAX_INT32 (efficient time_t limit for supported platforms), we should + do a small trick to avoid overflow. That is, convert the date, which is + two days earlier, and then add these days to the final value. + + The same trick is done for the values close to 0 in time_t + representation for platfroms with unsigned time_t (QNX). + + To be more verbose, here is a sample (extracted from the code below): + (calc_daynr(2038, 1, 19) - (long) days_at_timestart)*86400L + 4*3600L + would return -2147480896 because of the long type overflow. In result + we would get 1901 year in localtime_r(), which is an obvious error. + + Alike problem raises with the dates close to Epoch. E.g. + (calc_daynr(1969, 12, 31) - (long) days_at_timestart)*86400L + 23*3600L + will give -3600. + + On some platforms, (E.g. on QNX) time_t is unsigned and localtime(-3600) + wil give us a date around 2106 year. Which is no good. + + Theoreticaly, there could be problems with the latter conversion: + there are at least two timezones, which had time switches near 1 Jan + of 1970 (because of political reasons). These are America/Hermosillo and + America/Mazatlan time zones. They changed their offset on + 1970-01-01 08:00:00 UTC from UTC-8 to UTC-7. For these zones + the code below will give incorrect results for dates close to + 1970-01-01, in the case OS takes into account these historical switches. + Luckily, it seems that we support only one platform with unsigned + time_t. It's QNX. And QNX does not support historical timezone data at all. + E.g. there are no /usr/share/zoneinfo/ files or any other mean to supply + historical information for localtime_r() etc. That is, the problem is not + relevant to QNX. + + We are safe with shifts close to MAX_INT32, as there are no known + time switches on Jan 2038 yet :) + */ + if ((t->year == TIMESTAMP_MAX_YEAR) && (t->month == 1) && (t->day > 4)) + { + /* + Below we will pass (uint) (t->day - shift) to calc_daynr. + As we don't want to get an overflow here, we will shift + only safe dates. That's why we have (t->day > 4) above. + */ + t->day-= 2; + shift= 2; + } + + tmp= (time_t) (((calc_daynr((uint) t->year, (uint) t->month, (uint) t->day) - + (long) days_at_timestart) * SECONDS_IN_24H + + (long) t->hour*3600L + + (long) (t->minute*60 + t->second)) + (time_t) my_time_zone - + 3600); + + current_timezone= my_time_zone; + localtime_r(&tmp,&tm_tmp); + l_time=&tm_tmp; + for (loop=0; + loop < 2 && + (t->hour != (uint) l_time->tm_hour || + t->minute != (uint) l_time->tm_min || + t->second != (uint) l_time->tm_sec); + loop++) + { /* One check should be enough ? */ + /* Get difference in days */ + int days= t->day - l_time->tm_mday; + if (days < -1) + days= 1; /* Month has wrapped */ + else if (days > 1) + days= -1; + diff=(3600L*(long) (days*24+((int) t->hour - (int) l_time->tm_hour)) + + (long) (60*((int) t->minute - (int) l_time->tm_min)) + + (long) ((int) t->second - (int) l_time->tm_sec)); + current_timezone+= diff+3600; /* Compensate for -3600 above */ + tmp+= (time_t) diff; + localtime_r(&tmp,&tm_tmp); + l_time=&tm_tmp; + } + /* + Fix that if we are in the non existing daylight saving time hour + we move the start of the next real hour. + + This code doesn't handle such exotical thing as time-gaps whose length + is more than one hour or non-integer (latter can theoretically happen + if one of seconds will be removed due leap correction, or because of + general time correction like it happened for Africa/Monrovia time zone + in year 1972). + */ + if (loop == 2 && t->hour != (uint) l_time->tm_hour) + { + int days= t->day - l_time->tm_mday; + if (days < -1) + days=1; /* Month has wrapped */ + else if (days > 1) + days= -1; + diff=(3600L*(long) (days*24+((int) t->hour - (int) l_time->tm_hour))+ + (long) (60*((int) t->minute - (int) l_time->tm_min)) + + (long) ((int) t->second - (int) l_time->tm_sec)); + if (diff == 3600) + tmp+=3600 - t->minute*60 - t->second; /* Move to next hour */ + else if (diff == -3600) + tmp-=t->minute*60 + t->second; /* Move to previous hour */ + + *in_dst_time_gap= 1; + } + *my_timezone= current_timezone; + + + /* shift back, if we were dealing with boundary dates */ + tmp+= shift * SECONDS_IN_24H; + + /* + This is possible for dates, which slightly exceed boundaries. + Conversion will pass ok for them, but we don't allow them. + First check will pass for platforms with signed time_t. + instruction above (tmp+= shift*86400L) could exceed + MAX_INT32 (== TIMESTAMP_MAX_VALUE) and overflow will happen. + So, tmp < TIMESTAMP_MIN_VALUE will be triggered. On platfroms + with unsigned time_t tmp+= shift*86400L might result in a number, + larger then TIMESTAMP_MAX_VALUE, so another check will work. + */ + if (!IS_TIME_T_VALID_FOR_TIMESTAMP(tmp)) + tmp= 0; + + return (my_time_t) tmp; +} /* my_system_gmt_sec */ + + +/** + Print the microsecond part: ".NNN" + @param to OUT The string pointer to print at + @param useconds The microseconds value. + @param dec Precision, between 1 and 6. + @return The length of the result string. +*/ +static inline int +my_useconds_to_str(char *to, ulong useconds, uint dec) +{ + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + return sprintf(to, ".%0*lu", (int) dec, + useconds / (ulong) log_10_int[DATETIME_MAX_DECIMALS - dec]); +} + + +/* + Functions to convert time/date/datetime value to a string, + using default format. + This functions don't check that given MYSQL_TIME structure members are + in valid range. If they are not, return value won't reflect any + valid date either. Additionally, make_time doesn't take into + account time->day member: it's assumed that days have been converted + to hours already. + + RETURN + number of characters written to 'to' +*/ + +int my_time_to_str(const MYSQL_TIME *l_time, char *to, uint dec) +{ + uint extra_hours= 0; + int len= sprintf(to, "%s%02u:%02u:%02u", (l_time->neg ? "-" : ""), + extra_hours + l_time->hour, l_time->minute, l_time->second); + if (dec) + len+= my_useconds_to_str(to + len, l_time->second_part, dec); + return len; +} + +int my_date_to_str(const MYSQL_TIME *l_time, char *to) +{ + return sprintf(to, "%04u-%02u-%02u", + l_time->year, l_time->month, l_time->day); +} + + +/* + Convert datetime to a string 'YYYY-MM-DD hh:mm:ss'. + Open coded for better performance. + This code previously resided in field.cc, in Field_timestamp::val_str(). + + @param to OUT The string pointer to print at. + @param ltime The MYSQL_TIME value. + @return The length of the result string. +*/ +static inline int +TIME_to_datetime_str(char *to, const MYSQL_TIME *ltime) +{ + uint32 temp, temp2; + /* Year */ + temp= ltime->year / 100; + *to++= (char) ('0' + temp / 10); + *to++= (char) ('0' + temp % 10); + temp= ltime->year % 100; + *to++= (char) ('0' + temp / 10); + *to++= (char) ('0' + temp % 10); + *to++= '-'; + /* Month */ + temp= ltime->month; + temp2= temp / 10; + temp= temp-temp2 * 10; + *to++= (char) ('0' + (char) (temp2)); + *to++= (char) ('0' + (char) (temp)); + *to++= '-'; + /* Day */ + temp= ltime->day; + temp2= temp / 10; + temp= temp - temp2 * 10; + *to++= (char) ('0' + (char) (temp2)); + *to++= (char) ('0' + (char) (temp)); + *to++= ' '; + /* Hour */ + temp= ltime->hour; + temp2= temp / 10; + temp= temp - temp2 * 10; + *to++= (char) ('0' + (char) (temp2)); + *to++= (char) ('0' + (char) (temp)); + *to++= ':'; + /* Minute */ + temp= ltime->minute; + temp2= temp / 10; + temp= temp - temp2 * 10; + *to++= (char) ('0' + (char) (temp2)); + *to++= (char) ('0' + (char) (temp)); + *to++= ':'; + /* Second */ + temp= ltime->second; + temp2=temp / 10; + temp= temp - temp2 * 10; + *to++= (char) ('0' + (char) (temp2)); + *to++= (char) ('0' + (char) (temp)); + return 19; +} + + +/** + Print a datetime value with an optional fractional part. + + @l_time The MYSQL_TIME value to print. + @to OUT The string pointer to print at. + @return The length of the result string. +*/ +int my_datetime_to_str(const MYSQL_TIME *l_time, char *to, uint dec) +{ + int len= TIME_to_datetime_str(to, l_time); + if (dec) + len+= my_useconds_to_str(to + len, l_time->second_part, dec); + else + to[len]= '\0'; + return len; +} + + +/* + Convert struct DATE/TIME/DATETIME value to string using built-in + MySQL time conversion formats. + + SYNOPSIS + my_TIME_to_string() + + NOTE + The string must have at least MAX_DATE_STRING_REP_LENGTH bytes reserved. +*/ + +int my_TIME_to_str(const MYSQL_TIME *l_time, char *to, uint dec) +{ + switch (l_time->time_type) { + case MYSQL_TIMESTAMP_DATETIME: + return my_datetime_to_str(l_time, to, dec); + case MYSQL_TIMESTAMP_DATE: + return my_date_to_str(l_time, to); + case MYSQL_TIMESTAMP_TIME: + return my_time_to_str(l_time, to, dec); + case MYSQL_TIMESTAMP_NONE: + case MYSQL_TIMESTAMP_ERROR: + to[0]='\0'; + return 0; + default: + DBUG_ASSERT(0); + return 0; + } +} + + +/** + Print a timestamp with an oprional fractional part: XXXXX[.YYYYY] + + @param tm The timestamp value to print. + @param OUT to The string pointer to print at. + @param dec Precision, in the range 0..6. + @return The length of the result string. +*/ +int my_timeval_to_str(const struct timeval *tm, char *to, uint dec) +{ + int len= sprintf(to, "%d", (int) tm->tv_sec); + if (dec) + len+= my_useconds_to_str(to + len, tm->tv_usec, dec); + return len; +} + + +/* + Convert datetime value specified as number to broken-down TIME + representation and form value of DATETIME type as side-effect. + + SYNOPSIS + number_to_datetime() + nr - datetime value as number + time_res - pointer for structure for broken-down representation + flags - flags to use in validating date, as in str_to_datetime() + was_cut 0 Value ok + 1 If value was cut during conversion + 2 check_date(date,flags) considers date invalid + + DESCRIPTION + Convert a datetime value of formats YYMMDD, YYYYMMDD, YYMMDDHHMSS, + YYYYMMDDHHMMSS to broken-down MYSQL_TIME representation. Return value in + YYYYMMDDHHMMSS format as side-effect. + + This function also checks if datetime value fits in DATETIME range. + + RETURN VALUE + -1 Timestamp with wrong values + anything else DATETIME as integer in YYYYMMDDHHMMSS format + Datetime value in YYYYMMDDHHMMSS format. + + was_cut if return value -1: one of + - MYSQL_TIME_WARN_OUT_OF_RANGE + - MYSQL_TIME_WARN_ZERO_DATE + - MYSQL_TIME_WARN_TRUNCATED + otherwise 0. +*/ + +longlong number_to_datetime(longlong nr, MYSQL_TIME *time_res, + my_time_flags_t flags, int *was_cut) +{ + long part1,part2; + + *was_cut= 0; + memset(time_res, 0, sizeof(*time_res)); + time_res->time_type=MYSQL_TIMESTAMP_DATE; + + if (nr == 0LL || nr >= 10000101000000LL) + { + time_res->time_type=MYSQL_TIMESTAMP_DATETIME; + if (nr > 99999999999999LL) /* 9999-99-99 99:99:99 */ + { + *was_cut= MYSQL_TIME_WARN_OUT_OF_RANGE; + return -1LL; + } + goto ok; + } + if (nr < 101) + goto err; + if (nr <= (YY_PART_YEAR-1)*10000L+1231L) + { + nr= (nr+20000000L)*1000000L; /* YYMMDD, year: 2000-2069 */ + goto ok; + } + if (nr < (YY_PART_YEAR)*10000L+101L) + goto err; + if (nr <= 991231L) + { + nr= (nr+19000000L)*1000000L; /* YYMMDD, year: 1970-1999 */ + goto ok; + } + /* + Though officially we support DATE values from 1000-01-01 only, one can + easily insert a value like 1-1-1. So, for consistency reasons such dates + are allowed when TIME_FUZZY_DATE is set. + */ + if (nr < 10000101L && !(flags & TIME_FUZZY_DATE)) + goto err; + if (nr <= 99991231L) + { + nr= nr*1000000L; + goto ok; + } + if (nr < 101000000L) + goto err; + + time_res->time_type=MYSQL_TIMESTAMP_DATETIME; + + if (nr <= (YY_PART_YEAR-1)*10000000000LL+1231235959LL) + { + nr= nr+20000000000000LL; /* YYMMDDHHMMSS, 2000-2069 */ + goto ok; + } + if (nr < YY_PART_YEAR*10000000000LL+ 101000000LL) + goto err; + if (nr <= 991231235959LL) + nr= nr+19000000000000LL; /* YYMMDDHHMMSS, 1970-1999 */ + + ok: + part1=(long) (nr/1000000LL); + part2=(long) (nr - (longlong) part1*1000000LL); + time_res->year= (int) (part1/10000L); part1%=10000L; + time_res->month= (int) part1 / 100; + time_res->day= (int) part1 % 100; + time_res->hour= (int) (part2/10000L); part2%=10000L; + time_res->minute=(int) part2 / 100; + time_res->second=(int) part2 % 100; + + if (!check_datetime_range(time_res) && + !check_date(time_res, (nr != 0), flags, was_cut)) + return nr; + + /* Don't want to have was_cut get set if TIME_NO_ZERO_DATE was violated. */ + if (!nr && (flags & TIME_NO_ZERO_DATE)) + return -1LL; + + err: + *was_cut= MYSQL_TIME_WARN_TRUNCATED; + return -1LL; +} + + +/** + Convert time value to integer in YYYYMMDDHHMMSS. + @param my_time The MYSQL_TIME value to convert. + @return A number in format YYYYMMDDHHMMSS. +*/ +ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *my_time) +{ + return ((ulonglong) (my_time->year * 10000UL + + my_time->month * 100UL + + my_time->day) * 1000000ULL + + (ulonglong) (my_time->hour * 10000UL + + my_time->minute * 100UL + + my_time->second)); +} + + + +/** + Convert MYSQL_TIME value to integer in YYYYMMDD format + @param my_time The MYSQL_TIME value to convert. + @return A number in format YYYYMMDD. +*/ +ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *my_time) +{ + return (ulonglong) (my_time->year * 10000UL + my_time->month * 100UL + + my_time->day); +} + + +/** + Convert MYSQL_TIME value to integer in HHMMSS format. + This function doesn't take into account time->day member: + it's assumed that days have been converted to hours already. + @param my_time The TIME value to convert. + @return The number in HHMMSS format. +*/ +ulonglong TIME_to_ulonglong_time(const MYSQL_TIME *my_time) +{ + return (ulonglong) (my_time->hour * 10000UL + + my_time->minute * 100UL + + my_time->second); +} + + +/** + Set day, month and year from a number + @param ltime MYSQL_TIME variable + @param yymmdd Number in YYYYMMDD format +*/ +void TIME_set_yymmdd(MYSQL_TIME *ltime, uint yymmdd) +{ + ltime->day= (int) (yymmdd % 100); + ltime->month= (int) (yymmdd / 100) % 100; + ltime->year= (int) (yymmdd / 10000); +} + + +/** + Set hour, minute and secondr from a number + @param ltime MYSQL_TIME variable + @param hhmmss Number in HHMMSS format +*/ +void TIME_set_hhmmss(MYSQL_TIME *ltime, uint hhmmss) +{ + ltime->second= (int) (hhmmss % 100); + ltime->minute= (int) (hhmmss / 100) % 100; + ltime->hour= (int) (hhmmss / 10000); +} + + +/* + Convert struct MYSQL_TIME (date and time split into year/month/day/hour/... + to a number in format YYYYMMDDHHMMSS (DATETIME), + YYYYMMDD (DATE) or HHMMSS (TIME). + + SYNOPSIS + TIME_to_ulonglong() + + DESCRIPTION + The function is used when we need to convert value of time item + to a number if it's used in numeric context, i. e.: + SELECT NOW()+1, CURDATE()+0, CURTIMIE()+0; + SELECT ?+1; + + NOTE + This function doesn't check that given MYSQL_TIME structure members are + in valid range. If they are not, return value won't reflect any + valid date either. +*/ + +ulonglong TIME_to_ulonglong(const MYSQL_TIME *my_time) +{ + switch (my_time->time_type) { + case MYSQL_TIMESTAMP_DATETIME: + return TIME_to_ulonglong_datetime(my_time); + case MYSQL_TIMESTAMP_DATE: + return TIME_to_ulonglong_date(my_time); + case MYSQL_TIMESTAMP_TIME: + return TIME_to_ulonglong_time(my_time); + case MYSQL_TIMESTAMP_NONE: + case MYSQL_TIMESTAMP_ERROR: + return 0ULL; + default: + DBUG_ASSERT(0); + } + return 0; +} + + +/*** TIME low-level memory and disk representation routines ***/ + +/* + In-memory format: + + 1 bit sign (Used for sign, when on disk) + 1 bit unused (Reserved for wider hour range, e.g. for intervals) + 10 bit hour (0-836) + 6 bit minute (0-59) + 6 bit second (0-59) + 24 bits microseconds (0-999999) + + Total: 48 bits = 6 bytes + Suhhhhhh.hhhhmmmm.mmssssss.ffffffff.ffffffff.ffffffff +*/ + + +/** + Convert time value to numeric packed representation. + + @param ltime The value to convert. + @return Numeric packed representation. +*/ +longlong TIME_to_longlong_time_packed(const MYSQL_TIME *ltime) +{ + /* If month is 0, we mix day with hours: "1 00:10:10" -> "24:00:10" */ + long hms= (((ltime->month ? 0 : ltime->day * 24) + ltime->hour) << 12) | + (ltime->minute << 6) | ltime->second; + longlong tmp= MY_PACKED_TIME_MAKE(hms, ltime->second_part); + return ltime->neg ? -tmp : tmp; +} + + +/** + Convert time packed numeric representation to time. + + @param OUT ltime The MYSQL_TIME variable to set. + @param tmp The packed numeric representation. +*/ +void TIME_from_longlong_time_packed(MYSQL_TIME *ltime, longlong tmp) +{ + longlong hms; + if ((ltime->neg= (tmp < 0))) + tmp= -tmp; + hms= MY_PACKED_TIME_GET_INT_PART(tmp); + ltime->year= (uint) 0; + ltime->month= (uint) 0; + ltime->day= (uint) 0; + ltime->hour= (uint) (hms >> 12) % (1 << 10); /* 10 bits starting at 12th */ + ltime->minute= (uint) (hms >> 6) % (1 << 6); /* 6 bits starting at 6th */ + ltime->second= (uint) hms % (1 << 6); /* 6 bits starting at 0th */ + ltime->second_part= MY_PACKED_TIME_GET_FRAC_PART(tmp); + ltime->time_type= MYSQL_TIMESTAMP_TIME; +} + +/* + On disk we convert from signed representation to unsigned + representation using TIMEF_OFS, so all values become binary comparable. +*/ +#define TIMEF_OFS 0x800000000000LL +#define TIMEF_INT_OFS 0x800000LL + + +/** + Convert in-memory numeric time representation to on-disk representation + + @param nr Value in packed numeric time format. + @param OUT ptr The buffer to put value at. + @param dec Precision. +*/ +void my_time_packed_to_binary(longlong nr, uchar *ptr, uint dec) +{ + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + /* Make sure the stored value was previously properly rounded or truncated */ + DBUG_ASSERT((MY_PACKED_TIME_GET_FRAC_PART(nr) % + (int) log_10_int[DATETIME_MAX_DECIMALS - dec]) == 0); + + switch (dec) + { + case 0: + default: + mi_int3store(ptr, TIMEF_INT_OFS + MY_PACKED_TIME_GET_INT_PART(nr)); + break; + + case 1: + case 2: + mi_int3store(ptr, TIMEF_INT_OFS + MY_PACKED_TIME_GET_INT_PART(nr)); + ptr[3]= (unsigned char) (char) (MY_PACKED_TIME_GET_FRAC_PART(nr) / 10000); + break; + + case 4: + case 3: + mi_int3store(ptr, TIMEF_INT_OFS + MY_PACKED_TIME_GET_INT_PART(nr)); + mi_int2store(ptr + 3, MY_PACKED_TIME_GET_FRAC_PART(nr) / 100); + break; + + case 5: + case 6: + mi_int6store(ptr, nr + TIMEF_OFS); + break; + } +} + + +/** + Convert on-disk time representation to in-memory packed numeric + representation. + + @param ptr The pointer to read the value at. + @param dec Precision. + @return Packed numeric time representation. +*/ +longlong my_time_packed_from_binary(const uchar *ptr, uint dec) +{ + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + + switch (dec) + { + case 0: + default: + { + longlong intpart= mi_uint3korr(ptr) - TIMEF_INT_OFS; + return MY_PACKED_TIME_MAKE_INT(intpart); + } + case 1: + case 2: + { + longlong intpart= mi_uint3korr(ptr) - TIMEF_INT_OFS; + int frac= (uint) ptr[3]; + if (intpart < 0 && frac) + { + /* + Negative values are stored with reverse fractional part order, + for binary sort compatibility. + + Disk value intpart frac Time value Memory value + 800000.00 0 0 00:00:00.00 0000000000.000000 + 7FFFFF.FF -1 255 -00:00:00.01 FFFFFFFFFF.FFD8F0 + 7FFFFF.9D -1 99 -00:00:00.99 FFFFFFFFFF.F0E4D0 + 7FFFFF.00 -1 0 -00:00:01.00 FFFFFFFFFF.000000 + 7FFFFE.FF -1 255 -00:00:01.01 FFFFFFFFFE.FFD8F0 + 7FFFFE.F6 -2 246 -00:00:01.10 FFFFFFFFFE.FE7960 + + Formula to convert fractional part from disk format + (now stored in "frac" variable) to absolute value: "0x100 - frac". + To reconstruct in-memory value, we shift + to the next integer value and then substruct fractional part. + */ + intpart++; /* Shift to the next integer value */ + frac-= 0x100; /* -(0x100 - frac) */ + } + return MY_PACKED_TIME_MAKE(intpart, frac * 10000); + } + + case 3: + case 4: + { + longlong intpart= mi_uint3korr(ptr) - TIMEF_INT_OFS; + int frac= mi_uint2korr(ptr + 3); + if (intpart < 0 && frac) + { + /* + Fix reverse fractional part order: "0x10000 - frac". + See comments for FSP=1 and FSP=2 above. + */ + intpart++; /* Shift to the next integer value */ + frac-= 0x10000; /* -(0x10000-frac) */ + } + return MY_PACKED_TIME_MAKE(intpart, frac * 100); + } + + case 5: + case 6: + return ((longlong) mi_uint6korr(ptr)) - TIMEF_OFS; + } +} + + +/*** DATETIME and DATE low-level memory and disk representation routines ***/ + +/* + 1 bit sign (used when on disk) + 17 bits year*13+month (year 0-9999, month 0-12) + 5 bits day (0-31) + 5 bits hour (0-23) + 6 bits minute (0-59) + 6 bits second (0-59) + 24 bits microseconds (0-999999) + + Total: 64 bits = 8 bytes + + SYYYYYYY.YYYYYYYY.YYdddddh.hhhhmmmm.mmssssss.ffffffff.ffffffff.ffffffff +*/ + +/** + Convert datetime to packed numeric datetime representation. + @param ltime The value to convert. + @return Packed numeric representation of ltime. +*/ +longlong TIME_to_longlong_datetime_packed(const MYSQL_TIME *ltime) +{ + longlong ymd= ((ltime->year * 13 + ltime->month) << 5) | ltime->day; + longlong hms= (ltime->hour << 12) | (ltime->minute << 6) | ltime->second; + longlong tmp= MY_PACKED_TIME_MAKE(((ymd << 17) | hms), ltime->second_part); + DBUG_ASSERT(!check_datetime_range(ltime)); /* Make sure no overflow */ + return ltime->neg ? -tmp : tmp; +} + + +/** + Convert date to packed numeric date representation. + Numeric packed date format is similar to numeric packed datetime + representation, with zero hhmmss part. + + @param ltime The value to convert. + @return Packed numeric representation of ltime. +*/ +longlong TIME_to_longlong_date_packed(const MYSQL_TIME *ltime) +{ + longlong ymd= ((ltime->year * 13 + ltime->month) << 5) | ltime->day; + return MY_PACKED_TIME_MAKE_INT(ymd << 17); +} + + +/** + Convert year to packed numeric date representation. + Packed value for YYYY is the same to packed value for date YYYY-00-00. +*/ +longlong year_to_longlong_datetime_packed(long year) +{ + longlong ymd= ((year * 13) << 5); + return MY_PACKED_TIME_MAKE_INT(ymd << 17); +} + + +/** + Convert packed numeric datetime representation to MYSQL_TIME. + @param OUT ltime The datetime variable to convert to. + @param tmp The packed numeric datetime value. +*/ +void TIME_from_longlong_datetime_packed(MYSQL_TIME *ltime, longlong tmp) +{ + longlong ymd, hms; + longlong ymdhms, ym; + if ((ltime->neg= (tmp < 0))) + tmp= -tmp; + + ltime->second_part= MY_PACKED_TIME_GET_FRAC_PART(tmp); + ymdhms= MY_PACKED_TIME_GET_INT_PART(tmp); + + ymd= ymdhms >> 17; + ym= ymd >> 5; + hms= ymdhms % (1 << 17); + + ltime->day= ymd % (1 << 5); + ltime->month= ym % 13; + ltime->year= (uint)(ym / 13); + + ltime->second= hms % (1 << 6); + ltime->minute= (hms >> 6) % (1 << 6); + ltime->hour= (uint)(hms >> 12); + + ltime->time_type= MYSQL_TIMESTAMP_DATETIME; +} + + +/** + Convert packed numeric date representation to MYSQL_TIME. + @param OUT ltime The date variable to convert to. + @param tmp The packed numeric date value. +*/ +void TIME_from_longlong_date_packed(MYSQL_TIME *ltime, longlong tmp) +{ + TIME_from_longlong_datetime_packed(ltime, tmp); + ltime->time_type= MYSQL_TIMESTAMP_DATE; +} + + +/* + On disk we store as unsigned number with DATETIMEF_INT_OFS offset, + for HA_KETYPE_BINARY compatibilty purposes. +*/ +#define DATETIMEF_INT_OFS 0x8000000000LL + + +/** + Convert on-disk datetime representation + to in-memory packed numeric representation. + + @param ptr The pointer to read value at. + @param dec Precision. + @return In-memory packed numeric datetime representation. +*/ +longlong my_datetime_packed_from_binary(const uchar *ptr, uint dec) +{ + longlong intpart= mi_uint5korr(ptr) - DATETIMEF_INT_OFS; + int frac; + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + switch (dec) + { + case 0: + default: + return MY_PACKED_TIME_MAKE_INT(intpart); + case 1: + case 2: + frac= ((int) (signed char) ptr[5]) * 10000; + break; + case 3: + case 4: + frac= mi_sint2korr(ptr + 5) * 100; + break; + case 5: + case 6: + frac= mi_sint3korr(ptr + 5); + break; + } + return MY_PACKED_TIME_MAKE(intpart, frac); +} + + +/** + Store in-memory numeric packed datetime representation to disk. + + @param nr In-memory numeric packed datetime representation. + @param OUT ptr The pointer to store at. + @param dec Precision, 1-6. +*/ +void my_datetime_packed_to_binary(longlong nr, uchar *ptr, uint dec) +{ + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + /* The value being stored must have been properly rounded or truncated */ + DBUG_ASSERT((MY_PACKED_TIME_GET_FRAC_PART(nr) % + (int) log_10_int[DATETIME_MAX_DECIMALS - dec]) == 0); + + mi_int5store(ptr, MY_PACKED_TIME_GET_INT_PART(nr) + DATETIMEF_INT_OFS); + switch (dec) + { + case 0: + default: + break; + case 1: + case 2: + ptr[5]= (unsigned char) (char) (MY_PACKED_TIME_GET_FRAC_PART(nr) / 10000); + break; + case 3: + case 4: + mi_int2store(ptr + 5, MY_PACKED_TIME_GET_FRAC_PART(nr) / 100); + break; + case 5: + case 6: + mi_int3store(ptr + 5, MY_PACKED_TIME_GET_FRAC_PART(nr)); + } +} + + +/*** TIMESTAMP low-level memory and disk representation routines ***/ + +/** + Convert binary timestamp representation to in-memory representation. + + @param OUT tm The variable to convert to. + @param ptr The pointer to read the value from. + @param dec Precision. +*/ +void my_timestamp_from_binary(struct timeval *tm, const uchar *ptr, uint dec) +{ + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + tm->tv_sec= mi_uint4korr(ptr); + switch (dec) + { + case 0: + default: + tm->tv_usec= 0; + break; + case 1: + case 2: + tm->tv_usec= ((int) ptr[4]) * 10000; + break; + case 3: + case 4: + tm->tv_usec= mi_sint2korr(ptr + 4) * 100; + break; + case 5: + case 6: + tm->tv_usec= mi_sint3korr(ptr + 4); + } +} + + +/** + Convert in-memory timestamp representation to on-disk representation. + + @param tm The value to convert. + @param OUT ptr The pointer to store the value to. + @param dec Precision. +*/ +void my_timestamp_to_binary(const struct timeval *tm, uchar *ptr, uint dec) +{ + DBUG_ASSERT(dec <= DATETIME_MAX_DECIMALS); + /* Stored value must have been previously properly rounded or truncated */ + DBUG_ASSERT((tm->tv_usec % + (int) log_10_int[DATETIME_MAX_DECIMALS - dec]) == 0); + mi_int4store(ptr, tm->tv_sec); + switch (dec) + { + case 0: + default: + break; + case 1: + case 2: + ptr[4]= (unsigned char) (char) (tm->tv_usec / 10000); + break; + case 3: + case 4: + mi_int2store(ptr + 4, tm->tv_usec / 100); + break; + /* Impossible second precision. Fall through */ + case 5: + case 6: + mi_int3store(ptr + 4, tm->tv_usec); + } +} + +/****************************************/ + + +/** + Convert a temporal value to packed numeric temporal representation, + depending on its time_type. + + @ltime The value to convert. + @return Packed numeric time/date/datetime representation. +*/ +longlong TIME_to_longlong_packed(const MYSQL_TIME *ltime) +{ + switch (ltime->time_type) { + case MYSQL_TIMESTAMP_DATE: + return TIME_to_longlong_date_packed(ltime); + case MYSQL_TIMESTAMP_DATETIME: + return TIME_to_longlong_datetime_packed(ltime); + case MYSQL_TIMESTAMP_TIME: + return TIME_to_longlong_time_packed(ltime); + case MYSQL_TIMESTAMP_NONE: + case MYSQL_TIMESTAMP_ERROR: + return 0; + } + DBUG_ASSERT(0); + return 0; +} + +/*** End of low level format routines ***/ diff --git a/mysql/sql-common/pack.c b/mysql/sql-common/pack.c new file mode 100644 index 0000000..971fa66 --- /dev/null +++ b/mysql/sql-common/pack.c @@ -0,0 +1,140 @@ +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include + +/* Get the length of next field. Change parameter to point at fieldstart */ +ulong STDCALL net_field_length(uchar **packet) +{ + uchar *pos= (uchar *)*packet; + if (*pos < 251) + { + (*packet)++; + return (ulong) *pos; + } + if (*pos == 251) + { + (*packet)++; + return NULL_LENGTH; + } + if (*pos == 252) + { + (*packet)+=3; + return (ulong) uint2korr(pos+1); + } + if (*pos == 253) + { + (*packet)+=4; + return (ulong) uint3korr(pos+1); + } + (*packet)+=9; /* Must be 254 when here */ + return (ulong) uint4korr(pos+1); +} + +/* The same as above but returns longlong */ +my_ulonglong net_field_length_ll(uchar **packet) +{ + uchar *pos= *packet; + if (*pos < 251) + { + (*packet)++; + return (my_ulonglong) *pos; + } + if (*pos == 251) + { + (*packet)++; + return (my_ulonglong) NULL_LENGTH; + } + if (*pos == 252) + { + (*packet)+=3; + return (my_ulonglong) uint2korr(pos+1); + } + if (*pos == 253) + { + (*packet)+=4; + return (my_ulonglong) uint3korr(pos+1); + } + (*packet)+=9; /* Must be 254 when here */ + return (my_ulonglong) uint8korr(pos+1); +} + +/* + Store an integer with simple packing into a output package + + SYNOPSIS + net_store_length() + pkg Store the packed integer here + length integers to store + + NOTES + This is mostly used to store lengths of strings. + We have to cast the result of the LL because of a bug in Forte CC + compiler. + + RETURN + Position in 'pkg' after the packed length +*/ + +uchar *net_store_length(uchar *packet, ulonglong length) +{ + if (length < (ulonglong) 251LL) + { + *packet=(uchar) length; + return packet+1; + } + /* 251 is reserved for NULL */ + if (length < (ulonglong) 65536LL) + { + *packet++=252; + int2store(packet,(uint) length); + return packet+2; + } + if (length < (ulonglong) 16777216LL) + { + *packet++=253; + int3store(packet,(ulong) length); + return packet+3; + } + *packet++=254; + int8store(packet,length); + return packet+8; +} + + +/** + The length of space required to store the resulting length-encoded integer + for the given number. This function can be used at places where one needs to + dynamically allocate the buffer for a given number to be stored as length- + encoded integer. + + @param num [IN] the input number + + @return length of buffer needed to store this number [1, 3, 4, 9]. +*/ + +uint net_length_size(ulonglong num) +{ + if (num < (ulonglong) 252LL) + return 1; + if (num < (ulonglong) 65536LL) + return 3; + if (num < (ulonglong) 16777216LL) + return 4; + return 9; +} + diff --git a/mysql/sql/atomic_class.h b/mysql/sql/atomic_class.h new file mode 100644 index 0000000..04d3492 --- /dev/null +++ b/mysql/sql/atomic_class.h @@ -0,0 +1,117 @@ +/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2 of the + License. + + This program 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 + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA */ + + +#ifndef ATOMIC_CLASS_H_INCLUDED +#define ATOMIC_CLASS_H_INCLUDED + +#include "my_atomic.h" + +/** + Wrapper class to use C++ syntax to access atomic integers. +*/ +#define DEFINE_ATOMIC_CLASS(NAME, SUFFIX, TYPE) \ + class Atomic_##NAME \ + { \ +public: \ + /* Create a new Atomic_* object. */ \ + Atomic_##NAME(TYPE n= 0) \ + { \ + my_atomic_store##SUFFIX(&value, n); \ + } \ + /* Atomically read the value. */ \ + TYPE atomic_get() \ + { \ + return my_atomic_load##SUFFIX(&value); \ + } \ + /* Atomically set the value. */ \ + void atomic_set(TYPE n) \ + { \ + my_atomic_store##SUFFIX(&value, n); \ + } \ + /* Atomically add to the value, and return the old value. */ \ + TYPE atomic_add(TYPE n) \ + { \ + return my_atomic_add##SUFFIX(&value, n); \ + } \ + /* Atomically set the value and return the old value. */ \ + TYPE atomic_get_and_set(TYPE n) \ + { \ + return my_atomic_fas##SUFFIX(&value, n); \ + } \ + /* If the old value is equal to *old, set the value to new and */ \ + /* return true. Otherwise, store the old value in '*old' and */ \ + /* return false. */ \ + bool atomic_compare_and_swap(TYPE *old, TYPE n) \ + { \ + return my_atomic_cas##SUFFIX(&value, old, n); \ + } \ + /* Read the value *non-atomically*. */ \ + TYPE non_atomic_get() \ + { \ + return value; \ + } \ + /* Set the value *non-atomically*. */ \ + void non_atomic_set(TYPE n) \ + { \ + value= n; \ + } \ + /* Add to the value *non-atomically*. */ \ + TYPE non_atomic_add(TYPE n) \ + { \ + TYPE ret= value; \ + value+= n; \ + return ret; \ + } \ + /* Set the value to the greatest of (old, n). */ \ + \ + /* The function will internally requires multiple atomic */ \ + /* operations. If the old value is known (or guessed), and less */ \ + /* than n, it requires one atomic operation less. Therefore, */ \ + /* the caller should set *guess to whatever is the likely value */ \ + /* that the variable currently has, if such a guess is known. */ \ + \ + /* @return If the new value is changed to n, *guess is set to */ \ + /* the old value and the the function returns true. Otherwise, */ \ + /* *guess is set to the current value (which is greater than or */ \ + /* equal to n), and the function returns false. */ \ + bool atomic_set_to_max(TYPE n, TYPE *guess= NULL) \ + { \ + TYPE _guess; \ + if (guess == NULL) \ + { \ + _guess= n - 1; \ + guess= &_guess; \ + } \ + else \ + DBUG_ASSERT(*guess < n); \ + bool ret; \ + do { \ + ret= atomic_compare_and_swap(guess, n); \ + } while (!ret && *guess < n); \ + return ret; \ + } \ + \ +private: \ + TYPE value; \ + } + +DEFINE_ATOMIC_CLASS(int32, 32, int32); +DEFINE_ATOMIC_CLASS(int64, 64, int64); +//DEFINE_ATOMIC_CLASS(pointer, ptr, void *); + +#endif //ifndef ATOMIC_CLASS_H_INCLUDED diff --git a/mysql/sql/auth/password.c b/mysql/sql/auth/password.c new file mode 100644 index 0000000..1f93350 --- /dev/null +++ b/mysql/sql/auth/password.c @@ -0,0 +1,378 @@ +/* + Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* password checking routines */ +/***************************************************************************** + The main idea is that no password are sent between client & server on + connection and that no password are saved in mysql in a decodable form. + + On connection a random string is generated and sent to the client. + The client generates a new string with a random generator inited with + the hash values from the password and the sent string. + This 'check' string is sent to the server where it is compared with + a string generated from the stored hash_value of the password and the + random string. + + The password is saved (in user.password) by using the PASSWORD() function in + mysql. + + This is .c file because it's used in libmysqlclient, which is entirely in C. + (we need it to be portable to a variety of systems). + Example: + update user set password=PASSWORD("hello") where user="test" + This saves a hashed number as a string in the password field. + + The new authentication is performed in following manner: + + SERVER: public_seed=generate_user_salt() + send(public_seed) + + CLIENT: recv(public_seed) + hash_stage1=sha1("password") + hash_stage2=sha1(hash_stage1) + reply=xor(hash_stage1, sha1(public_seed,hash_stage2) + + // this three steps are done in scramble() + + send(reply) + + + SERVER: recv(reply) + hash_stage1=xor(reply, sha1(public_seed,hash_stage2)) + candidate_hash2=sha1(hash_stage1) + check(candidate_hash2==hash_stage2) + + // this three steps are done in check_scramble() + +*****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include "mysql.h" +#include "crypt_genhash_impl.h" + +void randominit(struct rand_struct *rand_st, ulong seed1, ulong seed2) +{ /* For mysql 3.21.# */ + rand_st->max_value= 0x3FFFFFFFL; + rand_st->max_value_dbl=(double) rand_st->max_value; + rand_st->seed1=seed1%rand_st->max_value ; + rand_st->seed2=seed2%rand_st->max_value; +} + +/* + Generate binary hash from raw text string + Used for Pre-4.1 password handling + SYNOPSIS + hash_password() + result OUT store hash in this location + password IN plain text password to build hash + password_len IN password length (password may be not null-terminated) +*/ + +void hash_password(ulong *result, const char *password, uint password_len) +{ + ulong nr=1345345333L, add=7, nr2=0x12345671L; + ulong tmp; + const char *password_end= password + password_len; + for (; password < password_end; password++) + { + if (*password == ' ' || *password == '\t') + continue; /* skip space in password */ + tmp= (ulong) (uchar) *password; + nr^= (((nr & 63)+add)*tmp)+ (nr << 8); + nr2+=(nr2 << 8) ^ nr; + add+=tmp; + } + result[0]=nr & (((ulong) 1L << 31) -1L); /* Don't use sign bit (str2int) */; + result[1]=nr2 & (((ulong) 1L << 31) -1L); +} + +static inline uint8 char_val(uint8 X) +{ + return (uint) (X >= '0' && X <= '9' ? X - '0' : + X >= 'A' && X <= 'Z' ? X - 'A' + 10 : X - 'a' + 10); +} + +/* Character to use as version identifier for version 4.1 */ + +#define PVERSION41_CHAR '*' + + +/* + Convert given octet sequence to asciiz string of hex characters; + str..str+len and 'to' may not overlap. + SYNOPSIS + octet2hex() + buf OUT output buffer. Must be at least 2*len+1 bytes + str, len IN the beginning and the length of the input string + + RETURN + buf+len*2 +*/ + +char *octet2hex(char *to, const char *str, uint len) +{ + const char *str_end= str + len; + for (; str != str_end; ++str) + { + *to++= _dig_vec_upper[((uchar) *str) >> 4]; + *to++= _dig_vec_upper[((uchar) *str) & 0x0F]; + } + *to= '\0'; + return to; +} + + +/* + Convert given asciiz string of hex (0..9 a..f) characters to octet + sequence. + SYNOPSIS + hex2octet() + to OUT buffer to place result; must be at least len/2 bytes + str, len IN begin, length for character string; str and to may not + overlap; len % 2 == 0 +*/ + +static void +hex2octet(uint8 *to, const char *str, uint len) +{ + const char *str_end= str + len; + while (str < str_end) + { + char tmp= char_val(*str++); + *to++= (tmp << 4) | char_val(*str++); + } +} + + +/* + Encrypt/Decrypt function used for password encryption in authentication. + Simple XOR is used here but it is OK as we crypt random strings. Note, + that XOR(s1, XOR(s1, s2)) == s2, XOR(s1, s2) == XOR(s2, s1) + SYNOPSIS + my_crypt() + to OUT buffer to hold crypted string; must be at least len bytes + long; to and s1 (or s2) may be the same. + s1, s2 IN input strings (of equal length) + len IN length of s1 and s2 +*/ + +static void +my_crypt(char *to, const uchar *s1, const uchar *s2, uint len) +{ + const uint8 *s1_end= s1 + len; + while (s1 < s1_end) + *to++= *s1++ ^ *s2++; +} + +#if defined(HAVE_OPENSSL) +void my_make_scrambled_password(char *to, const char *password, + size_t pass_len) +{ + + char salt[CRYPT_SALT_LENGTH + 1]; + + generate_user_salt(salt, CRYPT_SALT_LENGTH + 1); + my_crypt_genhash(to, + CRYPT_MAX_PASSWORD_SIZE, + password, + pass_len, + salt, + 0); + +} +#endif +/** + Compute two stage SHA1 hash of the password : + + hash_stage1=sha1("password") + hash_stage2=sha1(hash_stage1) + + @param password [IN] Password string. + @param pass_len [IN] Length of the password. + @param hash_stage1 [OUT] sha1(password) + @param hash_stage2 [OUT] sha1(hash_stage1) +*/ + +inline static +void compute_two_stage_sha1_hash(const char *password, size_t pass_len, + uint8 *hash_stage1, uint8 *hash_stage2) +{ + /* Stage 1: hash password */ + compute_sha1_hash(hash_stage1, password, pass_len); + + /* Stage 2 : hash first stage's output. */ + compute_sha1_hash(hash_stage2, (const char *) hash_stage1, SHA1_HASH_SIZE); +} + + +/* + MySQL 4.1.1 password hashing: SHA conversion (see RFC 2289, 3174) twice + applied to the password string, and then produced octet sequence is + converted to hex string. + The result of this function is used as return value from PASSWORD() and + is stored in the database. + SYNOPSIS + my_make_scrambled_password_sha1() + buf OUT buffer of size 2*SHA1_HASH_SIZE + 2 to store hex string + password IN password string + pass_len IN length of password string +*/ + +void my_make_scrambled_password_sha1(char *to, const char *password, + size_t pass_len) +{ + uint8 hash_stage2[SHA1_HASH_SIZE]; + + /* Two stage SHA1 hash of the password. */ + compute_two_stage_sha1_hash(password, pass_len, (uint8 *) to, hash_stage2); + + /* convert hash_stage2 to hex string */ + *to++= PVERSION41_CHAR; + octet2hex(to, (const char*) hash_stage2, SHA1_HASH_SIZE); +} + + +/* + Wrapper around my_make_scrambled_password() to maintain client lib ABI + compatibility. + In server code usage of my_make_scrambled_password() is preferred to + avoid strlen(). + SYNOPSIS + make_scrambled_password() + buf OUT buffer of size 2*SHA1_HASH_SIZE + 2 to store hex string + password IN NULL-terminated password string +*/ + +void make_scrambled_password(char *to, const char *password) +{ + my_make_scrambled_password_sha1(to, password, strlen(password)); +} + + +/* + Produce an obscure octet sequence from password and random + string, received from the server. This sequence corresponds to the + password, but password can not be easily restored from it. The sequence + is then sent to the server for validation. Trailing zero is not stored + in the buf as it is not needed. + This function is used by client to create authenticated reply to the + server's greeting. + SYNOPSIS + scramble() + buf OUT store scrambled string here. The buf must be at least + SHA1_HASH_SIZE bytes long. + message IN random message, must be exactly SCRAMBLE_LENGTH long and + NULL-terminated. + password IN users' password +*/ + +void +scramble(char *to, const char *message, const char *password) +{ + uint8 hash_stage1[SHA1_HASH_SIZE]; + uint8 hash_stage2[SHA1_HASH_SIZE]; + + /* Two stage SHA1 hash of the password. */ + compute_two_stage_sha1_hash(password, strlen(password), hash_stage1, + hash_stage2); + + /* create crypt string as sha1(message, hash_stage2) */; + compute_sha1_hash_multi((uint8 *) to, message, SCRAMBLE_LENGTH, + (const char *) hash_stage2, SHA1_HASH_SIZE); + my_crypt(to, (const uchar *) to, hash_stage1, SCRAMBLE_LENGTH); +} + + +/* + Check that scrambled message corresponds to the password; the function + is used by server to check that received reply is authentic. + This function does not check lengths of given strings: message must be + null-terminated, reply and hash_stage2 must be at least SHA1_HASH_SIZE + long (if not, something fishy is going on). + SYNOPSIS + check_scramble_sha1() + scramble clients' reply, presumably produced by scramble() + message original random string, previously sent to client + (presumably second argument of scramble()), must be + exactly SCRAMBLE_LENGTH long and NULL-terminated. + hash_stage2 hex2octet-decoded database entry + All params are IN. + + RETURN VALUE + 0 password is correct + !0 password is invalid +*/ + +my_bool +check_scramble_sha1(const uchar *scramble_arg, const char *message, + const uint8 *hash_stage2) +{ + uint8 buf[SHA1_HASH_SIZE]; + uint8 hash_stage2_reassured[SHA1_HASH_SIZE]; + + /* create key to encrypt scramble */ + compute_sha1_hash_multi(buf, message, SCRAMBLE_LENGTH, + (const char *) hash_stage2, SHA1_HASH_SIZE); + /* encrypt scramble */ + my_crypt((char *) buf, buf, scramble_arg, SCRAMBLE_LENGTH); + + /* now buf supposedly contains hash_stage1: so we can get hash_stage2 */ + compute_sha1_hash(hash_stage2_reassured, (const char *) buf, SHA1_HASH_SIZE); + + return MY_TEST(memcmp(hash_stage2, hash_stage2_reassured, SHA1_HASH_SIZE)); +} + +my_bool +check_scramble(const uchar *scramble_arg, const char *message, + const uint8 *hash_stage2) +{ + return check_scramble_sha1(scramble_arg, message, hash_stage2); +} + +/* + Convert scrambled password from asciiz hex string to binary form. + + SYNOPSIS + get_salt_from_password() + res OUT buf to hold password. Must be at least SHA1_HASH_SIZE + bytes long. + password IN 4.1.1 version value of user.password +*/ + +void get_salt_from_password(uint8 *hash_stage2, const char *password) +{ + hex2octet(hash_stage2, password+1 /* skip '*' */, SHA1_HASH_SIZE * 2); +} + +/* + Convert scrambled password from binary form to asciiz hex string. + SYNOPSIS + make_password_from_salt() + to OUT store resulting string here, 2*SHA1_HASH_SIZE+2 bytes + salt IN password in salt format +*/ + +void make_password_from_salt(char *to, const uint8 *hash_stage2) +{ + *to++= PVERSION41_CHAR; + octet2hex(to, (const char*) hash_stage2, SHA1_HASH_SIZE); +} + diff --git a/mysql/sql/my_decimal.h b/mysql/sql/my_decimal.h new file mode 100644 index 0000000..d964484 --- /dev/null +++ b/mysql/sql/my_decimal.h @@ -0,0 +1,538 @@ +/* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MY_DECIMAL_INCLUDED +#define MY_DECIMAL_INCLUDED + +/** + @file + + It is interface module to fixed precision decimals library. + + Most functions use 'uint mask' as parameter, if during operation error + which fit in this mask is detected then it will be processed automatically + here. (errors are E_DEC_* constants, see include/decimal.h) + + Most function are just inline wrappers around library calls +*/ + +#if defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) +#include "sql_string.h" /* String */ +#endif + +C_MODE_START +#include +C_MODE_END + +class String; +typedef struct st_mysql_time MYSQL_TIME; + +#define DECIMAL_LONGLONG_DIGITS 22 +#define DECIMAL_LONG_DIGITS 10 +#define DECIMAL_LONG3_DIGITS 8 + +/** maximum length of buffer in our big digits (uint32). */ +#define DECIMAL_BUFF_LENGTH 9 + +/* the number of digits that my_decimal can possibly contain */ +#define DECIMAL_MAX_POSSIBLE_PRECISION (DECIMAL_BUFF_LENGTH * 9) + + +/** + maximum guaranteed precision of number in decimal digits (number of our + digits * number of decimal digits in one our big digit - number of decimal + digits in one our big digit decreased by 1 (because we always put decimal + point on the border of our big digits)) +*/ +#define DECIMAL_MAX_PRECISION (DECIMAL_MAX_POSSIBLE_PRECISION - 8*2) +#define DECIMAL_MAX_SCALE 30 +#define DECIMAL_NOT_SPECIFIED 31 + +/** + maximum length of string representation (number of maximum decimal + digits + 1 position for sign + 1 position for decimal point, no terminator) +*/ +#define DECIMAL_MAX_STR_LENGTH (DECIMAL_MAX_POSSIBLE_PRECISION + 2) + +/** + maximum size of packet length. +*/ +#define DECIMAL_MAX_FIELD_SIZE DECIMAL_MAX_PRECISION + + +inline uint my_decimal_size(uint precision, uint scale) +{ + /* + Always allocate more space to allow library to put decimal point + where it want + */ + return decimal_size(precision, scale) + 1; +} + + +inline int my_decimal_int_part(uint precision, uint decimals) +{ + return precision - ((decimals == DECIMAL_NOT_SPECIFIED) ? 0 : decimals); +} + + +/** + my_decimal class limits 'decimal_t' type to what we need in MySQL. + + It contains internally all necessary space needed by the instance so + no extra memory is needed. Objects should be moved using copy CTOR + or assignment operator, rather than memcpy/memmove. +*/ + +class my_decimal :public decimal_t +{ + /* + Several of the routines in strings/decimal.c have had buffer + overrun/underrun problems. These are *not* caught by valgrind. + To catch them, we allocate dummy fields around the buffer, + and test that their values do not change. + */ +#if !defined(DBUG_OFF) + int foo1; +#endif + + decimal_digit_t buffer[DECIMAL_BUFF_LENGTH]; + +#if !defined(DBUG_OFF) + int foo2; + static const int test_value= 123; +#endif + +public: + + my_decimal(const my_decimal &rhs) : decimal_t(rhs) + { + rhs.sanity_check(); +#if !defined(DBUG_OFF) + foo1= test_value; + foo2= test_value; +#endif + for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++) + buffer[i]= rhs.buffer[i]; + buf= buffer; + } + + my_decimal& operator=(const my_decimal &rhs) + { + sanity_check(); + rhs.sanity_check(); + if (this == &rhs) + return *this; + decimal_t::operator=(rhs); + for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++) + buffer[i]= rhs.buffer[i]; + buf= buffer; + return *this; + } + + void init() + { +#if !defined(DBUG_OFF) + foo1= test_value; + foo2= test_value; +#endif + /* + Do not initialize more of the base class, + we want to catch uninitialized use. + */ + len= DECIMAL_BUFF_LENGTH; + buf= buffer; + } + + my_decimal() + { + init(); + } + ~my_decimal() + { + sanity_check(); + } + + void sanity_check() const + { + DBUG_ASSERT(foo1 == test_value); + DBUG_ASSERT(foo2 == test_value); + DBUG_ASSERT(buf == buffer); + } + + bool sign() const { return decimal_t::sign; } + void sign(bool s) { decimal_t::sign= s; } + uint precision() const { return intg + frac; } + + /** Swap two my_decimal values */ + void swap(my_decimal &rhs) + { + swap_variables(my_decimal, *this, rhs); + } + + // Error reporting in server code only. + int check_result(uint mask, int result) const +#ifdef MYSQL_CLIENT + { + return result; + } +#endif + ; +}; + + +#ifndef DBUG_OFF +void print_decimal(const my_decimal *dec); +void print_decimal_buff(const my_decimal *dec, const uchar* ptr, int length); +const char *dbug_decimal_as_string(char *buff, const my_decimal *val); +#else +#define dbug_decimal_as_string(A) NULL +#endif + +bool str_set_decimal(uint mask, const my_decimal *val, uint fixed_prec, + uint fixed_dec, char filler, String *str, + const CHARSET_INFO *cs); + +extern my_decimal decimal_zero; + + +inline +void max_my_decimal(my_decimal *to, int precision, int frac) +{ + DBUG_ASSERT((precision <= DECIMAL_MAX_PRECISION)&& + (frac <= DECIMAL_MAX_SCALE)); + max_decimal(precision, frac, to); +} + +inline void max_internal_decimal(my_decimal *to) +{ + max_my_decimal(to, DECIMAL_MAX_PRECISION, 0); +} + +inline int check_result_and_overflow(uint mask, int result, my_decimal *val) +{ + if (val->check_result(mask, result) & E_DEC_OVERFLOW) + { + bool sign= val->sign(); + val->sanity_check(); + max_internal_decimal(val); + val->sign(sign); + } + /* + Avoid returning negative zero, cfr. decimal_cmp() + For result == E_DEC_DIV_ZERO *val has not been assigned. + */ + if (result != E_DEC_DIV_ZERO && val->sign() && decimal_is_zero(val)) + val->sign(false); + return result; +} + +inline uint my_decimal_length_to_precision(uint length, uint scale, + bool unsigned_flag) +{ + /* Precision can't be negative thus ignore unsigned_flag when length is 0. */ + DBUG_ASSERT(length || !scale); + uint retval= (uint) (length - (scale>0 ? 1:0) - + (unsigned_flag || !length ? 0:1)); + return retval; +} + +inline uint32 my_decimal_precision_to_length_no_truncation(uint precision, + uint8 scale, + bool unsigned_flag) +{ + /* + When precision is 0 it means that original length was also 0. Thus + unsigned_flag is ignored in this case. + */ + DBUG_ASSERT(precision || !scale); + uint32 retval= (uint32)(precision + (scale > 0 ? 1 : 0) + + (unsigned_flag || !precision ? 0 : 1)); + return retval; +} + +inline uint32 my_decimal_precision_to_length(uint precision, uint8 scale, + bool unsigned_flag) +{ + /* + When precision is 0 it means that original length was also 0. Thus + unsigned_flag is ignored in this case. + */ + DBUG_ASSERT(precision || !scale); + set_if_smaller(precision, DECIMAL_MAX_PRECISION); + return my_decimal_precision_to_length_no_truncation(precision, scale, + unsigned_flag); +} + +inline +int my_decimal_string_length(const my_decimal *d) +{ + /* length of string representation including terminating '\0' */ + return decimal_string_size(d); +} + + +inline +int my_decimal_max_length(const my_decimal *d) +{ + /* -1 because we do not count \0 */ + return decimal_string_size(d) - 1; +} + + +inline +int my_decimal_get_binary_size(uint precision, uint scale) +{ + return decimal_bin_size((int)precision, (int)scale); +} + + +inline +void my_decimal2decimal(const my_decimal *from, my_decimal *to) +{ + *to= *from; +} + + +int my_decimal2binary(uint mask, const my_decimal *d, uchar *bin, int prec, + int scale); + + +inline +int binary2my_decimal(uint mask, const uchar *bin, my_decimal *d, int prec, + int scale) +{ + return d->check_result(mask, bin2decimal(bin, d, prec, scale)); +} + + +inline +int my_decimal_set_zero(my_decimal *d) +{ + /* + We need the up-cast here, since my_decimal has sign() member functions, + which conflicts with decimal_t::size + (and decimal_make_zero is a macro, rather than a funcion). + */ + decimal_make_zero(static_cast(d)); + return 0; +} + + +inline +bool my_decimal_is_zero(const my_decimal *decimal_value) +{ + return decimal_is_zero(decimal_value); +} + + +inline +int my_decimal_round(uint mask, const my_decimal *from, int scale, + bool truncate, my_decimal *to) +{ + return + from->check_result(mask, decimal_round(from, to, scale, + (truncate ? TRUNCATE : HALF_UP))); +} + + +inline +int my_decimal_floor(uint mask, const my_decimal *from, my_decimal *to) +{ + return from->check_result(mask, decimal_round(from, to, 0, FLOOR)); +} + + +inline +int my_decimal_ceiling(uint mask, const my_decimal *from, my_decimal *to) +{ + return from->check_result(mask, decimal_round(from, to, 0, CEILING)); +} + + +inline bool str_set_decimal(const my_decimal *val, String *str, + const CHARSET_INFO *cs) +{ + return str_set_decimal(E_DEC_FATAL_ERROR, val, 0, 0, 0, str, cs); +} + +#ifndef MYSQL_CLIENT +class String; +int my_decimal2string(uint mask, const my_decimal *d, uint fixed_prec, + uint fixed_dec, char filler, String *str); +#endif + +inline +int my_decimal2int(uint mask, const my_decimal *d, my_bool unsigned_flag, + longlong *l) +{ + my_decimal rounded; + /* decimal_round can return only E_DEC_TRUNCATED */ + decimal_round(d, &rounded, 0, HALF_UP); + return d->check_result(mask, (unsigned_flag ? + decimal2ulonglong(&rounded, (ulonglong *)l) : + decimal2longlong(&rounded, l))); +} + + +inline +int my_decimal2double(uint, const my_decimal *d, double *result) +{ + /* No need to call check_result as this will always succeed */ + return decimal2double(d, result); +} + + +inline int my_decimal2lldiv_t(uint mask, const my_decimal *d, lldiv_t *to) +{ + return d->check_result(mask, decimal2lldiv_t(d, to)); +} + + +inline int str2my_decimal(uint mask, const char *str, + my_decimal *d, char **end) +{ + return check_result_and_overflow(mask, string2decimal(str, d, end), d); +} + + +int str2my_decimal(uint mask, const char *from, size_t length, + const CHARSET_INFO *charset, my_decimal *decimal_value); + +#if defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) +inline +int string2my_decimal(uint mask, const String *str, my_decimal *d) +{ + return str2my_decimal(mask, str->ptr(), (uint)str->length(), str->charset(), d); +} + + +my_decimal *date2my_decimal(const MYSQL_TIME *ltime, my_decimal *dec); +my_decimal *time2my_decimal(const MYSQL_TIME *ltime, my_decimal *dec); +my_decimal *timeval2my_decimal(const struct timeval *tm, my_decimal *dec); + +#endif /*defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) */ + +inline +int double2my_decimal(uint mask, double val, my_decimal *d) +{ + return check_result_and_overflow(mask, double2decimal(val, d), d); +} + + +inline +int int2my_decimal(uint mask, longlong i, my_bool unsigned_flag, my_decimal *d) +{ + return d->check_result(mask, (unsigned_flag ? + ulonglong2decimal((ulonglong)i, d) : + longlong2decimal(i, d))); +} + + +inline +void my_decimal_neg(decimal_t *arg) +{ + // Avoid returning negative zero, cfr. decimal_cmp() + if (decimal_is_zero(arg)) + { + arg->sign= 0; + return; + } + arg->sign^= 1; +} + + +inline +int my_decimal_add(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_add(a, b, res), + res); +} + + +inline +int my_decimal_sub(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_sub(a, b, res), + res); +} + + +inline +int my_decimal_mul(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_mul(a, b, res), + res); +} + + +inline +int my_decimal_div(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b, int div_scale_inc) +{ + return check_result_and_overflow(mask, + decimal_div(a, b, res, div_scale_inc), + res); +} + + +inline +int my_decimal_mod(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_mod(a, b, res), + res); +} + + +/** + @return + -1 if ab and 0 if a==b +*/ +inline +int my_decimal_cmp(const my_decimal *a, const my_decimal *b) +{ + return decimal_cmp(a, b); +} + +inline +bool operator<(const my_decimal &lhs, const my_decimal &rhs) +{ + return my_decimal_cmp(&lhs, &rhs) < 0; +} + +inline +bool operator!=(const my_decimal &lhs, const my_decimal &rhs) +{ + return my_decimal_cmp(&lhs, &rhs) != 0; +} + +inline +int my_decimal_intg(const my_decimal *a) +{ + return decimal_intg(a); +} + + +void my_decimal_trim(ulong *precision, uint *scale); + +#endif // MY_DECIMAL_INCLUDED diff --git a/mysql/sql/mysqld.h b/mysql/sql/mysqld.h new file mode 100644 index 0000000..4639fd3 --- /dev/null +++ b/mysql/sql/mysqld.h @@ -0,0 +1,979 @@ +/* Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef MYSQLD_INCLUDED +#define MYSQLD_INCLUDED + +#include "my_global.h" /* MYSQL_PLUGIN_IMPORT, FN_REFLEN, FN_EXTLEN */ +#include "my_bitmap.h" /* MY_BITMAP */ +#include "my_decimal.h" /* my_decimal */ +#include "mysql_com.h" /* SERVER_VERSION_LENGTH */ +#include "my_atomic.h" /* my_atomic_add64 */ +#include "sql_cmd.h" /* SQLCOM_END */ +#include "my_thread_local.h" /* my_get_thread_local */ +#include "my_thread.h" /* my_thread_attr_t */ +#include "atomic_class.h" /* Atomic_int32 */ + +class THD; +struct handlerton; +class Time_zone; +template class Bitmap; + +typedef struct st_mysql_const_lex_string LEX_CSTRING; +typedef struct st_mysql_show_var SHOW_VAR; + +/* + This forward declaration is used from C files where the real + definition is included before. Since C does not allow repeated + typedef declarations, even when identical, the definition may not be + repeated. +*/ +#ifndef CHARSET_INFO_DEFINED +typedef struct charset_info_st CHARSET_INFO; +#endif /* CHARSET_INFO_DEFINED */ + +#if MAX_INDEXES <= 64 +typedef Bitmap<64> key_map; /* Used for finding keys */ +#elif MAX_INDEXES > 255 +#error "MAX_INDEXES values greater than 255 is not supported." +#else +typedef Bitmap<((MAX_INDEXES+7)/8*8)> key_map; /* Used for finding keys */ +#endif + + /* Bits from testflag */ +#define TEST_PRINT_CACHED_TABLES 1 +#define TEST_NO_KEY_GROUP 2 +#define TEST_MIT_THREAD 4 +/* + TEST_BLOCKING is made obsolete and is not used any + where in the code base and is retained here so that + the other bit flag values are not changed. +*/ +#define OBSOLETE_TEST_BLOCKING 8 +#define TEST_KEEP_TMP_TABLES 16 +#define TEST_READCHECK 64 /**< Force use of readcheck */ +#define TEST_NO_EXTRA 128 +#define TEST_CORE_ON_SIGNAL 256 /**< Give core if signal */ +#define TEST_NO_STACKTRACE 512 +#define TEST_SIGINT 1024 /**< Allow sigint on threads */ +#define TEST_SYNCHRONIZATION 2048 /**< get server to do sleep in + some places */ +#define TEST_DO_QUICK_LEAK_CHECK 4096 /**< Do Valgrind leak check for + each command. */ + +#define SPECIAL_NO_NEW_FUNC 2 /* Skip new functions */ +#define SPECIAL_SKIP_SHOW_DB 4 /* Don't allow 'show db' */ +#define SPECIAL_NO_RESOLVE 64 /* Don't use gethostname */ +#define SPECIAL_NO_HOST_CACHE 512 /* Don't cache hosts */ +#define SPECIAL_SHORT_LOG_FORMAT 1024 + +/* Function prototypes */ +#ifndef EMBEDDED_LIBRARY +void kill_mysql(void); +#endif +void refresh_status(THD *thd); +bool is_secure_file_path(char *path); +int handle_early_options(); +void adjust_related_options(ulong *requested_open_files); +ulong sql_rnd_with_mutex(); + +// These are needed for unit testing. +void set_remaining_args(int argc, char **argv); +int init_common_variables(); +void my_init_signals(); +bool gtid_server_init(); +void gtid_server_cleanup(); +const char *fixup_enforce_gtid_consistency_command_line(char *value_arg); + +extern "C" MYSQL_PLUGIN_IMPORT CHARSET_INFO *system_charset_info; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *files_charset_info ; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *national_charset_info; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *table_alias_charset; + +enum enum_server_operational_state +{ + SERVER_BOOTING, /* Server is not operational. It is starting */ + SERVER_OPERATING, /* Server is fully initialized and operating */ + SERVER_SHUTTING_DOWN /* erver is shutting down */ +}; +enum_server_operational_state get_server_state(); + +/** + Character set of the buildin error messages loaded from errmsg.sys. +*/ +extern CHARSET_INFO *error_message_charset_info; + +extern CHARSET_INFO *character_set_filesystem; + +extern MY_BITMAP temp_pool; +extern bool opt_large_files, server_id_supplied; +extern bool opt_update_log, opt_bin_log; +extern my_bool opt_log_slave_updates; +extern my_bool opt_log_unsafe_statements; +extern bool opt_general_log, opt_slow_log, opt_general_log_raw; +extern my_bool opt_backup_history_log; +extern my_bool opt_backup_progress_log; +extern ulonglong log_output_options; +extern ulong log_backup_output_options; +extern my_bool opt_log_queries_not_using_indexes; +extern ulong opt_log_throttle_queries_not_using_indexes; +extern bool opt_disable_networking, opt_skip_show_db; +extern bool opt_skip_name_resolve; +extern my_bool opt_help; +extern my_bool opt_verbose; +extern bool opt_ignore_builtin_innodb; +extern my_bool opt_character_set_client_handshake; +extern MYSQL_PLUGIN_IMPORT bool volatile abort_loop; +extern my_bool opt_bootstrap, opt_initialize; +extern my_bool opt_safe_user_create; +extern my_bool opt_safe_show_db, opt_local_infile, opt_myisam_use_mmap; +extern my_bool opt_slave_compressed_protocol, use_temp_pool; +extern ulong slave_exec_mode_options; +extern ulonglong slave_type_conversions_options; +extern my_bool read_only, opt_readonly; +extern my_bool super_read_only, opt_super_readonly; +extern my_bool lower_case_file_system; +extern ulonglong slave_rows_search_algorithms_options; +extern my_bool opt_require_secure_transport; + +#ifdef HAVE_REPLICATION +extern my_bool opt_slave_preserve_commit_order; +#endif + +#ifndef DBUG_OFF +extern uint slave_rows_last_search_algorithm_used; +#endif +extern ulong mts_parallel_option; +extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs; +extern my_bool opt_secure_auth; +extern char* opt_secure_file_priv; +extern char* opt_secure_backup_file_priv; +extern size_t opt_secure_backup_file_priv_len; +extern my_bool opt_log_slow_admin_statements, opt_log_slow_slave_statements; +extern my_bool sp_automatic_privileges, opt_noacl; +extern my_bool opt_old_style_user_limits, trust_function_creators; +extern my_bool check_proxy_users, mysql_native_password_proxy_users, sha256_password_proxy_users; +extern uint opt_crash_binlog_innodb; +extern char *shared_memory_base_name, *mysqld_unix_port; +extern my_bool opt_enable_shared_memory; +extern char *default_tz_name; +extern Time_zone *default_tz; +extern char *default_storage_engine; +extern char *default_tmp_storage_engine; +extern ulong internal_tmp_disk_storage_engine; +extern bool opt_endinfo, using_udf_functions; +extern my_bool locked_in_memory; +extern bool opt_using_transactions; +extern ulong max_long_data_size; +extern ulong current_pid; +extern ulong expire_logs_days; +extern my_bool relay_log_recovery; +extern uint sync_binlog_period, sync_relaylog_period, + sync_relayloginfo_period, sync_masterinfo_period, + opt_mts_checkpoint_period, opt_mts_checkpoint_group; +extern ulong opt_tc_log_size, tc_log_max_pages_used, tc_log_page_size; +extern ulong tc_log_page_waits; +extern my_bool relay_log_purge, opt_innodb_safe_binlog, opt_innodb; +extern my_bool relay_log_recovery; +extern my_bool offline_mode; +extern my_bool opt_log_builtin_as_identified_by_password; +extern uint test_flags,select_errors,ha_open_options; +extern uint protocol_version, mysqld_port, dropping_tables; +extern ulong delay_key_write_options; +extern ulong opt_log_timestamps; +extern const char *timestamp_type_names[]; +extern char *opt_general_logname, *opt_slow_logname, *opt_bin_logname, + *opt_relay_logname; +extern char *opt_backup_history_logname, *opt_backup_progress_logname, + *opt_backup_settings_name; +extern const char *log_output_str; +extern const char *log_backup_output_str; +extern char *mysql_home_ptr, *pidfile_name_ptr; +extern char *default_auth_plugin; +extern uint default_password_lifetime; +extern char *my_bind_addr_str; +extern char glob_hostname[FN_REFLEN], mysql_home[FN_REFLEN]; +extern char pidfile_name[FN_REFLEN], system_time_zone[30], *opt_init_file; +extern char default_logfile_name[FN_REFLEN]; +extern char *opt_tc_log_file; +/*Move UUID_LENGTH from item_strfunc.h*/ +#define UUID_LENGTH (8+1+4+1+4+1+4+1+12) +extern char server_uuid[UUID_LENGTH+1]; +extern const char *server_uuid_ptr; +extern const double log_10[309]; +extern ulonglong keybuff_size; +extern ulonglong thd_startup_options; +extern ulong binlog_cache_use, binlog_cache_disk_use; +extern ulong binlog_stmt_cache_use, binlog_stmt_cache_disk_use; +extern ulong aborted_threads; +extern ulong delayed_insert_timeout; +extern ulong delayed_insert_limit, delayed_queue_size; +extern ulong delayed_insert_threads, delayed_insert_writes; +extern ulong delayed_rows_in_use,delayed_insert_errors; +extern Atomic_int32 slave_open_temp_tables; +extern ulong query_cache_size, query_cache_min_res_unit; +extern ulong slow_launch_time; +extern ulong table_cache_size, table_def_size; +extern ulong table_cache_size_per_instance, table_cache_instances; +extern MYSQL_PLUGIN_IMPORT ulong max_connections; +extern ulong max_digest_length; +extern ulong max_connect_errors, connect_timeout; +extern my_bool opt_slave_allow_batching; +extern my_bool allow_slave_start; +extern LEX_CSTRING reason_slave_blocked; +extern ulong slave_trans_retries; +extern uint slave_net_timeout; +extern ulong opt_mts_slave_parallel_workers; +extern ulonglong opt_mts_pending_jobs_size_max; +extern uint max_user_connections; +extern ulong rpl_stop_slave_timeout; +extern my_bool log_bin_use_v1_row_events; +extern ulong what_to_log,flush_time; +extern ulong max_prepared_stmt_count, prepared_stmt_count; +extern ulong open_files_limit; +extern ulong binlog_cache_size, binlog_stmt_cache_size; +extern ulonglong max_binlog_cache_size, max_binlog_stmt_cache_size; +extern int32 opt_binlog_max_flush_queue_time; +extern ulong opt_binlog_group_commit_sync_delay; +extern ulong opt_binlog_group_commit_sync_no_delay_count; +extern ulong max_binlog_size, max_relay_log_size; +extern ulong slave_max_allowed_packet; +extern ulong opt_binlog_rows_event_max_size; +extern ulong binlog_checksum_options; +extern const char *binlog_checksum_type_names[]; +extern my_bool opt_master_verify_checksum; +extern my_bool opt_slave_sql_verify_checksum; +extern uint32 gtid_executed_compression_period; +extern my_bool binlog_gtid_simple_recovery; +extern ulong binlog_error_action; +extern ulong locked_account_connection_count; +enum enum_binlog_error_action +{ + /// Ignore the error and let server continue without binlogging + IGNORE_ERROR= 0, + /// Abort the server + ABORT_SERVER= 1 +}; +extern const char *binlog_error_action_list[]; + +extern ulong stored_program_cache_size; +extern ulong back_log; +extern char language[FN_REFLEN]; +extern "C" MYSQL_PLUGIN_IMPORT ulong server_id; +extern time_t server_start_time, flush_status_time; +extern char *opt_mysql_tmpdir, mysql_charsets_dir[]; +extern size_t mysql_unpacked_real_data_home_len; +extern MYSQL_PLUGIN_IMPORT MY_TMPDIR mysql_tmpdir_list; +extern const char *show_comp_option_name[]; +extern const char *first_keyword, *binary_keyword; +extern MYSQL_PLUGIN_IMPORT const char *my_localhost; +extern const char *myisam_recover_options_str; +extern const char *in_left_expr_name, *in_additional_cond, *in_having_cond; +extern SHOW_VAR status_vars[]; +extern struct system_variables max_system_variables; +extern struct system_status_var global_status_var; +extern struct rand_struct sql_rand; +extern const char *opt_date_time_formats[]; +extern handlerton *myisam_hton; +extern handlerton *heap_hton; +extern handlerton *innodb_hton; +extern uint opt_server_id_bits; +extern ulong opt_server_id_mask; +#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE +/* engine specific hook, to be made generic */ +extern int(*ndb_wait_setup_func)(ulong); +extern ulong opt_ndb_wait_setup; +#endif +extern const char *load_default_groups[]; +extern struct my_option my_long_options[]; +extern struct my_option my_long_early_options[]; +extern bool mysqld_server_started; +extern "C" MYSQL_PLUGIN_IMPORT int orig_argc; +extern "C" MYSQL_PLUGIN_IMPORT char **orig_argv; +extern my_thread_attr_t connection_attrib; +extern my_bool old_mode; +extern my_bool avoid_temporal_upgrade; +extern LEX_STRING opt_init_connect, opt_init_slave; +extern char err_shared_dir[]; +extern my_decimal decimal_zero; +#ifndef EMBEDDED_LIBRARY +extern ulong connection_errors_internal; +extern ulong connection_errors_peer_addr; +#endif +extern ulong log_warnings; +extern bool opt_log_syslog_enable; +extern char *opt_log_syslog_tag; +#ifndef _WIN32 +extern bool opt_log_syslog_include_pid; +extern char *opt_log_syslog_facility; +#endif +/** The size of the host_cache. */ +extern uint host_cache_size; +extern ulong log_error_verbosity; + +/** System variable show_compatibility_56. */ +extern my_bool show_compatibility_56; + +#if defined(EMBEDDED_LIBRARY) +extern ulong max_allowed_packet; +extern ulong net_buffer_length; +#endif + +extern LEX_CSTRING sql_statement_names[(uint) SQLCOM_END + 1]; + +/* + THR_MALLOC is a key which will be used to set/get MEM_ROOT** for a thread, + using my_set_thread_local()/my_get_thread_local(). +*/ +extern thread_local_key_t THR_MALLOC; +extern bool THR_MALLOC_initialized; + +static inline MEM_ROOT ** my_thread_get_THR_MALLOC() +{ + DBUG_ASSERT(THR_MALLOC_initialized); + return (MEM_ROOT**) my_get_thread_local(THR_MALLOC); +} + +static inline int my_thread_set_THR_MALLOC(MEM_ROOT ** hdl) +{ + DBUG_ASSERT(THR_MALLOC_initialized); + return my_set_thread_local(THR_MALLOC, hdl); +} + +/* + THR_THD is a key which will be used to set/get THD* for a thread, + using my_set_thread_local()/my_get_thread_local(). +*/ +extern MYSQL_PLUGIN_IMPORT thread_local_key_t THR_THD; +extern bool THR_THD_initialized; + +static inline THD * my_thread_get_THR_THD() +{ + DBUG_ASSERT(THR_THD_initialized); + return (THD*)my_get_thread_local(THR_THD); +} + +static inline int my_thread_set_THR_THD(THD *thd) +{ + DBUG_ASSERT(THR_THD_initialized); + return my_set_thread_local(THR_THD, thd); +} + +#ifdef HAVE_PSI_INTERFACE + +C_MODE_START + +extern PSI_mutex_key key_LOCK_tc; + +#ifdef HAVE_OPENSSL +extern PSI_mutex_key key_LOCK_des_key_file; +#endif + +extern PSI_mutex_key key_BINLOG_LOCK_commit; +extern PSI_mutex_key key_BINLOG_LOCK_commit_queue; +extern PSI_mutex_key key_BINLOG_LOCK_done; +extern PSI_mutex_key key_BINLOG_LOCK_flush_queue; +extern PSI_mutex_key key_BINLOG_LOCK_index; +extern PSI_mutex_key key_BINLOG_LOCK_log; +extern PSI_mutex_key key_BINLOG_LOCK_binlog_end_pos; +extern PSI_mutex_key key_BINLOG_LOCK_sync; +extern PSI_mutex_key key_BINLOG_LOCK_sync_queue; +extern PSI_mutex_key key_BINLOG_LOCK_xids; +extern PSI_mutex_key + key_hash_filo_lock, + key_LOCK_crypt, key_LOCK_error_log, + key_LOCK_gdl, key_LOCK_global_system_variables, + key_LOCK_lock_db, key_LOCK_logger, key_LOCK_manager, + key_LOCK_prepared_stmt_count, + key_LOCK_server_started, key_LOCK_status, + key_LOCK_sql_slave_skip_counter, + key_LOCK_slave_net_timeout, + key_LOCK_table_share, key_LOCK_thd_data, key_LOCK_thd_sysvar, + key_LOCK_user_conn, key_LOCK_uuid_generator, key_LOG_LOCK_log, + key_master_info_data_lock, key_master_info_run_lock, + key_master_info_sleep_lock, key_master_info_thd_lock, + key_mutex_slave_reporting_capability_err_lock, key_relay_log_info_data_lock, + key_relay_log_info_sleep_lock, key_relay_log_info_thd_lock, + key_relay_log_info_log_space_lock, key_relay_log_info_run_lock, + key_mutex_slave_parallel_pend_jobs, key_mutex_mts_temp_tables_lock, + key_mutex_slave_parallel_worker, + key_mutex_slave_parallel_worker_count, + key_structure_guard_mutex, key_TABLE_SHARE_LOCK_ha_data, + key_LOCK_error_messages, + key_LOCK_log_throttle_qni, key_LOCK_query_plan, key_LOCK_thd_query, + key_LOCK_cost_const, key_LOCK_current_cond; +extern PSI_mutex_key key_RELAYLOG_LOCK_commit; +extern PSI_mutex_key key_RELAYLOG_LOCK_commit_queue; +extern PSI_mutex_key key_RELAYLOG_LOCK_done; +extern PSI_mutex_key key_RELAYLOG_LOCK_flush_queue; +extern PSI_mutex_key key_RELAYLOG_LOCK_index; +extern PSI_mutex_key key_RELAYLOG_LOCK_log; +extern PSI_mutex_key key_RELAYLOG_LOCK_sync; +extern PSI_mutex_key key_RELAYLOG_LOCK_sync_queue; +extern PSI_mutex_key key_RELAYLOG_LOCK_xids; +extern PSI_mutex_key key_LOCK_sql_rand; +extern PSI_mutex_key key_gtid_ensure_index_mutex; +extern PSI_mutex_key key_mts_temp_table_LOCK; +extern PSI_mutex_key key_LOCK_reset_gtid_table; +extern PSI_mutex_key key_LOCK_compress_gtid_table; +extern PSI_mutex_key key_mts_gaq_LOCK; +extern PSI_mutex_key key_thd_timer_mutex; +extern PSI_mutex_key key_LOCK_offline_mode; +extern PSI_mutex_key key_LOCK_default_password_lifetime; +extern PSI_mutex_key key_LOCK_group_replication_handler; + +#ifdef HAVE_REPLICATION +extern PSI_mutex_key key_commit_order_manager_mutex; +extern PSI_mutex_key key_mutex_slave_worker_hash; +#endif + +extern PSI_rwlock_key key_rwlock_LOCK_grant, key_rwlock_LOCK_logger, + key_rwlock_LOCK_sys_init_connect, key_rwlock_LOCK_sys_init_slave, + key_rwlock_LOCK_system_variables_hash, key_rwlock_query_cache_query_lock, + key_rwlock_global_sid_lock, key_rwlock_gtid_mode_lock, + key_rwlock_channel_map_lock, key_rwlock_channel_lock; + +extern PSI_cond_key key_PAGE_cond, key_COND_active, key_COND_pool; +extern PSI_cond_key key_BINLOG_update_cond, + key_COND_cache_status_changed, key_COND_manager, + key_COND_server_started, + key_item_func_sleep_cond, key_master_info_data_cond, + key_master_info_start_cond, key_master_info_stop_cond, + key_master_info_sleep_cond, + key_relay_log_info_data_cond, key_relay_log_info_log_space_cond, + key_relay_log_info_start_cond, key_relay_log_info_stop_cond, + key_relay_log_info_sleep_cond, key_cond_slave_parallel_pend_jobs, + key_cond_slave_parallel_worker, key_cond_mts_gaq, + key_TABLE_SHARE_cond, key_user_level_lock_cond; +extern PSI_cond_key key_BINLOG_COND_done; +extern PSI_cond_key key_RELAYLOG_COND_done; +extern PSI_cond_key key_RELAYLOG_update_cond; +extern PSI_cond_key key_BINLOG_prep_xids_cond; +extern PSI_cond_key key_RELAYLOG_prep_xids_cond; +extern PSI_cond_key key_gtid_ensure_index_cond; +extern PSI_cond_key key_COND_compress_gtid_table; +extern PSI_cond_key key_COND_thr_lock; + +#ifdef HAVE_REPLICATION +extern PSI_cond_key key_cond_slave_worker_hash; +extern PSI_cond_key key_commit_order_manager_cond; +#endif +extern PSI_thread_key key_thread_bootstrap, + key_thread_handle_manager, key_thread_main, + key_thread_one_connection, key_thread_signal_hand, + key_thread_compress_gtid_table, key_thread_parser_service; +extern PSI_thread_key key_thread_timer_notifier; + +extern PSI_file_key key_file_map; +extern PSI_file_key key_file_binlog, key_file_binlog_cache, + key_file_binlog_index, key_file_binlog_index_cache, key_file_casetest, + key_file_dbopt, key_file_des_key_file, key_file_ERRMSG, key_select_to_file, + key_file_fileparser, key_file_frm, key_file_global_ddl_log, key_file_load, + key_file_loadfile, key_file_log_event_data, key_file_log_event_info, + key_file_master_info, key_file_misc, key_file_partition_ddl_log, + key_file_pid, key_file_relay_log_info, key_file_send_file, key_file_tclog, + key_file_trg, key_file_trn, key_file_init; +extern PSI_file_key key_file_general_log, key_file_slow_log; +extern PSI_file_key key_file_relaylog, key_file_relaylog_cache, key_file_relaylog_index, key_file_relaylog_index_cache; +extern PSI_socket_key key_socket_tcpip, key_socket_unix, key_socket_client_connection; + +void init_server_psi_keys(); + +C_MODE_END + +#endif /* HAVE_PSI_INTERFACE */ + +C_MODE_START + +extern PSI_memory_key key_memory_locked_table_list; +extern PSI_memory_key key_memory_locked_thread_list; +extern PSI_memory_key key_memory_thd_transactions; +extern PSI_memory_key key_memory_delegate; +extern PSI_memory_key key_memory_acl_mem; +extern PSI_memory_key key_memory_acl_memex; +extern PSI_memory_key key_memory_acl_cache; +extern PSI_memory_key key_memory_thd_main_mem_root; +extern PSI_memory_key key_memory_help; +extern PSI_memory_key key_memory_frm; +extern PSI_memory_key key_memory_table_share; +extern PSI_memory_key key_memory_gdl; +extern PSI_memory_key key_memory_table_triggers_list; +extern PSI_memory_key key_memory_prepared_statement_map; +extern PSI_memory_key key_memory_prepared_statement_main_mem_root; +extern PSI_memory_key key_memory_protocol_rset_root; +extern PSI_memory_key key_memory_warning_info_warn_root; +extern PSI_memory_key key_memory_sp_cache; +extern PSI_memory_key key_memory_sp_head_main_root; +extern PSI_memory_key key_memory_sp_head_execute_root; +extern PSI_memory_key key_memory_sp_head_call_root; +extern PSI_memory_key key_memory_table_mapping_root; +extern PSI_memory_key key_memory_quick_range_select_root; +extern PSI_memory_key key_memory_quick_index_merge_root; +extern PSI_memory_key key_memory_quick_ror_intersect_select_root; +extern PSI_memory_key key_memory_quick_ror_union_select_root; +extern PSI_memory_key key_memory_quick_group_min_max_select_root; +extern PSI_memory_key key_memory_test_quick_select_exec; +extern PSI_memory_key key_memory_prune_partitions_exec; +extern PSI_memory_key key_memory_binlog_recover_exec; +extern PSI_memory_key key_memory_blob_mem_storage; + +extern PSI_memory_key key_memory_Sys_var_charptr_value; +extern PSI_memory_key key_memory_THD_db; +extern PSI_memory_key key_memory_user_var_entry; +extern PSI_memory_key key_memory_user_var_entry_value; +extern PSI_memory_key key_memory_Slave_job_group_group_relay_log_name; +extern PSI_memory_key key_memory_Relay_log_info_group_relay_log_name; +extern PSI_memory_key key_memory_binlog_cache_mngr; +extern PSI_memory_key key_memory_Row_data_memory_memory; +extern PSI_memory_key key_memory_errmsgs; +extern PSI_memory_key key_memory_Event_queue_element_for_exec_names; +extern PSI_memory_key key_memory_Event_scheduler_scheduler_param; +extern PSI_memory_key key_memory_Gis_read_stream_err_msg; +extern PSI_memory_key key_memory_Geometry_objects_data; +extern PSI_memory_key key_memory_host_cache_hostname; +extern PSI_memory_key key_memory_User_level_lock; +extern PSI_memory_key key_memory_Filesort_info_record_pointers; +extern PSI_memory_key key_memory_Sort_param_tmp_buffer; +extern PSI_memory_key key_memory_Filesort_info_merge; +extern PSI_memory_key key_memory_Filesort_buffer_sort_keys; +extern PSI_memory_key key_memory_handler_errmsgs; +extern PSI_memory_key key_memory_handlerton; +extern PSI_memory_key key_memory_XID; +extern PSI_memory_key key_memory_MYSQL_LOCK; +extern PSI_memory_key key_memory_MYSQL_LOG_name; +extern PSI_memory_key key_memory_TC_LOG_MMAP_pages; +extern PSI_memory_key key_memory_my_str_malloc; +extern PSI_memory_key key_memory_MYSQL_BIN_LOG_basename; +extern PSI_memory_key key_memory_MYSQL_BIN_LOG_index; +extern PSI_memory_key key_memory_MYSQL_RELAY_LOG_basename; +extern PSI_memory_key key_memory_MYSQL_RELAY_LOG_index; +extern PSI_memory_key key_memory_rpl_filter; +extern PSI_memory_key key_memory_Security_context; +extern PSI_memory_key key_memory_NET_buff; +extern PSI_memory_key key_memory_NET_compress_packet; +extern PSI_memory_key key_memory_my_bitmap_map; +extern PSI_memory_key key_memory_QUICK_RANGE_SELECT_mrr_buf_desc; +extern PSI_memory_key key_memory_TABLE_RULE_ENT; +extern PSI_memory_key key_memory_Mutex_cond_array_Mutex_cond; +extern PSI_memory_key key_memory_Owned_gtids_sidno_to_hash; +extern PSI_memory_key key_memory_Sid_map_Node; +extern PSI_memory_key key_memory_bison_stack; +extern PSI_memory_key key_memory_TABLE_sort_io_cache; +extern PSI_memory_key key_memory_DATE_TIME_FORMAT; +extern PSI_memory_key key_memory_DDL_LOG_MEMORY_ENTRY; +extern PSI_memory_key key_memory_ST_SCHEMA_TABLE; +extern PSI_memory_key key_memory_ignored_db; +extern PSI_memory_key key_memory_SLAVE_INFO; +extern PSI_memory_key key_memory_log_event_old; +extern PSI_memory_key key_memory_HASH_ROW_ENTRY; +extern PSI_memory_key key_memory_table_def_memory; +extern PSI_memory_key key_memory_MPVIO_EXT_auth_info; +extern PSI_memory_key key_memory_LOG_POS_COORD; +extern PSI_memory_key key_memory_XID_STATE; +extern PSI_memory_key key_memory_Rpl_info_file_buffer; +extern PSI_memory_key key_memory_Rpl_info_table; +extern PSI_memory_key key_memory_binlog_pos; +extern PSI_memory_key key_memory_db_worker_hash_entry; +extern PSI_memory_key key_memory_rpl_slave_command_buffer; +extern PSI_memory_key key_memory_binlog_ver_1_event; +extern PSI_memory_key key_memory_rpl_slave_check_temp_dir; +extern PSI_memory_key key_memory_TABLE; +extern PSI_memory_key key_memory_binlog_statement_buffer; +extern PSI_memory_key key_memory_user_conn; +extern PSI_memory_key key_memory_dboptions_hash; +extern PSI_memory_key key_memory_hash_index_key_buffer; +extern PSI_memory_key key_memory_THD_handler_tables_hash; +extern PSI_memory_key key_memory_JOIN_CACHE; +extern PSI_memory_key key_memory_READ_INFO; +extern PSI_memory_key key_memory_partition_syntax_buffer; +extern PSI_memory_key key_memory_global_system_variables; +extern PSI_memory_key key_memory_THD_variables; +extern PSI_memory_key key_memory_PROFILE; +extern PSI_memory_key key_memory_LOG_name; +extern PSI_memory_key key_memory_string_iterator; +extern PSI_memory_key key_memory_frm_extra_segment_buff; +extern PSI_memory_key key_memory_frm_form_pos; +extern PSI_memory_key key_memory_frm_string; +extern PSI_memory_key key_memory_Unique_sort_buffer; +extern PSI_memory_key key_memory_Unique_merge_buffer; +extern PSI_memory_key key_memory_shared_memory_name; +extern PSI_memory_key key_memory_opt_bin_logname; +extern PSI_memory_key key_memory_Query_cache; +extern PSI_memory_key key_memory_READ_RECORD_cache; +extern PSI_memory_key key_memory_Quick_ranges; +extern PSI_memory_key key_memory_File_query_log_name; +extern PSI_memory_key key_memory_Table_trigger_dispatcher; +extern PSI_memory_key key_memory_show_slave_status_io_gtid_set; +extern PSI_memory_key key_memory_write_set_extraction; +extern PSI_memory_key key_memory_thd_timer; +extern PSI_memory_key key_memory_THD_Session_tracker; +extern PSI_memory_key key_memory_THD_Session_sysvar_resource_manager; +extern PSI_memory_key key_memory_get_all_tables; +extern PSI_memory_key key_memory_fill_schema_schemata; +extern PSI_memory_key key_memory_native_functions; +extern PSI_memory_key key_memory_JSON; + +C_MODE_END + +/* + MAINTAINER: Please keep this list in order, to limit merge collisions. + Hint: grep PSI_stage_info | sort -u +*/ +extern PSI_stage_info stage_after_create; +extern PSI_stage_info stage_allocating_local_table; +extern PSI_stage_info stage_alter_inplace_prepare; +extern PSI_stage_info stage_alter_inplace; +extern PSI_stage_info stage_alter_inplace_commit; +extern PSI_stage_info stage_changing_master; +extern PSI_stage_info stage_checking_master_version; +extern PSI_stage_info stage_checking_permissions; +extern PSI_stage_info stage_checking_privileges_on_cached_query; +extern PSI_stage_info stage_checking_query_cache_for_query; +extern PSI_stage_info stage_cleaning_up; +extern PSI_stage_info stage_closing_tables; +extern PSI_stage_info stage_compressing_gtid_table; +extern PSI_stage_info stage_connecting_to_master; +extern PSI_stage_info stage_converting_heap_to_ondisk; +extern PSI_stage_info stage_copying_to_group_table; +extern PSI_stage_info stage_copying_to_tmp_table; +extern PSI_stage_info stage_copy_to_tmp_table; +extern PSI_stage_info stage_creating_sort_index; +extern PSI_stage_info stage_creating_table; +extern PSI_stage_info stage_creating_tmp_table; +extern PSI_stage_info stage_deleting_from_main_table; +extern PSI_stage_info stage_deleting_from_reference_tables; +extern PSI_stage_info stage_discard_or_import_tablespace; +extern PSI_stage_info stage_end; +extern PSI_stage_info stage_executing; +extern PSI_stage_info stage_execution_of_init_command; +extern PSI_stage_info stage_explaining; +extern PSI_stage_info stage_finished_reading_one_binlog_switching_to_next_binlog; +extern PSI_stage_info stage_flushing_relay_log_and_master_info_repository; +extern PSI_stage_info stage_flushing_relay_log_info_file; +extern PSI_stage_info stage_freeing_items; +extern PSI_stage_info stage_fulltext_initialization; +extern PSI_stage_info stage_got_handler_lock; +extern PSI_stage_info stage_got_old_table; +extern PSI_stage_info stage_init; +extern PSI_stage_info stage_insert; +extern PSI_stage_info stage_invalidating_query_cache_entries_table; +extern PSI_stage_info stage_invalidating_query_cache_entries_table_list; +extern PSI_stage_info stage_killing_slave; +extern PSI_stage_info stage_logging_slow_query; +extern PSI_stage_info stage_making_temp_file_append_before_load_data; +extern PSI_stage_info stage_making_temp_file_create_before_load_data; +extern PSI_stage_info stage_manage_keys; +extern PSI_stage_info stage_master_has_sent_all_binlog_to_slave; +extern PSI_stage_info stage_opening_tables; +extern PSI_stage_info stage_optimizing; +extern PSI_stage_info stage_preparing; +extern PSI_stage_info stage_purging_old_relay_logs; +extern PSI_stage_info stage_query_end; +extern PSI_stage_info stage_queueing_master_event_to_the_relay_log; +extern PSI_stage_info stage_reading_event_from_the_relay_log; +extern PSI_stage_info stage_registering_slave_on_master; +extern PSI_stage_info stage_removing_duplicates; +extern PSI_stage_info stage_removing_tmp_table; +extern PSI_stage_info stage_rename; +extern PSI_stage_info stage_rename_result_table; +extern PSI_stage_info stage_requesting_binlog_dump; +extern PSI_stage_info stage_reschedule; +extern PSI_stage_info stage_searching_rows_for_update; +extern PSI_stage_info stage_sending_binlog_event_to_slave; +extern PSI_stage_info stage_sending_cached_result_to_client; +extern PSI_stage_info stage_sending_data; +extern PSI_stage_info stage_setup; +extern PSI_stage_info stage_slave_has_read_all_relay_log; +extern PSI_stage_info stage_slave_waiting_event_from_coordinator; +extern PSI_stage_info stage_slave_waiting_for_workers_to_process_queue; +extern PSI_stage_info stage_slave_waiting_worker_queue; +extern PSI_stage_info stage_slave_waiting_worker_to_free_events; +extern PSI_stage_info stage_slave_waiting_worker_to_release_partition; +extern PSI_stage_info stage_slave_waiting_workers_to_exit; +extern PSI_stage_info stage_sorting_for_group; +extern PSI_stage_info stage_sorting_for_order; +extern PSI_stage_info stage_sorting_result; +extern PSI_stage_info stage_sql_thd_waiting_until_delay; +extern PSI_stage_info stage_statistics; +extern PSI_stage_info stage_storing_result_in_query_cache; +extern PSI_stage_info stage_storing_row_into_queue; +extern PSI_stage_info stage_system_lock; +extern PSI_stage_info stage_update; +extern PSI_stage_info stage_updating; +extern PSI_stage_info stage_updating_main_table; +extern PSI_stage_info stage_updating_reference_tables; +extern PSI_stage_info stage_upgrading_lock; +extern PSI_stage_info stage_user_sleep; +extern PSI_stage_info stage_verifying_table; +extern PSI_stage_info stage_waiting_for_gtid_to_be_committed; +extern PSI_stage_info stage_waiting_for_handler_insert; +extern PSI_stage_info stage_waiting_for_handler_lock; +extern PSI_stage_info stage_waiting_for_handler_open; +extern PSI_stage_info stage_waiting_for_insert; +extern PSI_stage_info stage_waiting_for_master_to_send_event; +extern PSI_stage_info stage_waiting_for_master_update; +extern PSI_stage_info stage_waiting_for_relay_log_space; +extern PSI_stage_info stage_waiting_for_slave_mutex_on_exit; +extern PSI_stage_info stage_waiting_for_slave_thread_to_start; +extern PSI_stage_info stage_waiting_for_query_cache_lock; +extern PSI_stage_info stage_waiting_for_table_flush; +extern PSI_stage_info stage_waiting_for_the_next_event_in_relay_log; +extern PSI_stage_info stage_waiting_for_the_slave_thread_to_advance_position; +extern PSI_stage_info stage_waiting_to_finalize_termination; +extern PSI_stage_info stage_worker_waiting_for_its_turn_to_commit; +extern PSI_stage_info stage_worker_waiting_for_commit_parent; +extern PSI_stage_info stage_suspending; +extern PSI_stage_info stage_starting; +extern PSI_stage_info stage_waiting_for_no_channel_reference; +#ifdef HAVE_PSI_STATEMENT_INTERFACE +/** + Statement instrumentation keys (sql). + The last entry, at [SQLCOM_END], is for parsing errors. +*/ +extern PSI_statement_info sql_statement_info[(uint) SQLCOM_END + 1]; + +/** + Statement instrumentation keys (com). + The last entry, at [COM_END], is for packet errors. +*/ +extern PSI_statement_info com_statement_info[(uint) COM_END + 1]; + +/** + Statement instrumentation key for replication. +*/ +extern PSI_statement_info stmt_info_rpl; + +void init_sql_statement_info(); +void init_com_statement_info(); +#endif /* HAVE_PSI_STATEMENT_INTERFACE */ + +#ifndef _WIN32 +extern my_thread_t signal_thread; +#endif + +#ifdef HAVE_OPENSSL +extern struct st_VioSSLFd * ssl_acceptor_fd; +#endif /* HAVE_OPENSSL */ + +/* + The following variables were under INNODB_COMPABILITY_HOOKS + */ +extern my_bool opt_large_pages; +extern uint opt_large_page_size; +extern char lc_messages_dir[FN_REFLEN]; +extern char *lc_messages_dir_ptr; +extern const char *log_error_dest; +extern MYSQL_PLUGIN_IMPORT char reg_ext[FN_EXTLEN]; +extern MYSQL_PLUGIN_IMPORT uint reg_ext_length; +extern MYSQL_PLUGIN_IMPORT uint lower_case_table_names; +extern MYSQL_PLUGIN_IMPORT bool mysqld_embedded; + +extern long tc_heuristic_recover; + +extern ulong specialflag; +extern size_t mysql_data_home_len; +extern size_t mysql_real_data_home_len; +extern const char *mysql_real_data_home_ptr; +extern MYSQL_PLUGIN_IMPORT char *mysql_data_home; +extern "C" MYSQL_PLUGIN_IMPORT char server_version[SERVER_VERSION_LENGTH]; +extern MYSQL_PLUGIN_IMPORT char mysql_real_data_home[]; +extern char mysql_unpacked_real_data_home[]; +extern MYSQL_PLUGIN_IMPORT struct system_variables global_system_variables; +extern char default_logfile_name[FN_REFLEN]; + +#define mysql_tmpdir (my_tmpdir(&mysql_tmpdir_list)) + +extern MYSQL_PLUGIN_IMPORT const key_map key_map_empty; +extern MYSQL_PLUGIN_IMPORT key_map key_map_full; /* Should be threaded as const */ + +/* + Server mutex locks and condition variables. + */ +extern mysql_mutex_t + LOCK_item_func_sleep, LOCK_status, + LOCK_uuid_generator, + LOCK_crypt, LOCK_timezone, + LOCK_slave_list, LOCK_manager, + LOCK_global_system_variables, LOCK_user_conn, LOCK_log_throttle_qni, + LOCK_prepared_stmt_count, LOCK_error_messages, + LOCK_sql_slave_skip_counter, LOCK_slave_net_timeout, + LOCK_offline_mode, LOCK_default_password_lifetime; +#ifdef HAVE_OPENSSL +extern char* des_key_file; +extern mysql_mutex_t LOCK_des_key_file; +#endif +extern mysql_mutex_t LOCK_server_started; +extern mysql_cond_t COND_server_started; +extern mysql_mutex_t LOCK_reset_gtid_table; +extern mysql_mutex_t LOCK_compress_gtid_table; +extern mysql_cond_t COND_compress_gtid_table; +extern mysql_rwlock_t LOCK_sys_init_connect, LOCK_sys_init_slave; +extern mysql_rwlock_t LOCK_system_variables_hash; +extern mysql_cond_t COND_manager; +extern int32 thread_running; +extern mysql_mutex_t LOCK_group_replication_handler; + +extern char *opt_ssl_ca, *opt_ssl_capath, *opt_ssl_cert, *opt_ssl_cipher, + *opt_ssl_key, *opt_ssl_crl, *opt_ssl_crlpath, *opt_tls_version; + + +extern char *opt_disabled_storage_engines; +/** + only options that need special treatment in get_one_option() deserve + to be listed below +*/ +enum options_mysqld +{ + OPT_to_set_the_start_number=256, + OPT_BIND_ADDRESS, + OPT_BINLOG_CHECKSUM, + OPT_BINLOG_DO_DB, + OPT_BINLOG_FORMAT, + OPT_BINLOG_MAX_FLUSH_QUEUE_TIME, + OPT_BINLOG_IGNORE_DB, + OPT_BIN_LOG, + OPT_BOOTSTRAP, + OPT_CONSOLE, + OPT_DEBUG_SYNC_TIMEOUT, + OPT_DELAY_KEY_WRITE_ALL, + OPT_ISAM_LOG, + OPT_IGNORE_DB_DIRECTORY, + OPT_KEY_BUFFER_SIZE, + OPT_KEY_CACHE_AGE_THRESHOLD, + OPT_KEY_CACHE_BLOCK_SIZE, + OPT_KEY_CACHE_DIVISION_LIMIT, + OPT_LC_MESSAGES_DIRECTORY, + OPT_LOWER_CASE_TABLE_NAMES, + OPT_MASTER_RETRY_COUNT, + OPT_MASTER_VERIFY_CHECKSUM, + OPT_POOL_OF_THREADS, + OPT_REPLICATE_DO_DB, + OPT_REPLICATE_DO_TABLE, + OPT_REPLICATE_IGNORE_DB, + OPT_REPLICATE_IGNORE_TABLE, + OPT_REPLICATE_REWRITE_DB, + OPT_REPLICATE_WILD_DO_TABLE, + OPT_REPLICATE_WILD_IGNORE_TABLE, + OPT_SERVER_ID, + OPT_SKIP_HOST_CACHE, + OPT_SKIP_LOCK, + OPT_SKIP_NEW, + OPT_SKIP_RESOLVE, + OPT_SKIP_STACK_TRACE, + OPT_SKIP_SYMLINKS, + OPT_SLAVE_SQL_VERIFY_CHECKSUM, + OPT_SSL_CA, + OPT_SSL_CAPATH, + OPT_SSL_CERT, + OPT_SSL_CIPHER, + OPT_TLS_VERSION, + OPT_SSL_KEY, + OPT_UPDATE_LOG, + OPT_WANT_CORE, + OPT_LOG_ERROR, + OPT_MAX_LONG_DATA_SIZE, + OPT_EARLY_PLUGIN_LOAD, + OPT_PLUGIN_LOAD, + OPT_PLUGIN_LOAD_ADD, + OPT_SSL_CRL, + OPT_SSL_CRLPATH, + OPT_PFS_INSTRUMENT, + OPT_DEFAULT_AUTH, + OPT_SECURE_AUTH, + OPT_THREAD_CACHE_SIZE, + OPT_HOST_CACHE_SIZE, + OPT_TABLE_DEFINITION_CACHE, + OPT_MDL_CACHE_SIZE, + OPT_MDL_HASH_INSTANCES, + OPT_SKIP_INNODB, + OPT_AVOID_TEMPORAL_UPGRADE, + OPT_SHOW_OLD_TEMPORALS, + OPT_ENFORCE_GTID_CONSISTENCY, + OPT_TRANSACTION_READ_ONLY, + OPT_TRANSACTION_ISOLATION +}; + + +/** + Query type constants (usable as bitmap flags). +*/ +enum enum_query_type +{ + /// Nothing specific, ordinary SQL query. + QT_ORDINARY= 0, + /// In utf8. + QT_TO_SYSTEM_CHARSET= (1 << 0), + /// Without character set introducers. + QT_WITHOUT_INTRODUCERS= (1 << 1), + /// When printing a SELECT, add its number (select_lex->number) + QT_SHOW_SELECT_NUMBER= (1 << 2), + /// Don't print a database if it's equal to the connection's database + QT_NO_DEFAULT_DB= (1 << 3), + /// When printing a derived table, don't print its expression, only alias + QT_DERIVED_TABLE_ONLY_ALIAS= (1 << 4), + /// Print in charset of Item::print() argument (typically thd->charset()). + QT_TO_ARGUMENT_CHARSET= (1 << 5), + /// Print identifiers without database's name + QT_NO_DB= (1 << 6), + /// Print identifiers without table's name + QT_NO_TABLE= (1 << 7), + /** + Change all Item_basic_constant to ? (used by query rewrite to compute + digest.) Un-resolved hints will also be printed in this format. + */ + QT_NORMALIZED_FORMAT= (1 << 8), + /** + If an expression is constant, print the expression, not the value + it evaluates to. Should be used for error messages, so that they + don't reveal values. + */ + QT_NO_DATA_EXPANSION= (1 << 9), +}; + +/* query_id */ +typedef int64 query_id_t; +extern query_id_t global_query_id; + +/* increment query_id and return it. */ +inline MY_ATTRIBUTE((warn_unused_result)) query_id_t next_query_id() +{ + query_id_t id= my_atomic_add64(&global_query_id, 1); + return (id+1); +} + +/* + TODO: Replace this with an inline function. + */ +#ifndef EMBEDDED_LIBRARY +extern "C" void unireg_abort(int exit_code) MY_ATTRIBUTE((noreturn)); +#else +extern "C" void unireg_clear(int exit_code); +#define unireg_abort(exit_code) do { unireg_clear(exit_code); DBUG_RETURN(exit_code); } while(0) +#endif + +#if defined(MYSQL_DYNAMIC_PLUGIN) && defined(_WIN32) +extern "C" THD *_current_thd_noinline(); +#define _current_thd() _current_thd_noinline() +#else +static inline THD *_current_thd(void) +{ + return my_thread_get_THR_THD(); +} +#endif +#define current_thd _current_thd() + +#define ER(X) ER_THD(current_thd,X) + +#endif /* MYSQLD_INCLUDED */ diff --git a/mysql/sql/net_serv.cpp b/mysql/sql/net_serv.cpp new file mode 100644 index 0000000..a6bc857 --- /dev/null +++ b/mysql/sql/net_serv.cpp @@ -0,0 +1,1059 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file + + This file is the net layer API for the MySQL client/server protocol. + + Write and read of logical packets to/from socket. + + Writes are cached into net_buffer_length big packets. + Read packets are reallocated dynamicly when reading big packets. + Each logical packet has the following pre-info: + 3 byte length & 1 byte package-number. + + This file needs to be written in C as it's used by the libmysql client as a + C file. +*/ + +/* + HFTODO this must be hidden if we don't want client capabilities in + embedded library + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "probes_mysql.h" +/* key_memory_NET_buff */ +#include "mysqld.h" + +#include + +using std::min; +using std::max; + +PSI_memory_key key_memory_NET_buff; +PSI_memory_key key_memory_NET_compress_packet; + +#ifdef EMBEDDED_LIBRARY +#undef MYSQL_SERVER +#undef MYSQL_CLIENT +#define MYSQL_CLIENT +#endif /*EMBEDDED_LIBRARY */ + + +/* + The following handles the differences when this is linked between the + client and the server. + + This gives an error if a too big packet is found. + The server can change this, but because the client can't normally do this + the client should have a bigger max_allowed_packet. +*/ + +#ifdef MYSQL_SERVER +/* + The following variables/functions should really not be declared + extern, but as it's hard to include sql_class.h here, we have to + live with this for a while. +*/ +extern void query_cache_insert(const char *packet, ulong length, + unsigned pkt_nr); +extern void thd_increment_bytes_sent(size_t length); +extern void thd_increment_bytes_received(size_t length); + +/* Additional instrumentation hooks for the server */ +#include "mysql_com_server.h" +#endif + +#define VIO_SOCKET_ERROR ((size_t) -1) + +static my_bool net_write_buff(NET *, const uchar *, size_t); + +/** Init with packet info. */ + +my_bool my_net_init(NET *net, Vio* vio) +{ + DBUG_ENTER("my_net_init"); + net->vio = vio; + my_net_local_init(net); /* Set some limits */ + if (!(net->buff=(uchar*) my_malloc(key_memory_NET_buff, + (size_t) net->max_packet+ + NET_HEADER_SIZE + COMP_HEADER_SIZE, + MYF(MY_WME)))) + DBUG_RETURN(1); + net->buff_end=net->buff+net->max_packet; + net->error=0; net->return_status=0; + net->pkt_nr=net->compress_pkt_nr=0; + net->write_pos=net->read_pos = net->buff; + net->last_error[0]=0; + net->compress=0; net->reading_or_writing=0; + net->where_b = net->remain_in_buf=0; + net->last_errno=0; + net->unused= 0; +#ifdef MYSQL_SERVER + net->extension= NULL; +#endif + + if (vio) + { + /* For perl DBI/DBD. */ + net->fd= vio_fd(vio); + vio_fastsend(vio); + } + DBUG_RETURN(0); +} + + +void net_end(NET *net) +{ + DBUG_ENTER("net_end"); + my_free(net->buff); + net->buff=0; + DBUG_VOID_RETURN; +} + +void net_claim_memory_ownership(NET *net) +{ + my_claim(net->buff); +} + +/** Realloc the packet buffer. */ + +my_bool net_realloc(NET *net, size_t length) +{ + uchar *buff; + size_t pkt_length; + DBUG_ENTER("net_realloc"); + DBUG_PRINT("enter",("length: %lu", (ulong) length)); + + if (length >= net->max_packet_size) + { + DBUG_PRINT("error", ("Packet too large. Max size: %lu", + net->max_packet_size)); + /* @todo: 1 and 2 codes are identical. */ + net->error= 1; + net->last_errno= ER_NET_PACKET_TOO_LARGE; +#ifdef MYSQL_SERVER + my_error(ER_NET_PACKET_TOO_LARGE, MYF(0)); +#endif + DBUG_RETURN(1); + } + pkt_length = (length+IO_SIZE-1) & ~(IO_SIZE-1); + /* + We must allocate some extra bytes for the end 0 and to be able to + read big compressed blocks in + net_read_packet() may actually read 4 bytes depending on build flags and + platform. + */ + if (!(buff= (uchar*) my_realloc(key_memory_NET_buff, + (char*) net->buff, pkt_length + + NET_HEADER_SIZE + COMP_HEADER_SIZE, + MYF(MY_WME)))) + { + /* @todo: 1 and 2 codes are identical. */ + net->error= 1; + net->last_errno= ER_OUT_OF_RESOURCES; + /* In the server the error is reported by MY_WME flag. */ + DBUG_RETURN(1); + } + net->buff=net->write_pos=buff; + net->buff_end=buff+(net->max_packet= (ulong) pkt_length); + DBUG_RETURN(0); +} + + +/** + Clear (reinitialize) the NET structure for a new command. + + @remark Performs debug checking of the socket buffer to + ensure that the protocol sequence is correct. + + @param net NET handler + @param check_buffer Whether to check the socket buffer. +*/ + +void net_clear(NET *net, + my_bool check_buffer MY_ATTRIBUTE((unused))) +{ + DBUG_ENTER("net_clear"); + +#if !defined(EMBEDDED_LIBRARY) + /* Ensure the socket buffer is empty, except for an EOF (at least 1). */ + DBUG_ASSERT(!check_buffer || (vio_pending(net->vio) <= 1)); +#endif + + /* Ready for new command */ + net->pkt_nr= net->compress_pkt_nr= 0; + net->write_pos= net->buff; + + DBUG_VOID_RETURN; +} + + +/** Flush write_buffer if not empty. */ + +my_bool net_flush(NET *net) +{ + my_bool error= 0; + DBUG_ENTER("net_flush"); + if (net->buff != net->write_pos) + { + error= net_write_packet(net, net->buff, + (size_t) (net->write_pos - net->buff)); + net->write_pos= net->buff; + } + /* Sync packet number if using compression */ + if (net->compress) + net->pkt_nr=net->compress_pkt_nr; + DBUG_RETURN(error); +} + + +/** + Whether a I/O operation should be retried later. + + @param net NET handler. + @param retry_count Maximum number of interrupted operations. + + @retval TRUE Operation should be retried. + @retval FALSE Operation should not be retried. Fatal error. +*/ + +static my_bool +net_should_retry(NET *net, uint *retry_count MY_ATTRIBUTE((unused))) +{ + my_bool retry; + +#ifndef MYSQL_SERVER + /* + In the client library, interrupted I/O operations are always retried. + Otherwise, it's either a timeout or an unrecoverable error. + */ + retry= vio_should_retry(net->vio); +#else + /* + In the server, interrupted I/O operations are retried up to a limit. + In this scenario, pthread_kill can be used to wake up + (interrupt) threads waiting for I/O. + */ + retry= vio_should_retry(net->vio) && ((*retry_count)++ < net->retry_count); +#endif + + return retry; +} + + +/***************************************************************************** +** Write something to server/client buffer +*****************************************************************************/ + +/** + Write a logical packet with packet header. + + Format: Packet length (3 bytes), packet number (1 byte) + When compression is used, a 3 byte compression length is added. + + @note If compression is used, the original packet is modified! +*/ + +my_bool my_net_write(NET *net, const uchar *packet, size_t len) +{ + uchar buff[NET_HEADER_SIZE]; + int rc; + + if (unlikely(!net->vio)) /* nowhere to write */ + return 0; + + MYSQL_NET_WRITE_START(len); + + DBUG_EXECUTE_IF("simulate_net_write_failure", { + my_error(ER_NET_ERROR_ON_WRITE, MYF(0)); + return 1; + }; + ); + + /* + Big packets are handled by splitting them in packets of MAX_PACKET_LENGTH + length. The last packet is always a packet that is < MAX_PACKET_LENGTH. + (The last packet may even have a length of 0) + */ + while (len >= MAX_PACKET_LENGTH) + { + const ulong z_size = MAX_PACKET_LENGTH; + int3store(buff, z_size); + buff[3]= (uchar) net->pkt_nr++; + if (net_write_buff(net, buff, NET_HEADER_SIZE) || + net_write_buff(net, packet, z_size)) + { + MYSQL_NET_WRITE_DONE(1); + return 1; + } + packet += z_size; + len-= z_size; + } + /* Write last packet */ + int3store(buff, static_cast(len)); + buff[3]= (uchar) net->pkt_nr++; + if (net_write_buff(net, buff, NET_HEADER_SIZE)) + { + MYSQL_NET_WRITE_DONE(1); + return 1; + } +#ifndef DEBUG_DATA_PACKETS + DBUG_DUMP("packet_header", buff, NET_HEADER_SIZE); +#endif + rc= MY_TEST(net_write_buff(net,packet,len)); + MYSQL_NET_WRITE_DONE(rc); + return rc; +} + + +/** + Send a command to the server. + + The reason for having both header and packet is so that libmysql + can easy add a header to a special command (like prepared statements) + without having to re-alloc the string. + + As the command is part of the first data packet, we have to do some data + juggling to put the command in there, without having to create a new + packet. + + This function will split big packets into sub-packets if needed. + (Each sub packet can only be 2^24 bytes) + + @param net NET handler + @param command Command in MySQL server (enum enum_server_command) + @param header Header to write after command + @param head_len Length of header + @param packet Query or parameter to query + @param len Length of packet + + @retval + 0 ok + @retval + 1 error +*/ + +my_bool +net_write_command(NET *net,uchar command, + const uchar *header, size_t head_len, + const uchar *packet, size_t len) +{ + size_t length=len+1+head_len; /* 1 extra byte for command */ + uchar buff[NET_HEADER_SIZE+1]; + uint header_size=NET_HEADER_SIZE+1; + int rc; + DBUG_ENTER("net_write_command"); + DBUG_PRINT("enter",("length: %lu", (ulong) len)); + + MYSQL_NET_WRITE_START(length); + + buff[4]=command; /* For first packet */ + + if (length >= MAX_PACKET_LENGTH) + { + /* Take into account that we have the command in the first header */ + len= MAX_PACKET_LENGTH - 1 - head_len; + do + { + int3store(buff, MAX_PACKET_LENGTH); + buff[3]= (uchar) net->pkt_nr++; + if (net_write_buff(net, buff, header_size) || + net_write_buff(net, header, head_len) || + net_write_buff(net, packet, len)) + { + MYSQL_NET_WRITE_DONE(1); + DBUG_RETURN(1); + } + packet+= len; + length-= MAX_PACKET_LENGTH; + len= MAX_PACKET_LENGTH; + head_len= 0; + header_size= NET_HEADER_SIZE; + } while (length >= MAX_PACKET_LENGTH); + len=length; /* Data left to be written */ + } + int3store(buff, static_cast(length)); + buff[3]= (uchar) net->pkt_nr++; + rc= MY_TEST(net_write_buff(net, buff, header_size) || + (head_len && net_write_buff(net, header, head_len)) || + net_write_buff(net, packet, len) || net_flush(net)); + MYSQL_NET_WRITE_DONE(rc); + DBUG_RETURN(rc); +} + + +/** + Caching the data in a local buffer before sending it. + + Fill up net->buffer and send it to the client when full. + + If the rest of the to-be-sent-packet is bigger than buffer, + send it in one big block (to avoid copying to internal buffer). + If not, copy the rest of the data to the buffer and return without + sending data. + + @param net Network handler + @param packet Packet to send + @param len Length of packet + + @note + The cached buffer can be sent as it is with 'net_flush()'. + In this code we have to be careful to not send a packet longer than + MAX_PACKET_LENGTH to net_write_packet() if we are using the compressed + protocol as we store the length of the compressed packet in 3 bytes. + + @retval + 0 ok + @retval + 1 +*/ + +static my_bool +net_write_buff(NET *net, const uchar *packet, size_t len) +{ + ulong left_length; + if (net->compress && net->max_packet > MAX_PACKET_LENGTH) + left_length= (ulong) (MAX_PACKET_LENGTH - (net->write_pos - net->buff)); + else + left_length= (ulong) (net->buff_end - net->write_pos); + +#ifdef DEBUG_DATA_PACKETS + DBUG_DUMP("data", packet, len); +#endif + if (len > left_length) + { + if (net->write_pos != net->buff) + { + /* Fill up already used packet and write it */ + memcpy(net->write_pos, packet, left_length); + if (net_write_packet(net, net->buff, + (size_t) (net->write_pos - net->buff) + left_length)) + return 1; + net->write_pos= net->buff; + packet+= left_length; + len-= left_length; + } + if (net->compress) + { + /* + We can't have bigger packets than 16M with compression + Because the uncompressed length is stored in 3 bytes + */ + left_length= MAX_PACKET_LENGTH; + while (len > left_length) + { + if (net_write_packet(net, packet, left_length)) + return 1; + packet+= left_length; + len-= left_length; + } + } + if (len > net->max_packet) + return net_write_packet(net, packet, len); + /* Send out rest of the blocks as full sized blocks */ + } + memcpy(net->write_pos, packet, len); + net->write_pos+= len; + return 0; +} + + +/** + Write a determined number of bytes to a network handler. + + @param net NET handler. + @param buf Buffer containing the data to be written. + @param count The length, in bytes, of the buffer. + + @return TRUE on error, FALSE on success. +*/ + +static my_bool +net_write_raw_loop(NET *net, const uchar *buf, size_t count) +{ + unsigned int retry_count= 0; + + while (count) + { + size_t sentcnt= vio_write(net->vio, buf, count); + + /* VIO_SOCKET_ERROR (-1) indicates an error. */ + if (sentcnt == VIO_SOCKET_ERROR) + { + /* A recoverable I/O error occurred? */ + if (net_should_retry(net, &retry_count)) + continue; + else + break; + } + + count-= sentcnt; + buf+= sentcnt; +#ifdef MYSQL_SERVER + thd_increment_bytes_sent(sentcnt); +#endif + } + + /* On failure, propagate the error code. */ + if (count) + { + /* Socket should be closed. */ + net->error= 2; + + /* Interrupted by a timeout? */ + if (vio_was_timeout(net->vio)) + net->last_errno= ER_NET_WRITE_INTERRUPTED; + else + net->last_errno= ER_NET_ERROR_ON_WRITE; + +#ifdef MYSQL_SERVER + my_error(net->last_errno, MYF(0)); +#endif + } + + return MY_TEST(count); +} + + +/** + Compress and encapsulate a packet into a compressed packet. + + @param net NET handler. + @param packet The packet to compress. + @param[in,out] length Length of the packet. + + A compressed packet header is compromised of the packet + length (3 bytes), packet number (1 byte) and the length + of the original (uncompressed) packet. + + @return Pointer to the (new) compressed packet. +*/ + +static uchar * +compress_packet(NET *net, const uchar *packet, size_t *length) +{ + uchar *compr_packet; + size_t compr_length; + const uint header_length= NET_HEADER_SIZE + COMP_HEADER_SIZE; + + compr_packet= (uchar *) my_malloc(key_memory_NET_compress_packet, + *length + header_length, MYF(MY_WME)); + + if (compr_packet == NULL) + return NULL; + + memcpy(compr_packet + header_length, packet, *length); + + /* Compress the encapsulated packet. */ + if (my_compress(compr_packet + header_length, length, &compr_length)) + { + /* + If the length of the compressed packet is larger than the + original packet, the original packet is sent uncompressed. + */ + compr_length= 0; + } + + /* Length of the compressed (original) packet. */ + int3store(&compr_packet[NET_HEADER_SIZE], static_cast(compr_length)); + /* Length of this packet. */ + int3store(compr_packet, static_cast(*length)); + /* Packet number. */ + compr_packet[3]= (uchar) (net->compress_pkt_nr++); + + *length+= header_length; + + return compr_packet; +} + + +/** + Write a MySQL protocol packet to the network handler. + + @param net NET handler. + @param packet The packet to write. + @param length Length of the packet. + + @remark The packet might be encapsulated into a compressed packet. + + @return TRUE on error, FALSE on success. +*/ + +my_bool +net_write_packet(NET *net, const uchar *packet, size_t length) +{ + my_bool res; + DBUG_ENTER("net_write_packet"); + +#if defined(MYSQL_SERVER) + query_cache_insert((char*) packet, length, net->pkt_nr); +#endif + + /* Socket can't be used */ + if (net->error == 2) + DBUG_RETURN(TRUE); + + net->reading_or_writing= 2; + +#ifdef HAVE_COMPRESS + const bool do_compress= net->compress; + if (do_compress) + { + if ((packet= compress_packet(net, packet, &length)) == NULL) + { + net->error= 2; + net->last_errno= ER_OUT_OF_RESOURCES; + /* In the server, allocation failure raises a error. */ + net->reading_or_writing= 0; + DBUG_RETURN(TRUE); + } + } +#endif /* HAVE_COMPRESS */ + +#ifdef DEBUG_DATA_PACKETS + DBUG_DUMP("data", packet, length); +#endif + + res= net_write_raw_loop(net, packet, length); + +#ifdef HAVE_COMPRESS + if (do_compress) + my_free((void *) packet); +#endif + + net->reading_or_writing= 0; + + DBUG_RETURN(res); +} + +/***************************************************************************** +** Read something from server/clinet +*****************************************************************************/ + +/** + Read a determined number of bytes from a network handler. + + @param net NET handler. + @param count The number of bytes to read. + + @return TRUE on error, FALSE on success. +*/ + +static my_bool net_read_raw_loop(NET *net, size_t count) +{ + bool eof= false; + unsigned int retry_count= 0; + uchar *buf= net->buff + net->where_b; + + while (count) + { + size_t recvcnt= vio_read(net->vio, buf, count); + + /* VIO_SOCKET_ERROR (-1) indicates an error. */ + if (recvcnt == VIO_SOCKET_ERROR) + { + /* A recoverable I/O error occurred? */ + if (net_should_retry(net, &retry_count)) + continue; + else + break; + } + /* Zero indicates end of file. */ + else if (!recvcnt) + { + eof= true; + break; + } + + count-= recvcnt; + buf+= recvcnt; +#ifdef MYSQL_SERVER + thd_increment_bytes_received(recvcnt); +#endif + } + + /* On failure, propagate the error code. */ + if (count) + { + /* Socket should be closed. */ + net->error= 2; + + /* Interrupted by a timeout? */ + if (!eof && vio_was_timeout(net->vio)) + net->last_errno= ER_NET_READ_INTERRUPTED; + else + net->last_errno= ER_NET_READ_ERROR; + +#ifdef MYSQL_SERVER + my_error(net->last_errno, MYF(0)); +#endif + } + + return MY_TEST(count); +} + + +/** + Read the header of a packet. The MySQL protocol packet header + consists of the length, in bytes, of the payload (packet data) + and a serial number. + + @remark The encoded length is the length of the packet payload, + which does not include the packet header. + + @remark The serial number is used to ensure that the packets are + received in order. If the packet serial number does not + match the expected value, a error is returned. + + @param net NET handler. + + @return TRUE on error, FALSE on success. +*/ + +static my_bool net_read_packet_header(NET *net) +{ + uchar pkt_nr; + size_t count= NET_HEADER_SIZE; + my_bool rc; + + if (net->compress) + count+= COMP_HEADER_SIZE; + +#ifdef MYSQL_SERVER + struct st_net_server *server_extension; + + server_extension= static_cast (net->extension); + + if (server_extension != NULL) + { + void *user_data= server_extension->m_user_data; + DBUG_ASSERT(server_extension->m_before_header != NULL); + DBUG_ASSERT(server_extension->m_after_header != NULL); + + server_extension->m_before_header(net, user_data, count); + rc= net_read_raw_loop(net, count); + server_extension->m_after_header(net, user_data, count, rc); + } + else +#endif + { + rc= net_read_raw_loop(net, count); + } + + if (rc) + return TRUE; + + DBUG_DUMP("packet_header", net->buff + net->where_b, NET_HEADER_SIZE); + + pkt_nr= net->buff[net->where_b + 3]; + + /* + Verify packet serial number against the truncated packet counter. + The local packet counter must be truncated since its not reset. + */ + if (pkt_nr != (uchar) net->pkt_nr) + { + /* Not a NET error on the client. XXX: why? */ +#if defined(MYSQL_SERVER) + my_error(ER_NET_PACKETS_OUT_OF_ORDER, MYF(0)); +#elif defined(EXTRA_DEBUG) + /* + We don't make noise server side, since the client is expected + to break the protocol for e.g. --send LOAD DATA .. LOCAL where + the server expects the client to send a file, but the client + may reply with a new command instead. + */ + my_message_local(ERROR_LEVEL, + "packets out of order (found %u, expected %u)", + (uint) pkt_nr, net->pkt_nr); + DBUG_ASSERT(pkt_nr == net->pkt_nr); +#endif + return TRUE; + } + + net->pkt_nr++; + + return FALSE; +} + + +/** + Read one (variable-length) MySQL protocol packet. + A MySQL packet consists of a header and a payload. + + @remark Reads one packet to net->buff + net->where_b. + @remark Long packets are handled by my_net_read(). + @remark The network buffer is expanded if necessary. + + @return The length of the packet, or @packet_error on error. +*/ + +static size_t net_read_packet(NET *net, size_t *complen) +{ + size_t pkt_len, pkt_data_len; + + *complen= 0; + + net->reading_or_writing= 1; + + /* Retrieve packet length and number. */ + if (net_read_packet_header(net)) + goto error; + + net->compress_pkt_nr= net->pkt_nr; + +#ifdef HAVE_COMPRESS + if (net->compress) + { + /* + The right-hand expression + must match the size of the buffer allocated in net_realloc(). + */ + DBUG_ASSERT(net->where_b + NET_HEADER_SIZE + sizeof(uint32) <= + net->max_packet + NET_HEADER_SIZE + COMP_HEADER_SIZE); + + /* + If the packet is compressed then complen > 0 and contains the + number of bytes in the uncompressed packet. + */ + *complen= uint3korr(&(net->buff[net->where_b + NET_HEADER_SIZE])); + } +#endif + + /* The length of the packet that follows. */ + pkt_len= uint3korr(net->buff+net->where_b); + + /* End of big multi-packet. */ + if (!pkt_len) + goto end; + + pkt_data_len = max(pkt_len, *complen) + net->where_b; + + /* Expand packet buffer if necessary. */ + if ((pkt_data_len >= net->max_packet) && net_realloc(net, pkt_data_len)) + goto error; + + /* Read the packet data (payload). */ + if (net_read_raw_loop(net, pkt_len)) + goto error; + +end: + net->reading_or_writing= 0; + return pkt_len; + +error: + net->reading_or_writing= 0; + return packet_error; +} + + +/** + Read a packet from the client/server and return it without the internal + package header. + + If the packet is the first packet of a multi-packet packet + (which is indicated by the length of the packet = 0xffffff) then + all sub packets are read and concatenated. + + If the packet was compressed, its uncompressed and the length of the + uncompressed packet is returned. + + @return + The function returns the length of the found packet or packet_error. + net->read_pos points to the read data. +*/ + +ulong +my_net_read(NET *net) +{ + size_t len, complen; + + MYSQL_NET_READ_START(); + +#ifdef HAVE_COMPRESS + if (!net->compress) + { +#endif + len= net_read_packet(net, &complen); + if (len == MAX_PACKET_LENGTH) + { + /* First packet of a multi-packet. Concatenate the packets */ + ulong save_pos = net->where_b; + size_t total_length= 0; + do + { + net->where_b += len; + total_length += len; + len= net_read_packet(net, &complen); + } while (len == MAX_PACKET_LENGTH); + if (len != packet_error) + len+= total_length; + net->where_b = save_pos; + } + net->read_pos = net->buff + net->where_b; + if (len != packet_error) + net->read_pos[len]=0; /* Safeguard for mysql_use_result */ + MYSQL_NET_READ_DONE(0, len); + return static_cast(len); +#ifdef HAVE_COMPRESS + } + else + { + /* We are using the compressed protocol */ + + size_t buf_length; + ulong start_of_packet; + ulong first_packet_offset; + uint read_length, multi_byte_packet=0; + + if (net->remain_in_buf) + { + buf_length= net->buf_length; /* Data left in old packet */ + first_packet_offset= start_of_packet= (net->buf_length - + net->remain_in_buf); + /* Restore the character that was overwritten by the end 0 */ + net->buff[start_of_packet]= net->save_char; + } + else + { + /* reuse buffer, as there is nothing in it that we need */ + buf_length= start_of_packet= first_packet_offset= 0; + } + for (;;) + { + size_t packet_len; + + if (buf_length - start_of_packet >= NET_HEADER_SIZE) + { + read_length = uint3korr(net->buff+start_of_packet); + if (!read_length) + { + /* End of multi-byte packet */ + start_of_packet += NET_HEADER_SIZE; + break; + } + if (read_length + NET_HEADER_SIZE <= buf_length - start_of_packet) + { + if (multi_byte_packet) + { + /* + It's never the buffer on the first loop iteration that will have + multi_byte_packet on. + Thus there shall never be a non-zero first_packet_offset here. + */ + DBUG_ASSERT(first_packet_offset == 0); + /* Remove packet header for second packet */ + memmove(net->buff + start_of_packet, + net->buff + start_of_packet + NET_HEADER_SIZE, + buf_length - start_of_packet - NET_HEADER_SIZE); + start_of_packet += read_length; + buf_length -= NET_HEADER_SIZE; + } + else + start_of_packet+= read_length + NET_HEADER_SIZE; + + if (read_length != MAX_PACKET_LENGTH) /* last package */ + { + multi_byte_packet= 0; /* No last zero len packet */ + break; + } + multi_byte_packet= NET_HEADER_SIZE; + /* Move data down to read next data packet after current one */ + if (first_packet_offset) + { + memmove(net->buff,net->buff+first_packet_offset, + buf_length-first_packet_offset); + buf_length-=first_packet_offset; + start_of_packet -= first_packet_offset; + first_packet_offset=0; + } + continue; + } + } + /* Move data down to read next data packet after current one */ + if (first_packet_offset) + { + memmove(net->buff,net->buff+first_packet_offset, + buf_length-first_packet_offset); + buf_length-=first_packet_offset; + start_of_packet -= first_packet_offset; + first_packet_offset=0; + } + + net->where_b=buf_length; + if ((packet_len= net_read_packet(net, &complen)) == packet_error) + { + MYSQL_NET_READ_DONE(1, 0); + return packet_error; + } + if (my_uncompress(net->buff + net->where_b, packet_len, + &complen)) + { + net->error= 2; /* caller will close socket */ + net->last_errno= ER_NET_UNCOMPRESS_ERROR; +#ifdef MYSQL_SERVER + my_error(ER_NET_UNCOMPRESS_ERROR, MYF(0)); +#endif + MYSQL_NET_READ_DONE(1, 0); + return packet_error; + } + buf_length+= complen; + } + + net->read_pos= net->buff+ first_packet_offset + NET_HEADER_SIZE; + net->buf_length= buf_length; + net->remain_in_buf= (ulong) (buf_length - start_of_packet); + len = ((ulong) (start_of_packet - first_packet_offset) - NET_HEADER_SIZE - + multi_byte_packet); + net->save_char= net->read_pos[len]; /* Must be saved */ + net->read_pos[len]=0; /* Safeguard for mysql_use_result */ + } +#endif /* HAVE_COMPRESS */ + MYSQL_NET_READ_DONE(0, len); + return static_cast(len); +} + + +void my_net_set_read_timeout(NET *net, uint timeout) +{ + DBUG_ENTER("my_net_set_read_timeout"); + DBUG_PRINT("enter", ("timeout: %d", timeout)); + net->read_timeout= timeout; + if (net->vio) + vio_timeout(net->vio, 0, timeout); + DBUG_VOID_RETURN; +} + + +void my_net_set_write_timeout(NET *net, uint timeout) +{ + DBUG_ENTER("my_net_set_write_timeout"); + DBUG_PRINT("enter", ("timeout: %d", timeout)); + net->write_timeout= timeout; + if (net->vio) + vio_timeout(net->vio, 1, timeout); + DBUG_VOID_RETURN; +} + diff --git a/mysql/sql/sql_alloc.h b/mysql/sql/sql_alloc.h new file mode 100644 index 0000000..629dfe1 --- /dev/null +++ b/mysql/sql/sql_alloc.h @@ -0,0 +1,51 @@ +#ifndef SQL_ALLOC_INCLUDED +#define SQL_ALLOC_INCLUDED +/* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +#include "my_sys.h" // TRASH +#include "thr_malloc.h" // alloc_root + +/** + MySQL standard memory allocator class. You have to inherit the class + in order to use it. +*/ +class Sql_alloc +{ +public: + static void *operator new(size_t size) throw () + { + return sql_alloc(size); + } + static void *operator new[](size_t size) throw () + { + return sql_alloc(size); + } + static void *operator new[](size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void operator delete(void *ptr, size_t size) { TRASH(ptr, size); } + static void operator delete(void *ptr, MEM_ROOT *mem_root) + { /* never called */ } + static void operator delete[](void *ptr, MEM_ROOT *mem_root) + { /* never called */ } + static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); } + + inline Sql_alloc() {} + inline ~Sql_alloc() {} +}; + +#endif // SQL_ALLOC_INCLUDED diff --git a/mysql/sql/sql_cmd.h b/mysql/sql/sql_cmd.h new file mode 100644 index 0000000..8656f83 --- /dev/null +++ b/mysql/sql/sql_cmd.h @@ -0,0 +1,96 @@ +/* Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + @file Representation of an SQL command. +*/ + +#ifndef SQL_CMD_INCLUDED +#define SQL_CMD_INCLUDED + +#include "my_sqlcommand.h" +#include "sql_alloc.h" +class THD; + +/** + @class Sql_cmd - Representation of an SQL command. + + This class is an interface between the parser and the runtime. + The parser builds the appropriate derived classes of Sql_cmd + to represent a SQL statement in the parsed tree. + The execute() method in the derived classes of Sql_cmd contain the runtime + implementation. + Note that this interface is used for SQL statements recently implemented, + the code for older statements tend to load the LEX structure with more + attributes instead. + Implement new statements by sub-classing Sql_cmd, as this improves + code modularity (see the 'big switch' in dispatch_command()), and decreases + the total size of the LEX structure (therefore saving memory in stored + programs). + The recommended name of a derived class of Sql_cmd is Sql_cmd_. + + Notice that the Sql_cmd class should not be confused with the Statement class. + Statement is a class that is used to manage an SQL command or a set + of SQL commands. When the SQL statement text is analyzed, the parser will + create one or more Sql_cmd objects to represent the actual SQL commands. +*/ +class Sql_cmd : public Sql_alloc +{ +private: + Sql_cmd(const Sql_cmd &); // No copy constructor wanted + void operator=(Sql_cmd &); // No assignment operator wanted + +public: + /** + @brief Return the command code for this statement + */ + virtual enum_sql_command sql_command_code() const = 0; + + /** + Execute this SQL statement. + @param thd the current thread. + @retval false on success. + @retval true on error + */ + virtual bool execute(THD *thd) = 0; + + /** + Command-specific reinitialization before execution of prepared statement + + @see reinit_stmt_before_use() + + @note Currently this function is overloaded for INSERT/REPLACE stmts only. + + @param thd Current THD. + */ + virtual void cleanup(THD *thd) {} + +protected: + Sql_cmd() + {} + + virtual ~Sql_cmd() + { + /* + Sql_cmd objects are allocated in thd->mem_root. + In MySQL, the C++ destructor is never called, the underlying MEM_ROOT is + simply destroyed instead. + Do not rely on the destructor for any cleanup. + */ + DBUG_ASSERT(FALSE); + } +}; + +#endif // SQL_CMD_INCLUDED diff --git a/mysql/sql/thr_malloc.h b/mysql/sql/thr_malloc.h new file mode 100644 index 0000000..6af9488 --- /dev/null +++ b/mysql/sql/thr_malloc.h @@ -0,0 +1,38 @@ +/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef THR_MALLOC_INCLUDED +#define THR_MALLOC_INCLUDED + +#include "my_global.h" + +typedef struct charset_info_st CHARSET_INFO; +typedef struct st_mem_root MEM_ROOT; +typedef unsigned int PSI_memory_key; + +void init_sql_alloc(PSI_memory_key key, + MEM_ROOT *root, size_t block_size, size_t pre_alloc_size); + +void *sql_alloc(size_t); +void *sql_calloc(size_t); +char *sql_strdup(const char *str); +char *sql_strmake(const char *str, size_t len); +void *sql_memdup(const void * ptr, size_t size); +char *sql_strmake_with_convert(const char *str, size_t arg_length, + const CHARSET_INFO *from_cs, + size_t max_res_length, + const CHARSET_INFO *to_cs, size_t *result_length); + +#endif /* THR_MALLOC_INCLUDED */ diff --git a/mysql/sql_chars.h b/mysql/sql_chars.h new file mode 100644 index 0000000..584451a --- /dev/null +++ b/mysql/sql_chars.h @@ -0,0 +1,75 @@ +/* + Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Char classes for lexical scanners +*/ + + +#ifndef SQL_LEX_CHARS_INCLUDED +#define SQL_LEX_CHARS_INCLUDED + +#include "my_global.h" + +enum MY_ATTRIBUTE((__packed__)) my_lex_states +{ + MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT, + MY_LEX_IDENT_SEP, MY_LEX_IDENT_START, + MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER, + MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END, + MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL, + MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE, + MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON, + MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP, + MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR, + MY_LEX_IDENT_OR_KEYWORD, + MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR, + MY_LEX_STRING_OR_DELIMITER +}; + + +enum MY_ATTRIBUTE((__packed__)) hint_lex_char_classes +{ + HINT_CHR_ASTERISK, // [*] + HINT_CHR_AT, // [@] + HINT_CHR_BACKQUOTE, // [`] + HINT_CHR_CHAR, // default state + HINT_CHR_DIGIT, // [[:digit:]] + HINT_CHR_DOUBLEQUOTE, // ["] + HINT_CHR_EOF, // pseudo-class + HINT_CHR_IDENT, // [_$[:alpha:]] + HINT_CHR_MB, // multibyte character + HINT_CHR_NL, // \n + HINT_CHR_SLASH, // [/] + HINT_CHR_SPACE // [[:space:]] excluding \n +}; + + +struct lex_state_maps_st +{ + enum my_lex_states main_map[256]; + enum hint_lex_char_classes hint_map[256]; +}; + +C_MODE_START +typedef struct lex_state_maps_st lex_state_maps_st; +typedef struct charset_info_st charset_info_st; + +my_bool init_state_maps(struct charset_info_st *cs); +C_MODE_END + +#endif /* SQL_LEX_CHARS_INCLUDED */ + diff --git a/mysql/sql_common.h b/mysql/sql_common.h new file mode 100644 index 0000000..8d5768c --- /dev/null +++ b/mysql/sql_common.h @@ -0,0 +1,206 @@ +#ifndef SQL_COMMON_INCLUDED +#define SQL_COMMON_INCLUDED + +/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#define SQL_COMMON_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +extern const char *unknown_sqlstate; +extern const char *cant_connect_sqlstate; +extern const char *not_error_sqlstate; + + +/* + Free all memory allocated in MYSQL handle except the + current options. +*/ +void mysql_close_free(MYSQL *mysql); + +/* + Clear connection options stored in MYSQL handle and + free memory used by them. +*/ +void mysql_close_free_options(MYSQL *mysql); + + +/** + The structure is used to hold the state change information + received from the server. LIST functions are used for manipulation + of the members of the structure. +*/ +typedef struct st_session_track_info_node { + /** head_node->data is a LEX_STRING which contains the variable name. */ + LIST *head_node; + LIST *current_node; +} STATE_INFO_NODE; + +/** + Store the change info received from the server in an array of linked lists + with STATE_INFO_NODE elements (one per state type). +*/ +typedef struct st_session_track_info { + /** Array of STATE_NODE_INFO elements (one per state type). */ + struct st_session_track_info_node info_list[SESSION_TRACK_END + 1]; +} STATE_INFO; + +/* + Access to MYSQL::extension member. + + Note: functions mysql_extension_{init,free}() are defined + in client.c. +*/ + +struct st_mysql_trace_info; + +typedef struct st_mysql_extension { + struct st_mysql_trace_info *trace_data; + struct st_session_track_info state_change; +} MYSQL_EXTENSION; + +/* "Constructor/destructor" for MYSQL extension structure. */ +struct st_mysql_extension* mysql_extension_init(struct st_mysql*); +void mysql_extension_free(struct st_mysql_extension*); + +/* + Note: Allocated extension structure is freed in mysql_close_free() + called by mysql_close(). +*/ +#define MYSQL_EXTENSION_PTR(H) \ +( \ + (struct st_mysql_extension*) \ + ( (H)->extension ? \ + (H)->extension : ((H)->extension= mysql_extension_init(H)) \ + ) \ +) + + +struct st_mysql_options_extention { + char *plugin_dir; + char *default_auth; + char *ssl_crl; /* PEM CRL file */ + char *ssl_crlpath; /* PEM directory of CRL-s? */ + HASH connection_attributes; + char *server_public_key_path; + size_t connection_attributes_length; + my_bool enable_cleartext_plugin; + my_bool unused0; /* Former ssl_enforce */ + char *tls_version; /* TLS version option */ + long ssl_ctx_flags; /* SSL ctx options flag */ + unsigned int ssl_mode; +}; + +typedef struct st_mysql_methods +{ + my_bool (*read_query_result)(MYSQL *mysql); + my_bool (*advanced_command)(MYSQL *mysql, + enum enum_server_command command, + const unsigned char *header, + size_t header_length, + const unsigned char *arg, + size_t arg_length, + my_bool skip_check, + MYSQL_STMT *stmt); + MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields, + unsigned int fields); + MYSQL_RES * (*use_result)(MYSQL *mysql); + void (*fetch_lengths)(unsigned long *to, + MYSQL_ROW column, unsigned int field_count); + void (*flush_use_result)(MYSQL *mysql, my_bool flush_all_results); + int (*read_change_user_result)(MYSQL *mysql); +#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) + MYSQL_FIELD * (*list_fields)(MYSQL *mysql); + my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); + int (*stmt_execute)(MYSQL_STMT *stmt); + int (*read_binary_rows)(MYSQL_STMT *stmt); + int (*unbuffered_fetch)(MYSQL *mysql, char **row); + void (*free_embedded_thd)(MYSQL *mysql); + const char *(*read_statistics)(MYSQL *mysql); + my_bool (*next_result)(MYSQL *mysql); + int (*read_rows_from_cursor)(MYSQL_STMT *stmt); + void (*free_rows)(MYSQL_DATA *cur); +#endif +} MYSQL_METHODS; + +#define simple_command(mysql, command, arg, length, skip_check) \ + ((mysql)->methods \ + ? (*(mysql)->methods->advanced_command)(mysql, command, 0, \ + 0, arg, length, skip_check, NULL) \ + : (set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate), 1)) +#define stmt_command(mysql, command, arg, length, stmt) \ + ((mysql)->methods \ + ? (*(mysql)->methods->advanced_command)(mysql, command, 0, \ + 0, arg, length, 1, stmt) \ + : (set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate), 1)) + +extern CHARSET_INFO *default_client_charset_info; +MYSQL_FIELD *unpack_fields(MYSQL *mysql, MYSQL_ROWS *data,MEM_ROOT *alloc, + uint fields, my_bool default_value, + uint server_capabilities); +MYSQL_FIELD * cli_read_metadata_ex(MYSQL *mysql, MEM_ROOT *alloc, + unsigned long field_count, + unsigned int fields); +MYSQL_FIELD * cli_read_metadata(MYSQL *mysql, unsigned long field_count, + unsigned int fields); +void free_rows(MYSQL_DATA *cur); +void free_old_query(MYSQL *mysql); +void end_server(MYSQL *mysql); +my_bool mysql_reconnect(MYSQL *mysql); +void mysql_read_default_options(struct st_mysql_options *options, + const char *filename,const char *group); +my_bool +cli_advanced_command(MYSQL *mysql, enum enum_server_command command, + const unsigned char *header, size_t header_length, + const unsigned char *arg, size_t arg_length, + my_bool skip_check, MYSQL_STMT *stmt); +unsigned long cli_safe_read(MYSQL *mysql, my_bool *is_data_packet); +unsigned long cli_safe_read_with_ok(MYSQL *mysql, my_bool parse_ok, + my_bool *is_data_packet); +void net_clear_error(NET *net); +void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net); +void set_stmt_error(MYSQL_STMT *stmt, int errcode, const char *sqlstate, + const char *err); +void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate); +void set_mysql_extended_error(MYSQL *mysql, int errcode, const char *sqlstate, + const char *format, ...); + +/* client side of the pluggable authentication */ +struct st_plugin_vio_info; +void mpvio_info(Vio *vio, struct st_plugin_vio_info *info); +int run_plugin_auth(MYSQL *mysql, char *data, uint data_len, + const char *data_plugin, const char *db); +int mysql_client_plugin_init(); +void mysql_client_plugin_deinit(); + +struct st_mysql_client_plugin; +extern struct st_mysql_client_plugin *mysql_client_builtins[]; +uchar * send_client_connect_attrs(MYSQL *mysql, uchar *buf); +extern my_bool libmysql_cleartext_plugin_enabled; +void read_ok_ex(MYSQL *mysql, unsigned long len); + +#ifdef __cplusplus +} +#endif + +#define protocol_41(A) ((A)->server_capabilities & CLIENT_PROTOCOL_41) + +#endif /* SQL_COMMON_INCLUDED */ diff --git a/mysql/sql_string.h b/mysql/sql_string.h new file mode 100644 index 0000000..7678240 --- /dev/null +++ b/mysql/sql_string.h @@ -0,0 +1,666 @@ +#ifndef SQL_STRING_INCLUDED +#define SQL_STRING_INCLUDED + +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is originally from the mysql distribution. Coded by monty */ + +#include "m_ctype.h" /* my_charset_bin */ +#include "my_sys.h" /* alloc_root, my_free, my_realloc */ +#include "m_string.h" /* TRASH */ + +#ifdef MYSQL_SERVER +extern PSI_memory_key key_memory_String_value; +#define STRING_PSI_MEMORY_KEY key_memory_String_value +#else +#define STRING_PSI_MEMORY_KEY PSI_NOT_INSTRUMENTED +#endif + +/** + A wrapper class for null-terminated constant strings. + Constructors make sure that the position of the '\0' terminating byte + in m_str is always in sync with m_length. + + This class must stay as small as possible as we often + pass it and its descendants (such as Name_string) into functions + using call-by-value evaluation. + + Don't add new members or virual methods into this class! +*/ +class Simple_cstring +{ +private: + const char *m_str; + size_t m_length; +protected: + /** + Initialize from a C string whose length is already known. + */ + void set(const char *str_arg, size_t length_arg) + { + // NULL is allowed only with length==0 + DBUG_ASSERT(str_arg || length_arg == 0); + // For non-NULL, make sure length_arg is in sync with '\0' terminator. + DBUG_ASSERT(!str_arg || str_arg[length_arg] == '\0'); + m_str= str_arg; + m_length= length_arg; + } +public: + Simple_cstring() + { + set(NULL, 0); + } + Simple_cstring(const char *str_arg, size_t length_arg) + { + set(str_arg, length_arg); + } + Simple_cstring(const LEX_STRING arg) + { + set(arg.str, arg.length); + } + void reset() + { + set(NULL, 0); + } + /** + Set to a null-terminated string. + */ + void set(const char *str) + { + set(str, str ? strlen(str) : 0); + } + /** + Return string buffer. + */ + const char *ptr() const { return m_str; } + /** + Check if m_ptr is set. + */ + bool is_set() const { return m_str != NULL; } + /** + Return name length. + */ + size_t length() const { return m_length; } + /** + Compare to another Simple_cstring. + */ + bool eq_bin(const Simple_cstring other) const + { + return m_length == other.m_length && + memcmp(m_str, other.m_str, m_length) == 0; + } + /** + Copy to the given buffer + */ + void strcpy(char *buff) const + { + memcpy(buff, m_str, m_length); + buff[m_length]= '\0'; + } +}; + + +class String; +typedef struct charset_info_st CHARSET_INFO; +typedef struct st_io_cache IO_CACHE; +typedef struct st_mem_root MEM_ROOT; + +int sortcmp(const String *a,const String *b, const CHARSET_INFO *cs); +String *copy_if_not_alloced(String *a, String *b, size_t arg_length); +inline size_t copy_and_convert(char *to, size_t to_length, + const CHARSET_INFO *to_cs, + const char *from, size_t from_length, + const CHARSET_INFO *from_cs, uint *errors) +{ + return my_convert(to, to_length, to_cs, from, from_length, from_cs, errors); +} +size_t well_formed_copy_nchars(const CHARSET_INFO *to_cs, + char *to, size_t to_length, + const CHARSET_INFO *from_cs, + const char *from, size_t from_length, + size_t nchars, + const char **well_formed_error_pos, + const char **cannot_convert_error_pos, + const char **from_end_pos); +size_t convert_to_printable(char *to, size_t to_len, + const char *from, size_t from_len, + const CHARSET_INFO *from_cs, size_t nbytes= 0); + +size_t bin_to_hex_str(char *to, size_t to_len, char *from, size_t from_len); + +class String +{ + char *m_ptr; + size_t m_length; + const CHARSET_INFO *m_charset; + uint32 m_alloced_length; // should be size_t, but kept uint32 for size reasons + bool m_is_alloced; +public: + String() + :m_ptr(NULL), m_length(0), m_charset(&my_charset_bin), + m_alloced_length(0), m_is_alloced(false) + { } + String(size_t length_arg) + :m_ptr(NULL), m_length(0), m_charset(&my_charset_bin), + m_alloced_length(0), m_is_alloced(false) + { + (void) real_alloc(length_arg); + } + String(const char *str, const CHARSET_INFO *cs) + :m_ptr(const_cast(str)), m_length(strlen(str)), + m_charset(cs), m_alloced_length(0), m_is_alloced(false) + { } + String(const char *str, size_t len, const CHARSET_INFO *cs) + :m_ptr(const_cast(str)), m_length(len), + m_charset(cs), m_alloced_length(0), m_is_alloced(false) + { } + String(char *str, size_t len, const CHARSET_INFO *cs) + :m_ptr(str), m_length(len), m_charset(cs), + m_alloced_length(static_cast(len)), m_is_alloced(false) + { } + String(const String &str) + :m_ptr(str.m_ptr), m_length(str.m_length), m_charset(str.m_charset), + m_alloced_length(static_cast(str.m_alloced_length)), + m_is_alloced(false) + { } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void operator delete(void *ptr_arg, size_t size) + { + (void) ptr_arg; + (void) size; + TRASH(ptr_arg, size); + } + static void operator delete(void *, MEM_ROOT *) + { /* never called */ } + ~String() { mem_free(); } + + void set_charset(const CHARSET_INFO *charset_arg) + { m_charset= charset_arg; } + const CHARSET_INFO *charset() const { return m_charset; } + size_t length() const { return m_length;} + size_t alloced_length() const { return m_alloced_length;} + char& operator [] (size_t i) const { return m_ptr[i]; } + void length(size_t len) { m_length= len; } + bool is_empty() const { return (m_length == 0); } + void mark_as_const() { m_alloced_length= 0;} + const char *ptr() const { return m_ptr; } + char *c_ptr() + { + DBUG_ASSERT(!m_is_alloced || !m_ptr || !m_alloced_length || + (m_alloced_length >= (m_length + 1))); + + if (!m_ptr || m_ptr[m_length]) /* Should be safe */ + (void) mem_realloc(m_length); + return m_ptr; + } + char *c_ptr_quick() + { + if (m_ptr && m_length < m_alloced_length) + m_ptr[m_length]= 0; + return m_ptr; + } + char *c_ptr_safe() + { + if (m_ptr && m_length < m_alloced_length) + m_ptr[m_length]= 0; + else + (void) mem_realloc(m_length); + return m_ptr; + } + LEX_STRING lex_string() const + { + LEX_STRING lex_string = { (char*) ptr(), length() }; + return lex_string; + } + + LEX_CSTRING lex_cstring() const + { + LEX_CSTRING lex_cstring = { ptr(), length() }; + return lex_cstring; + } + + void set(String &str,size_t offset, size_t arg_length) + { + DBUG_ASSERT(&str != this); + mem_free(); + m_ptr= const_cast(str.ptr()) + offset; + m_length= arg_length; + m_is_alloced= false; + if (str.m_alloced_length) + m_alloced_length= str.m_alloced_length - static_cast(offset); + else + m_alloced_length= 0; + m_charset= str.m_charset; + } + + + /** + Points the internal buffer to the supplied one. The old buffer is freed. + @param str Pointer to the new buffer. + @param arg_length Length of the new buffer in characters, excluding any + null character. + @param cs Character set to use for interpreting string data. + @note The new buffer will not be null terminated. + */ + void set(char *str, size_t arg_length, const CHARSET_INFO *cs) + { + mem_free(); + m_ptr= str; + m_length= m_alloced_length= static_cast(arg_length); + m_is_alloced= false; + m_charset= cs; + } + void set(const char *str, size_t arg_length, const CHARSET_INFO *cs) + { + mem_free(); + m_ptr= const_cast(str); + m_length= arg_length; + m_alloced_length= 0; + m_is_alloced= false; + m_charset= cs; + } + bool set_ascii(const char *str, size_t arg_length); + void set_quick(char *str, size_t arg_length, const CHARSET_INFO *cs) + { + if (!m_is_alloced) + { + m_ptr= str; + m_length= arg_length; + m_alloced_length= static_cast(arg_length); + } + m_charset= cs; + } + bool set_int(longlong num, bool unsigned_flag, const CHARSET_INFO *cs); + bool set(longlong num, const CHARSET_INFO *cs) + { return set_int(num, false, cs); } + bool set(ulonglong num, const CHARSET_INFO *cs) + { return set_int((longlong)num, true, cs); } + bool set_real(double num,uint decimals, const CHARSET_INFO *cs); + + /* + PMG 2004.11.12 + This is a method that works the same as perl's "chop". It simply + drops the last character of a string. This is useful in the case + of the federated storage handler where I'm building a unknown + number, list of values and fields to be used in a sql insert + statement to be run on the remote server, and have a comma after each. + When the list is complete, I "chop" off the trailing comma + + ex. + String stringobj; + stringobj.append("VALUES ('foo', 'fi', 'fo',"); + stringobj.chop(); + stringobj.append(")"); + + In this case, the value of string was: + + VALUES ('foo', 'fi', 'fo', + VALUES ('foo', 'fi', 'fo' + VALUES ('foo', 'fi', 'fo') + + */ + void chop() + { + m_length--; + m_ptr[m_length]= '\0'; + DBUG_ASSERT(strlen(m_ptr) == m_length); + } + + void mem_claim() + { + if (m_is_alloced) + { + my_claim(m_ptr); + } + } + + void mem_free() + { + if (m_is_alloced) + { + m_is_alloced= false; + m_alloced_length= 0; + my_free(m_ptr); + m_ptr= NULL; + m_length= 0; /* Safety */ + } + } + + bool alloc(size_t arg_length) + { + if (arg_length < m_alloced_length) + return false; + return real_alloc(arg_length); + } + bool real_alloc(size_t arg_length); // Empties old string + bool mem_realloc(size_t arg_length, bool force_on_heap= false); + +private: + size_t next_realloc_exp_size(size_t sz); + bool mem_realloc_exp(size_t arg_length); + +public: + // Shrink the buffer, but only if it is allocated on the heap. + void shrink(size_t arg_length) + { + if (!is_alloced()) + return; + if (arg_length < m_alloced_length) + { + char *new_ptr; + if (!(new_ptr= static_cast(my_realloc(STRING_PSI_MEMORY_KEY, + m_ptr, arg_length, MYF(0))))) + { + m_alloced_length= 0; + real_alloc(arg_length); + } + else + { + m_ptr= new_ptr; + m_alloced_length= static_cast(arg_length); + } + } + } + bool is_alloced() const { return m_is_alloced; } + String& operator = (const String &s) + { + if (&s != this) + { + /* + It is forbidden to do assignments like + some_string = substring_of_that_string + */ + DBUG_ASSERT(!s.uses_buffer_owned_by(this)); + mem_free(); + m_ptr= s.m_ptr; + m_length= s.m_length; + m_alloced_length= s.m_alloced_length; + m_charset= s.m_charset; + m_is_alloced= false; + } + return *this; + } + /** + Takeover the buffer owned by another string. + "this" becames the owner of the buffer and + is further responsible to free it. + The string "s" is detouched from the buffer (cleared). + + @param s - a String object to steal buffer from. + */ + void takeover(String &s) + { + DBUG_ASSERT(this != &s); + // Make sure buffers of the two Strings do not overlap + DBUG_ASSERT(!s.uses_buffer_owned_by(this)); + mem_free(); + m_ptr= s.m_ptr; + m_length= s.m_length; + m_alloced_length= s.m_alloced_length; + m_is_alloced= s.m_is_alloced; + m_charset= s.m_charset; + s.m_ptr= NULL; + s.m_alloced_length= 0; + s.m_length= 0; + s.m_is_alloced= false; + } + + bool copy(); // Alloc string if not alloced + bool copy(const String &s); // Allocate new string + // Allocate new string + bool copy(const char *s, size_t arg_length, const CHARSET_INFO *cs); + static bool needs_conversion(size_t arg_length, + const CHARSET_INFO *cs_from, const CHARSET_INFO *cs_to, + size_t *offset); + static bool needs_conversion_on_storage(size_t arg_length, + const CHARSET_INFO *cs_from, + const CHARSET_INFO *cs_to); + bool copy_aligned(const char *s, size_t arg_length, size_t offset, + const CHARSET_INFO *cs); + bool set_or_copy_aligned(const char *s, size_t arg_length, + const CHARSET_INFO *cs); + bool copy(const char*s, size_t arg_length, const CHARSET_INFO *csfrom, + const CHARSET_INFO *csto, uint *errors); + bool append(const String &s); + bool append(const char *s); + bool append(LEX_STRING *ls) + { + return append(ls->str, ls->length); + } + bool append(Simple_cstring str) + { + return append(str.ptr(), str.length()); + } + bool append(const char *s, size_t arg_length); + bool append(const char *s, size_t arg_length, const CHARSET_INFO *cs); + bool append_ulonglong(ulonglong val); + bool append_longlong(longlong val); + bool append(IO_CACHE* file, size_t arg_length); + bool append_with_prefill(const char *s, size_t arg_length, + size_t full_length, char fill_char); + bool append_parenthesized(long nr, int radix= 10); + int strstr(const String &search,size_t offset=0); // Returns offset to substring or -1 + int strrstr(const String &search,size_t offset=0); // Returns offset to substring or -1 + /** + * Returns substring of given characters lenght, starting at given character offset. + * Note that parameter indexes are character indexes and not byte indexes. + */ + String substr(int offset, int count); + + bool replace(size_t offset, size_t arg_length,const char *to, size_t length); + bool replace(size_t offset, size_t arg_length,const String &to); + bool append(char chr) + { + if (m_length < m_alloced_length) + { + m_ptr[m_length++]= chr; + } + else + { + if (mem_realloc_exp(m_length + 1)) + return 1; + m_ptr[m_length++]= chr; + } + return 0; + } + bool fill(size_t max_length,char fill); + void strip_sp(); + friend int sortcmp(const String *a,const String *b, const CHARSET_INFO *cs); + friend int stringcmp(const String *a,const String *b); + friend String *copy_if_not_alloced(String *a,String *b, size_t arg_length); + size_t numchars() const; + size_t charpos(size_t i, size_t offset=0); + + int reserve(size_t space_needed) + { + return mem_realloc(m_length + space_needed); + } + int reserve(size_t space_needed, size_t grow_by); + /* + The following append operations do NOT check alloced memory + q_*** methods writes values of parameters itself + qs_*** methods writes string representation of value + */ + void q_append(const char c) + { + m_ptr[m_length++] = c; + } + void q_append(const uint32 n) + { + int4store(m_ptr + m_length, n); + m_length += 4; + } + void q_append(double d) + { + float8store(m_ptr + m_length, d); + m_length += 8; + } + void q_append(double *d) + { + float8store(m_ptr + m_length, *d); + m_length += 8; + } + void q_append(const char *data, size_t data_len) + { + memcpy(m_ptr + m_length, data, data_len); + m_length += data_len; + } + + void write_at_position(int position, uint32 value) + { + int4store(m_ptr + position,value); + } + + void qs_append(const char *str, size_t len); + void qs_append(double d, size_t len); + void qs_append(const char c) + { + m_ptr[m_length]= c; + m_length++; + } + void qs_append(int i); + void qs_append(uint i); + + /* Inline (general) functions used by the protocol functions */ + + char *prep_append(size_t arg_length, size_t step_alloc) + { + size_t new_length= arg_length + m_length; + if (new_length > m_alloced_length) + { + if (mem_realloc(new_length + step_alloc)) + return NULL; + } + size_t old_length= m_length; + m_length+= arg_length; + return m_ptr+ old_length; /* Area to use */ + } + + bool append(const char *s, size_t arg_length, size_t step_alloc) + { + size_t new_length= arg_length + m_length; + if (new_length > m_alloced_length && mem_realloc_exp(new_length + step_alloc)) + return true; + memcpy(m_ptr+m_length, s, arg_length); + m_length+= arg_length; + return false; + } + void print(String *print); + + /* Swap two string objects. Efficient way to exchange data without memcpy. */ + void swap(String &s); + + bool uses_buffer_owned_by(const String *s) const + { + return (s->m_is_alloced && m_ptr >= s->m_ptr && m_ptr < s->m_ptr + s->m_length); + } + bool is_ascii() const + { + if (length() == 0) + return true; + if (charset()->mbminlen > 1) + return false; + for (const char *c= ptr(), *end= c + length(); c < end; c++) + { + if (!my_isascii(*c)) + return false; + } + return true; + } + /** + Make a zero-terminated copy of our value,allocated in the specified MEM_ROOT + + @param root MEM_ROOT to allocate the result + + @return allocated string or NULL + */ + char *dup(MEM_ROOT *root) const + { + if (m_length > 0 && m_ptr[m_length - 1] == 0) + return static_cast(memdup_root(root, m_ptr, m_length)); + + char *ret= static_cast(alloc_root(root, m_length + 1)); + if (ret != NULL) + { + memcpy(ret, m_ptr, m_length); + ret[m_length]= 0; + } + return ret; + } +}; + + +/** + String class wrapper with a preallocated buffer of size buff_sz + + This class allows to replace sequences of: + char buff[12345]; + String str(buff, sizeof(buff)); + str.length(0); + with a simple equivalent declaration: + StringBuffer<12345> str; +*/ + +template +class StringBuffer : public String +{ + char buff[buff_sz]; + +public: + StringBuffer() : String(buff, buff_sz, &my_charset_bin) { length(0); } + explicit StringBuffer(const CHARSET_INFO *cs) : String(buff, buff_sz, cs) + { + length(0); + } + StringBuffer(const char *str, size_t length, const CHARSET_INFO *cs) + : String(buff, buff_sz, cs) + { + set(str, length, cs); + } +}; + + +static inline bool check_if_only_end_space(const CHARSET_INFO *cs, char *str, + char *end) +{ + return str+ cs->cset->scan(cs, str, end, MY_SEQ_SPACES) == end; +} + + +inline LEX_CSTRING to_lex_cstring(const LEX_STRING &s) +{ + LEX_CSTRING cstr= { s.str, s.length }; + return cstr; +} + + +inline LEX_STRING to_lex_string(const LEX_CSTRING &s) +{ + LEX_STRING str= { const_cast(s.str), s.length }; + return str; +} + +inline LEX_CSTRING to_lex_cstring(const char *s) +{ + LEX_CSTRING cstr= { s, s != NULL ? strlen(s) : 0 }; + return cstr; +} + +bool +validate_string(const CHARSET_INFO *cs, const char *str, uint32 length, + size_t *valid_length, bool *length_error); +#endif /* SQL_STRING_INCLUDED */ diff --git a/mysql/strings/bchange.c b/mysql/strings/bchange.c new file mode 100644 index 0000000..303344a --- /dev/null +++ b/mysql/strings/bchange.c @@ -0,0 +1,35 @@ +/* + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File : bchange.c + Author : Michael widenius + Updated: 1987-03-20 + Defines: bchange() + + bchange(dst, old_length, src, new_length, tot_length) + replaces old_length characters at dst to new_length characters from + src in a buffer with tot_length bytes. +*/ + +#include +#include "m_string.h" + +void bchange(uchar *dst, size_t old_length, const uchar *src, + size_t new_length, size_t tot_length) +{ + memmove(dst + new_length, dst + old_length, tot_length - old_length); + memcpy(dst,src,new_length); +} diff --git a/mysql/strings/ctype-big5.c b/mysql/strings/ctype-big5.c new file mode 100644 index 0000000..3581f86 --- /dev/null +++ b/mysql/strings/ctype-big5.c @@ -0,0 +1,6951 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + * This file is basicly usa7 character sets with some extra functions + * for big5 handling +*/ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_big5=1 + * .configure. mbmaxlen_big5=2 + */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_big5 + +/* + Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw + modified by Wei He (hewei@mail.ied.ac.cn) + modified by Alex Barkov +*/ + +#define isbig5head(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xf9) +#define isbig5tail(c) ((0x40<=(uchar)(c) && (uchar)(c)<=0x7e) || \ + (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe)) + +#define isbig5code(c,d) (isbig5head(c) && isbig5tail(d)) +#define big5code(c,d) (((uchar)(c) <<8) | (uchar)(d)) +#define big5head(e) ((uchar)(e>>8)) +#define big5tail(e) ((uchar)(e&0xff)) + +static const uchar ctype_big5[257] = +{ + 0, /* For standard library */ + 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16, + 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16, + 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,32, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0, +}; + +static const uchar to_lower_big5[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar to_upper_big5[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar sort_order_big5[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '\\', ']', '[', '^', '_', + 'E', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + + +static const MY_UNICASE_CHARACTER cA2[256]= +{ + /* A200-A20F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A210-A21F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A220-A22F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A230-A23F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A240-A24F */ + {0xA240,0xA240,0xFFFD}, + {0xA241,0xA241,0xFF0F}, + {0xA242,0xA242,0xFF3C}, + {0xA243,0xA243,0xFF04}, + {0xA244,0xA244,0x00A5}, + {0xA245,0xA245,0x3012}, + {0xA246,0xA246,0x00A2}, + {0xA247,0xA247,0x00A3}, + {0xA248,0xA248,0xFF05}, + {0xA249,0xA249,0xFF20}, + {0xA24A,0xA24A,0x2103}, + {0xA24B,0xA24B,0x2109}, + {0xA24C,0xA24C,0xFE69}, + {0xA24D,0xA24D,0xFE6A}, + {0xA24E,0xA24E,0xFE6B}, + {0xA24F,0xA24F,0x33D5}, + /* A250-A25F */ + {0xA250,0xA250,0x339C}, + {0xA251,0xA251,0x339D}, + {0xA252,0xA252,0x339E}, + {0xA253,0xA253,0x33CE}, + {0xA254,0xA254,0x33A1}, + {0xA255,0xA255,0x338E}, + {0xA256,0xA256,0x338F}, + {0xA257,0xA257,0x33C4}, + {0xA258,0xA258,0x00B0}, + {0xA259,0xA259,0x5159}, + {0xA25A,0xA25A,0x515B}, + {0xA25B,0xA25B,0x515E}, + {0xA25C,0xA25C,0x515D}, + {0xA25D,0xA25D,0x5161}, + {0xA25E,0xA25E,0x5163}, + {0xA25F,0xA25F,0x55E7}, + /* A260-A26F */ + {0xA260,0xA260,0x74E9}, + {0xA261,0xA261,0x7CCE}, + {0xA262,0xA262,0x2581}, + {0xA263,0xA263,0x2582}, + {0xA264,0xA264,0x2583}, + {0xA265,0xA265,0x2584}, + {0xA266,0xA266,0x2585}, + {0xA267,0xA267,0x2586}, + {0xA268,0xA268,0x2587}, + {0xA269,0xA269,0x2588}, + {0xA26A,0xA26A,0x258F}, + {0xA26B,0xA26B,0x258E}, + {0xA26C,0xA26C,0x258D}, + {0xA26D,0xA26D,0x258C}, + {0xA26E,0xA26E,0x258B}, + {0xA26F,0xA26F,0x258A}, + /* A270-A27F */ + {0xA270,0xA270,0x2589}, + {0xA271,0xA271,0x253C}, + {0xA272,0xA272,0x2534}, + {0xA273,0xA273,0x252C}, + {0xA274,0xA274,0x2524}, + {0xA275,0xA275,0x251C}, + {0xA276,0xA276,0x2594}, + {0xA277,0xA277,0x2500}, + {0xA278,0xA278,0x2502}, + {0xA279,0xA279,0x2595}, + {0xA27A,0xA27A,0x250C}, + {0xA27B,0xA27B,0x2510}, + {0xA27C,0xA27C,0x2514}, + {0xA27D,0xA27D,0x2518}, + {0xA27E,0xA27E,0x256D}, + {0x0000,0x0000,0x0000}, + /* A280-A28F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A290-A29F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A2A0-A2AF */ + {0x0000,0x0000,0x0000}, + {0xA2A1,0xA2A1,0x256E}, + {0xA2A2,0xA2A2,0x2570}, + {0xA2A3,0xA2A3,0x256F}, + {0xA2A4,0xA2A4,0x2550}, + {0xA2A5,0xA2A5,0x255E}, + {0xA2A6,0xA2A6,0x256A}, + {0xA2A7,0xA2A7,0x2561}, + {0xA2A8,0xA2A8,0x25E2}, + {0xA2A9,0xA2A9,0x25E3}, + {0xA2AA,0xA2AA,0x25E5}, + {0xA2AB,0xA2AB,0x25E4}, + {0xA2AC,0xA2AC,0x2571}, + {0xA2AD,0xA2AD,0x2572}, + {0xA2AE,0xA2AE,0x2573}, + {0xA2AF,0xA2AF,0xFF10}, + /* A2B0-A2BF */ + {0xA2B0,0xA2B0,0xFF11}, + {0xA2B1,0xA2B1,0xFF12}, + {0xA2B2,0xA2B2,0xFF13}, + {0xA2B3,0xA2B3,0xFF14}, + {0xA2B4,0xA2B4,0xFF15}, + {0xA2B5,0xA2B5,0xFF16}, + {0xA2B6,0xA2B6,0xFF17}, + {0xA2B7,0xA2B7,0xFF18}, + {0xA2B8,0xA2B8,0xFF19}, + {0xA2B9,0xA2B9,0x2160}, + {0xA2BA,0xA2BA,0x2161}, + {0xA2BB,0xA2BB,0x2162}, + {0xA2BC,0xA2BC,0x2163}, + {0xA2BD,0xA2BD,0x2164}, + {0xA2BE,0xA2BE,0x2165}, + {0xA2BF,0xA2BF,0x2166}, + /* A2C0-A2CF */ + {0xA2C0,0xA2C0,0x2167}, + {0xA2C1,0xA2C1,0x2168}, + {0xA2C2,0xA2C2,0x2169}, + {0xA2C3,0xA2C3,0x3021}, + {0xA2C4,0xA2C4,0x3022}, + {0xA2C5,0xA2C5,0x3023}, + {0xA2C6,0xA2C6,0x3024}, + {0xA2C7,0xA2C7,0x3025}, + {0xA2C8,0xA2C8,0x3026}, + {0xA2C9,0xA2C9,0x3027}, + {0xA2CA,0xA2CA,0x3028}, + {0xA2CB,0xA2CB,0x3029}, + {0xA2CC,0xA2CC,0xFFFD}, + {0xA2CD,0xA2CD,0x5344}, + {0xA2CE,0xA2CE,0xFFFD}, + {0xA2CF,0xA2E9,0xFF21}, + /* A2D0-A2DF */ + {0xA2D0,0xA2EA,0xFF22}, + {0xA2D1,0xA2EB,0xFF23}, + {0xA2D2,0xA2EC,0xFF24}, + {0xA2D3,0xA2ED,0xFF25}, + {0xA2D4,0xA2EE,0xFF26}, + {0xA2D5,0xA2EF,0xFF27}, + {0xA2D6,0xA2F0,0xFF28}, + {0xA2D7,0xA2F1,0xFF29}, + {0xA2D8,0xA2F2,0xFF2A}, + {0xA2D9,0xA2F3,0xFF2B}, + {0xA2DA,0xA2F4,0xFF2C}, + {0xA2DB,0xA2F5,0xFF2D}, + {0xA2DC,0xA2F6,0xFF2E}, + {0xA2DD,0xA2F7,0xFF2F}, + {0xA2DE,0xA2F8,0xFF30}, + {0xA2DF,0xA2F9,0xFF31}, + /* A2E0-A2EF */ + {0xA2E0,0xA2FA,0xFF32}, + {0xA2E1,0xA2FB,0xFF33}, + {0xA2E2,0xA2FC,0xFF34}, + {0xA2E3,0xA2FD,0xFF35}, + {0xA2E4,0xA2FE,0xFF36}, + {0xA2E5,0xA340,0xFF37}, + {0xA2E6,0xA341,0xFF38}, + {0xA2E7,0xA342,0xFF39}, + {0xA2E8,0xA343,0xFF3A}, + {0xA2CF,0xA2E9,0xFF41}, + {0xA2D0,0xA2EA,0xFF42}, + {0xA2D1,0xA2EB,0xFF43}, + {0xA2D2,0xA2EC,0xFF44}, + {0xA2D3,0xA2ED,0xFF45}, + {0xA2D4,0xA2EE,0xFF46}, + {0xA2D5,0xA2EF,0xFF47}, + /* A2F0-A2FF */ + {0xA2D6,0xA2F0,0xFF48}, + {0xA2D7,0xA2F1,0xFF49}, + {0xA2D8,0xA2F2,0xFF4A}, + {0xA2D9,0xA2F3,0xFF4B}, + {0xA2DA,0xA2F4,0xFF4C}, + {0xA2DB,0xA2F5,0xFF4D}, + {0xA2DC,0xA2F6,0xFF4E}, + {0xA2DD,0xA2F7,0xFF4F}, + {0xA2DE,0xA2F8,0xFF50}, + {0xA2DF,0xA2F9,0xFF51}, + {0xA2E0,0xA2FA,0xFF52}, + {0xA2E1,0xA2FB,0xFF53}, + {0xA2E2,0xA2FC,0xFF54}, + {0xA2E3,0xA2FD,0xFF55}, + {0xA2E4,0xA2FE,0xFF56}, + {0x0000,0x0000,0x0000} +}; + + +static const MY_UNICASE_CHARACTER cA3[256]= +{ + /* A300-A30F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A310-A31F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A320-A32F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A330-A33F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A340-A34F */ + {0xA2E5,0xA340,0xFF57}, + {0xA2E6,0xA341,0xFF58}, + {0xA2E7,0xA342,0xFF59}, + {0xA2E8,0xA343,0xFF5A}, + {0xA344,0xA35C,0x0391}, + {0xA345,0xA35D,0x0392}, + {0xA346,0xA35E,0x0393}, + {0xA347,0xA35F,0x0394}, + {0xA348,0xA360,0x0395}, + {0xA349,0xA361,0x0396}, + {0xA34A,0xA362,0x0397}, + {0xA34B,0xA363,0x0398}, + {0xA34C,0xA364,0x0399}, + {0xA34D,0xA365,0x039A}, + {0xA34E,0xA366,0x039B}, + {0xA34F,0xA367,0x039C}, + /* A350-A35F */ + {0xA350,0xA368,0x039D}, + {0xA351,0xA369,0x039E}, + {0xA352,0xA36A,0x039F}, + {0xA353,0xA36B,0x03A0}, + {0xA354,0xA36C,0x03A1}, + {0xA355,0xA36D,0x03A3}, + {0xA356,0xA36E,0x03A4}, + {0xA357,0xA36F,0x03A5}, + {0xA358,0xA370,0x03A6}, + {0xA359,0xA371,0x03A7}, + {0xA35A,0xA372,0x03A8}, + {0xA35B,0xA373,0x03A9}, + {0xA344,0xA35C,0x03B1}, + {0xA345,0xA35D,0x03B2}, + {0xA346,0xA35E,0x03B3}, + {0xA347,0xA35F,0x03B4}, + /* A360-A36F */ + {0xA348,0xA360,0x03B5}, + {0xA349,0xA361,0x03B6}, + {0xA34A,0xA362,0x03B7}, + {0xA34B,0xA363,0x03B8}, + {0xA34C,0xA364,0x03B9}, + {0xA34D,0xA365,0x03BA}, + {0xA34E,0xA366,0x03BB}, + {0xA34F,0xA367,0x03BC}, + {0xA350,0xA368,0x03BD}, + {0xA351,0xA369,0x03BE}, + {0xA352,0xA36A,0x03BF}, + {0xA353,0xA36B,0x03C0}, + {0xA354,0xA36C,0x03C1}, + {0xA355,0xA36D,0x03C3}, + {0xA356,0xA36E,0x03C4}, + {0xA357,0xA36F,0x03C5}, + /* A370-A37F */ + {0xA358,0xA370,0x03C6}, + {0xA359,0xA371,0x03C7}, + {0xA35A,0xA372,0x03C8}, + {0xA35B,0xA373,0x03C9}, + {0xA374,0xA374,0x3105}, + {0xA375,0xA375,0x3106}, + {0xA376,0xA376,0x3107}, + {0xA377,0xA377,0x3108}, + {0xA378,0xA378,0x3109}, + {0xA379,0xA379,0x310A}, + {0xA37A,0xA37A,0x310B}, + {0xA37B,0xA37B,0x310C}, + {0xA37C,0xA37C,0x310D}, + {0xA37D,0xA37D,0x310E}, + {0xA37E,0xA37E,0x310F}, + {0x0000,0x0000,0x0000}, + /* A380-A38F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A390-A39F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* A3A0-A3AF */ + {0x0000,0x0000,0x0000}, + {0xA3A1,0xA3A1,0x3110}, + {0xA3A2,0xA3A2,0x3111}, + {0xA3A3,0xA3A3,0x3112}, + {0xA3A4,0xA3A4,0x3113}, + {0xA3A5,0xA3A5,0x3114}, + {0xA3A6,0xA3A6,0x3115}, + {0xA3A7,0xA3A7,0x3116}, + {0xA3A8,0xA3A8,0x3117}, + {0xA3A9,0xA3A9,0x3118}, + {0xA3AA,0xA3AA,0x3119}, + {0xA3AB,0xA3AB,0x311A}, + {0xA3AC,0xA3AC,0x311B}, + {0xA3AD,0xA3AD,0x311C}, + {0xA3AE,0xA3AE,0x311D}, + {0xA3AF,0xA3AF,0x311E}, + /* A3B0-A3BF */ + {0xA3B0,0xA3B0,0x311F}, + {0xA3B1,0xA3B1,0x3120}, + {0xA3B2,0xA3B2,0x3121}, + {0xA3B3,0xA3B3,0x3122}, + {0xA3B4,0xA3B4,0x3123}, + {0xA3B5,0xA3B5,0x3124}, + {0xA3B6,0xA3B6,0x3125}, + {0xA3B7,0xA3B7,0x3126}, + {0xA3B8,0xA3B8,0x3127}, + {0xA3B9,0xA3B9,0x3128}, + {0xA3BA,0xA3BA,0x3129}, + {0xA3BB,0xA3BB,0x02D9}, + {0xA3BC,0xA3BC,0x02C9}, + {0xA3BD,0xA3BD,0x02CA}, + {0xA3BE,0xA3BE,0x02C7}, + {0xA3BF,0xA3BF,0x02CB}, + /* A3C0-A3CF */ + {0xA3C0,0xA3C0,0x003F}, + {0xA3C1,0xA3C1,0x003F}, + {0xA3C2,0xA3C2,0x003F}, + {0xA3C3,0xA3C3,0x003F}, + {0xA3C4,0xA3C4,0x003F}, + {0xA3C5,0xA3C5,0x003F}, + {0xA3C6,0xA3C6,0x003F}, + {0xA3C7,0xA3C7,0x003F}, + {0xA3C8,0xA3C8,0x003F}, + {0xA3C9,0xA3C9,0x003F}, + {0xA3CA,0xA3CA,0x003F}, + {0xA3CB,0xA3CB,0x003F}, + {0xA3CC,0xA3CC,0x003F}, + {0xA3CD,0xA3CD,0x003F}, + {0xA3CE,0xA3CE,0x003F}, + {0xA3CF,0xA3CF,0x003F}, + /* A3D0-A3DF */ + {0xA3D0,0xA3D0,0x003F}, + {0xA3D1,0xA3D1,0x003F}, + {0xA3D2,0xA3D2,0x003F}, + {0xA3D3,0xA3D3,0x003F}, + {0xA3D4,0xA3D4,0x003F}, + {0xA3D5,0xA3D5,0x003F}, + {0xA3D6,0xA3D6,0x003F}, + {0xA3D7,0xA3D7,0x003F}, + {0xA3D8,0xA3D8,0x003F}, + {0xA3D9,0xA3D9,0x003F}, + {0xA3DA,0xA3DA,0x003F}, + {0xA3DB,0xA3DB,0x003F}, + {0xA3DC,0xA3DC,0x003F}, + {0xA3DD,0xA3DD,0x003F}, + {0xA3DE,0xA3DE,0x003F}, + {0xA3DF,0xA3DF,0x003F}, + /* A3E0-A3EF */ + {0xA3E0,0xA3E0,0x003F}, + {0xA3E1,0xA3E1,0x003F}, + {0xA3E2,0xA3E2,0x003F}, + {0xA3E3,0xA3E3,0x003F}, + {0xA3E4,0xA3E4,0x003F}, + {0xA3E5,0xA3E5,0x003F}, + {0xA3E6,0xA3E6,0x003F}, + {0xA3E7,0xA3E7,0x003F}, + {0xA3E8,0xA3E8,0x003F}, + {0xA3E9,0xA3E9,0x003F}, + {0xA3EA,0xA3EA,0x003F}, + {0xA3EB,0xA3EB,0x003F}, + {0xA3EC,0xA3EC,0x003F}, + {0xA3ED,0xA3ED,0x003F}, + {0xA3EE,0xA3EE,0x003F}, + {0xA3EF,0xA3EF,0x003F}, + /* A3F0-A3FF */ + {0xA3F0,0xA3F0,0x003F}, + {0xA3F1,0xA3F1,0x003F}, + {0xA3F2,0xA3F2,0x003F}, + {0xA3F3,0xA3F3,0x003F}, + {0xA3F4,0xA3F4,0x003F}, + {0xA3F5,0xA3F5,0x003F}, + {0xA3F6,0xA3F6,0x003F}, + {0xA3F7,0xA3F7,0x003F}, + {0xA3F8,0xA3F8,0x003F}, + {0xA3F9,0xA3F9,0x003F}, + {0xA3FA,0xA3FA,0x003F}, + {0xA3FB,0xA3FB,0x003F}, + {0xA3FC,0xA3FC,0x003F}, + {0xA3FD,0xA3FD,0x003F}, + {0xA3FE,0xA3FE,0x003F}, + {0x0000,0x0000,0x0000} +}; + + +static const MY_UNICASE_CHARACTER cC7[256]= +{ + /* C700-C70F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* C710-C71F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* C720-C72F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* C730-C73F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* C740-C74F */ + {0xC740,0xC740,0x30A8}, + {0xC741,0xC741,0x30A9}, + {0xC742,0xC742,0x30AA}, + {0xC743,0xC743,0x30AB}, + {0xC744,0xC744,0x30AC}, + {0xC745,0xC745,0x30AD}, + {0xC746,0xC746,0x30AE}, + {0xC747,0xC747,0x30AF}, + {0xC748,0xC748,0x30B0}, + {0xC749,0xC749,0x30B1}, + {0xC74A,0xC74A,0x30B2}, + {0xC74B,0xC74B,0x30B3}, + {0xC74C,0xC74C,0x30B4}, + {0xC74D,0xC74D,0x30B5}, + {0xC74E,0xC74E,0x30B6}, + {0xC74F,0xC74F,0x30B7}, + /* C750-C75F */ + {0xC750,0xC750,0x30B8}, + {0xC751,0xC751,0x30B9}, + {0xC752,0xC752,0x30BA}, + {0xC753,0xC753,0x30BB}, + {0xC754,0xC754,0x30BC}, + {0xC755,0xC755,0x30BD}, + {0xC756,0xC756,0x30BE}, + {0xC757,0xC757,0x30BF}, + {0xC758,0xC758,0x30C0}, + {0xC759,0xC759,0x30C1}, + {0xC75A,0xC75A,0x30C2}, + {0xC75B,0xC75B,0x30C3}, + {0xC75C,0xC75C,0x30C4}, + {0xC75D,0xC75D,0x30C5}, + {0xC75E,0xC75E,0x30C6}, + {0xC75F,0xC75F,0x30C7}, + /* C760-C76F */ + {0xC760,0xC760,0x30C8}, + {0xC761,0xC761,0x30C9}, + {0xC762,0xC762,0x30CA}, + {0xC763,0xC763,0x30CB}, + {0xC764,0xC764,0x30CC}, + {0xC765,0xC765,0x30CD}, + {0xC766,0xC766,0x30CE}, + {0xC767,0xC767,0x30CF}, + {0xC768,0xC768,0x30D0}, + {0xC769,0xC769,0x30D1}, + {0xC76A,0xC76A,0x30D2}, + {0xC76B,0xC76B,0x30D3}, + {0xC76C,0xC76C,0x30D4}, + {0xC76D,0xC76D,0x30D5}, + {0xC76E,0xC76E,0x30D6}, + {0xC76F,0xC76F,0x30D7}, + /* C770-C77F */ + {0xC770,0xC770,0x30D8}, + {0xC771,0xC771,0x30D9}, + {0xC772,0xC772,0x30DA}, + {0xC773,0xC773,0x30DB}, + {0xC774,0xC774,0x30DC}, + {0xC775,0xC775,0x30DD}, + {0xC776,0xC776,0x30DE}, + {0xC777,0xC777,0x30DF}, + {0xC778,0xC778,0x30E0}, + {0xC779,0xC779,0x30E1}, + {0xC77A,0xC77A,0x30E2}, + {0xC77B,0xC77B,0x30E3}, + {0xC77C,0xC77C,0x30E4}, + {0xC77D,0xC77D,0x30E5}, + {0xC77E,0xC77E,0x30E6}, + {0x0000,0x0000,0x0000}, + /* C780-C78F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* C790-C79F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* C7A0-C7AF */ + {0x0000,0x0000,0x0000}, + {0xC7A1,0xC7A1,0x30E7}, + {0xC7A2,0xC7A2,0x30E8}, + {0xC7A3,0xC7A3,0x30E9}, + {0xC7A4,0xC7A4,0x30EA}, + {0xC7A5,0xC7A5,0x30EB}, + {0xC7A6,0xC7A6,0x30EC}, + {0xC7A7,0xC7A7,0x30ED}, + {0xC7A8,0xC7A8,0x30EE}, + {0xC7A9,0xC7A9,0x30EF}, + {0xC7AA,0xC7AA,0x30F0}, + {0xC7AB,0xC7AB,0x30F1}, + {0xC7AC,0xC7AC,0x30F2}, + {0xC7AD,0xC7AD,0x30F3}, + {0xC7AE,0xC7AE,0x30F4}, + {0xC7AF,0xC7AF,0x30F5}, + /* C7B0-C7BF */ + {0xC7B0,0xC7B0,0x30F6}, + {0xC7B1,0xC7CC,0x0414}, + {0xC7B2,0xC7CD,0x0415}, + {0xC7B3,0xC7CE,0x0401}, + {0xC7B4,0xC7CF,0x0416}, + {0xC7B5,0xC7D0,0x0417}, + {0xC7B6,0xC7D1,0x0418}, + {0xC7B7,0xC7D2,0x0419}, + {0xC7B8,0xC7D3,0x041A}, + {0xC7B9,0xC7D4,0x041B}, + {0xC7BA,0xC7D5,0x041C}, + {0xC7BB,0xC7DC,0x0423}, + {0xC7BC,0xC7DD,0x0424}, + {0xC7BD,0xC7DE,0x0425}, + {0xC7BE,0xC7DF,0x0426}, + {0xC7BF,0xC7E0,0x0427}, + /* C7C0-C7CF */ + {0xC7C0,0xC7E1,0x0428}, + {0xC7C1,0xC7E2,0x0429}, + {0xC7C2,0xC7E3,0x042A}, + {0xC7C3,0xC7E4,0x042B}, + {0xC7C4,0xC7E5,0x042C}, + {0xC7C5,0xC7E6,0x042D}, + {0xC7C6,0xC7E7,0x042E}, + {0xC7C7,0xC7E8,0x042F}, + {0xC7C8,0xC7C8,0x0430}, + {0xC7C9,0xC7C9,0x0431}, + {0xC7CA,0xC7CA,0x0432}, + {0xC7CB,0xC7CB,0x0433}, + {0xC7B1,0xC7CC,0x0434}, + {0xC7B2,0xC7CD,0x0435}, + {0xC7B3,0xC7CE,0x0451}, + {0xC7B4,0xC7CF,0x0436}, + /* C7D0-C7DF */ + {0xC7B5,0xC7D0,0x0437}, + {0xC7B6,0xC7D1,0x0438}, + {0xC7B7,0xC7D2,0x0439}, + {0xC7B8,0xC7D3,0x043A}, + {0xC7B9,0xC7D4,0x043B}, + {0xC7BA,0xC7D5,0x043C}, + {0xC7D6,0xC7D6,0x043D}, + {0xC7D7,0xC7D7,0x043E}, + {0xC7D8,0xC7D8,0x043F}, + {0xC7D9,0xC7D9,0x0440}, + {0xC7DA,0xC7DA,0x0441}, + {0xC7DB,0xC7DB,0x0442}, + {0xC7BB,0xC7DC,0x0443}, + {0xC7BC,0xC7DD,0x0444}, + {0xC7BD,0xC7DE,0x0445}, + {0xC7BE,0xC7DF,0x0446}, + /* C7E0-C7EF */ + {0xC7BF,0xC7E0,0x0447}, + {0xC7C0,0xC7E1,0x0448}, + {0xC7C1,0xC7E2,0x0449}, + {0xC7C2,0xC7E3,0x044A}, + {0xC7C3,0xC7E4,0x044B}, + {0xC7C4,0xC7E5,0x044C}, + {0xC7C5,0xC7E6,0x044D}, + {0xC7C6,0xC7E7,0x044E}, + {0xC7C7,0xC7E8,0x044F}, + {0xC7E9,0xC7E9,0x2460}, + {0xC7EA,0xC7EA,0x2461}, + {0xC7EB,0xC7EB,0x2462}, + {0xC7EC,0xC7EC,0x2463}, + {0xC7ED,0xC7ED,0x2464}, + {0xC7EE,0xC7EE,0x2465}, + {0xC7EF,0xC7EF,0x2466}, + /* C7F0-C7FF */ + {0xC7F0,0xC7F0,0x2467}, + {0xC7F1,0xC7F1,0x2468}, + {0xC7F2,0xC7F2,0x2469}, + {0xC7F3,0xC7F3,0x2474}, + {0xC7F4,0xC7F4,0x2475}, + {0xC7F5,0xC7F5,0x2476}, + {0xC7F6,0xC7F6,0x2477}, + {0xC7F7,0xC7F7,0x2478}, + {0xC7F8,0xC7F8,0x2479}, + {0xC7F9,0xC7F9,0x247A}, + {0xC7FA,0xC7FA,0x247B}, + {0xC7FB,0xC7FB,0x247C}, + {0xC7FC,0xC7FC,0x247D}, + {0xC7FD,0xC7FD,0x003F}, + {0xC7FE,0xC7FE,0x003F}, + {0x0000,0x0000,0x0000} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_big5[256]= +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, cA2, cA3, NULL, NULL, NULL, NULL, /* A */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, cC7, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, +}; + + +static MY_UNICASE_INFO my_caseinfo_big5= +{ + 0xFFFF, + my_caseinfo_pages_big5 +}; + + +static uint16 big5strokexfrm(uint16 i) +{ + if ((i == 0xA440) || (i == 0xA441)) return 0xA440; + else if (((i >= 0xA442) && (i <= 0xA453)) || ((i >= 0xC940) && (i <= 0xC944))) return 0xA442; + else if (((i >= 0xA454) && (i <= 0xA47E)) || ((i >= 0xC945) && (i <= 0xC94C))) return 0xA454; + else if (((i >= 0xA4A1) && (i <= 0xA4FD)) || ((i >= 0xC94D) && (i <= 0xC962))) return 0xA4A1; + else if (((i >= 0xA4FE) && (i <= 0xA5DF)) || ((i >= 0xC963) && (i <= 0xC9AA))) return 0xA4FE; + else if (((i >= 0xA5E0) && (i <= 0xA6E9)) || ((i >= 0xC9AB) && (i <= 0xCA59))) return 0xA5E0; + else if (((i >= 0xA6EA) && (i <= 0xA8C2)) || ((i >= 0xCA5A) && (i <= 0xCBB0))) return 0xA6EA; + else if ((i == 0xA260) || ((i >= 0xA8C3) && (i <= 0xAB44)) || ((i >= 0xCBB1) && (i <= 0xCDDC))) return 0xA8C3; + else if ((i == 0xA259) || (i == 0xF9DA) || ((i >= 0xAB45) && (i <= 0xADBB)) || ((i >= 0xCDDD) && (i <= 0xD0C7))) return 0xAB45; + else if ((i == 0xA25A) || ((i >= 0xADBC) && (i <= 0xB0AD)) || ((i >= 0xD0C8) && (i <= 0xD44A))) return 0xADBC; + else if ((i == 0xA25B) || (i == 0xA25C) || ((i >= 0xB0AE) && (i <= 0xB3C2)) || ((i >= 0xD44B) && (i <= 0xD850))) return 0xB0AE; + else if ((i == 0xF9DB) || ((i >= 0xB3C3) && (i <= 0xB6C2)) || ((i >= 0xD851) && (i <= 0xDCB0))) return 0xB3C3; + else if ((i == 0xA25D) || (i == 0xA25F) || (i == 0xC6A1) || (i == 0xF9D6) || (i == 0xF9D8) || ((i >= 0xB6C3) && (i <= 0xB9AB)) || ((i >= 0xDCB1) && (i <= 0xE0EF))) return 0xB6C3; + else if ((i == 0xF9DC) || ((i >= 0xB9AC) && (i <= 0xBBF4)) || ((i >= 0xE0F0) && (i <= 0xE4E5))) return 0xB9AC; + else if ((i == 0xA261) || ((i >= 0xBBF5) && (i <= 0xBEA6)) || ((i >= 0xE4E6) && (i <= 0xE8F3))) return 0xBBF5; + else if ((i == 0xA25E) || (i == 0xF9D7) || (i == 0xF9D9) || ((i >= 0xBEA7) && (i <= 0xC074)) || ((i >= 0xE8F4) && (i <= 0xECB8))) return 0xBEA7; + else if (((i >= 0xC075) && (i <= 0xC24E)) || ((i >= 0xECB9) && (i <= 0xEFB6))) return 0xC075; + else if (((i >= 0xC24F) && (i <= 0xC35E)) || ((i >= 0xEFB7) && (i <= 0xF1EA))) return 0xC24F; + else if (((i >= 0xC35F) && (i <= 0xC454)) || ((i >= 0xF1EB) && (i <= 0xF3FC))) return 0xC35F; + else if (((i >= 0xC455) && (i <= 0xC4D6)) || ((i >= 0xF3FD) && (i <= 0xF5BF))) return 0xC455; + else if (((i >= 0xC4D7) && (i <= 0xC56A)) || ((i >= 0xF5C0) && (i <= 0xF6D5))) return 0xC4D7; + else if (((i >= 0xC56B) && (i <= 0xC5C7)) || ((i >= 0xF6D6) && (i <= 0xF7CF))) return 0xC56B; + else if (((i >= 0xC5C8) && (i <= 0xC5F0)) || ((i >= 0xF7D0) && (i <= 0xF8A4))) return 0xC5C8; + else if (((i >= 0xC5F1) && (i <= 0xC654)) || ((i >= 0xF8A5) && (i <= 0xF8ED))) return 0xC5F1; + else if (((i >= 0xC655) && (i <= 0xC664)) || ((i >= 0xF8EE) && (i <= 0xF96A))) return 0xC655; + else if (((i >= 0xC665) && (i <= 0xC66B)) || ((i >= 0xF96B) && (i <= 0xF9A1))) return 0xC665; + else if (((i >= 0xC66C) && (i <= 0xC675)) || ((i >= 0xF9A2) && (i <= 0xF9B9))) return 0xC66C; + else if (((i >= 0xC676) && (i <= 0xC678)) || ((i >= 0xF9BA) && (i <= 0xF9C5))) return 0xC676; + else if (((i >= 0xC679) && (i <= 0xC67C)) || ((i >= 0xF9C7) && (i <= 0xF9CB))) return 0xC679; + else if ((i == 0xC67D) || ((i >= 0xF9CC) && (i <= 0xF9CF))) return 0xC67D; + else if (i == 0xF9D0) return 0xF9D0; + else if ((i == 0xC67E) || (i == 0xF9D1)) return 0xC67E; + else if ((i == 0xF9C6) || (i == 0xF9D2)) return 0xF9C6; + else if (i == 0xF9D3) return 0xF9D3; + else if (i == 0xF9D4) return 0xF9D4; + else if (i == 0xF9D5) return 0xF9D5; + return 0xA140; +} + + + +static int my_strnncoll_big5_internal(const uchar **a_res, + const uchar **b_res, size_t length) +{ + const uchar *a= *a_res, *b= *b_res; + + while (length--) + { + if ((length > 0) && isbig5code(*a,*(a+1)) && isbig5code(*b, *(b+1))) + { + if (*a != *b || *(a+1) != *(b+1)) + return ((int) big5code(*a,*(a+1)) - + (int) big5code(*b,*(b+1))); + a+= 2; + b+= 2; + length--; + } + else if (sort_order_big5[*a++] != + sort_order_big5[*b++]) + return ((int) sort_order_big5[a[-1]] - + (int) sort_order_big5[b[-1]]); + } + *a_res= a; + *b_res= b; + return 0; +} + + +/* Compare strings */ + +static int my_strnncoll_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool b_is_prefix) +{ + size_t length= MY_MIN(a_length, b_length); + int res= my_strnncoll_big5_internal(&a, &b, length); + return res ? res : (int)((b_is_prefix ? length : a_length) - b_length); +} + + +/* compare strings, ignore end space */ + +static int my_strnncollsp_big5(const CHARSET_INFO* cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + size_t length= MY_MIN(a_length, b_length); + int res= my_strnncoll_big5_internal(&a, &b, length); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + if (!res && a_length != b_length) + { + const uchar *end; + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a_length < b_length) + { + /* put longer key in a */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (end= a + a_length-length; a < end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + } + return res; +} + + +static size_t +my_strnxfrm_big5(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + uchar *d0= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order= cs->sort_order; + + for (; dst < de && src < se && nweights; nweights--) + { + if (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) + { + /* + Note, it is safe not to check (src < se) + in the code below, because ismbchar() would + not return TRUE if src was too short + */ + uint16 e= big5strokexfrm((uint16) big5code(*src, *(src + 1))); + *dst++= big5head(e); + if (dst < de) + *dst++= big5tail(e); + src+= 2; + } + else + *dst++= sort_order ? sort_order[*src++] : *src++; + } + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); +} + + +static uint ismbchar_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return (isbig5head(*(p)) && (e)-(p)>1 && isbig5tail(*((p)+1))? 2: 0); +} + + +static uint mbcharlen_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (isbig5head(c)? 2 : 1); +} + + +/* page 0 0xA140-0xC7FC */ +static const uint16 tab_big5_uni0[]={ +0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x2022,0xFF1B,0xFF1A, +0xFF1F,0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFF64,0xFE52, +0x00B7,0xFE54,0xFE55,0xFE56,0xFE57,0xFF5C,0x2013,0xFE31, +0x2014,0xFE33,0xFFFD,0xFE34,0xFE4F,0xFF08,0xFF09,0xFE35, +0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38,0x3014,0x3015,0xFE39, +0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C,0x300A,0x300B,0xFE3D, +0xFE3E,0x3008,0x3009,0xFE3F,0xFE40,0x300C,0x300D,0xFE41, +0xFE42,0x300E,0x300F,0xFE43,0xFE44,0xFE59,0xFE5A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019,0x201C, +0x201D,0x301D,0x301E,0x2035,0x2032,0xFF03,0xFF06,0xFF0A, +0x203B,0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2,0x25CE, +0x2606,0x2605,0x25C7,0x25C6,0x25A1,0x25A0,0x25BD,0x25BC, +0x32A3,0x2105,0x203E,0xFFFD,0xFF3F,0xFFFD,0xFE49,0xFE4A, +0xFE4D,0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61,0xFF0B, +0xFF0D,0x00D7,0x00F7,0x00B1,0x221A,0xFF1C,0xFF1E,0xFF1D, +0x2266,0x2267,0x2260,0x221E,0x2252,0x2261,0xFE62,0xFE63, +0xFE64,0xFE65,0xFE66,0x223C,0x2229,0x222A,0x22A5,0x2220, +0x221F,0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235,0x2234, +0x2640,0x2642,0x2641,0x2609,0x2191,0x2193,0x2190,0x2192, +0x2196,0x2197,0x2199,0x2198,0x2225,0x2223,0xFFFD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFFFD,0xFF0F,0xFF3C,0xFF04,0x00A5,0x3012,0x00A2,0x00A3, +0xFF05,0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5, +0x339C,0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4, +0x00B0,0x5159,0x515B,0x515E,0x515D,0x5161,0x5163,0x55E7, +0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584,0x2585,0x2586, +0x2587,0x2588,0x258F,0x258E,0x258D,0x258C,0x258B,0x258A, +0x2589,0x253C,0x2534,0x252C,0x2524,0x251C,0x2594,0x2500, +0x2502,0x2595,0x250C,0x2510,0x2514,0x2518,0x256D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561, +0x25E2,0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573,0xFF10, +0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, +0xFF19,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, +0x2167,0x2168,0x2169,0x3021,0x3022,0x3023,0x3024,0x3025, +0x3026,0x3027,0x3028,0x3029,0xFFFD,0x5344,0xFFFD,0xFF21, +0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,0xFF29, +0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31, +0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39, +0xFF3A,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47, +0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F, +0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393,0x0394, +0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C, +0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,0x03A4,0x03A5, +0x03A6,0x03A7,0x03A8,0x03A9,0x03B1,0x03B2,0x03B3,0x03B4, +0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC, +0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3,0x03C4,0x03C5, +0x03C6,0x03C7,0x03C8,0x03C9,0x3105,0x3106,0x3107,0x3108, +0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116, +0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E, +0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126, +0x3127,0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7,0x02CB, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86,0x4E8C, +0x4EBA,0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201,0x529B, +0x5315,0x5341,0x535C,0x53C8,0x4E09,0x4E0B,0x4E08,0x4E0A, +0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,0x4E5F,0x4E5E,0x4E8E, +0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3,0x571F, +0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53,0x5BF8, +0x5C0F,0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1,0x5DF2, +0x5DF3,0x5DFE,0x5E72,0x5EFE,0x5F0B,0x5F13,0x624D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x4E11,0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,0x4E4B, +0x5C39,0x4E88,0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1, +0x4EC0,0x4EC3,0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4, +0x5143,0x5141,0x5167,0x516D,0x516E,0x516C,0x5197,0x51F6, +0x5206,0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316,0x5339, +0x5348,0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA,0x53CD, +0x58EC,0x5929,0x592B,0x592A,0x592D,0x5B54,0x5C11,0x5C24, +0x5C3A,0x5C6F,0x5DF4,0x5E7B,0x5EFF,0x5F14,0x5F15,0x5FC3, +0x6208,0x6236,0x624B,0x624E,0x652F,0x6587,0x6597,0x65A4, +0x65B9,0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62,0x6B79, +0x6BCB,0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A,0x7236, +0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4E16,0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,0x4E4F,0x4E4E, +0x4EE5,0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4, +0x4ED9,0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9, +0x51FA,0x51F8,0x520A,0x52A0,0x529F,0x5305,0x5306,0x5317, +0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360,0x536F,0x536E, +0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE,0x53E9,0x53E8, +0x53FC,0x53F8,0x53F5,0x53EB,0x53E6,0x53EA,0x53F2,0x53F1, +0x53F0,0x53E5,0x53ED,0x53FB,0x56DB,0x56DA,0x5916, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C, +0x5DE8,0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01, +0x5F18,0x5F17,0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251, +0x65A5,0x65E6,0x672E,0x672C,0x672A,0x672B,0x672D,0x6B63, +0x6BCD,0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,0x6C3E,0x72AF, +0x7384,0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529, +0x7530,0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF, +0x76EE,0x77DB,0x77E2,0x77F3,0x793A,0x79BE,0x7A74,0x7ACB, +0x4E1E,0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99,0x4EA4,0x4EA6, +0x4EA5,0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15,0x4F0D,0x4F10, +0x4F11,0x4F0F,0x4EF2,0x4EF6,0x4EFB,0x4EF0,0x4EF3,0x4EFD, +0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E,0x5216, +0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,0x540F, +0x540C,0x540A,0x5410,0x5401,0x540B,0x5404,0x5411,0x540D, +0x5408,0x5403,0x540E,0x5406,0x5412,0x56E0,0x56DE,0x56DD, +0x5733,0x5730,0x5728,0x572D,0x572C,0x572F,0x5729,0x5919, +0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D,0x5979, +0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85,0x5B89, +0x5BFA,0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76,0x5E74, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C,0x620D, +0x6210,0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8,0x65EC, +0x65ED,0x66F2,0x66F3,0x6709,0x673D,0x6734,0x6731,0x6735, +0x6B21,0x6B64,0x6B7B,0x6C16,0x6C5D,0x6C57,0x6C59,0x6C5F, +0x6C60,0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E,0x7070, +0x725F,0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36,0x7F8A, +0x7FBD,0x8001,0x8003,0x800C,0x8012,0x8033,0x807F,0x8089, +0x808B,0x808C,0x81E3,0x81EA,0x81F3,0x81FC,0x820C,0x821B, +0x821F,0x826E,0x8272,0x827E,0x866B,0x8840,0x884C,0x8863, +0x897F,0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47,0x4F57, +0x4F5E,0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51,0x4F3D, +0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,0x4F63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59,0x4F5D,0x4F48, +0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6,0x51B7,0x5225, +0x5224,0x5229,0x522A,0x5228,0x52AB,0x52A9,0x52AA,0x52AC, +0x5323,0x5373,0x5375,0x541D,0x542D,0x541E,0x543E,0x5426, +0x544E,0x5427,0x5446,0x5443,0x5433,0x5448,0x5442,0x541B, +0x5429,0x544A,0x5439,0x543B,0x5438,0x542E,0x5435,0x5436, +0x5420,0x543C,0x5440,0x5431,0x542B,0x541F,0x542C,0x56EA, +0x56F0,0x56E4,0x56EB,0x574A,0x5751,0x5740,0x574D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5747,0x574E,0x573E,0x5750,0x574F,0x573B,0x58EF, +0x593E,0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996, +0x598D,0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A, +0x5B5B,0x5B8C,0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41,0x5C3F, +0x5C3E,0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB,0x5E0C,0x5E8F, +0x5E87,0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64,0x5F62,0x5F77, +0x5F79,0x5FD8,0x5FCC,0x5FD7,0x5FCD,0x5FF1,0x5FEB,0x5FF8, +0x5FEA,0x6212,0x6211,0x6284,0x6297,0x6296,0x6280,0x6276, +0x6289,0x626D,0x628A,0x627C,0x627E,0x6279,0x6273,0x6292, +0x626F,0x6298,0x626E,0x6295,0x6293,0x6291,0x6286,0x6539, +0x653B,0x6538,0x65F1,0x66F4,0x675F,0x674E,0x674F,0x6750, +0x6751,0x675C,0x6756,0x675E,0x6749,0x6746,0x6760, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6753,0x6757,0x6B65,0x6BCF,0x6C42,0x6C5E,0x6C99,0x6C81, +0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90,0x6C70, +0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72,0x6C7E, +0x6C74,0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98,0x6C82,0x7076, +0x707C,0x707D,0x7078,0x7262,0x7261,0x7260,0x72C4,0x72C2, +0x7396,0x752C,0x752B,0x7537,0x7538,0x7682,0x76EF,0x77E3, +0x79C1,0x79C0,0x79BF,0x7A76,0x7CFB,0x7F55,0x8096,0x8093, +0x809D,0x8098,0x809B,0x809A,0x80B2,0x826F,0x8292, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37,0x8C46, +0x8C55,0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA,0x8F9B, +0x8FB0,0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091,0x90A2, +0x90AA,0x90A6,0x90A3,0x9149,0x91C6,0x91CC,0x9632,0x962E, +0x9631,0x962A,0x962C,0x4E26,0x4E56,0x4E73,0x4E8B,0x4E9B, +0x4E9E,0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73,0x4F7F, +0x4F6C,0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75,0x4F88, +0x4F69,0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91,0x4F7A,0x5154, +0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51BD,0x51FD, +0x523B,0x5238,0x5237,0x523A,0x5230,0x522E,0x5236,0x5241, +0x52BE,0x52BB,0x5352,0x5354,0x5353,0x5351,0x5366,0x5377, +0x5378,0x5379,0x53D6,0x53D4,0x53D7,0x5473,0x5475, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5496,0x5478,0x5495,0x5480,0x547B,0x5477,0x5484,0x5492, +0x5486,0x547C,0x5490,0x5471,0x5476,0x548C,0x549A,0x5462, +0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783,0x5777,0x576A, +0x5769,0x5761,0x5766,0x5764,0x577C,0x591C,0x5949,0x5947, +0x5948,0x5944,0x5954,0x59BE,0x59BB,0x59D4,0x59B9,0x59AE, +0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3,0x59CA,0x59AF, +0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63,0x5B97,0x5B9A, +0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A,0x5C48,0x5C45, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9,0x5CAB,0x5CB1, +0x5CB3,0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B,0x5E11,0x5E78, +0x5E9A,0x5E97,0x5E9C,0x5E95,0x5E96,0x5EF6,0x5F26,0x5F27, +0x5F29,0x5F80,0x5F81,0x5F7F,0x5F7C,0x5FDD,0x5FE0,0x5FFD, +0x5FF5,0x5FFF,0x600F,0x6014,0x602F,0x6035,0x6016,0x602A, +0x6015,0x6021,0x6027,0x6029,0x602B,0x601B,0x6216,0x6215, +0x623F,0x623E,0x6240,0x627F,0x62C9,0x62CC,0x62C4,0x62BF, +0x62C2,0x62B9,0x62D2,0x62DB,0x62AB,0x62D3,0x62D4,0x62CB, +0x62C8,0x62A8,0x62BD,0x62BC,0x62D0,0x62D9,0x62C7,0x62CD, +0x62B5,0x62DA,0x62B1,0x62D8,0x62D6,0x62D7,0x62C6,0x62AC, +0x62CE,0x653E,0x65A7,0x65BC,0x65FA,0x6614,0x6613,0x660C, +0x6606,0x6602,0x660E,0x6600,0x660F,0x6615,0x660A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6607,0x670D,0x670B,0x676D,0x678B,0x6795,0x6771,0x679C, +0x6773,0x6777,0x6787,0x679D,0x6797,0x676F,0x6770,0x677F, +0x6789,0x677E,0x6790,0x6775,0x679A,0x6793,0x677C,0x676A, +0x6772,0x6B23,0x6B66,0x6B67,0x6B7F,0x6C13,0x6C1B,0x6CE3, +0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5,0x6CB3,0x6CBD,0x6CBE, +0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3,0x6CB8,0x6CC4,0x6CB9, +0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1,0x6CBF,0x6CBB,0x6CE1, +0x6CDB,0x6CCA,0x6CAC,0x6CEF,0x6CDC,0x6CD6,0x6CE0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7095,0x708E,0x7092,0x708A,0x7099,0x722C,0x722D, +0x7238,0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9,0x72D7, +0x72D0,0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D,0x759D, +0x7599,0x759A,0x7684,0x76C2,0x76F2,0x76F4,0x77E5,0x77FD, +0x793E,0x7940,0x7941,0x79C9,0x79C8,0x7A7A,0x7A79,0x7AFA, +0x7CFE,0x7F54,0x7F8C,0x7F8B,0x8005,0x80BA,0x80A5,0x80A2, +0x80B1,0x80A1,0x80AB,0x80A9,0x80B4,0x80AA,0x80AF,0x81E5, +0x81FE,0x820D,0x82B3,0x829D,0x8299,0x82AD,0x82BD,0x829F, +0x82B9,0x82B1,0x82AC,0x82A5,0x82AF,0x82B8,0x82A3,0x82B0, +0x82BE,0x82B7,0x864E,0x8671,0x521D,0x8868,0x8ECB,0x8FCE, +0x8FD4,0x8FD1,0x90B5,0x90B8,0x90B1,0x90B6,0x91C7,0x91D1, +0x9577,0x9580,0x961C,0x9640,0x963F,0x963B,0x9644, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9642,0x96B9,0x96E8,0x9752,0x975E,0x4E9F,0x4EAD,0x4EAE, +0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1,0x4FCF,0x4FDD, +0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7,0x4FAE,0x4FD0, +0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE,0x4FB7,0x5157,0x5192, +0x5191,0x51A0,0x524E,0x5243,0x524A,0x524D,0x524C,0x524B, +0x5247,0x52C7,0x52C9,0x52C3,0x52C1,0x530D,0x5357,0x537B, +0x539A,0x53DB,0x54AC,0x54C0,0x54A8,0x54CE,0x54C9,0x54B8, +0x54A6,0x54B3,0x54C7,0x54C2,0x54BD,0x54AA,0x54C1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x54C4,0x54C8,0x54AF,0x54AB,0x54B1,0x54BB,0x54A9, +0x54A7,0x54BF,0x56FF,0x5782,0x578B,0x57A0,0x57A3,0x57A2, +0x57CE,0x57AE,0x5793,0x5955,0x5951,0x594F,0x594E,0x5950, +0x59DC,0x59D8,0x59FF,0x59E3,0x59E8,0x5A03,0x59E5,0x59EA, +0x59DA,0x59E6,0x5A01,0x59FB,0x5B69,0x5BA3,0x5BA6,0x5BA4, +0x5BA2,0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D,0x5C4B,0x5CD9, +0x5CD2,0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D,0x5EA0,0x5EA6, +0x5EFA,0x5F08,0x5F2D,0x5F65,0x5F88,0x5F85,0x5F8A,0x5F8B, +0x5F87,0x5F8C,0x5F89,0x6012,0x601D,0x6020,0x6025,0x600E, +0x6028,0x604D,0x6070,0x6068,0x6062,0x6046,0x6043,0x606C, +0x606B,0x606A,0x6064,0x6241,0x62DC,0x6316,0x6309,0x62FC, +0x62ED,0x6301,0x62EE,0x62FD,0x6307,0x62F1,0x62F7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x62EF,0x62EC,0x62FE,0x62F4,0x6311,0x6302,0x653F,0x6545, +0x65AB,0x65BD,0x65E2,0x6625,0x662D,0x6620,0x6627,0x662F, +0x661F,0x6628,0x6631,0x6624,0x66F7,0x67FF,0x67D3,0x67F1, +0x67D4,0x67D0,0x67EC,0x67B6,0x67AF,0x67F5,0x67E9,0x67EF, +0x67C4,0x67D1,0x67B4,0x67DA,0x67E5,0x67B8,0x67CF,0x67DE, +0x67F3,0x67B0,0x67D9,0x67E2,0x67DD,0x67D2,0x6B6A,0x6B83, +0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F,0x6CC9,0x6D0B,0x6D32, +0x6D2A,0x6D41,0x6D25,0x6D0C,0x6D31,0x6D1E,0x6D17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6D3B,0x6D3D,0x6D3E,0x6D36,0x6D1B,0x6CF5,0x6D39, +0x6D27,0x6D38,0x6D29,0x6D2E,0x6D35,0x6D0E,0x6D2B,0x70AB, +0x70BA,0x70B3,0x70AC,0x70AF,0x70AD,0x70B8,0x70AE,0x70A4, +0x7230,0x7272,0x726F,0x7274,0x72E9,0x72E0,0x72E1,0x73B7, +0x73CA,0x73BB,0x73B2,0x73CD,0x73C0,0x73B3,0x751A,0x752D, +0x754F,0x754C,0x754E,0x754B,0x75AB,0x75A4,0x75A5,0x75A2, +0x75A3,0x7678,0x7686,0x7687,0x7688,0x76C8,0x76C6,0x76C3, +0x76C5,0x7701,0x76F9,0x76F8,0x7709,0x770B,0x76FE,0x76FC, +0x7707,0x77DC,0x7802,0x7814,0x780C,0x780D,0x7946,0x7949, +0x7948,0x7947,0x79B9,0x79BA,0x79D1,0x79D2,0x79CB,0x7A7F, +0x7A81,0x7AFF,0x7AFD,0x7C7D,0x7D02,0x7D05,0x7D00,0x7D09, +0x7D07,0x7D04,0x7D06,0x7F38,0x7F8E,0x7FBF,0x8004, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8010,0x800D,0x8011,0x8036,0x80D6,0x80E5,0x80DA,0x80C3, +0x80C4,0x80CC,0x80E1,0x80DB,0x80CE,0x80DE,0x80E4,0x80DD, +0x81F4,0x8222,0x82E7,0x8303,0x8305,0x82E3,0x82DB,0x82E6, +0x8304,0x82E5,0x8302,0x8309,0x82D2,0x82D7,0x82F1,0x8301, +0x82DC,0x82D4,0x82D1,0x82DE,0x82D3,0x82DF,0x82EF,0x8306, +0x8650,0x8679,0x867B,0x867A,0x884D,0x886B,0x8981,0x89D4, +0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0,0x8D74,0x8D73,0x8DB4, +0x8ECD,0x8ECC,0x8FF0,0x8FE6,0x8FE2,0x8FEA,0x8FE5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8FED,0x8FEB,0x8FE4,0x8FE8,0x90CA,0x90CE,0x90C1, +0x90C3,0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B,0x964C, +0x964D,0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801,0x98A8, +0x98DB,0x98DF,0x9996,0x9999,0x4E58,0x4EB3,0x500C,0x500D, +0x5023,0x4FEF,0x5026,0x5025,0x4FF8,0x5029,0x5016,0x5006, +0x503C,0x501F,0x501A,0x5012,0x5011,0x4FFA,0x5000,0x5014, +0x5028,0x4FF1,0x5021,0x500B,0x5019,0x5018,0x4FF3,0x4FEE, +0x502D,0x502A,0x4FFE,0x502B,0x5009,0x517C,0x51A4,0x51A5, +0x51A2,0x51CD,0x51CC,0x51C6,0x51CB,0x5256,0x525C,0x5254, +0x525B,0x525D,0x532A,0x537F,0x539F,0x539D,0x53DF,0x54E8, +0x5510,0x5501,0x5537,0x54FC,0x54E5,0x54F2,0x5506,0x54FA, +0x5514,0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x54E6,0x5527,0x5507,0x54FD,0x550F,0x5703,0x5704,0x57C2, +0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957,0x5958,0x595A, +0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13,0x59EC,0x5A20, +0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09,0x5B6B,0x5C58,0x5BB0, +0x5BB3,0x5BB6,0x5BB4,0x5BAE,0x5BB5,0x5BB9,0x5BB8,0x5C04, +0x5C51,0x5C55,0x5C50,0x5CED,0x5CFD,0x5CFB,0x5CEA,0x5CE8, +0x5CF0,0x5CF6,0x5D01,0x5CF4,0x5DEE,0x5E2D,0x5E2B,0x5EAB, +0x5EAD,0x5EA7,0x5F31,0x5F92,0x5F91,0x5F90,0x6059, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6063,0x6065,0x6050,0x6055,0x606D,0x6069,0x606F, +0x6084,0x609F,0x609A,0x608D,0x6094,0x608C,0x6085,0x6096, +0x6247,0x62F3,0x6308,0x62FF,0x634E,0x633E,0x632F,0x6355, +0x6342,0x6346,0x634F,0x6349,0x633A,0x6350,0x633D,0x632A, +0x632B,0x6328,0x634D,0x634C,0x6548,0x6549,0x6599,0x65C1, +0x65C5,0x6642,0x6649,0x664F,0x6643,0x6652,0x664C,0x6645, +0x6641,0x66F8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848, +0x6846,0x6853,0x6839,0x6842,0x6854,0x6829,0x68B3,0x6817, +0x684C,0x6851,0x683D,0x67F4,0x6850,0x6840,0x683C,0x6843, +0x682A,0x6845,0x6813,0x6818,0x6841,0x6B8A,0x6B89,0x6BB7, +0x6C23,0x6C27,0x6C28,0x6C26,0x6C24,0x6CF0,0x6D6A,0x6D95, +0x6D88,0x6D87,0x6D66,0x6D78,0x6D77,0x6D59,0x6D93, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74,0x6D69,0x6D8C,0x6D8A, +0x6D79,0x6D85,0x6D65,0x6D94,0x70CA,0x70D8,0x70E4,0x70D9, +0x70C8,0x70CF,0x7239,0x7279,0x72FC,0x72F9,0x72FD,0x72F8, +0x72F7,0x7386,0x73ED,0x7409,0x73EE,0x73E0,0x73EA,0x73DE, +0x7554,0x755D,0x755C,0x755A,0x7559,0x75BE,0x75C5,0x75C7, +0x75B2,0x75B3,0x75BD,0x75BC,0x75B9,0x75C2,0x75B8,0x768B, +0x76B0,0x76CA,0x76CD,0x76CE,0x7729,0x771F,0x7720,0x7728, +0x77E9,0x7830,0x7827,0x7838,0x781D,0x7834,0x7837, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7825,0x782D,0x7820,0x781F,0x7832,0x7955,0x7950, +0x7960,0x795F,0x7956,0x795E,0x795D,0x7957,0x795A,0x79E4, +0x79E3,0x79E7,0x79DF,0x79E6,0x79E9,0x79D8,0x7A84,0x7A88, +0x7AD9,0x7B06,0x7B11,0x7C89,0x7D21,0x7D17,0x7D0B,0x7D0A, +0x7D20,0x7D22,0x7D14,0x7D10,0x7D15,0x7D1A,0x7D1C,0x7D0D, +0x7D19,0x7D1B,0x7F3A,0x7F5F,0x7F94,0x7FC5,0x7FC1,0x8006, +0x8018,0x8015,0x8019,0x8017,0x803D,0x803F,0x80F1,0x8102, +0x80F0,0x8105,0x80ED,0x80F4,0x8106,0x80F8,0x80F3,0x8108, +0x80FD,0x810A,0x80FC,0x80EF,0x81ED,0x81EC,0x8200,0x8210, +0x822A,0x822B,0x8228,0x822C,0x82BB,0x832B,0x8352,0x8354, +0x834A,0x8338,0x8350,0x8349,0x8335,0x8334,0x834F,0x8332, +0x8339,0x8336,0x8317,0x8340,0x8331,0x8328,0x8343, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8654,0x868A,0x86AA,0x8693,0x86A4,0x86A9,0x868C,0x86A3, +0x869C,0x8870,0x8877,0x8881,0x8882,0x887D,0x8879,0x8A18, +0x8A10,0x8A0E,0x8A0C,0x8A15,0x8A0A,0x8A17,0x8A13,0x8A16, +0x8A0F,0x8A11,0x8C48,0x8C7A,0x8C79,0x8CA1,0x8CA2,0x8D77, +0x8EAC,0x8ED2,0x8ED4,0x8ECF,0x8FB1,0x9001,0x9006,0x8FF7, +0x9000,0x8FFA,0x8FF4,0x9003,0x8FFD,0x9005,0x8FF8,0x9095, +0x90E1,0x90DD,0x90E2,0x9152,0x914D,0x914C,0x91D8,0x91DD, +0x91D7,0x91DC,0x91D9,0x9583,0x9662,0x9663,0x9661, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x965B,0x965D,0x9664,0x9658,0x965E,0x96BB,0x98E2, +0x99AC,0x9AA8,0x9AD8,0x9B25,0x9B32,0x9B3C,0x4E7E,0x507A, +0x507D,0x505C,0x5047,0x5043,0x504C,0x505A,0x5049,0x5065, +0x5076,0x504E,0x5055,0x5075,0x5074,0x5077,0x504F,0x500F, +0x506F,0x506D,0x515C,0x5195,0x51F0,0x526A,0x526F,0x52D2, +0x52D9,0x52D8,0x52D5,0x5310,0x530F,0x5319,0x533F,0x5340, +0x533E,0x53C3,0x66FC,0x5546,0x556A,0x5566,0x5544,0x555E, +0x5561,0x5543,0x554A,0x5531,0x5556,0x554F,0x5555,0x552F, +0x5564,0x5538,0x552E,0x555C,0x552C,0x5563,0x5533,0x5541, +0x5557,0x5708,0x570B,0x5709,0x57DF,0x5805,0x580A,0x5806, +0x57E0,0x57E4,0x57FA,0x5802,0x5835,0x57F7,0x57F9,0x5920, +0x5962,0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5A3C,0x5A62,0x5A5A,0x5A46,0x5A4A,0x5B70,0x5BC7,0x5BC5, +0x5BC4,0x5BC2,0x5BBF,0x5BC6,0x5C09,0x5C08,0x5C07,0x5C60, +0x5C5C,0x5C5D,0x5D07,0x5D06,0x5D0E,0x5D1B,0x5D16,0x5D22, +0x5D11,0x5D29,0x5D14,0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2, +0x5E38,0x5E36,0x5E33,0x5E37,0x5EB7,0x5EB8,0x5EB6,0x5EB5, +0x5EBE,0x5F35,0x5F37,0x5F57,0x5F6C,0x5F69,0x5F6B,0x5F97, +0x5F99,0x5F9E,0x5F98,0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3, +0x6089,0x60A0,0x60A8,0x60CB,0x60B4,0x60E6,0x60BD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x60C5,0x60BB,0x60B5,0x60DC,0x60BC,0x60D8,0x60D5, +0x60C6,0x60DF,0x60B8,0x60DA,0x60C7,0x621A,0x621B,0x6248, +0x63A0,0x63A7,0x6372,0x6396,0x63A2,0x63A5,0x6377,0x6367, +0x6398,0x63AA,0x6371,0x63A9,0x6389,0x6383,0x639B,0x636B, +0x63A8,0x6384,0x6388,0x6399,0x63A1,0x63AC,0x6392,0x638F, +0x6380,0x637B,0x6369,0x6368,0x637A,0x655D,0x6556,0x6551, +0x6559,0x6557,0x555F,0x654F,0x6558,0x6555,0x6554,0x659C, +0x659B,0x65AC,0x65CF,0x65CB,0x65CC,0x65CE,0x665D,0x665A, +0x6664,0x6668,0x6666,0x665E,0x66F9,0x52D7,0x671B,0x6881, +0x68AF,0x68A2,0x6893,0x68B5,0x687F,0x6876,0x68B1,0x68A7, +0x6897,0x68B0,0x6883,0x68C4,0x68AD,0x6886,0x6885,0x6894, +0x689D,0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6BEB,0x6BEC,0x6C2B,0x6D8E,0x6DBC,0x6DF3,0x6DD9,0x6DB2, +0x6DE1,0x6DCC,0x6DE4,0x6DFB,0x6DFA,0x6E05,0x6DC7,0x6DCB, +0x6DAF,0x6DD1,0x6DAE,0x6DDE,0x6DF9,0x6DB8,0x6DF7,0x6DF5, +0x6DC5,0x6DD2,0x6E1A,0x6DB5,0x6DDA,0x6DEB,0x6DD8,0x6DEA, +0x6DF1,0x6DEE,0x6DE8,0x6DC6,0x6DC4,0x6DAA,0x6DEC,0x6DBF, +0x6DE6,0x70F9,0x7109,0x710A,0x70FD,0x70EF,0x723D,0x727D, +0x7281,0x731C,0x731B,0x7316,0x7313,0x7319,0x7387,0x7405, +0x740A,0x7403,0x7406,0x73FE,0x740D,0x74E0,0x74F6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x74F7,0x751C,0x7522,0x7565,0x7566,0x7562,0x7570, +0x758F,0x75D4,0x75D5,0x75B5,0x75CA,0x75CD,0x768E,0x76D4, +0x76D2,0x76DB,0x7737,0x773E,0x773C,0x7736,0x7738,0x773A, +0x786B,0x7843,0x784E,0x7965,0x7968,0x796D,0x79FB,0x7A92, +0x7A95,0x7B20,0x7B28,0x7B1B,0x7B2C,0x7B26,0x7B19,0x7B1E, +0x7B2E,0x7C92,0x7C97,0x7C95,0x7D46,0x7D43,0x7D71,0x7D2E, +0x7D39,0x7D3C,0x7D40,0x7D30,0x7D33,0x7D44,0x7D2F,0x7D42, +0x7D32,0x7D31,0x7F3D,0x7F9E,0x7F9A,0x7FCC,0x7FCE,0x7FD2, +0x801C,0x804A,0x8046,0x812F,0x8116,0x8123,0x812B,0x8129, +0x8130,0x8124,0x8202,0x8235,0x8237,0x8236,0x8239,0x838E, +0x839E,0x8398,0x8378,0x83A2,0x8396,0x83BD,0x83AB,0x8392, +0x838A,0x8393,0x8389,0x83A0,0x8377,0x837B,0x837C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8386,0x83A7,0x8655,0x5F6A,0x86C7,0x86C0,0x86B6,0x86C4, +0x86B5,0x86C6,0x86CB,0x86B1,0x86AF,0x86C9,0x8853,0x889E, +0x8888,0x88AB,0x8892,0x8896,0x888D,0x888B,0x8993,0x898F, +0x8A2A,0x8A1D,0x8A23,0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B, +0x8A22,0x8C49,0x8C5A,0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA, +0x8CA7,0x8D67,0x8D66,0x8DBE,0x8DBA,0x8EDB,0x8EDF,0x9019, +0x900D,0x901A,0x9017,0x9023,0x901F,0x901D,0x9010,0x9015, +0x901E,0x9020,0x900F,0x9022,0x9016,0x901B,0x9014, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x90E8,0x90ED,0x90FD,0x9157,0x91CE,0x91F5,0x91E6, +0x91E3,0x91E7,0x91ED,0x91E9,0x9589,0x966A,0x9675,0x9673, +0x9678,0x9670,0x9674,0x9676,0x9677,0x966C,0x96C0,0x96EA, +0x96E9,0x7AE0,0x7ADF,0x9802,0x9803,0x9B5A,0x9CE5,0x9E75, +0x9E7F,0x9EA5,0x9EBB,0x50A2,0x508D,0x5085,0x5099,0x5091, +0x5080,0x5096,0x5098,0x509A,0x6700,0x51F1,0x5272,0x5274, +0x5275,0x5269,0x52DE,0x52DD,0x52DB,0x535A,0x53A5,0x557B, +0x5580,0x55A7,0x557C,0x558A,0x559D,0x5598,0x5582,0x559C, +0x55AA,0x5594,0x5587,0x558B,0x5583,0x55B3,0x55AE,0x559F, +0x553E,0x55B2,0x559A,0x55BB,0x55AC,0x55B1,0x557E,0x5589, +0x55AB,0x5599,0x570D,0x582F,0x582A,0x5834,0x5824,0x5830, +0x5831,0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5A77,0x5A9A,0x5A7F,0x5A92,0x5A9B,0x5AA7,0x5B73,0x5B71, +0x5BD2,0x5BCC,0x5BD3,0x5BD0,0x5C0A,0x5C0B,0x5C31,0x5D4C, +0x5D50,0x5D34,0x5D47,0x5DFD,0x5E45,0x5E3D,0x5E40,0x5E43, +0x5E7E,0x5ECA,0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9, +0x5FAA,0x5FA8,0x60D1,0x60E1,0x60B2,0x60B6,0x60E0,0x611C, +0x6123,0x60FA,0x6115,0x60F0,0x60FB,0x60F4,0x6168,0x60F1, +0x610E,0x60F6,0x6109,0x6100,0x6112,0x621F,0x6249,0x63A3, +0x638C,0x63CF,0x63C0,0x63E9,0x63C9,0x63C6,0x63CD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x63D2,0x63E3,0x63D0,0x63E1,0x63D6,0x63ED,0x63EE, +0x6376,0x63F4,0x63EA,0x63DB,0x6452,0x63DA,0x63F9,0x655E, +0x6566,0x6562,0x6563,0x6591,0x6590,0x65AF,0x666E,0x6670, +0x6674,0x6676,0x666F,0x6691,0x667A,0x667E,0x6677,0x66FE, +0x66FF,0x671F,0x671D,0x68FA,0x68D5,0x68E0,0x68D8,0x68D7, +0x6905,0x68DF,0x68F5,0x68EE,0x68E7,0x68F9,0x68D2,0x68F2, +0x68E3,0x68CB,0x68CD,0x690D,0x6912,0x690E,0x68C9,0x68DA, +0x696E,0x68FB,0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC, +0x6BEF,0x6C2E,0x6C2F,0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21, +0x6E32,0x6E67,0x6E4A,0x6E20,0x6E25,0x6E23,0x6E1B,0x6E5B, +0x6E58,0x6E24,0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,0x6E34, +0x6E4D,0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6E89,0x6E19,0x6E4E,0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F, +0x7119,0x711A,0x7126,0x7130,0x7121,0x7136,0x716E,0x711C, +0x724C,0x7284,0x7280,0x7336,0x7325,0x7334,0x7329,0x743A, +0x742A,0x7433,0x7422,0x7425,0x7435,0x7436,0x7434,0x742F, +0x741B,0x7426,0x7428,0x7525,0x7526,0x756B,0x756A,0x75E2, +0x75DB,0x75E3,0x75D9,0x75D8,0x75DE,0x75E0,0x767B,0x767C, +0x7696,0x7693,0x76B4,0x76DC,0x774F,0x77ED,0x785D,0x786C, +0x786F,0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7A97,0x7A96,0x7AE5,0x7AE3,0x7B49,0x7B56,0x7B46, +0x7B50,0x7B52,0x7B54,0x7B4D,0x7B4B,0x7B4F,0x7B51,0x7C9F, +0x7CA5,0x7D5E,0x7D50,0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72, +0x7D61,0x7D66,0x7D62,0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5, +0x800B,0x8052,0x8085,0x8155,0x8154,0x814B,0x8151,0x814E, +0x8139,0x8146,0x813E,0x814C,0x8153,0x8174,0x8212,0x821C, +0x83E9,0x8403,0x83F8,0x840D,0x83E0,0x83C5,0x840B,0x83C1, +0x83EF,0x83F1,0x83F4,0x8457,0x840A,0x83F0,0x840C,0x83CC, +0x83FD,0x83F2,0x83CA,0x8438,0x840E,0x8404,0x83DC,0x8407, +0x83D4,0x83DF,0x865B,0x86DF,0x86D9,0x86ED,0x86D4,0x86DB, +0x86E4,0x86D0,0x86DE,0x8857,0x88C1,0x88C2,0x88B1,0x8983, +0x8996,0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8A54,0x8A5B,0x8A50,0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56, +0x8C61,0x8C82,0x8CAF,0x8CBC,0x8CB3,0x8CBD,0x8CC1,0x8CBB, +0x8CC0,0x8CB4,0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,0x8D85, +0x8D81,0x8DCE,0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB, +0x8DC6,0x8EFB,0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031, +0x9038,0x9032,0x9036,0x9102,0x90F5,0x9109,0x90FE,0x9163, +0x9165,0x91CF,0x9214,0x9215,0x9223,0x9209,0x921E,0x920D, +0x9210,0x9207,0x9211,0x9594,0x958F,0x958B,0x9591, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9593,0x9592,0x958E,0x968A,0x968E,0x968B,0x967D, +0x9685,0x9686,0x968D,0x9672,0x9684,0x96C1,0x96C5,0x96C4, +0x96C6,0x96C7,0x96EF,0x96F2,0x97CC,0x9805,0x9806,0x9808, +0x98E7,0x98EA,0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD, +0x9EC3,0x9ECD,0x9ED1,0x4E82,0x50AD,0x50B5,0x50B2,0x50B3, +0x50C5,0x50BE,0x50AC,0x50B7,0x50BB,0x50AF,0x50C7,0x527F, +0x5277,0x527D,0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,0x532F, +0x55DF,0x55E8,0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1, +0x55E3,0x55E4,0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5, +0x55C9,0x5712,0x5713,0x585E,0x5851,0x5858,0x5857,0x585A, +0x5854,0x586B,0x584C,0x586D,0x584A,0x5862,0x5852,0x584B, +0x5967,0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5AB3,0x5AC2,0x5AB2,0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9, +0x5EC8,0x5F12,0x5F59,0x5FAC,0x5FAE,0x611A,0x610F,0x6148, +0x611F,0x60F3,0x611B,0x60F9,0x6101,0x6108,0x614E,0x614C, +0x6144,0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137, +0x6221,0x6222,0x6413,0x643E,0x641E,0x642A,0x642D,0x643D, +0x642C,0x640F,0x641C,0x6414,0x640D,0x6436,0x6416,0x6417, +0x6406,0x656C,0x659F,0x65B0,0x6697,0x6689,0x6687,0x6688, +0x6696,0x6684,0x6698,0x668D,0x6703,0x6994,0x696D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x695A,0x6977,0x6960,0x6954,0x6975,0x6930,0x6982, +0x694A,0x6968,0x696B,0x695E,0x6953,0x6979,0x6986,0x695D, +0x6963,0x695B,0x6B47,0x6B72,0x6BC0,0x6BBF,0x6BD3,0x6BFD, +0x6EA2,0x6EAF,0x6ED3,0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7, +0x6EC5,0x6EA5,0x6E98,0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96, +0x6E9C,0x6EC4,0x6ED4,0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159, +0x7169,0x7164,0x7149,0x7167,0x715C,0x716C,0x7166,0x714C, +0x7165,0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337, +0x7345,0x733F,0x733E,0x746F,0x745A,0x7455,0x745F,0x745E, +0x7441,0x743F,0x7459,0x745B,0x745C,0x7576,0x7578,0x7600, +0x75F0,0x7601,0x75F2,0x75F1,0x75FA,0x75FF,0x75F4,0x75F3, +0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7779,0x776A,0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE, +0x788E,0x78B0,0x7897,0x7898,0x788C,0x7889,0x787C,0x7891, +0x7893,0x787F,0x797A,0x797F,0x7981,0x842C,0x79BD,0x7A1C, +0x7A1A,0x7A20,0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,0x7B77, +0x7BC0,0x7B60,0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93, +0x7D79,0x7D91,0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A, +0x7F72,0x7FA9,0x7FA8,0x7FA4,0x8056,0x8058,0x8086,0x8084, +0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8179,0x817A,0x8166,0x8205,0x8247,0x8482,0x8477, +0x843D,0x8431,0x8475,0x8466,0x846B,0x8449,0x846C,0x845B, +0x843C,0x8435,0x8461,0x8463,0x8469,0x846D,0x8446,0x865E, +0x865C,0x865F,0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE, +0x86FB,0x8702,0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4, +0x88D9,0x88DC,0x88D8,0x88DD,0x88E1,0x88CA,0x88D5,0x88D2, +0x899C,0x89E3,0x8A6B,0x8A72,0x8A73,0x8A66,0x8A69,0x8A70, +0x8A87,0x8A7C,0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,0x8A62, +0x8A6E,0x8A6C,0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A, +0x8C89,0x8CCA,0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2, +0x8CC5,0x8DE1,0x8DDF,0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA, +0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8F9F,0x8FB2,0x904B,0x904A,0x9053,0x9042,0x9054,0x903C, +0x9055,0x9050,0x9047,0x904F,0x904E,0x904D,0x9051,0x903E, +0x9041,0x9112,0x9117,0x916C,0x916A,0x9169,0x91C9,0x9237, +0x9257,0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264, +0x9251,0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A, +0x9598,0x9698,0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA, +0x96F7,0x96FB,0x96F9,0x96F6,0x9756,0x9774,0x9776,0x9810, +0x9811,0x9813,0x980A,0x9812,0x980C,0x98FC,0x98F4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x98FD,0x98FE,0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9, +0x9E82,0x9F0E,0x9F13,0x9F20,0x50E7,0x50EE,0x50E5,0x50D6, +0x50ED,0x50DA,0x50D5,0x50CF,0x50D1,0x50F1,0x50CE,0x50E9, +0x5162,0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600, +0x561B,0x5617,0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E, +0x55F7,0x5616,0x561F,0x5608,0x5610,0x55F6,0x5718,0x5716, +0x5875,0x587E,0x5883,0x5893,0x588A,0x5879,0x5885,0x587D, +0x58FD,0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6, +0x5AE9,0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7, +0x5BE1,0x5BE5,0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D, +0x5C62,0x5D84,0x5D87,0x5E5B,0x5E63,0x5E55,0x5E57,0x5E54, +0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x613F,0x614B,0x6177,0x6162,0x6163,0x615F,0x615A,0x6158, +0x6175,0x622A,0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F, +0x647A,0x6451,0x6467,0x6434,0x646D,0x647B,0x6572,0x65A1, +0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8,0x6995, +0x69C1,0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB,0x69AB, +0x69B4,0x69D0,0x69CD,0x69AD,0x69CC,0x69A6,0x69C3,0x69A3, +0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,0x6EFE,0x6F13,0x6EF4, +0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6EFF,0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23, +0x6F15,0x6F2B,0x6F2F,0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2, +0x6ECC,0x6EF7,0x7194,0x7199,0x717D,0x718A,0x7184,0x7192, +0x723E,0x7292,0x7296,0x7344,0x7350,0x7464,0x7463,0x746A, +0x7470,0x746D,0x7504,0x7591,0x7627,0x760D,0x760B,0x7609, +0x7613,0x76E1,0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1, +0x789F,0x78A7,0x78B3,0x78A9,0x78A3,0x798E,0x798F,0x798D, +0x7A2E,0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1,0x7B95, +0x7B8B,0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8,0x7B87, +0x7B84,0x7CB9,0x7CBD,0x7CBE,0x7DBB,0x7DB0,0x7D9C,0x7DBD, +0x7DBE,0x7DA0,0x7DCA,0x7DB4,0x7DB2,0x7DB1,0x7DBA,0x7DA2, +0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7F70,0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150, +0x8180,0x818F,0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA, +0x8207,0x8214,0x821E,0x824B,0x84C9,0x84BF,0x84C6,0x84C4, +0x8499,0x849E,0x84B2,0x849C,0x84CB,0x84B8,0x84C0,0x84D3, +0x8490,0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722, +0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902, +0x88F4,0x88F9,0x88F8,0x88FD,0x88E8,0x891A,0x88EF,0x8AA6, +0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93,0x8AA4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8AAA,0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7, +0x8C6A,0x8C8D,0x8C8C,0x8CD3,0x8CD1,0x8CD2,0x8D6B,0x8D99, +0x8D95,0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,0x8FA3,0x9060, +0x9058,0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B, +0x9119,0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278, +0x9280,0x9285,0x9298,0x9296,0x927B,0x9293,0x929C,0x92A8, +0x927C,0x9291,0x95A1,0x95A8,0x95A9,0x95A3,0x95A5,0x95A4, +0x9699,0x969C,0x969B,0x96CC,0x96D2,0x9700,0x977C,0x9785, +0x97F6,0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905,0x990C, +0x9909,0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42,0x9CF4, +0x9CF6,0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104,0x5100,0x50FB, +0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0,0x53B2,0x562E, +0x563B,0x5639,0x5632,0x563F,0x5634,0x5629,0x5653,0x564E, +0x5657,0x5674,0x5636,0x562F,0x5630,0x5880,0x589F,0x589E, +0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D,0x5B09,0x5AFB, +0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC,0x5BE9,0x5BEB, +0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F,0x5E61,0x5EE2, +0x5EDA,0x5EDF,0x5EDD,0x5EE3,0x5EE0,0x5F48,0x5F71,0x5FB7, +0x5FB5,0x6176,0x6167,0x616E,0x615D,0x6155,0x6182, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB, +0x618E,0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469, +0x646F,0x6479,0x649E,0x64B2,0x6488,0x6490,0x64B0,0x64A5, +0x6493,0x6495,0x64A9,0x6492,0x64AE,0x64AD,0x64AB,0x649A, +0x64AC,0x6499,0x64A2,0x64B3,0x6575,0x6577,0x6578,0x66AE, +0x66AB,0x66B4,0x66B1,0x6A23,0x6A1F,0x69E8,0x6A01,0x6A1E, +0x6A19,0x69FD,0x6A21,0x6A13,0x6A0A,0x69F3,0x6A02,0x6A05, +0x69ED,0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5,0x6BC6,0x6F3F, +0x6F7C,0x6F84,0x6F51,0x6F66,0x6F54,0x6F86,0x6F6D,0x6F5B, +0x6F78,0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64,0x6F97,0x6F58, +0x6ED5,0x6F6F,0x6F60,0x6F5F,0x719F,0x71AC,0x71B1,0x71A8, +0x7256,0x729B,0x734E,0x7357,0x7469,0x748B,0x7483, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624,0x7626, +0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787,0x778C, +0x7791,0x778B,0x78CB,0x78C5,0x78BA,0x78CA,0x78BE,0x78D5, +0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40,0x7A3D,0x7A37,0x7A3B, +0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4,0x7BB4,0x7BC6,0x7BC7, +0x7BC1,0x7BA0,0x7BCC,0x7CCA,0x7DE0,0x7DF4,0x7DEF,0x7DFB, +0x7DD8,0x7DEC,0x7DDD,0x7DE8,0x7DE3,0x7DDA,0x7DDE,0x7DE9, +0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75,0x7F77,0x7FAF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0,0x819A, +0x8198,0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D,0x8513, +0x8511,0x8523,0x8521,0x8514,0x84EC,0x8525,0x84FF,0x8506, +0x8782,0x8774,0x8776,0x8760,0x8766,0x8778,0x8768,0x8759, +0x8757,0x874C,0x8753,0x885B,0x885D,0x8910,0x8907,0x8912, +0x8913,0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4,0x8A95, +0x8ACB,0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF,0x8AB0,0x8AD6, +0x8ACD,0x8AB6,0x8AB9,0x8ADB,0x8C4C,0x8C4E,0x8C6C,0x8CE0, +0x8CDE,0x8CE6,0x8CE4,0x8CEC,0x8CED,0x8CE2,0x8CE3,0x8CDC, +0x8CEA,0x8CE1,0x8D6D,0x8D9F,0x8DA3,0x8E2B,0x8E10,0x8E1D, +0x8E22,0x8E0F,0x8E29,0x8E1F,0x8E21,0x8E1E,0x8EBA,0x8F1D, +0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C,0x8F1E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077,0x9130,0x912D, +0x9127,0x9131,0x9187,0x9189,0x918B,0x9183,0x92C5,0x92BB, +0x92B7,0x92EA,0x92AC,0x92E4,0x92C1,0x92B3,0x92BC,0x92D2, +0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,0x9704,0x9706,0x9707, +0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B,0x981C, +0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0,0x99DF, +0x99DB,0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7,0x9AEE,0x9AEF, +0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F,0x9D06,0x9D09, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52,0x5112, +0x5118,0x5114,0x5110,0x5115,0x5180,0x51AA,0x51DD,0x5291, +0x5293,0x52F3,0x5659,0x566B,0x5679,0x5669,0x5664,0x5678, +0x566A,0x5668,0x5665,0x5671,0x566F,0x566C,0x5662,0x5676, +0x58C1,0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34,0x5B78, +0x5BF0,0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A,0x61CD, +0x61B6,0x61BE,0x61CA,0x61C8,0x6230,0x64C5,0x64C1,0x64CB, +0x64BB,0x64BC,0x64DA,0x64C4,0x64C7,0x64C2,0x64CD,0x64BF, +0x64D2,0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9,0x66C4, +0x66C7,0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B,0x6A58, +0x6A39,0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47,0x6A35,0x6A5F, +0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0,0x6FB9,0x6FB6, +0x6FA6,0x6FA0,0x6FB4,0x71BE,0x71C9,0x71D0,0x71D2,0x71C8, +0x71D5,0x71B9,0x71CE,0x71D9,0x71DC,0x71C3,0x71C4,0x7368, +0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2,0x750C,0x750D, +0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0,0x779E,0x779F, +0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6,0x7A4D,0x7A4E, +0x7A46,0x7A4C,0x7A4B,0x7ABA,0x7BD9,0x7C11,0x7BC9,0x7BE4, +0x7BDB,0x7BE1,0x7BE9,0x7BE6,0x7CD5,0x7CD6,0x7E0A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09, +0x7E10,0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3, +0x81A9,0x81A8,0x81FB,0x8208,0x8258,0x8259,0x854A,0x8559, +0x8548,0x8568,0x8569,0x8543,0x8549,0x856D,0x856A,0x855E, +0x8783,0x879F,0x879E,0x87A2,0x878D,0x8861,0x892A,0x8932, +0x8925,0x892B,0x8921,0x89AA,0x89A6,0x8AE6,0x8AFA,0x8AEB, +0x8AF1,0x8B00,0x8ADC,0x8AE7,0x8AEE,0x8AFE,0x8B01,0x8B02, +0x8AF7,0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B,0x8C6D,0x8C93, +0x8CF4,0x8E44,0x8E31,0x8E34,0x8E42,0x8E39,0x8E35,0x8F3B, +0x8F2F,0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075,0x9074,0x9078, +0x9072,0x907C,0x907A,0x9134,0x9192,0x9320,0x9336,0x92F8, +0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB,0x96A7, +0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D,0x9713, +0x970F,0x975B,0x975C,0x9766,0x9798,0x9830,0x9838,0x983B, +0x9837,0x982D,0x9839,0x9824,0x9910,0x9928,0x991E,0x991B, +0x9921,0x991A,0x99ED,0x99E2,0x99F1,0x9AB8,0x9ABC,0x9AFB, +0x9AED,0x9B28,0x9B91,0x9D15,0x9D23,0x9D26,0x9D28,0x9D12, +0x9D1B,0x9ED8,0x9ED4,0x9F8D,0x9F9C,0x512A,0x511F,0x5121, +0x5132,0x52F5,0x568E,0x5680,0x5690,0x5685,0x5687, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30,0x5B2A, +0x5B24,0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD,0x5DB8, +0x5E6B,0x5F4C,0x5FBD,0x61C9,0x61C2,0x61C7,0x61E6,0x61CB, +0x6232,0x6234,0x64CE,0x64CA,0x64D8,0x64E0,0x64F0,0x64E6, +0x64EC,0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9,0x66D6, +0x6A80,0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3,0x6A7E, +0x6A97,0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA,0x6C08,0x6FD8, +0x6FF1,0x6FDF,0x6FE0,0x6FDB,0x6FE4,0x6FEB,0x6FEF,0x6F80, +0x6FEC,0x6FE1,0x6FE9,0x6FD5,0x6FEE,0x6FF0,0x71E7,0x71DF, +0x71EE,0x71E6,0x71E5,0x71ED,0x71EC,0x71F4,0x71E0,0x7235, +0x7246,0x7370,0x7372,0x74A9,0x74B0,0x74A6,0x74A8,0x7646, +0x7642,0x764C,0x76EA,0x77B3,0x77AA,0x77B0,0x77AC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4,0x78EF,0x7901, +0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D,0x7BFE,0x7BF7, +0x7C0C,0x7BE0,0x7CE0,0x7CDC,0x7CDE,0x7CE2,0x7CDF,0x7CD9, +0x7CDD,0x7E2E,0x7E3E,0x7E46,0x7E37,0x7E32,0x7E43,0x7E2B, +0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39,0x7E48,0x7E35, +0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071,0x8072,0x8070, +0x806F,0x8073,0x81C6,0x81C3,0x81BA,0x81C2,0x81C0,0x81BF, +0x81BD,0x81C9,0x81BE,0x81E8,0x8209,0x8271,0x85AA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8584,0x857E,0x859C,0x8591,0x8594,0x85AF,0x859B, +0x8587,0x85A8,0x858A,0x8667,0x87C0,0x87D1,0x87B3,0x87D2, +0x87C6,0x87AB,0x87BB,0x87BA,0x87C8,0x87CB,0x893B,0x8936, +0x8944,0x8938,0x893D,0x89AC,0x8B0E,0x8B17,0x8B19,0x8B1B, +0x8B0A,0x8B20,0x8B1D,0x8B04,0x8B10,0x8C41,0x8C3F,0x8C73, +0x8CFA,0x8CFD,0x8CFC,0x8CF8,0x8CFB,0x8DA8,0x8E49,0x8E4B, +0x8E48,0x8E4A,0x8F44,0x8F3E,0x8F42,0x8F45,0x8F3F,0x907F, +0x907D,0x9084,0x9081,0x9082,0x9080,0x9139,0x91A3,0x919E, +0x919C,0x934D,0x9382,0x9328,0x9375,0x934A,0x9365,0x934B, +0x9318,0x937E,0x936C,0x935B,0x9370,0x935A,0x9354,0x95CA, +0x95CB,0x95CC,0x95C8,0x95C6,0x96B1,0x96B8,0x96D6,0x971C, +0x971E,0x97A0,0x97D3,0x9846,0x98B6,0x9935,0x9A01, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x99FF,0x9BAE,0x9BAB,0x9BAA,0x9BAD,0x9D3B,0x9D3F,0x9E8B, +0x9ECF,0x9EDE,0x9EDC,0x9EDD,0x9EDB,0x9F3E,0x9F4B,0x53E2, +0x5695,0x56AE,0x58D9,0x58D8,0x5B38,0x5F5D,0x61E3,0x6233, +0x64F4,0x64F2,0x64FE,0x6506,0x64FA,0x64FB,0x64F7,0x65B7, +0x66DC,0x6726,0x6AB3,0x6AAC,0x6AC3,0x6ABB,0x6AB8,0x6AC2, +0x6AAE,0x6AAF,0x6B5F,0x6B78,0x6BAF,0x7009,0x700B,0x6FFE, +0x7006,0x6FFA,0x7011,0x700F,0x71FB,0x71FC,0x71FE,0x71F8, +0x7377,0x7375,0x74A7,0x74BF,0x7515,0x7656,0x7658, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7652,0x77BD,0x77BF,0x77BB,0x77BC,0x790E,0x79AE, +0x7A61,0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B,0x7C27,0x7C2A, +0x7C1E,0x7C23,0x7C21,0x7CE7,0x7E54,0x7E55,0x7E5E,0x7E5A, +0x7E61,0x7E52,0x7E59,0x7F48,0x7FF9,0x7FFB,0x8077,0x8076, +0x81CD,0x81CF,0x820A,0x85CF,0x85A9,0x85CD,0x85D0,0x85C9, +0x85B0,0x85BA,0x85B9,0x85A6,0x87EF,0x87EC,0x87F2,0x87E0, +0x8986,0x89B2,0x89F4,0x8B28,0x8B39,0x8B2C,0x8B2B,0x8C50, +0x8D05,0x8E59,0x8E63,0x8E66,0x8E64,0x8E5F,0x8E55,0x8EC0, +0x8F49,0x8F4D,0x9087,0x9083,0x9088,0x91AB,0x91AC,0x91D0, +0x9394,0x938A,0x9396,0x93A2,0x93B3,0x93AE,0x93AC,0x93B0, +0x9398,0x939A,0x9397,0x95D4,0x95D6,0x95D0,0x95D5,0x96E2, +0x96DC,0x96D9,0x96DB,0x96DE,0x9724,0x97A3,0x97A6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E,0x9853,0x98BA, +0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E,0x9AC1,0x9B03, +0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA,0x9BC9,0x9BFD,0x9BC8, +0x9BC0,0x9D51,0x9D5D,0x9D60,0x9EE0,0x9F15,0x9F2C,0x5133, +0x56A5,0x58DE,0x58DF,0x58E2,0x5BF5,0x9F90,0x5EEC,0x61F2, +0x61F7,0x61F6,0x61F5,0x6500,0x650F,0x66E0,0x66DD,0x6AE5, +0x6ADD,0x6ADA,0x6AD3,0x701B,0x701F,0x7028,0x701A,0x701D, +0x7015,0x7018,0x7206,0x720D,0x7258,0x72A2,0x7378, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x737A,0x74BD,0x74CA,0x74E3,0x7587,0x7586,0x765F, +0x7661,0x77C7,0x7919,0x79B1,0x7A6B,0x7A69,0x7C3E,0x7C3F, +0x7C38,0x7C3D,0x7C37,0x7C40,0x7E6B,0x7E6D,0x7E79,0x7E69, +0x7E6A,0x7F85,0x7E73,0x7FB6,0x7FB9,0x7FB8,0x81D8,0x85E9, +0x85DD,0x85EA,0x85D5,0x85E4,0x85E5,0x85F7,0x87FB,0x8805, +0x880D,0x87F9,0x87FE,0x8960,0x895F,0x8956,0x895E,0x8B41, +0x8B5C,0x8B58,0x8B49,0x8B5A,0x8B4E,0x8B4F,0x8B46,0x8B59, +0x8D08,0x8D0A,0x8E7C,0x8E72,0x8E87,0x8E76,0x8E6C,0x8E7A, +0x8E74,0x8F54,0x8F4E,0x8FAD,0x908A,0x908B,0x91B1,0x91AE, +0x93E1,0x93D1,0x93DF,0x93C3,0x93C8,0x93DC,0x93DD,0x93D6, +0x93E2,0x93CD,0x93D8,0x93E4,0x93D7,0x93E8,0x95DC,0x96B4, +0x96E3,0x972A,0x9727,0x9761,0x97DC,0x97FB,0x985E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9858,0x985B,0x98BC,0x9945,0x9949,0x9A16,0x9A19,0x9B0D, +0x9BE8,0x9BE7,0x9BD6,0x9BDB,0x9D89,0x9D61,0x9D72,0x9D6A, +0x9D6C,0x9E92,0x9E97,0x9E93,0x9EB4,0x52F8,0x56A8,0x56B7, +0x56B6,0x56B4,0x56BC,0x58E4,0x5B40,0x5B43,0x5B7D,0x5BF6, +0x5DC9,0x61F8,0x61FA,0x6518,0x6514,0x6519,0x66E6,0x6727, +0x6AEC,0x703E,0x7030,0x7032,0x7210,0x737B,0x74CF,0x7662, +0x7665,0x7926,0x792A,0x792C,0x792B,0x7AC7,0x7AF6,0x7C4C, +0x7C43,0x7C4D,0x7CEF,0x7CF0,0x8FAE,0x7E7D,0x7E7C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7E82,0x7F4C,0x8000,0x81DA,0x8266,0x85FB,0x85F9, +0x8611,0x85FA,0x8606,0x860B,0x8607,0x860A,0x8814,0x8815, +0x8964,0x89BA,0x89F8,0x8B70,0x8B6C,0x8B66,0x8B6F,0x8B5F, +0x8B6B,0x8D0F,0x8D0D,0x8E89,0x8E81,0x8E85,0x8E82,0x91B4, +0x91CB,0x9418,0x9403,0x93FD,0x95E1,0x9730,0x98C4,0x9952, +0x9951,0x99A8,0x9A2B,0x9A30,0x9A37,0x9A35,0x9C13,0x9C0D, +0x9E79,0x9EB5,0x9EE8,0x9F2F,0x9F5F,0x9F63,0x9F61,0x5137, +0x5138,0x56C1,0x56C0,0x56C2,0x5914,0x5C6C,0x5DCD,0x61FC, +0x61FE,0x651D,0x651C,0x6595,0x66E9,0x6AFB,0x6B04,0x6AFA, +0x6BB2,0x704C,0x721B,0x72A7,0x74D6,0x74D4,0x7669,0x77D3, +0x7C50,0x7E8F,0x7E8C,0x7FBC,0x8617,0x862D,0x861A,0x8823, +0x8822,0x8821,0x881F,0x896A,0x896C,0x89BD,0x8B74, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8B77,0x8B7D,0x8D13,0x8E8A,0x8E8D,0x8E8B,0x8F5F,0x8FAF, +0x91BA,0x942E,0x9433,0x9435,0x943A,0x9438,0x9432,0x942B, +0x95E2,0x9738,0x9739,0x9732,0x97FF,0x9867,0x9865,0x9957, +0x9A45,0x9A43,0x9A40,0x9A3E,0x9ACF,0x9B54,0x9B51,0x9C2D, +0x9C25,0x9DAF,0x9DB4,0x9DC2,0x9DB8,0x9E9D,0x9EEF,0x9F19, +0x9F5C,0x9F66,0x9F67,0x513C,0x513B,0x56C8,0x56CA,0x56C9, +0x5B7F,0x5DD4,0x5DD2,0x5F4E,0x61FF,0x6524,0x6B0A,0x6B61, +0x7051,0x7058,0x7380,0x74E4,0x758A,0x766E,0x766C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x79B3,0x7C60,0x7C5F,0x807E,0x807D,0x81DF,0x8972, +0x896F,0x89FC,0x8B80,0x8D16,0x8D17,0x8E91,0x8E93,0x8F61, +0x9148,0x9444,0x9451,0x9452,0x973D,0x973E,0x97C3,0x97C1, +0x986B,0x9955,0x9A55,0x9A4D,0x9AD2,0x9B1A,0x9C49,0x9C31, +0x9C3E,0x9C3B,0x9DD3,0x9DD7,0x9F34,0x9F6C,0x9F6A,0x9F94, +0x56CC,0x5DD6,0x6200,0x6523,0x652B,0x652A,0x66EC,0x6B10, +0x74DA,0x7ACA,0x7C64,0x7C63,0x7C65,0x7E93,0x7E96,0x7E94, +0x81E2,0x8638,0x863F,0x8831,0x8B8A,0x9090,0x908F,0x9463, +0x9460,0x9464,0x9768,0x986F,0x995C,0x9A5A,0x9A5B,0x9A57, +0x9AD3,0x9AD4,0x9AD1,0x9C54,0x9C57,0x9C56,0x9DE5,0x9E9F, +0x9EF4,0x56D1,0x58E9,0x652C,0x705E,0x7671,0x7672,0x77D7, +0x7F50,0x7F88,0x8836,0x8839,0x8862,0x8B93,0x8B92, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8B96,0x8277,0x8D1B,0x91C0,0x946A,0x9742,0x9748,0x9744, +0x97C6,0x9870,0x9A5F,0x9B22,0x9B58,0x9C5F,0x9DF9,0x9DFA, +0x9E7C,0x9E7D,0x9F07,0x9F77,0x9F72,0x5EF3,0x6B16,0x7063, +0x7C6C,0x7C6E,0x883B,0x89C0,0x8EA1,0x91C1,0x9472,0x9470, +0x9871,0x995E,0x9AD6,0x9B23,0x9ECC,0x7064,0x77DA,0x8B9A, +0x9477,0x97C9,0x9A62,0x9A65,0x7E9C,0x8B9C,0x8EAA,0x91C5, +0x947D,0x947E,0x947C,0x9C77,0x9C78,0x9EF7,0x8C54,0x947F, +0x9E1A,0x7228,0x9A6A,0x9B31,0x9E1B,0x9E1E,0x7C72, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x30FE,0x309D,0x309E,0x3005,0x3041,0x3042,0x3043, +0x3044,0x3045,0x3046,0x3047,0x3048,0x3049,0x304A,0x304B, +0x304C,0x304D,0x304E,0x304F,0x3050,0x3051,0x3052,0x3053, +0x3054,0x3055,0x3056,0x3057,0x3058,0x3059,0x305A,0x305B, +0x305C,0x305D,0x305E,0x305F,0x3060,0x3061,0x3062,0x3063, +0x3064,0x3065,0x3066,0x3067,0x3068,0x3069,0x306A,0x306B, +0x306C,0x306D,0x306E,0x306F,0x3070,0x3071,0x3072,0x3073, +0x3074,0x3075,0x3076,0x3077,0x3078,0x3079,0x307A,0x307B, +0x307C,0x307D,0x307E,0x307F,0x3080,0x3081,0x3082,0x3083, +0x3084,0x3085,0x3086,0x3087,0x3088,0x3089,0x308A,0x308B, +0x308C,0x308D,0x308E,0x308F,0x3090,0x3091,0x3092,0x3093, +0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF, +0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7, +0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF, +0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7, +0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF, +0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7, +0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF, +0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x30E7,0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED, +0x30EE,0x30EF,0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5, +0x30F6,0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419, +0x041A,0x041B,0x041C,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, +0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, +0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, +0x044F,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466, +0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478, +0x2479,0x247A,0x247B,0x247C,0x247D}; + +/* page 1 0xC940-0xF9DC */ +static const uint16 tab_big5_uni1[]={ +0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47, +0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E, +0x4E2E,0x4E93,0x4EC2,0x4EC9,0x4EC8,0x5198,0x52FC,0x536C, +0x53B9,0x5720,0x5903,0x592C,0x5C10,0x5DFF,0x65E1,0x6BB3, +0x6BCC,0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9, +0x4EE1,0x4EDD,0x4EDA,0x520C,0x531C,0x534C,0x5722,0x5723, +0x5917,0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74,0x5C73, +0x5E04,0x5E80,0x5E82,0x5FC9,0x6209,0x6250,0x6C15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6C36,0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,0x738A, +0x79B8,0x808A,0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14, +0x4EF1,0x4F00,0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22, +0x4F13,0x4F04,0x4EF4,0x4F12,0x51B1,0x5213,0x5209,0x5210, +0x52A6,0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF, +0x572E,0x572A,0x5734,0x593C,0x5980,0x597C,0x5985,0x597B, +0x597E,0x5977,0x597F,0x5B56,0x5C15,0x5C25,0x5C7C,0x5C7A, +0x5C7B,0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,0x5F1A,0x5F74, +0x5FD5,0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266, +0x6262,0x6259,0x6260,0x625A,0x6265,0x65EF,0x65EE,0x673E, +0x6739,0x6738,0x673B,0x673A,0x673F,0x673C,0x6733,0x6C18, +0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6C4C,0x7071,0x725E,0x72B4,0x72B5,0x738E,0x752A,0x767F, +0x7A75,0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D, +0x897E,0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624, +0x9620,0x9623,0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53,0x4F64, +0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58,0x4F2D,0x4F33, +0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E,0x5221,0x52AD, +0x52AE,0x5309,0x5363,0x5372,0x538E,0x538F,0x5430,0x5437, +0x542A,0x5454,0x5445,0x5419,0x541C,0x5425,0x5418, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE, +0x56E7,0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752, +0x5906,0x5940,0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2, +0x5990,0x598F,0x59A7,0x59A1,0x5B8E,0x5B92,0x5C28,0x5C2A, +0x5C8D,0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,0x5C8A,0x5C86, +0x5C93,0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C, +0x5E88,0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1, +0x5FD0,0x5FED,0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4,0x5FE3, +0x5FFA,0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4,0x623A,0x6283, +0x628C,0x628E,0x628F,0x6294,0x6287,0x6271,0x627B,0x627A, +0x6270,0x6281,0x6288,0x6277,0x627D,0x6272,0x6274,0x6537, +0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6759,0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B, +0x6BD0,0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B, +0x6C8F,0x6C71,0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95, +0x6C9C,0x6C66,0x6C73,0x6C65,0x6C7B,0x6C8E,0x7074,0x707A, +0x7263,0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,0x72BA,0x72C5, +0x7395,0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594, +0x7595,0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092, +0x809C,0x8290,0x828F,0x8285,0x828E,0x8291,0x8293, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F, +0x90A1,0x90A5,0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F, +0x962D,0x4E33,0x4F98,0x4F7C,0x4F85,0x4F7D,0x4F80,0x4F87, +0x4F76,0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,0x4F97,0x4F6A, +0x4F9A,0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E, +0x4F92,0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE, +0x5235,0x5232,0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B, +0x533C,0x5392,0x5394,0x5487,0x547F,0x5481,0x5491,0x5482, +0x5488,0x546B,0x547A,0x547E,0x5465,0x546C,0x5474,0x5466, +0x548D,0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464, +0x56F7,0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770, +0x5776,0x5780,0x5775,0x577B,0x5773,0x5774,0x5762, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF,0x59CE, +0x59B2,0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6,0x59B1, +0x59BD,0x59C0,0x59C8,0x59B4,0x59C7,0x5B62,0x5B65,0x5B93, +0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,0x5CA0,0x5CB5,0x5CAF, +0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA,0x5CA7, +0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14,0x5E19, +0x5F28,0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E,0x5F7D, +0x5FDE,0x5FE5,0x602D,0x6026,0x6019,0x6032,0x600B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6034,0x600A,0x6017,0x6033,0x601A,0x601E,0x602C, +0x6022,0x600D,0x6010,0x602E,0x6013,0x6011,0x600C,0x6009, +0x601C,0x6214,0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA, +0x62B6,0x62CA,0x62AE,0x62B3,0x62AF,0x62BB,0x62A9,0x62B0, +0x62B8,0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604,0x6612, +0x6608,0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD,0x6611, +0x6610,0x66F6,0x670A,0x6785,0x676C,0x678E,0x6792,0x6776, +0x677B,0x6798,0x6786,0x6784,0x6774,0x678D,0x678C,0x677A, +0x679F,0x6791,0x6799,0x6783,0x677D,0x6781,0x6778,0x6779, +0x6794,0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93,0x6CEC, +0x6CEB,0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7,0x6CB7, +0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6CD2,0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,0x6CDE,0x6CC0, +0x6D30,0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1, +0x7094,0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096, +0x7082,0x709A,0x7083,0x726A,0x72D6,0x72CB,0x72D8,0x72C9, +0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1,0x73A4,0x73A1, +0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D,0x74DD,0x74E8, +0x753F,0x7540,0x753E,0x758C,0x7598,0x76AF,0x76F3,0x76F1, +0x76F0,0x76F5,0x77F8,0x77FC,0x77F9,0x77FB,0x77FA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB, +0x7C75,0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5, +0x80AD,0x8220,0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B, +0x82B5,0x82A7,0x82AE,0x82BC,0x829E,0x82BA,0x82B4,0x82A8, +0x82A1,0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,0x82A2,0x8670, +0x866F,0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD, +0x8FD6,0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0, +0x9639,0x963D,0x963C,0x963A,0x9643,0x4FCD,0x4FC5,0x4FD3, +0x4FB2,0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC,0x4FD9,0x4FBB, +0x4FB3,0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0,0x4FB9,0x4FEC, +0x5244,0x5249,0x52C0,0x52C2,0x533D,0x537C,0x5397,0x5396, +0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5,0x54C6, +0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE,0x54B0, +0x57B5,0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D,0x579B, +0x5794,0x5798,0x578F,0x5799,0x57A5,0x579A,0x5795,0x58F4, +0x590D,0x5953,0x59E1,0x59DE,0x59EE,0x5A00,0x59F1,0x59DD, +0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7,0x59DB, +0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED,0x5BA8, +0x5C4C,0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB,0x5CDB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6,0x5CD3, +0x5CD4,0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8,0x5DF9, +0x5E21,0x5E22,0x5E23,0x5E20,0x5E24,0x5EB0,0x5EA4,0x5EA2, +0x5E9B,0x5EA3,0x5EA5,0x5F07,0x5F2E,0x5F56,0x5F86,0x6037, +0x6039,0x6054,0x6072,0x605E,0x6045,0x6053,0x6047,0x6049, +0x605B,0x604C,0x6040,0x6042,0x605F,0x6024,0x6044,0x6058, +0x6066,0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B,0x62F5, +0x630E,0x6303,0x62EB,0x62F9,0x630F,0x630C,0x62F8,0x62F6, +0x6300,0x6313,0x6314,0x62FA,0x6315,0x62FB,0x62F0,0x6541, +0x6543,0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635,0x661C, +0x6626,0x6622,0x6633,0x662B,0x663A,0x661D,0x6634,0x6639, +0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8,0x67BA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7,0x67C5,0x67EB, +0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7,0x67F6,0x67EE, +0x67E3,0x67C2,0x67B9,0x67CE,0x67E7,0x67F0,0x67B2,0x67FC, +0x67C6,0x67ED,0x67CC,0x67AE,0x67E6,0x67DB,0x67FA,0x67C9, +0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82,0x6B84,0x6BB6, +0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28,0x6D34,0x6D2D, +0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA,0x6D33,0x6D04, +0x6D19,0x6D3A,0x6D1A,0x6D11,0x6D00,0x6D1D,0x6D42, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,0x6D40,0x6D07, +0x6D20,0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F, +0x70BE,0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241, +0x7249,0x724A,0x726C,0x7270,0x7273,0x726E,0x72CA,0x72E4, +0x72E8,0x72EB,0x72DF,0x72EA,0x72E6,0x72E3,0x7385,0x73CC, +0x73C2,0x73C8,0x73C5,0x73B9,0x73B6,0x73B5,0x73B4,0x73EB, +0x73BF,0x73C7,0x73BE,0x73C3,0x73C6,0x73B8,0x73CB,0x74EC, +0x74EE,0x752E,0x7547,0x7548,0x75A7,0x75AA,0x7679,0x76C4, +0x7708,0x7703,0x7704,0x7705,0x770A,0x76F7,0x76FB,0x76FA, +0x77E7,0x77E8,0x7806,0x7811,0x7812,0x7805,0x7810,0x780F, +0x780E,0x7809,0x7803,0x7813,0x794A,0x794C,0x794B,0x7945, +0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,0x7C78,0x7C79,0x7C7F, +0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91,0x7F8D, +0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8,0x80C7, +0x80E0,0x80D1,0x80C8,0x80C2,0x80D0,0x80C5,0x80E3,0x80D9, +0x80DC,0x80CA,0x80D5,0x80C9,0x80CF,0x80D7,0x80E6,0x80CD, +0x81FF,0x8221,0x8294,0x82D9,0x82FE,0x82F9,0x8307,0x82E8, +0x8300,0x82D5,0x833A,0x82EB,0x82D6,0x82F4,0x82EC,0x82E1, +0x82F2,0x82F5,0x830C,0x82FB,0x82F6,0x82F0,0x82EA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677,0x8674, +0x867C,0x8673,0x8841,0x884E,0x8867,0x886A,0x8869,0x89D3, +0x8A04,0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0,0x90F1, +0x90BD,0x90BF,0x90D5,0x90C5,0x90BE,0x90C7,0x90CB,0x90C8, +0x91D4,0x91D3,0x9654,0x964F,0x9651,0x9653,0x964A,0x964E, +0x501E,0x5005,0x5007,0x5013,0x5022,0x5030,0x501B,0x4FF5, +0x4FF4,0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017,0x501C, +0x5020,0x5027,0x5035,0x502F,0x5031,0x500E,0x515A,0x5194, +0x5193,0x51CA,0x51C4,0x51C5,0x51C8,0x51CE,0x5261,0x525A, +0x5252,0x525E,0x525F,0x5255,0x5262,0x52CD,0x530E,0x539E, +0x5526,0x54E2,0x5517,0x5512,0x54E7,0x54F3,0x54E4,0x551A, +0x54FF,0x5504,0x5508,0x54EB,0x5511,0x5505,0x54F1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E,0x5503,0x550B, +0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2,0x57BA,0x57C6, +0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7,0x57D0,0x57B9, +0x57C1,0x590E,0x594A,0x5A19,0x5A16,0x5A2D,0x5A2E,0x5A15, +0x5A0F,0x5A17,0x5A0A,0x5A1E,0x5A33,0x5B6C,0x5BA7,0x5BAD, +0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF,0x5CEE,0x5CF1, +0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8,0x5EAE,0x5EAA, +0x5EAC,0x5F33,0x5F30,0x5F67,0x605D,0x605A,0x6067, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6041,0x60A2,0x6088,0x6080,0x6092,0x6081,0x609D, +0x6083,0x6095,0x609B,0x6097,0x6087,0x609C,0x608E,0x6219, +0x6246,0x62F2,0x6310,0x6356,0x632C,0x6344,0x6345,0x6336, +0x6343,0x63E4,0x6339,0x634B,0x634A,0x633C,0x6329,0x6341, +0x6334,0x6358,0x6354,0x6359,0x632D,0x6347,0x6333,0x635A, +0x6351,0x6338,0x6357,0x6340,0x6348,0x654A,0x6546,0x65C6, +0x65C3,0x65C4,0x65C2,0x664A,0x665F,0x6647,0x6651,0x6712, +0x6713,0x681F,0x681A,0x6849,0x6832,0x6833,0x683B,0x684B, +0x684F,0x6816,0x6831,0x681C,0x6835,0x682B,0x682D,0x682F, +0x684E,0x6844,0x6834,0x681D,0x6812,0x6814,0x6826,0x6828, +0x682E,0x684D,0x683A,0x6825,0x6820,0x6B2C,0x6B2F,0x6B2D, +0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,0x6BE6,0x6BE4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25,0x6D7A,0x6D63,0x6D64, +0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58,0x6D62,0x6D6D,0x6D6F, +0x6D91,0x6D8D,0x6DEF,0x6D7F,0x6D86,0x6D5E,0x6D67,0x6D60, +0x6D97,0x6D70,0x6D7C,0x6D5F,0x6D82,0x6D98,0x6D2F,0x6D68, +0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16,0x6D83,0x6D7B,0x6D7D, +0x6D75,0x6D90,0x70DC,0x70D3,0x70D1,0x70DD,0x70CB,0x7F39, +0x70E2,0x70D7,0x70D2,0x70DE,0x70E0,0x70D4,0x70CD,0x70C5, +0x70C6,0x70C7,0x70DA,0x70CE,0x70E1,0x7242,0x7278, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7277,0x7276,0x7300,0x72FA,0x72F4,0x72FE,0x72F6, +0x72F3,0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6,0x73BC, +0x73E7,0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4,0x73DD, +0x73DA,0x73D7,0x73D8,0x73E8,0x74DE,0x74DF,0x74F4,0x74F5, +0x7521,0x755B,0x755F,0x75B0,0x75C1,0x75BB,0x75C4,0x75C0, +0x75BF,0x75B6,0x75BA,0x768A,0x76C9,0x771D,0x771B,0x7710, +0x7713,0x7712,0x7723,0x7711,0x7715,0x7719,0x771A,0x7722, +0x7727,0x7823,0x782C,0x7822,0x7835,0x782F,0x7828,0x782E, +0x782B,0x7821,0x7829,0x7833,0x782A,0x7831,0x7954,0x795B, +0x794F,0x795C,0x7953,0x7952,0x7951,0x79EB,0x79EC,0x79E0, +0x79EE,0x79ED,0x79EA,0x79DC,0x79DE,0x79DD,0x7A86,0x7A89, +0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7B04,0x7B13,0x7B05,0x7B0F,0x7B08,0x7B0A,0x7B0E,0x7B09, +0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88,0x7C8D,0x7C85, +0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16,0x7D13,0x7D1F, +0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61,0x7F5E,0x7F60,0x7F5D, +0x7F5B,0x7F96,0x7F92,0x7FC3,0x7FC2,0x7FC0,0x8016,0x803E, +0x8039,0x80FA,0x80F2,0x80F9,0x80F5,0x8101,0x80FB,0x8100, +0x8201,0x822F,0x8225,0x8333,0x832D,0x8344,0x8319,0x8351, +0x8325,0x8356,0x833F,0x8341,0x8326,0x831C,0x8322, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8342,0x834E,0x831B,0x832A,0x8308,0x833C,0x834D, +0x8316,0x8324,0x8320,0x8337,0x832F,0x8329,0x8347,0x8345, +0x834C,0x8353,0x831E,0x832C,0x834B,0x8327,0x8348,0x8653, +0x8652,0x86A2,0x86A8,0x8696,0x868D,0x8691,0x869E,0x8687, +0x8697,0x8686,0x868B,0x869A,0x8685,0x86A5,0x8699,0x86A1, +0x86A7,0x8695,0x8698,0x868E,0x869D,0x8690,0x8694,0x8843, +0x8844,0x886D,0x8875,0x8876,0x8872,0x8880,0x8871,0x887F, +0x886F,0x8883,0x887E,0x8874,0x887C,0x8A12,0x8C47,0x8C57, +0x8C7B,0x8CA4,0x8CA3,0x8D76,0x8D78,0x8DB5,0x8DB7,0x8DB6, +0x8ED1,0x8ED3,0x8FFE,0x8FF5,0x9002,0x8FFF,0x8FFB,0x9004, +0x8FFC,0x8FF6,0x90D6,0x90E0,0x90D9,0x90DA,0x90E3,0x90DF, +0x90E5,0x90D8,0x90DB,0x90D7,0x90DC,0x90E4,0x9150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x914E,0x914F,0x91D5,0x91E2,0x91DA,0x965C,0x965F,0x96BC, +0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070,0x506A,0x5061,0x505E, +0x5060,0x5053,0x504B,0x505D,0x5072,0x5048,0x504D,0x5041, +0x505B,0x504A,0x5062,0x5015,0x5045,0x505F,0x5069,0x506B, +0x5063,0x5064,0x5046,0x5040,0x506E,0x5073,0x5057,0x5051, +0x51D0,0x526B,0x526D,0x526C,0x526E,0x52D6,0x52D3,0x532D, +0x539C,0x5575,0x5576,0x553C,0x554D,0x5550,0x5534,0x552A, +0x5551,0x5562,0x5536,0x5535,0x5530,0x5552,0x5545, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x550C,0x5532,0x5565,0x554E,0x5539,0x5548,0x552D, +0x553B,0x5540,0x554B,0x570A,0x5707,0x57FB,0x5814,0x57E2, +0x57F6,0x57DC,0x57F4,0x5800,0x57ED,0x57FD,0x5808,0x57F8, +0x580B,0x57F3,0x57CF,0x5807,0x57EE,0x57E3,0x57F2,0x57E5, +0x57EC,0x57E1,0x580E,0x57FC,0x5810,0x57E7,0x5801,0x580C, +0x57F1,0x57E9,0x57F0,0x580D,0x5804,0x595C,0x5A60,0x5A58, +0x5A55,0x5A67,0x5A5E,0x5A38,0x5A35,0x5A6D,0x5A50,0x5A5F, +0x5A65,0x5A6C,0x5A53,0x5A64,0x5A57,0x5A43,0x5A5D,0x5A52, +0x5A44,0x5A5B,0x5A48,0x5A8E,0x5A3E,0x5A4D,0x5A39,0x5A4C, +0x5A70,0x5A69,0x5A47,0x5A51,0x5A56,0x5A42,0x5A5C,0x5B72, +0x5B6E,0x5BC1,0x5BC0,0x5C59,0x5D1E,0x5D0B,0x5D1D,0x5D1A, +0x5D20,0x5D0C,0x5D28,0x5D0D,0x5D26,0x5D25,0x5D0F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5D30,0x5D12,0x5D23,0x5D1F,0x5D2E,0x5E3E,0x5E34,0x5EB1, +0x5EB4,0x5EB9,0x5EB2,0x5EB3,0x5F36,0x5F38,0x5F9B,0x5F96, +0x5F9F,0x608A,0x6090,0x6086,0x60BE,0x60B0,0x60BA,0x60D3, +0x60D4,0x60CF,0x60E4,0x60D9,0x60DD,0x60C8,0x60B1,0x60DB, +0x60B7,0x60CA,0x60BF,0x60C3,0x60CD,0x60C0,0x6332,0x6365, +0x638A,0x6382,0x637D,0x63BD,0x639E,0x63AD,0x639D,0x6397, +0x63AB,0x638E,0x636F,0x6387,0x6390,0x636E,0x63AF,0x6375, +0x639C,0x636D,0x63AE,0x637C,0x63A4,0x633B,0x639F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6378,0x6385,0x6381,0x6391,0x638D,0x6370,0x6553, +0x65CD,0x6665,0x6661,0x665B,0x6659,0x665C,0x6662,0x6718, +0x6879,0x6887,0x6890,0x689C,0x686D,0x686E,0x68AE,0x68AB, +0x6956,0x686F,0x68A3,0x68AC,0x68A9,0x6875,0x6874,0x68B2, +0x688F,0x6877,0x6892,0x687C,0x686B,0x6872,0x68AA,0x6880, +0x6871,0x687E,0x689B,0x6896,0x688B,0x68A0,0x6889,0x68A4, +0x6878,0x687B,0x6891,0x688C,0x688A,0x687D,0x6B36,0x6B33, +0x6B37,0x6B38,0x6B91,0x6B8F,0x6B8D,0x6B8E,0x6B8C,0x6C2A, +0x6DC0,0x6DAB,0x6DB4,0x6DB3,0x6E74,0x6DAC,0x6DE9,0x6DE2, +0x6DB7,0x6DF6,0x6DD4,0x6E00,0x6DC8,0x6DE0,0x6DDF,0x6DD6, +0x6DBE,0x6DE5,0x6DDC,0x6DDD,0x6DDB,0x6DF4,0x6DCA,0x6DBD, +0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6DD0,0x6DF2,0x6DD3,0x6DFD,0x6DD7,0x6DCD,0x6DE3,0x6DBB, +0x70FA,0x710D,0x70F7,0x7117,0x70F4,0x710C,0x70F0,0x7104, +0x70F3,0x7110,0x70FC,0x70FF,0x7106,0x7113,0x7100,0x70F8, +0x70F6,0x710B,0x7102,0x710E,0x727E,0x727B,0x727C,0x727F, +0x731D,0x7317,0x7307,0x7311,0x7318,0x730A,0x7308,0x72FF, +0x730F,0x731E,0x7388,0x73F6,0x73F8,0x73F5,0x7404,0x7401, +0x73FD,0x7407,0x7400,0x73FA,0x73FC,0x73FF,0x740C,0x740B, +0x73F4,0x7408,0x7564,0x7563,0x75CE,0x75D2,0x75CF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x75CB,0x75CC,0x75D1,0x75D0,0x768F,0x7689,0x76D3, +0x7739,0x772F,0x772D,0x7731,0x7732,0x7734,0x7733,0x773D, +0x7725,0x773B,0x7735,0x7848,0x7852,0x7849,0x784D,0x784A, +0x784C,0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796A, +0x7963,0x796B,0x7961,0x79BB,0x79FA,0x79F8,0x79F6,0x79F7, +0x7A8F,0x7A94,0x7A90,0x7B35,0x7B47,0x7B34,0x7B25,0x7B30, +0x7B22,0x7B24,0x7B33,0x7B18,0x7B2A,0x7B1D,0x7B31,0x7B2B, +0x7B2D,0x7B2F,0x7B32,0x7B38,0x7B1A,0x7B23,0x7C94,0x7C98, +0x7C96,0x7CA3,0x7D35,0x7D3D,0x7D38,0x7D36,0x7D3A,0x7D45, +0x7D2C,0x7D29,0x7D41,0x7D47,0x7D3E,0x7D3F,0x7D4A,0x7D3B, +0x7D28,0x7F63,0x7F95,0x7F9C,0x7F9D,0x7F9B,0x7FCA,0x7FCB, +0x7FCD,0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x801E,0x801B,0x8047,0x8043,0x8048,0x8118,0x8125,0x8119, +0x811B,0x812D,0x811F,0x812C,0x811E,0x8121,0x8115,0x8127, +0x811D,0x8122,0x8211,0x8238,0x8233,0x823A,0x8234,0x8232, +0x8274,0x8390,0x83A3,0x83A8,0x838D,0x837A,0x8373,0x83A4, +0x8374,0x838F,0x8381,0x8395,0x8399,0x8375,0x8394,0x83A9, +0x837D,0x8383,0x838C,0x839D,0x839B,0x83AA,0x838B,0x837E, +0x83A5,0x83AF,0x8388,0x8397,0x83B0,0x837F,0x83A6,0x8387, +0x83AE,0x8376,0x839A,0x8659,0x8656,0x86BF,0x86B7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x86C2,0x86C1,0x86C5,0x86BA,0x86B0,0x86C8,0x86B9, +0x86B3,0x86B8,0x86CC,0x86B4,0x86BB,0x86BC,0x86C3,0x86BD, +0x86BE,0x8852,0x8889,0x8895,0x88A8,0x88A2,0x88AA,0x889A, +0x8891,0x88A1,0x889F,0x8898,0x88A7,0x8899,0x889B,0x8897, +0x88A4,0x88AC,0x888C,0x8893,0x888E,0x8982,0x89D6,0x89D9, +0x89D5,0x8A30,0x8A27,0x8A2C,0x8A1E,0x8C39,0x8C3B,0x8C5C, +0x8C5D,0x8C7D,0x8CA5,0x8D7D,0x8D7B,0x8D79,0x8DBC,0x8DC2, +0x8DB9,0x8DBF,0x8DC1,0x8ED8,0x8EDE,0x8EDD,0x8EDC,0x8ED7, +0x8EE0,0x8EE1,0x9024,0x900B,0x9011,0x901C,0x900C,0x9021, +0x90EF,0x90EA,0x90F0,0x90F4,0x90F2,0x90F3,0x90D4,0x90EB, +0x90EC,0x90E9,0x9156,0x9158,0x915A,0x9153,0x9155,0x91EC, +0x91F4,0x91F1,0x91F3,0x91F8,0x91E4,0x91F9,0x91EA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x91EB,0x91F7,0x91E8,0x91EE,0x957A,0x9586,0x9588,0x967C, +0x966D,0x966B,0x9671,0x966F,0x96BF,0x976A,0x9804,0x98E5, +0x9997,0x509B,0x5095,0x5094,0x509E,0x508B,0x50A3,0x5083, +0x508C,0x508E,0x509D,0x5068,0x509C,0x5092,0x5082,0x5087, +0x515F,0x51D4,0x5312,0x5311,0x53A4,0x53A7,0x5591,0x55A8, +0x55A5,0x55AD,0x5577,0x5645,0x55A2,0x5593,0x5588,0x558F, +0x55B5,0x5581,0x55A3,0x5592,0x55A4,0x557D,0x558C,0x55A6, +0x557F,0x5595,0x55A1,0x558E,0x570C,0x5829,0x5837, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5819,0x581E,0x5827,0x5823,0x5828,0x57F5,0x5848, +0x5825,0x581C,0x581B,0x5833,0x583F,0x5836,0x582E,0x5839, +0x5838,0x582D,0x582C,0x583B,0x5961,0x5AAF,0x5A94,0x5A9F, +0x5A7A,0x5AA2,0x5A9E,0x5A78,0x5AA6,0x5A7C,0x5AA5,0x5AAC, +0x5A95,0x5AAE,0x5A37,0x5A84,0x5A8A,0x5A97,0x5A83,0x5A8B, +0x5AA9,0x5A7B,0x5A7D,0x5A8C,0x5A9C,0x5A8F,0x5A93,0x5A9D, +0x5BEA,0x5BCD,0x5BCB,0x5BD4,0x5BD1,0x5BCA,0x5BCE,0x5C0C, +0x5C30,0x5D37,0x5D43,0x5D6B,0x5D41,0x5D4B,0x5D3F,0x5D35, +0x5D51,0x5D4E,0x5D55,0x5D33,0x5D3A,0x5D52,0x5D3D,0x5D31, +0x5D59,0x5D42,0x5D39,0x5D49,0x5D38,0x5D3C,0x5D32,0x5D36, +0x5D40,0x5D45,0x5E44,0x5E41,0x5F58,0x5FA6,0x5FA5,0x5FAB, +0x60C9,0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x60F2,0x610A,0x6116,0x6105,0x60F5,0x6113,0x60F8,0x60FC, +0x60FE,0x60C1,0x6103,0x6118,0x611D,0x6110,0x60FF,0x6104, +0x610B,0x624A,0x6394,0x63B1,0x63B0,0x63CE,0x63E5,0x63E8, +0x63EF,0x63C3,0x649D,0x63F3,0x63CA,0x63E0,0x63F6,0x63D5, +0x63F2,0x63F5,0x6461,0x63DF,0x63BE,0x63DD,0x63DC,0x63C4, +0x63D8,0x63D3,0x63C2,0x63C7,0x63CC,0x63CB,0x63C8,0x63F0, +0x63D7,0x63D9,0x6532,0x6567,0x656A,0x6564,0x655C,0x6568, +0x6565,0x658C,0x659D,0x659E,0x65AE,0x65D0,0x65D2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x667C,0x666C,0x667B,0x6680,0x6671,0x6679,0x666A, +0x6672,0x6701,0x690C,0x68D3,0x6904,0x68DC,0x692A,0x68EC, +0x68EA,0x68F1,0x690F,0x68D6,0x68F7,0x68EB,0x68E4,0x68F6, +0x6913,0x6910,0x68F3,0x68E1,0x6907,0x68CC,0x6908,0x6970, +0x68B4,0x6911,0x68EF,0x68C6,0x6914,0x68F8,0x68D0,0x68FD, +0x68FC,0x68E8,0x690B,0x690A,0x6917,0x68CE,0x68C8,0x68DD, +0x68DE,0x68E6,0x68F4,0x68D1,0x6906,0x68D4,0x68E9,0x6915, +0x6925,0x68C7,0x6B39,0x6B3B,0x6B3F,0x6B3C,0x6B94,0x6B97, +0x6B99,0x6B95,0x6BBD,0x6BF0,0x6BF2,0x6BF3,0x6C30,0x6DFC, +0x6E46,0x6E47,0x6E1F,0x6E49,0x6E88,0x6E3C,0x6E3D,0x6E45, +0x6E62,0x6E2B,0x6E3F,0x6E41,0x6E5D,0x6E73,0x6E1C,0x6E33, +0x6E4B,0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6E68,0x6E5C,0x6E61,0x6E31,0x6E28,0x6E60,0x6E71,0x6E6B, +0x6E39,0x6E22,0x6E30,0x6E53,0x6E65,0x6E27,0x6E78,0x6E64, +0x6E77,0x6E55,0x6E79,0x6E52,0x6E66,0x6E35,0x6E36,0x6E5A, +0x7120,0x711E,0x712F,0x70FB,0x712E,0x7131,0x7123,0x7125, +0x7122,0x7132,0x711F,0x7128,0x713A,0x711B,0x724B,0x725A, +0x7288,0x7289,0x7286,0x7285,0x728B,0x7312,0x730B,0x7330, +0x7322,0x7331,0x7333,0x7327,0x7332,0x732D,0x7326,0x7323, +0x7335,0x730C,0x742E,0x742C,0x7430,0x742B,0x7416, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x741A,0x7421,0x742D,0x7431,0x7424,0x7423,0x741D, +0x7429,0x7420,0x7432,0x74FB,0x752F,0x756F,0x756C,0x75E7, +0x75DA,0x75E1,0x75E6,0x75DD,0x75DF,0x75E4,0x75D7,0x7695, +0x7692,0x76DA,0x7746,0x7747,0x7744,0x774D,0x7745,0x774A, +0x774E,0x774B,0x774C,0x77DE,0x77EC,0x7860,0x7864,0x7865, +0x785C,0x786D,0x7871,0x786A,0x786E,0x7870,0x7869,0x7868, +0x785E,0x7862,0x7974,0x7973,0x7972,0x7970,0x7A02,0x7A0A, +0x7A03,0x7A0C,0x7A04,0x7A99,0x7AE6,0x7AE4,0x7B4A,0x7B3B, +0x7B44,0x7B48,0x7B4C,0x7B4E,0x7B40,0x7B58,0x7B45,0x7CA2, +0x7C9E,0x7CA8,0x7CA1,0x7D58,0x7D6F,0x7D63,0x7D53,0x7D56, +0x7D67,0x7D6A,0x7D4F,0x7D6D,0x7D5C,0x7D6B,0x7D52,0x7D54, +0x7D69,0x7D51,0x7D5F,0x7D4E,0x7F3E,0x7F3F,0x7F65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7F66,0x7FA2,0x7FA0,0x7FA1,0x7FD7,0x8051,0x804F,0x8050, +0x80FE,0x80D4,0x8143,0x814A,0x8152,0x814F,0x8147,0x813D, +0x814D,0x813A,0x81E6,0x81EE,0x81F7,0x81F8,0x81F9,0x8204, +0x823C,0x823D,0x823F,0x8275,0x833B,0x83CF,0x83F9,0x8423, +0x83C0,0x83E8,0x8412,0x83E7,0x83E4,0x83FC,0x83F6,0x8410, +0x83C6,0x83C8,0x83EB,0x83E3,0x83BF,0x8401,0x83DD,0x83E5, +0x83D8,0x83FF,0x83E1,0x83CB,0x83CE,0x83D6,0x83F5,0x83C9, +0x8409,0x840F,0x83DE,0x8411,0x8406,0x83C2,0x83F3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x83D5,0x83FA,0x83C7,0x83D1,0x83EA,0x8413,0x83C3, +0x83EC,0x83EE,0x83C4,0x83FB,0x83D7,0x83E2,0x841B,0x83DB, +0x83FE,0x86D8,0x86E2,0x86E6,0x86D3,0x86E3,0x86DA,0x86EA, +0x86DD,0x86EB,0x86DC,0x86EC,0x86E9,0x86D7,0x86E8,0x86D1, +0x8848,0x8856,0x8855,0x88BA,0x88D7,0x88B9,0x88B8,0x88C0, +0x88BE,0x88B6,0x88BC,0x88B7,0x88BD,0x88B2,0x8901,0x88C9, +0x8995,0x8998,0x8997,0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D, +0x8A39,0x8A59,0x8A40,0x8A57,0x8A58,0x8A44,0x8A45,0x8A52, +0x8A48,0x8A51,0x8A4A,0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80, +0x8CBA,0x8CBE,0x8CB0,0x8CB9,0x8CB5,0x8D84,0x8D80,0x8D89, +0x8DD8,0x8DD3,0x8DCD,0x8DC7,0x8DD6,0x8DDC,0x8DCF,0x8DD5, +0x8DD9,0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8EF9,0x8EE6,0x8EEE,0x8EE5,0x8EF5,0x8EE7,0x8EE8,0x8EF6, +0x8EEB,0x8EF1,0x8EEC,0x8EF4,0x8EE9,0x902D,0x9034,0x902F, +0x9106,0x912C,0x9104,0x90FF,0x90FC,0x9108,0x90F9,0x90FB, +0x9101,0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915F, +0x9162,0x9160,0x9201,0x920A,0x9225,0x9203,0x921A,0x9226, +0x920F,0x920C,0x9200,0x9212,0x91FF,0x91FD,0x9206,0x9204, +0x9227,0x9202,0x921C,0x9224,0x9219,0x9217,0x9205,0x9216, +0x957B,0x958D,0x958C,0x9590,0x9687,0x967E,0x9688, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9689,0x9683,0x9680,0x96C2,0x96C8,0x96C3,0x96F1, +0x96F0,0x976C,0x9770,0x976E,0x9807,0x98A9,0x98EB,0x9CE6, +0x9EF9,0x4E83,0x4E84,0x4EB6,0x50BD,0x50BF,0x50C6,0x50AE, +0x50C4,0x50CA,0x50B4,0x50C8,0x50C2,0x50B0,0x50C1,0x50BA, +0x50B1,0x50CB,0x50C9,0x50B6,0x50B8,0x51D7,0x527A,0x5278, +0x527B,0x527C,0x55C3,0x55DB,0x55CC,0x55D0,0x55CB,0x55CA, +0x55DD,0x55C0,0x55D4,0x55C4,0x55E9,0x55BF,0x55D2,0x558D, +0x55CF,0x55D5,0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9, +0x55C2,0x5714,0x5853,0x5868,0x5864,0x584F,0x584D,0x5849, +0x586F,0x5855,0x584E,0x585D,0x5859,0x5865,0x585B,0x583D, +0x5863,0x5871,0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,0x5AB8, +0x5AB1,0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5AB7,0x5AC0,0x5ACA,0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90, +0x5BD6,0x5BD8,0x5BD9,0x5C1F,0x5C33,0x5D71,0x5D63,0x5D4A, +0x5D65,0x5D72,0x5D6C,0x5D5E,0x5D68,0x5D67,0x5D62,0x5DF0, +0x5E4F,0x5E4E,0x5E4A,0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6, +0x5ECB,0x5EC7,0x5F40,0x5FAF,0x5FAD,0x60F7,0x6149,0x614A, +0x612B,0x6145,0x6136,0x6132,0x612E,0x6146,0x612F,0x614F, +0x6129,0x6140,0x6220,0x9168,0x6223,0x6225,0x6224,0x63C5, +0x63F1,0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6433,0x6443,0x641F,0x6415,0x6418,0x6439,0x6437, +0x6422,0x6423,0x640C,0x6426,0x6430,0x6428,0x6441,0x6435, +0x642F,0x640A,0x641A,0x6440,0x6425,0x6427,0x640B,0x63E7, +0x641B,0x642E,0x6421,0x640E,0x656F,0x6592,0x65D3,0x6686, +0x668C,0x6695,0x6690,0x668B,0x668A,0x6699,0x6694,0x6678, +0x6720,0x6966,0x695F,0x6938,0x694E,0x6962,0x6971,0x693F, +0x6945,0x696A,0x6939,0x6942,0x6957,0x6959,0x697A,0x6948, +0x6949,0x6935,0x696C,0x6933,0x693D,0x6965,0x68F0,0x6978, +0x6934,0x6969,0x6940,0x696F,0x6944,0x6976,0x6958,0x6941, +0x6974,0x694C,0x693B,0x694B,0x6937,0x695C,0x694F,0x6951, +0x6932,0x6952,0x692F,0x697B,0x693C,0x6B46,0x6B45,0x6B43, +0x6B42,0x6B48,0x6B41,0x6B9B,0xFA0D,0x6BFB,0x6BFC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6BF9,0x6BF7,0x6BF8,0x6E9B,0x6ED6,0x6EC8,0x6E8F,0x6EC0, +0x6E9F,0x6E93,0x6E94,0x6EA0,0x6EB1,0x6EB9,0x6EC6,0x6ED2, +0x6EBD,0x6EC1,0x6E9E,0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6, +0x6ECF,0x6EB2,0x6EBE,0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92, +0x6E8E,0x6E8D,0x6EA4,0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA, +0x6E97,0x6EAE,0x6EA3,0x7147,0x7154,0x7152,0x7163,0x7160, +0x7141,0x715D,0x7162,0x7172,0x7178,0x716A,0x7161,0x7142, +0x7158,0x7143,0x714B,0x7170,0x715F,0x7150,0x7153, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7144,0x714D,0x715A,0x724F,0x728D,0x728C,0x7291, +0x7290,0x728E,0x733C,0x7342,0x733B,0x733A,0x7340,0x734A, +0x7349,0x7444,0x744A,0x744B,0x7452,0x7451,0x7457,0x7440, +0x744F,0x7450,0x744E,0x7442,0x7446,0x744D,0x7454,0x74E1, +0x74FF,0x74FE,0x74FD,0x751D,0x7579,0x7577,0x6983,0x75EF, +0x760F,0x7603,0x75F7,0x75FE,0x75FC,0x75F9,0x75F8,0x7610, +0x75FB,0x75F6,0x75ED,0x75F5,0x75FD,0x7699,0x76B5,0x76DD, +0x7755,0x775F,0x7760,0x7752,0x7756,0x775A,0x7769,0x7767, +0x7754,0x7759,0x776D,0x77E0,0x7887,0x789A,0x7894,0x788F, +0x7884,0x7895,0x7885,0x7886,0x78A1,0x7883,0x7879,0x7899, +0x7880,0x7896,0x787B,0x797C,0x7982,0x797D,0x7979,0x7A11, +0x7A18,0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7A1B,0x7A10,0x7AA3,0x7AA2,0x7A9E,0x7AEB,0x7B66,0x7B64, +0x7B6D,0x7B74,0x7B69,0x7B72,0x7B65,0x7B73,0x7B71,0x7B70, +0x7B61,0x7B78,0x7B76,0x7B63,0x7CB2,0x7CB4,0x7CAF,0x7D88, +0x7D86,0x7D80,0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B, +0x7D83,0x7D7C,0x7D8C,0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D, +0x7F6B,0x7F67,0x7F68,0x7F6C,0x7FA6,0x7FA5,0x7FA7,0x7FDB, +0x7FDC,0x8021,0x8164,0x8160,0x8177,0x815C,0x8169,0x815B, +0x8162,0x8172,0x6721,0x815E,0x8176,0x8167,0x816F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8144,0x8161,0x821D,0x8249,0x8244,0x8240,0x8242, +0x8245,0x84F1,0x843F,0x8456,0x8476,0x8479,0x848F,0x848D, +0x8465,0x8451,0x8440,0x8486,0x8467,0x8430,0x844D,0x847D, +0x845A,0x8459,0x8474,0x8473,0x845D,0x8507,0x845E,0x8437, +0x843A,0x8434,0x847A,0x8443,0x8478,0x8432,0x8445,0x8429, +0x83D9,0x844B,0x842F,0x8442,0x842D,0x845F,0x8470,0x8439, +0x844E,0x844C,0x8452,0x846F,0x84C5,0x848E,0x843B,0x8447, +0x8436,0x8433,0x8468,0x847E,0x8444,0x842B,0x8460,0x8454, +0x846E,0x8450,0x870B,0x8704,0x86F7,0x870C,0x86FA,0x86D6, +0x86F5,0x874D,0x86F8,0x870E,0x8709,0x8701,0x86F6,0x870D, +0x8705,0x88D6,0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,0x88DA, +0x88CC,0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x89E1,0x89E0,0x89E2,0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F, +0x8A61,0x8A3F,0x8A77,0x8A82,0x8A84,0x8A75,0x8A83,0x8A81, +0x8A74,0x8A7A,0x8C3C,0x8C4B,0x8C4A,0x8C65,0x8C64,0x8C66, +0x8C86,0x8C84,0x8C85,0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C, +0x8D8E,0x8D8F,0x8D8D,0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0, +0x8DE0,0x8DEC,0x8DF1,0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2, +0x8DE7,0x8DF2,0x8DEB,0x8DF4,0x8F06,0x8EFF,0x8F01,0x8F00, +0x8F05,0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9044,0x9049,0x903D,0x9110,0x910D,0x910F,0x9111, +0x9116,0x9114,0x910B,0x910E,0x916E,0x916F,0x9248,0x9252, +0x9230,0x923A,0x9266,0x9233,0x9265,0x925E,0x9283,0x922E, +0x924A,0x9246,0x926D,0x926C,0x924F,0x9260,0x9267,0x926F, +0x9236,0x9261,0x9270,0x9231,0x9254,0x9263,0x9250,0x9272, +0x924E,0x9253,0x924C,0x9256,0x9232,0x959F,0x959C,0x959E, +0x959B,0x9692,0x9693,0x9691,0x9697,0x96CE,0x96FA,0x96FD, +0x96F8,0x96F5,0x9773,0x9777,0x9778,0x9772,0x980F,0x980D, +0x980E,0x98AC,0x98F6,0x98F9,0x99AF,0x99B2,0x99B0,0x99B5, +0x9AAD,0x9AAB,0x9B5B,0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD, +0x50E6,0x50D4,0x50D7,0x50E8,0x50F3,0x50DB,0x50EA,0x50DD, +0x50E4,0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x51D8,0x5280,0x5281,0x52E9,0x52EB,0x5330,0x53AC,0x5627, +0x5615,0x560C,0x5612,0x55FC,0x560F,0x561C,0x5601,0x5613, +0x5602,0x55FA,0x561D,0x5604,0x55FF,0x55F9,0x5889,0x587C, +0x5890,0x5898,0x5886,0x5881,0x587F,0x5874,0x588B,0x587A, +0x5887,0x5891,0x588E,0x5876,0x5882,0x5888,0x587B,0x5894, +0x588F,0x58FE,0x596B,0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA, +0x5ADA,0x5AED,0x5AEB,0x5AF3,0x5AE2,0x5AE0,0x5ADB,0x5AEC, +0x5ADE,0x5ADD,0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5BE3,0x5C63,0x5D82,0x5D80,0x5D7D,0x5D86,0x5D7A, +0x5D81,0x5D77,0x5D8A,0x5D89,0x5D88,0x5D7E,0x5D7C,0x5D8D, +0x5D79,0x5D7F,0x5E58,0x5E59,0x5E53,0x5ED8,0x5ED1,0x5ED7, +0x5ECE,0x5EDC,0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43, +0x5F6F,0x5FB6,0x612C,0x6128,0x6141,0x615E,0x6171,0x6173, +0x6152,0x6153,0x6172,0x616C,0x6180,0x6174,0x6154,0x617A, +0x615B,0x6165,0x613B,0x616A,0x6161,0x6156,0x6229,0x6227, +0x622B,0x642B,0x644D,0x645B,0x645D,0x6474,0x6476,0x6472, +0x6473,0x647D,0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E, +0x645C,0x644B,0x6453,0x6460,0x6450,0x647F,0x643F,0x646C, +0x646B,0x6459,0x6465,0x6477,0x6573,0x65A0,0x66A1,0x66A0, +0x669F,0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x69A0,0x69CE,0x6996,0x69B0,0x69AC,0x69BC,0x6991,0x6999, +0x698E,0x69A7,0x698D,0x69A9,0x69BE,0x69AF,0x69BF,0x69C4, +0x69BD,0x69A4,0x69D4,0x69B9,0x69CA,0x699A,0x69CF,0x69B3, +0x6993,0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2, +0x69B5,0x69A5,0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F, +0x6BA0,0x6BC3,0x6BC4,0x6BFE,0x6ECE,0x6EF5,0x6EF1,0x6F03, +0x6F25,0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,0x6F4E,0x6F19, +0x6F1A,0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6F36,0x6F73,0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30, +0x6F3C,0x6F35,0x6EEB,0x6F07,0x6F0E,0x6F43,0x6F05,0x6EFD, +0x6EF6,0x6F39,0x6F1C,0x6EFC,0x6F3A,0x6F1F,0x6F0D,0x6F1E, +0x6F08,0x6F21,0x7187,0x7190,0x7189,0x7180,0x7185,0x7182, +0x718F,0x717B,0x7186,0x7181,0x7197,0x7244,0x7253,0x7297, +0x7295,0x7293,0x7343,0x734D,0x7351,0x734C,0x7462,0x7473, +0x7471,0x7475,0x7472,0x7467,0x746E,0x7500,0x7502,0x7503, +0x757D,0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A, +0x7614,0x76B8,0x7781,0x777C,0x7785,0x7782,0x776E,0x7780, +0x776F,0x777E,0x7783,0x78B2,0x78AA,0x78B4,0x78AD,0x78A8, +0x787E,0x78AB,0x789E,0x78A5,0x78A0,0x78AC,0x78A2,0x78A4, +0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7997,0x7988,0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F, +0x7A28,0x7A26,0x7AA8,0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C, +0x7B8A,0x7B91,0x7B90,0x7B96,0x7B8D,0x7B8C,0x7B9B,0x7B8E, +0x7B85,0x7B98,0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,0x7CBF, +0x7CBC,0x7CBA,0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1, +0x7DC0,0x7DC5,0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC, +0x7DAF,0x7DB9,0x7D96,0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9, +0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8024,0x805D,0x805C,0x8189,0x8186,0x8183,0x8187, +0x818D,0x818C,0x818B,0x8215,0x8497,0x84A4,0x84A1,0x849F, +0x84BA,0x84CE,0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,0x84B4, +0x84C1,0x84CD,0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7, +0x84BB,0x84A2,0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF, +0x84A8,0x84D6,0x8498,0x84B6,0x84CF,0x84A0,0x84D7,0x84D4, +0x84D2,0x84DB,0x84B0,0x8491,0x8661,0x8733,0x8723,0x8728, +0x876B,0x8740,0x872E,0x871E,0x8721,0x8719,0x871B,0x8743, +0x872C,0x8741,0x873E,0x8746,0x8720,0x8732,0x872A,0x872D, +0x873C,0x8712,0x873A,0x8731,0x8735,0x8742,0x8726,0x8727, +0x8738,0x8724,0x871A,0x8730,0x8711,0x88F7,0x88E7,0x88F1, +0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x88F0,0x88EC,0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9, +0x89EB,0x89E8,0x8AAB,0x8A99,0x8A8B,0x8A92,0x8A8F,0x8A96, +0x8C3D,0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,0x8D96,0x8E09, +0x8E02,0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06, +0x8E05,0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D, +0x9123,0x911C,0x9120,0x9122,0x911F,0x911D,0x911A,0x9124, +0x9121,0x911B,0x917A,0x9172,0x9179,0x9173,0x92A5,0x92A4, +0x9276,0x929B,0x927A,0x92A0,0x9294,0x92AA,0x928D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x92A6,0x929A,0x92AB,0x9279,0x9297,0x927F,0x92A3, +0x92EE,0x928E,0x9282,0x9295,0x92A2,0x927D,0x9288,0x92A1, +0x928A,0x9286,0x928C,0x9299,0x92A7,0x927E,0x9287,0x92A9, +0x929D,0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D, +0x977A,0x977E,0x9783,0x9780,0x9782,0x977B,0x9784,0x9781, +0x977F,0x97CE,0x97CD,0x9816,0x98AD,0x98AE,0x9902,0x9900, +0x9907,0x999D,0x999C,0x99C3,0x99B9,0x99BB,0x99BA,0x99C2, +0x99BD,0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60, +0x9B61,0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103, +0x5130,0x50F8,0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C, +0x50FD,0x510A,0x528B,0x528C,0x52F1,0x52EF,0x5648,0x5642, +0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,0x5658, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x565A,0x5640,0x5633,0x563D,0x562C,0x563E,0x5638,0x562A, +0x563A,0x571A,0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF, +0x58AC,0x58A5,0x58A1,0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7, +0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07,0x5B05, +0x5B0F,0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2,0x5D93, +0x5D95,0x5DA0,0x5D9C,0x5DA1,0x5D9A,0x5D9E,0x5E69,0x5E5D, +0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,0x5EE1,0x5F49,0x5FB2, +0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x619B,0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA, +0x61A1,0x618D,0x6166,0x61B3,0x622D,0x646E,0x6470,0x6496, +0x64A0,0x6485,0x6497,0x649C,0x648F,0x648B,0x648A,0x648C, +0x64A3,0x649F,0x6468,0x64B1,0x6498,0x6576,0x657A,0x6579, +0x657B,0x65B2,0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7, +0x66AA,0x66AF,0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15, +0x69F1,0x69E4,0x6A20,0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D, +0x69FE,0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7,0x6A40, +0x6A08,0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09,0x6A04, +0x6A18,0x6A25,0x6A0F,0x69F6,0x6A26,0x6A07,0x69F4,0x6A16, +0x6B51,0x6BA5,0x6BA3,0x6BA2,0x6BA6,0x6C01,0x6C00,0x6BFF, +0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6F8D,0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96, +0x6F76,0x6F6C,0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57, +0x6F94,0x6F93,0x6F5D,0x6F00,0x6F61,0x6F6B,0x6F7D,0x6F67, +0x6F90,0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,0x6F63,0x6F77, +0x6F6A,0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A, +0x71A9,0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA, +0x719C,0x71A7,0x71B3,0x7298,0x729A,0x7358,0x7352,0x735E, +0x735F,0x7360,0x735D,0x735B,0x7361,0x735A,0x7359, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7362,0x7487,0x7489,0x748A,0x7486,0x7481,0x747D, +0x7485,0x7488,0x747C,0x7479,0x7508,0x7507,0x757E,0x7625, +0x761E,0x7619,0x761D,0x761C,0x7623,0x761A,0x7628,0x761B, +0x769C,0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788, +0x78CD,0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8, +0x78C3,0x78C4,0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2, +0x799B,0x6B76,0x7A39,0x7AB2,0x7AB4,0x7AB3,0x7BB7,0x7BCB, +0x7BBE,0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,0x7BB5,0x7CC5, +0x7CC8,0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7, +0x7DE1,0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE, +0x7DDF,0x7F76,0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB,0x7FEA, +0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x819E,0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F,0x8253, +0x8252,0x8250,0x824E,0x8251,0x8524,0x853B,0x850F,0x8500, +0x8529,0x850E,0x8509,0x850D,0x851F,0x850A,0x8527,0x851C, +0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A,0x84F2, +0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA,0x84E9, +0x8516,0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD,0x851E, +0x84F6,0x8531,0x8526,0x84E7,0x84E8,0x84F0,0x84EF,0x84F9, +0x8518,0x8520,0x8530,0x850B,0x8519,0x852F,0x8662, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8756,0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758, +0x8754,0x875B,0x8752,0x8761,0x875A,0x8751,0x875E,0x876D, +0x876A,0x8750,0x874E,0x875F,0x875D,0x876F,0x876C,0x877A, +0x876E,0x875C,0x8765,0x874F,0x877B,0x8775,0x8762,0x8767, +0x8769,0x885A,0x8905,0x890C,0x8914,0x890B,0x8917,0x8918, +0x8919,0x8906,0x8916,0x8911,0x890E,0x8909,0x89A2,0x89A4, +0x89A3,0x89ED,0x89F0,0x89EC,0x8ACF,0x8AC6,0x8AB8,0x8AD3, +0x8AD1,0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0,0x8AC5, +0x8AD8,0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D,0x8C8F, +0x8CE5,0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7,0x8DA0, +0x8D9C,0x8DA1,0x8D9B,0x8E20,0x8E23,0x8E25,0x8E24,0x8E2E, +0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8E14,0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C, +0x8F24,0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073, +0x9070,0x906F,0x9067,0x906B,0x912F,0x912B,0x9129,0x912A, +0x9132,0x9126,0x912E,0x9185,0x9186,0x918A,0x9181,0x9182, +0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0,0x92D9,0x92B6, +0x92CF,0x92F1,0x92DF,0x92D8,0x92E9,0x92D7,0x92DD,0x92CC, +0x92EF,0x92C2,0x92E8,0x92CA,0x92C8,0x92CE,0x92E6,0x92CD, +0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1,0x92D3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x92B5,0x92E1,0x92C6,0x92B4,0x957C,0x95AC,0x95AB, +0x95AE,0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708,0x9702, +0x975A,0x978A,0x978E,0x9788,0x97D0,0x97CF,0x981E,0x981D, +0x9826,0x9829,0x9828,0x9820,0x981B,0x9827,0x98B2,0x9908, +0x98FA,0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC,0x99CD, +0x99CF,0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8,0x99CB, +0x99D7,0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3,0x9AF2,0x9AF1, +0x9B46,0x9B43,0x9B67,0x9B74,0x9B71,0x9B66,0x9B76,0x9B75, +0x9B70,0x9B68,0x9B64,0x9B6C,0x9CFC,0x9CFA,0x9CFD,0x9CFF, +0x9CF7,0x9D07,0x9D00,0x9CF9,0x9CFB,0x9D08,0x9D05,0x9D04, +0x9E83,0x9ED3,0x9F0F,0x9F10,0x511C,0x5113,0x5117,0x511A, +0x5111,0x51DE,0x5334,0x53E1,0x5670,0x5660,0x566E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5673,0x5666,0x5663,0x566D,0x5672,0x565E,0x5677,0x571C, +0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA,0x58C2,0x58BC, +0x58C6,0x5B17,0x5B19,0x5B1B,0x5B21,0x5B14,0x5B13,0x5B10, +0x5B16,0x5B28,0x5B1A,0x5B20,0x5B1E,0x5BEF,0x5DAC,0x5DB1, +0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA,0x5DA8,0x5DB2, +0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66,0x5E6F,0x5EE9, +0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B,0x5FBC,0x619D,0x61A8, +0x6196,0x61C5,0x61B4,0x61C6,0x61C1,0x61CC,0x61BA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x61BF,0x61B8,0x618C,0x64D7,0x64D6,0x64D0,0x64CF, +0x64C9,0x64BD,0x6489,0x64C3,0x64DB,0x64F3,0x64D9,0x6533, +0x657F,0x657C,0x65A2,0x66C8,0x66BE,0x66C0,0x66CA,0x66CB, +0x66CF,0x66BD,0x66BB,0x66BA,0x66CC,0x6723,0x6A34,0x6A66, +0x6A49,0x6A67,0x6A32,0x6A68,0x6A3E,0x6A5D,0x6A6D,0x6A76, +0x6A5B,0x6A51,0x6A28,0x6A5A,0x6A3B,0x6A3F,0x6A41,0x6A6A, +0x6A64,0x6A50,0x6A4F,0x6A54,0x6A6F,0x6A69,0x6A60,0x6A3C, +0x6A5E,0x6A56,0x6A55,0x6A4D,0x6A4E,0x6A46,0x6B55,0x6B54, +0x6B56,0x6BA7,0x6BAA,0x6BAB,0x6BC8,0x6BC7,0x6C04,0x6C03, +0x6C06,0x6FAD,0x6FCB,0x6FA3,0x6FC7,0x6FBC,0x6FCE,0x6FC8, +0x6F5E,0x6FC4,0x6FBD,0x6F9E,0x6FCA,0x6FA8,0x7004,0x6FA5, +0x6FAE,0x6FBA,0x6FAC,0x6FAA,0x6FCF,0x6FBF,0x6FB8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6FA2,0x6FC9,0x6FAB,0x6FCD,0x6FAF,0x6FB2,0x6FB0,0x71C5, +0x71C2,0x71BF,0x71B8,0x71D6,0x71C0,0x71C1,0x71CB,0x71D4, +0x71CA,0x71C7,0x71CF,0x71BD,0x71D8,0x71BC,0x71C6,0x71DA, +0x71DB,0x729D,0x729E,0x7369,0x7366,0x7367,0x736C,0x7365, +0x736B,0x736A,0x747F,0x749A,0x74A0,0x7494,0x7492,0x7495, +0x74A1,0x750B,0x7580,0x762F,0x762D,0x7631,0x763D,0x7633, +0x763C,0x7635,0x7632,0x7630,0x76BB,0x76E6,0x779A,0x779D, +0x77A1,0x779C,0x779B,0x77A2,0x77A3,0x7795,0x7799, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7797,0x78DD,0x78E9,0x78E5,0x78EA,0x78DE,0x78E3, +0x78DB,0x78E1,0x78E2,0x78ED,0x78DF,0x78E0,0x79A4,0x7A44, +0x7A48,0x7A47,0x7AB6,0x7AB8,0x7AB5,0x7AB1,0x7AB7,0x7BDE, +0x7BE3,0x7BE7,0x7BDD,0x7BD5,0x7BE5,0x7BDA,0x7BE8,0x7BF9, +0x7BD4,0x7BEA,0x7BE2,0x7BDC,0x7BEB,0x7BD8,0x7BDF,0x7CD2, +0x7CD4,0x7CD7,0x7CD0,0x7CD1,0x7E12,0x7E21,0x7E17,0x7E0C, +0x7E1F,0x7E20,0x7E13,0x7E0E,0x7E1C,0x7E15,0x7E1A,0x7E22, +0x7E0B,0x7E0F,0x7E16,0x7E0D,0x7E14,0x7E25,0x7E24,0x7F43, +0x7F7B,0x7F7C,0x7F7A,0x7FB1,0x7FEF,0x802A,0x8029,0x806C, +0x81B1,0x81A6,0x81AE,0x81B9,0x81B5,0x81AB,0x81B0,0x81AC, +0x81B4,0x81B2,0x81B7,0x81A7,0x81F2,0x8255,0x8256,0x8257, +0x8556,0x8545,0x856B,0x854D,0x8553,0x8561,0x8558, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8540,0x8546,0x8564,0x8541,0x8562,0x8544,0x8551,0x8547, +0x8563,0x853E,0x855B,0x8571,0x854E,0x856E,0x8575,0x8555, +0x8567,0x8560,0x858C,0x8566,0x855D,0x8554,0x8565,0x856C, +0x8663,0x8665,0x8664,0x879B,0x878F,0x8797,0x8793,0x8792, +0x8788,0x8781,0x8796,0x8798,0x8779,0x8787,0x87A3,0x8785, +0x8790,0x8791,0x879D,0x8784,0x8794,0x879C,0x879A,0x8789, +0x891E,0x8926,0x8930,0x892D,0x892E,0x8927,0x8931,0x8922, +0x8929,0x8923,0x892F,0x892C,0x891F,0x89F1,0x8AE0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8AE2,0x8AF2,0x8AF4,0x8AF5,0x8ADD,0x8B14,0x8AE4, +0x8ADF,0x8AF0,0x8AC8,0x8ADE,0x8AE1,0x8AE8,0x8AFF,0x8AEF, +0x8AFB,0x8C91,0x8C92,0x8C90,0x8CF5,0x8CEE,0x8CF1,0x8CF0, +0x8CF3,0x8D6C,0x8D6E,0x8DA5,0x8DA7,0x8E33,0x8E3E,0x8E38, +0x8E40,0x8E45,0x8E36,0x8E3C,0x8E3D,0x8E41,0x8E30,0x8E3F, +0x8EBD,0x8F36,0x8F2E,0x8F35,0x8F32,0x8F39,0x8F37,0x8F34, +0x9076,0x9079,0x907B,0x9086,0x90FA,0x9133,0x9135,0x9136, +0x9193,0x9190,0x9191,0x918D,0x918F,0x9327,0x931E,0x9308, +0x931F,0x9306,0x930F,0x937A,0x9338,0x933C,0x931B,0x9323, +0x9312,0x9301,0x9346,0x932D,0x930E,0x930D,0x92CB,0x931D, +0x92FA,0x9325,0x9313,0x92F9,0x92F7,0x9334,0x9302,0x9324, +0x92FF,0x9329,0x9339,0x9335,0x932A,0x9314,0x930C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x930B,0x92FE,0x9309,0x9300,0x92FB,0x9316,0x95BC,0x95CD, +0x95BE,0x95B9,0x95BA,0x95B6,0x95BF,0x95B5,0x95BD,0x96A9, +0x96D4,0x970B,0x9712,0x9710,0x9799,0x9797,0x9794,0x97F0, +0x97F8,0x9835,0x982F,0x9832,0x9924,0x991F,0x9927,0x9929, +0x999E,0x99EE,0x99EC,0x99E5,0x99E4,0x99F0,0x99E3,0x99EA, +0x99E9,0x99E7,0x9AB9,0x9ABF,0x9AB4,0x9ABB,0x9AF6,0x9AFA, +0x9AF9,0x9AF7,0x9B33,0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E, +0x9B7B,0x9B82,0x9B93,0x9B92,0x9B90,0x9B7A,0x9B95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9B7D,0x9B88,0x9D25,0x9D17,0x9D20,0x9D1E,0x9D14, +0x9D29,0x9D1D,0x9D18,0x9D22,0x9D10,0x9D19,0x9D1F,0x9E88, +0x9E86,0x9E87,0x9EAE,0x9EAD,0x9ED5,0x9ED6,0x9EFA,0x9F12, +0x9F3D,0x5126,0x5125,0x5122,0x5124,0x5120,0x5129,0x52F4, +0x5693,0x568C,0x568D,0x5686,0x5684,0x5683,0x567E,0x5682, +0x567F,0x5681,0x58D6,0x58D4,0x58CF,0x58D2,0x5B2D,0x5B25, +0x5B32,0x5B23,0x5B2C,0x5B27,0x5B26,0x5B2F,0x5B2E,0x5B7B, +0x5BF1,0x5BF2,0x5DB7,0x5E6C,0x5E6A,0x5FBE,0x5FBB,0x61C3, +0x61B5,0x61BC,0x61E7,0x61E0,0x61E5,0x61E4,0x61E8,0x61DE, +0x64EF,0x64E9,0x64E3,0x64EB,0x64E4,0x64E8,0x6581,0x6580, +0x65B6,0x65DA,0x66D2,0x6A8D,0x6A96,0x6A81,0x6AA5,0x6A89, +0x6A9F,0x6A9B,0x6AA1,0x6A9E,0x6A87,0x6A93,0x6A8E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6A95,0x6A83,0x6AA8,0x6AA4,0x6A91,0x6A7F,0x6AA6,0x6A9A, +0x6A85,0x6A8C,0x6A92,0x6B5B,0x6BAD,0x6C09,0x6FCC,0x6FA9, +0x6FF4,0x6FD4,0x6FE3,0x6FDC,0x6FED,0x6FE7,0x6FE6,0x6FDE, +0x6FF2,0x6FDD,0x6FE2,0x6FE8,0x71E1,0x71F1,0x71E8,0x71F2, +0x71E4,0x71F0,0x71E2,0x7373,0x736E,0x736F,0x7497,0x74B2, +0x74AB,0x7490,0x74AA,0x74AD,0x74B1,0x74A5,0x74AF,0x7510, +0x7511,0x7512,0x750F,0x7584,0x7643,0x7648,0x7649,0x7647, +0x76A4,0x76E9,0x77B5,0x77AB,0x77B2,0x77B7,0x77B6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x77B4,0x77B1,0x77A8,0x77F0,0x78F3,0x78FD,0x7902, +0x78FB,0x78FC,0x78F2,0x7905,0x78F9,0x78FE,0x7904,0x79AB, +0x79A8,0x7A5C,0x7A5B,0x7A56,0x7A58,0x7A54,0x7A5A,0x7ABE, +0x7AC0,0x7AC1,0x7C05,0x7C0F,0x7BF2,0x7C00,0x7BFF,0x7BFB, +0x7C0E,0x7BF4,0x7C0B,0x7BF3,0x7C02,0x7C09,0x7C03,0x7C01, +0x7BF8,0x7BFD,0x7C06,0x7BF0,0x7BF1,0x7C10,0x7C0A,0x7CE8, +0x7E2D,0x7E3C,0x7E42,0x7E33,0x9848,0x7E38,0x7E2A,0x7E49, +0x7E40,0x7E47,0x7E29,0x7E4C,0x7E30,0x7E3B,0x7E36,0x7E44, +0x7E3A,0x7F45,0x7F7F,0x7F7E,0x7F7D,0x7FF4,0x7FF2,0x802C, +0x81BB,0x81C4,0x81CC,0x81CA,0x81C5,0x81C7,0x81BC,0x81E9, +0x825B,0x825A,0x825C,0x8583,0x8580,0x858F,0x85A7,0x8595, +0x85A0,0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8577,0x857C,0x8589,0x85A1,0x857A,0x8578,0x8557,0x858E, +0x8596,0x8586,0x858D,0x8599,0x859D,0x8581,0x85A2,0x8582, +0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859F,0x8668, +0x87BE,0x87AA,0x87AD,0x87C5,0x87B0,0x87AC,0x87B9,0x87B5, +0x87BC,0x87AE,0x87C9,0x87C3,0x87C2,0x87CC,0x87B7,0x87AF, +0x87C4,0x87CA,0x87B4,0x87B6,0x87BF,0x87B8,0x87BD,0x87DE, +0x87B2,0x8935,0x8933,0x893C,0x893E,0x8941,0x8952,0x8937, +0x8942,0x89AD,0x89AF,0x89AE,0x89F2,0x89F3,0x8B1E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x8B18,0x8B16,0x8B11,0x8B05,0x8B0B,0x8B22,0x8B0F, +0x8B12,0x8B15,0x8B07,0x8B0D,0x8B08,0x8B06,0x8B1C,0x8B13, +0x8B1A,0x8C4F,0x8C70,0x8C72,0x8C71,0x8C6F,0x8C95,0x8C94, +0x8CF9,0x8D6F,0x8E4E,0x8E4D,0x8E53,0x8E50,0x8E4C,0x8E47, +0x8F43,0x8F40,0x9085,0x907E,0x9138,0x919A,0x91A2,0x919B, +0x9199,0x919F,0x91A1,0x919D,0x91A0,0x93A1,0x9383,0x93AF, +0x9364,0x9356,0x9347,0x937C,0x9358,0x935C,0x9376,0x9349, +0x9350,0x9351,0x9360,0x936D,0x938F,0x934C,0x936A,0x9379, +0x9357,0x9355,0x9352,0x934F,0x9371,0x9377,0x937B,0x9361, +0x935E,0x9363,0x9367,0x9380,0x934E,0x9359,0x95C7,0x95C0, +0x95C9,0x95C3,0x95C5,0x95B7,0x96AE,0x96B0,0x96AC,0x9720, +0x971F,0x9718,0x971D,0x9719,0x979A,0x97A1,0x979C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x979E,0x979D,0x97D5,0x97D4,0x97F1,0x9841,0x9844,0x984A, +0x9849,0x9845,0x9843,0x9925,0x992B,0x992C,0x992A,0x9933, +0x9932,0x992F,0x992D,0x9931,0x9930,0x9998,0x99A3,0x99A1, +0x9A02,0x99FA,0x99F4,0x99F7,0x99F9,0x99F8,0x99F6,0x99FB, +0x99FD,0x99FE,0x99FC,0x9A03,0x9ABE,0x9AFE,0x9AFD,0x9B01, +0x9AFC,0x9B48,0x9B9A,0x9BA8,0x9B9E,0x9B9B,0x9BA6,0x9BA1, +0x9BA5,0x9BA4,0x9B86,0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41, +0x9D67,0x9D36,0x9D2E,0x9D2F,0x9D31,0x9D38,0x9D30, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9D45,0x9D42,0x9D43,0x9D3E,0x9D37,0x9D40,0x9D3D, +0x7FF5,0x9D2D,0x9E8A,0x9E89,0x9E8D,0x9EB0,0x9EC8,0x9EDA, +0x9EFB,0x9EFF,0x9F24,0x9F23,0x9F22,0x9F54,0x9FA0,0x5131, +0x512D,0x512E,0x5698,0x569C,0x5697,0x569A,0x569D,0x5699, +0x5970,0x5B3C,0x5C69,0x5C6A,0x5DC0,0x5E6D,0x5E6E,0x61D8, +0x61DF,0x61ED,0x61EE,0x61F1,0x61EA,0x61F0,0x61EB,0x61D6, +0x61E9,0x64FF,0x6504,0x64FD,0x64F8,0x6501,0x6503,0x64FC, +0x6594,0x65DB,0x66DA,0x66DB,0x66D8,0x6AC5,0x6AB9,0x6ABD, +0x6AE1,0x6AC6,0x6ABA,0x6AB6,0x6AB7,0x6AC7,0x6AB4,0x6AAD, +0x6B5E,0x6BC9,0x6C0B,0x7007,0x700C,0x700D,0x7001,0x7005, +0x7014,0x700E,0x6FFF,0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7, +0x700A,0x7201,0x71FF,0x71F9,0x7203,0x71FD,0x7376, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x74B8,0x74C0,0x74B5,0x74C1,0x74BE,0x74B6,0x74BB,0x74C2, +0x7514,0x7513,0x765C,0x7664,0x7659,0x7650,0x7653,0x7657, +0x765A,0x76A6,0x76BD,0x76EC,0x77C2,0x77BA,0x78FF,0x790C, +0x7913,0x7914,0x7909,0x7910,0x7912,0x7911,0x79AD,0x79AC, +0x7A5F,0x7C1C,0x7C29,0x7C19,0x7C20,0x7C1F,0x7C2D,0x7C1D, +0x7C26,0x7C28,0x7C22,0x7C25,0x7C30,0x7E5C,0x7E50,0x7E56, +0x7E63,0x7E58,0x7E62,0x7E5F,0x7E51,0x7E60,0x7E57,0x7E53, +0x7FB5,0x7FB3,0x7FF7,0x7FF8,0x8075,0x81D1,0x81D2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x81D0,0x825F,0x825E,0x85B4,0x85C6,0x85C0,0x85C3, +0x85C2,0x85B3,0x85B5,0x85BD,0x85C7,0x85C4,0x85BF,0x85CB, +0x85CE,0x85C8,0x85C5,0x85B1,0x85B6,0x85D2,0x8624,0x85B8, +0x85B7,0x85BE,0x8669,0x87E7,0x87E6,0x87E2,0x87DB,0x87EB, +0x87EA,0x87E5,0x87DF,0x87F3,0x87E4,0x87D4,0x87DC,0x87D3, +0x87ED,0x87D8,0x87E3,0x87A4,0x87D7,0x87D9,0x8801,0x87F4, +0x87E8,0x87DD,0x8953,0x894B,0x894F,0x894C,0x8946,0x8950, +0x8951,0x8949,0x8B2A,0x8B27,0x8B23,0x8B33,0x8B30,0x8B35, +0x8B47,0x8B2F,0x8B3C,0x8B3E,0x8B31,0x8B25,0x8B37,0x8B26, +0x8B36,0x8B2E,0x8B24,0x8B3B,0x8B3D,0x8B3A,0x8C42,0x8C75, +0x8C99,0x8C98,0x8C97,0x8CFE,0x8D04,0x8D02,0x8D00,0x8E5C, +0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65,0x8E67, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54,0x8F46,0x8F47, +0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E,0x91A8,0x91A5, +0x91A7,0x91AF,0x91AA,0x93B5,0x938C,0x9392,0x93B7,0x939B, +0x939D,0x9389,0x93A7,0x938E,0x93AA,0x939E,0x93A6,0x9395, +0x9388,0x9399,0x939F,0x938D,0x93B1,0x9391,0x93B2,0x93A4, +0x93A8,0x93B4,0x93A3,0x93A5,0x95D2,0x95D3,0x95D1,0x96B3, +0x96D7,0x96DA,0x5DC2,0x96DF,0x96D8,0x96DD,0x9723,0x9722, +0x9725,0x97AC,0x97AE,0x97A8,0x97AB,0x97A4,0x97AA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x97A2,0x97A5,0x97D7,0x97D9,0x97D6,0x97D8,0x97FA, +0x9850,0x9851,0x9852,0x98B8,0x9941,0x993C,0x993A,0x9A0F, +0x9A0B,0x9A09,0x9A0D,0x9A04,0x9A11,0x9A0A,0x9A05,0x9A07, +0x9A06,0x9AC0,0x9ADC,0x9B08,0x9B04,0x9B05,0x9B29,0x9B35, +0x9B4A,0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3,0x9BBF,0x9BC1, +0x9BB5,0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9,0x9BBD,0x9D5C, +0x9D53,0x9D4F,0x9D4A,0x9D5B,0x9D4B,0x9D59,0x9D56,0x9D4C, +0x9D57,0x9D52,0x9D54,0x9D5F,0x9D58,0x9D5A,0x9E8E,0x9E8C, +0x9EDF,0x9F01,0x9F00,0x9F16,0x9F25,0x9F2B,0x9F2A,0x9F29, +0x9F28,0x9F4C,0x9F55,0x5134,0x5135,0x5296,0x52F7,0x53B4, +0x56AB,0x56AD,0x56A6,0x56A7,0x56AA,0x56AC,0x58DA,0x58DD, +0x58DB,0x5912,0x5B3D,0x5B3E,0x5B3F,0x5DC3,0x5E70, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5FBF,0x61FB,0x6507,0x6510,0x650D,0x6509,0x650C,0x650E, +0x6584,0x65DE,0x65DD,0x66DE,0x6AE7,0x6AE0,0x6ACC,0x6AD1, +0x6AD9,0x6ACB,0x6ADF,0x6ADC,0x6AD0,0x6AEB,0x6ACF,0x6ACD, +0x6ADE,0x6B60,0x6BB0,0x6C0C,0x7019,0x7027,0x7020,0x7016, +0x702B,0x7021,0x7022,0x7023,0x7029,0x7017,0x7024,0x701C, +0x702A,0x720C,0x720A,0x7207,0x7202,0x7205,0x72A5,0x72A6, +0x72A4,0x72A3,0x72A1,0x74CB,0x74C5,0x74B7,0x74C3,0x7516, +0x7660,0x77C9,0x77CA,0x77C4,0x77F1,0x791D,0x791B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7921,0x791C,0x7917,0x791E,0x79B0,0x7A67,0x7A68, +0x7C33,0x7C3C,0x7C39,0x7C2C,0x7C3B,0x7CEC,0x7CEA,0x7E76, +0x7E75,0x7E78,0x7E70,0x7E77,0x7E6F,0x7E7A,0x7E72,0x7E74, +0x7E68,0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7,0x7FFD,0x7FFE, +0x8078,0x81D7,0x81D5,0x8264,0x8261,0x8263,0x85EB,0x85F1, +0x85ED,0x85D9,0x85E1,0x85E8,0x85DA,0x85D7,0x85EC,0x85F2, +0x85F8,0x85D8,0x85DF,0x85E3,0x85DC,0x85D1,0x85F0,0x85E6, +0x85EF,0x85DE,0x85E2,0x8800,0x87FA,0x8803,0x87F6,0x87F7, +0x8809,0x880C,0x880B,0x8806,0x87FC,0x8808,0x87FF,0x880A, +0x8802,0x8962,0x895A,0x895B,0x8957,0x8961,0x895C,0x8958, +0x895D,0x8959,0x8988,0x89B7,0x89B6,0x89F6,0x8B50,0x8B48, +0x8B4A,0x8B40,0x8B53,0x8B56,0x8B54,0x8B4B,0x8B55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8B51,0x8B42,0x8B52,0x8B57,0x8C43,0x8C77,0x8C76,0x8C9A, +0x8D06,0x8D07,0x8D09,0x8DAC,0x8DAA,0x8DAD,0x8DAB,0x8E6D, +0x8E78,0x8E73,0x8E6A,0x8E6F,0x8E7B,0x8EC2,0x8F52,0x8F51, +0x8F4F,0x8F50,0x8F53,0x8FB4,0x9140,0x913F,0x91B0,0x91AD, +0x93DE,0x93C7,0x93CF,0x93C2,0x93DA,0x93D0,0x93F9,0x93EC, +0x93CC,0x93D9,0x93A9,0x93E6,0x93CA,0x93D4,0x93EE,0x93E3, +0x93D5,0x93C4,0x93CE,0x93C0,0x93D2,0x93E7,0x957D,0x95DA, +0x95DB,0x96E1,0x9729,0x972B,0x972C,0x9728,0x9726, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x97B3,0x97B7,0x97B6,0x97DD,0x97DE,0x97DF,0x985C, +0x9859,0x985D,0x9857,0x98BF,0x98BD,0x98BB,0x98BE,0x9948, +0x9947,0x9943,0x99A6,0x99A7,0x9A1A,0x9A15,0x9A25,0x9A1D, +0x9A24,0x9A1B,0x9A22,0x9A20,0x9A27,0x9A23,0x9A1E,0x9A1C, +0x9A14,0x9AC2,0x9B0B,0x9B0A,0x9B0E,0x9B0C,0x9B37,0x9BEA, +0x9BEB,0x9BE0,0x9BDE,0x9BE4,0x9BE6,0x9BE2,0x9BF0,0x9BD4, +0x9BD7,0x9BEC,0x9BDC,0x9BD9,0x9BE5,0x9BD5,0x9BE1,0x9BDA, +0x9D77,0x9D81,0x9D8A,0x9D84,0x9D88,0x9D71,0x9D80,0x9D78, +0x9D86,0x9D8B,0x9D8C,0x9D7D,0x9D6B,0x9D74,0x9D75,0x9D70, +0x9D69,0x9D85,0x9D73,0x9D7B,0x9D82,0x9D6F,0x9D79,0x9D7F, +0x9D87,0x9D68,0x9E94,0x9E91,0x9EC0,0x9EFC,0x9F2D,0x9F40, +0x9F41,0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x56B5,0x56B3,0x58E3,0x5B45,0x5DC6,0x5DC7,0x5EEE,0x5EEF, +0x5FC0,0x5FC1,0x61F9,0x6517,0x6516,0x6515,0x6513,0x65DF, +0x66E8,0x66E3,0x66E4,0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9, +0x6AF1,0x6AEE,0x6AEF,0x703C,0x7035,0x702F,0x7037,0x7034, +0x7031,0x7042,0x7038,0x703F,0x703A,0x7039,0x7040,0x703B, +0x7033,0x7041,0x7213,0x7214,0x72A8,0x737D,0x737C,0x74BA, +0x76AB,0x76AA,0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD, +0x77F2,0x7925,0x7923,0x7927,0x7928,0x7924,0x7929, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x79B2,0x7A6E,0x7A6C,0x7A6D,0x7AF7,0x7C49,0x7C48, +0x7C4A,0x7C47,0x7C45,0x7CEE,0x7E7B,0x7E7E,0x7E81,0x7E80, +0x7FBA,0x7FFF,0x8079,0x81DB,0x81D9,0x820B,0x8268,0x8269, +0x8622,0x85FF,0x8601,0x85FE,0x861B,0x8600,0x85F6,0x8604, +0x8609,0x8605,0x860C,0x85FD,0x8819,0x8810,0x8811,0x8817, +0x8813,0x8816,0x8963,0x8966,0x89B9,0x89F7,0x8B60,0x8B6A, +0x8B5D,0x8B68,0x8B63,0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86, +0x8E88,0x8E84,0x8F59,0x8F56,0x8F57,0x8F55,0x8F58,0x8F5A, +0x908D,0x9143,0x9141,0x91B7,0x91B5,0x91B2,0x91B3,0x940B, +0x9413,0x93FB,0x9420,0x940F,0x9414,0x93FE,0x9415,0x9410, +0x9428,0x9419,0x940D,0x93F5,0x9400,0x93F7,0x9407,0x940E, +0x9416,0x9412,0x93FA,0x9409,0x93F8,0x940A,0x93FF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x93FC,0x940C,0x93F6,0x9411,0x9406,0x95DE,0x95E0,0x95DF, +0x972E,0x972F,0x97B9,0x97BB,0x97FD,0x97FE,0x9860,0x9862, +0x9863,0x985F,0x98C1,0x98C2,0x9950,0x994E,0x9959,0x994C, +0x994B,0x9953,0x9A32,0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36, +0x9A29,0x9A2E,0x9A38,0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10, +0x9B12,0x9B11,0x9C0B,0x9C08,0x9BF7,0x9C05,0x9C12,0x9BF8, +0x9C40,0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F, +0x9D99,0x9DA4,0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9DA0,0x9D94,0x9D9C,0x9DAA,0x9D97,0x9DA1,0x9D9A, +0x9DA2,0x9DA8,0x9D9E,0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6, +0x9DA7,0x9E99,0x9E9B,0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6, +0x9F30,0x9F2E,0x9F5B,0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91, +0x513A,0x5139,0x5298,0x5297,0x56C3,0x56BD,0x56BE,0x5B48, +0x5B47,0x5DCB,0x5DCF,0x5EF1,0x61FD,0x651B,0x6B02,0x6AFC, +0x6B03,0x6AF8,0x6B00,0x7043,0x7044,0x704A,0x7048,0x7049, +0x7045,0x7046,0x721D,0x721A,0x7219,0x737E,0x7517,0x766A, +0x77D0,0x792D,0x7931,0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A, +0x7E87,0x7E88,0x7E8B,0x7E86,0x7E8D,0x7F4D,0x7FBB,0x8030, +0x81DD,0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619, +0x8627,0x862E,0x8621,0x8620,0x8629,0x861E,0x8625, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8829,0x881D,0x881B,0x8820,0x8824,0x881C,0x882B,0x884A, +0x896D,0x8969,0x896E,0x896B,0x89FA,0x8B79,0x8B78,0x8B45, +0x8B7A,0x8B7B,0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E, +0x8F5B,0x8F5D,0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B, +0x9436,0x9429,0x943D,0x943C,0x9430,0x9439,0x942A,0x9437, +0x942C,0x9440,0x9431,0x95E5,0x95E4,0x95E3,0x9735,0x973A, +0x97BF,0x97E1,0x9864,0x98C9,0x98C6,0x98C0,0x9958,0x9956, +0x9A39,0x9A3D,0x9A46,0x9A44,0x9A42,0x9A41,0x9A3A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9A3F,0x9ACD,0x9B15,0x9B17,0x9B18,0x9B16,0x9B3A, +0x9B52,0x9C2B,0x9C1D,0x9C1C,0x9C2C,0x9C23,0x9C28,0x9C29, +0x9C24,0x9C21,0x9DB7,0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA, +0x9DCF,0x9DBE,0x9DC5,0x9DC3,0x9DBB,0x9DB5,0x9DCE,0x9DB9, +0x9DBA,0x9DAC,0x9DC8,0x9DB1,0x9DAD,0x9DCC,0x9DB3,0x9DCD, +0x9DB2,0x9E7A,0x9E9C,0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18, +0x9F1A,0x9F31,0x9F4E,0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6, +0x56C5,0x56CB,0x5971,0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2, +0x6521,0x6520,0x6526,0x6522,0x6B0B,0x6B08,0x6B09,0x6C0D, +0x7055,0x7056,0x7057,0x7052,0x721E,0x721F,0x72A9,0x737F, +0x74D8,0x74D5,0x74D9,0x74D7,0x766D,0x76AD,0x7935,0x79B4, +0x7A70,0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7CF4,0x7CF1,0x7E91,0x7F4F,0x7F87,0x81DE,0x826B,0x8634, +0x8635,0x8633,0x862C,0x8632,0x8636,0x882C,0x8828,0x8826, +0x882A,0x8825,0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84, +0x8B82,0x8B86,0x8B85,0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A, +0x8E92,0x8E90,0x8E96,0x8E97,0x8F60,0x8F62,0x9147,0x944C, +0x9450,0x944A,0x944B,0x944F,0x9447,0x9445,0x9448,0x9449, +0x9446,0x973F,0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B, +0x9A4E,0x9A53,0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9A49,0x9A52,0x9A50,0x9AD0,0x9B19,0x9B2B,0x9B3B, +0x9B56,0x9B55,0x9C46,0x9C48,0x9C3F,0x9C44,0x9C39,0x9C33, +0x9C41,0x9C3C,0x9C37,0x9C34,0x9C32,0x9C3D,0x9C36,0x9DDB, +0x9DD2,0x9DDE,0x9DDA,0x9DCB,0x9DD0,0x9DDC,0x9DD1,0x9DDF, +0x9DE9,0x9DD9,0x9DD8,0x9DD6,0x9DF5,0x9DD5,0x9DDD,0x9EB6, +0x9EF0,0x9F35,0x9F33,0x9F32,0x9F42,0x9F6B,0x9F95,0x9FA2, +0x513D,0x5299,0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F, +0x5F4F,0x6201,0x6203,0x6204,0x6529,0x6525,0x6596,0x66EB, +0x6B11,0x6B12,0x6B0F,0x6BCA,0x705B,0x705A,0x7222,0x7382, +0x7381,0x7383,0x7670,0x77D4,0x7C67,0x7C66,0x7E95,0x826C, +0x863A,0x8640,0x8639,0x863C,0x8631,0x863B,0x863E,0x8830, +0x8832,0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8B8C,0x8B8E,0x8B8B,0x8B88,0x8C45,0x8D19,0x8E98,0x8F64, +0x8F63,0x91BC,0x9462,0x9455,0x945D,0x9457,0x945E,0x97C4, +0x97C5,0x9800,0x9A56,0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52, +0x9C58,0x9C50,0x9C4A,0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C, +0x9C4E,0x9DFB,0x9DF7,0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4, +0x9DF6,0x9DE1,0x9DEE,0x9DE6,0x9DF2,0x9DF0,0x9DE2,0x9DEC, +0x9DF4,0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3, +0x9F06,0x9F1C,0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9F71,0x9F70,0x9F6E,0x9F6F,0x56D3,0x56CD,0x5B4E, +0x5C6D,0x652D,0x66ED,0x66EE,0x6B13,0x705F,0x7061,0x705D, +0x7060,0x7223,0x74DB,0x74E5,0x77D5,0x7938,0x79B7,0x79B6, +0x7C6A,0x7E97,0x7F89,0x826D,0x8643,0x8838,0x8837,0x8835, +0x884B,0x8B94,0x8B95,0x8E9E,0x8E9F,0x8EA0,0x8E9D,0x91BE, +0x91BD,0x91C2,0x946B,0x9468,0x9469,0x96E5,0x9746,0x9743, +0x9747,0x97C7,0x97E5,0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67, +0x9C66,0x9C62,0x9C5E,0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03, +0x9E06,0x9E05,0x9E00,0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04, +0x9EA0,0x9F1E,0x9F46,0x9F74,0x9F75,0x9F76,0x56D4,0x652E, +0x65B8,0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA, +0x77D8,0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7E98,0x7E9B,0x7E99,0x81E0,0x81E1,0x8646,0x8647,0x8648, +0x8979,0x897A,0x897C,0x897B,0x89FF,0x8B98,0x8B99,0x8EA5, +0x8EA4,0x8EA3,0x946E,0x946D,0x946F,0x9471,0x9473,0x9749, +0x9872,0x995F,0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10, +0x9E0F,0x9E12,0x9E11,0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78, +0x9F7B,0x9F7A,0x9F79,0x571E,0x7066,0x7C6F,0x883C,0x8DB2, +0x8EA6,0x91C3,0x9474,0x9478,0x9476,0x9475,0x9A60,0x9C74, +0x9C73,0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x9FA4,0x7068,0x7065,0x7CF7,0x866A,0x883E,0x883D, +0x883F,0x8B9E,0x8C9C,0x8EA9,0x8EC9,0x974B,0x9873,0x9874, +0x98CC,0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15, +0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482, +0x9480,0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B, +0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D, +0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98,0x7881,0x92B9, +0x88CF,0x58BB,0x6052,0x7CA7,0x5AFA}; + +static int func_big5_uni_onechar(int code){ + if ((code>=0xA140)&&(code<=0xC7FC)) + return(tab_big5_uni0[code-0xA140]); + if ((code>=0xC940)&&(code<=0xF9DC)) + return(tab_big5_uni1[code-0xC940]); + return(0); +} + + +/* page 0 0x00A2-0x00F7 */ +static const uint16 tab_uni_big50[]={ +0xA246,0xA247, 0,0xA244, 0,0xA1B1, 0, 0, + 0, 0, 0, 0, 0, 0,0xA258,0xA1D3, + 0, 0, 0, 0, 0,0xA150, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1D1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1D2}; + +/* page 1 0x02C7-0x0451 */ +static const uint16 tab_uni_big51[]={ +0xA3BE, 0,0xA3BC,0xA3BD,0xA3BF, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA3BB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA344,0xA345,0xA346,0xA347,0xA348,0xA349, +0xA34A,0xA34B,0xA34C,0xA34D,0xA34E,0xA34F,0xA350,0xA351, +0xA352,0xA353,0xA354, 0,0xA355,0xA356,0xA357,0xA358, +0xA359,0xA35A,0xA35B, 0, 0, 0, 0, 0, + 0, 0,0xA35C,0xA35D,0xA35E,0xA35F,0xA360,0xA361, +0xA362,0xA363,0xA364,0xA365,0xA366,0xA367,0xA368,0xA369, +0xA36A,0xA36B,0xA36C, 0,0xA36D,0xA36E,0xA36F,0xA370, +0xA371,0xA372,0xA373, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xC7B3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xC7B1,0xC7B2,0xC7B4, +0xC7B5,0xC7B6,0xC7B7,0xC7B8,0xC7B9,0xC7BA, 0, 0, + 0, 0, 0, 0,0xC7BB,0xC7BC,0xC7BD,0xC7BE, +0xC7BF,0xC7C0,0xC7C1,0xC7C2,0xC7C3,0xC7C4,0xC7C5,0xC7C6, +0xC7C7,0xC7C8,0xC7C9,0xC7CA,0xC7CB,0xC7CC,0xC7CD,0xC7CF, +0xC7D0,0xC7D1,0xC7D2,0xC7D3,0xC7D4,0xC7D5,0xC7D6,0xC7D7, +0xC7D8,0xC7D9,0xC7DA,0xC7DB,0xC7DC,0xC7DD,0xC7DE,0xC7DF, +0xC7E0,0xC7E1,0xC7E2,0xC7E3,0xC7E4,0xC7E5,0xC7E6,0xC7E7, +0xC7E8, 0,0xC7CE}; + +/* page 2 0x2013-0x22BF */ +static const uint16 tab_uni_big52[]={ +0xA156,0xA158, 0, 0, 0,0xA1A5,0xA1A6, 0, + 0,0xA1A7,0xA1A8, 0, 0, 0, 0,0xA145, + 0, 0,0xA14C,0xA14B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA1AC, + 0, 0,0xA1AB, 0, 0, 0, 0, 0, +0xA1B0, 0, 0,0xA1C2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA24A, 0,0xA1C1, 0, 0, 0,0xA24B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA2B9,0xA2BA,0xA2BB, +0xA2BC,0xA2BD,0xA2BE,0xA2BF,0xA2C0,0xA2C1,0xA2C2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1F6,0xA1F4,0xA1F7, +0xA1F5, 0, 0,0xA1F8,0xA1F9,0xA1FB,0xA1FA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA1D4, + 0, 0, 0,0xA1DB,0xA1E8,0xA1E7, 0, 0, +0xA1FD, 0,0xA1FC, 0, 0, 0,0xA1E4,0xA1E5, +0xA1EC, 0, 0,0xA1ED, 0, 0, 0, 0, + 0,0xA1EF,0xA1EE, 0, 0, 0, 0, 0, + 0,0xA1E3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA1DC, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1DA,0xA1DD, 0, + 0, 0, 0,0xA1D8,0xA1D9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA1E6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA1E9}; + +/* page 3 0x2460-0x2642 */ +static const uint16 tab_uni_big53[]={ +0xC7E9,0xC7EA,0xC7EB,0xC7EC,0xC7ED,0xC7EE,0xC7EF,0xC7F0, +0xC7F1,0xC7F2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xC7F3,0xC7F4,0xC7F5,0xC7F6, +0xC7F7,0xC7F8,0xC7F9,0xC7FA,0xC7FB,0xC7FC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA277, 0,0xA278, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA27A, 0, 0, 0, +0xA27B, 0, 0, 0,0xA27C, 0, 0, 0, +0xA27D, 0, 0, 0,0xA275, 0, 0, 0, + 0, 0, 0, 0,0xA274, 0, 0, 0, + 0, 0, 0, 0,0xA273, 0, 0, 0, + 0, 0, 0, 0,0xA272, 0, 0, 0, + 0, 0, 0, 0,0xA271, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA2A4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA2A5, 0, + 0,0xA2A7, 0, 0, 0, 0, 0, 0, + 0, 0,0xA2A6, 0, 0,0xA27E,0xA2A1,0xA2A3, +0xA2A2,0xA2AC,0xA2AD,0xA2AE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA262,0xA263,0xA264,0xA265,0xA266,0xA267,0xA268, +0xA269,0xA270,0xA26F,0xA26E,0xA26D,0xA26C,0xA26B,0xA26A, + 0, 0, 0, 0,0xA276,0xA279, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1BD,0xA1BC, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA1B6,0xA1B5, 0, 0, 0, 0, + 0, 0, 0, 0,0xA1BF,0xA1BE, 0, 0, + 0, 0, 0, 0, 0, 0,0xA1BB,0xA1BA, + 0, 0, 0,0xA1B3, 0, 0,0xA1B7,0xA1B4, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA2A8,0xA2A9,0xA2AB,0xA2AA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1B9,0xA1B8, 0, + 0,0xA1F3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1F0,0xA1F2,0xA1F1}; + +/* page 4 0x3000-0x3129 */ +static const uint16 tab_uni_big54[]={ +0xA140,0xA142,0xA143,0xA1B2, 0,0xC6A4, 0, 0, +0xA171,0xA172,0xA16D,0xA16E,0xA175,0xA176,0xA179,0xA17A, +0xA169,0xA16A,0xA245, 0,0xA165,0xA166, 0, 0, + 0, 0, 0, 0, 0,0xA1A9,0xA1AA, 0, + 0,0xA2C3,0xA2C4,0xA2C5,0xA2C6,0xA2C7,0xA2C8,0xA2C9, +0xA2CA,0xA2CB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xC6A5,0xC6A6,0xC6A7,0xC6A8,0xC6A9,0xC6AA,0xC6AB, +0xC6AC,0xC6AD,0xC6AE,0xC6AF,0xC6B0,0xC6B1,0xC6B2,0xC6B3, +0xC6B4,0xC6B5,0xC6B6,0xC6B7,0xC6B8,0xC6B9,0xC6BA,0xC6BB, +0xC6BC,0xC6BD,0xC6BE,0xC6BF,0xC6C0,0xC6C1,0xC6C2,0xC6C3, +0xC6C4,0xC6C5,0xC6C6,0xC6C7,0xC6C8,0xC6C9,0xC6CA,0xC6CB, +0xC6CC,0xC6CD,0xC6CE,0xC6CF,0xC6D0,0xC6D1,0xC6D2,0xC6D3, +0xC6D4,0xC6D5,0xC6D6,0xC6D7,0xC6D8,0xC6D9,0xC6DA,0xC6DB, +0xC6DC,0xC6DD,0xC6DE,0xC6DF,0xC6E0,0xC6E1,0xC6E2,0xC6E3, +0xC6E4,0xC6E5,0xC6E6,0xC6E7,0xC6E8,0xC6E9,0xC6EA,0xC6EB, +0xC6EC,0xC6ED,0xC6EE,0xC6EF,0xC6F0,0xC6F1,0xC6F2,0xC6F3, +0xC6F4,0xC6F5,0xC6F6,0xC6F7, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xC6A2,0xC6A3, 0, + 0,0xC6F8,0xC6F9,0xC6FA,0xC6FB,0xC6FC,0xC6FD,0xC6FE, +0xC740,0xC741,0xC742,0xC743,0xC744,0xC745,0xC746,0xC747, +0xC748,0xC749,0xC74A,0xC74B,0xC74C,0xC74D,0xC74E,0xC74F, +0xC750,0xC751,0xC752,0xC753,0xC754,0xC755,0xC756,0xC757, +0xC758,0xC759,0xC75A,0xC75B,0xC75C,0xC75D,0xC75E,0xC75F, +0xC760,0xC761,0xC762,0xC763,0xC764,0xC765,0xC766,0xC767, +0xC768,0xC769,0xC76A,0xC76B,0xC76C,0xC76D,0xC76E,0xC76F, +0xC770,0xC771,0xC772,0xC773,0xC774,0xC775,0xC776,0xC777, +0xC778,0xC779,0xC77A,0xC77B,0xC77C,0xC77D,0xC77E,0xC7A1, +0xC7A2,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7A7,0xC7A8,0xC7A9, +0xC7AA,0xC7AB,0xC7AC,0xC7AD,0xC7AE,0xC7AF,0xC7B0, 0, + 0, 0, 0, 0, 0, 0,0xC6A1, 0, + 0, 0, 0, 0, 0,0xA374,0xA375,0xA376, +0xA377,0xA378,0xA379,0xA37A,0xA37B,0xA37C,0xA37D,0xA37E, +0xA3A1,0xA3A2,0xA3A3,0xA3A4,0xA3A5,0xA3A6,0xA3A7,0xA3A8, +0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF,0xA3B0, +0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,0xA3B8, +0xA3B9,0xA3BA}; + +/* page 5 0x32A3-0x32A3 */ +static const uint16 tab_uni_big55[]={ +0xA1C0}; + +/* page 6 0x338E-0x33D5 */ +static const uint16 tab_uni_big56[]={ +0xA255,0xA256, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA250,0xA251, +0xA252, 0, 0,0xA254, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA257, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA253, 0, 0,0xA1EB,0xA1EA, 0, 0,0xA24F +}; + +/* page 7 0x4E00-0x9483 */ +static const uint16 tab_uni_big57[]={ +0xA440,0xA442, 0,0xA443, 0, 0, 0,0xC945, +0xA456,0xA454,0xA457,0xA455,0xC946,0xA4A3,0xC94F,0xC94D, +0xA4A2,0xA4A1, 0, 0,0xA542,0xA541,0xA540, 0, +0xA543,0xA4FE, 0, 0, 0, 0,0xA5E0,0xA5E1, + 0, 0, 0, 0, 0, 0,0xA8C3, 0, + 0, 0, 0,0xA458, 0,0xA4A4,0xC950, 0, +0xA4A5,0xC963,0xA6EA,0xCBB1, 0, 0, 0, 0, +0xA459,0xA4A6, 0,0xA544,0xC964, 0, 0, 0, + 0, 0,0xC940,0xA444, 0,0xA45B, 0,0xC947, +0xA45C, 0, 0,0xA4A7, 0,0xA545,0xA547,0xA546, + 0, 0,0xA5E2,0xA5E3, 0, 0,0xA8C4, 0, +0xADBC,0xA441, 0, 0,0xC941,0xA445,0xA45E,0xA45D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA5E4, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA8C5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xB0AE,0xD44B, + 0, 0,0xB6C3,0xDCB1,0xDCB2, 0,0xA446, 0, +0xA4A9, 0, 0,0xA8C6,0xA447,0xC948,0xA45F, 0, + 0,0xA4AA,0xA4AC,0xC951,0xA4AD,0xA4AB, 0, 0, + 0,0xA5E5, 0,0xA8C7, 0, 0,0xA8C8,0xAB45, + 0,0xA460,0xA4AE, 0,0xA5E6,0xA5E8,0xA5E7, 0, +0xA6EB, 0, 0,0xA8C9,0xA8CA,0xAB46,0xAB47, 0, + 0, 0, 0,0xADBD, 0, 0,0xDCB3, 0, + 0,0xF6D6,0xA448, 0, 0, 0, 0, 0, +0xA4B0,0xA4AF,0xC952,0xA4B1,0xA4B7, 0,0xA4B2,0xA4B3, +0xC954,0xC953,0xA4B5,0xA4B6, 0,0xA4B4, 0, 0, + 0, 0, 0, 0,0xA54A,0xA54B,0xA54C,0xA54D, +0xA549,0xA550,0xC96A, 0,0xC966,0xC969,0xA551,0xA561, + 0,0xC968, 0,0xA54E,0xA54F,0xA548, 0, 0, +0xC965,0xC967, 0, 0, 0, 0, 0, 0, +0xA5F5,0xC9B0,0xA5F2,0xA5F6,0xC9BA,0xC9AE,0xA5F3,0xC9B2, + 0, 0, 0,0xA5F4, 0,0xA5F7, 0,0xA5E9, +0xC9B1,0xA5F8,0xC9B5, 0,0xC9B9,0xC9B6, 0, 0, +0xC9B3,0xA5EA,0xA5EC,0xA5F9, 0,0xA5EE,0xC9AB,0xA5F1, +0xA5EF,0xA5F0,0xC9BB,0xC9B8,0xC9AF,0xA5ED, 0, 0, +0xC9AC,0xA5EB, 0, 0, 0,0xC9B4, 0, 0, + 0, 0,0xC9B7, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xC9AD,0xCA66, 0,0xA742, +0xA6F4, 0, 0,0xCA67,0xA6F1, 0,0xA744, 0, +0xA6F9, 0,0xA6F8,0xCA5B,0xA6FC,0xA6F7,0xCA60,0xCA68, + 0,0xCA64, 0,0xA6FA, 0, 0,0xA6FD,0xA6EE, +0xA747,0xCA5D, 0, 0,0xCBBD,0xA6EC,0xA743,0xA6ED, +0xA6F5,0xA6F6,0xCA62,0xCA5E,0xA6FB,0xA6F3,0xCA5A,0xA6EF, +0xCA65,0xA745,0xA748,0xA6F2,0xA740,0xA746,0xA6F0,0xCA63, +0xA741,0xCA69,0xCA5C,0xA6FE,0xCA5F, 0, 0,0xCA61, + 0,0xA8D8,0xCBBF,0xCBCB,0xA8D0, 0,0xCBCC,0xA8CB, +0xA8D5, 0, 0,0xA8CE,0xCBB9,0xA8D6,0xCBB8,0xCBBC, +0xCBC3,0xCBC1,0xA8DE,0xA8D9,0xCBB3,0xCBB5,0xA8DB,0xA8CF, +0xCBB6,0xCBC2,0xCBC9,0xA8D4,0xCBBB,0xCBB4,0xA8D3,0xCBB7, +0xA8D7,0xCBBA, 0,0xA8D2, 0,0xA8CD, 0,0xA8DC, +0xCBC4,0xA8DD,0xCBC8, 0,0xCBC6,0xCBCA,0xA8DA,0xCBBE, +0xCBB2, 0,0xCBC0,0xA8D1,0xCBC5,0xA8CC,0xCBC7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xAB56,0xAB4A, + 0, 0,0xCDE0,0xCDE8, 0,0xAB49,0xAB51,0xAB5D, + 0,0xCDEE,0xCDEC,0xCDE7, 0, 0, 0,0xAB4B, +0xCDED,0xCDE3,0xAB59,0xAB50,0xAB58,0xCDDE, 0,0xCDEA, + 0,0xCDE1,0xAB54,0xCDE2, 0,0xCDDD,0xAB5B,0xAB4E, +0xAB57,0xAB4D, 0,0xCDDF,0xCDE4, 0,0xCDEB,0xAB55, +0xAB52,0xCDE6,0xAB5A,0xCDE9,0xCDE5,0xAB4F,0xAB5C,0xAB53, +0xAB4C,0xAB48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCDEF, 0,0xADD7,0xADC1, + 0,0xADD1, 0,0xADD6,0xD0D0,0xD0CF,0xD0D4,0xD0D5, +0xADC4, 0,0xADCD, 0, 0, 0,0xADDA, 0, +0xADCE, 0, 0, 0, 0,0xD0C9,0xADC7,0xD0CA, + 0,0xADDC, 0,0xADD3,0xADBE,0xADBF,0xD0DD,0xB0BF, + 0,0xADCC,0xADCB,0xD0CB,0xADCF,0xD45B,0xADC6,0xD0D6, +0xADD5,0xADD4,0xADCA,0xD0CE,0xD0D7, 0,0xD0C8,0xADC9, +0xD0D8,0xADD2,0xD0CC,0xADC0, 0,0xADC3,0xADC2,0xD0D9, +0xADD0,0xADC5,0xADD9,0xADDB,0xD0D3,0xADD8, 0,0xD0DB, +0xD0CD,0xD0DC, 0,0xD0D1, 0,0xD0DA, 0,0xD0D2, + 0, 0, 0, 0,0xADC8, 0, 0, 0, +0xD463,0xD457, 0,0xB0B3, 0,0xD45C,0xD462,0xB0B2, +0xD455,0xB0B6,0xD459,0xD452,0xB0B4,0xD456,0xB0B9,0xB0BE, + 0,0xD467, 0,0xD451, 0,0xB0BA, 0,0xD466, + 0, 0,0xB0B5,0xD458,0xB0B1,0xD453,0xD44F,0xD45D, +0xD450,0xD44E,0xD45A,0xD460,0xD461,0xB0B7, 0, 0, +0xD85B,0xD45E,0xD44D,0xD45F, 0,0xB0C1,0xD464,0xB0C0, +0xD44C, 0,0xD454,0xD465,0xB0BC,0xB0BB,0xB0B8,0xB0BD, + 0, 0,0xB0AF, 0, 0,0xB0B0, 0, 0, +0xB3C8, 0,0xD85E,0xD857, 0,0xB3C5, 0,0xD85F, + 0, 0, 0,0xD855,0xD858,0xB3C4,0xD859, 0, + 0,0xB3C7,0xD85D, 0,0xD853,0xD852,0xB3C9, 0, +0xB3CA,0xB3C6,0xB3CB,0xD851,0xD85C,0xD85A,0xD854, 0, + 0, 0,0xB3C3,0xD856, 0, 0, 0, 0, + 0, 0, 0, 0,0xB6CA,0xB6C4,0xDCB7,0xB6CD, +0xDCBD,0xDCC0,0xB6C6,0xB6C7,0xDCBA,0xB6C5,0xDCC3,0xB6CB, +0xDCC4, 0,0xDCBF,0xB6CC, 0,0xDCB4,0xB6C9,0xDCB5, + 0,0xDCBE,0xDCBC, 0,0xDCB8,0xB6C8,0xDCB6,0xB6CE, +0xDCBB,0xDCC2,0xDCB9,0xDCC1, 0, 0,0xB9B6,0xB9B3, + 0,0xB9B4, 0,0xE0F9,0xE0F1,0xB9B2,0xB9AF,0xE0F2, + 0, 0,0xB9B1,0xE0F5, 0,0xE0F7, 0, 0, +0xE0FE, 0, 0,0xE0FD,0xE0F8,0xB9AE,0xE0F0,0xB9AC, +0xE0F3,0xB9B7,0xE0F6, 0,0xE0FA,0xB9B0,0xB9AD,0xE0FC, +0xE0FB,0xB9B5, 0,0xE0F4, 0,0xBBF8,0xE4EC, 0, +0xE4E9,0xBBF9, 0,0xBBF7, 0,0xE4F0,0xE4ED,0xE4E6, +0xBBF6, 0,0xBBFA,0xE4E7,0xBBF5,0xBBFD,0xE4EA,0xE4EB, +0xBBFB,0xBBFC,0xE4F1,0xE4EE,0xE4EF, 0, 0, 0, +0xBEAA,0xE8F8,0xBEA7,0xE8F5,0xBEA9,0xBEAB, 0,0xE8F6, +0xBEA8, 0,0xE8F7, 0,0xE8F4, 0, 0,0xC076, +0xECBD,0xC077,0xECBB, 0,0xECBC,0xECBA,0xECB9, 0, + 0,0xECBE,0xC075, 0, 0,0xEFB8,0xEFB9, 0, +0xE4E8,0xEFB7,0xC078,0xC35F,0xF1EB,0xF1EC, 0,0xC4D7, +0xC4D8,0xF5C1,0xF5C0,0xC56C,0xC56B,0xF7D0, 0,0xA449, +0xA461,0xA4B9, 0,0xA4B8,0xA553,0xA552,0xA5FC,0xA5FB, +0xA5FD,0xA5FA, 0,0xA74A,0xA749,0xA74B, 0, 0, + 0, 0,0xA8E0, 0,0xA8DF,0xA8E1, 0,0xAB5E, + 0,0xA259,0xD0DE,0xA25A,0xB0C2,0xA25C,0xA25B,0xD860, + 0,0xA25D,0xB9B8,0xA25E, 0,0xA44A, 0,0xA4BA, +0xA5FE,0xA8E2, 0,0xA44B,0xA4BD,0xA4BB,0xA4BC, 0, + 0,0xA640, 0, 0, 0,0xA74C,0xA8E4,0xA8E3, +0xA8E5, 0, 0, 0,0xADDD, 0, 0, 0, +0xBEAC, 0, 0, 0, 0, 0, 0,0xC94E, + 0,0xA554,0xA555, 0, 0,0xA641, 0,0xCA6A, + 0,0xAB60,0xAB5F,0xD0E0,0xD0DF,0xB0C3, 0,0xA4BE, +0xC955, 0, 0, 0, 0, 0,0xCBCD, 0, +0xAB61, 0,0xADE0, 0,0xADDE,0xADDF, 0, 0, + 0, 0,0xBEAD, 0,0xA556, 0, 0, 0, +0xA642,0xC9BC, 0, 0, 0, 0,0xA74D,0xA74E, + 0,0xCA6B, 0, 0,0xCBCE,0xA8E6,0xCBCF, 0, + 0, 0, 0, 0,0xD0E2,0xD0E3,0xADE3, 0, +0xD0E4, 0,0xD0E1,0xADE4,0xADE2,0xADE1,0xD0E5, 0, +0xD468, 0, 0, 0,0xD861, 0, 0,0xDCC5, +0xE140, 0, 0, 0,0xBBFE,0xBEAE,0xE8F9, 0, +0xA44C,0xA45A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB0C4,0xB3CD, 0,0xB9B9, 0,0xC942,0xA4BF, 0, +0xA559,0xA557,0xA558, 0, 0,0xA8E7, 0, 0, +0xA44D,0xA44E, 0,0xA462, 0, 0,0xA4C0,0xA4C1, +0xA4C2,0xC9BE,0xA55A, 0,0xC96B, 0,0xA646, 0, +0xC9BF,0xA644,0xA645,0xC9BD, 0, 0,0xA647,0xA643, + 0, 0, 0, 0,0xCA6C,0xAAEC,0xCA6D, 0, + 0,0xCA6E, 0, 0,0xA750,0xA74F, 0, 0, +0xA753,0xA751,0xA752, 0, 0, 0,0xA8ED, 0, +0xA8EC,0xCBD4,0xCBD1,0xCBD2, 0,0xCBD0,0xA8EE,0xA8EA, +0xA8E9, 0,0xA8EB,0xA8E8, 0, 0, 0, 0, + 0,0xA8EF, 0,0xAB63,0xCDF0, 0,0xCBD3,0xAB68, + 0,0xCDF1,0xAB64,0xAB67,0xAB66,0xAB65,0xAB62, 0, + 0, 0,0xD0E8, 0,0xADE7,0xD0EB,0xADE5, 0, + 0, 0,0xD0E7,0xADE8,0xADE6,0xADE9,0xD0E9,0xD0EA, + 0,0xD0E6,0xD0EC, 0, 0, 0, 0, 0, + 0,0xB3D1,0xB0C5,0xD469,0xD46B,0xD46A,0xD46C,0xB0C6, + 0, 0,0xB3CE, 0,0xB3CF,0xB3D0, 0,0xB6D0, +0xDCC7, 0,0xDCC6,0xDCC8,0xDCC9,0xB6D1, 0,0xB6CF, +0xE141,0xE142,0xB9BB,0xB9BA,0xE35A, 0, 0,0xBC40, +0xBC41,0xBC42,0xBC44,0xE4F2,0xE4F3,0xBC43, 0, 0, + 0,0xBEAF, 0,0xBEB0, 0, 0,0xF1ED,0xF5C3, +0xF5C2,0xF7D1, 0,0xA44F, 0, 0, 0,0xA55C, +0xA55B, 0, 0,0xA648, 0, 0,0xC9C0, 0, + 0,0xA755,0xA756,0xA754,0xA757,0xCA6F,0xCA70, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA8F1,0xCBD5, 0,0xA8F0, 0, +0xCDF2,0xAB6C,0xCDF3,0xAB6B, 0, 0, 0,0xAB69, + 0,0xAB6A, 0, 0, 0,0xD0ED, 0, 0, + 0, 0,0xB0C7,0xD46E, 0,0xB0CA,0xD46D,0xB1E5, +0xB0C9,0xB0C8, 0,0xB3D4, 0,0xB3D3,0xB3D2,0xB6D2, + 0, 0,0xB6D5,0xB6D6,0xB6D4, 0,0xB6D3, 0, + 0,0xE143, 0,0xE144, 0, 0, 0,0xE4F5, +0xBC45,0xE4F4, 0,0xBEB1,0xECBF,0xC079, 0,0xF1EE, +0xC455, 0,0xA463,0xA4C3,0xC956, 0,0xA4C4,0xA4C5, + 0, 0, 0, 0, 0,0xA55D,0xA55E, 0, +0xA649,0xCA71,0xCBD6,0xCBD7, 0,0xAB6D,0xD0EE,0xB0CC, +0xB0CB,0xD863,0xD862, 0, 0,0xA450,0xA4C6,0xA55F, + 0,0xB0CD,0xC943, 0,0xC96C,0xA560, 0,0xC9C2, +0xA64B,0xA64A,0xC9C1,0xA758, 0, 0, 0, 0, + 0, 0,0xADEA, 0, 0,0xD46F, 0,0xB6D7, +0xE145,0xB9BC, 0, 0,0xE8FA, 0, 0,0xF3FD, + 0,0xA4C7, 0, 0,0xCBD8,0xCDF4,0xB0D0,0xB0CE, +0xB0CF,0xA451, 0,0xA464,0xA2CD,0xA4CA, 0,0xA4C9, +0xA4C8,0xA563,0xA562, 0,0xC96D,0xC9C3, 0, 0, + 0,0xA8F5,0xA8F2,0xA8F4,0xA8F3, 0, 0,0xAB6E, + 0, 0,0xB3D5, 0,0xA452, 0,0xA4CB, 0, +0xA565,0xA564, 0,0xCA72, 0, 0,0xA8F6, 0, + 0, 0, 0, 0,0xC957, 0,0xA567,0xA566, +0xA64C,0xA64D,0xCA73,0xA759, 0,0xA75A, 0,0xA8F7, +0xA8F8,0xA8F9, 0,0xAB6F,0xCDF5, 0, 0,0xADEB, + 0, 0,0xC944, 0,0xA4CC, 0, 0, 0, + 0, 0,0xC9C4, 0, 0, 0,0xCA74,0xCA75, + 0, 0,0xCBD9, 0,0xCBDA, 0,0xCDF7,0xCDF6, +0xCDF9,0xCDF8,0xAB70, 0,0xD470,0xADED,0xD0EF,0xADEC, + 0, 0, 0, 0,0xD864,0xB3D6, 0,0xD865, + 0, 0, 0, 0,0xE146,0xB9BD, 0, 0, + 0, 0,0xBC46, 0,0xF1EF, 0, 0, 0, + 0,0xC958, 0,0xA568, 0, 0, 0, 0, + 0, 0, 0,0xB0D1, 0, 0, 0, 0, +0xA453,0xA465,0xA4CE,0xA4CD, 0,0xA4CF, 0, 0, + 0, 0, 0, 0,0xA8FB, 0,0xA8FA,0xA8FC, + 0, 0, 0,0xAB71, 0, 0, 0,0xADEE, + 0,0xE8FB,0xC24F,0xA466,0xA56A,0xA579,0xA574, 0, +0xA56F,0xA56E,0xA575,0xA573,0xA56C,0xA57A,0xA56D,0xA569, +0xA578,0xA577,0xA576,0xA56B, 0,0xA572, 0, 0, +0xA571, 0, 0,0xA57B,0xA570, 0, 0, 0, + 0,0xA653, 0,0xA659,0xA655, 0,0xA65B,0xC9C5, +0xA658,0xA64E,0xA651,0xA654,0xA650,0xA657,0xA65A,0xA64F, +0xA652,0xA656,0xA65C, 0, 0, 0, 0, 0, +0xCA7E,0xCA7B, 0,0xA767,0xCA7C,0xA75B,0xA75D,0xA775, +0xA770, 0, 0, 0,0xCAA5,0xCA7D,0xA75F,0xA761, +0xCAA4,0xA768,0xCA78,0xA774,0xA776,0xA75C,0xA76D, 0, +0xCA76,0xA773, 0,0xA764, 0,0xA76E,0xA76F,0xCA77, +0xA76C,0xA76A, 0,0xA76B,0xA771,0xCAA1,0xA75E, 0, +0xA772,0xCAA3,0xA766,0xA763, 0,0xCA7A,0xA762,0xCAA6, +0xA765, 0,0xA769, 0, 0, 0,0xA760,0xCAA2, + 0, 0, 0, 0,0xCA79, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCBEB,0xCBEA,0xA94F,0xCBED,0xCBEF,0xCBE4,0xCBE7,0xCBEE, +0xA950, 0, 0,0xCBE1,0xCBE5, 0, 0,0xCBE9, +0xCE49,0xA94B,0xCE4D,0xA8FD,0xCBE6,0xA8FE,0xA94C,0xA945, +0xA941, 0,0xCBE2,0xA944,0xA949,0xA952,0xCBE3,0xCBDC, +0xA943,0xCBDD,0xCBDF, 0,0xA946, 0,0xA948,0xCBDB, +0xCBE0, 0, 0,0xA951,0xA94D,0xCBE8,0xA953, 0, +0xA94A,0xCBDE,0xA947, 0, 0,0xA942,0xA940, 0, +0xCBEC, 0,0xA94E, 0, 0, 0, 0, 0, +0xCE48,0xCDFB,0xCE4B, 0, 0,0xCDFD,0xAB78,0xABA8, +0xAB74,0xABA7,0xAB7D,0xABA4,0xAB72,0xCDFC,0xCE43,0xABA3, +0xCE4F,0xABA5, 0,0xAB79, 0, 0,0xCE45,0xCE42, +0xAB77, 0,0xCDFA,0xABA6,0xCE4A,0xAB7C,0xCE4C,0xABA9, +0xAB73,0xAB7E,0xAB7B,0xCE40,0xABA1,0xCE46,0xCE47,0xAB7A, +0xABA2,0xAB76, 0, 0, 0, 0,0xAB75,0xCDFE, + 0, 0, 0, 0, 0, 0,0xCE44, 0, + 0, 0, 0, 0, 0, 0,0xCE4E, 0, +0xD144,0xADFB,0xD0F1, 0,0xD0F6,0xADF4,0xAE40,0xD0F4, +0xADEF,0xADF9,0xADFE,0xD0FB, 0,0xADFA,0xADFD, 0, + 0,0xD0FE,0xADF5,0xD0F5, 0, 0, 0,0xD142, +0xD143, 0,0xADF7,0xD141,0xADF3,0xAE43, 0,0xD0F8, + 0,0xADF1, 0,0xD146,0xD0F9,0xD0FD,0xADF6,0xAE42, +0xD0FA,0xADFC,0xD140,0xD147,0xD4A1, 0,0xD145,0xAE44, +0xADF0,0xD0FC,0xD0F3, 0,0xADF8, 0, 0,0xD0F2, + 0, 0,0xD0F7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD0F0,0xAE41, + 0, 0,0xD477, 0,0xB0E4,0xD4A7,0xB0E2,0xB0DF, +0xD47C,0xB0DB,0xD4A2,0xB0E6,0xD476,0xD47B,0xD47A,0xADF2, +0xB0E1,0xD4A5, 0,0xD4A8,0xD473, 0,0xB3E8, 0, +0xD4A9,0xB0E7, 0,0xB0D9,0xB0D6,0xD47E,0xB0D3, 0, +0xD4A6, 0,0xB0DA,0xD4AA, 0,0xD474,0xD4A4,0xB0DD, +0xD475,0xD478,0xD47D, 0, 0,0xB0DE,0xB0DC,0xB0E8, + 0, 0, 0, 0,0xB0E3, 0,0xB0D7,0xB1D2, + 0,0xB0D8,0xD479,0xB0E5,0xB0E0,0xD4A3,0xB0D5, 0, + 0, 0,0xB0D4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD471,0xD472,0xD86A, + 0, 0, 0,0xB3D7,0xB3DA,0xD875,0xB3EE,0xD878, +0xB3D8,0xD871,0xB3DE,0xB3E4,0xB5BD, 0, 0,0xB3E2, +0xD86E,0xB3EF,0xB3DB,0xB3E3,0xD876,0xDCD7,0xD87B,0xD86F, + 0,0xD866,0xD873,0xD86D,0xB3E1,0xD879, 0, 0, +0xB3DD,0xB3F1,0xB3EA, 0,0xB3DF,0xB3DC, 0,0xB3E7, + 0,0xD87A,0xD86C,0xD872,0xD874,0xD868,0xD877,0xB3D9, +0xD867, 0,0xB3E0,0xB3F0,0xB3EC,0xD869,0xB3E6, 0, + 0,0xB3ED,0xB3E9,0xB3E5, 0,0xD870, 0, 0, + 0, 0, 0,0xB3EB, 0, 0, 0,0xDCD5, +0xDCD1, 0,0xDCE0,0xDCCA,0xDCD3,0xB6E5,0xB6E6,0xB6DE, +0xDCDC,0xB6E8,0xDCCF,0xDCCE,0xDCCC,0xDCDE,0xB6DC,0xDCD8, +0xDCCD,0xB6DF,0xDCD6,0xB6DA,0xDCD2,0xDCD9,0xDCDB, 0, + 0,0xDCDF,0xB6E3,0xDCCB,0xB6DD,0xDCD0, 0,0xB6D8, + 0,0xB6E4,0xDCDA,0xB6E0,0xB6E1,0xB6E7,0xB6DB,0xA25F, +0xB6D9,0xDCD4, 0, 0, 0, 0, 0,0xB6E2, + 0, 0,0xDCDD, 0, 0, 0,0xB9CD,0xB9C8, + 0,0xE155,0xE151, 0,0xE14B,0xB9C2,0xB9BE,0xE154, +0xB9BF,0xE14E,0xE150, 0,0xE153, 0,0xB9C4, 0, +0xB9CB,0xB9C5, 0, 0,0xE149,0xB9C6,0xB9C7,0xE14C, +0xB9CC, 0,0xE14A,0xE14F,0xB9C3,0xE148,0xB9C9,0xB9C1, + 0, 0, 0,0xB9C0,0xE14D,0xE152, 0,0xB9CA, + 0, 0, 0, 0, 0, 0, 0,0xE147, + 0,0xBC4D,0xE547, 0,0xE544, 0,0xBC47,0xBC53, +0xBC54, 0,0xBC4A,0xE542,0xBC4C,0xE4F9,0xBC52, 0, +0xE546,0xBC49,0xE548,0xBC48, 0,0xE543,0xE545,0xBC4B, +0xE541,0xE4FA,0xE4F7, 0, 0,0xD86B,0xE4FD, 0, +0xE4F6,0xE4FC,0xE4FB, 0,0xE4F8, 0,0xBC4F, 0, + 0, 0, 0,0xBC4E, 0, 0, 0,0xBC50, +0xE4FE,0xBEB2,0xE540, 0, 0, 0,0xE945, 0, +0xE8FD, 0,0xBEBE,0xE942,0xBEB6,0xBEBA,0xE941, 0, +0xBEB9,0xBEB5,0xBEB8,0xBEB3,0xBEBD,0xE943,0xE8FE,0xBEBC, +0xE8FC,0xBEBB,0xE944,0xE940,0xBC51, 0,0xBEBF,0xE946, +0xBEB7,0xBEB4, 0, 0, 0, 0,0xECC6,0xECC8, +0xC07B,0xECC9,0xECC7,0xECC5,0xECC4,0xC07D,0xECC3,0xC07E, + 0, 0, 0, 0,0xECC1,0xECC2,0xC07A,0xC0A1, +0xC07C, 0, 0,0xECC0, 0,0xC250, 0,0xEFBC, +0xEFBA,0xEFBF,0xEFBD, 0,0xEFBB,0xEFBE, 0, 0, + 0, 0, 0, 0, 0,0xC360,0xF1F2,0xF1F3, +0xC456, 0,0xF1F4,0xF1F0,0xF1F5,0xF1F1,0xC251, 0, + 0, 0,0xF3FE,0xF441,0xC459,0xF440,0xC458,0xC457, + 0, 0, 0, 0,0xC45A,0xF5C5,0xF5C6, 0, +0xC4DA,0xC4D9,0xC4DB,0xF5C4, 0,0xF6D8,0xF6D7, 0, +0xC56D,0xC56F,0xC56E,0xF6D9,0xC5C8,0xF8A6, 0, 0, + 0,0xC5F1, 0,0xF8A5,0xF8EE, 0, 0,0xC949, + 0, 0,0xA57D,0xA57C, 0,0xA65F,0xA65E,0xC9C7, +0xA65D,0xC9C6, 0, 0,0xA779,0xCAA9, 0,0xCAA8, + 0, 0,0xA777,0xA77A, 0, 0,0xCAA7, 0, +0xA778, 0, 0, 0, 0, 0, 0,0xCBF0, + 0,0xCBF1,0xA954, 0, 0, 0, 0,0xABAA, + 0,0xD148,0xD149,0xAE45,0xAE46, 0, 0,0xD4AC, +0xB0E9,0xB0EB,0xD4AB,0xB0EA,0xD87C,0xB3F2, 0, 0, + 0, 0,0xB6E9,0xB6EA,0xDCE1, 0,0xB9CF, 0, +0xB9CE, 0,0xE549,0xE948,0xE947, 0,0xF96B,0xA467, +0xC959, 0,0xC96E,0xC96F, 0, 0, 0, 0, +0xA662,0xA666,0xC9C9, 0,0xA664,0xA663,0xC9C8,0xA665, +0xA661, 0, 0,0xA660,0xC9CA, 0, 0, 0, + 0, 0, 0,0xA7A6, 0, 0,0xA7A3, 0, +0xA77D,0xCAAA, 0, 0, 0,0xCAAB, 0,0xA7A1, + 0,0xCAAD,0xA77B,0xCAAE,0xCAAC,0xA77E,0xA7A2,0xA7A5, +0xA7A4,0xA77C,0xCAAF, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA959,0xCBFE, 0,0xA95B, 0,0xA95A, 0, +0xCC40,0xA958,0xA957,0xCBF5, 0,0xCBF4, 0,0xCBF2, +0xCBF7,0xCBF6,0xCBF3,0xCBFC,0xCBFD,0xCBFA,0xCBF8,0xA956, + 0, 0, 0,0xCBFB,0xA95C,0xCC41, 0, 0, +0xCBF9, 0,0xABAB,0xA955, 0, 0, 0, 0, + 0, 0, 0,0xABAC,0xCE54, 0, 0,0xCE5A, + 0, 0, 0,0xABB2,0xCE58,0xCE5E, 0,0xCE55, +0xCE59,0xCE5B,0xCE5D,0xCE57, 0,0xCE56,0xCE51,0xCE52, +0xABAD, 0,0xABAF,0xABAE,0xCE53,0xCE5C, 0, 0, + 0, 0, 0, 0, 0, 0,0xABB1, 0, + 0, 0, 0, 0, 0,0xCE50,0xD153, 0, +0xD152,0xD157,0xD14E, 0,0xD151,0xD150, 0,0xD154, + 0,0xD158,0xAE47,0xAE4A, 0, 0,0xD14F,0xD155, + 0, 0, 0,0xAE49,0xD14A, 0,0xABB0,0xD4BA, +0xD156, 0,0xD14D, 0,0xAE48,0xD14C, 0, 0, + 0, 0, 0, 0,0xD4B1, 0, 0,0xB0EC, +0xB0F0,0xD4C1,0xD4AF,0xD4BD,0xB0F1,0xD4BF, 0,0xD4C5, + 0,0xD4C9, 0, 0,0xD4C0,0xD4B4,0xD4BC, 0, +0xD4CA,0xD4C8,0xD4BE,0xD4B9,0xD4B2,0xD8A6,0xD4B0,0xB0F5, +0xD4B7,0xB0F6,0xB0F2,0xD4AD,0xD4C3,0xD4B5, 0, 0, +0xD4B3,0xD4C6,0xB0F3, 0,0xD4CC,0xB0ED,0xB0EF,0xD4BB, +0xD4B6,0xAE4B,0xB0EE,0xD4B8,0xD4C7,0xD4CB,0xD4C2, 0, +0xD4C4, 0, 0, 0,0xD4AE, 0, 0, 0, + 0,0xD8A1, 0,0xD8AA,0xD8A9,0xB3FA,0xD8A2, 0, +0xB3FB,0xB3F9, 0,0xD8A4,0xB3F6,0xD8A8, 0,0xD8A3, +0xD8A5,0xD87D,0xB3F4, 0,0xD8B2,0xD8B1,0xD8AE,0xB3F3, +0xB3F7,0xB3F8,0xD14B,0xD8AB,0xB3F5,0xB0F4,0xD8AD,0xD87E, +0xD8B0,0xD8AF, 0,0xD8B3, 0,0xDCEF, 0,0xD8AC, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD8A7,0xDCE7,0xB6F4,0xB6F7,0xB6F2,0xDCE6,0xDCEA,0xDCE5, + 0,0xB6EC,0xB6F6,0xDCE2,0xB6F0,0xDCE9, 0,0xB6EE, +0xB6ED,0xDCEC,0xB6EF,0xDCEE, 0,0xDCEB,0xB6EB, 0, + 0, 0,0xB6F5,0xDCF0,0xDCE4,0xDCED, 0, 0, +0xDCE3, 0, 0,0xB6F1, 0,0xB6F3, 0,0xDCE8, + 0,0xDCF1, 0, 0,0xE15D,0xB9D0,0xE163, 0, + 0,0xB9D5,0xE15F,0xE166,0xE157,0xB9D7,0xB9D1,0xE15C, +0xBC55,0xE15B,0xE164,0xB9D2, 0,0xB9D6,0xE15A,0xE160, +0xE165,0xE156,0xB9D4,0xE15E, 0, 0,0xE162,0xE168, +0xE158,0xE161, 0,0xB9D3,0xE167, 0, 0, 0, +0xE159, 0, 0, 0,0xBC59,0xE54B,0xBC57,0xBC56, +0xE54D,0xE552, 0,0xE54E, 0,0xE551,0xBC5C, 0, +0xBEA5,0xBC5B, 0,0xE54A,0xE550, 0,0xBC5A,0xE54F, + 0,0xE54C, 0,0xBC58, 0, 0, 0, 0, + 0, 0,0xE94D,0xF9D9,0xE94F,0xE94A,0xBEC1,0xE94C, + 0,0xBEC0,0xE94E, 0, 0,0xBEC3,0xE950,0xBEC2, +0xE949,0xE94B, 0, 0, 0, 0,0xC0A5,0xECCC, + 0,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2,0xECCA, 0, +0xC253,0xC252,0xF1F6,0xF1F8, 0,0xF1F7,0xC361,0xC362, + 0, 0,0xC363,0xF442,0xC45B, 0, 0,0xF7D3, +0xF7D2,0xC5F2, 0,0xA468,0xA4D0, 0, 0,0xA7A7, + 0, 0, 0, 0,0xCE5F, 0, 0, 0, + 0,0xB3FC,0xB3FD, 0,0xDCF2,0xB9D8,0xE169,0xE553, + 0, 0, 0,0xC95A, 0, 0,0xCAB0, 0, + 0, 0, 0, 0,0xCC42,0xCE60,0xD159,0xAE4C, + 0, 0,0xF1F9, 0,0xC4DC,0xA469,0xA57E,0xC970, + 0,0xA667,0xA668, 0,0xA95D, 0, 0, 0, +0xB0F7, 0,0xB9DA, 0,0xB9DB,0xB9D9, 0,0xA46A, + 0,0xA4D1,0xA4D3,0xA4D2,0xC95B,0xA4D4,0xA5A1,0xC971, + 0,0xA5A2, 0, 0, 0, 0, 0,0xA669, +0xA66A, 0, 0, 0,0xC9CB, 0,0xA7A8, 0, +0xCAB1, 0, 0, 0,0xA961,0xCC43, 0,0xA95F, +0xA960,0xA95E,0xD15A, 0, 0, 0,0xABB6,0xABB5, +0xABB7,0xABB4, 0,0xCE61,0xA962,0xABB3, 0,0xAE4D, +0xAE4E, 0,0xAE4F, 0,0xD4CD, 0, 0, 0, +0xB3FE,0xD8B4,0xB0F8, 0, 0, 0, 0,0xB6F8, + 0,0xB9DD,0xB9DC,0xE16A, 0,0xBC5D,0xBEC4, 0, +0xEFC0,0xF6DA,0xF7D4,0xA46B,0xA5A3, 0,0xA5A4,0xC9D1, +0xA66C,0xA66F, 0,0xC9CF,0xC9CD,0xA66E,0xC9D0,0xC9D2, +0xC9CC,0xA671,0xA670,0xA66D,0xA66B,0xC9CE, 0, 0, + 0, 0,0xA7B3, 0, 0,0xA7B0,0xCAB6,0xCAB9, +0xCAB8, 0,0xA7AA,0xA7B2, 0, 0,0xA7AF,0xCAB5, +0xCAB3,0xA7AE, 0, 0, 0,0xA7A9,0xA7AC, 0, +0xCAB4,0xCABB,0xCAB7,0xA7AD,0xA7B1,0xA7B4,0xCAB2,0xCABA, +0xA7AB, 0, 0, 0, 0, 0,0xA967,0xA96F, + 0,0xCC4F,0xCC48,0xA970,0xCC53,0xCC44,0xCC4B, 0, + 0,0xA966,0xCC45,0xA964,0xCC4C,0xCC50,0xA963, 0, +0xCC51,0xCC4A, 0,0xCC4D, 0,0xA972,0xA969,0xCC54, +0xCC52, 0,0xA96E,0xA96C,0xCC49,0xA96B,0xCC47,0xCC46, +0xA96A,0xA968,0xA971,0xA96D,0xA965, 0,0xCC4E, 0, +0xABB9, 0,0xABC0,0xCE6F,0xABB8,0xCE67,0xCE63, 0, +0xCE73,0xCE62, 0,0xABBB,0xCE6C,0xABBE,0xABC1, 0, +0xABBC,0xCE70,0xABBF, 0,0xAE56,0xCE76,0xCE64, 0, + 0,0xCE66,0xCE6D,0xCE71,0xCE75,0xCE72,0xCE6B,0xCE6E, + 0, 0,0xCE68,0xABC3,0xCE6A,0xCE69,0xCE74,0xABBA, +0xCE65,0xABC2, 0,0xABBD, 0, 0, 0, 0, + 0,0xAE5C,0xD162, 0,0xAE5B, 0, 0,0xD160, + 0,0xAE50, 0,0xAE55, 0,0xD15F,0xD15C,0xD161, +0xAE51,0xD15B, 0,0xAE54,0xAE52, 0,0xD163,0xAE53, +0xAE57, 0, 0,0xAE58, 0,0xAE5A, 0, 0, + 0,0xAE59, 0, 0, 0,0xD15D,0xD15E, 0, + 0, 0, 0,0xD164, 0,0xD4D4,0xB0F9,0xD8C2, +0xD4D3,0xD4E6, 0, 0,0xB140, 0,0xD4E4, 0, +0xB0FE,0xB0FA,0xD4ED,0xD4DD,0xD4E0, 0,0xB143,0xD4EA, +0xD4E2,0xB0FB,0xB144, 0,0xD4E7,0xD4E5, 0, 0, +0xD4D6,0xD4EB,0xD4DF,0xD4DA, 0,0xD4D0,0xD4EC,0xD4DC, +0xD4CF, 0,0xB142,0xD4E1,0xD4EE,0xD4DE,0xD4D2,0xD4D7, +0xD4CE, 0,0xB141, 0,0xD4DB,0xD4D8,0xB0FC,0xD4D1, + 0,0xD4E9,0xB0FD, 0,0xD4D9,0xD4D5, 0, 0, +0xD4E8, 0, 0, 0, 0, 0, 0,0xB440, +0xD8BB, 0,0xD8B8,0xD8C9,0xD8BD,0xD8CA, 0,0xB442, + 0, 0, 0,0xD8C6,0xD8C3, 0, 0, 0, + 0, 0,0xD8C4,0xD8C7,0xD8CB, 0,0xD4E3,0xD8CD, +0xDD47, 0,0xB443,0xD8CE,0xD8B6,0xD8C0, 0,0xD8C5, + 0, 0,0xB441,0xB444,0xD8CC,0xD8CF,0xD8BA,0xD8B7, + 0, 0,0xD8B9, 0, 0,0xD8BE,0xD8BC,0xB445, + 0,0xD8C8, 0, 0,0xD8BF, 0,0xD8C1,0xD8B5, +0xDCFA,0xDCF8,0xB742,0xB740,0xDD43,0xDCF9,0xDD44,0xDD40, +0xDCF7,0xDD46,0xDCF6,0xDCFD,0xB6FE,0xB6FD,0xB6FC,0xDCFB, +0xDD41,0xB6F9,0xB741, 0,0xDCF4, 0,0xDCFE,0xDCF3, +0xDCFC,0xB6FA,0xDD42,0xDCF5,0xB6FB,0xDD45, 0, 0, + 0, 0, 0, 0, 0,0xE16E,0xB9E2,0xB9E1, +0xB9E3,0xE17A,0xE170,0xE176,0xE16B,0xE179,0xE178,0xE17C, +0xE175,0xB9DE,0xE174,0xB9E4, 0,0xE16D,0xB9DF, 0, +0xE17B,0xB9E0,0xE16F,0xE172,0xE177,0xE171,0xE16C, 0, + 0, 0, 0,0xE173,0xE555,0xBC61,0xE558,0xE557, +0xE55A,0xE55C,0xF9DC,0xBC5F, 0,0xE556, 0,0xE554, + 0,0xE55D,0xE55B,0xE559, 0,0xE55F, 0,0xE55E, +0xBC63,0xBC5E, 0,0xBC60,0xBC62, 0, 0,0xE560, +0xE957, 0, 0,0xE956,0xE955, 0,0xE958,0xE951, + 0,0xE952,0xE95A,0xE953, 0,0xBEC5,0xE95C, 0, +0xE95B,0xE954, 0,0xECD1,0xC0A8,0xECCF,0xECD4,0xECD3, +0xE959, 0,0xC0A7, 0,0xECD2,0xECCE,0xECD6,0xECD5, +0xC0A6, 0,0xECD0, 0,0xBEC6, 0, 0, 0, +0xC254, 0, 0, 0,0xEFC1,0xF1FA,0xF1FB,0xF1FC, +0xC45C, 0, 0,0xC45D, 0,0xF443, 0,0xF5C8, +0xF5C7, 0, 0,0xF6DB,0xF6DC,0xF7D5,0xF8A7, 0, +0xA46C,0xA46D, 0,0xA46E,0xA4D5,0xA5A5,0xC9D3,0xA672, +0xA673, 0,0xA7B7,0xA7B8,0xA7B6,0xA7B5, 0,0xA973, + 0, 0,0xCC55,0xA975,0xA974,0xCC56, 0, 0, + 0,0xABC4, 0,0xAE5D,0xD165, 0,0xD4F0, 0, +0xB145,0xB447,0xD4EF,0xB446, 0,0xB9E5, 0,0xE17D, +0xBEC7, 0,0xC0A9,0xECD7, 0,0xC45E, 0,0xC570, + 0,0xC972, 0,0xA5A6,0xC973,0xA676, 0,0xA674, +0xA675,0xA677, 0,0xA7BA,0xA7B9, 0,0xCABC,0xA7BB, + 0, 0,0xCABD,0xCC57, 0,0xCC58, 0,0xA976, +0xA978,0xA97A,0xA977,0xA97B,0xA979, 0, 0, 0, + 0, 0,0xABC8,0xABC5,0xABC7,0xABC9,0xABC6,0xD166, +0xCE77, 0, 0, 0,0xD168,0xD167,0xAE63, 0, +0xAE5F, 0, 0,0xAE60,0xAE62,0xAE64,0xAE61, 0, +0xAE66,0xAE65, 0, 0, 0, 0, 0,0xB14A, +0xD4F2,0xD4F1,0xB149, 0,0xB148,0xB147,0xB14B,0xB146, + 0, 0,0xD8D5,0xD8D2,0xB449,0xD8D1,0xD8D6, 0, +0xB44B,0xD8D4,0xB448,0xB44A,0xD8D3, 0,0xDD48, 0, +0xDD49,0xDD4A, 0, 0, 0, 0,0xB9E6,0xB9EE, +0xE17E,0xB9E8,0xB9EC,0xE1A1,0xB9ED,0xB9E9,0xB9EA,0xB9E7, +0xB9EB,0xBC66,0xD8D0,0xBC67,0xBC65, 0,0xBC64,0xE95D, +0xBEC8,0xECD8,0xECD9, 0, 0,0xC364,0xC45F, 0, +0xA46F, 0,0xA678, 0, 0, 0, 0, 0, + 0,0xABCA, 0,0xD169,0xAE67, 0, 0,0xB14E, +0xB14D,0xB14C,0xB44C,0xB44D,0xD8D7,0xB9EF,0xBEC9,0xA470, +0xC95C,0xA4D6,0xC974, 0, 0,0xC9D4,0xA679, 0, + 0, 0,0xA97C, 0, 0, 0, 0,0xDD4B, + 0, 0,0xA471, 0,0xA4D7,0xC9D5, 0, 0, +0xCABE, 0,0xCABF, 0,0xA7BC, 0, 0, 0, +0xD8D8,0xB44E, 0,0xDD4C, 0, 0, 0,0xC0AA, +0xA472,0xA4A8,0xA4D8,0xC975,0xA5A7, 0,0xA7C0,0xA7BF, +0xA7BD,0xA7BE, 0, 0,0xCC59,0xA97E,0xA9A1,0xCC5A, +0xA97D, 0, 0,0xABCE,0xCE78,0xABCD,0xABCB,0xABCC, +0xAE6A,0xAE68, 0, 0,0xD16B,0xAE69,0xD16A, 0, +0xAE5E,0xD4F3, 0, 0,0xB150,0xB151, 0, 0, +0xB14F, 0,0xB9F0,0xE1A2,0xBC68,0xBC69, 0,0xE561, +0xC0AB,0xEFC2,0xEFC3, 0,0xC4DD,0xF8A8,0xC94B,0xA4D9, + 0,0xA473, 0,0xC977,0xC976, 0, 0, 0, + 0,0xA67A,0xC9D7,0xC9D8,0xC9D6, 0,0xC9D9, 0, + 0, 0, 0, 0, 0, 0,0xCAC7, 0, +0xCAC2,0xCAC4,0xCAC6,0xCAC3,0xA7C4,0xCAC0, 0,0xCAC1, +0xA7C1,0xA7C2,0xCAC5,0xCAC8,0xA7C3,0xCAC9, 0, 0, + 0, 0, 0, 0, 0,0xCC68, 0,0xCC62, +0xCC5D,0xA9A3,0xCC65,0xCC63,0xCC5C,0xCC69,0xCC6C,0xCC67, +0xCC60,0xA9A5,0xCC66,0xA9A6,0xCC61,0xCC64,0xCC5B,0xCC5F, +0xCC6B,0xA9A7, 0,0xA9A8, 0,0xCC5E,0xCC6A,0xA9A2, +0xA9A4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCEAB,0xCEA4, +0xCEAA,0xCEA3,0xCEA5,0xCE7D,0xCE7B, 0,0xCEAC,0xCEA9, +0xCE79, 0,0xABD0,0xCEA7,0xCEA8, 0,0xCEA6,0xCE7C, +0xCE7A,0xABCF,0xCEA2,0xCE7E, 0, 0,0xCEA1,0xCEAD, + 0, 0, 0, 0, 0, 0, 0, 0, +0xAE6F, 0,0xAE6E, 0,0xD16C,0xAE6B,0xD16E, 0, +0xAE70,0xD16F, 0, 0,0xAE73, 0,0xAE71,0xD170, +0xCEAE,0xD172, 0,0xAE6D, 0,0xAE6C, 0,0xD16D, +0xD171,0xAE72, 0, 0, 0, 0,0xB153,0xB152, + 0, 0, 0,0xD4F5,0xD4F9,0xD4FB,0xB154,0xD4FE, + 0,0xB158,0xD541, 0,0xB15A, 0,0xB156,0xB15E, + 0,0xB15B,0xD4F7,0xB155, 0,0xD4F6,0xD4F4,0xD543, +0xD4F8, 0,0xB157,0xD542,0xB15C,0xD4FD,0xD4FC,0xB15D, +0xD4FA,0xB159, 0, 0, 0, 0,0xD544, 0, +0xD540,0xD8E7,0xD8EE,0xD8E3,0xB451,0xD8DF,0xD8EF,0xD8D9, +0xD8EC,0xD8EA,0xD8E4, 0,0xD8ED,0xD8E6, 0,0xD8DE, +0xD8F0,0xD8DC,0xD8E9,0xD8DA, 0,0xD8F1, 0,0xB452, + 0,0xD8EB,0xDD4F,0xD8DD,0xB44F, 0,0xD8E1, 0, +0xB450,0xD8E0,0xD8E5, 0, 0,0xD8E2, 0, 0, + 0,0xD8E8, 0, 0, 0, 0,0xDD53, 0, + 0, 0,0xDD56,0xDD4E, 0,0xDD50, 0,0xDD55, +0xDD54,0xB743, 0,0xD8DB,0xDD52, 0, 0,0xB744, + 0,0xDD4D,0xDD51, 0, 0, 0, 0,0xE1A9, + 0,0xE1B0,0xE1A7, 0,0xE1AE,0xE1A5,0xE1AD,0xE1B1, +0xE1A4,0xE1A8,0xE1A3, 0,0xB9F1, 0,0xE1A6,0xB9F2, +0xE1AC,0xE1AB,0xE1AA, 0, 0,0xE1AF, 0, 0, + 0, 0,0xE565,0xE567,0xBC6B,0xE568, 0,0xE563, + 0,0xE562,0xE56C, 0,0xE56A,0xBC6A,0xE56D,0xE564, +0xE569,0xE56B,0xE566, 0, 0, 0, 0,0xE961, +0xE966,0xE960,0xE965, 0,0xE95E,0xE968,0xE964,0xE969, +0xE963,0xE95F,0xE967, 0,0xE96A,0xE962, 0,0xECDA, +0xC0AF, 0,0xC0AD, 0,0xC0AC,0xC0AE, 0, 0, +0xEFC4, 0,0xF172,0xF1FD, 0, 0,0xF444,0xF445, + 0,0xC460, 0,0xF5C9, 0,0xC4DE, 0,0xF5CA, + 0,0xF6DE,0xC572, 0,0xC571,0xF6DD,0xC5C9, 0, +0xF7D6, 0, 0, 0, 0,0xA474,0xA67B,0xC9DA, +0xCACA,0xA8B5,0xB15F, 0, 0,0xA475,0xA5AA,0xA5A9, +0xA5A8, 0, 0,0xA7C5, 0, 0,0xAE74, 0, +0xDD57,0xA476,0xA477,0xA478,0xA4DA, 0, 0,0xABD1, + 0,0xCEAF, 0, 0, 0,0xB453,0xA479,0xC95D, + 0, 0,0xA5AB,0xA5AC,0xC978, 0,0xA67C, 0, + 0, 0,0xCACB, 0,0xA7C6, 0,0xCACC, 0, + 0,0xA9AE, 0, 0,0xCC6E,0xA9AC,0xA9AB,0xCC6D, +0xA9A9,0xCC6F,0xA9AA,0xA9AD, 0,0xABD2, 0,0xABD4, +0xCEB3,0xCEB0,0xCEB1,0xCEB2,0xCEB4,0xABD3, 0, 0, +0xD174,0xD173, 0,0xAE76, 0,0xAE75, 0, 0, + 0, 0, 0,0xB162,0xD546, 0,0xB161,0xB163, +0xB160, 0, 0, 0, 0,0xB455,0xD545, 0, +0xB456,0xD8F3, 0,0xB457,0xD8F2,0xB454, 0, 0, + 0, 0,0xDD5A,0xDD5C,0xB745,0xDD5B,0xDD59,0xDD58, + 0, 0, 0,0xE1B4,0xB9F7,0xB9F5, 0,0xB9F6, +0xE1B2,0xE1B3, 0,0xB9F3,0xE571,0xE56F, 0,0xBC6D, +0xE570,0xBC6E,0xBC6C,0xB9F4, 0, 0,0xE96D,0xE96B, +0xE96C,0xE56E,0xECDC,0xC0B0,0xECDB,0xEFC5,0xEFC6,0xE96E, +0xF1FE, 0,0xA47A,0xA5AD,0xA67E,0xC9DB,0xA67D, 0, +0xA9AF,0xB746, 0,0xA4DB,0xA5AE,0xABD5,0xB458, 0, +0xC979, 0,0xC97A, 0,0xC9DC, 0, 0,0xA7C8, +0xCAD0,0xCACE,0xA7C9,0xCACD,0xCACF,0xCAD1, 0,0xA7C7, + 0, 0, 0, 0, 0,0xA9B3,0xA9B4,0xA9B1, + 0, 0,0xA9B0,0xCEB8,0xA9B2, 0, 0, 0, +0xABD6, 0,0xCEB7,0xCEB9,0xCEB6,0xCEBA,0xABD7,0xAE79, +0xD175, 0,0xD177,0xAE77,0xD178,0xAE78,0xD176, 0, +0xCEB5,0xD547,0xD54A,0xD54B,0xD548,0xB167,0xB166,0xB164, +0xB165,0xD549, 0, 0, 0, 0,0xB168, 0, + 0,0xB45A,0xB45B, 0,0xB45C,0xDD5D,0xDD5F,0xDD61, +0xB748,0xB747,0xB459,0xDD60,0xDD5E, 0,0xE1B8, 0, + 0,0xE1B6,0xE1BC,0xB9F8,0xE1BD,0xE1BA,0xB9F9,0xE1B7, +0xE1B5,0xE1BB,0xBC70,0xE573,0xE1B9,0xBC72,0xE574,0xBC71, +0xBC74,0xE575,0xBC6F,0xBC73, 0,0xE973,0xE971,0xE970, +0xE972,0xE96F, 0, 0,0xC366, 0,0xF446,0xF447, + 0,0xF5CB,0xF6DF,0xC655, 0, 0,0xA9B5,0xA7CA, + 0, 0,0xABD8, 0, 0, 0,0xA47B,0xA4DC, + 0,0xA5AF,0xC9DD, 0,0xA7CB,0xCAD2, 0,0xCEBB, +0xABD9, 0,0xB9FA,0xA47C, 0, 0, 0,0xA6A1, + 0, 0,0xB749,0xA47D,0xA4DD,0xA4DE, 0,0xA5B1, +0xA5B0, 0,0xC9DE,0xA6A2, 0,0xCAD3, 0,0xA7CC, + 0, 0,0xCC71,0xCC72,0xCC73, 0,0xA9B6,0xA9B7, +0xCC70,0xA9B8, 0, 0, 0,0xABDA,0xCEBC, 0, +0xD17A,0xAE7A, 0,0xD179, 0,0xB169,0xD54C,0xB16A, +0xD54D, 0, 0, 0,0xB45D, 0, 0, 0, +0xDD62, 0, 0,0xE1BF,0xE1BE, 0,0xB9FB, 0, +0xBC75,0xE576,0xBECA,0xE974,0xC0B1, 0,0xC573,0xF7D8, + 0, 0, 0, 0,0xCC74, 0,0xCEBD,0xB16B, +0xD8F4,0xB74A, 0, 0, 0,0xC255, 0, 0, + 0, 0,0xA7CE, 0,0xA7CD,0xABDB, 0,0xD17B, + 0,0xB16D,0xB343,0xB16E,0xB16C,0xB45E, 0,0xE1C0, +0xB9FC,0xBC76, 0,0xC94C,0xC9DF, 0,0xCAD5,0xA7CF, +0xCAD4,0xA7D0, 0, 0,0xA9BC,0xCC77,0xCC76,0xA9BB, +0xA9B9,0xA9BA,0xCC75, 0, 0,0xABDD,0xCEBE,0xABE0, +0xABDC,0xABE2,0xABDE,0xABDF,0xABE1, 0, 0, 0, +0xAE7D,0xAE7C,0xAE7B, 0, 0, 0,0xD54F,0xB16F, +0xB172,0xB170, 0,0xD54E,0xB175, 0,0xB171,0xD550, +0xB174,0xB173, 0, 0, 0,0xD8F6,0xD8F5, 0, +0xB461,0xB45F,0xB460,0xD8F7,0xB74B,0xDD64,0xB74C,0xDD63, + 0, 0,0xE577, 0, 0,0xBC78,0xE1C1,0xBC77, + 0,0xB9FD, 0,0xECDE,0xE975,0xC0B2,0xECDD,0xF240, +0xF448,0xF449, 0,0xA4DF, 0,0xA5B2, 0, 0, + 0,0xC97B, 0, 0,0xA7D2,0xA7D4, 0,0xC9E2, +0xCAD8,0xCAD7,0xCAD6, 0,0xC9E1,0xC9E0,0xA6A4,0xA7D3, +0xA7D1,0xA6A3, 0, 0, 0,0xA9BD,0xCC78, 0, +0xA9BE,0xCADD, 0,0xCADF,0xCADE,0xCC79, 0, 0, +0xCADA, 0,0xA7D8,0xA7D6, 0,0xCAD9,0xCADB,0xCAE1, + 0,0xA7D5, 0,0xCADC,0xCAE5,0xA9C0, 0,0xCAE2, +0xA7D7, 0,0xCAE0,0xCAE3, 0,0xA9BF, 0,0xA9C1, +0xCAE4, 0, 0, 0, 0, 0, 0, 0, + 0,0xCCAF,0xCCA2,0xCC7E,0xCCAE,0xCCA9,0xABE7,0xA9C2, +0xCCAA,0xCCAD,0xABE3,0xCCAC,0xA9C3,0xA9C8,0xA9C6,0xCCA3, + 0,0xCC7C,0xCCA5,0xA9CD,0xCCB0,0xABE4,0xCCA6, 0, +0xABE5,0xA9C9,0xCCA8, 0,0xCECD,0xABE6,0xCC7B,0xA9CA, +0xABE8,0xA9CB,0xA9C7,0xA9CC,0xCCA7,0xCC7A,0xCCAB,0xA9C4, + 0, 0,0xCC7D,0xCCA4,0xCCA1,0xA9C5, 0,0xCEBF, + 0,0xCEC0, 0, 0, 0, 0, 0, 0, +0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6, + 0,0xCEC7, 0, 0,0xCEC9,0xABE9, 0, 0, +0xAEA3, 0,0xF9DA,0xCEC5,0xCEC1,0xAEA4, 0, 0, +0xCECF,0xAE7E,0xD17D,0xCEC8, 0,0xD17C,0xCEC3,0xCECC, + 0, 0,0xABEC,0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E, +0xABEB,0xAEA6,0xABF1,0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7, +0xABEA, 0,0xCEC2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xB176, +0xD1A4,0xD1A6, 0,0xD1A8,0xAEA8,0xAEAE,0xD553,0xD1AC, +0xD1A3,0xB178,0xD551, 0,0xAEAD,0xAEAB,0xD1AE, 0, +0xD552, 0,0xD1A5, 0,0xAEAC,0xD1A9,0xAEAF,0xD1AB, + 0, 0,0xAEAA,0xD1AA,0xD1AD,0xD1A7, 0,0xAEA9, +0xB179, 0,0xD1A2,0xB177, 0, 0, 0, 0, +0xB17A, 0, 0, 0, 0, 0, 0, 0, +0xD555,0xD55E,0xB464, 0,0xB17C,0xB1A3,0xB465,0xD560, +0xB1AA,0xD8F9,0xD556,0xB1A2,0xB1A5,0xB17E,0xD554,0xD562, +0xD565,0xD949, 0,0xD563,0xD8FD,0xB1A1,0xB1A8,0xB1AC, +0xD55D,0xD8F8,0xD561,0xB17B,0xD8FA,0xD564,0xD8FC,0xD559, + 0,0xB462, 0,0xD557,0xD558,0xB1A7, 0, 0, +0xB1A6,0xD55B,0xB1AB,0xD55F,0xB1A4,0xD55C, 0,0xB1A9, +0xB466,0xB463,0xD8FB, 0,0xD55A, 0,0xB17D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB46B,0xB46F,0xD940,0xB751,0xB46D,0xD944,0xB471,0xDD65, +0xD946,0xB753,0xB469,0xB46C,0xD947, 0,0xD948,0xD94E, +0xB473,0xB754, 0,0xD94A,0xD94F,0xD943,0xB75E, 0, +0xB755,0xB472,0xD941,0xD950, 0,0xB75D,0xB470,0xB74E, +0xD94D, 0,0xB474,0xD945,0xD8FE,0xB46A,0xD942, 0, +0xD94B, 0,0xB74D,0xB752,0xB467,0xD94C, 0,0xB750, + 0, 0, 0,0xB468, 0, 0, 0,0xB75C, +0xE1C3,0xDD70, 0,0xDD68,0xE1C2, 0,0xDD6C,0xDD6E, + 0, 0,0xDD6B, 0,0xB75B, 0,0xDD6A,0xB75F, + 0, 0, 0,0xE1D2, 0, 0,0xB75A,0xBA40, +0xDD71,0xE1C4, 0, 0,0xB758,0xDD69,0xDD6D,0xB9FE, +0xB74F,0xDD66,0xDD67,0xBA41,0xB757,0xB759,0xB756,0xDD6F, + 0, 0,0xE1C8,0xE1C9,0xE1CE,0xBC7D,0xE1D5, 0, +0xBA47, 0,0xBA46,0xE1D0, 0,0xBC7C,0xE1C5,0xBA45, + 0,0xE1D4,0xBA43,0xBA44, 0,0xE1D1,0xE5AA,0xBC7A, +0xB46E, 0,0xE1D3,0xBCA3,0xE1CB, 0,0xBC7B, 0, +0xBCA2,0xE1C6,0xE1CA,0xE1C7,0xE1CD,0xBA48,0xBC79,0xBA42, + 0,0xE57A,0xE1CF, 0,0xBCA1, 0,0xBCA4, 0, +0xE1CC, 0,0xBC7E,0xE579, 0, 0, 0, 0, + 0,0xE57E,0xBECE,0xE578,0xE9A3,0xE5A9,0xBCA8, 0, +0xBCA6,0xBECC,0xE5A6,0xE5A2,0xBCAC, 0,0xE978, 0, + 0, 0,0xBCAA,0xE5A1, 0,0xE976, 0,0xE5A5, + 0,0xE5A8,0xE57D, 0,0xBCAB, 0, 0,0xBCA5, +0xE977,0xBECD,0xE5A7,0xBCA7,0xBCA9,0xE5A4,0xBCAD,0xE5A3, +0xE57C,0xE57B,0xBECB,0xE5AB,0xE97A,0xECE0,0xBED0, 0, +0xE9A2, 0,0xE97E, 0,0xECE1, 0,0xBED1,0xE9A1, + 0,0xE97C,0xC0B4,0xECDF, 0,0xE979,0xE97B,0xC0B5, +0xBED3,0xC0B3,0xBED2,0xC0B7,0xE97D,0xBECF, 0, 0, + 0, 0, 0, 0, 0, 0,0xEFCF, 0, +0xEFC7, 0, 0, 0, 0, 0,0xECE7,0xEFC8, +0xECE3, 0, 0,0xC256,0xECE5,0xECE4,0xC0B6,0xECE2, +0xECE6,0xEFD0,0xEFCC,0xEFCE, 0,0xEFC9,0xEFCA, 0, +0xEFCD,0xEFCB,0xC367, 0, 0,0xC36A,0xC369,0xC368, +0xC461,0xF44A,0xC462,0xF241,0xC4DF,0xF5CC,0xC4E0,0xC574, +0xC5CA,0xF7D9, 0,0xF7DA,0xF7DB, 0, 0,0xF9BA, +0xA4E0,0xC97C,0xA5B3, 0,0xA6A6,0xA6A7,0xA6A5, 0, +0xA6A8,0xA7DA,0xA7D9, 0,0xCCB1,0xA9CF,0xA9CE, 0, + 0,0xD1AF,0xB1AD,0xB1AE, 0, 0, 0,0xB475, +0xDD72,0xB760,0xB761,0xDD74,0xDD76,0xDD75, 0,0xE1D7, + 0,0xE1D6,0xBA49,0xE1D8, 0,0xE5AC,0xBCAE, 0, +0xBED4, 0,0xC0B8,0xC257,0xC0B9, 0,0xA4E1, 0, + 0, 0,0xCAE6, 0, 0,0xCCB2,0xA9D1,0xA9D0, +0xA9D2,0xABF3,0xCED2,0xCED3, 0, 0,0xD1B0,0xAEB0, +0xB1AF,0xB476,0xD951,0xA4E2, 0,0xA47E,0xA4E3, 0, +0xC97D,0xA5B7,0xA5B6,0xA5B4,0xA5B5, 0, 0, 0, +0xA6AB,0xC9E9,0xC9EB,0xA6AA,0xC9E3, 0,0xC9E4, 0, +0xC9EA,0xC9E6,0xC9E8,0xA6A9,0xC9E5,0xC9EC,0xC9E7, 0, + 0, 0, 0, 0, 0,0xA7E1,0xA7EA,0xA7E8, +0xCAF0,0xCAED,0xCAF5,0xA7E6,0xCAF6, 0,0xA7DF,0xCAF3, + 0,0xA7E5,0xCAEF,0xCAEE,0xA7E3,0xCAF4,0xA7E4,0xA9D3, +0xA7DE,0xCAF1, 0,0xCAE7,0xA7DB, 0,0xA7EE,0xCAEC, +0xCAF2,0xA7E0,0xA7E2, 0,0xCAE8, 0,0xCAE9,0xCAEA, + 0,0xA7ED,0xA7E7,0xA7EC,0xCAEB,0xA7EB,0xA7DD,0xA7DC, +0xA7E9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA9E1,0xCCBE,0xCCB7,0xA9DC,0xA9EF,0xCCB3,0xCCBA,0xCCBC, +0xCCBF,0xA9EA, 0,0xCCBB,0xCCB4,0xA9E8,0xCCB8, 0, +0xCCC0,0xA9D9, 0,0xCCBD,0xA9E3,0xA9E2,0xCCB6,0xA9D7, + 0, 0,0xA9D8, 0,0xA9D6, 0,0xA9EE,0xA9E6, +0xA9E0,0xA9D4,0xCCB9,0xA9DF,0xA9D5,0xA9E7,0xA9F0,0xCED4, +0xA9E4,0xCCB5,0xA9DA,0xA9DD,0xA9DE, 0,0xA9EC,0xA9ED, +0xA9EB,0xA9E5,0xA9E9,0xA9DB,0xABF4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCEDA,0xAC41,0xABF8,0xABFA,0xAC40, +0xCEE6,0xABFD,0xD1B1,0xAEB1,0xAC43,0xCED7,0xCEDF,0xABFE, +0xCEDE,0xCEDB,0xCEE3,0xCEE5,0xABF7,0xABFB,0xAC42,0xAEB3, +0xCEE0,0xABF9,0xAC45,0xCED9, 0, 0, 0,0xABFC, +0xAEB2,0xABF6, 0,0xCED6,0xCEDD,0xCED5,0xCED8,0xCEDC, +0xD1B2,0xAC44, 0,0xCEE1,0xCEE2,0xCEE4,0xABF5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xAEC1,0xD1BE,0xAEBF,0xAEC0,0xD1B4,0xD1C4, 0,0xAEB6, + 0, 0,0xD566,0xD1C6,0xD1C0, 0,0xD1B7, 0, +0xD1C9,0xD1BA,0xAEBC,0xD57D,0xD1BD,0xAEBE,0xAEB5, 0, +0xD1CB,0xD1BF,0xAEB8,0xD1B8,0xD1B5,0xD1B6,0xAEB9,0xD1C5, +0xD1CC,0xAEBB,0xD1BC,0xD1BB,0xAEC3,0xAEC2,0xAEB4,0xAEBA, +0xAEBD,0xD1C8, 0, 0,0xD1C2,0xAEB7,0xD1B3,0xD1CA, +0xD1C1,0xD1C3,0xD1C7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD567, 0,0xB1B7, +0xB1CB,0xB1CA, 0,0xB1BF, 0,0xD579,0xD575,0xD572, +0xD5A6,0xB1BA,0xB1B2, 0, 0,0xD577,0xB4A8,0xB1B6, +0xD5A1, 0,0xB1CC,0xB1C9,0xD57B,0xD56A, 0, 0, +0xB1C8,0xD5A3,0xD569,0xB1BD,0xB1C1,0xD5A2, 0,0xD573, +0xB1C2,0xB1BC,0xD568, 0,0xB478,0xD5A5,0xD571,0xB1C7, +0xD574,0xD5A4,0xB1C6, 0,0xD952, 0,0xB1B3,0xD56F, +0xB1B8,0xB1C3, 0,0xB1BE,0xD578,0xD56E,0xD56C,0xD57E, +0xB1B0,0xB1C4,0xB1B4,0xB477,0xD57C,0xB1B5, 0,0xB1B1, +0xB1C0,0xB1BB,0xB1B9,0xD570,0xB1C5,0xD56D,0xD57A,0xD576, +0xD954,0xD953, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD56B,0xD964, 0, +0xB47A, 0,0xD96A,0xD959,0xD967,0xDD77,0xB47D,0xD96B, +0xD96E,0xB47C,0xD95C,0xD96D,0xD96C,0xB47E,0xD955,0xB479, +0xB4A3, 0,0xB4A1,0xD969, 0,0xD95F,0xB4A5,0xD970, +0xD968,0xD971,0xB4AD,0xB4AB,0xD966,0xD965, 0,0xD963, +0xD95D,0xB4A4, 0,0xB4A2,0xD1B9,0xD956, 0,0xDDB7, +0xD957,0xB47B,0xB4AA,0xDD79, 0,0xB4A6,0xB4A7,0xD958, +0xD96F,0xDD78,0xD960,0xD95B,0xB4A9,0xD961,0xD95E, 0, + 0,0xB4AE, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xB770, 0, + 0,0xDD7C,0xDDB1,0xDDB6,0xDDAA,0xB76C,0xDDBB,0xB769, +0xDD7A, 0,0xDD7B,0xB762,0xB76B,0xDDA4,0xB76E,0xB76F, +0xDDA5, 0,0xDDB2,0xDDB8,0xB76A, 0,0xB764,0xDDA3, +0xDD7D,0xDDBA,0xDDA8,0xDDA9,0xDD7E,0xDDB4,0xDDAB,0xDDB5, +0xDDAD, 0,0xB765,0xE1D9,0xB768,0xB766,0xDDB9,0xDDB0, +0xDDAC, 0, 0,0xDDA1,0xBA53,0xDDAF,0xB76D,0xDDA7, + 0,0xDDA6, 0, 0, 0,0xB767,0xB763,0xE1EE, +0xDDB3,0xDDAE, 0,0xDDA2, 0, 0, 0, 0, + 0, 0, 0,0xE1E9, 0,0xE1DA,0xE1E5, 0, +0xE1EC,0xBA51,0xB4AC,0xE1EA,0xBA4C, 0, 0, 0, +0xBA4B,0xE1F1, 0,0xE1DB,0xE1E8,0xE1DC,0xE1E7,0xBA4F, +0xE1EB,0xD962, 0, 0, 0,0xE1F2,0xE1E3,0xBA52, +0xE5BA,0xBCAF, 0,0xE1F0,0xE1EF,0xBA54,0xE5AD,0xBCB0, +0xE5AE, 0,0xE1DF,0xE1E0,0xE1DD,0xE1E2,0xE1DE,0xE1F3, +0xBA4E,0xBCB1,0xBA50,0xBA55, 0,0xE1E1, 0,0xE1ED, + 0, 0,0xE1E6, 0, 0,0xE5B1, 0,0xBA4A, +0xBCB4,0xE9AA,0xE5B6,0xE5B5,0xE5B7, 0, 0,0xE5B4, +0xBCB5, 0,0xBCBB,0xBCB8, 0,0xBCB9,0xE5AF,0xE5B2, +0xE5BC,0xBCC1,0xBCBF, 0,0xE5B3,0xD95A,0xBCB2,0xE5B9, +0xE5B0, 0,0xBCC2,0xE5B8,0xBA4D,0xBCB7,0xE1E4, 0, + 0,0xBCBA, 0,0xBCBE,0xBCC0,0xBCBD,0xBCBC, 0, +0xBCB6,0xE5BB,0xBCB3,0xBCC3, 0, 0, 0, 0, + 0, 0, 0,0xBED8,0xBED9,0xE9A9,0xBEE2,0xBEDF, + 0,0xBED6,0xBEDD,0xE9AB,0xBEDB,0xBED5, 0,0xBEDC, + 0,0xE9A8,0xC0BB,0xBED7, 0,0xBEDE,0xC0BA,0xE9A7, +0xE9A6, 0,0xBEE0, 0,0xBEE1, 0,0xE9A5,0xE9A4, +0xC0BC,0xE9AE,0xBEDA,0xE9AC, 0, 0, 0, 0, +0xC0BD, 0,0xC0C2,0xECEA,0xECEC, 0,0xC0BF, 0, +0xECED,0xECE9, 0,0xECEB,0xC0C0,0xC0C3, 0,0xECE8, +0xC0BE,0xC0C1,0xC259,0xE9AD,0xC258, 0, 0,0xC25E, +0xEFD4, 0,0xC25C,0xC25D,0xEFD7,0xEFD3,0xC25A,0xEFD1, +0xC36B,0xEFD5, 0,0xEFD6,0xEFD2, 0,0xC25B,0xF242, + 0,0xF245, 0, 0,0xF246,0xF244,0xF247,0xC36C, +0xF243, 0, 0,0xF44E,0xC464,0xF44D,0xF44C,0xF44B, +0xC463,0xC465, 0,0xF5CD,0xC4E2,0xC4E1, 0, 0, +0xF6E1,0xF6E0,0xF6E3,0xC5CB,0xC575,0xF7DD,0xF6E2, 0, + 0,0xF7DC,0xC5CD,0xC5CC,0xC5F3,0xF8A9,0xF8EF,0xA4E4, + 0, 0,0xD972,0xE9AF, 0, 0,0xA6AC,0xCAF7, +0xA7F1,0xA7EF, 0,0xA7F0, 0,0xCCC1,0xA9F1,0xAC46, + 0,0xCEE7, 0,0xCEE8, 0,0xAC47,0xD1CE, 0, +0xAEC4,0xAEC5,0xD1CD, 0, 0, 0, 0,0xB1D3, + 0,0xB1CF, 0,0xD5A7,0xB1D6,0xB1D5,0xB1CE,0xB1D1, +0xB1D4,0xB1D0, 0, 0,0xD976,0xB1CD,0xB4AF, 0, + 0, 0,0xB4B1,0xB4B2,0xD975,0xD978,0xB4B0,0xD973, +0xD977, 0,0xD974, 0,0xB771, 0, 0,0xDDBC, + 0, 0,0xBA56,0xE1F4,0xBEE3,0xBCC4,0xE5BD,0xBCC5, +0xBCC6,0xE5BF,0xE5BE,0xE5C0,0xE9B1, 0, 0,0xE9B0, +0xECEF,0xECEE,0xC0C4,0xC0C5,0xF248, 0, 0,0xA4E5, + 0, 0, 0, 0,0xD979, 0, 0, 0, +0xB4B4,0xB4B3,0xDDBD, 0,0xEFD8,0xC4E3,0xF7DE,0xA4E6, + 0,0xAEC6, 0,0xB1D8,0xB1D7,0xD97A,0xD97B,0xB772, +0xE1F5,0xBA57,0xE9B2, 0,0xA4E7,0xA5B8, 0,0xA9F2, +0xCCC2, 0,0xCEE9,0xAC48,0xB1D9, 0,0xD97C,0xB4B5, +0xB773, 0,0xE5C1,0xE5C2, 0, 0,0xECF0,0xC25F, +0xF8F0,0xA4E8, 0,0xCCC3,0xA9F3,0xAC49, 0,0xCEEA, + 0,0xAEC7,0xD1D2,0xD1D0,0xD1D1,0xAEC8,0xD1CF, 0, + 0, 0, 0,0xB1DB,0xB1DC,0xD5A8,0xB1DD,0xB1DA, +0xD97D, 0,0xD97E,0xDDBE, 0, 0,0xBA59,0xBA58, + 0, 0,0xECF1,0xEFD9, 0,0xF24A,0xF249,0xF44F, + 0,0xC95E,0xAC4A, 0, 0,0xA4E9,0xA5B9, 0, +0xA6AE,0xA6AD, 0, 0,0xA6AF,0xA6B0,0xC9EE,0xC9ED, +0xCAF8,0xA7F2,0xCAFB,0xCAFA,0xCAF9,0xCAFC, 0, 0, + 0, 0,0xA9F4,0xCCC9,0xCCC5,0xCCCE, 0, 0, +0xA9FB, 0,0xA9F9,0xCCCA,0xCCC6,0xCCCD,0xA9F8,0xAA40, +0xCCC8,0xCCC4,0xA9FE,0xCCCB,0xA9F7,0xCCCC,0xA9FA,0xA9FC, +0xCCD0,0xCCCF,0xCCC7,0xA9F6,0xA9F5,0xA9FD, 0, 0, + 0, 0, 0, 0,0xCEEF,0xCEF5, 0,0xAC50, +0xAC4D,0xCEEC,0xCEF1, 0,0xAC53,0xAC4B,0xCEF0,0xAC4E, +0xAC51, 0, 0,0xCEF3, 0,0xAC4C,0xCEF8,0xAC4F, + 0,0xAC52,0xCEED,0xCEF2,0xCEF6,0xCEEE,0xCEEB, 0, + 0,0xCEF7,0xCEF4, 0, 0, 0, 0, 0, + 0,0xAED0,0xAEC9,0xAECC, 0,0xAECF, 0,0xD1D5, + 0,0xAECA,0xD1D3, 0,0xAECE, 0, 0,0xAECB, + 0,0xD1D6,0xAECD, 0, 0, 0, 0, 0, + 0,0xD5AC,0xB1DF,0xD5AB,0xD5AD,0xB1DE,0xB1E3,0xD1D4, + 0,0xD5AA,0xD5AE, 0,0xB1E0,0xD5A9,0xB1E2, 0, +0xB1E1, 0,0xD9A7, 0,0xD9A2, 0,0xB4B6,0xB4BA, +0xB4B7,0xD9A5,0xD9A8, 0,0xB4B8, 0,0xB4B9,0xB4BE, +0xDDC7,0xD9A6,0xB4BC,0xD9A3,0xD9A1, 0,0xB4BD, 0, +0xD9A4, 0, 0, 0,0xB779, 0,0xDDBF,0xB776, +0xB777,0xB775,0xDDC4,0xDDC3,0xDDC0,0xB77B, 0, 0, +0xDDC2,0xB4BB, 0, 0,0xDDC6,0xDDC1,0xB778,0xB774, +0xB77A,0xDDC5, 0, 0, 0,0xBA5C, 0,0xE1F8, +0xE1F7,0xE1F6,0xBA5A, 0, 0, 0, 0, 0, +0xBA5B,0xE5C5,0xE5C8,0xBCC8, 0, 0,0xBCC7,0xE5C9, +0xE5C4,0xBCCA,0xE5C6, 0,0xBCC9,0xE5C3, 0,0xE5C7, +0xBEE9,0xBEE6,0xE9BB,0xE9BA, 0,0xE9B9,0xE9B4, 0, +0xE9B5, 0, 0, 0,0xBEE7, 0,0xBEE4,0xBEE8, +0xE9B3,0xBEE5,0xE9B6,0xE9B7,0xE9BC, 0, 0,0xE9B8, + 0, 0,0xECF2, 0, 0, 0,0xC0C7, 0, +0xEFDC,0xC0C6,0xEFDA,0xEFDB,0xC260,0xC36E,0xF24B, 0, +0xC36D, 0, 0,0xF451,0xF452, 0,0xC466, 0, +0xF450,0xC4E4, 0,0xF7DF,0xC5CE,0xF8AA,0xF8AB, 0, +0xA4EA, 0,0xA6B1,0xA6B2,0xA7F3, 0,0xCCD1,0xAC54, +0xAED1,0xB1E4, 0, 0,0xB0D2, 0,0xB4BF,0xB4C0, +0xB3CC,0xD9A9, 0,0xB77C,0xE1FA,0xE1F9, 0, 0, +0xA4EB,0xA6B3,0xCCD2,0xAA42, 0,0xAA41, 0,0xCEF9, +0xCEFA, 0,0xD1D7,0xD1D8,0xAED2,0xAED3, 0,0xAED4, +0xD5AF, 0, 0,0xB1E6, 0,0xB4C2, 0,0xB4C1, +0xDDC8,0xDF7A,0xE1FB,0xE9BD, 0, 0,0xC261,0xC467, +0xA4EC, 0,0xA5BC,0xA5BD,0xA5BB,0xA5BE,0xA5BA, 0, + 0,0xA6B6, 0,0xC9F6,0xA6B5,0xA6B7, 0, 0, +0xC9F1,0xC9F0,0xC9F3,0xC9F2,0xC9F5,0xA6B4,0xC9EF,0xC9F4, + 0, 0, 0, 0, 0,0xCAFD,0xA7FD,0xCAFE, +0xCB43,0xA7FC, 0,0xCB47,0xCB42,0xCB45,0xA7F5,0xA7F6, +0xA7F7,0xA7F8, 0,0xA840, 0,0xCB41,0xA7FA,0xA841, + 0,0xCB40,0xCB46, 0,0xA7F9,0xCB44,0xA7FB,0xA7F4, +0xA7FE, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xAA57, 0,0xCCD4,0xAA43, 0,0xAA4D, +0xAA4E,0xAA46,0xAA58,0xAA48,0xCCDC,0xAA53,0xCCD7,0xAA49, +0xCCE6,0xCCE7,0xCCDF,0xCCD8,0xAA56,0xCCE4,0xAA51,0xAA4F, + 0,0xCCE5, 0,0xCCE3,0xCCDB,0xCCD3,0xCCDA,0xAA4A, + 0,0xAA50, 0,0xAA44,0xCCDE,0xCCDD,0xCCD5, 0, +0xAA52,0xCCE1,0xCCD6,0xAA55,0xCCE8,0xAA45, 0,0xAA4C, +0xCCD9,0xCCE2,0xAA54, 0,0xAA47,0xAA4B, 0,0xCCE0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCF5B,0xAC5C, +0xAC69, 0,0xCF56,0xCF4C,0xAC62,0xCF4A,0xAC5B,0xCF45, +0xAC65,0xCF52,0xCEFE,0xCF41, 0, 0, 0, 0, +0xCF44,0xCEFB,0xCF51,0xCF61,0xAC60,0xCF46,0xCF58, 0, +0xCEFD,0xCF5F,0xCF60,0xCF63,0xCF5A,0xCF4B,0xCF53,0xAC66, +0xAC59,0xAC61,0xAC6D,0xAC56,0xAC58, 0, 0, 0, +0xCF43,0xAC6A,0xAC63,0xCF5D,0xCF40,0xAC6C,0xAC67,0xCF49, + 0, 0,0xAC6B,0xCF50,0xCF48,0xAC64,0xCF5C,0xCF54, + 0,0xAC5E,0xCF62,0xCF47,0xAC5A,0xCF59,0xCF4F,0xAC5F, +0xCF55,0xAC57,0xCEFC,0xAC68,0xAEE3,0xAC5D,0xCF4E,0xCF4D, +0xCF42, 0,0xCF5E, 0,0xCF57, 0, 0,0xAC55, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD1EC,0xAEEA,0xD1ED, 0,0xD1E1,0xAEDF, +0xAEEB, 0,0xD1DA, 0,0xD1E3,0xD1EB, 0,0xD1D9, +0xD1F4,0xAED5, 0, 0, 0,0xD1F3,0xD1EE, 0, +0xD1EF,0xAEDD,0xAEE8,0xD1E5, 0,0xD1E6,0xD1F0,0xD1E7, + 0,0xD1E2,0xD1DC,0xD1DD,0xD1EA,0xD1E4, 0, 0, +0xAED6,0xAEDA,0xD1F2,0xD1DE,0xAEE6,0xAEE2, 0, 0, +0xAEE5,0xAEEC,0xAEDB,0xAEE7,0xD1E9,0xAEE9,0xAED8, 0, +0xAED7,0xD1DB, 0,0xD1DF,0xAEE0,0xD1F1,0xD1E8,0xD1E0, +0xAEE4,0xAEE1, 0,0xAED9,0xAEDC, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD5C4, 0,0xD5B4,0xD5B5,0xD5B9, + 0,0xD5C8,0xD5C5, 0,0xD5BE,0xD5BD,0xB1ED,0xD5C1, +0xD5D0,0xD5B0, 0,0xD5D1,0xD5C3,0xD5D5,0xD5C9,0xB1EC, +0xD5C7,0xB1E7,0xB1FC,0xB1F2, 0,0xB1F6,0xB1F5,0xD5B1, + 0,0xD5CE,0xD5D4,0xD5CC,0xD5D3, 0, 0,0xD5C0, +0xD5B2,0xD5D2,0xD5C2,0xB1EA,0xB1F7, 0,0xD5CB,0xB1F0, + 0, 0, 0,0xD5CA,0xD5B3,0xB1F8, 0,0xB1FA, +0xD5CD,0xB1FB,0xB1E9,0xD5BA,0xD5CF, 0, 0,0xB1EF, +0xB1F9,0xD5BC,0xD5C6,0xD5B7,0xD5BB,0xB1F4,0xD5B6,0xB1E8, +0xB1F1,0xB1EE,0xD5BF,0xAEDE,0xD9C0,0xB1EB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xB1F3, 0,0xD9C3,0xD9D9, +0xD9CE,0xB4D6, 0,0xB4D1,0xD9BD,0xB4D2,0xD9CD, 0, +0xD9C6,0xD9D3,0xB4CE,0xD9AB,0xD9D5,0xB4C4,0xD9B3,0xB4C7, +0xB4C6, 0,0xB4D7, 0,0xD9AD,0xD9CF,0xD9D0,0xB4C9, +0xB4C5,0xD9BB, 0,0xB4D0,0xD9B6, 0,0xD9D1,0xB4CC, +0xD9C9,0xD9D6,0xD9B0,0xD9B5,0xD9AF, 0,0xB4CB,0xD9C2, +0xDDDE,0xD9B1,0xB4CF,0xD9BA,0xD9D2,0xB4CA,0xD9B7,0xD9B4, +0xD9C5,0xB4CD,0xB4C3,0xB4D9,0xD9C8,0xD9C7, 0, 0, + 0, 0, 0, 0,0xD9AC,0xB4C8,0xD9D4,0xD9BC, +0xD9BE, 0,0xD9CB,0xD9CA,0xD9AA,0xB4D3,0xB4D5,0xD9B2, +0xD9B9,0xD9C1,0xB4D4,0xD9B8,0xD9C4,0xD9D7, 0,0xD9CC, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD9D8, 0, 0, + 0, 0,0xD9AE, 0, 0, 0, 0,0xDDF2, +0xB7A6, 0,0xDDF0,0xDDDB,0xDDE0,0xDDD9, 0,0xDDEC, +0xDDCB,0xDDD2, 0,0xDDEA,0xDDF4,0xDDDC, 0,0xDDCF, +0xDDE2,0xDDE7,0xDDD3, 0,0xDDE4,0xDDD0, 0, 0, +0xDDD7,0xDDD8,0xB7A8,0xDDEB,0xDDE9, 0,0xDDCC,0xDDEE, + 0,0xDDEF,0xDDF1,0xB7AC,0xB7A4, 0,0xD5B8,0xDDD4, +0xDDE6,0xDDD5,0xB7A1,0xB7B1,0xDDED,0xB7AF,0xB7AB,0xDDCA, +0xB7A3, 0,0xDDCD,0xB7B0, 0,0xDDDD,0xDDC9, 0, +0xB7A9,0xDDE1,0xDDD1,0xB7AA,0xDDDA,0xB77E,0xB4D8,0xDDE3, +0xD9BF,0xDDCE, 0, 0,0xDDE8,0xB7A5,0xDDE5,0xB7A2, +0xDDDF,0xB7AD,0xDDD6,0xDDF3, 0, 0, 0, 0, + 0, 0,0xB7A7,0xDEC6, 0, 0,0xB7AE, 0, + 0, 0, 0, 0, 0,0xE24A,0xE248, 0, +0xE25E,0xE246, 0,0xE258,0xB77D,0xBA5F,0xE242,0xE25D, + 0,0xE247,0xE255,0xBA64,0xBA5D, 0,0xE25B, 0, +0xE240,0xE25A, 0,0xBA6F,0xE251,0xE261,0xBA6D,0xE249, +0xBA5E,0xE24B,0xE259,0xBA67,0xE244,0xBA6B,0xBA61,0xE24D, +0xE243,0xE1FC, 0,0xE257,0xBA68,0xE260,0xE1FD,0xBA65, + 0,0xE253, 0,0xBA66,0xE245,0xE250,0xE24C,0xE24E, + 0,0xBA60,0xE25F,0xBA6E,0xE24F, 0,0xE262, 0, + 0,0xE1FE,0xE254,0xBA63,0xBA6C,0xBA6A,0xE241,0xE256, +0xBA69, 0, 0,0xBA62,0xE252, 0, 0, 0, + 0,0xE25C, 0, 0, 0, 0, 0, 0, + 0, 0,0xE5D5, 0,0xE5D1,0xE5CD,0xE5E1,0xE5DE, +0xBCCD, 0, 0,0xE5E5,0xE5D4,0xBCD8,0xE5DB, 0, + 0,0xE5D0,0xE5DA,0xBCD5,0xE5EE, 0,0xE5EB,0xE5DD, +0xE5CE, 0, 0,0xE5E2,0xE5E4,0xBCD1,0xE5D8,0xE5D3, +0xE5CA,0xBCCE,0xBCD6, 0,0xE5E7,0xBCD7,0xE5CB,0xE5ED, +0xE5E0,0xE5E6,0xBCD4, 0, 0,0xE5E3, 0,0xE5EA, + 0,0xBCD9, 0,0xBCD3,0xE5DC,0xE5CF,0xE5EF,0xE5CC, +0xE5E8,0xBCD0, 0,0xE5D6, 0,0xE5D7,0xBCCF,0xBCCC, +0xE5D2,0xBCD2, 0,0xBCCB, 0,0xE5E9,0xE5EC,0xE5D9, +0xE9CA, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE9C2, 0,0xE9BE,0xBEF6, 0, 0, +0xBEEB,0xBEF0,0xBEEC,0xE9CC,0xE9D7,0xBEEA,0xE9C4,0xE9CD, +0xE5DF,0xE9CE, 0, 0,0xBEF1, 0,0xE9DD,0xBEF5, +0xBEF8,0xE9C0, 0,0xBEF4, 0,0xE9DB,0xE9DC,0xE9D2, +0xE9D1,0xE9C9, 0, 0,0xE9D3,0xE9DA,0xE9D9, 0, +0xBEEF,0xBEED,0xE9CB,0xE9C8, 0,0xE9C5,0xE9D8,0xBEF7, +0xE9D6,0xBEF3,0xBEF2, 0,0xE9D0, 0,0xE9BF,0xE9C1, +0xE9C3,0xE9D5,0xE9CF,0xBEEE, 0,0xE9C6, 0,0xE9D4, + 0, 0, 0, 0, 0, 0,0xE9C7, 0, + 0, 0, 0, 0, 0, 0,0xC0CF,0xED45, +0xC0C8,0xECF5, 0,0xED41,0xC0CA,0xED48, 0,0xECFC, + 0,0xECF7, 0, 0,0xED49,0xECF3,0xECFE, 0, +0xC0D1,0xED44,0xED4A,0xECFD,0xC0C9,0xED40,0xECF4,0xC0D0, + 0, 0,0xED47,0xECF9,0xC0CC, 0,0xECFB,0xECF8, +0xC0D2,0xECFA,0xC0CB,0xC0CE,0xED43,0xECF6,0xED46, 0, +0xED42, 0, 0, 0,0xC263,0xEFE7,0xC268,0xC269, + 0, 0, 0,0xC262,0xEFE6, 0,0xEFE3,0xEFE4, +0xC266,0xEFDE,0xEFE2,0xC265, 0,0xEFDF, 0, 0, + 0, 0,0xC267,0xC264, 0,0xEFDD,0xEFE1,0xEFE5, + 0, 0, 0,0xF251,0xF24E,0xF257, 0,0xF256, +0xF254,0xF24F, 0,0xC372, 0, 0, 0, 0, + 0,0xF250,0xC371,0xC0CD,0xF253,0xC370,0xF258,0xF252, +0xF24D,0xEFE0, 0, 0, 0,0xC36F, 0,0xF24C, +0xF456, 0,0xF455,0xF255,0xC468, 0,0xF459,0xF45A, +0xF454,0xF458, 0,0xF453, 0, 0, 0, 0, +0xF5D1,0xF457,0xC4E7,0xC4E5,0xF5CF, 0, 0, 0, +0xF5D2, 0,0xF5CE,0xF5D0,0xC4E6, 0, 0, 0, +0xF6E5,0xF6E6,0xC576,0xF6E4, 0, 0, 0,0xF7E2, +0xC5CF,0xF7E0,0xF7E1,0xF8AC, 0, 0,0xC656,0xF8F3, +0xF8F1,0xF8F2,0xF8F4, 0, 0, 0,0xF9BB, 0, +0xA4ED,0xA6B8, 0,0xAA59, 0,0xCCE9, 0, 0, +0xCF64, 0, 0, 0,0xD1F5,0xD1F7, 0,0xD1F6, + 0,0xD1F8,0xB1FD,0xD5D7,0xD1F9, 0,0xD5D6,0xD5D8, +0xD5D9,0xD9DA,0xB4DB,0xD9DB,0xD9DD,0xB4DC,0xB4DA,0xD9DC, + 0,0xDDFA,0xDDF8,0xDDF7, 0,0xDDF6,0xDDF5,0xB7B2, +0xDDF9,0xBA70,0xE263,0xE265,0xBA71,0xE264,0xBCDB, 0, +0xBCDA,0xE5F0, 0, 0,0xE9DF,0xE9DE,0xE9E0, 0, + 0,0xBEF9, 0,0xED4B,0xC0D3, 0,0xEFE8,0xC26A, +0xF259,0xC577,0xA4EE,0xA5BF,0xA6B9,0xA842,0xAA5A,0xAA5B, + 0, 0,0xAC6E, 0, 0,0xD1FA, 0, 0, + 0, 0,0xB7B3, 0, 0, 0,0xE6D1,0xBEFA, +0xC26B,0xA4EF, 0,0xA6BA, 0, 0,0xCCEB,0xAA5C, +0xCCEA, 0,0xCF65,0xAC6F,0xCF66, 0,0xAC70, 0, +0xD1FC,0xAEEE,0xAEED, 0,0xD5DE,0xD5DC,0xD5DD,0xD5DB, + 0,0xD5DA, 0, 0,0xD9DE,0xD9E1,0xB4DE,0xD9DF, +0xB4DD,0xD9E0, 0,0xDDFB, 0, 0,0xE266,0xE267, +0xE268, 0,0xE5F3,0xE5F2,0xBCDC,0xE5F1,0xE5F4,0xE9E1, + 0, 0,0xE9E2,0xE9E3, 0,0xED4C,0xC0D4,0xC26C, +0xF25A, 0,0xC4E8,0xC95F, 0,0xAC71,0xCF67,0xAEEF, + 0, 0,0xB1FE, 0,0xB4DF,0xD9E2, 0,0xB7B5, +0xB7B4, 0, 0,0xE269,0xE26A,0xBCDD,0xBCDE,0xE9E5, +0xE9E4,0xEFE9,0xF7E3,0xA4F0,0xC960,0xA5C0, 0,0xA843, +0xCB48, 0,0xAC72,0xB7B6,0xA4F1, 0,0xCF68,0xAC73, +0xCF69, 0,0xC0D5,0xA4F2, 0, 0,0xCCEC, 0, +0xCF6A, 0,0xD242,0xD241,0xD1FE, 0,0xD1FD,0xD243, +0xD240, 0, 0,0xB240,0xB241, 0, 0,0xB4E0, +0xD9E3, 0,0xD9E4,0xD9E5, 0, 0, 0,0xDE41, +0xDE42,0xDE40, 0,0xDDFD,0xDDFE,0xB7B7,0xE26B,0xE5F7, +0xE5F6,0xE5F5,0xE5F8,0xE9E7,0xE9E6,0xBEFB,0xE9E8, 0, +0xC0D6,0xED4D, 0,0xEFEA,0xF25B,0xF6E7, 0,0xA4F3, +0xA5C2,0xA5C1, 0,0xAA5D,0xC961,0xC97E,0xA6BB, 0, +0xC9F7,0xCB49,0xCB4A,0xAA5E, 0,0xCCED, 0,0xAC74, +0xCF6B,0xCF6C, 0,0xAEF0,0xAEF4,0xD244,0xAEF3,0xAEF1, +0xAEF2, 0,0xD5DF,0xB242,0xB4E3, 0,0xB4E1,0xB4E2, +0xD9E6, 0, 0,0xBA72,0xA4F4, 0,0xC9A1, 0, +0xA5C3, 0, 0,0xC9A4, 0, 0,0xA5C6,0xC9A3, +0xA5C5,0xA5C4,0xA844,0xC9A2, 0, 0,0xC9F8, 0, + 0, 0,0xC9FC,0xC9FE,0xCA40,0xA6C5,0xA6C6,0xC9FB, +0xA6C1, 0,0xC9F9, 0,0xC9FD,0xA6C2, 0,0xA6BD, + 0,0xA6BE, 0,0xA6C4,0xC9FA,0xA6BC,0xA845,0xA6BF, +0xA6C0,0xA6C3, 0, 0, 0,0xCB5B,0xCB59,0xCB4C, +0xA851,0xCB53,0xA84C,0xCB4D, 0,0xCB55, 0,0xCB52, +0xA84F,0xCB51,0xA856,0xCB5A,0xA858, 0,0xA85A, 0, +0xCB4B, 0,0xA84D,0xCB5C, 0,0xA854,0xA857, 0, +0xCD45,0xA847,0xA85E,0xA855,0xCB4E,0xA84A,0xA859,0xCB56, +0xA848,0xA849,0xCD43,0xCB4F,0xA850,0xA85B,0xCB5D,0xCB50, +0xA84E, 0,0xA853,0xCCEE,0xA85C,0xCB57,0xA852, 0, +0xA85D,0xA846,0xCB54,0xA84B,0xCB58,0xCD44, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xAA6A,0xAA7A,0xCCF5,0xAA71, 0, +0xCD4B,0xAA62, 0,0xAA65,0xCD42, 0,0xCCF3,0xCCF7, +0xAA6D,0xAA6F,0xCCFA,0xAA76,0xAA68,0xAA66,0xAA67,0xAA75, +0xCD47,0xAA70,0xCCF9,0xCCFB,0xAA6E,0xAA73,0xCCFC,0xCD4A, + 0,0xAC75,0xAA79, 0,0xAA63,0xCD49, 0,0xCD4D, +0xCCF8,0xCD4F,0xCD40,0xAA6C,0xCCF4,0xAA6B,0xAA7D,0xAA72, + 0,0xCCF2,0xCF75,0xAA78,0xAA7C,0xCD41,0xCD46, 0, +0xAA7E,0xAA77,0xAA69,0xAA5F, 0,0xAA64, 0,0xCCF6, +0xAA60,0xCD4E, 0,0xCCF0,0xCCEF,0xCCFD,0xCCF1,0xAA7B, +0xAEF5,0xAA74,0xCCFE,0xAA61, 0,0xACA6, 0, 0, + 0,0xCD4C, 0, 0, 0, 0, 0, 0, +0xCF7C,0xCFA1, 0,0xCFA4,0xCF77, 0, 0,0xCFA7, +0xCFAA,0xCFAC,0xCF74,0xAC76,0xAC7B,0xD249,0xACAD,0xCFA5, +0xCFAD,0xCF7B,0xCF73, 0, 0, 0,0xD264,0xAC7E, +0xCFA2,0xCF78,0xCF7A,0xACA5, 0,0xCF7D,0xAC7D,0xCF70, +0xCFA8, 0,0xCFAB, 0, 0,0xAC7A, 0,0xACA8, +0xCF6D,0xACAA,0xAC78,0xACAE,0xCFA9,0xCF6F,0xACAB,0xD25E, +0xCD48,0xAC7C,0xAC77,0xCF76,0xCF6E,0xACAC,0xACA4,0xCFA3, +0xACA9,0xACA7,0xCF79,0xACA1,0xCF71,0xACA2,0xACA3,0xCF72, +0xCFA6,0xAC79,0xCF7E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD24C,0xAEFD,0xAF43, 0, 0, 0,0xD255,0xD25B, +0xD257,0xD24A,0xD24D,0xD246,0xD247,0xAF4A,0xAEFA,0xD256, +0xD25F,0xAF45,0xAEF6, 0,0xAF40,0xD24E,0xAF42,0xD24F, +0xD259, 0, 0, 0,0xAF44,0xD268,0xD248,0xAEFC, +0xAEFB,0xAF48,0xD245,0xD266,0xD25A,0xD267,0xD261,0xD253, +0xD262, 0,0xD25C,0xD265,0xD263,0xAF49,0xD254,0xAEF9, +0xAEF8,0xAF41,0xAF47,0xD260,0xAF46,0xD251,0xB243, 0, +0xD269,0xD250,0xD24B,0xAEFE,0xAF4B,0xAEF7, 0,0xD258, +0xD25D, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xB265,0xD5E1,0xD5E5, 0,0xB252,0xB250, + 0, 0,0xB247,0xD5E3,0xD5E2,0xB25B, 0,0xD5E8, +0xB255, 0,0xD5FA,0xD647,0xB244,0xD5F7,0xD5F0,0xB267, +0xD5E0, 0,0xD5FC, 0,0xB264,0xB258,0xB263,0xB24E, +0xD5EC,0xD5FE,0xD5F6,0xB24F,0xB249,0xD645, 0,0xD5FD, +0xD640,0xB251,0xB259,0xD642,0xD5EA,0xD5FB,0xD5EF,0xD644, +0xB25E,0xB246,0xB25C,0xD5F4,0xD5F2,0xD5F3,0xB253,0xD5EE, +0xD5ED,0xB248,0xD5E7,0xD646,0xB24A,0xD5F1,0xB268, 0, +0xB262,0xD5E6,0xB25F,0xB25D,0xB266,0xD5F8,0xB261,0xD252, +0xD5F9,0xB260,0xD641,0xB245,0xD5F5,0xB257,0xD5E9,0xB256, + 0,0xB254,0xB24C,0xB24B,0xD9E7,0xD643, 0, 0, +0xD5EB, 0, 0,0xD9FC, 0,0xB24D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xB541,0xB25A,0xB4EE,0xD9F6,0xB4FC, 0,0xD9EA, +0xB4EB,0xB4E7,0xDA49,0xB4ED,0xB4F1,0xB4EC,0xB4F5,0xDA4D, +0xDA44, 0, 0,0xD9F1,0xB4FA,0xB4F4,0xD9FD,0xB4E4, +0xDA4A,0xDA43,0xB4E8,0xD9F7,0xB4F7,0xDA55,0xDA56, 0, +0xB4E5,0xDA48,0xB4F9,0xD9FB,0xD9ED,0xD9EE,0xB4FD,0xD9F2, +0xD9F9,0xD9F3, 0,0xB4FB,0xB544,0xD9EF,0xD9E8,0xD9E9, + 0,0xD9EB,0xB4EA,0xD9F8, 0,0xB4F8,0xB542, 0, + 0,0xD9FA,0xDA53,0xDA4B,0xB4E6,0xDA51,0xB4F2, 0, +0xB4F0, 0,0xDA57,0xB4EF,0xDA41,0xD9F4,0xD9FE,0xB547, +0xDA45,0xDA42,0xD9F0,0xB543,0xDA4F,0xDA4C,0xDA54,0xB4E9, +0xDA40,0xB546, 0,0xDA47, 0, 0,0xB4F3,0xB4F6, + 0,0xDA46,0xB545,0xD9F5,0xD5E4, 0, 0,0xDA50, +0xDA4E,0xDA52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD9EC,0xB540, 0, 0, 0,0xDE61,0xDE60,0xDE46, +0xB7BD, 0,0xDE5F,0xDE49,0xDE4A, 0,0xB7C7,0xDE68, +0xB7C2,0xDE5E, 0,0xDE43,0xB7C8,0xB7BE,0xDE52,0xDE48, +0xDE4B,0xDE63,0xB7B8,0xDE6A,0xDE62,0xB7C1,0xDE57,0xB7CC, + 0, 0,0xB7CB,0xB7C5, 0, 0,0xDE69,0xB7B9, +0xDE55,0xDE4C,0xDE59,0xDE65,0xB7CD, 0,0xB7BB,0xDE54, + 0,0xDE4D,0xB7C4, 0,0xB7C3,0xDE50,0xDE5A,0xDE64, +0xDE47,0xDE51,0xB7BC,0xDE5B,0xB7C9,0xB7C0,0xDE4E,0xB7BF, +0xDE45,0xDE53,0xDE67,0xB4FE,0xBAB0,0xDE56,0xE26C,0xDE58, +0xDE66,0xB7C6,0xDE4F,0xB7BA,0xB7CA,0xBCF0,0xDE44, 0, +0xDE5D, 0, 0, 0,0xDE5C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE2AA,0xBAAD,0xE27D,0xE2A4,0xBAA2, + 0,0xE26E,0xBAAF, 0,0xBA77,0xE26D,0xE2B0,0xBAB1, +0xE271,0xE2A3, 0,0xE273,0xE2B3,0xE2AF,0xBA75,0xBAA1, +0xE653,0xBAAE,0xBA7D,0xE26F, 0,0xE2AE,0xBAA3,0xE2AB, +0xE2B8,0xE275,0xE27E, 0, 0,0xE2B6,0xE2AC,0xBA7C, + 0, 0,0xE27C,0xBA76,0xBA74,0xBAA8, 0, 0, +0xE27A,0xE277,0xE278, 0,0xE2B2, 0,0xE2B7,0xE2B5, +0xBA7A,0xE2B9,0xBA7E,0xBAA7, 0,0xE270,0xE5FA,0xE279, + 0,0xBA78,0xBAAC,0xBAA9,0xBA7B,0xE2A5,0xE274,0xBAAA, +0xE2A7,0xBAA4,0xBAA6,0xBA73, 0,0xE2A9,0xE2A1,0xE272, +0xBAA5,0xE2B1,0xE2B4,0xE27B,0xE2A8, 0,0xBA79,0xBCDF, +0xE2A6,0xE5F9, 0,0xE2AD, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE276,0xE644, +0xE64E,0xBCE2,0xE64D,0xE659,0xBCE4,0xE64B, 0,0xE64F, +0xBCEF, 0,0xE646,0xBCE7, 0,0xE652,0xE9F0,0xBCF3, +0xBCF2,0xE654,0xE643,0xE65E,0xBCED, 0,0xBCE3,0xE657, + 0,0xE65B,0xE660,0xE655,0xE649,0xBCE6,0xBCE9,0xBCF1, +0xBCEC, 0,0xE64C,0xE2A2, 0, 0,0xE648,0xE65F, +0xBCE8, 0,0xBCEB,0xE661,0xBCE0,0xE656,0xE5FB,0xE65C, +0xC0DF, 0,0xE64A, 0,0xBCE1,0xE645,0xBCE5,0xE5FC, +0xBAAB,0xE641, 0,0xE65A,0xE642,0xE640,0xBCEA, 0, +0xE658, 0,0xE5FE,0xE651,0xE650,0xE65D,0xE647,0xBCEE, + 0, 0, 0, 0, 0, 0,0xE9F3, 0, +0xBF49,0xBEFE,0xEA40,0xE9EB,0xBF41,0xE9F7,0xBF48,0xBF43, +0xE9F5,0xED4F,0xE9FB,0xEA42,0xE9FA,0xE9E9,0xE9F8,0xEA44, +0xEA46,0xBEFD,0xEA45,0xBF44,0xBF4A, 0,0xBF47, 0, +0xE9FE,0xBF46,0xE9F9, 0,0xE9ED,0xE9F2, 0,0xE9FD, +0xBF45,0xBF42,0xBEFC,0xBF40,0xE9F1, 0,0xE5FD,0xE9EC, +0xE9EF,0xEA41,0xE9F4,0xE9EA,0xED4E,0xEA43,0xE9EE,0xE9FC, + 0, 0, 0, 0,0xED51,0xC0E3, 0, 0, +0xC0D7, 0, 0,0xC0DB,0xED53,0xED59,0xED57,0xC0D9, +0xC0DA,0xC0E1,0xED5A,0xED52,0xC0DC, 0,0xED56,0xED55, +0xED5B,0xC0E2, 0,0xC0DD,0xC0E0,0xED54,0xC0E4,0xC0DE, +0xC0E5,0xC0D8,0xED58, 0,0xED50, 0, 0,0xEFF7, + 0, 0,0xC271,0xEFF4,0xEFF6, 0,0xC26F,0xEFF2, +0xEFF3,0xEFEE, 0, 0,0xE9F6,0xEFEF,0xC270,0xEFEB, + 0,0xC26D,0xEFF8,0xC26E,0xEFEC,0xEFED,0xEFF1,0xC273, + 0,0xC272, 0, 0,0xEFF0,0xC378,0xF25F,0xF265, +0xC379,0xF25C,0xC376,0xC373,0xF267,0xC377, 0,0xC374, +0xF25E,0xF261,0xF262,0xF263,0xF266, 0,0xEFF5,0xF25D, +0xC375,0xF264,0xF268,0xF260, 0, 0, 0,0xF45D, +0xC46A,0xF460,0xC46B,0xF468,0xF45F,0xF45C, 0,0xF45E, +0xF462,0xF465,0xF464,0xF467,0xF45B, 0,0xC469,0xF463, +0xF466,0xF469,0xF461,0xF5D3,0xF5D4,0xF5D8,0xF5D9, 0, +0xF5D6,0xF5D7,0xF5D5, 0,0xC4E9, 0, 0, 0, + 0,0xC578,0xF6EB, 0, 0,0xF6E8,0xF6E9,0xF6EA, +0xC579, 0,0xF7E5,0xF7E4, 0,0xF8AF,0xC5F4,0xF8AD, +0xF8B0,0xF8AE,0xF8F5,0xC657,0xC665,0xF9A3,0xF96C, 0, +0xF9A2,0xF9D0,0xF9D1,0xA4F5, 0, 0, 0, 0, +0xA6C7,0xCA41, 0, 0,0xCB5E, 0,0xA85F, 0, +0xA862, 0,0xCB5F, 0,0xA860,0xA861, 0, 0, + 0, 0,0xCD58,0xCD5A,0xCD55,0xCD52,0xCD54, 0, + 0, 0,0xAAA4, 0, 0, 0,0xAAA2, 0, + 0,0xCD56,0xAAA3,0xCD53,0xCD50,0xAAA1,0xCD57, 0, +0xCD51,0xAAA5,0xCD59, 0, 0, 0, 0,0xCFAF, + 0,0xCFB3, 0, 0,0xACB7, 0, 0, 0, + 0,0xCFB6, 0,0xACAF,0xACB2,0xACB4,0xACB6,0xACB3, +0xCFB2,0xCFB1, 0,0xACB1,0xCFB4,0xCFB5, 0,0xCFAE, +0xACB5, 0,0xACB0, 0, 0, 0,0xCFB0, 0, + 0, 0, 0, 0, 0,0xD277,0xD278,0xD279, +0xAF50, 0,0xAF4C,0xD26E, 0,0xD276,0xD27B,0xAF51, + 0,0xD26C,0xD272,0xD26B,0xD275, 0, 0,0xD271, +0xAF4D,0xAF4F,0xD27A, 0,0xD26A,0xD26D,0xD273, 0, +0xD274,0xD27C,0xD270, 0,0xAF4E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xB26D, +0xD64E, 0, 0,0xD650,0xD64C, 0,0xD658,0xD64A, +0xD657,0xB269,0xD648,0xDA5B,0xD652,0xB26C, 0,0xD653, +0xD656, 0,0xD65A, 0,0xD64F, 0,0xD654, 0, + 0,0xB26A,0xB26B,0xD659,0xD64D,0xD649,0xD65B, 0, +0xD651, 0, 0,0xD655, 0, 0, 0,0xD64B, + 0,0xB548,0xB549,0xDA65,0xB54F, 0,0xDA59,0xDA62, +0xDA58,0xB54C,0xDA60,0xDA5E, 0,0xDA5F,0xB54A, 0, +0xDA63, 0, 0, 0, 0, 0,0xDA5C,0xDA5A, +0xB54B,0xDA5D,0xDA61, 0, 0, 0,0xB54D, 0, + 0, 0,0xDA64, 0, 0, 0, 0, 0, + 0,0xDE70,0xDE77,0xDE79,0xDEA1, 0,0xB7DA,0xDE6B, + 0,0xB7D2, 0,0xDE7A,0xB7D7,0xDEA2,0xB7CE, 0, +0xDE7D, 0,0xDE6D,0xDE7E,0xDE6C, 0,0xB7DC, 0, +0xDE78,0xB7CF,0xDEA3, 0,0xB7D4,0xDE71,0xB7D9,0xDE7C, +0xDE6F,0xDE76,0xDE72,0xDE6E,0xB7D1,0xB7D8,0xB7D6,0xB7D3, +0xB7DB,0xB7D0,0xDE75, 0,0xB7D5, 0,0xB54E, 0, +0xDE7B, 0,0xDE73, 0, 0, 0, 0, 0, +0xDE74, 0, 0,0xE2C1, 0,0xBAB4, 0, 0, +0xE2BD,0xE2C3,0xE2BF, 0,0xBAB6,0xE2BE,0xE2C2,0xE2BA, + 0,0xE2BC,0xBAB5, 0, 0, 0, 0,0xE2C0, +0xE2BB, 0,0xBAB7, 0,0xBAB2, 0, 0,0xE2C4, + 0,0xBAB3,0xE667,0xE664,0xE670,0xE66A,0xE66C,0xBCF4, +0xE666,0xE66E, 0, 0,0xE66D,0xE66B, 0,0xE671, +0xBCF7,0xE668,0xE66F, 0,0xBCF5, 0, 0,0xE663, +0xE665,0xBCF6,0xE662,0xE672, 0,0xE669, 0, 0, +0xEA4A,0xBF51, 0, 0,0xEA55,0xEA53,0xBF4B,0xEA49, +0xEA4C,0xEA4D,0xEA48,0xBF55,0xBF56,0xEA47,0xEA56,0xEA51, +0xBF4F,0xBF4C,0xEA50,0xEA4E, 0, 0,0xBF52,0xEA52, +0xBF4D, 0,0xBF4E, 0,0xEA4F,0xBF50,0xEA4B, 0, +0xEA54,0xBF53,0xEA57,0xEA58,0xBF54, 0, 0,0xC0E7, +0xC0EE,0xED5C,0xED62, 0,0xED60,0xC0EA,0xC0E9,0xC0E6, +0xED5E, 0, 0, 0,0xC0EC,0xC0EB,0xC0E8, 0, +0xED61,0xED5D,0xED5F, 0,0xC0ED, 0, 0, 0, +0xC277,0xEFFB, 0,0xC274,0xC275,0xEFFD,0xC276,0xEFFA, + 0,0xEFF9,0xF26C,0xEFFC, 0,0xF26D,0xC37A,0xF26B, + 0, 0,0xF26A, 0,0xF269,0xC37B, 0, 0, +0xC46C, 0, 0,0xF46A,0xF46B, 0, 0, 0, + 0,0xF5DC,0xF5DB,0xC4EA, 0,0xF5DA,0xF6EC,0xF6ED, + 0, 0,0xF7E6,0xF8B1, 0, 0,0xF8F6,0xF9BC, +0xC679,0xF9C6,0xA4F6, 0,0xAAA6,0xAAA7, 0, 0, +0xACB8, 0, 0, 0, 0,0xC0EF,0xA4F7, 0, +0xAAA8,0xAF52,0xB7DD,0xA4F8, 0,0xB26E,0xBAB8,0xC962, + 0,0xCFB7,0xD27D, 0,0xE2C5, 0,0xC0F0,0xA4F9, +0xAAA9,0xCFB8,0xCFB9,0xDA66,0xB550, 0, 0,0xDEA4, + 0, 0,0xB7DE,0xE2C6, 0, 0,0xBCF8, 0, +0xC37C,0xA4FA,0xDA67,0xA4FB, 0,0xA6C9,0xCA42,0xA6C8, +0xA865,0xA864,0xA863,0xCB60, 0, 0, 0,0xAAAA, + 0,0xAAAB,0xCD5B, 0,0xCFBA, 0,0xCFBD,0xACBA, +0xCFBB, 0,0xACB9,0xCFBC,0xACBB, 0,0xD2A2,0xD2A1, +0xD27E,0xAF53, 0,0xD65D,0xD65E,0xB26F,0xD65C,0xD65F, +0xB552,0xB270, 0, 0,0xB551,0xDA6B,0xDA6A, 0, +0xDA68,0xDA69, 0,0xDA6C,0xDEA6,0xDEA5,0xDEA9, 0, +0xDEA8,0xDEA7,0xBAB9,0xE2C9, 0,0xE2C8,0xBABA,0xE2C7, +0xE673, 0,0xE674,0xBCF9, 0,0xEA59,0xEA5A, 0, + 0,0xF272,0xC37D,0xF271,0xF270,0xF26E,0xF26F,0xC4EB, +0xF46C,0xF6EE,0xF8F7, 0,0xA4FC, 0,0xC9A5,0xA5C7, +0xC9A6, 0, 0, 0,0xCA43,0xCA44, 0, 0, + 0, 0,0xCB66, 0, 0,0xCB62, 0,0xCB61, +0xAAAC,0xCB65,0xA867,0xCB63,0xA866,0xCB67,0xCB64, 0, + 0,0xCD5F,0xCFBE,0xCD5D,0xCD64, 0,0xAAAD, 0, +0xAAB0,0xCD65,0xCD61, 0,0xCD62, 0,0xCD5C,0xAAAF, +0xCD5E,0xAAAE,0xCD63, 0,0xCD60, 0, 0,0xCFC2, +0xACBD,0xACBE, 0,0xCFC5,0xCFBF, 0,0xCFC4, 0, +0xCFC0,0xACBC,0xCFC3,0xCFC1, 0, 0, 0, 0, + 0, 0, 0,0xD2A8,0xD2A5, 0,0xD2A7,0xAF58, +0xAF57,0xAF55,0xD2A4,0xD2A9,0xAF54,0xAF56,0xD2A6,0xD667, +0xD2A3,0xD2AA, 0, 0, 0, 0, 0,0xD662, +0xD666, 0,0xD665,0xDA6E,0xDA79, 0, 0,0xD668, + 0,0xD663,0xDA6D,0xB274, 0, 0,0xB273,0xD661, +0xD664,0xB275, 0,0xB272,0xB271,0xD660,0xD669, 0, + 0, 0,0xDA70,0xDA77, 0,0xB554,0xDA76,0xDA73, + 0,0xB556, 0, 0, 0,0xDA75, 0, 0, +0xDA6F,0xDA71,0xDA74,0xDA72,0xB555,0xDA78,0xB553,0xB7DF, + 0, 0,0xDEAD,0xDEAC,0xDEAA, 0,0xB7E2,0xB7E1, +0xDEAE, 0,0xDEAB,0xE2CA,0xBABB,0xB7E0, 0, 0, + 0,0xDEB0,0xDEAF, 0,0xE2CD,0xE2CB,0xBCFA, 0, +0xBABC,0xE2CC,0xE676, 0, 0, 0, 0,0xBCFB, +0xE675,0xE67E,0xE67D,0xE67B, 0,0xE67A,0xE677,0xE678, +0xE679,0xE67C,0xE6A1, 0, 0,0xEA5F,0xEA5C,0xEA5D, +0xBF57,0xEA5B,0xEA61,0xEA60,0xEA5E, 0,0xED64,0xED65, +0xC0F1, 0,0xC0F2,0xED63, 0,0xC279,0xEFFE,0xC278, +0xC37E, 0,0xC3A1,0xC46D,0xF46E,0xF46D,0xF5DD,0xF6EF, +0xC57A,0xF7E8,0xF7E7,0xF7E9,0xA5C8,0xCFC6,0xAF59,0xB276, +0xD66A,0xA5C9,0xC9A7,0xA4FD, 0, 0,0xCA45, 0, + 0, 0,0xCB6C,0xCB6A,0xCB6B,0xCB68,0xA868,0xCB69, + 0, 0, 0, 0, 0,0xCD6D, 0,0xAAB3, +0xCD6B,0xCD67,0xCD6A, 0,0xCD66,0xAAB5,0xCD69, 0, +0xAAB2,0xAAB1, 0,0xAAB4,0xCD6C,0xCD68, 0, 0, + 0, 0,0xACC2,0xACC5,0xCFCE,0xCFCD,0xCFCC,0xACBF, +0xCFD5,0xCFCB, 0,0xACC1,0xD2AF, 0,0xCFD2,0xCFD0, +0xACC4, 0,0xCFC8,0xCFD3, 0,0xCFCA,0xCFD4,0xCFD1, +0xCFC9, 0,0xACC0,0xCFD6,0xCFC7,0xACC3, 0, 0, + 0, 0,0xD2B4,0xD2AB,0xD2B6, 0,0xD2AE,0xD2B9, +0xD2BA,0xD2AC,0xD2B8,0xD2B5,0xD2B3,0xD2B7,0xAF5F, 0, +0xAF5D, 0, 0,0xD2B1, 0,0xD2AD, 0,0xD2B0, +0xD2BB,0xD2B2,0xAF5E,0xCFCF, 0,0xAF5A,0xAF5C, 0, + 0, 0, 0, 0,0xD678,0xD66D,0xD66B, 0, +0xD66C, 0,0xD673, 0,0xD674,0xD670,0xB27B,0xD675, +0xD672,0xD66F, 0,0xB279,0xD66E,0xB277,0xB27A,0xD671, +0xD679,0xAF5B,0xB278,0xD677,0xD676,0xB27C, 0, 0, + 0, 0, 0, 0, 0, 0,0xDA7E, 0, + 0, 0,0xDAA1,0xB560, 0,0xDAA7, 0, 0, +0xDAA9,0xDAA2,0xB55A,0xDAA6,0xDAA5,0xB55B,0xB561, 0, +0xB562,0xDAA8,0xB558,0xDA7D,0xDA7B,0xDAA3,0xDA7A,0xB55F, +0xDA7C,0xDAA4,0xDAAA,0xB559,0xB55E,0xB55C,0xB55D, 0, + 0, 0,0xB557, 0, 0, 0, 0,0xB7E9, +0xDEB7,0xB7E8,0xDEBB, 0,0xDEB1, 0,0xDEBC, 0, + 0, 0,0xDEB2,0xDEB3, 0,0xDEBD,0xDEBA,0xDEB8, +0xDEB9,0xDEB5,0xDEB4, 0,0xDEBE,0xB7E5, 0,0xDEB6, + 0,0xB7EA,0xB7E4,0xB7EB,0xB7EC, 0,0xB7E7,0xB7E6, + 0, 0,0xE2CE,0xBABE,0xBABD, 0, 0,0xE2D3, + 0,0xBCFC,0xBABF, 0, 0,0xBAC1,0xE2D4,0xB7E3, +0xBAC0,0xE2D0,0xE2D2,0xE2CF, 0,0xE2D1, 0, 0, + 0,0xE6AB, 0, 0,0xE6AA,0xE6A7,0xBD40,0xEA62, +0xBD41,0xE6A6, 0,0xBCFE, 0,0xE6A8,0xE6A5,0xE6A2, +0xE6A9,0xE6A3,0xE6A4,0xBCFD, 0, 0, 0, 0, +0xED69, 0,0xEA66, 0,0xEA65,0xEA67, 0,0xED66, +0xBF5A, 0,0xEA63, 0,0xBF58, 0,0xBF5C,0xBF5B, +0xEA64,0xEA68, 0,0xBF59, 0,0xED6D,0xC0F5,0xC27A, +0xC0F6,0xC0F3,0xED6A,0xED68, 0,0xED6B, 0,0xED6E, +0xC0F4,0xED6C,0xED67, 0, 0,0xF042,0xF045,0xF275, +0xF040, 0,0xF46F,0xF046, 0,0xC3A2,0xF044,0xC27B, +0xF041,0xF043,0xF047,0xF276, 0,0xF274, 0, 0, + 0, 0,0xC3A3,0xF273, 0, 0, 0,0xC46E, + 0, 0, 0, 0,0xC4ED,0xF6F1,0xC4EC,0xF6F3, +0xF6F0,0xF6F2,0xC5D0,0xF8B2,0xA5CA,0xCD6E,0xD2BC,0xD2BD, +0xB27D,0xDEBF,0xBF5D,0xC3A4,0xC57B,0xF8B3,0xA5CB, 0, +0xCD6F,0xA260, 0, 0,0xCFD7, 0,0xCFD8, 0, + 0, 0, 0, 0,0xD2BE,0xD2BF,0xB27E,0xB2A1, + 0, 0, 0,0xDAAB, 0,0xDEC2,0xDEC1,0xDEC0, +0xE2D5, 0,0xE2D6,0xE2D7,0xBAC2, 0, 0,0xE6AD, +0xE6AC, 0, 0,0xEA69,0xBF5E,0xBF5F, 0,0xED72, +0xED6F,0xED70,0xED71,0xF049,0xF048,0xC27C,0xF277,0xF5DE, +0xA5CC, 0,0xACC6, 0,0xB2A2,0xDEC3, 0,0xA5CD, + 0,0xD2C0,0xB2A3, 0, 0,0xB563,0xB564, 0, +0xA5CE,0xA5CF,0xCA46,0xA86A,0xA869,0xACC7,0xCFD9,0xDAAC, +0xA5D0,0xA5D1,0xA5D2,0xA5D3, 0, 0, 0,0xA86B, +0xA86C,0xCB6E,0xCB6D, 0, 0,0xAAB6,0xCD72,0xCD70, +0xCD71, 0, 0, 0, 0, 0, 0,0xCFDA, +0xCFDB, 0, 0,0xACCB,0xACC9, 0,0xACCA,0xACC8, + 0, 0, 0, 0,0xAF60, 0, 0, 0, + 0,0xAF64,0xAF63,0xD2C1,0xAF62,0xAF61, 0,0xD2C2, + 0, 0,0xB2A6,0xD67B,0xD67A,0xB2A4,0xB2A5, 0, + 0, 0,0xB566,0xB565,0xDAAE, 0, 0,0xDAAD, +0xB2A7, 0, 0, 0, 0, 0,0xB7ED,0xDEC5, +0xB7EE,0xDEC4, 0, 0, 0,0xE2D8,0xE6AE,0xBD42, +0xEA6A, 0, 0, 0,0xED73, 0,0xC3A6,0xC3A5, + 0, 0,0xC57C,0xA5D4,0xCD73, 0, 0,0xB2A8, +0xE2D9,0xBAC3, 0, 0,0xCB6F,0xCB70, 0, 0, +0xCD74,0xAAB8,0xAAB9, 0, 0,0xAAB7, 0, 0, + 0, 0,0xACCF,0xACD0,0xACCD,0xACCE, 0,0xCFDC, + 0, 0,0xCFDD,0xACCC, 0, 0, 0, 0, +0xD2C3, 0,0xAF68,0xAF69, 0,0xB2AB,0xD2C9, 0, +0xAF6E,0xAF6C,0xD2CA,0xD2C5,0xAF6B,0xAF6A,0xAF65,0xD2C8, +0xD2C7,0xD2C4,0xAF6D, 0,0xD2C6,0xAF66, 0,0xAF67, + 0, 0,0xB2AC,0xD6A1,0xD6A2,0xB2AD,0xD67C,0xD67E, +0xD6A4,0xD6A3,0xD67D, 0,0xB2A9,0xB2AA, 0,0xDAB6, +0xB56B,0xB56A,0xDAB0,0xB568, 0,0xDAB3,0xB56C,0xDAB4, +0xB56D,0xDAB1,0xB567,0xB569,0xDAB5, 0,0xDAB2,0xDAAF, + 0, 0, 0, 0, 0,0xDED2, 0,0xDEC7, +0xB7F0,0xB7F3,0xB7F2,0xB7F7,0xB7F6,0xDED3,0xDED1,0xDECA, +0xDECE,0xDECD,0xB7F4,0xDED0,0xDECC,0xDED4,0xDECB,0xB7F5, +0xB7EF,0xB7F1, 0,0xDEC9, 0, 0, 0, 0, +0xE2DB,0xBAC7,0xE2DF,0xBAC6,0xE2DC,0xBAC5, 0,0xDEC8, +0xDECF,0xE2DE, 0,0xBAC8,0xE2E0,0xE2DD,0xE2DA, 0, + 0,0xE6B1,0xE6B5,0xE6B7,0xE6B3,0xE6B2,0xE6B0,0xBD45, +0xBD43,0xBD48,0xBD49,0xE6B4,0xBD46,0xE6AF,0xBD47,0xBAC4, +0xE6B6,0xBD44, 0, 0, 0,0xEA6C, 0,0xEA6B, +0xEA73,0xEA6D,0xEA72,0xEA6F,0xBF60,0xEA71, 0, 0, +0xBF61, 0,0xBF62, 0,0xEA70,0xEA6E, 0, 0, + 0, 0,0xC0F8,0xED74, 0, 0,0xC0F7,0xED77, +0xED75,0xED76, 0, 0,0xC0F9, 0, 0, 0, +0xF04D, 0,0xC2A1,0xF04E, 0, 0,0xC27D,0xF04F, +0xC27E,0xF04C,0xF050, 0,0xF04A, 0, 0,0xC3A7, +0xF278,0xC3A8,0xC46F, 0,0xF04B,0xC470, 0, 0, + 0,0xC4EE,0xF5DF, 0,0xC57E,0xF6F4,0xC57D, 0, +0xF7EA,0xC5F5,0xC5F6, 0, 0,0xF9CC, 0, 0, +0xACD1,0xCFDE, 0,0xB56E,0xB56F,0xA5D5,0xA6CA,0xCA47, + 0,0xCB71,0xA86D, 0,0xAABA, 0,0xACD2,0xACD3, +0xACD4,0xD6A6,0xD2CB,0xAF6F, 0, 0,0xB2AE,0xD6A5, + 0, 0,0xDAB8,0xB571, 0,0xDAB7,0xB570, 0, + 0,0xDED5,0xBD4A,0xE6BB,0xE6B8,0xE6B9,0xE6BA, 0, + 0, 0, 0, 0,0xED78, 0,0xF051, 0, + 0, 0,0xF471,0xF470, 0,0xF6F5,0xA5D6,0xCD75, +0xAF70, 0, 0, 0,0xB572,0xDED6, 0, 0, +0xE2E1, 0,0xBD4B,0xEA74, 0,0xF052,0xF472,0xA5D7, + 0, 0,0xAABB,0xACD7,0xCFDF,0xACD8,0xACD6, 0, +0xACD5,0xD2CC,0xAF71, 0, 0,0xAF72,0xAF73, 0, + 0, 0,0xB2B0,0xD6A7,0xB2AF, 0, 0, 0, + 0, 0,0xDAB9,0xB2B1,0xB573,0xDED7,0xB7F8,0xB7F9, + 0,0xBAC9, 0,0xBACA,0xBD4C,0xBF64,0xEA75,0xBF63, + 0,0xED79,0xC0FA, 0,0xF053,0xF473,0xA5D8,0xA86E, +0xCD78,0xCD77,0xAABC,0xCD76,0xAABD,0xCD79, 0,0xCFE5, +0xACDB,0xACDA,0xCFE7,0xCFE6,0xACDF, 0,0xACDE, 0, + 0,0xACD9, 0,0xCFE1,0xCFE2,0xCFE3, 0,0xACE0, +0xCFE0,0xACDC,0xCFE4,0xACDD, 0, 0, 0, 0, +0xD2CF,0xD2D3,0xD2D1,0xD2D0, 0,0xD2D4, 0, 0, + 0,0xD2D5,0xD2D6,0xD2CE, 0,0xD2CD, 0,0xAF75, +0xAF76, 0,0xD2D7,0xD2D2, 0,0xD6B0, 0,0xD2D8, +0xAF77,0xAF74, 0, 0, 0,0xD6AA, 0,0xD6A9, + 0,0xD6AB,0xD6AC,0xD6AE,0xD6AD,0xD6B2,0xB2B5,0xB2B2, +0xB2B6,0xD6A8,0xB2B7,0xD6B1,0xB2B4,0xD6AF,0xB2B3, 0, + 0, 0, 0, 0,0xDABC,0xDABE,0xDABA,0xDABB, + 0, 0,0xDABF,0xDAC1,0xDAC2,0xDABD,0xDAC0,0xB574, + 0, 0,0xDEDB, 0,0xDEE0,0xDED8,0xDEDC, 0, + 0,0xDEE1,0xDEDD,0xB7FA,0xB843, 0,0xB7FD,0xDED9, +0xDEDA,0xBACE,0xB846,0xB7FE, 0,0xB844,0xB7FC,0xDEDF, +0xB845,0xDEDE,0xB841,0xB7FB,0xB842,0xDEE2,0xE2E6,0xE2E8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xB840, 0, 0,0xE2E3,0xBACC,0xE2E9,0xBACD, +0xE2E7,0xE2E2,0xE2E5,0xE2EA,0xBACB,0xE2E4, 0,0xBD4E, +0xE6BF,0xE6BE, 0,0xBD51,0xBD4F,0xE6BC,0xBD4D,0xE6BD, + 0,0xBD50, 0, 0, 0,0xEA7D, 0,0xEAA1, + 0,0xEA7E,0xEA76,0xEA7A,0xEA79,0xEA77,0xBF66,0xBF67, +0xBF65,0xEA78,0xEA7B,0xEA7C, 0,0xBF68, 0,0xC140, +0xEDA3, 0,0xC0FC,0xED7B,0xC0FE,0xC141, 0, 0, +0xC0FD,0xEDA2,0xED7C,0xC0FB,0xEDA1,0xED7A,0xED7E,0xED7D, + 0, 0,0xF055,0xC2A4,0xC2A5,0xC2A2, 0,0xC2A3, + 0, 0,0xF054, 0,0xF27B, 0, 0,0xC3A9, + 0,0xF279,0xF27A, 0,0xF474,0xF477,0xF475,0xF476, +0xF5E0, 0, 0,0xC4EF,0xF7EB,0xF8B4, 0,0xC5F7, +0xF8F8,0xF8F9,0xC666,0xA5D9,0xACE1, 0,0xDAC3, 0, +0xDEE3, 0,0xA5DA,0xA86F, 0,0xAABE, 0,0xCFE8, +0xCFE9,0xAF78, 0, 0,0xDAC4,0xB575,0xB847,0xC142, +0xEDA4,0xF27C,0xF478,0xA5DB, 0, 0, 0,0xCDA1, +0xCD7A,0xCD7C,0xCD7E,0xCD7D,0xCD7B,0xAABF, 0, 0, + 0, 0,0xACE2,0xCFF2, 0,0xCFED,0xCFEA, 0, + 0,0xCFF1, 0, 0,0xACE4,0xACE5,0xCFF0,0xCFEF, +0xCFEE,0xCFEB,0xCFEC,0xCFF3,0xACE3, 0, 0, 0, + 0, 0, 0, 0, 0,0xAF7C, 0,0xAFA4, +0xAFA3,0xD2E1,0xD2DB,0xD2D9, 0,0xAFA1,0xD6B9,0xAF7A, +0xD2DE,0xD2E2,0xD2E4,0xD2E0,0xD2DA,0xAFA2,0xD2DF,0xD2DD, +0xAF79,0xD2E5,0xAFA5,0xD2E3,0xAF7D,0xD2DC, 0,0xAF7E, +0xAF7B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xB2B9, 0,0xD6BA, 0, 0, +0xD6B3,0xD6B5,0xD6B7, 0,0xD6B8,0xD6B6,0xB2BA, 0, +0xD6BB, 0,0xD6B4, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDAC8,0xB576,0xDAD0, 0, +0xDAC5, 0,0xDAD1, 0,0xDAC6,0xDAC7, 0, 0, +0xDACF,0xDACE,0xDACB,0xB2B8,0xB577,0xDAC9,0xDACC,0xB578, +0xDACD,0xDACA, 0, 0, 0, 0, 0, 0, + 0,0xDEEE, 0,0xDEF2,0xB84E, 0,0xE2F0,0xB851, +0xDEF0,0xF9D6, 0,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4, + 0,0xB84D, 0, 0,0xB84C, 0,0xB848,0xDEE7, + 0,0xB84F, 0,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A, +0xB84B,0xDEEF,0xDEE5, 0, 0, 0,0xE2F2,0xBAD0, +0xE2F4,0xDEEC,0xE2F6,0xBAD4,0xE2F7,0xE2F3, 0,0xBAD1, +0xE2EF,0xBAD3,0xE2EC,0xE2F1,0xE2F5,0xE2EE, 0, 0, +0xB849, 0,0xE2EB,0xBAD2,0xE2ED, 0, 0, 0, + 0, 0,0xBD54,0xE6C1,0xBD58, 0,0xBD56, 0, + 0,0xBACF, 0,0xE6C8,0xE6C9,0xBD53, 0, 0, +0xE6C7,0xE6CA,0xBD55,0xBD52,0xE6C3,0xE6C0,0xE6C5,0xE6C2, +0xBD59,0xE6C4, 0, 0,0xE6C6,0xBD57, 0, 0, + 0, 0,0xBF6A,0xEAA8, 0,0xEAA2,0xEAA6,0xEAAC, +0xEAAD,0xEAA9,0xEAAA,0xEAA7, 0,0xEAA4, 0,0xBF6C, +0xBF69,0xEAA3,0xEAA5, 0,0xBF6B,0xEAAB, 0,0xC146, + 0, 0,0xEDAA,0xEDA5,0xC145, 0, 0,0xC143, + 0,0xEDAC,0xC144,0xEDA8,0xEDA9,0xEDA6,0xEDAD,0xF056, + 0,0xC147,0xEDA7, 0,0xEDAE,0xEDAB, 0, 0, + 0,0xF05A, 0, 0,0xF057, 0,0xC2A6, 0, +0xF05B,0xF05D,0xF05C,0xF058,0xF059, 0, 0,0xF2A3, + 0,0xC3AA, 0,0xF27E,0xF2A2,0xF27D,0xF2A4, 0, + 0,0xF2A1, 0,0xF47A,0xF47D,0xF479,0xC471,0xF47B, +0xF47C,0xF47E,0xC472,0xC474,0xC473,0xF5E1, 0,0xF5E3, + 0,0xF5E2, 0, 0, 0,0xF6F6, 0, 0, +0xF8B5,0xF8FA,0xA5DC, 0, 0,0xCB72,0xAAC0,0xCDA3, +0xAAC1,0xAAC2,0xCDA2, 0,0xCFF8,0xCFF7,0xACE6,0xACE9, +0xACE8,0xACE7,0xCFF4,0xCFF6,0xCFF5, 0, 0,0xD2E8, +0xAFA7,0xD2EC,0xD2EB,0xD2EA,0xD2E6,0xAFA6,0xAFAA,0xAFAD, + 0, 0,0xAFAE,0xD2E7,0xD2E9,0xAFAC,0xAFAB,0xAFA9, +0xAFA8,0xD6C2, 0,0xD6C0,0xD6BC,0xB2BB, 0,0xD6BD, +0xB2BC,0xD6BE,0xD6BF,0xD6C1, 0,0xB2BD, 0, 0, +0xDAD5, 0,0xDAD4,0xDAD3,0xDAD2, 0, 0, 0, + 0,0xDEF6,0xB852, 0,0xDEF3,0xDEF5, 0,0xB853, + 0,0xB854,0xDEF4, 0, 0, 0, 0, 0, +0xE341, 0,0xE2F9,0xE2FA, 0,0xBAD7,0xBAD5,0xBAD6, +0xE343, 0,0xE342,0xE2FE,0xE2FD,0xE2FC,0xE2FB,0xE340, +0xE2F8, 0,0xE6CB,0xE6D0,0xE6CE, 0, 0, 0, +0xE6CD,0xE6CC,0xE6CF, 0,0xEAAE, 0,0xBF6D,0xC148, +0xEDB0, 0,0xC149,0xEDAF,0xF05F,0xF05E,0xC2A7, 0, +0xF2A5,0xC3AB,0xF4A1,0xC5A1,0xF6F7, 0,0xF8B7,0xF8B6, +0xC9A8,0xACEA,0xACEB,0xD6C3, 0,0xB856,0xA5DD,0xA872, +0xA871,0xA870, 0, 0, 0,0xCDA4, 0, 0, +0xAAC4,0xAAC3, 0,0xACEE, 0,0xCFFA,0xCFFD,0xCFFB, + 0,0xACEC,0xACED, 0, 0,0xCFF9,0xCFFC, 0, +0xAFB5, 0, 0, 0,0xD2F3,0xD2F5,0xD2F4,0xAFB2, +0xD2EF, 0, 0,0xAFB0,0xAFAF, 0,0xAFB3,0xAFB1, + 0,0xAFB4,0xD2F2,0xD2ED,0xD2EE,0xD2F1,0xD2F0, 0, + 0, 0, 0, 0, 0, 0,0xD6C6,0xD6C7, +0xD6C5, 0,0xD6C4,0xB2BE, 0, 0, 0, 0, +0xB57D, 0,0xDAD6,0xDAD8,0xDADA,0xB57C, 0, 0, +0xB57A, 0,0xDAD7,0xB57B,0xDAD9,0xB579, 0, 0, +0xDF41,0xDEF7,0xDEFA,0xDEFE,0xB85A,0xDEFC, 0,0xDEFB, +0xDEF8,0xDEF9,0xB858,0xDF40,0xB857, 0,0xB85C,0xB85B, +0xB859, 0,0xDEFD, 0, 0, 0,0xE349, 0, +0xE348, 0, 0,0xE344, 0, 0,0xBAD8,0xE347, +0xE346,0xBAD9, 0, 0, 0, 0, 0,0xBD5E, + 0,0xE6D2, 0,0xBD5F,0xBD5B,0xBD5D, 0,0xBD5A, +0xBD5C, 0, 0, 0,0xEAAF, 0,0xBF70,0xEAB1, +0xEAB0, 0,0xE345,0xBF72,0xBF71,0xBF6E,0xBF6F, 0, + 0, 0, 0, 0,0xEDB5, 0,0xEDB3,0xC14A, +0xEDB4, 0,0xEDB6,0xEDB2,0xEDB1, 0, 0,0xF060, +0xC2AA,0xC2A8,0xC2A9, 0, 0, 0, 0,0xF2A6, +0xF2A7,0xC3AD, 0,0xC3AC,0xF4A3,0xF4A4,0xF4A2, 0, +0xF6F8,0xF6F9, 0, 0,0xA5DE,0xCA48,0xA873, 0, +0xCDA5,0xAAC6,0xAAC5,0xCDA6, 0, 0,0xD040,0xACEF, +0xCFFE,0xACF0, 0, 0,0xAFB6,0xD2F8,0xD2F6,0xD2FC, +0xAFB7,0xD2F7,0xD2FB,0xD2F9,0xD2FA, 0, 0,0xD6C8, +0xD6CA, 0,0xB2BF, 0,0xD6C9,0xB2C0,0xB5A2,0xB5A1, +0xB57E,0xDADB, 0, 0, 0, 0,0xDF44,0xB85D, +0xB85E, 0,0xDF43,0xDF42, 0, 0, 0, 0, +0xE34A,0xBADB,0xBADA,0xE34B,0xE34C, 0,0xBD61,0xBD60, + 0,0xEAB5,0xE6D3,0xE6D5,0xE6D4,0xEAB4,0xEAB2,0xEAB6, +0xEAB3, 0,0xBF73, 0, 0, 0,0xEDB7,0xC14B, +0xEDB8,0xEDB9, 0, 0,0xC2AB,0xC2AC, 0,0xC475, + 0, 0,0xC5D1,0xA5DF, 0, 0, 0, 0, + 0,0xD041, 0, 0, 0, 0, 0, 0, +0xD2FD,0xAFB8, 0, 0, 0, 0, 0,0xB3BA, +0xB3B9, 0, 0,0xB5A4,0xDADD,0xB5A3,0xDADC, 0, + 0, 0, 0,0xDF45, 0,0xBADC,0xE34D,0xBADD, + 0, 0, 0, 0, 0, 0,0xC476,0xF4A5, + 0,0xA6CB,0xAAC7,0xCDA7, 0,0xACF2, 0,0xACF1, +0xD042,0xD043, 0, 0,0xD340,0xD342,0xAFB9, 0, +0xD344,0xD347,0xD345, 0, 0, 0,0xD346,0xD343, +0xD2FE,0xAFBA,0xD348,0xD341, 0, 0, 0, 0, +0xD6D3,0xB2C6,0xD6DC,0xB2C3, 0,0xD6D5,0xB2C7, 0, +0xB2C1, 0,0xD6D0,0xD6DD,0xD6D1,0xD6CE,0xB2C5, 0, +0xB2C2, 0,0xD6D4,0xD6D7,0xB2C4,0xD6D8,0xB2C8,0xD6D9, +0xD6CF,0xD6D6,0xD6DA,0xD6D2,0xD6CD,0xD6CB, 0, 0, +0xD6DB, 0, 0,0xDADF, 0, 0, 0, 0, +0xDAE4, 0, 0, 0,0xDAE0,0xDAE6,0xB5A7,0xD6CC, +0xDAE1,0xB5A5,0xDADE,0xB5AC,0xDAE2,0xB5AB,0xDAE3,0xB5AD, +0xB5A8,0xB5AE,0xB5A9, 0,0xB5AA, 0,0xB5A6, 0, +0xDAE5, 0, 0, 0, 0, 0, 0, 0, +0xB861,0xDF50, 0,0xDF53,0xDF47,0xDF4C,0xDF46,0xB863, + 0,0xDF4A, 0, 0, 0,0xDF48,0xB862, 0, +0xDF4F,0xDF4E,0xDF4B,0xDF4D,0xDF49,0xBAE1,0xDF52,0xB85F, +0xDF51, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE35D, 0,0xBAE8,0xE358, 0,0xBAE7, +0xE34E, 0,0xE350,0xBAE0,0xE355,0xE354,0xE357,0xBAE5, +0xE352,0xE351, 0, 0,0xBAE4,0xBADF,0xE353,0xBAE2, +0xE359,0xE35B, 0,0xE356,0xE34F,0xBAE3, 0, 0, +0xBD69,0xBADE, 0, 0,0xE35C, 0, 0, 0, + 0, 0, 0, 0,0xE6D9,0xBD62, 0,0xE6DB, + 0,0xBD63, 0, 0,0xBD65,0xE6DE, 0,0xE6D6, +0xBAE6,0xE6DC, 0, 0, 0, 0,0xE6D8, 0, +0xB860,0xBD68, 0, 0,0xBD64, 0,0xBD66,0xBD67, + 0,0xBF76,0xE6DD,0xE6D7,0xBD6A, 0,0xE6DA, 0, + 0, 0, 0, 0,0xEAC0,0xEABB, 0, 0, +0xEAC5,0xBF74,0xEABD,0xBF78,0xEAC3,0xEABA,0xEAB7,0xEAC6, +0xC151,0xBF79,0xEAC2,0xEAB8,0xBF77,0xEABC,0xBF7B,0xEAB9, +0xEABE,0xBF7A,0xEAC1,0xEAC4, 0, 0, 0, 0, +0xEDCB,0xEDCC,0xEDBC,0xEDC3,0xEDC1, 0, 0,0xC14F, +0xEDC8,0xEABF, 0,0xEDBF, 0,0xEDC9,0xC14E,0xEDBE, +0xEDBD,0xEDC7,0xEDC4,0xEDC6, 0,0xEDBA,0xEDCA,0xC14C, + 0,0xEDC5,0xEDCE,0xEDC2,0xC150,0xC14D,0xEDC0,0xEDBB, +0xEDCD,0xBF75, 0, 0, 0, 0, 0, 0, + 0,0xF063, 0, 0,0xF061,0xF067,0xC2B0,0xF065, +0xF064,0xC2B2,0xF06A,0xC2B1, 0,0xF06B,0xF068,0xC2AE, +0xF069,0xF062,0xC2AF,0xC2AD,0xF2AB,0xF066, 0, 0, +0xF06C, 0, 0,0xF2A8, 0, 0, 0,0xC3B2, +0xC3B0,0xF2AA, 0,0xF2AC,0xF2A9,0xC3B1,0xC3AE,0xC3AF, +0xC3B3, 0, 0,0xC478, 0,0xF4AA, 0,0xF4A9, +0xF4A7,0xF4A6,0xF4A8, 0,0xC477,0xC479, 0, 0, +0xC4F0, 0, 0,0xF5E5,0xF5E4, 0, 0,0xF6FA, + 0,0xF6FC,0xF6FE,0xF6FD,0xF6FB, 0, 0,0xC5A3, +0xC5A2, 0, 0,0xC5D3,0xC5D2,0xC5D4,0xF7ED,0xF7EC, + 0,0xF8FB,0xF8B8,0xF8FC,0xC658, 0,0xC659,0xF96D, + 0, 0,0xC67E,0xA6CC, 0,0xCDA8, 0, 0, +0xD045,0xD046,0xD044, 0, 0,0xACF3, 0,0xD047, +0xD048,0xD049, 0, 0,0xD349,0xD34F, 0, 0, +0xD34D,0xAFBB,0xD34B, 0,0xD34C,0xD34E, 0, 0, + 0,0xD34A,0xB2C9, 0,0xD6DE,0xB2CB,0xD6E0,0xB2CA, +0xD6DF, 0, 0, 0, 0, 0,0xDAE8,0xB5AF, + 0,0xDAEA,0xDAE7,0xD6E1, 0,0xB5B0, 0,0xF9DB, +0xDAE9, 0, 0, 0, 0, 0, 0,0xDF56, + 0,0xB864,0xDF54,0xB865,0xDF55,0xB866, 0, 0, + 0,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB,0xE35F, + 0, 0, 0, 0, 0,0xE6DF, 0, 0, +0xE6E0, 0,0xBD6B,0xE6E2,0xE6E1, 0,0xA261, 0, +0xEACA,0xEACB,0xEAC7, 0,0xEAC8,0xBF7C,0xBF7D,0xEAC9, + 0,0xC157, 0, 0,0xC153,0xC158,0xC154,0xC156, +0xC152, 0,0xC155, 0, 0, 0, 0,0xC2B3, +0xEDCF, 0,0xF2AE, 0,0xF2AD, 0,0xF4AB,0xC47A, +0xC47B,0xF741,0xF5E6, 0,0xF740, 0,0xF8FD,0xF9A4, +0xA6CD, 0, 0,0xA874, 0,0xCDA9,0xAAC8, 0, +0xACF6,0xD04C,0xACF4,0xD04A,0xACF9,0xACF5,0xACFA,0xACF8, +0xD04B,0xACF7,0xAFBF,0xAFBE,0xD35A,0xAFC7,0xD353,0xD359, +0xAFC3,0xD352,0xD358,0xD356,0xAFC2,0xAFC4,0xD355,0xAFBD, +0xD354,0xAFC8,0xAFC5,0xAFC9,0xAFC6,0xD351,0xD350,0xD357, +0xAFC0,0xAFBC,0xAFC1, 0, 0, 0, 0, 0, +0xD6F0,0xD6E9, 0,0xB5B5,0xD6E8, 0,0xB2CF,0xB2D6, +0xB2D3,0xB2D9,0xB2D8,0xB2D4, 0,0xD6E2,0xD6E5, 0, +0xD6E4,0xB2D0,0xD6E6,0xD6EF,0xB2D1,0xD6E3,0xD6EC,0xD6ED, +0xB2D2,0xD6EA,0xB2D7,0xB2CD,0xB2D5,0xD6E7,0xB2CC,0xD6EB, + 0, 0,0xD6EE, 0, 0, 0,0xDAFB,0xDAF2, +0xB5B2,0xDAF9,0xDAF6,0xDAEE,0xDAF7,0xB5B4,0xDAEF, 0, +0xDAEB, 0, 0,0xB86C,0xDAF4, 0,0xB5B1,0xDAFA, + 0,0xB5B8,0xB5BA,0xDAED, 0, 0,0xB5B9,0xDAF0, +0xB5B3,0xDAF8,0xDAF1,0xDAF5, 0,0xDAF3,0xB5B6,0xDAEC, +0xB5BB,0xB2CE,0xB5B7,0xB5BC, 0, 0, 0, 0, + 0,0xB868,0xDF5D,0xDF5F,0xDF61,0xDF65, 0,0xDF5B, +0xDF59,0xB86A, 0,0xDF60,0xDF64,0xDF5C,0xDF58, 0, +0xDF57, 0, 0, 0,0xDF62,0xDF5A,0xDF5E,0xB86B, + 0,0xB869,0xDF66,0xB867,0xDF63, 0,0xE372, 0, + 0, 0, 0, 0,0xBAEE,0xE36A,0xBD78,0xE374, +0xBAF1,0xE378,0xBAF7,0xE365, 0, 0,0xE375,0xE362, + 0,0xE377,0xE366, 0,0xBAFE,0xBAFB,0xE376,0xE370, +0xBAED,0xBAF5,0xBAF4, 0,0xBAF3,0xBAF9, 0,0xE363, +0xBAFA,0xE371,0xBAF6,0xBAEC,0xE373,0xBAEF,0xBAF0,0xBAF8, +0xE368,0xE367,0xE364, 0,0xE36C,0xE369,0xE36D,0xBAFD, + 0,0xE379,0xBAF2,0xE36E,0xE36F, 0,0xE36B, 0, + 0, 0,0xBAFC, 0, 0, 0, 0,0xE6E7, +0xBD70,0xBD79,0xBD75,0xE6E4, 0,0xBD72,0xBD76,0xE6F0, +0xBD6C,0xE6E8, 0,0xBD74, 0, 0,0xE6EB,0xE6E6, +0xBD73,0xBD77,0xE6E5, 0,0xBD71, 0,0xE6EF,0xBD6E, +0xE6EE,0xE6ED,0xBD7A,0xE572,0xBD6D, 0,0xE6EC,0xE6E3, + 0,0xBD7B,0xE6EA,0xBD6F, 0, 0, 0, 0, + 0, 0, 0,0xE6E9, 0, 0, 0, 0, +0xBFA2,0xBFA7,0xBF7E,0xEAD8,0xEACF,0xEADB,0xEAD3,0xEAD9, +0xBFA8,0xBFA1,0xEACC,0xEAD2,0xEADC,0xEAD5,0xEADA,0xEACE, + 0, 0,0xEAD6,0xBFA3,0xEAD4,0xBFA6,0xBFA5,0xEAD0, +0xEAD1,0xEACD,0xEAD7,0xBFA4,0xEADE,0xEADD, 0, 0, + 0,0xEDDA,0xEDD6,0xC15F, 0,0xEDD0,0xC159,0xC169, +0xEDDC,0xC161,0xC15D,0xEDD3,0xC164,0xC167,0xEDDE,0xC15C, +0xEDD5,0xC165,0xEDE0,0xEDDD,0xEDD1,0xC160,0xC15A,0xC168, +0xEDD8,0xC163,0xEDD2,0xC15E,0xEDDF,0xC162,0xC15B,0xEDD9, +0xC166,0xEDD7, 0, 0,0xEDDB, 0, 0, 0, +0xF06E,0xF074,0xC2B9,0xF077,0xC2B4,0xC2B5,0xF06F,0xF076, +0xF071,0xC2BA,0xC2B7, 0,0xF06D, 0,0xC2B6,0xF073, +0xF075,0xC2B8,0xF072,0xF070, 0, 0, 0, 0, +0xF2B8,0xC3B7,0xC3B8,0xC3B4, 0,0xC3B5, 0,0xF2B4, +0xF2B2, 0,0xF2B6,0xC3BA,0xF2B7,0xF2B0,0xF2AF,0xF2B3, +0xF2B1,0xC3B6,0xF2B5,0xF4AC,0xC47E,0xC47D,0xF4AD, 0, +0xF4AF,0xF4AE,0xC4A1, 0, 0, 0,0xF5EB,0xF5E8, +0xF5E9, 0,0xF5E7,0xF5EA,0xC4F2,0xF5EC, 0,0xC4F1, + 0,0xF742, 0,0xC5D5,0xC5D7,0xF7EE,0xC5D6,0xF8B9, +0xF940,0xF942,0xF8FE,0xF941,0xC66C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA6CE, 0, +0xACFB,0xD26F,0xAFCA, 0, 0,0xB2DA,0xDAFC,0xDAFD, + 0, 0, 0,0xEADF,0xC16A,0xEDE1, 0, 0, +0xC2BB, 0,0xF2BA,0xF2B9,0xC4A2,0xF5ED, 0,0xF743, +0xC5F8,0xCA49, 0, 0,0xAAC9,0xA875, 0, 0, +0xD04D, 0, 0,0xD360,0xD35B,0xD35F,0xD35D,0xAFCB, +0xD35E,0xD35C, 0,0xD6F1, 0,0xDAFE,0xDB40,0xDF69, +0xDF6A,0xB86E,0xB86F,0xDF68,0xDF6B,0xDF67,0xB86D, 0, +0xBB40, 0,0xB870,0xE37A, 0,0xBD7C,0xE6F1,0xBD7D, + 0,0xBFA9,0xEAE2,0xEAE0,0xEAE1,0xEDE4,0xEDE3,0xEDE2, + 0, 0, 0,0xF2BB, 0,0xC3B9,0xF2BC,0xF744, +0xC5F9,0xF8BA,0xA6CF,0xAACB,0xAACA,0xD04F,0xACFC, 0, + 0,0xD04E,0xD362, 0,0xAFCC,0xD6F2,0xD361, 0, + 0, 0,0xB2DC,0xD6F5,0xD6F3,0xD6F4,0xB2DB, 0, +0xDB42,0xDB43,0xDB41, 0,0xB873,0xDF6D,0xDF6C,0xDF6E, +0xB872,0xB871, 0, 0,0xE6F2,0xE6F4, 0,0xBD7E, +0xE6F3,0xEAE3,0xBFAA,0xF079, 0,0xF078,0xC3BB,0xF2BD, +0xC3BD,0xC3BC,0xF4B0,0xF5EE,0xC4F3,0xA6D0,0xD050,0xACFD, +0xD365,0xAFCE,0xD364,0xD363, 0,0xAFCD, 0,0xD6FB, + 0,0xD6FD,0xD6F6,0xD6F7,0xB2DD,0xD6F8,0xB2DE,0xD6FC, +0xD6F9,0xD6FA,0xB2DF, 0,0xB5BE,0xB5BF, 0,0xDB44, + 0, 0, 0,0xDF6F,0xDF70, 0,0xE37E,0xBB43, +0xBB41,0xBB42,0xE37B,0xE37C, 0,0xE37D,0xE6F9, 0, +0xE6FA,0xBDA1,0xE6F7,0xE6F6,0xE6F8,0xE6F5,0xBFAD,0xEAE4, +0xBFAB,0xBFAC,0xEDE6,0xC16B,0xEDE5,0xEFA8, 0,0xF07A, +0xF07B,0xC2BC, 0,0xC2BD,0xC16C,0xF2BE,0xF2BF,0xF4B1, +0xC4A3,0xA6D1, 0,0xA6D2,0xACFE,0xAACC,0xAFCF,0xD051, + 0, 0, 0,0xB5C0,0xA6D3,0xAD41,0xD052,0xD053, +0xAD40,0xAD42,0xA6D4, 0,0xD054,0xAFD1,0xD366,0xAFD3, +0xAFD0,0xAFD2, 0,0xD741,0xB2E0, 0,0xD740,0xD6FE, + 0,0xDF71, 0, 0,0xE3A1, 0,0xBDA2, 0, +0xBFAE,0xEAE6,0xEAE5, 0,0xEDE7, 0, 0, 0, +0xF5EF, 0, 0,0xA6D5,0xCB73,0xCDAA,0xAD43,0xD055, + 0,0xD368, 0, 0, 0,0xAFD4,0xD367,0xAFD5, + 0, 0, 0,0xD743, 0, 0,0xB2E2,0xD742, +0xD744, 0,0xB2E1, 0, 0, 0, 0,0xDB46, +0xDB47,0xDB45,0xB5C1, 0, 0, 0,0xB874, 0, +0xB875, 0,0xBB45, 0,0xE3A3,0xE3A2,0xBB44, 0, + 0, 0, 0, 0,0xE6FB, 0, 0,0xE6FC, + 0, 0, 0, 0,0xEAE7, 0, 0,0xC170, +0xC16F,0xC16D,0xC16E,0xC171, 0,0xF07C,0xC2BF,0xC2BE, +0xF2C0,0xF4B2, 0, 0, 0,0xC5A5,0xC5A4,0xA6D6, + 0, 0,0xD1FB, 0,0xB877,0xB5C2,0xB876,0xBB46, + 0,0xA6D7,0xC9A9,0xA6D8,0xA6D9, 0, 0,0xCDAB, +0xCB76, 0,0xCB77,0xA877, 0,0xCB74,0xA876, 0, +0xA879,0xCB75,0xA87B,0xA87A,0xCB78,0xA878, 0, 0, + 0,0xAAD1,0xAACF,0xCDAD, 0,0xAACE, 0, 0, + 0,0xAAD3,0xAAD5,0xAAD2, 0,0xCDB0,0xCDAC,0xAAD6, + 0,0xAAD0,0xA87C, 0,0xAAD4,0xCDAF, 0, 0, +0xCDAE, 0,0xAACD, 0, 0, 0, 0, 0, + 0, 0,0xD05B,0xAD47,0xAD48,0xD05D, 0,0xD057, +0xD05A,0xD063,0xD061, 0,0xAD49,0xD067,0xAD4C,0xD064, +0xD05C,0xD059, 0, 0,0xDB49,0xD062,0xAD44,0xD065, +0xD056,0xD05F,0xAD46,0xAD4B,0xD060,0xAD4F,0xAD4D, 0, +0xD058,0xAD4A, 0,0xD05E,0xAD4E,0xAD45,0xD066, 0, + 0, 0, 0, 0, 0,0xAFDA, 0,0xAFE3, +0xAFD8,0xAFD6,0xD36A,0xAFDE,0xAFDB,0xD36C, 0, 0, +0xAFDD,0xD36B,0xD369,0xD36E,0xAFE2,0xAFE0,0xDB48, 0, +0xD36F,0xD36D,0xAFD7, 0, 0,0xAFD9,0xAFDC, 0, +0xAFDF, 0,0xAFE1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD74E,0xB2E4, 0, +0xD745,0xD747, 0,0xD748, 0,0xD750,0xD74C,0xD74A, + 0,0xD74D,0xD751,0xB2E5,0xB2E9,0xD746, 0,0xD74F, + 0,0xB2E7, 0,0xB2E6,0xD74B,0xD749, 0,0xB2E3, +0xB2E8, 0, 0, 0, 0, 0, 0, 0, + 0,0xB5C8,0xDB51, 0, 0,0xDB4F,0xB5CA, 0, + 0, 0, 0,0xDB4A,0xDFA1, 0,0xB5C9,0xDB4E, + 0, 0,0xDB4B,0xB5C5,0xB5CB,0xDB50,0xB5C7,0xDB4D, +0xBB47,0xB5C6,0xDB4C,0xB5CC,0xB5C4,0xB5C3, 0, 0, + 0, 0, 0,0xDF77,0xDF75, 0,0xDF7B, 0, +0xDF73,0xDFA2,0xDF78, 0,0xDF72,0xB87B,0xB8A3,0xDF7D, + 0,0xDF76, 0,0xB87E, 0, 0,0xB87C,0xDF7E, +0xB879,0xB878,0xDF79,0xB87D,0xB5CD, 0,0xDF7C,0xDF74, +0xB87A,0xB8A1,0xB8A2, 0, 0, 0, 0,0xBB4C, +0xBB48, 0,0xBB4D,0xE3A6, 0, 0,0xE3A5,0xE3A7, +0xBB4A,0xE3A4,0xBB4B,0xE3AA,0xE3A9,0xE3A8, 0,0xBB49, + 0, 0, 0, 0, 0,0xE741, 0,0xE744, +0xBDA8,0xE743,0xBDA7,0xBDA3,0xBDA4,0xBDA5,0xE740,0xE6FE, +0xBDA6, 0,0xE742,0xE6FD, 0, 0,0xEAE9,0xEAF3, +0xBFB1,0xBFB0, 0,0xEAED,0xEAEF, 0,0xEAEA, 0, +0xEAEE,0xEAE8,0xEAF1,0xBFAF,0xEAF0,0xEAEC, 0,0xEAF2, + 0,0xEAEB,0xC174,0xEDE8,0xEDEE,0xC178,0xC17A,0xC177, +0xC176, 0,0xC175,0xC173,0xEDE9,0xEDEC,0xC172,0xEDED, + 0,0xC179,0xEDEB, 0,0xEDEA,0xC2C0, 0,0xC2C1, +0xF0A1,0xF07D,0xF07E, 0, 0,0xF2C2, 0,0xF2C1, +0xC3BE,0xF4B4,0xC4A4,0xF4B3, 0,0xF5F0,0xF745,0xC5A6, +0xF943,0xF944,0xC5D8,0xA6DA, 0,0xAAD7,0xDB52,0xBB4E, +0xC17B,0xEDEF,0xA6DB, 0,0xAFE5,0xAFE4,0xDB53, 0, + 0, 0,0xEAF4,0xA6DC,0xAD50, 0, 0,0xDB54, +0xDB55,0xDB56,0xBB4F,0xBFB2,0xA6DD, 0,0xAAD8,0xD068, +0xAFE6,0xD370,0xB2EA, 0,0xDB57,0xB8A4, 0,0xBB50, +0xBFB3,0xC17C,0xC2C2,0xF4B5,0xA6DE,0xAAD9, 0, 0, +0xAFE7,0xD752,0xB5CE, 0,0xBB51,0xE3AB,0xE745, 0, + 0, 0, 0,0xA6DF,0xB5CF,0xDFA3,0xBB52,0xA6E0, +0xCDB1,0xD069,0xAD51, 0, 0,0xD372, 0, 0, +0xAFEA, 0,0xAFE8,0xAFE9,0xAFEB, 0, 0,0xD371, + 0, 0,0xD757,0xD754,0xD756,0xB2EB,0xB2ED,0xB2EC, +0xD753,0xB2EE,0xD755, 0,0xDB58,0xDB59, 0,0xDB5A, +0xDFA6, 0,0xDFA7, 0,0xDFA5,0xDFA8, 0,0xB8A5, + 0,0xDFA4, 0,0xBB53, 0, 0,0xE74A,0xE746, +0xE749,0xE74B,0xE748,0xE747, 0,0xEAF5,0xEAF6,0xEAF7, +0xBFB4,0xBFB5,0xEDF1,0xEDF0,0xEDF2, 0,0xF0A3,0xF0A2, + 0,0xF2C4, 0,0xF2C5,0xF2C3, 0,0xC4A5, 0, +0xF4B6,0xF4B7, 0,0xF746,0xF7EF,0xF8BB,0xA6E1,0xA87D, + 0,0xC17D,0xA6E2, 0,0xD758,0xDB5B, 0,0xC641, +0xCA4A, 0, 0, 0,0xCA4B,0xCA4D,0xA6E3,0xCA4E, +0xCA4C, 0, 0,0xCBA2,0xCBA3,0xCB7B, 0, 0, + 0, 0,0xCBA1,0xA8A1, 0,0xA8A2,0xCB7C,0xCB7A, +0xCB79,0xCB7D,0xA87E,0xCB7E,0xD06A, 0, 0, 0, +0xCDB6,0xAADC,0xCDB5,0xCDB7, 0,0xAADB,0xCDBC,0xAADF, +0xCDB2,0xCDC0,0xCDC6,0xAAE6,0xCDC3,0xAAE3, 0,0xCDB9, +0xCDBF,0xCDC1, 0,0xCDB4,0xAAE2,0xAADD,0xCDBA,0xAAE4, +0xAAE7,0xAAE1, 0,0xAADA,0xCDBE,0xCDB8,0xCDC5,0xAAE9, +0xAAE5,0xAAE0,0xCDBD,0xAFEC,0xCDBB,0xAADE,0xAAE8, 0, +0xCDB3, 0,0xCDC2,0xCDC4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xAD62,0xAD5C,0xAD64,0xAD61,0xD071,0xD074,0xAD5D, + 0,0xD06B, 0,0xAD56,0xAD60, 0,0xAD63,0xAD65, +0xD0A2,0xD077, 0,0xAD55,0xD0A1,0xAD59,0xAD57,0xAD52, +0xD06F, 0,0xD07E,0xD073,0xD076,0xD0A5, 0,0xAD66, +0xD07D,0xAD5E,0xD078,0xD0A4,0xD075,0xD079,0xD07C, 0, + 0,0xD06D,0xD0A3,0xD07B, 0, 0,0xD06C, 0, +0xD070,0xAD5F,0xAD5A,0xAD53,0xAD58,0xAD54,0xAD67,0xD06E, +0xD3A5,0xAD5B, 0, 0,0xD07A,0xCE41, 0, 0, + 0, 0, 0, 0, 0, 0,0xD3A8,0xAFFA, + 0,0xD376, 0,0xD3A3,0xD37D, 0,0xD3B2, 0, +0xD3AA, 0,0xD37E, 0,0xD3A9,0xD378,0xD37C,0xD3B5, +0xAFFD,0xD3AD,0xD3A4,0xAFED,0xD3B3,0xD374, 0,0xD3AC, + 0,0xAFFC,0xAFF7,0xD373,0xAFF5,0xAFF4,0xAFF9,0xD3AB, +0xAFF1,0xAFF8,0xD072,0xDB5C,0xD3A6, 0, 0,0xD37A, +0xAFFB,0xD37B,0xD3A1,0xAFFE,0xD375,0xD3AF, 0,0xD3AE, +0xD3B6,0xAFF3,0xAFF0,0xD3B4,0xD3B0,0xD3A7,0xD3A2,0xAFF6, +0xAFF2,0xD377,0xAFEE,0xD3B1,0xAFEF, 0,0xD379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD75E,0xD760,0xD765,0xD779,0xB2FC, +0xB2F2, 0,0xD75D,0xB2FD,0xB2FE,0xD768,0xD76F,0xD775, + 0,0xD762, 0,0xD769, 0, 0,0xB340,0xD777, +0xD772,0xB2FA,0xB2F8,0xD76E,0xD76A,0xD75C,0xB2EF,0xD761, +0xD759, 0,0xB2F7,0xB2F9,0xD766,0xD763,0xB2F4,0xD773, +0xB2F1,0xD764,0xD77A,0xD76C, 0,0xD76B,0xB2F0, 0, +0xB2FB, 0,0xB2F3,0xD75A,0xD75F,0xD770,0xD776,0xB341, +0xD75B,0xD767,0xD76D,0xB2F6, 0, 0,0xD778,0xD771, +0xD774, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xB2F5, 0,0xDB6C, +0xDB60,0xB5D7,0xDB7D,0xDBA7,0xDBAA,0xB5D5,0xDB68,0xDBA3, +0xDB69,0xDB77,0xB5E2,0xDB73,0xB5DF, 0,0xDB74,0xDB5D, + 0,0xDBA4, 0, 0,0xB5E8,0xDBA1,0xDB75,0xDBAC, +0xDB70,0xDFC8, 0,0xDBAF,0xB5E6,0xDB6E,0xDB7A,0xB5E9, +0xB5D4,0xDB72,0xDBAD,0xDB6B,0xDB64,0xDB6F, 0,0xDB63, +0xDB61,0xB5D0,0xDBA5,0xDB6A,0xDBA8, 0,0xDBA9,0xB5D8, +0xB5DD,0xB5D9,0xB5E1,0xDB7E,0xB5DA,0xDB76,0xDB66, 0, +0xB5D2,0xDB5E,0xDBA2,0xDBAB,0xDB65,0xB5E0,0xDBB0,0xDB71, + 0,0xDB6D, 0,0xB5D1,0xB5E5, 0,0xDB7C,0xB5E7, + 0,0xDB78,0xB5DC,0xB5D6,0xB5DE,0xB5D3,0xB5E4,0xDB79, +0xDB67,0xDB7B,0xDB62,0xDBA6, 0, 0, 0, 0, + 0, 0, 0,0xDBAE, 0, 0, 0, 0, + 0, 0, 0,0xDB5F, 0, 0, 0, 0, + 0,0xDFC7, 0,0xDFDD,0xB855,0xDFCC, 0,0xDFCA, +0xDFB5,0xB8A9,0xDFC5,0xDFD9,0xDFC1,0xB8B1,0xDFD8,0xDFBF, +0xB5E3,0xDFCF,0xDFC0,0xDFD6,0xB8B0,0xB8A8, 0,0xDFAA, +0xDFB2, 0,0xDFCB,0xDFC3,0xDFDC,0xDFC6,0xB8B6,0xDFD7, + 0,0xB8AD, 0,0xDFC9,0xDFD1,0xDFB6,0xDFD0, 0, +0xDFE1,0xDFB1,0xDFD2, 0,0xDFDF, 0,0xDFAB,0xB5DB, + 0,0xDFB9,0xDFB8,0xB8AF, 0,0xDFBC,0xDFBE,0xDFCD, +0xDFDE,0xB8B2, 0,0xB8B3, 0,0xDFB0,0xB8AB,0xDFB4, +0xDFDA,0xB8B4, 0,0xB8AC,0xB8AE,0xB8B5,0xDFE0,0xDFD3, +0xDFCE, 0, 0,0xDFBB,0xDFBA,0xB8AA,0xDFAC,0xB8A7, +0xDFC4,0xDFAD,0xDFC2, 0, 0,0xDFB7,0xDFDB, 0, + 0, 0,0xB8A6, 0, 0, 0,0xDFB3, 0, + 0, 0, 0, 0, 0,0xDFAF,0xDFD5,0xDFAE, +0xBB60,0xE3D3, 0, 0,0xE3C2, 0, 0,0xE3AC, +0xE3CA,0xBB58,0xE3BB,0xE3C5,0xBB5B,0xE3BE,0xBB59,0xE3AF, +0xE3CD,0xE3AE,0xE3C1, 0,0xE3AD, 0, 0,0xE3BF, +0xE3C8,0xE3C6,0xE3BA,0xE3B5,0xE3B3, 0,0xE3B4,0xE3C7, +0xE3D2,0xE3BC,0xBB5A, 0,0xE3B7, 0,0xE3CB, 0, +0xBB5D,0xE3B6,0xE3B0,0xE3C0,0xBB61, 0, 0,0xBB55, +0xBB5E,0xE3B8,0xE3B2, 0,0xBB57,0xDFD4,0xBB56,0xE3C3, + 0,0xBB54,0xBB63,0xBB5C,0xE3C4,0xE3B9,0xE3B1,0xE3CC, +0xE3BD,0xBB62,0xE3D0,0xBB5F,0xE3CF, 0,0xE3C9,0xE3CE, + 0, 0, 0,0xE3D1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE773, +0xE774,0xE767,0xE766,0xE762,0xBDB4, 0,0xBDAC,0xE776, +0xE775,0xDFA9,0xE75F,0xE763,0xE75D, 0,0xE770,0xE761, + 0,0xE777,0xE75A,0xE758,0xE764,0xE76E,0xE769,0xBDB6, +0xE74F, 0,0xE76D, 0, 0, 0,0xBDB7,0xDFBD, +0xE75B,0xE752,0xE755,0xE77B,0xE75C,0xE753,0xE751,0xE74E, + 0,0xBDB0,0xE765,0xBDAF,0xBDB3,0xE760,0xE768,0xBDA9, +0xE778,0xE77C,0xBDAB, 0,0xE757,0xE76B,0xE76F,0xE754, +0xE779,0xBDB2, 0,0xBDB1,0xE74C,0xBDB5,0xE772,0xE756, +0xE76A,0xE750,0xE75E,0xE759,0xBDAD,0xBDAE,0xE76C,0xE77D, +0xE77A,0xE771, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE74D, 0,0xBDAA,0xEB49, 0, +0xEB40,0xEB43, 0,0xBFBB,0xEB45,0xEAF9,0xEB41,0xEB47, +0xBFB8,0xBFBC,0xBFB6, 0, 0,0xEAFB,0xEB4C, 0, + 0,0xEB46, 0,0xEAFC,0xEB55,0xEB4F,0xEAF8,0xEE46, +0xEAFE,0xBFB7, 0,0xEB4A, 0,0xEB54,0xBFBF, 0, +0xEB51,0xEAFD,0xEB44,0xEB48,0xEB42,0xEB56,0xEB53,0xEB50, +0xBFB9,0xBFBA,0xBFBE,0xEAFA,0xEB57,0xBFBD,0xEB4D, 0, + 0,0xEB4B, 0, 0, 0,0xEB4E,0xEE53,0xEE40, +0xEE45,0xEE52,0xEE44,0xEDFB,0xEE41, 0,0xC1A2, 0, +0xEDF4,0xEE4D,0xEE4F,0xEDF3,0xC1A1,0xEE51,0xEE49,0xC1A8, +0xEE50,0xEE42,0xC1AA,0xEDF9,0xEB52,0xEE4A,0xEE47,0xEDF5, +0xEE55,0xC1A4, 0, 0,0xC1A5,0xEDF7,0xEE48, 0, +0xEE54,0xEE4B,0xEDFD,0xC1A7,0xC1A3,0xEE4C,0xEDFE,0xEE56, +0xEDF8,0xEE43,0xEE4E,0xEDFA,0xEDFC, 0,0xC2CB,0xEDF6, +0xC1A9,0xC2C4,0xC17E, 0, 0, 0, 0,0xC1A6, +0xC2C8,0xF0B3, 0,0xF0A9,0xF0A4,0xF0AA,0xF0B4,0xF0B8, +0xF0B7,0xC2CA,0xC2C9, 0, 0,0xF0AB,0xF0B9,0xF0AE, +0xF0A6, 0,0xF0A8,0xF0A7,0xF0AD,0xF0B2,0xF0A5,0xF0AC, +0xF0B1,0xC2C7, 0,0xF0AF, 0,0xC2C5,0xF0B0,0xC2C3, +0xC2C6,0xF2D5,0xF0B5, 0, 0,0xC3C2, 0,0xF2CD, +0xF2D1,0xF2C9,0xF2CC, 0,0xF2D4,0xC3C0,0xF2D9,0xF2D2, + 0,0xF2CA,0xF2DA,0xF2D3,0xC3C3,0xC3C4,0xF2D7, 0, +0xF2CB,0xC3BF,0xC3C1,0xF2C6,0xF2CE,0xF2C8, 0,0xF2D8, +0xF2D6,0xF2C7,0xF2CF, 0, 0, 0,0xF4BE,0xC3C5, +0xF2D0,0xC4A7,0xC4A9,0xC4A6, 0,0xF4C3,0xF4BB,0xF4B9, +0xF4BD,0xF4BA, 0, 0,0xF4BF,0xF4C1,0xC4AA,0xC4AC, + 0,0xF4C0,0xC4AD,0xC4AB,0xF4C2, 0, 0, 0, + 0,0xC4A8, 0, 0, 0, 0, 0,0xC4F4, +0xF5F1,0xF5F7,0xC4F6,0xF4BC,0xF5F6, 0,0xF5FD,0xF5F4, +0xF5FB,0xF5FA,0xF4B8,0xF5F5,0xF0B6,0xF5FE,0xF5F3,0xF5F8, + 0,0xF5FC,0xF5F2, 0,0xF74A,0xC4F5,0xF5F9, 0, + 0,0xF7F4,0xF74B,0xF749,0xF747,0xF748,0xF74C, 0, +0xC5D9,0xF7F2,0xF7F0,0xF7F5,0xF7F3, 0,0xF7F6,0xC5DA, +0xF7F1, 0, 0,0xF8BC, 0, 0,0xF945,0xF946, +0xF947, 0, 0,0xF9C7,0xF9BD,0xCA4F,0xAAEA, 0, +0xAD68, 0,0xD3B8,0xD3B7,0xB040,0xB342,0xD77C, 0, + 0,0xD77B, 0,0xB5EA,0xB8B8, 0,0xB8B7,0xB8B9, + 0,0xE3D4,0xE77E,0xEB58,0xEB5A,0xEB59, 0,0xC1AB, +0xEE57,0xF0BA,0xF9A5,0xA6E4, 0,0xCDC9,0xCDCA,0xCDC8, +0xCDC7,0xAAEB, 0,0xD0A9,0xD0A7, 0, 0,0xD0A6, + 0,0xAD69,0xAD6B,0xAD6A,0xD0A8, 0, 0, 0, + 0, 0, 0, 0, 0,0xD3C4,0xD3C1,0xD3BF, + 0, 0,0xB041,0xD3C2,0xB046,0xD3BC,0xD3CB, 0, +0xD3CD,0xD3BD, 0,0xB043,0xD3CE,0xD3C9,0xD3BB,0xD3C0, +0xD3CA,0xD3C6,0xD3C3, 0,0xB048,0xD3CC,0xD3BE, 0, + 0,0xD3C7,0xD3B9,0xB047,0xB044,0xD3C5, 0,0xD3C8, +0xD3BA,0xB045,0xB042, 0, 0, 0, 0,0xB34C, +0xD7A5,0xB34B, 0,0xD7A8,0xD7AB,0xB348,0xB346,0xD77E, +0xD7A9,0xD7A7,0xD7A4,0xD7AC,0xD7AD,0xD7AF,0xD7B0,0xD77D, +0xB345,0xD7A2,0xD7A1,0xD7AE,0xB347,0xD7A3,0xB349,0xB344, +0xD7A6,0xB34D, 0,0xB34A,0xD7AA, 0, 0, 0, +0xB5F1,0xDBBF, 0,0xDBB4,0xB5EE, 0,0xDFE7,0xDBBD, +0xDBB1,0xB5EC,0xDBB6,0xB5EF,0xDBBA,0xDBB8,0xB5F2,0xB5EB, + 0, 0,0xDBB2,0xDBB5,0xB5F0, 0,0xDBB3, 0, +0xDBBE,0xDBBC,0xDBB7,0xDBB9,0xDBBB,0xB5ED, 0, 0, + 0, 0, 0, 0, 0,0xDFE8,0xDFEE,0xDFE4, +0xDFEA,0xB8BA,0xDFE6,0xB8C0, 0, 0,0xB8BF, 0, +0xB8BE,0xDFED,0xB8C1,0xB8C2,0xDFE3,0xDFF0,0xB8C3,0xB8BD, +0xB8BC,0xDFEC,0xB8C4,0xDFE2,0xDFE5,0xDFEF,0xDFEB, 0, + 0,0xE3F4,0xE3E9,0xB8BB, 0, 0, 0, 0, +0xBB6A,0xE3DD,0xE3F2,0xE3DE,0xBB65, 0,0xE3DB, 0, +0xE3E4,0xE3DC,0xBB67,0xE3D6,0xE3F1,0xBB68,0xE3EE,0xE3EF, +0xE3D7,0xBB6D,0xE3E6, 0,0xE3E0,0xE3E7,0xE3DA, 0, +0xE3F3,0xE3EB,0xE3E5,0xE3D5,0xBB69,0xE3EC, 0,0xBB6C, +0xE3F0, 0,0xE3EA,0xBB66,0xE3E8, 0,0xE3E2,0xBB64, +0xE3D9,0xE3E1,0xE3ED,0xE3DF, 0, 0,0xE3E3, 0, + 0, 0, 0, 0,0xBDC1,0xDFE9,0xE7B2,0xE7BB, +0xE7B1,0xE7AD,0xE7AA,0xBDC2,0xE7A8,0xBB6B,0xE7A1,0xBDC0, +0xE7A7,0xBDBF,0xE7AC,0xE7A9,0xE7B9,0xE7B4,0xE7AE,0xE7B3, +0xBDBB,0xE7AB,0xE7BE,0xE7A2,0xE7A3,0xE7BA,0xBDBC,0xE7BF, +0xBDBE,0xE7C0,0xE7B0,0xE3D8,0xE7B6,0xE7AF,0xE7B8,0xE7B5, + 0, 0, 0,0xE7A6,0xBDB9,0xE7BD,0xBDBA,0xE7A4, +0xBDBD,0xEB64,0xE7B7,0xE7BC, 0, 0, 0, 0, + 0,0xEB61,0xBDB8,0xBFC0,0xEB6B,0xEB67, 0,0xEB65, +0xEB60,0xEB6F, 0, 0, 0,0xBFC4, 0,0xEB5C, +0xEB68,0xEB69,0xEB5F,0xEB5E,0xEB6C, 0,0xEB62,0xEB5D, +0xEB63, 0,0xEB6E,0xEB5B,0xEB6D,0xEB6A,0xBFC2,0xBFC1, + 0, 0,0xBFC3,0xEB66,0xF0CB, 0, 0, 0, + 0, 0,0xEE59,0xC1B1,0xEE5D,0xEE5A,0xEE61,0xEE67, +0xEE5C, 0,0xEE70,0xC1AE,0xEE6A,0xEE5F,0xEE6B,0xEE66, +0xEE6D,0xEE5E,0xC1B3,0xC1B2,0xEE60,0xEE6E,0xEE58,0xEE6C, +0xC1AC, 0,0xEE64,0xEE63,0xEE68,0xEE5B,0xC1B0, 0, +0xC1B4,0xEE62,0xEE69,0xC1B5,0xEE65, 0, 0, 0, + 0,0xC1AD,0xC1AF,0xF0C7,0xF0C5, 0, 0,0xF0CC, +0xF0C9,0xF0CD, 0,0xF0BE,0xF0C6,0xF0D1,0xEE6F,0xF0C2, +0xC2CF,0xE7A5,0xF0BD,0xF0CA,0xF0C4,0xF0C1,0xF0BC,0xF0BB, +0xF0D0, 0,0xF0C0,0xF0BF,0xC2CD,0xF0C8, 0,0xC2CC, + 0, 0,0xC2CE,0xF0C3,0xF0CF, 0,0xF2DE,0xF2DF, + 0,0xC3C9,0xF2DC,0xC3C6,0xF2E4, 0,0xC3CA,0xF2E6, +0xF2DB,0xF0CE,0xF2E8,0xF2DD, 0,0xC3C7,0xF2E3, 0, +0xF2E5,0xF2E0,0xF2E7,0xF2E2,0xF2E1,0xC3C8, 0, 0, +0xF4C5,0xF4C6, 0,0xF4C8,0xC4AE,0xC4AF,0xF4C9,0xF4C7, + 0,0xF4C4, 0,0xF642,0xF645,0xF641, 0,0xC4FA, +0xF643,0xC4F9,0xC4F8,0xC4F7,0xF644,0xF751,0xF74F, 0, +0xF74E,0xF640,0xF750,0xF646,0xF74D, 0,0xF7F9,0xF7D7, +0xF7F7,0xC5DB,0xF7F8,0xF7FA, 0,0xF8BF,0xC5FA,0xF8BE, +0xF8BD,0xC5FB, 0,0xC65A,0xF96E,0xF9A7,0xF9A6,0xF9A8, +0xA6E5,0xD0AA, 0,0xD3CF,0xD3D0, 0, 0, 0, +0xDBC0, 0,0xF647,0xF8C0,0xA6E6,0xAD6C,0xD0AB, 0, + 0, 0,0xD7B1,0xB34E, 0,0xDBC2,0xDBC1,0xB5F3, + 0,0xB8C5,0xE7C1,0xBDC3, 0,0xBDC4, 0, 0, + 0,0xBFC5,0xC5FC,0xA6E7, 0, 0, 0,0xD0AC, +0xAAED,0xD0AE,0xD0AD,0xAD6D, 0,0xD3D1, 0,0xD3D8, +0xB049,0xD3D6,0xD3D4, 0,0xD3DB,0xD3D2,0xD3D3,0xB04A, + 0,0xB04E, 0, 0,0xD3DC,0xB04D,0xD3DA,0xD3D7, +0xD3D5,0xB04B,0xB04C,0xD3D9, 0, 0, 0, 0, +0xB350,0xD7B2, 0,0xB355,0xD7C2,0xB354,0xD7C4, 0, + 0,0xD7B8,0xB352,0xD7C3, 0,0xD7B3,0xB353,0xD7BF, +0xD7BB,0xD7BD,0xD7B7,0xD7BE, 0, 0,0xB34F,0xD7BA, + 0,0xD7B9,0xD7B5, 0,0xD7C0, 0, 0,0xD7BC, +0xD7B4, 0,0xD7B6,0xB351,0xD7C1, 0, 0, 0, + 0,0xB5F6,0xDBCD, 0, 0, 0,0xDBC9,0xDBCB, +0xDBC6,0xDBC5,0xDBC3, 0,0xDBCA,0xDBCC,0xDBC8, 0, +0xDBC7,0xB5F4,0xB5F5, 0, 0, 0, 0, 0, + 0,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,0xF9D8, +0xDFF9, 0,0xB8CF, 0,0xB8C7,0xB8CE,0xDFF1,0xDBC4, +0xB8CA,0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6, + 0,0xB8CC, 0, 0, 0, 0, 0,0xE3F6, +0xBB74, 0, 0,0xE442,0xE441, 0,0xE3FB,0xBB76, +0xE440,0xE3F7,0xE3F8,0xBB6E,0xBB70, 0,0xE3FD,0xE3F5, +0xBB72,0xBB71,0xE3F9,0xE3FE,0xE3FC,0xBB73,0xE3FA, 0, + 0,0xDBCE,0xBB6F, 0, 0,0xE7C2,0xE7C9,0xBDC6, + 0,0xE7CD,0xBDCA,0xE7C5,0xE7C3, 0,0xE7CC, 0, +0xBDC5,0xE7CB,0xBDC7,0xBDC8,0xE7C4,0xBDC9,0xE7CA,0xE7C6, +0xE7C7,0xE7C8,0xBB75, 0, 0, 0,0xEB70,0xEB7C, + 0,0xBFCA,0xEB77,0xEB79, 0,0xBFC8,0xEB71,0xEB75, + 0,0xEB78,0xBFC6,0xBFC9,0xEB7B,0xEB73,0xEB74,0xEB7A, +0xEB72,0xEB76,0xBFC7,0xEE72, 0,0xEE71,0xC1B7,0xEE77, +0xC1B9, 0, 0,0xC1B6,0xEE73,0xC1BA,0xEE74, 0, + 0,0xEE75,0xEE78, 0,0xC1B8, 0,0xF0D6, 0, + 0,0xF0D9, 0,0xF0D3,0xF0D5, 0, 0,0xF0D4, +0xF0D7,0xF0D8,0xEE76,0xF0D2, 0, 0,0xC3CD,0xF2EC, +0xF2EF,0xF2F1,0xF2EA,0xF2EB,0xF2EE,0xF2F0,0xC3CE,0xC3CC, +0xC3CB,0xF2ED,0xF2E9,0xF4CA,0xC4B0, 0,0xF4CB, 0, + 0,0xF649,0xC4FB,0xF64B,0xC4FC,0xF648,0xF64A,0xC5A8, + 0,0xF752,0xC5A7,0xF7FD,0xF7FC, 0,0xF7FB, 0, + 0,0xF948,0xF949,0xF94B,0xF94A, 0,0xCA50,0xA6E8, + 0,0xAD6E,0xD7C5,0xB5F7, 0,0xDFFA,0xC2D0, 0, +0xF2F2, 0, 0,0xA8A3, 0, 0, 0,0xB357, + 0, 0, 0,0xB356, 0,0xDBD0,0xB5F8,0xDBD2, +0xDBD1, 0, 0,0xDFFB,0xB8D0,0xE443,0xE446,0xE445, + 0,0xE444,0xE7CE,0xE7D0,0xE7CF, 0,0xBFCC, 0, + 0, 0,0xBFCB, 0,0xC1BB,0xEE79,0xEE7B,0xEE7A, + 0, 0,0xC2D1, 0, 0, 0,0xF2F4,0xF2F3, + 0,0xF4CC,0xC4B1, 0, 0,0xC4FD,0xF754,0xF753, +0xC65B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA8A4,0xD0AF,0xAD6F,0xD7C8,0xD7C6, 0, + 0,0xD7C7,0xDBD4,0xDBD5,0xE043,0xDBD3, 0,0xDFFC, +0xE041,0xE040,0xE042,0xB8D1,0xDFFE,0xDFFD,0xE044, 0, +0xE449,0xE447, 0,0xE448,0xE7D3,0xE7D1, 0, 0, +0xE7D2,0xEB7D,0xEE7C,0xEE7D,0xC2D2, 0,0xF2F5,0xF4CD, +0xC4B2, 0,0xF64C,0xF755,0xC5A9, 0,0xF7FE,0xF94C, +0xA8A5, 0,0xAD71,0xAD72,0xD0B0, 0, 0,0xD0B1, +0xAD70, 0,0xB054, 0,0xB052, 0,0xB051,0xB058, +0xB050,0xB059,0xD3DD,0xB056, 0,0xB053,0xB057,0xB055, +0xB04F, 0, 0,0xB35F, 0,0xB359,0xD7CC,0xB35E, + 0, 0,0xB360,0xB35A, 0,0xB35B, 0,0xD7CA, + 0, 0,0xB358, 0,0xD7CB,0xB35D, 0, 0, +0xD7C9,0xB35C, 0, 0,0xB644, 0,0xB646, 0, + 0,0xDBD8,0xB645,0xB5F9,0xB5FD, 0,0xB8E4,0xE049, +0xDBDA,0xB5FE, 0, 0,0xDBDD,0xDBDE,0xB643, 0, +0xDBE0, 0,0xDBE2, 0,0xDBE3,0xDBD7,0xDBD6,0xDBE4, +0xB642,0xDBE1,0xDBDF, 0,0xB640,0xB5FB,0xB647,0xDBDB, +0xDBDC,0xDBD9, 0,0xB641, 0, 0,0xB5FC, 0, +0xB5FA,0xE048,0xB8DF,0xB8DA, 0, 0,0xB8D5, 0, +0xB8E5,0xB8D6, 0,0xB8D2,0xB8E1,0xB8DE,0xB8E0, 0, +0xB8D7,0xB8DC,0xB8D3,0xB8D4,0xE050,0xE04D,0xE045,0xE04A, + 0,0xB8E2,0xE051,0xB8E3,0xB8D9, 0, 0,0xE047, + 0,0xE04F,0xE04B,0xE04E,0xE04C,0xB8DD,0xE046,0xB8D8, + 0, 0, 0,0xE44C,0xBB78,0xBB7B, 0,0xE44E, + 0,0xBBA5,0xE44D,0xBB7D, 0,0xBDCF,0xE44F, 0, +0xBBA4,0xE44B,0xBBA6, 0, 0, 0,0xBB79, 0, +0xB8DB,0xBB7C, 0,0xBB7A,0xBB7E,0xBBA2,0xBB77,0xBBA7, +0xBBA3, 0,0xBBA1,0xE44A, 0, 0, 0, 0, +0xBDD6, 0,0xBDD2, 0, 0, 0,0xBDD9, 0, +0xE7D6,0xBDDA,0xE7E2,0xE7DB,0xBDCB,0xE7E3,0xE7DD,0xBDD5, +0xE7DE, 0,0xBDD4,0xE7E1,0xBDCE,0xE7DF,0xE7D5,0xBDCD, +0xEBAA,0xBDD3, 0,0xBDD0, 0,0xBDD8, 0,0xE7D4, + 0,0xE7D8,0xBDCC,0xE7D7,0xE7D9,0xE7DA,0xBDD7,0xE7DC, +0xE7E0,0xE7E4, 0,0xBDDB,0xBFD2,0xEBA5,0xEBAB,0xEBA8, +0xEB7E,0xEBAC,0xEBA1, 0,0xEBA7, 0,0xBFCD,0xBFD3, +0xEBAD, 0, 0,0xBFCF, 0,0xBFD9,0xBFD4,0xEBAF, +0xEBA9,0xBFD0,0xEBA2,0xBFDA,0xEBA3,0xEBA4,0xBFDB,0xBFD8, +0xBDD1, 0,0xBFCE,0xEBB0,0xBFDC, 0,0xBFD5,0xEBAE, +0xBFD1,0xBFD6,0xBFD7, 0,0xC1C3,0xEEA4,0xEEAD,0xEEAA, +0xEEAC, 0,0xC1C0,0xEEA5, 0,0xEEAB,0xC1BC,0xEEA7, +0xC1C4,0xEEA3,0xEEA8,0xEEAF,0xEBA6,0xEEA9,0xEEA2,0xC1BD, +0xEEA1,0xC1BE,0xEEB0,0xC1BF,0xEEAE,0xC1C2,0xEE7E, 0, +0xC1C1, 0,0xEEA6,0xF0DC,0xF0EA,0xF0E5,0xF0E7,0xF0DB, +0xC2D3, 0,0xF0DA,0xC2D6,0xC2D5, 0,0xF0E9,0xF0E1, +0xF0DE,0xF0E4, 0,0xF0DD, 0,0xF0DF,0xF0E8,0xF0E6, + 0,0xC2D4,0xF0ED,0xF0EB,0xF0E2,0xF0EC,0xF0E3, 0, +0xF2F9,0xC3CF,0xF341, 0, 0,0xF64F,0xC3D6,0xF0E0, +0xF2F7,0xC3D2,0xF2F8,0xF2FD, 0, 0,0xC3D4,0xC3D5, +0xF2F6,0xF340,0xF342,0xF2FA,0xF2FC,0xF2FE,0xF2FB,0xF343, +0xC3D1,0xC3D7,0xC3D3, 0,0xC3D0,0xF4D0, 0,0xC4B7, +0xF4CE, 0, 0,0xF4D2, 0,0xF4D3,0xC4B5,0xF4D4, +0xF4D1, 0,0xF4CF,0xC4B8,0xC4B4,0xF4D5, 0,0xC4B6, +0xC4B3, 0, 0, 0,0xC4FE, 0, 0,0xC540, +0xF64E,0xF64D,0xF650,0xF651, 0,0xC541,0xF756,0xF75B, +0xC5AA, 0,0xF758, 0,0xF757,0xF75A,0xF759, 0, +0xF843, 0,0xC5DC,0xF842,0xF840, 0,0xF841, 0, + 0, 0,0xC5FE,0xC5FD,0xF8C1,0xF8C2,0xC640, 0, +0xF94D,0xF94E,0xC667, 0,0xC66D, 0,0xF9A9,0xF9C8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA8A6, + 0,0xD7CD, 0,0xD7CE,0xE052,0xE450,0xE7E5,0xC1C6, + 0,0xC1C5,0xF0EE,0xF344, 0,0xF844,0xA8A7,0xD3DE, +0xB05A,0xB361,0xE054,0xE053,0xBDDC,0xE7E6,0xBDDD,0xEEB1, +0xC2D7, 0, 0, 0,0xC676,0xA8A8,0xCDCB,0xD3DF, + 0, 0,0xB362, 0,0xD7CF,0xD7D0, 0,0xDBE5, + 0,0xB648,0xB8E6, 0,0xE056,0xE055,0xE057, 0, +0xE451,0xE452,0xBBA8,0xBFDD,0xBDDE,0xBFDE, 0,0xEEB5, +0xEEB2,0xEEB4,0xEEB3,0xC1C7, 0,0xF0EF,0xF346,0xF345, +0xCBA4,0xB05C,0xB05B,0xD3E0, 0,0xD7D1, 0, 0, +0xDBE7,0xDBE6,0xB649, 0,0xE059,0xE05A,0xE058, 0, + 0,0xB8E8,0xB8E7, 0,0xBBAA,0xBBA9, 0,0xE7E7, +0xEBB3,0xEBB1,0xEBB2,0xBFDF,0xEEB7,0xEEB6, 0,0xF0F2, +0xF0F1,0xF0F0,0xF347, 0,0xF9AA,0xA8A9,0xAD73, 0, +0xAD74,0xB05D,0xB05E,0xD3E2,0xD3E1,0xD7D2, 0,0xB368, +0xB366,0xB363,0xB367,0xB365,0xB364, 0, 0,0xB64A, +0xDBEA, 0,0xB8ED,0xB64C,0xB651,0xDBEC,0xB653,0xB652, +0xB655,0xDBEB,0xDBE8,0xB64F,0xB64B,0xB64D,0xDBE9,0xB654, +0xB650,0xB64E,0xB8EF,0xB8EE,0xB8EC,0xB8F0, 0,0xB8EA, +0xB8EB, 0,0xB8E9, 0,0xE05B, 0, 0,0xE454, + 0,0xBBAC,0xBBAD,0xBBAB, 0,0xE453, 0,0xE455, + 0,0xE7EA,0xE7EC, 0,0xBDE7,0xE7ED,0xBDE0,0xE7E9, +0xBDDF,0xBDE9,0xBDE5,0xBDE6,0xBDE2,0xE7E8,0xBDE1,0xE7EE, +0xE7EB, 0,0xBDE8, 0,0xBDE3,0xBDE4,0xEBB5, 0, +0xEBB7,0xEBB6, 0,0xEBB8,0xBFE0,0xEBB4, 0, 0, +0xC1CB,0xEEB8,0xC1C8,0xC1CC,0xC1CA,0xC1C9,0xF0F3, 0, +0xF0F6, 0,0xF0F5, 0,0xF0F4,0xC2D8,0xF348,0xF349, +0xC3D8,0xF34A,0xC3D9, 0, 0,0xC4BA, 0,0xC4B9, +0xF652, 0, 0,0xC542,0xF653,0xF75C,0xC5AB,0xC5AC, + 0,0xF845, 0,0xC642, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA8AA, 0,0xB36A,0xB369, +0xE05C,0xE05D, 0,0xBBAE,0xEBB9,0xBDEA,0xEBBA,0xEEB9, +0xA8AB, 0,0xD0B2,0xAD76,0xAD75, 0,0xD3E3,0xB05F, +0xD3E4,0xD7D5, 0,0xD7D4, 0,0xD7D3, 0, 0, +0xDBEE,0xB658, 0, 0,0xDBED,0xB657, 0, 0, + 0,0xDBEF,0xB656, 0,0xE05F,0xE062,0xE060,0xE061, +0xE065,0xE05E,0xE066,0xE063,0xE064,0xBBB0,0xE456, 0, + 0,0xBBAF, 0,0xE7F2,0xE7F0, 0, 0,0xBDEB, +0xE7EF,0xE7F1, 0,0xBDEC, 0,0xEBBB, 0,0xEBBC, +0xC1CD, 0,0xF34C,0xF34E,0xF34B,0xF34D,0xF4D6,0xF654, + 0, 0,0xF96F,0xA8AC,0xAD77,0xD3E5,0xD3E7,0xD3E6, + 0,0xD7D8,0xB36C, 0,0xD7D6, 0,0xB36B,0xD7D9, + 0,0xD7DA,0xD7D7, 0, 0,0xDBFB,0xB660,0xDBF3, +0xDBF9, 0, 0,0xB65B,0xB65E,0xDBF2,0xB659,0xDBF6, +0xE06C,0xB65D, 0,0xDBF1, 0,0xDBF7,0xDBF4,0xDBFA, +0xDBF0,0xDBF8,0xB65C,0xB65F,0xDBF5,0xB65A, 0,0xB8F2, +0xE068,0xB8F1,0xE06F,0xE06E,0xB8F8, 0,0xB8F9,0xE070, +0xB8F3,0xE06D,0xB8F7,0xE072,0xE069, 0,0xE06B,0xB8F4, +0xE067,0xE06A,0xE071,0xB8F5,0xE073, 0, 0, 0, + 0, 0,0xB8F6, 0,0xBBB1,0xE45B,0xE461,0xE459, +0xE462, 0,0xE458,0xE45D,0xE463,0xE460,0xE45F,0xE45E, + 0,0xE457,0xE45C, 0, 0,0xE45A, 0,0xBDF1, +0xBDEE,0xE7FB,0xE841,0xE843,0xE840,0xE7F8,0xE7FA,0xE845, +0xE842,0xE7FC,0xE846,0xE7F9,0xE844,0xBDEF,0xBDF5,0xBDF3, +0xE7F3,0xBDF4,0xBDF0,0xE7F4,0xE7F6,0xE7F5,0xE7FD,0xE7FE, + 0,0xBDF2, 0,0xBDED, 0, 0,0xE7F7, 0, +0xEBC6,0xBFE2, 0,0xEBBD,0xBFE3,0xBFE6,0xEBC2, 0, +0xEBBF,0xBFE5, 0, 0,0xEBC3,0xEBC4,0xEBBE,0xEBC7, +0xEBC0,0xEBC5,0xBFE4, 0,0xBFE1,0xEBC1, 0,0xEEBF, +0xC1D0,0xC1CE,0xC1D1,0xC1CF,0xEEBE,0xEEBB,0xEEBA, 0, +0xEEBD, 0, 0,0xEEBC,0xF145,0xC2DE,0xF0FB,0xF0FA, + 0,0xC2D9,0xF141,0xF140,0xF0F7,0xF143,0xF0FC,0xC2DD, +0xF0F9,0xF142,0xF0F8,0xC2DA,0xC2DC,0xF0FD,0xC2DB,0xF0FE, + 0,0xF144,0xF352, 0,0xC3DE,0xF34F, 0,0xF353, + 0, 0,0xC3DB,0xF351,0xC3E0, 0,0xC3DD, 0, +0xF350, 0,0xC3DF,0xF354,0xC3DA, 0, 0, 0, + 0,0xC4BC,0xC4BE, 0,0xF4D9,0xC4BD,0xF4D7,0xC3DC, +0xF4D8,0xC4BB,0xC543,0xC545,0xF656,0xC544,0xF655, 0, +0xF761,0xC5AD,0xF760,0xC5AE,0xF75E,0xF75D,0xF762,0xF763, +0xF846, 0,0xF75F, 0, 0,0xF8C6,0xF8C3,0xF8C4, +0xF8C5,0xC65C, 0,0xF951,0xF950,0xF94F,0xF970, 0, +0xF9BE,0xF9AB,0xC66E,0xA8AD,0xB060, 0, 0, 0, + 0, 0,0xB8FA, 0, 0, 0, 0, 0, + 0, 0,0xBDF6, 0, 0,0xEBC8, 0, 0, +0xC2DF, 0,0xF355, 0, 0, 0, 0, 0, + 0,0xF9AC,0xA8AE,0xAAEE,0xAD79,0xAD78, 0,0xB063, + 0,0xD3E8,0xB061,0xD3E9,0xB062, 0, 0,0xD7DF, +0xD7DB, 0, 0,0xB36D,0xD7DE,0xD7DD,0xD7DC,0xB36E, +0xD7E0,0xD7E1, 0, 0, 0,0xDC43,0xDC41,0xDC45, +0xDC46,0xDC4C, 0,0xDC48,0xDC4A, 0,0xDC42,0xDBFC, + 0,0xDC49, 0, 0,0xDC4B,0xDC44,0xDC47,0xDBFD, +0xB662,0xDC40,0xDBFE,0xB661,0xB663, 0,0xB8FD,0xE075, +0xE077,0xE076,0xE07B,0xB8FB, 0,0xE078,0xE074,0xE079, +0xE07A,0xB8FC,0xB8FE,0xE07C, 0,0xE467,0xE466, 0, +0xE464,0xE465,0xBBB3,0xBBB5,0xBBB2,0xBBB4,0xE84D,0xE84E, +0xE849, 0,0xE84A,0xBDF8,0xBDFD,0xBDF7,0xBDFE,0xBDF9, +0xE84B, 0, 0,0xE84C,0xE848,0xBE40,0xBDFB, 0, + 0,0xBDFA,0xBDFC, 0,0xE847, 0,0xEBCA,0xBFE8, + 0, 0,0xEBCC,0xBFEA,0xEBCF,0xEBCB,0xEBC9,0xEBCE, +0xBFE9,0xEBCD, 0,0xBFE7, 0, 0,0xC1D3,0xC1D6, +0xEEC1, 0,0xC1D4,0xEEC0,0xC1D2,0xC1D5,0xF146,0xF147, +0xF148,0xC2E0, 0,0xF149, 0,0xC2E1,0xC3E2,0xF358, +0xF359,0xF357,0xF356,0xF35A,0xC3E1,0xF4DD,0xF4DB,0xF4DC, +0xF4DE,0xF4DA,0xF4DF,0xF658, 0,0xF659,0xF657,0xC546, +0xF764,0xC5AF,0xF765,0xF848,0xF847, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA8AF,0xB664, 0, 0,0xB940, + 0, 0, 0,0xBBB6, 0, 0,0xBFEC, 0, +0xBFEB, 0, 0, 0, 0,0xC3E3,0xC47C,0xC547, +0xA8B0,0xB064,0xB941, 0,0xF35B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCBA6, + 0, 0,0xA8B1, 0,0xA8B4,0xA8B3,0xA8B2, 0, + 0,0xCBA5, 0,0xCDCD, 0,0xCDCF,0xAAEF, 0, + 0,0xAAF1,0xCDCC,0xCDCE,0xAAF0,0xCDD1,0xCDD0,0xCDD2, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD0B6,0xD0B4,0xAD7C,0xD0B3,0xADA3,0xAD7E,0xAD7B, 0, +0xADA4, 0,0xAD7D,0xADA2, 0,0xADA1,0xD0B5, 0, +0xAD7A, 0, 0, 0,0xB06A,0xD3EB,0xD3F1,0xB067, +0xB06E, 0,0xB069,0xD3EE,0xD3F0,0xB06C,0xD3EA,0xD3ED, +0xB068,0xB065,0xD3EC,0xB06B,0xD3EF,0xB06D,0xB066, 0, + 0, 0, 0,0xD7E3,0xD7E6,0xB370, 0,0xB37A, +0xB376,0xD7E4, 0, 0,0xB37E,0xB377,0xB37C,0xB372, + 0,0xB36F,0xB371,0xB37D,0xD7E5,0xB375,0xB378,0xB374, +0xB379,0xD7E7,0xB37B,0xB373,0xD7E2, 0, 0, 0, + 0, 0, 0, 0, 0,0xDC4D,0xB665,0xDC4F, + 0,0xB667,0xB669, 0,0xDC4E,0xB666,0xB66A, 0, +0xB668, 0, 0, 0,0xB947,0xE0A3,0xB94F,0xE07E, + 0,0xB950,0xB945, 0,0xE0A1, 0, 0,0xB94A, + 0,0xE0A2,0xB943,0xB942, 0,0xB94D,0xB94C,0xB94B, +0xB949,0xB94E,0xE07D,0xB944,0xB946,0xB948, 0, 0, +0xBBB8,0xBBBB, 0,0xBBBF,0xBBB9,0xBBBE,0xBBBC, 0, +0xBBB7, 0,0xBBBD,0xBBBA, 0, 0, 0,0xE852, +0xBE43,0xBE41, 0,0xE853, 0,0xBE44,0xBE42,0xE851, +0xE850, 0,0xBFF0,0xE84F,0xBFEE,0xBFED,0xEBD0,0xBE45, +0xBFEF,0xEBD1,0xBFF2,0xEBD2,0xBFF1,0xC1D8,0xEEC3,0xC1D7, +0xC1DC,0xC1DA,0xC1DB,0xC2E3,0xC1D9,0xEEC2,0xEBD3,0xC2E2, +0xC2E4, 0,0xC3E4,0xC3E5, 0,0xF4E0, 0,0xC5DE, +0xC5DD,0xA8B6, 0, 0,0xCA55,0xB06F, 0,0xCA52, +0xCA53,0xCA51, 0,0xCA54, 0, 0,0xCBAA,0xCBA7, +0xCBAC,0xCBA8,0xA8B7,0xA8BA, 0,0xCBA9,0xA8B9,0xCBAB, + 0, 0,0xA8B8, 0, 0, 0, 0,0xCDD5, +0xCDD7,0xAAF4,0xCDD3,0xCDD6,0xCDD4,0xAAF2,0xAAF5, 0, +0xAAF3, 0, 0, 0, 0,0xD0B8,0xD0BC,0xD0B9, + 0,0xADA7, 0,0xADA8, 0,0xD0BB, 0,0xD0BD, +0xD0BF, 0,0xADA5,0xD0BE, 0, 0,0xADA6, 0, + 0, 0, 0, 0,0xD7EE,0xD0BA,0xD3F2,0xD3FB, +0xD3F9,0xD3F4,0xD3F5,0xD3FA,0xD3FC,0xB071, 0,0xD3F7, +0xD3F3,0xB070,0xB072,0xD3F6,0xD3FD,0xD3F8, 0, 0, +0xB3A1,0xD7F1,0xD7E9,0xD7EF,0xD7F0,0xB3A2, 0,0xD7E8, +0xD7EA,0xD0B7,0xD7EC,0xD7ED,0xD7EB,0xB66C, 0, 0, + 0,0xDC56,0xEBD4,0xDC57,0xDC54,0xB3A3,0xB66E,0xDC53, +0xDC59,0xDC58,0xB66B,0xDC5C,0xDC52,0xDC5B,0xDC50,0xDC5A, +0xDC55,0xB66D, 0,0xE0AA, 0,0xE0A5,0xE0AB,0xE0A6, +0xE0A4,0xE0A7,0xB951, 0,0xE0A9, 0,0xE0A8,0xB952, +0xBBC1,0xBBC0,0xE46E,0xE471,0xE469,0xE46D,0xBBC2,0xE46C, +0xE46A,0xE470,0xE46B,0xE468,0xE46F, 0,0xE859,0xBE48, +0xF14A,0xE856,0xE857,0xE855,0xDC51,0xBE47,0xE85A,0xE854, +0xBE46,0xBE49,0xE858,0xEBD5,0xBFF3,0xEBD6,0xEBD7, 0, +0xEEC4,0xC1DD,0xF14B,0xF14C, 0, 0,0xF14D,0xF35D, +0xF35C,0xF4E2, 0,0xF4E1,0xF65B,0xF65C,0xF65A,0xF766, +0xC5B0,0xA8BB,0xADAA,0xADA9,0xB075,0xB074,0xD440,0xD441, +0xD3FE, 0,0xB073,0xD7F5, 0,0xD7F6,0xD7F2,0xB3A4, +0xD7F3, 0,0xD7F4, 0, 0, 0, 0,0xDC5F, +0xDC61,0xDC5D,0xDC60,0xB66F,0xDC5E,0xB670, 0, 0, +0xDD73,0xB955,0xB954, 0,0xB953, 0,0xE0AC,0xE0AD, + 0, 0,0xE473,0xE475,0xBBC6,0xBBC3, 0,0xBBC5, +0xBBC4,0xE474,0xE472, 0, 0, 0, 0, 0, +0xE861,0xE85E,0xE85F,0xBE4D,0xE860,0xE85B,0xE85C,0xBE4A, + 0,0xBE4B,0xE85D,0xBE4C, 0,0xEBDB, 0,0xEBDC, +0xEBD9,0xEBDA,0xBFF4,0xEBD8, 0, 0, 0, 0, + 0,0xEEC8,0xEEC5,0xEEC7,0xC1E0,0xEECB,0xC1DF,0xEEC9, +0xEECC,0xEECA,0xEEC6,0xC1DE, 0,0xF14F, 0,0xF150, +0xF14E, 0,0xF152,0xC2E5,0xC2E6,0xF35F,0xC3E7,0xF151, +0xF35E,0xC3E6,0xF4E5,0xF4E6,0xC4BF,0xF4E4, 0,0xF4E3, + 0,0xF65D,0xC548, 0,0xF849,0xF8C8,0xF8C7, 0, +0xC643,0xC65D,0xF8C9,0xF971, 0,0xC66F,0xA8BC,0xAAF6, + 0,0xB956, 0,0xC4C0,0xA8BD,0xADAB,0xB3A5,0xB671, +0xC2E7,0xAAF7, 0,0xD0C1,0xD0C0,0xD442, 0,0xB078, +0xB076,0xB07A,0xD444, 0,0xB079,0xB077, 0, 0, + 0, 0,0xD443,0xB3A8,0xD7FC, 0,0xB3A7,0xB3A9, +0xD842,0xB3AB,0xD7FE,0xD840,0xD7F7,0xB3AA,0xD843, 0, + 0,0xD7F9, 0,0xD7FA,0xD7F8,0xB3A6, 0,0xD841, +0xD7FB,0xD7FD, 0, 0, 0,0xDC6D, 0,0xDC6C, +0xDC6A,0xDC62,0xDC71,0xDC65,0xDC6F,0xDC76,0xDC6E,0xB679, + 0,0xB675,0xDC63, 0,0xDC69,0xB677, 0,0xDC68, +0xB678,0xB67A,0xDC6B, 0,0xB672,0xB673,0xDC77,0xDC75, + 0,0xDC74,0xDC66, 0,0xDC72, 0,0xB676, 0, + 0, 0, 0,0xB674,0xDC73,0xDC64,0xDC67,0xDC70, + 0, 0, 0, 0, 0,0xE4BA,0xE0B7, 0, +0xE0B0,0xE0C3,0xE0CC,0xE0B3,0xB961, 0,0xE0C0,0xB957, +0xB959,0xB965,0xE0B1, 0, 0,0xB95A,0xB95C,0xB966, +0xB95B, 0, 0, 0, 0,0xB964,0xE0B9, 0, +0xE0AE,0xB962,0xE0B8,0xB95E,0xE0CA,0xB963,0xE0C8,0xE0BC, +0xE0C6,0xB960,0xE0AF,0xE0C9,0xE0C4, 0,0xE0CB,0xB958, + 0, 0,0xB967,0xB95D, 0, 0,0xE0B5, 0, +0xE0BD,0xE0C1, 0,0xE0C5,0xB95F,0xE0B4,0xE0B2,0xE0BE, + 0, 0, 0, 0,0xE0BB,0xE0BA, 0,0xE0BF, +0xE0C2, 0,0xE0C7, 0, 0, 0,0xE478, 0, +0xBBC7,0xE4A4,0xE47A,0xBBCC,0xBBD0,0xE4AD,0xE4B5,0xE4A6, +0xBBC8, 0,0xE4AA,0xE0B6, 0,0xBBC9,0xE4B1,0xE4B6, +0xE4AE, 0,0xE4B0,0xE4B9,0xE4B2,0xE47E,0xE4A9, 0, + 0,0xBBD1, 0,0xBBCD,0xE47C,0xE4AB,0xBBCB,0xE4A5, +0xBBCA,0xE4B3,0xE4A2,0xE479,0xBBCE,0xE4B8, 0, 0, +0xE47B,0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4, +0xBBCF,0xE4B7,0xE47D,0xE4A3,0xBE52, 0, 0, 0, + 0, 0,0xBE5A,0xBE55,0xE8A4,0xE8A1,0xE867,0xBE50, + 0,0xF9D7, 0,0xBE4F,0xBE56, 0, 0, 0, +0xE865,0xBE54,0xE871,0xE863,0xE864,0xBE4E,0xE8A3,0xBE58, +0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868, +0xE862,0xE87D,0xBE57,0xE87E, 0,0xE878, 0,0xE86D, +0xE86B,0xE866, 0, 0, 0,0xE86E,0xE87B,0xE86A, +0xE87A,0xE8A2, 0, 0,0xBE53, 0,0xE876,0xE87C, +0xE872,0xE86C,0xBE51, 0, 0, 0,0xE4A8,0xE870, +0xBE59,0xE869, 0, 0, 0, 0, 0,0xEBF4, +0xBFF7,0xEBF3,0xEBF0,0xEC44,0xBFFB, 0,0xEC41,0xEBF8, +0xEC43,0xEBE9,0xEBF6, 0,0xBFFD, 0,0xEBE1, 0, +0xEBDF,0xEC42, 0,0xEC40,0xEBFE,0xEBED,0xEBEC,0xEBE2, +0xC040, 0,0xEBE8,0xEBF2,0xEBFD,0xC043,0xEC45, 0, +0xC1E8,0xC045,0xBFFE,0xEBE6, 0,0xEBEF,0xEBDE,0xEBE0, +0xBFF5,0xC042,0xBFFA,0xEBE7,0xEBF7,0xEBF1,0xC041,0xEBDD, +0xC1E3,0xEBF9,0xEBFC,0xBFFC, 0,0xEBEB,0xC044,0xBFF9, + 0, 0, 0,0xBFF8,0xEBF5,0xEBFB,0xBFF6, 0, +0xEBE4,0xEBFA, 0, 0,0xEBE5, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xEBEA,0xEED2, + 0,0xEED7,0xC1E5,0xC1E7,0xEEDD,0xC1E1,0xEEEC,0xEEE3, +0xEED8,0xEED9,0xEEE2, 0,0xC1EE,0xEEE1,0xEED1,0xEEE0, +0xEED4,0xEEED,0xC1ED,0xC1EB,0xEED5, 0,0xEEE8, 0, +0xEEDA,0xEEE7, 0,0xEEE9,0xEED0,0xC1E6, 0,0xEEEA, + 0, 0,0xEEDE, 0,0xC1EA,0xEEDB, 0, 0, +0xC1EC,0xEEE4, 0, 0, 0,0xC1E4,0xEED6,0xEEE5, + 0,0xEEDF,0xEBE3,0xEEE6,0xEED3, 0,0xC1E9, 0, +0xEEEB, 0,0xC1E2,0xEECE, 0, 0, 0, 0, +0xF160,0xF159,0xC2E9, 0,0xF154,0xF163,0xF15B,0xEEDC, + 0,0xF165,0xF155, 0,0xC2E8,0xF15F,0xC2EA,0xC2F2, +0xC2F0,0xF161,0xC2F1,0xF157, 0,0xF158,0xF15D,0xF162, + 0,0xEECD,0xC2EB,0xF16A,0xF167,0xF16B,0xF15E,0xF15A, +0xF168,0xF36A,0xF15C, 0,0xC2EE, 0,0xC2ED,0xEECF, +0xC2EF,0xF164,0xF166,0xC2EC,0xF169,0xF153, 0,0xF156, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF373, 0,0xF363,0xC3EB,0xF371, 0, 0,0xF361, +0xC3EC, 0,0xF36C, 0,0xF368,0xC3F1,0xF372,0xF362, +0xF365,0xC3E9,0xF374, 0,0xF36D,0xF370,0xC3EF,0xC3F4, +0xC3F2,0xF369,0xF364, 0,0xC3ED,0xC3EE,0xF360,0xC3EA, + 0,0xC3E8,0xC3F0,0xF36F,0xC3F3, 0,0xF36B,0xF375, +0xC3F5, 0, 0, 0,0xF367, 0,0xF36E, 0, + 0, 0, 0, 0, 0,0xF4F3,0xF542,0xF4F5, +0xF4FC,0xF366,0xF4FA,0xF4E9,0xF540,0xC4C3,0xF4ED,0xF4FE, +0xF4F4, 0, 0,0xC4C2, 0, 0,0xF544,0xF4F6, + 0,0xF4FB,0xF4FD,0xF4E7,0xF541,0xF4F2,0xF4F7,0xF4EB, +0xF4EF,0xF543,0xF4F9,0xF4E8,0xF4EC,0xF4EE,0xF4F8, 0, +0xC4C1,0xF4F1, 0, 0, 0, 0, 0, 0, +0xF4EA, 0, 0, 0, 0, 0, 0, 0, +0xF4F0,0xF661,0xF666,0xC54F,0xF668, 0,0xC549, 0, +0xF664,0xF66A,0xC54E,0xC54A, 0,0xC54B,0xF660,0xF667, +0xC54D,0xF665,0xC54C,0xF65F,0xF663,0xF662, 0,0xF65E, +0xF669, 0, 0, 0,0xC5B1,0xF76D,0xF770,0xF76C, +0xF76E,0xF76F,0xF769,0xF76A,0xF767, 0, 0,0xF76B, +0xF768,0xC5B2,0xC5B3, 0, 0,0xF84B, 0,0xF84D, + 0, 0, 0, 0, 0,0xF84C,0xF84E, 0, +0xC5E0, 0,0xF84A,0xC5DF,0xC5E1, 0, 0, 0, +0xF8CB,0xF8CC,0xC644,0xF8CA, 0,0xF953,0xF952,0xF954, +0xC65F,0xF955,0xC65E,0xF956,0xF972,0xF975,0xF974,0xC668, +0xF973, 0, 0, 0,0xC672,0xC670,0xC671,0xC677, +0xF9C0,0xF9C1,0xF9BF,0xF9C9}; + +/* page 8 0x9577-0x9FA4 */ +static const uint16 tab_uni_big58[]={ +0xAAF8, 0, 0,0xD844,0xDC78,0xE8A5,0xF376, 0, + 0,0xAAF9, 0,0xADAC,0xB07B, 0, 0,0xD845, + 0,0xD846,0xB3AC, 0,0xB67D,0xDC7A,0xDC79,0xB6A3, +0xB67C,0xDC7B,0xB67E,0xB6A2,0xB6A1,0xB67B, 0, 0, + 0,0xB968, 0, 0,0xE0D0,0xE0CE, 0,0xE0CF, +0xE0CD, 0,0xBBD2, 0,0xBBD5,0xBBD7,0xBBD6, 0, + 0,0xBBD3,0xBBD4, 0,0xE8A7,0xE8A6,0xBE5B,0xE8A8, + 0,0xE8A9,0xBE5C, 0, 0, 0,0xEC4D,0xEC4B, +0xEEF3, 0,0xEC49,0xEC4A,0xC046,0xEC46,0xEC4E,0xEC48, +0xEC4C,0xEEEF, 0, 0,0xEEF1, 0,0xEEF2,0xC1F3, +0xEEEE,0xC1F2,0xEEF0,0xC1EF,0xC1F0,0xC1F1,0xEC47, 0, + 0,0xC2F5,0xF16E,0xF16C,0xF16D,0xC2F3,0xC2F6,0xC2F4, + 0, 0, 0,0xF377,0xF378,0xC3F6, 0,0xF545, +0xF547,0xF546,0xC4C4,0xC550,0xF66D,0xF66C,0xF66B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xAAFA, 0,0xC9AA, + 0,0xCA58,0xA6E9,0xCA56,0xCA59,0xCA57, 0, 0, + 0,0xCBAE, 0,0xA8C1, 0,0xA8C2,0xCBB0,0xA8BF, +0xCBAF,0xCBAD,0xA8C0,0xA8BE, 0, 0, 0, 0, + 0, 0,0xCDD8,0xCDDB,0xAAFD,0xCDDA,0xCDD9, 0, +0xAAFC,0xAAFB, 0,0xAB40,0xCDDC,0xAAFE, 0, 0, + 0, 0, 0,0xD0C6,0xADAE,0xADAF,0xADB0,0xD0C7, +0xD0C3,0xADAD,0xD0C4, 0,0xD0C5,0xD0C2, 0, 0, + 0,0xB0A4, 0, 0,0xB0A1,0xD445,0xB0A2,0xB0A5, +0xD446, 0,0xB07E,0xB07C,0xB07D,0xB0A3, 0, 0, + 0, 0, 0,0xB3AD,0xD849,0xB3B5,0xD848, 0, +0xD84B,0xB3B1,0xD84A,0xB6AB,0xB3AF,0xB3B2,0xB3AE,0xB3B3, +0xB3B4,0xB3B0, 0, 0, 0,0xD847,0xB6A7,0xDC7D, + 0,0xDCA3, 0, 0,0xDCA2,0xB6AC,0xB6A8,0xB6A9, +0xDC7C,0xDC7E,0xDCA1,0xB6A4,0xB6A6, 0,0xB6AA,0xB6A5, + 0, 0,0xE0D3,0xE0D1,0xE0D2,0xB96A,0xB96B, 0, +0xE0D4,0xB969,0xBBD8, 0,0xBBDA,0xBBD9, 0,0xE4BB, + 0, 0,0xE4BC,0xE8AB, 0,0xE8AA, 0, 0, +0xC047,0xC048,0xEC4F,0xC049, 0,0xEEF6, 0,0xEEF4, + 0,0xEEF5,0xC1F4, 0,0xF16F,0xC3F7, 0, 0, + 0,0xC1F5,0xAB41, 0,0xB0A6,0xD447, 0, 0, +0xD84C,0xB3B6,0xB6AD,0xDCA4,0xDCA6,0xB6AF,0xB6AE,0xB6B0, +0xB6B1,0xDCA5,0xB96E,0xB96F,0xB96D,0xBBDB,0xB96C,0xE0D5, + 0, 0, 0,0xBBDC,0xE8AC,0xEC50,0xC04A,0xC1F6, +0xF170,0xF174,0xC2F9,0xF171,0xC2FA,0xC2F8,0xF175,0xC2FB, +0xF173, 0,0xF379,0xC2F7,0xC3F8, 0,0xF8CD, 0, + 0,0xAB42,0xB3B8,0xB3B7, 0, 0, 0, 0, +0xB6B2,0xDCA8,0xDCA7,0xB6B3, 0, 0,0xE0D9,0xB973, +0xB970,0xE0D8,0xB972,0xE0D6,0xB971, 0,0xE0D7, 0, +0xE4BD,0xBBDD, 0,0xE8AF, 0,0xBE5D,0xE8AD,0xBE5E, +0xBE5F,0xE8AE,0xBE60, 0,0xEC51, 0,0xC04E,0xC04B, +0xC050,0xEC53,0xC04C,0xEC52,0xC04F, 0, 0,0xC04D, + 0,0xEEF9,0xEEFB, 0, 0,0xC1F7,0xEEFA,0xC1F8, +0xEEF8,0xEEF7, 0,0xF177,0xF176,0xC2FC,0xF178,0xF37E, +0xC3FA,0xF37D,0xF37A,0xC3F9,0xF37B,0xF37C, 0,0xF548, +0xF549,0xC4C5, 0,0xC553, 0, 0,0xF66E, 0, + 0,0xC551,0xC552,0xF66F, 0, 0,0xC5B4,0xC5B5, +0xF771, 0, 0,0xC645,0xF8CF,0xC647, 0,0xF8CE, +0xF8D0,0xC646,0xF957, 0,0xF9AD, 0, 0, 0, + 0, 0, 0,0xAB43, 0, 0, 0,0xB974, + 0,0xE4BE, 0,0xE8B0,0xC051,0xC052, 0,0xAB44, + 0,0xBE61,0xC3FB,0xADB1, 0, 0, 0,0xC053, + 0,0xC5E2,0xADB2,0xD84D, 0,0xDCA9, 0,0xDCAB, + 0,0xDCAA, 0,0xE0DD,0xE0DA,0xB975, 0,0xB976, +0xE0DB,0xE0DC, 0,0xE4C0,0xE4C5,0xBBDE,0xE4BF,0xE4C1, +0xE4C8,0xE4C3,0xE4C7,0xE4C4,0xE4C2,0xE4C6,0xBBDF, 0, + 0,0xE8B3, 0,0xE8B1,0xBE63, 0,0xBE62,0xE8B2, +0xBE64, 0, 0, 0, 0,0xEC56, 0, 0, +0xEC55,0xC054,0xEC54,0xEEFC, 0,0xEEFE,0xEF41,0xEF40, + 0,0xC1F9,0xEEFD,0xF1A1,0xC2FD,0xF17D,0xF1A2,0xC2FE, + 0,0xF17B, 0,0xF17E,0xF17C,0xF179,0xC340,0xF17A, + 0, 0, 0, 0,0xF3A1, 0, 0,0xF3A3, +0xF3A2, 0,0xF54A, 0,0xF54B, 0, 0, 0, +0xF670, 0,0xC5B7, 0,0xC5B6,0xF84F,0xF850,0xC648, +0xF8D1, 0,0xC669, 0,0xADB3,0xB6B4,0xE4CA,0xE4C9, +0xE8B5,0xE8B4, 0, 0,0xC1FA,0xEF43,0xEF42,0xF1A5, +0xF1A3,0xF1A6,0xF1A4, 0, 0,0xC3FC,0xF3A4,0xF3A5, +0xF3A6, 0,0xF671, 0,0xF772, 0,0xF8D2, 0, + 0, 0, 0, 0, 0, 0,0xADB4, 0, + 0,0xEC57,0xEF44, 0,0xADB5, 0, 0,0xBBE0, + 0,0xEC58,0xC341,0xF1A7,0xC3FD, 0,0xF54C,0xF54D, +0xC554,0xF851,0xADB6,0xB3BB,0xB3BC,0xD84E,0xB6B5,0xB6B6, +0xDCAC,0xB6B7, 0,0xB97A, 0,0xB97C,0xE0DF,0xE0E0, +0xE0DE,0xB977,0xB978,0xB97B,0xB979, 0, 0,0xE4CB, +0xBBE1,0xBBE2, 0, 0,0xE8BC,0xBE67,0xE8B7,0xE8B6, + 0,0xE8BB,0xBE65, 0, 0,0xC05B, 0,0xE8B8, +0xE8BD,0xE8BA,0xE8B9, 0,0xBE66, 0,0xC059, 0, +0xEC5A,0xC055, 0,0xEC5B, 0, 0,0xEC59, 0, +0xC058,0xC056,0xC05A, 0,0xC057, 0, 0, 0, + 0, 0,0xEF45, 0,0xEF4A,0xEF46,0xEF49,0xC1FB, + 0,0xEDD4,0xEF48,0xEF47, 0,0xC344,0xC342,0xC345, +0xC343,0xF1A8,0xF1A9,0xF1AA,0xC346, 0, 0, 0, +0xF3AA,0xC440,0xF3A8, 0,0xC441,0xF3A7,0xF3A9,0xC3FE, +0xF551,0xF54E, 0,0xF54F,0xF550,0xF672,0xC556, 0, +0xC555, 0,0xF774,0xF773,0xC5B8, 0, 0, 0, +0xC5E3,0xC649,0xC660,0xF958,0xF9AE,0xF9AF, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xADB7,0xDCAD, 0, 0,0xE0E1,0xE4CC,0xE4CD, +0xBBE3, 0,0xBBE4,0xE8BE,0xBE68, 0, 0,0xC1FC, + 0,0xF1AB, 0,0xC347,0xF3AD,0xC442,0xF3AC,0xF3AE, +0xF3AB,0xF675,0xF552,0xF553, 0,0xC4C6, 0,0xF674, + 0, 0,0xF673, 0,0xF775,0xF9B0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xADB8, 0, 0, 0, +0xADB9, 0, 0,0xB0A7,0xD448, 0,0xD84F, 0, +0xB6B8, 0,0xB6BB,0xB6B9,0xDCAE, 0,0xB6BD, 0, +0xB6BA, 0, 0,0xB6BC, 0,0xB97E, 0,0xE0E2, + 0, 0,0xE0E3,0xE8C0, 0,0xB97D,0xB9A1,0xB9A2, + 0,0xE4CF, 0,0xE4CE,0xBBE5, 0,0xBBE6, 0, +0xE4D0,0xE8BF,0xBBE8,0xBE69, 0,0xBBE7, 0, 0, + 0,0xC05C,0xE8C1,0xBE6B,0xBE6A,0xE8C2,0xE8C5,0xE8C3, +0xE8C4,0xBE6C, 0,0xC061,0xC05F, 0, 0,0xC05E, +0xEC5D, 0,0xC060, 0, 0,0xEC5C,0xEF4B, 0, +0xEC5E,0xC05D,0xEC5F,0xEF4E,0xEF4C,0xEF4D,0xEF52,0xC34B, +0xEF51,0xEF54,0xEF53,0xEF50,0xEF4F, 0,0xC1FD, 0, + 0, 0, 0,0xF1AE, 0,0xF1AD,0xC34A,0xC348, +0xC349, 0,0xF1AC, 0,0xF3B1, 0,0xC443, 0, +0xF3B0,0xF3AF,0xC444, 0,0xF558,0xF557, 0,0xF555, + 0,0xF554,0xC4C8,0xC4C7,0xF559,0xF776,0xC5B9,0xF677, +0xC557,0xF676,0xF556, 0,0xF777,0xC5E4, 0,0xC661, +0xF959, 0,0xF9B1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xADBA, +0xD850,0xEF55,0xADBB, 0, 0,0xE4D2,0xE4D1,0xEC60, + 0, 0,0xEF57, 0,0xEF56, 0,0xC34C,0xF3B2, +0xF3B3,0xC4C9, 0, 0,0xF9B2,0xB0A8,0xB6BF,0xB6BE, +0xE0E4,0xE0E6,0xB9A4,0xE0E5,0xB9A3,0xB9A5,0xE0E7, 0, + 0, 0,0xE4D4,0xE4D6,0xE4D5, 0,0xE4D8, 0, + 0, 0,0xBBE9,0xE4D7,0xE4D3, 0, 0, 0, +0xE4D9, 0,0xE8CC, 0,0xE8CF,0xE8D1,0xE8C7,0xE8CB, +0xE8C8,0xBE6E,0xBE71,0xBE73,0xE8C9,0xE8CA,0xBE72,0xE8CD, +0xE8D0,0xE8CE,0xBE74, 0,0xBE70,0xE8C6,0xBE6D, 0, +0xBE6F, 0, 0,0xC063,0xEC66,0xEC64,0xEC63, 0, +0xEC69, 0,0xEC68,0xEC67, 0,0xEC62,0xC062,0xEC61, + 0,0xEC65,0xC064, 0, 0,0xEF5A, 0,0xEF5E, +0xEF5B,0xEF5D,0xEF5C,0xEF59,0xEF5F,0xEF62,0xEF60,0xEF61, +0xC240, 0,0xC1FE,0xEF58,0xEF63,0xF1B3,0xF1B6,0xF1B8, +0xF1B7, 0,0xF1B1,0xF1B5,0xF1B0, 0,0xF1B2,0xC34D, +0xF1AF, 0,0xF1B4, 0, 0,0xF3C0,0xF3B5,0xC445, + 0, 0,0xC446,0xF3B4,0xF3B9,0xF3BF,0xF3B7,0xF3BE, + 0,0xF3BB, 0,0xF3BA,0xF3BD,0xF3B8,0xF3B6, 0, +0xF3BC, 0,0xF560,0xF55E,0xC4CA,0xF55D,0xF563,0xF561, + 0,0xC4CB,0xF55C,0xF55A, 0,0xF55B,0xC4CD,0xF55F, +0xC4CC,0xF562,0xF678,0xF67E, 0, 0,0xF679,0xC55B, +0xF6A1,0xC55A,0xF67D,0xF67C,0xC559,0xF67B,0xC558,0xF67A, + 0,0xF77D,0xF7A1,0xF77E, 0,0xF77B,0xC5BB,0xF778, +0xF77C,0xF7A3, 0,0xF7A2,0xF779,0xF77A,0xC5BA,0xF852, +0xC5E7, 0,0xF853,0xC5E5,0xC5E6, 0, 0,0xF8D3, +0xC64A,0xF976, 0,0xC66A, 0,0xF9B3,0xC66B,0xF9B4, +0xF9B5,0xF9C3,0xF9C2,0xC67A,0xF9CD, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xB0A9, 0, 0,0xE0E9, 0,0xE0E8, 0, +0xBBEA,0xBBEB,0xE4DA, 0,0xE8D2,0xEC6C, 0, 0, +0xBE75,0xC065,0xEC6A, 0,0xEC6D,0xC066, 0,0xEF64, +0xEC6B,0xF1B9,0xC34E,0xF3C1, 0, 0, 0,0xF566, +0xF564, 0, 0,0xF565, 0, 0,0xF6A2, 0, +0xC55C,0xF7A4,0xC5EA,0xC5BC,0xC5E8,0xC5E9,0xF8D4,0xC662, + 0,0xB0AA, 0, 0, 0,0xF1BA, 0, 0, +0xD449, 0,0xB9A6, 0,0xE4DB, 0, 0,0xBBEC, +0xE4DC, 0, 0, 0,0xE8D4,0xE8D3,0xC068,0xBE76, +0xBE77, 0,0xE8D7,0xE8D6,0xE8D5, 0, 0,0xEC6E, +0xEC71, 0,0xEC70,0xEC6F,0xC067,0xEF68,0xEF66,0xEF65, + 0, 0,0xEF67, 0,0xC34F,0xF1BC,0xF1BD,0xC350, + 0,0xF1BB, 0,0xF3C3,0xF3C2,0xF3C5,0xC447,0xF3C4, + 0,0xF567,0xF569,0xF568, 0, 0,0xF6A3,0xF6A6, +0xF6A4,0xF6A5,0xF7A5,0xC5BD, 0, 0, 0,0xF854, +0xF855,0xF856, 0,0xC64B,0xC663,0xF9B6,0xB0AB, 0, +0xBE78,0xC069,0xF1BE, 0,0xF7A6, 0, 0,0xF9C4, +0xD44A, 0,0xC67B,0xB0AC,0xEC72, 0,0xF1BF, 0, +0xF3C6, 0, 0,0xF6A7,0xF7A7,0xB0AD, 0,0xE4DD, +0xE4DE, 0,0xBBED,0xBBEE,0xE8D9,0xBE7A,0xBE79,0xE8D8, + 0,0xEF69, 0,0xF1C0,0xF1C2,0xF1C1,0xC353,0xC352, +0xC351, 0,0xC55E,0xF6A8, 0,0xC55D,0xF7A9,0xF7A8, + 0,0xC64C,0xF8D5,0xB3BD,0xE0EA, 0, 0, 0, +0xE4E1,0xE4DF,0xE4E0, 0, 0,0xE8E2, 0,0xE8DD, +0xE8DA,0xE8E1, 0, 0, 0,0xE8E3, 0, 0, +0xBE7C,0xE8E0,0xE8DC, 0, 0,0xE8DB,0xE8DF,0xE8DE, +0xBE7B, 0, 0,0xEC7D,0xEC78,0xEC76,0xECA1,0xEC77, + 0,0xEC73, 0,0xEC79, 0, 0,0xEC74,0xEF72, +0xEC75,0xECA2, 0, 0, 0, 0, 0, 0, + 0,0xEC7C,0xC06A,0xEC7B,0xEC7A, 0,0xEC7E, 0, + 0, 0, 0,0xEF6A,0xEF6D, 0, 0,0xEF6C, + 0,0xEF74,0xEF6F,0xEF73, 0,0xEF71,0xEF70,0xEF6E, + 0,0xEF6B, 0,0xC243,0xC242, 0,0xC244,0xC241, +0xEF75, 0, 0, 0, 0, 0,0xF1C8,0xF1CB, + 0,0xF1C9,0xF1CD, 0, 0, 0,0xF1CE, 0, +0xF1C6,0xC358,0xF1C7, 0,0xF1C5,0xF1CC, 0,0xF1C4, +0xF1C3,0xC357,0xC355,0xC354, 0, 0, 0, 0, + 0, 0, 0, 0,0xF1CA,0xF3CF,0xF3D5,0xC44A, +0xF3D0, 0,0xF3D3,0xF3D7,0xC44B,0xF3D2, 0,0xF3CA, + 0,0xF3C9,0xF3D6,0xF3CD, 0,0xF3CB,0xF3D4,0xF3CC, +0xC449,0xC448, 0,0xF3C7,0xF3C8,0xF3D1, 0, 0, + 0,0xF3CE, 0, 0, 0, 0, 0, 0, +0xF56C,0xF56F, 0, 0, 0, 0,0xC356, 0, + 0, 0, 0, 0, 0, 0,0xF56D,0xF573, +0xF571,0xF56B,0xF576, 0,0xF56A, 0,0xC4CF,0xF572, + 0, 0, 0,0xF56E,0xC4CE,0xF575, 0, 0, +0xF574, 0, 0, 0, 0,0xF6AB,0xF6AA, 0, + 0, 0,0xF6B1, 0,0xF6AD,0xF6B0,0xC560, 0, + 0,0xF6AE,0xF6AF, 0,0xF6A9,0xF6AC,0xC55F, 0, + 0, 0,0xC5BF,0xF7B4,0xF7AF,0xF7B3, 0,0xF7B6, +0xF7B2, 0,0xF7AE, 0,0xC5C1,0xF7B1,0xF7B5,0xC5C0, +0xF7AC,0xF570,0xF7B0, 0, 0,0xF7AD, 0,0xF7AA, + 0,0xF7AB,0xC5BE,0xF85A,0xF85C,0xF85F,0xF85B,0xF860, + 0,0xF859, 0,0xF857, 0,0xC5EB,0xF85D,0xC5ED, +0xC5EC,0xF858,0xF85E, 0, 0, 0, 0,0xF8DA, +0xC64D,0xF8DB, 0,0xF8D9,0xF8D6, 0, 0,0xF8D8, +0xF8D7,0xF95A, 0, 0, 0, 0,0xF95C,0xF95B, + 0, 0,0xF979, 0,0xF978,0xF977,0xF97A, 0, +0xC673,0xC674,0xF9CA,0xF9CE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xB3BE,0xDCAF, +0xE0ED, 0,0xB9A7,0xE0EB, 0, 0,0xE0EC, 0, + 0, 0,0xE4E2,0xE4E3,0xBBF1,0xBBEF,0xE4E4,0xBBF0, +0xE8E8, 0,0xE8EB,0xE8E5,0xE8EC,0xE8E4,0xE8E6, 0, +0xE8E7,0xE8EA, 0, 0,0xBEA1,0xE8EF,0xE8EE,0xBE7D, +0xE8E9,0xE8ED,0xBE7E, 0, 0, 0, 0, 0, + 0,0xECAC, 0,0xC06F, 0,0xECA7,0xC06B, 0, +0xECA4,0xECAA,0xECAD, 0,0xC070, 0,0xECA9,0xECA6, +0xECAE,0xECA5, 0,0xECAB,0xC06C, 0,0xECA3,0xC06D, + 0,0xC06E,0xECA8, 0, 0, 0,0xEFA9,0xEF7A, +0xEF7B,0xEF7E,0xEF7C, 0,0xEF76, 0, 0,0xEF79, +0xEFA5,0xEF7D, 0, 0,0xC245, 0,0xEFA7,0xEFA4, +0xC246,0xEFA6,0xEF77,0xEFA2,0xEFA3, 0,0xEFA1, 0, + 0, 0, 0,0xF1D2,0xF1D4,0xF1D7, 0, 0, +0xF1D1, 0,0xC359,0xF1D9,0xF1D0,0xF1DA, 0,0xF1D6, +0xF1D8,0xF1DC,0xF1D5,0xF1DD,0xF1D3,0xF1CF,0xC35A, 0, +0xF1DB,0xC35B,0xC44D, 0, 0, 0, 0, 0, +0xEF78,0xF3F1,0xF3E8,0xC44F,0xF3E4,0xC450, 0, 0, +0xF3ED,0xF3E7,0xF3DD,0xC44E,0xF3EA,0xF3E5,0xF3E6, 0, +0xF3D8,0xF3DF,0xF3EE, 0,0xF3EB, 0,0xF3E3, 0, +0xF3EF,0xF3DE,0xF3D9,0xF3EC, 0,0xF3DB,0xF3E9,0xF3E0, +0xF3F0,0xF3DC,0xC44C,0xF3DA,0xF3E1,0xF3E2, 0, 0, + 0,0xF57D, 0,0xF57B, 0,0xF5A2, 0,0xF5AE, +0xF5A5,0xF57C,0xF578,0xF5A7,0xF57E,0xF5A3,0xF57A,0xF5AA, +0xF577,0xF5A1,0xF5A6,0xF5A8,0xF5AB,0xF579, 0,0xF5AF, +0xF5B0,0xF5A9,0xF5AD,0xF5A4, 0,0xF6C1,0xF6C4, 0, +0xC561, 0,0xF6C3,0xF6C8,0xF6C6,0xC562,0xF6BD,0xF6B3, +0xF6B2,0xC564,0xF6BF,0xF6C0,0xF6BC,0xF6B4, 0,0xF6B9, +0xF5AC, 0,0xF6B5,0xC563,0xF6BB, 0,0xF6BA, 0, +0xF6B6,0xF6C2, 0,0xF6B7,0xF7BB,0xF6C5,0xF6C7,0xF6BE, +0xF6B8,0xF7BC,0xF7BE,0xF7B8,0xC5C2, 0,0xF7C5,0xF7C3, +0xC5C3,0xF7C2,0xF7C1,0xF7BA,0xF7B7,0xF7BD,0xF7C6,0xF7B9, +0xF7BF, 0,0xF869,0xF86E,0xF864,0xF867,0xC5EE,0xF86B, + 0,0xF872,0xF7C0, 0,0xF865,0xF86F,0xF873,0xF86A, +0xF863,0xF86D, 0,0xF86C,0xF871,0xF870,0xF7C4,0xF868, +0xF862,0xF866,0xC64E,0xC64F,0xF861, 0,0xF8E6,0xF8DD, +0xF8E5,0xF8E2,0xF8E3,0xF8DC,0xF8DF,0xF8E7,0xF8E1,0xF8E0, +0xF8DE, 0,0xF8E4, 0,0xF95D, 0,0xF95E, 0, +0xF960,0xF95F,0xF962,0xF961,0xF97C,0xF97B,0xF9B7, 0, +0xF9B8, 0,0xF9C5,0xC678,0xC67C, 0,0xF9CF,0xC67D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xB3BF, 0, + 0, 0,0xC4D0,0xF6C9, 0,0xC650,0xC651, 0, +0xB3C0,0xE0EE, 0,0xB9A8,0xE8F0, 0, 0,0xECB0, +0xECB1,0xECAF,0xEFAB,0xEFAA,0xC247,0xF1DF,0xEFAC,0xF1DE, + 0, 0,0xF3F3,0xC451,0xC453,0xF3F2, 0, 0, +0xC452, 0,0xF5B1,0xF5B3,0xF5B2,0xF6CA,0xC565, 0, +0xC5EF,0xF8E8,0xF963, 0, 0,0xF9D2,0xB3C1, 0, +0xE4E5, 0,0xBEA2, 0, 0, 0,0xECB3,0xECB2, + 0,0xEFAD, 0, 0, 0,0xC454,0xC4D1,0xF7C7, +0xF9CB, 0, 0, 0,0xB3C2,0xBBF2, 0,0xBEA3, + 0,0xF3F4, 0,0xF874,0xB6C0, 0, 0, 0, + 0,0xEFAE, 0, 0, 0,0xC664,0xB6C1,0xBEA4, +0xC248,0xF875,0xB6C2, 0,0xE8F1,0xC072,0xECB4,0xECB5, + 0,0xC071, 0,0xEFAF,0xC24C,0xC24A,0xC24B,0xC249, +0xF1E0,0xC35C, 0, 0, 0,0xF5B5,0xF5B4,0xF5B7, +0xF5B6,0xC4D2, 0, 0,0xF6CB, 0,0xF6CD,0xF6CC, +0xC566,0xF7C8, 0,0xF876,0xF877,0xC5F0,0xF964,0xF97D, +0xC675, 0,0xDCB0,0xECB6,0xEFB0,0xF3F5,0xE0EF, 0, +0xEFB1,0xF1E2,0xF1E1, 0, 0, 0, 0,0xF878, +0xC652, 0,0xF965,0xF97E, 0, 0, 0,0xB9A9, +0xE8F2,0xE8F3, 0,0xECB7,0xB9AA, 0,0xC35D,0xF1E3, + 0,0xF6CF,0xC567,0xF6D0,0xF6CE,0xF879, 0,0xF8E9, + 0,0xB9AB, 0,0xEFB4,0xEFB3,0xEFB2,0xF1E4, 0, + 0,0xF1E8,0xF1E7,0xF1E6,0xF1E5,0xC35E,0xF3F6,0xF5B9, +0xC4D3,0xF5B8,0xF6D1,0xF7CB,0xF7CA,0xC5C4,0xF7C9,0xF87C, +0xF87B,0xF87A, 0, 0,0xBBF3, 0,0xECB8,0xC24D, + 0,0xF3F7,0xF3F8,0xF7CC,0xF87D, 0, 0,0xF8EA, +0xF966,0xF9B9,0xF9D4,0xBBF4,0xC24E,0xF1E9,0xF3F9,0xF6D2, +0xF87E, 0, 0,0xBEA6, 0,0xEFB5,0xF1EA,0xF3FA, +0xF3FB,0xF3FC,0xF5BE, 0,0xF5BA,0xC568,0xF5BD,0xF5BC, +0xC4D4,0xF5BB,0xC4D6, 0,0xC4D5,0xF6D4,0xF6D3,0xC569, +0xC56A, 0, 0,0xC5C6,0xF7CD,0xC5C5, 0,0xF8A3, +0xF8A4,0xF8A2,0xF8A1,0xC654, 0,0xF8EB,0xF8EC,0xF8ED, +0xC653,0xF967,0xF96A,0xF969,0xF968, 0, 0,0xF9D3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xC073, 0, + 0,0xC365,0xF5BF,0xF6D5, 0,0xC5C7,0xF7CE, 0, + 0,0xF9D5, 0, 0, 0,0xC074, 0, 0, + 0,0xEFB6, 0,0xF7CF, 0,0xF9A1}; + +/* page 9 0xFA0C-0xFA0D */ +static const uint16 tab_uni_big59[]={ +0xC94A,0xDDFC}; + +/* page 10 0xFE30-0xFFFD */ +static const uint16 tab_uni_big510[]={ +0xA14A,0xA157, 0,0xA159,0xA15B,0xA15F,0xA160,0xA163, +0xA164,0xA167,0xA168,0xA16B,0xA16C,0xA16F,0xA170,0xA173, +0xA174,0xA177,0xA178,0xA17B,0xA17C, 0, 0, 0, + 0,0xA1C6,0xA1C7,0xA1CA,0xA1CB,0xA1C8,0xA1C9,0xA15C, +0xA14D, 0,0xA14F, 0,0xA151,0xA152,0xA153,0xA154, + 0,0xA17D,0xA17E,0xA1A1,0xA1A2,0xA1A3,0xA1A4,0xA1CC, +0xA1CD,0xA1CE,0xA1DE,0xA1DF,0xA1E0,0xA1E1,0xA1E2, 0, + 0,0xA24C,0xA24D,0xA24E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA149, 0,0xA1AD,0xA243,0xA248,0xA1AE, 0, +0xA15D,0xA15E,0xA1AF,0xA1CF,0xA141,0xA1D0,0xA144,0xA241, +0xA2AF,0xA2B0,0xA2B1,0xA2B2,0xA2B3,0xA2B4,0xA2B5,0xA2B6, +0xA2B7,0xA2B8,0xA147,0xA146,0xA1D5,0xA1D7,0xA1D6,0xA148, +0xA249,0xA2CF,0xA2D0,0xA2D1,0xA2D2,0xA2D3,0xA2D4,0xA2D5, +0xA2D6,0xA2D7,0xA2D8,0xA2D9,0xA2DA,0xA2DB,0xA2DC,0xA2DD, +0xA2DE,0xA2DF,0xA2E0,0xA2E1,0xA2E2,0xA2E3,0xA2E4,0xA2E5, +0xA2E6,0xA2E7,0xA2E8, 0,0xA242, 0, 0,0xA1C4, + 0,0xA2E9,0xA2EA,0xA2EB,0xA2EC,0xA2ED,0xA2EE,0xA2EF, +0xA2F0,0xA2F1,0xA2F2,0xA2F3,0xA2F4,0xA2F5,0xA2F6,0xA2F7, +0xA2F8,0xA2F9,0xA2FA,0xA2FB,0xA2FC,0xA2FD,0xA2FE,0xA340, +0xA341,0xA342,0xA343,0xA161,0xA155,0xA162, 0, 0, + 0, 0, 0, 0,0xA14E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA2CE}; + +static int func_uni_big5_onechar(int code){ + if ((code>=0x00A2)&&(code<=0x00F7)) + return(tab_uni_big50[code-0x00A2]); + if ((code>=0x02C7)&&(code<=0x0451)) + return(tab_uni_big51[code-0x02C7]); + if ((code>=0x2013)&&(code<=0x22BF)) + return(tab_uni_big52[code-0x2013]); + if ((code>=0x2460)&&(code<=0x2642)) + return(tab_uni_big53[code-0x2460]); + if ((code>=0x3000)&&(code<=0x3129)) + return(tab_uni_big54[code-0x3000]); + if ((code>=0x32A3)&&(code<=0x32A3)) + return(tab_uni_big55[code-0x32A3]); + if ((code>=0x338E)&&(code<=0x33D5)) + return(tab_uni_big56[code-0x338E]); + if ((code>=0x4E00)&&(code<=0x9483)) + return(tab_uni_big57[code-0x4E00]); + if ((code>=0x9577)&&(code<=0x9FA4)) + return(tab_uni_big58[code-0x9577]); + if ((code>=0xFA0C)&&(code<=0xFA0D)) + return(tab_uni_big59[code-0xFA0C]); + if ((code>=0xFE30)&&(code<=0xFFFD)) + return(tab_uni_big510[code-0xFE30]); + return(0); +} + + +static int +my_wc_mb_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + + int code; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((int) wc < 0x80) + { + s[0]= (uchar) wc; + return 1; + } + + if (!(code=func_uni_big5_onechar(wc))) + return MY_CS_ILUNI; + + if (s+2>e) + return MY_CS_TOOSMALL; + + s[0]=code>>8; + s[1]=code&0xFF; + + return 2; +} + + +static int +my_mb_wc_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc,const uchar *s,const uchar *e) +{ + + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) + { + pwc[0]=hi; + return 1; + } + + if (s+2>e) + return MY_CS_TOOSMALL2; + + if (!(pwc[0]=func_big5_uni_onechar((hi<<8)+s[1]))) + return -2; + + return 2; +} + + +/* + Returns a well formed length of a BIG5 string. + CP950 and HKSCS additional characters are also accepted. +*/ +static +size_t my_well_formed_len_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + const char *emb= e - 1; /* Last possible end of an MB character */ + + *error= 0; + while (pos-- && b < e) + { + if ((uchar) b[0] < 128) + { + /* Single byte ascii character */ + b++; + } + else if ((b < emb) && isbig5code((uchar)*b, (uchar)b[1])) + { + /* Double byte character */ + b+= 2; + } + else + { + /* Wrong byte sequence */ + *error= 1; + break; + } + } + return (size_t) (b - b0); +} + + +static MY_COLLATION_HANDLER my_collation_big5_chinese_ci_handler = +{ + NULL, /* init */ + my_strnncoll_big5, + my_strnncollsp_big5, + my_strnxfrm_big5, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb, + my_strcasecmp_mb, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_big5_handler= +{ + NULL, /* init */ + ismbchar_big5, + mbcharlen_big5, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_big5, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_big5, /* mb_wc */ + my_wc_mb_big5, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_mb, + my_casedn_mb, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + +CHARSET_INFO my_charset_big5_chinese_ci= +{ + 1,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ + "big5", /* cs name */ + "big5_chinese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_big5, + to_lower_big5, + to_upper_big5, + sort_order_big5, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_big5, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xF9D5, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_big5_handler, + &my_collation_big5_chinese_ci_handler +}; + + +CHARSET_INFO my_charset_big5_bin= +{ + 84,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "big5", /* cs name */ + "big5_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_big5, + to_lower_big5, + to_upper_big5, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_big5, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xF9FE, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_big5_handler, + &my_collation_mb_bin_handler +}; + + +#endif diff --git a/mysql/strings/ctype-bin.c b/mysql/strings/ctype-bin.c new file mode 100644 index 0000000..19ea41b --- /dev/null +++ b/mysql/strings/ctype-bin.c @@ -0,0 +1,603 @@ +/* Copyright (c) 2002 MySQL AB & tommy@valley.ne.jp + Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for binary pseudo charset, created by bar@mysql.com */ + + +#include +#include "m_string.h" +#include "m_ctype.h" + +static const uchar ctype_bin[]= +{ + 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + + +/* Dummy array for toupper / tolower / sortorder */ + +static const uchar bin_char_array[] = +{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + + +static my_bool +my_coll_init_8bit_bin(CHARSET_INFO *cs, + MY_CHARSET_LOADER *loader MY_ATTRIBUTE((unused))) +{ + cs->max_sort_char=255; + return FALSE; +} + +static int my_strnncoll_binary(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + size_t len= MY_MIN(slen,tlen); + int cmp= memcmp(s,t,len); + return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen); +} + + +size_t my_lengthsp_binary(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *ptr MY_ATTRIBUTE((unused)), + size_t length) +{ + return length; +} + + +/* + Compare two strings. Result is sign(first_argument - second_argument) + + SYNOPSIS + my_strnncollsp_binary() + cs Chararacter set + s String to compare + slen Length of 's' + t String to compare + tlen Length of 't' + + NOTE + This function is used for real binary strings, i.e. for + BLOB, BINARY(N) and VARBINARY(N). + It compares trailing spaces as spaces. + + RETURN + < 0 s < t + 0 s == t + > 0 s > t +*/ + +static int my_strnncollsp_binary(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + return my_strnncoll_binary(cs,s,slen,t,tlen,0); +} + + +static int my_strnncoll_8bit_bin(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + size_t len=MY_MIN(slen,tlen); + int cmp= memcmp(s,t,len); + return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen); +} + + +/* + Compare two strings. Result is sign(first_argument - second_argument) + + SYNOPSIS + my_strnncollsp_8bit_bin() + cs Chararacter set + s String to compare + slen Length of 's' + t String to compare + tlen Length of 't' + diff_if_only_endspace_difference + Set to 1 if the strings should be regarded as different + if they only difference in end space + + NOTE + This function is used for character strings with binary collations. + The shorter string is extended with end space to be as long as the longer + one. + + RETURN + < 0 s < t + 0 s == t + > 0 s > t +*/ + +static int my_strnncollsp_8bit_bin(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + const uchar *end; + size_t length; + int res; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + end= a + (length= MY_MIN(a_length, b_length)); + while (a < end) + { + if (*a++ != *b++) + return ((int) a[-1] - (int) b[-1]); + } + res= 0; + if (a_length != b_length) + { + int swap= 1; + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + if (a_length < b_length) + { + /* put shorter key in s */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (end= a + a_length-length; a < end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + } + return res; +} + + +/* This function is used for all conversion functions */ + +static size_t my_case_str_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char *str MY_ATTRIBUTE((unused))) +{ + return 0; +} + + +static size_t my_case_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char *src MY_ATTRIBUTE((unused)), + size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + return srclen; +} + + +static int my_strcasecmp_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *s, const char *t) +{ + return strcmp(s,t); +} + + +uint my_mbcharlen_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c MY_ATTRIBUTE((unused))) +{ + return 1; +} + + +static int my_mb_wc_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *wc, + const uchar *str, + const uchar *end MY_ATTRIBUTE((unused))) +{ + if (str >= end) + return MY_CS_TOOSMALL; + + *wc=str[0]; + return 1; +} + + +static int my_wc_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, + uchar *s, + uchar *e MY_ATTRIBUTE((unused))) +{ + if (s >= e) + return MY_CS_TOOSMALL; + + if (wc < 256) + { + s[0]= (char) wc; + return 1; + } + return MY_CS_ILUNI; +} + + +void my_hash_sort_8bit_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *key, size_t len, + ulong *nr1, ulong *nr2) +{ + const uchar *pos = key; + ulong tmp1; + ulong tmp2; + + /* + Remove trailing spaces. We have to do this to be able to compare + 'A ' and 'A' as identical + */ + key= skip_trailing_space(key, len); + + tmp1= *nr1; + tmp2= *nr2; + + for (; pos < (uchar*) key ; pos++) + { + tmp1^=(ulong) ((((uint) tmp1 & 63) + tmp2) * + ((uint)*pos)) + (tmp1 << 8); + tmp2+=3; + } + + *nr1= tmp1; + *nr2= tmp2; +} + + +void my_hash_sort_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *key, size_t len,ulong *nr1, ulong *nr2) +{ + const uchar *pos = key; + ulong tmp1; + ulong tmp2; + + key+= len; + + tmp1= *nr1; + tmp2= *nr2; + + for (; pos < (uchar*) key ; pos++) + { + tmp1^=(ulong) ((((uint) tmp1 & 63) + tmp2) * + ((uint)*pos)) + (tmp1 << 8); + tmp2+=3; + } + + *nr1= tmp1; + *nr2= tmp2; +} + + +/* + The following defines is here to keep the following code identical to + the one in ctype-simple.c +*/ + +#define likeconv(s,A) (A) +#define INC_PTR(cs,A,B) (A)++ + + +static +int my_wildcmp_bin_impl(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + while (wildstr != wildend) + { + while (*wildstr != w_many && *wildstr != w_one) + { + if (*wildstr == escape && wildstr+1 != wildend) + wildstr++; + if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++)) + return(1); /* No match */ + if (wildstr == wildend) + return(str != str_end); /* Match if both are at end */ + result=1; /* Found an anchor char */ + } + if (*wildstr == w_one) + { + do + { + if (str == str_end) /* Skip one char if possible */ + return(result); + INC_PTR(cs,str,str_end); + } while (++wildstr < wildend && *wildstr == w_one); + if (wildstr == wildend) + break; + } + if (*wildstr == w_many) + { /* Found w_many */ + uchar cmp; + wildstr++; + /* Remove any '%' and '_' from the wild search string */ + for (; wildstr != wildend ; wildstr++) + { + if (*wildstr == w_many) + continue; + if (*wildstr == w_one) + { + if (str == str_end) + return(-1); + INC_PTR(cs,str,str_end); + continue; + } + break; /* Not a wild character */ + } + if (wildstr == wildend) + return(0); /* match if w_many is last */ + if (str == str_end) + return(-1); + + if ((cmp= *wildstr) == escape && wildstr+1 != wildend) + cmp= *++wildstr; + + INC_PTR(cs,wildstr,wildend); /* This is compared through cmp */ + cmp=likeconv(cs,cmp); + do + { + while (str != str_end && (uchar) likeconv(cs,*str) != cmp) + str++; + if (str++ == str_end) + return(-1); + { + int tmp=my_wildcmp_bin_impl(cs,str,str_end, + wildstr,wildend,escape, + w_one, w_many, recurse_level + 1); + if (tmp <= 0) + return(tmp); + } + } while (str != str_end && wildstr[0] != w_many); + return(-1); + } + } + return(str != str_end ? 1 : 0); +} + +int my_wildcmp_bin(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_bin_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + + +static size_t +my_strnxfrm_8bit_bin(const CHARSET_INFO *cs, + uchar * dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + set_if_smaller(srclen, dstlen); + set_if_smaller(srclen, nweights); + if (dst != src) + memcpy(dst, src, srclen); + return my_strxfrm_pad_desc_and_reverse(cs, dst, dst + srclen, dst + dstlen, + (uint)(nweights - srclen), flags, 0); +} + + +static +uint my_instr_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch) +{ + const uchar *str, *search, *end, *search_end; + + if (s_length <= b_length) + { + if (!s_length) + { + if (nmatch) + { + match->beg= 0; + match->end= 0; + match->mb_len= 0; + } + return 1; /* Empty string is always found */ + } + + str= (const uchar*) b; + search= (const uchar*) s; + end= (const uchar*) b+b_length-s_length+1; + search_end= (const uchar*) s + s_length; + +skip: + while (str != end) + { + if ( (*str++) == (*search)) + { + const uchar *i,*j; + + i= str; + j= search+1; + + while (j != search_end) + if ((*i++) != (*j++)) + goto skip; + + if (nmatch > 0) + { + match[0].beg= 0; + match[0].end= (uint) (str- (const uchar*)b-1); + match[0].mb_len= match[0].end; + + if (nmatch > 1) + { + match[1].beg= match[0].end; + match[1].end= (uint)(match[0].end + s_length); + match[1].mb_len= match[1].end-match[1].beg; + } + } + return 2; + } + } + } + return 0; +} + + +MY_COLLATION_HANDLER my_collation_8bit_bin_handler = +{ + my_coll_init_8bit_bin, + my_strnncoll_8bit_bin, + my_strnncollsp_8bit_bin, + my_strnxfrm_8bit_bin, + my_strnxfrmlen_simple, + my_like_range_simple, + my_wildcmp_bin, + my_strcasecmp_bin, + my_instr_bin, + my_hash_sort_8bit_bin, + my_propagate_simple +}; + + +static MY_COLLATION_HANDLER my_collation_binary_handler = +{ + NULL, /* init */ + my_strnncoll_binary, + my_strnncollsp_binary, + my_strnxfrm_8bit_bin, + my_strnxfrmlen_simple, + my_like_range_simple, + my_wildcmp_bin, + my_strcasecmp_bin, + my_instr_bin, + my_hash_sort_bin, + my_propagate_simple +}; + + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + NULL, /* ismbchar */ + my_mbcharlen_8bit, /* mbcharlen */ + my_numchars_8bit, + my_charpos_8bit, + my_well_formed_len_8bit, + my_lengthsp_binary, + my_numcells_8bit, + my_mb_wc_bin, + my_wc_mb_bin, + my_mb_ctype_8bit, + my_case_str_bin, + my_case_str_bin, + my_case_bin, + my_case_bin, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_bin = +{ + 63,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY,/* state */ + "binary", /* cs name */ + "binary", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_bin, /* ctype */ + bin_char_array, /* to_lower */ + bin_char_array, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + 0, /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_binary_handler +}; diff --git a/mysql/strings/ctype-cp932.c b/mysql/strings/ctype-cp932.c new file mode 100644 index 0000000..44645dd --- /dev/null +++ b/mysql/strings/ctype-cp932.c @@ -0,0 +1,34878 @@ +/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for cp932 charaset (Windows Japanese), + and created based on ctype-sjis.c file */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_cp932 + + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_cp932=1 + * .configure. mbmaxlen_cp932=2 + */ + +static const uchar ctype_cp932[257] = +{ + 0, /* For standard library */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */ + 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */ + 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */ + 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */ + 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */ + 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */ + 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */ + 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */ + 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0000, 0000, 0000 +}; + +static const uchar to_lower_cp932[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar to_upper_cp932[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar sort_order_cp932[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +#define iscp932head(c) ((0x81<=(c) && (c)<=0x9f) || \ + ((0xe0<=(c)) && (c)<=0xfc)) +#define iscp932tail(c) ((0x40<=(c) && (c)<=0x7e) || \ + (0x80<=(c) && (c)<=0xfc)) + + +static uint ismbchar_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return (iscp932head((uchar) *p) && (e-p)>1 && iscp932tail((uchar)p[1]) ? 2: 0); +} + +static uint mbcharlen_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (iscp932head((uchar) c) ? 2 : 1); +} + + +#define cp932code(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d)) + + +static const MY_UNICASE_CHARACTER c81[256]= +{ + /* 8100-810F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8110-811F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8120-812F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8130-813F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8140,0x8140,0x3000}, /* 8140-814F */ + {0x8141,0x8141,0x3001}, + {0x8142,0x8142,0x3002}, + {0x8143,0x8143,0xFF0C}, + {0x8144,0x8144,0xFF0E}, + {0x8145,0x8145,0x30FB}, + {0x8146,0x8146,0xFF1A}, + {0x8147,0x8147,0xFF1B}, + {0x8148,0x8148,0xFF1F}, + {0x8149,0x8149,0xFF01}, + {0x814A,0x814A,0x309B}, + {0x814B,0x814B,0x309C}, + {0x814C,0x814C,0x00B4}, + {0x814D,0x814D,0xFF40}, + {0x814E,0x814E,0x00A8}, + {0x814F,0x814F,0xFF3E}, + {0x8150,0x8150,0xFFE3}, /* 8150-815F */ + {0x8151,0x8151,0xFF3F}, + {0x8152,0x8152,0x30FD}, + {0x8153,0x8153,0x30FE}, + {0x8154,0x8154,0x309D}, + {0x8155,0x8155,0x309E}, + {0x8156,0x8156,0x3003}, + {0x8157,0x8157,0x4EDD}, + {0x8158,0x8158,0x3005}, + {0x8159,0x8159,0x3006}, + {0x815A,0x815A,0x3007}, + {0x815B,0x815B,0x30FC}, + {0x815C,0x815C,0x2015}, + {0x815D,0x815D,0x2010}, + {0x815E,0x815E,0xFF0F}, + {0x815F,0x815F,0xFF3C}, + {0x8160,0x8160,0xFF5E}, /* 8160-816F */ + {0x8161,0x8161,0x2225}, + {0x8162,0x8162,0xFF5C}, + {0x8163,0x8163,0x2026}, + {0x8164,0x8164,0x2025}, + {0x8165,0x8165,0x2018}, + {0x8166,0x8166,0x2019}, + {0x8167,0x8167,0x201C}, + {0x8168,0x8168,0x201D}, + {0x8169,0x8169,0xFF08}, + {0x816A,0x816A,0xFF09}, + {0x816B,0x816B,0x3014}, + {0x816C,0x816C,0x3015}, + {0x816D,0x816D,0xFF3B}, + {0x816E,0x816E,0xFF3D}, + {0x816F,0x816F,0xFF5B}, + {0x8170,0x8170,0xFF5D}, /* 8170-817F */ + {0x8171,0x8171,0x3008}, + {0x8172,0x8172,0x3009}, + {0x8173,0x8173,0x300A}, + {0x8174,0x8174,0x300B}, + {0x8175,0x8175,0x300C}, + {0x8176,0x8176,0x300D}, + {0x8177,0x8177,0x300E}, + {0x8178,0x8178,0x300F}, + {0x8179,0x8179,0x3010}, + {0x817A,0x817A,0x3011}, + {0x817B,0x817B,0xFF0B}, + {0x817C,0x817C,0xFF0D}, + {0x817D,0x817D,0x00B1}, + {0x817E,0x817E,0x00D7}, + {0,0,0}, + {0x8180,0x8180,0x00F7}, /* 8180-818F */ + {0x8181,0x8181,0xFF1D}, + {0x8182,0x8182,0x2260}, + {0x8183,0x8183,0xFF1C}, + {0x8184,0x8184,0xFF1E}, + {0x8185,0x8185,0x2266}, + {0x8186,0x8186,0x2267}, + {0x8187,0x8187,0x221E}, + {0x8188,0x8188,0x2234}, + {0x8189,0x8189,0x2642}, + {0x818A,0x818A,0x2640}, + {0x818B,0x818B,0x00B0}, + {0x818C,0x818C,0x2032}, + {0x818D,0x818D,0x2033}, + {0x818E,0x818E,0x2103}, + {0x818F,0x818F,0xFFE5}, + {0x8190,0x8190,0xFF04}, /* 8190-819F*/ + {0x8191,0x8191,0xFFE0}, + {0x8192,0x8192,0xFFE1}, + {0x8193,0x8193,0xFF05}, + {0x8194,0x8194,0xFF03}, + {0x8195,0x8195,0xFF06}, + {0x8196,0x8196,0xFF0A}, + {0x8197,0x8197,0xFF20}, + {0x8198,0x8198,0x00A7}, + {0x8199,0x8199,0x2606}, + {0x819A,0x819A,0x2605}, + {0x819B,0x819B,0x25CB}, + {0x819C,0x819C,0x25CF}, + {0x819D,0x819D,0x25CE}, + {0x819E,0x819E,0x25C7}, + {0x819F,0x819F,0x25C6}, + {0x81A0,0x81A0,0x25A1}, /* 81A0-81AF */ + {0x81A1,0x81A1,0x25A0}, + {0x81A2,0x81A2,0x25B3}, + {0x81A3,0x81A3,0x25B2}, + {0x81A4,0x81A4,0x25BD}, + {0x81A5,0x81A5,0x25BC}, + {0x81A6,0x81A6,0x203B}, + {0x81A7,0x81A7,0x3012}, + {0x81A8,0x81A8,0x2192}, + {0x81A9,0x81A9,0x2190}, + {0x81AA,0x81AA,0x2191}, + {0x81AB,0x81AB,0x2193}, + {0x81AC,0x81AC,0x3013}, + {0x81AD,0x81AD,0x003F}, + {0x81AE,0x81AE,0x003F}, + {0x81AF,0x81AF,0x003F}, + {0x81B0,0x81B0,0x003F}, /* 81B0-81BF */ + {0x81B1,0x81B1,0x003F}, + {0x81B2,0x81B2,0x003F}, + {0x81B3,0x81B3,0x003F}, + {0x81B4,0x81B4,0x003F}, + {0x81B5,0x81B5,0x003F}, + {0x81B6,0x81B6,0x003F}, + {0x81B7,0x81B7,0x003F}, + {0x81B8,0x81B8,0x2208}, + {0x81B9,0x81B9,0x220B}, + {0x81BA,0x81BA,0x2286}, + {0x81BB,0x81BB,0x2287}, + {0x81BC,0x81BC,0x2282}, + {0x81BD,0x81BD,0x2283}, + {0x81BE,0x81BE,0x222A}, + {0x81BF,0x81BF,0x2229}, + {0x81C0,0x81C0,0x003F}, /* 81C0-81CF */ + {0x81C1,0x81C1,0x003F}, + {0x81C2,0x81C2,0x003F}, + {0x81C3,0x81C3,0x003F}, + {0x81C4,0x81C4,0x003F}, + {0x81C5,0x81C5,0x003F}, + {0x81C6,0x81C6,0x003F}, + {0x81C7,0x81C7,0x003F}, + {0x81C8,0x81C8,0x2227}, + {0x81C9,0x81C9,0x2228}, + {0x81CA,0x81CA,0xFFE2}, + {0x81CB,0x81CB,0x21D2}, + {0x81CC,0x81CC,0x21D4}, + {0x81CD,0x81CD,0x2200}, + {0x81CE,0x81CE,0x2203}, + {0x81CF,0x81CF,0x003F}, + {0x81D0,0x81D0,0x003F}, /* 81D0-81DF */ + {0x81D1,0x81D1,0x003F}, + {0x81D2,0x81D2,0x003F}, + {0x81D3,0x81D3,0x003F}, + {0x81D4,0x81D4,0x003F}, + {0x81D5,0x81D5,0x003F}, + {0x81D6,0x81D6,0x003F}, + {0x81D7,0x81D7,0x003F}, + {0x81D8,0x81D8,0x003F}, + {0x81D9,0x81D9,0x003F}, + {0x81DA,0x81DA,0x2220}, + {0x81DB,0x81DB,0x22A5}, + {0x81DC,0x81DC,0x2312}, + {0x81DD,0x81DD,0x2202}, + {0x81DE,0x81DE,0x2207}, + {0x81DF,0x81DF,0x2261}, + {0x81E0,0x81E0,0x2252}, /* 81E0-81EF */ + {0x81E1,0x81E1,0x226A}, + {0x81E2,0x81E2,0x226B}, + {0x81E3,0x81E3,0x221A}, + {0x81E4,0x81E4,0x223D}, + {0x81E5,0x81E5,0x221D}, + {0x81E6,0x81E6,0x2235}, + {0x81E7,0x81E7,0x222B}, + {0x81E8,0x81E8,0x222C}, + {0x81E9,0x81E9,0x003F}, + {0x81EA,0x81EA,0x003F}, + {0x81EB,0x81EB,0x003F}, + {0x81EC,0x81EC,0x003F}, + {0x81ED,0x81ED,0x003F}, + {0x81EE,0x81EE,0x003F}, + {0x81EF,0x81EF,0x003F}, + {0x81F0,0x81F0,0x212B}, /* 81F0-81FF */ + {0x81F1,0x81F1,0x2030}, + {0x81F2,0x81F2,0x266F}, + {0x81F3,0x81F3,0x266D}, + {0x81F4,0x81F4,0x266A}, + {0x81F5,0x81F5,0x2020}, + {0x81F6,0x81F6,0x2021}, + {0x81F7,0x81F7,0x00B6}, + {0x81F8,0x81F8,0x003F}, + {0x81F9,0x81F9,0x003F}, + {0x81FA,0x81FA,0x003F}, + {0x81FB,0x81FB,0x003F}, + {0x81FC,0x81FC,0x25EF}, + {0,0,0}, + {0,0,0}, + {0,0,0}, +}; + + +static const MY_UNICASE_CHARACTER c82[256]= +{ + /* 8200-820F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8210-821F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8220-822F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8230-823F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8240,0x8240,0x003F}, /* 8240-824F */ + {0x8241,0x8241,0x003F}, + {0x8242,0x8242,0x003F}, + {0x8243,0x8243,0x003F}, + {0x8244,0x8244,0x003F}, + {0x8245,0x8245,0x003F}, + {0x8246,0x8246,0x003F}, + {0x8247,0x8247,0x003F}, + {0x8248,0x8248,0x003F}, + {0x8249,0x8249,0x003F}, + {0x824A,0x824A,0x003F}, + {0x824B,0x824B,0x003F}, + {0x824C,0x824C,0x003F}, + {0x824D,0x824D,0x003F}, + {0x824E,0x824E,0x003F}, + {0x824F,0x824F,0xFF10}, + {0x8250,0x8250,0xFF11}, /* 8250-825F */ + {0x8251,0x8251,0xFF12}, + {0x8252,0x8252,0xFF13}, + {0x8253,0x8253,0xFF14}, + {0x8254,0x8254,0xFF15}, + {0x8255,0x8255,0xFF16}, + {0x8256,0x8256,0xFF17}, + {0x8257,0x8257,0xFF18}, + {0x8258,0x8258,0xFF19}, + {0x8259,0x8259,0x003F}, + {0x825A,0x825A,0x003F}, + {0x825B,0x825B,0x003F}, + {0x825C,0x825C,0x003F}, + {0x825D,0x825D,0x003F}, + {0x825E,0x825E,0x003F}, + {0x825F,0x825F,0x003F}, + {0x8260,0x8281,0xFF21}, /* 8260-826F */ + {0x8261,0x8282,0xFF22}, + {0x8262,0x8283,0xFF23}, + {0x8263,0x8284,0xFF24}, + {0x8264,0x8285,0xFF25}, + {0x8265,0x8286,0xFF26}, + {0x8266,0x8287,0xFF27}, + {0x8267,0x8288,0xFF28}, + {0x8268,0x8289,0xFF29}, + {0x8269,0x828A,0xFF2A}, + {0x826A,0x828B,0xFF2B}, + {0x826B,0x828C,0xFF2C}, + {0x826C,0x828D,0xFF2D}, + {0x826D,0x828E,0xFF2E}, + {0x826E,0x828F,0xFF2F}, + {0x826F,0x8290,0xFF30}, + {0x8270,0x8291,0xFF31}, /* 8270-827F */ + {0x8271,0x8292,0xFF32}, + {0x8272,0x8293,0xFF33}, + {0x8273,0x8294,0xFF34}, + {0x8274,0x8295,0xFF35}, + {0x8275,0x8296,0xFF36}, + {0x8276,0x8297,0xFF37}, + {0x8277,0x8298,0xFF38}, + {0x8278,0x8299,0xFF39}, + {0x8279,0x829A,0xFF3A}, + {0x827A,0x827A,0x003F}, + {0x827B,0x827B,0x003F}, + {0x827C,0x827C,0x003F}, + {0x827D,0x827D,0x003F}, + {0x827E,0x827E,0x003F}, + {0,0,0}, + {0x8280,0x8280,0x003F}, /* 8280-828F */ + {0x8260,0x8281,0xFF41}, + {0x8261,0x8282,0xFF42}, + {0x8262,0x8283,0xFF43}, + {0x8263,0x8284,0xFF44}, + {0x8264,0x8285,0xFF45}, + {0x8265,0x8286,0xFF46}, + {0x8266,0x8287,0xFF47}, + {0x8267,0x8288,0xFF48}, + {0x8268,0x8289,0xFF49}, + {0x8269,0x828A,0xFF4A}, + {0x826A,0x828B,0xFF4B}, + {0x826B,0x828C,0xFF4C}, + {0x826C,0x828D,0xFF4D}, + {0x826D,0x828E,0xFF4E}, + {0x826E,0x828F,0xFF4F}, + {0x826F,0x8290,0xFF50}, /* 8290-829F */ + {0x8270,0x8291,0xFF51}, + {0x8271,0x8292,0xFF52}, + {0x8272,0x8293,0xFF53}, + {0x8273,0x8294,0xFF54}, + {0x8274,0x8295,0xFF55}, + {0x8275,0x8296,0xFF56}, + {0x8276,0x8297,0xFF57}, + {0x8277,0x8298,0xFF58}, + {0x8278,0x8299,0xFF59}, + {0x8279,0x829A,0xFF5A}, + {0x829B,0x829B,0x003F}, + {0x829C,0x829C,0x003F}, + {0x829D,0x829D,0x003F}, + {0x829E,0x829E,0x003F}, + {0x829F,0x829F,0x3041}, + {0x82A0,0x82A0,0x3042}, /* 82A0-82AF */ + {0x82A1,0x82A1,0x3043}, + {0x82A2,0x82A2,0x3044}, + {0x82A3,0x82A3,0x3045}, + {0x82A4,0x82A4,0x3046}, + {0x82A5,0x82A5,0x3047}, + {0x82A6,0x82A6,0x3048}, + {0x82A7,0x82A7,0x3049}, + {0x82A8,0x82A8,0x304A}, + {0x82A9,0x82A9,0x304B}, + {0x82AA,0x82AA,0x304C}, + {0x82AB,0x82AB,0x304D}, + {0x82AC,0x82AC,0x304E}, + {0x82AD,0x82AD,0x304F}, + {0x82AE,0x82AE,0x3050}, + {0x82AF,0x82AF,0x3051}, + {0x82B0,0x82B0,0x3052}, /* 82B0-82BF */ + {0x82B1,0x82B1,0x3053}, + {0x82B2,0x82B2,0x3054}, + {0x82B3,0x82B3,0x3055}, + {0x82B4,0x82B4,0x3056}, + {0x82B5,0x82B5,0x3057}, + {0x82B6,0x82B6,0x3058}, + {0x82B7,0x82B7,0x3059}, + {0x82B8,0x82B8,0x305A}, + {0x82B9,0x82B9,0x305B}, + {0x82BA,0x82BA,0x305C}, + {0x82BB,0x82BB,0x305D}, + {0x82BC,0x82BC,0x305E}, + {0x82BD,0x82BD,0x305F}, + {0x82BE,0x82BE,0x3060}, + {0x82BF,0x82BF,0x3061}, + {0x82C0,0x82C0,0x3062}, /* 82C0-82CF */ + {0x82C1,0x82C1,0x3063}, + {0x82C2,0x82C2,0x3064}, + {0x82C3,0x82C3,0x3065}, + {0x82C4,0x82C4,0x3066}, + {0x82C5,0x82C5,0x3067}, + {0x82C6,0x82C6,0x3068}, + {0x82C7,0x82C7,0x3069}, + {0x82C8,0x82C8,0x306A}, + {0x82C9,0x82C9,0x306B}, + {0x82CA,0x82CA,0x306C}, + {0x82CB,0x82CB,0x306D}, + {0x82CC,0x82CC,0x306E}, + {0x82CD,0x82CD,0x306F}, + {0x82CE,0x82CE,0x3070}, + {0x82CF,0x82CF,0x3071}, + {0x82D0,0x82D0,0x3072}, /* 82D0-82DF */ + {0x82D1,0x82D1,0x3073}, + {0x82D2,0x82D2,0x3074}, + {0x82D3,0x82D3,0x3075}, + {0x82D4,0x82D4,0x3076}, + {0x82D5,0x82D5,0x3077}, + {0x82D6,0x82D6,0x3078}, + {0x82D7,0x82D7,0x3079}, + {0x82D8,0x82D8,0x307A}, + {0x82D9,0x82D9,0x307B}, + {0x82DA,0x82DA,0x307C}, + {0x82DB,0x82DB,0x307D}, + {0x82DC,0x82DC,0x307E}, + {0x82DD,0x82DD,0x307F}, + {0x82DE,0x82DE,0x3080}, + {0x82DF,0x82DF,0x3081}, + {0x82E0,0x82E0,0x3082}, /* 82E0-82EF */ + {0x82E1,0x82E1,0x3083}, + {0x82E2,0x82E2,0x3084}, + {0x82E3,0x82E3,0x3085}, + {0x82E4,0x82E4,0x3086}, + {0x82E5,0x82E5,0x3087}, + {0x82E6,0x82E6,0x3088}, + {0x82E7,0x82E7,0x3089}, + {0x82E8,0x82E8,0x308A}, + {0x82E9,0x82E9,0x308B}, + {0x82EA,0x82EA,0x308C}, + {0x82EB,0x82EB,0x308D}, + {0x82EC,0x82EC,0x308E}, + {0x82ED,0x82ED,0x308F}, + {0x82EE,0x82EE,0x3090}, + {0x82EF,0x82EF,0x3091}, + {0x82F0,0x82F0,0x3092}, /* 82F0-82FF */ + {0x82F1,0x82F1,0x3093}, + {0x82F2,0x82F2,0x003F}, + {0x82F3,0x82F3,0x003F}, + {0x82F4,0x82F4,0x003F}, + {0x82F5,0x82F5,0x003F}, + {0x82F6,0x82F6,0x003F}, + {0x82F7,0x82F7,0x003F}, + {0x82F8,0x82F8,0x003F}, + {0x82F9,0x82F9,0x003F}, + {0x82FA,0x82FA,0x003F}, + {0x82FB,0x82FB,0x003F}, + {0x82FC,0x82FC,0x003F}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER c83[256]= +{ + /* 8300-830F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8310-831F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8320-832F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8330-833F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8340,0x8340,0x30A1}, /* 8340 */ + {0x8341,0x8341,0x30A2}, + {0x8342,0x8342,0x30A3}, + {0x8343,0x8343,0x30A4}, + {0x8344,0x8344,0x30A5}, + {0x8345,0x8345,0x30A6}, + {0x8346,0x8346,0x30A7}, + {0x8347,0x8347,0x30A8}, + {0x8348,0x8348,0x30A9}, + {0x8349,0x8349,0x30AA}, + {0x834A,0x834A,0x30AB}, + {0x834B,0x834B,0x30AC}, + {0x834C,0x834C,0x30AD}, + {0x834D,0x834D,0x30AE}, + {0x834E,0x834E,0x30AF}, + {0x834F,0x834F,0x30B0}, + {0x8350,0x8350,0x30B1}, /* 8350 */ + {0x8351,0x8351,0x30B2}, + {0x8352,0x8352,0x30B3}, + {0x8353,0x8353,0x30B4}, + {0x8354,0x8354,0x30B5}, + {0x8355,0x8355,0x30B6}, + {0x8356,0x8356,0x30B7}, + {0x8357,0x8357,0x30B8}, + {0x8358,0x8358,0x30B9}, + {0x8359,0x8359,0x30BA}, + {0x835A,0x835A,0x30BB}, + {0x835B,0x835B,0x30BC}, + {0x835C,0x835C,0x30BD}, + {0x835D,0x835D,0x30BE}, + {0x835E,0x835E,0x30BF}, + {0x835F,0x835F,0x30C0}, + {0x8360,0x8360,0x30C1}, /* 8360 */ + {0x8361,0x8361,0x30C2}, + {0x8362,0x8362,0x30C3}, + {0x8363,0x8363,0x30C4}, + {0x8364,0x8364,0x30C5}, + {0x8365,0x8365,0x30C6}, + {0x8366,0x8366,0x30C7}, + {0x8367,0x8367,0x30C8}, + {0x8368,0x8368,0x30C9}, + {0x8369,0x8369,0x30CA}, + {0x836A,0x836A,0x30CB}, + {0x836B,0x836B,0x30CC}, + {0x836C,0x836C,0x30CD}, + {0x836D,0x836D,0x30CE}, + {0x836E,0x836E,0x30CF}, + {0x836F,0x836F,0x30D0}, + {0x8370,0x8370,0x30D1}, /* 8370 */ + {0x8371,0x8371,0x30D2}, + {0x8372,0x8372,0x30D3}, + {0x8373,0x8373,0x30D4}, + {0x8374,0x8374,0x30D5}, + {0x8375,0x8375,0x30D6}, + {0x8376,0x8376,0x30D7}, + {0x8377,0x8377,0x30D8}, + {0x8378,0x8378,0x30D9}, + {0x8379,0x8379,0x30DA}, + {0x837A,0x837A,0x30DB}, + {0x837B,0x837B,0x30DC}, + {0x837C,0x837C,0x30DD}, + {0x837D,0x837D,0x30DE}, + {0x837E,0x837E,0x30DF}, + {0,0,0}, + {0x8380,0x8380,0x30E0}, /* 8380 */ + {0x8381,0x8381,0x30E1}, + {0x8382,0x8382,0x30E2}, + {0x8383,0x8383,0x30E3}, + {0x8384,0x8384,0x30E4}, + {0x8385,0x8385,0x30E5}, + {0x8386,0x8386,0x30E6}, + {0x8387,0x8387,0x30E7}, + {0x8388,0x8388,0x30E8}, + {0x8389,0x8389,0x30E9}, + {0x838A,0x838A,0x30EA}, + {0x838B,0x838B,0x30EB}, + {0x838C,0x838C,0x30EC}, + {0x838D,0x838D,0x30ED}, + {0x838E,0x838E,0x30EE}, + {0x838F,0x838F,0x30EF}, + {0x8390,0x8390,0x30F0}, /* 8390 */ + {0x8391,0x8391,0x30F1}, + {0x8392,0x8392,0x30F2}, + {0x8393,0x8393,0x30F3}, + {0x8394,0x8394,0x30F4}, + {0x8395,0x8395,0x30F5}, + {0x8396,0x8396,0x30F6}, + {0x8397,0x8397,0x003F}, + {0x8398,0x8398,0x003F}, + {0x8399,0x8399,0x003F}, + {0x839A,0x839A,0x003F}, + {0x839B,0x839B,0x003F}, + {0x839C,0x839C,0x003F}, + {0x839D,0x839D,0x003F}, + {0x839E,0x839E,0x003F}, + {0x839F,0x83BF,0x0391}, + {0x83A0,0x83C0,0x0392}, /* 83A0 */ + {0x83A1,0x83C1,0x0393}, + {0x83A2,0x83C2,0x0394}, + {0x83A3,0x83C3,0x0395}, + {0x83A4,0x83C4,0x0396}, + {0x83A5,0x83C5,0x0397}, + {0x83A6,0x83C6,0x0398}, + {0x83A7,0x83C7,0x0399}, + {0x83A8,0x83C8,0x039A}, + {0x83A9,0x83C9,0x039B}, + {0x83AA,0x83CA,0x039C}, + {0x83AB,0x83CB,0x039D}, + {0x83AC,0x83CC,0x039E}, + {0x83AD,0x83CD,0x039F}, + {0x83AE,0x83CE,0x03A0}, + {0x83AF,0x83CF,0x03A1}, + {0x83B0,0x83D0,0x03A3}, /* 83B0 */ + {0x83B1,0x83D1,0x03A4}, + {0x83B2,0x83D2,0x03A5}, + {0x83B3,0x83D3,0x03A6}, + {0x83B4,0x83D4,0x03A7}, + {0x83B5,0x83D5,0x03A8}, + {0x83B6,0x83D6,0x03A9}, + {0x83B7,0x83B7,0x003F}, + {0x83B8,0x83B8,0x003F}, + {0x83B9,0x83B9,0x003F}, + {0x83BA,0x83BA,0x003F}, + {0x83BB,0x83BB,0x003F}, + {0x83BC,0x83BC,0x003F}, + {0x83BD,0x83BD,0x003F}, + {0x83BE,0x83BE,0x003F}, + {0x839F,0x83BF,0x03B1}, + {0x83A0,0x83C0,0x03B2}, /* 83C0 */ + {0x83A1,0x83C1,0x03B3}, + {0x83A2,0x83C2,0x03B4}, + {0x83A3,0x83C3,0x03B5}, + {0x83A4,0x83C4,0x03B6}, + {0x83A5,0x83C5,0x03B7}, + {0x83A6,0x83C6,0x03B8}, + {0x83A7,0x83C7,0x03B9}, + {0x83A8,0x83C8,0x03BA}, + {0x83A9,0x83C9,0x03BB}, + {0x83AA,0x83CA,0x03BC}, + {0x83AB,0x83CB,0x03BD}, + {0x83AC,0x83CC,0x03BE}, + {0x83AD,0x83CD,0x03BF}, + {0x83AE,0x83CE,0x03C0}, + {0x83AF,0x83CF,0x03C1}, + {0x83B0,0x83D0,0x03C3}, /* 83D0 */ + {0x83B1,0x83D1,0x03C4}, + {0x83B2,0x83D2,0x03C5}, + {0x83B3,0x83D3,0x03C6}, + {0x83B4,0x83D4,0x03C7}, + {0x83B5,0x83D5,0x03C8}, + {0x83B6,0x83D6,0x03C9}, + {0x83D7,0x83D7,0x003F}, + {0x83D8,0x83D8,0x003F}, + {0x83D9,0x83D9,0x003F}, + {0x83DA,0x83DA,0x003F}, + {0x83DB,0x83DB,0x003F}, + {0x83DC,0x83DC,0x003F}, + {0x83DD,0x83DD,0x003F}, + {0x83DE,0x83DE,0x003F}, + {0x83DF,0x83DF,0x003F}, + {0x83E0,0x83E0,0x003F}, /* 83E0 */ + {0x83E1,0x83E1,0x003F}, + {0x83E2,0x83E2,0x003F}, + {0x83E3,0x83E3,0x003F}, + {0x83E4,0x83E4,0x003F}, + {0x83E5,0x83E5,0x003F}, + {0x83E6,0x83E6,0x003F}, + {0x83E7,0x83E7,0x003F}, + {0x83E8,0x83E8,0x003F}, + {0x83E9,0x83E9,0x003F}, + {0x83EA,0x83EA,0x003F}, + {0x83EB,0x83EB,0x003F}, + {0x83EC,0x83EC,0x003F}, + {0x83ED,0x83ED,0x003F}, + {0x83EE,0x83EE,0x003F}, + {0x83EF,0x83EF,0x003F}, + {0x83F0,0x83F0,0x003F}, /* 83F0 */ + {0x83F1,0x83F1,0x003F}, + {0x83F2,0x83F2,0x003F}, + {0x83F3,0x83F3,0x003F}, + {0x83F4,0x83F4,0x003F}, + {0x83F5,0x83F5,0x003F}, + {0x83F6,0x83F6,0x003F}, + {0x83F7,0x83F7,0x003F}, + {0x83F8,0x83F8,0x003F}, + {0x83F9,0x83F9,0x003F}, + {0x83FA,0x83FA,0x003F}, + {0x83FB,0x83FB,0x003F}, + {0x83FC,0x83FC,0x003F}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER c84[256]= +{ + /* 8400-840F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8410-841F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8420-842F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8430-843F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8440,0x8470,0x0410}, /* 8440 */ + {0x8441,0x8471,0x0411}, + {0x8442,0x8472,0x0412}, + {0x8443,0x8473,0x0413}, + {0x8444,0x8474,0x0414}, + {0x8445,0x8475,0x0415}, + {0x8446,0x8476,0x0401}, + {0x8447,0x8477,0x0416}, + {0x8448,0x8478,0x0417}, + {0x8449,0x8479,0x0418}, + {0x844A,0x847A,0x0419}, + {0x844B,0x847B,0x041A}, + {0x844C,0x847C,0x041B}, + {0x844D,0x847D,0x041C}, + {0x844E,0x847E,0x041D}, + {0x844F,0x8480,0x041E}, + {0x8450,0x8481,0x041F}, /* 8450 */ + {0x8451,0x8482,0x0420}, + {0x8452,0x8483,0x0421}, + {0x8453,0x8484,0x0422}, + {0x8454,0x8485,0x0423}, + {0x8455,0x8486,0x0424}, + {0x8456,0x8487,0x0425}, + {0x8457,0x8488,0x0426}, + {0x8458,0x8489,0x0427}, + {0x8459,0x848A,0x0428}, + {0x845A,0x848B,0x0429}, + {0x845B,0x848C,0x042A}, + {0x845C,0x848D,0x042B}, + {0x845D,0x848E,0x042C}, + {0x845E,0x848F,0x042D}, + {0x845F,0x8490,0x042E}, + {0x8460,0x8491,0x042F}, /* 8460 */ + {0x8461,0x8461,0x003F}, + {0x8462,0x8462,0x003F}, + {0x8463,0x8463,0x003F}, + {0x8464,0x8464,0x003F}, + {0x8465,0x8465,0x003F}, + {0x8466,0x8466,0x003F}, + {0x8467,0x8467,0x003F}, + {0x8468,0x8468,0x003F}, + {0x8469,0x8469,0x003F}, + {0x846A,0x846A,0x003F}, + {0x846B,0x846B,0x003F}, + {0x846C,0x846C,0x003F}, + {0x846D,0x846D,0x003F}, + {0x846E,0x846E,0x003F}, + {0x846F,0x846F,0x003F}, + {0x8440,0x8470,0x0430}, /* 8470 */ + {0x8441,0x8471,0x0431}, + {0x8442,0x8472,0x0432}, + {0x8443,0x8473,0x0433}, + {0x8444,0x8474,0x0434}, + {0x8445,0x8475,0x0435}, + {0x8446,0x8476,0x0451}, + {0x8447,0x8477,0x0436}, + {0x8448,0x8478,0x0437}, + {0x8449,0x8479,0x0438}, + {0x844A,0x847A,0x0439}, + {0x844B,0x847B,0x043A}, + {0x844C,0x847C,0x043B}, + {0x844D,0x847D,0x043C}, + {0x844E,0x847E,0x043D}, + {0,0,0}, + {0x844F,0x8480,0x043E}, /* 8480 */ + {0x8450,0x8481,0x043F}, + {0x8451,0x8482,0x0440}, + {0x8452,0x8483,0x0441}, + {0x8453,0x8484,0x0442}, + {0x8454,0x8485,0x0443}, + {0x8455,0x8486,0x0444}, + {0x8456,0x8487,0x0445}, + {0x8457,0x8488,0x0446}, + {0x8458,0x8489,0x0447}, + {0x8459,0x848A,0x0448}, + {0x845A,0x848B,0x0449}, + {0x845B,0x848C,0x044A}, + {0x845C,0x848D,0x044B}, + {0x845D,0x848E,0x044C}, + {0x845E,0x848F,0x044D}, + {0x845F,0x8490,0x044E}, /* 8490 */ + {0x8460,0x8491,0x044F}, + {0x8492,0x8492,0x003F}, + {0x8493,0x8493,0x003F}, + {0x8494,0x8494,0x003F}, + {0x8495,0x8495,0x003F}, + {0x8496,0x8496,0x003F}, + {0x8497,0x8497,0x003F}, + {0x8498,0x8498,0x003F}, + {0x8499,0x8499,0x003F}, + {0x849A,0x849A,0x003F}, + {0x849B,0x849B,0x003F}, + {0x849C,0x849C,0x003F}, + {0x849D,0x849D,0x003F}, + {0x849E,0x849E,0x003F}, + {0x849F,0x849F,0x2500}, + {0x84A0,0x84A0,0x2502}, /* 84A0 */ + {0x84A1,0x84A1,0x250C}, + {0x84A2,0x84A2,0x2510}, + {0x84A3,0x84A3,0x2518}, + {0x84A4,0x84A4,0x2514}, + {0x84A5,0x84A5,0x251C}, + {0x84A6,0x84A6,0x252C}, + {0x84A7,0x84A7,0x2524}, + {0x84A8,0x84A8,0x2534}, + {0x84A9,0x84A9,0x253C}, + {0x84AA,0x84AA,0x2501}, + {0x84AB,0x84AB,0x2503}, + {0x84AC,0x84AC,0x250F}, + {0x84AD,0x84AD,0x2513}, + {0x84AE,0x84AE,0x251B}, + {0x84AF,0x84AF,0x2517}, + {0x84B0,0x84B0,0x2523}, /* 84B0 */ + {0x84B1,0x84B1,0x2533}, + {0x84B2,0x84B2,0x252B}, + {0x84B3,0x84B3,0x253B}, + {0x84B4,0x84B4,0x254B}, + {0x84B5,0x84B5,0x2520}, + {0x84B6,0x84B6,0x252F}, + {0x84B7,0x84B7,0x2528}, + {0x84B8,0x84B8,0x2537}, + {0x84B9,0x84B9,0x253F}, + {0x84BA,0x84BA,0x251D}, + {0x84BB,0x84BB,0x2530}, + {0x84BC,0x84BC,0x2525}, + {0x84BD,0x84BD,0x2538}, + {0x84BE,0x84BE,0x2542}, + {0x84BF,0x84BF,0x003F}, + {0x84C0,0x84C0,0x003F}, /* 84C0 */ + {0x84C1,0x84C1,0x003F}, + {0x84C2,0x84C2,0x003F}, + {0x84C3,0x84C3,0x003F}, + {0x84C4,0x84C4,0x003F}, + {0x84C5,0x84C5,0x003F}, + {0x84C6,0x84C6,0x003F}, + {0x84C7,0x84C7,0x003F}, + {0x84C8,0x84C8,0x003F}, + {0x84C9,0x84C9,0x003F}, + {0x84CA,0x84CA,0x003F}, + {0x84CB,0x84CB,0x003F}, + {0x84CC,0x84CC,0x003F}, + {0x84CD,0x84CD,0x003F}, + {0x84CE,0x84CE,0x003F}, + {0x84CF,0x84CF,0x003F}, + {0x84D0,0x84D0,0x003F}, /* 84D0 */ + {0x84D1,0x84D1,0x003F}, + {0x84D2,0x84D2,0x003F}, + {0x84D3,0x84D3,0x003F}, + {0x84D4,0x84D4,0x003F}, + {0x84D5,0x84D5,0x003F}, + {0x84D6,0x84D6,0x003F}, + {0x84D7,0x84D7,0x003F}, + {0x84D8,0x84D8,0x003F}, + {0x84D9,0x84D9,0x003F}, + {0x84DA,0x84DA,0x003F}, + {0x84DB,0x84DB,0x003F}, + {0x84DC,0x84DC,0x003F}, + {0x84DD,0x84DD,0x003F}, + {0x84DE,0x84DE,0x003F}, + {0x84DF,0x84DF,0x003F}, + {0x84E0,0x84E0,0x003F}, /* 84E0 */ + {0x84E1,0x84E1,0x003F}, + {0x84E2,0x84E2,0x003F}, + {0x84E3,0x84E3,0x003F}, + {0x84E4,0x84E4,0x003F}, + {0x84E5,0x84E5,0x003F}, + {0x84E6,0x84E6,0x003F}, + {0x84E7,0x84E7,0x003F}, + {0x84E8,0x84E8,0x003F}, + {0x84E9,0x84E9,0x003F}, + {0x84EA,0x84EA,0x003F}, + {0x84EB,0x84EB,0x003F}, + {0x84EC,0x84EC,0x003F}, + {0x84ED,0x84ED,0x003F}, + {0x84EE,0x84EE,0x003F}, + {0x84EF,0x84EF,0x003F}, + {0x84F0,0x84F0,0x003F}, /* 84F0 */ + {0x84F1,0x84F1,0x003F}, + {0x84F2,0x84F2,0x003F}, + {0x84F3,0x84F3,0x003F}, + {0x84F4,0x84F4,0x003F}, + {0x84F5,0x84F5,0x003F}, + {0x84F6,0x84F6,0x003F}, + {0x84F7,0x84F7,0x003F}, + {0x84F8,0x84F8,0x003F}, + {0x84F9,0x84F9,0x003F}, + {0x84FA,0x84FA,0x003F}, + {0x84FB,0x84FB,0x003F}, + {0x84FC,0x84FC,0x003F}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER c87[256]= +{ + /* 8700-870F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8710-871F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8720-872F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8730-873F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8740,0x8740,0x2460}, /* 8740 */ + {0x8741,0x8741,0x2461}, + {0x8742,0x8742,0x2462}, + {0x8743,0x8743,0x2463}, + {0x8744,0x8744,0x2464}, + {0x8745,0x8745,0x2465}, + {0x8746,0x8746,0x2466}, + {0x8747,0x8747,0x2467}, + {0x8748,0x8748,0x2468}, + {0x8749,0x8749,0x2469}, + {0x874A,0x874A,0x246A}, + {0x874B,0x874B,0x246B}, + {0x874C,0x874C,0x246C}, + {0x874D,0x874D,0x246D}, + {0x874E,0x874E,0x246E}, + {0x874F,0x874F,0x246F}, + {0x8750,0x8750,0x2470}, /* 8750 */ + {0x8751,0x8751,0x2471}, + {0x8752,0x8752,0x2472}, + {0x8753,0x8753,0x2473}, + {0x8754,0xEEEF,0x2160}, + {0x8755,0xEEF0,0x2161}, + {0x8756,0xEEF1,0x2162}, + {0x8757,0xEEF2,0x2163}, + {0x8758,0xEEF3,0x2164}, + {0x8759,0xEEF4,0x2165}, + {0x875A,0xEEF5,0x2166}, + {0x875B,0xEEF6,0x2167}, + {0x875C,0xEEF7,0x2168}, + {0x875D,0xEEF8,0x2169}, + {0x875E,0x875E,0x003F}, + {0x875F,0x875F,0x3349}, + {0x8760,0x8760,0x3314}, /* 8760 */ + {0x8761,0x8761,0x3322}, + {0x8762,0x8762,0x334D}, + {0x8763,0x8763,0x3318}, + {0x8764,0x8764,0x3327}, + {0x8765,0x8765,0x3303}, + {0x8766,0x8766,0x3336}, + {0x8767,0x8767,0x3351}, + {0x8768,0x8768,0x3357}, + {0x8769,0x8769,0x330D}, + {0x876A,0x876A,0x3326}, + {0x876B,0x876B,0x3323}, + {0x876C,0x876C,0x332B}, + {0x876D,0x876D,0x334A}, + {0x876E,0x876E,0x333B}, + {0x876F,0x876F,0x339C}, + {0x8770,0x8770,0x339D}, /* 8770 */ + {0x8771,0x8771,0x339E}, + {0x8772,0x8772,0x338E}, + {0x8773,0x8773,0x338F}, + {0x8774,0x8774,0x33C4}, + {0x8775,0x8775,0x33A1}, + {0x8776,0x8776,0x003F}, + {0x8777,0x8777,0x003F}, + {0x8778,0x8778,0x003F}, + {0x8779,0x8779,0x003F}, + {0x877A,0x877A,0x003F}, + {0x877B,0x877B,0x003F}, + {0x877C,0x877C,0x003F}, + {0x877D,0x877D,0x003F}, + {0x877E,0x877E,0x337B}, + {0,0,0}, + {0x8780,0x8780,0x301D}, /* 8780 */ + {0x8781,0x8781,0x301F}, + {0x8782,0x8782,0x2116}, + {0x8783,0x8783,0x33CD}, + {0x8784,0x8784,0x2121}, + {0x8785,0x8785,0x32A4}, + {0x8786,0x8786,0x32A5}, + {0x8787,0x8787,0x32A6}, + {0x8788,0x8788,0x32A7}, + {0x8789,0x8789,0x32A8}, + {0x878A,0x878A,0x3231}, + {0x878B,0x878B,0x3232}, + {0x878C,0x878C,0x3239}, + {0x878D,0x878D,0x337E}, + {0x878E,0x878E,0x337D}, + {0x878F,0x878F,0x337C}, + {0x8790,0x8790,0x2252}, /* 8790 */ + {0x8791,0x8791,0x2261}, + {0x8792,0x8792,0x222B}, + {0x8793,0x8793,0x222E}, + {0x8794,0x8794,0x2211}, + {0x8795,0x8795,0x221A}, + {0x8796,0x8796,0x22A5}, + {0x8797,0x8797,0x2220}, + {0x8798,0x8798,0x221F}, + {0x8799,0x8799,0x22BF}, + {0x879A,0x879A,0x2235}, + {0x879B,0x879B,0x2229}, + {0x879C,0x879C,0x222A}, + {0x879D,0x879D,0x003F}, + {0x879E,0x879E,0x003F}, + {0x879F,0x879F,0x003F}, + {0x87A0,0x87A0,0x003F}, /* 87A0 */ + {0x87A1,0x87A1,0x003F}, + {0x87A2,0x87A2,0x003F}, + {0x87A3,0x87A3,0x003F}, + {0x87A4,0x87A4,0x003F}, + {0x87A5,0x87A5,0x003F}, + {0x87A6,0x87A6,0x003F}, + {0x87A7,0x87A7,0x003F}, + {0x87A8,0x87A8,0x003F}, + {0x87A9,0x87A9,0x003F}, + {0x87AA,0x87AA,0x003F}, + {0x87AB,0x87AB,0x003F}, + {0x87AC,0x87AC,0x003F}, + {0x87AD,0x87AD,0x003F}, + {0x87AE,0x87AE,0x003F}, + {0x87AF,0x87AF,0x003F}, + {0x87B0,0x87B0,0x003F}, /* 87B0 */ + {0x87B1,0x87B1,0x003F}, + {0x87B2,0x87B2,0x003F}, + {0x87B3,0x87B3,0x003F}, + {0x87B4,0x87B4,0x003F}, + {0x87B5,0x87B5,0x003F}, + {0x87B6,0x87B6,0x003F}, + {0x87B7,0x87B7,0x003F}, + {0x87B8,0x87B8,0x003F}, + {0x87B9,0x87B9,0x003F}, + {0x87BA,0x87BA,0x003F}, + {0x87BB,0x87BB,0x003F}, + {0x87BC,0x87BC,0x003F}, + {0x87BD,0x87BD,0x003F}, + {0x87BE,0x87BE,0x003F}, + {0x87BF,0x87BF,0x003F}, + {0x87C0,0x87C0,0x003F}, /* 87C0 */ + {0x87C1,0x87C1,0x003F}, + {0x87C2,0x87C2,0x003F}, + {0x87C3,0x87C3,0x003F}, + {0x87C4,0x87C4,0x003F}, + {0x87C5,0x87C5,0x003F}, + {0x87C6,0x87C6,0x003F}, + {0x87C7,0x87C7,0x003F}, + {0x87C8,0x87C8,0x003F}, + {0x87C9,0x87C9,0x003F}, + {0x87CA,0x87CA,0x003F}, + {0x87CB,0x87CB,0x003F}, + {0x87CC,0x87CC,0x003F}, + {0x87CD,0x87CD,0x003F}, + {0x87CE,0x87CE,0x003F}, + {0x87CF,0x87CF,0x003F}, + {0x87D0,0x87D0,0x003F}, /* 87D0 */ + {0x87D1,0x87D1,0x003F}, + {0x87D2,0x87D2,0x003F}, + {0x87D3,0x87D3,0x003F}, + {0x87D4,0x87D4,0x003F}, + {0x87D5,0x87D5,0x003F}, + {0x87D6,0x87D6,0x003F}, + {0x87D7,0x87D7,0x003F}, + {0x87D8,0x87D8,0x003F}, + {0x87D9,0x87D9,0x003F}, + {0x87DA,0x87DA,0x003F}, + {0x87DB,0x87DB,0x003F}, + {0x87DC,0x87DC,0x003F}, + {0x87DD,0x87DD,0x003F}, + {0x87DE,0x87DE,0x003F}, + {0x87DF,0x87DF,0x003F}, + {0x87E0,0x87E0,0x003F}, /* 87E0 */ + {0x87E1,0x87E1,0x003F}, + {0x87E2,0x87E2,0x003F}, + {0x87E3,0x87E3,0x003F}, + {0x87E4,0x87E4,0x003F}, + {0x87E5,0x87E5,0x003F}, + {0x87E6,0x87E6,0x003F}, + {0x87E7,0x87E7,0x003F}, + {0x87E8,0x87E8,0x003F}, + {0x87E9,0x87E9,0x003F}, + {0x87EA,0x87EA,0x003F}, + {0x87EB,0x87EB,0x003F}, + {0x87EC,0x87EC,0x003F}, + {0x87ED,0x87ED,0x003F}, + {0x87EE,0x87EE,0x003F}, + {0x87EF,0x87EF,0x003F}, + {0x87F0,0x87F0,0x003F}, /* 87F0 */ + {0x87F1,0x87F1,0x003F}, + {0x87F2,0x87F2,0x003F}, + {0x87F3,0x87F3,0x003F}, + {0x87F4,0x87F4,0x003F}, + {0x87F5,0x87F5,0x003F}, + {0x87F6,0x87F6,0x003F}, + {0x87F7,0x87F7,0x003F}, + {0x87F8,0x87F8,0x003F}, + {0x87F9,0x87F9,0x003F}, + {0x87FA,0x87FA,0x003F}, + {0x87FB,0x87FB,0x003F}, + {0x87FC,0x87FC,0x003F}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER cEE[256]= +{ + /* EE00-EE0F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* EE10-EE1F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* EE20-EE2F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* EE30-EE3F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0xEE40,0xEE40,0x72BE}, /* EE40 */ + {0xEE41,0xEE41,0x7324}, + {0xEE42,0xEE42,0xFA16}, + {0xEE43,0xEE43,0x7377}, + {0xEE44,0xEE44,0x73BD}, + {0xEE45,0xEE45,0x73C9}, + {0xEE46,0xEE46,0x73D6}, + {0xEE47,0xEE47,0x73E3}, + {0xEE48,0xEE48,0x73D2}, + {0xEE49,0xEE49,0x7407}, + {0xEE4A,0xEE4A,0x73F5}, + {0xEE4B,0xEE4B,0x7426}, + {0xEE4C,0xEE4C,0x742A}, + {0xEE4D,0xEE4D,0x7429}, + {0xEE4E,0xEE4E,0x742E}, + {0xEE4F,0xEE4F,0x7462}, + + {0xEE50,0xEE50,0x7489}, /* EE50 */ + {0xEE51,0xEE51,0x749F}, + {0xEE52,0xEE52,0x7501}, + {0xEE53,0xEE53,0x756F}, + {0xEE54,0xEE54,0x7682}, + {0xEE55,0xEE55,0x769C}, + {0xEE56,0xEE56,0x769E}, + {0xEE57,0xEE57,0x769B}, + {0xEE58,0xEE58,0x76A6}, + {0xEE59,0xEE59,0xFA17}, + {0xEE5A,0xEE5A,0x7746}, + {0xEE5B,0xEE5B,0x52AF}, + {0xEE5C,0xEE5C,0x7821}, + {0xEE5D,0xEE5D,0x784E}, + {0xEE5E,0xEE5E,0x7864}, + {0xEE5F,0xEE5F,0x787A}, + {0xEE60,0xEE60,0x7930}, /* EE60 */ + {0xEE61,0xEE61,0xFA18}, + {0xEE62,0xEE62,0xFA19}, + {0xEE63,0xEE63,0xFA1A}, + {0xEE64,0xEE64,0x7994}, + {0xEE65,0xEE65,0xFA1B}, + {0xEE66,0xEE66,0x799B}, + {0xEE67,0xEE67,0x7AD1}, + {0xEE68,0xEE68,0x7AE7}, + {0xEE69,0xEE69,0xFA1C}, + {0xEE6A,0xEE6A,0x7AEB}, + {0xEE6B,0xEE6B,0x7B9E}, + {0xEE6C,0xEE6C,0xFA1D}, + {0xEE6D,0xEE6D,0x7D48}, + {0xEE6E,0xEE6E,0x7D5C}, + {0xEE6F,0xEE6F,0x7DB7}, + {0xEE70,0xEE70,0x7DA0}, /* EE70 */ + {0xEE71,0xEE71,0x7DD6}, + {0xEE72,0xEE72,0x7E52}, + {0xEE73,0xEE73,0x7F47}, + {0xEE74,0xEE74,0x7FA1}, + {0xEE75,0xEE75,0xFA1E}, + {0xEE76,0xEE76,0x8301}, + {0xEE77,0xEE77,0x8362}, + {0xEE78,0xEE78,0x837F}, + {0xEE79,0xEE79,0x83C7}, + {0xEE7A,0xEE7A,0x83F6}, + {0xEE7B,0xEE7B,0x8448}, + {0xEE7C,0xEE7C,0x84B4}, + {0xEE7D,0xEE7D,0x8553}, + {0xEE7E,0xEE7E,0x8559}, + {0,0,0}, + {0xEE80,0xEE80,0x856B}, /* EE80 */ + {0xEE81,0xEE81,0xFA1F}, + {0xEE82,0xEE82,0x85B0}, + {0xEE83,0xEE83,0xFA20}, + {0xEE84,0xEE84,0xFA21}, + {0xEE85,0xEE85,0x8807}, + {0xEE86,0xEE86,0x88F5}, + {0xEE87,0xEE87,0x8A12}, + {0xEE88,0xEE88,0x8A37}, + {0xEE89,0xEE89,0x8A79}, + {0xEE8A,0xEE8A,0x8AA7}, + {0xEE8B,0xEE8B,0x8ABE}, + {0xEE8C,0xEE8C,0x8ADF}, + {0xEE8D,0xEE8D,0xFA22}, + {0xEE8E,0xEE8E,0x8AF6}, + {0xEE8F,0xEE8F,0x8B53}, + {0xEE90,0xEE90,0x8B7F}, /* EE90 */ + {0xEE91,0xEE91,0x8CF0}, + {0xEE92,0xEE92,0x8CF4}, + {0xEE93,0xEE93,0x8D12}, + {0xEE94,0xEE94,0x8D76}, + {0xEE95,0xEE95,0xFA23}, + {0xEE96,0xEE96,0x8ECF}, + {0xEE97,0xEE97,0xFA24}, + {0xEE98,0xEE98,0xFA25}, + {0xEE99,0xEE99,0x9067}, + {0xEE9A,0xEE9A,0x90DE}, + {0xEE9B,0xEE9B,0xFA26}, + {0xEE9C,0xEE9C,0x9115}, + {0xEE9D,0xEE9D,0x9127}, + {0xEE9E,0xEE9E,0x91DA}, + {0xEE9F,0xEE9F,0x91D7}, + {0xEEA0,0xEEA0,0x91DE}, /* EEA0 */ + {0xEEA1,0xEEA1,0x91ED}, + {0xEEA2,0xEEA2,0x91EE}, + {0xEEA3,0xEEA3,0x91E4}, + {0xEEA4,0xEEA4,0x91E5}, + {0xEEA5,0xEEA5,0x9206}, + {0xEEA6,0xEEA6,0x9210}, + {0xEEA7,0xEEA7,0x920A}, + {0xEEA8,0xEEA8,0x923A}, + {0xEEA9,0xEEA9,0x9240}, + {0xEEAA,0xEEAA,0x923C}, + {0xEEAB,0xEEAB,0x924E}, + {0xEEAC,0xEEAC,0x9259}, + {0xEEAD,0xEEAD,0x9251}, + {0xEEAE,0xEEAE,0x9239}, + {0xEEAF,0xEEAF,0x9267}, + {0xEEB0,0xEEB0,0x92A7}, /* EEB0 */ + {0xEEB1,0xEEB1,0x9277}, + {0xEEB2,0xEEB2,0x9278}, + {0xEEB3,0xEEB3,0x92E7}, + {0xEEB4,0xEEB4,0x92D7}, + {0xEEB5,0xEEB5,0x92D9}, + {0xEEB6,0xEEB6,0x92D0}, + {0xEEB7,0xEEB7,0xFA27}, + {0xEEB8,0xEEB8,0x92D5}, + {0xEEB9,0xEEB9,0x92E0}, + {0xEEBA,0xEEBA,0x92D3}, + {0xEEBB,0xEEBB,0x9325}, + {0xEEBC,0xEEBC,0x9321}, + {0xEEBD,0xEEBD,0x92FB}, + {0xEEBE,0xEEBE,0xFA28}, + {0xEEBF,0xEEBF,0x931E}, + {0xEEC0,0xEEC0,0x92FF}, /* EEC0 */ + {0xEEC1,0xEEC1,0x931D}, + {0xEEC2,0xEEC2,0x9302}, + {0xEEC3,0xEEC3,0x9370}, + {0xEEC4,0xEEC4,0x9357}, + {0xEEC5,0xEEC5,0x93A4}, + {0xEEC6,0xEEC6,0x93C6}, + {0xEEC7,0xEEC7,0x93DE}, + {0xEEC8,0xEEC8,0x93F8}, + {0xEEC9,0xEEC9,0x9431}, + {0xEECA,0xEECA,0x9445}, + {0xEECB,0xEECB,0x9448}, + {0xEECC,0xEECC,0x9592}, + {0xEECD,0xEECD,0xF9DC}, + {0xEECE,0xEECE,0xFA29}, + {0xEECF,0xEECF,0x969D}, + {0xEED0,0xEED0,0x96AF}, /* EED0 */ + {0xEED1,0xEED1,0x9733}, + {0xEED2,0xEED2,0x973B}, + {0xEED3,0xEED3,0x9743}, + {0xEED4,0xEED4,0x974D}, + {0xEED5,0xEED5,0x974F}, + {0xEED6,0xEED6,0x9751}, + {0xEED7,0xEED7,0x9755}, + {0xEED8,0xEED8,0x9857}, + {0xEED9,0xEED9,0x9865}, + {0xEEDA,0xEEDA,0xFA2A}, + {0xEEDB,0xEEDB,0xFA2B}, + {0xEEDC,0xEEDC,0x9927}, + {0xEEDD,0xEEDD,0xFA2C}, + {0xEEDE,0xEEDE,0x999E}, + {0xEEDF,0xEEDF,0x9A4E}, + {0xEEE0,0xEEE0,0x9AD9}, /* EEE0 */ + {0xEEE1,0xEEE1,0x9ADC}, + {0xEEE2,0xEEE2,0x9B75}, + {0xEEE3,0xEEE3,0x9B72}, + {0xEEE4,0xEEE4,0x9B8F}, + {0xEEE5,0xEEE5,0x9BB1}, + {0xEEE6,0xEEE6,0x9BBB}, + {0xEEE7,0xEEE7,0x9C00}, + {0xEEE8,0xEEE8,0x9D70}, + {0xEEE9,0xEEE9,0x9D6B}, + {0xEEEA,0xEEEA,0xFA2D}, + {0xEEEB,0xEEEB,0x9E19}, + {0xEEEC,0xEEEC,0x9ED1}, + {0xEEED,0xEEED,0x003F}, + {0xEEEE,0xEEEE,0x003F}, + {0x8754,0xEEEF,0x2170}, + {0x8755,0xEEF0,0x2171}, /* EEF0 */ + {0x8756,0xEEF1,0x2172}, + {0x8757,0xEEF2,0x2173}, + {0x8758,0xEEF3,0x2174}, + {0x8759,0xEEF4,0x2175}, + {0x875A,0xEEF5,0x2176}, + {0x875B,0xEEF6,0x2177}, + {0x875C,0xEEF7,0x2178}, + {0x875D,0xEEF8,0x2179}, + {0xEEF9,0xEEF9,0xFFE2}, + {0xEEFA,0xEEFA,0xFFE4}, + {0xEEFB,0xEEFB,0xFF07}, + {0xEEFC,0xEEFC,0xFF02}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER cFA[256]= +{ + /* FA00-FA0F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* FA10-FA1F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* FA20-FA2F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* FA30-FA3F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0xFA4A,0xFA40,0x2170}, /* FA40 */ + {0xFA4B,0xFA41,0x2171}, + {0xFA4C,0xFA42,0x2172}, + {0xFA4D,0xFA43,0x2173}, + {0xFA4E,0xFA44,0x2174}, + {0xFA4F,0xFA45,0x2175}, + {0xFA50,0xFA46,0x2176}, + {0xFA51,0xFA47,0x2177}, + {0xFA52,0xFA48,0x2178}, + {0xFA53,0xFA49,0x2179}, + {0xFA4A,0xFA40,0x2160}, + {0xFA4B,0xFA41,0x2161}, + {0xFA4C,0xFA42,0x2162}, + {0xFA4D,0xFA43,0x2163}, + {0xFA4E,0xFA44,0x2164}, + {0xFA4F,0xFA45,0x2165}, + {0xFA50,0xFA46,0x2166}, /* FA50 */ + {0xFA51,0xFA47,0x2167}, + {0xFA52,0xFA48,0x2168}, + {0xFA53,0xFA49,0x2169}, + {0xFA54,0xFA54,0xFFE2}, + {0xFA55,0xFA55,0xFFE4}, + {0xFA56,0xFA56,0xFF07}, + {0xFA57,0xFA57,0xFF02}, + {0xFA58,0xFA58,0x3231}, + {0xFA59,0xFA59,0x2116}, + {0xFA5A,0xFA5A,0x2121}, + {0xFA5B,0xFA5B,0x2235}, + {0xFA5C,0xFA5C,0x7E8A}, + {0xFA5D,0xFA5D,0x891C}, + {0xFA5E,0xFA5E,0x9348}, + {0xFA5F,0xFA5F,0x9288}, + {0xFA60,0xFA60,0x84DC}, /* FA60 */ + {0xFA61,0xFA61,0x4FC9}, + {0xFA62,0xFA62,0x70BB}, + {0xFA63,0xFA63,0x6631}, + {0xFA64,0xFA64,0x68C8}, + {0xFA65,0xFA65,0x92F9}, + {0xFA66,0xFA66,0x66FB}, + {0xFA67,0xFA67,0x5F45}, + {0xFA68,0xFA68,0x4E28}, + {0xFA69,0xFA69,0x4EE1}, + {0xFA6A,0xFA6A,0x4EFC}, + {0xFA6B,0xFA6B,0x4F00}, + {0xFA6C,0xFA6C,0x4F03}, + {0xFA6D,0xFA6D,0x4F39}, + {0xFA6E,0xFA6E,0x4F56}, + {0xFA6F,0xFA6F,0x4F92}, + {0xFA70,0xFA70,0x4F8A}, /* FA70 */ + {0xFA71,0xFA71,0x4F9A}, + {0xFA72,0xFA72,0x4F94}, + {0xFA73,0xFA73,0x4FCD}, + {0xFA74,0xFA74,0x5040}, + {0xFA75,0xFA75,0x5022}, + {0xFA76,0xFA76,0x4FFF}, + {0xFA77,0xFA77,0x501E}, + {0xFA78,0xFA78,0x5046}, + {0xFA79,0xFA79,0x5070}, + {0xFA7A,0xFA7A,0x5042}, + {0xFA7B,0xFA7B,0x5094}, + {0xFA7C,0xFA7C,0x50F4}, + {0xFA7D,0xFA7D,0x50D8}, + {0xFA7E,0xFA7E,0x514A}, + {0,0,0}, + {0xFA80,0xFA80,0x5164}, /* FA80 */ + {0xFA81,0xFA81,0x519D}, + {0xFA82,0xFA82,0x51BE}, + {0xFA83,0xFA83,0x51EC}, + {0xFA84,0xFA84,0x5215}, + {0xFA85,0xFA85,0x529C}, + {0xFA86,0xFA86,0x52A6}, + {0xFA87,0xFA87,0x52C0}, + {0xFA88,0xFA88,0x52DB}, + {0xFA89,0xFA89,0x5300}, + {0xFA8A,0xFA8A,0x5307}, + {0xFA8B,0xFA8B,0x5324}, + {0xFA8C,0xFA8C,0x5372}, + {0xFA8D,0xFA8D,0x5393}, + {0xFA8E,0xFA8E,0x53B2}, + {0xFA8F,0xFA8F,0x53DD}, + {0xFA90,0xFA90,0xFA0E}, /* FA90 */ + {0xFA91,0xFA91,0x549C}, + {0xFA92,0xFA92,0x548A}, + {0xFA93,0xFA93,0x54A9}, + {0xFA94,0xFA94,0x54FF}, + {0xFA95,0xFA95,0x5586}, + {0xFA96,0xFA96,0x5759}, + {0xFA97,0xFA97,0x5765}, + {0xFA98,0xFA98,0x57AC}, + {0xFA99,0xFA99,0x57C8}, + {0xFA9A,0xFA9A,0x57C7}, + {0xFA9B,0xFA9B,0xFA0F}, + {0xFA9C,0xFA9C,0xFA10}, + {0xFA9D,0xFA9D,0x589E}, + {0xFA9E,0xFA9E,0x58B2}, + {0xFA9F,0xFA9F,0x590B}, + {0xFAA0,0xFAA0,0x5953}, /* FAA0 */ + {0xFAA1,0xFAA1,0x595B}, + {0xFAA2,0xFAA2,0x595D}, + {0xFAA3,0xFAA3,0x5963}, + {0xFAA4,0xFAA4,0x59A4}, + {0xFAA5,0xFAA5,0x59BA}, + {0xFAA6,0xFAA6,0x5B56}, + {0xFAA7,0xFAA7,0x5BC0}, + {0xFAA8,0xFAA8,0x752F}, + {0xFAA9,0xFAA9,0x5BD8}, + {0xFAAA,0xFAAA,0x5BEC}, + {0xFAAB,0xFAAB,0x5C1E}, + {0xFAAC,0xFAAC,0x5CA6}, + {0xFAAD,0xFAAD,0x5CBA}, + {0xFAAE,0xFAAE,0x5CF5}, + {0xFAAF,0xFAAF,0x5D27}, + {0xFAB0,0xFAB0,0x5D53}, /* FAB0 */ + {0xFAB1,0xFAB1,0xFA11}, + {0xFAB2,0xFAB2,0x5D42}, + {0xFAB3,0xFAB3,0x5D6D}, + {0xFAB4,0xFAB4,0x5DB8}, + {0xFAB5,0xFAB5,0x5DB9}, + {0xFAB6,0xFAB6,0x5DD0}, + {0xFAB7,0xFAB7,0x5F21}, + {0xFAB8,0xFAB8,0x5F34}, + {0xFAB9,0xFAB9,0x5F67}, + {0xFABA,0xFABA,0x5FB7}, + {0xFABB,0xFABB,0x5FDE}, + {0xFABC,0xFABC,0x605D}, + {0xFABD,0xFABD,0x6085}, + {0xFABE,0xFABE,0x608A}, + {0xFABF,0xFABF,0x60DE}, + {0xFAC0,0xFAC0,0x60D5}, /* FAC0 */ + {0xFAC1,0xFAC1,0x6120}, + {0xFAC2,0xFAC2,0x60F2}, + {0xFAC3,0xFAC3,0x6111}, + {0xFAC4,0xFAC4,0x6137}, + {0xFAC5,0xFAC5,0x6130}, + {0xFAC6,0xFAC6,0x6198}, + {0xFAC7,0xFAC7,0x6213}, + {0xFAC8,0xFAC8,0x62A6}, + {0xFAC9,0xFAC9,0x63F5}, + {0xFACA,0xFACA,0x6460}, + {0xFACB,0xFACB,0x649D}, + {0xFACC,0xFACC,0x64CE}, + {0xFACD,0xFACD,0x654E}, + {0xFACE,0xFACE,0x6600}, + {0xFACF,0xFACF,0x6615}, + {0xFAD0,0xFAD0,0x663B}, /* FAD0 */ + {0xFAD1,0xFAD1,0x6609}, + {0xFAD2,0xFAD2,0x662E}, + {0xFAD3,0xFAD3,0x661E}, + {0xFAD4,0xFAD4,0x6624}, + {0xFAD5,0xFAD5,0x6665}, + {0xFAD6,0xFAD6,0x6657}, + {0xFAD7,0xFAD7,0x6659}, + {0xFAD8,0xFAD8,0xFA12}, + {0xFAD9,0xFAD9,0x6673}, + {0xFADA,0xFADA,0x6699}, + {0xFADB,0xFADB,0x66A0}, + {0xFADC,0xFADC,0x66B2}, + {0xFADD,0xFADD,0x66BF}, + {0xFADE,0xFADE,0x66FA}, + {0xFADF,0xFADF,0x670E}, + {0xFAE0,0xFAE0,0xF929}, /* FAE0 */ + {0xFAE1,0xFAE1,0x6766}, + {0xFAE2,0xFAE2,0x67BB}, + {0xFAE3,0xFAE3,0x6852}, + {0xFAE4,0xFAE4,0x67C0}, + {0xFAE5,0xFAE5,0x6801}, + {0xFAE6,0xFAE6,0x6844}, + {0xFAE7,0xFAE7,0x68CF}, + {0xFAE8,0xFAE8,0xFA13}, + {0xFAE9,0xFAE9,0x6968}, + {0xFAEA,0xFAEA,0xFA14}, + {0xFAEB,0xFAEB,0x6998}, + {0xFAEC,0xFAEC,0x69E2}, + {0xFAED,0xFAED,0x6A30}, + {0xFAEE,0xFAEE,0x6A6B}, + {0xFAEF,0xFAEF,0x6A46}, + {0xFAF0,0xFAF0,0x6A73}, /* FAF0 */ + {0xFAF1,0xFAF1,0x6A7E}, + {0xFAF2,0xFAF2,0x6AE2}, + {0xFAF3,0xFAF3,0x6AE4}, + {0xFAF4,0xFAF4,0x6BD6}, + {0xFAF5,0xFAF5,0x6C3F}, + {0xFAF6,0xFAF6,0x6C5C}, + {0xFAF7,0xFAF7,0x6C86}, + {0xFAF8,0xFAF8,0x6C6F}, + {0xFAF9,0xFAF9,0x6CDA}, + {0xFAFA,0xFAFA,0x6D04}, + {0xFAFB,0xFAFB,0x6D87}, + {0xFAFC,0xFAFC,0x6D6F}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_cp932[256]= +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, c81, c82, c83, c84, NULL, NULL, c87, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, cEE, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, cFA, NULL, NULL, NULL, NULL, NULL +}; + + +MY_UNICASE_INFO my_caseinfo_cp932= +{ + 0xFFFF, + my_caseinfo_pages_cp932 +}; + +static int my_strnncoll_cp932_internal(const CHARSET_INFO *cs, + const uchar **a_res, size_t a_length, + const uchar **b_res, size_t b_length) +{ + const uchar *a= *a_res, *b= *b_res; + const uchar *a_end= a + a_length; + const uchar *b_end= b + b_length; + while (a < a_end && b < b_end) + { + if (ismbchar_cp932(cs,(char*) a, (char*) a_end) && + ismbchar_cp932(cs,(char*) b, (char*) b_end)) + { + uint a_char= cp932code(*a, *(a+1)); + uint b_char= cp932code(*b, *(b+1)); + if (a_char != b_char) + return a_char - b_char; + a += 2; + b += 2; + } else + { + if (sort_order_cp932[(uchar)*a] != sort_order_cp932[(uchar)*b]) + return sort_order_cp932[(uchar)*a] - sort_order_cp932[(uchar)*b]; + a++; + b++; + } + } + *a_res= a; + *b_res= b; + return 0; +} + + +static int my_strnncoll_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool b_is_prefix) +{ + int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length); + if (b_is_prefix && a_length > b_length) + a_length= b_length; + return res ? res : (int) (a_length - b_length); +} + + +static int my_strnncollsp_cp932(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + const uchar *a_end= a + a_length; + const uchar *b_end= b + b_length; + int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + if (!res && (a != a_end || b != b_end)) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a == a_end) + { + /* put shorter key in a */ + a_end= b_end; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (; a < a_end ; a++) + { + if (*a != (uchar) ' ') + return (*a < (uchar) ' ') ? -swap : swap; + } + } + return res; +} + + +static const uint16 cp932_to_unicode[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF61, 0xFF62, 0xFF63, /* 00A0 */ + 0xFF64, 0xFF65, 0xFF66, 0xFF67, + 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, + 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, + 0xFF70, 0xFF71, 0xFF72, 0xFF73, + 0xFF74, 0xFF75, 0xFF76, 0xFF77, + 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, + 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, + 0xFF80, 0xFF81, 0xFF82, 0xFF83, /* 00C0 */ + 0xFF84, 0xFF85, 0xFF86, 0xFF87, + 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, + 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, + 0xFF90, 0xFF91, 0xFF92, 0xFF93, + 0xFF94, 0xFF95, 0xFF96, 0xFF97, + 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, + 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x3000, 0x3001, 0x3002, 0xFF0C, /* 8140 */ + 0xFF0E, 0x30FB, 0xFF1A, 0xFF1B, + 0xFF1F, 0xFF01, 0x309B, 0x309C, + 0x00B4, 0xFF40, 0x00A8, 0xFF3E, + 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, + 0x309D, 0x309E, 0x3003, 0x4EDD, + 0x3005, 0x3006, 0x3007, 0x30FC, + 0x2015, 0x2010, 0xFF0F, 0xFF3C, + 0xFF5E, 0x2225, 0xFF5C, 0x2026, /* 8160 */ + 0x2025, 0x2018, 0x2019, 0x201C, + 0x201D, 0xFF08, 0xFF09, 0x3014, + 0x3015, 0xFF3B, 0xFF3D, 0xFF5B, + 0xFF5D, 0x3008, 0x3009, 0x300A, + 0x300B, 0x300C, 0x300D, 0x300E, + 0x300F, 0x3010, 0x3011, 0xFF0B, + 0xFF0D, 0x00B1, 0x00D7, 0x0000, + 0x00F7, 0xFF1D, 0x2260, 0xFF1C, /* 8180 */ + 0xFF1E, 0x2266, 0x2267, 0x221E, + 0x2234, 0x2642, 0x2640, 0x00B0, + 0x2032, 0x2033, 0x2103, 0xFFE5, + 0xFF04, 0xFFE0, 0xFFE1, 0xFF05, + 0xFF03, 0xFF06, 0xFF0A, 0xFF20, + 0x00A7, 0x2606, 0x2605, 0x25CB, + 0x25CF, 0x25CE, 0x25C7, 0x25C6, + 0x25A1, 0x25A0, 0x25B3, 0x25B2, /* 81A0 */ + 0x25BD, 0x25BC, 0x203B, 0x3012, + 0x2192, 0x2190, 0x2191, 0x2193, + 0x3013, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2208, 0x220B, 0x2286, 0x2287, + 0x2282, 0x2283, 0x222A, 0x2229, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2227, 0x2228, 0xFFE2, 0x21D2, + 0x21D4, 0x2200, 0x2203, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2220, 0x22A5, + 0x2312, 0x2202, 0x2207, 0x2261, + 0x2252, 0x226A, 0x226B, 0x221A, /* 81E0 */ + 0x223D, 0x221D, 0x2235, 0x222B, + 0x222C, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x212B, 0x2030, 0x266F, 0x266D, + 0x266A, 0x2020, 0x2021, 0x00B6, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x25EF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFF10, + 0xFF11, 0xFF12, 0xFF13, 0xFF14, + 0xFF15, 0xFF16, 0xFF17, 0xFF18, + 0xFF19, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xFF21, 0xFF22, 0xFF23, 0xFF24, /* 8260 */ + 0xFF25, 0xFF26, 0xFF27, 0xFF28, + 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, + 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, + 0xFF31, 0xFF32, 0xFF33, 0xFF34, + 0xFF35, 0xFF36, 0xFF37, 0xFF38, + 0xFF39, 0xFF3A, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF41, 0xFF42, 0xFF43, /* 8280 */ + 0xFF44, 0xFF45, 0xFF46, 0xFF47, + 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, + 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, + 0xFF50, 0xFF51, 0xFF52, 0xFF53, + 0xFF54, 0xFF55, 0xFF56, 0xFF57, + 0xFF58, 0xFF59, 0xFF5A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3041, + 0x3042, 0x3043, 0x3044, 0x3045, /* 82A0 */ + 0x3046, 0x3047, 0x3048, 0x3049, + 0x304A, 0x304B, 0x304C, 0x304D, + 0x304E, 0x304F, 0x3050, 0x3051, + 0x3052, 0x3053, 0x3054, 0x3055, + 0x3056, 0x3057, 0x3058, 0x3059, + 0x305A, 0x305B, 0x305C, 0x305D, + 0x305E, 0x305F, 0x3060, 0x3061, + 0x3062, 0x3063, 0x3064, 0x3065, /* 82C0 */ + 0x3066, 0x3067, 0x3068, 0x3069, + 0x306A, 0x306B, 0x306C, 0x306D, + 0x306E, 0x306F, 0x3070, 0x3071, + 0x3072, 0x3073, 0x3074, 0x3075, + 0x3076, 0x3077, 0x3078, 0x3079, + 0x307A, 0x307B, 0x307C, 0x307D, + 0x307E, 0x307F, 0x3080, 0x3081, + 0x3082, 0x3083, 0x3084, 0x3085, /* 82E0 */ + 0x3086, 0x3087, 0x3088, 0x3089, + 0x308A, 0x308B, 0x308C, 0x308D, + 0x308E, 0x308F, 0x3090, 0x3091, + 0x3092, 0x3093, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x30A1, 0x30A2, 0x30A3, 0x30A4, /* 8340 */ + 0x30A5, 0x30A6, 0x30A7, 0x30A8, + 0x30A9, 0x30AA, 0x30AB, 0x30AC, + 0x30AD, 0x30AE, 0x30AF, 0x30B0, + 0x30B1, 0x30B2, 0x30B3, 0x30B4, + 0x30B5, 0x30B6, 0x30B7, 0x30B8, + 0x30B9, 0x30BA, 0x30BB, 0x30BC, + 0x30BD, 0x30BE, 0x30BF, 0x30C0, + 0x30C1, 0x30C2, 0x30C3, 0x30C4, /* 8360 */ + 0x30C5, 0x30C6, 0x30C7, 0x30C8, + 0x30C9, 0x30CA, 0x30CB, 0x30CC, + 0x30CD, 0x30CE, 0x30CF, 0x30D0, + 0x30D1, 0x30D2, 0x30D3, 0x30D4, + 0x30D5, 0x30D6, 0x30D7, 0x30D8, + 0x30D9, 0x30DA, 0x30DB, 0x30DC, + 0x30DD, 0x30DE, 0x30DF, 0x0000, + 0x30E0, 0x30E1, 0x30E2, 0x30E3, /* 8380 */ + 0x30E4, 0x30E5, 0x30E6, 0x30E7, + 0x30E8, 0x30E9, 0x30EA, 0x30EB, + 0x30EC, 0x30ED, 0x30EE, 0x30EF, + 0x30F0, 0x30F1, 0x30F2, 0x30F3, + 0x30F4, 0x30F5, 0x30F6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0391, + 0x0392, 0x0393, 0x0394, 0x0395, /* 83A0 */ + 0x0396, 0x0397, 0x0398, 0x0399, + 0x039A, 0x039B, 0x039C, 0x039D, + 0x039E, 0x039F, 0x03A0, 0x03A1, + 0x03A3, 0x03A4, 0x03A5, 0x03A6, + 0x03A7, 0x03A8, 0x03A9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x03B1, + 0x03B2, 0x03B3, 0x03B4, 0x03B5, /* 83C0 */ + 0x03B6, 0x03B7, 0x03B8, 0x03B9, + 0x03BA, 0x03BB, 0x03BC, 0x03BD, + 0x03BE, 0x03BF, 0x03C0, 0x03C1, + 0x03C3, 0x03C4, 0x03C5, 0x03C6, + 0x03C7, 0x03C8, 0x03C9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0410, 0x0411, 0x0412, 0x0413, /* 8440 */ + 0x0414, 0x0415, 0x0401, 0x0416, + 0x0417, 0x0418, 0x0419, 0x041A, + 0x041B, 0x041C, 0x041D, 0x041E, + 0x041F, 0x0420, 0x0421, 0x0422, + 0x0423, 0x0424, 0x0425, 0x0426, + 0x0427, 0x0428, 0x0429, 0x042A, + 0x042B, 0x042C, 0x042D, 0x042E, + 0x042F, 0x0000, 0x0000, 0x0000, /* 8460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0430, 0x0431, 0x0432, 0x0433, + 0x0434, 0x0435, 0x0451, 0x0436, + 0x0437, 0x0438, 0x0439, 0x043A, + 0x043B, 0x043C, 0x043D, 0x0000, + 0x043E, 0x043F, 0x0440, 0x0441, /* 8480 */ + 0x0442, 0x0443, 0x0444, 0x0445, + 0x0446, 0x0447, 0x0448, 0x0449, + 0x044A, 0x044B, 0x044C, 0x044D, + 0x044E, 0x044F, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2500, + 0x2502, 0x250C, 0x2510, 0x2518, /* 84A0 */ + 0x2514, 0x251C, 0x252C, 0x2524, + 0x2534, 0x253C, 0x2501, 0x2503, + 0x250F, 0x2513, 0x251B, 0x2517, + 0x2523, 0x2533, 0x252B, 0x253B, + 0x254B, 0x2520, 0x252F, 0x2528, + 0x2537, 0x253F, 0x251D, 0x2530, + 0x2525, 0x2538, 0x2542, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2460, 0x2461, 0x2462, 0x2463, /* 8740 */ + 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x246A, 0x246B, + 0x246C, 0x246D, 0x246E, 0x246F, + 0x2470, 0x2471, 0x2472, 0x2473, + 0x2160, 0x2161, 0x2162, 0x2163, + 0x2164, 0x2165, 0x2166, 0x2167, + 0x2168, 0x2169, 0x0000, 0x3349, + 0x3314, 0x3322, 0x334D, 0x3318, /* 8760 */ + 0x3327, 0x3303, 0x3336, 0x3351, + 0x3357, 0x330D, 0x3326, 0x3323, + 0x332B, 0x334A, 0x333B, 0x339C, + 0x339D, 0x339E, 0x338E, 0x338F, + 0x33C4, 0x33A1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x337B, 0x0000, + 0x301D, 0x301F, 0x2116, 0x33CD, /* 8780 */ + 0x2121, 0x32A4, 0x32A5, 0x32A6, + 0x32A7, 0x32A8, 0x3231, 0x3232, + 0x3239, 0x337E, 0x337D, 0x337C, + 0x2252, 0x2261, 0x222B, 0x222E, + 0x2211, 0x221A, 0x22A5, 0x2220, + 0x221F, 0x22BF, 0x2235, 0x2229, + 0x222A, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4E9C, + 0x5516, 0x5A03, 0x963F, 0x54C0, /* 88A0 */ + 0x611B, 0x6328, 0x59F6, 0x9022, + 0x8475, 0x831C, 0x7A50, 0x60AA, + 0x63E1, 0x6E25, 0x65ED, 0x8466, + 0x82A6, 0x9BF5, 0x6893, 0x5727, + 0x65A1, 0x6271, 0x5B9B, 0x59D0, + 0x867B, 0x98F4, 0x7D62, 0x7DBE, + 0x9B8E, 0x6216, 0x7C9F, 0x88B7, + 0x5B89, 0x5EB5, 0x6309, 0x6697, /* 88C0 */ + 0x6848, 0x95C7, 0x978D, 0x674F, + 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D, + 0x5049, 0x56F2, 0x5937, 0x59D4, + 0x5A01, 0x5C09, 0x60DF, 0x610F, + 0x6170, 0x6613, 0x6905, 0x70BA, + 0x754F, 0x7570, 0x79FB, 0x7DAD, + 0x7DEF, 0x80C3, 0x840E, 0x8863, + 0x8B02, 0x9055, 0x907A, 0x533B, /* 88E0 */ + 0x4E95, 0x4EA5, 0x57DF, 0x80B2, + 0x90C1, 0x78EF, 0x4E00, 0x58F1, + 0x6EA2, 0x9038, 0x7A32, 0x8328, + 0x828B, 0x9C2F, 0x5141, 0x5370, + 0x54BD, 0x54E1, 0x56E0, 0x59FB, + 0x5F15, 0x98F2, 0x6DEB, 0x80E4, + 0x852D, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9662, 0x9670, 0x96A0, 0x97FB, /* 8940 */ + 0x540B, 0x53F3, 0x5B87, 0x70CF, + 0x7FBD, 0x8FC2, 0x96E8, 0x536F, + 0x9D5C, 0x7ABA, 0x4E11, 0x7893, + 0x81FC, 0x6E26, 0x5618, 0x5504, + 0x6B1D, 0x851A, 0x9C3B, 0x59E5, + 0x53A9, 0x6D66, 0x74DC, 0x958F, + 0x5642, 0x4E91, 0x904B, 0x96F2, + 0x834F, 0x990C, 0x53E1, 0x55B6, /* 8960 */ + 0x5B30, 0x5F71, 0x6620, 0x66F3, + 0x6804, 0x6C38, 0x6CF3, 0x6D29, + 0x745B, 0x76C8, 0x7A4E, 0x9834, + 0x82F1, 0x885B, 0x8A60, 0x92ED, + 0x6DB2, 0x75AB, 0x76CA, 0x99C5, + 0x60A6, 0x8B01, 0x8D8A, 0x95B2, + 0x698E, 0x53AD, 0x5186, 0x0000, + 0x5712, 0x5830, 0x5944, 0x5BB4, /* 8980 */ + 0x5EF6, 0x6028, 0x63A9, 0x63F4, + 0x6CBF, 0x6F14, 0x708E, 0x7114, + 0x7159, 0x71D5, 0x733F, 0x7E01, + 0x8276, 0x82D1, 0x8597, 0x9060, + 0x925B, 0x9D1B, 0x5869, 0x65BC, + 0x6C5A, 0x7525, 0x51F9, 0x592E, + 0x5965, 0x5F80, 0x5FDC, 0x62BC, + 0x65FA, 0x6A2A, 0x6B27, 0x6BB4, /* 89A0 */ + 0x738B, 0x7FC1, 0x8956, 0x9D2C, + 0x9D0E, 0x9EC4, 0x5CA1, 0x6C96, + 0x837B, 0x5104, 0x5C4B, 0x61B6, + 0x81C6, 0x6876, 0x7261, 0x4E59, + 0x4FFA, 0x5378, 0x6069, 0x6E29, + 0x7A4F, 0x97F3, 0x4E0B, 0x5316, + 0x4EEE, 0x4F55, 0x4F3D, 0x4FA1, + 0x4F73, 0x52A0, 0x53EF, 0x5609, /* 89C0 */ + 0x590F, 0x5AC1, 0x5BB6, 0x5BE1, + 0x79D1, 0x6687, 0x679C, 0x67B6, + 0x6B4C, 0x6CB3, 0x706B, 0x73C2, + 0x798D, 0x79BE, 0x7A3C, 0x7B87, + 0x82B1, 0x82DB, 0x8304, 0x8377, + 0x83EF, 0x83D3, 0x8766, 0x8AB2, + 0x5629, 0x8CA8, 0x8FE6, 0x904E, + 0x971E, 0x868A, 0x4FC4, 0x5CE8, /* 89E0 */ + 0x6211, 0x7259, 0x753B, 0x81E5, + 0x82BD, 0x86FE, 0x8CC0, 0x96C5, + 0x9913, 0x99D5, 0x4ECB, 0x4F1A, + 0x89E3, 0x56DE, 0x584A, 0x58CA, + 0x5EFB, 0x5FEB, 0x602A, 0x6094, + 0x6062, 0x61D0, 0x6212, 0x62D0, + 0x6539, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9B41, 0x6666, 0x68B0, 0x6D77, /* 8A40 */ + 0x7070, 0x754C, 0x7686, 0x7D75, + 0x82A5, 0x87F9, 0x958B, 0x968E, + 0x8C9D, 0x51F1, 0x52BE, 0x5916, + 0x54B3, 0x5BB3, 0x5D16, 0x6168, + 0x6982, 0x6DAF, 0x788D, 0x84CB, + 0x8857, 0x8A72, 0x93A7, 0x9AB8, + 0x6D6C, 0x99A8, 0x86D9, 0x57A3, + 0x67FF, 0x86CE, 0x920E, 0x5283, /* 8A60 */ + 0x5687, 0x5404, 0x5ED3, 0x62E1, + 0x64B9, 0x683C, 0x6838, 0x6BBB, + 0x7372, 0x78BA, 0x7A6B, 0x899A, + 0x89D2, 0x8D6B, 0x8F03, 0x90ED, + 0x95A3, 0x9694, 0x9769, 0x5B66, + 0x5CB3, 0x697D, 0x984D, 0x984E, + 0x639B, 0x7B20, 0x6A2B, 0x0000, + 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, /* 8A80 */ + 0x5272, 0x559D, 0x6070, 0x62EC, + 0x6D3B, 0x6E07, 0x6ED1, 0x845B, + 0x8910, 0x8F44, 0x4E14, 0x9C39, + 0x53F6, 0x691B, 0x6A3A, 0x9784, + 0x682A, 0x515C, 0x7AC3, 0x84B2, + 0x91DC, 0x938C, 0x565B, 0x9D28, + 0x6822, 0x8305, 0x8431, 0x7CA5, + 0x5208, 0x82C5, 0x74E6, 0x4E7E, /* 8AA0 */ + 0x4F83, 0x51A0, 0x5BD2, 0x520A, + 0x52D8, 0x52E7, 0x5DFB, 0x559A, + 0x582A, 0x59E6, 0x5B8C, 0x5B98, + 0x5BDB, 0x5E72, 0x5E79, 0x60A3, + 0x611F, 0x6163, 0x61BE, 0x63DB, + 0x6562, 0x67D1, 0x6853, 0x68FA, + 0x6B3E, 0x6B53, 0x6C57, 0x6F22, + 0x6F97, 0x6F45, 0x74B0, 0x7518, /* 8AC0 */ + 0x76E3, 0x770B, 0x7AFF, 0x7BA1, + 0x7C21, 0x7DE9, 0x7F36, 0x7FF0, + 0x809D, 0x8266, 0x839E, 0x89B3, + 0x8ACC, 0x8CAB, 0x9084, 0x9451, + 0x9593, 0x9591, 0x95A2, 0x9665, + 0x97D3, 0x9928, 0x8218, 0x4E38, + 0x542B, 0x5CB8, 0x5DCC, 0x73A9, + 0x764C, 0x773C, 0x5CA9, 0x7FEB, /* 8AE0 */ + 0x8D0B, 0x96C1, 0x9811, 0x9854, + 0x9858, 0x4F01, 0x4F0E, 0x5371, + 0x559C, 0x5668, 0x57FA, 0x5947, + 0x5B09, 0x5BC4, 0x5C90, 0x5E0C, + 0x5E7E, 0x5FCC, 0x63EE, 0x673A, + 0x65D7, 0x65E2, 0x671F, 0x68CB, + 0x68C4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6A5F, 0x5E30, 0x6BC5, 0x6C17, /* 8B40 */ + 0x6C7D, 0x757F, 0x7948, 0x5B63, + 0x7A00, 0x7D00, 0x5FBD, 0x898F, + 0x8A18, 0x8CB4, 0x8D77, 0x8ECC, + 0x8F1D, 0x98E2, 0x9A0E, 0x9B3C, + 0x4E80, 0x507D, 0x5100, 0x5993, + 0x5B9C, 0x622F, 0x6280, 0x64EC, + 0x6B3A, 0x72A0, 0x7591, 0x7947, + 0x7FA9, 0x87FB, 0x8ABC, 0x8B70, /* 8B60 */ + 0x63AC, 0x83CA, 0x97A0, 0x5409, + 0x5403, 0x55AB, 0x6854, 0x6A58, + 0x8A70, 0x7827, 0x6775, 0x9ECD, + 0x5374, 0x5BA2, 0x811A, 0x8650, + 0x9006, 0x4E18, 0x4E45, 0x4EC7, + 0x4F11, 0x53CA, 0x5438, 0x5BAE, + 0x5F13, 0x6025, 0x6551, 0x0000, + 0x673D, 0x6C42, 0x6C72, 0x6CE3, /* 8B80 */ + 0x7078, 0x7403, 0x7A76, 0x7AAE, + 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, + 0x65E7, 0x725B, 0x53BB, 0x5C45, + 0x5DE8, 0x62D2, 0x62E0, 0x6319, + 0x6E20, 0x865A, 0x8A31, 0x8DDD, + 0x92F8, 0x6F01, 0x79A6, 0x9B5A, + 0x4EA8, 0x4EAB, 0x4EAC, 0x4F9B, + 0x4FA0, 0x50D1, 0x5147, 0x7AF6, /* 8BA0 */ + 0x5171, 0x51F6, 0x5354, 0x5321, + 0x537F, 0x53EB, 0x55AC, 0x5883, + 0x5CE1, 0x5F37, 0x5F4A, 0x602F, + 0x6050, 0x606D, 0x631F, 0x6559, + 0x6A4B, 0x6CC1, 0x72C2, 0x72ED, + 0x77EF, 0x80F8, 0x8105, 0x8208, + 0x854E, 0x90F7, 0x93E1, 0x97FF, + 0x9957, 0x9A5A, 0x4EF0, 0x51DD, /* 8BC0 */ + 0x5C2D, 0x6681, 0x696D, 0x5C40, + 0x66F2, 0x6975, 0x7389, 0x6850, + 0x7C81, 0x50C5, 0x52E4, 0x5747, + 0x5DFE, 0x9326, 0x65A4, 0x6B23, + 0x6B3D, 0x7434, 0x7981, 0x79BD, + 0x7B4B, 0x7DCA, 0x82B9, 0x83CC, + 0x887F, 0x895F, 0x8B39, 0x8FD1, + 0x91D1, 0x541F, 0x9280, 0x4E5D, /* 8BE0 */ + 0x5036, 0x53E5, 0x533A, 0x72D7, + 0x7396, 0x77E9, 0x82E6, 0x8EAF, + 0x99C6, 0x99C8, 0x99D2, 0x5177, + 0x611A, 0x865E, 0x55B0, 0x7A7A, + 0x5076, 0x5BD3, 0x9047, 0x9685, + 0x4E32, 0x6ADB, 0x91E7, 0x5C51, + 0x5C48, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6398, 0x7A9F, 0x6C93, 0x9774, /* 8C40 */ + 0x8F61, 0x7AAA, 0x718A, 0x9688, + 0x7C82, 0x6817, 0x7E70, 0x6851, + 0x936C, 0x52F2, 0x541B, 0x85AB, + 0x8A13, 0x7FA4, 0x8ECD, 0x90E1, + 0x5366, 0x8888, 0x7941, 0x4FC2, + 0x50BE, 0x5211, 0x5144, 0x5553, + 0x572D, 0x73EA, 0x578B, 0x5951, + 0x5F62, 0x5F84, 0x6075, 0x6176, /* 8C60 */ + 0x6167, 0x61A9, 0x63B2, 0x643A, + 0x656C, 0x666F, 0x6842, 0x6E13, + 0x7566, 0x7A3D, 0x7CFB, 0x7D4C, + 0x7D99, 0x7E4B, 0x7F6B, 0x830E, + 0x834A, 0x86CD, 0x8A08, 0x8A63, + 0x8B66, 0x8EFD, 0x981A, 0x9D8F, + 0x82B8, 0x8FCE, 0x9BE8, 0x0000, + 0x5287, 0x621F, 0x6483, 0x6FC0, /* 8C80 */ + 0x9699, 0x6841, 0x5091, 0x6B20, + 0x6C7A, 0x6F54, 0x7A74, 0x7D50, + 0x8840, 0x8A23, 0x6708, 0x4EF6, + 0x5039, 0x5026, 0x5065, 0x517C, + 0x5238, 0x5263, 0x55A7, 0x570F, + 0x5805, 0x5ACC, 0x5EFA, 0x61B2, + 0x61F8, 0x62F3, 0x6372, 0x691C, + 0x6A29, 0x727D, 0x72AC, 0x732E, /* 8CA0 */ + 0x7814, 0x786F, 0x7D79, 0x770C, + 0x80A9, 0x898B, 0x8B19, 0x8CE2, + 0x8ED2, 0x9063, 0x9375, 0x967A, + 0x9855, 0x9A13, 0x9E78, 0x5143, + 0x539F, 0x53B3, 0x5E7B, 0x5F26, + 0x6E1B, 0x6E90, 0x7384, 0x73FE, + 0x7D43, 0x8237, 0x8A00, 0x8AFA, + 0x9650, 0x4E4E, 0x500B, 0x53E4, /* 8CC0 */ + 0x547C, 0x56FA, 0x59D1, 0x5B64, + 0x5DF1, 0x5EAB, 0x5F27, 0x6238, + 0x6545, 0x67AF, 0x6E56, 0x72D0, + 0x7CCA, 0x88B4, 0x80A1, 0x80E1, + 0x83F0, 0x864E, 0x8A87, 0x8DE8, + 0x9237, 0x96C7, 0x9867, 0x9F13, + 0x4E94, 0x4E92, 0x4F0D, 0x5348, + 0x5449, 0x543E, 0x5A2F, 0x5F8C, /* 8CE0 */ + 0x5FA1, 0x609F, 0x68A7, 0x6A8E, + 0x745A, 0x7881, 0x8A9E, 0x8AA4, + 0x8B77, 0x9190, 0x4E5E, 0x9BC9, + 0x4EA4, 0x4F7C, 0x4FAF, 0x5019, + 0x5016, 0x5149, 0x516C, 0x529F, + 0x52B9, 0x52FE, 0x539A, 0x53E3, + 0x5411, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x540E, 0x5589, 0x5751, 0x57A2, /* 8D40 */ + 0x597D, 0x5B54, 0x5B5D, 0x5B8F, + 0x5DE5, 0x5DE7, 0x5DF7, 0x5E78, + 0x5E83, 0x5E9A, 0x5EB7, 0x5F18, + 0x6052, 0x614C, 0x6297, 0x62D8, + 0x63A7, 0x653B, 0x6602, 0x6643, + 0x66F4, 0x676D, 0x6821, 0x6897, + 0x69CB, 0x6C5F, 0x6D2A, 0x6D69, + 0x6E2F, 0x6E9D, 0x7532, 0x7687, /* 8D60 */ + 0x786C, 0x7A3F, 0x7CE0, 0x7D05, + 0x7D18, 0x7D5E, 0x7DB1, 0x8015, + 0x8003, 0x80AF, 0x80B1, 0x8154, + 0x818F, 0x822A, 0x8352, 0x884C, + 0x8861, 0x8B1B, 0x8CA2, 0x8CFC, + 0x90CA, 0x9175, 0x9271, 0x783F, + 0x92FC, 0x95A4, 0x964D, 0x0000, + 0x9805, 0x9999, 0x9AD8, 0x9D3B, /* 8D80 */ + 0x525B, 0x52AB, 0x53F7, 0x5408, + 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, + 0x8F5F, 0x9EB9, 0x514B, 0x523B, + 0x544A, 0x56FD, 0x7A40, 0x9177, + 0x9D60, 0x9ED2, 0x7344, 0x6F09, + 0x8170, 0x7511, 0x5FFD, 0x60DA, + 0x9AA8, 0x72DB, 0x8FBC, 0x6B64, + 0x9803, 0x4ECA, 0x56F0, 0x5764, /* 8DA0 */ + 0x58BE, 0x5A5A, 0x6068, 0x61C7, + 0x660F, 0x6606, 0x6839, 0x68B1, + 0x6DF7, 0x75D5, 0x7D3A, 0x826E, + 0x9B42, 0x4E9B, 0x4F50, 0x53C9, + 0x5506, 0x5D6F, 0x5DE6, 0x5DEE, + 0x67FB, 0x6C99, 0x7473, 0x7802, + 0x8A50, 0x9396, 0x88DF, 0x5750, + 0x5EA7, 0x632B, 0x50B5, 0x50AC, /* 8DC0 */ + 0x518D, 0x6700, 0x54C9, 0x585E, + 0x59BB, 0x5BB0, 0x5F69, 0x624D, + 0x63A1, 0x683D, 0x6B73, 0x6E08, + 0x707D, 0x91C7, 0x7280, 0x7815, + 0x7826, 0x796D, 0x658E, 0x7D30, + 0x83DC, 0x88C1, 0x8F09, 0x969B, + 0x5264, 0x5728, 0x6750, 0x7F6A, + 0x8CA1, 0x51B4, 0x5742, 0x962A, /* 8DE0 */ + 0x583A, 0x698A, 0x80B4, 0x54B2, + 0x5D0E, 0x57FC, 0x7895, 0x9DFA, + 0x4F5C, 0x524A, 0x548B, 0x643E, + 0x6628, 0x6714, 0x67F5, 0x7A84, + 0x7B56, 0x7D22, 0x932F, 0x685C, + 0x9BAD, 0x7B39, 0x5319, 0x518A, + 0x5237, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5BDF, 0x62F6, 0x64AE, 0x64E6, /* 8E40 */ + 0x672D, 0x6BBA, 0x85A9, 0x96D1, + 0x7690, 0x9BD6, 0x634C, 0x9306, + 0x9BAB, 0x76BF, 0x6652, 0x4E09, + 0x5098, 0x53C2, 0x5C71, 0x60E8, + 0x6492, 0x6563, 0x685F, 0x71E6, + 0x73CA, 0x7523, 0x7B97, 0x7E82, + 0x8695, 0x8B83, 0x8CDB, 0x9178, + 0x9910, 0x65AC, 0x66AB, 0x6B8B, /* 8E60 */ + 0x4ED5, 0x4ED4, 0x4F3A, 0x4F7F, + 0x523A, 0x53F8, 0x53F2, 0x55E3, + 0x56DB, 0x58EB, 0x59CB, 0x59C9, + 0x59FF, 0x5B50, 0x5C4D, 0x5E02, + 0x5E2B, 0x5FD7, 0x601D, 0x6307, + 0x652F, 0x5B5C, 0x65AF, 0x65BD, + 0x65E8, 0x679D, 0x6B62, 0x0000, + 0x6B7B, 0x6C0F, 0x7345, 0x7949, /* 8E80 */ + 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, + 0x80A2, 0x8102, 0x81F3, 0x8996, + 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, + 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, + 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, + 0x4F8D, 0x5150, 0x5B57, 0x5BFA, + 0x6148, 0x6301, 0x6642, 0x6B21, + 0x6ECB, 0x6CBB, 0x723E, 0x74BD, /* 8EA0 */ + 0x75D4, 0x78C1, 0x793A, 0x800C, + 0x8033, 0x81EA, 0x8494, 0x8F9E, + 0x6C50, 0x9E7F, 0x5F0F, 0x8B58, + 0x9D2B, 0x7AFA, 0x8EF8, 0x5B8D, + 0x96EB, 0x4E03, 0x53F1, 0x57F7, + 0x5931, 0x5AC9, 0x5BA4, 0x6089, + 0x6E7F, 0x6F06, 0x75BE, 0x8CEA, + 0x5B9F, 0x8500, 0x7BE0, 0x5072, /* 8EC0 */ + 0x67F4, 0x829D, 0x5C61, 0x854A, + 0x7E1E, 0x820E, 0x5199, 0x5C04, + 0x6368, 0x8D66, 0x659C, 0x716E, + 0x793E, 0x7D17, 0x8005, 0x8B1D, + 0x8ECA, 0x906E, 0x86C7, 0x90AA, + 0x501F, 0x52FA, 0x5C3A, 0x6753, + 0x707C, 0x7235, 0x914C, 0x91C8, + 0x932B, 0x82E5, 0x5BC2, 0x5F31, /* 8EE0 */ + 0x60F9, 0x4E3B, 0x53D6, 0x5B88, + 0x624B, 0x6731, 0x6B8A, 0x72E9, + 0x73E0, 0x7A2E, 0x816B, 0x8DA3, + 0x9152, 0x9996, 0x5112, 0x53D7, + 0x546A, 0x5BFF, 0x6388, 0x6A39, + 0x7DAC, 0x9700, 0x56DA, 0x53CE, + 0x5468, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5B97, 0x5C31, 0x5DDE, 0x4FEE, /* 8F40 */ + 0x6101, 0x62FE, 0x6D32, 0x79C0, + 0x79CB, 0x7D42, 0x7E4D, 0x7FD2, + 0x81ED, 0x821F, 0x8490, 0x8846, + 0x8972, 0x8B90, 0x8E74, 0x8F2F, + 0x9031, 0x914B, 0x916C, 0x96C6, + 0x919C, 0x4EC0, 0x4F4F, 0x5145, + 0x5341, 0x5F93, 0x620E, 0x67D4, + 0x6C41, 0x6E0B, 0x7363, 0x7E26, /* 8F60 */ + 0x91CD, 0x9283, 0x53D4, 0x5919, + 0x5BBF, 0x6DD1, 0x795D, 0x7E2E, + 0x7C9B, 0x587E, 0x719F, 0x51FA, + 0x8853, 0x8FF0, 0x4FCA, 0x5CFB, + 0x6625, 0x77AC, 0x7AE3, 0x821C, + 0x99FF, 0x51C6, 0x5FAA, 0x65EC, + 0x696F, 0x6B89, 0x6DF3, 0x0000, + 0x6E96, 0x6F64, 0x76FE, 0x7D14, /* 8F80 */ + 0x5DE1, 0x9075, 0x9187, 0x9806, + 0x51E6, 0x521D, 0x6240, 0x6691, + 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, + 0x7F72, 0x66F8, 0x85AF, 0x85F7, + 0x8AF8, 0x52A9, 0x53D9, 0x5973, + 0x5E8F, 0x5F90, 0x6055, 0x92E4, + 0x9664, 0x50B7, 0x511F, 0x52DD, + 0x5320, 0x5347, 0x53EC, 0x54E8, /* 8FA0 */ + 0x5546, 0x5531, 0x5617, 0x5968, + 0x59BE, 0x5A3C, 0x5BB5, 0x5C06, + 0x5C0F, 0x5C11, 0x5C1A, 0x5E84, + 0x5E8A, 0x5EE0, 0x5F70, 0x627F, + 0x6284, 0x62DB, 0x638C, 0x6377, + 0x6607, 0x660C, 0x662D, 0x6676, + 0x677E, 0x68A2, 0x6A1F, 0x6A35, + 0x6CBC, 0x6D88, 0x6E09, 0x6E58, /* 8FC0 */ + 0x713C, 0x7126, 0x7167, 0x75C7, + 0x7701, 0x785D, 0x7901, 0x7965, + 0x79F0, 0x7AE0, 0x7B11, 0x7CA7, + 0x7D39, 0x8096, 0x83D6, 0x848B, + 0x8549, 0x885D, 0x88F3, 0x8A1F, + 0x8A3C, 0x8A54, 0x8A73, 0x8C61, + 0x8CDE, 0x91A4, 0x9266, 0x937E, + 0x9418, 0x969C, 0x9798, 0x4E0A, /* 8FE0 */ + 0x4E08, 0x4E1E, 0x4E57, 0x5197, + 0x5270, 0x57CE, 0x5834, 0x58CC, + 0x5B22, 0x5E38, 0x60C5, 0x64FE, + 0x6761, 0x6756, 0x6D44, 0x72B6, + 0x7573, 0x7A63, 0x84B8, 0x8B72, + 0x91B8, 0x9320, 0x5631, 0x57F4, + 0x98FE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x62ED, 0x690D, 0x6B96, 0x71ED, /* 9040 */ + 0x7E54, 0x8077, 0x8272, 0x89E6, + 0x98DF, 0x8755, 0x8FB1, 0x5C3B, + 0x4F38, 0x4FE1, 0x4FB5, 0x5507, + 0x5A20, 0x5BDD, 0x5BE9, 0x5FC3, + 0x614E, 0x632F, 0x65B0, 0x664B, + 0x68EE, 0x699B, 0x6D78, 0x6DF1, + 0x7533, 0x75B9, 0x771F, 0x795E, + 0x79E6, 0x7D33, 0x81E3, 0x82AF, /* 9060 */ + 0x85AA, 0x89AA, 0x8A3A, 0x8EAB, + 0x8F9B, 0x9032, 0x91DD, 0x9707, + 0x4EBA, 0x4EC1, 0x5203, 0x5875, + 0x58EC, 0x5C0B, 0x751A, 0x5C3D, + 0x814E, 0x8A0A, 0x8FC5, 0x9663, + 0x976D, 0x7B25, 0x8ACF, 0x9808, + 0x9162, 0x56F3, 0x53A8, 0x0000, + 0x9017, 0x5439, 0x5782, 0x5E25, /* 9080 */ + 0x63A8, 0x6C34, 0x708A, 0x7761, + 0x7C8B, 0x7FE0, 0x8870, 0x9042, + 0x9154, 0x9310, 0x9318, 0x968F, + 0x745E, 0x9AC4, 0x5D07, 0x5D69, + 0x6570, 0x67A2, 0x8DA8, 0x96DB, + 0x636E, 0x6749, 0x6919, 0x83C5, + 0x9817, 0x96C0, 0x88FE, 0x6F84, + 0x647A, 0x5BF8, 0x4E16, 0x702C, /* 90A0 */ + 0x755D, 0x662F, 0x51C4, 0x5236, + 0x52E2, 0x59D3, 0x5F81, 0x6027, + 0x6210, 0x653F, 0x6574, 0x661F, + 0x6674, 0x68F2, 0x6816, 0x6B63, + 0x6E05, 0x7272, 0x751F, 0x76DB, + 0x7CBE, 0x8056, 0x58F0, 0x88FD, + 0x897F, 0x8AA0, 0x8A93, 0x8ACB, + 0x901D, 0x9192, 0x9752, 0x9759, /* 90C0 */ + 0x6589, 0x7A0E, 0x8106, 0x96BB, + 0x5E2D, 0x60DC, 0x621A, 0x65A5, + 0x6614, 0x6790, 0x77F3, 0x7A4D, + 0x7C4D, 0x7E3E, 0x810A, 0x8CAC, + 0x8D64, 0x8DE1, 0x8E5F, 0x78A9, + 0x5207, 0x62D9, 0x63A5, 0x6442, + 0x6298, 0x8A2D, 0x7A83, 0x7BC0, + 0x8AAC, 0x96EA, 0x7D76, 0x820C, /* 90E0 */ + 0x8749, 0x4ED9, 0x5148, 0x5343, + 0x5360, 0x5BA3, 0x5C02, 0x5C16, + 0x5DDD, 0x6226, 0x6247, 0x64B0, + 0x6813, 0x6834, 0x6CC9, 0x6D45, + 0x6D17, 0x67D3, 0x6F5C, 0x714E, + 0x717D, 0x65CB, 0x7A7F, 0x7BAD, + 0x7DDA, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x7E4A, 0x7FA8, 0x817A, 0x821B, /* 9140 */ + 0x8239, 0x85A6, 0x8A6E, 0x8CCE, + 0x8DF5, 0x9078, 0x9077, 0x92AD, + 0x9291, 0x9583, 0x9BAE, 0x524D, + 0x5584, 0x6F38, 0x7136, 0x5168, + 0x7985, 0x7E55, 0x81B3, 0x7CCE, + 0x564C, 0x5851, 0x5CA8, 0x63AA, + 0x66FE, 0x66FD, 0x695A, 0x72D9, + 0x758F, 0x758E, 0x790E, 0x7956, /* 9160 */ + 0x79DF, 0x7C97, 0x7D20, 0x7D44, + 0x8607, 0x8A34, 0x963B, 0x9061, + 0x9F20, 0x50E7, 0x5275, 0x53CC, + 0x53E2, 0x5009, 0x55AA, 0x58EE, + 0x594F, 0x723D, 0x5B8B, 0x5C64, + 0x531D, 0x60E3, 0x60F3, 0x635C, + 0x6383, 0x633F, 0x63BB, 0x0000, + 0x64CD, 0x65E9, 0x66F9, 0x5DE3, /* 9180 */ + 0x69CD, 0x69FD, 0x6F15, 0x71E5, + 0x4E89, 0x75E9, 0x76F8, 0x7A93, + 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, + 0x8349, 0x8358, 0x846C, 0x84BC, + 0x85FB, 0x88C5, 0x8D70, 0x9001, + 0x906D, 0x9397, 0x971C, 0x9A12, + 0x50CF, 0x5897, 0x618E, 0x81D3, + 0x8535, 0x8D08, 0x9020, 0x4FC3, /* 91A0 */ + 0x5074, 0x5247, 0x5373, 0x606F, + 0x6349, 0x675F, 0x6E2C, 0x8DB3, + 0x901F, 0x4FD7, 0x5C5E, 0x8CCA, + 0x65CF, 0x7D9A, 0x5352, 0x8896, + 0x5176, 0x63C3, 0x5B58, 0x5B6B, + 0x5C0A, 0x640D, 0x6751, 0x905C, + 0x4ED6, 0x591A, 0x592A, 0x6C70, + 0x8A51, 0x553E, 0x5815, 0x59A5, /* 91C0 */ + 0x60F0, 0x6253, 0x67C1, 0x8235, + 0x6955, 0x9640, 0x99C4, 0x9A28, + 0x4F53, 0x5806, 0x5BFE, 0x8010, + 0x5CB1, 0x5E2F, 0x5F85, 0x6020, + 0x614B, 0x6234, 0x66FF, 0x6CF0, + 0x6EDE, 0x80CE, 0x817F, 0x82D4, + 0x888B, 0x8CB8, 0x9000, 0x902E, + 0x968A, 0x9EDB, 0x9BDB, 0x4EE3, /* 91E0 */ + 0x53F0, 0x5927, 0x7B2C, 0x918D, + 0x984C, 0x9DF9, 0x6EDD, 0x7027, + 0x5353, 0x5544, 0x5B85, 0x6258, + 0x629E, 0x62D3, 0x6CA2, 0x6FEF, + 0x7422, 0x8A17, 0x9438, 0x6FC1, + 0x8AFE, 0x8338, 0x51E7, 0x86F8, + 0x53EA, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x53E9, 0x4F46, 0x9054, 0x8FB0, /* 9240 */ + 0x596A, 0x8131, 0x5DFD, 0x7AEA, + 0x8FBF, 0x68DA, 0x8C37, 0x72F8, + 0x9C48, 0x6A3D, 0x8AB0, 0x4E39, + 0x5358, 0x5606, 0x5766, 0x62C5, + 0x63A2, 0x65E6, 0x6B4E, 0x6DE1, + 0x6E5B, 0x70AD, 0x77ED, 0x7AEF, + 0x7BAA, 0x7DBB, 0x803D, 0x80C6, + 0x86CB, 0x8A95, 0x935B, 0x56E3, /* 9260 */ + 0x58C7, 0x5F3E, 0x65AD, 0x6696, + 0x6A80, 0x6BB5, 0x7537, 0x8AC7, + 0x5024, 0x77E5, 0x5730, 0x5F1B, + 0x6065, 0x667A, 0x6C60, 0x75F4, + 0x7A1A, 0x7F6E, 0x81F4, 0x8718, + 0x9045, 0x99B3, 0x7BC9, 0x755C, + 0x7AF9, 0x7B51, 0x84C4, 0x0000, + 0x9010, 0x79E9, 0x7A92, 0x8336, /* 9280 */ + 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, + 0x5B99, 0x5FE0, 0x62BD, 0x663C, + 0x67F1, 0x6CE8, 0x866B, 0x8877, + 0x8A3B, 0x914E, 0x92F3, 0x99D0, + 0x6A17, 0x7026, 0x732A, 0x82E7, + 0x8457, 0x8CAF, 0x4E01, 0x5146, + 0x51CB, 0x558B, 0x5BF5, 0x5E16, + 0x5E33, 0x5E81, 0x5F14, 0x5F35, /* 92A0 */ + 0x5F6B, 0x5FB4, 0x61F2, 0x6311, + 0x66A2, 0x671D, 0x6F6E, 0x7252, + 0x753A, 0x773A, 0x8074, 0x8139, + 0x8178, 0x8776, 0x8ABF, 0x8ADC, + 0x8D85, 0x8DF3, 0x929A, 0x9577, + 0x9802, 0x9CE5, 0x52C5, 0x6357, + 0x76F4, 0x6715, 0x6C88, 0x73CD, + 0x8CC3, 0x93AE, 0x9673, 0x6D25, /* 92C0 */ + 0x589C, 0x690E, 0x69CC, 0x8FFD, + 0x939A, 0x75DB, 0x901A, 0x585A, + 0x6802, 0x63B4, 0x69FB, 0x4F43, + 0x6F2C, 0x67D8, 0x8FBB, 0x8526, + 0x7DB4, 0x9354, 0x693F, 0x6F70, + 0x576A, 0x58F7, 0x5B2C, 0x7D2C, + 0x722A, 0x540A, 0x91E3, 0x9DB4, + 0x4EAD, 0x4F4E, 0x505C, 0x5075, /* 92E0 */ + 0x5243, 0x8C9E, 0x5448, 0x5824, + 0x5B9A, 0x5E1D, 0x5E95, 0x5EAD, + 0x5EF7, 0x5F1F, 0x608C, 0x62B5, + 0x633A, 0x63D0, 0x68AF, 0x6C40, + 0x7887, 0x798E, 0x7A0B, 0x7DE0, + 0x8247, 0x8A02, 0x8AE6, 0x8E44, + 0x9013, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x90B8, 0x912D, 0x91D8, 0x9F0E, /* 9340 */ + 0x6CE5, 0x6458, 0x64E2, 0x6575, + 0x6EF4, 0x7684, 0x7B1B, 0x9069, + 0x93D1, 0x6EBA, 0x54F2, 0x5FB9, + 0x64A4, 0x8F4D, 0x8FED, 0x9244, + 0x5178, 0x586B, 0x5929, 0x5C55, + 0x5E97, 0x6DFB, 0x7E8F, 0x751C, + 0x8CBC, 0x8EE2, 0x985B, 0x70B9, + 0x4F1D, 0x6BBF, 0x6FB1, 0x7530, /* 9360 */ + 0x96FB, 0x514E, 0x5410, 0x5835, + 0x5857, 0x59AC, 0x5C60, 0x5F92, + 0x6597, 0x675C, 0x6E21, 0x767B, + 0x83DF, 0x8CED, 0x9014, 0x90FD, + 0x934D, 0x7825, 0x783A, 0x52AA, + 0x5EA6, 0x571F, 0x5974, 0x6012, + 0x5012, 0x515A, 0x51AC, 0x0000, + 0x51CD, 0x5200, 0x5510, 0x5854, /* 9380 */ + 0x5858, 0x5957, 0x5B95, 0x5CF6, + 0x5D8B, 0x60BC, 0x6295, 0x642D, + 0x6771, 0x6843, 0x68BC, 0x68DF, + 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, + 0x706F, 0x71C8, 0x5F53, 0x75D8, + 0x7977, 0x7B49, 0x7B54, 0x7B52, + 0x7CD6, 0x7D71, 0x5230, 0x8463, + 0x8569, 0x85E4, 0x8A0E, 0x8B04, /* 93A0 */ + 0x8C46, 0x8E0F, 0x9003, 0x900F, + 0x9419, 0x9676, 0x982D, 0x9A30, + 0x95D8, 0x50CD, 0x52D5, 0x540C, + 0x5802, 0x5C0E, 0x61A7, 0x649E, + 0x6D1E, 0x77B3, 0x7AE5, 0x80F4, + 0x8404, 0x9053, 0x9285, 0x5CE0, + 0x9D07, 0x533F, 0x5F97, 0x5FB3, + 0x6D9C, 0x7279, 0x7763, 0x79BF, /* 93C0 */ + 0x7BE4, 0x6BD2, 0x72EC, 0x8AAD, + 0x6803, 0x6A61, 0x51F8, 0x7A81, + 0x6934, 0x5C4A, 0x9CF6, 0x82EB, + 0x5BC5, 0x9149, 0x701E, 0x5678, + 0x5C6F, 0x60C7, 0x6566, 0x6C8C, + 0x8C5A, 0x9041, 0x9813, 0x5451, + 0x66C7, 0x920D, 0x5948, 0x90A3, + 0x5185, 0x4E4D, 0x51EA, 0x8599, /* 93E0 */ + 0x8B0E, 0x7058, 0x637A, 0x934B, + 0x6962, 0x99B4, 0x7E04, 0x7577, + 0x5357, 0x6960, 0x8EDF, 0x96E3, + 0x6C5D, 0x4E8C, 0x5C3C, 0x5F10, + 0x8FE9, 0x5302, 0x8CD1, 0x8089, + 0x8679, 0x5EFF, 0x65E5, 0x4E73, + 0x5165, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5982, 0x5C3F, 0x97EE, 0x4EFB, /* 9440 */ + 0x598A, 0x5FCD, 0x8A8D, 0x6FE1, + 0x79B0, 0x7962, 0x5BE7, 0x8471, + 0x732B, 0x71B1, 0x5E74, 0x5FF5, + 0x637B, 0x649A, 0x71C3, 0x7C98, + 0x4E43, 0x5EFC, 0x4E4B, 0x57DC, + 0x56A2, 0x60A9, 0x6FC3, 0x7D0D, + 0x80FD, 0x8133, 0x81BF, 0x8FB2, + 0x8997, 0x86A4, 0x5DF4, 0x628A, /* 9460 */ + 0x64AD, 0x8987, 0x6777, 0x6CE2, + 0x6D3E, 0x7436, 0x7834, 0x5A46, + 0x7F75, 0x82AD, 0x99AC, 0x4FF3, + 0x5EC3, 0x62DD, 0x6392, 0x6557, + 0x676F, 0x76C3, 0x724C, 0x80CC, + 0x80BA, 0x8F29, 0x914D, 0x500D, + 0x57F9, 0x5A92, 0x6885, 0x0000, + 0x6973, 0x7164, 0x72FD, 0x8CB7, /* 9480 */ + 0x58F2, 0x8CE0, 0x966A, 0x9019, + 0x877F, 0x79E4, 0x77E7, 0x8429, + 0x4F2F, 0x5265, 0x535A, 0x62CD, + 0x67CF, 0x6CCA, 0x767D, 0x7B94, + 0x7C95, 0x8236, 0x8584, 0x8FEB, + 0x66DD, 0x6F20, 0x7206, 0x7E1B, + 0x83AB, 0x99C1, 0x9EA6, 0x51FD, + 0x7BB1, 0x7872, 0x7BB8, 0x8087, /* 94A0 */ + 0x7B48, 0x6AE8, 0x5E61, 0x808C, + 0x7551, 0x7560, 0x516B, 0x9262, + 0x6E8C, 0x767A, 0x9197, 0x9AEA, + 0x4F10, 0x7F70, 0x629C, 0x7B4F, + 0x95A5, 0x9CE9, 0x567A, 0x5859, + 0x86E4, 0x96BC, 0x4F34, 0x5224, + 0x534A, 0x53CD, 0x53DB, 0x5E06, + 0x642C, 0x6591, 0x677F, 0x6C3E, /* 94C0 */ + 0x6C4E, 0x7248, 0x72AF, 0x73ED, + 0x7554, 0x7E41, 0x822C, 0x85E9, + 0x8CA9, 0x7BC4, 0x91C6, 0x7169, + 0x9812, 0x98EF, 0x633D, 0x6669, + 0x756A, 0x76E4, 0x78D0, 0x8543, + 0x86EE, 0x532A, 0x5351, 0x5426, + 0x5983, 0x5E87, 0x5F7C, 0x60B2, + 0x6249, 0x6279, 0x62AB, 0x6590, /* 94E0 */ + 0x6BD4, 0x6CCC, 0x75B2, 0x76AE, + 0x7891, 0x79D8, 0x7DCB, 0x7F77, + 0x80A5, 0x88AB, 0x8AB9, 0x8CBB, + 0x907F, 0x975E, 0x98DB, 0x6A0B, + 0x7C38, 0x5099, 0x5C3E, 0x5FAE, + 0x6787, 0x6BD8, 0x7435, 0x7709, + 0x7F8E, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9F3B, 0x67CA, 0x7A17, 0x5339, /* 9540 */ + 0x758B, 0x9AED, 0x5F66, 0x819D, + 0x83F1, 0x8098, 0x5F3C, 0x5FC5, + 0x7562, 0x7B46, 0x903C, 0x6867, + 0x59EB, 0x5A9B, 0x7D10, 0x767E, + 0x8B2C, 0x4FF5, 0x5F6A, 0x6A19, + 0x6C37, 0x6F02, 0x74E2, 0x7968, + 0x8868, 0x8A55, 0x8C79, 0x5EDF, + 0x63CF, 0x75C5, 0x79D2, 0x82D7, /* 9560 */ + 0x9328, 0x92F2, 0x849C, 0x86ED, + 0x9C2D, 0x54C1, 0x5F6C, 0x658C, + 0x6D5C, 0x7015, 0x8CA7, 0x8CD3, + 0x983B, 0x654F, 0x74F6, 0x4E0D, + 0x4ED8, 0x57E0, 0x592B, 0x5A66, + 0x5BCC, 0x51A8, 0x5E03, 0x5E9C, + 0x6016, 0x6276, 0x6577, 0x0000, + 0x65A7, 0x666E, 0x6D6E, 0x7236, /* 9580 */ + 0x7B26, 0x8150, 0x819A, 0x8299, + 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, + 0x961C, 0x9644, 0x4FAE, 0x64AB, + 0x6B66, 0x821E, 0x8461, 0x856A, + 0x90E8, 0x5C01, 0x6953, 0x98A8, + 0x847A, 0x8557, 0x4F0F, 0x526F, + 0x5FA9, 0x5E45, 0x670D, 0x798F, + 0x8179, 0x8907, 0x8986, 0x6DF5, /* 95A0 */ + 0x5F17, 0x6255, 0x6CB8, 0x4ECF, + 0x7269, 0x9B92, 0x5206, 0x543B, + 0x5674, 0x58B3, 0x61A4, 0x626E, + 0x711A, 0x596E, 0x7C89, 0x7CDE, + 0x7D1B, 0x96F0, 0x6587, 0x805E, + 0x4E19, 0x4F75, 0x5175, 0x5840, + 0x5E63, 0x5E73, 0x5F0A, 0x67C4, + 0x4E26, 0x853D, 0x9589, 0x965B, /* 95C0 */ + 0x7C73, 0x9801, 0x50FB, 0x58C1, + 0x7656, 0x78A7, 0x5225, 0x77A5, + 0x8511, 0x7B86, 0x504F, 0x5909, + 0x7247, 0x7BC7, 0x7DE8, 0x8FBA, + 0x8FD4, 0x904D, 0x4FBF, 0x52C9, + 0x5A29, 0x5F01, 0x97AD, 0x4FDD, + 0x8217, 0x92EA, 0x5703, 0x6355, + 0x6B69, 0x752B, 0x88DC, 0x8F14, /* 95E0 */ + 0x7A42, 0x52DF, 0x5893, 0x6155, + 0x620A, 0x66AE, 0x6BCD, 0x7C3F, + 0x83E9, 0x5023, 0x4FF8, 0x5305, + 0x5446, 0x5831, 0x5949, 0x5B9D, + 0x5CF0, 0x5CEF, 0x5D29, 0x5E96, + 0x62B1, 0x6367, 0x653E, 0x65B9, + 0x670B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6CD5, 0x6CE1, 0x70F9, 0x7832, /* 9640 */ + 0x7E2B, 0x80DE, 0x82B3, 0x840C, + 0x84EC, 0x8702, 0x8912, 0x8A2A, + 0x8C4A, 0x90A6, 0x92D2, 0x98FD, + 0x9CF3, 0x9D6C, 0x4E4F, 0x4EA1, + 0x508D, 0x5256, 0x574A, 0x59A8, + 0x5E3D, 0x5FD8, 0x5FD9, 0x623F, + 0x66B4, 0x671B, 0x67D0, 0x68D2, + 0x5192, 0x7D21, 0x80AA, 0x81A8, /* 9660 */ + 0x8B00, 0x8C8C, 0x8CBF, 0x927E, + 0x9632, 0x5420, 0x982C, 0x5317, + 0x50D5, 0x535C, 0x58A8, 0x64B2, + 0x6734, 0x7267, 0x7766, 0x7A46, + 0x91E6, 0x52C3, 0x6CA1, 0x6B86, + 0x5800, 0x5E4C, 0x5954, 0x672C, + 0x7FFB, 0x51E1, 0x76C6, 0x0000, + 0x6469, 0x78E8, 0x9B54, 0x9EBB, /* 9680 */ + 0x57CB, 0x59B9, 0x6627, 0x679A, + 0x6BCE, 0x54E9, 0x69D9, 0x5E55, + 0x819C, 0x6795, 0x9BAA, 0x67FE, + 0x9C52, 0x685D, 0x4EA6, 0x4FE3, + 0x53C8, 0x62B9, 0x672B, 0x6CAB, + 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, + 0x4E07, 0x6162, 0x6E80, 0x6F2B, + 0x8513, 0x5473, 0x672A, 0x9B45, /* 96A0 */ + 0x5DF3, 0x7B95, 0x5CAC, 0x5BC6, + 0x871C, 0x6E4A, 0x84D1, 0x7A14, + 0x8108, 0x5999, 0x7C8D, 0x6C11, + 0x7720, 0x52D9, 0x5922, 0x7121, + 0x725F, 0x77DB, 0x9727, 0x9D61, + 0x690B, 0x5A7F, 0x5A18, 0x51A5, + 0x540D, 0x547D, 0x660E, 0x76DF, + 0x8FF7, 0x9298, 0x9CF4, 0x59EA, /* 96C0 */ + 0x725D, 0x6EC5, 0x514D, 0x68C9, + 0x7DBF, 0x7DEC, 0x9762, 0x9EBA, + 0x6478, 0x6A21, 0x8302, 0x5984, + 0x5B5F, 0x6BDB, 0x731B, 0x76F2, + 0x7DB2, 0x8017, 0x8499, 0x5132, + 0x6728, 0x9ED9, 0x76EE, 0x6762, + 0x52FF, 0x9905, 0x5C24, 0x623B, + 0x7C7E, 0x8CB0, 0x554F, 0x60B6, /* 96E0 */ + 0x7D0B, 0x9580, 0x5301, 0x4E5F, + 0x51B6, 0x591C, 0x723A, 0x8036, + 0x91CE, 0x5F25, 0x77E2, 0x5384, + 0x5F79, 0x7D04, 0x85AC, 0x8A33, + 0x8E8D, 0x9756, 0x67F3, 0x85AE, + 0x9453, 0x6109, 0x6108, 0x6CB9, + 0x7652, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8AED, 0x8F38, 0x552F, 0x4F51, /* 9740 */ + 0x512A, 0x52C7, 0x53CB, 0x5BA5, + 0x5E7D, 0x60A0, 0x6182, 0x63D6, + 0x6709, 0x67DA, 0x6E67, 0x6D8C, + 0x7336, 0x7337, 0x7531, 0x7950, + 0x88D5, 0x8A98, 0x904A, 0x9091, + 0x90F5, 0x96C4, 0x878D, 0x5915, + 0x4E88, 0x4F59, 0x4E0E, 0x8A89, + 0x8F3F, 0x9810, 0x50AD, 0x5E7C, /* 9760 */ + 0x5996, 0x5BB9, 0x5EB8, 0x63DA, + 0x63FA, 0x64C1, 0x66DC, 0x694A, + 0x69D8, 0x6D0B, 0x6EB6, 0x7194, + 0x7528, 0x7AAF, 0x7F8A, 0x8000, + 0x8449, 0x84C9, 0x8981, 0x8B21, + 0x8E0A, 0x9065, 0x967D, 0x990A, + 0x617E, 0x6291, 0x6B32, 0x0000, + 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, /* 9780 */ + 0x6DC0, 0x7F85, 0x87BA, 0x88F8, + 0x6765, 0x83B1, 0x983C, 0x96F7, + 0x6D1B, 0x7D61, 0x843D, 0x916A, + 0x4E71, 0x5375, 0x5D50, 0x6B04, + 0x6FEB, 0x85CD, 0x862D, 0x89A7, + 0x5229, 0x540F, 0x5C65, 0x674E, + 0x68A8, 0x7406, 0x7483, 0x75E2, + 0x88CF, 0x88E1, 0x91CC, 0x96E2, /* 97A0 */ + 0x9678, 0x5F8B, 0x7387, 0x7ACB, + 0x844E, 0x63A0, 0x7565, 0x5289, + 0x6D41, 0x6E9C, 0x7409, 0x7559, + 0x786B, 0x7C92, 0x9686, 0x7ADC, + 0x9F8D, 0x4FB6, 0x616E, 0x65C5, + 0x865C, 0x4E86, 0x4EAE, 0x50DA, + 0x4E21, 0x51CC, 0x5BEE, 0x6599, + 0x6881, 0x6DBC, 0x731F, 0x7642, /* 97C0 */ + 0x77AD, 0x7A1C, 0x7CE7, 0x826F, + 0x8AD2, 0x907C, 0x91CF, 0x9675, + 0x9818, 0x529B, 0x7DD1, 0x502B, + 0x5398, 0x6797, 0x6DCB, 0x71D0, + 0x7433, 0x81E8, 0x8F2A, 0x96A3, + 0x9C57, 0x9E9F, 0x7460, 0x5841, + 0x6D99, 0x7D2F, 0x985E, 0x4EE4, + 0x4F36, 0x4F8B, 0x51B7, 0x52B1, /* 97E0 */ + 0x5DBA, 0x601C, 0x73B2, 0x793C, + 0x82D3, 0x9234, 0x96B7, 0x96F6, + 0x970A, 0x9E97, 0x9F62, 0x66A6, + 0x6B74, 0x5217, 0x52A3, 0x70C8, + 0x88C2, 0x5EC9, 0x604B, 0x6190, + 0x6F23, 0x7149, 0x7C3E, 0x7DF4, + 0x806F, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x84EE, 0x9023, 0x932C, 0x5442, /* 9840 */ + 0x9B6F, 0x6AD3, 0x7089, 0x8CC2, + 0x8DEF, 0x9732, 0x52B4, 0x5A41, + 0x5ECA, 0x5F04, 0x6717, 0x697C, + 0x6994, 0x6D6A, 0x6F0F, 0x7262, + 0x72FC, 0x7BED, 0x8001, 0x807E, + 0x874B, 0x90CE, 0x516D, 0x9E93, + 0x7984, 0x808B, 0x9332, 0x8AD6, + 0x502D, 0x548C, 0x8A71, 0x6B6A, /* 9860 */ + 0x8CC4, 0x8107, 0x60D1, 0x67A0, + 0x9DF2, 0x4E99, 0x4E98, 0x9C10, + 0x8A6B, 0x85C1, 0x8568, 0x6900, + 0x6E7E, 0x7897, 0x8155, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5F0C, + 0x4E10, 0x4E15, 0x4E2A, 0x4E31, /* 98A0 */ + 0x4E36, 0x4E3C, 0x4E3F, 0x4E42, + 0x4E56, 0x4E58, 0x4E82, 0x4E85, + 0x8C6B, 0x4E8A, 0x8212, 0x5F0D, + 0x4E8E, 0x4E9E, 0x4E9F, 0x4EA0, + 0x4EA2, 0x4EB0, 0x4EB3, 0x4EB6, + 0x4ECE, 0x4ECD, 0x4EC4, 0x4EC6, + 0x4EC2, 0x4ED7, 0x4EDE, 0x4EED, + 0x4EDF, 0x4EF7, 0x4F09, 0x4F5A, /* 98C0 */ + 0x4F30, 0x4F5B, 0x4F5D, 0x4F57, + 0x4F47, 0x4F76, 0x4F88, 0x4F8F, + 0x4F98, 0x4F7B, 0x4F69, 0x4F70, + 0x4F91, 0x4F6F, 0x4F86, 0x4F96, + 0x5118, 0x4FD4, 0x4FDF, 0x4FCE, + 0x4FD8, 0x4FDB, 0x4FD1, 0x4FDA, + 0x4FD0, 0x4FE4, 0x4FE5, 0x501A, + 0x5028, 0x5014, 0x502A, 0x5025, /* 98E0 */ + 0x5005, 0x4F1C, 0x4FF6, 0x5021, + 0x5029, 0x502C, 0x4FFE, 0x4FEF, + 0x5011, 0x5006, 0x5043, 0x5047, + 0x6703, 0x5055, 0x5050, 0x5048, + 0x505A, 0x5056, 0x506C, 0x5078, + 0x5080, 0x509A, 0x5085, 0x50B4, + 0x50B2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x50C9, 0x50CA, 0x50B3, 0x50C2, /* 9940 */ + 0x50D6, 0x50DE, 0x50E5, 0x50ED, + 0x50E3, 0x50EE, 0x50F9, 0x50F5, + 0x5109, 0x5101, 0x5102, 0x5116, + 0x5115, 0x5114, 0x511A, 0x5121, + 0x513A, 0x5137, 0x513C, 0x513B, + 0x513F, 0x5140, 0x5152, 0x514C, + 0x5154, 0x5162, 0x7AF8, 0x5169, + 0x516A, 0x516E, 0x5180, 0x5182, /* 9960 */ + 0x56D8, 0x518C, 0x5189, 0x518F, + 0x5191, 0x5193, 0x5195, 0x5196, + 0x51A4, 0x51A6, 0x51A2, 0x51A9, + 0x51AA, 0x51AB, 0x51B3, 0x51B1, + 0x51B2, 0x51B0, 0x51B5, 0x51BD, + 0x51C5, 0x51C9, 0x51DB, 0x51E0, + 0x8655, 0x51E9, 0x51ED, 0x0000, + 0x51F0, 0x51F5, 0x51FE, 0x5204, /* 9980 */ + 0x520B, 0x5214, 0x520E, 0x5227, + 0x522A, 0x522E, 0x5233, 0x5239, + 0x524F, 0x5244, 0x524B, 0x524C, + 0x525E, 0x5254, 0x526A, 0x5274, + 0x5269, 0x5273, 0x527F, 0x527D, + 0x528D, 0x5294, 0x5292, 0x5271, + 0x5288, 0x5291, 0x8FA8, 0x8FA7, + 0x52AC, 0x52AD, 0x52BC, 0x52B5, /* 99A0 */ + 0x52C1, 0x52CD, 0x52D7, 0x52DE, + 0x52E3, 0x52E6, 0x98ED, 0x52E0, + 0x52F3, 0x52F5, 0x52F8, 0x52F9, + 0x5306, 0x5308, 0x7538, 0x530D, + 0x5310, 0x530F, 0x5315, 0x531A, + 0x5323, 0x532F, 0x5331, 0x5333, + 0x5338, 0x5340, 0x5346, 0x5345, + 0x4E17, 0x5349, 0x534D, 0x51D6, /* 99C0 */ + 0x535E, 0x5369, 0x536E, 0x5918, + 0x537B, 0x5377, 0x5382, 0x5396, + 0x53A0, 0x53A6, 0x53A5, 0x53AE, + 0x53B0, 0x53B6, 0x53C3, 0x7C12, + 0x96D9, 0x53DF, 0x66FC, 0x71EE, + 0x53EE, 0x53E8, 0x53ED, 0x53FA, + 0x5401, 0x543D, 0x5440, 0x542C, + 0x542D, 0x543C, 0x542E, 0x5436, /* 99E0 */ + 0x5429, 0x541D, 0x544E, 0x548F, + 0x5475, 0x548E, 0x545F, 0x5471, + 0x5477, 0x5470, 0x5492, 0x547B, + 0x5480, 0x5476, 0x5484, 0x5490, + 0x5486, 0x54C7, 0x54A2, 0x54B8, + 0x54A5, 0x54AC, 0x54C4, 0x54C8, + 0x54A8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x54AB, 0x54C2, 0x54A4, 0x54BE, /* 9A40 */ + 0x54BC, 0x54D8, 0x54E5, 0x54E6, + 0x550F, 0x5514, 0x54FD, 0x54EE, + 0x54ED, 0x54FA, 0x54E2, 0x5539, + 0x5540, 0x5563, 0x554C, 0x552E, + 0x555C, 0x5545, 0x5556, 0x5557, + 0x5538, 0x5533, 0x555D, 0x5599, + 0x5580, 0x54AF, 0x558A, 0x559F, + 0x557B, 0x557E, 0x5598, 0x559E, /* 9A60 */ + 0x55AE, 0x557C, 0x5583, 0x55A9, + 0x5587, 0x55A8, 0x55DA, 0x55C5, + 0x55DF, 0x55C4, 0x55DC, 0x55E4, + 0x55D4, 0x5614, 0x55F7, 0x5616, + 0x55FE, 0x55FD, 0x561B, 0x55F9, + 0x564E, 0x5650, 0x71DF, 0x5634, + 0x5636, 0x5632, 0x5638, 0x0000, + 0x566B, 0x5664, 0x562F, 0x566C, /* 9A80 */ + 0x566A, 0x5686, 0x5680, 0x568A, + 0x56A0, 0x5694, 0x568F, 0x56A5, + 0x56AE, 0x56B6, 0x56B4, 0x56C2, + 0x56BC, 0x56C1, 0x56C3, 0x56C0, + 0x56C8, 0x56CE, 0x56D1, 0x56D3, + 0x56D7, 0x56EE, 0x56F9, 0x5700, + 0x56FF, 0x5704, 0x5709, 0x5708, + 0x570B, 0x570D, 0x5713, 0x5718, /* 9AA0 */ + 0x5716, 0x55C7, 0x571C, 0x5726, + 0x5737, 0x5738, 0x574E, 0x573B, + 0x5740, 0x574F, 0x5769, 0x57C0, + 0x5788, 0x5761, 0x577F, 0x5789, + 0x5793, 0x57A0, 0x57B3, 0x57A4, + 0x57AA, 0x57B0, 0x57C3, 0x57C6, + 0x57D4, 0x57D2, 0x57D3, 0x580A, + 0x57D6, 0x57E3, 0x580B, 0x5819, /* 9AC0 */ + 0x581D, 0x5872, 0x5821, 0x5862, + 0x584B, 0x5870, 0x6BC0, 0x5852, + 0x583D, 0x5879, 0x5885, 0x58B9, + 0x589F, 0x58AB, 0x58BA, 0x58DE, + 0x58BB, 0x58B8, 0x58AE, 0x58C5, + 0x58D3, 0x58D1, 0x58D7, 0x58D9, + 0x58D8, 0x58E5, 0x58DC, 0x58E4, + 0x58DF, 0x58EF, 0x58FA, 0x58F9, /* 9AE0 */ + 0x58FB, 0x58FC, 0x58FD, 0x5902, + 0x590A, 0x5910, 0x591B, 0x68A6, + 0x5925, 0x592C, 0x592D, 0x5932, + 0x5938, 0x593E, 0x7AD2, 0x5955, + 0x5950, 0x594E, 0x595A, 0x5958, + 0x5962, 0x5960, 0x5967, 0x596C, + 0x5969, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5978, 0x5981, 0x599D, 0x4F5E, /* 9B40 */ + 0x4FAB, 0x59A3, 0x59B2, 0x59C6, + 0x59E8, 0x59DC, 0x598D, 0x59D9, + 0x59DA, 0x5A25, 0x5A1F, 0x5A11, + 0x5A1C, 0x5A09, 0x5A1A, 0x5A40, + 0x5A6C, 0x5A49, 0x5A35, 0x5A36, + 0x5A62, 0x5A6A, 0x5A9A, 0x5ABC, + 0x5ABE, 0x5ACB, 0x5AC2, 0x5ABD, + 0x5AE3, 0x5AD7, 0x5AE6, 0x5AE9, /* 9B60 */ + 0x5AD6, 0x5AFA, 0x5AFB, 0x5B0C, + 0x5B0B, 0x5B16, 0x5B32, 0x5AD0, + 0x5B2A, 0x5B36, 0x5B3E, 0x5B43, + 0x5B45, 0x5B40, 0x5B51, 0x5B55, + 0x5B5A, 0x5B5B, 0x5B65, 0x5B69, + 0x5B70, 0x5B73, 0x5B75, 0x5B78, + 0x6588, 0x5B7A, 0x5B80, 0x0000, + 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, /* 9B80 */ + 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, + 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, + 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, + 0x5BF3, 0x5C05, 0x5C07, 0x5C08, + 0x5C0D, 0x5C13, 0x5C20, 0x5C22, + 0x5C28, 0x5C38, 0x5C39, 0x5C41, + 0x5C46, 0x5C4E, 0x5C53, 0x5C50, + 0x5C4F, 0x5B71, 0x5C6C, 0x5C6E, /* 9BA0 */ + 0x4E62, 0x5C76, 0x5C79, 0x5C8C, + 0x5C91, 0x5C94, 0x599B, 0x5CAB, + 0x5CBB, 0x5CB6, 0x5CBC, 0x5CB7, + 0x5CC5, 0x5CBE, 0x5CC7, 0x5CD9, + 0x5CE9, 0x5CFD, 0x5CFA, 0x5CED, + 0x5D8C, 0x5CEA, 0x5D0B, 0x5D15, + 0x5D17, 0x5D5C, 0x5D1F, 0x5D1B, + 0x5D11, 0x5D14, 0x5D22, 0x5D1A, /* 9BC0 */ + 0x5D19, 0x5D18, 0x5D4C, 0x5D52, + 0x5D4E, 0x5D4B, 0x5D6C, 0x5D73, + 0x5D76, 0x5D87, 0x5D84, 0x5D82, + 0x5DA2, 0x5D9D, 0x5DAC, 0x5DAE, + 0x5DBD, 0x5D90, 0x5DB7, 0x5DBC, + 0x5DC9, 0x5DCD, 0x5DD3, 0x5DD2, + 0x5DD6, 0x5DDB, 0x5DEB, 0x5DF2, + 0x5DF5, 0x5E0B, 0x5E1A, 0x5E19, /* 9BE0 */ + 0x5E11, 0x5E1B, 0x5E36, 0x5E37, + 0x5E44, 0x5E43, 0x5E40, 0x5E4E, + 0x5E57, 0x5E54, 0x5E5F, 0x5E62, + 0x5E64, 0x5E47, 0x5E75, 0x5E76, + 0x5E7A, 0x9EBC, 0x5E7F, 0x5EA0, + 0x5EC1, 0x5EC2, 0x5EC8, 0x5ED0, + 0x5ECF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5ED6, 0x5EE3, 0x5EDD, 0x5EDA, /* 9C40 */ + 0x5EDB, 0x5EE2, 0x5EE1, 0x5EE8, + 0x5EE9, 0x5EEC, 0x5EF1, 0x5EF3, + 0x5EF0, 0x5EF4, 0x5EF8, 0x5EFE, + 0x5F03, 0x5F09, 0x5F5D, 0x5F5C, + 0x5F0B, 0x5F11, 0x5F16, 0x5F29, + 0x5F2D, 0x5F38, 0x5F41, 0x5F48, + 0x5F4C, 0x5F4E, 0x5F2F, 0x5F51, + 0x5F56, 0x5F57, 0x5F59, 0x5F61, /* 9C60 */ + 0x5F6D, 0x5F73, 0x5F77, 0x5F83, + 0x5F82, 0x5F7F, 0x5F8A, 0x5F88, + 0x5F91, 0x5F87, 0x5F9E, 0x5F99, + 0x5F98, 0x5FA0, 0x5FA8, 0x5FAD, + 0x5FBC, 0x5FD6, 0x5FFB, 0x5FE4, + 0x5FF8, 0x5FF1, 0x5FDD, 0x60B3, + 0x5FFF, 0x6021, 0x6060, 0x0000, + 0x6019, 0x6010, 0x6029, 0x600E, /* 9C80 */ + 0x6031, 0x601B, 0x6015, 0x602B, + 0x6026, 0x600F, 0x603A, 0x605A, + 0x6041, 0x606A, 0x6077, 0x605F, + 0x604A, 0x6046, 0x604D, 0x6063, + 0x6043, 0x6064, 0x6042, 0x606C, + 0x606B, 0x6059, 0x6081, 0x608D, + 0x60E7, 0x6083, 0x609A, 0x6084, + 0x609B, 0x6096, 0x6097, 0x6092, /* 9CA0 */ + 0x60A7, 0x608B, 0x60E1, 0x60B8, + 0x60E0, 0x60D3, 0x60B4, 0x5FF0, + 0x60BD, 0x60C6, 0x60B5, 0x60D8, + 0x614D, 0x6115, 0x6106, 0x60F6, + 0x60F7, 0x6100, 0x60F4, 0x60FA, + 0x6103, 0x6121, 0x60FB, 0x60F1, + 0x610D, 0x610E, 0x6147, 0x613E, + 0x6128, 0x6127, 0x614A, 0x613F, /* 9CC0 */ + 0x613C, 0x612C, 0x6134, 0x613D, + 0x6142, 0x6144, 0x6173, 0x6177, + 0x6158, 0x6159, 0x615A, 0x616B, + 0x6174, 0x616F, 0x6165, 0x6171, + 0x615F, 0x615D, 0x6153, 0x6175, + 0x6199, 0x6196, 0x6187, 0x61AC, + 0x6194, 0x619A, 0x618A, 0x6191, + 0x61AB, 0x61AE, 0x61CC, 0x61CA, /* 9CE0 */ + 0x61C9, 0x61F7, 0x61C8, 0x61C3, + 0x61C6, 0x61BA, 0x61CB, 0x7F79, + 0x61CD, 0x61E6, 0x61E3, 0x61F6, + 0x61FA, 0x61F4, 0x61FF, 0x61FD, + 0x61FC, 0x61FE, 0x6200, 0x6208, + 0x6209, 0x620D, 0x620C, 0x6214, + 0x621B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x621E, 0x6221, 0x622A, 0x622E, /* 9D40 */ + 0x6230, 0x6232, 0x6233, 0x6241, + 0x624E, 0x625E, 0x6263, 0x625B, + 0x6260, 0x6268, 0x627C, 0x6282, + 0x6289, 0x627E, 0x6292, 0x6293, + 0x6296, 0x62D4, 0x6283, 0x6294, + 0x62D7, 0x62D1, 0x62BB, 0x62CF, + 0x62FF, 0x62C6, 0x64D4, 0x62C8, + 0x62DC, 0x62CC, 0x62CA, 0x62C2, /* 9D60 */ + 0x62C7, 0x629B, 0x62C9, 0x630C, + 0x62EE, 0x62F1, 0x6327, 0x6302, + 0x6308, 0x62EF, 0x62F5, 0x6350, + 0x633E, 0x634D, 0x641C, 0x634F, + 0x6396, 0x638E, 0x6380, 0x63AB, + 0x6376, 0x63A3, 0x638F, 0x6389, + 0x639F, 0x63B5, 0x636B, 0x0000, + 0x6369, 0x63BE, 0x63E9, 0x63C0, /* 9D80 */ + 0x63C6, 0x63E3, 0x63C9, 0x63D2, + 0x63F6, 0x63C4, 0x6416, 0x6434, + 0x6406, 0x6413, 0x6426, 0x6436, + 0x651D, 0x6417, 0x6428, 0x640F, + 0x6467, 0x646F, 0x6476, 0x644E, + 0x652A, 0x6495, 0x6493, 0x64A5, + 0x64A9, 0x6488, 0x64BC, 0x64DA, + 0x64D2, 0x64C5, 0x64C7, 0x64BB, /* 9DA0 */ + 0x64D8, 0x64C2, 0x64F1, 0x64E7, + 0x8209, 0x64E0, 0x64E1, 0x62AC, + 0x64E3, 0x64EF, 0x652C, 0x64F6, + 0x64F4, 0x64F2, 0x64FA, 0x6500, + 0x64FD, 0x6518, 0x651C, 0x6505, + 0x6524, 0x6523, 0x652B, 0x6534, + 0x6535, 0x6537, 0x6536, 0x6538, + 0x754B, 0x6548, 0x6556, 0x6555, /* 9DC0 */ + 0x654D, 0x6558, 0x655E, 0x655D, + 0x6572, 0x6578, 0x6582, 0x6583, + 0x8B8A, 0x659B, 0x659F, 0x65AB, + 0x65B7, 0x65C3, 0x65C6, 0x65C1, + 0x65C4, 0x65CC, 0x65D2, 0x65DB, + 0x65D9, 0x65E0, 0x65E1, 0x65F1, + 0x6772, 0x660A, 0x6603, 0x65FB, + 0x6773, 0x6635, 0x6636, 0x6634, /* 9DE0 */ + 0x661C, 0x664F, 0x6644, 0x6649, + 0x6641, 0x665E, 0x665D, 0x6664, + 0x6667, 0x6668, 0x665F, 0x6662, + 0x6670, 0x6683, 0x6688, 0x668E, + 0x6689, 0x6684, 0x6698, 0x669D, + 0x66C1, 0x66B9, 0x66C9, 0x66BE, + 0x66BC, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x66C4, 0x66B8, 0x66D6, 0x66DA, /* 9E40 */ + 0x66E0, 0x663F, 0x66E6, 0x66E9, + 0x66F0, 0x66F5, 0x66F7, 0x670F, + 0x6716, 0x671E, 0x6726, 0x6727, + 0x9738, 0x672E, 0x673F, 0x6736, + 0x6741, 0x6738, 0x6737, 0x6746, + 0x675E, 0x6760, 0x6759, 0x6763, + 0x6764, 0x6789, 0x6770, 0x67A9, + 0x677C, 0x676A, 0x678C, 0x678B, /* 9E60 */ + 0x67A6, 0x67A1, 0x6785, 0x67B7, + 0x67EF, 0x67B4, 0x67EC, 0x67B3, + 0x67E9, 0x67B8, 0x67E4, 0x67DE, + 0x67DD, 0x67E2, 0x67EE, 0x67B9, + 0x67CE, 0x67C6, 0x67E7, 0x6A9C, + 0x681E, 0x6846, 0x6829, 0x6840, + 0x684D, 0x6832, 0x684E, 0x0000, + 0x68B3, 0x682B, 0x6859, 0x6863, /* 9E80 */ + 0x6877, 0x687F, 0x689F, 0x688F, + 0x68AD, 0x6894, 0x689D, 0x689B, + 0x6883, 0x6AAE, 0x68B9, 0x6874, + 0x68B5, 0x68A0, 0x68BA, 0x690F, + 0x688D, 0x687E, 0x6901, 0x68CA, + 0x6908, 0x68D8, 0x6922, 0x6926, + 0x68E1, 0x690C, 0x68CD, 0x68D4, + 0x68E7, 0x68D5, 0x6936, 0x6912, /* 9EA0 */ + 0x6904, 0x68D7, 0x68E3, 0x6925, + 0x68F9, 0x68E0, 0x68EF, 0x6928, + 0x692A, 0x691A, 0x6923, 0x6921, + 0x68C6, 0x6979, 0x6977, 0x695C, + 0x6978, 0x696B, 0x6954, 0x697E, + 0x696E, 0x6939, 0x6974, 0x693D, + 0x6959, 0x6930, 0x6961, 0x695E, + 0x695D, 0x6981, 0x696A, 0x69B2, /* 9EC0 */ + 0x69AE, 0x69D0, 0x69BF, 0x69C1, + 0x69D3, 0x69BE, 0x69CE, 0x5BE8, + 0x69CA, 0x69DD, 0x69BB, 0x69C3, + 0x69A7, 0x6A2E, 0x6991, 0x69A0, + 0x699C, 0x6995, 0x69B4, 0x69DE, + 0x69E8, 0x6A02, 0x6A1B, 0x69FF, + 0x6B0A, 0x69F9, 0x69F2, 0x69E7, + 0x6A05, 0x69B1, 0x6A1E, 0x69ED, /* 9EE0 */ + 0x6A14, 0x69EB, 0x6A0A, 0x6A12, + 0x6AC1, 0x6A23, 0x6A13, 0x6A44, + 0x6A0C, 0x6A72, 0x6A36, 0x6A78, + 0x6A47, 0x6A62, 0x6A59, 0x6A66, + 0x6A48, 0x6A38, 0x6A22, 0x6A90, + 0x6A8D, 0x6AA0, 0x6A84, 0x6AA2, + 0x6AA3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6A97, 0x8617, 0x6ABB, 0x6AC3, /* 9F40 */ + 0x6AC2, 0x6AB8, 0x6AB3, 0x6AAC, + 0x6ADE, 0x6AD1, 0x6ADF, 0x6AAA, + 0x6ADA, 0x6AEA, 0x6AFB, 0x6B05, + 0x8616, 0x6AFA, 0x6B12, 0x6B16, + 0x9B31, 0x6B1F, 0x6B38, 0x6B37, + 0x76DC, 0x6B39, 0x98EE, 0x6B47, + 0x6B43, 0x6B49, 0x6B50, 0x6B59, + 0x6B54, 0x6B5B, 0x6B5F, 0x6B61, /* 9F60 */ + 0x6B78, 0x6B79, 0x6B7F, 0x6B80, + 0x6B84, 0x6B83, 0x6B8D, 0x6B98, + 0x6B95, 0x6B9E, 0x6BA4, 0x6BAA, + 0x6BAB, 0x6BAF, 0x6BB2, 0x6BB1, + 0x6BB3, 0x6BB7, 0x6BBC, 0x6BC6, + 0x6BCB, 0x6BD3, 0x6BDF, 0x6BEC, + 0x6BEB, 0x6BF3, 0x6BEF, 0x0000, + 0x9EBE, 0x6C08, 0x6C13, 0x6C14, /* 9F80 */ + 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, + 0x6C55, 0x6C62, 0x6C6A, 0x6C82, + 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, + 0x6C7E, 0x6C68, 0x6C73, 0x6C92, + 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, + 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, + 0x6CAE, 0x6CB1, 0x6CBE, 0x6CBA, + 0x6CDB, 0x6CEF, 0x6CD9, 0x6CEA, /* 9FA0 */ + 0x6D1F, 0x884D, 0x6D36, 0x6D2B, + 0x6D3D, 0x6D38, 0x6D19, 0x6D35, + 0x6D33, 0x6D12, 0x6D0C, 0x6D63, + 0x6D93, 0x6D64, 0x6D5A, 0x6D79, + 0x6D59, 0x6D8E, 0x6D95, 0x6FE4, + 0x6D85, 0x6DF9, 0x6E15, 0x6E0A, + 0x6DB5, 0x6DC7, 0x6DE6, 0x6DB8, + 0x6DC6, 0x6DEC, 0x6DDE, 0x6DCC, /* 9FC0 */ + 0x6DE8, 0x6DD2, 0x6DC5, 0x6DFA, + 0x6DD9, 0x6DE4, 0x6DD5, 0x6DEA, + 0x6DEE, 0x6E2D, 0x6E6E, 0x6E2E, + 0x6E19, 0x6E72, 0x6E5F, 0x6E3E, + 0x6E23, 0x6E6B, 0x6E2B, 0x6E76, + 0x6E4D, 0x6E1F, 0x6E43, 0x6E3A, + 0x6E4E, 0x6E24, 0x6EFF, 0x6E1D, + 0x6E38, 0x6E82, 0x6EAA, 0x6E98, /* 9FE0 */ + 0x6EC9, 0x6EB7, 0x6ED3, 0x6EBD, + 0x6EAF, 0x6EC4, 0x6EB2, 0x6ED4, + 0x6ED5, 0x6E8F, 0x6EA5, 0x6EC2, + 0x6E9F, 0x6F41, 0x6F11, 0x704C, + 0x6EEC, 0x6EF8, 0x6EFE, 0x6F3F, + 0x6EF2, 0x6F31, 0x6EEF, 0x6F32, + 0x6ECC, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6F3E, 0x6F13, 0x6EF7, 0x6F86, /* E040 */ + 0x6F7A, 0x6F78, 0x6F81, 0x6F80, + 0x6F6F, 0x6F5B, 0x6FF3, 0x6F6D, + 0x6F82, 0x6F7C, 0x6F58, 0x6F8E, + 0x6F91, 0x6FC2, 0x6F66, 0x6FB3, + 0x6FA3, 0x6FA1, 0x6FA4, 0x6FB9, + 0x6FC6, 0x6FAA, 0x6FDF, 0x6FD5, + 0x6FEC, 0x6FD4, 0x6FD8, 0x6FF1, + 0x6FEE, 0x6FDB, 0x7009, 0x700B, /* E060 */ + 0x6FFA, 0x7011, 0x7001, 0x700F, + 0x6FFE, 0x701B, 0x701A, 0x6F74, + 0x701D, 0x7018, 0x701F, 0x7030, + 0x703E, 0x7032, 0x7051, 0x7063, + 0x7099, 0x7092, 0x70AF, 0x70F1, + 0x70AC, 0x70B8, 0x70B3, 0x70AE, + 0x70DF, 0x70CB, 0x70DD, 0x0000, + 0x70D9, 0x7109, 0x70FD, 0x711C, /* E080 */ + 0x7119, 0x7165, 0x7155, 0x7188, + 0x7166, 0x7162, 0x714C, 0x7156, + 0x716C, 0x718F, 0x71FB, 0x7184, + 0x7195, 0x71A8, 0x71AC, 0x71D7, + 0x71B9, 0x71BE, 0x71D2, 0x71C9, + 0x71D4, 0x71CE, 0x71E0, 0x71EC, + 0x71E7, 0x71F5, 0x71FC, 0x71F9, + 0x71FF, 0x720D, 0x7210, 0x721B, /* E0A0 */ + 0x7228, 0x722D, 0x722C, 0x7230, + 0x7232, 0x723B, 0x723C, 0x723F, + 0x7240, 0x7246, 0x724B, 0x7258, + 0x7274, 0x727E, 0x7282, 0x7281, + 0x7287, 0x7292, 0x7296, 0x72A2, + 0x72A7, 0x72B9, 0x72B2, 0x72C3, + 0x72C6, 0x72C4, 0x72CE, 0x72D2, + 0x72E2, 0x72E0, 0x72E1, 0x72F9, /* E0C0 */ + 0x72F7, 0x500F, 0x7317, 0x730A, + 0x731C, 0x7316, 0x731D, 0x7334, + 0x732F, 0x7329, 0x7325, 0x733E, + 0x734E, 0x734F, 0x9ED8, 0x7357, + 0x736A, 0x7368, 0x7370, 0x7378, + 0x7375, 0x737B, 0x737A, 0x73C8, + 0x73B3, 0x73CE, 0x73BB, 0x73C0, + 0x73E5, 0x73EE, 0x73DE, 0x74A2, /* E0E0 */ + 0x7405, 0x746F, 0x7425, 0x73F8, + 0x7432, 0x743A, 0x7455, 0x743F, + 0x745F, 0x7459, 0x7441, 0x745C, + 0x7469, 0x7470, 0x7463, 0x746A, + 0x7476, 0x747E, 0x748B, 0x749E, + 0x74A7, 0x74CA, 0x74CF, 0x74D4, + 0x73F1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x74E0, 0x74E3, 0x74E7, 0x74E9, /* E140 */ + 0x74EE, 0x74F2, 0x74F0, 0x74F1, + 0x74F8, 0x74F7, 0x7504, 0x7503, + 0x7505, 0x750C, 0x750E, 0x750D, + 0x7515, 0x7513, 0x751E, 0x7526, + 0x752C, 0x753C, 0x7544, 0x754D, + 0x754A, 0x7549, 0x755B, 0x7546, + 0x755A, 0x7569, 0x7564, 0x7567, + 0x756B, 0x756D, 0x7578, 0x7576, /* E160 */ + 0x7586, 0x7587, 0x7574, 0x758A, + 0x7589, 0x7582, 0x7594, 0x759A, + 0x759D, 0x75A5, 0x75A3, 0x75C2, + 0x75B3, 0x75C3, 0x75B5, 0x75BD, + 0x75B8, 0x75BC, 0x75B1, 0x75CD, + 0x75CA, 0x75D2, 0x75D9, 0x75E3, + 0x75DE, 0x75FE, 0x75FF, 0x0000, + 0x75FC, 0x7601, 0x75F0, 0x75FA, /* E180 */ + 0x75F2, 0x75F3, 0x760B, 0x760D, + 0x7609, 0x761F, 0x7627, 0x7620, + 0x7621, 0x7622, 0x7624, 0x7634, + 0x7630, 0x763B, 0x7647, 0x7648, + 0x7646, 0x765C, 0x7658, 0x7661, + 0x7662, 0x7668, 0x7669, 0x766A, + 0x7667, 0x766C, 0x7670, 0x7672, + 0x7676, 0x7678, 0x767C, 0x7680, /* E1A0 */ + 0x7683, 0x7688, 0x768B, 0x768E, + 0x7696, 0x7693, 0x7699, 0x769A, + 0x76B0, 0x76B4, 0x76B8, 0x76B9, + 0x76BA, 0x76C2, 0x76CD, 0x76D6, + 0x76D2, 0x76DE, 0x76E1, 0x76E5, + 0x76E7, 0x76EA, 0x862F, 0x76FB, + 0x7708, 0x7707, 0x7704, 0x7729, + 0x7724, 0x771E, 0x7725, 0x7726, /* E1C0 */ + 0x771B, 0x7737, 0x7738, 0x7747, + 0x775A, 0x7768, 0x776B, 0x775B, + 0x7765, 0x777F, 0x777E, 0x7779, + 0x778E, 0x778B, 0x7791, 0x77A0, + 0x779E, 0x77B0, 0x77B6, 0x77B9, + 0x77BF, 0x77BC, 0x77BD, 0x77BB, + 0x77C7, 0x77CD, 0x77D7, 0x77DA, + 0x77DC, 0x77E3, 0x77EE, 0x77FC, /* E1E0 */ + 0x780C, 0x7812, 0x7926, 0x7820, + 0x792A, 0x7845, 0x788E, 0x7874, + 0x7886, 0x787C, 0x789A, 0x788C, + 0x78A3, 0x78B5, 0x78AA, 0x78AF, + 0x78D1, 0x78C6, 0x78CB, 0x78D4, + 0x78BE, 0x78BC, 0x78C5, 0x78CA, + 0x78EC, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x78E7, 0x78DA, 0x78FD, 0x78F4, /* E240 */ + 0x7907, 0x7912, 0x7911, 0x7919, + 0x792C, 0x792B, 0x7940, 0x7960, + 0x7957, 0x795F, 0x795A, 0x7955, + 0x7953, 0x797A, 0x797F, 0x798A, + 0x799D, 0x79A7, 0x9F4B, 0x79AA, + 0x79AE, 0x79B3, 0x79B9, 0x79BA, + 0x79C9, 0x79D5, 0x79E7, 0x79EC, + 0x79E1, 0x79E3, 0x7A08, 0x7A0D, /* E260 */ + 0x7A18, 0x7A19, 0x7A20, 0x7A1F, + 0x7980, 0x7A31, 0x7A3B, 0x7A3E, + 0x7A37, 0x7A43, 0x7A57, 0x7A49, + 0x7A61, 0x7A62, 0x7A69, 0x9F9D, + 0x7A70, 0x7A79, 0x7A7D, 0x7A88, + 0x7A97, 0x7A95, 0x7A98, 0x7A96, + 0x7AA9, 0x7AC8, 0x7AB0, 0x0000, + 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, /* E280 */ + 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, + 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, + 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, + 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, + 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, + 0x7B18, 0x7B19, 0x7B1E, 0x7B35, + 0x7B28, 0x7B36, 0x7B50, 0x7B7A, + 0x7B04, 0x7B4D, 0x7B0B, 0x7B4C, /* E2A0 */ + 0x7B45, 0x7B75, 0x7B65, 0x7B74, + 0x7B67, 0x7B70, 0x7B71, 0x7B6C, + 0x7B6E, 0x7B9D, 0x7B98, 0x7B9F, + 0x7B8D, 0x7B9C, 0x7B9A, 0x7B8B, + 0x7B92, 0x7B8F, 0x7B5D, 0x7B99, + 0x7BCB, 0x7BC1, 0x7BCC, 0x7BCF, + 0x7BB4, 0x7BC6, 0x7BDD, 0x7BE9, + 0x7C11, 0x7C14, 0x7BE6, 0x7BE5, /* E2C0 */ + 0x7C60, 0x7C00, 0x7C07, 0x7C13, + 0x7BF3, 0x7BF7, 0x7C17, 0x7C0D, + 0x7BF6, 0x7C23, 0x7C27, 0x7C2A, + 0x7C1F, 0x7C37, 0x7C2B, 0x7C3D, + 0x7C4C, 0x7C43, 0x7C54, 0x7C4F, + 0x7C40, 0x7C50, 0x7C58, 0x7C5F, + 0x7C64, 0x7C56, 0x7C65, 0x7C6C, + 0x7C75, 0x7C83, 0x7C90, 0x7CA4, /* E2E0 */ + 0x7CAD, 0x7CA2, 0x7CAB, 0x7CA1, + 0x7CA8, 0x7CB3, 0x7CB2, 0x7CB1, + 0x7CAE, 0x7CB9, 0x7CBD, 0x7CC0, + 0x7CC5, 0x7CC2, 0x7CD8, 0x7CD2, + 0x7CDC, 0x7CE2, 0x9B3B, 0x7CEF, + 0x7CF2, 0x7CF4, 0x7CF6, 0x7CFA, + 0x7D06, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x7D02, 0x7D1C, 0x7D15, 0x7D0A, /* E340 */ + 0x7D45, 0x7D4B, 0x7D2E, 0x7D32, + 0x7D3F, 0x7D35, 0x7D46, 0x7D73, + 0x7D56, 0x7D4E, 0x7D72, 0x7D68, + 0x7D6E, 0x7D4F, 0x7D63, 0x7D93, + 0x7D89, 0x7D5B, 0x7D8F, 0x7D7D, + 0x7D9B, 0x7DBA, 0x7DAE, 0x7DA3, + 0x7DB5, 0x7DC7, 0x7DBD, 0x7DAB, + 0x7E3D, 0x7DA2, 0x7DAF, 0x7DDC, /* E360 */ + 0x7DB8, 0x7D9F, 0x7DB0, 0x7DD8, + 0x7DDD, 0x7DE4, 0x7DDE, 0x7DFB, + 0x7DF2, 0x7DE1, 0x7E05, 0x7E0A, + 0x7E23, 0x7E21, 0x7E12, 0x7E31, + 0x7E1F, 0x7E09, 0x7E0B, 0x7E22, + 0x7E46, 0x7E66, 0x7E3B, 0x7E35, + 0x7E39, 0x7E43, 0x7E37, 0x0000, + 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, /* E380 */ + 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, + 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, + 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, + 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, + 0x7E8C, 0x7E92, 0x7E90, 0x7E93, + 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, + 0x7E9C, 0x7F38, 0x7F3A, 0x7F45, + 0x7F4C, 0x7F4D, 0x7F4E, 0x7F50, /* E3A0 */ + 0x7F51, 0x7F55, 0x7F54, 0x7F58, + 0x7F5F, 0x7F60, 0x7F68, 0x7F69, + 0x7F67, 0x7F78, 0x7F82, 0x7F86, + 0x7F83, 0x7F88, 0x7F87, 0x7F8C, + 0x7F94, 0x7F9E, 0x7F9D, 0x7F9A, + 0x7FA3, 0x7FAF, 0x7FB2, 0x7FB9, + 0x7FAE, 0x7FB6, 0x7FB8, 0x8B71, + 0x7FC5, 0x7FC6, 0x7FCA, 0x7FD5, /* E3C0 */ + 0x7FD4, 0x7FE1, 0x7FE6, 0x7FE9, + 0x7FF3, 0x7FF9, 0x98DC, 0x8006, + 0x8004, 0x800B, 0x8012, 0x8018, + 0x8019, 0x801C, 0x8021, 0x8028, + 0x803F, 0x803B, 0x804A, 0x8046, + 0x8052, 0x8058, 0x805A, 0x805F, + 0x8062, 0x8068, 0x8073, 0x8072, + 0x8070, 0x8076, 0x8079, 0x807D, /* E3E0 */ + 0x807F, 0x8084, 0x8086, 0x8085, + 0x809B, 0x8093, 0x809A, 0x80AD, + 0x5190, 0x80AC, 0x80DB, 0x80E5, + 0x80D9, 0x80DD, 0x80C4, 0x80DA, + 0x80D6, 0x8109, 0x80EF, 0x80F1, + 0x811B, 0x8129, 0x8123, 0x812F, + 0x814B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x968B, 0x8146, 0x813E, 0x8153, /* E440 */ + 0x8151, 0x80FC, 0x8171, 0x816E, + 0x8165, 0x8166, 0x8174, 0x8183, + 0x8188, 0x818A, 0x8180, 0x8182, + 0x81A0, 0x8195, 0x81A4, 0x81A3, + 0x815F, 0x8193, 0x81A9, 0x81B0, + 0x81B5, 0x81BE, 0x81B8, 0x81BD, + 0x81C0, 0x81C2, 0x81BA, 0x81C9, + 0x81CD, 0x81D1, 0x81D9, 0x81D8, /* E460 */ + 0x81C8, 0x81DA, 0x81DF, 0x81E0, + 0x81E7, 0x81FA, 0x81FB, 0x81FE, + 0x8201, 0x8202, 0x8205, 0x8207, + 0x820A, 0x820D, 0x8210, 0x8216, + 0x8229, 0x822B, 0x8238, 0x8233, + 0x8240, 0x8259, 0x8258, 0x825D, + 0x825A, 0x825F, 0x8264, 0x0000, + 0x8262, 0x8268, 0x826A, 0x826B, /* E480 */ + 0x822E, 0x8271, 0x8277, 0x8278, + 0x827E, 0x828D, 0x8292, 0x82AB, + 0x829F, 0x82BB, 0x82AC, 0x82E1, + 0x82E3, 0x82DF, 0x82D2, 0x82F4, + 0x82F3, 0x82FA, 0x8393, 0x8303, + 0x82FB, 0x82F9, 0x82DE, 0x8306, + 0x82DC, 0x8309, 0x82D9, 0x8335, + 0x8334, 0x8316, 0x8332, 0x8331, /* E4A0 */ + 0x8340, 0x8339, 0x8350, 0x8345, + 0x832F, 0x832B, 0x8317, 0x8318, + 0x8385, 0x839A, 0x83AA, 0x839F, + 0x83A2, 0x8396, 0x8323, 0x838E, + 0x8387, 0x838A, 0x837C, 0x83B5, + 0x8373, 0x8375, 0x83A0, 0x8389, + 0x83A8, 0x83F4, 0x8413, 0x83EB, + 0x83CE, 0x83FD, 0x8403, 0x83D8, /* E4C0 */ + 0x840B, 0x83C1, 0x83F7, 0x8407, + 0x83E0, 0x83F2, 0x840D, 0x8422, + 0x8420, 0x83BD, 0x8438, 0x8506, + 0x83FB, 0x846D, 0x842A, 0x843C, + 0x855A, 0x8484, 0x8477, 0x846B, + 0x84AD, 0x846E, 0x8482, 0x8469, + 0x8446, 0x842C, 0x846F, 0x8479, + 0x8435, 0x84CA, 0x8462, 0x84B9, /* E4E0 */ + 0x84BF, 0x849F, 0x84D9, 0x84CD, + 0x84BB, 0x84DA, 0x84D0, 0x84C1, + 0x84C6, 0x84D6, 0x84A1, 0x8521, + 0x84FF, 0x84F4, 0x8517, 0x8518, + 0x852C, 0x851F, 0x8515, 0x8514, + 0x84FC, 0x8540, 0x8563, 0x8558, + 0x8548, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8541, 0x8602, 0x854B, 0x8555, /* E540 */ + 0x8580, 0x85A4, 0x8588, 0x8591, + 0x858A, 0x85A8, 0x856D, 0x8594, + 0x859B, 0x85EA, 0x8587, 0x859C, + 0x8577, 0x857E, 0x8590, 0x85C9, + 0x85BA, 0x85CF, 0x85B9, 0x85D0, + 0x85D5, 0x85DD, 0x85E5, 0x85DC, + 0x85F9, 0x860A, 0x8613, 0x860B, + 0x85FE, 0x85FA, 0x8606, 0x8622, /* E560 */ + 0x861A, 0x8630, 0x863F, 0x864D, + 0x4E55, 0x8654, 0x865F, 0x8667, + 0x8671, 0x8693, 0x86A3, 0x86A9, + 0x86AA, 0x868B, 0x868C, 0x86B6, + 0x86AF, 0x86C4, 0x86C6, 0x86B0, + 0x86C9, 0x8823, 0x86AB, 0x86D4, + 0x86DE, 0x86E9, 0x86EC, 0x0000, + 0x86DF, 0x86DB, 0x86EF, 0x8712, /* E580 */ + 0x8706, 0x8708, 0x8700, 0x8703, + 0x86FB, 0x8711, 0x8709, 0x870D, + 0x86F9, 0x870A, 0x8734, 0x873F, + 0x8737, 0x873B, 0x8725, 0x8729, + 0x871A, 0x8760, 0x875F, 0x8778, + 0x874C, 0x874E, 0x8774, 0x8757, + 0x8768, 0x876E, 0x8759, 0x8753, + 0x8763, 0x876A, 0x8805, 0x87A2, /* E5A0 */ + 0x879F, 0x8782, 0x87AF, 0x87CB, + 0x87BD, 0x87C0, 0x87D0, 0x96D6, + 0x87AB, 0x87C4, 0x87B3, 0x87C7, + 0x87C6, 0x87BB, 0x87EF, 0x87F2, + 0x87E0, 0x880F, 0x880D, 0x87FE, + 0x87F6, 0x87F7, 0x880E, 0x87D2, + 0x8811, 0x8816, 0x8815, 0x8822, + 0x8821, 0x8831, 0x8836, 0x8839, /* E5C0 */ + 0x8827, 0x883B, 0x8844, 0x8842, + 0x8852, 0x8859, 0x885E, 0x8862, + 0x886B, 0x8881, 0x887E, 0x889E, + 0x8875, 0x887D, 0x88B5, 0x8872, + 0x8882, 0x8897, 0x8892, 0x88AE, + 0x8899, 0x88A2, 0x888D, 0x88A4, + 0x88B0, 0x88BF, 0x88B1, 0x88C3, + 0x88C4, 0x88D4, 0x88D8, 0x88D9, /* E5E0 */ + 0x88DD, 0x88F9, 0x8902, 0x88FC, + 0x88F4, 0x88E8, 0x88F2, 0x8904, + 0x890C, 0x890A, 0x8913, 0x8943, + 0x891E, 0x8925, 0x892A, 0x892B, + 0x8941, 0x8944, 0x893B, 0x8936, + 0x8938, 0x894C, 0x891D, 0x8960, + 0x895E, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8966, 0x8964, 0x896D, 0x896A, /* E640 */ + 0x896F, 0x8974, 0x8977, 0x897E, + 0x8983, 0x8988, 0x898A, 0x8993, + 0x8998, 0x89A1, 0x89A9, 0x89A6, + 0x89AC, 0x89AF, 0x89B2, 0x89BA, + 0x89BD, 0x89BF, 0x89C0, 0x89DA, + 0x89DC, 0x89DD, 0x89E7, 0x89F4, + 0x89F8, 0x8A03, 0x8A16, 0x8A10, + 0x8A0C, 0x8A1B, 0x8A1D, 0x8A25, /* E660 */ + 0x8A36, 0x8A41, 0x8A5B, 0x8A52, + 0x8A46, 0x8A48, 0x8A7C, 0x8A6D, + 0x8A6C, 0x8A62, 0x8A85, 0x8A82, + 0x8A84, 0x8AA8, 0x8AA1, 0x8A91, + 0x8AA5, 0x8AA6, 0x8A9A, 0x8AA3, + 0x8AC4, 0x8ACD, 0x8AC2, 0x8ADA, + 0x8AEB, 0x8AF3, 0x8AE7, 0x0000, + 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, /* E680 */ + 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, + 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, + 0x8B16, 0x8B10, 0x8B17, 0x8B20, + 0x8B33, 0x97AB, 0x8B26, 0x8B2B, + 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, + 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, + 0x8B5B, 0x8B5A, 0x8B6B, 0x8B5F, + 0x8B6C, 0x8B6F, 0x8B74, 0x8B7D, /* E6A0 */ + 0x8B80, 0x8B8C, 0x8B8E, 0x8B92, + 0x8B93, 0x8B96, 0x8B99, 0x8B9A, + 0x8C3A, 0x8C41, 0x8C3F, 0x8C48, + 0x8C4C, 0x8C4E, 0x8C50, 0x8C55, + 0x8C62, 0x8C6C, 0x8C78, 0x8C7A, + 0x8C82, 0x8C89, 0x8C85, 0x8C8A, + 0x8C8D, 0x8C8E, 0x8C94, 0x8C7C, + 0x8C98, 0x621D, 0x8CAD, 0x8CAA, /* E6C0 */ + 0x8CBD, 0x8CB2, 0x8CB3, 0x8CAE, + 0x8CB6, 0x8CC8, 0x8CC1, 0x8CE4, + 0x8CE3, 0x8CDA, 0x8CFD, 0x8CFA, + 0x8CFB, 0x8D04, 0x8D05, 0x8D0A, + 0x8D07, 0x8D0F, 0x8D0D, 0x8D10, + 0x9F4E, 0x8D13, 0x8CCD, 0x8D14, + 0x8D16, 0x8D67, 0x8D6D, 0x8D71, + 0x8D73, 0x8D81, 0x8D99, 0x8DC2, /* E6E0 */ + 0x8DBE, 0x8DBA, 0x8DCF, 0x8DDA, + 0x8DD6, 0x8DCC, 0x8DDB, 0x8DCB, + 0x8DEA, 0x8DEB, 0x8DDF, 0x8DE3, + 0x8DFC, 0x8E08, 0x8E09, 0x8DFF, + 0x8E1D, 0x8E1E, 0x8E10, 0x8E1F, + 0x8E42, 0x8E35, 0x8E30, 0x8E34, + 0x8E4A, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8E47, 0x8E49, 0x8E4C, 0x8E50, /* E740 */ + 0x8E48, 0x8E59, 0x8E64, 0x8E60, + 0x8E2A, 0x8E63, 0x8E55, 0x8E76, + 0x8E72, 0x8E7C, 0x8E81, 0x8E87, + 0x8E85, 0x8E84, 0x8E8B, 0x8E8A, + 0x8E93, 0x8E91, 0x8E94, 0x8E99, + 0x8EAA, 0x8EA1, 0x8EAC, 0x8EB0, + 0x8EC6, 0x8EB1, 0x8EBE, 0x8EC5, + 0x8EC8, 0x8ECB, 0x8EDB, 0x8EE3, /* E760 */ + 0x8EFC, 0x8EFB, 0x8EEB, 0x8EFE, + 0x8F0A, 0x8F05, 0x8F15, 0x8F12, + 0x8F19, 0x8F13, 0x8F1C, 0x8F1F, + 0x8F1B, 0x8F0C, 0x8F26, 0x8F33, + 0x8F3B, 0x8F39, 0x8F45, 0x8F42, + 0x8F3E, 0x8F4C, 0x8F49, 0x8F46, + 0x8F4E, 0x8F57, 0x8F5C, 0x0000, + 0x8F62, 0x8F63, 0x8F64, 0x8F9C, /* E780 */ + 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, + 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, + 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, + 0x9005, 0x8FF9, 0x8FFA, 0x9011, + 0x9015, 0x9021, 0x900D, 0x901E, + 0x9016, 0x900B, 0x9027, 0x9036, + 0x9035, 0x9039, 0x8FF8, 0x904F, + 0x9050, 0x9051, 0x9052, 0x900E, /* E7A0 */ + 0x9049, 0x903E, 0x9056, 0x9058, + 0x905E, 0x9068, 0x906F, 0x9076, + 0x96A8, 0x9072, 0x9082, 0x907D, + 0x9081, 0x9080, 0x908A, 0x9089, + 0x908F, 0x90A8, 0x90AF, 0x90B1, + 0x90B5, 0x90E2, 0x90E4, 0x6248, + 0x90DB, 0x9102, 0x9112, 0x9119, + 0x9132, 0x9130, 0x914A, 0x9156, /* E7C0 */ + 0x9158, 0x9163, 0x9165, 0x9169, + 0x9173, 0x9172, 0x918B, 0x9189, + 0x9182, 0x91A2, 0x91AB, 0x91AF, + 0x91AA, 0x91B5, 0x91B4, 0x91BA, + 0x91C0, 0x91C1, 0x91C9, 0x91CB, + 0x91D0, 0x91D6, 0x91DF, 0x91E1, + 0x91DB, 0x91FC, 0x91F5, 0x91F6, + 0x921E, 0x91FF, 0x9214, 0x922C, /* E7E0 */ + 0x9215, 0x9211, 0x925E, 0x9257, + 0x9245, 0x9249, 0x9264, 0x9248, + 0x9295, 0x923F, 0x924B, 0x9250, + 0x929C, 0x9296, 0x9293, 0x929B, + 0x925A, 0x92CF, 0x92B9, 0x92B7, + 0x92E9, 0x930F, 0x92FA, 0x9344, + 0x932E, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9319, 0x9322, 0x931A, 0x9323, /* E840 */ + 0x933A, 0x9335, 0x933B, 0x935C, + 0x9360, 0x937C, 0x936E, 0x9356, + 0x93B0, 0x93AC, 0x93AD, 0x9394, + 0x93B9, 0x93D6, 0x93D7, 0x93E8, + 0x93E5, 0x93D8, 0x93C3, 0x93DD, + 0x93D0, 0x93C8, 0x93E4, 0x941A, + 0x9414, 0x9413, 0x9403, 0x9407, + 0x9410, 0x9436, 0x942B, 0x9435, /* E860 */ + 0x9421, 0x943A, 0x9441, 0x9452, + 0x9444, 0x945B, 0x9460, 0x9462, + 0x945E, 0x946A, 0x9229, 0x9470, + 0x9475, 0x9477, 0x947D, 0x945A, + 0x947C, 0x947E, 0x9481, 0x947F, + 0x9582, 0x9587, 0x958A, 0x9594, + 0x9596, 0x9598, 0x9599, 0x0000, + 0x95A0, 0x95A8, 0x95A7, 0x95AD, /* E880 */ + 0x95BC, 0x95BB, 0x95B9, 0x95BE, + 0x95CA, 0x6FF6, 0x95C3, 0x95CD, + 0x95CC, 0x95D5, 0x95D4, 0x95D6, + 0x95DC, 0x95E1, 0x95E5, 0x95E2, + 0x9621, 0x9628, 0x962E, 0x962F, + 0x9642, 0x964C, 0x964F, 0x964B, + 0x9677, 0x965C, 0x965E, 0x965D, + 0x965F, 0x9666, 0x9672, 0x966C, /* E8A0 */ + 0x968D, 0x9698, 0x9695, 0x9697, + 0x96AA, 0x96A7, 0x96B1, 0x96B2, + 0x96B0, 0x96B4, 0x96B6, 0x96B8, + 0x96B9, 0x96CE, 0x96CB, 0x96C9, + 0x96CD, 0x894D, 0x96DC, 0x970D, + 0x96D5, 0x96F9, 0x9704, 0x9706, + 0x9708, 0x9713, 0x970E, 0x9711, + 0x970F, 0x9716, 0x9719, 0x9724, /* E8C0 */ + 0x972A, 0x9730, 0x9739, 0x973D, + 0x973E, 0x9744, 0x9746, 0x9748, + 0x9742, 0x9749, 0x975C, 0x9760, + 0x9764, 0x9766, 0x9768, 0x52D2, + 0x976B, 0x9771, 0x9779, 0x9785, + 0x977C, 0x9781, 0x977A, 0x9786, + 0x978B, 0x978F, 0x9790, 0x979C, + 0x97A8, 0x97A6, 0x97A3, 0x97B3, /* E8E0 */ + 0x97B4, 0x97C3, 0x97C6, 0x97C8, + 0x97CB, 0x97DC, 0x97ED, 0x9F4F, + 0x97F2, 0x7ADF, 0x97F6, 0x97F5, + 0x980F, 0x980C, 0x9838, 0x9824, + 0x9821, 0x9837, 0x983D, 0x9846, + 0x984F, 0x984B, 0x986B, 0x986F, + 0x9870, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9871, 0x9874, 0x9873, 0x98AA, /* E940 */ + 0x98AF, 0x98B1, 0x98B6, 0x98C4, + 0x98C3, 0x98C6, 0x98E9, 0x98EB, + 0x9903, 0x9909, 0x9912, 0x9914, + 0x9918, 0x9921, 0x991D, 0x991E, + 0x9924, 0x9920, 0x992C, 0x992E, + 0x993D, 0x993E, 0x9942, 0x9949, + 0x9945, 0x9950, 0x994B, 0x9951, + 0x9952, 0x994C, 0x9955, 0x9997, /* E960 */ + 0x9998, 0x99A5, 0x99AD, 0x99AE, + 0x99BC, 0x99DF, 0x99DB, 0x99DD, + 0x99D8, 0x99D1, 0x99ED, 0x99EE, + 0x99F1, 0x99F2, 0x99FB, 0x99F8, + 0x9A01, 0x9A0F, 0x9A05, 0x99E2, + 0x9A19, 0x9A2B, 0x9A37, 0x9A45, + 0x9A42, 0x9A40, 0x9A43, 0x0000, + 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, /* E980 */ + 0x9A57, 0x9A5F, 0x9A62, 0x9A65, + 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, + 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, + 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, + 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, + 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, + 0x9AF4, 0x9AF1, 0x9AF7, 0x9AFB, + 0x9B06, 0x9B18, 0x9B1A, 0x9B1F, /* E9A0 */ + 0x9B22, 0x9B23, 0x9B25, 0x9B27, + 0x9B28, 0x9B29, 0x9B2A, 0x9B2E, + 0x9B2F, 0x9B32, 0x9B44, 0x9B43, + 0x9B4F, 0x9B4D, 0x9B4E, 0x9B51, + 0x9B58, 0x9B74, 0x9B93, 0x9B83, + 0x9B91, 0x9B96, 0x9B97, 0x9B9F, + 0x9BA0, 0x9BA8, 0x9BB4, 0x9BC0, + 0x9BCA, 0x9BB9, 0x9BC6, 0x9BCF, /* E9C0 */ + 0x9BD1, 0x9BD2, 0x9BE3, 0x9BE2, + 0x9BE4, 0x9BD4, 0x9BE1, 0x9C3A, + 0x9BF2, 0x9BF1, 0x9BF0, 0x9C15, + 0x9C14, 0x9C09, 0x9C13, 0x9C0C, + 0x9C06, 0x9C08, 0x9C12, 0x9C0A, + 0x9C04, 0x9C2E, 0x9C1B, 0x9C25, + 0x9C24, 0x9C21, 0x9C30, 0x9C47, + 0x9C32, 0x9C46, 0x9C3E, 0x9C5A, /* E9E0 */ + 0x9C60, 0x9C67, 0x9C76, 0x9C78, + 0x9CE7, 0x9CEC, 0x9CF0, 0x9D09, + 0x9D08, 0x9CEB, 0x9D03, 0x9D06, + 0x9D2A, 0x9D26, 0x9DAF, 0x9D23, + 0x9D1F, 0x9D44, 0x9D15, 0x9D12, + 0x9D41, 0x9D3F, 0x9D3E, 0x9D46, + 0x9D48, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9D5D, 0x9D5E, 0x9D64, 0x9D51, /* EA40 */ + 0x9D50, 0x9D59, 0x9D72, 0x9D89, + 0x9D87, 0x9DAB, 0x9D6F, 0x9D7A, + 0x9D9A, 0x9DA4, 0x9DA9, 0x9DB2, + 0x9DC4, 0x9DC1, 0x9DBB, 0x9DB8, + 0x9DBA, 0x9DC6, 0x9DCF, 0x9DC2, + 0x9DD9, 0x9DD3, 0x9DF8, 0x9DE6, + 0x9DED, 0x9DEF, 0x9DFD, 0x9E1A, + 0x9E1B, 0x9E1E, 0x9E75, 0x9E79, /* EA60 */ + 0x9E7D, 0x9E81, 0x9E88, 0x9E8B, + 0x9E8C, 0x9E92, 0x9E95, 0x9E91, + 0x9E9D, 0x9EA5, 0x9EA9, 0x9EB8, + 0x9EAA, 0x9EAD, 0x9761, 0x9ECC, + 0x9ECE, 0x9ECF, 0x9ED0, 0x9ED4, + 0x9EDC, 0x9EDE, 0x9EDD, 0x9EE0, + 0x9EE5, 0x9EE8, 0x9EEF, 0x0000, + 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, /* EA80 */ + 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, + 0x9F08, 0x76B7, 0x9F15, 0x9F21, + 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, + 0x9F54, 0x9F63, 0x9F5F, 0x9F60, + 0x9F61, 0x9F66, 0x9F67, 0x9F6C, + 0x9F6A, 0x9F77, 0x9F72, 0x9F76, + 0x9F95, 0x9F9C, 0x9FA0, 0x582F, + 0x69C7, 0x9059, 0x7464, 0x51DC, /* EAA0 */ + 0x7199, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x7E8A, 0x891C, 0x9348, 0x9288, /* ED40 */ + 0x84DC, 0x4FC9, 0x70BB, 0x6631, + 0x68C8, 0x92F9, 0x66FB, 0x5F45, + 0x4E28, 0x4EE1, 0x4EFC, 0x4F00, + 0x4F03, 0x4F39, 0x4F56, 0x4F92, + 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD, + 0x5040, 0x5022, 0x4FFF, 0x501E, + 0x5046, 0x5070, 0x5042, 0x5094, + 0x50F4, 0x50D8, 0x514A, 0x5164, /* ED60 */ + 0x519D, 0x51BE, 0x51EC, 0x5215, + 0x529C, 0x52A6, 0x52C0, 0x52DB, + 0x5300, 0x5307, 0x5324, 0x5372, + 0x5393, 0x53B2, 0x53DD, 0xFA0E, + 0x549C, 0x548A, 0x54A9, 0x54FF, + 0x5586, 0x5759, 0x5765, 0x57AC, + 0x57C8, 0x57C7, 0xFA0F, 0x0000, + 0xFA10, 0x589E, 0x58B2, 0x590B, /* ED80 */ + 0x5953, 0x595B, 0x595D, 0x5963, + 0x59A4, 0x59BA, 0x5B56, 0x5BC0, + 0x752F, 0x5BD8, 0x5BEC, 0x5C1E, + 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27, + 0x5D53, 0xFA11, 0x5D42, 0x5D6D, + 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21, + 0x5F34, 0x5F67, 0x5FB7, 0x5FDE, + 0x605D, 0x6085, 0x608A, 0x60DE, /* EDA0 */ + 0x60D5, 0x6120, 0x60F2, 0x6111, + 0x6137, 0x6130, 0x6198, 0x6213, + 0x62A6, 0x63F5, 0x6460, 0x649D, + 0x64CE, 0x654E, 0x6600, 0x6615, + 0x663B, 0x6609, 0x662E, 0x661E, + 0x6624, 0x6665, 0x6657, 0x6659, + 0xFA12, 0x6673, 0x6699, 0x66A0, + 0x66B2, 0x66BF, 0x66FA, 0x670E, /* EDC0 */ + 0xF929, 0x6766, 0x67BB, 0x6852, + 0x67C0, 0x6801, 0x6844, 0x68CF, + 0xFA13, 0x6968, 0xFA14, 0x6998, + 0x69E2, 0x6A30, 0x6A6B, 0x6A46, + 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4, + 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86, + 0x6C6F, 0x6CDA, 0x6D04, 0x6D87, + 0x6D6F, 0x6D96, 0x6DAC, 0x6DCF, /* EDE0 */ + 0x6DF8, 0x6DF2, 0x6DFC, 0x6E39, + 0x6E5C, 0x6E27, 0x6E3C, 0x6EBF, + 0x6F88, 0x6FB5, 0x6FF5, 0x7005, + 0x7007, 0x7028, 0x7085, 0x70AB, + 0x710F, 0x7104, 0x715C, 0x7146, + 0x7147, 0xFA15, 0x71C1, 0x71FE, + 0x72B1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x72BE, 0x7324, 0xFA16, 0x7377, /* EE40 */ + 0x73BD, 0x73C9, 0x73D6, 0x73E3, + 0x73D2, 0x7407, 0x73F5, 0x7426, + 0x742A, 0x7429, 0x742E, 0x7462, + 0x7489, 0x749F, 0x7501, 0x756F, + 0x7682, 0x769C, 0x769E, 0x769B, + 0x76A6, 0xFA17, 0x7746, 0x52AF, + 0x7821, 0x784E, 0x7864, 0x787A, + 0x7930, 0xFA18, 0xFA19, 0xFA1A, /* EE60 */ + 0x7994, 0xFA1B, 0x799B, 0x7AD1, + 0x7AE7, 0xFA1C, 0x7AEB, 0x7B9E, + 0xFA1D, 0x7D48, 0x7D5C, 0x7DB7, + 0x7DA0, 0x7DD6, 0x7E52, 0x7F47, + 0x7FA1, 0xFA1E, 0x8301, 0x8362, + 0x837F, 0x83C7, 0x83F6, 0x8448, + 0x84B4, 0x8553, 0x8559, 0x0000, + 0x856B, 0xFA1F, 0x85B0, 0xFA20, /* EE80 */ + 0xFA21, 0x8807, 0x88F5, 0x8A12, + 0x8A37, 0x8A79, 0x8AA7, 0x8ABE, + 0x8ADF, 0xFA22, 0x8AF6, 0x8B53, + 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12, + 0x8D76, 0xFA23, 0x8ECF, 0xFA24, + 0xFA25, 0x9067, 0x90DE, 0xFA26, + 0x9115, 0x9127, 0x91DA, 0x91D7, + 0x91DE, 0x91ED, 0x91EE, 0x91E4, /* EEA0 */ + 0x91E5, 0x9206, 0x9210, 0x920A, + 0x923A, 0x9240, 0x923C, 0x924E, + 0x9259, 0x9251, 0x9239, 0x9267, + 0x92A7, 0x9277, 0x9278, 0x92E7, + 0x92D7, 0x92D9, 0x92D0, 0xFA27, + 0x92D5, 0x92E0, 0x92D3, 0x9325, + 0x9321, 0x92FB, 0xFA28, 0x931E, + 0x92FF, 0x931D, 0x9302, 0x9370, /* EEC0 */ + 0x9357, 0x93A4, 0x93C6, 0x93DE, + 0x93F8, 0x9431, 0x9445, 0x9448, + 0x9592, 0xF9DC, 0xFA29, 0x969D, + 0x96AF, 0x9733, 0x973B, 0x9743, + 0x974D, 0x974F, 0x9751, 0x9755, + 0x9857, 0x9865, 0xFA2A, 0xFA2B, + 0x9927, 0xFA2C, 0x999E, 0x9A4E, + 0x9AD9, 0x9ADC, 0x9B75, 0x9B72, /* EEE0 */ + 0x9B8F, 0x9BB1, 0x9BBB, 0x9C00, + 0x9D70, 0x9D6B, 0xFA2D, 0x9E19, + 0x9ED1, 0x0000, 0x0000, 0x2170, + 0x2171, 0x2172, 0x2173, 0x2174, + 0x2175, 0x2176, 0x2177, 0x2178, + 0x2179, 0xFFE2, 0xFFE4, 0xFF07, + 0xFF02, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE000, 0xE001, 0xE002, 0xE003, /* F040 */ + 0xE004, 0xE005, 0xE006, 0xE007, + 0xE008, 0xE009, 0xE00A, 0xE00B, + 0xE00C, 0xE00D, 0xE00E, 0xE00F, + 0xE010, 0xE011, 0xE012, 0xE013, + 0xE014, 0xE015, 0xE016, 0xE017, + 0xE018, 0xE019, 0xE01A, 0xE01B, + 0xE01C, 0xE01D, 0xE01E, 0xE01F, + 0xE020, 0xE021, 0xE022, 0xE023, /* F060 */ + 0xE024, 0xE025, 0xE026, 0xE027, + 0xE028, 0xE029, 0xE02A, 0xE02B, + 0xE02C, 0xE02D, 0xE02E, 0xE02F, + 0xE030, 0xE031, 0xE032, 0xE033, + 0xE034, 0xE035, 0xE036, 0xE037, + 0xE038, 0xE039, 0xE03A, 0xE03B, + 0xE03C, 0xE03D, 0xE03E, 0x0000, + 0xE03F, 0xE040, 0xE041, 0xE042, /* F080 */ + 0xE043, 0xE044, 0xE045, 0xE046, + 0xE047, 0xE048, 0xE049, 0xE04A, + 0xE04B, 0xE04C, 0xE04D, 0xE04E, + 0xE04F, 0xE050, 0xE051, 0xE052, + 0xE053, 0xE054, 0xE055, 0xE056, + 0xE057, 0xE058, 0xE059, 0xE05A, + 0xE05B, 0xE05C, 0xE05D, 0xE05E, + 0xE05F, 0xE060, 0xE061, 0xE062, /* F0A0 */ + 0xE063, 0xE064, 0xE065, 0xE066, + 0xE067, 0xE068, 0xE069, 0xE06A, + 0xE06B, 0xE06C, 0xE06D, 0xE06E, + 0xE06F, 0xE070, 0xE071, 0xE072, + 0xE073, 0xE074, 0xE075, 0xE076, + 0xE077, 0xE078, 0xE079, 0xE07A, + 0xE07B, 0xE07C, 0xE07D, 0xE07E, + 0xE07F, 0xE080, 0xE081, 0xE082, /* F0C0 */ + 0xE083, 0xE084, 0xE085, 0xE086, + 0xE087, 0xE088, 0xE089, 0xE08A, + 0xE08B, 0xE08C, 0xE08D, 0xE08E, + 0xE08F, 0xE090, 0xE091, 0xE092, + 0xE093, 0xE094, 0xE095, 0xE096, + 0xE097, 0xE098, 0xE099, 0xE09A, + 0xE09B, 0xE09C, 0xE09D, 0xE09E, + 0xE09F, 0xE0A0, 0xE0A1, 0xE0A2, /* F0E0 */ + 0xE0A3, 0xE0A4, 0xE0A5, 0xE0A6, + 0xE0A7, 0xE0A8, 0xE0A9, 0xE0AA, + 0xE0AB, 0xE0AC, 0xE0AD, 0xE0AE, + 0xE0AF, 0xE0B0, 0xE0B1, 0xE0B2, + 0xE0B3, 0xE0B4, 0xE0B5, 0xE0B6, + 0xE0B7, 0xE0B8, 0xE0B9, 0xE0BA, + 0xE0BB, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE0BC, 0xE0BD, 0xE0BE, 0xE0BF, /* F140 */ + 0xE0C0, 0xE0C1, 0xE0C2, 0xE0C3, + 0xE0C4, 0xE0C5, 0xE0C6, 0xE0C7, + 0xE0C8, 0xE0C9, 0xE0CA, 0xE0CB, + 0xE0CC, 0xE0CD, 0xE0CE, 0xE0CF, + 0xE0D0, 0xE0D1, 0xE0D2, 0xE0D3, + 0xE0D4, 0xE0D5, 0xE0D6, 0xE0D7, + 0xE0D8, 0xE0D9, 0xE0DA, 0xE0DB, + 0xE0DC, 0xE0DD, 0xE0DE, 0xE0DF, /* F160 */ + 0xE0E0, 0xE0E1, 0xE0E2, 0xE0E3, + 0xE0E4, 0xE0E5, 0xE0E6, 0xE0E7, + 0xE0E8, 0xE0E9, 0xE0EA, 0xE0EB, + 0xE0EC, 0xE0ED, 0xE0EE, 0xE0EF, + 0xE0F0, 0xE0F1, 0xE0F2, 0xE0F3, + 0xE0F4, 0xE0F5, 0xE0F6, 0xE0F7, + 0xE0F8, 0xE0F9, 0xE0FA, 0x0000, + 0xE0FB, 0xE0FC, 0xE0FD, 0xE0FE, /* F180 */ + 0xE0FF, 0xE100, 0xE101, 0xE102, + 0xE103, 0xE104, 0xE105, 0xE106, + 0xE107, 0xE108, 0xE109, 0xE10A, + 0xE10B, 0xE10C, 0xE10D, 0xE10E, + 0xE10F, 0xE110, 0xE111, 0xE112, + 0xE113, 0xE114, 0xE115, 0xE116, + 0xE117, 0xE118, 0xE119, 0xE11A, + 0xE11B, 0xE11C, 0xE11D, 0xE11E, /* F1A0 */ + 0xE11F, 0xE120, 0xE121, 0xE122, + 0xE123, 0xE124, 0xE125, 0xE126, + 0xE127, 0xE128, 0xE129, 0xE12A, + 0xE12B, 0xE12C, 0xE12D, 0xE12E, + 0xE12F, 0xE130, 0xE131, 0xE132, + 0xE133, 0xE134, 0xE135, 0xE136, + 0xE137, 0xE138, 0xE139, 0xE13A, + 0xE13B, 0xE13C, 0xE13D, 0xE13E, /* F1C0 */ + 0xE13F, 0xE140, 0xE141, 0xE142, + 0xE143, 0xE144, 0xE145, 0xE146, + 0xE147, 0xE148, 0xE149, 0xE14A, + 0xE14B, 0xE14C, 0xE14D, 0xE14E, + 0xE14F, 0xE150, 0xE151, 0xE152, + 0xE153, 0xE154, 0xE155, 0xE156, + 0xE157, 0xE158, 0xE159, 0xE15A, + 0xE15B, 0xE15C, 0xE15D, 0xE15E, /* F1E0 */ + 0xE15F, 0xE160, 0xE161, 0xE162, + 0xE163, 0xE164, 0xE165, 0xE166, + 0xE167, 0xE168, 0xE169, 0xE16A, + 0xE16B, 0xE16C, 0xE16D, 0xE16E, + 0xE16F, 0xE170, 0xE171, 0xE172, + 0xE173, 0xE174, 0xE175, 0xE176, + 0xE177, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE178, 0xE179, 0xE17A, 0xE17B, /* F240 */ + 0xE17C, 0xE17D, 0xE17E, 0xE17F, + 0xE180, 0xE181, 0xE182, 0xE183, + 0xE184, 0xE185, 0xE186, 0xE187, + 0xE188, 0xE189, 0xE18A, 0xE18B, + 0xE18C, 0xE18D, 0xE18E, 0xE18F, + 0xE190, 0xE191, 0xE192, 0xE193, + 0xE194, 0xE195, 0xE196, 0xE197, + 0xE198, 0xE199, 0xE19A, 0xE19B, /* F260 */ + 0xE19C, 0xE19D, 0xE19E, 0xE19F, + 0xE1A0, 0xE1A1, 0xE1A2, 0xE1A3, + 0xE1A4, 0xE1A5, 0xE1A6, 0xE1A7, + 0xE1A8, 0xE1A9, 0xE1AA, 0xE1AB, + 0xE1AC, 0xE1AD, 0xE1AE, 0xE1AF, + 0xE1B0, 0xE1B1, 0xE1B2, 0xE1B3, + 0xE1B4, 0xE1B5, 0xE1B6, 0x0000, + 0xE1B7, 0xE1B8, 0xE1B9, 0xE1BA, /* F280 */ + 0xE1BB, 0xE1BC, 0xE1BD, 0xE1BE, + 0xE1BF, 0xE1C0, 0xE1C1, 0xE1C2, + 0xE1C3, 0xE1C4, 0xE1C5, 0xE1C6, + 0xE1C7, 0xE1C8, 0xE1C9, 0xE1CA, + 0xE1CB, 0xE1CC, 0xE1CD, 0xE1CE, + 0xE1CF, 0xE1D0, 0xE1D1, 0xE1D2, + 0xE1D3, 0xE1D4, 0xE1D5, 0xE1D6, + 0xE1D7, 0xE1D8, 0xE1D9, 0xE1DA, /* F2A0 */ + 0xE1DB, 0xE1DC, 0xE1DD, 0xE1DE, + 0xE1DF, 0xE1E0, 0xE1E1, 0xE1E2, + 0xE1E3, 0xE1E4, 0xE1E5, 0xE1E6, + 0xE1E7, 0xE1E8, 0xE1E9, 0xE1EA, + 0xE1EB, 0xE1EC, 0xE1ED, 0xE1EE, + 0xE1EF, 0xE1F0, 0xE1F1, 0xE1F2, + 0xE1F3, 0xE1F4, 0xE1F5, 0xE1F6, + 0xE1F7, 0xE1F8, 0xE1F9, 0xE1FA, /* F2C0 */ + 0xE1FB, 0xE1FC, 0xE1FD, 0xE1FE, + 0xE1FF, 0xE200, 0xE201, 0xE202, + 0xE203, 0xE204, 0xE205, 0xE206, + 0xE207, 0xE208, 0xE209, 0xE20A, + 0xE20B, 0xE20C, 0xE20D, 0xE20E, + 0xE20F, 0xE210, 0xE211, 0xE212, + 0xE213, 0xE214, 0xE215, 0xE216, + 0xE217, 0xE218, 0xE219, 0xE21A, /* F2E0 */ + 0xE21B, 0xE21C, 0xE21D, 0xE21E, + 0xE21F, 0xE220, 0xE221, 0xE222, + 0xE223, 0xE224, 0xE225, 0xE226, + 0xE227, 0xE228, 0xE229, 0xE22A, + 0xE22B, 0xE22C, 0xE22D, 0xE22E, + 0xE22F, 0xE230, 0xE231, 0xE232, + 0xE233, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE234, 0xE235, 0xE236, 0xE237, /* F340 */ + 0xE238, 0xE239, 0xE23A, 0xE23B, + 0xE23C, 0xE23D, 0xE23E, 0xE23F, + 0xE240, 0xE241, 0xE242, 0xE243, + 0xE244, 0xE245, 0xE246, 0xE247, + 0xE248, 0xE249, 0xE24A, 0xE24B, + 0xE24C, 0xE24D, 0xE24E, 0xE24F, + 0xE250, 0xE251, 0xE252, 0xE253, + 0xE254, 0xE255, 0xE256, 0xE257, /* F360 */ + 0xE258, 0xE259, 0xE25A, 0xE25B, + 0xE25C, 0xE25D, 0xE25E, 0xE25F, + 0xE260, 0xE261, 0xE262, 0xE263, + 0xE264, 0xE265, 0xE266, 0xE267, + 0xE268, 0xE269, 0xE26A, 0xE26B, + 0xE26C, 0xE26D, 0xE26E, 0xE26F, + 0xE270, 0xE271, 0xE272, 0x0000, + 0xE273, 0xE274, 0xE275, 0xE276, /* F380 */ + 0xE277, 0xE278, 0xE279, 0xE27A, + 0xE27B, 0xE27C, 0xE27D, 0xE27E, + 0xE27F, 0xE280, 0xE281, 0xE282, + 0xE283, 0xE284, 0xE285, 0xE286, + 0xE287, 0xE288, 0xE289, 0xE28A, + 0xE28B, 0xE28C, 0xE28D, 0xE28E, + 0xE28F, 0xE290, 0xE291, 0xE292, + 0xE293, 0xE294, 0xE295, 0xE296, /* F3A0 */ + 0xE297, 0xE298, 0xE299, 0xE29A, + 0xE29B, 0xE29C, 0xE29D, 0xE29E, + 0xE29F, 0xE2A0, 0xE2A1, 0xE2A2, + 0xE2A3, 0xE2A4, 0xE2A5, 0xE2A6, + 0xE2A7, 0xE2A8, 0xE2A9, 0xE2AA, + 0xE2AB, 0xE2AC, 0xE2AD, 0xE2AE, + 0xE2AF, 0xE2B0, 0xE2B1, 0xE2B2, + 0xE2B3, 0xE2B4, 0xE2B5, 0xE2B6, /* F3C0 */ + 0xE2B7, 0xE2B8, 0xE2B9, 0xE2BA, + 0xE2BB, 0xE2BC, 0xE2BD, 0xE2BE, + 0xE2BF, 0xE2C0, 0xE2C1, 0xE2C2, + 0xE2C3, 0xE2C4, 0xE2C5, 0xE2C6, + 0xE2C7, 0xE2C8, 0xE2C9, 0xE2CA, + 0xE2CB, 0xE2CC, 0xE2CD, 0xE2CE, + 0xE2CF, 0xE2D0, 0xE2D1, 0xE2D2, + 0xE2D3, 0xE2D4, 0xE2D5, 0xE2D6, /* F3E0 */ + 0xE2D7, 0xE2D8, 0xE2D9, 0xE2DA, + 0xE2DB, 0xE2DC, 0xE2DD, 0xE2DE, + 0xE2DF, 0xE2E0, 0xE2E1, 0xE2E2, + 0xE2E3, 0xE2E4, 0xE2E5, 0xE2E6, + 0xE2E7, 0xE2E8, 0xE2E9, 0xE2EA, + 0xE2EB, 0xE2EC, 0xE2ED, 0xE2EE, + 0xE2EF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE2F0, 0xE2F1, 0xE2F2, 0xE2F3, /* F440 */ + 0xE2F4, 0xE2F5, 0xE2F6, 0xE2F7, + 0xE2F8, 0xE2F9, 0xE2FA, 0xE2FB, + 0xE2FC, 0xE2FD, 0xE2FE, 0xE2FF, + 0xE300, 0xE301, 0xE302, 0xE303, + 0xE304, 0xE305, 0xE306, 0xE307, + 0xE308, 0xE309, 0xE30A, 0xE30B, + 0xE30C, 0xE30D, 0xE30E, 0xE30F, + 0xE310, 0xE311, 0xE312, 0xE313, /* F460 */ + 0xE314, 0xE315, 0xE316, 0xE317, + 0xE318, 0xE319, 0xE31A, 0xE31B, + 0xE31C, 0xE31D, 0xE31E, 0xE31F, + 0xE320, 0xE321, 0xE322, 0xE323, + 0xE324, 0xE325, 0xE326, 0xE327, + 0xE328, 0xE329, 0xE32A, 0xE32B, + 0xE32C, 0xE32D, 0xE32E, 0x0000, + 0xE32F, 0xE330, 0xE331, 0xE332, /* F480 */ + 0xE333, 0xE334, 0xE335, 0xE336, + 0xE337, 0xE338, 0xE339, 0xE33A, + 0xE33B, 0xE33C, 0xE33D, 0xE33E, + 0xE33F, 0xE340, 0xE341, 0xE342, + 0xE343, 0xE344, 0xE345, 0xE346, + 0xE347, 0xE348, 0xE349, 0xE34A, + 0xE34B, 0xE34C, 0xE34D, 0xE34E, + 0xE34F, 0xE350, 0xE351, 0xE352, /* F4A0 */ + 0xE353, 0xE354, 0xE355, 0xE356, + 0xE357, 0xE358, 0xE359, 0xE35A, + 0xE35B, 0xE35C, 0xE35D, 0xE35E, + 0xE35F, 0xE360, 0xE361, 0xE362, + 0xE363, 0xE364, 0xE365, 0xE366, + 0xE367, 0xE368, 0xE369, 0xE36A, + 0xE36B, 0xE36C, 0xE36D, 0xE36E, + 0xE36F, 0xE370, 0xE371, 0xE372, /* F4C0 */ + 0xE373, 0xE374, 0xE375, 0xE376, + 0xE377, 0xE378, 0xE379, 0xE37A, + 0xE37B, 0xE37C, 0xE37D, 0xE37E, + 0xE37F, 0xE380, 0xE381, 0xE382, + 0xE383, 0xE384, 0xE385, 0xE386, + 0xE387, 0xE388, 0xE389, 0xE38A, + 0xE38B, 0xE38C, 0xE38D, 0xE38E, + 0xE38F, 0xE390, 0xE391, 0xE392, /* F4E0 */ + 0xE393, 0xE394, 0xE395, 0xE396, + 0xE397, 0xE398, 0xE399, 0xE39A, + 0xE39B, 0xE39C, 0xE39D, 0xE39E, + 0xE39F, 0xE3A0, 0xE3A1, 0xE3A2, + 0xE3A3, 0xE3A4, 0xE3A5, 0xE3A6, + 0xE3A7, 0xE3A8, 0xE3A9, 0xE3AA, + 0xE3AB, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE3AC, 0xE3AD, 0xE3AE, 0xE3AF, /* F540 */ + 0xE3B0, 0xE3B1, 0xE3B2, 0xE3B3, + 0xE3B4, 0xE3B5, 0xE3B6, 0xE3B7, + 0xE3B8, 0xE3B9, 0xE3BA, 0xE3BB, + 0xE3BC, 0xE3BD, 0xE3BE, 0xE3BF, + 0xE3C0, 0xE3C1, 0xE3C2, 0xE3C3, + 0xE3C4, 0xE3C5, 0xE3C6, 0xE3C7, + 0xE3C8, 0xE3C9, 0xE3CA, 0xE3CB, + 0xE3CC, 0xE3CD, 0xE3CE, 0xE3CF, /* F560 */ + 0xE3D0, 0xE3D1, 0xE3D2, 0xE3D3, + 0xE3D4, 0xE3D5, 0xE3D6, 0xE3D7, + 0xE3D8, 0xE3D9, 0xE3DA, 0xE3DB, + 0xE3DC, 0xE3DD, 0xE3DE, 0xE3DF, + 0xE3E0, 0xE3E1, 0xE3E2, 0xE3E3, + 0xE3E4, 0xE3E5, 0xE3E6, 0xE3E7, + 0xE3E8, 0xE3E9, 0xE3EA, 0x0000, + 0xE3EB, 0xE3EC, 0xE3ED, 0xE3EE, /* F580 */ + 0xE3EF, 0xE3F0, 0xE3F1, 0xE3F2, + 0xE3F3, 0xE3F4, 0xE3F5, 0xE3F6, + 0xE3F7, 0xE3F8, 0xE3F9, 0xE3FA, + 0xE3FB, 0xE3FC, 0xE3FD, 0xE3FE, + 0xE3FF, 0xE400, 0xE401, 0xE402, + 0xE403, 0xE404, 0xE405, 0xE406, + 0xE407, 0xE408, 0xE409, 0xE40A, + 0xE40B, 0xE40C, 0xE40D, 0xE40E, /* F5A0 */ + 0xE40F, 0xE410, 0xE411, 0xE412, + 0xE413, 0xE414, 0xE415, 0xE416, + 0xE417, 0xE418, 0xE419, 0xE41A, + 0xE41B, 0xE41C, 0xE41D, 0xE41E, + 0xE41F, 0xE420, 0xE421, 0xE422, + 0xE423, 0xE424, 0xE425, 0xE426, + 0xE427, 0xE428, 0xE429, 0xE42A, + 0xE42B, 0xE42C, 0xE42D, 0xE42E, /* F5C0 */ + 0xE42F, 0xE430, 0xE431, 0xE432, + 0xE433, 0xE434, 0xE435, 0xE436, + 0xE437, 0xE438, 0xE439, 0xE43A, + 0xE43B, 0xE43C, 0xE43D, 0xE43E, + 0xE43F, 0xE440, 0xE441, 0xE442, + 0xE443, 0xE444, 0xE445, 0xE446, + 0xE447, 0xE448, 0xE449, 0xE44A, + 0xE44B, 0xE44C, 0xE44D, 0xE44E, /* F5E0 */ + 0xE44F, 0xE450, 0xE451, 0xE452, + 0xE453, 0xE454, 0xE455, 0xE456, + 0xE457, 0xE458, 0xE459, 0xE45A, + 0xE45B, 0xE45C, 0xE45D, 0xE45E, + 0xE45F, 0xE460, 0xE461, 0xE462, + 0xE463, 0xE464, 0xE465, 0xE466, + 0xE467, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE468, 0xE469, 0xE46A, 0xE46B, /* F640 */ + 0xE46C, 0xE46D, 0xE46E, 0xE46F, + 0xE470, 0xE471, 0xE472, 0xE473, + 0xE474, 0xE475, 0xE476, 0xE477, + 0xE478, 0xE479, 0xE47A, 0xE47B, + 0xE47C, 0xE47D, 0xE47E, 0xE47F, + 0xE480, 0xE481, 0xE482, 0xE483, + 0xE484, 0xE485, 0xE486, 0xE487, + 0xE488, 0xE489, 0xE48A, 0xE48B, /* F660 */ + 0xE48C, 0xE48D, 0xE48E, 0xE48F, + 0xE490, 0xE491, 0xE492, 0xE493, + 0xE494, 0xE495, 0xE496, 0xE497, + 0xE498, 0xE499, 0xE49A, 0xE49B, + 0xE49C, 0xE49D, 0xE49E, 0xE49F, + 0xE4A0, 0xE4A1, 0xE4A2, 0xE4A3, + 0xE4A4, 0xE4A5, 0xE4A6, 0x0000, + 0xE4A7, 0xE4A8, 0xE4A9, 0xE4AA, /* F680 */ + 0xE4AB, 0xE4AC, 0xE4AD, 0xE4AE, + 0xE4AF, 0xE4B0, 0xE4B1, 0xE4B2, + 0xE4B3, 0xE4B4, 0xE4B5, 0xE4B6, + 0xE4B7, 0xE4B8, 0xE4B9, 0xE4BA, + 0xE4BB, 0xE4BC, 0xE4BD, 0xE4BE, + 0xE4BF, 0xE4C0, 0xE4C1, 0xE4C2, + 0xE4C3, 0xE4C4, 0xE4C5, 0xE4C6, + 0xE4C7, 0xE4C8, 0xE4C9, 0xE4CA, /* F6A0 */ + 0xE4CB, 0xE4CC, 0xE4CD, 0xE4CE, + 0xE4CF, 0xE4D0, 0xE4D1, 0xE4D2, + 0xE4D3, 0xE4D4, 0xE4D5, 0xE4D6, + 0xE4D7, 0xE4D8, 0xE4D9, 0xE4DA, + 0xE4DB, 0xE4DC, 0xE4DD, 0xE4DE, + 0xE4DF, 0xE4E0, 0xE4E1, 0xE4E2, + 0xE4E3, 0xE4E4, 0xE4E5, 0xE4E6, + 0xE4E7, 0xE4E8, 0xE4E9, 0xE4EA, /* F6C0 */ + 0xE4EB, 0xE4EC, 0xE4ED, 0xE4EE, + 0xE4EF, 0xE4F0, 0xE4F1, 0xE4F2, + 0xE4F3, 0xE4F4, 0xE4F5, 0xE4F6, + 0xE4F7, 0xE4F8, 0xE4F9, 0xE4FA, + 0xE4FB, 0xE4FC, 0xE4FD, 0xE4FE, + 0xE4FF, 0xE500, 0xE501, 0xE502, + 0xE503, 0xE504, 0xE505, 0xE506, + 0xE507, 0xE508, 0xE509, 0xE50A, /* F6E0 */ + 0xE50B, 0xE50C, 0xE50D, 0xE50E, + 0xE50F, 0xE510, 0xE511, 0xE512, + 0xE513, 0xE514, 0xE515, 0xE516, + 0xE517, 0xE518, 0xE519, 0xE51A, + 0xE51B, 0xE51C, 0xE51D, 0xE51E, + 0xE51F, 0xE520, 0xE521, 0xE522, + 0xE523, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE524, 0xE525, 0xE526, 0xE527, /* F740 */ + 0xE528, 0xE529, 0xE52A, 0xE52B, + 0xE52C, 0xE52D, 0xE52E, 0xE52F, + 0xE530, 0xE531, 0xE532, 0xE533, + 0xE534, 0xE535, 0xE536, 0xE537, + 0xE538, 0xE539, 0xE53A, 0xE53B, + 0xE53C, 0xE53D, 0xE53E, 0xE53F, + 0xE540, 0xE541, 0xE542, 0xE543, + 0xE544, 0xE545, 0xE546, 0xE547, /* F760 */ + 0xE548, 0xE549, 0xE54A, 0xE54B, + 0xE54C, 0xE54D, 0xE54E, 0xE54F, + 0xE550, 0xE551, 0xE552, 0xE553, + 0xE554, 0xE555, 0xE556, 0xE557, + 0xE558, 0xE559, 0xE55A, 0xE55B, + 0xE55C, 0xE55D, 0xE55E, 0xE55F, + 0xE560, 0xE561, 0xE562, 0x0000, + 0xE563, 0xE564, 0xE565, 0xE566, /* F780 */ + 0xE567, 0xE568, 0xE569, 0xE56A, + 0xE56B, 0xE56C, 0xE56D, 0xE56E, + 0xE56F, 0xE570, 0xE571, 0xE572, + 0xE573, 0xE574, 0xE575, 0xE576, + 0xE577, 0xE578, 0xE579, 0xE57A, + 0xE57B, 0xE57C, 0xE57D, 0xE57E, + 0xE57F, 0xE580, 0xE581, 0xE582, + 0xE583, 0xE584, 0xE585, 0xE586, /* F7A0 */ + 0xE587, 0xE588, 0xE589, 0xE58A, + 0xE58B, 0xE58C, 0xE58D, 0xE58E, + 0xE58F, 0xE590, 0xE591, 0xE592, + 0xE593, 0xE594, 0xE595, 0xE596, + 0xE597, 0xE598, 0xE599, 0xE59A, + 0xE59B, 0xE59C, 0xE59D, 0xE59E, + 0xE59F, 0xE5A0, 0xE5A1, 0xE5A2, + 0xE5A3, 0xE5A4, 0xE5A5, 0xE5A6, /* F7C0 */ + 0xE5A7, 0xE5A8, 0xE5A9, 0xE5AA, + 0xE5AB, 0xE5AC, 0xE5AD, 0xE5AE, + 0xE5AF, 0xE5B0, 0xE5B1, 0xE5B2, + 0xE5B3, 0xE5B4, 0xE5B5, 0xE5B6, + 0xE5B7, 0xE5B8, 0xE5B9, 0xE5BA, + 0xE5BB, 0xE5BC, 0xE5BD, 0xE5BE, + 0xE5BF, 0xE5C0, 0xE5C1, 0xE5C2, + 0xE5C3, 0xE5C4, 0xE5C5, 0xE5C6, /* F7E0 */ + 0xE5C7, 0xE5C8, 0xE5C9, 0xE5CA, + 0xE5CB, 0xE5CC, 0xE5CD, 0xE5CE, + 0xE5CF, 0xE5D0, 0xE5D1, 0xE5D2, + 0xE5D3, 0xE5D4, 0xE5D5, 0xE5D6, + 0xE5D7, 0xE5D8, 0xE5D9, 0xE5DA, + 0xE5DB, 0xE5DC, 0xE5DD, 0xE5DE, + 0xE5DF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE5E0, 0xE5E1, 0xE5E2, 0xE5E3, /* F840 */ + 0xE5E4, 0xE5E5, 0xE5E6, 0xE5E7, + 0xE5E8, 0xE5E9, 0xE5EA, 0xE5EB, + 0xE5EC, 0xE5ED, 0xE5EE, 0xE5EF, + 0xE5F0, 0xE5F1, 0xE5F2, 0xE5F3, + 0xE5F4, 0xE5F5, 0xE5F6, 0xE5F7, + 0xE5F8, 0xE5F9, 0xE5FA, 0xE5FB, + 0xE5FC, 0xE5FD, 0xE5FE, 0xE5FF, + 0xE600, 0xE601, 0xE602, 0xE603, /* F860 */ + 0xE604, 0xE605, 0xE606, 0xE607, + 0xE608, 0xE609, 0xE60A, 0xE60B, + 0xE60C, 0xE60D, 0xE60E, 0xE60F, + 0xE610, 0xE611, 0xE612, 0xE613, + 0xE614, 0xE615, 0xE616, 0xE617, + 0xE618, 0xE619, 0xE61A, 0xE61B, + 0xE61C, 0xE61D, 0xE61E, 0x0000, + 0xE61F, 0xE620, 0xE621, 0xE622, /* F880 */ + 0xE623, 0xE624, 0xE625, 0xE626, + 0xE627, 0xE628, 0xE629, 0xE62A, + 0xE62B, 0xE62C, 0xE62D, 0xE62E, + 0xE62F, 0xE630, 0xE631, 0xE632, + 0xE633, 0xE634, 0xE635, 0xE636, + 0xE637, 0xE638, 0xE639, 0xE63A, + 0xE63B, 0xE63C, 0xE63D, 0xE63E, + 0xE63F, 0xE640, 0xE641, 0xE642, /* F8A0 */ + 0xE643, 0xE644, 0xE645, 0xE646, + 0xE647, 0xE648, 0xE649, 0xE64A, + 0xE64B, 0xE64C, 0xE64D, 0xE64E, + 0xE64F, 0xE650, 0xE651, 0xE652, + 0xE653, 0xE654, 0xE655, 0xE656, + 0xE657, 0xE658, 0xE659, 0xE65A, + 0xE65B, 0xE65C, 0xE65D, 0xE65E, + 0xE65F, 0xE660, 0xE661, 0xE662, /* F8C0 */ + 0xE663, 0xE664, 0xE665, 0xE666, + 0xE667, 0xE668, 0xE669, 0xE66A, + 0xE66B, 0xE66C, 0xE66D, 0xE66E, + 0xE66F, 0xE670, 0xE671, 0xE672, + 0xE673, 0xE674, 0xE675, 0xE676, + 0xE677, 0xE678, 0xE679, 0xE67A, + 0xE67B, 0xE67C, 0xE67D, 0xE67E, + 0xE67F, 0xE680, 0xE681, 0xE682, /* F8E0 */ + 0xE683, 0xE684, 0xE685, 0xE686, + 0xE687, 0xE688, 0xE689, 0xE68A, + 0xE68B, 0xE68C, 0xE68D, 0xE68E, + 0xE68F, 0xE690, 0xE691, 0xE692, + 0xE693, 0xE694, 0xE695, 0xE696, + 0xE697, 0xE698, 0xE699, 0xE69A, + 0xE69B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xE69C, 0xE69D, 0xE69E, 0xE69F, /* F940 */ + 0xE6A0, 0xE6A1, 0xE6A2, 0xE6A3, + 0xE6A4, 0xE6A5, 0xE6A6, 0xE6A7, + 0xE6A8, 0xE6A9, 0xE6AA, 0xE6AB, + 0xE6AC, 0xE6AD, 0xE6AE, 0xE6AF, + 0xE6B0, 0xE6B1, 0xE6B2, 0xE6B3, + 0xE6B4, 0xE6B5, 0xE6B6, 0xE6B7, + 0xE6B8, 0xE6B9, 0xE6BA, 0xE6BB, + 0xE6BC, 0xE6BD, 0xE6BE, 0xE6BF, /* F960 */ + 0xE6C0, 0xE6C1, 0xE6C2, 0xE6C3, + 0xE6C4, 0xE6C5, 0xE6C6, 0xE6C7, + 0xE6C8, 0xE6C9, 0xE6CA, 0xE6CB, + 0xE6CC, 0xE6CD, 0xE6CE, 0xE6CF, + 0xE6D0, 0xE6D1, 0xE6D2, 0xE6D3, + 0xE6D4, 0xE6D5, 0xE6D6, 0xE6D7, + 0xE6D8, 0xE6D9, 0xE6DA, 0x0000, + 0xE6DB, 0xE6DC, 0xE6DD, 0xE6DE, /* F980 */ + 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2, + 0xE6E3, 0xE6E4, 0xE6E5, 0xE6E6, + 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA, + 0xE6EB, 0xE6EC, 0xE6ED, 0xE6EE, + 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2, + 0xE6F3, 0xE6F4, 0xE6F5, 0xE6F6, + 0xE6F7, 0xE6F8, 0xE6F9, 0xE6FA, + 0xE6FB, 0xE6FC, 0xE6FD, 0xE6FE, /* F9A0 */ + 0xE6FF, 0xE700, 0xE701, 0xE702, + 0xE703, 0xE704, 0xE705, 0xE706, + 0xE707, 0xE708, 0xE709, 0xE70A, + 0xE70B, 0xE70C, 0xE70D, 0xE70E, + 0xE70F, 0xE710, 0xE711, 0xE712, + 0xE713, 0xE714, 0xE715, 0xE716, + 0xE717, 0xE718, 0xE719, 0xE71A, + 0xE71B, 0xE71C, 0xE71D, 0xE71E, /* F9C0 */ + 0xE71F, 0xE720, 0xE721, 0xE722, + 0xE723, 0xE724, 0xE725, 0xE726, + 0xE727, 0xE728, 0xE729, 0xE72A, + 0xE72B, 0xE72C, 0xE72D, 0xE72E, + 0xE72F, 0xE730, 0xE731, 0xE732, + 0xE733, 0xE734, 0xE735, 0xE736, + 0xE737, 0xE738, 0xE739, 0xE73A, + 0xE73B, 0xE73C, 0xE73D, 0xE73E, /* F9E0 */ + 0xE73F, 0xE740, 0xE741, 0xE742, + 0xE743, 0xE744, 0xE745, 0xE746, + 0xE747, 0xE748, 0xE749, 0xE74A, + 0xE74B, 0xE74C, 0xE74D, 0xE74E, + 0xE74F, 0xE750, 0xE751, 0xE752, + 0xE753, 0xE754, 0xE755, 0xE756, + 0xE757, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2170, 0x2171, 0x2172, 0x2173, /* FA40 */ + 0x2174, 0x2175, 0x2176, 0x2177, + 0x2178, 0x2179, 0x2160, 0x2161, + 0x2162, 0x2163, 0x2164, 0x2165, + 0x2166, 0x2167, 0x2168, 0x2169, + 0xFFE2, 0xFFE4, 0xFF07, 0xFF02, + 0x3231, 0x2116, 0x2121, 0x2235, + 0x7E8A, 0x891C, 0x9348, 0x9288, + 0x84DC, 0x4FC9, 0x70BB, 0x6631, /* FA60 */ + 0x68C8, 0x92F9, 0x66FB, 0x5F45, + 0x4E28, 0x4EE1, 0x4EFC, 0x4F00, + 0x4F03, 0x4F39, 0x4F56, 0x4F92, + 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD, + 0x5040, 0x5022, 0x4FFF, 0x501E, + 0x5046, 0x5070, 0x5042, 0x5094, + 0x50F4, 0x50D8, 0x514A, 0x0000, + 0x5164, 0x519D, 0x51BE, 0x51EC, /* FA80 */ + 0x5215, 0x529C, 0x52A6, 0x52C0, + 0x52DB, 0x5300, 0x5307, 0x5324, + 0x5372, 0x5393, 0x53B2, 0x53DD, + 0xFA0E, 0x549C, 0x548A, 0x54A9, + 0x54FF, 0x5586, 0x5759, 0x5765, + 0x57AC, 0x57C8, 0x57C7, 0xFA0F, + 0xFA10, 0x589E, 0x58B2, 0x590B, + 0x5953, 0x595B, 0x595D, 0x5963, /* FAA0 */ + 0x59A4, 0x59BA, 0x5B56, 0x5BC0, + 0x752F, 0x5BD8, 0x5BEC, 0x5C1E, + 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27, + 0x5D53, 0xFA11, 0x5D42, 0x5D6D, + 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21, + 0x5F34, 0x5F67, 0x5FB7, 0x5FDE, + 0x605D, 0x6085, 0x608A, 0x60DE, + 0x60D5, 0x6120, 0x60F2, 0x6111, /* FAC0 */ + 0x6137, 0x6130, 0x6198, 0x6213, + 0x62A6, 0x63F5, 0x6460, 0x649D, + 0x64CE, 0x654E, 0x6600, 0x6615, + 0x663B, 0x6609, 0x662E, 0x661E, + 0x6624, 0x6665, 0x6657, 0x6659, + 0xFA12, 0x6673, 0x6699, 0x66A0, + 0x66B2, 0x66BF, 0x66FA, 0x670E, + 0xF929, 0x6766, 0x67BB, 0x6852, /* FAE0 */ + 0x67C0, 0x6801, 0x6844, 0x68CF, + 0xFA13, 0x6968, 0xFA14, 0x6998, + 0x69E2, 0x6A30, 0x6A6B, 0x6A46, + 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4, + 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86, + 0x6C6F, 0x6CDA, 0x6D04, 0x6D87, + 0x6D6F, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6D96, 0x6DAC, 0x6DCF, 0x6DF8, /* FB40 */ + 0x6DF2, 0x6DFC, 0x6E39, 0x6E5C, + 0x6E27, 0x6E3C, 0x6EBF, 0x6F88, + 0x6FB5, 0x6FF5, 0x7005, 0x7007, + 0x7028, 0x7085, 0x70AB, 0x710F, + 0x7104, 0x715C, 0x7146, 0x7147, + 0xFA15, 0x71C1, 0x71FE, 0x72B1, + 0x72BE, 0x7324, 0xFA16, 0x7377, + 0x73BD, 0x73C9, 0x73D6, 0x73E3, /* FB60 */ + 0x73D2, 0x7407, 0x73F5, 0x7426, + 0x742A, 0x7429, 0x742E, 0x7462, + 0x7489, 0x749F, 0x7501, 0x756F, + 0x7682, 0x769C, 0x769E, 0x769B, + 0x76A6, 0xFA17, 0x7746, 0x52AF, + 0x7821, 0x784E, 0x7864, 0x787A, + 0x7930, 0xFA18, 0xFA19, 0x0000, + 0xFA1A, 0x7994, 0xFA1B, 0x799B, /* FB80 */ + 0x7AD1, 0x7AE7, 0xFA1C, 0x7AEB, + 0x7B9E, 0xFA1D, 0x7D48, 0x7D5C, + 0x7DB7, 0x7DA0, 0x7DD6, 0x7E52, + 0x7F47, 0x7FA1, 0xFA1E, 0x8301, + 0x8362, 0x837F, 0x83C7, 0x83F6, + 0x8448, 0x84B4, 0x8553, 0x8559, + 0x856B, 0xFA1F, 0x85B0, 0xFA20, + 0xFA21, 0x8807, 0x88F5, 0x8A12, /* FBA0 */ + 0x8A37, 0x8A79, 0x8AA7, 0x8ABE, + 0x8ADF, 0xFA22, 0x8AF6, 0x8B53, + 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12, + 0x8D76, 0xFA23, 0x8ECF, 0xFA24, + 0xFA25, 0x9067, 0x90DE, 0xFA26, + 0x9115, 0x9127, 0x91DA, 0x91D7, + 0x91DE, 0x91ED, 0x91EE, 0x91E4, + 0x91E5, 0x9206, 0x9210, 0x920A, /* FBC0 */ + 0x923A, 0x9240, 0x923C, 0x924E, + 0x9259, 0x9251, 0x9239, 0x9267, + 0x92A7, 0x9277, 0x9278, 0x92E7, + 0x92D7, 0x92D9, 0x92D0, 0xFA27, + 0x92D5, 0x92E0, 0x92D3, 0x9325, + 0x9321, 0x92FB, 0xFA28, 0x931E, + 0x92FF, 0x931D, 0x9302, 0x9370, + 0x9357, 0x93A4, 0x93C6, 0x93DE, /* FBE0 */ + 0x93F8, 0x9431, 0x9445, 0x9448, + 0x9592, 0xF9DC, 0xFA29, 0x969D, + 0x96AF, 0x9733, 0x973B, 0x9743, + 0x974D, 0x974F, 0x9751, 0x9755, + 0x9857, 0x9865, 0xFA2A, 0xFA2B, + 0x9927, 0xFA2C, 0x999E, 0x9A4E, + 0x9AD9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9ADC, 0x9B75, 0x9B72, 0x9B8F, /* FC40 */ + 0x9BB1, 0x9BBB, 0x9C00, 0x9D70, + 0x9D6B, 0xFA2D, 0x9E19, 0x9ED1, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 unicode_to_cp932[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x8198), + MB2(0x814E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x818B), MB2(0x817D), 0x0000, 0x0000, + MB2(0x814C), 0x0000, MB2(0x81F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x817E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8180), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x839F), MB2(0x83A0), MB2(0x83A1), + MB2(0x83A2), MB2(0x83A3), MB2(0x83A4), MB2(0x83A5), + MB2(0x83A6), MB2(0x83A7), MB2(0x83A8), MB2(0x83A9), + MB2(0x83AA), MB2(0x83AB), MB2(0x83AC), MB2(0x83AD), + MB2(0x83AE), MB2(0x83AF), 0x0000, MB2(0x83B0), /* 03A0 */ + MB2(0x83B1), MB2(0x83B2), MB2(0x83B3), MB2(0x83B4), + MB2(0x83B5), MB2(0x83B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x83BF), MB2(0x83C0), MB2(0x83C1), + MB2(0x83C2), MB2(0x83C3), MB2(0x83C4), MB2(0x83C5), + MB2(0x83C6), MB2(0x83C7), MB2(0x83C8), MB2(0x83C9), + MB2(0x83CA), MB2(0x83CB), MB2(0x83CC), MB2(0x83CD), + MB2(0x83CE), MB2(0x83CF), 0x0000, MB2(0x83D0), /* 03C0 */ + MB2(0x83D1), MB2(0x83D2), MB2(0x83D3), MB2(0x83D4), + MB2(0x83D5), MB2(0x83D6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8446), 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8440), MB2(0x8441), MB2(0x8442), MB2(0x8443), + MB2(0x8444), MB2(0x8445), MB2(0x8447), MB2(0x8448), + MB2(0x8449), MB2(0x844A), MB2(0x844B), MB2(0x844C), + MB2(0x844D), MB2(0x844E), MB2(0x844F), MB2(0x8450), + MB2(0x8451), MB2(0x8452), MB2(0x8453), MB2(0x8454), /* 0420 */ + MB2(0x8455), MB2(0x8456), MB2(0x8457), MB2(0x8458), + MB2(0x8459), MB2(0x845A), MB2(0x845B), MB2(0x845C), + MB2(0x845D), MB2(0x845E), MB2(0x845F), MB2(0x8460), + MB2(0x8470), MB2(0x8471), MB2(0x8472), MB2(0x8473), + MB2(0x8474), MB2(0x8475), MB2(0x8477), MB2(0x8478), + MB2(0x8479), MB2(0x847A), MB2(0x847B), MB2(0x847C), + MB2(0x847D), MB2(0x847E), MB2(0x8480), MB2(0x8481), + MB2(0x8482), MB2(0x8483), MB2(0x8484), MB2(0x8485), /* 0440 */ + MB2(0x8486), MB2(0x8487), MB2(0x8488), MB2(0x8489), + MB2(0x848A), MB2(0x848B), MB2(0x848C), MB2(0x848D), + MB2(0x848E), MB2(0x848F), MB2(0x8490), MB2(0x8491), + 0x0000, MB2(0x8476), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x815D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x815C), 0x0000, 0x0000, + MB2(0x8165), MB2(0x8166), 0x0000, 0x0000, + MB2(0x8167), MB2(0x8168), 0x0000, 0x0000, + MB2(0x81F5), MB2(0x81F6), 0x0000, 0x0000, /* 2020 */ + 0x0000, MB2(0x8164), MB2(0x8163), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81F1), 0x0000, MB2(0x818C), MB2(0x818D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x81A6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x818E), /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8782), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8784), 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x81F0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8754), MB2(0x8755), MB2(0x8756), MB2(0x8757), /* 2160 */ + MB2(0x8758), MB2(0x8759), MB2(0x875A), MB2(0x875B), + MB2(0x875C), MB2(0x875D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFA40), MB2(0xFA41), MB2(0xFA42), MB2(0xFA43), + MB2(0xFA44), MB2(0xFA45), MB2(0xFA46), MB2(0xFA47), + MB2(0xFA48), MB2(0xFA49), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81A9), MB2(0x81AA), MB2(0x81A8), MB2(0x81AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81CB), 0x0000, + MB2(0x81CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81CD), 0x0000, MB2(0x81DD), MB2(0x81CE), /* 2200 */ + 0x0000, 0x0000, 0x0000, MB2(0x81DE), + MB2(0x81B8), 0x0000, 0x0000, MB2(0x81B9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8794), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81E3), 0x0000, + 0x0000, MB2(0x81E5), MB2(0x8187), MB2(0x8798), + MB2(0x81DA), 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, MB2(0x8161), 0x0000, MB2(0x81C8), + MB2(0x81C9), MB2(0x81BF), MB2(0x81BE), MB2(0x81E7), + MB2(0x81E8), 0x0000, MB2(0x8793), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8188), MB2(0x81E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x81E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8182), MB2(0x81DF), 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, MB2(0x8185), MB2(0x8186), + 0x0000, 0x0000, MB2(0x81E1), MB2(0x81E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81BC), MB2(0x81BD), /* 2280 */ + 0x0000, 0x0000, MB2(0x81BA), MB2(0x81BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, MB2(0x81DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8799), + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8740), MB2(0x8741), MB2(0x8742), MB2(0x8743), /* 2460 */ + MB2(0x8744), MB2(0x8745), MB2(0x8746), MB2(0x8747), + MB2(0x8748), MB2(0x8749), MB2(0x874A), MB2(0x874B), + MB2(0x874C), MB2(0x874D), MB2(0x874E), MB2(0x874F), + MB2(0x8750), MB2(0x8751), MB2(0x8752), MB2(0x8753), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x849F), MB2(0x84AA), MB2(0x84A0), MB2(0x84AB), /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x84A1), 0x0000, 0x0000, MB2(0x84AC), + MB2(0x84A2), 0x0000, 0x0000, MB2(0x84AD), + MB2(0x84A4), 0x0000, 0x0000, MB2(0x84AF), + MB2(0x84A3), 0x0000, 0x0000, MB2(0x84AE), + MB2(0x84A5), MB2(0x84BA), 0x0000, 0x0000, + MB2(0x84B5), 0x0000, 0x0000, MB2(0x84B0), /* 2520 */ + MB2(0x84A7), MB2(0x84BC), 0x0000, 0x0000, + MB2(0x84B7), 0x0000, 0x0000, MB2(0x84B2), + MB2(0x84A6), 0x0000, 0x0000, MB2(0x84B6), + MB2(0x84BB), 0x0000, 0x0000, MB2(0x84B1), + MB2(0x84A8), 0x0000, 0x0000, MB2(0x84B8), + MB2(0x84BD), 0x0000, 0x0000, MB2(0x84B3), + MB2(0x84A9), 0x0000, 0x0000, MB2(0x84B9), + 0x0000, 0x0000, MB2(0x84BE), 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x84B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81A1), MB2(0x81A0), 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81A3), MB2(0x81A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81A5), MB2(0x81A4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, MB2(0x819F), MB2(0x819E), + 0x0000, 0x0000, 0x0000, MB2(0x819B), + 0x0000, 0x0000, MB2(0x819D), MB2(0x819C), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x81FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, MB2(0x819A), MB2(0x8199), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x818A), 0x0000, MB2(0x8189), 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81F4), 0x0000, + 0x0000, MB2(0x81F3), 0x0000, MB2(0x81F2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8140), MB2(0x8141), MB2(0x8142), MB2(0x8156), /* 3000 */ + 0x0000, MB2(0x8158), MB2(0x8159), MB2(0x815A), + MB2(0x8171), MB2(0x8172), MB2(0x8173), MB2(0x8174), + MB2(0x8175), MB2(0x8176), MB2(0x8177), MB2(0x8178), + MB2(0x8179), MB2(0x817A), MB2(0x81A7), MB2(0x81AC), + MB2(0x816B), MB2(0x816C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8780), 0x0000, MB2(0x8781), + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x829F), MB2(0x82A0), MB2(0x82A1), /* 3040 */ + MB2(0x82A2), MB2(0x82A3), MB2(0x82A4), MB2(0x82A5), + MB2(0x82A6), MB2(0x82A7), MB2(0x82A8), MB2(0x82A9), + MB2(0x82AA), MB2(0x82AB), MB2(0x82AC), MB2(0x82AD), + MB2(0x82AE), MB2(0x82AF), MB2(0x82B0), MB2(0x82B1), + MB2(0x82B2), MB2(0x82B3), MB2(0x82B4), MB2(0x82B5), + MB2(0x82B6), MB2(0x82B7), MB2(0x82B8), MB2(0x82B9), + MB2(0x82BA), MB2(0x82BB), MB2(0x82BC), MB2(0x82BD), + MB2(0x82BE), MB2(0x82BF), MB2(0x82C0), MB2(0x82C1), /* 3060 */ + MB2(0x82C2), MB2(0x82C3), MB2(0x82C4), MB2(0x82C5), + MB2(0x82C6), MB2(0x82C7), MB2(0x82C8), MB2(0x82C9), + MB2(0x82CA), MB2(0x82CB), MB2(0x82CC), MB2(0x82CD), + MB2(0x82CE), MB2(0x82CF), MB2(0x82D0), MB2(0x82D1), + MB2(0x82D2), MB2(0x82D3), MB2(0x82D4), MB2(0x82D5), + MB2(0x82D6), MB2(0x82D7), MB2(0x82D8), MB2(0x82D9), + MB2(0x82DA), MB2(0x82DB), MB2(0x82DC), MB2(0x82DD), + MB2(0x82DE), MB2(0x82DF), MB2(0x82E0), MB2(0x82E1), /* 3080 */ + MB2(0x82E2), MB2(0x82E3), MB2(0x82E4), MB2(0x82E5), + MB2(0x82E6), MB2(0x82E7), MB2(0x82E8), MB2(0x82E9), + MB2(0x82EA), MB2(0x82EB), MB2(0x82EC), MB2(0x82ED), + MB2(0x82EE), MB2(0x82EF), MB2(0x82F0), MB2(0x82F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x814A), + MB2(0x814B), MB2(0x8154), MB2(0x8155), 0x0000, + 0x0000, MB2(0x8340), MB2(0x8341), MB2(0x8342), /* 30A0 */ + MB2(0x8343), MB2(0x8344), MB2(0x8345), MB2(0x8346), + MB2(0x8347), MB2(0x8348), MB2(0x8349), MB2(0x834A), + MB2(0x834B), MB2(0x834C), MB2(0x834D), MB2(0x834E), + MB2(0x834F), MB2(0x8350), MB2(0x8351), MB2(0x8352), + MB2(0x8353), MB2(0x8354), MB2(0x8355), MB2(0x8356), + MB2(0x8357), MB2(0x8358), MB2(0x8359), MB2(0x835A), + MB2(0x835B), MB2(0x835C), MB2(0x835D), MB2(0x835E), + MB2(0x835F), MB2(0x8360), MB2(0x8361), MB2(0x8362), /* 30C0 */ + MB2(0x8363), MB2(0x8364), MB2(0x8365), MB2(0x8366), + MB2(0x8367), MB2(0x8368), MB2(0x8369), MB2(0x836A), + MB2(0x836B), MB2(0x836C), MB2(0x836D), MB2(0x836E), + MB2(0x836F), MB2(0x8370), MB2(0x8371), MB2(0x8372), + MB2(0x8373), MB2(0x8374), MB2(0x8375), MB2(0x8376), + MB2(0x8377), MB2(0x8378), MB2(0x8379), MB2(0x837A), + MB2(0x837B), MB2(0x837C), MB2(0x837D), MB2(0x837E), + MB2(0x8380), MB2(0x8381), MB2(0x8382), MB2(0x8383), /* 30E0 */ + MB2(0x8384), MB2(0x8385), MB2(0x8386), MB2(0x8387), + MB2(0x8388), MB2(0x8389), MB2(0x838A), MB2(0x838B), + MB2(0x838C), MB2(0x838D), MB2(0x838E), MB2(0x838F), + MB2(0x8390), MB2(0x8391), MB2(0x8392), MB2(0x8393), + MB2(0x8394), MB2(0x8395), MB2(0x8396), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8145), + MB2(0x815B), MB2(0x8152), MB2(0x8153), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x878A), MB2(0x878B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x878C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + MB2(0x8785), MB2(0x8786), MB2(0x8787), MB2(0x8788), + MB2(0x8789), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8765), /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8769), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8760), 0x0000, 0x0000, 0x0000, + MB2(0x8763), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8761), MB2(0x876B), /* 3320 */ + 0x0000, 0x0000, MB2(0x876A), MB2(0x8764), + 0x0000, 0x0000, 0x0000, MB2(0x876C), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8766), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x876E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x875F), MB2(0x876D), 0x0000, + 0x0000, MB2(0x8762), 0x0000, 0x0000, + 0x0000, MB2(0x8767), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8768), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x877E), + MB2(0x878F), MB2(0x878E), MB2(0x878D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8772), MB2(0x8773), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x876F), MB2(0x8770), MB2(0x8771), 0x0000, + 0x0000, MB2(0x8775), 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + MB2(0x8774), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8783), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x88EA), MB2(0x929A), 0x0000, MB2(0x8EB5), /* 4E00 */ + 0x0000, 0x0000, 0x0000, MB2(0x969C), + MB2(0x8FE4), MB2(0x8E4F), MB2(0x8FE3), MB2(0x89BA), + 0x0000, MB2(0x9573), MB2(0x975E), 0x0000, + MB2(0x98A0), MB2(0x894E), 0x0000, 0x0000, + MB2(0x8A8E), MB2(0x98A1), MB2(0x90A2), MB2(0x99C0), + MB2(0x8B75), MB2(0x95B8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8FE5), 0x0000, + 0x0000, MB2(0x97BC), 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, MB2(0x95C0), 0x0000, + MB2(0xFA68), 0x0000, MB2(0x98A2), 0x0000, + 0x0000, MB2(0x9286), 0x0000, 0x0000, + 0x0000, MB2(0x98A3), MB2(0x8BF8), 0x0000, + 0x0000, 0x0000, MB2(0x98A4), 0x0000, + MB2(0x8ADB), MB2(0x924F), 0x0000, MB2(0x8EE5), + MB2(0x98A5), 0x0000, 0x0000, MB2(0x98A6), + 0x0000, 0x0000, MB2(0x98A7), MB2(0x9454), /* 4E40 */ + 0x0000, MB2(0x8B76), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9456), + 0x0000, MB2(0x93E1), MB2(0x8CC1), MB2(0x9652), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE568), MB2(0x98A8), MB2(0x8FE6), + MB2(0x98A9), MB2(0x89B3), 0x0000, 0x0000, + 0x0000, MB2(0x8BE3), MB2(0x8CEE), MB2(0x96E7), + 0x0000, 0x0000, MB2(0x9BA4), 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9790), 0x0000, MB2(0x93FB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AA3), 0x0000, + MB2(0x8B54), 0x0000, MB2(0x98AA), 0x0000, /* 4E80 */ + 0x0000, MB2(0x98AB), MB2(0x97B9), 0x0000, + MB2(0x975C), MB2(0x9188), MB2(0x98AD), MB2(0x8E96), + MB2(0x93F1), 0x0000, MB2(0x98B0), 0x0000, + 0x0000, MB2(0x895D), MB2(0x8CDD), 0x0000, + MB2(0x8CDC), MB2(0x88E4), 0x0000, 0x0000, + MB2(0x986A), MB2(0x9869), 0x0000, MB2(0x8DB1), + MB2(0x889F), 0x0000, MB2(0x98B1), MB2(0x98B2), + MB2(0x98B3), MB2(0x9653), MB2(0x98B4), 0x0000, /* 4EA0 */ + MB2(0x8CF0), MB2(0x88E5), MB2(0x9692), 0x0000, + MB2(0x8B9C), 0x0000, 0x0000, MB2(0x8B9D), + MB2(0x8B9E), MB2(0x92E0), MB2(0x97BA), 0x0000, + MB2(0x98B5), 0x0000, 0x0000, MB2(0x98B6), + 0x0000, 0x0000, MB2(0x98B7), 0x0000, + 0x0000, 0x0000, MB2(0x906C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F59), MB2(0x906D), MB2(0x98BC), 0x0000, /* 4EC0 */ + MB2(0x98BA), 0x0000, MB2(0x98BB), MB2(0x8B77), + 0x0000, 0x0000, MB2(0x8DA1), MB2(0x89EE), + 0x0000, MB2(0x98B9), MB2(0x98B8), MB2(0x95A7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E65), MB2(0x8E64), MB2(0x91BC), MB2(0x98BD), + MB2(0x9574), MB2(0x90E5), 0x0000, 0x0000, + 0x0000, MB2(0x8157), MB2(0x98BE), MB2(0x98C0), + 0x0000, MB2(0xFA69), 0x0000, MB2(0x91E3), /* 4EE0 */ + MB2(0x97DF), MB2(0x88C8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98BF), MB2(0x89BC), 0x0000, + MB2(0x8BC2), 0x0000, MB2(0x9287), 0x0000, + 0x0000, 0x0000, MB2(0x8C8F), MB2(0x98C1), + 0x0000, 0x0000, 0x0000, MB2(0x9443), + MB2(0xFA6A), 0x0000, 0x0000, 0x0000, + MB2(0xFA6B), MB2(0x8AE9), 0x0000, MB2(0xFA6C), /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98C2), MB2(0x88C9), 0x0000, + 0x0000, MB2(0x8CDE), MB2(0x8AEA), MB2(0x959A), + MB2(0x94B0), MB2(0x8B78), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89EF), 0x0000, + MB2(0x98E5), MB2(0x9360), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x948C), + MB2(0x98C4), 0x0000, 0x0000, 0x0000, + MB2(0x94BA), 0x0000, MB2(0x97E0), 0x0000, + MB2(0x904C), MB2(0xFA6D), MB2(0x8E66), 0x0000, + MB2(0x8E97), MB2(0x89BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92CF), /* 4F40 */ + 0x0000, 0x0000, MB2(0x9241), MB2(0x98C8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88CA), MB2(0x92E1), MB2(0x8F5A), + MB2(0x8DB2), MB2(0x9743), 0x0000, MB2(0x91CC), + 0x0000, MB2(0x89BD), MB2(0xFA6E), MB2(0x98C7), + 0x0000, MB2(0x975D), MB2(0x98C3), MB2(0x98C5), + MB2(0x8DEC), MB2(0x98C6), MB2(0x9B43), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x98D1), + MB2(0x98CF), 0x0000, 0x0000, MB2(0x89C0), + 0x0000, MB2(0x95B9), MB2(0x98C9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x98CD), + MB2(0x8CF1), 0x0000, 0x0000, MB2(0x8E67), + 0x0000, 0x0000, 0x0000, MB2(0x8AA4), /* 4F80 */ + 0x0000, 0x0000, MB2(0x98D2), 0x0000, + MB2(0x98CA), 0x0000, MB2(0xFA70), MB2(0x97E1), + 0x0000, MB2(0x8E98), 0x0000, MB2(0x98CB), + 0x0000, MB2(0x98D0), MB2(0xFA6F), 0x0000, + MB2(0xFA72), 0x0000, MB2(0x98D3), 0x0000, + MB2(0x98CC), 0x0000, MB2(0xFA71), MB2(0x8B9F), + 0x0000, MB2(0x88CB), 0x0000, 0x0000, + MB2(0x8BA0), MB2(0x89BF), 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9B44), + 0x0000, MB2(0x9699), MB2(0x958E), MB2(0x8CF2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x904E), MB2(0x97B5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95D6), + 0x0000, 0x0000, MB2(0x8C57), MB2(0x91A3), /* 4FC0 */ + MB2(0x89E2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFA61), MB2(0x8F72), 0x0000, + 0x0000, MB2(0xFA73), MB2(0x98D7), 0x0000, + MB2(0x98DC), MB2(0x98DA), 0x0000, 0x0000, + MB2(0x98D5), 0x0000, 0x0000, MB2(0x91AD), + MB2(0x98D8), 0x0000, MB2(0x98DB), MB2(0x98D9), + 0x0000, MB2(0x95DB), 0x0000, MB2(0x98D6), + 0x0000, MB2(0x904D), 0x0000, MB2(0x9693), /* 4FE0 */ + MB2(0x98DD), MB2(0x98DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F43), MB2(0x98EB), + 0x0000, 0x0000, 0x0000, MB2(0x946F), + 0x0000, MB2(0x9555), MB2(0x98E6), 0x0000, + MB2(0x95EE), 0x0000, MB2(0x89B4), 0x0000, + 0x0000, 0x0000, MB2(0x98EA), MB2(0xFA76), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, MB2(0x98E4), MB2(0x98ED), 0x0000, + 0x0000, MB2(0x9171), 0x0000, MB2(0x8CC2), + 0x0000, MB2(0x947B), 0x0000, MB2(0xE0C5), + 0x0000, MB2(0x98EC), MB2(0x937C), 0x0000, + MB2(0x98E1), 0x0000, MB2(0x8CF4), 0x0000, + 0x0000, MB2(0x8CF3), MB2(0x98DF), 0x0000, + 0x0000, 0x0000, MB2(0xFA77), MB2(0x8ED8), + 0x0000, MB2(0x98E7), MB2(0xFA75), MB2(0x95ED), /* 5020 */ + MB2(0x926C), MB2(0x98E3), MB2(0x8C91), 0x0000, + MB2(0x98E0), MB2(0x98E8), MB2(0x98E2), MB2(0x97CF), + MB2(0x98E9), MB2(0x9860), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BE4), 0x0000, + 0x0000, MB2(0x8C90), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFA74), 0x0000, MB2(0xFA7A), MB2(0x98EE), /* 5040 */ + 0x0000, 0x0000, MB2(0xFA78), MB2(0x98EF), + MB2(0x98F3), MB2(0x88CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95CE), + MB2(0x98F2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98F1), MB2(0x98F5), 0x0000, + 0x0000, 0x0000, MB2(0x98F4), 0x0000, + MB2(0x92E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, MB2(0x8C92), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x98F6), 0x0000, 0x0000, 0x0000, + MB2(0xFA79), 0x0000, MB2(0x8EC3), 0x0000, + MB2(0x91A4), MB2(0x92E3), MB2(0x8BF4), 0x0000, + MB2(0x98F7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8B55), 0x0000, 0x0000, + MB2(0x98F8), 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, MB2(0x98FA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9654), 0x0000, 0x0000, + 0x0000, MB2(0x8C86), 0x0000, 0x0000, + MB2(0xFA7B), 0x0000, 0x0000, 0x0000, + MB2(0x8E50), MB2(0x94F5), MB2(0x98F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8DC3), MB2(0x9762), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x98FC), MB2(0x9942), + MB2(0x98FB), MB2(0x8DC2), 0x0000, MB2(0x8F9D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C58), 0x0000, + 0x0000, 0x0000, MB2(0x9943), 0x0000, /* 50C0 */ + 0x0000, MB2(0x8BCD), 0x0000, 0x0000, + 0x0000, MB2(0x9940), MB2(0x9941), 0x0000, + 0x0000, MB2(0x93AD), 0x0000, MB2(0x919C), + 0x0000, MB2(0x8BA1), 0x0000, 0x0000, + 0x0000, MB2(0x966C), MB2(0x9944), 0x0000, + MB2(0xFA7D), 0x0000, MB2(0x97BB), 0x0000, + 0x0000, 0x0000, MB2(0x9945), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9948), /* 50E0 */ + 0x0000, MB2(0x9946), 0x0000, MB2(0x916D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9947), MB2(0x9949), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFA7C), MB2(0x994B), 0x0000, 0x0000, + 0x0000, MB2(0x994A), 0x0000, MB2(0x95C6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B56), MB2(0x994D), MB2(0x994E), 0x0000, /* 5100 */ + MB2(0x89AD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x994C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EF2), 0x0000, + MB2(0x9951), MB2(0x9950), MB2(0x994F), 0x0000, + MB2(0x98D4), 0x0000, MB2(0x9952), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F9E), + 0x0000, MB2(0x9953), 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9744), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96D7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9955), + 0x0000, 0x0000, MB2(0x9954), MB2(0x9957), + MB2(0x9956), 0x0000, 0x0000, MB2(0x9958), + MB2(0x9959), MB2(0x88F2), 0x0000, MB2(0x8CB3), /* 5140 */ + MB2(0x8C5A), MB2(0x8F5B), MB2(0x929B), MB2(0x8BA2), + MB2(0x90E6), MB2(0x8CF5), MB2(0xFA7E), MB2(0x8D8E), + MB2(0x995B), MB2(0x96C6), MB2(0x9365), 0x0000, + MB2(0x8E99), 0x0000, MB2(0x995A), 0x0000, + MB2(0x995C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x937D), 0x0000, + MB2(0x8A95), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x995D), 0x0000, /* 5160 */ + MB2(0xFA80), MB2(0x93FC), 0x0000, 0x0000, + MB2(0x9153), MB2(0x995F), MB2(0x9960), MB2(0x94AA), + MB2(0x8CF6), MB2(0x985A), MB2(0x9961), 0x0000, + 0x0000, MB2(0x8BA4), 0x0000, 0x0000, + 0x0000, MB2(0x95BA), MB2(0x91B4), MB2(0x8BEF), + MB2(0x9354), 0x0000, 0x0000, 0x0000, + MB2(0x8C93), 0x0000, 0x0000, 0x0000, + MB2(0x9962), 0x0000, MB2(0x9963), 0x0000, /* 5180 */ + 0x0000, MB2(0x93E0), MB2(0x897E), 0x0000, + 0x0000, MB2(0x9966), MB2(0x8DFB), 0x0000, + MB2(0x9965), MB2(0x8DC4), 0x0000, MB2(0x9967), + MB2(0xE3EC), MB2(0x9968), MB2(0x9660), MB2(0x9969), + 0x0000, MB2(0x996A), MB2(0x996B), MB2(0x8FE7), + 0x0000, MB2(0x8ECA), 0x0000, 0x0000, + 0x0000, MB2(0xFA81), 0x0000, 0x0000, + MB2(0x8AA5), 0x0000, MB2(0x996E), 0x0000, /* 51A0 */ + MB2(0x996C), MB2(0x96BB), MB2(0x996D), 0x0000, + MB2(0x9579), MB2(0x996F), MB2(0x9970), MB2(0x9971), + MB2(0x937E), 0x0000, 0x0000, 0x0000, + MB2(0x9975), MB2(0x9973), MB2(0x9974), MB2(0x9972), + MB2(0x8DE1), MB2(0x9976), MB2(0x96E8), MB2(0x97E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9977), MB2(0xFA82), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + MB2(0x90A6), MB2(0x9978), MB2(0x8F79), 0x0000, + 0x0000, MB2(0x9979), 0x0000, MB2(0x929C), + MB2(0x97BD), MB2(0x9380), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99C3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x997A), + MB2(0xEAA3), MB2(0x8BC3), 0x0000, 0x0000, + MB2(0x997B), MB2(0x967D), 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, MB2(0x8F88), MB2(0x91FA), + 0x0000, MB2(0x997D), MB2(0x93E2), 0x0000, + MB2(0xFA83), MB2(0x997E), 0x0000, 0x0000, + MB2(0x9980), MB2(0x8A4D), 0x0000, 0x0000, + 0x0000, MB2(0x9981), MB2(0x8BA5), 0x0000, + MB2(0x93CA), MB2(0x899A), MB2(0x8F6F), 0x0000, + 0x0000, MB2(0x949F), MB2(0x9982), 0x0000, + MB2(0x9381), 0x0000, 0x0000, MB2(0x906E), /* 5200 */ + MB2(0x9983), 0x0000, MB2(0x95AA), MB2(0x90D8), + MB2(0x8AA0), 0x0000, MB2(0x8AA7), MB2(0x9984), + 0x0000, 0x0000, MB2(0x9986), 0x0000, + 0x0000, MB2(0x8C59), 0x0000, 0x0000, + MB2(0x9985), MB2(0xFA84), 0x0000, MB2(0x97F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8F89), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + MB2(0x94BB), MB2(0x95CA), 0x0000, MB2(0x9987), + 0x0000, MB2(0x9798), MB2(0x9988), 0x0000, + 0x0000, 0x0000, MB2(0x9989), 0x0000, + MB2(0x939E), 0x0000, 0x0000, MB2(0x998A), + 0x0000, 0x0000, MB2(0x90A7), MB2(0x8DFC), + MB2(0x8C94), MB2(0x998B), MB2(0x8E68), MB2(0x8D8F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92E4), /* 5240 */ + MB2(0x998D), 0x0000, 0x0000, MB2(0x91A5), + 0x0000, 0x0000, MB2(0x8DED), MB2(0x998E), + MB2(0x998F), MB2(0x914F), 0x0000, MB2(0x998C), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9991), 0x0000, MB2(0x9655), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D84), + 0x0000, 0x0000, MB2(0x9990), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C95), /* 5260 */ + MB2(0x8DDC), MB2(0x948D), 0x0000, 0x0000, + 0x0000, MB2(0x9994), MB2(0x9992), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x959B), + MB2(0x8FE8), MB2(0x999B), MB2(0x8A84), MB2(0x9995), + MB2(0x9993), MB2(0x916E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9997), 0x0000, MB2(0x9996), + 0x0000, 0x0000, 0x0000, MB2(0x8A63), /* 5280 */ + 0x0000, 0x0000, 0x0000, MB2(0x8C80), + MB2(0x999C), MB2(0x97AB), 0x0000, 0x0000, + 0x0000, MB2(0x9998), 0x0000, 0x0000, + 0x0000, MB2(0x999D), MB2(0x999A), 0x0000, + MB2(0x9999), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97CD), + MB2(0xFA85), 0x0000, 0x0000, MB2(0x8CF7), + MB2(0x89C1), 0x0000, 0x0000, MB2(0x97F2), /* 52A0 */ + 0x0000, 0x0000, MB2(0xFA86), 0x0000, + 0x0000, MB2(0x8F95), MB2(0x9377), MB2(0x8D85), + MB2(0x99A0), MB2(0x99A1), 0x0000, MB2(0xFB77), + 0x0000, MB2(0x97E3), 0x0000, 0x0000, + MB2(0x984A), MB2(0x99A3), 0x0000, 0x0000, + 0x0000, MB2(0x8CF8), 0x0000, 0x0000, + MB2(0x99A2), 0x0000, MB2(0x8A4E), 0x0000, + MB2(0xFA87), MB2(0x99A4), 0x0000, MB2(0x9675), /* 52C0 */ + 0x0000, MB2(0x92BA), 0x0000, MB2(0x9745), + 0x0000, MB2(0x95D7), 0x0000, 0x0000, + 0x0000, MB2(0x99A5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8D3), 0x0000, + 0x0000, MB2(0x93AE), 0x0000, MB2(0x99A6), + MB2(0x8AA8), MB2(0x96B1), 0x0000, MB2(0xFA88), + 0x0000, MB2(0x8F9F), MB2(0x99A7), MB2(0x95E5), + MB2(0x99AB), 0x0000, MB2(0x90A8), MB2(0x99A8), /* 52E0 */ + MB2(0x8BCE), 0x0000, MB2(0x99A9), MB2(0x8AA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C4D), MB2(0x99AC), + 0x0000, MB2(0x99AD), 0x0000, 0x0000, + MB2(0x99AE), MB2(0x99AF), MB2(0x8ED9), 0x0000, + 0x0000, 0x0000, MB2(0x8CF9), MB2(0x96DC), + MB2(0xFA89), MB2(0x96E6), MB2(0x93F5), 0x0000, /* 5300 */ + 0x0000, MB2(0x95EF), MB2(0x99B0), MB2(0xFA8A), + MB2(0x99B1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x99B3), 0x0000, MB2(0x99B5), + MB2(0x99B4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x99B6), MB2(0x89BB), MB2(0x966B), + 0x0000, MB2(0x8DFA), MB2(0x99B7), 0x0000, + 0x0000, MB2(0x9178), 0x0000, 0x0000, + MB2(0x8FA0), MB2(0x8BA7), 0x0000, MB2(0x99B8), /* 5320 */ + MB2(0xFA8B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94D9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x99B9), + 0x0000, MB2(0x99BA), 0x0000, MB2(0x99BB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x99BC), MB2(0x9543), MB2(0x8BE6), MB2(0x88E3), + 0x0000, 0x0000, 0x0000, MB2(0x93BD), + MB2(0x99BD), MB2(0x8F5C), 0x0000, MB2(0x90E7), /* 5340 */ + 0x0000, MB2(0x99BF), MB2(0x99BE), MB2(0x8FA1), + MB2(0x8CDF), MB2(0x99C1), MB2(0x94BC), 0x0000, + 0x0000, MB2(0x99C2), 0x0000, 0x0000, + 0x0000, MB2(0x94DA), MB2(0x91B2), MB2(0x91EC), + MB2(0x8BA6), 0x0000, 0x0000, MB2(0x93EC), + MB2(0x9250), 0x0000, MB2(0x948E), 0x0000, + MB2(0x966D), 0x0000, MB2(0x99C4), 0x0000, + MB2(0x90E8), 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, MB2(0x8C54), 0x0000, + 0x0000, MB2(0x99C5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99C6), MB2(0x894B), + MB2(0x88F3), MB2(0x8AEB), MB2(0xFA8C), MB2(0x91A6), + MB2(0x8B70), MB2(0x9791), 0x0000, MB2(0x99C9), + MB2(0x89B5), 0x0000, 0x0000, MB2(0x99C8), + 0x0000, 0x0000, 0x0000, MB2(0x8BA8), + 0x0000, 0x0000, MB2(0x99CA), 0x0000, /* 5380 */ + MB2(0x96EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFA8D), + 0x0000, 0x0000, MB2(0x99CB), 0x0000, + MB2(0x97D0), 0x0000, MB2(0x8CFA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CB4), + MB2(0x99CC), 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, MB2(0x99CE), MB2(0x99CD), 0x0000, + MB2(0x907E), MB2(0x8958), 0x0000, 0x0000, + 0x0000, MB2(0x897D), MB2(0x99CF), 0x0000, + MB2(0x99D0), 0x0000, MB2(0xFA8E), MB2(0x8CB5), + 0x0000, 0x0000, MB2(0x99D1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B8E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8E51), MB2(0x99D2), /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9694), MB2(0x8DB3), MB2(0x8B79), MB2(0x9746), + MB2(0x916F), MB2(0x94BD), MB2(0x8EFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F66), 0x0000, MB2(0x8EE6), MB2(0x8EF3), + 0x0000, MB2(0x8F96), 0x0000, MB2(0x94BE), + 0x0000, MB2(0xFA8F), 0x0000, MB2(0x99D5), + 0x0000, MB2(0x8962), MB2(0x9170), MB2(0x8CFB), /* 53E0 */ + MB2(0x8CC3), MB2(0x8BE5), 0x0000, 0x0000, + MB2(0x99D9), MB2(0x9240), MB2(0x91FC), MB2(0x8BA9), + MB2(0x8FA2), MB2(0x99DA), MB2(0x99D8), MB2(0x89C2), + MB2(0x91E4), MB2(0x8EB6), MB2(0x8E6A), MB2(0x8945), + 0x0000, 0x0000, MB2(0x8A90), MB2(0x8D86), + MB2(0x8E69), 0x0000, MB2(0x99DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x99DC), 0x0000, MB2(0x8B68), /* 5400 */ + MB2(0x8A65), 0x0000, 0x0000, 0x0000, + MB2(0x8D87), MB2(0x8B67), MB2(0x92DD), MB2(0x8944), + MB2(0x93AF), MB2(0x96BC), MB2(0x8D40), MB2(0x9799), + MB2(0x9366), MB2(0x8CFC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C4E), + 0x0000, MB2(0x99E5), 0x0000, MB2(0x8BE1), + MB2(0x9669), 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, MB2(0x94DB), 0x0000, + 0x0000, MB2(0x99E4), 0x0000, MB2(0x8ADC), + MB2(0x99DF), MB2(0x99E0), MB2(0x99E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99E3), 0x0000, + MB2(0x8B7A), MB2(0x9081), 0x0000, MB2(0x95AB), + MB2(0x99E1), MB2(0x99DD), MB2(0x8CE1), 0x0000, + MB2(0x99DE), 0x0000, MB2(0x9843), 0x0000, /* 5440 */ + 0x0000, 0x0000, MB2(0x95F0), 0x0000, + MB2(0x92E6), MB2(0x8CE0), MB2(0x8D90), 0x0000, + 0x0000, 0x0000, MB2(0x99E6), 0x0000, + 0x0000, MB2(0x93DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x99EA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EFC), 0x0000, MB2(0x8EF4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x99ED), MB2(0x99EB), 0x0000, MB2(0x96A1), + 0x0000, MB2(0x99E8), MB2(0x99F1), MB2(0x99EC), + 0x0000, 0x0000, 0x0000, MB2(0x99EF), + MB2(0x8CC4), MB2(0x96BD), 0x0000, 0x0000, + MB2(0x99F0), 0x0000, 0x0000, 0x0000, /* 5480 */ + MB2(0x99F2), 0x0000, MB2(0x99F4), 0x0000, + 0x0000, 0x0000, MB2(0xFA92), MB2(0x8DEE), + MB2(0x9861), 0x0000, MB2(0x99E9), MB2(0x99E7), + MB2(0x99F3), 0x0000, MB2(0x99EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFA91), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99F6), 0x0000, /* 54A0 */ + MB2(0x9A42), MB2(0x99F8), 0x0000, 0x0000, + MB2(0x99FC), MB2(0xFA93), 0x0000, MB2(0x9A40), + MB2(0x99F9), 0x0000, 0x0000, MB2(0x9A5D), + 0x0000, 0x0000, MB2(0x8DE7), MB2(0x8A50), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x99F7), 0x0000, 0x0000, 0x0000, + MB2(0x9A44), MB2(0x88F4), MB2(0x9A43), 0x0000, + MB2(0x88A3), MB2(0x9569), MB2(0x9A41), 0x0000, /* 54C0 */ + MB2(0x99FA), 0x0000, 0x0000, MB2(0x99F5), + MB2(0x99FB), MB2(0x8DC6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A45), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88F5), MB2(0x9A4E), 0x0000, /* 54E0 */ + 0x0000, MB2(0x9A46), MB2(0x9A47), 0x0000, + MB2(0x8FA3), MB2(0x9689), 0x0000, 0x0000, + 0x0000, MB2(0x9A4C), MB2(0x9A4B), 0x0000, + 0x0000, 0x0000, MB2(0x934E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A4D), 0x0000, + 0x0000, MB2(0x9A4A), 0x0000, MB2(0xFA94), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + MB2(0x8953), 0x0000, MB2(0x8DB4), MB2(0x904F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A48), + MB2(0x9382), 0x0000, 0x0000, 0x0000, + MB2(0x9A49), 0x0000, MB2(0x88A0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A53), MB2(0x9742), + 0x0000, MB2(0x8FA5), 0x0000, MB2(0x9A59), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A58), MB2(0x9A4F), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91C1), 0x0000, + MB2(0x9A50), 0x0000, 0x0000, 0x0000, /* 5540 */ + MB2(0x91ED), MB2(0x9A55), MB2(0x8FA4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A52), 0x0000, 0x0000, MB2(0x96E2), + 0x0000, 0x0000, 0x0000, MB2(0x8C5B), + 0x0000, 0x0000, MB2(0x9A56), MB2(0x9A57), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A54), MB2(0x9A5A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A51), /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A60), + MB2(0x9A65), 0x0000, MB2(0x9A61), 0x0000, + MB2(0x9A5C), 0x0000, 0x0000, MB2(0x9A66), /* 5580 */ + MB2(0x9150), 0x0000, MB2(0xFA95), MB2(0x9A68), + 0x0000, MB2(0x8D41), MB2(0x9A5E), MB2(0x929D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A62), MB2(0x9A5B), MB2(0x8AAB), 0x0000, + MB2(0x8AEC), MB2(0x8A85), MB2(0x9A63), MB2(0x9A5F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x8C96), + MB2(0x9A69), MB2(0x9A67), MB2(0x9172), MB2(0x8B69), + MB2(0x8BAA), 0x0000, MB2(0x9A64), 0x0000, + MB2(0x8BF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8963), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + MB2(0x9A6D), MB2(0x9A6B), 0x0000, MB2(0x9AA5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A70), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A6A), 0x0000, + MB2(0x9A6E), 0x0000, 0x0000, MB2(0x9A6C), + 0x0000, 0x0000, 0x0000, MB2(0x8E6B), /* 55E0 */ + MB2(0x9A6F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A72), + 0x0000, MB2(0x9A77), 0x0000, 0x0000, + 0x0000, MB2(0x9A75), MB2(0x9A74), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, MB2(0x9251), 0x0000, + 0x0000, MB2(0x89C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A71), 0x0000, MB2(0x9A73), MB2(0x8FA6), + MB2(0x8952), 0x0000, 0x0000, MB2(0x9A76), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x89DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A82), + 0x0000, MB2(0x8FFA), MB2(0x9A7D), 0x0000, + MB2(0x9A7B), 0x0000, MB2(0x9A7C), 0x0000, + MB2(0x9A7E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x895C), 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9158), 0x0000, MB2(0x9A78), 0x0000, + MB2(0x9A79), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8A9A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + MB2(0x9A81), 0x0000, 0x0000, 0x0000, + MB2(0x8AED), 0x0000, MB2(0x9A84), MB2(0x9A80), + MB2(0x9A83), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x95AC), 0x0000, 0x0000, 0x0000, + MB2(0x93D3), 0x0000, MB2(0x94B6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A86), 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, MB2(0x9A85), MB2(0x8A64), + 0x0000, 0x0000, MB2(0x9A87), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A8A), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A89), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A88), 0x0000, MB2(0x9458), 0x0000, /* 56A0 */ + 0x0000, MB2(0x9A8B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A8C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A8E), 0x0000, MB2(0x9A8D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A90), 0x0000, 0x0000, 0x0000, + MB2(0x9A93), MB2(0x9A91), MB2(0x9A8F), MB2(0x9A92), /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A94), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A95), 0x0000, + 0x0000, MB2(0x9A96), 0x0000, MB2(0x9A97), + 0x0000, 0x0000, 0x0000, MB2(0x9A98), + MB2(0x9964), 0x0000, MB2(0x8EFA), MB2(0x8E6C), + 0x0000, 0x0000, MB2(0x89F1), 0x0000, + MB2(0x88F6), 0x0000, 0x0000, MB2(0x9263), /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A99), 0x0000, + MB2(0x8DA2), 0x0000, MB2(0x88CD), MB2(0x907D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9A9A), MB2(0x8CC5), 0x0000, + 0x0000, MB2(0x8D91), 0x0000, MB2(0x9A9C), + MB2(0x9A9B), 0x0000, 0x0000, MB2(0x95DE), /* 5700 */ + MB2(0x9A9D), 0x0000, 0x0000, 0x0000, + MB2(0x9A9F), MB2(0x9A9E), 0x0000, MB2(0x9AA0), + 0x0000, MB2(0x9AA1), 0x0000, MB2(0x8C97), + 0x0000, 0x0000, MB2(0x8980), MB2(0x9AA2), + 0x0000, 0x0000, MB2(0x9AA4), 0x0000, + MB2(0x9AA3), 0x0000, 0x0000, 0x0000, + MB2(0x9AA6), 0x0000, 0x0000, MB2(0x9379), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, MB2(0x9AA7), MB2(0x88B3), + MB2(0x8DDD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C5C), 0x0000, 0x0000, + MB2(0x926E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9AA8), + MB2(0x9AA9), 0x0000, 0x0000, MB2(0x9AAB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AAC), 0x0000, MB2(0x8DE2), 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, MB2(0x8BCF), + 0x0000, 0x0000, MB2(0x9656), 0x0000, + 0x0000, 0x0000, MB2(0x9AAA), MB2(0x9AAD), + MB2(0x8DBF), MB2(0x8D42), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFA96), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9AB1), 0x0000, 0x0000, /* 5760 */ + MB2(0x8DA3), MB2(0xFA97), MB2(0x9252), 0x0000, + 0x0000, MB2(0x9AAE), MB2(0x92D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9AB2), + 0x0000, 0x0000, MB2(0x9082), 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AB0), MB2(0x9AB3), 0x0000, MB2(0x8C5E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9AB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AB5), 0x0000, MB2(0x8D43), MB2(0x8A5F), /* 57A0 */ + MB2(0x9AB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AB8), 0x0000, + MB2(0xFA98), 0x0000, 0x0000, 0x0000, + MB2(0x9AB9), 0x0000, 0x0000, MB2(0x9AB6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AAF), 0x0000, 0x0000, MB2(0x9ABA), /* 57C0 */ + 0x0000, 0x0000, MB2(0x9ABB), MB2(0xFA9A), + MB2(0xFA99), 0x0000, 0x0000, MB2(0x9684), + 0x0000, 0x0000, MB2(0x8FE9), 0x0000, + 0x0000, 0x0000, MB2(0x9ABD), MB2(0x9ABE), + MB2(0x9ABC), 0x0000, MB2(0x9AC0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9457), 0x0000, 0x0000, MB2(0x88E6), + MB2(0x9575), 0x0000, 0x0000, MB2(0x9AC1), /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FFB), 0x0000, 0x0000, MB2(0x8EB7), + 0x0000, MB2(0x947C), MB2(0x8AEE), 0x0000, + MB2(0x8DE9), 0x0000, 0x0000, 0x0000, + MB2(0x9678), 0x0000, MB2(0x93B0), 0x0000, /* 5800 */ + 0x0000, MB2(0x8C98), MB2(0x91CD), 0x0000, + 0x0000, 0x0000, MB2(0x9ABF), MB2(0x9AC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91C2), 0x0000, 0x0000, + 0x0000, MB2(0x9AC3), 0x0000, 0x0000, + 0x0000, MB2(0x9AC4), 0x0000, 0x0000, + 0x0000, MB2(0x9AC6), 0x0000, 0x0000, /* 5820 */ + MB2(0x92E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AAC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA9F), + MB2(0x8981), MB2(0x95F1), 0x0000, 0x0000, + MB2(0x8FEA), MB2(0x9367), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DE4), 0x0000, + 0x0000, MB2(0x9ACC), 0x0000, 0x0000, + MB2(0x95BB), MB2(0x97DB), 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89F2), MB2(0x9AC8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9159), MB2(0x9ACB), 0x0000, + MB2(0x9383), 0x0000, 0x0000, MB2(0x9368), + MB2(0x9384), MB2(0x94B7), MB2(0x92CB), 0x0000, + 0x0000, 0x0000, MB2(0x8DC7), 0x0000, + 0x0000, 0x0000, MB2(0x9AC7), 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8996), 0x0000, MB2(0x9355), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AC9), 0x0000, MB2(0x9AC5), 0x0000, + 0x0000, MB2(0x906F), 0x0000, 0x0000, + 0x0000, MB2(0x9ACD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F6D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8BAB), /* 5880 */ + 0x0000, MB2(0x9ACE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95E6), + 0x0000, 0x0000, 0x0000, MB2(0x919D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x92C4), 0x0000, MB2(0xFA9D), MB2(0x9AD0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x966E), 0x0000, 0x0000, MB2(0x9AD1), + 0x0000, 0x0000, MB2(0x9AD6), 0x0000, + 0x0000, 0x0000, MB2(0xFA9E), MB2(0x95AD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AD5), MB2(0x9ACF), MB2(0x9AD2), MB2(0x9AD4), + 0x0000, 0x0000, MB2(0x8DA4), 0x0000, + 0x0000, MB2(0x95C7), 0x0000, 0x0000, /* 58C0 */ + 0x0000, MB2(0x9AD7), 0x0000, MB2(0x9264), + 0x0000, 0x0000, MB2(0x89F3), 0x0000, + MB2(0x8FEB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9AD9), 0x0000, MB2(0x9AD8), + 0x0000, MB2(0x8D88), 0x0000, MB2(0x9ADA), + MB2(0x9ADC), MB2(0x9ADB), 0x0000, 0x0000, + MB2(0x9ADE), 0x0000, MB2(0x9AD3), MB2(0x9AE0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + MB2(0x9ADF), MB2(0x9ADD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E6D), + MB2(0x9070), 0x0000, MB2(0x9173), MB2(0x9AE1), + MB2(0x90BA), MB2(0x88EB), MB2(0x9484), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92D9), + 0x0000, MB2(0x9AE3), MB2(0x9AE2), MB2(0x9AE4), + MB2(0x9AE5), MB2(0x9AE6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AE7), 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95CF), MB2(0x9AE8), MB2(0xFA9F), + 0x0000, 0x0000, 0x0000, MB2(0x89C4), + MB2(0x9AE9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x975B), MB2(0x8A4F), 0x0000, + MB2(0x99C7), MB2(0x8F67), MB2(0x91BD), MB2(0x9AEA), + MB2(0x96E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96B2), 0x0000, /* 5920 */ + 0x0000, MB2(0x9AEC), 0x0000, MB2(0x91E5), + 0x0000, MB2(0x9356), MB2(0x91BE), MB2(0x9576), + MB2(0x9AED), MB2(0x9AEE), MB2(0x899B), 0x0000, + 0x0000, MB2(0x8EB8), MB2(0x9AEF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88CE), + MB2(0x9AF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AF1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + MB2(0x8982), 0x0000, 0x0000, MB2(0x8AEF), + MB2(0x93DE), MB2(0x95F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AF5), MB2(0x9174), + MB2(0x9AF4), MB2(0x8C5F), 0x0000, MB2(0xFAA0), + MB2(0x967A), MB2(0x9AF3), 0x0000, MB2(0x9385), + MB2(0x9AF7), 0x0000, MB2(0x9AF6), MB2(0xFAA1), + 0x0000, MB2(0xFAA2), 0x0000, 0x0000, + MB2(0x9AF9), 0x0000, MB2(0x9AF8), MB2(0xFAA3), /* 5960 */ + 0x0000, MB2(0x899C), 0x0000, MB2(0x9AFA), + MB2(0x8FA7), MB2(0x9AFC), MB2(0x9244), 0x0000, + MB2(0x9AFB), 0x0000, MB2(0x95B1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F97), + MB2(0x937A), 0x0000, 0x0000, 0x0000, + MB2(0x9B40), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8D44), 0x0000, 0x0000, + 0x0000, MB2(0x9B41), MB2(0x9440), MB2(0x94DC), /* 5980 */ + MB2(0x96CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9444), 0x0000, + 0x0000, MB2(0x9B4A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B57), + 0x0000, 0x0000, MB2(0x9764), 0x0000, + 0x0000, MB2(0x96AD), 0x0000, MB2(0x9BAA), + 0x0000, MB2(0x9B42), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9B45), /* 59A0 */ + MB2(0xFAA4), MB2(0x91C3), 0x0000, 0x0000, + MB2(0x9657), 0x0000, 0x0000, 0x0000, + MB2(0x9369), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B46), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9685), MB2(0xFAA5), MB2(0x8DC8), + 0x0000, 0x0000, MB2(0x8FA8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, MB2(0x9B47), 0x0000, + 0x0000, MB2(0x8E6F), 0x0000, MB2(0x8E6E), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x88B7), MB2(0x8CC6), 0x0000, MB2(0x90A9), + MB2(0x88CF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B4B), MB2(0x9B4C), 0x0000, + MB2(0x9B49), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, MB2(0x8957), MB2(0x8AAD), 0x0000, + MB2(0x9B48), 0x0000, MB2(0x96C3), MB2(0x9550), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x88A6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88F7), + 0x0000, 0x0000, 0x0000, MB2(0x8E70), + 0x0000, MB2(0x88D0), 0x0000, MB2(0x88A1), /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B51), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B4F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x96BA), 0x0000, MB2(0x9B52), 0x0000, + MB2(0x9B50), 0x0000, 0x0000, MB2(0x9B4E), + MB2(0x9050), 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, MB2(0x9B4D), 0x0000, 0x0000, + 0x0000, MB2(0x95D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CE2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B56), MB2(0x9B57), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FA9), 0x0000, 0x0000, 0x0000, + MB2(0x9B53), MB2(0x984B), 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, MB2(0x946B), 0x0000, + 0x0000, MB2(0x9B55), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B58), 0x0000, /* 5A60 */ + 0x0000, 0x0000, MB2(0x9577), 0x0000, + 0x0000, 0x0000, MB2(0x9B59), 0x0000, + MB2(0x9B54), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x96B9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x947D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B5A), MB2(0x9551), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B5B), MB2(0x9B5F), MB2(0x9B5C), 0x0000, + 0x0000, MB2(0x89C5), MB2(0x9B5E), 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EB9), 0x0000, MB2(0x9B5D), + MB2(0x8C99), 0x0000, 0x0000, 0x0000, + MB2(0x9B6B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B64), MB2(0x9B61), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9284), 0x0000, MB2(0x9B60), /* 5AE0 */ + 0x0000, 0x0000, MB2(0x9B62), 0x0000, + 0x0000, MB2(0x9B63), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B65), MB2(0x9B66), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8AF0), 0x0000, MB2(0x9B68), + MB2(0x9B67), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B69), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8FEC), 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B6C), 0x0000, + MB2(0x92DA), 0x0000, 0x0000, 0x0000, + MB2(0x8964), 0x0000, MB2(0x9B6A), 0x0000, + 0x0000, 0x0000, MB2(0x9B6D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B6E), 0x0000, + MB2(0x9B71), 0x0000, 0x0000, MB2(0x9B6F), /* 5B40 */ + 0x0000, MB2(0x9B70), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E71), MB2(0x9B72), 0x0000, 0x0000, + MB2(0x8D45), MB2(0x9B73), MB2(0xFAA6), MB2(0x8E9A), + MB2(0x91B6), 0x0000, MB2(0x9B74), MB2(0x9B75), + MB2(0x8E79), MB2(0x8D46), 0x0000, MB2(0x96D0), + 0x0000, 0x0000, 0x0000, MB2(0x8B47), /* 5B60 */ + MB2(0x8CC7), MB2(0x9B76), MB2(0x8A77), 0x0000, + 0x0000, MB2(0x9B77), 0x0000, MB2(0x91B7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B78), MB2(0x9BA1), 0x0000, MB2(0x9B79), + 0x0000, MB2(0x9B7A), 0x0000, 0x0000, + MB2(0x9B7B), 0x0000, MB2(0x9B7D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B7E), 0x0000, 0x0000, MB2(0x9B80), /* 5B80 */ + 0x0000, MB2(0x91EE), 0x0000, MB2(0x8946), + MB2(0x8EE7), MB2(0x88C0), 0x0000, MB2(0x9176), + MB2(0x8AAE), MB2(0x8EB3), 0x0000, MB2(0x8D47), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9386), 0x0000, MB2(0x8F40), + MB2(0x8AAF), MB2(0x9288), MB2(0x92E8), MB2(0x88B6), + MB2(0x8B58), MB2(0x95F3), 0x0000, MB2(0x8EC0), + 0x0000, 0x0000, MB2(0x8B71), MB2(0x90E9), /* 5BA0 */ + MB2(0x8EBA), MB2(0x9747), MB2(0x9B81), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B7B), 0x0000, + MB2(0x8DC9), 0x0000, 0x0000, MB2(0x8A51), + MB2(0x8983), MB2(0x8FAA), MB2(0x89C6), 0x0000, + MB2(0x9B82), MB2(0x9765), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F68), + MB2(0xFAA7), 0x0000, MB2(0x8EE2), MB2(0x9B83), /* 5BC0 */ + MB2(0x8AF1), MB2(0x93D0), MB2(0x96A7), MB2(0x9B84), + 0x0000, MB2(0x9B85), 0x0000, 0x0000, + MB2(0x9578), 0x0000, 0x0000, 0x0000, + MB2(0x9B87), 0x0000, MB2(0x8AA6), MB2(0x8BF5), + MB2(0x9B86), 0x0000, 0x0000, 0x0000, + MB2(0xFAA9), 0x0000, 0x0000, MB2(0x8AB0), + 0x0000, MB2(0x9051), MB2(0x9B8B), MB2(0x8E40), + 0x0000, MB2(0x89C7), MB2(0x9B8A), 0x0000, /* 5BE0 */ + MB2(0x9B88), MB2(0x9B8C), MB2(0x9B89), MB2(0x944A), + MB2(0x9ECB), MB2(0x9052), 0x0000, MB2(0x9B8D), + MB2(0xFAAA), 0x0000, MB2(0x97BE), 0x0000, + MB2(0x9B8E), 0x0000, 0x0000, MB2(0x9B90), + 0x0000, MB2(0x929E), MB2(0x9B8F), 0x0000, + MB2(0x90A1), 0x0000, MB2(0x8E9B), 0x0000, + 0x0000, 0x0000, MB2(0x91CE), MB2(0x8EF5), + 0x0000, MB2(0x9595), MB2(0x90EA), 0x0000, /* 5C00 */ + MB2(0x8ECB), MB2(0x9B91), MB2(0x8FAB), MB2(0x9B92), + MB2(0x9B93), MB2(0x88D1), MB2(0x91B8), MB2(0x9071), + 0x0000, MB2(0x9B94), MB2(0x93B1), MB2(0x8FAC), + 0x0000, MB2(0x8FAD), 0x0000, MB2(0x9B95), + 0x0000, 0x0000, MB2(0x90EB), 0x0000, + 0x0000, 0x0000, MB2(0x8FAE), 0x0000, + 0x0000, 0x0000, MB2(0xFAAB), 0x0000, + MB2(0x9B96), 0x0000, MB2(0x9B97), 0x0000, /* 5C20 */ + MB2(0x96DE), 0x0000, 0x0000, 0x0000, + MB2(0x9B98), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8BC4), 0x0000, 0x0000, + 0x0000, MB2(0x8F41), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B99), MB2(0x9B9A), MB2(0x8EDA), MB2(0x904B), + MB2(0x93F2), MB2(0x9073), MB2(0x94F6), MB2(0x9441), + MB2(0x8BC7), MB2(0x9B9B), 0x0000, 0x0000, /* 5C40 */ + 0x0000, MB2(0x8B8F), MB2(0x9B9C), 0x0000, + MB2(0x8BFC), 0x0000, MB2(0x93CD), MB2(0x89AE), + 0x0000, MB2(0x8E72), MB2(0x9B9D), MB2(0x9BA0), + MB2(0x9B9F), MB2(0x8BFB), 0x0000, MB2(0x9B9E), + 0x0000, MB2(0x9357), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91AE), 0x0000, + MB2(0x936A), MB2(0x8EC6), 0x0000, 0x0000, /* 5C60 */ + MB2(0x9177), MB2(0x979A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BA2), 0x0000, MB2(0x9BA3), MB2(0x93D4), + 0x0000, MB2(0x8E52), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BA5), 0x0000, + 0x0000, MB2(0x9BA6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BA7), 0x0000, 0x0000, 0x0000, + MB2(0x8AF2), MB2(0x9BA8), 0x0000, 0x0000, + MB2(0x9BA9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x89AA), 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, MB2(0xFAAC), 0x0000, + MB2(0x915A), MB2(0x8AE2), 0x0000, MB2(0x9BAB), + MB2(0x96A6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91D0), 0x0000, MB2(0x8A78), + 0x0000, 0x0000, MB2(0x9BAD), MB2(0x9BAF), + MB2(0x8ADD), 0x0000, MB2(0xFAAD), MB2(0x9BAC), + MB2(0x9BAE), 0x0000, MB2(0x9BB1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, MB2(0x9BB0), 0x0000, MB2(0x9BB2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BB3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x93BB), MB2(0x8BAC), 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x89E3), MB2(0x9BB4), MB2(0x9BB9), 0x0000, + 0x0000, MB2(0x9BB7), 0x0000, MB2(0x95F5), + MB2(0x95F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFAAE), MB2(0x9387), 0x0000, + 0x0000, 0x0000, MB2(0x9BB6), MB2(0x8F73), + 0x0000, MB2(0x9BB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, MB2(0x9092), + 0x0000, 0x0000, 0x0000, MB2(0x9BBA), + 0x0000, 0x0000, MB2(0x8DE8), 0x0000, + 0x0000, MB2(0x9BC0), 0x0000, 0x0000, + MB2(0x9BC1), MB2(0x9BBB), MB2(0x8A52), MB2(0x9BBC), + MB2(0x9BC5), MB2(0x9BC4), MB2(0x9BC3), MB2(0x9BBF), + 0x0000, 0x0000, 0x0000, MB2(0x9BBE), + 0x0000, 0x0000, MB2(0x9BC2), 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, MB2(0xFAAF), + 0x0000, MB2(0x95F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFAB2), 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BC9), + MB2(0x9BC6), 0x0000, MB2(0x9BC8), 0x0000, + MB2(0x9792), 0x0000, MB2(0x9BC7), MB2(0xFAB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BBD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9093), 0x0000, 0x0000, + MB2(0x9BCA), MB2(0xFAB3), 0x0000, MB2(0x8DB5), + 0x0000, 0x0000, 0x0000, MB2(0x9BCB), + 0x0000, 0x0000, MB2(0x9BCC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BCF), 0x0000, /* 5D80 */ + MB2(0x9BCE), 0x0000, 0x0000, MB2(0x9BCD), + 0x0000, 0x0000, 0x0000, MB2(0x9388), + MB2(0x9BB8), 0x0000, 0x0000, 0x0000, + MB2(0x9BD5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BD1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BD0), 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BD2), 0x0000, MB2(0x9BD3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BD6), + MB2(0xFAB4), MB2(0xFAB5), MB2(0x97E4), 0x0000, + MB2(0x9BD7), MB2(0x9BD4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BD8), 0x0000, 0x0000, + MB2(0x8ADE), MB2(0x9BD9), 0x0000, 0x0000, + MB2(0xFAB6), 0x0000, MB2(0x9BDB), MB2(0x9BDA), + 0x0000, 0x0000, MB2(0x9BDC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BDD), + 0x0000, MB2(0x90EC), MB2(0x8F42), 0x0000, + 0x0000, MB2(0x8F84), 0x0000, MB2(0x9183), /* 5DE0 */ + 0x0000, MB2(0x8D48), MB2(0x8DB6), MB2(0x8D49), + MB2(0x8B90), 0x0000, 0x0000, MB2(0x9BDE), + 0x0000, 0x0000, MB2(0x8DB7), 0x0000, + 0x0000, MB2(0x8CC8), MB2(0x9BDF), MB2(0x96A4), + MB2(0x9462), MB2(0x9BE0), 0x0000, MB2(0x8D4A), + 0x0000, 0x0000, 0x0000, MB2(0x8AAA), + 0x0000, MB2(0x9246), MB2(0x8BD0), 0x0000, + 0x0000, 0x0000, MB2(0x8E73), MB2(0x957A), /* 5E00 */ + 0x0000, 0x0000, MB2(0x94BF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BE1), + MB2(0x8AF3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BE4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x929F), 0x0000, + 0x0000, MB2(0x9BE3), MB2(0x9BE2), MB2(0x9BE5), + 0x0000, MB2(0x92E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, MB2(0x9083), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E74), + 0x0000, MB2(0x90C8), 0x0000, MB2(0x91D1), + MB2(0x8B41), 0x0000, 0x0000, MB2(0x92A0), + 0x0000, 0x0000, MB2(0x9BE6), MB2(0x9BE7), + MB2(0x8FED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9658), 0x0000, 0x0000, + MB2(0x9BEA), 0x0000, 0x0000, MB2(0x9BE9), /* 5E40 */ + MB2(0x9BE8), MB2(0x959D), 0x0000, MB2(0x9BF1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9679), 0x0000, MB2(0x9BEB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BED), MB2(0x968B), 0x0000, MB2(0x9BEC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BEE), + 0x0000, MB2(0x94A6), MB2(0x9BEF), MB2(0x95BC), /* 5E60 */ + MB2(0x9BF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AB1), MB2(0x95BD), + MB2(0x944E), MB2(0x9BF2), MB2(0x9BF3), 0x0000, + MB2(0x8D4B), MB2(0x8AB2), MB2(0x9BF4), MB2(0x8CB6), + MB2(0x9763), MB2(0x9748), MB2(0x8AF4), MB2(0x9BF6), + 0x0000, MB2(0x92A1), 0x0000, MB2(0x8D4C), /* 5E80 */ + MB2(0x8FAF), 0x0000, 0x0000, MB2(0x94DD), + 0x0000, 0x0000, MB2(0x8FB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F98), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x92EA), MB2(0x95F7), MB2(0x9358), + 0x0000, 0x0000, MB2(0x8D4D), 0x0000, + MB2(0x957B), 0x0000, 0x0000, 0x0000, + MB2(0x9BF7), 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, MB2(0x9378), MB2(0x8DC0), + 0x0000, 0x0000, 0x0000, MB2(0x8CC9), + 0x0000, MB2(0x92EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88C1), MB2(0x8F8E), MB2(0x8D4E), + MB2(0x9766), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BF8), MB2(0x9BF9), MB2(0x9470), /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BFA), MB2(0x97F5), MB2(0x984C), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BFC), + MB2(0x9BFB), 0x0000, 0x0000, MB2(0x8A66), + 0x0000, 0x0000, MB2(0x9C40), 0x0000, + 0x0000, 0x0000, MB2(0x9C43), MB2(0x9C44), + 0x0000, MB2(0x9C42), 0x0000, MB2(0x955F), + MB2(0x8FB1), MB2(0x9C46), MB2(0x9C45), MB2(0x9C41), /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9C47), MB2(0x9C48), 0x0000, 0x0000, + MB2(0x9C49), 0x0000, 0x0000, 0x0000, + MB2(0x9C4C), MB2(0x9C4A), 0x0000, MB2(0x9C4B), + MB2(0x9C4D), 0x0000, MB2(0x8984), MB2(0x92EC), + MB2(0x9C4E), 0x0000, MB2(0x8C9A), MB2(0x89F4), + MB2(0x9455), 0x0000, MB2(0x9C4F), MB2(0x93F9), + 0x0000, MB2(0x95D9), 0x0000, MB2(0x9C50), /* 5F00 */ + MB2(0x984D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9C51), MB2(0x95BE), MB2(0x9C54), + MB2(0x989F), MB2(0x98AF), 0x0000, MB2(0x8EAE), + MB2(0x93F3), MB2(0x9C55), 0x0000, MB2(0x8B7C), + MB2(0x92A2), MB2(0x88F8), MB2(0x9C56), MB2(0x95A4), + MB2(0x8D4F), 0x0000, 0x0000, MB2(0x926F), + 0x0000, 0x0000, 0x0000, MB2(0x92ED), + 0x0000, MB2(0xFAB7), 0x0000, 0x0000, /* 5F20 */ + 0x0000, MB2(0x96ED), MB2(0x8CB7), MB2(0x8CCA), + 0x0000, MB2(0x9C57), 0x0000, 0x0000, + 0x0000, MB2(0x9C58), 0x0000, MB2(0x9C5E), + 0x0000, MB2(0x8EE3), 0x0000, 0x0000, + MB2(0xFAB8), MB2(0x92A3), 0x0000, MB2(0x8BAD), + MB2(0x9C59), 0x0000, 0x0000, 0x0000, + MB2(0x954A), 0x0000, MB2(0x9265), 0x0000, + 0x0000, MB2(0x9C5A), 0x0000, 0x0000, /* 5F40 */ + 0x0000, MB2(0xFA67), 0x0000, 0x0000, + MB2(0x9C5B), 0x0000, MB2(0x8BAE), 0x0000, + MB2(0x9C5C), 0x0000, MB2(0x9C5D), 0x0000, + 0x0000, MB2(0x9C5F), 0x0000, MB2(0x9396), + 0x0000, 0x0000, MB2(0x9C60), MB2(0x9C61), + 0x0000, MB2(0x9C62), 0x0000, 0x0000, + MB2(0x9C53), MB2(0x9C52), 0x0000, 0x0000, + 0x0000, MB2(0x9C63), MB2(0x8C60), 0x0000, /* 5F60 */ + 0x0000, 0x0000, MB2(0x9546), MB2(0xFAB9), + 0x0000, MB2(0x8DCA), MB2(0x9556), MB2(0x92A4), + MB2(0x956A), MB2(0x9C64), 0x0000, 0x0000, + MB2(0x8FB2), MB2(0x8965), 0x0000, MB2(0x9C65), + 0x0000, 0x0000, 0x0000, MB2(0x9C66), + 0x0000, MB2(0x96F0), 0x0000, 0x0000, + MB2(0x94DE), 0x0000, 0x0000, MB2(0x9C69), + MB2(0x899D), MB2(0x90AA), MB2(0x9C68), MB2(0x9C67), /* 5F80 */ + MB2(0x8C61), MB2(0x91D2), 0x0000, MB2(0x9C6D), + MB2(0x9C6B), 0x0000, MB2(0x9C6A), MB2(0x97A5), + MB2(0x8CE3), 0x0000, 0x0000, 0x0000, + MB2(0x8F99), MB2(0x9C6C), MB2(0x936B), MB2(0x8F5D), + 0x0000, 0x0000, 0x0000, MB2(0x93BE), + MB2(0x9C70), MB2(0x9C6F), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C6E), 0x0000, + MB2(0x9C71), MB2(0x8CE4), 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9C72), MB2(0x959C), MB2(0x8F7A), 0x0000, + 0x0000, MB2(0x9C73), MB2(0x94F7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93BF), + MB2(0x92A5), 0x0000, 0x0000, MB2(0xFABA), + 0x0000, MB2(0x934F), 0x0000, 0x0000, + MB2(0x9C74), MB2(0x8B4A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9053), /* 5FC0 */ + 0x0000, MB2(0x954B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AF5), MB2(0x9445), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C75), MB2(0x8E75), + MB2(0x9659), MB2(0x965A), 0x0000, 0x0000, + MB2(0x899E), MB2(0x9C7A), MB2(0xFABB), 0x0000, + MB2(0x9289), 0x0000, 0x0000, 0x0000, /* 5FE0 */ + MB2(0x9C77), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89F5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CAB), MB2(0x9C79), 0x0000, 0x0000, + 0x0000, MB2(0x944F), 0x0000, 0x0000, + MB2(0x9C78), 0x0000, 0x0000, MB2(0x9C76), + 0x0000, MB2(0x8D9A), 0x0000, MB2(0x9C7C), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C83), MB2(0x9C89), + MB2(0x9C81), 0x0000, MB2(0x937B), 0x0000, + 0x0000, MB2(0x9C86), MB2(0x957C), 0x0000, + 0x0000, MB2(0x9C80), 0x0000, MB2(0x9C85), + MB2(0x97E5), MB2(0x8E76), 0x0000, 0x0000, + MB2(0x91D3), MB2(0x9C7D), 0x0000, 0x0000, /* 6020 */ + 0x0000, MB2(0x8B7D), MB2(0x9C88), MB2(0x90AB), + MB2(0x8985), MB2(0x9C82), MB2(0x89F6), MB2(0x9C87), + 0x0000, 0x0000, 0x0000, MB2(0x8BAF), + 0x0000, MB2(0x9C84), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C8A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9C8C), MB2(0x9C96), MB2(0x9C94), /* 6040 */ + 0x0000, 0x0000, MB2(0x9C91), 0x0000, + 0x0000, 0x0000, MB2(0x9C90), MB2(0x97F6), + 0x0000, MB2(0x9C92), 0x0000, 0x0000, + MB2(0x8BB0), 0x0000, MB2(0x8D50), 0x0000, + 0x0000, MB2(0x8F9A), 0x0000, 0x0000, + 0x0000, MB2(0x9C99), MB2(0x9C8B), 0x0000, + 0x0000, MB2(0xFABC), 0x0000, MB2(0x9C8F), + MB2(0x9C7E), 0x0000, MB2(0x89F8), MB2(0x9C93), /* 6060 */ + MB2(0x9C95), MB2(0x9270), 0x0000, 0x0000, + MB2(0x8DA6), MB2(0x89B6), MB2(0x9C8D), MB2(0x9C98), + MB2(0x9C97), MB2(0x8BB1), 0x0000, MB2(0x91A7), + MB2(0x8A86), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C62), 0x0000, MB2(0x9C8E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9C9A), 0x0000, MB2(0x9C9D), /* 6080 */ + MB2(0x9C9F), MB2(0xFABD), 0x0000, 0x0000, + 0x0000, MB2(0x8EBB), MB2(0xFABE), MB2(0x9CA5), + MB2(0x92EE), MB2(0x9C9B), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9CA3), 0x0000, + MB2(0x89F7), 0x0000, MB2(0x9CA1), MB2(0x9CA2), + 0x0000, 0x0000, MB2(0x9C9E), MB2(0x9CA0), + 0x0000, 0x0000, 0x0000, MB2(0x8CE5), + MB2(0x9749), 0x0000, 0x0000, MB2(0x8AB3), /* 60A0 */ + 0x0000, 0x0000, MB2(0x8978), MB2(0x9CA4), + 0x0000, MB2(0x9459), MB2(0x88AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94DF), MB2(0x9C7B), + MB2(0x9CAA), MB2(0x9CAE), MB2(0x96E3), 0x0000, + MB2(0x9CA7), 0x0000, 0x0000, 0x0000, + MB2(0x9389), MB2(0x9CAC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, MB2(0x8FEE), MB2(0x9CAD), MB2(0x93D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9866), 0x0000, MB2(0x9CA9), + 0x0000, MB2(0xFAC0), 0x0000, 0x0000, + MB2(0x9CAF), 0x0000, MB2(0x8D9B), 0x0000, + MB2(0x90C9), 0x0000, MB2(0xFABF), MB2(0x88D2), + MB2(0x9CA8), MB2(0x9CA6), 0x0000, MB2(0x9179), /* 60E0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9C9C), + MB2(0x8E53), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91C4), MB2(0x9CBB), MB2(0xFAC2), MB2(0x917A), + MB2(0x9CB6), 0x0000, MB2(0x9CB3), MB2(0x9CB4), + 0x0000, MB2(0x8EE4), MB2(0x9CB7), MB2(0x9CBA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CB5), MB2(0x8F44), 0x0000, MB2(0x9CB8), /* 6100 */ + 0x0000, 0x0000, MB2(0x9CB2), 0x0000, + MB2(0x96FA), MB2(0x96F9), 0x0000, 0x0000, + 0x0000, MB2(0x9CBC), MB2(0x9CBD), MB2(0x88D3), + 0x0000, MB2(0xFAC3), 0x0000, 0x0000, + 0x0000, MB2(0x9CB1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BF0), MB2(0x88A4), + 0x0000, 0x0000, 0x0000, MB2(0x8AB4), + MB2(0xFAC1), MB2(0x9CB9), 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, MB2(0x9CC1), + MB2(0x9CC0), 0x0000, 0x0000, 0x0000, + MB2(0x9CC5), 0x0000, 0x0000, 0x0000, + MB2(0xFAC5), 0x0000, 0x0000, 0x0000, + MB2(0x9CC6), 0x0000, 0x0000, MB2(0xFAC4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CC4), MB2(0x9CC7), MB2(0x9CBF), MB2(0x9CC3), + 0x0000, 0x0000, MB2(0x9CC8), 0x0000, /* 6140 */ + MB2(0x9CC9), 0x0000, 0x0000, MB2(0x9CBE), + MB2(0x8E9C), 0x0000, MB2(0x9CC2), MB2(0x91D4), + MB2(0x8D51), MB2(0x9CB0), MB2(0x9054), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9CD6), + 0x0000, MB2(0x95E7), 0x0000, 0x0000, + MB2(0x9CCC), MB2(0x9CCD), MB2(0x9CCE), 0x0000, + 0x0000, MB2(0x9CD5), 0x0000, MB2(0x9CD4), + 0x0000, 0x0000, MB2(0x969D), MB2(0x8AB5), /* 6160 */ + 0x0000, MB2(0x9CD2), 0x0000, MB2(0x8C64), + MB2(0x8A53), 0x0000, 0x0000, MB2(0x9CCF), + 0x0000, 0x0000, MB2(0x97B6), MB2(0x9CD1), + MB2(0x88D4), MB2(0x9CD3), 0x0000, MB2(0x9CCA), + MB2(0x9CD0), MB2(0x9CD7), MB2(0x8C63), MB2(0x9CCB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x977C), 0x0000, + 0x0000, 0x0000, MB2(0x974A), 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, MB2(0x9CDA), + 0x0000, 0x0000, MB2(0x9CDE), 0x0000, + 0x0000, 0x0000, MB2(0x919E), 0x0000, + MB2(0x97F7), MB2(0x9CDF), 0x0000, 0x0000, + MB2(0x9CDC), 0x0000, MB2(0x9CD9), 0x0000, + MB2(0xFAC6), MB2(0x9CD8), MB2(0x9CDD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + MB2(0x95AE), 0x0000, 0x0000, MB2(0x93B2), + 0x0000, MB2(0x8C65), 0x0000, MB2(0x9CE0), + MB2(0x9CDB), 0x0000, MB2(0x9CE1), 0x0000, + 0x0000, 0x0000, MB2(0x8C9B), 0x0000, + 0x0000, 0x0000, MB2(0x89AF), 0x0000, + 0x0000, 0x0000, MB2(0x9CE9), 0x0000, + 0x0000, 0x0000, MB2(0x8AB6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9CE7), /* 61C0 */ + 0x0000, 0x0000, MB2(0x9CE8), MB2(0x8DA7), + MB2(0x9CE6), MB2(0x9CE4), MB2(0x9CE3), MB2(0x9CEA), + MB2(0x9CE2), MB2(0x9CEC), 0x0000, 0x0000, + MB2(0x89F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9CEE), /* 61E0 */ + 0x0000, 0x0000, MB2(0x9CED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92A6), 0x0000, + MB2(0x9CF1), 0x0000, MB2(0x9CEF), MB2(0x9CE5), + MB2(0x8C9C), 0x0000, MB2(0x9CF0), 0x0000, + MB2(0x9CF4), MB2(0x9CF3), MB2(0x9CF5), MB2(0x9CF2), + MB2(0x9CF6), 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CF7), MB2(0x9CF8), MB2(0x95E8), 0x0000, + MB2(0x9CFA), MB2(0x9CF9), MB2(0x8F5E), 0x0000, + MB2(0x90AC), MB2(0x89E4), MB2(0x89FA), MB2(0xFAC7), + MB2(0x9CFB), 0x0000, MB2(0x88BD), 0x0000, + 0x0000, 0x0000, MB2(0x90CA), MB2(0x9CFC), + 0x0000, MB2(0xE6C1), MB2(0x9D40), MB2(0x8C81), + 0x0000, MB2(0x9D41), 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, MB2(0x90ED), 0x0000, + 0x0000, 0x0000, MB2(0x9D42), 0x0000, + 0x0000, 0x0000, MB2(0x9D43), MB2(0x8B59), + MB2(0x9D44), 0x0000, MB2(0x9D45), MB2(0x9D46), + MB2(0x91D5), 0x0000, 0x0000, 0x0000, + MB2(0x8CCB), 0x0000, 0x0000, MB2(0x96DF), + 0x0000, 0x0000, 0x0000, MB2(0x965B), + MB2(0x8F8A), MB2(0x9D47), 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, MB2(0x90EE), + MB2(0xE7BB), MB2(0x94E0), 0x0000, MB2(0x8EE8), + 0x0000, MB2(0x8DCB), MB2(0x9D48), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91C5), + 0x0000, MB2(0x95A5), 0x0000, 0x0000, + MB2(0x91EF), 0x0000, 0x0000, MB2(0x9D4B), + 0x0000, 0x0000, MB2(0x9D49), 0x0000, + MB2(0x9D4C), 0x0000, 0x0000, MB2(0x9D4A), /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D4D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x95AF), 0x0000, + 0x0000, MB2(0x88B5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x957D), 0x0000, + 0x0000, MB2(0x94E1), 0x0000, 0x0000, + MB2(0x9D4E), 0x0000, MB2(0x9D51), MB2(0x8FB3), + MB2(0x8B5A), 0x0000, MB2(0x9D4F), MB2(0x9D56), /* 6280 */ + MB2(0x8FB4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9D50), MB2(0x9463), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x977D), MB2(0x9D52), MB2(0x9D53), + MB2(0x9D57), MB2(0x938A), MB2(0x9D54), MB2(0x8D52), + MB2(0x90DC), 0x0000, 0x0000, MB2(0x9D65), + MB2(0x94B2), 0x0000, MB2(0x91F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, MB2(0xFAC8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94E2), + MB2(0x9DAB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95F8), 0x0000, 0x0000, + 0x0000, MB2(0x92EF), 0x0000, 0x0000, + 0x0000, MB2(0x9695), 0x0000, MB2(0x9D5A), + MB2(0x899F), MB2(0x928A), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D63), 0x0000, /* 62C0 */ + 0x0000, MB2(0x9253), MB2(0x9D5D), MB2(0x9D64), + MB2(0x9D5F), MB2(0x9D66), MB2(0x9D62), 0x0000, + MB2(0x9D61), MB2(0x948F), 0x0000, MB2(0x9D5B), + MB2(0x89FB), MB2(0x9D59), MB2(0x8B91), MB2(0x91F1), + MB2(0x9D55), 0x0000, 0x0000, MB2(0x9D58), + MB2(0x8D53), MB2(0x90D9), 0x0000, MB2(0x8FB5), + MB2(0x9D60), MB2(0x9471), 0x0000, 0x0000, + MB2(0x8B92), MB2(0x8A67), 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A87), MB2(0x9040), MB2(0x9D68), MB2(0x9D6D), + 0x0000, MB2(0x9D69), 0x0000, MB2(0x8C9D), + 0x0000, MB2(0x9D6E), MB2(0x8E41), MB2(0x8D89), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F45), MB2(0x9D5C), + 0x0000, MB2(0x8E9D), MB2(0x9D6B), 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, MB2(0x8E77), + MB2(0x9D6C), MB2(0x88C2), 0x0000, 0x0000, + MB2(0x9D67), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x92A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8B93), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8BB2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, MB2(0x9D6A), + MB2(0x88A5), 0x0000, 0x0000, MB2(0x8DC1), + 0x0000, 0x0000, 0x0000, MB2(0x9055), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92F0), 0x0000, + 0x0000, MB2(0x94D2), MB2(0x9D70), MB2(0x917D), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91A8), 0x0000, 0x0000, + MB2(0x8E4A), MB2(0x9D71), 0x0000, MB2(0x9D73), + MB2(0x9D6F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95DF), 0x0000, MB2(0x92BB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x917B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, MB2(0x95F9), + MB2(0x8ECC), MB2(0x9D80), 0x0000, MB2(0x9D7E), + 0x0000, 0x0000, MB2(0x9098), 0x0000, + 0x0000, 0x0000, MB2(0x8C9E), 0x0000, + 0x0000, 0x0000, MB2(0x9D78), MB2(0x8FB7), + 0x0000, 0x0000, MB2(0x93E6), MB2(0x9450), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D76), 0x0000, 0x0000, MB2(0x917C), /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EF6), MB2(0x9D7B), 0x0000, 0x0000, + MB2(0x8FB6), 0x0000, MB2(0x9D75), MB2(0x9D7A), + 0x0000, 0x0000, MB2(0x9472), 0x0000, + 0x0000, 0x0000, MB2(0x9D74), 0x0000, + MB2(0x8C40), 0x0000, 0x0000, MB2(0x8A7C), + 0x0000, 0x0000, 0x0000, MB2(0x9D7C), + MB2(0x97A9), MB2(0x8DCC), MB2(0x9254), MB2(0x9D79), /* 63A0 */ + 0x0000, MB2(0x90DA), 0x0000, MB2(0x8D54), + MB2(0x9084), MB2(0x8986), MB2(0x915B), MB2(0x9D77), + MB2(0x8B64), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C66), 0x0000, + MB2(0x92CD), MB2(0x9D7D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x917E), + 0x0000, 0x0000, MB2(0x9D81), 0x0000, + MB2(0x9D83), 0x0000, 0x0000, MB2(0x91B5), /* 63C0 */ + MB2(0x9D89), 0x0000, MB2(0x9D84), 0x0000, + 0x0000, MB2(0x9D86), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9560), + MB2(0x92F1), 0x0000, MB2(0x9D87), 0x0000, + 0x0000, 0x0000, MB2(0x974B), 0x0000, + 0x0000, 0x0000, MB2(0x9767), MB2(0x8AB7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88AC), 0x0000, MB2(0x9D85), /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9D82), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8987), MB2(0xFAC9), MB2(0x9D88), 0x0000, + 0x0000, 0x0000, MB2(0x9768), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, MB2(0x9D8C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91B9), 0x0000, MB2(0x9D93), + 0x0000, 0x0000, 0x0000, MB2(0x9D8D), + 0x0000, 0x0000, MB2(0x9D8A), MB2(0x9D91), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D72), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, MB2(0x9D8E), 0x0000, + MB2(0x9D92), 0x0000, 0x0000, 0x0000, + MB2(0x94C0), MB2(0x938B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D8B), 0x0000, MB2(0x9D8F), 0x0000, + 0x0000, 0x0000, MB2(0x8C67), 0x0000, + 0x0000, 0x0000, MB2(0x8DEF), 0x0000, + 0x0000, 0x0000, MB2(0x90DB), 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D97), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9345), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFACA), 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, MB2(0x9D94), + 0x0000, MB2(0x9680), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9D95), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D96), 0x0000, + MB2(0x96CC), 0x0000, MB2(0x90A0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C82), /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D9D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8E54), MB2(0x9D9A), + 0x0000, MB2(0x9D99), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9451), 0x0000, + 0x0000, MB2(0xFACB), MB2(0x93B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + MB2(0x9350), MB2(0x9D9B), 0x0000, 0x0000, + 0x0000, MB2(0x9D9C), 0x0000, MB2(0x958F), + 0x0000, MB2(0x9464), MB2(0x8E42), 0x0000, + MB2(0x90EF), 0x0000, MB2(0x966F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A68), 0x0000, MB2(0x9DA3), + MB2(0x9D9E), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9769), MB2(0x9DA5), 0x0000, /* 64C0 */ + 0x0000, MB2(0x9DA1), 0x0000, MB2(0x9DA2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9180), MB2(0xFACC), 0x0000, + 0x0000, 0x0000, MB2(0x9DA0), 0x0000, + MB2(0x9D5E), 0x0000, 0x0000, 0x0000, + MB2(0x9DA4), 0x0000, MB2(0x9D9F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DA9), MB2(0x9DAA), MB2(0x9346), MB2(0x9DAC), /* 64E0 */ + 0x0000, 0x0000, MB2(0x8E43), MB2(0x9DA7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B5B), 0x0000, 0x0000, MB2(0x9DAD), + 0x0000, MB2(0x9DA6), MB2(0x9DB1), 0x0000, + MB2(0x9DB0), 0x0000, MB2(0x9DAF), 0x0000, + 0x0000, 0x0000, MB2(0x9DB2), 0x0000, + 0x0000, MB2(0x9DB4), MB2(0x8FEF), 0x0000, + MB2(0x9DB3), 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, MB2(0x9DB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DB5), 0x0000, 0x0000, 0x0000, + MB2(0x9DB6), MB2(0x9D90), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9DB9), /* 6520 */ + MB2(0x9DB8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D98), MB2(0x9DBA), + MB2(0x9DAE), 0x0000, 0x0000, MB2(0x8E78), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DBB), MB2(0x9DBC), MB2(0x9DBE), MB2(0x9DBD), + MB2(0x9DBF), MB2(0x89FC), 0x0000, MB2(0x8D55), + 0x0000, 0x0000, MB2(0x95FA), MB2(0x90AD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, MB2(0x8CCC), 0x0000, 0x0000, + MB2(0x9DC1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9DC4), MB2(0xFACD), MB2(0x9571), + 0x0000, MB2(0x8B7E), 0x0000, 0x0000, + 0x0000, MB2(0x9DC3), MB2(0x9DC2), MB2(0x9473), + MB2(0x9DC5), MB2(0x8BB3), 0x0000, 0x0000, + 0x0000, MB2(0x9DC7), MB2(0x9DC6), 0x0000, + 0x0000, 0x0000, MB2(0x8AB8), MB2(0x8E55), /* 6560 */ + 0x0000, 0x0000, MB2(0x93D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C68), 0x0000, 0x0000, 0x0000, + MB2(0x9094), 0x0000, MB2(0x9DC8), 0x0000, + MB2(0x90AE), MB2(0x9347), 0x0000, MB2(0x957E), + MB2(0x9DC9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DCA), MB2(0x9DCB), /* 6580 */ + 0x0000, 0x0000, 0x0000, MB2(0x95B6), + MB2(0x9B7C), MB2(0x90C4), 0x0000, 0x0000, + MB2(0x956B), 0x0000, MB2(0x8DD6), 0x0000, + MB2(0x94E3), MB2(0x94C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x936C), + 0x0000, MB2(0x97BF), 0x0000, MB2(0x9DCD), + MB2(0x8ECE), 0x0000, 0x0000, MB2(0x9DCE), + 0x0000, MB2(0x88B4), 0x0000, 0x0000, /* 65A0 */ + MB2(0x8BD2), MB2(0x90CB), 0x0000, MB2(0x9580), + 0x0000, 0x0000, 0x0000, MB2(0x9DCF), + MB2(0x8E61), MB2(0x9266), 0x0000, MB2(0x8E7A), + MB2(0x9056), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9DD0), + 0x0000, MB2(0x95FB), 0x0000, 0x0000, + MB2(0x8997), MB2(0x8E7B), 0x0000, 0x0000, + 0x0000, MB2(0x9DD3), 0x0000, MB2(0x9DD1), /* 65C0 */ + MB2(0x9DD4), MB2(0x97B7), MB2(0x9DD2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90F9), + MB2(0x9DD5), 0x0000, 0x0000, MB2(0x91B0), + 0x0000, 0x0000, MB2(0x9DD6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AF8), + 0x0000, MB2(0x9DD8), 0x0000, MB2(0x9DD7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DD9), MB2(0x9DDA), MB2(0x8AF9), 0x0000, /* 65E0 */ + 0x0000, MB2(0x93FA), MB2(0x9255), MB2(0x8B8C), + MB2(0x8E7C), MB2(0x9181), 0x0000, 0x0000, + MB2(0x8F7B), MB2(0x88AE), 0x0000, 0x0000, + 0x0000, MB2(0x9DDB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89A0), MB2(0x9DDF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFACE), 0x0000, MB2(0x8D56), MB2(0x9DDE), /* 6600 */ + 0x0000, 0x0000, MB2(0x8DA9), MB2(0x8FB8), + 0x0000, MB2(0xFAD1), MB2(0x9DDD), 0x0000, + MB2(0x8FB9), 0x0000, MB2(0x96BE), MB2(0x8DA8), + 0x0000, 0x0000, 0x0000, MB2(0x88D5), + MB2(0x90CC), MB2(0xFACF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DE4), 0x0000, MB2(0xFAD3), MB2(0x90AF), + MB2(0x8966), 0x0000, 0x0000, 0x0000, /* 6620 */ + MB2(0xFAD4), MB2(0x8F74), 0x0000, MB2(0x9686), + MB2(0x8DF0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FBA), MB2(0xFAD2), MB2(0x90A5), + 0x0000, MB2(0xFA63), 0x0000, 0x0000, + MB2(0x9DE3), MB2(0x9DE1), MB2(0x9DE2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFAD0), + MB2(0x928B), 0x0000, 0x0000, MB2(0x9E45), + 0x0000, MB2(0x9DE8), MB2(0x8E9E), MB2(0x8D57), /* 6640 */ + MB2(0x9DE6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9DE7), 0x0000, MB2(0x9057), + 0x0000, 0x0000, 0x0000, MB2(0x9DE5), + 0x0000, 0x0000, MB2(0x8E4E), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFAD6), + 0x0000, MB2(0xFAD7), 0x0000, 0x0000, + 0x0000, MB2(0x9DEA), MB2(0x9DE9), MB2(0x9DEE), + 0x0000, MB2(0xFAD7), MB2(0x9DEF), 0x0000, /* 6660 */ + MB2(0x9DEB), MB2(0xFAD5), MB2(0x8A41), MB2(0x9DEC), + MB2(0x9DED), MB2(0x94D3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9581), MB2(0x8C69), + MB2(0x9DF0), 0x0000, 0x0000, MB2(0xFAD9), + MB2(0x90B0), 0x0000, MB2(0x8FBB), 0x0000, + 0x0000, 0x0000, MB2(0x9271), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8BC5), 0x0000, MB2(0x9DF1), /* 6680 */ + MB2(0x9DF5), 0x0000, 0x0000, MB2(0x89C9), + MB2(0x9DF2), MB2(0x9DF4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DF3), 0x0000, + 0x0000, MB2(0x8F8B), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9267), MB2(0x88C3), + MB2(0x9DF6), MB2(0xFADA), 0x0000, 0x0000, + 0x0000, MB2(0x9DF7), 0x0000, 0x0000, + MB2(0xFADB), 0x0000, MB2(0x92A8), 0x0000, /* 66A0 */ + 0x0000, 0x0000, MB2(0x97EF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E62), + 0x0000, 0x0000, MB2(0x95E9), 0x0000, + 0x0000, 0x0000, MB2(0xFADC), 0x0000, + MB2(0x965C), 0x0000, 0x0000, 0x0000, + MB2(0x9E41), MB2(0x9DF9), 0x0000, 0x0000, + MB2(0x9DFC), 0x0000, MB2(0x9DFB), MB2(0xFADD), + 0x0000, MB2(0x9DF8), 0x0000, 0x0000, /* 66C0 */ + MB2(0x9E40), 0x0000, 0x0000, MB2(0x93DC), + 0x0000, MB2(0x9DFA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E42), 0x0000, + 0x0000, MB2(0x8F8C), MB2(0x9E43), 0x0000, + MB2(0x976A), MB2(0x9498), 0x0000, 0x0000, + MB2(0x9E44), 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, MB2(0x9E46), 0x0000, + 0x0000, MB2(0x9E47), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E48), 0x0000, MB2(0x8BC8), MB2(0x8967), + MB2(0x8D58), MB2(0x9E49), 0x0000, MB2(0x9E4A), + MB2(0x8F91), MB2(0x9182), MB2(0xFADE), MB2(0xFA66), + MB2(0x99D6), MB2(0x915D), MB2(0x915C), MB2(0x91D6), + MB2(0x8DC5), 0x0000, 0x0000, MB2(0x98F0), /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C8E), MB2(0x974C), 0x0000, MB2(0x95FC), + 0x0000, MB2(0x959E), MB2(0xFADF), MB2(0x9E4B), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8DF1), MB2(0x92BD), MB2(0x9E4C), MB2(0x984E), + 0x0000, 0x0000, 0x0000, MB2(0x965D), + 0x0000, MB2(0x92A9), MB2(0x9E4D), MB2(0x8AFA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, MB2(0x9E4E), MB2(0x9E4F), + MB2(0x96D8), 0x0000, MB2(0x96A2), MB2(0x9696), + MB2(0x967B), MB2(0x8E44), MB2(0x9E51), 0x0000, + 0x0000, MB2(0x8EE9), 0x0000, 0x0000, + MB2(0x9670), 0x0000, MB2(0x9E53), MB2(0x9E56), + MB2(0x9E55), 0x0000, MB2(0x8AF7), 0x0000, + 0x0000, MB2(0x8B80), 0x0000, MB2(0x9E52), + 0x0000, MB2(0x9E54), 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, MB2(0x9E57), 0x0000, + 0x0000, MB2(0x9099), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x979B), MB2(0x88C7), + MB2(0x8DDE), MB2(0x91BA), 0x0000, MB2(0x8EDB), + 0x0000, 0x0000, MB2(0x8FF1), 0x0000, + 0x0000, MB2(0x9E5A), 0x0000, 0x0000, + MB2(0x936D), 0x0000, MB2(0x9E58), MB2(0x91A9), + MB2(0x9E59), MB2(0x8FF0), MB2(0x96DB), MB2(0x9E5B), /* 6760 */ + MB2(0x9E5C), MB2(0x9788), MB2(0xFAE1), 0x0000, + 0x0000, 0x0000, MB2(0x9E61), 0x0000, + 0x0000, MB2(0x8D59), 0x0000, MB2(0x9474), + MB2(0x9E5E), MB2(0x938C), MB2(0x9DDC), MB2(0x9DE0), + 0x0000, MB2(0x8B6E), 0x0000, MB2(0x9466), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E60), 0x0000, MB2(0x8FBC), MB2(0x94C2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, MB2(0x9E66), 0x0000, MB2(0x94F8), + 0x0000, MB2(0x9E5D), 0x0000, MB2(0x9E63), + MB2(0x9E62), 0x0000, 0x0000, 0x0000, + MB2(0x90CD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x968D), 0x0000, MB2(0x97D1), + 0x0000, 0x0000, MB2(0x9687), 0x0000, + MB2(0x89CA), MB2(0x8E7D), 0x0000, 0x0000, + MB2(0x9867), MB2(0x9E65), MB2(0x9095), 0x0000, /* 67A0 */ + 0x0000, 0x0000, MB2(0x9E64), 0x0000, + 0x0000, MB2(0x9E5F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CCD), + 0x0000, 0x0000, 0x0000, MB2(0x9E6B), + MB2(0x9E69), 0x0000, MB2(0x89CB), MB2(0x9E67), + MB2(0x9E6D), MB2(0x9E73), 0x0000, MB2(0xFAE2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFAE4), MB2(0x91C6), 0x0000, 0x0000, /* 67C0 */ + MB2(0x95BF), 0x0000, MB2(0x9E75), 0x0000, + 0x0000, 0x0000, MB2(0x9541), 0x0000, + 0x0000, 0x0000, MB2(0x9E74), MB2(0x9490), + MB2(0x965E), MB2(0x8AB9), 0x0000, MB2(0x90F5), + MB2(0x8F5F), 0x0000, 0x0000, 0x0000, + MB2(0x92D1), 0x0000, MB2(0x974D), 0x0000, + 0x0000, MB2(0x9E70), MB2(0x9E6F), 0x0000, + 0x0000, 0x0000, MB2(0x9E71), 0x0000, /* 67E0 */ + MB2(0x9E6E), 0x0000, 0x0000, MB2(0x9E76), + 0x0000, MB2(0x9E6C), 0x0000, 0x0000, + MB2(0x9E6A), 0x0000, MB2(0x9E72), MB2(0x9E68), + 0x0000, MB2(0x928C), 0x0000, MB2(0x96F6), + MB2(0x8EC4), MB2(0x8DF2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8DB8), + 0x0000, 0x0000, MB2(0x968F), MB2(0x8A60), + 0x0000, MB2(0xFAE5), MB2(0x92CC), MB2(0x93C8), /* 6800 */ + MB2(0x8968), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90F0), + 0x0000, 0x0000, MB2(0x90B2), MB2(0x8C49), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E78), 0x0000, + 0x0000, MB2(0x8D5A), MB2(0x8A9C), 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E7A), MB2(0x8A94), MB2(0x9E81), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E7D), 0x0000, + MB2(0x90F1), 0x0000, 0x0000, 0x0000, + MB2(0x8A6A), MB2(0x8DAA), 0x0000, 0x0000, + MB2(0x8A69), MB2(0x8DCD), 0x0000, 0x0000, + MB2(0x9E7B), MB2(0x8C85), MB2(0x8C6A), MB2(0x938D), /* 6840 */ + MB2(0xFAE6), 0x0000, MB2(0x9E79), 0x0000, + MB2(0x88C4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E7C), MB2(0x9E7E), 0x0000, + MB2(0x8BCB), MB2(0x8C4B), MB2(0xFAE3), MB2(0x8ABA), + MB2(0x8B6A), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E82), 0x0000, 0x0000, + MB2(0x8DF7), MB2(0x9691), 0x0000, MB2(0x8E56), + 0x0000, 0x0000, 0x0000, MB2(0x9E83), /* 6860 */ + 0x0000, 0x0000, 0x0000, MB2(0x954F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E8F), 0x0000, MB2(0x89B1), MB2(0x9E84), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E95), MB2(0x9E85), + 0x0000, MB2(0x97C0), 0x0000, MB2(0x9E8C), /* 6880 */ + 0x0000, MB2(0x947E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E94), 0x0000, MB2(0x9E87), + 0x0000, 0x0000, 0x0000, MB2(0x88B2), + MB2(0x9E89), 0x0000, 0x0000, MB2(0x8D5B), + 0x0000, 0x0000, 0x0000, MB2(0x9E8B), + 0x0000, MB2(0x9E8A), 0x0000, MB2(0x9E86), + MB2(0x9E91), 0x0000, MB2(0x8FBD), 0x0000, /* 68A0 */ + 0x0000, 0x0000, MB2(0x9AEB), MB2(0x8CE6), + MB2(0x979C), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E88), 0x0000, MB2(0x92F2), + MB2(0x8A42), MB2(0x8DAB), 0x0000, MB2(0x9E80), + 0x0000, MB2(0x9E90), MB2(0x8A81), 0x0000, + 0x0000, MB2(0x9E8E), MB2(0x9E92), 0x0000, + MB2(0x938E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + MB2(0x8AFC), 0x0000, MB2(0x9EB0), 0x0000, + MB2(0xFA64), MB2(0x96C7), MB2(0x9E97), MB2(0x8AFB), + 0x0000, MB2(0x9E9E), 0x0000, MB2(0xFAE7), + 0x0000, 0x0000, MB2(0x965F), 0x0000, + MB2(0x9E9F), MB2(0x9EA1), 0x0000, MB2(0x9EA5), + MB2(0x9E99), 0x0000, MB2(0x9249), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x938F), + MB2(0x9EA9), MB2(0x9E9C), 0x0000, MB2(0x9EA6), /* 68E0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9EA0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9058), MB2(0x9EAA), + 0x0000, 0x0000, MB2(0x90B1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EA8), MB2(0x8ABB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x986F), MB2(0x9E96), 0x0000, 0x0000, /* 6900 */ + MB2(0x9EA4), MB2(0x88D6), 0x0000, 0x0000, + MB2(0x9E98), 0x0000, 0x0000, MB2(0x96B8), + MB2(0x9E9D), MB2(0x9041), MB2(0x92C5), MB2(0x9E93), + 0x0000, 0x0000, MB2(0x9EA3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x909A), MB2(0x9EAD), MB2(0x8A91), + MB2(0x8C9F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EAF), MB2(0x9E9A), MB2(0x9EAE), /* 6920 */ + 0x0000, MB2(0x9EA7), MB2(0x9E9B), 0x0000, + MB2(0x9EAB), 0x0000, MB2(0x9EAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9EBD), 0x0000, 0x0000, 0x0000, + MB2(0x93CC), 0x0000, MB2(0x9EA2), 0x0000, + 0x0000, MB2(0x9EB9), 0x0000, 0x0000, + 0x0000, MB2(0x9EBB), 0x0000, MB2(0x92D6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x976B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9596), + MB2(0x9EB6), MB2(0x91C8), 0x0000, 0x0000, + 0x0000, MB2(0x9EBC), MB2(0x915E), 0x0000, + MB2(0x9EB3), MB2(0x9EC0), MB2(0x9EBF), 0x0000, + MB2(0x93ED), MB2(0x9EBE), MB2(0x93E8), 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFAE9), 0x0000, MB2(0x9EC2), MB2(0x9EB5), + 0x0000, MB2(0x8BC6), MB2(0x9EB8), MB2(0x8F7C), + 0x0000, 0x0000, 0x0000, MB2(0x9480), + MB2(0x9EBA), MB2(0x8BC9), 0x0000, MB2(0x9EB2), + MB2(0x9EB4), MB2(0x9EB1), 0x0000, 0x0000, + MB2(0x984F), MB2(0x8A79), MB2(0x9EB7), 0x0000, + 0x0000, MB2(0x9EC1), MB2(0x8A54), 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DE5), 0x0000, + 0x0000, 0x0000, MB2(0x897C), 0x0000, + 0x0000, MB2(0x9ED2), 0x0000, 0x0000, + MB2(0x9850), MB2(0x9ED5), 0x0000, 0x0000, + MB2(0xFAEB), 0x0000, 0x0000, MB2(0x9059), + MB2(0x9ED4), 0x0000, 0x0000, 0x0000, + MB2(0x9ED3), 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9ED0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EC4), 0x0000, + 0x0000, MB2(0x9EE1), MB2(0x9EC3), 0x0000, + MB2(0x9ED6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9ECE), + 0x0000, 0x0000, MB2(0x9EC9), MB2(0x9EC6), + 0x0000, MB2(0x9EC7), 0x0000, MB2(0x9ECF), /* 69C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xEAA0), + 0x0000, 0x0000, MB2(0x9ECC), MB2(0x8D5C), + MB2(0x92C6), MB2(0x9184), MB2(0x9ECA), 0x0000, + MB2(0x9EC5), 0x0000, 0x0000, MB2(0x9EC8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x976C), MB2(0x968A), 0x0000, 0x0000, + 0x0000, MB2(0x9ECD), MB2(0x9ED7), 0x0000, + 0x0000, 0x0000, MB2(0xFAEC), 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9EDF), + MB2(0x9ED8), 0x0000, 0x0000, MB2(0x9EE5), + 0x0000, MB2(0x9EE3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EDD), 0x0000, MB2(0x92CE), + 0x0000, MB2(0x9185), 0x0000, MB2(0x9EDB), + 0x0000, 0x0000, MB2(0x9ED9), 0x0000, /* 6A00 */ + 0x0000, MB2(0x9EE0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EE6), MB2(0x94F3), + MB2(0x9EEC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EE7), MB2(0x9EEA), + MB2(0x9EE4), 0x0000, 0x0000, MB2(0x9294), + 0x0000, MB2(0x9557), 0x0000, MB2(0x9EDA), + 0x0000, 0x0000, MB2(0x9EE2), MB2(0x8FBE), + 0x0000, MB2(0x96CD), MB2(0x9EF6), MB2(0x9EE9), /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8CA0), MB2(0x89A1), MB2(0x8A7E), + 0x0000, 0x0000, MB2(0x9ED1), 0x0000, + MB2(0xFAED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FBF), MB2(0x9EEE), 0x0000, + MB2(0x9EF5), MB2(0x8EF7), MB2(0x8A92), 0x0000, + 0x0000, MB2(0x924D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + MB2(0x9EEB), 0x0000, MB2(0xFAEF), MB2(0x9EF0), + MB2(0x9EF4), 0x0000, 0x0000, MB2(0x8BB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B6B), MB2(0x9EF2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B40), + 0x0000, MB2(0x93C9), MB2(0x9EF1), 0x0000, /* 6A60 */ + 0x0000, 0x0000, MB2(0x9EF3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFAEE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EED), MB2(0xFAF0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9EEF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFAF1), MB2(0x8A80), + MB2(0x9268), 0x0000, 0x0000, 0x0000, /* 6A80 */ + MB2(0x9EFA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EF8), MB2(0x8CE7), 0x0000, + MB2(0x9EF7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F40), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E77), 0x0000, 0x0000, 0x0000, + MB2(0x9EF9), 0x0000, MB2(0x9EFB), MB2(0x9EFC), /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F4B), 0x0000, + MB2(0x9F47), 0x0000, MB2(0x9E8D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F46), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9F45), 0x0000, 0x0000, MB2(0x9F42), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EE8), MB2(0x9F44), MB2(0x9F43), /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F49), 0x0000, MB2(0x9845), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F4C), MB2(0x8BF9), + 0x0000, 0x0000, MB2(0x9F48), MB2(0x9F4A), + 0x0000, 0x0000, MB2(0xFAF2), 0x0000, /* 6AE0 */ + MB2(0xFAF3), 0x0000, 0x0000, 0x0000, + MB2(0x94A5), 0x0000, MB2(0x9F4D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F51), MB2(0x9F4E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + MB2(0x9793), MB2(0x9F4F), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EDC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F52), 0x0000, + 0x0000, 0x0000, MB2(0x9F53), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8954), 0x0000, MB2(0x9F55), + MB2(0x8C87), MB2(0x8E9F), 0x0000, MB2(0x8BD3), /* 6B20 */ + 0x0000, 0x0000, 0x0000, MB2(0x89A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x977E), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F57), + MB2(0x9F56), MB2(0x9F59), MB2(0x8B5C), 0x0000, + 0x0000, MB2(0x8BD4), MB2(0x8ABC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F5C), /* 6B40 */ + 0x0000, 0x0000, 0x0000, MB2(0x9F5B), + 0x0000, MB2(0x9F5D), 0x0000, 0x0000, + MB2(0x89CC), 0x0000, MB2(0x9256), 0x0000, + MB2(0x9F5E), 0x0000, 0x0000, MB2(0x8ABD), + MB2(0x9F60), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F5F), 0x0000, MB2(0x9F61), + 0x0000, 0x0000, 0x0000, MB2(0x9F62), + 0x0000, MB2(0x9F63), MB2(0x8E7E), MB2(0x90B3), /* 6B60 */ + MB2(0x8D9F), 0x0000, MB2(0x9590), 0x0000, + 0x0000, MB2(0x95E0), MB2(0x9863), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E95), + 0x0000, 0x0000, 0x0000, MB2(0x8DCE), + MB2(0x97F0), 0x0000, 0x0000, 0x0000, + MB2(0x9F64), MB2(0x9F65), 0x0000, MB2(0x8E80), + 0x0000, 0x0000, 0x0000, MB2(0x9F66), + MB2(0x9F67), 0x0000, 0x0000, MB2(0x9F69), /* 6B80 */ + MB2(0x9F68), 0x0000, MB2(0x9677), 0x0000, + 0x0000, MB2(0x8F7D), MB2(0x8EEA), MB2(0x8E63), + 0x0000, MB2(0x9F6A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F6C), MB2(0x9042), 0x0000, + MB2(0x9F6B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F6D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + MB2(0x9F6E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F6F), MB2(0x9F70), + 0x0000, 0x0000, 0x0000, MB2(0x9F71), + 0x0000, MB2(0x9F73), MB2(0x9F72), MB2(0x9F74), + MB2(0x89A3), MB2(0x9269), 0x0000, MB2(0x9F75), + 0x0000, 0x0000, MB2(0x8E45), MB2(0x8A6B), + MB2(0x9F76), 0x0000, 0x0000, MB2(0x9361), + MB2(0x9ACA), 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, MB2(0x8B42), MB2(0x9F77), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F78), + 0x0000, MB2(0x95EA), MB2(0x9688), 0x0000, + 0x0000, 0x0000, MB2(0x93C5), MB2(0x9F79), + MB2(0x94E4), 0x0000, MB2(0xFAF4), 0x0000, + MB2(0x94F9), 0x0000, 0x0000, MB2(0x96D1), + 0x0000, 0x0000, 0x0000, MB2(0x9F7A), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F7C), + MB2(0x9F7B), 0x0000, 0x0000, MB2(0x9F7E), + 0x0000, 0x0000, 0x0000, MB2(0x9F7D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9F81), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E81), + 0x0000, MB2(0x96AF), 0x0000, MB2(0x9F82), + MB2(0x9F83), 0x0000, 0x0000, MB2(0x8B43), + 0x0000, 0x0000, 0x0000, MB2(0x9F84), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F86), /* 6C20 */ + MB2(0x9F85), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9085), 0x0000, 0x0000, MB2(0x9558), + MB2(0x8969), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94C3), MB2(0xFAF5), + MB2(0x92F3), MB2(0x8F60), MB2(0x8B81), 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94C4), 0x0000, + MB2(0x8EAC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F88), 0x0000, MB2(0x8ABE), + 0x0000, 0x0000, MB2(0x8998), 0x0000, + MB2(0xFAF6), MB2(0x93F0), MB2(0x9F87), MB2(0x8D5D), + MB2(0x9272), 0x0000, MB2(0x9F89), 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9F91), 0x0000, MB2(0x9F8A), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFAF8), + MB2(0x91BF), 0x0000, MB2(0x8B82), MB2(0x9F92), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C88), 0x0000, + 0x0000, MB2(0x8B44), MB2(0x9F90), 0x0000, + 0x0000, MB2(0x9F8E), MB2(0x9F8B), MB2(0x9780), /* 6C80 */ + 0x0000, 0x0000, MB2(0xFAF7), 0x0000, + MB2(0x92BE), 0x0000, 0x0000, 0x0000, + MB2(0x93D7), MB2(0x9F8C), 0x0000, 0x0000, + MB2(0x9F94), 0x0000, MB2(0x9F93), MB2(0x8C42), + 0x0000, 0x0000, MB2(0x89AB), 0x0000, + 0x0000, MB2(0x8DB9), MB2(0x9F8D), MB2(0x9F8F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9676), MB2(0x91F2), 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9697), + 0x0000, 0x0000, MB2(0x9F9C), 0x0000, + 0x0000, MB2(0x9F9D), 0x0000, MB2(0x89CD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x95A6), MB2(0x96FB), MB2(0x9F9F), MB2(0x8EA1), + MB2(0x8FC0), MB2(0x9F98), MB2(0x9F9E), MB2(0x8988), + 0x0000, MB2(0x8BB5), 0x0000, 0x0000, /* 6CC0 */ + MB2(0x9F95), MB2(0x9F9A), 0x0000, 0x0000, + 0x0000, MB2(0x90F2), MB2(0x9491), 0x0000, + MB2(0x94E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F97), + 0x0000, MB2(0x9640), 0x0000, MB2(0x9F99), + 0x0000, MB2(0x9FA2), MB2(0xFAF9), MB2(0x9FA0), + 0x0000, MB2(0x9F9B), 0x0000, 0x0000, + 0x0000, MB2(0x9641), MB2(0x9467), MB2(0x8B83), /* 6CE0 */ + 0x0000, MB2(0x9344), 0x0000, 0x0000, + MB2(0x928D), 0x0000, MB2(0x9FA3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FA1), + MB2(0x91D7), MB2(0x9F96), 0x0000, MB2(0x896A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + MB2(0xFAFA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x976D), + MB2(0x9FAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FAD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90F4), + 0x0000, MB2(0x9FAA), 0x0000, MB2(0x978C), + 0x0000, 0x0000, MB2(0x93B4), MB2(0x9FA4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, MB2(0x92C3), 0x0000, 0x0000, + 0x0000, MB2(0x896B), MB2(0x8D5E), MB2(0x9FA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F46), MB2(0x9FAC), + 0x0000, MB2(0x9FAB), MB2(0x9FA6), 0x0000, + MB2(0x9FA9), 0x0000, 0x0000, MB2(0x8A88), + 0x0000, MB2(0x9FA8), MB2(0x9468), 0x0000, + 0x0000, MB2(0x97AC), 0x0000, 0x0000, /* 6D40 */ + MB2(0x8FF2), MB2(0x90F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9FB4), MB2(0x9FB2), 0x0000, + MB2(0x956C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FAF), /* 6D60 */ + MB2(0x9FB1), 0x0000, MB2(0x8959), 0x0000, + 0x0000, MB2(0x8D5F), MB2(0x9851), 0x0000, + MB2(0x8A5C), 0x0000, MB2(0x9582), MB2(0xFAFC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9781), 0x0000, 0x0000, MB2(0x8A43), + MB2(0x905A), MB2(0x9FB3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, MB2(0x9FB8), 0x0000, MB2(0xFAFB), + MB2(0x8FC1), 0x0000, 0x0000, 0x0000, + MB2(0x974F), 0x0000, MB2(0x9FB5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FB0), + 0x0000, MB2(0x9FB6), MB2(0xFB40), 0x0000, + 0x0000, MB2(0x97DC), 0x0000, MB2(0x9393), + MB2(0x93C0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFB41), 0x0000, 0x0000, MB2(0x8A55), + 0x0000, 0x0000, MB2(0x8974), 0x0000, + 0x0000, MB2(0x9FBC), 0x0000, 0x0000, + MB2(0x9FBF), 0x0000, 0x0000, 0x0000, + MB2(0x97C1), 0x0000, 0x0000, 0x0000, + MB2(0x9784), 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, MB2(0x9FC6), MB2(0x9FC0), MB2(0x9FBD), + 0x0000, 0x0000, 0x0000, MB2(0x97D2), + MB2(0x9FC3), 0x0000, 0x0000, MB2(0xFB42), + 0x0000, MB2(0x8F69), MB2(0x9FC5), 0x0000, + 0x0000, MB2(0x9FCA), 0x0000, 0x0000, + MB2(0x9391), MB2(0x9FC8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FC2), 0x0000, + 0x0000, MB2(0x9257), 0x0000, 0x0000, /* 6DE0 */ + MB2(0x9FC9), 0x0000, MB2(0x9FBE), 0x0000, + MB2(0x9FC4), 0x0000, MB2(0x9FCB), MB2(0x88FA), + MB2(0x9FC1), 0x0000, MB2(0x9FCC), 0x0000, + 0x0000, MB2(0x905B), MB2(0xFB44), MB2(0x8F7E), + 0x0000, MB2(0x95A3), 0x0000, MB2(0x8DAC), + MB2(0xFB43), MB2(0x9FB9), MB2(0x9FC7), MB2(0x9359), + MB2(0xFB45), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, MB2(0x90B4), 0x0000, MB2(0x8A89), + MB2(0x8DCF), MB2(0x8FC2), MB2(0x9FBB), MB2(0x8F61), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C6B), + 0x0000, MB2(0x9FBA), 0x0000, 0x0000, + 0x0000, MB2(0x9FD0), MB2(0x8F8D), MB2(0x8CB8), + 0x0000, MB2(0x9FDF), 0x0000, MB2(0x9FD9), + MB2(0x8B94), MB2(0x936E), 0x0000, MB2(0x9FD4), /* 6E20 */ + MB2(0x9FDD), MB2(0x88AD), MB2(0x8951), MB2(0xFB48), + 0x0000, MB2(0x89B7), 0x0000, MB2(0x9FD6), + MB2(0x91AA), MB2(0x9FCD), MB2(0x9FCF), MB2(0x8D60), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9FE0), MB2(0xFB46), MB2(0x9FDB), 0x0000, + MB2(0xFB49), 0x0000, MB2(0x9FD3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FDA), /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96A9), 0x0000, + 0x0000, MB2(0x9FD8), MB2(0x9FDC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CCE), 0x0000, + MB2(0x8FC3), 0x0000, 0x0000, MB2(0x9258), + MB2(0xFB47), 0x0000, 0x0000, MB2(0x9FD2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, MB2(0x974E), + 0x0000, 0x0000, 0x0000, MB2(0x9FD5), + 0x0000, 0x0000, MB2(0x9FCE), MB2(0x9392), + 0x0000, 0x0000, MB2(0x9FD1), 0x0000, + 0x0000, 0x0000, MB2(0x9FD7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9870), MB2(0x8EBC), + MB2(0x969E), 0x0000, MB2(0x9FE1), 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x94AC), 0x0000, 0x0000, MB2(0x9FED), + MB2(0x8CB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F80), 0x0000, + MB2(0x9FE3), 0x0000, 0x0000, 0x0000, + MB2(0x97AD), MB2(0x8D61), 0x0000, MB2(0x9FF0), + 0x0000, 0x0000, MB2(0x88EC), 0x0000, /* 6EA0 */ + 0x0000, MB2(0x9FEE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FE2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FE8), + 0x0000, 0x0000, MB2(0x9FEA), 0x0000, + 0x0000, 0x0000, MB2(0x976E), MB2(0x9FE5), + 0x0000, 0x0000, MB2(0x934D), 0x0000, + 0x0000, MB2(0x9FE7), 0x0000, MB2(0xFB4A), + 0x0000, 0x0000, MB2(0x9FEF), 0x0000, /* 6EC0 */ + MB2(0x9FE9), MB2(0x96C5), 0x0000, 0x0000, + 0x0000, MB2(0x9FE4), 0x0000, MB2(0x8EA0), + MB2(0x9FFC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A8A), 0x0000, MB2(0x9FE6), + MB2(0x9FEB), MB2(0x9FEC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91EA), MB2(0x91D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9FF4), 0x0000, 0x0000, MB2(0x9FFA), + 0x0000, 0x0000, MB2(0x9FF8), 0x0000, + MB2(0x9348), 0x0000, 0x0000, MB2(0xE042), + MB2(0x9FF5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FF6), MB2(0x9FDE), + 0x0000, MB2(0x8B99), MB2(0x9559), 0x0000, /* 6F00 */ + 0x0000, 0x0000, MB2(0x8EBD), 0x0000, + 0x0000, MB2(0x8D97), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9852), + 0x0000, MB2(0x9FF2), 0x0000, MB2(0xE041), + MB2(0x8989), MB2(0x9186), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9499), 0x0000, MB2(0x8ABF), MB2(0x97F8), /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x969F), + MB2(0x92D0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9FF9), MB2(0x9FFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9151), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE040), MB2(0x9FF7), + 0x0000, MB2(0x9FF1), 0x0000, 0x0000, /* 6F40 */ + 0x0000, MB2(0x8AC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C89), 0x0000, 0x0000, 0x0000, + MB2(0xE04E), 0x0000, 0x0000, MB2(0xE049), + MB2(0x90F6), 0x0000, 0x0000, MB2(0x8A83), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + MB2(0x8F81), 0x0000, MB2(0xE052), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE04B), MB2(0x92AA), MB2(0xE048), + MB2(0x92D7), 0x0000, 0x0000, 0x0000, + MB2(0xE06B), 0x0000, 0x0000, 0x0000, + MB2(0xE045), 0x0000, MB2(0xE044), 0x0000, + MB2(0xE04D), 0x0000, 0x0000, 0x0000, + MB2(0xE047), MB2(0xE046), MB2(0xE04C), 0x0000, /* 6F80 */ + MB2(0x909F), 0x0000, MB2(0xE043), 0x0000, + MB2(0xFB4B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE04F), 0x0000, + 0x0000, MB2(0xE050), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE055), 0x0000, MB2(0xE054), /* 6FA0 */ + MB2(0xE056), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE059), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9362), 0x0000, MB2(0xE053), + 0x0000, MB2(0xFB4C), 0x0000, 0x0000, + 0x0000, MB2(0xE057), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C83), MB2(0x91F7), MB2(0xE051), MB2(0x945A), /* 6FC0 */ + 0x0000, 0x0000, MB2(0xE058), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE05D), MB2(0xE05B), 0x0000, 0x0000, + MB2(0xE05E), 0x0000, 0x0000, MB2(0xE061), + 0x0000, 0x0000, 0x0000, MB2(0xE05A), + MB2(0x8D8A), MB2(0x9447), 0x0000, 0x0000, /* 6FE0 */ + MB2(0x9FB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9794), + MB2(0xE05C), 0x0000, MB2(0xE060), MB2(0x91F3), + 0x0000, MB2(0xE05F), 0x0000, MB2(0xE04A), + 0x0000, MB2(0xFB4D), MB2(0xE889), 0x0000, + 0x0000, 0x0000, MB2(0xE064), 0x0000, + 0x0000, 0x0000, MB2(0xE068), 0x0000, + 0x0000, MB2(0xE066), 0x0000, 0x0000, /* 7000 */ + 0x0000, MB2(0xFB4E), 0x0000, MB2(0xFB4F), + 0x0000, MB2(0xE062), 0x0000, MB2(0xE063), + 0x0000, 0x0000, 0x0000, MB2(0xE067), + 0x0000, MB2(0xE065), 0x0000, 0x0000, + 0x0000, MB2(0x956D), 0x0000, 0x0000, + MB2(0xE06D), 0x0000, MB2(0xE06A), MB2(0xE069), + 0x0000, MB2(0xE06C), MB2(0x93D2), MB2(0xE06E), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, MB2(0x9295), MB2(0x91EB), + MB2(0xFB50), 0x0000, 0x0000, 0x0000, + MB2(0x90A3), 0x0000, 0x0000, 0x0000, + MB2(0xE06F), 0x0000, MB2(0xE071), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE070), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9FF3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE072), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x93E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE073), /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89CE), + 0x0000, 0x0000, 0x0000, MB2(0x9394), + MB2(0x8A44), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B84), 0x0000, 0x0000, 0x0000, + MB2(0x8EDC), MB2(0x8DD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, MB2(0xFB51), 0x0000, 0x0000, + 0x0000, MB2(0x9846), MB2(0x9086), 0x0000, + 0x0000, 0x0000, MB2(0x898A), 0x0000, + 0x0000, 0x0000, MB2(0xE075), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE074), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFB52), + MB2(0xE078), MB2(0x9259), MB2(0xE07B), MB2(0xE076), + 0x0000, 0x0000, 0x0000, MB2(0xE07A), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE079), MB2(0x935F), MB2(0x88D7), MB2(0xFA62), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x97F3), 0x0000, 0x0000, MB2(0xE07D), + 0x0000, 0x0000, 0x0000, MB2(0x8947), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE080), 0x0000, 0x0000, + 0x0000, MB2(0xE07E), 0x0000, MB2(0xE07C), + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE077), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9642), 0x0000, 0x0000, + 0x0000, MB2(0xE082), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + MB2(0xFB54), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE081), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFB53), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x898B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE084), MB2(0x95B0), 0x0000, + MB2(0xE083), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x96B3), 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, MB2(0x8FC5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9152), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FC4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, MB2(0xFB56), MB2(0xFB57), + 0x0000, MB2(0x97F9), 0x0000, 0x0000, + MB2(0xE08A), 0x0000, MB2(0x90F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE086), MB2(0xE08B), 0x0000, + 0x0000, MB2(0x898C), 0x0000, 0x0000, + MB2(0xFB55), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE089), 0x0000, /* 7160 */ + MB2(0x9481), MB2(0xE085), MB2(0xE088), MB2(0x8FC6), + 0x0000, MB2(0x94CF), 0x0000, 0x0000, + MB2(0xE08C), 0x0000, MB2(0x8ECF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x90F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + MB2(0xE08F), 0x0000, 0x0000, 0x0000, + MB2(0xE087), 0x0000, MB2(0x8C46), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE08D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x976F), MB2(0xE090), 0x0000, 0x0000, + 0x0000, MB2(0xEAA4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F6E), + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE091), 0x0000, 0x0000, 0x0000, + MB2(0xE092), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x944D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE094), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE095), 0x0000, + 0x0000, MB2(0xFB59), 0x0000, MB2(0x9452), /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9395), MB2(0xE097), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE099), 0x0000, + MB2(0x97D3), 0x0000, MB2(0xE096), 0x0000, + MB2(0xE098), MB2(0x898D), 0x0000, MB2(0xE093), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A7A), + MB2(0xE09A), 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, MB2(0x9187), MB2(0x8E57), MB2(0xE09C), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE09B), MB2(0x9043), MB2(0x99D7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE09D), 0x0000, 0x0000, + 0x0000, MB2(0xE09F), 0x0000, MB2(0xE08E), + MB2(0xE09E), 0x0000, MB2(0xFB5A), MB2(0xE0A0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, MB2(0x949A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0A1), 0x0000, 0x0000, + MB2(0xE0A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0A3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0A4), 0x0000, MB2(0x92DC), 0x0000, + MB2(0xE0A6), MB2(0xE0A5), 0x0000, 0x0000, + MB2(0xE0A7), 0x0000, MB2(0xE0A8), 0x0000, + 0x0000, MB2(0x8EDD), MB2(0x9583), 0x0000, + 0x0000, 0x0000, MB2(0x96EA), MB2(0xE0A9), + MB2(0xE0AA), MB2(0x9175), MB2(0x8EA2), MB2(0xE0AB), + MB2(0xE0AC), 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, MB2(0xE0AD), MB2(0x95D0), + MB2(0x94C5), 0x0000, 0x0000, MB2(0xE0AE), + MB2(0x9476), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0AF), MB2(0x89E5), 0x0000, MB2(0x8B8D), + 0x0000, MB2(0x96C4), 0x0000, MB2(0x96B4), + 0x0000, MB2(0x89B2), MB2(0x9853), 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, MB2(0x9671), + 0x0000, MB2(0x95A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x90B5), 0x0000, + MB2(0xE0B0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93C1), 0x0000, 0x0000, + 0x0000, MB2(0x8CA1), MB2(0xE0B1), 0x0000, + MB2(0x8DD2), MB2(0xE0B3), MB2(0xE0B2), 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0B5), 0x0000, + 0x0000, 0x0000, MB2(0xE0B6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B5D), 0x0000, MB2(0xE0B7), 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0B8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8CA2), 0x0000, 0x0000, MB2(0x94C6), + 0x0000, MB2(0xFB5B), MB2(0xE0BA), 0x0000, + 0x0000, 0x0000, MB2(0x8FF3), 0x0000, + 0x0000, MB2(0xE0B9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFB5C), 0x0000, + 0x0000, 0x0000, MB2(0x8BB6), MB2(0xE0BB), /* 72C0 */ + MB2(0xE0BD), 0x0000, MB2(0xE0BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0BE), 0x0000, + MB2(0x8CCF), 0x0000, MB2(0xE0BF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8BE7), + 0x0000, MB2(0x915F), 0x0000, MB2(0x8D9D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0C1), MB2(0xE0C2), MB2(0xE0C0), 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EEB), 0x0000, 0x0000, + MB2(0x93C6), MB2(0x8BB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0C4), + MB2(0x924B), MB2(0xE0C3), 0x0000, 0x0000, + MB2(0x9854), MB2(0x9482), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C9), MB2(0xE0C6), + 0x0000, 0x0000, 0x0000, MB2(0x96D2), + MB2(0xE0C8), MB2(0xE0CA), 0x0000, MB2(0x97C2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + MB2(0xFB5D), MB2(0xE0CE), 0x0000, 0x0000, + 0x0000, MB2(0xE0CD), MB2(0x9296), MB2(0x944C), + 0x0000, 0x0000, MB2(0x8CA3), MB2(0xE0CC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0CB), 0x0000, MB2(0x9750), MB2(0x9751), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0CF), MB2(0x898E), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + MB2(0x8D96), MB2(0x8E82), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D0), MB2(0xE0D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F62), /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D5), 0x0000, MB2(0xE0D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D6), 0x0000, MB2(0x8A6C), 0x0000, + 0x0000, MB2(0xE0D8), 0x0000, MB2(0xFB5F), + MB2(0xE0D7), 0x0000, MB2(0xE0DA), MB2(0xE0D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + MB2(0x8CBA), 0x0000, 0x0000, MB2(0x97A6), + 0x0000, MB2(0x8BCA), 0x0000, MB2(0x89A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BE8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8ADF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97E6), MB2(0xE0DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0DE), + 0x0000, MB2(0xFB60), 0x0000, 0x0000, + MB2(0xE0DF), 0x0000, MB2(0x89CF), 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DB), MB2(0xFB61), MB2(0x8E58), 0x0000, + 0x0000, MB2(0x92BF), MB2(0xE0DD), 0x0000, + 0x0000, 0x0000, MB2(0xFB64), 0x0000, + 0x0000, 0x0000, MB2(0xFB62), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0E2), 0x0000, + MB2(0x8EEC), 0x0000, 0x0000, MB2(0xFB63), /* 73E0 */ + 0x0000, MB2(0xE0E0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C5D), 0x0000, + 0x0000, MB2(0x94C7), MB2(0xE0E1), 0x0000, + 0x0000, MB2(0xE0FC), 0x0000, 0x0000, + 0x0000, MB2(0xFB66), 0x0000, 0x0000, + MB2(0xE0E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CBB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B85), /* 7400 */ + 0x0000, MB2(0xE0E4), MB2(0x979D), MB2(0xFB65), + 0x0000, MB2(0x97AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91F4), 0x0000, /* 7420 */ + 0x0000, MB2(0xE0E6), MB2(0xFB67), 0x0000, + 0x0000, MB2(0xFB69), MB2(0xFB68), 0x0000, + 0x0000, 0x0000, MB2(0xFB6A), 0x0000, + 0x0000, 0x0000, MB2(0xE0E8), MB2(0x97D4), + MB2(0x8BD5), MB2(0x94FA), MB2(0x9469), 0x0000, + 0x0000, 0x0000, MB2(0xE0E9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0EB), + 0x0000, MB2(0xE0EE), 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0EA), 0x0000, 0x0000, + 0x0000, MB2(0xE0ED), MB2(0x8CE8), MB2(0x896C), + MB2(0xE0EF), 0x0000, MB2(0x9090), MB2(0xE0EC), + MB2(0x97DA), 0x0000, MB2(0xFB6B), MB2(0xE0F2), /* 7460 */ + MB2(0xEAA2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0F0), MB2(0xE0F3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E5), + MB2(0xE0F1), 0x0000, 0x0000, MB2(0x8DBA), + 0x0000, 0x0000, MB2(0xE0F4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x979E), /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFB6C), 0x0000, MB2(0xE0F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F7), MB2(0xFB6D), + 0x0000, 0x0000, MB2(0xE0E3), 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AC2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EA3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0FA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x895A), 0x0000, 0x0000, 0x0000, + MB2(0xE140), 0x0000, MB2(0x955A), MB2(0xE141), /* 74E0 */ + 0x0000, 0x0000, MB2(0x8AA2), MB2(0xE142), + 0x0000, MB2(0xE143), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE144), 0x0000, + MB2(0xE146), MB2(0xE147), MB2(0xE145), 0x0000, + 0x0000, 0x0000, MB2(0x9572), MB2(0xE149), + MB2(0xE148), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFB6E), 0x0000, MB2(0xE14B), /* 7500 */ + MB2(0xE14A), MB2(0xE14C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE14D), MB2(0xE14F), MB2(0xE14E), 0x0000, + 0x0000, MB2(0x8D99), 0x0000, MB2(0xE151), + 0x0000, MB2(0xE150), 0x0000, 0x0000, + MB2(0x8AC3), 0x0000, MB2(0x9072), 0x0000, + MB2(0x935B), 0x0000, MB2(0xE152), MB2(0x90B6), + 0x0000, 0x0000, 0x0000, MB2(0x8E59), /* 7520 */ + 0x0000, MB2(0x8999), MB2(0xE153), 0x0000, + MB2(0x9770), 0x0000, 0x0000, MB2(0x95E1), + MB2(0xE154), 0x0000, 0x0000, MB2(0xFAA8), + MB2(0x9363), MB2(0x9752), MB2(0x8D62), MB2(0x905C), + 0x0000, 0x0000, 0x0000, MB2(0x926A), + MB2(0x99B2), 0x0000, MB2(0x92AC), MB2(0x89E6), + MB2(0xE155), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + MB2(0xE156), 0x0000, MB2(0xE15B), 0x0000, + 0x0000, MB2(0xE159), MB2(0xE158), MB2(0x9DC0), + MB2(0x8A45), MB2(0xE157), 0x0000, MB2(0x88D8), + 0x0000, MB2(0x94A8), 0x0000, 0x0000, + MB2(0x94C8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x97AF), MB2(0xE15C), MB2(0xE15A), + MB2(0x927B), MB2(0x90A4), 0x0000, 0x0000, + MB2(0x94A9), 0x0000, MB2(0x954C), 0x0000, /* 7560 */ + MB2(0xE15E), MB2(0x97AA), MB2(0x8C6C), MB2(0xE15F), + 0x0000, MB2(0xE15D), MB2(0x94D4), MB2(0xE160), + 0x0000, MB2(0xE161), 0x0000, MB2(0xFB6F), + MB2(0x88D9), 0x0000, 0x0000, MB2(0x8FF4), + MB2(0xE166), 0x0000, MB2(0xE163), MB2(0x93EB), + MB2(0xE162), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B45), + 0x0000, 0x0000, MB2(0xE169), 0x0000, /* 7580 */ + 0x0000, 0x0000, MB2(0xE164), MB2(0xE165), + 0x0000, MB2(0xE168), MB2(0xE167), MB2(0x9544), + 0x0000, 0x0000, MB2(0x9161), MB2(0x9160), + 0x0000, MB2(0x8B5E), 0x0000, 0x0000, + MB2(0xE16A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE16B), 0x0000, + 0x0000, MB2(0xE16C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE16E), /* 75A0 */ + 0x0000, MB2(0xE16D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8975), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE176), MB2(0x94E6), MB2(0xE170), + 0x0000, MB2(0xE172), 0x0000, 0x0000, + MB2(0xE174), MB2(0x905D), 0x0000, 0x0000, + MB2(0xE175), MB2(0xE173), MB2(0x8EBE), 0x0000, + 0x0000, 0x0000, MB2(0xE16F), MB2(0xE171), /* 75C0 */ + 0x0000, MB2(0x9561), 0x0000, MB2(0x8FC7), + 0x0000, 0x0000, MB2(0xE178), 0x0000, + 0x0000, MB2(0xE177), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE179), 0x0000, + MB2(0x8EA4), MB2(0x8DAD), 0x0000, 0x0000, + MB2(0x9397), MB2(0xE17A), 0x0000, MB2(0x92C9), + 0x0000, 0x0000, MB2(0xE17C), 0x0000, + 0x0000, 0x0000, MB2(0x979F), MB2(0xE17B), /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9189), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE182), 0x0000, MB2(0xE184), MB2(0xE185), + MB2(0x9273), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE183), 0x0000, + MB2(0xE180), 0x0000, MB2(0xE17D), MB2(0xE17E), + 0x0000, MB2(0xE181), 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE188), 0x0000, MB2(0xE186), + 0x0000, MB2(0xE187), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE189), + MB2(0xE18B), MB2(0xE18C), MB2(0xE18D), 0x0000, /* 7620 */ + MB2(0xE18E), 0x0000, 0x0000, MB2(0xE18A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE190), 0x0000, 0x0000, 0x0000, + MB2(0xE18F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE191), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97C3), 0x0000, /* 7640 */ + 0x0000, 0x0000, MB2(0xE194), MB2(0xE192), + MB2(0xE193), 0x0000, 0x0000, 0x0000, + MB2(0x8AE0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96FC), 0x0000, + 0x0000, 0x0000, MB2(0x95C8), 0x0000, + MB2(0xE196), 0x0000, 0x0000, 0x0000, + MB2(0xE195), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE197), MB2(0xE198), 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE19C), + MB2(0xE199), MB2(0xE19A), MB2(0xE19B), 0x0000, + MB2(0xE19D), 0x0000, 0x0000, 0x0000, + MB2(0xE19E), 0x0000, MB2(0xE19F), 0x0000, + 0x0000, 0x0000, MB2(0xE1A0), 0x0000, + MB2(0xE1A1), 0x0000, MB2(0x94AD), MB2(0x936F), + MB2(0xE1A2), MB2(0x9492), MB2(0x9553), 0x0000, + MB2(0xE1A3), 0x0000, MB2(0xFB70), MB2(0xE1A4), /* 7680 */ + MB2(0x9349), 0x0000, MB2(0x8A46), MB2(0x8D63), + MB2(0xE1A5), 0x0000, 0x0000, MB2(0xE1A6), + 0x0000, 0x0000, MB2(0xE1A7), 0x0000, + MB2(0x8E48), 0x0000, 0x0000, MB2(0xE1A9), + 0x0000, 0x0000, MB2(0xE1A8), 0x0000, + 0x0000, MB2(0xE1AA), MB2(0xE1AB), MB2(0xFB73), + MB2(0xFB71), 0x0000, MB2(0xFB72), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, MB2(0xFB74), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94E7), 0x0000, + MB2(0xE1AC), 0x0000, 0x0000, 0x0000, + MB2(0xE1AD), 0x0000, 0x0000, MB2(0xEA89), + MB2(0xE1AE), MB2(0xE1AF), MB2(0xE1B0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E4D), + 0x0000, 0x0000, MB2(0xE1B1), MB2(0x9475), /* 76C0 */ + 0x0000, 0x0000, MB2(0x967E), 0x0000, + MB2(0x896D), 0x0000, MB2(0x8976), 0x0000, + 0x0000, MB2(0xE1B2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1B4), 0x0000, + 0x0000, 0x0000, MB2(0xE1B3), MB2(0x9390), + 0x0000, 0x0000, 0x0000, MB2(0x90B7), + MB2(0x9F58), 0x0000, MB2(0xE1B5), MB2(0x96BF), + 0x0000, MB2(0xE1B6), 0x0000, MB2(0x8AC4), /* 76E0 */ + MB2(0x94D5), MB2(0xE1B7), 0x0000, MB2(0xE1B8), + 0x0000, 0x0000, MB2(0xE1B9), 0x0000, + 0x0000, 0x0000, MB2(0x96DA), 0x0000, + 0x0000, 0x0000, MB2(0x96D3), 0x0000, + MB2(0x92BC), 0x0000, 0x0000, 0x0000, + MB2(0x918A), 0x0000, 0x0000, MB2(0xE1BB), + 0x0000, 0x0000, MB2(0x8F82), 0x0000, + 0x0000, MB2(0x8FC8), 0x0000, 0x0000, /* 7700 */ + MB2(0xE1BE), 0x0000, 0x0000, MB2(0xE1BD), + MB2(0xE1BC), MB2(0x94FB), 0x0000, MB2(0x8AC5), + MB2(0x8CA7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1C4), + 0x0000, 0x0000, MB2(0xE1C1), MB2(0x905E), + MB2(0x96B0), 0x0000, 0x0000, 0x0000, /* 7720 */ + MB2(0xE1C0), MB2(0xE1C2), MB2(0xE1C3), 0x0000, + 0x0000, MB2(0xE1BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1C5), + MB2(0xE1C6), 0x0000, MB2(0x92AD), 0x0000, + MB2(0x8AE1), 0x0000, 0x0000, 0x0000, + MB2(0x9285), 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, MB2(0xFB76), MB2(0xE1C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1C8), MB2(0xE1CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9087), 0x0000, MB2(0x93C2), /* 7760 */ + 0x0000, MB2(0xE1CC), MB2(0x9672), 0x0000, + MB2(0xE1C9), 0x0000, 0x0000, MB2(0xE1CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1CF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1CE), MB2(0xE1CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1D1), + 0x0000, 0x0000, MB2(0xE1D0), 0x0000, + 0x0000, MB2(0xE1D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1D4), 0x0000, + MB2(0xE1D3), 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, MB2(0x95CB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F75), MB2(0x97C4), 0x0000, 0x0000, + MB2(0xE1D5), 0x0000, 0x0000, MB2(0x93B5), + 0x0000, 0x0000, MB2(0xE1D6), 0x0000, + 0x0000, MB2(0xE1D7), 0x0000, MB2(0xE1DB), + MB2(0xE1D9), MB2(0xE1DA), 0x0000, MB2(0xE1D8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1DE), + 0x0000, 0x0000, MB2(0xE1DF), MB2(0x96B5), + MB2(0xE1E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96EE), MB2(0xE1E1), /* 77E0 */ + 0x0000, MB2(0x926D), 0x0000, MB2(0x948A), + 0x0000, MB2(0x8BE9), 0x0000, 0x0000, + 0x0000, MB2(0x925A), MB2(0xE1E2), MB2(0x8BB8), + 0x0000, 0x0000, 0x0000, MB2(0x90CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DBB), 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1E5), 0x0000, + MB2(0x8CA4), MB2(0x8DD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E7), MB2(0xFB78), 0x0000, 0x0000, /* 7820 */ + 0x0000, MB2(0x9375), MB2(0x8DD4), MB2(0x8B6D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9643), 0x0000, + MB2(0x946A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9376), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D7B), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, MB2(0xE1E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFB79), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FC9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + MB2(0xFB7A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97B0), + MB2(0x8D64), 0x0000, 0x0000, MB2(0x8CA5), + 0x0000, 0x0000, MB2(0x94A1), 0x0000, + MB2(0xE1EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFB7B), 0x0000, + MB2(0xE1ED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8CE9), 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, MB2(0xE1EC), MB2(0x92F4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1EF), MB2(0x8A56), MB2(0xE1EA), 0x0000, + 0x0000, MB2(0x94E8), 0x0000, MB2(0x894F), + 0x0000, MB2(0x8DEA), 0x0000, MB2(0x9871), + 0x0000, 0x0000, MB2(0xE1EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1F0), /* 78A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x95C9), + 0x0000, MB2(0x90D7), MB2(0xE1F2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1F1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8A6D), 0x0000, + MB2(0xE1F9), 0x0000, MB2(0xE1F8), 0x0000, + 0x0000, MB2(0x8EA5), 0x0000, 0x0000, /* 78C0 */ + 0x0000, MB2(0xE1FA), MB2(0xE1F5), 0x0000, + 0x0000, 0x0000, MB2(0xE1FB), MB2(0xE1F6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x94D6), MB2(0xE1F4), 0x0000, 0x0000, + MB2(0xE1F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE241), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE240), + MB2(0x9681), 0x0000, 0x0000, 0x0000, + MB2(0xE1FC), 0x0000, 0x0000, MB2(0x88E9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE243), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE242), 0x0000, 0x0000, + 0x0000, MB2(0x8FCA), 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, MB2(0xE244), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9162), 0x0000, + 0x0000, MB2(0xE246), MB2(0xE245), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE247), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, MB2(0xE1E6), 0x0000, + 0x0000, 0x0000, MB2(0xE1E8), MB2(0xE249), + MB2(0xE248), 0x0000, 0x0000, 0x0000, + MB2(0xFB7C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EA6), 0x0000, + MB2(0x97E7), 0x0000, MB2(0x8ED0), 0x0000, + MB2(0xE24A), MB2(0x8C56), 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, MB2(0x8B5F), + MB2(0x8B46), MB2(0x8E83), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9753), 0x0000, 0x0000, MB2(0xE250), + 0x0000, MB2(0xE24F), MB2(0x9163), MB2(0xE24C), + 0x0000, 0x0000, MB2(0xE24E), 0x0000, + 0x0000, MB2(0x8F6A), MB2(0x905F), MB2(0xE24D), + MB2(0xE24B), 0x0000, MB2(0x9449), 0x0000, /* 7960 */ + 0x0000, MB2(0x8FCB), 0x0000, 0x0000, + MB2(0x955B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8DD5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9398), + 0x0000, 0x0000, MB2(0xE251), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE252), + MB2(0xE268), MB2(0x8BD6), 0x0000, 0x0000, /* 7980 */ + MB2(0x985C), MB2(0x9154), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE253), 0x0000, + 0x0000, MB2(0x89D0), MB2(0x92F5), MB2(0x959F), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFB81), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFB83), + 0x0000, MB2(0xE254), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, MB2(0x8B9A), MB2(0xE255), + 0x0000, 0x0000, MB2(0xE257), 0x0000, + 0x0000, 0x0000, MB2(0xE258), 0x0000, + MB2(0x9448), 0x0000, 0x0000, MB2(0xE259), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE25A), MB2(0xE25B), 0x0000, + 0x0000, MB2(0x8BD7), MB2(0x89D1), MB2(0x93C3), + MB2(0x8F47), MB2(0x8E84), 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE25C), 0x0000, MB2(0x8F48), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x89C8), MB2(0x9562), 0x0000, + 0x0000, MB2(0xE25D), 0x0000, 0x0000, + MB2(0x94E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9164), + 0x0000, MB2(0xE260), 0x0000, MB2(0xE261), /* 79E0 */ + MB2(0x9489), 0x0000, MB2(0x9060), MB2(0xE25E), + 0x0000, MB2(0x9281), 0x0000, 0x0000, + MB2(0xE25F), 0x0000, 0x0000, 0x0000, + MB2(0x8FCC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88DA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B48), 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE262), 0x0000, 0x0000, MB2(0x92F6), + 0x0000, MB2(0xE263), MB2(0x90C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x96AB), 0x0000, 0x0000, MB2(0x9542), + MB2(0xE264), MB2(0xE265), MB2(0x9274), 0x0000, + MB2(0x97C5), 0x0000, 0x0000, MB2(0xE267), + MB2(0xE266), 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EED), 0x0000, + 0x0000, MB2(0xE269), MB2(0x88EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE26C), + 0x0000, 0x0000, 0x0000, MB2(0xE26A), + MB2(0x89D2), MB2(0x8C6D), MB2(0xE26B), MB2(0x8D65), + MB2(0x8D92), 0x0000, MB2(0x95E4), MB2(0xE26D), /* 7A40 */ + 0x0000, 0x0000, MB2(0x9673), 0x0000, + 0x0000, MB2(0xE26F), 0x0000, 0x0000, + 0x0000, MB2(0x90CF), MB2(0x896E), MB2(0x89B8), + MB2(0x88AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE26E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE270), MB2(0xE271), MB2(0x8FF5), /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE272), 0x0000, MB2(0x8A6E), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE274), 0x0000, 0x0000, 0x0000, + MB2(0x8C8A), 0x0000, MB2(0x8B86), 0x0000, + 0x0000, MB2(0xE275), MB2(0x8BF3), 0x0000, + 0x0000, MB2(0xE276), 0x0000, MB2(0x90FA), + 0x0000, MB2(0x93CB), 0x0000, MB2(0x90DE), /* 7A80 */ + MB2(0x8DF3), 0x0000, 0x0000, 0x0000, + MB2(0xE277), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9282), MB2(0x918B), + 0x0000, MB2(0xE279), MB2(0xE27B), MB2(0xE278), + MB2(0xE27A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C41), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE27C), MB2(0x8C45), 0x0000, + 0x0000, 0x0000, MB2(0x8B87), MB2(0x9771), + MB2(0xE27E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE280), 0x0000, + 0x0000, 0x0000, MB2(0x894D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE283), + 0x0000, 0x0000, 0x0000, MB2(0x8A96), /* 7AC0 */ + MB2(0xE282), MB2(0xE281), 0x0000, MB2(0xE285), + MB2(0xE27D), 0x0000, MB2(0xE286), MB2(0x97A7), + 0x0000, MB2(0xE287), 0x0000, MB2(0xE288), + 0x0000, MB2(0xFB84), MB2(0x9AF2), MB2(0xE28A), + 0x0000, MB2(0xE289), 0x0000, 0x0000, + 0x0000, MB2(0xE28B), MB2(0xE28C), 0x0000, + MB2(0x97B3), MB2(0xE28D), 0x0000, MB2(0xE8ED), + MB2(0x8FCD), MB2(0xE28E), MB2(0xE28F), MB2(0x8F76), /* 7AE0 */ + 0x0000, MB2(0x93B6), MB2(0xE290), MB2(0xFB85), + 0x0000, 0x0000, MB2(0x9247), MB2(0xFB87), + 0x0000, MB2(0xE291), 0x0000, MB2(0x925B), + MB2(0xE292), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BA3), 0x0000, + MB2(0x995E), MB2(0x927C), MB2(0x8EB1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AC6), + 0x0000, 0x0000, MB2(0xE293), 0x0000, /* 7B00 */ + MB2(0xE2A0), 0x0000, MB2(0xE296), 0x0000, + MB2(0x8B88), 0x0000, MB2(0xE295), MB2(0xE2A2), + 0x0000, 0x0000, 0x0000, MB2(0xE294), + 0x0000, MB2(0x8FCE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE298), MB2(0xE299), 0x0000, MB2(0x934A), + 0x0000, 0x0000, MB2(0xE29A), 0x0000, + MB2(0x8A7D), 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, MB2(0x9079), MB2(0x9584), 0x0000, + MB2(0xE29C), 0x0000, 0x0000, 0x0000, + MB2(0x91E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE297), + 0x0000, MB2(0xE29B), MB2(0xE29D), 0x0000, + 0x0000, MB2(0x8DF9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, MB2(0xE2A4), MB2(0x954D), 0x0000, + MB2(0x94A4), MB2(0x9399), 0x0000, MB2(0x8BD8), + MB2(0xE2A3), MB2(0xE2A1), 0x0000, MB2(0x94B3), + MB2(0xE29E), MB2(0x927D), MB2(0x939B), 0x0000, + MB2(0x939A), 0x0000, MB2(0x8DF4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, MB2(0xE2A6), 0x0000, MB2(0xE2A8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2AB), 0x0000, MB2(0xE2AC), 0x0000, + MB2(0xE2A9), MB2(0xE2AA), 0x0000, 0x0000, + MB2(0xE2A7), MB2(0xE2A5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE29F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, MB2(0x95CD), MB2(0x89D3), + 0x0000, 0x0000, 0x0000, MB2(0xE2B3), + 0x0000, MB2(0xE2B0), 0x0000, MB2(0xE2B5), + 0x0000, 0x0000, MB2(0xE2B4), 0x0000, + MB2(0x9493), MB2(0x96A5), 0x0000, MB2(0x8E5A), + MB2(0xE2AE), MB2(0xE2B7), MB2(0xE2B2), 0x0000, + MB2(0xE2B1), MB2(0xE2AD), MB2(0xFB88), MB2(0xE2AF), + 0x0000, MB2(0x8AC7), 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x925C), 0x0000, + 0x0000, MB2(0x90FB), 0x0000, 0x0000, + 0x0000, MB2(0x94A0), 0x0000, 0x0000, + MB2(0xE2BC), 0x0000, 0x0000, 0x0000, + MB2(0x94A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x90DF), MB2(0xE2B9), 0x0000, 0x0000, /* 7BC0 */ + MB2(0x94CD), 0x0000, MB2(0xE2BD), MB2(0x95D1), + 0x0000, MB2(0x927A), 0x0000, MB2(0xE2B8), + MB2(0xE2BA), 0x0000, 0x0000, MB2(0xE2BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2BE), 0x0000, 0x0000, + MB2(0x8EC2), 0x0000, 0x0000, 0x0000, /* 7BE0 */ + MB2(0x93C4), MB2(0xE2C3), MB2(0xE2C2), 0x0000, + 0x0000, MB2(0xE2BF), 0x0000, 0x0000, + 0x0000, MB2(0x9855), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2C8), + 0x0000, 0x0000, MB2(0xE2CC), MB2(0xE2C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2C5), 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2C6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2CB), 0x0000, 0x0000, + 0x0000, MB2(0xE2C0), MB2(0x99D3), MB2(0xE2C7), + MB2(0xE2C1), 0x0000, 0x0000, MB2(0xE2CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D0), + 0x0000, MB2(0x8AC8), 0x0000, MB2(0xE2CD), /* 7C20 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2CE), + 0x0000, 0x0000, MB2(0xE2CF), MB2(0xE2D2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D1), + MB2(0x94F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2D3), MB2(0x97FA), MB2(0x95EB), + MB2(0xE2D8), 0x0000, 0x0000, MB2(0xE2D5), /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2D4), MB2(0x90D0), 0x0000, MB2(0xE2D7), + MB2(0xE2D9), 0x0000, 0x0000, 0x0000, + MB2(0xE2D6), 0x0000, MB2(0xE2DD), 0x0000, + MB2(0xE2DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2DB), + MB2(0xE2C4), 0x0000, 0x0000, 0x0000, /* 7C60 */ + MB2(0xE2DC), MB2(0xE2DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95C4), + 0x0000, MB2(0xE2E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96E0), 0x0000, + 0x0000, MB2(0x8BCC), MB2(0x8C48), MB2(0xE2E1), /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95B2), 0x0000, MB2(0x9088), + 0x0000, MB2(0x96AE), 0x0000, 0x0000, + MB2(0xE2E2), 0x0000, MB2(0x97B1), 0x0000, + 0x0000, MB2(0x9494), 0x0000, MB2(0x9165), + MB2(0x9453), 0x0000, 0x0000, MB2(0x8F6C), + 0x0000, 0x0000, 0x0000, MB2(0x88BE), + 0x0000, MB2(0xE2E7), MB2(0xE2E5), 0x0000, /* 7CA0 */ + MB2(0xE2E3), MB2(0x8A9F), 0x0000, MB2(0x8FCF), + MB2(0xE2E8), 0x0000, 0x0000, MB2(0xE2E6), + 0x0000, MB2(0xE2E4), MB2(0xE2EC), 0x0000, + 0x0000, MB2(0xE2EB), MB2(0xE2EA), MB2(0xE2E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2ED), 0x0000, 0x0000, + 0x0000, MB2(0xE2EE), MB2(0x90B8), 0x0000, + MB2(0xE2EF), 0x0000, MB2(0xE2F1), 0x0000, /* 7CC0 */ + 0x0000, MB2(0xE2F0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CD0), 0x0000, + 0x0000, 0x0000, MB2(0x9157), 0x0000, + 0x0000, 0x0000, MB2(0xE2F3), 0x0000, + 0x0000, 0x0000, MB2(0x939C), 0x0000, + MB2(0xE2F2), 0x0000, 0x0000, 0x0000, + MB2(0xE2F4), 0x0000, MB2(0x95B3), MB2(0x918C), + MB2(0x8D66), 0x0000, MB2(0xE2F5), 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, MB2(0x97C6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F7), + 0x0000, 0x0000, MB2(0xE2F8), 0x0000, + MB2(0xE2F9), 0x0000, MB2(0xE2FA), 0x0000, + MB2(0x8E85), 0x0000, MB2(0xE2FB), MB2(0x8C6E), + 0x0000, 0x0000, MB2(0x8B8A), 0x0000, + MB2(0x8B49), 0x0000, MB2(0xE340), 0x0000, /* 7D00 */ + MB2(0x96F1), MB2(0x8D67), MB2(0xE2FC), 0x0000, + 0x0000, 0x0000, MB2(0xE343), MB2(0x96E4), + 0x0000, MB2(0x945B), 0x0000, 0x0000, + MB2(0x9552), 0x0000, 0x0000, 0x0000, + MB2(0x8F83), MB2(0xE342), 0x0000, MB2(0x8ED1), + MB2(0x8D68), MB2(0x8E86), MB2(0x8B89), MB2(0x95B4), + MB2(0xE341), 0x0000, 0x0000, 0x0000, + MB2(0x9166), MB2(0x9661), MB2(0x8DF5), 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E87), + MB2(0x92DB), 0x0000, MB2(0xE346), MB2(0x97DD), + MB2(0x8DD7), 0x0000, MB2(0xE347), MB2(0x9061), + 0x0000, MB2(0xE349), 0x0000, 0x0000, + 0x0000, MB2(0x8FD0), MB2(0x8DAE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE348), + 0x0000, 0x0000, MB2(0x8F49), MB2(0x8CBC), /* 7D40 */ + MB2(0x9167), MB2(0xE344), MB2(0xE34A), 0x0000, + MB2(0xFB8A), 0x0000, 0x0000, MB2(0xE345), + MB2(0x8C6F), 0x0000, MB2(0xE34D), MB2(0xE351), + MB2(0x8C8B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE34C), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE355), + MB2(0xFB8B), 0x0000, MB2(0x8D69), 0x0000, + 0x0000, MB2(0x978D), MB2(0x88BA), MB2(0xE352), /* 7D60 */ + 0x0000, 0x0000, MB2(0x8B8B), 0x0000, + MB2(0xE34F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE350), 0x0000, + 0x0000, MB2(0x939D), MB2(0xE34E), MB2(0xE34B), + 0x0000, MB2(0x8A47), MB2(0x90E2), 0x0000, + 0x0000, MB2(0x8CA6), 0x0000, 0x0000, + 0x0000, MB2(0xE357), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE354), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE356), + 0x0000, 0x0000, 0x0000, MB2(0xE353), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C70), MB2(0x91B1), MB2(0xE358), + MB2(0x918E), 0x0000, 0x0000, MB2(0xE365), + MB2(0xFB8D), 0x0000, MB2(0xE361), MB2(0xE35B), /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE35F), + MB2(0x8EF8), MB2(0x88DB), MB2(0xE35A), MB2(0xE362), + MB2(0xE366), MB2(0x8D6A), MB2(0x96D4), 0x0000, + MB2(0x92D4), MB2(0xE35C), 0x0000, MB2(0xFB8C), + MB2(0xE364), 0x0000, MB2(0xE359), MB2(0x925D), + 0x0000, MB2(0xE35E), MB2(0x88BB), MB2(0x96C8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE35D), + 0x0000, 0x0000, MB2(0x8BD9), MB2(0x94EA), + 0x0000, 0x0000, 0x0000, MB2(0x918D), + 0x0000, MB2(0x97CE), MB2(0x8F8F), 0x0000, + 0x0000, MB2(0xE38E), MB2(0xFB8E), 0x0000, + MB2(0xE367), 0x0000, MB2(0x90FC), 0x0000, + MB2(0xE363), MB2(0xE368), MB2(0xE36A), 0x0000, + MB2(0x92F7), MB2(0xE36D), 0x0000, 0x0000, /* 7DE0 */ + MB2(0xE369), 0x0000, 0x0000, 0x0000, + MB2(0x95D2), MB2(0x8AC9), 0x0000, 0x0000, + MB2(0x96C9), 0x0000, 0x0000, MB2(0x88DC), + 0x0000, 0x0000, MB2(0xE36C), 0x0000, + MB2(0x97FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE36B), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x898F), 0x0000, 0x0000, /* 7E00 */ + MB2(0x93EA), MB2(0xE36E), 0x0000, 0x0000, + 0x0000, MB2(0xE375), MB2(0xE36F), MB2(0xE376), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE372), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x949B), + 0x0000, 0x0000, MB2(0x8EC8), MB2(0xE374), + 0x0000, MB2(0xE371), MB2(0xE377), MB2(0xE370), /* 7E20 */ + 0x0000, 0x0000, MB2(0x8F63), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9644), + 0x0000, 0x0000, MB2(0x8F6B), 0x0000, + 0x0000, MB2(0xE373), MB2(0xE380), 0x0000, + 0x0000, MB2(0xE37B), 0x0000, MB2(0xE37E), + 0x0000, MB2(0xE37C), MB2(0xE381), MB2(0xE37A), + 0x0000, MB2(0xE360), MB2(0x90D1), 0x0000, + 0x0000, MB2(0x94C9), 0x0000, MB2(0xE37D), /* 7E40 */ + 0x0000, 0x0000, MB2(0xE378), 0x0000, + 0x0000, 0x0000, MB2(0x9140), MB2(0x8C71), + 0x0000, MB2(0x8F4A), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFB8F), 0x0000, + MB2(0x9044), MB2(0x9155), MB2(0xE384), 0x0000, + 0x0000, MB2(0xE386), MB2(0xE387), 0x0000, + 0x0000, MB2(0xE383), MB2(0xE385), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, MB2(0xE379), MB2(0xE382), + 0x0000, MB2(0xE38A), MB2(0xE389), 0x0000, + 0x0000, MB2(0x969A), 0x0000, 0x0000, + MB2(0x8C4A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE388), 0x0000, MB2(0xE38C), + MB2(0xE38B), MB2(0xE38F), 0x0000, MB2(0xE391), + 0x0000, 0x0000, MB2(0x8E5B), MB2(0xE38D), /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE392), MB2(0xE393), MB2(0xFA5C), 0x0000, + MB2(0xE394), 0x0000, MB2(0xE39A), MB2(0x935A), + MB2(0xE396), 0x0000, MB2(0xE395), MB2(0xE397), + MB2(0xE398), 0x0000, MB2(0xE399), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE39B), + MB2(0xE39C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8ACA), 0x0000, + MB2(0xE39D), 0x0000, MB2(0xE39E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, MB2(0xE39F), 0x0000, MB2(0xFB90), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3A0), MB2(0xE3A1), MB2(0xE3A2), 0x0000, + MB2(0xE3A3), MB2(0xE3A4), 0x0000, 0x0000, + MB2(0xE3A6), MB2(0xE3A5), 0x0000, 0x0000, + MB2(0xE3A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3A8), + MB2(0xE3A9), 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, MB2(0xE3AC), + MB2(0xE3AA), MB2(0xE3AB), MB2(0x8DDF), MB2(0x8C72), + 0x0000, 0x0000, MB2(0x9275), 0x0000, + MB2(0x94B1), 0x0000, MB2(0x8F90), 0x0000, + 0x0000, MB2(0x946C), 0x0000, MB2(0x94EB), + MB2(0xE3AD), MB2(0x9CEB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3AE), MB2(0xE3B0), /* 7F80 */ + 0x0000, MB2(0x9785), MB2(0xE3AF), MB2(0xE3B2), + MB2(0xE3B1), 0x0000, MB2(0x9772), 0x0000, + MB2(0xE3B3), 0x0000, MB2(0x94FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3B4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3B7), 0x0000, + 0x0000, MB2(0xE3B6), MB2(0xE3B5), 0x0000, + 0x0000, MB2(0xFB91), 0x0000, MB2(0xE3B8), /* 7FA0 */ + MB2(0x8C51), 0x0000, 0x0000, 0x0000, + MB2(0x9141), MB2(0x8B60), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3BC), MB2(0xE3B9), + 0x0000, 0x0000, MB2(0xE3BA), 0x0000, + 0x0000, 0x0000, MB2(0xE3BD), 0x0000, + MB2(0xE3BE), MB2(0xE3BB), 0x0000, 0x0000, + 0x0000, MB2(0x8948), 0x0000, 0x0000, + 0x0000, MB2(0x89A5), 0x0000, 0x0000, /* 7FC0 */ + 0x0000, MB2(0xE3C0), MB2(0xE3C1), 0x0000, + 0x0000, 0x0000, MB2(0xE3C2), 0x0000, + MB2(0x9782), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F4B), 0x0000, + MB2(0xE3C4), MB2(0xE3C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9089), MB2(0xE3C5), 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, MB2(0xE3C6), 0x0000, + 0x0000, MB2(0xE3C7), 0x0000, MB2(0x8AE3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8ACB), 0x0000, 0x0000, MB2(0xE3C8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3C9), 0x0000, MB2(0x967C), + MB2(0x9783), 0x0000, 0x0000, 0x0000, + MB2(0x9773), MB2(0x9856), 0x0000, MB2(0x8D6C), /* 8000 */ + MB2(0xE3CC), MB2(0x8ED2), MB2(0xE3CB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3CD), + MB2(0x8EA7), 0x0000, 0x0000, 0x0000, + MB2(0x91CF), 0x0000, MB2(0xE3CE), 0x0000, + 0x0000, MB2(0x8D6B), 0x0000, MB2(0x96D5), + MB2(0xE3CF), MB2(0xE3D0), 0x0000, 0x0000, + MB2(0xE3D1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3D2), 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8EA8), + 0x0000, 0x0000, MB2(0x96EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3D5), + 0x0000, MB2(0x925E), 0x0000, MB2(0xE3D4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, MB2(0xE3D7), 0x0000, + 0x0000, 0x0000, MB2(0xE3D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3D8), 0x0000, + 0x0000, 0x0000, MB2(0x90B9), 0x0000, + MB2(0xE3D9), 0x0000, MB2(0xE3DA), 0x0000, + 0x0000, 0x0000, MB2(0x95B7), MB2(0xE3DB), + 0x0000, MB2(0x918F), MB2(0xE3DC), 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3DD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97FC), + MB2(0xE3E0), 0x0000, MB2(0xE3DF), MB2(0xE3DE), + MB2(0x92AE), 0x0000, MB2(0xE3E1), MB2(0x9045), + 0x0000, MB2(0xE3E2), 0x0000, 0x0000, + 0x0000, MB2(0xE3E3), MB2(0x9857), MB2(0xE3E4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + MB2(0xE3E5), MB2(0xE3E7), MB2(0xE3E6), MB2(0x94A3), + 0x0000, MB2(0x93F7), 0x0000, MB2(0x985D), + MB2(0x94A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3E9), + 0x0000, 0x0000, MB2(0x8FD1), 0x0000, + MB2(0x9549), 0x0000, MB2(0xE3EA), MB2(0xE3E8), + 0x0000, MB2(0x8ACC), 0x0000, 0x0000, + 0x0000, MB2(0x8CD2), MB2(0x8E88), 0x0000, /* 80A0 */ + 0x0000, MB2(0x94EC), 0x0000, 0x0000, + 0x0000, MB2(0x8CA8), MB2(0x9662), 0x0000, + MB2(0xE3ED), MB2(0xE3EB), 0x0000, MB2(0x8D6D), + 0x0000, MB2(0x8D6E), MB2(0x88E7), 0x0000, + MB2(0x8DE6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9478), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88DD), /* 80C0 */ + MB2(0xE3F2), 0x0000, MB2(0x925F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9477), 0x0000, MB2(0x91D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3F4), 0x0000, + 0x0000, MB2(0xE3F0), MB2(0xE3F3), MB2(0xE3EE), + 0x0000, MB2(0xE3F1), MB2(0x9645), 0x0000, + 0x0000, MB2(0x8CD3), 0x0000, 0x0000, /* 80E0 */ + MB2(0x88FB), MB2(0xE3EF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3F6), + 0x0000, MB2(0xE3F7), 0x0000, 0x0000, + MB2(0x93B7), 0x0000, 0x0000, 0x0000, + MB2(0x8BB9), 0x0000, 0x0000, 0x0000, + MB2(0xE445), MB2(0x945C), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8E89), 0x0000, /* 8100 */ + 0x0000, MB2(0x8BBA), MB2(0x90C6), MB2(0x9865), + MB2(0x96AC), MB2(0xE3F5), MB2(0x90D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B72), MB2(0xE3F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FA), /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3F9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FB), + 0x0000, MB2(0x9245), 0x0000, MB2(0x945D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x92AF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE442), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, MB2(0xE441), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FC), + 0x0000, 0x0000, MB2(0x9074), 0x0000, + MB2(0x9585), MB2(0xE444), 0x0000, MB2(0xE443), + MB2(0x8D6F), MB2(0x9872), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE454), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, MB2(0xE448), MB2(0xE449), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8EEE), + 0x0000, 0x0000, MB2(0xE447), 0x0000, + MB2(0x8D98), MB2(0xE446), 0x0000, 0x0000, + MB2(0xE44A), 0x0000, 0x0000, 0x0000, + MB2(0x92B0), MB2(0x95A0), MB2(0x9142), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91DA), + MB2(0xE44E), 0x0000, MB2(0xE44F), MB2(0xE44B), /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE44C), 0x0000, MB2(0xE44D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D70), + 0x0000, 0x0000, 0x0000, MB2(0xE455), + 0x0000, MB2(0xE451), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9586), 0x0000, + MB2(0x968C), MB2(0x9547), 0x0000, 0x0000, + MB2(0xE450), 0x0000, 0x0000, MB2(0xE453), /* 81A0 */ + MB2(0xE452), 0x0000, 0x0000, 0x0000, + MB2(0x9663), MB2(0xE456), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE457), 0x0000, 0x0000, MB2(0x9156), + 0x0000, MB2(0xE458), 0x0000, 0x0000, + MB2(0xE45A), 0x0000, MB2(0xE45E), 0x0000, + 0x0000, MB2(0xE45B), MB2(0xE459), MB2(0x945E), + MB2(0xE45C), 0x0000, MB2(0xE45D), 0x0000, /* 81C0 */ + 0x0000, 0x0000, MB2(0x89B0), 0x0000, + MB2(0xE464), MB2(0xE45F), 0x0000, 0x0000, + 0x0000, MB2(0xE460), 0x0000, 0x0000, + 0x0000, MB2(0xE461), 0x0000, MB2(0x919F), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE463), MB2(0xE462), MB2(0xE465), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE466), + MB2(0xE467), 0x0000, 0x0000, MB2(0x9062), /* 81E0 */ + 0x0000, MB2(0x89E7), 0x0000, MB2(0xE468), + MB2(0x97D5), 0x0000, MB2(0x8EA9), 0x0000, + 0x0000, MB2(0x8F4C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E8A), + MB2(0x9276), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE469), MB2(0xE46A), + MB2(0x8950), 0x0000, MB2(0xE46B), 0x0000, + 0x0000, MB2(0xE46C), MB2(0xE46D), 0x0000, /* 8200 */ + 0x0000, MB2(0xE46E), 0x0000, MB2(0xE46F), + MB2(0x8BBB), MB2(0x9DA8), MB2(0xE470), 0x0000, + MB2(0x90E3), MB2(0xE471), MB2(0x8EC9), 0x0000, + MB2(0xE472), 0x0000, MB2(0x98AE), 0x0000, + 0x0000, 0x0000, MB2(0xE473), MB2(0x95DC), + MB2(0x8ADA), 0x0000, 0x0000, MB2(0x9143), + MB2(0x8F77), 0x0000, MB2(0x9591), MB2(0x8F4D), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE474), MB2(0x8D71), MB2(0xE475), + MB2(0x94CA), 0x0000, MB2(0xE484), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE477), + 0x0000, MB2(0x91C7), MB2(0x9495), MB2(0x8CBD), + MB2(0xE476), MB2(0x9144), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE478), 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, MB2(0x92F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE47A), MB2(0xE479), MB2(0xE47C), 0x0000, + 0x0000, MB2(0xE47B), 0x0000, MB2(0xE47D), + 0x0000, 0x0000, MB2(0xE480), 0x0000, /* 8260 */ + MB2(0xE47E), 0x0000, MB2(0x8ACD), 0x0000, + MB2(0xE481), 0x0000, MB2(0xE482), MB2(0xE483), + 0x0000, 0x0000, MB2(0x8DAF), MB2(0x97C7), + 0x0000, MB2(0xE485), MB2(0x9046), 0x0000, + 0x0000, 0x0000, MB2(0x8990), MB2(0xE486), + MB2(0xE487), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE488), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88F0), + 0x0000, MB2(0xE489), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE48A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9587), 0x0000, 0x0000, + 0x0000, MB2(0x8EC5), 0x0000, MB2(0xE48C), + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, MB2(0x8A48), MB2(0x88B0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE48B), + MB2(0xE48E), MB2(0x946D), 0x0000, MB2(0x9063), + 0x0000, MB2(0x89D4), 0x0000, MB2(0x9646), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C7C), MB2(0x8BDA), 0x0000, MB2(0xE48D), + 0x0000, MB2(0x89E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, MB2(0x8AA1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8991), MB2(0xE492), MB2(0x97E8), + MB2(0x91DB), 0x0000, 0x0000, MB2(0x9563), + 0x0000, MB2(0xE49E), 0x0000, MB2(0x89D5), + MB2(0xE49C), 0x0000, MB2(0xE49A), MB2(0xE491), + 0x0000, MB2(0xE48F), 0x0000, MB2(0xE490), /* 82E0 */ + 0x0000, MB2(0x8EE1), MB2(0x8BEA), MB2(0x9297), + 0x0000, 0x0000, 0x0000, MB2(0x93CF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8970), 0x0000, MB2(0xE494), + MB2(0xE493), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE499), MB2(0xE495), MB2(0xE498), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFB93), MB2(0x96CE), MB2(0xE497), /* 8300 */ + MB2(0x89D6), MB2(0x8A9D), MB2(0xE49B), 0x0000, + 0x0000, MB2(0xE49D), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C73), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4A1), MB2(0xE4AA), + MB2(0xE4AB), 0x0000, 0x0000, 0x0000, + MB2(0x88A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4B2), /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x88EF), 0x0000, 0x0000, MB2(0xE4A9), + 0x0000, 0x0000, 0x0000, MB2(0xE4A8), + 0x0000, MB2(0xE4A3), MB2(0xE4A2), 0x0000, + MB2(0xE4A0), MB2(0xE49F), MB2(0x9283), 0x0000, + MB2(0x91F9), MB2(0xE4A5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4A4), 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, MB2(0xE4A7), 0x0000, 0x0000, + 0x0000, MB2(0x9190), MB2(0x8C74), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8960), + MB2(0xE4A6), 0x0000, MB2(0x8D72), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9191), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFB94), 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4B8), + 0x0000, MB2(0xE4B9), 0x0000, MB2(0x89D7), + 0x0000, 0x0000, 0x0000, MB2(0x89AC), + MB2(0xE4B6), 0x0000, 0x0000, MB2(0xFB95), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, MB2(0xE4AC), 0x0000, MB2(0xE4B4), + 0x0000, MB2(0xE4BB), MB2(0xE4B5), 0x0000, + 0x0000, 0x0000, MB2(0xE4B3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE496), + 0x0000, 0x0000, MB2(0xE4B1), 0x0000, + 0x0000, 0x0000, MB2(0xE4AD), 0x0000, + 0x0000, 0x0000, MB2(0x8ACE), MB2(0xE4AF), + MB2(0xE4BA), 0x0000, MB2(0xE4B0), 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4BC), 0x0000, MB2(0xE4AE), MB2(0x949C), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9789), 0x0000, 0x0000, + 0x0000, MB2(0xE4B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4CD), 0x0000, 0x0000, + 0x0000, MB2(0xE4C5), 0x0000, 0x0000, /* 83C0 */ + 0x0000, MB2(0x909B), 0x0000, MB2(0xFB96), + 0x0000, 0x0000, MB2(0x8B65), 0x0000, + MB2(0x8BDB), 0x0000, MB2(0xE4C0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89D9), + 0x0000, 0x0000, MB2(0x8FD2), 0x0000, + MB2(0xE4C3), 0x0000, 0x0000, 0x0000, + MB2(0x8DD8), 0x0000, 0x0000, MB2(0x9370), + MB2(0xE4C8), 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95EC), 0x0000, MB2(0xE4BF), + 0x0000, 0x0000, 0x0000, MB2(0x89D8), + MB2(0x8CD4), MB2(0x9548), MB2(0xE4C9), 0x0000, + MB2(0xE4BD), 0x0000, MB2(0xFB97), MB2(0xE4C6), + 0x0000, 0x0000, 0x0000, MB2(0xE4D0), + 0x0000, MB2(0xE4C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4C2), /* 8400 */ + MB2(0x93B8), 0x0000, 0x0000, MB2(0xE4C7), + 0x0000, 0x0000, 0x0000, MB2(0xE4C4), + MB2(0x9647), MB2(0xE4CA), MB2(0x88DE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4BE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4CC), 0x0000, MB2(0xE4CB), 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x948B), MB2(0xE4D2), 0x0000, + MB2(0xE4DD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A9E), 0x0000, 0x0000, + 0x0000, MB2(0xE4E0), 0x0000, 0x0000, + MB2(0xE4CE), 0x0000, 0x0000, 0x0000, + MB2(0xE4D3), MB2(0x978E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, MB2(0xE4DC), 0x0000, + MB2(0xFB98), MB2(0x9774), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9298), + 0x0000, 0x0000, 0x0000, MB2(0x8A8B), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9592), MB2(0xE4E2), MB2(0x939F), /* 8460 */ + 0x0000, 0x0000, MB2(0x88AF), 0x0000, + 0x0000, MB2(0xE4DB), 0x0000, MB2(0xE4D7), + MB2(0x9192), MB2(0xE4D1), MB2(0xE4D9), MB2(0xE4DE), + 0x0000, MB2(0x944B), 0x0000, 0x0000, + 0x0000, MB2(0x88A8), 0x0000, MB2(0xE4D6), + 0x0000, MB2(0xE4DF), MB2(0x9598), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4DA), 0x0000, /* 8480 */ + MB2(0xE4D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8FD3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F4E), 0x0000, 0x0000, 0x0000, + MB2(0x8EAA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x96D6), 0x0000, 0x0000, + MB2(0x9566), 0x0000, 0x0000, MB2(0xE4E5), + 0x0000, MB2(0xE4EE), 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8A97), 0x0000, + MB2(0xFB99), 0x0000, 0x0000, 0x0000, + MB2(0x8FF6), MB2(0xE4E3), 0x0000, MB2(0xE4E8), + MB2(0x9193), 0x0000, 0x0000, MB2(0xE4E4), + 0x0000, MB2(0xE4EB), 0x0000, 0x0000, /* 84C0 */ + MB2(0x927E), 0x0000, MB2(0xE4EC), 0x0000, + 0x0000, MB2(0x9775), MB2(0xE4E1), MB2(0x8A57), + 0x0000, MB2(0xE4E7), 0x0000, 0x0000, + MB2(0xE4EA), MB2(0x96AA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4ED), 0x0000, + 0x0000, MB2(0xE4E6), MB2(0xE4E9), 0x0000, + MB2(0xFA60), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9648), 0x0000, MB2(0x9840), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4F8), 0x0000, 0x0000, MB2(0xE4F0), + MB2(0x8EC1), 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, MB2(0xE4CF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95CC), 0x0000, MB2(0x96A0), + MB2(0xE4F7), MB2(0xE4F6), 0x0000, MB2(0xE4F2), + MB2(0xE4F3), 0x0000, MB2(0x8955), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4F5), + 0x0000, MB2(0xE4EF), 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, MB2(0x92D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4F4), MB2(0x88FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91A0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95C1), 0x0000, 0x0000, + MB2(0xE4F9), MB2(0xE540), 0x0000, MB2(0x94D7), /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4FC), MB2(0x8FD4), MB2(0x8EC7), MB2(0xE542), + 0x0000, 0x0000, MB2(0x8BBC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFB9A), + 0x0000, MB2(0xE543), 0x0000, MB2(0x9599), + MB2(0xE4FB), MB2(0xFB9B), MB2(0xE4D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4FA), /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x986E), MB2(0x93A0), MB2(0x9593), MB2(0xFB9C), + 0x0000, MB2(0xE54A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE550), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE551), 0x0000, + MB2(0xE544), 0x0000, 0x0000, 0x0000, /* 8580 */ + MB2(0x9496), 0x0000, 0x0000, MB2(0xE54E), + MB2(0xE546), 0x0000, MB2(0xE548), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE552), MB2(0xE547), 0x0000, 0x0000, + MB2(0xE54B), 0x0000, 0x0000, MB2(0x8992), + 0x0000, MB2(0x93E3), 0x0000, MB2(0xE54C), + MB2(0xE54F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + MB2(0xE545), 0x0000, MB2(0x9145), 0x0000, + MB2(0xE549), MB2(0x8E46), MB2(0x9064), MB2(0x8C4F), + MB2(0x96F2), 0x0000, MB2(0x96F7), MB2(0x8F92), + MB2(0xFB9E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE556), MB2(0xE554), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x986D), 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE553), 0x0000, 0x0000, + 0x0000, MB2(0x9795), 0x0000, MB2(0xE555), + MB2(0xE557), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE558), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE55B), MB2(0xE559), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + MB2(0x93A1), MB2(0xE55A), 0x0000, 0x0000, + 0x0000, MB2(0x94CB), MB2(0xE54D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F93), + 0x0000, MB2(0xE55C), MB2(0xE561), MB2(0x9194), + 0x0000, 0x0000, MB2(0xE560), 0x0000, + 0x0000, 0x0000, MB2(0xE541), 0x0000, /* 8600 */ + 0x0000, 0x0000, MB2(0xE562), MB2(0x9168), + 0x0000, 0x0000, MB2(0xE55D), MB2(0xE55F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE55E), + 0x0000, 0x0000, MB2(0x9F50), MB2(0x9F41), + 0x0000, 0x0000, MB2(0xE564), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE563), 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9796), 0x0000, MB2(0xE1BA), + MB2(0xE565), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE566), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE567), MB2(0x8CD5), 0x0000, + MB2(0x8B73), 0x0000, 0x0000, 0x0000, + MB2(0xE569), MB2(0x997C), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B95), 0x0000, + MB2(0x97B8), 0x0000, MB2(0x8BF1), MB2(0xE56A), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE56B), + 0x0000, 0x0000, 0x0000, MB2(0x928E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE56C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93F8), 0x0000, MB2(0x88B8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89E1), MB2(0xE571), + MB2(0xE572), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE56D), + 0x0000, MB2(0x8E5C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE56E), /* 86A0 */ + MB2(0x9461), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE56F), MB2(0xE570), MB2(0xE57A), + 0x0000, 0x0000, 0x0000, MB2(0xE574), + MB2(0xE577), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE573), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + MB2(0xE575), 0x0000, MB2(0xE576), MB2(0x8ED6), + 0x0000, MB2(0xE578), 0x0000, MB2(0x9260), + 0x0000, MB2(0x8C75), MB2(0x8A61), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE57B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A5E), 0x0000, MB2(0xE581), + 0x0000, 0x0000, MB2(0xE57C), MB2(0xE580), + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + MB2(0x94B8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE57D), 0x0000, 0x0000, + MB2(0xE57E), MB2(0x9567), MB2(0x94D8), MB2(0xE582), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91FB), MB2(0xE58C), 0x0000, MB2(0xE588), + 0x0000, 0x0000, MB2(0x89E9), 0x0000, + MB2(0xE586), 0x0000, MB2(0x9649), MB2(0xE587), /* 8700 */ + 0x0000, 0x0000, MB2(0xE584), 0x0000, + MB2(0xE585), MB2(0xE58A), MB2(0xE58D), 0x0000, + 0x0000, MB2(0xE58B), 0x0000, 0x0000, + 0x0000, MB2(0xE589), MB2(0xE583), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9277), 0x0000, MB2(0xE594), 0x0000, + MB2(0x96A8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, MB2(0xE592), 0x0000, 0x0000, + 0x0000, MB2(0xE593), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE58E), 0x0000, 0x0000, MB2(0xE590), + 0x0000, 0x0000, 0x0000, MB2(0xE591), + 0x0000, 0x0000, 0x0000, MB2(0xE58F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x90E4), 0x0000, MB2(0x9858), + MB2(0xE598), 0x0000, MB2(0xE599), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE59F), + 0x0000, MB2(0x9049), 0x0000, MB2(0xE59B), + 0x0000, MB2(0xE59E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE596), + MB2(0xE595), 0x0000, 0x0000, MB2(0xE5A0), /* 8760 */ + 0x0000, 0x0000, MB2(0x89DA), 0x0000, + MB2(0xE59C), 0x0000, MB2(0xE5A1), 0x0000, + 0x0000, 0x0000, MB2(0xE59D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE59A), 0x0000, MB2(0x92B1), 0x0000, + MB2(0xE597), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9488), + 0x0000, 0x0000, MB2(0xE5A5), 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x975A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5A4), + 0x0000, 0x0000, MB2(0xE5A3), 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5AC), + 0x0000, 0x0000, 0x0000, MB2(0xE5A6), + 0x0000, 0x0000, 0x0000, MB2(0xE5AE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9786), MB2(0xE5B1), + 0x0000, MB2(0xE5A8), 0x0000, 0x0000, + MB2(0xE5A9), 0x0000, 0x0000, 0x0000, /* 87C0 */ + MB2(0xE5AD), 0x0000, MB2(0xE5B0), MB2(0xE5AF), + 0x0000, 0x0000, 0x0000, MB2(0xE5A7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5AA), 0x0000, MB2(0xE5BB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5B4), 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5B2), + 0x0000, 0x0000, MB2(0xE5B3), 0x0000, + 0x0000, 0x0000, MB2(0xE5B8), MB2(0xE5B9), + 0x0000, MB2(0x8A49), 0x0000, MB2(0x8B61), + 0x0000, 0x0000, MB2(0xE5B7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, MB2(0xE5A2), 0x0000, MB2(0xFBA1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5B6), MB2(0xE5BA), MB2(0xE5B5), + 0x0000, MB2(0xE5BC), 0x0000, 0x0000, + 0x0000, MB2(0xE5BE), MB2(0xE5BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5C0), MB2(0xE5BF), MB2(0xE579), /* 8820 */ + 0x0000, 0x0000, 0x0000, MB2(0xE5C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5C1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5C2), 0x0000, + 0x0000, MB2(0xE5C3), 0x0000, MB2(0xE5C5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C8C), 0x0000, MB2(0xE5C7), 0x0000, /* 8840 */ + MB2(0xE5C6), 0x0000, MB2(0x8F4F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8D73), MB2(0x9FA5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5C8), MB2(0x8F70), + 0x0000, 0x0000, 0x0000, MB2(0x8A58), + 0x0000, MB2(0xE5C9), 0x0000, MB2(0x8971), + 0x0000, MB2(0x8FD5), MB2(0xE5CA), 0x0000, + 0x0000, MB2(0x8D74), MB2(0xE5CB), MB2(0x88DF), /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x955C), 0x0000, 0x0000, MB2(0xE5CC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x908A), 0x0000, MB2(0xE5D3), 0x0000, + 0x0000, MB2(0xE5D0), 0x0000, MB2(0x928F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5D1), MB2(0xE5CE), MB2(0x8BDC), + 0x0000, MB2(0xE5CD), MB2(0xE5D4), 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C55), 0x0000, 0x0000, MB2(0x91DC), + 0x0000, MB2(0xE5DA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5D6), 0x0000, + 0x0000, 0x0000, MB2(0x91B3), MB2(0xE5D5), + 0x0000, MB2(0xE5D8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5CF), 0x0000, + 0x0000, 0x0000, MB2(0xE5D9), 0x0000, /* 88A0 */ + MB2(0xE5DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94ED), + 0x0000, 0x0000, MB2(0xE5D7), 0x0000, + MB2(0xE5DC), MB2(0xE5DE), 0x0000, 0x0000, + MB2(0x8CD1), MB2(0xE5D2), 0x0000, MB2(0x88BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5DD), + 0x0000, MB2(0x8DD9), MB2(0x97F4), MB2(0xE5DF), /* 88C0 */ + MB2(0xE5E0), MB2(0x9195), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97A0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5E1), MB2(0x9754), 0x0000, 0x0000, + MB2(0xE5E2), MB2(0xE5E3), 0x0000, 0x0000, + MB2(0x95E2), MB2(0xE5E4), 0x0000, MB2(0x8DBE), + 0x0000, MB2(0x97A1), 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5EA), MB2(0x8FD6), + MB2(0xE5E8), MB2(0xFBA2), 0x0000, 0x0000, + MB2(0x9787), MB2(0xE5E5), 0x0000, 0x0000, + MB2(0xE5E7), MB2(0x90BB), MB2(0x909E), 0x0000, + 0x0000, 0x0000, MB2(0xE5E6), 0x0000, /* 8900 */ + MB2(0xE5EB), 0x0000, 0x0000, MB2(0x95A1), + 0x0000, 0x0000, MB2(0xE5ED), 0x0000, + MB2(0xE5EC), 0x0000, 0x0000, 0x0000, + MB2(0x8A8C), 0x0000, MB2(0x964A), MB2(0xE5EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFA5D), MB2(0xE5FA), MB2(0xE5F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, MB2(0xE5F1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5F2), MB2(0xE5F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5F7), 0x0000, + MB2(0xE5F8), 0x0000, 0x0000, MB2(0xE5F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5F4), 0x0000, MB2(0xE5EF), /* 8940 */ + MB2(0xE5F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5F9), MB2(0xE8B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5FC), MB2(0x8BDD), + MB2(0xE5FB), 0x0000, 0x0000, 0x0000, /* 8960 */ + MB2(0xE641), 0x0000, MB2(0xE640), 0x0000, + 0x0000, 0x0000, MB2(0xE643), 0x0000, + 0x0000, MB2(0xE642), 0x0000, MB2(0xE644), + 0x0000, 0x0000, MB2(0x8F50), 0x0000, + MB2(0xE645), 0x0000, 0x0000, MB2(0xE646), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE647), MB2(0x90BC), + 0x0000, MB2(0x9776), 0x0000, MB2(0xE648), /* 8980 */ + 0x0000, 0x0000, MB2(0x95A2), MB2(0x9465), + MB2(0xE649), 0x0000, MB2(0xE64A), MB2(0x8CA9), + 0x0000, 0x0000, 0x0000, MB2(0x8B4B), + 0x0000, 0x0000, 0x0000, MB2(0xE64B), + 0x0000, 0x0000, MB2(0x8E8B), MB2(0x9460), + MB2(0xE64C), 0x0000, MB2(0x8A6F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE64D), 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, MB2(0xE64F), MB2(0x9797), + 0x0000, MB2(0xE64E), MB2(0x9065), 0x0000, + MB2(0xE650), 0x0000, 0x0000, MB2(0xE651), + 0x0000, 0x0000, MB2(0xE652), MB2(0x8ACF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE653), 0x0000, + 0x0000, MB2(0xE654), 0x0000, MB2(0xE655), + MB2(0xE656), 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8A70), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE657), 0x0000, + MB2(0xE658), MB2(0xE659), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89F0), /* 89E0 */ + 0x0000, 0x0000, MB2(0x9047), MB2(0xE65A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE65B), 0x0000, 0x0000, 0x0000, + MB2(0xE65C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8CBE), 0x0000, MB2(0x92F9), MB2(0xE65D), /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C76), 0x0000, MB2(0x9075), 0x0000, + MB2(0xE660), 0x0000, MB2(0x93A2), 0x0000, + MB2(0xE65F), 0x0000, MB2(0xFBA3), MB2(0x8C50), + 0x0000, 0x0000, MB2(0xE65E), MB2(0x91F5), + MB2(0x8B4C), 0x0000, 0x0000, MB2(0xE661), + 0x0000, MB2(0xE662), 0x0000, MB2(0x8FD7), + 0x0000, 0x0000, 0x0000, MB2(0x8C8D), /* 8A20 */ + 0x0000, MB2(0xE663), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x964B), 0x0000, + 0x0000, MB2(0x90DD), 0x0000, 0x0000, + 0x0000, MB2(0x8B96), 0x0000, MB2(0x96F3), + MB2(0x9169), 0x0000, MB2(0xE664), MB2(0xFBA4), + 0x0000, 0x0000, MB2(0x9066), MB2(0x9290), + MB2(0x8FD8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE665), 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, MB2(0xE668), 0x0000, + MB2(0xE669), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8DBC), MB2(0x91C0), MB2(0xE667), 0x0000, + MB2(0x8FD9), MB2(0x955D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE666), + 0x0000, 0x0000, MB2(0x8E8C), 0x0000, + MB2(0x8972), 0x0000, MB2(0xE66D), MB2(0x8C77), /* 8A60 */ + 0x0000, 0x0000, MB2(0x8E8E), 0x0000, + 0x0000, MB2(0x8E8D), 0x0000, MB2(0x986C), + MB2(0xE66C), MB2(0xE66B), MB2(0x9146), 0x0000, + MB2(0x8B6C), MB2(0x9862), MB2(0x8A59), MB2(0x8FDA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFBA5), 0x0000, 0x0000, + MB2(0xE66A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE66F), 0x0000, /* 8A80 */ + MB2(0xE670), MB2(0xE66E), 0x0000, MB2(0x8CD6), + 0x0000, MB2(0x975F), 0x0000, 0x0000, + MB2(0x8E8F), MB2(0x9446), 0x0000, 0x0000, + 0x0000, MB2(0xE673), 0x0000, MB2(0x90BE), + 0x0000, MB2(0x9261), 0x0000, 0x0000, + MB2(0x9755), 0x0000, MB2(0xE676), 0x0000, + 0x0000, 0x0000, MB2(0x8CEA), 0x0000, + MB2(0x90BD), MB2(0xE672), 0x0000, MB2(0xE677), /* 8AA0 */ + MB2(0x8CEB), MB2(0xE674), MB2(0xE675), MB2(0xFBA6), + MB2(0xE671), 0x0000, 0x0000, 0x0000, + MB2(0x90E0), MB2(0x93C7), 0x0000, 0x0000, + MB2(0x924E), 0x0000, MB2(0x89DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x94EE), 0x0000, 0x0000, + MB2(0x8B62), 0x0000, MB2(0xFBA7), MB2(0x92B2), + 0x0000, 0x0000, MB2(0xE67A), 0x0000, /* 8AC0 */ + MB2(0xE678), 0x0000, 0x0000, MB2(0x926B), + 0x0000, 0x0000, 0x0000, MB2(0x90BF), + MB2(0x8AD0), MB2(0xE679), 0x0000, MB2(0x907A), + 0x0000, 0x0000, MB2(0x97C8), 0x0000, + 0x0000, 0x0000, MB2(0x985F), 0x0000, + 0x0000, 0x0000, MB2(0xE67B), MB2(0xE687), + MB2(0x92B3), 0x0000, MB2(0xE686), MB2(0xFBA8), + MB2(0xE683), MB2(0xE68B), MB2(0xE684), 0x0000, /* 8AE0 */ + MB2(0xE680), 0x0000, MB2(0x92FA), MB2(0xE67E), + 0x0000, 0x0000, 0x0000, MB2(0xE67C), + 0x0000, MB2(0x9740), MB2(0x8E90), 0x0000, + 0x0000, MB2(0xE681), 0x0000, MB2(0xE67D), + 0x0000, 0x0000, MB2(0xFBAA), MB2(0xE685), + MB2(0x8F94), 0x0000, MB2(0x8CBF), 0x0000, + 0x0000, 0x0000, MB2(0x91F8), 0x0000, + MB2(0x9664), MB2(0x8979), MB2(0x88E0), 0x0000, /* 8B00 */ + MB2(0x93A3), 0x0000, 0x0000, MB2(0xE689), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE688), 0x0000, MB2(0x93E4), 0x0000, + MB2(0xE68D), 0x0000, 0x0000, 0x0000, + MB2(0xE682), 0x0000, MB2(0xE68C), MB2(0xE68E), + 0x0000, MB2(0x8CAA), MB2(0xE68A), MB2(0x8D75), + 0x0000, MB2(0x8ED3), 0x0000, 0x0000, + MB2(0xE68F), MB2(0x9777), 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, MB2(0xE692), 0x0000, + MB2(0xE695), 0x0000, 0x0000, MB2(0xE693), + MB2(0x9554), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE690), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8BDE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE694), 0x0000, + 0x0000, MB2(0xE696), 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE69A), 0x0000, 0x0000, + MB2(0xE697), 0x0000, MB2(0xE699), MB2(0xE698), + 0x0000, 0x0000, 0x0000, MB2(0xFBAB), + 0x0000, 0x0000, MB2(0xE69B), 0x0000, + MB2(0x8EAF), 0x0000, MB2(0xE69D), MB2(0xE69C), + MB2(0x9588), 0x0000, 0x0000, MB2(0xE69F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, MB2(0x8C78), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE69E), + MB2(0xE6A0), 0x0000, 0x0000, MB2(0xE6A1), + MB2(0x8B63), MB2(0xE3BF), MB2(0x8FF7), 0x0000, + MB2(0xE6A2), 0x0000, 0x0000, MB2(0x8CEC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6A3), 0x0000, MB2(0xFBAC), + MB2(0xE6A4), 0x0000, 0x0000, MB2(0x8E5D), /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DCC), 0x0000, + MB2(0xE6A5), 0x0000, MB2(0xE6A6), 0x0000, + MB2(0x8F51), 0x0000, MB2(0xE6A7), MB2(0xE6A8), + 0x0000, 0x0000, MB2(0xE6A9), 0x0000, + 0x0000, MB2(0xE6AA), MB2(0xE6AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x924A), + 0x0000, 0x0000, MB2(0xE6AC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6AE), + 0x0000, MB2(0xE6AD), 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, MB2(0x93A4), 0x0000, + MB2(0xE6AF), 0x0000, MB2(0x964C), 0x0000, + MB2(0xE6B0), 0x0000, MB2(0xE6B1), 0x0000, + MB2(0xE6B2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6B3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x93D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FDB), MB2(0xE6B4), 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8D8B), MB2(0x98AC), + MB2(0xE6B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6B6), MB2(0x955E), MB2(0xE6B7), 0x0000, + MB2(0xE6BF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6B8), 0x0000, /* 8C80 */ + 0x0000, MB2(0xE6BA), 0x0000, 0x0000, + 0x0000, MB2(0xE6B9), MB2(0xE6BB), 0x0000, + MB2(0x9665), MB2(0xE6BC), MB2(0xE6BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6BE), 0x0000, 0x0000, 0x0000, + MB2(0xE6C0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A4C), MB2(0x92E5), 0x0000, + MB2(0x9589), MB2(0x8DE0), MB2(0x8D76), 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, MB2(0x956E), + MB2(0x89DD), MB2(0x94CC), MB2(0xE6C3), MB2(0x8AD1), + MB2(0x90D3), MB2(0xE6C2), MB2(0xE6C7), MB2(0x9299), + MB2(0x96E1), 0x0000, MB2(0xE6C5), MB2(0xE6C6), + MB2(0x8B4D), 0x0000, MB2(0xE6C8), MB2(0x9483), + MB2(0x91DD), 0x0000, 0x0000, MB2(0x94EF), + MB2(0x935C), MB2(0xE6C4), 0x0000, MB2(0x9666), + MB2(0x89EA), MB2(0xE6CA), MB2(0x9847), MB2(0x92C0), /* 8CC0 */ + MB2(0x9864), 0x0000, 0x0000, MB2(0x8E91), + MB2(0xE6C9), 0x0000, MB2(0x91AF), 0x0000, + 0x0000, MB2(0xE6DA), MB2(0x9147), 0x0000, + 0x0000, MB2(0x93F6), 0x0000, MB2(0x956F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6CD), MB2(0x8E5E), + MB2(0x8E92), 0x0000, MB2(0x8FDC), 0x0000, + MB2(0x9485), 0x0000, MB2(0x8CAB), MB2(0xE6CC), /* 8CE0 */ + MB2(0xE6CB), 0x0000, MB2(0x958A), 0x0000, + 0x0000, 0x0000, MB2(0x8EBF), 0x0000, + 0x0000, MB2(0x9371), 0x0000, 0x0000, + MB2(0xFBAD), 0x0000, 0x0000, 0x0000, + MB2(0xFBAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6CF), MB2(0xE6D0), + MB2(0x8D77), MB2(0xE6CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + MB2(0xE6D1), MB2(0xE6D2), 0x0000, MB2(0xE6D4), + MB2(0x91A1), 0x0000, MB2(0xE6D3), MB2(0x8AE4), + 0x0000, MB2(0xE6D6), 0x0000, MB2(0xE6D5), + MB2(0xE6D7), 0x0000, MB2(0xFBAF), MB2(0xE6D9), + MB2(0xE6DB), 0x0000, MB2(0xE6DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + MB2(0x90D4), 0x0000, MB2(0x8ECD), MB2(0xE6DD), + 0x0000, 0x0000, 0x0000, MB2(0x8A71), + 0x0000, MB2(0xE6DE), 0x0000, 0x0000, + MB2(0x9196), MB2(0xE6DF), 0x0000, MB2(0xE6E0), + MB2(0x958B), 0x0000, MB2(0xFBB0), MB2(0x8B4E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E1), 0x0000, 0x0000, /* 8D80 */ + 0x0000, MB2(0x92B4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x897A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8EEF), /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9096), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6E5), 0x0000, + 0x0000, 0x0000, MB2(0xE6E4), 0x0000, + 0x0000, 0x0000, MB2(0xE6E3), 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6EB), + MB2(0xE6E9), 0x0000, 0x0000, MB2(0xE6E6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6E8), 0x0000, + 0x0000, 0x0000, MB2(0xE6E7), MB2(0xE6EA), + 0x0000, MB2(0x8B97), 0x0000, MB2(0xE6EE), + 0x0000, MB2(0x90D5), 0x0000, MB2(0xE6EF), /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8CD7), 0x0000, MB2(0xE6EC), MB2(0xE6ED), + 0x0000, 0x0000, 0x0000, MB2(0x9848), + 0x0000, 0x0000, 0x0000, MB2(0x92B5), + 0x0000, MB2(0x9148), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6F0), 0x0000, 0x0000, MB2(0xE6F3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6F1), MB2(0xE6F2), MB2(0x9778), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93A5), + MB2(0xE6F6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6F4), MB2(0xE6F5), MB2(0xE6F7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE748), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6FA), 0x0000, 0x0000, 0x0000, + MB2(0xE6FB), MB2(0xE6F9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F8), 0x0000, /* 8E40 */ + MB2(0x92FB), 0x0000, 0x0000, MB2(0xE740), + MB2(0xE744), MB2(0xE741), MB2(0xE6FC), 0x0000, + MB2(0xE742), 0x0000, 0x0000, 0x0000, + MB2(0xE743), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE74A), 0x0000, 0x0000, + 0x0000, MB2(0xE745), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90D6), + MB2(0xE747), 0x0000, 0x0000, MB2(0xE749), /* 8E60 */ + MB2(0xE746), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE74C), 0x0000, + MB2(0x8F52), 0x0000, MB2(0xE74B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE74D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE74E), 0x0000, 0x0000, /* 8E80 */ + MB2(0xE751), MB2(0xE750), 0x0000, MB2(0xE74F), + 0x0000, 0x0000, MB2(0xE753), MB2(0xE752), + 0x0000, MB2(0x96F4), 0x0000, 0x0000, + 0x0000, MB2(0xE755), 0x0000, MB2(0xE754), + MB2(0xE756), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE757), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE759), 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE758), MB2(0x9067), + MB2(0xE75A), 0x0000, 0x0000, MB2(0x8BEB), + MB2(0xE75B), MB2(0xE75D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE75E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, MB2(0xE75F), MB2(0xE75C), 0x0000, + MB2(0xE760), 0x0000, MB2(0x8ED4), MB2(0xE761), + MB2(0x8B4F), MB2(0x8C52), 0x0000, MB2(0xFBB2), + 0x0000, 0x0000, MB2(0x8CAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE762), + 0x0000, 0x0000, 0x0000, MB2(0x93EE), + 0x0000, 0x0000, MB2(0x935D), MB2(0xE763), /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE766), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EB2), 0x0000, 0x0000, MB2(0xE765), + MB2(0xE764), MB2(0x8C79), MB2(0xE767), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8A72), /* 8F00 */ + 0x0000, MB2(0xE769), 0x0000, 0x0000, + 0x0000, MB2(0x8DDA), MB2(0xE768), 0x0000, + MB2(0xE771), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE76B), MB2(0xE76D), + MB2(0x95E3), MB2(0xE76A), 0x0000, 0x0000, + 0x0000, MB2(0xE76C), 0x0000, MB2(0xE770), + MB2(0xE76E), MB2(0x8B50), 0x0000, MB2(0xE76F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, MB2(0xE772), 0x0000, + 0x0000, MB2(0x9479), MB2(0x97D6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F53), + 0x0000, 0x0000, 0x0000, MB2(0xE773), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9741), MB2(0xE775), 0x0000, MB2(0xE774), + 0x0000, 0x0000, MB2(0xE778), MB2(0x9760), + 0x0000, 0x0000, MB2(0xE777), 0x0000, /* 8F40 */ + MB2(0x8A8D), MB2(0xE776), MB2(0xE77B), 0x0000, + 0x0000, MB2(0xE77A), 0x0000, 0x0000, + MB2(0xE779), MB2(0x9351), MB2(0xE77C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE77D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE77E), 0x0000, 0x0000, MB2(0x8D8C), + 0x0000, MB2(0x8C44), MB2(0xE780), MB2(0xE781), /* 8F60 */ + MB2(0xE782), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9068), + MB2(0xE783), 0x0000, MB2(0x8EAB), MB2(0xE784), + 0x0000, 0x0000, 0x0000, MB2(0xE785), /* 8FA0 */ + 0x0000, 0x0000, 0x0000, MB2(0x999F), + MB2(0x999E), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE786), MB2(0xE390), MB2(0xE787), + MB2(0x9243), MB2(0x904A), MB2(0x945F), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE788), + 0x0000, 0x0000, MB2(0x95D3), MB2(0x92D2), + MB2(0x8D9E), 0x0000, 0x0000, MB2(0x9248), + 0x0000, 0x0000, MB2(0x8949), 0x0000, /* 8FC0 */ + MB2(0x9698), MB2(0x9076), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C7D), 0x0000, + 0x0000, MB2(0x8BDF), 0x0000, 0x0000, + MB2(0x95D4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE789), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE78B), 0x0000, /* 8FE0 */ + 0x0000, MB2(0xE78A), MB2(0x89DE), 0x0000, + 0x0000, MB2(0x93F4), MB2(0xE78C), MB2(0x9497), + 0x0000, MB2(0x9352), 0x0000, MB2(0xE78D), + MB2(0x8F71), 0x0000, 0x0000, 0x0000, + MB2(0xE78F), 0x0000, 0x0000, MB2(0x96C0), + MB2(0xE79E), MB2(0xE791), MB2(0xE792), 0x0000, + 0x0000, MB2(0x92C7), 0x0000, 0x0000, + MB2(0x91DE), MB2(0x9197), 0x0000, MB2(0x93A6), /* 9000 */ + 0x0000, MB2(0xE790), MB2(0x8B74), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE799), + 0x0000, MB2(0xE796), MB2(0xE7A3), MB2(0x93A7), + MB2(0x9280), MB2(0xE793), 0x0000, MB2(0x92FC), + MB2(0x9372), MB2(0xE794), MB2(0xE798), MB2(0x9080), + 0x0000, MB2(0x9487), MB2(0x92CA), 0x0000, + 0x0000, MB2(0x90C0), MB2(0xE797), MB2(0x91AC), + MB2(0x91A2), MB2(0xE795), MB2(0x88A7), MB2(0x9841), /* 9020 */ + 0x0000, 0x0000, 0x0000, MB2(0xE79A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91DF), 0x0000, + 0x0000, MB2(0x8F54), MB2(0x9069), 0x0000, + 0x0000, MB2(0xE79C), MB2(0xE79B), 0x0000, + MB2(0x88ED), MB2(0xE79D), 0x0000, 0x0000, + MB2(0x954E), 0x0000, MB2(0xE7A5), 0x0000, + 0x0000, MB2(0x93D9), MB2(0x908B), 0x0000, /* 9040 */ + 0x0000, MB2(0x9278), 0x0000, MB2(0x8BF6), + 0x0000, MB2(0xE7A4), MB2(0x9756), MB2(0x895E), + 0x0000, MB2(0x95D5), MB2(0x89DF), MB2(0xE79F), + MB2(0xE7A0), MB2(0xE7A1), MB2(0xE7A2), MB2(0x93B9), + MB2(0x9242), MB2(0x88E1), MB2(0xE7A6), 0x0000, + MB2(0xE7A7), MB2(0xEAA1), 0x0000, 0x0000, + MB2(0x91BB), 0x0000, MB2(0xE7A8), 0x0000, + MB2(0x8993), MB2(0x916B), 0x0000, MB2(0x8CAD), /* 9060 */ + 0x0000, MB2(0x9779), 0x0000, MB2(0xFBB5), + MB2(0xE7A9), MB2(0x934B), 0x0000, 0x0000, + 0x0000, MB2(0x9198), MB2(0x8ED5), MB2(0xE7AA), + 0x0000, 0x0000, MB2(0xE7AD), 0x0000, + 0x0000, MB2(0x8F85), MB2(0xE7AB), MB2(0x914A), + MB2(0x9149), 0x0000, MB2(0x88E2), 0x0000, + MB2(0x97C9), MB2(0xE7AF), 0x0000, MB2(0x94F0), + MB2(0xE7B1), MB2(0xE7B0), MB2(0xE7AE), MB2(0xE284), /* 9080 */ + MB2(0x8AD2), 0x0000, 0x0000, MB2(0xE78E), + 0x0000, MB2(0xE7B3), MB2(0xE7B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B4), + 0x0000, MB2(0x9757), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93DF), /* 90A0 */ + 0x0000, 0x0000, MB2(0x964D), 0x0000, + MB2(0xE7B5), 0x0000, MB2(0x8ED7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B6), + 0x0000, MB2(0xE7B7), 0x0000, 0x0000, + 0x0000, MB2(0xE7B8), 0x0000, 0x0000, + MB2(0x9340), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88E8), 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8D78), 0x0000, + 0x0000, 0x0000, MB2(0x9859), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7BC), + 0x0000, 0x0000, MB2(0xFBB6), 0x0000, + 0x0000, MB2(0x8C53), MB2(0xE7B9), 0x0000, /* 90E0 */ + MB2(0xE7BA), 0x0000, 0x0000, 0x0000, + MB2(0x9594), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A73), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9758), 0x0000, MB2(0x8BBD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9373), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7BD), 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7BE), 0x0000, + 0x0000, MB2(0xFBB8), 0x0000, 0x0000, + 0x0000, MB2(0xE7BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, MB2(0xFBB9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9341), 0x0000, 0x0000, + MB2(0xE7C1), 0x0000, MB2(0xE7C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93D1), MB2(0xE7C2), MB2(0x8F55), + MB2(0x8EDE), MB2(0x947A), MB2(0x9291), 0x0000, + 0x0000, 0x0000, MB2(0x8EF0), 0x0000, + MB2(0x908C), 0x0000, MB2(0xE7C3), 0x0000, + MB2(0xE7C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x907C), MB2(0xE7C5), /* 9160 */ + 0x0000, MB2(0xE7C6), 0x0000, 0x0000, + 0x0000, MB2(0xE7C7), MB2(0x978F), 0x0000, + MB2(0x8F56), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7C9), MB2(0xE7C8), + 0x0000, MB2(0x8D79), 0x0000, MB2(0x8D93), + MB2(0x8E5F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7CC), 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, MB2(0x8F86), + 0x0000, MB2(0xE7CB), 0x0000, MB2(0xE7CA), + 0x0000, MB2(0x91E7), 0x0000, 0x0000, + MB2(0x8CED), 0x0000, MB2(0x90C1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94AE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F58), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7CD), 0x0000, /* 91A0 */ + MB2(0x8FDD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7D0), MB2(0xE7CE), + 0x0000, 0x0000, 0x0000, MB2(0xE7CF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7D2), MB2(0xE7D1), 0x0000, 0x0000, + MB2(0x8FF8), 0x0000, MB2(0xE7D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7D4), MB2(0xE7D5), 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, MB2(0x94CE), MB2(0x8DD1), + MB2(0x8EDF), MB2(0xE7D6), 0x0000, MB2(0xE7D7), + MB2(0x97A2), MB2(0x8F64), MB2(0x96EC), MB2(0x97CA), + MB2(0xE7D8), MB2(0x8BE0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7D9), MB2(0xFBBB), + MB2(0x9342), 0x0000, MB2(0xFBBA), MB2(0xE7DC), + MB2(0x8A98), MB2(0x906A), MB2(0xFBBC), MB2(0xE7DA), + 0x0000, MB2(0xE7DB), 0x0000, MB2(0x92DE), /* 91E0 */ + MB2(0xFBBF), MB2(0xFBC0), MB2(0x9674), MB2(0x8BFA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFBBD), MB2(0xFBBE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7DE), MB2(0xE7DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7DD), 0x0000, 0x0000, MB2(0xE7E1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, MB2(0xFBC1), 0x0000, + 0x0000, 0x0000, MB2(0xFBC3), 0x0000, + 0x0000, MB2(0x93DD), MB2(0x8A62), 0x0000, + MB2(0xFBC2), MB2(0xE7E5), 0x0000, 0x0000, + MB2(0xE7E2), MB2(0xE7E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE86E), 0x0000, 0x0000, + MB2(0xE7E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x97E9), 0x0000, 0x0000, MB2(0x8CD8), + 0x0000, MB2(0xFBCA), MB2(0xFBC4), 0x0000, + MB2(0xFBC6), 0x0000, 0x0000, MB2(0xE7ED), + MB2(0xFBC5), 0x0000, 0x0000, 0x0000, /* 9240 */ + MB2(0x9353), MB2(0xE7E8), 0x0000, 0x0000, + MB2(0xE7EB), MB2(0xE7E9), 0x0000, MB2(0xE7EE), + 0x0000, 0x0000, MB2(0xFBC7), 0x0000, + MB2(0xE7EF), MB2(0xFBC9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7E7), + 0x0000, MB2(0xFBC8), MB2(0xE7F4), MB2(0x8994), + 0x0000, 0x0000, MB2(0xE7E6), 0x0000, + 0x0000, 0x0000, MB2(0x94AB), 0x0000, /* 9260 */ + MB2(0xE7EA), 0x0000, MB2(0x8FDE), MB2(0xFBCB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8D7A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFBCD), + MB2(0xFBCE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9667), 0x0000, + MB2(0x8BE2), 0x0000, 0x0000, MB2(0x8F65), /* 9280 */ + 0x0000, MB2(0x93BA), 0x0000, 0x0000, + MB2(0xFA5F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x914C), 0x0000, MB2(0xE7F2), + 0x0000, MB2(0xE7EC), MB2(0xE7F1), 0x0000, + MB2(0x96C1), 0x0000, MB2(0x92B6), MB2(0xE7F3), + MB2(0xE7F0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xFBCC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x914B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F7), + 0x0000, MB2(0xE7F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F5), + MB2(0xFBD2), 0x0000, MB2(0x964E), MB2(0xFBD6), + 0x0000, MB2(0xFBD4), 0x0000, MB2(0xFBD0), + 0x0000, MB2(0xFBD1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFBD5), 0x0000, 0x0000, 0x0000, /* 92E0 */ + MB2(0x8F9B), 0x0000, 0x0000, MB2(0xFBCF), + 0x0000, MB2(0xE7F8), MB2(0x95DD), 0x0000, + 0x0000, MB2(0x8973), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9565), MB2(0x9292), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B98), MB2(0xFA65), MB2(0xE7FA), MB2(0xFBD9), + MB2(0x8D7C), 0x0000, 0x0000, MB2(0xFBDC), + 0x0000, 0x0000, MB2(0xFBDE), 0x0000, /* 9300 */ + 0x0000, 0x0000, MB2(0x8E4B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F9), + MB2(0x908D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x908E), MB2(0xE840), MB2(0xE842), 0x0000, + 0x0000, MB2(0xFBDD), MB2(0xFBDB), 0x0000, + MB2(0x8FF9), MB2(0xFBD8), MB2(0xE841), MB2(0xE843), /* 9320 */ + 0x0000, MB2(0xFBD7), MB2(0x8BD1), 0x0000, + MB2(0x9564), 0x0000, 0x0000, MB2(0x8EE0), + MB2(0x9842), 0x0000, MB2(0xE7FC), MB2(0x8DF6), + 0x0000, 0x0000, MB2(0x985E), 0x0000, + 0x0000, MB2(0xE845), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE844), MB2(0xE846), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + MB2(0xE7FB), 0x0000, 0x0000, 0x0000, + MB2(0xFA5E), 0x0000, 0x0000, MB2(0x93E7), + 0x0000, MB2(0x9374), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x92D5), 0x0000, MB2(0xE84B), MB2(0xFBE0), + 0x0000, 0x0000, 0x0000, MB2(0x9262), + MB2(0xE847), 0x0000, 0x0000, 0x0000, + MB2(0xE848), 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C4C), 0x0000, MB2(0xE84A), 0x0000, + MB2(0xFBDF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8CAE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE849), 0x0000, MB2(0x8FDF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A99), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE84F), 0x0000, MB2(0x8DBD), MB2(0x9199), + 0x0000, 0x0000, MB2(0x92C8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + MB2(0xFBE1), 0x0000, 0x0000, MB2(0x8A5A), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE84D), MB2(0xE84E), MB2(0x92C1), 0x0000, + MB2(0xE84C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE850), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE856), /* 93C0 */ + 0x0000, 0x0000, MB2(0xFBE2), 0x0000, + MB2(0xE859), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE858), MB2(0x934C), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE851), MB2(0xE852), + MB2(0xE855), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE857), MB2(0xFBE3), 0x0000, + 0x0000, MB2(0x8BBE), 0x0000, 0x0000, /* 93E0 */ + MB2(0xE85A), MB2(0xE854), 0x0000, 0x0000, + MB2(0xE853), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFBE4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE85E), /* 9400 */ + 0x0000, 0x0000, 0x0000, MB2(0xE85F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE860), 0x0000, 0x0000, MB2(0xE85D), + MB2(0xE85C), 0x0000, 0x0000, 0x0000, + MB2(0x8FE0), MB2(0x93A8), MB2(0xE85B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE864), 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE862), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFBE5), 0x0000, 0x0000, + 0x0000, MB2(0xE863), MB2(0xE861), 0x0000, + MB2(0x91F6), 0x0000, MB2(0xE865), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE866), 0x0000, 0x0000, /* 9440 */ + MB2(0xE868), MB2(0xFBE6), 0x0000, 0x0000, + MB2(0xFBE7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8AD3), MB2(0xE867), MB2(0x96F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE873), MB2(0xE869), + 0x0000, 0x0000, MB2(0xE86C), 0x0000, + MB2(0xE86A), 0x0000, MB2(0xE86B), 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE86D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE86F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE870), 0x0000, MB2(0xE871), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE874), MB2(0xE872), MB2(0xE875), MB2(0xE877), + 0x0000, MB2(0xE876), 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92B7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x96E5), 0x0000, MB2(0xE878), MB2(0x914D), /* 9580 */ + 0x0000, 0x0000, 0x0000, MB2(0xE879), + 0x0000, MB2(0x95C2), MB2(0xE87A), MB2(0x8A4A), + 0x0000, 0x0000, 0x0000, MB2(0x895B), + 0x0000, MB2(0x8AD5), MB2(0xFBE8), MB2(0x8AD4), + MB2(0xE87B), 0x0000, MB2(0xE87C), 0x0000, + MB2(0xE87D), MB2(0xE87E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE880), 0x0000, MB2(0x8AD6), MB2(0x8A74), /* 95A0 */ + MB2(0x8D7D), MB2(0x94B4), 0x0000, MB2(0xE882), + MB2(0xE881), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE883), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x897B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE886), 0x0000, MB2(0xE885), + MB2(0xE884), 0x0000, MB2(0xE887), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE88A), /* 95C0 */ + 0x0000, 0x0000, 0x0000, MB2(0x88C5), + 0x0000, 0x0000, MB2(0xE888), 0x0000, + MB2(0xE88C), MB2(0xE88B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE88E), MB2(0xE88D), MB2(0xE88F), 0x0000, + MB2(0x93AC), 0x0000, 0x0000, 0x0000, + MB2(0xE890), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE891), MB2(0xE893), 0x0000, /* 95E0 */ + 0x0000, MB2(0xE892), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x958C), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE894), 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE895), 0x0000, MB2(0x8DE3), 0x0000, + 0x0000, 0x0000, MB2(0xE896), MB2(0xE897), + 0x0000, 0x0000, MB2(0x9668), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x916A), + 0x0000, 0x0000, 0x0000, MB2(0x88A2), + MB2(0x91C9), 0x0000, MB2(0xE898), 0x0000, /* 9640 */ + MB2(0x958D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE89B), + MB2(0xE899), MB2(0x8D7E), 0x0000, MB2(0xE89A), + MB2(0x8CC0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95C3), + MB2(0xE89D), MB2(0xE89F), MB2(0xE89E), MB2(0xE8A0), + 0x0000, 0x0000, MB2(0x8940), MB2(0x9077), /* 9660 */ + MB2(0x8F9C), MB2(0x8AD7), MB2(0xE8A1), 0x0000, + 0x0000, 0x0000, MB2(0x9486), 0x0000, + MB2(0xE8A3), 0x0000, 0x0000, 0x0000, + MB2(0x8941), 0x0000, MB2(0xE8A2), MB2(0x92C2), + 0x0000, MB2(0x97CB), MB2(0x93A9), MB2(0xE89C), + MB2(0x97A4), 0x0000, MB2(0x8CAF), 0x0000, + 0x0000, MB2(0x977A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, MB2(0x8BF7), MB2(0x97B2), 0x0000, + MB2(0x8C47), 0x0000, MB2(0x91E0), MB2(0xE440), + 0x0000, MB2(0xE8A4), MB2(0x8A4B), MB2(0x908F), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A75), MB2(0xE8A6), 0x0000, MB2(0xE8A7), + MB2(0xE8A5), MB2(0x8C84), 0x0000, MB2(0x8DDB), + MB2(0x8FE1), MB2(0xFBEB), 0x0000, 0x0000, + MB2(0x8942), 0x0000, 0x0000, MB2(0x97D7), /* 96A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE8A9), + MB2(0xE7AC), 0x0000, MB2(0xE8A8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFBEC), + MB2(0xE8AC), MB2(0xE8AA), MB2(0xE8AB), 0x0000, + MB2(0xE8AD), 0x0000, MB2(0xE8AE), MB2(0x97EA), + MB2(0xE8AF), MB2(0xE8B0), 0x0000, MB2(0x90C7), + MB2(0x94B9), 0x0000, 0x0000, 0x0000, + MB2(0x909D), MB2(0x8AE5), 0x0000, 0x0000, /* 96C0 */ + MB2(0x9759), MB2(0x89EB), MB2(0x8F57), MB2(0x8CD9), + 0x0000, MB2(0xE8B3), 0x0000, MB2(0xE8B2), + MB2(0x8E93), MB2(0xE8B4), MB2(0xE8B1), 0x0000, + 0x0000, MB2(0x8E47), 0x0000, 0x0000, + 0x0000, MB2(0xE8B8), MB2(0xE5AB), 0x0000, + 0x0000, MB2(0x99D4), 0x0000, MB2(0x9097), + MB2(0xE8B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97A3), MB2(0x93EF), /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x894A), 0x0000, MB2(0x90E1), MB2(0x8EB4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x95B5), 0x0000, MB2(0x895F), 0x0000, + 0x0000, 0x0000, MB2(0x97EB), MB2(0x978B), + 0x0000, MB2(0xE8B9), 0x0000, MB2(0x9364), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EF9), 0x0000, 0x0000, 0x0000, /* 9700 */ + MB2(0xE8BA), 0x0000, MB2(0xE8BB), MB2(0x906B), + MB2(0xE8BC), 0x0000, MB2(0x97EC), 0x0000, + 0x0000, MB2(0xE8B7), MB2(0xE8BE), MB2(0xE8C0), + 0x0000, MB2(0xE8BF), 0x0000, MB2(0xE8BD), + 0x0000, 0x0000, MB2(0xE8C1), 0x0000, + 0x0000, MB2(0xE8C2), 0x0000, 0x0000, + MB2(0x919A), 0x0000, MB2(0x89E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + MB2(0xE8C3), 0x0000, 0x0000, MB2(0x96B6), + 0x0000, 0x0000, MB2(0xE8C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8C5), 0x0000, MB2(0x9849), MB2(0xFBED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E50), MB2(0xE8C6), 0x0000, MB2(0xFBEE), + 0x0000, MB2(0xE8C7), MB2(0xE8C8), 0x0000, + 0x0000, 0x0000, MB2(0xE8CC), MB2(0xFBEF), /* 9740 */ + MB2(0xE8C9), 0x0000, MB2(0xE8CA), 0x0000, + MB2(0xE8CB), MB2(0xE8CD), 0x0000, 0x0000, + 0x0000, MB2(0xFBF0), 0x0000, MB2(0xFBF1), + 0x0000, MB2(0xFBF2), MB2(0x90C2), 0x0000, + 0x0000, MB2(0xFBF3), MB2(0x96F5), 0x0000, + 0x0000, MB2(0x90C3), 0x0000, 0x0000, + MB2(0xE8CE), 0x0000, MB2(0x94F1), 0x0000, + MB2(0xE8CF), MB2(0xEA72), MB2(0x96CA), 0x0000, /* 9760 */ + MB2(0xE8D0), 0x0000, MB2(0xE8D1), 0x0000, + MB2(0xE8D2), MB2(0x8A76), 0x0000, MB2(0xE8D4), + 0x0000, MB2(0x9078), 0x0000, 0x0000, + 0x0000, MB2(0xE8D5), 0x0000, 0x0000, + MB2(0x8C43), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8D6), MB2(0xE8DA), 0x0000, + MB2(0xE8D8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8D9), 0x0000, 0x0000, /* 9780 */ + MB2(0x8A93), MB2(0xE8D7), MB2(0xE8DB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8DC), + 0x0000, MB2(0x88C6), 0x0000, MB2(0xE8DD), + MB2(0xE8DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FE2), 0x0000, 0x0000, 0x0000, + MB2(0xE8DF), 0x0000, 0x0000, 0x0000, + MB2(0x8B66), 0x0000, 0x0000, MB2(0xE8E2), /* 97A0 */ + 0x0000, 0x0000, MB2(0xE8E1), 0x0000, + MB2(0xE8E0), 0x0000, 0x0000, MB2(0xE691), + 0x0000, MB2(0x95DA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8E3), + MB2(0xE8E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8E5), /* 97C0 */ + 0x0000, 0x0000, MB2(0xE8E6), 0x0000, + MB2(0xE8E7), 0x0000, 0x0000, MB2(0xE8E8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AD8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8EA), MB2(0x9442), 0x0000, + 0x0000, 0x0000, MB2(0xE8EC), MB2(0x89B9), + 0x0000, MB2(0xE8EF), MB2(0xE8EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8943), + 0x0000, 0x0000, 0x0000, MB2(0x8BBF), + 0x0000, MB2(0x95C5), MB2(0x92B8), MB2(0x8DA0), /* 9800 */ + 0x0000, MB2(0x8D80), MB2(0x8F87), 0x0000, + MB2(0x907B), 0x0000, 0x0000, 0x0000, + MB2(0xE8F1), 0x0000, 0x0000, MB2(0xE8F0), + MB2(0x9761), MB2(0x8AE6), MB2(0x94D0), MB2(0x93DA), + 0x0000, 0x0000, 0x0000, MB2(0x909C), + MB2(0x97CC), 0x0000, MB2(0x8C7A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8F4), 0x0000, 0x0000, /* 9820 */ + MB2(0xE8F3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x966A), MB2(0x93AA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x896F), 0x0000, 0x0000, MB2(0xE8F5), + MB2(0xE8F2), 0x0000, 0x0000, MB2(0x9570), + MB2(0x978A), MB2(0xE8F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, MB2(0xE8F7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8F9), + MB2(0x91E8), MB2(0x8A7A), MB2(0x8A7B), MB2(0xE8F8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AE7), MB2(0x8CB0), 0x0000, MB2(0xFBF4), + MB2(0x8AE8), 0x0000, 0x0000, MB2(0x935E), + 0x0000, 0x0000, MB2(0x97DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, MB2(0xFBF5), 0x0000, MB2(0x8CDA), + 0x0000, 0x0000, 0x0000, MB2(0xE8FA), + 0x0000, 0x0000, 0x0000, MB2(0xE8FB), + MB2(0xE8FC), MB2(0xE940), 0x0000, MB2(0xE942), + MB2(0xE941), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9597), 0x0000, MB2(0xE943), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE944), + 0x0000, MB2(0xE945), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE946), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE948), /* 98C0 */ + MB2(0xE947), 0x0000, MB2(0xE949), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94F2), + MB2(0xE3CA), 0x0000, 0x0000, MB2(0x9048), + 0x0000, 0x0000, MB2(0x8B51), 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE94A), 0x0000, MB2(0xE94B), + 0x0000, MB2(0x99AA), MB2(0x9F5A), MB2(0x94D1), + 0x0000, 0x0000, MB2(0x88F9), 0x0000, + MB2(0x88B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E94), MB2(0x964F), MB2(0x8FFC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE94C), /* 9900 */ + 0x0000, MB2(0x96DD), 0x0000, 0x0000, + 0x0000, MB2(0xE94D), MB2(0x977B), 0x0000, + MB2(0x8961), 0x0000, 0x0000, 0x0000, + MB2(0x8E60), 0x0000, MB2(0xE94E), MB2(0x89EC), + MB2(0xE94F), 0x0000, 0x0000, 0x0000, + MB2(0xE950), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE952), MB2(0xE953), 0x0000, + MB2(0xE955), MB2(0xE951), 0x0000, 0x0000, /* 9920 */ + MB2(0xE954), 0x0000, 0x0000, MB2(0xFBF8), + MB2(0x8AD9), 0x0000, 0x0000, 0x0000, + MB2(0xE956), 0x0000, MB2(0xE957), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE958), MB2(0xE959), 0x0000, + 0x0000, 0x0000, MB2(0xE95A), 0x0000, /* 9940 */ + 0x0000, MB2(0xE95C), 0x0000, 0x0000, + 0x0000, MB2(0xE95B), 0x0000, MB2(0xE95E), + MB2(0xE961), 0x0000, 0x0000, 0x0000, + MB2(0xE95D), MB2(0xE95F), MB2(0xE960), 0x0000, + 0x0000, MB2(0xE962), 0x0000, MB2(0x8BC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EF1), MB2(0xE963), + MB2(0xE964), MB2(0x8D81), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFBFA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, MB2(0xE965), 0x0000, 0x0000, + MB2(0x8A5D), 0x0000, 0x0000, 0x0000, + MB2(0x946E), MB2(0xE966), MB2(0xE967), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9279), + MB2(0x93E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE968), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x949D), 0x0000, 0x0000, /* 99C0 */ + MB2(0x91CA), MB2(0x8977), MB2(0x8BEC), 0x0000, + MB2(0x8BED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9293), MB2(0xE96D), MB2(0x8BEE), 0x0000, + 0x0000, MB2(0x89ED), 0x0000, 0x0000, + MB2(0xE96C), 0x0000, 0x0000, MB2(0xE96A), + 0x0000, MB2(0xE96B), 0x0000, MB2(0xE969), + 0x0000, 0x0000, MB2(0xE977), 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE96E), MB2(0xE96F), 0x0000, + 0x0000, MB2(0xE970), MB2(0xE971), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE973), 0x0000, 0x0000, MB2(0xE972), + 0x0000, 0x0000, 0x0000, MB2(0x8F78), + 0x0000, MB2(0xE974), 0x0000, 0x0000, /* 9A00 */ + 0x0000, MB2(0xE976), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B52), MB2(0xE975), + 0x0000, 0x0000, MB2(0x919B), MB2(0x8CB1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE978), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91CB), 0x0000, 0x0000, MB2(0xE979), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x93AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE97A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE980), 0x0000, + MB2(0xE97D), 0x0000, MB2(0xE97C), MB2(0xE97E), /* 9A40 */ + 0x0000, MB2(0xE97B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE982), MB2(0xFBFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE981), 0x0000, MB2(0xE984), + 0x0000, 0x0000, MB2(0x8BC1), MB2(0xE983), + 0x0000, 0x0000, 0x0000, MB2(0xE985), + 0x0000, 0x0000, MB2(0xE986), 0x0000, /* 9A60 */ + MB2(0xE988), MB2(0xE987), 0x0000, 0x0000, + 0x0000, MB2(0xE989), MB2(0xE98B), MB2(0xE98A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8D9C), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE98C), 0x0000, 0x0000, + MB2(0xE98D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A5B), 0x0000, 0x0000, 0x0000, + MB2(0xE98E), 0x0000, 0x0000, 0x0000, + MB2(0xE98F), 0x0000, 0x0000, 0x0000, /* 9AC0 */ + MB2(0x9091), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE990), + 0x0000, MB2(0xE991), 0x0000, MB2(0xE992), + MB2(0xE993), 0x0000, 0x0000, 0x0000, + MB2(0x8D82), MB2(0xFBFC), 0x0000, 0x0000, + MB2(0xFC40), 0x0000, MB2(0xE994), MB2(0xE995), + 0x0000, 0x0000, MB2(0xE996), MB2(0xE997), /* 9AE0 */ + 0x0000, 0x0000, MB2(0xE998), 0x0000, + 0x0000, 0x0000, MB2(0x94AF), MB2(0xE99A), + 0x0000, MB2(0x9545), MB2(0xE99B), MB2(0xE999), + 0x0000, MB2(0xE99D), 0x0000, 0x0000, + MB2(0xE99C), 0x0000, 0x0000, MB2(0xE99E), + 0x0000, 0x0000, 0x0000, MB2(0xE99F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, MB2(0xE9A0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9A1), 0x0000, MB2(0xE9A2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9A3), + 0x0000, 0x0000, MB2(0xE9A4), MB2(0xE9A5), /* 9B20 */ + 0x0000, MB2(0xE9A6), 0x0000, MB2(0xE9A7), + MB2(0xE9A8), MB2(0xE9A9), MB2(0xE9AA), 0x0000, + 0x0000, 0x0000, MB2(0xE9AB), MB2(0xE9AC), + 0x0000, MB2(0x9F54), MB2(0xE9AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F6), + MB2(0x8B53), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A40), MB2(0x8DB0), MB2(0xE9AF), /* 9B40 */ + MB2(0xE9AE), MB2(0x96A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B1), MB2(0xE9B2), MB2(0xE9B0), + 0x0000, MB2(0xE9B3), 0x0000, 0x0000, + MB2(0x9682), 0x0000, 0x0000, 0x0000, + MB2(0xE9B4), 0x0000, MB2(0x8B9B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9844), + 0x0000, 0x0000, MB2(0xFC42), 0x0000, + MB2(0xE9B5), MB2(0xFC41), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9B7), /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x88BC), MB2(0xFC43), + 0x0000, MB2(0xE9B8), MB2(0x95A9), MB2(0xE9B6), + 0x0000, 0x0000, MB2(0xE9B9), MB2(0xE9BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9BB), + MB2(0xE9BC), 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BD), 0x0000, MB2(0x968E), MB2(0x8E4C), + 0x0000, MB2(0x8DF8), MB2(0x914E), 0x0000, + 0x0000, MB2(0xFC44), 0x0000, 0x0000, + MB2(0xE9BE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C1), 0x0000, MB2(0xFC45), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BF), 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, MB2(0xE9C2), 0x0000, + 0x0000, MB2(0x8CEF), MB2(0xE9C0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9C3), + 0x0000, MB2(0xE9C4), MB2(0xE9C5), 0x0000, + MB2(0xE9C9), 0x0000, MB2(0x8E49), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9CA), MB2(0xE9C7), MB2(0xE9C6), /* 9BE0 */ + MB2(0xE9C8), 0x0000, 0x0000, 0x0000, + MB2(0x8C7E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9CE), MB2(0xE9CD), MB2(0xE9CC), 0x0000, + 0x0000, MB2(0x88B1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFC46), 0x0000, 0x0000, 0x0000, /* 9C00 */ + MB2(0xE9D8), 0x0000, MB2(0xE9D4), 0x0000, + MB2(0xE9D5), MB2(0xE9D1), MB2(0xE9D7), 0x0000, + MB2(0xE9D3), MB2(0x8A82), 0x0000, 0x0000, + MB2(0x986B), 0x0000, MB2(0xE9D6), MB2(0xE9D2), + MB2(0xE9D0), MB2(0xE9CF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9DD), 0x0000, 0x0000, /* 9C20 */ + MB2(0xE9DC), MB2(0xE9DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9568), MB2(0xE9D9), MB2(0x88F1), + MB2(0xE9DE), 0x0000, MB2(0xE9E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A8F), MB2(0xE9CB), MB2(0x8956), + 0x0000, 0x0000, MB2(0xE9E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, MB2(0xE9E1), MB2(0xE9DF), + MB2(0x924C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9690), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97D8), + 0x0000, 0x0000, MB2(0xE9E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9E4), 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xE9E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9E6), 0x0000, + MB2(0xE9E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, MB2(0x92B9), 0x0000, MB2(0xE9E8), + 0x0000, MB2(0x94B5), 0x0000, MB2(0xE9ED), + MB2(0xE9E9), 0x0000, 0x0000, 0x0000, + MB2(0xE9EA), 0x0000, 0x0000, MB2(0x9650), + MB2(0x96C2), 0x0000, MB2(0x93CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9EE), /* 9D00 */ + 0x0000, 0x0000, MB2(0xE9EF), MB2(0x93BC), + MB2(0xE9EC), MB2(0xE9EB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89A8), 0x0000, + 0x0000, 0x0000, MB2(0xE9F7), 0x0000, + 0x0000, MB2(0xE9F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8995), + 0x0000, 0x0000, 0x0000, MB2(0xE9F4), + 0x0000, 0x0000, 0x0000, MB2(0xE9F3), /* 9D20 */ + 0x0000, 0x0000, MB2(0xE9F1), 0x0000, + MB2(0x8A9B), 0x0000, MB2(0xE9F0), MB2(0x8EB0), + MB2(0x89A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D83), + 0x0000, 0x0000, MB2(0xE9FA), MB2(0xE9F9), + 0x0000, MB2(0xE9F8), 0x0000, 0x0000, /* 9D40 */ + MB2(0xE9F5), 0x0000, MB2(0xE9FB), 0x0000, + MB2(0xE9FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA44), MB2(0xEA43), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA45), 0x0000, 0x0000, + MB2(0x894C), MB2(0xEA40), MB2(0xEA41), 0x0000, + MB2(0x8D94), MB2(0x96B7), 0x0000, 0x0000, /* 9D60 */ + MB2(0xEA42), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xFC48), + MB2(0x9651), 0x0000, 0x0000, MB2(0xEA4A), + MB2(0xFC47), 0x0000, MB2(0xEA46), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA4B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, MB2(0xEA48), + 0x0000, MB2(0xEA47), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C7B), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA4C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + MB2(0xEA4D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA4E), 0x0000, MB2(0xEA49), + 0x0000, 0x0000, 0x0000, MB2(0xE9F2), + 0x0000, 0x0000, MB2(0xEA4F), 0x0000, + MB2(0x92DF), 0x0000, 0x0000, 0x0000, + MB2(0xEA53), 0x0000, MB2(0xEA54), MB2(0xEA52), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA51), MB2(0xEA57), 0x0000, /* 9DC0 */ + MB2(0xEA50), 0x0000, MB2(0xEA55), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA56), + 0x0000, 0x0000, 0x0000, MB2(0xEA59), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA58), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, MB2(0xEA5B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA5C), 0x0000, MB2(0xEA5D), + 0x0000, 0x0000, MB2(0x9868), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA5A), MB2(0x91E9), MB2(0x8DEB), 0x0000, + 0x0000, MB2(0xEA5E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFC4A), MB2(0xEA5F), MB2(0xEA60), + 0x0000, 0x0000, MB2(0xEA61), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA62), 0x0000, 0x0000, + MB2(0x8CB2), MB2(0xEA63), 0x0000, 0x0000, + 0x0000, MB2(0xEA64), 0x0000, MB2(0x8EAD), + 0x0000, MB2(0xEA65), 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA66), 0x0000, 0x0000, MB2(0xEA67), + MB2(0xEA68), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA6B), MB2(0xEA69), MB2(0x985B), + 0x0000, MB2(0xEA6A), 0x0000, MB2(0x97ED), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA6C), 0x0000, MB2(0x97D9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, MB2(0xEA6D), MB2(0x949E), 0x0000, + 0x0000, MB2(0xEA6E), MB2(0xEA70), 0x0000, + 0x0000, MB2(0xEA71), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA6F), MB2(0x8D8D), MB2(0x96CB), MB2(0x9683), + MB2(0x9BF5), 0x0000, MB2(0x9F80), MB2(0x969B), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + MB2(0x89A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA73), MB2(0x8B6F), MB2(0xEA74), MB2(0xEA75), + MB2(0xEA76), MB2(0xFC4B), MB2(0x8D95), 0x0000, + MB2(0xEA77), 0x0000, 0x0000, 0x0000, + MB2(0xE0D2), MB2(0x96D9), 0x0000, MB2(0x91E1), + MB2(0xEA78), MB2(0xEA7A), MB2(0xEA79), 0x0000, + MB2(0xEA7B), 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, MB2(0xEA7C), 0x0000, 0x0000, + MB2(0xEA7D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA7E), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA80), 0x0000, MB2(0xEA81), MB2(0xEA82), + 0x0000, MB2(0xEA83), 0x0000, MB2(0xEA84), + MB2(0xEA85), MB2(0xEA86), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, MB2(0xEA87), + MB2(0xEA88), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9343), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CDB), + 0x0000, MB2(0xEA8A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x916C), MB2(0xEA8B), 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA8C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9540), + 0x0000, 0x0000, MB2(0xEA8D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA8E), MB2(0xE256), + 0x0000, 0x0000, MB2(0xE6D8), MB2(0xE8EB), + 0x0000, 0x0000, MB2(0xEA8F), 0x0000, + MB2(0xEA90), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA92), + MB2(0xEA93), MB2(0xEA94), MB2(0x97EE), MB2(0xEA91), /* 9F60 */ + 0x0000, 0x0000, MB2(0xEA95), MB2(0xEA96), + 0x0000, 0x0000, MB2(0xEA98), 0x0000, + MB2(0xEA97), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA9A), 0x0000, + 0x0000, 0x0000, MB2(0xEA9B), MB2(0xEA99), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x97B4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA9C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA9D), MB2(0xE273), 0x0000, 0x0000, + MB2(0xEA9E), 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF040), MB2(0xF041), MB2(0xF042), MB2(0xF043), /* E000 */ + MB2(0xF044), MB2(0xF045), MB2(0xF046), MB2(0xF047), + MB2(0xF048), MB2(0xF049), MB2(0xF04A), MB2(0xF04B), + MB2(0xF04C), MB2(0xF04D), MB2(0xF04E), MB2(0xF04F), + MB2(0xF050), MB2(0xF051), MB2(0xF052), MB2(0xF053), + MB2(0xF054), MB2(0xF055), MB2(0xF056), MB2(0xF057), + MB2(0xF058), MB2(0xF059), MB2(0xF05A), MB2(0xF05B), + MB2(0xF05C), MB2(0xF05D), MB2(0xF05E), MB2(0xF05F), + MB2(0xF060), MB2(0xF061), MB2(0xF062), MB2(0xF063), /* E020 */ + MB2(0xF064), MB2(0xF065), MB2(0xF066), MB2(0xF067), + MB2(0xF068), MB2(0xF069), MB2(0xF06A), MB2(0xF06B), + MB2(0xF06C), MB2(0xF06D), MB2(0xF06E), MB2(0xF06F), + MB2(0xF070), MB2(0xF071), MB2(0xF072), MB2(0xF073), + MB2(0xF074), MB2(0xF075), MB2(0xF076), MB2(0xF077), + MB2(0xF078), MB2(0xF079), MB2(0xF07A), MB2(0xF07B), + MB2(0xF07C), MB2(0xF07D), MB2(0xF07E), MB2(0xF080), + MB2(0xF081), MB2(0xF082), MB2(0xF083), MB2(0xF084), /* E040 */ + MB2(0xF085), MB2(0xF086), MB2(0xF087), MB2(0xF088), + MB2(0xF089), MB2(0xF08A), MB2(0xF08B), MB2(0xF08C), + MB2(0xF08D), MB2(0xF08E), MB2(0xF08F), MB2(0xF090), + MB2(0xF091), MB2(0xF092), MB2(0xF093), MB2(0xF094), + MB2(0xF095), MB2(0xF096), MB2(0xF097), MB2(0xF098), + MB2(0xF099), MB2(0xF09A), MB2(0xF09B), MB2(0xF09C), + MB2(0xF09D), MB2(0xF09E), MB2(0xF09F), MB2(0xF0A0), + MB2(0xF0A1), MB2(0xF0A2), MB2(0xF0A3), MB2(0xF0A4), /* E060 */ + MB2(0xF0A5), MB2(0xF0A6), MB2(0xF0A7), MB2(0xF0A8), + MB2(0xF0A9), MB2(0xF0AA), MB2(0xF0AB), MB2(0xF0AC), + MB2(0xF0AD), MB2(0xF0AE), MB2(0xF0AF), MB2(0xF0B0), + MB2(0xF0B1), MB2(0xF0B2), MB2(0xF0B3), MB2(0xF0B4), + MB2(0xF0B5), MB2(0xF0B6), MB2(0xF0B7), MB2(0xF0B8), + MB2(0xF0B9), MB2(0xF0BA), MB2(0xF0BB), MB2(0xF0BC), + MB2(0xF0BD), MB2(0xF0BE), MB2(0xF0BF), MB2(0xF0C0), + MB2(0xF0C1), MB2(0xF0C2), MB2(0xF0C3), MB2(0xF0C4), /* E080 */ + MB2(0xF0C5), MB2(0xF0C6), MB2(0xF0C7), MB2(0xF0C8), + MB2(0xF0C9), MB2(0xF0CA), MB2(0xF0CB), MB2(0xF0CC), + MB2(0xF0CD), MB2(0xF0CE), MB2(0xF0CF), MB2(0xF0D0), + MB2(0xF0D1), MB2(0xF0D2), MB2(0xF0D3), MB2(0xF0D4), + MB2(0xF0D5), MB2(0xF0D6), MB2(0xF0D7), MB2(0xF0D8), + MB2(0xF0D9), MB2(0xF0DA), MB2(0xF0DB), MB2(0xF0DC), + MB2(0xF0DD), MB2(0xF0DE), MB2(0xF0DF), MB2(0xF0E0), + MB2(0xF0E1), MB2(0xF0E2), MB2(0xF0E3), MB2(0xF0E4), /* E0A0 */ + MB2(0xF0E5), MB2(0xF0E6), MB2(0xF0E7), MB2(0xF0E8), + MB2(0xF0E9), MB2(0xF0EA), MB2(0xF0EB), MB2(0xF0EC), + MB2(0xF0ED), MB2(0xF0EE), MB2(0xF0EF), MB2(0xF0F0), + MB2(0xF0F1), MB2(0xF0F2), MB2(0xF0F3), MB2(0xF0F4), + MB2(0xF0F5), MB2(0xF0F6), MB2(0xF0F7), MB2(0xF0F8), + MB2(0xF0F9), MB2(0xF0FA), MB2(0xF0FB), MB2(0xF0FC), + MB2(0xF140), MB2(0xF141), MB2(0xF142), MB2(0xF143), + MB2(0xF144), MB2(0xF145), MB2(0xF146), MB2(0xF147), /* E0C0 */ + MB2(0xF148), MB2(0xF149), MB2(0xF14A), MB2(0xF14B), + MB2(0xF14C), MB2(0xF14D), MB2(0xF14E), MB2(0xF14F), + MB2(0xF150), MB2(0xF151), MB2(0xF152), MB2(0xF153), + MB2(0xF154), MB2(0xF155), MB2(0xF156), MB2(0xF157), + MB2(0xF158), MB2(0xF159), MB2(0xF15A), MB2(0xF15B), + MB2(0xF15C), MB2(0xF15D), MB2(0xF15E), MB2(0xF15F), + MB2(0xF160), MB2(0xF161), MB2(0xF162), MB2(0xF163), + MB2(0xF164), MB2(0xF165), MB2(0xF166), MB2(0xF167), /* E0E0 */ + MB2(0xF168), MB2(0xF169), MB2(0xF16A), MB2(0xF16B), + MB2(0xF16C), MB2(0xF16D), MB2(0xF16E), MB2(0xF16F), + MB2(0xF170), MB2(0xF171), MB2(0xF172), MB2(0xF173), + MB2(0xF174), MB2(0xF175), MB2(0xF176), MB2(0xF177), + MB2(0xF178), MB2(0xF179), MB2(0xF17A), MB2(0xF17B), + MB2(0xF17C), MB2(0xF17D), MB2(0xF17E), MB2(0xF180), + MB2(0xF181), MB2(0xF182), MB2(0xF183), MB2(0xF184), + MB2(0xF185), MB2(0xF186), MB2(0xF187), MB2(0xF188), /* E100 */ + MB2(0xF189), MB2(0xF18A), MB2(0xF18B), MB2(0xF18C), + MB2(0xF18D), MB2(0xF18E), MB2(0xF18F), MB2(0xF190), + MB2(0xF191), MB2(0xF192), MB2(0xF193), MB2(0xF194), + MB2(0xF195), MB2(0xF196), MB2(0xF197), MB2(0xF198), + MB2(0xF199), MB2(0xF19A), MB2(0xF19B), MB2(0xF19C), + MB2(0xF19D), MB2(0xF19E), MB2(0xF19F), MB2(0xF1A0), + MB2(0xF1A1), MB2(0xF1A2), MB2(0xF1A3), MB2(0xF1A4), + MB2(0xF1A5), MB2(0xF1A6), MB2(0xF1A7), MB2(0xF1A8), /* E120 */ + MB2(0xF1A9), MB2(0xF1AA), MB2(0xF1AB), MB2(0xF1AC), + MB2(0xF1AD), MB2(0xF1AE), MB2(0xF1AF), MB2(0xF1B0), + MB2(0xF1B1), MB2(0xF1B2), MB2(0xF1B3), MB2(0xF1B4), + MB2(0xF1B5), MB2(0xF1B6), MB2(0xF1B7), MB2(0xF1B8), + MB2(0xF1B9), MB2(0xF1BA), MB2(0xF1BB), MB2(0xF1BC), + MB2(0xF1BD), MB2(0xF1BE), MB2(0xF1BF), MB2(0xF1C0), + MB2(0xF1C1), MB2(0xF1C2), MB2(0xF1C3), MB2(0xF1C4), + MB2(0xF1C5), MB2(0xF1C6), MB2(0xF1C7), MB2(0xF1C8), /* E140 */ + MB2(0xF1C9), MB2(0xF1CA), MB2(0xF1CB), MB2(0xF1CC), + MB2(0xF1CD), MB2(0xF1CE), MB2(0xF1CF), MB2(0xF1D0), + MB2(0xF1D1), MB2(0xF1D2), MB2(0xF1D3), MB2(0xF1D4), + MB2(0xF1D5), MB2(0xF1D6), MB2(0xF1D7), MB2(0xF1D8), + MB2(0xF1D9), MB2(0xF1DA), MB2(0xF1DB), MB2(0xF1DC), + MB2(0xF1DD), MB2(0xF1DE), MB2(0xF1DF), MB2(0xF1E0), + MB2(0xF1E1), MB2(0xF1E2), MB2(0xF1E3), MB2(0xF1E4), + MB2(0xF1E5), MB2(0xF1E6), MB2(0xF1E7), MB2(0xF1E8), /* E160 */ + MB2(0xF1E9), MB2(0xF1EA), MB2(0xF1EB), MB2(0xF1EC), + MB2(0xF1ED), MB2(0xF1EE), MB2(0xF1EF), MB2(0xF1F0), + MB2(0xF1F1), MB2(0xF1F2), MB2(0xF1F3), MB2(0xF1F4), + MB2(0xF1F5), MB2(0xF1F6), MB2(0xF1F7), MB2(0xF1F8), + MB2(0xF1F9), MB2(0xF1FA), MB2(0xF1FB), MB2(0xF1FC), + MB2(0xF240), MB2(0xF241), MB2(0xF242), MB2(0xF243), + MB2(0xF244), MB2(0xF245), MB2(0xF246), MB2(0xF247), + MB2(0xF248), MB2(0xF249), MB2(0xF24A), MB2(0xF24B), /* E180 */ + MB2(0xF24C), MB2(0xF24D), MB2(0xF24E), MB2(0xF24F), + MB2(0xF250), MB2(0xF251), MB2(0xF252), MB2(0xF253), + MB2(0xF254), MB2(0xF255), MB2(0xF256), MB2(0xF257), + MB2(0xF258), MB2(0xF259), MB2(0xF25A), MB2(0xF25B), + MB2(0xF25C), MB2(0xF25D), MB2(0xF25E), MB2(0xF25F), + MB2(0xF260), MB2(0xF261), MB2(0xF262), MB2(0xF263), + MB2(0xF264), MB2(0xF265), MB2(0xF266), MB2(0xF267), + MB2(0xF268), MB2(0xF269), MB2(0xF26A), MB2(0xF26B), /* E1A0 */ + MB2(0xF26C), MB2(0xF26D), MB2(0xF26E), MB2(0xF26F), + MB2(0xF270), MB2(0xF271), MB2(0xF272), MB2(0xF273), + MB2(0xF274), MB2(0xF275), MB2(0xF276), MB2(0xF277), + MB2(0xF278), MB2(0xF279), MB2(0xF27A), MB2(0xF27B), + MB2(0xF27C), MB2(0xF27D), MB2(0xF27E), MB2(0xF280), + MB2(0xF281), MB2(0xF282), MB2(0xF283), MB2(0xF284), + MB2(0xF285), MB2(0xF286), MB2(0xF287), MB2(0xF288), + MB2(0xF289), MB2(0xF28A), MB2(0xF28B), MB2(0xF28C), /* E1C0 */ + MB2(0xF28D), MB2(0xF28E), MB2(0xF28F), MB2(0xF290), + MB2(0xF291), MB2(0xF292), MB2(0xF293), MB2(0xF294), + MB2(0xF295), MB2(0xF296), MB2(0xF297), MB2(0xF298), + MB2(0xF299), MB2(0xF29A), MB2(0xF29B), MB2(0xF29C), + MB2(0xF29D), MB2(0xF29E), MB2(0xF29F), MB2(0xF2A0), + MB2(0xF2A1), MB2(0xF2A2), MB2(0xF2A3), MB2(0xF2A4), + MB2(0xF2A5), MB2(0xF2A6), MB2(0xF2A7), MB2(0xF2A8), + MB2(0xF2A9), MB2(0xF2AA), MB2(0xF2AB), MB2(0xF2AC), /* E1E0 */ + MB2(0xF2AD), MB2(0xF2AE), MB2(0xF2AF), MB2(0xF2B0), + MB2(0xF2B1), MB2(0xF2B2), MB2(0xF2B3), MB2(0xF2B4), + MB2(0xF2B5), MB2(0xF2B6), MB2(0xF2B7), MB2(0xF2B8), + MB2(0xF2B9), MB2(0xF2BA), MB2(0xF2BB), MB2(0xF2BC), + MB2(0xF2BD), MB2(0xF2BE), MB2(0xF2BF), MB2(0xF2C0), + MB2(0xF2C1), MB2(0xF2C2), MB2(0xF2C3), MB2(0xF2C4), + MB2(0xF2C5), MB2(0xF2C6), MB2(0xF2C7), MB2(0xF2C8), + MB2(0xF2C9), MB2(0xF2CA), MB2(0xF2CB), MB2(0xF2CC), /* E200 */ + MB2(0xF2CD), MB2(0xF2CE), MB2(0xF2CF), MB2(0xF2D0), + MB2(0xF2D1), MB2(0xF2D2), MB2(0xF2D3), MB2(0xF2D4), + MB2(0xF2D5), MB2(0xF2D6), MB2(0xF2D7), MB2(0xF2D8), + MB2(0xF2D9), MB2(0xF2DA), MB2(0xF2DB), MB2(0xF2DC), + MB2(0xF2DD), MB2(0xF2DE), MB2(0xF2DF), MB2(0xF2E0), + MB2(0xF2E1), MB2(0xF2E2), MB2(0xF2E3), MB2(0xF2E4), + MB2(0xF2E5), MB2(0xF2E6), MB2(0xF2E7), MB2(0xF2E8), + MB2(0xF2E9), MB2(0xF2EA), MB2(0xF2EB), MB2(0xF2EC), /* E220 */ + MB2(0xF2ED), MB2(0xF2EE), MB2(0xF2EF), MB2(0xF2F0), + MB2(0xF2F1), MB2(0xF2F2), MB2(0xF2F3), MB2(0xF2F4), + MB2(0xF2F5), MB2(0xF2F6), MB2(0xF2F7), MB2(0xF2F8), + MB2(0xF2F9), MB2(0xF2FA), MB2(0xF2FB), MB2(0xF2FC), + MB2(0xF340), MB2(0xF341), MB2(0xF342), MB2(0xF343), + MB2(0xF344), MB2(0xF345), MB2(0xF346), MB2(0xF347), + MB2(0xF348), MB2(0xF349), MB2(0xF34A), MB2(0xF34B), + MB2(0xF34C), MB2(0xF34D), MB2(0xF34E), MB2(0xF34F), /* E240 */ + MB2(0xF350), MB2(0xF351), MB2(0xF352), MB2(0xF353), + MB2(0xF354), MB2(0xF355), MB2(0xF356), MB2(0xF357), + MB2(0xF358), MB2(0xF359), MB2(0xF35A), MB2(0xF35B), + MB2(0xF35C), MB2(0xF35D), MB2(0xF35E), MB2(0xF35F), + MB2(0xF360), MB2(0xF361), MB2(0xF362), MB2(0xF363), + MB2(0xF364), MB2(0xF365), MB2(0xF366), MB2(0xF367), + MB2(0xF368), MB2(0xF369), MB2(0xF36A), MB2(0xF36B), + MB2(0xF36C), MB2(0xF36D), MB2(0xF36E), MB2(0xF36F), /* E260 */ + MB2(0xF370), MB2(0xF371), MB2(0xF372), MB2(0xF373), + MB2(0xF374), MB2(0xF375), MB2(0xF376), MB2(0xF377), + MB2(0xF378), MB2(0xF379), MB2(0xF37A), MB2(0xF37B), + MB2(0xF37C), MB2(0xF37D), MB2(0xF37E), MB2(0xF380), + MB2(0xF381), MB2(0xF382), MB2(0xF383), MB2(0xF384), + MB2(0xF385), MB2(0xF386), MB2(0xF387), MB2(0xF388), + MB2(0xF389), MB2(0xF38A), MB2(0xF38B), MB2(0xF38C), + MB2(0xF38D), MB2(0xF38E), MB2(0xF38F), MB2(0xF390), /* E280 */ + MB2(0xF391), MB2(0xF392), MB2(0xF393), MB2(0xF394), + MB2(0xF395), MB2(0xF396), MB2(0xF397), MB2(0xF398), + MB2(0xF399), MB2(0xF39A), MB2(0xF39B), MB2(0xF39C), + MB2(0xF39D), MB2(0xF39E), MB2(0xF39F), MB2(0xF3A0), + MB2(0xF3A1), MB2(0xF3A2), MB2(0xF3A3), MB2(0xF3A4), + MB2(0xF3A5), MB2(0xF3A6), MB2(0xF3A7), MB2(0xF3A8), + MB2(0xF3A9), MB2(0xF3AA), MB2(0xF3AB), MB2(0xF3AC), + MB2(0xF3AD), MB2(0xF3AE), MB2(0xF3AF), MB2(0xF3B0), /* E2A0 */ + MB2(0xF3B1), MB2(0xF3B2), MB2(0xF3B3), MB2(0xF3B4), + MB2(0xF3B5), MB2(0xF3B6), MB2(0xF3B7), MB2(0xF3B8), + MB2(0xF3B9), MB2(0xF3BA), MB2(0xF3BB), MB2(0xF3BC), + MB2(0xF3BD), MB2(0xF3BE), MB2(0xF3BF), MB2(0xF3C0), + MB2(0xF3C1), MB2(0xF3C2), MB2(0xF3C3), MB2(0xF3C4), + MB2(0xF3C5), MB2(0xF3C6), MB2(0xF3C7), MB2(0xF3C8), + MB2(0xF3C9), MB2(0xF3CA), MB2(0xF3CB), MB2(0xF3CC), + MB2(0xF3CD), MB2(0xF3CE), MB2(0xF3CF), MB2(0xF3D0), /* E2C0 */ + MB2(0xF3D1), MB2(0xF3D2), MB2(0xF3D3), MB2(0xF3D4), + MB2(0xF3D5), MB2(0xF3D6), MB2(0xF3D7), MB2(0xF3D8), + MB2(0xF3D9), MB2(0xF3DA), MB2(0xF3DB), MB2(0xF3DC), + MB2(0xF3DD), MB2(0xF3DE), MB2(0xF3DF), MB2(0xF3E0), + MB2(0xF3E1), MB2(0xF3E2), MB2(0xF3E3), MB2(0xF3E4), + MB2(0xF3E5), MB2(0xF3E6), MB2(0xF3E7), MB2(0xF3E8), + MB2(0xF3E9), MB2(0xF3EA), MB2(0xF3EB), MB2(0xF3EC), + MB2(0xF3ED), MB2(0xF3EE), MB2(0xF3EF), MB2(0xF3F0), /* E2E0 */ + MB2(0xF3F1), MB2(0xF3F2), MB2(0xF3F3), MB2(0xF3F4), + MB2(0xF3F5), MB2(0xF3F6), MB2(0xF3F7), MB2(0xF3F8), + MB2(0xF3F9), MB2(0xF3FA), MB2(0xF3FB), MB2(0xF3FC), + MB2(0xF440), MB2(0xF441), MB2(0xF442), MB2(0xF443), + MB2(0xF444), MB2(0xF445), MB2(0xF446), MB2(0xF447), + MB2(0xF448), MB2(0xF449), MB2(0xF44A), MB2(0xF44B), + MB2(0xF44C), MB2(0xF44D), MB2(0xF44E), MB2(0xF44F), + MB2(0xF450), MB2(0xF451), MB2(0xF452), MB2(0xF453), /* E300 */ + MB2(0xF454), MB2(0xF455), MB2(0xF456), MB2(0xF457), + MB2(0xF458), MB2(0xF459), MB2(0xF45A), MB2(0xF45B), + MB2(0xF45C), MB2(0xF45D), MB2(0xF45E), MB2(0xF45F), + MB2(0xF460), MB2(0xF461), MB2(0xF462), MB2(0xF463), + MB2(0xF464), MB2(0xF465), MB2(0xF466), MB2(0xF467), + MB2(0xF468), MB2(0xF469), MB2(0xF46A), MB2(0xF46B), + MB2(0xF46C), MB2(0xF46D), MB2(0xF46E), MB2(0xF46F), + MB2(0xF470), MB2(0xF471), MB2(0xF472), MB2(0xF473), /* E320 */ + MB2(0xF474), MB2(0xF475), MB2(0xF476), MB2(0xF477), + MB2(0xF478), MB2(0xF479), MB2(0xF47A), MB2(0xF47B), + MB2(0xF47C), MB2(0xF47D), MB2(0xF47E), MB2(0xF480), + MB2(0xF481), MB2(0xF482), MB2(0xF483), MB2(0xF484), + MB2(0xF485), MB2(0xF486), MB2(0xF487), MB2(0xF488), + MB2(0xF489), MB2(0xF48A), MB2(0xF48B), MB2(0xF48C), + MB2(0xF48D), MB2(0xF48E), MB2(0xF48F), MB2(0xF490), + MB2(0xF491), MB2(0xF492), MB2(0xF493), MB2(0xF494), /* E340 */ + MB2(0xF495), MB2(0xF496), MB2(0xF497), MB2(0xF498), + MB2(0xF499), MB2(0xF49A), MB2(0xF49B), MB2(0xF49C), + MB2(0xF49D), MB2(0xF49E), MB2(0xF49F), MB2(0xF4A0), + MB2(0xF4A1), MB2(0xF4A2), MB2(0xF4A3), MB2(0xF4A4), + MB2(0xF4A5), MB2(0xF4A6), MB2(0xF4A7), MB2(0xF4A8), + MB2(0xF4A9), MB2(0xF4AA), MB2(0xF4AB), MB2(0xF4AC), + MB2(0xF4AD), MB2(0xF4AE), MB2(0xF4AF), MB2(0xF4B0), + MB2(0xF4B1), MB2(0xF4B2), MB2(0xF4B3), MB2(0xF4B4), /* E360 */ + MB2(0xF4B5), MB2(0xF4B6), MB2(0xF4B7), MB2(0xF4B8), + MB2(0xF4B9), MB2(0xF4BA), MB2(0xF4BB), MB2(0xF4BC), + MB2(0xF4BD), MB2(0xF4BE), MB2(0xF4BF), MB2(0xF4C0), + MB2(0xF4C1), MB2(0xF4C2), MB2(0xF4C3), MB2(0xF4C4), + MB2(0xF4C5), MB2(0xF4C6), MB2(0xF4C7), MB2(0xF4C8), + MB2(0xF4C9), MB2(0xF4CA), MB2(0xF4CB), MB2(0xF4CC), + MB2(0xF4CD), MB2(0xF4CE), MB2(0xF4CF), MB2(0xF4D0), + MB2(0xF4D1), MB2(0xF4D2), MB2(0xF4D3), MB2(0xF4D4), /* E380 */ + MB2(0xF4D5), MB2(0xF4D6), MB2(0xF4D7), MB2(0xF4D8), + MB2(0xF4D9), MB2(0xF4DA), MB2(0xF4DB), MB2(0xF4DC), + MB2(0xF4DD), MB2(0xF4DE), MB2(0xF4DF), MB2(0xF4E0), + MB2(0xF4E1), MB2(0xF4E2), MB2(0xF4E3), MB2(0xF4E4), + MB2(0xF4E5), MB2(0xF4E6), MB2(0xF4E7), MB2(0xF4E8), + MB2(0xF4E9), MB2(0xF4EA), MB2(0xF4EB), MB2(0xF4EC), + MB2(0xF4ED), MB2(0xF4EE), MB2(0xF4EF), MB2(0xF4F0), + MB2(0xF4F1), MB2(0xF4F2), MB2(0xF4F3), MB2(0xF4F4), /* E3A0 */ + MB2(0xF4F5), MB2(0xF4F6), MB2(0xF4F7), MB2(0xF4F8), + MB2(0xF4F9), MB2(0xF4FA), MB2(0xF4FB), MB2(0xF4FC), + MB2(0xF540), MB2(0xF541), MB2(0xF542), MB2(0xF543), + MB2(0xF544), MB2(0xF545), MB2(0xF546), MB2(0xF547), + MB2(0xF548), MB2(0xF549), MB2(0xF54A), MB2(0xF54B), + MB2(0xF54C), MB2(0xF54D), MB2(0xF54E), MB2(0xF54F), + MB2(0xF550), MB2(0xF551), MB2(0xF552), MB2(0xF553), + MB2(0xF554), MB2(0xF555), MB2(0xF556), MB2(0xF557), /* E3C0 */ + MB2(0xF558), MB2(0xF559), MB2(0xF55A), MB2(0xF55B), + MB2(0xF55C), MB2(0xF55D), MB2(0xF55E), MB2(0xF55F), + MB2(0xF560), MB2(0xF561), MB2(0xF562), MB2(0xF563), + MB2(0xF564), MB2(0xF565), MB2(0xF566), MB2(0xF567), + MB2(0xF568), MB2(0xF569), MB2(0xF56A), MB2(0xF56B), + MB2(0xF56C), MB2(0xF56D), MB2(0xF56E), MB2(0xF56F), + MB2(0xF570), MB2(0xF571), MB2(0xF572), MB2(0xF573), + MB2(0xF574), MB2(0xF575), MB2(0xF576), MB2(0xF577), /* E3E0 */ + MB2(0xF578), MB2(0xF579), MB2(0xF57A), MB2(0xF57B), + MB2(0xF57C), MB2(0xF57D), MB2(0xF57E), MB2(0xF580), + MB2(0xF581), MB2(0xF582), MB2(0xF583), MB2(0xF584), + MB2(0xF585), MB2(0xF586), MB2(0xF587), MB2(0xF588), + MB2(0xF589), MB2(0xF58A), MB2(0xF58B), MB2(0xF58C), + MB2(0xF58D), MB2(0xF58E), MB2(0xF58F), MB2(0xF590), + MB2(0xF591), MB2(0xF592), MB2(0xF593), MB2(0xF594), + MB2(0xF595), MB2(0xF596), MB2(0xF597), MB2(0xF598), /* E400 */ + MB2(0xF599), MB2(0xF59A), MB2(0xF59B), MB2(0xF59C), + MB2(0xF59D), MB2(0xF59E), MB2(0xF59F), MB2(0xF5A0), + MB2(0xF5A1), MB2(0xF5A2), MB2(0xF5A3), MB2(0xF5A4), + MB2(0xF5A5), MB2(0xF5A6), MB2(0xF5A7), MB2(0xF5A8), + MB2(0xF5A9), MB2(0xF5AA), MB2(0xF5AB), MB2(0xF5AC), + MB2(0xF5AD), MB2(0xF5AE), MB2(0xF5AF), MB2(0xF5B0), + MB2(0xF5B1), MB2(0xF5B2), MB2(0xF5B3), MB2(0xF5B4), + MB2(0xF5B5), MB2(0xF5B6), MB2(0xF5B7), MB2(0xF5B8), /* E420 */ + MB2(0xF5B9), MB2(0xF5BA), MB2(0xF5BB), MB2(0xF5BC), + MB2(0xF5BD), MB2(0xF5BE), MB2(0xF5BF), MB2(0xF5C0), + MB2(0xF5C1), MB2(0xF5C2), MB2(0xF5C3), MB2(0xF5C4), + MB2(0xF5C5), MB2(0xF5C6), MB2(0xF5C7), MB2(0xF5C8), + MB2(0xF5C9), MB2(0xF5CA), MB2(0xF5CB), MB2(0xF5CC), + MB2(0xF5CD), MB2(0xF5CE), MB2(0xF5CF), MB2(0xF5D0), + MB2(0xF5D1), MB2(0xF5D2), MB2(0xF5D3), MB2(0xF5D4), + MB2(0xF5D5), MB2(0xF5D6), MB2(0xF5D7), MB2(0xF5D8), /* E440 */ + MB2(0xF5D9), MB2(0xF5DA), MB2(0xF5DB), MB2(0xF5DC), + MB2(0xF5DD), MB2(0xF5DE), MB2(0xF5DF), MB2(0xF5E0), + MB2(0xF5E1), MB2(0xF5E2), MB2(0xF5E3), MB2(0xF5E4), + MB2(0xF5E5), MB2(0xF5E6), MB2(0xF5E7), MB2(0xF5E8), + MB2(0xF5E9), MB2(0xF5EA), MB2(0xF5EB), MB2(0xF5EC), + MB2(0xF5ED), MB2(0xF5EE), MB2(0xF5EF), MB2(0xF5F0), + MB2(0xF5F1), MB2(0xF5F2), MB2(0xF5F3), MB2(0xF5F4), + MB2(0xF5F5), MB2(0xF5F6), MB2(0xF5F7), MB2(0xF5F8), /* E460 */ + MB2(0xF5F9), MB2(0xF5FA), MB2(0xF5FB), MB2(0xF5FC), + MB2(0xF640), MB2(0xF641), MB2(0xF642), MB2(0xF643), + MB2(0xF644), MB2(0xF645), MB2(0xF646), MB2(0xF647), + MB2(0xF648), MB2(0xF649), MB2(0xF64A), MB2(0xF64B), + MB2(0xF64C), MB2(0xF64D), MB2(0xF64E), MB2(0xF64F), + MB2(0xF650), MB2(0xF651), MB2(0xF652), MB2(0xF653), + MB2(0xF654), MB2(0xF655), MB2(0xF656), MB2(0xF657), + MB2(0xF658), MB2(0xF659), MB2(0xF65A), MB2(0xF65B), /* E480 */ + MB2(0xF65C), MB2(0xF65D), MB2(0xF65E), MB2(0xF65F), + MB2(0xF660), MB2(0xF661), MB2(0xF662), MB2(0xF663), + MB2(0xF664), MB2(0xF665), MB2(0xF666), MB2(0xF667), + MB2(0xF668), MB2(0xF669), MB2(0xF66A), MB2(0xF66B), + MB2(0xF66C), MB2(0xF66D), MB2(0xF66E), MB2(0xF66F), + MB2(0xF670), MB2(0xF671), MB2(0xF672), MB2(0xF673), + MB2(0xF674), MB2(0xF675), MB2(0xF676), MB2(0xF677), + MB2(0xF678), MB2(0xF679), MB2(0xF67A), MB2(0xF67B), /* E4A0 */ + MB2(0xF67C), MB2(0xF67D), MB2(0xF67E), MB2(0xF680), + MB2(0xF681), MB2(0xF682), MB2(0xF683), MB2(0xF684), + MB2(0xF685), MB2(0xF686), MB2(0xF687), MB2(0xF688), + MB2(0xF689), MB2(0xF68A), MB2(0xF68B), MB2(0xF68C), + MB2(0xF68D), MB2(0xF68E), MB2(0xF68F), MB2(0xF690), + MB2(0xF691), MB2(0xF692), MB2(0xF693), MB2(0xF694), + MB2(0xF695), MB2(0xF696), MB2(0xF697), MB2(0xF698), + MB2(0xF699), MB2(0xF69A), MB2(0xF69B), MB2(0xF69C), /* E4C0 */ + MB2(0xF69D), MB2(0xF69E), MB2(0xF69F), MB2(0xF6A0), + MB2(0xF6A1), MB2(0xF6A2), MB2(0xF6A3), MB2(0xF6A4), + MB2(0xF6A5), MB2(0xF6A6), MB2(0xF6A7), MB2(0xF6A8), + MB2(0xF6A9), MB2(0xF6AA), MB2(0xF6AB), MB2(0xF6AC), + MB2(0xF6AD), MB2(0xF6AE), MB2(0xF6AF), MB2(0xF6B0), + MB2(0xF6B1), MB2(0xF6B2), MB2(0xF6B3), MB2(0xF6B4), + MB2(0xF6B5), MB2(0xF6B6), MB2(0xF6B7), MB2(0xF6B8), + MB2(0xF6B9), MB2(0xF6BA), MB2(0xF6BB), MB2(0xF6BC), /* E4E0 */ + MB2(0xF6BD), MB2(0xF6BE), MB2(0xF6BF), MB2(0xF6C0), + MB2(0xF6C1), MB2(0xF6C2), MB2(0xF6C3), MB2(0xF6C4), + MB2(0xF6C5), MB2(0xF6C6), MB2(0xF6C7), MB2(0xF6C8), + MB2(0xF6C9), MB2(0xF6CA), MB2(0xF6CB), MB2(0xF6CC), + MB2(0xF6CD), MB2(0xF6CE), MB2(0xF6CF), MB2(0xF6D0), + MB2(0xF6D1), MB2(0xF6D2), MB2(0xF6D3), MB2(0xF6D4), + MB2(0xF6D5), MB2(0xF6D6), MB2(0xF6D7), MB2(0xF6D8), + MB2(0xF6D9), MB2(0xF6DA), MB2(0xF6DB), MB2(0xF6DC), /* E500 */ + MB2(0xF6DD), MB2(0xF6DE), MB2(0xF6DF), MB2(0xF6E0), + MB2(0xF6E1), MB2(0xF6E2), MB2(0xF6E3), MB2(0xF6E4), + MB2(0xF6E5), MB2(0xF6E6), MB2(0xF6E7), MB2(0xF6E8), + MB2(0xF6E9), MB2(0xF6EA), MB2(0xF6EB), MB2(0xF6EC), + MB2(0xF6ED), MB2(0xF6EE), MB2(0xF6EF), MB2(0xF6F0), + MB2(0xF6F1), MB2(0xF6F2), MB2(0xF6F3), MB2(0xF6F4), + MB2(0xF6F5), MB2(0xF6F6), MB2(0xF6F7), MB2(0xF6F8), + MB2(0xF6F9), MB2(0xF6FA), MB2(0xF6FB), MB2(0xF6FC), /* E520 */ + MB2(0xF740), MB2(0xF741), MB2(0xF742), MB2(0xF743), + MB2(0xF744), MB2(0xF745), MB2(0xF746), MB2(0xF747), + MB2(0xF748), MB2(0xF749), MB2(0xF74A), MB2(0xF74B), + MB2(0xF74C), MB2(0xF74D), MB2(0xF74E), MB2(0xF74F), + MB2(0xF750), MB2(0xF751), MB2(0xF752), MB2(0xF753), + MB2(0xF754), MB2(0xF755), MB2(0xF756), MB2(0xF757), + MB2(0xF758), MB2(0xF759), MB2(0xF75A), MB2(0xF75B), + MB2(0xF75C), MB2(0xF75D), MB2(0xF75E), MB2(0xF75F), /* E540 */ + MB2(0xF760), MB2(0xF761), MB2(0xF762), MB2(0xF763), + MB2(0xF764), MB2(0xF765), MB2(0xF766), MB2(0xF767), + MB2(0xF768), MB2(0xF769), MB2(0xF76A), MB2(0xF76B), + MB2(0xF76C), MB2(0xF76D), MB2(0xF76E), MB2(0xF76F), + MB2(0xF770), MB2(0xF771), MB2(0xF772), MB2(0xF773), + MB2(0xF774), MB2(0xF775), MB2(0xF776), MB2(0xF777), + MB2(0xF778), MB2(0xF779), MB2(0xF77A), MB2(0xF77B), + MB2(0xF77C), MB2(0xF77D), MB2(0xF77E), MB2(0xF780), /* E560 */ + MB2(0xF781), MB2(0xF782), MB2(0xF783), MB2(0xF784), + MB2(0xF785), MB2(0xF786), MB2(0xF787), MB2(0xF788), + MB2(0xF789), MB2(0xF78A), MB2(0xF78B), MB2(0xF78C), + MB2(0xF78D), MB2(0xF78E), MB2(0xF78F), MB2(0xF790), + MB2(0xF791), MB2(0xF792), MB2(0xF793), MB2(0xF794), + MB2(0xF795), MB2(0xF796), MB2(0xF797), MB2(0xF798), + MB2(0xF799), MB2(0xF79A), MB2(0xF79B), MB2(0xF79C), + MB2(0xF79D), MB2(0xF79E), MB2(0xF79F), MB2(0xF7A0), /* E580 */ + MB2(0xF7A1), MB2(0xF7A2), MB2(0xF7A3), MB2(0xF7A4), + MB2(0xF7A5), MB2(0xF7A6), MB2(0xF7A7), MB2(0xF7A8), + MB2(0xF7A9), MB2(0xF7AA), MB2(0xF7AB), MB2(0xF7AC), + MB2(0xF7AD), MB2(0xF7AE), MB2(0xF7AF), MB2(0xF7B0), + MB2(0xF7B1), MB2(0xF7B2), MB2(0xF7B3), MB2(0xF7B4), + MB2(0xF7B5), MB2(0xF7B6), MB2(0xF7B7), MB2(0xF7B8), + MB2(0xF7B9), MB2(0xF7BA), MB2(0xF7BB), MB2(0xF7BC), + MB2(0xF7BD), MB2(0xF7BE), MB2(0xF7BF), MB2(0xF7C0), /* E5A0 */ + MB2(0xF7C1), MB2(0xF7C2), MB2(0xF7C3), MB2(0xF7C4), + MB2(0xF7C5), MB2(0xF7C6), MB2(0xF7C7), MB2(0xF7C8), + MB2(0xF7C9), MB2(0xF7CA), MB2(0xF7CB), MB2(0xF7CC), + MB2(0xF7CD), MB2(0xF7CE), MB2(0xF7CF), MB2(0xF7D0), + MB2(0xF7D1), MB2(0xF7D2), MB2(0xF7D3), MB2(0xF7D4), + MB2(0xF7D5), MB2(0xF7D6), MB2(0xF7D7), MB2(0xF7D8), + MB2(0xF7D9), MB2(0xF7DA), MB2(0xF7DB), MB2(0xF7DC), + MB2(0xF7DD), MB2(0xF7DE), MB2(0xF7DF), MB2(0xF7E0), /* E5C0 */ + MB2(0xF7E1), MB2(0xF7E2), MB2(0xF7E3), MB2(0xF7E4), + MB2(0xF7E5), MB2(0xF7E6), MB2(0xF7E7), MB2(0xF7E8), + MB2(0xF7E9), MB2(0xF7EA), MB2(0xF7EB), MB2(0xF7EC), + MB2(0xF7ED), MB2(0xF7EE), MB2(0xF7EF), MB2(0xF7F0), + MB2(0xF7F1), MB2(0xF7F2), MB2(0xF7F3), MB2(0xF7F4), + MB2(0xF7F5), MB2(0xF7F6), MB2(0xF7F7), MB2(0xF7F8), + MB2(0xF7F9), MB2(0xF7FA), MB2(0xF7FB), MB2(0xF7FC), + MB2(0xF840), MB2(0xF841), MB2(0xF842), MB2(0xF843), /* E5E0 */ + MB2(0xF844), MB2(0xF845), MB2(0xF846), MB2(0xF847), + MB2(0xF848), MB2(0xF849), MB2(0xF84A), MB2(0xF84B), + MB2(0xF84C), MB2(0xF84D), MB2(0xF84E), MB2(0xF84F), + MB2(0xF850), MB2(0xF851), MB2(0xF852), MB2(0xF853), + MB2(0xF854), MB2(0xF855), MB2(0xF856), MB2(0xF857), + MB2(0xF858), MB2(0xF859), MB2(0xF85A), MB2(0xF85B), + MB2(0xF85C), MB2(0xF85D), MB2(0xF85E), MB2(0xF85F), + MB2(0xF860), MB2(0xF861), MB2(0xF862), MB2(0xF863), /* E600 */ + MB2(0xF864), MB2(0xF865), MB2(0xF866), MB2(0xF867), + MB2(0xF868), MB2(0xF869), MB2(0xF86A), MB2(0xF86B), + MB2(0xF86C), MB2(0xF86D), MB2(0xF86E), MB2(0xF86F), + MB2(0xF870), MB2(0xF871), MB2(0xF872), MB2(0xF873), + MB2(0xF874), MB2(0xF875), MB2(0xF876), MB2(0xF877), + MB2(0xF878), MB2(0xF879), MB2(0xF87A), MB2(0xF87B), + MB2(0xF87C), MB2(0xF87D), MB2(0xF87E), MB2(0xF880), + MB2(0xF881), MB2(0xF882), MB2(0xF883), MB2(0xF884), /* E620 */ + MB2(0xF885), MB2(0xF886), MB2(0xF887), MB2(0xF888), + MB2(0xF889), MB2(0xF88A), MB2(0xF88B), MB2(0xF88C), + MB2(0xF88D), MB2(0xF88E), MB2(0xF88F), MB2(0xF890), + MB2(0xF891), MB2(0xF892), MB2(0xF893), MB2(0xF894), + MB2(0xF895), MB2(0xF896), MB2(0xF897), MB2(0xF898), + MB2(0xF899), MB2(0xF89A), MB2(0xF89B), MB2(0xF89C), + MB2(0xF89D), MB2(0xF89E), MB2(0xF89F), MB2(0xF8A0), + MB2(0xF8A1), MB2(0xF8A2), MB2(0xF8A3), MB2(0xF8A4), /* E640 */ + MB2(0xF8A5), MB2(0xF8A6), MB2(0xF8A7), MB2(0xF8A8), + MB2(0xF8A9), MB2(0xF8AA), MB2(0xF8AB), MB2(0xF8AC), + MB2(0xF8AD), MB2(0xF8AE), MB2(0xF8AF), MB2(0xF8B0), + MB2(0xF8B1), MB2(0xF8B2), MB2(0xF8B3), MB2(0xF8B4), + MB2(0xF8B5), MB2(0xF8B6), MB2(0xF8B7), MB2(0xF8B8), + MB2(0xF8B9), MB2(0xF8BA), MB2(0xF8BB), MB2(0xF8BC), + MB2(0xF8BD), MB2(0xF8BE), MB2(0xF8BF), MB2(0xF8C0), + MB2(0xF8C1), MB2(0xF8C2), MB2(0xF8C3), MB2(0xF8C4), /* E660 */ + MB2(0xF8C5), MB2(0xF8C6), MB2(0xF8C7), MB2(0xF8C8), + MB2(0xF8C9), MB2(0xF8CA), MB2(0xF8CB), MB2(0xF8CC), + MB2(0xF8CD), MB2(0xF8CE), MB2(0xF8CF), MB2(0xF8D0), + MB2(0xF8D1), MB2(0xF8D2), MB2(0xF8D3), MB2(0xF8D4), + MB2(0xF8D5), MB2(0xF8D6), MB2(0xF8D7), MB2(0xF8D8), + MB2(0xF8D9), MB2(0xF8DA), MB2(0xF8DB), MB2(0xF8DC), + MB2(0xF8DD), MB2(0xF8DE), MB2(0xF8DF), MB2(0xF8E0), + MB2(0xF8E1), MB2(0xF8E2), MB2(0xF8E3), MB2(0xF8E4), /* E680 */ + MB2(0xF8E5), MB2(0xF8E6), MB2(0xF8E7), MB2(0xF8E8), + MB2(0xF8E9), MB2(0xF8EA), MB2(0xF8EB), MB2(0xF8EC), + MB2(0xF8ED), MB2(0xF8EE), MB2(0xF8EF), MB2(0xF8F0), + MB2(0xF8F1), MB2(0xF8F2), MB2(0xF8F3), MB2(0xF8F4), + MB2(0xF8F5), MB2(0xF8F6), MB2(0xF8F7), MB2(0xF8F8), + MB2(0xF8F9), MB2(0xF8FA), MB2(0xF8FB), MB2(0xF8FC), + MB2(0xF940), MB2(0xF941), MB2(0xF942), MB2(0xF943), + MB2(0xF944), MB2(0xF945), MB2(0xF946), MB2(0xF947), /* E6A0 */ + MB2(0xF948), MB2(0xF949), MB2(0xF94A), MB2(0xF94B), + MB2(0xF94C), MB2(0xF94D), MB2(0xF94E), MB2(0xF94F), + MB2(0xF950), MB2(0xF951), MB2(0xF952), MB2(0xF953), + MB2(0xF954), MB2(0xF955), MB2(0xF956), MB2(0xF957), + MB2(0xF958), MB2(0xF959), MB2(0xF95A), MB2(0xF95B), + MB2(0xF95C), MB2(0xF95D), MB2(0xF95E), MB2(0xF95F), + MB2(0xF960), MB2(0xF961), MB2(0xF962), MB2(0xF963), + MB2(0xF964), MB2(0xF965), MB2(0xF966), MB2(0xF967), /* E6C0 */ + MB2(0xF968), MB2(0xF969), MB2(0xF96A), MB2(0xF96B), + MB2(0xF96C), MB2(0xF96D), MB2(0xF96E), MB2(0xF96F), + MB2(0xF970), MB2(0xF971), MB2(0xF972), MB2(0xF973), + MB2(0xF974), MB2(0xF975), MB2(0xF976), MB2(0xF977), + MB2(0xF978), MB2(0xF979), MB2(0xF97A), MB2(0xF97B), + MB2(0xF97C), MB2(0xF97D), MB2(0xF97E), MB2(0xF980), + MB2(0xF981), MB2(0xF982), MB2(0xF983), MB2(0xF984), + MB2(0xF985), MB2(0xF986), MB2(0xF987), MB2(0xF988), /* E6E0 */ + MB2(0xF989), MB2(0xF98A), MB2(0xF98B), MB2(0xF98C), + MB2(0xF98D), MB2(0xF98E), MB2(0xF98F), MB2(0xF990), + MB2(0xF991), MB2(0xF992), MB2(0xF993), MB2(0xF994), + MB2(0xF995), MB2(0xF996), MB2(0xF997), MB2(0xF998), + MB2(0xF999), MB2(0xF99A), MB2(0xF99B), MB2(0xF99C), + MB2(0xF99D), MB2(0xF99E), MB2(0xF99F), MB2(0xF9A0), + MB2(0xF9A1), MB2(0xF9A2), MB2(0xF9A3), MB2(0xF9A4), + MB2(0xF9A5), MB2(0xF9A6), MB2(0xF9A7), MB2(0xF9A8), /* E700 */ + MB2(0xF9A9), MB2(0xF9AA), MB2(0xF9AB), MB2(0xF9AC), + MB2(0xF9AD), MB2(0xF9AE), MB2(0xF9AF), MB2(0xF9B0), + MB2(0xF9B1), MB2(0xF9B2), MB2(0xF9B3), MB2(0xF9B4), + MB2(0xF9B5), MB2(0xF9B6), MB2(0xF9B7), MB2(0xF9B8), + MB2(0xF9B9), MB2(0xF9BA), MB2(0xF9BB), MB2(0xF9BC), + MB2(0xF9BD), MB2(0xF9BE), MB2(0xF9BF), MB2(0xF9C0), + MB2(0xF9C1), MB2(0xF9C2), MB2(0xF9C3), MB2(0xF9C4), + MB2(0xF9C5), MB2(0xF9C6), MB2(0xF9C7), MB2(0xF9C8), /* E720 */ + MB2(0xF9C9), MB2(0xF9CA), MB2(0xF9CB), MB2(0xF9CC), + MB2(0xF9CD), MB2(0xF9CE), MB2(0xF9CF), MB2(0xF9D0), + MB2(0xF9D1), MB2(0xF9D2), MB2(0xF9D3), MB2(0xF9D4), + MB2(0xF9D5), MB2(0xF9D6), MB2(0xF9D7), MB2(0xF9D8), + MB2(0xF9D9), MB2(0xF9DA), MB2(0xF9DB), MB2(0xF9DC), + MB2(0xF9DD), MB2(0xF9DE), MB2(0xF9DF), MB2(0xF9E0), + MB2(0xF9E1), MB2(0xF9E2), MB2(0xF9E3), MB2(0xF9E4), + MB2(0xF9E5), MB2(0xF9E6), MB2(0xF9E7), MB2(0xF9E8), /* E740 */ + MB2(0xF9E9), MB2(0xF9EA), MB2(0xF9EB), MB2(0xF9EC), + MB2(0xF9ED), MB2(0xF9EE), MB2(0xF9EF), MB2(0xF9F0), + MB2(0xF9F1), MB2(0xF9F2), MB2(0xF9F3), MB2(0xF9F4), + MB2(0xF9F5), MB2(0xF9F6), MB2(0xF9F7), MB2(0xF9F8), + MB2(0xF9F9), MB2(0xF9FA), MB2(0xF9FB), MB2(0xF9FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xFAE0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xFBE9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xFA90), MB2(0xFA9B), + MB2(0xFA9C), MB2(0xFAB1), MB2(0xFAD8), MB2(0xFAE8), + MB2(0xFAEA), MB2(0xFB58), MB2(0xFB5E), MB2(0xFB75), + MB2(0xFB7D), MB2(0xFB7E), MB2(0xFB80), MB2(0xFB82), + MB2(0xFB86), MB2(0xFB89), MB2(0xFB92), MB2(0xFB9D), + MB2(0xFB9F), MB2(0xFBA0), MB2(0xFBA9), MB2(0xFBB1), /* FA20 */ + MB2(0xFBB3), MB2(0xFBB4), MB2(0xFBB7), MB2(0xFBD3), + MB2(0xFBDA), MB2(0xFBEA), MB2(0xFBF6), MB2(0xFBF7), + MB2(0xFBF9), MB2(0xFC49), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8149), MB2(0xFA57), MB2(0x8194), /* FF00 */ + MB2(0x8190), MB2(0x8193), MB2(0x8195), MB2(0xFA56), + MB2(0x8169), MB2(0x816A), MB2(0x8196), MB2(0x817B), + MB2(0x8143), MB2(0x817C), MB2(0x8144), MB2(0x815E), + MB2(0x824F), MB2(0x8250), MB2(0x8251), MB2(0x8252), + MB2(0x8253), MB2(0x8254), MB2(0x8255), MB2(0x8256), + MB2(0x8257), MB2(0x8258), MB2(0x8146), MB2(0x8147), + MB2(0x8183), MB2(0x8181), MB2(0x8184), MB2(0x8148), + MB2(0x8197), MB2(0x8260), MB2(0x8261), MB2(0x8262), /* FF20 */ + MB2(0x8263), MB2(0x8264), MB2(0x8265), MB2(0x8266), + MB2(0x8267), MB2(0x8268), MB2(0x8269), MB2(0x826A), + MB2(0x826B), MB2(0x826C), MB2(0x826D), MB2(0x826E), + MB2(0x826F), MB2(0x8270), MB2(0x8271), MB2(0x8272), + MB2(0x8273), MB2(0x8274), MB2(0x8275), MB2(0x8276), + MB2(0x8277), MB2(0x8278), MB2(0x8279), MB2(0x816D), + MB2(0x815F), MB2(0x816E), MB2(0x814F), MB2(0x8151), + MB2(0x814D), MB2(0x8281), MB2(0x8282), MB2(0x8283), /* FF40 */ + MB2(0x8284), MB2(0x8285), MB2(0x8286), MB2(0x8287), + MB2(0x8288), MB2(0x8289), MB2(0x828A), MB2(0x828B), + MB2(0x828C), MB2(0x828D), MB2(0x828E), MB2(0x828F), + MB2(0x8290), MB2(0x8291), MB2(0x8292), MB2(0x8293), + MB2(0x8294), MB2(0x8295), MB2(0x8296), MB2(0x8297), + MB2(0x8298), MB2(0x8299), MB2(0x829A), MB2(0x816F), + MB2(0x8162), MB2(0x8170), MB2(0x8160), 0x0000, + 0x0000, 0x00A1, 0x00A2, 0x00A3, /* FF60 */ + 0x00A4, 0x00A5, 0x00A6, 0x00A7, + 0x00A8, 0x00A9, 0x00AA, 0x00AB, + 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, + 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x00B9, 0x00BA, 0x00BB, + 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, /* FF80 */ + 0x00C4, 0x00C5, 0x00C6, 0x00C7, + 0x00C8, 0x00C9, 0x00CA, 0x00CB, + 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, + 0x00D4, 0x00D5, 0x00D6, 0x00D7, + 0x00D8, 0x00D9, 0x00DA, 0x00DB, + 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8191), MB2(0x8192), MB2(0x81CA), MB2(0x8150), /* FFE0 */ + MB2(0xFA55), MB2(0x818F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +/* + CP932 encoding components: + + [00..7F] = ASCII [U+0000..U+007F] + [A1..DF] = JIS-X-0201 Katakana [U+FF61..U+FF9F] + [81..9F,E0..FC][40..7E,80..FC] = JIS-X-0208 (MS version) + + [80,A0,FD,FE,FF] = Invalid leading byte +*/ + + +/** + Scans a CP932 character from the input string + and converts to Unicode code point. + + @param[out] pwc Unicode code point + @param[in] s Beginning of the input string + @param[in[ e End of the input string + + @retval MY_CS_TOOSMALL If the string was too short to scan a character + @retval 1 If a 1-byte character was scanned + @retval 2 If a 2-byte character was scanned + @retval -2 If a 2-byte unassigned character was scanned + @retval MY_CS_ILSEQ If a wrong byte sequence was found +*/ + +static int +my_mb_wc_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e){ + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) /* ASCII: [00-7F] -> [U+0000..U+007F] */ + { + *pwc= hi; + return 1; + } + + /* JIS-X-0201 Half width Katakana: [A1..DF] -> [U+FF61..U+FF9F] */ + if (hi >= 0xA1 && hi <= 0xDF) + { + *pwc= cp932_to_unicode[hi]; + return 1; + } + + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + /* JIS-X-0208-MS [81..9F,E0..FC][40..7E,80..FC] */ + if (!(pwc[0]= cp932_to_unicode[(hi << 8) + s[1]])) + return (iscp932head(hi) && iscp932tail(s[1])) ? -2 : MY_CS_ILSEQ; + + return 2; +} + + +/** + Puts the given Unicode character into a CP932 string. + + @param[in] wc Unicode code point + @param[in] s Beginning of the out string + @param[in] e End of the out string + + @retval MY_CS_TOOSMALL If the string was too short to put a character + @retval 1 If a 1-byte character was put + @retval 2 If a 2-byte character was put + @retval MY_CS_ILUNI If the Unicode character does not exist in CP932 +*/ +static int +my_wc_mb_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int code; + + if ((int) wc < 0x80) /* ASCII: [U+0000..U+007F] -> [00-7F] */ + { + /* + This branch is for performance purposes on ASCII range, + to avoid using unicode_to_cp932[]: about 10% improvement. + */ + if (s >= e) + return MY_CS_TOOSMALL; + s[0]= (uchar) wc; + return 1; + } + + if (wc > 0xFFFF || + !(code= unicode_to_cp932[wc])) /* Bad Unicode code point */ + return MY_CS_ILUNI; + + if (code <= 0xFF) + { + /* JIS-X-0201 HALF WIDTH KATAKANA [U+FF61..U+FF9F] -> [A1..DF] */ + if (s >= e) + return MY_CS_TOOSMALL; + s[0]= code; + return 1; + } + + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + MY_PUT_MB2(s, code); /* JIS-X-0208(MS) */ + return 2; +} + + + +static +size_t my_numcells_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *str, const char *str_end) +{ + size_t clen= 0; + const uchar *b= (const uchar *) str; + const uchar *e= (const uchar *) str_end; + + for (clen= 0; b < e; ) + { + if (*b >= 0xA1 && *b <= 0xDF) + { + clen++; + b++; + } + else if (*b > 0x7F) + { + clen+= 2; + b+= 2; + } + else + { + clen++; + b++; + } + } + return clen; +} + +/* + Returns a well formed length of a cp932 string. + cp932 additional characters are also accepted. +*/ + +static +size_t my_well_formed_len_cp932(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + *error= 0; + while (pos-- && b < e) + { + /* + Cast to int8 for extra safety. + "char" can be unsigned by default + on some platforms. + */ + if (((int8)b[0]) >= 0) + { + /* Single byte ascii character */ + b++; + } + else if (iscp932head((uchar)*b) && (e-b)>1 && iscp932tail((uchar)b[1])) + { + /* Double byte character */ + b+= 2; + } + else if (((uchar)*b) >= 0xA1 && ((uchar)*b) <= 0xDF) + { + /* Half width kana */ + b++; + } + else + { + /* Wrong byte sequence */ + *error= 1; + break; + } + } + return (size_t) (b - b0); +} + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_cp932, + my_strnncollsp_cp932, + my_strnxfrm_mb, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb, /* wildcmp */ + my_strcasecmp_8bit, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_cp932, + mbcharlen_cp932, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_cp932, + my_lengthsp_8bit, + my_numcells_cp932, + my_mb_wc_cp932, /* mb_wc */ + my_wc_mb_cp932, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_mb, + my_casedn_mb, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_cp932_japanese_ci= +{ + 95,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ + "cp932", /* cs name */ + "cp932_japanese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp932, + to_lower_cp932, + to_upper_cp932, + sort_order_cp932, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_cp932, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFCFC, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + +CHARSET_INFO my_charset_cp932_bin= +{ + 96,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "cp932", /* cs name */ + "cp932_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp932, + to_lower_cp932, + to_upper_cp932, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_cp932, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFCFC, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + +#endif diff --git a/mysql/strings/ctype-czech.c b/mysql/strings/ctype-czech.c new file mode 100644 index 0000000..d222be6 --- /dev/null +++ b/mysql/strings/ctype-czech.c @@ -0,0 +1,638 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File strings/ctype-czech.c for MySQL. + + This file implements the Czech sorting for the MySQL database + server (www.mysql.com). Due to some complicated rules the + Czech language has for sorting strings, a more complex + solution was needed than the one-to-one conversion table. To + note a few, here is an example of a Czech sorting sequence: + + co < hlaska < hláska < hlava < chlapec < krtek + + It because some of the rules are: double char 'ch' is sorted + between 'h' and 'i'. Accented character 'á' (a with acute) is + sorted after 'a' and before 'b', but only if the word is + otherwise the same. However, because 's' is sorted before 'v' + in hlava, the accentness of 'á' is overridden. There are many + more rules. + + This file defines functions my_strxfrm and my_strcoll for + C-like zero terminated strings and my_strnxfrm and my_strnncoll + for strings where the length comes as an parameter. Also + defined here you will find function my_like_range that returns + index range strings for LIKE expression and the + MY_STRXFRM_MULTIPLY set to value 4 -- this is the ratio the + strings grows during my_strxfrm. The algorithm has four + passes, that's why we need four times more space for expanded + string. + + This file also contains the ISO-Latin-2 definitions of + characters. + + Author: (c) 1997--1998 Jan Pazdziora, adelton@fi.muni.cz + Jan Pazdziora has a shared copyright for this code + + The original of this file can also be found at + http://www.fi.muni.cz/~adelton/l10n/ + + Bug reports and suggestions are always welcome. +*/ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_czech=4 + */ + +#define SKIP_TRAILING_SPACES 1 + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_latin2 + +/* + These are four tables for four passes of the algorithm. Please see + below for what are the "special values" +*/ + +static const uchar *CZ_SORT_TABLE[] = { + (uchar*) "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\043\044\045\046\047\050\051\052\053\054\000\000\000\000\000\000\000\003\004\377\007\010\011\012\013\015\016\017\020\022\023\024\025\026\027\031\033\034\035\036\037\040\041\000\000\000\000\000\000\003\004\377\007\010\011\012\013\015\016\017\020\022\023\024\025\026\027\031\033\034\035\036\037\040\041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\021\000\020\032\000\000\032\032\033\042\000\042\042\000\003\000\021\000\020\032\000\000\032\032\033\042\000\042\042\027\003\003\003\003\020\006\006\006\010\010\010\010\015\015\007\007\023\023\024\024\024\024\000\030\034\034\034\034\040\033\000\027\003\003\003\003\020\006\006\006\010\010\010\010\015\015\007\007\023\023\024\024\024\024\000\030\034\034\034\034\040\033\000", + (uchar*) "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\106\107\110\111\112\113\114\115\116\117\000\000\000\000\000\000\000\003\011\377\016\021\026\027\030\032\035\036\037\043\044\047\054\055\056\061\065\070\075\076\077\100\102\000\000\000\000\000\000\003\011\377\016\021\026\027\030\032\035\036\037\043\044\047\054\055\056\061\065\070\075\076\077\100\102\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\042\000\041\063\000\000\062\064\066\104\000\103\105\000\010\000\042\000\041\063\000\000\062\064\066\104\000\103\105\057\004\005\007\006\040\014\015\013\022\025\024\023\033\034\017\020\046\045\050\051\053\052\000\060\072\071\074\073\101\067\000\057\004\005\007\006\040\014\015\013\022\025\024\023\033\034\017\020\046\045\050\051\053\052\000\060\072\071\074\073\101\067\000", +(uchar*) "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\213\214\215\216\217\220\221\222\223\000\000\000\000\000\000\000\004\020\377\032\040\052\054\056\063\071\073\075\105\107\115\127\131\133\141\151\157\171\173\175\177\203\000\000\000\000\000\000\003\017\377\031\037\051\053\055\062\070\072\074\104\106\114\126\130\132\140\150\156\170\172\174\176\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\103\000\101\145\000\000\143\147\153\207\000\205\211\000\015\000\102\000\100\144\000\000\142\146\152\206\000\204\210\135\006\010\014\012\077\026\030\024\042\050\046\044\065\067\034\036\113\111\117\121\125\123\000\137\163\161\167\165\201\155\000\134\005\007\013\011\076\025\027\023\041\047\045\043\064\066\033\035\112\110\116\120\124\122\000\136\162\160\166\164\200\154\000", +(uchar*) "\264\265\266\267\270\271\272\273\274\002\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\002\230\232\253\324\252\251\234\240\241\261\260\225\262\224\235\212\213\214\215\216\217\220\221\222\223\231\226\244\257\245\227\250\004\020\377\032\040\052\054\056\063\071\073\075\105\107\115\127\131\133\141\151\157\171\173\175\177\203\242\237\243\254\255\233\003\017\377\031\037\051\053\055\062\070\072\074\104\106\114\126\130\132\140\150\156\170\172\174\176\202\246\236\247\256\325\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\326\016\327\103\330\101\145\331\332\143\147\153\207\333\205\211\334\015\335\102\336\100\144\337\340\142\146\152\206\341\204\210\135\006\010\014\012\077\026\030\024\042\050\046\044\065\067\034\036\113\111\117\121\125\123\263\137\163\161\167\165\201\155\342\134\005\007\013\011\076\025\027\023\041\047\045\043\064\066\033\035\112\110\116\120\124\122\343\136\162\160\166\164\200\154\344", +}; + +/* + These define the valuse for the double chars that need to be + sorted as they were single characters -- in Czech these are + 'ch', 'Ch' and 'CH'. +*/ + +struct wordvalue + { + const char * word; + uchar *outvalue; + }; +static struct wordvalue doubles[] = { + { "ch", (uchar*) "\014\031\057\057" }, + { "Ch", (uchar*) "\014\031\060\060" }, + { "CH", (uchar*) "\014\031\061\061" }, + { "c", (uchar*) "\005\012\021\021" }, + { "C", (uchar*) "\005\012\022\022" }, + }; + +/* + Unformal description of the algorithm: + + We walk the string left to right. + + The end of the string is either passed as parameter, or is + *p == 0. This is hidden in the IS_END macro. + + In the first two passes, we compare word by word. So we make + first and second pass on the first word, first and second pass + on the second word, etc. If we come to the end of the string + during the first pass, we need to jump to the last word of the + second pass. + + End of pass is marked with value 1 on the output. + + For each character, we read it's value from the table. + + If the value is ignore (0), we go straight to the next character. + + If the value is space/end of word (2) and we are in the first + or second pass, we skip all characters having value 0 -- 2 and + switch the passwd. + + If it's the compose character (255), we check if the double + exists behind it, find its value. + + We append 0 to the end. +--- + Neformální popis algoritmu: + + Procházíme øetìzec zleva doprava. + + Konec øetìzce je pøedán buï jako parametr, nebo je to *p == 0. + Toto je o¹etøeno makrem IS_END. + + Pokud jsme do¹li na konec øetìzce pøi prùchodu 0, nejdeme na + zaèátek, ale na ulo¾enou pozici, proto¾e první a druhý prùchod + bì¾í souèasnì. + + Konec vstupu (prùchodu) oznaèíme na výstupu hodnotou 1. + + Pro ka¾dý znak øetìzce naèteme hodnotu z tøídící tabulky. + + Jde-li o hodnotu ignorovat (0), skoèíme ihned na dal¹í znak.. + + Jde-li o hodnotu konec slova (2) a je to prùchod 0 nebo 1, + pøeskoèíme v¹echny dal¹í 0 -- 2 a prohodíme prùchody. + + Jde-li o kompozitní znak (255), otestujeme, zda následuje + správný do dvojice, dohledáme správnou hodnotu. + + Na konci pøipojíme znak 0 + */ + +#define ADD_TO_RESULT(dest, len, totlen, value) \ +{ if ((totlen) < (len)) { dest[totlen++]= value; } } +#define IS_END(p, src, len) (((char *)p - (char *)src) >= (len)) + +#define NEXT_CMP_VALUE(src, p, store, pass, value, len) \ +while (1) \ +{ \ + if (IS_END(p, src, len)) \ + { \ + /* when we are at the end of string */ \ + /* return either 0 for end of string */ \ + /* or 1 for end of pass */ \ + value= 0; \ + if (pass != 3) \ + { \ + p= (pass++ == 0) ? store : src; \ + value = 1; \ + } \ + break; \ + } \ + /* not at end of string */ \ + value = CZ_SORT_TABLE[pass][*p]; \ + if (value == 0) \ + { p++; continue; } /* ignore value */ \ + if (value == 2) /* space */ \ + { \ + const uchar *tmp; \ + const uchar *runner = ++p; \ + while (!(IS_END(runner, src, len)) && (CZ_SORT_TABLE[pass][*runner] == 2)) \ + runner++; /* skip all spaces */ \ + if (IS_END(runner, src, len) && SKIP_TRAILING_SPACES) \ + p = runner; \ + if ((pass <= 2) && !(IS_END(runner, src, len))) \ + p = runner; \ + if (IS_END(p, src, len)) \ + continue; \ + /* we switch passes */ \ + if (pass > 1) \ + break; \ + tmp = p; \ + pass= 1-pass; \ + p = store; store = tmp; \ + break; \ + } \ + if (value == 255) \ + { \ + int i; \ + for (i = 0; i < (int) sizeof(doubles); i++) \ + { \ + const char * pattern = doubles[i].word; \ + const char * q = (const char *) p; \ + int j = 0; \ + while (pattern[j]) \ + { \ + if (IS_END(q, src, len) || (*q != pattern[j])) \ + break; \ + j++; q++; \ + } \ + if (!(pattern[j])) \ + { \ + value = (int)(doubles[i].outvalue[pass]); \ + p= (const uchar *) q - 1; \ + break; \ + } \ + } \ + } \ + p++; \ + break; \ +} + +/* + Function strnncoll, actually strcoll, with Czech sorting, which expect + the length of the strings being specified +*/ + +static int my_strnncoll_czech(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s1, size_t len1, + const uchar *s2, size_t len2, + my_bool s2_is_prefix) +{ + int v1, v2; + const uchar *p1, * p2, * store1, * store2; + int pass1 = 0, pass2 = 0; + + if (s2_is_prefix && len1 > len2) + len1=len2; + + p1 = s1; p2 = s2; + store1 = s1; store2 = s2; + + do + { + int diff; + NEXT_CMP_VALUE(s1, p1, store1, pass1, v1, (int)len1); + NEXT_CMP_VALUE(s2, p2, store2, pass2, v2, (int)len2); + if ((diff = v1 - v2)) + return diff; + } + while (v1); + return 0; +} + + + +/* + TODO: Fix this one to compare strings as they are done in ctype-simple1 +*/ + +static +int my_strnncollsp_czech(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + for ( ; slen && s[slen-1] == ' ' ; slen--); + for ( ; tlen && t[tlen-1] == ' ' ; tlen--); + return my_strnncoll_czech(cs,s,slen,t,tlen,0); +} + + +/* + Returns the number of bytes required for strnxfrm(). +*/ +static size_t +my_strnxfrmlen_czech(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), size_t len) +{ + return len * 4 + 4; +} + + +/* + Function strnxfrm, actually strxfrm, with Czech sorting, which expect + the length of the strings being specified +*/ + +static size_t +my_strnxfrm_czech(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uchar *dest, size_t len, + uint nweights_arg MY_ATTRIBUTE((unused)), + const uchar *src, size_t srclen, uint flags) +{ + int value; + const uchar *p, * store; + int pass = 0; + size_t totlen = 0; + p = src; store = src; + + if (!(flags & 0x0F)) /* All levels by default */ + flags|= 0x0F; + + do + { + int add= (1 << pass) & flags; /* If this level is needed */ + NEXT_CMP_VALUE(src, p, store, pass, value, (int)srclen); + if (add) + ADD_TO_RESULT(dest, len, totlen, value); + } + while (value); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len > totlen) + { + memset(dest + totlen, ' ', len - totlen); + totlen= len; + } + return totlen; +} + +#undef IS_END + + +/* + Neformální popis algoritmu: + + procházíme øetìzec zleva doprava + konec øetìzce poznáme podle *p == 0 + pokud jsme do¹li na konec øetìzce pøi prùchodu 0, nejdeme na + zaèátek, ale na ulo¾enou pozici, proto¾e první a druhý + prùchod bì¾í souèasnì + konec vstupu (prùchodu) oznaèíme na výstupu hodnotou 1 + + naèteme hodnotu z tøídící tabulky + jde-li o hodnotu ignorovat (0), skoèíme na dal¹í prùchod + jde-li o hodnotu konec slova (2) a je to prùchod 0 nebo 1, + pøeskoèíme v¹echny dal¹í 0 -- 2 a prohodíme + prùchody + jde-li o kompozitní znak (255), otestujeme, zda následuje + správný do dvojice, dohledáme správnou hodnotu + + na konci pøipojíme znak 0 + */ + + +/* +** Calculate min_str and max_str that ranges a LIKE string. +** Arguments: +** ptr Pointer to LIKE string. +** ptr_length Length of LIKE string. +** escape Escape character in LIKE. (Normally '\'). +** All escape characters should be removed from min_str and max_str +** res_length Length of min_str and max_str. +** min_str Smallest case sensitive string that ranges LIKE. +** Should be space padded to res_length. +** max_str Largest case sensitive string that ranges LIKE. +** Normally padded with the biggest character sort value. +** +** The function should return 0 if ok and 1 if the LIKE string can't be +** optimized ! +*/ + + +#define min_sort_char ' ' +#define max_sort_char '9' + + +static my_bool my_like_range_czech(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const char *ptr,size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, char *min_str, + char *max_str, + size_t *min_length,size_t *max_length) +{ + uchar value; + const char *end=ptr+ptr_length; + char *min_org=min_str; + char *min_end=min_str+res_length; + + for (; ptr != end && min_str != min_end ; ptr++) + { + if (*ptr == w_one) /* '_' in SQL */ + { break; } + if (*ptr == w_many) /* '%' in SQL */ + { break; } + + if (*ptr == escape && ptr+1 != end) + { ptr++; } /* Skip escape */ + + value = CZ_SORT_TABLE[0][(int) (uchar) *ptr]; + + if (value == 0) /* Ignore in the first pass */ + { continue; } + if (value <= 2) /* End of pass or end of string */ + { break; } + if (value == 255) /* Double char too compicated */ + { break; } + + *min_str++= *max_str++ = *ptr; + } + + if (cs->state & MY_CS_BINSORT) + *min_length= (size_t) (min_str - min_org); + else + { + /* 'a\0\0... is the smallest possible string */ + *min_length= res_length; + } + /* a\ff\ff... is the biggest possible string */ + *max_length= res_length; + + while (min_str != min_end) + { + *min_str++ = min_sort_char; /* Because of key compression */ + *max_str++ = max_sort_char; + } + return 0; +} + + +/* + * File generated by cset + * (C) Abandoned 1997 Zarko Mocnik + * + * definition table reworked by Jaromir Dolecek + */ + +static const uchar ctype_czech[257] = { +0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, +132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 72, + 1, 16, 1, 16, 1, 1, 16, 0, 0, 1, 1, 1, 1, 16, 1, 1, + 16, 2, 16, 2, 16, 2, 2, 16, 16, 2, 2, 2, 2, 16, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 16, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 16, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 16, +}; + +static const uchar to_lower_czech[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, +112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, +112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, +128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, +144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, +177,161,179,163,181,182,166,167,168,185,186,187,188,173,190,191, +176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, +224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, +208,241,242,243,244,245,246,215,248,249,250,251,252,253,254,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, +}; + +static const uchar to_upper_czech[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, +128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, +144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, +160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, +176,160,178,162,180,164,165,183,184,169,170,171,172,189,174,175, +192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, +208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, +192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, +240,209,210,211,212,213,214,247,216,217,218,219,220,221,222,255, +}; + +static const uchar sort_order_czech[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 71, 72, 76, 78, 83, 84, 85, 86, 90, 91, 92, 96, 97,100, +105,106,107,110,114,117,122,123,124,125,127,131,132,133,134,135, +136, 65, 71, 72, 76, 78, 83, 84, 85, 86, 90, 91, 92, 96, 97,100, +105,106,107,110,114,117,122,123,124,125,127,137,138,139,140, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,255, + 66,255, 93,255, 94,111,255,255,255,112,113,115,128,255,129,130, +255, 66,255, 93,255, 94,111,255,255,112,113,115,128,255,129,130, +108, 67, 68, 69, 70, 95, 73, 75, 74, 79, 81, 82, 80, 89, 87, 77, +255, 98, 99,101,102,103,104,255,109,119,118,120,121,126,116,255, +108, 67, 68, 69, 70, 95, 73, 75, 74, 79, 81, 82, 80, 89, 88, 77, +255, 98, 99,101,102,103,104,255,109,119,118,120,121,126,116,255, +}; + +static uint16 tab_8859_2_uni[256]={ + 0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, +0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, +0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, +0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + + +/* 0000-00FD , 254 chars */ +static const uchar tab_uni_8859_2_plane00[]={ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0x00,0x00,0x00,0xA4,0x00,0x00,0xA7,0xA8,0x00,0x00,0x00,0x00,0xAD,0x00,0x00, +0xB0,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xC1,0xC2,0x00,0xC4,0x00,0x00,0xC7,0x00,0xC9,0x00,0xCB,0x00,0xCD,0xCE,0x00, +0x00,0x00,0x00,0xD3,0xD4,0x00,0xD6,0xD7,0x00,0x00,0xDA,0x00,0xDC,0xDD,0x00,0xDF, +0x00,0xE1,0xE2,0x00,0xE4,0x00,0x00,0xE7,0x00,0xE9,0x00,0xEB,0x00,0xED,0xEE,0x00, +0x00,0x00,0x00,0xF3,0xF4,0x00,0xF6,0xF7,0x00,0x00,0xFA,0x00,0xFC,0xFD}; + +/* 0102-017E , 125 chars */ +static const uchar tab_uni_8859_2_plane01[]={ +0xC3,0xE3,0xA1,0xB1,0xC6,0xE6,0x00,0x00,0x00,0x00,0xC8,0xE8,0xCF,0xEF,0xD0,0xF0, +0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC5,0xE5,0x00,0x00,0xA5,0xB5,0x00,0x00,0xA3, +0xB3,0xD1,0xF1,0x00,0x00,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD5,0xF5, +0x00,0x00,0xC0,0xE0,0x00,0x00,0xD8,0xF8,0xA6,0xB6,0x00,0x00,0xAA,0xBA,0xA9,0xB9, +0xDE,0xFE,0xAB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD9,0xF9,0xDB,0xFB, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAC,0xBC,0xAF,0xBF,0xAE,0xBE}; + +/* 02C7-02DD , 23 chars */ +static const uchar tab_uni_8859_2_plane02[]={ +0xB7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xA2,0xFF,0x00,0xB2,0x00,0xBD}; + +static MY_UNI_IDX idx_uni_8859_2[]={ + {0x0000,0x00FD,tab_uni_8859_2_plane00}, + {0x0102,0x017E,tab_uni_8859_2_plane01}, + {0x02C7,0x02DD,tab_uni_8859_2_plane02}, + {0,0,NULL} +}; + + +static MY_COLLATION_HANDLER my_collation_latin2_czech_ci_handler = +{ + NULL, /* init */ + my_strnncoll_czech, + my_strnncollsp_czech, + my_strnxfrm_czech, + my_strnxfrmlen_czech, + my_like_range_czech, + my_wildcmp_bin, + my_strcasecmp_8bit, + my_instr_simple, + my_hash_sort_simple, + my_propagate_simple +}; + +CHARSET_INFO my_charset_latin2_czech_ci = +{ + 2,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */ + "latin2", /* cs name */ + "latin2_czech_cs", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_czech, + to_lower_czech, + to_upper_czech, + sort_order_czech, + NULL, /* uca */ + tab_8859_2_uni, /* tab_to_uni */ + idx_uni_8859_2, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 4, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 4, /* levels_for_compare */ + 4, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_latin2_czech_ci_handler +}; + + +#endif diff --git a/mysql/strings/ctype-euc_kr.c b/mysql/strings/ctype-euc_kr.c new file mode 100644 index 0000000..e5a8731 --- /dev/null +++ b/mysql/strings/ctype-euc_kr.c @@ -0,0 +1,10084 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + * This file is for Korean EUC charset, and created by powerm90@tinc.co.kr. + * and updated by mrpark@tinc.co.kr. + */ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. mbmaxlen_euc_kr=2 + */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_euckr + + +static const uchar ctype_euc_kr[257] = +{ + 0, /* For standard library */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */ + 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */ + 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */ + 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */ + 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */ + 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */ + 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */ + 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */ + 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0000, +}; + +static const uchar to_lower_euc_kr[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar to_upper_euc_kr[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar sort_order_euc_kr[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +/* Support for Korean(EUC_KR) characters, by powerm90@tinc.co.kr and mrpark@tinc.co.kr */ + +/* + Unicode mapping is done according to: + ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSC5601.TXT + + Valid multi-byte characters: + + [81..FE][41..5A,61..7A,81..FE] + + Note, 0x5C is not a valid MB tail, + so escape_with_backslash_is_dangerous is not set. +*/ + +#define iseuc_kr_head(c) ((0x81<=(uchar)(c) && (uchar)(c)<=0xfe)) + +#define iseuc_kr_tail1(c) ((uchar) (c) >= 0x41 && (uchar) (c) <= 0x5A) +#define iseuc_kr_tail2(c) ((uchar) (c) >= 0x61 && (uchar) (c) <= 0x7A) +#define iseuc_kr_tail3(c) ((uchar) (c) >= 0x81 && (uchar) (c) <= 0xFE) + +#define iseuc_kr_tail(c) (iseuc_kr_tail1(c) || \ + iseuc_kr_tail2(c) || \ + iseuc_kr_tail3(c)) + + +static uint ismbchar_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return ((*(uchar*)(p)<0x80)? 0:\ + iseuc_kr_head(*(p)) && (e)-(p)>1 && iseuc_kr_tail(*((p)+1))? 2:\ + 0); +} + +static uint mbcharlen_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (iseuc_kr_head(c) ? 2 : 1); +} + + +static const MY_UNICASE_CHARACTER cA3[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA340,0xA340,0x003F}, /* A340 */ + {0xA341,0xA341,0xC971}, + {0xA342,0xA342,0xC972}, + {0xA343,0xA343,0xC973}, + {0xA344,0xA344,0xC975}, + {0xA345,0xA345,0xC976}, + {0xA346,0xA346,0xC977}, + {0xA347,0xA347,0xC978}, + {0xA348,0xA348,0xC979}, + {0xA349,0xA349,0xC97A}, + {0xA34A,0xA34A,0xC97B}, + {0xA34B,0xA34B,0xC97D}, + {0xA34C,0xA34C,0xC97E}, + {0xA34D,0xA34D,0xC97F}, + {0xA34E,0xA34E,0xC980}, + {0xA34F,0xA34F,0xC981}, + {0xA350,0xA350,0xC982}, /* A350 */ + {0xA351,0xA351,0xC983}, + {0xA352,0xA352,0xC984}, + {0xA353,0xA353,0xC985}, + {0xA354,0xA354,0xC986}, + {0xA355,0xA355,0xC987}, + {0xA356,0xA356,0xC98A}, + {0xA357,0xA357,0xC98B}, + {0xA358,0xA358,0xC98D}, + {0xA359,0xA359,0xC98E}, + {0xA35A,0xA35A,0xC98F}, + {0xA35B,0xA35B,0x003F}, + {0xA35C,0xA35C,0x003F}, + {0xA35D,0xA35D,0x003F}, + {0xA35E,0xA35E,0x003F}, + {0xA35F,0xA35F,0x003F}, + {0xA360,0xA360,0x003F}, /* A360 */ + {0xA361,0xA361,0xC991}, + {0xA362,0xA362,0xC992}, + {0xA363,0xA363,0xC993}, + {0xA364,0xA364,0xC994}, + {0xA365,0xA365,0xC995}, + {0xA366,0xA366,0xC996}, + {0xA367,0xA367,0xC997}, + {0xA368,0xA368,0xC99A}, + {0xA369,0xA369,0xC99C}, + {0xA36A,0xA36A,0xC99E}, + {0xA36B,0xA36B,0xC99F}, + {0xA36C,0xA36C,0xC9A0}, + {0xA36D,0xA36D,0xC9A1}, + {0xA36E,0xA36E,0xC9A2}, + {0xA36F,0xA36F,0xC9A3}, + {0xA370,0xA370,0xC9A4}, /* A370 */ + {0xA371,0xA371,0xC9A5}, + {0xA372,0xA372,0xC9A6}, + {0xA373,0xA373,0xC9A7}, + {0xA374,0xA374,0xC9A8}, + {0xA375,0xA375,0xC9A9}, + {0xA376,0xA376,0xC9AA}, + {0xA377,0xA377,0xC9AB}, + {0xA378,0xA378,0xC9AC}, + {0xA379,0xA379,0xC9AD}, + {0xA37A,0xA37A,0xC9AE}, + {0xA37B,0xA37B,0x003F}, + {0xA37C,0xA37C,0x003F}, + {0xA37D,0xA37D,0x003F}, + {0xA37E,0xA37E,0x003F}, + {0xA37F,0xA37F,0x003F}, + {0xA380,0xA380,0x003F}, /* A380 */ + {0xA381,0xA381,0xC9AF}, + {0xA382,0xA382,0xC9B0}, + {0xA383,0xA383,0xC9B1}, + {0xA384,0xA384,0xC9B2}, + {0xA385,0xA385,0xC9B3}, + {0xA386,0xA386,0xC9B4}, + {0xA387,0xA387,0xC9B5}, + {0xA388,0xA388,0xC9B6}, + {0xA389,0xA389,0xC9B7}, + {0xA38A,0xA38A,0xC9B8}, + {0xA38B,0xA38B,0xC9B9}, + {0xA38C,0xA38C,0xC9BA}, + {0xA38D,0xA38D,0xC9BB}, + {0xA38E,0xA38E,0xC9BC}, + {0xA38F,0xA38F,0xC9BD}, + {0xA390,0xA390,0xC9BE}, /* A390 */ + {0xA391,0xA391,0xC9BF}, + {0xA392,0xA392,0xC9C2}, + {0xA393,0xA393,0xC9C3}, + {0xA394,0xA394,0xC9C5}, + {0xA395,0xA395,0xC9C6}, + {0xA396,0xA396,0xC9C9}, + {0xA397,0xA397,0xC9CB}, + {0xA398,0xA398,0xC9CC}, + {0xA399,0xA399,0xC9CD}, + {0xA39A,0xA39A,0xC9CE}, + {0xA39B,0xA39B,0xC9CF}, + {0xA39C,0xA39C,0xC9D2}, + {0xA39D,0xA39D,0xC9D4}, + {0xA39E,0xA39E,0xC9D7}, + {0xA39F,0xA39F,0xC9D8}, + {0xA3A0,0xA3A0,0xC9DB}, /* A3A0 */ + {0xA3A1,0xA3A1,0xFF01}, + {0xA3A2,0xA3A2,0xFF02}, + {0xA3A3,0xA3A3,0xFF03}, + {0xA3A4,0xA3A4,0xFF04}, + {0xA3A5,0xA3A5,0xFF05}, + {0xA3A6,0xA3A6,0xFF06}, + {0xA3A7,0xA3A7,0xFF07}, + {0xA3A8,0xA3A8,0xFF08}, + {0xA3A9,0xA3A9,0xFF09}, + {0xA3AA,0xA3AA,0xFF0A}, + {0xA3AB,0xA3AB,0xFF0B}, + {0xA3AC,0xA3AC,0xFF0C}, + {0xA3AD,0xA3AD,0xFF0D}, + {0xA3AE,0xA3AE,0xFF0E}, + {0xA3AF,0xA3AF,0xFF0F}, + {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */ + {0xA3B1,0xA3B1,0xFF11}, + {0xA3B2,0xA3B2,0xFF12}, + {0xA3B3,0xA3B3,0xFF13}, + {0xA3B4,0xA3B4,0xFF14}, + {0xA3B5,0xA3B5,0xFF15}, + {0xA3B6,0xA3B6,0xFF16}, + {0xA3B7,0xA3B7,0xFF17}, + {0xA3B8,0xA3B8,0xFF18}, + {0xA3B9,0xA3B9,0xFF19}, + {0xA3BA,0xA3BA,0xFF1A}, + {0xA3BB,0xA3BB,0xFF1B}, + {0xA3BC,0xA3BC,0xFF1C}, + {0xA3BD,0xA3BD,0xFF1D}, + {0xA3BE,0xA3BE,0xFF1E}, + {0xA3BF,0xA3BF,0xFF1F}, + {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */ + {0xA3C1,0xA3E1,0xFF21}, + {0xA3C2,0xA3E2,0xFF22}, + {0xA3C3,0xA3E3,0xFF23}, + {0xA3C4,0xA3E4,0xFF24}, + {0xA3C5,0xA3E5,0xFF25}, + {0xA3C6,0xA3E6,0xFF26}, + {0xA3C7,0xA3E7,0xFF27}, + {0xA3C8,0xA3E8,0xFF28}, + {0xA3C9,0xA3E9,0xFF29}, + {0xA3CA,0xA3EA,0xFF2A}, + {0xA3CB,0xA3EB,0xFF2B}, + {0xA3CC,0xA3EC,0xFF2C}, + {0xA3CD,0xA3ED,0xFF2D}, + {0xA3CE,0xA3EE,0xFF2E}, + {0xA3CF,0xA3EF,0xFF2F}, + {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */ + {0xA3D1,0xA3F1,0xFF31}, + {0xA3D2,0xA3F2,0xFF32}, + {0xA3D3,0xA3F3,0xFF33}, + {0xA3D4,0xA3F4,0xFF34}, + {0xA3D5,0xA3F5,0xFF35}, + {0xA3D6,0xA3F6,0xFF36}, + {0xA3D7,0xA3F7,0xFF37}, + {0xA3D8,0xA3F8,0xFF38}, + {0xA3D9,0xA3F9,0xFF39}, + {0xA3DA,0xA3FA,0xFF3A}, + {0xA3DB,0xA3DB,0xFF3B}, + {0xA3DC,0xA3DC,0xFFE6}, + {0xA3DD,0xA3DD,0xFF3D}, + {0xA3DE,0xA3DE,0xFF3E}, + {0xA3DF,0xA3DF,0xFF3F}, + {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */ + {0xA3C1,0xA3E1,0xFF41}, + {0xA3C2,0xA3E2,0xFF42}, + {0xA3C3,0xA3E3,0xFF43}, + {0xA3C4,0xA3E4,0xFF44}, + {0xA3C5,0xA3E5,0xFF45}, + {0xA3C6,0xA3E6,0xFF46}, + {0xA3C7,0xA3E7,0xFF47}, + {0xA3C8,0xA3E8,0xFF48}, + {0xA3C9,0xA3E9,0xFF49}, + {0xA3CA,0xA3EA,0xFF4A}, + {0xA3CB,0xA3EB,0xFF4B}, + {0xA3CC,0xA3EC,0xFF4C}, + {0xA3CD,0xA3ED,0xFF4D}, + {0xA3CE,0xA3EE,0xFF4E}, + {0xA3CF,0xA3EF,0xFF4F}, + {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */ + {0xA3D1,0xA3F1,0xFF51}, + {0xA3D2,0xA3F2,0xFF52}, + {0xA3D3,0xA3F3,0xFF53}, + {0xA3D4,0xA3F4,0xFF54}, + {0xA3D5,0xA3F5,0xFF55}, + {0xA3D6,0xA3F6,0xFF56}, + {0xA3D7,0xA3F7,0xFF57}, + {0xA3D8,0xA3F8,0xFF58}, + {0xA3D9,0xA3F9,0xFF59}, + {0xA3DA,0xA3FA,0xFF5A}, + {0xA3FB,0xA3FB,0xFF5B}, + {0xA3FC,0xA3FC,0xFF5C}, + {0xA3FD,0xA3FD,0xFF5D}, + {0xA3FE,0xA3FE,0xFFE3}, + {0xA3FF,0xA3FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA5[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA540,0xA540,0x003F}, /* A540 */ + {0xA541,0xA541,0xCA47}, + {0xA542,0xA542,0xCA48}, + {0xA543,0xA543,0xCA49}, + {0xA544,0xA544,0xCA4A}, + {0xA545,0xA545,0xCA4B}, + {0xA546,0xA546,0xCA4E}, + {0xA547,0xA547,0xCA4F}, + {0xA548,0xA548,0xCA51}, + {0xA549,0xA549,0xCA52}, + {0xA54A,0xA54A,0xCA53}, + {0xA54B,0xA54B,0xCA55}, + {0xA54C,0xA54C,0xCA56}, + {0xA54D,0xA54D,0xCA57}, + {0xA54E,0xA54E,0xCA58}, + {0xA54F,0xA54F,0xCA59}, + {0xA550,0xA550,0xCA5A}, /* A550 */ + {0xA551,0xA551,0xCA5B}, + {0xA552,0xA552,0xCA5E}, + {0xA553,0xA553,0xCA62}, + {0xA554,0xA554,0xCA63}, + {0xA555,0xA555,0xCA64}, + {0xA556,0xA556,0xCA65}, + {0xA557,0xA557,0xCA66}, + {0xA558,0xA558,0xCA67}, + {0xA559,0xA559,0xCA69}, + {0xA55A,0xA55A,0xCA6A}, + {0xA55B,0xA55B,0x003F}, + {0xA55C,0xA55C,0x003F}, + {0xA55D,0xA55D,0x003F}, + {0xA55E,0xA55E,0x003F}, + {0xA55F,0xA55F,0x003F}, + {0xA560,0xA560,0x003F}, /* A560 */ + {0xA561,0xA561,0xCA6B}, + {0xA562,0xA562,0xCA6C}, + {0xA563,0xA563,0xCA6D}, + {0xA564,0xA564,0xCA6E}, + {0xA565,0xA565,0xCA6F}, + {0xA566,0xA566,0xCA70}, + {0xA567,0xA567,0xCA71}, + {0xA568,0xA568,0xCA72}, + {0xA569,0xA569,0xCA73}, + {0xA56A,0xA56A,0xCA74}, + {0xA56B,0xA56B,0xCA75}, + {0xA56C,0xA56C,0xCA76}, + {0xA56D,0xA56D,0xCA77}, + {0xA56E,0xA56E,0xCA78}, + {0xA56F,0xA56F,0xCA79}, + {0xA570,0xA570,0xCA7A}, /* A570 */ + {0xA571,0xA571,0xCA7B}, + {0xA572,0xA572,0xCA7C}, + {0xA573,0xA573,0xCA7E}, + {0xA574,0xA574,0xCA7F}, + {0xA575,0xA575,0xCA80}, + {0xA576,0xA576,0xCA81}, + {0xA577,0xA577,0xCA82}, + {0xA578,0xA578,0xCA83}, + {0xA579,0xA579,0xCA85}, + {0xA57A,0xA57A,0xCA86}, + {0xA57B,0xA57B,0x003F}, + {0xA57C,0xA57C,0x003F}, + {0xA57D,0xA57D,0x003F}, + {0xA57E,0xA57E,0x003F}, + {0xA57F,0xA57F,0x003F}, + {0xA580,0xA580,0x003F}, /* A580 */ + {0xA581,0xA581,0xCA87}, + {0xA582,0xA582,0xCA88}, + {0xA583,0xA583,0xCA89}, + {0xA584,0xA584,0xCA8A}, + {0xA585,0xA585,0xCA8B}, + {0xA586,0xA586,0xCA8C}, + {0xA587,0xA587,0xCA8D}, + {0xA588,0xA588,0xCA8E}, + {0xA589,0xA589,0xCA8F}, + {0xA58A,0xA58A,0xCA90}, + {0xA58B,0xA58B,0xCA91}, + {0xA58C,0xA58C,0xCA92}, + {0xA58D,0xA58D,0xCA93}, + {0xA58E,0xA58E,0xCA94}, + {0xA58F,0xA58F,0xCA95}, + {0xA590,0xA590,0xCA96}, /* A590 */ + {0xA591,0xA591,0xCA97}, + {0xA592,0xA592,0xCA99}, + {0xA593,0xA593,0xCA9A}, + {0xA594,0xA594,0xCA9B}, + {0xA595,0xA595,0xCA9C}, + {0xA596,0xA596,0xCA9D}, + {0xA597,0xA597,0xCA9E}, + {0xA598,0xA598,0xCA9F}, + {0xA599,0xA599,0xCAA0}, + {0xA59A,0xA59A,0xCAA1}, + {0xA59B,0xA59B,0xCAA2}, + {0xA59C,0xA59C,0xCAA3}, + {0xA59D,0xA59D,0xCAA4}, + {0xA59E,0xA59E,0xCAA5}, + {0xA59F,0xA59F,0xCAA6}, + {0xA5A0,0xA5A0,0xCAA7}, /* A5A0 */ + {0xA5B0,0xA5A1,0x2170}, + {0xA5B1,0xA5A2,0x2171}, + {0xA5B2,0xA5A3,0x2172}, + {0xA5B3,0xA5A4,0x2173}, + {0xA5B4,0xA5A5,0x2174}, + {0xA5B5,0xA5A6,0x2175}, + {0xA5B6,0xA5A7,0x2176}, + {0xA5B7,0xA5A8,0x2177}, + {0xA5B8,0xA5A9,0x2178}, + {0xA5B9,0xA5AA,0x2179}, + {0xA5AB,0xA5AB,0x003F}, + {0xA5AC,0xA5AC,0x003F}, + {0xA5AD,0xA5AD,0x003F}, + {0xA5AE,0xA5AE,0x003F}, + {0xA5AF,0xA5AF,0x003F}, + {0xA5B0,0xA5A1,0x2160}, /* A5B0 */ + {0xA5B1,0xA5A2,0x2161}, + {0xA5B2,0xA5A3,0x2162}, + {0xA5B3,0xA5A4,0x2163}, + {0xA5B4,0xA5A5,0x2164}, + {0xA5B5,0xA5A6,0x2165}, + {0xA5B6,0xA5A7,0x2166}, + {0xA5B7,0xA5A8,0x2167}, + {0xA5B8,0xA5A9,0x2168}, + {0xA5B9,0xA5AA,0x2169}, + {0xA5BA,0xA5BA,0x003F}, + {0xA5BB,0xA5BB,0x003F}, + {0xA5BC,0xA5BC,0x003F}, + {0xA5BD,0xA5BD,0x003F}, + {0xA5BE,0xA5BE,0x003F}, + {0xA5BF,0xA5BF,0x003F}, + {0xA5C0,0xA5C0,0x003F}, /* A5C0 */ + {0xA5C1,0xA5E1,0x0391}, + {0xA5C2,0xA5E2,0x0392}, + {0xA5C3,0xA5E3,0x0393}, + {0xA5C4,0xA5E4,0x0394}, + {0xA5C5,0xA5E5,0x0395}, + {0xA5C6,0xA5E6,0x0396}, + {0xA5C7,0xA5E7,0x0397}, + {0xA5C8,0xA5E8,0x0398}, + {0xA5C9,0xA5E9,0x0399}, + {0xA5CA,0xA5EA,0x039A}, + {0xA5CB,0xA5EB,0x039B}, + {0xA5CC,0xA5EC,0x039C}, + {0xA5CD,0xA5ED,0x039D}, + {0xA5CE,0xA5EE,0x039E}, + {0xA5CF,0xA5EF,0x039F}, + {0xA5D0,0xA5F0,0x03A0}, /* A5D0 */ + {0xA5D1,0xA5F1,0x03A1}, + {0xA5D2,0xA5F2,0x03A3}, + {0xA5D3,0xA5F3,0x03A4}, + {0xA5D4,0xA5F4,0x03A5}, + {0xA5D5,0xA5F5,0x03A6}, + {0xA5D6,0xA5F6,0x03A7}, + {0xA5D7,0xA5F7,0x03A8}, + {0xA5D8,0xA5F8,0x03A9}, + {0xA5D9,0xA5D9,0x003F}, + {0xA5DA,0xA5DA,0x003F}, + {0xA5DB,0xA5DB,0x003F}, + {0xA5DC,0xA5DC,0x003F}, + {0xA5DD,0xA5DD,0x003F}, + {0xA5DE,0xA5DE,0x003F}, + {0xA5DF,0xA5DF,0x003F}, + {0xA5E0,0xA5E0,0x003F}, /* A5E0 */ + {0xA5C1,0xA5E1,0x03B1}, + {0xA5C2,0xA5E2,0x03B2}, + {0xA5C3,0xA5E3,0x03B3}, + {0xA5C4,0xA5E4,0x03B4}, + {0xA5C5,0xA5E5,0x03B5}, + {0xA5C6,0xA5E6,0x03B6}, + {0xA5C7,0xA5E7,0x03B7}, + {0xA5C8,0xA5E8,0x03B8}, + {0xA5C9,0xA5E9,0x03B9}, + {0xA5CA,0xA5EA,0x03BA}, + {0xA5CB,0xA5EB,0x03BB}, + {0xA5CC,0xA5EC,0x03BC}, + {0xA5CD,0xA5ED,0x03BD}, + {0xA5CE,0xA5EE,0x03BE}, + {0xA5CF,0xA5EF,0x03BF}, + {0xA5D0,0xA5F0,0x03C0}, /* A5F0 */ + {0xA5D1,0xA5F1,0x03C1}, + {0xA5D2,0xA5F2,0x03C3}, + {0xA5D3,0xA5F3,0x03C4}, + {0xA5D4,0xA5F4,0x03C5}, + {0xA5D5,0xA5F5,0x03C6}, + {0xA5D6,0xA5F6,0x03C7}, + {0xA5D7,0xA5F7,0x03C8}, + {0xA5D8,0xA5F8,0x03C9}, + {0xA5F9,0xA5F9,0x003F}, + {0xA5FA,0xA5FA,0x003F}, + {0xA5FB,0xA5FB,0x003F}, + {0xA5FC,0xA5FC,0x003F}, + {0xA5FD,0xA5FD,0x003F}, + {0xA5FE,0xA5FE,0x003F}, + {0xA5FF,0xA5FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA7[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA740,0xA740,0x003F}, /* A740 */ + {0xA741,0xA741,0xCB0B}, + {0xA742,0xA742,0xCB0C}, + {0xA743,0xA743,0xCB0D}, + {0xA744,0xA744,0xCB0E}, + {0xA745,0xA745,0xCB0F}, + {0xA746,0xA746,0xCB11}, + {0xA747,0xA747,0xCB12}, + {0xA748,0xA748,0xCB13}, + {0xA749,0xA749,0xCB15}, + {0xA74A,0xA74A,0xCB16}, + {0xA74B,0xA74B,0xCB17}, + {0xA74C,0xA74C,0xCB19}, + {0xA74D,0xA74D,0xCB1A}, + {0xA74E,0xA74E,0xCB1B}, + {0xA74F,0xA74F,0xCB1C}, + {0xA750,0xA750,0xCB1D}, /* A750 */ + {0xA751,0xA751,0xCB1E}, + {0xA752,0xA752,0xCB1F}, + {0xA753,0xA753,0xCB22}, + {0xA754,0xA754,0xCB23}, + {0xA755,0xA755,0xCB24}, + {0xA756,0xA756,0xCB25}, + {0xA757,0xA757,0xCB26}, + {0xA758,0xA758,0xCB27}, + {0xA759,0xA759,0xCB28}, + {0xA75A,0xA75A,0xCB29}, + {0xA75B,0xA75B,0x003F}, + {0xA75C,0xA75C,0x003F}, + {0xA75D,0xA75D,0x003F}, + {0xA75E,0xA75E,0x003F}, + {0xA75F,0xA75F,0x003F}, + {0xA760,0xA760,0x003F}, /* A760 */ + {0xA761,0xA761,0xCB2A}, + {0xA762,0xA762,0xCB2B}, + {0xA763,0xA763,0xCB2C}, + {0xA764,0xA764,0xCB2D}, + {0xA765,0xA765,0xCB2E}, + {0xA766,0xA766,0xCB2F}, + {0xA767,0xA767,0xCB30}, + {0xA768,0xA768,0xCB31}, + {0xA769,0xA769,0xCB32}, + {0xA76A,0xA76A,0xCB33}, + {0xA76B,0xA76B,0xCB34}, + {0xA76C,0xA76C,0xCB35}, + {0xA76D,0xA76D,0xCB36}, + {0xA76E,0xA76E,0xCB37}, + {0xA76F,0xA76F,0xCB38}, + {0xA770,0xA770,0xCB39}, /* A770 */ + {0xA771,0xA771,0xCB3A}, + {0xA772,0xA772,0xCB3B}, + {0xA773,0xA773,0xCB3C}, + {0xA774,0xA774,0xCB3D}, + {0xA775,0xA775,0xCB3E}, + {0xA776,0xA776,0xCB3F}, + {0xA777,0xA777,0xCB40}, + {0xA778,0xA778,0xCB42}, + {0xA779,0xA779,0xCB43}, + {0xA77A,0xA77A,0xCB44}, + {0xA77B,0xA77B,0x003F}, + {0xA77C,0xA77C,0x003F}, + {0xA77D,0xA77D,0x003F}, + {0xA77E,0xA77E,0x003F}, + {0xA77F,0xA77F,0x003F}, + {0xA780,0xA780,0x003F}, /* A780 */ + {0xA781,0xA781,0xCB45}, + {0xA782,0xA782,0xCB46}, + {0xA783,0xA783,0xCB47}, + {0xA784,0xA784,0xCB4A}, + {0xA785,0xA785,0xCB4B}, + {0xA786,0xA786,0xCB4D}, + {0xA787,0xA787,0xCB4E}, + {0xA788,0xA788,0xCB4F}, + {0xA789,0xA789,0xCB51}, + {0xA78A,0xA78A,0xCB52}, + {0xA78B,0xA78B,0xCB53}, + {0xA78C,0xA78C,0xCB54}, + {0xA78D,0xA78D,0xCB55}, + {0xA78E,0xA78E,0xCB56}, + {0xA78F,0xA78F,0xCB57}, + {0xA790,0xA790,0xCB5A}, /* A790 */ + {0xA791,0xA791,0xCB5B}, + {0xA792,0xA792,0xCB5C}, + {0xA793,0xA793,0xCB5E}, + {0xA794,0xA794,0xCB5F}, + {0xA795,0xA795,0xCB60}, + {0xA796,0xA796,0xCB61}, + {0xA797,0xA797,0xCB62}, + {0xA798,0xA798,0xCB63}, + {0xA799,0xA799,0xCB65}, + {0xA79A,0xA79A,0xCB66}, + {0xA79B,0xA79B,0xCB67}, + {0xA79C,0xA79C,0xCB68}, + {0xA79D,0xA79D,0xCB69}, + {0xA79E,0xA79E,0xCB6A}, + {0xA79F,0xA79F,0xCB6B}, + {0xA7A0,0xA7A0,0xCB6C}, /* A7A0 */ + {0xA7A1,0xA7A1,0x3395}, + {0xA7A2,0xA7A2,0x3396}, + {0xA7A3,0xA7A3,0x3397}, + {0xA7A4,0xA7A4,0x2113}, + {0xA7A5,0xA7A5,0x3398}, + {0xA7A6,0xA7A6,0x33C4}, + {0xA7A7,0xA7A7,0x33A3}, + {0xA7A8,0xA7A8,0x33A4}, + {0xA7A9,0xA7A9,0x33A5}, + {0xA7AA,0xA7AA,0x33A6}, + {0xA7AB,0xA7AB,0x3399}, + {0xA7AC,0xA7AC,0x339A}, + {0xA7AD,0xA7AD,0x339B}, + {0xA7AE,0xA7AE,0x339C}, + {0xA7AF,0xA7AF,0x339D}, + {0xA7B0,0xA7B0,0x339E}, /* A7B0 */ + {0xA7B1,0xA7B1,0x339F}, + {0xA7B2,0xA7B2,0x33A0}, + {0xA7B3,0xA7B3,0x33A1}, + {0xA7B4,0xA7B4,0x33A2}, + {0xA7B5,0xA7B5,0x33CA}, + {0xA7B6,0xA7B6,0x338D}, + {0xA7B7,0xA7B7,0x338E}, + {0xA7B8,0xA7B8,0x338F}, + {0xA7B9,0xA7B9,0x33CF}, + {0xA7BA,0xA7BA,0x3388}, + {0xA7BB,0xA7BB,0x3389}, + {0xA7BC,0xA7BC,0x33C8}, + {0xA7BD,0xA7BD,0x33A7}, + {0xA7BE,0xA7BE,0x33A8}, + {0xA7BF,0xA7BF,0x33B0}, + {0xA7C0,0xA7C0,0x33B1}, /* A7C0 */ + {0xA7C1,0xA7C1,0x33B2}, + {0xA7C2,0xA7C2,0x33B3}, + {0xA7C3,0xA7C3,0x33B4}, + {0xA7C4,0xA7C4,0x33B5}, + {0xA7C5,0xA7C5,0x33B6}, + {0xA7C6,0xA7C6,0x33B7}, + {0xA7C7,0xA7C7,0x33B8}, + {0xA7C8,0xA7C8,0x33B9}, + {0xA7C9,0xA7C9,0x3380}, + {0xA7CA,0xA7CA,0x3381}, + {0xA7CB,0xA7CB,0x3382}, + {0xA7CC,0xA7CC,0x3383}, + {0xA7CD,0xA7CD,0x3384}, + {0xA7CE,0xA7CE,0x33BA}, + {0xA7CF,0xA7CF,0x33BB}, + {0xA7D0,0xA7D0,0x33BC}, /* A7D0 */ + {0xA7D1,0xA7D1,0x33BD}, + {0xA7D2,0xA7D2,0x33BE}, + {0xA7D3,0xA7D3,0x33BF}, + {0xA7D4,0xA7D4,0x3390}, + {0xA7D5,0xA7D5,0x3391}, + {0xA7D6,0xA7D6,0x3392}, + {0xA7D7,0xA7D7,0x3393}, + {0xA7D8,0xA7D8,0x3394}, + {0xA7D9,0xA5F8,0x2126}, + {0xA7DA,0xA7DA,0x33C0}, + {0xA7DB,0xA7DB,0x33C1}, + {0xA7DC,0xA7DC,0x338A}, + {0xA7DD,0xA7DD,0x338B}, + {0xA7DE,0xA7DE,0x338C}, + {0xA7DF,0xA7DF,0x33D6}, + {0xA7E0,0xA7E0,0x33C5}, /* A7E0 */ + {0xA7E1,0xA7E1,0x33AD}, + {0xA7E2,0xA7E2,0x33AE}, + {0xA7E3,0xA7E3,0x33AF}, + {0xA7E4,0xA7E4,0x33DB}, + {0xA7E5,0xA7E5,0x33A9}, + {0xA7E6,0xA7E6,0x33AA}, + {0xA7E7,0xA7E7,0x33AB}, + {0xA7E8,0xA7E8,0x33AC}, + {0xA7E9,0xA7E9,0x33DD}, + {0xA7EA,0xA7EA,0x33D0}, + {0xA7EB,0xA7EB,0x33D3}, + {0xA7EC,0xA7EC,0x33C3}, + {0xA7ED,0xA7ED,0x33C9}, + {0xA7EE,0xA7EE,0x33DC}, + {0xA7EF,0xA7EF,0x33C6}, + {0xA7F0,0xA7F0,0x003F}, /* A7F0 */ + {0xA7F1,0xA7F1,0x003F}, + {0xA7F2,0xA7F2,0x003F}, + {0xA7F3,0xA7F3,0x003F}, + {0xA7F4,0xA7F4,0x003F}, + {0xA7F5,0xA7F5,0x003F}, + {0xA7F6,0xA7F6,0x003F}, + {0xA7F7,0xA7F7,0x003F}, + {0xA7F8,0xA7F8,0x003F}, + {0xA7F9,0xA7F9,0x003F}, + {0xA7FA,0xA7FA,0x003F}, + {0xA7FB,0xA7FB,0x003F}, + {0xA7FC,0xA7FC,0x003F}, + {0xA7FD,0xA7FD,0x003F}, + {0xA7FE,0xA7FE,0x003F}, + {0xA7FF,0xA7FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA8[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA840,0xA840,0x003F}, /* A840 */ + {0xA841,0xA841,0xCB6D}, + {0xA842,0xA842,0xCB6E}, + {0xA843,0xA843,0xCB6F}, + {0xA844,0xA844,0xCB70}, + {0xA845,0xA845,0xCB71}, + {0xA846,0xA846,0xCB72}, + {0xA847,0xA847,0xCB73}, + {0xA848,0xA848,0xCB74}, + {0xA849,0xA849,0xCB75}, + {0xA84A,0xA84A,0xCB76}, + {0xA84B,0xA84B,0xCB77}, + {0xA84C,0xA84C,0xCB7A}, + {0xA84D,0xA84D,0xCB7B}, + {0xA84E,0xA84E,0xCB7C}, + {0xA84F,0xA84F,0xCB7D}, + {0xA850,0xA850,0xCB7E}, /* A850 */ + {0xA851,0xA851,0xCB7F}, + {0xA852,0xA852,0xCB80}, + {0xA853,0xA853,0xCB81}, + {0xA854,0xA854,0xCB82}, + {0xA855,0xA855,0xCB83}, + {0xA856,0xA856,0xCB84}, + {0xA857,0xA857,0xCB85}, + {0xA858,0xA858,0xCB86}, + {0xA859,0xA859,0xCB87}, + {0xA85A,0xA85A,0xCB88}, + {0xA85B,0xA85B,0x003F}, + {0xA85C,0xA85C,0x003F}, + {0xA85D,0xA85D,0x003F}, + {0xA85E,0xA85E,0x003F}, + {0xA85F,0xA85F,0x003F}, + {0xA860,0xA860,0x003F}, /* A860 */ + {0xA861,0xA861,0xCB89}, + {0xA862,0xA862,0xCB8A}, + {0xA863,0xA863,0xCB8B}, + {0xA864,0xA864,0xCB8C}, + {0xA865,0xA865,0xCB8D}, + {0xA866,0xA866,0xCB8E}, + {0xA867,0xA867,0xCB8F}, + {0xA868,0xA868,0xCB90}, + {0xA869,0xA869,0xCB91}, + {0xA86A,0xA86A,0xCB92}, + {0xA86B,0xA86B,0xCB93}, + {0xA86C,0xA86C,0xCB94}, + {0xA86D,0xA86D,0xCB95}, + {0xA86E,0xA86E,0xCB96}, + {0xA86F,0xA86F,0xCB97}, + {0xA870,0xA870,0xCB98}, /* A870 */ + {0xA871,0xA871,0xCB99}, + {0xA872,0xA872,0xCB9A}, + {0xA873,0xA873,0xCB9B}, + {0xA874,0xA874,0xCB9D}, + {0xA875,0xA875,0xCB9E}, + {0xA876,0xA876,0xCB9F}, + {0xA877,0xA877,0xCBA0}, + {0xA878,0xA878,0xCBA1}, + {0xA879,0xA879,0xCBA2}, + {0xA87A,0xA87A,0xCBA3}, + {0xA87B,0xA87B,0x003F}, + {0xA87C,0xA87C,0x003F}, + {0xA87D,0xA87D,0x003F}, + {0xA87E,0xA87E,0x003F}, + {0xA87F,0xA87F,0x003F}, + {0xA880,0xA880,0x003F}, /* A880 */ + {0xA881,0xA881,0xCBA4}, + {0xA882,0xA882,0xCBA5}, + {0xA883,0xA883,0xCBA6}, + {0xA884,0xA884,0xCBA7}, + {0xA885,0xA885,0xCBA8}, + {0xA886,0xA886,0xCBA9}, + {0xA887,0xA887,0xCBAA}, + {0xA888,0xA888,0xCBAB}, + {0xA889,0xA889,0xCBAC}, + {0xA88A,0xA88A,0xCBAD}, + {0xA88B,0xA88B,0xCBAE}, + {0xA88C,0xA88C,0xCBAF}, + {0xA88D,0xA88D,0xCBB0}, + {0xA88E,0xA88E,0xCBB1}, + {0xA88F,0xA88F,0xCBB2}, + {0xA890,0xA890,0xCBB3}, /* A890 */ + {0xA891,0xA891,0xCBB4}, + {0xA892,0xA892,0xCBB5}, + {0xA893,0xA893,0xCBB6}, + {0xA894,0xA894,0xCBB7}, + {0xA895,0xA895,0xCBB9}, + {0xA896,0xA896,0xCBBA}, + {0xA897,0xA897,0xCBBB}, + {0xA898,0xA898,0xCBBC}, + {0xA899,0xA899,0xCBBD}, + {0xA89A,0xA89A,0xCBBE}, + {0xA89B,0xA89B,0xCBBF}, + {0xA89C,0xA89C,0xCBC0}, + {0xA89D,0xA89D,0xCBC1}, + {0xA89E,0xA89E,0xCBC2}, + {0xA89F,0xA89F,0xCBC3}, + {0xA8A0,0xA8A0,0xCBC4}, /* A8A0 */ + {0xA8A1,0xA9A1,0x00C6}, + {0xA8A2,0xA9A3,0x00D0}, + {0xA8A3,0xA8A3,0x00AA}, + {0xA8A4,0xA9A4,0x0126}, + {0xA8A5,0xA8A5,0x003F}, + {0xA8A6,0xA9A6,0x0132}, + {0xA8A7,0xA8A7,0x003F}, + {0xA8A8,0xA9A8,0x013F}, + {0xA8A9,0xA9A9,0x0141}, + {0xA8AA,0xA9AA,0x00D8}, + {0xA8AB,0xA9AB,0x0152}, + {0xA8AC,0xA8AC,0x00BA}, + {0xA8AD,0xA9AD,0x00DE}, + {0xA8AE,0xA9AE,0x0166}, + {0xA8AF,0xA9AF,0x014A}, + {0xA8B0,0xA8B0,0x003F}, /* A8B0 */ + {0xA8B1,0xA8B1,0x3260}, + {0xA8B2,0xA8B2,0x3261}, + {0xA8B3,0xA8B3,0x3262}, + {0xA8B4,0xA8B4,0x3263}, + {0xA8B5,0xA8B5,0x3264}, + {0xA8B6,0xA8B6,0x3265}, + {0xA8B7,0xA8B7,0x3266}, + {0xA8B8,0xA8B8,0x3267}, + {0xA8B9,0xA8B9,0x3268}, + {0xA8BA,0xA8BA,0x3269}, + {0xA8BB,0xA8BB,0x326A}, + {0xA8BC,0xA8BC,0x326B}, + {0xA8BD,0xA8BD,0x326C}, + {0xA8BE,0xA8BE,0x326D}, + {0xA8BF,0xA8BF,0x326E}, + {0xA8C0,0xA8C0,0x326F}, /* A8C0 */ + {0xA8C1,0xA8C1,0x3270}, + {0xA8C2,0xA8C2,0x3271}, + {0xA8C3,0xA8C3,0x3272}, + {0xA8C4,0xA8C4,0x3273}, + {0xA8C5,0xA8C5,0x3274}, + {0xA8C6,0xA8C6,0x3275}, + {0xA8C7,0xA8C7,0x3276}, + {0xA8C8,0xA8C8,0x3277}, + {0xA8C9,0xA8C9,0x3278}, + {0xA8CA,0xA8CA,0x3279}, + {0xA8CB,0xA8CB,0x327A}, + {0xA8CC,0xA8CC,0x327B}, + {0xA8CD,0xA8CD,0x24D0}, + {0xA8CE,0xA8CE,0x24D1}, + {0xA8CF,0xA8CF,0x24D2}, + {0xA8D0,0xA8D0,0x24D3}, /* A8D0 */ + {0xA8D1,0xA8D1,0x24D4}, + {0xA8D2,0xA8D2,0x24D5}, + {0xA8D3,0xA8D3,0x24D6}, + {0xA8D4,0xA8D4,0x24D7}, + {0xA8D5,0xA8D5,0x24D8}, + {0xA8D6,0xA8D6,0x24D9}, + {0xA8D7,0xA8D7,0x24DA}, + {0xA8D8,0xA8D8,0x24DB}, + {0xA8D9,0xA8D9,0x24DC}, + {0xA8DA,0xA8DA,0x24DD}, + {0xA8DB,0xA8DB,0x24DE}, + {0xA8DC,0xA8DC,0x24DF}, + {0xA8DD,0xA8DD,0x24E0}, + {0xA8DE,0xA8DE,0x24E1}, + {0xA8DF,0xA8DF,0x24E2}, + {0xA8E0,0xA8E0,0x24E3}, /* A8E0 */ + {0xA8E1,0xA8E1,0x24E4}, + {0xA8E2,0xA8E2,0x24E5}, + {0xA8E3,0xA8E3,0x24E6}, + {0xA8E4,0xA8E4,0x24E7}, + {0xA8E5,0xA8E5,0x24E8}, + {0xA8E6,0xA8E6,0x24E9}, + {0xA8E7,0xA8E7,0x2460}, + {0xA8E8,0xA8E8,0x2461}, + {0xA8E9,0xA8E9,0x2462}, + {0xA8EA,0xA8EA,0x2463}, + {0xA8EB,0xA8EB,0x2464}, + {0xA8EC,0xA8EC,0x2465}, + {0xA8ED,0xA8ED,0x2466}, + {0xA8EE,0xA8EE,0x2467}, + {0xA8EF,0xA8EF,0x2468}, + {0xA8F0,0xA8F0,0x2469}, /* A8F0 */ + {0xA8F1,0xA8F1,0x246A}, + {0xA8F2,0xA8F2,0x246B}, + {0xA8F3,0xA8F3,0x246C}, + {0xA8F4,0xA8F4,0x246D}, + {0xA8F5,0xA8F5,0x246E}, + {0xA8F6,0xA8F6,0x00BD}, + {0xA8F7,0xA8F7,0x2153}, + {0xA8F8,0xA8F8,0x2154}, + {0xA8F9,0xA8F9,0x00BC}, + {0xA8FA,0xA8FA,0x00BE}, + {0xA8FB,0xA8FB,0x215B}, + {0xA8FC,0xA8FC,0x215C}, + {0xA8FD,0xA8FD,0x215D}, + {0xA8FE,0xA8FE,0x215E}, + {0xA8FF,0xA8FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA9[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA940,0xA940,0x003F}, /* A940 */ + {0xA941,0xA941,0xCBC5}, + {0xA942,0xA942,0xCBC6}, + {0xA943,0xA943,0xCBC7}, + {0xA944,0xA944,0xCBC8}, + {0xA945,0xA945,0xCBC9}, + {0xA946,0xA946,0xCBCA}, + {0xA947,0xA947,0xCBCB}, + {0xA948,0xA948,0xCBCC}, + {0xA949,0xA949,0xCBCD}, + {0xA94A,0xA94A,0xCBCE}, + {0xA94B,0xA94B,0xCBCF}, + {0xA94C,0xA94C,0xCBD0}, + {0xA94D,0xA94D,0xCBD1}, + {0xA94E,0xA94E,0xCBD2}, + {0xA94F,0xA94F,0xCBD3}, + {0xA950,0xA950,0xCBD5}, /* A950 */ + {0xA951,0xA951,0xCBD6}, + {0xA952,0xA952,0xCBD7}, + {0xA953,0xA953,0xCBD8}, + {0xA954,0xA954,0xCBD9}, + {0xA955,0xA955,0xCBDA}, + {0xA956,0xA956,0xCBDB}, + {0xA957,0xA957,0xCBDC}, + {0xA958,0xA958,0xCBDD}, + {0xA959,0xA959,0xCBDE}, + {0xA95A,0xA95A,0xCBDF}, + {0xA95B,0xA95B,0x003F}, + {0xA95C,0xA95C,0x003F}, + {0xA95D,0xA95D,0x003F}, + {0xA95E,0xA95E,0x003F}, + {0xA95F,0xA95F,0x003F}, + {0xA960,0xA960,0x003F}, /* A960 */ + {0xA961,0xA961,0xCBE0}, + {0xA962,0xA962,0xCBE1}, + {0xA963,0xA963,0xCBE2}, + {0xA964,0xA964,0xCBE3}, + {0xA965,0xA965,0xCBE5}, + {0xA966,0xA966,0xCBE6}, + {0xA967,0xA967,0xCBE8}, + {0xA968,0xA968,0xCBEA}, + {0xA969,0xA969,0xCBEB}, + {0xA96A,0xA96A,0xCBEC}, + {0xA96B,0xA96B,0xCBED}, + {0xA96C,0xA96C,0xCBEE}, + {0xA96D,0xA96D,0xCBEF}, + {0xA96E,0xA96E,0xCBF0}, + {0xA96F,0xA96F,0xCBF1}, + {0xA970,0xA970,0xCBF2}, /* A970 */ + {0xA971,0xA971,0xCBF3}, + {0xA972,0xA972,0xCBF4}, + {0xA973,0xA973,0xCBF5}, + {0xA974,0xA974,0xCBF6}, + {0xA975,0xA975,0xCBF7}, + {0xA976,0xA976,0xCBF8}, + {0xA977,0xA977,0xCBF9}, + {0xA978,0xA978,0xCBFA}, + {0xA979,0xA979,0xCBFB}, + {0xA97A,0xA97A,0xCBFC}, + {0xA97B,0xA97B,0x003F}, + {0xA97C,0xA97C,0x003F}, + {0xA97D,0xA97D,0x003F}, + {0xA97E,0xA97E,0x003F}, + {0xA97F,0xA97F,0x003F}, + {0xA980,0xA980,0x003F}, /* A980 */ + {0xA981,0xA981,0xCBFD}, + {0xA982,0xA982,0xCBFE}, + {0xA983,0xA983,0xCBFF}, + {0xA984,0xA984,0xCC00}, + {0xA985,0xA985,0xCC01}, + {0xA986,0xA986,0xCC02}, + {0xA987,0xA987,0xCC03}, + {0xA988,0xA988,0xCC04}, + {0xA989,0xA989,0xCC05}, + {0xA98A,0xA98A,0xCC06}, + {0xA98B,0xA98B,0xCC07}, + {0xA98C,0xA98C,0xCC08}, + {0xA98D,0xA98D,0xCC09}, + {0xA98E,0xA98E,0xCC0A}, + {0xA98F,0xA98F,0xCC0B}, + {0xA990,0xA990,0xCC0E}, /* A990 */ + {0xA991,0xA991,0xCC0F}, + {0xA992,0xA992,0xCC11}, + {0xA993,0xA993,0xCC12}, + {0xA994,0xA994,0xCC13}, + {0xA995,0xA995,0xCC15}, + {0xA996,0xA996,0xCC16}, + {0xA997,0xA997,0xCC17}, + {0xA998,0xA998,0xCC18}, + {0xA999,0xA999,0xCC19}, + {0xA99A,0xA99A,0xCC1A}, + {0xA99B,0xA99B,0xCC1B}, + {0xA99C,0xA99C,0xCC1E}, + {0xA99D,0xA99D,0xCC1F}, + {0xA99E,0xA99E,0xCC20}, + {0xA99F,0xA99F,0xCC23}, + {0xA9A0,0xA9A0,0xCC24}, /* A9A0 */ + {0xA8A1,0xA9A1,0x00E6}, + {0xA9A2,0xA9A2,0x0111}, + {0xA8A2,0xA9A3,0x00F0}, + {0xA8A4,0xA9A4,0x0127}, + { 0x49,0xA9A5,0x0131}, /* Turkish i */ + {0xA8A6,0xA9A6,0x0133}, + {0xA9A7,0xA9A7,0x0138}, + {0xA8A8,0xA9A8,0x0140}, + {0xA8A9,0xA9A9,0x0142}, + {0xA8AA,0xA9AA,0x00F8}, + {0xA8AB,0xA9AB,0x0153}, + {0xA9AC,0xA9AC,0x00DF}, + {0xA8AD,0xA9AD,0x00FE}, + {0xA8AE,0xA9AE,0x0167}, + {0xA8AF,0xA9AF,0x014B}, + {0xA9B0,0xA9B0,0x0149}, /* A9B0 */ + {0xA9B1,0xA9B1,0x3200}, + {0xA9B2,0xA9B2,0x3201}, + {0xA9B3,0xA9B3,0x3202}, + {0xA9B4,0xA9B4,0x3203}, + {0xA9B5,0xA9B5,0x3204}, + {0xA9B6,0xA9B6,0x3205}, + {0xA9B7,0xA9B7,0x3206}, + {0xA9B8,0xA9B8,0x3207}, + {0xA9B9,0xA9B9,0x3208}, + {0xA9BA,0xA9BA,0x3209}, + {0xA9BB,0xA9BB,0x320A}, + {0xA9BC,0xA9BC,0x320B}, + {0xA9BD,0xA9BD,0x320C}, + {0xA9BE,0xA9BE,0x320D}, + {0xA9BF,0xA9BF,0x320E}, + {0xA9C0,0xA9C0,0x320F}, /* A9C0 */ + {0xA9C1,0xA9C1,0x3210}, + {0xA9C2,0xA9C2,0x3211}, + {0xA9C3,0xA9C3,0x3212}, + {0xA9C4,0xA9C4,0x3213}, + {0xA9C5,0xA9C5,0x3214}, + {0xA9C6,0xA9C6,0x3215}, + {0xA9C7,0xA9C7,0x3216}, + {0xA9C8,0xA9C8,0x3217}, + {0xA9C9,0xA9C9,0x3218}, + {0xA9CA,0xA9CA,0x3219}, + {0xA9CB,0xA9CB,0x321A}, + {0xA9CC,0xA9CC,0x321B}, + {0xA9CD,0xA9CD,0x249C}, + {0xA9CE,0xA9CE,0x249D}, + {0xA9CF,0xA9CF,0x249E}, + {0xA9D0,0xA9D0,0x249F}, /* A9D0 */ + {0xA9D1,0xA9D1,0x24A0}, + {0xA9D2,0xA9D2,0x24A1}, + {0xA9D3,0xA9D3,0x24A2}, + {0xA9D4,0xA9D4,0x24A3}, + {0xA9D5,0xA9D5,0x24A4}, + {0xA9D6,0xA9D6,0x24A5}, + {0xA9D7,0xA9D7,0x24A6}, + {0xA9D8,0xA9D8,0x24A7}, + {0xA9D9,0xA9D9,0x24A8}, + {0xA9DA,0xA9DA,0x24A9}, + {0xA9DB,0xA9DB,0x24AA}, + {0xA9DC,0xA9DC,0x24AB}, + {0xA9DD,0xA9DD,0x24AC}, + {0xA9DE,0xA9DE,0x24AD}, + {0xA9DF,0xA9DF,0x24AE}, + {0xA9E0,0xA9E0,0x24AF}, /* A9E0 */ + {0xA9E1,0xA9E1,0x24B0}, + {0xA9E2,0xA9E2,0x24B1}, + {0xA9E3,0xA9E3,0x24B2}, + {0xA9E4,0xA9E4,0x24B3}, + {0xA9E5,0xA9E5,0x24B4}, + {0xA9E6,0xA9E6,0x24B5}, + {0xA9E7,0xA9E7,0x2474}, + {0xA9E8,0xA9E8,0x2475}, + {0xA9E9,0xA9E9,0x2476}, + {0xA9EA,0xA9EA,0x2477}, + {0xA9EB,0xA9EB,0x2478}, + {0xA9EC,0xA9EC,0x2479}, + {0xA9ED,0xA9ED,0x247A}, + {0xA9EE,0xA9EE,0x247B}, + {0xA9EF,0xA9EF,0x247C}, + {0xA9F0,0xA9F0,0x247D}, /* A9F0 */ + {0xA9F1,0xA9F1,0x247E}, + {0xA9F2,0xA9F2,0x247F}, + {0xA9F3,0xA9F3,0x2480}, + {0xA9F4,0xA9F4,0x2481}, + {0xA9F5,0xA9F5,0x2482}, + {0xA9F6,0xA9F6,0x00B9}, + {0xA9F7,0xA9F7,0x00B2}, + {0xA9F8,0xA9F8,0x00B3}, + {0xA9F9,0xA9F9,0x2074}, + {0xA9FA,0xA9FA,0x207F}, + {0xA9FB,0xA9FB,0x2081}, + {0xA9FC,0xA9FC,0x2082}, + {0xA9FD,0xA9FD,0x2083}, + {0xA9FE,0xA9FE,0x2084}, + {0xA9FF,0xA9FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cAC[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xAC40,0xAC40,0x003F}, /* AC40 */ + {0xAC41,0xAC41,0xCCFE}, + {0xAC42,0xAC42,0xCCFF}, + {0xAC43,0xAC43,0xCD00}, + {0xAC44,0xAC44,0xCD02}, + {0xAC45,0xAC45,0xCD03}, + {0xAC46,0xAC46,0xCD04}, + {0xAC47,0xAC47,0xCD05}, + {0xAC48,0xAC48,0xCD06}, + {0xAC49,0xAC49,0xCD07}, + {0xAC4A,0xAC4A,0xCD0A}, + {0xAC4B,0xAC4B,0xCD0B}, + {0xAC4C,0xAC4C,0xCD0D}, + {0xAC4D,0xAC4D,0xCD0E}, + {0xAC4E,0xAC4E,0xCD0F}, + {0xAC4F,0xAC4F,0xCD11}, + {0xAC50,0xAC50,0xCD12}, /* AC50 */ + {0xAC51,0xAC51,0xCD13}, + {0xAC52,0xAC52,0xCD14}, + {0xAC53,0xAC53,0xCD15}, + {0xAC54,0xAC54,0xCD16}, + {0xAC55,0xAC55,0xCD17}, + {0xAC56,0xAC56,0xCD1A}, + {0xAC57,0xAC57,0xCD1C}, + {0xAC58,0xAC58,0xCD1E}, + {0xAC59,0xAC59,0xCD1F}, + {0xAC5A,0xAC5A,0xCD20}, + {0xAC5B,0xAC5B,0x003F}, + {0xAC5C,0xAC5C,0x003F}, + {0xAC5D,0xAC5D,0x003F}, + {0xAC5E,0xAC5E,0x003F}, + {0xAC5F,0xAC5F,0x003F}, + {0xAC60,0xAC60,0x003F}, /* AC60 */ + {0xAC61,0xAC61,0xCD21}, + {0xAC62,0xAC62,0xCD22}, + {0xAC63,0xAC63,0xCD23}, + {0xAC64,0xAC64,0xCD25}, + {0xAC65,0xAC65,0xCD26}, + {0xAC66,0xAC66,0xCD27}, + {0xAC67,0xAC67,0xCD29}, + {0xAC68,0xAC68,0xCD2A}, + {0xAC69,0xAC69,0xCD2B}, + {0xAC6A,0xAC6A,0xCD2D}, + {0xAC6B,0xAC6B,0xCD2E}, + {0xAC6C,0xAC6C,0xCD2F}, + {0xAC6D,0xAC6D,0xCD30}, + {0xAC6E,0xAC6E,0xCD31}, + {0xAC6F,0xAC6F,0xCD32}, + {0xAC70,0xAC70,0xCD33}, /* AC70 */ + {0xAC71,0xAC71,0xCD34}, + {0xAC72,0xAC72,0xCD35}, + {0xAC73,0xAC73,0xCD36}, + {0xAC74,0xAC74,0xCD37}, + {0xAC75,0xAC75,0xCD38}, + {0xAC76,0xAC76,0xCD3A}, + {0xAC77,0xAC77,0xCD3B}, + {0xAC78,0xAC78,0xCD3C}, + {0xAC79,0xAC79,0xCD3D}, + {0xAC7A,0xAC7A,0xCD3E}, + {0xAC7B,0xAC7B,0x003F}, + {0xAC7C,0xAC7C,0x003F}, + {0xAC7D,0xAC7D,0x003F}, + {0xAC7E,0xAC7E,0x003F}, + {0xAC7F,0xAC7F,0x003F}, + {0xAC80,0xAC80,0x003F}, /* AC80 */ + {0xAC81,0xAC81,0xCD3F}, + {0xAC82,0xAC82,0xCD40}, + {0xAC83,0xAC83,0xCD41}, + {0xAC84,0xAC84,0xCD42}, + {0xAC85,0xAC85,0xCD43}, + {0xAC86,0xAC86,0xCD44}, + {0xAC87,0xAC87,0xCD45}, + {0xAC88,0xAC88,0xCD46}, + {0xAC89,0xAC89,0xCD47}, + {0xAC8A,0xAC8A,0xCD48}, + {0xAC8B,0xAC8B,0xCD49}, + {0xAC8C,0xAC8C,0xCD4A}, + {0xAC8D,0xAC8D,0xCD4B}, + {0xAC8E,0xAC8E,0xCD4C}, + {0xAC8F,0xAC8F,0xCD4D}, + {0xAC90,0xAC90,0xCD4E}, /* AC90 */ + {0xAC91,0xAC91,0xCD4F}, + {0xAC92,0xAC92,0xCD50}, + {0xAC93,0xAC93,0xCD51}, + {0xAC94,0xAC94,0xCD52}, + {0xAC95,0xAC95,0xCD53}, + {0xAC96,0xAC96,0xCD54}, + {0xAC97,0xAC97,0xCD55}, + {0xAC98,0xAC98,0xCD56}, + {0xAC99,0xAC99,0xCD57}, + {0xAC9A,0xAC9A,0xCD58}, + {0xAC9B,0xAC9B,0xCD59}, + {0xAC9C,0xAC9C,0xCD5A}, + {0xAC9D,0xAC9D,0xCD5B}, + {0xAC9E,0xAC9E,0xCD5D}, + {0xAC9F,0xAC9F,0xCD5E}, + {0xACA0,0xACA0,0xCD5F}, /* ACA0 */ + {0xACA1,0xACD1,0x0410}, + {0xACA2,0xACD2,0x0411}, + {0xACA3,0xACD3,0x0412}, + {0xACA4,0xACD4,0x0413}, + {0xACA5,0xACD5,0x0414}, + {0xACA6,0xACD6,0x0415}, + {0xACA7,0xACD7,0x0401}, + {0xACA8,0xACD8,0x0416}, + {0xACA9,0xACD9,0x0417}, + {0xACAA,0xACDA,0x0418}, + {0xACAB,0xACDB,0x0419}, + {0xACAC,0xACDC,0x041A}, + {0xACAD,0xACDD,0x041B}, + {0xACAE,0xACDE,0x041C}, + {0xACAF,0xACDF,0x041D}, + {0xACB0,0xACE0,0x041E}, /* ACB0 */ + {0xACB1,0xACE1,0x041F}, + {0xACB2,0xACE2,0x0420}, + {0xACB3,0xACE3,0x0421}, + {0xACB4,0xACE4,0x0422}, + {0xACB5,0xACE5,0x0423}, + {0xACB6,0xACE6,0x0424}, + {0xACB7,0xACE7,0x0425}, + {0xACB8,0xACE8,0x0426}, + {0xACB9,0xACE9,0x0427}, + {0xACBA,0xACEA,0x0428}, + {0xACBB,0xACEB,0x0429}, + {0xACBC,0xACEC,0x042A}, + {0xACBD,0xACED,0x042B}, + {0xACBE,0xACEE,0x042C}, + {0xACBF,0xACEF,0x042D}, + {0xACC0,0xACF0,0x042E}, /* ACC0 */ + {0xACC1,0xACF1,0x042F}, + {0xACC2,0xACC2,0x003F}, + {0xACC3,0xACC3,0x003F}, + {0xACC4,0xACC4,0x003F}, + {0xACC5,0xACC5,0x003F}, + {0xACC6,0xACC6,0x003F}, + {0xACC7,0xACC7,0x003F}, + {0xACC8,0xACC8,0x003F}, + {0xACC9,0xACC9,0x003F}, + {0xACCA,0xACCA,0x003F}, + {0xACCB,0xACCB,0x003F}, + {0xACCC,0xACCC,0x003F}, + {0xACCD,0xACCD,0x003F}, + {0xACCE,0xACCE,0x003F}, + {0xACCF,0xACCF,0x003F}, + {0xACD0,0xACD0,0x003F}, /* ACD0 */ + {0xACA1,0xACD1,0x0430}, + {0xACA2,0xACD2,0x0431}, + {0xACA3,0xACD3,0x0432}, + {0xACA4,0xACD4,0x0433}, + {0xACA5,0xACD5,0x0434}, + {0xACA6,0xACD6,0x0435}, + {0xACA7,0xACD7,0x0451}, + {0xACA8,0xACD8,0x0436}, + {0xACA9,0xACD9,0x0437}, + {0xACAA,0xACDA,0x0438}, + {0xACAB,0xACDB,0x0439}, + {0xACAC,0xACDC,0x043A}, + {0xACAD,0xACDD,0x043B}, + {0xACAE,0xACDE,0x043C}, + {0xACAF,0xACDF,0x043D}, + {0xACB0,0xACE0,0x043E}, /* ACE0 */ + {0xACB1,0xACE1,0x043F}, + {0xACB2,0xACE2,0x0440}, + {0xACB3,0xACE3,0x0441}, + {0xACB4,0xACE4,0x0442}, + {0xACB5,0xACE5,0x0443}, + {0xACB6,0xACE6,0x0444}, + {0xACB7,0xACE7,0x0445}, + {0xACB8,0xACE8,0x0446}, + {0xACB9,0xACE9,0x0447}, + {0xACBA,0xACEA,0x0448}, + {0xACBB,0xACEB,0x0449}, + {0xACBC,0xACEC,0x044A}, + {0xACBD,0xACED,0x044B}, + {0xACBE,0xACEE,0x044C}, + {0xACBF,0xACEF,0x044D}, + {0xACC0,0xACF0,0x044E}, /* ACF0 */ + {0xACC1,0xACF1,0x044F}, + {0xACF2,0xACF2,0x003F}, + {0xACF3,0xACF3,0x003F}, + {0xACF4,0xACF4,0x003F}, + {0xACF5,0xACF5,0x003F}, + {0xACF6,0xACF6,0x003F}, + {0xACF7,0xACF7,0x003F}, + {0xACF8,0xACF8,0x003F}, + {0xACF9,0xACF9,0x003F}, + {0xACFA,0xACFA,0x003F}, + {0xACFB,0xACFB,0x003F}, + {0xACFC,0xACFC,0x003F}, + {0xACFD,0xACFD,0x003F}, + {0xACFE,0xACFE,0x003F}, + {0xACFF,0xACFF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_euckr[256]= +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, cA3, NULL, cA5, NULL, cA7, /* A */ + cA8, cA9, NULL, NULL, cAC, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + + +static const MY_UNICASE_INFO my_caseinfo_euckr= +{ + 0xFFFF, + my_caseinfo_pages_euckr +}; + + +/* page 0 0x8141-0xC8FE */ +static const uint16 tab_ksc5601_uni0[]={ +0xAC02,0xAC03,0xAC05,0xAC06,0xAC0B,0xAC0C,0xAC0D,0xAC0E, +0xAC0F,0xAC18,0xAC1E,0xAC1F,0xAC21,0xAC22,0xAC23,0xAC25, +0xAC26,0xAC27,0xAC28,0xAC29,0xAC2A,0xAC2B,0xAC2E,0xAC32, +0xAC33,0xAC34, 0, 0, 0, 0, 0, 0, +0xAC35,0xAC36,0xAC37,0xAC3A,0xAC3B,0xAC3D,0xAC3E,0xAC3F, +0xAC41,0xAC42,0xAC43,0xAC44,0xAC45,0xAC46,0xAC47,0xAC48, +0xAC49,0xAC4A,0xAC4C,0xAC4E,0xAC4F,0xAC50,0xAC51,0xAC52, +0xAC53,0xAC55, 0, 0, 0, 0, 0, 0, +0xAC56,0xAC57,0xAC59,0xAC5A,0xAC5B,0xAC5D,0xAC5E,0xAC5F, +0xAC60,0xAC61,0xAC62,0xAC63,0xAC64,0xAC65,0xAC66,0xAC67, +0xAC68,0xAC69,0xAC6A,0xAC6B,0xAC6C,0xAC6D,0xAC6E,0xAC6F, +0xAC72,0xAC73,0xAC75,0xAC76,0xAC79,0xAC7B,0xAC7C,0xAC7D, +0xAC7E,0xAC7F,0xAC82,0xAC87,0xAC88,0xAC8D,0xAC8E,0xAC8F, +0xAC91,0xAC92,0xAC93,0xAC95,0xAC96,0xAC97,0xAC98,0xAC99, +0xAC9A,0xAC9B,0xAC9E,0xACA2,0xACA3,0xACA4,0xACA5,0xACA6, +0xACA7,0xACAB,0xACAD,0xACAE,0xACB1,0xACB2,0xACB3,0xACB4, +0xACB5,0xACB6,0xACB7,0xACBA,0xACBE,0xACBF,0xACC0,0xACC2, +0xACC3,0xACC5,0xACC6,0xACC7,0xACC9,0xACCA,0xACCB,0xACCD, +0xACCE,0xACCF,0xACD0,0xACD1,0xACD2,0xACD3,0xACD4,0xACD6, +0xACD8,0xACD9,0xACDA,0xACDB,0xACDC,0xACDD,0xACDE,0xACDF, +0xACE2,0xACE3,0xACE5,0xACE6,0xACE9,0xACEB,0xACED,0xACEE, +0xACF2,0xACF4,0xACF7,0xACF8,0xACF9,0xACFA,0xACFB,0xACFE, +0xACFF,0xAD01,0xAD02,0xAD03,0xAD05,0xAD07,0xAD08,0xAD09, +0xAD0A,0xAD0B,0xAD0E,0xAD10,0xAD12,0xAD13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xAD14,0xAD15,0xAD16,0xAD17,0xAD19,0xAD1A,0xAD1B,0xAD1D, +0xAD1E,0xAD1F,0xAD21,0xAD22,0xAD23,0xAD24,0xAD25,0xAD26, +0xAD27,0xAD28,0xAD2A,0xAD2B,0xAD2E,0xAD2F,0xAD30,0xAD31, +0xAD32,0xAD33, 0, 0, 0, 0, 0, 0, +0xAD36,0xAD37,0xAD39,0xAD3A,0xAD3B,0xAD3D,0xAD3E,0xAD3F, +0xAD40,0xAD41,0xAD42,0xAD43,0xAD46,0xAD48,0xAD4A,0xAD4B, +0xAD4C,0xAD4D,0xAD4E,0xAD4F,0xAD51,0xAD52,0xAD53,0xAD55, +0xAD56,0xAD57, 0, 0, 0, 0, 0, 0, +0xAD59,0xAD5A,0xAD5B,0xAD5C,0xAD5D,0xAD5E,0xAD5F,0xAD60, +0xAD62,0xAD64,0xAD65,0xAD66,0xAD67,0xAD68,0xAD69,0xAD6A, +0xAD6B,0xAD6E,0xAD6F,0xAD71,0xAD72,0xAD77,0xAD78,0xAD79, +0xAD7A,0xAD7E,0xAD80,0xAD83,0xAD84,0xAD85,0xAD86,0xAD87, +0xAD8A,0xAD8B,0xAD8D,0xAD8E,0xAD8F,0xAD91,0xAD92,0xAD93, +0xAD94,0xAD95,0xAD96,0xAD97,0xAD98,0xAD99,0xAD9A,0xAD9B, +0xAD9E,0xAD9F,0xADA0,0xADA1,0xADA2,0xADA3,0xADA5,0xADA6, +0xADA7,0xADA8,0xADA9,0xADAA,0xADAB,0xADAC,0xADAD,0xADAE, +0xADAF,0xADB0,0xADB1,0xADB2,0xADB3,0xADB4,0xADB5,0xADB6, +0xADB8,0xADB9,0xADBA,0xADBB,0xADBC,0xADBD,0xADBE,0xADBF, +0xADC2,0xADC3,0xADC5,0xADC6,0xADC7,0xADC9,0xADCA,0xADCB, +0xADCC,0xADCD,0xADCE,0xADCF,0xADD2,0xADD4,0xADD5,0xADD6, +0xADD7,0xADD8,0xADD9,0xADDA,0xADDB,0xADDD,0xADDE,0xADDF, +0xADE1,0xADE2,0xADE3,0xADE5,0xADE6,0xADE7,0xADE8,0xADE9, +0xADEA,0xADEB,0xADEC,0xADED,0xADEE,0xADEF,0xADF0,0xADF1, +0xADF2,0xADF3,0xADF4,0xADF5,0xADF6,0xADF7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xADFA,0xADFB,0xADFD,0xADFE,0xAE02,0xAE03,0xAE04,0xAE05, +0xAE06,0xAE07,0xAE0A,0xAE0C,0xAE0E,0xAE0F,0xAE10,0xAE11, +0xAE12,0xAE13,0xAE15,0xAE16,0xAE17,0xAE18,0xAE19,0xAE1A, +0xAE1B,0xAE1C, 0, 0, 0, 0, 0, 0, +0xAE1D,0xAE1E,0xAE1F,0xAE20,0xAE21,0xAE22,0xAE23,0xAE24, +0xAE25,0xAE26,0xAE27,0xAE28,0xAE29,0xAE2A,0xAE2B,0xAE2C, +0xAE2D,0xAE2E,0xAE2F,0xAE32,0xAE33,0xAE35,0xAE36,0xAE39, +0xAE3B,0xAE3C, 0, 0, 0, 0, 0, 0, +0xAE3D,0xAE3E,0xAE3F,0xAE42,0xAE44,0xAE47,0xAE48,0xAE49, +0xAE4B,0xAE4F,0xAE51,0xAE52,0xAE53,0xAE55,0xAE57,0xAE58, +0xAE59,0xAE5A,0xAE5B,0xAE5E,0xAE62,0xAE63,0xAE64,0xAE66, +0xAE67,0xAE6A,0xAE6B,0xAE6D,0xAE6E,0xAE6F,0xAE71,0xAE72, +0xAE73,0xAE74,0xAE75,0xAE76,0xAE77,0xAE7A,0xAE7E,0xAE7F, +0xAE80,0xAE81,0xAE82,0xAE83,0xAE86,0xAE87,0xAE88,0xAE89, +0xAE8A,0xAE8B,0xAE8D,0xAE8E,0xAE8F,0xAE90,0xAE91,0xAE92, +0xAE93,0xAE94,0xAE95,0xAE96,0xAE97,0xAE98,0xAE99,0xAE9A, +0xAE9B,0xAE9C,0xAE9D,0xAE9E,0xAE9F,0xAEA0,0xAEA1,0xAEA2, +0xAEA3,0xAEA4,0xAEA5,0xAEA6,0xAEA7,0xAEA8,0xAEA9,0xAEAA, +0xAEAB,0xAEAC,0xAEAD,0xAEAE,0xAEAF,0xAEB0,0xAEB1,0xAEB2, +0xAEB3,0xAEB4,0xAEB5,0xAEB6,0xAEB7,0xAEB8,0xAEB9,0xAEBA, +0xAEBB,0xAEBF,0xAEC1,0xAEC2,0xAEC3,0xAEC5,0xAEC6,0xAEC7, +0xAEC8,0xAEC9,0xAECA,0xAECB,0xAECE,0xAED2,0xAED3,0xAED4, +0xAED5,0xAED6,0xAED7,0xAEDA,0xAEDB,0xAEDD,0xAEDE,0xAEDF, +0xAEE0,0xAEE1,0xAEE2,0xAEE3,0xAEE4,0xAEE5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xAEE6,0xAEE7,0xAEE9,0xAEEA,0xAEEC,0xAEEE,0xAEEF,0xAEF0, +0xAEF1,0xAEF2,0xAEF3,0xAEF5,0xAEF6,0xAEF7,0xAEF9,0xAEFA, +0xAEFB,0xAEFD,0xAEFE,0xAEFF,0xAF00,0xAF01,0xAF02,0xAF03, +0xAF04,0xAF05, 0, 0, 0, 0, 0, 0, +0xAF06,0xAF09,0xAF0A,0xAF0B,0xAF0C,0xAF0E,0xAF0F,0xAF11, +0xAF12,0xAF13,0xAF14,0xAF15,0xAF16,0xAF17,0xAF18,0xAF19, +0xAF1A,0xAF1B,0xAF1C,0xAF1D,0xAF1E,0xAF1F,0xAF20,0xAF21, +0xAF22,0xAF23, 0, 0, 0, 0, 0, 0, +0xAF24,0xAF25,0xAF26,0xAF27,0xAF28,0xAF29,0xAF2A,0xAF2B, +0xAF2E,0xAF2F,0xAF31,0xAF33,0xAF35,0xAF36,0xAF37,0xAF38, +0xAF39,0xAF3A,0xAF3B,0xAF3E,0xAF40,0xAF44,0xAF45,0xAF46, +0xAF47,0xAF4A,0xAF4B,0xAF4C,0xAF4D,0xAF4E,0xAF4F,0xAF51, +0xAF52,0xAF53,0xAF54,0xAF55,0xAF56,0xAF57,0xAF58,0xAF59, +0xAF5A,0xAF5B,0xAF5E,0xAF5F,0xAF60,0xAF61,0xAF62,0xAF63, +0xAF66,0xAF67,0xAF68,0xAF69,0xAF6A,0xAF6B,0xAF6C,0xAF6D, +0xAF6E,0xAF6F,0xAF70,0xAF71,0xAF72,0xAF73,0xAF74,0xAF75, +0xAF76,0xAF77,0xAF78,0xAF7A,0xAF7B,0xAF7C,0xAF7D,0xAF7E, +0xAF7F,0xAF81,0xAF82,0xAF83,0xAF85,0xAF86,0xAF87,0xAF89, +0xAF8A,0xAF8B,0xAF8C,0xAF8D,0xAF8E,0xAF8F,0xAF92,0xAF93, +0xAF94,0xAF96,0xAF97,0xAF98,0xAF99,0xAF9A,0xAF9B,0xAF9D, +0xAF9E,0xAF9F,0xAFA0,0xAFA1,0xAFA2,0xAFA3,0xAFA4,0xAFA5, +0xAFA6,0xAFA7,0xAFA8,0xAFA9,0xAFAA,0xAFAB,0xAFAC,0xAFAD, +0xAFAE,0xAFAF,0xAFB0,0xAFB1,0xAFB2,0xAFB3,0xAFB4,0xAFB5, +0xAFB6,0xAFB7,0xAFBA,0xAFBB,0xAFBD,0xAFBE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xAFBF,0xAFC1,0xAFC2,0xAFC3,0xAFC4,0xAFC5,0xAFC6,0xAFCA, +0xAFCC,0xAFCF,0xAFD0,0xAFD1,0xAFD2,0xAFD3,0xAFD5,0xAFD6, +0xAFD7,0xAFD8,0xAFD9,0xAFDA,0xAFDB,0xAFDD,0xAFDE,0xAFDF, +0xAFE0,0xAFE1, 0, 0, 0, 0, 0, 0, +0xAFE2,0xAFE3,0xAFE4,0xAFE5,0xAFE6,0xAFE7,0xAFEA,0xAFEB, +0xAFEC,0xAFED,0xAFEE,0xAFEF,0xAFF2,0xAFF3,0xAFF5,0xAFF6, +0xAFF7,0xAFF9,0xAFFA,0xAFFB,0xAFFC,0xAFFD,0xAFFE,0xAFFF, +0xB002,0xB003, 0, 0, 0, 0, 0, 0, +0xB005,0xB006,0xB007,0xB008,0xB009,0xB00A,0xB00B,0xB00D, +0xB00E,0xB00F,0xB011,0xB012,0xB013,0xB015,0xB016,0xB017, +0xB018,0xB019,0xB01A,0xB01B,0xB01E,0xB01F,0xB020,0xB021, +0xB022,0xB023,0xB024,0xB025,0xB026,0xB027,0xB029,0xB02A, +0xB02B,0xB02C,0xB02D,0xB02E,0xB02F,0xB030,0xB031,0xB032, +0xB033,0xB034,0xB035,0xB036,0xB037,0xB038,0xB039,0xB03A, +0xB03B,0xB03C,0xB03D,0xB03E,0xB03F,0xB040,0xB041,0xB042, +0xB043,0xB046,0xB047,0xB049,0xB04B,0xB04D,0xB04F,0xB050, +0xB051,0xB052,0xB056,0xB058,0xB05A,0xB05B,0xB05C,0xB05E, +0xB05F,0xB060,0xB061,0xB062,0xB063,0xB064,0xB065,0xB066, +0xB067,0xB068,0xB069,0xB06A,0xB06B,0xB06C,0xB06D,0xB06E, +0xB06F,0xB070,0xB071,0xB072,0xB073,0xB074,0xB075,0xB076, +0xB077,0xB078,0xB079,0xB07A,0xB07B,0xB07E,0xB07F,0xB081, +0xB082,0xB083,0xB085,0xB086,0xB087,0xB088,0xB089,0xB08A, +0xB08B,0xB08E,0xB090,0xB092,0xB093,0xB094,0xB095,0xB096, +0xB097,0xB09B,0xB09D,0xB09E,0xB0A3,0xB0A4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB0A5,0xB0A6,0xB0A7,0xB0AA,0xB0B0,0xB0B2,0xB0B6,0xB0B7, +0xB0B9,0xB0BA,0xB0BB,0xB0BD,0xB0BE,0xB0BF,0xB0C0,0xB0C1, +0xB0C2,0xB0C3,0xB0C6,0xB0CA,0xB0CB,0xB0CC,0xB0CD,0xB0CE, +0xB0CF,0xB0D2, 0, 0, 0, 0, 0, 0, +0xB0D3,0xB0D5,0xB0D6,0xB0D7,0xB0D9,0xB0DA,0xB0DB,0xB0DC, +0xB0DD,0xB0DE,0xB0DF,0xB0E1,0xB0E2,0xB0E3,0xB0E4,0xB0E6, +0xB0E7,0xB0E8,0xB0E9,0xB0EA,0xB0EB,0xB0EC,0xB0ED,0xB0EE, +0xB0EF,0xB0F0, 0, 0, 0, 0, 0, 0, +0xB0F1,0xB0F2,0xB0F3,0xB0F4,0xB0F5,0xB0F6,0xB0F7,0xB0F8, +0xB0F9,0xB0FA,0xB0FB,0xB0FC,0xB0FD,0xB0FE,0xB0FF,0xB100, +0xB101,0xB102,0xB103,0xB104,0xB105,0xB106,0xB107,0xB10A, +0xB10D,0xB10E,0xB10F,0xB111,0xB114,0xB115,0xB116,0xB117, +0xB11A,0xB11E,0xB11F,0xB120,0xB121,0xB122,0xB126,0xB127, +0xB129,0xB12A,0xB12B,0xB12D,0xB12E,0xB12F,0xB130,0xB131, +0xB132,0xB133,0xB136,0xB13A,0xB13B,0xB13C,0xB13D,0xB13E, +0xB13F,0xB142,0xB143,0xB145,0xB146,0xB147,0xB149,0xB14A, +0xB14B,0xB14C,0xB14D,0xB14E,0xB14F,0xB152,0xB153,0xB156, +0xB157,0xB159,0xB15A,0xB15B,0xB15D,0xB15E,0xB15F,0xB161, +0xB162,0xB163,0xB164,0xB165,0xB166,0xB167,0xB168,0xB169, +0xB16A,0xB16B,0xB16C,0xB16D,0xB16E,0xB16F,0xB170,0xB171, +0xB172,0xB173,0xB174,0xB175,0xB176,0xB177,0xB17A,0xB17B, +0xB17D,0xB17E,0xB17F,0xB181,0xB183,0xB184,0xB185,0xB186, +0xB187,0xB18A,0xB18C,0xB18E,0xB18F,0xB190,0xB191,0xB195, +0xB196,0xB197,0xB199,0xB19A,0xB19B,0xB19D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB19E,0xB19F,0xB1A0,0xB1A1,0xB1A2,0xB1A3,0xB1A4,0xB1A5, +0xB1A6,0xB1A7,0xB1A9,0xB1AA,0xB1AB,0xB1AC,0xB1AD,0xB1AE, +0xB1AF,0xB1B0,0xB1B1,0xB1B2,0xB1B3,0xB1B4,0xB1B5,0xB1B6, +0xB1B7,0xB1B8, 0, 0, 0, 0, 0, 0, +0xB1B9,0xB1BA,0xB1BB,0xB1BC,0xB1BD,0xB1BE,0xB1BF,0xB1C0, +0xB1C1,0xB1C2,0xB1C3,0xB1C4,0xB1C5,0xB1C6,0xB1C7,0xB1C8, +0xB1C9,0xB1CA,0xB1CB,0xB1CD,0xB1CE,0xB1CF,0xB1D1,0xB1D2, +0xB1D3,0xB1D5, 0, 0, 0, 0, 0, 0, +0xB1D6,0xB1D7,0xB1D8,0xB1D9,0xB1DA,0xB1DB,0xB1DE,0xB1E0, +0xB1E1,0xB1E2,0xB1E3,0xB1E4,0xB1E5,0xB1E6,0xB1E7,0xB1EA, +0xB1EB,0xB1ED,0xB1EE,0xB1EF,0xB1F1,0xB1F2,0xB1F3,0xB1F4, +0xB1F5,0xB1F6,0xB1F7,0xB1F8,0xB1FA,0xB1FC,0xB1FE,0xB1FF, +0xB200,0xB201,0xB202,0xB203,0xB206,0xB207,0xB209,0xB20A, +0xB20D,0xB20E,0xB20F,0xB210,0xB211,0xB212,0xB213,0xB216, +0xB218,0xB21A,0xB21B,0xB21C,0xB21D,0xB21E,0xB21F,0xB221, +0xB222,0xB223,0xB224,0xB225,0xB226,0xB227,0xB228,0xB229, +0xB22A,0xB22B,0xB22C,0xB22D,0xB22E,0xB22F,0xB230,0xB231, +0xB232,0xB233,0xB235,0xB236,0xB237,0xB238,0xB239,0xB23A, +0xB23B,0xB23D,0xB23E,0xB23F,0xB240,0xB241,0xB242,0xB243, +0xB244,0xB245,0xB246,0xB247,0xB248,0xB249,0xB24A,0xB24B, +0xB24C,0xB24D,0xB24E,0xB24F,0xB250,0xB251,0xB252,0xB253, +0xB254,0xB255,0xB256,0xB257,0xB259,0xB25A,0xB25B,0xB25D, +0xB25E,0xB25F,0xB261,0xB262,0xB263,0xB264,0xB265,0xB266, +0xB267,0xB26A,0xB26B,0xB26C,0xB26D,0xB26E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB26F,0xB270,0xB271,0xB272,0xB273,0xB276,0xB277,0xB278, +0xB279,0xB27A,0xB27B,0xB27D,0xB27E,0xB27F,0xB280,0xB281, +0xB282,0xB283,0xB286,0xB287,0xB288,0xB28A,0xB28B,0xB28C, +0xB28D,0xB28E, 0, 0, 0, 0, 0, 0, +0xB28F,0xB292,0xB293,0xB295,0xB296,0xB297,0xB29B,0xB29C, +0xB29D,0xB29E,0xB29F,0xB2A2,0xB2A4,0xB2A7,0xB2A8,0xB2A9, +0xB2AB,0xB2AD,0xB2AE,0xB2AF,0xB2B1,0xB2B2,0xB2B3,0xB2B5, +0xB2B6,0xB2B7, 0, 0, 0, 0, 0, 0, +0xB2B8,0xB2B9,0xB2BA,0xB2BB,0xB2BC,0xB2BD,0xB2BE,0xB2BF, +0xB2C0,0xB2C1,0xB2C2,0xB2C3,0xB2C4,0xB2C5,0xB2C6,0xB2C7, +0xB2CA,0xB2CB,0xB2CD,0xB2CE,0xB2CF,0xB2D1,0xB2D3,0xB2D4, +0xB2D5,0xB2D6,0xB2D7,0xB2DA,0xB2DC,0xB2DE,0xB2DF,0xB2E0, +0xB2E1,0xB2E3,0xB2E7,0xB2E9,0xB2EA,0xB2F0,0xB2F1,0xB2F2, +0xB2F6,0xB2FC,0xB2FD,0xB2FE,0xB302,0xB303,0xB305,0xB306, +0xB307,0xB309,0xB30A,0xB30B,0xB30C,0xB30D,0xB30E,0xB30F, +0xB312,0xB316,0xB317,0xB318,0xB319,0xB31A,0xB31B,0xB31D, +0xB31E,0xB31F,0xB320,0xB321,0xB322,0xB323,0xB324,0xB325, +0xB326,0xB327,0xB328,0xB329,0xB32A,0xB32B,0xB32C,0xB32D, +0xB32E,0xB32F,0xB330,0xB331,0xB332,0xB333,0xB334,0xB335, +0xB336,0xB337,0xB338,0xB339,0xB33A,0xB33B,0xB33C,0xB33D, +0xB33E,0xB33F,0xB340,0xB341,0xB342,0xB343,0xB344,0xB345, +0xB346,0xB347,0xB348,0xB349,0xB34A,0xB34B,0xB34C,0xB34D, +0xB34E,0xB34F,0xB350,0xB351,0xB352,0xB353,0xB357,0xB359, +0xB35A,0xB35D,0xB360,0xB361,0xB362,0xB363, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB366,0xB368,0xB36A,0xB36C,0xB36D,0xB36F,0xB372,0xB373, +0xB375,0xB376,0xB377,0xB379,0xB37A,0xB37B,0xB37C,0xB37D, +0xB37E,0xB37F,0xB382,0xB386,0xB387,0xB388,0xB389,0xB38A, +0xB38B,0xB38D, 0, 0, 0, 0, 0, 0, +0xB38E,0xB38F,0xB391,0xB392,0xB393,0xB395,0xB396,0xB397, +0xB398,0xB399,0xB39A,0xB39B,0xB39C,0xB39D,0xB39E,0xB39F, +0xB3A2,0xB3A3,0xB3A4,0xB3A5,0xB3A6,0xB3A7,0xB3A9,0xB3AA, +0xB3AB,0xB3AD, 0, 0, 0, 0, 0, 0, +0xB3AE,0xB3AF,0xB3B0,0xB3B1,0xB3B2,0xB3B3,0xB3B4,0xB3B5, +0xB3B6,0xB3B7,0xB3B8,0xB3B9,0xB3BA,0xB3BB,0xB3BC,0xB3BD, +0xB3BE,0xB3BF,0xB3C0,0xB3C1,0xB3C2,0xB3C3,0xB3C6,0xB3C7, +0xB3C9,0xB3CA,0xB3CD,0xB3CF,0xB3D1,0xB3D2,0xB3D3,0xB3D6, +0xB3D8,0xB3DA,0xB3DC,0xB3DE,0xB3DF,0xB3E1,0xB3E2,0xB3E3, +0xB3E5,0xB3E6,0xB3E7,0xB3E9,0xB3EA,0xB3EB,0xB3EC,0xB3ED, +0xB3EE,0xB3EF,0xB3F0,0xB3F1,0xB3F2,0xB3F3,0xB3F4,0xB3F5, +0xB3F6,0xB3F7,0xB3F8,0xB3F9,0xB3FA,0xB3FB,0xB3FD,0xB3FE, +0xB3FF,0xB400,0xB401,0xB402,0xB403,0xB404,0xB405,0xB406, +0xB407,0xB408,0xB409,0xB40A,0xB40B,0xB40C,0xB40D,0xB40E, +0xB40F,0xB411,0xB412,0xB413,0xB414,0xB415,0xB416,0xB417, +0xB419,0xB41A,0xB41B,0xB41D,0xB41E,0xB41F,0xB421,0xB422, +0xB423,0xB424,0xB425,0xB426,0xB427,0xB42A,0xB42C,0xB42D, +0xB42E,0xB42F,0xB430,0xB431,0xB432,0xB433,0xB435,0xB436, +0xB437,0xB438,0xB439,0xB43A,0xB43B,0xB43C,0xB43D,0xB43E, +0xB43F,0xB440,0xB441,0xB442,0xB443,0xB444, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB445,0xB446,0xB447,0xB448,0xB449,0xB44A,0xB44B,0xB44C, +0xB44D,0xB44E,0xB44F,0xB452,0xB453,0xB455,0xB456,0xB457, +0xB459,0xB45A,0xB45B,0xB45C,0xB45D,0xB45E,0xB45F,0xB462, +0xB464,0xB466, 0, 0, 0, 0, 0, 0, +0xB467,0xB468,0xB469,0xB46A,0xB46B,0xB46D,0xB46E,0xB46F, +0xB470,0xB471,0xB472,0xB473,0xB474,0xB475,0xB476,0xB477, +0xB478,0xB479,0xB47A,0xB47B,0xB47C,0xB47D,0xB47E,0xB47F, +0xB481,0xB482, 0, 0, 0, 0, 0, 0, +0xB483,0xB484,0xB485,0xB486,0xB487,0xB489,0xB48A,0xB48B, +0xB48C,0xB48D,0xB48E,0xB48F,0xB490,0xB491,0xB492,0xB493, +0xB494,0xB495,0xB496,0xB497,0xB498,0xB499,0xB49A,0xB49B, +0xB49C,0xB49E,0xB49F,0xB4A0,0xB4A1,0xB4A2,0xB4A3,0xB4A5, +0xB4A6,0xB4A7,0xB4A9,0xB4AA,0xB4AB,0xB4AD,0xB4AE,0xB4AF, +0xB4B0,0xB4B1,0xB4B2,0xB4B3,0xB4B4,0xB4B6,0xB4B8,0xB4BA, +0xB4BB,0xB4BC,0xB4BD,0xB4BE,0xB4BF,0xB4C1,0xB4C2,0xB4C3, +0xB4C5,0xB4C6,0xB4C7,0xB4C9,0xB4CA,0xB4CB,0xB4CC,0xB4CD, +0xB4CE,0xB4CF,0xB4D1,0xB4D2,0xB4D3,0xB4D4,0xB4D6,0xB4D7, +0xB4D8,0xB4D9,0xB4DA,0xB4DB,0xB4DE,0xB4DF,0xB4E1,0xB4E2, +0xB4E5,0xB4E7,0xB4E8,0xB4E9,0xB4EA,0xB4EB,0xB4EE,0xB4F0, +0xB4F2,0xB4F3,0xB4F4,0xB4F5,0xB4F6,0xB4F7,0xB4F9,0xB4FA, +0xB4FB,0xB4FC,0xB4FD,0xB4FE,0xB4FF,0xB500,0xB501,0xB502, +0xB503,0xB504,0xB505,0xB506,0xB507,0xB508,0xB509,0xB50A, +0xB50B,0xB50C,0xB50D,0xB50E,0xB50F,0xB510,0xB511,0xB512, +0xB513,0xB516,0xB517,0xB519,0xB51A,0xB51D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB51E,0xB51F,0xB520,0xB521,0xB522,0xB523,0xB526,0xB52B, +0xB52C,0xB52D,0xB52E,0xB52F,0xB532,0xB533,0xB535,0xB536, +0xB537,0xB539,0xB53A,0xB53B,0xB53C,0xB53D,0xB53E,0xB53F, +0xB542,0xB546, 0, 0, 0, 0, 0, 0, +0xB547,0xB548,0xB549,0xB54A,0xB54E,0xB54F,0xB551,0xB552, +0xB553,0xB555,0xB556,0xB557,0xB558,0xB559,0xB55A,0xB55B, +0xB55E,0xB562,0xB563,0xB564,0xB565,0xB566,0xB567,0xB568, +0xB569,0xB56A, 0, 0, 0, 0, 0, 0, +0xB56B,0xB56C,0xB56D,0xB56E,0xB56F,0xB570,0xB571,0xB572, +0xB573,0xB574,0xB575,0xB576,0xB577,0xB578,0xB579,0xB57A, +0xB57B,0xB57C,0xB57D,0xB57E,0xB57F,0xB580,0xB581,0xB582, +0xB583,0xB584,0xB585,0xB586,0xB587,0xB588,0xB589,0xB58A, +0xB58B,0xB58C,0xB58D,0xB58E,0xB58F,0xB590,0xB591,0xB592, +0xB593,0xB594,0xB595,0xB596,0xB597,0xB598,0xB599,0xB59A, +0xB59B,0xB59C,0xB59D,0xB59E,0xB59F,0xB5A2,0xB5A3,0xB5A5, +0xB5A6,0xB5A7,0xB5A9,0xB5AC,0xB5AD,0xB5AE,0xB5AF,0xB5B2, +0xB5B6,0xB5B7,0xB5B8,0xB5B9,0xB5BA,0xB5BE,0xB5BF,0xB5C1, +0xB5C2,0xB5C3,0xB5C5,0xB5C6,0xB5C7,0xB5C8,0xB5C9,0xB5CA, +0xB5CB,0xB5CE,0xB5D2,0xB5D3,0xB5D4,0xB5D5,0xB5D6,0xB5D7, +0xB5D9,0xB5DA,0xB5DB,0xB5DC,0xB5DD,0xB5DE,0xB5DF,0xB5E0, +0xB5E1,0xB5E2,0xB5E3,0xB5E4,0xB5E5,0xB5E6,0xB5E7,0xB5E8, +0xB5E9,0xB5EA,0xB5EB,0xB5ED,0xB5EE,0xB5EF,0xB5F0,0xB5F1, +0xB5F2,0xB5F3,0xB5F4,0xB5F5,0xB5F6,0xB5F7,0xB5F8,0xB5F9, +0xB5FA,0xB5FB,0xB5FC,0xB5FD,0xB5FE,0xB5FF, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB600,0xB601,0xB602,0xB603,0xB604,0xB605,0xB606,0xB607, +0xB608,0xB609,0xB60A,0xB60B,0xB60C,0xB60D,0xB60E,0xB60F, +0xB612,0xB613,0xB615,0xB616,0xB617,0xB619,0xB61A,0xB61B, +0xB61C,0xB61D, 0, 0, 0, 0, 0, 0, +0xB61E,0xB61F,0xB620,0xB621,0xB622,0xB623,0xB624,0xB626, +0xB627,0xB628,0xB629,0xB62A,0xB62B,0xB62D,0xB62E,0xB62F, +0xB630,0xB631,0xB632,0xB633,0xB635,0xB636,0xB637,0xB638, +0xB639,0xB63A, 0, 0, 0, 0, 0, 0, +0xB63B,0xB63C,0xB63D,0xB63E,0xB63F,0xB640,0xB641,0xB642, +0xB643,0xB644,0xB645,0xB646,0xB647,0xB649,0xB64A,0xB64B, +0xB64C,0xB64D,0xB64E,0xB64F,0xB650,0xB651,0xB652,0xB653, +0xB654,0xB655,0xB656,0xB657,0xB658,0xB659,0xB65A,0xB65B, +0xB65C,0xB65D,0xB65E,0xB65F,0xB660,0xB661,0xB662,0xB663, +0xB665,0xB666,0xB667,0xB669,0xB66A,0xB66B,0xB66C,0xB66D, +0xB66E,0xB66F,0xB670,0xB671,0xB672,0xB673,0xB674,0xB675, +0xB676,0xB677,0xB678,0xB679,0xB67A,0xB67B,0xB67C,0xB67D, +0xB67E,0xB67F,0xB680,0xB681,0xB682,0xB683,0xB684,0xB685, +0xB686,0xB687,0xB688,0xB689,0xB68A,0xB68B,0xB68C,0xB68D, +0xB68E,0xB68F,0xB690,0xB691,0xB692,0xB693,0xB694,0xB695, +0xB696,0xB697,0xB698,0xB699,0xB69A,0xB69B,0xB69E,0xB69F, +0xB6A1,0xB6A2,0xB6A3,0xB6A5,0xB6A6,0xB6A7,0xB6A8,0xB6A9, +0xB6AA,0xB6AD,0xB6AE,0xB6AF,0xB6B0,0xB6B2,0xB6B3,0xB6B4, +0xB6B5,0xB6B6,0xB6B7,0xB6B8,0xB6B9,0xB6BA,0xB6BB,0xB6BC, +0xB6BD,0xB6BE,0xB6BF,0xB6C0,0xB6C1,0xB6C2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB6C3,0xB6C4,0xB6C5,0xB6C6,0xB6C7,0xB6C8,0xB6C9,0xB6CA, +0xB6CB,0xB6CC,0xB6CD,0xB6CE,0xB6CF,0xB6D0,0xB6D1,0xB6D2, +0xB6D3,0xB6D5,0xB6D6,0xB6D7,0xB6D8,0xB6D9,0xB6DA,0xB6DB, +0xB6DC,0xB6DD, 0, 0, 0, 0, 0, 0, +0xB6DE,0xB6DF,0xB6E0,0xB6E1,0xB6E2,0xB6E3,0xB6E4,0xB6E5, +0xB6E6,0xB6E7,0xB6E8,0xB6E9,0xB6EA,0xB6EB,0xB6EC,0xB6ED, +0xB6EE,0xB6EF,0xB6F1,0xB6F2,0xB6F3,0xB6F5,0xB6F6,0xB6F7, +0xB6F9,0xB6FA, 0, 0, 0, 0, 0, 0, +0xB6FB,0xB6FC,0xB6FD,0xB6FE,0xB6FF,0xB702,0xB703,0xB704, +0xB706,0xB707,0xB708,0xB709,0xB70A,0xB70B,0xB70C,0xB70D, +0xB70E,0xB70F,0xB710,0xB711,0xB712,0xB713,0xB714,0xB715, +0xB716,0xB717,0xB718,0xB719,0xB71A,0xB71B,0xB71C,0xB71D, +0xB71E,0xB71F,0xB720,0xB721,0xB722,0xB723,0xB724,0xB725, +0xB726,0xB727,0xB72A,0xB72B,0xB72D,0xB72E,0xB731,0xB732, +0xB733,0xB734,0xB735,0xB736,0xB737,0xB73A,0xB73C,0xB73D, +0xB73E,0xB73F,0xB740,0xB741,0xB742,0xB743,0xB745,0xB746, +0xB747,0xB749,0xB74A,0xB74B,0xB74D,0xB74E,0xB74F,0xB750, +0xB751,0xB752,0xB753,0xB756,0xB757,0xB758,0xB759,0xB75A, +0xB75B,0xB75C,0xB75D,0xB75E,0xB75F,0xB761,0xB762,0xB763, +0xB765,0xB766,0xB767,0xB769,0xB76A,0xB76B,0xB76C,0xB76D, +0xB76E,0xB76F,0xB772,0xB774,0xB776,0xB777,0xB778,0xB779, +0xB77A,0xB77B,0xB77E,0xB77F,0xB781,0xB782,0xB783,0xB785, +0xB786,0xB787,0xB788,0xB789,0xB78A,0xB78B,0xB78E,0xB793, +0xB794,0xB795,0xB79A,0xB79B,0xB79D,0xB79E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB79F,0xB7A1,0xB7A2,0xB7A3,0xB7A4,0xB7A5,0xB7A6,0xB7A7, +0xB7AA,0xB7AE,0xB7AF,0xB7B0,0xB7B1,0xB7B2,0xB7B3,0xB7B6, +0xB7B7,0xB7B9,0xB7BA,0xB7BB,0xB7BC,0xB7BD,0xB7BE,0xB7BF, +0xB7C0,0xB7C1, 0, 0, 0, 0, 0, 0, +0xB7C2,0xB7C3,0xB7C4,0xB7C5,0xB7C6,0xB7C8,0xB7CA,0xB7CB, +0xB7CC,0xB7CD,0xB7CE,0xB7CF,0xB7D0,0xB7D1,0xB7D2,0xB7D3, +0xB7D4,0xB7D5,0xB7D6,0xB7D7,0xB7D8,0xB7D9,0xB7DA,0xB7DB, +0xB7DC,0xB7DD, 0, 0, 0, 0, 0, 0, +0xB7DE,0xB7DF,0xB7E0,0xB7E1,0xB7E2,0xB7E3,0xB7E4,0xB7E5, +0xB7E6,0xB7E7,0xB7E8,0xB7E9,0xB7EA,0xB7EB,0xB7EE,0xB7EF, +0xB7F1,0xB7F2,0xB7F3,0xB7F5,0xB7F6,0xB7F7,0xB7F8,0xB7F9, +0xB7FA,0xB7FB,0xB7FE,0xB802,0xB803,0xB804,0xB805,0xB806, +0xB80A,0xB80B,0xB80D,0xB80E,0xB80F,0xB811,0xB812,0xB813, +0xB814,0xB815,0xB816,0xB817,0xB81A,0xB81C,0xB81E,0xB81F, +0xB820,0xB821,0xB822,0xB823,0xB826,0xB827,0xB829,0xB82A, +0xB82B,0xB82D,0xB82E,0xB82F,0xB830,0xB831,0xB832,0xB833, +0xB836,0xB83A,0xB83B,0xB83C,0xB83D,0xB83E,0xB83F,0xB841, +0xB842,0xB843,0xB845,0xB846,0xB847,0xB848,0xB849,0xB84A, +0xB84B,0xB84C,0xB84D,0xB84E,0xB84F,0xB850,0xB852,0xB854, +0xB855,0xB856,0xB857,0xB858,0xB859,0xB85A,0xB85B,0xB85E, +0xB85F,0xB861,0xB862,0xB863,0xB865,0xB866,0xB867,0xB868, +0xB869,0xB86A,0xB86B,0xB86E,0xB870,0xB872,0xB873,0xB874, +0xB875,0xB876,0xB877,0xB879,0xB87A,0xB87B,0xB87D,0xB87E, +0xB87F,0xB880,0xB881,0xB882,0xB883,0xB884, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB885,0xB886,0xB887,0xB888,0xB889,0xB88A,0xB88B,0xB88C, +0xB88E,0xB88F,0xB890,0xB891,0xB892,0xB893,0xB894,0xB895, +0xB896,0xB897,0xB898,0xB899,0xB89A,0xB89B,0xB89C,0xB89D, +0xB89E,0xB89F, 0, 0, 0, 0, 0, 0, +0xB8A0,0xB8A1,0xB8A2,0xB8A3,0xB8A4,0xB8A5,0xB8A6,0xB8A7, +0xB8A9,0xB8AA,0xB8AB,0xB8AC,0xB8AD,0xB8AE,0xB8AF,0xB8B1, +0xB8B2,0xB8B3,0xB8B5,0xB8B6,0xB8B7,0xB8B9,0xB8BA,0xB8BB, +0xB8BC,0xB8BD, 0, 0, 0, 0, 0, 0, +0xB8BE,0xB8BF,0xB8C2,0xB8C4,0xB8C6,0xB8C7,0xB8C8,0xB8C9, +0xB8CA,0xB8CB,0xB8CD,0xB8CE,0xB8CF,0xB8D1,0xB8D2,0xB8D3, +0xB8D5,0xB8D6,0xB8D7,0xB8D8,0xB8D9,0xB8DA,0xB8DB,0xB8DC, +0xB8DE,0xB8E0,0xB8E2,0xB8E3,0xB8E4,0xB8E5,0xB8E6,0xB8E7, +0xB8EA,0xB8EB,0xB8ED,0xB8EE,0xB8EF,0xB8F1,0xB8F2,0xB8F3, +0xB8F4,0xB8F5,0xB8F6,0xB8F7,0xB8FA,0xB8FC,0xB8FE,0xB8FF, +0xB900,0xB901,0xB902,0xB903,0xB905,0xB906,0xB907,0xB908, +0xB909,0xB90A,0xB90B,0xB90C,0xB90D,0xB90E,0xB90F,0xB910, +0xB911,0xB912,0xB913,0xB914,0xB915,0xB916,0xB917,0xB919, +0xB91A,0xB91B,0xB91C,0xB91D,0xB91E,0xB91F,0xB921,0xB922, +0xB923,0xB924,0xB925,0xB926,0xB927,0xB928,0xB929,0xB92A, +0xB92B,0xB92C,0xB92D,0xB92E,0xB92F,0xB930,0xB931,0xB932, +0xB933,0xB934,0xB935,0xB936,0xB937,0xB938,0xB939,0xB93A, +0xB93B,0xB93E,0xB93F,0xB941,0xB942,0xB943,0xB945,0xB946, +0xB947,0xB948,0xB949,0xB94A,0xB94B,0xB94D,0xB94E,0xB950, +0xB952,0xB953,0xB954,0xB955,0xB956,0xB957, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xB95A,0xB95B,0xB95D,0xB95E,0xB95F,0xB961,0xB962,0xB963, +0xB964,0xB965,0xB966,0xB967,0xB96A,0xB96C,0xB96E,0xB96F, +0xB970,0xB971,0xB972,0xB973,0xB976,0xB977,0xB979,0xB97A, +0xB97B,0xB97D, 0, 0, 0, 0, 0, 0, +0xB97E,0xB97F,0xB980,0xB981,0xB982,0xB983,0xB986,0xB988, +0xB98B,0xB98C,0xB98F,0xB990,0xB991,0xB992,0xB993,0xB994, +0xB995,0xB996,0xB997,0xB998,0xB999,0xB99A,0xB99B,0xB99C, +0xB99D,0xB99E, 0, 0, 0, 0, 0, 0, +0xB99F,0xB9A0,0xB9A1,0xB9A2,0xB9A3,0xB9A4,0xB9A5,0xB9A6, +0xB9A7,0xB9A8,0xB9A9,0xB9AA,0xB9AB,0xB9AE,0xB9AF,0xB9B1, +0xB9B2,0xB9B3,0xB9B5,0xB9B6,0xB9B7,0xB9B8,0xB9B9,0xB9BA, +0xB9BB,0xB9BE,0xB9C0,0xB9C2,0xB9C3,0xB9C4,0xB9C5,0xB9C6, +0xB9C7,0xB9CA,0xB9CB,0xB9CD,0xB9D3,0xB9D4,0xB9D5,0xB9D6, +0xB9D7,0xB9DA,0xB9DC,0xB9DF,0xB9E0,0xB9E2,0xB9E6,0xB9E7, +0xB9E9,0xB9EA,0xB9EB,0xB9ED,0xB9EE,0xB9EF,0xB9F0,0xB9F1, +0xB9F2,0xB9F3,0xB9F6,0xB9FB,0xB9FC,0xB9FD,0xB9FE,0xB9FF, +0xBA02,0xBA03,0xBA04,0xBA05,0xBA06,0xBA07,0xBA09,0xBA0A, +0xBA0B,0xBA0C,0xBA0D,0xBA0E,0xBA0F,0xBA10,0xBA11,0xBA12, +0xBA13,0xBA14,0xBA16,0xBA17,0xBA18,0xBA19,0xBA1A,0xBA1B, +0xBA1C,0xBA1D,0xBA1E,0xBA1F,0xBA20,0xBA21,0xBA22,0xBA23, +0xBA24,0xBA25,0xBA26,0xBA27,0xBA28,0xBA29,0xBA2A,0xBA2B, +0xBA2C,0xBA2D,0xBA2E,0xBA2F,0xBA30,0xBA31,0xBA32,0xBA33, +0xBA34,0xBA35,0xBA36,0xBA37,0xBA3A,0xBA3B,0xBA3D,0xBA3E, +0xBA3F,0xBA41,0xBA43,0xBA44,0xBA45,0xBA46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBA47,0xBA4A,0xBA4C,0xBA4F,0xBA50,0xBA51,0xBA52,0xBA56, +0xBA57,0xBA59,0xBA5A,0xBA5B,0xBA5D,0xBA5E,0xBA5F,0xBA60, +0xBA61,0xBA62,0xBA63,0xBA66,0xBA6A,0xBA6B,0xBA6C,0xBA6D, +0xBA6E,0xBA6F, 0, 0, 0, 0, 0, 0, +0xBA72,0xBA73,0xBA75,0xBA76,0xBA77,0xBA79,0xBA7A,0xBA7B, +0xBA7C,0xBA7D,0xBA7E,0xBA7F,0xBA80,0xBA81,0xBA82,0xBA86, +0xBA88,0xBA89,0xBA8A,0xBA8B,0xBA8D,0xBA8E,0xBA8F,0xBA90, +0xBA91,0xBA92, 0, 0, 0, 0, 0, 0, +0xBA93,0xBA94,0xBA95,0xBA96,0xBA97,0xBA98,0xBA99,0xBA9A, +0xBA9B,0xBA9C,0xBA9D,0xBA9E,0xBA9F,0xBAA0,0xBAA1,0xBAA2, +0xBAA3,0xBAA4,0xBAA5,0xBAA6,0xBAA7,0xBAAA,0xBAAD,0xBAAE, +0xBAAF,0xBAB1,0xBAB3,0xBAB4,0xBAB5,0xBAB6,0xBAB7,0xBABA, +0xBABC,0xBABE,0xBABF,0xBAC0,0xBAC1,0xBAC2,0xBAC3,0xBAC5, +0xBAC6,0xBAC7,0xBAC9,0xBACA,0xBACB,0xBACC,0xBACD,0xBACE, +0xBACF,0xBAD0,0xBAD1,0xBAD2,0xBAD3,0xBAD4,0xBAD5,0xBAD6, +0xBAD7,0xBADA,0xBADB,0xBADC,0xBADD,0xBADE,0xBADF,0xBAE0, +0xBAE1,0xBAE2,0xBAE3,0xBAE4,0xBAE5,0xBAE6,0xBAE7,0xBAE8, +0xBAE9,0xBAEA,0xBAEB,0xBAEC,0xBAED,0xBAEE,0xBAEF,0xBAF0, +0xBAF1,0xBAF2,0xBAF3,0xBAF4,0xBAF5,0xBAF6,0xBAF7,0xBAF8, +0xBAF9,0xBAFA,0xBAFB,0xBAFD,0xBAFE,0xBAFF,0xBB01,0xBB02, +0xBB03,0xBB05,0xBB06,0xBB07,0xBB08,0xBB09,0xBB0A,0xBB0B, +0xBB0C,0xBB0E,0xBB10,0xBB12,0xBB13,0xBB14,0xBB15,0xBB16, +0xBB17,0xBB19,0xBB1A,0xBB1B,0xBB1D,0xBB1E,0xBB1F,0xBB21, +0xBB22,0xBB23,0xBB24,0xBB25,0xBB26,0xBB27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBB28,0xBB2A,0xBB2C,0xBB2D,0xBB2E,0xBB2F,0xBB30,0xBB31, +0xBB32,0xBB33,0xBB37,0xBB39,0xBB3A,0xBB3F,0xBB40,0xBB41, +0xBB42,0xBB43,0xBB46,0xBB48,0xBB4A,0xBB4B,0xBB4C,0xBB4E, +0xBB51,0xBB52, 0, 0, 0, 0, 0, 0, +0xBB53,0xBB55,0xBB56,0xBB57,0xBB59,0xBB5A,0xBB5B,0xBB5C, +0xBB5D,0xBB5E,0xBB5F,0xBB60,0xBB62,0xBB64,0xBB65,0xBB66, +0xBB67,0xBB68,0xBB69,0xBB6A,0xBB6B,0xBB6D,0xBB6E,0xBB6F, +0xBB70,0xBB71, 0, 0, 0, 0, 0, 0, +0xBB72,0xBB73,0xBB74,0xBB75,0xBB76,0xBB77,0xBB78,0xBB79, +0xBB7A,0xBB7B,0xBB7C,0xBB7D,0xBB7E,0xBB7F,0xBB80,0xBB81, +0xBB82,0xBB83,0xBB84,0xBB85,0xBB86,0xBB87,0xBB89,0xBB8A, +0xBB8B,0xBB8D,0xBB8E,0xBB8F,0xBB91,0xBB92,0xBB93,0xBB94, +0xBB95,0xBB96,0xBB97,0xBB98,0xBB99,0xBB9A,0xBB9B,0xBB9C, +0xBB9D,0xBB9E,0xBB9F,0xBBA0,0xBBA1,0xBBA2,0xBBA3,0xBBA5, +0xBBA6,0xBBA7,0xBBA9,0xBBAA,0xBBAB,0xBBAD,0xBBAE,0xBBAF, +0xBBB0,0xBBB1,0xBBB2,0xBBB3,0xBBB5,0xBBB6,0xBBB8,0xBBB9, +0xBBBA,0xBBBB,0xBBBC,0xBBBD,0xBBBE,0xBBBF,0xBBC1,0xBBC2, +0xBBC3,0xBBC5,0xBBC6,0xBBC7,0xBBC9,0xBBCA,0xBBCB,0xBBCC, +0xBBCD,0xBBCE,0xBBCF,0xBBD1,0xBBD2,0xBBD4,0xBBD5,0xBBD6, +0xBBD7,0xBBD8,0xBBD9,0xBBDA,0xBBDB,0xBBDC,0xBBDD,0xBBDE, +0xBBDF,0xBBE0,0xBBE1,0xBBE2,0xBBE3,0xBBE4,0xBBE5,0xBBE6, +0xBBE7,0xBBE8,0xBBE9,0xBBEA,0xBBEB,0xBBEC,0xBBED,0xBBEE, +0xBBEF,0xBBF0,0xBBF1,0xBBF2,0xBBF3,0xBBF4,0xBBF5,0xBBF6, +0xBBF7,0xBBFA,0xBBFB,0xBBFD,0xBBFE,0xBC01, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBC03,0xBC04,0xBC05,0xBC06,0xBC07,0xBC0A,0xBC0E,0xBC10, +0xBC12,0xBC13,0xBC19,0xBC1A,0xBC20,0xBC21,0xBC22,0xBC23, +0xBC26,0xBC28,0xBC2A,0xBC2B,0xBC2C,0xBC2E,0xBC2F,0xBC32, +0xBC33,0xBC35, 0, 0, 0, 0, 0, 0, +0xBC36,0xBC37,0xBC39,0xBC3A,0xBC3B,0xBC3C,0xBC3D,0xBC3E, +0xBC3F,0xBC42,0xBC46,0xBC47,0xBC48,0xBC4A,0xBC4B,0xBC4E, +0xBC4F,0xBC51,0xBC52,0xBC53,0xBC54,0xBC55,0xBC56,0xBC57, +0xBC58,0xBC59, 0, 0, 0, 0, 0, 0, +0xBC5A,0xBC5B,0xBC5C,0xBC5E,0xBC5F,0xBC60,0xBC61,0xBC62, +0xBC63,0xBC64,0xBC65,0xBC66,0xBC67,0xBC68,0xBC69,0xBC6A, +0xBC6B,0xBC6C,0xBC6D,0xBC6E,0xBC6F,0xBC70,0xBC71,0xBC72, +0xBC73,0xBC74,0xBC75,0xBC76,0xBC77,0xBC78,0xBC79,0xBC7A, +0xBC7B,0xBC7C,0xBC7D,0xBC7E,0xBC7F,0xBC80,0xBC81,0xBC82, +0xBC83,0xBC86,0xBC87,0xBC89,0xBC8A,0xBC8D,0xBC8F,0xBC90, +0xBC91,0xBC92,0xBC93,0xBC96,0xBC98,0xBC9B,0xBC9C,0xBC9D, +0xBC9E,0xBC9F,0xBCA2,0xBCA3,0xBCA5,0xBCA6,0xBCA9,0xBCAA, +0xBCAB,0xBCAC,0xBCAD,0xBCAE,0xBCAF,0xBCB2,0xBCB6,0xBCB7, +0xBCB8,0xBCB9,0xBCBA,0xBCBB,0xBCBE,0xBCBF,0xBCC1,0xBCC2, +0xBCC3,0xBCC5,0xBCC6,0xBCC7,0xBCC8,0xBCC9,0xBCCA,0xBCCB, +0xBCCC,0xBCCE,0xBCD2,0xBCD3,0xBCD4,0xBCD6,0xBCD7,0xBCD9, +0xBCDA,0xBCDB,0xBCDD,0xBCDE,0xBCDF,0xBCE0,0xBCE1,0xBCE2, +0xBCE3,0xBCE4,0xBCE5,0xBCE6,0xBCE7,0xBCE8,0xBCE9,0xBCEA, +0xBCEB,0xBCEC,0xBCED,0xBCEE,0xBCEF,0xBCF0,0xBCF1,0xBCF2, +0xBCF3,0xBCF7,0xBCF9,0xBCFA,0xBCFB,0xBCFD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBCFE,0xBCFF,0xBD00,0xBD01,0xBD02,0xBD03,0xBD06,0xBD08, +0xBD0A,0xBD0B,0xBD0C,0xBD0D,0xBD0E,0xBD0F,0xBD11,0xBD12, +0xBD13,0xBD15,0xBD16,0xBD17,0xBD18,0xBD19,0xBD1A,0xBD1B, +0xBD1C,0xBD1D, 0, 0, 0, 0, 0, 0, +0xBD1E,0xBD1F,0xBD20,0xBD21,0xBD22,0xBD23,0xBD25,0xBD26, +0xBD27,0xBD28,0xBD29,0xBD2A,0xBD2B,0xBD2D,0xBD2E,0xBD2F, +0xBD30,0xBD31,0xBD32,0xBD33,0xBD34,0xBD35,0xBD36,0xBD37, +0xBD38,0xBD39, 0, 0, 0, 0, 0, 0, +0xBD3A,0xBD3B,0xBD3C,0xBD3D,0xBD3E,0xBD3F,0xBD41,0xBD42, +0xBD43,0xBD44,0xBD45,0xBD46,0xBD47,0xBD4A,0xBD4B,0xBD4D, +0xBD4E,0xBD4F,0xBD51,0xBD52,0xBD53,0xBD54,0xBD55,0xBD56, +0xBD57,0xBD5A,0xBD5B,0xBD5C,0xBD5D,0xBD5E,0xBD5F,0xBD60, +0xBD61,0xBD62,0xBD63,0xBD65,0xBD66,0xBD67,0xBD69,0xBD6A, +0xBD6B,0xBD6C,0xBD6D,0xBD6E,0xBD6F,0xBD70,0xBD71,0xBD72, +0xBD73,0xBD74,0xBD75,0xBD76,0xBD77,0xBD78,0xBD79,0xBD7A, +0xBD7B,0xBD7C,0xBD7D,0xBD7E,0xBD7F,0xBD82,0xBD83,0xBD85, +0xBD86,0xBD8B,0xBD8C,0xBD8D,0xBD8E,0xBD8F,0xBD92,0xBD94, +0xBD96,0xBD97,0xBD98,0xBD9B,0xBD9D,0xBD9E,0xBD9F,0xBDA0, +0xBDA1,0xBDA2,0xBDA3,0xBDA5,0xBDA6,0xBDA7,0xBDA8,0xBDA9, +0xBDAA,0xBDAB,0xBDAC,0xBDAD,0xBDAE,0xBDAF,0xBDB1,0xBDB2, +0xBDB3,0xBDB4,0xBDB5,0xBDB6,0xBDB7,0xBDB9,0xBDBA,0xBDBB, +0xBDBC,0xBDBD,0xBDBE,0xBDBF,0xBDC0,0xBDC1,0xBDC2,0xBDC3, +0xBDC4,0xBDC5,0xBDC6,0xBDC7,0xBDC8,0xBDC9,0xBDCA,0xBDCB, +0xBDCC,0xBDCD,0xBDCE,0xBDCF,0xBDD0,0xBDD1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBDD2,0xBDD3,0xBDD6,0xBDD7,0xBDD9,0xBDDA,0xBDDB,0xBDDD, +0xBDDE,0xBDDF,0xBDE0,0xBDE1,0xBDE2,0xBDE3,0xBDE4,0xBDE5, +0xBDE6,0xBDE7,0xBDE8,0xBDEA,0xBDEB,0xBDEC,0xBDED,0xBDEE, +0xBDEF,0xBDF1, 0, 0, 0, 0, 0, 0, +0xBDF2,0xBDF3,0xBDF5,0xBDF6,0xBDF7,0xBDF9,0xBDFA,0xBDFB, +0xBDFC,0xBDFD,0xBDFE,0xBDFF,0xBE01,0xBE02,0xBE04,0xBE06, +0xBE07,0xBE08,0xBE09,0xBE0A,0xBE0B,0xBE0E,0xBE0F,0xBE11, +0xBE12,0xBE13, 0, 0, 0, 0, 0, 0, +0xBE15,0xBE16,0xBE17,0xBE18,0xBE19,0xBE1A,0xBE1B,0xBE1E, +0xBE20,0xBE21,0xBE22,0xBE23,0xBE24,0xBE25,0xBE26,0xBE27, +0xBE28,0xBE29,0xBE2A,0xBE2B,0xBE2C,0xBE2D,0xBE2E,0xBE2F, +0xBE30,0xBE31,0xBE32,0xBE33,0xBE34,0xBE35,0xBE36,0xBE37, +0xBE38,0xBE39,0xBE3A,0xBE3B,0xBE3C,0xBE3D,0xBE3E,0xBE3F, +0xBE40,0xBE41,0xBE42,0xBE43,0xBE46,0xBE47,0xBE49,0xBE4A, +0xBE4B,0xBE4D,0xBE4F,0xBE50,0xBE51,0xBE52,0xBE53,0xBE56, +0xBE58,0xBE5C,0xBE5D,0xBE5E,0xBE5F,0xBE62,0xBE63,0xBE65, +0xBE66,0xBE67,0xBE69,0xBE6B,0xBE6C,0xBE6D,0xBE6E,0xBE6F, +0xBE72,0xBE76,0xBE77,0xBE78,0xBE79,0xBE7A,0xBE7E,0xBE7F, +0xBE81,0xBE82,0xBE83,0xBE85,0xBE86,0xBE87,0xBE88,0xBE89, +0xBE8A,0xBE8B,0xBE8E,0xBE92,0xBE93,0xBE94,0xBE95,0xBE96, +0xBE97,0xBE9A,0xBE9B,0xBE9C,0xBE9D,0xBE9E,0xBE9F,0xBEA0, +0xBEA1,0xBEA2,0xBEA3,0xBEA4,0xBEA5,0xBEA6,0xBEA7,0xBEA9, +0xBEAA,0xBEAB,0xBEAC,0xBEAD,0xBEAE,0xBEAF,0xBEB0,0xBEB1, +0xBEB2,0xBEB3,0xBEB4,0xBEB5,0xBEB6,0xBEB7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBEB8,0xBEB9,0xBEBA,0xBEBB,0xBEBC,0xBEBD,0xBEBE,0xBEBF, +0xBEC0,0xBEC1,0xBEC2,0xBEC3,0xBEC4,0xBEC5,0xBEC6,0xBEC7, +0xBEC8,0xBEC9,0xBECA,0xBECB,0xBECC,0xBECD,0xBECE,0xBECF, +0xBED2,0xBED3, 0, 0, 0, 0, 0, 0, +0xBED5,0xBED6,0xBED9,0xBEDA,0xBEDB,0xBEDC,0xBEDD,0xBEDE, +0xBEDF,0xBEE1,0xBEE2,0xBEE6,0xBEE7,0xBEE8,0xBEE9,0xBEEA, +0xBEEB,0xBEED,0xBEEE,0xBEEF,0xBEF0,0xBEF1,0xBEF2,0xBEF3, +0xBEF4,0xBEF5, 0, 0, 0, 0, 0, 0, +0xBEF6,0xBEF7,0xBEF8,0xBEF9,0xBEFA,0xBEFB,0xBEFC,0xBEFD, +0xBEFE,0xBEFF,0xBF00,0xBF02,0xBF03,0xBF04,0xBF05,0xBF06, +0xBF07,0xBF0A,0xBF0B,0xBF0C,0xBF0D,0xBF0E,0xBF0F,0xBF10, +0xBF11,0xBF12,0xBF13,0xBF14,0xBF15,0xBF16,0xBF17,0xBF1A, +0xBF1E,0xBF1F,0xBF20,0xBF21,0xBF22,0xBF23,0xBF24,0xBF25, +0xBF26,0xBF27,0xBF28,0xBF29,0xBF2A,0xBF2B,0xBF2C,0xBF2D, +0xBF2E,0xBF2F,0xBF30,0xBF31,0xBF32,0xBF33,0xBF34,0xBF35, +0xBF36,0xBF37,0xBF38,0xBF39,0xBF3A,0xBF3B,0xBF3C,0xBF3D, +0xBF3E,0xBF3F,0xBF42,0xBF43,0xBF45,0xBF46,0xBF47,0xBF49, +0xBF4A,0xBF4B,0xBF4C,0xBF4D,0xBF4E,0xBF4F,0xBF52,0xBF53, +0xBF54,0xBF56,0xBF57,0xBF58,0xBF59,0xBF5A,0xBF5B,0xBF5C, +0xBF5D,0xBF5E,0xBF5F,0xBF60,0xBF61,0xBF62,0xBF63,0xBF64, +0xBF65,0xBF66,0xBF67,0xBF68,0xBF69,0xBF6A,0xBF6B,0xBF6C, +0xBF6D,0xBF6E,0xBF6F,0xBF70,0xBF71,0xBF72,0xBF73,0xBF74, +0xBF75,0xBF76,0xBF77,0xBF78,0xBF79,0xBF7A,0xBF7B,0xBF7C, +0xBF7D,0xBF7E,0xBF7F,0xBF80,0xBF81,0xBF82, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xBF83,0xBF84,0xBF85,0xBF86,0xBF87,0xBF88,0xBF89,0xBF8A, +0xBF8B,0xBF8C,0xBF8D,0xBF8E,0xBF8F,0xBF90,0xBF91,0xBF92, +0xBF93,0xBF95,0xBF96,0xBF97,0xBF98,0xBF99,0xBF9A,0xBF9B, +0xBF9C,0xBF9D, 0, 0, 0, 0, 0, 0, +0xBF9E,0xBF9F,0xBFA0,0xBFA1,0xBFA2,0xBFA3,0xBFA4,0xBFA5, +0xBFA6,0xBFA7,0xBFA8,0xBFA9,0xBFAA,0xBFAB,0xBFAC,0xBFAD, +0xBFAE,0xBFAF,0xBFB1,0xBFB2,0xBFB3,0xBFB4,0xBFB5,0xBFB6, +0xBFB7,0xBFB8, 0, 0, 0, 0, 0, 0, +0xBFB9,0xBFBA,0xBFBB,0xBFBC,0xBFBD,0xBFBE,0xBFBF,0xBFC0, +0xBFC1,0xBFC2,0xBFC3,0xBFC4,0xBFC6,0xBFC7,0xBFC8,0xBFC9, +0xBFCA,0xBFCB,0xBFCE,0xBFCF,0xBFD1,0xBFD2,0xBFD3,0xBFD5, +0xBFD6,0xBFD7,0xBFD8,0xBFD9,0xBFDA,0xBFDB,0xBFDD,0xBFDE, +0xBFE0,0xBFE2,0xBFE3,0xBFE4,0xBFE5,0xBFE6,0xBFE7,0xBFE8, +0xBFE9,0xBFEA,0xBFEB,0xBFEC,0xBFED,0xBFEE,0xBFEF,0xBFF0, +0xBFF1,0xBFF2,0xBFF3,0xBFF4,0xBFF5,0xBFF6,0xBFF7,0xBFF8, +0xBFF9,0xBFFA,0xBFFB,0xBFFC,0xBFFD,0xBFFE,0xBFFF,0xC000, +0xC001,0xC002,0xC003,0xC004,0xC005,0xC006,0xC007,0xC008, +0xC009,0xC00A,0xC00B,0xC00C,0xC00D,0xC00E,0xC00F,0xC010, +0xC011,0xC012,0xC013,0xC014,0xC015,0xC016,0xC017,0xC018, +0xC019,0xC01A,0xC01B,0xC01C,0xC01D,0xC01E,0xC01F,0xC020, +0xC021,0xC022,0xC023,0xC024,0xC025,0xC026,0xC027,0xC028, +0xC029,0xC02A,0xC02B,0xC02C,0xC02D,0xC02E,0xC02F,0xC030, +0xC031,0xC032,0xC033,0xC034,0xC035,0xC036,0xC037,0xC038, +0xC039,0xC03A,0xC03B,0xC03D,0xC03E,0xC03F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC040,0xC041,0xC042,0xC043,0xC044,0xC045,0xC046,0xC047, +0xC048,0xC049,0xC04A,0xC04B,0xC04C,0xC04D,0xC04E,0xC04F, +0xC050,0xC052,0xC053,0xC054,0xC055,0xC056,0xC057,0xC059, +0xC05A,0xC05B, 0, 0, 0, 0, 0, 0, +0xC05D,0xC05E,0xC05F,0xC061,0xC062,0xC063,0xC064,0xC065, +0xC066,0xC067,0xC06A,0xC06B,0xC06C,0xC06D,0xC06E,0xC06F, +0xC070,0xC071,0xC072,0xC073,0xC074,0xC075,0xC076,0xC077, +0xC078,0xC079, 0, 0, 0, 0, 0, 0, +0xC07A,0xC07B,0xC07C,0xC07D,0xC07E,0xC07F,0xC080,0xC081, +0xC082,0xC083,0xC084,0xC085,0xC086,0xC087,0xC088,0xC089, +0xC08A,0xC08B,0xC08C,0xC08D,0xC08E,0xC08F,0xC092,0xC093, +0xC095,0xC096,0xC097,0xC099,0xC09A,0xC09B,0xC09C,0xC09D, +0xC09E,0xC09F,0xC0A2,0xC0A4,0xC0A6,0xC0A7,0xC0A8,0xC0A9, +0xC0AA,0xC0AB,0xC0AE,0xC0B1,0xC0B2,0xC0B7,0xC0B8,0xC0B9, +0xC0BA,0xC0BB,0xC0BE,0xC0C2,0xC0C3,0xC0C4,0xC0C6,0xC0C7, +0xC0CA,0xC0CB,0xC0CD,0xC0CE,0xC0CF,0xC0D1,0xC0D2,0xC0D3, +0xC0D4,0xC0D5,0xC0D6,0xC0D7,0xC0DA,0xC0DE,0xC0DF,0xC0E0, +0xC0E1,0xC0E2,0xC0E3,0xC0E6,0xC0E7,0xC0E9,0xC0EA,0xC0EB, +0xC0ED,0xC0EE,0xC0EF,0xC0F0,0xC0F1,0xC0F2,0xC0F3,0xC0F6, +0xC0F8,0xC0FA,0xC0FB,0xC0FC,0xC0FD,0xC0FE,0xC0FF,0xC101, +0xC102,0xC103,0xC105,0xC106,0xC107,0xC109,0xC10A,0xC10B, +0xC10C,0xC10D,0xC10E,0xC10F,0xC111,0xC112,0xC113,0xC114, +0xC116,0xC117,0xC118,0xC119,0xC11A,0xC11B,0xC121,0xC122, +0xC125,0xC128,0xC129,0xC12A,0xC12B,0xC12E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC132,0xC133,0xC134,0xC135,0xC137,0xC13A,0xC13B,0xC13D, +0xC13E,0xC13F,0xC141,0xC142,0xC143,0xC144,0xC145,0xC146, +0xC147,0xC14A,0xC14E,0xC14F,0xC150,0xC151,0xC152,0xC153, +0xC156,0xC157, 0, 0, 0, 0, 0, 0, +0xC159,0xC15A,0xC15B,0xC15D,0xC15E,0xC15F,0xC160,0xC161, +0xC162,0xC163,0xC166,0xC16A,0xC16B,0xC16C,0xC16D,0xC16E, +0xC16F,0xC171,0xC172,0xC173,0xC175,0xC176,0xC177,0xC179, +0xC17A,0xC17B, 0, 0, 0, 0, 0, 0, +0xC17C,0xC17D,0xC17E,0xC17F,0xC180,0xC181,0xC182,0xC183, +0xC184,0xC186,0xC187,0xC188,0xC189,0xC18A,0xC18B,0xC18F, +0xC191,0xC192,0xC193,0xC195,0xC197,0xC198,0xC199,0xC19A, +0xC19B,0xC19E,0xC1A0,0xC1A2,0xC1A3,0xC1A4,0xC1A6,0xC1A7, +0xC1AA,0xC1AB,0xC1AD,0xC1AE,0xC1AF,0xC1B1,0xC1B2,0xC1B3, +0xC1B4,0xC1B5,0xC1B6,0xC1B7,0xC1B8,0xC1B9,0xC1BA,0xC1BB, +0xC1BC,0xC1BE,0xC1BF,0xC1C0,0xC1C1,0xC1C2,0xC1C3,0xC1C5, +0xC1C6,0xC1C7,0xC1C9,0xC1CA,0xC1CB,0xC1CD,0xC1CE,0xC1CF, +0xC1D0,0xC1D1,0xC1D2,0xC1D3,0xC1D5,0xC1D6,0xC1D9,0xC1DA, +0xC1DB,0xC1DC,0xC1DD,0xC1DE,0xC1DF,0xC1E1,0xC1E2,0xC1E3, +0xC1E5,0xC1E6,0xC1E7,0xC1E9,0xC1EA,0xC1EB,0xC1EC,0xC1ED, +0xC1EE,0xC1EF,0xC1F2,0xC1F4,0xC1F5,0xC1F6,0xC1F7,0xC1F8, +0xC1F9,0xC1FA,0xC1FB,0xC1FE,0xC1FF,0xC201,0xC202,0xC203, +0xC205,0xC206,0xC207,0xC208,0xC209,0xC20A,0xC20B,0xC20E, +0xC210,0xC212,0xC213,0xC214,0xC215,0xC216,0xC217,0xC21A, +0xC21B,0xC21D,0xC21E,0xC221,0xC222,0xC223, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC224,0xC225,0xC226,0xC227,0xC22A,0xC22C,0xC22E,0xC230, +0xC233,0xC235,0xC236,0xC237,0xC238,0xC239,0xC23A,0xC23B, +0xC23C,0xC23D,0xC23E,0xC23F,0xC240,0xC241,0xC242,0xC243, +0xC244,0xC245, 0, 0, 0, 0, 0, 0, +0xC246,0xC247,0xC249,0xC24A,0xC24B,0xC24C,0xC24D,0xC24E, +0xC24F,0xC252,0xC253,0xC255,0xC256,0xC257,0xC259,0xC25A, +0xC25B,0xC25C,0xC25D,0xC25E,0xC25F,0xC261,0xC262,0xC263, +0xC264,0xC266, 0, 0, 0, 0, 0, 0, +0xC267,0xC268,0xC269,0xC26A,0xC26B,0xC26E,0xC26F,0xC271, +0xC272,0xC273,0xC275,0xC276,0xC277,0xC278,0xC279,0xC27A, +0xC27B,0xC27E,0xC280,0xC282,0xC283,0xC284,0xC285,0xC286, +0xC287,0xC28A,0xC28B,0xC28C,0xC28D,0xC28E,0xC28F,0xC291, +0xC292,0xC293,0xC294,0xC295,0xC296,0xC297,0xC299,0xC29A, +0xC29C,0xC29E,0xC29F,0xC2A0,0xC2A1,0xC2A2,0xC2A3,0xC2A6, +0xC2A7,0xC2A9,0xC2AA,0xC2AB,0xC2AE,0xC2AF,0xC2B0,0xC2B1, +0xC2B2,0xC2B3,0xC2B6,0xC2B8,0xC2BA,0xC2BB,0xC2BC,0xC2BD, +0xC2BE,0xC2BF,0xC2C0,0xC2C1,0xC2C2,0xC2C3,0xC2C4,0xC2C5, +0xC2C6,0xC2C7,0xC2C8,0xC2C9,0xC2CA,0xC2CB,0xC2CC,0xC2CD, +0xC2CE,0xC2CF,0xC2D0,0xC2D1,0xC2D2,0xC2D3,0xC2D4,0xC2D5, +0xC2D6,0xC2D7,0xC2D8,0xC2D9,0xC2DA,0xC2DB,0xC2DE,0xC2DF, +0xC2E1,0xC2E2,0xC2E5,0xC2E6,0xC2E7,0xC2E8,0xC2E9,0xC2EA, +0xC2EE,0xC2F0,0xC2F2,0xC2F3,0xC2F4,0xC2F5,0xC2F7,0xC2FA, +0xC2FD,0xC2FE,0xC2FF,0xC301,0xC302,0xC303,0xC304,0xC305, +0xC306,0xC307,0xC30A,0xC30B,0xC30E,0xC30F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC310,0xC311,0xC312,0xC316,0xC317,0xC319,0xC31A,0xC31B, +0xC31D,0xC31E,0xC31F,0xC320,0xC321,0xC322,0xC323,0xC326, +0xC327,0xC32A,0xC32B,0xC32C,0xC32D,0xC32E,0xC32F,0xC330, +0xC331,0xC332, 0, 0, 0, 0, 0, 0, +0xC333,0xC334,0xC335,0xC336,0xC337,0xC338,0xC339,0xC33A, +0xC33B,0xC33C,0xC33D,0xC33E,0xC33F,0xC340,0xC341,0xC342, +0xC343,0xC344,0xC346,0xC347,0xC348,0xC349,0xC34A,0xC34B, +0xC34C,0xC34D, 0, 0, 0, 0, 0, 0, +0xC34E,0xC34F,0xC350,0xC351,0xC352,0xC353,0xC354,0xC355, +0xC356,0xC357,0xC358,0xC359,0xC35A,0xC35B,0xC35C,0xC35D, +0xC35E,0xC35F,0xC360,0xC361,0xC362,0xC363,0xC364,0xC365, +0xC366,0xC367,0xC36A,0xC36B,0xC36D,0xC36E,0xC36F,0xC371, +0xC373,0xC374,0xC375,0xC376,0xC377,0xC37A,0xC37B,0xC37E, +0xC37F,0xC380,0xC381,0xC382,0xC383,0xC385,0xC386,0xC387, +0xC389,0xC38A,0xC38B,0xC38D,0xC38E,0xC38F,0xC390,0xC391, +0xC392,0xC393,0xC394,0xC395,0xC396,0xC397,0xC398,0xC399, +0xC39A,0xC39B,0xC39C,0xC39D,0xC39E,0xC39F,0xC3A0,0xC3A1, +0xC3A2,0xC3A3,0xC3A4,0xC3A5,0xC3A6,0xC3A7,0xC3A8,0xC3A9, +0xC3AA,0xC3AB,0xC3AC,0xC3AD,0xC3AE,0xC3AF,0xC3B0,0xC3B1, +0xC3B2,0xC3B3,0xC3B4,0xC3B5,0xC3B6,0xC3B7,0xC3B8,0xC3B9, +0xC3BA,0xC3BB,0xC3BC,0xC3BD,0xC3BE,0xC3BF,0xC3C1,0xC3C2, +0xC3C3,0xC3C4,0xC3C5,0xC3C6,0xC3C7,0xC3C8,0xC3C9,0xC3CA, +0xC3CB,0xC3CC,0xC3CD,0xC3CE,0xC3CF,0xC3D0,0xC3D1,0xC3D2, +0xC3D3,0xC3D4,0xC3D5,0xC3D6,0xC3D7,0xC3DA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC3DB,0xC3DD,0xC3DE,0xC3E1,0xC3E3,0xC3E4,0xC3E5,0xC3E6, +0xC3E7,0xC3EA,0xC3EB,0xC3EC,0xC3EE,0xC3EF,0xC3F0,0xC3F1, +0xC3F2,0xC3F3,0xC3F6,0xC3F7,0xC3F9,0xC3FA,0xC3FB,0xC3FC, +0xC3FD,0xC3FE, 0, 0, 0, 0, 0, 0, +0xC3FF,0xC400,0xC401,0xC402,0xC403,0xC404,0xC405,0xC406, +0xC407,0xC409,0xC40A,0xC40B,0xC40C,0xC40D,0xC40E,0xC40F, +0xC411,0xC412,0xC413,0xC414,0xC415,0xC416,0xC417,0xC418, +0xC419,0xC41A, 0, 0, 0, 0, 0, 0, +0xC41B,0xC41C,0xC41D,0xC41E,0xC41F,0xC420,0xC421,0xC422, +0xC423,0xC425,0xC426,0xC427,0xC428,0xC429,0xC42A,0xC42B, +0xC42D,0xC42E,0xC42F,0xC431,0xC432,0xC433,0xC435,0xC436, +0xC437,0xC438,0xC439,0xC43A,0xC43B,0xC43E,0xC43F,0xC440, +0xC441,0xC442,0xC443,0xC444,0xC445,0xC446,0xC447,0xC449, +0xC44A,0xC44B,0xC44C,0xC44D,0xC44E,0xC44F,0xC450,0xC451, +0xC452,0xC453,0xC454,0xC455,0xC456,0xC457,0xC458,0xC459, +0xC45A,0xC45B,0xC45C,0xC45D,0xC45E,0xC45F,0xC460,0xC461, +0xC462,0xC463,0xC466,0xC467,0xC469,0xC46A,0xC46B,0xC46D, +0xC46E,0xC46F,0xC470,0xC471,0xC472,0xC473,0xC476,0xC477, +0xC478,0xC47A,0xC47B,0xC47C,0xC47D,0xC47E,0xC47F,0xC481, +0xC482,0xC483,0xC484,0xC485,0xC486,0xC487,0xC488,0xC489, +0xC48A,0xC48B,0xC48C,0xC48D,0xC48E,0xC48F,0xC490,0xC491, +0xC492,0xC493,0xC495,0xC496,0xC497,0xC498,0xC499,0xC49A, +0xC49B,0xC49D,0xC49E,0xC49F,0xC4A0,0xC4A1,0xC4A2,0xC4A3, +0xC4A4,0xC4A5,0xC4A6,0xC4A7,0xC4A8,0xC4A9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC4AA,0xC4AB,0xC4AC,0xC4AD,0xC4AE,0xC4AF,0xC4B0,0xC4B1, +0xC4B2,0xC4B3,0xC4B4,0xC4B5,0xC4B6,0xC4B7,0xC4B9,0xC4BA, +0xC4BB,0xC4BD,0xC4BE,0xC4BF,0xC4C0,0xC4C1,0xC4C2,0xC4C3, +0xC4C4,0xC4C5, 0, 0, 0, 0, 0, 0, +0xC4C6,0xC4C7,0xC4C8,0xC4C9,0xC4CA,0xC4CB,0xC4CC,0xC4CD, +0xC4CE,0xC4CF,0xC4D0,0xC4D1,0xC4D2,0xC4D3,0xC4D4,0xC4D5, +0xC4D6,0xC4D7,0xC4D8,0xC4D9,0xC4DA,0xC4DB,0xC4DC,0xC4DD, +0xC4DE,0xC4DF, 0, 0, 0, 0, 0, 0, +0xC4E0,0xC4E1,0xC4E2,0xC4E3,0xC4E4,0xC4E5,0xC4E6,0xC4E7, +0xC4E8,0xC4EA,0xC4EB,0xC4EC,0xC4ED,0xC4EE,0xC4EF,0xC4F2, +0xC4F3,0xC4F5,0xC4F6,0xC4F7,0xC4F9,0xC4FB,0xC4FC,0xC4FD, +0xC4FE,0xC502,0xC503,0xC504,0xC505,0xC506,0xC507,0xC508, +0xC509,0xC50A,0xC50B,0xC50D,0xC50E,0xC50F,0xC511,0xC512, +0xC513,0xC515,0xC516,0xC517,0xC518,0xC519,0xC51A,0xC51B, +0xC51D,0xC51E,0xC51F,0xC520,0xC521,0xC522,0xC523,0xC524, +0xC525,0xC526,0xC527,0xC52A,0xC52B,0xC52D,0xC52E,0xC52F, +0xC531,0xC532,0xC533,0xC534,0xC535,0xC536,0xC537,0xC53A, +0xC53C,0xC53E,0xC53F,0xC540,0xC541,0xC542,0xC543,0xC546, +0xC547,0xC54B,0xC54F,0xC550,0xC551,0xC552,0xC556,0xC55A, +0xC55B,0xC55C,0xC55F,0xC562,0xC563,0xC565,0xC566,0xC567, +0xC569,0xC56A,0xC56B,0xC56C,0xC56D,0xC56E,0xC56F,0xC572, +0xC576,0xC577,0xC578,0xC579,0xC57A,0xC57B,0xC57E,0xC57F, +0xC581,0xC582,0xC583,0xC585,0xC586,0xC588,0xC589,0xC58A, +0xC58B,0xC58E,0xC590,0xC592,0xC593,0xC594, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC596,0xC599,0xC59A,0xC59B,0xC59D,0xC59E,0xC59F,0xC5A1, +0xC5A2,0xC5A3,0xC5A4,0xC5A5,0xC5A6,0xC5A7,0xC5A8,0xC5AA, +0xC5AB,0xC5AC,0xC5AD,0xC5AE,0xC5AF,0xC5B0,0xC5B1,0xC5B2, +0xC5B3,0xC5B6, 0, 0, 0, 0, 0, 0, +0xC5B7,0xC5BA,0xC5BF,0xC5C0,0xC5C1,0xC5C2,0xC5C3,0xC5CB, +0xC5CD,0xC5CF,0xC5D2,0xC5D3,0xC5D5,0xC5D6,0xC5D7,0xC5D9, +0xC5DA,0xC5DB,0xC5DC,0xC5DD,0xC5DE,0xC5DF,0xC5E2,0xC5E4, +0xC5E6,0xC5E7, 0, 0, 0, 0, 0, 0, +0xC5E8,0xC5E9,0xC5EA,0xC5EB,0xC5EF,0xC5F1,0xC5F2,0xC5F3, +0xC5F5,0xC5F8,0xC5F9,0xC5FA,0xC5FB,0xC602,0xC603,0xC604, +0xC609,0xC60A,0xC60B,0xC60D,0xC60E,0xC60F,0xC611,0xC612, +0xC613,0xC614,0xC615,0xC616,0xC617,0xC61A,0xC61D,0xC61E, +0xC61F,0xC620,0xC621,0xC622,0xC623,0xC626,0xC627,0xC629, +0xC62A,0xC62B,0xC62F,0xC631,0xC632,0xC636,0xC638,0xC63A, +0xC63C,0xC63D,0xC63E,0xC63F,0xC642,0xC643,0xC645,0xC646, +0xC647,0xC649,0xC64A,0xC64B,0xC64C,0xC64D,0xC64E,0xC64F, +0xC652,0xC656,0xC657,0xC658,0xC659,0xC65A,0xC65B,0xC65E, +0xC65F,0xC661,0xC662,0xC663,0xC664,0xC665,0xC666,0xC667, +0xC668,0xC669,0xC66A,0xC66B,0xC66D,0xC66E,0xC670,0xC672, +0xC673,0xC674,0xC675,0xC676,0xC677,0xC67A,0xC67B,0xC67D, +0xC67E,0xC67F,0xC681,0xC682,0xC683,0xC684,0xC685,0xC686, +0xC687,0xC68A,0xC68C,0xC68E,0xC68F,0xC690,0xC691,0xC692, +0xC693,0xC696,0xC697,0xC699,0xC69A,0xC69B,0xC69D,0xC69E, +0xC69F,0xC6A0,0xC6A1,0xC6A2,0xC6A3,0xC6A6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC6A8,0xC6AA,0xC6AB,0xC6AC,0xC6AD,0xC6AE,0xC6AF,0xC6B2, +0xC6B3,0xC6B5,0xC6B6,0xC6B7,0xC6BB,0xC6BC,0xC6BD,0xC6BE, +0xC6BF,0xC6C2,0xC6C4,0xC6C6,0xC6C7,0xC6C8,0xC6C9,0xC6CA, +0xC6CB,0xC6CE, 0, 0, 0, 0, 0, 0, +0xC6CF,0xC6D1,0xC6D2,0xC6D3,0xC6D5,0xC6D6,0xC6D7,0xC6D8, +0xC6D9,0xC6DA,0xC6DB,0xC6DE,0xC6DF,0xC6E2,0xC6E3,0xC6E4, +0xC6E5,0xC6E6,0xC6E7,0xC6EA,0xC6EB,0xC6ED,0xC6EE,0xC6EF, +0xC6F1,0xC6F2, 0, 0, 0, 0, 0, 0, +0xC6F3,0xC6F4,0xC6F5,0xC6F6,0xC6F7,0xC6FA,0xC6FB,0xC6FC, +0xC6FE,0xC6FF,0xC700,0xC701,0xC702,0xC703,0xC706,0xC707, +0xC709,0xC70A,0xC70B,0xC70D,0xC70E,0xC70F,0xC710,0xC711, +0xC712,0xC713,0xC716,0xC718,0xC71A,0xC71B,0xC71C,0xC71D, +0xC71E,0xC71F,0xC722,0xC723,0xC725,0xC726,0xC727,0xC729, +0xC72A,0xC72B,0xC72C,0xC72D,0xC72E,0xC72F,0xC732,0xC734, +0xC736,0xC738,0xC739,0xC73A,0xC73B,0xC73E,0xC73F,0xC741, +0xC742,0xC743,0xC745,0xC746,0xC747,0xC748,0xC749,0xC74B, +0xC74E,0xC750,0xC759,0xC75A,0xC75B,0xC75D,0xC75E,0xC75F, +0xC761,0xC762,0xC763,0xC764,0xC765,0xC766,0xC767,0xC769, +0xC76A,0xC76C,0xC76D,0xC76E,0xC76F,0xC770,0xC771,0xC772, +0xC773,0xC776,0xC777,0xC779,0xC77A,0xC77B,0xC77F,0xC780, +0xC781,0xC782,0xC786,0xC78B,0xC78C,0xC78D,0xC78F,0xC792, +0xC793,0xC795,0xC799,0xC79B,0xC79C,0xC79D,0xC79E,0xC79F, +0xC7A2,0xC7A7,0xC7A8,0xC7A9,0xC7AA,0xC7AB,0xC7AE,0xC7AF, +0xC7B1,0xC7B2,0xC7B3,0xC7B5,0xC7B6,0xC7B7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC7B8,0xC7B9,0xC7BA,0xC7BB,0xC7BE,0xC7C2,0xC7C3,0xC7C4, +0xC7C5,0xC7C6,0xC7C7,0xC7CA,0xC7CB,0xC7CD,0xC7CF,0xC7D1, +0xC7D2,0xC7D3,0xC7D4,0xC7D5,0xC7D6,0xC7D7,0xC7D9,0xC7DA, +0xC7DB,0xC7DC, 0, 0, 0, 0, 0, 0, +0xC7DE,0xC7DF,0xC7E0,0xC7E1,0xC7E2,0xC7E3,0xC7E5,0xC7E6, +0xC7E7,0xC7E9,0xC7EA,0xC7EB,0xC7ED,0xC7EE,0xC7EF,0xC7F0, +0xC7F1,0xC7F2,0xC7F3,0xC7F4,0xC7F5,0xC7F6,0xC7F7,0xC7F8, +0xC7F9,0xC7FA, 0, 0, 0, 0, 0, 0, +0xC7FB,0xC7FC,0xC7FD,0xC7FE,0xC7FF,0xC802,0xC803,0xC805, +0xC806,0xC807,0xC809,0xC80B,0xC80C,0xC80D,0xC80E,0xC80F, +0xC812,0xC814,0xC817,0xC818,0xC819,0xC81A,0xC81B,0xC81E, +0xC81F,0xC821,0xC822,0xC823,0xC825,0xC826,0xC827,0xC828, +0xC829,0xC82A,0xC82B,0xC82E,0xC830,0xC832,0xC833,0xC834, +0xC835,0xC836,0xC837,0xC839,0xC83A,0xC83B,0xC83D,0xC83E, +0xC83F,0xC841,0xC842,0xC843,0xC844,0xC845,0xC846,0xC847, +0xC84A,0xC84B,0xC84E,0xC84F,0xC850,0xC851,0xC852,0xC853, +0xC855,0xC856,0xC857,0xC858,0xC859,0xC85A,0xC85B,0xC85C, +0xC85D,0xC85E,0xC85F,0xC860,0xC861,0xC862,0xC863,0xC864, +0xC865,0xC866,0xC867,0xC868,0xC869,0xC86A,0xC86B,0xC86C, +0xC86D,0xC86E,0xC86F,0xC872,0xC873,0xC875,0xC876,0xC877, +0xC879,0xC87B,0xC87C,0xC87D,0xC87E,0xC87F,0xC882,0xC884, +0xC888,0xC889,0xC88A,0xC88E,0xC88F,0xC890,0xC891,0xC892, +0xC893,0xC895,0xC896,0xC897,0xC898,0xC899,0xC89A,0xC89B, +0xC89C,0xC89E,0xC8A0,0xC8A2,0xC8A3,0xC8A4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC8A5,0xC8A6,0xC8A7,0xC8A9,0xC8AA,0xC8AB,0xC8AC,0xC8AD, +0xC8AE,0xC8AF,0xC8B0,0xC8B1,0xC8B2,0xC8B3,0xC8B4,0xC8B5, +0xC8B6,0xC8B7,0xC8B8,0xC8B9,0xC8BA,0xC8BB,0xC8BE,0xC8BF, +0xC8C0,0xC8C1, 0, 0, 0, 0, 0, 0, +0xC8C2,0xC8C3,0xC8C5,0xC8C6,0xC8C7,0xC8C9,0xC8CA,0xC8CB, +0xC8CD,0xC8CE,0xC8CF,0xC8D0,0xC8D1,0xC8D2,0xC8D3,0xC8D6, +0xC8D8,0xC8DA,0xC8DB,0xC8DC,0xC8DD,0xC8DE,0xC8DF,0xC8E2, +0xC8E3,0xC8E5, 0, 0, 0, 0, 0, 0, +0xC8E6,0xC8E7,0xC8E8,0xC8E9,0xC8EA,0xC8EB,0xC8EC,0xC8ED, +0xC8EE,0xC8EF,0xC8F0,0xC8F1,0xC8F2,0xC8F3,0xC8F4,0xC8F6, +0xC8F7,0xC8F8,0xC8F9,0xC8FA,0xC8FB,0xC8FE,0xC8FF,0xC901, +0xC902,0xC903,0xC907,0xC908,0xC909,0xC90A,0xC90B,0xC90E, +0x3000,0x3001,0x3002,0x00B7,0x2025,0x2026,0x00A8,0x3003, +0x00AD,0x2015,0x2225,0xFF3C,0x223C,0x2018,0x2019,0x201C, +0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C, +0x300D,0x300E,0x300F,0x3010,0x3011,0x00B1,0x00D7,0x00F7, +0x2260,0x2264,0x2265,0x221E,0x2234,0x00B0,0x2032,0x2033, +0x2103,0x212B,0xFFE0,0xFFE1,0xFFE5,0x2642,0x2640,0x2220, +0x22A5,0x2312,0x2202,0x2207,0x2261,0x2252,0x00A7,0x203B, +0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7,0x25C6,0x25A1, +0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x2192,0x2190,0x2191, +0x2193,0x2194,0x3013,0x226A,0x226B,0x221A,0x223D,0x221D, +0x2235,0x222B,0x222C,0x2208,0x220B,0x2286,0x2287,0x2282, +0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC910,0xC912,0xC913,0xC914,0xC915,0xC916,0xC917,0xC919, +0xC91A,0xC91B,0xC91C,0xC91D,0xC91E,0xC91F,0xC920,0xC921, +0xC922,0xC923,0xC924,0xC925,0xC926,0xC927,0xC928,0xC929, +0xC92A,0xC92B, 0, 0, 0, 0, 0, 0, +0xC92D,0xC92E,0xC92F,0xC930,0xC931,0xC932,0xC933,0xC935, +0xC936,0xC937,0xC938,0xC939,0xC93A,0xC93B,0xC93C,0xC93D, +0xC93E,0xC93F,0xC940,0xC941,0xC942,0xC943,0xC944,0xC945, +0xC946,0xC947, 0, 0, 0, 0, 0, 0, +0xC948,0xC949,0xC94A,0xC94B,0xC94C,0xC94D,0xC94E,0xC94F, +0xC952,0xC953,0xC955,0xC956,0xC957,0xC959,0xC95A,0xC95B, +0xC95C,0xC95D,0xC95E,0xC95F,0xC962,0xC964,0xC965,0xC966, +0xC967,0xC968,0xC969,0xC96A,0xC96B,0xC96D,0xC96E,0xC96F, +0x21D2,0x21D4,0x2200,0x2203,0x00B4,0xFF5E,0x02C7,0x02D8, +0x02DD,0x02DA,0x02D9,0x00B8,0x02DB,0x00A1,0x00BF,0x02D0, +0x222E,0x2211,0x220F,0x00A4,0x2109,0x2030,0x25C1,0x25C0, +0x25B7,0x25B6,0x2664,0x2660,0x2661,0x2665,0x2667,0x2663, +0x2299,0x25C8,0x25A3,0x25D0,0x25D1,0x2592,0x25A4,0x25A5, +0x25A8,0x25A7,0x25A6,0x25A9,0x2668,0x260F,0x260E,0x261C, +0x261E,0x00B6,0x2020,0x2021,0x2195,0x2197,0x2199,0x2196, +0x2198,0x266D,0x2669,0x266A,0x266C,0x327F,0x321C,0x2116, +0x33C7,0x2122,0x33C2,0x33D8,0x2121,0x20AC,0x00AE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC971,0xC972,0xC973,0xC975,0xC976,0xC977,0xC978,0xC979, +0xC97A,0xC97B,0xC97D,0xC97E,0xC97F,0xC980,0xC981,0xC982, +0xC983,0xC984,0xC985,0xC986,0xC987,0xC98A,0xC98B,0xC98D, +0xC98E,0xC98F, 0, 0, 0, 0, 0, 0, +0xC991,0xC992,0xC993,0xC994,0xC995,0xC996,0xC997,0xC99A, +0xC99C,0xC99E,0xC99F,0xC9A0,0xC9A1,0xC9A2,0xC9A3,0xC9A4, +0xC9A5,0xC9A6,0xC9A7,0xC9A8,0xC9A9,0xC9AA,0xC9AB,0xC9AC, +0xC9AD,0xC9AE, 0, 0, 0, 0, 0, 0, +0xC9AF,0xC9B0,0xC9B1,0xC9B2,0xC9B3,0xC9B4,0xC9B5,0xC9B6, +0xC9B7,0xC9B8,0xC9B9,0xC9BA,0xC9BB,0xC9BC,0xC9BD,0xC9BE, +0xC9BF,0xC9C2,0xC9C3,0xC9C5,0xC9C6,0xC9C9,0xC9CB,0xC9CC, +0xC9CD,0xC9CE,0xC9CF,0xC9D2,0xC9D4,0xC9D7,0xC9D8,0xC9DB, +0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06,0xFF07,0xFF08, +0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,0xFF10, +0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, +0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,0xFF20, +0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, +0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, +0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, +0xFF39,0xFF3A,0xFF3B,0xFFE6,0xFF3D,0xFF3E,0xFF3F,0xFF40, +0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, +0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, +0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58, +0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xC9DE,0xC9DF,0xC9E1,0xC9E3,0xC9E5,0xC9E6,0xC9E8,0xC9E9, +0xC9EA,0xC9EB,0xC9EE,0xC9F2,0xC9F3,0xC9F4,0xC9F5,0xC9F6, +0xC9F7,0xC9FA,0xC9FB,0xC9FD,0xC9FE,0xC9FF,0xCA01,0xCA02, +0xCA03,0xCA04, 0, 0, 0, 0, 0, 0, +0xCA05,0xCA06,0xCA07,0xCA0A,0xCA0E,0xCA0F,0xCA10,0xCA11, +0xCA12,0xCA13,0xCA15,0xCA16,0xCA17,0xCA19,0xCA1A,0xCA1B, +0xCA1C,0xCA1D,0xCA1E,0xCA1F,0xCA20,0xCA21,0xCA22,0xCA23, +0xCA24,0xCA25, 0, 0, 0, 0, 0, 0, +0xCA26,0xCA27,0xCA28,0xCA2A,0xCA2B,0xCA2C,0xCA2D,0xCA2E, +0xCA2F,0xCA30,0xCA31,0xCA32,0xCA33,0xCA34,0xCA35,0xCA36, +0xCA37,0xCA38,0xCA39,0xCA3A,0xCA3B,0xCA3C,0xCA3D,0xCA3E, +0xCA3F,0xCA40,0xCA41,0xCA42,0xCA43,0xCA44,0xCA45,0xCA46, +0x3131,0x3132,0x3133,0x3134,0x3135,0x3136,0x3137,0x3138, +0x3139,0x313A,0x313B,0x313C,0x313D,0x313E,0x313F,0x3140, +0x3141,0x3142,0x3143,0x3144,0x3145,0x3146,0x3147,0x3148, +0x3149,0x314A,0x314B,0x314C,0x314D,0x314E,0x314F,0x3150, +0x3151,0x3152,0x3153,0x3154,0x3155,0x3156,0x3157,0x3158, +0x3159,0x315A,0x315B,0x315C,0x315D,0x315E,0x315F,0x3160, +0x3161,0x3162,0x3163,0x3164,0x3165,0x3166,0x3167,0x3168, +0x3169,0x316A,0x316B,0x316C,0x316D,0x316E,0x316F,0x3170, +0x3171,0x3172,0x3173,0x3174,0x3175,0x3176,0x3177,0x3178, +0x3179,0x317A,0x317B,0x317C,0x317D,0x317E,0x317F,0x3180, +0x3181,0x3182,0x3183,0x3184,0x3185,0x3186,0x3187,0x3188, +0x3189,0x318A,0x318B,0x318C,0x318D,0x318E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCA47,0xCA48,0xCA49,0xCA4A,0xCA4B,0xCA4E,0xCA4F,0xCA51, +0xCA52,0xCA53,0xCA55,0xCA56,0xCA57,0xCA58,0xCA59,0xCA5A, +0xCA5B,0xCA5E,0xCA62,0xCA63,0xCA64,0xCA65,0xCA66,0xCA67, +0xCA69,0xCA6A, 0, 0, 0, 0, 0, 0, +0xCA6B,0xCA6C,0xCA6D,0xCA6E,0xCA6F,0xCA70,0xCA71,0xCA72, +0xCA73,0xCA74,0xCA75,0xCA76,0xCA77,0xCA78,0xCA79,0xCA7A, +0xCA7B,0xCA7C,0xCA7E,0xCA7F,0xCA80,0xCA81,0xCA82,0xCA83, +0xCA85,0xCA86, 0, 0, 0, 0, 0, 0, +0xCA87,0xCA88,0xCA89,0xCA8A,0xCA8B,0xCA8C,0xCA8D,0xCA8E, +0xCA8F,0xCA90,0xCA91,0xCA92,0xCA93,0xCA94,0xCA95,0xCA96, +0xCA97,0xCA99,0xCA9A,0xCA9B,0xCA9C,0xCA9D,0xCA9E,0xCA9F, +0xCAA0,0xCAA1,0xCAA2,0xCAA3,0xCAA4,0xCAA5,0xCAA6,0xCAA7, +0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177, +0x2178,0x2179, 0, 0, 0, 0, 0,0x2160, +0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168, +0x2169, 0, 0, 0, 0, 0, 0, 0, +0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, +0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0, +0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9, + 0, 0, 0, 0, 0, 0, 0, 0, +0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8, +0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0, +0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCAA8,0xCAA9,0xCAAA,0xCAAB,0xCAAC,0xCAAD,0xCAAE,0xCAAF, +0xCAB0,0xCAB1,0xCAB2,0xCAB3,0xCAB4,0xCAB5,0xCAB6,0xCAB7, +0xCAB8,0xCAB9,0xCABA,0xCABB,0xCABE,0xCABF,0xCAC1,0xCAC2, +0xCAC3,0xCAC5, 0, 0, 0, 0, 0, 0, +0xCAC6,0xCAC7,0xCAC8,0xCAC9,0xCACA,0xCACB,0xCACE,0xCAD0, +0xCAD2,0xCAD4,0xCAD5,0xCAD6,0xCAD7,0xCADA,0xCADB,0xCADC, +0xCADD,0xCADE,0xCADF,0xCAE1,0xCAE2,0xCAE3,0xCAE4,0xCAE5, +0xCAE6,0xCAE7, 0, 0, 0, 0, 0, 0, +0xCAE8,0xCAE9,0xCAEA,0xCAEB,0xCAED,0xCAEE,0xCAEF,0xCAF0, +0xCAF1,0xCAF2,0xCAF3,0xCAF5,0xCAF6,0xCAF7,0xCAF8,0xCAF9, +0xCAFA,0xCAFB,0xCAFC,0xCAFD,0xCAFE,0xCAFF,0xCB00,0xCB01, +0xCB02,0xCB03,0xCB04,0xCB05,0xCB06,0xCB07,0xCB09,0xCB0A, +0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,0x252C, +0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,0x251B, +0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,0x252F, +0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542, +0x2512,0x2511,0x251A,0x2519,0x2516,0x2515,0x250E,0x250D, +0x251E,0x251F,0x2521,0x2522,0x2526,0x2527,0x2529,0x252A, +0x252D,0x252E,0x2531,0x2532,0x2535,0x2536,0x2539,0x253A, +0x253D,0x253E,0x2540,0x2541,0x2543,0x2544,0x2545,0x2546, +0x2547,0x2548,0x2549,0x254A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCB0B,0xCB0C,0xCB0D,0xCB0E,0xCB0F,0xCB11,0xCB12,0xCB13, +0xCB15,0xCB16,0xCB17,0xCB19,0xCB1A,0xCB1B,0xCB1C,0xCB1D, +0xCB1E,0xCB1F,0xCB22,0xCB23,0xCB24,0xCB25,0xCB26,0xCB27, +0xCB28,0xCB29, 0, 0, 0, 0, 0, 0, +0xCB2A,0xCB2B,0xCB2C,0xCB2D,0xCB2E,0xCB2F,0xCB30,0xCB31, +0xCB32,0xCB33,0xCB34,0xCB35,0xCB36,0xCB37,0xCB38,0xCB39, +0xCB3A,0xCB3B,0xCB3C,0xCB3D,0xCB3E,0xCB3F,0xCB40,0xCB42, +0xCB43,0xCB44, 0, 0, 0, 0, 0, 0, +0xCB45,0xCB46,0xCB47,0xCB4A,0xCB4B,0xCB4D,0xCB4E,0xCB4F, +0xCB51,0xCB52,0xCB53,0xCB54,0xCB55,0xCB56,0xCB57,0xCB5A, +0xCB5B,0xCB5C,0xCB5E,0xCB5F,0xCB60,0xCB61,0xCB62,0xCB63, +0xCB65,0xCB66,0xCB67,0xCB68,0xCB69,0xCB6A,0xCB6B,0xCB6C, +0x3395,0x3396,0x3397,0x2113,0x3398,0x33C4,0x33A3,0x33A4, +0x33A5,0x33A6,0x3399,0x339A,0x339B,0x339C,0x339D,0x339E, +0x339F,0x33A0,0x33A1,0x33A2,0x33CA,0x338D,0x338E,0x338F, +0x33CF,0x3388,0x3389,0x33C8,0x33A7,0x33A8,0x33B0,0x33B1, +0x33B2,0x33B3,0x33B4,0x33B5,0x33B6,0x33B7,0x33B8,0x33B9, +0x3380,0x3381,0x3382,0x3383,0x3384,0x33BA,0x33BB,0x33BC, +0x33BD,0x33BE,0x33BF,0x3390,0x3391,0x3392,0x3393,0x3394, +0x2126,0x33C0,0x33C1,0x338A,0x338B,0x338C,0x33D6,0x33C5, +0x33AD,0x33AE,0x33AF,0x33DB,0x33A9,0x33AA,0x33AB,0x33AC, +0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCB6D,0xCB6E,0xCB6F,0xCB70,0xCB71,0xCB72,0xCB73,0xCB74, +0xCB75,0xCB76,0xCB77,0xCB7A,0xCB7B,0xCB7C,0xCB7D,0xCB7E, +0xCB7F,0xCB80,0xCB81,0xCB82,0xCB83,0xCB84,0xCB85,0xCB86, +0xCB87,0xCB88, 0, 0, 0, 0, 0, 0, +0xCB89,0xCB8A,0xCB8B,0xCB8C,0xCB8D,0xCB8E,0xCB8F,0xCB90, +0xCB91,0xCB92,0xCB93,0xCB94,0xCB95,0xCB96,0xCB97,0xCB98, +0xCB99,0xCB9A,0xCB9B,0xCB9D,0xCB9E,0xCB9F,0xCBA0,0xCBA1, +0xCBA2,0xCBA3, 0, 0, 0, 0, 0, 0, +0xCBA4,0xCBA5,0xCBA6,0xCBA7,0xCBA8,0xCBA9,0xCBAA,0xCBAB, +0xCBAC,0xCBAD,0xCBAE,0xCBAF,0xCBB0,0xCBB1,0xCBB2,0xCBB3, +0xCBB4,0xCBB5,0xCBB6,0xCBB7,0xCBB9,0xCBBA,0xCBBB,0xCBBC, +0xCBBD,0xCBBE,0xCBBF,0xCBC0,0xCBC1,0xCBC2,0xCBC3,0xCBC4, +0x00C6,0x00D0,0x00AA,0x0126, 0,0x0132, 0,0x013F, +0x0141,0x00D8,0x0152,0x00BA,0x00DE,0x0166,0x014A, 0, +0x3260,0x3261,0x3262,0x3263,0x3264,0x3265,0x3266,0x3267, +0x3268,0x3269,0x326A,0x326B,0x326C,0x326D,0x326E,0x326F, +0x3270,0x3271,0x3272,0x3273,0x3274,0x3275,0x3276,0x3277, +0x3278,0x3279,0x327A,0x327B,0x24D0,0x24D1,0x24D2,0x24D3, +0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,0x24DA,0x24DB, +0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,0x24E3, +0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,0x2460,0x2461, +0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469, +0x246A,0x246B,0x246C,0x246D,0x246E,0x00BD,0x2153,0x2154, +0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCBC5,0xCBC6,0xCBC7,0xCBC8,0xCBC9,0xCBCA,0xCBCB,0xCBCC, +0xCBCD,0xCBCE,0xCBCF,0xCBD0,0xCBD1,0xCBD2,0xCBD3,0xCBD5, +0xCBD6,0xCBD7,0xCBD8,0xCBD9,0xCBDA,0xCBDB,0xCBDC,0xCBDD, +0xCBDE,0xCBDF, 0, 0, 0, 0, 0, 0, +0xCBE0,0xCBE1,0xCBE2,0xCBE3,0xCBE5,0xCBE6,0xCBE8,0xCBEA, +0xCBEB,0xCBEC,0xCBED,0xCBEE,0xCBEF,0xCBF0,0xCBF1,0xCBF2, +0xCBF3,0xCBF4,0xCBF5,0xCBF6,0xCBF7,0xCBF8,0xCBF9,0xCBFA, +0xCBFB,0xCBFC, 0, 0, 0, 0, 0, 0, +0xCBFD,0xCBFE,0xCBFF,0xCC00,0xCC01,0xCC02,0xCC03,0xCC04, +0xCC05,0xCC06,0xCC07,0xCC08,0xCC09,0xCC0A,0xCC0B,0xCC0E, +0xCC0F,0xCC11,0xCC12,0xCC13,0xCC15,0xCC16,0xCC17,0xCC18, +0xCC19,0xCC1A,0xCC1B,0xCC1E,0xCC1F,0xCC20,0xCC23,0xCC24, +0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138,0x0140, +0x0142,0x00F8,0x0153,0x00DF,0x00FE,0x0167,0x014B,0x0149, +0x3200,0x3201,0x3202,0x3203,0x3204,0x3205,0x3206,0x3207, +0x3208,0x3209,0x320A,0x320B,0x320C,0x320D,0x320E,0x320F, +0x3210,0x3211,0x3212,0x3213,0x3214,0x3215,0x3216,0x3217, +0x3218,0x3219,0x321A,0x321B,0x249C,0x249D,0x249E,0x249F, +0x24A0,0x24A1,0x24A2,0x24A3,0x24A4,0x24A5,0x24A6,0x24A7, +0x24A8,0x24A9,0x24AA,0x24AB,0x24AC,0x24AD,0x24AE,0x24AF, +0x24B0,0x24B1,0x24B2,0x24B3,0x24B4,0x24B5,0x2474,0x2475, +0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,0x247D, +0x247E,0x247F,0x2480,0x2481,0x2482,0x00B9,0x00B2,0x00B3, +0x2074,0x207F,0x2081,0x2082,0x2083,0x2084, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCC25,0xCC26,0xCC2A,0xCC2B,0xCC2D,0xCC2F,0xCC31,0xCC32, +0xCC33,0xCC34,0xCC35,0xCC36,0xCC37,0xCC3A,0xCC3F,0xCC40, +0xCC41,0xCC42,0xCC43,0xCC46,0xCC47,0xCC49,0xCC4A,0xCC4B, +0xCC4D,0xCC4E, 0, 0, 0, 0, 0, 0, +0xCC4F,0xCC50,0xCC51,0xCC52,0xCC53,0xCC56,0xCC5A,0xCC5B, +0xCC5C,0xCC5D,0xCC5E,0xCC5F,0xCC61,0xCC62,0xCC63,0xCC65, +0xCC67,0xCC69,0xCC6A,0xCC6B,0xCC6C,0xCC6D,0xCC6E,0xCC6F, +0xCC71,0xCC72, 0, 0, 0, 0, 0, 0, +0xCC73,0xCC74,0xCC76,0xCC77,0xCC78,0xCC79,0xCC7A,0xCC7B, +0xCC7C,0xCC7D,0xCC7E,0xCC7F,0xCC80,0xCC81,0xCC82,0xCC83, +0xCC84,0xCC85,0xCC86,0xCC87,0xCC88,0xCC89,0xCC8A,0xCC8B, +0xCC8C,0xCC8D,0xCC8E,0xCC8F,0xCC90,0xCC91,0xCC92,0xCC93, +0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048, +0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050, +0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058, +0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060, +0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068, +0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070, +0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078, +0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080, +0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088, +0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090, +0x3091,0x3092,0x3093, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCC94,0xCC95,0xCC96,0xCC97,0xCC9A,0xCC9B,0xCC9D,0xCC9E, +0xCC9F,0xCCA1,0xCCA2,0xCCA3,0xCCA4,0xCCA5,0xCCA6,0xCCA7, +0xCCAA,0xCCAE,0xCCAF,0xCCB0,0xCCB1,0xCCB2,0xCCB3,0xCCB6, +0xCCB7,0xCCB9, 0, 0, 0, 0, 0, 0, +0xCCBA,0xCCBB,0xCCBD,0xCCBE,0xCCBF,0xCCC0,0xCCC1,0xCCC2, +0xCCC3,0xCCC6,0xCCC8,0xCCCA,0xCCCB,0xCCCC,0xCCCD,0xCCCE, +0xCCCF,0xCCD1,0xCCD2,0xCCD3,0xCCD5,0xCCD6,0xCCD7,0xCCD8, +0xCCD9,0xCCDA, 0, 0, 0, 0, 0, 0, +0xCCDB,0xCCDC,0xCCDD,0xCCDE,0xCCDF,0xCCE0,0xCCE1,0xCCE2, +0xCCE3,0xCCE5,0xCCE6,0xCCE7,0xCCE8,0xCCE9,0xCCEA,0xCCEB, +0xCCED,0xCCEE,0xCCEF,0xCCF1,0xCCF2,0xCCF3,0xCCF4,0xCCF5, +0xCCF6,0xCCF7,0xCCF8,0xCCF9,0xCCFA,0xCCFB,0xCCFC,0xCCFD, +0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8, +0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0, +0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8, +0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0, +0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8, +0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0, +0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8, +0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0, +0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8, +0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0, +0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCCFE,0xCCFF,0xCD00,0xCD02,0xCD03,0xCD04,0xCD05,0xCD06, +0xCD07,0xCD0A,0xCD0B,0xCD0D,0xCD0E,0xCD0F,0xCD11,0xCD12, +0xCD13,0xCD14,0xCD15,0xCD16,0xCD17,0xCD1A,0xCD1C,0xCD1E, +0xCD1F,0xCD20, 0, 0, 0, 0, 0, 0, +0xCD21,0xCD22,0xCD23,0xCD25,0xCD26,0xCD27,0xCD29,0xCD2A, +0xCD2B,0xCD2D,0xCD2E,0xCD2F,0xCD30,0xCD31,0xCD32,0xCD33, +0xCD34,0xCD35,0xCD36,0xCD37,0xCD38,0xCD3A,0xCD3B,0xCD3C, +0xCD3D,0xCD3E, 0, 0, 0, 0, 0, 0, +0xCD3F,0xCD40,0xCD41,0xCD42,0xCD43,0xCD44,0xCD45,0xCD46, +0xCD47,0xCD48,0xCD49,0xCD4A,0xCD4B,0xCD4C,0xCD4D,0xCD4E, +0xCD4F,0xCD50,0xCD51,0xCD52,0xCD53,0xCD54,0xCD55,0xCD56, +0xCD57,0xCD58,0xCD59,0xCD5A,0xCD5B,0xCD5D,0xCD5E,0xCD5F, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416, +0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426, +0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E, +0x042F, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, +0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, +0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, +0x044F, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCD61,0xCD62,0xCD63,0xCD65,0xCD66,0xCD67,0xCD68,0xCD69, +0xCD6A,0xCD6B,0xCD6E,0xCD70,0xCD72,0xCD73,0xCD74,0xCD75, +0xCD76,0xCD77,0xCD79,0xCD7A,0xCD7B,0xCD7C,0xCD7D,0xCD7E, +0xCD7F,0xCD80, 0, 0, 0, 0, 0, 0, +0xCD81,0xCD82,0xCD83,0xCD84,0xCD85,0xCD86,0xCD87,0xCD89, +0xCD8A,0xCD8B,0xCD8C,0xCD8D,0xCD8E,0xCD8F,0xCD90,0xCD91, +0xCD92,0xCD93,0xCD96,0xCD97,0xCD99,0xCD9A,0xCD9B,0xCD9D, +0xCD9E,0xCD9F, 0, 0, 0, 0, 0, 0, +0xCDA0,0xCDA1,0xCDA2,0xCDA3,0xCDA6,0xCDA8,0xCDAA,0xCDAB, +0xCDAC,0xCDAD,0xCDAE,0xCDAF,0xCDB1,0xCDB2,0xCDB3,0xCDB4, +0xCDB5,0xCDB6,0xCDB7,0xCDB8,0xCDB9,0xCDBA,0xCDBB,0xCDBC, +0xCDBD,0xCDBE,0xCDBF,0xCDC0,0xCDC1,0xCDC2,0xCDC3,0xCDC5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCDC6,0xCDC7,0xCDC8,0xCDC9,0xCDCA,0xCDCB,0xCDCD,0xCDCE, +0xCDCF,0xCDD1,0xCDD2,0xCDD3,0xCDD4,0xCDD5,0xCDD6,0xCDD7, +0xCDD8,0xCDD9,0xCDDA,0xCDDB,0xCDDC,0xCDDD,0xCDDE,0xCDDF, +0xCDE0,0xCDE1, 0, 0, 0, 0, 0, 0, +0xCDE2,0xCDE3,0xCDE4,0xCDE5,0xCDE6,0xCDE7,0xCDE9,0xCDEA, +0xCDEB,0xCDED,0xCDEE,0xCDEF,0xCDF1,0xCDF2,0xCDF3,0xCDF4, +0xCDF5,0xCDF6,0xCDF7,0xCDFA,0xCDFC,0xCDFE,0xCDFF,0xCE00, +0xCE01,0xCE02, 0, 0, 0, 0, 0, 0, +0xCE03,0xCE05,0xCE06,0xCE07,0xCE09,0xCE0A,0xCE0B,0xCE0D, +0xCE0E,0xCE0F,0xCE10,0xCE11,0xCE12,0xCE13,0xCE15,0xCE16, +0xCE17,0xCE18,0xCE1A,0xCE1B,0xCE1C,0xCE1D,0xCE1E,0xCE1F, +0xCE22,0xCE23,0xCE25,0xCE26,0xCE27,0xCE29,0xCE2A,0xCE2B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCE2C,0xCE2D,0xCE2E,0xCE2F,0xCE32,0xCE34,0xCE36,0xCE37, +0xCE38,0xCE39,0xCE3A,0xCE3B,0xCE3C,0xCE3D,0xCE3E,0xCE3F, +0xCE40,0xCE41,0xCE42,0xCE43,0xCE44,0xCE45,0xCE46,0xCE47, +0xCE48,0xCE49, 0, 0, 0, 0, 0, 0, +0xCE4A,0xCE4B,0xCE4C,0xCE4D,0xCE4E,0xCE4F,0xCE50,0xCE51, +0xCE52,0xCE53,0xCE54,0xCE55,0xCE56,0xCE57,0xCE5A,0xCE5B, +0xCE5D,0xCE5E,0xCE62,0xCE63,0xCE64,0xCE65,0xCE66,0xCE67, +0xCE6A,0xCE6C, 0, 0, 0, 0, 0, 0, +0xCE6E,0xCE6F,0xCE70,0xCE71,0xCE72,0xCE73,0xCE76,0xCE77, +0xCE79,0xCE7A,0xCE7B,0xCE7D,0xCE7E,0xCE7F,0xCE80,0xCE81, +0xCE82,0xCE83,0xCE86,0xCE88,0xCE8A,0xCE8B,0xCE8C,0xCE8D, +0xCE8E,0xCE8F,0xCE92,0xCE93,0xCE95,0xCE96,0xCE97,0xCE99, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCE9A,0xCE9B,0xCE9C,0xCE9D,0xCE9E,0xCE9F,0xCEA2,0xCEA6, +0xCEA7,0xCEA8,0xCEA9,0xCEAA,0xCEAB,0xCEAE,0xCEAF,0xCEB0, +0xCEB1,0xCEB2,0xCEB3,0xCEB4,0xCEB5,0xCEB6,0xCEB7,0xCEB8, +0xCEB9,0xCEBA, 0, 0, 0, 0, 0, 0, +0xCEBB,0xCEBC,0xCEBD,0xCEBE,0xCEBF,0xCEC0,0xCEC2,0xCEC3, +0xCEC4,0xCEC5,0xCEC6,0xCEC7,0xCEC8,0xCEC9,0xCECA,0xCECB, +0xCECC,0xCECD,0xCECE,0xCECF,0xCED0,0xCED1,0xCED2,0xCED3, +0xCED4,0xCED5, 0, 0, 0, 0, 0, 0, +0xCED6,0xCED7,0xCED8,0xCED9,0xCEDA,0xCEDB,0xCEDC,0xCEDD, +0xCEDE,0xCEDF,0xCEE0,0xCEE1,0xCEE2,0xCEE3,0xCEE6,0xCEE7, +0xCEE9,0xCEEA,0xCEED,0xCEEE,0xCEEF,0xCEF0,0xCEF1,0xCEF2, +0xCEF3,0xCEF6,0xCEFA,0xCEFB,0xCEFC,0xCEFD,0xCEFE,0xCEFF, +0xAC00,0xAC01,0xAC04,0xAC07,0xAC08,0xAC09,0xAC0A,0xAC10, +0xAC11,0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC19, +0xAC1A,0xAC1B,0xAC1C,0xAC1D,0xAC20,0xAC24,0xAC2C,0xAC2D, +0xAC2F,0xAC30,0xAC31,0xAC38,0xAC39,0xAC3C,0xAC40,0xAC4B, +0xAC4D,0xAC54,0xAC58,0xAC5C,0xAC70,0xAC71,0xAC74,0xAC77, +0xAC78,0xAC7A,0xAC80,0xAC81,0xAC83,0xAC84,0xAC85,0xAC86, +0xAC89,0xAC8A,0xAC8B,0xAC8C,0xAC90,0xAC94,0xAC9C,0xAC9D, +0xAC9F,0xACA0,0xACA1,0xACA8,0xACA9,0xACAA,0xACAC,0xACAF, +0xACB0,0xACB8,0xACB9,0xACBB,0xACBC,0xACBD,0xACC1,0xACC4, +0xACC8,0xACCC,0xACD5,0xACD7,0xACE0,0xACE1,0xACE4,0xACE7, +0xACE8,0xACEA,0xACEC,0xACEF,0xACF0,0xACF1,0xACF3,0xACF5, +0xACF6,0xACFC,0xACFD,0xAD00,0xAD04,0xAD06, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCF02,0xCF03,0xCF05,0xCF06,0xCF07,0xCF09,0xCF0A,0xCF0B, +0xCF0C,0xCF0D,0xCF0E,0xCF0F,0xCF12,0xCF14,0xCF16,0xCF17, +0xCF18,0xCF19,0xCF1A,0xCF1B,0xCF1D,0xCF1E,0xCF1F,0xCF21, +0xCF22,0xCF23, 0, 0, 0, 0, 0, 0, +0xCF25,0xCF26,0xCF27,0xCF28,0xCF29,0xCF2A,0xCF2B,0xCF2E, +0xCF32,0xCF33,0xCF34,0xCF35,0xCF36,0xCF37,0xCF39,0xCF3A, +0xCF3B,0xCF3C,0xCF3D,0xCF3E,0xCF3F,0xCF40,0xCF41,0xCF42, +0xCF43,0xCF44, 0, 0, 0, 0, 0, 0, +0xCF45,0xCF46,0xCF47,0xCF48,0xCF49,0xCF4A,0xCF4B,0xCF4C, +0xCF4D,0xCF4E,0xCF4F,0xCF50,0xCF51,0xCF52,0xCF53,0xCF56, +0xCF57,0xCF59,0xCF5A,0xCF5B,0xCF5D,0xCF5E,0xCF5F,0xCF60, +0xCF61,0xCF62,0xCF63,0xCF66,0xCF68,0xCF6A,0xCF6B,0xCF6C, +0xAD0C,0xAD0D,0xAD0F,0xAD11,0xAD18,0xAD1C,0xAD20,0xAD29, +0xAD2C,0xAD2D,0xAD34,0xAD35,0xAD38,0xAD3C,0xAD44,0xAD45, +0xAD47,0xAD49,0xAD50,0xAD54,0xAD58,0xAD61,0xAD63,0xAD6C, +0xAD6D,0xAD70,0xAD73,0xAD74,0xAD75,0xAD76,0xAD7B,0xAD7C, +0xAD7D,0xAD7F,0xAD81,0xAD82,0xAD88,0xAD89,0xAD8C,0xAD90, +0xAD9C,0xAD9D,0xADA4,0xADB7,0xADC0,0xADC1,0xADC4,0xADC8, +0xADD0,0xADD1,0xADD3,0xADDC,0xADE0,0xADE4,0xADF8,0xADF9, +0xADFC,0xADFF,0xAE00,0xAE01,0xAE08,0xAE09,0xAE0B,0xAE0D, +0xAE14,0xAE30,0xAE31,0xAE34,0xAE37,0xAE38,0xAE3A,0xAE40, +0xAE41,0xAE43,0xAE45,0xAE46,0xAE4A,0xAE4C,0xAE4D,0xAE4E, +0xAE50,0xAE54,0xAE56,0xAE5C,0xAE5D,0xAE5F,0xAE60,0xAE61, +0xAE65,0xAE68,0xAE69,0xAE6C,0xAE70,0xAE78, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCF6D,0xCF6E,0xCF6F,0xCF72,0xCF73,0xCF75,0xCF76,0xCF77, +0xCF79,0xCF7A,0xCF7B,0xCF7C,0xCF7D,0xCF7E,0xCF7F,0xCF81, +0xCF82,0xCF83,0xCF84,0xCF86,0xCF87,0xCF88,0xCF89,0xCF8A, +0xCF8B,0xCF8D, 0, 0, 0, 0, 0, 0, +0xCF8E,0xCF8F,0xCF90,0xCF91,0xCF92,0xCF93,0xCF94,0xCF95, +0xCF96,0xCF97,0xCF98,0xCF99,0xCF9A,0xCF9B,0xCF9C,0xCF9D, +0xCF9E,0xCF9F,0xCFA0,0xCFA2,0xCFA3,0xCFA4,0xCFA5,0xCFA6, +0xCFA7,0xCFA9, 0, 0, 0, 0, 0, 0, +0xCFAA,0xCFAB,0xCFAC,0xCFAD,0xCFAE,0xCFAF,0xCFB1,0xCFB2, +0xCFB3,0xCFB4,0xCFB5,0xCFB6,0xCFB7,0xCFB8,0xCFB9,0xCFBA, +0xCFBB,0xCFBC,0xCFBD,0xCFBE,0xCFBF,0xCFC0,0xCFC1,0xCFC2, +0xCFC3,0xCFC5,0xCFC6,0xCFC7,0xCFC8,0xCFC9,0xCFCA,0xCFCB, +0xAE79,0xAE7B,0xAE7C,0xAE7D,0xAE84,0xAE85,0xAE8C,0xAEBC, +0xAEBD,0xAEBE,0xAEC0,0xAEC4,0xAECC,0xAECD,0xAECF,0xAED0, +0xAED1,0xAED8,0xAED9,0xAEDC,0xAEE8,0xAEEB,0xAEED,0xAEF4, +0xAEF8,0xAEFC,0xAF07,0xAF08,0xAF0D,0xAF10,0xAF2C,0xAF2D, +0xAF30,0xAF32,0xAF34,0xAF3C,0xAF3D,0xAF3F,0xAF41,0xAF42, +0xAF43,0xAF48,0xAF49,0xAF50,0xAF5C,0xAF5D,0xAF64,0xAF65, +0xAF79,0xAF80,0xAF84,0xAF88,0xAF90,0xAF91,0xAF95,0xAF9C, +0xAFB8,0xAFB9,0xAFBC,0xAFC0,0xAFC7,0xAFC8,0xAFC9,0xAFCB, +0xAFCD,0xAFCE,0xAFD4,0xAFDC,0xAFE8,0xAFE9,0xAFF0,0xAFF1, +0xAFF4,0xAFF8,0xB000,0xB001,0xB004,0xB00C,0xB010,0xB014, +0xB01C,0xB01D,0xB028,0xB044,0xB045,0xB048,0xB04A,0xB04C, +0xB04E,0xB053,0xB054,0xB055,0xB057,0xB059, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCFCC,0xCFCD,0xCFCE,0xCFCF,0xCFD0,0xCFD1,0xCFD2,0xCFD3, +0xCFD4,0xCFD5,0xCFD6,0xCFD7,0xCFD8,0xCFD9,0xCFDA,0xCFDB, +0xCFDC,0xCFDD,0xCFDE,0xCFDF,0xCFE2,0xCFE3,0xCFE5,0xCFE6, +0xCFE7,0xCFE9, 0, 0, 0, 0, 0, 0, +0xCFEA,0xCFEB,0xCFEC,0xCFED,0xCFEE,0xCFEF,0xCFF2,0xCFF4, +0xCFF6,0xCFF7,0xCFF8,0xCFF9,0xCFFA,0xCFFB,0xCFFD,0xCFFE, +0xCFFF,0xD001,0xD002,0xD003,0xD005,0xD006,0xD007,0xD008, +0xD009,0xD00A, 0, 0, 0, 0, 0, 0, +0xD00B,0xD00C,0xD00D,0xD00E,0xD00F,0xD010,0xD012,0xD013, +0xD014,0xD015,0xD016,0xD017,0xD019,0xD01A,0xD01B,0xD01C, +0xD01D,0xD01E,0xD01F,0xD020,0xD021,0xD022,0xD023,0xD024, +0xD025,0xD026,0xD027,0xD028,0xD029,0xD02A,0xD02B,0xD02C, +0xB05D,0xB07C,0xB07D,0xB080,0xB084,0xB08C,0xB08D,0xB08F, +0xB091,0xB098,0xB099,0xB09A,0xB09C,0xB09F,0xB0A0,0xB0A1, +0xB0A2,0xB0A8,0xB0A9,0xB0AB,0xB0AC,0xB0AD,0xB0AE,0xB0AF, +0xB0B1,0xB0B3,0xB0B4,0xB0B5,0xB0B8,0xB0BC,0xB0C4,0xB0C5, +0xB0C7,0xB0C8,0xB0C9,0xB0D0,0xB0D1,0xB0D4,0xB0D8,0xB0E0, +0xB0E5,0xB108,0xB109,0xB10B,0xB10C,0xB110,0xB112,0xB113, +0xB118,0xB119,0xB11B,0xB11C,0xB11D,0xB123,0xB124,0xB125, +0xB128,0xB12C,0xB134,0xB135,0xB137,0xB138,0xB139,0xB140, +0xB141,0xB144,0xB148,0xB150,0xB151,0xB154,0xB155,0xB158, +0xB15C,0xB160,0xB178,0xB179,0xB17C,0xB180,0xB182,0xB188, +0xB189,0xB18B,0xB18D,0xB192,0xB193,0xB194,0xB198,0xB19C, +0xB1A8,0xB1CC,0xB1D0,0xB1D4,0xB1DC,0xB1DD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD02E,0xD02F,0xD030,0xD031,0xD032,0xD033,0xD036,0xD037, +0xD039,0xD03A,0xD03B,0xD03D,0xD03E,0xD03F,0xD040,0xD041, +0xD042,0xD043,0xD046,0xD048,0xD04A,0xD04B,0xD04C,0xD04D, +0xD04E,0xD04F, 0, 0, 0, 0, 0, 0, +0xD051,0xD052,0xD053,0xD055,0xD056,0xD057,0xD059,0xD05A, +0xD05B,0xD05C,0xD05D,0xD05E,0xD05F,0xD061,0xD062,0xD063, +0xD064,0xD065,0xD066,0xD067,0xD068,0xD069,0xD06A,0xD06B, +0xD06E,0xD06F, 0, 0, 0, 0, 0, 0, +0xD071,0xD072,0xD073,0xD075,0xD076,0xD077,0xD078,0xD079, +0xD07A,0xD07B,0xD07E,0xD07F,0xD080,0xD082,0xD083,0xD084, +0xD085,0xD086,0xD087,0xD088,0xD089,0xD08A,0xD08B,0xD08C, +0xD08D,0xD08E,0xD08F,0xD090,0xD091,0xD092,0xD093,0xD094, +0xB1DF,0xB1E8,0xB1E9,0xB1EC,0xB1F0,0xB1F9,0xB1FB,0xB1FD, +0xB204,0xB205,0xB208,0xB20B,0xB20C,0xB214,0xB215,0xB217, +0xB219,0xB220,0xB234,0xB23C,0xB258,0xB25C,0xB260,0xB268, +0xB269,0xB274,0xB275,0xB27C,0xB284,0xB285,0xB289,0xB290, +0xB291,0xB294,0xB298,0xB299,0xB29A,0xB2A0,0xB2A1,0xB2A3, +0xB2A5,0xB2A6,0xB2AA,0xB2AC,0xB2B0,0xB2B4,0xB2C8,0xB2C9, +0xB2CC,0xB2D0,0xB2D2,0xB2D8,0xB2D9,0xB2DB,0xB2DD,0xB2E2, +0xB2E4,0xB2E5,0xB2E6,0xB2E8,0xB2EB,0xB2EC,0xB2ED,0xB2EE, +0xB2EF,0xB2F3,0xB2F4,0xB2F5,0xB2F7,0xB2F8,0xB2F9,0xB2FA, +0xB2FB,0xB2FF,0xB300,0xB301,0xB304,0xB308,0xB310,0xB311, +0xB313,0xB314,0xB315,0xB31C,0xB354,0xB355,0xB356,0xB358, +0xB35B,0xB35C,0xB35E,0xB35F,0xB364,0xB365, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD095,0xD096,0xD097,0xD098,0xD099,0xD09A,0xD09B,0xD09C, +0xD09D,0xD09E,0xD09F,0xD0A0,0xD0A1,0xD0A2,0xD0A3,0xD0A6, +0xD0A7,0xD0A9,0xD0AA,0xD0AB,0xD0AD,0xD0AE,0xD0AF,0xD0B0, +0xD0B1,0xD0B2, 0, 0, 0, 0, 0, 0, +0xD0B3,0xD0B6,0xD0B8,0xD0BA,0xD0BB,0xD0BC,0xD0BD,0xD0BE, +0xD0BF,0xD0C2,0xD0C3,0xD0C5,0xD0C6,0xD0C7,0xD0CA,0xD0CB, +0xD0CC,0xD0CD,0xD0CE,0xD0CF,0xD0D2,0xD0D6,0xD0D7,0xD0D8, +0xD0D9,0xD0DA, 0, 0, 0, 0, 0, 0, +0xD0DB,0xD0DE,0xD0DF,0xD0E1,0xD0E2,0xD0E3,0xD0E5,0xD0E6, +0xD0E7,0xD0E8,0xD0E9,0xD0EA,0xD0EB,0xD0EE,0xD0F2,0xD0F3, +0xD0F4,0xD0F5,0xD0F6,0xD0F7,0xD0F9,0xD0FA,0xD0FB,0xD0FC, +0xD0FD,0xD0FE,0xD0FF,0xD100,0xD101,0xD102,0xD103,0xD104, +0xB367,0xB369,0xB36B,0xB36E,0xB370,0xB371,0xB374,0xB378, +0xB380,0xB381,0xB383,0xB384,0xB385,0xB38C,0xB390,0xB394, +0xB3A0,0xB3A1,0xB3A8,0xB3AC,0xB3C4,0xB3C5,0xB3C8,0xB3CB, +0xB3CC,0xB3CE,0xB3D0,0xB3D4,0xB3D5,0xB3D7,0xB3D9,0xB3DB, +0xB3DD,0xB3E0,0xB3E4,0xB3E8,0xB3FC,0xB410,0xB418,0xB41C, +0xB420,0xB428,0xB429,0xB42B,0xB434,0xB450,0xB451,0xB454, +0xB458,0xB460,0xB461,0xB463,0xB465,0xB46C,0xB480,0xB488, +0xB49D,0xB4A4,0xB4A8,0xB4AC,0xB4B5,0xB4B7,0xB4B9,0xB4C0, +0xB4C4,0xB4C8,0xB4D0,0xB4D5,0xB4DC,0xB4DD,0xB4E0,0xB4E3, +0xB4E4,0xB4E6,0xB4EC,0xB4ED,0xB4EF,0xB4F1,0xB4F8,0xB514, +0xB515,0xB518,0xB51B,0xB51C,0xB524,0xB525,0xB527,0xB528, +0xB529,0xB52A,0xB530,0xB531,0xB534,0xB538, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD105,0xD106,0xD107,0xD108,0xD109,0xD10A,0xD10B,0xD10C, +0xD10E,0xD10F,0xD110,0xD111,0xD112,0xD113,0xD114,0xD115, +0xD116,0xD117,0xD118,0xD119,0xD11A,0xD11B,0xD11C,0xD11D, +0xD11E,0xD11F, 0, 0, 0, 0, 0, 0, +0xD120,0xD121,0xD122,0xD123,0xD124,0xD125,0xD126,0xD127, +0xD128,0xD129,0xD12A,0xD12B,0xD12C,0xD12D,0xD12E,0xD12F, +0xD132,0xD133,0xD135,0xD136,0xD137,0xD139,0xD13B,0xD13C, +0xD13D,0xD13E, 0, 0, 0, 0, 0, 0, +0xD13F,0xD142,0xD146,0xD147,0xD148,0xD149,0xD14A,0xD14B, +0xD14E,0xD14F,0xD151,0xD152,0xD153,0xD155,0xD156,0xD157, +0xD158,0xD159,0xD15A,0xD15B,0xD15E,0xD160,0xD162,0xD163, +0xD164,0xD165,0xD166,0xD167,0xD169,0xD16A,0xD16B,0xD16D, +0xB540,0xB541,0xB543,0xB544,0xB545,0xB54B,0xB54C,0xB54D, +0xB550,0xB554,0xB55C,0xB55D,0xB55F,0xB560,0xB561,0xB5A0, +0xB5A1,0xB5A4,0xB5A8,0xB5AA,0xB5AB,0xB5B0,0xB5B1,0xB5B3, +0xB5B4,0xB5B5,0xB5BB,0xB5BC,0xB5BD,0xB5C0,0xB5C4,0xB5CC, +0xB5CD,0xB5CF,0xB5D0,0xB5D1,0xB5D8,0xB5EC,0xB610,0xB611, +0xB614,0xB618,0xB625,0xB62C,0xB634,0xB648,0xB664,0xB668, +0xB69C,0xB69D,0xB6A0,0xB6A4,0xB6AB,0xB6AC,0xB6B1,0xB6D4, +0xB6F0,0xB6F4,0xB6F8,0xB700,0xB701,0xB705,0xB728,0xB729, +0xB72C,0xB72F,0xB730,0xB738,0xB739,0xB73B,0xB744,0xB748, +0xB74C,0xB754,0xB755,0xB760,0xB764,0xB768,0xB770,0xB771, +0xB773,0xB775,0xB77C,0xB77D,0xB780,0xB784,0xB78C,0xB78D, +0xB78F,0xB790,0xB791,0xB792,0xB796,0xB797, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD16E,0xD16F,0xD170,0xD171,0xD172,0xD173,0xD174,0xD175, +0xD176,0xD177,0xD178,0xD179,0xD17A,0xD17B,0xD17D,0xD17E, +0xD17F,0xD180,0xD181,0xD182,0xD183,0xD185,0xD186,0xD187, +0xD189,0xD18A, 0, 0, 0, 0, 0, 0, +0xD18B,0xD18C,0xD18D,0xD18E,0xD18F,0xD190,0xD191,0xD192, +0xD193,0xD194,0xD195,0xD196,0xD197,0xD198,0xD199,0xD19A, +0xD19B,0xD19C,0xD19D,0xD19E,0xD19F,0xD1A2,0xD1A3,0xD1A5, +0xD1A6,0xD1A7, 0, 0, 0, 0, 0, 0, +0xD1A9,0xD1AA,0xD1AB,0xD1AC,0xD1AD,0xD1AE,0xD1AF,0xD1B2, +0xD1B4,0xD1B6,0xD1B7,0xD1B8,0xD1B9,0xD1BB,0xD1BD,0xD1BE, +0xD1BF,0xD1C1,0xD1C2,0xD1C3,0xD1C4,0xD1C5,0xD1C6,0xD1C7, +0xD1C8,0xD1C9,0xD1CA,0xD1CB,0xD1CC,0xD1CD,0xD1CE,0xD1CF, +0xB798,0xB799,0xB79C,0xB7A0,0xB7A8,0xB7A9,0xB7AB,0xB7AC, +0xB7AD,0xB7B4,0xB7B5,0xB7B8,0xB7C7,0xB7C9,0xB7EC,0xB7ED, +0xB7F0,0xB7F4,0xB7FC,0xB7FD,0xB7FF,0xB800,0xB801,0xB807, +0xB808,0xB809,0xB80C,0xB810,0xB818,0xB819,0xB81B,0xB81D, +0xB824,0xB825,0xB828,0xB82C,0xB834,0xB835,0xB837,0xB838, +0xB839,0xB840,0xB844,0xB851,0xB853,0xB85C,0xB85D,0xB860, +0xB864,0xB86C,0xB86D,0xB86F,0xB871,0xB878,0xB87C,0xB88D, +0xB8A8,0xB8B0,0xB8B4,0xB8B8,0xB8C0,0xB8C1,0xB8C3,0xB8C5, +0xB8CC,0xB8D0,0xB8D4,0xB8DD,0xB8DF,0xB8E1,0xB8E8,0xB8E9, +0xB8EC,0xB8F0,0xB8F8,0xB8F9,0xB8FB,0xB8FD,0xB904,0xB918, +0xB920,0xB93C,0xB93D,0xB940,0xB944,0xB94C,0xB94F,0xB951, +0xB958,0xB959,0xB95C,0xB960,0xB968,0xB969, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD1D0,0xD1D1,0xD1D2,0xD1D3,0xD1D4,0xD1D5,0xD1D6,0xD1D7, +0xD1D9,0xD1DA,0xD1DB,0xD1DC,0xD1DD,0xD1DE,0xD1DF,0xD1E0, +0xD1E1,0xD1E2,0xD1E3,0xD1E4,0xD1E5,0xD1E6,0xD1E7,0xD1E8, +0xD1E9,0xD1EA, 0, 0, 0, 0, 0, 0, +0xD1EB,0xD1EC,0xD1ED,0xD1EE,0xD1EF,0xD1F0,0xD1F1,0xD1F2, +0xD1F3,0xD1F5,0xD1F6,0xD1F7,0xD1F9,0xD1FA,0xD1FB,0xD1FC, +0xD1FD,0xD1FE,0xD1FF,0xD200,0xD201,0xD202,0xD203,0xD204, +0xD205,0xD206, 0, 0, 0, 0, 0, 0, +0xD208,0xD20A,0xD20B,0xD20C,0xD20D,0xD20E,0xD20F,0xD211, +0xD212,0xD213,0xD214,0xD215,0xD216,0xD217,0xD218,0xD219, +0xD21A,0xD21B,0xD21C,0xD21D,0xD21E,0xD21F,0xD220,0xD221, +0xD222,0xD223,0xD224,0xD225,0xD226,0xD227,0xD228,0xD229, +0xB96B,0xB96D,0xB974,0xB975,0xB978,0xB97C,0xB984,0xB985, +0xB987,0xB989,0xB98A,0xB98D,0xB98E,0xB9AC,0xB9AD,0xB9B0, +0xB9B4,0xB9BC,0xB9BD,0xB9BF,0xB9C1,0xB9C8,0xB9C9,0xB9CC, +0xB9CE,0xB9CF,0xB9D0,0xB9D1,0xB9D2,0xB9D8,0xB9D9,0xB9DB, +0xB9DD,0xB9DE,0xB9E1,0xB9E3,0xB9E4,0xB9E5,0xB9E8,0xB9EC, +0xB9F4,0xB9F5,0xB9F7,0xB9F8,0xB9F9,0xB9FA,0xBA00,0xBA01, +0xBA08,0xBA15,0xBA38,0xBA39,0xBA3C,0xBA40,0xBA42,0xBA48, +0xBA49,0xBA4B,0xBA4D,0xBA4E,0xBA53,0xBA54,0xBA55,0xBA58, +0xBA5C,0xBA64,0xBA65,0xBA67,0xBA68,0xBA69,0xBA70,0xBA71, +0xBA74,0xBA78,0xBA83,0xBA84,0xBA85,0xBA87,0xBA8C,0xBAA8, +0xBAA9,0xBAAB,0xBAAC,0xBAB0,0xBAB2,0xBAB8,0xBAB9,0xBABB, +0xBABD,0xBAC4,0xBAC8,0xBAD8,0xBAD9,0xBAFC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD22A,0xD22B,0xD22E,0xD22F,0xD231,0xD232,0xD233,0xD235, +0xD236,0xD237,0xD238,0xD239,0xD23A,0xD23B,0xD23E,0xD240, +0xD242,0xD243,0xD244,0xD245,0xD246,0xD247,0xD249,0xD24A, +0xD24B,0xD24C, 0, 0, 0, 0, 0, 0, +0xD24D,0xD24E,0xD24F,0xD250,0xD251,0xD252,0xD253,0xD254, +0xD255,0xD256,0xD257,0xD258,0xD259,0xD25A,0xD25B,0xD25D, +0xD25E,0xD25F,0xD260,0xD261,0xD262,0xD263,0xD265,0xD266, +0xD267,0xD268, 0, 0, 0, 0, 0, 0, +0xD269,0xD26A,0xD26B,0xD26C,0xD26D,0xD26E,0xD26F,0xD270, +0xD271,0xD272,0xD273,0xD274,0xD275,0xD276,0xD277,0xD278, +0xD279,0xD27A,0xD27B,0xD27C,0xD27D,0xD27E,0xD27F,0xD282, +0xD283,0xD285,0xD286,0xD287,0xD289,0xD28A,0xD28B,0xD28C, +0xBB00,0xBB04,0xBB0D,0xBB0F,0xBB11,0xBB18,0xBB1C,0xBB20, +0xBB29,0xBB2B,0xBB34,0xBB35,0xBB36,0xBB38,0xBB3B,0xBB3C, +0xBB3D,0xBB3E,0xBB44,0xBB45,0xBB47,0xBB49,0xBB4D,0xBB4F, +0xBB50,0xBB54,0xBB58,0xBB61,0xBB63,0xBB6C,0xBB88,0xBB8C, +0xBB90,0xBBA4,0xBBA8,0xBBAC,0xBBB4,0xBBB7,0xBBC0,0xBBC4, +0xBBC8,0xBBD0,0xBBD3,0xBBF8,0xBBF9,0xBBFC,0xBBFF,0xBC00, +0xBC02,0xBC08,0xBC09,0xBC0B,0xBC0C,0xBC0D,0xBC0F,0xBC11, +0xBC14,0xBC15,0xBC16,0xBC17,0xBC18,0xBC1B,0xBC1C,0xBC1D, +0xBC1E,0xBC1F,0xBC24,0xBC25,0xBC27,0xBC29,0xBC2D,0xBC30, +0xBC31,0xBC34,0xBC38,0xBC40,0xBC41,0xBC43,0xBC44,0xBC45, +0xBC49,0xBC4C,0xBC4D,0xBC50,0xBC5D,0xBC84,0xBC85,0xBC88, +0xBC8B,0xBC8C,0xBC8E,0xBC94,0xBC95,0xBC97, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD28D,0xD28E,0xD28F,0xD292,0xD293,0xD294,0xD296,0xD297, +0xD298,0xD299,0xD29A,0xD29B,0xD29D,0xD29E,0xD29F,0xD2A1, +0xD2A2,0xD2A3,0xD2A5,0xD2A6,0xD2A7,0xD2A8,0xD2A9,0xD2AA, +0xD2AB,0xD2AD, 0, 0, 0, 0, 0, 0, +0xD2AE,0xD2AF,0xD2B0,0xD2B2,0xD2B3,0xD2B4,0xD2B5,0xD2B6, +0xD2B7,0xD2BA,0xD2BB,0xD2BD,0xD2BE,0xD2C1,0xD2C3,0xD2C4, +0xD2C5,0xD2C6,0xD2C7,0xD2CA,0xD2CC,0xD2CD,0xD2CE,0xD2CF, +0xD2D0,0xD2D1, 0, 0, 0, 0, 0, 0, +0xD2D2,0xD2D3,0xD2D5,0xD2D6,0xD2D7,0xD2D9,0xD2DA,0xD2DB, +0xD2DD,0xD2DE,0xD2DF,0xD2E0,0xD2E1,0xD2E2,0xD2E3,0xD2E6, +0xD2E7,0xD2E8,0xD2E9,0xD2EA,0xD2EB,0xD2EC,0xD2ED,0xD2EE, +0xD2EF,0xD2F2,0xD2F3,0xD2F5,0xD2F6,0xD2F7,0xD2F9,0xD2FA, +0xBC99,0xBC9A,0xBCA0,0xBCA1,0xBCA4,0xBCA7,0xBCA8,0xBCB0, +0xBCB1,0xBCB3,0xBCB4,0xBCB5,0xBCBC,0xBCBD,0xBCC0,0xBCC4, +0xBCCD,0xBCCF,0xBCD0,0xBCD1,0xBCD5,0xBCD8,0xBCDC,0xBCF4, +0xBCF5,0xBCF6,0xBCF8,0xBCFC,0xBD04,0xBD05,0xBD07,0xBD09, +0xBD10,0xBD14,0xBD24,0xBD2C,0xBD40,0xBD48,0xBD49,0xBD4C, +0xBD50,0xBD58,0xBD59,0xBD64,0xBD68,0xBD80,0xBD81,0xBD84, +0xBD87,0xBD88,0xBD89,0xBD8A,0xBD90,0xBD91,0xBD93,0xBD95, +0xBD99,0xBD9A,0xBD9C,0xBDA4,0xBDB0,0xBDB8,0xBDD4,0xBDD5, +0xBDD8,0xBDDC,0xBDE9,0xBDF0,0xBDF4,0xBDF8,0xBE00,0xBE03, +0xBE05,0xBE0C,0xBE0D,0xBE10,0xBE14,0xBE1C,0xBE1D,0xBE1F, +0xBE44,0xBE45,0xBE48,0xBE4C,0xBE4E,0xBE54,0xBE55,0xBE57, +0xBE59,0xBE5A,0xBE5B,0xBE60,0xBE61,0xBE64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD2FB,0xD2FC,0xD2FD,0xD2FE,0xD2FF,0xD302,0xD304,0xD306, +0xD307,0xD308,0xD309,0xD30A,0xD30B,0xD30F,0xD311,0xD312, +0xD313,0xD315,0xD317,0xD318,0xD319,0xD31A,0xD31B,0xD31E, +0xD322,0xD323, 0, 0, 0, 0, 0, 0, +0xD324,0xD326,0xD327,0xD32A,0xD32B,0xD32D,0xD32E,0xD32F, +0xD331,0xD332,0xD333,0xD334,0xD335,0xD336,0xD337,0xD33A, +0xD33E,0xD33F,0xD340,0xD341,0xD342,0xD343,0xD346,0xD347, +0xD348,0xD349, 0, 0, 0, 0, 0, 0, +0xD34A,0xD34B,0xD34C,0xD34D,0xD34E,0xD34F,0xD350,0xD351, +0xD352,0xD353,0xD354,0xD355,0xD356,0xD357,0xD358,0xD359, +0xD35A,0xD35B,0xD35C,0xD35D,0xD35E,0xD35F,0xD360,0xD361, +0xD362,0xD363,0xD364,0xD365,0xD366,0xD367,0xD368,0xD369, +0xBE68,0xBE6A,0xBE70,0xBE71,0xBE73,0xBE74,0xBE75,0xBE7B, +0xBE7C,0xBE7D,0xBE80,0xBE84,0xBE8C,0xBE8D,0xBE8F,0xBE90, +0xBE91,0xBE98,0xBE99,0xBEA8,0xBED0,0xBED1,0xBED4,0xBED7, +0xBED8,0xBEE0,0xBEE3,0xBEE4,0xBEE5,0xBEEC,0xBF01,0xBF08, +0xBF09,0xBF18,0xBF19,0xBF1B,0xBF1C,0xBF1D,0xBF40,0xBF41, +0xBF44,0xBF48,0xBF50,0xBF51,0xBF55,0xBF94,0xBFB0,0xBFC5, +0xBFCC,0xBFCD,0xBFD0,0xBFD4,0xBFDC,0xBFDF,0xBFE1,0xC03C, +0xC051,0xC058,0xC05C,0xC060,0xC068,0xC069,0xC090,0xC091, +0xC094,0xC098,0xC0A0,0xC0A1,0xC0A3,0xC0A5,0xC0AC,0xC0AD, +0xC0AF,0xC0B0,0xC0B3,0xC0B4,0xC0B5,0xC0B6,0xC0BC,0xC0BD, +0xC0BF,0xC0C0,0xC0C1,0xC0C5,0xC0C8,0xC0C9,0xC0CC,0xC0D0, +0xC0D8,0xC0D9,0xC0DB,0xC0DC,0xC0DD,0xC0E4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD36A,0xD36B,0xD36C,0xD36D,0xD36E,0xD36F,0xD370,0xD371, +0xD372,0xD373,0xD374,0xD375,0xD376,0xD377,0xD378,0xD379, +0xD37A,0xD37B,0xD37E,0xD37F,0xD381,0xD382,0xD383,0xD385, +0xD386,0xD387, 0, 0, 0, 0, 0, 0, +0xD388,0xD389,0xD38A,0xD38B,0xD38E,0xD392,0xD393,0xD394, +0xD395,0xD396,0xD397,0xD39A,0xD39B,0xD39D,0xD39E,0xD39F, +0xD3A1,0xD3A2,0xD3A3,0xD3A4,0xD3A5,0xD3A6,0xD3A7,0xD3AA, +0xD3AC,0xD3AE, 0, 0, 0, 0, 0, 0, +0xD3AF,0xD3B0,0xD3B1,0xD3B2,0xD3B3,0xD3B5,0xD3B6,0xD3B7, +0xD3B9,0xD3BA,0xD3BB,0xD3BD,0xD3BE,0xD3BF,0xD3C0,0xD3C1, +0xD3C2,0xD3C3,0xD3C6,0xD3C7,0xD3CA,0xD3CB,0xD3CC,0xD3CD, +0xD3CE,0xD3CF,0xD3D1,0xD3D2,0xD3D3,0xD3D4,0xD3D5,0xD3D6, +0xC0E5,0xC0E8,0xC0EC,0xC0F4,0xC0F5,0xC0F7,0xC0F9,0xC100, +0xC104,0xC108,0xC110,0xC115,0xC11C,0xC11D,0xC11E,0xC11F, +0xC120,0xC123,0xC124,0xC126,0xC127,0xC12C,0xC12D,0xC12F, +0xC130,0xC131,0xC136,0xC138,0xC139,0xC13C,0xC140,0xC148, +0xC149,0xC14B,0xC14C,0xC14D,0xC154,0xC155,0xC158,0xC15C, +0xC164,0xC165,0xC167,0xC168,0xC169,0xC170,0xC174,0xC178, +0xC185,0xC18C,0xC18D,0xC18E,0xC190,0xC194,0xC196,0xC19C, +0xC19D,0xC19F,0xC1A1,0xC1A5,0xC1A8,0xC1A9,0xC1AC,0xC1B0, +0xC1BD,0xC1C4,0xC1C8,0xC1CC,0xC1D4,0xC1D7,0xC1D8,0xC1E0, +0xC1E4,0xC1E8,0xC1F0,0xC1F1,0xC1F3,0xC1FC,0xC1FD,0xC200, +0xC204,0xC20C,0xC20D,0xC20F,0xC211,0xC218,0xC219,0xC21C, +0xC21F,0xC220,0xC228,0xC229,0xC22B,0xC22D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD3D7,0xD3D9,0xD3DA,0xD3DB,0xD3DC,0xD3DD,0xD3DE,0xD3DF, +0xD3E0,0xD3E2,0xD3E4,0xD3E5,0xD3E6,0xD3E7,0xD3E8,0xD3E9, +0xD3EA,0xD3EB,0xD3EE,0xD3EF,0xD3F1,0xD3F2,0xD3F3,0xD3F5, +0xD3F6,0xD3F7, 0, 0, 0, 0, 0, 0, +0xD3F8,0xD3F9,0xD3FA,0xD3FB,0xD3FE,0xD400,0xD402,0xD403, +0xD404,0xD405,0xD406,0xD407,0xD409,0xD40A,0xD40B,0xD40C, +0xD40D,0xD40E,0xD40F,0xD410,0xD411,0xD412,0xD413,0xD414, +0xD415,0xD416, 0, 0, 0, 0, 0, 0, +0xD417,0xD418,0xD419,0xD41A,0xD41B,0xD41C,0xD41E,0xD41F, +0xD420,0xD421,0xD422,0xD423,0xD424,0xD425,0xD426,0xD427, +0xD428,0xD429,0xD42A,0xD42B,0xD42C,0xD42D,0xD42E,0xD42F, +0xD430,0xD431,0xD432,0xD433,0xD434,0xD435,0xD436,0xD437, +0xC22F,0xC231,0xC232,0xC234,0xC248,0xC250,0xC251,0xC254, +0xC258,0xC260,0xC265,0xC26C,0xC26D,0xC270,0xC274,0xC27C, +0xC27D,0xC27F,0xC281,0xC288,0xC289,0xC290,0xC298,0xC29B, +0xC29D,0xC2A4,0xC2A5,0xC2A8,0xC2AC,0xC2AD,0xC2B4,0xC2B5, +0xC2B7,0xC2B9,0xC2DC,0xC2DD,0xC2E0,0xC2E3,0xC2E4,0xC2EB, +0xC2EC,0xC2ED,0xC2EF,0xC2F1,0xC2F6,0xC2F8,0xC2F9,0xC2FB, +0xC2FC,0xC300,0xC308,0xC309,0xC30C,0xC30D,0xC313,0xC314, +0xC315,0xC318,0xC31C,0xC324,0xC325,0xC328,0xC329,0xC345, +0xC368,0xC369,0xC36C,0xC370,0xC372,0xC378,0xC379,0xC37C, +0xC37D,0xC384,0xC388,0xC38C,0xC3C0,0xC3D8,0xC3D9,0xC3DC, +0xC3DF,0xC3E0,0xC3E2,0xC3E8,0xC3E9,0xC3ED,0xC3F4,0xC3F5, +0xC3F8,0xC408,0xC410,0xC424,0xC42C,0xC430, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD438,0xD439,0xD43A,0xD43B,0xD43C,0xD43D,0xD43E,0xD43F, +0xD441,0xD442,0xD443,0xD445,0xD446,0xD447,0xD448,0xD449, +0xD44A,0xD44B,0xD44C,0xD44D,0xD44E,0xD44F,0xD450,0xD451, +0xD452,0xD453, 0, 0, 0, 0, 0, 0, +0xD454,0xD455,0xD456,0xD457,0xD458,0xD459,0xD45A,0xD45B, +0xD45D,0xD45E,0xD45F,0xD461,0xD462,0xD463,0xD465,0xD466, +0xD467,0xD468,0xD469,0xD46A,0xD46B,0xD46C,0xD46E,0xD470, +0xD471,0xD472, 0, 0, 0, 0, 0, 0, +0xD473,0xD474,0xD475,0xD476,0xD477,0xD47A,0xD47B,0xD47D, +0xD47E,0xD481,0xD483,0xD484,0xD485,0xD486,0xD487,0xD48A, +0xD48C,0xD48E,0xD48F,0xD490,0xD491,0xD492,0xD493,0xD495, +0xD496,0xD497,0xD498,0xD499,0xD49A,0xD49B,0xD49C,0xD49D, +0xC434,0xC43C,0xC43D,0xC448,0xC464,0xC465,0xC468,0xC46C, +0xC474,0xC475,0xC479,0xC480,0xC494,0xC49C,0xC4B8,0xC4BC, +0xC4E9,0xC4F0,0xC4F1,0xC4F4,0xC4F8,0xC4FA,0xC4FF,0xC500, +0xC501,0xC50C,0xC510,0xC514,0xC51C,0xC528,0xC529,0xC52C, +0xC530,0xC538,0xC539,0xC53B,0xC53D,0xC544,0xC545,0xC548, +0xC549,0xC54A,0xC54C,0xC54D,0xC54E,0xC553,0xC554,0xC555, +0xC557,0xC558,0xC559,0xC55D,0xC55E,0xC560,0xC561,0xC564, +0xC568,0xC570,0xC571,0xC573,0xC574,0xC575,0xC57C,0xC57D, +0xC580,0xC584,0xC587,0xC58C,0xC58D,0xC58F,0xC591,0xC595, +0xC597,0xC598,0xC59C,0xC5A0,0xC5A9,0xC5B4,0xC5B5,0xC5B8, +0xC5B9,0xC5BB,0xC5BC,0xC5BD,0xC5BE,0xC5C4,0xC5C5,0xC5C6, +0xC5C7,0xC5C8,0xC5C9,0xC5CA,0xC5CC,0xC5CE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD49E,0xD49F,0xD4A0,0xD4A1,0xD4A2,0xD4A3,0xD4A4,0xD4A5, +0xD4A6,0xD4A7,0xD4A8,0xD4AA,0xD4AB,0xD4AC,0xD4AD,0xD4AE, +0xD4AF,0xD4B0,0xD4B1,0xD4B2,0xD4B3,0xD4B4,0xD4B5,0xD4B6, +0xD4B7,0xD4B8, 0, 0, 0, 0, 0, 0, +0xD4B9,0xD4BA,0xD4BB,0xD4BC,0xD4BD,0xD4BE,0xD4BF,0xD4C0, +0xD4C1,0xD4C2,0xD4C3,0xD4C4,0xD4C5,0xD4C6,0xD4C7,0xD4C8, +0xD4C9,0xD4CA,0xD4CB,0xD4CD,0xD4CE,0xD4CF,0xD4D1,0xD4D2, +0xD4D3,0xD4D5, 0, 0, 0, 0, 0, 0, +0xD4D6,0xD4D7,0xD4D8,0xD4D9,0xD4DA,0xD4DB,0xD4DD,0xD4DE, +0xD4E0,0xD4E1,0xD4E2,0xD4E3,0xD4E4,0xD4E5,0xD4E6,0xD4E7, +0xD4E9,0xD4EA,0xD4EB,0xD4ED,0xD4EE,0xD4EF,0xD4F1,0xD4F2, +0xD4F3,0xD4F4,0xD4F5,0xD4F6,0xD4F7,0xD4F9,0xD4FA,0xD4FC, +0xC5D0,0xC5D1,0xC5D4,0xC5D8,0xC5E0,0xC5E1,0xC5E3,0xC5E5, +0xC5EC,0xC5ED,0xC5EE,0xC5F0,0xC5F4,0xC5F6,0xC5F7,0xC5FC, +0xC5FD,0xC5FE,0xC5FF,0xC600,0xC601,0xC605,0xC606,0xC607, +0xC608,0xC60C,0xC610,0xC618,0xC619,0xC61B,0xC61C,0xC624, +0xC625,0xC628,0xC62C,0xC62D,0xC62E,0xC630,0xC633,0xC634, +0xC635,0xC637,0xC639,0xC63B,0xC640,0xC641,0xC644,0xC648, +0xC650,0xC651,0xC653,0xC654,0xC655,0xC65C,0xC65D,0xC660, +0xC66C,0xC66F,0xC671,0xC678,0xC679,0xC67C,0xC680,0xC688, +0xC689,0xC68B,0xC68D,0xC694,0xC695,0xC698,0xC69C,0xC6A4, +0xC6A5,0xC6A7,0xC6A9,0xC6B0,0xC6B1,0xC6B4,0xC6B8,0xC6B9, +0xC6BA,0xC6C0,0xC6C1,0xC6C3,0xC6C5,0xC6CC,0xC6CD,0xC6D0, +0xC6D4,0xC6DC,0xC6DD,0xC6E0,0xC6E1,0xC6E8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD4FE,0xD4FF,0xD500,0xD501,0xD502,0xD503,0xD505,0xD506, +0xD507,0xD509,0xD50A,0xD50B,0xD50D,0xD50E,0xD50F,0xD510, +0xD511,0xD512,0xD513,0xD516,0xD518,0xD519,0xD51A,0xD51B, +0xD51C,0xD51D, 0, 0, 0, 0, 0, 0, +0xD51E,0xD51F,0xD520,0xD521,0xD522,0xD523,0xD524,0xD525, +0xD526,0xD527,0xD528,0xD529,0xD52A,0xD52B,0xD52C,0xD52D, +0xD52E,0xD52F,0xD530,0xD531,0xD532,0xD533,0xD534,0xD535, +0xD536,0xD537, 0, 0, 0, 0, 0, 0, +0xD538,0xD539,0xD53A,0xD53B,0xD53E,0xD53F,0xD541,0xD542, +0xD543,0xD545,0xD546,0xD547,0xD548,0xD549,0xD54A,0xD54B, +0xD54E,0xD550,0xD552,0xD553,0xD554,0xD555,0xD556,0xD557, +0xD55A,0xD55B,0xD55D,0xD55E,0xD55F,0xD561,0xD562,0xD563, +0xC6E9,0xC6EC,0xC6F0,0xC6F8,0xC6F9,0xC6FD,0xC704,0xC705, +0xC708,0xC70C,0xC714,0xC715,0xC717,0xC719,0xC720,0xC721, +0xC724,0xC728,0xC730,0xC731,0xC733,0xC735,0xC737,0xC73C, +0xC73D,0xC740,0xC744,0xC74A,0xC74C,0xC74D,0xC74F,0xC751, +0xC752,0xC753,0xC754,0xC755,0xC756,0xC757,0xC758,0xC75C, +0xC760,0xC768,0xC76B,0xC774,0xC775,0xC778,0xC77C,0xC77D, +0xC77E,0xC783,0xC784,0xC785,0xC787,0xC788,0xC789,0xC78A, +0xC78E,0xC790,0xC791,0xC794,0xC796,0xC797,0xC798,0xC79A, +0xC7A0,0xC7A1,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7AC,0xC7AD, +0xC7B0,0xC7B4,0xC7BC,0xC7BD,0xC7BF,0xC7C0,0xC7C1,0xC7C8, +0xC7C9,0xC7CC,0xC7CE,0xC7D0,0xC7D8,0xC7DD,0xC7E4,0xC7E8, +0xC7EC,0xC800,0xC801,0xC804,0xC808,0xC80A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD564,0xD566,0xD567,0xD56A,0xD56C,0xD56E,0xD56F,0xD570, +0xD571,0xD572,0xD573,0xD576,0xD577,0xD579,0xD57A,0xD57B, +0xD57D,0xD57E,0xD57F,0xD580,0xD581,0xD582,0xD583,0xD586, +0xD58A,0xD58B, 0, 0, 0, 0, 0, 0, +0xD58C,0xD58D,0xD58E,0xD58F,0xD591,0xD592,0xD593,0xD594, +0xD595,0xD596,0xD597,0xD598,0xD599,0xD59A,0xD59B,0xD59C, +0xD59D,0xD59E,0xD59F,0xD5A0,0xD5A1,0xD5A2,0xD5A3,0xD5A4, +0xD5A6,0xD5A7, 0, 0, 0, 0, 0, 0, +0xD5A8,0xD5A9,0xD5AA,0xD5AB,0xD5AC,0xD5AD,0xD5AE,0xD5AF, +0xD5B0,0xD5B1,0xD5B2,0xD5B3,0xD5B4,0xD5B5,0xD5B6,0xD5B7, +0xD5B8,0xD5B9,0xD5BA,0xD5BB,0xD5BC,0xD5BD,0xD5BE,0xD5BF, +0xD5C0,0xD5C1,0xD5C2,0xD5C3,0xD5C4,0xD5C5,0xD5C6,0xD5C7, +0xC810,0xC811,0xC813,0xC815,0xC816,0xC81C,0xC81D,0xC820, +0xC824,0xC82C,0xC82D,0xC82F,0xC831,0xC838,0xC83C,0xC840, +0xC848,0xC849,0xC84C,0xC84D,0xC854,0xC870,0xC871,0xC874, +0xC878,0xC87A,0xC880,0xC881,0xC883,0xC885,0xC886,0xC887, +0xC88B,0xC88C,0xC88D,0xC894,0xC89D,0xC89F,0xC8A1,0xC8A8, +0xC8BC,0xC8BD,0xC8C4,0xC8C8,0xC8CC,0xC8D4,0xC8D5,0xC8D7, +0xC8D9,0xC8E0,0xC8E1,0xC8E4,0xC8F5,0xC8FC,0xC8FD,0xC900, +0xC904,0xC905,0xC906,0xC90C,0xC90D,0xC90F,0xC911,0xC918, +0xC92C,0xC934,0xC950,0xC951,0xC954,0xC958,0xC960,0xC961, +0xC963,0xC96C,0xC970,0xC974,0xC97C,0xC988,0xC989,0xC98C, +0xC990,0xC998,0xC999,0xC99B,0xC99D,0xC9C0,0xC9C1,0xC9C4, +0xC9C7,0xC9C8,0xC9CA,0xC9D0,0xC9D1,0xC9D3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD5CA,0xD5CB,0xD5CD,0xD5CE,0xD5CF,0xD5D1,0xD5D3,0xD5D4, +0xD5D5,0xD5D6,0xD5D7,0xD5DA,0xD5DC,0xD5DE,0xD5DF,0xD5E0, +0xD5E1,0xD5E2,0xD5E3,0xD5E6,0xD5E7,0xD5E9,0xD5EA,0xD5EB, +0xD5ED,0xD5EE, 0, 0, 0, 0, 0, 0, +0xD5EF,0xD5F0,0xD5F1,0xD5F2,0xD5F3,0xD5F6,0xD5F8,0xD5FA, +0xD5FB,0xD5FC,0xD5FD,0xD5FE,0xD5FF,0xD602,0xD603,0xD605, +0xD606,0xD607,0xD609,0xD60A,0xD60B,0xD60C,0xD60D,0xD60E, +0xD60F,0xD612, 0, 0, 0, 0, 0, 0, +0xD616,0xD617,0xD618,0xD619,0xD61A,0xD61B,0xD61D,0xD61E, +0xD61F,0xD621,0xD622,0xD623,0xD625,0xD626,0xD627,0xD628, +0xD629,0xD62A,0xD62B,0xD62C,0xD62E,0xD62F,0xD630,0xD631, +0xD632,0xD633,0xD634,0xD635,0xD636,0xD637,0xD63A,0xD63B, +0xC9D5,0xC9D6,0xC9D9,0xC9DA,0xC9DC,0xC9DD,0xC9E0,0xC9E2, +0xC9E4,0xC9E7,0xC9EC,0xC9ED,0xC9EF,0xC9F0,0xC9F1,0xC9F8, +0xC9F9,0xC9FC,0xCA00,0xCA08,0xCA09,0xCA0B,0xCA0C,0xCA0D, +0xCA14,0xCA18,0xCA29,0xCA4C,0xCA4D,0xCA50,0xCA54,0xCA5C, +0xCA5D,0xCA5F,0xCA60,0xCA61,0xCA68,0xCA7D,0xCA84,0xCA98, +0xCABC,0xCABD,0xCAC0,0xCAC4,0xCACC,0xCACD,0xCACF,0xCAD1, +0xCAD3,0xCAD8,0xCAD9,0xCAE0,0xCAEC,0xCAF4,0xCB08,0xCB10, +0xCB14,0xCB18,0xCB20,0xCB21,0xCB41,0xCB48,0xCB49,0xCB4C, +0xCB50,0xCB58,0xCB59,0xCB5D,0xCB64,0xCB78,0xCB79,0xCB9C, +0xCBB8,0xCBD4,0xCBE4,0xCBE7,0xCBE9,0xCC0C,0xCC0D,0xCC10, +0xCC14,0xCC1C,0xCC1D,0xCC21,0xCC22,0xCC27,0xCC28,0xCC29, +0xCC2C,0xCC2E,0xCC30,0xCC38,0xCC39,0xCC3B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD63D,0xD63E,0xD63F,0xD641,0xD642,0xD643,0xD644,0xD646, +0xD647,0xD64A,0xD64C,0xD64E,0xD64F,0xD650,0xD652,0xD653, +0xD656,0xD657,0xD659,0xD65A,0xD65B,0xD65D,0xD65E,0xD65F, +0xD660,0xD661, 0, 0, 0, 0, 0, 0, +0xD662,0xD663,0xD664,0xD665,0xD666,0xD668,0xD66A,0xD66B, +0xD66C,0xD66D,0xD66E,0xD66F,0xD672,0xD673,0xD675,0xD676, +0xD677,0xD678,0xD679,0xD67A,0xD67B,0xD67C,0xD67D,0xD67E, +0xD67F,0xD680, 0, 0, 0, 0, 0, 0, +0xD681,0xD682,0xD684,0xD686,0xD687,0xD688,0xD689,0xD68A, +0xD68B,0xD68E,0xD68F,0xD691,0xD692,0xD693,0xD695,0xD696, +0xD697,0xD698,0xD699,0xD69A,0xD69B,0xD69C,0xD69E,0xD6A0, +0xD6A2,0xD6A3,0xD6A4,0xD6A5,0xD6A6,0xD6A7,0xD6A9,0xD6AA, +0xCC3C,0xCC3D,0xCC3E,0xCC44,0xCC45,0xCC48,0xCC4C,0xCC54, +0xCC55,0xCC57,0xCC58,0xCC59,0xCC60,0xCC64,0xCC66,0xCC68, +0xCC70,0xCC75,0xCC98,0xCC99,0xCC9C,0xCCA0,0xCCA8,0xCCA9, +0xCCAB,0xCCAC,0xCCAD,0xCCB4,0xCCB5,0xCCB8,0xCCBC,0xCCC4, +0xCCC5,0xCCC7,0xCCC9,0xCCD0,0xCCD4,0xCCE4,0xCCEC,0xCCF0, +0xCD01,0xCD08,0xCD09,0xCD0C,0xCD10,0xCD18,0xCD19,0xCD1B, +0xCD1D,0xCD24,0xCD28,0xCD2C,0xCD39,0xCD5C,0xCD60,0xCD64, +0xCD6C,0xCD6D,0xCD6F,0xCD71,0xCD78,0xCD88,0xCD94,0xCD95, +0xCD98,0xCD9C,0xCDA4,0xCDA5,0xCDA7,0xCDA9,0xCDB0,0xCDC4, +0xCDCC,0xCDD0,0xCDE8,0xCDEC,0xCDF0,0xCDF8,0xCDF9,0xCDFB, +0xCDFD,0xCE04,0xCE08,0xCE0C,0xCE14,0xCE19,0xCE20,0xCE21, +0xCE24,0xCE28,0xCE30,0xCE31,0xCE33,0xCE35, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD6AB,0xD6AD,0xD6AE,0xD6AF,0xD6B1,0xD6B2,0xD6B3,0xD6B4, +0xD6B5,0xD6B6,0xD6B7,0xD6B8,0xD6BA,0xD6BC,0xD6BD,0xD6BE, +0xD6BF,0xD6C0,0xD6C1,0xD6C2,0xD6C3,0xD6C6,0xD6C7,0xD6C9, +0xD6CA,0xD6CB, 0, 0, 0, 0, 0, 0, +0xD6CD,0xD6CE,0xD6CF,0xD6D0,0xD6D2,0xD6D3,0xD6D5,0xD6D6, +0xD6D8,0xD6DA,0xD6DB,0xD6DC,0xD6DD,0xD6DE,0xD6DF,0xD6E1, +0xD6E2,0xD6E3,0xD6E5,0xD6E6,0xD6E7,0xD6E9,0xD6EA,0xD6EB, +0xD6EC,0xD6ED, 0, 0, 0, 0, 0, 0, +0xD6EE,0xD6EF,0xD6F1,0xD6F2,0xD6F3,0xD6F4,0xD6F6,0xD6F7, +0xD6F8,0xD6F9,0xD6FA,0xD6FB,0xD6FE,0xD6FF,0xD701,0xD702, +0xD703,0xD705,0xD706,0xD707,0xD708,0xD709,0xD70A,0xD70B, +0xD70C,0xD70D,0xD70E,0xD70F,0xD710,0xD712,0xD713,0xD714, +0xCE58,0xCE59,0xCE5C,0xCE5F,0xCE60,0xCE61,0xCE68,0xCE69, +0xCE6B,0xCE6D,0xCE74,0xCE75,0xCE78,0xCE7C,0xCE84,0xCE85, +0xCE87,0xCE89,0xCE90,0xCE91,0xCE94,0xCE98,0xCEA0,0xCEA1, +0xCEA3,0xCEA4,0xCEA5,0xCEAC,0xCEAD,0xCEC1,0xCEE4,0xCEE5, +0xCEE8,0xCEEB,0xCEEC,0xCEF4,0xCEF5,0xCEF7,0xCEF8,0xCEF9, +0xCF00,0xCF01,0xCF04,0xCF08,0xCF10,0xCF11,0xCF13,0xCF15, +0xCF1C,0xCF20,0xCF24,0xCF2C,0xCF2D,0xCF2F,0xCF30,0xCF31, +0xCF38,0xCF54,0xCF55,0xCF58,0xCF5C,0xCF64,0xCF65,0xCF67, +0xCF69,0xCF70,0xCF71,0xCF74,0xCF78,0xCF80,0xCF85,0xCF8C, +0xCFA1,0xCFA8,0xCFB0,0xCFC4,0xCFE0,0xCFE1,0xCFE4,0xCFE8, +0xCFF0,0xCFF1,0xCFF3,0xCFF5,0xCFFC,0xD000,0xD004,0xD011, +0xD018,0xD02D,0xD034,0xD035,0xD038,0xD03C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD715,0xD716,0xD717,0xD71A,0xD71B,0xD71D,0xD71E,0xD71F, +0xD721,0xD722,0xD723,0xD724,0xD725,0xD726,0xD727,0xD72A, +0xD72C,0xD72E,0xD72F,0xD730,0xD731,0xD732,0xD733,0xD736, +0xD737,0xD739, 0, 0, 0, 0, 0, 0, +0xD73A,0xD73B,0xD73D,0xD73E,0xD73F,0xD740,0xD741,0xD742, +0xD743,0xD745,0xD746,0xD748,0xD74A,0xD74B,0xD74C,0xD74D, +0xD74E,0xD74F,0xD752,0xD753,0xD755,0xD75A,0xD75B,0xD75C, +0xD75D,0xD75E, 0, 0, 0, 0, 0, 0, +0xD75F,0xD762,0xD764,0xD766,0xD767,0xD768,0xD76A,0xD76B, +0xD76D,0xD76E,0xD76F,0xD771,0xD772,0xD773,0xD775,0xD776, +0xD777,0xD778,0xD779,0xD77A,0xD77B,0xD77E,0xD77F,0xD780, +0xD782,0xD783,0xD784,0xD785,0xD786,0xD787,0xD78A,0xD78B, +0xD044,0xD045,0xD047,0xD049,0xD050,0xD054,0xD058,0xD060, +0xD06C,0xD06D,0xD070,0xD074,0xD07C,0xD07D,0xD081,0xD0A4, +0xD0A5,0xD0A8,0xD0AC,0xD0B4,0xD0B5,0xD0B7,0xD0B9,0xD0C0, +0xD0C1,0xD0C4,0xD0C8,0xD0C9,0xD0D0,0xD0D1,0xD0D3,0xD0D4, +0xD0D5,0xD0DC,0xD0DD,0xD0E0,0xD0E4,0xD0EC,0xD0ED,0xD0EF, +0xD0F0,0xD0F1,0xD0F8,0xD10D,0xD130,0xD131,0xD134,0xD138, +0xD13A,0xD140,0xD141,0xD143,0xD144,0xD145,0xD14C,0xD14D, +0xD150,0xD154,0xD15C,0xD15D,0xD15F,0xD161,0xD168,0xD16C, +0xD17C,0xD184,0xD188,0xD1A0,0xD1A1,0xD1A4,0xD1A8,0xD1B0, +0xD1B1,0xD1B3,0xD1B5,0xD1BA,0xD1BC,0xD1C0,0xD1D8,0xD1F4, +0xD1F8,0xD207,0xD209,0xD210,0xD22C,0xD22D,0xD230,0xD234, +0xD23C,0xD23D,0xD23F,0xD241,0xD248,0xD25C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD78D,0xD78E,0xD78F,0xD791,0xD792,0xD793,0xD794,0xD795, +0xD796,0xD797,0xD79A,0xD79C,0xD79E,0xD79F,0xD7A0,0xD7A1, +0xD7A2,0xD7A3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD264,0xD280,0xD281,0xD284,0xD288,0xD290,0xD291,0xD295, +0xD29C,0xD2A0,0xD2A4,0xD2AC,0xD2B1,0xD2B8,0xD2B9,0xD2BC, +0xD2BF,0xD2C0,0xD2C2,0xD2C8,0xD2C9,0xD2CB,0xD2D4,0xD2D8, +0xD2DC,0xD2E4,0xD2E5,0xD2F0,0xD2F1,0xD2F4,0xD2F8,0xD300, +0xD301,0xD303,0xD305,0xD30C,0xD30D,0xD30E,0xD310,0xD314, +0xD316,0xD31C,0xD31D,0xD31F,0xD320,0xD321,0xD325,0xD328, +0xD329,0xD32C,0xD330,0xD338,0xD339,0xD33B,0xD33C,0xD33D, +0xD344,0xD345,0xD37C,0xD37D,0xD380,0xD384,0xD38C,0xD38D, +0xD38F,0xD390,0xD391,0xD398,0xD399,0xD39C,0xD3A0,0xD3A8, +0xD3A9,0xD3AB,0xD3AD,0xD3B4,0xD3B8,0xD3BC,0xD3C4,0xD3C5, +0xD3C8,0xD3C9,0xD3D0,0xD3D8,0xD3E1,0xD3E3,0xD3EC,0xD3ED, +0xD3F0,0xD3F4,0xD3FC,0xD3FD,0xD3FF,0xD401, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD408,0xD41D,0xD440,0xD444,0xD45C,0xD460,0xD464,0xD46D, +0xD46F,0xD478,0xD479,0xD47C,0xD47F,0xD480,0xD482,0xD488, +0xD489,0xD48B,0xD48D,0xD494,0xD4A9,0xD4CC,0xD4D0,0xD4D4, +0xD4DC,0xD4DF,0xD4E8,0xD4EC,0xD4F0,0xD4F8,0xD4FB,0xD4FD, +0xD504,0xD508,0xD50C,0xD514,0xD515,0xD517,0xD53C,0xD53D, +0xD540,0xD544,0xD54C,0xD54D,0xD54F,0xD551,0xD558,0xD559, +0xD55C,0xD560,0xD565,0xD568,0xD569,0xD56B,0xD56D,0xD574, +0xD575,0xD578,0xD57C,0xD584,0xD585,0xD587,0xD588,0xD589, +0xD590,0xD5A5,0xD5C8,0xD5C9,0xD5CC,0xD5D0,0xD5D2,0xD5D8, +0xD5D9,0xD5DB,0xD5DD,0xD5E4,0xD5E5,0xD5E8,0xD5EC,0xD5F4, +0xD5F5,0xD5F7,0xD5F9,0xD600,0xD601,0xD604,0xD608,0xD610, +0xD611,0xD613,0xD614,0xD615,0xD61C,0xD620, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD624,0xD62D,0xD638,0xD639,0xD63C,0xD640,0xD645,0xD648, +0xD649,0xD64B,0xD64D,0xD651,0xD654,0xD655,0xD658,0xD65C, +0xD667,0xD669,0xD670,0xD671,0xD674,0xD683,0xD685,0xD68C, +0xD68D,0xD690,0xD694,0xD69D,0xD69F,0xD6A1,0xD6A8,0xD6AC, +0xD6B0,0xD6B9,0xD6BB,0xD6C4,0xD6C5,0xD6C8,0xD6CC,0xD6D1, +0xD6D4,0xD6D7,0xD6D9,0xD6E0,0xD6E4,0xD6E8,0xD6F0,0xD6F5, +0xD6FC,0xD6FD,0xD700,0xD704,0xD711,0xD718,0xD719,0xD71C, +0xD720,0xD728,0xD729,0xD72B,0xD72D,0xD734,0xD735,0xD738, +0xD73C,0xD744,0xD747,0xD749,0xD750,0xD751,0xD754,0xD756, +0xD757,0xD758,0xD759,0xD760,0xD761,0xD763,0xD765,0xD769, +0xD76C,0xD770,0xD774,0xD77C,0xD77D,0xD781,0xD788,0xD789, +0xD78C,0xD790,0xD798,0xD799,0xD79B,0xD79D}; + +/* page 1 0xCAA1-0xFDFE */ +static const uint16 tab_ksc5601_uni1[]={ +0x4F3D,0x4F73,0x5047,0x50F9,0x52A0,0x53EF,0x5475,0x54E5, +0x5609,0x5AC1,0x5BB6,0x6687,0x67B6,0x67B7,0x67EF,0x6B4C, +0x73C2,0x75C2,0x7A3C,0x82DB,0x8304,0x8857,0x8888,0x8A36, +0x8CC8,0x8DCF,0x8EFB,0x8FE6,0x99D5,0x523B,0x5374,0x5404, +0x606A,0x6164,0x6BBC,0x73CF,0x811A,0x89BA,0x89D2,0x95A3, +0x4F83,0x520A,0x58BE,0x5978,0x59E6,0x5E72,0x5E79,0x61C7, +0x63C0,0x6746,0x67EC,0x687F,0x6F97,0x764E,0x770B,0x78F5, +0x7A08,0x7AFF,0x7C21,0x809D,0x826E,0x8271,0x8AEB,0x9593, +0x4E6B,0x559D,0x66F7,0x6E34,0x78A3,0x7AED,0x845B,0x8910, +0x874E,0x97A8,0x52D8,0x574E,0x582A,0x5D4C,0x611F,0x61BE, +0x6221,0x6562,0x67D1,0x6A44,0x6E1B,0x7518,0x75B3,0x76E3, +0x77B0,0x7D3A,0x90AF,0x9451,0x9452,0x9F95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5323,0x5CAC,0x7532,0x80DB,0x9240,0x9598,0x525B,0x5808, +0x59DC,0x5CA1,0x5D17,0x5EB7,0x5F3A,0x5F4A,0x6177,0x6C5F, +0x757A,0x7586,0x7CE0,0x7D73,0x7DB1,0x7F8C,0x8154,0x8221, +0x8591,0x8941,0x8B1B,0x92FC,0x964D,0x9C47,0x4ECB,0x4EF7, +0x500B,0x51F1,0x584F,0x6137,0x613E,0x6168,0x6539,0x69EA, +0x6F11,0x75A5,0x7686,0x76D6,0x7B87,0x82A5,0x84CB,0xF900, +0x93A7,0x958B,0x5580,0x5BA2,0x5751,0xF901,0x7CB3,0x7FB9, +0x91B5,0x5028,0x53BB,0x5C45,0x5DE8,0x62D2,0x636E,0x64DA, +0x64E7,0x6E20,0x70AC,0x795B,0x8DDD,0x8E1E,0xF902,0x907D, +0x9245,0x92F8,0x4E7E,0x4EF6,0x5065,0x5DFE,0x5EFA,0x6106, +0x6957,0x8171,0x8654,0x8E47,0x9375,0x9A2B,0x4E5E,0x5091, +0x6770,0x6840,0x5109,0x528D,0x5292,0x6AA2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x77BC,0x9210,0x9ED4,0x52AB,0x602F,0x8FF2,0x5048,0x61A9, +0x63ED,0x64CA,0x683C,0x6A84,0x6FC0,0x8188,0x89A1,0x9694, +0x5805,0x727D,0x72AC,0x7504,0x7D79,0x7E6D,0x80A9,0x898B, +0x8B74,0x9063,0x9D51,0x6289,0x6C7A,0x6F54,0x7D50,0x7F3A, +0x8A23,0x517C,0x614A,0x7B9D,0x8B19,0x9257,0x938C,0x4EAC, +0x4FD3,0x501E,0x50BE,0x5106,0x52C1,0x52CD,0x537F,0x5770, +0x5883,0x5E9A,0x5F91,0x6176,0x61AC,0x64CE,0x656C,0x666F, +0x66BB,0x66F4,0x6897,0x6D87,0x7085,0x70F1,0x749F,0x74A5, +0x74CA,0x75D9,0x786C,0x78EC,0x7ADF,0x7AF6,0x7D45,0x7D93, +0x8015,0x803F,0x811B,0x8396,0x8B66,0x8F15,0x9015,0x93E1, +0x9803,0x9838,0x9A5A,0x9BE8,0x4FC2,0x5553,0x583A,0x5951, +0x5B63,0x5C46,0x60B8,0x6212,0x6842,0x68B0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x68E8,0x6EAA,0x754C,0x7678,0x78CE,0x7A3D,0x7CFB,0x7E6B, +0x7E7C,0x8A08,0x8AA1,0x8C3F,0x968E,0x9DC4,0x53E4,0x53E9, +0x544A,0x5471,0x56FA,0x59D1,0x5B64,0x5C3B,0x5EAB,0x62F7, +0x6537,0x6545,0x6572,0x66A0,0x67AF,0x69C1,0x6CBD,0x75FC, +0x7690,0x777E,0x7A3F,0x7F94,0x8003,0x80A1,0x818F,0x82E6, +0x82FD,0x83F0,0x85C1,0x8831,0x88B4,0x8AA5,0xF903,0x8F9C, +0x932E,0x96C7,0x9867,0x9AD8,0x9F13,0x54ED,0x659B,0x66F2, +0x688F,0x7A40,0x8C37,0x9D60,0x56F0,0x5764,0x5D11,0x6606, +0x68B1,0x68CD,0x6EFE,0x7428,0x889E,0x9BE4,0x6C68,0xF904, +0x9AA8,0x4F9B,0x516C,0x5171,0x529F,0x5B54,0x5DE5,0x6050, +0x606D,0x62F1,0x63A7,0x653B,0x73D9,0x7A7A,0x86A3,0x8CA2, +0x978F,0x4E32,0x5BE1,0x6208,0x679C,0x74DC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x79D1,0x83D3,0x8A87,0x8AB2,0x8DE8,0x904E,0x934B,0x9846, +0x5ED3,0x69E8,0x85FF,0x90ED,0xF905,0x51A0,0x5B98,0x5BEC, +0x6163,0x68FA,0x6B3E,0x704C,0x742F,0x74D8,0x7BA1,0x7F50, +0x83C5,0x89C0,0x8CAB,0x95DC,0x9928,0x522E,0x605D,0x62EC, +0x9002,0x4F8A,0x5149,0x5321,0x58D9,0x5EE3,0x66E0,0x6D38, +0x709A,0x72C2,0x73D6,0x7B50,0x80F1,0x945B,0x5366,0x639B, +0x7F6B,0x4E56,0x5080,0x584A,0x58DE,0x602A,0x6127,0x62D0, +0x69D0,0x9B41,0x5B8F,0x7D18,0x80B1,0x8F5F,0x4EA4,0x50D1, +0x54AC,0x55AC,0x5B0C,0x5DA0,0x5DE7,0x652A,0x654E,0x6821, +0x6A4B,0x72E1,0x768E,0x77EF,0x7D5E,0x7FF9,0x81A0,0x854E, +0x86DF,0x8F03,0x8F4E,0x90CA,0x9903,0x9A55,0x9BAB,0x4E18, +0x4E45,0x4E5D,0x4EC7,0x4FF1,0x5177,0x52FE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5340,0x53E3,0x53E5,0x548E,0x5614,0x5775,0x57A2,0x5BC7, +0x5D87,0x5ED0,0x61FC,0x62D8,0x6551,0x67B8,0x67E9,0x69CB, +0x6B50,0x6BC6,0x6BEC,0x6C42,0x6E9D,0x7078,0x72D7,0x7396, +0x7403,0x77BF,0x77E9,0x7A76,0x7D7F,0x8009,0x81FC,0x8205, +0x820A,0x82DF,0x8862,0x8B33,0x8CFC,0x8EC0,0x9011,0x90B1, +0x9264,0x92B6,0x99D2,0x9A45,0x9CE9,0x9DD7,0x9F9C,0x570B, +0x5C40,0x83CA,0x97A0,0x97AB,0x9EB4,0x541B,0x7A98,0x7FA4, +0x88D9,0x8ECD,0x90E1,0x5800,0x5C48,0x6398,0x7A9F,0x5BAE, +0x5F13,0x7A79,0x7AAE,0x828E,0x8EAC,0x5026,0x5238,0x52F8, +0x5377,0x5708,0x62F3,0x6372,0x6B0A,0x6DC3,0x7737,0x53A5, +0x7357,0x8568,0x8E76,0x95D5,0x673A,0x6AC3,0x6F70,0x8A6D, +0x8ECC,0x994B,0xF906,0x6677,0x6B78,0x8CB4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9B3C,0xF907,0x53EB,0x572D,0x594E,0x63C6,0x69FB,0x73EA, +0x7845,0x7ABA,0x7AC5,0x7CFE,0x8475,0x898F,0x8D73,0x9035, +0x95A8,0x52FB,0x5747,0x7547,0x7B60,0x83CC,0x921E,0xF908, +0x6A58,0x514B,0x524B,0x5287,0x621F,0x68D8,0x6975,0x9699, +0x50C5,0x52A4,0x52E4,0x61C3,0x65A4,0x6839,0x69FF,0x747E, +0x7B4B,0x82B9,0x83EB,0x89B2,0x8B39,0x8FD1,0x9949,0xF909, +0x4ECA,0x5997,0x64D2,0x6611,0x6A8E,0x7434,0x7981,0x79BD, +0x82A9,0x887E,0x887F,0x895F,0xF90A,0x9326,0x4F0B,0x53CA, +0x6025,0x6271,0x6C72,0x7D1A,0x7D66,0x4E98,0x5162,0x77DC, +0x80AF,0x4F01,0x4F0E,0x5176,0x5180,0x55DC,0x5668,0x573B, +0x57FA,0x57FC,0x5914,0x5947,0x5993,0x5BC4,0x5C90,0x5D0E, +0x5DF1,0x5E7E,0x5FCC,0x6280,0x65D7,0x65E3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x671E,0x671F,0x675E,0x68CB,0x68C4,0x6A5F,0x6B3A,0x6C23, +0x6C7D,0x6C82,0x6DC7,0x7398,0x7426,0x742A,0x7482,0x74A3, +0x7578,0x757F,0x7881,0x78EF,0x7941,0x7947,0x7948,0x797A, +0x7B95,0x7D00,0x7DBA,0x7F88,0x8006,0x802D,0x808C,0x8A18, +0x8B4F,0x8C48,0x8D77,0x9321,0x9324,0x98E2,0x9951,0x9A0E, +0x9A0F,0x9A65,0x9E92,0x7DCA,0x4F76,0x5409,0x62EE,0x6854, +0x91D1,0x55AB,0x513A,0xF90B,0xF90C,0x5A1C,0x61E6,0xF90D, +0x62CF,0x62FF,0xF90E,0xF90F,0xF910,0xF911,0xF912,0xF913, +0x90A3,0xF914,0xF915,0xF916,0xF917,0xF918,0x8AFE,0xF919, +0xF91A,0xF91B,0xF91C,0x6696,0xF91D,0x7156,0xF91E,0xF91F, +0x96E3,0xF920,0x634F,0x637A,0x5357,0xF921,0x678F,0x6960, +0x6E73,0xF922,0x7537,0xF923,0xF924,0xF925, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7D0D,0xF926,0xF927,0x8872,0x56CA,0x5A18,0xF928,0xF929, +0xF92A,0xF92B,0xF92C,0x4E43,0xF92D,0x5167,0x5948,0x67F0, +0x8010,0xF92E,0x5973,0x5E74,0x649A,0x79CA,0x5FF5,0x606C, +0x62C8,0x637B,0x5BE7,0x5BD7,0x52AA,0xF92F,0x5974,0x5F29, +0x6012,0xF930,0xF931,0xF932,0x7459,0xF933,0xF934,0xF935, +0xF936,0xF937,0xF938,0x99D1,0xF939,0xF93A,0xF93B,0xF93C, +0xF93D,0xF93E,0xF93F,0xF940,0xF941,0xF942,0xF943,0x6FC3, +0xF944,0xF945,0x81BF,0x8FB2,0x60F1,0xF946,0xF947,0x8166, +0xF948,0xF949,0x5C3F,0xF94A,0xF94B,0xF94C,0xF94D,0xF94E, +0xF94F,0xF950,0xF951,0x5AE9,0x8A25,0x677B,0x7D10,0xF952, +0xF953,0xF954,0xF955,0xF956,0xF957,0x80FD,0xF958,0xF959, +0x5C3C,0x6CE5,0x533F,0x6EBA,0x591A,0x8336, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4E39,0x4EB6,0x4F46,0x55AE,0x5718,0x58C7,0x5F56,0x65B7, +0x65E6,0x6A80,0x6BB5,0x6E4D,0x77ED,0x7AEF,0x7C1E,0x7DDE, +0x86CB,0x8892,0x9132,0x935B,0x64BB,0x6FBE,0x737A,0x75B8, +0x9054,0x5556,0x574D,0x61BA,0x64D4,0x66C7,0x6DE1,0x6E5B, +0x6F6D,0x6FB9,0x75F0,0x8043,0x81BD,0x8541,0x8983,0x8AC7, +0x8B5A,0x931F,0x6C93,0x7553,0x7B54,0x8E0F,0x905D,0x5510, +0x5802,0x5858,0x5E62,0x6207,0x649E,0x68E0,0x7576,0x7CD6, +0x87B3,0x9EE8,0x4EE3,0x5788,0x576E,0x5927,0x5C0D,0x5CB1, +0x5E36,0x5F85,0x6234,0x64E1,0x73B3,0x81FA,0x888B,0x8CB8, +0x968A,0x9EDB,0x5B85,0x5FB7,0x60B3,0x5012,0x5200,0x5230, +0x5716,0x5835,0x5857,0x5C0E,0x5C60,0x5CF6,0x5D8B,0x5EA6, +0x5F92,0x60BC,0x6311,0x6389,0x6417,0x6843, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x68F9,0x6AC2,0x6DD8,0x6E21,0x6ED4,0x6FE4,0x71FE,0x76DC, +0x7779,0x79B1,0x7A3B,0x8404,0x89A9,0x8CED,0x8DF3,0x8E48, +0x9003,0x9014,0x9053,0x90FD,0x934D,0x9676,0x97DC,0x6BD2, +0x7006,0x7258,0x72A2,0x7368,0x7763,0x79BF,0x7BE4,0x7E9B, +0x8B80,0x58A9,0x60C7,0x6566,0x65FD,0x66BE,0x6C8C,0x711E, +0x71C9,0x8C5A,0x9813,0x4E6D,0x7A81,0x4EDD,0x51AC,0x51CD, +0x52D5,0x540C,0x61A7,0x6771,0x6850,0x68DF,0x6D1E,0x6F7C, +0x75BC,0x77B3,0x7AE5,0x80F4,0x8463,0x9285,0x515C,0x6597, +0x675C,0x6793,0x75D8,0x7AC7,0x8373,0xF95A,0x8C46,0x9017, +0x982D,0x5C6F,0x81C0,0x829A,0x9041,0x906F,0x920D,0x5F97, +0x5D9D,0x6A59,0x71C8,0x767B,0x7B49,0x85E4,0x8B04,0x9127, +0x9A30,0x5587,0x61F6,0xF95B,0x7669,0x7F85, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x863F,0x87BA,0x88F8,0x908F,0xF95C,0x6D1B,0x70D9,0x73DE, +0x7D61,0x843D,0xF95D,0x916A,0x99F1,0xF95E,0x4E82,0x5375, +0x6B04,0x6B12,0x703E,0x721B,0x862D,0x9E1E,0x524C,0x8FA3, +0x5D50,0x64E5,0x652C,0x6B16,0x6FEB,0x7C43,0x7E9C,0x85CD, +0x8964,0x89BD,0x62C9,0x81D8,0x881F,0x5ECA,0x6717,0x6D6A, +0x72FC,0x7405,0x746F,0x8782,0x90DE,0x4F86,0x5D0D,0x5FA0, +0x840A,0x51B7,0x63A0,0x7565,0x4EAE,0x5006,0x5169,0x51C9, +0x6881,0x6A11,0x7CAE,0x7CB1,0x7CE7,0x826F,0x8AD2,0x8F1B, +0x91CF,0x4FB6,0x5137,0x52F5,0x5442,0x5EEC,0x616E,0x623E, +0x65C5,0x6ADA,0x6FFE,0x792A,0x85DC,0x8823,0x95AD,0x9A62, +0x9A6A,0x9E97,0x9ECE,0x529B,0x66C6,0x6B77,0x701D,0x792B, +0x8F62,0x9742,0x6190,0x6200,0x6523,0x6F23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7149,0x7489,0x7DF4,0x806F,0x84EE,0x8F26,0x9023,0x934A, +0x51BD,0x5217,0x52A3,0x6D0C,0x70C8,0x88C2,0x5EC9,0x6582, +0x6BAE,0x6FC2,0x7C3E,0x7375,0x4EE4,0x4F36,0x56F9,0xF95F, +0x5CBA,0x5DBA,0x601C,0x73B2,0x7B2D,0x7F9A,0x7FCE,0x8046, +0x901E,0x9234,0x96F6,0x9748,0x9818,0x9F61,0x4F8B,0x6FA7, +0x79AE,0x91B4,0x96B7,0x52DE,0xF960,0x6488,0x64C4,0x6AD3, +0x6F5E,0x7018,0x7210,0x76E7,0x8001,0x8606,0x865C,0x8DEF, +0x8F05,0x9732,0x9B6F,0x9DFA,0x9E75,0x788C,0x797F,0x7DA0, +0x83C9,0x9304,0x9E7F,0x9E93,0x8AD6,0x58DF,0x5F04,0x6727, +0x7027,0x74CF,0x7C60,0x807E,0x5121,0x7028,0x7262,0x78CA, +0x8CC2,0x8CDA,0x8CF4,0x96F7,0x4E86,0x50DA,0x5BEE,0x5ED6, +0x6599,0x71CE,0x7642,0x77AD,0x804A,0x84FC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x907C,0x9B27,0x9F8D,0x58D8,0x5A41,0x5C62,0x6A13,0x6DDA, +0x6F0F,0x763B,0x7D2F,0x7E37,0x851E,0x8938,0x93E4,0x964B, +0x5289,0x65D2,0x67F3,0x69B4,0x6D41,0x6E9C,0x700F,0x7409, +0x7460,0x7559,0x7624,0x786B,0x8B2C,0x985E,0x516D,0x622E, +0x9678,0x4F96,0x502B,0x5D19,0x6DEA,0x7DB8,0x8F2A,0x5F8B, +0x6144,0x6817,0xF961,0x9686,0x52D2,0x808B,0x51DC,0x51CC, +0x695E,0x7A1C,0x7DBE,0x83F1,0x9675,0x4FDA,0x5229,0x5398, +0x540F,0x550E,0x5C65,0x60A7,0x674E,0x68A8,0x6D6C,0x7281, +0x72F8,0x7406,0x7483,0xF962,0x75E2,0x7C6C,0x7F79,0x7FB8, +0x8389,0x88CF,0x88E1,0x91CC,0x91D0,0x96E2,0x9BC9,0x541D, +0x6F7E,0x71D0,0x7498,0x85FA,0x8EAA,0x96A3,0x9C57,0x9E9F, +0x6797,0x6DCB,0x7433,0x81E8,0x9716,0x782C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7ACB,0x7B20,0x7C92,0x6469,0x746A,0x75F2,0x78BC,0x78E8, +0x99AC,0x9B54,0x9EBB,0x5BDE,0x5E55,0x6F20,0x819C,0x83AB, +0x9088,0x4E07,0x534D,0x5A29,0x5DD2,0x5F4E,0x6162,0x633D, +0x6669,0x66FC,0x6EFF,0x6F2B,0x7063,0x779E,0x842C,0x8513, +0x883B,0x8F13,0x9945,0x9C3B,0x551C,0x62B9,0x672B,0x6CAB, +0x8309,0x896A,0x977A,0x4EA1,0x5984,0x5FD8,0x5FD9,0x671B, +0x7DB2,0x7F54,0x8292,0x832B,0x83BD,0x8F1E,0x9099,0x57CB, +0x59B9,0x5A92,0x5BD0,0x6627,0x679A,0x6885,0x6BCF,0x7164, +0x7F75,0x8CB7,0x8CE3,0x9081,0x9B45,0x8108,0x8C8A,0x964C, +0x9A40,0x9EA5,0x5B5F,0x6C13,0x731B,0x76F2,0x76DF,0x840C, +0x51AA,0x8993,0x514D,0x5195,0x52C9,0x68C9,0x6C94,0x7704, +0x7720,0x7DBF,0x7DEC,0x9762,0x9EB5,0x6EC5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8511,0x51A5,0x540D,0x547D,0x660E,0x669D,0x6927,0x6E9F, +0x76BF,0x7791,0x8317,0x84C2,0x879F,0x9169,0x9298,0x9CF4, +0x8882,0x4FAE,0x5192,0x52DF,0x59C6,0x5E3D,0x6155,0x6478, +0x6479,0x66AE,0x67D0,0x6A21,0x6BCD,0x6BDB,0x725F,0x7261, +0x7441,0x7738,0x77DB,0x8017,0x82BC,0x8305,0x8B00,0x8B28, +0x8C8C,0x6728,0x6C90,0x7267,0x76EE,0x7766,0x7A46,0x9DA9, +0x6B7F,0x6C92,0x5922,0x6726,0x8499,0x536F,0x5893,0x5999, +0x5EDF,0x63CF,0x6634,0x6773,0x6E3A,0x732B,0x7AD7,0x82D7, +0x9328,0x52D9,0x5DEB,0x61AE,0x61CB,0x620A,0x62C7,0x64AB, +0x65E0,0x6959,0x6B66,0x6BCB,0x7121,0x73F7,0x755D,0x7E46, +0x821E,0x8302,0x856A,0x8AA3,0x8CBF,0x9727,0x9D61,0x58A8, +0x9ED8,0x5011,0x520E,0x543B,0x554F,0x6587, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6C76,0x7D0A,0x7D0B,0x805E,0x868A,0x9580,0x96EF,0x52FF, +0x6C95,0x7269,0x5473,0x5A9A,0x5C3E,0x5D4B,0x5F4C,0x5FAE, +0x672A,0x68B6,0x6963,0x6E3C,0x6E44,0x7709,0x7C73,0x7F8E, +0x8587,0x8B0E,0x8FF7,0x9761,0x9EF4,0x5CB7,0x60B6,0x610D, +0x61AB,0x654F,0x65FB,0x65FC,0x6C11,0x6CEF,0x739F,0x73C9, +0x7DE1,0x9594,0x5BC6,0x871C,0x8B10,0x525D,0x535A,0x62CD, +0x640F,0x64B2,0x6734,0x6A38,0x6CCA,0x73C0,0x749E,0x7B94, +0x7C95,0x7E1B,0x818A,0x8236,0x8584,0x8FEB,0x96F9,0x99C1, +0x4F34,0x534A,0x53CD,0x53DB,0x62CC,0x642C,0x6500,0x6591, +0x69C3,0x6CEE,0x6F58,0x73ED,0x7554,0x7622,0x76E4,0x76FC, +0x78D0,0x78FB,0x792C,0x7D46,0x822C,0x87E0,0x8FD4,0x9812, +0x98EF,0x52C3,0x62D4,0x64A5,0x6E24,0x6F51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x767C,0x8DCB,0x91B1,0x9262,0x9AEE,0x9B43,0x5023,0x508D, +0x574A,0x59A8,0x5C28,0x5E47,0x5F77,0x623F,0x653E,0x65B9, +0x65C1,0x6609,0x678B,0x699C,0x6EC2,0x78C5,0x7D21,0x80AA, +0x8180,0x822B,0x82B3,0x84A1,0x868C,0x8A2A,0x8B17,0x90A6, +0x9632,0x9F90,0x500D,0x4FF3,0xF963,0x57F9,0x5F98,0x62DC, +0x6392,0x676F,0x6E43,0x7119,0x76C3,0x80CC,0x80DA,0x88F4, +0x88F5,0x8919,0x8CE0,0x8F29,0x914D,0x966A,0x4F2F,0x4F70, +0x5E1B,0x67CF,0x6822,0x767D,0x767E,0x9B44,0x5E61,0x6A0A, +0x7169,0x71D4,0x756A,0xF964,0x7E41,0x8543,0x85E9,0x98DC, +0x4F10,0x7B4F,0x7F70,0x95A5,0x51E1,0x5E06,0x68B5,0x6C3E, +0x6C4E,0x6CDB,0x72AF,0x7BC4,0x8303,0x6CD5,0x743A,0x50FB, +0x5288,0x58C1,0x64D8,0x6A97,0x74A7,0x7656, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x78A7,0x8617,0x95E2,0x9739,0xF965,0x535E,0x5F01,0x8B8A, +0x8FA8,0x8FAF,0x908A,0x5225,0x77A5,0x9C49,0x9F08,0x4E19, +0x5002,0x5175,0x5C5B,0x5E77,0x661E,0x663A,0x67C4,0x68C5, +0x70B3,0x7501,0x75C5,0x79C9,0x7ADD,0x8F27,0x9920,0x9A08, +0x4FDD,0x5821,0x5831,0x5BF6,0x666E,0x6B65,0x6D11,0x6E7A, +0x6F7D,0x73E4,0x752B,0x83E9,0x88DC,0x8913,0x8B5C,0x8F14, +0x4F0F,0x50D5,0x5310,0x535C,0x5B93,0x5FA9,0x670D,0x798F, +0x8179,0x832F,0x8514,0x8907,0x8986,0x8F39,0x8F3B,0x99A5, +0x9C12,0x672C,0x4E76,0x4FF8,0x5949,0x5C01,0x5CEF,0x5CF0, +0x6367,0x68D2,0x70FD,0x71A2,0x742B,0x7E2B,0x84EC,0x8702, +0x9022,0x92D2,0x9CF3,0x4E0D,0x4ED8,0x4FEF,0x5085,0x5256, +0x526F,0x5426,0x5490,0x57E0,0x592B,0x5A66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5B5A,0x5B75,0x5BCC,0x5E9C,0xF966,0x6276,0x6577,0x65A7, +0x6D6E,0x6EA5,0x7236,0x7B26,0x7C3F,0x7F36,0x8150,0x8151, +0x819A,0x8240,0x8299,0x83A9,0x8A03,0x8CA0,0x8CE6,0x8CFB, +0x8D74,0x8DBA,0x90E8,0x91DC,0x961C,0x9644,0x99D9,0x9CE7, +0x5317,0x5206,0x5429,0x5674,0x58B3,0x5954,0x596E,0x5FFF, +0x61A4,0x626E,0x6610,0x6C7E,0x711A,0x76C6,0x7C89,0x7CDE, +0x7D1B,0x82AC,0x8CC1,0x96F0,0xF967,0x4F5B,0x5F17,0x5F7F, +0x62C2,0x5D29,0x670B,0x68DA,0x787C,0x7E43,0x9D6C,0x4E15, +0x5099,0x5315,0x532A,0x5351,0x5983,0x5A62,0x5E87,0x60B2, +0x618A,0x6249,0x6279,0x6590,0x6787,0x69A7,0x6BD4,0x6BD6, +0x6BD7,0x6BD8,0x6CB8,0xF968,0x7435,0x75FA,0x7812,0x7891, +0x79D5,0x79D8,0x7C83,0x7DCB,0x7FE1,0x80A5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x813E,0x81C2,0x83F2,0x871A,0x88E8,0x8AB9,0x8B6C,0x8CBB, +0x9119,0x975E,0x98DB,0x9F3B,0x56AC,0x5B2A,0x5F6C,0x658C, +0x6AB3,0x6BAF,0x6D5C,0x6FF1,0x7015,0x725D,0x73AD,0x8CA7, +0x8CD3,0x983B,0x6191,0x6C37,0x8058,0x9A01,0x4E4D,0x4E8B, +0x4E9B,0x4ED5,0x4F3A,0x4F3C,0x4F7F,0x4FDF,0x50FF,0x53F2, +0x53F8,0x5506,0x55E3,0x56DB,0x58EB,0x5962,0x5A11,0x5BEB, +0x5BFA,0x5C04,0x5DF3,0x5E2B,0x5F99,0x601D,0x6368,0x659C, +0x65AF,0x67F6,0x67FB,0x68AD,0x6B7B,0x6C99,0x6CD7,0x6E23, +0x7009,0x7345,0x7802,0x793E,0x7940,0x7960,0x79C1,0x7BE9, +0x7D17,0x7D72,0x8086,0x820D,0x838E,0x84D1,0x86C7,0x88DF, +0x8A50,0x8A5E,0x8B1D,0x8CDC,0x8D66,0x8FAD,0x90AA,0x98FC, +0x99DF,0x9E9D,0x524A,0xF969,0x6714,0xF96A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5098,0x522A,0x5C71,0x6563,0x6C55,0x73CA,0x7523,0x759D, +0x7B97,0x849C,0x9178,0x9730,0x4E77,0x6492,0x6BBA,0x715E, +0x85A9,0x4E09,0xF96B,0x6749,0x68EE,0x6E17,0x829F,0x8518, +0x886B,0x63F7,0x6F81,0x9212,0x98AF,0x4E0A,0x50B7,0x50CF, +0x511F,0x5546,0x55AA,0x5617,0x5B40,0x5C19,0x5CE0,0x5E38, +0x5E8A,0x5EA0,0x5EC2,0x60F3,0x6851,0x6A61,0x6E58,0x723D, +0x7240,0x72C0,0x76F8,0x7965,0x7BB1,0x7FD4,0x88F3,0x89F4, +0x8A73,0x8C61,0x8CDE,0x971C,0x585E,0x74BD,0x8CFD,0x55C7, +0xF96C,0x7A61,0x7D22,0x8272,0x7272,0x751F,0x7525,0xF96D, +0x7B19,0x5885,0x58FB,0x5DBC,0x5E8F,0x5EB6,0x5F90,0x6055, +0x6292,0x637F,0x654D,0x6691,0x66D9,0x66F8,0x6816,0x68F2, +0x7280,0x745E,0x7B6E,0x7D6E,0x7DD6,0x7F72, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x80E5,0x8212,0x85AF,0x897F,0x8A93,0x901D,0x92E4,0x9ECD, +0x9F20,0x5915,0x596D,0x5E2D,0x60DC,0x6614,0x6673,0x6790, +0x6C50,0x6DC5,0x6F5F,0x77F3,0x78A9,0x84C6,0x91CB,0x932B, +0x4ED9,0x50CA,0x5148,0x5584,0x5B0B,0x5BA3,0x6247,0x657E, +0x65CB,0x6E32,0x717D,0x7401,0x7444,0x7487,0x74BF,0x766C, +0x79AA,0x7DDA,0x7E55,0x7FA8,0x817A,0x81B3,0x8239,0x861A, +0x87EC,0x8A75,0x8DE3,0x9078,0x9291,0x9425,0x994D,0x9BAE, +0x5368,0x5C51,0x6954,0x6CC4,0x6D29,0x6E2B,0x820C,0x859B, +0x893B,0x8A2D,0x8AAA,0x96EA,0x9F67,0x5261,0x66B9,0x6BB2, +0x7E96,0x87FE,0x8D0D,0x9583,0x965D,0x651D,0x6D89,0x71EE, +0xF96E,0x57CE,0x59D3,0x5BAC,0x6027,0x60FA,0x6210,0x661F, +0x665F,0x7329,0x73F9,0x76DB,0x7701,0x7B6C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8056,0x8072,0x8165,0x8AA0,0x9192,0x4E16,0x52E2,0x6B72, +0x6D17,0x7A05,0x7B39,0x7D30,0xF96F,0x8CB0,0x53EC,0x562F, +0x5851,0x5BB5,0x5C0F,0x5C11,0x5DE2,0x6240,0x6383,0x6414, +0x662D,0x68B3,0x6CBC,0x6D88,0x6EAF,0x701F,0x70A4,0x71D2, +0x7526,0x758F,0x758E,0x7619,0x7B11,0x7BE0,0x7C2B,0x7D20, +0x7D39,0x852C,0x856D,0x8607,0x8A34,0x900D,0x9061,0x90B5, +0x92B7,0x97F6,0x9A37,0x4FD7,0x5C6C,0x675F,0x6D91,0x7C9F, +0x7E8C,0x8B16,0x8D16,0x901F,0x5B6B,0x5DFD,0x640D,0x84C0, +0x905C,0x98E1,0x7387,0x5B8B,0x609A,0x677E,0x6DDE,0x8A1F, +0x8AA6,0x9001,0x980C,0x5237,0xF970,0x7051,0x788E,0x9396, +0x8870,0x91D7,0x4FEE,0x53D7,0x55FD,0x56DA,0x5782,0x58FD, +0x5AC2,0x5B88,0x5CAB,0x5CC0,0x5E25,0x6101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x620D,0x624B,0x6388,0x641C,0x6536,0x6578,0x6A39,0x6B8A, +0x6C34,0x6D19,0x6F31,0x71E7,0x72E9,0x7378,0x7407,0x74B2, +0x7626,0x7761,0x79C0,0x7A57,0x7AEA,0x7CB9,0x7D8F,0x7DAC, +0x7E61,0x7F9E,0x8129,0x8331,0x8490,0x84DA,0x85EA,0x8896, +0x8AB0,0x8B90,0x8F38,0x9042,0x9083,0x916C,0x9296,0x92B9, +0x968B,0x96A7,0x96A8,0x96D6,0x9700,0x9808,0x9996,0x9AD3, +0x9B1A,0x53D4,0x587E,0x5919,0x5B70,0x5BBF,0x6DD1,0x6F5A, +0x719F,0x7421,0x74B9,0x8085,0x83FD,0x5DE1,0x5F87,0x5FAA, +0x6042,0x65EC,0x6812,0x696F,0x6A53,0x6B89,0x6D35,0x6DF3, +0x73E3,0x76FE,0x77AC,0x7B4D,0x7D14,0x8123,0x821C,0x8340, +0x84F4,0x8563,0x8A62,0x8AC4,0x9187,0x931E,0x9806,0x99B4, +0x620C,0x8853,0x8FF0,0x9265,0x5D07,0x5D27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5D69,0x745F,0x819D,0x8768,0x6FD5,0x62FE,0x7FD2,0x8936, +0x8972,0x4E1E,0x4E58,0x50E7,0x52DD,0x5347,0x627F,0x6607, +0x7E69,0x8805,0x965E,0x4F8D,0x5319,0x5636,0x59CB,0x5AA4, +0x5C38,0x5C4E,0x5C4D,0x5E02,0x5F11,0x6043,0x65BD,0x662F, +0x6642,0x67BE,0x67F4,0x731C,0x77E2,0x793A,0x7FC5,0x8494, +0x84CD,0x8996,0x8A66,0x8A69,0x8AE1,0x8C55,0x8C7A,0x57F4, +0x5BD4,0x5F0F,0x606F,0x62ED,0x690D,0x6B96,0x6E5C,0x7184, +0x7BD2,0x8755,0x8B58,0x8EFE,0x98DF,0x98FE,0x4F38,0x4F81, +0x4FE1,0x547B,0x5A20,0x5BB8,0x613C,0x65B0,0x6668,0x71FC, +0x7533,0x795E,0x7D33,0x814E,0x81E3,0x8398,0x85AA,0x85CE, +0x8703,0x8A0A,0x8EAB,0x8F9B,0xF971,0x8FC5,0x5931,0x5BA4, +0x5BE6,0x6089,0x5BE9,0x5C0B,0x5FC3,0x6C81, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF972,0x6DF1,0x700B,0x751A,0x82AF,0x8AF6,0x4EC0,0x5341, +0xF973,0x96D9,0x6C0F,0x4E9E,0x4FC4,0x5152,0x555E,0x5A25, +0x5CE8,0x6211,0x7259,0x82BD,0x83AA,0x86FE,0x8859,0x8A1D, +0x963F,0x96C5,0x9913,0x9D09,0x9D5D,0x580A,0x5CB3,0x5DBD, +0x5E44,0x60E1,0x6115,0x63E1,0x6A02,0x6E25,0x9102,0x9354, +0x984E,0x9C10,0x9F77,0x5B89,0x5CB8,0x6309,0x664F,0x6848, +0x773C,0x96C1,0x978D,0x9854,0x9B9F,0x65A1,0x8B01,0x8ECB, +0x95BC,0x5535,0x5CA9,0x5DD6,0x5EB5,0x6697,0x764C,0x83F4, +0x95C7,0x58D3,0x62BC,0x72CE,0x9D28,0x4EF0,0x592E,0x600F, +0x663B,0x6B83,0x79E7,0x9D26,0x5393,0x54C0,0x57C3,0x5D16, +0x611B,0x66D6,0x6DAF,0x788D,0x827E,0x9698,0x9744,0x5384, +0x627C,0x6396,0x6DB2,0x7E0A,0x814B,0x984D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6AFB,0x7F4C,0x9DAF,0x9E1A,0x4E5F,0x503B,0x51B6,0x591C, +0x60F9,0x63F6,0x6930,0x723A,0x8036,0xF974,0x91CE,0x5F31, +0xF975,0xF976,0x7D04,0x82E5,0x846F,0x84BB,0x85E5,0x8E8D, +0xF977,0x4F6F,0xF978,0xF979,0x58E4,0x5B43,0x6059,0x63DA, +0x6518,0x656D,0x6698,0xF97A,0x694A,0x6A23,0x6D0B,0x7001, +0x716C,0x75D2,0x760D,0x79B3,0x7A70,0xF97B,0x7F8A,0xF97C, +0x8944,0xF97D,0x8B93,0x91C0,0x967D,0xF97E,0x990A,0x5704, +0x5FA1,0x65BC,0x6F01,0x7600,0x79A6,0x8A9E,0x99AD,0x9B5A, +0x9F6C,0x5104,0x61B6,0x6291,0x6A8D,0x81C6,0x5043,0x5830, +0x5F66,0x7109,0x8A00,0x8AFA,0x5B7C,0x8616,0x4FFA,0x513C, +0x56B4,0x5944,0x63A9,0x6DF9,0x5DAA,0x696D,0x5186,0x4E88, +0x4F59,0xF97F,0xF980,0xF981,0x5982,0xF982, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF983,0x6B5F,0x6C5D,0xF984,0x74B5,0x7916,0xF985,0x8207, +0x8245,0x8339,0x8F3F,0x8F5D,0xF986,0x9918,0xF987,0xF988, +0xF989,0x4EA6,0xF98A,0x57DF,0x5F79,0x6613,0xF98B,0xF98C, +0x75AB,0x7E79,0x8B6F,0xF98D,0x9006,0x9A5B,0x56A5,0x5827, +0x59F8,0x5A1F,0x5BB4,0xF98E,0x5EF6,0xF98F,0xF990,0x6350, +0x633B,0xF991,0x693D,0x6C87,0x6CBF,0x6D8E,0x6D93,0x6DF5, +0x6F14,0xF992,0x70DF,0x7136,0x7159,0xF993,0x71C3,0x71D5, +0xF994,0x784F,0x786F,0xF995,0x7B75,0x7DE3,0xF996,0x7E2F, +0xF997,0x884D,0x8EDF,0xF998,0xF999,0xF99A,0x925B,0xF99B, +0x9CF6,0xF99C,0xF99D,0xF99E,0x6085,0x6D85,0xF99F,0x71B1, +0xF9A0,0xF9A1,0x95B1,0x53AD,0xF9A2,0xF9A3,0xF9A4,0x67D3, +0xF9A5,0x708E,0x7130,0x7430,0x8276,0x82D2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF9A6,0x95BB,0x9AE5,0x9E7D,0x66C4,0xF9A7,0x71C1,0x8449, +0xF9A8,0xF9A9,0x584B,0xF9AA,0xF9AB,0x5DB8,0x5F71,0xF9AC, +0x6620,0x668E,0x6979,0x69AE,0x6C38,0x6CF3,0x6E36,0x6F41, +0x6FDA,0x701B,0x702F,0x7150,0x71DF,0x7370,0xF9AD,0x745B, +0xF9AE,0x74D4,0x76C8,0x7A4E,0x7E93,0xF9AF,0xF9B0,0x82F1, +0x8A60,0x8FCE,0xF9B1,0x9348,0xF9B2,0x9719,0xF9B3,0xF9B4, +0x4E42,0x502A,0xF9B5,0x5208,0x53E1,0x66F3,0x6C6D,0x6FCA, +0x730A,0x777F,0x7A62,0x82AE,0x85DD,0x8602,0xF9B6,0x88D4, +0x8A63,0x8B7D,0x8C6B,0xF9B7,0x92B3,0xF9B8,0x9713,0x9810, +0x4E94,0x4F0D,0x4FC9,0x50B2,0x5348,0x543E,0x5433,0x55DA, +0x5862,0x58BA,0x5967,0x5A1B,0x5BE4,0x609F,0xF9B9,0x61CA, +0x6556,0x65FF,0x6664,0x68A7,0x6C5A,0x6FB3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x70CF,0x71AC,0x7352,0x7B7D,0x8708,0x8AA4,0x9C32,0x9F07, +0x5C4B,0x6C83,0x7344,0x7389,0x923A,0x6EAB,0x7465,0x761F, +0x7A69,0x7E15,0x860A,0x5140,0x58C5,0x64C1,0x74EE,0x7515, +0x7670,0x7FC1,0x9095,0x96CD,0x9954,0x6E26,0x74E6,0x7AA9, +0x7AAA,0x81E5,0x86D9,0x8778,0x8A1B,0x5A49,0x5B8C,0x5B9B, +0x68A1,0x6900,0x6D63,0x73A9,0x7413,0x742C,0x7897,0x7DE9, +0x7FEB,0x8118,0x8155,0x839E,0x8C4C,0x962E,0x9811,0x66F0, +0x5F80,0x65FA,0x6789,0x6C6A,0x738B,0x502D,0x5A03,0x6B6A, +0x77EE,0x5916,0x5D6C,0x5DCD,0x7325,0x754F,0xF9BA,0xF9BB, +0x50E5,0x51F9,0x582F,0x592D,0x5996,0x59DA,0x5BE5,0xF9BC, +0xF9BD,0x5DA2,0x62D7,0x6416,0x6493,0x64FE,0xF9BE,0x66DC, +0xF9BF,0x6A48,0xF9C0,0x71FF,0x7464,0xF9C1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7A88,0x7AAF,0x7E47,0x7E5E,0x8000,0x8170,0xF9C2,0x87EF, +0x8981,0x8B20,0x9059,0xF9C3,0x9080,0x9952,0x617E,0x6B32, +0x6D74,0x7E1F,0x8925,0x8FB1,0x4FD1,0x50AD,0x5197,0x52C7, +0x57C7,0x5889,0x5BB9,0x5EB8,0x6142,0x6995,0x6D8C,0x6E67, +0x6EB6,0x7194,0x7462,0x7528,0x752C,0x8073,0x8338,0x84C9, +0x8E0A,0x9394,0x93DE,0xF9C4,0x4E8E,0x4F51,0x5076,0x512A, +0x53C8,0x53CB,0x53F3,0x5B87,0x5BD3,0x5C24,0x611A,0x6182, +0x65F4,0x725B,0x7397,0x7440,0x76C2,0x7950,0x7991,0x79B9, +0x7D06,0x7FBD,0x828B,0x85D5,0x865E,0x8FC2,0x9047,0x90F5, +0x91EA,0x9685,0x96E8,0x96E9,0x52D6,0x5F67,0x65ED,0x6631, +0x682F,0x715C,0x7A36,0x90C1,0x980A,0x4E91,0xF9C5,0x6A52, +0x6B9E,0x6F90,0x7189,0x8018,0x82B8,0x8553, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x904B,0x9695,0x96F2,0x97FB,0x851A,0x9B31,0x4E90,0x718A, +0x96C4,0x5143,0x539F,0x54E1,0x5713,0x5712,0x57A3,0x5A9B, +0x5AC4,0x5BC3,0x6028,0x613F,0x63F4,0x6C85,0x6D39,0x6E72, +0x6E90,0x7230,0x733F,0x7457,0x82D1,0x8881,0x8F45,0x9060, +0xF9C6,0x9662,0x9858,0x9D1B,0x6708,0x8D8A,0x925E,0x4F4D, +0x5049,0x50DE,0x5371,0x570D,0x59D4,0x5A01,0x5C09,0x6170, +0x6690,0x6E2D,0x7232,0x744B,0x7DEF,0x80C3,0x840E,0x8466, +0x853F,0x875F,0x885B,0x8918,0x8B02,0x9055,0x97CB,0x9B4F, +0x4E73,0x4F91,0x5112,0x516A,0xF9C7,0x552F,0x55A9,0x5B7A, +0x5BA5,0x5E7C,0x5E7D,0x5EBE,0x60A0,0x60DF,0x6108,0x6109, +0x63C4,0x6538,0x6709,0xF9C8,0x67D4,0x67DA,0xF9C9,0x6961, +0x6962,0x6CB9,0x6D27,0xF9CA,0x6E38,0xF9CB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6FE1,0x7336,0x7337,0xF9CC,0x745C,0x7531,0xF9CD,0x7652, +0xF9CE,0xF9CF,0x7DAD,0x81FE,0x8438,0x88D5,0x8A98,0x8ADB, +0x8AED,0x8E30,0x8E42,0x904A,0x903E,0x907A,0x9149,0x91C9, +0x936E,0xF9D0,0xF9D1,0x5809,0xF9D2,0x6BD3,0x8089,0x80B2, +0xF9D3,0xF9D4,0x5141,0x596B,0x5C39,0xF9D5,0xF9D6,0x6F64, +0x73A7,0x80E4,0x8D07,0xF9D7,0x9217,0x958F,0xF9D8,0xF9D9, +0xF9DA,0xF9DB,0x807F,0x620E,0x701C,0x7D68,0x878D,0xF9DC, +0x57A0,0x6069,0x6147,0x6BB7,0x8ABE,0x9280,0x96B1,0x4E59, +0x541F,0x6DEB,0x852D,0x9670,0x97F3,0x98EE,0x63D6,0x6CE3, +0x9091,0x51DD,0x61C9,0x81BA,0x9DF9,0x4F9D,0x501A,0x5100, +0x5B9C,0x610F,0x61FF,0x64EC,0x6905,0x6BC5,0x7591,0x77E3, +0x7FA9,0x8264,0x858F,0x87FB,0x8863,0x8ABC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8B70,0x91AB,0x4E8C,0x4EE5,0x4F0A,0xF9DD,0xF9DE,0x5937, +0x59E8,0xF9DF,0x5DF2,0x5F1B,0x5F5B,0x6021,0xF9E0,0xF9E1, +0xF9E2,0xF9E3,0x723E,0x73E5,0xF9E4,0x7570,0x75CD,0xF9E5, +0x79FB,0xF9E6,0x800C,0x8033,0x8084,0x82E1,0x8351,0xF9E7, +0xF9E8,0x8CBD,0x8CB3,0x9087,0xF9E9,0xF9EA,0x98F4,0x990C, +0xF9EB,0xF9EC,0x7037,0x76CA,0x7FCA,0x7FCC,0x7FFC,0x8B1A, +0x4EBA,0x4EC1,0x5203,0x5370,0xF9ED,0x54BD,0x56E0,0x59FB, +0x5BC5,0x5F15,0x5FCD,0x6E6E,0xF9EE,0xF9EF,0x7D6A,0x8335, +0xF9F0,0x8693,0x8A8D,0xF9F1,0x976D,0x9777,0xF9F2,0xF9F3, +0x4E00,0x4F5A,0x4F7E,0x58F9,0x65E5,0x6EA2,0x9038,0x93B0, +0x99B9,0x4EFB,0x58EC,0x598A,0x59D9,0x6041,0xF9F4,0xF9F5, +0x7A14,0xF9F6,0x834F,0x8CC3,0x5165,0x5344, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF9F7,0xF9F8,0xF9F9,0x4ECD,0x5269,0x5B55,0x82BF,0x4ED4, +0x523A,0x54A8,0x59C9,0x59FF,0x5B50,0x5B57,0x5B5C,0x6063, +0x6148,0x6ECB,0x7099,0x716E,0x7386,0x74F7,0x75B5,0x78C1, +0x7D2B,0x8005,0x81EA,0x8328,0x8517,0x85C9,0x8AEE,0x8CC7, +0x96CC,0x4F5C,0x52FA,0x56BC,0x65AB,0x6628,0x707C,0x70B8, +0x7235,0x7DBD,0x828D,0x914C,0x96C0,0x9D72,0x5B71,0x68E7, +0x6B98,0x6F7A,0x76DE,0x5C91,0x66AB,0x6F5B,0x7BB4,0x7C2A, +0x8836,0x96DC,0x4E08,0x4ED7,0x5320,0x5834,0x58BB,0x58EF, +0x596C,0x5C07,0x5E33,0x5E84,0x5F35,0x638C,0x66B2,0x6756, +0x6A1F,0x6AA3,0x6B0C,0x6F3F,0x7246,0xF9FA,0x7350,0x748B, +0x7AE0,0x7CA7,0x8178,0x81DF,0x81E7,0x838A,0x846C,0x8523, +0x8594,0x85CF,0x88DD,0x8D13,0x91AC,0x9577, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x969C,0x518D,0x54C9,0x5728,0x5BB0,0x624D,0x6750,0x683D, +0x6893,0x6E3D,0x6ED3,0x707D,0x7E21,0x88C1,0x8CA1,0x8F09, +0x9F4B,0x9F4E,0x722D,0x7B8F,0x8ACD,0x931A,0x4F47,0x4F4E, +0x5132,0x5480,0x59D0,0x5E95,0x62B5,0x6775,0x696E,0x6A17, +0x6CAE,0x6E1A,0x72D9,0x732A,0x75BD,0x7BB8,0x7D35,0x82E7, +0x83F9,0x8457,0x85F7,0x8A5B,0x8CAF,0x8E87,0x9019,0x90B8, +0x96CE,0x9F5F,0x52E3,0x540A,0x5AE1,0x5BC2,0x6458,0x6575, +0x6EF4,0x72C4,0xF9FB,0x7684,0x7A4D,0x7B1B,0x7C4D,0x7E3E, +0x7FDF,0x837B,0x8B2B,0x8CCA,0x8D64,0x8DE1,0x8E5F,0x8FEA, +0x8FF9,0x9069,0x93D1,0x4F43,0x4F7A,0x50B3,0x5168,0x5178, +0x524D,0x526A,0x5861,0x587C,0x5960,0x5C08,0x5C55,0x5EDB, +0x609B,0x6230,0x6813,0x6BBF,0x6C08,0x6FB1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x714E,0x7420,0x7530,0x7538,0x7551,0x7672,0x7B4C,0x7B8B, +0x7BAD,0x7BC6,0x7E8F,0x8A6E,0x8F3E,0x8F49,0x923F,0x9293, +0x9322,0x942B,0x96FB,0x985A,0x986B,0x991E,0x5207,0x622A, +0x6298,0x6D59,0x7664,0x7ACA,0x7BC0,0x7D76,0x5360,0x5CBE, +0x5E97,0x6F38,0x70B9,0x7C98,0x9711,0x9B8E,0x9EDE,0x63A5, +0x647A,0x8776,0x4E01,0x4E95,0x4EAD,0x505C,0x5075,0x5448, +0x59C3,0x5B9A,0x5E40,0x5EAD,0x5EF7,0x5F81,0x60C5,0x633A, +0x653F,0x6574,0x65CC,0x6676,0x6678,0x67FE,0x6968,0x6A89, +0x6B63,0x6C40,0x6DC0,0x6DE8,0x6E1F,0x6E5E,0x701E,0x70A1, +0x738E,0x73FD,0x753A,0x775B,0x7887,0x798E,0x7A0B,0x7A7D, +0x7CBE,0x7D8E,0x8247,0x8A02,0x8AEA,0x8C9E,0x912D,0x914A, +0x91D8,0x9266,0x92CC,0x9320,0x9706,0x9756, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x975C,0x9802,0x9F0E,0x5236,0x5291,0x557C,0x5824,0x5E1D, +0x5F1F,0x608C,0x63D0,0x68AF,0x6FDF,0x796D,0x7B2C,0x81CD, +0x85BA,0x88FD,0x8AF8,0x8E44,0x918D,0x9664,0x969B,0x973D, +0x984C,0x9F4A,0x4FCE,0x5146,0x51CB,0x52A9,0x5632,0x5F14, +0x5F6B,0x63AA,0x64CD,0x65E9,0x6641,0x66FA,0x66F9,0x671D, +0x689D,0x68D7,0x69FD,0x6F15,0x6F6E,0x7167,0x71E5,0x722A, +0x74AA,0x773A,0x7956,0x795A,0x79DF,0x7A20,0x7A95,0x7C97, +0x7CDF,0x7D44,0x7E70,0x8087,0x85FB,0x86A4,0x8A54,0x8ABF, +0x8D99,0x8E81,0x9020,0x906D,0x91E3,0x963B,0x96D5,0x9CE5, +0x65CF,0x7C07,0x8DB3,0x93C3,0x5B58,0x5C0A,0x5352,0x62D9, +0x731D,0x5027,0x5B97,0x5F9E,0x60B0,0x616B,0x68D5,0x6DD9, +0x742E,0x7A2E,0x7D42,0x7D9C,0x7E31,0x816B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8E2A,0x8E35,0x937E,0x9418,0x4F50,0x5750,0x5DE6,0x5EA7, +0x632B,0x7F6A,0x4E3B,0x4F4F,0x4F8F,0x505A,0x59DD,0x80C4, +0x546A,0x5468,0x55FE,0x594F,0x5B99,0x5DDE,0x5EDA,0x665D, +0x6731,0x67F1,0x682A,0x6CE8,0x6D32,0x6E4A,0x6F8D,0x70B7, +0x73E0,0x7587,0x7C4C,0x7D02,0x7D2C,0x7DA2,0x821F,0x86DB, +0x8A3B,0x8A85,0x8D70,0x8E8A,0x8F33,0x9031,0x914E,0x9152, +0x9444,0x99D0,0x7AF9,0x7CA5,0x4FCA,0x5101,0x51C6,0x57C8, +0x5BEF,0x5CFB,0x6659,0x6A3D,0x6D5A,0x6E96,0x6FEC,0x710C, +0x756F,0x7AE3,0x8822,0x9021,0x9075,0x96CB,0x99FF,0x8301, +0x4E2D,0x4EF2,0x8846,0x91CD,0x537D,0x6ADB,0x696B,0x6C41, +0x847A,0x589E,0x618E,0x66FE,0x62EF,0x70DD,0x7511,0x75C7, +0x7E52,0x84B8,0x8B49,0x8D08,0x4E4B,0x53EA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x54AB,0x5730,0x5740,0x5FD7,0x6301,0x6307,0x646F,0x652F, +0x65E8,0x667A,0x679D,0x67B3,0x6B62,0x6C60,0x6C9A,0x6F2C, +0x77E5,0x7825,0x7949,0x7957,0x7D19,0x80A2,0x8102,0x81F3, +0x829D,0x82B7,0x8718,0x8A8C,0xF9FC,0x8D04,0x8DBE,0x9072, +0x76F4,0x7A19,0x7A37,0x7E54,0x8077,0x5507,0x55D4,0x5875, +0x632F,0x6422,0x6649,0x664B,0x686D,0x699B,0x6B84,0x6D25, +0x6EB1,0x73CD,0x7468,0x74A1,0x755B,0x75B9,0x76E1,0x771E, +0x778B,0x79E6,0x7E09,0x7E1D,0x81FB,0x852F,0x8897,0x8A3A, +0x8CD1,0x8EEB,0x8FB0,0x9032,0x93AD,0x9663,0x9673,0x9707, +0x4F84,0x53F1,0x59EA,0x5AC9,0x5E19,0x684E,0x74C6,0x75BE, +0x79E9,0x7A92,0x81A3,0x86ED,0x8CEA,0x8DCC,0x8FED,0x659F, +0x6715,0xF9FD,0x57F7,0x6F57,0x7DDD,0x8F2F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x93F6,0x96C6,0x5FB5,0x61F2,0x6F84,0x4E14,0x4F98,0x501F, +0x53C9,0x55DF,0x5D6F,0x5DEE,0x6B21,0x6B64,0x78CB,0x7B9A, +0xF9FE,0x8E49,0x8ECA,0x906E,0x6349,0x643E,0x7740,0x7A84, +0x932F,0x947F,0x9F6A,0x64B0,0x6FAF,0x71E6,0x74A8,0x74DA, +0x7AC4,0x7C12,0x7E82,0x7CB2,0x7E98,0x8B9A,0x8D0A,0x947D, +0x9910,0x994C,0x5239,0x5BDF,0x64E6,0x672D,0x7D2E,0x50ED, +0x53C3,0x5879,0x6158,0x6159,0x61FA,0x65AC,0x7AD9,0x8B92, +0x8B96,0x5009,0x5021,0x5275,0x5531,0x5A3C,0x5EE0,0x5F70, +0x6134,0x655E,0x660C,0x6636,0x66A2,0x69CD,0x6EC4,0x6F32, +0x7316,0x7621,0x7A93,0x8139,0x8259,0x83D6,0x84BC,0x50B5, +0x57F0,0x5BC0,0x5BE8,0x5F69,0x63A1,0x7826,0x7DB5,0x83DC, +0x8521,0x91C7,0x91F5,0x518A,0x67F5,0x7B56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8CAC,0x51C4,0x59BB,0x60BD,0x8655,0x501C,0xF9FF,0x5254, +0x5C3A,0x617D,0x621A,0x62D3,0x64F2,0x65A5,0x6ECC,0x7620, +0x810A,0x8E60,0x965F,0x96BB,0x4EDF,0x5343,0x5598,0x5929, +0x5DDD,0x64C5,0x6CC9,0x6DFA,0x7394,0x7A7F,0x821B,0x85A6, +0x8CE4,0x8E10,0x9077,0x91E7,0x95E1,0x9621,0x97C6,0x51F8, +0x54F2,0x5586,0x5FB9,0x64A4,0x6F88,0x7DB4,0x8F1F,0x8F4D, +0x9435,0x50C9,0x5C16,0x6CBE,0x6DFB,0x751B,0x77BB,0x7C3D, +0x7C64,0x8A79,0x8AC2,0x581E,0x59BE,0x5E16,0x6377,0x7252, +0x758A,0x776B,0x8ADC,0x8CBC,0x8F12,0x5EF3,0x6674,0x6DF8, +0x807D,0x83C1,0x8ACB,0x9751,0x9BD6,0xFA00,0x5243,0x66FF, +0x6D95,0x6EEF,0x7DE0,0x8AE6,0x902E,0x905E,0x9AD4,0x521D, +0x527F,0x54E8,0x6194,0x6284,0x62DB,0x68A2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6912,0x695A,0x6A35,0x7092,0x7126,0x785D,0x7901,0x790E, +0x79D2,0x7A0D,0x8096,0x8278,0x82D5,0x8349,0x8549,0x8C82, +0x8D85,0x9162,0x918B,0x91AE,0x4FC3,0x56D1,0x71ED,0x77D7, +0x8700,0x89F8,0x5BF8,0x5FD6,0x6751,0x90A8,0x53E2,0x585A, +0x5BF5,0x60A4,0x6181,0x6460,0x7E3D,0x8070,0x8525,0x9283, +0x64AE,0x50AC,0x5D14,0x6700,0x589C,0x62BD,0x63A8,0x690E, +0x6978,0x6A1E,0x6E6B,0x76BA,0x79CB,0x82BB,0x8429,0x8ACF, +0x8DA8,0x8FFD,0x9112,0x914B,0x919C,0x9310,0x9318,0x939A, +0x96DB,0x9A36,0x9C0D,0x4E11,0x755C,0x795D,0x7AFA,0x7B51, +0x7BC9,0x7E2E,0x84C4,0x8E59,0x8E74,0x8EF8,0x9010,0x6625, +0x693F,0x7443,0x51FA,0x672E,0x9EDC,0x5145,0x5FE0,0x6C96, +0x87F2,0x885D,0x8877,0x60B4,0x81B5,0x8403, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8D05,0x53D6,0x5439,0x5634,0x5A36,0x5C31,0x708A,0x7FE0, +0x805A,0x8106,0x81ED,0x8DA3,0x9189,0x9A5F,0x9DF2,0x5074, +0x4EC4,0x53A0,0x60FB,0x6E2C,0x5C64,0x4F88,0x5024,0x55E4, +0x5CD9,0x5E5F,0x6065,0x6894,0x6CBB,0x6DC4,0x71BE,0x75D4, +0x75F4,0x7661,0x7A1A,0x7A49,0x7DC7,0x7DFB,0x7F6E,0x81F4, +0x86A9,0x8F1C,0x96C9,0x99B3,0x9F52,0x5247,0x52C5,0x98ED, +0x89AA,0x4E03,0x67D2,0x6F06,0x4FB5,0x5BE2,0x6795,0x6C88, +0x6D78,0x741B,0x7827,0x91DD,0x937C,0x87C4,0x79E4,0x7A31, +0x5FEB,0x4ED6,0x54A4,0x553E,0x58AE,0x59A5,0x60F0,0x6253, +0x62D6,0x6736,0x6955,0x8235,0x9640,0x99B1,0x99DD,0x502C, +0x5353,0x5544,0x577C,0xFA01,0x6258,0xFA02,0x64E2,0x666B, +0x67DD,0x6FC1,0x6FEF,0x7422,0x7438,0x8A17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9438,0x5451,0x5606,0x5766,0x5F48,0x619A,0x6B4E,0x7058, +0x70AD,0x7DBB,0x8A95,0x596A,0x812B,0x63A2,0x7708,0x803D, +0x8CAA,0x5854,0x642D,0x69BB,0x5B95,0x5E11,0x6E6F,0xFA03, +0x8569,0x514C,0x53F0,0x592A,0x6020,0x614B,0x6B86,0x6C70, +0x6CF0,0x7B1E,0x80CE,0x82D4,0x8DC6,0x90B0,0x98B1,0xFA04, +0x64C7,0x6FA4,0x6491,0x6504,0x514E,0x5410,0x571F,0x8A0E, +0x615F,0x6876,0xFA05,0x75DB,0x7B52,0x7D71,0x901A,0x5806, +0x69CC,0x817F,0x892A,0x9000,0x9839,0x5078,0x5957,0x59AC, +0x6295,0x900F,0x9B2A,0x615D,0x7279,0x95D6,0x5761,0x5A46, +0x5DF4,0x628A,0x64AD,0x64FA,0x6777,0x6CE2,0x6D3E,0x722C, +0x7436,0x7834,0x7F77,0x82AD,0x8DDB,0x9817,0x5224,0x5742, +0x677F,0x7248,0x74E3,0x8CA9,0x8FA6,0x9211, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x962A,0x516B,0x53ED,0x634C,0x4F69,0x5504,0x6096,0x6557, +0x6C9B,0x6D7F,0x724C,0x72FD,0x7A17,0x8987,0x8C9D,0x5F6D, +0x6F8E,0x70F9,0x81A8,0x610E,0x4FBF,0x504F,0x6241,0x7247, +0x7BC7,0x7DE8,0x7FE9,0x904D,0x97AD,0x9A19,0x8CB6,0x576A, +0x5E73,0x67B0,0x840D,0x8A55,0x5420,0x5B16,0x5E63,0x5EE2, +0x5F0A,0x6583,0x80BA,0x853D,0x9589,0x965B,0x4F48,0x5305, +0x530D,0x530F,0x5486,0x54FA,0x5703,0x5E03,0x6016,0x629B, +0x62B1,0x6355,0xFA06,0x6CE1,0x6D66,0x75B1,0x7832,0x80DE, +0x812F,0x82DE,0x8461,0x84B2,0x888D,0x8912,0x900B,0x92EA, +0x98FD,0x9B91,0x5E45,0x66B4,0x66DD,0x7011,0x7206,0xFA07, +0x4FF5,0x527D,0x5F6A,0x6153,0x6753,0x6A19,0x6F02,0x74E2, +0x7968,0x8868,0x8C79,0x98C7,0x98C4,0x9A43, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x54C1,0x7A1F,0x6953,0x8AF7,0x8C4A,0x98A8,0x99AE,0x5F7C, +0x62AB,0x75B2,0x76AE,0x88AB,0x907F,0x9642,0x5339,0x5F3C, +0x5FC5,0x6CCC,0x73CC,0x7562,0x758B,0x7B46,0x82FE,0x999D, +0x4E4F,0x903C,0x4E0B,0x4F55,0x53A6,0x590F,0x5EC8,0x6630, +0x6CB3,0x7455,0x8377,0x8766,0x8CC0,0x9050,0x971E,0x9C15, +0x58D1,0x5B78,0x8650,0x8B14,0x9DB4,0x5BD2,0x6068,0x608D, +0x65F1,0x6C57,0x6F22,0x6FA3,0x701A,0x7F55,0x7FF0,0x9591, +0x9592,0x9650,0x97D3,0x5272,0x8F44,0x51FD,0x542B,0x54B8, +0x5563,0x558A,0x6ABB,0x6DB5,0x7DD8,0x8266,0x929C,0x9677, +0x9E79,0x5408,0x54C8,0x76D2,0x86E4,0x95A4,0x95D4,0x965C, +0x4EA2,0x4F09,0x59EE,0x5AE6,0x5DF7,0x6052,0x6297,0x676D, +0x6841,0x6C86,0x6E2F,0x7F38,0x809B,0x822A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFA08,0xFA09,0x9805,0x4EA5,0x5055,0x54B3,0x5793,0x595A, +0x5B69,0x5BB3,0x61C8,0x6977,0x6D77,0x7023,0x87F9,0x89E3, +0x8A72,0x8AE7,0x9082,0x99ED,0x9AB8,0x52BE,0x6838,0x5016, +0x5E78,0x674F,0x8347,0x884C,0x4EAB,0x5411,0x56AE,0x73E6, +0x9115,0x97FF,0x9909,0x9957,0x9999,0x5653,0x589F,0x865B, +0x8A31,0x61B2,0x6AF6,0x737B,0x8ED2,0x6B47,0x96AA,0x9A57, +0x5955,0x7200,0x8D6B,0x9769,0x4FD4,0x5CF4,0x5F26,0x61F8, +0x665B,0x6CEB,0x70AB,0x7384,0x73B9,0x73FE,0x7729,0x774D, +0x7D43,0x7D62,0x7E23,0x8237,0x8852,0xFA0A,0x8CE2,0x9249, +0x986F,0x5B51,0x7A74,0x8840,0x9801,0x5ACC,0x4FE0,0x5354, +0x593E,0x5CFD,0x633E,0x6D79,0x72F9,0x8105,0x8107,0x83A2, +0x92CF,0x9830,0x4EA8,0x5144,0x5211,0x578B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5F62,0x6CC2,0x6ECE,0x7005,0x7050,0x70AF,0x7192,0x73E9, +0x7469,0x834A,0x87A2,0x8861,0x9008,0x90A2,0x93A3,0x99A8, +0x516E,0x5F57,0x60E0,0x6167,0x66B3,0x8559,0x8E4A,0x91AF, +0x978B,0x4E4E,0x4E92,0x547C,0x58D5,0x58FA,0x597D,0x5CB5, +0x5F27,0x6236,0x6248,0x660A,0x6667,0x6BEB,0x6D69,0x6DCF, +0x6E56,0x6EF8,0x6F94,0x6FE0,0x6FE9,0x705D,0x72D0,0x7425, +0x745A,0x74E0,0x7693,0x795C,0x7CCA,0x7E1E,0x80E1,0x82A6, +0x846B,0x84BF,0x864E,0x865F,0x8774,0x8B77,0x8C6A,0x93AC, +0x9800,0x9865,0x60D1,0x6216,0x9177,0x5A5A,0x660F,0x6DF7, +0x6E3E,0x743F,0x9B42,0x5FFD,0x60DA,0x7B0F,0x54C4,0x5F18, +0x6C5E,0x6CD3,0x6D2A,0x70D8,0x7D05,0x8679,0x8A0C,0x9D3B, +0x5316,0x548C,0x5B05,0x6A3A,0x706B,0x7575, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x798D,0x79BE,0x82B1,0x83EF,0x8A71,0x8B41,0x8CA8,0x9774, +0xFA0B,0x64F4,0x652B,0x78BA,0x78BB,0x7A6B,0x4E38,0x559A, +0x5950,0x5BA6,0x5E7B,0x60A3,0x63DB,0x6B61,0x6665,0x6853, +0x6E19,0x7165,0x74B0,0x7D08,0x9084,0x9A69,0x9C25,0x6D3B, +0x6ED1,0x733E,0x8C41,0x95CA,0x51F0,0x5E4C,0x5FA8,0x604D, +0x60F6,0x6130,0x614C,0x6643,0x6644,0x69A5,0x6CC1,0x6E5F, +0x6EC9,0x6F62,0x714C,0x749C,0x7687,0x7BC1,0x7C27,0x8352, +0x8757,0x9051,0x968D,0x9EC3,0x532F,0x56DE,0x5EFB,0x5F8A, +0x6062,0x6094,0x61F7,0x6666,0x6703,0x6A9C,0x6DEE,0x6FAE, +0x7070,0x736A,0x7E6A,0x81BE,0x8334,0x86D4,0x8AA8,0x8CC4, +0x5283,0x7372,0x5B96,0x6A6B,0x9404,0x54EE,0x5686,0x5B5D, +0x6548,0x6585,0x66C9,0x689F,0x6D8D,0x6DC6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x723B,0x80B4,0x9175,0x9A4D,0x4FAF,0x5019,0x539A,0x540E, +0x543C,0x5589,0x55C5,0x5E3F,0x5F8C,0x673D,0x7166,0x73DD, +0x9005,0x52DB,0x52F3,0x5864,0x58CE,0x7104,0x718F,0x71FB, +0x85B0,0x8A13,0x6688,0x85A8,0x55A7,0x6684,0x714A,0x8431, +0x5349,0x5599,0x6BC1,0x5F59,0x5FBD,0x63EE,0x6689,0x7147, +0x8AF1,0x8F1D,0x9EBE,0x4F11,0x643A,0x70CB,0x7566,0x8667, +0x6064,0x8B4E,0x9DF8,0x5147,0x51F6,0x5308,0x6D36,0x80F8, +0x9ED1,0x6615,0x6B23,0x7098,0x75D5,0x5403,0x5C79,0x7D07, +0x8A16,0x6B20,0x6B3D,0x6B46,0x5438,0x6070,0x6D3D,0x7FD5, +0x8208,0x50D6,0x51DE,0x559C,0x566B,0x56CD,0x59EC,0x5B09, +0x5E0C,0x6199,0x6198,0x6231,0x665E,0x66E6,0x7199,0x71B9, +0x71BA,0x72A7,0x79A7,0x7A00,0x7FB2,0x8A70}; + +static int func_ksc5601_uni_onechar(int code){ + if ((code>=0x8141)&&(code<=0xC8FE)) + return(tab_ksc5601_uni0[code-0x8141]); + if ((code>=0xCAA1)&&(code<=0xFDFE)) + return(tab_ksc5601_uni1[code-0xCAA1]); + return(0); +} +/* page 0 0x00A1-0x0167 */ +static const uint16 tab_uni_ksc56010[]={ +0xA2AE, 0, 0,0xA2B4, 0, 0,0xA1D7,0xA1A7, + 0,0xA8A3, 0, 0,0xA1A9,0xA2E7, 0,0xA1C6, +0xA1BE,0xA9F7,0xA9F8,0xA2A5, 0,0xA2D2,0xA1A4,0xA2AC, +0xA9F6,0xA8AC, 0,0xA8F9,0xA8F6,0xA8FA,0xA2AF, 0, + 0, 0, 0, 0, 0,0xA8A1, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA8A2, + 0, 0, 0, 0, 0, 0,0xA1BF,0xA8AA, + 0, 0, 0, 0, 0,0xA8AD,0xA9AC, 0, + 0, 0, 0, 0, 0,0xA9A1, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA9A3, + 0, 0, 0, 0, 0, 0,0xA1C0,0xA9AA, + 0, 0, 0, 0, 0,0xA9AD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA9A2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA8A4,0xA9A4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA9A5,0xA8A6,0xA9A6, 0, 0, 0, 0,0xA9A7, + 0, 0, 0, 0, 0, 0,0xA8A8,0xA9A8, +0xA8A9,0xA9A9, 0, 0, 0, 0, 0, 0, +0xA9B0,0xA8AF,0xA9AF, 0, 0, 0, 0, 0, + 0,0xA8AB,0xA9AB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA8AE,0xA9AE}; + +/* page 1 0x02C7-0x0451 */ +static const uint16 tab_uni_ksc56011[]={ +0xA2A7, 0, 0, 0, 0, 0, 0, 0, + 0,0xA2B0, 0, 0, 0, 0, 0, 0, + 0,0xA2A8,0xA2AB,0xA2AA,0xA2AD, 0,0xA2A9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA5C1,0xA5C2,0xA5C3,0xA5C4,0xA5C5,0xA5C6, +0xA5C7,0xA5C8,0xA5C9,0xA5CA,0xA5CB,0xA5CC,0xA5CD,0xA5CE, +0xA5CF,0xA5D0,0xA5D1, 0,0xA5D2,0xA5D3,0xA5D4,0xA5D5, +0xA5D6,0xA5D7,0xA5D8, 0, 0, 0, 0, 0, + 0, 0,0xA5E1,0xA5E2,0xA5E3,0xA5E4,0xA5E5,0xA5E6, +0xA5E7,0xA5E8,0xA5E9,0xA5EA,0xA5EB,0xA5EC,0xA5ED,0xA5EE, +0xA5EF,0xA5F0,0xA5F1, 0,0xA5F2,0xA5F3,0xA5F4,0xA5F5, +0xA5F6,0xA5F7,0xA5F8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xACA7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xACA1,0xACA2,0xACA3,0xACA4,0xACA5,0xACA6,0xACA8, +0xACA9,0xACAA,0xACAB,0xACAC,0xACAD,0xACAE,0xACAF,0xACB0, +0xACB1,0xACB2,0xACB3,0xACB4,0xACB5,0xACB6,0xACB7,0xACB8, +0xACB9,0xACBA,0xACBB,0xACBC,0xACBD,0xACBE,0xACBF,0xACC0, +0xACC1,0xACD1,0xACD2,0xACD3,0xACD4,0xACD5,0xACD6,0xACD8, +0xACD9,0xACDA,0xACDB,0xACDC,0xACDD,0xACDE,0xACDF,0xACE0, +0xACE1,0xACE2,0xACE3,0xACE4,0xACE5,0xACE6,0xACE7,0xACE8, +0xACE9,0xACEA,0xACEB,0xACEC,0xACED,0xACEE,0xACEF,0xACF0, +0xACF1, 0,0xACD7}; + +/* page 2 0x2015-0x2312 */ +static const uint16 tab_uni_ksc56012[]={ +0xA1AA, 0, 0,0xA1AE,0xA1AF, 0, 0,0xA1B0, +0xA1B1, 0, 0,0xA2D3,0xA2D4, 0, 0, 0, +0xA1A5,0xA1A6, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA2B6, 0,0xA1C7,0xA1C8, 0, + 0, 0, 0, 0, 0, 0,0xA1D8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA9F9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA9FA, 0,0xA9FB,0xA9FC,0xA9FD,0xA9FE, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA2E6, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA1C9, 0, + 0, 0, 0, 0,0xA2B5, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA7A4, 0, + 0,0xA2E0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA2E5,0xA2E2, 0, 0, + 0,0xA7D9, 0, 0, 0, 0,0xA1CA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA8F7,0xA8F8, + 0, 0, 0, 0, 0, 0,0xA8FB,0xA8FC, +0xA8FD,0xA8FE, 0,0xA5B0,0xA5B1,0xA5B2,0xA5B3,0xA5B4, +0xA5B5,0xA5B6,0xA5B7,0xA5B8,0xA5B9, 0, 0, 0, + 0, 0, 0,0xA5A1,0xA5A2,0xA5A3,0xA5A4,0xA5A5, +0xA5A6,0xA5A7,0xA5A8,0xA5A9,0xA5AA, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA1E7,0xA1E8,0xA1E6,0xA1E9,0xA1EA, +0xA2D5,0xA2D8,0xA2D6,0xA2D9,0xA2D7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA2A1, 0,0xA2A2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA2A3, 0,0xA1D3,0xA2A4, 0, + 0, 0,0xA1D4,0xA1F4, 0, 0,0xA1F5, 0, + 0, 0,0xA2B3, 0,0xA2B2, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1EE, 0, 0, +0xA1F0,0xA1C4, 0,0xA1D0, 0, 0, 0, 0, +0xA1AB, 0,0xA1FC,0xA1FD,0xA1FB,0xA1FA,0xA1F2,0xA1F3, + 0,0xA2B1, 0, 0, 0, 0, 0,0xA1C5, +0xA1F1, 0, 0, 0, 0, 0, 0,0xA1AD, +0xA1EF, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1D6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA1C1,0xA1D5, 0, 0,0xA1C2, +0xA1C3, 0, 0, 0, 0,0xA1EC,0xA1ED, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1F8,0xA1F9, 0, + 0,0xA1F6,0xA1F7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA2C1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1D1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1D2}; + +/* page 3 0x2460-0x266D */ +static const uint16 tab_uni_ksc56013[]={ +0xA8E7,0xA8E8,0xA8E9,0xA8EA,0xA8EB,0xA8EC,0xA8ED,0xA8EE, +0xA8EF,0xA8F0,0xA8F1,0xA8F2,0xA8F3,0xA8F4,0xA8F5, 0, + 0, 0, 0, 0,0xA9E7,0xA9E8,0xA9E9,0xA9EA, +0xA9EB,0xA9EC,0xA9ED,0xA9EE,0xA9EF,0xA9F0,0xA9F1,0xA9F2, +0xA9F3,0xA9F4,0xA9F5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA9CD,0xA9CE,0xA9CF,0xA9D0, +0xA9D1,0xA9D2,0xA9D3,0xA9D4,0xA9D5,0xA9D6,0xA9D7,0xA9D8, +0xA9D9,0xA9DA,0xA9DB,0xA9DC,0xA9DD,0xA9DE,0xA9DF,0xA9E0, +0xA9E1,0xA9E2,0xA9E3,0xA9E4,0xA9E5,0xA9E6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA8CD,0xA8CE,0xA8CF,0xA8D0,0xA8D1,0xA8D2,0xA8D3,0xA8D4, +0xA8D5,0xA8D6,0xA8D7,0xA8D8,0xA8D9,0xA8DA,0xA8DB,0xA8DC, +0xA8DD,0xA8DE,0xA8DF,0xA8E0,0xA8E1,0xA8E2,0xA8E3,0xA8E4, +0xA8E5,0xA8E6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA6A1,0xA6AC,0xA6A2,0xA6AD, 0, 0, 0, 0, + 0, 0, 0, 0,0xA6A3,0xA6C8,0xA6C7,0xA6AE, +0xA6A4,0xA6C2,0xA6C1,0xA6AF,0xA6A6,0xA6C6,0xA6C5,0xA6B1, +0xA6A5,0xA6C4,0xA6C3,0xA6B0,0xA6A7,0xA6BC,0xA6C9,0xA6CA, +0xA6B7,0xA6CB,0xA6CC,0xA6B2,0xA6A9,0xA6BE,0xA6CD,0xA6CE, +0xA6B9,0xA6CF,0xA6D0,0xA6B4,0xA6A8,0xA6D1,0xA6D2,0xA6B8, +0xA6BD,0xA6D3,0xA6D4,0xA6B3,0xA6AA,0xA6D5,0xA6D6,0xA6BA, +0xA6BF,0xA6D7,0xA6D8,0xA6B5,0xA6AB,0xA6D9,0xA6DA,0xA6BB, +0xA6DB,0xA6DC,0xA6C0,0xA6DD,0xA6DE,0xA6DF,0xA6E0,0xA6E1, +0xA6E2,0xA6E3,0xA6E4,0xA6B6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA2C6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1E1,0xA1E0, 0,0xA2C3,0xA2C7,0xA2C8,0xA2CB,0xA2CA, +0xA2C9,0xA2CC, 0, 0, 0, 0, 0, 0, + 0, 0,0xA1E3,0xA1E2, 0, 0,0xA2BA,0xA2B9, + 0, 0, 0, 0,0xA1E5,0xA1E4, 0, 0, +0xA2B8,0xA2B7, 0, 0, 0, 0,0xA1DF,0xA1DE, +0xA2C2, 0, 0,0xA1DB, 0, 0,0xA1DD,0xA1DC, +0xA2C4,0xA2C5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1DA,0xA1D9, 0, + 0, 0, 0, 0, 0, 0,0xA2CF,0xA2CE, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA2D0, 0,0xA2D1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1CF, 0,0xA1CE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA2BC,0xA2BD, 0,0xA2C0,0xA2BB,0xA2BE, 0,0xA2BF, +0xA2CD,0xA2DB,0xA2DC, 0,0xA2DD,0xA2DA}; + +/* page 4 0x3000-0x327F */ +static const uint16 tab_uni_ksc56014[]={ +0xA1A1,0xA1A2,0xA1A3,0xA1A8, 0, 0, 0, 0, +0xA1B4,0xA1B5,0xA1B6,0xA1B7,0xA1B8,0xA1B9,0xA1BA,0xA1BB, +0xA1BC,0xA1BD, 0,0xA1EB,0xA1B2,0xA1B3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xAAA1,0xAAA2,0xAAA3,0xAAA4,0xAAA5,0xAAA6,0xAAA7, +0xAAA8,0xAAA9,0xAAAA,0xAAAB,0xAAAC,0xAAAD,0xAAAE,0xAAAF, +0xAAB0,0xAAB1,0xAAB2,0xAAB3,0xAAB4,0xAAB5,0xAAB6,0xAAB7, +0xAAB8,0xAAB9,0xAABA,0xAABB,0xAABC,0xAABD,0xAABE,0xAABF, +0xAAC0,0xAAC1,0xAAC2,0xAAC3,0xAAC4,0xAAC5,0xAAC6,0xAAC7, +0xAAC8,0xAAC9,0xAACA,0xAACB,0xAACC,0xAACD,0xAACE,0xAACF, +0xAAD0,0xAAD1,0xAAD2,0xAAD3,0xAAD4,0xAAD5,0xAAD6,0xAAD7, +0xAAD8,0xAAD9,0xAADA,0xAADB,0xAADC,0xAADD,0xAADE,0xAADF, +0xAAE0,0xAAE1,0xAAE2,0xAAE3,0xAAE4,0xAAE5,0xAAE6,0xAAE7, +0xAAE8,0xAAE9,0xAAEA,0xAAEB,0xAAEC,0xAAED,0xAAEE,0xAAEF, +0xAAF0,0xAAF1,0xAAF2,0xAAF3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xABA1,0xABA2,0xABA3,0xABA4,0xABA5,0xABA6,0xABA7, +0xABA8,0xABA9,0xABAA,0xABAB,0xABAC,0xABAD,0xABAE,0xABAF, +0xABB0,0xABB1,0xABB2,0xABB3,0xABB4,0xABB5,0xABB6,0xABB7, +0xABB8,0xABB9,0xABBA,0xABBB,0xABBC,0xABBD,0xABBE,0xABBF, +0xABC0,0xABC1,0xABC2,0xABC3,0xABC4,0xABC5,0xABC6,0xABC7, +0xABC8,0xABC9,0xABCA,0xABCB,0xABCC,0xABCD,0xABCE,0xABCF, +0xABD0,0xABD1,0xABD2,0xABD3,0xABD4,0xABD5,0xABD6,0xABD7, +0xABD8,0xABD9,0xABDA,0xABDB,0xABDC,0xABDD,0xABDE,0xABDF, +0xABE0,0xABE1,0xABE2,0xABE3,0xABE4,0xABE5,0xABE6,0xABE7, +0xABE8,0xABE9,0xABEA,0xABEB,0xABEC,0xABED,0xABEE,0xABEF, +0xABF0,0xABF1,0xABF2,0xABF3,0xABF4,0xABF5,0xABF6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA4A1,0xA4A2,0xA4A3,0xA4A4,0xA4A5,0xA4A6,0xA4A7, +0xA4A8,0xA4A9,0xA4AA,0xA4AB,0xA4AC,0xA4AD,0xA4AE,0xA4AF, +0xA4B0,0xA4B1,0xA4B2,0xA4B3,0xA4B4,0xA4B5,0xA4B6,0xA4B7, +0xA4B8,0xA4B9,0xA4BA,0xA4BB,0xA4BC,0xA4BD,0xA4BE,0xA4BF, +0xA4C0,0xA4C1,0xA4C2,0xA4C3,0xA4C4,0xA4C5,0xA4C6,0xA4C7, +0xA4C8,0xA4C9,0xA4CA,0xA4CB,0xA4CC,0xA4CD,0xA4CE,0xA4CF, +0xA4D0,0xA4D1,0xA4D2,0xA4D3,0xA4D4,0xA4D5,0xA4D6,0xA4D7, +0xA4D8,0xA4D9,0xA4DA,0xA4DB,0xA4DC,0xA4DD,0xA4DE,0xA4DF, +0xA4E0,0xA4E1,0xA4E2,0xA4E3,0xA4E4,0xA4E5,0xA4E6,0xA4E7, +0xA4E8,0xA4E9,0xA4EA,0xA4EB,0xA4EC,0xA4ED,0xA4EE,0xA4EF, +0xA4F0,0xA4F1,0xA4F2,0xA4F3,0xA4F4,0xA4F5,0xA4F6,0xA4F7, +0xA4F8,0xA4F9,0xA4FA,0xA4FB,0xA4FC,0xA4FD,0xA4FE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA9B1,0xA9B2,0xA9B3,0xA9B4,0xA9B5,0xA9B6,0xA9B7,0xA9B8, +0xA9B9,0xA9BA,0xA9BB,0xA9BC,0xA9BD,0xA9BE,0xA9BF,0xA9C0, +0xA9C1,0xA9C2,0xA9C3,0xA9C4,0xA9C5,0xA9C6,0xA9C7,0xA9C8, +0xA9C9,0xA9CA,0xA9CB,0xA9CC,0xA2DF, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA8B1,0xA8B2,0xA8B3,0xA8B4,0xA8B5,0xA8B6,0xA8B7,0xA8B8, +0xA8B9,0xA8BA,0xA8BB,0xA8BC,0xA8BD,0xA8BE,0xA8BF,0xA8C0, +0xA8C1,0xA8C2,0xA8C3,0xA8C4,0xA8C5,0xA8C6,0xA8C7,0xA8C8, +0xA8C9,0xA8CA,0xA8CB,0xA8CC, 0, 0, 0,0xA2DE +}; + +/* page 5 0x3380-0x33DD */ +static const uint16 tab_uni_ksc56015[]={ +0xA7C9,0xA7CA,0xA7CB,0xA7CC,0xA7CD, 0, 0, 0, +0xA7BA,0xA7BB,0xA7DC,0xA7DD,0xA7DE,0xA7B6,0xA7B7,0xA7B8, +0xA7D4,0xA7D5,0xA7D6,0xA7D7,0xA7D8,0xA7A1,0xA7A2,0xA7A3, +0xA7A5,0xA7AB,0xA7AC,0xA7AD,0xA7AE,0xA7AF,0xA7B0,0xA7B1, +0xA7B2,0xA7B3,0xA7B4,0xA7A7,0xA7A8,0xA7A9,0xA7AA,0xA7BD, +0xA7BE,0xA7E5,0xA7E6,0xA7E7,0xA7E8,0xA7E1,0xA7E2,0xA7E3, +0xA7BF,0xA7C0,0xA7C1,0xA7C2,0xA7C3,0xA7C4,0xA7C5,0xA7C6, +0xA7C7,0xA7C8,0xA7CE,0xA7CF,0xA7D0,0xA7D1,0xA7D2,0xA7D3, +0xA7DA,0xA7DB,0xA2E3,0xA7EC,0xA7A6,0xA7E0,0xA7EF,0xA2E1, +0xA7BC,0xA7ED,0xA7B5, 0, 0, 0, 0,0xA7B9, +0xA7EA, 0, 0,0xA7EB, 0, 0,0xA7DF, 0, +0xA2E4, 0, 0,0xA7E4,0xA7EE,0xA7E9}; + +/* page 6 0x4E00-0x947F */ +static const uint16 tab_uni_ksc56016[]={ +0xECE9,0xEFCB, 0,0xF6D2, 0, 0, 0,0xD8B2, +0xEDDB,0xDFB2,0xDFBE,0xF9BB, 0,0xDCF4, 0, 0, + 0,0xF5E4, 0, 0,0xF3A6,0xDDE0,0xE1A6, 0, +0xCEF8,0xDCB0, 0, 0, 0, 0,0xE3AA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF1E9, 0, 0, + 0, 0,0xCDFA, 0, 0, 0, 0, 0, +0xFCAF,0xD3A1, 0,0xF1AB, 0, 0, 0, 0, + 0, 0,0xE7D1,0xD2AC, 0,0xCEF9, 0, 0, + 0, 0, 0,0xF1FD, 0,0xDEBF,0xFBBA,0xF9B9, + 0, 0, 0, 0, 0, 0,0xCED2, 0, +0xE3AB,0xEBE0, 0, 0, 0,0xCEFA,0xCBF7,0xE5A5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCAE1, 0,0xD4CC, 0, 0, + 0, 0, 0,0xEAE1, 0, 0,0xDCE3,0xDFAD, + 0, 0, 0, 0, 0, 0,0xCBEB, 0, + 0, 0,0xD5AF, 0, 0, 0,0xD6F5, 0, +0xE5F8, 0, 0,0xDEC0,0xECA3, 0,0xE9CD, 0, +0xEAA7,0xE9F6,0xFBBB, 0,0xE7E9,0xEFCC, 0, 0, +0xD0E6, 0, 0,0xDEC1, 0, 0,0xE4AC, 0, + 0,0xD8CC,0xF9F1, 0,0xCEDF,0xFAA4,0xE6B2, 0, +0xFAFB, 0, 0,0xFABD,0xCCC8,0xEFCD,0xD5D5, 0, + 0, 0, 0, 0, 0, 0,0xD3A2, 0, + 0, 0,0xECD1, 0, 0, 0, 0, 0, +0xE4A7,0xECD2, 0, 0,0xF6B1, 0, 0,0xCEFB, + 0, 0,0xD0D1,0xCBBF, 0,0xEDA4, 0, 0, + 0, 0, 0, 0,0xEDA8,0xDEC2,0xF6E2,0xEDDC, +0xDCF5,0xE0B9, 0, 0, 0,0xD4CE, 0,0xF4B5, + 0, 0, 0,0xD3DB,0xD6B5,0xECA4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE4E6, 0,0xF1EA, 0, 0, 0,0xCBEC,0xCBC0, + 0, 0, 0,0xECF2, 0, 0, 0, 0, + 0,0xD0EA, 0, 0, 0, 0, 0, 0, + 0,0xF9F2,0xECA5,0xD0DF, 0,0xE7EA,0xD0EB,0xDCD1, +0xDBE9,0xFDCC, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDBD7, + 0, 0, 0, 0,0xDAE1, 0,0xD6B6, 0, +0xE3DF, 0,0xDEC3, 0,0xDEC4,0xCAA1, 0, 0, + 0, 0, 0,0xEEEC, 0, 0,0xD3A3,0xEEB7, +0xF8CF, 0, 0, 0, 0,0xEAC8,0xEEB8,0xF1AC, +0xF1A5,0xE9CE, 0, 0, 0,0xF9BC, 0, 0, + 0,0xE5F9,0xECEA,0xDDD6,0xEDC2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF8A5, 0, 0, 0, 0, 0,0xE5BA, +0xDBD8, 0, 0,0xCAA2, 0, 0,0xD1CD, 0, + 0, 0,0xEEED, 0, 0, 0,0xECEB,0xDEC5, + 0,0xE3E0, 0,0xCAC9,0xF2E9, 0,0xD5CE, 0, +0xF6B6, 0,0xCEC2,0xD6C7, 0,0xE3B4, 0,0xF1AD, + 0,0xEAE2, 0, 0, 0, 0,0xD7C2, 0, +0xF3A7, 0, 0,0xCDEA, 0,0xEBEE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD9B2,0xFDA5, + 0, 0, 0, 0, 0,0xF6D5,0xD5E2, 0, + 0, 0, 0, 0, 0, 0, 0,0xF8B5, + 0, 0,0xCCF5,0xF5B5,0xE4AD, 0, 0, 0, + 0,0xE7EB,0xF1D5, 0, 0, 0,0xF0BB, 0, + 0,0xE9B5, 0,0xCCC9,0xFAD5, 0, 0,0xE1D4, + 0, 0,0xD7D6, 0, 0,0xDCC1, 0,0xDEC6, +0xFAEF,0xE3E1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE1F3,0xDCF6, + 0,0xCEFC, 0,0xDBC4, 0,0xF8F1, 0, 0, +0xDCE4, 0,0xE5EF, 0, 0, 0, 0, 0, + 0, 0,0xDCB1, 0, 0, 0,0xD5D6, 0, + 0,0xF3DA, 0,0xCBC1, 0,0xDBC3, 0, 0, + 0,0xD9FA,0xD3EE, 0, 0, 0,0xFAB8, 0, + 0,0xFDA6,0xEBEF, 0,0xF4A6, 0,0xCCCA,0xF3A8, + 0,0xF3DB, 0,0xDBA7,0xF6B7, 0,0xCFE6,0xF0F2, +0xCBDA, 0,0xE7D2,0xD7C3,0xF6F0,0xE8DE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE5A6, 0, 0, 0, 0, + 0, 0, 0,0xE5E7, 0, 0, 0,0xCAA3, +0xCCA7,0xEAC9, 0, 0, 0, 0, 0,0xF8B6, + 0, 0, 0, 0, 0,0xFAA5, 0, 0, + 0, 0,0xF1AE, 0,0xEFCE, 0, 0, 0, + 0, 0, 0, 0, 0,0xCBED, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF6B0,0xEFCF,0xE9CF, 0, +0xF7DE, 0, 0, 0, 0, 0, 0, 0, +0xCED3, 0, 0, 0, 0,0xDCF7, 0, 0, + 0, 0, 0, 0, 0,0xDBA8, 0, 0, + 0,0xCBF8, 0, 0, 0, 0, 0, 0, +0xDFA1,0xDDE1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF5CA,0xE9B6, 0, 0, + 0, 0,0xE7EC,0xEEEE, 0,0xF3F0, 0,0xDFBF, + 0, 0, 0, 0, 0, 0,0xCCCB, 0, + 0, 0, 0, 0, 0,0xD0C1, 0, 0, + 0,0xF4D2,0xE0BA, 0, 0, 0, 0,0xDFC0, + 0,0xCEE0, 0, 0, 0,0xDCD2,0xFDEA, 0, + 0, 0,0xD6F6, 0, 0, 0,0xEACA, 0, + 0, 0, 0, 0, 0,0xE8E9, 0,0xE3AC, + 0, 0, 0, 0, 0,0xF3D0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCAA4, 0,0xDBF8, 0, 0, 0,0xDEC7, +0xEBF0,0xF1D6, 0, 0,0xE5E2, 0,0xCCCC, 0, + 0,0xCBFB, 0, 0, 0, 0, 0, 0, + 0, 0,0xEAE3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDFC1, + 0,0xD6ED, 0, 0, 0, 0, 0, 0, + 0, 0,0xE9D0, 0, 0, 0, 0, 0, + 0, 0,0xEEB9, 0, 0, 0, 0,0xD5E3, + 0, 0,0xD1D3, 0,0xE5F0, 0, 0, 0, +0xE8B4,0xEBC3, 0,0xEAAA,0xFAFC,0xF5F6,0xF0BC,0xFDD4, +0xE0BB,0xCEC3, 0,0xD0BA,0xF7BA,0xD8F3,0xF7CD, 0, + 0, 0,0xE4AE, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xD4DF, 0, 0, 0, + 0, 0,0xD0E7, 0, 0,0xECFD, 0,0xD2AE, +0xEEEF,0xD5D7,0xEAE4,0xF8A2,0xCDEB,0xD7BF,0xFBB1, 0, + 0,0xCDEC, 0, 0, 0,0xDCB2,0xD0EC,0xCEFD, +0xEEF0, 0, 0, 0,0xCCC2, 0, 0, 0, +0xD0ED, 0, 0, 0, 0, 0,0xE5F7, 0, + 0, 0,0xF3FC, 0, 0,0xEEA2, 0, 0, + 0, 0,0xD9B3, 0, 0,0xD8F4, 0,0xE9B7, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCEAE, 0, 0, 0, 0,0xD9A2, 0, 0, + 0, 0,0xD8F1, 0,0xD4CF, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE5A7,0xD5D2, + 0, 0, 0, 0, 0,0xD6A9, 0, 0, + 0, 0, 0, 0,0xF4A2, 0,0xF1D7, 0, + 0,0xD5D8, 0,0xF0BD,0xD7D0,0xD4D0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xD7CF,0xEBEA,0xFDEB, 0, + 0,0xDBED, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFCC5,0xCBC2, 0, 0, 0, 0,0xFDD5, 0, +0xF4C8,0xE8EA,0xF5F3, 0, 0,0xF9DE, 0, 0, +0xD3EF, 0, 0,0xECD3, 0, 0,0xDDC2,0xEFB7, +0xE7D4, 0,0xCACA, 0, 0, 0,0xD9FB, 0, + 0,0xFAFD, 0, 0, 0, 0, 0,0xD6AA, + 0, 0, 0, 0, 0,0xF4F8, 0, 0, + 0, 0, 0, 0,0xF7F7,0xDCAC, 0, 0, + 0,0xD7D7,0xDFA2, 0, 0, 0,0xCEBE, 0, +0xD3F0, 0, 0, 0, 0, 0,0xF0A4,0xE1EC, +0xCFE7,0xF3CB,0xEDA9,0xCABE, 0, 0, 0, 0, + 0, 0, 0,0xF4EF, 0, 0, 0,0xF6CE, + 0, 0,0xDEFB,0xD0BB,0xD5B7,0xEEF1, 0, 0, + 0, 0, 0, 0,0xF4A8, 0,0xDCF8, 0, + 0, 0, 0,0xCBA7, 0,0xDACE, 0, 0, + 0,0xE0E6, 0, 0, 0, 0, 0, 0, + 0,0xEDA5,0xEEF2, 0, 0, 0, 0,0xDCF9, + 0, 0,0xF9DC, 0, 0,0xF3DC, 0, 0, + 0, 0, 0, 0, 0,0xF8F2, 0,0xF4F9, + 0, 0, 0,0xFCF1, 0, 0, 0,0xD0BC, +0xDBF9,0xD7B1, 0, 0, 0,0xCBFC, 0, 0, + 0,0xF0A5,0xCBFD, 0, 0, 0, 0, 0, + 0, 0, 0,0xD5F4, 0, 0, 0,0xCDED, +0xCAA5, 0, 0,0xD6AB,0xD0C2, 0, 0, 0, + 0,0xF0BE,0xD2BD,0xCCA4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xFAB6, 0, + 0,0xCCCD, 0,0xDAFA, 0,0xF6CF, 0,0xE9B8, + 0,0xD8F5, 0, 0, 0,0xCCCE, 0, 0, + 0, 0,0xD7CD, 0, 0,0xD4D1,0xE9ED, 0, +0xCAEB,0xD9E2, 0,0xFDB2, 0,0xE3AD,0xD6CC,0xD9B4, + 0, 0,0xE1A7,0xEED3,0xD0C3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFDB3, 0,0xD5E4, 0, 0, +0xCFE8, 0,0xEDC3,0xD0B2, 0, 0,0xCEFE,0xDAA8, + 0, 0, 0, 0, 0,0xF8D0, 0, 0, +0xFDD6, 0, 0, 0, 0,0xF8D1, 0,0xF8D2, +0xDCD3, 0, 0, 0, 0,0xDDE2,0xFBF9,0xDDC1, + 0,0xE3B5, 0, 0, 0, 0, 0, 0, +0xEDDD,0xCEC4, 0,0xCBA1, 0, 0, 0, 0, + 0, 0,0xDDE3, 0, 0, 0, 0,0xFCDD, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF9AF, 0, 0, 0, 0, 0,0xD2FB, +0xCFA1,0xE4A8, 0,0xF4B6,0xECFE, 0, 0,0xE3AE, +0xE7ED,0xFDC1,0xDAE2, 0, 0,0xD8B3, 0, 0, + 0,0xDDE4,0xF0EF,0xF6F1,0xFAF0, 0, 0,0xD1F5, + 0, 0,0xDACF, 0,0xDCD4, 0,0xDCA6, 0, +0xEFBF, 0, 0, 0, 0, 0,0xCECF, 0, +0xE0D9, 0, 0, 0, 0, 0, 0,0xD9D6, +0xECD4,0xEACB, 0, 0,0xCABF,0xD5B0, 0,0xCFE9, + 0, 0, 0, 0, 0,0xF1ED, 0,0xCCCF, + 0, 0, 0, 0,0xE4F8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE4ED, 0, 0, 0, 0, +0xD7D8, 0,0xFDA7, 0, 0, 0, 0,0xEAAB, +0xF6B2, 0, 0, 0, 0,0xCFF0,0xF9BD, 0, + 0, 0, 0, 0, 0,0xE6F4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCBDB, 0, 0, 0, 0, + 0, 0, 0,0xF3D1, 0, 0, 0, 0, +0xE9D1,0xF3A9,0xD0E0,0xE9D2, 0,0xDAE3, 0, 0, + 0, 0, 0, 0,0xE2D2, 0,0xF6A2,0xE1F4, + 0, 0, 0,0xDAE4, 0, 0, 0, 0, + 0,0xE7D5,0xF5BF,0xCFA2,0xCDAF,0xCFA3, 0, 0, + 0,0xCDB0,0xF1FE,0xD0A3,0xE1AF,0xF8A3, 0,0xCAA6, +0xF7BB,0xF2EA,0xDEC8,0xE9D3, 0, 0, 0, 0, +0xDEC9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFDDE,0xCAC0, 0, 0, 0, +0xF9EA,0xD1CE,0xEED4, 0,0xD4D2,0xD9A3,0xFDA8,0xD7D9, +0xF7CE,0xFABE, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCFD6, 0,0xD7F0, 0,0xEBE1, +0xF8C5, 0, 0, 0, 0, 0,0xDCFA, 0, + 0,0xDDC3, 0,0xF9DF, 0, 0, 0, 0, + 0, 0, 0,0xE7EF, 0, 0, 0, 0, +0xFDE5,0xF6A3, 0,0xD9FC,0xFDA9, 0,0xE7EE, 0, + 0, 0,0xD5E5, 0, 0, 0, 0, 0, +0xEFD0, 0,0xCDB1, 0, 0, 0, 0, 0, + 0,0xF7A2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF1B2, 0,0xF1B1, 0, 0, 0, 0, 0, + 0,0xCDB2, 0,0xDAAB, 0,0xCAA7, 0, 0, + 0, 0, 0,0xE3E2,0xFBBC,0xD9A4, 0, 0, +0xEEBA, 0, 0, 0, 0, 0,0xF8D3, 0, + 0, 0, 0, 0,0xFBFA, 0,0xCFA4, 0, +0xDCFB, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF6E3, 0, 0, 0, +0xEDAA, 0, 0,0xF2A1,0xCEE1, 0, 0, 0, + 0, 0, 0,0xFAA6, 0, 0, 0, 0, +0xF9E0, 0, 0, 0, 0,0xECD6, 0, 0, +0xE4EE,0xF9A1, 0, 0,0xFBEF, 0, 0, 0, +0xF9EB,0xEEA3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEAAC, 0, 0, 0,0xCAA8, 0, 0, +0xF4FA, 0, 0, 0, 0,0xCDD6,0xFCF6, 0, + 0, 0,0xF4C9, 0, 0, 0, 0, 0, + 0, 0,0xF8D4, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF8A6, 0,0xDECA,0xF2C6, + 0, 0, 0, 0, 0, 0,0xD7DA, 0, +0xD3D0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xD8C5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xEAE6, + 0,0xF3DD, 0, 0, 0,0xE4DA, 0, 0, + 0, 0, 0, 0, 0, 0,0xF6E4, 0, + 0, 0, 0, 0,0xF6F2, 0,0xDFC2, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9FD, + 0, 0, 0,0xCCF6, 0, 0,0xD3BA, 0, + 0, 0, 0, 0, 0, 0,0xE4AF, 0, + 0, 0, 0,0xF9E1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF0A6, 0, 0, 0, +0xCBD3, 0, 0, 0,0xE0BC, 0,0xF4CA,0xD4FA, + 0,0xFDAA,0xF9E2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF4B7,0xFDC2,0xFCB0, 0,0xFDEC,0xCAE2, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xFDBD, + 0,0xEAE7,0xDFC3,0xD1D2,0xCEE2, 0,0xD3A4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFDAB, 0,0xDFE0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF2C7, 0, 0, 0, + 0, 0,0xE7F0, 0,0xD0EE, 0, 0,0xF3AA, + 0, 0, 0,0xDECB,0xF6B8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE1F5,0xF1B3, 0, + 0, 0, 0, 0, 0, 0,0xF7A3, 0, + 0,0xCAA9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCFA5, 0, 0,0xDFC4, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE1B0, + 0, 0,0xF0BF, 0,0xF6A4, 0,0xE3B6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFAC6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD0EF, 0, 0,0xFDED, 0, 0, 0, 0, + 0, 0, 0, 0,0xDDC4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xFCF7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE6BF, 0, 0, + 0, 0, 0, 0,0xDEAD, 0,0xFABF, 0, + 0, 0, 0, 0,0xE5F1, 0, 0, 0, + 0, 0, 0, 0,0xEDC4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD2A5, 0, 0,0xFDEE, 0, 0, + 0,0xF5B6, 0, 0, 0, 0, 0, 0, + 0, 0,0xE1F6,0xDECC, 0, 0,0xFCDE, 0, +0xECD7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCDDD, 0, 0, 0, 0, 0, 0, 0, + 0,0xD6B7,0xCDB3, 0, 0, 0, 0, 0, + 0, 0, 0,0xF8D5,0xE5D8, 0, 0, 0, +0xCFEA, 0, 0,0xCFD0, 0,0xEACC, 0, 0, + 0, 0,0xEAAE,0xEAAD, 0, 0,0xD3F1, 0, +0xD3A5, 0, 0, 0, 0, 0, 0,0xF7CF, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEEA4, 0, 0, 0, 0,0xD0A4, 0, 0, +0xF2A2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD0F0, 0, 0, 0, 0, +0xF2A3, 0,0xF7F8, 0, 0, 0, 0,0xD0B3, + 0, 0,0xDBA9, 0, 0,0xD3BB,0xCAEC, 0, +0xF1A6,0xCBD5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF7E7, 0, 0,0xCDDE, 0,0xF7A4, 0, + 0, 0,0xF8C0, 0, 0, 0,0xD3DD, 0, +0xCCD0, 0, 0, 0, 0,0xCFA6, 0, 0, + 0, 0, 0, 0,0xF6F3, 0, 0, 0, + 0, 0,0xE1F7, 0, 0, 0, 0, 0, +0xD3DC, 0, 0,0xFAFE, 0, 0, 0, 0, + 0, 0, 0,0xFAA7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEBD9, 0,0xCFA7,0xEAAF, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE4EF, 0, 0, 0,0xE9B9, +0xF1D8, 0, 0,0xD8D8, 0, 0,0xE0F2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE6B4, +0xDCFC, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF3F1, 0, 0, 0,0xE3D0, 0, 0,0xF2FB, + 0,0xDBC6,0xD0F1, 0,0xD0F2, 0, 0, 0, +0xCFDC, 0,0xD3D1, 0, 0,0xCCB1,0xF7D8, 0, +0xCBA8,0xEBBC,0xE4BE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF4DC, 0, + 0,0xDCC2, 0, 0,0xF0A7, 0, 0,0xE6C0, + 0, 0,0xCAED, 0, 0, 0, 0,0xE8EB, +0xE5E8,0xDCC3, 0, 0,0xEDDE,0xD3F2, 0, 0, + 0, 0,0xCCF7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xCED4,0xE7AB, 0, 0, 0,0xCBC3, + 0,0xE1B1, 0, 0,0xF7B2, 0, 0,0xD3F3, +0xD3D2, 0,0xF5C0, 0, 0, 0,0xDFDD, 0, + 0,0xEEF3,0xE7F1, 0,0xFDB4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF2C8, 0, 0, + 0,0xF3D2, 0, 0,0xEEF4, 0,0xE2D3, 0, + 0, 0, 0,0xCCD1, 0,0xDFEA, 0, 0, + 0,0xE9BA, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD9D7, 0, 0, 0, 0, + 0, 0, 0, 0,0xF5CD, 0,0xF1F2,0xFAC7, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD9F8,0xD4C2, 0, 0, 0, 0,0xF6E5, 0, + 0, 0, 0,0xDDC5, 0, 0, 0, 0, + 0, 0,0xE7F2,0xEDDF, 0, 0,0xCACB, 0, + 0,0xDBFA, 0, 0, 0,0xE8B5, 0,0xD3A6, + 0, 0, 0, 0, 0, 0,0xFDB5, 0, + 0,0xF9C9, 0,0xE4E2, 0,0xFBBD, 0, 0, +0xD7A4,0xCEC5, 0, 0, 0, 0,0xCED5,0xD6E6, + 0, 0, 0, 0,0xE5BD, 0, 0, 0, + 0, 0, 0,0xDECD,0xECF3, 0, 0,0xEDE0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xECEC,0xFBBE,0xDFEB, 0,0xE1F8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF9BE, + 0, 0, 0, 0,0xD0F3,0xE0AA,0xE8E2, 0, + 0,0xE2D4,0xD2FD, 0,0xE5A8, 0, 0, 0, + 0, 0,0xD9D3, 0, 0, 0, 0,0xD3DE, + 0,0xF4B8,0xF7BC,0xDCFD, 0,0xE8EC,0xE4E7, 0, + 0,0xE3F7, 0, 0, 0, 0, 0,0xECA8, + 0, 0, 0, 0, 0, 0,0xFAF1, 0, + 0, 0, 0, 0,0xE5F2, 0, 0,0xD0F4, +0xD2AF,0xDCE5, 0, 0, 0, 0,0xD0A5,0xF1B4, +0xFCB1,0xCCF8, 0, 0,0xDDC6,0xFAD1, 0,0xF7DF, + 0, 0,0xFAA8, 0, 0, 0, 0, 0, +0xEEF5, 0,0xDECE, 0, 0, 0, 0,0xE7F3, + 0, 0,0xF7AC,0xEBC4,0xEDE1,0xE0AB,0xDDC7, 0, + 0, 0, 0,0xD2B3,0xD2BF, 0, 0, 0, +0xCACC, 0, 0, 0, 0,0xFBBF, 0, 0, + 0, 0,0xE5FD,0xDDE5,0xD8CD, 0, 0, 0, + 0, 0,0xECF4, 0, 0, 0, 0, 0, + 0, 0, 0,0xD0F5, 0, 0,0xE8ED,0xD0D2, + 0,0xD9D8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF6E6, 0, 0, +0xDBAA, 0, 0, 0,0xF7E0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xD8D9, 0,0xF4A3, 0, 0,0xF4DD, 0, + 0, 0, 0,0xEFD1, 0, 0,0xD9B5, 0, + 0,0xEDAB, 0,0xE3B7, 0, 0, 0, 0, +0xEEBB,0xCDB4, 0,0xE0F3,0xEACD, 0, 0, 0, + 0,0xECF5,0xE8EE, 0,0xCBA9,0xF1AF, 0, 0, + 0, 0, 0, 0, 0, 0,0xCACD, 0, +0xECA9, 0,0xF2EB, 0,0xFDEF, 0,0xF9F3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE6C1, 0, 0,0xECD8, 0, 0, 0,0xEDAC, + 0,0xEACE, 0,0xE8DF, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xDECF, 0, 0, 0, 0, 0, 0, +0xD2A6, 0, 0,0xE7F4,0xD1D6, 0, 0,0xE6C2, +0xE3E3, 0, 0, 0, 0,0xE4B0, 0, 0, + 0,0xD8B4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF6A5, 0, + 0, 0, 0, 0,0xF3DE, 0, 0, 0, + 0,0xD7A5, 0, 0, 0, 0,0xF7E8, 0, + 0,0xE8C6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xFBE6, 0, 0, 0, 0, 0, + 0, 0,0xDDE6, 0, 0, 0,0xDCFE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD8DA, 0, 0, 0, 0, 0, + 0, 0,0xDAAC,0xEAB0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE3B8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCAAA,0xE1F9, 0,0xEAB1, 0, 0, 0, + 0,0xF2EC, 0, 0,0xFAEE, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEED5, 0, 0, 0, 0,0xF9F4, 0, + 0,0xD2EC, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFBFB, 0, 0, + 0,0xFDF0, 0,0xE0BD,0xCEE3, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF8C6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDEAE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xDFC5, 0, 0,0xE5BE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEDAD,0xFAEA, 0, 0,0xCDEE,0xEDA6, 0,0xEDAE, +0xF0ED, 0,0xDDA1, 0,0xEDAF,0xFCF8, 0,0xD8EB, + 0, 0, 0,0xCCF9,0xCDB5, 0, 0, 0, + 0,0xFAA9, 0,0xE1DD, 0, 0, 0, 0, +0xE2D5,0xEDCF, 0, 0, 0,0xDDA2, 0, 0, +0xF9CA, 0,0xEAE8, 0,0xE5ED, 0, 0, 0, + 0, 0, 0, 0, 0,0xD3EB, 0,0xE9D4, +0xE1FA,0xE4CC, 0,0xE1E4,0xE8C7, 0, 0,0xCEDB, + 0, 0, 0,0xDCD5, 0,0xF7B5,0xFCF3,0xF0F3, +0xCEAF,0xF1B5,0xEFD2,0xE8C8,0xEBF1, 0, 0, 0, + 0, 0,0xCBD4,0xE0BE,0xE3F8,0xEAE9,0xFCB2, 0, + 0, 0, 0, 0,0xE0F4, 0,0xCFE0, 0, +0xEEA5, 0, 0,0xFAAA,0xE6C3,0xE1B2,0xCAAB, 0, +0xE3E4,0xE9BB, 0, 0, 0, 0, 0,0xE2D6, +0xF3F2, 0,0xEED6,0xEAB2,0xD0F6,0xECD9,0xDACB,0xCFA8, + 0, 0, 0, 0,0xDDA3, 0, 0, 0, +0xD8DB, 0,0xF9CE,0xE9D5,0xE3D1, 0, 0,0xD2BC, + 0, 0, 0, 0, 0, 0,0xD8AC,0xF3CC, + 0,0xCDFB,0xF6D6, 0,0xE7F5,0xE8EF,0xE3F9,0xD2BB, +0xF3F3,0xE3FB, 0,0xDED0,0xCEB0, 0,0xD6F7,0xF1D9, + 0, 0, 0, 0, 0,0xF5C1,0xDCC4, 0, +0xF5BB, 0,0xDED1, 0, 0, 0, 0, 0, + 0,0xDCE6, 0, 0,0xDED2, 0, 0,0xEDE2, +0xEEF6,0xEACF,0xF0EE,0xE3FC, 0,0xD3DF,0xD3F4,0xE1B3, + 0,0xE1B4, 0, 0, 0, 0,0xF4D3, 0, + 0,0xDFC6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE9D6, 0, 0, 0, +0xDBAB, 0, 0, 0, 0, 0, 0, 0, + 0,0xF6A6, 0, 0, 0, 0, 0, 0, +0xE3B9,0xEBC5,0xF4A9,0xCDB6,0xD2F9, 0,0xDAAD,0xD2E3, +0xCFD1, 0, 0, 0, 0,0xCBDC,0xCCFA, 0, +0xCFDD, 0, 0,0xE8A9, 0,0xE3BB,0xE3BA, 0, + 0,0xE0DA, 0, 0, 0,0xEEF7, 0, 0, + 0, 0, 0,0xDCB3, 0, 0, 0, 0, +0xD3F5, 0,0xD7A6, 0,0xF6B5,0xD7DB, 0, 0, + 0, 0, 0, 0,0xE1D5, 0, 0,0xD4EA, + 0,0xDFA3, 0, 0, 0, 0, 0, 0, + 0,0xFDDF, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD0F7,0xEDD4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCBAA, 0, 0, 0, 0, 0, 0, + 0,0xE4DB, 0,0xE1FB,0xCBA2, 0, 0, 0, + 0,0xD3E0, 0,0xE4BF, 0,0xFBC0, 0,0xDABE, +0xE4CD, 0,0xD6B9, 0, 0, 0,0xEFC0, 0, +0xE1FC, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF6B9, 0, 0, 0, 0, 0, 0, +0xDFC7, 0, 0, 0, 0, 0, 0, 0, +0xE4B1, 0, 0, 0, 0, 0, 0,0xDCE7, +0xDCE8, 0, 0, 0,0xFAD6, 0,0xD3F6, 0, + 0, 0, 0,0xF1DA, 0,0xFAF2, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE2FD, + 0, 0, 0, 0, 0,0xD5CF,0xD0F8, 0, + 0,0xCDDF, 0, 0,0xF5CB, 0,0xE4F0,0xCBAB, + 0,0xD7C4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE2FE, + 0,0xDDDA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xDAAE,0xCAEE, 0, 0, 0, +0xD5B9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE3A1, 0, 0,0xE8E3, 0, 0,0xF3AB, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCFA9, + 0, 0, 0,0xD3F7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD4F1, 0, 0, +0xCEE4, 0,0xE8F2, 0, 0, 0, 0, 0, + 0, 0,0xE5F5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE7AE, 0,0xD6BA, 0,0xDFEC,0xE4C0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE8E4, 0, 0, + 0, 0,0xD8B5, 0, 0, 0,0xE4DC, 0, + 0, 0, 0, 0, 0,0xF4B9,0xF1B6, 0, + 0,0xE2DE,0xE1B5, 0, 0,0xCDEF,0xF1A7,0xCEE5, +0xCBDD, 0, 0,0xD9E3, 0, 0,0xF3AC, 0, + 0,0xD0F9,0xECAB,0xDED3,0xF7E9, 0, 0,0xF9F5, + 0, 0, 0, 0, 0,0xE1DE,0xCBEE, 0, + 0, 0,0xE3BC,0xF8D6, 0, 0,0xDBEE, 0, + 0, 0, 0, 0,0xFDF1, 0, 0, 0, + 0,0xF7B6, 0, 0, 0, 0,0xF4DE, 0, + 0,0xF2ED, 0,0xDBD9, 0,0xF0A8, 0, 0, + 0, 0, 0, 0, 0,0xE1FD, 0, 0, + 0, 0, 0,0xDED4, 0,0xE0AC, 0, 0, + 0, 0, 0,0xEDE3, 0, 0,0xD3E1, 0, +0xDFC8, 0, 0, 0, 0,0xD9B6, 0,0xFDAC, +0xEFD3, 0, 0, 0,0xE4C1,0xF8EB, 0,0xDBAC, + 0, 0, 0, 0,0xFCC6, 0, 0, 0, + 0, 0, 0, 0, 0,0xD8AD, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF6BA, + 0,0xDBDF,0xD3D3,0xF8C7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xCACE,0xF8C1,0xD2B4, 0, 0,0xDCB4, +0xFAB9,0xCACF, 0,0xFCB3,0xEAEA,0xEAEB,0xD0FA, 0, + 0, 0, 0, 0,0xEDE4, 0, 0,0xDDE7, + 0, 0,0xDFC9, 0, 0, 0, 0,0xDFED, + 0, 0, 0, 0, 0,0xEEBC, 0,0xEFC1, + 0, 0,0xCCD2, 0,0xDDA4, 0, 0, 0, +0xDFCA, 0, 0, 0, 0, 0,0xD3F8,0xF1A8, + 0, 0, 0,0xCDB7, 0,0xEFD4, 0, 0, + 0, 0, 0, 0, 0,0xE4DD,0xDFEE,0xCBAC, +0xE9BC, 0, 0, 0, 0, 0,0xEAEC, 0, + 0, 0,0xDFCB, 0, 0, 0, 0, 0, +0xF9BF,0xD6AF,0xD5C6, 0, 0, 0, 0, 0, +0xCFAA, 0, 0,0xCEA9, 0, 0,0xD6F8, 0, + 0, 0,0xF1B7,0xEEF8, 0, 0, 0,0xD9D9, +0xF3DF, 0,0xF8C8,0xCEC6, 0, 0, 0, 0, + 0, 0, 0, 0,0xD5E6, 0, 0, 0, + 0, 0, 0,0xF4E6, 0, 0,0xE6C5,0xEFD5, + 0, 0,0xCBEF,0xFCDF, 0, 0, 0, 0, + 0,0xDCA7, 0, 0,0xD6E7, 0, 0, 0, + 0, 0,0xF8C9, 0, 0, 0, 0,0xE3D2, + 0,0xE3BD, 0,0xCFE1,0xF0C0,0xECDA, 0,0xDDD7, +0xFBF0, 0, 0,0xECAC, 0, 0, 0,0xF0A9, + 0, 0, 0, 0, 0, 0,0xFAD7,0xFBC1, + 0,0xD2C0, 0, 0, 0, 0, 0, 0, + 0,0xE5B0, 0, 0, 0,0xEDE5, 0, 0, + 0, 0,0xCBAD, 0,0xF9B0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF7A5, 0,0xCBAE, 0,0xDAAF, 0,0xD8B6, 0, + 0, 0, 0, 0, 0, 0,0xD3A7,0xFBB2, + 0,0xFDC4, 0,0xECAD, 0, 0, 0, 0, + 0, 0,0xFBA1, 0, 0, 0,0xE5E9,0xE9EE, + 0,0xF3F4,0xF8F3,0xF0C1,0xDEAF,0xF8B0, 0, 0, +0xF3E0,0xE7AF, 0, 0, 0, 0, 0,0xDBAD, + 0,0xE6B5, 0, 0,0xF9A8, 0, 0,0xDDD8, +0xE8D9,0xEFD6, 0, 0, 0,0xD3E2, 0,0xE2DF, + 0, 0,0xFCE0,0xD7C8,0xFDAD, 0, 0, 0, +0xDFEF,0xCCD3,0xD3F9, 0, 0, 0, 0,0xD4F0, +0xDBC7,0xDED5, 0, 0, 0, 0,0xF0F4, 0, +0xD5D0,0xE5D9, 0, 0, 0, 0, 0, 0, +0xFCC7,0xDCD6,0xE2E0, 0, 0, 0,0xDAB0, 0, + 0, 0, 0, 0, 0,0xF3A3, 0,0xD3EC, + 0,0xF4CB, 0, 0, 0,0xFDC5, 0, 0, + 0, 0, 0,0xE3FD, 0,0xF9B1, 0, 0, + 0, 0, 0, 0,0xD0FB,0xECDB, 0, 0, + 0, 0, 0, 0, 0, 0,0xF5BC,0xF2A4, +0xD8CE,0xD8CF, 0, 0, 0, 0, 0, 0, +0xF5F7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF6E1, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD2B7, 0, 0, + 0, 0, 0, 0, 0,0xFBEC, 0,0xDDC8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE4E8, + 0, 0,0xD2C1, 0, 0, 0,0xF8D7, 0, + 0, 0, 0, 0,0xD6BB,0xDED6, 0, 0, +0xF7BD,0xECAE, 0, 0, 0,0xD0E1, 0,0xE0F5, +0xEAB3, 0,0xCED6, 0, 0, 0, 0,0xCCA5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xECF6,0xE2E1,0xE3BE, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFCC8, 0, 0, +0xCDF0, 0,0xF9F6, 0, 0,0xDFF0, 0, 0, + 0,0xE5BF, 0, 0, 0,0xCEBF, 0, 0, + 0, 0,0xFCE1,0xEDB0,0xFDD1,0xF6BB, 0, 0, +0xF9CF,0xEBDA,0xCAC1, 0,0xD2B8,0xCDF1, 0,0xE3D3, +0xFDE6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE6ED, 0, 0, + 0,0xE3FA, 0, 0,0xF0AA,0xF9D0, 0, 0, + 0, 0, 0, 0,0xFCE2, 0,0xF8A7, 0, + 0, 0,0xE1E5,0xEEF9, 0, 0, 0,0xE7F6, +0xEAED, 0, 0,0xFCB4,0xF5C2, 0, 0,0xD7DC, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF0F5, 0,0xDDE8,0xD3ED,0xF5FC, 0,0xDABF, 0, +0xCCFB, 0, 0, 0,0xD3FA,0xF4A4, 0, 0, + 0, 0, 0, 0, 0,0xEFD7, 0,0xD4C3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xFBE3, 0, 0, 0, 0, 0, 0, + 0, 0,0xFBED, 0,0xE0AD, 0, 0,0xEAEE, +0xFBB3,0xE4C2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF6E7,0xD2DD, 0,0xDFCC, 0, 0,0xFCC9, 0, + 0,0xE5A9,0xE0F6,0xF6B3, 0, 0, 0, 0, + 0,0xE1FE, 0, 0, 0, 0,0xCBF0, 0, +0xEAEF,0xEAF0, 0, 0, 0,0xDAC0,0xF8B4,0xEBF2, + 0, 0, 0, 0, 0,0xE4C3, 0, 0, + 0, 0,0xE9D7,0xE4F1, 0, 0, 0,0xCAEF, + 0, 0, 0, 0, 0, 0, 0,0xCED7, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFCCA, 0, 0, 0,0xF3E1, 0, 0,0xCBC4, + 0, 0, 0, 0,0xE3E5, 0,0xCBC5,0xEAB4, + 0, 0,0xE9BD, 0,0xD7C9, 0, 0,0xEBDB, +0xEDB1, 0,0xCCC3,0xF7BE,0xFCCB, 0, 0, 0, + 0, 0, 0,0xF8F4, 0,0xD9B7, 0, 0, +0xF3D3,0xF3D4, 0, 0, 0,0xF7E4, 0,0xF7D1, + 0, 0,0xD8B7,0xCEB1,0xCAC2, 0, 0,0xFBB4, +0xCBC6, 0, 0,0xF0F6, 0, 0,0xD5E7, 0, +0xEAD0, 0, 0, 0, 0, 0,0xCCD4,0xCBAF, + 0, 0, 0, 0, 0,0xF4AA,0xE9AF, 0, + 0,0xF5C3,0xE9D8, 0, 0, 0, 0, 0, + 0, 0,0xDDE9, 0, 0, 0,0xF1F3, 0, +0xD5FB,0xDEBB, 0, 0,0xF4FB, 0, 0, 0, +0xFDF3,0xFDF2,0xF7A6, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDDC9, 0, 0,0xD4D3, + 0,0xCCA8, 0,0xDAC1,0xCCD5, 0,0xD9E4, 0, + 0, 0,0xFACA, 0, 0, 0,0xE5E3, 0, + 0, 0,0xD3BC, 0, 0, 0,0xCAF0, 0, + 0, 0, 0,0xD0C4, 0, 0, 0,0xCAD0, +0xFAAB,0xEBEB,0xE7F8,0xD9E5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD1D7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF3A4, 0, 0, 0,0xD4FB,0xFCE3, +0xFAD8, 0,0xF3D5, 0,0xCFAB, 0, 0,0xEBF3, +0xD5FC, 0, 0, 0, 0, 0, 0,0xD3D4, +0xCDFC, 0,0xD9E6, 0,0xE2F9,0xE2A1,0xEBD4, 0, +0xE0F7,0xE4B2,0xCCFC, 0, 0, 0,0xFBE4, 0, + 0, 0,0xF4AB, 0, 0, 0, 0,0xD0BD, + 0,0xCAF1, 0, 0, 0, 0, 0, 0, + 0, 0,0xEFB8, 0, 0, 0,0xD7C0, 0, +0xEEFA,0xFDF4, 0, 0,0xD3E3, 0,0xFBC2, 0, + 0, 0, 0, 0, 0, 0,0xD5E8,0xDBAE, +0xE1B6,0xF8B7, 0, 0, 0, 0, 0,0xE0BF, +0xFBC3,0xDDEA, 0,0xE2A2, 0,0xEEA6, 0, 0, + 0, 0, 0,0xF6E8, 0, 0, 0, 0, +0xF6F5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xDDCA, 0, + 0,0xD0E2, 0, 0, 0, 0,0xDDA6, 0, + 0,0xDDEB, 0, 0,0xE4F9, 0, 0,0xE3AF, +0xD0FC, 0, 0, 0,0xF4FC, 0, 0, 0, + 0,0xCCBC,0xF7EA, 0, 0, 0, 0, 0, + 0,0xE5E4,0xDFF1, 0, 0,0xF7E1, 0,0xF9F7, +0xEFB9, 0, 0,0xF8D8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF9A9, 0, 0, 0, 0, + 0,0xF8D9, 0, 0, 0,0xEEBD, 0, 0, + 0,0xD8C6, 0, 0,0xE4E3,0xF5CE, 0, 0, + 0, 0,0xDDD9, 0, 0, 0, 0,0xD9E7, +0xD2B9,0xD5C3, 0, 0,0xDAE5,0xDAD0, 0,0xD1D9, +0xCED8, 0,0xCBDE,0xF4AC,0xDAFB, 0,0xF6E9,0xE8F3, +0xCFAC,0xF0F0, 0,0xF4FD,0xDBC8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCEC0,0xE3D4,0xD1CF,0xF1F5, + 0,0xCDF2, 0,0xCFEB, 0, 0, 0,0xCDB8, + 0, 0, 0, 0, 0, 0,0xE3A6,0xD1DA, + 0,0xF2A5, 0, 0, 0, 0, 0,0xF2A6, + 0,0xE4CE, 0, 0, 0, 0, 0, 0, + 0,0xD3FB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF1A9, 0, 0, 0,0xF2C9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xEFD8,0xE6C9, 0,0xD8B8,0xFAF3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF3B5, 0, 0,0xF8A4, 0, 0,0xD1F3, +0xE6C8, 0, 0, 0, 0,0xF8DA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDCE9, +0xDED7, 0, 0, 0, 0, 0,0xCBDF, 0, + 0, 0,0xCFEC, 0, 0, 0, 0,0xF4DF, + 0, 0,0xD1F4,0xD2BA, 0, 0, 0,0xDFF2, + 0, 0, 0,0xE1B7, 0, 0, 0, 0, +0xE2A3,0xD3FC, 0, 0,0xEDE6, 0, 0, 0, + 0, 0,0xDBC9, 0, 0, 0,0xE4FA, 0, +0xCFDE, 0, 0,0xCED0, 0, 0, 0, 0, +0xD5D3,0xF3F5,0xF7AE, 0, 0,0xEFC8, 0,0xCDF3, +0xF5CF,0xE5F3,0xF0C2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCAD1, 0, 0, 0,0xEAF1, 0,0xD0A6, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9DA, +0xF0AB, 0, 0, 0, 0, 0,0xEBE7, 0, + 0, 0,0xE5C0,0xFCB5, 0, 0, 0, 0, + 0,0xE4C4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xCCA9,0xFDC6, 0, + 0, 0, 0, 0,0xEAB5, 0,0xE5AA,0xDFBA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE1DF, 0,0xDAD1, + 0, 0, 0, 0,0xE1B8, 0,0xE8F4,0xD3FD, + 0, 0, 0, 0,0xE2A4, 0, 0, 0, + 0, 0,0xF2CA, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDAE6,0xF7B3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xFDCD, 0, 0, 0,0xF3B6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEED7, 0, 0, 0, 0, 0, 0, 0, +0xF5C4, 0, 0, 0, 0, 0, 0, 0, + 0,0xD8A4, 0, 0, 0, 0, 0,0xF2A7, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD9B8,0xD9B9,0xEFC9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD6CE, 0, 0, 0, 0, 0, 0, 0, + 0,0xF7CB,0xDFAE,0xE8F5, 0, 0, 0, 0, + 0, 0,0xD2B5, 0, 0, 0,0xD3D5, 0, + 0, 0, 0, 0,0xF4CC,0xDAFC, 0, 0, + 0, 0, 0,0xD9E8, 0,0xF7EB,0xF5C9, 0, +0xF3BC, 0,0xDAD2, 0, 0, 0, 0, 0, + 0, 0, 0,0xD3B5, 0, 0, 0, 0, + 0,0xE8B6, 0, 0,0xD6CF,0xF4BA, 0,0xF7C9, + 0, 0,0xCCAA, 0, 0,0xF0C3,0xCCD6, 0, + 0, 0,0xD0D3, 0,0xD3BD, 0, 0, 0, +0xDBFB, 0,0xCBE0, 0, 0, 0, 0, 0, + 0,0xD3E4,0xF6F7, 0, 0,0xD5BA,0xF3CD,0xCBE1, + 0, 0, 0, 0,0xEBF4, 0, 0, 0, + 0, 0,0xF4AD, 0,0xFCAA, 0, 0, 0, + 0, 0,0xF7EC, 0, 0, 0,0xE8F6, 0, +0xDAE7, 0, 0, 0,0xF7CC, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE5C1, 0, 0, 0, 0,0xE0EE, 0, 0, + 0, 0, 0,0xD5FD, 0, 0, 0, 0, + 0, 0,0xCEE6,0xFCAB,0xD5BB, 0, 0,0xF2A8, + 0, 0, 0, 0, 0, 0,0xE2A5,0xCDB9, +0xEAF2,0xCBC7, 0,0xCDF4, 0, 0,0xDBAF,0xEFD9, + 0, 0, 0, 0, 0,0xCDBA, 0, 0, +0xFCF9, 0, 0, 0, 0,0xDFF3,0xCEE7,0xDAC2, + 0,0xCFAD, 0, 0, 0, 0,0xE7F9,0xF8A8, + 0, 0, 0, 0, 0, 0,0xF3E2, 0, + 0, 0,0xCAF2,0xDFA4, 0, 0,0xD4C4, 0, + 0, 0, 0, 0,0xCCD7,0xE5C2, 0, 0, + 0, 0,0xCDBB, 0,0xEFDA,0xEED8, 0,0xDDA7, +0xE2A6, 0, 0, 0, 0, 0,0xE0C0, 0, + 0, 0,0xD6B0,0xF8CA, 0,0xFCFA, 0,0xD9FE, + 0, 0, 0, 0,0xDEB0, 0, 0, 0, +0xDDEC,0xDAE8, 0, 0, 0, 0, 0,0xD4E0, + 0,0xD6F9, 0,0xCDD7,0xDED8, 0, 0,0xF2F8, + 0,0xE4D6, 0, 0,0xD0C5,0xF4AE, 0,0xDDA8, + 0, 0, 0,0xEDC5,0xF3D6, 0, 0,0xDED9, +0xE3E6, 0, 0, 0, 0, 0, 0,0xD3A8, + 0,0xDBB0, 0, 0,0xE5DA,0xE3BF, 0, 0, + 0,0xDBB1, 0, 0, 0,0xD5E9, 0, 0, + 0, 0, 0,0xE0C1,0xEFDB, 0, 0,0xF0E9, + 0, 0,0xD7B2, 0, 0, 0, 0,0xD0FD, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD9E9, 0, 0,0xD0FE, 0,0xECED,0xD3A9, 0, +0xF2A9,0xF0C4, 0, 0,0xE2E2,0xE9EF, 0, 0, + 0,0xF9D1, 0, 0,0xE9D9, 0, 0, 0, + 0, 0,0xE8DA,0xDAC3,0xDAC4,0xD4C5, 0,0xE7FA, + 0, 0, 0, 0, 0, 0,0xCDE0,0xE3B0, + 0,0xDBB2,0xFBC4, 0,0xF3E3, 0,0xD9A5,0xFBE7, +0xDDCB,0xD0D4, 0,0xE6B6,0xE0AE,0xFDDA, 0, 0, + 0, 0, 0, 0, 0, 0,0xDCB5,0xE0F8, +0xE7B1, 0, 0, 0, 0,0xF5F0, 0,0xD8DC, +0xEDC6, 0, 0, 0, 0,0xE1B9, 0,0xE3C0, +0xF9C0,0xE9F0, 0, 0,0xD9DB, 0,0xF3E4, 0, + 0, 0,0xDCB6,0xE4E9, 0, 0, 0, 0, + 0,0xF0C5,0xE3C1,0xFCCC,0xFCCD, 0, 0, 0, + 0,0xF2CB, 0,0xF2CC, 0, 0, 0,0xE4CF, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF1DB, 0,0xFAD9, 0,0xF1B8,0xFDF5,0xE0F9, + 0, 0, 0, 0,0xE7FB,0xFCB7,0xFCE4,0xFBC5, +0xE3E7,0xD8B9, 0,0xF6F8, 0, 0,0xDCC5,0xCCD8, + 0, 0, 0,0xE0AF,0xF4E7, 0,0xEFDC,0xCFFC, +0xEFDD, 0,0xF2AA, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xFDBE, 0, 0,0xCAAC, +0xFDBB,0xFDC7, 0, 0, 0, 0,0xE7B2, 0, +0xEAD1,0xDFF4, 0, 0, 0, 0,0xD1EC,0xE4DE, +0xE5C3, 0, 0, 0, 0,0xD9A6, 0, 0, +0xCDBC, 0,0xF3E5, 0, 0, 0, 0, 0, + 0, 0, 0,0xEDD5, 0, 0,0xD9BA, 0, + 0, 0,0xEDE7,0xFBB5,0xF8EC, 0, 0, 0, + 0,0xE0E7, 0,0xCCD9, 0, 0,0xD4C6, 0, + 0, 0, 0, 0,0xE7A5, 0,0xD5F5,0xD3BE, + 0,0xFCFB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE4F2, 0, + 0,0xDFF5, 0, 0,0xE8F8,0xF8ED, 0, 0, +0xCEC7, 0, 0, 0, 0, 0,0xFDF6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE8D8, 0,0xCDD8,0xE7D6,0xCCDA, 0, 0,0xCAE3, +0xDFF6,0xF0C7,0xF0C6, 0,0xD8BA, 0,0xF1F4,0xF4F0, +0xF5CC, 0, 0,0xFCE5, 0, 0, 0, 0, +0xEAC5,0xEAF3, 0,0xDDDB, 0,0xDCD7, 0, 0, + 0, 0, 0, 0,0xDEFD,0xF2F9, 0,0xD5C7, + 0, 0, 0,0xD8D0, 0,0xF0C8,0xD1A1,0xD1A2, + 0, 0, 0, 0, 0, 0,0xD9D4,0xD6E8, +0xD9CA, 0,0xDAB1,0xD8C7,0xDCE2,0xF3CE,0xF5F4, 0, + 0,0xF1B9, 0, 0,0xDAD3, 0,0xF6EA, 0, + 0, 0,0xCFF5, 0, 0,0xFDAE, 0, 0, + 0, 0, 0, 0, 0, 0,0xCAD2, 0, + 0,0xDFB4, 0, 0, 0, 0,0xD7DD,0xFABA, +0xEEA7,0xF5BD, 0,0xF8F5, 0, 0,0xEDE8, 0, + 0, 0, 0, 0,0xD4E1, 0,0xD1A3,0xE1D6, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF9F8, 0,0xDBCA, +0xCBF9,0xD4D4, 0,0xD9DC, 0,0xEEBE, 0,0xF7ED, + 0, 0, 0,0xD2EE, 0, 0,0xE1E6,0xF7F9, + 0, 0, 0, 0, 0, 0, 0,0xDDED, + 0,0xE8DB, 0,0xDBB3, 0, 0, 0,0xD1F7, +0xE0B0, 0, 0,0xD4E2, 0,0xF6D7, 0,0xD7F9, + 0, 0,0xD8DD, 0,0xCDFD,0xF2AB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCDBD, +0xF8C2, 0, 0,0xF2AC, 0, 0,0xCAAD,0xCAAE, +0xCFAE, 0, 0, 0, 0, 0,0xE3C2, 0, + 0, 0, 0, 0,0xDCB7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDBDA, +0xD9BB,0xCAF3,0xF6D3,0xE6F8,0xEAF5, 0, 0, 0, + 0, 0,0xEAF6, 0, 0,0xF6F9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCFAF, 0, 0,0xCAD3, 0, 0,0xCAAF, +0xD2B0,0xF1BA, 0,0xD7B3,0xE3C3,0xF3FD,0xDEDA, 0, + 0, 0, 0,0xDEDB, 0, 0,0xEFDE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE2E3,0xEEFB, 0, 0,0xDFF7,0xD7CA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCEE8,0xDBDB, 0, 0, 0, 0, 0, + 0, 0,0xF1BB, 0, 0, 0, 0,0xE9F1, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFAB7,0xD0C6, 0, 0,0xCCAB,0xEEA8, 0, 0, +0xCBFA,0xF9F9,0xCCFD,0xD3FE, 0, 0, 0, 0, +0xE4D0, 0, 0, 0, 0, 0,0xF2EE, 0, +0xD4D5,0xDFCD, 0,0xFCB8,0xD1D0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF2CD, 0, 0, + 0, 0, 0, 0, 0, 0,0xF7D2, 0, + 0, 0, 0, 0, 0, 0, 0,0xCAD4, + 0,0xD5D9, 0, 0, 0,0xD8DE, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCDD9, + 0, 0, 0,0xEEA9,0xF6BC, 0, 0,0xCCDB, + 0, 0, 0, 0, 0,0xF0C9, 0,0xFCFC, + 0,0xE8C9,0xF4FE, 0, 0, 0, 0,0xE7FC, +0xD7DE, 0, 0, 0, 0,0xDEDC, 0,0xF0AC, +0xCCFE,0xCDE1, 0,0xE1BA, 0,0xDBEF,0xDAB2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xD1A5,0xDCB8, 0, 0, + 0,0xD8F6, 0,0xD1A4, 0,0xCDE2, 0, 0, + 0, 0,0xDCEA, 0, 0,0xF0F7, 0,0xF0CA, +0xD0BE, 0,0xDDDC, 0, 0, 0, 0,0xD4D6, +0xD3D6, 0, 0, 0, 0, 0, 0,0xEDD0, +0xCDA1, 0, 0, 0, 0, 0,0xDFB5, 0, + 0, 0,0xDFF8, 0, 0, 0, 0, 0, + 0,0xD4A1,0xCEB2, 0, 0, 0, 0, 0, +0xE8CA, 0, 0, 0, 0,0xEBF5, 0, 0, + 0, 0, 0, 0, 0,0xE3D5,0xF5D0, 0, + 0, 0,0xF5A1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9A7, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE5AB, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE6CB, 0,0xF5F1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE5C5, 0, 0, 0, 0, 0, + 0, 0, 0,0xF9A3,0xE0DB,0xF6EB, 0,0xCBF1, + 0,0xD9EA,0xF5A2, 0, 0, 0,0xD7D1, 0, +0xD1F8,0xEAF8,0xEAF9,0xDAB3, 0, 0, 0, 0, +0xEFDF, 0, 0,0xF1EF, 0,0xE5F6,0xEEBF,0xE2E4, + 0, 0, 0, 0, 0,0xD0BF, 0,0xFAAC, +0xF5D1,0xE7B3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE9BE, 0, 0, + 0, 0, 0,0xF2CE,0xDBB4, 0, 0, 0, + 0, 0, 0, 0, 0,0xFCCE, 0,0xDDEE, + 0, 0, 0, 0, 0, 0,0xE7B4, 0, + 0, 0, 0, 0,0xD7B4, 0, 0, 0, + 0, 0, 0,0xF7B4, 0, 0, 0, 0, + 0,0xCDBE, 0,0xDAE9, 0, 0, 0, 0, + 0, 0, 0,0xCFB0,0xF7D9,0xF3E6, 0, 0, +0xCED9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCEAA, 0,0xCBC8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD0A7, 0,0xF0CB, 0,0xD0C7, + 0, 0,0xE4C5, 0, 0, 0, 0, 0, + 0, 0,0xDBE0, 0, 0, 0, 0, 0, + 0,0xD5DA, 0,0xD7A7, 0, 0, 0,0xEEC0, + 0,0xF8F6, 0, 0, 0, 0,0xF5D2,0xEDE9, + 0,0xD9BC, 0,0xE5C6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF5A3, 0, 0, +0xDAD4,0xE2A7,0xFBFC, 0, 0,0xF1DC, 0, 0, + 0, 0, 0, 0,0xCAF4, 0, 0, 0, +0xE8FA, 0, 0,0xCEE9, 0, 0, 0, 0, + 0, 0,0xE9F8,0xE2E5, 0, 0, 0, 0, +0xD0B9,0xD4F2, 0, 0, 0, 0, 0,0xD1A6, + 0,0xDFCE, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFCF4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD3AA, 0, 0, 0,0xCCAC, 0, 0, 0, + 0,0xEFE0, 0, 0, 0,0xE5E5,0xD0D5, 0, + 0, 0, 0, 0, 0, 0, 0,0xDBFC, + 0, 0, 0, 0,0xFCE6, 0, 0, 0, + 0, 0,0xCBFE,0xEDEA, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xDEB1, 0, 0, 0, 0, + 0, 0, 0,0xF9E3, 0, 0, 0, 0, + 0, 0,0xD4A2,0xCFF6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD6D0, 0, 0, 0, 0, + 0, 0,0xD5EA,0xF1EE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xFACB, 0, + 0, 0, 0,0xE5A1, 0, 0, 0, 0, + 0, 0, 0, 0,0xD5B1, 0, 0, 0, + 0, 0,0xCFED, 0,0xEDEB, 0, 0, 0, + 0, 0,0xD5B2, 0, 0, 0,0xD5BC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFDE2,0xF3AD, 0,0xFDDB, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE9B0, 0, 0, 0, 0, 0, + 0, 0,0xD1A7, 0, 0,0xFDE3,0xCEB3, 0, + 0, 0, 0, 0, 0, 0,0xFDE4,0xFACE, + 0, 0, 0, 0,0xCAB0, 0,0xF7A7, 0, +0xCFB1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE6A2, + 0,0xFCB6,0xF2AD,0xEFE1,0xF3AE,0xDCC6,0xD9EB, 0, + 0, 0,0xE8E0, 0, 0, 0, 0, 0, + 0, 0,0xE1A8, 0, 0, 0, 0,0xD5F6, +0xCFFD, 0, 0,0xDEDD, 0, 0, 0,0xD9D1, + 0, 0, 0,0xE4EA,0xF2CF, 0,0xF7BF, 0, + 0,0xE2E6,0xE2A8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE3D6, 0, +0xEDD1, 0, 0, 0, 0, 0,0xE9F9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD6B1,0xDEB2, + 0, 0,0xE0E8, 0, 0,0xD3AB, 0,0xEBDC, + 0, 0,0xDFAF, 0,0xCAC3, 0, 0,0xEEFC, + 0,0xFDC3, 0, 0, 0,0xEBF6,0xCFB2, 0, + 0, 0, 0,0xD9EC, 0,0xD9BD, 0,0xD8DF, + 0, 0,0xD4B8,0xEBBE,0xDDEF, 0,0xDDF0,0xDDF1, +0xDDF2, 0, 0,0xD9BE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFBC6,0xCFB3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEEFD, 0, 0, 0, 0, 0, 0,0xE4AB, + 0,0xDAC5, 0,0xD8EC, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD1A8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE2A9, 0, 0,0xDEBC, +0xE7B5, 0, 0, 0, 0, 0,0xDBF0, 0, +0xEFE2,0xF1F0,0xCFB4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xDBF1, 0, +0xE0B1, 0, 0, 0, 0,0xDFA5, 0,0xF9D2, + 0, 0,0xE7FD, 0, 0,0xE6A3,0xFBF1,0xCBB0, +0xF2AE, 0, 0, 0, 0, 0, 0, 0, +0xCDE7, 0,0xE8DC, 0, 0,0xE7D7, 0, 0, +0xF7C0, 0,0xD0E3, 0, 0, 0,0xDAA1, 0, + 0, 0,0xCCBD, 0, 0,0xD1A9,0xDDCC, 0, + 0,0xE3FE,0xD1AA,0xE8AA, 0,0xEAB6,0xF9FA,0xE6CC, +0xF6D8, 0, 0, 0,0xD4C7, 0, 0, 0, +0xD9CB, 0,0xD9D2,0xD3CB,0xD8F7,0xDAA9,0xF5F8, 0, + 0,0xDEDE,0xF2AF,0xF8A9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD8C8, 0, 0,0xEEC1, 0, + 0, 0, 0,0xF9C1, 0, 0, 0, 0, +0xDDF3,0xEAFA, 0,0xF6BD,0xE1BB,0xCDBF,0xF4D4,0xE6CD, + 0,0xFCCF,0xFBA2, 0,0xE0DC, 0, 0, 0, + 0,0xF4BB,0xDAD5, 0,0xF9B2, 0, 0, 0, + 0, 0, 0,0xFBF2, 0,0xDBF6, 0,0xDEDF, + 0, 0, 0,0xDBF2, 0, 0, 0, 0, + 0,0xF8DC,0xF7EE,0xEBE8, 0,0xD2FA, 0, 0, +0xF1BC, 0, 0,0xFADA, 0, 0,0xDAEA,0xDAC6, +0xF7C1, 0, 0,0xE7B6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE5C7,0xD6AC, 0, 0, 0, + 0,0xDCC7, 0, 0, 0, 0, 0,0xE1A9, + 0,0xE2AA, 0,0xD5A6, 0, 0,0xD4D7, 0, + 0, 0, 0, 0, 0,0xF2D0, 0,0xEAFB, + 0,0xE0DD,0xFBF3, 0, 0, 0, 0, 0, + 0, 0,0xF1BD, 0, 0,0xE2E7,0xFDD7, 0, +0xCEC8,0xEAB7, 0,0xFCC0, 0,0xFDE7,0xF7EF, 0, + 0,0xD7B5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEFBA,0xF1DD, 0,0xDEB3, 0, 0, 0, + 0, 0, 0,0xE8CB, 0, 0,0xF8DD, 0, + 0,0xFBC7,0xD5C8, 0,0xD7DF, 0,0xDDA9, 0, + 0, 0, 0, 0,0xE9B1, 0, 0,0xFAAD, +0xF6D9,0xFAF4, 0, 0, 0, 0, 0,0xF8AA, + 0, 0, 0, 0, 0,0xE6EE, 0,0xCCDC, +0xE1BC,0xE0EF, 0, 0,0xE9BF,0xFCFD,0xE6CE, 0, + 0,0xE1D7, 0,0xE6CF, 0,0xF4F1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE4F3, + 0, 0,0xE4FB, 0, 0,0xF9E4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEFE3, 0, 0,0xCFEE,0xF6BE,0xE0B2,0xFCFE,0xD1AB, + 0, 0, 0,0xD7FA, 0, 0, 0,0xFBC8, + 0,0xE2D7, 0, 0, 0, 0, 0, 0, +0xD4A3,0xF0F8,0xD7A8, 0, 0, 0,0xE1E7, 0, + 0,0xD3BF, 0, 0, 0, 0, 0, 0, +0xEFE4, 0,0xD7C5,0xEBE2, 0, 0,0xFCE7, 0, + 0,0xE4A2, 0,0xE2E8, 0,0xE6D0, 0,0xFBE8, +0xF4E8,0xE5F4,0xF4BC,0xF4D5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDFB6, + 0,0xFCB9,0xEEC2,0xCAF5, 0, 0, 0,0xEFE5, +0xCBE2,0xD4A4, 0,0xDEE0,0xDAFD,0xE4C6,0xE8BE, 0, + 0, 0, 0,0xE0DE,0xF6B4,0xEAD2, 0,0xF9FB, + 0, 0,0xE0C2, 0,0xCAE4, 0,0xE7B7, 0, +0xEAFD, 0,0xD9DD, 0,0xDAB4,0xEEAA,0xFBE9, 0, + 0, 0, 0,0xDBCB,0xDAB5, 0, 0, 0, + 0, 0,0xF1BE, 0, 0,0xD3AC, 0, 0, + 0, 0, 0, 0, 0, 0,0xFBC9, 0, +0xDFCF, 0, 0,0xD3C0,0xE3D7, 0,0xEFE6,0xFCD0, + 0, 0, 0, 0, 0, 0, 0,0xE9C0, + 0, 0, 0,0xF5D3, 0, 0,0xECDC,0xF7B7, + 0, 0,0xEAB8,0xD1F9, 0, 0, 0, 0, + 0, 0,0xDCC8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEAB9, 0, 0, 0, 0, 0,0xF1DE, 0, + 0, 0, 0, 0,0xD7B6,0xCFB5, 0,0xD9A8, + 0, 0,0xECEE, 0, 0,0xDDAA, 0, 0, + 0, 0,0xCDA2,0xE8AE, 0, 0, 0,0xE1BD, + 0,0xF2D1, 0, 0, 0, 0,0xE9C1, 0, + 0, 0,0xD2FC, 0, 0, 0, 0, 0, + 0, 0,0xDBB5, 0,0xF3E7,0xD8FE, 0, 0, + 0,0xFCD1, 0,0xEDB2,0xF4AF, 0,0xFBA3, 0, + 0,0xFCC1, 0,0xEEAB,0xD4A5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF4F2, + 0, 0, 0, 0,0xEED9, 0, 0, 0, +0xFBCA, 0, 0, 0, 0, 0,0xCDE3,0xD8BB, + 0,0xE5DB,0xF8F7, 0, 0, 0,0xF6D4, 0, + 0, 0, 0, 0, 0, 0, 0,0xD7A9, + 0,0xCBC9, 0, 0,0xE6D1,0xF0CC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD8AE, 0,0xF9D3,0xD5FE, 0, 0, 0, 0, + 0, 0, 0,0xD8BC,0xF2B0, 0, 0, 0, + 0,0xE2AB,0xF3E8, 0, 0, 0, 0, 0, +0xEFC2, 0, 0, 0, 0, 0, 0,0xEDEC, + 0,0xE7B8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xDAFE, 0, 0,0xCCBE, 0, 0,0xF2FC, +0xDAEB, 0,0xE2D8,0xEDD6, 0, 0,0xD6D1,0xE0B3, + 0, 0,0xFCD2, 0,0xEBC8, 0, 0, 0, + 0, 0, 0, 0, 0,0xD3C1,0xF0CD, 0, +0xCFF7, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xEDD2, 0,0xD4D8,0xDCC9,0xD7F1, 0, + 0,0xDFBB, 0, 0,0xF3A5, 0, 0, 0, +0xF4CD, 0, 0, 0, 0,0xF1BF,0xF8B1, 0, +0xE9FA, 0, 0, 0,0xFBCB, 0, 0,0xCAD5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF9D4,0xF7CA, 0, 0,0xD6C8, + 0, 0, 0, 0, 0, 0,0xFCE8,0xF3BD, + 0,0xEEFE, 0,0xE7FE, 0, 0, 0, 0, + 0,0xD3C2, 0, 0, 0, 0,0xD3B6, 0, +0xCCAD,0xF6FA,0xD6B2,0xD2D8, 0, 0, 0, 0, + 0, 0,0xE7D8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE3A5, 0, 0, + 0, 0,0xE7B9, 0, 0, 0, 0,0xF0AD, +0xFBCC,0xEBA1, 0, 0,0xD4A6, 0, 0, 0, + 0,0xFBCD, 0,0xD5BD,0xF1DF, 0, 0,0xF6FB, + 0,0xDEB4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD5EB, 0, + 0,0xE5C8, 0, 0, 0,0xFBA4,0xD4B9, 0, + 0,0xDEE1, 0,0xE4A3, 0, 0, 0,0xD7B7, + 0,0xF8EE, 0, 0, 0,0xDEB5, 0, 0, +0xD6D2, 0,0xF9D5,0xE7BA,0xEBD5,0xD5F7,0xEFE7,0xE1BE, + 0, 0, 0,0xFAAE, 0, 0, 0,0xD6E9, +0xD6EE, 0, 0, 0, 0, 0, 0,0xE7BB, + 0, 0, 0, 0, 0, 0, 0,0xECCB, + 0, 0, 0, 0, 0, 0,0xD5B3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCEB4, 0, 0, 0, +0xFBA5,0xE1EE, 0, 0, 0, 0, 0, 0, +0xF7A8, 0, 0, 0, 0,0xFBCE, 0, 0, + 0, 0, 0,0xD8BD, 0, 0, 0, 0, + 0, 0, 0,0xFBFD, 0, 0, 0, 0, +0xFCE9, 0, 0, 0, 0, 0, 0, 0, +0xCFB6, 0, 0, 0,0xEDC7,0xEEAC, 0, 0, + 0, 0, 0, 0, 0,0xCCDD, 0, 0, + 0, 0,0xF6A7, 0, 0, 0,0xE6FA, 0, + 0, 0,0xF5A4, 0, 0, 0, 0, 0, +0xFDDC,0xEDB3,0xCEC9, 0, 0, 0, 0, 0, + 0,0xEFE8, 0, 0,0xE1BF, 0, 0, 0, + 0, 0, 0,0xFADB,0xCBE3,0xF7A9, 0,0xFBA6, + 0, 0, 0,0xDCB9, 0, 0, 0,0xF1C0, +0xEDC8,0xEFC3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD6AD, 0, 0,0xFDCE, 0, 0, 0,0xE8A1, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFBF4,0xD5A7, 0, 0, 0,0xF1F6, 0,0xE6D3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCCDE, 0, 0, 0, 0, 0, 0, + 0,0xF8B2, 0, 0, 0,0xDCEB, 0, 0, + 0, 0, 0, 0,0xFDB6, 0, 0, 0, + 0,0xE5EA, 0, 0,0xF1E0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xDBCC,0xDDCD, 0, 0, 0,0xD4C8, 0, + 0,0xD9ED, 0, 0, 0, 0,0xF5A5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE6FB, 0, 0, 0, 0, 0,0xE6D4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xFDC8, + 0,0xD6A1,0xFDBF, 0,0xFCD3, 0,0xEFA1, 0, +0xE7BC, 0, 0, 0, 0, 0,0xD1EE, 0, + 0,0xE6D5, 0, 0,0xE9F2, 0,0xDFB0, 0, + 0, 0, 0, 0,0xD8E0,0xFCBA,0xFDAF,0xF0CE, + 0,0xDBE1, 0, 0,0xE5C9, 0,0xEDB4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE0C3, 0, 0, + 0, 0, 0, 0,0xE3D8, 0, 0, 0, + 0,0xE9FB,0xEAA8, 0, 0, 0, 0,0xFDB7, + 0, 0,0xFBA7, 0,0xE9C2, 0, 0, 0, + 0,0xFDF7, 0, 0, 0, 0, 0,0xE2D9, + 0, 0,0xDCEC, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE8A2, 0, 0, 0, + 0,0xE6F0, 0, 0, 0, 0, 0, 0, + 0,0xFDF8,0xFDF9, 0, 0, 0,0xF6BF, 0, + 0,0xE7A7, 0,0xE6D7, 0, 0, 0, 0, +0xD4F3,0xD4C9, 0, 0, 0, 0,0xD6FA, 0, +0xD7F2, 0,0xE1C0, 0,0xDBE2,0xE6D8, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE7BD, + 0, 0, 0, 0, 0,0xF0CF,0xF3BE,0xE2AC, + 0, 0, 0, 0, 0,0xF5B7,0xE0F0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFDB8,0xE3E8, 0,0xD4A7,0xE8FC, +0xFAD2, 0, 0, 0, 0, 0,0xF8EF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD6D3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD5B4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF0D0, 0,0xF7F0,0xEEB3, 0, 0, +0xEABA, 0,0xEAD3, 0, 0,0xEDC9,0xDDAB, 0, + 0, 0,0xE5AC,0xFDA1, 0,0xDFD0,0xECB3, 0, +0xDFD1, 0, 0, 0, 0, 0,0xEDED,0xF8B8, +0xF7FA, 0, 0, 0,0xF8AB, 0, 0, 0, + 0, 0,0xF4E0, 0, 0, 0, 0, 0, +0xD4BA,0xE4B3, 0,0xE9DA, 0,0xDEB6, 0,0xD9BF, + 0,0xD9C0,0xD6EF, 0, 0, 0, 0,0xD9CC, + 0,0xDAAA, 0, 0, 0, 0, 0, 0, + 0, 0,0xDFE5, 0, 0, 0, 0, 0, + 0,0xF7E5, 0, 0, 0,0xCCB2, 0, 0, +0xDFF9,0xD7E0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD4BB, 0, 0, 0, 0,0xFDFA, + 0, 0, 0, 0,0xCCB3, 0, 0,0xDBF3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xDFD2, 0,0xCECA, 0,0xEEDA, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE4E4, 0, +0xFBCF, 0, 0, 0, 0, 0, 0,0xCFB7, + 0,0xEEC3, 0, 0, 0, 0, 0, 0, + 0,0xCEEA, 0, 0, 0, 0, 0, 0, + 0,0xE2AD, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD7E1,0xFAF5, 0, 0,0xD5C9,0xF8AC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE7D9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF3E9, 0, + 0, 0, 0,0xD8ED,0xE3C4,0xF0F1, 0, 0, + 0, 0, 0, 0, 0,0xE8E5, 0, 0, + 0,0xE0FA,0xEEC4,0xD9DE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xEBA2,0xEBA3, + 0, 0, 0, 0, 0, 0,0xFCC2,0xEABB, + 0, 0, 0, 0,0xE8AB,0xDEE2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEDEF, 0,0xE8A3, 0, 0, 0, 0,0xCFF1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD4BC, 0,0xFCEA, 0, 0, 0, 0, 0, +0xE7BE, 0,0xFCF2, 0, 0,0xD6B4, 0, 0, +0xE2AE, 0,0xD3B7,0xFACC, 0, 0, 0, 0, + 0, 0, 0, 0,0xFADC, 0,0xEDB5,0xE1E3, + 0,0xE8AC, 0,0xE8DD, 0, 0,0xEFE9, 0, + 0, 0, 0, 0,0xF4BD, 0,0xCFB8,0xE9DB, +0xD1AC, 0, 0, 0, 0, 0, 0,0xDAC7, + 0, 0, 0, 0, 0, 0, 0,0xEBC9, + 0,0xE8CC, 0, 0, 0,0xDEB7, 0, 0, + 0, 0,0xD6BC,0xD3E5, 0, 0, 0, 0, + 0,0xFADD, 0, 0, 0, 0, 0, 0, +0xDAD6, 0,0xCAB1, 0, 0, 0, 0, 0, + 0,0xDAC8,0xDFA6, 0,0xF9B3,0xF2D2, 0,0xCAC4, + 0, 0, 0, 0, 0, 0,0xCECB, 0, + 0,0xCDF5, 0, 0, 0,0xFDB0,0xD5A8, 0, +0xF1C1, 0, 0,0xE2E9,0xDCCA,0xECB4,0xFAC0, 0, + 0,0xFBA8,0xD0A8, 0, 0,0xDAEC, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9EE, + 0,0xE0FB, 0, 0, 0,0xEFEA,0xFADE, 0, + 0,0xE0C4, 0,0xCFB9, 0,0xD5CA,0xD7E2,0xE2AF, + 0,0xD7B8, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE8CD, 0, 0, 0, 0, + 0, 0, 0,0xF6DA, 0, 0, 0, 0, +0xEFA2,0xE2DA,0xF6FC, 0, 0,0xFBD0,0xD1AD, 0, +0xCDE4, 0,0xD1AE,0xDCED,0xE8CE, 0,0xF0F9,0xCEB5, +0xE6FC, 0, 0,0xD7FB,0xD0D6,0xDDF5,0xF7F1, 0, +0xF6FD, 0,0xDBF7, 0, 0, 0, 0,0xFBEA, +0xE9DC,0xD9C1, 0,0xF5F2,0xE0C5, 0, 0, 0, + 0, 0, 0,0xEAD4, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF9C2, 0,0xEABC, + 0,0xD2C5,0xFBD1,0xE7C0,0xEBA5, 0,0xDFFA,0xE3A2, +0xD7B9, 0,0xE9C3, 0,0xE8FD,0xE8AF, 0, 0, +0xF2D3,0xFBA9,0xD8A5, 0, 0, 0, 0,0xD5CB, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD0C8, 0, + 0, 0,0xD1AF,0xD7E3, 0, 0, 0,0xE0C6, + 0,0xD6A2, 0,0xEDF0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD7F3, 0, 0, 0,0xFCD4, 0,0xDAD7,0xCCDF, + 0,0xF2D4, 0,0xD1B0, 0,0xCCE0, 0,0xDBFD, +0xF3BF, 0,0xF0D1, 0, 0, 0, 0, 0, +0xFCBB, 0,0xE2B0, 0, 0,0xE6A5, 0, 0, + 0,0xE2DB, 0, 0, 0,0xDFDE, 0,0xE0C7, + 0, 0, 0, 0, 0, 0,0xF2EF, 0, + 0, 0,0xCCE1, 0, 0, 0, 0,0xD6EA, + 0, 0, 0, 0,0xE7C2, 0, 0, 0, +0xCEB6, 0,0xF3C0, 0,0xCDFE, 0, 0, 0, +0xFBD2, 0,0xF8F8,0xF7FB, 0, 0,0xE8BF, 0, + 0, 0, 0, 0, 0, 0,0xE8B7, 0, + 0, 0, 0, 0, 0, 0, 0,0xEDB6, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xDCBA, 0, 0,0xCCB4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF1F7, 0, 0, 0,0xE8B8, 0, 0, +0xCAF6, 0,0xE4A4,0xF4D6, 0, 0, 0,0xDFE6, + 0, 0, 0,0xDFA7, 0,0xDFE7,0xE1C1, 0, +0xE9C4, 0, 0,0xDCCB,0xE9C5, 0, 0, 0, +0xEFA3,0xEBA6,0xCBA3,0xE3E9, 0, 0, 0,0xD1FB, +0xEFA4, 0,0xEFEB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD0B4, + 0, 0, 0, 0,0xCDA3, 0, 0,0xE8E6, + 0,0xEFA5, 0,0xD3CC,0xDAED, 0, 0, 0, + 0,0xD7BA, 0,0xF2D5,0xF5E5,0xD9EF, 0, 0, + 0, 0,0xF9B4, 0, 0,0xD5D4,0xFDCF, 0, + 0, 0,0xDBE3, 0, 0, 0, 0,0xF1E1, +0xECB6, 0, 0, 0, 0,0xFBFE,0xD3D7, 0, +0xD1B1, 0,0xCBB1, 0, 0, 0, 0,0xD1B2, + 0, 0, 0, 0, 0, 0,0xCBB2,0xF1C2, + 0, 0,0xF4E1,0xF9B5, 0, 0,0xE1C3,0xE1C2, + 0,0xEBF7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xDFA8, 0, 0, + 0, 0, 0, 0, 0,0xCBCA, 0, 0, + 0, 0, 0,0xE6B9, 0, 0, 0, 0, + 0,0xF8DE,0xF9AA,0xCAF7, 0,0xEDB7, 0, 0, +0xD3B8,0xF2D6, 0, 0,0xD4D9,0xEEC5,0xF2F0, 0, + 0, 0,0xCAB2, 0, 0,0xDCBB, 0,0xF1F8, + 0, 0, 0, 0, 0,0xECB7, 0, 0, + 0, 0,0xE5CA, 0,0xF6C0,0xFDDD, 0, 0, +0xD4E3,0xCCE2, 0,0xF7D4, 0, 0, 0, 0, + 0, 0,0xD7E5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD3C3, 0,0xD8A6, 0,0xF6C1, 0, 0, 0, + 0, 0,0xDDF6, 0,0xCDC0, 0, 0, 0, +0xE5DC, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE5CB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE1C4, 0, 0, 0, 0, 0,0xE8B0, +0xF4B0,0xF3EA,0xDAEE, 0,0xD7BB, 0,0xE2B1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD7AA, 0, 0, 0, 0, + 0, 0,0xD6FB, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE4DF, 0,0xCAD6, 0, + 0, 0,0xEBA8, 0, 0, 0,0xDBFE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF6C2, 0, 0,0xEFBB, 0, 0, 0, + 0,0xD4FD, 0, 0,0xE0C8, 0, 0, 0, +0xE8B9, 0,0xEFA6, 0, 0, 0, 0, 0, +0xCDA4, 0, 0,0xD4F4,0xDBA1,0xDBDC,0xDBDD, 0, + 0, 0, 0, 0,0xEEDC, 0,0xCBCB,0xFCD5, + 0, 0, 0, 0, 0, 0,0xCEEB, 0, +0xCDC1, 0, 0,0xFBD3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF9AB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF5D4, 0, 0, 0, 0,0xD9A9, + 0, 0,0xE9DD,0xDBCD, 0, 0,0xDDCE, 0, +0xE7C3, 0,0xECCC, 0, 0, 0, 0, 0, + 0, 0,0xF9EC, 0, 0, 0,0xCBCC, 0, + 0, 0, 0,0xE0FC,0xD4A8, 0,0xEDD3,0xD8EF, + 0,0xF2D7, 0,0xCAF8,0xDAEF, 0, 0,0xD6D4, + 0, 0, 0, 0, 0, 0,0xD9CD, 0, + 0, 0,0xD8EE, 0,0xF2C1, 0, 0, 0, +0xDFD3, 0, 0, 0,0xDAF0, 0,0xE2EA, 0, + 0,0xE0FD, 0, 0,0xD8F8, 0, 0, 0, +0xF7AF,0xDAB6, 0,0xCAD7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF2D8, 0, +0xD8F9, 0, 0, 0, 0, 0, 0, 0, + 0,0xFADF, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCFEF, +0xD9C2, 0,0xF0D2, 0,0xE4D1, 0, 0, 0, +0xF3B7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFAE0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xEFEC, 0, 0, 0, 0, + 0,0xE2B2, 0,0xD4BD, 0, 0,0xD9CE, 0, + 0, 0, 0,0xF4E2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xD4A9, 0, 0, 0, 0,0xCDC2,0xE7DA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF2D9, 0, 0, 0, 0, + 0,0xD9AA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD8BE, 0, + 0, 0, 0, 0, 0,0xDCAD, 0, 0, + 0, 0, 0, 0,0xE2EB,0xD6FC, 0, 0, +0xCAF9, 0, 0,0xD4DA, 0, 0, 0, 0, + 0, 0, 0,0xF4D7,0xCCA1, 0, 0,0xCFBA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF5B8, + 0, 0, 0,0xD9C3,0xD0E8, 0, 0, 0, + 0, 0,0xE3C5,0xEBF8, 0,0xF2B1, 0, 0, + 0,0xCFBB, 0, 0, 0,0xD3AD,0xE8E1,0xCEEC, + 0, 0, 0,0xE0B4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDEE3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDDF7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF2B2,0xF3F6,0xF6DB, + 0, 0, 0, 0,0xD7FE, 0, 0, 0, + 0, 0,0xF8DF, 0,0xF7F2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD0A9, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE6DA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF5A6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD7BC,0xCCE3, 0, 0,0xE6DB, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDDDD, 0, 0, 0, + 0,0xD1B3, 0, 0, 0, 0, 0,0xEFED, + 0, 0, 0, 0,0xD6DE,0xE4F4,0xE1EF, 0, + 0,0xDDF8, 0, 0, 0, 0, 0,0xE8CF, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCAE5, 0, 0, 0,0xDCA1, + 0,0xE0B5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xFCAC,0xFCAD,0xD8A7, 0, 0, 0, + 0,0xEDB8, 0, 0, 0,0xDBB6, 0, 0, + 0, 0,0xD6F0,0xF3AF, 0, 0,0xCDA5, 0, +0xDAF1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD8A8, 0, 0, 0,0xCCE4, 0, 0,0xD1B4, + 0, 0, 0, 0, 0,0xCAD8, 0, 0, + 0, 0, 0,0xDAF2, 0, 0, 0, 0, + 0,0xF5A7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF5A8, 0, + 0, 0, 0, 0, 0, 0,0xE6A6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD5EC,0xD5F8,0xDAF3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE3C6, 0, 0, 0,0xDEE4, 0, +0xDEE5,0xD1B5, 0, 0, 0, 0, 0,0xD1B6, +0xD1B7,0xF2B3, 0, 0, 0, 0, 0, 0, +0xE9DE, 0, 0, 0, 0, 0,0xF0D3,0xF2B4, + 0, 0,0xF0D4,0xCBE4,0xFBD4,0xF5E6,0xE3EA, 0, +0xDEE6, 0, 0, 0, 0,0xDFD4, 0, 0, +0xF8F9, 0, 0, 0, 0,0xF0AE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD1B8, 0, 0, 0, 0,0xD6DF, + 0,0xD0D7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFCA1,0xEFEE,0xDCD8, + 0,0xE9DF, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE5DD,0xFDFB, + 0, 0,0xE0C9, 0, 0, 0,0xD6C9, 0, + 0,0xD4AA, 0,0xE5CC, 0, 0, 0, 0, + 0,0xE9E0, 0, 0, 0,0xD0D8,0xFCA2,0xD4BE, +0xE2B3,0xDEE7, 0, 0, 0, 0, 0, 0, + 0,0xDCBC,0xD2B6,0xF5D5, 0, 0, 0, 0, + 0,0xCEA1,0xF5A9, 0, 0,0xDDF9, 0, 0, +0xDDFA, 0, 0, 0, 0, 0, 0,0xF0D5, + 0, 0, 0, 0,0xF6DF, 0,0xF2DA,0xE4EB, + 0,0xF2F1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xECB9, 0, 0, 0, 0, +0xFDFC, 0, 0, 0, 0,0xE1AA, 0, 0, +0xCAD9, 0, 0,0xEFEF, 0,0xF5AA, 0, 0, + 0, 0, 0, 0,0xECF9, 0, 0,0xF8AD, + 0,0xF2C2,0xF6C3, 0,0xD7D2, 0, 0,0xF9A2, +0xF0D6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF0FA, 0, + 0,0xF6E0, 0, 0, 0, 0,0xE9F3,0xF2C3, + 0, 0, 0,0xD4AB,0xCAB3,0xCDA6, 0,0xCDC3, +0xCDDA, 0, 0, 0, 0, 0,0xD9CF, 0, + 0,0xF6C4, 0, 0, 0,0xEEDD,0xE7C4, 0, + 0, 0, 0, 0, 0, 0, 0,0xE2B4, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xDFE2,0xE7DB, 0, 0, 0, 0, 0, + 0,0xE8B1, 0,0xFCAE, 0, 0, 0, 0, +0xE5CD, 0, 0, 0,0xFAEB, 0,0xCFBC, 0, + 0,0xCFE2,0xCDF6, 0, 0,0xEFF0, 0,0xF4BE, + 0,0xD4CD, 0, 0,0xF3B8, 0, 0, 0, +0xE9A1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF2F2,0xF3EB, 0,0xF0D7, 0, 0, +0xCFD7, 0, 0, 0, 0, 0, 0,0xCFDF, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE8C0,0xE8C1, 0, 0, 0,0xCFE3,0xE9A2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD0AA, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF3C1,0xD0AB, 0,0xD4E4, + 0, 0,0xEFBC,0xD8A1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9DF, + 0,0xF3D7, 0, 0, 0,0xDCBD, 0,0xCCE5, +0xEDF1, 0, 0,0xF1E2, 0,0xD4DB, 0, 0, + 0, 0,0xE2B5, 0, 0,0xCAE6, 0,0xD3AE, + 0, 0, 0, 0, 0, 0,0xCCE6, 0, + 0,0xF1D3,0xF5E7, 0, 0, 0, 0,0xCADA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xFBEE, + 0,0xE1C5, 0, 0, 0, 0, 0, 0, + 0,0xDFE9, 0,0xEEDE, 0, 0,0xF7C2, 0, +0xD8A2, 0, 0, 0, 0, 0,0xDDAC, 0, + 0, 0, 0, 0,0xF0AF,0xD6BD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE1AB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF9B6, 0, + 0,0xD4F5, 0,0xD0C9,0xEFA7,0xE2EC, 0,0xDBEA, +0xCECC,0xF5E8,0xF7D5, 0,0xD3CD, 0,0xF3FE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD0B5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE0FE, 0,0xDFFB, 0, + 0, 0, 0, 0, 0,0xE6DD, 0, 0, + 0, 0, 0, 0, 0,0xE8A4, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCBCD, + 0, 0, 0,0xEFA8, 0, 0, 0,0xEEB4, + 0, 0, 0, 0,0xDAD8,0xD1B9, 0,0xDFA9, + 0, 0,0xF3B0, 0, 0,0xCCC4, 0, 0, + 0,0xCEB7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xEFA9, 0, 0, + 0,0xDFD5, 0, 0,0xEDD7, 0, 0, 0, +0xEEC6, 0, 0, 0, 0, 0, 0, 0, +0xEFBD,0xFCD6, 0, 0,0xDBF4, 0,0xEFAA,0xF8B9, + 0,0xF5E9, 0, 0, 0, 0, 0, 0, + 0, 0,0xE3D9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE1C6, 0, 0, 0,0xD4BF, 0, 0, 0, + 0,0xDEE8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF0EA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF3C2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD3AF, 0, + 0,0xCADB, 0, 0, 0, 0, 0,0xFCD7, + 0, 0,0xEDD8,0xE1C7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF4D8,0xD6B3,0xDDAD, + 0, 0, 0,0xD5BE, 0, 0, 0, 0, + 0, 0, 0, 0,0xF1C3,0xEEDF, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD6EB, 0, 0, 0,0xF4D9, 0, 0, 0, + 0, 0, 0, 0,0xD7E6, 0, 0, 0, + 0, 0, 0,0xDAB7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xDDFB, 0, 0, 0, 0, + 0,0xDDCF, 0, 0, 0, 0, 0, 0, + 0, 0,0xD8A3, 0, 0,0xDAD9, 0,0xF0D8, +0xEFC4, 0, 0, 0, 0, 0, 0,0xE1D8, + 0, 0, 0, 0, 0,0xF1D4, 0,0xEDF2, + 0, 0, 0, 0, 0, 0,0xD5DB, 0, + 0,0xD5DC,0xF3C4,0xCBD7, 0, 0, 0, 0, + 0,0xE2B6, 0, 0, 0, 0,0xEFF1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xFBD5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD3D8, 0, + 0, 0, 0, 0, 0, 0,0xDDD0,0xF0D9, +0xCBB3, 0, 0, 0, 0, 0, 0,0xD5DD, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCDA7, 0, 0,0xD0AC, 0, +0xD1BA, 0,0xF1C4, 0,0xE5B3,0xFBF5,0xE9E1,0xFDE0, +0xFCBC, 0,0xDAA2,0xDAA3, 0,0xD2A1, 0, 0, +0xD2EF, 0, 0, 0,0xE2ED, 0, 0,0xDEE9, +0xCEDC,0xF2B5,0xD0E4,0xDDD1, 0, 0, 0, 0, +0xE1C8,0xDBB7,0xDFE3, 0, 0, 0, 0, 0, + 0, 0, 0,0xEDB9,0xF1C5, 0,0xF3CF,0xD7AB, +0xE1AC, 0, 0,0xE3EB, 0,0xEEC7, 0, 0, + 0,0xE1C9,0xCAFA, 0, 0, 0, 0, 0, + 0, 0,0xF0FB,0xFAE1,0xF0DA,0xCCE7,0xDAF4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCCBF, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCEED, 0, + 0,0xD5A9,0xFAE2, 0, 0, 0,0xD0E5, 0, +0xEBD6, 0,0xECDF, 0, 0, 0,0xDFFC, 0, + 0,0xF7D6,0xDEEA,0xCBB4, 0, 0,0xEFBE, 0, + 0,0xCCB5, 0, 0, 0, 0, 0,0xCFBD, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xEFF2,0xE2B7, + 0, 0, 0,0xCCE8, 0, 0, 0, 0, + 0, 0, 0, 0,0xF0FC, 0, 0, 0, +0xD6E0, 0,0xF1C6, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE2B8,0xEBAB, 0, 0, + 0,0xCBB5,0xD8D1, 0,0xF4CE,0xF3F7, 0, 0, +0xD7C6, 0,0xD1BB,0xF7AA, 0,0xEDCA,0xD7D3,0xD8FA, + 0, 0, 0, 0, 0, 0, 0,0xF6C5, + 0, 0,0xD1CC,0xDDFC, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xDFFD, 0, +0xF9E5, 0,0xE0CA, 0, 0,0xF2FD,0xD3B0, 0, +0xF4F3,0xDAC9, 0,0xE6DE, 0, 0, 0, 0, +0xF8BA,0xE8D0, 0, 0,0xD8FB, 0, 0,0xEAD5, + 0, 0, 0, 0,0xD6A3, 0, 0, 0, + 0, 0, 0,0xF6C6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF2DB,0xE4FC, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE8B2, 0, 0, + 0, 0, 0,0xDADA, 0,0xF2DC,0xFBD6,0xE9B2, + 0,0xEEAD, 0,0xFAE3, 0, 0, 0, 0, + 0, 0, 0,0xDCEE, 0, 0,0xF5EA,0xE6E0, + 0,0xF0FD, 0, 0, 0, 0, 0,0xD7AC, + 0, 0, 0, 0, 0,0xF5C5,0xEEE0, 0, + 0,0xDBE5, 0,0xDDDE, 0, 0,0xD9F0,0xE9A3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF1F9, 0,0xF2C4,0xE0CB, 0, 0, + 0, 0, 0, 0, 0, 0,0xE9A4, 0, + 0,0xE2B9, 0, 0, 0, 0, 0, 0, + 0,0xE3B1,0xFCEB,0xCDA8, 0,0xCCB6, 0, 0, +0xF0DB, 0, 0, 0, 0, 0, 0, 0, + 0,0xE6BA, 0, 0,0xCDA9, 0, 0, 0, + 0, 0,0xF3C3, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE1D9, 0, 0,0xEFAB, + 0, 0, 0,0xE7C5, 0, 0,0xE0E9, 0, +0xF3C5, 0, 0,0xD4C0,0xD5BF, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xDDAE, 0, +0xF9FC, 0,0xCCC0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE5A2, 0, 0, 0, +0xCEB8, 0, 0, 0,0xD8D2,0xF9D6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF1AA,0xCED1, 0, 0,0xF6C7, 0, +0xDBEB, 0,0xDFFE, 0, 0,0xD8E1, 0,0xF7F3, + 0,0xD7E7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD4FE, 0, 0, +0xD1BC, 0,0xE5CF, 0,0xCBB6, 0,0xDAB8, 0, + 0, 0, 0, 0,0xCDC4, 0, 0, 0, + 0, 0,0xD6BE, 0, 0, 0,0xE2BA, 0, + 0, 0, 0, 0,0xCFD8, 0, 0, 0, +0xE0CC,0xEBF9, 0, 0, 0, 0, 0, 0, + 0, 0,0xFDFD, 0, 0, 0, 0, 0, +0xD7E8,0xCBD8, 0, 0, 0,0xE9E2, 0, 0, + 0,0xE8BA, 0, 0, 0,0xE3C7, 0, 0, + 0, 0,0xECCD, 0,0xECCE, 0,0xD6BF, 0, + 0, 0,0xE3A7, 0,0xDFD6,0xFDE8, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xEEE1, +0xF6A8,0xDDFD, 0, 0, 0, 0, 0, 0, + 0,0xF8BB, 0,0xE8D1, 0, 0, 0, 0, +0xF9D7, 0, 0, 0, 0, 0, 0, 0, + 0,0xCEEE, 0, 0,0xECCF, 0, 0, 0, +0xE9A5,0xD6D5, 0,0xCDC5, 0,0xEDBA,0xD1BD, 0, + 0,0xCFBE, 0, 0,0xECBB, 0, 0, 0, +0xD2B1, 0, 0, 0, 0,0xCCE9, 0,0xD9C4, +0xE9FC, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD1BE, 0, 0, + 0, 0, 0,0xECBC, 0, 0,0xE5AD, 0, + 0, 0, 0, 0, 0,0xF7B0, 0,0xCCEA, + 0, 0, 0,0xD3C4, 0, 0,0xD6C0, 0, + 0, 0,0xD6FD, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE1A1, 0, +0xDEBD, 0,0xF6A9, 0, 0, 0,0xDAA4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD6A4, +0xF5C6, 0,0xE1A2,0xE9C6, 0, 0, 0,0xF2C5, + 0, 0, 0, 0, 0,0xF4E9,0xD6EC,0xEBD3, + 0, 0, 0, 0,0xECBD,0xE2DC,0xDEEB,0xF0DC, + 0,0xEBBF, 0,0xD7CE,0xD1BF, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF5AB, 0, + 0, 0, 0,0xF9FD, 0,0xCADC, 0, 0, + 0,0xCDC6,0xF2B6, 0, 0,0xDDFE, 0, 0, + 0,0xCCB7,0xDBB8, 0, 0, 0, 0,0xD0E9, + 0,0xCEDD,0xEBC0, 0,0xFDA2, 0, 0, 0, + 0, 0,0xF8CB, 0, 0, 0, 0, 0, + 0, 0, 0,0xEAD6,0xF1B0, 0, 0, 0, + 0, 0, 0, 0,0xDBCE, 0,0xF7C3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDBCF,0xCBA4, 0, 0,0xF8E0, 0, + 0,0xFBD7, 0, 0,0xEBCA,0xE0A1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCECD, 0, 0,0xD4DC, 0, 0, 0, +0xFDD8, 0, 0, 0, 0,0xD2F6, 0, 0, + 0, 0,0xF2B7, 0, 0,0xFAF6,0xF6AA,0xFAF7, +0xD8E6, 0,0xF4B1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE8D2, 0,0xCAC5,0xCCEB, 0, 0, 0, 0, + 0, 0, 0,0xE2EE, 0, 0, 0, 0, + 0,0xE2BB, 0,0xF7AD, 0, 0, 0,0xF8E1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF3EC, 0, 0, 0, 0,0xDEA1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE4FD, 0, 0,0xE3EC, 0, +0xDDAF,0xDDB0, 0, 0,0xCBB7,0xE8D3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE1A3,0xD2E0, 0, + 0, 0, 0,0xF0FE, 0, 0, 0, 0, +0xE9A6,0xCBF2, 0, 0, 0, 0, 0, 0, +0xEDF3,0xDCD9,0xE0CD, 0, 0, 0, 0,0xF7DA, +0xDBB9, 0, 0, 0, 0, 0, 0, 0, +0xCCAE, 0,0xDADB, 0, 0, 0, 0,0xCDC7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDDB1, 0,0xD8AF,0xE3A3, 0, 0, +0xCEEF, 0, 0,0xF2F3, 0, 0, 0, 0, +0xF8B3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE0CE, 0,0xF5FD, 0, 0, + 0, 0,0xEBEC, 0, 0,0xD3C5,0xFCEC,0xD2DB, +0xD4EB, 0,0xDEA2, 0, 0, 0,0xE5E6, 0, + 0, 0, 0, 0, 0,0xF0B0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD5C4, 0, 0, 0, 0, 0, 0,0xEDF4, + 0, 0, 0,0xE3ED, 0,0xE8C2, 0,0xEDF5, +0xD7FC, 0,0xEDBB, 0, 0,0xF6AB, 0, 0, + 0, 0, 0,0xF2B8,0xF6C8, 0, 0, 0, + 0, 0,0xD3E6,0xF2DD,0xCFBF, 0,0xEBAC, 0, + 0, 0, 0, 0, 0,0xCFC0, 0,0xE6A8, +0xFDE9, 0,0xCFC1, 0,0xE0DF,0xDEEC, 0, 0, + 0, 0,0xE0A2, 0, 0, 0, 0, 0, + 0, 0, 0,0xF4BF,0xE2EF, 0,0xD9F1,0xF1C7, + 0,0xCBB8, 0, 0, 0, 0, 0, 0, + 0, 0,0xF9FE,0xDBBA,0xDAF5, 0, 0, 0, + 0, 0, 0, 0, 0,0xF6EC,0xDADC,0xFAE4, + 0,0xE0CF, 0, 0, 0, 0, 0, 0, +0xDDB2, 0, 0, 0, 0,0xE6A9, 0,0xEFF3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF3ED, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xEBFA, 0,0xF9E6, 0, + 0, 0, 0, 0, 0, 0,0xCADD,0xD5DE, + 0,0xCADE,0xDFE4, 0, 0, 0,0xE6FD, 0, +0xF5AC, 0, 0, 0, 0, 0,0xE4F5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE9E3, 0,0xEDCB,0xCFE4, 0, + 0, 0,0xD8D3, 0, 0, 0, 0, 0, + 0,0xDDB3,0xD4EC, 0, 0,0xF2B9, 0,0xDFB7, + 0, 0, 0, 0, 0,0xCBCE,0xFBD8, 0, + 0,0xD0D9, 0, 0,0xDDD2,0xF7F4,0xE7DC,0xE4A5, + 0,0xFCA3, 0,0xDBBB, 0, 0, 0,0xF2BA, +0xE9FD,0xD0CA, 0,0xF5D6,0xD9C5,0xE4B4, 0,0xEDA7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEABD,0xE6FE, 0,0xF7C4,0xF5AD, 0,0xD9E0, + 0, 0, 0,0xCAB4, 0, 0,0xF8E2,0xCFC2, + 0,0xECBE, 0, 0, 0,0xE5B4,0xCDC8,0xEEC8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE7C8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xCDC9,0xF9B7, 0, + 0,0xF1E8,0xD9F2,0xDBF5,0xCAB5,0xD9C6, 0, 0, + 0,0xD8C9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9AB, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEDBC, 0, 0,0xD8D4, 0, 0, 0,0xDCDA, + 0,0xE2BC, 0, 0,0xFCED,0xECE0,0xD2FE, 0, +0xE9C7,0xE6AA, 0, 0, 0, 0, 0, 0, +0xE2F0, 0, 0, 0, 0, 0, 0,0xFABB, + 0,0xF5AE,0xFBAA, 0, 0, 0, 0,0xECFB, + 0,0xECBF,0xFCD8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD4E5, 0, 0, 0,0xF9C3, + 0, 0, 0,0xEEE2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xD7E9,0xEDF6, 0, 0, 0,0xDEED, 0, + 0, 0, 0, 0, 0, 0,0xCCEC, 0, +0xE3EE, 0, 0, 0, 0, 0,0xE8D4, 0, + 0, 0,0xFAF8, 0, 0, 0, 0, 0, + 0,0xDDB4,0xE4B5,0xD8B0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD8D5, 0, 0, + 0,0xF4EA, 0, 0, 0,0xCEB9, 0, 0, + 0,0xD6E1,0xCFD2, 0,0xD0B6, 0, 0, 0, + 0, 0, 0,0xCEA2, 0, 0,0xF3EE, 0, + 0, 0, 0, 0,0xF3F8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xDCCC, 0,0xD0CB, 0, 0, 0,0xFCA4, +0xCDCA,0xD7D4,0xDEA3, 0,0xE4E0, 0, 0, 0, + 0,0xEEC9, 0, 0, 0,0xE2DD, 0, 0, + 0, 0, 0,0xF5FE,0xD4AC, 0, 0, 0, + 0, 0,0xD5D1, 0,0xD8F0,0xF8C3,0xEAD7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF5D7, 0, 0,0xD8BF, 0, 0, 0, + 0,0xFDC0, 0, 0, 0, 0, 0, 0, +0xEBAD, 0, 0, 0, 0,0xD5AA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE7A8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xEECA, + 0, 0, 0,0xCAE7, 0, 0, 0, 0, + 0,0xF8E3, 0,0xD4DD, 0, 0,0xEAD8, 0, + 0, 0, 0,0xFBD9,0xEDF7, 0, 0,0xE5B5, + 0, 0, 0, 0, 0,0xD0AD, 0, 0, + 0, 0,0xF1F1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE2BD, 0, 0, 0,0xE3C8, 0, 0, 0, + 0,0xD9D5, 0, 0,0xDFAA, 0, 0, 0, + 0,0xDBBC, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF8E4, 0, 0, 0, 0, 0, +0xF1FA, 0, 0,0xE5B6,0xF3EF, 0, 0,0xFBDA, +0xE1E0, 0,0xD9AC, 0,0xF5EB, 0,0xE0B6, 0, + 0,0xE9C8, 0,0xCBCF, 0,0xE3C9, 0, 0, + 0,0xDEEE, 0, 0, 0, 0, 0, 0, + 0, 0,0xE2BE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDCEF, 0,0xD6A5, 0, + 0, 0, 0, 0,0xE2F1, 0, 0, 0, + 0, 0, 0, 0,0xD6FE, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xD9A1, 0,0xD8C0,0xDCDB, 0, 0,0xEDBD, +0xDFB8, 0,0xEAA5, 0, 0, 0,0xD7AD, 0, + 0,0xF3F9, 0,0xEDF8, 0,0xF5C7, 0, 0, + 0, 0, 0, 0,0xE1CA,0xEBE3, 0,0xF2DE, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF8CC, 0,0xEAD9, + 0,0xD3C6, 0,0xDBE6, 0, 0, 0, 0, + 0,0xF5AF, 0, 0, 0, 0,0xCEF0, 0, + 0, 0, 0,0xE9FE, 0, 0, 0, 0, + 0,0xFBB6, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE2F2, 0, 0, 0, 0, +0xCFF2,0xF7B9,0xD9F3, 0, 0,0xE1CB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDADD, 0, 0,0xDAB9, + 0, 0, 0, 0, 0, 0, 0,0xEBFB, + 0,0xCBB9, 0, 0,0xEDF9, 0, 0, 0, + 0, 0, 0,0xE0E0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF4C0, 0, +0xFDBC,0xDFB1,0xE3EF, 0, 0, 0, 0,0xE0A3, +0xFDB9, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF0B1, 0, 0, 0, 0, 0, + 0,0xCDCB, 0, 0, 0, 0, 0, 0, + 0,0xEDBE, 0, 0, 0,0xD5C0,0xE3F0,0xEDFA, + 0, 0, 0, 0, 0,0xE9E4, 0, 0, + 0, 0, 0, 0,0xD5ED,0xE7DD, 0, 0, + 0, 0, 0, 0,0xD4F6,0xE5B7, 0, 0, + 0,0xDBE7,0xE2BF, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xEECB, + 0, 0,0xD7F4,0xF0DD, 0, 0, 0,0xCEAB, + 0, 0,0xE7DE, 0, 0, 0,0xD6D6,0xE1CC, + 0, 0,0xE8B3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE5EE,0xDCA2, + 0, 0,0xE0D0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD5B5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD5A1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xFBDB, 0, +0xF9CB, 0, 0, 0,0xCBF3,0xF4A5, 0, 0, + 0, 0, 0,0xFAC8,0xD6D7, 0,0xE9E5,0xFBDC, + 0, 0, 0, 0, 0, 0, 0,0xFDD0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xFBF6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDAA5, 0,0xDBBD, 0, 0, 0, + 0, 0, 0,0xECE2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xCDF7,0xF0DE, 0, 0, 0, + 0,0xF6C9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDEEF, + 0, 0, 0,0xD3B1, 0, 0, 0, 0, + 0, 0, 0, 0,0xFCEE, 0, 0, 0, + 0,0xE8C3, 0,0xF1C8, 0, 0, 0,0xCEF1, + 0, 0, 0, 0,0xF9ED, 0, 0, 0, + 0, 0, 0, 0, 0,0xF2F4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE4B6, 0, +0xF5B9, 0,0xDCF0,0xE3F1, 0, 0, 0, 0, +0xE8A5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF2BB, 0,0xDEA4, 0,0xDACC, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCAE9, 0, + 0, 0, 0, 0, 0,0xE3DA, 0,0xFCD9, + 0, 0, 0, 0, 0, 0, 0,0xEADA, + 0, 0, 0, 0, 0, 0,0xF9C4, 0, +0xE3A4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xFBDD, 0,0xEFCA, 0, +0xE8C4, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD5CC, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xEBD7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD9AD, + 0, 0,0xFBAB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD3D9, 0, 0, 0, 0, + 0, 0,0xD5A2, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF6DE, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xDAF6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE0D1, 0, 0,0xE9A8, + 0, 0,0xF5F9, 0, 0, 0, 0, 0, + 0,0xFAAF, 0,0xEBFC, 0, 0,0xE0EA, 0, + 0, 0, 0, 0, 0,0xE3B2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD5C5, + 0, 0,0xF1E3,0xD5EE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCDCC, 0, 0, 0, 0,0xEDD9, 0, + 0, 0, 0,0xD8C1, 0, 0, 0, 0, +0xFAEC, 0, 0, 0, 0, 0,0xF1EB, 0, + 0, 0, 0, 0,0xFABC,0xE6E2, 0, 0, + 0, 0,0xFAE5,0xE2FA, 0, 0, 0,0xCAB6, + 0,0xE4B7, 0,0xEADB, 0,0xF5FA, 0, 0, + 0,0xFBAC,0xCFC3,0xEBFD, 0, 0, 0, 0, +0xF8FA, 0, 0,0xDFB9, 0, 0, 0, 0, +0xE1F1, 0,0xD2A4, 0, 0, 0, 0,0xF5FB, + 0, 0, 0, 0, 0, 0,0xD0DA,0xD0DB, + 0,0xEABE,0xD9B1, 0, 0, 0, 0, 0, +0xCAB7, 0, 0,0xD3E7, 0,0xF8E5, 0, 0, + 0, 0,0xD3B2, 0, 0, 0,0xE2C0,0xF2DF, + 0, 0, 0, 0, 0, 0,0xCDE5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF9AC, 0, 0, 0, 0, + 0, 0, 0, 0,0xCDCD, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEEAE,0xD6AE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD7EA, + 0, 0, 0, 0,0xE7E0,0xEBAE, 0, 0, + 0,0xCFD9, 0, 0,0xDCCD,0xEDFB, 0,0xDEF0, + 0,0xD7EB, 0, 0, 0, 0, 0, 0, +0xDEA5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xDFD7,0xDBD0,0xDBD1, 0, 0, +0xD5A3, 0, 0, 0, 0,0xF0B2, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xDCDC, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCAE8, 0,0xF8E6,0xDCCE, 0, 0, 0, 0, +0xEADC,0xDBD2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE9B3, 0, 0, + 0, 0,0xF7DB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE3A8, 0, +0xD7AE, 0, 0,0xE0E1, 0, 0, 0, 0, + 0,0xCBBA, 0, 0,0xE5D1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD0DC, + 0, 0, 0, 0,0xD5C1, 0, 0, 0, + 0, 0,0xD8CA, 0, 0, 0, 0, 0, + 0, 0,0xE3A9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE0A4, + 0,0xE9A9, 0,0xD3C7, 0, 0,0xDCDD,0xF8AE, + 0, 0, 0,0xCCB8, 0, 0, 0,0xD0AE, + 0, 0, 0,0xD8F2, 0, 0,0xE3CA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCCAF, 0, 0, 0, 0, 0, 0, + 0,0xD4AD,0xF6D1, 0, 0, 0, 0, 0, + 0, 0,0xD0CC, 0, 0, 0, 0, 0, + 0, 0,0xCAC6, 0, 0,0xD5C2, 0, 0, +0xCEBA, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xCAC7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFAB0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDFD8, 0, 0, 0, +0xF5BA, 0, 0, 0, 0, 0, 0, 0, +0xE5EB, 0,0xEFF4,0xDDB5, 0, 0, 0, 0, +0xCDAA, 0,0xE3F2, 0,0xFBF7, 0,0xF7D0, 0, + 0, 0, 0,0xFDBA, 0, 0,0xFDE1,0xF6FE, +0xD1C0, 0, 0,0xE8C5, 0,0xE4B8, 0,0xE1E8, + 0, 0, 0,0xCCC1, 0,0xD2ED, 0, 0, + 0, 0,0xDBBE, 0, 0,0xE0E2, 0, 0, + 0,0xFAC9, 0, 0,0xE1CD, 0,0xCAB8, 0, + 0, 0,0xF2E0,0xF1C9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xDEF1, 0, 0, 0,0xF0DF,0xF8C4, 0, 0, + 0, 0, 0,0xEECC, 0, 0,0xDEF2, 0, +0xE7C9, 0,0xE2F3,0xE7E1, 0, 0,0xE3CB, 0, + 0,0xE3CC, 0, 0, 0,0xCFF8,0xEFAC, 0, +0xFDFE,0xFCA5,0xFAB1,0xDFD9, 0,0xE0D2, 0, 0, + 0,0xF4DA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF1CA, 0,0xCEA3, + 0, 0, 0, 0,0xF2BC,0xECE3, 0, 0, + 0, 0, 0,0xE0A5, 0,0xF7AB, 0, 0, +0xEBAF, 0, 0, 0, 0, 0,0xE5DE, 0, +0xE1A4,0xCDAB, 0,0xD9F4,0xE8A6,0xCDCE,0xE1E9, 0, +0xFCEF, 0,0xE0E3, 0, 0, 0, 0, 0, +0xE2C1, 0,0xCEA4, 0, 0, 0, 0, 0, + 0,0xDEA6, 0, 0,0xEBFE, 0,0xEBDD,0xF0E0, + 0, 0,0xF4DB, 0,0xE2F4, 0, 0,0xD3C8, + 0, 0, 0,0xF4EB, 0,0xEEB5, 0,0xF5D8, + 0, 0,0xD5DF, 0, 0, 0,0xD6E5, 0, + 0, 0, 0,0xEBB0,0xF4E3, 0, 0, 0, + 0,0xE3CD, 0, 0, 0, 0,0xF4F4,0xFAB2, + 0, 0,0xEFF5,0xCADF, 0,0xEBB1,0xEDBF, 0, + 0,0xFDC9, 0, 0, 0, 0,0xE4A6,0xF9A4, +0xF0B3, 0,0xE5EC, 0, 0, 0,0xD1E7, 0, +0xD9C7,0xE4D7,0xEADD, 0,0xD4F7, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xDABA, 0, +0xDACD, 0, 0, 0,0xF9CC, 0,0xE1DA,0xDBBF, + 0,0xCCC5,0xECD0,0xCBBB, 0,0xDEF3, 0, 0, +0xE9AA, 0, 0, 0, 0, 0, 0, 0, +0xD9C8, 0, 0,0xEEE3,0xD7BD, 0, 0, 0, + 0, 0, 0,0xCFC4, 0, 0, 0, 0, + 0,0xD0CD, 0, 0, 0, 0, 0, 0, + 0,0xFCA6, 0, 0, 0, 0, 0, 0, + 0,0xF1FB, 0, 0, 0, 0,0xFDD2,0xD1C1, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE3DB, 0,0xD3C9, 0,0xDCCF, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCCED, 0, + 0, 0, 0, 0,0xDEA7, 0, 0,0xE6BB, +0xECA1, 0, 0, 0,0xCCB9, 0, 0,0xFBDE, + 0, 0, 0, 0, 0,0xE7E2, 0, 0, +0xD4C1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xDCA8, 0, 0, 0, 0, 0, +0xE2C2, 0,0xF3D8,0xE5D3, 0, 0,0xF3D9, 0, + 0, 0,0xF3C6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCDDB, + 0, 0, 0, 0, 0, 0, 0,0xCDAC, + 0,0xFCC3, 0, 0, 0, 0,0xD4E7, 0, +0xD1C2, 0,0xF9A5, 0,0xE8D5, 0, 0, 0, + 0, 0, 0, 0, 0,0xE3CE, 0, 0, + 0, 0,0xD4CA, 0, 0, 0, 0, 0, + 0,0xDFDA, 0, 0, 0, 0, 0, 0, + 0, 0,0xFBDF,0xE7E3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF8FB,0xE3CF, 0, 0, 0, 0, 0, + 0, 0,0xF5B0, 0, 0, 0, 0, 0, + 0, 0,0xD8E7, 0,0xD9C9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF8AF,0xEFF6, 0, +0xDDB6,0xEEAF,0xCDF8, 0, 0, 0, 0,0xDEB8, +0xFCA7,0xF7FC,0xF7B1,0xCEBB,0xF4A1, 0, 0,0xEECD, +0xE1AE, 0, 0,0xECC3,0xCFFE, 0,0xF8BF,0xD8E2, +0xD3E8, 0, 0,0xDEA8,0xF4E4,0xECC2, 0,0xD9F5, +0xF9C5,0xDDD3,0xD6F1,0xECFC,0xFCF0, 0, 0,0xEDC0, +0xCAB9, 0,0xEEE4, 0, 0, 0, 0, 0, + 0,0xF2E1, 0,0xDEB9, 0, 0, 0, 0, + 0, 0,0xD6F2, 0,0xDEF4, 0,0xDFDB, 0, +0xDBD3, 0,0xFAE7,0xD8E3,0xF4C1, 0,0xDDB7, 0, + 0, 0,0xF2F5, 0, 0,0xD4AE, 0, 0, + 0, 0, 0, 0,0xD6F3, 0, 0, 0, + 0, 0, 0,0xDDB8,0xCFC5,0xDFDF, 0, 0, + 0, 0, 0, 0,0xF2BE,0xF6A1, 0,0xEBCB, +0xF1FC, 0,0xF3C7, 0, 0,0xE0EB, 0, 0, + 0, 0, 0,0xEDFC, 0, 0,0xE1DB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xEEE5, 0,0xDEF5, 0, + 0, 0, 0,0xFAD3, 0, 0, 0, 0, +0xF1CB, 0, 0,0xD0AF,0xDDB9, 0, 0,0xD1C3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF5B1, 0, 0, + 0, 0,0xEAC6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF0E1, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF6AC, 0, 0, 0, 0, +0xF5D9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF0EB, 0, 0, 0, 0, + 0, 0,0xDDBA, 0, 0, 0,0xF2BF, 0, + 0, 0, 0, 0, 0, 0,0xF7C5, 0, + 0, 0, 0,0xDBA2,0xF2F6, 0, 0,0xCABA, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF7F5, 0,0xCBE5, 0, 0, + 0,0xEEE6, 0,0xE0D3, 0, 0, 0, 0, +0xCEA5, 0, 0, 0, 0, 0, 0,0xD6D8, + 0, 0, 0,0xD4AF, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE9C9, 0, 0, 0, 0,0xD3CE, +0xF4C2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCBE6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF1A1, 0, 0, 0, 0, 0, +0xEBB2, 0, 0, 0, 0,0xF1A2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xEBB3, 0,0xF0B4, 0, 0,0xCBF4, +0xD4B0,0xF3B2,0xFBB7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF5EC, 0, 0, 0, 0, 0,0xEEE7, +0xF4B2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF5ED, 0,0xCFF3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF0E2, 0, 0, 0, 0, 0,0xEECE, + 0, 0,0xF1CC, 0, 0,0xE5B8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD7F5,0xE3F3,0xCFE5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCFC6, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF3B3,0xE4D8,0xCFF9,0xCFDA, 0, 0, + 0, 0,0xFACD, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE6E3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF2E2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF5EE, 0, 0,0xCABB, 0, 0,0xE3DC, 0, + 0, 0, 0,0xCEF2, 0,0xD6D9, 0, 0, + 0,0xEEB0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF4E5,0xD8C2,0xDCD0,0xCCEE, 0, 0, + 0, 0, 0,0xD5E0,0xF6CA,0xFDCA,0xD8D6,0xF4CF, + 0, 0, 0, 0, 0, 0,0xD6A6,0xDCBE, + 0,0xDBD4,0xD7C7, 0, 0, 0, 0,0xF2FE, + 0, 0, 0,0xF1CD, 0, 0, 0, 0, +0xE2C3,0xDCDE, 0,0xDCDF, 0, 0,0xEFAD,0xE6AB, + 0, 0, 0, 0,0xF9DD,0xEABF, 0, 0, + 0,0xEFAE, 0, 0, 0,0xF4D0,0xCEF3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE6AC, 0,0xCEDE, + 0, 0,0xD5F9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE3F4,0xCDD0, 0, 0, 0, + 0, 0, 0,0xD5B8, 0, 0,0xF7FD, 0, +0xDCA9, 0, 0, 0, 0,0xDEF6, 0,0xDCAA, +0xF2E3,0xE9B4,0xD2DC, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE9E6, 0, 0,0xE3F6, 0, 0, + 0, 0, 0, 0, 0, 0,0xE7CA, 0, + 0,0xD0CE, 0, 0,0xDAF7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xCABC, 0, + 0, 0,0xEEE8,0xDADE, 0,0xF2F7, 0, 0, +0xE2FB, 0,0xCCA6, 0, 0, 0, 0,0xDABB, + 0,0xEEE9, 0, 0, 0,0xF5DA, 0, 0, +0xF7DC,0xE1EA,0xCEC1,0xD4B1, 0,0xFDB1,0xE6BD, 0, +0xFBAD, 0, 0,0xF8E7, 0,0xE1CE, 0,0xF7E2, +0xF5EF,0xCFC7, 0, 0,0xD4B2,0xCCEF, 0,0xD4E8, + 0,0xEECF,0xF7D7, 0, 0,0xE0A6,0xD6C1,0xE1DC, +0xF0E3,0xF1E4,0xDCF1,0xD6A7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF4F5, 0, + 0,0xF1CE,0xF2E4, 0, 0,0xD0B0, 0, 0, +0xECEF, 0, 0, 0,0xF9BA, 0,0xEBB5, 0, + 0,0xD4ED,0xE2C4, 0, 0, 0, 0,0xE9E7, + 0, 0,0xEBB4,0xEAA1, 0,0xF8BC,0xCEA6, 0, +0xF9C6,0xFCDA, 0,0xD4B3,0xD3B9,0xEADE, 0, 0, + 0,0xE9AB, 0, 0,0xE1E1,0xD3CF,0xF4F6, 0, +0xEAC0,0xE1CF, 0,0xCCBA, 0, 0, 0, 0, + 0,0xEEEA, 0, 0, 0,0xF0E4,0xF3B4,0xD4EE, + 0, 0,0xF2C0, 0, 0,0xF1E5, 0,0xF4C3, +0xE0D4, 0,0xEBB6, 0,0xD7A1,0xCBE8, 0,0xF9AD, +0xE9AD,0xD8E4,0xFAB3,0xE2C5,0xFCBD, 0, 0,0xECC4, +0xD8B1, 0,0xDCAB, 0, 0, 0, 0,0xD5A4, + 0,0xEBE9, 0, 0, 0,0xE8BB, 0, 0, + 0,0xD8D7, 0, 0, 0, 0, 0, 0, + 0, 0,0xFBAE,0xD1E1, 0, 0,0xDBC0, 0, +0xF5BE, 0,0xDEF7, 0, 0, 0, 0,0xCAFB, +0xF7C6,0xCFC8, 0, 0, 0,0xE1D0, 0, 0, +0xEED0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE9F4, 0, 0, 0, 0, 0, 0, + 0, 0,0xCEF4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD5CD, 0, + 0,0xCFDB, 0, 0, 0, 0, 0, 0, +0xDDBB, 0, 0, 0, 0,0xCEAC, 0, 0, + 0, 0, 0, 0, 0,0xE9E8, 0, 0, + 0, 0, 0, 0, 0,0xD4B4, 0, 0, + 0, 0,0xE4C7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF5DB, 0, 0,0xFAC1, 0, 0, + 0,0xDEA9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xD4F8, + 0, 0, 0, 0, 0,0xEFF7, 0, 0, + 0, 0,0xD3B3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEBB7,0xEFF8,0xF5DC,0xEDCC,0xDBD5,0xF1CF, 0, + 0, 0,0xF1D0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF5B2, 0, 0, 0, 0, 0, + 0,0xD9AE,0xD5AC, 0,0xE2C6, 0, 0, 0, + 0, 0, 0, 0, 0,0xFDA3, 0,0xFBE5, +0xDFAB, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE2F5, + 0,0xF6AD, 0,0xF5B3, 0,0xF0B5, 0, 0, + 0, 0,0xE1A5, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF5DD, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xECA2,0xEDFD, 0,0xF5B4,0xFBB8, + 0,0xDBA3, 0, 0,0xD6CA,0xCBD9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE5D4, 0, 0, 0, 0, 0, 0,0xF3FA, + 0,0xEBB8, 0,0xE0B7,0xD7EC,0xF1EC,0xE5AF,0xD5E1, +0xD7ED,0xD1D1, 0, 0, 0, 0, 0,0xE1F2, +0xEFF9, 0, 0, 0,0xDDBC,0xF6DC, 0, 0, + 0, 0, 0,0xF0E5, 0, 0, 0,0xF4C4, + 0, 0,0xE9E9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF3FB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD4EF, 0, 0, +0xCCA2,0xF7FE,0xDFBC, 0, 0, 0, 0,0xEBCD, + 0, 0, 0, 0, 0, 0,0xD0B7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xD6C2, 0, 0, 0, + 0, 0,0xE8AD, 0, 0, 0, 0,0xEFAF, +0xCBA5, 0, 0, 0, 0,0xCBE9, 0, 0, + 0,0xFAE8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCCC6, + 0, 0, 0,0xE6E7, 0, 0,0xEAC7, 0, + 0, 0,0xDBA4, 0,0xCFC9,0xE2FC,0xEFFA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEBDE, 0, 0,0xF5C8, 0,0xD4DE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE0D5, 0,0xEFB0, 0, 0,0xE2C7, 0, +0xD9AF, 0, 0, 0,0xF9E7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE7E5, 0, 0,0xCFCA,0xE1D1, + 0,0xE2C8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xEFFB, 0, 0,0xFAF9, + 0, 0,0xDCF2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE0A7, 0, 0, 0, + 0, 0,0xF8E8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCBEA, 0, 0, 0,0xCBBC, 0, 0, 0, + 0, 0, 0, 0,0xD6E2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF5DE, 0, 0, 0, 0, 0, 0, 0, +0xF5DF, 0,0xEEB6, 0, 0, 0,0xE2F6,0xD3CA, +0xEFFC,0xD1C4,0xEFB1, 0,0xD1C5, 0,0xD0DE, 0, +0xD9E1, 0, 0,0xE0B8, 0, 0,0xCDD1,0xF3B9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE7CC, 0,0xD6A8,0xCEA7, 0,0xD4B5, 0, 0, + 0, 0, 0, 0,0xE4C8, 0, 0, 0, + 0, 0, 0,0xD3B4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xEBB9, 0, + 0, 0, 0, 0, 0,0xCBF5, 0, 0, + 0, 0, 0, 0,0xF6DD, 0,0xF1A3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCCC7, 0, 0, 0, + 0, 0, 0, 0,0xE9CA, 0,0xE1F0, 0, + 0, 0,0xF5E0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFBAF, 0, 0, 0,0xCBD1, + 0, 0, 0, 0,0xFBE0,0xF2E5, 0, 0, +0xECF0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF0EC, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xEEEB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE9CB, 0, + 0,0xCCF0, 0, 0,0xD7AF, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF3A1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xFCF5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF1A4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xE0D6, 0, 0, + 0, 0, 0,0xEFB2, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF4D1, 0, 0, +0xF7A1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF1D1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCAFC,0xCAFD, 0, 0, 0, 0, 0, + 0, 0, 0,0xCECE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF3C8, 0,0xF3BA +}; + +/* page 7 0x9577-0x9F9C */ +static const uint16 tab_uni_ksc56017[]={ +0xEDFE, 0, 0, 0, 0, 0, 0, 0, + 0,0xDAA6, 0, 0,0xE0EC, 0, 0, 0, + 0, 0,0xF8CD, 0,0xCBD2, 0, 0, 0, +0xEBCE, 0,0xF9D8,0xF9D9,0xCAE0,0xDACA, 0, 0, + 0,0xCBA6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCAC8,0xF9EE,0xDBEC, 0, + 0,0xD0B1, 0, 0, 0, 0,0xD5EF, 0, + 0, 0,0xE6F3, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE7A2,0xE4D9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE4E1, 0, 0,0xFCC4, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF9EF,0xCFF4,0xF7E6, + 0, 0, 0, 0, 0,0xCEBC, 0, 0, + 0, 0,0xF4C5,0xDCA3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xDDBD, 0, 0, + 0, 0,0xF4C6, 0, 0, 0, 0, 0, + 0, 0, 0,0xF8A1, 0, 0, 0,0xE8D6, + 0, 0, 0,0xDBC1, 0, 0, 0, 0, + 0, 0, 0, 0,0xF0E6, 0, 0, 0, +0xE4B9,0xF6ED, 0,0xF9AE, 0,0xDDBE, 0, 0, + 0, 0, 0, 0,0xD7B0,0xD8E8,0xCBBD, 0, + 0,0xF9DA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xF8CE,0xF9F0,0xE0ED,0xE3B3, +0xF4B3, 0, 0,0xEAC2,0xF2E6,0xF0B6, 0, 0, + 0, 0, 0,0xDBD6, 0, 0, 0, 0, + 0,0xEBE4, 0, 0,0xF2E7, 0,0xD7D5,0xD4B6, +0xF9E8,0xD7C1, 0, 0, 0, 0,0xE5D5, 0, + 0, 0, 0, 0, 0, 0,0xE9EA,0xD7CC, + 0, 0, 0,0xD3E9,0xE2C9, 0,0xFCDB,0xCDAD, + 0, 0, 0, 0, 0,0xCCB0,0xEAA2, 0, + 0,0xE4F6,0xD0C0, 0,0xF0B7,0xEEA1, 0, 0, + 0, 0, 0, 0,0xD7F6, 0, 0, 0, +0xE2CA,0xE2CB, 0,0xFACF, 0, 0, 0, 0, + 0, 0,0xEBDF, 0, 0, 0, 0, 0, +0xD6CB, 0, 0, 0,0xF4B4, 0, 0, 0, + 0,0xEDCD,0xE4D2, 0, 0,0xEAA9,0xE4BA,0xF3A2, +0xCDD2, 0,0xF6CB, 0,0xF1E6,0xEDC1,0xE8BC,0xEED1, + 0, 0, 0, 0, 0, 0,0xF0E7,0xE2CC, + 0, 0,0xE4AA, 0,0xF5E1,0xEDDA, 0, 0, + 0, 0, 0,0xD7EE,0xD1F1, 0, 0, 0, + 0,0xE9EB,0xE9EC,0xE0E4, 0, 0, 0, 0, +0xDAA7,0xDDD4, 0,0xEAA3, 0, 0, 0,0xD6C3, +0xD6F4, 0,0xDADF, 0,0xEFB3, 0, 0, 0, + 0,0xE2CD, 0, 0, 0, 0, 0,0xEFFD, +0xF2E8, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xEFC5, 0,0xE7E7, 0, 0,0xD7FD, + 0, 0,0xE7CE, 0, 0,0xDFDC, 0,0xF9C7, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD9F6, 0, 0, 0, 0, 0, 0, 0, + 0,0xDFAC, 0,0xD6DA, 0, 0, 0, 0, + 0, 0,0xDCA4, 0, 0, 0,0xF0B8, 0, + 0, 0, 0,0xD5FA, 0,0xE4F7, 0, 0, + 0,0xD6C4, 0, 0, 0, 0, 0, 0, + 0, 0,0xF4EC, 0, 0, 0, 0,0xEFFE, + 0, 0, 0, 0, 0,0xF0A1, 0,0xDEAA, + 0, 0,0xDABC,0xD8FC, 0, 0, 0, 0, + 0, 0,0xFAD4, 0, 0, 0,0xECE5, 0, + 0, 0, 0, 0, 0,0xFCA8, 0, 0, +0xECE6, 0, 0,0xD8CB, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xFBB9, 0,0xE4D3, 0, +0xCDF9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCFD3, 0, 0, 0, 0, 0, 0, + 0,0xCAEA, 0, 0,0xCFD4, 0,0xF8BD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF4C7, + 0, 0, 0, 0,0xEADF, 0, 0, 0, + 0, 0, 0, 0,0xF9DB, 0, 0, 0, + 0, 0, 0, 0, 0,0xD4B7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xEBE5, 0, 0,0xE1D2, + 0, 0, 0, 0,0xEAA4, 0, 0, 0, +0xFAC2,0xFBE1,0xFAED,0xF0A2,0xCCF1, 0,0xFAA3,0xE2F7, + 0,0xE2CE, 0,0xE9F5, 0,0xE1EB, 0, 0, + 0,0xE7E8,0xE8D7,0xDAF8,0xD4CB, 0, 0, 0, +0xF7F6,0xD6C5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD4E9, 0, + 0,0xFAFA, 0, 0, 0, 0, 0, 0, + 0,0xCCF2,0xF7DD, 0,0xDEBA, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xCEA8, + 0, 0, 0, 0, 0,0xF0B9,0xE4FE,0xE4C9, + 0, 0, 0, 0, 0,0xE4D4, 0, 0, + 0,0xEAC3, 0,0xEFB4, 0, 0, 0,0xD7BE, + 0, 0, 0, 0, 0, 0,0xFBE2, 0, +0xCDD3, 0, 0, 0,0xEFB5, 0, 0, 0, +0xFAE9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF9A6, 0, 0, 0, 0, 0, 0, +0xDFBD, 0,0xF7C7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xF8FD, 0, 0, +0xF8FC, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDEAB,0xDBE8, 0, 0, +0xE3DD, 0,0xE1E2,0xD1C6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF6D0,0xEBE6, +0xDAF9, 0, 0, 0, 0,0xECC7, 0, 0, + 0, 0, 0, 0, 0,0xDEF8,0xF8E9,0xE3DE, + 0, 0, 0, 0,0xCEF5, 0, 0, 0, + 0, 0,0xFAC3,0xE5D7, 0,0xECC8, 0, 0, + 0,0xF3C9, 0, 0,0xE4BB, 0, 0, 0, + 0,0xE6AE, 0, 0, 0, 0, 0,0xEFB6, + 0,0xDCBF, 0, 0, 0, 0, 0, 0, + 0,0xCEBD, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD8C3, 0, + 0, 0,0xD0CF, 0,0xCFFA,0xF3CA,0xE0D7, 0, + 0, 0,0xD1C7,0xE9AE, 0,0xE8BD, 0, 0, +0xFAC4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE2CF, + 0, 0,0xFAC5, 0, 0, 0,0xF9B8, 0, + 0, 0, 0, 0, 0, 0,0xDCE0, 0, + 0,0xFBB0, 0, 0, 0,0xD8A9,0xE5DF,0xF9A7, + 0, 0,0xF6EE, 0,0xF6CC,0xE2F8, 0, 0, + 0, 0,0xECF1, 0, 0, 0, 0, 0, + 0, 0,0xDAE0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xF1D2,0xD2CC,0xCFCB, 0, 0,0xCABD, 0, + 0, 0,0xDDBF, 0, 0, 0,0xF6EF, 0, +0xDEF9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xFAB4, 0, + 0, 0,0xD5AD, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xF1E7, 0,0xDEBE, 0, 0, 0, 0, 0, + 0,0xDCC0, 0, 0, 0, 0, 0,0xD1C8, +0xD1C9, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xF8BE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCBF6, 0, 0, 0, + 0,0xD4F9, 0, 0, 0, 0, 0,0xF5E2, +0xE1D3, 0, 0, 0, 0, 0, 0, 0, + 0,0xD8E9, 0, 0,0xF8FE, 0,0xCFCC, 0, + 0, 0, 0, 0, 0, 0,0xFDA4, 0, + 0, 0, 0, 0, 0, 0,0xCEF6, 0, +0xFAD0, 0, 0,0xCCF3,0xE6BE, 0, 0, 0, +0xF6AE, 0, 0,0xD5F0, 0, 0,0xD1CA, 0, + 0, 0,0xFCBE,0xD5F1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xCDE9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xFAB5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xE2D0,0xF4F7, 0, 0, + 0,0xCDD4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE7A3, 0, + 0, 0, 0, 0, 0, 0, 0,0xDBA5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE2D1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD7A2, 0, 0,0xF7E3, 0, 0, 0, 0, + 0, 0,0xEAA6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xD0A1, 0, 0, + 0, 0,0xCEDA,0xFBEB,0xDBA6,0xDBDE,0xD8E5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEAE0, 0, 0, 0, 0,0xD8AA, 0, 0, + 0, 0, 0,0xE5E0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD6DB, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xEFC6, + 0, 0,0xF8EA, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE4D5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xCEF7, 0, 0,0xE0D8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD7EF, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xF4ED, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xCDE6, 0, 0, + 0,0xCCF4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF5E3, 0, + 0,0xE4CA, 0,0xDCE1, 0, 0,0xF9C8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xFCBF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE8A7, 0, 0, 0, 0, + 0, 0, 0, 0,0xD8C4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCBBE, 0,0xDCAE, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xD7F7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xF0E8, 0, +0xDDC0, 0,0xCFCD, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDCF3,0xD9B0, 0,0xE6E9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xE4BC, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xEAC4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xE4EC, + 0,0xE4E5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xFBF8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xCCBB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE4BD, 0, + 0,0xCDDC,0xD9F7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xDDDF, 0, 0, + 0, 0, 0,0xEDCE, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xD9D0, 0, 0, 0, 0, 0, +0xE5A3, 0, 0, 0, 0,0xF9CD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xCDAE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xCFCE, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF6AF, 0, 0, 0, 0, + 0,0xFDD3,0xEBED,0xD6DC, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xE5A4, 0, 0, 0,0xD5B6, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD6DD, 0, + 0, 0,0xF9E9, 0, 0, 0,0xE7A4, 0, +0xD6E3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xD1CB,0xD6E4, 0, 0, 0, +0xD5F2, 0, 0, 0, 0, 0,0xDEFA, 0, +0xD7F8, 0, 0, 0, 0, 0,0xD8EA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xCFD5,0xD8FD, 0, + 0, 0, 0, 0,0xD8AB, 0, 0,0xFDCB, + 0, 0, 0, 0,0xFCDC, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xE0A8,0xD5F3, + 0, 0,0xFDD9, 0, 0,0xCCA3, 0, 0, + 0,0xD9F9, 0, 0,0xD3EA,0xF5F5, 0,0xEFC7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xD3DA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xDABD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE8A8,0xDCAF, 0, 0, 0, 0, 0,0xF0A3, + 0, 0, 0, 0,0xCDD5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xE0A9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xDEAC, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xF0BA,0xEEB1, 0, 0,0xEEB2, + 0, 0, 0,0xF6CD, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xEED2, 0,0xD6C6, 0, 0, 0, 0, 0, +0xE0E5, 0, 0,0xF3BB, 0,0xE5E1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xE4CB, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xD7A3, 0, + 0,0xDBC2, 0, 0, 0, 0,0xCAFE, 0, + 0, 0, 0, 0, 0,0xCFCF}; + +/* page 8 0xAC00-0xD7A3 */ +static const uint16 tab_uni_ksc56018[]={ +0xB0A1,0xB0A2,0x8141,0x8142,0xB0A3,0x8143,0x8144,0xB0A4, +0xB0A5,0xB0A6,0xB0A7,0x8145,0x8146,0x8147,0x8148,0x8149, +0xB0A8,0xB0A9,0xB0AA,0xB0AB,0xB0AC,0xB0AD,0xB0AE,0xB0AF, +0x814A,0xB0B0,0xB0B1,0xB0B2,0xB0B3,0xB0B4,0x814B,0x814C, +0xB0B5,0x814D,0x814E,0x814F,0xB0B6,0x8150,0x8151,0x8152, +0x8153,0x8154,0x8155,0x8156,0xB0B7,0xB0B8,0x8157,0xB0B9, +0xB0BA,0xB0BB,0x8158,0x8159,0x815A,0x8161,0x8162,0x8163, +0xB0BC,0xB0BD,0x8164,0x8165,0xB0BE,0x8166,0x8167,0x8168, +0xB0BF,0x8169,0x816A,0x816B,0x816C,0x816D,0x816E,0x816F, +0x8170,0x8171,0x8172,0xB0C0,0x8173,0xB0C1,0x8174,0x8175, +0x8176,0x8177,0x8178,0x8179,0xB0C2,0x817A,0x8181,0x8182, +0xB0C3,0x8183,0x8184,0x8185,0xB0C4,0x8186,0x8187,0x8188, +0x8189,0x818A,0x818B,0x818C,0x818D,0x818E,0x818F,0x8190, +0x8191,0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,0x8198, +0xB0C5,0xB0C6,0x8199,0x819A,0xB0C7,0x819B,0x819C,0xB0C8, +0xB0C9,0x819D,0xB0CA,0x819E,0x819F,0x81A0,0x81A1,0x81A2, +0xB0CB,0xB0CC,0x81A3,0xB0CD,0xB0CE,0xB0CF,0xB0D0,0x81A4, +0x81A5,0xB0D1,0xB0D2,0xB0D3,0xB0D4,0x81A6,0x81A7,0x81A8, +0xB0D5,0x81A9,0x81AA,0x81AB,0xB0D6,0x81AC,0x81AD,0x81AE, +0x81AF,0x81B0,0x81B1,0x81B2,0xB0D7,0xB0D8,0x81B3,0xB0D9, +0xB0DA,0xB0DB,0x81B4,0x81B5,0x81B6,0x81B7,0x81B8,0x81B9, +0xB0DC,0xB0DD,0xB0DE,0x81BA,0xB0DF,0x81BB,0x81BC,0xB0E0, +0xB0E1,0x81BD,0x81BE,0x81BF,0x81C0,0x81C1,0x81C2,0x81C3, +0xB0E2,0xB0E3,0x81C4,0xB0E4,0xB0E5,0xB0E6,0x81C5,0x81C6, +0x81C7,0xB0E7,0x81C8,0x81C9,0xB0E8,0x81CA,0x81CB,0x81CC, +0xB0E9,0x81CD,0x81CE,0x81CF,0xB0EA,0x81D0,0x81D1,0x81D2, +0x81D3,0x81D4,0x81D5,0x81D6,0x81D7,0xB0EB,0x81D8,0xB0EC, +0x81D9,0x81DA,0x81DB,0x81DC,0x81DD,0x81DE,0x81DF,0x81E0, +0xB0ED,0xB0EE,0x81E1,0x81E2,0xB0EF,0x81E3,0x81E4,0xB0F0, +0xB0F1,0x81E5,0xB0F2,0x81E6,0xB0F3,0x81E7,0x81E8,0xB0F4, +0xB0F5,0xB0F6,0x81E9,0xB0F7,0x81EA,0xB0F8,0xB0F9,0x81EB, +0x81EC,0x81ED,0x81EE,0x81EF,0xB0FA,0xB0FB,0x81F0,0x81F1, +0xB0FC,0x81F2,0x81F3,0x81F4,0xB0FD,0x81F5,0xB0FE,0x81F6, +0x81F7,0x81F8,0x81F9,0x81FA,0xB1A1,0xB1A2,0x81FB,0xB1A3, +0x81FC,0xB1A4,0x81FD,0x81FE,0x8241,0x8242,0x8243,0x8244, +0xB1A5,0x8245,0x8246,0x8247,0xB1A6,0x8248,0x8249,0x824A, +0xB1A7,0x824B,0x824C,0x824D,0x824E,0x824F,0x8250,0x8251, +0x8252,0xB1A8,0x8253,0x8254,0xB1A9,0xB1AA,0x8255,0x8256, +0x8257,0x8258,0x8259,0x825A,0xB1AB,0xB1AC,0x8261,0x8262, +0xB1AD,0x8263,0x8264,0x8265,0xB1AE,0x8266,0x8267,0x8268, +0x8269,0x826A,0x826B,0x826C,0xB1AF,0xB1B0,0x826D,0xB1B1, +0x826E,0xB1B2,0x826F,0x8270,0x8271,0x8272,0x8273,0x8274, +0xB1B3,0x8275,0x8276,0x8277,0xB1B4,0x8278,0x8279,0x827A, +0xB1B5,0x8281,0x8282,0x8283,0x8284,0x8285,0x8286,0x8287, +0x8288,0xB1B6,0x8289,0xB1B7,0x828A,0x828B,0x828C,0x828D, +0x828E,0x828F,0x8290,0x8291,0xB1B8,0xB1B9,0x8292,0x8293, +0xB1BA,0x8294,0x8295,0xB1BB,0xB1BC,0xB1BD,0xB1BE,0x8296, +0x8297,0x8298,0x8299,0xB1BF,0xB1C0,0xB1C1,0x829A,0xB1C2, +0x829B,0xB1C3,0xB1C4,0x829C,0x829D,0x829E,0x829F,0x82A0, +0xB1C5,0xB1C6,0x82A1,0x82A2,0xB1C7,0x82A3,0x82A4,0x82A5, +0xB1C8,0x82A6,0x82A7,0x82A8,0x82A9,0x82AA,0x82AB,0x82AC, +0x82AD,0x82AE,0x82AF,0x82B0,0xB1C9,0xB1CA,0x82B1,0x82B2, +0x82B3,0x82B4,0x82B5,0x82B6,0xB1CB,0x82B7,0x82B8,0x82B9, +0x82BA,0x82BB,0x82BC,0x82BD,0x82BE,0x82BF,0x82C0,0x82C1, +0x82C2,0x82C3,0x82C4,0x82C5,0x82C6,0x82C7,0x82C8,0xB1CC, +0x82C9,0x82CA,0x82CB,0x82CC,0x82CD,0x82CE,0x82CF,0x82D0, +0xB1CD,0xB1CE,0x82D1,0x82D2,0xB1CF,0x82D3,0x82D4,0x82D5, +0xB1D0,0x82D6,0x82D7,0x82D8,0x82D9,0x82DA,0x82DB,0x82DC, +0xB1D1,0xB1D2,0x82DD,0xB1D3,0x82DE,0x82DF,0x82E0,0x82E1, +0x82E2,0x82E3,0x82E4,0x82E5,0xB1D4,0x82E6,0x82E7,0x82E8, +0xB1D5,0x82E9,0x82EA,0x82EB,0xB1D6,0x82EC,0x82ED,0x82EE, +0x82EF,0x82F0,0x82F1,0x82F2,0x82F3,0x82F4,0x82F5,0x82F6, +0x82F7,0x82F8,0x82F9,0x82FA,0x82FB,0x82FC,0x82FD,0x82FE, +0xB1D7,0xB1D8,0x8341,0x8342,0xB1D9,0x8343,0x8344,0xB1DA, +0xB1DB,0xB1DC,0x8345,0x8346,0x8347,0x8348,0x8349,0x834A, +0xB1DD,0xB1DE,0x834B,0xB1DF,0x834C,0xB1E0,0x834D,0x834E, +0x834F,0x8350,0x8351,0x8352,0xB1E1,0x8353,0x8354,0x8355, +0x8356,0x8357,0x8358,0x8359,0x835A,0x8361,0x8362,0x8363, +0x8364,0x8365,0x8366,0x8367,0x8368,0x8369,0x836A,0x836B, +0x836C,0x836D,0x836E,0x836F,0x8370,0x8371,0x8372,0x8373, +0xB1E2,0xB1E3,0x8374,0x8375,0xB1E4,0x8376,0x8377,0xB1E5, +0xB1E6,0x8378,0xB1E7,0x8379,0x837A,0x8381,0x8382,0x8383, +0xB1E8,0xB1E9,0x8384,0xB1EA,0x8385,0xB1EB,0xB1EC,0x8386, +0x8387,0x8388,0xB1ED,0x8389,0xB1EE,0xB1EF,0xB1F0,0x838A, +0xB1F1,0x838B,0x838C,0x838D,0xB1F2,0x838E,0xB1F3,0x838F, +0x8390,0x8391,0x8392,0x8393,0xB1F4,0xB1F5,0x8394,0xB1F6, +0xB1F7,0xB1F8,0x8395,0x8396,0x8397,0xB1F9,0x8398,0x8399, +0xB1FA,0xB1FB,0x839A,0x839B,0xB1FC,0x839C,0x839D,0x839E, +0xB1FD,0x839F,0x83A0,0x83A1,0x83A2,0x83A3,0x83A4,0x83A5, +0xB1FE,0xB2A1,0x83A6,0xB2A2,0xB2A3,0xB2A4,0x83A7,0x83A8, +0x83A9,0x83AA,0x83AB,0x83AC,0xB2A5,0xB2A6,0x83AD,0x83AE, +0x83AF,0x83B0,0x83B1,0x83B2,0xB2A7,0x83B3,0x83B4,0x83B5, +0x83B6,0x83B7,0x83B8,0x83B9,0x83BA,0x83BB,0x83BC,0x83BD, +0x83BE,0x83BF,0x83C0,0x83C1,0x83C2,0x83C3,0x83C4,0x83C5, +0x83C6,0x83C7,0x83C8,0x83C9,0x83CA,0x83CB,0x83CC,0x83CD, +0x83CE,0x83CF,0x83D0,0x83D1,0x83D2,0x83D3,0x83D4,0x83D5, +0x83D6,0x83D7,0x83D8,0x83D9,0x83DA,0x83DB,0x83DC,0x83DD, +0x83DE,0x83DF,0x83E0,0x83E1,0xB2A8,0xB2A9,0xB2AA,0x83E2, +0xB2AB,0x83E3,0x83E4,0x83E5,0xB2AC,0x83E6,0x83E7,0x83E8, +0x83E9,0x83EA,0x83EB,0x83EC,0xB2AD,0xB2AE,0x83ED,0xB2AF, +0xB2B0,0xB2B1,0x83EE,0x83EF,0x83F0,0x83F1,0x83F2,0x83F3, +0xB2B2,0xB2B3,0x83F4,0x83F5,0xB2B4,0x83F6,0x83F7,0x83F8, +0x83F9,0x83FA,0x83FB,0x83FC,0x83FD,0x83FE,0x8441,0x8442, +0xB2B5,0x8443,0x8444,0xB2B6,0x8445,0xB2B7,0x8446,0x8447, +0x8448,0x8449,0x844A,0x844B,0xB2B8,0x844C,0x844D,0x844E, +0xB2B9,0x844F,0x8450,0x8451,0xB2BA,0x8452,0x8453,0x8454, +0x8455,0x8456,0x8457,0x8458,0x8459,0x845A,0x8461,0xB2BB, +0xB2BC,0x8462,0x8463,0x8464,0x8465,0xB2BD,0x8466,0x8467, +0xB2BE,0x8468,0x8469,0x846A,0x846B,0x846C,0x846D,0x846E, +0x846F,0x8470,0x8471,0x8472,0x8473,0x8474,0x8475,0x8476, +0x8477,0x8478,0x8479,0x847A,0x8481,0x8482,0x8483,0x8484, +0x8485,0x8486,0x8487,0x8488,0xB2BF,0xB2C0,0x8489,0x848A, +0xB2C1,0x848B,0xB2C2,0x848C,0xB2C3,0x848D,0x848E,0x848F, +0x8490,0x8491,0x8492,0x8493,0xB2C4,0xB2C5,0x8494,0xB2C6, +0x8495,0xB2C7,0xB2C8,0xB2C9,0x8496,0x8497,0x8498,0x8499, +0xB2CA,0xB2CB,0x849A,0x849B,0x849C,0x849D,0x849E,0x849F, +0xB2CC,0x84A0,0x84A1,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6, +0x84A7,0x84A8,0x84A9,0x84AA,0xB2CD,0xB2CE,0x84AB,0x84AC, +0x84AD,0x84AE,0x84AF,0x84B0,0xB2CF,0xB2D0,0x84B1,0x84B2, +0x84B3,0x84B4,0x84B5,0x84B6,0x84B7,0x84B8,0x84B9,0x84BA, +0x84BB,0x84BC,0x84BD,0x84BE,0x84BF,0x84C0,0x84C1,0x84C2, +0x84C3,0xB2D1,0x84C4,0x84C5,0x84C6,0x84C7,0x84C8,0x84C9, +0xB2D2,0x84CA,0x84CB,0x84CC,0xB2D3,0x84CD,0x84CE,0x84CF, +0xB2D4,0x84D0,0x84D1,0x84D2,0x84D3,0x84D4,0x84D5,0x84D6, +0xB2D5,0xB2D6,0x84D7,0x84D8,0x84D9,0xB2D7,0x84DA,0x84DB, +0x84DC,0x84DD,0x84DE,0x84DF,0xB2D8,0x84E0,0x84E1,0x84E2, +0x84E3,0x84E4,0x84E5,0x84E6,0x84E7,0x84E8,0x84E9,0x84EA, +0x84EB,0x84EC,0x84ED,0x84EE,0x84EF,0x84F0,0x84F1,0x84F2, +0x84F3,0x84F4,0x84F5,0x84F6,0x84F7,0x84F8,0x84F9,0x84FA, +0xB2D9,0xB2DA,0x84FB,0x84FC,0xB2DB,0x84FD,0x84FE,0x8541, +0xB2DC,0x8542,0x8543,0x8544,0x8545,0x8546,0x8547,0xB2DD, +0xB2DE,0xB2DF,0x8548,0xB2E0,0x8549,0xB2E1,0xB2E2,0x854A, +0x854B,0x854C,0x854D,0x854E,0xB2E3,0x854F,0x8550,0x8551, +0x8552,0x8553,0x8554,0x8555,0xB2E4,0x8556,0x8557,0x8558, +0x8559,0x855A,0x8561,0x8562,0x8563,0x8564,0x8565,0x8566, +0xB2E5,0xB2E6,0x8567,0x8568,0x8569,0x856A,0x856B,0x856C, +0xB2E7,0xB2E8,0x856D,0x856E,0xB2E9,0x856F,0x8570,0x8571, +0xB2EA,0x8572,0x8573,0x8574,0x8575,0x8576,0x8577,0x8578, +0xB2EB,0xB2EC,0x8579,0x857A,0xB2ED,0x8581,0x8582,0x8583, +0x8584,0x8585,0x8586,0x8587,0xB2EE,0x8588,0x8589,0x858A, +0xB2EF,0x858B,0x858C,0x858D,0xB2F0,0x858E,0x858F,0x8590, +0x8591,0x8592,0x8593,0x8594,0xB2F1,0xB2F2,0x8595,0x8596, +0x8597,0x8598,0x8599,0x859A,0x859B,0x859C,0x859D,0x859E, +0xB2F3,0x859F,0x85A0,0x85A1,0x85A2,0x85A3,0x85A4,0x85A5, +0x85A6,0x85A7,0x85A8,0x85A9,0x85AA,0x85AB,0x85AC,0x85AD, +0x85AE,0x85AF,0x85B0,0x85B1,0x85B2,0x85B3,0x85B4,0x85B5, +0x85B6,0x85B7,0x85B8,0x85B9,0xB2F4,0xB2F5,0x85BA,0x85BB, +0xB2F6,0x85BC,0xB2F7,0x85BD,0xB2F8,0x85BE,0xB2F9,0x85BF, +0x85C0,0x85C1,0x85C2,0xB2FA,0xB2FB,0xB2FC,0x85C3,0xB2FD, +0x85C4,0xB2FE,0x85C5,0x85C6,0x85C7,0xB3A1,0x85C8,0x85C9, +0x85CA,0x85CB,0x85CC,0x85CD,0x85CE,0x85CF,0x85D0,0x85D1, +0x85D2,0x85D3,0x85D4,0x85D5,0x85D6,0x85D7,0x85D8,0x85D9, +0x85DA,0x85DB,0x85DC,0x85DD,0x85DE,0x85DF,0x85E0,0x85E1, +0x85E2,0x85E3,0x85E4,0x85E5,0xB3A2,0xB3A3,0x85E6,0x85E7, +0xB3A4,0x85E8,0x85E9,0x85EA,0xB3A5,0x85EB,0x85EC,0x85ED, +0x85EE,0x85EF,0x85F0,0x85F1,0xB3A6,0xB3A7,0x85F2,0xB3A8, +0x85F3,0xB3A9,0x85F4,0x85F5,0x85F6,0x85F7,0x85F8,0x85F9, +0xB3AA,0xB3AB,0xB3AC,0x85FA,0xB3AD,0x85FB,0x85FC,0xB3AE, +0xB3AF,0xB3B0,0xB3B1,0x85FD,0x85FE,0x8641,0x8642,0x8643, +0xB3B2,0xB3B3,0x8644,0xB3B4,0xB3B5,0xB3B6,0xB3B7,0xB3B8, +0x8645,0xB3B9,0x8646,0xB3BA,0xB3BB,0xB3BC,0x8647,0x8648, +0xB3BD,0x8649,0x864A,0x864B,0xB3BE,0x864C,0x864D,0x864E, +0x864F,0x8650,0x8651,0x8652,0xB3BF,0xB3C0,0x8653,0xB3C1, +0xB3C2,0xB3C3,0x8654,0x8655,0x8656,0x8657,0x8658,0x8659, +0xB3C4,0xB3C5,0x865A,0x8661,0xB3C6,0x8662,0x8663,0x8664, +0xB3C7,0x8665,0x8666,0x8667,0x8668,0x8669,0x866A,0x866B, +0xB3C8,0x866C,0x866D,0x866E,0x866F,0xB3C9,0x8670,0x8671, +0x8672,0x8673,0x8674,0x8675,0x8676,0x8677,0x8678,0x8679, +0x867A,0x8681,0x8682,0x8683,0x8684,0x8685,0x8686,0x8687, +0x8688,0x8689,0x868A,0x868B,0x868C,0x868D,0x868E,0x868F, +0x8690,0x8691,0x8692,0x8693,0x8694,0x8695,0x8696,0x8697, +0xB3CA,0xB3CB,0x8698,0xB3CC,0xB3CD,0x8699,0x869A,0x869B, +0xB3CE,0x869C,0xB3CF,0xB3D0,0x869D,0x869E,0x869F,0x86A0, +0xB3D1,0xB3D2,0x86A1,0xB3D3,0xB3D4,0xB3D5,0x86A2,0x86A3, +0x86A4,0x86A5,0x86A6,0xB3D6,0xB3D7,0xB3D8,0x86A7,0x86A8, +0xB3D9,0x86A9,0x86AA,0x86AB,0xB3DA,0x86AC,0x86AD,0x86AE, +0x86AF,0x86B0,0x86B1,0x86B2,0xB3DB,0xB3DC,0x86B3,0xB3DD, +0xB3DE,0xB3DF,0x86B4,0x86B5,0x86B6,0x86B7,0x86B8,0x86B9, +0xB3E0,0xB3E1,0x86BA,0x86BB,0xB3E2,0x86BC,0x86BD,0x86BE, +0xB3E3,0x86BF,0x86C0,0x86C1,0x86C2,0x86C3,0x86C4,0x86C5, +0xB3E4,0xB3E5,0x86C6,0x86C7,0xB3E6,0xB3E7,0x86C8,0x86C9, +0xB3E8,0x86CA,0x86CB,0x86CC,0xB3E9,0x86CD,0x86CE,0x86CF, +0xB3EA,0x86D0,0x86D1,0x86D2,0x86D3,0x86D4,0x86D5,0x86D6, +0x86D7,0x86D8,0x86D9,0x86DA,0x86DB,0x86DC,0x86DD,0x86DE, +0x86DF,0x86E0,0x86E1,0x86E2,0x86E3,0x86E4,0x86E5,0x86E6, +0xB3EB,0xB3EC,0x86E7,0x86E8,0xB3ED,0x86E9,0x86EA,0x86EB, +0xB3EE,0x86EC,0xB3EF,0x86ED,0x86EE,0x86EF,0x86F0,0x86F1, +0xB3F0,0xB3F1,0x86F2,0xB3F2,0x86F3,0xB3F3,0x86F4,0x86F5, +0x86F6,0x86F7,0xB3F4,0xB3F5,0xB3F6,0x86F8,0x86F9,0x86FA, +0xB3F7,0x86FB,0x86FC,0x86FD,0xB3F8,0x86FE,0x8741,0x8742, +0x8743,0x8744,0x8745,0x8746,0x8747,0x8748,0x8749,0x874A, +0xB3F9,0x874B,0x874C,0x874D,0x874E,0x874F,0x8750,0x8751, +0x8752,0x8753,0x8754,0x8755,0x8756,0x8757,0x8758,0x8759, +0x875A,0x8761,0x8762,0x8763,0x8764,0x8765,0x8766,0x8767, +0x8768,0x8769,0x876A,0x876B,0x876C,0x876D,0x876E,0x876F, +0x8770,0x8771,0x8772,0x8773,0xB3FA,0x8774,0x8775,0x8776, +0xB3FB,0x8777,0x8778,0x8779,0xB3FC,0x877A,0x8781,0x8782, +0x8783,0x8784,0x8785,0x8786,0xB3FD,0xB3FE,0x8787,0xB4A1, +0x8788,0x8789,0x878A,0x878B,0x878C,0x878D,0x878E,0x878F, +0xB4A2,0xB4A3,0x8790,0x8791,0xB4A4,0x8792,0x8793,0x8794, +0xB4A5,0x8795,0x8796,0x8797,0x8798,0x8799,0x879A,0x879B, +0x879C,0xB4A6,0x879D,0xB4A7,0x879E,0xB4A8,0x879F,0x87A0, +0x87A1,0x87A2,0x87A3,0x87A4,0xB4A9,0xB4AA,0x87A5,0x87A6, +0xB4AB,0x87A7,0x87A8,0xB4AC,0xB4AD,0x87A9,0x87AA,0x87AB, +0x87AC,0x87AD,0x87AE,0x87AF,0xB4AE,0xB4AF,0x87B0,0xB4B0, +0x87B1,0xB4B1,0x87B2,0x87B3,0x87B4,0x87B5,0x87B6,0x87B7, +0xB4B2,0x87B8,0x87B9,0x87BA,0x87BB,0x87BC,0x87BD,0x87BE, +0x87BF,0x87C0,0x87C1,0x87C2,0x87C3,0x87C4,0x87C5,0x87C6, +0x87C7,0x87C8,0x87C9,0x87CA,0xB4B3,0x87CB,0x87CC,0x87CD, +0x87CE,0x87CF,0x87D0,0x87D1,0xB4B4,0x87D2,0x87D3,0x87D4, +0x87D5,0x87D6,0x87D7,0x87D8,0x87D9,0x87DA,0x87DB,0x87DC, +0x87DD,0x87DE,0x87DF,0x87E0,0x87E1,0x87E2,0x87E3,0x87E4, +0x87E5,0x87E6,0x87E7,0x87E8,0x87E9,0x87EA,0x87EB,0x87EC, +0xB4B5,0x87ED,0x87EE,0x87EF,0xB4B6,0x87F0,0x87F1,0x87F2, +0xB4B7,0x87F3,0x87F4,0x87F5,0x87F6,0x87F7,0x87F8,0x87F9, +0xB4B8,0xB4B9,0x87FA,0x87FB,0x87FC,0x87FD,0x87FE,0x8841, +0x8842,0x8843,0x8844,0x8845,0xB4BA,0xB4BB,0x8846,0x8847, +0x8848,0x8849,0x884A,0x884B,0xB4BC,0x884C,0x884D,0x884E, +0x884F,0x8850,0x8851,0x8852,0xB4BD,0xB4BE,0x8853,0x8854, +0x8855,0xB4BF,0x8856,0x8857,0x8858,0x8859,0x885A,0x8861, +0xB4C0,0xB4C1,0x8862,0x8863,0xB4C2,0x8864,0x8865,0x8866, +0xB4C3,0xB4C4,0xB4C5,0x8867,0x8868,0x8869,0x886A,0x886B, +0xB4C6,0xB4C7,0x886C,0xB4C8,0x886D,0xB4C9,0xB4CA,0x886E, +0x886F,0x8870,0xB4CB,0x8871,0xB4CC,0x8872,0x8873,0x8874, +0xB4CD,0x8875,0x8876,0x8877,0xB4CE,0x8878,0x8879,0x887A, +0x8881,0x8882,0x8883,0x8884,0x8885,0x8886,0x8887,0x8888, +0x8889,0x888A,0x888B,0x888C,0x888D,0x888E,0x888F,0x8890, +0xB4CF,0xB4D0,0x8891,0x8892,0xB4D1,0x8893,0x8894,0x8895, +0xB4D2,0x8896,0xB4D3,0x8897,0x8898,0x8899,0x889A,0x889B, +0xB4D4,0xB4D5,0x889C,0xB4D6,0x889D,0xB4D7,0x889E,0x889F, +0x88A0,0x88A1,0xB4D8,0x88A2,0xB4D9,0xB4DA,0xB4DB,0x88A3, +0xB4DC,0x88A4,0x88A5,0xB4DD,0xB4DE,0xB4DF,0xB4E0,0xB4E1, +0x88A6,0x88A7,0x88A8,0xB4E2,0xB4E3,0xB4E4,0x88A9,0xB4E5, +0xB4E6,0xB4E7,0xB4E8,0xB4E9,0x88AA,0x88AB,0x88AC,0xB4EA, +0xB4EB,0xB4EC,0x88AD,0x88AE,0xB4ED,0x88AF,0x88B0,0x88B1, +0xB4EE,0x88B2,0x88B3,0x88B4,0x88B5,0x88B6,0x88B7,0x88B8, +0xB4EF,0xB4F0,0x88B9,0xB4F1,0xB4F2,0xB4F3,0x88BA,0x88BB, +0x88BC,0x88BD,0x88BE,0x88BF,0xB4F4,0x88C0,0x88C1,0x88C2, +0x88C3,0x88C4,0x88C5,0x88C6,0x88C7,0x88C8,0x88C9,0x88CA, +0x88CB,0x88CC,0x88CD,0x88CE,0x88CF,0x88D0,0x88D1,0x88D2, +0x88D3,0x88D4,0x88D5,0x88D6,0x88D7,0x88D8,0x88D9,0x88DA, +0x88DB,0x88DC,0x88DD,0x88DE,0x88DF,0x88E0,0x88E1,0x88E2, +0x88E3,0x88E4,0x88E5,0x88E6,0x88E7,0x88E8,0x88E9,0x88EA, +0x88EB,0x88EC,0x88ED,0x88EE,0x88EF,0x88F0,0x88F1,0x88F2, +0x88F3,0x88F4,0x88F5,0x88F6,0xB4F5,0xB4F6,0xB4F7,0x88F7, +0xB4F8,0x88F8,0x88F9,0xB4F9,0xB4FA,0x88FA,0xB4FB,0xB4FC, +0x88FB,0x88FC,0x88FD,0x88FE,0xB4FD,0xB4FE,0x8941,0xB5A1, +0x8942,0xB5A2,0x8943,0xB5A3,0x8944,0x8945,0xB5A4,0x8946, +0xB5A5,0xB5A6,0x8947,0x8948,0xB5A7,0x8949,0x894A,0x894B, +0xB5A8,0x894C,0x894D,0x894E,0x894F,0x8950,0x8951,0x8952, +0xB5A9,0xB5AA,0x8953,0xB5AB,0xB5AC,0xB5AD,0x8954,0x8955, +0x8956,0x8957,0x8958,0x8959,0xB5AE,0x895A,0x8961,0x8962, +0xB5AF,0x8963,0x8964,0x8965,0xB5B0,0x8966,0x8967,0x8968, +0x8969,0x896A,0x896B,0x896C,0x896D,0x896E,0x896F,0x8970, +0xB5B1,0xB5B2,0x8971,0x8972,0x8973,0x8974,0x8975,0x8976, +0xB5B3,0x8977,0x8978,0x8979,0xB5B4,0x897A,0x8981,0x8982, +0x8983,0x8984,0x8985,0x8986,0x8987,0x8988,0x8989,0x898A, +0x898B,0x898C,0x898D,0x898E,0x898F,0x8990,0x8991,0x8992, +0x8993,0x8994,0x8995,0x8996,0xB5B5,0xB5B6,0x8997,0x8998, +0xB5B7,0x8999,0x899A,0xB5B8,0xB5B9,0x899B,0xB5BA,0x899C, +0xB5BB,0x899D,0x899E,0x899F,0xB5BC,0xB5BD,0x89A0,0xB5BE, +0x89A1,0xB5BF,0x89A2,0xB5C0,0x89A3,0xB5C1,0x89A4,0x89A5, +0xB5C2,0x89A6,0x89A7,0x89A8,0xB5C3,0x89A9,0x89AA,0x89AB, +0xB5C4,0x89AC,0x89AD,0x89AE,0x89AF,0x89B0,0x89B1,0x89B2, +0x89B3,0x89B4,0x89B5,0x89B6,0x89B7,0x89B8,0x89B9,0x89BA, +0x89BB,0x89BC,0x89BD,0x89BE,0xB5C5,0x89BF,0x89C0,0x89C1, +0x89C2,0x89C3,0x89C4,0x89C5,0x89C6,0x89C7,0x89C8,0x89C9, +0x89CA,0x89CB,0x89CC,0x89CD,0x89CE,0x89CF,0x89D0,0x89D1, +0xB5C6,0x89D2,0x89D3,0x89D4,0x89D5,0x89D6,0x89D7,0x89D8, +0xB5C7,0x89D9,0x89DA,0x89DB,0xB5C8,0x89DC,0x89DD,0x89DE, +0xB5C9,0x89DF,0x89E0,0x89E1,0x89E2,0x89E3,0x89E4,0x89E5, +0xB5CA,0xB5CB,0x89E6,0xB5CC,0x89E7,0x89E8,0x89E9,0x89EA, +0x89EB,0x89EC,0x89ED,0x89EE,0xB5CD,0x89EF,0x89F0,0x89F1, +0x89F2,0x89F3,0x89F4,0x89F5,0x89F6,0x89F7,0x89F8,0x89F9, +0x89FA,0x89FB,0x89FC,0x89FD,0x89FE,0x8A41,0x8A42,0x8A43, +0x8A44,0x8A45,0x8A46,0x8A47,0x8A48,0x8A49,0x8A4A,0x8A4B, +0xB5CE,0xB5CF,0x8A4C,0x8A4D,0xB5D0,0x8A4E,0x8A4F,0x8A50, +0xB5D1,0x8A51,0x8A52,0x8A53,0x8A54,0x8A55,0x8A56,0x8A57, +0xB5D2,0xB5D3,0x8A58,0xB5D4,0x8A59,0xB5D5,0x8A5A,0x8A61, +0x8A62,0x8A63,0x8A64,0x8A65,0xB5D6,0x8A66,0x8A67,0x8A68, +0x8A69,0x8A6A,0x8A6B,0x8A6C,0x8A6D,0x8A6E,0x8A6F,0x8A70, +0x8A71,0x8A72,0x8A73,0x8A74,0x8A75,0x8A76,0x8A77,0x8A78, +0xB5D7,0x8A79,0x8A7A,0x8A81,0x8A82,0x8A83,0x8A84,0x8A85, +0xB5D8,0x8A86,0x8A87,0x8A88,0x8A89,0x8A8A,0x8A8B,0x8A8C, +0x8A8D,0x8A8E,0x8A8F,0x8A90,0x8A91,0x8A92,0x8A93,0x8A94, +0x8A95,0x8A96,0x8A97,0x8A98,0x8A99,0xB5D9,0x8A9A,0x8A9B, +0x8A9C,0x8A9D,0x8A9E,0x8A9F,0xB5DA,0x8AA0,0x8AA1,0x8AA2, +0xB5DB,0x8AA3,0x8AA4,0x8AA5,0xB5DC,0x8AA6,0x8AA7,0x8AA8, +0x8AA9,0x8AAA,0x8AAB,0x8AAC,0x8AAD,0xB5DD,0x8AAE,0xB5DE, +0x8AAF,0xB5DF,0x8AB0,0x8AB1,0x8AB2,0x8AB3,0x8AB4,0x8AB5, +0xB5E0,0x8AB6,0x8AB7,0x8AB8,0xB5E1,0x8AB9,0x8ABA,0x8ABB, +0xB5E2,0x8ABC,0x8ABD,0x8ABE,0x8ABF,0x8AC0,0x8AC1,0x8AC2, +0xB5E3,0x8AC3,0x8AC4,0x8AC5,0x8AC6,0xB5E4,0x8AC7,0x8AC8, +0x8AC9,0x8ACA,0x8ACB,0x8ACC,0xB5E5,0xB5E6,0x8ACD,0x8ACE, +0xB5E7,0x8ACF,0x8AD0,0xB5E8,0xB5E9,0x8AD1,0xB5EA,0x8AD2, +0x8AD3,0x8AD4,0x8AD5,0x8AD6,0xB5EB,0xB5EC,0x8AD7,0xB5ED, +0x8AD8,0xB5EE,0x8AD9,0x8ADA,0x8ADB,0x8ADC,0x8ADD,0x8ADE, +0xB5EF,0x8ADF,0x8AE0,0x8AE1,0x8AE2,0x8AE3,0x8AE4,0x8AE5, +0x8AE6,0x8AE7,0x8AE8,0x8AE9,0x8AEA,0x8AEB,0x8AEC,0x8AED, +0x8AEE,0x8AEF,0x8AF0,0x8AF1,0x8AF2,0x8AF3,0x8AF4,0x8AF5, +0x8AF6,0x8AF7,0x8AF8,0x8AF9,0xB5F0,0xB5F1,0x8AFA,0x8AFB, +0xB5F2,0x8AFC,0x8AFD,0xB5F3,0xB5F4,0x8AFE,0x8B41,0x8B42, +0x8B43,0x8B44,0x8B45,0x8B46,0xB5F5,0xB5F6,0x8B47,0xB5F7, +0xB5F8,0xB5F9,0xB5FA,0x8B48,0x8B49,0x8B4A,0x8B4B,0x8B4C, +0xB5FB,0xB5FC,0x8B4D,0x8B4E,0xB5FD,0x8B4F,0x8B50,0x8B51, +0xB5FE,0x8B52,0x8B53,0x8B54,0x8B55,0x8B56,0x8B57,0x8B58, +0xB6A1,0xB6A2,0x8B59,0xB6A3,0xB6A4,0xB6A5,0x8B5A,0x8B61, +0x8B62,0x8B63,0x8B64,0xB6A6,0xB6A7,0xB6A8,0x8B65,0x8B66, +0xB6A9,0x8B67,0x8B68,0x8B69,0xB6AA,0x8B6A,0x8B6B,0x8B6C, +0x8B6D,0x8B6E,0x8B6F,0x8B70,0xB6AB,0xB6AC,0x8B71,0xB6AD, +0xB6AE,0xB6AF,0x8B72,0x8B73,0x8B74,0x8B75,0x8B76,0x8B77, +0x8B78,0x8B79,0x8B7A,0x8B81,0x8B82,0x8B83,0x8B84,0x8B85, +0x8B86,0x8B87,0x8B88,0x8B89,0x8B8A,0x8B8B,0x8B8C,0x8B8D, +0x8B8E,0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93,0x8B94,0x8B95, +0x8B96,0x8B97,0x8B98,0x8B99,0x8B9A,0x8B9B,0x8B9C,0x8B9D, +0x8B9E,0x8B9F,0x8BA0,0x8BA1,0x8BA2,0x8BA3,0x8BA4,0x8BA5, +0x8BA6,0x8BA7,0x8BA8,0x8BA9,0x8BAA,0x8BAB,0x8BAC,0x8BAD, +0x8BAE,0x8BAF,0x8BB0,0x8BB1,0x8BB2,0x8BB3,0x8BB4,0x8BB5, +0xB6B0,0xB6B1,0x8BB6,0x8BB7,0xB6B2,0x8BB8,0x8BB9,0x8BBA, +0xB6B3,0x8BBB,0xB6B4,0xB6B5,0x8BBC,0x8BBD,0x8BBE,0x8BBF, +0xB6B6,0xB6B7,0x8BC0,0xB6B8,0xB6B9,0xB6BA,0x8BC1,0x8BC2, +0x8BC3,0x8BC4,0x8BC5,0xB6BB,0xB6BC,0xB6BD,0x8BC6,0x8BC7, +0xB6BE,0x8BC8,0x8BC9,0x8BCA,0xB6BF,0x8BCB,0x8BCC,0x8BCD, +0x8BCE,0x8BCF,0x8BD0,0x8BD1,0xB6C0,0xB6C1,0x8BD2,0xB6C2, +0xB6C3,0xB6C4,0x8BD3,0x8BD4,0x8BD5,0x8BD6,0x8BD7,0x8BD8, +0xB6C5,0x8BD9,0x8BDA,0x8BDB,0x8BDC,0x8BDD,0x8BDE,0x8BDF, +0x8BE0,0x8BE1,0x8BE2,0x8BE3,0x8BE4,0x8BE5,0x8BE6,0x8BE7, +0x8BE8,0x8BE9,0x8BEA,0x8BEB,0xB6C6,0x8BEC,0x8BED,0x8BEE, +0x8BEF,0x8BF0,0x8BF1,0x8BF2,0x8BF3,0x8BF4,0x8BF5,0x8BF6, +0x8BF7,0x8BF8,0x8BF9,0x8BFA,0x8BFB,0x8BFC,0x8BFD,0x8BFE, +0x8C41,0x8C42,0x8C43,0x8C44,0x8C45,0x8C46,0x8C47,0x8C48, +0x8C49,0x8C4A,0x8C4B,0x8C4C,0x8C4D,0x8C4E,0x8C4F,0x8C50, +0xB6C7,0xB6C8,0x8C51,0x8C52,0xB6C9,0x8C53,0x8C54,0x8C55, +0xB6CA,0x8C56,0x8C57,0x8C58,0x8C59,0x8C5A,0x8C61,0x8C62, +0x8C63,0x8C64,0x8C65,0x8C66,0x8C67,0xB6CB,0x8C68,0x8C69, +0x8C6A,0x8C6B,0x8C6C,0x8C6D,0xB6CC,0x8C6E,0x8C6F,0x8C70, +0x8C71,0x8C72,0x8C73,0x8C74,0xB6CD,0x8C75,0x8C76,0x8C77, +0x8C78,0x8C79,0x8C7A,0x8C81,0x8C82,0x8C83,0x8C84,0x8C85, +0x8C86,0x8C87,0x8C88,0x8C89,0x8C8A,0x8C8B,0x8C8C,0x8C8D, +0xB6CE,0x8C8E,0x8C8F,0x8C90,0x8C91,0x8C92,0x8C93,0x8C94, +0x8C95,0x8C96,0x8C97,0x8C98,0x8C99,0x8C9A,0x8C9B,0x8C9C, +0x8C9D,0x8C9E,0x8C9F,0x8CA0,0x8CA1,0x8CA2,0x8CA3,0x8CA4, +0x8CA5,0x8CA6,0x8CA7,0x8CA8,0xB6CF,0x8CA9,0x8CAA,0x8CAB, +0xB6D0,0x8CAC,0x8CAD,0x8CAE,0x8CAF,0x8CB0,0x8CB1,0x8CB2, +0x8CB3,0x8CB4,0x8CB5,0x8CB6,0x8CB7,0x8CB8,0x8CB9,0x8CBA, +0x8CBB,0x8CBC,0x8CBD,0x8CBE,0x8CBF,0x8CC0,0x8CC1,0x8CC2, +0x8CC3,0x8CC4,0x8CC5,0x8CC6,0x8CC7,0x8CC8,0x8CC9,0x8CCA, +0x8CCB,0x8CCC,0x8CCD,0x8CCE,0x8CCF,0x8CD0,0x8CD1,0x8CD2, +0x8CD3,0x8CD4,0x8CD5,0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA, +0x8CDB,0x8CDC,0x8CDD,0x8CDE,0xB6D1,0xB6D2,0x8CDF,0x8CE0, +0xB6D3,0x8CE1,0x8CE2,0x8CE3,0xB6D4,0x8CE4,0x8CE5,0x8CE6, +0x8CE7,0x8CE8,0x8CE9,0xB6D5,0xB6D6,0x8CEA,0x8CEB,0x8CEC, +0x8CED,0xB6D7,0x8CEE,0x8CEF,0x8CF0,0x8CF1,0x8CF2,0x8CF3, +0x8CF4,0x8CF5,0x8CF6,0x8CF7,0x8CF8,0x8CF9,0x8CFA,0x8CFB, +0x8CFC,0x8CFD,0x8CFE,0x8D41,0x8D42,0x8D43,0x8D44,0x8D45, +0x8D46,0x8D47,0x8D48,0x8D49,0x8D4A,0x8D4B,0x8D4C,0x8D4D, +0x8D4E,0x8D4F,0x8D50,0x8D51,0xB6D8,0x8D52,0x8D53,0x8D54, +0x8D55,0x8D56,0x8D57,0x8D58,0x8D59,0x8D5A,0x8D61,0x8D62, +0x8D63,0x8D64,0x8D65,0x8D66,0x8D67,0x8D68,0x8D69,0x8D6A, +0x8D6B,0x8D6C,0x8D6D,0x8D6E,0x8D6F,0x8D70,0x8D71,0x8D72, +0xB6D9,0x8D73,0x8D74,0x8D75,0xB6DA,0x8D76,0x8D77,0x8D78, +0xB6DB,0x8D79,0x8D7A,0x8D81,0x8D82,0x8D83,0x8D84,0x8D85, +0xB6DC,0xB6DD,0x8D86,0x8D87,0x8D88,0xB6DE,0x8D89,0x8D8A, +0x8D8B,0x8D8C,0x8D8D,0x8D8E,0x8D8F,0x8D90,0x8D91,0x8D92, +0x8D93,0x8D94,0x8D95,0x8D96,0x8D97,0x8D98,0x8D99,0x8D9A, +0x8D9B,0x8D9C,0x8D9D,0x8D9E,0x8D9F,0x8DA0,0x8DA1,0x8DA2, +0x8DA3,0x8DA4,0x8DA5,0x8DA6,0x8DA7,0x8DA8,0x8DA9,0x8DAA, +0xB6DF,0xB6E0,0x8DAB,0x8DAC,0xB6E1,0x8DAD,0x8DAE,0xB6E2, +0xB6E3,0x8DAF,0x8DB0,0x8DB1,0x8DB2,0x8DB3,0x8DB4,0x8DB5, +0xB6E4,0xB6E5,0x8DB6,0xB6E6,0x8DB7,0x8DB8,0x8DB9,0x8DBA, +0x8DBB,0x8DBC,0x8DBD,0x8DBE,0xB6E7,0x8DBF,0x8DC0,0x8DC1, +0xB6E8,0x8DC2,0x8DC3,0x8DC4,0xB6E9,0x8DC5,0x8DC6,0x8DC7, +0x8DC8,0x8DC9,0x8DCA,0x8DCB,0xB6EA,0xB6EB,0x8DCC,0x8DCD, +0x8DCE,0x8DCF,0x8DD0,0x8DD1,0x8DD2,0x8DD3,0x8DD4,0x8DD5, +0xB6EC,0x8DD6,0x8DD7,0x8DD8,0xB6ED,0x8DD9,0x8DDA,0x8DDB, +0xB6EE,0x8DDC,0x8DDD,0x8DDE,0x8DDF,0x8DE0,0x8DE1,0x8DE2, +0xB6EF,0xB6F0,0x8DE3,0xB6F1,0x8DE4,0xB6F2,0x8DE5,0x8DE6, +0x8DE7,0x8DE8,0x8DE9,0x8DEA,0xB6F3,0xB6F4,0x8DEB,0x8DEC, +0xB6F5,0x8DED,0x8DEE,0x8DEF,0xB6F6,0x8DF0,0x8DF1,0x8DF2, +0x8DF3,0x8DF4,0x8DF5,0x8DF6,0xB6F7,0xB6F8,0x8DF7,0xB6F9, +0xB6FA,0xB6FB,0xB6FC,0x8DF8,0x8DF9,0x8DFA,0xB6FD,0xB6FE, +0xB7A1,0xB7A2,0x8DFB,0x8DFC,0xB7A3,0x8DFD,0x8DFE,0x8E41, +0xB7A4,0x8E42,0x8E43,0x8E44,0x8E45,0x8E46,0x8E47,0x8E48, +0xB7A5,0xB7A6,0x8E49,0xB7A7,0xB7A8,0xB7A9,0x8E4A,0x8E4B, +0x8E4C,0x8E4D,0x8E4E,0x8E4F,0xB7AA,0xB7AB,0x8E50,0x8E51, +0xB7AC,0x8E52,0x8E53,0x8E54,0x8E55,0x8E56,0x8E57,0x8E58, +0x8E59,0x8E5A,0x8E61,0x8E62,0x8E63,0x8E64,0x8E65,0xB7AD, +0x8E66,0xB7AE,0x8E67,0x8E68,0x8E69,0x8E6A,0x8E6B,0x8E6C, +0x8E6D,0x8E6E,0x8E6F,0x8E70,0x8E71,0x8E72,0x8E73,0x8E74, +0x8E75,0x8E76,0x8E77,0x8E78,0x8E79,0x8E7A,0x8E81,0x8E82, +0x8E83,0x8E84,0x8E85,0x8E86,0x8E87,0x8E88,0x8E89,0x8E8A, +0x8E8B,0x8E8C,0x8E8D,0x8E8E,0xB7AF,0xB7B0,0x8E8F,0x8E90, +0xB7B1,0x8E91,0x8E92,0x8E93,0xB7B2,0x8E94,0x8E95,0x8E96, +0x8E97,0x8E98,0x8E99,0x8E9A,0xB7B3,0xB7B4,0x8E9B,0xB7B5, +0xB7B6,0xB7B7,0x8E9C,0x8E9D,0x8E9E,0x8E9F,0x8EA0,0xB7B8, +0xB7B9,0xB7BA,0x8EA1,0x8EA2,0xB7BB,0x8EA3,0x8EA4,0x8EA5, +0xB7BC,0x8EA6,0x8EA7,0x8EA8,0x8EA9,0x8EAA,0x8EAB,0x8EAC, +0xB7BD,0xB7BE,0x8EAD,0xB7BF,0x8EAE,0xB7C0,0x8EAF,0x8EB0, +0x8EB1,0x8EB2,0x8EB3,0x8EB4,0xB7C1,0xB7C2,0x8EB5,0x8EB6, +0xB7C3,0x8EB7,0x8EB8,0x8EB9,0xB7C4,0x8EBA,0x8EBB,0x8EBC, +0x8EBD,0x8EBE,0x8EBF,0x8EC0,0xB7C5,0xB7C6,0x8EC1,0xB7C7, +0xB7C8,0xB7C9,0x8EC2,0x8EC3,0x8EC4,0x8EC5,0x8EC6,0x8EC7, +0xB7CA,0x8EC8,0x8EC9,0x8ECA,0xB7CB,0x8ECB,0x8ECC,0x8ECD, +0x8ECE,0x8ECF,0x8ED0,0x8ED1,0x8ED2,0x8ED3,0x8ED4,0x8ED5, +0x8ED6,0xB7CC,0x8ED7,0xB7CD,0x8ED8,0x8ED9,0x8EDA,0x8EDB, +0x8EDC,0x8EDD,0x8EDE,0x8EDF,0xB7CE,0xB7CF,0x8EE0,0x8EE1, +0xB7D0,0x8EE2,0x8EE3,0x8EE4,0xB7D1,0x8EE5,0x8EE6,0x8EE7, +0x8EE8,0x8EE9,0x8EEA,0x8EEB,0xB7D2,0xB7D3,0x8EEC,0xB7D4, +0x8EED,0xB7D5,0x8EEE,0x8EEF,0x8EF0,0x8EF1,0x8EF2,0x8EF3, +0xB7D6,0x8EF4,0x8EF5,0x8EF6,0xB7D7,0x8EF7,0x8EF8,0x8EF9, +0x8EFA,0x8EFB,0x8EFC,0x8EFD,0x8EFE,0x8F41,0x8F42,0x8F43, +0x8F44,0x8F45,0x8F46,0x8F47,0x8F48,0xB7D8,0x8F49,0x8F4A, +0x8F4B,0x8F4C,0x8F4D,0x8F4E,0x8F4F,0x8F50,0x8F51,0x8F52, +0x8F53,0x8F54,0x8F55,0x8F56,0x8F57,0x8F58,0x8F59,0x8F5A, +0x8F61,0x8F62,0x8F63,0x8F64,0x8F65,0x8F66,0x8F67,0x8F68, +0xB7D9,0x8F69,0x8F6A,0x8F6B,0x8F6C,0x8F6D,0x8F6E,0x8F6F, +0xB7DA,0x8F70,0x8F71,0x8F72,0xB7DB,0x8F73,0x8F74,0x8F75, +0xB7DC,0x8F76,0x8F77,0x8F78,0x8F79,0x8F7A,0x8F81,0x8F82, +0xB7DD,0xB7DE,0x8F83,0xB7DF,0x8F84,0xB7E0,0x8F85,0x8F86, +0x8F87,0x8F88,0x8F89,0x8F8A,0xB7E1,0x8F8B,0x8F8C,0x8F8D, +0xB7E2,0x8F8E,0x8F8F,0x8F90,0xB7E3,0x8F91,0x8F92,0x8F93, +0x8F94,0x8F95,0x8F96,0x8F97,0x8F98,0xB7E4,0x8F99,0xB7E5, +0x8F9A,0xB7E6,0x8F9B,0x8F9C,0x8F9D,0x8F9E,0x8F9F,0x8FA0, +0xB7E7,0xB7E8,0x8FA1,0x8FA2,0xB7E9,0x8FA3,0x8FA4,0x8FA5, +0xB7EA,0x8FA6,0x8FA7,0x8FA8,0x8FA9,0x8FAA,0x8FAB,0x8FAC, +0xB7EB,0xB7EC,0x8FAD,0xB7ED,0x8FAE,0xB7EE,0x8FAF,0x8FB0, +0x8FB1,0x8FB2,0x8FB3,0x8FB4,0xB7EF,0x8FB5,0x8FB6,0x8FB7, +0x8FB8,0x8FB9,0x8FBA,0x8FBB,0x8FBC,0x8FBD,0x8FBE,0x8FBF, +0x8FC0,0x8FC1,0x8FC2,0x8FC3,0x8FC4,0x8FC5,0x8FC6,0x8FC7, +0xB7F0,0x8FC8,0x8FC9,0x8FCA,0x8FCB,0x8FCC,0x8FCD,0x8FCE, +0xB7F1,0x8FCF,0x8FD0,0x8FD1,0x8FD2,0x8FD3,0x8FD4,0x8FD5, +0x8FD6,0x8FD7,0x8FD8,0x8FD9,0x8FDA,0x8FDB,0x8FDC,0x8FDD, +0x8FDE,0x8FDF,0x8FE0,0x8FE1,0x8FE2,0x8FE3,0x8FE4,0x8FE5, +0x8FE6,0x8FE7,0x8FE8,0x8FE9,0xB7F2,0xB7F3,0x8FEA,0x8FEB, +0xB7F4,0x8FEC,0x8FED,0x8FEE,0xB7F5,0x8FEF,0x8FF0,0x8FF1, +0x8FF2,0x8FF3,0x8FF4,0x8FF5,0xB7F6,0x8FF6,0x8FF7,0xB7F7, +0x8FF8,0xB7F8,0x8FF9,0x8FFA,0x8FFB,0x8FFC,0x8FFD,0x8FFE, +0xB7F9,0xB7FA,0x9041,0x9042,0xB7FB,0x9043,0x9044,0x9045, +0xB7FC,0x9046,0x9047,0x9048,0x9049,0x904A,0x904B,0x904C, +0xB7FD,0xB7FE,0x904D,0xB8A1,0x904E,0xB8A2,0x904F,0x9050, +0x9051,0x9052,0x9053,0x9054,0xB8A3,0xB8A4,0x9055,0x9056, +0xB8A5,0x9057,0x9058,0x9059,0xB8A6,0x905A,0x9061,0x9062, +0x9063,0x9064,0x9065,0x9066,0xB8A7,0xB8A8,0x9067,0xB8A9, +0x9068,0xB8AA,0xB8AB,0x9069,0x906A,0xB8AC,0xB8AD,0x906B, +0x906C,0x906D,0x906E,0x906F,0x9070,0x9071,0x9072,0x9073, +0x9074,0x9075,0x9076,0x9077,0x9078,0x9079,0x907A,0x9081, +0x9082,0x9083,0x9084,0x9085,0x9086,0x9087,0x9088,0x9089, +0x908A,0x908B,0x908C,0x908D,0xB8AE,0xB8AF,0x908E,0x908F, +0xB8B0,0x9090,0x9091,0x9092,0xB8B1,0x9093,0x9094,0x9095, +0x9096,0x9097,0x9098,0x9099,0xB8B2,0xB8B3,0x909A,0xB8B4, +0x909B,0xB8B5,0x909C,0x909D,0x909E,0x909F,0x90A0,0x90A1, +0xB8B6,0xB8B7,0x90A2,0x90A3,0xB8B8,0x90A4,0xB8B9,0xB8BA, +0xB8BB,0xB8BC,0xB8BD,0x90A5,0x90A6,0x90A7,0x90A8,0x90A9, +0xB8BE,0xB8BF,0x90AA,0xB8C0,0x90AB,0xB8C1,0xB8C2,0x90AC, +0x90AD,0xB8C3,0x90AE,0xB8C4,0xB8C5,0xB8C6,0x90AF,0x90B0, +0xB8C7,0x90B1,0x90B2,0x90B3,0xB8C8,0x90B4,0x90B5,0x90B6, +0x90B7,0x90B8,0x90B9,0x90BA,0xB8C9,0xB8CA,0x90BB,0xB8CB, +0xB8CC,0xB8CD,0xB8CE,0x90BC,0x90BD,0x90BE,0x90BF,0x90C0, +0xB8CF,0xB8D0,0x90C1,0x90C2,0x90C3,0x90C4,0x90C5,0x90C6, +0xB8D1,0x90C7,0x90C8,0x90C9,0x90CA,0x90CB,0x90CC,0x90CD, +0x90CE,0x90CF,0x90D0,0x90D1,0x90D2,0xB8D2,0x90D3,0x90D4, +0x90D5,0x90D6,0x90D7,0x90D8,0x90D9,0x90DA,0x90DB,0x90DC, +0x90DD,0x90DE,0x90DF,0x90E0,0x90E1,0x90E2,0x90E3,0x90E4, +0x90E5,0x90E6,0x90E7,0x90E8,0x90E9,0x90EA,0x90EB,0x90EC, +0x90ED,0x90EE,0x90EF,0x90F0,0x90F1,0x90F2,0x90F3,0x90F4, +0xB8D3,0xB8D4,0x90F5,0x90F6,0xB8D5,0x90F7,0x90F8,0x90F9, +0xB8D6,0x90FA,0xB8D7,0x90FB,0x90FC,0x90FD,0x90FE,0x9141, +0xB8D8,0xB8D9,0x9142,0xB8DA,0x9143,0xB8DB,0xB8DC,0x9144, +0x9145,0x9146,0x9147,0xB8DD,0xB8DE,0xB8DF,0x9148,0x9149, +0xB8E0,0x914A,0x914B,0x914C,0xB8E1,0x914D,0x914E,0x914F, +0x9150,0x9151,0x9152,0x9153,0xB8E2,0xB8E3,0x9154,0xB8E4, +0xB8E5,0xB8E6,0x9155,0x9156,0x9157,0x9158,0x9159,0x915A, +0xB8E7,0xB8E8,0x9161,0x9162,0xB8E9,0x9163,0x9164,0x9165, +0xB8EA,0x9166,0x9167,0x9168,0x9169,0x916A,0x916B,0x916C, +0x916D,0x916E,0x916F,0xB8EB,0xB8EC,0xB8ED,0x9170,0xB8EE, +0x9171,0x9172,0x9173,0x9174,0xB8EF,0x9175,0x9176,0x9177, +0x9178,0x9179,0x917A,0x9181,0x9182,0x9183,0x9184,0x9185, +0x9186,0x9187,0x9188,0x9189,0x918A,0x918B,0x918C,0x918D, +0x918E,0x918F,0x9190,0x9191,0x9192,0x9193,0x9194,0x9195, +0xB8F0,0xB8F1,0x9196,0xB8F2,0xB8F3,0x9197,0x9198,0x9199, +0xB8F4,0x919A,0xB8F5,0x919B,0x919C,0x919D,0x919E,0x919F, +0xB8F6,0xB8F7,0x91A0,0xB8F8,0x91A1,0xB8F9,0x91A2,0x91A3, +0x91A4,0x91A5,0x91A6,0x91A7,0xB8FA,0x91A8,0x91A9,0x91AA, +0xB8FB,0x91AB,0x91AC,0x91AD,0x91AE,0x91AF,0x91B0,0x91B1, +0x91B2,0x91B3,0x91B4,0x91B5,0x91B6,0x91B7,0x91B8,0x91B9, +0xB8FC,0xB8FD,0x91BA,0x91BB,0x91BC,0x91BD,0x91BE,0x91BF, +0x91C0,0x91C1,0x91C2,0x91C3,0x91C4,0x91C5,0x91C6,0x91C7, +0x91C8,0x91C9,0x91CA,0x91CB,0x91CC,0x91CD,0x91CE,0x91CF, +0x91D0,0x91D1,0x91D2,0x91D3,0x91D4,0x91D5,0x91D6,0x91D7, +0x91D8,0x91D9,0x91DA,0x91DB,0xB8FE,0x91DC,0x91DD,0x91DE, +0xB9A1,0x91DF,0x91E0,0x91E1,0xB9A2,0x91E2,0x91E3,0x91E4, +0x91E5,0x91E6,0x91E7,0x91E8,0x91E9,0xB9A3,0x91EA,0xB9A4, +0x91EB,0xB9A5,0x91EC,0x91ED,0x91EE,0x91EF,0x91F0,0x91F1, +0xB9A6,0x91F2,0x91F3,0x91F4,0xB9A7,0x91F5,0x91F6,0x91F7, +0xB9A8,0x91F8,0x91F9,0x91FA,0x91FB,0x91FC,0x91FD,0x91FE, +0x9241,0xB9A9,0x9242,0xB9AA,0x9243,0x9244,0x9245,0x9246, +0x9247,0x9248,0x9249,0x924A,0xB9AB,0xB9AC,0xB9AD,0x924B, +0xB9AE,0x924C,0x924D,0xB9AF,0xB9B0,0xB9B1,0xB9B2,0x924E, +0x924F,0x9250,0x9251,0x9252,0xB9B3,0xB9B4,0x9253,0xB9B5, +0x9254,0xB9B6,0x9255,0x9256,0x9257,0xB9B7,0x9258,0xB9B8, +0xB9B9,0x9259,0x925A,0x9261,0xB9BA,0x9262,0x9263,0x9264, +0xB9BB,0x9265,0x9266,0x9267,0x9268,0x9269,0x926A,0x926B, +0x926C,0xB9BC,0x926D,0xB9BD,0x926E,0x926F,0x9270,0x9271, +0x9272,0x9273,0x9274,0x9275,0xB9BE,0x9276,0x9277,0x9278, +0x9279,0x927A,0x9281,0x9282,0x9283,0x9284,0x9285,0x9286, +0x9287,0x9288,0x9289,0x928A,0x928B,0x928C,0x928D,0x928E, +0x928F,0x9290,0x9291,0x9292,0x9293,0x9294,0x9295,0x9296, +0xB9BF,0x9297,0x9298,0x9299,0xB9C0,0x929A,0x929B,0x929C, +0xB9C1,0x929D,0x929E,0x929F,0x92A0,0x92A1,0x92A2,0x92A3, +0x92A4,0x92A5,0x92A6,0x92A7,0x92A8,0x92A9,0x92AA,0x92AB, +0x92AC,0x92AD,0x92AE,0x92AF,0xB9C2,0x92B0,0x92B1,0x92B2, +0xB9C3,0x92B3,0x92B4,0x92B5,0xB9C4,0x92B6,0x92B7,0x92B8, +0x92B9,0x92BA,0x92BB,0x92BC,0xB9C5,0x92BD,0x92BE,0xB9C6, +0x92BF,0x92C0,0x92C1,0x92C2,0x92C3,0x92C4,0x92C5,0x92C6, +0xB9C7,0x92C7,0x92C8,0x92C9,0xB9C8,0x92CA,0x92CB,0x92CC, +0xB9C9,0x92CD,0x92CE,0x92CF,0x92D0,0x92D1,0x92D2,0x92D3, +0xB9CA,0x92D4,0x92D5,0xB9CB,0x92D6,0x92D7,0x92D8,0x92D9, +0x92DA,0x92DB,0x92DC,0x92DD,0x92DE,0x92DF,0x92E0,0x92E1, +0x92E2,0x92E3,0x92E4,0x92E5,0x92E6,0x92E7,0x92E8,0x92E9, +0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,0x92F0,0x92F1, +0x92F2,0x92F3,0x92F4,0x92F5,0x92F6,0x92F7,0x92F8,0x92F9, +0xB9CC,0xB9CD,0x92FA,0x92FB,0xB9CE,0x92FC,0x92FD,0xB9CF, +0xB9D0,0x92FE,0xB9D1,0x9341,0x9342,0x9343,0x9344,0x9345, +0xB9D2,0xB9D3,0x9346,0xB9D4,0xB9D5,0xB9D6,0x9347,0xB9D7, +0x9348,0xB9D8,0x9349,0x934A,0xB9D9,0xB9DA,0xB9DB,0xB9DC, +0xB9DD,0x934B,0x934C,0xB9DE,0xB9DF,0xB9E0,0xB9E1,0xB9E2, +0x934D,0x934E,0x934F,0x9350,0xB9E3,0xB9E4,0x9351,0xB9E5, +0x9352,0xB9E6,0x9353,0x9354,0x9355,0xB9E7,0x9356,0x9357, +0xB9E8,0xB9E9,0x9358,0x9359,0xB9EA,0x935A,0x9361,0x9362, +0xB9EB,0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369, +0xB9EC,0xB9ED,0x936A,0xB9EE,0xB9EF,0xB9F0,0x936B,0x936C, +0x936D,0xB9F1,0x936E,0x936F,0xB9F2,0xB9F3,0x9370,0x9371, +0xB9F4,0x9372,0x9373,0x9374,0x9375,0x9376,0x9377,0x9378, +0x9379,0x937A,0x9381,0x9382,0x9383,0xB9F5,0x9384,0x9385, +0x9386,0x9387,0x9388,0x9389,0x938A,0x938B,0x938C,0x938D, +0x938E,0x938F,0x9390,0x9391,0x9392,0x9393,0x9394,0x9395, +0x9396,0x9397,0x9398,0x9399,0x939A,0x939B,0x939C,0x939D, +0x939E,0x939F,0x93A0,0x93A1,0x93A2,0x93A3,0x93A4,0x93A5, +0x93A6,0x93A7,0x93A8,0x93A9,0xB9F6,0xB9F7,0x93AA,0x93AB, +0xB9F8,0x93AC,0x93AD,0xB9F9,0xB9FA,0x93AE,0xB9FB,0x93AF, +0x93B0,0x93B1,0x93B2,0x93B3,0xB9FC,0xB9FD,0x93B4,0xB9FE, +0x93B5,0xBAA1,0xBAA2,0x93B6,0x93B7,0x93B8,0x93B9,0x93BA, +0xBAA3,0xBAA4,0x93BB,0x93BC,0xBAA5,0x93BD,0x93BE,0xBAA6, +0xBAA7,0x93BF,0x93C0,0x93C1,0x93C2,0x93C3,0x93C4,0x93C5, +0xBAA8,0xBAA9,0x93C6,0xBAAA,0xBAAB,0xBAAC,0x93C7,0x93C8, +0x93C9,0x93CA,0x93CB,0x93CC,0xBAAD,0xBAAE,0x93CD,0x93CE, +0xBAAF,0x93CF,0x93D0,0x93D1,0xBAB0,0x93D2,0x93D3,0x93D4, +0x93D5,0x93D6,0x93D7,0x93D8,0x93D9,0xBAB1,0x93DA,0xBAB2, +0xBAB3,0xBAB4,0x93DB,0x93DC,0x93DD,0xBAB5,0x93DE,0x93DF, +0xBAB6,0x93E0,0x93E1,0x93E2,0xBAB7,0x93E3,0x93E4,0x93E5, +0x93E6,0x93E7,0x93E8,0x93E9,0x93EA,0x93EB,0x93EC,0x93ED, +0x93EE,0x93EF,0x93F0,0x93F1,0x93F2,0x93F3,0x93F4,0x93F5, +0x93F6,0x93F7,0x93F8,0x93F9,0xBAB8,0xBAB9,0xBABA,0x93FA, +0xBABB,0x93FB,0x93FC,0x93FD,0xBABC,0x93FE,0x9441,0x9442, +0x9443,0x9444,0x9445,0x9446,0xBABD,0xBABE,0x9447,0xBABF, +0x9448,0xBAC0,0x9449,0x944A,0x944B,0x944C,0x944D,0x944E, +0xBAC1,0x944F,0x9450,0x9451,0xBAC2,0x9452,0x9453,0x9454, +0x9455,0x9456,0x9457,0x9458,0x9459,0x945A,0x9461,0x9462, +0x9463,0x9464,0x9465,0x9466,0xBAC3,0x9467,0x9468,0x9469, +0x946A,0x946B,0x946C,0x946D,0xBAC4,0x946E,0x946F,0x9470, +0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,0x9477,0x9478, +0x9479,0x947A,0x9481,0x9482,0x9483,0x9484,0x9485,0x9486, +0xBAC5,0x9487,0x9488,0x9489,0x948A,0x948B,0x948C,0x948D, +0xBAC6,0xBAC7,0x948E,0x948F,0xBAC8,0x9490,0x9491,0x9492, +0xBAC9,0x9493,0x9494,0x9495,0x9496,0x9497,0x9498,0x9499, +0xBACA,0xBACB,0x949A,0x949B,0x949C,0x949D,0x949E,0x949F, +0x94A0,0x94A1,0x94A2,0x94A3,0xBACC,0x94A4,0x94A5,0x94A6, +0xBACD,0x94A7,0x94A8,0x94A9,0x94AA,0x94AB,0x94AC,0x94AD, +0x94AE,0x94AF,0x94B0,0x94B1,0x94B2,0x94B3,0x94B4,0x94B5, +0x94B6,0x94B7,0x94B8,0x94B9,0x94BA,0x94BB,0x94BC,0x94BD, +0xBACE,0xBACF,0x94BE,0x94BF,0xBAD0,0x94C0,0x94C1,0xBAD1, +0xBAD2,0xBAD3,0xBAD4,0x94C2,0x94C3,0x94C4,0x94C5,0x94C6, +0xBAD5,0xBAD6,0x94C7,0xBAD7,0x94C8,0xBAD8,0x94C9,0x94CA, +0x94CB,0xBAD9,0xBADA,0x94CC,0xBADB,0x94CD,0x94CE,0x94CF, +0x94D0,0x94D1,0x94D2,0x94D3,0xBADC,0x94D4,0x94D5,0x94D6, +0x94D7,0x94D8,0x94D9,0x94DA,0x94DB,0x94DC,0x94DD,0x94DE, +0xBADD,0x94DF,0x94E0,0x94E1,0x94E2,0x94E3,0x94E4,0x94E5, +0xBADE,0x94E6,0x94E7,0x94E8,0x94E9,0x94EA,0x94EB,0x94EC, +0x94ED,0x94EE,0x94EF,0x94F0,0x94F1,0x94F2,0x94F3,0x94F4, +0x94F5,0x94F6,0x94F7,0x94F8,0x94F9,0x94FA,0x94FB,0x94FC, +0x94FD,0x94FE,0x9541,0x9542,0xBADF,0xBAE0,0x9543,0x9544, +0xBAE1,0x9545,0x9546,0x9547,0xBAE2,0x9548,0x9549,0x954A, +0x954B,0x954C,0x954D,0x954E,0x954F,0x9550,0x9551,0x9552, +0x9553,0xBAE3,0x9554,0x9555,0x9556,0x9557,0x9558,0x9559, +0xBAE4,0x955A,0x9561,0x9562,0xBAE5,0x9563,0x9564,0x9565, +0xBAE6,0x9566,0x9567,0x9568,0x9569,0x956A,0x956B,0x956C, +0xBAE7,0x956D,0x956E,0xBAE8,0x956F,0xBAE9,0x9570,0x9571, +0x9572,0x9573,0x9574,0x9575,0xBAEA,0xBAEB,0x9576,0x9577, +0xBAEC,0x9578,0x9579,0x957A,0xBAED,0x9581,0x9582,0x9583, +0x9584,0x9585,0x9586,0x9587,0xBAEE,0xBAEF,0x9588,0xBAF0, +0x9589,0x958A,0x958B,0x958C,0x958D,0x958E,0x958F,0x9590, +0x9591,0x9592,0x9593,0x9594,0x9595,0x9596,0x9597,0x9598, +0x9599,0x959A,0x959B,0x959C,0x959D,0x959E,0x959F,0x95A0, +0x95A1,0x95A2,0x95A3,0x95A4,0x95A5,0x95A6,0x95A7,0x95A8, +0x95A9,0x95AA,0x95AB,0x95AC,0xBAF1,0xBAF2,0x95AD,0x95AE, +0xBAF3,0x95AF,0x95B0,0x95B1,0xBAF4,0x95B2,0xBAF5,0x95B3, +0x95B4,0x95B5,0x95B6,0x95B7,0xBAF6,0xBAF7,0x95B8,0xBAF8, +0x95B9,0xBAF9,0xBAFA,0xBAFB,0x95BA,0x95BB,0x95BC,0x95BD, +0xBAFC,0xBAFD,0x95BE,0x95BF,0xBAFE,0x95C0,0x95C1,0x95C2, +0xBBA1,0x95C3,0xBBA2,0x95C4,0x95C5,0x95C6,0x95C7,0x95C8, +0xBBA3,0xBBA4,0x95C9,0xBBA5,0xBBA6,0xBBA7,0x95CA,0x95CB, +0x95CC,0x95CD,0x95CE,0xBBA8,0xBBA9,0xBBAA,0x95CF,0x95D0, +0xBBAB,0x95D1,0x95D2,0x95D3,0xBBAC,0x95D4,0x95D5,0x95D6, +0x95D7,0x95D8,0x95D9,0x95DA,0xBBAD,0xBBAE,0x95DB,0xBBAF, +0xBBB0,0xBBB1,0x95DC,0x95DD,0x95DE,0x95DF,0x95E0,0x95E1, +0xBBB2,0xBBB3,0x95E2,0x95E3,0x95E4,0x95E5,0x95E6,0x95E7, +0x95E8,0x95E9,0x95EA,0x95EB,0x95EC,0x95ED,0x95EE,0x95EF, +0xBBB4,0x95F0,0x95F1,0x95F2,0x95F3,0x95F4,0x95F5,0x95F6, +0x95F7,0x95F8,0x95F9,0x95FA,0x95FB,0x95FC,0x95FD,0x95FE, +0x9641,0x9642,0x9643,0x9644,0x9645,0x9646,0x9647,0x9648, +0x9649,0x964A,0x964B,0x964C,0x964D,0x964E,0x964F,0x9650, +0x9651,0x9652,0x9653,0x9654,0x9655,0x9656,0x9657,0x9658, +0xBBB5,0xBBB6,0x9659,0x965A,0xBBB7,0x9661,0x9662,0xBBB8, +0xBBB9,0x9663,0x9664,0x9665,0x9666,0x9667,0x9668,0x9669, +0xBBBA,0x966A,0x966B,0xBBBB,0xBBBC,0xBBBD,0x966C,0x966D, +0x966E,0x966F,0x9670,0x9671,0xBBBE,0x9672,0x9673,0x9674, +0x9675,0x9676,0x9677,0x9678,0x9679,0x967A,0x9681,0x9682, +0x9683,0x9684,0x9685,0x9686,0x9687,0x9688,0x9689,0x968A, +0x968B,0xBBBF,0x968C,0x968D,0x968E,0x968F,0x9690,0x9691, +0xBBC0,0xBBC1,0x9692,0x9693,0x9694,0x9695,0x9696,0x9697, +0x9698,0x9699,0x969A,0x969B,0x969C,0x969D,0x969E,0x969F, +0xBBC2,0xBBC3,0x96A0,0xBBC4,0xBBC5,0xBBC6,0x96A1,0x96A2, +0x96A3,0x96A4,0x96A5,0x96A6,0x96A7,0x96A8,0x96A9,0x96AA, +0x96AB,0x96AC,0x96AD,0x96AE,0x96AF,0x96B0,0x96B1,0x96B2, +0x96B3,0x96B4,0x96B5,0x96B6,0x96B7,0x96B8,0x96B9,0x96BA, +0x96BB,0x96BC,0x96BD,0x96BE,0x96BF,0x96C0,0x96C1,0x96C2, +0xBBC7,0xBBC8,0x96C3,0x96C4,0xBBC9,0x96C5,0x96C6,0x96C7, +0xBBCA,0x96C8,0x96C9,0x96CA,0x96CB,0x96CC,0x96CD,0x96CE, +0xBBCB,0xBBCC,0x96CF,0x96D0,0x96D1,0xBBCD,0x96D2,0x96D3, +0x96D4,0x96D5,0x96D6,0x96D7,0x96D8,0x96D9,0x96DA,0x96DB, +0x96DC,0x96DD,0x96DE,0x96DF,0x96E0,0x96E1,0x96E2,0x96E3, +0x96E4,0x96E5,0x96E6,0x96E7,0x96E8,0x96E9,0x96EA,0x96EB, +0x96EC,0x96ED,0x96EE,0x96EF,0x96F0,0x96F1,0x96F2,0x96F3, +0x96F4,0x96F5,0x96F6,0x96F7,0x96F8,0x96F9,0x96FA,0x96FB, +0x96FC,0x96FD,0x96FE,0x9741,0x9742,0x9743,0x9744,0x9745, +0x9746,0x9747,0x9748,0x9749,0x974A,0x974B,0x974C,0x974D, +0x974E,0x974F,0x9750,0x9751,0xBBCE,0x9752,0x9753,0x9754, +0x9755,0x9756,0x9757,0x9758,0x9759,0x975A,0x9761,0x9762, +0x9763,0x9764,0x9765,0x9766,0x9767,0x9768,0x9769,0x976A, +0x976B,0x976C,0x976D,0x976E,0x976F,0x9770,0x9771,0x9772, +0xBBCF,0x9773,0x9774,0x9775,0x9776,0x9777,0x9778,0x9779, +0x977A,0x9781,0x9782,0x9783,0x9784,0x9785,0x9786,0x9787, +0x9788,0x9789,0x978A,0x978B,0x978C,0xBBD0,0x978D,0x978E, +0x978F,0x9790,0x9791,0x9792,0xBBD1,0xBBD2,0x9793,0x9794, +0xBBD3,0x9795,0x9796,0x9797,0xBBD4,0x9798,0x9799,0x979A, +0x979B,0x979C,0x979D,0x979E,0xBBD5,0x979F,0x97A0,0xBBD6, +0x97A1,0xBBD7,0x97A2,0x97A3,0x97A4,0x97A5,0x97A6,0x97A7, +0x97A8,0x97A9,0x97AA,0x97AB,0x97AC,0x97AD,0x97AE,0x97AF, +0x97B0,0x97B1,0x97B2,0x97B3,0x97B4,0x97B5,0x97B6,0x97B7, +0x97B8,0x97B9,0x97BA,0x97BB,0x97BC,0x97BD,0x97BE,0x97BF, +0x97C0,0x97C1,0x97C2,0x97C3,0x97C4,0x97C5,0x97C6,0x97C7, +0x97C8,0x97C9,0x97CA,0x97CB,0x97CC,0x97CD,0x97CE,0x97CF, +0x97D0,0x97D1,0x97D2,0x97D3,0x97D4,0x97D5,0x97D6,0x97D7, +0x97D8,0x97D9,0x97DA,0x97DB,0x97DC,0x97DD,0x97DE,0x97DF, +0x97E0,0x97E1,0x97E2,0x97E3,0x97E4,0x97E5,0x97E6,0x97E7, +0x97E8,0x97E9,0x97EA,0x97EB,0x97EC,0x97ED,0x97EE,0x97EF, +0x97F0,0x97F1,0x97F2,0x97F3,0x97F4,0x97F5,0x97F6,0x97F7, +0x97F8,0x97F9,0x97FA,0x97FB,0xBBD8,0x97FC,0x97FD,0x97FE, +0x9841,0x9842,0x9843,0x9844,0x9845,0x9846,0x9847,0x9848, +0x9849,0x984A,0x984B,0x984C,0x984D,0x984E,0x984F,0x9850, +0x9851,0xBBD9,0x9852,0x9853,0x9854,0x9855,0x9856,0x9857, +0xBBDA,0x9858,0x9859,0x985A,0xBBDB,0x9861,0x9862,0x9863, +0xBBDC,0x9864,0x9865,0x9866,0x9867,0x9868,0x9869,0x986A, +0xBBDD,0xBBDE,0x986B,0x986C,0x986D,0x986E,0x986F,0x9870, +0x9871,0x9872,0x9873,0x9874,0x9875,0x9876,0x9877,0x9878, +0x9879,0x987A,0x9881,0x9882,0x9883,0x9884,0x9885,0x9886, +0x9887,0x9888,0x9889,0x988A,0x988B,0x988C,0x988D,0x988E, +0x988F,0x9890,0x9891,0x9892,0x9893,0x9894,0x9895,0x9896, +0xBBDF,0xBBE0,0x9897,0x9898,0xBBE1,0x9899,0x989A,0x989B, +0xBBE2,0x989C,0x989D,0x989E,0x989F,0x98A0,0x98A1,0x98A2, +0xBBE3,0xBBE4,0x98A3,0xBBE5,0x98A4,0xBBE6,0x98A5,0x98A6, +0x98A7,0x98A8,0x98A9,0x98AA,0xBBE7,0xBBE8,0x98AB,0xBBE9, +0xBBEA,0x98AC,0x98AD,0xBBEB,0xBBEC,0xBBED,0xBBEE,0x98AE, +0x98AF,0x98B0,0x98B1,0x98B2,0xBBEF,0xBBF0,0x98B3,0xBBF1, +0xBBF2,0xBBF3,0x98B4,0x98B5,0x98B6,0xBBF4,0x98B7,0x98B8, +0xBBF5,0xBBF6,0x98B9,0x98BA,0xBBF7,0x98BB,0x98BC,0x98BD, +0xBBF8,0x98BE,0x98BF,0x98C0,0x98C1,0x98C2,0x98C3,0x98C4, +0xBBF9,0xBBFA,0x98C5,0xBBFB,0xBBFC,0xBBFD,0x98C6,0x98C7, +0x98C8,0x98C9,0x98CA,0x98CB,0xBBFE,0xBCA1,0x98CC,0x98CD, +0xBCA2,0x98CE,0x98CF,0x98D0,0xBCA3,0x98D1,0x98D2,0x98D3, +0x98D4,0x98D5,0x98D6,0x98D7,0xBCA4,0xBCA5,0x98D8,0xBCA6, +0x98D9,0xBCA7,0x98DA,0x98DB,0x98DC,0x98DD,0x98DE,0x98DF, +0xBCA8,0x98E0,0x98E1,0x98E2,0xBCA9,0x98E3,0x98E4,0x98E5, +0xBCAA,0x98E6,0x98E7,0x98E8,0x98E9,0x98EA,0x98EB,0x98EC, +0xBCAB,0x98ED,0x98EE,0x98EF,0x98F0,0xBCAC,0x98F1,0x98F2, +0x98F3,0x98F4,0x98F5,0x98F6,0xBCAD,0xBCAE,0xBCAF,0xBCB0, +0xBCB1,0x98F7,0x98F8,0xBCB2,0xBCB3,0x98F9,0xBCB4,0xBCB5, +0x98FA,0x98FB,0x98FC,0x98FD,0xBCB6,0xBCB7,0x98FE,0xBCB8, +0xBCB9,0xBCBA,0x9941,0x9942,0x9943,0x9944,0xBCBB,0x9945, +0xBCBC,0xBCBD,0x9946,0x9947,0xBCBE,0x9948,0x9949,0x994A, +0xBCBF,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,0x9951, +0xBCC0,0xBCC1,0x9952,0xBCC2,0xBCC3,0xBCC4,0x9953,0x9954, +0x9955,0x9956,0x9957,0x9958,0xBCC5,0xBCC6,0x9959,0x995A, +0xBCC7,0x9961,0x9962,0x9963,0xBCC8,0x9964,0x9965,0x9966, +0x9967,0x9968,0x9969,0x996A,0xBCC9,0xBCCA,0x996B,0xBCCB, +0xBCCC,0xBCCD,0x996C,0x996D,0x996E,0x996F,0x9970,0x9971, +0xBCCE,0x9972,0x9973,0x9974,0xBCCF,0x9975,0x9976,0x9977, +0xBCD0,0x9978,0x9979,0x997A,0x9981,0x9982,0x9983,0x9984, +0x9985,0x9986,0x9987,0x9988,0x9989,0xBCD1,0x998A,0x998B, +0x998C,0x998D,0x998E,0x998F,0xBCD2,0xBCD3,0xBCD4,0x9990, +0xBCD5,0x9991,0x9992,0x9993,0xBCD6,0x9994,0xBCD7,0x9995, +0x9996,0x9997,0x9998,0x9999,0xBCD8,0xBCD9,0x999A,0xBCDA, +0x999B,0xBCDB,0x999C,0x999D,0x999E,0xBCDC,0x999F,0x99A0, +0xBCDD,0xBCDE,0x99A1,0x99A2,0xBCDF,0x99A3,0x99A4,0x99A5, +0xBCE0,0x99A6,0x99A7,0x99A8,0x99A9,0x99AA,0x99AB,0x99AC, +0x99AD,0x99AE,0x99AF,0x99B0,0x99B1,0xBCE1,0x99B2,0x99B3, +0x99B4,0x99B5,0x99B6,0x99B7,0xBCE2,0x99B8,0x99B9,0x99BA, +0xBCE3,0x99BB,0x99BC,0x99BD,0xBCE4,0x99BE,0x99BF,0x99C0, +0x99C1,0x99C2,0x99C3,0x99C4,0xBCE5,0x99C5,0x99C6,0xBCE6, +0xBCE7,0x99C7,0x99C8,0x99C9,0x99CA,0x99CB,0x99CC,0x99CD, +0xBCE8,0x99CE,0x99CF,0x99D0,0xBCE9,0x99D1,0x99D2,0x99D3, +0xBCEA,0x99D4,0x99D5,0x99D6,0x99D7,0x99D8,0x99D9,0x99DA, +0xBCEB,0xBCEC,0x99DB,0xBCED,0x99DC,0x99DD,0x99DE,0x99DF, +0x99E0,0x99E1,0x99E2,0x99E3,0xBCEE,0xBCEF,0x99E4,0x99E5, +0xBCF0,0x99E6,0x99E7,0x99E8,0xBCF1,0x99E9,0x99EA,0x99EB, +0x99EC,0x99ED,0x99EE,0x99EF,0xBCF2,0xBCF3,0x99F0,0xBCF4, +0x99F1,0xBCF5,0x99F2,0x99F3,0x99F4,0x99F5,0x99F6,0x99F7, +0xBCF6,0xBCF7,0x99F8,0x99F9,0xBCF8,0x99FA,0x99FB,0xBCF9, +0xBCFA,0x99FC,0x99FD,0x99FE,0x9A41,0x9A42,0x9A43,0x9A44, +0xBCFB,0xBCFC,0x9A45,0xBCFD,0x9A46,0xBCFE,0x9A47,0xBDA1, +0x9A48,0xBDA2,0xBDA3,0x9A49,0xBDA4,0x9A4A,0x9A4B,0x9A4C, +0x9A4D,0x9A4E,0x9A4F,0x9A50,0x9A51,0x9A52,0x9A53,0x9A54, +0x9A55,0x9A56,0x9A57,0x9A58,0x9A59,0x9A5A,0x9A61,0x9A62, +0xBDA5,0x9A63,0x9A64,0x9A65,0x9A66,0x9A67,0x9A68,0x9A69, +0xBDA6,0xBDA7,0x9A6A,0x9A6B,0xBDA8,0x9A6C,0x9A6D,0x9A6E, +0xBDA9,0x9A6F,0x9A70,0x9A71,0x9A72,0x9A73,0x9A74,0x9A75, +0xBDAA,0x9A76,0x9A77,0x9A78,0x9A79,0xBDAB,0x9A7A,0x9A81, +0x9A82,0x9A83,0x9A84,0x9A85,0xBDAC,0xBDAD,0x9A86,0x9A87, +0xBDAE,0x9A88,0x9A89,0x9A8A,0xBDAF,0x9A8B,0x9A8C,0x9A8D, +0x9A8E,0x9A8F,0x9A90,0x9A91,0xBDB0,0xBDB1,0x9A92,0xBDB2, +0x9A93,0xBDB3,0x9A94,0x9A95,0x9A96,0x9A97,0x9A98,0x9A99, +0xBDB4,0xBDB5,0x9A9A,0x9A9B,0x9A9C,0x9A9D,0x9A9E,0x9A9F, +0xBDB6,0x9AA0,0x9AA1,0x9AA2,0x9AA3,0x9AA4,0x9AA5,0x9AA6, +0xBDB7,0x9AA7,0x9AA8,0xBDB8,0x9AA9,0xBDB9,0x9AAA,0x9AAB, +0x9AAC,0x9AAD,0x9AAE,0x9AAF,0xBDBA,0xBDBB,0x9AB0,0x9AB1, +0xBDBC,0x9AB2,0x9AB3,0x9AB4,0xBDBD,0xBDBE,0x9AB5,0x9AB6, +0x9AB7,0x9AB8,0x9AB9,0x9ABA,0xBDBF,0xBDC0,0x9ABB,0xBDC1, +0x9ABC,0xBDC2,0x9ABD,0x9ABE,0x9ABF,0x9AC0,0x9AC1,0x9AC2, +0x9AC3,0x9AC4,0x9AC5,0x9AC6,0x9AC7,0x9AC8,0x9AC9,0x9ACA, +0x9ACB,0x9ACC,0x9ACD,0x9ACE,0x9ACF,0x9AD0,0x9AD1,0x9AD2, +0x9AD3,0x9AD4,0x9AD5,0x9AD6,0x9AD7,0x9AD8,0x9AD9,0x9ADA, +0x9ADB,0x9ADC,0x9ADD,0x9ADE,0xBDC3,0xBDC4,0x9ADF,0x9AE0, +0xBDC5,0x9AE1,0x9AE2,0xBDC6,0xBDC7,0x9AE3,0x9AE4,0x9AE5, +0x9AE6,0x9AE7,0x9AE8,0xBDC8,0xBDC9,0xBDCA,0x9AE9,0xBDCB, +0x9AEA,0xBDCC,0x9AEB,0x9AEC,0x9AED,0x9AEE,0xBDCD,0x9AEF, +0xBDCE,0xBDCF,0x9AF0,0xBDD0,0xBDD1,0x9AF1,0x9AF2,0x9AF3, +0xBDD2,0x9AF4,0x9AF5,0x9AF6,0x9AF7,0x9AF8,0x9AF9,0x9AFA, +0xBDD3,0xBDD4,0x9AFB,0x9AFC,0xBDD5,0xBDD6,0x9AFD,0x9AFE, +0x9B41,0x9B42,0x9B43,0xBDD7,0xBDD8,0xBDD9,0x9B44,0x9B45, +0xBDDA,0x9B46,0x9B47,0x9B48,0xBDDB,0x9B49,0x9B4A,0x9B4B, +0x9B4C,0x9B4D,0x9B4E,0x9B4F,0xBDDC,0xBDDD,0x9B50,0x9B51, +0xBDDE,0xBDDF,0x9B52,0x9B53,0x9B54,0x9B55,0x9B56,0x9B57, +0x9B58,0x9B59,0x9B5A,0x9B61,0x9B62,0x9B63,0x9B64,0x9B65, +0x9B66,0x9B67,0x9B68,0x9B69,0x9B6A,0x9B6B,0x9B6C,0x9B6D, +0x9B6E,0x9B6F,0x9B70,0x9B71,0x9B72,0xBDE0,0x9B73,0x9B74, +0x9B75,0x9B76,0x9B77,0x9B78,0x9B79,0x9B7A,0x9B81,0x9B82, +0x9B83,0x9B84,0x9B85,0x9B86,0x9B87,0x9B88,0x9B89,0x9B8A, +0x9B8B,0x9B8C,0x9B8D,0x9B8E,0x9B8F,0x9B90,0x9B91,0x9B92, +0x9B93,0x9B94,0x9B95,0x9B96,0x9B97,0x9B98,0x9B99,0x9B9A, +0xBDE1,0xBDE2,0x9B9B,0x9B9C,0xBDE3,0x9B9D,0x9B9E,0x9B9F, +0xBDE4,0x9BA0,0xBDE5,0x9BA1,0x9BA2,0x9BA3,0x9BA4,0x9BA5, +0xBDE6,0xBDE7,0x9BA6,0x9BA7,0xBDE8,0xBDE9,0x9BA8,0x9BA9, +0x9BAA,0x9BAB,0x9BAC,0x9BAD,0xBDEA,0x9BAE,0x9BAF,0x9BB0, +0xBDEB,0x9BB1,0x9BB2,0x9BB3,0xBDEC,0x9BB4,0x9BB5,0x9BB6, +0x9BB7,0x9BB8,0x9BB9,0x9BBA,0x9BBB,0x9BBC,0x9BBD,0x9BBE, +0x9BBF,0x9BC0,0x9BC1,0x9BC2,0x9BC3,0x9BC4,0x9BC5,0x9BC6, +0x9BC7,0x9BC8,0x9BC9,0x9BCA,0x9BCB,0x9BCC,0x9BCD,0x9BCE, +0x9BCF,0x9BD0,0x9BD1,0x9BD2,0x9BD3,0x9BD4,0x9BD5,0x9BD6, +0x9BD7,0x9BD8,0x9BD9,0x9BDA,0x9BDB,0x9BDC,0x9BDD,0x9BDE, +0x9BDF,0x9BE0,0x9BE1,0x9BE2,0x9BE3,0x9BE4,0x9BE5,0x9BE6, +0xBDED,0x9BE7,0x9BE8,0x9BE9,0x9BEA,0x9BEB,0x9BEC,0x9BED, +0x9BEE,0x9BEF,0x9BF0,0x9BF1,0x9BF2,0x9BF3,0x9BF4,0x9BF5, +0x9BF6,0x9BF7,0x9BF8,0x9BF9,0x9BFA,0x9BFB,0x9BFC,0x9BFD, +0xBDEE,0xBDEF,0x9BFE,0x9C41,0xBDF0,0x9C42,0x9C43,0xBDF1, +0xBDF2,0x9C44,0xBDF3,0x9C45,0x9C46,0x9C47,0x9C48,0x9C49, +0xBDF4,0xBDF5,0x9C4A,0x9C4B,0x9C4C,0xBDF6,0x9C4D,0x9C4E, +0x9C4F,0x9C50,0x9C51,0x9C52,0xBDF7,0xBDF8,0x9C53,0x9C54, +0xBDF9,0x9C55,0x9C56,0x9C57,0x9C58,0x9C59,0x9C5A,0x9C61, +0x9C62,0x9C63,0x9C64,0x9C65,0x9C66,0x9C67,0x9C68,0x9C69, +0xBDFA,0x9C6A,0x9C6B,0x9C6C,0x9C6D,0x9C6E,0x9C6F,0x9C70, +0xBDFB,0x9C71,0x9C72,0x9C73,0x9C74,0x9C75,0x9C76,0x9C77, +0x9C78,0x9C79,0x9C7A,0x9C81,0x9C82,0x9C83,0x9C84,0x9C85, +0x9C86,0x9C87,0x9C88,0x9C89,0xBDFC,0x9C8A,0x9C8B,0x9C8C, +0x9C8D,0x9C8E,0x9C8F,0x9C90,0xBDFD,0x9C91,0x9C92,0x9C93, +0xBDFE,0x9C94,0x9C95,0x9C96,0xBEA1,0x9C97,0x9C98,0x9C99, +0x9C9A,0x9C9B,0x9C9C,0x9C9D,0xBEA2,0xBEA3,0x9C9E,0x9C9F, +0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA4,0x9CA5,0x9CA6,0x9CA7, +0xBEA4,0x9CA8,0x9CA9,0x9CAA,0x9CAB,0x9CAC,0x9CAD,0x9CAE, +0x9CAF,0x9CB0,0x9CB1,0x9CB2,0x9CB3,0x9CB4,0x9CB5,0x9CB6, +0x9CB7,0x9CB8,0x9CB9,0x9CBA,0x9CBB,0x9CBC,0x9CBD,0x9CBE, +0x9CBF,0x9CC0,0x9CC1,0x9CC2,0xBEA5,0xBEA6,0x9CC3,0x9CC4, +0xBEA7,0x9CC5,0x9CC6,0x9CC7,0xBEA8,0x9CC8,0x9CC9,0x9CCA, +0x9CCB,0x9CCC,0x9CCD,0x9CCE,0xBEA9,0xBEAA,0x9CCF,0x9CD0, +0x9CD1,0xBEAB,0x9CD2,0x9CD3,0x9CD4,0x9CD5,0x9CD6,0x9CD7, +0xBEAC,0x9CD8,0x9CD9,0x9CDA,0x9CDB,0x9CDC,0x9CDD,0x9CDE, +0x9CDF,0x9CE0,0x9CE1,0x9CE2,0x9CE3,0x9CE4,0x9CE5,0x9CE6, +0x9CE7,0x9CE8,0x9CE9,0x9CEA,0xBEAD,0x9CEB,0x9CEC,0x9CED, +0x9CEE,0x9CEF,0x9CF0,0x9CF1,0xBEAE,0x9CF2,0x9CF3,0x9CF4, +0x9CF5,0x9CF6,0x9CF7,0x9CF8,0x9CF9,0x9CFA,0x9CFB,0x9CFC, +0x9CFD,0x9CFE,0x9D41,0x9D42,0x9D43,0x9D44,0x9D45,0x9D46, +0x9D47,0x9D48,0x9D49,0x9D4A,0x9D4B,0x9D4C,0x9D4D,0x9D4E, +0xBEAF,0x9D4F,0x9D50,0x9D51,0xBEB0,0x9D52,0x9D53,0x9D54, +0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0x9D5A,0x9D61,0x9D62, +0x9D63,0x9D64,0x9D65,0x9D66,0x9D67,0x9D68,0x9D69,0x9D6A, +0x9D6B,0x9D6C,0x9D6D,0x9D6E,0x9D6F,0x9D70,0x9D71,0x9D72, +0x9D73,0x9D74,0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A, +0x9D81,0x9D82,0x9D83,0x9D84,0x9D85,0x9D86,0x9D87,0x9D88, +0x9D89,0xBEB1,0x9D8A,0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F, +0xBEB2,0xBEB3,0x9D90,0x9D91,0xBEB4,0x9D92,0x9D93,0x9D94, +0xBEB5,0x9D95,0xBEB6,0x9D96,0x9D97,0x9D98,0x9D99,0xBEB7, +0xBEB8,0xBEB9,0x9D9A,0x9D9B,0x9D9C,0x9D9D,0x9D9E,0x9D9F, +0x9DA0,0x9DA1,0x9DA2,0x9DA3,0xBEBA,0x9DA4,0x9DA5,0x9DA6, +0xBEBB,0x9DA7,0x9DA8,0x9DA9,0xBEBC,0x9DAA,0x9DAB,0x9DAC, +0x9DAD,0x9DAE,0x9DAF,0x9DB0,0xBEBD,0x9DB1,0x9DB2,0x9DB3, +0x9DB4,0x9DB5,0x9DB6,0x9DB7,0x9DB8,0x9DB9,0x9DBA,0x9DBB, +0xBEBE,0xBEBF,0x9DBC,0x9DBD,0xBEC0,0x9DBE,0x9DBF,0x9DC0, +0xBEC1,0x9DC1,0x9DC2,0x9DC3,0x9DC4,0x9DC5,0x9DC6,0x9DC7, +0xBEC2,0xBEC3,0x9DC8,0xBEC4,0x9DC9,0xBEC5,0x9DCA,0x9DCB, +0x9DCC,0x9DCD,0x9DCE,0x9DCF,0xBEC6,0xBEC7,0x9DD0,0x9DD1, +0xBEC8,0xBEC9,0xBECA,0x9DD2,0xBECB,0xBECC,0xBECD,0x9DD3, +0x9DD4,0x9DD5,0x9DD6,0xBECE,0xBECF,0xBED0,0x9DD7,0xBED1, +0xBED2,0xBED3,0x9DD8,0x9DD9,0x9DDA,0xBED4,0xBED5,0x9DDB, +0xBED6,0xBED7,0x9DDC,0x9DDD,0xBED8,0x9DDE,0x9DDF,0x9DE0, +0xBED9,0x9DE1,0x9DE2,0x9DE3,0x9DE4,0x9DE5,0x9DE6,0x9DE7, +0xBEDA,0xBEDB,0x9DE8,0xBEDC,0xBEDD,0xBEDE,0x9DE9,0x9DEA, +0x9DEB,0x9DEC,0x9DED,0x9DEE,0xBEDF,0xBEE0,0x9DEF,0x9DF0, +0xBEE1,0x9DF1,0x9DF2,0x9DF3,0xBEE2,0x9DF4,0x9DF5,0xBEE3, +0x9DF6,0x9DF7,0x9DF8,0x9DF9,0xBEE4,0xBEE5,0x9DFA,0xBEE6, +0x9DFB,0xBEE7,0x9DFC,0x9DFD,0x9DFE,0xBEE8,0x9E41,0xBEE9, +0xBEEA,0x9E42,0x9E43,0x9E44,0xBEEB,0x9E45,0x9E46,0x9E47, +0xBEEC,0x9E48,0x9E49,0x9E4A,0x9E4B,0x9E4C,0x9E4D,0x9E4E, +0x9E4F,0xBEED,0x9E50,0x9E51,0x9E52,0x9E53,0x9E54,0x9E55, +0x9E56,0x9E57,0x9E58,0x9E59,0xBEEE,0xBEEF,0x9E5A,0x9E61, +0xBEF0,0xBEF1,0x9E62,0xBEF2,0xBEF3,0xBEF4,0xBEF5,0x9E63, +0x9E64,0x9E65,0x9E66,0x9E67,0xBEF6,0xBEF7,0xBEF8,0xBEF9, +0xBEFA,0xBEFB,0xBEFC,0x9E68,0xBEFD,0x9E69,0xBEFE,0x9E6A, +0xBFA1,0xBFA2,0x9E6B,0x9E6C,0xBFA3,0x9E6D,0x9E6E,0x9E6F, +0xBFA4,0x9E70,0x9E71,0x9E72,0x9E73,0x9E74,0x9E75,0x9E76, +0xBFA5,0xBFA6,0x9E77,0xBFA7,0x9E78,0xBFA8,0x9E79,0x9E7A, +0x9E81,0x9E82,0x9E83,0x9E84,0xBFA9,0xBFAA,0xBFAB,0x9E85, +0xBFAC,0x9E86,0x9E87,0x9E88,0xBFAD,0x9E89,0xBFAE,0xBFAF, +0x9E8A,0x9E8B,0x9E8C,0x9E8D,0xBFB0,0xBFB1,0xBFB2,0xBFB3, +0xBFB4,0xBFB5,0x9E8E,0x9E8F,0x9E90,0xBFB6,0xBFB7,0xBFB8, +0xBFB9,0x9E91,0x9E92,0x9E93,0xBFBA,0x9E94,0x9E95,0x9E96, +0xBFBB,0x9E97,0x9E98,0x9E99,0x9E9A,0x9E9B,0x9E9C,0x9E9D, +0xBFBC,0xBFBD,0x9E9E,0xBFBE,0xBFBF,0x9E9F,0x9EA0,0x9EA1, +0x9EA2,0x9EA3,0x9EA4,0x9EA5,0xBFC0,0xBFC1,0x9EA6,0x9EA7, +0xBFC2,0x9EA8,0x9EA9,0x9EAA,0xBFC3,0xBFC4,0xBFC5,0x9EAB, +0xBFC6,0x9EAC,0x9EAD,0xBFC7,0xBFC8,0xBFC9,0x9EAE,0xBFCA, +0x9EAF,0xBFCB,0x9EB0,0xBFCC,0x9EB1,0x9EB2,0x9EB3,0x9EB4, +0xBFCD,0xBFCE,0x9EB5,0x9EB6,0xBFCF,0x9EB7,0x9EB8,0x9EB9, +0xBFD0,0x9EBA,0x9EBB,0x9EBC,0x9EBD,0x9EBE,0x9EBF,0x9EC0, +0xBFD1,0xBFD2,0x9EC1,0xBFD3,0xBFD4,0xBFD5,0x9EC2,0x9EC3, +0x9EC4,0x9EC5,0x9EC6,0x9EC7,0xBFD6,0xBFD7,0x9EC8,0x9EC9, +0xBFD8,0x9ECA,0x9ECB,0x9ECC,0x9ECD,0x9ECE,0x9ECF,0x9ED0, +0x9ED1,0x9ED2,0x9ED3,0x9ED4,0xBFD9,0x9ED5,0x9ED6,0xBFDA, +0x9ED7,0xBFDB,0x9ED8,0x9ED9,0x9EDA,0x9EDB,0x9EDC,0x9EDD, +0xBFDC,0xBFDD,0x9EDE,0x9EDF,0xBFDE,0x9EE0,0x9EE1,0x9EE2, +0xBFDF,0x9EE3,0x9EE4,0x9EE5,0x9EE6,0x9EE7,0x9EE8,0x9EE9, +0xBFE0,0xBFE1,0x9EEA,0xBFE2,0x9EEB,0xBFE3,0x9EEC,0x9EED, +0x9EEE,0x9EEF,0x9EF0,0x9EF1,0xBFE4,0xBFE5,0x9EF2,0x9EF3, +0xBFE6,0x9EF4,0x9EF5,0x9EF6,0xBFE7,0x9EF7,0x9EF8,0x9EF9, +0x9EFA,0x9EFB,0x9EFC,0x9EFD,0xBFE8,0xBFE9,0x9EFE,0xBFEA, +0x9F41,0xBFEB,0x9F42,0x9F43,0x9F44,0x9F45,0x9F46,0x9F47, +0xBFEC,0xBFED,0x9F48,0x9F49,0xBFEE,0x9F4A,0x9F4B,0x9F4C, +0xBFEF,0xBFF0,0xBFF1,0x9F4D,0x9F4E,0x9F4F,0x9F50,0x9F51, +0xBFF2,0xBFF3,0x9F52,0xBFF4,0x9F53,0xBFF5,0x9F54,0x9F55, +0x9F56,0x9F57,0x9F58,0x9F59,0xBFF6,0xBFF7,0x9F5A,0x9F61, +0xBFF8,0x9F62,0x9F63,0x9F64,0xBFF9,0x9F65,0x9F66,0x9F67, +0x9F68,0x9F69,0x9F6A,0x9F6B,0xBFFA,0xBFFB,0x9F6C,0x9F6D, +0xBFFC,0xBFFD,0x9F6E,0x9F6F,0x9F70,0x9F71,0x9F72,0x9F73, +0xBFFE,0xC0A1,0x9F74,0x9F75,0xC0A2,0x9F76,0x9F77,0x9F78, +0xC0A3,0x9F79,0x9F7A,0x9F81,0x9F82,0x9F83,0x9F84,0x9F85, +0xC0A4,0xC0A5,0x9F86,0x9F87,0x9F88,0xC0A6,0x9F89,0x9F8A, +0x9F8B,0x9F8C,0x9F8D,0x9F8E,0xC0A7,0xC0A8,0x9F8F,0x9F90, +0xC0A9,0x9F91,0x9F92,0x9F93,0xC0AA,0x9F94,0x9F95,0x9F96, +0x9F97,0x9F98,0x9F99,0x9F9A,0xC0AB,0xC0AC,0x9F9B,0xC0AD, +0x9F9C,0xC0AE,0x9F9D,0x9F9E,0x9F9F,0x9FA0,0x9FA1,0x9FA2, +0xC0AF,0xC0B0,0x9FA3,0x9FA4,0xC0B1,0x9FA5,0x9FA6,0x9FA7, +0xC0B2,0x9FA8,0x9FA9,0x9FAA,0x9FAB,0x9FAC,0x9FAD,0x9FAE, +0xC0B3,0xC0B4,0x9FAF,0xC0B5,0x9FB0,0xC0B6,0x9FB1,0xC0B7, +0x9FB2,0x9FB3,0x9FB4,0x9FB5,0xC0B8,0xC0B9,0x9FB6,0x9FB7, +0xC0BA,0x9FB8,0x9FB9,0x9FBA,0xC0BB,0x9FBB,0x9FBC,0x9FBD, +0x9FBE,0x9FBF,0xC0BC,0x9FC0,0xC0BD,0xC0BE,0x9FC1,0xC0BF, +0x9FC2,0xC0C0,0xC0C1,0xC0C2,0xC0C3,0xC0C4,0xC0C5,0xC0C6, +0xC0C7,0x9FC3,0x9FC4,0x9FC5,0xC0C8,0x9FC6,0x9FC7,0x9FC8, +0xC0C9,0x9FC9,0x9FCA,0x9FCB,0x9FCC,0x9FCD,0x9FCE,0x9FCF, +0xC0CA,0x9FD0,0x9FD1,0xC0CB,0x9FD2,0x9FD3,0x9FD4,0x9FD5, +0x9FD6,0x9FD7,0x9FD8,0x9FD9,0xC0CC,0xC0CD,0x9FDA,0x9FDB, +0xC0CE,0x9FDC,0x9FDD,0x9FDE,0xC0CF,0xC0D0,0xC0D1,0x9FDF, +0x9FE0,0x9FE1,0x9FE2,0xC0D2,0xC0D3,0xC0D4,0x9FE3,0xC0D5, +0xC0D6,0xC0D7,0xC0D8,0x9FE4,0x9FE5,0x9FE6,0xC0D9,0x9FE7, +0xC0DA,0xC0DB,0x9FE8,0x9FE9,0xC0DC,0x9FEA,0xC0DD,0xC0DE, +0xC0DF,0x9FEB,0xC0E0,0x9FEC,0x9FED,0x9FEE,0x9FEF,0x9FF0, +0xC0E1,0xC0E2,0x9FF1,0xC0E3,0xC0E4,0xC0E5,0xC0E6,0x9FF2, +0x9FF3,0x9FF4,0x9FF5,0x9FF6,0xC0E7,0xC0E8,0x9FF7,0x9FF8, +0xC0E9,0x9FF9,0x9FFA,0x9FFB,0xC0EA,0x9FFC,0x9FFD,0x9FFE, +0xA041,0xA042,0xA043,0xA044,0xC0EB,0xC0EC,0xA045,0xC0ED, +0xC0EE,0xC0EF,0xA046,0xA047,0xA048,0xA049,0xA04A,0xA04B, +0xC0F0,0xC0F1,0xA04C,0xA04D,0xC0F2,0xA04E,0xC0F3,0xA04F, +0xC0F4,0xA050,0xA051,0xA052,0xA053,0xA054,0xA055,0xA056, +0xC0F5,0xA057,0xA058,0xA059,0xA05A,0xC0F6,0xA061,0xA062, +0xA063,0xA064,0xA065,0xA066,0xC0F7,0xA067,0xA068,0xA069, +0xC0F8,0xA06A,0xA06B,0xA06C,0xC0F9,0xA06D,0xA06E,0xA06F, +0xA070,0xA071,0xA072,0xA073,0xA074,0xA075,0xA076,0xA077, +0xA078,0xA079,0xA07A,0xA081,0xA082,0xA083,0xA084,0xA085, +0xC0FA,0xC0FB,0xA086,0xA087,0xC0FC,0xA088,0xA089,0xA08A, +0xC0FD,0xA08B,0xC0FE,0xA08C,0xA08D,0xA08E,0xA08F,0xA090, +0xC1A1,0xC1A2,0xA091,0xC1A3,0xA092,0xC1A4,0xC1A5,0xA093, +0xA094,0xA095,0xA096,0xA097,0xC1A6,0xC1A7,0xA098,0xA099, +0xC1A8,0xA09A,0xA09B,0xA09C,0xC1A9,0xA09D,0xA09E,0xA09F, +0xA0A0,0xA0A1,0xA0A2,0xA0A3,0xC1AA,0xC1AB,0xA0A4,0xC1AC, +0xA0A5,0xC1AD,0xA0A6,0xA0A7,0xA0A8,0xA0A9,0xA0AA,0xA0AB, +0xC1AE,0xA0AC,0xA0AD,0xA0AE,0xC1AF,0xA0AF,0xA0B0,0xA0B1, +0xC1B0,0xA0B2,0xA0B3,0xA0B4,0xA0B5,0xA0B6,0xA0B7,0xA0B8, +0xC1B1,0xC1B2,0xA0B9,0xA0BA,0xC1B3,0xC1B4,0xA0BB,0xA0BC, +0xA0BD,0xA0BE,0xA0BF,0xA0C0,0xC1B5,0xA0C1,0xA0C2,0xA0C3, +0xA0C4,0xA0C5,0xA0C6,0xA0C7,0xA0C8,0xA0C9,0xA0CA,0xA0CB, +0xA0CC,0xA0CD,0xA0CE,0xA0CF,0xA0D0,0xA0D1,0xA0D2,0xA0D3, +0xA0D4,0xA0D5,0xA0D6,0xA0D7,0xA0D8,0xA0D9,0xA0DA,0xA0DB, +0xC1B6,0xC1B7,0xA0DC,0xA0DD,0xC1B8,0xA0DE,0xA0DF,0xA0E0, +0xC1B9,0xA0E1,0xC1BA,0xA0E2,0xA0E3,0xA0E4,0xA0E5,0xA0E6, +0xC1BB,0xC1BC,0xA0E7,0xC1BD,0xA0E8,0xC1BE,0xC1BF,0xC1C0, +0xA0E9,0xA0EA,0xA0EB,0xC1C1,0xC1C2,0xC1C3,0xA0EC,0xA0ED, +0xA0EE,0xA0EF,0xA0F0,0xA0F1,0xC1C4,0xA0F2,0xA0F3,0xA0F4, +0xA0F5,0xA0F6,0xA0F7,0xA0F8,0xA0F9,0xC1C5,0xA0FA,0xC1C6, +0xA0FB,0xC1C7,0xA0FC,0xA0FD,0xA0FE,0xA141,0xA142,0xA143, +0xC1C8,0xA144,0xA145,0xA146,0xA147,0xA148,0xA149,0xA14A, +0xA14B,0xA14C,0xA14D,0xA14E,0xA14F,0xA150,0xA151,0xA152, +0xA153,0xA154,0xA155,0xA156,0xC1C9,0xC1CA,0xA157,0xA158, +0xA159,0xA15A,0xA161,0xA162,0xC1CB,0xA163,0xA164,0xA165, +0xC1CC,0xA166,0xA167,0xA168,0xC1CD,0xA169,0xA16A,0xA16B, +0xA16C,0xA16D,0xA16E,0xA16F,0xC1CE,0xC1CF,0xA170,0xC1D0, +0xA171,0xC1D1,0xA172,0xA173,0xA174,0xA175,0xA176,0xA177, +0xC1D2,0xC1D3,0xA178,0xA179,0xC1D4,0xA17A,0xA181,0xA182, +0xA183,0xA184,0xA185,0xA186,0xA187,0xA188,0xA189,0xA18A, +0xA18B,0xA18C,0xA18D,0xA18E,0xA18F,0xC1D5,0xA190,0xA191, +0xA192,0xA193,0xA194,0xA195,0xC1D6,0xC1D7,0xA196,0xA197, +0xC1D8,0xA198,0xA199,0xA19A,0xC1D9,0xC1DA,0xC1DB,0xA19B, +0xA19C,0xA19D,0xA19E,0xA19F,0xC1DC,0xC1DD,0xA1A0,0xC1DE, +0xA241,0xC1DF,0xA242,0xA243,0xA244,0xA245,0xA246,0xA247, +0xC1E0,0xA248,0xA249,0xA24A,0xA24B,0xA24C,0xA24D,0xA24E, +0xA24F,0xA250,0xA251,0xA252,0xA253,0xA254,0xA255,0xA256, +0xA257,0xA258,0xA259,0xA25A,0xC1E1,0xA261,0xA262,0xA263, +0xA264,0xA265,0xA266,0xA267,0xC1E2,0xA268,0xA269,0xA26A, +0xA26B,0xA26C,0xA26D,0xA26E,0xA26F,0xA270,0xA271,0xA272, +0xA273,0xA274,0xA275,0xA276,0xA277,0xA278,0xA279,0xA27A, +0xA281,0xA282,0xA283,0xA284,0xA285,0xA286,0xA287,0xA288, +0xC1E3,0xC1E4,0xA289,0xA28A,0xC1E5,0xA28B,0xA28C,0xA28D, +0xC1E6,0xA28E,0xA28F,0xA290,0xA291,0xA292,0xA293,0xA294, +0xC1E7,0xC1E8,0xA295,0xC1E9,0xA296,0xA297,0xA298,0xA299, +0xA29A,0xA29B,0xA29C,0xA29D,0xC1EA,0xA29E,0xA29F,0xA2A0, +0xC1EB,0xA341,0xA342,0xA343,0xC1EC,0xA344,0xA345,0xA346, +0xA347,0xA348,0xA349,0xA34A,0xC1ED,0xA34B,0xA34C,0xA34D, +0xA34E,0xA34F,0xA350,0xA351,0xA352,0xA353,0xA354,0xA355, +0xC1EE,0xC1EF,0xA356,0xA357,0xC1F0,0xA358,0xA359,0xA35A, +0xC1F1,0xA361,0xA362,0xA363,0xA364,0xA365,0xA366,0xA367, +0xC1F2,0xC1F3,0xA368,0xC1F4,0xA369,0xC1F5,0xA36A,0xA36B, +0xA36C,0xA36D,0xA36E,0xA36F,0xA370,0xA371,0xA372,0xA373, +0xA374,0xA375,0xA376,0xA377,0xA378,0xA379,0xA37A,0xA381, +0xA382,0xA383,0xA384,0xA385,0xA386,0xA387,0xA388,0xA389, +0xA38A,0xA38B,0xA38C,0xA38D,0xA38E,0xA38F,0xA390,0xA391, +0xC1F6,0xC1F7,0xA392,0xA393,0xC1F8,0xA394,0xA395,0xC1F9, +0xC1FA,0xA396,0xC1FB,0xA397,0xA398,0xA399,0xA39A,0xA39B, +0xC1FC,0xC1FD,0xA39C,0xC1FE,0xA39D,0xC2A1,0xC2A2,0xA39E, +0xA39F,0xC2A3,0xC2A4,0xA3A0,0xC2A5,0xC2A6,0xA441,0xA442, +0xC2A7,0xA443,0xC2A8,0xA444,0xC2A9,0xA445,0xA446,0xC2AA, +0xA447,0xA448,0xA449,0xA44A,0xC2AB,0xC2AC,0xA44B,0xC2AD, +0xC2AE,0xC2AF,0xA44C,0xA44D,0xA44E,0xA44F,0xA450,0xA451, +0xC2B0,0xC2B1,0xA452,0xA453,0xC2B2,0xA454,0xA455,0xA456, +0xC2B3,0xA457,0xA458,0xA459,0xA45A,0xA461,0xA462,0xA463, +0xC2B4,0xC2B5,0xA464,0xC2B6,0xC2B7,0xC2B8,0xA465,0xA466, +0xA467,0xA468,0xA469,0xA46A,0xC2B9,0xA46B,0xA46C,0xA46D, +0xC2BA,0xA46E,0xA46F,0xA470,0xA471,0xA472,0xA473,0xA474, +0xA475,0xA476,0xA477,0xA478,0xA479,0xA47A,0xA481,0xA482, +0xA483,0xC2BB,0xA484,0xA485,0xA486,0xA487,0xA488,0xA489, +0xA48A,0xA48B,0xA48C,0xA48D,0xA48E,0xA48F,0xA490,0xA491, +0xA492,0xA493,0xA494,0xA495,0xA496,0xA497,0xA498,0xA499, +0xA49A,0xA49B,0xA49C,0xA49D,0xA49E,0xA49F,0xA4A0,0xA541, +0xA542,0xA543,0xA544,0xA545,0xC2BC,0xC2BD,0xA546,0xA547, +0xC2BE,0xA548,0xA549,0xA54A,0xC2BF,0xA54B,0xA54C,0xA54D, +0xA54E,0xA54F,0xA550,0xA551,0xC2C0,0xC2C1,0xA552,0xC2C2, +0xC2C3,0xC2C4,0xA553,0xA554,0xA555,0xA556,0xA557,0xA558, +0xC2C5,0xA559,0xA55A,0xA561,0xA562,0xA563,0xA564,0xA565, +0xA566,0xA567,0xA568,0xA569,0xA56A,0xA56B,0xA56C,0xA56D, +0xA56E,0xA56F,0xA570,0xA571,0xA572,0xC2C6,0xA573,0xA574, +0xA575,0xA576,0xA577,0xA578,0xC2C7,0xA579,0xA57A,0xA581, +0xA582,0xA583,0xA584,0xA585,0xA586,0xA587,0xA588,0xA589, +0xA58A,0xA58B,0xA58C,0xA58D,0xA58E,0xA58F,0xA590,0xA591, +0xC2C8,0xA592,0xA593,0xA594,0xA595,0xA596,0xA597,0xA598, +0xA599,0xA59A,0xA59B,0xA59C,0xA59D,0xA59E,0xA59F,0xA5A0, +0xA641,0xA642,0xA643,0xA644,0xA645,0xA646,0xA647,0xA648, +0xA649,0xA64A,0xA64B,0xA64C,0xA64D,0xA64E,0xA64F,0xA650, +0xA651,0xA652,0xA653,0xA654,0xC2C9,0xC2CA,0xA655,0xA656, +0xC2CB,0xA657,0xA658,0xA659,0xC2CC,0xA65A,0xA661,0xA662, +0xA663,0xA664,0xA665,0xA666,0xC2CD,0xC2CE,0xA667,0xC2CF, +0xA668,0xC2D0,0xA669,0xC2D1,0xA66A,0xA66B,0xA66C,0xA66D, +0xC2D2,0xC2D3,0xA66E,0xA66F,0xA670,0xA671,0xA672,0xA673, +0xC2D4,0xA674,0xA675,0xA676,0xA677,0xA678,0xA679,0xA67A, +0xA681,0xA682,0xA683,0xA684,0xC2D5,0xA685,0xA686,0xA687, +0xA688,0xA689,0xA68A,0xA68B,0xC2D6,0xA68C,0xA68D,0xA68E, +0xA68F,0xA690,0xA691,0xA692,0xA693,0xA694,0xA695,0xA696, +0xA697,0xA698,0xA699,0xA69A,0xA69B,0xA69C,0xA69D,0xA69E, +0xC2D7,0xA69F,0xA6A0,0xA741,0xA742,0xA743,0xA744,0xA745, +0xC2D8,0xA746,0xA747,0xA748,0xC2D9,0xA749,0xA74A,0xA74B, +0xC2DA,0xA74C,0xA74D,0xA74E,0xA74F,0xA750,0xA751,0xA752, +0xC2DB,0xC2DC,0xA753,0xA754,0xA755,0xA756,0xA757,0xA758, +0xA759,0xA75A,0xA761,0xA762,0xA763,0xA764,0xA765,0xA766, +0xA767,0xA768,0xA769,0xA76A,0xA76B,0xA76C,0xA76D,0xA76E, +0xA76F,0xA770,0xA771,0xA772,0xA773,0xA774,0xA775,0xA776, +0xA777,0xC2DD,0xA778,0xA779,0xA77A,0xA781,0xA782,0xA783, +0xC2DE,0xC2DF,0xA784,0xA785,0xC2E0,0xA786,0xA787,0xA788, +0xC2E1,0xA789,0xA78A,0xA78B,0xA78C,0xA78D,0xA78E,0xA78F, +0xC2E2,0xC2E3,0xA790,0xA791,0xA792,0xC2E4,0xA793,0xA794, +0xA795,0xA796,0xA797,0xA798,0xC2E5,0xA799,0xA79A,0xA79B, +0xA79C,0xA79D,0xA79E,0xA79F,0xA7A0,0xA841,0xA842,0xA843, +0xA844,0xA845,0xA846,0xA847,0xA848,0xA849,0xA84A,0xA84B, +0xC2E6,0xC2E7,0xA84C,0xA84D,0xA84E,0xA84F,0xA850,0xA851, +0xA852,0xA853,0xA854,0xA855,0xA856,0xA857,0xA858,0xA859, +0xA85A,0xA861,0xA862,0xA863,0xA864,0xA865,0xA866,0xA867, +0xA868,0xA869,0xA86A,0xA86B,0xA86C,0xA86D,0xA86E,0xA86F, +0xA870,0xA871,0xA872,0xA873,0xC2E8,0xA874,0xA875,0xA876, +0xA877,0xA878,0xA879,0xA87A,0xA881,0xA882,0xA883,0xA884, +0xA885,0xA886,0xA887,0xA888,0xA889,0xA88A,0xA88B,0xA88C, +0xA88D,0xA88E,0xA88F,0xA890,0xA891,0xA892,0xA893,0xA894, +0xC2E9,0xA895,0xA896,0xA897,0xA898,0xA899,0xA89A,0xA89B, +0xA89C,0xA89D,0xA89E,0xA89F,0xA8A0,0xA941,0xA942,0xA943, +0xA944,0xA945,0xA946,0xA947,0xA948,0xA949,0xA94A,0xA94B, +0xA94C,0xA94D,0xA94E,0xA94F,0xC2EA,0xA950,0xA951,0xA952, +0xA953,0xA954,0xA955,0xA956,0xA957,0xA958,0xA959,0xA95A, +0xA961,0xA962,0xA963,0xA964,0xC2EB,0xA965,0xA966,0xC2EC, +0xA967,0xC2ED,0xA968,0xA969,0xA96A,0xA96B,0xA96C,0xA96D, +0xA96E,0xA96F,0xA970,0xA971,0xA972,0xA973,0xA974,0xA975, +0xA976,0xA977,0xA978,0xA979,0xA97A,0xA981,0xA982,0xA983, +0xA984,0xA985,0xA986,0xA987,0xA988,0xA989,0xA98A,0xA98B, +0xA98C,0xA98D,0xA98E,0xA98F,0xC2EE,0xC2EF,0xA990,0xA991, +0xC2F0,0xA992,0xA993,0xA994,0xC2F1,0xA995,0xA996,0xA997, +0xA998,0xA999,0xA99A,0xA99B,0xC2F2,0xC2F3,0xA99C,0xA99D, +0xA99E,0xC2F4,0xC2F5,0xA99F,0xA9A0,0xAA41,0xAA42,0xC2F6, +0xC2F7,0xC2F8,0xAA43,0xAA44,0xC2F9,0xAA45,0xC2FA,0xAA46, +0xC2FB,0xAA47,0xAA48,0xAA49,0xAA4A,0xAA4B,0xAA4C,0xAA4D, +0xC2FC,0xC2FD,0xAA4E,0xC2FE,0xC3A1,0xC3A2,0xC3A3,0xAA4F, +0xAA50,0xAA51,0xAA52,0xAA53,0xC3A4,0xC3A5,0xAA54,0xAA55, +0xC3A6,0xAA56,0xAA57,0xAA58,0xC3A7,0xAA59,0xAA5A,0xAA61, +0xAA62,0xAA63,0xAA64,0xAA65,0xC3A8,0xC3A9,0xAA66,0xC3AA, +0xC3AB,0xC3AC,0xAA67,0xAA68,0xAA69,0xAA6A,0xAA6B,0xAA6C, +0xC3AD,0xAA6D,0xAA6E,0xAA6F,0xC3AE,0xAA70,0xC3AF,0xAA71, +0xC3B0,0xAA72,0xAA73,0xAA74,0xAA75,0xAA76,0xAA77,0xAA78, +0xC3B1,0xAA79,0xAA7A,0xAA81,0xAA82,0xC3B2,0xAA83,0xAA84, +0xAA85,0xAA86,0xAA87,0xAA88,0xAA89,0xAA8A,0xAA8B,0xAA8C, +0xAA8D,0xAA8E,0xAA8F,0xAA90,0xAA91,0xAA92,0xAA93,0xAA94, +0xAA95,0xAA96,0xAA97,0xAA98,0xAA99,0xAA9A,0xAA9B,0xAA9C, +0xAA9D,0xAA9E,0xAA9F,0xAAA0,0xAB41,0xAB42,0xAB43,0xAB44, +0xC3B3,0xC3B4,0xAB45,0xAB46,0xC3B5,0xAB47,0xAB48,0xAB49, +0xC3B6,0xAB4A,0xAB4B,0xAB4C,0xAB4D,0xAB4E,0xAB4F,0xAB50, +0xC3B7,0xC3B8,0xAB51,0xC3B9,0xC3BA,0xC3BB,0xAB52,0xAB53, +0xAB54,0xAB55,0xAB56,0xAB57,0xC3BC,0xC3BD,0xAB58,0xAB59, +0xC3BE,0xAB5A,0xAB61,0xAB62,0xC3BF,0xAB63,0xAB64,0xAB65, +0xAB66,0xAB67,0xAB68,0xAB69,0xC3C0,0xC3C1,0xAB6A,0xC3C2, +0xAB6B,0xC3C3,0xAB6C,0xAB6D,0xAB6E,0xAB6F,0xAB70,0xAB71, +0xC3C4,0xAB72,0xAB73,0xAB74,0xC3C5,0xAB75,0xAB76,0xAB77, +0xAB78,0xAB79,0xAB7A,0xAB81,0xAB82,0xAB83,0xAB84,0xAB85, +0xAB86,0xAB87,0xAB88,0xAB89,0xC3C6,0xAB8A,0xAB8B,0xAB8C, +0xAB8D,0xAB8E,0xAB8F,0xAB90,0xC3C7,0xAB91,0xAB92,0xAB93, +0xC3C8,0xAB94,0xAB95,0xAB96,0xAB97,0xAB98,0xAB99,0xAB9A, +0xAB9B,0xAB9C,0xAB9D,0xAB9E,0xAB9F,0xABA0,0xAC41,0xAC42, +0xAC43,0xC3C9,0xAC44,0xAC45,0xAC46,0xAC47,0xAC48,0xAC49, +0xC3CA,0xC3CB,0xAC4A,0xAC4B,0xC3CC,0xAC4C,0xAC4D,0xAC4E, +0xC3CD,0xAC4F,0xAC50,0xAC51,0xAC52,0xAC53,0xAC54,0xAC55, +0xC3CE,0xC3CF,0xAC56,0xC3D0,0xAC57,0xC3D1,0xAC58,0xAC59, +0xAC5A,0xAC61,0xAC62,0xAC63,0xC3D2,0xAC64,0xAC65,0xAC66, +0xC3D3,0xAC67,0xAC68,0xAC69,0xC3D4,0xAC6A,0xAC6B,0xAC6C, +0xAC6D,0xAC6E,0xAC6F,0xAC70,0xAC71,0xAC72,0xAC73,0xAC74, +0xAC75,0xC3D5,0xAC76,0xAC77,0xAC78,0xAC79,0xAC7A,0xAC81, +0xAC82,0xAC83,0xAC84,0xAC85,0xAC86,0xAC87,0xAC88,0xAC89, +0xAC8A,0xAC8B,0xAC8C,0xAC8D,0xAC8E,0xAC8F,0xAC90,0xAC91, +0xAC92,0xAC93,0xAC94,0xAC95,0xAC96,0xAC97,0xAC98,0xAC99, +0xAC9A,0xAC9B,0xAC9C,0xAC9D,0xC3D6,0xAC9E,0xAC9F,0xACA0, +0xC3D7,0xAD41,0xAD42,0xAD43,0xC3D8,0xAD44,0xAD45,0xAD46, +0xAD47,0xAD48,0xAD49,0xAD4A,0xC3D9,0xC3DA,0xAD4B,0xC3DB, +0xAD4C,0xC3DC,0xAD4D,0xAD4E,0xAD4F,0xAD50,0xAD51,0xAD52, +0xC3DD,0xAD53,0xAD54,0xAD55,0xAD56,0xAD57,0xAD58,0xAD59, +0xAD5A,0xAD61,0xAD62,0xAD63,0xAD64,0xAD65,0xAD66,0xAD67, +0xC3DE,0xAD68,0xAD69,0xAD6A,0xAD6B,0xAD6C,0xAD6D,0xAD6E, +0xAD6F,0xAD70,0xAD71,0xAD72,0xC3DF,0xC3E0,0xAD73,0xAD74, +0xC3E1,0xAD75,0xAD76,0xAD77,0xC3E2,0xAD78,0xAD79,0xAD7A, +0xAD81,0xAD82,0xAD83,0xAD84,0xC3E3,0xC3E4,0xAD85,0xC3E5, +0xAD86,0xC3E6,0xAD87,0xAD88,0xAD89,0xAD8A,0xAD8B,0xAD8C, +0xC3E7,0xAD8D,0xAD8E,0xAD8F,0xAD90,0xAD91,0xAD92,0xAD93, +0xAD94,0xAD95,0xAD96,0xAD97,0xAD98,0xAD99,0xAD9A,0xAD9B, +0xAD9C,0xAD9D,0xAD9E,0xAD9F,0xC3E8,0xADA0,0xAE41,0xAE42, +0xAE43,0xAE44,0xAE45,0xAE46,0xC3E9,0xAE47,0xAE48,0xAE49, +0xC3EA,0xAE4A,0xAE4B,0xAE4C,0xAE4D,0xAE4E,0xAE4F,0xAE50, +0xAE51,0xAE52,0xAE53,0xAE54,0xAE55,0xAE56,0xAE57,0xAE58, +0xAE59,0xAE5A,0xAE61,0xAE62,0xAE63,0xAE64,0xAE65,0xAE66, +0xC3EB,0xAE67,0xAE68,0xAE69,0xC3EC,0xAE6A,0xAE6B,0xAE6C, +0xC3ED,0xAE6D,0xAE6E,0xAE6F,0xAE70,0xAE71,0xAE72,0xAE73, +0xC3EE,0xC3EF,0xAE74,0xC3F0,0xAE75,0xC3F1,0xAE76,0xAE77, +0xAE78,0xAE79,0xAE7A,0xAE81,0xC3F2,0xAE82,0xAE83,0xAE84, +0xC3F3,0xAE85,0xAE86,0xAE87,0xC3F4,0xAE88,0xAE89,0xAE8A, +0xAE8B,0xAE8C,0xAE8D,0xAE8E,0xC3F5,0xAE8F,0xAE90,0xAE91, +0xAE92,0xC3F6,0xAE93,0xAE94,0xAE95,0xAE96,0xAE97,0xAE98, +0xC3F7,0xC3F8,0xAE99,0xAE9A,0xC3F9,0xAE9B,0xAE9C,0xAE9D, +0xC3FA,0xAE9E,0xAE9F,0xAEA0,0xAF41,0xAF42,0xAF43,0xAF44, +0xC3FB,0xC3FC,0xAF45,0xC3FD,0xAF46,0xC3FE,0xAF47,0xAF48, +0xAF49,0xAF4A,0xAF4B,0xAF4C,0xAF4D,0xAF4E,0xAF4F,0xAF50, +0xAF51,0xAF52,0xAF53,0xAF54,0xAF55,0xAF56,0xAF57,0xAF58, +0xAF59,0xAF5A,0xAF61,0xAF62,0xAF63,0xAF64,0xAF65,0xAF66, +0xAF67,0xAF68,0xAF69,0xAF6A,0xAF6B,0xAF6C,0xAF6D,0xAF6E, +0xC4A1,0xC4A2,0xAF6F,0xAF70,0xC4A3,0xAF71,0xAF72,0xC4A4, +0xC4A5,0xC4A6,0xAF73,0xAF74,0xAF75,0xAF76,0xAF77,0xAF78, +0xC4A7,0xC4A8,0xAF79,0xC4A9,0xAF7A,0xC4AA,0xAF81,0xAF82, +0xAF83,0xAF84,0xAF85,0xAF86,0xC4AB,0xC4AC,0xAF87,0xAF88, +0xC4AD,0xAF89,0xAF8A,0xAF8B,0xC4AE,0xAF8C,0xAF8D,0xAF8E, +0xAF8F,0xAF90,0xAF91,0xAF92,0xC4AF,0xC4B0,0xAF93,0xC4B1, +0xAF94,0xC4B2,0xAF95,0xAF96,0xAF97,0xAF98,0xAF99,0xAF9A, +0xC4B3,0xC4B4,0xAF9B,0xAF9C,0xC4B5,0xAF9D,0xAF9E,0xAF9F, +0xC4B6,0xAFA0,0xB041,0xB042,0xB043,0xB044,0xB045,0xB046, +0xC4B7,0xC4B8,0xB047,0xC4B9,0xC4BA,0xC4BB,0xB048,0xB049, +0xB04A,0xB04B,0xB04C,0xB04D,0xC4BC,0xC4BD,0xB04E,0xB04F, +0xB050,0xB051,0xB052,0xB053,0xB054,0xB055,0xB056,0xB057, +0xB058,0xB059,0xB05A,0xB061,0xB062,0xB063,0xB064,0xB065, +0xB066,0xC4BE,0xB067,0xB068,0xB069,0xB06A,0xB06B,0xB06C, +0xB06D,0xB06E,0xB06F,0xB070,0xB071,0xB072,0xB073,0xB074, +0xB075,0xB076,0xB077,0xB078,0xB079,0xB07A,0xB081,0xB082, +0xB083,0xB084,0xB085,0xB086,0xB087,0xB088,0xB089,0xB08A, +0xB08B,0xB08C,0xB08D,0xB08E,0xC4BF,0xC4C0,0xB08F,0xB090, +0xC4C1,0xB091,0xB092,0xC4C2,0xC4C3,0xB093,0xB094,0xB095, +0xB096,0xB097,0xB098,0xB099,0xC4C4,0xC4C5,0xB09A,0xC4C6, +0xC4C7,0xC4C8,0xB09B,0xB09C,0xB09D,0xB09E,0xB09F,0xB0A0, +0xC4C9,0xC4CA,0xB141,0xB142,0xC4CB,0xB143,0xB144,0xB145, +0xC4CC,0xB146,0xB147,0xB148,0xB149,0xB14A,0xB14B,0xB14C, +0xC4CD,0xC4CE,0xB14D,0xC4CF,0xB14E,0xC4D0,0xB14F,0xB150, +0xB151,0xB152,0xB153,0xB154,0xC4D1,0xB155,0xB156,0xB157, +0xC4D2,0xB158,0xB159,0xB15A,0xC4D3,0xB161,0xB162,0xB163, +0xB164,0xB165,0xB166,0xB167,0xC4D4,0xC4D5,0xB168,0xC4D6, +0xC4D7,0xC4D8,0xB169,0xB16A,0xB16B,0xB16C,0xB16D,0xB16E, +0xC4D9,0xB16F,0xB170,0xB171,0xB172,0xB173,0xB174,0xB175, +0xB176,0xB177,0xB178,0xB179,0xB17A,0xB181,0xB182,0xB183, +0xB184,0xB185,0xB186,0xB187,0xB188,0xB189,0xB18A,0xB18B, +0xB18C,0xB18D,0xB18E,0xB18F,0xC4DA,0xC4DB,0xB190,0xB191, +0xC4DC,0xB192,0xB193,0xB194,0xC4DD,0xB195,0xB196,0xB197, +0xB198,0xB199,0xB19A,0xB19B,0xC4DE,0xC4DF,0xB19C,0xC4E0, +0xB19D,0xC4E1,0xB19E,0xB19F,0xB1A0,0xB241,0xB242,0xB243, +0xC4E2,0xC4E3,0xB244,0xB245,0xC4E4,0xB246,0xB247,0xB248, +0xC4E5,0xB249,0xB24A,0xB24B,0xB24C,0xB24D,0xB24E,0xB24F, +0xC4E6,0xB250,0xB251,0xB252,0xB253,0xC4E7,0xB254,0xB255, +0xB256,0xB257,0xB258,0xB259,0xC4E8,0xB25A,0xB261,0xB262, +0xB263,0xB264,0xB265,0xB266,0xB267,0xB268,0xB269,0xB26A, +0xB26B,0xB26C,0xB26D,0xB26E,0xB26F,0xB270,0xB271,0xB272, +0xB273,0xC4E9,0xB274,0xB275,0xB276,0xB277,0xB278,0xB279, +0xC4EA,0xB27A,0xB281,0xB282,0xB283,0xB284,0xB285,0xB286, +0xC4EB,0xB287,0xB288,0xB289,0xB28A,0xB28B,0xB28C,0xB28D, +0xB28E,0xB28F,0xB290,0xB291,0xB292,0xB293,0xB294,0xB295, +0xB296,0xB297,0xB298,0xB299,0xC4EC,0xB29A,0xB29B,0xB29C, +0xB29D,0xB29E,0xB29F,0xB2A0,0xB341,0xB342,0xB343,0xB344, +0xB345,0xB346,0xB347,0xB348,0xB349,0xB34A,0xB34B,0xB34C, +0xB34D,0xB34E,0xB34F,0xB350,0xB351,0xB352,0xB353,0xB354, +0xC4ED,0xC4EE,0xB355,0xB356,0xC4EF,0xB357,0xB358,0xB359, +0xC4F0,0xB35A,0xB361,0xB362,0xB363,0xB364,0xB365,0xB366, +0xC4F1,0xC4F2,0xB367,0xC4F3,0xB368,0xC4F4,0xB369,0xB36A, +0xB36B,0xB36C,0xB36D,0xB36E,0xC4F5,0xB36F,0xB370,0xB371, +0xC4F6,0xB372,0xB373,0xB374,0xC4F7,0xB375,0xB376,0xB377, +0xB378,0xB379,0xB37A,0xB381,0xB382,0xB383,0xB384,0xB385, +0xB386,0xC4F8,0xB387,0xB388,0xB389,0xB38A,0xB38B,0xB38C, +0xC4F9,0xB38D,0xB38E,0xB38F,0xB390,0xB391,0xB392,0xB393, +0xB394,0xB395,0xB396,0xB397,0xB398,0xB399,0xB39A,0xB39B, +0xB39C,0xB39D,0xB39E,0xB39F,0xB3A0,0xC4FA,0xB441,0xB442, +0xB443,0xB444,0xB445,0xB446,0xC4FB,0xC4FC,0xB447,0xB448, +0xC4FD,0xB449,0xB44A,0xB44B,0xC4FE,0xB44C,0xB44D,0xB44E, +0xB44F,0xB450,0xB451,0xB452,0xC5A1,0xC5A2,0xB453,0xC5A3, +0xB454,0xC5A4,0xB455,0xB456,0xB457,0xB458,0xB459,0xB45A, +0xC5A5,0xB461,0xB462,0xB463,0xC5A6,0xB464,0xB465,0xB466, +0xC5A7,0xB467,0xB468,0xB469,0xB46A,0xB46B,0xB46C,0xB46D, +0xC5A8,0xB46E,0xB46F,0xB470,0xB471,0xB472,0xB473,0xB474, +0xB475,0xB476,0xB477,0xB478,0xC5A9,0xC5AA,0xB479,0xB47A, +0xC5AB,0xB481,0xB482,0xB483,0xC5AC,0xB484,0xB485,0xB486, +0xB487,0xB488,0xB489,0xB48A,0xC5AD,0xC5AE,0xB48B,0xB48C, +0xB48D,0xC5AF,0xB48E,0xB48F,0xB490,0xB491,0xB492,0xB493, +0xB494,0xB495,0xB496,0xB497,0xB498,0xB499,0xB49A,0xB49B, +0xB49C,0xB49D,0xB49E,0xB49F,0xB4A0,0xB541,0xB542,0xB543, +0xB544,0xB545,0xB546,0xB547,0xB548,0xB549,0xB54A,0xB54B, +0xB54C,0xB54D,0xB54E,0xB54F,0xC5B0,0xC5B1,0xB550,0xB551, +0xC5B2,0xB552,0xB553,0xB554,0xC5B3,0xB555,0xB556,0xB557, +0xB558,0xB559,0xB55A,0xB561,0xC5B4,0xC5B5,0xB562,0xC5B6, +0xB563,0xC5B7,0xB564,0xB565,0xB566,0xB567,0xB568,0xB569, +0xC5B8,0xC5B9,0xB56A,0xB56B,0xC5BA,0xB56C,0xB56D,0xB56E, +0xC5BB,0xC5BC,0xB56F,0xB570,0xB571,0xB572,0xB573,0xB574, +0xC5BD,0xC5BE,0xB575,0xC5BF,0xC5C0,0xC5C1,0xB576,0xB577, +0xB578,0xB579,0xB57A,0xB581,0xC5C2,0xC5C3,0xB582,0xB583, +0xC5C4,0xB584,0xB585,0xB586,0xC5C5,0xB587,0xB588,0xB589, +0xB58A,0xB58B,0xB58C,0xB58D,0xC5C6,0xC5C7,0xB58E,0xC5C8, +0xC5C9,0xC5CA,0xB58F,0xB590,0xB591,0xB592,0xB593,0xB594, +0xC5CB,0xB595,0xB596,0xB597,0xB598,0xB599,0xB59A,0xB59B, +0xB59C,0xB59D,0xB59E,0xB59F,0xB5A0,0xB641,0xB642,0xB643, +0xB644,0xB645,0xB646,0xB647,0xB648,0xC5CC,0xB649,0xB64A, +0xB64B,0xB64C,0xB64D,0xB64E,0xB64F,0xB650,0xB651,0xB652, +0xB653,0xB654,0xB655,0xB656,0xB657,0xB658,0xB659,0xB65A, +0xB661,0xB662,0xB663,0xB664,0xB665,0xB666,0xB667,0xB668, +0xB669,0xB66A,0xB66B,0xB66C,0xB66D,0xB66E,0xB66F,0xB670, +0xC5CD,0xC5CE,0xB671,0xB672,0xC5CF,0xB673,0xB674,0xB675, +0xC5D0,0xB676,0xC5D1,0xB677,0xB678,0xB679,0xB67A,0xB681, +0xC5D2,0xC5D3,0xB682,0xC5D4,0xC5D5,0xC5D6,0xB683,0xB684, +0xB685,0xB686,0xB687,0xB688,0xC5D7,0xC5D8,0xB689,0xB68A, +0xC5D9,0xB68B,0xB68C,0xB68D,0xC5DA,0xB68E,0xB68F,0xB690, +0xB691,0xB692,0xB693,0xB694,0xC5DB,0xC5DC,0xB695,0xC5DD, +0xB696,0xC5DE,0xB697,0xB698,0xB699,0xB69A,0xB69B,0xB69C, +0xC5DF,0xB69D,0xB69E,0xB69F,0xC5E0,0xB6A0,0xB741,0xB742, +0xB743,0xB744,0xB745,0xB746,0xB747,0xB748,0xB749,0xB74A, +0xB74B,0xB74C,0xB74D,0xB74E,0xC5E1,0xB74F,0xB750,0xB751, +0xB752,0xB753,0xB754,0xB755,0xC5E2,0xB756,0xB757,0xB758, +0xC5E3,0xB759,0xB75A,0xB761,0xB762,0xB763,0xB764,0xB765, +0xB766,0xB767,0xB768,0xB769,0xB76A,0xB76B,0xB76C,0xB76D, +0xB76E,0xB76F,0xB770,0xB771,0xB772,0xB773,0xB774,0xB775, +0xC5E4,0xC5E5,0xB776,0xB777,0xC5E6,0xB778,0xB779,0xB77A, +0xC5E7,0xB781,0xB782,0xB783,0xB784,0xB785,0xB786,0xB787, +0xC5E8,0xC5E9,0xB788,0xC5EA,0xB789,0xC5EB,0xB78A,0xB78B, +0xB78C,0xB78D,0xC5EC,0xB78E,0xC5ED,0xB78F,0xB790,0xB791, +0xC5EE,0xB792,0xB793,0xB794,0xB795,0xB796,0xB797,0xB798, +0xB799,0xB79A,0xB79B,0xB79C,0xB79D,0xB79E,0xB79F,0xB7A0, +0xB841,0xB842,0xB843,0xB844,0xB845,0xB846,0xB847,0xB848, +0xC5EF,0xB849,0xB84A,0xB84B,0xB84C,0xB84D,0xB84E,0xB84F, +0xB850,0xB851,0xB852,0xB853,0xB854,0xB855,0xB856,0xB857, +0xB858,0xB859,0xB85A,0xB861,0xB862,0xB863,0xB864,0xB865, +0xB866,0xB867,0xB868,0xB869,0xC5F0,0xB86A,0xB86B,0xB86C, +0xC5F1,0xB86D,0xB86E,0xB86F,0xB870,0xB871,0xB872,0xB873, +0xB874,0xB875,0xB876,0xB877,0xB878,0xB879,0xB87A,0xC5F2, +0xB881,0xC5F3,0xB882,0xB883,0xB884,0xB885,0xB886,0xB887, +0xC5F4,0xB888,0xB889,0xB88A,0xB88B,0xB88C,0xB88D,0xB88E, +0xB88F,0xB890,0xB891,0xB892,0xB893,0xB894,0xB895,0xB896, +0xB897,0xB898,0xB899,0xB89A,0xB89B,0xB89C,0xB89D,0xB89E, +0xB89F,0xB8A0,0xB941,0xB942,0xC5F5,0xC5F6,0xB943,0xB944, +0xC5F7,0xB945,0xB946,0xB947,0xC5F8,0xB948,0xB949,0xB94A, +0xB94B,0xB94C,0xB94D,0xB94E,0xC5F9,0xC5FA,0xB94F,0xC5FB, +0xB950,0xC5FC,0xB951,0xB952,0xB953,0xB954,0xB955,0xB956, +0xC5FD,0xB957,0xB958,0xB959,0xB95A,0xB961,0xB962,0xB963, +0xB964,0xB965,0xB966,0xB967,0xB968,0xB969,0xB96A,0xB96B, +0xB96C,0xB96D,0xB96E,0xB96F,0xC5FE,0xB970,0xB971,0xB972, +0xB973,0xB974,0xB975,0xB976,0xC6A1,0xB977,0xB978,0xB979, +0xB97A,0xB981,0xB982,0xB983,0xB984,0xB985,0xB986,0xB987, +0xB988,0xB989,0xB98A,0xB98B,0xB98C,0xB98D,0xB98E,0xB98F, +0xB990,0xB991,0xB992,0xB993,0xB994,0xB995,0xB996,0xB997, +0xC6A2,0xC6A3,0xB998,0xB999,0xC6A4,0xB99A,0xB99B,0xB99C, +0xC6A5,0xB99D,0xB99E,0xB99F,0xB9A0,0xBA41,0xBA42,0xBA43, +0xC6A6,0xC6A7,0xBA44,0xBA45,0xBA46,0xC6A8,0xBA47,0xBA48, +0xBA49,0xBA4A,0xBA4B,0xBA4C,0xC6A9,0xBA4D,0xBA4E,0xBA4F, +0xC6AA,0xBA50,0xBA51,0xBA52,0xC6AB,0xBA53,0xBA54,0xBA55, +0xBA56,0xBA57,0xBA58,0xBA59,0xC6AC,0xBA5A,0xBA61,0xBA62, +0xBA63,0xC6AD,0xBA64,0xBA65,0xBA66,0xBA67,0xBA68,0xBA69, +0xC6AE,0xC6AF,0xBA6A,0xBA6B,0xC6B0,0xBA6C,0xBA6D,0xC6B1, +0xC6B2,0xBA6E,0xC6B3,0xBA6F,0xBA70,0xBA71,0xBA72,0xBA73, +0xC6B4,0xC6B5,0xBA74,0xC6B6,0xBA75,0xBA76,0xBA77,0xBA78, +0xBA79,0xBA7A,0xBA81,0xBA82,0xC6B7,0xBA83,0xBA84,0xBA85, +0xC6B8,0xBA86,0xBA87,0xBA88,0xC6B9,0xBA89,0xBA8A,0xBA8B, +0xBA8C,0xBA8D,0xBA8E,0xBA8F,0xC6BA,0xC6BB,0xBA90,0xBA91, +0xBA92,0xBA93,0xBA94,0xBA95,0xBA96,0xBA97,0xBA98,0xBA99, +0xC6BC,0xC6BD,0xBA9A,0xBA9B,0xC6BE,0xBA9C,0xBA9D,0xBA9E, +0xC6BF,0xBA9F,0xBAA0,0xBB41,0xBB42,0xBB43,0xBB44,0xBB45, +0xC6C0,0xC6C1,0xBB46,0xC6C2,0xBB47,0xC6C3,0xBB48,0xBB49, +0xBB4A,0xBB4B,0xBB4C,0xBB4D,0xC6C4,0xC6C5,0xC6C6,0xBB4E, +0xC6C7,0xBB4F,0xBB50,0xBB51,0xC6C8,0xBB52,0xC6C9,0xBB53, +0xBB54,0xBB55,0xBB56,0xBB57,0xC6CA,0xC6CB,0xBB58,0xC6CC, +0xC6CD,0xC6CE,0xBB59,0xBB5A,0xBB61,0xC6CF,0xBB62,0xBB63, +0xC6D0,0xC6D1,0xBB64,0xBB65,0xC6D2,0xBB66,0xBB67,0xBB68, +0xC6D3,0xBB69,0xBB6A,0xBB6B,0xBB6C,0xBB6D,0xBB6E,0xBB6F, +0xC6D4,0xC6D5,0xBB70,0xC6D6,0xC6D7,0xC6D8,0xBB71,0xBB72, +0xBB73,0xBB74,0xBB75,0xBB76,0xC6D9,0xC6DA,0xBB77,0xBB78, +0xBB79,0xBB7A,0xBB81,0xBB82,0xBB83,0xBB84,0xBB85,0xBB86, +0xBB87,0xBB88,0xBB89,0xBB8A,0xBB8B,0xBB8C,0xBB8D,0xBB8E, +0xBB8F,0xBB90,0xBB91,0xBB92,0xBB93,0xBB94,0xBB95,0xBB96, +0xBB97,0xBB98,0xBB99,0xBB9A,0xBB9B,0xBB9C,0xBB9D,0xBB9E, +0xBB9F,0xBBA0,0xBC41,0xBC42,0xBC43,0xBC44,0xBC45,0xBC46, +0xBC47,0xBC48,0xBC49,0xBC4A,0xBC4B,0xBC4C,0xBC4D,0xBC4E, +0xBC4F,0xBC50,0xBC51,0xBC52,0xC6DB,0xC6DC,0xBC53,0xBC54, +0xC6DD,0xBC55,0xBC56,0xBC57,0xC6DE,0xBC58,0xBC59,0xBC5A, +0xBC61,0xBC62,0xBC63,0xBC64,0xC6DF,0xC6E0,0xBC65,0xC6E1, +0xC6E2,0xC6E3,0xBC66,0xBC67,0xBC68,0xBC69,0xBC6A,0xBC6B, +0xC6E4,0xC6E5,0xBC6C,0xBC6D,0xC6E6,0xBC6E,0xBC6F,0xBC70, +0xC6E7,0xBC71,0xBC72,0xBC73,0xBC74,0xBC75,0xBC76,0xBC77, +0xC6E8,0xC6E9,0xBC78,0xC6EA,0xBC79,0xC6EB,0xBC7A,0xBC81, +0xBC82,0xBC83,0xBC84,0xBC85,0xC6EC,0xBC86,0xBC87,0xBC88, +0xC6ED,0xBC89,0xBC8A,0xBC8B,0xC6EE,0xBC8C,0xBC8D,0xBC8E, +0xBC8F,0xBC90,0xBC91,0xBC92,0xC6EF,0xC6F0,0xBC93,0xBC94, +0xC6F1,0xC6F2,0xBC95,0xBC96,0xBC97,0xBC98,0xBC99,0xBC9A, +0xC6F3,0xBC9B,0xBC9C,0xBC9D,0xBC9E,0xBC9F,0xBCA0,0xBD41, +0xC6F4,0xBD42,0xBD43,0xBD44,0xBD45,0xBD46,0xBD47,0xBD48, +0xBD49,0xC6F5,0xBD4A,0xC6F6,0xBD4B,0xBD4C,0xBD4D,0xBD4E, +0xBD4F,0xBD50,0xBD51,0xBD52,0xC6F7,0xC6F8,0xBD53,0xBD54, +0xC6F9,0xBD55,0xBD56,0xBD57,0xC6FA,0xBD58,0xBD59,0xBD5A, +0xBD61,0xBD62,0xBD63,0xBD64,0xC6FB,0xC6FC,0xBD65,0xC6FD, +0xBD66,0xC6FE,0xBD67,0xBD68,0xBD69,0xBD6A,0xBD6B,0xBD6C, +0xC7A1,0xBD6D,0xBD6E,0xBD6F,0xBD70,0xBD71,0xBD72,0xBD73, +0xBD74,0xBD75,0xBD76,0xBD77,0xBD78,0xBD79,0xBD7A,0xBD81, +0xBD82,0xBD83,0xBD84,0xBD85,0xBD86,0xC7A2,0xBD87,0xBD88, +0xBD89,0xBD8A,0xBD8B,0xBD8C,0xBD8D,0xBD8E,0xBD8F,0xBD90, +0xBD91,0xBD92,0xBD93,0xBD94,0xBD95,0xBD96,0xBD97,0xBD98, +0xBD99,0xBD9A,0xBD9B,0xBD9C,0xBD9D,0xBD9E,0xBD9F,0xBDA0, +0xBE41,0xBE42,0xBE43,0xBE44,0xBE45,0xBE46,0xBE47,0xBE48, +0xC7A3,0xBE49,0xBE4A,0xBE4B,0xC7A4,0xBE4C,0xBE4D,0xBE4E, +0xBE4F,0xBE50,0xBE51,0xBE52,0xBE53,0xBE54,0xBE55,0xBE56, +0xBE57,0xBE58,0xBE59,0xBE5A,0xBE61,0xBE62,0xBE63,0xBE64, +0xBE65,0xBE66,0xBE67,0xBE68,0xC7A5,0xBE69,0xBE6A,0xBE6B, +0xC7A6,0xBE6C,0xBE6D,0xBE6E,0xC7A7,0xBE6F,0xBE70,0xBE71, +0xBE72,0xBE73,0xBE74,0xBE75,0xBE76,0xC7A8,0xBE77,0xC7A9, +0xBE78,0xBE79,0xBE7A,0xBE81,0xBE82,0xBE83,0xBE84,0xBE85, +0xC7AA,0xC7AB,0xBE86,0xBE87,0xC7AC,0xBE88,0xBE89,0xC7AD, +0xC7AE,0xBE8A,0xC7AF,0xBE8B,0xBE8C,0xBE8D,0xBE8E,0xBE8F, +0xC7B0,0xC7B1,0xBE90,0xC7B2,0xBE91,0xC7B3,0xBE92,0xBE93, +0xBE94,0xBE95,0xBE96,0xBE97,0xC7B4,0xBE98,0xBE99,0xBE9A, +0xBE9B,0xBE9C,0xBE9D,0xBE9E,0xBE9F,0xBEA0,0xBF41,0xBF42, +0xBF43,0xBF44,0xBF45,0xBF46,0xBF47,0xBF48,0xBF49,0xBF4A, +0xBF4B,0xC7B5,0xBF4C,0xBF4D,0xBF4E,0xBF4F,0xBF50,0xBF51, +0xBF52,0xBF53,0xBF54,0xBF55,0xBF56,0xBF57,0xBF58,0xBF59, +0xBF5A,0xBF61,0xBF62,0xBF63,0xBF64,0xBF65,0xBF66,0xBF67, +0xBF68,0xBF69,0xBF6A,0xBF6B,0xBF6C,0xBF6D,0xBF6E,0xBF6F, +0xBF70,0xBF71,0xBF72,0xBF73,0xC7B6,0xBF74,0xBF75,0xBF76, +0xC7B7,0xBF77,0xBF78,0xBF79,0xC7B8,0xBF7A,0xBF81,0xBF82, +0xBF83,0xBF84,0xBF85,0xBF86,0xC7B9,0xBF87,0xBF88,0xC7BA, +0xBF89,0xBF8A,0xBF8B,0xBF8C,0xBF8D,0xBF8E,0xBF8F,0xBF90, +0xC7BB,0xBF91,0xBF92,0xBF93,0xC7BC,0xBF94,0xBF95,0xBF96, +0xC7BD,0xBF97,0xBF98,0xBF99,0xBF9A,0xBF9B,0xBF9C,0xBF9D, +0xC7BE,0xBF9E,0xBF9F,0xC7BF,0xBFA0,0xC7C0,0xC041,0xC042, +0xC043,0xC044,0xC045,0xC046,0xC7C1,0xC047,0xC048,0xC049, +0xC7C2,0xC04A,0xC04B,0xC04C,0xC7C3,0xC04D,0xC04E,0xC04F, +0xC050,0xC051,0xC052,0xC053,0xC7C4,0xC7C5,0xC054,0xC7C6, +0xC055,0xC056,0xC057,0xC058,0xC059,0xC05A,0xC061,0xC062, +0xC063,0xC064,0xC065,0xC066,0xC067,0xC068,0xC069,0xC06A, +0xC06B,0xC06C,0xC06D,0xC06E,0xC06F,0xC070,0xC071,0xC072, +0xC073,0xC074,0xC075,0xC076,0xC077,0xC078,0xC079,0xC07A, +0xC081,0xC082,0xC083,0xC084,0xC7C7,0xC7C8,0xC085,0xC086, +0xC7C9,0xC087,0xC088,0xC089,0xC7CA,0xC08A,0xC08B,0xC08C, +0xC08D,0xC08E,0xC08F,0xC090,0xC7CB,0xC7CC,0xC091,0xC7CD, +0xC092,0xC7CE,0xC093,0xC094,0xC095,0xC096,0xC097,0xC098, +0xC7CF,0xC7D0,0xC099,0xC09A,0xC7D1,0xC09B,0xC09C,0xC09D, +0xC7D2,0xC09E,0xC09F,0xC0A0,0xC141,0xC7D3,0xC142,0xC143, +0xC7D4,0xC7D5,0xC144,0xC7D6,0xC145,0xC7D7,0xC146,0xC147, +0xC148,0xC149,0xC14A,0xC14B,0xC7D8,0xC7D9,0xC14C,0xC14D, +0xC7DA,0xC14E,0xC14F,0xC150,0xC7DB,0xC151,0xC152,0xC153, +0xC154,0xC155,0xC156,0xC157,0xC7DC,0xC7DD,0xC158,0xC7DE, +0xC7DF,0xC7E0,0xC159,0xC15A,0xC161,0xC162,0xC163,0xC164, +0xC7E1,0xC165,0xC166,0xC167,0xC168,0xC169,0xC16A,0xC16B, +0xC16C,0xC16D,0xC16E,0xC16F,0xC170,0xC171,0xC172,0xC173, +0xC174,0xC175,0xC176,0xC177,0xC178,0xC7E2,0xC179,0xC17A, +0xC181,0xC182,0xC183,0xC184,0xC185,0xC186,0xC187,0xC188, +0xC189,0xC18A,0xC18B,0xC18C,0xC18D,0xC18E,0xC18F,0xC190, +0xC191,0xC192,0xC193,0xC194,0xC195,0xC196,0xC197,0xC198, +0xC199,0xC19A,0xC19B,0xC19C,0xC19D,0xC19E,0xC19F,0xC1A0, +0xC7E3,0xC7E4,0xC241,0xC242,0xC7E5,0xC243,0xC244,0xC245, +0xC7E6,0xC246,0xC7E7,0xC247,0xC248,0xC249,0xC24A,0xC24B, +0xC7E8,0xC7E9,0xC24C,0xC7EA,0xC24D,0xC7EB,0xC24E,0xC24F, +0xC250,0xC251,0xC252,0xC253,0xC7EC,0xC7ED,0xC254,0xC255, +0xC7EE,0xC256,0xC257,0xC258,0xC7EF,0xC259,0xC25A,0xC261, +0xC262,0xC263,0xC264,0xC265,0xC7F0,0xC7F1,0xC266,0xC7F2, +0xC267,0xC7F3,0xC268,0xC269,0xC26A,0xC26B,0xC26C,0xC26D, +0xC7F4,0xC7F5,0xC26E,0xC26F,0xC7F6,0xC270,0xC271,0xC272, +0xC7F7,0xC273,0xC274,0xC275,0xC276,0xC277,0xC278,0xC279, +0xC7F8,0xC7F9,0xC27A,0xC7FA,0xC7FB,0xC7FC,0xC281,0xC282, +0xC283,0xC284,0xC285,0xC286,0xC7FD,0xC287,0xC288,0xC289, +0xC7FE,0xC28A,0xC28B,0xC28C,0xC8A1,0xC28D,0xC28E,0xC28F, +0xC290,0xC291,0xC292,0xC293,0xC294,0xC8A2,0xC295,0xC296, +0xC297,0xC298,0xC299,0xC29A,0xC29B,0xC29C,0xC29D,0xC29E, +0xC8A3,0xC8A4,0xC29F,0xC2A0,0xC8A5,0xC341,0xC342,0xC343, +0xC8A6,0xC344,0xC345,0xC346,0xC347,0xC8A7,0xC348,0xC349, +0xC8A8,0xC8A9,0xC34A,0xC8AA,0xC34B,0xC8AB,0xC34C,0xC34D, +0xC34E,0xC8AC,0xC34F,0xC350,0xC8AD,0xC8AE,0xC351,0xC352, +0xC8AF,0xC353,0xC354,0xC355,0xC8B0,0xC356,0xC357,0xC358, +0xC359,0xC35A,0xC361,0xC362,0xC363,0xC364,0xC365,0xC8B1, +0xC366,0xC8B2,0xC367,0xC368,0xC369,0xC36A,0xC36B,0xC36C, +0xC8B3,0xC8B4,0xC36D,0xC36E,0xC8B5,0xC36F,0xC370,0xC371, +0xC372,0xC373,0xC374,0xC375,0xC376,0xC377,0xC378,0xC379, +0xC37A,0xC381,0xC382,0xC8B6,0xC383,0xC8B7,0xC384,0xC385, +0xC386,0xC387,0xC388,0xC389,0xC8B8,0xC8B9,0xC38A,0xC38B, +0xC8BA,0xC38C,0xC38D,0xC38E,0xC8BB,0xC38F,0xC390,0xC391, +0xC392,0xC393,0xC394,0xC395,0xC396,0xC8BC,0xC397,0xC8BD, +0xC398,0xC8BE,0xC399,0xC39A,0xC39B,0xC39C,0xC39D,0xC39E, +0xC8BF,0xC39F,0xC3A0,0xC441,0xC8C0,0xC442,0xC443,0xC444, +0xC8C1,0xC445,0xC446,0xC447,0xC448,0xC449,0xC44A,0xC44B, +0xC44C,0xC8C2,0xC44D,0xC8C3,0xC44E,0xC44F,0xC450,0xC451, +0xC452,0xC453,0xC454,0xC455,0xC8C4,0xC8C5,0xC456,0xC457, +0xC8C6,0xC458,0xC459,0xC45A,0xC8C7,0xC461,0xC462,0xC463, +0xC464,0xC8C8,0xC465,0xC466,0xC8C9,0xC467,0xC468,0xC8CA, +0xC469,0xC8CB,0xC46A,0xC46B,0xC46C,0xC46D,0xC46E,0xC46F, +0xC8CC,0xC470,0xC471,0xC472,0xC8CD,0xC473,0xC474,0xC475, +0xC8CE,0xC476,0xC477,0xC478,0xC479,0xC47A,0xC481,0xC482, +0xC8CF,0xC483,0xC484,0xC485,0xC486,0xC8D0,0xC487,0xC488, +0xC489,0xC48A,0xC48B,0xC48C,0xC8D1,0xC8D2,0xC48D,0xC48E, +0xC8D3,0xC48F,0xC490,0xC491,0xC8D4,0xC492,0xC493,0xC494, +0xC495,0xC496,0xC497,0xC498,0xC499,0xC49A,0xC49B,0xC49C, +0xC49D,0xC8D5,0xC49E,0xC49F,0xC4A0,0xC541,0xC542,0xC543, +0xC8D6,0xC8D7,0xC544,0xC545,0xC8D8,0xC546,0xC547,0xC548, +0xC8D9,0xC549,0xC54A,0xC54B,0xC54C,0xC54D,0xC54E,0xC54F, +0xC8DA,0xC8DB,0xC550,0xC8DC,0xC551,0xC8DD,0xC552,0xC553, +0xC554,0xC555,0xC556,0xC557,0xC8DE,0xC8DF,0xC558,0xC559, +0xC8E0,0xC55A,0xC561,0xC562,0xC8E1,0xC563,0xC564,0xC565, +0xC566,0xC567,0xC568,0xC569,0xC8E2,0xC56A,0xC56B,0xC8E3, +0xC56C,0xC8E4,0xC56D,0xC56E,0xC56F,0xC570,0xC571,0xC572, +0xC8E5,0xC8E6,0xC573,0xC574,0xC8E7,0xC575,0xC8E8,0xC8E9, +0xC8EA,0xC8EB,0xC576,0xC577,0xC578,0xC579,0xC57A,0xC581, +0xC8EC,0xC8ED,0xC582,0xC8EE,0xC583,0xC8EF,0xC584,0xC585, +0xC586,0xC8F0,0xC587,0xC588,0xC8F1,0xC589,0xC58A,0xC58B, +0xC8F2,0xC58C,0xC58D,0xC58E,0xC8F3,0xC58F,0xC590,0xC591, +0xC592,0xC593,0xC594,0xC595,0xC8F4,0xC8F5,0xC596,0xC597, +0xC598,0xC8F6,0xC599,0xC59A,0xC59B,0xC59C,0xC59D,0xC59E, +0xC8F7,0xC8F8,0xC59F,0xC5A0,0xC8F9,0xC641,0xC642,0xC643, +0xC8FA,0xC644,0xC645,0xC646,0xC647,0xC648,0xC649,0xC64A, +0xC8FB,0xC8FC,0xC64B,0xC8FD,0xC64C,0xC8FE,0xC64D,0xC64E, +0xC64F,0xC650,0xC651,0xC652}; + +/* page 9 0xF900-0xFA0B */ +static const uint16 tab_uni_ksc56019[]={ +0xCBD0,0xCBD6,0xCBE7,0xCDCF,0xCDE8,0xCEAD,0xCFFB,0xD0A2, +0xD0B8,0xD0D0,0xD0DD,0xD1D4,0xD1D5,0xD1D8,0xD1DB,0xD1DC, +0xD1DD,0xD1DE,0xD1DF,0xD1E0,0xD1E2,0xD1E3,0xD1E4,0xD1E5, +0xD1E6,0xD1E8,0xD1E9,0xD1EA,0xD1EB,0xD1ED,0xD1EF,0xD1F0, +0xD1F2,0xD1F6,0xD1FA,0xD1FC,0xD1FD,0xD1FE,0xD2A2,0xD2A3, +0xD2A7,0xD2A8,0xD2A9,0xD2AA,0xD2AB,0xD2AD,0xD2B2,0xD2BE, +0xD2C2,0xD2C3,0xD2C4,0xD2C6,0xD2C7,0xD2C8,0xD2C9,0xD2CA, +0xD2CB,0xD2CD,0xD2CE,0xD2CF,0xD2D0,0xD2D1,0xD2D2,0xD2D3, +0xD2D4,0xD2D5,0xD2D6,0xD2D7,0xD2D9,0xD2DA,0xD2DE,0xD2DF, +0xD2E1,0xD2E2,0xD2E4,0xD2E5,0xD2E6,0xD2E7,0xD2E8,0xD2E9, +0xD2EA,0xD2EB,0xD2F0,0xD2F1,0xD2F2,0xD2F3,0xD2F4,0xD2F5, +0xD2F7,0xD2F8,0xD4E6,0xD4FC,0xD5A5,0xD5AB,0xD5AE,0xD6B8, +0xD6CD,0xD7CB,0xD7E4,0xDBC5,0xDBE4,0xDCA5,0xDDA5,0xDDD5, +0xDDF4,0xDEFC,0xDEFE,0xDFB3,0xDFE1,0xDFE8,0xE0F1,0xE1AD, +0xE1ED,0xE3F5,0xE4A1,0xE4A9,0xE5AE,0xE5B1,0xE5B2,0xE5B9, +0xE5BB,0xE5BC,0xE5C4,0xE5CE,0xE5D0,0xE5D2,0xE5D6,0xE5FA, +0xE5FB,0xE5FC,0xE5FE,0xE6A1,0xE6A4,0xE6A7,0xE6AD,0xE6AF, +0xE6B0,0xE6B1,0xE6B3,0xE6B7,0xE6B8,0xE6BC,0xE6C4,0xE6C6, +0xE6C7,0xE6CA,0xE6D2,0xE6D6,0xE6D9,0xE6DC,0xE6DF,0xE6E1, +0xE6E4,0xE6E5,0xE6E6,0xE6E8,0xE6EA,0xE6EB,0xE6EC,0xE6EF, +0xE6F1,0xE6F2,0xE6F5,0xE6F6,0xE6F7,0xE6F9,0xE7A1,0xE7A6, +0xE7A9,0xE7AA,0xE7AC,0xE7AD,0xE7B0,0xE7BF,0xE7C1,0xE7C6, +0xE7C7,0xE7CB,0xE7CD,0xE7CF,0xE7D0,0xE7D3,0xE7DF,0xE7E4, +0xE7E6,0xE7F7,0xE8E7,0xE8E8,0xE8F0,0xE8F1,0xE8F7,0xE8F9, +0xE8FB,0xE8FE,0xE9A7,0xE9AC,0xE9CC,0xE9F7,0xEAC1,0xEAE5, +0xEAF4,0xEAF7,0xEAFC,0xEAFE,0xEBA4,0xEBA7,0xEBA9,0xEBAA, +0xEBBA,0xEBBB,0xEBBD,0xEBC1,0xEBC2,0xEBC6,0xEBC7,0xEBCC, +0xEBCF,0xEBD0,0xEBD1,0xEBD2,0xEBD8,0xECA6,0xECA7,0xECAA, +0xECAF,0xECB0,0xECB1,0xECB2,0xECB5,0xECB8,0xECBA,0xECC0, +0xECC1,0xECC5,0xECC6,0xECC9,0xECCA,0xECD5,0xECDD,0xECDE, +0xECE1,0xECE4,0xECE7,0xECE8,0xECF7,0xECF8,0xECFA,0xEDA1, +0xEDA2,0xEDA3,0xEDEE,0xEEDB,0xF2BD,0xF2FA,0xF3B1,0xF4A7, +0xF4EE,0xF6F4,0xF6F6,0xF7B8,0xF7C8,0xF7D3,0xF8DB,0xF8F0, +0xFAA1,0xFAA2,0xFAE6,0xFCA9}; + +/* page 10 0xFF01-0xFFE6 */ +static const uint16 tab_uni_ksc560110[]={ +0xA3A1,0xA3A2,0xA3A3,0xA3A4,0xA3A5,0xA3A6,0xA3A7,0xA3A8, +0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF,0xA3B0, +0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,0xA3B8, +0xA3B9,0xA3BA,0xA3BB,0xA3BC,0xA3BD,0xA3BE,0xA3BF,0xA3C0, +0xA3C1,0xA3C2,0xA3C3,0xA3C4,0xA3C5,0xA3C6,0xA3C7,0xA3C8, +0xA3C9,0xA3CA,0xA3CB,0xA3CC,0xA3CD,0xA3CE,0xA3CF,0xA3D0, +0xA3D1,0xA3D2,0xA3D3,0xA3D4,0xA3D5,0xA3D6,0xA3D7,0xA3D8, +0xA3D9,0xA3DA,0xA3DB,0xA1AC,0xA3DD,0xA3DE,0xA3DF,0xA3E0, +0xA3E1,0xA3E2,0xA3E3,0xA3E4,0xA3E5,0xA3E6,0xA3E7,0xA3E8, +0xA3E9,0xA3EA,0xA3EB,0xA3EC,0xA3ED,0xA3EE,0xA3EF,0xA3F0, +0xA3F1,0xA3F2,0xA3F3,0xA3F4,0xA3F5,0xA3F6,0xA3F7,0xA3F8, +0xA3F9,0xA3FA,0xA3FB,0xA3FC,0xA3FD,0xA2A6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA1CB, +0xA1CC,0xA1FE,0xA3FE, 0,0xA1CD,0xA3DC}; + +static int func_uni_ksc5601_onechar(int code){ + if ((code>=0x00A1)&&(code<=0x0167)) + return(tab_uni_ksc56010[code-0x00A1]); + if ((code>=0x02C7)&&(code<=0x0451)) + return(tab_uni_ksc56011[code-0x02C7]); + if ((code>=0x2015)&&(code<=0x2312)) + return(tab_uni_ksc56012[code-0x2015]); + if ((code>=0x2460)&&(code<=0x266D)) + return(tab_uni_ksc56013[code-0x2460]); + if ((code>=0x3000)&&(code<=0x327F)) + return(tab_uni_ksc56014[code-0x3000]); + if ((code>=0x3380)&&(code<=0x33DD)) + return(tab_uni_ksc56015[code-0x3380]); + if ((code>=0x4E00)&&(code<=0x947F)) + return(tab_uni_ksc56016[code-0x4E00]); + if ((code>=0x9577)&&(code<=0x9F9C)) + return(tab_uni_ksc56017[code-0x9577]); + if ((code>=0xAC00)&&(code<=0xD7A3)) + return(tab_uni_ksc56018[code-0xAC00]); + if ((code>=0xF900)&&(code<=0xFA0B)) + return(tab_uni_ksc56019[code-0xF900]); + if ((code>=0xFF01)&&(code<=0xFFE6)) + return(tab_uni_ksc560110[code-0xFF01]); + return(0); +} + + +static int +my_wc_mb_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int code; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((uint) wc < 0x80) + { + s[0]= (uchar) wc; + return 1; + } + + if (!(code=func_uni_ksc5601_onechar(wc))) + return MY_CS_ILUNI; + + if (s+2>e) + return MY_CS_TOOSMALL2; + + s[0]=code>>8; + s[1]=code&0xFF; + + return 2; +} + + +static int +my_mb_wc_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) + { + pwc[0]=hi; + return 1; + } + + if (s+2>e) + return MY_CS_TOOSMALL2; + + if (!(pwc[0]=func_ksc5601_uni_onechar((hi<<8)+s[1]))) + return -2; + + return 2; +} + + +/* + Returns well formed length of a EUC-KR string. +*/ +static size_t +my_well_formed_len_euckr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + const char *emb= e - 1; /* Last possible end of an MB character */ + + *error= 0; + while (pos-- && b < e) + { + if ((uchar) b[0] < 128) + { + /* Single byte ascii character */ + b++; + } + else if (b < emb && iseuc_kr_head(*b) && iseuc_kr_tail(b[1])) + { + /* Double byte character */ + b+= 2; + } + else + { + /* Wrong byte sequence */ + *error= 1; + break; + } + } + return (size_t) (b - b0); +} + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_simple, /* strnncoll */ + my_strnncollsp_simple, + my_strnxfrm_mb, /* strnxfrm */ + my_strnxfrmlen_simple, + my_like_range_mb, /* like_range */ + my_wildcmp_mb, /* wildcmp */ + my_strcasecmp_mb, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_euc_kr, + mbcharlen_euc_kr, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_euckr, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_euc_kr, /* mb_wc */ + my_wc_mb_euc_kr, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_mb_varlen, /* UPPER() can reduce length: Turkish DOTLESS i -> I */ + my_casedn_mb, /* LOWER() does not change length, use simple version*/ + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_euckr_korean_ci= +{ + 19,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ + "euckr", /* cs name */ + "euckr_korean_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_euc_kr, + to_lower_euc_kr, + to_upper_euc_kr, + sort_order_euc_kr, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_euckr, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + + +CHARSET_INFO my_charset_euckr_bin= +{ + 85,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "euckr", /* cs name */ + "euckr_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_euc_kr, + to_lower_euc_kr, + to_upper_euc_kr, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_euckr, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + +#endif diff --git a/mysql/strings/ctype-eucjpms.c b/mysql/strings/ctype-eucjpms.c new file mode 100644 index 0000000..6e061c3 --- /dev/null +++ b/mysql/strings/ctype-eucjpms.c @@ -0,0 +1,67630 @@ +/* Copyright (c) 2002 MySQL AB & tommy@valley.ne.jp + Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for Japanese EUC charset, and created based on +ctype-ujis.c file. + */ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. mbmaxlen_eucjpms=3 + */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_eucjpms + + +static const uchar ctype_eucjpms[257] = +{ + 0, /* For standard library */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */ + 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */ + 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */ + 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */ + 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */ + 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */ + 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */ + 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */ + 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */ + 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, + 0000, 0000, 0000, 0000, 0000, 0000, 0020, 0020, + 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, + 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, + 0000, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0000, +}; + +static const uchar to_lower_eucjpms[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar to_upper_eucjpms[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar sort_order_eucjpms[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375', (uchar) (uchar) '\376', (uchar) '\377' +}; + + +#define iseucjpms(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xfe)) +#define iskata(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xdf)) +#define iseucjpms_ss2(c) (((c)&0xff) == 0x8e) +#define iseucjpms_ss3(c) (((c)&0xff) == 0x8f) + + +static uint ismbchar_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return ((*(uchar*)(p)<0x80)? 0:\ + iseucjpms(*(p)) && (e)-(p)>1 && iseucjpms(*((p)+1))? 2:\ + iseucjpms_ss2(*(p)) && (e)-(p)>1 && iskata(*((p)+1))? 2:\ + iseucjpms_ss3(*(p)) && (e)-(p)>2 && iseucjpms(*((p)+1)) && iseucjpms(*((p)+2))? 3:\ + 0); +} + +static uint mbcharlen_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (iseucjpms(c)? 2: iseucjpms_ss2(c)? 2: iseucjpms_ss3(c)? 3: 1); +} + + + +/* Case info pages for JIS-X-0208 range */ + +static const MY_UNICASE_CHARACTER cA2[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA2A0,0xA2A0,0x003F}, /* A2A0 */ + {0xA2A1,0xA2A1,0x25C6}, + {0xA2A2,0xA2A2,0x25A1}, + {0xA2A3,0xA2A3,0x25A0}, + {0xA2A4,0xA2A4,0x25B3}, + {0xA2A5,0xA2A5,0x25B2}, + {0xA2A6,0xA2A6,0x25BD}, + {0xA2A7,0xA2A7,0x25BC}, + {0xA2A8,0xA2A8,0x203B}, + {0xA2A9,0xA2A9,0x3012}, + {0xA2AA,0xA2AA,0x2192}, + {0xA2AB,0xA2AB,0x2190}, + {0xA2AC,0xA2AC,0x2191}, + {0xA2AD,0xA2AD,0x2193}, + {0xA2AE,0xA2AE,0x3013}, + {0xA2AF,0xA2AF,0x003F}, + {0xA2B0,0xA2B0,0x003F}, /* A2B0 */ + {0xA2B1,0xA2B1,0x003F}, + {0xA2B2,0xA2B2,0x003F}, + {0xA2B3,0xA2B3,0x003F}, + {0xA2B4,0xA2B4,0x003F}, + {0xA2B5,0xA2B5,0x003F}, + {0xA2B6,0xA2B6,0x003F}, + {0xA2B7,0xA2B7,0x003F}, + {0xA2B8,0xA2B8,0x003F}, + {0xA2B9,0xA2B9,0x003F}, + {0xA2BA,0xA2BA,0x2208}, + {0xA2BB,0xA2BB,0x220B}, + {0xA2BC,0xA2BC,0x2286}, + {0xA2BD,0xA2BD,0x2287}, + {0xA2BE,0xA2BE,0x2282}, + {0xA2BF,0xA2BF,0x2283}, + {0xA2C0,0xA2C0,0x222A}, /* A2C0 */ + {0xA2C1,0xA2C1,0x2229}, + {0xA2C2,0xA2C2,0x003F}, + {0xA2C3,0xA2C3,0x003F}, + {0xA2C4,0xA2C4,0x003F}, + {0xA2C5,0xA2C5,0x003F}, + {0xA2C6,0xA2C6,0x003F}, + {0xA2C7,0xA2C7,0x003F}, + {0xA2C8,0xA2C8,0x003F}, + {0xA2C9,0xA2C9,0x003F}, + {0xA2CA,0xA2CA,0x2227}, + {0xA2CB,0xA2CB,0x2228}, + {0xA2CC,0xA2CC,0xFFE2}, + {0xA2CD,0xA2CD,0x21D2}, + {0xA2CE,0xA2CE,0x21D4}, + {0xA2CF,0xA2CF,0x2200}, + {0xA2D0,0xA2D0,0x2203}, /* A2D0 */ + {0xA2D1,0xA2D1,0x003F}, + {0xA2D2,0xA2D2,0x003F}, + {0xA2D3,0xA2D3,0x003F}, + {0xA2D4,0xA2D4,0x003F}, + {0xA2D5,0xA2D5,0x003F}, + {0xA2D6,0xA2D6,0x003F}, + {0xA2D7,0xA2D7,0x003F}, + {0xA2D8,0xA2D8,0x003F}, + {0xA2D9,0xA2D9,0x003F}, + {0xA2DA,0xA2DA,0x003F}, + {0xA2DB,0xA2DB,0x003F}, + {0xA2DC,0xA2DC,0x2220}, + {0xA2DD,0xA2DD,0x22A5}, + {0xA2DE,0xA2DE,0x2312}, + {0xA2DF,0xA2DF,0x2202}, + {0xA2E0,0xA2E0,0x2207}, /* A2E0 */ + {0xA2E1,0xA2E1,0x2261}, + {0xA2E2,0xA2E2,0x2252}, + {0xA2E3,0xA2E3,0x226A}, + {0xA2E4,0xA2E4,0x226B}, + {0xA2E5,0xA2E5,0x221A}, + {0xA2E6,0xA2E6,0x223D}, + {0xA2E7,0xA2E7,0x221D}, + {0xA2E8,0xA2E8,0x2235}, + {0xA2E9,0xA2E9,0x222B}, + {0xA2EA,0xA2EA,0x222C}, + {0xA2EB,0xA2EB,0x003F}, + {0xA2EC,0xA2EC,0x003F}, + {0xA2ED,0xA2ED,0x003F}, + {0xA2EE,0xA2EE,0x003F}, + {0xA2EF,0xA2EF,0x003F}, + {0xA2F0,0xA2F0,0x003F}, /* A2F0 */ + {0xA2F1,0xA2F1,0x003F}, + {0xA2F2,0x8FABA9,0x212B}, + {0xA2F3,0xA2F3,0x2030}, + {0xA2F4,0xA2F4,0x266F}, + {0xA2F5,0xA2F5,0x266D}, + {0xA2F6,0xA2F6,0x266A}, + {0xA2F7,0xA2F7,0x2020}, + {0xA2F8,0xA2F8,0x2021}, + {0xA2F9,0xA2F9,0x00B6}, + {0xA2FA,0xA2FA,0x003F}, + {0xA2FB,0xA2FB,0x003F}, + {0xA2FC,0xA2FC,0x003F}, + {0xA2FD,0xA2FD,0x003F}, + {0xA2FE,0xA2FE,0x25EF}, + {0xA2FF,0xA2FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER cA3[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA3A0,0xA3A0,0x003F}, /* A3A0 */ + {0xA3A1,0xA3A1,0x003F}, + {0xA3A2,0xA3A2,0x003F}, + {0xA3A3,0xA3A3,0x003F}, + {0xA3A4,0xA3A4,0x003F}, + {0xA3A5,0xA3A5,0x003F}, + {0xA3A6,0xA3A6,0x003F}, + {0xA3A7,0xA3A7,0x003F}, + {0xA3A8,0xA3A8,0x003F}, + {0xA3A9,0xA3A9,0x003F}, + {0xA3AA,0xA3AA,0x003F}, + {0xA3AB,0xA3AB,0x003F}, + {0xA3AC,0xA3AC,0x003F}, + {0xA3AD,0xA3AD,0x003F}, + {0xA3AE,0xA3AE,0x003F}, + {0xA3AF,0xA3AF,0x003F}, + {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */ + {0xA3B1,0xA3B1,0xFF11}, + {0xA3B2,0xA3B2,0xFF12}, + {0xA3B3,0xA3B3,0xFF13}, + {0xA3B4,0xA3B4,0xFF14}, + {0xA3B5,0xA3B5,0xFF15}, + {0xA3B6,0xA3B6,0xFF16}, + {0xA3B7,0xA3B7,0xFF17}, + {0xA3B8,0xA3B8,0xFF18}, + {0xA3B9,0xA3B9,0xFF19}, + {0xA3BA,0xA3BA,0x003F}, + {0xA3BB,0xA3BB,0x003F}, + {0xA3BC,0xA3BC,0x003F}, + {0xA3BD,0xA3BD,0x003F}, + {0xA3BE,0xA3BE,0x003F}, + {0xA3BF,0xA3BF,0x003F}, + {0xA3C0,0xA3C0,0x003F}, /* A3C0 */ + {0xA3C1,0xA3E1,0xFF21}, + {0xA3C2,0xA3E2,0xFF22}, + {0xA3C3,0xA3E3,0xFF23}, + {0xA3C4,0xA3E4,0xFF24}, + {0xA3C5,0xA3E5,0xFF25}, + {0xA3C6,0xA3E6,0xFF26}, + {0xA3C7,0xA3E7,0xFF27}, + {0xA3C8,0xA3E8,0xFF28}, + {0xA3C9,0xA3E9,0xFF29}, + {0xA3CA,0xA3EA,0xFF2A}, + {0xA3CB,0xA3EB,0xFF2B}, + {0xA3CC,0xA3EC,0xFF2C}, + {0xA3CD,0xA3ED,0xFF2D}, + {0xA3CE,0xA3EE,0xFF2E}, + {0xA3CF,0xA3EF,0xFF2F}, + {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */ + {0xA3D1,0xA3F1,0xFF31}, + {0xA3D2,0xA3F2,0xFF32}, + {0xA3D3,0xA3F3,0xFF33}, + {0xA3D4,0xA3F4,0xFF34}, + {0xA3D5,0xA3F5,0xFF35}, + {0xA3D6,0xA3F6,0xFF36}, + {0xA3D7,0xA3F7,0xFF37}, + {0xA3D8,0xA3F8,0xFF38}, + {0xA3D9,0xA3F9,0xFF39}, + {0xA3DA,0xA3FA,0xFF3A}, + {0xA3DB,0xA3DB,0x003F}, + {0xA3DC,0xA3DC,0x003F}, + {0xA3DD,0xA3DD,0x003F}, + {0xA3DE,0xA3DE,0x003F}, + {0xA3DF,0xA3DF,0x003F}, + {0xA3E0,0xA3E0,0x003F}, /* A3E0 */ + {0xA3C1,0xA3E1,0xFF41}, + {0xA3C2,0xA3E2,0xFF42}, + {0xA3C3,0xA3E3,0xFF43}, + {0xA3C4,0xA3E4,0xFF44}, + {0xA3C5,0xA3E5,0xFF45}, + {0xA3C6,0xA3E6,0xFF46}, + {0xA3C7,0xA3E7,0xFF47}, + {0xA3C8,0xA3E8,0xFF48}, + {0xA3C9,0xA3E9,0xFF49}, + {0xA3CA,0xA3EA,0xFF4A}, + {0xA3CB,0xA3EB,0xFF4B}, + {0xA3CC,0xA3EC,0xFF4C}, + {0xA3CD,0xA3ED,0xFF4D}, + {0xA3CE,0xA3EE,0xFF4E}, + {0xA3CF,0xA3EF,0xFF4F}, + {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */ + {0xA3D1,0xA3F1,0xFF51}, + {0xA3D2,0xA3F2,0xFF52}, + {0xA3D3,0xA3F3,0xFF53}, + {0xA3D4,0xA3F4,0xFF54}, + {0xA3D5,0xA3F5,0xFF55}, + {0xA3D6,0xA3F6,0xFF56}, + {0xA3D7,0xA3F7,0xFF57}, + {0xA3D8,0xA3F8,0xFF58}, + {0xA3D9,0xA3F9,0xFF59}, + {0xA3DA,0xA3FA,0xFF5A}, + {0xA3FB,0xA3FB,0x003F}, + {0xA3FC,0xA3FC,0x003F}, + {0xA3FD,0xA3FD,0x003F}, + {0xA3FE,0xA3FE,0x003F}, + {0xA3FF,0xA3FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER cA6[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA6A0,0xA6A0,0x003F}, /* A6A0 */ + {0xA6A1,0xA6C1,0x0391}, + {0xA6A2,0xA6C2,0x0392}, + {0xA6A3,0xA6C3,0x0393}, + {0xA6A4,0xA6C4,0x0394}, + {0xA6A5,0xA6C5,0x0395}, + {0xA6A6,0xA6C6,0x0396}, + {0xA6A7,0xA6C7,0x0397}, + {0xA6A8,0xA6C8,0x0398}, + {0xA6A9,0xA6C9,0x0399}, + {0xA6AA,0xA6CA,0x039A}, + {0xA6AB,0xA6CB,0x039B}, + {0xA6AC,0xA6CC,0x039C}, + {0xA6AD,0xA6CD,0x039D}, + {0xA6AE,0xA6CE,0x039E}, + {0xA6AF,0xA6CF,0x039F}, + {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */ + {0xA6B1,0xA6D1,0x03A1}, + {0xA6B2,0xA6D2,0x03A3}, + {0xA6B3,0xA6D3,0x03A4}, + {0xA6B4,0xA6D4,0x03A5}, + {0xA6B5,0xA6D5,0x03A6}, + {0xA6B6,0xA6D6,0x03A7}, + {0xA6B7,0xA6D7,0x03A8}, + {0xA6B8,0xA6D8,0x03A9}, + {0xA6B9,0xA6B9,0x003F}, + {0xA6BA,0xA6BA,0x003F}, + {0xA6BB,0xA6BB,0x003F}, + {0xA6BC,0xA6BC,0x003F}, + {0xA6BD,0xA6BD,0x003F}, + {0xA6BE,0xA6BE,0x003F}, + {0xA6BF,0xA6BF,0x003F}, + {0xA6C0,0xA6C0,0x003F}, /* A6C0 */ + {0xA6A1,0xA6C1,0x03B1}, + {0xA6A2,0xA6C2,0x03B2}, + {0xA6A3,0xA6C3,0x03B3}, + {0xA6A4,0xA6C4,0x03B4}, + {0xA6A5,0xA6C5,0x03B5}, + {0xA6A6,0xA6C6,0x03B6}, + {0xA6A7,0xA6C7,0x03B7}, + {0xA6A8,0xA6C8,0x03B8}, + {0xA6A9,0xA6C9,0x03B9}, + {0xA6AA,0xA6CA,0x03BA}, + {0xA6AB,0xA6CB,0x03BB}, + {0xA6AC,0xA6CC,0x03BC}, + {0xA6AD,0xA6CD,0x03BD}, + {0xA6AE,0xA6CE,0x03BE}, + {0xA6AF,0xA6CF,0x03BF}, + {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */ + {0xA6B1,0xA6D1,0x03C1}, + {0xA6B2,0xA6D2,0x03C3}, + {0xA6B3,0xA6D3,0x03C4}, + {0xA6B4,0xA6D4,0x03C5}, + {0xA6B5,0xA6D5,0x03C6}, + {0xA6B6,0xA6D6,0x03C7}, + {0xA6B7,0xA6D7,0x03C8}, + {0xA6B8,0xA6D8,0x03C9}, + {0xA6D9,0xA6D9,0x003F}, + {0xA6DA,0xA6DA,0x003F}, + {0xA6DB,0xA6DB,0x003F}, + {0xA6DC,0xA6DC,0x003F}, + {0xA6DD,0xA6DD,0x003F}, + {0xA6DE,0xA6DE,0x003F}, + {0xA6DF,0xA6DF,0x003F}, + {0xA6E0,0xA6E0,0x003F}, /* A6E0 */ + {0xA6E1,0xA6E1,0x003F}, + {0xA6E2,0xA6E2,0x003F}, + {0xA6E3,0xA6E3,0x003F}, + {0xA6E4,0xA6E4,0x003F}, + {0xA6E5,0xA6E5,0x003F}, + {0xA6E6,0xA6E6,0x003F}, + {0xA6E7,0xA6E7,0x003F}, + {0xA6E8,0xA6E8,0x003F}, + {0xA6E9,0xA6E9,0x003F}, + {0xA6EA,0xA6EA,0x003F}, + {0xA6EB,0xA6EB,0x003F}, + {0xA6EC,0xA6EC,0x003F}, + {0xA6ED,0xA6ED,0x003F}, + {0xA6EE,0xA6EE,0x003F}, + {0xA6EF,0xA6EF,0x003F}, + {0xA6F0,0xA6F0,0x003F}, /* A6F0 */ + {0xA6F1,0xA6F1,0x003F}, + {0xA6F2,0xA6F2,0x003F}, + {0xA6F3,0xA6F3,0x003F}, + {0xA6F4,0xA6F4,0x003F}, + {0xA6F5,0xA6F5,0x003F}, + {0xA6F6,0xA6F6,0x003F}, + {0xA6F7,0xA6F7,0x003F}, + {0xA6F8,0xA6F8,0x003F}, + {0xA6F9,0xA6F9,0x003F}, + {0xA6FA,0xA6FA,0x003F}, + {0xA6FB,0xA6FB,0x003F}, + {0xA6FC,0xA6FC,0x003F}, + {0xA6FD,0xA6FD,0x003F}, + {0xA6FE,0xA6FE,0x003F}, + {0xA6FF,0xA6FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER cA7[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA7A0,0xA7A0,0x003F}, /* A7A0 */ + {0xA7A1,0xA7D1,0x0410}, + {0xA7A2,0xA7D2,0x0411}, + {0xA7A3,0xA7D3,0x0412}, + {0xA7A4,0xA7D4,0x0413}, + {0xA7A5,0xA7D5,0x0414}, + {0xA7A6,0xA7D6,0x0415}, + {0xA7A7,0xA7D7,0x0401}, + {0xA7A8,0xA7D8,0x0416}, + {0xA7A9,0xA7D9,0x0417}, + {0xA7AA,0xA7DA,0x0418}, + {0xA7AB,0xA7DB,0x0419}, + {0xA7AC,0xA7DC,0x041A}, + {0xA7AD,0xA7DD,0x041B}, + {0xA7AE,0xA7DE,0x041C}, + {0xA7AF,0xA7DF,0x041D}, + {0xA7B0,0xA7E0,0x041E}, /* A7B0 */ + {0xA7B1,0xA7E1,0x041F}, + {0xA7B2,0xA7E2,0x0420}, + {0xA7B3,0xA7E3,0x0421}, + {0xA7B4,0xA7E4,0x0422}, + {0xA7B5,0xA7E5,0x0423}, + {0xA7B6,0xA7E6,0x0424}, + {0xA7B7,0xA7E7,0x0425}, + {0xA7B8,0xA7E8,0x0426}, + {0xA7B9,0xA7E9,0x0427}, + {0xA7BA,0xA7EA,0x0428}, + {0xA7BB,0xA7EB,0x0429}, + {0xA7BC,0xA7EC,0x042A}, + {0xA7BD,0xA7ED,0x042B}, + {0xA7BE,0xA7EE,0x042C}, + {0xA7BF,0xA7EF,0x042D}, + {0xA7C0,0xA7F0,0x042E}, /* A7C0 */ + {0xA7C1,0xA7F1,0x042F}, + {0xA7C2,0xA7C2,0x003F}, + {0xA7C3,0xA7C3,0x003F}, + {0xA7C4,0xA7C4,0x003F}, + {0xA7C5,0xA7C5,0x003F}, + {0xA7C6,0xA7C6,0x003F}, + {0xA7C7,0xA7C7,0x003F}, + {0xA7C8,0xA7C8,0x003F}, + {0xA7C9,0xA7C9,0x003F}, + {0xA7CA,0xA7CA,0x003F}, + {0xA7CB,0xA7CB,0x003F}, + {0xA7CC,0xA7CC,0x003F}, + {0xA7CD,0xA7CD,0x003F}, + {0xA7CE,0xA7CE,0x003F}, + {0xA7CF,0xA7CF,0x003F}, + {0xA7D0,0xA7D0,0x003F}, /* A7D0 */ + {0xA7A1,0xA7D1,0x0430}, + {0xA7A2,0xA7D2,0x0431}, + {0xA7A3,0xA7D3,0x0432}, + {0xA7A4,0xA7D4,0x0433}, + {0xA7A5,0xA7D5,0x0434}, + {0xA7A6,0xA7D6,0x0435}, + {0xA7A7,0xA7D7,0x0451}, + {0xA7A8,0xA7D8,0x0436}, + {0xA7A9,0xA7D9,0x0437}, + {0xA7AA,0xA7DA,0x0438}, + {0xA7AB,0xA7DB,0x0439}, + {0xA7AC,0xA7DC,0x043A}, + {0xA7AD,0xA7DD,0x043B}, + {0xA7AE,0xA7DE,0x043C}, + {0xA7AF,0xA7DF,0x043D}, + {0xA7B0,0xA7E0,0x043E}, /* A7E0 */ + {0xA7B1,0xA7E1,0x043F}, + {0xA7B2,0xA7E2,0x0440}, + {0xA7B3,0xA7E3,0x0441}, + {0xA7B4,0xA7E4,0x0442}, + {0xA7B5,0xA7E5,0x0443}, + {0xA7B6,0xA7E6,0x0444}, + {0xA7B7,0xA7E7,0x0445}, + {0xA7B8,0xA7E8,0x0446}, + {0xA7B9,0xA7E9,0x0447}, + {0xA7BA,0xA7EA,0x0448}, + {0xA7BB,0xA7EB,0x0449}, + {0xA7BC,0xA7EC,0x044A}, + {0xA7BD,0xA7ED,0x044B}, + {0xA7BE,0xA7EE,0x044C}, + {0xA7BF,0xA7EF,0x044D}, + {0xA7C0,0xA7F0,0x044E}, /* A7F0 */ + {0xA7C1,0xA7F1,0x044F}, + {0xA7F2,0xA7F2,0x003F}, + {0xA7F3,0xA7F3,0x003F}, + {0xA7F4,0xA7F4,0x003F}, + {0xA7F5,0xA7F5,0x003F}, + {0xA7F6,0xA7F6,0x003F}, + {0xA7F7,0xA7F7,0x003F}, + {0xA7F8,0xA7F8,0x003F}, + {0xA7F9,0xA7F9,0x003F}, + {0xA7FA,0xA7FA,0x003F}, + {0xA7FB,0xA7FB,0x003F}, + {0xA7FC,0xA7FC,0x003F}, + {0xA7FD,0xA7FD,0x003F}, + {0xA7FE,0xA7FE,0x003F}, + {0xA7FF,0xA7FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER cAD[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xADA0,0xADA0,0x003F}, /* ADA0 */ + {0xADA1,0xADA1,0x2460}, + {0xADA2,0xADA2,0x2461}, + {0xADA3,0xADA3,0x2462}, + {0xADA4,0xADA4,0x2463}, + {0xADA5,0xADA5,0x2464}, + {0xADA6,0xADA6,0x2465}, + {0xADA7,0xADA7,0x2466}, + {0xADA8,0xADA8,0x2467}, + {0xADA9,0xADA9,0x2468}, + {0xADAA,0xADAA,0x2469}, + {0xADAB,0xADAB,0x246A}, + {0xADAC,0xADAC,0x246B}, + {0xADAD,0xADAD,0x246C}, + {0xADAE,0xADAE,0x246D}, + {0xADAF,0xADAF,0x246E}, + {0xADB0,0xADB0,0x246F}, /* ADB0 */ + {0xADB1,0xADB1,0x2470}, + {0xADB2,0xADB2,0x2471}, + {0xADB3,0xADB3,0x2472}, + {0xADB4,0xADB4,0x2473}, + {0xADB5,0x8FF3F3,0x2160}, + {0xADB6,0x8FF3F4,0x2161}, + {0xADB7,0x8FF3F5,0x2162}, + {0xADB8,0x8FF3F6,0x2163}, + {0xADB9,0x8FF3F7,0x2164}, + {0xADBA,0x8FF3F8,0x2165}, + {0xADBB,0x8FF3F9,0x2166}, + {0xADBC,0x8FF3FA,0x2167}, + {0xADBD,0x8FF3FB,0x2168}, + {0xADBE,0x8FF3FC,0x2169}, + {0xADBF,0xADBF,0x003F}, + {0xADC0,0xADC0,0x3349}, /* ADC0 */ + {0xADC1,0xADC1,0x3314}, + {0xADC2,0xADC2,0x3322}, + {0xADC3,0xADC3,0x334D}, + {0xADC4,0xADC4,0x3318}, + {0xADC5,0xADC5,0x3327}, + {0xADC6,0xADC6,0x3303}, + {0xADC7,0xADC7,0x3336}, + {0xADC8,0xADC8,0x3351}, + {0xADC9,0xADC9,0x3357}, + {0xADCA,0xADCA,0x330D}, + {0xADCB,0xADCB,0x3326}, + {0xADCC,0xADCC,0x3323}, + {0xADCD,0xADCD,0x332B}, + {0xADCE,0xADCE,0x334A}, + {0xADCF,0xADCF,0x333B}, + {0xADD0,0xADD0,0x339C}, /* ADD0 */ + {0xADD1,0xADD1,0x339D}, + {0xADD2,0xADD2,0x339E}, + {0xADD3,0xADD3,0x338E}, + {0xADD4,0xADD4,0x338F}, + {0xADD5,0xADD5,0x33C4}, + {0xADD6,0xADD6,0x33A1}, + {0xADD7,0xADD7,0x003F}, + {0xADD8,0xADD8,0x003F}, + {0xADD9,0xADD9,0x003F}, + {0xADDA,0xADDA,0x003F}, + {0xADDB,0xADDB,0x003F}, + {0xADDC,0xADDC,0x003F}, + {0xADDD,0xADDD,0x003F}, + {0xADDE,0xADDE,0x003F}, + {0xADDF,0xADDF,0x337B}, + {0xADE0,0xADE0,0x301D}, /* ADE0 */ + {0xADE1,0xADE1,0x301F}, + {0xADE2,0xADE2,0x2116}, + {0xADE3,0xADE3,0x33CD}, + {0xADE4,0xADE4,0x2121}, + {0xADE5,0xADE5,0x32A4}, + {0xADE6,0xADE6,0x32A5}, + {0xADE7,0xADE7,0x32A6}, + {0xADE8,0xADE8,0x32A7}, + {0xADE9,0xADE9,0x32A8}, + {0xADEA,0xADEA,0x3231}, + {0xADEB,0xADEB,0x3232}, + {0xADEC,0xADEC,0x3239}, + {0xADED,0xADED,0x337E}, + {0xADEE,0xADEE,0x337D}, + {0xADEF,0xADEF,0x337C}, + {0xADF0,0xADF0,0x2252}, /* ADF0 */ + {0xADF1,0xADF1,0x2261}, + {0xADF2,0xADF2,0x222B}, + {0xADF3,0xADF3,0x222E}, + {0xADF4,0xADF4,0x2211}, + {0xADF5,0xADF5,0x221A}, + {0xADF6,0xADF6,0x22A5}, + {0xADF7,0xADF7,0x2220}, + {0xADF8,0xADF8,0x221F}, + {0xADF9,0xADF9,0x22BF}, + {0xADFA,0xADFA,0x2235}, + {0xADFB,0xADFB,0x2229}, + {0xADFC,0xADFC,0x222A}, + {0xADFD,0xADFD,0x003F}, + {0xADFE,0xADFE,0x003F}, + {0xADFF,0xADFF,0x003F}, +}; + + +/* Case info pages for JIS-X-0212 range */ + +static const MY_UNICASE_CHARACTER c8FA6[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FA6A0,0x8FA6A0,0x003F}, /* 8FA6A0 */ + {0x8FA6A1,0x8FA6A1,0x003F}, + {0x8FA6A2,0x8FA6A2,0x003F}, + {0x8FA6A3,0x8FA6A3,0x003F}, + {0x8FA6A4,0x8FA6A4,0x003F}, + {0x8FA6A5,0x8FA6A5,0x003F}, + {0x8FA6A6,0x8FA6A6,0x003F}, + {0x8FA6A7,0x8FA6A7,0x003F}, + {0x8FA6A8,0x8FA6A8,0x003F}, + {0x8FA6A9,0x8FA6A9,0x003F}, + {0x8FA6AA,0x8FA6AA,0x003F}, + {0x8FA6AB,0x8FA6AB,0x003F}, + {0x8FA6AC,0x8FA6AC,0x003F}, + {0x8FA6AD,0x8FA6AD,0x003F}, + {0x8FA6AE,0x8FA6AE,0x003F}, + {0x8FA6AF,0x8FA6AF,0x003F}, + {0x8FA6B0,0x8FA6B0,0x003F}, /* 8FA6B0 */ + {0x8FA6B1,0x8FA6B1,0x003F}, + {0x8FA6B2,0x8FA6B2,0x003F}, + {0x8FA6B3,0x8FA6B3,0x003F}, + {0x8FA6B4,0x8FA6B4,0x003F}, + {0x8FA6B5,0x8FA6B5,0x003F}, + {0x8FA6B6,0x8FA6B6,0x003F}, + {0x8FA6B7,0x8FA6B7,0x003F}, + {0x8FA6B8,0x8FA6B8,0x003F}, + {0x8FA6B9,0x8FA6B9,0x003F}, + {0x8FA6BA,0x8FA6BA,0x003F}, + {0x8FA6BB,0x8FA6BB,0x003F}, + {0x8FA6BC,0x8FA6BC,0x003F}, + {0x8FA6BD,0x8FA6BD,0x003F}, + {0x8FA6BE,0x8FA6BE,0x003F}, + {0x8FA6BF,0x8FA6BF,0x003F}, + {0x8FA6C0,0x8FA6C0,0x003F}, /* 8FA6C0 */ + {0x8FA6C1,0x8FA6C1,0x003F}, + {0x8FA6C2,0x8FA6C2,0x003F}, + {0x8FA6C3,0x8FA6C3,0x003F}, + {0x8FA6C4,0x8FA6C4,0x003F}, + {0x8FA6C5,0x8FA6C5,0x003F}, + {0x8FA6C6,0x8FA6C6,0x003F}, + {0x8FA6C7,0x8FA6C7,0x003F}, + {0x8FA6C8,0x8FA6C8,0x003F}, + {0x8FA6C9,0x8FA6C9,0x003F}, + {0x8FA6CA,0x8FA6CA,0x003F}, + {0x8FA6CB,0x8FA6CB,0x003F}, + {0x8FA6CC,0x8FA6CC,0x003F}, + {0x8FA6CD,0x8FA6CD,0x003F}, + {0x8FA6CE,0x8FA6CE,0x003F}, + {0x8FA6CF,0x8FA6CF,0x003F}, + {0x8FA6D0,0x8FA6D0,0x003F}, /* 8FA6D0 */ + {0x8FA6D1,0x8FA6D1,0x003F}, + {0x8FA6D2,0x8FA6D2,0x003F}, + {0x8FA6D3,0x8FA6D3,0x003F}, + {0x8FA6D4,0x8FA6D4,0x003F}, + {0x8FA6D5,0x8FA6D5,0x003F}, + {0x8FA6D6,0x8FA6D6,0x003F}, + {0x8FA6D7,0x8FA6D7,0x003F}, + {0x8FA6D8,0x8FA6D8,0x003F}, + {0x8FA6D9,0x8FA6D9,0x003F}, + {0x8FA6DA,0x8FA6DA,0x003F}, + {0x8FA6DB,0x8FA6DB,0x003F}, + {0x8FA6DC,0x8FA6DC,0x003F}, + {0x8FA6DD,0x8FA6DD,0x003F}, + {0x8FA6DE,0x8FA6DE,0x003F}, + {0x8FA6DF,0x8FA6DF,0x003F}, + {0x8FA6E0,0x8FA6E0,0x003F}, /* 8FA6E0 */ + {0x8FA6E1,0x8FA6F1,0x0386}, + {0x8FA6E2,0x8FA6F2,0x0388}, + {0x8FA6E3,0x8FA6F3,0x0389}, + {0x8FA6E4,0x8FA6F4,0x038A}, + {0x8FA6E5,0x8FA6F5,0x03AA}, + {0x8FA6E6,0x8FA6E6,0x003F}, + {0x8FA6E7,0x8FA6F7,0x038C}, + {0x8FA6E8,0x8FA6E8,0x003F}, + {0x8FA6E9,0x8FA6F9,0x038E}, + {0x8FA6EA,0x8FA6FA,0x03AB}, + {0x8FA6EB,0x8FA6EB,0x003F}, + {0x8FA6EC,0x8FA6FC,0x038F}, + {0x8FA6ED,0x8FA6ED,0x003F}, + {0x8FA6EE,0x8FA6EE,0x003F}, + {0x8FA6EF,0x8FA6EF,0x003F}, + {0x8FA6F0,0x8FA6F0,0x003F}, /* 8FA6F0 */ + {0x8FA6E1,0x8FA6F1,0x03AC}, + {0x8FA6E2,0x8FA6F2,0x03AD}, + {0x8FA6E3,0x8FA6F3,0x03AE}, + {0x8FA6E4,0x8FA6F4,0x03AF}, + {0x8FA6E5,0x8FA6F5,0x03CA}, + {0x8FA6F6,0x8FA6F6,0x0390}, + {0x8FA6E7,0x8FA6F7,0x03CC}, + {0xA6B2,0x8FA6F8,0x03C2}, + {0x8FA6E9,0x8FA6F9,0x03CD}, + {0x8FA6EA,0x8FA6FA,0x03CB}, + {0x8FA6FB,0x8FA6FB,0x03B0}, + {0x8FA6EC,0x8FA6FC,0x03CE}, + {0x8FA6FD,0x8FA6FD,0x003F}, + {0x8FA6FE,0x8FA6FE,0x003F}, + {0x8FA6FF,0x8FA6FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FA7[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FA7A0,0x8FA7A0,0x003F}, /* 8FA7A0 */ + {0x8FA7A1,0x8FA7A1,0x003F}, + {0x8FA7A2,0x8FA7A2,0x003F}, + {0x8FA7A3,0x8FA7A3,0x003F}, + {0x8FA7A4,0x8FA7A4,0x003F}, + {0x8FA7A5,0x8FA7A5,0x003F}, + {0x8FA7A6,0x8FA7A6,0x003F}, + {0x8FA7A7,0x8FA7A7,0x003F}, + {0x8FA7A8,0x8FA7A8,0x003F}, + {0x8FA7A9,0x8FA7A9,0x003F}, + {0x8FA7AA,0x8FA7AA,0x003F}, + {0x8FA7AB,0x8FA7AB,0x003F}, + {0x8FA7AC,0x8FA7AC,0x003F}, + {0x8FA7AD,0x8FA7AD,0x003F}, + {0x8FA7AE,0x8FA7AE,0x003F}, + {0x8FA7AF,0x8FA7AF,0x003F}, + {0x8FA7B0,0x8FA7B0,0x003F}, /* 8FA7B0 */ + {0x8FA7B1,0x8FA7B1,0x003F}, + {0x8FA7B2,0x8FA7B2,0x003F}, + {0x8FA7B3,0x8FA7B3,0x003F}, + {0x8FA7B4,0x8FA7B4,0x003F}, + {0x8FA7B5,0x8FA7B5,0x003F}, + {0x8FA7B6,0x8FA7B6,0x003F}, + {0x8FA7B7,0x8FA7B7,0x003F}, + {0x8FA7B8,0x8FA7B8,0x003F}, + {0x8FA7B9,0x8FA7B9,0x003F}, + {0x8FA7BA,0x8FA7BA,0x003F}, + {0x8FA7BB,0x8FA7BB,0x003F}, + {0x8FA7BC,0x8FA7BC,0x003F}, + {0x8FA7BD,0x8FA7BD,0x003F}, + {0x8FA7BE,0x8FA7BE,0x003F}, + {0x8FA7BF,0x8FA7BF,0x003F}, + {0x8FA7C0,0x8FA7C0,0x003F}, /* 8FA7C0 */ + {0x8FA7C1,0x8FA7C1,0x003F}, + {0x8FA7C2,0x8FA7F2,0x0402}, + {0x8FA7C3,0x8FA7F3,0x0403}, + {0x8FA7C4,0x8FA7F4,0x0404}, + {0x8FA7C5,0x8FA7F5,0x0405}, + {0x8FA7C6,0x8FA7F6,0x0406}, + {0x8FA7C7,0x8FA7F7,0x0407}, + {0x8FA7C8,0x8FA7F8,0x0408}, + {0x8FA7C9,0x8FA7F9,0x0409}, + {0x8FA7CA,0x8FA7FA,0x040A}, + {0x8FA7CB,0x8FA7FB,0x040B}, + {0x8FA7CC,0x8FA7FC,0x040C}, + {0x8FA7CD,0x8FA7FD,0x040E}, + {0x8FA7CE,0x8FA7FE,0x040F}, + {0x8FA7CF,0x8FA7CF,0x003F}, + {0x8FA7D0,0x8FA7D0,0x003F}, /* 8FA7D0 */ + {0x8FA7D1,0x8FA7D1,0x003F}, + {0x8FA7D2,0x8FA7D2,0x003F}, + {0x8FA7D3,0x8FA7D3,0x003F}, + {0x8FA7D4,0x8FA7D4,0x003F}, + {0x8FA7D5,0x8FA7D5,0x003F}, + {0x8FA7D6,0x8FA7D6,0x003F}, + {0x8FA7D7,0x8FA7D7,0x003F}, + {0x8FA7D8,0x8FA7D8,0x003F}, + {0x8FA7D9,0x8FA7D9,0x003F}, + {0x8FA7DA,0x8FA7DA,0x003F}, + {0x8FA7DB,0x8FA7DB,0x003F}, + {0x8FA7DC,0x8FA7DC,0x003F}, + {0x8FA7DD,0x8FA7DD,0x003F}, + {0x8FA7DE,0x8FA7DE,0x003F}, + {0x8FA7DF,0x8FA7DF,0x003F}, + {0x8FA7E0,0x8FA7E0,0x003F}, /* 8FA7E0 */ + {0x8FA7E1,0x8FA7E1,0x003F}, + {0x8FA7E2,0x8FA7E2,0x003F}, + {0x8FA7E3,0x8FA7E3,0x003F}, + {0x8FA7E4,0x8FA7E4,0x003F}, + {0x8FA7E5,0x8FA7E5,0x003F}, + {0x8FA7E6,0x8FA7E6,0x003F}, + {0x8FA7E7,0x8FA7E7,0x003F}, + {0x8FA7E8,0x8FA7E8,0x003F}, + {0x8FA7E9,0x8FA7E9,0x003F}, + {0x8FA7EA,0x8FA7EA,0x003F}, + {0x8FA7EB,0x8FA7EB,0x003F}, + {0x8FA7EC,0x8FA7EC,0x003F}, + {0x8FA7ED,0x8FA7ED,0x003F}, + {0x8FA7EE,0x8FA7EE,0x003F}, + {0x8FA7EF,0x8FA7EF,0x003F}, + {0x8FA7F0,0x8FA7F0,0x003F}, /* 8FA7F0 */ + {0x8FA7F1,0x8FA7F1,0x003F}, + {0x8FA7C2,0x8FA7F2,0x0452}, + {0x8FA7C3,0x8FA7F3,0x0453}, + {0x8FA7C4,0x8FA7F4,0x0454}, + {0x8FA7C5,0x8FA7F5,0x0455}, + {0x8FA7C6,0x8FA7F6,0x0456}, + {0x8FA7C7,0x8FA7F7,0x0457}, + {0x8FA7C8,0x8FA7F8,0x0458}, + {0x8FA7C9,0x8FA7F9,0x0459}, + {0x8FA7CA,0x8FA7FA,0x045A}, + {0x8FA7CB,0x8FA7FB,0x045B}, + {0x8FA7CC,0x8FA7FC,0x045C}, + {0x8FA7CD,0x8FA7FD,0x045E}, + {0x8FA7CE,0x8FA7FE,0x045F}, + {0x8FA7FF,0x8FA7FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FA9[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FA9A0,0x8FA9A0,0x003F}, /* 8FA9A0 */ + {0x8FA9A1,0x8FA9C1,0x00C6}, + {0x8FA9A2,0x8FA9C2,0x0110}, + {0x8FA9A3,0x8FA9A3,0x003F}, + {0x8FA9A4,0x8FA9C4,0x0126}, + {0x8FA9A5,0x8FA9A5,0x003F}, + {0x8FA9A6,0x8FA9C6,0x0132}, + {0x8FA9A7,0x8FA9A7,0x003F}, + {0x8FA9A8,0x8FA9C8,0x0141}, + {0x8FA9A9,0x8FA9C9,0x013F}, + {0x8FA9AA,0x8FA9AA,0x003F}, + {0x8FA9AB,0x8FA9CB,0x014A}, + {0x8FA9AC,0x8FA9CC,0x00D8}, + {0x8FA9AD,0x8FA9CD,0x0152}, + {0x8FA9AE,0x8FA9AE,0x003F}, + {0x8FA9AF,0x8FA9CF,0x0166}, + {0x8FA9B0,0x8FA9D0,0x00DE}, /* 8FA9B0 */ + {0x8FA9B1,0x8FA9B1,0x003F}, + {0x8FA9B2,0x8FA9B2,0x003F}, + {0x8FA9B3,0x8FA9B3,0x003F}, + {0x8FA9B4,0x8FA9B4,0x003F}, + {0x8FA9B5,0x8FA9B5,0x003F}, + {0x8FA9B6,0x8FA9B6,0x003F}, + {0x8FA9B7,0x8FA9B7,0x003F}, + {0x8FA9B8,0x8FA9B8,0x003F}, + {0x8FA9B9,0x8FA9B9,0x003F}, + {0x8FA9BA,0x8FA9BA,0x003F}, + {0x8FA9BB,0x8FA9BB,0x003F}, + {0x8FA9BC,0x8FA9BC,0x003F}, + {0x8FA9BD,0x8FA9BD,0x003F}, + {0x8FA9BE,0x8FA9BE,0x003F}, + {0x8FA9BF,0x8FA9BF,0x003F}, + {0x8FA9C0,0x8FA9C0,0x003F}, /* 8FA9C0 */ + {0x8FA9A1,0x8FA9C1,0x00E6}, + {0x8FA9A2,0x8FA9C2,0x0111}, + {0x8FA9C3,0x8FA9C3,0x00F0}, + {0x8FA9A4,0x8FA9C4,0x0127}, + {0x49,0x8FA9C5,0x0131}, + {0x8FA9A6,0x8FA9C6,0x0133}, + {0x8FA9C7,0x8FA9C7,0x0138}, + {0x8FA9A8,0x8FA9C8,0x0142}, + {0x8FA9A9,0x8FA9C9,0x0140}, + {0x8FA9CA,0x8FA9CA,0x0149}, + {0x8FA9AB,0x8FA9CB,0x014B}, + {0x8FA9AC,0x8FA9CC,0x00F8}, + {0x8FA9AD,0x8FA9CD,0x0153}, + {0x8FA9CE,0x8FA9CE,0x00DF}, + {0x8FA9AF,0x8FA9CF,0x0167}, + {0x8FA9B0,0x8FA9D0,0x00FE}, /* 8FA9D0 */ + {0x8FA9D1,0x8FA9D1,0x003F}, + {0x8FA9D2,0x8FA9D2,0x003F}, + {0x8FA9D3,0x8FA9D3,0x003F}, + {0x8FA9D4,0x8FA9D4,0x003F}, + {0x8FA9D5,0x8FA9D5,0x003F}, + {0x8FA9D6,0x8FA9D6,0x003F}, + {0x8FA9D7,0x8FA9D7,0x003F}, + {0x8FA9D8,0x8FA9D8,0x003F}, + {0x8FA9D9,0x8FA9D9,0x003F}, + {0x8FA9DA,0x8FA9DA,0x003F}, + {0x8FA9DB,0x8FA9DB,0x003F}, + {0x8FA9DC,0x8FA9DC,0x003F}, + {0x8FA9DD,0x8FA9DD,0x003F}, + {0x8FA9DE,0x8FA9DE,0x003F}, + {0x8FA9DF,0x8FA9DF,0x003F}, + {0x8FA9E0,0x8FA9E0,0x003F}, /* 8FA9E0 */ + {0x8FA9E1,0x8FA9E1,0x003F}, + {0x8FA9E2,0x8FA9E2,0x003F}, + {0x8FA9E3,0x8FA9E3,0x003F}, + {0x8FA9E4,0x8FA9E4,0x003F}, + {0x8FA9E5,0x8FA9E5,0x003F}, + {0x8FA9E6,0x8FA9E6,0x003F}, + {0x8FA9E7,0x8FA9E7,0x003F}, + {0x8FA9E8,0x8FA9E8,0x003F}, + {0x8FA9E9,0x8FA9E9,0x003F}, + {0x8FA9EA,0x8FA9EA,0x003F}, + {0x8FA9EB,0x8FA9EB,0x003F}, + {0x8FA9EC,0x8FA9EC,0x003F}, + {0x8FA9ED,0x8FA9ED,0x003F}, + {0x8FA9EE,0x8FA9EE,0x003F}, + {0x8FA9EF,0x8FA9EF,0x003F}, + {0x8FA9F0,0x8FA9F0,0x003F}, /* 8FA9F0 */ + {0x8FA9F1,0x8FA9F1,0x003F}, + {0x8FA9F2,0x8FA9F2,0x003F}, + {0x8FA9F3,0x8FA9F3,0x003F}, + {0x8FA9F4,0x8FA9F4,0x003F}, + {0x8FA9F5,0x8FA9F5,0x003F}, + {0x8FA9F6,0x8FA9F6,0x003F}, + {0x8FA9F7,0x8FA9F7,0x003F}, + {0x8FA9F8,0x8FA9F8,0x003F}, + {0x8FA9F9,0x8FA9F9,0x003F}, + {0x8FA9FA,0x8FA9FA,0x003F}, + {0x8FA9FB,0x8FA9FB,0x003F}, + {0x8FA9FC,0x8FA9FC,0x003F}, + {0x8FA9FD,0x8FA9FD,0x003F}, + {0x8FA9FE,0x8FA9FE,0x003F}, + {0x8FA9FF,0x8FA9FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FAA[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FAAA0,0x8FAAA0,0x003F}, /* 8FAAA0 */ + {0x8FAAA1,0x8FABA1,0x00C1}, + {0x8FAAA2,0x8FABA2,0x00C0}, + {0x8FAAA3,0x8FABA3,0x00C4}, + {0x8FAAA4,0x8FABA4,0x00C2}, + {0x8FAAA5,0x8FABA5,0x0102}, + {0x8FAAA6,0x8FABA6,0x01CD}, + {0x8FAAA7,0x8FABA7,0x0100}, + {0x8FAAA8,0x8FABA8,0x0104}, + {0x8FAAA9,0x8FABA9,0x00C5}, + {0x8FAAAA,0x8FABAA,0x00C3}, + {0x8FAAAB,0x8FABAB,0x0106}, + {0x8FAAAC,0x8FABAC,0x0108}, + {0x8FAAAD,0x8FABAD,0x010C}, + {0x8FAAAE,0x8FABAE,0x00C7}, + {0x8FAAAF,0x8FABAF,0x010A}, + {0x8FAAB0,0x8FABB0,0x010E}, /* 8FAAB0 */ + {0x8FAAB1,0x8FABB1,0x00C9}, + {0x8FAAB2,0x8FABB2,0x00C8}, + {0x8FAAB3,0x8FABB3,0x00CB}, + {0x8FAAB4,0x8FABB4,0x00CA}, + {0x8FAAB5,0x8FABB5,0x011A}, + {0x8FAAB6,0x8FABB6,0x0116}, + {0x8FAAB7,0x8FABB7,0x0112}, + {0x8FAAB8,0x8FABB8,0x0118}, + {0x8FAAB9,0x8FAAB9,0x003F}, + {0x8FAABA,0x8FABBA,0x011C}, + {0x8FAABB,0x8FABBB,0x011E}, + {0x8FAABC,0x8FAABC,0x0122}, + {0x8FAABD,0x8FABBD,0x0120}, + {0x8FAABE,0x8FABBE,0x0124}, + {0x8FAABF,0x8FABBF,0x00CD}, + {0x8FAAC0,0x8FABC0,0x00CC}, /* 8FAAC0 */ + {0x8FAAC1,0x8FABC1,0x00CF}, + {0x8FAAC2,0x8FABC2,0x00CE}, + {0x8FAAC3,0x8FABC3,0x01CF}, + {0x8FAAC4,0x69,0x0130}, + {0x8FAAC5,0x8FABC5,0x012A}, + {0x8FAAC6,0x8FABC6,0x012E}, + {0x8FAAC7,0x8FABC7,0x0128}, + {0x8FAAC8,0x8FABC8,0x0134}, + {0x8FAAC9,0x8FABC9,0x0136}, + {0x8FAACA,0x8FABCA,0x0139}, + {0x8FAACB,0x8FABCB,0x013D}, + {0x8FAACC,0x8FABCC,0x013B}, + {0x8FAACD,0x8FABCD,0x0143}, + {0x8FAACE,0x8FABCE,0x0147}, + {0x8FAACF,0x8FABCF,0x0145}, + {0x8FAAD0,0x8FABD0,0x00D1}, /* 8FAAD0 */ + {0x8FAAD1,0x8FABD1,0x00D3}, + {0x8FAAD2,0x8FABD2,0x00D2}, + {0x8FAAD3,0x8FABD3,0x00D6}, + {0x8FAAD4,0x8FABD4,0x00D4}, + {0x8FAAD5,0x8FABD5,0x01D1}, + {0x8FAAD6,0x8FABD6,0x0150}, + {0x8FAAD7,0x8FABD7,0x014C}, + {0x8FAAD8,0x8FABD8,0x00D5}, + {0x8FAAD9,0x8FABD9,0x0154}, + {0x8FAADA,0x8FABDA,0x0158}, + {0x8FAADB,0x8FABDB,0x0156}, + {0x8FAADC,0x8FABDC,0x015A}, + {0x8FAADD,0x8FABDD,0x015C}, + {0x8FAADE,0x8FABDE,0x0160}, + {0x8FAADF,0x8FABDF,0x015E}, + {0x8FAAE0,0x8FABE0,0x0164}, /* 8FAAE0 */ + {0x8FAAE1,0x8FABE1,0x0162}, + {0x8FAAE2,0x8FABE2,0x00DA}, + {0x8FAAE3,0x8FABE3,0x00D9}, + {0x8FAAE4,0x8FABE4,0x00DC}, + {0x8FAAE5,0x8FABE5,0x00DB}, + {0x8FAAE6,0x8FABE6,0x016C}, + {0x8FAAE7,0x8FABE7,0x01D3}, + {0x8FAAE8,0x8FABE8,0x0170}, + {0x8FAAE9,0x8FABE9,0x016A}, + {0x8FAAEA,0x8FABEA,0x0172}, + {0x8FAAEB,0x8FABEB,0x016E}, + {0x8FAAEC,0x8FABEC,0x0168}, + {0x8FAAED,0x8FABED,0x01D7}, + {0x8FAAEE,0x8FABEE,0x01DB}, + {0x8FAAEF,0x8FABEF,0x01D9}, + {0x8FAAF0,0x8FABF0,0x01D5}, /* 8FAAF0 */ + {0x8FAAF1,0x8FABF1,0x0174}, + {0x8FAAF2,0x8FABF2,0x00DD}, + {0x8FAAF3,0x8FABF3,0x0178}, + {0x8FAAF4,0x8FABF4,0x0176}, + {0x8FAAF5,0x8FABF5,0x0179}, + {0x8FAAF6,0x8FABF6,0x017D}, + {0x8FAAF7,0x8FABF7,0x017B}, + {0x8FAAF8,0x8FAAF8,0x003F}, + {0x8FAAF9,0x8FAAF9,0x003F}, + {0x8FAAFA,0x8FAAFA,0x003F}, + {0x8FAAFB,0x8FAAFB,0x003F}, + {0x8FAAFC,0x8FAAFC,0x003F}, + {0x8FAAFD,0x8FAAFD,0x003F}, + {0x8FAAFE,0x8FAAFE,0x003F}, + {0x8FAAFF,0x8FAAFF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FAB[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FABA0,0x8FABA0,0x003F}, /* 8FABA0 */ + {0x8FAAA1,0x8FABA1,0x00E1}, + {0x8FAAA2,0x8FABA2,0x00E0}, + {0x8FAAA3,0x8FABA3,0x00E4}, + {0x8FAAA4,0x8FABA4,0x00E2}, + {0x8FAAA5,0x8FABA5,0x0103}, + {0x8FAAA6,0x8FABA6,0x01CE}, + {0x8FAAA7,0x8FABA7,0x0101}, + {0x8FAAA8,0x8FABA8,0x0105}, + {0x8FAAA9,0x8FABA9,0x00E5}, + {0x8FAAAA,0x8FABAA,0x00E3}, + {0x8FAAAB,0x8FABAB,0x0107}, + {0x8FAAAC,0x8FABAC,0x0109}, + {0x8FAAAD,0x8FABAD,0x010D}, + {0x8FAAAE,0x8FABAE,0x00E7}, + {0x8FAAAF,0x8FABAF,0x010B}, + {0x8FAAB0,0x8FABB0,0x010F}, /* 8FABB0 */ + {0x8FAAB1,0x8FABB1,0x00E9}, + {0x8FAAB2,0x8FABB2,0x00E8}, + {0x8FAAB3,0x8FABB3,0x00EB}, + {0x8FAAB4,0x8FABB4,0x00EA}, + {0x8FAAB5,0x8FABB5,0x011B}, + {0x8FAAB6,0x8FABB6,0x0117}, + {0x8FAAB7,0x8FABB7,0x0113}, + {0x8FAAB8,0x8FABB8,0x0119}, + {0x8FABB9,0x8FABB9,0x01F5}, + {0x8FAABA,0x8FABBA,0x011D}, + {0x8FAABB,0x8FABBB,0x011F}, + {0x8FABBC,0x8FABBC,0x003F}, + {0x8FAABD,0x8FABBD,0x0121}, + {0x8FAABE,0x8FABBE,0x0125}, + {0x8FAABF,0x8FABBF,0x00ED}, + {0x8FAAC0,0x8FABC0,0x00EC}, /* 8FABC0 */ + {0x8FAAC1,0x8FABC1,0x00EF}, + {0x8FAAC2,0x8FABC2,0x00EE}, + {0x8FAAC3,0x8FABC3,0x01D0}, + {0x8FABC4,0x8FABC4,0x003F}, + {0x8FAAC5,0x8FABC5,0x012B}, + {0x8FAAC6,0x8FABC6,0x012F}, + {0x8FAAC7,0x8FABC7,0x0129}, + {0x8FAAC8,0x8FABC8,0x0135}, + {0x8FAAC9,0x8FABC9,0x0137}, + {0x8FAACA,0x8FABCA,0x013A}, + {0x8FAACB,0x8FABCB,0x013E}, + {0x8FAACC,0x8FABCC,0x013C}, + {0x8FAACD,0x8FABCD,0x0144}, + {0x8FAACE,0x8FABCE,0x0148}, + {0x8FAACF,0x8FABCF,0x0146}, + {0x8FAAD0,0x8FABD0,0x00F1}, /* 8FABD0 */ + {0x8FAAD1,0x8FABD1,0x00F3}, + {0x8FAAD2,0x8FABD2,0x00F2}, + {0x8FAAD3,0x8FABD3,0x00F6}, + {0x8FAAD4,0x8FABD4,0x00F4}, + {0x8FAAD5,0x8FABD5,0x01D2}, + {0x8FAAD6,0x8FABD6,0x0151}, + {0x8FAAD7,0x8FABD7,0x014D}, + {0x8FAAD8,0x8FABD8,0x00F5}, + {0x8FAAD9,0x8FABD9,0x0155}, + {0x8FAADA,0x8FABDA,0x0159}, + {0x8FAADB,0x8FABDB,0x0157}, + {0x8FAADC,0x8FABDC,0x015B}, + {0x8FAADD,0x8FABDD,0x015D}, + {0x8FAADE,0x8FABDE,0x0161}, + {0x8FAADF,0x8FABDF,0x015F}, + {0x8FAAE0,0x8FABE0,0x0165}, /* 8FABE0 */ + {0x8FAAE1,0x8FABE1,0x0163}, + {0x8FAAE2,0x8FABE2,0x00FA}, + {0x8FAAE3,0x8FABE3,0x00F9}, + {0x8FAAE4,0x8FABE4,0x00FC}, + {0x8FAAE5,0x8FABE5,0x00FB}, + {0x8FAAE6,0x8FABE6,0x016D}, + {0x8FAAE7,0x8FABE7,0x01D4}, + {0x8FAAE8,0x8FABE8,0x0171}, + {0x8FAAE9,0x8FABE9,0x016B}, + {0x8FAAEA,0x8FABEA,0x0173}, + {0x8FAAEB,0x8FABEB,0x016F}, + {0x8FAAEC,0x8FABEC,0x0169}, + {0x8FAAED,0x8FABED,0x01D8}, + {0x8FAAEE,0x8FABEE,0x01DC}, + {0x8FAAEF,0x8FABEF,0x01DA}, + {0x8FAAF0,0x8FABF0,0x01D6}, /* 8FABF0 */ + {0x8FAAF1,0x8FABF1,0x0175}, + {0x8FAAF2,0x8FABF2,0x00FD}, + {0x8FAAF3,0x8FABF3,0x00FF}, + {0x8FAAF4,0x8FABF4,0x0177}, + {0x8FAAF5,0x8FABF5,0x017A}, + {0x8FAAF6,0x8FABF6,0x017E}, + {0x8FAAF7,0x8FABF7,0x017C}, + {0x8FABF8,0x8FABF8,0x003F}, + {0x8FABF9,0x8FABF9,0x003F}, + {0x8FABFA,0x8FABFA,0x003F}, + {0x8FABFB,0x8FABFB,0x003F}, + {0x8FABFC,0x8FABFC,0x003F}, + {0x8FABFD,0x8FABFD,0x003F}, + {0x8FABFE,0x8FABFE,0x003F}, + {0x8FABFF,0x8FABFF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FF3[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FF3A0,0x8FF3A0,0x003F}, /* 8FF3F0 */ + {0x8FF3A1,0x8FF3A1,0x003F}, + {0x8FF3A2,0x8FF3A2,0x003F}, + {0x8FF3A3,0x8FF3A3,0x003F}, + {0x8FF3A4,0x8FF3A4,0x003F}, + {0x8FF3A5,0x8FF3A5,0x003F}, + {0x8FF3A6,0x8FF3A6,0x003F}, + {0x8FF3A7,0x8FF3A7,0x003F}, + {0x8FF3A8,0x8FF3A8,0x003F}, + {0x8FF3A9,0x8FF3A9,0x003F}, + {0x8FF3AA,0x8FF3AA,0x003F}, + {0x8FF3AB,0x8FF3AB,0x003F}, + {0x8FF3AC,0x8FF3AC,0x003F}, + {0x8FF3AD,0x8FF3AD,0x003F}, + {0x8FF3AE,0x8FF3AE,0x003F}, + {0x8FF3AF,0x8FF3AF,0x003F}, + {0x8FF3B0,0x8FF3B0,0x003F}, /* 8FF3B0 */ + {0x8FF3B1,0x8FF3B1,0x003F}, + {0x8FF3B2,0x8FF3B2,0x003F}, + {0x8FF3B3,0x8FF3B3,0x003F}, + {0x8FF3B4,0x8FF3B4,0x003F}, + {0x8FF3B5,0x8FF3B5,0x003F}, + {0x8FF3B6,0x8FF3B6,0x003F}, + {0x8FF3B7,0x8FF3B7,0x003F}, + {0x8FF3B8,0x8FF3B8,0x003F}, + {0x8FF3B9,0x8FF3B9,0x003F}, + {0x8FF3BA,0x8FF3BA,0x003F}, + {0x8FF3BB,0x8FF3BB,0x003F}, + {0x8FF3BC,0x8FF3BC,0x003F}, + {0x8FF3BD,0x8FF3BD,0x003F}, + {0x8FF3BE,0x8FF3BE,0x003F}, + {0x8FF3BF,0x8FF3BF,0x003F}, + {0x8FF3C0,0x8FF3C0,0x003F}, /* 8FF3C0 */ + {0x8FF3C1,0x8FF3C1,0x003F}, + {0x8FF3C2,0x8FF3C2,0x003F}, + {0x8FF3C3,0x8FF3C3,0x003F}, + {0x8FF3C4,0x8FF3C4,0x003F}, + {0x8FF3C5,0x8FF3C5,0x003F}, + {0x8FF3C6,0x8FF3C6,0x003F}, + {0x8FF3C7,0x8FF3C7,0x003F}, + {0x8FF3C8,0x8FF3C8,0x003F}, + {0x8FF3C9,0x8FF3C9,0x003F}, + {0x8FF3CA,0x8FF3CA,0x003F}, + {0x8FF3CB,0x8FF3CB,0x003F}, + {0x8FF3CC,0x8FF3CC,0x003F}, + {0x8FF3CD,0x8FF3CD,0x003F}, + {0x8FF3CE,0x8FF3CE,0x003F}, + {0x8FF3CF,0x8FF3CF,0x003F}, + {0x8FF3D0,0x8FF3D0,0x003F}, /* 8FF3D0 */ + {0x8FF3D1,0x8FF3D1,0x003F}, + {0x8FF3D2,0x8FF3D2,0x003F}, + {0x8FF3D3,0x8FF3D3,0x003F}, + {0x8FF3D4,0x8FF3D4,0x003F}, + {0x8FF3D5,0x8FF3D5,0x003F}, + {0x8FF3D6,0x8FF3D6,0x003F}, + {0x8FF3D7,0x8FF3D7,0x003F}, + {0x8FF3D8,0x8FF3D8,0x003F}, + {0x8FF3D9,0x8FF3D9,0x003F}, + {0x8FF3DA,0x8FF3DA,0x003F}, + {0x8FF3DB,0x8FF3DB,0x003F}, + {0x8FF3DC,0x8FF3DC,0x003F}, + {0x8FF3DD,0x8FF3DD,0x003F}, + {0x8FF3DE,0x8FF3DE,0x003F}, + {0x8FF3DF,0x8FF3DF,0x003F}, + {0x8FF3E0,0x8FF3E0,0x003F}, /* 8FF3E0 */ + {0x8FF3E1,0x8FF3E1,0x003F}, + {0x8FF3E2,0x8FF3E2,0x003F}, + {0x8FF3E3,0x8FF3E3,0x003F}, + {0x8FF3E4,0x8FF3E4,0x003F}, + {0x8FF3E5,0x8FF3E5,0x003F}, + {0x8FF3E6,0x8FF3E6,0x003F}, + {0x8FF3E7,0x8FF3E7,0x003F}, + {0x8FF3E8,0x8FF3E8,0x003F}, + {0x8FF3E9,0x8FF3E9,0x003F}, + {0x8FF3EA,0x8FF3EA,0x003F}, + {0x8FF3EB,0x8FF3EB,0x003F}, + {0x8FF3EC,0x8FF3EC,0x003F}, + {0x8FF3ED,0x8FF3ED,0x003F}, + {0x8FF3EE,0x8FF3EE,0x003F}, + {0x8FF3EF,0x8FF3EF,0x003F}, + {0x8FF3F0,0x8FF3F0,0x003F}, /* 8FF3F0 */ + {0x8FF3F1,0x8FF3F1,0x003F}, + {0x8FF3F2,0x8FF3F2,0x003F}, + {0x8FF3FD,0x8FF3F3,0x2170}, + {0x8FF3FE,0x8FF3F4,0x2171}, + {0x8FF4A1,0x8FF3F5,0x2172}, + {0x8FF4A2,0x8FF3F6,0x2173}, + {0x8FF4A3,0x8FF3F7,0x2174}, + {0x8FF4A4,0x8FF3F8,0x2175}, + {0x8FF4A5,0x8FF3F9,0x2176}, + {0x8FF4A6,0x8FF3FA,0x2177}, + {0x8FF4A7,0x8FF3FB,0x2178}, + {0x8FF4A8,0x8FF3FC,0x2179}, + {0x8FF3FD,0x8FF3F3,0x2160}, + {0x8FF3FE,0x8FF3F4,0x2161}, + {0x8FF3FF,0x8FF3FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FF4[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FF4A0,0x8FF4A0,0x003F}, /* 8FF4A0 */ + {0x8FF4A1,0x8FF3F5,0x2162}, + {0x8FF4A2,0x8FF3F6,0x2163}, + {0x8FF4A3,0x8FF3F7,0x2164}, + {0x8FF4A4,0x8FF3F8,0x2165}, + {0x8FF4A5,0x8FF3F9,0x2166}, + {0x8FF4A6,0x8FF3FA,0x2167}, + {0x8FF4A7,0x8FF3FB,0x2168}, + {0x8FF4A8,0x8FF3FC,0x2169}, + {0x8FF4A9,0x8FF4A9,0xFF07}, + {0x8FF4AA,0x8FF4AA,0xFF02}, + {0x8FF4AB,0x8FF4AB,0x3231}, + {0x8FF4AC,0x8FF4AC,0x2116}, + {0x8FF4AD,0x8FF4AD,0x2121}, + {0x8FF4AE,0x8FF4AE,0x70BB}, + {0x8FF4AF,0x8FF4AF,0x4EFC}, + {0x8FF4B0,0x8FF4B0,0x50F4}, /* 8FF4B0 */ + {0x8FF4B1,0x8FF4B1,0x51EC}, + {0x8FF4B2,0x8FF4B2,0x5307}, + {0x8FF4B3,0x8FF4B3,0x5324}, + {0x8FF4B4,0x8FF4B4,0xFA0E}, + {0x8FF4B5,0x8FF4B5,0x548A}, + {0x8FF4B6,0x8FF4B6,0x5759}, + {0x8FF4B7,0x8FF4B7,0xFA0F}, + {0x8FF4B8,0x8FF4B8,0xFA10}, + {0x8FF4B9,0x8FF4B9,0x589E}, + {0x8FF4BA,0x8FF4BA,0x5BEC}, + {0x8FF4BB,0x8FF4BB,0x5CF5}, + {0x8FF4BC,0x8FF4BC,0x5D53}, + {0x8FF4BD,0x8FF4BD,0xFA11}, + {0x8FF4BE,0x8FF4BE,0x5FB7}, + {0x8FF4BF,0x8FF4BF,0x6085}, + {0x8FF4C0,0x8FF4C0,0x6120}, /* 8FF4C0 */ + {0x8FF4C1,0x8FF4C1,0x654E}, + {0x8FF4C2,0x8FF4C2,0x663B}, + {0x8FF4C3,0x8FF4C3,0x6665}, + {0x8FF4C4,0x8FF4C4,0xFA12}, + {0x8FF4C5,0x8FF4C5,0xF929}, + {0x8FF4C6,0x8FF4C6,0x6801}, + {0x8FF4C7,0x8FF4C7,0xFA13}, + {0x8FF4C8,0x8FF4C8,0xFA14}, + {0x8FF4C9,0x8FF4C9,0x6A6B}, + {0x8FF4CA,0x8FF4CA,0x6AE2}, + {0x8FF4CB,0x8FF4CB,0x6DF8}, + {0x8FF4CC,0x8FF4CC,0x6DF2}, + {0x8FF4CD,0x8FF4CD,0x7028}, + {0x8FF4CE,0x8FF4CE,0xFA15}, + {0x8FF4CF,0x8FF4CF,0xFA16}, + {0x8FF4D0,0x8FF4D0,0x7501}, /* 8FF4D0 */ + {0x8FF4D1,0x8FF4D1,0x7682}, + {0x8FF4D2,0x8FF4D2,0x769E}, + {0x8FF4D3,0x8FF4D3,0xFA17}, + {0x8FF4D4,0x8FF4D4,0x7930}, + {0x8FF4D5,0x8FF4D5,0xFA18}, + {0x8FF4D6,0x8FF4D6,0xFA19}, + {0x8FF4D7,0x8FF4D7,0xFA1A}, + {0x8FF4D8,0x8FF4D8,0xFA1B}, + {0x8FF4D9,0x8FF4D9,0x7AE7}, + {0x8FF4DA,0x8FF4DA,0xFA1C}, + {0x8FF4DB,0x8FF4DB,0xFA1D}, + {0x8FF4DC,0x8FF4DC,0x7DA0}, + {0x8FF4DD,0x8FF4DD,0x7DD6}, + {0x8FF4DE,0x8FF4DE,0xFA1E}, + {0x8FF4DF,0x8FF4DF,0x8362}, + {0x8FF4E0,0x8FF4E0,0xFA1F}, /* 8FF4E0 */ + {0x8FF4E1,0x8FF4E1,0x85B0}, + {0x8FF4E2,0x8FF4E2,0xFA20}, + {0x8FF4E3,0x8FF4E3,0xFA21}, + {0x8FF4E4,0x8FF4E4,0x8807}, + {0x8FF4E5,0x8FF4E5,0xFA22}, + {0x8FF4E6,0x8FF4E6,0x8B7F}, + {0x8FF4E7,0x8FF4E7,0x8CF4}, + {0x8FF4E8,0x8FF4E8,0x8D76}, + {0x8FF4E9,0x8FF4E9,0xFA23}, + {0x8FF4EA,0x8FF4EA,0xFA24}, + {0x8FF4EB,0x8FF4EB,0xFA25}, + {0x8FF4EC,0x8FF4EC,0x90DE}, + {0x8FF4ED,0x8FF4ED,0xFA26}, + {0x8FF4EE,0x8FF4EE,0x9115}, + {0x8FF4EF,0x8FF4EF,0xFA27}, + {0x8FF4F0,0x8FF4F0,0xFA28}, /* 8FF4F0 */ + {0x8FF4F1,0x8FF4F1,0x9592}, + {0x8FF4F2,0x8FF4F2,0xF9DC}, + {0x8FF4F3,0x8FF4F3,0xFA29}, + {0x8FF4F4,0x8FF4F4,0x973B}, + {0x8FF4F5,0x8FF4F5,0x974D}, + {0x8FF4F6,0x8FF4F6,0x9751}, + {0x8FF4F7,0x8FF4F7,0xFA2A}, + {0x8FF4F8,0x8FF4F8,0xFA2B}, + {0x8FF4F9,0x8FF4F9,0xFA2C}, + {0x8FF4FA,0x8FF4FA,0x999E}, + {0x8FF4FB,0x8FF4FB,0x9AD9}, + {0x8FF4FC,0x8FF4FC,0x9B72}, + {0x8FF4FD,0x8FF4FD,0xFA2D}, + {0x8FF4FE,0x8FF4FE,0x9ED1}, + {0x8FF4FF,0x8FF4FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_eucjpms[512]= +{ + /* JIS-X-0208 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, cA2, cA3, NULL, NULL, cA6, cA7, /* A */ + NULL, NULL, NULL, NULL, NULL, cAD, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + + /* JIS-X-0212 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL,c8FA6,c8FA7, /* A */ + NULL, c8FA9,c8FAA,c8FAB,NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL,c8FF3,c8FF4, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + + +static MY_UNICASE_INFO my_caseinfo_eucjpms= +{ + 0x0FFFF, + my_caseinfo_pages_eucjpms +}; + + +static const uint16 jisx0208_eucjpms_to_unicode[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3000, 0x3001, 0x3002, /* A1A0 */ + 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, + 0xFF1B, 0xFF1F, 0xFF01, 0x309B, + 0x309C, 0x00B4, 0xFF40, 0x00A8, + 0xFF3E, 0xFFE3, 0xFF3F, 0x30FD, + 0x30FE, 0x309D, 0x309E, 0x3003, + 0x4EDD, 0x3005, 0x3006, 0x3007, + 0x30FC, 0x2015, 0x2010, 0xFF0F, + 0xFF3C, 0xFF5E, 0x2225, 0xFF5C, /* A1C0 */ + 0x2026, 0x2025, 0x2018, 0x2019, + 0x201C, 0x201D, 0xFF08, 0xFF09, + 0x3014, 0x3015, 0xFF3B, 0xFF3D, + 0xFF5B, 0xFF5D, 0x3008, 0x3009, + 0x300A, 0x300B, 0x300C, 0x300D, + 0x300E, 0x300F, 0x3010, 0x3011, + 0xFF0B, 0xFF0D, 0x00B1, 0x00D7, + 0x00F7, 0xFF1D, 0x2260, 0xFF1C, /* A1E0 */ + 0xFF1E, 0x2266, 0x2267, 0x221E, + 0x2234, 0x2642, 0x2640, 0x00B0, + 0x2032, 0x2033, 0x2103, 0xFFE5, + 0xFF04, 0xFFE0, 0xFFE1, 0xFF05, + 0xFF03, 0xFF06, 0xFF0A, 0xFF20, + 0x00A7, 0x2606, 0x2605, 0x25CB, + 0x25CF, 0x25CE, 0x25C7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x25C6, 0x25A1, 0x25A0, /* A2A0 */ + 0x25B3, 0x25B2, 0x25BD, 0x25BC, + 0x203B, 0x3012, 0x2192, 0x2190, + 0x2191, 0x2193, 0x3013, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2208, 0x220B, + 0x2286, 0x2287, 0x2282, 0x2283, + 0x222A, 0x2229, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2227, 0x2228, + 0xFFE2, 0x21D2, 0x21D4, 0x2200, + 0x2203, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2220, 0x22A5, 0x2312, 0x2202, + 0x2207, 0x2261, 0x2252, 0x226A, /* A2E0 */ + 0x226B, 0x221A, 0x223D, 0x221D, + 0x2235, 0x222B, 0x222C, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x212B, 0x2030, + 0x266F, 0x266D, 0x266A, 0x2020, + 0x2021, 0x00B6, 0x0000, 0x0000, + 0x0000, 0x0000, 0x25EF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xFF10, 0xFF11, 0xFF12, 0xFF13, + 0xFF14, 0xFF15, 0xFF16, 0xFF17, + 0xFF18, 0xFF19, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF21, 0xFF22, 0xFF23, /* A3C0 */ + 0xFF24, 0xFF25, 0xFF26, 0xFF27, + 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, + 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, + 0xFF30, 0xFF31, 0xFF32, 0xFF33, + 0xFF34, 0xFF35, 0xFF36, 0xFF37, + 0xFF38, 0xFF39, 0xFF3A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF41, 0xFF42, 0xFF43, /* A3E0 */ + 0xFF44, 0xFF45, 0xFF46, 0xFF47, + 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, + 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, + 0xFF50, 0xFF51, 0xFF52, 0xFF53, + 0xFF54, 0xFF55, 0xFF56, 0xFF57, + 0xFF58, 0xFF59, 0xFF5A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3041, 0x3042, 0x3043, /* A4A0 */ + 0x3044, 0x3045, 0x3046, 0x3047, + 0x3048, 0x3049, 0x304A, 0x304B, + 0x304C, 0x304D, 0x304E, 0x304F, + 0x3050, 0x3051, 0x3052, 0x3053, + 0x3054, 0x3055, 0x3056, 0x3057, + 0x3058, 0x3059, 0x305A, 0x305B, + 0x305C, 0x305D, 0x305E, 0x305F, + 0x3060, 0x3061, 0x3062, 0x3063, /* A4C0 */ + 0x3064, 0x3065, 0x3066, 0x3067, + 0x3068, 0x3069, 0x306A, 0x306B, + 0x306C, 0x306D, 0x306E, 0x306F, + 0x3070, 0x3071, 0x3072, 0x3073, + 0x3074, 0x3075, 0x3076, 0x3077, + 0x3078, 0x3079, 0x307A, 0x307B, + 0x307C, 0x307D, 0x307E, 0x307F, + 0x3080, 0x3081, 0x3082, 0x3083, /* A4E0 */ + 0x3084, 0x3085, 0x3086, 0x3087, + 0x3088, 0x3089, 0x308A, 0x308B, + 0x308C, 0x308D, 0x308E, 0x308F, + 0x3090, 0x3091, 0x3092, 0x3093, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x30A1, 0x30A2, 0x30A3, /* A5A0 */ + 0x30A4, 0x30A5, 0x30A6, 0x30A7, + 0x30A8, 0x30A9, 0x30AA, 0x30AB, + 0x30AC, 0x30AD, 0x30AE, 0x30AF, + 0x30B0, 0x30B1, 0x30B2, 0x30B3, + 0x30B4, 0x30B5, 0x30B6, 0x30B7, + 0x30B8, 0x30B9, 0x30BA, 0x30BB, + 0x30BC, 0x30BD, 0x30BE, 0x30BF, + 0x30C0, 0x30C1, 0x30C2, 0x30C3, /* A5C0 */ + 0x30C4, 0x30C5, 0x30C6, 0x30C7, + 0x30C8, 0x30C9, 0x30CA, 0x30CB, + 0x30CC, 0x30CD, 0x30CE, 0x30CF, + 0x30D0, 0x30D1, 0x30D2, 0x30D3, + 0x30D4, 0x30D5, 0x30D6, 0x30D7, + 0x30D8, 0x30D9, 0x30DA, 0x30DB, + 0x30DC, 0x30DD, 0x30DE, 0x30DF, + 0x30E0, 0x30E1, 0x30E2, 0x30E3, /* A5E0 */ + 0x30E4, 0x30E5, 0x30E6, 0x30E7, + 0x30E8, 0x30E9, 0x30EA, 0x30EB, + 0x30EC, 0x30ED, 0x30EE, 0x30EF, + 0x30F0, 0x30F1, 0x30F2, 0x30F3, + 0x30F4, 0x30F5, 0x30F6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0391, 0x0392, 0x0393, /* A6A0 */ + 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, + 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x03A3, 0x03A4, + 0x03A5, 0x03A6, 0x03A7, 0x03A8, + 0x03A9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x03B1, 0x03B2, 0x03B3, /* A6C0 */ + 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, + 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C3, 0x03C4, + 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x03C9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0410, 0x0411, 0x0412, /* A7A0 */ + 0x0413, 0x0414, 0x0415, 0x0401, + 0x0416, 0x0417, 0x0418, 0x0419, + 0x041A, 0x041B, 0x041C, 0x041D, + 0x041E, 0x041F, 0x0420, 0x0421, + 0x0422, 0x0423, 0x0424, 0x0425, + 0x0426, 0x0427, 0x0428, 0x0429, + 0x042A, 0x042B, 0x042C, 0x042D, + 0x042E, 0x042F, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0430, 0x0431, 0x0432, + 0x0433, 0x0434, 0x0435, 0x0451, + 0x0436, 0x0437, 0x0438, 0x0439, + 0x043A, 0x043B, 0x043C, 0x043D, + 0x043E, 0x043F, 0x0440, 0x0441, /* A7E0 */ + 0x0442, 0x0443, 0x0444, 0x0445, + 0x0446, 0x0447, 0x0448, 0x0449, + 0x044A, 0x044B, 0x044C, 0x044D, + 0x044E, 0x044F, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2500, 0x2502, 0x250C, /* A8A0 */ + 0x2510, 0x2518, 0x2514, 0x251C, + 0x252C, 0x2524, 0x2534, 0x253C, + 0x2501, 0x2503, 0x250F, 0x2513, + 0x251B, 0x2517, 0x2523, 0x2533, + 0x252B, 0x253B, 0x254B, 0x2520, + 0x252F, 0x2528, 0x2537, 0x253F, + 0x251D, 0x2530, 0x2525, 0x2538, + 0x2542, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2460, 0x2461, 0x2462, /* ADA0 */ + 0x2463, 0x2464, 0x2465, 0x2466, + 0x2467, 0x2468, 0x2469, 0x246A, + 0x246B, 0x246C, 0x246D, 0x246E, + 0x246F, 0x2470, 0x2471, 0x2472, + 0x2473, 0x2160, 0x2161, 0x2162, + 0x2163, 0x2164, 0x2165, 0x2166, + 0x2167, 0x2168, 0x2169, 0x0000, + 0x3349, 0x3314, 0x3322, 0x334D, /* ADC0 */ + 0x3318, 0x3327, 0x3303, 0x3336, + 0x3351, 0x3357, 0x330D, 0x3326, + 0x3323, 0x332B, 0x334A, 0x333B, + 0x339C, 0x339D, 0x339E, 0x338E, + 0x338F, 0x33C4, 0x33A1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x337B, + 0x301D, 0x301F, 0x2116, 0x33CD, /* ADE0 */ + 0x2121, 0x32A4, 0x32A5, 0x32A6, + 0x32A7, 0x32A8, 0x3231, 0x3232, + 0x3239, 0x337E, 0x337D, 0x337C, + 0x2252, 0x2261, 0x222B, 0x222E, + 0x2211, 0x221A, 0x22A5, 0x2220, + 0x221F, 0x22BF, 0x2235, 0x2229, + 0x222A, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4E9C, 0x5516, 0x5A03, /* B0A0 */ + 0x963F, 0x54C0, 0x611B, 0x6328, + 0x59F6, 0x9022, 0x8475, 0x831C, + 0x7A50, 0x60AA, 0x63E1, 0x6E25, + 0x65ED, 0x8466, 0x82A6, 0x9BF5, + 0x6893, 0x5727, 0x65A1, 0x6271, + 0x5B9B, 0x59D0, 0x867B, 0x98F4, + 0x7D62, 0x7DBE, 0x9B8E, 0x6216, + 0x7C9F, 0x88B7, 0x5B89, 0x5EB5, /* B0C0 */ + 0x6309, 0x6697, 0x6848, 0x95C7, + 0x978D, 0x674F, 0x4EE5, 0x4F0A, + 0x4F4D, 0x4F9D, 0x5049, 0x56F2, + 0x5937, 0x59D4, 0x5A01, 0x5C09, + 0x60DF, 0x610F, 0x6170, 0x6613, + 0x6905, 0x70BA, 0x754F, 0x7570, + 0x79FB, 0x7DAD, 0x7DEF, 0x80C3, + 0x840E, 0x8863, 0x8B02, 0x9055, /* B0E0 */ + 0x907A, 0x533B, 0x4E95, 0x4EA5, + 0x57DF, 0x80B2, 0x90C1, 0x78EF, + 0x4E00, 0x58F1, 0x6EA2, 0x9038, + 0x7A32, 0x8328, 0x828B, 0x9C2F, + 0x5141, 0x5370, 0x54BD, 0x54E1, + 0x56E0, 0x59FB, 0x5F15, 0x98F2, + 0x6DEB, 0x80E4, 0x852D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9662, 0x9670, 0x96A0, /* B1A0 */ + 0x97FB, 0x540B, 0x53F3, 0x5B87, + 0x70CF, 0x7FBD, 0x8FC2, 0x96E8, + 0x536F, 0x9D5C, 0x7ABA, 0x4E11, + 0x7893, 0x81FC, 0x6E26, 0x5618, + 0x5504, 0x6B1D, 0x851A, 0x9C3B, + 0x59E5, 0x53A9, 0x6D66, 0x74DC, + 0x958F, 0x5642, 0x4E91, 0x904B, + 0x96F2, 0x834F, 0x990C, 0x53E1, /* B1C0 */ + 0x55B6, 0x5B30, 0x5F71, 0x6620, + 0x66F3, 0x6804, 0x6C38, 0x6CF3, + 0x6D29, 0x745B, 0x76C8, 0x7A4E, + 0x9834, 0x82F1, 0x885B, 0x8A60, + 0x92ED, 0x6DB2, 0x75AB, 0x76CA, + 0x99C5, 0x60A6, 0x8B01, 0x8D8A, + 0x95B2, 0x698E, 0x53AD, 0x5186, + 0x5712, 0x5830, 0x5944, 0x5BB4, /* B1E0 */ + 0x5EF6, 0x6028, 0x63A9, 0x63F4, + 0x6CBF, 0x6F14, 0x708E, 0x7114, + 0x7159, 0x71D5, 0x733F, 0x7E01, + 0x8276, 0x82D1, 0x8597, 0x9060, + 0x925B, 0x9D1B, 0x5869, 0x65BC, + 0x6C5A, 0x7525, 0x51F9, 0x592E, + 0x5965, 0x5F80, 0x5FDC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x62BC, 0x65FA, 0x6A2A, /* B2A0 */ + 0x6B27, 0x6BB4, 0x738B, 0x7FC1, + 0x8956, 0x9D2C, 0x9D0E, 0x9EC4, + 0x5CA1, 0x6C96, 0x837B, 0x5104, + 0x5C4B, 0x61B6, 0x81C6, 0x6876, + 0x7261, 0x4E59, 0x4FFA, 0x5378, + 0x6069, 0x6E29, 0x7A4F, 0x97F3, + 0x4E0B, 0x5316, 0x4EEE, 0x4F55, + 0x4F3D, 0x4FA1, 0x4F73, 0x52A0, /* B2C0 */ + 0x53EF, 0x5609, 0x590F, 0x5AC1, + 0x5BB6, 0x5BE1, 0x79D1, 0x6687, + 0x679C, 0x67B6, 0x6B4C, 0x6CB3, + 0x706B, 0x73C2, 0x798D, 0x79BE, + 0x7A3C, 0x7B87, 0x82B1, 0x82DB, + 0x8304, 0x8377, 0x83EF, 0x83D3, + 0x8766, 0x8AB2, 0x5629, 0x8CA8, + 0x8FE6, 0x904E, 0x971E, 0x868A, /* B2E0 */ + 0x4FC4, 0x5CE8, 0x6211, 0x7259, + 0x753B, 0x81E5, 0x82BD, 0x86FE, + 0x8CC0, 0x96C5, 0x9913, 0x99D5, + 0x4ECB, 0x4F1A, 0x89E3, 0x56DE, + 0x584A, 0x58CA, 0x5EFB, 0x5FEB, + 0x602A, 0x6094, 0x6062, 0x61D0, + 0x6212, 0x62D0, 0x6539, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9B41, 0x6666, 0x68B0, /* B3A0 */ + 0x6D77, 0x7070, 0x754C, 0x7686, + 0x7D75, 0x82A5, 0x87F9, 0x958B, + 0x968E, 0x8C9D, 0x51F1, 0x52BE, + 0x5916, 0x54B3, 0x5BB3, 0x5D16, + 0x6168, 0x6982, 0x6DAF, 0x788D, + 0x84CB, 0x8857, 0x8A72, 0x93A7, + 0x9AB8, 0x6D6C, 0x99A8, 0x86D9, + 0x57A3, 0x67FF, 0x86CE, 0x920E, /* B3C0 */ + 0x5283, 0x5687, 0x5404, 0x5ED3, + 0x62E1, 0x64B9, 0x683C, 0x6838, + 0x6BBB, 0x7372, 0x78BA, 0x7A6B, + 0x899A, 0x89D2, 0x8D6B, 0x8F03, + 0x90ED, 0x95A3, 0x9694, 0x9769, + 0x5B66, 0x5CB3, 0x697D, 0x984D, + 0x984E, 0x639B, 0x7B20, 0x6A2B, + 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, /* B3E0 */ + 0x5272, 0x559D, 0x6070, 0x62EC, + 0x6D3B, 0x6E07, 0x6ED1, 0x845B, + 0x8910, 0x8F44, 0x4E14, 0x9C39, + 0x53F6, 0x691B, 0x6A3A, 0x9784, + 0x682A, 0x515C, 0x7AC3, 0x84B2, + 0x91DC, 0x938C, 0x565B, 0x9D28, + 0x6822, 0x8305, 0x8431, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7CA5, 0x5208, 0x82C5, /* B4A0 */ + 0x74E6, 0x4E7E, 0x4F83, 0x51A0, + 0x5BD2, 0x520A, 0x52D8, 0x52E7, + 0x5DFB, 0x559A, 0x582A, 0x59E6, + 0x5B8C, 0x5B98, 0x5BDB, 0x5E72, + 0x5E79, 0x60A3, 0x611F, 0x6163, + 0x61BE, 0x63DB, 0x6562, 0x67D1, + 0x6853, 0x68FA, 0x6B3E, 0x6B53, + 0x6C57, 0x6F22, 0x6F97, 0x6F45, /* B4C0 */ + 0x74B0, 0x7518, 0x76E3, 0x770B, + 0x7AFF, 0x7BA1, 0x7C21, 0x7DE9, + 0x7F36, 0x7FF0, 0x809D, 0x8266, + 0x839E, 0x89B3, 0x8ACC, 0x8CAB, + 0x9084, 0x9451, 0x9593, 0x9591, + 0x95A2, 0x9665, 0x97D3, 0x9928, + 0x8218, 0x4E38, 0x542B, 0x5CB8, + 0x5DCC, 0x73A9, 0x764C, 0x773C, /* B4E0 */ + 0x5CA9, 0x7FEB, 0x8D0B, 0x96C1, + 0x9811, 0x9854, 0x9858, 0x4F01, + 0x4F0E, 0x5371, 0x559C, 0x5668, + 0x57FA, 0x5947, 0x5B09, 0x5BC4, + 0x5C90, 0x5E0C, 0x5E7E, 0x5FCC, + 0x63EE, 0x673A, 0x65D7, 0x65E2, + 0x671F, 0x68CB, 0x68C4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6A5F, 0x5E30, 0x6BC5, /* B5A0 */ + 0x6C17, 0x6C7D, 0x757F, 0x7948, + 0x5B63, 0x7A00, 0x7D00, 0x5FBD, + 0x898F, 0x8A18, 0x8CB4, 0x8D77, + 0x8ECC, 0x8F1D, 0x98E2, 0x9A0E, + 0x9B3C, 0x4E80, 0x507D, 0x5100, + 0x5993, 0x5B9C, 0x622F, 0x6280, + 0x64EC, 0x6B3A, 0x72A0, 0x7591, + 0x7947, 0x7FA9, 0x87FB, 0x8ABC, /* B5C0 */ + 0x8B70, 0x63AC, 0x83CA, 0x97A0, + 0x5409, 0x5403, 0x55AB, 0x6854, + 0x6A58, 0x8A70, 0x7827, 0x6775, + 0x9ECD, 0x5374, 0x5BA2, 0x811A, + 0x8650, 0x9006, 0x4E18, 0x4E45, + 0x4EC7, 0x4F11, 0x53CA, 0x5438, + 0x5BAE, 0x5F13, 0x6025, 0x6551, + 0x673D, 0x6C42, 0x6C72, 0x6CE3, /* B5E0 */ + 0x7078, 0x7403, 0x7A76, 0x7AAE, + 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, + 0x65E7, 0x725B, 0x53BB, 0x5C45, + 0x5DE8, 0x62D2, 0x62E0, 0x6319, + 0x6E20, 0x865A, 0x8A31, 0x8DDD, + 0x92F8, 0x6F01, 0x79A6, 0x9B5A, + 0x4EA8, 0x4EAB, 0x4EAC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4F9B, 0x4FA0, 0x50D1, /* B6A0 */ + 0x5147, 0x7AF6, 0x5171, 0x51F6, + 0x5354, 0x5321, 0x537F, 0x53EB, + 0x55AC, 0x5883, 0x5CE1, 0x5F37, + 0x5F4A, 0x602F, 0x6050, 0x606D, + 0x631F, 0x6559, 0x6A4B, 0x6CC1, + 0x72C2, 0x72ED, 0x77EF, 0x80F8, + 0x8105, 0x8208, 0x854E, 0x90F7, + 0x93E1, 0x97FF, 0x9957, 0x9A5A, /* B6C0 */ + 0x4EF0, 0x51DD, 0x5C2D, 0x6681, + 0x696D, 0x5C40, 0x66F2, 0x6975, + 0x7389, 0x6850, 0x7C81, 0x50C5, + 0x52E4, 0x5747, 0x5DFE, 0x9326, + 0x65A4, 0x6B23, 0x6B3D, 0x7434, + 0x7981, 0x79BD, 0x7B4B, 0x7DCA, + 0x82B9, 0x83CC, 0x887F, 0x895F, + 0x8B39, 0x8FD1, 0x91D1, 0x541F, /* B6E0 */ + 0x9280, 0x4E5D, 0x5036, 0x53E5, + 0x533A, 0x72D7, 0x7396, 0x77E9, + 0x82E6, 0x8EAF, 0x99C6, 0x99C8, + 0x99D2, 0x5177, 0x611A, 0x865E, + 0x55B0, 0x7A7A, 0x5076, 0x5BD3, + 0x9047, 0x9685, 0x4E32, 0x6ADB, + 0x91E7, 0x5C51, 0x5C48, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6398, 0x7A9F, 0x6C93, /* B7A0 */ + 0x9774, 0x8F61, 0x7AAA, 0x718A, + 0x9688, 0x7C82, 0x6817, 0x7E70, + 0x6851, 0x936C, 0x52F2, 0x541B, + 0x85AB, 0x8A13, 0x7FA4, 0x8ECD, + 0x90E1, 0x5366, 0x8888, 0x7941, + 0x4FC2, 0x50BE, 0x5211, 0x5144, + 0x5553, 0x572D, 0x73EA, 0x578B, + 0x5951, 0x5F62, 0x5F84, 0x6075, /* B7C0 */ + 0x6176, 0x6167, 0x61A9, 0x63B2, + 0x643A, 0x656C, 0x666F, 0x6842, + 0x6E13, 0x7566, 0x7A3D, 0x7CFB, + 0x7D4C, 0x7D99, 0x7E4B, 0x7F6B, + 0x830E, 0x834A, 0x86CD, 0x8A08, + 0x8A63, 0x8B66, 0x8EFD, 0x981A, + 0x9D8F, 0x82B8, 0x8FCE, 0x9BE8, + 0x5287, 0x621F, 0x6483, 0x6FC0, /* B7E0 */ + 0x9699, 0x6841, 0x5091, 0x6B20, + 0x6C7A, 0x6F54, 0x7A74, 0x7D50, + 0x8840, 0x8A23, 0x6708, 0x4EF6, + 0x5039, 0x5026, 0x5065, 0x517C, + 0x5238, 0x5263, 0x55A7, 0x570F, + 0x5805, 0x5ACC, 0x5EFA, 0x61B2, + 0x61F8, 0x62F3, 0x6372, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x691C, 0x6A29, 0x727D, /* B8A0 */ + 0x72AC, 0x732E, 0x7814, 0x786F, + 0x7D79, 0x770C, 0x80A9, 0x898B, + 0x8B19, 0x8CE2, 0x8ED2, 0x9063, + 0x9375, 0x967A, 0x9855, 0x9A13, + 0x9E78, 0x5143, 0x539F, 0x53B3, + 0x5E7B, 0x5F26, 0x6E1B, 0x6E90, + 0x7384, 0x73FE, 0x7D43, 0x8237, + 0x8A00, 0x8AFA, 0x9650, 0x4E4E, /* B8C0 */ + 0x500B, 0x53E4, 0x547C, 0x56FA, + 0x59D1, 0x5B64, 0x5DF1, 0x5EAB, + 0x5F27, 0x6238, 0x6545, 0x67AF, + 0x6E56, 0x72D0, 0x7CCA, 0x88B4, + 0x80A1, 0x80E1, 0x83F0, 0x864E, + 0x8A87, 0x8DE8, 0x9237, 0x96C7, + 0x9867, 0x9F13, 0x4E94, 0x4E92, + 0x4F0D, 0x5348, 0x5449, 0x543E, /* B8E0 */ + 0x5A2F, 0x5F8C, 0x5FA1, 0x609F, + 0x68A7, 0x6A8E, 0x745A, 0x7881, + 0x8A9E, 0x8AA4, 0x8B77, 0x9190, + 0x4E5E, 0x9BC9, 0x4EA4, 0x4F7C, + 0x4FAF, 0x5019, 0x5016, 0x5149, + 0x516C, 0x529F, 0x52B9, 0x52FE, + 0x539A, 0x53E3, 0x5411, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x540E, 0x5589, 0x5751, /* B9A0 */ + 0x57A2, 0x597D, 0x5B54, 0x5B5D, + 0x5B8F, 0x5DE5, 0x5DE7, 0x5DF7, + 0x5E78, 0x5E83, 0x5E9A, 0x5EB7, + 0x5F18, 0x6052, 0x614C, 0x6297, + 0x62D8, 0x63A7, 0x653B, 0x6602, + 0x6643, 0x66F4, 0x676D, 0x6821, + 0x6897, 0x69CB, 0x6C5F, 0x6D2A, + 0x6D69, 0x6E2F, 0x6E9D, 0x7532, /* B9C0 */ + 0x7687, 0x786C, 0x7A3F, 0x7CE0, + 0x7D05, 0x7D18, 0x7D5E, 0x7DB1, + 0x8015, 0x8003, 0x80AF, 0x80B1, + 0x8154, 0x818F, 0x822A, 0x8352, + 0x884C, 0x8861, 0x8B1B, 0x8CA2, + 0x8CFC, 0x90CA, 0x9175, 0x9271, + 0x783F, 0x92FC, 0x95A4, 0x964D, + 0x9805, 0x9999, 0x9AD8, 0x9D3B, /* B9E0 */ + 0x525B, 0x52AB, 0x53F7, 0x5408, + 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, + 0x8F5F, 0x9EB9, 0x514B, 0x523B, + 0x544A, 0x56FD, 0x7A40, 0x9177, + 0x9D60, 0x9ED2, 0x7344, 0x6F09, + 0x8170, 0x7511, 0x5FFD, 0x60DA, + 0x9AA8, 0x72DB, 0x8FBC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6B64, 0x9803, 0x4ECA, /* BAA0 */ + 0x56F0, 0x5764, 0x58BE, 0x5A5A, + 0x6068, 0x61C7, 0x660F, 0x6606, + 0x6839, 0x68B1, 0x6DF7, 0x75D5, + 0x7D3A, 0x826E, 0x9B42, 0x4E9B, + 0x4F50, 0x53C9, 0x5506, 0x5D6F, + 0x5DE6, 0x5DEE, 0x67FB, 0x6C99, + 0x7473, 0x7802, 0x8A50, 0x9396, + 0x88DF, 0x5750, 0x5EA7, 0x632B, /* BAC0 */ + 0x50B5, 0x50AC, 0x518D, 0x6700, + 0x54C9, 0x585E, 0x59BB, 0x5BB0, + 0x5F69, 0x624D, 0x63A1, 0x683D, + 0x6B73, 0x6E08, 0x707D, 0x91C7, + 0x7280, 0x7815, 0x7826, 0x796D, + 0x658E, 0x7D30, 0x83DC, 0x88C1, + 0x8F09, 0x969B, 0x5264, 0x5728, + 0x6750, 0x7F6A, 0x8CA1, 0x51B4, /* BAE0 */ + 0x5742, 0x962A, 0x583A, 0x698A, + 0x80B4, 0x54B2, 0x5D0E, 0x57FC, + 0x7895, 0x9DFA, 0x4F5C, 0x524A, + 0x548B, 0x643E, 0x6628, 0x6714, + 0x67F5, 0x7A84, 0x7B56, 0x7D22, + 0x932F, 0x685C, 0x9BAD, 0x7B39, + 0x5319, 0x518A, 0x5237, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5BDF, 0x62F6, 0x64AE, /* BBA0 */ + 0x64E6, 0x672D, 0x6BBA, 0x85A9, + 0x96D1, 0x7690, 0x9BD6, 0x634C, + 0x9306, 0x9BAB, 0x76BF, 0x6652, + 0x4E09, 0x5098, 0x53C2, 0x5C71, + 0x60E8, 0x6492, 0x6563, 0x685F, + 0x71E6, 0x73CA, 0x7523, 0x7B97, + 0x7E82, 0x8695, 0x8B83, 0x8CDB, + 0x9178, 0x9910, 0x65AC, 0x66AB, /* BBC0 */ + 0x6B8B, 0x4ED5, 0x4ED4, 0x4F3A, + 0x4F7F, 0x523A, 0x53F8, 0x53F2, + 0x55E3, 0x56DB, 0x58EB, 0x59CB, + 0x59C9, 0x59FF, 0x5B50, 0x5C4D, + 0x5E02, 0x5E2B, 0x5FD7, 0x601D, + 0x6307, 0x652F, 0x5B5C, 0x65AF, + 0x65BD, 0x65E8, 0x679D, 0x6B62, + 0x6B7B, 0x6C0F, 0x7345, 0x7949, /* BBE0 */ + 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, + 0x80A2, 0x8102, 0x81F3, 0x8996, + 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, + 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, + 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, + 0x4F8D, 0x5150, 0x5B57, 0x5BFA, + 0x6148, 0x6301, 0x6642, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6B21, 0x6ECB, 0x6CBB, /* BCA0 */ + 0x723E, 0x74BD, 0x75D4, 0x78C1, + 0x793A, 0x800C, 0x8033, 0x81EA, + 0x8494, 0x8F9E, 0x6C50, 0x9E7F, + 0x5F0F, 0x8B58, 0x9D2B, 0x7AFA, + 0x8EF8, 0x5B8D, 0x96EB, 0x4E03, + 0x53F1, 0x57F7, 0x5931, 0x5AC9, + 0x5BA4, 0x6089, 0x6E7F, 0x6F06, + 0x75BE, 0x8CEA, 0x5B9F, 0x8500, /* BCC0 */ + 0x7BE0, 0x5072, 0x67F4, 0x829D, + 0x5C61, 0x854A, 0x7E1E, 0x820E, + 0x5199, 0x5C04, 0x6368, 0x8D66, + 0x659C, 0x716E, 0x793E, 0x7D17, + 0x8005, 0x8B1D, 0x8ECA, 0x906E, + 0x86C7, 0x90AA, 0x501F, 0x52FA, + 0x5C3A, 0x6753, 0x707C, 0x7235, + 0x914C, 0x91C8, 0x932B, 0x82E5, /* BCE0 */ + 0x5BC2, 0x5F31, 0x60F9, 0x4E3B, + 0x53D6, 0x5B88, 0x624B, 0x6731, + 0x6B8A, 0x72E9, 0x73E0, 0x7A2E, + 0x816B, 0x8DA3, 0x9152, 0x9996, + 0x5112, 0x53D7, 0x546A, 0x5BFF, + 0x6388, 0x6A39, 0x7DAC, 0x9700, + 0x56DA, 0x53CE, 0x5468, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5B97, 0x5C31, 0x5DDE, /* BDA0 */ + 0x4FEE, 0x6101, 0x62FE, 0x6D32, + 0x79C0, 0x79CB, 0x7D42, 0x7E4D, + 0x7FD2, 0x81ED, 0x821F, 0x8490, + 0x8846, 0x8972, 0x8B90, 0x8E74, + 0x8F2F, 0x9031, 0x914B, 0x916C, + 0x96C6, 0x919C, 0x4EC0, 0x4F4F, + 0x5145, 0x5341, 0x5F93, 0x620E, + 0x67D4, 0x6C41, 0x6E0B, 0x7363, /* BDC0 */ + 0x7E26, 0x91CD, 0x9283, 0x53D4, + 0x5919, 0x5BBF, 0x6DD1, 0x795D, + 0x7E2E, 0x7C9B, 0x587E, 0x719F, + 0x51FA, 0x8853, 0x8FF0, 0x4FCA, + 0x5CFB, 0x6625, 0x77AC, 0x7AE3, + 0x821C, 0x99FF, 0x51C6, 0x5FAA, + 0x65EC, 0x696F, 0x6B89, 0x6DF3, + 0x6E96, 0x6F64, 0x76FE, 0x7D14, /* BDE0 */ + 0x5DE1, 0x9075, 0x9187, 0x9806, + 0x51E6, 0x521D, 0x6240, 0x6691, + 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, + 0x7F72, 0x66F8, 0x85AF, 0x85F7, + 0x8AF8, 0x52A9, 0x53D9, 0x5973, + 0x5E8F, 0x5F90, 0x6055, 0x92E4, + 0x9664, 0x50B7, 0x511F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x52DD, 0x5320, 0x5347, /* BEA0 */ + 0x53EC, 0x54E8, 0x5546, 0x5531, + 0x5617, 0x5968, 0x59BE, 0x5A3C, + 0x5BB5, 0x5C06, 0x5C0F, 0x5C11, + 0x5C1A, 0x5E84, 0x5E8A, 0x5EE0, + 0x5F70, 0x627F, 0x6284, 0x62DB, + 0x638C, 0x6377, 0x6607, 0x660C, + 0x662D, 0x6676, 0x677E, 0x68A2, + 0x6A1F, 0x6A35, 0x6CBC, 0x6D88, /* BEC0 */ + 0x6E09, 0x6E58, 0x713C, 0x7126, + 0x7167, 0x75C7, 0x7701, 0x785D, + 0x7901, 0x7965, 0x79F0, 0x7AE0, + 0x7B11, 0x7CA7, 0x7D39, 0x8096, + 0x83D6, 0x848B, 0x8549, 0x885D, + 0x88F3, 0x8A1F, 0x8A3C, 0x8A54, + 0x8A73, 0x8C61, 0x8CDE, 0x91A4, + 0x9266, 0x937E, 0x9418, 0x969C, /* BEE0 */ + 0x9798, 0x4E0A, 0x4E08, 0x4E1E, + 0x4E57, 0x5197, 0x5270, 0x57CE, + 0x5834, 0x58CC, 0x5B22, 0x5E38, + 0x60C5, 0x64FE, 0x6761, 0x6756, + 0x6D44, 0x72B6, 0x7573, 0x7A63, + 0x84B8, 0x8B72, 0x91B8, 0x9320, + 0x5631, 0x57F4, 0x98FE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x62ED, 0x690D, 0x6B96, /* BFA0 */ + 0x71ED, 0x7E54, 0x8077, 0x8272, + 0x89E6, 0x98DF, 0x8755, 0x8FB1, + 0x5C3B, 0x4F38, 0x4FE1, 0x4FB5, + 0x5507, 0x5A20, 0x5BDD, 0x5BE9, + 0x5FC3, 0x614E, 0x632F, 0x65B0, + 0x664B, 0x68EE, 0x699B, 0x6D78, + 0x6DF1, 0x7533, 0x75B9, 0x771F, + 0x795E, 0x79E6, 0x7D33, 0x81E3, /* BFC0 */ + 0x82AF, 0x85AA, 0x89AA, 0x8A3A, + 0x8EAB, 0x8F9B, 0x9032, 0x91DD, + 0x9707, 0x4EBA, 0x4EC1, 0x5203, + 0x5875, 0x58EC, 0x5C0B, 0x751A, + 0x5C3D, 0x814E, 0x8A0A, 0x8FC5, + 0x9663, 0x976D, 0x7B25, 0x8ACF, + 0x9808, 0x9162, 0x56F3, 0x53A8, + 0x9017, 0x5439, 0x5782, 0x5E25, /* BFE0 */ + 0x63A8, 0x6C34, 0x708A, 0x7761, + 0x7C8B, 0x7FE0, 0x8870, 0x9042, + 0x9154, 0x9310, 0x9318, 0x968F, + 0x745E, 0x9AC4, 0x5D07, 0x5D69, + 0x6570, 0x67A2, 0x8DA8, 0x96DB, + 0x636E, 0x6749, 0x6919, 0x83C5, + 0x9817, 0x96C0, 0x88FE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6F84, 0x647A, 0x5BF8, /* C0A0 */ + 0x4E16, 0x702C, 0x755D, 0x662F, + 0x51C4, 0x5236, 0x52E2, 0x59D3, + 0x5F81, 0x6027, 0x6210, 0x653F, + 0x6574, 0x661F, 0x6674, 0x68F2, + 0x6816, 0x6B63, 0x6E05, 0x7272, + 0x751F, 0x76DB, 0x7CBE, 0x8056, + 0x58F0, 0x88FD, 0x897F, 0x8AA0, + 0x8A93, 0x8ACB, 0x901D, 0x9192, /* C0C0 */ + 0x9752, 0x9759, 0x6589, 0x7A0E, + 0x8106, 0x96BB, 0x5E2D, 0x60DC, + 0x621A, 0x65A5, 0x6614, 0x6790, + 0x77F3, 0x7A4D, 0x7C4D, 0x7E3E, + 0x810A, 0x8CAC, 0x8D64, 0x8DE1, + 0x8E5F, 0x78A9, 0x5207, 0x62D9, + 0x63A5, 0x6442, 0x6298, 0x8A2D, + 0x7A83, 0x7BC0, 0x8AAC, 0x96EA, /* C0E0 */ + 0x7D76, 0x820C, 0x8749, 0x4ED9, + 0x5148, 0x5343, 0x5360, 0x5BA3, + 0x5C02, 0x5C16, 0x5DDD, 0x6226, + 0x6247, 0x64B0, 0x6813, 0x6834, + 0x6CC9, 0x6D45, 0x6D17, 0x67D3, + 0x6F5C, 0x714E, 0x717D, 0x65CB, + 0x7A7F, 0x7BAD, 0x7DDA, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7E4A, 0x7FA8, 0x817A, /* C1A0 */ + 0x821B, 0x8239, 0x85A6, 0x8A6E, + 0x8CCE, 0x8DF5, 0x9078, 0x9077, + 0x92AD, 0x9291, 0x9583, 0x9BAE, + 0x524D, 0x5584, 0x6F38, 0x7136, + 0x5168, 0x7985, 0x7E55, 0x81B3, + 0x7CCE, 0x564C, 0x5851, 0x5CA8, + 0x63AA, 0x66FE, 0x66FD, 0x695A, + 0x72D9, 0x758F, 0x758E, 0x790E, /* C1C0 */ + 0x7956, 0x79DF, 0x7C97, 0x7D20, + 0x7D44, 0x8607, 0x8A34, 0x963B, + 0x9061, 0x9F20, 0x50E7, 0x5275, + 0x53CC, 0x53E2, 0x5009, 0x55AA, + 0x58EE, 0x594F, 0x723D, 0x5B8B, + 0x5C64, 0x531D, 0x60E3, 0x60F3, + 0x635C, 0x6383, 0x633F, 0x63BB, + 0x64CD, 0x65E9, 0x66F9, 0x5DE3, /* C1E0 */ + 0x69CD, 0x69FD, 0x6F15, 0x71E5, + 0x4E89, 0x75E9, 0x76F8, 0x7A93, + 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, + 0x8349, 0x8358, 0x846C, 0x84BC, + 0x85FB, 0x88C5, 0x8D70, 0x9001, + 0x906D, 0x9397, 0x971C, 0x9A12, + 0x50CF, 0x5897, 0x618E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x81D3, 0x8535, 0x8D08, /* C2A0 */ + 0x9020, 0x4FC3, 0x5074, 0x5247, + 0x5373, 0x606F, 0x6349, 0x675F, + 0x6E2C, 0x8DB3, 0x901F, 0x4FD7, + 0x5C5E, 0x8CCA, 0x65CF, 0x7D9A, + 0x5352, 0x8896, 0x5176, 0x63C3, + 0x5B58, 0x5B6B, 0x5C0A, 0x640D, + 0x6751, 0x905C, 0x4ED6, 0x591A, + 0x592A, 0x6C70, 0x8A51, 0x553E, /* C2C0 */ + 0x5815, 0x59A5, 0x60F0, 0x6253, + 0x67C1, 0x8235, 0x6955, 0x9640, + 0x99C4, 0x9A28, 0x4F53, 0x5806, + 0x5BFE, 0x8010, 0x5CB1, 0x5E2F, + 0x5F85, 0x6020, 0x614B, 0x6234, + 0x66FF, 0x6CF0, 0x6EDE, 0x80CE, + 0x817F, 0x82D4, 0x888B, 0x8CB8, + 0x9000, 0x902E, 0x968A, 0x9EDB, /* C2E0 */ + 0x9BDB, 0x4EE3, 0x53F0, 0x5927, + 0x7B2C, 0x918D, 0x984C, 0x9DF9, + 0x6EDD, 0x7027, 0x5353, 0x5544, + 0x5B85, 0x6258, 0x629E, 0x62D3, + 0x6CA2, 0x6FEF, 0x7422, 0x8A17, + 0x9438, 0x6FC1, 0x8AFE, 0x8338, + 0x51E7, 0x86F8, 0x53EA, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x53E9, 0x4F46, 0x9054, /* C3A0 */ + 0x8FB0, 0x596A, 0x8131, 0x5DFD, + 0x7AEA, 0x8FBF, 0x68DA, 0x8C37, + 0x72F8, 0x9C48, 0x6A3D, 0x8AB0, + 0x4E39, 0x5358, 0x5606, 0x5766, + 0x62C5, 0x63A2, 0x65E6, 0x6B4E, + 0x6DE1, 0x6E5B, 0x70AD, 0x77ED, + 0x7AEF, 0x7BAA, 0x7DBB, 0x803D, + 0x80C6, 0x86CB, 0x8A95, 0x935B, /* C3C0 */ + 0x56E3, 0x58C7, 0x5F3E, 0x65AD, + 0x6696, 0x6A80, 0x6BB5, 0x7537, + 0x8AC7, 0x5024, 0x77E5, 0x5730, + 0x5F1B, 0x6065, 0x667A, 0x6C60, + 0x75F4, 0x7A1A, 0x7F6E, 0x81F4, + 0x8718, 0x9045, 0x99B3, 0x7BC9, + 0x755C, 0x7AF9, 0x7B51, 0x84C4, + 0x9010, 0x79E9, 0x7A92, 0x8336, /* C3E0 */ + 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, + 0x5B99, 0x5FE0, 0x62BD, 0x663C, + 0x67F1, 0x6CE8, 0x866B, 0x8877, + 0x8A3B, 0x914E, 0x92F3, 0x99D0, + 0x6A17, 0x7026, 0x732A, 0x82E7, + 0x8457, 0x8CAF, 0x4E01, 0x5146, + 0x51CB, 0x558B, 0x5BF5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5E16, 0x5E33, 0x5E81, /* C4A0 */ + 0x5F14, 0x5F35, 0x5F6B, 0x5FB4, + 0x61F2, 0x6311, 0x66A2, 0x671D, + 0x6F6E, 0x7252, 0x753A, 0x773A, + 0x8074, 0x8139, 0x8178, 0x8776, + 0x8ABF, 0x8ADC, 0x8D85, 0x8DF3, + 0x929A, 0x9577, 0x9802, 0x9CE5, + 0x52C5, 0x6357, 0x76F4, 0x6715, + 0x6C88, 0x73CD, 0x8CC3, 0x93AE, /* C4C0 */ + 0x9673, 0x6D25, 0x589C, 0x690E, + 0x69CC, 0x8FFD, 0x939A, 0x75DB, + 0x901A, 0x585A, 0x6802, 0x63B4, + 0x69FB, 0x4F43, 0x6F2C, 0x67D8, + 0x8FBB, 0x8526, 0x7DB4, 0x9354, + 0x693F, 0x6F70, 0x576A, 0x58F7, + 0x5B2C, 0x7D2C, 0x722A, 0x540A, + 0x91E3, 0x9DB4, 0x4EAD, 0x4F4E, /* C4E0 */ + 0x505C, 0x5075, 0x5243, 0x8C9E, + 0x5448, 0x5824, 0x5B9A, 0x5E1D, + 0x5E95, 0x5EAD, 0x5EF7, 0x5F1F, + 0x608C, 0x62B5, 0x633A, 0x63D0, + 0x68AF, 0x6C40, 0x7887, 0x798E, + 0x7A0B, 0x7DE0, 0x8247, 0x8A02, + 0x8AE6, 0x8E44, 0x9013, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x90B8, 0x912D, 0x91D8, /* C5A0 */ + 0x9F0E, 0x6CE5, 0x6458, 0x64E2, + 0x6575, 0x6EF4, 0x7684, 0x7B1B, + 0x9069, 0x93D1, 0x6EBA, 0x54F2, + 0x5FB9, 0x64A4, 0x8F4D, 0x8FED, + 0x9244, 0x5178, 0x586B, 0x5929, + 0x5C55, 0x5E97, 0x6DFB, 0x7E8F, + 0x751C, 0x8CBC, 0x8EE2, 0x985B, + 0x70B9, 0x4F1D, 0x6BBF, 0x6FB1, /* C5C0 */ + 0x7530, 0x96FB, 0x514E, 0x5410, + 0x5835, 0x5857, 0x59AC, 0x5C60, + 0x5F92, 0x6597, 0x675C, 0x6E21, + 0x767B, 0x83DF, 0x8CED, 0x9014, + 0x90FD, 0x934D, 0x7825, 0x783A, + 0x52AA, 0x5EA6, 0x571F, 0x5974, + 0x6012, 0x5012, 0x515A, 0x51AC, + 0x51CD, 0x5200, 0x5510, 0x5854, /* C5E0 */ + 0x5858, 0x5957, 0x5B95, 0x5CF6, + 0x5D8B, 0x60BC, 0x6295, 0x642D, + 0x6771, 0x6843, 0x68BC, 0x68DF, + 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, + 0x706F, 0x71C8, 0x5F53, 0x75D8, + 0x7977, 0x7B49, 0x7B54, 0x7B52, + 0x7CD6, 0x7D71, 0x5230, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8463, 0x8569, 0x85E4, /* C6A0 */ + 0x8A0E, 0x8B04, 0x8C46, 0x8E0F, + 0x9003, 0x900F, 0x9419, 0x9676, + 0x982D, 0x9A30, 0x95D8, 0x50CD, + 0x52D5, 0x540C, 0x5802, 0x5C0E, + 0x61A7, 0x649E, 0x6D1E, 0x77B3, + 0x7AE5, 0x80F4, 0x8404, 0x9053, + 0x9285, 0x5CE0, 0x9D07, 0x533F, + 0x5F97, 0x5FB3, 0x6D9C, 0x7279, /* C6C0 */ + 0x7763, 0x79BF, 0x7BE4, 0x6BD2, + 0x72EC, 0x8AAD, 0x6803, 0x6A61, + 0x51F8, 0x7A81, 0x6934, 0x5C4A, + 0x9CF6, 0x82EB, 0x5BC5, 0x9149, + 0x701E, 0x5678, 0x5C6F, 0x60C7, + 0x6566, 0x6C8C, 0x8C5A, 0x9041, + 0x9813, 0x5451, 0x66C7, 0x920D, + 0x5948, 0x90A3, 0x5185, 0x4E4D, /* C6E0 */ + 0x51EA, 0x8599, 0x8B0E, 0x7058, + 0x637A, 0x934B, 0x6962, 0x99B4, + 0x7E04, 0x7577, 0x5357, 0x6960, + 0x8EDF, 0x96E3, 0x6C5D, 0x4E8C, + 0x5C3C, 0x5F10, 0x8FE9, 0x5302, + 0x8CD1, 0x8089, 0x8679, 0x5EFF, + 0x65E5, 0x4E73, 0x5165, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5982, 0x5C3F, 0x97EE, /* C7A0 */ + 0x4EFB, 0x598A, 0x5FCD, 0x8A8D, + 0x6FE1, 0x79B0, 0x7962, 0x5BE7, + 0x8471, 0x732B, 0x71B1, 0x5E74, + 0x5FF5, 0x637B, 0x649A, 0x71C3, + 0x7C98, 0x4E43, 0x5EFC, 0x4E4B, + 0x57DC, 0x56A2, 0x60A9, 0x6FC3, + 0x7D0D, 0x80FD, 0x8133, 0x81BF, + 0x8FB2, 0x8997, 0x86A4, 0x5DF4, /* C7C0 */ + 0x628A, 0x64AD, 0x8987, 0x6777, + 0x6CE2, 0x6D3E, 0x7436, 0x7834, + 0x5A46, 0x7F75, 0x82AD, 0x99AC, + 0x4FF3, 0x5EC3, 0x62DD, 0x6392, + 0x6557, 0x676F, 0x76C3, 0x724C, + 0x80CC, 0x80BA, 0x8F29, 0x914D, + 0x500D, 0x57F9, 0x5A92, 0x6885, + 0x6973, 0x7164, 0x72FD, 0x8CB7, /* C7E0 */ + 0x58F2, 0x8CE0, 0x966A, 0x9019, + 0x877F, 0x79E4, 0x77E7, 0x8429, + 0x4F2F, 0x5265, 0x535A, 0x62CD, + 0x67CF, 0x6CCA, 0x767D, 0x7B94, + 0x7C95, 0x8236, 0x8584, 0x8FEB, + 0x66DD, 0x6F20, 0x7206, 0x7E1B, + 0x83AB, 0x99C1, 0x9EA6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x51FD, 0x7BB1, 0x7872, /* C8A0 */ + 0x7BB8, 0x8087, 0x7B48, 0x6AE8, + 0x5E61, 0x808C, 0x7551, 0x7560, + 0x516B, 0x9262, 0x6E8C, 0x767A, + 0x9197, 0x9AEA, 0x4F10, 0x7F70, + 0x629C, 0x7B4F, 0x95A5, 0x9CE9, + 0x567A, 0x5859, 0x86E4, 0x96BC, + 0x4F34, 0x5224, 0x534A, 0x53CD, + 0x53DB, 0x5E06, 0x642C, 0x6591, /* C8C0 */ + 0x677F, 0x6C3E, 0x6C4E, 0x7248, + 0x72AF, 0x73ED, 0x7554, 0x7E41, + 0x822C, 0x85E9, 0x8CA9, 0x7BC4, + 0x91C6, 0x7169, 0x9812, 0x98EF, + 0x633D, 0x6669, 0x756A, 0x76E4, + 0x78D0, 0x8543, 0x86EE, 0x532A, + 0x5351, 0x5426, 0x5983, 0x5E87, + 0x5F7C, 0x60B2, 0x6249, 0x6279, /* C8E0 */ + 0x62AB, 0x6590, 0x6BD4, 0x6CCC, + 0x75B2, 0x76AE, 0x7891, 0x79D8, + 0x7DCB, 0x7F77, 0x80A5, 0x88AB, + 0x8AB9, 0x8CBB, 0x907F, 0x975E, + 0x98DB, 0x6A0B, 0x7C38, 0x5099, + 0x5C3E, 0x5FAE, 0x6787, 0x6BD8, + 0x7435, 0x7709, 0x7F8E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9F3B, 0x67CA, 0x7A17, /* C9A0 */ + 0x5339, 0x758B, 0x9AED, 0x5F66, + 0x819D, 0x83F1, 0x8098, 0x5F3C, + 0x5FC5, 0x7562, 0x7B46, 0x903C, + 0x6867, 0x59EB, 0x5A9B, 0x7D10, + 0x767E, 0x8B2C, 0x4FF5, 0x5F6A, + 0x6A19, 0x6C37, 0x6F02, 0x74E2, + 0x7968, 0x8868, 0x8A55, 0x8C79, + 0x5EDF, 0x63CF, 0x75C5, 0x79D2, /* C9C0 */ + 0x82D7, 0x9328, 0x92F2, 0x849C, + 0x86ED, 0x9C2D, 0x54C1, 0x5F6C, + 0x658C, 0x6D5C, 0x7015, 0x8CA7, + 0x8CD3, 0x983B, 0x654F, 0x74F6, + 0x4E0D, 0x4ED8, 0x57E0, 0x592B, + 0x5A66, 0x5BCC, 0x51A8, 0x5E03, + 0x5E9C, 0x6016, 0x6276, 0x6577, + 0x65A7, 0x666E, 0x6D6E, 0x7236, /* C9E0 */ + 0x7B26, 0x8150, 0x819A, 0x8299, + 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, + 0x961C, 0x9644, 0x4FAE, 0x64AB, + 0x6B66, 0x821E, 0x8461, 0x856A, + 0x90E8, 0x5C01, 0x6953, 0x98A8, + 0x847A, 0x8557, 0x4F0F, 0x526F, + 0x5FA9, 0x5E45, 0x670D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x798F, 0x8179, 0x8907, /* CAA0 */ + 0x8986, 0x6DF5, 0x5F17, 0x6255, + 0x6CB8, 0x4ECF, 0x7269, 0x9B92, + 0x5206, 0x543B, 0x5674, 0x58B3, + 0x61A4, 0x626E, 0x711A, 0x596E, + 0x7C89, 0x7CDE, 0x7D1B, 0x96F0, + 0x6587, 0x805E, 0x4E19, 0x4F75, + 0x5175, 0x5840, 0x5E63, 0x5E73, + 0x5F0A, 0x67C4, 0x4E26, 0x853D, /* CAC0 */ + 0x9589, 0x965B, 0x7C73, 0x9801, + 0x50FB, 0x58C1, 0x7656, 0x78A7, + 0x5225, 0x77A5, 0x8511, 0x7B86, + 0x504F, 0x5909, 0x7247, 0x7BC7, + 0x7DE8, 0x8FBA, 0x8FD4, 0x904D, + 0x4FBF, 0x52C9, 0x5A29, 0x5F01, + 0x97AD, 0x4FDD, 0x8217, 0x92EA, + 0x5703, 0x6355, 0x6B69, 0x752B, /* CAE0 */ + 0x88DC, 0x8F14, 0x7A42, 0x52DF, + 0x5893, 0x6155, 0x620A, 0x66AE, + 0x6BCD, 0x7C3F, 0x83E9, 0x5023, + 0x4FF8, 0x5305, 0x5446, 0x5831, + 0x5949, 0x5B9D, 0x5CF0, 0x5CEF, + 0x5D29, 0x5E96, 0x62B1, 0x6367, + 0x653E, 0x65B9, 0x670B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6CD5, 0x6CE1, 0x70F9, /* CBA0 */ + 0x7832, 0x7E2B, 0x80DE, 0x82B3, + 0x840C, 0x84EC, 0x8702, 0x8912, + 0x8A2A, 0x8C4A, 0x90A6, 0x92D2, + 0x98FD, 0x9CF3, 0x9D6C, 0x4E4F, + 0x4EA1, 0x508D, 0x5256, 0x574A, + 0x59A8, 0x5E3D, 0x5FD8, 0x5FD9, + 0x623F, 0x66B4, 0x671B, 0x67D0, + 0x68D2, 0x5192, 0x7D21, 0x80AA, /* CBC0 */ + 0x81A8, 0x8B00, 0x8C8C, 0x8CBF, + 0x927E, 0x9632, 0x5420, 0x982C, + 0x5317, 0x50D5, 0x535C, 0x58A8, + 0x64B2, 0x6734, 0x7267, 0x7766, + 0x7A46, 0x91E6, 0x52C3, 0x6CA1, + 0x6B86, 0x5800, 0x5E4C, 0x5954, + 0x672C, 0x7FFB, 0x51E1, 0x76C6, + 0x6469, 0x78E8, 0x9B54, 0x9EBB, /* CBE0 */ + 0x57CB, 0x59B9, 0x6627, 0x679A, + 0x6BCE, 0x54E9, 0x69D9, 0x5E55, + 0x819C, 0x6795, 0x9BAA, 0x67FE, + 0x9C52, 0x685D, 0x4EA6, 0x4FE3, + 0x53C8, 0x62B9, 0x672B, 0x6CAB, + 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, + 0x4E07, 0x6162, 0x6E80, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6F2B, 0x8513, 0x5473, /* CCA0 */ + 0x672A, 0x9B45, 0x5DF3, 0x7B95, + 0x5CAC, 0x5BC6, 0x871C, 0x6E4A, + 0x84D1, 0x7A14, 0x8108, 0x5999, + 0x7C8D, 0x6C11, 0x7720, 0x52D9, + 0x5922, 0x7121, 0x725F, 0x77DB, + 0x9727, 0x9D61, 0x690B, 0x5A7F, + 0x5A18, 0x51A5, 0x540D, 0x547D, + 0x660E, 0x76DF, 0x8FF7, 0x9298, /* CCC0 */ + 0x9CF4, 0x59EA, 0x725D, 0x6EC5, + 0x514D, 0x68C9, 0x7DBF, 0x7DEC, + 0x9762, 0x9EBA, 0x6478, 0x6A21, + 0x8302, 0x5984, 0x5B5F, 0x6BDB, + 0x731B, 0x76F2, 0x7DB2, 0x8017, + 0x8499, 0x5132, 0x6728, 0x9ED9, + 0x76EE, 0x6762, 0x52FF, 0x9905, + 0x5C24, 0x623B, 0x7C7E, 0x8CB0, /* CCE0 */ + 0x554F, 0x60B6, 0x7D0B, 0x9580, + 0x5301, 0x4E5F, 0x51B6, 0x591C, + 0x723A, 0x8036, 0x91CE, 0x5F25, + 0x77E2, 0x5384, 0x5F79, 0x7D04, + 0x85AC, 0x8A33, 0x8E8D, 0x9756, + 0x67F3, 0x85AE, 0x9453, 0x6109, + 0x6108, 0x6CB9, 0x7652, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8AED, 0x8F38, 0x552F, /* CDA0 */ + 0x4F51, 0x512A, 0x52C7, 0x53CB, + 0x5BA5, 0x5E7D, 0x60A0, 0x6182, + 0x63D6, 0x6709, 0x67DA, 0x6E67, + 0x6D8C, 0x7336, 0x7337, 0x7531, + 0x7950, 0x88D5, 0x8A98, 0x904A, + 0x9091, 0x90F5, 0x96C4, 0x878D, + 0x5915, 0x4E88, 0x4F59, 0x4E0E, + 0x8A89, 0x8F3F, 0x9810, 0x50AD, /* CDC0 */ + 0x5E7C, 0x5996, 0x5BB9, 0x5EB8, + 0x63DA, 0x63FA, 0x64C1, 0x66DC, + 0x694A, 0x69D8, 0x6D0B, 0x6EB6, + 0x7194, 0x7528, 0x7AAF, 0x7F8A, + 0x8000, 0x8449, 0x84C9, 0x8981, + 0x8B21, 0x8E0A, 0x9065, 0x967D, + 0x990A, 0x617E, 0x6291, 0x6B32, + 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, /* CDE0 */ + 0x6DC0, 0x7F85, 0x87BA, 0x88F8, + 0x6765, 0x83B1, 0x983C, 0x96F7, + 0x6D1B, 0x7D61, 0x843D, 0x916A, + 0x4E71, 0x5375, 0x5D50, 0x6B04, + 0x6FEB, 0x85CD, 0x862D, 0x89A7, + 0x5229, 0x540F, 0x5C65, 0x674E, + 0x68A8, 0x7406, 0x7483, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x75E2, 0x88CF, 0x88E1, /* CEA0 */ + 0x91CC, 0x96E2, 0x9678, 0x5F8B, + 0x7387, 0x7ACB, 0x844E, 0x63A0, + 0x7565, 0x5289, 0x6D41, 0x6E9C, + 0x7409, 0x7559, 0x786B, 0x7C92, + 0x9686, 0x7ADC, 0x9F8D, 0x4FB6, + 0x616E, 0x65C5, 0x865C, 0x4E86, + 0x4EAE, 0x50DA, 0x4E21, 0x51CC, + 0x5BEE, 0x6599, 0x6881, 0x6DBC, /* CEC0 */ + 0x731F, 0x7642, 0x77AD, 0x7A1C, + 0x7CE7, 0x826F, 0x8AD2, 0x907C, + 0x91CF, 0x9675, 0x9818, 0x529B, + 0x7DD1, 0x502B, 0x5398, 0x6797, + 0x6DCB, 0x71D0, 0x7433, 0x81E8, + 0x8F2A, 0x96A3, 0x9C57, 0x9E9F, + 0x7460, 0x5841, 0x6D99, 0x7D2F, + 0x985E, 0x4EE4, 0x4F36, 0x4F8B, /* CEE0 */ + 0x51B7, 0x52B1, 0x5DBA, 0x601C, + 0x73B2, 0x793C, 0x82D3, 0x9234, + 0x96B7, 0x96F6, 0x970A, 0x9E97, + 0x9F62, 0x66A6, 0x6B74, 0x5217, + 0x52A3, 0x70C8, 0x88C2, 0x5EC9, + 0x604B, 0x6190, 0x6F23, 0x7149, + 0x7C3E, 0x7DF4, 0x806F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x84EE, 0x9023, 0x932C, /* CFA0 */ + 0x5442, 0x9B6F, 0x6AD3, 0x7089, + 0x8CC2, 0x8DEF, 0x9732, 0x52B4, + 0x5A41, 0x5ECA, 0x5F04, 0x6717, + 0x697C, 0x6994, 0x6D6A, 0x6F0F, + 0x7262, 0x72FC, 0x7BED, 0x8001, + 0x807E, 0x874B, 0x90CE, 0x516D, + 0x9E93, 0x7984, 0x808B, 0x9332, + 0x8AD6, 0x502D, 0x548C, 0x8A71, /* CFC0 */ + 0x6B6A, 0x8CC4, 0x8107, 0x60D1, + 0x67A0, 0x9DF2, 0x4E99, 0x4E98, + 0x9C10, 0x8A6B, 0x85C1, 0x8568, + 0x6900, 0x6E7E, 0x7897, 0x8155, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5F0C, 0x4E10, 0x4E15, /* D0A0 */ + 0x4E2A, 0x4E31, 0x4E36, 0x4E3C, + 0x4E3F, 0x4E42, 0x4E56, 0x4E58, + 0x4E82, 0x4E85, 0x8C6B, 0x4E8A, + 0x8212, 0x5F0D, 0x4E8E, 0x4E9E, + 0x4E9F, 0x4EA0, 0x4EA2, 0x4EB0, + 0x4EB3, 0x4EB6, 0x4ECE, 0x4ECD, + 0x4EC4, 0x4EC6, 0x4EC2, 0x4ED7, + 0x4EDE, 0x4EED, 0x4EDF, 0x4EF7, /* D0C0 */ + 0x4F09, 0x4F5A, 0x4F30, 0x4F5B, + 0x4F5D, 0x4F57, 0x4F47, 0x4F76, + 0x4F88, 0x4F8F, 0x4F98, 0x4F7B, + 0x4F69, 0x4F70, 0x4F91, 0x4F6F, + 0x4F86, 0x4F96, 0x5118, 0x4FD4, + 0x4FDF, 0x4FCE, 0x4FD8, 0x4FDB, + 0x4FD1, 0x4FDA, 0x4FD0, 0x4FE4, + 0x4FE5, 0x501A, 0x5028, 0x5014, /* D0E0 */ + 0x502A, 0x5025, 0x5005, 0x4F1C, + 0x4FF6, 0x5021, 0x5029, 0x502C, + 0x4FFE, 0x4FEF, 0x5011, 0x5006, + 0x5043, 0x5047, 0x6703, 0x5055, + 0x5050, 0x5048, 0x505A, 0x5056, + 0x506C, 0x5078, 0x5080, 0x509A, + 0x5085, 0x50B4, 0x50B2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x50C9, 0x50CA, 0x50B3, /* D1A0 */ + 0x50C2, 0x50D6, 0x50DE, 0x50E5, + 0x50ED, 0x50E3, 0x50EE, 0x50F9, + 0x50F5, 0x5109, 0x5101, 0x5102, + 0x5116, 0x5115, 0x5114, 0x511A, + 0x5121, 0x513A, 0x5137, 0x513C, + 0x513B, 0x513F, 0x5140, 0x5152, + 0x514C, 0x5154, 0x5162, 0x7AF8, + 0x5169, 0x516A, 0x516E, 0x5180, /* D1C0 */ + 0x5182, 0x56D8, 0x518C, 0x5189, + 0x518F, 0x5191, 0x5193, 0x5195, + 0x5196, 0x51A4, 0x51A6, 0x51A2, + 0x51A9, 0x51AA, 0x51AB, 0x51B3, + 0x51B1, 0x51B2, 0x51B0, 0x51B5, + 0x51BD, 0x51C5, 0x51C9, 0x51DB, + 0x51E0, 0x8655, 0x51E9, 0x51ED, + 0x51F0, 0x51F5, 0x51FE, 0x5204, /* D1E0 */ + 0x520B, 0x5214, 0x520E, 0x5227, + 0x522A, 0x522E, 0x5233, 0x5239, + 0x524F, 0x5244, 0x524B, 0x524C, + 0x525E, 0x5254, 0x526A, 0x5274, + 0x5269, 0x5273, 0x527F, 0x527D, + 0x528D, 0x5294, 0x5292, 0x5271, + 0x5288, 0x5291, 0x8FA8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8FA7, 0x52AC, 0x52AD, /* D2A0 */ + 0x52BC, 0x52B5, 0x52C1, 0x52CD, + 0x52D7, 0x52DE, 0x52E3, 0x52E6, + 0x98ED, 0x52E0, 0x52F3, 0x52F5, + 0x52F8, 0x52F9, 0x5306, 0x5308, + 0x7538, 0x530D, 0x5310, 0x530F, + 0x5315, 0x531A, 0x5323, 0x532F, + 0x5331, 0x5333, 0x5338, 0x5340, + 0x5346, 0x5345, 0x4E17, 0x5349, /* D2C0 */ + 0x534D, 0x51D6, 0x535E, 0x5369, + 0x536E, 0x5918, 0x537B, 0x5377, + 0x5382, 0x5396, 0x53A0, 0x53A6, + 0x53A5, 0x53AE, 0x53B0, 0x53B6, + 0x53C3, 0x7C12, 0x96D9, 0x53DF, + 0x66FC, 0x71EE, 0x53EE, 0x53E8, + 0x53ED, 0x53FA, 0x5401, 0x543D, + 0x5440, 0x542C, 0x542D, 0x543C, /* D2E0 */ + 0x542E, 0x5436, 0x5429, 0x541D, + 0x544E, 0x548F, 0x5475, 0x548E, + 0x545F, 0x5471, 0x5477, 0x5470, + 0x5492, 0x547B, 0x5480, 0x5476, + 0x5484, 0x5490, 0x5486, 0x54C7, + 0x54A2, 0x54B8, 0x54A5, 0x54AC, + 0x54C4, 0x54C8, 0x54A8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x54AB, 0x54C2, 0x54A4, /* D3A0 */ + 0x54BE, 0x54BC, 0x54D8, 0x54E5, + 0x54E6, 0x550F, 0x5514, 0x54FD, + 0x54EE, 0x54ED, 0x54FA, 0x54E2, + 0x5539, 0x5540, 0x5563, 0x554C, + 0x552E, 0x555C, 0x5545, 0x5556, + 0x5557, 0x5538, 0x5533, 0x555D, + 0x5599, 0x5580, 0x54AF, 0x558A, + 0x559F, 0x557B, 0x557E, 0x5598, /* D3C0 */ + 0x559E, 0x55AE, 0x557C, 0x5583, + 0x55A9, 0x5587, 0x55A8, 0x55DA, + 0x55C5, 0x55DF, 0x55C4, 0x55DC, + 0x55E4, 0x55D4, 0x5614, 0x55F7, + 0x5616, 0x55FE, 0x55FD, 0x561B, + 0x55F9, 0x564E, 0x5650, 0x71DF, + 0x5634, 0x5636, 0x5632, 0x5638, + 0x566B, 0x5664, 0x562F, 0x566C, /* D3E0 */ + 0x566A, 0x5686, 0x5680, 0x568A, + 0x56A0, 0x5694, 0x568F, 0x56A5, + 0x56AE, 0x56B6, 0x56B4, 0x56C2, + 0x56BC, 0x56C1, 0x56C3, 0x56C0, + 0x56C8, 0x56CE, 0x56D1, 0x56D3, + 0x56D7, 0x56EE, 0x56F9, 0x5700, + 0x56FF, 0x5704, 0x5709, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5708, 0x570B, 0x570D, /* D4A0 */ + 0x5713, 0x5718, 0x5716, 0x55C7, + 0x571C, 0x5726, 0x5737, 0x5738, + 0x574E, 0x573B, 0x5740, 0x574F, + 0x5769, 0x57C0, 0x5788, 0x5761, + 0x577F, 0x5789, 0x5793, 0x57A0, + 0x57B3, 0x57A4, 0x57AA, 0x57B0, + 0x57C3, 0x57C6, 0x57D4, 0x57D2, + 0x57D3, 0x580A, 0x57D6, 0x57E3, /* D4C0 */ + 0x580B, 0x5819, 0x581D, 0x5872, + 0x5821, 0x5862, 0x584B, 0x5870, + 0x6BC0, 0x5852, 0x583D, 0x5879, + 0x5885, 0x58B9, 0x589F, 0x58AB, + 0x58BA, 0x58DE, 0x58BB, 0x58B8, + 0x58AE, 0x58C5, 0x58D3, 0x58D1, + 0x58D7, 0x58D9, 0x58D8, 0x58E5, + 0x58DC, 0x58E4, 0x58DF, 0x58EF, /* D4E0 */ + 0x58FA, 0x58F9, 0x58FB, 0x58FC, + 0x58FD, 0x5902, 0x590A, 0x5910, + 0x591B, 0x68A6, 0x5925, 0x592C, + 0x592D, 0x5932, 0x5938, 0x593E, + 0x7AD2, 0x5955, 0x5950, 0x594E, + 0x595A, 0x5958, 0x5962, 0x5960, + 0x5967, 0x596C, 0x5969, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5978, 0x5981, 0x599D, /* D5A0 */ + 0x4F5E, 0x4FAB, 0x59A3, 0x59B2, + 0x59C6, 0x59E8, 0x59DC, 0x598D, + 0x59D9, 0x59DA, 0x5A25, 0x5A1F, + 0x5A11, 0x5A1C, 0x5A09, 0x5A1A, + 0x5A40, 0x5A6C, 0x5A49, 0x5A35, + 0x5A36, 0x5A62, 0x5A6A, 0x5A9A, + 0x5ABC, 0x5ABE, 0x5ACB, 0x5AC2, + 0x5ABD, 0x5AE3, 0x5AD7, 0x5AE6, /* D5C0 */ + 0x5AE9, 0x5AD6, 0x5AFA, 0x5AFB, + 0x5B0C, 0x5B0B, 0x5B16, 0x5B32, + 0x5AD0, 0x5B2A, 0x5B36, 0x5B3E, + 0x5B43, 0x5B45, 0x5B40, 0x5B51, + 0x5B55, 0x5B5A, 0x5B5B, 0x5B65, + 0x5B69, 0x5B70, 0x5B73, 0x5B75, + 0x5B78, 0x6588, 0x5B7A, 0x5B80, + 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, /* D5E0 */ + 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, + 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, + 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, + 0x5BF3, 0x5C05, 0x5C07, 0x5C08, + 0x5C0D, 0x5C13, 0x5C20, 0x5C22, + 0x5C28, 0x5C38, 0x5C39, 0x5C41, + 0x5C46, 0x5C4E, 0x5C53, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5C50, 0x5C4F, 0x5B71, /* D6A0 */ + 0x5C6C, 0x5C6E, 0x4E62, 0x5C76, + 0x5C79, 0x5C8C, 0x5C91, 0x5C94, + 0x599B, 0x5CAB, 0x5CBB, 0x5CB6, + 0x5CBC, 0x5CB7, 0x5CC5, 0x5CBE, + 0x5CC7, 0x5CD9, 0x5CE9, 0x5CFD, + 0x5CFA, 0x5CED, 0x5D8C, 0x5CEA, + 0x5D0B, 0x5D15, 0x5D17, 0x5D5C, + 0x5D1F, 0x5D1B, 0x5D11, 0x5D14, /* D6C0 */ + 0x5D22, 0x5D1A, 0x5D19, 0x5D18, + 0x5D4C, 0x5D52, 0x5D4E, 0x5D4B, + 0x5D6C, 0x5D73, 0x5D76, 0x5D87, + 0x5D84, 0x5D82, 0x5DA2, 0x5D9D, + 0x5DAC, 0x5DAE, 0x5DBD, 0x5D90, + 0x5DB7, 0x5DBC, 0x5DC9, 0x5DCD, + 0x5DD3, 0x5DD2, 0x5DD6, 0x5DDB, + 0x5DEB, 0x5DF2, 0x5DF5, 0x5E0B, /* D6E0 */ + 0x5E1A, 0x5E19, 0x5E11, 0x5E1B, + 0x5E36, 0x5E37, 0x5E44, 0x5E43, + 0x5E40, 0x5E4E, 0x5E57, 0x5E54, + 0x5E5F, 0x5E62, 0x5E64, 0x5E47, + 0x5E75, 0x5E76, 0x5E7A, 0x9EBC, + 0x5E7F, 0x5EA0, 0x5EC1, 0x5EC2, + 0x5EC8, 0x5ED0, 0x5ECF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5ED6, 0x5EE3, 0x5EDD, /* D7A0 */ + 0x5EDA, 0x5EDB, 0x5EE2, 0x5EE1, + 0x5EE8, 0x5EE9, 0x5EEC, 0x5EF1, + 0x5EF3, 0x5EF0, 0x5EF4, 0x5EF8, + 0x5EFE, 0x5F03, 0x5F09, 0x5F5D, + 0x5F5C, 0x5F0B, 0x5F11, 0x5F16, + 0x5F29, 0x5F2D, 0x5F38, 0x5F41, + 0x5F48, 0x5F4C, 0x5F4E, 0x5F2F, + 0x5F51, 0x5F56, 0x5F57, 0x5F59, /* D7C0 */ + 0x5F61, 0x5F6D, 0x5F73, 0x5F77, + 0x5F83, 0x5F82, 0x5F7F, 0x5F8A, + 0x5F88, 0x5F91, 0x5F87, 0x5F9E, + 0x5F99, 0x5F98, 0x5FA0, 0x5FA8, + 0x5FAD, 0x5FBC, 0x5FD6, 0x5FFB, + 0x5FE4, 0x5FF8, 0x5FF1, 0x5FDD, + 0x60B3, 0x5FFF, 0x6021, 0x6060, + 0x6019, 0x6010, 0x6029, 0x600E, /* D7E0 */ + 0x6031, 0x601B, 0x6015, 0x602B, + 0x6026, 0x600F, 0x603A, 0x605A, + 0x6041, 0x606A, 0x6077, 0x605F, + 0x604A, 0x6046, 0x604D, 0x6063, + 0x6043, 0x6064, 0x6042, 0x606C, + 0x606B, 0x6059, 0x6081, 0x608D, + 0x60E7, 0x6083, 0x609A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6084, 0x609B, 0x6096, /* D8A0 */ + 0x6097, 0x6092, 0x60A7, 0x608B, + 0x60E1, 0x60B8, 0x60E0, 0x60D3, + 0x60B4, 0x5FF0, 0x60BD, 0x60C6, + 0x60B5, 0x60D8, 0x614D, 0x6115, + 0x6106, 0x60F6, 0x60F7, 0x6100, + 0x60F4, 0x60FA, 0x6103, 0x6121, + 0x60FB, 0x60F1, 0x610D, 0x610E, + 0x6147, 0x613E, 0x6128, 0x6127, /* D8C0 */ + 0x614A, 0x613F, 0x613C, 0x612C, + 0x6134, 0x613D, 0x6142, 0x6144, + 0x6173, 0x6177, 0x6158, 0x6159, + 0x615A, 0x616B, 0x6174, 0x616F, + 0x6165, 0x6171, 0x615F, 0x615D, + 0x6153, 0x6175, 0x6199, 0x6196, + 0x6187, 0x61AC, 0x6194, 0x619A, + 0x618A, 0x6191, 0x61AB, 0x61AE, /* D8E0 */ + 0x61CC, 0x61CA, 0x61C9, 0x61F7, + 0x61C8, 0x61C3, 0x61C6, 0x61BA, + 0x61CB, 0x7F79, 0x61CD, 0x61E6, + 0x61E3, 0x61F6, 0x61FA, 0x61F4, + 0x61FF, 0x61FD, 0x61FC, 0x61FE, + 0x6200, 0x6208, 0x6209, 0x620D, + 0x620C, 0x6214, 0x621B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x621E, 0x6221, 0x622A, /* D9A0 */ + 0x622E, 0x6230, 0x6232, 0x6233, + 0x6241, 0x624E, 0x625E, 0x6263, + 0x625B, 0x6260, 0x6268, 0x627C, + 0x6282, 0x6289, 0x627E, 0x6292, + 0x6293, 0x6296, 0x62D4, 0x6283, + 0x6294, 0x62D7, 0x62D1, 0x62BB, + 0x62CF, 0x62FF, 0x62C6, 0x64D4, + 0x62C8, 0x62DC, 0x62CC, 0x62CA, /* D9C0 */ + 0x62C2, 0x62C7, 0x629B, 0x62C9, + 0x630C, 0x62EE, 0x62F1, 0x6327, + 0x6302, 0x6308, 0x62EF, 0x62F5, + 0x6350, 0x633E, 0x634D, 0x641C, + 0x634F, 0x6396, 0x638E, 0x6380, + 0x63AB, 0x6376, 0x63A3, 0x638F, + 0x6389, 0x639F, 0x63B5, 0x636B, + 0x6369, 0x63BE, 0x63E9, 0x63C0, /* D9E0 */ + 0x63C6, 0x63E3, 0x63C9, 0x63D2, + 0x63F6, 0x63C4, 0x6416, 0x6434, + 0x6406, 0x6413, 0x6426, 0x6436, + 0x651D, 0x6417, 0x6428, 0x640F, + 0x6467, 0x646F, 0x6476, 0x644E, + 0x652A, 0x6495, 0x6493, 0x64A5, + 0x64A9, 0x6488, 0x64BC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x64DA, 0x64D2, 0x64C5, /* DAA0 */ + 0x64C7, 0x64BB, 0x64D8, 0x64C2, + 0x64F1, 0x64E7, 0x8209, 0x64E0, + 0x64E1, 0x62AC, 0x64E3, 0x64EF, + 0x652C, 0x64F6, 0x64F4, 0x64F2, + 0x64FA, 0x6500, 0x64FD, 0x6518, + 0x651C, 0x6505, 0x6524, 0x6523, + 0x652B, 0x6534, 0x6535, 0x6537, + 0x6536, 0x6538, 0x754B, 0x6548, /* DAC0 */ + 0x6556, 0x6555, 0x654D, 0x6558, + 0x655E, 0x655D, 0x6572, 0x6578, + 0x6582, 0x6583, 0x8B8A, 0x659B, + 0x659F, 0x65AB, 0x65B7, 0x65C3, + 0x65C6, 0x65C1, 0x65C4, 0x65CC, + 0x65D2, 0x65DB, 0x65D9, 0x65E0, + 0x65E1, 0x65F1, 0x6772, 0x660A, + 0x6603, 0x65FB, 0x6773, 0x6635, /* DAE0 */ + 0x6636, 0x6634, 0x661C, 0x664F, + 0x6644, 0x6649, 0x6641, 0x665E, + 0x665D, 0x6664, 0x6667, 0x6668, + 0x665F, 0x6662, 0x6670, 0x6683, + 0x6688, 0x668E, 0x6689, 0x6684, + 0x6698, 0x669D, 0x66C1, 0x66B9, + 0x66C9, 0x66BE, 0x66BC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x66C4, 0x66B8, 0x66D6, /* DBA0 */ + 0x66DA, 0x66E0, 0x663F, 0x66E6, + 0x66E9, 0x66F0, 0x66F5, 0x66F7, + 0x670F, 0x6716, 0x671E, 0x6726, + 0x6727, 0x9738, 0x672E, 0x673F, + 0x6736, 0x6741, 0x6738, 0x6737, + 0x6746, 0x675E, 0x6760, 0x6759, + 0x6763, 0x6764, 0x6789, 0x6770, + 0x67A9, 0x677C, 0x676A, 0x678C, /* DBC0 */ + 0x678B, 0x67A6, 0x67A1, 0x6785, + 0x67B7, 0x67EF, 0x67B4, 0x67EC, + 0x67B3, 0x67E9, 0x67B8, 0x67E4, + 0x67DE, 0x67DD, 0x67E2, 0x67EE, + 0x67B9, 0x67CE, 0x67C6, 0x67E7, + 0x6A9C, 0x681E, 0x6846, 0x6829, + 0x6840, 0x684D, 0x6832, 0x684E, + 0x68B3, 0x682B, 0x6859, 0x6863, /* DBE0 */ + 0x6877, 0x687F, 0x689F, 0x688F, + 0x68AD, 0x6894, 0x689D, 0x689B, + 0x6883, 0x6AAE, 0x68B9, 0x6874, + 0x68B5, 0x68A0, 0x68BA, 0x690F, + 0x688D, 0x687E, 0x6901, 0x68CA, + 0x6908, 0x68D8, 0x6922, 0x6926, + 0x68E1, 0x690C, 0x68CD, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x68D4, 0x68E7, 0x68D5, /* DCA0 */ + 0x6936, 0x6912, 0x6904, 0x68D7, + 0x68E3, 0x6925, 0x68F9, 0x68E0, + 0x68EF, 0x6928, 0x692A, 0x691A, + 0x6923, 0x6921, 0x68C6, 0x6979, + 0x6977, 0x695C, 0x6978, 0x696B, + 0x6954, 0x697E, 0x696E, 0x6939, + 0x6974, 0x693D, 0x6959, 0x6930, + 0x6961, 0x695E, 0x695D, 0x6981, /* DCC0 */ + 0x696A, 0x69B2, 0x69AE, 0x69D0, + 0x69BF, 0x69C1, 0x69D3, 0x69BE, + 0x69CE, 0x5BE8, 0x69CA, 0x69DD, + 0x69BB, 0x69C3, 0x69A7, 0x6A2E, + 0x6991, 0x69A0, 0x699C, 0x6995, + 0x69B4, 0x69DE, 0x69E8, 0x6A02, + 0x6A1B, 0x69FF, 0x6B0A, 0x69F9, + 0x69F2, 0x69E7, 0x6A05, 0x69B1, /* DCE0 */ + 0x6A1E, 0x69ED, 0x6A14, 0x69EB, + 0x6A0A, 0x6A12, 0x6AC1, 0x6A23, + 0x6A13, 0x6A44, 0x6A0C, 0x6A72, + 0x6A36, 0x6A78, 0x6A47, 0x6A62, + 0x6A59, 0x6A66, 0x6A48, 0x6A38, + 0x6A22, 0x6A90, 0x6A8D, 0x6AA0, + 0x6A84, 0x6AA2, 0x6AA3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6A97, 0x8617, 0x6ABB, /* DDA0 */ + 0x6AC3, 0x6AC2, 0x6AB8, 0x6AB3, + 0x6AAC, 0x6ADE, 0x6AD1, 0x6ADF, + 0x6AAA, 0x6ADA, 0x6AEA, 0x6AFB, + 0x6B05, 0x8616, 0x6AFA, 0x6B12, + 0x6B16, 0x9B31, 0x6B1F, 0x6B38, + 0x6B37, 0x76DC, 0x6B39, 0x98EE, + 0x6B47, 0x6B43, 0x6B49, 0x6B50, + 0x6B59, 0x6B54, 0x6B5B, 0x6B5F, /* DDC0 */ + 0x6B61, 0x6B78, 0x6B79, 0x6B7F, + 0x6B80, 0x6B84, 0x6B83, 0x6B8D, + 0x6B98, 0x6B95, 0x6B9E, 0x6BA4, + 0x6BAA, 0x6BAB, 0x6BAF, 0x6BB2, + 0x6BB1, 0x6BB3, 0x6BB7, 0x6BBC, + 0x6BC6, 0x6BCB, 0x6BD3, 0x6BDF, + 0x6BEC, 0x6BEB, 0x6BF3, 0x6BEF, + 0x9EBE, 0x6C08, 0x6C13, 0x6C14, /* DDE0 */ + 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, + 0x6C55, 0x6C62, 0x6C6A, 0x6C82, + 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, + 0x6C7E, 0x6C68, 0x6C73, 0x6C92, + 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, + 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, + 0x6CAE, 0x6CB1, 0x6CBE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6CBA, 0x6CDB, 0x6CEF, /* DEA0 */ + 0x6CD9, 0x6CEA, 0x6D1F, 0x884D, + 0x6D36, 0x6D2B, 0x6D3D, 0x6D38, + 0x6D19, 0x6D35, 0x6D33, 0x6D12, + 0x6D0C, 0x6D63, 0x6D93, 0x6D64, + 0x6D5A, 0x6D79, 0x6D59, 0x6D8E, + 0x6D95, 0x6FE4, 0x6D85, 0x6DF9, + 0x6E15, 0x6E0A, 0x6DB5, 0x6DC7, + 0x6DE6, 0x6DB8, 0x6DC6, 0x6DEC, /* DEC0 */ + 0x6DDE, 0x6DCC, 0x6DE8, 0x6DD2, + 0x6DC5, 0x6DFA, 0x6DD9, 0x6DE4, + 0x6DD5, 0x6DEA, 0x6DEE, 0x6E2D, + 0x6E6E, 0x6E2E, 0x6E19, 0x6E72, + 0x6E5F, 0x6E3E, 0x6E23, 0x6E6B, + 0x6E2B, 0x6E76, 0x6E4D, 0x6E1F, + 0x6E43, 0x6E3A, 0x6E4E, 0x6E24, + 0x6EFF, 0x6E1D, 0x6E38, 0x6E82, /* DEE0 */ + 0x6EAA, 0x6E98, 0x6EC9, 0x6EB7, + 0x6ED3, 0x6EBD, 0x6EAF, 0x6EC4, + 0x6EB2, 0x6ED4, 0x6ED5, 0x6E8F, + 0x6EA5, 0x6EC2, 0x6E9F, 0x6F41, + 0x6F11, 0x704C, 0x6EEC, 0x6EF8, + 0x6EFE, 0x6F3F, 0x6EF2, 0x6F31, + 0x6EEF, 0x6F32, 0x6ECC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6F3E, 0x6F13, 0x6EF7, /* DFA0 */ + 0x6F86, 0x6F7A, 0x6F78, 0x6F81, + 0x6F80, 0x6F6F, 0x6F5B, 0x6FF3, + 0x6F6D, 0x6F82, 0x6F7C, 0x6F58, + 0x6F8E, 0x6F91, 0x6FC2, 0x6F66, + 0x6FB3, 0x6FA3, 0x6FA1, 0x6FA4, + 0x6FB9, 0x6FC6, 0x6FAA, 0x6FDF, + 0x6FD5, 0x6FEC, 0x6FD4, 0x6FD8, + 0x6FF1, 0x6FEE, 0x6FDB, 0x7009, /* DFC0 */ + 0x700B, 0x6FFA, 0x7011, 0x7001, + 0x700F, 0x6FFE, 0x701B, 0x701A, + 0x6F74, 0x701D, 0x7018, 0x701F, + 0x7030, 0x703E, 0x7032, 0x7051, + 0x7063, 0x7099, 0x7092, 0x70AF, + 0x70F1, 0x70AC, 0x70B8, 0x70B3, + 0x70AE, 0x70DF, 0x70CB, 0x70DD, + 0x70D9, 0x7109, 0x70FD, 0x711C, /* DFE0 */ + 0x7119, 0x7165, 0x7155, 0x7188, + 0x7166, 0x7162, 0x714C, 0x7156, + 0x716C, 0x718F, 0x71FB, 0x7184, + 0x7195, 0x71A8, 0x71AC, 0x71D7, + 0x71B9, 0x71BE, 0x71D2, 0x71C9, + 0x71D4, 0x71CE, 0x71E0, 0x71EC, + 0x71E7, 0x71F5, 0x71FC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x71F9, 0x71FF, 0x720D, /* E0A0 */ + 0x7210, 0x721B, 0x7228, 0x722D, + 0x722C, 0x7230, 0x7232, 0x723B, + 0x723C, 0x723F, 0x7240, 0x7246, + 0x724B, 0x7258, 0x7274, 0x727E, + 0x7282, 0x7281, 0x7287, 0x7292, + 0x7296, 0x72A2, 0x72A7, 0x72B9, + 0x72B2, 0x72C3, 0x72C6, 0x72C4, + 0x72CE, 0x72D2, 0x72E2, 0x72E0, /* E0C0 */ + 0x72E1, 0x72F9, 0x72F7, 0x500F, + 0x7317, 0x730A, 0x731C, 0x7316, + 0x731D, 0x7334, 0x732F, 0x7329, + 0x7325, 0x733E, 0x734E, 0x734F, + 0x9ED8, 0x7357, 0x736A, 0x7368, + 0x7370, 0x7378, 0x7375, 0x737B, + 0x737A, 0x73C8, 0x73B3, 0x73CE, + 0x73BB, 0x73C0, 0x73E5, 0x73EE, /* E0E0 */ + 0x73DE, 0x74A2, 0x7405, 0x746F, + 0x7425, 0x73F8, 0x7432, 0x743A, + 0x7455, 0x743F, 0x745F, 0x7459, + 0x7441, 0x745C, 0x7469, 0x7470, + 0x7463, 0x746A, 0x7476, 0x747E, + 0x748B, 0x749E, 0x74A7, 0x74CA, + 0x74CF, 0x74D4, 0x73F1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x74E0, 0x74E3, 0x74E7, /* E1A0 */ + 0x74E9, 0x74EE, 0x74F2, 0x74F0, + 0x74F1, 0x74F8, 0x74F7, 0x7504, + 0x7503, 0x7505, 0x750C, 0x750E, + 0x750D, 0x7515, 0x7513, 0x751E, + 0x7526, 0x752C, 0x753C, 0x7544, + 0x754D, 0x754A, 0x7549, 0x755B, + 0x7546, 0x755A, 0x7569, 0x7564, + 0x7567, 0x756B, 0x756D, 0x7578, /* E1C0 */ + 0x7576, 0x7586, 0x7587, 0x7574, + 0x758A, 0x7589, 0x7582, 0x7594, + 0x759A, 0x759D, 0x75A5, 0x75A3, + 0x75C2, 0x75B3, 0x75C3, 0x75B5, + 0x75BD, 0x75B8, 0x75BC, 0x75B1, + 0x75CD, 0x75CA, 0x75D2, 0x75D9, + 0x75E3, 0x75DE, 0x75FE, 0x75FF, + 0x75FC, 0x7601, 0x75F0, 0x75FA, /* E1E0 */ + 0x75F2, 0x75F3, 0x760B, 0x760D, + 0x7609, 0x761F, 0x7627, 0x7620, + 0x7621, 0x7622, 0x7624, 0x7634, + 0x7630, 0x763B, 0x7647, 0x7648, + 0x7646, 0x765C, 0x7658, 0x7661, + 0x7662, 0x7668, 0x7669, 0x766A, + 0x7667, 0x766C, 0x7670, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7672, 0x7676, 0x7678, /* E2A0 */ + 0x767C, 0x7680, 0x7683, 0x7688, + 0x768B, 0x768E, 0x7696, 0x7693, + 0x7699, 0x769A, 0x76B0, 0x76B4, + 0x76B8, 0x76B9, 0x76BA, 0x76C2, + 0x76CD, 0x76D6, 0x76D2, 0x76DE, + 0x76E1, 0x76E5, 0x76E7, 0x76EA, + 0x862F, 0x76FB, 0x7708, 0x7707, + 0x7704, 0x7729, 0x7724, 0x771E, /* E2C0 */ + 0x7725, 0x7726, 0x771B, 0x7737, + 0x7738, 0x7747, 0x775A, 0x7768, + 0x776B, 0x775B, 0x7765, 0x777F, + 0x777E, 0x7779, 0x778E, 0x778B, + 0x7791, 0x77A0, 0x779E, 0x77B0, + 0x77B6, 0x77B9, 0x77BF, 0x77BC, + 0x77BD, 0x77BB, 0x77C7, 0x77CD, + 0x77D7, 0x77DA, 0x77DC, 0x77E3, /* E2E0 */ + 0x77EE, 0x77FC, 0x780C, 0x7812, + 0x7926, 0x7820, 0x792A, 0x7845, + 0x788E, 0x7874, 0x7886, 0x787C, + 0x789A, 0x788C, 0x78A3, 0x78B5, + 0x78AA, 0x78AF, 0x78D1, 0x78C6, + 0x78CB, 0x78D4, 0x78BE, 0x78BC, + 0x78C5, 0x78CA, 0x78EC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x78E7, 0x78DA, 0x78FD, /* E3A0 */ + 0x78F4, 0x7907, 0x7912, 0x7911, + 0x7919, 0x792C, 0x792B, 0x7940, + 0x7960, 0x7957, 0x795F, 0x795A, + 0x7955, 0x7953, 0x797A, 0x797F, + 0x798A, 0x799D, 0x79A7, 0x9F4B, + 0x79AA, 0x79AE, 0x79B3, 0x79B9, + 0x79BA, 0x79C9, 0x79D5, 0x79E7, + 0x79EC, 0x79E1, 0x79E3, 0x7A08, /* E3C0 */ + 0x7A0D, 0x7A18, 0x7A19, 0x7A20, + 0x7A1F, 0x7980, 0x7A31, 0x7A3B, + 0x7A3E, 0x7A37, 0x7A43, 0x7A57, + 0x7A49, 0x7A61, 0x7A62, 0x7A69, + 0x9F9D, 0x7A70, 0x7A79, 0x7A7D, + 0x7A88, 0x7A97, 0x7A95, 0x7A98, + 0x7A96, 0x7AA9, 0x7AC8, 0x7AB0, + 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, /* E3E0 */ + 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, + 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, + 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, + 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, + 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, + 0x7B18, 0x7B19, 0x7B1E, 0x7B35, + 0x7B28, 0x7B36, 0x7B50, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7B7A, 0x7B04, 0x7B4D, /* E4A0 */ + 0x7B0B, 0x7B4C, 0x7B45, 0x7B75, + 0x7B65, 0x7B74, 0x7B67, 0x7B70, + 0x7B71, 0x7B6C, 0x7B6E, 0x7B9D, + 0x7B98, 0x7B9F, 0x7B8D, 0x7B9C, + 0x7B9A, 0x7B8B, 0x7B92, 0x7B8F, + 0x7B5D, 0x7B99, 0x7BCB, 0x7BC1, + 0x7BCC, 0x7BCF, 0x7BB4, 0x7BC6, + 0x7BDD, 0x7BE9, 0x7C11, 0x7C14, /* E4C0 */ + 0x7BE6, 0x7BE5, 0x7C60, 0x7C00, + 0x7C07, 0x7C13, 0x7BF3, 0x7BF7, + 0x7C17, 0x7C0D, 0x7BF6, 0x7C23, + 0x7C27, 0x7C2A, 0x7C1F, 0x7C37, + 0x7C2B, 0x7C3D, 0x7C4C, 0x7C43, + 0x7C54, 0x7C4F, 0x7C40, 0x7C50, + 0x7C58, 0x7C5F, 0x7C64, 0x7C56, + 0x7C65, 0x7C6C, 0x7C75, 0x7C83, /* E4E0 */ + 0x7C90, 0x7CA4, 0x7CAD, 0x7CA2, + 0x7CAB, 0x7CA1, 0x7CA8, 0x7CB3, + 0x7CB2, 0x7CB1, 0x7CAE, 0x7CB9, + 0x7CBD, 0x7CC0, 0x7CC5, 0x7CC2, + 0x7CD8, 0x7CD2, 0x7CDC, 0x7CE2, + 0x9B3B, 0x7CEF, 0x7CF2, 0x7CF4, + 0x7CF6, 0x7CFA, 0x7D06, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7D02, 0x7D1C, 0x7D15, /* E5A0 */ + 0x7D0A, 0x7D45, 0x7D4B, 0x7D2E, + 0x7D32, 0x7D3F, 0x7D35, 0x7D46, + 0x7D73, 0x7D56, 0x7D4E, 0x7D72, + 0x7D68, 0x7D6E, 0x7D4F, 0x7D63, + 0x7D93, 0x7D89, 0x7D5B, 0x7D8F, + 0x7D7D, 0x7D9B, 0x7DBA, 0x7DAE, + 0x7DA3, 0x7DB5, 0x7DC7, 0x7DBD, + 0x7DAB, 0x7E3D, 0x7DA2, 0x7DAF, /* E5C0 */ + 0x7DDC, 0x7DB8, 0x7D9F, 0x7DB0, + 0x7DD8, 0x7DDD, 0x7DE4, 0x7DDE, + 0x7DFB, 0x7DF2, 0x7DE1, 0x7E05, + 0x7E0A, 0x7E23, 0x7E21, 0x7E12, + 0x7E31, 0x7E1F, 0x7E09, 0x7E0B, + 0x7E22, 0x7E46, 0x7E66, 0x7E3B, + 0x7E35, 0x7E39, 0x7E43, 0x7E37, + 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, /* E5E0 */ + 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, + 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, + 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, + 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, + 0x7E8C, 0x7E92, 0x7E90, 0x7E93, + 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, + 0x7E9C, 0x7F38, 0x7F3A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7F45, 0x7F4C, 0x7F4D, /* E6A0 */ + 0x7F4E, 0x7F50, 0x7F51, 0x7F55, + 0x7F54, 0x7F58, 0x7F5F, 0x7F60, + 0x7F68, 0x7F69, 0x7F67, 0x7F78, + 0x7F82, 0x7F86, 0x7F83, 0x7F88, + 0x7F87, 0x7F8C, 0x7F94, 0x7F9E, + 0x7F9D, 0x7F9A, 0x7FA3, 0x7FAF, + 0x7FB2, 0x7FB9, 0x7FAE, 0x7FB6, + 0x7FB8, 0x8B71, 0x7FC5, 0x7FC6, /* E6C0 */ + 0x7FCA, 0x7FD5, 0x7FD4, 0x7FE1, + 0x7FE6, 0x7FE9, 0x7FF3, 0x7FF9, + 0x98DC, 0x8006, 0x8004, 0x800B, + 0x8012, 0x8018, 0x8019, 0x801C, + 0x8021, 0x8028, 0x803F, 0x803B, + 0x804A, 0x8046, 0x8052, 0x8058, + 0x805A, 0x805F, 0x8062, 0x8068, + 0x8073, 0x8072, 0x8070, 0x8076, /* E6E0 */ + 0x8079, 0x807D, 0x807F, 0x8084, + 0x8086, 0x8085, 0x809B, 0x8093, + 0x809A, 0x80AD, 0x5190, 0x80AC, + 0x80DB, 0x80E5, 0x80D9, 0x80DD, + 0x80C4, 0x80DA, 0x80D6, 0x8109, + 0x80EF, 0x80F1, 0x811B, 0x8129, + 0x8123, 0x812F, 0x814B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x968B, 0x8146, 0x813E, /* E7A0 */ + 0x8153, 0x8151, 0x80FC, 0x8171, + 0x816E, 0x8165, 0x8166, 0x8174, + 0x8183, 0x8188, 0x818A, 0x8180, + 0x8182, 0x81A0, 0x8195, 0x81A4, + 0x81A3, 0x815F, 0x8193, 0x81A9, + 0x81B0, 0x81B5, 0x81BE, 0x81B8, + 0x81BD, 0x81C0, 0x81C2, 0x81BA, + 0x81C9, 0x81CD, 0x81D1, 0x81D9, /* E7C0 */ + 0x81D8, 0x81C8, 0x81DA, 0x81DF, + 0x81E0, 0x81E7, 0x81FA, 0x81FB, + 0x81FE, 0x8201, 0x8202, 0x8205, + 0x8207, 0x820A, 0x820D, 0x8210, + 0x8216, 0x8229, 0x822B, 0x8238, + 0x8233, 0x8240, 0x8259, 0x8258, + 0x825D, 0x825A, 0x825F, 0x8264, + 0x8262, 0x8268, 0x826A, 0x826B, /* E7E0 */ + 0x822E, 0x8271, 0x8277, 0x8278, + 0x827E, 0x828D, 0x8292, 0x82AB, + 0x829F, 0x82BB, 0x82AC, 0x82E1, + 0x82E3, 0x82DF, 0x82D2, 0x82F4, + 0x82F3, 0x82FA, 0x8393, 0x8303, + 0x82FB, 0x82F9, 0x82DE, 0x8306, + 0x82DC, 0x8309, 0x82D9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8335, 0x8334, 0x8316, /* E8A0 */ + 0x8332, 0x8331, 0x8340, 0x8339, + 0x8350, 0x8345, 0x832F, 0x832B, + 0x8317, 0x8318, 0x8385, 0x839A, + 0x83AA, 0x839F, 0x83A2, 0x8396, + 0x8323, 0x838E, 0x8387, 0x838A, + 0x837C, 0x83B5, 0x8373, 0x8375, + 0x83A0, 0x8389, 0x83A8, 0x83F4, + 0x8413, 0x83EB, 0x83CE, 0x83FD, /* E8C0 */ + 0x8403, 0x83D8, 0x840B, 0x83C1, + 0x83F7, 0x8407, 0x83E0, 0x83F2, + 0x840D, 0x8422, 0x8420, 0x83BD, + 0x8438, 0x8506, 0x83FB, 0x846D, + 0x842A, 0x843C, 0x855A, 0x8484, + 0x8477, 0x846B, 0x84AD, 0x846E, + 0x8482, 0x8469, 0x8446, 0x842C, + 0x846F, 0x8479, 0x8435, 0x84CA, /* E8E0 */ + 0x8462, 0x84B9, 0x84BF, 0x849F, + 0x84D9, 0x84CD, 0x84BB, 0x84DA, + 0x84D0, 0x84C1, 0x84C6, 0x84D6, + 0x84A1, 0x8521, 0x84FF, 0x84F4, + 0x8517, 0x8518, 0x852C, 0x851F, + 0x8515, 0x8514, 0x84FC, 0x8540, + 0x8563, 0x8558, 0x8548, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8541, 0x8602, 0x854B, /* E9A0 */ + 0x8555, 0x8580, 0x85A4, 0x8588, + 0x8591, 0x858A, 0x85A8, 0x856D, + 0x8594, 0x859B, 0x85EA, 0x8587, + 0x859C, 0x8577, 0x857E, 0x8590, + 0x85C9, 0x85BA, 0x85CF, 0x85B9, + 0x85D0, 0x85D5, 0x85DD, 0x85E5, + 0x85DC, 0x85F9, 0x860A, 0x8613, + 0x860B, 0x85FE, 0x85FA, 0x8606, /* E9C0 */ + 0x8622, 0x861A, 0x8630, 0x863F, + 0x864D, 0x4E55, 0x8654, 0x865F, + 0x8667, 0x8671, 0x8693, 0x86A3, + 0x86A9, 0x86AA, 0x868B, 0x868C, + 0x86B6, 0x86AF, 0x86C4, 0x86C6, + 0x86B0, 0x86C9, 0x8823, 0x86AB, + 0x86D4, 0x86DE, 0x86E9, 0x86EC, + 0x86DF, 0x86DB, 0x86EF, 0x8712, /* E9E0 */ + 0x8706, 0x8708, 0x8700, 0x8703, + 0x86FB, 0x8711, 0x8709, 0x870D, + 0x86F9, 0x870A, 0x8734, 0x873F, + 0x8737, 0x873B, 0x8725, 0x8729, + 0x871A, 0x8760, 0x875F, 0x8778, + 0x874C, 0x874E, 0x8774, 0x8757, + 0x8768, 0x876E, 0x8759, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8753, 0x8763, 0x876A, /* EAA0 */ + 0x8805, 0x87A2, 0x879F, 0x8782, + 0x87AF, 0x87CB, 0x87BD, 0x87C0, + 0x87D0, 0x96D6, 0x87AB, 0x87C4, + 0x87B3, 0x87C7, 0x87C6, 0x87BB, + 0x87EF, 0x87F2, 0x87E0, 0x880F, + 0x880D, 0x87FE, 0x87F6, 0x87F7, + 0x880E, 0x87D2, 0x8811, 0x8816, + 0x8815, 0x8822, 0x8821, 0x8831, /* EAC0 */ + 0x8836, 0x8839, 0x8827, 0x883B, + 0x8844, 0x8842, 0x8852, 0x8859, + 0x885E, 0x8862, 0x886B, 0x8881, + 0x887E, 0x889E, 0x8875, 0x887D, + 0x88B5, 0x8872, 0x8882, 0x8897, + 0x8892, 0x88AE, 0x8899, 0x88A2, + 0x888D, 0x88A4, 0x88B0, 0x88BF, + 0x88B1, 0x88C3, 0x88C4, 0x88D4, /* EAE0 */ + 0x88D8, 0x88D9, 0x88DD, 0x88F9, + 0x8902, 0x88FC, 0x88F4, 0x88E8, + 0x88F2, 0x8904, 0x890C, 0x890A, + 0x8913, 0x8943, 0x891E, 0x8925, + 0x892A, 0x892B, 0x8941, 0x8944, + 0x893B, 0x8936, 0x8938, 0x894C, + 0x891D, 0x8960, 0x895E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8966, 0x8964, 0x896D, /* EBA0 */ + 0x896A, 0x896F, 0x8974, 0x8977, + 0x897E, 0x8983, 0x8988, 0x898A, + 0x8993, 0x8998, 0x89A1, 0x89A9, + 0x89A6, 0x89AC, 0x89AF, 0x89B2, + 0x89BA, 0x89BD, 0x89BF, 0x89C0, + 0x89DA, 0x89DC, 0x89DD, 0x89E7, + 0x89F4, 0x89F8, 0x8A03, 0x8A16, + 0x8A10, 0x8A0C, 0x8A1B, 0x8A1D, /* EBC0 */ + 0x8A25, 0x8A36, 0x8A41, 0x8A5B, + 0x8A52, 0x8A46, 0x8A48, 0x8A7C, + 0x8A6D, 0x8A6C, 0x8A62, 0x8A85, + 0x8A82, 0x8A84, 0x8AA8, 0x8AA1, + 0x8A91, 0x8AA5, 0x8AA6, 0x8A9A, + 0x8AA3, 0x8AC4, 0x8ACD, 0x8AC2, + 0x8ADA, 0x8AEB, 0x8AF3, 0x8AE7, + 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, /* EBE0 */ + 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, + 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, + 0x8B16, 0x8B10, 0x8B17, 0x8B20, + 0x8B33, 0x97AB, 0x8B26, 0x8B2B, + 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, + 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, + 0x8B5B, 0x8B5A, 0x8B6B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8B5F, 0x8B6C, 0x8B6F, /* ECA0 */ + 0x8B74, 0x8B7D, 0x8B80, 0x8B8C, + 0x8B8E, 0x8B92, 0x8B93, 0x8B96, + 0x8B99, 0x8B9A, 0x8C3A, 0x8C41, + 0x8C3F, 0x8C48, 0x8C4C, 0x8C4E, + 0x8C50, 0x8C55, 0x8C62, 0x8C6C, + 0x8C78, 0x8C7A, 0x8C82, 0x8C89, + 0x8C85, 0x8C8A, 0x8C8D, 0x8C8E, + 0x8C94, 0x8C7C, 0x8C98, 0x621D, /* ECC0 */ + 0x8CAD, 0x8CAA, 0x8CBD, 0x8CB2, + 0x8CB3, 0x8CAE, 0x8CB6, 0x8CC8, + 0x8CC1, 0x8CE4, 0x8CE3, 0x8CDA, + 0x8CFD, 0x8CFA, 0x8CFB, 0x8D04, + 0x8D05, 0x8D0A, 0x8D07, 0x8D0F, + 0x8D0D, 0x8D10, 0x9F4E, 0x8D13, + 0x8CCD, 0x8D14, 0x8D16, 0x8D67, + 0x8D6D, 0x8D71, 0x8D73, 0x8D81, /* ECE0 */ + 0x8D99, 0x8DC2, 0x8DBE, 0x8DBA, + 0x8DCF, 0x8DDA, 0x8DD6, 0x8DCC, + 0x8DDB, 0x8DCB, 0x8DEA, 0x8DEB, + 0x8DDF, 0x8DE3, 0x8DFC, 0x8E08, + 0x8E09, 0x8DFF, 0x8E1D, 0x8E1E, + 0x8E10, 0x8E1F, 0x8E42, 0x8E35, + 0x8E30, 0x8E34, 0x8E4A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8E47, 0x8E49, 0x8E4C, /* EDA0 */ + 0x8E50, 0x8E48, 0x8E59, 0x8E64, + 0x8E60, 0x8E2A, 0x8E63, 0x8E55, + 0x8E76, 0x8E72, 0x8E7C, 0x8E81, + 0x8E87, 0x8E85, 0x8E84, 0x8E8B, + 0x8E8A, 0x8E93, 0x8E91, 0x8E94, + 0x8E99, 0x8EAA, 0x8EA1, 0x8EAC, + 0x8EB0, 0x8EC6, 0x8EB1, 0x8EBE, + 0x8EC5, 0x8EC8, 0x8ECB, 0x8EDB, /* EDC0 */ + 0x8EE3, 0x8EFC, 0x8EFB, 0x8EEB, + 0x8EFE, 0x8F0A, 0x8F05, 0x8F15, + 0x8F12, 0x8F19, 0x8F13, 0x8F1C, + 0x8F1F, 0x8F1B, 0x8F0C, 0x8F26, + 0x8F33, 0x8F3B, 0x8F39, 0x8F45, + 0x8F42, 0x8F3E, 0x8F4C, 0x8F49, + 0x8F46, 0x8F4E, 0x8F57, 0x8F5C, + 0x8F62, 0x8F63, 0x8F64, 0x8F9C, /* EDE0 */ + 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, + 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, + 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, + 0x9005, 0x8FF9, 0x8FFA, 0x9011, + 0x9015, 0x9021, 0x900D, 0x901E, + 0x9016, 0x900B, 0x9027, 0x9036, + 0x9035, 0x9039, 0x8FF8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x904F, 0x9050, 0x9051, /* EEA0 */ + 0x9052, 0x900E, 0x9049, 0x903E, + 0x9056, 0x9058, 0x905E, 0x9068, + 0x906F, 0x9076, 0x96A8, 0x9072, + 0x9082, 0x907D, 0x9081, 0x9080, + 0x908A, 0x9089, 0x908F, 0x90A8, + 0x90AF, 0x90B1, 0x90B5, 0x90E2, + 0x90E4, 0x6248, 0x90DB, 0x9102, + 0x9112, 0x9119, 0x9132, 0x9130, /* EEC0 */ + 0x914A, 0x9156, 0x9158, 0x9163, + 0x9165, 0x9169, 0x9173, 0x9172, + 0x918B, 0x9189, 0x9182, 0x91A2, + 0x91AB, 0x91AF, 0x91AA, 0x91B5, + 0x91B4, 0x91BA, 0x91C0, 0x91C1, + 0x91C9, 0x91CB, 0x91D0, 0x91D6, + 0x91DF, 0x91E1, 0x91DB, 0x91FC, + 0x91F5, 0x91F6, 0x921E, 0x91FF, /* EEE0 */ + 0x9214, 0x922C, 0x9215, 0x9211, + 0x925E, 0x9257, 0x9245, 0x9249, + 0x9264, 0x9248, 0x9295, 0x923F, + 0x924B, 0x9250, 0x929C, 0x9296, + 0x9293, 0x929B, 0x925A, 0x92CF, + 0x92B9, 0x92B7, 0x92E9, 0x930F, + 0x92FA, 0x9344, 0x932E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9319, 0x9322, 0x931A, /* EFA0 */ + 0x9323, 0x933A, 0x9335, 0x933B, + 0x935C, 0x9360, 0x937C, 0x936E, + 0x9356, 0x93B0, 0x93AC, 0x93AD, + 0x9394, 0x93B9, 0x93D6, 0x93D7, + 0x93E8, 0x93E5, 0x93D8, 0x93C3, + 0x93DD, 0x93D0, 0x93C8, 0x93E4, + 0x941A, 0x9414, 0x9413, 0x9403, + 0x9407, 0x9410, 0x9436, 0x942B, /* EFC0 */ + 0x9435, 0x9421, 0x943A, 0x9441, + 0x9452, 0x9444, 0x945B, 0x9460, + 0x9462, 0x945E, 0x946A, 0x9229, + 0x9470, 0x9475, 0x9477, 0x947D, + 0x945A, 0x947C, 0x947E, 0x9481, + 0x947F, 0x9582, 0x9587, 0x958A, + 0x9594, 0x9596, 0x9598, 0x9599, + 0x95A0, 0x95A8, 0x95A7, 0x95AD, /* EFE0 */ + 0x95BC, 0x95BB, 0x95B9, 0x95BE, + 0x95CA, 0x6FF6, 0x95C3, 0x95CD, + 0x95CC, 0x95D5, 0x95D4, 0x95D6, + 0x95DC, 0x95E1, 0x95E5, 0x95E2, + 0x9621, 0x9628, 0x962E, 0x962F, + 0x9642, 0x964C, 0x964F, 0x964B, + 0x9677, 0x965C, 0x965E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x965D, 0x965F, 0x9666, /* F0A0 */ + 0x9672, 0x966C, 0x968D, 0x9698, + 0x9695, 0x9697, 0x96AA, 0x96A7, + 0x96B1, 0x96B2, 0x96B0, 0x96B4, + 0x96B6, 0x96B8, 0x96B9, 0x96CE, + 0x96CB, 0x96C9, 0x96CD, 0x894D, + 0x96DC, 0x970D, 0x96D5, 0x96F9, + 0x9704, 0x9706, 0x9708, 0x9713, + 0x970E, 0x9711, 0x970F, 0x9716, /* F0C0 */ + 0x9719, 0x9724, 0x972A, 0x9730, + 0x9739, 0x973D, 0x973E, 0x9744, + 0x9746, 0x9748, 0x9742, 0x9749, + 0x975C, 0x9760, 0x9764, 0x9766, + 0x9768, 0x52D2, 0x976B, 0x9771, + 0x9779, 0x9785, 0x977C, 0x9781, + 0x977A, 0x9786, 0x978B, 0x978F, + 0x9790, 0x979C, 0x97A8, 0x97A6, /* F0E0 */ + 0x97A3, 0x97B3, 0x97B4, 0x97C3, + 0x97C6, 0x97C8, 0x97CB, 0x97DC, + 0x97ED, 0x9F4F, 0x97F2, 0x7ADF, + 0x97F6, 0x97F5, 0x980F, 0x980C, + 0x9838, 0x9824, 0x9821, 0x9837, + 0x983D, 0x9846, 0x984F, 0x984B, + 0x986B, 0x986F, 0x9870, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9871, 0x9874, 0x9873, /* F1A0 */ + 0x98AA, 0x98AF, 0x98B1, 0x98B6, + 0x98C4, 0x98C3, 0x98C6, 0x98E9, + 0x98EB, 0x9903, 0x9909, 0x9912, + 0x9914, 0x9918, 0x9921, 0x991D, + 0x991E, 0x9924, 0x9920, 0x992C, + 0x992E, 0x993D, 0x993E, 0x9942, + 0x9949, 0x9945, 0x9950, 0x994B, + 0x9951, 0x9952, 0x994C, 0x9955, /* F1C0 */ + 0x9997, 0x9998, 0x99A5, 0x99AD, + 0x99AE, 0x99BC, 0x99DF, 0x99DB, + 0x99DD, 0x99D8, 0x99D1, 0x99ED, + 0x99EE, 0x99F1, 0x99F2, 0x99FB, + 0x99F8, 0x9A01, 0x9A0F, 0x9A05, + 0x99E2, 0x9A19, 0x9A2B, 0x9A37, + 0x9A45, 0x9A42, 0x9A40, 0x9A43, + 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, /* F1E0 */ + 0x9A57, 0x9A5F, 0x9A62, 0x9A65, + 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, + 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, + 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, + 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, + 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, + 0x9AF4, 0x9AF1, 0x9AF7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9AFB, 0x9B06, 0x9B18, /* F2A0 */ + 0x9B1A, 0x9B1F, 0x9B22, 0x9B23, + 0x9B25, 0x9B27, 0x9B28, 0x9B29, + 0x9B2A, 0x9B2E, 0x9B2F, 0x9B32, + 0x9B44, 0x9B43, 0x9B4F, 0x9B4D, + 0x9B4E, 0x9B51, 0x9B58, 0x9B74, + 0x9B93, 0x9B83, 0x9B91, 0x9B96, + 0x9B97, 0x9B9F, 0x9BA0, 0x9BA8, + 0x9BB4, 0x9BC0, 0x9BCA, 0x9BB9, /* F2C0 */ + 0x9BC6, 0x9BCF, 0x9BD1, 0x9BD2, + 0x9BE3, 0x9BE2, 0x9BE4, 0x9BD4, + 0x9BE1, 0x9C3A, 0x9BF2, 0x9BF1, + 0x9BF0, 0x9C15, 0x9C14, 0x9C09, + 0x9C13, 0x9C0C, 0x9C06, 0x9C08, + 0x9C12, 0x9C0A, 0x9C04, 0x9C2E, + 0x9C1B, 0x9C25, 0x9C24, 0x9C21, + 0x9C30, 0x9C47, 0x9C32, 0x9C46, /* F2E0 */ + 0x9C3E, 0x9C5A, 0x9C60, 0x9C67, + 0x9C76, 0x9C78, 0x9CE7, 0x9CEC, + 0x9CF0, 0x9D09, 0x9D08, 0x9CEB, + 0x9D03, 0x9D06, 0x9D2A, 0x9D26, + 0x9DAF, 0x9D23, 0x9D1F, 0x9D44, + 0x9D15, 0x9D12, 0x9D41, 0x9D3F, + 0x9D3E, 0x9D46, 0x9D48, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9D5D, 0x9D5E, 0x9D64, /* F3A0 */ + 0x9D51, 0x9D50, 0x9D59, 0x9D72, + 0x9D89, 0x9D87, 0x9DAB, 0x9D6F, + 0x9D7A, 0x9D9A, 0x9DA4, 0x9DA9, + 0x9DB2, 0x9DC4, 0x9DC1, 0x9DBB, + 0x9DB8, 0x9DBA, 0x9DC6, 0x9DCF, + 0x9DC2, 0x9DD9, 0x9DD3, 0x9DF8, + 0x9DE6, 0x9DED, 0x9DEF, 0x9DFD, + 0x9E1A, 0x9E1B, 0x9E1E, 0x9E75, /* F3C0 */ + 0x9E79, 0x9E7D, 0x9E81, 0x9E88, + 0x9E8B, 0x9E8C, 0x9E92, 0x9E95, + 0x9E91, 0x9E9D, 0x9EA5, 0x9EA9, + 0x9EB8, 0x9EAA, 0x9EAD, 0x9761, + 0x9ECC, 0x9ECE, 0x9ECF, 0x9ED0, + 0x9ED4, 0x9EDC, 0x9EDE, 0x9EDD, + 0x9EE0, 0x9EE5, 0x9EE8, 0x9EEF, + 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, /* F3E0 */ + 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, + 0x9F08, 0x76B7, 0x9F15, 0x9F21, + 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, + 0x9F54, 0x9F63, 0x9F5F, 0x9F60, + 0x9F61, 0x9F66, 0x9F67, 0x9F6C, + 0x9F6A, 0x9F77, 0x9F72, 0x9F76, + 0x9F95, 0x9F9C, 0x9FA0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x582F, 0x69C7, 0x9059, /* F4A0 */ + 0x7464, 0x51DC, 0x7199, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE000, 0xE001, 0xE002, /* F5A0 */ + 0xE003, 0xE004, 0xE005, 0xE006, + 0xE007, 0xE008, 0xE009, 0xE00A, + 0xE00B, 0xE00C, 0xE00D, 0xE00E, + 0xE00F, 0xE010, 0xE011, 0xE012, + 0xE013, 0xE014, 0xE015, 0xE016, + 0xE017, 0xE018, 0xE019, 0xE01A, + 0xE01B, 0xE01C, 0xE01D, 0xE01E, + 0xE01F, 0xE020, 0xE021, 0xE022, /* F5C0 */ + 0xE023, 0xE024, 0xE025, 0xE026, + 0xE027, 0xE028, 0xE029, 0xE02A, + 0xE02B, 0xE02C, 0xE02D, 0xE02E, + 0xE02F, 0xE030, 0xE031, 0xE032, + 0xE033, 0xE034, 0xE035, 0xE036, + 0xE037, 0xE038, 0xE039, 0xE03A, + 0xE03B, 0xE03C, 0xE03D, 0xE03E, + 0xE03F, 0xE040, 0xE041, 0xE042, /* F5E0 */ + 0xE043, 0xE044, 0xE045, 0xE046, + 0xE047, 0xE048, 0xE049, 0xE04A, + 0xE04B, 0xE04C, 0xE04D, 0xE04E, + 0xE04F, 0xE050, 0xE051, 0xE052, + 0xE053, 0xE054, 0xE055, 0xE056, + 0xE057, 0xE058, 0xE059, 0xE05A, + 0xE05B, 0xE05C, 0xE05D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE05E, 0xE05F, 0xE060, /* F6A0 */ + 0xE061, 0xE062, 0xE063, 0xE064, + 0xE065, 0xE066, 0xE067, 0xE068, + 0xE069, 0xE06A, 0xE06B, 0xE06C, + 0xE06D, 0xE06E, 0xE06F, 0xE070, + 0xE071, 0xE072, 0xE073, 0xE074, + 0xE075, 0xE076, 0xE077, 0xE078, + 0xE079, 0xE07A, 0xE07B, 0xE07C, + 0xE07D, 0xE07E, 0xE07F, 0xE080, /* F6C0 */ + 0xE081, 0xE082, 0xE083, 0xE084, + 0xE085, 0xE086, 0xE087, 0xE088, + 0xE089, 0xE08A, 0xE08B, 0xE08C, + 0xE08D, 0xE08E, 0xE08F, 0xE090, + 0xE091, 0xE092, 0xE093, 0xE094, + 0xE095, 0xE096, 0xE097, 0xE098, + 0xE099, 0xE09A, 0xE09B, 0xE09C, + 0xE09D, 0xE09E, 0xE09F, 0xE0A0, /* F6E0 */ + 0xE0A1, 0xE0A2, 0xE0A3, 0xE0A4, + 0xE0A5, 0xE0A6, 0xE0A7, 0xE0A8, + 0xE0A9, 0xE0AA, 0xE0AB, 0xE0AC, + 0xE0AD, 0xE0AE, 0xE0AF, 0xE0B0, + 0xE0B1, 0xE0B2, 0xE0B3, 0xE0B4, + 0xE0B5, 0xE0B6, 0xE0B7, 0xE0B8, + 0xE0B9, 0xE0BA, 0xE0BB, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE0BC, 0xE0BD, 0xE0BE, /* F7A0 */ + 0xE0BF, 0xE0C0, 0xE0C1, 0xE0C2, + 0xE0C3, 0xE0C4, 0xE0C5, 0xE0C6, + 0xE0C7, 0xE0C8, 0xE0C9, 0xE0CA, + 0xE0CB, 0xE0CC, 0xE0CD, 0xE0CE, + 0xE0CF, 0xE0D0, 0xE0D1, 0xE0D2, + 0xE0D3, 0xE0D4, 0xE0D5, 0xE0D6, + 0xE0D7, 0xE0D8, 0xE0D9, 0xE0DA, + 0xE0DB, 0xE0DC, 0xE0DD, 0xE0DE, /* F7C0 */ + 0xE0DF, 0xE0E0, 0xE0E1, 0xE0E2, + 0xE0E3, 0xE0E4, 0xE0E5, 0xE0E6, + 0xE0E7, 0xE0E8, 0xE0E9, 0xE0EA, + 0xE0EB, 0xE0EC, 0xE0ED, 0xE0EE, + 0xE0EF, 0xE0F0, 0xE0F1, 0xE0F2, + 0xE0F3, 0xE0F4, 0xE0F5, 0xE0F6, + 0xE0F7, 0xE0F8, 0xE0F9, 0xE0FA, + 0xE0FB, 0xE0FC, 0xE0FD, 0xE0FE, /* F7E0 */ + 0xE0FF, 0xE100, 0xE101, 0xE102, + 0xE103, 0xE104, 0xE105, 0xE106, + 0xE107, 0xE108, 0xE109, 0xE10A, + 0xE10B, 0xE10C, 0xE10D, 0xE10E, + 0xE10F, 0xE110, 0xE111, 0xE112, + 0xE113, 0xE114, 0xE115, 0xE116, + 0xE117, 0xE118, 0xE119, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE11A, 0xE11B, 0xE11C, /* F8A0 */ + 0xE11D, 0xE11E, 0xE11F, 0xE120, + 0xE121, 0xE122, 0xE123, 0xE124, + 0xE125, 0xE126, 0xE127, 0xE128, + 0xE129, 0xE12A, 0xE12B, 0xE12C, + 0xE12D, 0xE12E, 0xE12F, 0xE130, + 0xE131, 0xE132, 0xE133, 0xE134, + 0xE135, 0xE136, 0xE137, 0xE138, + 0xE139, 0xE13A, 0xE13B, 0xE13C, /* F8C0 */ + 0xE13D, 0xE13E, 0xE13F, 0xE140, + 0xE141, 0xE142, 0xE143, 0xE144, + 0xE145, 0xE146, 0xE147, 0xE148, + 0xE149, 0xE14A, 0xE14B, 0xE14C, + 0xE14D, 0xE14E, 0xE14F, 0xE150, + 0xE151, 0xE152, 0xE153, 0xE154, + 0xE155, 0xE156, 0xE157, 0xE158, + 0xE159, 0xE15A, 0xE15B, 0xE15C, /* F8E0 */ + 0xE15D, 0xE15E, 0xE15F, 0xE160, + 0xE161, 0xE162, 0xE163, 0xE164, + 0xE165, 0xE166, 0xE167, 0xE168, + 0xE169, 0xE16A, 0xE16B, 0xE16C, + 0xE16D, 0xE16E, 0xE16F, 0xE170, + 0xE171, 0xE172, 0xE173, 0xE174, + 0xE175, 0xE176, 0xE177, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE178, 0xE179, 0xE17A, /* F9A0 */ + 0xE17B, 0xE17C, 0xE17D, 0xE17E, + 0xE17F, 0xE180, 0xE181, 0xE182, + 0xE183, 0xE184, 0xE185, 0xE186, + 0xE187, 0xE188, 0xE189, 0xE18A, + 0xE18B, 0xE18C, 0xE18D, 0xE18E, + 0xE18F, 0xE190, 0xE191, 0xE192, + 0xE193, 0xE194, 0xE195, 0xE196, + 0xE197, 0xE198, 0xE199, 0xE19A, /* F9C0 */ + 0xE19B, 0xE19C, 0xE19D, 0xE19E, + 0xE19F, 0xE1A0, 0xE1A1, 0xE1A2, + 0xE1A3, 0xE1A4, 0xE1A5, 0xE1A6, + 0xE1A7, 0xE1A8, 0xE1A9, 0xE1AA, + 0xE1AB, 0xE1AC, 0xE1AD, 0xE1AE, + 0xE1AF, 0xE1B0, 0xE1B1, 0xE1B2, + 0xE1B3, 0xE1B4, 0xE1B5, 0xE1B6, + 0xE1B7, 0xE1B8, 0xE1B9, 0xE1BA, /* F9E0 */ + 0xE1BB, 0xE1BC, 0xE1BD, 0xE1BE, + 0xE1BF, 0xE1C0, 0xE1C1, 0xE1C2, + 0xE1C3, 0xE1C4, 0xE1C5, 0xE1C6, + 0xE1C7, 0xE1C8, 0xE1C9, 0xE1CA, + 0xE1CB, 0xE1CC, 0xE1CD, 0xE1CE, + 0xE1CF, 0xE1D0, 0xE1D1, 0xE1D2, + 0xE1D3, 0xE1D4, 0xE1D5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE1D6, 0xE1D7, 0xE1D8, /* FAA0 */ + 0xE1D9, 0xE1DA, 0xE1DB, 0xE1DC, + 0xE1DD, 0xE1DE, 0xE1DF, 0xE1E0, + 0xE1E1, 0xE1E2, 0xE1E3, 0xE1E4, + 0xE1E5, 0xE1E6, 0xE1E7, 0xE1E8, + 0xE1E9, 0xE1EA, 0xE1EB, 0xE1EC, + 0xE1ED, 0xE1EE, 0xE1EF, 0xE1F0, + 0xE1F1, 0xE1F2, 0xE1F3, 0xE1F4, + 0xE1F5, 0xE1F6, 0xE1F7, 0xE1F8, /* FAC0 */ + 0xE1F9, 0xE1FA, 0xE1FB, 0xE1FC, + 0xE1FD, 0xE1FE, 0xE1FF, 0xE200, + 0xE201, 0xE202, 0xE203, 0xE204, + 0xE205, 0xE206, 0xE207, 0xE208, + 0xE209, 0xE20A, 0xE20B, 0xE20C, + 0xE20D, 0xE20E, 0xE20F, 0xE210, + 0xE211, 0xE212, 0xE213, 0xE214, + 0xE215, 0xE216, 0xE217, 0xE218, /* FAE0 */ + 0xE219, 0xE21A, 0xE21B, 0xE21C, + 0xE21D, 0xE21E, 0xE21F, 0xE220, + 0xE221, 0xE222, 0xE223, 0xE224, + 0xE225, 0xE226, 0xE227, 0xE228, + 0xE229, 0xE22A, 0xE22B, 0xE22C, + 0xE22D, 0xE22E, 0xE22F, 0xE230, + 0xE231, 0xE232, 0xE233, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE234, 0xE235, 0xE236, /* FBA0 */ + 0xE237, 0xE238, 0xE239, 0xE23A, + 0xE23B, 0xE23C, 0xE23D, 0xE23E, + 0xE23F, 0xE240, 0xE241, 0xE242, + 0xE243, 0xE244, 0xE245, 0xE246, + 0xE247, 0xE248, 0xE249, 0xE24A, + 0xE24B, 0xE24C, 0xE24D, 0xE24E, + 0xE24F, 0xE250, 0xE251, 0xE252, + 0xE253, 0xE254, 0xE255, 0xE256, /* FBC0 */ + 0xE257, 0xE258, 0xE259, 0xE25A, + 0xE25B, 0xE25C, 0xE25D, 0xE25E, + 0xE25F, 0xE260, 0xE261, 0xE262, + 0xE263, 0xE264, 0xE265, 0xE266, + 0xE267, 0xE268, 0xE269, 0xE26A, + 0xE26B, 0xE26C, 0xE26D, 0xE26E, + 0xE26F, 0xE270, 0xE271, 0xE272, + 0xE273, 0xE274, 0xE275, 0xE276, /* FBE0 */ + 0xE277, 0xE278, 0xE279, 0xE27A, + 0xE27B, 0xE27C, 0xE27D, 0xE27E, + 0xE27F, 0xE280, 0xE281, 0xE282, + 0xE283, 0xE284, 0xE285, 0xE286, + 0xE287, 0xE288, 0xE289, 0xE28A, + 0xE28B, 0xE28C, 0xE28D, 0xE28E, + 0xE28F, 0xE290, 0xE291, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE292, 0xE293, 0xE294, /* FCA0 */ + 0xE295, 0xE296, 0xE297, 0xE298, + 0xE299, 0xE29A, 0xE29B, 0xE29C, + 0xE29D, 0xE29E, 0xE29F, 0xE2A0, + 0xE2A1, 0xE2A2, 0xE2A3, 0xE2A4, + 0xE2A5, 0xE2A6, 0xE2A7, 0xE2A8, + 0xE2A9, 0xE2AA, 0xE2AB, 0xE2AC, + 0xE2AD, 0xE2AE, 0xE2AF, 0xE2B0, + 0xE2B1, 0xE2B2, 0xE2B3, 0xE2B4, /* FCC0 */ + 0xE2B5, 0xE2B6, 0xE2B7, 0xE2B8, + 0xE2B9, 0xE2BA, 0xE2BB, 0xE2BC, + 0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, + 0xE2C1, 0xE2C2, 0xE2C3, 0xE2C4, + 0xE2C5, 0xE2C6, 0xE2C7, 0xE2C8, + 0xE2C9, 0xE2CA, 0xE2CB, 0xE2CC, + 0xE2CD, 0xE2CE, 0xE2CF, 0xE2D0, + 0xE2D1, 0xE2D2, 0xE2D3, 0xE2D4, /* FCE0 */ + 0xE2D5, 0xE2D6, 0xE2D7, 0xE2D8, + 0xE2D9, 0xE2DA, 0xE2DB, 0xE2DC, + 0xE2DD, 0xE2DE, 0xE2DF, 0xE2E0, + 0xE2E1, 0xE2E2, 0xE2E3, 0xE2E4, + 0xE2E5, 0xE2E6, 0xE2E7, 0xE2E8, + 0xE2E9, 0xE2EA, 0xE2EB, 0xE2EC, + 0xE2ED, 0xE2EE, 0xE2EF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE2F0, 0xE2F1, 0xE2F2, /* FDA0 */ + 0xE2F3, 0xE2F4, 0xE2F5, 0xE2F6, + 0xE2F7, 0xE2F8, 0xE2F9, 0xE2FA, + 0xE2FB, 0xE2FC, 0xE2FD, 0xE2FE, + 0xE2FF, 0xE300, 0xE301, 0xE302, + 0xE303, 0xE304, 0xE305, 0xE306, + 0xE307, 0xE308, 0xE309, 0xE30A, + 0xE30B, 0xE30C, 0xE30D, 0xE30E, + 0xE30F, 0xE310, 0xE311, 0xE312, /* FDC0 */ + 0xE313, 0xE314, 0xE315, 0xE316, + 0xE317, 0xE318, 0xE319, 0xE31A, + 0xE31B, 0xE31C, 0xE31D, 0xE31E, + 0xE31F, 0xE320, 0xE321, 0xE322, + 0xE323, 0xE324, 0xE325, 0xE326, + 0xE327, 0xE328, 0xE329, 0xE32A, + 0xE32B, 0xE32C, 0xE32D, 0xE32E, + 0xE32F, 0xE330, 0xE331, 0xE332, /* FDE0 */ + 0xE333, 0xE334, 0xE335, 0xE336, + 0xE337, 0xE338, 0xE339, 0xE33A, + 0xE33B, 0xE33C, 0xE33D, 0xE33E, + 0xE33F, 0xE340, 0xE341, 0xE342, + 0xE343, 0xE344, 0xE345, 0xE346, + 0xE347, 0xE348, 0xE349, 0xE34A, + 0xE34B, 0xE34C, 0xE34D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE34E, 0xE34F, 0xE350, /* FEA0 */ + 0xE351, 0xE352, 0xE353, 0xE354, + 0xE355, 0xE356, 0xE357, 0xE358, + 0xE359, 0xE35A, 0xE35B, 0xE35C, + 0xE35D, 0xE35E, 0xE35F, 0xE360, + 0xE361, 0xE362, 0xE363, 0xE364, + 0xE365, 0xE366, 0xE367, 0xE368, + 0xE369, 0xE36A, 0xE36B, 0xE36C, + 0xE36D, 0xE36E, 0xE36F, 0xE370, /* FEC0 */ + 0xE371, 0xE372, 0xE373, 0xE374, + 0xE375, 0xE376, 0xE377, 0xE378, + 0xE379, 0xE37A, 0xE37B, 0xE37C, + 0xE37D, 0xE37E, 0xE37F, 0xE380, + 0xE381, 0xE382, 0xE383, 0xE384, + 0xE385, 0xE386, 0xE387, 0xE388, + 0xE389, 0xE38A, 0xE38B, 0xE38C, + 0xE38D, 0xE38E, 0xE38F, 0xE390, /* FEE0 */ + 0xE391, 0xE392, 0xE393, 0xE394, + 0xE395, 0xE396, 0xE397, 0xE398, + 0xE399, 0xE39A, 0xE39B, 0xE39C, + 0xE39D, 0xE39E, 0xE39F, 0xE3A0, + 0xE3A1, 0xE3A2, 0xE3A3, 0xE3A4, + 0xE3A5, 0xE3A6, 0xE3A7, 0xE3A8, + 0xE3A9, 0xE3AA, 0xE3AB, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 unicode_to_jisx0208_eucjpms[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xA1F8), + MB2(0xA1AF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1EB), MB2(0xA1DE), 0x0000, 0x0000, + MB2(0xA1AD), 0x0000, MB2(0xA2F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1DF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1E0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA6A1), MB2(0xA6A2), MB2(0xA6A3), + MB2(0xA6A4), MB2(0xA6A5), MB2(0xA6A6), MB2(0xA6A7), + MB2(0xA6A8), MB2(0xA6A9), MB2(0xA6AA), MB2(0xA6AB), + MB2(0xA6AC), MB2(0xA6AD), MB2(0xA6AE), MB2(0xA6AF), + MB2(0xA6B0), MB2(0xA6B1), 0x0000, MB2(0xA6B2), /* 03A0 */ + MB2(0xA6B3), MB2(0xA6B4), MB2(0xA6B5), MB2(0xA6B6), + MB2(0xA6B7), MB2(0xA6B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA6C1), MB2(0xA6C2), MB2(0xA6C3), + MB2(0xA6C4), MB2(0xA6C5), MB2(0xA6C6), MB2(0xA6C7), + MB2(0xA6C8), MB2(0xA6C9), MB2(0xA6CA), MB2(0xA6CB), + MB2(0xA6CC), MB2(0xA6CD), MB2(0xA6CE), MB2(0xA6CF), + MB2(0xA6D0), MB2(0xA6D1), 0x0000, MB2(0xA6D2), /* 03C0 */ + MB2(0xA6D3), MB2(0xA6D4), MB2(0xA6D5), MB2(0xA6D6), + MB2(0xA6D7), MB2(0xA6D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA7A7), 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA7A1), MB2(0xA7A2), MB2(0xA7A3), MB2(0xA7A4), + MB2(0xA7A5), MB2(0xA7A6), MB2(0xA7A8), MB2(0xA7A9), + MB2(0xA7AA), MB2(0xA7AB), MB2(0xA7AC), MB2(0xA7AD), + MB2(0xA7AE), MB2(0xA7AF), MB2(0xA7B0), MB2(0xA7B1), + MB2(0xA7B2), MB2(0xA7B3), MB2(0xA7B4), MB2(0xA7B5), /* 0420 */ + MB2(0xA7B6), MB2(0xA7B7), MB2(0xA7B8), MB2(0xA7B9), + MB2(0xA7BA), MB2(0xA7BB), MB2(0xA7BC), MB2(0xA7BD), + MB2(0xA7BE), MB2(0xA7BF), MB2(0xA7C0), MB2(0xA7C1), + MB2(0xA7D1), MB2(0xA7D2), MB2(0xA7D3), MB2(0xA7D4), + MB2(0xA7D5), MB2(0xA7D6), MB2(0xA7D8), MB2(0xA7D9), + MB2(0xA7DA), MB2(0xA7DB), MB2(0xA7DC), MB2(0xA7DD), + MB2(0xA7DE), MB2(0xA7DF), MB2(0xA7E0), MB2(0xA7E1), + MB2(0xA7E2), MB2(0xA7E3), MB2(0xA7E4), MB2(0xA7E5), /* 0440 */ + MB2(0xA7E6), MB2(0xA7E7), MB2(0xA7E8), MB2(0xA7E9), + MB2(0xA7EA), MB2(0xA7EB), MB2(0xA7EC), MB2(0xA7ED), + MB2(0xA7EE), MB2(0xA7EF), MB2(0xA7F0), MB2(0xA7F1), + 0x0000, MB2(0xA7D7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1BE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA1BD), 0x0000, 0x0000, + MB2(0xA1C6), MB2(0xA1C7), 0x0000, 0x0000, + MB2(0xA1C8), MB2(0xA1C9), 0x0000, 0x0000, + MB2(0xA2F7), MB2(0xA2F8), 0x0000, 0x0000, /* 2020 */ + 0x0000, MB2(0xA1C5), MB2(0xA1C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2F3), 0x0000, MB2(0xA1EC), MB2(0xA1ED), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1EE), /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xADE2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADE4), 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2F2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xADB5), MB2(0xADB6), MB2(0xADB7), MB2(0xADB8), /* 2160 */ + MB2(0xADB9), MB2(0xADBA), MB2(0xADBB), MB2(0xADBC), + MB2(0xADBD), MB2(0xADBE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2AB), MB2(0xA2AC), MB2(0xA2AA), MB2(0xA2AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2CD), 0x0000, + MB2(0xA2CE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2CF), 0x0000, MB2(0xA2DF), MB2(0xA2D0), /* 2200 */ + 0x0000, 0x0000, 0x0000, MB2(0xA2E0), + MB2(0xA2BA), 0x0000, 0x0000, MB2(0xA2BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2E5), 0x0000, + 0x0000, MB2(0xA2E7), MB2(0xA1E7), MB2(0xADF8), + MB2(0xA2DC), 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, MB2(0xA1C2), 0x0000, MB2(0xA2CA), + MB2(0xA2CB), MB2(0xA2C1), MB2(0xA2C0), MB2(0xA2E9), + MB2(0xA2EA), 0x0000, MB2(0xADF3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1E8), MB2(0xA2E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA2E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1E2), MB2(0xA2E1), 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, MB2(0xA1E5), MB2(0xA1E6), + 0x0000, 0x0000, MB2(0xA2E3), MB2(0xA2E4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2BE), MB2(0xA2BF), /* 2280 */ + 0x0000, 0x0000, MB2(0xA2BC), MB2(0xA2BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, MB2(0xA2DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xADF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xADA1), MB2(0xADA2), MB2(0xADA3), MB2(0xADA4), /* 2460 */ + MB2(0xADA5), MB2(0xADA6), MB2(0xADA7), MB2(0xADA8), + MB2(0xADA9), MB2(0xADAA), MB2(0xADAB), MB2(0xADAC), + MB2(0xADAD), MB2(0xADAE), MB2(0xADAF), MB2(0xADB0), + MB2(0xADB1), MB2(0xADB2), MB2(0xADB3), MB2(0xADB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA8A1), MB2(0xA8AC), MB2(0xA8A2), MB2(0xA8AD), /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA8A3), 0x0000, 0x0000, MB2(0xA8AE), + MB2(0xA8A4), 0x0000, 0x0000, MB2(0xA8AF), + MB2(0xA8A6), 0x0000, 0x0000, MB2(0xA8B1), + MB2(0xA8A5), 0x0000, 0x0000, MB2(0xA8B0), + MB2(0xA8A7), MB2(0xA8BC), 0x0000, 0x0000, + MB2(0xA8B7), 0x0000, 0x0000, MB2(0xA8B2), /* 2520 */ + MB2(0xA8A9), MB2(0xA8BE), 0x0000, 0x0000, + MB2(0xA8B9), 0x0000, 0x0000, MB2(0xA8B4), + MB2(0xA8A8), 0x0000, 0x0000, MB2(0xA8B8), + MB2(0xA8BD), 0x0000, 0x0000, MB2(0xA8B3), + MB2(0xA8AA), 0x0000, 0x0000, MB2(0xA8BA), + MB2(0xA8BF), 0x0000, 0x0000, MB2(0xA8B5), + MB2(0xA8AB), 0x0000, 0x0000, MB2(0xA8BB), + 0x0000, 0x0000, MB2(0xA8C0), 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA8B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2A3), MB2(0xA2A2), 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2A5), MB2(0xA2A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2A7), MB2(0xA2A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, MB2(0xA2A1), MB2(0xA1FE), + 0x0000, 0x0000, 0x0000, MB2(0xA1FB), + 0x0000, 0x0000, MB2(0xA1FD), MB2(0xA1FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2FE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, MB2(0xA1FA), MB2(0xA1F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1EA), 0x0000, MB2(0xA1E9), 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2F6), 0x0000, + 0x0000, MB2(0xA2F5), 0x0000, MB2(0xA2F4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1A1), MB2(0xA1A2), MB2(0xA1A3), MB2(0xA1B7), /* 3000 */ + 0x0000, MB2(0xA1B9), MB2(0xA1BA), MB2(0xA1BB), + MB2(0xA1D2), MB2(0xA1D3), MB2(0xA1D4), MB2(0xA1D5), + MB2(0xA1D6), MB2(0xA1D7), MB2(0xA1D8), MB2(0xA1D9), + MB2(0xA1DA), MB2(0xA1DB), MB2(0xA2A9), MB2(0xA2AE), + MB2(0xA1CC), MB2(0xA1CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADE0), 0x0000, MB2(0xADE1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA4A1), MB2(0xA4A2), MB2(0xA4A3), /* 3040 */ + MB2(0xA4A4), MB2(0xA4A5), MB2(0xA4A6), MB2(0xA4A7), + MB2(0xA4A8), MB2(0xA4A9), MB2(0xA4AA), MB2(0xA4AB), + MB2(0xA4AC), MB2(0xA4AD), MB2(0xA4AE), MB2(0xA4AF), + MB2(0xA4B0), MB2(0xA4B1), MB2(0xA4B2), MB2(0xA4B3), + MB2(0xA4B4), MB2(0xA4B5), MB2(0xA4B6), MB2(0xA4B7), + MB2(0xA4B8), MB2(0xA4B9), MB2(0xA4BA), MB2(0xA4BB), + MB2(0xA4BC), MB2(0xA4BD), MB2(0xA4BE), MB2(0xA4BF), + MB2(0xA4C0), MB2(0xA4C1), MB2(0xA4C2), MB2(0xA4C3), /* 3060 */ + MB2(0xA4C4), MB2(0xA4C5), MB2(0xA4C6), MB2(0xA4C7), + MB2(0xA4C8), MB2(0xA4C9), MB2(0xA4CA), MB2(0xA4CB), + MB2(0xA4CC), MB2(0xA4CD), MB2(0xA4CE), MB2(0xA4CF), + MB2(0xA4D0), MB2(0xA4D1), MB2(0xA4D2), MB2(0xA4D3), + MB2(0xA4D4), MB2(0xA4D5), MB2(0xA4D6), MB2(0xA4D7), + MB2(0xA4D8), MB2(0xA4D9), MB2(0xA4DA), MB2(0xA4DB), + MB2(0xA4DC), MB2(0xA4DD), MB2(0xA4DE), MB2(0xA4DF), + MB2(0xA4E0), MB2(0xA4E1), MB2(0xA4E2), MB2(0xA4E3), /* 3080 */ + MB2(0xA4E4), MB2(0xA4E5), MB2(0xA4E6), MB2(0xA4E7), + MB2(0xA4E8), MB2(0xA4E9), MB2(0xA4EA), MB2(0xA4EB), + MB2(0xA4EC), MB2(0xA4ED), MB2(0xA4EE), MB2(0xA4EF), + MB2(0xA4F0), MB2(0xA4F1), MB2(0xA4F2), MB2(0xA4F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1AB), + MB2(0xA1AC), MB2(0xA1B5), MB2(0xA1B6), 0x0000, + 0x0000, MB2(0xA5A1), MB2(0xA5A2), MB2(0xA5A3), /* 30A0 */ + MB2(0xA5A4), MB2(0xA5A5), MB2(0xA5A6), MB2(0xA5A7), + MB2(0xA5A8), MB2(0xA5A9), MB2(0xA5AA), MB2(0xA5AB), + MB2(0xA5AC), MB2(0xA5AD), MB2(0xA5AE), MB2(0xA5AF), + MB2(0xA5B0), MB2(0xA5B1), MB2(0xA5B2), MB2(0xA5B3), + MB2(0xA5B4), MB2(0xA5B5), MB2(0xA5B6), MB2(0xA5B7), + MB2(0xA5B8), MB2(0xA5B9), MB2(0xA5BA), MB2(0xA5BB), + MB2(0xA5BC), MB2(0xA5BD), MB2(0xA5BE), MB2(0xA5BF), + MB2(0xA5C0), MB2(0xA5C1), MB2(0xA5C2), MB2(0xA5C3), /* 30C0 */ + MB2(0xA5C4), MB2(0xA5C5), MB2(0xA5C6), MB2(0xA5C7), + MB2(0xA5C8), MB2(0xA5C9), MB2(0xA5CA), MB2(0xA5CB), + MB2(0xA5CC), MB2(0xA5CD), MB2(0xA5CE), MB2(0xA5CF), + MB2(0xA5D0), MB2(0xA5D1), MB2(0xA5D2), MB2(0xA5D3), + MB2(0xA5D4), MB2(0xA5D5), MB2(0xA5D6), MB2(0xA5D7), + MB2(0xA5D8), MB2(0xA5D9), MB2(0xA5DA), MB2(0xA5DB), + MB2(0xA5DC), MB2(0xA5DD), MB2(0xA5DE), MB2(0xA5DF), + MB2(0xA5E0), MB2(0xA5E1), MB2(0xA5E2), MB2(0xA5E3), /* 30E0 */ + MB2(0xA5E4), MB2(0xA5E5), MB2(0xA5E6), MB2(0xA5E7), + MB2(0xA5E8), MB2(0xA5E9), MB2(0xA5EA), MB2(0xA5EB), + MB2(0xA5EC), MB2(0xA5ED), MB2(0xA5EE), MB2(0xA5EF), + MB2(0xA5F0), MB2(0xA5F1), MB2(0xA5F2), MB2(0xA5F3), + MB2(0xA5F4), MB2(0xA5F5), MB2(0xA5F6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1A6), + MB2(0xA1BC), MB2(0xA1B3), MB2(0xA1B4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADEA), MB2(0xADEB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADEC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + MB2(0xADE5), MB2(0xADE6), MB2(0xADE7), MB2(0xADE8), + MB2(0xADE9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xADC6), /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADCA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xADC1), 0x0000, 0x0000, 0x0000, + MB2(0xADC4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xADC2), MB2(0xADCC), /* 3320 */ + 0x0000, 0x0000, MB2(0xADCB), MB2(0xADC5), + 0x0000, 0x0000, 0x0000, MB2(0xADCD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xADC7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xADCF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADC0), MB2(0xADCE), 0x0000, + 0x0000, MB2(0xADC3), 0x0000, 0x0000, + 0x0000, MB2(0xADC8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xADC9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xADDF), + MB2(0xADEF), MB2(0xADEE), MB2(0xADED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xADD3), MB2(0xADD4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xADD0), MB2(0xADD1), MB2(0xADD2), 0x0000, + 0x0000, MB2(0xADD6), 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + MB2(0xADD5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xADE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0EC), MB2(0xC3FA), 0x0000, MB2(0xBCB7), /* 4E00 */ + 0x0000, 0x0000, 0x0000, MB2(0xCBFC), + MB2(0xBEE6), MB2(0xBBB0), MB2(0xBEE5), MB2(0xB2BC), + 0x0000, MB2(0xC9D4), MB2(0xCDBF), 0x0000, + MB2(0xD0A2), MB2(0xB1AF), 0x0000, 0x0000, + MB2(0xB3EE), MB2(0xD0A3), MB2(0xC0A4), MB2(0xD2C2), + MB2(0xB5D6), MB2(0xCABA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEE7), 0x0000, + 0x0000, MB2(0xCEBE), 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, MB2(0xCAC2), 0x0000, + 0x0000, 0x0000, MB2(0xD0A4), 0x0000, + 0x0000, MB2(0xC3E6), 0x0000, 0x0000, + 0x0000, MB2(0xD0A5), MB2(0xB6FA), 0x0000, + 0x0000, 0x0000, MB2(0xD0A6), 0x0000, + MB2(0xB4DD), MB2(0xC3B0), 0x0000, MB2(0xBCE7), + MB2(0xD0A7), 0x0000, 0x0000, MB2(0xD0A8), + 0x0000, 0x0000, MB2(0xD0A9), MB2(0xC7B5), /* 4E40 */ + 0x0000, MB2(0xB5D7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7B7), + 0x0000, MB2(0xC6E3), MB2(0xB8C3), MB2(0xCBB3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C9), MB2(0xD0AA), MB2(0xBEE8), + MB2(0xD0AB), MB2(0xB2B5), 0x0000, 0x0000, + 0x0000, MB2(0xB6E5), MB2(0xB8F0), MB2(0xCCE9), + 0x0000, 0x0000, MB2(0xD6A6), 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDF0), 0x0000, MB2(0xC6FD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4A5), 0x0000, + MB2(0xB5B5), 0x0000, MB2(0xD0AC), 0x0000, /* 4E80 */ + 0x0000, MB2(0xD0AD), MB2(0xCEBB), 0x0000, + MB2(0xCDBD), MB2(0xC1E8), MB2(0xD0AF), MB2(0xBBF6), + MB2(0xC6F3), 0x0000, MB2(0xD0B2), 0x0000, + 0x0000, MB2(0xB1BE), MB2(0xB8DF), 0x0000, + MB2(0xB8DE), MB2(0xB0E6), 0x0000, 0x0000, + MB2(0xCFCB), MB2(0xCFCA), 0x0000, MB2(0xBAB3), + MB2(0xB0A1), 0x0000, MB2(0xD0B3), MB2(0xD0B4), + MB2(0xD0B5), MB2(0xCBB4), MB2(0xD0B6), 0x0000, /* 4EA0 */ + MB2(0xB8F2), MB2(0xB0E7), MB2(0xCBF2), 0x0000, + MB2(0xB5FC), 0x0000, 0x0000, MB2(0xB5FD), + MB2(0xB5FE), MB2(0xC4E2), MB2(0xCEBC), 0x0000, + MB2(0xD0B7), 0x0000, 0x0000, MB2(0xD0B8), + 0x0000, 0x0000, MB2(0xD0B9), 0x0000, + 0x0000, 0x0000, MB2(0xBFCD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDBA), MB2(0xBFCE), MB2(0xD0BE), 0x0000, /* 4EC0 */ + MB2(0xD0BC), 0x0000, MB2(0xD0BD), MB2(0xB5D8), + 0x0000, 0x0000, MB2(0xBAA3), MB2(0xB2F0), + 0x0000, MB2(0xD0BB), MB2(0xD0BA), MB2(0xCAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBC6), MB2(0xBBC5), MB2(0xC2BE), MB2(0xD0BF), + MB2(0xC9D5), MB2(0xC0E7), 0x0000, 0x0000, + 0x0000, MB2(0xA1B8), MB2(0xD0C0), MB2(0xD0C2), + 0x0000, 0x0000, 0x0000, MB2(0xC2E5), /* 4EE0 */ + MB2(0xCEE1), MB2(0xB0CA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0C1), MB2(0xB2BE), 0x0000, + MB2(0xB6C4), 0x0000, MB2(0xC3E7), 0x0000, + 0x0000, 0x0000, MB2(0xB7EF), MB2(0xD0C3), + 0x0000, 0x0000, 0x0000, MB2(0xC7A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4EB), 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0C4), MB2(0xB0CB), 0x0000, + 0x0000, MB2(0xB8E0), MB2(0xB4EC), MB2(0xC9FA), + MB2(0xC8B2), MB2(0xB5D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2F1), 0x0000, + MB2(0xD0E7), MB2(0xC5C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7EC), + MB2(0xD0C6), 0x0000, 0x0000, 0x0000, + MB2(0xC8BC), 0x0000, MB2(0xCEE2), 0x0000, + MB2(0xBFAD), 0x0000, MB2(0xBBC7), 0x0000, + MB2(0xBBF7), MB2(0xB2C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4D1), /* 4F40 */ + 0x0000, 0x0000, MB2(0xC3A2), MB2(0xD0CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0CC), MB2(0xC4E3), MB2(0xBDBB), + MB2(0xBAB4), MB2(0xCDA4), 0x0000, MB2(0xC2CE), + 0x0000, MB2(0xB2BF), 0x0000, MB2(0xD0C9), + 0x0000, MB2(0xCDBE), MB2(0xD0C5), MB2(0xD0C7), + MB2(0xBAEE), MB2(0xD0C8), MB2(0xD5A4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0D0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0D3), + MB2(0xD0D1), 0x0000, 0x0000, MB2(0xB2C2), + 0x0000, MB2(0xCABB), MB2(0xD0CB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0CF), + MB2(0xB8F3), 0x0000, 0x0000, MB2(0xBBC8), + 0x0000, 0x0000, 0x0000, MB2(0xB4A6), /* 4F80 */ + 0x0000, 0x0000, MB2(0xD0D4), 0x0000, + MB2(0xD0CC), 0x0000, 0x0000, MB2(0xCEE3), + 0x0000, MB2(0xBBF8), 0x0000, MB2(0xD0CD), + 0x0000, MB2(0xD0D2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0D5), 0x0000, + MB2(0xD0CE), 0x0000, 0x0000, MB2(0xB6A1), + 0x0000, MB2(0xB0CD), 0x0000, 0x0000, + MB2(0xB6A2), MB2(0xB2C1), 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5A5), + 0x0000, MB2(0xCBF9), MB2(0xC9EE), MB2(0xB8F4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFAF), MB2(0xCEB7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAD8), + 0x0000, 0x0000, MB2(0xB7B8), MB2(0xC2A5), /* 4FC0 */ + MB2(0xB2E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDD3), 0x0000, + 0x0000, 0x0000, MB2(0xD0D9), 0x0000, + MB2(0xD0DE), MB2(0xD0DC), 0x0000, 0x0000, + MB2(0xD0D7), 0x0000, 0x0000, MB2(0xC2AF), + MB2(0xD0DA), 0x0000, MB2(0xD0DD), MB2(0xD0DB), + 0x0000, MB2(0xCADD), 0x0000, MB2(0xD0D8), + 0x0000, MB2(0xBFAE), 0x0000, MB2(0xCBF3), /* 4FE0 */ + MB2(0xD0DF), MB2(0xD0E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDA4), MB2(0xD0ED), + 0x0000, 0x0000, 0x0000, MB2(0xC7D0), + 0x0000, MB2(0xC9B6), MB2(0xD0E8), 0x0000, + MB2(0xCAF0), 0x0000, MB2(0xB2B6), 0x0000, + 0x0000, 0x0000, MB2(0xD0EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, MB2(0xD0E6), MB2(0xD0EF), 0x0000, + 0x0000, MB2(0xC1D2), 0x0000, MB2(0xB8C4), + 0x0000, MB2(0xC7DC), 0x0000, MB2(0xE0C7), + 0x0000, MB2(0xD0EE), MB2(0xC5DD), 0x0000, + MB2(0xD0E3), 0x0000, MB2(0xB8F6), 0x0000, + 0x0000, MB2(0xB8F5), MB2(0xD0E1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCDA), + 0x0000, MB2(0xD0E9), 0x0000, MB2(0xCAEF), /* 5020 */ + MB2(0xC3CD), MB2(0xD0E5), MB2(0xB7F1), 0x0000, + MB2(0xD0E2), MB2(0xD0EA), MB2(0xD0E4), MB2(0xCED1), + MB2(0xD0EB), MB2(0xCFC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6E6), 0x0000, + 0x0000, MB2(0xB7F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0F0), /* 5040 */ + 0x0000, 0x0000, 0x0000, MB2(0xD0F1), + MB2(0xD0F5), MB2(0xB0CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAD0), + MB2(0xD0F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0F3), MB2(0xD0F7), 0x0000, + 0x0000, 0x0000, MB2(0xD0F6), 0x0000, + MB2(0xC4E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, MB2(0xB7F2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0F8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCC5), 0x0000, + MB2(0xC2A6), MB2(0xC4E5), MB2(0xB6F6), 0x0000, + MB2(0xD0F9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5B6), 0x0000, 0x0000, + MB2(0xD0FA), 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, MB2(0xD0FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB5), 0x0000, 0x0000, + 0x0000, MB2(0xB7E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBB1), MB2(0xC8F7), MB2(0xD0FB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAC5), MB2(0xCDC3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0FE), MB2(0xD1A3), + MB2(0xD0FD), MB2(0xBAC4), 0x0000, MB2(0xBDFD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7B9), 0x0000, + 0x0000, 0x0000, MB2(0xD1A4), 0x0000, /* 50C0 */ + 0x0000, MB2(0xB6CF), 0x0000, 0x0000, + 0x0000, MB2(0xD1A1), MB2(0xD1A2), 0x0000, + 0x0000, MB2(0xC6AF), 0x0000, MB2(0xC1FC), + 0x0000, MB2(0xB6A3), 0x0000, 0x0000, + 0x0000, MB2(0xCBCD), MB2(0xD1A5), 0x0000, + 0x0000, 0x0000, MB2(0xCEBD), 0x0000, + 0x0000, 0x0000, MB2(0xD1A6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1A9), /* 50E0 */ + 0x0000, MB2(0xD1A7), 0x0000, MB2(0xC1CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1A8), MB2(0xD1AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1AC), 0x0000, 0x0000, + 0x0000, MB2(0xD1AB), 0x0000, MB2(0xCAC8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5B7), MB2(0xD1AE), MB2(0xD1AF), 0x0000, /* 5100 */ + MB2(0xB2AF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1AD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCF4), 0x0000, + MB2(0xD1B2), MB2(0xD1B1), MB2(0xD1B0), 0x0000, + MB2(0xD0D6), 0x0000, MB2(0xD1B3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDFE), + 0x0000, MB2(0xD1B4), 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCD9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1B6), + 0x0000, 0x0000, MB2(0xD1B5), MB2(0xD1B8), + MB2(0xD1B7), 0x0000, 0x0000, MB2(0xD1B9), + MB2(0xD1BA), MB2(0xB0F4), 0x0000, MB2(0xB8B5), /* 5140 */ + MB2(0xB7BB), MB2(0xBDBC), MB2(0xC3FB), MB2(0xB6A4), + MB2(0xC0E8), MB2(0xB8F7), 0x0000, MB2(0xB9EE), + MB2(0xD1BC), MB2(0xCCC8), MB2(0xC5C6), 0x0000, + MB2(0xBBF9), 0x0000, MB2(0xD1BB), 0x0000, + MB2(0xD1BD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5DE), 0x0000, + MB2(0xB3F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1BE), 0x0000, /* 5160 */ + 0x0000, MB2(0xC6FE), 0x0000, 0x0000, + MB2(0xC1B4), MB2(0xD1C0), MB2(0xD1C1), MB2(0xC8AC), + MB2(0xB8F8), MB2(0xCFBB), MB2(0xD1C2), 0x0000, + 0x0000, MB2(0xB6A6), 0x0000, 0x0000, + 0x0000, MB2(0xCABC), MB2(0xC2B6), MB2(0xB6F1), + MB2(0xC5B5), 0x0000, 0x0000, 0x0000, + MB2(0xB7F3), 0x0000, 0x0000, 0x0000, + MB2(0xD1C3), 0x0000, MB2(0xD1C4), 0x0000, /* 5180 */ + 0x0000, MB2(0xC6E2), MB2(0xB1DF), 0x0000, + 0x0000, MB2(0xD1C7), MB2(0xBAFD), 0x0000, + MB2(0xD1C6), MB2(0xBAC6), 0x0000, MB2(0xD1C8), + MB2(0xE6EE), MB2(0xD1C9), MB2(0xCBC1), MB2(0xD1CA), + 0x0000, MB2(0xD1CB), MB2(0xD1CC), MB2(0xBEE9), + 0x0000, MB2(0xBCCC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4A7), 0x0000, MB2(0xD1CF), 0x0000, /* 51A0 */ + MB2(0xD1CD), MB2(0xCCBD), MB2(0xD1CE), 0x0000, + MB2(0xC9DA), MB2(0xD1D0), MB2(0xD1D1), MB2(0xD1D2), + MB2(0xC5DF), 0x0000, 0x0000, 0x0000, + MB2(0xD1D6), MB2(0xD1D4), MB2(0xD1D5), MB2(0xD1D3), + MB2(0xBAE3), MB2(0xD1D7), MB2(0xCCEA), MB2(0xCEE4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + MB2(0xC0A8), MB2(0xD1D9), MB2(0xBDDA), 0x0000, + 0x0000, MB2(0xD1DA), 0x0000, MB2(0xC3FC), + MB2(0xCEBF), MB2(0xC5E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2C5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1DB), + MB2(0xF4A5), MB2(0xB6C5), 0x0000, 0x0000, + MB2(0xD1DC), MB2(0xCBDE), 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, MB2(0xBDE8), MB2(0xC2FC), + 0x0000, MB2(0xD1DE), MB2(0xC6E4), 0x0000, + 0x0000, MB2(0xD1DF), 0x0000, 0x0000, + MB2(0xD1E0), MB2(0xB3AE), 0x0000, 0x0000, + 0x0000, MB2(0xD1E1), MB2(0xB6A7), 0x0000, + MB2(0xC6CC), MB2(0xB1FA), MB2(0xBDD0), 0x0000, + 0x0000, MB2(0xC8A1), MB2(0xD1E2), 0x0000, + MB2(0xC5E1), 0x0000, 0x0000, MB2(0xBFCF), /* 5200 */ + MB2(0xD1E3), 0x0000, MB2(0xCAAC), MB2(0xC0DA), + MB2(0xB4A2), 0x0000, MB2(0xB4A9), MB2(0xD1E4), + 0x0000, 0x0000, MB2(0xD1E6), 0x0000, + 0x0000, MB2(0xB7BA), 0x0000, 0x0000, + MB2(0xD1E5), 0x0000, 0x0000, MB2(0xCEF3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDE9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + MB2(0xC8BD), MB2(0xCACC), 0x0000, MB2(0xD1E7), + 0x0000, MB2(0xCDF8), MB2(0xD1E8), 0x0000, + 0x0000, 0x0000, MB2(0xD1E9), 0x0000, + MB2(0xC5FE), 0x0000, 0x0000, MB2(0xD1EA), + 0x0000, 0x0000, MB2(0xC0A9), MB2(0xBAFE), + MB2(0xB7F4), MB2(0xD1EB), MB2(0xBBC9), MB2(0xB9EF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4E6), /* 5240 */ + MB2(0xD1ED), 0x0000, 0x0000, MB2(0xC2A7), + 0x0000, 0x0000, MB2(0xBAEF), MB2(0xD1EE), + MB2(0xD1EF), MB2(0xC1B0), 0x0000, MB2(0xD1EC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1F1), 0x0000, MB2(0xCBB6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E4), + 0x0000, 0x0000, MB2(0xD1F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7F5), /* 5260 */ + MB2(0xBADE), MB2(0xC7ED), 0x0000, 0x0000, + 0x0000, MB2(0xD1F4), MB2(0xD1F2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9FB), + MB2(0xBEEA), MB2(0xD1FB), MB2(0xB3E4), MB2(0xD1F5), + MB2(0xD1F3), MB2(0xC1CF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1F7), 0x0000, MB2(0xD1F6), + 0x0000, 0x0000, 0x0000, MB2(0xB3C4), /* 5280 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7E0), + MB2(0xD1FC), MB2(0xCEAD), 0x0000, 0x0000, + 0x0000, MB2(0xD1F8), 0x0000, 0x0000, + 0x0000, MB2(0xD1FD), MB2(0xD1FA), 0x0000, + MB2(0xD1F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCECF), + 0x0000, 0x0000, 0x0000, MB2(0xB8F9), + MB2(0xB2C3), 0x0000, 0x0000, MB2(0xCEF4), /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDF5), MB2(0xC5D8), MB2(0xB9E5), + MB2(0xD2A2), MB2(0xD2A3), 0x0000, 0x0000, + 0x0000, MB2(0xCEE5), 0x0000, 0x0000, + MB2(0xCFAB), MB2(0xD2A5), 0x0000, 0x0000, + 0x0000, MB2(0xB8FA), 0x0000, 0x0000, + MB2(0xD2A4), 0x0000, MB2(0xB3AF), 0x0000, + 0x0000, MB2(0xD2A6), 0x0000, MB2(0xCBD6), /* 52C0 */ + 0x0000, MB2(0xC4BC), 0x0000, MB2(0xCDA6), + 0x0000, MB2(0xCAD9), 0x0000, 0x0000, + 0x0000, MB2(0xD2A7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF0D5), 0x0000, + 0x0000, MB2(0xC6B0), 0x0000, MB2(0xD2A8), + MB2(0xB4AA), MB2(0xCCB3), 0x0000, 0x0000, + 0x0000, MB2(0xBEA1), MB2(0xD2A9), MB2(0xCAE7), + MB2(0xD2AD), 0x0000, MB2(0xC0AA), MB2(0xD2AA), /* 52E0 */ + MB2(0xB6D0), 0x0000, MB2(0xD2AB), MB2(0xB4AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7AE), MB2(0xD2AE), + 0x0000, MB2(0xD2AF), 0x0000, 0x0000, + MB2(0xD2B0), MB2(0xD2B1), MB2(0xBCDB), 0x0000, + 0x0000, 0x0000, MB2(0xB8FB), MB2(0xCCDE), + 0x0000, MB2(0xCCE8), MB2(0xC6F7), 0x0000, /* 5300 */ + 0x0000, MB2(0xCAF1), MB2(0xD2B2), 0x0000, + MB2(0xD2B3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2B5), 0x0000, MB2(0xD2B7), + MB2(0xD2B6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2B8), MB2(0xB2BD), MB2(0xCBCC), + 0x0000, MB2(0xBAFC), MB2(0xD2B9), 0x0000, + 0x0000, MB2(0xC1D9), 0x0000, 0x0000, + MB2(0xBEA2), MB2(0xB6A9), 0x0000, MB2(0xD2BA), /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8DB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD2BB), + 0x0000, MB2(0xD2BC), 0x0000, MB2(0xD2BD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2BE), MB2(0xC9A4), MB2(0xB6E8), MB2(0xB0E5), + 0x0000, 0x0000, 0x0000, MB2(0xC6BF), + MB2(0xD2BF), MB2(0xBDBD), 0x0000, MB2(0xC0E9), /* 5340 */ + 0x0000, MB2(0xD2C1), MB2(0xD2C0), MB2(0xBEA3), + MB2(0xB8E1), MB2(0xD2C3), MB2(0xC8BE), 0x0000, + 0x0000, MB2(0xD2C4), 0x0000, 0x0000, + 0x0000, MB2(0xC8DC), MB2(0xC2B4), MB2(0xC2EE), + MB2(0xB6A8), 0x0000, 0x0000, MB2(0xC6EE), + MB2(0xC3B1), 0x0000, MB2(0xC7EE), 0x0000, + MB2(0xCBCE), 0x0000, MB2(0xD2C6), 0x0000, + MB2(0xC0EA), 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, MB2(0xB7B5), 0x0000, + 0x0000, MB2(0xD2C7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2C8), MB2(0xB1AC), + MB2(0xB0F5), MB2(0xB4ED), 0x0000, MB2(0xC2A8), + MB2(0xB5D1), MB2(0xCDF1), 0x0000, MB2(0xD2CB), + MB2(0xB2B7), 0x0000, 0x0000, MB2(0xD2CA), + 0x0000, 0x0000, 0x0000, MB2(0xB6AA), + 0x0000, 0x0000, MB2(0xD2CC), 0x0000, /* 5380 */ + MB2(0xCCF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2CD), 0x0000, + MB2(0xCED2), 0x0000, MB2(0xB8FC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8B6), + MB2(0xD2CE), 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, MB2(0xD2D0), MB2(0xD2CF), 0x0000, + MB2(0xBFDF), MB2(0xB1B9), 0x0000, 0x0000, + 0x0000, MB2(0xB1DE), MB2(0xD2D1), 0x0000, + MB2(0xD2D2), 0x0000, 0x0000, MB2(0xB8B7), + 0x0000, 0x0000, MB2(0xD2D3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB2), MB2(0xD2D4), /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBF4), MB2(0xBAB5), MB2(0xB5DA), MB2(0xCDA7), + MB2(0xC1D0), MB2(0xC8BF), MB2(0xBCFD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDC7), 0x0000, MB2(0xBCE8), MB2(0xBCF5), + 0x0000, MB2(0xBDF6), 0x0000, MB2(0xC8C0), + 0x0000, 0x0000, 0x0000, MB2(0xD2D7), + 0x0000, MB2(0xB1C3), MB2(0xC1D1), MB2(0xB8FD), /* 53E0 */ + MB2(0xB8C5), MB2(0xB6E7), 0x0000, 0x0000, + MB2(0xD2DB), MB2(0xC3A1), MB2(0xC2FE), MB2(0xB6AB), + MB2(0xBEA4), MB2(0xD2DC), MB2(0xD2DA), MB2(0xB2C4), + MB2(0xC2E6), MB2(0xBCB8), MB2(0xBBCB), MB2(0xB1A6), + 0x0000, 0x0000, MB2(0xB3F0), MB2(0xB9E6), + MB2(0xBBCA), 0x0000, MB2(0xD2DD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2DE), 0x0000, MB2(0xB5C9), /* 5400 */ + MB2(0xB3C6), 0x0000, 0x0000, 0x0000, + MB2(0xB9E7), MB2(0xB5C8), MB2(0xC4DF), MB2(0xB1A5), + MB2(0xC6B1), MB2(0xCCBE), MB2(0xB9A1), MB2(0xCDF9), + MB2(0xC5C7), MB2(0xB8FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7AF), + 0x0000, MB2(0xD2E7), 0x0000, MB2(0xB6E3), + MB2(0xCBCA), 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, MB2(0xC8DD), 0x0000, + 0x0000, MB2(0xD2E6), 0x0000, MB2(0xB4DE), + MB2(0xD2E1), MB2(0xD2E2), MB2(0xD2E4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2E5), 0x0000, + MB2(0xB5DB), MB2(0xBFE1), 0x0000, MB2(0xCAAD), + MB2(0xD2E3), MB2(0xD2DF), MB2(0xB8E3), 0x0000, + MB2(0xD2E0), 0x0000, MB2(0xCFA4), 0x0000, /* 5440 */ + 0x0000, 0x0000, MB2(0xCAF2), 0x0000, + MB2(0xC4E8), MB2(0xB8E2), MB2(0xB9F0), 0x0000, + 0x0000, 0x0000, MB2(0xD2E8), 0x0000, + 0x0000, MB2(0xC6DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD2EC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCFE), 0x0000, MB2(0xBCF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2EF), MB2(0xD2ED), 0x0000, MB2(0xCCA3), + 0x0000, MB2(0xD2EA), MB2(0xD2F3), MB2(0xD2EE), + 0x0000, 0x0000, 0x0000, MB2(0xD2F1), + MB2(0xB8C6), MB2(0xCCBF), 0x0000, 0x0000, + MB2(0xD2F2), 0x0000, 0x0000, 0x0000, /* 5480 */ + MB2(0xD2F4), 0x0000, MB2(0xD2F6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAF0), + MB2(0xCFC2), 0x0000, MB2(0xD2EB), MB2(0xD2E9), + MB2(0xD2F5), 0x0000, MB2(0xD2F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2F8), 0x0000, /* 54A0 */ + MB2(0xD3A3), MB2(0xD2FA), 0x0000, 0x0000, + MB2(0xD2FE), 0x0000, 0x0000, MB2(0xD3A1), + MB2(0xD2FB), 0x0000, 0x0000, MB2(0xD3BE), + 0x0000, 0x0000, MB2(0xBAE9), MB2(0xB3B1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2F9), 0x0000, 0x0000, 0x0000, + MB2(0xD3A5), MB2(0xB0F6), MB2(0xD3A4), 0x0000, + MB2(0xB0A5), MB2(0xC9CA), MB2(0xD3A2), 0x0000, /* 54C0 */ + MB2(0xD2FC), 0x0000, 0x0000, MB2(0xD2F7), + MB2(0xD2FD), MB2(0xBAC8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3A6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0F7), MB2(0xD3AF), 0x0000, /* 54E0 */ + 0x0000, MB2(0xD3A7), MB2(0xD3A8), 0x0000, + MB2(0xBEA5), MB2(0xCBE9), 0x0000, 0x0000, + 0x0000, MB2(0xD3AD), MB2(0xD3AC), 0x0000, + 0x0000, 0x0000, MB2(0xC5AF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3AE), 0x0000, + 0x0000, MB2(0xD3AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + MB2(0xB1B4), 0x0000, MB2(0xBAB6), MB2(0xBFB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3A9), + MB2(0xC5E2), 0x0000, 0x0000, 0x0000, + MB2(0xD3AA), 0x0000, MB2(0xB0A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3B4), MB2(0xCDA3), + 0x0000, MB2(0xBEA7), 0x0000, MB2(0xD3BA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B9), MB2(0xD3B0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2C3), 0x0000, + MB2(0xD3B1), 0x0000, 0x0000, 0x0000, /* 5540 */ + MB2(0xC2EF), MB2(0xD3B6), MB2(0xBEA6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B3), 0x0000, 0x0000, MB2(0xCCE4), + 0x0000, 0x0000, 0x0000, MB2(0xB7BC), + 0x0000, 0x0000, MB2(0xD3B7), MB2(0xD3B8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B5), MB2(0xD3BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3B2), /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3C1), + MB2(0xD3C6), 0x0000, MB2(0xD3C2), 0x0000, + MB2(0xD3BD), 0x0000, 0x0000, MB2(0xD3C7), /* 5580 */ + MB2(0xC1B1), 0x0000, 0x0000, MB2(0xD3C9), + 0x0000, MB2(0xB9A2), MB2(0xD3BF), MB2(0xC3FD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3C3), MB2(0xD3BC), MB2(0xB4AD), 0x0000, + MB2(0xB4EE), MB2(0xB3E5), MB2(0xD3C4), MB2(0xD3C0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7F6), + MB2(0xD3CA), MB2(0xD3C8), MB2(0xC1D3), MB2(0xB5CA), + MB2(0xB6AC), 0x0000, MB2(0xD3C5), 0x0000, + MB2(0xB6F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + MB2(0xD3CE), MB2(0xD3CC), 0x0000, MB2(0xD4A7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3D1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3CB), 0x0000, + MB2(0xD3CF), 0x0000, 0x0000, MB2(0xD3CD), + 0x0000, 0x0000, 0x0000, MB2(0xBBCC), /* 55E0 */ + MB2(0xD3D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3D3), + 0x0000, MB2(0xD3D8), 0x0000, 0x0000, + 0x0000, MB2(0xD3D6), MB2(0xD3D5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, MB2(0xC3B2), 0x0000, + 0x0000, MB2(0xB2C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3D2), 0x0000, MB2(0xD3D4), MB2(0xBEA8), + MB2(0xB1B3), 0x0000, 0x0000, MB2(0xD3D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3E2), + 0x0000, MB2(0xBEFC), MB2(0xD3DE), 0x0000, + MB2(0xD3DC), 0x0000, MB2(0xD3DD), 0x0000, + MB2(0xD3DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1BD), 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1B9), 0x0000, MB2(0xD3D9), 0x0000, + MB2(0xD3DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + MB2(0xD3E1), 0x0000, 0x0000, 0x0000, + MB2(0xB4EF), 0x0000, MB2(0xD3E4), MB2(0xD3E0), + MB2(0xD3E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAAE), 0x0000, 0x0000, 0x0000, + MB2(0xC6D5), 0x0000, MB2(0xC8B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3E6), 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, MB2(0xD3E5), MB2(0xB3C5), + 0x0000, 0x0000, MB2(0xD3E7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3EA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3E8), 0x0000, MB2(0xC7B9), 0x0000, /* 56A0 */ + 0x0000, MB2(0xD3EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3EE), 0x0000, MB2(0xD3ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3F0), 0x0000, 0x0000, 0x0000, + MB2(0xD3F3), MB2(0xD3F1), MB2(0xD3EF), MB2(0xD3F2), /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3F5), 0x0000, + 0x0000, MB2(0xD3F6), 0x0000, MB2(0xD3F7), + 0x0000, 0x0000, 0x0000, MB2(0xD3F8), + MB2(0xD1C5), 0x0000, MB2(0xBCFC), MB2(0xBBCD), + 0x0000, 0x0000, MB2(0xB2F3), 0x0000, + MB2(0xB0F8), 0x0000, 0x0000, MB2(0xC3C4), /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3F9), 0x0000, + MB2(0xBAA4), 0x0000, MB2(0xB0CF), MB2(0xBFDE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3FA), MB2(0xB8C7), 0x0000, + 0x0000, MB2(0xB9F1), 0x0000, MB2(0xD3FC), + MB2(0xD3FB), 0x0000, 0x0000, MB2(0xCAE0), /* 5700 */ + MB2(0xD3FD), 0x0000, 0x0000, 0x0000, + MB2(0xD4A1), MB2(0xD3FE), 0x0000, MB2(0xD4A2), + 0x0000, MB2(0xD4A3), 0x0000, MB2(0xB7F7), + 0x0000, 0x0000, MB2(0xB1E0), MB2(0xD4A4), + 0x0000, 0x0000, MB2(0xD4A6), 0x0000, + MB2(0xD4A5), 0x0000, 0x0000, 0x0000, + MB2(0xD4A8), 0x0000, 0x0000, MB2(0xC5DA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, MB2(0xD4A9), MB2(0xB0B5), + MB2(0xBADF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7BD), 0x0000, 0x0000, + MB2(0xC3CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4AA), + MB2(0xD4AB), 0x0000, 0x0000, MB2(0xD4AD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4AE), 0x0000, MB2(0xBAE4), 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, MB2(0xB6D1), + 0x0000, 0x0000, MB2(0xCBB7), 0x0000, + 0x0000, 0x0000, MB2(0xD4AC), MB2(0xD4AF), + MB2(0xBAC1), MB2(0xB9A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD4B3), 0x0000, 0x0000, /* 5760 */ + MB2(0xBAA5), 0x0000, MB2(0xC3B3), 0x0000, + 0x0000, MB2(0xD4B0), MB2(0xC4DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4B4), + 0x0000, 0x0000, MB2(0xBFE2), 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B2), MB2(0xD4B5), 0x0000, MB2(0xB7BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B7), 0x0000, MB2(0xB9A4), MB2(0xB3C0), /* 57A0 */ + MB2(0xD4B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4BA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4BB), 0x0000, 0x0000, MB2(0xD4B8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B1), 0x0000, 0x0000, MB2(0xD4BC), /* 57C0 */ + 0x0000, 0x0000, MB2(0xD4BD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBE4), + 0x0000, 0x0000, MB2(0xBEEB), 0x0000, + 0x0000, 0x0000, MB2(0xD4BF), MB2(0xD4C0), + MB2(0xD4BE), 0x0000, MB2(0xD4C2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7B8), 0x0000, 0x0000, MB2(0xB0E8), + MB2(0xC9D6), 0x0000, 0x0000, MB2(0xD4C3), /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEFD), 0x0000, 0x0000, MB2(0xBCB9), + 0x0000, MB2(0xC7DD), MB2(0xB4F0), 0x0000, + MB2(0xBAEB), 0x0000, 0x0000, 0x0000, + MB2(0xCBD9), 0x0000, MB2(0xC6B2), 0x0000, /* 5800 */ + 0x0000, MB2(0xB7F8), MB2(0xC2CF), 0x0000, + 0x0000, 0x0000, MB2(0xD4C1), MB2(0xD4C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2C4), 0x0000, 0x0000, + 0x0000, MB2(0xD4C5), 0x0000, 0x0000, + 0x0000, MB2(0xD4C6), 0x0000, 0x0000, + 0x0000, MB2(0xD4C8), 0x0000, 0x0000, /* 5820 */ + MB2(0xC4E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4AE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF4A1), + MB2(0xB1E1), MB2(0xCAF3), 0x0000, 0x0000, + MB2(0xBEEC), MB2(0xC5C8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAE6), 0x0000, + 0x0000, MB2(0xD4CE), 0x0000, 0x0000, + MB2(0xCABD), MB2(0xCEDD), 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2F4), MB2(0xD4CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1BA), MB2(0xD4CD), 0x0000, + MB2(0xC5E3), 0x0000, 0x0000, MB2(0xC5C9), + MB2(0xC5E4), MB2(0xC8B9), MB2(0xC4CD), 0x0000, + 0x0000, 0x0000, MB2(0xBAC9), 0x0000, + 0x0000, 0x0000, MB2(0xD4C9), 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1F6), 0x0000, MB2(0xC5B6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4CB), 0x0000, MB2(0xD4C7), 0x0000, + 0x0000, MB2(0xBFD0), 0x0000, 0x0000, + 0x0000, MB2(0xD4CF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDCE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6AD), /* 5880 */ + 0x0000, MB2(0xD4D0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAE8), + 0x0000, 0x0000, 0x0000, MB2(0xC1FD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4C6), 0x0000, 0x0000, MB2(0xD4D2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBCF), 0x0000, 0x0000, MB2(0xD4D3), + 0x0000, 0x0000, MB2(0xD4D8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAAF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4D7), MB2(0xD4D1), MB2(0xD4D4), MB2(0xD4D6), + 0x0000, 0x0000, MB2(0xBAA6), 0x0000, + 0x0000, MB2(0xCAC9), 0x0000, 0x0000, /* 58C0 */ + 0x0000, MB2(0xD4D9), 0x0000, MB2(0xC3C5), + 0x0000, 0x0000, MB2(0xB2F5), 0x0000, + MB2(0xBEED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD4DB), 0x0000, MB2(0xD4DA), + 0x0000, MB2(0xB9E8), 0x0000, MB2(0xD4DC), + MB2(0xD4DE), MB2(0xD4DD), 0x0000, 0x0000, + MB2(0xD4E0), 0x0000, MB2(0xD4D5), MB2(0xD4E2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + MB2(0xD4E1), MB2(0xD4DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBCE), + MB2(0xBFD1), 0x0000, MB2(0xC1D4), MB2(0xD4E3), + MB2(0xC0BC), MB2(0xB0ED), MB2(0xC7E4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4DB), + 0x0000, MB2(0xD4E5), MB2(0xD4E4), MB2(0xD4E6), + MB2(0xD4E7), MB2(0xD4E8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4E9), 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAD1), MB2(0xD4EA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2C6), + MB2(0xD4EB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDBC), MB2(0xB3B0), 0x0000, + MB2(0xD2C9), MB2(0xBDC8), MB2(0xC2BF), MB2(0xD4EC), + MB2(0xCCEB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCB4), 0x0000, /* 5920 */ + 0x0000, MB2(0xD4EE), 0x0000, MB2(0xC2E7), + 0x0000, MB2(0xC5B7), MB2(0xC2C0), MB2(0xC9D7), + MB2(0xD4EF), MB2(0xD4F0), MB2(0xB1FB), 0x0000, + 0x0000, MB2(0xBCBA), MB2(0xD4F1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0D0), + MB2(0xD4F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + MB2(0xB1E2), 0x0000, 0x0000, MB2(0xB4F1), + MB2(0xC6E0), MB2(0xCAF4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4F7), MB2(0xC1D5), + MB2(0xD4F6), MB2(0xB7C0), 0x0000, 0x0000, + MB2(0xCBDB), MB2(0xD4F5), 0x0000, MB2(0xC5E5), + MB2(0xD4F9), 0x0000, MB2(0xD4F8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4FB), 0x0000, MB2(0xD4FA), 0x0000, /* 5960 */ + 0x0000, MB2(0xB1FC), 0x0000, MB2(0xD4FC), + MB2(0xBEA9), MB2(0xD4FE), MB2(0xC3A5), 0x0000, + MB2(0xD4FD), 0x0000, MB2(0xCAB3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDF7), + MB2(0xC5DB), 0x0000, 0x0000, 0x0000, + MB2(0xD5A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9A5), 0x0000, 0x0000, + 0x0000, MB2(0xD5A2), MB2(0xC7A1), MB2(0xC8DE), /* 5980 */ + MB2(0xCCD1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7A5), 0x0000, + 0x0000, MB2(0xD5AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5B8), + 0x0000, 0x0000, MB2(0xCDC5), 0x0000, + 0x0000, MB2(0xCCAF), 0x0000, MB2(0xD6AC), + 0x0000, MB2(0xD5A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5A6), /* 59A0 */ + 0x0000, MB2(0xC2C5), 0x0000, 0x0000, + MB2(0xCBB8), 0x0000, 0x0000, 0x0000, + MB2(0xC5CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5A7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBE5), 0x0000, MB2(0xBACA), + 0x0000, 0x0000, MB2(0xBEAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, MB2(0xD5A8), 0x0000, + 0x0000, MB2(0xBBD0), 0x0000, MB2(0xBBCF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0B9), MB2(0xB8C8), 0x0000, MB2(0xC0AB), + MB2(0xB0D1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5AC), MB2(0xD5AD), 0x0000, + MB2(0xD5AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, MB2(0xB1B8), MB2(0xB4AF), 0x0000, + MB2(0xD5A9), 0x0000, MB2(0xCCC5), MB2(0xC9B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0A8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F9), + 0x0000, 0x0000, 0x0000, MB2(0xBBD1), + 0x0000, MB2(0xB0D2), 0x0000, MB2(0xB0A3), /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5B0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCBC), 0x0000, MB2(0xD5B3), 0x0000, + MB2(0xD5B1), 0x0000, 0x0000, MB2(0xD5AF), + MB2(0xBFB1), 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, MB2(0xD5AE), 0x0000, 0x0000, + 0x0000, MB2(0xCADA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8E4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5B7), MB2(0xD5B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEAB), 0x0000, 0x0000, 0x0000, + MB2(0xD5B4), MB2(0xCFAC), 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, MB2(0xC7CC), 0x0000, + 0x0000, MB2(0xD5B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAA7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5B9), 0x0000, /* 5A60 */ + 0x0000, 0x0000, MB2(0xC9D8), 0x0000, + 0x0000, 0x0000, MB2(0xD5BA), 0x0000, + MB2(0xD5B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCBB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5BB), MB2(0xC9B2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5BC), MB2(0xD5C0), MB2(0xD5BD), 0x0000, + 0x0000, MB2(0xB2C7), MB2(0xD5BF), 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCBB), 0x0000, MB2(0xD5BE), + MB2(0xB7F9), 0x0000, 0x0000, 0x0000, + MB2(0xD5CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5C5), MB2(0xD5C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3E4), 0x0000, MB2(0xD5C1), /* 5AE0 */ + 0x0000, 0x0000, MB2(0xD5C3), 0x0000, + 0x0000, MB2(0xD5C4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5C6), MB2(0xD5C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4F2), 0x0000, MB2(0xD5C9), + MB2(0xD5C8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5CA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEEE), 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5CD), 0x0000, + MB2(0xC4DC), 0x0000, 0x0000, 0x0000, + MB2(0xB1C5), 0x0000, MB2(0xD5CB), 0x0000, + 0x0000, 0x0000, MB2(0xD5CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5CF), 0x0000, + MB2(0xD5D2), 0x0000, 0x0000, MB2(0xD5D0), /* 5B40 */ + 0x0000, MB2(0xD5D1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBD2), MB2(0xD5D3), 0x0000, 0x0000, + MB2(0xB9A6), MB2(0xD5D4), 0x0000, MB2(0xBBFA), + MB2(0xC2B8), 0x0000, MB2(0xD5D5), MB2(0xD5D6), + MB2(0xBBDA), MB2(0xB9A7), 0x0000, MB2(0xCCD2), + 0x0000, 0x0000, 0x0000, MB2(0xB5A8), /* 5B60 */ + MB2(0xB8C9), MB2(0xD5D7), MB2(0xB3D8), 0x0000, + 0x0000, MB2(0xD5D8), 0x0000, MB2(0xC2B9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5D9), MB2(0xD6A3), 0x0000, MB2(0xD5DA), + 0x0000, MB2(0xD5DB), 0x0000, 0x0000, + MB2(0xD5DC), 0x0000, MB2(0xD5DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5DF), 0x0000, 0x0000, MB2(0xD5E0), /* 5B80 */ + 0x0000, MB2(0xC2F0), 0x0000, MB2(0xB1A7), + MB2(0xBCE9), MB2(0xB0C2), 0x0000, MB2(0xC1D7), + MB2(0xB4B0), MB2(0xBCB5), 0x0000, MB2(0xB9A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5E6), 0x0000, MB2(0xBDA1), + MB2(0xB4B1), MB2(0xC3E8), MB2(0xC4EA), MB2(0xB0B8), + MB2(0xB5B9), MB2(0xCAF5), 0x0000, MB2(0xBCC2), + 0x0000, 0x0000, MB2(0xB5D2), MB2(0xC0EB), /* 5BA0 */ + MB2(0xBCBC), MB2(0xCDA8), MB2(0xD5E1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5DC), 0x0000, + MB2(0xBACB), 0x0000, 0x0000, MB2(0xB3B2), + MB2(0xB1E3), MB2(0xBEAC), MB2(0xB2C8), 0x0000, + MB2(0xD5E2), MB2(0xCDC6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDC9), + 0x0000, 0x0000, MB2(0xBCE4), MB2(0xD5E3), /* 5BC0 */ + MB2(0xB4F3), MB2(0xC6D2), MB2(0xCCA9), MB2(0xD5E4), + 0x0000, MB2(0xD5E5), 0x0000, 0x0000, + MB2(0xC9D9), 0x0000, 0x0000, 0x0000, + MB2(0xD5E7), 0x0000, MB2(0xB4A8), MB2(0xB6F7), + MB2(0xD5E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4B2), + 0x0000, MB2(0xBFB2), MB2(0xD5EB), MB2(0xBBA1), + 0x0000, MB2(0xB2C9), MB2(0xD5EA), 0x0000, /* 5BE0 */ + MB2(0xD5E8), MB2(0xD5EC), MB2(0xD5E9), MB2(0xC7AB), + MB2(0xDCCD), MB2(0xBFB3), 0x0000, MB2(0xD5ED), + 0x0000, 0x0000, MB2(0xCEC0), 0x0000, + MB2(0xD5EE), 0x0000, 0x0000, MB2(0xD5F0), + 0x0000, MB2(0xC3FE), MB2(0xD5EF), 0x0000, + MB2(0xC0A3), 0x0000, MB2(0xBBFB), 0x0000, + 0x0000, 0x0000, MB2(0xC2D0), MB2(0xBCF7), + 0x0000, MB2(0xC9F5), MB2(0xC0EC), 0x0000, /* 5C00 */ + MB2(0xBCCD), MB2(0xD5F1), MB2(0xBEAD), MB2(0xD5F2), + MB2(0xD5F3), MB2(0xB0D3), MB2(0xC2BA), MB2(0xBFD2), + 0x0000, MB2(0xD5F4), MB2(0xC6B3), MB2(0xBEAE), + 0x0000, MB2(0xBEAF), 0x0000, MB2(0xD5F5), + 0x0000, 0x0000, MB2(0xC0ED), 0x0000, + 0x0000, 0x0000, MB2(0xBEB0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F6), 0x0000, MB2(0xD5F7), 0x0000, /* 5C20 */ + MB2(0xCCE0), 0x0000, 0x0000, 0x0000, + MB2(0xD5F8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6C6), 0x0000, 0x0000, + 0x0000, MB2(0xBDA2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F9), MB2(0xD5FA), MB2(0xBCDC), MB2(0xBFAC), + MB2(0xC6F4), MB2(0xBFD4), MB2(0xC8F8), MB2(0xC7A2), + MB2(0xB6C9), MB2(0xD5FB), 0x0000, 0x0000, /* 5C40 */ + 0x0000, MB2(0xB5EF), MB2(0xD5FC), 0x0000, + MB2(0xB6FE), 0x0000, MB2(0xC6CF), MB2(0xB2B0), + 0x0000, MB2(0xBBD3), MB2(0xD5FD), MB2(0xD6A2), + MB2(0xD6A1), MB2(0xB6FD), 0x0000, MB2(0xD5FE), + 0x0000, MB2(0xC5B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2B0), 0x0000, + MB2(0xC5CB), MB2(0xBCC8), 0x0000, 0x0000, /* 5C60 */ + MB2(0xC1D8), MB2(0xCDFA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6A4), 0x0000, MB2(0xD6A5), MB2(0xC6D6), + 0x0000, MB2(0xBBB3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6A7), 0x0000, + 0x0000, MB2(0xD6A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6A9), 0x0000, 0x0000, 0x0000, + MB2(0xB4F4), MB2(0xD6AA), 0x0000, 0x0000, + MB2(0xD6AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2AC), 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1BB), MB2(0xB4E4), 0x0000, MB2(0xD6AD), + MB2(0xCCA8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2D2), 0x0000, MB2(0xB3D9), + 0x0000, 0x0000, MB2(0xD6AF), MB2(0xD6B1), + MB2(0xB4DF), 0x0000, 0x0000, MB2(0xD6AE), + MB2(0xD6B0), 0x0000, MB2(0xD6B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, MB2(0xD6B2), 0x0000, MB2(0xD6B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6BD), MB2(0xB6AE), 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2E5), MB2(0xD6B6), MB2(0xD6BB), 0x0000, + 0x0000, MB2(0xD6B9), 0x0000, MB2(0xCAF7), + MB2(0xCAF6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5E7), 0x0000, + 0x0000, 0x0000, MB2(0xD6B8), MB2(0xBDD4), + 0x0000, MB2(0xD6B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, MB2(0xBFF2), + 0x0000, 0x0000, 0x0000, MB2(0xD6BC), + 0x0000, 0x0000, MB2(0xBAEA), 0x0000, + 0x0000, MB2(0xD6C2), 0x0000, 0x0000, + MB2(0xD6C3), MB2(0xD6BD), MB2(0xB3B3), MB2(0xD6BE), + MB2(0xD6C7), MB2(0xD6C6), MB2(0xD6C5), MB2(0xD6C1), + 0x0000, 0x0000, 0x0000, MB2(0xD6C0), + 0x0000, 0x0000, MB2(0xD6C4), 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6CB), + MB2(0xD6C8), 0x0000, MB2(0xD6CA), 0x0000, + MB2(0xCDF2), 0x0000, MB2(0xD6C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6BF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFF3), 0x0000, 0x0000, + MB2(0xD6CC), 0x0000, 0x0000, MB2(0xBAB7), + 0x0000, 0x0000, 0x0000, MB2(0xD6CD), + 0x0000, 0x0000, MB2(0xD6CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D1), 0x0000, /* 5D80 */ + MB2(0xD6D0), 0x0000, 0x0000, MB2(0xD6CF), + 0x0000, 0x0000, 0x0000, MB2(0xC5E8), + MB2(0xD6BA), 0x0000, 0x0000, 0x0000, + MB2(0xD6D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6D3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D2), 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6D4), 0x0000, MB2(0xD6D5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6D8), + 0x0000, 0x0000, MB2(0xCEE6), 0x0000, + MB2(0xD6D9), MB2(0xD6D6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6DA), 0x0000, 0x0000, + MB2(0xB4E0), MB2(0xD6DB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6DD), MB2(0xD6DC), + 0x0000, 0x0000, MB2(0xD6DE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6DF), + 0x0000, MB2(0xC0EE), MB2(0xBDA3), 0x0000, + 0x0000, MB2(0xBDE4), 0x0000, MB2(0xC1E3), /* 5DE0 */ + 0x0000, MB2(0xB9A9), MB2(0xBAB8), MB2(0xB9AA), + MB2(0xB5F0), 0x0000, 0x0000, MB2(0xD6E0), + 0x0000, 0x0000, MB2(0xBAB9), 0x0000, + 0x0000, MB2(0xB8CA), MB2(0xD6E1), MB2(0xCCA6), + MB2(0xC7C3), MB2(0xD6E2), 0x0000, MB2(0xB9AB), + 0x0000, 0x0000, 0x0000, MB2(0xB4AC), + 0x0000, MB2(0xC3A7), MB2(0xB6D2), 0x0000, + 0x0000, 0x0000, MB2(0xBBD4), MB2(0xC9DB), /* 5E00 */ + 0x0000, 0x0000, MB2(0xC8C1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6E3), + MB2(0xB4F5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6E6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4A1), 0x0000, + 0x0000, MB2(0xD6E5), MB2(0xD6E4), MB2(0xD6E7), + 0x0000, MB2(0xC4EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, MB2(0xBFE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBD5), + 0x0000, MB2(0xC0CA), 0x0000, MB2(0xC2D3), + MB2(0xB5A2), 0x0000, 0x0000, MB2(0xC4A2), + 0x0000, 0x0000, MB2(0xD6E8), MB2(0xD6E9), + MB2(0xBEEF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB9), 0x0000, 0x0000, + MB2(0xD6EC), 0x0000, 0x0000, MB2(0xD6EB), /* 5E40 */ + MB2(0xD6EA), MB2(0xC9FD), 0x0000, MB2(0xD6F3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBDA), 0x0000, MB2(0xD6ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6EF), MB2(0xCBEB), 0x0000, MB2(0xD6EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6F0), + 0x0000, MB2(0xC8A8), MB2(0xD6F1), MB2(0xCABE), /* 5E60 */ + MB2(0xD6F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4B3), MB2(0xCABF), + MB2(0xC7AF), MB2(0xD6F4), MB2(0xD6F5), 0x0000, + MB2(0xB9AC), MB2(0xB4B4), MB2(0xD6F6), MB2(0xB8B8), + MB2(0xCDC4), MB2(0xCDA9), MB2(0xB4F6), MB2(0xD6F8), + 0x0000, MB2(0xC4A3), 0x0000, MB2(0xB9AD), /* 5E80 */ + MB2(0xBEB1), 0x0000, 0x0000, MB2(0xC8DF), + 0x0000, 0x0000, MB2(0xBEB2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4EC), MB2(0xCAF9), MB2(0xC5B9), + 0x0000, 0x0000, MB2(0xB9AE), 0x0000, + MB2(0xC9DC), 0x0000, 0x0000, 0x0000, + MB2(0xD6F9), 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, MB2(0xC5D9), MB2(0xBAC2), + 0x0000, 0x0000, 0x0000, MB2(0xB8CB), + 0x0000, MB2(0xC4ED), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0C3), MB2(0xBDEE), MB2(0xB9AF), + MB2(0xCDC7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6FA), MB2(0xD6FB), MB2(0xC7D1), /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6FC), MB2(0xCEF7), MB2(0xCFAD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6FE), + MB2(0xD6FD), 0x0000, 0x0000, MB2(0xB3C7), + 0x0000, 0x0000, MB2(0xD7A1), 0x0000, + 0x0000, 0x0000, MB2(0xD7A4), MB2(0xD7A5), + 0x0000, MB2(0xD7A3), 0x0000, MB2(0xC9C0), + MB2(0xBEB3), MB2(0xD7A7), MB2(0xD7A6), MB2(0xD7A2), /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7A8), MB2(0xD7A9), 0x0000, 0x0000, + MB2(0xD7AA), 0x0000, 0x0000, 0x0000, + MB2(0xD7AD), MB2(0xD7AB), 0x0000, MB2(0xD7AC), + MB2(0xD7AE), 0x0000, MB2(0xB1E4), MB2(0xC4EE), + MB2(0xD7AF), 0x0000, MB2(0xB7FA), MB2(0xB2F6), + MB2(0xC7B6), 0x0000, MB2(0xD7B0), MB2(0xC6FB), + 0x0000, MB2(0xCADB), 0x0000, MB2(0xD7B1), /* 5F00 */ + MB2(0xCFAE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7B2), MB2(0xCAC0), MB2(0xD7B5), + MB2(0xD0A1), MB2(0xD0B1), 0x0000, MB2(0xBCB0), + MB2(0xC6F5), MB2(0xD7B6), 0x0000, MB2(0xB5DD), + MB2(0xC4A4), MB2(0xB0FA), MB2(0xD7B7), MB2(0xCAA6), + MB2(0xB9B0), 0x0000, 0x0000, MB2(0xC3D0), + 0x0000, 0x0000, 0x0000, MB2(0xC4EF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, MB2(0xCCEF), MB2(0xB8B9), MB2(0xB8CC), + 0x0000, MB2(0xD7B8), 0x0000, 0x0000, + 0x0000, MB2(0xD7B9), 0x0000, MB2(0xD7BF), + 0x0000, MB2(0xBCE5), 0x0000, 0x0000, + 0x0000, MB2(0xC4A5), 0x0000, MB2(0xB6AF), + MB2(0xD7BA), 0x0000, 0x0000, 0x0000, + MB2(0xC9AB), 0x0000, MB2(0xC3C6), 0x0000, + 0x0000, MB2(0xD7BB), 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7BC), 0x0000, MB2(0xB6B0), 0x0000, + MB2(0xD7BD), 0x0000, MB2(0xD7BE), 0x0000, + 0x0000, MB2(0xD7C0), 0x0000, MB2(0xC5F6), + 0x0000, 0x0000, MB2(0xD7C1), MB2(0xD7C2), + 0x0000, MB2(0xD7C3), 0x0000, 0x0000, + MB2(0xD7B4), MB2(0xD7B3), 0x0000, 0x0000, + 0x0000, MB2(0xD7C4), MB2(0xB7C1), 0x0000, /* 5F60 */ + 0x0000, 0x0000, MB2(0xC9A7), 0x0000, + 0x0000, MB2(0xBACC), MB2(0xC9B7), MB2(0xC4A6), + MB2(0xC9CB), MB2(0xD7C5), 0x0000, 0x0000, + MB2(0xBEB4), MB2(0xB1C6), 0x0000, MB2(0xD7C6), + 0x0000, 0x0000, 0x0000, MB2(0xD7C7), + 0x0000, MB2(0xCCF2), 0x0000, 0x0000, + MB2(0xC8E0), 0x0000, 0x0000, MB2(0xD7CA), + MB2(0xB1FD), MB2(0xC0AC), MB2(0xD7C9), MB2(0xD7C8), /* 5F80 */ + MB2(0xB7C2), MB2(0xC2D4), 0x0000, MB2(0xD7CE), + MB2(0xD7CC), 0x0000, MB2(0xD7CB), MB2(0xCEA7), + MB2(0xB8E5), 0x0000, 0x0000, 0x0000, + MB2(0xBDF9), MB2(0xD7CD), MB2(0xC5CC), MB2(0xBDBE), + 0x0000, 0x0000, 0x0000, MB2(0xC6C0), + MB2(0xD7D1), MB2(0xD7D0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7CF), 0x0000, + MB2(0xD7D2), MB2(0xB8E6), 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7D3), MB2(0xC9FC), MB2(0xBDDB), 0x0000, + 0x0000, MB2(0xD7D4), MB2(0xC8F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6C1), + MB2(0xC4A7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5B0), 0x0000, 0x0000, + MB2(0xD7D5), MB2(0xB5AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFB4), /* 5FC0 */ + 0x0000, MB2(0xC9AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4F7), MB2(0xC7A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7D6), MB2(0xBBD6), + MB2(0xCBBA), MB2(0xCBBB), 0x0000, 0x0000, + MB2(0xB1FE), MB2(0xD7DB), 0x0000, 0x0000, + MB2(0xC3E9), 0x0000, 0x0000, 0x0000, /* 5FE0 */ + MB2(0xD7D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8AD), MB2(0xD7DA), 0x0000, 0x0000, + 0x0000, MB2(0xC7B0), 0x0000, 0x0000, + MB2(0xD7D9), 0x0000, 0x0000, MB2(0xD7D7), + 0x0000, MB2(0xB9FA), 0x0000, MB2(0xD7DD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7E3), MB2(0xD7E9), + MB2(0xD7E1), 0x0000, MB2(0xC5DC), 0x0000, + 0x0000, MB2(0xD7E6), MB2(0xC9DD), 0x0000, + 0x0000, MB2(0xD7E0), 0x0000, MB2(0xD7E5), + MB2(0xCEE7), MB2(0xBBD7), 0x0000, 0x0000, + MB2(0xC2D5), MB2(0xD7DE), 0x0000, 0x0000, /* 6020 */ + 0x0000, MB2(0xB5DE), MB2(0xD7E8), MB2(0xC0AD), + MB2(0xB1E5), MB2(0xD7E2), MB2(0xB2F8), MB2(0xD7E7), + 0x0000, 0x0000, 0x0000, MB2(0xB6B1), + 0x0000, MB2(0xD7E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7EC), MB2(0xD7F6), MB2(0xD7F4), /* 6040 */ + 0x0000, 0x0000, MB2(0xD7F1), 0x0000, + 0x0000, 0x0000, MB2(0xD7F0), MB2(0xCEF8), + 0x0000, MB2(0xD7F2), 0x0000, 0x0000, + MB2(0xB6B2), 0x0000, MB2(0xB9B1), 0x0000, + 0x0000, MB2(0xBDFA), 0x0000, 0x0000, + 0x0000, MB2(0xD7F9), MB2(0xD7EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7EF), + MB2(0xD7DF), 0x0000, MB2(0xB2FA), MB2(0xD7F3), /* 6060 */ + MB2(0xD7F5), MB2(0xC3D1), 0x0000, 0x0000, + MB2(0xBAA8), MB2(0xB2B8), MB2(0xD7ED), MB2(0xD7F8), + MB2(0xD7F7), MB2(0xB6B3), 0x0000, MB2(0xC2A9), + MB2(0xB3E6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7C3), 0x0000, MB2(0xD7EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7FA), 0x0000, MB2(0xD7FD), /* 6080 */ + MB2(0xD8A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCBD), 0x0000, MB2(0xD8A7), + MB2(0xC4F0), MB2(0xD7FB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8A5), 0x0000, + MB2(0xB2F9), 0x0000, MB2(0xD8A3), MB2(0xD8A4), + 0x0000, 0x0000, MB2(0xD7FE), MB2(0xD8A2), + 0x0000, 0x0000, 0x0000, MB2(0xB8E7), + MB2(0xCDAA), 0x0000, 0x0000, MB2(0xB4B5), /* 60A0 */ + 0x0000, 0x0000, MB2(0xB1D9), MB2(0xD8A6), + 0x0000, MB2(0xC7BA), MB2(0xB0AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8E1), MB2(0xD7DC), + MB2(0xD8AC), MB2(0xD8B0), MB2(0xCCE5), 0x0000, + MB2(0xD8A9), 0x0000, 0x0000, 0x0000, + MB2(0xC5E9), MB2(0xD8AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, MB2(0xBEF0), MB2(0xD8AF), MB2(0xC6D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFC7), 0x0000, MB2(0xD8AB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8B1), 0x0000, MB2(0xB9FB), 0x0000, + MB2(0xC0CB), 0x0000, 0x0000, MB2(0xB0D4), + MB2(0xD8AA), MB2(0xD8A8), 0x0000, MB2(0xC1DA), /* 60E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD7FC), + MB2(0xBBB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2C6), MB2(0xD8BD), 0x0000, MB2(0xC1DB), + MB2(0xD8B8), 0x0000, MB2(0xD8B5), MB2(0xD8B6), + 0x0000, MB2(0xBCE6), MB2(0xD8B9), MB2(0xD8BC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8B7), MB2(0xBDA5), 0x0000, MB2(0xD8BA), /* 6100 */ + 0x0000, 0x0000, MB2(0xD8B4), 0x0000, + MB2(0xCCFC), MB2(0xCCFB), 0x0000, 0x0000, + 0x0000, MB2(0xD8BE), MB2(0xD8BF), MB2(0xB0D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8B3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6F2), MB2(0xB0A6), + 0x0000, 0x0000, 0x0000, MB2(0xB4B6), + 0x0000, MB2(0xD8BB), 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8C3), + MB2(0xD8C2), 0x0000, 0x0000, 0x0000, + MB2(0xD8C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8C8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8C6), MB2(0xD8C9), MB2(0xD8C1), MB2(0xD8C5), + 0x0000, 0x0000, MB2(0xD8CA), 0x0000, /* 6140 */ + MB2(0xD8CB), 0x0000, 0x0000, MB2(0xD8C0), + MB2(0xBBFC), 0x0000, MB2(0xD8C4), MB2(0xC2D6), + MB2(0xB9B2), MB2(0xD8B2), MB2(0xBFB5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8D8), + 0x0000, MB2(0xCAE9), 0x0000, 0x0000, + MB2(0xD8CE), MB2(0xD8CF), MB2(0xD8D0), 0x0000, + 0x0000, MB2(0xD8D7), 0x0000, MB2(0xD8D6), + 0x0000, 0x0000, MB2(0xCBFD), MB2(0xB4B7), /* 6160 */ + 0x0000, MB2(0xD8D4), 0x0000, MB2(0xB7C5), + MB2(0xB3B4), 0x0000, 0x0000, MB2(0xD8D1), + 0x0000, 0x0000, MB2(0xCEB8), MB2(0xD8D3), + MB2(0xB0D6), MB2(0xD8D5), 0x0000, MB2(0xD8CC), + MB2(0xD8D2), MB2(0xD8D9), MB2(0xB7C4), MB2(0xD8CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDDD), 0x0000, + 0x0000, 0x0000, MB2(0xCDAB), 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8DC), + 0x0000, 0x0000, MB2(0xD8E0), 0x0000, + 0x0000, 0x0000, MB2(0xC1FE), 0x0000, + MB2(0xCEF9), MB2(0xD8E1), 0x0000, 0x0000, + MB2(0xD8DE), 0x0000, MB2(0xD8DB), 0x0000, + 0x0000, MB2(0xD8DA), MB2(0xD8DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + MB2(0xCAB0), 0x0000, 0x0000, MB2(0xC6B4), + 0x0000, MB2(0xB7C6), 0x0000, MB2(0xD8E2), + MB2(0xD8DD), 0x0000, MB2(0xD8E3), 0x0000, + 0x0000, 0x0000, MB2(0xB7FB), 0x0000, + 0x0000, 0x0000, MB2(0xB2B1), 0x0000, + 0x0000, 0x0000, MB2(0xD8EB), 0x0000, + 0x0000, 0x0000, MB2(0xB4B8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8E9), /* 61C0 */ + 0x0000, 0x0000, MB2(0xD8EA), MB2(0xBAA9), + MB2(0xD8E8), MB2(0xD8E6), MB2(0xD8E5), MB2(0xD8EC), + MB2(0xD8E4), MB2(0xD8EE), 0x0000, 0x0000, + MB2(0xB2FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8F0), /* 61E0 */ + 0x0000, 0x0000, MB2(0xD8EF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4A8), 0x0000, + MB2(0xD8F3), 0x0000, MB2(0xD8F1), MB2(0xD8E7), + MB2(0xB7FC), 0x0000, MB2(0xD8F2), 0x0000, + MB2(0xD8F6), MB2(0xD8F5), MB2(0xD8F7), MB2(0xD8F4), + MB2(0xD8F8), 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8F9), MB2(0xD8FA), MB2(0xCAEA), 0x0000, + MB2(0xD8FC), MB2(0xD8FB), MB2(0xBDBF), 0x0000, + MB2(0xC0AE), MB2(0xB2E6), MB2(0xB2FC), 0x0000, + MB2(0xD8FD), 0x0000, MB2(0xB0BF), 0x0000, + 0x0000, 0x0000, MB2(0xC0CC), MB2(0xD8FE), + 0x0000, MB2(0xECC3), MB2(0xD9A1), MB2(0xB7E1), + 0x0000, MB2(0xD9A2), 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, MB2(0xC0EF), 0x0000, + 0x0000, 0x0000, MB2(0xD9A3), 0x0000, + 0x0000, 0x0000, MB2(0xD9A4), MB2(0xB5BA), + MB2(0xD9A5), 0x0000, MB2(0xD9A6), MB2(0xD9A7), + MB2(0xC2D7), 0x0000, 0x0000, 0x0000, + MB2(0xB8CD), 0x0000, 0x0000, MB2(0xCCE1), + 0x0000, 0x0000, 0x0000, MB2(0xCBBC), + MB2(0xBDEA), MB2(0xD9A8), 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, MB2(0xC0F0), + MB2(0xEEBD), MB2(0xC8E2), 0x0000, MB2(0xBCEA), + 0x0000, MB2(0xBACD), MB2(0xD9A9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2C7), + 0x0000, MB2(0xCAA7), 0x0000, 0x0000, + MB2(0xC2F1), 0x0000, 0x0000, MB2(0xD9AC), + 0x0000, 0x0000, MB2(0xD9AA), 0x0000, + MB2(0xD9AD), 0x0000, 0x0000, MB2(0xD9AB), /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9AE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAB1), 0x0000, + 0x0000, MB2(0xB0B7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9DE), 0x0000, + 0x0000, MB2(0xC8E3), 0x0000, 0x0000, + MB2(0xD9AF), 0x0000, MB2(0xD9B2), MB2(0xBEB5), + MB2(0xB5BB), 0x0000, MB2(0xD9B0), MB2(0xD9B7), /* 6280 */ + MB2(0xBEB6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9B1), MB2(0xC7C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDDE), MB2(0xD9B3), MB2(0xD9B4), + MB2(0xD9B8), MB2(0xC5EA), MB2(0xD9B5), MB2(0xB9B3), + MB2(0xC0DE), 0x0000, 0x0000, MB2(0xD9C6), + MB2(0xC8B4), 0x0000, MB2(0xC2F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8E4), + MB2(0xDAAD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAFA), 0x0000, 0x0000, + 0x0000, MB2(0xC4F1), 0x0000, 0x0000, + 0x0000, MB2(0xCBF5), 0x0000, MB2(0xD9BB), + MB2(0xB2A1), MB2(0xC3EA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9C4), 0x0000, /* 62C0 */ + 0x0000, MB2(0xC3B4), MB2(0xD9BE), MB2(0xD9C5), + MB2(0xD9C0), MB2(0xD9C7), MB2(0xD9C3), 0x0000, + MB2(0xD9C2), MB2(0xC7EF), 0x0000, MB2(0xD9BC), + MB2(0xB2FD), MB2(0xD9BA), MB2(0xB5F1), MB2(0xC2F3), + MB2(0xD9B6), 0x0000, 0x0000, MB2(0xD9B9), + MB2(0xB9B4), MB2(0xC0DB), 0x0000, MB2(0xBEB7), + MB2(0xD9C1), MB2(0xC7D2), 0x0000, 0x0000, + MB2(0xB5F2), MB2(0xB3C8), 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3E7), MB2(0xBFA1), MB2(0xD9C9), MB2(0xD9CE), + 0x0000, MB2(0xD9CA), 0x0000, MB2(0xB7FD), + 0x0000, MB2(0xD9CF), MB2(0xBBA2), MB2(0xB9E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDA6), MB2(0xD9BD), + 0x0000, MB2(0xBBFD), MB2(0xD9CC), 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBD8), + MB2(0xD9CD), MB2(0xB0C4), 0x0000, 0x0000, + MB2(0xD9C8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6B4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9CB), + MB2(0xB0A7), 0x0000, 0x0000, MB2(0xBAC3), + 0x0000, 0x0000, 0x0000, MB2(0xBFB6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4F2), 0x0000, + 0x0000, MB2(0xC8D4), MB2(0xD9D1), MB2(0xC1DE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2AA), 0x0000, 0x0000, + MB2(0xBBAB), MB2(0xD9D2), 0x0000, MB2(0xD9D4), + MB2(0xD9D0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAE1), 0x0000, MB2(0xC4BD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, MB2(0xCAFB), + MB2(0xBCCE), MB2(0xD9E0), 0x0000, MB2(0xD9DF), + 0x0000, 0x0000, MB2(0xBFF8), 0x0000, + 0x0000, 0x0000, MB2(0xB7FE), 0x0000, + 0x0000, 0x0000, MB2(0xD9D9), MB2(0xBEB9), + 0x0000, 0x0000, MB2(0xC6E8), MB2(0xC7B1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9D7), 0x0000, 0x0000, MB2(0xC1DD), /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCF8), MB2(0xD9DC), 0x0000, 0x0000, + MB2(0xBEB8), 0x0000, MB2(0xD9D6), MB2(0xD9DB), + 0x0000, 0x0000, MB2(0xC7D3), 0x0000, + 0x0000, 0x0000, MB2(0xD9D5), 0x0000, + MB2(0xB7A1), 0x0000, 0x0000, MB2(0xB3DD), + 0x0000, 0x0000, 0x0000, MB2(0xD9DD), + MB2(0xCEAB), MB2(0xBACE), MB2(0xC3B5), MB2(0xD9DA), /* 63A0 */ + 0x0000, MB2(0xC0DC), 0x0000, MB2(0xB9B5), + MB2(0xBFE4), MB2(0xB1E6), MB2(0xC1BC), MB2(0xD9D8), + MB2(0xB5C5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7C7), 0x0000, + MB2(0xC4CF), MB2(0xD9DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1DF), + 0x0000, 0x0000, MB2(0xD9E1), 0x0000, + MB2(0xD9E3), 0x0000, 0x0000, MB2(0xC2B7), /* 63C0 */ + MB2(0xD9E9), 0x0000, MB2(0xD9E4), 0x0000, + 0x0000, MB2(0xD9E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9C1), + MB2(0xC4F3), 0x0000, MB2(0xD9E7), 0x0000, + 0x0000, 0x0000, MB2(0xCDAC), 0x0000, + 0x0000, 0x0000, MB2(0xCDC8), MB2(0xB4B9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0AE), 0x0000, MB2(0xD9E5), /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9E2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4F8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1E7), 0x0000, MB2(0xD9E8), 0x0000, + 0x0000, 0x0000, MB2(0xCDC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, MB2(0xD9EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2BB), 0x0000, MB2(0xD9F3), + 0x0000, 0x0000, 0x0000, MB2(0xD9ED), + 0x0000, 0x0000, MB2(0xD9EA), MB2(0xD9F1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, MB2(0xD9EE), 0x0000, + MB2(0xD9F2), 0x0000, 0x0000, 0x0000, + MB2(0xC8C2), MB2(0xC5EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9EB), 0x0000, MB2(0xD9EF), 0x0000, + 0x0000, 0x0000, MB2(0xB7C8), 0x0000, + 0x0000, 0x0000, MB2(0xBAF1), 0x0000, + 0x0000, 0x0000, MB2(0xC0DD), 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5A6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9F4), + 0x0000, MB2(0xCBE0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9F6), 0x0000, + MB2(0xCCCE), 0x0000, MB2(0xC0A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7E2), /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB5), MB2(0xD9FA), + 0x0000, MB2(0xD9F9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7B2), 0x0000, + 0x0000, 0x0000, MB2(0xC6B5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + MB2(0xC5B1), MB2(0xD9FB), 0x0000, 0x0000, + 0x0000, MB2(0xD9FC), 0x0000, MB2(0xC9EF), + 0x0000, MB2(0xC7C5), MB2(0xBBA3), 0x0000, + MB2(0xC0F1), 0x0000, MB2(0xCBD0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3C9), 0x0000, MB2(0xDAA5), + MB2(0xD9FE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDCA), MB2(0xDAA7), 0x0000, /* 64C0 */ + 0x0000, MB2(0xDAA3), 0x0000, MB2(0xDAA4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1E0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAA2), 0x0000, + MB2(0xD9BF), 0x0000, 0x0000, 0x0000, + MB2(0xDAA6), 0x0000, MB2(0xDAA1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAAB), MB2(0xDAAC), MB2(0xC5A7), MB2(0xDAAE), /* 64E0 */ + 0x0000, 0x0000, MB2(0xBBA4), MB2(0xDAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5BC), 0x0000, 0x0000, MB2(0xDAAF), + 0x0000, MB2(0xDAA8), MB2(0xDAB3), 0x0000, + MB2(0xDAB2), 0x0000, MB2(0xDAB1), 0x0000, + 0x0000, 0x0000, MB2(0xDAB4), 0x0000, + 0x0000, MB2(0xDAB6), MB2(0xBEF1), 0x0000, + MB2(0xDAB5), 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, MB2(0xDAB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAB7), 0x0000, 0x0000, 0x0000, + MB2(0xDAB8), MB2(0xD9F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDABB), /* 6520 */ + MB2(0xDABA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9F8), MB2(0xDABC), + MB2(0xDAB0), 0x0000, 0x0000, MB2(0xBBD9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDABD), MB2(0xDABE), MB2(0xDAC0), MB2(0xDABF), + MB2(0xDAC1), MB2(0xB2FE), 0x0000, MB2(0xB9B6), + 0x0000, 0x0000, MB2(0xCAFC), MB2(0xC0AF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, MB2(0xB8CE), 0x0000, 0x0000, + MB2(0xDAC3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAC6), 0x0000, MB2(0xC9D2), + 0x0000, MB2(0xB5DF), 0x0000, 0x0000, + 0x0000, MB2(0xDAC5), MB2(0xDAC4), MB2(0xC7D4), + MB2(0xDAC7), MB2(0xB6B5), 0x0000, 0x0000, + 0x0000, MB2(0xDAC9), MB2(0xDAC8), 0x0000, + 0x0000, 0x0000, MB2(0xB4BA), MB2(0xBBB6), /* 6560 */ + 0x0000, 0x0000, MB2(0xC6D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7C9), 0x0000, 0x0000, 0x0000, + MB2(0xBFF4), 0x0000, MB2(0xDACA), 0x0000, + MB2(0xC0B0), MB2(0xC5A8), 0x0000, MB2(0xC9DF), + MB2(0xDACB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDACC), MB2(0xDACD), /* 6580 */ + 0x0000, 0x0000, 0x0000, MB2(0xCAB8), + MB2(0xD5DD), MB2(0xC0C6), 0x0000, 0x0000, + MB2(0xC9CC), 0x0000, MB2(0xBAD8), 0x0000, + MB2(0xC8E5), MB2(0xC8C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5CD), + 0x0000, MB2(0xCEC1), 0x0000, MB2(0xDACF), + MB2(0xBCD0), 0x0000, 0x0000, MB2(0xDAD0), + 0x0000, MB2(0xB0B6), 0x0000, 0x0000, /* 65A0 */ + MB2(0xB6D4), MB2(0xC0CD), 0x0000, MB2(0xC9E0), + 0x0000, 0x0000, 0x0000, MB2(0xDAD1), + MB2(0xBBC2), MB2(0xC3C7), 0x0000, MB2(0xBBDB), + MB2(0xBFB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDAD2), + 0x0000, MB2(0xCAFD), 0x0000, 0x0000, + MB2(0xB1F7), MB2(0xBBDC), 0x0000, 0x0000, + 0x0000, MB2(0xDAD5), 0x0000, MB2(0xDAD3), /* 65C0 */ + MB2(0xDAD6), MB2(0xCEB9), MB2(0xDAD4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0FB), + MB2(0xDAD7), 0x0000, 0x0000, MB2(0xC2B2), + 0x0000, 0x0000, MB2(0xDAD8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4FA), + 0x0000, MB2(0xDADA), 0x0000, MB2(0xDAD9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDADB), MB2(0xDADC), MB2(0xB4FB), 0x0000, /* 65E0 */ + 0x0000, MB2(0xC6FC), MB2(0xC3B6), MB2(0xB5EC), + MB2(0xBBDD), MB2(0xC1E1), 0x0000, 0x0000, + MB2(0xBDDC), MB2(0xB0B0), 0x0000, 0x0000, + 0x0000, MB2(0xDADD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2A2), MB2(0xDAE1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9B7), MB2(0xDAE0), /* 6600 */ + 0x0000, 0x0000, MB2(0xBAAB), MB2(0xBEBA), + 0x0000, 0x0000, MB2(0xDADF), 0x0000, + MB2(0xBEBB), 0x0000, MB2(0xCCC0), MB2(0xBAAA), + 0x0000, 0x0000, 0x0000, MB2(0xB0D7), + MB2(0xC0CE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAE6), 0x0000, 0x0000, MB2(0xC0B1), + MB2(0xB1C7), 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, MB2(0xBDD5), 0x0000, MB2(0xCBE6), + MB2(0xBAF2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEBC), 0x0000, MB2(0xC0A7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAE5), MB2(0xDAE3), MB2(0xDAE4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3EB), 0x0000, 0x0000, MB2(0xDBA6), + 0x0000, MB2(0xDAEA), MB2(0xBBFE), MB2(0xB9B8), /* 6640 */ + MB2(0xDAE8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAE9), 0x0000, MB2(0xBFB8), + 0x0000, 0x0000, 0x0000, MB2(0xDAE7), + 0x0000, 0x0000, MB2(0xBBAF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAEC), MB2(0xDAEB), MB2(0xDAF0), + 0x0000, 0x0000, MB2(0xDAF1), 0x0000, /* 6660 */ + MB2(0xDAED), 0x0000, MB2(0xB3A2), MB2(0xDAEE), + MB2(0xDAEF), MB2(0xC8D5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9E1), MB2(0xB7CA), + MB2(0xDAF2), 0x0000, 0x0000, 0x0000, + MB2(0xC0B2), 0x0000, MB2(0xBEBD), 0x0000, + 0x0000, 0x0000, MB2(0xC3D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6C7), 0x0000, MB2(0xDAF3), /* 6680 */ + MB2(0xDAF7), 0x0000, 0x0000, MB2(0xB2CB), + MB2(0xDAF4), MB2(0xDAF6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAF5), 0x0000, + 0x0000, MB2(0xBDEB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3C8), MB2(0xB0C5), + MB2(0xDAF8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAF9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4AA), 0x0000, /* 66A0 */ + 0x0000, 0x0000, MB2(0xCEF1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBC3), + 0x0000, 0x0000, MB2(0xCAEB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBBD), 0x0000, 0x0000, 0x0000, + MB2(0xDBA2), MB2(0xDAFB), 0x0000, 0x0000, + MB2(0xDAFE), 0x0000, MB2(0xDAFD), 0x0000, + 0x0000, MB2(0xDAFA), 0x0000, 0x0000, /* 66C0 */ + MB2(0xDBA1), 0x0000, 0x0000, MB2(0xC6DE), + 0x0000, MB2(0xDAFC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBA3), 0x0000, + 0x0000, MB2(0xBDEC), MB2(0xDBA4), 0x0000, + MB2(0xCDCB), MB2(0xC7F8), 0x0000, 0x0000, + MB2(0xDBA5), 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, MB2(0xDBA7), 0x0000, + 0x0000, MB2(0xDBA8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBA9), 0x0000, MB2(0xB6CA), MB2(0xB1C8), + MB2(0xB9B9), MB2(0xDBAA), 0x0000, MB2(0xDBAB), + MB2(0xBDF1), MB2(0xC1E2), 0x0000, 0x0000, + MB2(0xD2D8), MB2(0xC1BE), MB2(0xC1BD), MB2(0xC2D8), + MB2(0xBAC7), 0x0000, 0x0000, MB2(0xD0F2), /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7EE), MB2(0xCDAD), 0x0000, MB2(0xCAFE), + 0x0000, MB2(0xC9FE), 0x0000, MB2(0xDBAC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAF3), MB2(0xC4BF), MB2(0xDBAD), MB2(0xCFAF), + 0x0000, 0x0000, 0x0000, MB2(0xCBBE), + 0x0000, MB2(0xC4AB), MB2(0xDBAE), MB2(0xB4FC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, MB2(0xDBAF), MB2(0xDBB0), + MB2(0xCCDA), 0x0000, MB2(0xCCA4), MB2(0xCBF6), + MB2(0xCBDC), MB2(0xBBA5), MB2(0xDBB2), 0x0000, + 0x0000, MB2(0xBCEB), 0x0000, 0x0000, + MB2(0xCBD1), 0x0000, MB2(0xDBB4), MB2(0xDBB7), + MB2(0xDBB6), 0x0000, MB2(0xB4F9), 0x0000, + 0x0000, MB2(0xB5E0), 0x0000, MB2(0xDBB3), + 0x0000, MB2(0xDBB5), 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, MB2(0xDBB8), 0x0000, + 0x0000, MB2(0xBFF9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDFB), MB2(0xB0C9), + MB2(0xBAE0), MB2(0xC2BC), 0x0000, MB2(0xBCDD), + 0x0000, 0x0000, MB2(0xBEF3), 0x0000, + 0x0000, MB2(0xDBBB), 0x0000, 0x0000, + MB2(0xC5CE), 0x0000, MB2(0xDBB9), MB2(0xC2AB), + MB2(0xDBBA), MB2(0xBEF2), MB2(0xCCDD), MB2(0xDBBC), /* 6760 */ + MB2(0xDBBD), MB2(0xCDE8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBC2), 0x0000, + 0x0000, MB2(0xB9BA), 0x0000, MB2(0xC7D5), + MB2(0xDBBF), MB2(0xC5EC), MB2(0xDADE), MB2(0xDAE2), + 0x0000, MB2(0xB5CF), 0x0000, MB2(0xC7C7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBC1), 0x0000, MB2(0xBEBE), MB2(0xC8C4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, MB2(0xDBC7), 0x0000, MB2(0xC8FA), + 0x0000, MB2(0xDBBE), 0x0000, MB2(0xDBC4), + MB2(0xDBC3), 0x0000, 0x0000, 0x0000, + MB2(0xC0CF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBED), 0x0000, MB2(0xCED3), + 0x0000, 0x0000, MB2(0xCBE7), 0x0000, + MB2(0xB2CC), MB2(0xBBDE), 0x0000, 0x0000, + MB2(0xCFC8), MB2(0xDBC6), MB2(0xBFF5), 0x0000, /* 67A0 */ + 0x0000, 0x0000, MB2(0xDBC5), 0x0000, + 0x0000, MB2(0xDBC0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8CF), + 0x0000, 0x0000, 0x0000, MB2(0xDBCC), + MB2(0xDBCA), 0x0000, MB2(0xB2CD), MB2(0xDBC8), + MB2(0xDBCE), MB2(0xDBD4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2C8), 0x0000, 0x0000, /* 67C0 */ + MB2(0xCAC1), 0x0000, MB2(0xDBD6), 0x0000, + 0x0000, 0x0000, MB2(0xC9A2), 0x0000, + 0x0000, 0x0000, MB2(0xDBD5), MB2(0xC7F0), + MB2(0xCBBF), MB2(0xB4BB), 0x0000, MB2(0xC0F7), + MB2(0xBDC0), 0x0000, 0x0000, 0x0000, + MB2(0xC4D3), 0x0000, MB2(0xCDAE), 0x0000, + 0x0000, MB2(0xDBD1), MB2(0xDBD0), 0x0000, + 0x0000, 0x0000, MB2(0xDBD2), 0x0000, /* 67E0 */ + MB2(0xDBCF), 0x0000, 0x0000, MB2(0xDBD7), + 0x0000, MB2(0xDBCD), 0x0000, 0x0000, + MB2(0xDBCB), 0x0000, MB2(0xDBD3), MB2(0xDBC9), + 0x0000, MB2(0xC3EC), 0x0000, MB2(0xCCF8), + MB2(0xBCC6), MB2(0xBAF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBABA), + 0x0000, 0x0000, MB2(0xCBEF), MB2(0xB3C1), + 0x0000, 0x0000, MB2(0xC4CE), MB2(0xC6CA), /* 6800 */ + MB2(0xB1C9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0F2), + 0x0000, 0x0000, MB2(0xC0B4), MB2(0xB7AA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBD9), 0x0000, + 0x0000, MB2(0xB9BB), MB2(0xB3FC), 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBDB), MB2(0xB3F4), MB2(0xDBE1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBDE), 0x0000, + MB2(0xC0F3), 0x0000, 0x0000, 0x0000, + MB2(0xB3CB), MB2(0xBAAC), 0x0000, 0x0000, + MB2(0xB3CA), MB2(0xBACF), 0x0000, 0x0000, + MB2(0xDBDC), MB2(0xB7E5), MB2(0xB7CB), MB2(0xC5ED), /* 6840 */ + 0x0000, 0x0000, MB2(0xDBDA), 0x0000, + MB2(0xB0C6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBDD), MB2(0xDBDF), 0x0000, + MB2(0xB6CD), MB2(0xB7AC), 0x0000, MB2(0xB4BC), + MB2(0xB5CB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBE2), 0x0000, 0x0000, + MB2(0xBAF9), MB2(0xCBF1), 0x0000, MB2(0xBBB7), + 0x0000, 0x0000, 0x0000, MB2(0xDBE3), /* 6860 */ + 0x0000, 0x0000, 0x0000, MB2(0xC9B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBEF), 0x0000, MB2(0xB2B3), MB2(0xDBE4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBF5), MB2(0xDBE5), + 0x0000, MB2(0xCEC2), 0x0000, MB2(0xDBEC), /* 6880 */ + 0x0000, MB2(0xC7DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBF4), 0x0000, MB2(0xDBE7), + 0x0000, 0x0000, 0x0000, MB2(0xB0B4), + MB2(0xDBE9), 0x0000, 0x0000, MB2(0xB9BC), + 0x0000, 0x0000, 0x0000, MB2(0xDBEB), + 0x0000, MB2(0xDBEA), 0x0000, MB2(0xDBE6), + MB2(0xDBF1), 0x0000, MB2(0xBEBF), 0x0000, /* 68A0 */ + 0x0000, 0x0000, MB2(0xD4ED), MB2(0xB8E8), + MB2(0xCDFC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBE8), 0x0000, MB2(0xC4F4), + MB2(0xB3A3), MB2(0xBAAD), 0x0000, MB2(0xDBE0), + 0x0000, MB2(0xDBF0), MB2(0xB3E1), 0x0000, + 0x0000, MB2(0xDBEE), MB2(0xDBF2), 0x0000, + MB2(0xC5EE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + MB2(0xB4FE), 0x0000, MB2(0xDCB2), 0x0000, + 0x0000, MB2(0xCCC9), MB2(0xDBF7), MB2(0xB4FD), + 0x0000, MB2(0xDBFE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBC0), 0x0000, + MB2(0xDCA1), MB2(0xDCA3), 0x0000, MB2(0xDCA7), + MB2(0xDBF9), 0x0000, MB2(0xC3AA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5EF), + MB2(0xDCAB), MB2(0xDBFC), 0x0000, MB2(0xDCA8), /* 68E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCA2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFB9), MB2(0xDCAC), + 0x0000, 0x0000, MB2(0xC0B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCAA), MB2(0xB4BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFD0), MB2(0xDBF6), 0x0000, 0x0000, /* 6900 */ + MB2(0xDCA6), MB2(0xB0D8), 0x0000, 0x0000, + MB2(0xDBF8), 0x0000, 0x0000, MB2(0xCCBA), + MB2(0xDBFD), MB2(0xBFA2), MB2(0xC4C7), MB2(0xDBF3), + 0x0000, 0x0000, MB2(0xDCA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFFA), MB2(0xDCAF), MB2(0xB3F1), + MB2(0xB8A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB1), MB2(0xDBFA), MB2(0xDCB0), /* 6920 */ + 0x0000, MB2(0xDCA9), MB2(0xDBFB), 0x0000, + MB2(0xDCAD), 0x0000, MB2(0xDCAE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCBF), 0x0000, 0x0000, 0x0000, + MB2(0xC6CE), 0x0000, MB2(0xDCA4), 0x0000, + 0x0000, MB2(0xDCBB), 0x0000, 0x0000, + 0x0000, MB2(0xDCBD), 0x0000, MB2(0xC4D8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDCC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9F6), + MB2(0xDCB8), MB2(0xC2CA), 0x0000, 0x0000, + 0x0000, MB2(0xDCBE), MB2(0xC1BF), 0x0000, + MB2(0xDCB5), MB2(0xDCC2), MB2(0xDCC1), 0x0000, + MB2(0xC6EF), MB2(0xDCC0), MB2(0xC6EA), 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC4), MB2(0xDCB7), + 0x0000, MB2(0xB6C8), MB2(0xDCBA), MB2(0xBDDD), + 0x0000, 0x0000, 0x0000, MB2(0xC7E0), + MB2(0xDCBC), MB2(0xB6CB), 0x0000, MB2(0xDCB4), + MB2(0xDCB6), MB2(0xDCB3), 0x0000, 0x0000, + MB2(0xCFB0), MB2(0xB3DA), MB2(0xDCB9), 0x0000, + 0x0000, MB2(0xDCC3), MB2(0xB3B5), 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAE7), 0x0000, + 0x0000, 0x0000, MB2(0xB1DD), 0x0000, + 0x0000, MB2(0xDCD4), 0x0000, 0x0000, + MB2(0xCFB1), MB2(0xDCD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFBA), + MB2(0xDCD6), 0x0000, 0x0000, 0x0000, + MB2(0xDCD5), 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCD2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC6), 0x0000, + 0x0000, MB2(0xDCE3), MB2(0xDCC5), 0x0000, + MB2(0xDCD8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCD0), + 0x0000, 0x0000, MB2(0xDCCB), MB2(0xDCC8), + 0x0000, MB2(0xDCC9), 0x0000, MB2(0xDCD1), /* 69C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xF4A2), + 0x0000, 0x0000, MB2(0xDCCE), MB2(0xB9BD), + MB2(0xC4C8), MB2(0xC1E4), MB2(0xDCCC), 0x0000, + MB2(0xDCC7), 0x0000, 0x0000, MB2(0xDCCA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDCD), MB2(0xCBEA), 0x0000, 0x0000, + 0x0000, MB2(0xDCCF), MB2(0xDCD9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCE1), + MB2(0xDCDA), 0x0000, 0x0000, MB2(0xDCE7), + 0x0000, MB2(0xDCE5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCDF), 0x0000, MB2(0xC4D0), + 0x0000, MB2(0xC1E5), 0x0000, MB2(0xDCDD), + 0x0000, 0x0000, MB2(0xDCDB), 0x0000, /* 6A00 */ + 0x0000, MB2(0xDCE2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCE8), MB2(0xC8F5), + MB2(0xDCEE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCE9), MB2(0xDCEC), + MB2(0xDCE6), 0x0000, 0x0000, MB2(0xC3F4), + 0x0000, MB2(0xC9B8), 0x0000, MB2(0xDCDC), + 0x0000, 0x0000, MB2(0xDCE4), MB2(0xBEC0), + 0x0000, MB2(0xCCCF), MB2(0xDCF8), MB2(0xDCEB), /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8A2), MB2(0xB2A3), MB2(0xB3DF), + 0x0000, 0x0000, MB2(0xDCD3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEC1), MB2(0xDCF0), 0x0000, + MB2(0xDCF7), MB2(0xBCF9), MB2(0xB3F2), 0x0000, + 0x0000, MB2(0xC3AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + MB2(0xDCED), 0x0000, 0x0000, MB2(0xDCF2), + MB2(0xDCF6), 0x0000, 0x0000, MB2(0xB6B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5CC), MB2(0xDCF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5A1), + 0x0000, MB2(0xC6CB), MB2(0xDCF3), 0x0000, /* 6A60 */ + 0x0000, 0x0000, MB2(0xDCF5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCEF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3E0), + MB2(0xC3C9), 0x0000, 0x0000, 0x0000, /* 6A80 */ + MB2(0xDCFC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCFA), MB2(0xB8E9), 0x0000, + MB2(0xDCF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDA1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBD8), 0x0000, 0x0000, 0x0000, + MB2(0xDCFB), 0x0000, MB2(0xDCFD), MB2(0xDCFE), /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDAC), 0x0000, + MB2(0xDDA8), 0x0000, MB2(0xDBED), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDA7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDA6), 0x0000, 0x0000, MB2(0xDDA3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCEA), MB2(0xDDA5), MB2(0xDDA4), /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDAA), 0x0000, MB2(0xCFA6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDAD), MB2(0xB6FB), + 0x0000, 0x0000, MB2(0xDDA9), MB2(0xDDAB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8A7), 0x0000, MB2(0xDDAE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDB2), MB2(0xDDAF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + MB2(0xCDF3), MB2(0xDDB0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDB3), 0x0000, + 0x0000, 0x0000, MB2(0xDDB4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1B5), 0x0000, MB2(0xDDB6), + MB2(0xB7E7), MB2(0xBCA1), 0x0000, MB2(0xB6D5), /* 6B20 */ + 0x0000, 0x0000, 0x0000, MB2(0xB2A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDDF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDB8), + MB2(0xDDB7), MB2(0xDDBA), MB2(0xB5BD), 0x0000, + 0x0000, MB2(0xB6D6), MB2(0xB4BE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDBD), /* 6B40 */ + 0x0000, 0x0000, 0x0000, MB2(0xDDBC), + 0x0000, MB2(0xDDBE), 0x0000, 0x0000, + MB2(0xB2CE), 0x0000, MB2(0xC3B7), 0x0000, + MB2(0xDDBF), 0x0000, 0x0000, MB2(0xB4BF), + MB2(0xDDC1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDC0), 0x0000, MB2(0xDDC2), + 0x0000, 0x0000, 0x0000, MB2(0xDDC3), + 0x0000, MB2(0xDDC4), MB2(0xBBDF), MB2(0xC0B5), /* 6B60 */ + MB2(0xBAA1), 0x0000, MB2(0xC9F0), 0x0000, + 0x0000, MB2(0xCAE2), MB2(0xCFC4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBF5), + 0x0000, 0x0000, 0x0000, MB2(0xBAD0), + MB2(0xCEF2), 0x0000, 0x0000, 0x0000, + MB2(0xDDC5), MB2(0xDDC6), 0x0000, MB2(0xBBE0), + 0x0000, 0x0000, 0x0000, MB2(0xDDC7), + MB2(0xDDC8), 0x0000, 0x0000, MB2(0xDDCA), /* 6B80 */ + MB2(0xDDC9), 0x0000, MB2(0xCBD8), 0x0000, + 0x0000, MB2(0xBDDE), MB2(0xBCEC), MB2(0xBBC4), + 0x0000, MB2(0xDDCB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDCD), MB2(0xBFA3), 0x0000, + MB2(0xDDCC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDCE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + MB2(0xDDCF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDD0), MB2(0xDDD1), + 0x0000, 0x0000, 0x0000, MB2(0xDDD2), + 0x0000, MB2(0xDDD4), MB2(0xDDD3), MB2(0xDDD5), + MB2(0xB2A5), MB2(0xC3CA), 0x0000, MB2(0xDDD6), + 0x0000, 0x0000, MB2(0xBBA6), MB2(0xB3CC), + MB2(0xDDD7), 0x0000, 0x0000, MB2(0xC5C2), + MB2(0xD4CC), 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, MB2(0xB5A3), MB2(0xDDD8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDD9), + 0x0000, MB2(0xCAEC), MB2(0xCBE8), 0x0000, + 0x0000, 0x0000, MB2(0xC6C7), MB2(0xDDDA), + MB2(0xC8E6), 0x0000, 0x0000, 0x0000, + MB2(0xC8FB), 0x0000, 0x0000, MB2(0xCCD3), + 0x0000, 0x0000, 0x0000, MB2(0xDDDB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDDD), + MB2(0xDDDC), 0x0000, 0x0000, MB2(0xDDDF), + 0x0000, 0x0000, 0x0000, MB2(0xDDDE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDE1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBE1), + 0x0000, MB2(0xCCB1), 0x0000, MB2(0xDDE2), + MB2(0xDDE3), 0x0000, 0x0000, MB2(0xB5A4), + 0x0000, 0x0000, 0x0000, MB2(0xDDE4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDE6), /* 6C20 */ + MB2(0xDDE5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFE5), 0x0000, 0x0000, MB2(0xC9B9), + MB2(0xB1CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8C5), 0x0000, + MB2(0xC4F5), MB2(0xBDC1), MB2(0xB5E1), 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8C6), 0x0000, + MB2(0xBCAE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDE8), 0x0000, MB2(0xB4C0), + 0x0000, 0x0000, MB2(0xB1F8), 0x0000, + 0x0000, MB2(0xC6F2), MB2(0xDDE7), MB2(0xB9BE), + MB2(0xC3D3), 0x0000, MB2(0xDDE9), 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDF1), 0x0000, MB2(0xDDEA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2C1), 0x0000, MB2(0xB5E2), MB2(0xDDF2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7E8), 0x0000, + 0x0000, MB2(0xB5A5), MB2(0xDDF0), 0x0000, + 0x0000, MB2(0xDDEE), MB2(0xDDEB), MB2(0xCDE0), /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4C0), 0x0000, 0x0000, 0x0000, + MB2(0xC6D9), MB2(0xDDEC), 0x0000, 0x0000, + MB2(0xDDF4), 0x0000, MB2(0xDDF3), MB2(0xB7A3), + 0x0000, 0x0000, MB2(0xB2AD), 0x0000, + 0x0000, MB2(0xBABB), MB2(0xDDED), MB2(0xDDEF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBD7), MB2(0xC2F4), 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBF7), + 0x0000, 0x0000, MB2(0xDDFC), 0x0000, + 0x0000, MB2(0xDDFD), 0x0000, MB2(0xB2CF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA8), MB2(0xCCFD), MB2(0xDEA1), MB2(0xBCA3), + MB2(0xBEC2), MB2(0xDDF8), MB2(0xDDFE), MB2(0xB1E8), + 0x0000, MB2(0xB6B7), 0x0000, 0x0000, /* 6CC0 */ + MB2(0xDDF5), MB2(0xDDFA), 0x0000, 0x0000, + 0x0000, MB2(0xC0F4), MB2(0xC7F1), 0x0000, + MB2(0xC8E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDF7), + 0x0000, MB2(0xCBA1), 0x0000, MB2(0xDDF9), + 0x0000, MB2(0xDEA4), 0x0000, MB2(0xDEA2), + 0x0000, MB2(0xDDFB), 0x0000, 0x0000, + 0x0000, MB2(0xCBA2), MB2(0xC7C8), MB2(0xB5E3), /* 6CE0 */ + 0x0000, MB2(0xC5A5), 0x0000, 0x0000, + MB2(0xC3ED), 0x0000, MB2(0xDEA5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEA3), + MB2(0xC2D9), MB2(0xDDF6), 0x0000, MB2(0xB1CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDCE), + MB2(0xDEB0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEAF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0F6), + 0x0000, MB2(0xDEAC), 0x0000, MB2(0xCDEC), + 0x0000, 0x0000, MB2(0xC6B6), MB2(0xDEA6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, MB2(0xC4C5), 0x0000, 0x0000, + 0x0000, MB2(0xB1CC), MB2(0xB9BF), MB2(0xDEA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDA7), MB2(0xDEAE), + 0x0000, MB2(0xDEAD), MB2(0xDEA8), 0x0000, + MB2(0xDEAB), 0x0000, 0x0000, MB2(0xB3E8), + 0x0000, MB2(0xDEAA), MB2(0xC7C9), 0x0000, + 0x0000, MB2(0xCEAE), 0x0000, 0x0000, /* 6D40 */ + MB2(0xBEF4), MB2(0xC0F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEB6), MB2(0xDEB4), 0x0000, + MB2(0xC9CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEB1), /* 6D60 */ + MB2(0xDEB3), 0x0000, MB2(0xB1BA), 0x0000, + 0x0000, MB2(0xB9C0), MB2(0xCFB2), 0x0000, + MB2(0xB3BD), 0x0000, MB2(0xC9E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDE1), 0x0000, 0x0000, MB2(0xB3A4), + MB2(0xBFBB), MB2(0xDEB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, MB2(0xDEBA), 0x0000, 0x0000, + MB2(0xBEC3), 0x0000, 0x0000, 0x0000, + MB2(0xCDB0), 0x0000, MB2(0xDEB7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEB2), + 0x0000, MB2(0xDEB8), 0x0000, 0x0000, + 0x0000, MB2(0xCEDE), 0x0000, MB2(0xC5F3), + MB2(0xC6C2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3B6), + 0x0000, 0x0000, MB2(0xB1D5), 0x0000, + 0x0000, MB2(0xDEBE), 0x0000, 0x0000, + MB2(0xDEC1), 0x0000, 0x0000, 0x0000, + MB2(0xCEC3), 0x0000, 0x0000, 0x0000, + MB2(0xCDE4), 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, MB2(0xDEC8), MB2(0xDEC2), MB2(0xDEBF), + 0x0000, 0x0000, 0x0000, MB2(0xCED4), + MB2(0xDEC5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDCA), MB2(0xDEC7), 0x0000, + 0x0000, MB2(0xDECC), 0x0000, 0x0000, + MB2(0xC5F1), MB2(0xDECA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEC4), 0x0000, + 0x0000, MB2(0xC3B8), 0x0000, 0x0000, /* 6DE0 */ + MB2(0xDECB), 0x0000, MB2(0xDEC0), 0x0000, + MB2(0xDEC6), 0x0000, MB2(0xDECD), MB2(0xB0FC), + MB2(0xDEC3), 0x0000, MB2(0xDECE), 0x0000, + 0x0000, MB2(0xBFBC), 0x0000, MB2(0xBDDF), + 0x0000, MB2(0xCAA5), 0x0000, MB2(0xBAAE), + 0x0000, MB2(0xDEBB), MB2(0xDEC9), MB2(0xC5BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, MB2(0xC0B6), 0x0000, MB2(0xB3E9), + MB2(0xBAD1), MB2(0xBEC4), MB2(0xDEBD), MB2(0xBDC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7CC), + 0x0000, MB2(0xDEBC), 0x0000, 0x0000, + 0x0000, MB2(0xDED2), MB2(0xBDED), MB2(0xB8BA), + 0x0000, MB2(0xDEE1), 0x0000, MB2(0xDEDB), + MB2(0xB5F4), MB2(0xC5CF), 0x0000, MB2(0xDED6), /* 6E20 */ + MB2(0xDEDF), MB2(0xB0AF), MB2(0xB1B2), 0x0000, + 0x0000, MB2(0xB2B9), 0x0000, MB2(0xDED8), + MB2(0xC2AC), MB2(0xDECF), MB2(0xDED1), MB2(0xB9C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEE2), 0x0000, MB2(0xDEDD), 0x0000, + 0x0000, 0x0000, MB2(0xDED5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEDC), /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCAB), 0x0000, + 0x0000, MB2(0xDEDA), MB2(0xDEDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8D0), 0x0000, + MB2(0xBEC5), 0x0000, 0x0000, MB2(0xC3B9), + 0x0000, 0x0000, 0x0000, MB2(0xDED4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, MB2(0xCDAF), + 0x0000, 0x0000, 0x0000, MB2(0xDED7), + 0x0000, 0x0000, MB2(0xDED0), MB2(0xC5F2), + 0x0000, 0x0000, MB2(0xDED3), 0x0000, + 0x0000, 0x0000, MB2(0xDED9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFD1), MB2(0xBCBE), + MB2(0xCBFE), 0x0000, MB2(0xDEE3), 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8AE), 0x0000, 0x0000, MB2(0xDEEF), + MB2(0xB8BB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDE0), 0x0000, + MB2(0xDEE5), 0x0000, 0x0000, 0x0000, + MB2(0xCEAF), MB2(0xB9C2), 0x0000, MB2(0xDEF2), + 0x0000, 0x0000, MB2(0xB0EE), 0x0000, /* 6EA0 */ + 0x0000, MB2(0xDEF0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEE4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEEA), + 0x0000, 0x0000, MB2(0xDEEC), 0x0000, + 0x0000, 0x0000, MB2(0xCDCF), MB2(0xDEE7), + 0x0000, 0x0000, MB2(0xC5AE), 0x0000, + 0x0000, MB2(0xDEE9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEF1), 0x0000, /* 6EC0 */ + MB2(0xDEEB), MB2(0xCCC7), 0x0000, 0x0000, + 0x0000, MB2(0xDEE6), 0x0000, MB2(0xBCA2), + MB2(0xDEFE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3EA), 0x0000, MB2(0xDEE8), + MB2(0xDEED), MB2(0xDEEE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2EC), MB2(0xC2DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEF6), 0x0000, 0x0000, MB2(0xDEFC), + 0x0000, 0x0000, MB2(0xDEFA), 0x0000, + MB2(0xC5A9), 0x0000, 0x0000, MB2(0xDFA3), + MB2(0xDEF7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEF8), MB2(0xDEE0), + 0x0000, MB2(0xB5F9), MB2(0xC9BA), 0x0000, /* 6F00 */ + 0x0000, 0x0000, MB2(0xBCBF), 0x0000, + 0x0000, MB2(0xB9F7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFB3), + 0x0000, MB2(0xDEF4), 0x0000, MB2(0xDFA2), + MB2(0xB1E9), MB2(0xC1E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7F9), 0x0000, MB2(0xB4C1), MB2(0xCEFA), /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCA1), + MB2(0xC4D2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEFB), MB2(0xDEFD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1B2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFA1), MB2(0xDEF9), + 0x0000, MB2(0xDEF3), 0x0000, 0x0000, /* 6F40 */ + 0x0000, MB2(0xB4C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7E9), 0x0000, 0x0000, 0x0000, + MB2(0xDFAF), 0x0000, 0x0000, MB2(0xDFAA), + MB2(0xC0F8), 0x0000, 0x0000, MB2(0xB3E3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + MB2(0xBDE1), 0x0000, MB2(0xDFB3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFAC), MB2(0xC4AC), MB2(0xDFA9), + MB2(0xC4D9), 0x0000, 0x0000, 0x0000, + MB2(0xDFCC), 0x0000, 0x0000, 0x0000, + MB2(0xDFA6), 0x0000, MB2(0xDFA5), 0x0000, + MB2(0xDFAE), 0x0000, 0x0000, 0x0000, + MB2(0xDFA8), MB2(0xDFA7), MB2(0xDFAD), 0x0000, /* 6F80 */ + MB2(0xC0A1), 0x0000, MB2(0xDFA4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFB0), 0x0000, + 0x0000, MB2(0xDFB1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFB6), 0x0000, MB2(0xDFB5), /* 6FA0 */ + MB2(0xDFB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFBA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5C3), 0x0000, MB2(0xDFB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7E3), MB2(0xC2F9), MB2(0xDFB2), MB2(0xC7BB), /* 6FC0 */ + 0x0000, 0x0000, MB2(0xDFB9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFBE), MB2(0xDFBC), 0x0000, 0x0000, + MB2(0xDFBF), 0x0000, 0x0000, MB2(0xDFC2), + 0x0000, 0x0000, 0x0000, MB2(0xDFBB), + MB2(0xB9EA), MB2(0xC7A8), 0x0000, 0x0000, /* 6FE0 */ + MB2(0xDEB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDF4), + MB2(0xDFBD), 0x0000, MB2(0xDFC1), MB2(0xC2F5), + 0x0000, MB2(0xDFC0), 0x0000, MB2(0xDFAB), + 0x0000, 0x0000, MB2(0xEFE9), 0x0000, + 0x0000, 0x0000, MB2(0xDFC5), 0x0000, + 0x0000, 0x0000, MB2(0xDFC9), 0x0000, + 0x0000, MB2(0xDFC7), 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFC3), 0x0000, MB2(0xDFC4), + 0x0000, 0x0000, 0x0000, MB2(0xDFC8), + 0x0000, MB2(0xDFC6), 0x0000, 0x0000, + 0x0000, MB2(0xC9CE), 0x0000, 0x0000, + MB2(0xDFCE), 0x0000, MB2(0xDFCB), MB2(0xDFCA), + 0x0000, MB2(0xDFCD), MB2(0xC6D4), MB2(0xDFCF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, MB2(0xC3F5), MB2(0xC2ED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0A5), 0x0000, 0x0000, 0x0000, + MB2(0xDFD0), 0x0000, MB2(0xDFD2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFD1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEF5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFD4), /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2D0), + 0x0000, 0x0000, 0x0000, MB2(0xC5F4), + MB2(0xB3A5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5E4), 0x0000, 0x0000, 0x0000, + MB2(0xBCDE), MB2(0xBAD2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFA7), MB2(0xBFE6), 0x0000, + 0x0000, 0x0000, MB2(0xB1EA), 0x0000, + 0x0000, 0x0000, MB2(0xDFD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFD5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFD9), MB2(0xC3BA), MB2(0xDFDC), MB2(0xDFD7), + 0x0000, 0x0000, 0x0000, MB2(0xDFDB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFDA), MB2(0xC5C0), MB2(0xB0D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEF5), 0x0000, 0x0000, MB2(0xDFDE), + 0x0000, 0x0000, 0x0000, MB2(0xB1A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE0), 0x0000, 0x0000, + 0x0000, MB2(0xDFDF), 0x0000, MB2(0xDFDD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFD8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBA3), 0x0000, 0x0000, + 0x0000, MB2(0xDFE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1EB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE4), MB2(0xCAB2), 0x0000, + MB2(0xDFE3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCB5), 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, MB2(0xBEC7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEC6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEFB), 0x0000, 0x0000, + MB2(0xDFEA), 0x0000, MB2(0xC0F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE6), MB2(0xDFEB), 0x0000, + 0x0000, MB2(0xB1EC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFE9), 0x0000, /* 7160 */ + MB2(0xC7E1), MB2(0xDFE5), MB2(0xDFE8), MB2(0xBEC8), + 0x0000, MB2(0xC8D1), 0x0000, 0x0000, + MB2(0xDFEC), 0x0000, MB2(0xBCD1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0FA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + MB2(0xDFEF), 0x0000, 0x0000, 0x0000, + MB2(0xDFE7), 0x0000, MB2(0xB7A7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDD0), MB2(0xDFF0), 0x0000, 0x0000, + 0x0000, MB2(0xF4A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDCF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFF1), 0x0000, 0x0000, 0x0000, + MB2(0xDFF2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFF4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFF5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7B3), /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5F5), MB2(0xDFF7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFF9), 0x0000, + MB2(0xCED5), 0x0000, MB2(0xDFF6), 0x0000, + MB2(0xDFF8), MB2(0xB1ED), 0x0000, MB2(0xDFF3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3DB), + MB2(0xDFFA), 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, MB2(0xC1E7), MB2(0xBBB8), MB2(0xDFFC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFFB), MB2(0xBFA4), MB2(0xD2D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFFD), 0x0000, 0x0000, + 0x0000, MB2(0xE0A1), 0x0000, MB2(0xDFEE), + MB2(0xDFFE), 0x0000, 0x0000, MB2(0xE0A2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, MB2(0xC7FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0A3), 0x0000, 0x0000, + MB2(0xE0A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0A5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0A6), 0x0000, MB2(0xC4DE), 0x0000, + MB2(0xE0A8), MB2(0xE0A7), 0x0000, 0x0000, + MB2(0xE0A9), 0x0000, MB2(0xE0AA), 0x0000, + 0x0000, MB2(0xBCDF), MB2(0xC9E3), 0x0000, + 0x0000, 0x0000, MB2(0xCCEC), MB2(0xE0AB), + MB2(0xE0AC), MB2(0xC1D6), MB2(0xBCA4), MB2(0xE0AD), + MB2(0xE0AE), 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, MB2(0xE0AF), MB2(0xCAD2), + MB2(0xC8C7), 0x0000, 0x0000, MB2(0xE0B0), + MB2(0xC7D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0B1), MB2(0xB2E7), 0x0000, MB2(0xB5ED), + 0x0000, MB2(0xCCC6), 0x0000, MB2(0xCCB6), + 0x0000, MB2(0xB2B4), MB2(0xCFB4), 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, MB2(0xCBD2), + 0x0000, MB2(0xCAAA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0B7), 0x0000, + MB2(0xE0B2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6C3), 0x0000, 0x0000, + 0x0000, MB2(0xB8A3), MB2(0xE0B3), 0x0000, + MB2(0xBAD4), MB2(0xE0B5), MB2(0xE0B4), 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0B7), 0x0000, + 0x0000, 0x0000, MB2(0xE0B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5BE), 0x0000, MB2(0xE0B9), 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0BA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8A4), 0x0000, 0x0000, MB2(0xC8C8), + 0x0000, 0x0000, MB2(0xE0BC), 0x0000, + 0x0000, 0x0000, MB2(0xBEF5), 0x0000, + 0x0000, MB2(0xE0BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6B8), MB2(0xE0BD), /* 72C0 */ + MB2(0xE0BF), 0x0000, MB2(0xE0BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C0), 0x0000, + MB2(0xB8D1), 0x0000, MB2(0xE0C1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6E9), + 0x0000, MB2(0xC1C0), 0x0000, MB2(0xB9FD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0C3), MB2(0xE0C4), MB2(0xE0C2), 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCED), 0x0000, 0x0000, + MB2(0xC6C8), MB2(0xB6B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0C6), + MB2(0xC3AC), MB2(0xE0C5), 0x0000, 0x0000, + MB2(0xCFB5), MB2(0xC7E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0CB), MB2(0xE0C8), + 0x0000, 0x0000, 0x0000, MB2(0xCCD4), + MB2(0xE0CA), MB2(0xE0CC), 0x0000, MB2(0xCEC4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, MB2(0xE0D0), 0x0000, 0x0000, + 0x0000, MB2(0xE0CF), MB2(0xC3F6), MB2(0xC7AD), + 0x0000, 0x0000, MB2(0xB8A5), MB2(0xE0CE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0CD), 0x0000, MB2(0xCDB1), MB2(0xCDB2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D1), MB2(0xB1EE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + MB2(0xB9F6), MB2(0xBBE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D2), MB2(0xE0D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDC3), /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D7), 0x0000, MB2(0xE0D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D8), 0x0000, MB2(0xB3CD), 0x0000, + 0x0000, MB2(0xE0DA), 0x0000, 0x0000, + MB2(0xE0D9), 0x0000, MB2(0xE0DC), MB2(0xE0DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + MB2(0xB8BC), 0x0000, 0x0000, MB2(0xCEA8), + 0x0000, MB2(0xB6CC), 0x0000, MB2(0xB2A6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEE8), MB2(0xE0DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E1), 0x0000, MB2(0xB2D1), 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DD), 0x0000, MB2(0xBBB9), 0x0000, + 0x0000, MB2(0xC4C1), MB2(0xE0DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0E4), 0x0000, + MB2(0xBCEE), 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, MB2(0xE0E2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7BE), 0x0000, + 0x0000, MB2(0xC8C9), MB2(0xE0E3), 0x0000, + 0x0000, MB2(0xE0FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8BD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5E5), /* 7400 */ + 0x0000, MB2(0xE0E6), MB2(0xCDFD), 0x0000, + 0x0000, MB2(0xCEB0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2F6), 0x0000, /* 7420 */ + 0x0000, MB2(0xE0E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0EA), MB2(0xCED6), + MB2(0xB6D7), MB2(0xC8FC), MB2(0xC7CA), 0x0000, + 0x0000, 0x0000, MB2(0xE0EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0ED), + 0x0000, MB2(0xE0F0), 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0EC), 0x0000, 0x0000, + 0x0000, MB2(0xE0EF), MB2(0xB8EA), MB2(0xB1CD), + MB2(0xE0F1), 0x0000, MB2(0xBFF0), MB2(0xE0EE), + MB2(0xCEDC), 0x0000, 0x0000, MB2(0xE0F4), /* 7460 */ + MB2(0xF4A4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0F2), MB2(0xE0F5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E7), + MB2(0xE0F3), 0x0000, 0x0000, MB2(0xBABC), + 0x0000, 0x0000, MB2(0xE0F6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDFE), /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F9), 0x0000, + 0x0000, 0x0000, MB2(0xE0E5), 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCA5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0FB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0FC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1BB), 0x0000, 0x0000, 0x0000, + MB2(0xE1A1), 0x0000, MB2(0xC9BB), MB2(0xE1A2), /* 74E0 */ + 0x0000, 0x0000, MB2(0xB4A4), MB2(0xE1A3), + 0x0000, MB2(0xE1A4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1A5), 0x0000, + MB2(0xE1A7), MB2(0xE1A8), MB2(0xE1A6), 0x0000, + 0x0000, 0x0000, MB2(0xC9D3), MB2(0xE1AA), + MB2(0xE1A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1AC), /* 7500 */ + MB2(0xE1AB), MB2(0xE1AD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1AE), MB2(0xE1B0), MB2(0xE1AF), 0x0000, + 0x0000, MB2(0xB9F9), 0x0000, MB2(0xE1B2), + 0x0000, MB2(0xE1B1), 0x0000, 0x0000, + MB2(0xB4C5), 0x0000, MB2(0xBFD3), 0x0000, + MB2(0xC5BC), 0x0000, MB2(0xE1B3), MB2(0xC0B8), + 0x0000, 0x0000, 0x0000, MB2(0xBBBA), /* 7520 */ + 0x0000, MB2(0xB1F9), MB2(0xE1B4), 0x0000, + MB2(0xCDD1), 0x0000, 0x0000, MB2(0xCAE3), + MB2(0xE1B5), 0x0000, 0x0000, 0x0000, + MB2(0xC5C4), MB2(0xCDB3), MB2(0xB9C3), MB2(0xBFBD), + 0x0000, 0x0000, 0x0000, MB2(0xC3CB), + MB2(0xD2B4), 0x0000, MB2(0xC4AE), MB2(0xB2E8), + MB2(0xE1B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + MB2(0xE1B7), 0x0000, MB2(0xE1BC), 0x0000, + 0x0000, MB2(0xE1BA), MB2(0xE1B9), MB2(0xDAC2), + MB2(0xB3A6), MB2(0xE1B8), 0x0000, MB2(0xB0DA), + 0x0000, MB2(0xC8AA), 0x0000, 0x0000, + MB2(0xC8CA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB1), MB2(0xE1BD), MB2(0xE1BB), + MB2(0xC3DC), MB2(0xC0A6), 0x0000, 0x0000, + MB2(0xC8AB), 0x0000, MB2(0xC9AD), 0x0000, /* 7560 */ + MB2(0xE1BF), MB2(0xCEAC), MB2(0xB7CD), MB2(0xE1C0), + 0x0000, MB2(0xE1BE), MB2(0xC8D6), MB2(0xE1C1), + 0x0000, MB2(0xE1C2), 0x0000, 0x0000, + MB2(0xB0DB), 0x0000, 0x0000, MB2(0xBEF6), + MB2(0xE1C7), 0x0000, MB2(0xE1C4), MB2(0xC6ED), + MB2(0xE1C3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5A6), + 0x0000, 0x0000, MB2(0xE1CA), 0x0000, /* 7580 */ + 0x0000, 0x0000, MB2(0xE1C5), MB2(0xE1C6), + 0x0000, MB2(0xE1C9), MB2(0xE1C8), MB2(0xC9A5), + 0x0000, 0x0000, MB2(0xC1C2), MB2(0xC1C1), + 0x0000, MB2(0xB5BF), 0x0000, 0x0000, + MB2(0xE1CB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1CC), 0x0000, + 0x0000, MB2(0xE1CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1CF), /* 75A0 */ + 0x0000, MB2(0xE1CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1D6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1D7), MB2(0xC8E8), MB2(0xE1D1), + 0x0000, MB2(0xE1D3), 0x0000, 0x0000, + MB2(0xE1D5), MB2(0xBFBE), 0x0000, 0x0000, + MB2(0xE1D6), MB2(0xE1D4), MB2(0xBCC0), 0x0000, + 0x0000, 0x0000, MB2(0xE1D0), MB2(0xE1D2), /* 75C0 */ + 0x0000, MB2(0xC9C2), 0x0000, MB2(0xBEC9), + 0x0000, 0x0000, MB2(0xE1D9), 0x0000, + 0x0000, MB2(0xE1D8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1DA), 0x0000, + MB2(0xBCA6), MB2(0xBAAF), 0x0000, 0x0000, + MB2(0xC5F7), MB2(0xE1DB), 0x0000, MB2(0xC4CB), + 0x0000, 0x0000, MB2(0xE1DD), 0x0000, + 0x0000, 0x0000, MB2(0xCEA1), MB2(0xE1DC), /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E2), 0x0000, MB2(0xE1E4), MB2(0xE1E5), + MB2(0xC3D4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1E3), 0x0000, + MB2(0xE1E0), 0x0000, MB2(0xE1DE), MB2(0xE1DF), + 0x0000, MB2(0xE1E1), 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1E8), 0x0000, MB2(0xE1E6), + 0x0000, MB2(0xE1E7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1E9), + MB2(0xE1EB), MB2(0xE1EC), MB2(0xE1ED), 0x0000, /* 7620 */ + MB2(0xE1EE), 0x0000, 0x0000, MB2(0xE1EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1F0), 0x0000, 0x0000, 0x0000, + MB2(0xE1EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEC5), 0x0000, /* 7640 */ + 0x0000, 0x0000, MB2(0xE1F4), MB2(0xE1F2), + MB2(0xE1F3), 0x0000, 0x0000, 0x0000, + MB2(0xB4E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCFE), 0x0000, + 0x0000, 0x0000, MB2(0xCACA), 0x0000, + MB2(0xE1F6), 0x0000, 0x0000, 0x0000, + MB2(0xE1F5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1F7), MB2(0xE1F8), 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1FC), + MB2(0xE1F9), MB2(0xE1FA), MB2(0xE1FB), 0x0000, + MB2(0xE1FD), 0x0000, 0x0000, 0x0000, + MB2(0xE1FE), 0x0000, MB2(0xE2A1), 0x0000, + 0x0000, 0x0000, MB2(0xE2A2), 0x0000, + MB2(0xE2A3), 0x0000, MB2(0xC8AF), MB2(0xC5D0), + MB2(0xE2A4), MB2(0xC7F2), MB2(0xC9B4), 0x0000, + MB2(0xE2A5), 0x0000, 0x0000, MB2(0xE2A6), /* 7680 */ + MB2(0xC5AA), 0x0000, MB2(0xB3A7), MB2(0xB9C4), + MB2(0xE2A7), 0x0000, 0x0000, MB2(0xE2A8), + 0x0000, 0x0000, MB2(0xE2A9), 0x0000, + MB2(0xBBA9), 0x0000, 0x0000, MB2(0xE2AB), + 0x0000, 0x0000, MB2(0xE2AA), 0x0000, + 0x0000, MB2(0xE2AC), MB2(0xE2AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8E9), 0x0000, + MB2(0xE2AE), 0x0000, 0x0000, 0x0000, + MB2(0xE2AF), 0x0000, 0x0000, MB2(0xF3E9), + MB2(0xE2B0), MB2(0xE2B1), MB2(0xE2B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBAE), + 0x0000, 0x0000, MB2(0xE2B3), MB2(0xC7D6), /* 76C0 */ + 0x0000, 0x0000, MB2(0xCBDF), 0x0000, + MB2(0xB1CE), 0x0000, MB2(0xB1D7), 0x0000, + 0x0000, MB2(0xE2B4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2B6), 0x0000, + 0x0000, 0x0000, MB2(0xE2B5), MB2(0xC5F0), + 0x0000, 0x0000, 0x0000, MB2(0xC0B9), + MB2(0xDDB9), 0x0000, MB2(0xE2B7), MB2(0xCCC1), + 0x0000, MB2(0xE2B8), 0x0000, MB2(0xB4C6), /* 76E0 */ + MB2(0xC8D7), MB2(0xE2B9), 0x0000, MB2(0xE2BA), + 0x0000, 0x0000, MB2(0xE2BB), 0x0000, + 0x0000, 0x0000, MB2(0xCCDC), 0x0000, + 0x0000, 0x0000, MB2(0xCCD5), 0x0000, + MB2(0xC4BE), 0x0000, 0x0000, 0x0000, + MB2(0xC1EA), 0x0000, 0x0000, MB2(0xE2BD), + 0x0000, 0x0000, MB2(0xBDE2), 0x0000, + 0x0000, MB2(0xBECA), 0x0000, 0x0000, /* 7700 */ + MB2(0xE2C0), 0x0000, 0x0000, MB2(0xE2BF), + MB2(0xE2BE), MB2(0xC8FD), 0x0000, MB2(0xB4C7), + MB2(0xB8A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2C6), + 0x0000, 0x0000, MB2(0xE2C3), MB2(0xBFBF), + MB2(0xCCB2), 0x0000, 0x0000, 0x0000, /* 7720 */ + MB2(0xE2C2), MB2(0xE2C4), MB2(0xE2C5), 0x0000, + 0x0000, MB2(0xE2C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2C7), + MB2(0xE2C8), 0x0000, MB2(0xC4AF), 0x0000, + MB2(0xB4E3), 0x0000, 0x0000, 0x0000, + MB2(0xC3E5), 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2CA), MB2(0xE2CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFE7), 0x0000, MB2(0xC6C4), /* 7760 */ + 0x0000, MB2(0xE2CE), MB2(0xCBD3), 0x0000, + MB2(0xE2CB), 0x0000, 0x0000, MB2(0xE2CC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2D1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2D0), MB2(0xE2CF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D3), + 0x0000, 0x0000, MB2(0xE2D2), 0x0000, + 0x0000, MB2(0xE2D4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2D6), 0x0000, + MB2(0xE2D5), 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, MB2(0xCACD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDD6), MB2(0xCEC6), 0x0000, 0x0000, + MB2(0xE2D7), 0x0000, 0x0000, MB2(0xC6B7), + 0x0000, 0x0000, MB2(0xE2D8), 0x0000, + 0x0000, MB2(0xE2D9), 0x0000, MB2(0xE2DD), + MB2(0xE2DB), MB2(0xE2DC), 0x0000, MB2(0xE2DA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2E0), + 0x0000, 0x0000, MB2(0xE2E1), MB2(0xCCB7), + MB2(0xE2E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCF0), MB2(0xE2E3), /* 77E0 */ + 0x0000, MB2(0xC3CE), 0x0000, MB2(0xC7EA), + 0x0000, MB2(0xB6EB), 0x0000, 0x0000, + 0x0000, MB2(0xC3BB), MB2(0xE2E4), MB2(0xB6BA), + 0x0000, 0x0000, 0x0000, MB2(0xC0D0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBABD), 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2E7), 0x0000, + MB2(0xB8A6), MB2(0xBAD5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E9), 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, MB2(0xC5D6), MB2(0xBAD6), MB2(0xB5CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBA4), 0x0000, + MB2(0xC7CB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5D7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9DC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, MB2(0xE2EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBECB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEB2), + MB2(0xB9C5), 0x0000, 0x0000, MB2(0xB8A7), + 0x0000, 0x0000, MB2(0xC8A3), 0x0000, + MB2(0xE2ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2EF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8EB), 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, MB2(0xE2EE), MB2(0xC4F6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2F1), MB2(0xB3B7), MB2(0xE2EC), 0x0000, + 0x0000, MB2(0xC8EA), 0x0000, MB2(0xB1B0), + 0x0000, MB2(0xBAEC), 0x0000, MB2(0xCFD2), + 0x0000, 0x0000, MB2(0xE2F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F2), /* 78A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCACB), + 0x0000, MB2(0xC0D9), MB2(0xE2F4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2F3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3CE), 0x0000, + MB2(0xE2FB), 0x0000, MB2(0xE2FA), 0x0000, + 0x0000, MB2(0xBCA7), 0x0000, 0x0000, /* 78C0 */ + 0x0000, MB2(0xE2FC), MB2(0xE2F7), 0x0000, + 0x0000, 0x0000, MB2(0xE2FD), MB2(0xE2F8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8D8), MB2(0xE2F6), 0x0000, 0x0000, + MB2(0xE2F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE3A1), + MB2(0xCBE1), 0x0000, 0x0000, 0x0000, + MB2(0xE2FE), 0x0000, 0x0000, MB2(0xB0EB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3A3), 0x0000, 0x0000, + 0x0000, MB2(0xBECC), 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, MB2(0xE3A5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1C3), 0x0000, + 0x0000, MB2(0xE3A7), MB2(0xE3A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, MB2(0xE2E8), 0x0000, + 0x0000, 0x0000, MB2(0xE2EA), MB2(0xE3AA), + MB2(0xE3A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCA8), 0x0000, + MB2(0xCEE9), 0x0000, MB2(0xBCD2), 0x0000, + MB2(0xE3AB), MB2(0xB7B7), 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, MB2(0xB5C0), + MB2(0xB5A7), MB2(0xBBE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDB4), 0x0000, 0x0000, MB2(0xE3B1), + 0x0000, MB2(0xE3B0), MB2(0xC1C4), MB2(0xE3AD), + 0x0000, 0x0000, MB2(0xE3AF), 0x0000, + 0x0000, MB2(0xBDCB), MB2(0xBFC0), MB2(0xE3AE), + MB2(0xE3AC), 0x0000, MB2(0xC7AA), 0x0000, /* 7960 */ + 0x0000, MB2(0xBECD), 0x0000, 0x0000, + MB2(0xC9BC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5F8), + 0x0000, 0x0000, MB2(0xE3B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3B3), + MB2(0xE3C9), MB2(0xB6D8), 0x0000, 0x0000, /* 7980 */ + MB2(0xCFBD), MB2(0xC1B5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3B4), 0x0000, + 0x0000, MB2(0xB2D2), MB2(0xC4F7), MB2(0xCAA1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, MB2(0xB5FA), MB2(0xE3B6), + 0x0000, 0x0000, MB2(0xE3B8), 0x0000, + 0x0000, 0x0000, MB2(0xE3B9), 0x0000, + MB2(0xC7A9), 0x0000, 0x0000, MB2(0xE3BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3BB), MB2(0xE3BC), 0x0000, + 0x0000, MB2(0xB6D9), MB2(0xB2D3), MB2(0xC6C5), + MB2(0xBDA8), MB2(0xBBE4), 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3BD), 0x0000, MB2(0xBDA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2CA), MB2(0xC9C3), 0x0000, + 0x0000, MB2(0xE3BE), 0x0000, 0x0000, + MB2(0xC8EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1C5), + 0x0000, MB2(0xE3C1), 0x0000, MB2(0xE3C2), /* 79E0 */ + MB2(0xC7E9), 0x0000, MB2(0xBFC1), MB2(0xE3BF), + 0x0000, MB2(0xC3E1), 0x0000, 0x0000, + MB2(0xE3C0), 0x0000, 0x0000, 0x0000, + MB2(0xBECE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0DC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5A9), 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3C3), 0x0000, 0x0000, MB2(0xC4F8), + 0x0000, MB2(0xE3C4), MB2(0xC0C7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCAD), 0x0000, 0x0000, MB2(0xC9A3), + MB2(0xE3C5), MB2(0xE3C6), MB2(0xC3D5), 0x0000, + MB2(0xCEC7), 0x0000, 0x0000, MB2(0xE3C8), + MB2(0xE3C7), 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCEF), 0x0000, + 0x0000, MB2(0xE3CA), MB2(0xB0F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3CD), + 0x0000, 0x0000, 0x0000, MB2(0xE3CB), + MB2(0xB2D4), MB2(0xB7CE), MB2(0xE3CC), MB2(0xB9C6), + MB2(0xB9F2), 0x0000, MB2(0xCAE6), MB2(0xE3CE), /* 7A40 */ + 0x0000, 0x0000, MB2(0xCBD4), 0x0000, + 0x0000, MB2(0xE3D0), 0x0000, 0x0000, + 0x0000, MB2(0xC0D1), MB2(0xB1CF), MB2(0xB2BA), + MB2(0xB0AC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3CF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3D1), MB2(0xE3D2), MB2(0xBEF7), /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3D3), 0x0000, MB2(0xB3CF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3D5), 0x0000, 0x0000, 0x0000, + MB2(0xB7EA), 0x0000, MB2(0xB5E6), 0x0000, + 0x0000, MB2(0xE3D6), MB2(0xB6F5), 0x0000, + 0x0000, MB2(0xE3D7), 0x0000, MB2(0xC0FC), + 0x0000, MB2(0xC6CD), 0x0000, MB2(0xC0E0), /* 7A80 */ + MB2(0xBAF5), 0x0000, 0x0000, 0x0000, + MB2(0xE3D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3E2), MB2(0xC1EB), + 0x0000, MB2(0xE3DA), MB2(0xE3DC), MB2(0xE3D9), + MB2(0xE3DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7A2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3DD), MB2(0xB7A6), 0x0000, + 0x0000, 0x0000, MB2(0xB5E7), MB2(0xCDD2), + MB2(0xE3DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3E0), 0x0000, + 0x0000, 0x0000, MB2(0xB1AE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3E3), + 0x0000, 0x0000, 0x0000, MB2(0xB3F6), /* 7AC0 */ + MB2(0xE3E2), MB2(0xE3E1), 0x0000, MB2(0xE3E5), + MB2(0xE3DE), 0x0000, MB2(0xE3E6), MB2(0xCEA9), + 0x0000, MB2(0xE3E7), 0x0000, MB2(0xE3E8), + 0x0000, 0x0000, MB2(0xD4F4), MB2(0xE3EA), + 0x0000, MB2(0xE3E9), 0x0000, 0x0000, + 0x0000, MB2(0xE3EB), MB2(0xE3EC), 0x0000, + MB2(0xCEB5), MB2(0xE3ED), 0x0000, MB2(0xF0EF), + MB2(0xBECF), MB2(0xE3EE), MB2(0xE3EF), MB2(0xBDD7), /* 7AE0 */ + 0x0000, MB2(0xC6B8), MB2(0xE3F0), 0x0000, + 0x0000, 0x0000, MB2(0xC3A8), 0x0000, + 0x0000, MB2(0xE3F1), 0x0000, MB2(0xC3BC), + MB2(0xE3F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6A5), 0x0000, + MB2(0xD1BF), MB2(0xC3DD), MB2(0xBCB3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C8), + 0x0000, 0x0000, MB2(0xE3F3), 0x0000, /* 7B00 */ + MB2(0xE4A2), 0x0000, MB2(0xE3F6), 0x0000, + MB2(0xB5E8), 0x0000, MB2(0xE3F5), MB2(0xE4A4), + 0x0000, 0x0000, 0x0000, MB2(0xE3F4), + 0x0000, MB2(0xBED0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3F8), MB2(0xE3F9), 0x0000, MB2(0xC5AB), + 0x0000, 0x0000, MB2(0xE3FA), 0x0000, + MB2(0xB3DE), 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, MB2(0xBFDA), MB2(0xC9E4), 0x0000, + MB2(0xE3FC), 0x0000, 0x0000, 0x0000, + MB2(0xC2E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3F7), + 0x0000, MB2(0xE3FB), MB2(0xE3FD), 0x0000, + 0x0000, MB2(0xBAFB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, MB2(0xE4A6), MB2(0xC9AE), 0x0000, + MB2(0xC8A6), MB2(0xC5F9), 0x0000, MB2(0xB6DA), + MB2(0xE4A5), MB2(0xE4A3), 0x0000, MB2(0xC8B5), + MB2(0xE3FE), MB2(0xC3DE), MB2(0xC5FB), 0x0000, + MB2(0xC5FA), 0x0000, MB2(0xBAF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, MB2(0xE4A8), 0x0000, MB2(0xE4AA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4AD), 0x0000, MB2(0xE4AE), 0x0000, + MB2(0xE4AB), MB2(0xE4AC), 0x0000, 0x0000, + MB2(0xE4A9), MB2(0xE4A7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, MB2(0xCACF), MB2(0xB2D5), + 0x0000, 0x0000, 0x0000, MB2(0xE4B5), + 0x0000, MB2(0xE4B2), 0x0000, MB2(0xE4B7), + 0x0000, 0x0000, MB2(0xE4B6), 0x0000, + MB2(0xC7F3), MB2(0xCCA7), 0x0000, MB2(0xBBBB), + MB2(0xE4B0), MB2(0xE4B9), MB2(0xE4B4), 0x0000, + MB2(0xE4B3), MB2(0xE4AF), 0x0000, MB2(0xE4B1), + 0x0000, MB2(0xB4C9), 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3BD), 0x0000, + 0x0000, MB2(0xC0FD), 0x0000, 0x0000, + 0x0000, MB2(0xC8A2), 0x0000, 0x0000, + MB2(0xE4BE), 0x0000, 0x0000, 0x0000, + MB2(0xC8A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0E1), MB2(0xE4BB), 0x0000, 0x0000, /* 7BC0 */ + MB2(0xC8CF), 0x0000, MB2(0xE4BF), MB2(0xCAD3), + 0x0000, MB2(0xC3DB), 0x0000, MB2(0xE4BA), + MB2(0xE4BC), 0x0000, 0x0000, MB2(0xE4BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4C0), 0x0000, 0x0000, + MB2(0xBCC4), 0x0000, 0x0000, 0x0000, /* 7BE0 */ + MB2(0xC6C6), MB2(0xE4C5), MB2(0xE4C4), 0x0000, + 0x0000, MB2(0xE4C1), 0x0000, 0x0000, + 0x0000, MB2(0xCFB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4CA), + 0x0000, 0x0000, MB2(0xE4CE), MB2(0xE4CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4C7), 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, MB2(0xE4C8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4CD), 0x0000, 0x0000, + 0x0000, MB2(0xE4C2), MB2(0xD2D5), MB2(0xE4C9), + MB2(0xE4C3), 0x0000, 0x0000, MB2(0xE4CC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4D2), + 0x0000, MB2(0xB4CA), 0x0000, MB2(0xE4CF), /* 7C20 */ + 0x0000, 0x0000, 0x0000, MB2(0xE4D0), + 0x0000, 0x0000, MB2(0xE4D1), MB2(0xE4D4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4D3), + MB2(0xC8F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D5), MB2(0xCEFC), MB2(0xCAED), + MB2(0xE4DA), 0x0000, 0x0000, MB2(0xE4D7), /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4D6), MB2(0xC0D2), 0x0000, MB2(0xE4D9), + MB2(0xE4DB), 0x0000, 0x0000, 0x0000, + MB2(0xE4D8), 0x0000, MB2(0xE4DF), 0x0000, + MB2(0xE4DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4DD), + MB2(0xE4C6), 0x0000, 0x0000, 0x0000, /* 7C60 */ + MB2(0xE4DE), MB2(0xE4E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4E1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC6), + 0x0000, MB2(0xE4E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCE2), 0x0000, + 0x0000, MB2(0xB6CE), MB2(0xB7A9), MB2(0xE4E3), /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAB4), 0x0000, MB2(0xBFE8), + 0x0000, MB2(0xCCB0), 0x0000, 0x0000, + MB2(0xE4E4), 0x0000, MB2(0xCEB3), 0x0000, + 0x0000, MB2(0xC7F4), 0x0000, MB2(0xC1C6), + MB2(0xC7B4), 0x0000, 0x0000, MB2(0xBDCD), + 0x0000, 0x0000, 0x0000, MB2(0xB0C0), + 0x0000, MB2(0xE4E9), MB2(0xE4E7), 0x0000, /* 7CA0 */ + MB2(0xE4E5), MB2(0xB4A1), 0x0000, MB2(0xBED1), + MB2(0xE4EA), 0x0000, 0x0000, MB2(0xE4E8), + 0x0000, MB2(0xE4E6), MB2(0xE4EE), 0x0000, + 0x0000, MB2(0xE4ED), MB2(0xE4EC), MB2(0xE4EB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4EF), 0x0000, 0x0000, + 0x0000, MB2(0xE4F0), MB2(0xC0BA), 0x0000, + MB2(0xE4F1), 0x0000, MB2(0xE4F3), 0x0000, /* 7CC0 */ + 0x0000, MB2(0xE4F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8D2), 0x0000, + 0x0000, 0x0000, MB2(0xC1B8), 0x0000, + 0x0000, 0x0000, MB2(0xE4F5), 0x0000, + 0x0000, 0x0000, MB2(0xC5FC), 0x0000, + MB2(0xE4F4), 0x0000, 0x0000, 0x0000, + MB2(0xE4F6), 0x0000, MB2(0xCAB5), MB2(0xC1EC), + MB2(0xB9C7), 0x0000, MB2(0xE4F7), 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCEC8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4F9), + 0x0000, 0x0000, MB2(0xE4FA), 0x0000, + MB2(0xE4FB), 0x0000, MB2(0xE4FC), 0x0000, + MB2(0xBBE5), 0x0000, MB2(0xE4FD), MB2(0xB7CF), + 0x0000, 0x0000, MB2(0xB5EA), 0x0000, + MB2(0xB5AA), 0x0000, MB2(0xE5A1), 0x0000, /* 7D00 */ + MB2(0xCCF3), MB2(0xB9C8), MB2(0xE4FE), 0x0000, + 0x0000, 0x0000, MB2(0xE5A4), MB2(0xCCE6), + 0x0000, MB2(0xC7BC), 0x0000, 0x0000, + MB2(0xC9B3), 0x0000, 0x0000, 0x0000, + MB2(0xBDE3), MB2(0xE5A3), 0x0000, MB2(0xBCD3), + MB2(0xB9C9), MB2(0xBBE6), MB2(0xB5E9), MB2(0xCAB6), + MB2(0xE5A2), 0x0000, 0x0000, 0x0000, + MB2(0xC1C7), MB2(0xCBC2), MB2(0xBAF7), 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBE7), + MB2(0xC4DD), 0x0000, MB2(0xE5A7), MB2(0xCEDF), + MB2(0xBAD9), 0x0000, MB2(0xE5A8), MB2(0xBFC2), + 0x0000, MB2(0xE5AA), 0x0000, 0x0000, + 0x0000, MB2(0xBED2), MB2(0xBAB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5A9), + 0x0000, 0x0000, MB2(0xBDAA), MB2(0xB8BE), /* 7D40 */ + MB2(0xC1C8), MB2(0xE5A5), MB2(0xE5AB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5A6), + MB2(0xB7D0), 0x0000, MB2(0xE5AE), MB2(0xE5B2), + MB2(0xB7EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5AD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5B6), + 0x0000, 0x0000, MB2(0xB9CA), 0x0000, + 0x0000, MB2(0xCDED), MB2(0xB0BC), MB2(0xE5B3), /* 7D60 */ + 0x0000, 0x0000, MB2(0xB5EB), 0x0000, + MB2(0xE5B0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5B1), 0x0000, + 0x0000, MB2(0xC5FD), MB2(0xE5AF), MB2(0xE5AC), + 0x0000, MB2(0xB3A8), MB2(0xC0E4), 0x0000, + 0x0000, MB2(0xB8A8), 0x0000, 0x0000, + 0x0000, MB2(0xE5B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5B7), + 0x0000, 0x0000, 0x0000, MB2(0xE5B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7D1), MB2(0xC2B3), MB2(0xE5B9), + MB2(0xC1EE), 0x0000, 0x0000, MB2(0xE5C6), + 0x0000, 0x0000, MB2(0xE5C2), MB2(0xE5BC), /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5C0), + MB2(0xBCFA), MB2(0xB0DD), MB2(0xE5BB), MB2(0xE5C3), + MB2(0xE5C7), MB2(0xB9CB), MB2(0xCCD6), 0x0000, + MB2(0xC4D6), MB2(0xE5BD), 0x0000, 0x0000, + MB2(0xE5C5), 0x0000, MB2(0xE5BA), MB2(0xC3BE), + 0x0000, MB2(0xE5BF), MB2(0xB0BD), MB2(0xCCCA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE5BE), + 0x0000, 0x0000, MB2(0xB6DB), MB2(0xC8EC), + 0x0000, 0x0000, 0x0000, MB2(0xC1ED), + 0x0000, MB2(0xCED0), MB2(0xBDEF), 0x0000, + 0x0000, MB2(0xE5EE), 0x0000, 0x0000, + MB2(0xE5C8), 0x0000, MB2(0xC0FE), 0x0000, + MB2(0xE5C4), MB2(0xE5C9), MB2(0xE5CB), 0x0000, + MB2(0xC4F9), MB2(0xE5CE), 0x0000, 0x0000, /* 7DE0 */ + MB2(0xE5CA), 0x0000, 0x0000, 0x0000, + MB2(0xCAD4), MB2(0xB4CB), 0x0000, 0x0000, + MB2(0xCCCB), 0x0000, 0x0000, MB2(0xB0DE), + 0x0000, 0x0000, MB2(0xE5CD), 0x0000, + MB2(0xCEFD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5CC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1EF), 0x0000, 0x0000, /* 7E00 */ + MB2(0xC6EC), MB2(0xE5CF), 0x0000, 0x0000, + 0x0000, MB2(0xE5D6), MB2(0xE5D0), MB2(0xE5D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7FB), + 0x0000, 0x0000, MB2(0xBCCA), MB2(0xE5D5), + 0x0000, MB2(0xE5D2), MB2(0xE5D8), MB2(0xE5D1), /* 7E20 */ + 0x0000, 0x0000, MB2(0xBDC4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBA5), + 0x0000, 0x0000, MB2(0xBDCC), 0x0000, + 0x0000, MB2(0xE5D4), MB2(0xE5E0), 0x0000, + 0x0000, MB2(0xE5DC), 0x0000, MB2(0xE5DF), + 0x0000, MB2(0xE5DD), MB2(0xE5E1), MB2(0xE5DB), + 0x0000, MB2(0xE5C1), MB2(0xC0D3), 0x0000, + 0x0000, MB2(0xC8CB), 0x0000, MB2(0xE5DE), /* 7E40 */ + 0x0000, 0x0000, MB2(0xE5D9), 0x0000, + 0x0000, 0x0000, MB2(0xC1A1), MB2(0xB7D2), + 0x0000, MB2(0xBDAB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFA5), MB2(0xC1B6), MB2(0xE5E4), 0x0000, + 0x0000, MB2(0xE5E6), MB2(0xE5E7), 0x0000, + 0x0000, MB2(0xE5E3), MB2(0xE5E5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, MB2(0xE5DA), MB2(0xE5E2), + 0x0000, MB2(0xE5EA), MB2(0xE5E9), 0x0000, + 0x0000, MB2(0xCBFA), 0x0000, 0x0000, + MB2(0xB7AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5E8), 0x0000, MB2(0xE5EC), + MB2(0xE5EB), MB2(0xE5EF), 0x0000, MB2(0xE5F1), + 0x0000, 0x0000, MB2(0xBBBC), MB2(0xE5ED), /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5F2), MB2(0xE5F3), 0x0000, 0x0000, + MB2(0xE5F4), 0x0000, MB2(0xE5FA), MB2(0xC5BB), + MB2(0xE5F6), 0x0000, MB2(0xE5F5), MB2(0xE5F7), + MB2(0xE5F8), 0x0000, MB2(0xE5F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5FB), + MB2(0xE5FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4CC), 0x0000, + MB2(0xE5FD), 0x0000, MB2(0xE5FE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, MB2(0xE6A1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6A2), MB2(0xE6A3), MB2(0xE6A4), 0x0000, + MB2(0xE6A5), MB2(0xE6A6), 0x0000, 0x0000, + MB2(0xE6A8), MB2(0xE6A7), 0x0000, 0x0000, + MB2(0xE6A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6AA), + MB2(0xE6AB), 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, MB2(0xE6AE), + MB2(0xE6AC), MB2(0xE6AD), MB2(0xBAE1), MB2(0xB7D3), + 0x0000, 0x0000, MB2(0xC3D6), 0x0000, + MB2(0xC8B3), 0x0000, MB2(0xBDF0), 0x0000, + 0x0000, MB2(0xC7CD), 0x0000, MB2(0xC8ED), + MB2(0xE6AF), MB2(0xD8ED), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6B0), MB2(0xE6B2), /* 7F80 */ + 0x0000, MB2(0xCDE5), MB2(0xE6B1), MB2(0xE6B4), + MB2(0xE6B3), 0x0000, MB2(0xCDD3), 0x0000, + MB2(0xE6B5), 0x0000, MB2(0xC8FE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6B9), 0x0000, + 0x0000, MB2(0xE6B8), MB2(0xE6B7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6BA), /* 7FA0 */ + MB2(0xB7B2), 0x0000, 0x0000, 0x0000, + MB2(0xC1A2), MB2(0xB5C1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6BE), MB2(0xE6BB), + 0x0000, 0x0000, MB2(0xE6BC), 0x0000, + 0x0000, 0x0000, MB2(0xE6BF), 0x0000, + MB2(0xE6C0), MB2(0xE6BD), 0x0000, 0x0000, + 0x0000, MB2(0xB1A9), 0x0000, 0x0000, + 0x0000, MB2(0xB2A7), 0x0000, 0x0000, /* 7FC0 */ + 0x0000, MB2(0xE6C2), MB2(0xE6C3), 0x0000, + 0x0000, 0x0000, MB2(0xE6C4), 0x0000, + MB2(0xCDE2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDAC), 0x0000, + MB2(0xE6C6), MB2(0xE6C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFE9), MB2(0xE6C7), 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, MB2(0xE6C8), 0x0000, + 0x0000, MB2(0xE6C9), 0x0000, MB2(0xB4E5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4CD), 0x0000, 0x0000, MB2(0xE6CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6CB), 0x0000, MB2(0xCBDD), + MB2(0xCDE3), 0x0000, 0x0000, 0x0000, + MB2(0xCDD4), MB2(0xCFB7), 0x0000, MB2(0xB9CD), /* 8000 */ + MB2(0xE6CE), MB2(0xBCD4), MB2(0xE6CD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6CF), + MB2(0xBCA9), 0x0000, 0x0000, 0x0000, + MB2(0xC2D1), 0x0000, MB2(0xE6D0), 0x0000, + 0x0000, MB2(0xB9CC), 0x0000, MB2(0xCCD7), + MB2(0xE6D1), MB2(0xE6D2), 0x0000, 0x0000, + MB2(0xE6D3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6D4), 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCAA), + 0x0000, 0x0000, MB2(0xCCED), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6D7), + 0x0000, MB2(0xC3BF), 0x0000, MB2(0xE6D6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, MB2(0xE6D9), 0x0000, + 0x0000, 0x0000, MB2(0xE6D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6DA), 0x0000, + 0x0000, 0x0000, MB2(0xC0BB), 0x0000, + MB2(0xE6DB), 0x0000, MB2(0xE6DC), 0x0000, + 0x0000, 0x0000, MB2(0xCAB9), MB2(0xE6DD), + 0x0000, MB2(0xC1EF), MB2(0xE6DE), 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEFE), + MB2(0xE6E2), 0x0000, MB2(0xE6E1), MB2(0xE6E0), + MB2(0xC4B0), 0x0000, MB2(0xE6E3), MB2(0xBFA6), + 0x0000, MB2(0xE6E4), 0x0000, 0x0000, + 0x0000, MB2(0xE6E5), MB2(0xCFB8), MB2(0xE6E6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + MB2(0xE6E7), MB2(0xE6E9), MB2(0xE6E8), MB2(0xC8A5), + 0x0000, MB2(0xC6F9), 0x0000, MB2(0xCFBE), + MB2(0xC8A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6EB), + 0x0000, 0x0000, MB2(0xBED3), 0x0000, + MB2(0xC9AA), 0x0000, MB2(0xE6EC), MB2(0xE6EA), + 0x0000, MB2(0xB4CE), 0x0000, 0x0000, + 0x0000, MB2(0xB8D4), MB2(0xBBE8), 0x0000, /* 80A0 */ + 0x0000, MB2(0xC8EE), 0x0000, 0x0000, + 0x0000, MB2(0xB8AA), MB2(0xCBC3), 0x0000, + MB2(0xE6EF), MB2(0xE6ED), 0x0000, MB2(0xB9CE), + 0x0000, MB2(0xB9CF), MB2(0xB0E9), 0x0000, + MB2(0xBAE8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0DF), /* 80C0 */ + MB2(0xE6F4), 0x0000, MB2(0xC3C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7D8), 0x0000, MB2(0xC2DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F6), 0x0000, + 0x0000, MB2(0xE6F2), MB2(0xE6F5), MB2(0xE6F0), + 0x0000, MB2(0xE6F3), MB2(0xCBA6), 0x0000, + 0x0000, MB2(0xB8D5), 0x0000, 0x0000, /* 80E0 */ + MB2(0xB0FD), MB2(0xE6F1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6F8), + 0x0000, MB2(0xE6F9), 0x0000, 0x0000, + MB2(0xC6B9), 0x0000, 0x0000, 0x0000, + MB2(0xB6BB), 0x0000, 0x0000, 0x0000, + MB2(0xE7A6), MB2(0xC7BD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBE9), 0x0000, /* 8100 */ + 0x0000, MB2(0xB6BC), MB2(0xC0C8), MB2(0xCFC6), + MB2(0xCCAE), MB2(0xE6F7), MB2(0xC0D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5D3), MB2(0xE6FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FC), /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6FB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FD), + 0x0000, MB2(0xC3A6), 0x0000, MB2(0xC7BE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4B1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7A3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, MB2(0xE7A2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FE), + 0x0000, 0x0000, MB2(0xBFD5), 0x0000, + MB2(0xC9E5), MB2(0xE7A5), 0x0000, MB2(0xE7A4), + MB2(0xB9D0), MB2(0xCFD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, MB2(0xE7A9), MB2(0xE7AA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCF0), + 0x0000, 0x0000, MB2(0xE7A8), 0x0000, + MB2(0xB9F8), MB2(0xE7A7), 0x0000, 0x0000, + MB2(0xE7AB), 0x0000, 0x0000, 0x0000, + MB2(0xC4B2), MB2(0xCAA2), MB2(0xC1A3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2DC), + MB2(0xE7AF), 0x0000, MB2(0xE7B0), MB2(0xE7AC), /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7AD), 0x0000, MB2(0xE7AE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9D1), + 0x0000, 0x0000, 0x0000, MB2(0xE7B6), + 0x0000, MB2(0xE7B2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9E6), 0x0000, + MB2(0xCBEC), MB2(0xC9A8), 0x0000, 0x0000, + MB2(0xE7B1), 0x0000, 0x0000, MB2(0xE7B4), /* 81A0 */ + MB2(0xE7B3), 0x0000, 0x0000, 0x0000, + MB2(0xCBC4), MB2(0xE7B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7B8), 0x0000, 0x0000, MB2(0xC1B7), + 0x0000, MB2(0xE7B9), 0x0000, 0x0000, + MB2(0xE7BB), 0x0000, MB2(0xE7BF), 0x0000, + 0x0000, MB2(0xE7BC), MB2(0xE7BA), MB2(0xC7BF), + MB2(0xE7BD), 0x0000, MB2(0xE7BE), 0x0000, /* 81C0 */ + 0x0000, 0x0000, MB2(0xB2B2), 0x0000, + MB2(0xE7C5), MB2(0xE7C0), 0x0000, 0x0000, + 0x0000, MB2(0xE7C1), 0x0000, 0x0000, + 0x0000, MB2(0xE7C2), 0x0000, MB2(0xC2A1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7C4), MB2(0xE7C3), MB2(0xE7C6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7C7), + MB2(0xE7C8), 0x0000, 0x0000, MB2(0xBFC3), /* 81E0 */ + 0x0000, MB2(0xB2E9), 0x0000, MB2(0xE7C9), + MB2(0xCED7), 0x0000, MB2(0xBCAB), 0x0000, + 0x0000, MB2(0xBDAD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBEA), + MB2(0xC3D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7CA), MB2(0xE7CB), + MB2(0xB1B1), 0x0000, MB2(0xE7CC), 0x0000, + 0x0000, MB2(0xE7CD), MB2(0xE7CE), 0x0000, /* 8200 */ + 0x0000, MB2(0xE7CF), 0x0000, MB2(0xE7D0), + MB2(0xB6BD), MB2(0xDAAA), MB2(0xE7D1), 0x0000, + MB2(0xC0E5), MB2(0xE7D2), MB2(0xBCCB), 0x0000, + MB2(0xE7D3), 0x0000, MB2(0xD0B0), 0x0000, + 0x0000, 0x0000, MB2(0xE7D4), MB2(0xCADE), + MB2(0xB4DC), 0x0000, 0x0000, MB2(0xC1A4), + MB2(0xBDD8), 0x0000, MB2(0xC9F1), MB2(0xBDAE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7D5), MB2(0xB9D2), MB2(0xE7D6), + MB2(0xC8CC), 0x0000, MB2(0xE7E4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7D8), + 0x0000, MB2(0xC2C9), MB2(0xC7F5), MB2(0xB8BF), + MB2(0xE7D7), MB2(0xC1A5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7D9), 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, MB2(0xC4FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7DB), MB2(0xE7DA), MB2(0xE7DD), 0x0000, + 0x0000, MB2(0xE7DC), 0x0000, MB2(0xE7DE), + 0x0000, 0x0000, MB2(0xE7E0), 0x0000, /* 8260 */ + MB2(0xE7DF), 0x0000, MB2(0xB4CF), 0x0000, + MB2(0xE7E1), 0x0000, MB2(0xE7E2), MB2(0xE7E3), + 0x0000, 0x0000, MB2(0xBAB1), MB2(0xCEC9), + 0x0000, MB2(0xE7E5), MB2(0xBFA7), 0x0000, + 0x0000, 0x0000, MB2(0xB1F0), MB2(0xE7E6), + MB2(0xE7E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7E8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F2), + 0x0000, MB2(0xE7E9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9E7), 0x0000, 0x0000, + 0x0000, MB2(0xBCC7), 0x0000, MB2(0xE7EC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, MB2(0xB3A9), MB2(0xB0B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7EB), + MB2(0xE7EE), MB2(0xC7CE), 0x0000, MB2(0xBFC4), + 0x0000, MB2(0xB2D6), 0x0000, MB2(0xCBA7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7DD), MB2(0xB6DC), 0x0000, MB2(0xE7ED), + 0x0000, MB2(0xB2EA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, MB2(0xB4A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1F1), MB2(0xE7F2), MB2(0xCEEA), + MB2(0xC2DD), 0x0000, 0x0000, MB2(0xC9C4), + 0x0000, MB2(0xE7FE), 0x0000, MB2(0xB2D7), + MB2(0xE7FC), 0x0000, MB2(0xE7FA), MB2(0xE7F1), + 0x0000, MB2(0xE7EF), 0x0000, MB2(0xE7F0), /* 82E0 */ + 0x0000, MB2(0xBCE3), MB2(0xB6EC), MB2(0xC3F7), + 0x0000, 0x0000, 0x0000, MB2(0xC6D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1D1), 0x0000, MB2(0xE7F4), + MB2(0xE7F3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7F9), MB2(0xE7F5), MB2(0xE7F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCD0), MB2(0xE7F7), /* 8300 */ + MB2(0xB2D8), MB2(0xB3FD), MB2(0xE7FB), 0x0000, + 0x0000, MB2(0xE7FD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8A3), MB2(0xE8AC), + MB2(0xE8AD), 0x0000, 0x0000, 0x0000, + MB2(0xB0AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8B4), /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0F1), 0x0000, 0x0000, MB2(0xE8AB), + 0x0000, 0x0000, 0x0000, MB2(0xE8AA), + 0x0000, MB2(0xE8A5), MB2(0xE8A4), 0x0000, + MB2(0xE8A2), MB2(0xE8A1), MB2(0xC3E3), 0x0000, + MB2(0xC2FB), MB2(0xE8A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8A6), 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, MB2(0xE8A9), 0x0000, 0x0000, + 0x0000, MB2(0xC1F0), MB2(0xB7D5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1C1), + MB2(0xE8A8), 0x0000, MB2(0xB9D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8BA), + 0x0000, MB2(0xE8BB), 0x0000, MB2(0xB2D9), + 0x0000, 0x0000, 0x0000, MB2(0xB2AE), + MB2(0xE8B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, MB2(0xE8AE), 0x0000, MB2(0xE8B6), + 0x0000, MB2(0xE8BD), MB2(0xE8B7), 0x0000, + 0x0000, 0x0000, MB2(0xE8B5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F6), + 0x0000, 0x0000, MB2(0xE8B3), 0x0000, + 0x0000, 0x0000, MB2(0xE8AF), 0x0000, + 0x0000, 0x0000, MB2(0xB4D0), MB2(0xE8B1), + MB2(0xE8BC), 0x0000, MB2(0xE8B2), 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8BE), 0x0000, MB2(0xE8B0), MB2(0xC7FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDE9), 0x0000, 0x0000, + 0x0000, MB2(0xE8B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8CF), 0x0000, 0x0000, + 0x0000, MB2(0xE8C7), 0x0000, 0x0000, /* 83C0 */ + 0x0000, MB2(0xBFFB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5C6), 0x0000, + MB2(0xB6DD), 0x0000, MB2(0xE8C2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2DB), + 0x0000, 0x0000, MB2(0xBED4), 0x0000, + MB2(0xE8C5), 0x0000, 0x0000, 0x0000, + MB2(0xBADA), 0x0000, 0x0000, MB2(0xC5D1), + MB2(0xE8CA), 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAEE), 0x0000, MB2(0xE8C1), + 0x0000, 0x0000, 0x0000, MB2(0xB2DA), + MB2(0xB8D6), MB2(0xC9A9), MB2(0xE8CB), 0x0000, + MB2(0xE8BF), 0x0000, 0x0000, MB2(0xE8C8), + 0x0000, 0x0000, 0x0000, MB2(0xE8D2), + 0x0000, MB2(0xE8C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8C4), /* 8400 */ + MB2(0xC6BA), 0x0000, 0x0000, MB2(0xE8C9), + 0x0000, 0x0000, 0x0000, MB2(0xE8C6), + MB2(0xCBA8), MB2(0xE8CC), MB2(0xB0E0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8CE), 0x0000, MB2(0xE8CD), 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7EB), MB2(0xE8D4), 0x0000, + MB2(0xE8DF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3FE), 0x0000, 0x0000, + 0x0000, MB2(0xE8E2), 0x0000, 0x0000, + MB2(0xE8D0), 0x0000, 0x0000, 0x0000, + MB2(0xE8D5), MB2(0xCDEE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, MB2(0xE8DE), 0x0000, + 0x0000, MB2(0xCDD5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3F8), + 0x0000, 0x0000, 0x0000, MB2(0xB3EB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9F2), MB2(0xE8E4), MB2(0xC6A1), /* 8460 */ + 0x0000, 0x0000, MB2(0xB0B1), 0x0000, + 0x0000, MB2(0xE8DD), 0x0000, MB2(0xE8D9), + MB2(0xC1F2), MB2(0xE8D3), MB2(0xE8DB), MB2(0xE8E0), + 0x0000, MB2(0xC7AC), 0x0000, 0x0000, + 0x0000, MB2(0xB0AA), 0x0000, MB2(0xE8D8), + 0x0000, MB2(0xE8E1), MB2(0xC9F8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8DC), 0x0000, /* 8480 */ + MB2(0xE8D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBED5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDAF), 0x0000, 0x0000, 0x0000, + MB2(0xBCAC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCD8), 0x0000, 0x0000, + MB2(0xC9C7), 0x0000, 0x0000, MB2(0xE8E7), + 0x0000, MB2(0xE8F0), 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8DA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEF8), MB2(0xE8E5), 0x0000, MB2(0xE8EA), + MB2(0xC1F3), 0x0000, 0x0000, MB2(0xE8E6), + 0x0000, MB2(0xE8ED), 0x0000, 0x0000, /* 84C0 */ + MB2(0xC3DF), 0x0000, MB2(0xE8EE), 0x0000, + 0x0000, MB2(0xCDD6), MB2(0xE8E3), MB2(0xB3B8), + 0x0000, MB2(0xE8E9), 0x0000, 0x0000, + MB2(0xE8EC), MB2(0xCCAC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8EF), 0x0000, + 0x0000, MB2(0xE8E8), MB2(0xE8EB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBA9), 0x0000, MB2(0xCFA1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8F3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8FA), 0x0000, 0x0000, MB2(0xE8F2), + MB2(0xBCC3), 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, MB2(0xE8D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCACE), 0x0000, MB2(0xCCA2), + MB2(0xE8F9), MB2(0xE8F8), 0x0000, MB2(0xE8F4), + MB2(0xE8F5), 0x0000, MB2(0xB1B6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8F7), + 0x0000, MB2(0xE8F1), 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, MB2(0xC4D5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8F6), MB2(0xB0FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2A2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAC3), 0x0000, 0x0000, + MB2(0xE8FB), MB2(0xE9A1), 0x0000, MB2(0xC8D9), /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8FE), MB2(0xBED6), MB2(0xBCC9), MB2(0xE9A3), + 0x0000, 0x0000, MB2(0xB6BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9A4), 0x0000, MB2(0xC9F9), + MB2(0xE8FD), 0x0000, MB2(0xE8D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8FC), /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFCF), MB2(0xC6A2), MB2(0xC9F3), 0x0000, + 0x0000, MB2(0xE9AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9B2), 0x0000, + MB2(0xE9A5), 0x0000, 0x0000, 0x0000, /* 8580 */ + MB2(0xC7F6), 0x0000, 0x0000, MB2(0xE9AF), + MB2(0xE9A7), 0x0000, MB2(0xE9A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9B3), MB2(0xE9A8), 0x0000, 0x0000, + MB2(0xE9AC), 0x0000, 0x0000, MB2(0xB1F2), + 0x0000, MB2(0xC6E5), 0x0000, MB2(0xE9AD), + MB2(0xE9B0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + MB2(0xE9A6), 0x0000, MB2(0xC1A6), 0x0000, + MB2(0xE9AA), MB2(0xBBA7), MB2(0xBFC5), MB2(0xB7B0), + MB2(0xCCF4), 0x0000, MB2(0xCCF9), MB2(0xBDF2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B7), MB2(0xE9B5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFCE), 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B4), 0x0000, 0x0000, + 0x0000, MB2(0xCDF5), 0x0000, MB2(0xE9B6), + MB2(0xE9B8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BC), MB2(0xE9BA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + MB2(0xC6A3), MB2(0xE9BB), 0x0000, 0x0000, + 0x0000, MB2(0xC8CD), MB2(0xE9AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDF3), + 0x0000, MB2(0xE9BD), MB2(0xE9C2), MB2(0xC1F4), + 0x0000, 0x0000, MB2(0xE9C1), 0x0000, + 0x0000, 0x0000, MB2(0xE9A2), 0x0000, /* 8600 */ + 0x0000, 0x0000, MB2(0xE9C3), MB2(0xC1C9), + 0x0000, 0x0000, MB2(0xE9BE), MB2(0xE9C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9BF), + 0x0000, 0x0000, MB2(0xDDB1), MB2(0xDDA2), + 0x0000, 0x0000, MB2(0xE9C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9C4), 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDF6), 0x0000, MB2(0xE2BC), + MB2(0xE9C6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9C7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C8), MB2(0xB8D7), 0x0000, + MB2(0xB5D4), 0x0000, 0x0000, 0x0000, + MB2(0xE9CA), MB2(0xD1DD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5F5), 0x0000, + MB2(0xCEBA), 0x0000, MB2(0xB6F3), MB2(0xE9CB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE9CC), + 0x0000, 0x0000, 0x0000, MB2(0xC3EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6FA), 0x0000, MB2(0xB0BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2E3), MB2(0xE9D2), + MB2(0xE9D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9CE), + 0x0000, MB2(0xBBBD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9CF), /* 86A0 */ + MB2(0xC7C2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9D0), MB2(0xE9D1), MB2(0xE9DB), + 0x0000, 0x0000, 0x0000, MB2(0xE9D5), + MB2(0xE9D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + MB2(0xE9D6), 0x0000, MB2(0xE9D7), MB2(0xBCD8), + 0x0000, MB2(0xE9D9), 0x0000, MB2(0xC3C1), + 0x0000, MB2(0xB7D6), MB2(0xB3C2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9DC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3BF), 0x0000, MB2(0xE9E1), + 0x0000, 0x0000, MB2(0xE9DD), MB2(0xE9E0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + MB2(0xC8BA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9DE), 0x0000, 0x0000, + MB2(0xE9DF), MB2(0xC9C8), MB2(0xC8DA), MB2(0xE9E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2FD), MB2(0xE9EC), 0x0000, MB2(0xE9E8), + 0x0000, 0x0000, MB2(0xB2EB), 0x0000, + MB2(0xE9E6), 0x0000, MB2(0xCBAA), MB2(0xE9E7), /* 8700 */ + 0x0000, 0x0000, MB2(0xE9E4), 0x0000, + MB2(0xE9E5), MB2(0xE9EA), MB2(0xE9ED), 0x0000, + 0x0000, MB2(0xE9EB), 0x0000, 0x0000, + 0x0000, MB2(0xE9E9), MB2(0xE9E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3D8), 0x0000, MB2(0xE9F4), 0x0000, + MB2(0xCCAA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, MB2(0xE9F2), 0x0000, 0x0000, + 0x0000, MB2(0xE9F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9EE), 0x0000, 0x0000, MB2(0xE9F0), + 0x0000, 0x0000, 0x0000, MB2(0xE9F1), + 0x0000, 0x0000, 0x0000, MB2(0xE9EF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0E6), 0x0000, MB2(0xCFB9), + MB2(0xE9F8), 0x0000, MB2(0xE9F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAA1), + 0x0000, MB2(0xBFAA), 0x0000, MB2(0xE9FB), + 0x0000, MB2(0xE9FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9F6), + MB2(0xE9F5), 0x0000, 0x0000, MB2(0xEAA2), /* 8760 */ + 0x0000, 0x0000, MB2(0xB2DC), 0x0000, + MB2(0xE9FC), 0x0000, MB2(0xEAA3), 0x0000, + 0x0000, 0x0000, MB2(0xE9FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9FA), 0x0000, MB2(0xC4B3), 0x0000, + MB2(0xE9F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7E8), + 0x0000, 0x0000, MB2(0xEAA7), 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDBB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAA6), + 0x0000, 0x0000, MB2(0xEAA5), 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAAE), + 0x0000, 0x0000, 0x0000, MB2(0xEAA8), + 0x0000, 0x0000, 0x0000, MB2(0xEAB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDE6), MB2(0xEAB3), + 0x0000, MB2(0xEAAA), 0x0000, 0x0000, + MB2(0xEAAB), 0x0000, 0x0000, 0x0000, /* 87C0 */ + MB2(0xEAAF), 0x0000, MB2(0xEAB2), MB2(0xEAB1), + 0x0000, 0x0000, 0x0000, MB2(0xEAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAAC), 0x0000, MB2(0xEABD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAB6), 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAB4), + 0x0000, 0x0000, MB2(0xEAB5), 0x0000, + 0x0000, 0x0000, MB2(0xEABA), MB2(0xEABB), + 0x0000, MB2(0xB3AA), 0x0000, MB2(0xB5C2), + 0x0000, 0x0000, MB2(0xEAB9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, MB2(0xEAA4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAB8), MB2(0xEABC), MB2(0xEAB7), + 0x0000, MB2(0xEABE), 0x0000, 0x0000, + 0x0000, MB2(0xEAC0), MB2(0xEABF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAC2), MB2(0xEAC1), MB2(0xE9DA), /* 8820 */ + 0x0000, 0x0000, 0x0000, MB2(0xEAC6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAC3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAC4), 0x0000, + 0x0000, MB2(0xEAC5), 0x0000, MB2(0xEAC7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7EC), 0x0000, MB2(0xEAC9), 0x0000, /* 8840 */ + MB2(0xEAC8), 0x0000, MB2(0xBDB0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9D4), MB2(0xDEA7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEACA), MB2(0xBDD1), + 0x0000, 0x0000, 0x0000, MB2(0xB3B9), + 0x0000, MB2(0xEACB), 0x0000, MB2(0xB1D2), + 0x0000, MB2(0xBED7), MB2(0xEACC), 0x0000, + 0x0000, MB2(0xB9D5), MB2(0xEACD), MB2(0xB0E1), /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9BD), 0x0000, 0x0000, MB2(0xEACE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFEA), 0x0000, MB2(0xEAD5), 0x0000, + 0x0000, MB2(0xEAD2), 0x0000, MB2(0xC3EF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAD3), MB2(0xEAD0), MB2(0xB6DE), + 0x0000, MB2(0xEACF), MB2(0xEAD6), 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7B6), 0x0000, 0x0000, MB2(0xC2DE), + 0x0000, MB2(0xEADC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAD8), 0x0000, + 0x0000, 0x0000, MB2(0xC2B5), MB2(0xEAD7), + 0x0000, MB2(0xEADA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAD1), 0x0000, + 0x0000, 0x0000, MB2(0xEADB), 0x0000, /* 88A0 */ + MB2(0xEADD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8EF), + 0x0000, 0x0000, MB2(0xEAD9), 0x0000, + MB2(0xEADE), MB2(0xEAE0), 0x0000, 0x0000, + MB2(0xB8D3), MB2(0xEAD4), 0x0000, MB2(0xB0C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEADF), + 0x0000, MB2(0xBADB), MB2(0xCEF6), MB2(0xEAE1), /* 88C0 */ + MB2(0xEAE2), MB2(0xC1F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEA2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAE3), MB2(0xCDB5), 0x0000, 0x0000, + MB2(0xEAE4), MB2(0xEAE5), 0x0000, 0x0000, + MB2(0xCAE4), MB2(0xEAE6), 0x0000, MB2(0xBAC0), + 0x0000, MB2(0xCEA3), 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAEB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAEC), MB2(0xBED8), + MB2(0xEAEA), 0x0000, 0x0000, 0x0000, + MB2(0xCDE7), MB2(0xEAE7), 0x0000, 0x0000, + MB2(0xEAE9), MB2(0xC0BD), MB2(0xBFFE), 0x0000, + 0x0000, 0x0000, MB2(0xEAE8), 0x0000, /* 8900 */ + MB2(0xEAED), 0x0000, 0x0000, MB2(0xCAA3), + 0x0000, 0x0000, MB2(0xEAEF), 0x0000, + MB2(0xEAEE), 0x0000, 0x0000, 0x0000, + MB2(0xB3EC), 0x0000, MB2(0xCBAB), MB2(0xEAF0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAFC), MB2(0xEAF2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, MB2(0xEAF3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAF4), MB2(0xEAF5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAF9), 0x0000, + MB2(0xEAFA), 0x0000, 0x0000, MB2(0xEAF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAF6), 0x0000, MB2(0xEAF1), /* 8940 */ + MB2(0xEAF7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAFB), MB2(0xF0B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAFE), MB2(0xB6DF), + MB2(0xEAFD), 0x0000, 0x0000, 0x0000, /* 8960 */ + MB2(0xEBA2), 0x0000, MB2(0xEBA1), 0x0000, + 0x0000, 0x0000, MB2(0xEBA4), 0x0000, + 0x0000, MB2(0xEBA3), 0x0000, MB2(0xEBA5), + 0x0000, 0x0000, MB2(0xBDB1), 0x0000, + MB2(0xEBA6), 0x0000, 0x0000, MB2(0xEBA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBA8), MB2(0xC0BE), + 0x0000, MB2(0xCDD7), 0x0000, MB2(0xEBA9), /* 8980 */ + 0x0000, 0x0000, MB2(0xCAA4), MB2(0xC7C6), + MB2(0xEBAA), 0x0000, MB2(0xEBAB), MB2(0xB8AB), + 0x0000, 0x0000, 0x0000, MB2(0xB5AC), + 0x0000, 0x0000, 0x0000, MB2(0xEBAC), + 0x0000, 0x0000, MB2(0xBBEB), MB2(0xC7C1), + MB2(0xEBAD), 0x0000, MB2(0xB3D0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBAE), 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, MB2(0xEBB0), MB2(0xCDF7), + 0x0000, MB2(0xEBAF), MB2(0xBFC6), 0x0000, + MB2(0xEBB1), 0x0000, 0x0000, MB2(0xEBB2), + 0x0000, 0x0000, MB2(0xEBB3), MB2(0xB4D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBB4), 0x0000, + 0x0000, MB2(0xEBB5), 0x0000, MB2(0xEBB6), + MB2(0xEBB7), 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBB8), 0x0000, + MB2(0xEBB9), MB2(0xEBBA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F2), /* 89E0 */ + 0x0000, 0x0000, MB2(0xBFA8), MB2(0xEBBB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBBC), 0x0000, 0x0000, 0x0000, + MB2(0xEBBD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8C0), 0x0000, MB2(0xC4FB), MB2(0xEBBE), /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7D7), 0x0000, MB2(0xBFD6), 0x0000, + MB2(0xEBC1), 0x0000, MB2(0xC6A4), 0x0000, + MB2(0xEBC0), 0x0000, 0x0000, MB2(0xB7B1), + 0x0000, 0x0000, MB2(0xEBBF), MB2(0xC2F7), + MB2(0xB5AD), 0x0000, 0x0000, MB2(0xEBC2), + 0x0000, MB2(0xEBC3), 0x0000, MB2(0xBED9), + 0x0000, 0x0000, 0x0000, MB2(0xB7ED), /* 8A20 */ + 0x0000, MB2(0xEBC4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBAC), 0x0000, + 0x0000, MB2(0xC0DF), 0x0000, 0x0000, + 0x0000, MB2(0xB5F6), 0x0000, MB2(0xCCF5), + MB2(0xC1CA), 0x0000, MB2(0xEBC5), 0x0000, + 0x0000, 0x0000, MB2(0xBFC7), MB2(0xC3F0), + MB2(0xBEDA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBC6), 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, MB2(0xEBC9), 0x0000, + MB2(0xEBCA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBABE), MB2(0xC2C2), MB2(0xEBC8), 0x0000, + MB2(0xBEDB), MB2(0xC9BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBC7), + 0x0000, 0x0000, MB2(0xBBEC), 0x0000, + MB2(0xB1D3), 0x0000, MB2(0xEBCE), MB2(0xB7D8), /* 8A60 */ + 0x0000, 0x0000, MB2(0xBBEE), 0x0000, + 0x0000, MB2(0xBBED), 0x0000, MB2(0xCFCD), + MB2(0xEBCD), MB2(0xEBCC), MB2(0xC1A7), 0x0000, + MB2(0xB5CD), MB2(0xCFC3), MB2(0xB3BA), MB2(0xBEDC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBCB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBD0), 0x0000, /* 8A80 */ + MB2(0xEBD1), MB2(0xEBCF), 0x0000, MB2(0xB8D8), + 0x0000, MB2(0xCDC0), 0x0000, 0x0000, + MB2(0xBBEF), MB2(0xC7A7), 0x0000, 0x0000, + 0x0000, MB2(0xEBD4), 0x0000, MB2(0xC0C0), + 0x0000, MB2(0xC3C2), 0x0000, 0x0000, + MB2(0xCDB6), 0x0000, MB2(0xEBD7), 0x0000, + 0x0000, 0x0000, MB2(0xB8EC), 0x0000, + MB2(0xC0BF), MB2(0xEBD3), 0x0000, MB2(0xEBD8), /* 8AA0 */ + MB2(0xB8ED), MB2(0xEBD5), MB2(0xEBD6), 0x0000, + MB2(0xEBD2), 0x0000, 0x0000, 0x0000, + MB2(0xC0E2), MB2(0xC6C9), 0x0000, 0x0000, + MB2(0xC3AF), 0x0000, MB2(0xB2DD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8F0), 0x0000, 0x0000, + MB2(0xB5C3), 0x0000, 0x0000, MB2(0xC4B4), + 0x0000, 0x0000, MB2(0xEBDB), 0x0000, /* 8AC0 */ + MB2(0xEBD9), 0x0000, 0x0000, MB2(0xC3CC), + 0x0000, 0x0000, 0x0000, MB2(0xC0C1), + MB2(0xB4D2), MB2(0xEBDA), 0x0000, MB2(0xBFDB), + 0x0000, 0x0000, MB2(0xCECA), 0x0000, + 0x0000, 0x0000, MB2(0xCFC0), 0x0000, + 0x0000, 0x0000, MB2(0xEBDC), MB2(0xEBE7), + MB2(0xC4B5), 0x0000, MB2(0xEBE6), 0x0000, + MB2(0xEBE3), MB2(0xEBEB), MB2(0xEBE4), 0x0000, /* 8AE0 */ + MB2(0xEBE0), 0x0000, MB2(0xC4FC), MB2(0xEBDF), + 0x0000, 0x0000, 0x0000, MB2(0xEBDD), + 0x0000, MB2(0xCDA1), MB2(0xBBF0), 0x0000, + 0x0000, MB2(0xEBE1), 0x0000, MB2(0xEBDE), + 0x0000, 0x0000, 0x0000, MB2(0xEBE5), + MB2(0xBDF4), 0x0000, MB2(0xB8C1), 0x0000, + 0x0000, 0x0000, MB2(0xC2FA), 0x0000, + MB2(0xCBC5), MB2(0xB1DA), MB2(0xB0E2), 0x0000, /* 8B00 */ + MB2(0xC6A5), 0x0000, 0x0000, MB2(0xEBE9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBE8), 0x0000, MB2(0xC6E6), 0x0000, + MB2(0xEBED), 0x0000, 0x0000, 0x0000, + MB2(0xEBE2), 0x0000, MB2(0xEBEC), MB2(0xEBEE), + 0x0000, MB2(0xB8AC), MB2(0xEBEA), MB2(0xB9D6), + 0x0000, MB2(0xBCD5), 0x0000, 0x0000, + MB2(0xEBEF), MB2(0xCDD8), 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, MB2(0xEBF2), 0x0000, + MB2(0xEBF5), 0x0000, 0x0000, MB2(0xEBF3), + MB2(0xC9B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBF0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6E0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBF4), 0x0000, + 0x0000, MB2(0xEBF6), 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBFA), 0x0000, 0x0000, + MB2(0xEBF7), 0x0000, MB2(0xEBF9), MB2(0xEBF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBFB), 0x0000, + MB2(0xBCB1), 0x0000, MB2(0xEBFD), MB2(0xEBFC), + MB2(0xC9E8), 0x0000, 0x0000, MB2(0xECA1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, MB2(0xB7D9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBFE), + MB2(0xECA2), 0x0000, 0x0000, MB2(0xECA3), + MB2(0xB5C4), MB2(0xE6C1), MB2(0xBEF9), 0x0000, + MB2(0xECA4), 0x0000, 0x0000, MB2(0xB8EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECA5), 0x0000, 0x0000, + MB2(0xECA6), 0x0000, 0x0000, MB2(0xBBBE), /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDACE), 0x0000, + MB2(0xECA7), 0x0000, MB2(0xECA8), 0x0000, + MB2(0xBDB2), 0x0000, MB2(0xECA9), MB2(0xECAA), + 0x0000, 0x0000, MB2(0xECAB), 0x0000, + 0x0000, MB2(0xECAC), MB2(0xECAD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3AB), + 0x0000, 0x0000, MB2(0xECAE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECB0), + 0x0000, MB2(0xECAF), 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, MB2(0xC6A6), 0x0000, + MB2(0xECB1), 0x0000, MB2(0xCBAD), 0x0000, + MB2(0xECB2), 0x0000, MB2(0xECB3), 0x0000, + MB2(0xECB4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECB5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEDD), MB2(0xECB6), 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9EB), MB2(0xD0AE), + MB2(0xECB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECB8), MB2(0xC9BF), MB2(0xECB9), 0x0000, + MB2(0xECC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECBA), 0x0000, /* 8C80 */ + 0x0000, MB2(0xECBC), 0x0000, 0x0000, + 0x0000, MB2(0xECBB), MB2(0xECBD), 0x0000, + MB2(0xCBC6), MB2(0xECBE), MB2(0xECBF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECC0), 0x0000, 0x0000, 0x0000, + MB2(0xECC2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3AD), MB2(0xC4E7), 0x0000, + MB2(0xC9E9), MB2(0xBAE2), MB2(0xB9D7), 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC9CF), + MB2(0xB2DF), MB2(0xC8CE), MB2(0xECC5), MB2(0xB4D3), + MB2(0xC0D5), MB2(0xECC4), MB2(0xECC9), MB2(0xC3F9), + MB2(0xCCE3), 0x0000, MB2(0xECC7), MB2(0xECC8), + MB2(0xB5AE), 0x0000, MB2(0xECCA), MB2(0xC7E3), + MB2(0xC2DF), 0x0000, 0x0000, MB2(0xC8F1), + MB2(0xC5BD), MB2(0xECC6), 0x0000, MB2(0xCBC7), + MB2(0xB2EC), MB2(0xECCC), MB2(0xCFA8), MB2(0xC4C2), /* 8CC0 */ + MB2(0xCFC5), 0x0000, 0x0000, MB2(0xBBF1), + MB2(0xECCB), 0x0000, MB2(0xC2B1), 0x0000, + 0x0000, MB2(0xECDC), MB2(0xC1A8), 0x0000, + 0x0000, MB2(0xC6F8), 0x0000, MB2(0xC9D0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECCF), MB2(0xBBBF), + MB2(0xBBF2), 0x0000, MB2(0xBEDE), 0x0000, + MB2(0xC7E5), 0x0000, MB2(0xB8AD), MB2(0xECCE), /* 8CE0 */ + MB2(0xECCD), 0x0000, MB2(0xC9EA), 0x0000, + 0x0000, 0x0000, MB2(0xBCC1), 0x0000, + 0x0000, MB2(0xC5D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECD1), MB2(0xECD2), + MB2(0xB9D8), MB2(0xECD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + MB2(0xECD3), MB2(0xECD4), 0x0000, MB2(0xECD6), + MB2(0xC2A3), 0x0000, MB2(0xECD5), MB2(0xB4E6), + 0x0000, MB2(0xECD8), 0x0000, MB2(0xECD7), + MB2(0xECD9), 0x0000, 0x0000, MB2(0xECDB), + MB2(0xECDD), 0x0000, MB2(0xECDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + MB2(0xC0D6), 0x0000, MB2(0xBCCF), MB2(0xECDF), + 0x0000, 0x0000, 0x0000, MB2(0xB3D2), + 0x0000, MB2(0xECE0), 0x0000, 0x0000, + MB2(0xC1F6), MB2(0xECE1), 0x0000, MB2(0xECE2), + MB2(0xC9EB), 0x0000, 0x0000, MB2(0xB5AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECE3), 0x0000, 0x0000, /* 8D80 */ + 0x0000, MB2(0xC4B6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECE4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCF1), /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFF6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECE7), 0x0000, + 0x0000, 0x0000, MB2(0xECE6), 0x0000, + 0x0000, 0x0000, MB2(0xECE5), 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECED), + MB2(0xECEB), 0x0000, 0x0000, MB2(0xECE8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECEA), 0x0000, + 0x0000, 0x0000, MB2(0xECE9), MB2(0xECEC), + 0x0000, MB2(0xB5F7), 0x0000, MB2(0xECF0), + 0x0000, MB2(0xC0D7), 0x0000, MB2(0xECF1), /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8D9), 0x0000, MB2(0xECEE), MB2(0xECEF), + 0x0000, 0x0000, 0x0000, MB2(0xCFA9), + 0x0000, 0x0000, 0x0000, MB2(0xC4B7), + 0x0000, MB2(0xC1A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECF2), 0x0000, 0x0000, MB2(0xECF5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECF3), MB2(0xECF4), MB2(0xCDD9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6A7), + MB2(0xECF8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECF6), MB2(0xECF7), MB2(0xECF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDA9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECFC), 0x0000, 0x0000, 0x0000, + MB2(0xECFD), MB2(0xECFB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECFA), 0x0000, /* 8E40 */ + MB2(0xC4FD), 0x0000, 0x0000, MB2(0xEDA1), + MB2(0xEDA5), MB2(0xEDA2), MB2(0xECFE), 0x0000, + MB2(0xEDA3), 0x0000, 0x0000, 0x0000, + MB2(0xEDA4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDAB), 0x0000, 0x0000, + 0x0000, MB2(0xEDA6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0D8), + MB2(0xEDA8), 0x0000, 0x0000, MB2(0xEDAA), /* 8E60 */ + MB2(0xEDA7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDAD), 0x0000, + MB2(0xBDB3), 0x0000, MB2(0xEDAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEDAE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDAF), 0x0000, 0x0000, /* 8E80 */ + MB2(0xEDB2), MB2(0xEDB1), 0x0000, MB2(0xEDB0), + 0x0000, 0x0000, MB2(0xEDB4), MB2(0xEDB3), + 0x0000, MB2(0xCCF6), 0x0000, 0x0000, + 0x0000, MB2(0xEDB6), 0x0000, MB2(0xEDB5), + MB2(0xEDB7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDBA), 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDB9), MB2(0xBFC8), + MB2(0xEDBB), 0x0000, 0x0000, MB2(0xB6ED), + MB2(0xEDBC), MB2(0xEDBE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDBF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, MB2(0xEDC0), MB2(0xEDBD), 0x0000, + MB2(0xEDC1), 0x0000, MB2(0xBCD6), MB2(0xEDC2), + MB2(0xB5B0), MB2(0xB7B3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDC3), + 0x0000, 0x0000, 0x0000, MB2(0xC6F0), + 0x0000, 0x0000, MB2(0xC5BE), MB2(0xEDC4), /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDC7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCB4), 0x0000, 0x0000, MB2(0xEDC6), + MB2(0xEDC5), MB2(0xB7DA), MB2(0xEDC8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3D3), /* 8F00 */ + 0x0000, MB2(0xEDCA), 0x0000, 0x0000, + 0x0000, MB2(0xBADC), MB2(0xEDC9), 0x0000, + MB2(0xEDD2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDCC), MB2(0xEDCE), + MB2(0xCAE5), MB2(0xEDCB), 0x0000, 0x0000, + 0x0000, MB2(0xEDCD), 0x0000, MB2(0xEDD1), + MB2(0xEDCF), MB2(0xB5B1), 0x0000, MB2(0xEDD0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, MB2(0xEDD3), 0x0000, + 0x0000, MB2(0xC7DA), MB2(0xCED8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDB4), + 0x0000, 0x0000, 0x0000, MB2(0xEDD4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDA2), MB2(0xEDD6), 0x0000, MB2(0xEDD5), + 0x0000, 0x0000, MB2(0xEDD9), MB2(0xCDC1), + 0x0000, 0x0000, MB2(0xEDD8), 0x0000, /* 8F40 */ + MB2(0xB3ED), MB2(0xEDD7), MB2(0xEDDC), 0x0000, + 0x0000, MB2(0xEDDB), 0x0000, 0x0000, + MB2(0xEDDA), MB2(0xC5B2), MB2(0xEDDD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDDE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEDDF), 0x0000, 0x0000, MB2(0xB9EC), + 0x0000, MB2(0xB7A5), MB2(0xEDE0), MB2(0xEDE1), /* 8F60 */ + MB2(0xEDE2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFC9), + MB2(0xEDE3), 0x0000, MB2(0xBCAD), MB2(0xEDE4), + 0x0000, 0x0000, 0x0000, MB2(0xEDE5), /* 8FA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD2A1), + MB2(0xD1FE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDE6), MB2(0xE5F0), MB2(0xEDE7), + MB2(0xC3A4), MB2(0xBFAB), MB2(0xC7C0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDE8), + 0x0000, 0x0000, MB2(0xCAD5), MB2(0xC4D4), + MB2(0xB9FE), 0x0000, 0x0000, MB2(0xC3A9), + 0x0000, 0x0000, MB2(0xB1AA), 0x0000, /* 8FC0 */ + MB2(0xCBF8), MB2(0xBFD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7DE), 0x0000, + 0x0000, MB2(0xB6E1), 0x0000, 0x0000, + MB2(0xCAD6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDE9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDEB), 0x0000, /* 8FE0 */ + 0x0000, MB2(0xEDEA), MB2(0xB2E0), 0x0000, + 0x0000, MB2(0xC6F6), MB2(0xEDEC), MB2(0xC7F7), + 0x0000, MB2(0xC5B3), 0x0000, MB2(0xEDED), + MB2(0xBDD2), 0x0000, 0x0000, 0x0000, + MB2(0xEDEF), 0x0000, 0x0000, MB2(0xCCC2), + MB2(0xEDFE), MB2(0xEDF1), MB2(0xEDF2), 0x0000, + 0x0000, MB2(0xC4C9), 0x0000, 0x0000, + MB2(0xC2E0), MB2(0xC1F7), 0x0000, MB2(0xC6A8), /* 9000 */ + 0x0000, MB2(0xEDF0), MB2(0xB5D5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDF9), + 0x0000, MB2(0xEDF6), MB2(0xEEA5), MB2(0xC6A9), + MB2(0xC3E0), MB2(0xEDF3), 0x0000, MB2(0xC4FE), + MB2(0xC5D3), MB2(0xEDF4), MB2(0xEDF8), MB2(0xBFE0), + 0x0000, MB2(0xC7E7), MB2(0xC4CC), 0x0000, + 0x0000, MB2(0xC0C2), MB2(0xEDF7), MB2(0xC2AE), + MB2(0xC2A4), MB2(0xEDF5), MB2(0xB0A9), MB2(0xCFA2), /* 9020 */ + 0x0000, 0x0000, 0x0000, MB2(0xEDFA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2E1), 0x0000, + 0x0000, MB2(0xBDB5), MB2(0xBFCA), 0x0000, + 0x0000, MB2(0xEDFC), MB2(0xEDFB), 0x0000, + MB2(0xB0EF), MB2(0xEDFD), 0x0000, 0x0000, + MB2(0xC9AF), 0x0000, MB2(0xEEA7), 0x0000, + 0x0000, MB2(0xC6DB), MB2(0xBFEB), 0x0000, /* 9040 */ + 0x0000, MB2(0xC3D9), 0x0000, MB2(0xB6F8), + 0x0000, MB2(0xEEA6), MB2(0xCDB7), MB2(0xB1BF), + 0x0000, MB2(0xCAD7), MB2(0xB2E1), MB2(0xEEA1), + MB2(0xEEA2), MB2(0xEEA3), MB2(0xEEA4), MB2(0xC6BB), + MB2(0xC3A3), MB2(0xB0E3), MB2(0xEEA8), 0x0000, + MB2(0xEEA9), MB2(0xF4A3), 0x0000, 0x0000, + MB2(0xC2BD), 0x0000, MB2(0xEEAA), 0x0000, + MB2(0xB1F3), MB2(0xC1CC), 0x0000, MB2(0xB8AF), /* 9060 */ + 0x0000, MB2(0xCDDA), 0x0000, 0x0000, + MB2(0xEEAB), MB2(0xC5AC), 0x0000, 0x0000, + 0x0000, MB2(0xC1F8), MB2(0xBCD7), MB2(0xEEAC), + 0x0000, 0x0000, MB2(0xEEAF), 0x0000, + 0x0000, MB2(0xBDE5), MB2(0xEEAD), MB2(0xC1AB), + MB2(0xC1AA), 0x0000, MB2(0xB0E4), 0x0000, + MB2(0xCECB), MB2(0xEEB1), 0x0000, MB2(0xC8F2), + MB2(0xEEB3), MB2(0xEEB2), MB2(0xEEB0), MB2(0xE3E4), /* 9080 */ + MB2(0xB4D4), 0x0000, 0x0000, MB2(0xEDEE), + 0x0000, MB2(0xEEB5), MB2(0xEEB4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEB6), + 0x0000, MB2(0xCDB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6E1), /* 90A0 */ + 0x0000, 0x0000, MB2(0xCBAE), 0x0000, + MB2(0xEEB7), 0x0000, MB2(0xBCD9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEB8), + 0x0000, MB2(0xEEB9), 0x0000, 0x0000, + 0x0000, MB2(0xEEBA), 0x0000, 0x0000, + MB2(0xC5A1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0EA), 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9D9), 0x0000, + 0x0000, 0x0000, MB2(0xCFBA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEBE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7B4), MB2(0xEEBB), 0x0000, /* 90E0 */ + MB2(0xEEBC), 0x0000, 0x0000, 0x0000, + MB2(0xC9F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3D4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDB9), 0x0000, MB2(0xB6BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5D4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEBF), 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEC0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEEC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5A2), 0x0000, 0x0000, + MB2(0xEEC3), 0x0000, MB2(0xEEC2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6D3), MB2(0xEEC4), MB2(0xBDB6), + MB2(0xBCE0), MB2(0xC7DB), MB2(0xC3F1), 0x0000, + 0x0000, 0x0000, MB2(0xBCF2), 0x0000, + MB2(0xBFEC), 0x0000, MB2(0xEEC5), 0x0000, + MB2(0xEEC6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFDD), MB2(0xEEC7), /* 9160 */ + 0x0000, MB2(0xEEC8), 0x0000, 0x0000, + 0x0000, MB2(0xEEC9), MB2(0xCDEF), 0x0000, + MB2(0xBDB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEECB), MB2(0xEECA), + 0x0000, MB2(0xB9DA), 0x0000, MB2(0xB9F3), + MB2(0xBBC0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEECE), 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDE6), + 0x0000, MB2(0xEECD), 0x0000, MB2(0xEECC), + 0x0000, MB2(0xC2E9), 0x0000, 0x0000, + MB2(0xB8EF), 0x0000, MB2(0xC0C3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8B0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEECF), 0x0000, /* 91A0 */ + MB2(0xBEDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEED2), MB2(0xEED0), + 0x0000, 0x0000, 0x0000, MB2(0xEED1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEED4), MB2(0xEED3), 0x0000, 0x0000, + MB2(0xBEFA), 0x0000, MB2(0xEED5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEED6), MB2(0xEED7), 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, MB2(0xC8D0), MB2(0xBAD3), + MB2(0xBCE1), MB2(0xEED8), 0x0000, MB2(0xEED9), + MB2(0xCEA4), MB2(0xBDC5), MB2(0xCCEE), MB2(0xCECC), + MB2(0xEEDA), MB2(0xB6E2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEDB), 0x0000, + MB2(0xC5A3), 0x0000, 0x0000, MB2(0xEEDE), + MB2(0xB3F8), MB2(0xBFCB), 0x0000, MB2(0xEEDC), + 0x0000, MB2(0xEEDD), 0x0000, MB2(0xC4E0), /* 91E0 */ + 0x0000, 0x0000, MB2(0xCBD5), MB2(0xB6FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEEE0), MB2(0xEEE1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEEDF), 0x0000, 0x0000, MB2(0xEEE3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6DF), MB2(0xB3C3), 0x0000, + 0x0000, MB2(0xEEE7), 0x0000, 0x0000, + MB2(0xEEE4), MB2(0xEEE6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEE2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFCF), 0x0000, 0x0000, + MB2(0xEEE5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEEB), 0x0000, 0x0000, MB2(0xB8DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEEF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + MB2(0xC5B4), MB2(0xEEEA), 0x0000, 0x0000, + MB2(0xEEED), MB2(0xEEEB), 0x0000, MB2(0xEEF0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEEF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEE9), + 0x0000, 0x0000, MB2(0xEEF6), MB2(0xB1F4), + 0x0000, 0x0000, MB2(0xEEE8), 0x0000, + 0x0000, 0x0000, MB2(0xC8AD), 0x0000, /* 9260 */ + MB2(0xEEEC), 0x0000, MB2(0xBEE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBC8), 0x0000, + MB2(0xB6E4), 0x0000, 0x0000, MB2(0xBDC6), /* 9280 */ + 0x0000, MB2(0xC6BC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1AD), 0x0000, MB2(0xEEF4), + 0x0000, MB2(0xEEEE), MB2(0xEEF3), 0x0000, + MB2(0xCCC3), 0x0000, MB2(0xC4B8), MB2(0xEEF5), + MB2(0xEEF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEF9), + 0x0000, MB2(0xEEF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEF7), + 0x0000, 0x0000, MB2(0xCBAF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + MB2(0xBDFB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEEFA), MB2(0xCADF), 0x0000, + 0x0000, MB2(0xB1D4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9C6), MB2(0xC3F2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5F8), 0x0000, MB2(0xEEFC), 0x0000, + MB2(0xB9DD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, MB2(0xBBAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEFB), + MB2(0xBFED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFEE), MB2(0xEFA1), MB2(0xEFA3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEFB), 0x0000, MB2(0xEFA2), MB2(0xEFA4), /* 9320 */ + 0x0000, 0x0000, MB2(0xB6D3), 0x0000, + MB2(0xC9C5), 0x0000, 0x0000, MB2(0xBCE2), + MB2(0xCFA3), 0x0000, MB2(0xEEFE), MB2(0xBAF8), + 0x0000, 0x0000, MB2(0xCFBF), 0x0000, + 0x0000, MB2(0xEFA6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFA5), MB2(0xEFA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + MB2(0xEEFD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6E9), + 0x0000, MB2(0xC5D5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4D7), 0x0000, MB2(0xEFAC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3C3), + MB2(0xEFA8), 0x0000, 0x0000, 0x0000, + MB2(0xEFA9), 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7AD), 0x0000, MB2(0xEFAB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8B0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFAA), 0x0000, MB2(0xBEE1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFB0), 0x0000, MB2(0xBABF), MB2(0xC1F9), + 0x0000, 0x0000, MB2(0xC4CA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB3BB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFAE), MB2(0xEFAF), MB2(0xC4C3), 0x0000, + MB2(0xEFAD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFB1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFB7), /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFBA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFB9), MB2(0xC5AD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFB2), MB2(0xEFB3), + MB2(0xEFB6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFB8), 0x0000, 0x0000, + 0x0000, MB2(0xB6C0), 0x0000, 0x0000, /* 93E0 */ + MB2(0xEFBB), MB2(0xEFB5), 0x0000, 0x0000, + MB2(0xEFB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFBF), /* 9400 */ + 0x0000, 0x0000, 0x0000, MB2(0xEFC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFC1), 0x0000, 0x0000, MB2(0xEFBE), + MB2(0xEFBD), 0x0000, 0x0000, 0x0000, + MB2(0xBEE2), MB2(0xC6AA), MB2(0xEFBC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFC5), 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFC3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFC4), MB2(0xEFC2), 0x0000, + MB2(0xC2F8), 0x0000, MB2(0xEFC6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFC7), 0x0000, 0x0000, /* 9440 */ + MB2(0xEFC9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4D5), MB2(0xEFC8), MB2(0xCCFA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFD4), MB2(0xEFCA), + 0x0000, 0x0000, MB2(0xEFCD), 0x0000, + MB2(0xEFCB), 0x0000, MB2(0xEFCC), 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFCE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFD0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFD1), 0x0000, MB2(0xEFD2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFD5), MB2(0xEFD3), MB2(0xEFD6), MB2(0xEFD8), + 0x0000, MB2(0xEFD7), 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4B9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCE7), 0x0000, MB2(0xEFD9), MB2(0xC1AE), /* 9580 */ + 0x0000, 0x0000, 0x0000, MB2(0xEFDA), + 0x0000, MB2(0xCAC4), MB2(0xEFDB), MB2(0xB3AB), + 0x0000, 0x0000, 0x0000, MB2(0xB1BC), + 0x0000, MB2(0xB4D7), 0x0000, MB2(0xB4D6), + MB2(0xEFDC), 0x0000, MB2(0xEFDD), 0x0000, + MB2(0xEFDE), MB2(0xEFDF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFE0), 0x0000, MB2(0xB4D8), MB2(0xB3D5), /* 95A0 */ + MB2(0xB9DE), MB2(0xC8B6), 0x0000, MB2(0xEFE2), + MB2(0xEFE1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFE3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFE6), 0x0000, MB2(0xEFE5), + MB2(0xEFE4), 0x0000, MB2(0xEFE7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFEA), /* 95C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB0C7), + 0x0000, 0x0000, MB2(0xEFE8), 0x0000, + MB2(0xEFEC), MB2(0xEFEB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFEE), MB2(0xEFED), MB2(0xEFEF), 0x0000, + MB2(0xC6AE), 0x0000, 0x0000, 0x0000, + MB2(0xEFF0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFF1), MB2(0xEFF3), 0x0000, /* 95E0 */ + 0x0000, MB2(0xEFF2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFF4), 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFF5), 0x0000, MB2(0xBAE5), 0x0000, + 0x0000, 0x0000, MB2(0xEFF6), MB2(0xEFF7), + 0x0000, 0x0000, MB2(0xCBC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1CB), + 0x0000, 0x0000, 0x0000, MB2(0xB0A4), + MB2(0xC2CB), 0x0000, MB2(0xEFF8), 0x0000, /* 9640 */ + MB2(0xC9ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFFB), + MB2(0xEFF9), MB2(0xB9DF), 0x0000, MB2(0xEFFA), + MB2(0xB8C2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC5), + MB2(0xEFFD), MB2(0xF0A1), MB2(0xEFFE), MB2(0xF0A2), + 0x0000, 0x0000, MB2(0xB1A1), MB2(0xBFD8), /* 9660 */ + MB2(0xBDFC), MB2(0xB4D9), MB2(0xF0A3), 0x0000, + 0x0000, 0x0000, MB2(0xC7E6), 0x0000, + MB2(0xF0A5), 0x0000, 0x0000, 0x0000, + MB2(0xB1A2), 0x0000, MB2(0xF0A4), MB2(0xC4C4), + 0x0000, MB2(0xCECD), MB2(0xC6AB), MB2(0xEFFC), + MB2(0xCEA6), 0x0000, MB2(0xB8B1), 0x0000, + 0x0000, MB2(0xCDDB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, MB2(0xB6F9), MB2(0xCEB4), 0x0000, + MB2(0xB7A8), 0x0000, MB2(0xC2E2), MB2(0xE7A1), + 0x0000, MB2(0xF0A6), MB2(0xB3AC), MB2(0xBFEF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3D6), MB2(0xF0A8), 0x0000, MB2(0xF0A9), + MB2(0xF0A7), MB2(0xB7E4), 0x0000, MB2(0xBADD), + MB2(0xBEE3), 0x0000, 0x0000, 0x0000, + MB2(0xB1A3), 0x0000, 0x0000, MB2(0xCED9), /* 96A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xF0AB), + MB2(0xEEAE), 0x0000, MB2(0xF0AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF0AE), MB2(0xF0AC), MB2(0xF0AD), 0x0000, + MB2(0xF0AF), 0x0000, MB2(0xF0B0), MB2(0xCEEC), + MB2(0xF0B1), MB2(0xF0B2), 0x0000, MB2(0xC0C9), + MB2(0xC8BB), 0x0000, 0x0000, 0x0000, + MB2(0xBFFD), MB2(0xB4E7), 0x0000, 0x0000, /* 96C0 */ + MB2(0xCDBA), MB2(0xB2ED), MB2(0xBDB8), MB2(0xB8DB), + 0x0000, MB2(0xF0B5), 0x0000, MB2(0xF0B4), + MB2(0xBBF3), MB2(0xF0B6), MB2(0xF0B3), 0x0000, + 0x0000, MB2(0xBBA8), 0x0000, 0x0000, + 0x0000, MB2(0xF0BA), MB2(0xEAAD), 0x0000, + 0x0000, MB2(0xD2D6), 0x0000, MB2(0xBFF7), + MB2(0xF0B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEA5), MB2(0xC6F1), /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1AB), 0x0000, MB2(0xC0E3), MB2(0xBCB6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAB7), 0x0000, MB2(0xB1C0), 0x0000, + 0x0000, 0x0000, MB2(0xCEED), MB2(0xCDEB), + 0x0000, MB2(0xF0BB), 0x0000, MB2(0xC5C5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCFB), 0x0000, 0x0000, 0x0000, /* 9700 */ + MB2(0xF0BC), 0x0000, MB2(0xF0BD), MB2(0xBFCC), + MB2(0xF0BE), 0x0000, MB2(0xCEEE), 0x0000, + 0x0000, MB2(0xF0B9), MB2(0xF0C0), MB2(0xF0C2), + 0x0000, MB2(0xF0C1), 0x0000, MB2(0xF0BF), + 0x0000, 0x0000, MB2(0xF0C3), 0x0000, + 0x0000, MB2(0xF0C4), 0x0000, 0x0000, + MB2(0xC1FA), 0x0000, MB2(0xB2E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + MB2(0xF0C5), 0x0000, 0x0000, MB2(0xCCB8), + 0x0000, 0x0000, MB2(0xF0C6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF0C7), 0x0000, MB2(0xCFAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBB1), MB2(0xF0C8), 0x0000, 0x0000, + 0x0000, MB2(0xF0C9), MB2(0xF0CA), 0x0000, + 0x0000, 0x0000, MB2(0xF0CE), 0x0000, /* 9740 */ + MB2(0xF0CB), 0x0000, MB2(0xF0CC), 0x0000, + MB2(0xF0CD), MB2(0xF0CF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0C4), 0x0000, + 0x0000, 0x0000, MB2(0xCCF7), 0x0000, + 0x0000, MB2(0xC0C5), 0x0000, 0x0000, + MB2(0xF0D0), 0x0000, MB2(0xC8F3), 0x0000, + MB2(0xF0D1), MB2(0xF3D3), MB2(0xCCCC), 0x0000, /* 9760 */ + MB2(0xF0D2), 0x0000, MB2(0xF0D3), 0x0000, + MB2(0xF0D4), MB2(0xB3D7), 0x0000, MB2(0xF0D6), + 0x0000, MB2(0xBFD9), 0x0000, 0x0000, + 0x0000, MB2(0xF0D7), 0x0000, 0x0000, + MB2(0xB7A4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0D8), MB2(0xF0DC), 0x0000, + MB2(0xF0DA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0DB), 0x0000, 0x0000, /* 9780 */ + MB2(0xB3F3), MB2(0xF0D9), MB2(0xF0DD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0DE), + 0x0000, MB2(0xB0C8), 0x0000, MB2(0xF0DF), + MB2(0xF0E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEE4), 0x0000, 0x0000, 0x0000, + MB2(0xF0E1), 0x0000, 0x0000, 0x0000, + MB2(0xB5C7), 0x0000, 0x0000, MB2(0xF0E4), /* 97A0 */ + 0x0000, 0x0000, MB2(0xF0E3), 0x0000, + MB2(0xF0E2), 0x0000, 0x0000, MB2(0xEBF1), + 0x0000, MB2(0xCADC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0E5), + MB2(0xF0E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0E7), /* 97C0 */ + 0x0000, 0x0000, MB2(0xF0E8), 0x0000, + MB2(0xF0E9), 0x0000, 0x0000, MB2(0xF0EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF0EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0EC), MB2(0xC7A3), 0x0000, + 0x0000, 0x0000, MB2(0xF0EE), MB2(0xB2BB), + 0x0000, MB2(0xF0F1), MB2(0xF0F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1A4), + 0x0000, 0x0000, 0x0000, MB2(0xB6C1), + 0x0000, MB2(0xCAC7), MB2(0xC4BA), MB2(0xBAA2), /* 9800 */ + 0x0000, MB2(0xB9E0), MB2(0xBDE7), 0x0000, + MB2(0xBFDC), 0x0000, 0x0000, 0x0000, + MB2(0xF0F3), 0x0000, 0x0000, MB2(0xF0F2), + MB2(0xCDC2), MB2(0xB4E8), MB2(0xC8D2), MB2(0xC6DC), + 0x0000, 0x0000, 0x0000, MB2(0xBFFC), + MB2(0xCECE), 0x0000, MB2(0xB7DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0F6), 0x0000, 0x0000, /* 9820 */ + MB2(0xF0F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBCB), MB2(0xC6AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1D0), 0x0000, 0x0000, MB2(0xF0F7), + MB2(0xF0F4), 0x0000, 0x0000, MB2(0xC9D1), + MB2(0xCDEA), MB2(0xF0F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, MB2(0xF0F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0FB), + MB2(0xC2EA), MB2(0xB3DB), MB2(0xB3DC), MB2(0xF0FA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4E9), MB2(0xB8B2), 0x0000, 0x0000, + MB2(0xB4EA), 0x0000, 0x0000, MB2(0xC5BF), + 0x0000, 0x0000, MB2(0xCEE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, MB2(0xB8DC), + 0x0000, 0x0000, 0x0000, MB2(0xF0FC), + 0x0000, 0x0000, 0x0000, MB2(0xF0FD), + MB2(0xF0FE), MB2(0xF1A1), 0x0000, MB2(0xF1A3), + MB2(0xF1A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9F7), 0x0000, MB2(0xF1A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1A5), + 0x0000, MB2(0xF1A6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF1A7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1A9), /* 98C0 */ + MB2(0xF1A8), 0x0000, MB2(0xF1AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8F4), + MB2(0xE6CC), 0x0000, 0x0000, MB2(0xBFA9), + 0x0000, 0x0000, MB2(0xB5B2), 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1AB), 0x0000, MB2(0xF1AC), + 0x0000, MB2(0xD2AC), MB2(0xDDBB), MB2(0xC8D3), + 0x0000, 0x0000, MB2(0xB0FB), 0x0000, + MB2(0xB0BB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBF4), MB2(0xCBB0), MB2(0xBEFE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1AD), /* 9900 */ + 0x0000, MB2(0xCCDF), 0x0000, 0x0000, + 0x0000, MB2(0xF1AE), MB2(0xCDDC), 0x0000, + MB2(0xB1C2), 0x0000, 0x0000, 0x0000, + MB2(0xBBC1), 0x0000, MB2(0xF1AF), MB2(0xB2EE), + MB2(0xF1B0), 0x0000, 0x0000, 0x0000, + MB2(0xF1B1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1B3), MB2(0xF1B4), 0x0000, + MB2(0xF1B6), MB2(0xF1B2), 0x0000, 0x0000, /* 9920 */ + MB2(0xF1B5), 0x0000, 0x0000, 0x0000, + MB2(0xB4DB), 0x0000, 0x0000, 0x0000, + MB2(0xF1B7), 0x0000, MB2(0xF1B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1B9), MB2(0xF1BA), 0x0000, + 0x0000, 0x0000, MB2(0xF1BB), 0x0000, /* 9940 */ + 0x0000, MB2(0xF1BD), 0x0000, 0x0000, + 0x0000, MB2(0xF1BC), 0x0000, MB2(0xF1BF), + MB2(0xF1C2), 0x0000, 0x0000, 0x0000, + MB2(0xF1BE), MB2(0xF1C0), MB2(0xF1C1), 0x0000, + 0x0000, MB2(0xF1C3), 0x0000, MB2(0xB6C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCF3), MB2(0xF1C4), + MB2(0xF1C5), MB2(0xB9E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, MB2(0xF1C6), 0x0000, 0x0000, + MB2(0xB3BE), 0x0000, 0x0000, 0x0000, + MB2(0xC7CF), MB2(0xF1C7), MB2(0xF1C8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3DA), + MB2(0xC6EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF1C9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7FD), 0x0000, 0x0000, /* 99C0 */ + MB2(0xC2CC), MB2(0xB1D8), MB2(0xB6EE), 0x0000, + MB2(0xB6EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3F3), MB2(0xF1CE), MB2(0xB6F0), 0x0000, + 0x0000, MB2(0xB2EF), 0x0000, 0x0000, + MB2(0xF1CD), 0x0000, 0x0000, MB2(0xF1CB), + 0x0000, MB2(0xF1CC), 0x0000, MB2(0xF1CA), + 0x0000, 0x0000, MB2(0xF1D8), 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1CF), MB2(0xF1D0), 0x0000, + 0x0000, MB2(0xF1D1), MB2(0xF1D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF1D4), 0x0000, 0x0000, MB2(0xF1D3), + 0x0000, 0x0000, 0x0000, MB2(0xBDD9), + 0x0000, MB2(0xF1D5), 0x0000, 0x0000, /* 9A00 */ + 0x0000, MB2(0xF1D7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5B3), MB2(0xF1D6), + 0x0000, 0x0000, MB2(0xC1FB), MB2(0xB8B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2CD), 0x0000, 0x0000, MB2(0xF1DA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6AD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF1E0), 0x0000, + MB2(0xF1DE), 0x0000, MB2(0xF1DD), MB2(0xF1DF), /* 9A40 */ + 0x0000, MB2(0xF1DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1E1), 0x0000, MB2(0xF1E4), + 0x0000, 0x0000, MB2(0xB6C3), MB2(0xF1E3), + 0x0000, 0x0000, 0x0000, MB2(0xF1E5), + 0x0000, 0x0000, MB2(0xF1E6), 0x0000, /* 9A60 */ + MB2(0xF1E8), MB2(0xF1E7), 0x0000, 0x0000, + 0x0000, MB2(0xF1E9), MB2(0xF1EB), MB2(0xF1EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9FC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1EC), 0x0000, 0x0000, + MB2(0xF1ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3BC), 0x0000, 0x0000, 0x0000, + MB2(0xF1EE), 0x0000, 0x0000, 0x0000, + MB2(0xF1EF), 0x0000, 0x0000, 0x0000, /* 9AC0 */ + MB2(0xBFF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1F0), + 0x0000, MB2(0xF1F1), 0x0000, MB2(0xF1F2), + MB2(0xF1F3), 0x0000, 0x0000, 0x0000, + MB2(0xB9E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF1F4), MB2(0xF1F5), + 0x0000, 0x0000, MB2(0xF1F6), MB2(0xF1F7), /* 9AE0 */ + 0x0000, 0x0000, MB2(0xF1F8), 0x0000, + 0x0000, 0x0000, MB2(0xC8B1), MB2(0xF1FA), + 0x0000, MB2(0xC9A6), MB2(0xF1FB), MB2(0xF1F9), + 0x0000, MB2(0xF1FD), 0x0000, 0x0000, + MB2(0xF1FC), 0x0000, 0x0000, MB2(0xF1FE), + 0x0000, 0x0000, 0x0000, MB2(0xF2A1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, MB2(0xF2A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2A3), 0x0000, MB2(0xF2A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2A5), + 0x0000, 0x0000, MB2(0xF2A6), MB2(0xF2A7), /* 9B20 */ + 0x0000, MB2(0xF2A8), 0x0000, MB2(0xF2A9), + MB2(0xF2AA), MB2(0xF2AB), MB2(0xF2AC), 0x0000, + 0x0000, 0x0000, MB2(0xF2AD), MB2(0xF2AE), + 0x0000, MB2(0xDDB5), MB2(0xF2AF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4F8), + MB2(0xB5B4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3A1), MB2(0xBAB2), MB2(0xF2B1), /* 9B40 */ + MB2(0xF2B0), MB2(0xCCA5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2B3), MB2(0xF2B4), MB2(0xF2B2), + 0x0000, MB2(0xF2B5), 0x0000, 0x0000, + MB2(0xCBE2), 0x0000, 0x0000, 0x0000, + MB2(0xF2B6), 0x0000, MB2(0xB5FB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFA5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2B9), /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0BE), 0x0000, + 0x0000, MB2(0xF2BA), MB2(0xCAAB), MB2(0xF2B8), + 0x0000, 0x0000, MB2(0xF2BB), MB2(0xF2BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2BD), + MB2(0xF2BE), 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2BF), 0x0000, MB2(0xCBEE), MB2(0xBBAD), + 0x0000, MB2(0xBAFA), MB2(0xC1AF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2C0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2C1), 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, MB2(0xF2C4), 0x0000, + 0x0000, MB2(0xB8F1), MB2(0xF2C2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2C5), + 0x0000, MB2(0xF2C6), MB2(0xF2C7), 0x0000, + MB2(0xF2CB), 0x0000, MB2(0xBBAA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2E4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2CC), MB2(0xF2C9), MB2(0xF2C8), /* 9BE0 */ + MB2(0xF2CA), 0x0000, 0x0000, 0x0000, + MB2(0xB7DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2D0), MB2(0xF2CF), MB2(0xF2CE), 0x0000, + 0x0000, MB2(0xB0B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + MB2(0xF2DA), 0x0000, MB2(0xF2D6), 0x0000, + MB2(0xF2D7), MB2(0xF2D3), MB2(0xF2D9), 0x0000, + MB2(0xF2D5), MB2(0xB3E2), 0x0000, 0x0000, + MB2(0xCFCC), 0x0000, MB2(0xF2D8), MB2(0xF2D4), + MB2(0xF2D2), MB2(0xF2D1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2DF), 0x0000, 0x0000, /* 9C20 */ + MB2(0xF2DE), MB2(0xF2DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9C9), MB2(0xF2DB), MB2(0xB0F3), + MB2(0xF2E0), 0x0000, MB2(0xF2E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3EF), MB2(0xF2CD), MB2(0xB1B7), + 0x0000, 0x0000, MB2(0xF2E4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, MB2(0xF2E3), MB2(0xF2E1), + MB2(0xC3AD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBF0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEDA), + 0x0000, 0x0000, MB2(0xF2E5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2E6), 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xF2E7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF2E8), 0x0000, + MB2(0xF2E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, MB2(0xC4BB), 0x0000, MB2(0xF2EA), + 0x0000, MB2(0xC8B7), 0x0000, MB2(0xF2EF), + MB2(0xF2EB), 0x0000, 0x0000, 0x0000, + MB2(0xF2EC), 0x0000, 0x0000, MB2(0xCBB1), + MB2(0xCCC4), 0x0000, MB2(0xC6D0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2F0), /* 9D00 */ + 0x0000, 0x0000, MB2(0xF2F1), MB2(0xC6BE), + MB2(0xF2EE), MB2(0xF2ED), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2AA), 0x0000, + 0x0000, 0x0000, MB2(0xF2F9), 0x0000, + 0x0000, MB2(0xF2F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1F5), + 0x0000, 0x0000, 0x0000, MB2(0xF2F6), + 0x0000, 0x0000, 0x0000, MB2(0xF2F5), /* 9D20 */ + 0x0000, 0x0000, MB2(0xF2F3), 0x0000, + MB2(0xB3FB), 0x0000, MB2(0xF2F2), MB2(0xBCB2), + MB2(0xB2A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E3), + 0x0000, 0x0000, MB2(0xF2FC), MB2(0xF2FB), + 0x0000, MB2(0xF2FA), 0x0000, 0x0000, /* 9D40 */ + MB2(0xF2F7), 0x0000, MB2(0xF2FD), 0x0000, + MB2(0xF2FE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3A5), MB2(0xF3A4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3A6), 0x0000, 0x0000, + MB2(0xB1AD), MB2(0xF3A1), MB2(0xF3A2), 0x0000, + MB2(0xB9F4), MB2(0xCCB9), 0x0000, 0x0000, /* 9D60 */ + MB2(0xF3A3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBB2), 0x0000, 0x0000, MB2(0xF3AB), + 0x0000, 0x0000, MB2(0xF3A7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3AC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, MB2(0xF3A9), + 0x0000, MB2(0xF3A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + MB2(0xF3AE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3AF), 0x0000, MB2(0xF3AA), + 0x0000, 0x0000, 0x0000, MB2(0xF2F4), + 0x0000, 0x0000, MB2(0xF3B0), 0x0000, + MB2(0xC4E1), 0x0000, 0x0000, 0x0000, + MB2(0xF3B4), 0x0000, MB2(0xF3B5), MB2(0xF3B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3B2), MB2(0xF3B8), 0x0000, /* 9DC0 */ + MB2(0xF3B1), 0x0000, MB2(0xF3B6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF3B7), + 0x0000, 0x0000, 0x0000, MB2(0xF3BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, MB2(0xF3BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3BD), 0x0000, MB2(0xF3BE), + 0x0000, 0x0000, MB2(0xCFC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3BB), MB2(0xC2EB), MB2(0xBAED), 0x0000, + 0x0000, MB2(0xF3BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3C0), MB2(0xF3C1), + 0x0000, 0x0000, MB2(0xF3C2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3C3), 0x0000, 0x0000, + MB2(0xB8B4), MB2(0xF3C4), 0x0000, 0x0000, + 0x0000, MB2(0xF3C5), 0x0000, MB2(0xBCAF), + 0x0000, MB2(0xF3C6), 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3C7), 0x0000, 0x0000, MB2(0xF3C8), + MB2(0xF3C9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3CC), MB2(0xF3CA), MB2(0xCFBC), + 0x0000, MB2(0xF3CB), 0x0000, MB2(0xCEEF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3CD), 0x0000, MB2(0xCEDB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, MB2(0xF3CE), MB2(0xC7FE), 0x0000, + 0x0000, MB2(0xF3CF), MB2(0xF3D1), 0x0000, + 0x0000, MB2(0xF3D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3D0), MB2(0xB9ED), MB2(0xCCCD), MB2(0xCBE3), + MB2(0xD6F7), 0x0000, MB2(0xDDE0), MB2(0xCBFB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + MB2(0xB2AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3D4), MB2(0xB5D0), MB2(0xF3D5), MB2(0xF3D6), + MB2(0xF3D7), 0x0000, MB2(0xB9F5), 0x0000, + MB2(0xF3D8), 0x0000, 0x0000, 0x0000, + MB2(0xE0D4), MB2(0xCCDB), 0x0000, MB2(0xC2E3), + MB2(0xF3D9), MB2(0xF3DB), MB2(0xF3DA), 0x0000, + MB2(0xF3DC), 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, MB2(0xF3DD), 0x0000, 0x0000, + MB2(0xF3DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF3DF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3E0), 0x0000, MB2(0xF3E1), MB2(0xF3E2), + 0x0000, MB2(0xF3E3), 0x0000, MB2(0xF3E4), + MB2(0xF3E5), MB2(0xF3E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, MB2(0xF3E7), + MB2(0xF3E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8DD), + 0x0000, MB2(0xF3EA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1CD), MB2(0xF3EB), 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3EC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9A1), + 0x0000, 0x0000, MB2(0xF3ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3EE), MB2(0xE3B7), + 0x0000, 0x0000, MB2(0xECDA), MB2(0xF0ED), + 0x0000, 0x0000, MB2(0xF3EF), 0x0000, + MB2(0xF3F0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF3F2), + MB2(0xF3F3), MB2(0xF3F4), MB2(0xCEF0), MB2(0xF3F1), /* 9F60 */ + 0x0000, 0x0000, MB2(0xF3F5), MB2(0xF3F6), + 0x0000, 0x0000, MB2(0xF3F8), 0x0000, + MB2(0xF3F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3FA), 0x0000, + 0x0000, 0x0000, MB2(0xF3FB), MB2(0xF3F9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3FD), MB2(0xE3D4), 0x0000, 0x0000, + MB2(0xF3FE), 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF5A1), MB2(0xF5A2), MB2(0xF5A3), MB2(0xF5A4), /* E000 */ + MB2(0xF5A5), MB2(0xF5A6), MB2(0xF5A7), MB2(0xF5A8), + MB2(0xF5A9), MB2(0xF5AA), MB2(0xF5AB), MB2(0xF5AC), + MB2(0xF5AD), MB2(0xF5AE), MB2(0xF5AF), MB2(0xF5B0), + MB2(0xF5B1), MB2(0xF5B2), MB2(0xF5B3), MB2(0xF5B4), + MB2(0xF5B5), MB2(0xF5B6), MB2(0xF5B7), MB2(0xF5B8), + MB2(0xF5B9), MB2(0xF5BA), MB2(0xF5BB), MB2(0xF5BC), + MB2(0xF5BD), MB2(0xF5BE), MB2(0xF5BF), MB2(0xF5C0), + MB2(0xF5C1), MB2(0xF5C2), MB2(0xF5C3), MB2(0xF5C4), /* E020 */ + MB2(0xF5C5), MB2(0xF5C6), MB2(0xF5C7), MB2(0xF5C8), + MB2(0xF5C9), MB2(0xF5CA), MB2(0xF5CB), MB2(0xF5CC), + MB2(0xF5CD), MB2(0xF5CE), MB2(0xF5CF), MB2(0xF5D0), + MB2(0xF5D1), MB2(0xF5D2), MB2(0xF5D3), MB2(0xF5D4), + MB2(0xF5D5), MB2(0xF5D6), MB2(0xF5D7), MB2(0xF5D8), + MB2(0xF5D9), MB2(0xF5DA), MB2(0xF5DB), MB2(0xF5DC), + MB2(0xF5DD), MB2(0xF5DE), MB2(0xF5DF), MB2(0xF5E0), + MB2(0xF5E1), MB2(0xF5E2), MB2(0xF5E3), MB2(0xF5E4), /* E040 */ + MB2(0xF5E5), MB2(0xF5E6), MB2(0xF5E7), MB2(0xF5E8), + MB2(0xF5E9), MB2(0xF5EA), MB2(0xF5EB), MB2(0xF5EC), + MB2(0xF5ED), MB2(0xF5EE), MB2(0xF5EF), MB2(0xF5F0), + MB2(0xF5F1), MB2(0xF5F2), MB2(0xF5F3), MB2(0xF5F4), + MB2(0xF5F5), MB2(0xF5F6), MB2(0xF5F7), MB2(0xF5F8), + MB2(0xF5F9), MB2(0xF5FA), MB2(0xF5FB), MB2(0xF5FC), + MB2(0xF5FD), MB2(0xF5FE), MB2(0xF6A1), MB2(0xF6A2), + MB2(0xF6A3), MB2(0xF6A4), MB2(0xF6A5), MB2(0xF6A6), /* E060 */ + MB2(0xF6A7), MB2(0xF6A8), MB2(0xF6A9), MB2(0xF6AA), + MB2(0xF6AB), MB2(0xF6AC), MB2(0xF6AD), MB2(0xF6AE), + MB2(0xF6AF), MB2(0xF6B0), MB2(0xF6B1), MB2(0xF6B2), + MB2(0xF6B3), MB2(0xF6B4), MB2(0xF6B5), MB2(0xF6B6), + MB2(0xF6B7), MB2(0xF6B8), MB2(0xF6B9), MB2(0xF6BA), + MB2(0xF6BB), MB2(0xF6BC), MB2(0xF6BD), MB2(0xF6BE), + MB2(0xF6BF), MB2(0xF6C0), MB2(0xF6C1), MB2(0xF6C2), + MB2(0xF6C3), MB2(0xF6C4), MB2(0xF6C5), MB2(0xF6C6), /* E080 */ + MB2(0xF6C7), MB2(0xF6C8), MB2(0xF6C9), MB2(0xF6CA), + MB2(0xF6CB), MB2(0xF6CC), MB2(0xF6CD), MB2(0xF6CE), + MB2(0xF6CF), MB2(0xF6D0), MB2(0xF6D1), MB2(0xF6D2), + MB2(0xF6D3), MB2(0xF6D4), MB2(0xF6D5), MB2(0xF6D6), + MB2(0xF6D7), MB2(0xF6D8), MB2(0xF6D9), MB2(0xF6DA), + MB2(0xF6DB), MB2(0xF6DC), MB2(0xF6DD), MB2(0xF6DE), + MB2(0xF6DF), MB2(0xF6E0), MB2(0xF6E1), MB2(0xF6E2), + MB2(0xF6E3), MB2(0xF6E4), MB2(0xF6E5), MB2(0xF6E6), /* E0A0 */ + MB2(0xF6E7), MB2(0xF6E8), MB2(0xF6E9), MB2(0xF6EA), + MB2(0xF6EB), MB2(0xF6EC), MB2(0xF6ED), MB2(0xF6EE), + MB2(0xF6EF), MB2(0xF6F0), MB2(0xF6F1), MB2(0xF6F2), + MB2(0xF6F3), MB2(0xF6F4), MB2(0xF6F5), MB2(0xF6F6), + MB2(0xF6F7), MB2(0xF6F8), MB2(0xF6F9), MB2(0xF6FA), + MB2(0xF6FB), MB2(0xF6FC), MB2(0xF6FD), MB2(0xF6FE), + MB2(0xF7A1), MB2(0xF7A2), MB2(0xF7A3), MB2(0xF7A4), + MB2(0xF7A5), MB2(0xF7A6), MB2(0xF7A7), MB2(0xF7A8), /* E0C0 */ + MB2(0xF7A9), MB2(0xF7AA), MB2(0xF7AB), MB2(0xF7AC), + MB2(0xF7AD), MB2(0xF7AE), MB2(0xF7AF), MB2(0xF7B0), + MB2(0xF7B1), MB2(0xF7B2), MB2(0xF7B3), MB2(0xF7B4), + MB2(0xF7B5), MB2(0xF7B6), MB2(0xF7B7), MB2(0xF7B8), + MB2(0xF7B9), MB2(0xF7BA), MB2(0xF7BB), MB2(0xF7BC), + MB2(0xF7BD), MB2(0xF7BE), MB2(0xF7BF), MB2(0xF7C0), + MB2(0xF7C1), MB2(0xF7C2), MB2(0xF7C3), MB2(0xF7C4), + MB2(0xF7C5), MB2(0xF7C6), MB2(0xF7C7), MB2(0xF7C8), /* E0E0 */ + MB2(0xF7C9), MB2(0xF7CA), MB2(0xF7CB), MB2(0xF7CC), + MB2(0xF7CD), MB2(0xF7CE), MB2(0xF7CF), MB2(0xF7D0), + MB2(0xF7D1), MB2(0xF7D2), MB2(0xF7D3), MB2(0xF7D4), + MB2(0xF7D5), MB2(0xF7D6), MB2(0xF7D7), MB2(0xF7D8), + MB2(0xF7D9), MB2(0xF7DA), MB2(0xF7DB), MB2(0xF7DC), + MB2(0xF7DD), MB2(0xF7DE), MB2(0xF7DF), MB2(0xF7E0), + MB2(0xF7E1), MB2(0xF7E2), MB2(0xF7E3), MB2(0xF7E4), + MB2(0xF7E5), MB2(0xF7E6), MB2(0xF7E7), MB2(0xF7E8), /* E100 */ + MB2(0xF7E9), MB2(0xF7EA), MB2(0xF7EB), MB2(0xF7EC), + MB2(0xF7ED), MB2(0xF7EE), MB2(0xF7EF), MB2(0xF7F0), + MB2(0xF7F1), MB2(0xF7F2), MB2(0xF7F3), MB2(0xF7F4), + MB2(0xF7F5), MB2(0xF7F6), MB2(0xF7F7), MB2(0xF7F8), + MB2(0xF7F9), MB2(0xF7FA), MB2(0xF7FB), MB2(0xF7FC), + MB2(0xF7FD), MB2(0xF7FE), MB2(0xF8A1), MB2(0xF8A2), + MB2(0xF8A3), MB2(0xF8A4), MB2(0xF8A5), MB2(0xF8A6), + MB2(0xF8A7), MB2(0xF8A8), MB2(0xF8A9), MB2(0xF8AA), /* E120 */ + MB2(0xF8AB), MB2(0xF8AC), MB2(0xF8AD), MB2(0xF8AE), + MB2(0xF8AF), MB2(0xF8B0), MB2(0xF8B1), MB2(0xF8B2), + MB2(0xF8B3), MB2(0xF8B4), MB2(0xF8B5), MB2(0xF8B6), + MB2(0xF8B7), MB2(0xF8B8), MB2(0xF8B9), MB2(0xF8BA), + MB2(0xF8BB), MB2(0xF8BC), MB2(0xF8BD), MB2(0xF8BE), + MB2(0xF8BF), MB2(0xF8C0), MB2(0xF8C1), MB2(0xF8C2), + MB2(0xF8C3), MB2(0xF8C4), MB2(0xF8C5), MB2(0xF8C6), + MB2(0xF8C7), MB2(0xF8C8), MB2(0xF8C9), MB2(0xF8CA), /* E140 */ + MB2(0xF8CB), MB2(0xF8CC), MB2(0xF8CD), MB2(0xF8CE), + MB2(0xF8CF), MB2(0xF8D0), MB2(0xF8D1), MB2(0xF8D2), + MB2(0xF8D3), MB2(0xF8D4), MB2(0xF8D5), MB2(0xF8D6), + MB2(0xF8D7), MB2(0xF8D8), MB2(0xF8D9), MB2(0xF8DA), + MB2(0xF8DB), MB2(0xF8DC), MB2(0xF8DD), MB2(0xF8DE), + MB2(0xF8DF), MB2(0xF8E0), MB2(0xF8E1), MB2(0xF8E2), + MB2(0xF8E3), MB2(0xF8E4), MB2(0xF8E5), MB2(0xF8E6), + MB2(0xF8E7), MB2(0xF8E8), MB2(0xF8E9), MB2(0xF8EA), /* E160 */ + MB2(0xF8EB), MB2(0xF8EC), MB2(0xF8ED), MB2(0xF8EE), + MB2(0xF8EF), MB2(0xF8F0), MB2(0xF8F1), MB2(0xF8F2), + MB2(0xF8F3), MB2(0xF8F4), MB2(0xF8F5), MB2(0xF8F6), + MB2(0xF8F7), MB2(0xF8F8), MB2(0xF8F9), MB2(0xF8FA), + MB2(0xF8FB), MB2(0xF8FC), MB2(0xF8FD), MB2(0xF8FE), + MB2(0xF9A1), MB2(0xF9A2), MB2(0xF9A3), MB2(0xF9A4), + MB2(0xF9A5), MB2(0xF9A6), MB2(0xF9A7), MB2(0xF9A8), + MB2(0xF9A9), MB2(0xF9AA), MB2(0xF9AB), MB2(0xF9AC), /* E180 */ + MB2(0xF9AD), MB2(0xF9AE), MB2(0xF9AF), MB2(0xF9B0), + MB2(0xF9B1), MB2(0xF9B2), MB2(0xF9B3), MB2(0xF9B4), + MB2(0xF9B5), MB2(0xF9B6), MB2(0xF9B7), MB2(0xF9B8), + MB2(0xF9B9), MB2(0xF9BA), MB2(0xF9BB), MB2(0xF9BC), + MB2(0xF9BD), MB2(0xF9BE), MB2(0xF9BF), MB2(0xF9C0), + MB2(0xF9C1), MB2(0xF9C2), MB2(0xF9C3), MB2(0xF9C4), + MB2(0xF9C5), MB2(0xF9C6), MB2(0xF9C7), MB2(0xF9C8), + MB2(0xF9C9), MB2(0xF9CA), MB2(0xF9CB), MB2(0xF9CC), /* E1A0 */ + MB2(0xF9CD), MB2(0xF9CE), MB2(0xF9CF), MB2(0xF9D0), + MB2(0xF9D1), MB2(0xF9D2), MB2(0xF9D3), MB2(0xF9D4), + MB2(0xF9D5), MB2(0xF9D6), MB2(0xF9D7), MB2(0xF9D8), + MB2(0xF9D9), MB2(0xF9DA), MB2(0xF9DB), MB2(0xF9DC), + MB2(0xF9DD), MB2(0xF9DE), MB2(0xF9DF), MB2(0xF9E0), + MB2(0xF9E1), MB2(0xF9E2), MB2(0xF9E3), MB2(0xF9E4), + MB2(0xF9E5), MB2(0xF9E6), MB2(0xF9E7), MB2(0xF9E8), + MB2(0xF9E9), MB2(0xF9EA), MB2(0xF9EB), MB2(0xF9EC), /* E1C0 */ + MB2(0xF9ED), MB2(0xF9EE), MB2(0xF9EF), MB2(0xF9F0), + MB2(0xF9F1), MB2(0xF9F2), MB2(0xF9F3), MB2(0xF9F4), + MB2(0xF9F5), MB2(0xF9F6), MB2(0xF9F7), MB2(0xF9F8), + MB2(0xF9F9), MB2(0xF9FA), MB2(0xF9FB), MB2(0xF9FC), + MB2(0xF9FD), MB2(0xF9FE), MB2(0xFAA1), MB2(0xFAA2), + MB2(0xFAA3), MB2(0xFAA4), MB2(0xFAA5), MB2(0xFAA6), + MB2(0xFAA7), MB2(0xFAA8), MB2(0xFAA9), MB2(0xFAAA), + MB2(0xFAAB), MB2(0xFAAC), MB2(0xFAAD), MB2(0xFAAE), /* E1E0 */ + MB2(0xFAAF), MB2(0xFAB0), MB2(0xFAB1), MB2(0xFAB2), + MB2(0xFAB3), MB2(0xFAB4), MB2(0xFAB5), MB2(0xFAB6), + MB2(0xFAB7), MB2(0xFAB8), MB2(0xFAB9), MB2(0xFABA), + MB2(0xFABB), MB2(0xFABC), MB2(0xFABD), MB2(0xFABE), + MB2(0xFABF), MB2(0xFAC0), MB2(0xFAC1), MB2(0xFAC2), + MB2(0xFAC3), MB2(0xFAC4), MB2(0xFAC5), MB2(0xFAC6), + MB2(0xFAC7), MB2(0xFAC8), MB2(0xFAC9), MB2(0xFACA), + MB2(0xFACB), MB2(0xFACC), MB2(0xFACD), MB2(0xFACE), /* E200 */ + MB2(0xFACF), MB2(0xFAD0), MB2(0xFAD1), MB2(0xFAD2), + MB2(0xFAD3), MB2(0xFAD4), MB2(0xFAD5), MB2(0xFAD6), + MB2(0xFAD7), MB2(0xFAD8), MB2(0xFAD9), MB2(0xFADA), + MB2(0xFADB), MB2(0xFADC), MB2(0xFADD), MB2(0xFADE), + MB2(0xFADF), MB2(0xFAE0), MB2(0xFAE1), MB2(0xFAE2), + MB2(0xFAE3), MB2(0xFAE4), MB2(0xFAE5), MB2(0xFAE6), + MB2(0xFAE7), MB2(0xFAE8), MB2(0xFAE9), MB2(0xFAEA), + MB2(0xFAEB), MB2(0xFAEC), MB2(0xFAED), MB2(0xFAEE), /* E220 */ + MB2(0xFAEF), MB2(0xFAF0), MB2(0xFAF1), MB2(0xFAF2), + MB2(0xFAF3), MB2(0xFAF4), MB2(0xFAF5), MB2(0xFAF6), + MB2(0xFAF7), MB2(0xFAF8), MB2(0xFAF9), MB2(0xFAFA), + MB2(0xFAFB), MB2(0xFAFC), MB2(0xFAFD), MB2(0xFAFE), + MB2(0xFBA1), MB2(0xFBA2), MB2(0xFBA3), MB2(0xFBA4), + MB2(0xFBA5), MB2(0xFBA6), MB2(0xFBA7), MB2(0xFBA8), + MB2(0xFBA9), MB2(0xFBAA), MB2(0xFBAB), MB2(0xFBAC), + MB2(0xFBAD), MB2(0xFBAE), MB2(0xFBAF), MB2(0xFBB0), /* E240 */ + MB2(0xFBB1), MB2(0xFBB2), MB2(0xFBB3), MB2(0xFBB4), + MB2(0xFBB5), MB2(0xFBB6), MB2(0xFBB7), MB2(0xFBB8), + MB2(0xFBB9), MB2(0xFBBA), MB2(0xFBBB), MB2(0xFBBC), + MB2(0xFBBD), MB2(0xFBBE), MB2(0xFBBF), MB2(0xFBC0), + MB2(0xFBC1), MB2(0xFBC2), MB2(0xFBC3), MB2(0xFBC4), + MB2(0xFBC5), MB2(0xFBC6), MB2(0xFBC7), MB2(0xFBC8), + MB2(0xFBC9), MB2(0xFBCA), MB2(0xFBCB), MB2(0xFBCC), + MB2(0xFBCD), MB2(0xFBCE), MB2(0xFBCF), MB2(0xFBD0), /* E260 */ + MB2(0xFBD1), MB2(0xFBD2), MB2(0xFBD3), MB2(0xFBD4), + MB2(0xFBD5), MB2(0xFBD6), MB2(0xFBD7), MB2(0xFBD8), + MB2(0xFBD9), MB2(0xFBDA), MB2(0xFBDB), MB2(0xFBDC), + MB2(0xFBDD), MB2(0xFBDE), MB2(0xFBDF), MB2(0xFBE0), + MB2(0xFBE1), MB2(0xFBE2), MB2(0xFBE3), MB2(0xFBE4), + MB2(0xFBE5), MB2(0xFBE6), MB2(0xFBE7), MB2(0xFBE8), + MB2(0xFBE9), MB2(0xFBEA), MB2(0xFBEB), MB2(0xFBEC), + MB2(0xFBED), MB2(0xFBEE), MB2(0xFBEF), MB2(0xFBF0), /* E280 */ + MB2(0xFBF1), MB2(0xFBF2), MB2(0xFBF3), MB2(0xFBF4), + MB2(0xFBF5), MB2(0xFBF6), MB2(0xFBF7), MB2(0xFBF8), + MB2(0xFBF9), MB2(0xFBFA), MB2(0xFBFB), MB2(0xFBFC), + MB2(0xFBFD), MB2(0xFBFE), MB2(0xFCA1), MB2(0xFCA2), + MB2(0xFCA3), MB2(0xFCA4), MB2(0xFCA5), MB2(0xFCA6), + MB2(0xFCA7), MB2(0xFCA8), MB2(0xFCA9), MB2(0xFCAA), + MB2(0xFCAB), MB2(0xFCAC), MB2(0xFCAD), MB2(0xFCAE), + MB2(0xFCAF), MB2(0xFCB0), MB2(0xFCB1), MB2(0xFCB2), /* E2A0 */ + MB2(0xFCB3), MB2(0xFCB4), MB2(0xFCB5), MB2(0xFCB6), + MB2(0xFCB7), MB2(0xFCB8), MB2(0xFCB9), MB2(0xFCBA), + MB2(0xFCBB), MB2(0xFCBC), MB2(0xFCBD), MB2(0xFCBE), + MB2(0xFCBF), MB2(0xFCC0), MB2(0xFCC1), MB2(0xFCC2), + MB2(0xFCC3), MB2(0xFCC4), MB2(0xFCC5), MB2(0xFCC6), + MB2(0xFCC7), MB2(0xFCC8), MB2(0xFCC9), MB2(0xFCCA), + MB2(0xFCCB), MB2(0xFCCC), MB2(0xFCCD), MB2(0xFCCE), + MB2(0xFCCF), MB2(0xFCD0), MB2(0xFCD1), MB2(0xFCD2), /* E2C0 */ + MB2(0xFCD3), MB2(0xFCD4), MB2(0xFCD5), MB2(0xFCD6), + MB2(0xFCD7), MB2(0xFCD8), MB2(0xFCD9), MB2(0xFCDA), + MB2(0xFCDB), MB2(0xFCDC), MB2(0xFCDD), MB2(0xFCDE), + MB2(0xFCDF), MB2(0xFCE0), MB2(0xFCE1), MB2(0xFCE2), + MB2(0xFCE3), MB2(0xFCE4), MB2(0xFCE5), MB2(0xFCE6), + MB2(0xFCE7), MB2(0xFCE8), MB2(0xFCE9), MB2(0xFCEA), + MB2(0xFCEB), MB2(0xFCEC), MB2(0xFCED), MB2(0xFCEE), + MB2(0xFCEF), MB2(0xFCF0), MB2(0xFCF1), MB2(0xFCF2), /* E2E0 */ + MB2(0xFCF3), MB2(0xFCF4), MB2(0xFCF5), MB2(0xFCF6), + MB2(0xFCF7), MB2(0xFCF8), MB2(0xFCF9), MB2(0xFCFA), + MB2(0xFCFB), MB2(0xFCFC), MB2(0xFCFD), MB2(0xFCFE), + MB2(0xFDA1), MB2(0xFDA2), MB2(0xFDA3), MB2(0xFDA4), + MB2(0xFDA5), MB2(0xFDA6), MB2(0xFDA7), MB2(0xFDA8), + MB2(0xFDA9), MB2(0xFDAA), MB2(0xFDAB), MB2(0xFDAC), + MB2(0xFDAD), MB2(0xFDAE), MB2(0xFDAF), MB2(0xFDB0), + MB2(0xFDB1), MB2(0xFDB2), MB2(0xFDB3), MB2(0xFDB4), /* E300 */ + MB2(0xFDB5), MB2(0xFDB6), MB2(0xFDB7), MB2(0xFDB8), + MB2(0xFDB9), MB2(0xFDBA), MB2(0xFDBB), MB2(0xFDBC), + MB2(0xFDBD), MB2(0xFDBE), MB2(0xFDBF), MB2(0xFDC0), + MB2(0xFDC1), MB2(0xFDC2), MB2(0xFDC3), MB2(0xFDC4), + MB2(0xFDC5), MB2(0xFDC6), MB2(0xFDC7), MB2(0xFDC8), + MB2(0xFDC9), MB2(0xFDCA), MB2(0xFDCB), MB2(0xFDCC), + MB2(0xFDCD), MB2(0xFDCE), MB2(0xFDCF), MB2(0xFDD0), + MB2(0xFDD1), MB2(0xFDD2), MB2(0xFDD3), MB2(0xFDD4), /* E320 */ + MB2(0xFDD5), MB2(0xFDD6), MB2(0xFDD7), MB2(0xFDD8), + MB2(0xFDD9), MB2(0xFDDA), MB2(0xFDDB), MB2(0xFDDC), + MB2(0xFDDD), MB2(0xFDDE), MB2(0xFDDF), MB2(0xFDE0), + MB2(0xFDE1), MB2(0xFDE2), MB2(0xFDE3), MB2(0xFDE4), + MB2(0xFDE5), MB2(0xFDE6), MB2(0xFDE7), MB2(0xFDE8), + MB2(0xFDE9), MB2(0xFDEA), MB2(0xFDEB), MB2(0xFDEC), + MB2(0xFDED), MB2(0xFDEE), MB2(0xFDEF), MB2(0xFDF0), + MB2(0xFDF1), MB2(0xFDF2), MB2(0xFDF3), MB2(0xFDF4), /* E340 */ + MB2(0xFDF5), MB2(0xFDF6), MB2(0xFDF7), MB2(0xFDF8), + MB2(0xFDF9), MB2(0xFDFA), MB2(0xFDFB), MB2(0xFDFC), + MB2(0xFDFD), MB2(0xFDFE), MB2(0xFEA1), MB2(0xFEA2), + MB2(0xFEA3), MB2(0xFEA4), MB2(0xFEA5), MB2(0xFEA6), + MB2(0xFEA7), MB2(0xFEA8), MB2(0xFEA9), MB2(0xFEAA), + MB2(0xFEAB), MB2(0xFEAC), MB2(0xFEAD), MB2(0xFEAE), + MB2(0xFEAF), MB2(0xFEB0), MB2(0xFEB1), MB2(0xFEB2), + MB2(0xFEB3), MB2(0xFEB4), MB2(0xFEB5), MB2(0xFEB6), /* E360 */ + MB2(0xFEB7), MB2(0xFEB8), MB2(0xFEB9), MB2(0xFEBA), + MB2(0xFEBB), MB2(0xFEBC), MB2(0xFEBD), MB2(0xFEBE), + MB2(0xFEBF), MB2(0xFEC0), MB2(0xFEC1), MB2(0xFEC2), + MB2(0xFEC3), MB2(0xFEC4), MB2(0xFEC5), MB2(0xFEC6), + MB2(0xFEC7), MB2(0xFEC8), MB2(0xFEC9), MB2(0xFECA), + MB2(0xFECB), MB2(0xFECC), MB2(0xFECD), MB2(0xFECE), + MB2(0xFECF), MB2(0xFED0), MB2(0xFED1), MB2(0xFED2), + MB2(0xFED3), MB2(0xFED4), MB2(0xFED5), MB2(0xFED6), /* E380 */ + MB2(0xFED7), MB2(0xFED8), MB2(0xFED9), MB2(0xFEDA), + MB2(0xFEDB), MB2(0xFEDC), MB2(0xFEDD), MB2(0xFEDE), + MB2(0xFEDF), MB2(0xFEE0), MB2(0xFEE1), MB2(0xFEE2), + MB2(0xFEE3), MB2(0xFEE4), MB2(0xFEE5), MB2(0xFEE6), + MB2(0xFEE7), MB2(0xFEE8), MB2(0xFEE9), MB2(0xFEEA), + MB2(0xFEEB), MB2(0xFEEC), MB2(0xFEED), MB2(0xFEEE), + MB2(0xFEEF), MB2(0xFEF0), MB2(0xFEF1), MB2(0xFEF2), + MB2(0xFEF3), MB2(0xFEF4), MB2(0xFEF5), MB2(0xFEF6), /* E3A0 */ + MB2(0xFEF7), MB2(0xFEF8), MB2(0xFEF9), MB2(0xFEFA), + MB2(0xFEFB), MB2(0xFEFC), MB2(0xFEFD), MB2(0xFEFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA1AA), 0x0000, MB2(0xA1F4), /* FF00 */ + MB2(0xA1F0), MB2(0xA1F3), MB2(0xA1F5), 0x0000, + MB2(0xA1CA), MB2(0xA1CB), MB2(0xA1F6), MB2(0xA1DC), + MB2(0xA1A4), MB2(0xA1DD), MB2(0xA1A5), MB2(0xA1BF), + MB2(0xA3B0), MB2(0xA3B1), MB2(0xA3B2), MB2(0xA3B3), + MB2(0xA3B4), MB2(0xA3B5), MB2(0xA3B6), MB2(0xA3B7), + MB2(0xA3B8), MB2(0xA3B9), MB2(0xA1A7), MB2(0xA1A8), + MB2(0xA1E3), MB2(0xA1E1), MB2(0xA1E4), MB2(0xA1A9), + MB2(0xA1F7), MB2(0xA3C1), MB2(0xA3C2), MB2(0xA3C3), /* FF20 */ + MB2(0xA3C4), MB2(0xA3C5), MB2(0xA3C6), MB2(0xA3C7), + MB2(0xA3C8), MB2(0xA3C9), MB2(0xA3CA), MB2(0xA3CB), + MB2(0xA3CC), MB2(0xA3CD), MB2(0xA3CE), MB2(0xA3CF), + MB2(0xA3D0), MB2(0xA3D1), MB2(0xA3D2), MB2(0xA3D3), + MB2(0xA3D4), MB2(0xA3D5), MB2(0xA3D6), MB2(0xA3D7), + MB2(0xA3D8), MB2(0xA3D9), MB2(0xA3DA), MB2(0xA1CE), + MB2(0xA1C0), MB2(0xA1CF), MB2(0xA1B0), MB2(0xA1B2), + MB2(0xA1AE), MB2(0xA3E1), MB2(0xA3E2), MB2(0xA3E3), /* FF40 */ + MB2(0xA3E4), MB2(0xA3E5), MB2(0xA3E6), MB2(0xA3E7), + MB2(0xA3E8), MB2(0xA3E9), MB2(0xA3EA), MB2(0xA3EB), + MB2(0xA3EC), MB2(0xA3ED), MB2(0xA3EE), MB2(0xA3EF), + MB2(0xA3F0), MB2(0xA3F1), MB2(0xA3F2), MB2(0xA3F3), + MB2(0xA3F4), MB2(0xA3F5), MB2(0xA3F6), MB2(0xA3F7), + MB2(0xA3F8), MB2(0xA3F9), MB2(0xA3FA), MB2(0xA1D0), + MB2(0xA1C3), MB2(0xA1D1), MB2(0xA1C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1F1), MB2(0xA1F2), MB2(0xA2CC), MB2(0xA1B1), /* FFE0 */ + 0x0000, MB2(0xA1EF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 jisx0212_eucjpms_to_unicode[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x02D8, + 0x02C7, 0x00B8, 0x02D9, 0x02DD, + 0x00AF, 0x02DB, 0x02DA, 0xFF5E, + 0x0384, 0x0385, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x00A1, 0xFFE4, /* A2C0 */ + 0x00BF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00BA, + 0x00AA, 0x00A9, 0x00AE, 0x2122, + 0x00A4, 0x2116, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0386, 0x0388, 0x0389, /* A6E0 */ + 0x038A, 0x03AA, 0x0000, 0x038C, + 0x0000, 0x038E, 0x03AB, 0x0000, + 0x038F, 0x0000, 0x0000, 0x0000, + 0x0000, 0x03AC, 0x03AD, 0x03AE, + 0x03AF, 0x03CA, 0x0390, 0x03CC, + 0x03C2, 0x03CD, 0x03CB, 0x03B0, + 0x03CE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0402, 0x0403, /* A7C0 */ + 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x040A, 0x040B, + 0x040C, 0x040E, 0x040F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0452, 0x0453, + 0x0454, 0x0455, 0x0456, 0x0457, + 0x0458, 0x0459, 0x045A, 0x045B, + 0x045C, 0x045E, 0x045F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00C6, 0x0110, 0x0000, /* A9A0 */ + 0x0126, 0x0000, 0x0132, 0x0000, + 0x0141, 0x013F, 0x0000, 0x014A, + 0x00D8, 0x0152, 0x0000, 0x0166, + 0x00DE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00E6, 0x0111, 0x00F0, /* A9C0 */ + 0x0127, 0x0131, 0x0133, 0x0138, + 0x0142, 0x0140, 0x0149, 0x014B, + 0x00F8, 0x0153, 0x00DF, 0x0167, + 0x00FE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00C1, 0x00C0, 0x00C4, /* AAA0 */ + 0x00C2, 0x0102, 0x01CD, 0x0100, + 0x0104, 0x00C5, 0x00C3, 0x0106, + 0x0108, 0x010C, 0x00C7, 0x010A, + 0x010E, 0x00C9, 0x00C8, 0x00CB, + 0x00CA, 0x011A, 0x0116, 0x0112, + 0x0118, 0x0000, 0x011C, 0x011E, + 0x0122, 0x0120, 0x0124, 0x00CD, + 0x00CC, 0x00CF, 0x00CE, 0x01CF, /* AAC0 */ + 0x0130, 0x012A, 0x012E, 0x0128, + 0x0134, 0x0136, 0x0139, 0x013D, + 0x013B, 0x0143, 0x0147, 0x0145, + 0x00D1, 0x00D3, 0x00D2, 0x00D6, + 0x00D4, 0x01D1, 0x0150, 0x014C, + 0x00D5, 0x0154, 0x0158, 0x0156, + 0x015A, 0x015C, 0x0160, 0x015E, + 0x0164, 0x0162, 0x00DA, 0x00D9, /* AAE0 */ + 0x00DC, 0x00DB, 0x016C, 0x01D3, + 0x0170, 0x016A, 0x0172, 0x016E, + 0x0168, 0x01D7, 0x01DB, 0x01D9, + 0x01D5, 0x0174, 0x00DD, 0x0178, + 0x0176, 0x0179, 0x017D, 0x017B, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00E1, 0x00E0, 0x00E4, /* ABA0 */ + 0x00E2, 0x0103, 0x01CE, 0x0101, + 0x0105, 0x00E5, 0x00E3, 0x0107, + 0x0109, 0x010D, 0x00E7, 0x010B, + 0x010F, 0x00E9, 0x00E8, 0x00EB, + 0x00EA, 0x011B, 0x0117, 0x0113, + 0x0119, 0x01F5, 0x011D, 0x011F, + 0x0000, 0x0121, 0x0125, 0x00ED, + 0x00EC, 0x00EF, 0x00EE, 0x01D0, /* ABC0 */ + 0x0000, 0x012B, 0x012F, 0x0129, + 0x0135, 0x0137, 0x013A, 0x013E, + 0x013C, 0x0144, 0x0148, 0x0146, + 0x00F1, 0x00F3, 0x00F2, 0x00F6, + 0x00F4, 0x01D2, 0x0151, 0x014D, + 0x00F5, 0x0155, 0x0159, 0x0157, + 0x015B, 0x015D, 0x0161, 0x015F, + 0x0165, 0x0163, 0x00FA, 0x00F9, /* ABE0 */ + 0x00FC, 0x00FB, 0x016D, 0x01D4, + 0x0171, 0x016B, 0x0173, 0x016F, + 0x0169, 0x01D8, 0x01DC, 0x01DA, + 0x01D6, 0x0175, 0x00FD, 0x00FF, + 0x0177, 0x017A, 0x017E, 0x017C, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4E02, 0x4E04, 0x4E05, /* B0A0 */ + 0x4E0C, 0x4E12, 0x4E1F, 0x4E23, + 0x4E24, 0x4E28, 0x4E2B, 0x4E2E, + 0x4E2F, 0x4E30, 0x4E35, 0x4E40, + 0x4E41, 0x4E44, 0x4E47, 0x4E51, + 0x4E5A, 0x4E5C, 0x4E63, 0x4E68, + 0x4E69, 0x4E74, 0x4E75, 0x4E79, + 0x4E7F, 0x4E8D, 0x4E96, 0x4E97, + 0x4E9D, 0x4EAF, 0x4EB9, 0x4EC3, /* B0C0 */ + 0x4ED0, 0x4EDA, 0x4EDB, 0x4EE0, + 0x4EE1, 0x4EE2, 0x4EE8, 0x4EEF, + 0x4EF1, 0x4EF3, 0x4EF5, 0x4EFD, + 0x4EFE, 0x4EFF, 0x4F00, 0x4F02, + 0x4F03, 0x4F08, 0x4F0B, 0x4F0C, + 0x4F12, 0x4F15, 0x4F16, 0x4F17, + 0x4F19, 0x4F2E, 0x4F31, 0x4F60, + 0x4F33, 0x4F35, 0x4F37, 0x4F39, /* B0E0 */ + 0x4F3B, 0x4F3E, 0x4F40, 0x4F42, + 0x4F48, 0x4F49, 0x4F4B, 0x4F4C, + 0x4F52, 0x4F54, 0x4F56, 0x4F58, + 0x4F5F, 0x4F63, 0x4F6A, 0x4F6C, + 0x4F6E, 0x4F71, 0x4F77, 0x4F78, + 0x4F79, 0x4F7A, 0x4F7D, 0x4F7E, + 0x4F81, 0x4F82, 0x4F84, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4F85, 0x4F89, 0x4F8A, /* B1A0 */ + 0x4F8C, 0x4F8E, 0x4F90, 0x4F92, + 0x4F93, 0x4F94, 0x4F97, 0x4F99, + 0x4F9A, 0x4F9E, 0x4F9F, 0x4FB2, + 0x4FB7, 0x4FB9, 0x4FBB, 0x4FBC, + 0x4FBD, 0x4FBE, 0x4FC0, 0x4FC1, + 0x4FC5, 0x4FC6, 0x4FC8, 0x4FC9, + 0x4FCB, 0x4FCC, 0x4FCD, 0x4FCF, + 0x4FD2, 0x4FDC, 0x4FE0, 0x4FE2, /* B1C0 */ + 0x4FF0, 0x4FF2, 0x4FFC, 0x4FFD, + 0x4FFF, 0x5000, 0x5001, 0x5004, + 0x5007, 0x500A, 0x500C, 0x500E, + 0x5010, 0x5013, 0x5017, 0x5018, + 0x501B, 0x501C, 0x501D, 0x501E, + 0x5022, 0x5027, 0x502E, 0x5030, + 0x5032, 0x5033, 0x5035, 0x5040, + 0x5041, 0x5042, 0x5045, 0x5046, /* B1E0 */ + 0x504A, 0x504C, 0x504E, 0x5051, + 0x5052, 0x5053, 0x5057, 0x5059, + 0x505F, 0x5060, 0x5062, 0x5063, + 0x5066, 0x5067, 0x506A, 0x506D, + 0x5070, 0x5071, 0x503B, 0x5081, + 0x5083, 0x5084, 0x5086, 0x508A, + 0x508E, 0x508F, 0x5090, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5092, 0x5093, 0x5094, /* B2A0 */ + 0x5096, 0x509B, 0x509C, 0x509E, + 0x509F, 0x50A0, 0x50A1, 0x50A2, + 0x50AA, 0x50AF, 0x50B0, 0x50B9, + 0x50BA, 0x50BD, 0x50C0, 0x50C3, + 0x50C4, 0x50C7, 0x50CC, 0x50CE, + 0x50D0, 0x50D3, 0x50D4, 0x50D8, + 0x50DC, 0x50DD, 0x50DF, 0x50E2, + 0x50E4, 0x50E6, 0x50E8, 0x50E9, /* B2C0 */ + 0x50EF, 0x50F1, 0x50F6, 0x50FA, + 0x50FE, 0x5103, 0x5106, 0x5107, + 0x5108, 0x510B, 0x510C, 0x510D, + 0x510E, 0x50F2, 0x5110, 0x5117, + 0x5119, 0x511B, 0x511C, 0x511D, + 0x511E, 0x5123, 0x5127, 0x5128, + 0x512C, 0x512D, 0x512F, 0x5131, + 0x5133, 0x5134, 0x5135, 0x5138, /* B2E0 */ + 0x5139, 0x5142, 0x514A, 0x514F, + 0x5153, 0x5155, 0x5157, 0x5158, + 0x515F, 0x5164, 0x5166, 0x517E, + 0x5183, 0x5184, 0x518B, 0x518E, + 0x5198, 0x519D, 0x51A1, 0x51A3, + 0x51AD, 0x51B8, 0x51BA, 0x51BC, + 0x51BE, 0x51BF, 0x51C2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x51C8, 0x51CF, 0x51D1, /* B3A0 */ + 0x51D2, 0x51D3, 0x51D5, 0x51D8, + 0x51DE, 0x51E2, 0x51E5, 0x51EE, + 0x51F2, 0x51F3, 0x51F4, 0x51F7, + 0x5201, 0x5202, 0x5205, 0x5212, + 0x5213, 0x5215, 0x5216, 0x5218, + 0x5222, 0x5228, 0x5231, 0x5232, + 0x5235, 0x523C, 0x5245, 0x5249, + 0x5255, 0x5257, 0x5258, 0x525A, /* B3C0 */ + 0x525C, 0x525F, 0x5260, 0x5261, + 0x5266, 0x526E, 0x5277, 0x5278, + 0x5279, 0x5280, 0x5282, 0x5285, + 0x528A, 0x528C, 0x5293, 0x5295, + 0x5296, 0x5297, 0x5298, 0x529A, + 0x529C, 0x52A4, 0x52A5, 0x52A6, + 0x52A7, 0x52AF, 0x52B0, 0x52B6, + 0x52B7, 0x52B8, 0x52BA, 0x52BB, /* B3E0 */ + 0x52BD, 0x52C0, 0x52C4, 0x52C6, + 0x52C8, 0x52CC, 0x52CF, 0x52D1, + 0x52D4, 0x52D6, 0x52DB, 0x52DC, + 0x52E1, 0x52E5, 0x52E8, 0x52E9, + 0x52EA, 0x52EC, 0x52F0, 0x52F1, + 0x52F4, 0x52F6, 0x52F7, 0x5300, + 0x5303, 0x530A, 0x530B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x530C, 0x5311, 0x5313, /* B4A0 */ + 0x5318, 0x531B, 0x531C, 0x531E, + 0x531F, 0x5325, 0x5327, 0x5328, + 0x5329, 0x532B, 0x532C, 0x532D, + 0x5330, 0x5332, 0x5335, 0x533C, + 0x533D, 0x533E, 0x5342, 0x534C, + 0x534B, 0x5359, 0x535B, 0x5361, + 0x5363, 0x5365, 0x536C, 0x536D, + 0x5372, 0x5379, 0x537E, 0x5383, /* B4C0 */ + 0x5387, 0x5388, 0x538E, 0x5393, + 0x5394, 0x5399, 0x539D, 0x53A1, + 0x53A4, 0x53AA, 0x53AB, 0x53AF, + 0x53B2, 0x53B4, 0x53B5, 0x53B7, + 0x53B8, 0x53BA, 0x53BD, 0x53C0, + 0x53C5, 0x53CF, 0x53D2, 0x53D3, + 0x53D5, 0x53DA, 0x53DD, 0x53DE, + 0x53E0, 0x53E6, 0x53E7, 0x53F5, /* B4E0 */ + 0x5402, 0x5413, 0x541A, 0x5421, + 0x5427, 0x5428, 0x542A, 0x542F, + 0x5431, 0x5434, 0x5435, 0x5443, + 0x5444, 0x5447, 0x544D, 0x544F, + 0x545E, 0x5462, 0x5464, 0x5466, + 0x5467, 0x5469, 0x546B, 0x546D, + 0x546E, 0x5474, 0x547F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5481, 0x5483, 0x5485, /* B5A0 */ + 0x5488, 0x5489, 0x548D, 0x5491, + 0x5495, 0x5496, 0x549C, 0x549F, + 0x54A1, 0x54A6, 0x54A7, 0x54A9, + 0x54AA, 0x54AD, 0x54AE, 0x54B1, + 0x54B7, 0x54B9, 0x54BA, 0x54BB, + 0x54BF, 0x54C6, 0x54CA, 0x54CD, + 0x54CE, 0x54E0, 0x54EA, 0x54EC, + 0x54EF, 0x54F6, 0x54FC, 0x54FE, /* B5C0 */ + 0x54FF, 0x5500, 0x5501, 0x5505, + 0x5508, 0x5509, 0x550C, 0x550D, + 0x550E, 0x5515, 0x552A, 0x552B, + 0x5532, 0x5535, 0x5536, 0x553B, + 0x553C, 0x553D, 0x5541, 0x5547, + 0x5549, 0x554A, 0x554D, 0x5550, + 0x5551, 0x5558, 0x555A, 0x555B, + 0x555E, 0x5560, 0x5561, 0x5564, /* B5E0 */ + 0x5566, 0x557F, 0x5581, 0x5582, + 0x5586, 0x5588, 0x558E, 0x558F, + 0x5591, 0x5592, 0x5593, 0x5594, + 0x5597, 0x55A3, 0x55A4, 0x55AD, + 0x55B2, 0x55BF, 0x55C1, 0x55C3, + 0x55C6, 0x55C9, 0x55CB, 0x55CC, + 0x55CE, 0x55D1, 0x55D2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x55D3, 0x55D7, 0x55D8, /* B6A0 */ + 0x55DB, 0x55DE, 0x55E2, 0x55E9, + 0x55F6, 0x55FF, 0x5605, 0x5608, + 0x560A, 0x560D, 0x560E, 0x560F, + 0x5610, 0x5611, 0x5612, 0x5619, + 0x562C, 0x5630, 0x5633, 0x5635, + 0x5637, 0x5639, 0x563B, 0x563C, + 0x563D, 0x563F, 0x5640, 0x5641, + 0x5643, 0x5644, 0x5646, 0x5649, /* B6C0 */ + 0x564B, 0x564D, 0x564F, 0x5654, + 0x565E, 0x5660, 0x5661, 0x5662, + 0x5663, 0x5666, 0x5669, 0x566D, + 0x566F, 0x5671, 0x5672, 0x5675, + 0x5684, 0x5685, 0x5688, 0x568B, + 0x568C, 0x5695, 0x5699, 0x569A, + 0x569D, 0x569E, 0x569F, 0x56A6, + 0x56A7, 0x56A8, 0x56A9, 0x56AB, /* B6E0 */ + 0x56AC, 0x56AD, 0x56B1, 0x56B3, + 0x56B7, 0x56BE, 0x56C5, 0x56C9, + 0x56CA, 0x56CB, 0x56CF, 0x56D0, + 0x56CC, 0x56CD, 0x56D9, 0x56DC, + 0x56DD, 0x56DF, 0x56E1, 0x56E4, + 0x56E5, 0x56E6, 0x56E7, 0x56E8, + 0x56F1, 0x56EB, 0x56ED, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x56F6, 0x56F7, 0x5701, /* B7A0 */ + 0x5702, 0x5707, 0x570A, 0x570C, + 0x5711, 0x5715, 0x571A, 0x571B, + 0x571D, 0x5720, 0x5722, 0x5723, + 0x5724, 0x5725, 0x5729, 0x572A, + 0x572C, 0x572E, 0x572F, 0x5733, + 0x5734, 0x573D, 0x573E, 0x573F, + 0x5745, 0x5746, 0x574C, 0x574D, + 0x5752, 0x5762, 0x5765, 0x5767, /* B7C0 */ + 0x5768, 0x576B, 0x576D, 0x576E, + 0x576F, 0x5770, 0x5771, 0x5773, + 0x5774, 0x5775, 0x5777, 0x5779, + 0x577A, 0x577B, 0x577C, 0x577E, + 0x5781, 0x5783, 0x578C, 0x5794, + 0x5797, 0x5799, 0x579A, 0x579C, + 0x579D, 0x579E, 0x579F, 0x57A1, + 0x5795, 0x57A7, 0x57A8, 0x57A9, /* B7E0 */ + 0x57AC, 0x57B8, 0x57BD, 0x57C7, + 0x57C8, 0x57CC, 0x57CF, 0x57D5, + 0x57DD, 0x57DE, 0x57E4, 0x57E6, + 0x57E7, 0x57E9, 0x57ED, 0x57F0, + 0x57F5, 0x57F6, 0x57F8, 0x57FD, + 0x57FE, 0x57FF, 0x5803, 0x5804, + 0x5808, 0x5809, 0x57E1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x580C, 0x580D, 0x581B, /* B8A0 */ + 0x581E, 0x581F, 0x5820, 0x5826, + 0x5827, 0x582D, 0x5832, 0x5839, + 0x583F, 0x5849, 0x584C, 0x584D, + 0x584F, 0x5850, 0x5855, 0x585F, + 0x5861, 0x5864, 0x5867, 0x5868, + 0x5878, 0x587C, 0x587F, 0x5880, + 0x5881, 0x5887, 0x5888, 0x5889, + 0x588A, 0x588C, 0x588D, 0x588F, /* B8C0 */ + 0x5890, 0x5894, 0x5896, 0x589D, + 0x58A0, 0x58A1, 0x58A2, 0x58A6, + 0x58A9, 0x58B1, 0x58B2, 0x58C4, + 0x58BC, 0x58C2, 0x58C8, 0x58CD, + 0x58CE, 0x58D0, 0x58D2, 0x58D4, + 0x58D6, 0x58DA, 0x58DD, 0x58E1, + 0x58E2, 0x58E9, 0x58F3, 0x5905, + 0x5906, 0x590B, 0x590C, 0x5912, /* B8E0 */ + 0x5913, 0x5914, 0x8641, 0x591D, + 0x5921, 0x5923, 0x5924, 0x5928, + 0x592F, 0x5930, 0x5933, 0x5935, + 0x5936, 0x593F, 0x5943, 0x5946, + 0x5952, 0x5953, 0x5959, 0x595B, + 0x595D, 0x595E, 0x595F, 0x5961, + 0x5963, 0x596B, 0x596D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x596F, 0x5972, 0x5975, /* B9A0 */ + 0x5976, 0x5979, 0x597B, 0x597C, + 0x598B, 0x598C, 0x598E, 0x5992, + 0x5995, 0x5997, 0x599F, 0x59A4, + 0x59A7, 0x59AD, 0x59AE, 0x59AF, + 0x59B0, 0x59B3, 0x59B7, 0x59BA, + 0x59BC, 0x59C1, 0x59C3, 0x59C4, + 0x59C8, 0x59CA, 0x59CD, 0x59D2, + 0x59DD, 0x59DE, 0x59DF, 0x59E3, /* B9C0 */ + 0x59E4, 0x59E7, 0x59EE, 0x59EF, + 0x59F1, 0x59F2, 0x59F4, 0x59F7, + 0x5A00, 0x5A04, 0x5A0C, 0x5A0D, + 0x5A0E, 0x5A12, 0x5A13, 0x5A1E, + 0x5A23, 0x5A24, 0x5A27, 0x5A28, + 0x5A2A, 0x5A2D, 0x5A30, 0x5A44, + 0x5A45, 0x5A47, 0x5A48, 0x5A4C, + 0x5A50, 0x5A55, 0x5A5E, 0x5A63, /* B9E0 */ + 0x5A65, 0x5A67, 0x5A6D, 0x5A77, + 0x5A7A, 0x5A7B, 0x5A7E, 0x5A8B, + 0x5A90, 0x5A93, 0x5A96, 0x5A99, + 0x5A9C, 0x5A9E, 0x5A9F, 0x5AA0, + 0x5AA2, 0x5AA7, 0x5AAC, 0x5AB1, + 0x5AB2, 0x5AB3, 0x5AB5, 0x5AB8, + 0x5ABA, 0x5ABB, 0x5ABF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5AC4, 0x5AC6, 0x5AC8, /* BAA0 */ + 0x5ACF, 0x5ADA, 0x5ADC, 0x5AE0, + 0x5AE5, 0x5AEA, 0x5AEE, 0x5AF5, + 0x5AF6, 0x5AFD, 0x5B00, 0x5B01, + 0x5B08, 0x5B17, 0x5B34, 0x5B19, + 0x5B1B, 0x5B1D, 0x5B21, 0x5B25, + 0x5B2D, 0x5B38, 0x5B41, 0x5B4B, + 0x5B4C, 0x5B52, 0x5B56, 0x5B5E, + 0x5B68, 0x5B6E, 0x5B6F, 0x5B7C, /* BAC0 */ + 0x5B7D, 0x5B7E, 0x5B7F, 0x5B81, + 0x5B84, 0x5B86, 0x5B8A, 0x5B8E, + 0x5B90, 0x5B91, 0x5B93, 0x5B94, + 0x5B96, 0x5BA8, 0x5BA9, 0x5BAC, + 0x5BAD, 0x5BAF, 0x5BB1, 0x5BB2, + 0x5BB7, 0x5BBA, 0x5BBC, 0x5BC0, + 0x5BC1, 0x5BCD, 0x5BCF, 0x5BD6, + 0x5BD7, 0x5BD8, 0x5BD9, 0x5BDA, /* BAE0 */ + 0x5BE0, 0x5BEF, 0x5BF1, 0x5BF4, + 0x5BFD, 0x5C0C, 0x5C17, 0x5C1E, + 0x5C1F, 0x5C23, 0x5C26, 0x5C29, + 0x5C2B, 0x5C2C, 0x5C2E, 0x5C30, + 0x5C32, 0x5C35, 0x5C36, 0x5C59, + 0x5C5A, 0x5C5C, 0x5C62, 0x5C63, + 0x5C67, 0x5C68, 0x5C69, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5C6D, 0x5C70, 0x5C74, /* BBA0 */ + 0x5C75, 0x5C7A, 0x5C7B, 0x5C7C, + 0x5C7D, 0x5C87, 0x5C88, 0x5C8A, + 0x5C8F, 0x5C92, 0x5C9D, 0x5C9F, + 0x5CA0, 0x5CA2, 0x5CA3, 0x5CA6, + 0x5CAA, 0x5CB2, 0x5CB4, 0x5CB5, + 0x5CBA, 0x5CC9, 0x5CCB, 0x5CD2, + 0x5CDD, 0x5CD7, 0x5CEE, 0x5CF1, + 0x5CF2, 0x5CF4, 0x5D01, 0x5D06, /* BBC0 */ + 0x5D0D, 0x5D12, 0x5D2B, 0x5D23, + 0x5D24, 0x5D26, 0x5D27, 0x5D31, + 0x5D34, 0x5D39, 0x5D3D, 0x5D3F, + 0x5D42, 0x5D43, 0x5D46, 0x5D48, + 0x5D55, 0x5D51, 0x5D59, 0x5D4A, + 0x5D5F, 0x5D60, 0x5D61, 0x5D62, + 0x5D64, 0x5D6A, 0x5D6D, 0x5D70, + 0x5D79, 0x5D7A, 0x5D7E, 0x5D7F, /* BBE0 */ + 0x5D81, 0x5D83, 0x5D88, 0x5D8A, + 0x5D92, 0x5D93, 0x5D94, 0x5D95, + 0x5D99, 0x5D9B, 0x5D9F, 0x5DA0, + 0x5DA7, 0x5DAB, 0x5DB0, 0x5DB4, + 0x5DB8, 0x5DB9, 0x5DC3, 0x5DC7, + 0x5DCB, 0x5DD0, 0x5DCE, 0x5DD8, + 0x5DD9, 0x5DE0, 0x5DE4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5DE9, 0x5DF8, 0x5DF9, /* BCA0 */ + 0x5E00, 0x5E07, 0x5E0D, 0x5E12, + 0x5E14, 0x5E15, 0x5E18, 0x5E1F, + 0x5E20, 0x5E2E, 0x5E28, 0x5E32, + 0x5E35, 0x5E3E, 0x5E4B, 0x5E50, + 0x5E49, 0x5E51, 0x5E56, 0x5E58, + 0x5E5B, 0x5E5C, 0x5E5E, 0x5E68, + 0x5E6A, 0x5E6B, 0x5E6C, 0x5E6D, + 0x5E6E, 0x5E70, 0x5E80, 0x5E8B, /* BCC0 */ + 0x5E8E, 0x5EA2, 0x5EA4, 0x5EA5, + 0x5EA8, 0x5EAA, 0x5EAC, 0x5EB1, + 0x5EB3, 0x5EBD, 0x5EBE, 0x5EBF, + 0x5EC6, 0x5ECC, 0x5ECB, 0x5ECE, + 0x5ED1, 0x5ED2, 0x5ED4, 0x5ED5, + 0x5EDC, 0x5EDE, 0x5EE5, 0x5EEB, + 0x5F02, 0x5F06, 0x5F07, 0x5F08, + 0x5F0E, 0x5F19, 0x5F1C, 0x5F1D, /* BCE0 */ + 0x5F21, 0x5F22, 0x5F23, 0x5F24, + 0x5F28, 0x5F2B, 0x5F2C, 0x5F2E, + 0x5F30, 0x5F34, 0x5F36, 0x5F3B, + 0x5F3D, 0x5F3F, 0x5F40, 0x5F44, + 0x5F45, 0x5F47, 0x5F4D, 0x5F50, + 0x5F54, 0x5F58, 0x5F5B, 0x5F60, + 0x5F63, 0x5F64, 0x5F67, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5F6F, 0x5F72, 0x5F74, /* BDA0 */ + 0x5F75, 0x5F78, 0x5F7A, 0x5F7D, + 0x5F7E, 0x5F89, 0x5F8D, 0x5F8F, + 0x5F96, 0x5F9C, 0x5F9D, 0x5FA2, + 0x5FA7, 0x5FAB, 0x5FA4, 0x5FAC, + 0x5FAF, 0x5FB0, 0x5FB1, 0x5FB8, + 0x5FC4, 0x5FC7, 0x5FC8, 0x5FC9, + 0x5FCB, 0x5FD0, 0x5FD1, 0x5FD2, + 0x5FD3, 0x5FD4, 0x5FDE, 0x5FE1, /* BDC0 */ + 0x5FE2, 0x5FE8, 0x5FE9, 0x5FEA, + 0x5FEC, 0x5FED, 0x5FEE, 0x5FEF, + 0x5FF2, 0x5FF3, 0x5FF6, 0x5FFA, + 0x5FFC, 0x6007, 0x600A, 0x600D, + 0x6013, 0x6014, 0x6017, 0x6018, + 0x601A, 0x601F, 0x6024, 0x602D, + 0x6033, 0x6035, 0x6040, 0x6047, + 0x6048, 0x6049, 0x604C, 0x6051, /* BDE0 */ + 0x6054, 0x6056, 0x6057, 0x605D, + 0x6061, 0x6067, 0x6071, 0x607E, + 0x607F, 0x6082, 0x6086, 0x6088, + 0x608A, 0x608E, 0x6091, 0x6093, + 0x6095, 0x6098, 0x609D, 0x609E, + 0x60A2, 0x60A4, 0x60A5, 0x60A8, + 0x60B0, 0x60B1, 0x60B7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x60BB, 0x60BE, 0x60C2, /* BEA0 */ + 0x60C4, 0x60C8, 0x60C9, 0x60CA, + 0x60CB, 0x60CE, 0x60CF, 0x60D4, + 0x60D5, 0x60D9, 0x60DB, 0x60DD, + 0x60DE, 0x60E2, 0x60E5, 0x60F2, + 0x60F5, 0x60F8, 0x60FC, 0x60FD, + 0x6102, 0x6107, 0x610A, 0x610C, + 0x6110, 0x6111, 0x6112, 0x6113, + 0x6114, 0x6116, 0x6117, 0x6119, /* BEC0 */ + 0x611C, 0x611E, 0x6122, 0x612A, + 0x612B, 0x6130, 0x6131, 0x6135, + 0x6136, 0x6137, 0x6139, 0x6141, + 0x6145, 0x6146, 0x6149, 0x615E, + 0x6160, 0x616C, 0x6172, 0x6178, + 0x617B, 0x617C, 0x617F, 0x6180, + 0x6181, 0x6183, 0x6184, 0x618B, + 0x618D, 0x6192, 0x6193, 0x6197, /* BEE0 */ + 0x6198, 0x619C, 0x619D, 0x619F, + 0x61A0, 0x61A5, 0x61A8, 0x61AA, + 0x61AD, 0x61B8, 0x61B9, 0x61BC, + 0x61C0, 0x61C1, 0x61C2, 0x61CE, + 0x61CF, 0x61D5, 0x61DC, 0x61DD, + 0x61DE, 0x61DF, 0x61E1, 0x61E2, + 0x61E7, 0x61E9, 0x61E5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x61EC, 0x61ED, 0x61EF, /* BFA0 */ + 0x6201, 0x6203, 0x6204, 0x6207, + 0x6213, 0x6215, 0x621C, 0x6220, + 0x6222, 0x6223, 0x6227, 0x6229, + 0x622B, 0x6239, 0x623D, 0x6242, + 0x6243, 0x6244, 0x6246, 0x624C, + 0x6250, 0x6251, 0x6252, 0x6254, + 0x6256, 0x625A, 0x625C, 0x6264, + 0x626D, 0x626F, 0x6273, 0x627A, /* BFC0 */ + 0x627D, 0x628D, 0x628E, 0x628F, + 0x6290, 0x62A6, 0x62A8, 0x62B3, + 0x62B6, 0x62B7, 0x62BA, 0x62BE, + 0x62BF, 0x62C4, 0x62CE, 0x62D5, + 0x62D6, 0x62DA, 0x62EA, 0x62F2, + 0x62F4, 0x62FC, 0x62FD, 0x6303, + 0x6304, 0x630A, 0x630B, 0x630D, + 0x6310, 0x6313, 0x6316, 0x6318, /* BFE0 */ + 0x6329, 0x632A, 0x632D, 0x6335, + 0x6336, 0x6339, 0x633C, 0x6341, + 0x6342, 0x6343, 0x6344, 0x6346, + 0x634A, 0x634B, 0x634E, 0x6352, + 0x6353, 0x6354, 0x6358, 0x635B, + 0x6365, 0x6366, 0x636C, 0x636D, + 0x6371, 0x6374, 0x6375, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6378, 0x637C, 0x637D, /* C0A0 */ + 0x637F, 0x6382, 0x6384, 0x6387, + 0x638A, 0x6390, 0x6394, 0x6395, + 0x6399, 0x639A, 0x639E, 0x63A4, + 0x63A6, 0x63AD, 0x63AE, 0x63AF, + 0x63BD, 0x63C1, 0x63C5, 0x63C8, + 0x63CE, 0x63D1, 0x63D3, 0x63D4, + 0x63D5, 0x63DC, 0x63E0, 0x63E5, + 0x63EA, 0x63EC, 0x63F2, 0x63F3, /* C0C0 */ + 0x63F5, 0x63F8, 0x63F9, 0x6409, + 0x640A, 0x6410, 0x6412, 0x6414, + 0x6418, 0x641E, 0x6420, 0x6422, + 0x6424, 0x6425, 0x6429, 0x642A, + 0x642F, 0x6430, 0x6435, 0x643D, + 0x643F, 0x644B, 0x644F, 0x6451, + 0x6452, 0x6453, 0x6454, 0x645A, + 0x645B, 0x645C, 0x645D, 0x645F, /* C0E0 */ + 0x6460, 0x6461, 0x6463, 0x646D, + 0x6473, 0x6474, 0x647B, 0x647D, + 0x6485, 0x6487, 0x648F, 0x6490, + 0x6491, 0x6498, 0x6499, 0x649B, + 0x649D, 0x649F, 0x64A1, 0x64A3, + 0x64A6, 0x64A8, 0x64AC, 0x64B3, + 0x64BD, 0x64BE, 0x64BF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x64C4, 0x64C9, 0x64CA, /* C1A0 */ + 0x64CB, 0x64CC, 0x64CE, 0x64D0, + 0x64D1, 0x64D5, 0x64D7, 0x64E4, + 0x64E5, 0x64E9, 0x64EA, 0x64ED, + 0x64F0, 0x64F5, 0x64F7, 0x64FB, + 0x64FF, 0x6501, 0x6504, 0x6508, + 0x6509, 0x650A, 0x650F, 0x6513, + 0x6514, 0x6516, 0x6519, 0x651B, + 0x651E, 0x651F, 0x6522, 0x6526, /* C1C0 */ + 0x6529, 0x652E, 0x6531, 0x653A, + 0x653C, 0x653D, 0x6543, 0x6547, + 0x6549, 0x6550, 0x6552, 0x6554, + 0x655F, 0x6560, 0x6567, 0x656B, + 0x657A, 0x657D, 0x6581, 0x6585, + 0x658A, 0x6592, 0x6595, 0x6598, + 0x659D, 0x65A0, 0x65A3, 0x65A6, + 0x65AE, 0x65B2, 0x65B3, 0x65B4, /* C1E0 */ + 0x65BF, 0x65C2, 0x65C8, 0x65C9, + 0x65CE, 0x65D0, 0x65D4, 0x65D6, + 0x65D8, 0x65DF, 0x65F0, 0x65F2, + 0x65F4, 0x65F5, 0x65F9, 0x65FE, + 0x65FF, 0x6600, 0x6604, 0x6608, + 0x6609, 0x660D, 0x6611, 0x6612, + 0x6615, 0x6616, 0x661D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x661E, 0x6621, 0x6622, /* C2A0 */ + 0x6623, 0x6624, 0x6626, 0x6629, + 0x662A, 0x662B, 0x662C, 0x662E, + 0x6630, 0x6631, 0x6633, 0x6639, + 0x6637, 0x6640, 0x6645, 0x6646, + 0x664A, 0x664C, 0x6651, 0x664E, + 0x6657, 0x6658, 0x6659, 0x665B, + 0x665C, 0x6660, 0x6661, 0x66FB, + 0x666A, 0x666B, 0x666C, 0x667E, /* C2C0 */ + 0x6673, 0x6675, 0x667F, 0x6677, + 0x6678, 0x6679, 0x667B, 0x6680, + 0x667C, 0x668B, 0x668C, 0x668D, + 0x6690, 0x6692, 0x6699, 0x669A, + 0x669B, 0x669C, 0x669F, 0x66A0, + 0x66A4, 0x66AD, 0x66B1, 0x66B2, + 0x66B5, 0x66BB, 0x66BF, 0x66C0, + 0x66C2, 0x66C3, 0x66C8, 0x66CC, /* C2E0 */ + 0x66CE, 0x66CF, 0x66D4, 0x66DB, + 0x66DF, 0x66E8, 0x66EB, 0x66EC, + 0x66EE, 0x66FA, 0x6705, 0x6707, + 0x670E, 0x6713, 0x6719, 0x671C, + 0x6720, 0x6722, 0x6733, 0x673E, + 0x6745, 0x6747, 0x6748, 0x674C, + 0x6754, 0x6755, 0x675D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6766, 0x676C, 0x676E, /* C3A0 */ + 0x6774, 0x6776, 0x677B, 0x6781, + 0x6784, 0x678E, 0x678F, 0x6791, + 0x6793, 0x6796, 0x6798, 0x6799, + 0x679B, 0x67B0, 0x67B1, 0x67B2, + 0x67B5, 0x67BB, 0x67BC, 0x67BD, + 0x67F9, 0x67C0, 0x67C2, 0x67C3, + 0x67C5, 0x67C8, 0x67C9, 0x67D2, + 0x67D7, 0x67D9, 0x67DC, 0x67E1, /* C3C0 */ + 0x67E6, 0x67F0, 0x67F2, 0x67F6, + 0x67F7, 0x6852, 0x6814, 0x6819, + 0x681D, 0x681F, 0x6828, 0x6827, + 0x682C, 0x682D, 0x682F, 0x6830, + 0x6831, 0x6833, 0x683B, 0x683F, + 0x6844, 0x6845, 0x684A, 0x684C, + 0x6855, 0x6857, 0x6858, 0x685B, + 0x686B, 0x686E, 0x686F, 0x6870, /* C3E0 */ + 0x6871, 0x6872, 0x6875, 0x6879, + 0x687A, 0x687B, 0x687C, 0x6882, + 0x6884, 0x6886, 0x6888, 0x6896, + 0x6898, 0x689A, 0x689C, 0x68A1, + 0x68A3, 0x68A5, 0x68A9, 0x68AA, + 0x68AE, 0x68B2, 0x68BB, 0x68C5, + 0x68C8, 0x68CC, 0x68CF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x68D0, 0x68D1, 0x68D3, /* C4A0 */ + 0x68D6, 0x68D9, 0x68DC, 0x68DD, + 0x68E5, 0x68E8, 0x68EA, 0x68EB, + 0x68EC, 0x68ED, 0x68F0, 0x68F1, + 0x68F5, 0x68F6, 0x68FB, 0x68FC, + 0x68FD, 0x6906, 0x6909, 0x690A, + 0x6910, 0x6911, 0x6913, 0x6916, + 0x6917, 0x6931, 0x6933, 0x6935, + 0x6938, 0x693B, 0x6942, 0x6945, /* C4C0 */ + 0x6949, 0x694E, 0x6957, 0x695B, + 0x6963, 0x6964, 0x6965, 0x6966, + 0x6968, 0x6969, 0x696C, 0x6970, + 0x6971, 0x6972, 0x697A, 0x697B, + 0x697F, 0x6980, 0x698D, 0x6992, + 0x6996, 0x6998, 0x69A1, 0x69A5, + 0x69A6, 0x69A8, 0x69AB, 0x69AD, + 0x69AF, 0x69B7, 0x69B8, 0x69BA, /* C4E0 */ + 0x69BC, 0x69C5, 0x69C8, 0x69D1, + 0x69D6, 0x69D7, 0x69E2, 0x69E5, + 0x69EE, 0x69EF, 0x69F1, 0x69F3, + 0x69F5, 0x69FE, 0x6A00, 0x6A01, + 0x6A03, 0x6A0F, 0x6A11, 0x6A15, + 0x6A1A, 0x6A1D, 0x6A20, 0x6A24, + 0x6A28, 0x6A30, 0x6A32, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6A34, 0x6A37, 0x6A3B, /* C5A0 */ + 0x6A3E, 0x6A3F, 0x6A45, 0x6A46, + 0x6A49, 0x6A4A, 0x6A4E, 0x6A50, + 0x6A51, 0x6A52, 0x6A55, 0x6A56, + 0x6A5B, 0x6A64, 0x6A67, 0x6A6A, + 0x6A71, 0x6A73, 0x6A7E, 0x6A81, + 0x6A83, 0x6A86, 0x6A87, 0x6A89, + 0x6A8B, 0x6A91, 0x6A9B, 0x6A9D, + 0x6A9E, 0x6A9F, 0x6AA5, 0x6AAB, /* C5C0 */ + 0x6AAF, 0x6AB0, 0x6AB1, 0x6AB4, + 0x6ABD, 0x6ABE, 0x6ABF, 0x6AC6, + 0x6AC9, 0x6AC8, 0x6ACC, 0x6AD0, + 0x6AD4, 0x6AD5, 0x6AD6, 0x6ADC, + 0x6ADD, 0x6AE4, 0x6AE7, 0x6AEC, + 0x6AF0, 0x6AF1, 0x6AF2, 0x6AFC, + 0x6AFD, 0x6B02, 0x6B03, 0x6B06, + 0x6B07, 0x6B09, 0x6B0F, 0x6B10, /* C5E0 */ + 0x6B11, 0x6B17, 0x6B1B, 0x6B1E, + 0x6B24, 0x6B28, 0x6B2B, 0x6B2C, + 0x6B2F, 0x6B35, 0x6B36, 0x6B3B, + 0x6B3F, 0x6B46, 0x6B4A, 0x6B4D, + 0x6B52, 0x6B56, 0x6B58, 0x6B5D, + 0x6B60, 0x6B67, 0x6B6B, 0x6B6E, + 0x6B70, 0x6B75, 0x6B7D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6B7E, 0x6B82, 0x6B85, /* C6A0 */ + 0x6B97, 0x6B9B, 0x6B9F, 0x6BA0, + 0x6BA2, 0x6BA3, 0x6BA8, 0x6BA9, + 0x6BAC, 0x6BAD, 0x6BAE, 0x6BB0, + 0x6BB8, 0x6BB9, 0x6BBD, 0x6BBE, + 0x6BC3, 0x6BC4, 0x6BC9, 0x6BCC, + 0x6BD6, 0x6BDA, 0x6BE1, 0x6BE3, + 0x6BE6, 0x6BE7, 0x6BEE, 0x6BF1, + 0x6BF7, 0x6BF9, 0x6BFF, 0x6C02, /* C6C0 */ + 0x6C04, 0x6C05, 0x6C09, 0x6C0D, + 0x6C0E, 0x6C10, 0x6C12, 0x6C19, + 0x6C1F, 0x6C26, 0x6C27, 0x6C28, + 0x6C2C, 0x6C2E, 0x6C33, 0x6C35, + 0x6C36, 0x6C3A, 0x6C3B, 0x6C3F, + 0x6C4A, 0x6C4B, 0x6C4D, 0x6C4F, + 0x6C52, 0x6C54, 0x6C59, 0x6C5B, + 0x6C5C, 0x6C6B, 0x6C6D, 0x6C6F, /* C6E0 */ + 0x6C74, 0x6C76, 0x6C78, 0x6C79, + 0x6C7B, 0x6C85, 0x6C86, 0x6C87, + 0x6C89, 0x6C94, 0x6C95, 0x6C97, + 0x6C98, 0x6C9C, 0x6C9F, 0x6CB0, + 0x6CB2, 0x6CB4, 0x6CC2, 0x6CC6, + 0x6CCD, 0x6CCF, 0x6CD0, 0x6CD1, + 0x6CD2, 0x6CD4, 0x6CD6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6CDA, 0x6CDC, 0x6CE0, /* C7A0 */ + 0x6CE7, 0x6CE9, 0x6CEB, 0x6CEC, + 0x6CEE, 0x6CF2, 0x6CF4, 0x6D04, + 0x6D07, 0x6D0A, 0x6D0E, 0x6D0F, + 0x6D11, 0x6D13, 0x6D1A, 0x6D26, + 0x6D27, 0x6D28, 0x6C67, 0x6D2E, + 0x6D2F, 0x6D31, 0x6D39, 0x6D3C, + 0x6D3F, 0x6D57, 0x6D5E, 0x6D5F, + 0x6D61, 0x6D65, 0x6D67, 0x6D6F, /* C7C0 */ + 0x6D70, 0x6D7C, 0x6D82, 0x6D87, + 0x6D91, 0x6D92, 0x6D94, 0x6D96, + 0x6D97, 0x6D98, 0x6DAA, 0x6DAC, + 0x6DB4, 0x6DB7, 0x6DB9, 0x6DBD, + 0x6DBF, 0x6DC4, 0x6DC8, 0x6DCA, + 0x6DCE, 0x6DCF, 0x6DD6, 0x6DDB, + 0x6DDD, 0x6DDF, 0x6DE0, 0x6DE2, + 0x6DE5, 0x6DE9, 0x6DEF, 0x6DF0, /* C7E0 */ + 0x6DF4, 0x6DF6, 0x6DFC, 0x6E00, + 0x6E04, 0x6E1E, 0x6E22, 0x6E27, + 0x6E32, 0x6E36, 0x6E39, 0x6E3B, + 0x6E3C, 0x6E44, 0x6E45, 0x6E48, + 0x6E49, 0x6E4B, 0x6E4F, 0x6E51, + 0x6E52, 0x6E53, 0x6E54, 0x6E57, + 0x6E5C, 0x6E5D, 0x6E5E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6E62, 0x6E63, 0x6E68, /* C8A0 */ + 0x6E73, 0x6E7B, 0x6E7D, 0x6E8D, + 0x6E93, 0x6E99, 0x6EA0, 0x6EA7, + 0x6EAD, 0x6EAE, 0x6EB1, 0x6EB3, + 0x6EBB, 0x6EBF, 0x6EC0, 0x6EC1, + 0x6EC3, 0x6EC7, 0x6EC8, 0x6ECA, + 0x6ECD, 0x6ECE, 0x6ECF, 0x6EEB, + 0x6EED, 0x6EEE, 0x6EF9, 0x6EFB, + 0x6EFD, 0x6F04, 0x6F08, 0x6F0A, /* C8C0 */ + 0x6F0C, 0x6F0D, 0x6F16, 0x6F18, + 0x6F1A, 0x6F1B, 0x6F26, 0x6F29, + 0x6F2A, 0x6F2F, 0x6F30, 0x6F33, + 0x6F36, 0x6F3B, 0x6F3C, 0x6F2D, + 0x6F4F, 0x6F51, 0x6F52, 0x6F53, + 0x6F57, 0x6F59, 0x6F5A, 0x6F5D, + 0x6F5E, 0x6F61, 0x6F62, 0x6F68, + 0x6F6C, 0x6F7D, 0x6F7E, 0x6F83, /* C8E0 */ + 0x6F87, 0x6F88, 0x6F8B, 0x6F8C, + 0x6F8D, 0x6F90, 0x6F92, 0x6F93, + 0x6F94, 0x6F96, 0x6F9A, 0x6F9F, + 0x6FA0, 0x6FA5, 0x6FA6, 0x6FA7, + 0x6FA8, 0x6FAE, 0x6FAF, 0x6FB0, + 0x6FB5, 0x6FB6, 0x6FBC, 0x6FC5, + 0x6FC7, 0x6FC8, 0x6FCA, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6FDA, 0x6FDE, 0x6FE8, /* C9A0 */ + 0x6FE9, 0x6FF0, 0x6FF5, 0x6FF9, + 0x6FFC, 0x6FFD, 0x7000, 0x7005, + 0x7006, 0x7007, 0x700D, 0x7017, + 0x7020, 0x7023, 0x702F, 0x7034, + 0x7037, 0x7039, 0x703C, 0x7043, + 0x7044, 0x7048, 0x7049, 0x704A, + 0x704B, 0x7054, 0x7055, 0x705D, + 0x705E, 0x704E, 0x7064, 0x7065, /* C9C0 */ + 0x706C, 0x706E, 0x7075, 0x7076, + 0x707E, 0x7081, 0x7085, 0x7086, + 0x7094, 0x7095, 0x7096, 0x7097, + 0x7098, 0x709B, 0x70A4, 0x70AB, + 0x70B0, 0x70B1, 0x70B4, 0x70B7, + 0x70CA, 0x70D1, 0x70D3, 0x70D4, + 0x70D5, 0x70D6, 0x70D8, 0x70DC, + 0x70E4, 0x70FA, 0x7103, 0x7104, /* C9E0 */ + 0x7105, 0x7106, 0x7107, 0x710B, + 0x710C, 0x710F, 0x711E, 0x7120, + 0x712B, 0x712D, 0x712F, 0x7130, + 0x7131, 0x7138, 0x7141, 0x7145, + 0x7146, 0x7147, 0x714A, 0x714B, + 0x7150, 0x7152, 0x7157, 0x715A, + 0x715C, 0x715E, 0x7160, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7168, 0x7179, 0x7180, /* CAA0 */ + 0x7185, 0x7187, 0x718C, 0x7192, + 0x719A, 0x719B, 0x71A0, 0x71A2, + 0x71AF, 0x71B0, 0x71B2, 0x71B3, + 0x71BA, 0x71BF, 0x71C0, 0x71C1, + 0x71C4, 0x71CB, 0x71CC, 0x71D3, + 0x71D6, 0x71D9, 0x71DA, 0x71DC, + 0x71F8, 0x71FE, 0x7200, 0x7207, + 0x7208, 0x7209, 0x7213, 0x7217, /* CAC0 */ + 0x721A, 0x721D, 0x721F, 0x7224, + 0x722B, 0x722F, 0x7234, 0x7238, + 0x7239, 0x7241, 0x7242, 0x7243, + 0x7245, 0x724E, 0x724F, 0x7250, + 0x7253, 0x7255, 0x7256, 0x725A, + 0x725C, 0x725E, 0x7260, 0x7263, + 0x7268, 0x726B, 0x726E, 0x726F, + 0x7271, 0x7277, 0x7278, 0x727B, /* CAE0 */ + 0x727C, 0x727F, 0x7284, 0x7289, + 0x728D, 0x728E, 0x7293, 0x729B, + 0x72A8, 0x72AD, 0x72AE, 0x72B1, + 0x72B4, 0x72BE, 0x72C1, 0x72C7, + 0x72C9, 0x72CC, 0x72D5, 0x72D6, + 0x72D8, 0x72DF, 0x72E5, 0x72F3, + 0x72F4, 0x72FA, 0x72FB, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x72FE, 0x7302, 0x7304, /* CBA0 */ + 0x7305, 0x7307, 0x730B, 0x730D, + 0x7312, 0x7313, 0x7318, 0x7319, + 0x731E, 0x7322, 0x7324, 0x7327, + 0x7328, 0x732C, 0x7331, 0x7332, + 0x7335, 0x733A, 0x733B, 0x733D, + 0x7343, 0x734D, 0x7350, 0x7352, + 0x7356, 0x7358, 0x735D, 0x735E, + 0x735F, 0x7360, 0x7366, 0x7367, /* CBC0 */ + 0x7369, 0x736B, 0x736C, 0x736E, + 0x736F, 0x7371, 0x7377, 0x7379, + 0x737C, 0x7380, 0x7381, 0x7383, + 0x7385, 0x7386, 0x738E, 0x7390, + 0x7393, 0x7395, 0x7397, 0x7398, + 0x739C, 0x739E, 0x739F, 0x73A0, + 0x73A2, 0x73A5, 0x73A6, 0x73AA, + 0x73AB, 0x73AD, 0x73B5, 0x73B7, /* CBE0 */ + 0x73B9, 0x73BC, 0x73BD, 0x73BF, + 0x73C5, 0x73C6, 0x73C9, 0x73CB, + 0x73CC, 0x73CF, 0x73D2, 0x73D3, + 0x73D6, 0x73D9, 0x73DD, 0x73E1, + 0x73E3, 0x73E6, 0x73E7, 0x73E9, + 0x73F4, 0x73F5, 0x73F7, 0x73F9, + 0x73FA, 0x73FB, 0x73FD, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x73FF, 0x7400, 0x7401, /* CCA0 */ + 0x7404, 0x7407, 0x740A, 0x7411, + 0x741A, 0x741B, 0x7424, 0x7426, + 0x7428, 0x7429, 0x742A, 0x742B, + 0x742C, 0x742D, 0x742E, 0x742F, + 0x7430, 0x7431, 0x7439, 0x7440, + 0x7443, 0x7444, 0x7446, 0x7447, + 0x744B, 0x744D, 0x7451, 0x7452, + 0x7457, 0x745D, 0x7462, 0x7466, /* CCC0 */ + 0x7467, 0x7468, 0x746B, 0x746D, + 0x746E, 0x7471, 0x7472, 0x7480, + 0x7481, 0x7485, 0x7486, 0x7487, + 0x7489, 0x748F, 0x7490, 0x7491, + 0x7492, 0x7498, 0x7499, 0x749A, + 0x749C, 0x749F, 0x74A0, 0x74A1, + 0x74A3, 0x74A6, 0x74A8, 0x74A9, + 0x74AA, 0x74AB, 0x74AE, 0x74AF, /* CCE0 */ + 0x74B1, 0x74B2, 0x74B5, 0x74B9, + 0x74BB, 0x74BF, 0x74C8, 0x74C9, + 0x74CC, 0x74D0, 0x74D3, 0x74D8, + 0x74DA, 0x74DB, 0x74DE, 0x74DF, + 0x74E4, 0x74E8, 0x74EA, 0x74EB, + 0x74EF, 0x74F4, 0x74FA, 0x74FB, + 0x74FC, 0x74FF, 0x7506, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7512, 0x7516, 0x7517, /* CDA0 */ + 0x7520, 0x7521, 0x7524, 0x7527, + 0x7529, 0x752A, 0x752F, 0x7536, + 0x7539, 0x753D, 0x753E, 0x753F, + 0x7540, 0x7543, 0x7547, 0x7548, + 0x754E, 0x7550, 0x7552, 0x7557, + 0x755E, 0x755F, 0x7561, 0x756F, + 0x7571, 0x7579, 0x757A, 0x757B, + 0x757C, 0x757D, 0x757E, 0x7581, /* CDC0 */ + 0x7585, 0x7590, 0x7592, 0x7593, + 0x7595, 0x7599, 0x759C, 0x75A2, + 0x75A4, 0x75B4, 0x75BA, 0x75BF, + 0x75C0, 0x75C1, 0x75C4, 0x75C6, + 0x75CC, 0x75CE, 0x75CF, 0x75D7, + 0x75DC, 0x75DF, 0x75E0, 0x75E1, + 0x75E4, 0x75E7, 0x75EC, 0x75EE, + 0x75EF, 0x75F1, 0x75F9, 0x7600, /* CDE0 */ + 0x7602, 0x7603, 0x7604, 0x7607, + 0x7608, 0x760A, 0x760C, 0x760F, + 0x7612, 0x7613, 0x7615, 0x7616, + 0x7619, 0x761B, 0x761C, 0x761D, + 0x761E, 0x7623, 0x7625, 0x7626, + 0x7629, 0x762D, 0x7632, 0x7633, + 0x7635, 0x7638, 0x7639, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x763A, 0x763C, 0x764A, /* CEA0 */ + 0x7640, 0x7641, 0x7643, 0x7644, + 0x7645, 0x7649, 0x764B, 0x7655, + 0x7659, 0x765F, 0x7664, 0x7665, + 0x766D, 0x766E, 0x766F, 0x7671, + 0x7674, 0x7681, 0x7685, 0x768C, + 0x768D, 0x7695, 0x769B, 0x769C, + 0x769D, 0x769F, 0x76A0, 0x76A2, + 0x76A3, 0x76A4, 0x76A5, 0x76A6, /* CEC0 */ + 0x76A7, 0x76A8, 0x76AA, 0x76AD, + 0x76BD, 0x76C1, 0x76C5, 0x76C9, + 0x76CB, 0x76CC, 0x76CE, 0x76D4, + 0x76D9, 0x76E0, 0x76E6, 0x76E8, + 0x76EC, 0x76F0, 0x76F1, 0x76F6, + 0x76F9, 0x76FC, 0x7700, 0x7706, + 0x770A, 0x770E, 0x7712, 0x7714, + 0x7715, 0x7717, 0x7719, 0x771A, /* CEE0 */ + 0x771C, 0x7722, 0x7728, 0x772D, + 0x772E, 0x772F, 0x7734, 0x7735, + 0x7736, 0x7739, 0x773D, 0x773E, + 0x7742, 0x7745, 0x7746, 0x774A, + 0x774D, 0x774E, 0x774F, 0x7752, + 0x7756, 0x7757, 0x775C, 0x775E, + 0x775F, 0x7760, 0x7762, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7764, 0x7767, 0x776A, /* CFA0 */ + 0x776C, 0x7770, 0x7772, 0x7773, + 0x7774, 0x777A, 0x777D, 0x7780, + 0x7784, 0x778C, 0x778D, 0x7794, + 0x7795, 0x7796, 0x779A, 0x779F, + 0x77A2, 0x77A7, 0x77AA, 0x77AE, + 0x77AF, 0x77B1, 0x77B5, 0x77BE, + 0x77C3, 0x77C9, 0x77D1, 0x77D2, + 0x77D5, 0x77D9, 0x77DE, 0x77DF, /* CFC0 */ + 0x77E0, 0x77E4, 0x77E6, 0x77EA, + 0x77EC, 0x77F0, 0x77F1, 0x77F4, + 0x77F8, 0x77FB, 0x7805, 0x7806, + 0x7809, 0x780D, 0x780E, 0x7811, + 0x781D, 0x7821, 0x7822, 0x7823, + 0x782D, 0x782E, 0x7830, 0x7835, + 0x7837, 0x7843, 0x7844, 0x7847, + 0x7848, 0x784C, 0x784E, 0x7852, /* CFE0 */ + 0x785C, 0x785E, 0x7860, 0x7861, + 0x7863, 0x7864, 0x7868, 0x786A, + 0x786E, 0x787A, 0x787E, 0x788A, + 0x788F, 0x7894, 0x7898, 0x78A1, + 0x789D, 0x789E, 0x789F, 0x78A4, + 0x78A8, 0x78AC, 0x78AD, 0x78B0, + 0x78B1, 0x78B2, 0x78B3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x78BB, 0x78BD, 0x78BF, /* D0A0 */ + 0x78C7, 0x78C8, 0x78C9, 0x78CC, + 0x78CE, 0x78D2, 0x78D3, 0x78D5, + 0x78D6, 0x78E4, 0x78DB, 0x78DF, + 0x78E0, 0x78E1, 0x78E6, 0x78EA, + 0x78F2, 0x78F3, 0x7900, 0x78F6, + 0x78F7, 0x78FA, 0x78FB, 0x78FF, + 0x7906, 0x790C, 0x7910, 0x791A, + 0x791C, 0x791E, 0x791F, 0x7920, /* D0C0 */ + 0x7925, 0x7927, 0x7929, 0x792D, + 0x7931, 0x7934, 0x7935, 0x793B, + 0x793D, 0x793F, 0x7944, 0x7945, + 0x7946, 0x794A, 0x794B, 0x794F, + 0x7951, 0x7954, 0x7958, 0x795B, + 0x795C, 0x7967, 0x7969, 0x796B, + 0x7972, 0x7979, 0x797B, 0x797C, + 0x797E, 0x798B, 0x798C, 0x7991, /* D0E0 */ + 0x7993, 0x7994, 0x7995, 0x7996, + 0x7998, 0x799B, 0x799C, 0x79A1, + 0x79A8, 0x79A9, 0x79AB, 0x79AF, + 0x79B1, 0x79B4, 0x79B8, 0x79BB, + 0x79C2, 0x79C4, 0x79C7, 0x79C8, + 0x79CA, 0x79CF, 0x79D4, 0x79D6, + 0x79DA, 0x79DD, 0x79DE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x79E0, 0x79E2, 0x79E5, /* D1A0 */ + 0x79EA, 0x79EB, 0x79ED, 0x79F1, + 0x79F8, 0x79FC, 0x7A02, 0x7A03, + 0x7A07, 0x7A09, 0x7A0A, 0x7A0C, + 0x7A11, 0x7A15, 0x7A1B, 0x7A1E, + 0x7A21, 0x7A27, 0x7A2B, 0x7A2D, + 0x7A2F, 0x7A30, 0x7A34, 0x7A35, + 0x7A38, 0x7A39, 0x7A3A, 0x7A44, + 0x7A45, 0x7A47, 0x7A48, 0x7A4C, /* D1C0 */ + 0x7A55, 0x7A56, 0x7A59, 0x7A5C, + 0x7A5D, 0x7A5F, 0x7A60, 0x7A65, + 0x7A67, 0x7A6A, 0x7A6D, 0x7A75, + 0x7A78, 0x7A7E, 0x7A80, 0x7A82, + 0x7A85, 0x7A86, 0x7A8A, 0x7A8B, + 0x7A90, 0x7A91, 0x7A94, 0x7A9E, + 0x7AA0, 0x7AA3, 0x7AAC, 0x7AB3, + 0x7AB5, 0x7AB9, 0x7ABB, 0x7ABC, /* D1E0 */ + 0x7AC6, 0x7AC9, 0x7ACC, 0x7ACE, + 0x7AD1, 0x7ADB, 0x7AE8, 0x7AE9, + 0x7AEB, 0x7AEC, 0x7AF1, 0x7AF4, + 0x7AFB, 0x7AFD, 0x7AFE, 0x7B07, + 0x7B14, 0x7B1F, 0x7B23, 0x7B27, + 0x7B29, 0x7B2A, 0x7B2B, 0x7B2D, + 0x7B2E, 0x7B2F, 0x7B30, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7B31, 0x7B34, 0x7B3D, /* D2A0 */ + 0x7B3F, 0x7B40, 0x7B41, 0x7B47, + 0x7B4E, 0x7B55, 0x7B60, 0x7B64, + 0x7B66, 0x7B69, 0x7B6A, 0x7B6D, + 0x7B6F, 0x7B72, 0x7B73, 0x7B77, + 0x7B84, 0x7B89, 0x7B8E, 0x7B90, + 0x7B91, 0x7B96, 0x7B9B, 0x7B9E, + 0x7BA0, 0x7BA5, 0x7BAC, 0x7BAF, + 0x7BB0, 0x7BB2, 0x7BB5, 0x7BB6, /* D2C0 */ + 0x7BBA, 0x7BBB, 0x7BBC, 0x7BBD, + 0x7BC2, 0x7BC5, 0x7BC8, 0x7BCA, + 0x7BD4, 0x7BD6, 0x7BD7, 0x7BD9, + 0x7BDA, 0x7BDB, 0x7BE8, 0x7BEA, + 0x7BF2, 0x7BF4, 0x7BF5, 0x7BF8, + 0x7BF9, 0x7BFA, 0x7BFC, 0x7BFE, + 0x7C01, 0x7C02, 0x7C03, 0x7C04, + 0x7C06, 0x7C09, 0x7C0B, 0x7C0C, /* D2E0 */ + 0x7C0E, 0x7C0F, 0x7C19, 0x7C1B, + 0x7C20, 0x7C25, 0x7C26, 0x7C28, + 0x7C2C, 0x7C31, 0x7C33, 0x7C34, + 0x7C36, 0x7C39, 0x7C3A, 0x7C46, + 0x7C4A, 0x7C55, 0x7C51, 0x7C52, + 0x7C53, 0x7C59, 0x7C5A, 0x7C5B, + 0x7C5C, 0x7C5D, 0x7C5E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7C61, 0x7C63, 0x7C67, /* D3A0 */ + 0x7C69, 0x7C6D, 0x7C6E, 0x7C70, + 0x7C72, 0x7C79, 0x7C7C, 0x7C7D, + 0x7C86, 0x7C87, 0x7C8F, 0x7C94, + 0x7C9E, 0x7CA0, 0x7CA6, 0x7CB0, + 0x7CB6, 0x7CB7, 0x7CBA, 0x7CBB, + 0x7CBC, 0x7CBF, 0x7CC4, 0x7CC7, + 0x7CC8, 0x7CC9, 0x7CCD, 0x7CCF, + 0x7CD3, 0x7CD4, 0x7CD5, 0x7CD7, /* D3C0 */ + 0x7CD9, 0x7CDA, 0x7CDD, 0x7CE6, + 0x7CE9, 0x7CEB, 0x7CF5, 0x7D03, + 0x7D07, 0x7D08, 0x7D09, 0x7D0F, + 0x7D11, 0x7D12, 0x7D13, 0x7D16, + 0x7D1D, 0x7D1E, 0x7D23, 0x7D26, + 0x7D2A, 0x7D2D, 0x7D31, 0x7D3C, + 0x7D3D, 0x7D3E, 0x7D40, 0x7D41, + 0x7D47, 0x7D48, 0x7D4D, 0x7D51, /* D3E0 */ + 0x7D53, 0x7D57, 0x7D59, 0x7D5A, + 0x7D5C, 0x7D5D, 0x7D65, 0x7D67, + 0x7D6A, 0x7D70, 0x7D78, 0x7D7A, + 0x7D7B, 0x7D7F, 0x7D81, 0x7D82, + 0x7D83, 0x7D85, 0x7D86, 0x7D88, + 0x7D8B, 0x7D8C, 0x7D8D, 0x7D91, + 0x7D96, 0x7D97, 0x7D9D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7D9E, 0x7DA6, 0x7DA7, /* D4A0 */ + 0x7DAA, 0x7DB3, 0x7DB6, 0x7DB7, + 0x7DB9, 0x7DC2, 0x7DC3, 0x7DC4, + 0x7DC5, 0x7DC6, 0x7DCC, 0x7DCD, + 0x7DCE, 0x7DD7, 0x7DD9, 0x7E00, + 0x7DE2, 0x7DE5, 0x7DE6, 0x7DEA, + 0x7DEB, 0x7DED, 0x7DF1, 0x7DF5, + 0x7DF6, 0x7DF9, 0x7DFA, 0x7E08, + 0x7E10, 0x7E11, 0x7E15, 0x7E17, /* D4C0 */ + 0x7E1C, 0x7E1D, 0x7E20, 0x7E27, + 0x7E28, 0x7E2C, 0x7E2D, 0x7E2F, + 0x7E33, 0x7E36, 0x7E3F, 0x7E44, + 0x7E45, 0x7E47, 0x7E4E, 0x7E50, + 0x7E52, 0x7E58, 0x7E5F, 0x7E61, + 0x7E62, 0x7E65, 0x7E6B, 0x7E6E, + 0x7E6F, 0x7E73, 0x7E78, 0x7E7E, + 0x7E81, 0x7E86, 0x7E87, 0x7E8A, /* D4E0 */ + 0x7E8D, 0x7E91, 0x7E95, 0x7E98, + 0x7E9A, 0x7E9D, 0x7E9E, 0x7F3C, + 0x7F3B, 0x7F3D, 0x7F3E, 0x7F3F, + 0x7F43, 0x7F44, 0x7F47, 0x7F4F, + 0x7F52, 0x7F53, 0x7F5B, 0x7F5C, + 0x7F5D, 0x7F61, 0x7F63, 0x7F64, + 0x7F65, 0x7F66, 0x7F6D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7F71, 0x7F7D, 0x7F7E, /* D5A0 */ + 0x7F7F, 0x7F80, 0x7F8B, 0x7F8D, + 0x7F8F, 0x7F90, 0x7F91, 0x7F96, + 0x7F97, 0x7F9C, 0x7FA1, 0x7FA2, + 0x7FA6, 0x7FAA, 0x7FAD, 0x7FB4, + 0x7FBC, 0x7FBF, 0x7FC0, 0x7FC3, + 0x7FC8, 0x7FCE, 0x7FCF, 0x7FDB, + 0x7FDF, 0x7FE3, 0x7FE5, 0x7FE8, + 0x7FEC, 0x7FEE, 0x7FEF, 0x7FF2, /* D5C0 */ + 0x7FFA, 0x7FFD, 0x7FFE, 0x7FFF, + 0x8007, 0x8008, 0x800A, 0x800D, + 0x800E, 0x800F, 0x8011, 0x8013, + 0x8014, 0x8016, 0x801D, 0x801E, + 0x801F, 0x8020, 0x8024, 0x8026, + 0x802C, 0x802E, 0x8030, 0x8034, + 0x8035, 0x8037, 0x8039, 0x803A, + 0x803C, 0x803E, 0x8040, 0x8044, /* D5E0 */ + 0x8060, 0x8064, 0x8066, 0x806D, + 0x8071, 0x8075, 0x8081, 0x8088, + 0x808E, 0x809C, 0x809E, 0x80A6, + 0x80A7, 0x80AB, 0x80B8, 0x80B9, + 0x80C8, 0x80CD, 0x80CF, 0x80D2, + 0x80D4, 0x80D5, 0x80D7, 0x80D8, + 0x80E0, 0x80ED, 0x80EE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x80F0, 0x80F2, 0x80F3, /* D6A0 */ + 0x80F6, 0x80F9, 0x80FA, 0x80FE, + 0x8103, 0x810B, 0x8116, 0x8117, + 0x8118, 0x811C, 0x811E, 0x8120, + 0x8124, 0x8127, 0x812C, 0x8130, + 0x8135, 0x813A, 0x813C, 0x8145, + 0x8147, 0x814A, 0x814C, 0x8152, + 0x8157, 0x8160, 0x8161, 0x8167, + 0x8168, 0x8169, 0x816D, 0x816F, /* D6C0 */ + 0x8177, 0x8181, 0x8190, 0x8184, + 0x8185, 0x8186, 0x818B, 0x818E, + 0x8196, 0x8198, 0x819B, 0x819E, + 0x81A2, 0x81AE, 0x81B2, 0x81B4, + 0x81BB, 0x81CB, 0x81C3, 0x81C5, + 0x81CA, 0x81CE, 0x81CF, 0x81D5, + 0x81D7, 0x81DB, 0x81DD, 0x81DE, + 0x81E1, 0x81E4, 0x81EB, 0x81EC, /* D6E0 */ + 0x81F0, 0x81F1, 0x81F2, 0x81F5, + 0x81F6, 0x81F8, 0x81F9, 0x81FD, + 0x81FF, 0x8200, 0x8203, 0x820F, + 0x8213, 0x8214, 0x8219, 0x821A, + 0x821D, 0x8221, 0x8222, 0x8228, + 0x8232, 0x8234, 0x823A, 0x8243, + 0x8244, 0x8245, 0x8246, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x824B, 0x824E, 0x824F, /* D7A0 */ + 0x8251, 0x8256, 0x825C, 0x8260, + 0x8263, 0x8267, 0x826D, 0x8274, + 0x827B, 0x827D, 0x827F, 0x8280, + 0x8281, 0x8283, 0x8284, 0x8287, + 0x8289, 0x828A, 0x828E, 0x8291, + 0x8294, 0x8296, 0x8298, 0x829A, + 0x829B, 0x82A0, 0x82A1, 0x82A3, + 0x82A4, 0x82A7, 0x82A8, 0x82A9, /* D7C0 */ + 0x82AA, 0x82AE, 0x82B0, 0x82B2, + 0x82B4, 0x82B7, 0x82BA, 0x82BC, + 0x82BE, 0x82BF, 0x82C6, 0x82D0, + 0x82D5, 0x82DA, 0x82E0, 0x82E2, + 0x82E4, 0x82E8, 0x82EA, 0x82ED, + 0x82EF, 0x82F6, 0x82F7, 0x82FD, + 0x82FE, 0x8300, 0x8301, 0x8307, + 0x8308, 0x830A, 0x830B, 0x8354, /* D7E0 */ + 0x831B, 0x831D, 0x831E, 0x831F, + 0x8321, 0x8322, 0x832C, 0x832D, + 0x832E, 0x8330, 0x8333, 0x8337, + 0x833A, 0x833C, 0x833D, 0x8342, + 0x8343, 0x8344, 0x8347, 0x834D, + 0x834E, 0x8351, 0x8355, 0x8356, + 0x8357, 0x8370, 0x8378, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x837D, 0x837F, 0x8380, /* D8A0 */ + 0x8382, 0x8384, 0x8386, 0x838D, + 0x8392, 0x8394, 0x8395, 0x8398, + 0x8399, 0x839B, 0x839C, 0x839D, + 0x83A6, 0x83A7, 0x83A9, 0x83AC, + 0x83BE, 0x83BF, 0x83C0, 0x83C7, + 0x83C9, 0x83CF, 0x83D0, 0x83D1, + 0x83D4, 0x83DD, 0x8353, 0x83E8, + 0x83EA, 0x83F6, 0x83F8, 0x83F9, /* D8C0 */ + 0x83FC, 0x8401, 0x8406, 0x840A, + 0x840F, 0x8411, 0x8415, 0x8419, + 0x83AD, 0x842F, 0x8439, 0x8445, + 0x8447, 0x8448, 0x844A, 0x844D, + 0x844F, 0x8451, 0x8452, 0x8456, + 0x8458, 0x8459, 0x845A, 0x845C, + 0x8460, 0x8464, 0x8465, 0x8467, + 0x846A, 0x8470, 0x8473, 0x8474, /* D8E0 */ + 0x8476, 0x8478, 0x847C, 0x847D, + 0x8481, 0x8485, 0x8492, 0x8493, + 0x8495, 0x849E, 0x84A6, 0x84A8, + 0x84A9, 0x84AA, 0x84AF, 0x84B1, + 0x84B4, 0x84BA, 0x84BD, 0x84BE, + 0x84C0, 0x84C2, 0x84C7, 0x84C8, + 0x84CC, 0x84CF, 0x84D3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x84DC, 0x84E7, 0x84EA, /* D9A0 */ + 0x84EF, 0x84F0, 0x84F1, 0x84F2, + 0x84F7, 0x8532, 0x84FA, 0x84FB, + 0x84FD, 0x8502, 0x8503, 0x8507, + 0x850C, 0x850E, 0x8510, 0x851C, + 0x851E, 0x8522, 0x8523, 0x8524, + 0x8525, 0x8527, 0x852A, 0x852B, + 0x852F, 0x8533, 0x8534, 0x8536, + 0x853F, 0x8546, 0x854F, 0x8550, /* D9C0 */ + 0x8551, 0x8552, 0x8553, 0x8556, + 0x8559, 0x855C, 0x855D, 0x855E, + 0x855F, 0x8560, 0x8561, 0x8562, + 0x8564, 0x856B, 0x856F, 0x8579, + 0x857A, 0x857B, 0x857D, 0x857F, + 0x8581, 0x8585, 0x8586, 0x8589, + 0x858B, 0x858C, 0x858F, 0x8593, + 0x8598, 0x859D, 0x859F, 0x85A0, /* D9E0 */ + 0x85A2, 0x85A5, 0x85A7, 0x85B4, + 0x85B6, 0x85B7, 0x85B8, 0x85BC, + 0x85BD, 0x85BE, 0x85BF, 0x85C2, + 0x85C7, 0x85CA, 0x85CB, 0x85CE, + 0x85AD, 0x85D8, 0x85DA, 0x85DF, + 0x85E0, 0x85E6, 0x85E8, 0x85ED, + 0x85F3, 0x85F6, 0x85FC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x85FF, 0x8600, 0x8604, /* DAA0 */ + 0x8605, 0x860D, 0x860E, 0x8610, + 0x8611, 0x8612, 0x8618, 0x8619, + 0x861B, 0x861E, 0x8621, 0x8627, + 0x8629, 0x8636, 0x8638, 0x863A, + 0x863C, 0x863D, 0x8640, 0x8642, + 0x8646, 0x8652, 0x8653, 0x8656, + 0x8657, 0x8658, 0x8659, 0x865D, + 0x8660, 0x8661, 0x8662, 0x8663, /* DAC0 */ + 0x8664, 0x8669, 0x866C, 0x866F, + 0x8675, 0x8676, 0x8677, 0x867A, + 0x868D, 0x8691, 0x8696, 0x8698, + 0x869A, 0x869C, 0x86A1, 0x86A6, + 0x86A7, 0x86A8, 0x86AD, 0x86B1, + 0x86B3, 0x86B4, 0x86B5, 0x86B7, + 0x86B8, 0x86B9, 0x86BF, 0x86C0, + 0x86C1, 0x86C3, 0x86C5, 0x86D1, /* DAE0 */ + 0x86D2, 0x86D5, 0x86D7, 0x86DA, + 0x86DC, 0x86E0, 0x86E3, 0x86E5, + 0x86E7, 0x8688, 0x86FA, 0x86FC, + 0x86FD, 0x8704, 0x8705, 0x8707, + 0x870B, 0x870E, 0x870F, 0x8710, + 0x8713, 0x8714, 0x8719, 0x871E, + 0x871F, 0x8721, 0x8723, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8728, 0x872E, 0x872F, /* DBA0 */ + 0x8731, 0x8732, 0x8739, 0x873A, + 0x873C, 0x873D, 0x873E, 0x8740, + 0x8743, 0x8745, 0x874D, 0x8758, + 0x875D, 0x8761, 0x8764, 0x8765, + 0x876F, 0x8771, 0x8772, 0x877B, + 0x8783, 0x8784, 0x8785, 0x8786, + 0x8787, 0x8788, 0x8789, 0x878B, + 0x878C, 0x8790, 0x8793, 0x8795, /* DBC0 */ + 0x8797, 0x8798, 0x8799, 0x879E, + 0x87A0, 0x87A3, 0x87A7, 0x87AC, + 0x87AD, 0x87AE, 0x87B1, 0x87B5, + 0x87BE, 0x87BF, 0x87C1, 0x87C8, + 0x87C9, 0x87CA, 0x87CE, 0x87D5, + 0x87D6, 0x87D9, 0x87DA, 0x87DC, + 0x87DF, 0x87E2, 0x87E3, 0x87E4, + 0x87EA, 0x87EB, 0x87ED, 0x87F1, /* DBE0 */ + 0x87F3, 0x87F8, 0x87FA, 0x87FF, + 0x8801, 0x8803, 0x8806, 0x8809, + 0x880A, 0x880B, 0x8810, 0x8819, + 0x8812, 0x8813, 0x8814, 0x8818, + 0x881A, 0x881B, 0x881C, 0x881E, + 0x881F, 0x8828, 0x882D, 0x882E, + 0x8830, 0x8832, 0x8835, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x883A, 0x883C, 0x8841, /* DCA0 */ + 0x8843, 0x8845, 0x8848, 0x8849, + 0x884A, 0x884B, 0x884E, 0x8851, + 0x8855, 0x8856, 0x8858, 0x885A, + 0x885C, 0x885F, 0x8860, 0x8864, + 0x8869, 0x8871, 0x8879, 0x887B, + 0x8880, 0x8898, 0x889A, 0x889B, + 0x889C, 0x889F, 0x88A0, 0x88A8, + 0x88AA, 0x88BA, 0x88BD, 0x88BE, /* DCC0 */ + 0x88C0, 0x88CA, 0x88CB, 0x88CC, + 0x88CD, 0x88CE, 0x88D1, 0x88D2, + 0x88D3, 0x88DB, 0x88DE, 0x88E7, + 0x88EF, 0x88F0, 0x88F1, 0x88F5, + 0x88F7, 0x8901, 0x8906, 0x890D, + 0x890E, 0x890F, 0x8915, 0x8916, + 0x8918, 0x8919, 0x891A, 0x891C, + 0x8920, 0x8926, 0x8927, 0x8928, /* DCE0 */ + 0x8930, 0x8931, 0x8932, 0x8935, + 0x8939, 0x893A, 0x893E, 0x8940, + 0x8942, 0x8945, 0x8946, 0x8949, + 0x894F, 0x8952, 0x8957, 0x895A, + 0x895B, 0x895C, 0x8961, 0x8962, + 0x8963, 0x896B, 0x896E, 0x8970, + 0x8973, 0x8975, 0x897A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x897B, 0x897C, 0x897D, /* DDA0 */ + 0x8989, 0x898D, 0x8990, 0x8994, + 0x8995, 0x899B, 0x899C, 0x899F, + 0x89A0, 0x89A5, 0x89B0, 0x89B4, + 0x89B5, 0x89B6, 0x89B7, 0x89BC, + 0x89D4, 0x89D5, 0x89D6, 0x89D7, + 0x89D8, 0x89E5, 0x89E9, 0x89EB, + 0x89ED, 0x89F1, 0x89F3, 0x89F6, + 0x89F9, 0x89FD, 0x89FF, 0x8A04, /* DDC0 */ + 0x8A05, 0x8A07, 0x8A0F, 0x8A11, + 0x8A12, 0x8A14, 0x8A15, 0x8A1E, + 0x8A20, 0x8A22, 0x8A24, 0x8A26, + 0x8A2B, 0x8A2C, 0x8A2F, 0x8A35, + 0x8A37, 0x8A3D, 0x8A3E, 0x8A40, + 0x8A43, 0x8A45, 0x8A47, 0x8A49, + 0x8A4D, 0x8A4E, 0x8A53, 0x8A56, + 0x8A57, 0x8A58, 0x8A5C, 0x8A5D, /* DDE0 */ + 0x8A61, 0x8A65, 0x8A67, 0x8A75, + 0x8A76, 0x8A77, 0x8A79, 0x8A7A, + 0x8A7B, 0x8A7E, 0x8A7F, 0x8A80, + 0x8A83, 0x8A86, 0x8A8B, 0x8A8F, + 0x8A90, 0x8A92, 0x8A96, 0x8A97, + 0x8A99, 0x8A9F, 0x8AA7, 0x8AA9, + 0x8AAE, 0x8AAF, 0x8AB3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8AB6, 0x8AB7, 0x8ABB, /* DEA0 */ + 0x8ABE, 0x8AC3, 0x8AC6, 0x8AC8, + 0x8AC9, 0x8ACA, 0x8AD1, 0x8AD3, + 0x8AD4, 0x8AD5, 0x8AD7, 0x8ADD, + 0x8ADF, 0x8AEC, 0x8AF0, 0x8AF4, + 0x8AF5, 0x8AF6, 0x8AFC, 0x8AFF, + 0x8B05, 0x8B06, 0x8B0B, 0x8B11, + 0x8B1C, 0x8B1E, 0x8B1F, 0x8B0A, + 0x8B2D, 0x8B30, 0x8B37, 0x8B3C, /* DEC0 */ + 0x8B42, 0x8B43, 0x8B44, 0x8B45, + 0x8B46, 0x8B48, 0x8B52, 0x8B53, + 0x8B54, 0x8B59, 0x8B4D, 0x8B5E, + 0x8B63, 0x8B6D, 0x8B76, 0x8B78, + 0x8B79, 0x8B7C, 0x8B7E, 0x8B81, + 0x8B84, 0x8B85, 0x8B8B, 0x8B8D, + 0x8B8F, 0x8B94, 0x8B95, 0x8B9C, + 0x8B9E, 0x8B9F, 0x8C38, 0x8C39, /* DEE0 */ + 0x8C3D, 0x8C3E, 0x8C45, 0x8C47, + 0x8C49, 0x8C4B, 0x8C4F, 0x8C51, + 0x8C53, 0x8C54, 0x8C57, 0x8C58, + 0x8C5B, 0x8C5D, 0x8C59, 0x8C63, + 0x8C64, 0x8C66, 0x8C68, 0x8C69, + 0x8C6D, 0x8C73, 0x8C75, 0x8C76, + 0x8C7B, 0x8C7E, 0x8C86, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8C87, 0x8C8B, 0x8C90, /* DFA0 */ + 0x8C92, 0x8C93, 0x8C99, 0x8C9B, + 0x8C9C, 0x8CA4, 0x8CB9, 0x8CBA, + 0x8CC5, 0x8CC6, 0x8CC9, 0x8CCB, + 0x8CCF, 0x8CD6, 0x8CD5, 0x8CD9, + 0x8CDD, 0x8CE1, 0x8CE8, 0x8CEC, + 0x8CEF, 0x8CF0, 0x8CF2, 0x8CF5, + 0x8CF7, 0x8CF8, 0x8CFE, 0x8CFF, + 0x8D01, 0x8D03, 0x8D09, 0x8D12, /* DFC0 */ + 0x8D17, 0x8D1B, 0x8D65, 0x8D69, + 0x8D6C, 0x8D6E, 0x8D7F, 0x8D82, + 0x8D84, 0x8D88, 0x8D8D, 0x8D90, + 0x8D91, 0x8D95, 0x8D9E, 0x8D9F, + 0x8DA0, 0x8DA6, 0x8DAB, 0x8DAC, + 0x8DAF, 0x8DB2, 0x8DB5, 0x8DB7, + 0x8DB9, 0x8DBB, 0x8DC0, 0x8DC5, + 0x8DC6, 0x8DC7, 0x8DC8, 0x8DCA, /* DFE0 */ + 0x8DCE, 0x8DD1, 0x8DD4, 0x8DD5, + 0x8DD7, 0x8DD9, 0x8DE4, 0x8DE5, + 0x8DE7, 0x8DEC, 0x8DF0, 0x8DBC, + 0x8DF1, 0x8DF2, 0x8DF4, 0x8DFD, + 0x8E01, 0x8E04, 0x8E05, 0x8E06, + 0x8E0B, 0x8E11, 0x8E14, 0x8E16, + 0x8E20, 0x8E21, 0x8E22, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8E23, 0x8E26, 0x8E27, /* E0A0 */ + 0x8E31, 0x8E33, 0x8E36, 0x8E37, + 0x8E38, 0x8E39, 0x8E3D, 0x8E40, + 0x8E41, 0x8E4B, 0x8E4D, 0x8E4E, + 0x8E4F, 0x8E54, 0x8E5B, 0x8E5C, + 0x8E5D, 0x8E5E, 0x8E61, 0x8E62, + 0x8E69, 0x8E6C, 0x8E6D, 0x8E6F, + 0x8E70, 0x8E71, 0x8E79, 0x8E7A, + 0x8E7B, 0x8E82, 0x8E83, 0x8E89, /* E0C0 */ + 0x8E90, 0x8E92, 0x8E95, 0x8E9A, + 0x8E9B, 0x8E9D, 0x8E9E, 0x8EA2, + 0x8EA7, 0x8EA9, 0x8EAD, 0x8EAE, + 0x8EB3, 0x8EB5, 0x8EBA, 0x8EBB, + 0x8EC0, 0x8EC1, 0x8EC3, 0x8EC4, + 0x8EC7, 0x8ECF, 0x8ED1, 0x8ED4, + 0x8EDC, 0x8EE8, 0x8EEE, 0x8EF0, + 0x8EF1, 0x8EF7, 0x8EF9, 0x8EFA, /* E0E0 */ + 0x8EED, 0x8F00, 0x8F02, 0x8F07, + 0x8F08, 0x8F0F, 0x8F10, 0x8F16, + 0x8F17, 0x8F18, 0x8F1E, 0x8F20, + 0x8F21, 0x8F23, 0x8F25, 0x8F27, + 0x8F28, 0x8F2C, 0x8F2D, 0x8F2E, + 0x8F34, 0x8F35, 0x8F36, 0x8F37, + 0x8F3A, 0x8F40, 0x8F41, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8F43, 0x8F47, 0x8F4F, /* E1A0 */ + 0x8F51, 0x8F52, 0x8F53, 0x8F54, + 0x8F55, 0x8F58, 0x8F5D, 0x8F5E, + 0x8F65, 0x8F9D, 0x8FA0, 0x8FA1, + 0x8FA4, 0x8FA5, 0x8FA6, 0x8FB5, + 0x8FB6, 0x8FB8, 0x8FBE, 0x8FC0, + 0x8FC1, 0x8FC6, 0x8FCA, 0x8FCB, + 0x8FCD, 0x8FD0, 0x8FD2, 0x8FD3, + 0x8FD5, 0x8FE0, 0x8FE3, 0x8FE4, /* E1C0 */ + 0x8FE8, 0x8FEE, 0x8FF1, 0x8FF5, + 0x8FF6, 0x8FFB, 0x8FFE, 0x9002, + 0x9004, 0x9008, 0x900C, 0x9018, + 0x901B, 0x9028, 0x9029, 0x902F, + 0x902A, 0x902C, 0x902D, 0x9033, + 0x9034, 0x9037, 0x903F, 0x9043, + 0x9044, 0x904C, 0x905B, 0x905D, + 0x9062, 0x9066, 0x9067, 0x906C, /* E1E0 */ + 0x9070, 0x9074, 0x9079, 0x9085, + 0x9088, 0x908B, 0x908C, 0x908E, + 0x9090, 0x9095, 0x9097, 0x9098, + 0x9099, 0x909B, 0x90A0, 0x90A1, + 0x90A2, 0x90A5, 0x90B0, 0x90B2, + 0x90B3, 0x90B4, 0x90B6, 0x90BD, + 0x90CC, 0x90BE, 0x90C3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x90C4, 0x90C5, 0x90C7, /* E2A0 */ + 0x90C8, 0x90D5, 0x90D7, 0x90D8, + 0x90D9, 0x90DC, 0x90DD, 0x90DF, + 0x90E5, 0x90D2, 0x90F6, 0x90EB, + 0x90EF, 0x90F0, 0x90F4, 0x90FE, + 0x90FF, 0x9100, 0x9104, 0x9105, + 0x9106, 0x9108, 0x910D, 0x9110, + 0x9114, 0x9116, 0x9117, 0x9118, + 0x911A, 0x911C, 0x911E, 0x9120, /* E2C0 */ + 0x9125, 0x9122, 0x9123, 0x9127, + 0x9129, 0x912E, 0x912F, 0x9131, + 0x9134, 0x9136, 0x9137, 0x9139, + 0x913A, 0x913C, 0x913D, 0x9143, + 0x9147, 0x9148, 0x914F, 0x9153, + 0x9157, 0x9159, 0x915A, 0x915B, + 0x9161, 0x9164, 0x9167, 0x916D, + 0x9174, 0x9179, 0x917A, 0x917B, /* E2E0 */ + 0x9181, 0x9183, 0x9185, 0x9186, + 0x918A, 0x918E, 0x9191, 0x9193, + 0x9194, 0x9195, 0x9198, 0x919E, + 0x91A1, 0x91A6, 0x91A8, 0x91AC, + 0x91AD, 0x91AE, 0x91B0, 0x91B1, + 0x91B2, 0x91B3, 0x91B6, 0x91BB, + 0x91BC, 0x91BD, 0x91BF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x91C2, 0x91C3, 0x91C5, /* E3A0 */ + 0x91D3, 0x91D4, 0x91D7, 0x91D9, + 0x91DA, 0x91DE, 0x91E4, 0x91E5, + 0x91E9, 0x91EA, 0x91EC, 0x91ED, + 0x91EE, 0x91EF, 0x91F0, 0x91F1, + 0x91F7, 0x91F9, 0x91FB, 0x91FD, + 0x9200, 0x9201, 0x9204, 0x9205, + 0x9206, 0x9207, 0x9209, 0x920A, + 0x920C, 0x9210, 0x9212, 0x9213, /* E3C0 */ + 0x9216, 0x9218, 0x921C, 0x921D, + 0x9223, 0x9224, 0x9225, 0x9226, + 0x9228, 0x922E, 0x922F, 0x9230, + 0x9233, 0x9235, 0x9236, 0x9238, + 0x9239, 0x923A, 0x923C, 0x923E, + 0x9240, 0x9242, 0x9243, 0x9246, + 0x9247, 0x924A, 0x924D, 0x924E, + 0x924F, 0x9251, 0x9258, 0x9259, /* E3E0 */ + 0x925C, 0x925D, 0x9260, 0x9261, + 0x9265, 0x9267, 0x9268, 0x9269, + 0x926E, 0x926F, 0x9270, 0x9275, + 0x9276, 0x9277, 0x9278, 0x9279, + 0x927B, 0x927C, 0x927D, 0x927F, + 0x9288, 0x9289, 0x928A, 0x928D, + 0x928E, 0x9292, 0x9297, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9299, 0x929F, 0x92A0, /* E4A0 */ + 0x92A4, 0x92A5, 0x92A7, 0x92A8, + 0x92AB, 0x92AF, 0x92B2, 0x92B6, + 0x92B8, 0x92BA, 0x92BB, 0x92BC, + 0x92BD, 0x92BF, 0x92C0, 0x92C1, + 0x92C2, 0x92C3, 0x92C5, 0x92C6, + 0x92C7, 0x92C8, 0x92CB, 0x92CC, + 0x92CD, 0x92CE, 0x92D0, 0x92D3, + 0x92D5, 0x92D7, 0x92D8, 0x92D9, /* E4C0 */ + 0x92DC, 0x92DD, 0x92DF, 0x92E0, + 0x92E1, 0x92E3, 0x92E5, 0x92E7, + 0x92E8, 0x92EC, 0x92EE, 0x92F0, + 0x92F9, 0x92FB, 0x92FF, 0x9300, + 0x9302, 0x9308, 0x930D, 0x9311, + 0x9314, 0x9315, 0x931C, 0x931D, + 0x931E, 0x931F, 0x9321, 0x9324, + 0x9325, 0x9327, 0x9329, 0x932A, /* E4E0 */ + 0x9333, 0x9334, 0x9336, 0x9337, + 0x9347, 0x9348, 0x9349, 0x9350, + 0x9351, 0x9352, 0x9355, 0x9357, + 0x9358, 0x935A, 0x935E, 0x9364, + 0x9365, 0x9367, 0x9369, 0x936A, + 0x936D, 0x936F, 0x9370, 0x9371, + 0x9373, 0x9374, 0x9376, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x937A, 0x937D, 0x937F, /* E5A0 */ + 0x9380, 0x9381, 0x9382, 0x9388, + 0x938A, 0x938B, 0x938D, 0x938F, + 0x9392, 0x9395, 0x9398, 0x939B, + 0x939E, 0x93A1, 0x93A3, 0x93A4, + 0x93A6, 0x93A8, 0x93AB, 0x93B4, + 0x93B5, 0x93B6, 0x93BA, 0x93A9, + 0x93C1, 0x93C4, 0x93C5, 0x93C6, + 0x93C7, 0x93C9, 0x93CA, 0x93CB, /* E5C0 */ + 0x93CC, 0x93CD, 0x93D3, 0x93D9, + 0x93DC, 0x93DE, 0x93DF, 0x93E2, + 0x93E6, 0x93E7, 0x93F9, 0x93F7, + 0x93F8, 0x93FA, 0x93FB, 0x93FD, + 0x9401, 0x9402, 0x9404, 0x9408, + 0x9409, 0x940D, 0x940E, 0x940F, + 0x9415, 0x9416, 0x9417, 0x941F, + 0x942E, 0x942F, 0x9431, 0x9432, /* E5E0 */ + 0x9433, 0x9434, 0x943B, 0x943F, + 0x943D, 0x9443, 0x9445, 0x9448, + 0x944A, 0x944C, 0x9455, 0x9459, + 0x945C, 0x945F, 0x9461, 0x9463, + 0x9468, 0x946B, 0x946D, 0x946E, + 0x946F, 0x9471, 0x9472, 0x9484, + 0x9483, 0x9578, 0x9579, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x957E, 0x9584, 0x9588, /* E6A0 */ + 0x958C, 0x958D, 0x958E, 0x959D, + 0x959E, 0x959F, 0x95A1, 0x95A6, + 0x95A9, 0x95AB, 0x95AC, 0x95B4, + 0x95B6, 0x95BA, 0x95BD, 0x95BF, + 0x95C6, 0x95C8, 0x95C9, 0x95CB, + 0x95D0, 0x95D1, 0x95D2, 0x95D3, + 0x95D9, 0x95DA, 0x95DD, 0x95DE, + 0x95DF, 0x95E0, 0x95E4, 0x95E6, /* E6C0 */ + 0x961D, 0x961E, 0x9622, 0x9624, + 0x9625, 0x9626, 0x962C, 0x9631, + 0x9633, 0x9637, 0x9638, 0x9639, + 0x963A, 0x963C, 0x963D, 0x9641, + 0x9652, 0x9654, 0x9656, 0x9657, + 0x9658, 0x9661, 0x966E, 0x9674, + 0x967B, 0x967C, 0x967E, 0x967F, + 0x9681, 0x9682, 0x9683, 0x9684, /* E6E0 */ + 0x9689, 0x9691, 0x9696, 0x969A, + 0x969D, 0x969F, 0x96A4, 0x96A5, + 0x96A6, 0x96A9, 0x96AE, 0x96AF, + 0x96B3, 0x96BA, 0x96CA, 0x96D2, + 0x5DB2, 0x96D8, 0x96DA, 0x96DD, + 0x96DE, 0x96DF, 0x96E9, 0x96EF, + 0x96F1, 0x96FA, 0x9702, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9703, 0x9705, 0x9709, /* E7A0 */ + 0x971A, 0x971B, 0x971D, 0x9721, + 0x9722, 0x9723, 0x9728, 0x9731, + 0x9733, 0x9741, 0x9743, 0x974A, + 0x974E, 0x974F, 0x9755, 0x9757, + 0x9758, 0x975A, 0x975B, 0x9763, + 0x9767, 0x976A, 0x976E, 0x9773, + 0x9776, 0x9777, 0x9778, 0x977B, + 0x977D, 0x977F, 0x9780, 0x9789, /* E7C0 */ + 0x9795, 0x9796, 0x9797, 0x9799, + 0x979A, 0x979E, 0x979F, 0x97A2, + 0x97AC, 0x97AE, 0x97B1, 0x97B2, + 0x97B5, 0x97B6, 0x97B8, 0x97B9, + 0x97BA, 0x97BC, 0x97BE, 0x97BF, + 0x97C1, 0x97C4, 0x97C5, 0x97C7, + 0x97C9, 0x97CA, 0x97CC, 0x97CD, + 0x97CE, 0x97D0, 0x97D1, 0x97D4, /* E7E0 */ + 0x97D7, 0x97D8, 0x97D9, 0x97DD, + 0x97DE, 0x97E0, 0x97DB, 0x97E1, + 0x97E4, 0x97EF, 0x97F1, 0x97F4, + 0x97F7, 0x97F8, 0x97FA, 0x9807, + 0x980A, 0x9819, 0x980D, 0x980E, + 0x9814, 0x9816, 0x981C, 0x981E, + 0x9820, 0x9823, 0x9826, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x982B, 0x982E, 0x982F, /* E8A0 */ + 0x9830, 0x9832, 0x9833, 0x9835, + 0x9825, 0x983E, 0x9844, 0x9847, + 0x984A, 0x9851, 0x9852, 0x9853, + 0x9856, 0x9857, 0x9859, 0x985A, + 0x9862, 0x9863, 0x9865, 0x9866, + 0x986A, 0x986C, 0x98AB, 0x98AD, + 0x98AE, 0x98B0, 0x98B4, 0x98B7, + 0x98B8, 0x98BA, 0x98BB, 0x98BF, /* E8C0 */ + 0x98C2, 0x98C5, 0x98C8, 0x98CC, + 0x98E1, 0x98E3, 0x98E5, 0x98E6, + 0x98E7, 0x98EA, 0x98F3, 0x98F6, + 0x9902, 0x9907, 0x9908, 0x9911, + 0x9915, 0x9916, 0x9917, 0x991A, + 0x991B, 0x991C, 0x991F, 0x9922, + 0x9926, 0x9927, 0x992B, 0x9931, + 0x9932, 0x9933, 0x9934, 0x9935, /* E8E0 */ + 0x9939, 0x993A, 0x993B, 0x993C, + 0x9940, 0x9941, 0x9946, 0x9947, + 0x9948, 0x994D, 0x994E, 0x9954, + 0x9958, 0x9959, 0x995B, 0x995C, + 0x995E, 0x995F, 0x9960, 0x999B, + 0x999D, 0x999F, 0x99A6, 0x99B0, + 0x99B1, 0x99B2, 0x99B5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x99B9, 0x99BA, 0x99BD, /* E9A0 */ + 0x99BF, 0x99C3, 0x99C9, 0x99D3, + 0x99D4, 0x99D9, 0x99DA, 0x99DC, + 0x99DE, 0x99E7, 0x99EA, 0x99EB, + 0x99EC, 0x99F0, 0x99F4, 0x99F5, + 0x99F9, 0x99FD, 0x99FE, 0x9A02, + 0x9A03, 0x9A04, 0x9A0B, 0x9A0C, + 0x9A10, 0x9A11, 0x9A16, 0x9A1E, + 0x9A20, 0x9A22, 0x9A23, 0x9A24, /* E9C0 */ + 0x9A27, 0x9A2D, 0x9A2E, 0x9A33, + 0x9A35, 0x9A36, 0x9A38, 0x9A47, + 0x9A41, 0x9A44, 0x9A4A, 0x9A4B, + 0x9A4C, 0x9A4E, 0x9A51, 0x9A54, + 0x9A56, 0x9A5D, 0x9AAA, 0x9AAC, + 0x9AAE, 0x9AAF, 0x9AB2, 0x9AB4, + 0x9AB5, 0x9AB6, 0x9AB9, 0x9ABB, + 0x9ABE, 0x9ABF, 0x9AC1, 0x9AC3, /* E9E0 */ + 0x9AC6, 0x9AC8, 0x9ACE, 0x9AD0, + 0x9AD2, 0x9AD5, 0x9AD6, 0x9AD7, + 0x9ADB, 0x9ADC, 0x9AE0, 0x9AE4, + 0x9AE5, 0x9AE7, 0x9AE9, 0x9AEC, + 0x9AF2, 0x9AF3, 0x9AF5, 0x9AF9, + 0x9AFA, 0x9AFD, 0x9AFF, 0x9B00, + 0x9B01, 0x9B02, 0x9B03, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9B04, 0x9B05, 0x9B08, /* EAA0 */ + 0x9B09, 0x9B0B, 0x9B0C, 0x9B0D, + 0x9B0E, 0x9B10, 0x9B12, 0x9B16, + 0x9B19, 0x9B1B, 0x9B1C, 0x9B20, + 0x9B26, 0x9B2B, 0x9B2D, 0x9B33, + 0x9B34, 0x9B35, 0x9B37, 0x9B39, + 0x9B3A, 0x9B3D, 0x9B48, 0x9B4B, + 0x9B4C, 0x9B55, 0x9B56, 0x9B57, + 0x9B5B, 0x9B5E, 0x9B61, 0x9B63, /* EAC0 */ + 0x9B65, 0x9B66, 0x9B68, 0x9B6A, + 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, + 0x9B73, 0x9B75, 0x9B77, 0x9B78, + 0x9B79, 0x9B7F, 0x9B80, 0x9B84, + 0x9B85, 0x9B86, 0x9B87, 0x9B89, + 0x9B8A, 0x9B8B, 0x9B8D, 0x9B8F, + 0x9B90, 0x9B94, 0x9B9A, 0x9B9D, + 0x9B9E, 0x9BA6, 0x9BA7, 0x9BA9, /* EAE0 */ + 0x9BAC, 0x9BB0, 0x9BB1, 0x9BB2, + 0x9BB7, 0x9BB8, 0x9BBB, 0x9BBC, + 0x9BBE, 0x9BBF, 0x9BC1, 0x9BC7, + 0x9BC8, 0x9BCE, 0x9BD0, 0x9BD7, + 0x9BD8, 0x9BDD, 0x9BDF, 0x9BE5, + 0x9BE7, 0x9BEA, 0x9BEB, 0x9BEF, + 0x9BF3, 0x9BF7, 0x9BF8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9BF9, 0x9BFA, 0x9BFD, /* EBA0 */ + 0x9BFF, 0x9C00, 0x9C02, 0x9C0B, + 0x9C0F, 0x9C11, 0x9C16, 0x9C18, + 0x9C19, 0x9C1A, 0x9C1C, 0x9C1E, + 0x9C22, 0x9C23, 0x9C26, 0x9C27, + 0x9C28, 0x9C29, 0x9C2A, 0x9C31, + 0x9C35, 0x9C36, 0x9C37, 0x9C3D, + 0x9C41, 0x9C43, 0x9C44, 0x9C45, + 0x9C49, 0x9C4A, 0x9C4E, 0x9C4F, /* EBC0 */ + 0x9C50, 0x9C53, 0x9C54, 0x9C56, + 0x9C58, 0x9C5B, 0x9C5D, 0x9C5E, + 0x9C5F, 0x9C63, 0x9C69, 0x9C6A, + 0x9C5C, 0x9C6B, 0x9C68, 0x9C6E, + 0x9C70, 0x9C72, 0x9C75, 0x9C77, + 0x9C7B, 0x9CE6, 0x9CF2, 0x9CF7, + 0x9CF9, 0x9D0B, 0x9D02, 0x9D11, + 0x9D17, 0x9D18, 0x9D1C, 0x9D1D, /* EBE0 */ + 0x9D1E, 0x9D2F, 0x9D30, 0x9D32, + 0x9D33, 0x9D34, 0x9D3A, 0x9D3C, + 0x9D45, 0x9D3D, 0x9D42, 0x9D43, + 0x9D47, 0x9D4A, 0x9D53, 0x9D54, + 0x9D5F, 0x9D63, 0x9D62, 0x9D65, + 0x9D69, 0x9D6A, 0x9D6B, 0x9D70, + 0x9D76, 0x9D77, 0x9D7B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9D7C, 0x9D7E, 0x9D83, /* ECA0 */ + 0x9D84, 0x9D86, 0x9D8A, 0x9D8D, + 0x9D8E, 0x9D92, 0x9D93, 0x9D95, + 0x9D96, 0x9D97, 0x9D98, 0x9DA1, + 0x9DAA, 0x9DAC, 0x9DAE, 0x9DB1, + 0x9DB5, 0x9DB9, 0x9DBC, 0x9DBF, + 0x9DC3, 0x9DC7, 0x9DC9, 0x9DCA, + 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, + 0x9DDA, 0x9DDE, 0x9DDF, 0x9DE0, /* ECC0 */ + 0x9DE5, 0x9DE7, 0x9DE9, 0x9DEB, + 0x9DEE, 0x9DF0, 0x9DF3, 0x9DF4, + 0x9DFE, 0x9E0A, 0x9E02, 0x9E07, + 0x9E0E, 0x9E10, 0x9E11, 0x9E12, + 0x9E15, 0x9E16, 0x9E19, 0x9E1C, + 0x9E1D, 0x9E7A, 0x9E7B, 0x9E7C, + 0x9E80, 0x9E82, 0x9E83, 0x9E84, + 0x9E85, 0x9E87, 0x9E8E, 0x9E8F, /* ECE0 */ + 0x9E96, 0x9E98, 0x9E9B, 0x9E9E, + 0x9EA4, 0x9EA8, 0x9EAC, 0x9EAE, + 0x9EAF, 0x9EB0, 0x9EB3, 0x9EB4, + 0x9EB5, 0x9EC6, 0x9EC8, 0x9ECB, + 0x9ED5, 0x9EDF, 0x9EE4, 0x9EE7, + 0x9EEC, 0x9EED, 0x9EEE, 0x9EF0, + 0x9EF1, 0x9EF2, 0x9EF5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9EF8, 0x9EFF, 0x9F02, /* EDA0 */ + 0x9F03, 0x9F09, 0x9F0F, 0x9F10, + 0x9F11, 0x9F12, 0x9F14, 0x9F16, + 0x9F17, 0x9F19, 0x9F1A, 0x9F1B, + 0x9F1F, 0x9F22, 0x9F26, 0x9F2A, + 0x9F2B, 0x9F2F, 0x9F31, 0x9F32, + 0x9F34, 0x9F37, 0x9F39, 0x9F3A, + 0x9F3C, 0x9F3D, 0x9F3F, 0x9F41, + 0x9F43, 0x9F44, 0x9F45, 0x9F46, /* EDC0 */ + 0x9F47, 0x9F53, 0x9F55, 0x9F56, + 0x9F57, 0x9F58, 0x9F5A, 0x9F5D, + 0x9F5E, 0x9F68, 0x9F69, 0x9F6D, + 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, + 0x9F73, 0x9F75, 0x9F7A, 0x9F7D, + 0x9F8F, 0x9F90, 0x9F91, 0x9F92, + 0x9F94, 0x9F96, 0x9F97, 0x9F9E, + 0x9FA1, 0x9FA2, 0x9FA3, 0x9FA5, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2170, + 0x2171, 0x2172, 0x2173, 0x2174, + 0x2175, 0x2176, 0x2177, 0x2178, + 0x2179, 0x2160, 0x2161, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2162, 0x2163, 0x2164, /* F4A0 */ + 0x2165, 0x2166, 0x2167, 0x2168, + 0x2169, 0xFF07, 0xFF02, 0x3231, + 0x2116, 0x2121, 0x70BB, 0x4EFC, + 0x50F4, 0x51EC, 0x5307, 0x5324, + 0xFA0E, 0x548A, 0x5759, 0xFA0F, + 0xFA10, 0x589E, 0x5BEC, 0x5CF5, + 0x5D53, 0xFA11, 0x5FB7, 0x6085, + 0x6120, 0x654E, 0x663B, 0x6665, /* F4C0 */ + 0xFA12, 0xF929, 0x6801, 0xFA13, + 0xFA14, 0x6A6B, 0x6AE2, 0x6DF8, + 0x6DF2, 0x7028, 0xFA15, 0xFA16, + 0x7501, 0x7682, 0x769E, 0xFA17, + 0x7930, 0xFA18, 0xFA19, 0xFA1A, + 0xFA1B, 0x7AE7, 0xFA1C, 0xFA1D, + 0x7DA0, 0x7DD6, 0xFA1E, 0x8362, + 0xFA1F, 0x85B0, 0xFA20, 0xFA21, /* F4E0 */ + 0x8807, 0xFA22, 0x8B7F, 0x8CF4, + 0x8D76, 0xFA23, 0xFA24, 0xFA25, + 0x90DE, 0xFA26, 0x9115, 0xFA27, + 0xFA28, 0x9592, 0xF9DC, 0xFA29, + 0x973B, 0x974D, 0x9751, 0xFA2A, + 0xFA2B, 0xFA2C, 0x999E, 0x9AD9, + 0x9B72, 0xFA2D, 0x9ED1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE3AC, 0xE3AD, 0xE3AE, /* F5A0 */ + 0xE3AF, 0xE3B0, 0xE3B1, 0xE3B2, + 0xE3B3, 0xE3B4, 0xE3B5, 0xE3B6, + 0xE3B7, 0xE3B8, 0xE3B9, 0xE3BA, + 0xE3BB, 0xE3BC, 0xE3BD, 0xE3BE, + 0xE3BF, 0xE3C0, 0xE3C1, 0xE3C2, + 0xE3C3, 0xE3C4, 0xE3C5, 0xE3C6, + 0xE3C7, 0xE3C8, 0xE3C9, 0xE3CA, + 0xE3CB, 0xE3CC, 0xE3CD, 0xE3CE, /* F5C0 */ + 0xE3CF, 0xE3D0, 0xE3D1, 0xE3D2, + 0xE3D3, 0xE3D4, 0xE3D5, 0xE3D6, + 0xE3D7, 0xE3D8, 0xE3D9, 0xE3DA, + 0xE3DB, 0xE3DC, 0xE3DD, 0xE3DE, + 0xE3DF, 0xE3E0, 0xE3E1, 0xE3E2, + 0xE3E3, 0xE3E4, 0xE3E5, 0xE3E6, + 0xE3E7, 0xE3E8, 0xE3E9, 0xE3EA, + 0xE3EB, 0xE3EC, 0xE3ED, 0xE3EE, /* F5E0 */ + 0xE3EF, 0xE3F0, 0xE3F1, 0xE3F2, + 0xE3F3, 0xE3F4, 0xE3F5, 0xE3F6, + 0xE3F7, 0xE3F8, 0xE3F9, 0xE3FA, + 0xE3FB, 0xE3FC, 0xE3FD, 0xE3FE, + 0xE3FF, 0xE400, 0xE401, 0xE402, + 0xE403, 0xE404, 0xE405, 0xE406, + 0xE407, 0xE408, 0xE409, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE40A, 0xE40B, 0xE40C, /* F6A0 */ + 0xE40D, 0xE40E, 0xE40F, 0xE410, + 0xE411, 0xE412, 0xE413, 0xE414, + 0xE415, 0xE416, 0xE417, 0xE418, + 0xE419, 0xE41A, 0xE41B, 0xE41C, + 0xE41D, 0xE41E, 0xE41F, 0xE420, + 0xE421, 0xE422, 0xE423, 0xE424, + 0xE425, 0xE426, 0xE427, 0xE428, + 0xE429, 0xE42A, 0xE42B, 0xE42C, /* F6C0 */ + 0xE42D, 0xE42E, 0xE42F, 0xE430, + 0xE431, 0xE432, 0xE433, 0xE434, + 0xE435, 0xE436, 0xE437, 0xE438, + 0xE439, 0xE43A, 0xE43B, 0xE43C, + 0xE43D, 0xE43E, 0xE43F, 0xE440, + 0xE441, 0xE442, 0xE443, 0xE444, + 0xE445, 0xE446, 0xE447, 0xE448, + 0xE449, 0xE44A, 0xE44B, 0xE44C, /* F6E0 */ + 0xE44D, 0xE44E, 0xE44F, 0xE450, + 0xE451, 0xE452, 0xE453, 0xE454, + 0xE455, 0xE456, 0xE457, 0xE458, + 0xE459, 0xE45A, 0xE45B, 0xE45C, + 0xE45D, 0xE45E, 0xE45F, 0xE460, + 0xE461, 0xE462, 0xE463, 0xE464, + 0xE465, 0xE466, 0xE467, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE468, 0xE469, 0xE46A, /* F7A0 */ + 0xE46B, 0xE46C, 0xE46D, 0xE46E, + 0xE46F, 0xE470, 0xE471, 0xE472, + 0xE473, 0xE474, 0xE475, 0xE476, + 0xE477, 0xE478, 0xE479, 0xE47A, + 0xE47B, 0xE47C, 0xE47D, 0xE47E, + 0xE47F, 0xE480, 0xE481, 0xE482, + 0xE483, 0xE484, 0xE485, 0xE486, + 0xE487, 0xE488, 0xE489, 0xE48A, /* F7C0 */ + 0xE48B, 0xE48C, 0xE48D, 0xE48E, + 0xE48F, 0xE490, 0xE491, 0xE492, + 0xE493, 0xE494, 0xE495, 0xE496, + 0xE497, 0xE498, 0xE499, 0xE49A, + 0xE49B, 0xE49C, 0xE49D, 0xE49E, + 0xE49F, 0xE4A0, 0xE4A1, 0xE4A2, + 0xE4A3, 0xE4A4, 0xE4A5, 0xE4A6, + 0xE4A7, 0xE4A8, 0xE4A9, 0xE4AA, /* F7E0 */ + 0xE4AB, 0xE4AC, 0xE4AD, 0xE4AE, + 0xE4AF, 0xE4B0, 0xE4B1, 0xE4B2, + 0xE4B3, 0xE4B4, 0xE4B5, 0xE4B6, + 0xE4B7, 0xE4B8, 0xE4B9, 0xE4BA, + 0xE4BB, 0xE4BC, 0xE4BD, 0xE4BE, + 0xE4BF, 0xE4C0, 0xE4C1, 0xE4C2, + 0xE4C3, 0xE4C4, 0xE4C5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE4C6, 0xE4C7, 0xE4C8, /* F8A0 */ + 0xE4C9, 0xE4CA, 0xE4CB, 0xE4CC, + 0xE4CD, 0xE4CE, 0xE4CF, 0xE4D0, + 0xE4D1, 0xE4D2, 0xE4D3, 0xE4D4, + 0xE4D5, 0xE4D6, 0xE4D7, 0xE4D8, + 0xE4D9, 0xE4DA, 0xE4DB, 0xE4DC, + 0xE4DD, 0xE4DE, 0xE4DF, 0xE4E0, + 0xE4E1, 0xE4E2, 0xE4E3, 0xE4E4, + 0xE4E5, 0xE4E6, 0xE4E7, 0xE4E8, /* F8C0 */ + 0xE4E9, 0xE4EA, 0xE4EB, 0xE4EC, + 0xE4ED, 0xE4EE, 0xE4EF, 0xE4F0, + 0xE4F1, 0xE4F2, 0xE4F3, 0xE4F4, + 0xE4F5, 0xE4F6, 0xE4F7, 0xE4F8, + 0xE4F9, 0xE4FA, 0xE4FB, 0xE4FC, + 0xE4FD, 0xE4FE, 0xE4FF, 0xE500, + 0xE501, 0xE502, 0xE503, 0xE504, + 0xE505, 0xE506, 0xE507, 0xE508, /* F8E0 */ + 0xE509, 0xE50A, 0xE50B, 0xE50C, + 0xE50D, 0xE50E, 0xE50F, 0xE510, + 0xE511, 0xE512, 0xE513, 0xE514, + 0xE515, 0xE516, 0xE517, 0xE518, + 0xE519, 0xE51A, 0xE51B, 0xE51C, + 0xE51D, 0xE51E, 0xE51F, 0xE520, + 0xE521, 0xE522, 0xE523, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE524, 0xE525, 0xE526, /* F9A0 */ + 0xE527, 0xE528, 0xE529, 0xE52A, + 0xE52B, 0xE52C, 0xE52D, 0xE52E, + 0xE52F, 0xE530, 0xE531, 0xE532, + 0xE533, 0xE534, 0xE535, 0xE536, + 0xE537, 0xE538, 0xE539, 0xE53A, + 0xE53B, 0xE53C, 0xE53D, 0xE53E, + 0xE53F, 0xE540, 0xE541, 0xE542, + 0xE543, 0xE544, 0xE545, 0xE546, /* F9C0 */ + 0xE547, 0xE548, 0xE549, 0xE54A, + 0xE54B, 0xE54C, 0xE54D, 0xE54E, + 0xE54F, 0xE550, 0xE551, 0xE552, + 0xE553, 0xE554, 0xE555, 0xE556, + 0xE557, 0xE558, 0xE559, 0xE55A, + 0xE55B, 0xE55C, 0xE55D, 0xE55E, + 0xE55F, 0xE560, 0xE561, 0xE562, + 0xE563, 0xE564, 0xE565, 0xE566, /* F9E0 */ + 0xE567, 0xE568, 0xE569, 0xE56A, + 0xE56B, 0xE56C, 0xE56D, 0xE56E, + 0xE56F, 0xE570, 0xE571, 0xE572, + 0xE573, 0xE574, 0xE575, 0xE576, + 0xE577, 0xE578, 0xE579, 0xE57A, + 0xE57B, 0xE57C, 0xE57D, 0xE57E, + 0xE57F, 0xE580, 0xE581, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE582, 0xE583, 0xE584, /* FAA0 */ + 0xE585, 0xE586, 0xE587, 0xE588, + 0xE589, 0xE58A, 0xE58B, 0xE58C, + 0xE58D, 0xE58E, 0xE58F, 0xE590, + 0xE591, 0xE592, 0xE593, 0xE594, + 0xE595, 0xE596, 0xE597, 0xE598, + 0xE599, 0xE59A, 0xE59B, 0xE59C, + 0xE59D, 0xE59E, 0xE59F, 0xE5A0, + 0xE5A1, 0xE5A2, 0xE5A3, 0xE5A4, /* FAC0 */ + 0xE5A5, 0xE5A6, 0xE5A7, 0xE5A8, + 0xE5A9, 0xE5AA, 0xE5AB, 0xE5AC, + 0xE5AD, 0xE5AE, 0xE5AF, 0xE5B0, + 0xE5B1, 0xE5B2, 0xE5B3, 0xE5B4, + 0xE5B5, 0xE5B6, 0xE5B7, 0xE5B8, + 0xE5B9, 0xE5BA, 0xE5BB, 0xE5BC, + 0xE5BD, 0xE5BE, 0xE5BF, 0xE5C0, + 0xE5C1, 0xE5C2, 0xE5C3, 0xE5C4, /* FAE0 */ + 0xE5C5, 0xE5C6, 0xE5C7, 0xE5C8, + 0xE5C9, 0xE5CA, 0xE5CB, 0xE5CC, + 0xE5CD, 0xE5CE, 0xE5CF, 0xE5D0, + 0xE5D1, 0xE5D2, 0xE5D3, 0xE5D4, + 0xE5D5, 0xE5D6, 0xE5D7, 0xE5D8, + 0xE5D9, 0xE5DA, 0xE5DB, 0xE5DC, + 0xE5DD, 0xE5DE, 0xE5DF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE5E0, 0xE5E1, 0xE5E2, /* FBA0 */ + 0xE5E3, 0xE5E4, 0xE5E5, 0xE5E6, + 0xE5E7, 0xE5E8, 0xE5E9, 0xE5EA, + 0xE5EB, 0xE5EC, 0xE5ED, 0xE5EE, + 0xE5EF, 0xE5F0, 0xE5F1, 0xE5F2, + 0xE5F3, 0xE5F4, 0xE5F5, 0xE5F6, + 0xE5F7, 0xE5F8, 0xE5F9, 0xE5FA, + 0xE5FB, 0xE5FC, 0xE5FD, 0xE5FE, + 0xE5FF, 0xE600, 0xE601, 0xE602, /* FBC0 */ + 0xE603, 0xE604, 0xE605, 0xE606, + 0xE607, 0xE608, 0xE609, 0xE60A, + 0xE60B, 0xE60C, 0xE60D, 0xE60E, + 0xE60F, 0xE610, 0xE611, 0xE612, + 0xE613, 0xE614, 0xE615, 0xE616, + 0xE617, 0xE618, 0xE619, 0xE61A, + 0xE61B, 0xE61C, 0xE61D, 0xE61E, + 0xE61F, 0xE620, 0xE621, 0xE622, /* FBE0 */ + 0xE623, 0xE624, 0xE625, 0xE626, + 0xE627, 0xE628, 0xE629, 0xE62A, + 0xE62B, 0xE62C, 0xE62D, 0xE62E, + 0xE62F, 0xE630, 0xE631, 0xE632, + 0xE633, 0xE634, 0xE635, 0xE636, + 0xE637, 0xE638, 0xE639, 0xE63A, + 0xE63B, 0xE63C, 0xE63D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE63E, 0xE63F, 0xE640, /* FCA0 */ + 0xE641, 0xE642, 0xE643, 0xE644, + 0xE645, 0xE646, 0xE647, 0xE648, + 0xE649, 0xE64A, 0xE64B, 0xE64C, + 0xE64D, 0xE64E, 0xE64F, 0xE650, + 0xE651, 0xE652, 0xE653, 0xE654, + 0xE655, 0xE656, 0xE657, 0xE658, + 0xE659, 0xE65A, 0xE65B, 0xE65C, + 0xE65D, 0xE65E, 0xE65F, 0xE660, /* FCC0 */ + 0xE661, 0xE662, 0xE663, 0xE664, + 0xE665, 0xE666, 0xE667, 0xE668, + 0xE669, 0xE66A, 0xE66B, 0xE66C, + 0xE66D, 0xE66E, 0xE66F, 0xE670, + 0xE671, 0xE672, 0xE673, 0xE674, + 0xE675, 0xE676, 0xE677, 0xE678, + 0xE679, 0xE67A, 0xE67B, 0xE67C, + 0xE67D, 0xE67E, 0xE67F, 0xE680, /* FCE0 */ + 0xE681, 0xE682, 0xE683, 0xE684, + 0xE685, 0xE686, 0xE687, 0xE688, + 0xE689, 0xE68A, 0xE68B, 0xE68C, + 0xE68D, 0xE68E, 0xE68F, 0xE690, + 0xE691, 0xE692, 0xE693, 0xE694, + 0xE695, 0xE696, 0xE697, 0xE698, + 0xE699, 0xE69A, 0xE69B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE69C, 0xE69D, 0xE69E, /* FDA0 */ + 0xE69F, 0xE6A0, 0xE6A1, 0xE6A2, + 0xE6A3, 0xE6A4, 0xE6A5, 0xE6A6, + 0xE6A7, 0xE6A8, 0xE6A9, 0xE6AA, + 0xE6AB, 0xE6AC, 0xE6AD, 0xE6AE, + 0xE6AF, 0xE6B0, 0xE6B1, 0xE6B2, + 0xE6B3, 0xE6B4, 0xE6B5, 0xE6B6, + 0xE6B7, 0xE6B8, 0xE6B9, 0xE6BA, + 0xE6BB, 0xE6BC, 0xE6BD, 0xE6BE, /* FDC0 */ + 0xE6BF, 0xE6C0, 0xE6C1, 0xE6C2, + 0xE6C3, 0xE6C4, 0xE6C5, 0xE6C6, + 0xE6C7, 0xE6C8, 0xE6C9, 0xE6CA, + 0xE6CB, 0xE6CC, 0xE6CD, 0xE6CE, + 0xE6CF, 0xE6D0, 0xE6D1, 0xE6D2, + 0xE6D3, 0xE6D4, 0xE6D5, 0xE6D6, + 0xE6D7, 0xE6D8, 0xE6D9, 0xE6DA, + 0xE6DB, 0xE6DC, 0xE6DD, 0xE6DE, /* FDE0 */ + 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2, + 0xE6E3, 0xE6E4, 0xE6E5, 0xE6E6, + 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA, + 0xE6EB, 0xE6EC, 0xE6ED, 0xE6EE, + 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2, + 0xE6F3, 0xE6F4, 0xE6F5, 0xE6F6, + 0xE6F7, 0xE6F8, 0xE6F9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE6FA, 0xE6FB, 0xE6FC, /* FEA0 */ + 0xE6FD, 0xE6FE, 0xE6FF, 0xE700, + 0xE701, 0xE702, 0xE703, 0xE704, + 0xE705, 0xE706, 0xE707, 0xE708, + 0xE709, 0xE70A, 0xE70B, 0xE70C, + 0xE70D, 0xE70E, 0xE70F, 0xE710, + 0xE711, 0xE712, 0xE713, 0xE714, + 0xE715, 0xE716, 0xE717, 0xE718, + 0xE719, 0xE71A, 0xE71B, 0xE71C, /* FEC0 */ + 0xE71D, 0xE71E, 0xE71F, 0xE720, + 0xE721, 0xE722, 0xE723, 0xE724, + 0xE725, 0xE726, 0xE727, 0xE728, + 0xE729, 0xE72A, 0xE72B, 0xE72C, + 0xE72D, 0xE72E, 0xE72F, 0xE730, + 0xE731, 0xE732, 0xE733, 0xE734, + 0xE735, 0xE736, 0xE737, 0xE738, + 0xE739, 0xE73A, 0xE73B, 0xE73C, /* FEE0 */ + 0xE73D, 0xE73E, 0xE73F, 0xE740, + 0xE741, 0xE742, 0xE743, 0xE744, + 0xE745, 0xE746, 0xE747, 0xE748, + 0xE749, 0xE74A, 0xE74B, 0xE74C, + 0xE74D, 0xE74E, 0xE74F, 0xE750, + 0xE751, 0xE752, 0xE753, 0xE754, + 0xE755, 0xE756, 0xE757, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 unicode_to_jisx0212_eucjpms[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA2C2), 0x0000, 0x0000, /* 00A0 */ + MB2(0xA2F0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA2ED), MB2(0xA2EC), 0x0000, + 0x0000, 0x0000, MB2(0xA2EE), MB2(0xA2B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2B1), 0x0000, MB2(0xA2EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2C4), + MB2(0xAAA2), MB2(0xAAA1), MB2(0xAAA4), MB2(0xAAAA), /* 00C0 */ + MB2(0xAAA3), MB2(0xAAA9), MB2(0xA9A1), MB2(0xAAAE), + MB2(0xAAB2), MB2(0xAAB1), MB2(0xAAB4), MB2(0xAAB3), + MB2(0xAAC0), MB2(0xAABF), MB2(0xAAC2), MB2(0xAAC1), + 0x0000, MB2(0xAAD0), MB2(0xAAD2), MB2(0xAAD1), + MB2(0xAAD4), MB2(0xAAD8), MB2(0xAAD3), 0x0000, + MB2(0xA9AC), MB2(0xAAE3), MB2(0xAAE2), MB2(0xAAE5), + MB2(0xAAE4), MB2(0xAAF2), MB2(0xA9B0), MB2(0xA9CE), + MB2(0xABA2), MB2(0xABA1), MB2(0xABA4), MB2(0xABAA), /* 00E0 */ + MB2(0xABA3), MB2(0xABA9), MB2(0xA9C1), MB2(0xABAE), + MB2(0xABB2), MB2(0xABB1), MB2(0xABB4), MB2(0xABB3), + MB2(0xABC0), MB2(0xABBF), MB2(0xABC2), MB2(0xABC1), + MB2(0xA9C3), MB2(0xABD0), MB2(0xABD2), MB2(0xABD1), + MB2(0xABD4), MB2(0xABD8), MB2(0xABD3), 0x0000, + MB2(0xA9CC), MB2(0xABE3), MB2(0xABE2), MB2(0xABE5), + MB2(0xABE4), MB2(0xABF2), MB2(0xA9D0), MB2(0xABF3), + MB2(0xAAA7), MB2(0xABA7), MB2(0xAAA5), MB2(0xABA5), /* 0100 */ + MB2(0xAAA8), MB2(0xABA8), MB2(0xAAAB), MB2(0xABAB), + MB2(0xAAAC), MB2(0xABAC), MB2(0xAAAF), MB2(0xABAF), + MB2(0xAAAD), MB2(0xABAD), MB2(0xAAB0), MB2(0xABB0), + MB2(0xA9A2), MB2(0xA9C2), MB2(0xAAB7), MB2(0xABB7), + 0x0000, 0x0000, MB2(0xAAB6), MB2(0xABB6), + MB2(0xAAB8), MB2(0xABB8), MB2(0xAAB5), MB2(0xABB5), + MB2(0xAABA), MB2(0xABBA), MB2(0xAABB), MB2(0xABBB), + MB2(0xAABD), MB2(0xABBD), MB2(0xAABC), 0x0000, /* 0120 */ + MB2(0xAABE), MB2(0xABBE), MB2(0xA9A4), MB2(0xA9C4), + MB2(0xAAC7), MB2(0xABC7), MB2(0xAAC5), MB2(0xABC5), + 0x0000, 0x0000, MB2(0xAAC6), MB2(0xABC6), + MB2(0xAAC4), MB2(0xA9C5), MB2(0xA9A6), MB2(0xA9C6), + MB2(0xAAC8), MB2(0xABC8), MB2(0xAAC9), MB2(0xABC9), + MB2(0xA9C7), MB2(0xAACA), MB2(0xABCA), MB2(0xAACC), + MB2(0xABCC), MB2(0xAACB), MB2(0xABCB), MB2(0xA9A9), + MB2(0xA9C9), MB2(0xA9A8), MB2(0xA9C8), MB2(0xAACD), /* 0140 */ + MB2(0xABCD), MB2(0xAACF), MB2(0xABCF), MB2(0xAACE), + MB2(0xABCE), MB2(0xA9CA), MB2(0xA9AB), MB2(0xA9CB), + MB2(0xAAD7), MB2(0xABD7), 0x0000, 0x0000, + MB2(0xAAD6), MB2(0xABD6), MB2(0xA9AD), MB2(0xA9CD), + MB2(0xAAD9), MB2(0xABD9), MB2(0xAADB), MB2(0xABDB), + MB2(0xAADA), MB2(0xABDA), MB2(0xAADC), MB2(0xABDC), + MB2(0xAADD), MB2(0xABDD), MB2(0xAADF), MB2(0xABDF), + MB2(0xAADE), MB2(0xABDE), MB2(0xAAE1), MB2(0xABE1), /* 0160 */ + MB2(0xAAE0), MB2(0xABE0), MB2(0xA9AF), MB2(0xA9CF), + MB2(0xAAEC), MB2(0xABEC), MB2(0xAAE9), MB2(0xABE9), + MB2(0xAAE6), MB2(0xABE6), MB2(0xAAEB), MB2(0xABEB), + MB2(0xAAE8), MB2(0xABE8), MB2(0xAAEA), MB2(0xABEA), + MB2(0xAAF1), MB2(0xABF1), MB2(0xAAF4), MB2(0xABF4), + MB2(0xAAF3), MB2(0xAAF5), MB2(0xABF5), MB2(0xAAF7), + MB2(0xABF7), MB2(0xAAF6), MB2(0xABF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xAAA6), MB2(0xABA6), MB2(0xAAC3), + MB2(0xABC3), MB2(0xAAD5), MB2(0xABD5), MB2(0xAAE7), + MB2(0xABE7), MB2(0xAAF0), MB2(0xABF0), MB2(0xAAED), + MB2(0xABED), MB2(0xAAEF), MB2(0xABEF), MB2(0xAAEE), + MB2(0xABEE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xABB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xA2B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2AF), MB2(0xA2B2), MB2(0xA2B6), MB2(0xA2B5), + 0x0000, MB2(0xA2B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + MB2(0xA2B8), MB2(0xA2B9), MB2(0xA6E1), 0x0000, + MB2(0xA6E2), MB2(0xA6E3), MB2(0xA6E4), 0x0000, + MB2(0xA6E7), 0x0000, MB2(0xA6E9), MB2(0xA6EC), + MB2(0xA6F6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA6E5), MB2(0xA6EA), + MB2(0xA6F1), MB2(0xA6F2), MB2(0xA6F3), MB2(0xA6F4), + MB2(0xA6FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA6F8), 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA6F5), MB2(0xA6FA), + MB2(0xA6F7), MB2(0xA6F9), MB2(0xA6FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA7C2), MB2(0xA7C3), /* 0400 */ + MB2(0xA7C4), MB2(0xA7C5), MB2(0xA7C6), MB2(0xA7C7), + MB2(0xA7C8), MB2(0xA7C9), MB2(0xA7CA), MB2(0xA7CB), + MB2(0xA7CC), 0x0000, MB2(0xA7CD), MB2(0xA7CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA7F2), MB2(0xA7F3), + MB2(0xA7F4), MB2(0xA7F5), MB2(0xA7F6), MB2(0xA7F7), + MB2(0xA7F8), MB2(0xA7F9), MB2(0xA7FA), MB2(0xA7FB), + MB2(0xA7FC), 0x0000, MB2(0xA7FD), MB2(0xA7FE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2EF), 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3F3), MB2(0xF3F4), MB2(0xF3F5), MB2(0xF3F6), + MB2(0xF3F7), MB2(0xF3F8), MB2(0xF3F9), MB2(0xF3FA), + MB2(0xF3FB), MB2(0xF3FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0A1), 0x0000, /* 4E00 */ + MB2(0xB0A2), MB2(0xB0A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0A5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0A6), + 0x0000, 0x0000, 0x0000, MB2(0xB0A7), /* 4E20 */ + MB2(0xB0A8), 0x0000, 0x0000, 0x0000, + MB2(0xB0A9), 0x0000, 0x0000, MB2(0xB0AA), + 0x0000, 0x0000, MB2(0xB0AB), MB2(0xB0AC), + MB2(0xB0AD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0AF), MB2(0xB0B0), 0x0000, 0x0000, /* 4E40 */ + MB2(0xB0B1), 0x0000, 0x0000, MB2(0xB0B2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0B4), 0x0000, + MB2(0xB0B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0B6), /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0B7), MB2(0xB0B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0B9), MB2(0xB0BA), 0x0000, 0x0000, + 0x0000, MB2(0xB0BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0BC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0BE), MB2(0xB0BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0C2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0C3), /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0C5), MB2(0xB0C6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0C7), MB2(0xB0C8), MB2(0xB0C9), 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0CB), + 0x0000, MB2(0xB0CC), 0x0000, MB2(0xB0CD), + 0x0000, MB2(0xB0CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF4AF), MB2(0xB0CF), MB2(0xB0D0), MB2(0xB0D1), + MB2(0xB0D2), 0x0000, MB2(0xB0D3), MB2(0xB0D4), /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0D5), 0x0000, 0x0000, MB2(0xB0D6), + MB2(0xB0D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0D8), 0x0000, + 0x0000, MB2(0xB0D9), MB2(0xB0DA), MB2(0xB0DB), + 0x0000, MB2(0xB0DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0DD), 0x0000, + 0x0000, MB2(0xB0DE), 0x0000, MB2(0xB0E0), + 0x0000, MB2(0xB0E1), 0x0000, MB2(0xB0E2), + 0x0000, MB2(0xB0E3), 0x0000, MB2(0xB0E4), + 0x0000, 0x0000, MB2(0xB0E5), 0x0000, + MB2(0xB0E6), 0x0000, MB2(0xB0E7), 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0E8), MB2(0xB0E9), 0x0000, MB2(0xB0EA), + MB2(0xB0EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0EC), 0x0000, + MB2(0xB0ED), 0x0000, MB2(0xB0EE), 0x0000, + MB2(0xB0EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F0), + MB2(0xB0DF), 0x0000, 0x0000, MB2(0xB0F1), /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0F2), 0x0000, + MB2(0xB0F3), 0x0000, MB2(0xB0F4), 0x0000, + 0x0000, MB2(0xB0F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F6), + MB2(0xB0F7), MB2(0xB0F8), MB2(0xB0F9), 0x0000, + 0x0000, MB2(0xB0FA), MB2(0xB0FB), 0x0000, + 0x0000, MB2(0xB0FC), MB2(0xB0FD), 0x0000, /* 4F80 */ + MB2(0xB0FE), MB2(0xB1A1), 0x0000, 0x0000, + 0x0000, MB2(0xB1A2), MB2(0xB1A3), 0x0000, + MB2(0xB1A4), 0x0000, MB2(0xB1A5), 0x0000, + MB2(0xB1A6), 0x0000, MB2(0xB1A7), MB2(0xB1A8), + MB2(0xB1A9), 0x0000, 0x0000, MB2(0xB1AA), + 0x0000, MB2(0xB1AB), MB2(0xB1AC), 0x0000, + 0x0000, 0x0000, MB2(0xB1AD), MB2(0xB1AE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1AF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1B0), + 0x0000, MB2(0xB1B1), 0x0000, MB2(0xB1B2), + MB2(0xB1B3), MB2(0xB1B4), MB2(0xB1B5), 0x0000, + MB2(0xB1B6), MB2(0xB1B7), 0x0000, 0x0000, /* 4FC0 */ + 0x0000, MB2(0xB1B8), MB2(0xB1B9), 0x0000, + MB2(0xB1BA), MB2(0xB1BB), 0x0000, MB2(0xB1BC), + MB2(0xB1BD), MB2(0xB1BE), 0x0000, MB2(0xB1BF), + 0x0000, 0x0000, MB2(0xB1C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1C1), 0x0000, 0x0000, 0x0000, + MB2(0xB1C2), 0x0000, MB2(0xB1C3), 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1C4), 0x0000, MB2(0xB1C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1C6), MB2(0xB1C7), 0x0000, MB2(0xB1C8), + MB2(0xB1C9), MB2(0xB1CA), 0x0000, 0x0000, /* 5000 */ + MB2(0xB1CB), 0x0000, 0x0000, MB2(0xB1CC), + 0x0000, 0x0000, MB2(0xB1CD), 0x0000, + MB2(0xB1CE), 0x0000, MB2(0xB1CF), 0x0000, + MB2(0xB1D0), 0x0000, 0x0000, MB2(0xB1D1), + 0x0000, 0x0000, 0x0000, MB2(0xB1D2), + MB2(0xB1D3), 0x0000, 0x0000, MB2(0xB1D4), + MB2(0xB1D5), MB2(0xB1D6), MB2(0xB1D7), 0x0000, + 0x0000, 0x0000, MB2(0xB1D8), 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, MB2(0xB1D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1DA), 0x0000, + MB2(0xB1DB), 0x0000, MB2(0xB1DC), MB2(0xB1DD), + 0x0000, MB2(0xB1DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1F6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1DF), MB2(0xB1E0), MB2(0xB1E1), 0x0000, /* 5040 */ + 0x0000, MB2(0xB1E2), MB2(0xB1E3), 0x0000, + 0x0000, 0x0000, MB2(0xB1E4), 0x0000, + MB2(0xB1E5), 0x0000, MB2(0xB1E6), 0x0000, + 0x0000, MB2(0xB1E7), MB2(0xB1E8), MB2(0xB1E9), + 0x0000, 0x0000, 0x0000, MB2(0xB1EA), + 0x0000, MB2(0xB1EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1EC), + MB2(0xB1ED), 0x0000, MB2(0xB1EE), MB2(0xB1EF), /* 5060 */ + 0x0000, 0x0000, MB2(0xB1F0), MB2(0xB1F1), + 0x0000, 0x0000, MB2(0xB1F2), 0x0000, + 0x0000, MB2(0xB1F3), 0x0000, 0x0000, + MB2(0xB1F4), MB2(0xB1F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1F7), 0x0000, MB2(0xB1F8), /* 5080 */ + MB2(0xB1F9), 0x0000, MB2(0xB1FA), 0x0000, + 0x0000, 0x0000, MB2(0xB1FB), 0x0000, + 0x0000, 0x0000, MB2(0xB1FC), MB2(0xB1FD), + MB2(0xB1FE), 0x0000, MB2(0xB2A1), MB2(0xB2A2), + MB2(0xB2A3), 0x0000, MB2(0xB2A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2A5), + MB2(0xB2A6), 0x0000, MB2(0xB2A7), MB2(0xB2A8), + MB2(0xB2A9), MB2(0xB2AA), MB2(0xB2AB), 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2AC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2AD), + MB2(0xB2AE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2AF), MB2(0xB2B0), 0x0000, + 0x0000, MB2(0xB2B1), 0x0000, 0x0000, + MB2(0xB2B2), 0x0000, 0x0000, MB2(0xB2B3), /* 50C0 */ + MB2(0xB2B4), 0x0000, 0x0000, MB2(0xB2B5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2B6), 0x0000, MB2(0xB2B7), 0x0000, + MB2(0xB2B8), 0x0000, 0x0000, MB2(0xB2B9), + MB2(0xB2BA), 0x0000, 0x0000, 0x0000, + MB2(0xB2BB), 0x0000, 0x0000, 0x0000, + MB2(0xB2BC), MB2(0xB2BD), 0x0000, MB2(0xB2BE), + 0x0000, 0x0000, MB2(0xB2BF), 0x0000, /* 50E0 */ + MB2(0xB2C0), 0x0000, MB2(0xB2C1), 0x0000, + MB2(0xB2C2), MB2(0xB2C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2C4), + 0x0000, MB2(0xB2C5), MB2(0xB2D1), 0x0000, + MB2(0xF4B0), 0x0000, MB2(0xB2C6), 0x0000, + 0x0000, 0x0000, MB2(0xB2C7), 0x0000, + 0x0000, 0x0000, MB2(0xB2C8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2C9), /* 5100 */ + 0x0000, 0x0000, MB2(0xB2CA), MB2(0xB2CB), + MB2(0xB2CC), 0x0000, 0x0000, MB2(0xB2CD), + MB2(0xB2CE), MB2(0xB2CF), MB2(0xB2D0), 0x0000, + MB2(0xB2D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2D3), + 0x0000, MB2(0xB2D4), 0x0000, MB2(0xB2D5), + MB2(0xB2D6), MB2(0xB2D7), MB2(0xB2D8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2D9), /* 5120 */ + 0x0000, 0x0000, 0x0000, MB2(0xB2DA), + MB2(0xB2DB), 0x0000, 0x0000, 0x0000, + MB2(0xB2DC), MB2(0xB2DD), 0x0000, MB2(0xB2DE), + 0x0000, MB2(0xB2DF), 0x0000, MB2(0xB2E0), + MB2(0xB2E1), MB2(0xB2E2), 0x0000, 0x0000, + MB2(0xB2E3), MB2(0xB2E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2E5), 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2E6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2E7), + 0x0000, 0x0000, 0x0000, MB2(0xB2E8), + 0x0000, MB2(0xB2E9), 0x0000, MB2(0xB2EA), + MB2(0xB2EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2EC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + MB2(0xB2ED), 0x0000, MB2(0xB2EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2EF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F0), /* 5180 */ + MB2(0xB2F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F2), + 0x0000, 0x0000, MB2(0xB2F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2F5), 0x0000, 0x0000, + 0x0000, MB2(0xB2F6), 0x0000, MB2(0xB2F7), /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2F9), 0x0000, MB2(0xB2FA), 0x0000, + MB2(0xB2FB), 0x0000, MB2(0xB2FC), MB2(0xB2FD), + 0x0000, 0x0000, MB2(0xB2FE), 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3A1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3A2), + 0x0000, MB2(0xB3A3), MB2(0xB3A4), MB2(0xB3A5), + 0x0000, MB2(0xB3A6), 0x0000, 0x0000, + MB2(0xB3A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3A8), 0x0000, + 0x0000, 0x0000, MB2(0xB3A9), 0x0000, /* 51E0 */ + 0x0000, MB2(0xB3AA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF4B1), 0x0000, MB2(0xB3AB), 0x0000, + 0x0000, 0x0000, MB2(0xB3AC), MB2(0xB3AD), + MB2(0xB3AE), 0x0000, 0x0000, MB2(0xB3AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3B0), MB2(0xB3B1), 0x0000, /* 5200 */ + 0x0000, MB2(0xB3B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3B3), MB2(0xB3B4), + 0x0000, MB2(0xB3B5), MB2(0xB3B6), 0x0000, + MB2(0xB3B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3B8), 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3BA), MB2(0xB3BB), 0x0000, + 0x0000, MB2(0xB3BC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3BD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, MB2(0xB3BE), 0x0000, 0x0000, + 0x0000, MB2(0xB3BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3C0), 0x0000, MB2(0xB3C1), + MB2(0xB3C2), 0x0000, MB2(0xB3C3), 0x0000, + MB2(0xB3C4), 0x0000, 0x0000, MB2(0xB3C5), + MB2(0xB3C6), MB2(0xB3C7), 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, MB2(0xB3C8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3CA), + MB2(0xB3CB), MB2(0xB3CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3CD), 0x0000, MB2(0xB3CE), 0x0000, /* 5280 */ + 0x0000, MB2(0xB3CF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3D0), 0x0000, + MB2(0xB3D1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3D2), + 0x0000, MB2(0xB3D3), MB2(0xB3D4), MB2(0xB3D5), + MB2(0xB3D6), 0x0000, MB2(0xB3D7), 0x0000, + MB2(0xB3D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + MB2(0xB3D9), MB2(0xB3DA), MB2(0xB3DB), MB2(0xB3DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3DD), + MB2(0xB3DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3DF), MB2(0xB3E0), + MB2(0xB3E1), 0x0000, MB2(0xB3E2), MB2(0xB3E3), + 0x0000, MB2(0xB3E4), 0x0000, 0x0000, + MB2(0xB3E5), 0x0000, 0x0000, 0x0000, /* 52C0 */ + MB2(0xB3E6), 0x0000, MB2(0xB3E7), 0x0000, + MB2(0xB3E8), 0x0000, 0x0000, 0x0000, + MB2(0xB3E9), 0x0000, 0x0000, MB2(0xB3EA), + 0x0000, MB2(0xB3EB), 0x0000, 0x0000, + MB2(0xB3EC), 0x0000, MB2(0xB3ED), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3EE), + MB2(0xB3EF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3F0), 0x0000, 0x0000, /* 52E0 */ + 0x0000, MB2(0xB3F1), 0x0000, 0x0000, + MB2(0xB3F2), MB2(0xB3F3), MB2(0xB3F4), 0x0000, + MB2(0xB3F5), 0x0000, 0x0000, 0x0000, + MB2(0xB3F6), MB2(0xB3F7), 0x0000, 0x0000, + MB2(0xB3F8), 0x0000, MB2(0xB3F9), MB2(0xB3FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3FB), 0x0000, 0x0000, MB2(0xB3FC), /* 5300 */ + 0x0000, 0x0000, 0x0000, MB2(0xF4B2), + 0x0000, 0x0000, MB2(0xB3FD), MB2(0xB3FE), + MB2(0xB4A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4A2), 0x0000, MB2(0xB4A3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4A4), 0x0000, 0x0000, MB2(0xB4A5), + MB2(0xB4A6), 0x0000, MB2(0xB4A7), MB2(0xB4A8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + MB2(0xF4B3), MB2(0xB4A9), 0x0000, MB2(0xB4AA), + MB2(0xB4AB), MB2(0xB4AC), 0x0000, MB2(0xB4AD), + MB2(0xB4AE), MB2(0xB4AF), 0x0000, 0x0000, + MB2(0xB4B0), 0x0000, MB2(0xB4B1), 0x0000, + 0x0000, MB2(0xB4B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4B3), MB2(0xB4B4), MB2(0xB4B5), 0x0000, + 0x0000, 0x0000, MB2(0xB4B6), 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4B8), + MB2(0xB4B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4B9), 0x0000, MB2(0xB4BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4BB), 0x0000, MB2(0xB4BC), /* 5360 */ + 0x0000, MB2(0xB4BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4BE), MB2(0xB4BF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4C1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4C2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C3), /* 5380 */ + 0x0000, 0x0000, 0x0000, MB2(0xB4C4), + MB2(0xB4C5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4C6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C7), + MB2(0xB4C8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4C9), 0x0000, 0x0000, + 0x0000, MB2(0xB4CA), 0x0000, 0x0000, + 0x0000, MB2(0xB4CB), 0x0000, 0x0000, /* 53A0 */ + MB2(0xB4CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4CD), MB2(0xB4CE), + 0x0000, 0x0000, 0x0000, MB2(0xB4CF), + 0x0000, 0x0000, MB2(0xB4D0), 0x0000, + MB2(0xB4D1), MB2(0xB4D2), 0x0000, MB2(0xB4D3), + MB2(0xB4D4), 0x0000, MB2(0xB4D5), 0x0000, + 0x0000, MB2(0xB4D6), 0x0000, 0x0000, + MB2(0xB4D7), 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, MB2(0xB4D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4D9), + 0x0000, 0x0000, MB2(0xB4DA), MB2(0xB4DB), + 0x0000, MB2(0xB4DC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4DD), 0x0000, + 0x0000, MB2(0xB4DE), MB2(0xB4DF), 0x0000, + MB2(0xB4E0), 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, MB2(0xB4E1), MB2(0xB4E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4E3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4E4), 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4E6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4E7), 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, MB2(0xB4E8), + MB2(0xB4E9), 0x0000, MB2(0xB4EA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4EB), + 0x0000, MB2(0xB4EC), 0x0000, 0x0000, + MB2(0xB4ED), MB2(0xB4EE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4EF), /* 5440 */ + MB2(0xB4F0), 0x0000, 0x0000, MB2(0xB4F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4F2), 0x0000, MB2(0xB4F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4F4), 0x0000, + 0x0000, 0x0000, MB2(0xB4F5), 0x0000, /* 5460 */ + MB2(0xB4F6), 0x0000, MB2(0xB4F7), MB2(0xB4F8), + 0x0000, MB2(0xB4F9), 0x0000, MB2(0xB4FA), + 0x0000, MB2(0xB4FB), MB2(0xB4FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4FE), + 0x0000, MB2(0xB5A1), 0x0000, MB2(0xB5A2), /* 5480 */ + 0x0000, MB2(0xB5A3), 0x0000, 0x0000, + MB2(0xB5A4), MB2(0xB5A5), MB2(0xF4B5), 0x0000, + 0x0000, MB2(0xB5A6), 0x0000, 0x0000, + 0x0000, MB2(0xB5A7), 0x0000, 0x0000, + 0x0000, MB2(0xB5A8), MB2(0xB5A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5AA), 0x0000, 0x0000, MB2(0xB5AB), + 0x0000, MB2(0xB5AC), 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, MB2(0xB5AD), MB2(0xB5AE), + 0x0000, MB2(0xB5AF), MB2(0xB5B0), 0x0000, + 0x0000, MB2(0xB5B1), MB2(0xB5B2), 0x0000, + 0x0000, MB2(0xB5B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5B4), + 0x0000, MB2(0xB5B5), MB2(0xB5B6), MB2(0xB5B7), + 0x0000, 0x0000, 0x0000, MB2(0xB5B8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, MB2(0xB5B9), 0x0000, + 0x0000, 0x0000, MB2(0xB5BA), 0x0000, + 0x0000, MB2(0xB5BB), MB2(0xB5BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5BD), 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5BE), 0x0000, + MB2(0xB5BF), 0x0000, 0x0000, MB2(0xB5C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5C2), 0x0000, MB2(0xB5C3), MB2(0xB5C4), + MB2(0xB5C5), MB2(0xB5C6), 0x0000, 0x0000, /* 5500 */ + 0x0000, MB2(0xB5C7), 0x0000, 0x0000, + MB2(0xB5C8), MB2(0xB5C9), 0x0000, 0x0000, + MB2(0xB5CA), MB2(0xB5CB), MB2(0xB5CC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5CE), MB2(0xB5CF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5D0), 0x0000, + 0x0000, MB2(0xB5D1), MB2(0xB5D2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5D3), + MB2(0xB5D4), MB2(0xB5D5), 0x0000, 0x0000, + 0x0000, MB2(0xB5D6), 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, MB2(0xB5D7), + 0x0000, MB2(0xB5D8), MB2(0xB5D9), 0x0000, + 0x0000, MB2(0xB5DA), 0x0000, 0x0000, + MB2(0xB5DB), MB2(0xB5DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5DD), 0x0000, MB2(0xB5DE), MB2(0xB5DF), + 0x0000, 0x0000, MB2(0xB5E0), 0x0000, + MB2(0xB5E1), MB2(0xB5E2), 0x0000, 0x0000, /* 5560 */ + MB2(0xB5E3), 0x0000, MB2(0xB5E4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5E5), + 0x0000, MB2(0xB5E6), MB2(0xB5E7), 0x0000, /* 5580 */ + 0x0000, 0x0000, MB2(0xB5E8), 0x0000, + MB2(0xB5E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5EA), MB2(0xB5EB), + 0x0000, MB2(0xB5EC), MB2(0xB5ED), MB2(0xB5EE), + MB2(0xB5EF), 0x0000, 0x0000, MB2(0xB5F0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5F1), /* 55A0 */ + MB2(0xB5F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5F3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5F4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5F5), + 0x0000, MB2(0xB5F6), 0x0000, MB2(0xB5F7), /* 55C0 */ + 0x0000, 0x0000, MB2(0xB5F8), 0x0000, + 0x0000, MB2(0xB5F9), 0x0000, MB2(0xB5FA), + MB2(0xB5FB), 0x0000, MB2(0xB5FC), 0x0000, + 0x0000, MB2(0xB5FD), MB2(0xB5FE), MB2(0xB6A1), + 0x0000, 0x0000, 0x0000, MB2(0xB6A2), + MB2(0xB6A3), 0x0000, 0x0000, MB2(0xB6A4), + 0x0000, 0x0000, MB2(0xB6A5), 0x0000, + 0x0000, 0x0000, MB2(0xB6A6), 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6A9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, MB2(0xB6AA), 0x0000, 0x0000, + MB2(0xB6AB), 0x0000, MB2(0xB6AC), 0x0000, + 0x0000, MB2(0xB6AD), MB2(0xB6AE), MB2(0xB6AF), + MB2(0xB6B0), MB2(0xB6B1), MB2(0xB6B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB6B4), 0x0000, 0x0000, 0x0000, + MB2(0xB6B5), 0x0000, 0x0000, MB2(0xB6B6), + 0x0000, MB2(0xB6B7), 0x0000, MB2(0xB6B8), + 0x0000, MB2(0xB6B9), 0x0000, MB2(0xB6BA), + MB2(0xB6BB), MB2(0xB6BC), 0x0000, MB2(0xB6BD), + MB2(0xB6BE), MB2(0xB6BF), 0x0000, MB2(0xB6C0), /* 5640 */ + MB2(0xB6C1), 0x0000, MB2(0xB6C2), 0x0000, + 0x0000, MB2(0xB6C3), 0x0000, MB2(0xB6C4), + 0x0000, MB2(0xB6C5), 0x0000, MB2(0xB6C6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB6C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6C8), 0x0000, + MB2(0xB6C9), MB2(0xB6CA), MB2(0xB6CB), MB2(0xB6CC), /* 5660 */ + 0x0000, 0x0000, MB2(0xB6CD), 0x0000, + 0x0000, MB2(0xB6CE), 0x0000, 0x0000, + 0x0000, MB2(0xB6CF), 0x0000, MB2(0xB6D0), + 0x0000, MB2(0xB6D1), MB2(0xB6D2), 0x0000, + 0x0000, MB2(0xB6D3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + MB2(0xB6D4), MB2(0xB6D5), 0x0000, 0x0000, + MB2(0xB6D6), 0x0000, 0x0000, MB2(0xB6D7), + MB2(0xB6D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6D9), 0x0000, 0x0000, + 0x0000, MB2(0xB6DA), MB2(0xB6DB), 0x0000, + 0x0000, MB2(0xB6DC), MB2(0xB6DD), MB2(0xB6DE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, MB2(0xB6DF), MB2(0xB6E0), + MB2(0xB6E1), MB2(0xB6E2), 0x0000, MB2(0xB6E3), + MB2(0xB6E4), MB2(0xB6E5), 0x0000, 0x0000, + 0x0000, MB2(0xB6E6), 0x0000, MB2(0xB6E7), + 0x0000, 0x0000, 0x0000, MB2(0xB6E8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6E9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, MB2(0xB6EA), 0x0000, 0x0000, + 0x0000, MB2(0xB6EB), MB2(0xB6EC), MB2(0xB6ED), + MB2(0xB6F0), MB2(0xB6F1), 0x0000, MB2(0xB6EE), + MB2(0xB6EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6F2), 0x0000, 0x0000, + MB2(0xB6F3), MB2(0xB6F4), 0x0000, MB2(0xB6F5), + 0x0000, MB2(0xB6F6), 0x0000, 0x0000, /* 56E0 */ + MB2(0xB6F7), MB2(0xB6F8), MB2(0xB6F9), MB2(0xB6FA), + MB2(0xB6FB), 0x0000, 0x0000, MB2(0xB6FD), + 0x0000, MB2(0xB6FE), 0x0000, 0x0000, + 0x0000, MB2(0xB6FC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7A1), MB2(0xB7A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7A3), MB2(0xB7A4), 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7A5), + 0x0000, 0x0000, MB2(0xB7A6), 0x0000, + MB2(0xB7A7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7A8), 0x0000, 0x0000, + 0x0000, MB2(0xB7A9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7AA), MB2(0xB7AB), + 0x0000, MB2(0xB7AC), 0x0000, 0x0000, + MB2(0xB7AD), 0x0000, MB2(0xB7AE), MB2(0xB7AF), /* 5720 */ + MB2(0xB7B0), MB2(0xB7B1), 0x0000, 0x0000, + 0x0000, MB2(0xB7B2), MB2(0xB7B3), 0x0000, + MB2(0xB7B4), 0x0000, MB2(0xB7B5), MB2(0xB7B6), + 0x0000, 0x0000, 0x0000, MB2(0xB7B7), + MB2(0xB7B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7B9), MB2(0xB7BA), MB2(0xB7BB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, MB2(0xB7BC), MB2(0xB7BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7BE), MB2(0xB7BF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF4B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7C1), 0x0000, /* 5760 */ + 0x0000, MB2(0xB7C2), 0x0000, MB2(0xB7C3), + MB2(0xB7C4), 0x0000, 0x0000, MB2(0xB7C5), + 0x0000, MB2(0xB7C6), MB2(0xB7C7), MB2(0xB7C8), + MB2(0xB7C9), MB2(0xB7CA), 0x0000, MB2(0xB7CB), + MB2(0xB7CC), MB2(0xB7CD), 0x0000, MB2(0xB7CE), + 0x0000, MB2(0xB7CF), MB2(0xB7D0), MB2(0xB7D1), + MB2(0xB7D2), 0x0000, MB2(0xB7D3), 0x0000, + 0x0000, MB2(0xB7D4), 0x0000, MB2(0xB7D5), /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7D6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7D7), MB2(0xB7E0), 0x0000, MB2(0xB7D8), + 0x0000, MB2(0xB7D9), MB2(0xB7DA), 0x0000, + MB2(0xB7DB), MB2(0xB7DC), MB2(0xB7DD), MB2(0xB7DE), + 0x0000, MB2(0xB7DF), 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7E1), + MB2(0xB7E2), MB2(0xB7E3), 0x0000, 0x0000, + MB2(0xB7E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7E5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7E7), + MB2(0xB7E8), 0x0000, 0x0000, 0x0000, + MB2(0xB7E9), 0x0000, 0x0000, MB2(0xB7EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7EC), MB2(0xB7ED), 0x0000, + 0x0000, MB2(0xB7FE), 0x0000, 0x0000, /* 57E0 */ + MB2(0xB7EE), 0x0000, MB2(0xB7EF), MB2(0xB7F0), + 0x0000, MB2(0xB7F1), 0x0000, 0x0000, + 0x0000, MB2(0xB7F2), 0x0000, 0x0000, + MB2(0xB7F3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7F4), MB2(0xB7F5), 0x0000, + MB2(0xB7F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7F7), MB2(0xB7F8), MB2(0xB7F9), + 0x0000, 0x0000, 0x0000, MB2(0xB7FA), /* 5800 */ + MB2(0xB7FB), 0x0000, 0x0000, 0x0000, + MB2(0xB7FC), MB2(0xB7FD), 0x0000, 0x0000, + MB2(0xB8A1), MB2(0xB8A2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8A3), + 0x0000, 0x0000, MB2(0xB8A4), MB2(0xB8A5), + MB2(0xB8A6), 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, MB2(0xB8A7), MB2(0xB8A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8A9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8AC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8AD), 0x0000, 0x0000, + MB2(0xB8AE), MB2(0xB8AF), 0x0000, MB2(0xB8B0), + MB2(0xB8B1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8B3), + 0x0000, MB2(0xB8B4), 0x0000, 0x0000, /* 5860 */ + MB2(0xB8B5), 0x0000, 0x0000, MB2(0xB8B6), + MB2(0xB8B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8B8), 0x0000, 0x0000, 0x0000, + MB2(0xB8B9), 0x0000, 0x0000, MB2(0xB8BA), + MB2(0xB8BB), MB2(0xB8BC), 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, MB2(0xB8BD), + MB2(0xB8BE), MB2(0xB8BF), MB2(0xB8C0), 0x0000, + MB2(0xB8C1), MB2(0xB8C2), 0x0000, MB2(0xB8C3), + MB2(0xB8C4), 0x0000, 0x0000, 0x0000, + MB2(0xB8C5), 0x0000, MB2(0xB8C6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8C7), MB2(0xF4B9), 0x0000, + MB2(0xB8C8), MB2(0xB8C9), MB2(0xB8CA), 0x0000, /* 58A0 */ + 0x0000, 0x0000, MB2(0xB8CB), 0x0000, + 0x0000, MB2(0xB8CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8CD), MB2(0xB8CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8D1), 0x0000, /* 58C0 */ + MB2(0xB8CF), 0x0000, 0x0000, 0x0000, + MB2(0xB8D2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8D3), MB2(0xB8D4), 0x0000, + MB2(0xB8D5), 0x0000, MB2(0xB8D6), 0x0000, + MB2(0xB8D7), 0x0000, MB2(0xB8D8), 0x0000, + 0x0000, 0x0000, MB2(0xB8D9), 0x0000, + 0x0000, MB2(0xB8DA), 0x0000, 0x0000, + 0x0000, MB2(0xB8DB), MB2(0xB8DC), 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, MB2(0xB8DF), MB2(0xB8E0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8E1), + MB2(0xB8E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8E3), MB2(0xB8E4), + MB2(0xB8E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8E7), 0x0000, 0x0000, + 0x0000, MB2(0xB8E8), 0x0000, MB2(0xB8E9), /* 5920 */ + MB2(0xB8EA), 0x0000, 0x0000, 0x0000, + MB2(0xB8EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8EC), + MB2(0xB8ED), 0x0000, 0x0000, MB2(0xB8EE), + 0x0000, MB2(0xB8EF), MB2(0xB8F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8F1), + 0x0000, 0x0000, 0x0000, MB2(0xB8F2), /* 5940 */ + 0x0000, 0x0000, MB2(0xB8F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8F4), MB2(0xB8F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8F6), 0x0000, MB2(0xB8F7), + 0x0000, MB2(0xB8F8), MB2(0xB8F9), MB2(0xB8FA), + 0x0000, MB2(0xB8FB), 0x0000, MB2(0xB8FC), /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8FD), + 0x0000, MB2(0xB8FE), 0x0000, MB2(0xB9A1), + 0x0000, 0x0000, MB2(0xB9A2), 0x0000, + 0x0000, MB2(0xB9A3), MB2(0xB9A4), 0x0000, + 0x0000, MB2(0xB9A5), 0x0000, MB2(0xB9A6), + MB2(0xB9A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9A8), + MB2(0xB9A9), 0x0000, MB2(0xB9AA), 0x0000, + 0x0000, 0x0000, MB2(0xB9AB), 0x0000, + 0x0000, MB2(0xB9AC), 0x0000, MB2(0xB9AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9AE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + MB2(0xB9AF), 0x0000, 0x0000, MB2(0xB9B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9B1), MB2(0xB9B2), MB2(0xB9B3), + MB2(0xB9B4), 0x0000, 0x0000, MB2(0xB9B5), + 0x0000, 0x0000, 0x0000, MB2(0xB9B6), + 0x0000, 0x0000, MB2(0xB9B7), 0x0000, + MB2(0xB9B8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9B9), 0x0000, MB2(0xB9BA), /* 59C0 */ + MB2(0xB9BB), 0x0000, 0x0000, 0x0000, + MB2(0xB9BC), 0x0000, MB2(0xB9BD), 0x0000, + 0x0000, MB2(0xB9BE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9BF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9C0), MB2(0xB9C1), MB2(0xB9C2), + 0x0000, 0x0000, 0x0000, MB2(0xB9C3), /* 59E0 */ + MB2(0xB9C4), 0x0000, 0x0000, MB2(0xB9C5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9C6), MB2(0xB9C7), + 0x0000, MB2(0xB9C8), MB2(0xB9C9), 0x0000, + MB2(0xB9CA), 0x0000, 0x0000, MB2(0xB9CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9CC), 0x0000, 0x0000, 0x0000, /* 5A00 */ + MB2(0xB9CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9CE), MB2(0xB9CF), MB2(0xB9D0), 0x0000, + 0x0000, 0x0000, MB2(0xB9D1), MB2(0xB9D2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9D3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9D4), /* 5A20 */ + MB2(0xB9D5), 0x0000, 0x0000, MB2(0xB9D6), + MB2(0xB9D7), 0x0000, MB2(0xB9D8), 0x0000, + 0x0000, MB2(0xB9D9), 0x0000, 0x0000, + MB2(0xB9DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + MB2(0xB9DB), MB2(0xB9DC), 0x0000, MB2(0xB9DD), + MB2(0xB9DE), 0x0000, 0x0000, 0x0000, + MB2(0xB9DF), 0x0000, 0x0000, 0x0000, + MB2(0xB9E0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9E2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E3), /* 5A60 */ + 0x0000, MB2(0xB9E4), 0x0000, MB2(0xB9E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E7), + 0x0000, 0x0000, MB2(0xB9E8), MB2(0xB9E9), + 0x0000, 0x0000, MB2(0xB9EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9EB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9EC), 0x0000, 0x0000, MB2(0xB9ED), + 0x0000, 0x0000, MB2(0xB9EE), 0x0000, + 0x0000, MB2(0xB9EF), 0x0000, 0x0000, + MB2(0xB9F0), 0x0000, MB2(0xB9F1), MB2(0xB9F2), + MB2(0xB9F3), 0x0000, MB2(0xB9F4), 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB9F5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9F7), MB2(0xB9F8), MB2(0xB9F9), + 0x0000, MB2(0xB9FA), 0x0000, 0x0000, + MB2(0xB9FB), 0x0000, MB2(0xB9FC), MB2(0xB9FD), + 0x0000, 0x0000, 0x0000, MB2(0xB9FE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + MB2(0xBAA1), 0x0000, MB2(0xBAA2), 0x0000, + MB2(0xBAA3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAA4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAA5), 0x0000, + MB2(0xBAA6), 0x0000, 0x0000, 0x0000, + MB2(0xBAA7), 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, MB2(0xBAA8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAA9), 0x0000, + 0x0000, 0x0000, MB2(0xBAAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAAB), MB2(0xBAAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAAD), 0x0000, 0x0000, + MB2(0xBAAE), MB2(0xBAAF), 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAB0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAB1), + 0x0000, MB2(0xBAB3), 0x0000, MB2(0xBAB4), + 0x0000, MB2(0xBAB5), 0x0000, 0x0000, + 0x0000, MB2(0xBAB6), 0x0000, 0x0000, /* 5B20 */ + 0x0000, MB2(0xBAB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAB2), 0x0000, 0x0000, 0x0000, + MB2(0xBAB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBABA), 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBABB), + MB2(0xBABC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBABD), 0x0000, + 0x0000, 0x0000, MB2(0xBABE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBABF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAC0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAC1), MB2(0xBAC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAC3), MB2(0xBAC4), MB2(0xBAC5), MB2(0xBAC6), + 0x0000, MB2(0xBAC7), 0x0000, 0x0000, /* 5B80 */ + MB2(0xBAC8), 0x0000, MB2(0xBAC9), 0x0000, + 0x0000, 0x0000, MB2(0xBACA), 0x0000, + 0x0000, 0x0000, MB2(0xBACB), 0x0000, + MB2(0xBACC), MB2(0xBACD), 0x0000, MB2(0xBACE), + MB2(0xBACF), 0x0000, MB2(0xBAD0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAD1), MB2(0xBAD2), 0x0000, 0x0000, + MB2(0xBAD3), MB2(0xBAD4), 0x0000, MB2(0xBAD5), + 0x0000, MB2(0xBAD6), MB2(0xBAD7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAD8), + 0x0000, 0x0000, MB2(0xBAD9), 0x0000, + MB2(0xBADA), 0x0000, 0x0000, 0x0000, + MB2(0xBADB), MB2(0xBADC), 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBADD), 0x0000, MB2(0xBADE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBADF), MB2(0xBAE0), + MB2(0xBAE1), MB2(0xBAE2), MB2(0xBAE3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAE4), 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF4BA), 0x0000, 0x0000, MB2(0xBAE5), + 0x0000, MB2(0xBAE6), 0x0000, 0x0000, + MB2(0xBAE7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAE8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAE9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAEA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAEB), MB2(0xBAEC), + 0x0000, 0x0000, 0x0000, MB2(0xBAED), /* 5C20 */ + 0x0000, 0x0000, MB2(0xBAEE), 0x0000, + 0x0000, MB2(0xBAEF), 0x0000, MB2(0xBAF0), + MB2(0xBAF1), 0x0000, MB2(0xBAF2), 0x0000, + MB2(0xBAF3), 0x0000, MB2(0xBAF4), 0x0000, + 0x0000, MB2(0xBAF5), MB2(0xBAF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAF7), MB2(0xBAF8), 0x0000, + MB2(0xBAF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAFA), MB2(0xBAFB), /* 5C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xBAFC), + MB2(0xBAFD), MB2(0xBAFE), 0x0000, 0x0000, + 0x0000, MB2(0xBBA1), 0x0000, 0x0000, + MB2(0xBBA2), 0x0000, 0x0000, 0x0000, + MB2(0xBBA3), MB2(0xBBA4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBA5), MB2(0xBBA6), + MB2(0xBBA7), MB2(0xBBA8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBA9), + MB2(0xBBAA), 0x0000, MB2(0xBBAB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBAC), + 0x0000, 0x0000, MB2(0xBBAD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBAE), 0x0000, MB2(0xBBAF), + MB2(0xBBB0), 0x0000, MB2(0xBBB1), MB2(0xBBB2), /* 5CA0 */ + 0x0000, 0x0000, MB2(0xBBB3), 0x0000, + 0x0000, 0x0000, MB2(0xBBB4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB5), 0x0000, + MB2(0xBBB6), MB2(0xBBB7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBB9), 0x0000, MB2(0xBBBA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBBB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBBD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBBC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBBE), 0x0000, + 0x0000, MB2(0xBBBF), MB2(0xBBC0), 0x0000, + MB2(0xBBC1), MB2(0xF4BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBC2), 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, MB2(0xBBC3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBC4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBC5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBC7), /* 5D20 */ + MB2(0xBBC8), 0x0000, MB2(0xBBC9), MB2(0xBBCA), + 0x0000, 0x0000, 0x0000, MB2(0xBBC6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBCB), 0x0000, 0x0000, + MB2(0xBBCC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBCD), 0x0000, 0x0000, + 0x0000, MB2(0xBBCE), 0x0000, MB2(0xBBCF), + 0x0000, 0x0000, MB2(0xBBD0), MB2(0xBBD1), /* 5D40 */ + 0x0000, 0x0000, MB2(0xBBD2), 0x0000, + MB2(0xBBD3), 0x0000, MB2(0xBBD7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBD5), 0x0000, MB2(0xF4BC), + 0x0000, MB2(0xBBD4), 0x0000, 0x0000, + 0x0000, MB2(0xBBD6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBD8), + MB2(0xBBD9), MB2(0xBBDA), MB2(0xBBDB), 0x0000, /* 5D60 */ + MB2(0xBBDC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBDD), 0x0000, + 0x0000, MB2(0xBBDE), 0x0000, 0x0000, + MB2(0xBBDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBE0), MB2(0xBBE1), 0x0000, + 0x0000, 0x0000, MB2(0xBBE2), MB2(0xBBE3), + 0x0000, MB2(0xBBE4), 0x0000, MB2(0xBBE5), /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBE6), 0x0000, MB2(0xBBE7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBE8), MB2(0xBBE9), + MB2(0xBBEA), MB2(0xBBEB), 0x0000, 0x0000, + 0x0000, MB2(0xBBEC), 0x0000, MB2(0xBBED), + 0x0000, 0x0000, 0x0000, MB2(0xBBEE), + MB2(0xBBEF), 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBF0), + 0x0000, 0x0000, 0x0000, MB2(0xBBF1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBF2), 0x0000, MB2(0xE6F4), 0x0000, + MB2(0xBBF3), 0x0000, 0x0000, 0x0000, + MB2(0xBBF4), MB2(0xBBF5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBF6), /* 5DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBF7), + 0x0000, 0x0000, 0x0000, MB2(0xBBF8), + 0x0000, 0x0000, MB2(0xBBFA), 0x0000, + MB2(0xBBF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBFB), MB2(0xBBFC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBFD), 0x0000, 0x0000, 0x0000, /* 5DE0 */ + MB2(0xBBFE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCA1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCA2), MB2(0xBCA3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCA4), 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, MB2(0xBCA5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCA6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCA7), 0x0000, + MB2(0xBCA8), MB2(0xBCA9), 0x0000, 0x0000, + MB2(0xBCAA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCAB), + MB2(0xBCAC), 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCAD), 0x0000, + 0x0000, 0x0000, MB2(0xBCAF), 0x0000, + 0x0000, MB2(0xBCB0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCB1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCB4), 0x0000, MB2(0xBCB2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCB3), MB2(0xBCB5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCB6), 0x0000, + MB2(0xBCB7), 0x0000, 0x0000, MB2(0xBCB8), + MB2(0xBCB9), 0x0000, MB2(0xBCBA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCBB), 0x0000, MB2(0xBCBC), MB2(0xBCBD), + MB2(0xBCBE), MB2(0xBCBF), MB2(0xBCC0), 0x0000, + MB2(0xBCC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCC2), 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCC3), + 0x0000, 0x0000, MB2(0xBCC4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCC5), 0x0000, /* 5EA0 */ + MB2(0xBCC6), MB2(0xBCC7), 0x0000, 0x0000, + MB2(0xBCC8), 0x0000, MB2(0xBCC9), 0x0000, + MB2(0xBCCA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCCB), 0x0000, MB2(0xBCCC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCCD), MB2(0xBCCE), MB2(0xBCCF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, MB2(0xBCD0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCD2), + MB2(0xBCD1), 0x0000, MB2(0xBCD3), 0x0000, + 0x0000, MB2(0xBCD4), MB2(0xBCD5), 0x0000, + MB2(0xBCD6), MB2(0xBCD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCD8), 0x0000, MB2(0xBCD9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, MB2(0xBCDA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCDB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCDC), 0x0000, /* 5F00 */ + 0x0000, 0x0000, MB2(0xBCDD), MB2(0xBCDE), + MB2(0xBCDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCE1), 0x0000, 0x0000, + MB2(0xBCE2), MB2(0xBCE3), 0x0000, 0x0000, + 0x0000, MB2(0xBCE4), MB2(0xBCE5), MB2(0xBCE6), /* 5F20 */ + MB2(0xBCE7), 0x0000, 0x0000, 0x0000, + MB2(0xBCE8), 0x0000, 0x0000, MB2(0xBCE9), + MB2(0xBCEA), 0x0000, MB2(0xBCEB), 0x0000, + MB2(0xBCEC), 0x0000, 0x0000, 0x0000, + MB2(0xBCED), 0x0000, MB2(0xBCEE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCEF), + 0x0000, MB2(0xBCF0), 0x0000, MB2(0xBCF1), + MB2(0xBCF2), 0x0000, 0x0000, 0x0000, /* 5F40 */ + MB2(0xBCF3), MB2(0xBCF4), 0x0000, MB2(0xBCF5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCF6), 0x0000, 0x0000, + MB2(0xBCF7), 0x0000, 0x0000, 0x0000, + MB2(0xBCF8), 0x0000, 0x0000, 0x0000, + MB2(0xBCF9), 0x0000, 0x0000, MB2(0xBCFA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCFB), 0x0000, 0x0000, MB2(0xBCFC), /* 5F60 */ + MB2(0xBCFD), 0x0000, 0x0000, MB2(0xBCFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDA1), + 0x0000, 0x0000, MB2(0xBDA2), 0x0000, + MB2(0xBDA3), MB2(0xBDA4), 0x0000, 0x0000, + MB2(0xBDA5), 0x0000, MB2(0xBDA6), 0x0000, + 0x0000, MB2(0xBDA7), MB2(0xBDA8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDA9), 0x0000, 0x0000, + 0x0000, MB2(0xBDAA), 0x0000, MB2(0xBDAB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDAD), MB2(0xBDAE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDAF), 0x0000, /* 5FA0 */ + MB2(0xBDB2), 0x0000, 0x0000, MB2(0xBDB0), + 0x0000, 0x0000, 0x0000, MB2(0xBDB1), + MB2(0xBDB3), 0x0000, 0x0000, MB2(0xBDB4), + MB2(0xBDB5), MB2(0xBDB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF4BE), + MB2(0xBDB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + MB2(0xBDB8), 0x0000, 0x0000, MB2(0xBDB9), + MB2(0xBDBA), MB2(0xBDBB), 0x0000, MB2(0xBDBC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDBD), MB2(0xBDBE), MB2(0xBDBF), MB2(0xBDC0), + MB2(0xBDC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDC2), 0x0000, + 0x0000, MB2(0xBDC3), MB2(0xBDC4), 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDC5), MB2(0xBDC6), MB2(0xBDC7), 0x0000, + MB2(0xBDC8), MB2(0xBDC9), MB2(0xBDCA), MB2(0xBDCB), + 0x0000, 0x0000, MB2(0xBDCC), MB2(0xBDCD), + 0x0000, 0x0000, MB2(0xBDCE), 0x0000, + 0x0000, 0x0000, MB2(0xBDCF), 0x0000, + MB2(0xBDD0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDD1), + 0x0000, 0x0000, MB2(0xBDD2), 0x0000, + 0x0000, MB2(0xBDD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDD4), + MB2(0xBDD5), 0x0000, 0x0000, MB2(0xBDD6), + MB2(0xBDD7), 0x0000, MB2(0xBDD8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDD9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + MB2(0xBDDA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDDB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDDC), + 0x0000, MB2(0xBDDD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDDE), 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDDF), + MB2(0xBDE0), MB2(0xBDE1), 0x0000, 0x0000, + MB2(0xBDE2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDE3), 0x0000, 0x0000, + MB2(0xBDE4), 0x0000, MB2(0xBDE5), MB2(0xBDE6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDE7), 0x0000, 0x0000, + 0x0000, MB2(0xBDE8), 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDE9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDEA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDEB), MB2(0xBDEC), + 0x0000, 0x0000, MB2(0xBDED), 0x0000, /* 6080 */ + 0x0000, MB2(0xF4BF), MB2(0xBDEE), 0x0000, + MB2(0xBDEF), 0x0000, MB2(0xBDF0), 0x0000, + 0x0000, 0x0000, MB2(0xBDF1), 0x0000, + 0x0000, MB2(0xBDF2), 0x0000, MB2(0xBDF3), + 0x0000, MB2(0xBDF4), 0x0000, 0x0000, + MB2(0xBDF5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDF6), MB2(0xBDF7), 0x0000, + 0x0000, 0x0000, MB2(0xBDF8), 0x0000, /* 60A0 */ + MB2(0xBDF9), MB2(0xBDFA), 0x0000, 0x0000, + MB2(0xBDFB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDFC), MB2(0xBDFD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDFE), + 0x0000, 0x0000, 0x0000, MB2(0xBEA1), + 0x0000, 0x0000, MB2(0xBEA2), 0x0000, + 0x0000, 0x0000, MB2(0xBEA3), 0x0000, /* 60C0 */ + MB2(0xBEA4), 0x0000, 0x0000, 0x0000, + MB2(0xBEA5), MB2(0xBEA6), MB2(0xBEA7), MB2(0xBEA8), + 0x0000, 0x0000, MB2(0xBEA9), MB2(0xBEAA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEAB), MB2(0xBEAC), 0x0000, 0x0000, + 0x0000, MB2(0xBEAD), 0x0000, MB2(0xBEAE), + 0x0000, MB2(0xBEAF), MB2(0xBEB0), 0x0000, + 0x0000, 0x0000, MB2(0xBEB1), 0x0000, /* 60E0 */ + 0x0000, MB2(0xBEB2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEB3), 0x0000, + 0x0000, MB2(0xBEB4), 0x0000, 0x0000, + MB2(0xBEB5), 0x0000, 0x0000, 0x0000, + MB2(0xBEB6), MB2(0xBEB7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEB8), 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, MB2(0xBEB9), + 0x0000, 0x0000, MB2(0xBEBA), 0x0000, + MB2(0xBEBB), 0x0000, 0x0000, 0x0000, + MB2(0xBEBC), MB2(0xBEBD), MB2(0xBEBE), MB2(0xBEBF), + MB2(0xBEC0), 0x0000, MB2(0xBEC1), MB2(0xBEC2), + 0x0000, MB2(0xBEC3), 0x0000, 0x0000, + MB2(0xBEC4), 0x0000, MB2(0xBEC5), 0x0000, + MB2(0xF4C0), 0x0000, MB2(0xBEC6), 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEC7), MB2(0xBEC8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEC9), MB2(0xBECA), 0x0000, 0x0000, + 0x0000, MB2(0xBECB), MB2(0xBECC), MB2(0xBECD), + 0x0000, MB2(0xBECE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBECF), 0x0000, 0x0000, /* 6140 */ + 0x0000, MB2(0xBED0), MB2(0xBED1), 0x0000, + 0x0000, MB2(0xBED2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBED3), 0x0000, + MB2(0xBED4), 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBED5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBED6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBED7), 0x0000, 0x0000, MB2(0xBED8), + MB2(0xBED9), 0x0000, 0x0000, MB2(0xBEDA), + MB2(0xBEDB), MB2(0xBEDC), 0x0000, MB2(0xBEDD), /* 6180 */ + MB2(0xBEDE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBEDF), + 0x0000, MB2(0xBEE0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEE1), MB2(0xBEE2), + 0x0000, 0x0000, 0x0000, MB2(0xBEE3), + MB2(0xBEE4), 0x0000, 0x0000, 0x0000, + MB2(0xBEE5), MB2(0xBEE6), 0x0000, MB2(0xBEE7), + MB2(0xBEE8), 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, MB2(0xBEE9), 0x0000, 0x0000, + MB2(0xBEEA), 0x0000, MB2(0xBEEB), 0x0000, + 0x0000, MB2(0xBEEC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEED), MB2(0xBEEE), 0x0000, 0x0000, + MB2(0xBEEF), 0x0000, 0x0000, 0x0000, + MB2(0xBEF0), MB2(0xBEF1), MB2(0xBEF2), 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEF3), MB2(0xBEF4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEF5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEF6), MB2(0xBEF7), MB2(0xBEF8), MB2(0xBEF9), + 0x0000, MB2(0xBEFA), MB2(0xBEFB), 0x0000, /* 61E0 */ + 0x0000, MB2(0xBEFE), 0x0000, MB2(0xBEFC), + 0x0000, MB2(0xBEFD), 0x0000, 0x0000, + MB2(0xBFA1), MB2(0xBFA2), 0x0000, MB2(0xBFA3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFA4), 0x0000, MB2(0xBFA5), /* 6200 */ + MB2(0xBFA6), 0x0000, 0x0000, MB2(0xBFA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFA8), + 0x0000, MB2(0xBFA9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFAA), 0x0000, 0x0000, 0x0000, + MB2(0xBFAB), 0x0000, MB2(0xBFAC), MB2(0xBFAD), /* 6220 */ + 0x0000, 0x0000, 0x0000, MB2(0xBFAE), + 0x0000, MB2(0xBFAF), 0x0000, MB2(0xBFB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFB1), 0x0000, 0x0000, + 0x0000, MB2(0xBFB2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFB3), MB2(0xBFB4), /* 6240 */ + MB2(0xBFB5), 0x0000, MB2(0xBFB6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFB7), 0x0000, 0x0000, 0x0000, + MB2(0xBFB8), MB2(0xBFB9), MB2(0xBFBA), 0x0000, + MB2(0xBFBB), 0x0000, MB2(0xBFBC), 0x0000, + 0x0000, 0x0000, MB2(0xBFBD), 0x0000, + MB2(0xBFBE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + MB2(0xBFBF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFC0), 0x0000, MB2(0xBFC1), + 0x0000, 0x0000, 0x0000, MB2(0xBFC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFC3), 0x0000, + 0x0000, MB2(0xBFC4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFC5), MB2(0xBFC6), MB2(0xBFC7), + MB2(0xBFC8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, MB2(0xBFC9), 0x0000, + MB2(0xBFCA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFCB), + 0x0000, 0x0000, MB2(0xBFCC), MB2(0xBFCD), + 0x0000, 0x0000, MB2(0xBFCE), 0x0000, + 0x0000, 0x0000, MB2(0xBFCF), MB2(0xBFD0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + MB2(0xBFD1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFD2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFD3), MB2(0xBFD4), 0x0000, + 0x0000, 0x0000, MB2(0xBFD5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFD7), 0x0000, + MB2(0xBFD8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFD9), MB2(0xBFDA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFDB), /* 6300 */ + MB2(0xBFDC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFDD), MB2(0xBFDE), + 0x0000, MB2(0xBFDF), 0x0000, 0x0000, + MB2(0xBFE0), 0x0000, 0x0000, MB2(0xBFE1), + 0x0000, 0x0000, MB2(0xBFE2), 0x0000, + MB2(0xBFE3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFE4), MB2(0xBFE5), 0x0000, + 0x0000, MB2(0xBFE6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFE7), MB2(0xBFE8), 0x0000, + 0x0000, MB2(0xBFE9), 0x0000, 0x0000, + MB2(0xBFEA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFEB), MB2(0xBFEC), MB2(0xBFED), /* 6340 */ + MB2(0xBFEE), 0x0000, MB2(0xBFEF), 0x0000, + 0x0000, 0x0000, MB2(0xBFF0), MB2(0xBFF1), + 0x0000, 0x0000, MB2(0xBFF2), 0x0000, + 0x0000, 0x0000, MB2(0xBFF3), MB2(0xBFF4), + MB2(0xBFF5), 0x0000, 0x0000, 0x0000, + MB2(0xBFF6), 0x0000, 0x0000, MB2(0xBFF7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, MB2(0xBFF8), MB2(0xBFF9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFFA), MB2(0xBFFB), 0x0000, 0x0000, + 0x0000, MB2(0xBFFC), 0x0000, 0x0000, + MB2(0xBFFD), MB2(0xBFFE), 0x0000, 0x0000, + MB2(0xC0A1), 0x0000, 0x0000, 0x0000, + MB2(0xC0A2), MB2(0xC0A3), 0x0000, MB2(0xC0A4), + 0x0000, 0x0000, MB2(0xC0A5), 0x0000, /* 6380 */ + MB2(0xC0A6), 0x0000, 0x0000, MB2(0xC0A7), + 0x0000, 0x0000, MB2(0xC0A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0A9), 0x0000, 0x0000, 0x0000, + MB2(0xC0AA), MB2(0xC0AB), 0x0000, 0x0000, + 0x0000, MB2(0xC0AC), MB2(0xC0AD), 0x0000, + 0x0000, 0x0000, MB2(0xC0AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + MB2(0xC0AF), 0x0000, MB2(0xC0B0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0B1), MB2(0xC0B2), MB2(0xC0B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0B4), 0x0000, 0x0000, + 0x0000, MB2(0xC0B5), 0x0000, 0x0000, /* 63C0 */ + 0x0000, MB2(0xC0B6), 0x0000, 0x0000, + MB2(0xC0B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0B8), 0x0000, + 0x0000, MB2(0xC0B9), 0x0000, MB2(0xC0BA), + MB2(0xC0BB), MB2(0xC0BC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0BD), 0x0000, 0x0000, 0x0000, + MB2(0xC0BE), 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, MB2(0xC0BF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0C0), 0x0000, + MB2(0xC0C1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0C2), MB2(0xC0C3), + 0x0000, MB2(0xC0C4), 0x0000, 0x0000, + MB2(0xC0C5), MB2(0xC0C6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0C7), MB2(0xC0C8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0C9), 0x0000, MB2(0xC0CA), 0x0000, + MB2(0xC0CB), 0x0000, 0x0000, 0x0000, + MB2(0xC0CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0CD), 0x0000, + MB2(0xC0CE), 0x0000, MB2(0xC0CF), 0x0000, /* 6420 */ + MB2(0xC0D0), MB2(0xC0D1), 0x0000, 0x0000, + 0x0000, MB2(0xC0D2), MB2(0xC0D3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0D4), + MB2(0xC0D5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0D6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0D7), 0x0000, MB2(0xC0D8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0D9), + 0x0000, 0x0000, 0x0000, MB2(0xC0DA), + 0x0000, MB2(0xC0DB), MB2(0xC0DC), MB2(0xC0DD), + MB2(0xC0DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0DF), MB2(0xC0E0), + MB2(0xC0E1), MB2(0xC0E2), 0x0000, MB2(0xC0E3), + MB2(0xC0E4), MB2(0xC0E5), 0x0000, MB2(0xC0E6), /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0E7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0E8), + MB2(0xC0E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0EA), + 0x0000, MB2(0xC0EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, MB2(0xC0EC), 0x0000, MB2(0xC0ED), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0EE), + MB2(0xC0EF), MB2(0xC0F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0F1), MB2(0xC0F2), 0x0000, MB2(0xC0F3), + 0x0000, MB2(0xC0F4), 0x0000, MB2(0xC0F5), + 0x0000, MB2(0xC0F6), 0x0000, MB2(0xC0F7), /* 64A0 */ + 0x0000, 0x0000, MB2(0xC0F8), 0x0000, + MB2(0xC0F9), 0x0000, 0x0000, 0x0000, + MB2(0xC0FA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0FB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0FC), MB2(0xC0FD), MB2(0xC0FE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + MB2(0xC1A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1A2), MB2(0xC1A3), MB2(0xC1A4), + MB2(0xC1A5), 0x0000, MB2(0xC1A6), 0x0000, + MB2(0xC1A7), MB2(0xC1A8), 0x0000, 0x0000, + 0x0000, MB2(0xC1A9), 0x0000, MB2(0xC1AA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + MB2(0xC1AB), MB2(0xC1AC), 0x0000, 0x0000, + 0x0000, MB2(0xC1AD), MB2(0xC1AE), 0x0000, + 0x0000, MB2(0xC1AF), 0x0000, 0x0000, + MB2(0xC1B0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1B1), 0x0000, MB2(0xC1B2), + 0x0000, 0x0000, 0x0000, MB2(0xC1B3), + 0x0000, 0x0000, 0x0000, MB2(0xC1B4), + 0x0000, MB2(0xC1B5), 0x0000, 0x0000, /* 6500 */ + MB2(0xC1B6), 0x0000, 0x0000, 0x0000, + MB2(0xC1B7), MB2(0xC1B8), MB2(0xC1B9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1BA), + 0x0000, 0x0000, 0x0000, MB2(0xC1BB), + MB2(0xC1BC), 0x0000, MB2(0xC1BD), 0x0000, + 0x0000, MB2(0xC1BE), 0x0000, MB2(0xC1BF), + 0x0000, 0x0000, MB2(0xC1C0), MB2(0xC1C1), + 0x0000, 0x0000, MB2(0xC1C2), 0x0000, /* 6520 */ + 0x0000, 0x0000, MB2(0xC1C3), 0x0000, + 0x0000, MB2(0xC1C4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1C5), 0x0000, + 0x0000, MB2(0xC1C6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1C7), 0x0000, + MB2(0xC1C8), MB2(0xC1C9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1CA), /* 6540 */ + 0x0000, 0x0000, 0x0000, MB2(0xC1CB), + 0x0000, MB2(0xC1CC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4C1), 0x0000, + MB2(0xC1CD), 0x0000, MB2(0xC1CE), 0x0000, + MB2(0xC1CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1D0), + MB2(0xC1D1), 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, MB2(0xC1D2), + 0x0000, 0x0000, 0x0000, MB2(0xC1D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1D4), 0x0000, + 0x0000, MB2(0xC1D5), 0x0000, 0x0000, + 0x0000, MB2(0xC1D6), 0x0000, 0x0000, /* 6580 */ + 0x0000, MB2(0xC1D7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1D9), 0x0000, + 0x0000, MB2(0xC1DA), 0x0000, 0x0000, + MB2(0xC1DB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1DC), 0x0000, 0x0000, + MB2(0xC1DD), 0x0000, 0x0000, MB2(0xC1DE), /* 65A0 */ + 0x0000, 0x0000, MB2(0xC1DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1E0), 0x0000, + 0x0000, 0x0000, MB2(0xC1E1), MB2(0xC1E2), + MB2(0xC1E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1E4), + 0x0000, 0x0000, MB2(0xC1E5), 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1E6), MB2(0xC1E7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1E8), 0x0000, + MB2(0xC1E9), 0x0000, 0x0000, 0x0000, + MB2(0xC1EA), 0x0000, MB2(0xC1EB), 0x0000, + MB2(0xC1EC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1ED), + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1EE), 0x0000, MB2(0xC1EF), 0x0000, + MB2(0xC1F0), MB2(0xC1F1), 0x0000, 0x0000, + 0x0000, MB2(0xC1F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1F3), MB2(0xC1F4), + MB2(0xC1F5), 0x0000, 0x0000, 0x0000, /* 6600 */ + MB2(0xC1F6), 0x0000, 0x0000, 0x0000, + MB2(0xC1F7), MB2(0xC1F8), 0x0000, 0x0000, + 0x0000, MB2(0xC1F9), 0x0000, 0x0000, + 0x0000, MB2(0xC1FA), MB2(0xC1FB), 0x0000, + 0x0000, MB2(0xC1FC), MB2(0xC1FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1FE), MB2(0xC2A1), 0x0000, + 0x0000, MB2(0xC2A2), MB2(0xC2A3), MB2(0xC2A4), /* 6620 */ + MB2(0xC2A5), 0x0000, MB2(0xC2A6), 0x0000, + 0x0000, MB2(0xC2A7), MB2(0xC2A8), MB2(0xC2A9), + MB2(0xC2AA), 0x0000, MB2(0xC2AB), 0x0000, + MB2(0xC2AC), MB2(0xC2AD), 0x0000, MB2(0xC2AE), + 0x0000, 0x0000, 0x0000, MB2(0xC2B0), + 0x0000, MB2(0xC2AF), 0x0000, MB2(0xF4C2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2B1), 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, MB2(0xC2B2), MB2(0xC2B3), 0x0000, + 0x0000, 0x0000, MB2(0xC2B4), 0x0000, + MB2(0xC2B5), 0x0000, MB2(0xC2B7), 0x0000, + 0x0000, MB2(0xC2B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2B8), + MB2(0xC2B9), MB2(0xC2BA), 0x0000, MB2(0xC2BB), + MB2(0xC2BC), 0x0000, 0x0000, 0x0000, + MB2(0xC2BD), MB2(0xC2BE), 0x0000, 0x0000, /* 6660 */ + 0x0000, MB2(0xF4C3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2C0), MB2(0xC2C1), + MB2(0xC2C2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2C4), + 0x0000, MB2(0xC2C5), 0x0000, MB2(0xC2C7), + MB2(0xC2C8), MB2(0xC2C9), 0x0000, MB2(0xC2CA), + MB2(0xC2CC), 0x0000, MB2(0xC2C3), MB2(0xC2C6), + MB2(0xC2CB), 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2CD), + MB2(0xC2CE), MB2(0xC2CF), 0x0000, 0x0000, + MB2(0xC2D0), 0x0000, MB2(0xC2D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2D2), MB2(0xC2D3), MB2(0xC2D4), + MB2(0xC2D5), 0x0000, 0x0000, MB2(0xC2D6), + MB2(0xC2D7), 0x0000, 0x0000, 0x0000, /* 66A0 */ + MB2(0xC2D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2D9), 0x0000, 0x0000, + 0x0000, MB2(0xC2DA), MB2(0xC2DB), 0x0000, + 0x0000, MB2(0xC2DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2DD), + 0x0000, 0x0000, 0x0000, MB2(0xC2DE), + MB2(0xC2DF), 0x0000, MB2(0xC2E0), MB2(0xC2E1), /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2E2), 0x0000, 0x0000, 0x0000, + MB2(0xC2E3), 0x0000, MB2(0xC2E4), MB2(0xC2E5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2E7), + 0x0000, 0x0000, 0x0000, MB2(0xC2E8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2E9), 0x0000, 0x0000, MB2(0xC2EA), + MB2(0xC2EB), 0x0000, MB2(0xC2EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2ED), MB2(0xC2BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, MB2(0xC2EE), 0x0000, MB2(0xC2EF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2F2), 0x0000, 0x0000, + MB2(0xC2F3), 0x0000, 0x0000, 0x0000, + MB2(0xC2F4), 0x0000, MB2(0xC2F5), 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, MB2(0xC2F8), 0x0000, MB2(0xC2F9), + MB2(0xC2FA), 0x0000, 0x0000, 0x0000, + MB2(0xC2FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2FC), MB2(0xC2FD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, MB2(0xC3A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3A2), 0x0000, MB2(0xC3A3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3A4), 0x0000, MB2(0xC3A5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3A6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3A7), 0x0000, 0x0000, /* 6780 */ + MB2(0xC3A8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3A9), MB2(0xC3AA), + 0x0000, MB2(0xC3AB), 0x0000, MB2(0xC3AC), + 0x0000, 0x0000, MB2(0xC3AD), 0x0000, + MB2(0xC3AE), MB2(0xC3AF), 0x0000, MB2(0xC3B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3B1), MB2(0xC3B2), MB2(0xC3B3), 0x0000, + 0x0000, MB2(0xC3B4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3B5), + MB2(0xC3B6), MB2(0xC3B7), 0x0000, 0x0000, + MB2(0xC3B9), 0x0000, MB2(0xC3BA), MB2(0xC3BB), /* 67C0 */ + 0x0000, MB2(0xC3BC), 0x0000, 0x0000, + MB2(0xC3BD), MB2(0xC3BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3BF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3C0), + 0x0000, MB2(0xC3C1), 0x0000, 0x0000, + MB2(0xC3C2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3C3), 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, MB2(0xC3C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3C5), 0x0000, MB2(0xC3C6), 0x0000, + 0x0000, 0x0000, MB2(0xC3C7), MB2(0xC3C8), + 0x0000, MB2(0xC3B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF4C6), 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3CA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3CB), 0x0000, 0x0000, + 0x0000, MB2(0xC3CC), 0x0000, MB2(0xC3CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, MB2(0xC3CF), + MB2(0xC3CE), 0x0000, 0x0000, 0x0000, + MB2(0xC3D0), MB2(0xC3D1), 0x0000, MB2(0xC3D2), + MB2(0xC3D3), MB2(0xC3D4), 0x0000, MB2(0xC3D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3D6), + 0x0000, 0x0000, 0x0000, MB2(0xC3D7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + MB2(0xC3D8), MB2(0xC3D9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3DA), 0x0000, + MB2(0xC3DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3C9), 0x0000, + 0x0000, MB2(0xC3DC), 0x0000, MB2(0xC3DD), + MB2(0xC3DE), 0x0000, 0x0000, MB2(0xC3DF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3E0), + 0x0000, 0x0000, MB2(0xC3E1), MB2(0xC3E2), + MB2(0xC3E3), MB2(0xC3E4), MB2(0xC3E5), 0x0000, + 0x0000, MB2(0xC3E6), 0x0000, 0x0000, + 0x0000, MB2(0xC3E7), MB2(0xC3E8), MB2(0xC3E9), + MB2(0xC3EA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3EB), 0x0000, /* 6880 */ + MB2(0xC3EC), 0x0000, MB2(0xC3ED), 0x0000, + MB2(0xC3EE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3EF), 0x0000, + MB2(0xC3F0), 0x0000, MB2(0xC3F1), 0x0000, + MB2(0xC3F2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3F3), 0x0000, MB2(0xC3F4), /* 68A0 */ + 0x0000, MB2(0xC3F5), 0x0000, 0x0000, + 0x0000, MB2(0xC3F6), MB2(0xC3F7), 0x0000, + 0x0000, 0x0000, MB2(0xC3F8), 0x0000, + 0x0000, 0x0000, MB2(0xC3F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, MB2(0xC3FB), 0x0000, 0x0000, + MB2(0xC3FC), 0x0000, 0x0000, 0x0000, + MB2(0xC3FD), 0x0000, 0x0000, MB2(0xC3FE), + MB2(0xC4A1), MB2(0xC4A2), 0x0000, MB2(0xC4A3), + 0x0000, 0x0000, MB2(0xC4A4), 0x0000, + 0x0000, MB2(0xC4A5), 0x0000, 0x0000, + MB2(0xC4A6), MB2(0xC4A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, MB2(0xC4A8), 0x0000, 0x0000, + MB2(0xC4A9), 0x0000, MB2(0xC4AA), MB2(0xC4AB), + MB2(0xC4AC), MB2(0xC4AD), 0x0000, 0x0000, + MB2(0xC4AE), MB2(0xC4AF), 0x0000, 0x0000, + 0x0000, MB2(0xC4B0), MB2(0xC4B1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4B2), + MB2(0xC4B3), MB2(0xC4B4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, MB2(0xC4B5), 0x0000, + 0x0000, MB2(0xC4B6), MB2(0xC4B7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4B8), MB2(0xC4B9), 0x0000, MB2(0xC4BA), + 0x0000, 0x0000, MB2(0xC4BB), MB2(0xC4BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4BD), 0x0000, MB2(0xC4BE), + 0x0000, MB2(0xC4BF), 0x0000, 0x0000, + MB2(0xC4C0), 0x0000, 0x0000, MB2(0xC4C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4C2), 0x0000, /* 6940 */ + 0x0000, MB2(0xC4C3), 0x0000, 0x0000, + 0x0000, MB2(0xC4C4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4C6), + 0x0000, 0x0000, 0x0000, MB2(0xC4C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4C8), /* 6960 */ + MB2(0xC4C9), MB2(0xC4CA), MB2(0xC4CB), 0x0000, + MB2(0xC4CC), MB2(0xC4CD), 0x0000, 0x0000, + MB2(0xC4CE), 0x0000, 0x0000, 0x0000, + MB2(0xC4CF), MB2(0xC4D0), MB2(0xC4D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4D2), MB2(0xC4D3), + 0x0000, 0x0000, 0x0000, MB2(0xC4D4), + MB2(0xC4D5), 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4D6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4D7), 0x0000, + 0x0000, 0x0000, MB2(0xC4D8), 0x0000, + MB2(0xC4D9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4DA), 0x0000, 0x0000, /* 69A0 */ + 0x0000, MB2(0xC4DB), MB2(0xC4DC), 0x0000, + MB2(0xC4DD), 0x0000, 0x0000, MB2(0xC4DE), + 0x0000, MB2(0xC4DF), 0x0000, MB2(0xC4E0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4E1), + MB2(0xC4E2), 0x0000, MB2(0xC4E3), 0x0000, + MB2(0xC4E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, MB2(0xC4E5), 0x0000, 0x0000, + MB2(0xC4E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4E7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4E8), MB2(0xC4E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4EA), 0x0000, /* 69E0 */ + 0x0000, MB2(0xC4EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4EC), MB2(0xC4ED), + 0x0000, MB2(0xC4EE), 0x0000, MB2(0xC4EF), + 0x0000, MB2(0xC4F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4F1), 0x0000, + MB2(0xC4F2), MB2(0xC4F3), 0x0000, MB2(0xC4F4), /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4F5), + 0x0000, MB2(0xC4F6), 0x0000, 0x0000, + 0x0000, MB2(0xC4F7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4F8), 0x0000, + 0x0000, MB2(0xC4F9), 0x0000, 0x0000, + MB2(0xC4FA), 0x0000, 0x0000, 0x0000, /* 6A20 */ + MB2(0xC4FB), 0x0000, 0x0000, 0x0000, + MB2(0xC4FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4FD), 0x0000, MB2(0xC4FE), 0x0000, + MB2(0xC5A1), 0x0000, 0x0000, MB2(0xC5A2), + 0x0000, 0x0000, 0x0000, MB2(0xC5A3), + 0x0000, 0x0000, MB2(0xC5A4), MB2(0xC5A5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, MB2(0xC5A6), MB2(0xC5A7), 0x0000, + 0x0000, MB2(0xC5A8), MB2(0xC5A9), 0x0000, + 0x0000, 0x0000, MB2(0xC5AA), 0x0000, + MB2(0xC5AB), MB2(0xC5AC), MB2(0xC5AD), 0x0000, + 0x0000, MB2(0xC5AE), MB2(0xC5AF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + MB2(0xC5B1), 0x0000, 0x0000, MB2(0xC5B2), + 0x0000, 0x0000, MB2(0xC5B3), MB2(0xF4C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5B4), 0x0000, MB2(0xC5B5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5B6), 0x0000, + 0x0000, MB2(0xC5B7), 0x0000, MB2(0xC5B8), /* 6A80 */ + 0x0000, 0x0000, MB2(0xC5B9), MB2(0xC5BA), + 0x0000, MB2(0xC5BB), 0x0000, MB2(0xC5BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5BE), + 0x0000, MB2(0xC5BF), MB2(0xC5C0), MB2(0xC5C1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, MB2(0xC5C2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5C3), + 0x0000, 0x0000, 0x0000, MB2(0xC5C4), + MB2(0xC5C5), MB2(0xC5C6), 0x0000, 0x0000, + MB2(0xC5C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5C8), MB2(0xC5C9), MB2(0xC5CA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, MB2(0xC5CB), 0x0000, + MB2(0xC5CD), MB2(0xC5CC), 0x0000, 0x0000, + MB2(0xC5CE), 0x0000, 0x0000, 0x0000, + MB2(0xC5CF), 0x0000, 0x0000, 0x0000, + MB2(0xC5D0), MB2(0xC5D1), MB2(0xC5D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5D3), MB2(0xC5D4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4CA), 0x0000, /* 6AE0 */ + MB2(0xC5D5), 0x0000, 0x0000, MB2(0xC5D6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5D7), 0x0000, 0x0000, 0x0000, + MB2(0xC5D8), MB2(0xC5D9), MB2(0xC5DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5DB), MB2(0xC5DC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5DD), MB2(0xC5DE), /* 6B00 */ + 0x0000, 0x0000, MB2(0xC5DF), MB2(0xC5E0), + 0x0000, MB2(0xC5E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5E2), + MB2(0xC5E3), MB2(0xC5E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5E5), + 0x0000, 0x0000, 0x0000, MB2(0xC5E6), + 0x0000, 0x0000, MB2(0xC5E7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + MB2(0xC5E8), 0x0000, 0x0000, 0x0000, + MB2(0xC5E9), 0x0000, 0x0000, MB2(0xC5EA), + MB2(0xC5EB), 0x0000, 0x0000, MB2(0xC5EC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5ED), MB2(0xC5EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5EF), + 0x0000, 0x0000, 0x0000, MB2(0xC5F0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, MB2(0xC5F1), 0x0000, + 0x0000, 0x0000, MB2(0xC5F2), 0x0000, + 0x0000, MB2(0xC5F3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5F4), 0x0000, + 0x0000, 0x0000, MB2(0xC5F5), 0x0000, + MB2(0xC5F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5F7), 0x0000, 0x0000, + MB2(0xC5F8), 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, MB2(0xC5F9), + 0x0000, 0x0000, 0x0000, MB2(0xC5FA), + 0x0000, 0x0000, MB2(0xC5FB), 0x0000, + MB2(0xC5FC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5FD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5FE), MB2(0xC6A1), 0x0000, + 0x0000, 0x0000, MB2(0xC6A2), 0x0000, /* 6B80 */ + 0x0000, MB2(0xC6A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6A4), + 0x0000, 0x0000, 0x0000, MB2(0xC6A5), + 0x0000, 0x0000, 0x0000, MB2(0xC6A6), + MB2(0xC6A7), 0x0000, MB2(0xC6A8), MB2(0xC6A9), /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6AA), MB2(0xC6AB), 0x0000, 0x0000, + MB2(0xC6AC), MB2(0xC6AD), MB2(0xC6AE), 0x0000, + MB2(0xC6AF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6B0), MB2(0xC6B1), 0x0000, 0x0000, + 0x0000, MB2(0xC6B2), MB2(0xC6B3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6B4), /* 6BC0 */ + MB2(0xC6B5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6B6), 0x0000, 0x0000, + MB2(0xC6B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6B8), 0x0000, + 0x0000, 0x0000, MB2(0xC6B9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6BA), 0x0000, MB2(0xC6BB), /* 6BE0 */ + 0x0000, 0x0000, MB2(0xC6BC), MB2(0xC6BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6BE), 0x0000, + 0x0000, MB2(0xC6BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6C0), + 0x0000, MB2(0xC6C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6C2), + 0x0000, 0x0000, MB2(0xC6C3), 0x0000, /* 6C00 */ + MB2(0xC6C4), MB2(0xC6C5), 0x0000, 0x0000, + 0x0000, MB2(0xC6C6), 0x0000, 0x0000, + 0x0000, MB2(0xC6C7), MB2(0xC6C8), 0x0000, + MB2(0xC6C9), 0x0000, MB2(0xC6CA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6CB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6CC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, MB2(0xC6CD), MB2(0xC6CE), + MB2(0xC6CF), 0x0000, 0x0000, 0x0000, + MB2(0xC6D0), 0x0000, MB2(0xC6D1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6D2), + 0x0000, MB2(0xC6D3), MB2(0xC6D4), 0x0000, + 0x0000, 0x0000, MB2(0xC6D5), MB2(0xC6D6), + 0x0000, 0x0000, 0x0000, MB2(0xC6D7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6D8), MB2(0xC6D9), + 0x0000, MB2(0xC6DA), 0x0000, MB2(0xC6DB), + 0x0000, 0x0000, MB2(0xC6DC), 0x0000, + MB2(0xC6DD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6DE), 0x0000, MB2(0xC6DF), + MB2(0xC6E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7B6), + 0x0000, 0x0000, 0x0000, MB2(0xC6E1), + 0x0000, MB2(0xC6E2), 0x0000, MB2(0xC6E3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6E4), 0x0000, MB2(0xC6E5), 0x0000, + MB2(0xC6E6), MB2(0xC6E7), 0x0000, MB2(0xC6E8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, MB2(0xC6E9), MB2(0xC6EA), MB2(0xC6EB), + 0x0000, MB2(0xC6EC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6ED), MB2(0xC6EE), 0x0000, MB2(0xC6EF), + MB2(0xC6F0), 0x0000, 0x0000, 0x0000, + MB2(0xC6F1), 0x0000, 0x0000, MB2(0xC6F2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6F3), 0x0000, MB2(0xC6F4), 0x0000, + MB2(0xC6F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6F6), 0x0000, /* 6CC0 */ + 0x0000, 0x0000, MB2(0xC6F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6F8), 0x0000, MB2(0xC6F9), + MB2(0xC6FA), MB2(0xC6FB), MB2(0xC6FC), 0x0000, + MB2(0xC6FD), 0x0000, MB2(0xC6FE), 0x0000, + 0x0000, 0x0000, MB2(0xC7A1), 0x0000, + MB2(0xC7A2), 0x0000, 0x0000, 0x0000, + MB2(0xC7A3), 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7A4), + 0x0000, MB2(0xC7A5), 0x0000, MB2(0xC7A6), + MB2(0xC7A7), 0x0000, MB2(0xC7A8), 0x0000, + 0x0000, 0x0000, MB2(0xC7A9), 0x0000, + MB2(0xC7AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + MB2(0xC7AB), 0x0000, 0x0000, MB2(0xC7AC), + 0x0000, 0x0000, MB2(0xC7AD), 0x0000, + 0x0000, 0x0000, MB2(0xC7AE), MB2(0xC7AF), + 0x0000, MB2(0xC7B0), 0x0000, MB2(0xC7B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, MB2(0xC7B3), MB2(0xC7B4), + MB2(0xC7B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7B7), MB2(0xC7B8), + 0x0000, MB2(0xC7B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7BA), 0x0000, 0x0000, + MB2(0xC7BB), 0x0000, 0x0000, MB2(0xC7BC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7BE), MB2(0xC7BF), + 0x0000, MB2(0xC7C0), 0x0000, 0x0000, /* 6D60 */ + 0x0000, MB2(0xC7C1), 0x0000, MB2(0xC7C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7C3), + MB2(0xC7C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7C5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7C6), 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7C8), MB2(0xC7C9), 0x0000, + MB2(0xC7CA), 0x0000, MB2(0xC7CB), MB2(0xC7CC), + MB2(0xC7CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7CE), 0x0000, + MB2(0xC7CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7D0), 0x0000, 0x0000, MB2(0xC7D1), + 0x0000, MB2(0xC7D2), 0x0000, 0x0000, + 0x0000, MB2(0xC7D3), 0x0000, MB2(0xC7D4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + MB2(0xC7D5), 0x0000, 0x0000, 0x0000, + MB2(0xC7D6), 0x0000, MB2(0xC7D7), 0x0000, + 0x0000, 0x0000, MB2(0xC7D8), MB2(0xC7D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7DA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7DB), + 0x0000, MB2(0xC7DC), 0x0000, MB2(0xC7DD), + MB2(0xC7DE), 0x0000, MB2(0xC7DF), 0x0000, /* 6DE0 */ + 0x0000, MB2(0xC7E0), 0x0000, 0x0000, + 0x0000, MB2(0xC7E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7E2), + MB2(0xC7E3), 0x0000, MB2(0xF4CC), 0x0000, + MB2(0xC7E4), 0x0000, MB2(0xC7E5), 0x0000, + MB2(0xF4CB), 0x0000, 0x0000, 0x0000, + MB2(0xC7E6), 0x0000, 0x0000, 0x0000, + MB2(0xC7E7), 0x0000, 0x0000, 0x0000, /* 6E00 */ + MB2(0xC7E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7E9), 0x0000, + 0x0000, 0x0000, MB2(0xC7EA), 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7EB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7EC), 0x0000, + 0x0000, 0x0000, MB2(0xC7ED), 0x0000, + 0x0000, MB2(0xC7EE), 0x0000, MB2(0xC7EF), + MB2(0xC7F0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + MB2(0xC7F1), MB2(0xC7F2), 0x0000, 0x0000, + MB2(0xC7F3), MB2(0xC7F4), 0x0000, MB2(0xC7F5), + 0x0000, 0x0000, 0x0000, MB2(0xC7F6), + 0x0000, MB2(0xC7F7), MB2(0xC7F8), MB2(0xC7F9), + MB2(0xC7FA), 0x0000, 0x0000, MB2(0xC7FB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7FC), MB2(0xC7FD), MB2(0xC7FE), 0x0000, + 0x0000, 0x0000, MB2(0xC8A1), MB2(0xC8A2), /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8A3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8A5), + 0x0000, MB2(0xC8A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8AA), 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC8AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8AC), MB2(0xC8AD), 0x0000, + 0x0000, MB2(0xC8AE), 0x0000, MB2(0xC8AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8B0), + 0x0000, 0x0000, 0x0000, MB2(0xC8B1), + MB2(0xC8B2), MB2(0xC8B3), 0x0000, MB2(0xC8B4), /* 6EC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC8B5), + MB2(0xC8B6), 0x0000, MB2(0xC8B7), 0x0000, + 0x0000, MB2(0xC8B8), MB2(0xC8B9), MB2(0xC8BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8BB), + 0x0000, MB2(0xC8BC), MB2(0xC8BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8BE), 0x0000, MB2(0xC8BF), + 0x0000, MB2(0xC8C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + MB2(0xC8C1), 0x0000, 0x0000, 0x0000, + MB2(0xC8C2), 0x0000, MB2(0xC8C3), 0x0000, + MB2(0xC8C4), MB2(0xC8C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8C6), 0x0000, + MB2(0xC8C7), 0x0000, MB2(0xC8C8), MB2(0xC8C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, MB2(0xC8CA), 0x0000, + 0x0000, MB2(0xC8CB), MB2(0xC8CC), 0x0000, + 0x0000, MB2(0xC8D3), 0x0000, MB2(0xC8CD), + MB2(0xC8CE), 0x0000, 0x0000, MB2(0xC8CF), + 0x0000, 0x0000, MB2(0xC8D0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8D1), + MB2(0xC8D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8D4), + 0x0000, MB2(0xC8D5), MB2(0xC8D6), MB2(0xC8D7), + 0x0000, 0x0000, 0x0000, MB2(0xC8D8), + 0x0000, MB2(0xC8D9), MB2(0xC8DA), 0x0000, + 0x0000, MB2(0xC8DB), MB2(0xC8DC), 0x0000, + 0x0000, MB2(0xC8DD), MB2(0xC8DE), 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8DF), 0x0000, 0x0000, 0x0000, + MB2(0xC8E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8E1), MB2(0xC8E2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8E3), /* 6F80 */ + 0x0000, 0x0000, 0x0000, MB2(0xC8E4), + MB2(0xC8E5), 0x0000, 0x0000, MB2(0xC8E6), + MB2(0xC8E7), MB2(0xC8E8), 0x0000, 0x0000, + MB2(0xC8E9), 0x0000, MB2(0xC8EA), MB2(0xC8EB), + MB2(0xC8EC), 0x0000, MB2(0xC8ED), 0x0000, + 0x0000, 0x0000, MB2(0xC8EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8EF), + MB2(0xC8F0), 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, MB2(0xC8F1), MB2(0xC8F2), MB2(0xC8F3), + MB2(0xC8F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8F5), MB2(0xC8F6), + MB2(0xC8F7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8F8), MB2(0xC8F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8FA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, MB2(0xC8FB), 0x0000, MB2(0xC8FC), + MB2(0xC8FD), 0x0000, MB2(0xC8FE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9A1), 0x0000, + 0x0000, 0x0000, MB2(0xC9A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9A3), MB2(0xC9A4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9A5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9A6), 0x0000, 0x0000, + 0x0000, MB2(0xC9A7), 0x0000, 0x0000, + MB2(0xC9A8), MB2(0xC9A9), 0x0000, 0x0000, + MB2(0xC9AA), 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, MB2(0xC9AB), MB2(0xC9AC), MB2(0xC9AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9B0), 0x0000, 0x0000, MB2(0xC9B1), /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF4CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9B2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9B3), 0x0000, 0x0000, MB2(0xC9B4), + 0x0000, MB2(0xC9B5), 0x0000, 0x0000, + MB2(0xC9B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9B7), /* 7040 */ + MB2(0xC9B8), 0x0000, 0x0000, 0x0000, + MB2(0xC9B9), MB2(0xC9BA), MB2(0xC9BB), MB2(0xC9BC), + 0x0000, 0x0000, MB2(0xC9C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9BD), MB2(0xC9BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9BF), MB2(0xC9C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + MB2(0xC9C2), MB2(0xC9C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9C4), 0x0000, MB2(0xC9C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9C6), MB2(0xC9C7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9C8), 0x0000, + 0x0000, MB2(0xC9C9), 0x0000, 0x0000, /* 7080 */ + 0x0000, MB2(0xC9CA), MB2(0xC9CB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9CC), MB2(0xC9CD), MB2(0xC9CE), MB2(0xC9CF), + MB2(0xC9D0), 0x0000, 0x0000, MB2(0xC9D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + MB2(0xC9D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9D3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9D4), MB2(0xC9D5), 0x0000, 0x0000, + MB2(0xC9D6), 0x0000, 0x0000, MB2(0xC9D7), + 0x0000, 0x0000, 0x0000, MB2(0xF4AE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9D9), 0x0000, MB2(0xC9DA), + MB2(0xC9DB), MB2(0xC9DC), MB2(0xC9DD), 0x0000, + MB2(0xC9DE), 0x0000, 0x0000, 0x0000, + MB2(0xC9DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + MB2(0xC9E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9E1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9E2), /* 7100 */ + MB2(0xC9E3), MB2(0xC9E4), MB2(0xC9E5), MB2(0xC9E6), + 0x0000, 0x0000, 0x0000, MB2(0xC9E7), + MB2(0xC9E8), 0x0000, 0x0000, MB2(0xC9E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9EA), 0x0000, + MB2(0xC9EB), 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9EC), + 0x0000, MB2(0xC9ED), 0x0000, MB2(0xC9EE), + MB2(0xC9EF), MB2(0xC9F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9F2), 0x0000, 0x0000, /* 7140 */ + 0x0000, MB2(0xC9F3), MB2(0xC9F4), MB2(0xC9F5), + 0x0000, 0x0000, MB2(0xC9F6), MB2(0xC9F7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9F8), 0x0000, MB2(0xC9F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9FA), + 0x0000, 0x0000, MB2(0xC9FB), 0x0000, + MB2(0xC9FC), 0x0000, MB2(0xC9FD), 0x0000, + MB2(0xC9FE), 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAA2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA3), 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, MB2(0xCAA4), 0x0000, MB2(0xCAA5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAA7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAA8), MB2(0xCAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAAA), 0x0000, MB2(0xCAAB), 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAAC), + MB2(0xCAAD), 0x0000, MB2(0xCAAE), MB2(0xCAAF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAB1), + MB2(0xCAB2), MB2(0xCAB3), 0x0000, 0x0000, /* 71C0 */ + MB2(0xCAB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAB5), + MB2(0xCAB6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAB7), + 0x0000, 0x0000, MB2(0xCAB8), 0x0000, + 0x0000, MB2(0xCAB9), MB2(0xCABA), 0x0000, + MB2(0xCABB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCABC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCABD), 0x0000, + MB2(0xCABE), 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, MB2(0xCABF), + MB2(0xCAC0), MB2(0xCAC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC2), + 0x0000, 0x0000, 0x0000, MB2(0xCAC3), + 0x0000, 0x0000, MB2(0xCAC4), 0x0000, + 0x0000, MB2(0xCAC5), 0x0000, MB2(0xCAC6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + MB2(0xCAC7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC8), + 0x0000, 0x0000, 0x0000, MB2(0xCAC9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCACA), 0x0000, 0x0000, 0x0000, + MB2(0xCACB), MB2(0xCACC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCACD), MB2(0xCACE), MB2(0xCACF), /* 7240 */ + 0x0000, MB2(0xCAD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAD1), MB2(0xCAD2), + MB2(0xCAD3), 0x0000, 0x0000, MB2(0xCAD4), + 0x0000, MB2(0xCAD5), MB2(0xCAD6), 0x0000, + 0x0000, 0x0000, MB2(0xCAD7), 0x0000, + MB2(0xCAD8), 0x0000, MB2(0xCAD9), 0x0000, + MB2(0xCADA), 0x0000, 0x0000, MB2(0xCADB), /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCADC), 0x0000, 0x0000, MB2(0xCADD), + 0x0000, 0x0000, MB2(0xCADE), MB2(0xCADF), + 0x0000, MB2(0xCAE0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAE1), + MB2(0xCAE2), 0x0000, 0x0000, MB2(0xCAE3), + MB2(0xCAE4), 0x0000, 0x0000, MB2(0xCAE5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + MB2(0xCAE6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAE7), 0x0000, 0x0000, + 0x0000, MB2(0xCAE8), MB2(0xCAE9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAEA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAEB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAEC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAED), MB2(0xCAEE), 0x0000, + 0x0000, MB2(0xCAEF), 0x0000, 0x0000, + MB2(0xCAF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAF1), 0x0000, + 0x0000, MB2(0xCAF2), 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCAF3), + 0x0000, MB2(0xCAF4), 0x0000, 0x0000, + MB2(0xCAF5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAF6), MB2(0xCAF7), 0x0000, + MB2(0xCAF8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, MB2(0xCAFA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAFB), + MB2(0xCAFC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAFD), MB2(0xCAFE), + 0x0000, 0x0000, MB2(0xCBA1), 0x0000, + 0x0000, 0x0000, MB2(0xCBA2), 0x0000, /* 7300 */ + MB2(0xCBA3), MB2(0xCBA4), 0x0000, MB2(0xCBA5), + 0x0000, 0x0000, 0x0000, MB2(0xCBA6), + 0x0000, MB2(0xCBA7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBA8), MB2(0xCBA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBAA), MB2(0xCBAB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBAC), 0x0000, + 0x0000, 0x0000, MB2(0xCBAD), 0x0000, /* 7320 */ + MB2(0xCBAE), 0x0000, 0x0000, MB2(0xCBAF), + MB2(0xCBB0), 0x0000, 0x0000, 0x0000, + MB2(0xCBB1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB2), MB2(0xCBB3), 0x0000, + 0x0000, MB2(0xCBB4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBB5), MB2(0xCBB6), + 0x0000, MB2(0xCBB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBB8), /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB9), 0x0000, 0x0000, + MB2(0xCBBA), 0x0000, MB2(0xCBBB), 0x0000, + 0x0000, 0x0000, MB2(0xCBBC), 0x0000, + MB2(0xCBBD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBBE), MB2(0xCBBF), MB2(0xCBC0), + MB2(0xCBC1), 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, MB2(0xCBC2), MB2(0xCBC3), + 0x0000, MB2(0xCBC4), 0x0000, MB2(0xCBC5), + MB2(0xCBC6), 0x0000, MB2(0xCBC7), MB2(0xCBC8), + 0x0000, MB2(0xCBC9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBCA), + 0x0000, MB2(0xCBCB), 0x0000, 0x0000, + MB2(0xCBCC), 0x0000, 0x0000, 0x0000, + MB2(0xCBCD), MB2(0xCBCE), 0x0000, MB2(0xCBCF), /* 7380 */ + 0x0000, MB2(0xCBD0), MB2(0xCBD1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBD2), 0x0000, + MB2(0xCBD3), 0x0000, 0x0000, MB2(0xCBD4), + 0x0000, MB2(0xCBD5), 0x0000, MB2(0xCBD6), + MB2(0xCBD7), 0x0000, 0x0000, 0x0000, + MB2(0xCBD8), 0x0000, MB2(0xCBD9), MB2(0xCBDA), + MB2(0xCBDB), 0x0000, MB2(0xCBDC), 0x0000, /* 73A0 */ + 0x0000, MB2(0xCBDD), MB2(0xCBDE), 0x0000, + 0x0000, 0x0000, MB2(0xCBDF), MB2(0xCBE0), + 0x0000, MB2(0xCBE1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBE2), 0x0000, MB2(0xCBE3), + 0x0000, MB2(0xCBE4), 0x0000, 0x0000, + MB2(0xCBE5), MB2(0xCBE6), 0x0000, MB2(0xCBE7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, MB2(0xCBE8), MB2(0xCBE9), 0x0000, + 0x0000, MB2(0xCBEA), 0x0000, MB2(0xCBEB), + MB2(0xCBEC), 0x0000, 0x0000, MB2(0xCBED), + 0x0000, 0x0000, MB2(0xCBEE), MB2(0xCBEF), + 0x0000, 0x0000, MB2(0xCBF0), 0x0000, + 0x0000, MB2(0xCBF1), 0x0000, 0x0000, + 0x0000, MB2(0xCBF2), 0x0000, 0x0000, + 0x0000, MB2(0xCBF3), 0x0000, MB2(0xCBF4), /* 73E0 */ + 0x0000, 0x0000, MB2(0xCBF5), MB2(0xCBF6), + 0x0000, MB2(0xCBF7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBF8), MB2(0xCBF9), 0x0000, MB2(0xCBFA), + 0x0000, MB2(0xCBFB), MB2(0xCBFC), MB2(0xCBFD), + 0x0000, MB2(0xCBFE), 0x0000, MB2(0xCCA1), + MB2(0xCCA2), MB2(0xCCA3), 0x0000, 0x0000, /* 7400 */ + MB2(0xCCA4), 0x0000, 0x0000, MB2(0xCCA5), + 0x0000, 0x0000, MB2(0xCCA6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCA7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCA8), MB2(0xCCA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + MB2(0xCCAA), 0x0000, MB2(0xCCAB), 0x0000, + MB2(0xCCAC), MB2(0xCCAD), MB2(0xCCAE), MB2(0xCCAF), + MB2(0xCCB0), MB2(0xCCB1), MB2(0xCCB2), MB2(0xCCB3), + MB2(0xCCB4), MB2(0xCCB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCB7), 0x0000, 0x0000, MB2(0xCCB8), /* 7440 */ + MB2(0xCCB9), 0x0000, MB2(0xCCBA), MB2(0xCCBB), + 0x0000, 0x0000, 0x0000, MB2(0xCCBC), + 0x0000, MB2(0xCCBD), 0x0000, 0x0000, + 0x0000, MB2(0xCCBE), MB2(0xCCBF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCC1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCC2), 0x0000, /* 7460 */ + 0x0000, 0x0000, MB2(0xCCC3), MB2(0xCCC4), + MB2(0xCCC5), 0x0000, 0x0000, MB2(0xCCC6), + 0x0000, MB2(0xCCC7), MB2(0xCCC8), 0x0000, + 0x0000, MB2(0xCCC9), MB2(0xCCCA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCCB), MB2(0xCCCC), 0x0000, 0x0000, /* 7480 */ + 0x0000, MB2(0xCCCD), MB2(0xCCCE), MB2(0xCCCF), + 0x0000, MB2(0xCCD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCD1), + MB2(0xCCD2), MB2(0xCCD3), MB2(0xCCD4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCD5), MB2(0xCCD6), MB2(0xCCD7), 0x0000, + MB2(0xCCD8), 0x0000, 0x0000, MB2(0xCCD9), + MB2(0xCCDA), MB2(0xCCDB), 0x0000, MB2(0xCCDC), /* 74A0 */ + 0x0000, 0x0000, MB2(0xCCDD), 0x0000, + MB2(0xCCDE), MB2(0xCCDF), MB2(0xCCE0), MB2(0xCCE1), + 0x0000, 0x0000, MB2(0xCCE2), MB2(0xCCE3), + 0x0000, MB2(0xCCE4), MB2(0xCCE5), 0x0000, + 0x0000, MB2(0xCCE6), 0x0000, 0x0000, + 0x0000, MB2(0xCCE7), 0x0000, MB2(0xCCE8), + 0x0000, 0x0000, 0x0000, MB2(0xCCE9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCEA), MB2(0xCCEB), 0x0000, 0x0000, + MB2(0xCCEC), 0x0000, 0x0000, 0x0000, + MB2(0xCCED), 0x0000, 0x0000, MB2(0xCCEE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCEF), 0x0000, MB2(0xCCF0), MB2(0xCCF1), + 0x0000, 0x0000, MB2(0xCCF2), MB2(0xCCF3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + MB2(0xCCF4), 0x0000, 0x0000, 0x0000, + MB2(0xCCF5), 0x0000, MB2(0xCCF6), MB2(0xCCF7), + 0x0000, 0x0000, 0x0000, MB2(0xCCF8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCFA), MB2(0xCCFB), + MB2(0xCCFC), 0x0000, 0x0000, MB2(0xCCFD), + 0x0000, MB2(0xF4D0), 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, MB2(0xCCFE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDA1), 0x0000, + 0x0000, 0x0000, MB2(0xCDA2), MB2(0xCDA3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDA4), MB2(0xCDA5), 0x0000, 0x0000, /* 7520 */ + MB2(0xCDA6), 0x0000, 0x0000, MB2(0xCDA7), + 0x0000, MB2(0xCDA8), MB2(0xCDA9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDAA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDAB), 0x0000, + 0x0000, MB2(0xCDAC), 0x0000, 0x0000, + 0x0000, MB2(0xCDAD), MB2(0xCDAE), MB2(0xCDAF), + MB2(0xCDB0), 0x0000, 0x0000, MB2(0xCDB1), /* 7540 */ + 0x0000, 0x0000, 0x0000, MB2(0xCDB2), + MB2(0xCDB3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDB4), 0x0000, + MB2(0xCDB5), 0x0000, MB2(0xCDB6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDB7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDB8), MB2(0xCDB9), + 0x0000, MB2(0xCDBA), 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDBB), + 0x0000, MB2(0xCDBC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDBD), MB2(0xCDBE), MB2(0xCDBF), + MB2(0xCDC0), MB2(0xCDC1), MB2(0xCDC2), 0x0000, + 0x0000, MB2(0xCDC3), 0x0000, 0x0000, /* 7580 */ + 0x0000, MB2(0xCDC4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDC5), 0x0000, MB2(0xCDC6), MB2(0xCDC7), + 0x0000, MB2(0xCDC8), 0x0000, 0x0000, + 0x0000, MB2(0xCDC9), 0x0000, 0x0000, + MB2(0xCDCA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDCB), 0x0000, /* 75A0 */ + MB2(0xCDCC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDCD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDCE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDCF), + MB2(0xCDD0), MB2(0xCDD1), 0x0000, 0x0000, /* 75C0 */ + MB2(0xCDD2), 0x0000, MB2(0xCDD3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDD4), 0x0000, MB2(0xCDD5), MB2(0xCDD6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDD7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDD8), 0x0000, 0x0000, MB2(0xCDD9), + MB2(0xCDDA), MB2(0xCDDB), 0x0000, 0x0000, /* 75E0 */ + MB2(0xCDDC), 0x0000, 0x0000, MB2(0xCDDD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDDE), 0x0000, MB2(0xCDDF), MB2(0xCDE0), + 0x0000, MB2(0xCDE1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDE3), 0x0000, MB2(0xCDE4), MB2(0xCDE5), /* 7600 */ + MB2(0xCDE6), 0x0000, 0x0000, MB2(0xCDE7), + MB2(0xCDE8), 0x0000, MB2(0xCDE9), 0x0000, + MB2(0xCDEA), 0x0000, 0x0000, MB2(0xCDEB), + 0x0000, 0x0000, MB2(0xCDEC), MB2(0xCDED), + 0x0000, MB2(0xCDEE), MB2(0xCDEF), 0x0000, + 0x0000, MB2(0xCDF0), 0x0000, MB2(0xCDF1), + MB2(0xCDF2), MB2(0xCDF3), MB2(0xCDF4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDF5), /* 7620 */ + 0x0000, MB2(0xCDF6), MB2(0xCDF7), 0x0000, + 0x0000, MB2(0xCDF8), 0x0000, 0x0000, + 0x0000, MB2(0xCDF9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDFA), MB2(0xCDFB), + 0x0000, MB2(0xCDFC), 0x0000, 0x0000, + MB2(0xCDFD), MB2(0xCDFE), MB2(0xCEA1), 0x0000, + MB2(0xCEA2), 0x0000, 0x0000, 0x0000, + MB2(0xCEA4), MB2(0xCEA5), 0x0000, MB2(0xCEA6), /* 7640 */ + MB2(0xCEA7), MB2(0xCEA8), 0x0000, 0x0000, + 0x0000, MB2(0xCEA9), MB2(0xCEA3), MB2(0xCEAA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEAB), 0x0000, 0x0000, + 0x0000, MB2(0xCEAC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEAD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + MB2(0xCEAE), MB2(0xCEAF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB0), MB2(0xCEB1), MB2(0xCEB2), + 0x0000, MB2(0xCEB3), 0x0000, 0x0000, + MB2(0xCEB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB5), MB2(0xF4D1), 0x0000, /* 7680 */ + 0x0000, MB2(0xCEB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEB7), MB2(0xCEB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEBA), + MB2(0xCEBB), MB2(0xCEBC), MB2(0xF4D2), MB2(0xCEBD), + MB2(0xCEBE), 0x0000, MB2(0xCEBF), MB2(0xCEC0), /* 76A0 */ + MB2(0xCEC1), MB2(0xCEC2), MB2(0xCEC3), MB2(0xCEC4), + MB2(0xCEC5), 0x0000, MB2(0xCEC6), 0x0000, + 0x0000, MB2(0xCEC7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEC8), 0x0000, 0x0000, + 0x0000, MB2(0xCEC9), 0x0000, 0x0000, /* 76C0 */ + 0x0000, MB2(0xCECA), 0x0000, 0x0000, + 0x0000, MB2(0xCECB), 0x0000, MB2(0xCECC), + MB2(0xCECD), 0x0000, MB2(0xCECE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCECF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCED0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCED1), 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, MB2(0xCED2), 0x0000, + MB2(0xCED3), 0x0000, 0x0000, 0x0000, + MB2(0xCED4), 0x0000, 0x0000, 0x0000, + MB2(0xCED5), MB2(0xCED6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCED7), 0x0000, + 0x0000, MB2(0xCED8), 0x0000, 0x0000, + MB2(0xCED9), 0x0000, 0x0000, 0x0000, + MB2(0xCEDA), 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, MB2(0xCEDB), 0x0000, + 0x0000, 0x0000, MB2(0xCEDC), 0x0000, + 0x0000, 0x0000, MB2(0xCEDD), 0x0000, + 0x0000, 0x0000, MB2(0xCEDE), 0x0000, + MB2(0xCEDF), MB2(0xCEE0), 0x0000, MB2(0xCEE1), + 0x0000, MB2(0xCEE2), MB2(0xCEE3), 0x0000, + MB2(0xCEE4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEE5), 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEE6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEE7), MB2(0xCEE8), MB2(0xCEE9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEEA), MB2(0xCEEB), MB2(0xCEEC), 0x0000, + 0x0000, MB2(0xCEED), 0x0000, 0x0000, + 0x0000, MB2(0xCEEE), MB2(0xCEEF), 0x0000, + 0x0000, 0x0000, MB2(0xCEF0), 0x0000, /* 7740 */ + 0x0000, MB2(0xCEF1), MB2(0xCEF2), 0x0000, + 0x0000, 0x0000, MB2(0xCEF3), 0x0000, + 0x0000, MB2(0xCEF4), MB2(0xCEF5), MB2(0xCEF6), + 0x0000, 0x0000, MB2(0xCEF7), 0x0000, + 0x0000, 0x0000, MB2(0xCEF8), MB2(0xCEF9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEFA), 0x0000, MB2(0xCEFB), MB2(0xCEFC), + MB2(0xCEFD), 0x0000, MB2(0xCEFE), 0x0000, /* 7760 */ + MB2(0xCFA1), 0x0000, 0x0000, MB2(0xCFA2), + 0x0000, 0x0000, MB2(0xCFA3), 0x0000, + MB2(0xCFA4), 0x0000, 0x0000, 0x0000, + MB2(0xCFA5), 0x0000, MB2(0xCFA6), MB2(0xCFA7), + MB2(0xCFA8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFA9), 0x0000, + 0x0000, MB2(0xCFAA), 0x0000, 0x0000, + MB2(0xCFAB), 0x0000, 0x0000, 0x0000, /* 7780 */ + MB2(0xCFAC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFAD), MB2(0xCFAE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFAF), MB2(0xCFB0), MB2(0xCFB1), 0x0000, + 0x0000, 0x0000, MB2(0xCFB2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFB3), + 0x0000, 0x0000, MB2(0xCFB4), 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCFB5), + 0x0000, 0x0000, MB2(0xCFB6), 0x0000, + 0x0000, 0x0000, MB2(0xCFB7), MB2(0xCFB8), + 0x0000, MB2(0xCFB9), 0x0000, 0x0000, + 0x0000, MB2(0xCFBA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFBB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFBC), /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFBD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFBE), MB2(0xCFBF), 0x0000, + 0x0000, MB2(0xCFC0), 0x0000, 0x0000, + 0x0000, MB2(0xCFC1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFC2), MB2(0xCFC3), + MB2(0xCFC4), 0x0000, 0x0000, 0x0000, /* 77E0 */ + MB2(0xCFC5), 0x0000, MB2(0xCFC6), 0x0000, + 0x0000, 0x0000, MB2(0xCFC7), 0x0000, + MB2(0xCFC8), 0x0000, 0x0000, 0x0000, + MB2(0xCFC9), MB2(0xCFCA), 0x0000, 0x0000, + MB2(0xCFCB), 0x0000, 0x0000, 0x0000, + MB2(0xCFCC), 0x0000, 0x0000, MB2(0xCFCD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, MB2(0xCFCE), MB2(0xCFCF), 0x0000, + 0x0000, MB2(0xCFD0), 0x0000, 0x0000, + 0x0000, MB2(0xCFD1), MB2(0xCFD2), 0x0000, + 0x0000, MB2(0xCFD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFD4), 0x0000, 0x0000, + 0x0000, MB2(0xCFD5), MB2(0xCFD6), MB2(0xCFD7), /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFD8), MB2(0xCFD9), 0x0000, + MB2(0xCFDA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFDB), 0x0000, MB2(0xCFDC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFDD), /* 7840 */ + MB2(0xCFDE), 0x0000, 0x0000, MB2(0xCFDF), + MB2(0xCFE0), 0x0000, 0x0000, 0x0000, + MB2(0xCFE1), 0x0000, MB2(0xCFE2), 0x0000, + 0x0000, 0x0000, MB2(0xCFE3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFE4), 0x0000, MB2(0xCFE5), 0x0000, + MB2(0xCFE6), MB2(0xCFE7), 0x0000, MB2(0xCFE8), /* 7860 */ + MB2(0xCFE9), 0x0000, 0x0000, 0x0000, + MB2(0xCFEA), 0x0000, MB2(0xCFEB), 0x0000, + 0x0000, 0x0000, MB2(0xCFEC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFED), 0x0000, + 0x0000, 0x0000, MB2(0xCFEE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFEF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFF0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFF1), 0x0000, 0x0000, 0x0000, + MB2(0xCFF2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFF4), MB2(0xCFF5), MB2(0xCFF6), + 0x0000, MB2(0xCFF3), 0x0000, 0x0000, /* 78A0 */ + MB2(0xCFF7), 0x0000, 0x0000, 0x0000, + MB2(0xCFF8), 0x0000, 0x0000, 0x0000, + MB2(0xCFF9), MB2(0xCFFA), 0x0000, 0x0000, + MB2(0xCFFB), MB2(0xCFFC), MB2(0xCFFD), MB2(0xCFFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0A1), + 0x0000, MB2(0xD0A2), 0x0000, MB2(0xD0A3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD0A4), + MB2(0xD0A5), MB2(0xD0A6), 0x0000, 0x0000, + MB2(0xD0A7), 0x0000, MB2(0xD0A8), 0x0000, + 0x0000, 0x0000, MB2(0xD0A9), MB2(0xD0AA), + 0x0000, MB2(0xD0AB), MB2(0xD0AC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0AE), + 0x0000, 0x0000, 0x0000, MB2(0xD0AF), + MB2(0xD0B0), MB2(0xD0B1), 0x0000, 0x0000, /* 78E0 */ + MB2(0xD0AD), 0x0000, MB2(0xD0B2), 0x0000, + 0x0000, 0x0000, MB2(0xD0B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0B4), MB2(0xD0B5), + 0x0000, 0x0000, MB2(0xD0B7), MB2(0xD0B8), + 0x0000, 0x0000, MB2(0xD0B9), MB2(0xD0BA), + 0x0000, 0x0000, 0x0000, MB2(0xD0BB), + MB2(0xD0B6), 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, MB2(0xD0BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0BD), 0x0000, 0x0000, 0x0000, + MB2(0xD0BE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0BF), 0x0000, + MB2(0xD0C0), 0x0000, MB2(0xD0C1), MB2(0xD0C2), + MB2(0xD0C3), 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, MB2(0xD0C4), 0x0000, MB2(0xD0C5), + 0x0000, MB2(0xD0C6), 0x0000, 0x0000, + 0x0000, MB2(0xD0C7), 0x0000, 0x0000, + MB2(0xF4D4), MB2(0xD0C8), 0x0000, 0x0000, + MB2(0xD0C9), MB2(0xD0CA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0CB), + 0x0000, MB2(0xD0CC), 0x0000, MB2(0xD0CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + MB2(0xD0CE), MB2(0xD0CF), MB2(0xD0D0), 0x0000, + 0x0000, 0x0000, MB2(0xD0D1), MB2(0xD0D2), + 0x0000, 0x0000, 0x0000, MB2(0xD0D3), + 0x0000, MB2(0xD0D4), 0x0000, 0x0000, + MB2(0xD0D5), 0x0000, 0x0000, 0x0000, + MB2(0xD0D6), 0x0000, 0x0000, MB2(0xD0D7), + MB2(0xD0D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, MB2(0xD0D9), + 0x0000, MB2(0xD0DA), 0x0000, MB2(0xD0DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0DD), 0x0000, MB2(0xD0DE), + MB2(0xD0DF), 0x0000, MB2(0xD0E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0E1), + MB2(0xD0E2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0E3), 0x0000, MB2(0xD0E4), + MB2(0xD0E5), MB2(0xD0E6), MB2(0xD0E7), 0x0000, + MB2(0xD0E8), 0x0000, 0x0000, MB2(0xD0E9), + MB2(0xD0EA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0EB), 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0EC), MB2(0xD0ED), 0x0000, MB2(0xD0EE), + 0x0000, 0x0000, 0x0000, MB2(0xD0EF), + 0x0000, MB2(0xD0F0), 0x0000, 0x0000, + MB2(0xD0F1), 0x0000, 0x0000, 0x0000, + MB2(0xD0F2), 0x0000, 0x0000, MB2(0xD0F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0F4), 0x0000, /* 79C0 */ + MB2(0xD0F5), 0x0000, 0x0000, MB2(0xD0F6), + MB2(0xD0F7), 0x0000, MB2(0xD0F8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0F9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0FA), 0x0000, MB2(0xD0FB), 0x0000, + 0x0000, 0x0000, MB2(0xD0FC), 0x0000, + 0x0000, MB2(0xD0FD), MB2(0xD0FE), 0x0000, + MB2(0xD1A1), 0x0000, MB2(0xD1A2), 0x0000, /* 79E0 */ + 0x0000, MB2(0xD1A3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1A4), MB2(0xD1A5), + 0x0000, MB2(0xD1A6), 0x0000, 0x0000, + 0x0000, MB2(0xD1A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1A8), 0x0000, 0x0000, 0x0000, + MB2(0xD1A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1AA), MB2(0xD1AB), /* 7A00 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1AC), + 0x0000, MB2(0xD1AD), MB2(0xD1AE), 0x0000, + MB2(0xD1AF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1B0), 0x0000, 0x0000, + 0x0000, MB2(0xD1B1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1B2), + 0x0000, 0x0000, MB2(0xD1B3), 0x0000, + 0x0000, MB2(0xD1B4), 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1B5), + 0x0000, 0x0000, 0x0000, MB2(0xD1B6), + 0x0000, MB2(0xD1B7), 0x0000, MB2(0xD1B8), + MB2(0xD1B9), 0x0000, 0x0000, 0x0000, + MB2(0xD1BA), MB2(0xD1BB), 0x0000, 0x0000, + MB2(0xD1BC), MB2(0xD1BD), MB2(0xD1BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + MB2(0xD1BF), MB2(0xD1C0), 0x0000, MB2(0xD1C1), + MB2(0xD1C2), 0x0000, 0x0000, 0x0000, + MB2(0xD1C3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1C4), MB2(0xD1C5), 0x0000, + 0x0000, MB2(0xD1C6), 0x0000, 0x0000, + MB2(0xD1C7), MB2(0xD1C8), 0x0000, MB2(0xD1C9), + MB2(0xD1CA), 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, MB2(0xD1CB), 0x0000, MB2(0xD1CC), + 0x0000, 0x0000, MB2(0xD1CD), 0x0000, + 0x0000, MB2(0xD1CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1CF), 0x0000, 0x0000, + MB2(0xD1D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1D1), 0x0000, + MB2(0xD1D2), 0x0000, MB2(0xD1D3), 0x0000, /* 7A80 */ + 0x0000, MB2(0xD1D4), MB2(0xD1D5), 0x0000, + 0x0000, 0x0000, MB2(0xD1D6), MB2(0xD1D7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1D8), MB2(0xD1D9), 0x0000, 0x0000, + MB2(0xD1DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1DB), 0x0000, + MB2(0xD1DC), 0x0000, 0x0000, MB2(0xD1DD), /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1DF), + 0x0000, MB2(0xD1E0), 0x0000, 0x0000, + 0x0000, MB2(0xD1E1), 0x0000, MB2(0xD1E2), + MB2(0xD1E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, MB2(0xD1E4), 0x0000, + 0x0000, MB2(0xD1E5), 0x0000, 0x0000, + MB2(0xD1E6), 0x0000, MB2(0xD1E7), 0x0000, + 0x0000, MB2(0xD1E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, MB2(0xF4D9), + MB2(0xD1EA), MB2(0xD1EB), 0x0000, MB2(0xD1EC), + MB2(0xD1ED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1EE), 0x0000, 0x0000, + MB2(0xD1EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1F0), + 0x0000, MB2(0xD1F1), MB2(0xD1F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1F5), + 0x0000, 0x0000, 0x0000, MB2(0xD1F6), /* 7B20 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1F7), + 0x0000, MB2(0xD1F8), MB2(0xD1F9), MB2(0xD1FA), + 0x0000, MB2(0xD1FB), MB2(0xD1FC), MB2(0xD1FD), + MB2(0xD1FE), MB2(0xD2A1), 0x0000, 0x0000, + MB2(0xD2A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2A3), 0x0000, MB2(0xD2A4), + MB2(0xD2A5), MB2(0xD2A6), 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, MB2(0xD2A7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2AA), 0x0000, 0x0000, 0x0000, /* 7B60 */ + MB2(0xD2AB), 0x0000, MB2(0xD2AC), 0x0000, + 0x0000, MB2(0xD2AD), MB2(0xD2AE), 0x0000, + 0x0000, MB2(0xD2AF), 0x0000, MB2(0xD2B0), + 0x0000, 0x0000, MB2(0xD2B1), MB2(0xD2B2), + 0x0000, 0x0000, 0x0000, MB2(0xD2B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + MB2(0xD2B4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2B5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2B6), 0x0000, + MB2(0xD2B7), MB2(0xD2B8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2B9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD2BA), + 0x0000, 0x0000, MB2(0xD2BB), 0x0000, + MB2(0xD2BC), 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, MB2(0xD2BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2BE), 0x0000, 0x0000, MB2(0xD2BF), + MB2(0xD2C0), 0x0000, MB2(0xD2C1), 0x0000, + 0x0000, MB2(0xD2C2), MB2(0xD2C3), 0x0000, + 0x0000, 0x0000, MB2(0xD2C4), MB2(0xD2C5), + MB2(0xD2C6), MB2(0xD2C7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2C8), 0x0000, /* 7BC0 */ + 0x0000, MB2(0xD2C9), 0x0000, 0x0000, + MB2(0xD2CA), 0x0000, MB2(0xD2CB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2CC), 0x0000, MB2(0xD2CD), MB2(0xD2CE), + 0x0000, MB2(0xD2CF), MB2(0xD2D0), MB2(0xD2D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2D2), 0x0000, MB2(0xD2D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2D4), 0x0000, + MB2(0xD2D5), MB2(0xD2D6), 0x0000, 0x0000, + MB2(0xD2D7), MB2(0xD2D8), MB2(0xD2D9), 0x0000, + MB2(0xD2DA), 0x0000, MB2(0xD2DB), 0x0000, + 0x0000, MB2(0xD2DC), MB2(0xD2DD), MB2(0xD2DE), /* 7C00 */ + MB2(0xD2DF), 0x0000, MB2(0xD2E0), 0x0000, + 0x0000, MB2(0xD2E1), 0x0000, MB2(0xD2E2), + MB2(0xD2E3), 0x0000, MB2(0xD2E4), MB2(0xD2E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2E6), 0x0000, MB2(0xD2E7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2E8), 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, MB2(0xD2E9), MB2(0xD2EA), 0x0000, + MB2(0xD2EB), 0x0000, 0x0000, 0x0000, + MB2(0xD2EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2ED), 0x0000, MB2(0xD2EE), + MB2(0xD2EF), 0x0000, MB2(0xD2F0), 0x0000, + 0x0000, MB2(0xD2F1), MB2(0xD2F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, MB2(0xD2F3), 0x0000, + 0x0000, 0x0000, MB2(0xD2F4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2F6), MB2(0xD2F7), MB2(0xD2F8), + 0x0000, MB2(0xD2F5), 0x0000, 0x0000, + 0x0000, MB2(0xD2F9), MB2(0xD2FA), MB2(0xD2FB), + MB2(0xD2FC), MB2(0xD2FD), MB2(0xD2FE), 0x0000, + 0x0000, MB2(0xD3A1), 0x0000, MB2(0xD3A2), /* 7C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xD3A3), + 0x0000, MB2(0xD3A4), 0x0000, 0x0000, + 0x0000, MB2(0xD3A5), MB2(0xD3A6), 0x0000, + MB2(0xD3A7), 0x0000, MB2(0xD3A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3A9), 0x0000, 0x0000, + MB2(0xD3AA), MB2(0xD3AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, MB2(0xD3AC), MB2(0xD3AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3AE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3AF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3B0), 0x0000, + MB2(0xD3B1), 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, MB2(0xD3B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3B4), MB2(0xD3B5), + 0x0000, 0x0000, MB2(0xD3B6), MB2(0xD3B7), + MB2(0xD3B8), 0x0000, 0x0000, MB2(0xD3B9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + MB2(0xD3BA), 0x0000, 0x0000, MB2(0xD3BB), + MB2(0xD3BC), MB2(0xD3BD), 0x0000, 0x0000, + 0x0000, MB2(0xD3BE), 0x0000, MB2(0xD3BF), + 0x0000, 0x0000, 0x0000, MB2(0xD3C0), + MB2(0xD3C1), MB2(0xD3C2), 0x0000, MB2(0xD3C3), + 0x0000, MB2(0xD3C4), MB2(0xD3C5), 0x0000, + 0x0000, MB2(0xD3C6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, MB2(0xD3C7), 0x0000, + 0x0000, MB2(0xD3C8), 0x0000, MB2(0xD3C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3CA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3CB), /* 7D00 */ + 0x0000, 0x0000, 0x0000, MB2(0xD3CC), + MB2(0xD3CD), MB2(0xD3CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3CF), + 0x0000, MB2(0xD3D0), MB2(0xD3D1), MB2(0xD3D2), + 0x0000, 0x0000, MB2(0xD3D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3D4), MB2(0xD3D5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3D6), /* 7D20 */ + 0x0000, 0x0000, MB2(0xD3D7), 0x0000, + 0x0000, 0x0000, MB2(0xD3D8), 0x0000, + 0x0000, MB2(0xD3D9), 0x0000, 0x0000, + 0x0000, MB2(0xD3DA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3DB), MB2(0xD3DC), MB2(0xD3DD), 0x0000, + MB2(0xD3DE), MB2(0xD3DF), 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, MB2(0xD3E0), + MB2(0xD3E1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3E2), 0x0000, 0x0000, + 0x0000, MB2(0xD3E3), 0x0000, MB2(0xD3E4), + 0x0000, 0x0000, 0x0000, MB2(0xD3E5), + 0x0000, MB2(0xD3E6), MB2(0xD3E7), 0x0000, + MB2(0xD3E8), MB2(0xD3E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, MB2(0xD3EA), 0x0000, MB2(0xD3EB), + 0x0000, 0x0000, MB2(0xD3EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3EE), 0x0000, MB2(0xD3EF), MB2(0xD3F0), + 0x0000, 0x0000, 0x0000, MB2(0xD3F1), + 0x0000, MB2(0xD3F2), MB2(0xD3F3), MB2(0xD3F4), /* 7D80 */ + 0x0000, MB2(0xD3F5), MB2(0xD3F6), 0x0000, + MB2(0xD3F7), 0x0000, 0x0000, MB2(0xD3F8), + MB2(0xD3F9), MB2(0xD3FA), 0x0000, 0x0000, + 0x0000, MB2(0xD3FB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3FC), MB2(0xD3FD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3FE), MB2(0xD4A1), 0x0000, + MB2(0xF4DC), 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, MB2(0xD4A2), MB2(0xD4A3), + 0x0000, 0x0000, MB2(0xD4A4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4A5), + 0x0000, 0x0000, MB2(0xD4A6), MB2(0xD4A7), + 0x0000, MB2(0xD4A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4A9), MB2(0xD4AA), /* 7DC0 */ + MB2(0xD4AB), MB2(0xD4AC), MB2(0xD4AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4AE), MB2(0xD4AF), MB2(0xD4B0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4DD), MB2(0xD4B1), + 0x0000, MB2(0xD4B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4B4), 0x0000, /* 7DE0 */ + 0x0000, MB2(0xD4B5), MB2(0xD4B6), 0x0000, + 0x0000, 0x0000, MB2(0xD4B7), MB2(0xD4B8), + 0x0000, MB2(0xD4B9), 0x0000, 0x0000, + 0x0000, MB2(0xD4BA), 0x0000, 0x0000, + 0x0000, MB2(0xD4BB), MB2(0xD4BC), 0x0000, + 0x0000, MB2(0xD4BD), MB2(0xD4BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B3), 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4BF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4C0), MB2(0xD4C1), 0x0000, 0x0000, + 0x0000, MB2(0xD4C2), 0x0000, MB2(0xD4C3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4C4), MB2(0xD4C5), 0x0000, 0x0000, + MB2(0xD4C6), 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, MB2(0xD4C7), + MB2(0xD4C8), 0x0000, 0x0000, 0x0000, + MB2(0xD4C9), MB2(0xD4CA), 0x0000, MB2(0xD4CB), + 0x0000, 0x0000, 0x0000, MB2(0xD4CC), + 0x0000, 0x0000, MB2(0xD4CD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4CE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + MB2(0xD4CF), MB2(0xD4D0), 0x0000, MB2(0xD4D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4D2), 0x0000, + MB2(0xD4D3), 0x0000, MB2(0xD4D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4D6), + 0x0000, MB2(0xD4D7), MB2(0xD4D8), 0x0000, /* 7E60 */ + 0x0000, MB2(0xD4D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4DA), + 0x0000, 0x0000, MB2(0xD4DB), MB2(0xD4DC), + 0x0000, 0x0000, 0x0000, MB2(0xD4DD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4DF), 0x0000, + 0x0000, MB2(0xD4E0), 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, MB2(0xD4E1), MB2(0xD4E2), + 0x0000, 0x0000, MB2(0xD4E3), 0x0000, + 0x0000, MB2(0xD4E4), 0x0000, 0x0000, + 0x0000, MB2(0xD4E5), 0x0000, 0x0000, + 0x0000, MB2(0xD4E6), 0x0000, 0x0000, + MB2(0xD4E7), 0x0000, MB2(0xD4E8), 0x0000, + 0x0000, MB2(0xD4E9), MB2(0xD4EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4EC), + MB2(0xD4EB), MB2(0xD4ED), MB2(0xD4EE), MB2(0xD4EF), + 0x0000, 0x0000, 0x0000, MB2(0xD4F0), /* 7F40 */ + MB2(0xD4F1), 0x0000, 0x0000, MB2(0xD4F2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4F3), + 0x0000, 0x0000, MB2(0xD4F4), MB2(0xD4F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4F6), + MB2(0xD4F7), MB2(0xD4F8), 0x0000, 0x0000, + 0x0000, MB2(0xD4F9), 0x0000, MB2(0xD4FA), /* 7F60 */ + MB2(0xD4FB), MB2(0xD4FC), MB2(0xD4FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD4FE), 0x0000, 0x0000, + 0x0000, MB2(0xD5A1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5A2), MB2(0xD5A3), MB2(0xD5A4), + MB2(0xD5A5), 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5A6), + 0x0000, MB2(0xD5A7), 0x0000, MB2(0xD5A8), + MB2(0xD5A9), MB2(0xD5AA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5AB), MB2(0xD5AC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5AD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5AE), MB2(0xD5AF), 0x0000, /* 7FA0 */ + 0x0000, 0x0000, MB2(0xD5B0), 0x0000, + 0x0000, 0x0000, MB2(0xD5B1), 0x0000, + 0x0000, MB2(0xD5B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5B3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5B4), 0x0000, 0x0000, MB2(0xD5B5), + MB2(0xD5B6), 0x0000, 0x0000, MB2(0xD5B7), /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5B9), MB2(0xD5BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5BB), + 0x0000, 0x0000, 0x0000, MB2(0xD5BC), + 0x0000, 0x0000, 0x0000, MB2(0xD5BD), /* 7FE0 */ + 0x0000, MB2(0xD5BE), 0x0000, 0x0000, + MB2(0xD5BF), 0x0000, 0x0000, 0x0000, + MB2(0xD5C0), 0x0000, MB2(0xD5C1), MB2(0xD5C2), + 0x0000, 0x0000, MB2(0xD5C3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5C4), 0x0000, + 0x0000, MB2(0xD5C5), MB2(0xD5C6), MB2(0xD5C7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, MB2(0xD5C8), + MB2(0xD5C9), 0x0000, MB2(0xD5CA), 0x0000, + 0x0000, MB2(0xD5CB), MB2(0xD5CC), MB2(0xD5CD), + 0x0000, MB2(0xD5CE), 0x0000, MB2(0xD5CF), + MB2(0xD5D0), 0x0000, MB2(0xD5D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5D2), MB2(0xD5D3), MB2(0xD5D4), + MB2(0xD5D5), 0x0000, 0x0000, 0x0000, /* 8020 */ + MB2(0xD5D6), 0x0000, MB2(0xD5D7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5D8), 0x0000, MB2(0xD5D9), 0x0000, + MB2(0xD5DA), 0x0000, 0x0000, 0x0000, + MB2(0xD5DB), MB2(0xD5DC), 0x0000, MB2(0xD5DD), + 0x0000, MB2(0xD5DE), MB2(0xD5DF), 0x0000, + MB2(0xD5E0), 0x0000, MB2(0xD5E1), 0x0000, + MB2(0xD5E2), 0x0000, 0x0000, 0x0000, /* 8040 */ + MB2(0xD5E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5E4), 0x0000, 0x0000, 0x0000, /* 8060 */ + MB2(0xD5E5), 0x0000, MB2(0xD5E6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5E7), 0x0000, 0x0000, + 0x0000, MB2(0xD5E8), 0x0000, 0x0000, + 0x0000, MB2(0xD5E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5EA), 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5ED), 0x0000, MB2(0xD5EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, MB2(0xD5EF), MB2(0xD5F0), + 0x0000, 0x0000, 0x0000, MB2(0xD5F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F2), MB2(0xD5F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5F5), 0x0000, MB2(0xD5F6), + 0x0000, 0x0000, MB2(0xD5F7), 0x0000, + MB2(0xD5F8), MB2(0xD5F9), 0x0000, MB2(0xD5FA), + MB2(0xD5FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5FC), 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5FD), MB2(0xD5FE), 0x0000, + MB2(0xD6A1), 0x0000, MB2(0xD6A2), MB2(0xD6A3), + 0x0000, 0x0000, MB2(0xD6A4), 0x0000, + 0x0000, MB2(0xD6A5), MB2(0xD6A6), 0x0000, + 0x0000, 0x0000, MB2(0xD6A7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6A8), /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6A9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6AA), MB2(0xD6AB), + MB2(0xD6AC), 0x0000, 0x0000, 0x0000, + MB2(0xD6AD), 0x0000, MB2(0xD6AE), 0x0000, + MB2(0xD6AF), 0x0000, 0x0000, 0x0000, /* 8120 */ + MB2(0xD6B0), 0x0000, 0x0000, MB2(0xD6B1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6B2), 0x0000, 0x0000, 0x0000, + MB2(0xD6B3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6B4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6B5), 0x0000, + MB2(0xD6B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, MB2(0xD6B7), 0x0000, MB2(0xD6B8), + 0x0000, 0x0000, MB2(0xD6B9), 0x0000, + MB2(0xD6BA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6BB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6BD), MB2(0xD6BE), 0x0000, 0x0000, /* 8160 */ + 0x0000, 0x0000, 0x0000, MB2(0xD6BF), + MB2(0xD6C0), MB2(0xD6C1), 0x0000, 0x0000, + 0x0000, MB2(0xD6C2), 0x0000, MB2(0xD6C3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6C5), 0x0000, 0x0000, /* 8180 */ + MB2(0xD6C7), MB2(0xD6C8), MB2(0xD6C9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6CA), + 0x0000, 0x0000, MB2(0xD6CB), 0x0000, + MB2(0xD6C6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6CC), 0x0000, + MB2(0xD6CD), 0x0000, 0x0000, MB2(0xD6CE), + 0x0000, 0x0000, MB2(0xD6CF), 0x0000, + 0x0000, 0x0000, MB2(0xD6D0), 0x0000, /* 81A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D1), 0x0000, + 0x0000, 0x0000, MB2(0xD6D2), 0x0000, + MB2(0xD6D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6D4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6D6), /* 81C0 */ + 0x0000, MB2(0xD6D7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D8), MB2(0xD6D5), + 0x0000, 0x0000, MB2(0xD6D9), MB2(0xD6DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6DB), 0x0000, MB2(0xD6DC), + 0x0000, 0x0000, 0x0000, MB2(0xD6DD), + 0x0000, MB2(0xD6DE), MB2(0xD6DF), 0x0000, + 0x0000, MB2(0xD6E0), 0x0000, 0x0000, /* 81E0 */ + MB2(0xD6E1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6E2), + MB2(0xD6E3), 0x0000, 0x0000, 0x0000, + MB2(0xD6E4), MB2(0xD6E5), MB2(0xD6E6), 0x0000, + 0x0000, MB2(0xD6E7), MB2(0xD6E8), 0x0000, + MB2(0xD6E9), MB2(0xD6EA), 0x0000, 0x0000, + 0x0000, MB2(0xD6EB), 0x0000, MB2(0xD6EC), + MB2(0xD6ED), 0x0000, 0x0000, MB2(0xD6EE), /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6EF), + 0x0000, 0x0000, 0x0000, MB2(0xD6F0), + MB2(0xD6F1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6F2), MB2(0xD6F3), 0x0000, + 0x0000, MB2(0xD6F4), 0x0000, 0x0000, + 0x0000, MB2(0xD6F5), MB2(0xD6F6), 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6F8), 0x0000, + MB2(0xD6F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6FB), /* 8240 */ + MB2(0xD6FC), MB2(0xD6FD), MB2(0xD6FE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7A1), + 0x0000, 0x0000, MB2(0xD7A2), MB2(0xD7A3), + 0x0000, MB2(0xD7A4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7A5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7A6), 0x0000, 0x0000, 0x0000, + MB2(0xD7A7), 0x0000, 0x0000, MB2(0xD7A8), /* 8260 */ + 0x0000, 0x0000, 0x0000, MB2(0xD7A9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7AA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7AC), + 0x0000, MB2(0xD7AD), 0x0000, MB2(0xD7AE), + MB2(0xD7AF), MB2(0xD7B0), 0x0000, MB2(0xD7B1), /* 8280 */ + MB2(0xD7B2), 0x0000, 0x0000, MB2(0xD7B3), + 0x0000, MB2(0xD7B4), MB2(0xD7B5), 0x0000, + 0x0000, 0x0000, MB2(0xD7B6), 0x0000, + 0x0000, MB2(0xD7B7), 0x0000, 0x0000, + MB2(0xD7B8), 0x0000, MB2(0xD7B9), 0x0000, + MB2(0xD7BA), 0x0000, MB2(0xD7BB), MB2(0xD7BC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7BD), MB2(0xD7BE), 0x0000, MB2(0xD7BF), /* 82A0 */ + MB2(0xD7C0), 0x0000, 0x0000, MB2(0xD7C1), + MB2(0xD7C2), MB2(0xD7C3), MB2(0xD7C4), 0x0000, + 0x0000, 0x0000, MB2(0xD7C5), 0x0000, + MB2(0xD7C6), 0x0000, MB2(0xD7C7), 0x0000, + MB2(0xD7C8), 0x0000, 0x0000, MB2(0xD7C9), + 0x0000, 0x0000, MB2(0xD7CA), 0x0000, + MB2(0xD7CB), 0x0000, MB2(0xD7CC), MB2(0xD7CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, 0x0000, MB2(0xD7CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7CF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7D0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7D2), 0x0000, MB2(0xD7D3), 0x0000, /* 82E0 */ + MB2(0xD7D4), 0x0000, 0x0000, 0x0000, + MB2(0xD7D5), 0x0000, MB2(0xD7D6), 0x0000, + 0x0000, MB2(0xD7D7), 0x0000, MB2(0xD7D8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7D9), MB2(0xD7DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7DB), MB2(0xD7DC), 0x0000, + MB2(0xD7DD), MB2(0xD7DE), 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, MB2(0xD7DF), + MB2(0xD7E0), 0x0000, MB2(0xD7E1), MB2(0xD7E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7E4), + 0x0000, MB2(0xD7E5), MB2(0xD7E6), MB2(0xD7E7), + 0x0000, MB2(0xD7E8), MB2(0xD7E9), 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7EA), MB2(0xD7EB), MB2(0xD7EC), 0x0000, + MB2(0xD7ED), 0x0000, 0x0000, MB2(0xD7EE), + 0x0000, 0x0000, 0x0000, MB2(0xD7EF), + 0x0000, 0x0000, MB2(0xD7F0), 0x0000, + MB2(0xD7F1), MB2(0xD7F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7F3), MB2(0xD7F4), /* 8340 */ + MB2(0xD7F5), 0x0000, 0x0000, MB2(0xD7F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7F7), MB2(0xD7F8), 0x0000, + 0x0000, MB2(0xD7F9), 0x0000, MB2(0xD8BE), + MB2(0xD7E3), MB2(0xD7FA), MB2(0xD7FB), MB2(0xD7FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4DF), 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7FE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8A1), 0x0000, MB2(0xD8A2), + MB2(0xD8A3), 0x0000, MB2(0xD8A4), 0x0000, /* 8380 */ + MB2(0xD8A5), 0x0000, MB2(0xD8A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8A7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8A8), 0x0000, + MB2(0xD8A9), MB2(0xD8AA), 0x0000, 0x0000, + MB2(0xD8AB), MB2(0xD8AC), 0x0000, MB2(0xD8AD), + MB2(0xD8AE), MB2(0xD8AF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83A0 */ + 0x0000, 0x0000, MB2(0xD8B0), MB2(0xD8B1), + 0x0000, MB2(0xD8B2), 0x0000, 0x0000, + MB2(0xD8B3), MB2(0xD8CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8B4), MB2(0xD8B5), + MB2(0xD8B6), 0x0000, 0x0000, 0x0000, /* 83C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8B7), + 0x0000, MB2(0xD8B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8B9), + MB2(0xD8BA), MB2(0xD8BB), 0x0000, 0x0000, + MB2(0xD8BC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8BF), 0x0000, MB2(0xD8C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8C1), 0x0000, + MB2(0xD8C2), MB2(0xD8C3), 0x0000, 0x0000, + MB2(0xD8C4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8C5), 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, MB2(0xD8C6), 0x0000, + 0x0000, 0x0000, MB2(0xD8C7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8C8), + 0x0000, MB2(0xD8C9), 0x0000, 0x0000, + 0x0000, MB2(0xD8CA), 0x0000, 0x0000, + 0x0000, MB2(0xD8CB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, MB2(0xD8CF), 0x0000, MB2(0xD8D0), + MB2(0xD8D1), 0x0000, MB2(0xD8D2), 0x0000, + 0x0000, MB2(0xD8D3), 0x0000, MB2(0xD8D4), + 0x0000, MB2(0xD8D5), MB2(0xD8D6), 0x0000, + 0x0000, 0x0000, MB2(0xD8D7), 0x0000, + MB2(0xD8D8), MB2(0xD8D9), MB2(0xD8DA), 0x0000, + MB2(0xD8DB), 0x0000, 0x0000, 0x0000, + MB2(0xD8DC), 0x0000, 0x0000, 0x0000, /* 8460 */ + MB2(0xD8DD), MB2(0xD8DE), 0x0000, MB2(0xD8DF), + 0x0000, 0x0000, MB2(0xD8E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8E1), 0x0000, 0x0000, MB2(0xD8E2), + MB2(0xD8E3), 0x0000, MB2(0xD8E4), 0x0000, + MB2(0xD8E5), 0x0000, 0x0000, 0x0000, + MB2(0xD8E6), MB2(0xD8E7), 0x0000, 0x0000, + 0x0000, MB2(0xD8E8), 0x0000, 0x0000, /* 8480 */ + 0x0000, MB2(0xD8E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8EA), MB2(0xD8EB), + 0x0000, MB2(0xD8EC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, MB2(0xD8EE), 0x0000, + MB2(0xD8EF), MB2(0xD8F0), MB2(0xD8F1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8F2), + 0x0000, MB2(0xD8F3), 0x0000, 0x0000, + MB2(0xD8F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8F5), 0x0000, + 0x0000, MB2(0xD8F6), MB2(0xD8F7), 0x0000, + MB2(0xD8F8), 0x0000, MB2(0xD8F9), 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8FA), + MB2(0xD8FB), 0x0000, 0x0000, 0x0000, + MB2(0xD8FC), 0x0000, 0x0000, MB2(0xD8FD), + 0x0000, 0x0000, 0x0000, MB2(0xD8FE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9A1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9A2), + 0x0000, 0x0000, MB2(0xD9A3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9A4), + MB2(0xD9A5), MB2(0xD9A6), MB2(0xD9A7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9A8), + 0x0000, 0x0000, MB2(0xD9AA), MB2(0xD9AB), + 0x0000, MB2(0xD9AC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9AD), MB2(0xD9AE), /* 8500 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9AF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9B0), 0x0000, MB2(0xD9B1), 0x0000, + MB2(0xD9B2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9B3), 0x0000, MB2(0xD9B4), 0x0000, + 0x0000, 0x0000, MB2(0xD9B5), MB2(0xD9B6), /* 8520 */ + MB2(0xD9B7), MB2(0xD9B8), 0x0000, MB2(0xD9B9), + 0x0000, 0x0000, MB2(0xD9BA), MB2(0xD9BB), + 0x0000, 0x0000, 0x0000, MB2(0xD9BC), + 0x0000, 0x0000, MB2(0xD9A9), MB2(0xD9BD), + MB2(0xD9BE), 0x0000, MB2(0xD9BF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9C0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, MB2(0xD9C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9C2), + MB2(0xD9C3), MB2(0xD9C4), MB2(0xD9C5), MB2(0xD9C6), + 0x0000, 0x0000, MB2(0xD9C7), 0x0000, + 0x0000, MB2(0xD9C8), 0x0000, 0x0000, + MB2(0xD9C9), MB2(0xD9CA), MB2(0xD9CB), MB2(0xD9CC), + MB2(0xD9CD), MB2(0xD9CE), MB2(0xD9CF), 0x0000, /* 8560 */ + MB2(0xD9D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9D1), + 0x0000, 0x0000, 0x0000, MB2(0xD9D2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9D3), MB2(0xD9D4), MB2(0xD9D5), + 0x0000, MB2(0xD9D6), 0x0000, MB2(0xD9D7), + 0x0000, MB2(0xD9D8), 0x0000, 0x0000, /* 8580 */ + 0x0000, MB2(0xD9D9), MB2(0xD9DA), 0x0000, + 0x0000, MB2(0xD9DB), 0x0000, MB2(0xD9DC), + MB2(0xD9DD), 0x0000, 0x0000, MB2(0xD9DE), + 0x0000, 0x0000, 0x0000, MB2(0xD9DF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9E0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9E1), 0x0000, MB2(0xD9E2), + MB2(0xD9E3), 0x0000, MB2(0xD9E4), 0x0000, /* 85A0 */ + 0x0000, MB2(0xD9E5), 0x0000, MB2(0xD9E6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9F4), 0x0000, 0x0000, + MB2(0xF4E1), 0x0000, 0x0000, 0x0000, + MB2(0xD9E7), 0x0000, MB2(0xD9E8), MB2(0xD9E9), + MB2(0xD9EA), 0x0000, 0x0000, 0x0000, + MB2(0xD9EB), MB2(0xD9EC), MB2(0xD9ED), MB2(0xD9EE), + 0x0000, 0x0000, MB2(0xD9EF), 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9F0), + 0x0000, 0x0000, MB2(0xD9F1), MB2(0xD9F2), + 0x0000, 0x0000, MB2(0xD9F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9F5), 0x0000, MB2(0xD9F6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9F7), + MB2(0xD9F8), 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, MB2(0xD9F9), 0x0000, + MB2(0xD9FA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9FB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9FC), + 0x0000, 0x0000, MB2(0xD9FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9FE), 0x0000, 0x0000, MB2(0xDAA1), + MB2(0xDAA2), 0x0000, 0x0000, 0x0000, /* 8600 */ + MB2(0xDAA3), MB2(0xDAA4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAA5), MB2(0xDAA6), 0x0000, + MB2(0xDAA7), MB2(0xDAA8), MB2(0xDAA9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAAA), MB2(0xDAAB), 0x0000, MB2(0xDAAC), + 0x0000, 0x0000, MB2(0xDAAD), 0x0000, + 0x0000, MB2(0xDAAE), 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, MB2(0xDAAF), + 0x0000, MB2(0xDAB0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAB1), 0x0000, + MB2(0xDAB2), 0x0000, MB2(0xDAB3), 0x0000, + MB2(0xDAB4), MB2(0xDAB5), 0x0000, 0x0000, + MB2(0xDAB6), MB2(0xB8E6), MB2(0xDAB7), 0x0000, /* 8640 */ + 0x0000, 0x0000, MB2(0xDAB8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAB9), MB2(0xDABA), + 0x0000, 0x0000, MB2(0xDABB), MB2(0xDABC), + MB2(0xDABD), MB2(0xDABE), 0x0000, 0x0000, + 0x0000, MB2(0xDABF), 0x0000, 0x0000, + MB2(0xDAC0), MB2(0xDAC1), MB2(0xDAC2), MB2(0xDAC3), /* 8660 */ + MB2(0xDAC4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAC5), 0x0000, 0x0000, + MB2(0xDAC6), 0x0000, 0x0000, MB2(0xDAC7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAC8), MB2(0xDAC9), MB2(0xDACA), + 0x0000, 0x0000, MB2(0xDACB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDACC), 0x0000, 0x0000, + 0x0000, MB2(0xDACD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDACE), 0x0000, + MB2(0xDACF), 0x0000, MB2(0xDAD0), 0x0000, + MB2(0xDAD1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAD2), 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, MB2(0xDAD3), MB2(0xDAD4), + MB2(0xDAD5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAD6), 0x0000, 0x0000, + 0x0000, MB2(0xDAD7), 0x0000, MB2(0xDAD8), + MB2(0xDAD9), MB2(0xDADA), 0x0000, MB2(0xDADB), + MB2(0xDADC), MB2(0xDADD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDADE), + MB2(0xDADF), MB2(0xDAE0), 0x0000, MB2(0xDAE1), /* 86C0 */ + 0x0000, MB2(0xDAE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAE3), MB2(0xDAE4), 0x0000, + 0x0000, MB2(0xDAE5), 0x0000, MB2(0xDAE6), + 0x0000, 0x0000, MB2(0xDAE7), 0x0000, + MB2(0xDAE8), 0x0000, 0x0000, 0x0000, + MB2(0xDAE9), 0x0000, 0x0000, MB2(0xDAEA), /* 86E0 */ + 0x0000, MB2(0xDAEB), 0x0000, MB2(0xDAEC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAEE), 0x0000, + MB2(0xDAEF), MB2(0xDAF0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + MB2(0xDAF1), MB2(0xDAF2), 0x0000, MB2(0xDAF3), + 0x0000, 0x0000, 0x0000, MB2(0xDAF4), + 0x0000, 0x0000, MB2(0xDAF5), MB2(0xDAF6), + MB2(0xDAF7), 0x0000, 0x0000, MB2(0xDAF8), + MB2(0xDAF9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAFA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAFB), MB2(0xDAFC), + 0x0000, MB2(0xDAFD), 0x0000, MB2(0xDAFE), /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBA1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBA2), MB2(0xDBA3), + 0x0000, MB2(0xDBA4), MB2(0xDBA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBA6), MB2(0xDBA7), 0x0000, + MB2(0xDBA8), MB2(0xDBA9), MB2(0xDBAA), 0x0000, + MB2(0xDBAB), 0x0000, 0x0000, MB2(0xDBAC), /* 8740 */ + 0x0000, MB2(0xDBAD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBAE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBAF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBB0), 0x0000, 0x0000, + 0x0000, MB2(0xDBB1), 0x0000, 0x0000, /* 8760 */ + MB2(0xDBB2), MB2(0xDBB3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBB4), + 0x0000, MB2(0xDBB5), MB2(0xDBB6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBB7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBB8), /* 8780 */ + MB2(0xDBB9), MB2(0xDBBA), MB2(0xDBBB), MB2(0xDBBC), + MB2(0xDBBD), MB2(0xDBBE), 0x0000, MB2(0xDBBF), + MB2(0xDBC0), 0x0000, 0x0000, 0x0000, + MB2(0xDBC1), 0x0000, 0x0000, MB2(0xDBC2), + 0x0000, MB2(0xDBC3), 0x0000, MB2(0xDBC4), + MB2(0xDBC5), MB2(0xDBC6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBC7), 0x0000, + MB2(0xDBC8), 0x0000, 0x0000, MB2(0xDBC9), /* 87A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDBCA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBCB), MB2(0xDBCC), MB2(0xDBCD), 0x0000, + 0x0000, MB2(0xDBCE), 0x0000, 0x0000, + 0x0000, MB2(0xDBCF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBD0), MB2(0xDBD1), + 0x0000, MB2(0xDBD2), 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBD3), MB2(0xDBD4), MB2(0xDBD5), 0x0000, + 0x0000, 0x0000, MB2(0xDBD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBD7), MB2(0xDBD8), 0x0000, + 0x0000, MB2(0xDBD9), MB2(0xDBDA), 0x0000, + MB2(0xDBDB), 0x0000, 0x0000, MB2(0xDBDC), + 0x0000, 0x0000, MB2(0xDBDD), MB2(0xDBDE), /* 87E0 */ + MB2(0xDBDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBE0), MB2(0xDBE1), + 0x0000, MB2(0xDBE2), 0x0000, 0x0000, + 0x0000, MB2(0xDBE3), 0x0000, MB2(0xDBE4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBE5), 0x0000, MB2(0xDBE6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBE7), + 0x0000, MB2(0xDBE8), 0x0000, MB2(0xDBE9), /* 8800 */ + 0x0000, 0x0000, MB2(0xDBEA), MB2(0xF4E4), + 0x0000, MB2(0xDBEB), MB2(0xDBEC), MB2(0xDBED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBEE), 0x0000, MB2(0xDBF0), MB2(0xDBF1), + MB2(0xDBF2), 0x0000, 0x0000, 0x0000, + MB2(0xDBF3), MB2(0xDBEF), MB2(0xDBF4), MB2(0xDBF5), + MB2(0xDBF6), 0x0000, MB2(0xDBF7), MB2(0xDBF8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBF9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBFA), MB2(0xDBFB), 0x0000, + MB2(0xDBFC), 0x0000, MB2(0xDBFD), 0x0000, + 0x0000, MB2(0xDBFE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCA1), 0x0000, + MB2(0xDCA2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCA3), 0x0000, MB2(0xDCA4), /* 8840 */ + 0x0000, MB2(0xDCA5), 0x0000, 0x0000, + MB2(0xDCA6), MB2(0xDCA7), MB2(0xDCA8), MB2(0xDCA9), + 0x0000, 0x0000, MB2(0xDCAA), 0x0000, + 0x0000, MB2(0xDCAB), 0x0000, 0x0000, + 0x0000, MB2(0xDCAC), MB2(0xDCAD), 0x0000, + MB2(0xDCAE), 0x0000, MB2(0xDCAF), 0x0000, + MB2(0xDCB0), 0x0000, 0x0000, MB2(0xDCB1), + MB2(0xDCB2), 0x0000, 0x0000, 0x0000, /* 8860 */ + MB2(0xDCB3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB6), 0x0000, MB2(0xDCB7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCB8), 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCB9), 0x0000, MB2(0xDCBA), MB2(0xDCBB), + MB2(0xDCBC), 0x0000, 0x0000, MB2(0xDCBD), + MB2(0xDCBE), 0x0000, 0x0000, 0x0000, /* 88A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCBF), 0x0000, MB2(0xDCC0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC1), 0x0000, + 0x0000, MB2(0xDCC2), MB2(0xDCC3), 0x0000, + MB2(0xDCC4), 0x0000, 0x0000, 0x0000, /* 88C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC5), MB2(0xDCC6), + MB2(0xDCC7), MB2(0xDCC8), MB2(0xDCC9), 0x0000, + 0x0000, MB2(0xDCCA), MB2(0xDCCB), MB2(0xDCCC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCCD), + 0x0000, 0x0000, MB2(0xDCCE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCCF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCD0), + MB2(0xDCD1), MB2(0xDCD2), 0x0000, 0x0000, + 0x0000, MB2(0xDCD3), 0x0000, MB2(0xDCD4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCD5), 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, MB2(0xDCD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCD7), MB2(0xDCD8), MB2(0xDCD9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCDA), MB2(0xDCDB), 0x0000, + MB2(0xDCDC), MB2(0xDCDD), MB2(0xDCDE), 0x0000, + MB2(0xDCDF), 0x0000, 0x0000, 0x0000, + MB2(0xDCE0), 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, MB2(0xDCE1), MB2(0xDCE2), + MB2(0xDCE3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCE4), MB2(0xDCE5), MB2(0xDCE6), 0x0000, + 0x0000, MB2(0xDCE7), 0x0000, 0x0000, + 0x0000, MB2(0xDCE8), MB2(0xDCE9), 0x0000, + 0x0000, 0x0000, MB2(0xDCEA), 0x0000, + MB2(0xDCEB), 0x0000, MB2(0xDCEC), 0x0000, /* 8940 */ + 0x0000, MB2(0xDCED), MB2(0xDCEE), 0x0000, + 0x0000, MB2(0xDCEF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCF0), + 0x0000, 0x0000, MB2(0xDCF1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCF2), + 0x0000, 0x0000, MB2(0xDCF3), MB2(0xDCF4), + MB2(0xDCF5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCF6), MB2(0xDCF7), MB2(0xDCF8), /* 8960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCF9), + 0x0000, 0x0000, MB2(0xDCFA), 0x0000, + MB2(0xDCFB), 0x0000, 0x0000, MB2(0xDCFC), + 0x0000, MB2(0xDCFD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCFE), MB2(0xDDA1), + MB2(0xDDA2), MB2(0xDDA3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDA4), 0x0000, 0x0000, + 0x0000, MB2(0xDDA5), 0x0000, 0x0000, + MB2(0xDDA6), 0x0000, 0x0000, 0x0000, + MB2(0xDDA7), MB2(0xDDA8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDA9), + MB2(0xDDAA), 0x0000, 0x0000, MB2(0xDDAB), + MB2(0xDDAC), 0x0000, 0x0000, 0x0000, /* 89A0 */ + 0x0000, MB2(0xDDAD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDAE), 0x0000, 0x0000, 0x0000, + MB2(0xDDAF), MB2(0xDDB0), MB2(0xDDB1), MB2(0xDDB2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDB3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDB4), MB2(0xDDB5), MB2(0xDDB6), MB2(0xDDB7), + MB2(0xDDB8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89E0 */ + 0x0000, MB2(0xDDB9), 0x0000, 0x0000, + 0x0000, MB2(0xDDBA), 0x0000, MB2(0xDDBB), + 0x0000, MB2(0xDDBC), 0x0000, 0x0000, + 0x0000, MB2(0xDDBD), 0x0000, MB2(0xDDBE), + 0x0000, 0x0000, MB2(0xDDBF), 0x0000, + 0x0000, MB2(0xDDC0), 0x0000, 0x0000, + 0x0000, MB2(0xDDC1), 0x0000, MB2(0xDDC2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + MB2(0xDDC3), MB2(0xDDC4), 0x0000, MB2(0xDDC5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDC6), + 0x0000, MB2(0xDDC7), MB2(0xDDC8), 0x0000, + MB2(0xDDC9), MB2(0xDDCA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDCB), 0x0000, + MB2(0xDDCC), 0x0000, MB2(0xDDCD), 0x0000, /* 8A20 */ + MB2(0xDDCE), 0x0000, MB2(0xDDCF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDD0), + MB2(0xDDD1), 0x0000, 0x0000, MB2(0xDDD2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDD3), 0x0000, MB2(0xDDD4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDD5), MB2(0xDDD6), 0x0000, + MB2(0xDDD7), 0x0000, 0x0000, MB2(0xDDD8), /* 8A40 */ + 0x0000, MB2(0xDDD9), 0x0000, MB2(0xDDDA), + 0x0000, MB2(0xDDDB), 0x0000, 0x0000, + 0x0000, MB2(0xDDDC), MB2(0xDDDD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDDE), + 0x0000, 0x0000, MB2(0xDDDF), MB2(0xDDE0), + MB2(0xDDE1), 0x0000, 0x0000, 0x0000, + MB2(0xDDE2), MB2(0xDDE3), 0x0000, 0x0000, + 0x0000, MB2(0xDDE4), 0x0000, 0x0000, /* 8A60 */ + 0x0000, MB2(0xDDE5), 0x0000, MB2(0xDDE6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDE7), MB2(0xDDE8), MB2(0xDDE9), + 0x0000, MB2(0xDDEA), MB2(0xDDEB), MB2(0xDDEC), + 0x0000, 0x0000, MB2(0xDDED), MB2(0xDDEE), + MB2(0xDDEF), 0x0000, 0x0000, MB2(0xDDF0), /* 8A80 */ + 0x0000, 0x0000, MB2(0xDDF1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDF2), + 0x0000, 0x0000, 0x0000, MB2(0xDDF3), + MB2(0xDDF4), 0x0000, MB2(0xDDF5), 0x0000, + 0x0000, 0x0000, MB2(0xDDF6), MB2(0xDDF7), + 0x0000, MB2(0xDDF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDDFA), + 0x0000, MB2(0xDDFB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDFC), MB2(0xDDFD), + 0x0000, 0x0000, 0x0000, MB2(0xDDFE), + 0x0000, 0x0000, MB2(0xDEA1), MB2(0xDEA2), + 0x0000, 0x0000, 0x0000, MB2(0xDEA3), + 0x0000, 0x0000, MB2(0xDEA4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEA5), /* 8AC0 */ + 0x0000, 0x0000, MB2(0xDEA6), 0x0000, + MB2(0xDEA7), MB2(0xDEA8), MB2(0xDEA9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEAA), 0x0000, MB2(0xDEAB), + MB2(0xDEAC), MB2(0xDEAD), 0x0000, MB2(0xDEAE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEAF), 0x0000, MB2(0xDEB0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEB1), 0x0000, 0x0000, 0x0000, + MB2(0xDEB2), 0x0000, 0x0000, 0x0000, + MB2(0xDEB3), MB2(0xDEB4), MB2(0xDEB5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEB6), 0x0000, 0x0000, MB2(0xDEB7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, MB2(0xDEB8), MB2(0xDEB9), 0x0000, + 0x0000, 0x0000, MB2(0xDEBF), MB2(0xDEBA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEBB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEBC), 0x0000, MB2(0xDEBD), MB2(0xDEBE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEC0), 0x0000, 0x0000, + MB2(0xDEC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEC2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEC3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEC4), MB2(0xDEC5), /* 8B40 */ + MB2(0xDEC6), MB2(0xDEC7), MB2(0xDEC8), 0x0000, + MB2(0xDEC9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDECE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDECA), MB2(0xDECB), + MB2(0xDECC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDECD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDECF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDED0), /* 8B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDED1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDED2), 0x0000, + MB2(0xDED3), MB2(0xDED4), 0x0000, 0x0000, + MB2(0xDED5), 0x0000, MB2(0xDED6), MB2(0xF4E6), + 0x0000, MB2(0xDED7), 0x0000, 0x0000, /* 8B80 */ + MB2(0xDED8), MB2(0xDED9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEDA), + 0x0000, MB2(0xDEDB), 0x0000, MB2(0xDEDC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEDD), MB2(0xDEDE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEDF), 0x0000, MB2(0xDEE0), MB2(0xDEE1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEE2), MB2(0xDEE3), 0x0000, 0x0000, + 0x0000, MB2(0xDEE4), MB2(0xDEE5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C40 */ + 0x0000, MB2(0xDEE6), 0x0000, MB2(0xDEE7), + 0x0000, MB2(0xDEE8), 0x0000, MB2(0xDEE9), + 0x0000, 0x0000, 0x0000, MB2(0xDEEA), + 0x0000, MB2(0xDEEB), 0x0000, MB2(0xDEEC), + MB2(0xDEED), 0x0000, 0x0000, MB2(0xDEEE), + MB2(0xDEEF), MB2(0xDEF2), 0x0000, MB2(0xDEF0), + 0x0000, MB2(0xDEF1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEF3), /* 8C60 */ + MB2(0xDEF4), 0x0000, MB2(0xDEF5), 0x0000, + MB2(0xDEF6), MB2(0xDEF7), 0x0000, 0x0000, + 0x0000, MB2(0xDEF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEF9), + 0x0000, MB2(0xDEFA), MB2(0xDEFB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEFC), + 0x0000, 0x0000, MB2(0xDEFD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C80 */ + 0x0000, 0x0000, MB2(0xDEFE), MB2(0xDFA1), + 0x0000, 0x0000, 0x0000, MB2(0xDFA2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFA3), 0x0000, MB2(0xDFA4), MB2(0xDFA5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFA6), 0x0000, MB2(0xDFA7), + MB2(0xDFA8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CA0 */ + MB2(0xDFA9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFAA), MB2(0xDFAB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CC0 */ + 0x0000, MB2(0xDFAC), MB2(0xDFAD), 0x0000, + 0x0000, MB2(0xDFAE), 0x0000, MB2(0xDFAF), + 0x0000, 0x0000, 0x0000, MB2(0xDFB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFB2), MB2(0xDFB1), 0x0000, + 0x0000, MB2(0xDFB3), 0x0000, 0x0000, + 0x0000, MB2(0xDFB4), 0x0000, 0x0000, + 0x0000, MB2(0xDFB5), 0x0000, 0x0000, /* 8CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFB6), 0x0000, 0x0000, 0x0000, + MB2(0xDFB7), 0x0000, 0x0000, MB2(0xDFB8), + MB2(0xDFB9), 0x0000, MB2(0xDFBA), 0x0000, + MB2(0xF4E7), MB2(0xDFBB), 0x0000, MB2(0xDFBC), + MB2(0xDFBD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFBE), MB2(0xDFBF), + 0x0000, MB2(0xDFC0), 0x0000, MB2(0xDFC1), /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFC2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFC3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFC4), + 0x0000, 0x0000, 0x0000, MB2(0xDFC5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + 0x0000, MB2(0xDFC6), 0x0000, 0x0000, + 0x0000, MB2(0xDFC7), 0x0000, 0x0000, + MB2(0xDFC8), 0x0000, MB2(0xDFC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4E8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFCA), + 0x0000, 0x0000, MB2(0xDFCB), 0x0000, /* 8D80 */ + MB2(0xDFCC), 0x0000, 0x0000, 0x0000, + MB2(0xDFCD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFCE), 0x0000, 0x0000, + MB2(0xDFCF), MB2(0xDFD0), 0x0000, 0x0000, + 0x0000, MB2(0xDFD1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFD2), MB2(0xDFD3), + MB2(0xDFD4), 0x0000, 0x0000, 0x0000, /* 8DA0 */ + 0x0000, 0x0000, MB2(0xDFD5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFD6), + MB2(0xDFD7), 0x0000, 0x0000, MB2(0xDFD8), + 0x0000, 0x0000, MB2(0xDFD9), 0x0000, + 0x0000, MB2(0xDFDA), 0x0000, MB2(0xDFDB), + 0x0000, MB2(0xDFDC), 0x0000, MB2(0xDFDD), + MB2(0xDFEF), 0x0000, 0x0000, 0x0000, + MB2(0xDFDE), 0x0000, 0x0000, 0x0000, /* 8DC0 */ + 0x0000, MB2(0xDFDF), MB2(0xDFE0), MB2(0xDFE1), + MB2(0xDFE2), 0x0000, MB2(0xDFE3), 0x0000, + 0x0000, 0x0000, MB2(0xDFE4), 0x0000, + 0x0000, MB2(0xDFE5), 0x0000, 0x0000, + MB2(0xDFE6), MB2(0xDFE7), 0x0000, MB2(0xDFE8), + 0x0000, MB2(0xDFE9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DE0 */ + MB2(0xDFEA), MB2(0xDFEB), 0x0000, MB2(0xDFEC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFED), 0x0000, 0x0000, 0x0000, + MB2(0xDFEE), MB2(0xDFF0), MB2(0xDFF1), 0x0000, + MB2(0xDFF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFF3), 0x0000, 0x0000, + 0x0000, MB2(0xDFF4), 0x0000, 0x0000, /* 8E00 */ + MB2(0xDFF5), MB2(0xDFF6), MB2(0xDFF7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFF9), 0x0000, 0x0000, + MB2(0xDFFA), 0x0000, MB2(0xDFFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFFC), MB2(0xDFFD), MB2(0xDFFE), MB2(0xE0A1), /* 8E20 */ + 0x0000, 0x0000, MB2(0xE0A2), MB2(0xE0A3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0A4), 0x0000, MB2(0xE0A5), + 0x0000, 0x0000, MB2(0xE0A6), MB2(0xE0A7), + MB2(0xE0A8), MB2(0xE0A9), 0x0000, 0x0000, + 0x0000, MB2(0xE0AA), 0x0000, 0x0000, + MB2(0xE0AB), MB2(0xE0AC), 0x0000, 0x0000, /* 8E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0AD), + 0x0000, MB2(0xE0AE), MB2(0xE0AF), MB2(0xE0B0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0B1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0B2), + MB2(0xE0B3), MB2(0xE0B4), MB2(0xE0B5), 0x0000, + 0x0000, MB2(0xE0B6), MB2(0xE0B7), 0x0000, /* 8E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0B8), 0x0000, 0x0000, + MB2(0xE0B9), MB2(0xE0BA), 0x0000, MB2(0xE0BB), + MB2(0xE0BC), MB2(0xE0BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0BE), MB2(0xE0BF), MB2(0xE0C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C1), MB2(0xE0C2), /* 8E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0C4), 0x0000, MB2(0xE0C5), 0x0000, + 0x0000, MB2(0xE0C6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C7), MB2(0xE0C8), + 0x0000, MB2(0xE0C9), MB2(0xE0CA), 0x0000, + 0x0000, 0x0000, MB2(0xE0CB), 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0CC), + 0x0000, MB2(0xE0CD), 0x0000, 0x0000, + 0x0000, MB2(0xE0CE), MB2(0xE0CF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D0), + 0x0000, MB2(0xE0D1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D2), MB2(0xE0D3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D4), MB2(0xE0D5), 0x0000, MB2(0xE0D6), /* 8EC0 */ + MB2(0xE0D7), 0x0000, 0x0000, MB2(0xE0D8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D9), + 0x0000, MB2(0xE0DA), 0x0000, 0x0000, + MB2(0xE0DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0E4), MB2(0xE0DE), 0x0000, + MB2(0xE0DF), MB2(0xE0E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E1), + 0x0000, MB2(0xE0E2), MB2(0xE0E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E5), 0x0000, MB2(0xE0E6), 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0E7), + MB2(0xE0E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E9), + MB2(0xE0EA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0EB), MB2(0xE0EC), + MB2(0xE0ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0EE), 0x0000, + MB2(0xE0EF), MB2(0xE0F0), 0x0000, MB2(0xE0F1), /* 8F20 */ + 0x0000, MB2(0xE0F2), 0x0000, MB2(0xE0F3), + MB2(0xE0F4), 0x0000, 0x0000, 0x0000, + MB2(0xE0F5), MB2(0xE0F6), MB2(0xE0F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0F8), MB2(0xE0F9), MB2(0xE0FA), MB2(0xE0FB), + 0x0000, 0x0000, MB2(0xE0FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0FD), MB2(0xE0FE), 0x0000, MB2(0xE1A1), /* 8F40 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1A3), + 0x0000, MB2(0xE1A4), MB2(0xE1A5), MB2(0xE1A6), + MB2(0xE1A7), MB2(0xE1A8), 0x0000, 0x0000, + MB2(0xE1A9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1AA), MB2(0xE1AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F60 */ + 0x0000, MB2(0xE1AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1AD), 0x0000, 0x0000, + MB2(0xE1AE), MB2(0xE1AF), 0x0000, 0x0000, /* 8FA0 */ + MB2(0xE1B0), MB2(0xE1B1), MB2(0xE1B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1B3), MB2(0xE1B4), 0x0000, + MB2(0xE1B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1B6), 0x0000, + MB2(0xE1B7), MB2(0xE1B8), 0x0000, 0x0000, /* 8FC0 */ + 0x0000, 0x0000, MB2(0xE1B9), 0x0000, + 0x0000, 0x0000, MB2(0xE1BA), MB2(0xE1BB), + 0x0000, MB2(0xE1BC), 0x0000, 0x0000, + MB2(0xE1BD), 0x0000, MB2(0xE1BE), MB2(0xE1BF), + 0x0000, MB2(0xE1C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1C1), 0x0000, 0x0000, MB2(0xE1C2), /* 8FE0 */ + MB2(0xE1C3), 0x0000, 0x0000, 0x0000, + MB2(0xE1C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1C5), 0x0000, + 0x0000, MB2(0xE1C6), 0x0000, 0x0000, + 0x0000, MB2(0xE1C7), MB2(0xE1C8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1C9), + 0x0000, 0x0000, MB2(0xE1CA), 0x0000, + 0x0000, 0x0000, MB2(0xE1CB), 0x0000, /* 9000 */ + MB2(0xE1CC), 0x0000, 0x0000, 0x0000, + MB2(0xE1CD), 0x0000, 0x0000, 0x0000, + MB2(0xE1CE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1CF), 0x0000, 0x0000, MB2(0xE1D0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1D1), MB2(0xE1D2), MB2(0xE1D4), 0x0000, + MB2(0xE1D5), MB2(0xE1D6), 0x0000, MB2(0xE1D3), + 0x0000, 0x0000, 0x0000, MB2(0xE1D7), + MB2(0xE1D8), 0x0000, 0x0000, MB2(0xE1D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1DA), + 0x0000, 0x0000, 0x0000, MB2(0xE1DB), /* 9040 */ + MB2(0xE1DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1DD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1DE), + 0x0000, MB2(0xE1DF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1E0), 0x0000, /* 9060 */ + 0x0000, 0x0000, MB2(0xE1E1), MB2(0xE1E2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E3), 0x0000, 0x0000, 0x0000, + MB2(0xE1E4), 0x0000, 0x0000, 0x0000, + MB2(0xE1E5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9080 */ + 0x0000, MB2(0xE1E7), 0x0000, 0x0000, + MB2(0xE1E8), 0x0000, 0x0000, MB2(0xE1E9), + MB2(0xE1EA), 0x0000, MB2(0xE1EB), 0x0000, + MB2(0xE1EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1ED), 0x0000, MB2(0xE1EE), + MB2(0xE1EF), MB2(0xE1F0), 0x0000, MB2(0xE1F1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1F2), MB2(0xE1F3), MB2(0xE1F4), 0x0000, /* 90A0 */ + 0x0000, MB2(0xE1F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1F6), 0x0000, MB2(0xE1F7), MB2(0xE1F8), + MB2(0xE1F9), 0x0000, MB2(0xE1FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1FB), MB2(0xE1FD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1FE), /* 90C0 */ + MB2(0xE2A1), MB2(0xE2A2), 0x0000, MB2(0xE2A3), + MB2(0xE2A4), 0x0000, 0x0000, 0x0000, + MB2(0xE1FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2AD), 0x0000, + 0x0000, MB2(0xE2A5), 0x0000, MB2(0xE2A6), + MB2(0xE2A7), MB2(0xE2A8), 0x0000, 0x0000, + MB2(0xE2A9), MB2(0xE2AA), MB2(0xF4EC), MB2(0xE2AB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 90E0 */ + 0x0000, MB2(0xE2AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2AF), + 0x0000, 0x0000, 0x0000, MB2(0xE2B0), + MB2(0xE2B1), 0x0000, 0x0000, 0x0000, + MB2(0xE2B2), 0x0000, MB2(0xE2AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2B3), MB2(0xE2B4), + MB2(0xE2B5), 0x0000, 0x0000, 0x0000, /* 9100 */ + MB2(0xE2B6), MB2(0xE2B7), MB2(0xE2B8), 0x0000, + MB2(0xE2B9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2BA), 0x0000, 0x0000, + MB2(0xE2BB), 0x0000, 0x0000, 0x0000, + MB2(0xE2BC), MB2(0xF4EE), MB2(0xE2BD), MB2(0xE2BE), + MB2(0xE2BF), 0x0000, MB2(0xE2C0), 0x0000, + MB2(0xE2C1), 0x0000, MB2(0xE2C2), 0x0000, + MB2(0xE2C3), 0x0000, MB2(0xE2C5), MB2(0xE2C6), /* 9120 */ + 0x0000, MB2(0xE2C4), 0x0000, MB2(0xE2C7), + 0x0000, MB2(0xE2C8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2C9), MB2(0xE2CA), + 0x0000, MB2(0xE2CB), 0x0000, 0x0000, + MB2(0xE2CC), 0x0000, MB2(0xE2CD), MB2(0xE2CE), + 0x0000, MB2(0xE2CF), MB2(0xE2D0), 0x0000, + MB2(0xE2D1), MB2(0xE2D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D3), /* 9140 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2D4), + MB2(0xE2D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D6), + 0x0000, 0x0000, 0x0000, MB2(0xE2D7), + 0x0000, 0x0000, 0x0000, MB2(0xE2D8), + 0x0000, MB2(0xE2D9), MB2(0xE2DA), MB2(0xE2DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2DC), 0x0000, 0x0000, /* 9160 */ + MB2(0xE2DD), 0x0000, 0x0000, MB2(0xE2DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2E1), MB2(0xE2E2), MB2(0xE2E3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2E4), 0x0000, MB2(0xE2E5), /* 9180 */ + 0x0000, MB2(0xE2E6), MB2(0xE2E7), 0x0000, + 0x0000, 0x0000, MB2(0xE2E8), 0x0000, + 0x0000, 0x0000, MB2(0xE2E9), 0x0000, + 0x0000, MB2(0xE2EA), 0x0000, MB2(0xE2EB), + MB2(0xE2EC), MB2(0xE2ED), 0x0000, 0x0000, + MB2(0xE2EE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2EF), 0x0000, + 0x0000, MB2(0xE2F0), 0x0000, 0x0000, /* 91A0 */ + 0x0000, 0x0000, MB2(0xE2F1), 0x0000, + MB2(0xE2F2), 0x0000, 0x0000, 0x0000, + MB2(0xE2F3), MB2(0xE2F4), MB2(0xE2F5), 0x0000, + MB2(0xE2F6), MB2(0xE2F7), MB2(0xE2F8), MB2(0xE2F9), + 0x0000, 0x0000, MB2(0xE2FA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2FB), + MB2(0xE2FC), MB2(0xE2FD), 0x0000, MB2(0xE2FE), + 0x0000, 0x0000, MB2(0xE3A1), MB2(0xE3A2), /* 91C0 */ + 0x0000, MB2(0xE3A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3A4), + MB2(0xE3A5), 0x0000, 0x0000, MB2(0xE3A6), + 0x0000, MB2(0xE3A7), MB2(0xE3A8), 0x0000, + 0x0000, 0x0000, MB2(0xE3A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91E0 */ + MB2(0xE3AA), MB2(0xE3AB), 0x0000, 0x0000, + 0x0000, MB2(0xE3AC), MB2(0xE3AD), 0x0000, + MB2(0xE3AE), MB2(0xE3AF), MB2(0xE3B0), MB2(0xE3B1), + MB2(0xE3B2), MB2(0xE3B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3B4), + 0x0000, MB2(0xE3B5), 0x0000, MB2(0xE3B6), + 0x0000, MB2(0xE3B7), 0x0000, 0x0000, + MB2(0xE3B8), MB2(0xE3B9), 0x0000, 0x0000, /* 9200 */ + MB2(0xE3BA), MB2(0xE3BB), MB2(0xE3BC), MB2(0xE3BD), + 0x0000, MB2(0xE3BE), MB2(0xE3BF), 0x0000, + MB2(0xE3C0), 0x0000, 0x0000, 0x0000, + MB2(0xE3C1), 0x0000, MB2(0xE3C2), MB2(0xE3C3), + 0x0000, 0x0000, MB2(0xE3C4), 0x0000, + MB2(0xE3C5), 0x0000, 0x0000, 0x0000, + MB2(0xE3C6), MB2(0xE3C7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3C8), /* 9220 */ + MB2(0xE3C9), MB2(0xE3CA), MB2(0xE3CB), 0x0000, + MB2(0xE3CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3CD), MB2(0xE3CE), + MB2(0xE3CF), 0x0000, 0x0000, MB2(0xE3D0), + 0x0000, MB2(0xE3D1), MB2(0xE3D2), 0x0000, + MB2(0xE3D3), MB2(0xE3D4), MB2(0xE3D5), 0x0000, + MB2(0xE3D6), 0x0000, MB2(0xE3D7), 0x0000, + MB2(0xE3D8), 0x0000, MB2(0xE3D9), MB2(0xE3DA), /* 9240 */ + 0x0000, 0x0000, MB2(0xE3DB), MB2(0xE3DC), + 0x0000, 0x0000, MB2(0xE3DD), 0x0000, + 0x0000, MB2(0xE3DE), MB2(0xE3DF), MB2(0xE3E0), + 0x0000, MB2(0xE3E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3E2), MB2(0xE3E3), 0x0000, 0x0000, + MB2(0xE3E4), MB2(0xE3E5), 0x0000, 0x0000, + MB2(0xE3E6), MB2(0xE3E7), 0x0000, 0x0000, /* 9260 */ + 0x0000, MB2(0xE3E8), 0x0000, MB2(0xE3E9), + MB2(0xE3EA), MB2(0xE3EB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3EC), MB2(0xE3ED), + MB2(0xE3EE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3EF), MB2(0xE3F0), MB2(0xE3F1), + MB2(0xE3F2), MB2(0xE3F3), 0x0000, MB2(0xE3F4), + MB2(0xE3F5), MB2(0xE3F6), 0x0000, MB2(0xE3F7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3F8), MB2(0xE3F9), MB2(0xE3FA), 0x0000, + 0x0000, MB2(0xE3FB), MB2(0xE3FC), 0x0000, + 0x0000, 0x0000, MB2(0xE3FD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FE), + 0x0000, MB2(0xE4A1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4A2), + MB2(0xE4A3), 0x0000, 0x0000, 0x0000, /* 92A0 */ + MB2(0xE4A4), MB2(0xE4A5), 0x0000, MB2(0xE4A6), + MB2(0xE4A7), 0x0000, 0x0000, MB2(0xE4A8), + 0x0000, 0x0000, 0x0000, MB2(0xE4A9), + 0x0000, 0x0000, MB2(0xE4AA), 0x0000, + 0x0000, 0x0000, MB2(0xE4AB), 0x0000, + MB2(0xE4AC), 0x0000, MB2(0xE4AD), MB2(0xE4AE), + MB2(0xE4AF), MB2(0xE4B0), 0x0000, MB2(0xE4B1), + MB2(0xE4B2), MB2(0xE4B3), MB2(0xE4B4), MB2(0xE4B5), /* 92C0 */ + 0x0000, MB2(0xE4B6), MB2(0xE4B7), MB2(0xE4B8), + MB2(0xE4B9), 0x0000, 0x0000, MB2(0xE4BA), + MB2(0xE4BB), MB2(0xE4BC), MB2(0xE4BD), 0x0000, + MB2(0xE4BE), 0x0000, 0x0000, MB2(0xE4BF), + 0x0000, MB2(0xE4C0), 0x0000, MB2(0xE4C1), + MB2(0xE4C2), MB2(0xE4C3), 0x0000, 0x0000, + MB2(0xE4C4), MB2(0xE4C5), 0x0000, MB2(0xE4C6), + MB2(0xE4C7), MB2(0xE4C8), 0x0000, MB2(0xE4C9), /* 92E0 */ + 0x0000, MB2(0xE4CA), 0x0000, MB2(0xE4CB), + MB2(0xE4CC), 0x0000, 0x0000, 0x0000, + MB2(0xE4CD), 0x0000, MB2(0xE4CE), 0x0000, + MB2(0xE4CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D0), 0x0000, MB2(0xE4D1), + 0x0000, 0x0000, 0x0000, MB2(0xE4D2), + MB2(0xE4D3), 0x0000, MB2(0xE4D4), 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4D5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D6), 0x0000, 0x0000, + 0x0000, MB2(0xE4D7), 0x0000, 0x0000, + MB2(0xE4D8), MB2(0xE4D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4DA), MB2(0xE4DB), MB2(0xE4DC), MB2(0xE4DD), + 0x0000, MB2(0xE4DE), 0x0000, 0x0000, /* 9320 */ + MB2(0xE4DF), MB2(0xE4E0), 0x0000, MB2(0xE4E1), + 0x0000, MB2(0xE4E2), MB2(0xE4E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4E4), + MB2(0xE4E5), 0x0000, MB2(0xE4E6), MB2(0xE4E7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + 0x0000, 0x0000, 0x0000, MB2(0xE4E8), + MB2(0xE4E9), MB2(0xE4EA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4EB), MB2(0xE4EC), MB2(0xE4ED), 0x0000, + 0x0000, MB2(0xE4EE), 0x0000, MB2(0xE4EF), + MB2(0xE4F0), 0x0000, MB2(0xE4F1), 0x0000, + 0x0000, 0x0000, MB2(0xE4F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9360 */ + MB2(0xE4F3), MB2(0xE4F4), 0x0000, MB2(0xE4F5), + 0x0000, MB2(0xE4F6), MB2(0xE4F7), 0x0000, + 0x0000, MB2(0xE4F8), 0x0000, MB2(0xE4F9), + MB2(0xE4FA), MB2(0xE4FB), 0x0000, MB2(0xE4FC), + MB2(0xE4FD), 0x0000, MB2(0xE4FE), 0x0000, + 0x0000, 0x0000, MB2(0xE5A1), 0x0000, + 0x0000, MB2(0xE5A2), 0x0000, MB2(0xE5A3), + MB2(0xE5A4), MB2(0xE5A5), MB2(0xE5A6), 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5A7), 0x0000, MB2(0xE5A8), MB2(0xE5A9), + 0x0000, MB2(0xE5AA), 0x0000, MB2(0xE5AB), + 0x0000, 0x0000, MB2(0xE5AC), 0x0000, + 0x0000, MB2(0xE5AD), 0x0000, 0x0000, + MB2(0xE5AE), 0x0000, 0x0000, MB2(0xE5AF), + 0x0000, 0x0000, MB2(0xE5B0), 0x0000, + 0x0000, MB2(0xE5B1), 0x0000, MB2(0xE5B2), /* 93A0 */ + MB2(0xE5B3), 0x0000, MB2(0xE5B4), 0x0000, + MB2(0xE5B5), MB2(0xE5BB), 0x0000, MB2(0xE5B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5B7), MB2(0xE5B8), MB2(0xE5B9), 0x0000, + 0x0000, 0x0000, MB2(0xE5BA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5BC), 0x0000, 0x0000, /* 93C0 */ + MB2(0xE5BD), MB2(0xE5BE), MB2(0xE5BF), MB2(0xE5C0), + 0x0000, MB2(0xE5C1), MB2(0xE5C2), MB2(0xE5C3), + MB2(0xE5C4), MB2(0xE5C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5C6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5C7), 0x0000, 0x0000, + MB2(0xE5C8), 0x0000, MB2(0xE5C9), MB2(0xE5CA), + 0x0000, 0x0000, MB2(0xE5CB), 0x0000, /* 93E0 */ + 0x0000, 0x0000, MB2(0xE5CC), MB2(0xE5CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5CF), + MB2(0xE5D0), MB2(0xE5CE), MB2(0xE5D1), MB2(0xE5D2), + 0x0000, MB2(0xE5D3), 0x0000, 0x0000, + 0x0000, MB2(0xE5D4), MB2(0xE5D5), 0x0000, /* 9400 */ + MB2(0xE5D6), 0x0000, 0x0000, 0x0000, + MB2(0xE5D7), MB2(0xE5D8), 0x0000, 0x0000, + 0x0000, MB2(0xE5D9), MB2(0xE5DA), MB2(0xE5DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5DC), MB2(0xE5DD), MB2(0xE5DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5DF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5E0), MB2(0xE5E1), + 0x0000, MB2(0xE5E2), MB2(0xE5E3), MB2(0xE5E4), + MB2(0xE5E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5E6), + 0x0000, MB2(0xE5E8), 0x0000, MB2(0xE5E7), + 0x0000, 0x0000, 0x0000, MB2(0xE5E9), /* 9440 */ + 0x0000, MB2(0xE5EA), 0x0000, 0x0000, + MB2(0xE5EB), 0x0000, MB2(0xE5EC), 0x0000, + MB2(0xE5ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5EE), 0x0000, 0x0000, + 0x0000, MB2(0xE5EF), 0x0000, 0x0000, + MB2(0xE5F0), 0x0000, 0x0000, MB2(0xE5F1), + 0x0000, MB2(0xE5F2), 0x0000, MB2(0xE5F3), /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5F4), 0x0000, 0x0000, MB2(0xE5F5), + 0x0000, MB2(0xE5F6), MB2(0xE5F7), MB2(0xE5F8), + 0x0000, MB2(0xE5F9), MB2(0xE5FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5FC), /* 9480 */ + MB2(0xE5FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5FD), MB2(0xE5FE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9580 */ + MB2(0xE6A2), 0x0000, 0x0000, 0x0000, + MB2(0xE6A3), 0x0000, 0x0000, 0x0000, + MB2(0xE6A4), MB2(0xE6A5), MB2(0xE6A6), 0x0000, + 0x0000, 0x0000, MB2(0xF4F1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6A7), MB2(0xE6A8), MB2(0xE6A9), + 0x0000, MB2(0xE6AA), 0x0000, 0x0000, /* 95A0 */ + 0x0000, 0x0000, MB2(0xE6AB), 0x0000, + 0x0000, MB2(0xE6AC), 0x0000, MB2(0xE6AD), + MB2(0xE6AE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6AF), 0x0000, MB2(0xE6B0), 0x0000, + 0x0000, 0x0000, MB2(0xE6B1), 0x0000, + 0x0000, MB2(0xE6B2), 0x0000, MB2(0xE6B3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 95C0 */ + 0x0000, 0x0000, MB2(0xE6B4), 0x0000, + MB2(0xE6B5), MB2(0xE6B6), 0x0000, MB2(0xE6B7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6B8), MB2(0xE6B9), MB2(0xE6BA), MB2(0xE6BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6BC), MB2(0xE6BD), 0x0000, + 0x0000, MB2(0xE6BE), MB2(0xE6BF), MB2(0xE6C0), + MB2(0xE6C1), 0x0000, 0x0000, 0x0000, /* 95E0 */ + MB2(0xE6C2), 0x0000, MB2(0xE6C3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6C4), MB2(0xE6C5), 0x0000, + 0x0000, 0x0000, MB2(0xE6C6), 0x0000, /* 9620 */ + MB2(0xE6C7), MB2(0xE6C8), MB2(0xE6C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6CA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6CB), 0x0000, MB2(0xE6CC), + 0x0000, 0x0000, 0x0000, MB2(0xE6CD), + MB2(0xE6CE), MB2(0xE6CF), MB2(0xE6D0), 0x0000, + MB2(0xE6D1), MB2(0xE6D2), 0x0000, 0x0000, + 0x0000, MB2(0xE6D3), 0x0000, 0x0000, /* 9640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6D4), 0x0000, + MB2(0xE6D5), 0x0000, MB2(0xE6D6), MB2(0xE6D7), + MB2(0xE6D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6D9), 0x0000, 0x0000, /* 9660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6DC), + MB2(0xE6DD), 0x0000, MB2(0xE6DE), MB2(0xE6DF), + 0x0000, MB2(0xE6E0), MB2(0xE6E1), MB2(0xE6E2), /* 9680 */ + MB2(0xE6E3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6E6), 0x0000, + 0x0000, 0x0000, MB2(0xE6E7), 0x0000, + 0x0000, MB2(0xE6E8), 0x0000, MB2(0xE6E9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 96A0 */ + MB2(0xE6EA), MB2(0xE6EB), MB2(0xE6EC), 0x0000, + 0x0000, MB2(0xE6ED), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6EE), MB2(0xE6EF), + 0x0000, 0x0000, 0x0000, MB2(0xE6F0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6F5), 0x0000, MB2(0xE6F6), 0x0000, + 0x0000, MB2(0xE6F7), MB2(0xE6F8), MB2(0xE6F9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6FA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FB), + 0x0000, MB2(0xE6FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6FE), MB2(0xE7A1), /* 9700 */ + 0x0000, MB2(0xE7A2), 0x0000, 0x0000, + 0x0000, MB2(0xE7A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7A4), MB2(0xE7A5), + 0x0000, MB2(0xE7A6), 0x0000, 0x0000, + 0x0000, MB2(0xE7A7), MB2(0xE7A8), MB2(0xE7A9), /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7AB), 0x0000, MB2(0xE7AC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF4F4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7AD), 0x0000, MB2(0xE7AE), /* 9740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7AF), 0x0000, + 0x0000, MB2(0xF4F5), MB2(0xE7B0), MB2(0xE7B1), + 0x0000, MB2(0xF4F6), 0x0000, 0x0000, + 0x0000, MB2(0xE7B2), 0x0000, MB2(0xE7B3), + MB2(0xE7B4), 0x0000, MB2(0xE7B5), MB2(0xE7B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B7), /* 9760 */ + 0x0000, 0x0000, 0x0000, MB2(0xE7B8), + 0x0000, 0x0000, MB2(0xE7B9), 0x0000, + 0x0000, 0x0000, MB2(0xE7BA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7BB), + 0x0000, 0x0000, MB2(0xE7BC), MB2(0xE7BD), + MB2(0xE7BE), 0x0000, 0x0000, MB2(0xE7BF), + 0x0000, MB2(0xE7C0), 0x0000, MB2(0xE7C1), + MB2(0xE7C2), 0x0000, 0x0000, 0x0000, /* 9780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7C4), MB2(0xE7C5), MB2(0xE7C6), + 0x0000, MB2(0xE7C7), MB2(0xE7C8), 0x0000, + 0x0000, 0x0000, MB2(0xE7C9), MB2(0xE7CA), + 0x0000, 0x0000, MB2(0xE7CB), 0x0000, /* 97A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7CC), 0x0000, MB2(0xE7CD), 0x0000, + 0x0000, MB2(0xE7CE), MB2(0xE7CF), 0x0000, + 0x0000, MB2(0xE7D0), MB2(0xE7D1), 0x0000, + MB2(0xE7D2), MB2(0xE7D3), MB2(0xE7D4), 0x0000, + MB2(0xE7D5), 0x0000, MB2(0xE7D6), MB2(0xE7D7), + 0x0000, MB2(0xE7D8), 0x0000, 0x0000, /* 97C0 */ + MB2(0xE7D9), MB2(0xE7DA), 0x0000, MB2(0xE7DB), + 0x0000, MB2(0xE7DC), MB2(0xE7DD), 0x0000, + MB2(0xE7DE), MB2(0xE7DF), MB2(0xE7E0), 0x0000, + MB2(0xE7E1), MB2(0xE7E2), 0x0000, 0x0000, + MB2(0xE7E3), 0x0000, 0x0000, MB2(0xE7E4), + MB2(0xE7E5), MB2(0xE7E6), 0x0000, MB2(0xE7EA), + 0x0000, MB2(0xE7E7), MB2(0xE7E8), 0x0000, + MB2(0xE7E9), MB2(0xE7EB), 0x0000, 0x0000, /* 97E0 */ + MB2(0xE7EC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7ED), + 0x0000, MB2(0xE7EE), 0x0000, 0x0000, + MB2(0xE7EF), 0x0000, 0x0000, MB2(0xE7F0), + MB2(0xE7F1), 0x0000, MB2(0xE7F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, MB2(0xE7F3), + 0x0000, 0x0000, MB2(0xE7F4), 0x0000, + 0x0000, MB2(0xE7F6), MB2(0xE7F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7F8), 0x0000, MB2(0xE7F9), 0x0000, + 0x0000, MB2(0xE7F5), 0x0000, 0x0000, + MB2(0xE7FA), 0x0000, MB2(0xE7FB), 0x0000, + MB2(0xE7FC), 0x0000, 0x0000, MB2(0xE7FD), /* 9820 */ + 0x0000, MB2(0xE8A8), MB2(0xE7FE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8A1), + 0x0000, 0x0000, MB2(0xE8A2), MB2(0xE8A3), + MB2(0xE8A4), 0x0000, MB2(0xE8A5), MB2(0xE8A6), + 0x0000, MB2(0xE8A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + MB2(0xE8AA), 0x0000, 0x0000, MB2(0xE8AB), + 0x0000, 0x0000, MB2(0xE8AC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8AD), MB2(0xE8AE), MB2(0xE8AF), + 0x0000, 0x0000, MB2(0xE8B0), MB2(0xE8B1), + 0x0000, MB2(0xE8B2), MB2(0xE8B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8B4), MB2(0xE8B5), /* 9860 */ + 0x0000, MB2(0xE8B6), MB2(0xE8B7), 0x0000, + 0x0000, 0x0000, MB2(0xE8B8), 0x0000, + MB2(0xE8B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8BA), + 0x0000, MB2(0xE8BB), MB2(0xE8BC), 0x0000, + MB2(0xE8BD), 0x0000, 0x0000, 0x0000, + MB2(0xE8BE), 0x0000, 0x0000, MB2(0xE8BF), + MB2(0xE8C0), 0x0000, MB2(0xE8C1), MB2(0xE8C2), + 0x0000, 0x0000, 0x0000, MB2(0xE8C3), + 0x0000, 0x0000, MB2(0xE8C4), 0x0000, /* 98C0 */ + 0x0000, MB2(0xE8C5), 0x0000, 0x0000, + MB2(0xE8C6), 0x0000, 0x0000, 0x0000, + MB2(0xE8C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8C8), 0x0000, MB2(0xE8C9), /* 98E0 */ + 0x0000, MB2(0xE8CA), MB2(0xE8CB), MB2(0xE8CC), + 0x0000, 0x0000, MB2(0xE8CD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8CE), + 0x0000, 0x0000, MB2(0xE8CF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8D0), 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, MB2(0xE8D1), + MB2(0xE8D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8D3), 0x0000, 0x0000, + 0x0000, MB2(0xE8D4), MB2(0xE8D5), MB2(0xE8D6), + 0x0000, 0x0000, MB2(0xE8D7), MB2(0xE8D8), + MB2(0xE8D9), 0x0000, 0x0000, MB2(0xE8DA), + 0x0000, 0x0000, MB2(0xE8DB), 0x0000, /* 9920 */ + 0x0000, 0x0000, MB2(0xE8DC), MB2(0xE8DD), + 0x0000, 0x0000, 0x0000, MB2(0xE8DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8DF), MB2(0xE8E0), MB2(0xE8E1), + MB2(0xE8E2), MB2(0xE8E3), 0x0000, 0x0000, + 0x0000, MB2(0xE8E4), MB2(0xE8E5), MB2(0xE8E6), + MB2(0xE8E7), 0x0000, 0x0000, 0x0000, + MB2(0xE8E8), MB2(0xE8E9), 0x0000, 0x0000, /* 9940 */ + 0x0000, 0x0000, MB2(0xE8EA), MB2(0xE8EB), + MB2(0xE8EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8ED), MB2(0xE8EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8EF), 0x0000, 0x0000, 0x0000, + MB2(0xE8F0), MB2(0xE8F1), 0x0000, MB2(0xE8F2), + MB2(0xE8F3), 0x0000, MB2(0xE8F4), MB2(0xE8F5), + MB2(0xE8F6), 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8F7), + 0x0000, MB2(0xE8F8), MB2(0xF4FA), MB2(0xE8F9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, 0x0000, MB2(0xE8FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8FB), MB2(0xE8FC), MB2(0xE8FD), 0x0000, + 0x0000, MB2(0xE8FE), 0x0000, 0x0000, + 0x0000, MB2(0xE9A1), MB2(0xE9A2), 0x0000, + 0x0000, MB2(0xE9A3), 0x0000, MB2(0xE9A4), + 0x0000, 0x0000, 0x0000, MB2(0xE9A5), /* 99C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9A7), + MB2(0xE9A8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9A9), MB2(0xE9AA), 0x0000, + MB2(0xE9AB), 0x0000, MB2(0xE9AC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE9AD), + 0x0000, 0x0000, MB2(0xE9AE), MB2(0xE9AF), + MB2(0xE9B0), 0x0000, 0x0000, 0x0000, + MB2(0xE9B1), 0x0000, 0x0000, 0x0000, + MB2(0xE9B2), MB2(0xE9B3), 0x0000, 0x0000, + 0x0000, MB2(0xE9B4), 0x0000, 0x0000, + 0x0000, MB2(0xE9B5), MB2(0xE9B6), 0x0000, + 0x0000, 0x0000, MB2(0xE9B7), MB2(0xE9B8), /* 9A00 */ + MB2(0xE9B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9BA), + MB2(0xE9BB), 0x0000, 0x0000, 0x0000, + MB2(0xE9BC), MB2(0xE9BD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9BF), 0x0000, + MB2(0xE9C0), 0x0000, MB2(0xE9C1), MB2(0xE9C2), /* 9A20 */ + MB2(0xE9C3), 0x0000, 0x0000, MB2(0xE9C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C5), MB2(0xE9C6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9C7), + 0x0000, MB2(0xE9C8), MB2(0xE9C9), 0x0000, + MB2(0xE9CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9CC), 0x0000, 0x0000, /* 9A40 */ + MB2(0xE9CD), 0x0000, 0x0000, MB2(0xE9CB), + 0x0000, 0x0000, MB2(0xE9CE), MB2(0xE9CF), + MB2(0xE9D0), 0x0000, MB2(0xE9D1), 0x0000, + 0x0000, MB2(0xE9D2), 0x0000, 0x0000, + MB2(0xE9D3), 0x0000, MB2(0xE9D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9D5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9D6), 0x0000, + MB2(0xE9D7), 0x0000, MB2(0xE9D8), MB2(0xE9D9), + 0x0000, 0x0000, MB2(0xE9DA), 0x0000, + MB2(0xE9DB), MB2(0xE9DC), MB2(0xE9DD), 0x0000, + 0x0000, MB2(0xE9DE), 0x0000, MB2(0xE9DF), + 0x0000, 0x0000, MB2(0xE9E0), MB2(0xE9E1), + 0x0000, MB2(0xE9E2), 0x0000, MB2(0xE9E3), /* 9AC0 */ + 0x0000, 0x0000, MB2(0xE9E4), 0x0000, + MB2(0xE9E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9E6), 0x0000, + MB2(0xE9E7), 0x0000, MB2(0xE9E8), 0x0000, + 0x0000, MB2(0xE9E9), MB2(0xE9EA), MB2(0xE9EB), + 0x0000, MB2(0xF4FB), 0x0000, MB2(0xE9EC), + MB2(0xE9ED), 0x0000, 0x0000, 0x0000, + MB2(0xE9EE), 0x0000, 0x0000, 0x0000, /* 9AE0 */ + MB2(0xE9EF), MB2(0xE9F0), 0x0000, MB2(0xE9F1), + 0x0000, MB2(0xE9F2), 0x0000, 0x0000, + MB2(0xE9F3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9F4), MB2(0xE9F5), + 0x0000, MB2(0xE9F6), 0x0000, 0x0000, + 0x0000, MB2(0xE9F7), MB2(0xE9F8), 0x0000, + 0x0000, MB2(0xE9F9), 0x0000, MB2(0xE9FA), + MB2(0xE9FB), MB2(0xE9FC), MB2(0xE9FD), MB2(0xE9FE), /* 9B00 */ + MB2(0xEAA1), MB2(0xEAA2), 0x0000, 0x0000, + MB2(0xEAA3), MB2(0xEAA4), 0x0000, MB2(0xEAA5), + MB2(0xEAA6), MB2(0xEAA7), MB2(0xEAA8), 0x0000, + MB2(0xEAA9), 0x0000, MB2(0xEAAA), 0x0000, + 0x0000, 0x0000, MB2(0xEAAB), 0x0000, + 0x0000, MB2(0xEAAC), 0x0000, MB2(0xEAAD), + MB2(0xEAAE), 0x0000, 0x0000, 0x0000, + MB2(0xEAAF), 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, MB2(0xEAB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAB1), + 0x0000, MB2(0xEAB2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAB3), + MB2(0xEAB4), MB2(0xEAB5), 0x0000, MB2(0xEAB6), + 0x0000, MB2(0xEAB7), MB2(0xEAB8), 0x0000, + 0x0000, MB2(0xEAB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEABA), 0x0000, 0x0000, MB2(0xEABB), + MB2(0xEABC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEABD), MB2(0xEABE), MB2(0xEABF), + 0x0000, 0x0000, 0x0000, MB2(0xEAC0), + 0x0000, 0x0000, MB2(0xEAC1), 0x0000, + 0x0000, MB2(0xEAC2), 0x0000, MB2(0xEAC3), /* 9B60 */ + 0x0000, MB2(0xEAC4), MB2(0xEAC5), 0x0000, + MB2(0xEAC6), 0x0000, MB2(0xEAC7), MB2(0xEAC8), + MB2(0xEAC9), MB2(0xEACA), MB2(0xEACB), 0x0000, + 0x0000, 0x0000, MB2(0xF4FC), MB2(0xEACC), + 0x0000, MB2(0xEACD), 0x0000, MB2(0xEACE), + MB2(0xEACF), MB2(0xEAD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAD1), + MB2(0xEAD2), 0x0000, 0x0000, 0x0000, /* 9B80 */ + MB2(0xEAD3), MB2(0xEAD4), MB2(0xEAD5), MB2(0xEAD6), + 0x0000, MB2(0xEAD7), MB2(0xEAD8), MB2(0xEAD9), + 0x0000, MB2(0xEADA), 0x0000, MB2(0xEADB), + MB2(0xEADC), 0x0000, 0x0000, 0x0000, + MB2(0xEADD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEADE), 0x0000, + 0x0000, MB2(0xEADF), MB2(0xEAE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, MB2(0xEAE1), MB2(0xEAE2), + 0x0000, MB2(0xEAE3), 0x0000, 0x0000, + MB2(0xEAE4), 0x0000, 0x0000, 0x0000, + MB2(0xEAE5), MB2(0xEAE6), MB2(0xEAE7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAE8), + MB2(0xEAE9), 0x0000, 0x0000, MB2(0xEAEA), + MB2(0xEAEB), 0x0000, MB2(0xEAEC), MB2(0xEAED), + 0x0000, MB2(0xEAEE), 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xEAEF), + MB2(0xEAF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAF1), 0x0000, + MB2(0xEAF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAF3), + MB2(0xEAF4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAF5), 0x0000, MB2(0xEAF6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BE0 */ + 0x0000, MB2(0xEAF7), 0x0000, MB2(0xEAF8), + 0x0000, 0x0000, MB2(0xEAF9), MB2(0xEAFA), + 0x0000, 0x0000, 0x0000, MB2(0xEAFB), + 0x0000, 0x0000, 0x0000, MB2(0xEAFC), + 0x0000, 0x0000, 0x0000, MB2(0xEAFD), + MB2(0xEAFE), MB2(0xEBA1), MB2(0xEBA2), 0x0000, + 0x0000, MB2(0xEBA3), 0x0000, MB2(0xEBA4), + MB2(0xEBA5), 0x0000, MB2(0xEBA6), 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBA7), + 0x0000, 0x0000, 0x0000, MB2(0xEBA8), + 0x0000, MB2(0xEBA9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBAA), 0x0000, + MB2(0xEBAB), MB2(0xEBAC), MB2(0xEBAD), 0x0000, + MB2(0xEBAE), 0x0000, MB2(0xEBAF), 0x0000, + 0x0000, 0x0000, MB2(0xEBB0), MB2(0xEBB1), /* 9C20 */ + 0x0000, 0x0000, MB2(0xEBB2), MB2(0xEBB3), + MB2(0xEBB4), MB2(0xEBB5), MB2(0xEBB6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBB7), 0x0000, 0x0000, + 0x0000, MB2(0xEBB8), MB2(0xEBB9), MB2(0xEBBA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBBB), 0x0000, 0x0000, + 0x0000, MB2(0xEBBC), 0x0000, MB2(0xEBBD), /* 9C40 */ + MB2(0xEBBE), MB2(0xEBBF), 0x0000, 0x0000, + 0x0000, MB2(0xEBC0), MB2(0xEBC1), 0x0000, + 0x0000, 0x0000, MB2(0xEBC2), MB2(0xEBC3), + MB2(0xEBC4), 0x0000, 0x0000, MB2(0xEBC5), + MB2(0xEBC6), 0x0000, MB2(0xEBC7), 0x0000, + MB2(0xEBC8), 0x0000, 0x0000, MB2(0xEBC9), + MB2(0xEBD0), MB2(0xEBCA), MB2(0xEBCB), MB2(0xEBCC), + 0x0000, 0x0000, 0x0000, MB2(0xEBCD), /* 9C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBD2), MB2(0xEBCE), MB2(0xEBCF), MB2(0xEBD1), + 0x0000, 0x0000, MB2(0xEBD3), 0x0000, + MB2(0xEBD4), 0x0000, MB2(0xEBD5), 0x0000, + 0x0000, MB2(0xEBD6), 0x0000, MB2(0xEBD7), + 0x0000, 0x0000, 0x0000, MB2(0xEBD8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, 0x0000, MB2(0xEBD9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBDA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBDB), + 0x0000, MB2(0xEBDC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBDE), 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBDD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBDF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBE0), + MB2(0xEBE1), 0x0000, 0x0000, 0x0000, + MB2(0xEBE2), MB2(0xEBE3), MB2(0xEBE4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBE5), + MB2(0xEBE6), 0x0000, MB2(0xEBE7), MB2(0xEBE8), + MB2(0xEBE9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBEA), 0x0000, + MB2(0xEBEB), MB2(0xEBED), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBEE), MB2(0xEBEF), /* 9D40 */ + 0x0000, MB2(0xEBEC), 0x0000, MB2(0xEBF0), + 0x0000, 0x0000, MB2(0xEBF1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBF2), + MB2(0xEBF3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBF4), + 0x0000, 0x0000, MB2(0xEBF6), MB2(0xEBF5), /* 9D60 */ + 0x0000, MB2(0xEBF7), 0x0000, 0x0000, + 0x0000, MB2(0xEBF8), MB2(0xEBF9), MB2(0xEBFA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBFB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBFC), MB2(0xEBFD), + 0x0000, 0x0000, 0x0000, MB2(0xEBFE), + MB2(0xECA1), 0x0000, MB2(0xECA2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECA3), /* 9D80 */ + MB2(0xECA4), 0x0000, MB2(0xECA5), 0x0000, + 0x0000, 0x0000, MB2(0xECA6), 0x0000, + 0x0000, MB2(0xECA7), MB2(0xECA8), 0x0000, + 0x0000, 0x0000, MB2(0xECA9), MB2(0xECAA), + 0x0000, MB2(0xECAB), MB2(0xECAC), MB2(0xECAD), + MB2(0xECAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECAF), 0x0000, 0x0000, /* 9DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECB0), 0x0000, + MB2(0xECB1), 0x0000, MB2(0xECB2), 0x0000, + 0x0000, MB2(0xECB3), 0x0000, 0x0000, + 0x0000, MB2(0xECB4), 0x0000, 0x0000, + 0x0000, MB2(0xECB5), 0x0000, 0x0000, + MB2(0xECB6), 0x0000, 0x0000, MB2(0xECB7), + 0x0000, 0x0000, 0x0000, MB2(0xECB8), /* 9DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xECB9), + 0x0000, MB2(0xECBA), MB2(0xECBB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECBC), MB2(0xECBD), MB2(0xECBE), MB2(0xECBF), + 0x0000, 0x0000, MB2(0xECC0), 0x0000, + 0x0000, 0x0000, MB2(0xECC1), MB2(0xECC2), + MB2(0xECC3), 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, MB2(0xECC4), 0x0000, MB2(0xECC5), + 0x0000, MB2(0xECC6), 0x0000, MB2(0xECC7), + 0x0000, 0x0000, MB2(0xECC8), 0x0000, + MB2(0xECC9), 0x0000, 0x0000, MB2(0xECCA), + MB2(0xECCB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECCC), 0x0000, + 0x0000, 0x0000, MB2(0xECCE), 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, MB2(0xECCF), + 0x0000, 0x0000, MB2(0xECCD), 0x0000, + 0x0000, 0x0000, MB2(0xECD0), 0x0000, + MB2(0xECD1), MB2(0xECD2), MB2(0xECD3), 0x0000, + 0x0000, MB2(0xECD4), MB2(0xECD5), 0x0000, + 0x0000, MB2(0xECD6), 0x0000, 0x0000, + MB2(0xECD7), MB2(0xECD8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECD9), MB2(0xECDA), + MB2(0xECDB), 0x0000, 0x0000, 0x0000, + MB2(0xECDC), 0x0000, MB2(0xECDD), MB2(0xECDE), /* 9E80 */ + MB2(0xECDF), MB2(0xECE0), 0x0000, MB2(0xECE1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECE2), MB2(0xECE3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECE4), 0x0000, + MB2(0xECE5), 0x0000, 0x0000, MB2(0xECE6), + 0x0000, 0x0000, MB2(0xECE7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + MB2(0xECE8), 0x0000, 0x0000, 0x0000, + MB2(0xECE9), 0x0000, 0x0000, 0x0000, + MB2(0xECEA), 0x0000, MB2(0xECEB), MB2(0xECEC), + MB2(0xECED), 0x0000, 0x0000, MB2(0xECEE), + MB2(0xECEF), MB2(0xECF0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + 0x0000, 0x0000, MB2(0xECF1), 0x0000, + MB2(0xECF2), 0x0000, 0x0000, MB2(0xECF3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF4FE), 0x0000, 0x0000, + 0x0000, MB2(0xECF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECF5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EE0 */ + MB2(0xECF6), 0x0000, 0x0000, MB2(0xECF7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECF8), MB2(0xECF9), MB2(0xECFA), 0x0000, + MB2(0xECFB), MB2(0xECFC), MB2(0xECFD), 0x0000, + 0x0000, MB2(0xECFE), 0x0000, 0x0000, + MB2(0xEDA1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDA2), + 0x0000, 0x0000, MB2(0xEDA3), MB2(0xEDA4), /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDA5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDA6), + MB2(0xEDA7), MB2(0xEDA8), MB2(0xEDA9), 0x0000, + MB2(0xEDAA), 0x0000, MB2(0xEDAB), MB2(0xEDAC), + 0x0000, MB2(0xEDAD), MB2(0xEDAE), MB2(0xEDAF), + 0x0000, 0x0000, 0x0000, MB2(0xEDB0), + 0x0000, 0x0000, MB2(0xEDB1), 0x0000, /* 9F20 */ + 0x0000, 0x0000, MB2(0xEDB2), 0x0000, + 0x0000, 0x0000, MB2(0xEDB3), MB2(0xEDB4), + 0x0000, 0x0000, 0x0000, MB2(0xEDB5), + 0x0000, MB2(0xEDB6), MB2(0xEDB7), 0x0000, + MB2(0xEDB8), 0x0000, 0x0000, MB2(0xEDB9), + 0x0000, MB2(0xEDBA), MB2(0xEDBB), 0x0000, + MB2(0xEDBC), MB2(0xEDBD), 0x0000, MB2(0xEDBE), + 0x0000, MB2(0xEDBF), 0x0000, MB2(0xEDC0), /* 9F40 */ + MB2(0xEDC1), MB2(0xEDC2), MB2(0xEDC3), MB2(0xEDC4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDC5), + 0x0000, MB2(0xEDC6), MB2(0xEDC7), MB2(0xEDC8), + MB2(0xEDC9), 0x0000, MB2(0xEDCA), 0x0000, + 0x0000, MB2(0xEDCB), MB2(0xEDCC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEDCD), MB2(0xEDCE), 0x0000, 0x0000, + 0x0000, MB2(0xEDCF), MB2(0xEDD0), MB2(0xEDD1), + MB2(0xEDD2), MB2(0xEDD3), 0x0000, MB2(0xEDD4), + 0x0000, MB2(0xEDD5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDD6), 0x0000, + 0x0000, MB2(0xEDD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDD8), + MB2(0xEDD9), MB2(0xEDDA), MB2(0xEDDB), 0x0000, + MB2(0xEDDC), 0x0000, MB2(0xEDDD), MB2(0xEDDE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDDF), 0x0000, + 0x0000, MB2(0xEDE0), MB2(0xEDE1), MB2(0xEDE2), /* 9FA0 */ + 0x0000, MB2(0xEDE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF5A1), MB2(0xF5A2), MB2(0xF5A3), MB2(0xF5A4), + MB2(0xF5A5), MB2(0xF5A6), MB2(0xF5A7), MB2(0xF5A8), + MB2(0xF5A9), MB2(0xF5AA), MB2(0xF5AB), MB2(0xF5AC), + MB2(0xF5AD), MB2(0xF5AE), MB2(0xF5AF), MB2(0xF5B0), + MB2(0xF5B1), MB2(0xF5B2), MB2(0xF5B3), MB2(0xF5B4), + MB2(0xF5B5), MB2(0xF5B6), MB2(0xF5B7), MB2(0xF5B8), /* E3C0 */ + MB2(0xF5B9), MB2(0xF5BA), MB2(0xF5BB), MB2(0xF5BC), + MB2(0xF5BD), MB2(0xF5BE), MB2(0xF5BF), MB2(0xF5C0), + MB2(0xF5C1), MB2(0xF5C2), MB2(0xF5C3), MB2(0xF5C4), + MB2(0xF5C5), MB2(0xF5C6), MB2(0xF5C7), MB2(0xF5C8), + MB2(0xF5C9), MB2(0xF5CA), MB2(0xF5CB), MB2(0xF5CC), + MB2(0xF5CD), MB2(0xF5CE), MB2(0xF5CF), MB2(0xF5D0), + MB2(0xF5D1), MB2(0xF5D2), MB2(0xF5D3), MB2(0xF5D4), + MB2(0xF5D5), MB2(0xF5D6), MB2(0xF5D7), MB2(0xF5D8), /* E3E0 */ + MB2(0xF5D9), MB2(0xF5DA), MB2(0xF5DB), MB2(0xF5DC), + MB2(0xF5DD), MB2(0xF5DE), MB2(0xF5DF), MB2(0xF5E0), + MB2(0xF5E1), MB2(0xF5E2), MB2(0xF5E3), MB2(0xF5E4), + MB2(0xF5E5), MB2(0xF5E6), MB2(0xF5E7), MB2(0xF5E8), + MB2(0xF5E9), MB2(0xF5EA), MB2(0xF5EB), MB2(0xF5EC), + MB2(0xF5ED), MB2(0xF5EE), MB2(0xF5EF), MB2(0xF5F0), + MB2(0xF5F1), MB2(0xF5F2), MB2(0xF5F3), MB2(0xF5F4), + MB2(0xF5F5), MB2(0xF5F6), MB2(0xF5F7), MB2(0xF5F8), /* E400 */ + MB2(0xF5F9), MB2(0xF5FA), MB2(0xF5FB), MB2(0xF5FC), + MB2(0xF5FD), MB2(0xF5FE), MB2(0xF6A1), MB2(0xF6A2), + MB2(0xF6A3), MB2(0xF6A4), MB2(0xF6A5), MB2(0xF6A6), + MB2(0xF6A7), MB2(0xF6A8), MB2(0xF6A9), MB2(0xF6AA), + MB2(0xF6AB), MB2(0xF6AC), MB2(0xF6AD), MB2(0xF6AE), + MB2(0xF6AF), MB2(0xF6B0), MB2(0xF6B1), MB2(0xF6B2), + MB2(0xF6B3), MB2(0xF6B4), MB2(0xF6B5), MB2(0xF6B6), + MB2(0xF6B7), MB2(0xF6B8), MB2(0xF6B9), MB2(0xF6BA), /* E420 */ + MB2(0xF6BB), MB2(0xF6BC), MB2(0xF6BD), MB2(0xF6BE), + MB2(0xF6BF), MB2(0xF6C0), MB2(0xF6C1), MB2(0xF6C2), + MB2(0xF6C3), MB2(0xF6C4), MB2(0xF6C5), MB2(0xF6C6), + MB2(0xF6C7), MB2(0xF6C8), MB2(0xF6C9), MB2(0xF6CA), + MB2(0xF6CB), MB2(0xF6CC), MB2(0xF6CD), MB2(0xF6CE), + MB2(0xF6CF), MB2(0xF6D0), MB2(0xF6D1), MB2(0xF6D2), + MB2(0xF6D3), MB2(0xF6D4), MB2(0xF6D5), MB2(0xF6D6), + MB2(0xF6D7), MB2(0xF6D8), MB2(0xF6D9), MB2(0xF6DA), /* E440 */ + MB2(0xF6DB), MB2(0xF6DC), MB2(0xF6DD), MB2(0xF6DE), + MB2(0xF6DF), MB2(0xF6E0), MB2(0xF6E1), MB2(0xF6E2), + MB2(0xF6E3), MB2(0xF6E4), MB2(0xF6E5), MB2(0xF6E6), + MB2(0xF6E7), MB2(0xF6E8), MB2(0xF6E9), MB2(0xF6EA), + MB2(0xF6EB), MB2(0xF6EC), MB2(0xF6ED), MB2(0xF6EE), + MB2(0xF6EF), MB2(0xF6F0), MB2(0xF6F1), MB2(0xF6F2), + MB2(0xF6F3), MB2(0xF6F4), MB2(0xF6F5), MB2(0xF6F6), + MB2(0xF6F7), MB2(0xF6F8), MB2(0xF6F9), MB2(0xF6FA), /* E460 */ + MB2(0xF6FB), MB2(0xF6FC), MB2(0xF6FD), MB2(0xF6FE), + MB2(0xF7A1), MB2(0xF7A2), MB2(0xF7A3), MB2(0xF7A4), + MB2(0xF7A5), MB2(0xF7A6), MB2(0xF7A7), MB2(0xF7A8), + MB2(0xF7A9), MB2(0xF7AA), MB2(0xF7AB), MB2(0xF7AC), + MB2(0xF7AD), MB2(0xF7AE), MB2(0xF7AF), MB2(0xF7B0), + MB2(0xF7B1), MB2(0xF7B2), MB2(0xF7B3), MB2(0xF7B4), + MB2(0xF7B5), MB2(0xF7B6), MB2(0xF7B7), MB2(0xF7B8), + MB2(0xF7B9), MB2(0xF7BA), MB2(0xF7BB), MB2(0xF7BC), /* E480 */ + MB2(0xF7BD), MB2(0xF7BE), MB2(0xF7BF), MB2(0xF7C0), + MB2(0xF7C1), MB2(0xF7C2), MB2(0xF7C3), MB2(0xF7C4), + MB2(0xF7C5), MB2(0xF7C6), MB2(0xF7C7), MB2(0xF7C8), + MB2(0xF7C9), MB2(0xF7CA), MB2(0xF7CB), MB2(0xF7CC), + MB2(0xF7CD), MB2(0xF7CE), MB2(0xF7CF), MB2(0xF7D0), + MB2(0xF7D1), MB2(0xF7D2), MB2(0xF7D3), MB2(0xF7D4), + MB2(0xF7D5), MB2(0xF7D6), MB2(0xF7D7), MB2(0xF7D8), + MB2(0xF7D9), MB2(0xF7DA), MB2(0xF7DB), MB2(0xF7DC), /* E4A0 */ + MB2(0xF7DD), MB2(0xF7DE), MB2(0xF7DF), MB2(0xF7E0), + MB2(0xF7E1), MB2(0xF7E2), MB2(0xF7E3), MB2(0xF7E4), + MB2(0xF7E5), MB2(0xF7E6), MB2(0xF7E7), MB2(0xF7E8), + MB2(0xF7E9), MB2(0xF7EA), MB2(0xF7EB), MB2(0xF7EC), + MB2(0xF7ED), MB2(0xF7EE), MB2(0xF7EF), MB2(0xF7F0), + MB2(0xF7F1), MB2(0xF7F2), MB2(0xF7F3), MB2(0xF7F4), + MB2(0xF7F5), MB2(0xF7F6), MB2(0xF7F7), MB2(0xF7F8), + MB2(0xF7F9), MB2(0xF7FA), MB2(0xF7FB), MB2(0xF7FC), /* E4C0 */ + MB2(0xF7FD), MB2(0xF7FE), MB2(0xF8A1), MB2(0xF8A2), + MB2(0xF8A3), MB2(0xF8A4), MB2(0xF8A5), MB2(0xF8A6), + MB2(0xF8A7), MB2(0xF8A8), MB2(0xF8A9), MB2(0xF8AA), + MB2(0xF8AB), MB2(0xF8AC), MB2(0xF8AD), MB2(0xF8AE), + MB2(0xF8AF), MB2(0xF8B0), MB2(0xF8B1), MB2(0xF8B2), + MB2(0xF8B3), MB2(0xF8B4), MB2(0xF8B5), MB2(0xF8B6), + MB2(0xF8B7), MB2(0xF8B8), MB2(0xF8B9), MB2(0xF8BA), + MB2(0xF8BB), MB2(0xF8BC), MB2(0xF8BD), MB2(0xF8BE), /* E4E0 */ + MB2(0xF8BF), MB2(0xF8C0), MB2(0xF8C1), MB2(0xF8C2), + MB2(0xF8C3), MB2(0xF8C4), MB2(0xF8C5), MB2(0xF8C6), + MB2(0xF8C7), MB2(0xF8C8), MB2(0xF8C9), MB2(0xF8CA), + MB2(0xF8CB), MB2(0xF8CC), MB2(0xF8CD), MB2(0xF8CE), + MB2(0xF8CF), MB2(0xF8D0), MB2(0xF8D1), MB2(0xF8D2), + MB2(0xF8D3), MB2(0xF8D4), MB2(0xF8D5), MB2(0xF8D6), + MB2(0xF8D7), MB2(0xF8D8), MB2(0xF8D9), MB2(0xF8DA), + MB2(0xF8DB), MB2(0xF8DC), MB2(0xF8DD), MB2(0xF8DE), /* E500 */ + MB2(0xF8DF), MB2(0xF8E0), MB2(0xF8E1), MB2(0xF8E2), + MB2(0xF8E3), MB2(0xF8E4), MB2(0xF8E5), MB2(0xF8E6), + MB2(0xF8E7), MB2(0xF8E8), MB2(0xF8E9), MB2(0xF8EA), + MB2(0xF8EB), MB2(0xF8EC), MB2(0xF8ED), MB2(0xF8EE), + MB2(0xF8EF), MB2(0xF8F0), MB2(0xF8F1), MB2(0xF8F2), + MB2(0xF8F3), MB2(0xF8F4), MB2(0xF8F5), MB2(0xF8F6), + MB2(0xF8F7), MB2(0xF8F8), MB2(0xF8F9), MB2(0xF8FA), + MB2(0xF8FB), MB2(0xF8FC), MB2(0xF8FD), MB2(0xF8FE), /* E520 */ + MB2(0xF9A1), MB2(0xF9A2), MB2(0xF9A3), MB2(0xF9A4), + MB2(0xF9A5), MB2(0xF9A6), MB2(0xF9A7), MB2(0xF9A8), + MB2(0xF9A9), MB2(0xF9AA), MB2(0xF9AB), MB2(0xF9AC), + MB2(0xF9AD), MB2(0xF9AE), MB2(0xF9AF), MB2(0xF9B0), + MB2(0xF9B1), MB2(0xF9B2), MB2(0xF9B3), MB2(0xF9B4), + MB2(0xF9B5), MB2(0xF9B6), MB2(0xF9B7), MB2(0xF9B8), + MB2(0xF9B9), MB2(0xF9BA), MB2(0xF9BB), MB2(0xF9BC), + MB2(0xF9BD), MB2(0xF9BE), MB2(0xF9BF), MB2(0xF9C0), /* E540 */ + MB2(0xF9C1), MB2(0xF9C2), MB2(0xF9C3), MB2(0xF9C4), + MB2(0xF9C5), MB2(0xF9C6), MB2(0xF9C7), MB2(0xF9C8), + MB2(0xF9C9), MB2(0xF9CA), MB2(0xF9CB), MB2(0xF9CC), + MB2(0xF9CD), MB2(0xF9CE), MB2(0xF9CF), MB2(0xF9D0), + MB2(0xF9D1), MB2(0xF9D2), MB2(0xF9D3), MB2(0xF9D4), + MB2(0xF9D5), MB2(0xF9D6), MB2(0xF9D7), MB2(0xF9D8), + MB2(0xF9D9), MB2(0xF9DA), MB2(0xF9DB), MB2(0xF9DC), + MB2(0xF9DD), MB2(0xF9DE), MB2(0xF9DF), MB2(0xF9E0), /* E560 */ + MB2(0xF9E1), MB2(0xF9E2), MB2(0xF9E3), MB2(0xF9E4), + MB2(0xF9E5), MB2(0xF9E6), MB2(0xF9E7), MB2(0xF9E8), + MB2(0xF9E9), MB2(0xF9EA), MB2(0xF9EB), MB2(0xF9EC), + MB2(0xF9ED), MB2(0xF9EE), MB2(0xF9EF), MB2(0xF9F0), + MB2(0xF9F1), MB2(0xF9F2), MB2(0xF9F3), MB2(0xF9F4), + MB2(0xF9F5), MB2(0xF9F6), MB2(0xF9F7), MB2(0xF9F8), + MB2(0xF9F9), MB2(0xF9FA), MB2(0xF9FB), MB2(0xF9FC), + MB2(0xF9FD), MB2(0xF9FE), MB2(0xFAA1), MB2(0xFAA2), /* E580 */ + MB2(0xFAA3), MB2(0xFAA4), MB2(0xFAA5), MB2(0xFAA6), + MB2(0xFAA7), MB2(0xFAA8), MB2(0xFAA9), MB2(0xFAAA), + MB2(0xFAAB), MB2(0xFAAC), MB2(0xFAAD), MB2(0xFAAE), + MB2(0xFAAF), MB2(0xFAB0), MB2(0xFAB1), MB2(0xFAB2), + MB2(0xFAB3), MB2(0xFAB4), MB2(0xFAB5), MB2(0xFAB6), + MB2(0xFAB7), MB2(0xFAB8), MB2(0xFAB9), MB2(0xFABA), + MB2(0xFABB), MB2(0xFABC), MB2(0xFABD), MB2(0xFABE), + MB2(0xFABF), MB2(0xFAC0), MB2(0xFAC1), MB2(0xFAC2), /* E5A0 */ + MB2(0xFAC3), MB2(0xFAC4), MB2(0xFAC5), MB2(0xFAC6), + MB2(0xFAC7), MB2(0xFAC8), MB2(0xFAC9), MB2(0xFACA), + MB2(0xFACB), MB2(0xFACC), MB2(0xFACD), MB2(0xFACE), + MB2(0xFACF), MB2(0xFAD0), MB2(0xFAD1), MB2(0xFAD2), + MB2(0xFAD3), MB2(0xFAD4), MB2(0xFAD5), MB2(0xFAD6), + MB2(0xFAD7), MB2(0xFAD8), MB2(0xFAD9), MB2(0xFADA), + MB2(0xFADB), MB2(0xFADC), MB2(0xFADD), MB2(0xFADE), + MB2(0xFADF), MB2(0xFAE0), MB2(0xFAE1), MB2(0xFAE2), /* E5C0 */ + MB2(0xFAE3), MB2(0xFAE4), MB2(0xFAE5), MB2(0xFAE6), + MB2(0xFAE7), MB2(0xFAE8), MB2(0xFAE9), MB2(0xFAEA), + MB2(0xFAEB), MB2(0xFAEC), MB2(0xFAED), MB2(0xFAEE), + MB2(0xFAEF), MB2(0xFAF0), MB2(0xFAF1), MB2(0xFAF2), + MB2(0xFAF3), MB2(0xFAF4), MB2(0xFAF5), MB2(0xFAF6), + MB2(0xFAF7), MB2(0xFAF8), MB2(0xFAF9), MB2(0xFAFA), + MB2(0xFAFB), MB2(0xFAFC), MB2(0xFAFD), MB2(0xFAFE), + MB2(0xFBA1), MB2(0xFBA2), MB2(0xFBA3), MB2(0xFBA4), /* E5E0 */ + MB2(0xFBA5), MB2(0xFBA6), MB2(0xFBA7), MB2(0xFBA8), + MB2(0xFBA9), MB2(0xFBAA), MB2(0xFBAB), MB2(0xFBAC), + MB2(0xFBAD), MB2(0xFBAE), MB2(0xFBAF), MB2(0xFBB0), + MB2(0xFBB1), MB2(0xFBB2), MB2(0xFBB3), MB2(0xFBB4), + MB2(0xFBB5), MB2(0xFBB6), MB2(0xFBB7), MB2(0xFBB8), + MB2(0xFBB9), MB2(0xFBBA), MB2(0xFBBB), MB2(0xFBBC), + MB2(0xFBBD), MB2(0xFBBE), MB2(0xFBBF), MB2(0xFBC0), + MB2(0xFBC1), MB2(0xFBC2), MB2(0xFBC3), MB2(0xFBC4), /* E600 */ + MB2(0xFBC5), MB2(0xFBC6), MB2(0xFBC7), MB2(0xFBC8), + MB2(0xFBC9), MB2(0xFBCA), MB2(0xFBCB), MB2(0xFBCC), + MB2(0xFBCD), MB2(0xFBCE), MB2(0xFBCF), MB2(0xFBD0), + MB2(0xFBD1), MB2(0xFBD2), MB2(0xFBD3), MB2(0xFBD4), + MB2(0xFBD5), MB2(0xFBD6), MB2(0xFBD7), MB2(0xFBD8), + MB2(0xFBD9), MB2(0xFBDA), MB2(0xFBDB), MB2(0xFBDC), + MB2(0xFBDD), MB2(0xFBDE), MB2(0xFBDF), MB2(0xFBE0), + MB2(0xFBE1), MB2(0xFBE2), MB2(0xFBE3), MB2(0xFBE4), /* E620 */ + MB2(0xFBE5), MB2(0xFBE6), MB2(0xFBE7), MB2(0xFBE8), + MB2(0xFBE9), MB2(0xFBEA), MB2(0xFBEB), MB2(0xFBEC), + MB2(0xFBED), MB2(0xFBEE), MB2(0xFBEF), MB2(0xFBF0), + MB2(0xFBF1), MB2(0xFBF2), MB2(0xFBF3), MB2(0xFBF4), + MB2(0xFBF5), MB2(0xFBF6), MB2(0xFBF7), MB2(0xFBF8), + MB2(0xFBF9), MB2(0xFBFA), MB2(0xFBFB), MB2(0xFBFC), + MB2(0xFBFD), MB2(0xFBFE), MB2(0xFCA1), MB2(0xFCA2), + MB2(0xFCA3), MB2(0xFCA4), MB2(0xFCA5), MB2(0xFCA6), /* E640 */ + MB2(0xFCA7), MB2(0xFCA8), MB2(0xFCA9), MB2(0xFCAA), + MB2(0xFCAB), MB2(0xFCAC), MB2(0xFCAD), MB2(0xFCAE), + MB2(0xFCAF), MB2(0xFCB0), MB2(0xFCB1), MB2(0xFCB2), + MB2(0xFCB3), MB2(0xFCB4), MB2(0xFCB5), MB2(0xFCB6), + MB2(0xFCB7), MB2(0xFCB8), MB2(0xFCB9), MB2(0xFCBA), + MB2(0xFCBB), MB2(0xFCBC), MB2(0xFCBD), MB2(0xFCBE), + MB2(0xFCBF), MB2(0xFCC0), MB2(0xFCC1), MB2(0xFCC2), + MB2(0xFCC3), MB2(0xFCC4), MB2(0xFCC5), MB2(0xFCC6), /* E660 */ + MB2(0xFCC7), MB2(0xFCC8), MB2(0xFCC9), MB2(0xFCCA), + MB2(0xFCCB), MB2(0xFCCC), MB2(0xFCCD), MB2(0xFCCE), + MB2(0xFCCF), MB2(0xFCD0), MB2(0xFCD1), MB2(0xFCD2), + MB2(0xFCD3), MB2(0xFCD4), MB2(0xFCD5), MB2(0xFCD6), + MB2(0xFCD7), MB2(0xFCD8), MB2(0xFCD9), MB2(0xFCDA), + MB2(0xFCDB), MB2(0xFCDC), MB2(0xFCDD), MB2(0xFCDE), + MB2(0xFCDF), MB2(0xFCE0), MB2(0xFCE1), MB2(0xFCE2), + MB2(0xFCE3), MB2(0xFCE4), MB2(0xFCE5), MB2(0xFCE6), /* E680 */ + MB2(0xFCE7), MB2(0xFCE8), MB2(0xFCE9), MB2(0xFCEA), + MB2(0xFCEB), MB2(0xFCEC), MB2(0xFCED), MB2(0xFCEE), + MB2(0xFCEF), MB2(0xFCF0), MB2(0xFCF1), MB2(0xFCF2), + MB2(0xFCF3), MB2(0xFCF4), MB2(0xFCF5), MB2(0xFCF6), + MB2(0xFCF7), MB2(0xFCF8), MB2(0xFCF9), MB2(0xFCFA), + MB2(0xFCFB), MB2(0xFCFC), MB2(0xFCFD), MB2(0xFCFE), + MB2(0xFDA1), MB2(0xFDA2), MB2(0xFDA3), MB2(0xFDA4), + MB2(0xFDA5), MB2(0xFDA6), MB2(0xFDA7), MB2(0xFDA8), /* E6A0 */ + MB2(0xFDA9), MB2(0xFDAA), MB2(0xFDAB), MB2(0xFDAC), + MB2(0xFDAD), MB2(0xFDAE), MB2(0xFDAF), MB2(0xFDB0), + MB2(0xFDB1), MB2(0xFDB2), MB2(0xFDB3), MB2(0xFDB4), + MB2(0xFDB5), MB2(0xFDB6), MB2(0xFDB7), MB2(0xFDB8), + MB2(0xFDB9), MB2(0xFDBA), MB2(0xFDBB), MB2(0xFDBC), + MB2(0xFDBD), MB2(0xFDBE), MB2(0xFDBF), MB2(0xFDC0), + MB2(0xFDC1), MB2(0xFDC2), MB2(0xFDC3), MB2(0xFDC4), + MB2(0xFDC5), MB2(0xFDC6), MB2(0xFDC7), MB2(0xFDC8), /* E6C0 */ + MB2(0xFDC9), MB2(0xFDCA), MB2(0xFDCB), MB2(0xFDCC), + MB2(0xFDCD), MB2(0xFDCE), MB2(0xFDCF), MB2(0xFDD0), + MB2(0xFDD1), MB2(0xFDD2), MB2(0xFDD3), MB2(0xFDD4), + MB2(0xFDD5), MB2(0xFDD6), MB2(0xFDD7), MB2(0xFDD8), + MB2(0xFDD9), MB2(0xFDDA), MB2(0xFDDB), MB2(0xFDDC), + MB2(0xFDDD), MB2(0xFDDE), MB2(0xFDDF), MB2(0xFDE0), + MB2(0xFDE1), MB2(0xFDE2), MB2(0xFDE3), MB2(0xFDE4), + MB2(0xFDE5), MB2(0xFDE6), MB2(0xFDE7), MB2(0xFDE8), /* E6E0 */ + MB2(0xFDE9), MB2(0xFDEA), MB2(0xFDEB), MB2(0xFDEC), + MB2(0xFDED), MB2(0xFDEE), MB2(0xFDEF), MB2(0xFDF0), + MB2(0xFDF1), MB2(0xFDF2), MB2(0xFDF3), MB2(0xFDF4), + MB2(0xFDF5), MB2(0xFDF6), MB2(0xFDF7), MB2(0xFDF8), + MB2(0xFDF9), MB2(0xFDFA), MB2(0xFDFB), MB2(0xFDFC), + MB2(0xFDFD), MB2(0xFDFE), MB2(0xFEA1), MB2(0xFEA2), + MB2(0xFEA3), MB2(0xFEA4), MB2(0xFEA5), MB2(0xFEA6), + MB2(0xFEA7), MB2(0xFEA8), MB2(0xFEA9), MB2(0xFEAA), /* E700 */ + MB2(0xFEAB), MB2(0xFEAC), MB2(0xFEAD), MB2(0xFEAE), + MB2(0xFEAF), MB2(0xFEB0), MB2(0xFEB1), MB2(0xFEB2), + MB2(0xFEB3), MB2(0xFEB4), MB2(0xFEB5), MB2(0xFEB6), + MB2(0xFEB7), MB2(0xFEB8), MB2(0xFEB9), MB2(0xFEBA), + MB2(0xFEBB), MB2(0xFEBC), MB2(0xFEBD), MB2(0xFEBE), + MB2(0xFEBF), MB2(0xFEC0), MB2(0xFEC1), MB2(0xFEC2), + MB2(0xFEC3), MB2(0xFEC4), MB2(0xFEC5), MB2(0xFEC6), + MB2(0xFEC7), MB2(0xFEC8), MB2(0xFEC9), MB2(0xFECA), /* E720 */ + MB2(0xFECB), MB2(0xFECC), MB2(0xFECD), MB2(0xFECE), + MB2(0xFECF), MB2(0xFED0), MB2(0xFED1), MB2(0xFED2), + MB2(0xFED3), MB2(0xFED4), MB2(0xFED5), MB2(0xFED6), + MB2(0xFED7), MB2(0xFED8), MB2(0xFED9), MB2(0xFEDA), + MB2(0xFEDB), MB2(0xFEDC), MB2(0xFEDD), MB2(0xFEDE), + MB2(0xFEDF), MB2(0xFEE0), MB2(0xFEE1), MB2(0xFEE2), + MB2(0xFEE3), MB2(0xFEE4), MB2(0xFEE5), MB2(0xFEE6), + MB2(0xFEE7), MB2(0xFEE8), MB2(0xFEE9), MB2(0xFEEA), /* E740 */ + MB2(0xFEEB), MB2(0xFEEC), MB2(0xFEED), MB2(0xFEEE), + MB2(0xFEEF), MB2(0xFEF0), MB2(0xFEF1), MB2(0xFEF2), + MB2(0xFEF3), MB2(0xFEF4), MB2(0xFEF5), MB2(0xFEF6), + MB2(0xFEF7), MB2(0xFEF8), MB2(0xFEF9), MB2(0xFEFA), + MB2(0xFEFB), MB2(0xFEFC), MB2(0xFEFD), MB2(0xFEFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF4C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF4F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4B4), MB2(0xF4B7), + MB2(0xF4B8), MB2(0xF4BD), MB2(0xF4C4), MB2(0xF4C7), + MB2(0xF4C8), MB2(0xF4CE), MB2(0xF4CF), MB2(0xF4D3), + MB2(0xF4D5), MB2(0xF4D6), MB2(0xF4D7), MB2(0xF4D8), + MB2(0xF4DA), MB2(0xF4DB), MB2(0xF4DE), MB2(0xF4E0), + MB2(0xF4E2), MB2(0xF4E3), MB2(0xF4E5), MB2(0xF4E9), /* FA20 */ + MB2(0xF4EA), MB2(0xF4EB), MB2(0xF4ED), MB2(0xF4EF), + MB2(0xF4F0), MB2(0xF4F3), MB2(0xF4F7), MB2(0xF4F8), + MB2(0xF4F9), MB2(0xF4FD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF4AA), 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, MB2(0xF4A9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + MB2(0xA2C3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +/** + Scans an EUCJPMS character from the input string + and converts to Unicode code point. + + @param[out] pwc Unicode code point + @param[in] s Beginning of the input string + @param[in[ e End of the input string + + @retval MY_CS_TOOSMALL If the string was too short to scan a character + @retval 1 If a 1-byte character was scanned + @retval 2 If a 2-byte character was scanned + @retval 3 If a 3-byte character was scanned + @retval -2 If a 2-byte unassigned character was scanned + @retval -3 If a 3-byte unassigned character was scanned + @retval MY_CS_ILSEQ If a wrong byte sequence was found +*/ +static int +my_mb_wc_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) /* ASCII code set: [00..7F] -> [U+0000..U+007F] */ + { + *pwc= hi; + return 1; + } + + if (hi >= 0xA1 && hi <= 0xFE) /* JIS X 0208 code set: [A1..FE][A1..FE] */ + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + return (*pwc= jisx0208_eucjpms_to_unicode[(hi << 8) + s[1]]) ? 2 : + (s[1] < 0xA1 || s[1] > 0xFE) ? MY_CS_ILSEQ : -2; + } + + /* JIS-X-0201 HALF WIDTH KATAKANA: [8E][A1..DF] -> [U+FF61..U+FF9F] */ + if (hi == 0x8E) + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + if (s[1] < 0xA1 || s[1] > 0xDF) + return MY_CS_ILSEQ; + *pwc= 0xFEC0 + s[1]; /* 0xFFC0 = 0xFF61 - 0xA1 */ + return 2; + } + + if (hi == 0x8F) /* JIS X 0212 code set: [8F][A1..FE][A1..FE] */ + { + if (s + 3 > e) + return MY_CS_TOOSMALL3; + return (*pwc= jisx0212_eucjpms_to_unicode[(((int) s[1]) << 8) + s[2]]) ? + 3 : + (s[1] < 0xA1 || s[1] > 0xFE || s[2] < 0xA1 || s[2] > 0xFE) ? + MY_CS_ILSEQ : -3; + } + + return MY_CS_ILSEQ; +} + + +/** + Puts the given Unicode character into an EUCJPMS string. + + @param[in] wc Unicode code point + @param[in] s Beginning of the out string + @param[in] e End of the out string + + @retval MY_CS_TOOSMALL If the string was too short to put a character + @retval 1 If a 1-byte character was put + @retval 2 If a 2-byte character was put + @retval MY_CS_ILUNI If the Unicode character does not exist in EUCJPMS +*/ +static int +my_wc_mb_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int jp; + + if ((int) wc < 0x80) /* ASCII [00-7F] */ + { + if (s >= e) + return MY_CS_TOOSMALL; + *s= (uchar) wc; + return 1; + } + + if (wc > 0xFFFF) + return MY_CS_ILUNI; + + if ((jp= unicode_to_jisx0208_eucjpms[wc])) /* JIS-X-0208 MS */ + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + MY_PUT_MB2(s, jp); + return 2; + } + + if ((jp= unicode_to_jisx0212_eucjpms[wc])) /* JIS-X-0212 MS */ + { + if (s + 3 > e) + return MY_CS_TOOSMALL3; + s[0]= 0x8F; + MY_PUT_MB2(s + 1, jp); + return 3; + } + + if (wc >= 0xFF61 && wc <= 0xFF9F) /* Half width Katakana */ + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + s[0]= 0x8E; + s[1]= (uchar) (wc - 0xFEC0); + return 2; + } + + return MY_CS_ILUNI; +} + + +/* + EUCJPMS encoding subcomponents: + [x00-x7F] # ASCII/JIS-Roman (one-byte/character) + [x8E][xA0-xDF] # half-width katakana (two bytes/char) + [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char) + [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char) +*/ + +static +size_t my_well_formed_len_eucjpms(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const char *beg, const char *end, size_t pos, + int *error) +{ + const uchar *b= (uchar *) beg; + *error=0; + + for ( ; pos && b < (uchar*) end; pos--, b++) + { + char *chbeg; + uint ch= *b; + + if (ch <= 0x7F) /* one byte */ + continue; + + chbeg= (char *) b++; + if (b >= (uchar *) end) /* need more bytes */ + return (uint) (chbeg - beg); /* unexpected EOL */ + + if (ch == 0x8E) /* [x8E][xA0-xDF] */ + { + if (*b >= 0xA0 && *b <= 0xDF) + continue; + *error=1; + return (uint) (chbeg - beg); /* invalid sequence */ + } + + if (ch == 0x8F) /* [x8F][xA1-xFE][xA1-xFE] */ + { + ch= *b++; + if (b >= (uchar*) end) + { + *error= 1; + return (uint)(chbeg - beg); /* unexpected EOL */ + } + } + + if (ch >= 0xA1 && ch <= 0xFE && + *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */ + continue; + *error=1; + return (size_t) (chbeg - beg); /* invalid sequence */ + } + return (size_t) (b - (uchar *) beg); +} + + +static +size_t my_numcells_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *str, const char *str_end) +{ + size_t clen; + const uchar *b= (const uchar *) str; + const uchar *e= (const uchar *) str_end; + + for (clen= 0; b < e; ) + { + if (*b == 0x8E) + { + clen++; + b+= 2; + } + else if (*b == 0x8F) + { + clen+= 2; + b+= 3; + } + else if (*b & 0x80) + { + clen+= 2; + b+= 2; + } + else + { + clen++; + b++; + } + } + return clen; +} + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_simple,/* strnncoll */ + my_strnncollsp_simple, + my_strnxfrm_mb, /* strnxfrm */ + my_strnxfrmlen_simple, + my_like_range_mb, /* like_range */ + my_wildcmp_mb, /* wildcmp */ + my_strcasecmp_mb, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_eucjpms, + mbcharlen_eucjpms, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_eucjpms, + my_lengthsp_8bit, + my_numcells_eucjpms, + my_mb_wc_eucjpms, /* mb_wc */ + my_wc_mb_eucjpms, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_ujis, + my_casedn_ujis, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + + +CHARSET_INFO my_charset_eucjpms_japanese_ci= +{ + 97,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ + "eucjpms", /* cs name */ + "eucjpms_japanese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_eucjpms, + to_lower_eucjpms, + to_upper_eucjpms, + sort_order_eucjpms, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_eucjpms,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + + +CHARSET_INFO my_charset_eucjpms_bin= +{ + 98,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "eucjpms", /* cs name */ + "eucjpms_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_eucjpms, + to_lower_eucjpms, + to_upper_eucjpms, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_eucjpms,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + + +#endif diff --git a/mysql/strings/ctype-extra.c b/mysql/strings/ctype-extra.c new file mode 100644 index 0000000..a3a71ff --- /dev/null +++ b/mysql/strings/ctype-extra.c @@ -0,0 +1,8773 @@ +/* + This file was generated by the conf_to_src utility. Do not edit it directly, + edit the XML definitions in sql/share/charsets/ instead. + + To re-generate, run the following in the strings/ directory: + ./conf_to_src {CMAKE_SOURCE_DIR}/sql/share/charsets/ > ctype-extra.c +*/ + +/* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include + +#ifdef HAVE_CHARSET_dec8 +static const uchar ctype_dec8_swedish_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_dec8_swedish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_dec8_swedish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_dec8_swedish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0x41,0x41,0x41,0x41,0x5C,0x5B,0x5C,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5D,0xD7,0xD8,0x55,0x55,0x55,0x59,0x59,0xDE,0xDF, +0x41,0x41,0x41,0x41,0x5C,0x5B,0x5C,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5D,0xF7,0xD8,0x55,0x55,0x55,0x59,0x59,0xDE,0xFF +}; + +static const uint16 to_uni_dec8_swedish_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x00A1,0x00A2,0x00A3,0x0000,0x00A5,0x0000,0x00A7, +0x00A4,0x00A9,0x00AA,0x00AB,0x0000,0x0000,0x0000,0x0000, +0x00B0,0x00B1,0x00B2,0x00B3,0x0000,0x00B5,0x00B6,0x00B7, +0x0000,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x0000,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x0000,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x0152, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0178,0x0000,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x0000,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x0153, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FF,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_cp850 +static const uchar ctype_cp850_general_ci[] = { +0x00, +0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x30,0x30, +0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x30,0x30,0x30,0x30, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x30, +0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01, +0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x02,0x10,0x01,0x10,0x10, +0x02,0x02,0x02,0x02,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10, +0x01,0x02,0x01,0x01,0x02,0x01,0x10,0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20 +}; + +static const uchar to_lower_cp850_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x84,0x86, +0x82,0x91,0x91,0x93,0x94,0x95,0x96,0x97,0x98,0x94,0x81,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp850_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, +0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_cp850_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x51,0x53,0x55,0x59,0x63,0x65,0x67,0x69,0x74,0x76,0x78,0x7A,0x7C,0x80, +0x8E,0x90,0x92,0x94,0x97,0x99,0xA3,0xA5,0xA7,0xA9,0xAE,0xB1,0xB2,0xB3,0xB4,0xB5, +0xB6,0x41,0x51,0x53,0x55,0x59,0x63,0x65,0x67,0x69,0x74,0x76,0x78,0x7A,0x7C,0x80, +0x8E,0x90,0x92,0x94,0x97,0x99,0xA3,0xA5,0xA7,0xA9,0xAE,0xB7,0xB8,0xB9,0xBA,0xBB, +0x54,0xA1,0x5D,0x47,0x4B,0x43,0x4D,0x54,0x5F,0x61,0x5B,0x71,0x6F,0x6B,0x4B,0x4D, +0x5D,0x4F,0x4F,0x86,0x8A,0x82,0x9F,0x9B,0xAD,0x8A,0xA1,0x8C,0xE3,0x8C,0xBD,0xBE, +0x45,0x6D,0x84,0x9D,0x7E,0x7E,0xEA,0xFA,0xFF,0xEE,0xEC,0xFD,0xFC,0xCE,0xEB,0xFB, +0xDC,0xDD,0xDE,0xC3,0xC9,0x45,0x47,0x43,0xE9,0xD5,0xCF,0xD1,0xD3,0xE2,0xE5,0xC5, +0xC6,0xCB,0xCA,0xC8,0xC2,0xCC,0x49,0x49,0xD2,0xD0,0xD7,0xD6,0xD4,0xCD,0xD8,0xE4, +0x57,0x57,0x5F,0x61,0x5B,0x73,0x6D,0x6F,0x71,0xC7,0xC4,0xDB,0xDA,0xE6,0x6B,0xD9, +0x84,0x96,0x86,0x82,0x88,0x88,0xF5,0xB0,0xB0,0x9D,0x9F,0x9B,0xAB,0xAB,0xEF,0xF4, +0xED,0xF1,0xC1,0xFE,0xF6,0xE7,0xBF,0xBC,0xF0,0xE8,0xF7,0xF9,0xF3,0xF2,0xDF,0xE0 +}; + +static const uint16 to_uni_cp850_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7, +0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, +0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9, +0x00FF,0x00D6,0x00DC,0x00F8,0x00A3,0x00D8,0x00D7,0x0192, +0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA, +0x00BF,0x00AE,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB, +0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x00C0, +0x00A9,0x2563,0x2551,0x2557,0x255D,0x00A2,0x00A5,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x00E3,0x00C3, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, +0x00F0,0x00D0,0x00CA,0x00CB,0x00C8,0x0131,0x00CD,0x00CE, +0x00CF,0x2518,0x250C,0x2588,0x2584,0x00A6,0x00CC,0x2580, +0x00D3,0x00DF,0x00D4,0x00D2,0x00F5,0x00D5,0x00B5,0x00FE, +0x00DE,0x00DA,0x00DB,0x00D9,0x00FD,0x00DD,0x00AF,0x00B4, +0x00AD,0x00B1,0x2017,0x00BE,0x00B6,0x00A7,0x00F7,0x00B8, +0x00B0,0x00A8,0x00B7,0x00B9,0x00B3,0x00B2,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_latin1 +static const uchar ctype_latin1_german1_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin1_german1_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin1_german1_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin1_german1_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0xD0,0x4E,0x4F,0x4F,0x4F,0x4F,0x4F,0xD7,0x4F,0x55,0x55,0x55,0x55,0x59,0xDE,0x53, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0xD0,0x4E,0x4F,0x4F,0x4F,0x4F,0x4F,0xF7,0x4F,0x55,0x55,0x55,0x55,0x59,0xDE,0xFF +}; + +static const uint16 to_uni_latin1_german1_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_hp8 +static const uchar ctype_hp8_english_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x02, +0x01,0x10,0x10,0x01,0x02,0x10,0x10,0x02,0x01,0x10,0x01,0x01,0x01,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20 +}; + +static const uchar to_lower_hp8_english_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xC8,0xC0,0xC9,0xC1,0xCD,0xD1,0xDD,0xA8,0xA9,0xAA,0xAB,0xAC,0xCB,0xC3,0xAF, +0xB0,0xB2,0xB2,0xB3,0xB5,0xB5,0xB7,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD4,0xD1,0xD6,0xD7,0xD4,0xD5,0xD6,0xD7,0xCC,0xD9,0xCE,0xCF,0xC5,0xDD,0xDE,0xC2, +0xC4,0xE2,0xE2,0xE4,0xE4,0xD5,0xD9,0xC6,0xCA,0xEA,0xEA,0xEC,0xEC,0xC7,0xEF,0xEF, +0xF1,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_hp8_english_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB1,0xB3,0xB4,0xB4,0xB6,0xB6,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xA2,0xA4,0xDF,0xAE,0xE0,0xDC,0xE7,0xED,0xA1,0xA3,0xE8,0xAD,0xD8,0xA5,0xDA,0xDB, +0xD0,0xA6,0xD2,0xD3,0xD0,0xE5,0xD2,0xD3,0xD8,0xE6,0xDA,0xDB,0xDC,0xA7,0xDE,0xDF, +0xE0,0xE1,0xE1,0xE3,0xE3,0xE5,0xE6,0xE7,0xE8,0xE9,0xE9,0xEB,0xEB,0xED,0xEE,0xEE, +0xF0,0xF0,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_hp8_english_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5C,0x5D,0x5B,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_hp8_english_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x00C0,0x00C2,0x00C8,0x00CA,0x00CB,0x00CE,0x00CF, +0x00B4,0x02CB,0x02C6,0x00A8,0x02DC,0x00D9,0x00DB,0x20A4, +0x00AF,0x00DD,0x00FD,0x00B0,0x00C7,0x00E7,0x00D1,0x00F1, +0x00A1,0x00BF,0x00A4,0x00A3,0x00A5,0x00A7,0x0192,0x00A2, +0x00E2,0x00EA,0x00F4,0x00FB,0x00E1,0x00E9,0x00F3,0x00FA, +0x00E0,0x00E8,0x00F2,0x00F9,0x00E4,0x00EB,0x00F6,0x00FC, +0x00C5,0x00EE,0x00D8,0x00C6,0x00E5,0x00ED,0x00F8,0x00E6, +0x00C4,0x00EC,0x00D6,0x00DC,0x00C9,0x00EF,0x00DF,0x00D4, +0x00C1,0x00C3,0x00E3,0x00D0,0x00F0,0x00CD,0x00CC,0x00D3, +0x00D2,0x00D5,0x00F5,0x0160,0x0161,0x00DA,0x0178,0x00FF, +0x00DE,0x00FE,0x00B7,0x00B5,0x00B6,0x00BE,0x2014,0x00BC, +0x00BD,0x00AA,0x00BA,0x00AB,0x25A0,0x00BB,0x00B1,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_koi8r +static const uchar ctype_koi8r_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 +}; + +static const uchar to_lower_koi8r_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar to_upper_koi8r_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xB3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_koi8r_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xE5,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE, +0xAF,0xB0,0xB1,0xE5,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD, +0xFE,0xDF,0xE0,0xF6,0xE3,0xE4,0xF4,0xE2,0xF5,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE, +0xEF,0xFF,0xF0,0xF1,0xF2,0xF3,0xE6,0xE1,0xFC,0xFB,0xE7,0xF8,0xFD,0xF9,0xF7,0xFA, +0xFE,0xDF,0xE0,0xF6,0xE3,0xE4,0xF4,0xE2,0xF5,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE, +0xEF,0xFF,0xF0,0xF1,0xF2,0xF3,0xE6,0xE1,0xFC,0xFB,0xE7,0xF8,0xFD,0xF9,0xF7,0xFA +}; + +static const uint16 to_uni_koi8r_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, +0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, +0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248, +0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, +0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556, +0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E, +0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565, +0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9, +0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, +0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A +}; + +#endif + +#ifdef HAVE_CHARSET_latin2 +static const uchar ctype_latin2_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01, +0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin2_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin2_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin2_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x44,0x45,0x48,0x49,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x53,0x54,0x56, +0x58,0x59,0x5A,0x5B,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x68,0x69,0x6A,0x6B,0x6C, +0x6D,0x41,0x44,0x45,0x48,0x49,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x53,0x54,0x56, +0x58,0x59,0x5A,0x5B,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x6E,0x6F,0x70,0x71,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0x42,0xFF,0x52,0xFF,0x51,0x5C,0xFF,0xFF,0x5D,0x5B,0x5E,0x65,0xFF,0x67,0x66, +0xFF,0x42,0xFF,0x52,0xFF,0x51,0x5C,0xFF,0xFF,0x5D,0x5B,0x5E,0x65,0xFF,0x67,0x66, +0x5A,0x43,0x43,0x43,0x43,0x51,0x46,0x45,0x47,0x49,0x4A,0x49,0x49,0x4E,0x4E,0x48, +0xFF,0x55,0x54,0x57,0x56,0x56,0x56,0xFF,0x5A,0x5F,0x5F,0x5F,0x5F,0x63,0x5E,0xFF, +0x5A,0x43,0x43,0x43,0x43,0x51,0x46,0x45,0x47,0x49,0x4A,0x49,0x49,0x4E,0x4E,0x48, +0xFF,0x55,0x54,0x57,0x56,0x56,0x56,0xFF,0x5A,0x5F,0x5F,0x5F,0x5F,0x63,0x5E,0xFF +}; + +static const uint16 to_uni_latin2_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, +0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, +0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, +0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_swe7 +static const uchar ctype_swe7_swedish_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x01,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_swe7_swedish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_swe7_swedish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_swe7_swedish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x45,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5C,0x5D,0x5B,0x59,0x5F, +0x45,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5C,0x5D,0x5B,0x59,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_swe7_swedish_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x00C9,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x00C4,0x00D6,0x00C5,0x00DC,0x005F, +0x00E9,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x00E4,0x00F6,0x00E5,0x00FC,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_ascii +static const uchar ctype_ascii_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_ascii_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_ascii_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_ascii_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_ascii_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1251 +static const uchar ctype_cp1251_bulgarian_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02, +0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_cp1251_bulgarian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1251_bulgarian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F, +0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar sort_order_cp1251_bulgarian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7C,0x7D,0x7E,0x7F,0x80, +0x81,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x82,0x83,0x84,0x85,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x61,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x61,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B, +0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B, +0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B, +0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B +}; + +static const uint16 to_uni_cp1251_bulgarian_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, +0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, +0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, +0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, +0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, +0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, +0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F +}; + +#endif + +#ifdef HAVE_CHARSET_latin1 +static const uchar ctype_latin1_danish_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin1_danish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin1_danish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin1_danish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0x41,0x41,0x41,0x41,0x5B,0x5D,0x5B,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5C,0xD7,0x5C,0x55,0x55,0x55,0x59,0x59,0xDE,0xDF, +0x41,0x41,0x41,0x41,0x5B,0x5D,0x5B,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49, +0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5C,0xF7,0x5C,0x55,0x55,0x55,0x59,0x59,0xDE,0xFF +}; + +static const uint16 to_uni_latin1_danish_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_hebrew +static const uchar ctype_hebrew_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00 +}; + +static const uchar to_lower_hebrew_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_hebrew_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_hebrew_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_hebrew_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x203E, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2017, +0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, +0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, +0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, +0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x200E,0x200F,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_latin7 +static const uchar ctype_latin7_estonian_cs[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20, +0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin7_estonian_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin7_estonian_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin7_estonian_cs[] = { +0x00,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x2E,0x2F,0x30,0x31,0x32,0x0A,0x0B, +0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B, +0x2C,0x33,0x34,0x35,0x36,0x37,0x38,0x27,0x39,0x3A,0x3B,0x5D,0x3C,0x28,0x3D,0x3E, +0x76,0x7A,0x7C,0x7E,0x80,0x81,0x82,0x83,0x84,0x85,0x3F,0x40,0x5E,0x5F,0x60,0x41, +0x42,0x86,0x90,0x92,0x98,0x9A,0xA4,0xA6,0xAA,0xAC,0xB2,0xB4,0xB8,0xBE,0xC0,0xC6, +0xCE,0xD0,0xD2,0xD6,0xE5,0xE8,0xEE,0xF0,0xFA,0xFC,0xDD,0x43,0x44,0x45,0x46,0x47, +0x48,0x87,0x91,0x93,0x99,0x9B,0xA5,0xA7,0xAB,0xAD,0xB3,0xB5,0xB9,0xBF,0xC1,0xC7, +0xCF,0xD1,0xD3,0xD7,0xE6,0xE9,0xEF,0xF1,0xFB,0xFD,0xDE,0x49,0x4A,0x4B,0x4C,0x1C, +0x01,0x1D,0x57,0x1E,0x5A,0x74,0x71,0x72,0x1F,0x75,0x20,0x5B,0x21,0x4E,0x52,0x51, +0x22,0x55,0x56,0x58,0x59,0x73,0x2A,0x2B,0x23,0xE7,0x24,0x5C,0x25,0x4F,0x54,0x26, +0x2D,0xFE,0x66,0x67,0x68,0xFF,0x4D,0x69,0xCC,0x6A,0xD4,0x62,0x6B,0x29,0x6C,0x8E, +0x6D,0x61,0x7D,0x7F,0x50,0x6E,0x6F,0x70,0xCD,0x7B,0xD5,0x63,0x77,0x78,0x79,0x8F, +0x8C,0xB0,0x88,0x94,0xF4,0x8A,0xA2,0xA0,0x96,0x9C,0xDF,0x9E,0xA8,0xB6,0xAE,0xBA, +0xDB,0xC2,0xC4,0xC8,0xCA,0xF2,0xF6,0x64,0xEC,0xBC,0xD8,0xEA,0xF8,0xE1,0xE3,0xDA, +0x8D,0xB1,0x89,0x95,0xF5,0x8B,0xA3,0xA1,0x97,0x9D,0xE0,0x9F,0xA9,0xB7,0xAF,0xBB, +0xDC,0xC3,0xC5,0xC9,0xCB,0xF3,0xF7,0x65,0xED,0xBD,0xD9,0xEB,0xF9,0xE2,0xE4,0x53 +}; + +static const uint16 to_uni_latin7_estonian_cs[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019 +}; + +#endif + +#ifdef HAVE_CHARSET_latin2 +static const uchar ctype_latin2_hungarian_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01, +0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin2_hungarian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin2_hungarian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin2_hungarian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x47,0x48,0x4C,0x4E,0x53,0x54,0x55,0x56,0x5A,0x5B,0x5C,0x60,0x61,0x64, +0x69,0x6A,0x6B,0x6E,0x72,0x75,0x7A,0x7B,0x7C,0x7D,0x7F,0x83,0x84,0x85,0x86,0x87, +0x88,0x41,0x47,0x48,0x4C,0x4E,0x53,0x54,0x55,0x56,0x5A,0x5B,0x5C,0x60,0x61,0x64, +0x69,0x6A,0x6B,0x6E,0x72,0x75,0x7A,0x7B,0x7C,0x7D,0x7F,0x89,0x8A,0x8B,0x8C,0x00, +0x01,0x78,0x4E,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x67,0x67,0x56,0x56,0x0F,0x41, +0x4E,0x12,0x13,0x67,0x67,0x64,0x78,0x75,0x78,0x67,0x78,0x1C,0x1D,0x1E,0x1F,0xFF, +0x41,0x56,0x64,0x75,0x5E,0x6F,0xFF,0x67,0xFF,0x70,0x71,0x73,0x80,0xFF,0x81,0x82, +0xFF,0x42,0xFF,0x5D,0xFF,0x41,0x6F,0xFF,0xFF,0x70,0x71,0x73,0x80,0xFF,0x81,0x82, +0x6C,0x41,0x44,0x45,0x46,0x5F,0x49,0x4B,0x4A,0x4E,0x51,0x52,0x50,0x56,0x57,0x4D, +0xFF,0x62,0x63,0x64,0x66,0x67,0x67,0xFF,0x6D,0x77,0x75,0x78,0x78,0x7E,0x74,0xFF, +0x64,0x41,0x44,0x45,0x46,0x5F,0x49,0x4B,0x4A,0x4E,0x51,0x78,0x50,0x56,0x58,0x4D, +0xFF,0x62,0x63,0x64,0x66,0x67,0x67,0xFF,0x6D,0x77,0x75,0x78,0x78,0x7E,0x74,0xFF +}; + +static const uint16 to_uni_latin2_hungarian_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, +0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, +0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, +0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_koi8u +static const uchar ctype_koi8u_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x02,0x02,0x10,0x02,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10, +0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 +}; + +static const uchar to_lower_koi8u_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x20,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20, +0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar to_upper_koi8u_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x20,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20, +0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_koi8u_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x20,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, +0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4, +0xC5,0xC6,0xC7,0x88,0x87,0xC8,0x8C,0x8D,0xC9,0xCA,0xCB,0xCC,0xCD,0x84,0xCE,0xCF, +0xD0,0xD1,0xD2,0x88,0x87,0xD3,0x8C,0x8D,0xD4,0xD5,0xD6,0xD7,0xD8,0x84,0xD9,0xDA, +0xA3,0x80,0x81,0x9B,0x85,0x86,0x99,0x83,0x9A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93, +0x94,0xA4,0x95,0x96,0x97,0x98,0x89,0x82,0xA1,0xA0,0x8A,0x9D,0xA2,0x9E,0x9C,0x9F, +0xA3,0x80,0x81,0x9B,0x85,0x86,0x99,0x83,0x9A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93, +0x94,0xA4,0x95,0x96,0x97,0x98,0x89,0x82,0xA1,0xA0,0x8A,0x9D,0xA2,0x9E,0x9C,0x9F +}; + +static const uint16 to_uni_koi8u_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, +0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, +0x2591,0x2592,0x2593,0x2320,0x25A0,0x2022,0x221A,0x2248, +0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, +0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457, +0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E, +0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407, +0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9, +0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, +0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A +}; + +#endif + +#ifdef HAVE_CHARSET_cp1251 +static const uchar ctype_cp1251_ukrainian_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02, +0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_cp1251_ukrainian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1251_ukrainian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F, +0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar sort_order_cp1251_ukrainian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x20,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, +0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4, +0xC5,0xC6,0xC7,0xC8,0xC9,0x84,0xCA,0xCB,0x88,0xCC,0x87,0xCD,0xCE,0xCF,0xD0,0x8D, +0xD1,0xD2,0x8C,0x8C,0x84,0xD3,0xD4,0xD5,0x88,0xD6,0x87,0xD7,0xD8,0xD9,0xDA,0x8D, +0x80,0x81,0x82,0x83,0x85,0x86,0x89,0x8A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94, +0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4, +0x80,0x81,0x82,0x83,0x85,0x86,0x89,0x8A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94, +0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4 +}; + +static const uint16 to_uni_cp1251_ukrainian_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, +0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, +0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, +0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, +0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, +0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, +0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F +}; + +#endif + +#ifdef HAVE_CHARSET_greek +static const uchar ctype_greek_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x01,0x01,0x10,0x01,0x10,0x01,0x01, +0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00 +}; + +static const uchar to_lower_greek_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xDC,0xB7,0xDD,0xDE,0xDF,0xBB,0xFC,0xBD,0xFD,0xFE, +0xC0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xD2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_greek_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xDA,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xC1,0xC5,0xC7,0xC9, +0xDB,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD3,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xCF,0xD5,0xD9,0xFF +}; + +static const uchar sort_order_greek_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xC1,0xB7,0xC5,0xC7,0xC9,0xBB,0xCF,0xBD,0xD5,0xD9, +0xC9,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xC9,0xD5,0xC1,0xC5,0xC7,0xC9, +0xD5,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD3,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xC9,0xD5,0xCF,0xD5,0xD9,0xFF +}; + +static const uint16 to_uni_greek_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x02BD,0x02BC,0x00A3,0x0000,0x0000,0x00A6,0x00A7, +0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x0000,0x2015, +0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x0385,0x0386,0x00B7, +0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F, +0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, +0x03A0,0x03A1,0x0000,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, +0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF, +0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, +0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, +0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7, +0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1250 +static const uchar ctype_cp1250_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02, +0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_cp1250_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1250_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_cp1250_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x46,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x55, +0x56,0x57,0x58,0x59,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x63,0x64,0x65,0x66,0x67, +0x68,0x41,0x42,0x43,0x46,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x55, +0x56,0x57,0x58,0x59,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x5A,0x8B,0x5A,0x5B,0x62,0x62, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x5A,0x9B,0x5A,0x5B,0x62,0x62, +0x20,0xA1,0xA2,0x50,0xA4,0x41,0xA6,0x59,0xA8,0xA9,0x59,0xAB,0xAC,0xAD,0xAE,0x62, +0xB0,0xB1,0xB2,0x50,0xB4,0xB5,0xB6,0xB7,0xB8,0x41,0x59,0xBB,0x50,0xBD,0x50,0x62, +0x58,0x41,0x41,0x41,0x41,0x50,0x45,0x43,0x44,0x49,0x49,0x49,0x49,0x4D,0x4D,0x46, +0x47,0x53,0x53,0x55,0x55,0x55,0x55,0xD7,0x58,0x5C,0x5C,0x5C,0x5C,0x60,0x5B,0x59, +0x58,0x41,0x41,0x41,0x41,0x50,0x45,0x43,0x44,0x49,0x49,0x49,0x49,0x4D,0x4D,0x46, +0x47,0x53,0x53,0x55,0x55,0x55,0x55,0xF7,0x58,0x5C,0x5C,0x5C,0x5C,0x60,0x5B,0xFF +}; + +static const uint16 to_uni_cp1250_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, +0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, +0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, +0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_latin2 +static const uchar ctype_latin2_croatian_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01, +0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin2_croatian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin2_croatian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin2_croatian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59, +0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0xC6,0xC7,0xC8,0xC9,0xCA, +0xCB,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59, +0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0xCC,0xCD,0xCE,0xCF,0xD0, +0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0, +0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, +0xF1,0x41,0xF2,0x54,0xF3,0x54,0x5F,0xF4,0xF5,0x61,0x5F,0x62,0x6B,0xF6,0x8E,0x6B, +0xF7,0x41,0xF8,0x54,0xF9,0x54,0x5F,0xFA,0xFB,0x61,0x5F,0x62,0x6B,0xFC,0x8E,0x6B, +0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48, +0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xFD,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0x5F, +0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48, +0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xFE,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0xFF +}; + +static const uint16 to_uni_latin2_croatian_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, +0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, +0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, +0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1257 +static const uchar ctype_cp1257_lithuanian_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00 +}; + +static const uchar to_lower_cp1257_lithuanian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1257_lithuanian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_cp1257_lithuanian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x44,0x46,0x47,0x4A,0x4B,0x4C,0x4D,0x50,0x51,0x52,0x53,0x54,0x55, +0x56,0x57,0x58,0x59,0x5B,0x5C,0x5F,0x60,0x61,0x4E,0xFF,0x62,0x63,0x64,0x65,0x66, +0x67,0x41,0x43,0x44,0x46,0x47,0x4A,0x4B,0x4C,0x4D,0x50,0x51,0x52,0x53,0x54,0x55, +0x56,0x57,0x58,0x59,0x5B,0x5C,0x5F,0x60,0x61,0x4E,0xFF,0x68,0x69,0x6A,0x6B,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x42,0x4F,0xFF,0xFF,0xFF,0xFF,0x48,0xFF,0x45,0xFF,0xFF,0x49,0xFF,0xFF,0xFF,0xFF, +0x5A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x5E,0xFF,0xFF,0x5D,0xFF,0xFF,0xFF,0xFF, +0xFF,0x4F,0xFF,0xFF,0xFF,0xFF,0x48,0xFF,0x45,0xFF,0xFF,0x49,0xFF,0xFF,0xFF,0xFF, +0x5A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x5E,0xFF,0xFF,0x5D,0xFF,0xFF,0xFF,0xFF +}; + +static const uint16 to_uni_cp1257_lithuanian_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0000,0x2039,0x0000,0x00A8,0x02C7,0x00B8, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0000,0x203A,0x0000,0x00AF,0x02DB,0x0000, +0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x0000,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_latin5 +static const uchar ctype_latin5_turkish_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin5_turkish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0xFD,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0x69,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin5_turkish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0xDD,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0x49,0xDE,0xFF +}; + +static const uchar sort_order_latin5_turkish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x45,0x46,0x47,0x48,0x4A,0x4B,0x4D,0x4E,0x4F,0x50,0x51,0x52, +0x54,0x55,0x56,0x57,0x59,0x5A,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65, +0x66,0x41,0x42,0x43,0x45,0x46,0x47,0x48,0x4A,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52, +0x54,0x55,0x56,0x57,0x59,0x5A,0x5C,0x5D,0x5E,0x5F,0x60,0x87,0x88,0x89,0x8A,0x8B, +0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B, +0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB, +0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB, +0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x44,0x46,0x46,0x46,0x46,0x4C,0x4C,0x4C,0x4C, +0x49,0x51,0x52,0x52,0x52,0x52,0x53,0xE0,0x52,0x5A,0x5A,0x5A,0x5B,0x4C,0x58,0x57, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x44,0x46,0x46,0x46,0x46,0x4C,0x4C,0x4C,0x4C, +0x49,0x51,0x52,0x52,0x52,0x52,0x53,0xFA,0x52,0x5A,0x5A,0x5A,0x5B,0x4B,0x58,0x5F +}; + +static const uint16 to_uni_latin5_turkish_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_armscii8 +static const uchar ctype_armscii8_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x10,0x10 +}; + +static const uchar to_lower_armscii8_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB3,0xB3,0xB5,0xB5,0xB7,0xB7,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF,0xBF, +0xC1,0xC1,0xC3,0xC3,0xC5,0xC5,0xC7,0xC7,0xC9,0xC9,0xCB,0xCB,0xCD,0xCD,0xCF,0xCF, +0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xD9,0xD9,0xDB,0xDB,0xDD,0xDD,0xDF,0xDF, +0xE1,0xE1,0xE3,0xE3,0xE5,0xE5,0xE7,0xE7,0xE9,0xE9,0xEB,0xEB,0xED,0xED,0xEF,0xEF, +0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFB,0xFB,0xFD,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_armscii8_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xB4,0xB4,0xB6,0xB6,0xB8,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE, +0xC0,0xC0,0xC2,0xC2,0xC4,0xC4,0xC6,0xC6,0xC8,0xC8,0xCA,0xCA,0xCC,0xCC,0xCE,0xCE, +0xD0,0xD0,0xD2,0xD2,0xD4,0xD4,0xD6,0xD6,0xD8,0xD8,0xDA,0xDA,0xDC,0xDC,0xDE,0xDE, +0xE0,0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE, +0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF +}; + +static const uchar sort_order_armscii8_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_armscii8_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x2741,0x00A7,0x0589,0x0029,0x0028,0x00BB,0x00AB, +0x2014,0x002E,0x055D,0x002C,0x002D,0x055F,0x2026,0x055C, +0x055B,0x055E,0x0531,0x0561,0x0532,0x0562,0x0533,0x0563, +0x0534,0x0564,0x0535,0x0565,0x0536,0x0566,0x0537,0x0567, +0x0538,0x0568,0x0539,0x0569,0x053A,0x056A,0x053B,0x056B, +0x053C,0x056C,0x053D,0x056D,0x053E,0x056E,0x053F,0x056F, +0x0540,0x0570,0x0541,0x0571,0x0542,0x0572,0x0543,0x0573, +0x0544,0x0574,0x0545,0x0575,0x0546,0x0576,0x0547,0x0577, +0x0548,0x0578,0x0549,0x0579,0x054A,0x057A,0x054B,0x057B, +0x054C,0x057C,0x054D,0x057D,0x054E,0x057E,0x054F,0x057F, +0x0550,0x0580,0x0551,0x0581,0x0552,0x0582,0x0553,0x0583, +0x0554,0x0584,0x0555,0x0585,0x0556,0x0586,0x2019,0x0027 +}; + +#endif + +#ifdef HAVE_CHARSET_cp866 +static const uchar ctype_cp866_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48 +}; + +static const uchar to_lower_cp866_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp866_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_cp866_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D, +0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xBD,0xBE,0xBF,0xC0,0xC1, +0xC2,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x54,0x55,0x57,0x59,0x5B,0x5D, +0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xC3,0xC4,0xC5,0xC6,0xC7, +0x75,0x77,0x79,0x7B,0x7D,0x7F,0x85,0x87,0x89,0x8D,0x8F,0x91,0x93,0x95,0x97,0x99, +0x9B,0x9D,0x9F,0xA1,0xA5,0xA7,0xA9,0xAB,0xAD,0xAF,0xB1,0xB3,0xB5,0xB7,0xB9,0xBB, +0x75,0x77,0x79,0x7B,0x7D,0x7F,0x85,0x87,0x89,0x8D,0x8F,0x91,0x93,0x95,0x97,0x99, +0xC8,0xC9,0xCA,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0x9B,0x9D,0x9F,0xA1,0xA5,0xA7,0xA9,0xAB,0xAD,0xAF,0xB1,0xB3,0xB5,0xB7,0xB9,0xBB, +0x81,0x81,0x83,0x83,0x8B,0x8B,0xA3,0xA3,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2 +}; + +static const uint16 to_uni_cp866_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, +0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567, +0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B, +0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, +0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E, +0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_keybcs2 +static const uchar ctype_keybcs2_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x02,0x82,0x02,0x02,0x01,0x01,0x02,0x82,0x81,0x01,0x01,0x02,0x02,0x01,0x01, +0x81,0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x01,0x02,0x00,0x02,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48 +}; + +static const uchar to_lower_keybcs2_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x81,0x82,0x83,0x84,0x83,0x86,0x87,0x88,0x88,0x8D,0xA1,0x8C,0x8D,0x84,0xA0, +0x82,0x91,0x91,0x93,0x94,0xA2,0x96,0xA3,0x98,0x94,0x81,0x9B,0x8C,0x98,0xA9,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0x96,0x93,0x9B,0xA9,0xAA,0xAA,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xED,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_keybcs2_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x68,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x9A,0x90,0x85,0x8E,0x85,0x86,0x80,0x89,0x89,0x8A,0x8B,0x9C,0x8A,0x8E,0x8F, +0x90,0x92,0x92,0xA7,0x99,0x95,0xA6,0x97,0x9D,0x99,0x9A,0xA8,0x9C,0x9D,0x9E,0x9F, +0x8F,0x8B,0x95,0x97,0xA5,0xA5,0xA6,0xA7,0xA8,0x9E,0xAB,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xE8,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_keybcs2_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x44,0x45,0x47,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x5A, +0x5E,0x5F,0x60,0x63,0x66,0x68,0x6C,0x6D,0x6E,0x6F,0x72,0x90,0x91,0x92,0x93,0x94, +0x95,0x41,0x44,0x45,0x47,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x5A, +0x5E,0x5F,0x60,0x63,0x66,0x68,0x6C,0x6D,0x6E,0x6F,0x72,0x96,0x97,0x98,0x99,0x9A, +0x45,0x68,0x49,0x47,0x41,0x47,0x66,0x45,0x49,0x49,0x56,0x53,0x56,0x56,0x41,0x41, +0x49,0x72,0x72,0x5A,0x5A,0x5A,0x68,0x68,0x6F,0x5A,0x68,0x63,0x56,0x6F,0x60,0x66, +0x41,0x53,0x5A,0x68,0x58,0x58,0x68,0x5A,0x63,0x60,0x60,0x60,0xA0,0xA1,0xA2,0xA3, +0xA4,0xA5,0xA6,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC, +0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC, +0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC, +0x80,0x65,0x83,0x87,0x88,0x89,0xDD,0x8A,0x85,0x8B,0x84,0x81,0xDE,0x85,0x82,0xDF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_keybcs2_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x010C,0x00FC,0x00E9,0x010F,0x00E4,0x010E,0x0164,0x010D, +0x011B,0x011A,0x0139,0x00CD,0x013E,0x013A,0x00C4,0x00C1, +0x00C9,0x017E,0x017D,0x00F4,0x00F6,0x00D3,0x016F,0x00DA, +0x00FD,0x00D6,0x00DC,0x0160,0x013D,0x00DD,0x0158,0x0165, +0x00E1,0x00ED,0x00F3,0x00FA,0x0148,0x0147,0x016E,0x00D4, +0x0161,0x0159,0x0155,0x0154,0x00BC,0x00A1,0x00AB,0x00BB, +0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, +0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567, +0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B, +0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, +0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4, +0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229, +0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248, +0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_macce +static const uchar ctype_macce_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x02,0x02,0x01,0x02,0x02,0x01,0x02,0x02,0x01, +0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02, +0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x01, +0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01, +0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x02,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x01,0x00,0x00,0x02,0x01, +0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x01, +0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x02,0x01,0x01,0x02,0x01,0x00 +}; + +static const uchar to_lower_macce_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x8A,0x82,0x82,0x8E,0x88,0x9A,0x9F,0x87,0x88,0x8B,0x8A,0x8B,0x8D,0x8D,0x8E,0x90, +0x90,0x93,0x92,0x93,0x95,0x95,0x98,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9E,0x9E,0x9F, +0xA0,0xA1,0xAB,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xB0, +0xB0,0xB4,0xB2,0xB3,0xB4,0xFA,0xB6,0xB7,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE,0xC0, +0xC0,0xC4,0xC2,0xC3,0xC4,0xCB,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0x9B,0xCE,0xD8, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xDA,0xDA,0xDE,0xDC,0xDD,0xDE,0xE0, +0xE0,0xE4,0xE2,0xE3,0xE4,0xE6,0xE6,0x87,0xE9,0xE9,0x92,0xEC,0xEC,0xF0,0x97,0x99, +0xF0,0xF3,0x9C,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFA,0xFD,0xB8,0xFD,0xAE,0xFF +}; + +static const uchar to_upper_macce_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x81,0x83,0x84,0x85,0x86,0xE7,0x84,0x89,0x80,0x89,0x8C,0x8C,0x83,0x8F, +0x8F,0x91,0xEA,0x91,0x94,0x94,0x96,0xEE,0x96,0xEF,0x85,0xCD,0xF2,0x9D,0x9D,0x86, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xA2,0xAC,0xAD,0xFE,0xAF, +0xAF,0xB1,0xB2,0xB3,0xB1,0xB5,0xB6,0xB7,0xFC,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF, +0xBF,0xC1,0xC2,0xC3,0xC1,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xC5,0xCC,0xCD,0xCC,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xCF,0xD9,0xD9,0xDB,0xDC,0xDD,0xDB,0xDF, +0xDF,0xE1,0xE2,0xE3,0xE1,0xE5,0xE5,0xE7,0xE8,0xE8,0xEA,0xEB,0xEB,0xED,0xEE,0xEF, +0xED,0xF1,0xF2,0xF1,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xB5,0xFB,0xFC,0xFB,0xFE,0xFF +}; + +static const uchar sort_order_macce_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x46,0x47,0x4A,0x4C,0x52,0x53,0x55,0x56,0x5A,0x5B,0x5D,0x62,0x62,0x67, +0x6F,0x70,0x71,0x75,0x79,0x81,0x88,0x89,0x8A,0x8B,0x8D,0x90,0x91,0x92,0x93,0x94, +0x95,0x41,0x46,0x47,0x4A,0x4C,0x52,0x53,0x55,0x56,0x5A,0x5B,0x5D,0x62,0x62,0x67, +0x6F,0x70,0x71,0x75,0x79,0x81,0x88,0x89,0x8A,0x8B,0x8D,0x96,0x97,0x98,0x99,0x9A, +0x41,0x41,0x41,0x4C,0x41,0x67,0x81,0x41,0x41,0x47,0x41,0x47,0x47,0x47,0x4C,0x8D, +0x8D,0x4A,0x56,0x4A,0x4C,0x4C,0x4C,0x67,0x4C,0x67,0x67,0x67,0x81,0x4C,0x4C,0x81, +0xA0,0xA1,0x4C,0xA3,0xA4,0xA5,0xA6,0x75,0xA8,0xA9,0xAA,0x4C,0xAC,0xAD,0x53,0x56, +0x56,0x56,0xB2,0xB3,0x56,0x5B,0xB6,0xB7,0x5D,0x5D,0x5D,0x5D,0x5D,0x5D,0x5D,0x62, +0x62,0x62,0xC2,0xC3,0x62,0x62,0xC6,0xC7,0xC8,0xC9,0xCA,0x62,0x67,0x67,0x67,0x67, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0x67,0x71,0x71,0x71,0xDC,0xDD,0x71,0x71, +0x71,0x75,0xE2,0xE3,0x75,0x75,0x75,0x41,0x79,0x79,0x56,0x8D,0x8D,0x81,0x67,0x67, +0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x8B,0x8B,0x5B,0x8D,0x5D,0x8D,0x53,0xFF +}; + +static const uint16 to_uni_macce_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C4,0x0100,0x0101,0x00C9,0x0104,0x00D6,0x00DC,0x00E1, +0x0105,0x010C,0x00E4,0x010D,0x0106,0x0107,0x00E9,0x0179, +0x017A,0x010E,0x00ED,0x010F,0x0112,0x0113,0x0116,0x00F3, +0x0117,0x00F4,0x00F6,0x00F5,0x00FA,0x011A,0x011B,0x00FC, +0x2020,0x00B0,0x0118,0x00A3,0x00A7,0x2022,0x00B6,0x00DF, +0x00AE,0x00A9,0x2122,0x0119,0x00A8,0x2260,0x0123,0x012E, +0x012F,0x012A,0x2264,0x2265,0x012B,0x0136,0x2202,0x2211, +0x0142,0x013B,0x013C,0x013D,0x013E,0x0139,0x013A,0x0145, +0x0146,0x0143,0x00AC,0x221A,0x0144,0x0147,0x2206,0x00AB, +0x00BB,0x2026,0x00A0,0x0148,0x0150,0x00D5,0x0151,0x014C, +0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA, +0x014D,0x0154,0x0155,0x0158,0x2039,0x203A,0x0159,0x0156, +0x0157,0x0160,0x201A,0x201E,0x0161,0x015A,0x015B,0x00C1, +0x0164,0x0165,0x00CD,0x017D,0x017E,0x016A,0x00D3,0x00D4, +0x016B,0x016E,0x00DA,0x016F,0x0170,0x0171,0x0172,0x0173, +0x00DD,0x00FD,0x0137,0x017B,0x0141,0x017C,0x0122,0x02C7 +}; + +#endif + +#ifdef HAVE_CHARSET_macroman +static const uchar ctype_macroman_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x10, +0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, +0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x00,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_macroman_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x8A,0x8C,0x8D,0x8E,0x96,0x9A,0x9F,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xBE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0x88,0x8B,0x9B,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0x89,0x90,0x87,0x91,0x8F,0x92,0x94,0x95,0x93,0x97,0x99, +0xF0,0x98,0x9C,0x9E,0x9D,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_macroman_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0xE7,0xCB,0xE5,0x80,0xCC,0x81,0x82,0x83,0xE9, +0xE6,0xE8,0xEA,0xED,0xEB,0xEC,0x84,0xEE,0xF1,0xEF,0x85,0xCD,0xF2,0xF4,0xF3,0x86, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xAE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD9,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_macroman_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x49,0x50,0x52,0x53,0x57,0x59,0x60,0x61,0x67,0x68,0x69,0x70,0x71,0x72, +0x79,0x80,0x81,0x82,0x84,0x85,0x90,0x91,0x92,0x93,0x95,0xA0,0xA1,0xA2,0xA3,0xA4, +0xA5,0x41,0x49,0x50,0x52,0x53,0x57,0x59,0x60,0x61,0x67,0x68,0x69,0x70,0x71,0x72, +0x79,0x80,0x81,0x82,0x84,0x85,0x90,0x91,0x92,0x93,0x95,0xA6,0xA7,0xA8,0xA9,0xAA, +0x41,0x41,0x50,0x53,0x71,0x72,0x85,0x41,0x41,0x41,0x41,0x41,0x41,0x50,0x53,0x53, +0x53,0x53,0x61,0x61,0x61,0x61,0x71,0x72,0x72,0x72,0x72,0x72,0x85,0x85,0x85,0x85, +0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0x82,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0x48,0x72, +0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x48,0x72, +0xC6,0xC7,0xC8,0xC9,0x57,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0x41,0x41,0x72,0xD0,0xD1, +0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x93,0x93,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0x41,0x53,0x41,0x53,0x53,0x61,0x61,0x61,0x61,0x72,0x72, +0xF0,0x72,0x85,0x85,0x85,0x61,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_macroman_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1, +0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8, +0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3, +0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC, +0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF, +0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8, +0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211, +0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8, +0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB, +0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153, +0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA, +0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02, +0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1, +0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4, +0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC, +0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7 +}; + +#endif + +#ifdef HAVE_CHARSET_cp852 +static const uchar ctype_cp852_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02,0x01,0x01,0x01, +0x01,0x01,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x02,0x01,0x00,0x02, +0x02,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x01,0x00, +0x01,0x02,0x01,0x01,0x02,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x00,0x48 +}; + +static const uchar to_lower_cp852_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8B,0x8B,0x8C,0xAB,0x84,0x86, +0x82,0x92,0x92,0x93,0x94,0x96,0x96,0x98,0x98,0x94,0x81,0x9C,0x9C,0x88,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAA,0xAB,0x9F,0xB8,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xA0,0x83,0xD8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD0,0xD4,0x89,0xD4,0xE5,0xA1,0x8C,0xD8,0xD9,0xDA,0xDB,0xDC,0xEE,0x85,0xDF, +0xA2,0xE1,0x93,0xE4,0xE4,0xE5,0xE7,0xE7,0xEA,0xA3,0xE8,0xFB,0xEC,0xEC,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp852_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, +0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, +0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xAD,0xB9,0xBA,0xBB,0xBC,0xBE,0xBD,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF +}; + +static const uchar sort_order_cp852_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x47,0x48,0x4C,0x4F,0x54,0x55,0x56,0x57,0x5A,0x5B,0x5C,0x5E,0x5F,0x62, +0x67,0x68,0x69,0x6C,0x71,0x74,0x75,0x76,0x77,0x78,0x7B,0x90,0x91,0x92,0x93,0x94, +0x95,0x41,0x47,0x48,0x4C,0x4F,0x54,0x55,0x56,0x57,0x5A,0x5B,0x5C,0x5E,0x5F,0x62, +0x67,0x68,0x69,0x6C,0x71,0x74,0x75,0x76,0x77,0x78,0x7B,0x96,0x97,0x98,0x99,0x9A, +0x48,0x74,0x4F,0x41,0x41,0x74,0x48,0x48,0x5C,0x4F,0x62,0x62,0x57,0x7B,0x41,0x48, +0x4F,0x5C,0x5C,0x62,0x62,0x5C,0x5C,0x6C,0x6C,0x62,0x74,0x71,0x71,0x5C,0x9E,0x48, +0x41,0x57,0x62,0x74,0x41,0x41,0x7B,0x7B,0x4F,0x4F,0xAA,0x7B,0x48,0x6C,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x4F,0x6C,0xB5,0xBA,0xBB,0xBC,0x7B,0x7B,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0x4C,0x4C,0x4C,0x4F,0x4C,0x60,0x57,0x57,0x4F,0xD9,0xDA,0xDB,0xDC,0x71,0x74,0xDF, +0x62,0x70,0x62,0x60,0x60,0x60,0x6C,0x6C,0x69,0x74,0x69,0x74,0x78,0x78,0x71,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0x74,0x69,0x69,0xFE,0xFF +}; + +static const uint16 to_uni_cp852_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x016F,0x0107,0x00E7, +0x0142,0x00EB,0x0150,0x0151,0x00EE,0x0179,0x00C4,0x0106, +0x00C9,0x0139,0x013A,0x00F4,0x00F6,0x013D,0x013E,0x015A, +0x015B,0x00D6,0x00DC,0x0164,0x0165,0x0141,0x00D7,0x010D, +0x00E1,0x00ED,0x00F3,0x00FA,0x0104,0x0105,0x017D,0x017E, +0x0118,0x0119,0x00AC,0x017A,0x010C,0x015F,0x00AB,0x00BB, +0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x011A, +0x015E,0x2563,0x2551,0x2557,0x255D,0x017B,0x017C,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x0102,0x0103, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, +0x0111,0x0110,0x010E,0x00CB,0x010F,0x0147,0x00CD,0x00CE, +0x011B,0x2518,0x250C,0x2588,0x2584,0x0162,0x016E,0x2580, +0x00D3,0x00DF,0x00D4,0x0143,0x0144,0x0148,0x0160,0x0161, +0x0154,0x00DA,0x0155,0x0170,0x00FD,0x00DD,0x0163,0x00B4, +0x00AD,0x02DD,0x02DB,0x02C7,0x02D8,0x00A7,0x00F7,0x00B8, +0x00B0,0x00A8,0x02D9,0x0171,0x0158,0x0159,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_latin7 +static const uchar ctype_latin7_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20, +0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin7_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin7_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin7_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x30,0x32,0x33,0x34,0x35,0x36,0x37,0x2B,0x38,0x39,0x3A,0x5C,0x3B,0x2C,0x3C,0x3D, +0x76,0x7A,0x7C,0x7E,0x80,0x81,0x82,0x83,0x84,0x85,0x3E,0x3F,0x5D,0x5E,0x5F,0x40, +0x41,0x86,0x92,0x94,0x9A,0x9C,0xA6,0xA8,0xAC,0xAE,0xB4,0xB6,0xBA,0xC0,0xC2,0xC8, +0xD4,0xD6,0xD8,0xDC,0xE3,0xE6,0xEE,0xF0,0xF2,0xF4,0xF6,0x42,0x43,0x44,0x45,0x46, +0x47,0x86,0x92,0x94,0x9A,0x9C,0xA6,0xA8,0xAC,0xAE,0xB4,0xB6,0xBA,0xC0,0xC2,0xC8, +0xD4,0xD6,0xD8,0xDC,0xE2,0xE6,0xEE,0xF0,0xF2,0xF4,0xF6,0x48,0x49,0x4A,0x4B,0x20, +0x75,0x21,0x56,0x22,0x59,0x73,0x70,0x71,0x23,0x74,0x24,0x5A,0x25,0x4D,0x51,0x50, +0x26,0x54,0x55,0x57,0x58,0x72,0x2E,0x2F,0x27,0xE5,0x28,0x5B,0x29,0x4E,0x53,0x2A, +0x31,0xFE,0x65,0x66,0x67,0xFF,0x4C,0x68,0x2D,0x69,0xDA,0x61,0x6A,0x2D,0x6B,0x90, +0x6C,0x60,0x7D,0x7F,0x4F,0x6D,0x6E,0x6F,0xD3,0x7B,0xDB,0x62,0x77,0x78,0x79,0x90, +0x8E,0xB2,0x8A,0x96,0x88,0x8C,0xA4,0xA2,0x98,0x9E,0xF8,0xA0,0xAA,0xB8,0xB0,0xBE, +0xE1,0xC4,0xC6,0xCA,0xCE,0xD0,0xCC,0x63,0xEC,0xBC,0xDE,0xEA,0xE8,0xFA,0xFC,0xE0, +0x8E,0xB2,0x8A,0x96,0x88,0x8C,0xA4,0xA2,0x98,0x9E,0xF8,0xA0,0xAA,0xB8,0xB0,0xBE, +0xE1,0xC4,0xC6,0xCA,0xCE,0xD0,0xCC,0x64,0xEC,0xBC,0xDE,0xEA,0xE8,0xFA,0xFC,0x52 +}; + +static const uint16 to_uni_latin7_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019 +}; + +#endif + +#ifdef HAVE_CHARSET_latin7 +static const uchar ctype_latin7_general_cs[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20, +0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin7_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin7_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin7_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x30,0x32,0x33,0x34,0x35,0x36,0x37,0x2B,0x38,0x39,0x3A,0x5C,0x3B,0x2C,0x3C,0x3D, +0x76,0x7A,0x7C,0x7E,0x80,0x81,0x82,0x83,0x84,0x85,0x3E,0x3F,0x5D,0x5E,0x5F,0x40, +0x41,0x86,0x92,0x94,0x9A,0x9C,0xA6,0xA8,0xAC,0xAE,0xB4,0xB6,0xBA,0xC0,0xC2,0xC8, +0xD4,0xD6,0xD8,0xDC,0xE3,0xE6,0xEE,0xF0,0xF2,0xF4,0xF6,0x42,0x43,0x44,0x45,0x46, +0x47,0x87,0x93,0x95,0x9B,0x9D,0xA7,0xA9,0xAD,0xAF,0xB5,0xB7,0xBB,0xC1,0xC3,0xC9, +0xD5,0xD7,0xD9,0xDD,0xE4,0xE7,0xEF,0xF1,0xF3,0xF5,0xF7,0x48,0x49,0x4A,0x4B,0x20, +0x75,0x21,0x56,0x22,0x59,0x73,0x70,0x71,0x23,0x74,0x24,0x5A,0x25,0x4D,0x51,0x50, +0x26,0x54,0x55,0x57,0x58,0x72,0x2E,0x2F,0x27,0xE5,0x28,0x5B,0x29,0x4E,0x53,0x2A, +0x31,0xFE,0x65,0x66,0x67,0xFF,0x4C,0x68,0xD3,0x69,0xDA,0x61,0x6A,0x2D,0x6B,0x90, +0x6C,0x60,0x7D,0x7F,0x4F,0x6D,0x6E,0x6F,0xD2,0x7B,0xDB,0x62,0x77,0x78,0x79,0x91, +0x8E,0xB2,0x8A,0x96,0x88,0x8C,0xA4,0xA2,0x98,0x9E,0xF8,0xA0,0xAA,0xB8,0xB0,0xBE, +0xE1,0xC4,0xC6,0xCA,0xCE,0xD0,0xCC,0x63,0xEC,0xBC,0xDE,0xEA,0xE8,0xFA,0xFC,0xE0, +0x8F,0xB3,0x8B,0x97,0x89,0x8D,0xA5,0xA3,0x99,0x9F,0xF9,0xA1,0xAB,0xB9,0xB1,0xBF, +0xE2,0xC5,0xC7,0xCB,0xCF,0xD1,0xCD,0x64,0xED,0xBD,0xDF,0xEB,0xE9,0xFB,0xFD,0x52 +}; + +static const uint16 to_uni_latin7_general_cs[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019 +}; + +#endif + +#ifdef HAVE_CHARSET_macce +static const uchar ctype_macce_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x02,0x02,0x01,0x02,0x02,0x01,0x02,0x02,0x01, +0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02, +0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x01, +0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01, +0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x02,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x01,0x00,0x00,0x02,0x01, +0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x01, +0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x02,0x01,0x01,0x02,0x01,0x00 +}; + +static const uchar to_lower_macce_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x8A,0x82,0x82,0x8E,0x88,0x9A,0x9F,0x87,0x88,0x8B,0x8A,0x8B,0x8D,0x8D,0x8E,0x90, +0x90,0x93,0x92,0x93,0x95,0x95,0x98,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9E,0x9E,0x9F, +0xA0,0xA1,0xAB,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xB0, +0xB0,0xB4,0xB2,0xB3,0xB4,0xFA,0xB6,0xB7,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE,0xC0, +0xC0,0xC4,0xC2,0xC3,0xC4,0xCB,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0x9B,0xCE,0xD8, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xDA,0xDA,0xDE,0xDC,0xDD,0xDE,0xE0, +0xE0,0xE4,0xE2,0xE3,0xE4,0xE6,0xE6,0x87,0xE9,0xE9,0x92,0xEC,0xEC,0xF0,0x97,0x99, +0xF0,0xF3,0x9C,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFA,0xFD,0xB8,0xFD,0xAE,0xFF +}; + +static const uchar to_upper_macce_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x81,0x83,0x84,0x85,0x86,0xE7,0x84,0x89,0x80,0x89,0x8C,0x8C,0x83,0x8F, +0x8F,0x91,0xEA,0x91,0x94,0x94,0x96,0xEE,0x96,0xEF,0x85,0xCD,0xF2,0x9D,0x9D,0x86, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xA2,0xAC,0xAD,0xFE,0xAF, +0xAF,0xB1,0xB2,0xB3,0xB1,0xB5,0xB6,0xB7,0xFC,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF, +0xBF,0xC1,0xC2,0xC3,0xC1,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xC5,0xCC,0xCD,0xCC,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xCF,0xD9,0xD9,0xDB,0xDC,0xDD,0xDB,0xDF, +0xDF,0xE1,0xE2,0xE3,0xE1,0xE5,0xE5,0xE7,0xE8,0xE8,0xEA,0xEB,0xEB,0xED,0xEE,0xEF, +0xED,0xF1,0xF2,0xF1,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xB5,0xFB,0xFC,0xFB,0xFE,0xFF +}; + +static const uint16 to_uni_macce_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C4,0x0100,0x0101,0x00C9,0x0104,0x00D6,0x00DC,0x00E1, +0x0105,0x010C,0x00E4,0x010D,0x0106,0x0107,0x00E9,0x0179, +0x017A,0x010E,0x00ED,0x010F,0x0112,0x0113,0x0116,0x00F3, +0x0117,0x00F4,0x00F6,0x00F5,0x00FA,0x011A,0x011B,0x00FC, +0x2020,0x00B0,0x0118,0x00A3,0x00A7,0x2022,0x00B6,0x00DF, +0x00AE,0x00A9,0x2122,0x0119,0x00A8,0x2260,0x0123,0x012E, +0x012F,0x012A,0x2264,0x2265,0x012B,0x0136,0x2202,0x2211, +0x0142,0x013B,0x013C,0x013D,0x013E,0x0139,0x013A,0x0145, +0x0146,0x0143,0x00AC,0x221A,0x0144,0x0147,0x2206,0x00AB, +0x00BB,0x2026,0x00A0,0x0148,0x0150,0x00D5,0x0151,0x014C, +0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA, +0x014D,0x0154,0x0155,0x0158,0x2039,0x203A,0x0159,0x0156, +0x0157,0x0160,0x201A,0x201E,0x0161,0x015A,0x015B,0x00C1, +0x0164,0x0165,0x00CD,0x017D,0x017E,0x016A,0x00D3,0x00D4, +0x016B,0x016E,0x00DA,0x016F,0x0170,0x0171,0x0172,0x0173, +0x00DD,0x00FD,0x0137,0x017B,0x0141,0x017C,0x0122,0x02C7 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1250 +static const uchar ctype_cp1250_croatian_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02, +0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_cp1250_croatian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1250_croatian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_cp1250_croatian_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59, +0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x90,0x91,0x92,0x93,0x94, +0x95,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59, +0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x96,0x97,0x98,0x99,0x9A, +0x9B,0x9C,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x60,0xA6,0x5F,0x62,0x6C,0x6B, +0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0x60,0xB1,0x5F,0x62,0x6C,0x6B, +0xB2,0xB3,0xB4,0x54,0xB5,0x41,0xB6,0xB7,0xB8,0xB9,0x5F,0xBA,0xBB,0xBC,0xBD,0x6B, +0xBE,0xBF,0xC0,0x54,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x5F,0xC6,0x54,0xC7,0x54,0x6B, +0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48, +0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xC8,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0x5F, +0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48, +0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xC9,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0xFF +}; + +static const uint16 to_uni_cp1250_croatian_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, +0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, +0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, +0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_latin1 +static const uchar ctype_latin1_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin1_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin1_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin1_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81, +0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB3,0xB4,0xB5,0xB6,0xB7, +0xB8,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81, +0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB9,0xBA,0xBB,0xBC,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x55,0x5D,0x5F,0x61,0x63,0x6D,0x6F,0x71,0x73, +0x59,0x7F,0x83,0x85,0x87,0x89,0x8B,0xBD,0x8D,0x9C,0x9E,0xA0,0xA2,0xAC,0xB1,0x97, +0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x55,0x5D,0x5F,0x61,0x63,0x6D,0x6F,0x71,0x73, +0x59,0x7F,0x83,0x85,0x87,0x89,0x8B,0xBE,0x8D,0x9C,0x9E,0xA0,0xA2,0xAC,0xB1,0xAE +}; + +static const uint16 to_uni_latin1_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_latin1 +static const uchar ctype_latin1_general_cs[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin1_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin1_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin1_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81, +0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB3,0xB4,0xB5,0xB6,0xB7, +0xB8,0x42,0x52,0x54,0x58,0x5C,0x66,0x68,0x6A,0x6C,0x76,0x78,0x7A,0x7C,0x7E,0x82, +0x90,0x92,0x94,0x96,0x99,0x9B,0xA5,0xA7,0xA9,0xAB,0xB0,0xB9,0xBA,0xBB,0xBC,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x55,0x5D,0x5F,0x61,0x63,0x6D,0x6F,0x71,0x73, +0x59,0x7F,0x83,0x85,0x87,0x89,0x8B,0xBD,0x8D,0x9C,0x9E,0xA0,0xA2,0xAC,0xB1,0x97, +0x44,0x46,0x48,0x4A,0x4C,0x4E,0x50,0x56,0x5E,0x60,0x62,0x64,0x6E,0x70,0x72,0x74, +0x5A,0x80,0x84,0x86,0x88,0x8A,0x8C,0xBE,0x8E,0x9D,0x9F,0xA1,0xA3,0xAD,0xB2,0xAE +}; + +static const uint16 to_uni_latin1_general_cs[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_cp1251 +static const uchar ctype_cp1251_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02, +0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_cp1251_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1251_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F, +0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uint16 to_uni_cp1251_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, +0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, +0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, +0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, +0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, +0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, +0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F +}; + +#endif + +#ifdef HAVE_CHARSET_cp1251 +static const uchar ctype_cp1251_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02, +0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_cp1251_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1251_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F, +0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar sort_order_cp1251_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D, +0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xD3,0xD4,0xD5,0xD6,0xD7, +0xD8,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D, +0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xD9,0xDA,0xDB,0xDC,0xDD, +0x81,0x83,0xDE,0x83,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xA1,0xE5,0xA7,0x9D,0xB3,0xC1, +0x81,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xA1,0xEF,0xA7,0x9D,0xB3,0xC1, +0xF0,0xB7,0xB7,0x99,0xF1,0x7D,0xF2,0xF3,0x87,0xF4,0x89,0xF5,0xF6,0xF7,0xF8,0x95, +0xF9,0xFA,0x93,0x93,0x7D,0xFB,0xFC,0xFD,0x87,0xFE,0x89,0xFF,0x99,0x8F,0x8F,0x95, +0x75,0x77,0x79,0x7B,0x7F,0x85,0x8B,0x8D,0x91,0x97,0x9B,0x9F,0xA3,0xA5,0xA9,0xAB, +0xAD,0xAF,0xB1,0xB5,0xB9,0xBB,0xBD,0xBF,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1, +0x75,0x77,0x79,0x7B,0x7F,0x85,0x8B,0x8D,0x91,0x97,0x9B,0x9F,0xA3,0xA5,0xA9,0xAB, +0xAD,0xAF,0xB1,0xB5,0xB9,0xBB,0xBD,0xBF,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1 +}; + +static const uint16 to_uni_cp1251_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, +0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, +0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, +0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, +0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, +0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, +0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F +}; + +#endif + +#ifdef HAVE_CHARSET_cp1251 +static const uchar ctype_cp1251_general_cs[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02, +0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_cp1251_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1251_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F, +0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar sort_order_cp1251_general_cs[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D, +0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xD3,0xD4,0xD5,0xD6,0xD7, +0xD8,0x42,0x44,0x46,0x48,0x4A,0x4C,0x4E,0x50,0x52,0x54,0x56,0x58,0x5A,0x5C,0x5E, +0x60,0x62,0x64,0x66,0x68,0x6A,0x6C,0x6E,0x70,0x72,0x74,0xD9,0xDA,0xDB,0xDC,0xDD, +0x81,0x83,0xDE,0x84,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xA1,0xE5,0xA7,0x9D,0xB3,0xC1, +0x82,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xA2,0xEF,0xA8,0x9E,0xB4,0xC2, +0xF0,0xB7,0xB8,0x99,0xF1,0x7D,0xF2,0xF3,0x87,0xF4,0x89,0xF5,0xF6,0xF7,0xF8,0x95, +0xF9,0xFA,0x93,0x94,0x7E,0xFB,0xFC,0xFD,0x88,0xFE,0x8A,0xFF,0x9A,0x8F,0x90,0x96, +0x75,0x77,0x79,0x7B,0x7F,0x85,0x8B,0x8D,0x91,0x97,0x9B,0x9F,0xA3,0xA5,0xA9,0xAB, +0xAD,0xAF,0xB1,0xB5,0xB9,0xBB,0xBD,0xBF,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1, +0x76,0x78,0x7A,0x7C,0x80,0x86,0x8C,0x8E,0x92,0x98,0x9C,0xA0,0xA4,0xA6,0xAA,0xAC, +0xAE,0xB0,0xB2,0xB6,0xBA,0xBC,0xBE,0xC0,0xC4,0xC6,0xC8,0xCA,0xCC,0xCE,0xD0,0xD2 +}; + +static const uint16 to_uni_cp1251_general_cs[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, +0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, +0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, +0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, +0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, +0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, +0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F +}; + +#endif + +#ifdef HAVE_CHARSET_macroman +static const uchar ctype_macroman_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x10, +0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02, +0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x00,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_macroman_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x8A,0x8C,0x8D,0x8E,0x96,0x9A,0x9F,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xBE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0x88,0x8B,0x9B,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0x89,0x90,0x87,0x91,0x8F,0x92,0x94,0x95,0x93,0x97,0x99, +0xF0,0x98,0x9C,0x9E,0x9D,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_macroman_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0xE7,0xCB,0xE5,0x80,0xCC,0x81,0x82,0x83,0xE9, +0xE6,0xE8,0xEA,0xED,0xEB,0xEC,0x84,0xEE,0xF1,0xEF,0x85,0xCD,0xF2,0xF4,0xF3,0x86, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xAE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD9,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_macroman_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1, +0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8, +0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3, +0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC, +0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF, +0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8, +0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211, +0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8, +0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB, +0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153, +0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA, +0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02, +0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1, +0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4, +0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC, +0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1256 +static const uchar ctype_cp1256_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x00,0x00, +0x00,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00, +0x03,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x00, +0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x10, +0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x02,0x03,0x02,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x02,0x02, +0x03,0x03,0x03,0x03,0x02,0x03,0x03,0x00,0x03,0x02,0x03,0x02,0x02,0x00,0x00,0x00 +}; + +static const uchar to_lower_cp1256_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x9C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1256_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5F,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7F,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_cp1256_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x45,0x47,0x4A,0x4C,0x52,0x55,0x57,0x59,0x5D,0x5F,0x61,0x63,0x65,0x67, +0x6C,0x6E,0x70,0x72,0x74,0x76,0x7B,0x7D,0x7F,0x81,0x83,0xB9,0xBA,0xBB,0xBC,0xBD, +0xBE,0x41,0x45,0x47,0x4A,0x4C,0x52,0x55,0x57,0x59,0x5D,0x5F,0x61,0x63,0x65,0x67, +0x6C,0x6E,0x70,0x72,0x74,0x76,0x7B,0x7D,0x7F,0x81,0x83,0xBF,0xC0,0xC1,0xC2,0xC3, +0xC4,0x8E,0xC5,0x54,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0x6A,0x92,0x99,0xCE, +0xA5,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x6A,0xDA,0xDB,0xDC, +0xDD,0xB6,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB, +0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xB7,0xF6,0xF7,0xF8,0xF9,0xB8, +0xFA,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x9F,0x90,0x91,0x93,0x94,0x95, +0x96,0x97,0x98,0x9A,0x9B,0x9C,0x9D,0xFB,0x9E,0x9F,0xA0,0xA1,0xAD,0xA2,0xA3,0xA4, +0x43,0xA6,0x44,0xA7,0xA8,0xA9,0xAA,0x49,0x4E,0x4F,0x50,0x51,0xAB,0xAC,0x5B,0x5C, +0xAE,0xAF,0xB0,0xB1,0x69,0xB2,0xB3,0xFC,0xB4,0x78,0xB5,0x79,0x7A,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_cp1256_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0000,0x2039,0x0152,0x0686,0x0698,0x0000, +0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0000,0x203A,0x0153,0x200C,0x200D,0x0000, +0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F, +0x0000,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, +0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, +0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7, +0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643, +0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF, +0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7, +0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1257 +static const uchar ctype_cp1257_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00 +}; + +static const uchar to_lower_cp1257_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1257_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uint16 to_uni_cp1257_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0000,0x2039,0x0000,0x00A8,0x02C7,0x00B8, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0000,0x203A,0x0000,0x00AF,0x02DB,0x0000, +0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x0000,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1257 +static const uchar ctype_cp1257_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00 +}; + +static const uchar to_lower_cp1257_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1257_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_cp1257_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x4D,0x4F,0x55,0x57,0x61,0x63,0x67,0x69,0x6F,0x71,0x75,0x7B,0x7D,0x83, +0x8F,0x91,0x93,0x97,0x9E,0xA0,0xA8,0xAA,0xAC,0xAE,0xB0,0xB8,0xB9,0xBA,0xBB,0xBC, +0xBD,0x41,0x4D,0x4F,0x55,0x57,0x61,0x63,0x67,0x69,0x6F,0x71,0x75,0x7B,0x7D,0x83, +0x8F,0x91,0x93,0x97,0x9E,0xA0,0xA8,0xAA,0xAC,0xAE,0xB0,0xBE,0xBF,0xC0,0xC1,0xC4, +0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4, +0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4, +0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0x83,0xED,0x93,0xEE,0xEF,0xF0,0xF1,0x41, +0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0x83,0xFA,0x93,0xFB,0xFC,0xFD,0xFE,0x41, +0x41,0x69,0x41,0x4F,0x41,0x41,0x57,0x57,0x4F,0x57,0xB0,0x57,0x63,0x71,0x69,0x75, +0x97,0x7D,0x7D,0x83,0x83,0x83,0x83,0xC2,0xA0,0x75,0x97,0xA0,0xA0,0xB0,0xB0,0x97, +0x41,0x69,0x41,0x4F,0x41,0x41,0x57,0x57,0x4F,0x57,0xB0,0x57,0x63,0x71,0x69,0x75, +0x97,0x7D,0x7D,0x83,0x83,0x83,0x83,0xC3,0xA0,0x75,0x97,0xA0,0xA0,0xB0,0xB0,0xFF +}; + +static const uint16 to_uni_cp1257_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0000,0x2039,0x0000,0x00A8,0x02C7,0x00B8, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0000,0x203A,0x0000,0x00AF,0x02DB,0x0000, +0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x0000,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_armscii8 +static const uchar ctype_armscii8_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x10,0x10 +}; + +static const uchar to_lower_armscii8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB3,0xB3,0xB5,0xB5,0xB7,0xB7,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF,0xBF, +0xC1,0xC1,0xC3,0xC3,0xC5,0xC5,0xC7,0xC7,0xC9,0xC9,0xCB,0xCB,0xCD,0xCD,0xCF,0xCF, +0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xD9,0xD9,0xDB,0xDB,0xDD,0xDD,0xDF,0xDF, +0xE1,0xE1,0xE3,0xE3,0xE5,0xE5,0xE7,0xE7,0xE9,0xE9,0xEB,0xEB,0xED,0xED,0xEF,0xEF, +0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFB,0xFB,0xFD,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_armscii8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB2,0xB4,0xB4,0xB6,0xB6,0xB8,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE, +0xC0,0xC0,0xC2,0xC2,0xC4,0xC4,0xC6,0xC6,0xC8,0xC8,0xCA,0xCA,0xCC,0xCC,0xCE,0xCE, +0xD0,0xD0,0xD2,0xD2,0xD4,0xD4,0xD6,0xD6,0xD8,0xD8,0xDA,0xDA,0xDC,0xDC,0xDE,0xDE, +0xE0,0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE, +0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF +}; + +static const uint16 to_uni_armscii8_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x2741,0x00A7,0x0589,0x0029,0x0028,0x00BB,0x00AB, +0x2014,0x002E,0x055D,0x002C,0x002D,0x055F,0x2026,0x055C, +0x055B,0x055E,0x0531,0x0561,0x0532,0x0562,0x0533,0x0563, +0x0534,0x0564,0x0535,0x0565,0x0536,0x0566,0x0537,0x0567, +0x0538,0x0568,0x0539,0x0569,0x053A,0x056A,0x053B,0x056B, +0x053C,0x056C,0x053D,0x056D,0x053E,0x056E,0x053F,0x056F, +0x0540,0x0570,0x0541,0x0571,0x0542,0x0572,0x0543,0x0573, +0x0544,0x0574,0x0545,0x0575,0x0546,0x0576,0x0547,0x0577, +0x0548,0x0578,0x0549,0x0579,0x054A,0x057A,0x054B,0x057B, +0x054C,0x057C,0x054D,0x057D,0x054E,0x057E,0x054F,0x057F, +0x0550,0x0580,0x0551,0x0581,0x0552,0x0582,0x0553,0x0583, +0x0554,0x0584,0x0555,0x0585,0x0556,0x0586,0x2019,0x0027 +}; + +#endif + +#ifdef HAVE_CHARSET_ascii +static const uchar ctype_ascii_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_ascii_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_ascii_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_ascii_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1250 +static const uchar ctype_cp1250_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02, +0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_cp1250_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1250_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uint16 to_uni_cp1250_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, +0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, +0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, +0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_cp1256 +static const uchar ctype_cp1256_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x00,0x00, +0x00,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00, +0x03,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x00, +0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x10, +0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x02,0x03,0x02,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x02,0x02, +0x03,0x03,0x03,0x03,0x02,0x03,0x03,0x00,0x03,0x02,0x03,0x02,0x02,0x00,0x00,0x00 +}; + +static const uchar to_lower_cp1256_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x9C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1256_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5F,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7F,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_cp1256_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0000,0x2039,0x0152,0x0686,0x0698,0x0000, +0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0000,0x203A,0x0153,0x200C,0x200D,0x0000, +0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F, +0x0000,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, +0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, +0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7, +0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643, +0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF, +0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7, +0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_cp866 +static const uchar ctype_cp866_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48 +}; + +static const uchar to_lower_cp866_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp866_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_cp866_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, +0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567, +0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B, +0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, +0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E, +0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_dec8 +static const uchar ctype_dec8_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_dec8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_dec8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uint16 to_uni_dec8_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x00A1,0x00A2,0x00A3,0x0000,0x00A5,0x0000,0x00A7, +0x00A4,0x00A9,0x00AA,0x00AB,0x0000,0x0000,0x0000,0x0000, +0x00B0,0x00B1,0x00B2,0x00B3,0x0000,0x00B5,0x00B6,0x00B7, +0x0000,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x0000,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x0000,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x0152, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0178,0x0000,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x0000,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x0153, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FF,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_greek +static const uchar ctype_greek_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x01,0x01,0x10,0x01,0x10,0x01,0x01, +0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00 +}; + +static const uchar to_lower_greek_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xDC,0xB7,0xDD,0xDE,0xDF,0xBB,0xFC,0xBD,0xFD,0xFE, +0xC0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xD2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_greek_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xDA,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xC1,0xC5,0xC7,0xC9, +0xDB,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD3,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xCF,0xD5,0xD9,0xFF +}; + +static const uint16 to_uni_greek_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x02BD,0x02BC,0x00A3,0x0000,0x0000,0x00A6,0x00A7, +0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x0000,0x2015, +0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x0385,0x0386,0x00B7, +0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F, +0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, +0x03A0,0x03A1,0x0000,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, +0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF, +0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, +0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, +0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7, +0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_hebrew +static const uchar ctype_hebrew_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00 +}; + +static const uchar to_lower_hebrew_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_hebrew_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_hebrew_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x203E, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2017, +0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, +0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, +0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, +0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x200E,0x200F,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_hp8 +static const uchar ctype_hp8_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x02, +0x01,0x10,0x10,0x01,0x02,0x10,0x10,0x02,0x01,0x10,0x01,0x01,0x01,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20 +}; + +static const uchar to_lower_hp8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xC8,0xC0,0xC9,0xC1,0xCD,0xD1,0xDD,0xA8,0xA9,0xAA,0xAB,0xAC,0xCB,0xC3,0xAF, +0xB0,0xB2,0xB2,0xB3,0xB5,0xB5,0xB7,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD4,0xD1,0xD6,0xD7,0xD4,0xD5,0xD6,0xD7,0xCC,0xD9,0xCE,0xCF,0xC5,0xDD,0xDE,0xC2, +0xC4,0xE2,0xE2,0xE4,0xE4,0xD5,0xD9,0xC6,0xCA,0xEA,0xEA,0xEC,0xEC,0xC7,0xEF,0xEF, +0xF1,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_hp8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB1,0xB3,0xB4,0xB4,0xB6,0xB6,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xA2,0xA4,0xDF,0xAE,0xE0,0xDC,0xE7,0xED,0xA1,0xA3,0xE8,0xAD,0xD8,0xA5,0xDA,0xDB, +0xD0,0xA6,0xD2,0xD3,0xD0,0xE5,0xD2,0xD3,0xD8,0xE6,0xDA,0xDB,0xDC,0xA7,0xDE,0xDF, +0xE0,0xE1,0xE1,0xE3,0xE3,0xE5,0xE6,0xE7,0xE8,0xE9,0xE9,0xEB,0xEB,0xED,0xEE,0xEE, +0xF0,0xF0,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_hp8_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x00C0,0x00C2,0x00C8,0x00CA,0x00CB,0x00CE,0x00CF, +0x00B4,0x02CB,0x02C6,0x00A8,0x02DC,0x00D9,0x00DB,0x20A4, +0x00AF,0x00DD,0x00FD,0x00B0,0x00C7,0x00E7,0x00D1,0x00F1, +0x00A1,0x00BF,0x00A4,0x00A3,0x00A5,0x00A7,0x0192,0x00A2, +0x00E2,0x00EA,0x00F4,0x00FB,0x00E1,0x00E9,0x00F3,0x00FA, +0x00E0,0x00E8,0x00F2,0x00F9,0x00E4,0x00EB,0x00F6,0x00FC, +0x00C5,0x00EE,0x00D8,0x00C6,0x00E5,0x00ED,0x00F8,0x00E6, +0x00C4,0x00EC,0x00D6,0x00DC,0x00C9,0x00EF,0x00DF,0x00D4, +0x00C1,0x00C3,0x00E3,0x00D0,0x00F0,0x00CD,0x00CC,0x00D3, +0x00D2,0x00D5,0x00F5,0x0160,0x0161,0x00DA,0x0178,0x00FF, +0x00DE,0x00FE,0x00B7,0x00B5,0x00B6,0x00BE,0x2014,0x00BC, +0x00BD,0x00AA,0x00BA,0x00AB,0x25A0,0x00BB,0x00B1,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_keybcs2 +static const uchar ctype_keybcs2_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x02,0x82,0x02,0x02,0x01,0x01,0x02,0x82,0x81,0x01,0x01,0x02,0x02,0x01,0x01, +0x81,0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x01,0x02,0x00,0x02,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48 +}; + +static const uchar to_lower_keybcs2_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x81,0x82,0x83,0x84,0x83,0x86,0x87,0x88,0x88,0x8D,0xA1,0x8C,0x8D,0x84,0xA0, +0x82,0x91,0x91,0x93,0x94,0xA2,0x96,0xA3,0x98,0x94,0x81,0x9B,0x8C,0x98,0xA9,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0x96,0x93,0x9B,0xA9,0xAA,0xAA,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xED,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_keybcs2_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x68,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x9A,0x90,0x85,0x8E,0x85,0x86,0x80,0x89,0x89,0x8A,0x8B,0x9C,0x8A,0x8E,0x8F, +0x90,0x92,0x92,0xA7,0x99,0x95,0xA6,0x97,0x9D,0x99,0x9A,0xA8,0x9C,0x9D,0x9E,0x9F, +0x8F,0x8B,0x95,0x97,0xA5,0xA5,0xA6,0xA7,0xA8,0x9E,0xAB,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xE8,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_keybcs2_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x010C,0x00FC,0x00E9,0x010F,0x00E4,0x010E,0x0164,0x010D, +0x011B,0x011A,0x0139,0x00CD,0x013E,0x013A,0x00C4,0x00C1, +0x00C9,0x017E,0x017D,0x00F4,0x00F6,0x00D3,0x016F,0x00DA, +0x00FD,0x00D6,0x00DC,0x0160,0x013D,0x00DD,0x0158,0x0165, +0x00E1,0x00ED,0x00F3,0x00FA,0x0148,0x0147,0x016E,0x00D4, +0x0161,0x0159,0x0155,0x0154,0x00BC,0x00A1,0x00AB,0x00BB, +0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, +0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567, +0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B, +0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, +0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4, +0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229, +0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248, +0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_koi8r +static const uchar ctype_koi8r_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 +}; + +static const uchar to_lower_koi8r_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar to_upper_koi8r_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xB3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_koi8r_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, +0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, +0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248, +0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, +0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556, +0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E, +0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565, +0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9, +0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, +0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A +}; + +#endif + +#ifdef HAVE_CHARSET_koi8u +static const uchar ctype_koi8u_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x02,0x02,0x10,0x02,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10, +0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 +}; + +static const uchar to_lower_koi8u_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x20,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20, +0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF +}; + +static const uchar to_upper_koi8u_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x20,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20, +0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_koi8u_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, +0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, +0x2591,0x2592,0x2593,0x2320,0x25A0,0x2022,0x221A,0x2248, +0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, +0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457, +0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E, +0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407, +0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9, +0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, +0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A +}; + +#endif + +#ifdef HAVE_CHARSET_latin2 +static const uchar ctype_latin2_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01, +0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin2_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin2_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uint16 to_uni_latin2_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, +0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, +0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, +0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +#ifdef HAVE_CHARSET_latin5 +static const uchar ctype_latin5_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin5_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0xFD,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0x69,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin5_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0xDD,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0x49,0xDE,0xFF +}; + +static const uint16 to_uni_latin5_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_latin7 +static const uchar ctype_latin7_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20, +0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_latin7_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin7_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uint16 to_uni_latin7_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019 +}; + +#endif + +#ifdef HAVE_CHARSET_cp850 +static const uchar ctype_cp850_bin[] = { +0x00, +0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x30,0x30, +0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x30,0x30,0x30,0x30, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x30, +0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01, +0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x02,0x10,0x01,0x10,0x10, +0x02,0x02,0x02,0x02,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10, +0x01,0x02,0x01,0x01,0x02,0x01,0x10,0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20 +}; + +static const uchar to_lower_cp850_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x84,0x86, +0x82,0x91,0x91,0x93,0x94,0x95,0x96,0x97,0x98,0x94,0x81,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp850_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, +0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_cp850_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7, +0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, +0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9, +0x00FF,0x00D6,0x00DC,0x00F8,0x00A3,0x00D8,0x00D7,0x0192, +0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA, +0x00BF,0x00AE,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB, +0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x00C0, +0x00A9,0x2563,0x2551,0x2557,0x255D,0x00A2,0x00A5,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x00E3,0x00C3, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, +0x00F0,0x00D0,0x00CA,0x00CB,0x00C8,0x0131,0x00CD,0x00CE, +0x00CF,0x2518,0x250C,0x2588,0x2584,0x00A6,0x00CC,0x2580, +0x00D3,0x00DF,0x00D4,0x00D2,0x00F5,0x00D5,0x00B5,0x00FE, +0x00DE,0x00DA,0x00DB,0x00D9,0x00FD,0x00DD,0x00AF,0x00B4, +0x00AD,0x00B1,0x2017,0x00BE,0x00B6,0x00A7,0x00F7,0x00B8, +0x00B0,0x00A8,0x00B7,0x00B9,0x00B3,0x00B2,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_cp852 +static const uchar ctype_cp852_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00, +0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02,0x01,0x01,0x01, +0x01,0x01,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x02,0x01,0x00,0x02, +0x02,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x01,0x00, +0x01,0x02,0x01,0x01,0x02,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x00,0x48 +}; + +static const uchar to_lower_cp852_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8B,0x8B,0x8C,0xAB,0x84,0x86, +0x82,0x92,0x92,0x93,0x94,0x96,0x96,0x98,0x98,0x94,0x81,0x9C,0x9C,0x88,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAA,0xAB,0x9F,0xB8,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xA0,0x83,0xD8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD0,0xD4,0x89,0xD4,0xE5,0xA1,0x8C,0xD8,0xD9,0xDA,0xDB,0xDC,0xEE,0x85,0xDF, +0xA2,0xE1,0x93,0xE4,0xE4,0xE5,0xE7,0xE7,0xEA,0xA3,0xE8,0xFB,0xEC,0xEC,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp852_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, +0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, +0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xAD,0xB9,0xBA,0xBB,0xBC,0xBE,0xBD,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF +}; + +static const uint16 to_uni_cp852_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x016F,0x0107,0x00E7, +0x0142,0x00EB,0x0150,0x0151,0x00EE,0x0179,0x00C4,0x0106, +0x00C9,0x0139,0x013A,0x00F4,0x00F6,0x013D,0x013E,0x015A, +0x015B,0x00D6,0x00DC,0x0164,0x0165,0x0141,0x00D7,0x010D, +0x00E1,0x00ED,0x00F3,0x00FA,0x0104,0x0105,0x017D,0x017E, +0x0118,0x0119,0x00AC,0x017A,0x010C,0x015F,0x00AB,0x00BB, +0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x011A, +0x015E,0x2563,0x2551,0x2557,0x255D,0x017B,0x017C,0x2510, +0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x0102,0x0103, +0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4, +0x0111,0x0110,0x010E,0x00CB,0x010F,0x0147,0x00CD,0x00CE, +0x011B,0x2518,0x250C,0x2588,0x2584,0x0162,0x016E,0x2580, +0x00D3,0x00DF,0x00D4,0x0143,0x0144,0x0148,0x0160,0x0161, +0x0154,0x00DA,0x0155,0x0170,0x00FD,0x00DD,0x0163,0x00B4, +0x00AD,0x02DD,0x02DB,0x02C7,0x02D8,0x00A7,0x00F7,0x00B8, +0x00B0,0x00A8,0x02D9,0x0171,0x0158,0x0159,0x25A0,0x00A0 +}; + +#endif + +#ifdef HAVE_CHARSET_swe7 +static const uchar ctype_swe7_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10, +0x01,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_swe7_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_swe7_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_swe7_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x00C9,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x00C4,0x00D6,0x00C5,0x00DC,0x005F, +0x00E9,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x00E4,0x00F6,0x00E5,0x00FC,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_geostd8 +static const uchar ctype_geostd8_general_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, +0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_geostd8_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_geostd8_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar sort_order_geostd8_general_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_geostd8_general_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0000,0x2039,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x0000,0x0000,0x203A,0x0000,0x0000,0x0000,0x0000, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x10D0,0x10D1,0x10D2,0x10D3,0x10D4,0x10D5,0x10D6,0x10F1, +0x10D7,0x10D8,0x10D9,0x10DA,0x10DB,0x10DC,0x10F2,0x10DD, +0x10DE,0x10DF,0x10E0,0x10E1,0x10E2,0x10F3,0x10E3,0x10E4, +0x10E5,0x10E6,0x10E7,0x10E8,0x10E9,0x10EA,0x10EB,0x10EC, +0x10ED,0x10EE,0x10F4,0x10EF,0x10F0,0x10F5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x2116,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_geostd8 +static const uchar ctype_geostd8_bin[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, +0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static const uchar to_lower_geostd8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_geostd8_bin[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uint16 to_uni_geostd8_bin[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0000,0x2039,0x0000,0x0000,0x0000,0x0000, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x0000,0x0000,0x203A,0x0000,0x0000,0x0000,0x0000, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x10D0,0x10D1,0x10D2,0x10D3,0x10D4,0x10D5,0x10D6,0x10F1, +0x10D7,0x10D8,0x10D9,0x10DA,0x10DB,0x10DC,0x10F2,0x10DD, +0x10DE,0x10DF,0x10E0,0x10E1,0x10E2,0x10F3,0x10E3,0x10E4, +0x10E5,0x10E6,0x10E7,0x10E8,0x10E9,0x10EA,0x10EB,0x10EC, +0x10ED,0x10EE,0x10F4,0x10EF,0x10F0,0x10F5,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x2116,0x0000,0x0000 +}; + +#endif + +#ifdef HAVE_CHARSET_latin1 +static const uchar ctype_latin1_spanish_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02 +}; + +static const uchar to_lower_latin1_spanish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_latin1_spanish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_latin1_spanish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81, +0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB3,0xB4,0xB5,0xB6,0xB7, +0xB8,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81, +0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB9,0xBA,0xBB,0xBC,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x5B,0x5B,0x5B,0x5B,0x6B,0x6B,0x6B,0x6B, +0x57,0x7F,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0x9A,0x9A,0x9A,0x9A,0xAA,0xB1,0x97, +0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x5B,0x5B,0x5B,0x5B,0x6B,0x6B,0x6B,0x6B, +0x57,0x7F,0x81,0x81,0x81,0x81,0x81,0xBE,0x81,0x9A,0x9A,0x9A,0x9A,0xAA,0xB1,0xAA +}; + +static const uint16 to_uni_latin1_spanish_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; + +#endif + +#ifdef HAVE_CHARSET_cp1250 +static const uchar ctype_cp1250_polish_ci[] = { +0x00, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10, +0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20, +0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01, +0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02, +0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01, +0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10 +}; + +static const uchar to_lower_cp1250_polish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + +static const uchar to_upper_cp1250_polish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF +}; + +static const uchar sort_order_cp1250_polish_ci[] = { +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59, +0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x90,0x91,0x92,0x93,0x94, +0x95,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59, +0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x96,0x97,0x98,0x99,0x9A, +0x9B,0x9C,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x5F,0xA6,0x60,0x62,0x6B,0x6C, +0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0x5F,0xB1,0x60,0x62,0x6B,0x6C, +0xB2,0xB3,0xB4,0x55,0xB5,0x42,0xB6,0xB7,0xB8,0xB9,0x5F,0xBA,0xBB,0xBC,0xBD,0x6D, +0xBE,0xBF,0xC0,0x55,0xC1,0xC2,0xC3,0xC4,0xC5,0x42,0x5F,0xC6,0x54,0xC7,0x54,0x6D, +0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x44,0x4B,0x4C,0x4B,0x4B,0x50,0x50,0x48, +0x48,0x58,0x57,0x5A,0x59,0x59,0x59,0xC8,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0x5F, +0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x44,0x4B,0x4C,0x4B,0x4B,0x50,0x50,0x48, +0x48,0x58,0x57,0x5A,0x59,0x59,0x59,0xC9,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0xFF +}; + +static const uint16 to_uni_cp1250_polish_ci[] = { +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021, +0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, +0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, +0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, +0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, +0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + +#endif + +CHARSET_INFO compiled_charsets[] = { +#ifdef HAVE_CHARSET_dec8 +{ + 3,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "dec8", /* cset name */ + "dec8_swedish_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_dec8_swedish_ci, /* ctype */ + to_lower_dec8_swedish_ci, /* lower */ + to_upper_dec8_swedish_ci, /* upper */ + sort_order_dec8_swedish_ci, /* sort_order */ + NULL, /* uca */ + to_uni_dec8_swedish_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp850 +{ + 4,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp850", /* cset name */ + "cp850_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp850_general_ci, /* ctype */ + to_lower_cp850_general_ci, /* lower */ + to_upper_cp850_general_ci, /* upper */ + sort_order_cp850_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp850_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin1 +{ + 5,0,0, + MY_CS_COMPILED, + "latin1", /* cset name */ + "latin1_german1_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1_german1_ci, /* ctype */ + to_lower_latin1_german1_ci, /* lower */ + to_upper_latin1_german1_ci, /* upper */ + sort_order_latin1_german1_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin1_german1_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_hp8 +{ + 6,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "hp8", /* cset name */ + "hp8_english_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_hp8_english_ci, /* ctype */ + to_lower_hp8_english_ci, /* lower */ + to_upper_hp8_english_ci, /* upper */ + sort_order_hp8_english_ci, /* sort_order */ + NULL, /* uca */ + to_uni_hp8_english_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_koi8r +{ + 7,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "koi8r", /* cset name */ + "koi8r_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_koi8r_general_ci, /* ctype */ + to_lower_koi8r_general_ci, /* lower */ + to_upper_koi8r_general_ci, /* upper */ + sort_order_koi8r_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_koi8r_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin2 +{ + 9,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "latin2", /* cset name */ + "latin2_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin2_general_ci, /* ctype */ + to_lower_latin2_general_ci, /* lower */ + to_upper_latin2_general_ci, /* upper */ + sort_order_latin2_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin2_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_swe7 +{ + 10,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_NONASCII, + "swe7", /* cset name */ + "swe7_swedish_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_swe7_swedish_ci, /* ctype */ + to_lower_swe7_swedish_ci, /* lower */ + to_upper_swe7_swedish_ci, /* upper */ + sort_order_swe7_swedish_ci, /* sort_order */ + NULL, /* uca */ + to_uni_swe7_swedish_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_ascii +{ + 11,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_PUREASCII, + "ascii", /* cset name */ + "ascii_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ascii_general_ci, /* ctype */ + to_lower_ascii_general_ci, /* lower */ + to_upper_ascii_general_ci, /* upper */ + sort_order_ascii_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_ascii_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ascii_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1251 +{ + 14,0,0, + MY_CS_COMPILED, + "cp1251", /* cset name */ + "cp1251_bulgarian_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1251_bulgarian_ci, /* ctype */ + to_lower_cp1251_bulgarian_ci, /* lower */ + to_upper_cp1251_bulgarian_ci, /* upper */ + sort_order_cp1251_bulgarian_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1251_bulgarian_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin1 +{ + 15,0,0, + MY_CS_COMPILED, + "latin1", /* cset name */ + "latin1_danish_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1_danish_ci, /* ctype */ + to_lower_latin1_danish_ci, /* lower */ + to_upper_latin1_danish_ci, /* upper */ + sort_order_latin1_danish_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin1_danish_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_hebrew +{ + 16,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "hebrew", /* cset name */ + "hebrew_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_hebrew_general_ci, /* ctype */ + to_lower_hebrew_general_ci, /* lower */ + to_upper_hebrew_general_ci, /* upper */ + sort_order_hebrew_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_hebrew_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin7 +{ + 20,0,0, + MY_CS_COMPILED|MY_CS_CSSORT, + "latin7", /* cset name */ + "latin7_estonian_cs", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin7_estonian_cs, /* ctype */ + to_lower_latin7_estonian_cs, /* lower */ + to_upper_latin7_estonian_cs, /* upper */ + sort_order_latin7_estonian_cs, /* sort_order */ + NULL, /* uca */ + to_uni_latin7_estonian_cs, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin2 +{ + 21,0,0, + MY_CS_COMPILED, + "latin2", /* cset name */ + "latin2_hungarian_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin2_hungarian_ci, /* ctype */ + to_lower_latin2_hungarian_ci, /* lower */ + to_upper_latin2_hungarian_ci, /* upper */ + sort_order_latin2_hungarian_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin2_hungarian_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_koi8u +{ + 22,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "koi8u", /* cset name */ + "koi8u_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_koi8u_general_ci, /* ctype */ + to_lower_koi8u_general_ci, /* lower */ + to_upper_koi8u_general_ci, /* upper */ + sort_order_koi8u_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_koi8u_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1251 +{ + 23,0,0, + MY_CS_COMPILED, + "cp1251", /* cset name */ + "cp1251_ukrainian_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1251_ukrainian_ci, /* ctype */ + to_lower_cp1251_ukrainian_ci, /* lower */ + to_upper_cp1251_ukrainian_ci, /* upper */ + sort_order_cp1251_ukrainian_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1251_ukrainian_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_greek +{ + 25,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "greek", /* cset name */ + "greek_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_greek_general_ci, /* ctype */ + to_lower_greek_general_ci, /* lower */ + to_upper_greek_general_ci, /* upper */ + sort_order_greek_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_greek_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1250 +{ + 26,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp1250", /* cset name */ + "cp1250_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1250_general_ci, /* ctype */ + to_lower_cp1250_general_ci, /* lower */ + to_upper_cp1250_general_ci, /* upper */ + sort_order_cp1250_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1250_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin2 +{ + 27,0,0, + MY_CS_COMPILED, + "latin2", /* cset name */ + "latin2_croatian_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin2_croatian_ci, /* ctype */ + to_lower_latin2_croatian_ci, /* lower */ + to_upper_latin2_croatian_ci, /* upper */ + sort_order_latin2_croatian_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin2_croatian_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1257 +{ + 29,0,0, + MY_CS_COMPILED, + "cp1257", /* cset name */ + "cp1257_lithuanian_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1257_lithuanian_ci, /* ctype */ + to_lower_cp1257_lithuanian_ci, /* lower */ + to_upper_cp1257_lithuanian_ci, /* upper */ + sort_order_cp1257_lithuanian_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1257_lithuanian_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin5 +{ + 30,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "latin5", /* cset name */ + "latin5_turkish_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin5_turkish_ci, /* ctype */ + to_lower_latin5_turkish_ci, /* lower */ + to_upper_latin5_turkish_ci, /* upper */ + sort_order_latin5_turkish_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin5_turkish_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_armscii8 +{ + 32,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "armscii8", /* cset name */ + "armscii8_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_armscii8_general_ci, /* ctype */ + to_lower_armscii8_general_ci, /* lower */ + to_upper_armscii8_general_ci, /* upper */ + sort_order_armscii8_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_armscii8_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp866 +{ + 36,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp866", /* cset name */ + "cp866_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp866_general_ci, /* ctype */ + to_lower_cp866_general_ci, /* lower */ + to_upper_cp866_general_ci, /* upper */ + sort_order_cp866_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp866_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_keybcs2 +{ + 37,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "keybcs2", /* cset name */ + "keybcs2_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_keybcs2_general_ci, /* ctype */ + to_lower_keybcs2_general_ci, /* lower */ + to_upper_keybcs2_general_ci, /* upper */ + sort_order_keybcs2_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_keybcs2_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_macce +{ + 38,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "macce", /* cset name */ + "macce_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_macce_general_ci, /* ctype */ + to_lower_macce_general_ci, /* lower */ + to_upper_macce_general_ci, /* upper */ + sort_order_macce_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_macce_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_macroman +{ + 39,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "macroman", /* cset name */ + "macroman_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_macroman_general_ci, /* ctype */ + to_lower_macroman_general_ci, /* lower */ + to_upper_macroman_general_ci, /* upper */ + sort_order_macroman_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_macroman_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp852 +{ + 40,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp852", /* cset name */ + "cp852_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp852_general_ci, /* ctype */ + to_lower_cp852_general_ci, /* lower */ + to_upper_cp852_general_ci, /* upper */ + sort_order_cp852_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp852_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin7 +{ + 41,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "latin7", /* cset name */ + "latin7_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin7_general_ci, /* ctype */ + to_lower_latin7_general_ci, /* lower */ + to_upper_latin7_general_ci, /* upper */ + sort_order_latin7_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin7_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin7 +{ + 42,0,0, + MY_CS_COMPILED|MY_CS_CSSORT, + "latin7", /* cset name */ + "latin7_general_cs", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin7_general_cs, /* ctype */ + to_lower_latin7_general_cs, /* lower */ + to_upper_latin7_general_cs, /* upper */ + sort_order_latin7_general_cs, /* sort_order */ + NULL, /* uca */ + to_uni_latin7_general_cs, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_macce +{ + 43,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "macce", /* cset name */ + "macce_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_macce_bin, /* ctype */ + to_lower_macce_bin, /* lower */ + to_upper_macce_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_macce_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1250 +{ + 44,0,0, + MY_CS_COMPILED, + "cp1250", /* cset name */ + "cp1250_croatian_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1250_croatian_ci, /* ctype */ + to_lower_cp1250_croatian_ci, /* lower */ + to_upper_cp1250_croatian_ci, /* upper */ + sort_order_cp1250_croatian_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1250_croatian_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin1 +{ + 48,0,0, + MY_CS_COMPILED, + "latin1", /* cset name */ + "latin1_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1_general_ci, /* ctype */ + to_lower_latin1_general_ci, /* lower */ + to_upper_latin1_general_ci, /* upper */ + sort_order_latin1_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin1_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin1 +{ + 49,0,0, + MY_CS_COMPILED|MY_CS_CSSORT, + "latin1", /* cset name */ + "latin1_general_cs", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1_general_cs, /* ctype */ + to_lower_latin1_general_cs, /* lower */ + to_upper_latin1_general_cs, /* upper */ + sort_order_latin1_general_cs, /* sort_order */ + NULL, /* uca */ + to_uni_latin1_general_cs, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1251 +{ + 50,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp1251", /* cset name */ + "cp1251_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1251_bin, /* ctype */ + to_lower_cp1251_bin, /* lower */ + to_upper_cp1251_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp1251_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1251 +{ + 51,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp1251", /* cset name */ + "cp1251_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1251_general_ci, /* ctype */ + to_lower_cp1251_general_ci, /* lower */ + to_upper_cp1251_general_ci, /* upper */ + sort_order_cp1251_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1251_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1251 +{ + 52,0,0, + MY_CS_COMPILED|MY_CS_CSSORT, + "cp1251", /* cset name */ + "cp1251_general_cs", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1251_general_cs, /* ctype */ + to_lower_cp1251_general_cs, /* lower */ + to_upper_cp1251_general_cs, /* upper */ + sort_order_cp1251_general_cs, /* sort_order */ + NULL, /* uca */ + to_uni_cp1251_general_cs, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_macroman +{ + 53,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "macroman", /* cset name */ + "macroman_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_macroman_bin, /* ctype */ + to_lower_macroman_bin, /* lower */ + to_upper_macroman_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_macroman_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1256 +{ + 57,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp1256", /* cset name */ + "cp1256_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1256_general_ci, /* ctype */ + to_lower_cp1256_general_ci, /* lower */ + to_upper_cp1256_general_ci, /* upper */ + sort_order_cp1256_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1256_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1257 +{ + 58,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp1257", /* cset name */ + "cp1257_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1257_bin, /* ctype */ + to_lower_cp1257_bin, /* lower */ + to_upper_cp1257_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp1257_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1257 +{ + 59,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "cp1257", /* cset name */ + "cp1257_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1257_general_ci, /* ctype */ + to_lower_cp1257_general_ci, /* lower */ + to_upper_cp1257_general_ci, /* upper */ + sort_order_cp1257_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1257_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_armscii8 +{ + 64,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "armscii8", /* cset name */ + "armscii8_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_armscii8_bin, /* ctype */ + to_lower_armscii8_bin, /* lower */ + to_upper_armscii8_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_armscii8_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_ascii +{ + 65,0,0, + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PUREASCII, + "ascii", /* cset name */ + "ascii_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ascii_bin, /* ctype */ + to_lower_ascii_bin, /* lower */ + to_upper_ascii_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_ascii_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ascii_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1250 +{ + 66,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp1250", /* cset name */ + "cp1250_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1250_bin, /* ctype */ + to_lower_cp1250_bin, /* lower */ + to_upper_cp1250_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp1250_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1256 +{ + 67,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp1256", /* cset name */ + "cp1256_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1256_bin, /* ctype */ + to_lower_cp1256_bin, /* lower */ + to_upper_cp1256_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp1256_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp866 +{ + 68,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp866", /* cset name */ + "cp866_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp866_bin, /* ctype */ + to_lower_cp866_bin, /* lower */ + to_upper_cp866_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp866_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_dec8 +{ + 69,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "dec8", /* cset name */ + "dec8_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_dec8_bin, /* ctype */ + to_lower_dec8_bin, /* lower */ + to_upper_dec8_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_dec8_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_greek +{ + 70,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "greek", /* cset name */ + "greek_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_greek_bin, /* ctype */ + to_lower_greek_bin, /* lower */ + to_upper_greek_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_greek_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_hebrew +{ + 71,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "hebrew", /* cset name */ + "hebrew_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_hebrew_bin, /* ctype */ + to_lower_hebrew_bin, /* lower */ + to_upper_hebrew_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_hebrew_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_hp8 +{ + 72,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "hp8", /* cset name */ + "hp8_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_hp8_bin, /* ctype */ + to_lower_hp8_bin, /* lower */ + to_upper_hp8_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_hp8_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_keybcs2 +{ + 73,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "keybcs2", /* cset name */ + "keybcs2_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_keybcs2_bin, /* ctype */ + to_lower_keybcs2_bin, /* lower */ + to_upper_keybcs2_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_keybcs2_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_koi8r +{ + 74,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "koi8r", /* cset name */ + "koi8r_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_koi8r_bin, /* ctype */ + to_lower_koi8r_bin, /* lower */ + to_upper_koi8r_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_koi8r_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_koi8u +{ + 75,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "koi8u", /* cset name */ + "koi8u_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_koi8u_bin, /* ctype */ + to_lower_koi8u_bin, /* lower */ + to_upper_koi8u_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_koi8u_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin2 +{ + 77,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "latin2", /* cset name */ + "latin2_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin2_bin, /* ctype */ + to_lower_latin2_bin, /* lower */ + to_upper_latin2_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_latin2_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin5 +{ + 78,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "latin5", /* cset name */ + "latin5_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin5_bin, /* ctype */ + to_lower_latin5_bin, /* lower */ + to_upper_latin5_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_latin5_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin7 +{ + 79,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "latin7", /* cset name */ + "latin7_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin7_bin, /* ctype */ + to_lower_latin7_bin, /* lower */ + to_upper_latin7_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_latin7_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp850 +{ + 80,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp850", /* cset name */ + "cp850_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp850_bin, /* ctype */ + to_lower_cp850_bin, /* lower */ + to_upper_cp850_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp850_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp852 +{ + 81,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "cp852", /* cset name */ + "cp852_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp852_bin, /* ctype */ + to_lower_cp852_bin, /* lower */ + to_upper_cp852_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_cp852_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_swe7 +{ + 82,0,0, + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, + "swe7", /* cset name */ + "swe7_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_swe7_bin, /* ctype */ + to_lower_swe7_bin, /* lower */ + to_upper_swe7_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_swe7_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_geostd8 +{ + 92,0,0, + MY_CS_COMPILED|MY_CS_PRIMARY, + "geostd8", /* cset name */ + "geostd8_general_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_geostd8_general_ci, /* ctype */ + to_lower_geostd8_general_ci, /* lower */ + to_upper_geostd8_general_ci, /* upper */ + sort_order_geostd8_general_ci, /* sort_order */ + NULL, /* uca */ + to_uni_geostd8_general_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_geostd8 +{ + 93,0,0, + MY_CS_COMPILED|MY_CS_BINSORT, + "geostd8", /* cset name */ + "geostd8_bin", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_geostd8_bin, /* ctype */ + to_lower_geostd8_bin, /* lower */ + to_upper_geostd8_bin, /* upper */ + NULL, /* sort_order */ + NULL, /* uca */ + to_uni_geostd8_bin, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_bin_handler, +} +, +#endif +#ifdef HAVE_CHARSET_latin1 +{ + 94,0,0, + MY_CS_COMPILED, + "latin1", /* cset name */ + "latin1_spanish_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1_spanish_ci, /* ctype */ + to_lower_latin1_spanish_ci, /* lower */ + to_upper_latin1_spanish_ci, /* upper */ + sort_order_latin1_spanish_ci, /* sort_order */ + NULL, /* uca */ + to_uni_latin1_spanish_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +#ifdef HAVE_CHARSET_cp1250 +{ + 99,0,0, + MY_CS_COMPILED, + "cp1250", /* cset name */ + "cp1250_polish_ci", /* coll name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_cp1250_polish_ci, /* ctype */ + to_lower_cp1250_polish_ci, /* lower */ + to_upper_cp1250_polish_ci, /* upper */ + sort_order_cp1250_polish_ci, /* sort_order */ + NULL, /* uca */ + to_uni_cp1250_polish_ci, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +, +#endif +{ + 0,0,0, + MY_CS_COMPILED, + NULL, /* cset name */ + NULL, /* coll name */ + NULL, /* comment */ + NULL, /* tailoging */ + NULL, /* ctype */ + NULL, /* lower */ + NULL, /* upper */ + NULL, /* sort order */ + NULL, /* uca */ + NULL, /* to_uni */ + NULL, /* from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state map */ + NULL, /* ident map */ + 1, /* strxfrm_multiply*/ + 1, /* caseup_multiply*/ + 1, /* casedn_multiply*/ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad_char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_8bit_simple_ci_handler, +} +}; diff --git a/mysql/strings/ctype-gb18030.c b/mysql/strings/ctype-gb18030.c new file mode 100644 index 0000000..de93422 --- /dev/null +++ b/mysql/strings/ctype-gb18030.c @@ -0,0 +1,22572 @@ +/* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +/* This file is for Chinese character sets GB18030-2005, created by Bin Su + (bin.x.su@oracle.com) +*/ + +#include +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_gb18030 + +#define is_mb_1(c) ((uchar) (c) <= 0x7F) +#define is_mb_odd(c) (0x81 <= (uchar) (c) && (uchar) (c) <= 0xFE) +#define is_mb_even_2(c) ((0x40 <= (uchar) (c) && (uchar) (c) <= 0x7E) \ + || (0x80 <= (uchar) (c) && (uchar) (c) <= 0xFE)) +#define is_mb_even_4(c) (0x30 <= (uchar) (c) && (uchar) (c) <= 0x39) + +/* The following three represent the min value of every single byte +of 2/4-byte gb18030 code */ +static const uint MIN_MB_ODD_BYTE= 0x81; +static const uint MIN_MB_EVEN_BYTE_2= 0x40; +static const uint MIN_MB_EVEN_BYTE_4= 0x30; + +/* Difference between min gb18030 4-byte encoding 0x81308130 and +max possible gb18030 encoding 0xFE39FE39 */ +static const uint MAX_GB18030_DIFF= 0x18398F; + +/* The difference used in mapping 2-byte unicode to 4-byte gb18030 */ +static const uint UNI2_TO_GB4_DIFF= 7456; + +/* The offset used in unicase mapping is for those 4-byte gb18030, +which are mapped by the diff, plus the offset */ +static const uint UNICASE_4_BYTE_OFFSET= 0x80; + +/* The following two used in unicase mapping are for 2-byte gb18030, +which are mapped directly */ +static const uint MIN_2_BYTE_UNICASE= 0xA000; +static const uint MAX_2_BYTE_UNICASE= 0xDFFF; + +/* The following two used in unicase mapping are for 3-byte unicode, +and they are mapped to 4-byte gb18030 */ +static const uint MIN_3_BYTE_FROM_UNI= 0x2E600; +static const uint MAX_3_BYTE_FROM_UNI= 0x2E6FF; + +/* 3 ranges(included) that cover the Chinese characters defined by the +collation PINYIN in UNICODE CLDR24 */ +static const uint PINYIN_2_BYTE_START= 0x8140; +static const uint PINYIN_2_BYTE_END= 0xFE9F; + +static const uint PINYIN_4_BYTE_1_START= 0x8138FD38; +static const uint PINYIN_4_BYTE_1_END= 0x82359232; +static const uint PINYIN_4_1_DIFF= 11328; + +static const uint PINYIN_4_BYTE_2_START= 0x95328236; +static const uint PINYIN_4_BYTE_2_END= 0x98399836; +static const uint PINYIN_4_2_DIFF= 254536; + +/* Two base used for weight, PINYIN is for Chinese chars and COMMON +is for all other 4-byte non-Chinese chars */ +static const uint PINYIN_WEIGHT_BASE= 0xFFA00000; +static const uint COMMON_WEIGHT_BASE= 0xFF000000; + +/** + The array used for "type of characters" bit mask for each + character. The ctype[0] is reserved for EOF(-1), so we use + ctype[(char)+1]. Also refer to strings/CHARSET_INFO.txt +*/ +static const uchar ctype_gb18030[257]= +{ + 0, /* For standard library */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 +}; + +/** + The array[256] used in casedn +*/ +static const uchar to_lower_gb18030[]= +{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, + 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF +}; + +/** + The array[256] used in caseup +*/ +static const uchar to_upper_gb18030[]= +{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, + 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF +}; + +/** + The array[256] used for strings comparison +*/ +static const uchar sort_order_gb18030[]= +{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, + 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF +}; + +/** + Unicase array for 0x0000-0x00FF + + 0x0000-0x007F is for 1-byte code points, + the others which represent the diff + (diff between code and 81308130, plus 0x80), + are for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane00[]= +{ + {0x0000, 0x0000, 0x0000}, {0x0001, 0x0001, 0x0001}, + {0x0002, 0x0002, 0x0002}, {0x0003, 0x0003, 0x0003}, + {0x0004, 0x0004, 0x0004}, {0x0005, 0x0005, 0x0005}, + {0x0006, 0x0006, 0x0006}, {0x0007, 0x0007, 0x0007}, + {0x0008, 0x0008, 0x0008}, {0x0009, 0x0009, 0x0009}, + {0x000A, 0x000A, 0x000A}, {0x000B, 0x000B, 0x000B}, + {0x000C, 0x000C, 0x000C}, {0x000D, 0x000D, 0x000D}, + {0x000E, 0x000E, 0x000E}, {0x000F, 0x000F, 0x000F}, + {0x0010, 0x0010, 0x0010}, {0x0011, 0x0011, 0x0011}, + {0x0012, 0x0012, 0x0012}, {0x0013, 0x0013, 0x0013}, + {0x0014, 0x0014, 0x0014}, {0x0015, 0x0015, 0x0015}, + {0x0016, 0x0016, 0x0016}, {0x0017, 0x0017, 0x0017}, + {0x0018, 0x0018, 0x0018}, {0x0019, 0x0019, 0x0019}, + {0x001A, 0x001A, 0x001A}, {0x001B, 0x001B, 0x001B}, + {0x001C, 0x001C, 0x001C}, {0x001D, 0x001D, 0x001D}, + {0x001E, 0x001E, 0x001E}, {0x001F, 0x001F, 0x001F}, + {0x0020, 0x0020, 0x0020}, {0x0021, 0x0021, 0x0021}, + {0x0022, 0x0022, 0x0022}, {0x0023, 0x0023, 0x0023}, + {0x0024, 0x0024, 0x0024}, {0x0025, 0x0025, 0x0025}, + {0x0026, 0x0026, 0x0026}, {0x0027, 0x0027, 0x0027}, + {0x0028, 0x0028, 0x0028}, {0x0029, 0x0029, 0x0029}, + {0x002A, 0x002A, 0x002A}, {0x002B, 0x002B, 0x002B}, + {0x002C, 0x002C, 0x002C}, {0x002D, 0x002D, 0x002D}, + {0x002E, 0x002E, 0x002E}, {0x002F, 0x002F, 0x002F}, + {0x0030, 0x0030, 0x0030}, {0x0031, 0x0031, 0x0031}, + {0x0032, 0x0032, 0x0032}, {0x0033, 0x0033, 0x0033}, + {0x0034, 0x0034, 0x0034}, {0x0035, 0x0035, 0x0035}, + {0x0036, 0x0036, 0x0036}, {0x0037, 0x0037, 0x0037}, + {0x0038, 0x0038, 0x0038}, {0x0039, 0x0039, 0x0039}, + {0x003A, 0x003A, 0x003A}, {0x003B, 0x003B, 0x003B}, + {0x003C, 0x003C, 0x003C}, {0x003D, 0x003D, 0x003D}, + {0x003E, 0x003E, 0x003E}, {0x003F, 0x003F, 0x003F}, + {0x0040, 0x0040, 0x0040}, {0x0041, 0x0061, 0x0041}, + {0x0042, 0x0062, 0x0042}, {0x0043, 0x0063, 0x0043}, + {0x0044, 0x0064, 0x0044}, {0x0045, 0x0065, 0x0045}, + {0x0046, 0x0066, 0x0046}, {0x0047, 0x0067, 0x0047}, + {0x0048, 0x0068, 0x0048}, {0x0049, 0x0069, 0x0049}, + {0x004A, 0x006A, 0x004A}, {0x004B, 0x006B, 0x004B}, + {0x004C, 0x006C, 0x004C}, {0x004D, 0x006D, 0x004D}, + {0x004E, 0x006E, 0x004E}, {0x004F, 0x006F, 0x004F}, + {0x0050, 0x0070, 0x0050}, {0x0051, 0x0071, 0x0051}, + {0x0052, 0x0072, 0x0052}, {0x0053, 0x0073, 0x0053}, + {0x0054, 0x0074, 0x0054}, {0x0055, 0x0075, 0x0055}, + {0x0056, 0x0076, 0x0056}, {0x0057, 0x0077, 0x0057}, + {0x0058, 0x0078, 0x0058}, {0x0059, 0x0079, 0x0059}, + {0x005A, 0x007A, 0x005A}, {0x005B, 0x005B, 0x005B}, + {0x005C, 0x005C, 0x005C}, {0x005D, 0x005D, 0x005D}, + {0x005E, 0x005E, 0x005E}, {0x005F, 0x005F, 0x005F}, + {0x0060, 0x0060, 0x0060}, {0x0041, 0x0061, 0x0041}, + {0x0042, 0x0062, 0x0042}, {0x0043, 0x0063, 0x0043}, + {0x0044, 0x0064, 0x0044}, {0x0045, 0x0065, 0x0045}, + {0x0046, 0x0066, 0x0046}, {0x0047, 0x0067, 0x0047}, + {0x0048, 0x0068, 0x0048}, {0x0049, 0x0069, 0x0049}, + {0x004A, 0x006A, 0x004A}, {0x004B, 0x006B, 0x004B}, + {0x004C, 0x006C, 0x004C}, {0x004D, 0x006D, 0x004D}, + {0x004E, 0x006E, 0x004E}, {0x004F, 0x006F, 0x004F}, + {0x0050, 0x0070, 0x0050}, {0x0051, 0x0071, 0x0051}, + {0x0052, 0x0072, 0x0052}, {0x0053, 0x0073, 0x0053}, + {0x0054, 0x0074, 0x0054}, {0x0055, 0x0075, 0x0055}, + {0x0056, 0x0076, 0x0056}, {0x0057, 0x0077, 0x0057}, + {0x0058, 0x0078, 0x0058}, {0x0059, 0x0079, 0x0059}, + {0x005A, 0x007A, 0x005A}, {0x007B, 0x007B, 0x007B}, + {0x007C, 0x007C, 0x007C}, {0x007D, 0x007D, 0x007D}, + {0x007E, 0x007E, 0x007E}, {0x007F, 0x007F, 0x007F}, + {0x0080, 0x0080, 0x0080}, {0x0081, 0x0081, 0x0081}, + {0x0082, 0x0082, 0x0082}, {0x0083, 0x0083, 0x0083}, + {0x0084, 0x0084, 0x0084}, {0x0085, 0x0085, 0x0085}, + {0x0086, 0x0086, 0x0086}, {0x0087, 0x0087, 0x0087}, + {0x0088, 0x0088, 0x0088}, {0x0089, 0x0089, 0x0089}, + {0x008A, 0x008A, 0x008A}, {0x008B, 0x008B, 0x008B}, + {0x008C, 0x008C, 0x008C}, {0x008D, 0x008D, 0x008D}, + {0x008E, 0x008E, 0x008E}, {0x008F, 0x008F, 0x008F}, + {0x0090, 0x0090, 0x0090}, {0x0091, 0x0091, 0x0091}, + {0x0092, 0x0092, 0x0092}, {0x0093, 0x0093, 0x0093}, + {0x0094, 0x0094, 0x0094}, {0x0095, 0x0095, 0x0095}, + {0x0096, 0x0096, 0x0096}, {0x0097, 0x0097, 0x0097}, + {0x0098, 0x0098, 0x0098}, {0x0099, 0x0099, 0x0099}, + {0x009A, 0x009A, 0x009A}, {0x009B, 0x009B, 0x009B}, + {0x009C, 0x009C, 0x009C}, {0x009D, 0x009D, 0x009D}, + {0x009E, 0x009E, 0x009E}, {0x009F, 0x009F, 0x009F}, + {0x00A0, 0x00A0, 0x00A0}, {0x00A1, 0x00A1, 0x00A1}, + {0x00A2, 0x00A2, 0x00A2}, {0x00A3, 0x00A3, 0x00A3}, + {0x00A4, 0x00A4, 0x00A4}, {0x00A5, 0x00A5, 0x00A5}, + {0x00A6, 0x00A6, 0x00A6}, {0x00A7, 0x00A7, 0x00A7}, + {0x00A8, 0x00A8, 0x00A8}, {0x00A9, 0x00A9, 0x00A9}, + {0x00AA, 0x00AA, 0x00AA}, {0x00AB, 0x00AB, 0x00AB}, + {0x00AC, 0x00AC, 0x00AC}, {0x00AD, 0x00AD, 0x00AD}, + {0x00AE, 0x00AE, 0x00AE}, {0x00AF, 0x00AF, 0x00AF}, + {0x00B0, 0xA6CC, 0x00B5}, {0x00B1, 0x00B1, 0x00B1}, + {0x00B2, 0x00B2, 0x00B2}, {0x00B3, 0x00B3, 0x00B3}, + {0x00B4, 0x00B4, 0x00B4}, {0x00B5, 0x00B5, 0x00B5}, + {0x00B6, 0x00B6, 0x00B6}, {0x00B7, 0x00B7, 0x00B7}, + {0x00B8, 0x00B8, 0x00B8}, {0x00B9, 0x00B9, 0x00B9}, + {0x00BA, 0xA8A4, 0x00C0}, {0x00BB, 0xA8A2, 0x00C1}, + {0x00BC, 0x00D9, 0x00C2}, {0x00BD, 0x00DA, 0x00C3}, + {0x00BE, 0x00DB, 0x00C4}, {0x00BF, 0x00DC, 0x00C5}, + {0x00C0, 0x00DD, 0x00C6}, {0x00C1, 0x00DE, 0x00C7}, + {0x00C2, 0xA8A8, 0x00C8}, {0x00C3, 0xA8A6, 0x00C9}, + {0x00C4, 0xA8BA, 0x00CA}, {0x00C5, 0x00DF, 0x00CB}, + {0x00C6, 0xA8AC, 0x00CC}, {0x00C7, 0xA8AA, 0x00CD}, + {0x00C8, 0x00E0, 0x00CE}, {0x00C9, 0x00E1, 0x00CF}, + {0x00CA, 0x00E2, 0x00D0}, {0x00CB, 0x00E3, 0x00D1}, + {0x00CC, 0xA8B0, 0x00D2}, {0x00CD, 0xA8AE, 0x00D3}, + {0x00CE, 0x00E4, 0x00D4}, {0x00CF, 0x00E5, 0x00D5}, + {0x00D0, 0x00E6, 0x00D6}, {0x00D1, 0x00E7, 0x00D8}, + {0x00D2, 0xA8B4, 0x00D9}, {0x00D3, 0xA8B2, 0x00DA}, + {0x00D4, 0x00E8, 0x00DB}, {0x00D5, 0xA8B9, 0x00DC}, + {0x00D6, 0x00E9, 0x00DD}, {0x00D7, 0x00EA, 0x00DE}, + {0x00D8, 0x00D8, 0x00DF}, {0x00BC, 0x00D9, 0x00C2}, + {0x00BD, 0x00DA, 0x00C3}, {0x00BE, 0x00DB, 0x00C4}, + {0x00BF, 0x00DC, 0x00C5}, {0x00C0, 0x00DD, 0x00C6}, + {0x00C1, 0x00DE, 0x00C7}, {0x00C5, 0x00DF, 0x00CB}, + {0x00C8, 0x00E0, 0x00CE}, {0x00C9, 0x00E1, 0x00CF}, + {0x00CA, 0x00E2, 0x00D0}, {0x00CB, 0x00E3, 0x00D1}, + {0x00CE, 0x00E4, 0x00D4}, {0x00CF, 0x00E5, 0x00D5}, + {0x00D0, 0x00E6, 0x00D6}, {0x00D1, 0x00E7, 0x00D8}, + {0x00D4, 0x00E8, 0x00DB}, {0x00D6, 0x00E9, 0x00DD}, + {0x00D7, 0x00EA, 0x00DE}, {0x015C, 0x00EB, 0x0178}, + {0x00EC, 0xA8A1, 0x0100}, {0x00ED, 0x00EE, 0x0102}, + {0x00ED, 0x00EE, 0x0102}, {0x00EF, 0x00F0, 0x0104}, + {0x00EF, 0x00F0, 0x0104}, {0x00F1, 0x00F2, 0x0106}, + {0x00F1, 0x00F2, 0x0106}, {0x00F3, 0x00F4, 0x0108}, + {0x00F3, 0x00F4, 0x0108}, {0x00F5, 0x00F6, 0x010A}, + {0x00F5, 0x00F6, 0x010A}, {0x00F7, 0x00F8, 0x010C}, + {0x00F7, 0x00F8, 0x010C}, {0x00F9, 0x00FA, 0x010E}, + {0x00F9, 0x00FA, 0x010E}, {0x00FB, 0x00FC, 0x0110}, + {0x00FB, 0x00FC, 0x0110}, {0x00FD, 0xA8A5, 0x0112}, + {0x00FE, 0x00FF, 0x0114}, {0x00FE, 0x00FF, 0x0114} +}; + +/** + Unicase array for 0x0100-0x01FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane01[]= +{ + {0x0100, 0x0101, 0x0116}, {0x0100, 0x0101, 0x0116}, + {0x0102, 0x0103, 0x0118}, {0x0102, 0x0103, 0x0118}, + {0x0104, 0xA8A7, 0x011A}, {0x0105, 0x0106, 0x011C}, + {0x0105, 0x0106, 0x011C}, {0x0107, 0x0108, 0x011E}, + {0x0107, 0x0108, 0x011E}, {0x0109, 0x010A, 0x0120}, + {0x0109, 0x010A, 0x0120}, {0x010B, 0x010C, 0x0122}, + {0x010B, 0x010C, 0x0122}, {0x010D, 0x010E, 0x0124}, + {0x010D, 0x010E, 0x0124}, {0x010F, 0x0110, 0x0126}, + {0x010F, 0x0110, 0x0126}, {0x0111, 0x0112, 0x0128}, + {0x0111, 0x0112, 0x0128}, {0x0113, 0xA8A9, 0x012A}, + {0x0114, 0x0115, 0x012C}, {0x0114, 0x0115, 0x012C}, + {0x0116, 0x0117, 0x012E}, {0x0116, 0x0117, 0x012E}, + {0x0118, 0x0069, 0x0130}, {0x0049, 0x0119, 0x0049}, + {0x011A, 0x011B, 0x0132}, {0x011A, 0x011B, 0x0132}, + {0x011C, 0x011D, 0x0134}, {0x011C, 0x011D, 0x0134}, + {0x011E, 0x011F, 0x0136}, {0x011E, 0x011F, 0x0136}, + {0x0120, 0x0120, 0x0138}, {0x0121, 0x0122, 0x0139}, + {0x0121, 0x0122, 0x0139}, {0x0123, 0x0124, 0x013B}, + {0x0123, 0x0124, 0x013B}, {0x0125, 0x0126, 0x013D}, + {0x0125, 0x0126, 0x013D}, {0x0127, 0x0128, 0x013F}, + {0x0127, 0x0128, 0x013F}, {0x0129, 0x012A, 0x0141}, + {0x0129, 0x012A, 0x0141}, {0x012B, 0xA8BD, 0x0143}, + {0x012C, 0x012D, 0x0145}, {0x012C, 0x012D, 0x0145}, + {0x012E, 0xA8BE, 0x0147}, {0x012F, 0x012F, 0x0149}, + {0x0130, 0x0131, 0x014A}, {0x0130, 0x0131, 0x014A}, + {0x0132, 0xA8AD, 0x014C}, {0x0133, 0x0134, 0x014E}, + {0x0133, 0x0134, 0x014E}, {0x0135, 0x0136, 0x0150}, + {0x0135, 0x0136, 0x0150}, {0x0137, 0x0138, 0x0152}, + {0x0137, 0x0138, 0x0152}, {0x0139, 0x013A, 0x0154}, + {0x0139, 0x013A, 0x0154}, {0x013B, 0x013C, 0x0156}, + {0x013B, 0x013C, 0x0156}, {0x013D, 0x013E, 0x0158}, + {0x013D, 0x013E, 0x0158}, {0x013F, 0x0140, 0x015A}, + {0x013F, 0x0140, 0x015A}, {0x0141, 0x0142, 0x015C}, + {0x0141, 0x0142, 0x015C}, {0x0143, 0x0144, 0x015E}, + {0x0143, 0x0144, 0x015E}, {0x0145, 0x0146, 0x0160}, + {0x0145, 0x0146, 0x0160}, {0x0147, 0x0148, 0x0162}, + {0x0147, 0x0148, 0x0162}, {0x0149, 0x014A, 0x0164}, + {0x0149, 0x014A, 0x0164}, {0x014B, 0x014C, 0x0166}, + {0x014B, 0x014C, 0x0166}, {0x014D, 0x014E, 0x0168}, + {0x014D, 0x014E, 0x0168}, {0x014F, 0xA8B1, 0x016A}, + {0x0150, 0x0151, 0x016C}, {0x0150, 0x0151, 0x016C}, + {0x0152, 0x0153, 0x016E}, {0x0152, 0x0153, 0x016E}, + {0x0154, 0x0155, 0x0170}, {0x0154, 0x0155, 0x0170}, + {0x0156, 0x0157, 0x0172}, {0x0156, 0x0157, 0x0172}, + {0x0158, 0x0159, 0x0174}, {0x0158, 0x0159, 0x0174}, + {0x015A, 0x015B, 0x0176}, {0x015A, 0x015B, 0x0176}, + {0x015C, 0x00EB, 0x0178}, {0x015D, 0x015E, 0x0179}, + {0x015D, 0x015E, 0x0179}, {0x015F, 0x0160, 0x017B}, + {0x015F, 0x0160, 0x017B}, {0x0161, 0x0162, 0x017D}, + {0x0161, 0x0162, 0x017D}, {0x0053, 0x0163, 0x017F}, + {0x021E, 0x0164, 0x0243}, {0x0165, 0x022D, 0x0181}, + {0x0166, 0x0167, 0x0182}, {0x0166, 0x0167, 0x0182}, + {0x0168, 0x0169, 0x0184}, {0x0168, 0x0169, 0x0184}, + {0x016A, 0x022E, 0x0186}, {0x016B, 0x016C, 0x0187}, + {0x016B, 0x016C, 0x0187}, {0x016D, 0x0230, 0x0189}, + {0x016E, 0x0231, 0x018A}, {0x016F, 0x0170, 0x018B}, + {0x016F, 0x0170, 0x018B}, {0x0171, 0x0171, 0x018D}, + {0x0172, 0x01B9, 0x018E}, {0x0173, 0x0233, 0x018F}, + {0x0174, 0x0235, 0x0190}, {0x0175, 0x0176, 0x0191}, + {0x0175, 0x0176, 0x0191}, {0x0177, 0x023A, 0x0193}, + {0x0178, 0x023C, 0x0194}, {0x01D2, 0x0179, 0x01F6}, + {0x017A, 0x0242, 0x0196}, {0x017B, 0x0241, 0x0197}, + {0x017C, 0x017D, 0x0198}, {0x017C, 0x017D, 0x0198}, + {0x0218, 0x017E, 0x023D}, {0x017F, 0x017F, 0x019B}, + {0x0180, 0x0248, 0x019C}, {0x0181, 0x024B, 0x019D}, + {0x01FB, 0x0182, 0x0220}, {0x0183, 0x024E, 0x019F}, + {0x0184, 0x0185, 0x01A0}, {0x0184, 0x0185, 0x01A0}, + {0x0186, 0x0187, 0x01A2}, {0x0186, 0x0187, 0x01A2}, + {0x0188, 0x0189, 0x01A4}, {0x0188, 0x0189, 0x01A4}, + {0x018A, 0x0259, 0x01A6}, {0x018B, 0x018C, 0x01A7}, + {0x018B, 0x018C, 0x01A7}, {0x018D, 0x025C, 0x01A9}, + {0x018E, 0x018E, 0x01AA}, {0x018F, 0x018F, 0x01AB}, + {0x0190, 0x0191, 0x01AC}, {0x0190, 0x0191, 0x01AC}, + {0x0192, 0x0261, 0x01AE}, {0x0193, 0x0194, 0x01AF}, + {0x0193, 0x0194, 0x01AF}, {0x0195, 0x0263, 0x01B1}, + {0x0196, 0x0264, 0x01B2}, {0x0197, 0x0198, 0x01B3}, + {0x0197, 0x0198, 0x01B3}, {0x0199, 0x019A, 0x01B5}, + {0x0199, 0x019A, 0x01B5}, {0x019B, 0x026B, 0x01B7}, + {0x019C, 0x019D, 0x01B8}, {0x019C, 0x019D, 0x01B8}, + {0x019E, 0x019E, 0x01BA}, {0x019F, 0x019F, 0x01BB}, + {0x01A0, 0x01A1, 0x01BC}, {0x01A0, 0x01A1, 0x01BC}, + {0x01A2, 0x01A2, 0x01BE}, {0x01D3, 0x01A3, 0x01F7}, + {0x01A4, 0x01A4, 0x01C0}, {0x01A5, 0x01A5, 0x01C1}, + {0x01A6, 0x01A6, 0x01C2}, {0x01A7, 0x01A7, 0x01C3}, + {0x01A8, 0x01AA, 0x01C4}, {0x01A9, 0x01AA, 0x01C5}, + {0x01A8, 0x01AA, 0x01C4}, {0x01AB, 0x01AD, 0x01C7}, + {0x01AC, 0x01AD, 0x01C8}, {0x01AB, 0x01AD, 0x01C7}, + {0x01AE, 0x01B0, 0x01CA}, {0x01AF, 0x01B0, 0x01CB}, + {0x01AE, 0x01B0, 0x01CA}, {0x01B1, 0xA8A3, 0x01CD}, + {0x01B2, 0xA8AB, 0x01CF}, {0x01B3, 0xA8AF, 0x01D1}, + {0x01B4, 0xA8B3, 0x01D3}, {0x01B5, 0xA8B5, 0x01D5}, + {0x01B6, 0xA8B6, 0x01D7}, {0x01B7, 0xA8B7, 0x01D9}, + {0x01B8, 0xA8B8, 0x01DB}, {0x0172, 0x01B9, 0x018E}, + {0x01BA, 0x01BB, 0x01DE}, {0x01BA, 0x01BB, 0x01DE}, + {0x01BC, 0x01BD, 0x01E0}, {0x01BC, 0x01BD, 0x01E0}, + {0x01BE, 0x01BF, 0x01E2}, {0x01BE, 0x01BF, 0x01E2}, + {0x01C0, 0x01C1, 0x01E4}, {0x01C0, 0x01C1, 0x01E4}, + {0x01C2, 0x01C3, 0x01E6}, {0x01C2, 0x01C3, 0x01E6}, + {0x01C4, 0x01C5, 0x01E8}, {0x01C4, 0x01C5, 0x01E8}, + {0x01C6, 0x01C7, 0x01EA}, {0x01C6, 0x01C7, 0x01EA}, + {0x01C8, 0x01C9, 0x01EC}, {0x01C8, 0x01C9, 0x01EC}, + {0x01CA, 0x01CB, 0x01EE}, {0x01CA, 0x01CB, 0x01EE}, + {0x01CC, 0x01CC, 0x01F0}, {0x01CD, 0x01CF, 0x01F1}, + {0x01CE, 0x01CF, 0x01F2}, {0x01CD, 0x01CF, 0x01F1}, + {0x01D0, 0x01D1, 0x01F4}, {0x01D0, 0x01D1, 0x01F4}, + {0x01D2, 0x0179, 0x01F6}, {0x01D3, 0x01A3, 0x01F7}, + {0x01D4, 0xA8BF, 0x01F8}, {0x01D5, 0x01D6, 0x01FA}, + {0x01D5, 0x01D6, 0x01FA}, {0x01D7, 0x01D8, 0x01FC}, + {0x01D7, 0x01D8, 0x01FC}, {0x01D9, 0x01DA, 0x01FE}, + {0x01D9, 0x01DA, 0x01FE}, {0x01DB, 0x01DC, 0x0200}, + {0x01DB, 0x01DC, 0x0200}, {0x01DD, 0x01DE, 0x0202}, + {0x01DD, 0x01DE, 0x0202}, {0x01DF, 0x01E0, 0x0204}, + {0x01DF, 0x01E0, 0x0204}, {0x01E1, 0x01E2, 0x0206}, + {0x01E1, 0x01E2, 0x0206}, {0x01E3, 0x01E4, 0x0208}, + {0x01E3, 0x01E4, 0x0208}, {0x01E5, 0x01E6, 0x020A}, + {0x01E5, 0x01E6, 0x020A}, {0x01E7, 0x01E8, 0x020C}, + {0x01E7, 0x01E8, 0x020C}, {0x01E9, 0x01EA, 0x020E}, + {0x01E9, 0x01EA, 0x020E}, {0x01EB, 0x01EC, 0x0210}, + {0x01EB, 0x01EC, 0x0210}, {0x01ED, 0x01EE, 0x0212}, + {0x01ED, 0x01EE, 0x0212}, {0x01EF, 0x01F0, 0x0214}, + {0x01EF, 0x01F0, 0x0214}, {0x01F1, 0x01F2, 0x0216}, + {0x01F1, 0x01F2, 0x0216}, {0x01F3, 0x01F4, 0x0218}, + {0x01F3, 0x01F4, 0x0218}, {0x01F5, 0x01F6, 0x021A}, + {0x01F5, 0x01F6, 0x021A}, {0x01F7, 0x01F8, 0x021C}, + {0x01F7, 0x01F8, 0x021C}, {0x01F9, 0x01FA, 0x021E}, + {0x01F9, 0x01FA, 0x021E}, {0x01FB, 0x0182, 0x0220}, + {0x01FC, 0x01FC, 0x0221}, {0x01FD, 0x01FE, 0x0222}, + {0x01FD, 0x01FE, 0x0222}, {0x01FF, 0x0200, 0x0224} +}; + +/** + Unicase array for 0x0200-0x02FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane02[]= +{ + {0x01FF, 0x0200, 0x0224}, {0x0201, 0x0202, 0x0226}, + {0x0201, 0x0202, 0x0226}, {0x0203, 0x0204, 0x0228}, + {0x0203, 0x0204, 0x0228}, {0x0205, 0x0206, 0x022A}, + {0x0205, 0x0206, 0x022A}, {0x0207, 0x0208, 0x022C}, + {0x0207, 0x0208, 0x022C}, {0x0209, 0x020A, 0x022E}, + {0x0209, 0x020A, 0x022E}, {0x020B, 0x020C, 0x0230}, + {0x020B, 0x020C, 0x0230}, {0x020D, 0x020E, 0x0232}, + {0x020D, 0x020E, 0x0232}, {0x020F, 0x020F, 0x0234}, + {0x0210, 0x0210, 0x0235}, {0x0211, 0x0211, 0x0236}, + {0x0212, 0x0212, 0x0237}, {0x0213, 0x0213, 0x0238}, + {0x0214, 0x0214, 0x0239}, {0x0215, 0x2AA5, 0x023A}, + {0x0216, 0x0217, 0x023B}, {0x0216, 0x0217, 0x023B}, + {0x0218, 0x017E, 0x023D}, {0x0219, 0x2AA6, 0x023E}, + {0x2ABE, 0x021A, 0x2C7E}, {0x2ABF, 0x021B, 0x2C7F}, + {0x021C, 0x021D, 0x0241}, {0x021C, 0x021D, 0x0241}, + {0x021E, 0x0164, 0x0243}, {0x021F, 0x0262, 0x0244}, + {0x0220, 0x0265, 0x0245}, {0x0221, 0x0222, 0x0246}, + {0x0221, 0x0222, 0x0246}, {0x0223, 0x0224, 0x0248}, + {0x0223, 0x0224, 0x0248}, {0x0225, 0x0226, 0x024A}, + {0x0225, 0x0226, 0x024A}, {0x0227, 0x0228, 0x024C}, + {0x0227, 0x0228, 0x024C}, {0x0229, 0x022A, 0x024E}, + {0x0229, 0x022A, 0x024E}, {0x2AAF, 0x022B, 0x2C6F}, + {0x2AB0, 0x022C, 0x2C70}, {0x0165, 0x022D, 0x0181}, + {0x016A, 0x022E, 0x0186}, {0x022F, 0x022F, 0x0255}, + {0x016D, 0x0230, 0x0189}, {0x016E, 0x0231, 0x018A}, + {0x0232, 0x0232, 0x0258}, {0x0173, 0x0233, 0x018F}, + {0x0234, 0x0234, 0x025A}, {0x0174, 0x0235, 0x0190}, + {0x0236, 0x0236, 0x025C}, {0x0237, 0x0237, 0x025D}, + {0x0238, 0x0238, 0x025E}, {0x0239, 0x0239, 0x025F}, + {0x0177, 0x023A, 0x0193}, {0x023B, 0x023B, 0x0262}, + {0x0178, 0x023C, 0x0194}, {0x023D, 0x023D, 0x0264}, + {0x023E, 0x023E, 0x0265}, {0x023F, 0x023F, 0x0266}, + {0x0240, 0x0240, 0x0267}, {0x017B, 0x0241, 0x0197}, + {0x017A, 0x0242, 0x0196}, {0x0243, 0x0243, 0x026A}, + {0x2AA2, 0x0244, 0x2C62}, {0x0245, 0x0245, 0x026C}, + {0x0246, 0x0246, 0x026D}, {0x0247, 0x0247, 0x026E}, + {0x0180, 0x0248, 0x019C}, {0x0249, 0x0249, 0x0270}, + {0x2AAE, 0x024A, 0x2C6E}, {0x0181, 0x024B, 0x019D}, + {0x024C, 0x024C, 0x0273}, {0x024D, 0x024D, 0x0274}, + {0x0183, 0x024E, 0x019F}, {0x024F, 0x024F, 0x0276}, + {0x0250, 0x0250, 0x0277}, {0x0251, 0x0251, 0x0278}, + {0x0252, 0x0252, 0x0279}, {0x0253, 0x0253, 0x027A}, + {0x0254, 0x0254, 0x027B}, {0x0255, 0x0255, 0x027C}, + {0x2AA4, 0x0256, 0x2C64}, {0x0257, 0x0257, 0x027E}, + {0x0258, 0x0258, 0x027F}, {0x018A, 0x0259, 0x01A6}, + {0x025A, 0x025A, 0x0281}, {0x025B, 0x025B, 0x0282}, + {0x018D, 0x025C, 0x01A9}, {0x025D, 0x025D, 0x0284}, + {0x025E, 0x025E, 0x0285}, {0x025F, 0x025F, 0x0286}, + {0x0260, 0x0260, 0x0287}, {0x0192, 0x0261, 0x01AE}, + {0x021F, 0x0262, 0x0244}, {0x0195, 0x0263, 0x01B1}, + {0x0196, 0x0264, 0x01B2}, {0x0220, 0x0265, 0x0245}, + {0x0266, 0x0266, 0x028D}, {0x0267, 0x0267, 0x028E}, + {0x0268, 0x0268, 0x028F}, {0x0269, 0x0269, 0x0290}, + {0x026A, 0x026A, 0x0291}, {0x019B, 0x026B, 0x01B7}, + {0x026C, 0x026C, 0x0293}, {0x026D, 0x026D, 0x0294}, + {0x026E, 0x026E, 0x0295}, {0x026F, 0x026F, 0x0296}, + {0x0270, 0x0270, 0x0297}, {0x0271, 0x0271, 0x0298}, + {0x0272, 0x0272, 0x0299}, {0x0273, 0x0273, 0x029A}, + {0x0274, 0x0274, 0x029B}, {0x0275, 0x0275, 0x029C}, + {0x0276, 0x0276, 0x029D}, {0x0277, 0x0277, 0x029E}, + {0x0278, 0x0278, 0x029F}, {0x0279, 0x0279, 0x02A0}, + {0x027A, 0x027A, 0x02A1}, {0x027B, 0x027B, 0x02A2}, + {0x027C, 0x027C, 0x02A3}, {0x027D, 0x027D, 0x02A4}, + {0x027E, 0x027E, 0x02A5}, {0x027F, 0x027F, 0x02A6}, + {0x0280, 0x0280, 0x02A7}, {0x0281, 0x0281, 0x02A8}, + {0x0282, 0x0282, 0x02A9}, {0x0283, 0x0283, 0x02AA}, + {0x0284, 0x0284, 0x02AB}, {0x0285, 0x0285, 0x02AC}, + {0x0286, 0x0286, 0x02AD}, {0x0287, 0x0287, 0x02AE}, + {0x0288, 0x0288, 0x02AF}, {0x0289, 0x0289, 0x02B0}, + {0x028A, 0x028A, 0x02B1}, {0x028B, 0x028B, 0x02B2}, + {0x028C, 0x028C, 0x02B3}, {0x028D, 0x028D, 0x02B4}, + {0x028E, 0x028E, 0x02B5}, {0x028F, 0x028F, 0x02B6}, + {0x0290, 0x0290, 0x02B7}, {0x0291, 0x0291, 0x02B8}, + {0x0292, 0x0292, 0x02B9}, {0x0293, 0x0293, 0x02BA}, + {0x0294, 0x0294, 0x02BB}, {0x0295, 0x0295, 0x02BC}, + {0x0296, 0x0296, 0x02BD}, {0x0297, 0x0297, 0x02BE}, + {0x0298, 0x0298, 0x02BF}, {0x0299, 0x0299, 0x02C0}, + {0x029A, 0x029A, 0x02C1}, {0x029B, 0x029B, 0x02C2}, + {0x029C, 0x029C, 0x02C3}, {0x029D, 0x029D, 0x02C4}, + {0x029E, 0x029E, 0x02C5}, {0x029F, 0x029F, 0x02C6}, + {0x02A0, 0x02A0, 0x02C8}, {0x02A1, 0x02A1, 0x02CC}, + {0x02A2, 0x02A2, 0x02CD}, {0x02A3, 0x02A3, 0x02CE}, + {0x02A4, 0x02A4, 0x02CF}, {0x02A5, 0x02A5, 0x02D0}, + {0x02A6, 0x02A6, 0x02D1}, {0x02A7, 0x02A7, 0x02D2}, + {0x02A8, 0x02A8, 0x02D3}, {0x02A9, 0x02A9, 0x02D4}, + {0x02AA, 0x02AA, 0x02D5}, {0x02AB, 0x02AB, 0x02D6}, + {0x02AC, 0x02AC, 0x02D7}, {0x02AD, 0x02AD, 0x02D8}, + {0x02AE, 0x02AE, 0x02DA}, {0x02AF, 0x02AF, 0x02DB}, + {0x02B0, 0x02B0, 0x02DC}, {0x02B1, 0x02B1, 0x02DD}, + {0x02B2, 0x02B2, 0x02DE}, {0x02B3, 0x02B3, 0x02DF}, + {0x02B4, 0x02B4, 0x02E0}, {0x02B5, 0x02B5, 0x02E1}, + {0x02B6, 0x02B6, 0x02E2}, {0x02B7, 0x02B7, 0x02E3}, + {0x02B8, 0x02B8, 0x02E4}, {0x02B9, 0x02B9, 0x02E5}, + {0x02BA, 0x02BA, 0x02E6}, {0x02BB, 0x02BB, 0x02E7}, + {0x02BC, 0x02BC, 0x02E8}, {0x02BD, 0x02BD, 0x02E9}, + {0x02BE, 0x02BE, 0x02EA}, {0x02BF, 0x02BF, 0x02EB}, + {0x02C0, 0x02C0, 0x02EC}, {0x02C1, 0x02C1, 0x02ED}, + {0x02C2, 0x02C2, 0x02EE}, {0x02C3, 0x02C3, 0x02EF}, + {0x02C4, 0x02C4, 0x02F0}, {0x02C5, 0x02C5, 0x02F1}, + {0x02C6, 0x02C6, 0x02F2}, {0x02C7, 0x02C7, 0x02F3}, + {0x02C8, 0x02C8, 0x02F4}, {0x02C9, 0x02C9, 0x02F5}, + {0x02CA, 0x02CA, 0x02F6}, {0x02CB, 0x02CB, 0x02F7}, + {0x02CC, 0x02CC, 0x02F8}, {0x02CD, 0x02CD, 0x02F9}, + {0x02CE, 0x02CE, 0x02FA}, {0x02CF, 0x02CF, 0x02FB}, + {0x02D0, 0x02D0, 0x02FC}, {0x02D1, 0x02D1, 0x02FD}, + {0x02D2, 0x02D2, 0x02FE}, {0x02D3, 0x02D3, 0x02FF}, + {0x02D4, 0x02D4, 0x0300}, {0x02D5, 0x02D5, 0x0301}, + {0x02D6, 0x02D6, 0x0302}, {0x02D7, 0x02D7, 0x0303}, + {0x02D8, 0x02D8, 0x0304}, {0x02D9, 0x02D9, 0x0305}, + {0x02DA, 0x02DA, 0x0306}, {0x02DB, 0x02DB, 0x0307}, + {0x02DC, 0x02DC, 0x0308}, {0x02DD, 0x02DD, 0x0309}, + {0x02DE, 0x02DE, 0x030A}, {0x02DF, 0x02DF, 0x030B}, + {0x02E0, 0x02E0, 0x030C}, {0x02E1, 0x02E1, 0x030D}, + {0x02E2, 0x02E2, 0x030E}, {0x02E3, 0x02E3, 0x030F}, + {0x02E4, 0x02E4, 0x0310}, {0x02E5, 0x02E5, 0x0311}, + {0x02E6, 0x02E6, 0x0312}, {0x02E7, 0x02E7, 0x0313}, + {0x02E8, 0x02E8, 0x0314}, {0x02E9, 0x02E9, 0x0315}, + {0x02EA, 0x02EA, 0x0316}, {0x02EB, 0x02EB, 0x0317}, + {0x02EC, 0x02EC, 0x0318}, {0x02ED, 0x02ED, 0x0319}, + {0x02EE, 0x02EE, 0x031A}, {0x02EF, 0x02EF, 0x031B}, + {0x02F0, 0x02F0, 0x031C}, {0x02F1, 0x02F1, 0x031D}, + {0x02F2, 0x02F2, 0x031E}, {0x02F3, 0x02F3, 0x031F}, + {0x02F4, 0x02F4, 0x0320}, {0x02F5, 0x02F5, 0x0321}, + {0x02F6, 0x02F6, 0x0322}, {0x02F7, 0x02F7, 0x0323}, + {0x02F8, 0x02F8, 0x0324}, {0x02F9, 0x02F9, 0x0325}, + {0x02FA, 0x02FA, 0x0326}, {0x02FB, 0x02FB, 0x0327}, + {0x02FC, 0x02FC, 0x0328}, {0x02FD, 0x02FD, 0x0329}, + {0x02FE, 0x02FE, 0x032A}, {0x02FF, 0x02FF, 0x032B} +}; + +/** + Unicase array for 0x0300-0x03FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane03[]= +{ + {0x0300, 0x0300, 0x032C}, {0x0301, 0x0301, 0x032D}, + {0x0302, 0x0302, 0x032E}, {0x0303, 0x0303, 0x032F}, + {0x0304, 0x0304, 0x0330}, {0x0305, 0x0305, 0x0331}, + {0x0306, 0x0306, 0x0332}, {0x0307, 0x0307, 0x0333}, + {0x0308, 0x0308, 0x0334}, {0x0309, 0x0309, 0x0335}, + {0x030A, 0x030A, 0x0336}, {0x030B, 0x030B, 0x0337}, + {0x030C, 0x030C, 0x0338}, {0x030D, 0x030D, 0x0339}, + {0x030E, 0x030E, 0x033A}, {0x030F, 0x030F, 0x033B}, + {0x0310, 0x0310, 0x033C}, {0x0311, 0x0311, 0x033D}, + {0x0312, 0x0312, 0x033E}, {0x0313, 0x0313, 0x033F}, + {0x0314, 0x0314, 0x0340}, {0x0315, 0x0315, 0x0341}, + {0x0316, 0x0316, 0x0342}, {0x0317, 0x0317, 0x0343}, + {0x0318, 0x0318, 0x0344}, {0xA6A9, 0x0319, 0x0345}, + {0x031A, 0x031A, 0x0346}, {0x031B, 0x031B, 0x0347}, + {0x031C, 0x031C, 0x0348}, {0x031D, 0x031D, 0x0349}, + {0x031E, 0x031E, 0x034A}, {0x031F, 0x031F, 0x034B}, + {0x0320, 0x0320, 0x034C}, {0x0321, 0x0321, 0x034D}, + {0x0322, 0x0322, 0x034E}, {0x0323, 0x0323, 0x034F}, + {0x0324, 0x0324, 0x0350}, {0x0325, 0x0325, 0x0351}, + {0x0326, 0x0326, 0x0352}, {0x0327, 0x0327, 0x0353}, + {0x0328, 0x0328, 0x0354}, {0x0329, 0x0329, 0x0355}, + {0x032A, 0x032A, 0x0356}, {0x032B, 0x032B, 0x0357}, + {0x032C, 0x032C, 0x0358}, {0x032D, 0x032D, 0x0359}, + {0x032E, 0x032E, 0x035A}, {0x032F, 0x032F, 0x035B}, + {0x0330, 0x0330, 0x035C}, {0x0331, 0x0331, 0x035D}, + {0x0332, 0x0332, 0x035E}, {0x0333, 0x0333, 0x035F}, + {0x0334, 0x0334, 0x0360}, {0x0335, 0x0335, 0x0361}, + {0x0336, 0x0336, 0x0362}, {0x0337, 0x0337, 0x0363}, + {0x0338, 0x0338, 0x0364}, {0x0339, 0x0339, 0x0365}, + {0x033A, 0x033A, 0x0366}, {0x033B, 0x033B, 0x0367}, + {0x033C, 0x033C, 0x0368}, {0x033D, 0x033D, 0x0369}, + {0x033E, 0x033E, 0x036A}, {0x033F, 0x033F, 0x036B}, + {0x0340, 0x0340, 0x036C}, {0x0341, 0x0341, 0x036D}, + {0x0342, 0x0342, 0x036E}, {0x0343, 0x0343, 0x036F}, + {0x0344, 0x0345, 0x0370}, {0x0344, 0x0345, 0x0370}, + {0x0346, 0x0347, 0x0372}, {0x0346, 0x0347, 0x0372}, + {0x0348, 0x0348, 0x0374}, {0x0349, 0x0349, 0x0375}, + {0x034A, 0x034B, 0x0376}, {0x034A, 0x034B, 0x0376}, + {0x034C, 0x034C, 0x0378}, {0x034D, 0x034D, 0x0379}, + {0x034E, 0x034E, 0x037A}, {0x03A1, 0x034F, 0x03FD}, + {0x03A2, 0x0350, 0x03FE}, {0x03A3, 0x0351, 0x03FF}, + {0x0352, 0x0352, 0x037E}, {0x0353, 0x0353, 0x037F}, + {0x0354, 0x0354, 0x0380}, {0x0355, 0x0355, 0x0381}, + {0x0356, 0x0356, 0x0382}, {0x0357, 0x0357, 0x0383}, + {0x0358, 0x0358, 0x0384}, {0x0359, 0x0359, 0x0385}, + {0x035A, 0x0368, 0x0386}, {0x035B, 0x035B, 0x0387}, + {0x035C, 0x0369, 0x0388}, {0x035D, 0x036A, 0x0389}, + {0x035E, 0x036B, 0x038A}, {0x035F, 0x035F, 0x038B}, + {0x0360, 0x0370, 0x038C}, {0x0361, 0x0361, 0x038D}, + {0x0362, 0x0371, 0x038E}, {0x0363, 0x0372, 0x038F}, + {0x0364, 0x0364, 0x0390}, {0x0365, 0x0365, 0x03A2}, + {0x0366, 0x036E, 0x03AA}, {0x0367, 0x036F, 0x03AB}, + {0x035A, 0x0368, 0x0386}, {0x035C, 0x0369, 0x0388}, + {0x035D, 0x036A, 0x0389}, {0x035E, 0x036B, 0x038A}, + {0x036C, 0x036C, 0x03B0}, {0x036D, 0xA6D2, 0x03C2}, + {0x0366, 0x036E, 0x03AA}, {0x0367, 0x036F, 0x03AB}, + {0x0360, 0x0370, 0x038C}, {0x0362, 0x0371, 0x038E}, + {0x0363, 0x0372, 0x038F}, {0x0373, 0x037B, 0x03CF}, + {0x0374, 0xA6C2, 0x03D0}, {0x0375, 0xA6C8, 0x03D1}, + {0x0376, 0x0376, 0x03D2}, {0x0377, 0x0377, 0x03D3}, + {0x0378, 0x0378, 0x03D4}, {0x0379, 0xA6D5, 0x03D5}, + {0x037A, 0xA6D0, 0x03D6}, {0x0373, 0x037B, 0x03CF}, + {0x037C, 0x037D, 0x03D8}, {0x037C, 0x037D, 0x03D8}, + {0x037E, 0x037F, 0x03DA}, {0x037E, 0x037F, 0x03DA}, + {0x0380, 0x0381, 0x03DC}, {0x0380, 0x0381, 0x03DC}, + {0x0382, 0x0383, 0x03DE}, {0x0382, 0x0383, 0x03DE}, + {0x0384, 0x0385, 0x03E0}, {0x0384, 0x0385, 0x03E0}, + {0x0386, 0x0387, 0x03E2}, {0x0386, 0x0387, 0x03E2}, + {0x0388, 0x0389, 0x03E4}, {0x0388, 0x0389, 0x03E4}, + {0x038A, 0x038B, 0x03E6}, {0x038A, 0x038B, 0x03E6}, + {0x038C, 0x038D, 0x03E8}, {0x038C, 0x038D, 0x03E8}, + {0x038E, 0x038F, 0x03EA}, {0x038E, 0x038F, 0x03EA}, + {0x0390, 0x0391, 0x03EC}, {0x0390, 0x0391, 0x03EC}, + {0x0392, 0x0393, 0x03EE}, {0x0392, 0x0393, 0x03EE}, + {0x0394, 0xA6CA, 0x03F0}, {0x0395, 0xA6D1, 0x03F1}, + {0x039D, 0x0396, 0x03F9}, {0x0397, 0x0397, 0x03F3}, + {0x0398, 0xA6C8, 0x03F4}, {0x0399, 0xA6C5, 0x03F5}, + {0x039A, 0x039A, 0x03F6}, {0x039B, 0x039C, 0x03F7}, + {0x039B, 0x039C, 0x03F7}, {0x039D, 0x0396, 0x03F9}, + {0x039E, 0x039F, 0x03FA}, {0x039E, 0x039F, 0x03FA}, + {0x03A0, 0x03A0, 0x03FC}, {0x03A1, 0x034F, 0x03FD}, + {0x03A2, 0x0350, 0x03FE}, {0x03A3, 0x0351, 0x03FF}, + {0x03A4, 0x03B3, 0x0400}, {0x03A5, 0x03B4, 0x0402}, + {0x03A6, 0x03B5, 0x0403}, {0x03A7, 0x03B6, 0x0404}, + {0x03A8, 0x03B7, 0x0405}, {0x03A9, 0x03B8, 0x0406}, + {0x03AA, 0x03B9, 0x0407}, {0x03AB, 0x03BA, 0x0408}, + {0x03AC, 0x03BB, 0x0409}, {0x03AD, 0x03BC, 0x040A}, + {0x03AE, 0x03BD, 0x040B}, {0x03AF, 0x03BE, 0x040C}, + {0x03B0, 0x03BF, 0x040D}, {0x03B1, 0x03C0, 0x040E}, + {0x03B2, 0x03C1, 0x040F}, {0x03A4, 0x03B3, 0x0400}, + {0x03A5, 0x03B4, 0x0402}, {0x03A6, 0x03B5, 0x0403}, + {0x03A7, 0x03B6, 0x0404}, {0x03A8, 0x03B7, 0x0405}, + {0x03A9, 0x03B8, 0x0406}, {0x03AA, 0x03B9, 0x0407}, + {0x03AB, 0x03BA, 0x0408}, {0x03AC, 0x03BB, 0x0409}, + {0x03AD, 0x03BC, 0x040A}, {0x03AE, 0x03BD, 0x040B}, + {0x03AF, 0x03BE, 0x040C}, {0x03B0, 0x03BF, 0x040D}, + {0x03B1, 0x03C0, 0x040E}, {0x03B2, 0x03C1, 0x040F}, + {0x03C2, 0x03C3, 0x0460}, {0x03C2, 0x03C3, 0x0460}, + {0x03C4, 0x03C5, 0x0462}, {0x03C4, 0x03C5, 0x0462}, + {0x03C6, 0x03C7, 0x0464}, {0x03C6, 0x03C7, 0x0464}, + {0x03C8, 0x03C9, 0x0466}, {0x03C8, 0x03C9, 0x0466}, + {0x03CA, 0x03CB, 0x0468}, {0x03CA, 0x03CB, 0x0468}, + {0x03CC, 0x03CD, 0x046A}, {0x03CC, 0x03CD, 0x046A}, + {0x03CE, 0x03CF, 0x046C}, {0x03CE, 0x03CF, 0x046C}, + {0x03D0, 0x03D1, 0x046E}, {0x03D0, 0x03D1, 0x046E}, + {0x03D2, 0x03D3, 0x0470}, {0x03D2, 0x03D3, 0x0470}, + {0x03D4, 0x03D5, 0x0472}, {0x03D4, 0x03D5, 0x0472}, + {0x03D6, 0x03D7, 0x0474}, {0x03D6, 0x03D7, 0x0474}, + {0x03D8, 0x03D9, 0x0476}, {0x03D8, 0x03D9, 0x0476}, + {0x03DA, 0x03DB, 0x0478}, {0x03DA, 0x03DB, 0x0478}, + {0x03DC, 0x03DD, 0x047A}, {0x03DC, 0x03DD, 0x047A}, + {0x03DE, 0x03DF, 0x047C}, {0x03DE, 0x03DF, 0x047C}, + {0x03E0, 0x03E1, 0x047E}, {0x03E0, 0x03E1, 0x047E}, + {0x03E2, 0x03E3, 0x0480}, {0x03E2, 0x03E3, 0x0480}, + {0x03E4, 0x03E4, 0x0482}, {0x03E5, 0x03E5, 0x0483}, + {0x03E6, 0x03E6, 0x0484}, {0x03E7, 0x03E7, 0x0485}, + {0x03E8, 0x03E8, 0x0486}, {0x03E9, 0x03E9, 0x0487}, + {0x03EA, 0x03EA, 0x0488}, {0x03EB, 0x03EB, 0x0489}, + {0x03EC, 0x03ED, 0x048A}, {0x03EC, 0x03ED, 0x048A}, + {0x03EE, 0x03EF, 0x048C}, {0x03EE, 0x03EF, 0x048C}, + {0x03F0, 0x03F1, 0x048E}, {0x03F0, 0x03F1, 0x048E}, + {0x03F2, 0x03F3, 0x0490}, {0x03F2, 0x03F3, 0x0490}, + {0x03F4, 0x03F5, 0x0492}, {0x03F4, 0x03F5, 0x0492}, + {0x03F6, 0x03F7, 0x0494}, {0x03F6, 0x03F7, 0x0494}, + {0x03F8, 0x03F9, 0x0496}, {0x03F8, 0x03F9, 0x0496}, + {0x03FA, 0x03FB, 0x0498}, {0x03FA, 0x03FB, 0x0498}, + {0x03FC, 0x03FD, 0x049A}, {0x03FC, 0x03FD, 0x049A}, + {0x03FE, 0x03FF, 0x049C}, {0x03FE, 0x03FF, 0x049C} +}; + +/** + Unicase array for 0x0400-0x04FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane04[]= +{ + {0x0400, 0x0401, 0x049E}, {0x0400, 0x0401, 0x049E}, + {0x0402, 0x0403, 0x04A0}, {0x0402, 0x0403, 0x04A0}, + {0x0404, 0x0405, 0x04A2}, {0x0404, 0x0405, 0x04A2}, + {0x0406, 0x0407, 0x04A4}, {0x0406, 0x0407, 0x04A4}, + {0x0408, 0x0409, 0x04A6}, {0x0408, 0x0409, 0x04A6}, + {0x040A, 0x040B, 0x04A8}, {0x040A, 0x040B, 0x04A8}, + {0x040C, 0x040D, 0x04AA}, {0x040C, 0x040D, 0x04AA}, + {0x040E, 0x040F, 0x04AC}, {0x040E, 0x040F, 0x04AC}, + {0x0410, 0x0411, 0x04AE}, {0x0410, 0x0411, 0x04AE}, + {0x0412, 0x0413, 0x04B0}, {0x0412, 0x0413, 0x04B0}, + {0x0414, 0x0415, 0x04B2}, {0x0414, 0x0415, 0x04B2}, + {0x0416, 0x0417, 0x04B4}, {0x0416, 0x0417, 0x04B4}, + {0x0418, 0x0419, 0x04B6}, {0x0418, 0x0419, 0x04B6}, + {0x041A, 0x041B, 0x04B8}, {0x041A, 0x041B, 0x04B8}, + {0x041C, 0x041D, 0x04BA}, {0x041C, 0x041D, 0x04BA}, + {0x041E, 0x041F, 0x04BC}, {0x041E, 0x041F, 0x04BC}, + {0x0420, 0x0421, 0x04BE}, {0x0420, 0x0421, 0x04BE}, + {0x0422, 0x0431, 0x04C0}, {0x0423, 0x0424, 0x04C1}, + {0x0423, 0x0424, 0x04C1}, {0x0425, 0x0426, 0x04C3}, + {0x0425, 0x0426, 0x04C3}, {0x0427, 0x0428, 0x04C5}, + {0x0427, 0x0428, 0x04C5}, {0x0429, 0x042A, 0x04C7}, + {0x0429, 0x042A, 0x04C7}, {0x042B, 0x042C, 0x04C9}, + {0x042B, 0x042C, 0x04C9}, {0x042D, 0x042E, 0x04CB}, + {0x042D, 0x042E, 0x04CB}, {0x042F, 0x0430, 0x04CD}, + {0x042F, 0x0430, 0x04CD}, {0x0422, 0x0431, 0x04C0}, + {0x0432, 0x0433, 0x04D0}, {0x0432, 0x0433, 0x04D0}, + {0x0434, 0x0435, 0x04D2}, {0x0434, 0x0435, 0x04D2}, + {0x0436, 0x0437, 0x04D4}, {0x0436, 0x0437, 0x04D4}, + {0x0438, 0x0439, 0x04D6}, {0x0438, 0x0439, 0x04D6}, + {0x043A, 0x043B, 0x04D8}, {0x043A, 0x043B, 0x04D8}, + {0x043C, 0x043D, 0x04DA}, {0x043C, 0x043D, 0x04DA}, + {0x043E, 0x043F, 0x04DC}, {0x043E, 0x043F, 0x04DC}, + {0x0440, 0x0441, 0x04DE}, {0x0440, 0x0441, 0x04DE}, + {0x0442, 0x0443, 0x04E0}, {0x0442, 0x0443, 0x04E0}, + {0x0444, 0x0445, 0x04E2}, {0x0444, 0x0445, 0x04E2}, + {0x0446, 0x0447, 0x04E4}, {0x0446, 0x0447, 0x04E4}, + {0x0448, 0x0449, 0x04E6}, {0x0448, 0x0449, 0x04E6}, + {0x044A, 0x044B, 0x04E8}, {0x044A, 0x044B, 0x04E8}, + {0x044C, 0x044D, 0x04EA}, {0x044C, 0x044D, 0x04EA}, + {0x044E, 0x044F, 0x04EC}, {0x044E, 0x044F, 0x04EC}, + {0x0450, 0x0451, 0x04EE}, {0x0450, 0x0451, 0x04EE}, + {0x0452, 0x0453, 0x04F0}, {0x0452, 0x0453, 0x04F0}, + {0x0454, 0x0455, 0x04F2}, {0x0454, 0x0455, 0x04F2}, + {0x0456, 0x0457, 0x04F4}, {0x0456, 0x0457, 0x04F4}, + {0x0458, 0x0459, 0x04F6}, {0x0458, 0x0459, 0x04F6}, + {0x045A, 0x045B, 0x04F8}, {0x045A, 0x045B, 0x04F8}, + {0x045C, 0x045D, 0x04FA}, {0x045C, 0x045D, 0x04FA}, + {0x045E, 0x045F, 0x04FC}, {0x045E, 0x045F, 0x04FC}, + {0x0460, 0x0461, 0x04FE}, {0x0460, 0x0461, 0x04FE}, + {0x0462, 0x0463, 0x0500}, {0x0462, 0x0463, 0x0500}, + {0x0464, 0x0465, 0x0502}, {0x0464, 0x0465, 0x0502}, + {0x0466, 0x0467, 0x0504}, {0x0466, 0x0467, 0x0504}, + {0x0468, 0x0469, 0x0506}, {0x0468, 0x0469, 0x0506}, + {0x046A, 0x046B, 0x0508}, {0x046A, 0x046B, 0x0508}, + {0x046C, 0x046D, 0x050A}, {0x046C, 0x046D, 0x050A}, + {0x046E, 0x046F, 0x050C}, {0x046E, 0x046F, 0x050C}, + {0x0470, 0x0471, 0x050E}, {0x0470, 0x0471, 0x050E}, + {0x0472, 0x0473, 0x0510}, {0x0472, 0x0473, 0x0510}, + {0x0474, 0x0475, 0x0512}, {0x0474, 0x0475, 0x0512}, + {0x0476, 0x0477, 0x0514}, {0x0476, 0x0477, 0x0514}, + {0x0478, 0x0479, 0x0516}, {0x0478, 0x0479, 0x0516}, + {0x047A, 0x047B, 0x0518}, {0x047A, 0x047B, 0x0518}, + {0x047C, 0x047D, 0x051A}, {0x047C, 0x047D, 0x051A}, + {0x047E, 0x047F, 0x051C}, {0x047E, 0x047F, 0x051C}, + {0x0480, 0x0481, 0x051E}, {0x0480, 0x0481, 0x051E}, + {0x0482, 0x0483, 0x0520}, {0x0482, 0x0483, 0x0520}, + {0x0484, 0x0485, 0x0522}, {0x0484, 0x0485, 0x0522}, + {0x0486, 0x0487, 0x0524}, {0x0486, 0x0487, 0x0524}, + {0x0488, 0x0488, 0x0526}, {0x0489, 0x0489, 0x0527}, + {0x048A, 0x048A, 0x0528}, {0x048B, 0x048B, 0x0529}, + {0x048C, 0x048C, 0x052A}, {0x048D, 0x048D, 0x052B}, + {0x048E, 0x048E, 0x052C}, {0x048F, 0x048F, 0x052D}, + {0x0490, 0x0490, 0x052E}, {0x0491, 0x0491, 0x052F}, + {0x0492, 0x0492, 0x0530}, {0x0493, 0x04C3, 0x0531}, + {0x0494, 0x04C4, 0x0532}, {0x0495, 0x04C5, 0x0533}, + {0x0496, 0x04C6, 0x0534}, {0x0497, 0x04C7, 0x0535}, + {0x0498, 0x04C8, 0x0536}, {0x0499, 0x04C9, 0x0537}, + {0x049A, 0x04CA, 0x0538}, {0x049B, 0x04CB, 0x0539}, + {0x049C, 0x04CC, 0x053A}, {0x049D, 0x04CD, 0x053B}, + {0x049E, 0x04CE, 0x053C}, {0x049F, 0x04CF, 0x053D}, + {0x04A0, 0x04D0, 0x053E}, {0x04A1, 0x04D1, 0x053F}, + {0x04A2, 0x04D2, 0x0540}, {0x04A3, 0x04D3, 0x0541}, + {0x04A4, 0x04D4, 0x0542}, {0x04A5, 0x04D5, 0x0543}, + {0x04A6, 0x04D6, 0x0544}, {0x04A7, 0x04D7, 0x0545}, + {0x04A8, 0x04D8, 0x0546}, {0x04A9, 0x04D9, 0x0547}, + {0x04AA, 0x04DA, 0x0548}, {0x04AB, 0x04DB, 0x0549}, + {0x04AC, 0x04DC, 0x054A}, {0x04AD, 0x04DD, 0x054B}, + {0x04AE, 0x04DE, 0x054C}, {0x04AF, 0x04DF, 0x054D}, + {0x04B0, 0x04E0, 0x054E}, {0x04B1, 0x04E1, 0x054F}, + {0x04B2, 0x04E2, 0x0550}, {0x04B3, 0x04E3, 0x0551}, + {0x04B4, 0x04E4, 0x0552}, {0x04B5, 0x04E5, 0x0553}, + {0x04B6, 0x04E6, 0x0554}, {0x04B7, 0x04E7, 0x0555}, + {0x04B8, 0x04E8, 0x0556}, {0x04B9, 0x04B9, 0x0557}, + {0x04BA, 0x04BA, 0x0558}, {0x04BB, 0x04BB, 0x0559}, + {0x04BC, 0x04BC, 0x055A}, {0x04BD, 0x04BD, 0x055B}, + {0x04BE, 0x04BE, 0x055C}, {0x04BF, 0x04BF, 0x055D}, + {0x04C0, 0x04C0, 0x055E}, {0x04C1, 0x04C1, 0x055F}, + {0x04C2, 0x04C2, 0x0560}, {0x0493, 0x04C3, 0x0531}, + {0x0494, 0x04C4, 0x0532}, {0x0495, 0x04C5, 0x0533}, + {0x0496, 0x04C6, 0x0534}, {0x0497, 0x04C7, 0x0535}, + {0x0498, 0x04C8, 0x0536}, {0x0499, 0x04C9, 0x0537}, + {0x049A, 0x04CA, 0x0538}, {0x049B, 0x04CB, 0x0539}, + {0x049C, 0x04CC, 0x053A}, {0x049D, 0x04CD, 0x053B}, + {0x049E, 0x04CE, 0x053C}, {0x049F, 0x04CF, 0x053D}, + {0x04A0, 0x04D0, 0x053E}, {0x04A1, 0x04D1, 0x053F}, + {0x04A2, 0x04D2, 0x0540}, {0x04A3, 0x04D3, 0x0541}, + {0x04A4, 0x04D4, 0x0542}, {0x04A5, 0x04D5, 0x0543}, + {0x04A6, 0x04D6, 0x0544}, {0x04A7, 0x04D7, 0x0545}, + {0x04A8, 0x04D8, 0x0546}, {0x04A9, 0x04D9, 0x0547}, + {0x04AA, 0x04DA, 0x0548}, {0x04AB, 0x04DB, 0x0549}, + {0x04AC, 0x04DC, 0x054A}, {0x04AD, 0x04DD, 0x054B}, + {0x04AE, 0x04DE, 0x054C}, {0x04AF, 0x04DF, 0x054D}, + {0x04B0, 0x04E0, 0x054E}, {0x04B1, 0x04E1, 0x054F}, + {0x04B2, 0x04E2, 0x0550}, {0x04B3, 0x04E3, 0x0551}, + {0x04B4, 0x04E4, 0x0552}, {0x04B5, 0x04E5, 0x0553}, + {0x04B6, 0x04E6, 0x0554}, {0x04B7, 0x04E7, 0x0555}, + {0x04B8, 0x04E8, 0x0556}, {0x04E9, 0x04E9, 0x0587}, + {0x04EA, 0x04EA, 0x0588}, {0x04EB, 0x04EB, 0x0589}, + {0x04EC, 0x04EC, 0x058A}, {0x04ED, 0x04ED, 0x058B}, + {0x04EE, 0x04EE, 0x058C}, {0x04EF, 0x04EF, 0x058D}, + {0x04F0, 0x04F0, 0x058E}, {0x04F1, 0x04F1, 0x058F}, + {0x04F2, 0x04F2, 0x0590}, {0x04F3, 0x04F3, 0x0591}, + {0x04F4, 0x04F4, 0x0592}, {0x04F5, 0x04F5, 0x0593}, + {0x04F6, 0x04F6, 0x0594}, {0x04F7, 0x04F7, 0x0595}, + {0x04F8, 0x04F8, 0x0596}, {0x04F9, 0x04F9, 0x0597}, + {0x04FA, 0x04FA, 0x0598}, {0x04FB, 0x04FB, 0x0599}, + {0x04FC, 0x04FC, 0x059A}, {0x04FD, 0x04FD, 0x059B}, + {0x04FE, 0x04FE, 0x059C}, {0x04FF, 0x04FF, 0x059D} +}; + +/** + Unicase array for 0x1000-0x10FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane10[]= +{ + {0x1000, 0x1000, 0x109E}, {0x1001, 0x1001, 0x109F}, + {0x1002, 0x2B40, 0x10A0}, {0x1003, 0x2B41, 0x10A1}, + {0x1004, 0x2B42, 0x10A2}, {0x1005, 0x2B43, 0x10A3}, + {0x1006, 0x2B44, 0x10A4}, {0x1007, 0x2B45, 0x10A5}, + {0x1008, 0x2B46, 0x10A6}, {0x1009, 0x2B47, 0x10A7}, + {0x100A, 0x2B48, 0x10A8}, {0x100B, 0x2B49, 0x10A9}, + {0x100C, 0x2B4A, 0x10AA}, {0x100D, 0x2B4B, 0x10AB}, + {0x100E, 0x2B4C, 0x10AC}, {0x100F, 0x2B4D, 0x10AD}, + {0x1010, 0x2B4E, 0x10AE}, {0x1011, 0x2B4F, 0x10AF}, + {0x1012, 0x2B50, 0x10B0}, {0x1013, 0x2B51, 0x10B1}, + {0x1014, 0x2B52, 0x10B2}, {0x1015, 0x2B53, 0x10B3}, + {0x1016, 0x2B54, 0x10B4}, {0x1017, 0x2B55, 0x10B5}, + {0x1018, 0x2B56, 0x10B6}, {0x1019, 0x2B57, 0x10B7}, + {0x101A, 0x2B58, 0x10B8}, {0x101B, 0x2B59, 0x10B9}, + {0x101C, 0x2B5A, 0x10BA}, {0x101D, 0x2B5B, 0x10BB}, + {0x101E, 0x2B5C, 0x10BC}, {0x101F, 0x2B5D, 0x10BD}, + {0x1020, 0x2B5E, 0x10BE}, {0x1021, 0x2B5F, 0x10BF}, + {0x1022, 0x2B60, 0x10C0}, {0x1023, 0x2B61, 0x10C1}, + {0x1024, 0x2B62, 0x10C2}, {0x1025, 0x2B63, 0x10C3}, + {0x1026, 0x2B64, 0x10C4}, {0x1027, 0x2B65, 0x10C5}, + {0x1028, 0x1028, 0x10C6}, {0x1029, 0x1029, 0x10C7}, + {0x102A, 0x102A, 0x10C8}, {0x102B, 0x102B, 0x10C9}, + {0x102C, 0x102C, 0x10CA}, {0x102D, 0x102D, 0x10CB}, + {0x102E, 0x102E, 0x10CC}, {0x102F, 0x102F, 0x10CD}, + {0x1030, 0x1030, 0x10CE}, {0x1031, 0x1031, 0x10CF}, + {0x1032, 0x1032, 0x10D0}, {0x1033, 0x1033, 0x10D1}, + {0x1034, 0x1034, 0x10D2}, {0x1035, 0x1035, 0x10D3}, + {0x1036, 0x1036, 0x10D4}, {0x1037, 0x1037, 0x10D5}, + {0x1038, 0x1038, 0x10D6}, {0x1039, 0x1039, 0x10D7}, + {0x103A, 0x103A, 0x10D8}, {0x103B, 0x103B, 0x10D9}, + {0x103C, 0x103C, 0x10DA}, {0x103D, 0x103D, 0x10DB}, + {0x103E, 0x103E, 0x10DC}, {0x103F, 0x103F, 0x10DD}, + {0x1040, 0x1040, 0x10DE}, {0x1041, 0x1041, 0x10DF}, + {0x1042, 0x1042, 0x10E0}, {0x1043, 0x1043, 0x10E1}, + {0x1044, 0x1044, 0x10E2}, {0x1045, 0x1045, 0x10E3}, + {0x1046, 0x1046, 0x10E4}, {0x1047, 0x1047, 0x10E5}, + {0x1048, 0x1048, 0x10E6}, {0x1049, 0x1049, 0x10E7}, + {0x104A, 0x104A, 0x10E8}, {0x104B, 0x104B, 0x10E9}, + {0x104C, 0x104C, 0x10EA}, {0x104D, 0x104D, 0x10EB}, + {0x104E, 0x104E, 0x10EC}, {0x104F, 0x104F, 0x10ED}, + {0x1050, 0x1050, 0x10EE}, {0x1051, 0x1051, 0x10EF}, + {0x1052, 0x1052, 0x10F0}, {0x1053, 0x1053, 0x10F1}, + {0x1054, 0x1054, 0x10F2}, {0x1055, 0x1055, 0x10F3}, + {0x1056, 0x1056, 0x10F4}, {0x1057, 0x1057, 0x10F5}, + {0x1058, 0x1058, 0x10F6}, {0x1059, 0x1059, 0x10F7}, + {0x105A, 0x105A, 0x10F8}, {0x105B, 0x105B, 0x10F9}, + {0x105C, 0x105C, 0x10FA}, {0x105D, 0x105D, 0x10FB}, + {0x105E, 0x105E, 0x10FC}, {0x105F, 0x105F, 0x10FD}, + {0x1060, 0x1060, 0x10FE}, {0x1061, 0x1061, 0x10FF}, + {0x1062, 0x1062, 0x1100}, {0x1063, 0x1063, 0x1101}, + {0x1064, 0x1064, 0x1102}, {0x1065, 0x1065, 0x1103}, + {0x1066, 0x1066, 0x1104}, {0x1067, 0x1067, 0x1105}, + {0x1068, 0x1068, 0x1106}, {0x1069, 0x1069, 0x1107}, + {0x106A, 0x106A, 0x1108}, {0x106B, 0x106B, 0x1109}, + {0x106C, 0x106C, 0x110A}, {0x106D, 0x106D, 0x110B}, + {0x106E, 0x106E, 0x110C}, {0x106F, 0x106F, 0x110D}, + {0x1070, 0x1070, 0x110E}, {0x1071, 0x1071, 0x110F}, + {0x1072, 0x1072, 0x1110}, {0x1073, 0x1073, 0x1111}, + {0x1074, 0x1074, 0x1112}, {0x1075, 0x1075, 0x1113}, + {0x1076, 0x1076, 0x1114}, {0x1077, 0x1077, 0x1115}, + {0x1078, 0x1078, 0x1116}, {0x1079, 0x1079, 0x1117}, + {0x107A, 0x107A, 0x1118}, {0x107B, 0x107B, 0x1119}, + {0x107C, 0x107C, 0x111A}, {0x107D, 0x107D, 0x111B}, + {0x107E, 0x107E, 0x111C}, {0x107F, 0x107F, 0x111D}, + {0x1080, 0x1080, 0x111E}, {0x1081, 0x1081, 0x111F}, + {0x1082, 0x1082, 0x1120}, {0x1083, 0x1083, 0x1121}, + {0x1084, 0x1084, 0x1122}, {0x1085, 0x1085, 0x1123}, + {0x1086, 0x1086, 0x1124}, {0x1087, 0x1087, 0x1125}, + {0x1088, 0x1088, 0x1126}, {0x1089, 0x1089, 0x1127}, + {0x108A, 0x108A, 0x1128}, {0x108B, 0x108B, 0x1129}, + {0x108C, 0x108C, 0x112A}, {0x108D, 0x108D, 0x112B}, + {0x108E, 0x108E, 0x112C}, {0x108F, 0x108F, 0x112D}, + {0x1090, 0x1090, 0x112E}, {0x1091, 0x1091, 0x112F}, + {0x1092, 0x1092, 0x1130}, {0x1093, 0x1093, 0x1131}, + {0x1094, 0x1094, 0x1132}, {0x1095, 0x1095, 0x1133}, + {0x1096, 0x1096, 0x1134}, {0x1097, 0x1097, 0x1135}, + {0x1098, 0x1098, 0x1136}, {0x1099, 0x1099, 0x1137}, + {0x109A, 0x109A, 0x1138}, {0x109B, 0x109B, 0x1139}, + {0x109C, 0x109C, 0x113A}, {0x109D, 0x109D, 0x113B}, + {0x109E, 0x109E, 0x113C}, {0x109F, 0x109F, 0x113D}, + {0x10A0, 0x10A0, 0x113E}, {0x10A1, 0x10A1, 0x113F}, + {0x10A2, 0x10A2, 0x1140}, {0x10A3, 0x10A3, 0x1141}, + {0x10A4, 0x10A4, 0x1142}, {0x10A5, 0x10A5, 0x1143}, + {0x10A6, 0x10A6, 0x1144}, {0x10A7, 0x10A7, 0x1145}, + {0x10A8, 0x10A8, 0x1146}, {0x10A9, 0x10A9, 0x1147}, + {0x10AA, 0x10AA, 0x1148}, {0x10AB, 0x10AB, 0x1149}, + {0x10AC, 0x10AC, 0x114A}, {0x10AD, 0x10AD, 0x114B}, + {0x10AE, 0x10AE, 0x114C}, {0x10AF, 0x10AF, 0x114D}, + {0x10B0, 0x10B0, 0x114E}, {0x10B1, 0x10B1, 0x114F}, + {0x10B2, 0x10B2, 0x1150}, {0x10B3, 0x10B3, 0x1151}, + {0x10B4, 0x10B4, 0x1152}, {0x10B5, 0x10B5, 0x1153}, + {0x10B6, 0x10B6, 0x1154}, {0x10B7, 0x10B7, 0x1155}, + {0x10B8, 0x10B8, 0x1156}, {0x10B9, 0x10B9, 0x1157}, + {0x10BA, 0x10BA, 0x1158}, {0x10BB, 0x10BB, 0x1159}, + {0x10BC, 0x10BC, 0x115A}, {0x10BD, 0x10BD, 0x115B}, + {0x10BE, 0x10BE, 0x115C}, {0x10BF, 0x10BF, 0x115D}, + {0x10C0, 0x10C0, 0x115E}, {0x10C1, 0x10C1, 0x115F}, + {0x10C2, 0x10C2, 0x1160}, {0x10C3, 0x10C3, 0x1161}, + {0x10C4, 0x10C4, 0x1162}, {0x10C5, 0x10C5, 0x1163}, + {0x10C6, 0x10C6, 0x1164}, {0x10C7, 0x10C7, 0x1165}, + {0x10C8, 0x10C8, 0x1166}, {0x10C9, 0x10C9, 0x1167}, + {0x10CA, 0x10CA, 0x1168}, {0x10CB, 0x10CB, 0x1169}, + {0x10CC, 0x10CC, 0x116A}, {0x10CD, 0x10CD, 0x116B}, + {0x10CE, 0x10CE, 0x116C}, {0x10CF, 0x10CF, 0x116D}, + {0x10D0, 0x10D0, 0x116E}, {0x10D1, 0x10D1, 0x116F}, + {0x10D2, 0x10D2, 0x1170}, {0x10D3, 0x10D3, 0x1171}, + {0x10D4, 0x10D4, 0x1172}, {0x10D5, 0x10D5, 0x1173}, + {0x10D6, 0x10D6, 0x1174}, {0x10D7, 0x10D7, 0x1175}, + {0x10D8, 0x10D8, 0x1176}, {0x10D9, 0x10D9, 0x1177}, + {0x10DA, 0x10DA, 0x1178}, {0x10DB, 0x10DB, 0x1179}, + {0x10DC, 0x10DC, 0x117A}, {0x10DD, 0x10DD, 0x117B}, + {0x10DE, 0x10DE, 0x117C}, {0x10DF, 0x10DF, 0x117D}, + {0x10E0, 0x10E0, 0x117E}, {0x10E1, 0x10E1, 0x117F}, + {0x10E2, 0x10E2, 0x1180}, {0x10E3, 0x10E3, 0x1181}, + {0x10E4, 0x10E4, 0x1182}, {0x10E5, 0x10E5, 0x1183}, + {0x10E6, 0x10E6, 0x1184}, {0x10E7, 0x10E7, 0x1185}, + {0x10E8, 0x10E8, 0x1186}, {0x10E9, 0x10E9, 0x1187}, + {0x10EA, 0x10EA, 0x1188}, {0x10EB, 0x10EB, 0x1189}, + {0x10EC, 0x10EC, 0x118A}, {0x10ED, 0x10ED, 0x118B}, + {0x10EE, 0x10EE, 0x118C}, {0x10EF, 0x10EF, 0x118D}, + {0x10F0, 0x10F0, 0x118E}, {0x10F1, 0x10F1, 0x118F}, + {0x10F2, 0x10F2, 0x1190}, {0x10F3, 0x10F3, 0x1191}, + {0x10F4, 0x10F4, 0x1192}, {0x10F5, 0x10F5, 0x1193}, + {0x10F6, 0x10F6, 0x1194}, {0x10F7, 0x10F7, 0x1195}, + {0x10F8, 0x10F8, 0x1196}, {0x10F9, 0x10F9, 0x1197}, + {0x10FA, 0x10FA, 0x1198}, {0x10FB, 0x10FB, 0x1199}, + {0x10FC, 0x10FC, 0x119A}, {0x10FD, 0x10FD, 0x119B}, + {0x10FE, 0x10FE, 0x119C}, {0x10FF, 0x10FF, 0x119D} +}; + +/** + Unicase array for 0x1D00-0x1DFF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane1D[]= +{ + {0x1D00, 0x1D00, 0x1D9E}, {0x1D01, 0x1D01, 0x1D9F}, + {0x1D02, 0x1D02, 0x1DA0}, {0x1D03, 0x1D03, 0x1DA1}, + {0x1D04, 0x1D04, 0x1DA2}, {0x1D05, 0x1D05, 0x1DA3}, + {0x1D06, 0x1D06, 0x1DA4}, {0x1D07, 0x1D07, 0x1DA5}, + {0x1D08, 0x1D08, 0x1DA6}, {0x1D09, 0x1D09, 0x1DA7}, + {0x1D0A, 0x1D0A, 0x1DA8}, {0x1D0B, 0x1D0B, 0x1DA9}, + {0x1D0C, 0x1D0C, 0x1DAA}, {0x1D0D, 0x1D0D, 0x1DAB}, + {0x1D0E, 0x1D0E, 0x1DAC}, {0x1D0F, 0x1D0F, 0x1DAD}, + {0x1D10, 0x1D10, 0x1DAE}, {0x1D11, 0x1D11, 0x1DAF}, + {0x1D12, 0x1D12, 0x1DB0}, {0x1D13, 0x1D13, 0x1DB1}, + {0x1D14, 0x1D14, 0x1DB2}, {0x1D15, 0x1D15, 0x1DB3}, + {0x1D16, 0x1D16, 0x1DB4}, {0x1D17, 0x1D17, 0x1DB5}, + {0x1D18, 0x1D18, 0x1DB6}, {0x1D19, 0x1D19, 0x1DB7}, + {0x1D1A, 0x1D1A, 0x1DB8}, {0x1D1B, 0x1D1B, 0x1DB9}, + {0x1D1C, 0x1D1C, 0x1DBA}, {0x1D1D, 0x1D1D, 0x1DBB}, + {0x1D1E, 0x1D1E, 0x1DBC}, {0x1D1F, 0x1D1F, 0x1DBD}, + {0x1D20, 0x1D20, 0x1DBE}, {0x1D21, 0x1D21, 0x1DBF}, + {0x1D22, 0x1D22, 0x1DC0}, {0x1D23, 0x1D23, 0x1DC1}, + {0x1D24, 0x1D24, 0x1DC2}, {0x1D25, 0x1D25, 0x1DC3}, + {0x1D26, 0x1D26, 0x1DC4}, {0x1D27, 0x1D27, 0x1DC5}, + {0x1D28, 0x1D28, 0x1DC6}, {0x1D29, 0x1D29, 0x1DC7}, + {0x1D2A, 0x1D2A, 0x1DC8}, {0x1D2B, 0x1D2B, 0x1DC9}, + {0x1D2C, 0x1D2C, 0x1DCA}, {0x1D2D, 0x1D2D, 0x1DCB}, + {0x1D2E, 0x1D2E, 0x1DCC}, {0x1D2F, 0x1D2F, 0x1DCD}, + {0x1D30, 0x1D30, 0x1DCE}, {0x1D31, 0x1D31, 0x1DCF}, + {0x1D32, 0x1D32, 0x1DD0}, {0x1D33, 0x1D33, 0x1DD1}, + {0x1D34, 0x1D34, 0x1DD2}, {0x1D35, 0x1D35, 0x1DD3}, + {0x1D36, 0x1D36, 0x1DD4}, {0x1D37, 0x1D37, 0x1DD5}, + {0x1D38, 0x1D38, 0x1DD6}, {0x1D39, 0x1D39, 0x1DD7}, + {0x1D3A, 0x1D3A, 0x1DD8}, {0x1D3B, 0x1D3B, 0x1DD9}, + {0x1D3C, 0x1D3C, 0x1DDA}, {0x1D3D, 0x1D3D, 0x1DDB}, + {0x1D3E, 0x1D3E, 0x1DDC}, {0x1D3F, 0x1D3F, 0x1DDD}, + {0x1D40, 0x1D40, 0x1DDE}, {0x1D41, 0x1D41, 0x1DDF}, + {0x1D42, 0x1D42, 0x1DE0}, {0x1D43, 0x1D43, 0x1DE1}, + {0x1D44, 0x1D44, 0x1DE2}, {0x1D45, 0x1D45, 0x1DE3}, + {0x1D46, 0x1D46, 0x1DE4}, {0x1D47, 0x1D47, 0x1DE5}, + {0x1D48, 0x1D48, 0x1DE6}, {0x1D49, 0x1D49, 0x1DE7}, + {0x1D4A, 0x1D4A, 0x1DE8}, {0x1D4B, 0x1D4B, 0x1DE9}, + {0x1D4C, 0x1D4C, 0x1DEA}, {0x1D4D, 0x1D4D, 0x1DEB}, + {0x1D4E, 0x1D4E, 0x1DEC}, {0x1D4F, 0x1D4F, 0x1DED}, + {0x1D50, 0x1D50, 0x1DEE}, {0x1D51, 0x1D51, 0x1DEF}, + {0x1D52, 0x1D52, 0x1DF0}, {0x1D53, 0x1D53, 0x1DF1}, + {0x1D54, 0x1D54, 0x1DF2}, {0x1D55, 0x1D55, 0x1DF3}, + {0x1D56, 0x1D56, 0x1DF4}, {0x1D57, 0x1D57, 0x1DF5}, + {0x1D58, 0x1D58, 0x1DF6}, {0x1D59, 0x1D59, 0x1DF7}, + {0x1D5A, 0x1D5A, 0x1DF8}, {0x1D5B, 0x1D5B, 0x1DF9}, + {0x1D5C, 0x1D5C, 0x1DFA}, {0x1D5D, 0x1D5D, 0x1DFB}, + {0x1D5E, 0x1D5E, 0x1DFC}, {0x1D5F, 0x1D5F, 0x1DFD}, + {0x1D60, 0x1D60, 0x1DFE}, {0x1D61, 0x1D61, 0x1DFF}, + {0x1D62, 0x1D63, 0x1E00}, {0x1D62, 0x1D63, 0x1E00}, + {0x1D64, 0x1D65, 0x1E02}, {0x1D64, 0x1D65, 0x1E02}, + {0x1D66, 0x1D67, 0x1E04}, {0x1D66, 0x1D67, 0x1E04}, + {0x1D68, 0x1D69, 0x1E06}, {0x1D68, 0x1D69, 0x1E06}, + {0x1D6A, 0x1D6B, 0x1E08}, {0x1D6A, 0x1D6B, 0x1E08}, + {0x1D6C, 0x1D6D, 0x1E0A}, {0x1D6C, 0x1D6D, 0x1E0A}, + {0x1D6E, 0x1D6F, 0x1E0C}, {0x1D6E, 0x1D6F, 0x1E0C}, + {0x1D70, 0x1D71, 0x1E0E}, {0x1D70, 0x1D71, 0x1E0E}, + {0x1D72, 0x1D73, 0x1E10}, {0x1D72, 0x1D73, 0x1E10}, + {0x1D74, 0x1D75, 0x1E12}, {0x1D74, 0x1D75, 0x1E12}, + {0x1D76, 0x1D77, 0x1E14}, {0x1D76, 0x1D77, 0x1E14}, + {0x1D78, 0x1D79, 0x1E16}, {0x1D78, 0x1D79, 0x1E16}, + {0x1D7A, 0x1D7B, 0x1E18}, {0x1D7A, 0x1D7B, 0x1E18}, + {0x1D7C, 0x1D7D, 0x1E1A}, {0x1D7C, 0x1D7D, 0x1E1A}, + {0x1D7E, 0x1D7F, 0x1E1C}, {0x1D7E, 0x1D7F, 0x1E1C}, + {0x1D80, 0x1D81, 0x1E1E}, {0x1D80, 0x1D81, 0x1E1E}, + {0x1D82, 0x1D83, 0x1E20}, {0x1D82, 0x1D83, 0x1E20}, + {0x1D84, 0x1D85, 0x1E22}, {0x1D84, 0x1D85, 0x1E22}, + {0x1D86, 0x1D87, 0x1E24}, {0x1D86, 0x1D87, 0x1E24}, + {0x1D88, 0x1D89, 0x1E26}, {0x1D88, 0x1D89, 0x1E26}, + {0x1D8A, 0x1D8B, 0x1E28}, {0x1D8A, 0x1D8B, 0x1E28}, + {0x1D8C, 0x1D8D, 0x1E2A}, {0x1D8C, 0x1D8D, 0x1E2A}, + {0x1D8E, 0x1D8F, 0x1E2C}, {0x1D8E, 0x1D8F, 0x1E2C}, + {0x1D90, 0x1D91, 0x1E2E}, {0x1D90, 0x1D91, 0x1E2E}, + {0x1D92, 0x1D93, 0x1E30}, {0x1D92, 0x1D93, 0x1E30}, + {0x1D94, 0x1D95, 0x1E32}, {0x1D94, 0x1D95, 0x1E32}, + {0x1D96, 0x1D97, 0x1E34}, {0x1D96, 0x1D97, 0x1E34}, + {0x1D98, 0x1D99, 0x1E36}, {0x1D98, 0x1D99, 0x1E36}, + {0x1D9A, 0x1D9B, 0x1E38}, {0x1D9A, 0x1D9B, 0x1E38}, + {0x1D9C, 0x1D9D, 0x1E3A}, {0x1D9C, 0x1D9D, 0x1E3A}, + {0x1D9E, 0x1D9F, 0x1E3C}, {0x1D9E, 0x1D9F, 0x1E3C}, + {0x1DA0, 0xA8BC, 0x1E3E}, {0x1DA1, 0x1DA1, 0xE7C7}, + {0x1DA2, 0x1DA3, 0x1E40}, {0x1DA2, 0x1DA3, 0x1E40}, + {0x1DA4, 0x1DA5, 0x1E42}, {0x1DA4, 0x1DA5, 0x1E42}, + {0x1DA6, 0x1DA7, 0x1E44}, {0x1DA6, 0x1DA7, 0x1E44}, + {0x1DA8, 0x1DA9, 0x1E46}, {0x1DA8, 0x1DA9, 0x1E46}, + {0x1DAA, 0x1DAB, 0x1E48}, {0x1DAA, 0x1DAB, 0x1E48}, + {0x1DAC, 0x1DAD, 0x1E4A}, {0x1DAC, 0x1DAD, 0x1E4A}, + {0x1DAE, 0x1DAF, 0x1E4C}, {0x1DAE, 0x1DAF, 0x1E4C}, + {0x1DB0, 0x1DB1, 0x1E4E}, {0x1DB0, 0x1DB1, 0x1E4E}, + {0x1DB2, 0x1DB3, 0x1E50}, {0x1DB2, 0x1DB3, 0x1E50}, + {0x1DB4, 0x1DB5, 0x1E52}, {0x1DB4, 0x1DB5, 0x1E52}, + {0x1DB6, 0x1DB7, 0x1E54}, {0x1DB6, 0x1DB7, 0x1E54}, + {0x1DB8, 0x1DB9, 0x1E56}, {0x1DB8, 0x1DB9, 0x1E56}, + {0x1DBA, 0x1DBB, 0x1E58}, {0x1DBA, 0x1DBB, 0x1E58}, + {0x1DBC, 0x1DBD, 0x1E5A}, {0x1DBC, 0x1DBD, 0x1E5A}, + {0x1DBE, 0x1DBF, 0x1E5C}, {0x1DBE, 0x1DBF, 0x1E5C}, + {0x1DC0, 0x1DC1, 0x1E5E}, {0x1DC0, 0x1DC1, 0x1E5E}, + {0x1DC2, 0x1DC3, 0x1E60}, {0x1DC2, 0x1DC3, 0x1E60}, + {0x1DC4, 0x1DC5, 0x1E62}, {0x1DC4, 0x1DC5, 0x1E62}, + {0x1DC6, 0x1DC7, 0x1E64}, {0x1DC6, 0x1DC7, 0x1E64}, + {0x1DC8, 0x1DC9, 0x1E66}, {0x1DC8, 0x1DC9, 0x1E66}, + {0x1DCA, 0x1DCB, 0x1E68}, {0x1DCA, 0x1DCB, 0x1E68}, + {0x1DCC, 0x1DCD, 0x1E6A}, {0x1DCC, 0x1DCD, 0x1E6A}, + {0x1DCE, 0x1DCF, 0x1E6C}, {0x1DCE, 0x1DCF, 0x1E6C}, + {0x1DD0, 0x1DD1, 0x1E6E}, {0x1DD0, 0x1DD1, 0x1E6E}, + {0x1DD2, 0x1DD3, 0x1E70}, {0x1DD2, 0x1DD3, 0x1E70}, + {0x1DD4, 0x1DD5, 0x1E72}, {0x1DD4, 0x1DD5, 0x1E72}, + {0x1DD6, 0x1DD7, 0x1E74}, {0x1DD6, 0x1DD7, 0x1E74}, + {0x1DD8, 0x1DD9, 0x1E76}, {0x1DD8, 0x1DD9, 0x1E76}, + {0x1DDA, 0x1DDB, 0x1E78}, {0x1DDA, 0x1DDB, 0x1E78}, + {0x1DDC, 0x1DDD, 0x1E7A}, {0x1DDC, 0x1DDD, 0x1E7A}, + {0x1DDE, 0x1DDF, 0x1E7C}, {0x1DDE, 0x1DDF, 0x1E7C}, + {0x1DE0, 0x1DE1, 0x1E7E}, {0x1DE0, 0x1DE1, 0x1E7E}, + {0x1DE2, 0x1DE3, 0x1E80}, {0x1DE2, 0x1DE3, 0x1E80}, + {0x1DE4, 0x1DE5, 0x1E82}, {0x1DE4, 0x1DE5, 0x1E82}, + {0x1DE6, 0x1DE7, 0x1E84}, {0x1DE6, 0x1DE7, 0x1E84}, + {0x1DE8, 0x1DE9, 0x1E86}, {0x1DE8, 0x1DE9, 0x1E86}, + {0x1DEA, 0x1DEB, 0x1E88}, {0x1DEA, 0x1DEB, 0x1E88}, + {0x1DEC, 0x1DED, 0x1E8A}, {0x1DEC, 0x1DED, 0x1E8A}, + {0x1DEE, 0x1DEF, 0x1E8C}, {0x1DEE, 0x1DEF, 0x1E8C}, + {0x1DF0, 0x1DF1, 0x1E8E}, {0x1DF0, 0x1DF1, 0x1E8E}, + {0x1DF2, 0x1DF3, 0x1E90}, {0x1DF2, 0x1DF3, 0x1E90}, + {0x1DF4, 0x1DF5, 0x1E92}, {0x1DF4, 0x1DF5, 0x1E92}, + {0x1DF6, 0x1DF7, 0x1E94}, {0x1DF6, 0x1DF7, 0x1E94}, + {0x1DF8, 0x1DF8, 0x1E96}, {0x1DF9, 0x1DF9, 0x1E97}, + {0x1DFA, 0x1DFA, 0x1E98}, {0x1DFB, 0x1DFB, 0x1E99}, + {0x1DFC, 0x1DFC, 0x1E9A}, {0x1DFD, 0x1DC3, 0x1E9B}, + {0x1DFE, 0x1DFE, 0x1E9C}, {0x1DFF, 0x1DFF, 0x1E9D} +}; + +/** + Unicase array for 0x1E00-0x1EFF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane1E[]= +{ + {0x1E00, 0x00D8, 0x1E9E}, {0x1E01, 0x1E01, 0x1E9F}, + {0x1E02, 0x1E03, 0x1EA0}, {0x1E02, 0x1E03, 0x1EA0}, + {0x1E04, 0x1E05, 0x1EA2}, {0x1E04, 0x1E05, 0x1EA2}, + {0x1E06, 0x1E07, 0x1EA4}, {0x1E06, 0x1E07, 0x1EA4}, + {0x1E08, 0x1E09, 0x1EA6}, {0x1E08, 0x1E09, 0x1EA6}, + {0x1E0A, 0x1E0B, 0x1EA8}, {0x1E0A, 0x1E0B, 0x1EA8}, + {0x1E0C, 0x1E0D, 0x1EAA}, {0x1E0C, 0x1E0D, 0x1EAA}, + {0x1E0E, 0x1E0F, 0x1EAC}, {0x1E0E, 0x1E0F, 0x1EAC}, + {0x1E10, 0x1E11, 0x1EAE}, {0x1E10, 0x1E11, 0x1EAE}, + {0x1E12, 0x1E13, 0x1EB0}, {0x1E12, 0x1E13, 0x1EB0}, + {0x1E14, 0x1E15, 0x1EB2}, {0x1E14, 0x1E15, 0x1EB2}, + {0x1E16, 0x1E17, 0x1EB4}, {0x1E16, 0x1E17, 0x1EB4}, + {0x1E18, 0x1E19, 0x1EB6}, {0x1E18, 0x1E19, 0x1EB6}, + {0x1E1A, 0x1E1B, 0x1EB8}, {0x1E1A, 0x1E1B, 0x1EB8}, + {0x1E1C, 0x1E1D, 0x1EBA}, {0x1E1C, 0x1E1D, 0x1EBA}, + {0x1E1E, 0x1E1F, 0x1EBC}, {0x1E1E, 0x1E1F, 0x1EBC}, + {0x1E20, 0x1E21, 0x1EBE}, {0x1E20, 0x1E21, 0x1EBE}, + {0x1E22, 0x1E23, 0x1EC0}, {0x1E22, 0x1E23, 0x1EC0}, + {0x1E24, 0x1E25, 0x1EC2}, {0x1E24, 0x1E25, 0x1EC2}, + {0x1E26, 0x1E27, 0x1EC4}, {0x1E26, 0x1E27, 0x1EC4}, + {0x1E28, 0x1E29, 0x1EC6}, {0x1E28, 0x1E29, 0x1EC6}, + {0x1E2A, 0x1E2B, 0x1EC8}, {0x1E2A, 0x1E2B, 0x1EC8}, + {0x1E2C, 0x1E2D, 0x1ECA}, {0x1E2C, 0x1E2D, 0x1ECA}, + {0x1E2E, 0x1E2F, 0x1ECC}, {0x1E2E, 0x1E2F, 0x1ECC}, + {0x1E30, 0x1E31, 0x1ECE}, {0x1E30, 0x1E31, 0x1ECE}, + {0x1E32, 0x1E33, 0x1ED0}, {0x1E32, 0x1E33, 0x1ED0}, + {0x1E34, 0x1E35, 0x1ED2}, {0x1E34, 0x1E35, 0x1ED2}, + {0x1E36, 0x1E37, 0x1ED4}, {0x1E36, 0x1E37, 0x1ED4}, + {0x1E38, 0x1E39, 0x1ED6}, {0x1E38, 0x1E39, 0x1ED6}, + {0x1E3A, 0x1E3B, 0x1ED8}, {0x1E3A, 0x1E3B, 0x1ED8}, + {0x1E3C, 0x1E3D, 0x1EDA}, {0x1E3C, 0x1E3D, 0x1EDA}, + {0x1E3E, 0x1E3F, 0x1EDC}, {0x1E3E, 0x1E3F, 0x1EDC}, + {0x1E40, 0x1E41, 0x1EDE}, {0x1E40, 0x1E41, 0x1EDE}, + {0x1E42, 0x1E43, 0x1EE0}, {0x1E42, 0x1E43, 0x1EE0}, + {0x1E44, 0x1E45, 0x1EE2}, {0x1E44, 0x1E45, 0x1EE2}, + {0x1E46, 0x1E47, 0x1EE4}, {0x1E46, 0x1E47, 0x1EE4}, + {0x1E48, 0x1E49, 0x1EE6}, {0x1E48, 0x1E49, 0x1EE6}, + {0x1E4A, 0x1E4B, 0x1EE8}, {0x1E4A, 0x1E4B, 0x1EE8}, + {0x1E4C, 0x1E4D, 0x1EEA}, {0x1E4C, 0x1E4D, 0x1EEA}, + {0x1E4E, 0x1E4F, 0x1EEC}, {0x1E4E, 0x1E4F, 0x1EEC}, + {0x1E50, 0x1E51, 0x1EEE}, {0x1E50, 0x1E51, 0x1EEE}, + {0x1E52, 0x1E53, 0x1EF0}, {0x1E52, 0x1E53, 0x1EF0}, + {0x1E54, 0x1E55, 0x1EF2}, {0x1E54, 0x1E55, 0x1EF2}, + {0x1E56, 0x1E57, 0x1EF4}, {0x1E56, 0x1E57, 0x1EF4}, + {0x1E58, 0x1E59, 0x1EF6}, {0x1E58, 0x1E59, 0x1EF6}, + {0x1E5A, 0x1E5B, 0x1EF8}, {0x1E5A, 0x1E5B, 0x1EF8}, + {0x1E5C, 0x1E5D, 0x1EFA}, {0x1E5C, 0x1E5D, 0x1EFA}, + {0x1E5E, 0x1E5F, 0x1EFC}, {0x1E5E, 0x1E5F, 0x1EFC}, + {0x1E60, 0x1E61, 0x1EFE}, {0x1E60, 0x1E61, 0x1EFE}, + {0x1E6A, 0x1E62, 0x1F08}, {0x1E6B, 0x1E63, 0x1F09}, + {0x1E6C, 0x1E64, 0x1F0A}, {0x1E6D, 0x1E65, 0x1F0B}, + {0x1E6E, 0x1E66, 0x1F0C}, {0x1E6F, 0x1E67, 0x1F0D}, + {0x1E70, 0x1E68, 0x1F0E}, {0x1E71, 0x1E69, 0x1F0F}, + {0x1E6A, 0x1E62, 0x1F08}, {0x1E6B, 0x1E63, 0x1F09}, + {0x1E6C, 0x1E64, 0x1F0A}, {0x1E6D, 0x1E65, 0x1F0B}, + {0x1E6E, 0x1E66, 0x1F0C}, {0x1E6F, 0x1E67, 0x1F0D}, + {0x1E70, 0x1E68, 0x1F0E}, {0x1E71, 0x1E69, 0x1F0F}, + {0x1E7A, 0x1E72, 0x1F18}, {0x1E7B, 0x1E73, 0x1F19}, + {0x1E7C, 0x1E74, 0x1F1A}, {0x1E7D, 0x1E75, 0x1F1B}, + {0x1E7E, 0x1E76, 0x1F1C}, {0x1E7F, 0x1E77, 0x1F1D}, + {0x1E78, 0x1E78, 0x1F16}, {0x1E79, 0x1E79, 0x1F17}, + {0x1E7A, 0x1E72, 0x1F18}, {0x1E7B, 0x1E73, 0x1F19}, + {0x1E7C, 0x1E74, 0x1F1A}, {0x1E7D, 0x1E75, 0x1F1B}, + {0x1E7E, 0x1E76, 0x1F1C}, {0x1E7F, 0x1E77, 0x1F1D}, + {0x1E80, 0x1E80, 0x1F1E}, {0x1E81, 0x1E81, 0x1F1F}, + {0x1E8A, 0x1E82, 0x1F28}, {0x1E8B, 0x1E83, 0x1F29}, + {0x1E8C, 0x1E84, 0x1F2A}, {0x1E8D, 0x1E85, 0x1F2B}, + {0x1E8E, 0x1E86, 0x1F2C}, {0x1E8F, 0x1E87, 0x1F2D}, + {0x1E90, 0x1E88, 0x1F2E}, {0x1E91, 0x1E89, 0x1F2F}, + {0x1E8A, 0x1E82, 0x1F28}, {0x1E8B, 0x1E83, 0x1F29}, + {0x1E8C, 0x1E84, 0x1F2A}, {0x1E8D, 0x1E85, 0x1F2B}, + {0x1E8E, 0x1E86, 0x1F2C}, {0x1E8F, 0x1E87, 0x1F2D}, + {0x1E90, 0x1E88, 0x1F2E}, {0x1E91, 0x1E89, 0x1F2F}, + {0x1E9A, 0x1E92, 0x1F38}, {0x1E9B, 0x1E93, 0x1F39}, + {0x1E9C, 0x1E94, 0x1F3A}, {0x1E9D, 0x1E95, 0x1F3B}, + {0x1E9E, 0x1E96, 0x1F3C}, {0x1E9F, 0x1E97, 0x1F3D}, + {0x1EA0, 0x1E98, 0x1F3E}, {0x1EA1, 0x1E99, 0x1F3F}, + {0x1E9A, 0x1E92, 0x1F38}, {0x1E9B, 0x1E93, 0x1F39}, + {0x1E9C, 0x1E94, 0x1F3A}, {0x1E9D, 0x1E95, 0x1F3B}, + {0x1E9E, 0x1E96, 0x1F3C}, {0x1E9F, 0x1E97, 0x1F3D}, + {0x1EA0, 0x1E98, 0x1F3E}, {0x1EA1, 0x1E99, 0x1F3F}, + {0x1EAA, 0x1EA2, 0x1F48}, {0x1EAB, 0x1EA3, 0x1F49}, + {0x1EAC, 0x1EA4, 0x1F4A}, {0x1EAD, 0x1EA5, 0x1F4B}, + {0x1EAE, 0x1EA6, 0x1F4C}, {0x1EAF, 0x1EA7, 0x1F4D}, + {0x1EA8, 0x1EA8, 0x1F46}, {0x1EA9, 0x1EA9, 0x1F47}, + {0x1EAA, 0x1EA2, 0x1F48}, {0x1EAB, 0x1EA3, 0x1F49}, + {0x1EAC, 0x1EA4, 0x1F4A}, {0x1EAD, 0x1EA5, 0x1F4B}, + {0x1EAE, 0x1EA6, 0x1F4C}, {0x1EAF, 0x1EA7, 0x1F4D}, + {0x1EB0, 0x1EB0, 0x1F4E}, {0x1EB1, 0x1EB1, 0x1F4F}, + {0x1EB2, 0x1EB2, 0x1F50}, {0x1EBB, 0x1EB3, 0x1F59}, + {0x1EB4, 0x1EB4, 0x1F52}, {0x1EBD, 0x1EB5, 0x1F5B}, + {0x1EB6, 0x1EB6, 0x1F54}, {0x1EBF, 0x1EB7, 0x1F5D}, + {0x1EB8, 0x1EB8, 0x1F56}, {0x1EC1, 0x1EB9, 0x1F5F}, + {0x1EBA, 0x1EBA, 0x1F58}, {0x1EBB, 0x1EB3, 0x1F59}, + {0x1EBC, 0x1EBC, 0x1F5A}, {0x1EBD, 0x1EB5, 0x1F5B}, + {0x1EBE, 0x1EBE, 0x1F5C}, {0x1EBF, 0x1EB7, 0x1F5D}, + {0x1EC0, 0x1EC0, 0x1F5E}, {0x1EC1, 0x1EB9, 0x1F5F}, + {0x1ECA, 0x1EC2, 0x1F68}, {0x1ECB, 0x1EC3, 0x1F69}, + {0x1ECC, 0x1EC4, 0x1F6A}, {0x1ECD, 0x1EC5, 0x1F6B}, + {0x1ECE, 0x1EC6, 0x1F6C}, {0x1ECF, 0x1EC7, 0x1F6D}, + {0x1ED0, 0x1EC8, 0x1F6E}, {0x1ED1, 0x1EC9, 0x1F6F}, + {0x1ECA, 0x1EC2, 0x1F68}, {0x1ECB, 0x1EC3, 0x1F69}, + {0x1ECC, 0x1EC4, 0x1F6A}, {0x1ECD, 0x1EC5, 0x1F6B}, + {0x1ECE, 0x1EC6, 0x1F6C}, {0x1ECF, 0x1EC7, 0x1F6D}, + {0x1ED0, 0x1EC8, 0x1F6E}, {0x1ED1, 0x1EC9, 0x1F6F}, + {0x1F1C, 0x1ED2, 0x1FBA}, {0x1F1D, 0x1ED3, 0x1FBB}, + {0x1F2A, 0x1ED4, 0x1FC8}, {0x1F2B, 0x1ED5, 0x1FC9}, + {0x1F2C, 0x1ED6, 0x1FCA}, {0x1F2D, 0x1ED7, 0x1FCB}, + {0x1F3C, 0x1ED8, 0x1FDA}, {0x1F3D, 0x1ED9, 0x1FDB}, + {0x1F5A, 0x1EDA, 0x1FF8}, {0x1F5B, 0x1EDB, 0x1FF9}, + {0x1F4C, 0x1EDC, 0x1FEA}, {0x1F4D, 0x1EDD, 0x1FEB}, + {0x1F5C, 0x1EDE, 0x1FFA}, {0x1F5D, 0x1EDF, 0x1FFB}, + {0x1EE0, 0x1EE0, 0x1F7E}, {0x1EE1, 0x1EE1, 0x1F7F}, + {0x1EEA, 0x1EE2, 0x1F88}, {0x1EEB, 0x1EE3, 0x1F89}, + {0x1EEC, 0x1EE4, 0x1F8A}, {0x1EED, 0x1EE5, 0x1F8B}, + {0x1EEE, 0x1EE6, 0x1F8C}, {0x1EEF, 0x1EE7, 0x1F8D}, + {0x1EF0, 0x1EE8, 0x1F8E}, {0x1EF1, 0x1EE9, 0x1F8F}, + {0x1EEA, 0x1EE2, 0x1F88}, {0x1EEB, 0x1EE3, 0x1F89}, + {0x1EEC, 0x1EE4, 0x1F8A}, {0x1EED, 0x1EE5, 0x1F8B}, + {0x1EEE, 0x1EE6, 0x1F8C}, {0x1EEF, 0x1EE7, 0x1F8D}, + {0x1EF0, 0x1EE8, 0x1F8E}, {0x1EF1, 0x1EE9, 0x1F8F}, + {0x1EFA, 0x1EF2, 0x1F98}, {0x1EFB, 0x1EF3, 0x1F99}, + {0x1EFC, 0x1EF4, 0x1F9A}, {0x1EFD, 0x1EF5, 0x1F9B}, + {0x1EFE, 0x1EF6, 0x1F9C}, {0x1EFF, 0x1EF7, 0x1F9D}, + {0x1F00, 0x1EF8, 0x1F9E}, {0x1F01, 0x1EF9, 0x1F9F}, + {0x1EFA, 0x1EF2, 0x1F98}, {0x1EFB, 0x1EF3, 0x1F99}, + {0x1EFC, 0x1EF4, 0x1F9A}, {0x1EFD, 0x1EF5, 0x1F9B}, + {0x1EFE, 0x1EF6, 0x1F9C}, {0x1EFF, 0x1EF7, 0x1F9D} +}; + +/** + Unicase array for 0x1F00-0x1FFF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane1F[]= +{ + {0x1F00, 0x1EF8, 0x1F9E}, {0x1F01, 0x1EF9, 0x1F9F}, + {0x1F0A, 0x1F02, 0x1FA8}, {0x1F0B, 0x1F03, 0x1FA9}, + {0x1F0C, 0x1F04, 0x1FAA}, {0x1F0D, 0x1F05, 0x1FAB}, + {0x1F0E, 0x1F06, 0x1FAC}, {0x1F0F, 0x1F07, 0x1FAD}, + {0x1F10, 0x1F08, 0x1FAE}, {0x1F11, 0x1F09, 0x1FAF}, + {0x1F0A, 0x1F02, 0x1FA8}, {0x1F0B, 0x1F03, 0x1FA9}, + {0x1F0C, 0x1F04, 0x1FAA}, {0x1F0D, 0x1F05, 0x1FAB}, + {0x1F0E, 0x1F06, 0x1FAC}, {0x1F0F, 0x1F07, 0x1FAD}, + {0x1F10, 0x1F08, 0x1FAE}, {0x1F11, 0x1F09, 0x1FAF}, + {0x1F1A, 0x1F12, 0x1FB8}, {0x1F1B, 0x1F13, 0x1FB9}, + {0x1F14, 0x1F14, 0x1FB2}, {0x1F1E, 0x1F15, 0x1FBC}, + {0x1F16, 0x1F16, 0x1FB4}, {0x1F17, 0x1F17, 0x1FB5}, + {0x1F18, 0x1F18, 0x1FB6}, {0x1F19, 0x1F19, 0x1FB7}, + {0x1F1A, 0x1F12, 0x1FB8}, {0x1F1B, 0x1F13, 0x1FB9}, + {0x1F1C, 0x1ED2, 0x1FBA}, {0x1F1D, 0x1ED3, 0x1FBB}, + {0x1F1E, 0x1F15, 0x1FBC}, {0x1F1F, 0x1F1F, 0x1FBD}, + {0x1F20, 0xA6C9, 0x1FBE}, {0x1F21, 0x1F21, 0x1FBF}, + {0x1F22, 0x1F22, 0x1FC0}, {0x1F23, 0x1F23, 0x1FC1}, + {0x1F24, 0x1F24, 0x1FC2}, {0x1F2E, 0x1F25, 0x1FCC}, + {0x1F26, 0x1F26, 0x1FC4}, {0x1F27, 0x1F27, 0x1FC5}, + {0x1F28, 0x1F28, 0x1FC6}, {0x1F29, 0x1F29, 0x1FC7}, + {0x1F2A, 0x1ED4, 0x1FC8}, {0x1F2B, 0x1ED5, 0x1FC9}, + {0x1F2C, 0x1ED6, 0x1FCA}, {0x1F2D, 0x1ED7, 0x1FCB}, + {0x1F2E, 0x1F25, 0x1FCC}, {0x1F2F, 0x1F2F, 0x1FCD}, + {0x1F30, 0x1F30, 0x1FCE}, {0x1F31, 0x1F31, 0x1FCF}, + {0x1F3A, 0x1F32, 0x1FD8}, {0x1F3B, 0x1F33, 0x1FD9}, + {0x1F34, 0x1F34, 0x1FD2}, {0x1F35, 0x1F35, 0x1FD3}, + {0x1F36, 0x1F36, 0x1FD4}, {0x1F37, 0x1F37, 0x1FD5}, + {0x1F38, 0x1F38, 0x1FD6}, {0x1F39, 0x1F39, 0x1FD7}, + {0x1F3A, 0x1F32, 0x1FD8}, {0x1F3B, 0x1F33, 0x1FD9}, + {0x1F3C, 0x1ED8, 0x1FDA}, {0x1F3D, 0x1ED9, 0x1FDB}, + {0x1F3E, 0x1F3E, 0x1FDC}, {0x1F3F, 0x1F3F, 0x1FDD}, + {0x1F40, 0x1F40, 0x1FDE}, {0x1F41, 0x1F41, 0x1FDF}, + {0x1F4A, 0x1F42, 0x1FE8}, {0x1F4B, 0x1F43, 0x1FE9}, + {0x1F44, 0x1F44, 0x1FE2}, {0x1F45, 0x1F45, 0x1FE3}, + {0x1F46, 0x1F46, 0x1FE4}, {0x1F4E, 0x1F47, 0x1FEC}, + {0x1F48, 0x1F48, 0x1FE6}, {0x1F49, 0x1F49, 0x1FE7}, + {0x1F4A, 0x1F42, 0x1FE8}, {0x1F4B, 0x1F43, 0x1FE9}, + {0x1F4C, 0x1EDC, 0x1FEA}, {0x1F4D, 0x1EDD, 0x1FEB}, + {0x1F4E, 0x1F47, 0x1FEC}, {0x1F4F, 0x1F4F, 0x1FED}, + {0x1F50, 0x1F50, 0x1FEE}, {0x1F51, 0x1F51, 0x1FEF}, + {0x1F52, 0x1F52, 0x1FF0}, {0x1F53, 0x1F53, 0x1FF1}, + {0x1F54, 0x1F54, 0x1FF2}, {0x1F5E, 0x1F55, 0x1FFC}, + {0x1F56, 0x1F56, 0x1FF4}, {0x1F57, 0x1F57, 0x1FF5}, + {0x1F58, 0x1F58, 0x1FF6}, {0x1F59, 0x1F59, 0x1FF7}, + {0x1F5A, 0x1EDA, 0x1FF8}, {0x1F5B, 0x1EDB, 0x1FF9}, + {0x1F5C, 0x1EDE, 0x1FFA}, {0x1F5D, 0x1EDF, 0x1FFB}, + {0x1F5E, 0x1F55, 0x1FFC}, {0x1F5F, 0x1F5F, 0x1FFD}, + {0x1F60, 0x1F60, 0x1FFE}, {0x1F61, 0x1F61, 0x1FFF}, + {0x1F62, 0x1F62, 0x2000}, {0x1F63, 0x1F63, 0x2001}, + {0x1F64, 0x1F64, 0x2002}, {0x1F65, 0x1F65, 0x2003}, + {0x1F66, 0x1F66, 0x2004}, {0x1F67, 0x1F67, 0x2005}, + {0x1F68, 0x1F68, 0x2006}, {0x1F69, 0x1F69, 0x2007}, + {0x1F6A, 0x1F6A, 0x2008}, {0x1F6B, 0x1F6B, 0x2009}, + {0x1F6C, 0x1F6C, 0x200A}, {0x1F6D, 0x1F6D, 0x200B}, + {0x1F6E, 0x1F6E, 0x200C}, {0x1F6F, 0x1F6F, 0x200D}, + {0x1F70, 0x1F70, 0x200E}, {0x1F71, 0x1F71, 0x200F}, + {0x1F72, 0x1F72, 0x2011}, {0x1F73, 0x1F73, 0x2012}, + {0x1F74, 0x1F74, 0x2017}, {0x1F75, 0x1F75, 0x201A}, + {0x1F76, 0x1F76, 0x201B}, {0x1F77, 0x1F77, 0x201E}, + {0x1F78, 0x1F78, 0x201F}, {0x1F79, 0x1F79, 0x2020}, + {0x1F7A, 0x1F7A, 0x2021}, {0x1F7B, 0x1F7B, 0x2022}, + {0x1F7C, 0x1F7C, 0x2023}, {0x1F7D, 0x1F7D, 0x2024}, + {0x1F7E, 0x1F7E, 0x2027}, {0x1F7F, 0x1F7F, 0x2028}, + {0x1F80, 0x1F80, 0x2029}, {0x1F81, 0x1F81, 0x202A}, + {0x1F82, 0x1F82, 0x202B}, {0x1F83, 0x1F83, 0x202C}, + {0x1F84, 0x1F84, 0x202D}, {0x1F85, 0x1F85, 0x202E}, + {0x1F86, 0x1F86, 0x202F}, {0x1F87, 0x1F87, 0x2031}, + {0x1F88, 0x1F88, 0x2034}, {0x1F89, 0x1F89, 0x2036}, + {0x1F8A, 0x1F8A, 0x2037}, {0x1F8B, 0x1F8B, 0x2038}, + {0x1F8C, 0x1F8C, 0x2039}, {0x1F8D, 0x1F8D, 0x203A}, + {0x1F8E, 0x1F8E, 0x203C}, {0x1F8F, 0x1F8F, 0x203D}, + {0x1F90, 0x1F90, 0x203E}, {0x1F91, 0x1F91, 0x203F}, + {0x1F92, 0x1F92, 0x2040}, {0x1F93, 0x1F93, 0x2041}, + {0x1F94, 0x1F94, 0x2042}, {0x1F95, 0x1F95, 0x2043}, + {0x1F96, 0x1F96, 0x2044}, {0x1F97, 0x1F97, 0x2045}, + {0x1F98, 0x1F98, 0x2046}, {0x1F99, 0x1F99, 0x2047}, + {0x1F9A, 0x1F9A, 0x2048}, {0x1F9B, 0x1F9B, 0x2049}, + {0x1F9C, 0x1F9C, 0x204A}, {0x1F9D, 0x1F9D, 0x204B}, + {0x1F9E, 0x1F9E, 0x204C}, {0x1F9F, 0x1F9F, 0x204D}, + {0x1FA0, 0x1FA0, 0x204E}, {0x1FA1, 0x1FA1, 0x204F}, + {0x1FA2, 0x1FA2, 0x2050}, {0x1FA3, 0x1FA3, 0x2051}, + {0x1FA4, 0x1FA4, 0x2052}, {0x1FA5, 0x1FA5, 0x2053}, + {0x1FA6, 0x1FA6, 0x2054}, {0x1FA7, 0x1FA7, 0x2055}, + {0x1FA8, 0x1FA8, 0x2056}, {0x1FA9, 0x1FA9, 0x2057}, + {0x1FAA, 0x1FAA, 0x2058}, {0x1FAB, 0x1FAB, 0x2059}, + {0x1FAC, 0x1FAC, 0x205A}, {0x1FAD, 0x1FAD, 0x205B}, + {0x1FAE, 0x1FAE, 0x205C}, {0x1FAF, 0x1FAF, 0x205D}, + {0x1FB0, 0x1FB0, 0x205E}, {0x1FB1, 0x1FB1, 0x205F}, + {0x1FB2, 0x1FB2, 0x2060}, {0x1FB3, 0x1FB3, 0x2061}, + {0x1FB4, 0x1FB4, 0x2062}, {0x1FB5, 0x1FB5, 0x2063}, + {0x1FB6, 0x1FB6, 0x2064}, {0x1FB7, 0x1FB7, 0x2065}, + {0x1FB8, 0x1FB8, 0x2066}, {0x1FB9, 0x1FB9, 0x2067}, + {0x1FBA, 0x1FBA, 0x2068}, {0x1FBB, 0x1FBB, 0x2069}, + {0x1FBC, 0x1FBC, 0x206A}, {0x1FBD, 0x1FBD, 0x206B}, + {0x1FBE, 0x1FBE, 0x206C}, {0x1FBF, 0x1FBF, 0x206D}, + {0x1FC0, 0x1FC0, 0x206E}, {0x1FC1, 0x1FC1, 0x206F}, + {0x1FC2, 0x1FC2, 0x2070}, {0x1FC3, 0x1FC3, 0x2071}, + {0x1FC4, 0x1FC4, 0x2072}, {0x1FC5, 0x1FC5, 0x2073}, + {0x1FC6, 0x1FC6, 0x2074}, {0x1FC7, 0x1FC7, 0x2075}, + {0x1FC8, 0x1FC8, 0x2076}, {0x1FC9, 0x1FC9, 0x2077}, + {0x1FCA, 0x1FCA, 0x2078}, {0x1FCB, 0x1FCB, 0x2079}, + {0x1FCC, 0x1FCC, 0x207A}, {0x1FCD, 0x1FCD, 0x207B}, + {0x1FCE, 0x1FCE, 0x207C}, {0x1FCF, 0x1FCF, 0x207D}, + {0x1FD0, 0x1FD0, 0x207E}, {0x1FD1, 0x1FD1, 0x207F}, + {0x1FD2, 0x1FD2, 0x2080}, {0x1FD3, 0x1FD3, 0x2081}, + {0x1FD4, 0x1FD4, 0x2082}, {0x1FD5, 0x1FD5, 0x2083}, + {0x1FD6, 0x1FD6, 0x2084}, {0x1FD7, 0x1FD7, 0x2085}, + {0x1FD8, 0x1FD8, 0x2086}, {0x1FD9, 0x1FD9, 0x2087}, + {0x1FDA, 0x1FDA, 0x2088}, {0x1FDB, 0x1FDB, 0x2089}, + {0x1FDC, 0x1FDC, 0x208A}, {0x1FDD, 0x1FDD, 0x208B}, + {0x1FDE, 0x1FDE, 0x208C}, {0x1FDF, 0x1FDF, 0x208D}, + {0x1FE0, 0x1FE0, 0x208E}, {0x1FE1, 0x1FE1, 0x208F}, + {0x1FE2, 0x1FE2, 0x2090}, {0x1FE3, 0x1FE3, 0x2091}, + {0x1FE4, 0x1FE4, 0x2092}, {0x1FE5, 0x1FE5, 0x2093}, + {0x1FE6, 0x1FE6, 0x2094}, {0x1FE7, 0x1FE7, 0x2095}, + {0x1FE8, 0x1FE8, 0x2096}, {0x1FE9, 0x1FE9, 0x2097}, + {0x1FEA, 0x1FEA, 0x2098}, {0x1FEB, 0x1FEB, 0x2099}, + {0x1FEC, 0x1FEC, 0x209A}, {0x1FED, 0x1FED, 0x209B}, + {0x1FEE, 0x1FEE, 0x209C}, {0x1FEF, 0x1FEF, 0x209D}, + {0x1FF0, 0x1FF0, 0x209E}, {0x1FF1, 0x1FF1, 0x209F}, + {0x1FF2, 0x1FF2, 0x20A0}, {0x1FF3, 0x1FF3, 0x20A1}, + {0x1FF4, 0x1FF4, 0x20A2}, {0x1FF5, 0x1FF5, 0x20A3}, + {0x1FF6, 0x1FF6, 0x20A4}, {0x1FF7, 0x1FF7, 0x20A5}, + {0x1FF8, 0x1FF8, 0x20A6}, {0x1FF9, 0x1FF9, 0x20A7}, + {0x1FFA, 0x1FFA, 0x20A8}, {0x1FFB, 0x1FFB, 0x20A9}, + {0x1FFC, 0x1FFC, 0x20AA}, {0x1FFD, 0x1FFD, 0x20AB}, + {0x1FFE, 0x1FFE, 0x20AD}, {0x1FFF, 0x1FFF, 0x20AE} +}; + +/** + Unicase array for 0x2000-0x20FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane20[]= +{ + {0x2000, 0x2000, 0x20AF}, {0x2001, 0x2001, 0x20B0}, + {0x2002, 0x2002, 0x20B1}, {0x2003, 0x2003, 0x20B2}, + {0x2004, 0x2004, 0x20B3}, {0x2005, 0x2005, 0x20B4}, + {0x2006, 0x2006, 0x20B5}, {0x2007, 0x2007, 0x20B6}, + {0x2008, 0x2008, 0x20B7}, {0x2009, 0x2009, 0x20B8}, + {0x200A, 0x200A, 0x20B9}, {0x200B, 0x200B, 0x20BA}, + {0x200C, 0x200C, 0x20BB}, {0x200D, 0x200D, 0x20BC}, + {0x200E, 0x200E, 0x20BD}, {0x200F, 0x200F, 0x20BE}, + {0x2010, 0x2010, 0x20BF}, {0x2011, 0x2011, 0x20C0}, + {0x2012, 0x2012, 0x20C1}, {0x2013, 0x2013, 0x20C2}, + {0x2014, 0x2014, 0x20C3}, {0x2015, 0x2015, 0x20C4}, + {0x2016, 0x2016, 0x20C5}, {0x2017, 0x2017, 0x20C6}, + {0x2018, 0x2018, 0x20C7}, {0x2019, 0x2019, 0x20C8}, + {0x201A, 0x201A, 0x20C9}, {0x201B, 0x201B, 0x20CA}, + {0x201C, 0x201C, 0x20CB}, {0x201D, 0x201D, 0x20CC}, + {0x201E, 0x201E, 0x20CD}, {0x201F, 0x201F, 0x20CE}, + {0x2020, 0x2020, 0x20CF}, {0x2021, 0x2021, 0x20D0}, + {0x2022, 0x2022, 0x20D1}, {0x2023, 0x2023, 0x20D2}, + {0x2024, 0x2024, 0x20D3}, {0x2025, 0x2025, 0x20D4}, + {0x2026, 0x2026, 0x20D5}, {0x2027, 0x2027, 0x20D6}, + {0x2028, 0x2028, 0x20D7}, {0x2029, 0x2029, 0x20D8}, + {0x202A, 0x202A, 0x20D9}, {0x202B, 0x202B, 0x20DA}, + {0x202C, 0x202C, 0x20DB}, {0x202D, 0x202D, 0x20DC}, + {0x202E, 0x202E, 0x20DD}, {0x202F, 0x202F, 0x20DE}, + {0x2030, 0x2030, 0x20DF}, {0x2031, 0x2031, 0x20E0}, + {0x2032, 0x2032, 0x20E1}, {0x2033, 0x2033, 0x20E2}, + {0x2034, 0x2034, 0x20E3}, {0x2035, 0x2035, 0x20E4}, + {0x2036, 0x2036, 0x20E5}, {0x2037, 0x2037, 0x20E6}, + {0x2038, 0x2038, 0x20E7}, {0x2039, 0x2039, 0x20E8}, + {0x203A, 0x203A, 0x20E9}, {0x203B, 0x203B, 0x20EA}, + {0x203C, 0x203C, 0x20EB}, {0x203D, 0x203D, 0x20EC}, + {0x203E, 0x203E, 0x20ED}, {0x203F, 0x203F, 0x20EE}, + {0x2040, 0x2040, 0x20EF}, {0x2041, 0x2041, 0x20F0}, + {0x2042, 0x2042, 0x20F1}, {0x2043, 0x2043, 0x20F2}, + {0x2044, 0x2044, 0x20F3}, {0x2045, 0x2045, 0x20F4}, + {0x2046, 0x2046, 0x20F5}, {0x2047, 0x2047, 0x20F6}, + {0x2048, 0x2048, 0x20F7}, {0x2049, 0x2049, 0x20F8}, + {0x204A, 0x204A, 0x20F9}, {0x204B, 0x204B, 0x20FA}, + {0x204C, 0x204C, 0x20FB}, {0x204D, 0x204D, 0x20FC}, + {0x204E, 0x204E, 0x20FD}, {0x204F, 0x204F, 0x20FE}, + {0x2050, 0x2050, 0x20FF}, {0x2051, 0x2051, 0x2100}, + {0x2052, 0x2052, 0x2101}, {0x2053, 0x2053, 0x2102}, + {0x2054, 0x2054, 0x2104}, {0x2055, 0x2055, 0x2106}, + {0x2056, 0x2056, 0x2107}, {0x2057, 0x2057, 0x2108}, + {0x2058, 0x2058, 0x210A}, {0x2059, 0x2059, 0x210B}, + {0x205A, 0x205A, 0x210C}, {0x205B, 0x205B, 0x210D}, + {0x205C, 0x205C, 0x210E}, {0x205D, 0x205D, 0x210F}, + {0x205E, 0x205E, 0x2110}, {0x205F, 0x205F, 0x2111}, + {0x2060, 0x2060, 0x2112}, {0x2061, 0x2061, 0x2113}, + {0x2062, 0x2062, 0x2114}, {0x2063, 0x2063, 0x2115}, + {0x2064, 0x2064, 0x2117}, {0x2065, 0x2065, 0x2118}, + {0x2066, 0x2066, 0x2119}, {0x2067, 0x2067, 0x211A}, + {0x2068, 0x2068, 0x211B}, {0x2069, 0x2069, 0x211C}, + {0x206A, 0x206A, 0x211D}, {0x206B, 0x206B, 0x211E}, + {0x206C, 0x206C, 0x211F}, {0x206D, 0x206D, 0x2120}, + {0x206E, 0x206E, 0x2122}, {0x206F, 0x206F, 0x2123}, + {0x2070, 0x2070, 0x2124}, {0x2071, 0x2071, 0x2125}, + {0x2072, 0xA6D8, 0x2126}, {0x2073, 0x2073, 0x2127}, + {0x2074, 0x2074, 0x2128}, {0x2075, 0x2075, 0x2129}, + {0x2076, 0x006B, 0x212A}, {0x2077, 0x00DC, 0x212B}, + {0x2078, 0x2078, 0x212C}, {0x2079, 0x2079, 0x212D}, + {0x207A, 0x207A, 0x212E}, {0x207B, 0x207B, 0x212F}, + {0x207C, 0x207C, 0x2130}, {0x207D, 0x207D, 0x2131}, + {0x207E, 0x209A, 0x2132}, {0x207F, 0x207F, 0x2133}, + {0x2080, 0x2080, 0x2134}, {0x2081, 0x2081, 0x2135}, + {0x2082, 0x2082, 0x2136}, {0x2083, 0x2083, 0x2137}, + {0x2084, 0x2084, 0x2138}, {0x2085, 0x2085, 0x2139}, + {0x2086, 0x2086, 0x213A}, {0x2087, 0x2087, 0x213B}, + {0x2088, 0x2088, 0x213C}, {0x2089, 0x2089, 0x213D}, + {0x208A, 0x208A, 0x213E}, {0x208B, 0x208B, 0x213F}, + {0x208C, 0x208C, 0x2140}, {0x208D, 0x208D, 0x2141}, + {0x208E, 0x208E, 0x2142}, {0x208F, 0x208F, 0x2143}, + {0x2090, 0x2090, 0x2144}, {0x2091, 0x2091, 0x2145}, + {0x2092, 0x2092, 0x2146}, {0x2093, 0x2093, 0x2147}, + {0x2094, 0x2094, 0x2148}, {0x2095, 0x2095, 0x2149}, + {0x2096, 0x2096, 0x214A}, {0x2097, 0x2097, 0x214B}, + {0x2098, 0x2098, 0x214C}, {0x2099, 0x2099, 0x214D}, + {0x207E, 0x209A, 0x2132}, {0x209B, 0x209B, 0x214F}, + {0x209C, 0x209C, 0x2150}, {0x209D, 0x209D, 0x2151}, + {0x209E, 0x209E, 0x2152}, {0x209F, 0x209F, 0x2153}, + {0x20A0, 0x20A0, 0x2154}, {0x20A1, 0x20A1, 0x2155}, + {0x20A2, 0x20A2, 0x2156}, {0x20A3, 0x20A3, 0x2157}, + {0x20A4, 0x20A4, 0x2158}, {0x20A5, 0x20A5, 0x2159}, + {0x20A6, 0x20A6, 0x215A}, {0x20A7, 0x20A7, 0x215B}, + {0x20A8, 0x20A8, 0x215C}, {0x20A9, 0x20A9, 0x215D}, + {0x20AA, 0x20AA, 0x215E}, {0x20AB, 0x20AB, 0x215F}, + {0x20AC, 0x20B2, 0x216C}, {0x20AD, 0x20B3, 0x216D}, + {0x20AE, 0x20B4, 0x216E}, {0x20AF, 0x20B5, 0x216F}, + {0xA2FB, 0x20B0, 0x216A}, {0xA2FC, 0x20B1, 0x216B}, + {0x20AC, 0x20B2, 0x216C}, {0x20AD, 0x20B3, 0x216D}, + {0x20AE, 0x20B4, 0x216E}, {0x20AF, 0x20B5, 0x216F}, + {0x20B6, 0x20B6, 0x2180}, {0x20B7, 0x20B7, 0x2181}, + {0x20B8, 0x20B8, 0x2182}, {0x20B9, 0x20BA, 0x2183}, + {0x20B9, 0x20BA, 0x2183}, {0x20BB, 0x20BB, 0x2185}, + {0x20BC, 0x20BC, 0x2186}, {0x20BD, 0x20BD, 0x2187}, + {0x20BE, 0x20BE, 0x2188}, {0x20BF, 0x20BF, 0x2189}, + {0x20C0, 0x20C0, 0x218A}, {0x20C1, 0x20C1, 0x218B}, + {0x20C2, 0x20C2, 0x218C}, {0x20C3, 0x20C3, 0x218D}, + {0x20C4, 0x20C4, 0x218E}, {0x20C5, 0x20C5, 0x218F}, + {0x20C6, 0x20C6, 0x2194}, {0x20C7, 0x20C7, 0x2195}, + {0x20C8, 0x20C8, 0x219A}, {0x20C9, 0x20C9, 0x219B}, + {0x20CA, 0x20CA, 0x219C}, {0x20CB, 0x20CB, 0x219D}, + {0x20CC, 0x20CC, 0x219E}, {0x20CD, 0x20CD, 0x219F}, + {0x20CE, 0x20CE, 0x21A0}, {0x20CF, 0x20CF, 0x21A1}, + {0x20D0, 0x20D0, 0x21A2}, {0x20D1, 0x20D1, 0x21A3}, + {0x20D2, 0x20D2, 0x21A4}, {0x20D3, 0x20D3, 0x21A5}, + {0x20D4, 0x20D4, 0x21A6}, {0x20D5, 0x20D5, 0x21A7}, + {0x20D6, 0x20D6, 0x21A8}, {0x20D7, 0x20D7, 0x21A9}, + {0x20D8, 0x20D8, 0x21AA}, {0x20D9, 0x20D9, 0x21AB}, + {0x20DA, 0x20DA, 0x21AC}, {0x20DB, 0x20DB, 0x21AD}, + {0x20DC, 0x20DC, 0x21AE}, {0x20DD, 0x20DD, 0x21AF}, + {0x20DE, 0x20DE, 0x21B0}, {0x20DF, 0x20DF, 0x21B1}, + {0x20E0, 0x20E0, 0x21B2}, {0x20E1, 0x20E1, 0x21B3}, + {0x20E2, 0x20E2, 0x21B4}, {0x20E3, 0x20E3, 0x21B5}, + {0x20E4, 0x20E4, 0x21B6}, {0x20E5, 0x20E5, 0x21B7}, + {0x20E6, 0x20E6, 0x21B8}, {0x20E7, 0x20E7, 0x21B9}, + {0x20E8, 0x20E8, 0x21BA}, {0x20E9, 0x20E9, 0x21BB}, + {0x20EA, 0x20EA, 0x21BC}, {0x20EB, 0x20EB, 0x21BD}, + {0x20EC, 0x20EC, 0x21BE}, {0x20ED, 0x20ED, 0x21BF}, + {0x20EE, 0x20EE, 0x21C0}, {0x20EF, 0x20EF, 0x21C1}, + {0x20F0, 0x20F0, 0x21C2}, {0x20F1, 0x20F1, 0x21C3}, + {0x20F2, 0x20F2, 0x21C4}, {0x20F3, 0x20F3, 0x21C5}, + {0x20F4, 0x20F4, 0x21C6}, {0x20F5, 0x20F5, 0x21C7}, + {0x20F6, 0x20F6, 0x21C8}, {0x20F7, 0x20F7, 0x21C9}, + {0x20F8, 0x20F8, 0x21CA}, {0x20F9, 0x20F9, 0x21CB}, + {0x20FA, 0x20FA, 0x21CC}, {0x20FB, 0x20FB, 0x21CD}, + {0x20FC, 0x20FC, 0x21CE}, {0x20FD, 0x20FD, 0x21CF}, + {0x20FE, 0x20FE, 0x21D0}, {0x20FF, 0x20FF, 0x21D1} +}; + +/** + Unicase array for 0x2300-0x23FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane23[]= +{ + {0x2300, 0x2300, 0x23F8}, {0x2301, 0x2301, 0x23F9}, + {0x2302, 0x2302, 0x23FA}, {0x2303, 0x2303, 0x23FB}, + {0x2304, 0x2304, 0x23FC}, {0x2305, 0x2305, 0x23FD}, + {0x2306, 0x2306, 0x23FE}, {0x2307, 0x2307, 0x23FF}, + {0x2308, 0x2308, 0x2400}, {0x2309, 0x2309, 0x2401}, + {0x230A, 0x230A, 0x2402}, {0x230B, 0x230B, 0x2403}, + {0x230C, 0x230C, 0x2404}, {0x230D, 0x230D, 0x2405}, + {0x230E, 0x230E, 0x2406}, {0x230F, 0x230F, 0x2407}, + {0x2310, 0x2310, 0x2408}, {0x2311, 0x2311, 0x2409}, + {0x2312, 0x2312, 0x240A}, {0x2313, 0x2313, 0x240B}, + {0x2314, 0x2314, 0x240C}, {0x2315, 0x2315, 0x240D}, + {0x2316, 0x2316, 0x240E}, {0x2317, 0x2317, 0x240F}, + {0x2318, 0x2318, 0x2410}, {0x2319, 0x2319, 0x2411}, + {0x231A, 0x231A, 0x2412}, {0x231B, 0x231B, 0x2413}, + {0x231C, 0x231C, 0x2414}, {0x231D, 0x231D, 0x2415}, + {0x231E, 0x231E, 0x2416}, {0x231F, 0x231F, 0x2417}, + {0x2320, 0x2320, 0x2418}, {0x2321, 0x2321, 0x2419}, + {0x2322, 0x2322, 0x241A}, {0x2323, 0x2323, 0x241B}, + {0x2324, 0x2324, 0x241C}, {0x2325, 0x2325, 0x241D}, + {0x2326, 0x2326, 0x241E}, {0x2327, 0x2327, 0x241F}, + {0x2328, 0x2328, 0x2420}, {0x2329, 0x2329, 0x2421}, + {0x232A, 0x232A, 0x2422}, {0x232B, 0x232B, 0x2423}, + {0x232C, 0x232C, 0x2424}, {0x232D, 0x232D, 0x2425}, + {0x232E, 0x232E, 0x2426}, {0x232F, 0x232F, 0x2427}, + {0x2330, 0x2330, 0x2428}, {0x2331, 0x2331, 0x2429}, + {0x2332, 0x2332, 0x242A}, {0x2333, 0x2333, 0x242B}, + {0x2334, 0x2334, 0x242C}, {0x2335, 0x2335, 0x242D}, + {0x2336, 0x2336, 0x242E}, {0x2337, 0x2337, 0x242F}, + {0x2338, 0x2338, 0x2430}, {0x2339, 0x2339, 0x2431}, + {0x233A, 0x233A, 0x2432}, {0x233B, 0x233B, 0x2433}, + {0x233C, 0x233C, 0x2434}, {0x233D, 0x233D, 0x2435}, + {0x233E, 0x233E, 0x2436}, {0x233F, 0x233F, 0x2437}, + {0x2340, 0x2340, 0x2438}, {0x2341, 0x2341, 0x2439}, + {0x2342, 0x2342, 0x243A}, {0x2343, 0x2343, 0x243B}, + {0x2344, 0x2344, 0x243C}, {0x2345, 0x2345, 0x243D}, + {0x2346, 0x2346, 0x243E}, {0x2347, 0x2347, 0x243F}, + {0x2348, 0x2348, 0x2440}, {0x2349, 0x2349, 0x2441}, + {0x234A, 0x234A, 0x2442}, {0x234B, 0x234B, 0x2443}, + {0x234C, 0x234C, 0x2444}, {0x234D, 0x234D, 0x2445}, + {0x234E, 0x234E, 0x2446}, {0x234F, 0x234F, 0x2447}, + {0x2350, 0x2350, 0x2448}, {0x2351, 0x2351, 0x2449}, + {0x2352, 0x2352, 0x244A}, {0x2353, 0x2353, 0x244B}, + {0x2354, 0x2354, 0x244C}, {0x2355, 0x2355, 0x244D}, + {0x2356, 0x2356, 0x244E}, {0x2357, 0x2357, 0x244F}, + {0x2358, 0x2358, 0x2450}, {0x2359, 0x2359, 0x2451}, + {0x235A, 0x235A, 0x2452}, {0x235B, 0x235B, 0x2453}, + {0x235C, 0x235C, 0x2454}, {0x235D, 0x235D, 0x2455}, + {0x235E, 0x235E, 0x2456}, {0x235F, 0x235F, 0x2457}, + {0x2360, 0x2360, 0x2458}, {0x2361, 0x2361, 0x2459}, + {0x2362, 0x2362, 0x245A}, {0x2363, 0x2363, 0x245B}, + {0x2364, 0x2364, 0x245C}, {0x2365, 0x2365, 0x245D}, + {0x2366, 0x2366, 0x245E}, {0x2367, 0x2367, 0x245F}, + {0x2368, 0x2368, 0x246A}, {0x2369, 0x2369, 0x246B}, + {0x236A, 0x236A, 0x246C}, {0x236B, 0x236B, 0x246D}, + {0x236C, 0x236C, 0x246E}, {0x236D, 0x236D, 0x246F}, + {0x236E, 0x236E, 0x2470}, {0x236F, 0x236F, 0x2471}, + {0x2370, 0x2370, 0x2472}, {0x2371, 0x2371, 0x2473}, + {0x2372, 0x2372, 0x249C}, {0x2373, 0x2373, 0x249D}, + {0x2374, 0x2374, 0x249E}, {0x2375, 0x2375, 0x249F}, + {0x2376, 0x2376, 0x24A0}, {0x2377, 0x2377, 0x24A1}, + {0x2378, 0x2378, 0x24A2}, {0x2379, 0x2379, 0x24A3}, + {0x237A, 0x237A, 0x24A4}, {0x237B, 0x237B, 0x24A5}, + {0x237C, 0x237C, 0x24A6}, {0x237D, 0x237D, 0x24A7}, + {0x237E, 0x237E, 0x24A8}, {0x237F, 0x237F, 0x24A9}, + {0x2380, 0x2380, 0x24AA}, {0x2381, 0x2381, 0x24AB}, + {0x2382, 0x2382, 0x24AC}, {0x2383, 0x2383, 0x24AD}, + {0x2384, 0x2384, 0x24AE}, {0x2385, 0x2385, 0x24AF}, + {0x2386, 0x2386, 0x24B0}, {0x2387, 0x2387, 0x24B1}, + {0x2388, 0x2388, 0x24B2}, {0x2389, 0x2389, 0x24B3}, + {0x238A, 0x238A, 0x24B4}, {0x238B, 0x238B, 0x24B5}, + {0x238C, 0x23A6, 0x24B6}, {0x238D, 0x23A7, 0x24B7}, + {0x238E, 0x23A8, 0x24B8}, {0x238F, 0x23A9, 0x24B9}, + {0x2390, 0x23AA, 0x24BA}, {0x2391, 0x23AB, 0x24BB}, + {0x2392, 0x23AC, 0x24BC}, {0x2393, 0x23AD, 0x24BD}, + {0x2394, 0x23AE, 0x24BE}, {0x2395, 0x23AF, 0x24BF}, + {0x2396, 0x23B0, 0x24C0}, {0x2397, 0x23B1, 0x24C1}, + {0x2398, 0x23B2, 0x24C2}, {0x2399, 0x23B3, 0x24C3}, + {0x239A, 0x23B4, 0x24C4}, {0x239B, 0x23B5, 0x24C5}, + {0x239C, 0x23B6, 0x24C6}, {0x239D, 0x23B7, 0x24C7}, + {0x239E, 0x23B8, 0x24C8}, {0x239F, 0x23B9, 0x24C9}, + {0x23A0, 0x23BA, 0x24CA}, {0x23A1, 0x23BB, 0x24CB}, + {0x23A2, 0x23BC, 0x24CC}, {0x23A3, 0x23BD, 0x24CD}, + {0x23A4, 0x23BE, 0x24CE}, {0x23A5, 0x23BF, 0x24CF}, + {0x238C, 0x23A6, 0x24B6}, {0x238D, 0x23A7, 0x24B7}, + {0x238E, 0x23A8, 0x24B8}, {0x238F, 0x23A9, 0x24B9}, + {0x2390, 0x23AA, 0x24BA}, {0x2391, 0x23AB, 0x24BB}, + {0x2392, 0x23AC, 0x24BC}, {0x2393, 0x23AD, 0x24BD}, + {0x2394, 0x23AE, 0x24BE}, {0x2395, 0x23AF, 0x24BF}, + {0x2396, 0x23B0, 0x24C0}, {0x2397, 0x23B1, 0x24C1}, + {0x2398, 0x23B2, 0x24C2}, {0x2399, 0x23B3, 0x24C3}, + {0x239A, 0x23B4, 0x24C4}, {0x239B, 0x23B5, 0x24C5}, + {0x239C, 0x23B6, 0x24C6}, {0x239D, 0x23B7, 0x24C7}, + {0x239E, 0x23B8, 0x24C8}, {0x239F, 0x23B9, 0x24C9}, + {0x23A0, 0x23BA, 0x24CA}, {0x23A1, 0x23BB, 0x24CB}, + {0x23A2, 0x23BC, 0x24CC}, {0x23A3, 0x23BD, 0x24CD}, + {0x23A4, 0x23BE, 0x24CE}, {0x23A5, 0x23BF, 0x24CF}, + {0x23C0, 0x23C0, 0x24EA}, {0x23C1, 0x23C1, 0x24EB}, + {0x23C2, 0x23C2, 0x24EC}, {0x23C3, 0x23C3, 0x24ED}, + {0x23C4, 0x23C4, 0x24EE}, {0x23C5, 0x23C5, 0x24EF}, + {0x23C6, 0x23C6, 0x24F0}, {0x23C7, 0x23C7, 0x24F1}, + {0x23C8, 0x23C8, 0x24F2}, {0x23C9, 0x23C9, 0x24F3}, + {0x23CA, 0x23CA, 0x24F4}, {0x23CB, 0x23CB, 0x24F5}, + {0x23CC, 0x23CC, 0x24F6}, {0x23CD, 0x23CD, 0x24F7}, + {0x23CE, 0x23CE, 0x24F8}, {0x23CF, 0x23CF, 0x24F9}, + {0x23D0, 0x23D0, 0x24FA}, {0x23D1, 0x23D1, 0x24FB}, + {0x23D2, 0x23D2, 0x24FC}, {0x23D3, 0x23D3, 0x24FD}, + {0x23D4, 0x23D4, 0x24FE}, {0x23D5, 0x23D5, 0x24FF}, + {0x23D6, 0x23D6, 0x254C}, {0x23D7, 0x23D7, 0x254D}, + {0x23D8, 0x23D8, 0x254E}, {0x23D9, 0x23D9, 0x254F}, + {0x23DA, 0x23DA, 0x2574}, {0x23DB, 0x23DB, 0x2575}, + {0x23DC, 0x23DC, 0x2576}, {0x23DD, 0x23DD, 0x2577}, + {0x23DE, 0x23DE, 0x2578}, {0x23DF, 0x23DF, 0x2579}, + {0x23E0, 0x23E0, 0x257A}, {0x23E1, 0x23E1, 0x257B}, + {0x23E2, 0x23E2, 0x257C}, {0x23E3, 0x23E3, 0x257D}, + {0x23E4, 0x23E4, 0x257E}, {0x23E5, 0x23E5, 0x257F}, + {0x23E6, 0x23E6, 0x2580}, {0x23E7, 0x23E7, 0x2590}, + {0x23E8, 0x23E8, 0x2591}, {0x23E9, 0x23E9, 0x2592}, + {0x23EA, 0x23EA, 0x2596}, {0x23EB, 0x23EB, 0x2597}, + {0x23EC, 0x23EC, 0x2598}, {0x23ED, 0x23ED, 0x2599}, + {0x23EE, 0x23EE, 0x259A}, {0x23EF, 0x23EF, 0x259B}, + {0x23F0, 0x23F0, 0x259C}, {0x23F1, 0x23F1, 0x259D}, + {0x23F2, 0x23F2, 0x259E}, {0x23F3, 0x23F3, 0x259F}, + {0x23F4, 0x23F4, 0x25A2}, {0x23F5, 0x23F5, 0x25A3}, + {0x23F6, 0x23F6, 0x25A4}, {0x23F7, 0x23F7, 0x25A5}, + {0x23F8, 0x23F8, 0x25A6}, {0x23F9, 0x23F9, 0x25A7}, + {0x23FA, 0x23FA, 0x25A8}, {0x23FB, 0x23FB, 0x25A9}, + {0x23FC, 0x23FC, 0x25AA}, {0x23FD, 0x23FD, 0x25AB}, + {0x23FE, 0x23FE, 0x25AC}, {0x23FF, 0x23FF, 0x25AD} +}; + +/** + Unicase array for 0x2A00-0x2AFF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane2A[]= +{ + {0x2A00, 0x2A00, 0x2BC0}, {0x2A01, 0x2A01, 0x2BC1}, + {0x2A02, 0x2A02, 0x2BC2}, {0x2A03, 0x2A03, 0x2BC3}, + {0x2A04, 0x2A04, 0x2BC4}, {0x2A05, 0x2A05, 0x2BC5}, + {0x2A06, 0x2A06, 0x2BC6}, {0x2A07, 0x2A07, 0x2BC7}, + {0x2A08, 0x2A08, 0x2BC8}, {0x2A09, 0x2A09, 0x2BC9}, + {0x2A0A, 0x2A0A, 0x2BCA}, {0x2A0B, 0x2A0B, 0x2BCB}, + {0x2A0C, 0x2A0C, 0x2BCC}, {0x2A0D, 0x2A0D, 0x2BCD}, + {0x2A0E, 0x2A0E, 0x2BCE}, {0x2A0F, 0x2A0F, 0x2BCF}, + {0x2A10, 0x2A10, 0x2BD0}, {0x2A11, 0x2A11, 0x2BD1}, + {0x2A12, 0x2A12, 0x2BD2}, {0x2A13, 0x2A13, 0x2BD3}, + {0x2A14, 0x2A14, 0x2BD4}, {0x2A15, 0x2A15, 0x2BD5}, + {0x2A16, 0x2A16, 0x2BD6}, {0x2A17, 0x2A17, 0x2BD7}, + {0x2A18, 0x2A18, 0x2BD8}, {0x2A19, 0x2A19, 0x2BD9}, + {0x2A1A, 0x2A1A, 0x2BDA}, {0x2A1B, 0x2A1B, 0x2BDB}, + {0x2A1C, 0x2A1C, 0x2BDC}, {0x2A1D, 0x2A1D, 0x2BDD}, + {0x2A1E, 0x2A1E, 0x2BDE}, {0x2A1F, 0x2A1F, 0x2BDF}, + {0x2A20, 0x2A20, 0x2BE0}, {0x2A21, 0x2A21, 0x2BE1}, + {0x2A22, 0x2A22, 0x2BE2}, {0x2A23, 0x2A23, 0x2BE3}, + {0x2A24, 0x2A24, 0x2BE4}, {0x2A25, 0x2A25, 0x2BE5}, + {0x2A26, 0x2A26, 0x2BE6}, {0x2A27, 0x2A27, 0x2BE7}, + {0x2A28, 0x2A28, 0x2BE8}, {0x2A29, 0x2A29, 0x2BE9}, + {0x2A2A, 0x2A2A, 0x2BEA}, {0x2A2B, 0x2A2B, 0x2BEB}, + {0x2A2C, 0x2A2C, 0x2BEC}, {0x2A2D, 0x2A2D, 0x2BED}, + {0x2A2E, 0x2A2E, 0x2BEE}, {0x2A2F, 0x2A2F, 0x2BEF}, + {0x2A30, 0x2A30, 0x2BF0}, {0x2A31, 0x2A31, 0x2BF1}, + {0x2A32, 0x2A32, 0x2BF2}, {0x2A33, 0x2A33, 0x2BF3}, + {0x2A34, 0x2A34, 0x2BF4}, {0x2A35, 0x2A35, 0x2BF5}, + {0x2A36, 0x2A36, 0x2BF6}, {0x2A37, 0x2A37, 0x2BF7}, + {0x2A38, 0x2A38, 0x2BF8}, {0x2A39, 0x2A39, 0x2BF9}, + {0x2A3A, 0x2A3A, 0x2BFA}, {0x2A3B, 0x2A3B, 0x2BFB}, + {0x2A3C, 0x2A3C, 0x2BFC}, {0x2A3D, 0x2A3D, 0x2BFD}, + {0x2A3E, 0x2A3E, 0x2BFE}, {0x2A3F, 0x2A3F, 0x2BFF}, + {0x2A40, 0x2A70, 0x2C00}, {0x2A41, 0x2A71, 0x2C01}, + {0x2A42, 0x2A72, 0x2C02}, {0x2A43, 0x2A73, 0x2C03}, + {0x2A44, 0x2A74, 0x2C04}, {0x2A45, 0x2A75, 0x2C05}, + {0x2A46, 0x2A76, 0x2C06}, {0x2A47, 0x2A77, 0x2C07}, + {0x2A48, 0x2A78, 0x2C08}, {0x2A49, 0x2A79, 0x2C09}, + {0x2A4A, 0x2A7A, 0x2C0A}, {0x2A4B, 0x2A7B, 0x2C0B}, + {0x2A4C, 0x2A7C, 0x2C0C}, {0x2A4D, 0x2A7D, 0x2C0D}, + {0x2A4E, 0x2A7E, 0x2C0E}, {0x2A4F, 0x2A7F, 0x2C0F}, + {0x2A50, 0x2A80, 0x2C10}, {0x2A51, 0x2A81, 0x2C11}, + {0x2A52, 0x2A82, 0x2C12}, {0x2A53, 0x2A83, 0x2C13}, + {0x2A54, 0x2A84, 0x2C14}, {0x2A55, 0x2A85, 0x2C15}, + {0x2A56, 0x2A86, 0x2C16}, {0x2A57, 0x2A87, 0x2C17}, + {0x2A58, 0x2A88, 0x2C18}, {0x2A59, 0x2A89, 0x2C19}, + {0x2A5A, 0x2A8A, 0x2C1A}, {0x2A5B, 0x2A8B, 0x2C1B}, + {0x2A5C, 0x2A8C, 0x2C1C}, {0x2A5D, 0x2A8D, 0x2C1D}, + {0x2A5E, 0x2A8E, 0x2C1E}, {0x2A5F, 0x2A8F, 0x2C1F}, + {0x2A60, 0x2A90, 0x2C20}, {0x2A61, 0x2A91, 0x2C21}, + {0x2A62, 0x2A92, 0x2C22}, {0x2A63, 0x2A93, 0x2C23}, + {0x2A64, 0x2A94, 0x2C24}, {0x2A65, 0x2A95, 0x2C25}, + {0x2A66, 0x2A96, 0x2C26}, {0x2A67, 0x2A97, 0x2C27}, + {0x2A68, 0x2A98, 0x2C28}, {0x2A69, 0x2A99, 0x2C29}, + {0x2A6A, 0x2A9A, 0x2C2A}, {0x2A6B, 0x2A9B, 0x2C2B}, + {0x2A6C, 0x2A9C, 0x2C2C}, {0x2A6D, 0x2A9D, 0x2C2D}, + {0x2A6E, 0x2A9E, 0x2C2E}, {0x2A6F, 0x2A6F, 0x2C2F}, + {0x2A40, 0x2A70, 0x2C00}, {0x2A41, 0x2A71, 0x2C01}, + {0x2A42, 0x2A72, 0x2C02}, {0x2A43, 0x2A73, 0x2C03}, + {0x2A44, 0x2A74, 0x2C04}, {0x2A45, 0x2A75, 0x2C05}, + {0x2A46, 0x2A76, 0x2C06}, {0x2A47, 0x2A77, 0x2C07}, + {0x2A48, 0x2A78, 0x2C08}, {0x2A49, 0x2A79, 0x2C09}, + {0x2A4A, 0x2A7A, 0x2C0A}, {0x2A4B, 0x2A7B, 0x2C0B}, + {0x2A4C, 0x2A7C, 0x2C0C}, {0x2A4D, 0x2A7D, 0x2C0D}, + {0x2A4E, 0x2A7E, 0x2C0E}, {0x2A4F, 0x2A7F, 0x2C0F}, + {0x2A50, 0x2A80, 0x2C10}, {0x2A51, 0x2A81, 0x2C11}, + {0x2A52, 0x2A82, 0x2C12}, {0x2A53, 0x2A83, 0x2C13}, + {0x2A54, 0x2A84, 0x2C14}, {0x2A55, 0x2A85, 0x2C15}, + {0x2A56, 0x2A86, 0x2C16}, {0x2A57, 0x2A87, 0x2C17}, + {0x2A58, 0x2A88, 0x2C18}, {0x2A59, 0x2A89, 0x2C19}, + {0x2A5A, 0x2A8A, 0x2C1A}, {0x2A5B, 0x2A8B, 0x2C1B}, + {0x2A5C, 0x2A8C, 0x2C1C}, {0x2A5D, 0x2A8D, 0x2C1D}, + {0x2A5E, 0x2A8E, 0x2C1E}, {0x2A5F, 0x2A8F, 0x2C1F}, + {0x2A60, 0x2A90, 0x2C20}, {0x2A61, 0x2A91, 0x2C21}, + {0x2A62, 0x2A92, 0x2C22}, {0x2A63, 0x2A93, 0x2C23}, + {0x2A64, 0x2A94, 0x2C24}, {0x2A65, 0x2A95, 0x2C25}, + {0x2A66, 0x2A96, 0x2C26}, {0x2A67, 0x2A97, 0x2C27}, + {0x2A68, 0x2A98, 0x2C28}, {0x2A69, 0x2A99, 0x2C29}, + {0x2A6A, 0x2A9A, 0x2C2A}, {0x2A6B, 0x2A9B, 0x2C2B}, + {0x2A6C, 0x2A9C, 0x2C2C}, {0x2A6D, 0x2A9D, 0x2C2D}, + {0x2A6E, 0x2A9E, 0x2C2E}, {0x2A9F, 0x2A9F, 0x2C5F}, + {0x2AA0, 0x2AA1, 0x2C60}, {0x2AA0, 0x2AA1, 0x2C60}, + {0x2AA2, 0x0244, 0x2C62}, {0x2AA3, 0x1CDF, 0x2C63}, + {0x2AA4, 0x0256, 0x2C64}, {0x0215, 0x2AA5, 0x023A}, + {0x0219, 0x2AA6, 0x023E}, {0x2AA7, 0x2AA8, 0x2C67}, + {0x2AA7, 0x2AA8, 0x2C67}, {0x2AA9, 0x2AAA, 0x2C69}, + {0x2AA9, 0x2AAA, 0x2C69}, {0x2AAB, 0x2AAC, 0x2C6B}, + {0x2AAB, 0x2AAC, 0x2C6B}, {0x2AAD, 0xA8BB, 0x2C6D}, + {0x2AAE, 0x024A, 0x2C6E}, {0x2AAF, 0x022B, 0x2C6F}, + {0x2AB0, 0x022C, 0x2C70}, {0x2AB1, 0x2AB1, 0x2C71}, + {0x2AB2, 0x2AB3, 0x2C72}, {0x2AB2, 0x2AB3, 0x2C72}, + {0x2AB4, 0x2AB4, 0x2C74}, {0x2AB5, 0x2AB6, 0x2C75}, + {0x2AB5, 0x2AB6, 0x2C75}, {0x2AB7, 0x2AB7, 0x2C77}, + {0x2AB8, 0x2AB8, 0x2C78}, {0x2AB9, 0x2AB9, 0x2C79}, + {0x2ABA, 0x2ABA, 0x2C7A}, {0x2ABB, 0x2ABB, 0x2C7B}, + {0x2ABC, 0x2ABC, 0x2C7C}, {0x2ABD, 0x2ABD, 0x2C7D}, + {0x2ABE, 0x021A, 0x2C7E}, {0x2ABF, 0x021B, 0x2C7F}, + {0x2AC0, 0x2AC1, 0x2C80}, {0x2AC0, 0x2AC1, 0x2C80}, + {0x2AC2, 0x2AC3, 0x2C82}, {0x2AC2, 0x2AC3, 0x2C82}, + {0x2AC4, 0x2AC5, 0x2C84}, {0x2AC4, 0x2AC5, 0x2C84}, + {0x2AC6, 0x2AC7, 0x2C86}, {0x2AC6, 0x2AC7, 0x2C86}, + {0x2AC8, 0x2AC9, 0x2C88}, {0x2AC8, 0x2AC9, 0x2C88}, + {0x2ACA, 0x2ACB, 0x2C8A}, {0x2ACA, 0x2ACB, 0x2C8A}, + {0x2ACC, 0x2ACD, 0x2C8C}, {0x2ACC, 0x2ACD, 0x2C8C}, + {0x2ACE, 0x2ACF, 0x2C8E}, {0x2ACE, 0x2ACF, 0x2C8E}, + {0x2AD0, 0x2AD1, 0x2C90}, {0x2AD0, 0x2AD1, 0x2C90}, + {0x2AD2, 0x2AD3, 0x2C92}, {0x2AD2, 0x2AD3, 0x2C92}, + {0x2AD4, 0x2AD5, 0x2C94}, {0x2AD4, 0x2AD5, 0x2C94}, + {0x2AD6, 0x2AD7, 0x2C96}, {0x2AD6, 0x2AD7, 0x2C96}, + {0x2AD8, 0x2AD9, 0x2C98}, {0x2AD8, 0x2AD9, 0x2C98}, + {0x2ADA, 0x2ADB, 0x2C9A}, {0x2ADA, 0x2ADB, 0x2C9A}, + {0x2ADC, 0x2ADD, 0x2C9C}, {0x2ADC, 0x2ADD, 0x2C9C}, + {0x2ADE, 0x2ADF, 0x2C9E}, {0x2ADE, 0x2ADF, 0x2C9E}, + {0x2AE0, 0x2AE1, 0x2CA0}, {0x2AE0, 0x2AE1, 0x2CA0}, + {0x2AE2, 0x2AE3, 0x2CA2}, {0x2AE2, 0x2AE3, 0x2CA2}, + {0x2AE4, 0x2AE5, 0x2CA4}, {0x2AE4, 0x2AE5, 0x2CA4}, + {0x2AE6, 0x2AE7, 0x2CA6}, {0x2AE6, 0x2AE7, 0x2CA6}, + {0x2AE8, 0x2AE9, 0x2CA8}, {0x2AE8, 0x2AE9, 0x2CA8}, + {0x2AEA, 0x2AEB, 0x2CAA}, {0x2AEA, 0x2AEB, 0x2CAA}, + {0x2AEC, 0x2AED, 0x2CAC}, {0x2AEC, 0x2AED, 0x2CAC}, + {0x2AEE, 0x2AEF, 0x2CAE}, {0x2AEE, 0x2AEF, 0x2CAE}, + {0x2AF0, 0x2AF1, 0x2CB0}, {0x2AF0, 0x2AF1, 0x2CB0}, + {0x2AF2, 0x2AF3, 0x2CB2}, {0x2AF2, 0x2AF3, 0x2CB2}, + {0x2AF4, 0x2AF5, 0x2CB4}, {0x2AF4, 0x2AF5, 0x2CB4}, + {0x2AF6, 0x2AF7, 0x2CB6}, {0x2AF6, 0x2AF7, 0x2CB6}, + {0x2AF8, 0x2AF9, 0x2CB8}, {0x2AF8, 0x2AF9, 0x2CB8}, + {0x2AFA, 0x2AFB, 0x2CBA}, {0x2AFA, 0x2AFB, 0x2CBA}, + {0x2AFC, 0x2AFD, 0x2CBC}, {0x2AFC, 0x2AFD, 0x2CBC}, + {0x2AFE, 0x2AFF, 0x2CBE}, {0x2AFE, 0x2AFF, 0x2CBE} +}; + +/** + Unicase array for 0x2B00-0x2BFF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane2B[]= +{ + {0x2B00, 0x2B01, 0x2CC0}, {0x2B00, 0x2B01, 0x2CC0}, + {0x2B02, 0x2B03, 0x2CC2}, {0x2B02, 0x2B03, 0x2CC2}, + {0x2B04, 0x2B05, 0x2CC4}, {0x2B04, 0x2B05, 0x2CC4}, + {0x2B06, 0x2B07, 0x2CC6}, {0x2B06, 0x2B07, 0x2CC6}, + {0x2B08, 0x2B09, 0x2CC8}, {0x2B08, 0x2B09, 0x2CC8}, + {0x2B0A, 0x2B0B, 0x2CCA}, {0x2B0A, 0x2B0B, 0x2CCA}, + {0x2B0C, 0x2B0D, 0x2CCC}, {0x2B0C, 0x2B0D, 0x2CCC}, + {0x2B0E, 0x2B0F, 0x2CCE}, {0x2B0E, 0x2B0F, 0x2CCE}, + {0x2B10, 0x2B11, 0x2CD0}, {0x2B10, 0x2B11, 0x2CD0}, + {0x2B12, 0x2B13, 0x2CD2}, {0x2B12, 0x2B13, 0x2CD2}, + {0x2B14, 0x2B15, 0x2CD4}, {0x2B14, 0x2B15, 0x2CD4}, + {0x2B16, 0x2B17, 0x2CD6}, {0x2B16, 0x2B17, 0x2CD6}, + {0x2B18, 0x2B19, 0x2CD8}, {0x2B18, 0x2B19, 0x2CD8}, + {0x2B1A, 0x2B1B, 0x2CDA}, {0x2B1A, 0x2B1B, 0x2CDA}, + {0x2B1C, 0x2B1D, 0x2CDC}, {0x2B1C, 0x2B1D, 0x2CDC}, + {0x2B1E, 0x2B1F, 0x2CDE}, {0x2B1E, 0x2B1F, 0x2CDE}, + {0x2B20, 0x2B21, 0x2CE0}, {0x2B20, 0x2B21, 0x2CE0}, + {0x2B22, 0x2B23, 0x2CE2}, {0x2B22, 0x2B23, 0x2CE2}, + {0x2B24, 0x2B24, 0x2CE4}, {0x2B25, 0x2B25, 0x2CE5}, + {0x2B26, 0x2B26, 0x2CE6}, {0x2B27, 0x2B27, 0x2CE7}, + {0x2B28, 0x2B28, 0x2CE8}, {0x2B29, 0x2B29, 0x2CE9}, + {0x2B2A, 0x2B2A, 0x2CEA}, {0x2B2B, 0x2B2C, 0x2CEB}, + {0x2B2B, 0x2B2C, 0x2CEB}, {0x2B2D, 0x2B2E, 0x2CED}, + {0x2B2D, 0x2B2E, 0x2CED}, {0x2B2F, 0x2B2F, 0x2CEF}, + {0x2B30, 0x2B30, 0x2CF0}, {0x2B31, 0x2B31, 0x2CF1}, + {0x2B32, 0x2B32, 0x2CF2}, {0x2B33, 0x2B33, 0x2CF3}, + {0x2B34, 0x2B34, 0x2CF4}, {0x2B35, 0x2B35, 0x2CF5}, + {0x2B36, 0x2B36, 0x2CF6}, {0x2B37, 0x2B37, 0x2CF7}, + {0x2B38, 0x2B38, 0x2CF8}, {0x2B39, 0x2B39, 0x2CF9}, + {0x2B3A, 0x2B3A, 0x2CFA}, {0x2B3B, 0x2B3B, 0x2CFB}, + {0x2B3C, 0x2B3C, 0x2CFC}, {0x2B3D, 0x2B3D, 0x2CFD}, + {0x2B3E, 0x2B3E, 0x2CFE}, {0x2B3F, 0x2B3F, 0x2CFF}, + {0x1002, 0x2B40, 0x10A0}, {0x1003, 0x2B41, 0x10A1}, + {0x1004, 0x2B42, 0x10A2}, {0x1005, 0x2B43, 0x10A3}, + {0x1006, 0x2B44, 0x10A4}, {0x1007, 0x2B45, 0x10A5}, + {0x1008, 0x2B46, 0x10A6}, {0x1009, 0x2B47, 0x10A7}, + {0x100A, 0x2B48, 0x10A8}, {0x100B, 0x2B49, 0x10A9}, + {0x100C, 0x2B4A, 0x10AA}, {0x100D, 0x2B4B, 0x10AB}, + {0x100E, 0x2B4C, 0x10AC}, {0x100F, 0x2B4D, 0x10AD}, + {0x1010, 0x2B4E, 0x10AE}, {0x1011, 0x2B4F, 0x10AF}, + {0x1012, 0x2B50, 0x10B0}, {0x1013, 0x2B51, 0x10B1}, + {0x1014, 0x2B52, 0x10B2}, {0x1015, 0x2B53, 0x10B3}, + {0x1016, 0x2B54, 0x10B4}, {0x1017, 0x2B55, 0x10B5}, + {0x1018, 0x2B56, 0x10B6}, {0x1019, 0x2B57, 0x10B7}, + {0x101A, 0x2B58, 0x10B8}, {0x101B, 0x2B59, 0x10B9}, + {0x101C, 0x2B5A, 0x10BA}, {0x101D, 0x2B5B, 0x10BB}, + {0x101E, 0x2B5C, 0x10BC}, {0x101F, 0x2B5D, 0x10BD}, + {0x1020, 0x2B5E, 0x10BE}, {0x1021, 0x2B5F, 0x10BF}, + {0x1022, 0x2B60, 0x10C0}, {0x1023, 0x2B61, 0x10C1}, + {0x1024, 0x2B62, 0x10C2}, {0x1025, 0x2B63, 0x10C3}, + {0x1026, 0x2B64, 0x10C4}, {0x1027, 0x2B65, 0x10C5}, + {0x2B66, 0x2B66, 0x2D26}, {0x2B67, 0x2B67, 0x2D27}, + {0x2B68, 0x2B68, 0x2D28}, {0x2B69, 0x2B69, 0x2D29}, + {0x2B6A, 0x2B6A, 0x2D2A}, {0x2B6B, 0x2B6B, 0x2D2B}, + {0x2B6C, 0x2B6C, 0x2D2C}, {0x2B6D, 0x2B6D, 0x2D2D}, + {0x2B6E, 0x2B6E, 0x2D2E}, {0x2B6F, 0x2B6F, 0x2D2F}, + {0x2B70, 0x2B70, 0x2D30}, {0x2B71, 0x2B71, 0x2D31}, + {0x2B72, 0x2B72, 0x2D32}, {0x2B73, 0x2B73, 0x2D33}, + {0x2B74, 0x2B74, 0x2D34}, {0x2B75, 0x2B75, 0x2D35}, + {0x2B76, 0x2B76, 0x2D36}, {0x2B77, 0x2B77, 0x2D37}, + {0x2B78, 0x2B78, 0x2D38}, {0x2B79, 0x2B79, 0x2D39}, + {0x2B7A, 0x2B7A, 0x2D3A}, {0x2B7B, 0x2B7B, 0x2D3B}, + {0x2B7C, 0x2B7C, 0x2D3C}, {0x2B7D, 0x2B7D, 0x2D3D}, + {0x2B7E, 0x2B7E, 0x2D3E}, {0x2B7F, 0x2B7F, 0x2D3F}, + {0x2B80, 0x2B80, 0x2D40}, {0x2B81, 0x2B81, 0x2D41}, + {0x2B82, 0x2B82, 0x2D42}, {0x2B83, 0x2B83, 0x2D43}, + {0x2B84, 0x2B84, 0x2D44}, {0x2B85, 0x2B85, 0x2D45}, + {0x2B86, 0x2B86, 0x2D46}, {0x2B87, 0x2B87, 0x2D47}, + {0x2B88, 0x2B88, 0x2D48}, {0x2B89, 0x2B89, 0x2D49}, + {0x2B8A, 0x2B8A, 0x2D4A}, {0x2B8B, 0x2B8B, 0x2D4B}, + {0x2B8C, 0x2B8C, 0x2D4C}, {0x2B8D, 0x2B8D, 0x2D4D}, + {0x2B8E, 0x2B8E, 0x2D4E}, {0x2B8F, 0x2B8F, 0x2D4F}, + {0x2B90, 0x2B90, 0x2D50}, {0x2B91, 0x2B91, 0x2D51}, + {0x2B92, 0x2B92, 0x2D52}, {0x2B93, 0x2B93, 0x2D53}, + {0x2B94, 0x2B94, 0x2D54}, {0x2B95, 0x2B95, 0x2D55}, + {0x2B96, 0x2B96, 0x2D56}, {0x2B97, 0x2B97, 0x2D57}, + {0x2B98, 0x2B98, 0x2D58}, {0x2B99, 0x2B99, 0x2D59}, + {0x2B9A, 0x2B9A, 0x2D5A}, {0x2B9B, 0x2B9B, 0x2D5B}, + {0x2B9C, 0x2B9C, 0x2D5C}, {0x2B9D, 0x2B9D, 0x2D5D}, + {0x2B9E, 0x2B9E, 0x2D5E}, {0x2B9F, 0x2B9F, 0x2D5F}, + {0x2BA0, 0x2BA0, 0x2D60}, {0x2BA1, 0x2BA1, 0x2D61}, + {0x2BA2, 0x2BA2, 0x2D62}, {0x2BA3, 0x2BA3, 0x2D63}, + {0x2BA4, 0x2BA4, 0x2D64}, {0x2BA5, 0x2BA5, 0x2D65}, + {0x2BA6, 0x2BA6, 0x2D66}, {0x2BA7, 0x2BA7, 0x2D67}, + {0x2BA8, 0x2BA8, 0x2D68}, {0x2BA9, 0x2BA9, 0x2D69}, + {0x2BAA, 0x2BAA, 0x2D6A}, {0x2BAB, 0x2BAB, 0x2D6B}, + {0x2BAC, 0x2BAC, 0x2D6C}, {0x2BAD, 0x2BAD, 0x2D6D}, + {0x2BAE, 0x2BAE, 0x2D6E}, {0x2BAF, 0x2BAF, 0x2D6F}, + {0x2BB0, 0x2BB0, 0x2D70}, {0x2BB1, 0x2BB1, 0x2D71}, + {0x2BB2, 0x2BB2, 0x2D72}, {0x2BB3, 0x2BB3, 0x2D73}, + {0x2BB4, 0x2BB4, 0x2D74}, {0x2BB5, 0x2BB5, 0x2D75}, + {0x2BB6, 0x2BB6, 0x2D76}, {0x2BB7, 0x2BB7, 0x2D77}, + {0x2BB8, 0x2BB8, 0x2D78}, {0x2BB9, 0x2BB9, 0x2D79}, + {0x2BBA, 0x2BBA, 0x2D7A}, {0x2BBB, 0x2BBB, 0x2D7B}, + {0x2BBC, 0x2BBC, 0x2D7C}, {0x2BBD, 0x2BBD, 0x2D7D}, + {0x2BBE, 0x2BBE, 0x2D7E}, {0x2BBF, 0x2BBF, 0x2D7F}, + {0x2BC0, 0x2BC0, 0x2D80}, {0x2BC1, 0x2BC1, 0x2D81}, + {0x2BC2, 0x2BC2, 0x2D82}, {0x2BC3, 0x2BC3, 0x2D83}, + {0x2BC4, 0x2BC4, 0x2D84}, {0x2BC5, 0x2BC5, 0x2D85}, + {0x2BC6, 0x2BC6, 0x2D86}, {0x2BC7, 0x2BC7, 0x2D87}, + {0x2BC8, 0x2BC8, 0x2D88}, {0x2BC9, 0x2BC9, 0x2D89}, + {0x2BCA, 0x2BCA, 0x2D8A}, {0x2BCB, 0x2BCB, 0x2D8B}, + {0x2BCC, 0x2BCC, 0x2D8C}, {0x2BCD, 0x2BCD, 0x2D8D}, + {0x2BCE, 0x2BCE, 0x2D8E}, {0x2BCF, 0x2BCF, 0x2D8F}, + {0x2BD0, 0x2BD0, 0x2D90}, {0x2BD1, 0x2BD1, 0x2D91}, + {0x2BD2, 0x2BD2, 0x2D92}, {0x2BD3, 0x2BD3, 0x2D93}, + {0x2BD4, 0x2BD4, 0x2D94}, {0x2BD5, 0x2BD5, 0x2D95}, + {0x2BD6, 0x2BD6, 0x2D96}, {0x2BD7, 0x2BD7, 0x2D97}, + {0x2BD8, 0x2BD8, 0x2D98}, {0x2BD9, 0x2BD9, 0x2D99}, + {0x2BDA, 0x2BDA, 0x2D9A}, {0x2BDB, 0x2BDB, 0x2D9B}, + {0x2BDC, 0x2BDC, 0x2D9C}, {0x2BDD, 0x2BDD, 0x2D9D}, + {0x2BDE, 0x2BDE, 0x2D9E}, {0x2BDF, 0x2BDF, 0x2D9F}, + {0x2BE0, 0x2BE0, 0x2DA0}, {0x2BE1, 0x2BE1, 0x2DA1}, + {0x2BE2, 0x2BE2, 0x2DA2}, {0x2BE3, 0x2BE3, 0x2DA3}, + {0x2BE4, 0x2BE4, 0x2DA4}, {0x2BE5, 0x2BE5, 0x2DA5}, + {0x2BE6, 0x2BE6, 0x2DA6}, {0x2BE7, 0x2BE7, 0x2DA7}, + {0x2BE8, 0x2BE8, 0x2DA8}, {0x2BE9, 0x2BE9, 0x2DA9}, + {0x2BEA, 0x2BEA, 0x2DAA}, {0x2BEB, 0x2BEB, 0x2DAB}, + {0x2BEC, 0x2BEC, 0x2DAC}, {0x2BED, 0x2BED, 0x2DAD}, + {0x2BEE, 0x2BEE, 0x2DAE}, {0x2BEF, 0x2BEF, 0x2DAF}, + {0x2BF0, 0x2BF0, 0x2DB0}, {0x2BF1, 0x2BF1, 0x2DB1}, + {0x2BF2, 0x2BF2, 0x2DB2}, {0x2BF3, 0x2BF3, 0x2DB3}, + {0x2BF4, 0x2BF4, 0x2DB4}, {0x2BF5, 0x2BF5, 0x2DB5}, + {0x2BF6, 0x2BF6, 0x2DB6}, {0x2BF7, 0x2BF7, 0x2DB7}, + {0x2BF8, 0x2BF8, 0x2DB8}, {0x2BF9, 0x2BF9, 0x2DB9}, + {0x2BFA, 0x2BFA, 0x2DBA}, {0x2BFB, 0x2BFB, 0x2DBB}, + {0x2BFC, 0x2BFC, 0x2DBC}, {0x2BFD, 0x2BFD, 0x2DBD}, + {0x2BFE, 0x2BFE, 0x2DBE}, {0x2BFF, 0x2BFF, 0x2DBF} +}; + +/** + Unicase array for 0x5100-0x51FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane51[]= +{ + {0x5100, 0x5100, 0xA5C3}, {0x5101, 0x5101, 0xA5C4}, + {0x5102, 0x5102, 0xA5C5}, {0x5103, 0x5103, 0xA5C6}, + {0x5104, 0x5104, 0xA5C7}, {0x5105, 0x5105, 0xA5C8}, + {0x5106, 0x5106, 0xA5C9}, {0x5107, 0x5107, 0xA5CA}, + {0x5108, 0x5108, 0xA5CB}, {0x5109, 0x5109, 0xA5CC}, + {0x510A, 0x510A, 0xA5CD}, {0x510B, 0x510B, 0xA5CE}, + {0x510C, 0x510C, 0xA5CF}, {0x510D, 0x510D, 0xA5D0}, + {0x510E, 0x510E, 0xA5D1}, {0x510F, 0x510F, 0xA5D2}, + {0x5110, 0x5110, 0xA5D3}, {0x5111, 0x5111, 0xA5D4}, + {0x5112, 0x5112, 0xA5D5}, {0x5113, 0x5113, 0xA5D6}, + {0x5114, 0x5114, 0xA5D7}, {0x5115, 0x5115, 0xA5D8}, + {0x5116, 0x5116, 0xA5D9}, {0x5117, 0x5117, 0xA5DA}, + {0x5118, 0x5118, 0xA5DB}, {0x5119, 0x5119, 0xA5DC}, + {0x511A, 0x511A, 0xA5DD}, {0x511B, 0x511B, 0xA5DE}, + {0x511C, 0x511C, 0xA5DF}, {0x511D, 0x511D, 0xA5E0}, + {0x511E, 0x511E, 0xA5E1}, {0x511F, 0x511F, 0xA5E2}, + {0x5120, 0x5120, 0xA5E3}, {0x5121, 0x5121, 0xA5E4}, + {0x5122, 0x5122, 0xA5E5}, {0x5123, 0x5123, 0xA5E6}, + {0x5124, 0x5124, 0xA5E7}, {0x5125, 0x5125, 0xA5E8}, + {0x5126, 0x5126, 0xA5E9}, {0x5127, 0x5127, 0xA5EA}, + {0x5128, 0x5128, 0xA5EB}, {0x5129, 0x5129, 0xA5EC}, + {0x512A, 0x512A, 0xA5ED}, {0x512B, 0x512B, 0xA5EE}, + {0x512C, 0x512C, 0xA5EF}, {0x512D, 0x512D, 0xA5F0}, + {0x512E, 0x512E, 0xA5F1}, {0x512F, 0x512F, 0xA5F2}, + {0x5130, 0x5130, 0xA5F3}, {0x5131, 0x5131, 0xA5F4}, + {0x5132, 0x5132, 0xA5F5}, {0x5133, 0x5133, 0xA5F6}, + {0x5134, 0x5134, 0xA5F7}, {0x5135, 0x5135, 0xA5F8}, + {0x5136, 0x5136, 0xA5F9}, {0x5137, 0x5137, 0xA5FA}, + {0x5138, 0x5138, 0xA5FB}, {0x5139, 0x5139, 0xA5FC}, + {0x513A, 0x513A, 0xA5FD}, {0x513B, 0x513B, 0xA5FE}, + {0x513C, 0x513C, 0xA5FF}, {0x513D, 0x513D, 0xA600}, + {0x513E, 0x513E, 0xA601}, {0x513F, 0x513F, 0xA602}, + {0x5140, 0x5140, 0xA603}, {0x5141, 0x5141, 0xA604}, + {0x5142, 0x5142, 0xA605}, {0x5143, 0x5143, 0xA606}, + {0x5144, 0x5144, 0xA607}, {0x5145, 0x5145, 0xA608}, + {0x5146, 0x5146, 0xA609}, {0x5147, 0x5147, 0xA60A}, + {0x5148, 0x5148, 0xA60B}, {0x5149, 0x5149, 0xA60C}, + {0x514A, 0x514A, 0xA60D}, {0x514B, 0x514B, 0xA60E}, + {0x514C, 0x514C, 0xA60F}, {0x514D, 0x514D, 0xA610}, + {0x514E, 0x514E, 0xA611}, {0x514F, 0x514F, 0xA612}, + {0x5150, 0x5150, 0xA613}, {0x5151, 0x5151, 0xA614}, + {0x5152, 0x5152, 0xA615}, {0x5153, 0x5153, 0xA616}, + {0x5154, 0x5154, 0xA617}, {0x5155, 0x5155, 0xA618}, + {0x5156, 0x5156, 0xA619}, {0x5157, 0x5157, 0xA61A}, + {0x5158, 0x5158, 0xA61B}, {0x5159, 0x5159, 0xA61C}, + {0x515A, 0x515A, 0xA61D}, {0x515B, 0x515B, 0xA61E}, + {0x515C, 0x515C, 0xA61F}, {0x515D, 0x515D, 0xA620}, + {0x515E, 0x515E, 0xA621}, {0x515F, 0x515F, 0xA622}, + {0x5160, 0x5160, 0xA623}, {0x5161, 0x5161, 0xA624}, + {0x5162, 0x5162, 0xA625}, {0x5163, 0x5163, 0xA626}, + {0x5164, 0x5164, 0xA627}, {0x5165, 0x5165, 0xA628}, + {0x5166, 0x5166, 0xA629}, {0x5167, 0x5167, 0xA62A}, + {0x5168, 0x5168, 0xA62B}, {0x5169, 0x5169, 0xA62C}, + {0x516A, 0x516A, 0xA62D}, {0x516B, 0x516B, 0xA62E}, + {0x516C, 0x516C, 0xA62F}, {0x516D, 0x516D, 0xA630}, + {0x516E, 0x516E, 0xA631}, {0x516F, 0x516F, 0xA632}, + {0x5170, 0x5170, 0xA633}, {0x5171, 0x5171, 0xA634}, + {0x5172, 0x5172, 0xA635}, {0x5173, 0x5173, 0xA636}, + {0x5174, 0x5174, 0xA637}, {0x5175, 0x5175, 0xA638}, + {0x5176, 0x5176, 0xA639}, {0x5177, 0x5177, 0xA63A}, + {0x5178, 0x5178, 0xA63B}, {0x5179, 0x5179, 0xA63C}, + {0x517A, 0x517A, 0xA63D}, {0x517B, 0x517B, 0xA63E}, + {0x517C, 0x517C, 0xA63F}, {0x517D, 0x517E, 0xA640}, + {0x517D, 0x517E, 0xA640}, {0x517F, 0x5180, 0xA642}, + {0x517F, 0x5180, 0xA642}, {0x5181, 0x5182, 0xA644}, + {0x5181, 0x5182, 0xA644}, {0x5183, 0x5184, 0xA646}, + {0x5183, 0x5184, 0xA646}, {0x5185, 0x5186, 0xA648}, + {0x5185, 0x5186, 0xA648}, {0x5187, 0x5188, 0xA64A}, + {0x5187, 0x5188, 0xA64A}, {0x5189, 0x518A, 0xA64C}, + {0x5189, 0x518A, 0xA64C}, {0x518B, 0x518C, 0xA64E}, + {0x518B, 0x518C, 0xA64E}, {0x518D, 0x518E, 0xA650}, + {0x518D, 0x518E, 0xA650}, {0x518F, 0x5190, 0xA652}, + {0x518F, 0x5190, 0xA652}, {0x5191, 0x5192, 0xA654}, + {0x5191, 0x5192, 0xA654}, {0x5193, 0x5194, 0xA656}, + {0x5193, 0x5194, 0xA656}, {0x5195, 0x5196, 0xA658}, + {0x5195, 0x5196, 0xA658}, {0x5197, 0x5198, 0xA65A}, + {0x5197, 0x5198, 0xA65A}, {0x5199, 0x519A, 0xA65C}, + {0x5199, 0x519A, 0xA65C}, {0x519B, 0x519C, 0xA65E}, + {0x519B, 0x519C, 0xA65E}, {0x519D, 0x519D, 0xA660}, + {0x519E, 0x519E, 0xA661}, {0x519F, 0x51A0, 0xA662}, + {0x519F, 0x51A0, 0xA662}, {0x51A1, 0x51A2, 0xA664}, + {0x51A1, 0x51A2, 0xA664}, {0x51A3, 0x51A4, 0xA666}, + {0x51A3, 0x51A4, 0xA666}, {0x51A5, 0x51A6, 0xA668}, + {0x51A5, 0x51A6, 0xA668}, {0x51A7, 0x51A8, 0xA66A}, + {0x51A7, 0x51A8, 0xA66A}, {0x51A9, 0x51AA, 0xA66C}, + {0x51A9, 0x51AA, 0xA66C}, {0x51AB, 0x51AB, 0xA66E}, + {0x51AC, 0x51AC, 0xA66F}, {0x51AD, 0x51AD, 0xA670}, + {0x51AE, 0x51AE, 0xA671}, {0x51AF, 0x51AF, 0xA672}, + {0x51B0, 0x51B0, 0xA673}, {0x51B1, 0x51B1, 0xA674}, + {0x51B2, 0x51B2, 0xA675}, {0x51B3, 0x51B3, 0xA676}, + {0x51B4, 0x51B4, 0xA677}, {0x51B5, 0x51B5, 0xA678}, + {0x51B6, 0x51B6, 0xA679}, {0x51B7, 0x51B7, 0xA67A}, + {0x51B8, 0x51B8, 0xA67B}, {0x51B9, 0x51B9, 0xA67C}, + {0x51BA, 0x51BA, 0xA67D}, {0x51BB, 0x51BB, 0xA67E}, + {0x51BC, 0x51BC, 0xA67F}, {0x51BD, 0x51BE, 0xA680}, + {0x51BD, 0x51BE, 0xA680}, {0x51BF, 0x51C0, 0xA682}, + {0x51BF, 0x51C0, 0xA682}, {0x51C1, 0x51C2, 0xA684}, + {0x51C1, 0x51C2, 0xA684}, {0x51C3, 0x51C4, 0xA686}, + {0x51C3, 0x51C4, 0xA686}, {0x51C5, 0x51C6, 0xA688}, + {0x51C5, 0x51C6, 0xA688}, {0x51C7, 0x51C8, 0xA68A}, + {0x51C7, 0x51C8, 0xA68A}, {0x51C9, 0x51CA, 0xA68C}, + {0x51C9, 0x51CA, 0xA68C}, {0x51CB, 0x51CC, 0xA68E}, + {0x51CB, 0x51CC, 0xA68E}, {0x51CD, 0x51CE, 0xA690}, + {0x51CD, 0x51CE, 0xA690}, {0x51CF, 0x51D0, 0xA692}, + {0x51CF, 0x51D0, 0xA692}, {0x51D1, 0x51D2, 0xA694}, + {0x51D1, 0x51D2, 0xA694}, {0x51D3, 0x51D4, 0xA696}, + {0x51D3, 0x51D4, 0xA696}, {0x51D5, 0x51D5, 0xA698}, + {0x51D6, 0x51D6, 0xA699}, {0x51D7, 0x51D7, 0xA69A}, + {0x51D8, 0x51D8, 0xA69B}, {0x51D9, 0x51D9, 0xA69C}, + {0x51DA, 0x51DA, 0xA69D}, {0x51DB, 0x51DB, 0xA69E}, + {0x51DC, 0x51DC, 0xA69F}, {0x51DD, 0x51DD, 0xA6A0}, + {0x51DE, 0x51DE, 0xA6A1}, {0x51DF, 0x51DF, 0xA6A2}, + {0x51E0, 0x51E0, 0xA6A3}, {0x51E1, 0x51E1, 0xA6A4}, + {0x51E2, 0x51E2, 0xA6A5}, {0x51E3, 0x51E3, 0xA6A6}, + {0x51E4, 0x51E4, 0xA6A7}, {0x51E5, 0x51E5, 0xA6A8}, + {0x51E6, 0x51E6, 0xA6A9}, {0x51E7, 0x51E7, 0xA6AA}, + {0x51E8, 0x51E8, 0xA6AB}, {0x51E9, 0x51E9, 0xA6AC}, + {0x51EA, 0x51EA, 0xA6AD}, {0x51EB, 0x51EB, 0xA6AE}, + {0x51EC, 0x51EC, 0xA6AF}, {0x51ED, 0x51ED, 0xA6B0}, + {0x51EE, 0x51EE, 0xA6B1}, {0x51EF, 0x51EF, 0xA6B2}, + {0x51F0, 0x51F0, 0xA6B3}, {0x51F1, 0x51F1, 0xA6B4}, + {0x51F2, 0x51F2, 0xA6B5}, {0x51F3, 0x51F3, 0xA6B6}, + {0x51F4, 0x51F4, 0xA6B7}, {0x51F5, 0x51F5, 0xA6B8}, + {0x51F6, 0x51F6, 0xA6B9}, {0x51F7, 0x51F7, 0xA6BA}, + {0x51F8, 0x51F8, 0xA6BB}, {0x51F9, 0x51F9, 0xA6BC}, + {0x51FA, 0x51FA, 0xA6BD}, {0x51FB, 0x51FB, 0xA6BE}, + {0x51FC, 0x51FC, 0xA6BF}, {0x51FD, 0x51FD, 0xA6C0}, + {0x51FE, 0x51FE, 0xA6C1}, {0x51FF, 0x51FF, 0xA6C2} +}; + +/** + Unicase array for 0x5200-0x52FF + All are the diff(diff between code and 81308130, plus 0x80) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER plane52[]= +{ + {0x5200, 0x5200, 0xA6C3}, {0x5201, 0x5201, 0xA6C4}, + {0x5202, 0x5202, 0xA6C5}, {0x5203, 0x5203, 0xA6C6}, + {0x5204, 0x5204, 0xA6C7}, {0x5205, 0x5205, 0xA6C8}, + {0x5206, 0x5206, 0xA6C9}, {0x5207, 0x5207, 0xA6CA}, + {0x5208, 0x5208, 0xA6CB}, {0x5209, 0x5209, 0xA6CC}, + {0x520A, 0x520A, 0xA6CD}, {0x520B, 0x520B, 0xA6CE}, + {0x520C, 0x520C, 0xA6CF}, {0x520D, 0x520D, 0xA6D0}, + {0x520E, 0x520E, 0xA6D1}, {0x520F, 0x520F, 0xA6D2}, + {0x5210, 0x5210, 0xA6D3}, {0x5211, 0x5211, 0xA6D4}, + {0x5212, 0x5212, 0xA6D5}, {0x5213, 0x5213, 0xA6D6}, + {0x5214, 0x5214, 0xA6D7}, {0x5215, 0x5215, 0xA6D8}, + {0x5216, 0x5216, 0xA6D9}, {0x5217, 0x5217, 0xA6DA}, + {0x5218, 0x5218, 0xA6DB}, {0x5219, 0x5219, 0xA6DC}, + {0x521A, 0x521A, 0xA6DD}, {0x521B, 0x521B, 0xA6DE}, + {0x521C, 0x521C, 0xA6DF}, {0x521D, 0x521D, 0xA6E0}, + {0x521E, 0x521E, 0xA6E1}, {0x521F, 0x521F, 0xA6E2}, + {0x5220, 0x5220, 0xA6E3}, {0x5221, 0x5221, 0xA6E4}, + {0x5222, 0x5222, 0xA6E5}, {0x5223, 0x5223, 0xA6E6}, + {0x5224, 0x5224, 0xA6E7}, {0x5225, 0x5225, 0xA6E8}, + {0x5226, 0x5226, 0xA6E9}, {0x5227, 0x5227, 0xA6EA}, + {0x5228, 0x5228, 0xA6EB}, {0x5229, 0x5229, 0xA6EC}, + {0x522A, 0x522A, 0xA6ED}, {0x522B, 0x522B, 0xA6EE}, + {0x522C, 0x522C, 0xA6EF}, {0x522D, 0x522D, 0xA6F0}, + {0x522E, 0x522E, 0xA6F1}, {0x522F, 0x522F, 0xA6F2}, + {0x5230, 0x5230, 0xA6F3}, {0x5231, 0x5231, 0xA6F4}, + {0x5232, 0x5232, 0xA6F5}, {0x5233, 0x5233, 0xA6F6}, + {0x5234, 0x5234, 0xA6F7}, {0x5235, 0x5235, 0xA6F8}, + {0x5236, 0x5236, 0xA6F9}, {0x5237, 0x5237, 0xA6FA}, + {0x5238, 0x5238, 0xA6FB}, {0x5239, 0x5239, 0xA6FC}, + {0x523A, 0x523A, 0xA6FD}, {0x523B, 0x523B, 0xA6FE}, + {0x523C, 0x523C, 0xA6FF}, {0x523D, 0x523D, 0xA700}, + {0x523E, 0x523E, 0xA701}, {0x523F, 0x523F, 0xA702}, + {0x5240, 0x5240, 0xA703}, {0x5241, 0x5241, 0xA704}, + {0x5242, 0x5242, 0xA705}, {0x5243, 0x5243, 0xA706}, + {0x5244, 0x5244, 0xA707}, {0x5245, 0x5245, 0xA708}, + {0x5246, 0x5246, 0xA709}, {0x5247, 0x5247, 0xA70A}, + {0x5248, 0x5248, 0xA70B}, {0x5249, 0x5249, 0xA70C}, + {0x524A, 0x524A, 0xA70D}, {0x524B, 0x524B, 0xA70E}, + {0x524C, 0x524C, 0xA70F}, {0x524D, 0x524D, 0xA710}, + {0x524E, 0x524E, 0xA711}, {0x524F, 0x524F, 0xA712}, + {0x5250, 0x5250, 0xA713}, {0x5251, 0x5251, 0xA714}, + {0x5252, 0x5252, 0xA715}, {0x5253, 0x5253, 0xA716}, + {0x5254, 0x5254, 0xA717}, {0x5255, 0x5255, 0xA718}, + {0x5256, 0x5256, 0xA719}, {0x5257, 0x5257, 0xA71A}, + {0x5258, 0x5258, 0xA71B}, {0x5259, 0x5259, 0xA71C}, + {0x525A, 0x525A, 0xA71D}, {0x525B, 0x525B, 0xA71E}, + {0x525C, 0x525C, 0xA71F}, {0x525D, 0x525D, 0xA720}, + {0x525E, 0x525E, 0xA721}, {0x525F, 0x5260, 0xA722}, + {0x525F, 0x5260, 0xA722}, {0x5261, 0x5262, 0xA724}, + {0x5261, 0x5262, 0xA724}, {0x5263, 0x5264, 0xA726}, + {0x5263, 0x5264, 0xA726}, {0x5265, 0x5266, 0xA728}, + {0x5265, 0x5266, 0xA728}, {0x5267, 0x5268, 0xA72A}, + {0x5267, 0x5268, 0xA72A}, {0x5269, 0x526A, 0xA72C}, + {0x5269, 0x526A, 0xA72C}, {0x526B, 0x526C, 0xA72E}, + {0x526B, 0x526C, 0xA72E}, {0x526D, 0x526D, 0xA730}, + {0x526E, 0x526E, 0xA731}, {0x526F, 0x5270, 0xA732}, + {0x526F, 0x5270, 0xA732}, {0x5271, 0x5272, 0xA734}, + {0x5271, 0x5272, 0xA734}, {0x5273, 0x5274, 0xA736}, + {0x5273, 0x5274, 0xA736}, {0x5275, 0x5276, 0xA738}, + {0x5275, 0x5276, 0xA738}, {0x5277, 0x5278, 0xA73A}, + {0x5277, 0x5278, 0xA73A}, {0x5279, 0x527A, 0xA73C}, + {0x5279, 0x527A, 0xA73C}, {0x527B, 0x527C, 0xA73E}, + {0x527B, 0x527C, 0xA73E}, {0x527D, 0x527E, 0xA740}, + {0x527D, 0x527E, 0xA740}, {0x527F, 0x5280, 0xA742}, + {0x527F, 0x5280, 0xA742}, {0x5281, 0x5282, 0xA744}, + {0x5281, 0x5282, 0xA744}, {0x5283, 0x5284, 0xA746}, + {0x5283, 0x5284, 0xA746}, {0x5285, 0x5286, 0xA748}, + {0x5285, 0x5286, 0xA748}, {0x5287, 0x5288, 0xA74A}, + {0x5287, 0x5288, 0xA74A}, {0x5289, 0x528A, 0xA74C}, + {0x5289, 0x528A, 0xA74C}, {0x528B, 0x528C, 0xA74E}, + {0x528B, 0x528C, 0xA74E}, {0x528D, 0x528E, 0xA750}, + {0x528D, 0x528E, 0xA750}, {0x528F, 0x5290, 0xA752}, + {0x528F, 0x5290, 0xA752}, {0x5291, 0x5292, 0xA754}, + {0x5291, 0x5292, 0xA754}, {0x5293, 0x5294, 0xA756}, + {0x5293, 0x5294, 0xA756}, {0x5295, 0x5296, 0xA758}, + {0x5295, 0x5296, 0xA758}, {0x5297, 0x5298, 0xA75A}, + {0x5297, 0x5298, 0xA75A}, {0x5299, 0x529A, 0xA75C}, + {0x5299, 0x529A, 0xA75C}, {0x529B, 0x529C, 0xA75E}, + {0x529B, 0x529C, 0xA75E}, {0x529D, 0x529E, 0xA760}, + {0x529D, 0x529E, 0xA760}, {0x529F, 0x52A0, 0xA762}, + {0x529F, 0x52A0, 0xA762}, {0x52A1, 0x52A2, 0xA764}, + {0x52A1, 0x52A2, 0xA764}, {0x52A3, 0x52A4, 0xA766}, + {0x52A3, 0x52A4, 0xA766}, {0x52A5, 0x52A6, 0xA768}, + {0x52A5, 0x52A6, 0xA768}, {0x52A7, 0x52A8, 0xA76A}, + {0x52A7, 0x52A8, 0xA76A}, {0x52A9, 0x52AA, 0xA76C}, + {0x52A9, 0x52AA, 0xA76C}, {0x52AB, 0x52AC, 0xA76E}, + {0x52AB, 0x52AC, 0xA76E}, {0x52AD, 0x52AD, 0xA770}, + {0x52AE, 0x52AE, 0xA771}, {0x52AF, 0x52AF, 0xA772}, + {0x52B0, 0x52B0, 0xA773}, {0x52B1, 0x52B1, 0xA774}, + {0x52B2, 0x52B2, 0xA775}, {0x52B3, 0x52B3, 0xA776}, + {0x52B4, 0x52B4, 0xA777}, {0x52B5, 0x52B5, 0xA778}, + {0x52B6, 0x52B7, 0xA779}, {0x52B6, 0x52B7, 0xA779}, + {0x52B8, 0x52B9, 0xA77B}, {0x52B8, 0x52B9, 0xA77B}, + {0x52BA, 0x1CDB, 0xA77D}, {0x52BB, 0x52BC, 0xA77E}, + {0x52BB, 0x52BC, 0xA77E}, {0x52BD, 0x52BE, 0xA780}, + {0x52BD, 0x52BE, 0xA780}, {0x52BF, 0x52C0, 0xA782}, + {0x52BF, 0x52C0, 0xA782}, {0x52C1, 0x52C2, 0xA784}, + {0x52C1, 0x52C2, 0xA784}, {0x52C3, 0x52C4, 0xA786}, + {0x52C3, 0x52C4, 0xA786}, {0x52C5, 0x52C5, 0xA788}, + {0x52C6, 0x52C6, 0xA789}, {0x52C7, 0x52C7, 0xA78A}, + {0x52C8, 0x52C9, 0xA78B}, {0x52C8, 0x52C9, 0xA78B}, + {0x52CA, 0x52CA, 0xA78D}, {0x52CB, 0x52CB, 0xA78E}, + {0x52CC, 0x52CC, 0xA78F}, {0x52CD, 0x52CD, 0xA790}, + {0x52CE, 0x52CE, 0xA791}, {0x52CF, 0x52CF, 0xA792}, + {0x52D0, 0x52D0, 0xA793}, {0x52D1, 0x52D1, 0xA794}, + {0x52D2, 0x52D2, 0xA795}, {0x52D3, 0x52D3, 0xA796}, + {0x52D4, 0x52D4, 0xA797}, {0x52D5, 0x52D5, 0xA798}, + {0x52D6, 0x52D6, 0xA799}, {0x52D7, 0x52D7, 0xA79A}, + {0x52D8, 0x52D8, 0xA79B}, {0x52D9, 0x52D9, 0xA79C}, + {0x52DA, 0x52DA, 0xA79D}, {0x52DB, 0x52DB, 0xA79E}, + {0x52DC, 0x52DC, 0xA79F}, {0x52DD, 0x52DD, 0xA7A0}, + {0x52DE, 0x52DE, 0xA7A1}, {0x52DF, 0x52DF, 0xA7A2}, + {0x52E0, 0x52E0, 0xA7A3}, {0x52E1, 0x52E1, 0xA7A4}, + {0x52E2, 0x52E2, 0xA7A5}, {0x52E3, 0x52E3, 0xA7A6}, + {0x52E4, 0x52E4, 0xA7A7}, {0x52E5, 0x52E5, 0xA7A8}, + {0x52E6, 0x52E6, 0xA7A9}, {0x52E7, 0x52E7, 0xA7AA}, + {0x52E8, 0x52E8, 0xA7AB}, {0x52E9, 0x52E9, 0xA7AC}, + {0x52EA, 0x52EA, 0xA7AD}, {0x52EB, 0x52EB, 0xA7AE}, + {0x52EC, 0x52EC, 0xA7AF}, {0x52ED, 0x52ED, 0xA7B0}, + {0x52EE, 0x52EE, 0xA7B1}, {0x52EF, 0x52EF, 0xA7B2}, + {0x52F0, 0x52F0, 0xA7B3}, {0x52F1, 0x52F1, 0xA7B4}, + {0x52F2, 0x52F2, 0xA7B5}, {0x52F3, 0x52F3, 0xA7B6}, + {0x52F4, 0x52F4, 0xA7B7}, {0x52F5, 0x52F5, 0xA7B8}, + {0x52F6, 0x52F6, 0xA7B9}, {0x52F7, 0x52F7, 0xA7BA}, + {0x52F8, 0x52F8, 0xA7BB}, {0x52F9, 0x52F9, 0xA7BC}, + {0x52FA, 0x52FA, 0xA7BD}, {0x52FB, 0x52FB, 0xA7BE}, + {0x52FC, 0x52FC, 0xA7BF}, {0x52FD, 0x52FD, 0xA7C0}, + {0x52FE, 0x52FE, 0xA7C1}, {0x52FF, 0x52FF, 0xA7C2} +}; + +/** + Unicase array for 0xA200-0xA2FF + All are for 2-byte code points directly +*/ +static const MY_UNICASE_CHARACTER planeA2[]= +{ + {0xA200, 0xA200, 0x003F}, {0xA201, 0xA201, 0x003F}, + {0xA202, 0xA202, 0x003F}, {0xA203, 0xA203, 0x003F}, + {0xA204, 0xA204, 0x003F}, {0xA205, 0xA205, 0x003F}, + {0xA206, 0xA206, 0x003F}, {0xA207, 0xA207, 0x003F}, + {0xA208, 0xA208, 0x003F}, {0xA209, 0xA209, 0x003F}, + {0xA20A, 0xA20A, 0x003F}, {0xA20B, 0xA20B, 0x003F}, + {0xA20C, 0xA20C, 0x003F}, {0xA20D, 0xA20D, 0x003F}, + {0xA20E, 0xA20E, 0x003F}, {0xA20F, 0xA20F, 0x003F}, + {0xA210, 0xA210, 0x003F}, {0xA211, 0xA211, 0x003F}, + {0xA212, 0xA212, 0x003F}, {0xA213, 0xA213, 0x003F}, + {0xA214, 0xA214, 0x003F}, {0xA215, 0xA215, 0x003F}, + {0xA216, 0xA216, 0x003F}, {0xA217, 0xA217, 0x003F}, + {0xA218, 0xA218, 0x003F}, {0xA219, 0xA219, 0x003F}, + {0xA21A, 0xA21A, 0x003F}, {0xA21B, 0xA21B, 0x003F}, + {0xA21C, 0xA21C, 0x003F}, {0xA21D, 0xA21D, 0x003F}, + {0xA21E, 0xA21E, 0x003F}, {0xA21F, 0xA21F, 0x003F}, + {0xA220, 0xA220, 0x003F}, {0xA221, 0xA221, 0x003F}, + {0xA222, 0xA222, 0x003F}, {0xA223, 0xA223, 0x003F}, + {0xA224, 0xA224, 0x003F}, {0xA225, 0xA225, 0x003F}, + {0xA226, 0xA226, 0x003F}, {0xA227, 0xA227, 0x003F}, + {0xA228, 0xA228, 0x003F}, {0xA229, 0xA229, 0x003F}, + {0xA22A, 0xA22A, 0x003F}, {0xA22B, 0xA22B, 0x003F}, + {0xA22C, 0xA22C, 0x003F}, {0xA22D, 0xA22D, 0x003F}, + {0xA22E, 0xA22E, 0x003F}, {0xA22F, 0xA22F, 0x003F}, + {0xA230, 0xA230, 0x003F}, {0xA231, 0xA231, 0x003F}, + {0xA232, 0xA232, 0x003F}, {0xA233, 0xA233, 0x003F}, + {0xA234, 0xA234, 0x003F}, {0xA235, 0xA235, 0x003F}, + {0xA236, 0xA236, 0x003F}, {0xA237, 0xA237, 0x003F}, + {0xA238, 0xA238, 0x003F}, {0xA239, 0xA239, 0x003F}, + {0xA23A, 0xA23A, 0x003F}, {0xA23B, 0xA23B, 0x003F}, + {0xA23C, 0xA23C, 0x003F}, {0xA23D, 0xA23D, 0x003F}, + {0xA23E, 0xA23E, 0x003F}, {0xA23F, 0xA23F, 0x003F}, + {0xA240, 0xA240, 0xE526}, {0xA241, 0xA241, 0xE527}, + {0xA242, 0xA242, 0xE528}, {0xA243, 0xA243, 0xE529}, + {0xA244, 0xA244, 0xE52A}, {0xA245, 0xA245, 0xE52B}, + {0xA246, 0xA246, 0xE52C}, {0xA247, 0xA247, 0xE52D}, + {0xA248, 0xA248, 0xE52E}, {0xA249, 0xA249, 0xE52F}, + {0xA24A, 0xA24A, 0xE530}, {0xA24B, 0xA24B, 0xE531}, + {0xA24C, 0xA24C, 0xE532}, {0xA24D, 0xA24D, 0xE533}, + {0xA24E, 0xA24E, 0xE534}, {0xA24F, 0xA24F, 0xE535}, + {0xA250, 0xA250, 0xE536}, {0xA251, 0xA251, 0xE537}, + {0xA252, 0xA252, 0xE538}, {0xA253, 0xA253, 0xE539}, + {0xA254, 0xA254, 0xE53A}, {0xA255, 0xA255, 0xE53B}, + {0xA256, 0xA256, 0xE53C}, {0xA257, 0xA257, 0xE53D}, + {0xA258, 0xA258, 0xE53E}, {0xA259, 0xA259, 0xE53F}, + {0xA25A, 0xA25A, 0xE540}, {0xA25B, 0xA25B, 0xE541}, + {0xA25C, 0xA25C, 0xE542}, {0xA25D, 0xA25D, 0xE543}, + {0xA25E, 0xA25E, 0xE544}, {0xA25F, 0xA25F, 0xE545}, + {0xA260, 0xA260, 0xE546}, {0xA261, 0xA261, 0xE547}, + {0xA262, 0xA262, 0xE548}, {0xA263, 0xA263, 0xE549}, + {0xA264, 0xA264, 0xE54A}, {0xA265, 0xA265, 0xE54B}, + {0xA266, 0xA266, 0xE54C}, {0xA267, 0xA267, 0xE54D}, + {0xA268, 0xA268, 0xE54E}, {0xA269, 0xA269, 0xE54F}, + {0xA26A, 0xA26A, 0xE550}, {0xA26B, 0xA26B, 0xE551}, + {0xA26C, 0xA26C, 0xE552}, {0xA26D, 0xA26D, 0xE553}, + {0xA26E, 0xA26E, 0xE554}, {0xA26F, 0xA26F, 0xE555}, + {0xA270, 0xA270, 0xE556}, {0xA271, 0xA271, 0xE557}, + {0xA272, 0xA272, 0xE558}, {0xA273, 0xA273, 0xE559}, + {0xA274, 0xA274, 0xE55A}, {0xA275, 0xA275, 0xE55B}, + {0xA276, 0xA276, 0xE55C}, {0xA277, 0xA277, 0xE55D}, + {0xA278, 0xA278, 0xE55E}, {0xA279, 0xA279, 0xE55F}, + {0xA27A, 0xA27A, 0xE560}, {0xA27B, 0xA27B, 0xE561}, + {0xA27C, 0xA27C, 0xE562}, {0xA27D, 0xA27D, 0xE563}, + {0xA27E, 0xA27E, 0xE564}, {0xA27F, 0xA27F, 0x003F}, + {0xA280, 0xA280, 0xE565}, {0xA281, 0xA281, 0xE566}, + {0xA282, 0xA282, 0xE567}, {0xA283, 0xA283, 0xE568}, + {0xA284, 0xA284, 0xE569}, {0xA285, 0xA285, 0xE56A}, + {0xA286, 0xA286, 0xE56B}, {0xA287, 0xA287, 0xE56C}, + {0xA288, 0xA288, 0xE56D}, {0xA289, 0xA289, 0xE56E}, + {0xA28A, 0xA28A, 0xE56F}, {0xA28B, 0xA28B, 0xE570}, + {0xA28C, 0xA28C, 0xE571}, {0xA28D, 0xA28D, 0xE572}, + {0xA28E, 0xA28E, 0xE573}, {0xA28F, 0xA28F, 0xE574}, + {0xA290, 0xA290, 0xE575}, {0xA291, 0xA291, 0xE576}, + {0xA292, 0xA292, 0xE577}, {0xA293, 0xA293, 0xE578}, + {0xA294, 0xA294, 0xE579}, {0xA295, 0xA295, 0xE57A}, + {0xA296, 0xA296, 0xE57B}, {0xA297, 0xA297, 0xE57C}, + {0xA298, 0xA298, 0xE57D}, {0xA299, 0xA299, 0xE57E}, + {0xA29A, 0xA29A, 0xE57F}, {0xA29B, 0xA29B, 0xE580}, + {0xA29C, 0xA29C, 0xE581}, {0xA29D, 0xA29D, 0xE582}, + {0xA29E, 0xA29E, 0xE583}, {0xA29F, 0xA29F, 0xE584}, + {0xA2A0, 0xA2A0, 0xE585}, {0xA2F1, 0xA2A1, 0x2160}, + {0xA2F2, 0xA2A2, 0x2161}, {0xA2F3, 0xA2A3, 0x2162}, + {0xA2F4, 0xA2A4, 0x2163}, {0xA2F5, 0xA2A5, 0x2164}, + {0xA2F6, 0xA2A6, 0x2165}, {0xA2F7, 0xA2A7, 0x2166}, + {0xA2F8, 0xA2A8, 0x2167}, {0xA2F9, 0xA2A9, 0x2168}, + {0xA2FA, 0xA2AA, 0x2169}, {0xA2AB, 0xA2AB, 0xE766}, + {0xA2AC, 0xA2AC, 0xE767}, {0xA2AD, 0xA2AD, 0xE768}, + {0xA2AE, 0xA2AE, 0xE769}, {0xA2AF, 0xA2AF, 0xE76A}, + {0xA2B0, 0xA2B0, 0xE76B}, {0xA2B1, 0xA2B1, 0x2488}, + {0xA2B2, 0xA2B2, 0x2489}, {0xA2B3, 0xA2B3, 0x248A}, + {0xA2B4, 0xA2B4, 0x248B}, {0xA2B5, 0xA2B5, 0x248C}, + {0xA2B6, 0xA2B6, 0x248D}, {0xA2B7, 0xA2B7, 0x248E}, + {0xA2B8, 0xA2B8, 0x248F}, {0xA2B9, 0xA2B9, 0x2490}, + {0xA2BA, 0xA2BA, 0x2491}, {0xA2BB, 0xA2BB, 0x2492}, + {0xA2BC, 0xA2BC, 0x2493}, {0xA2BD, 0xA2BD, 0x2494}, + {0xA2BE, 0xA2BE, 0x2495}, {0xA2BF, 0xA2BF, 0x2496}, + {0xA2C0, 0xA2C0, 0x2497}, {0xA2C1, 0xA2C1, 0x2498}, + {0xA2C2, 0xA2C2, 0x2499}, {0xA2C3, 0xA2C3, 0x249A}, + {0xA2C4, 0xA2C4, 0x249B}, {0xA2C5, 0xA2C5, 0x2474}, + {0xA2C6, 0xA2C6, 0x2475}, {0xA2C7, 0xA2C7, 0x2476}, + {0xA2C8, 0xA2C8, 0x2477}, {0xA2C9, 0xA2C9, 0x2478}, + {0xA2CA, 0xA2CA, 0x2479}, {0xA2CB, 0xA2CB, 0x247A}, + {0xA2CC, 0xA2CC, 0x247B}, {0xA2CD, 0xA2CD, 0x247C}, + {0xA2CE, 0xA2CE, 0x247D}, {0xA2CF, 0xA2CF, 0x247E}, + {0xA2D0, 0xA2D0, 0x247F}, {0xA2D1, 0xA2D1, 0x2480}, + {0xA2D2, 0xA2D2, 0x2481}, {0xA2D3, 0xA2D3, 0x2482}, + {0xA2D4, 0xA2D4, 0x2483}, {0xA2D5, 0xA2D5, 0x2484}, + {0xA2D6, 0xA2D6, 0x2485}, {0xA2D7, 0xA2D7, 0x2486}, + {0xA2D8, 0xA2D8, 0x2487}, {0xA2D9, 0xA2D9, 0x2460}, + {0xA2DA, 0xA2DA, 0x2461}, {0xA2DB, 0xA2DB, 0x2462}, + {0xA2DC, 0xA2DC, 0x2463}, {0xA2DD, 0xA2DD, 0x2464}, + {0xA2DE, 0xA2DE, 0x2465}, {0xA2DF, 0xA2DF, 0x2466}, + {0xA2E0, 0xA2E0, 0x2467}, {0xA2E1, 0xA2E1, 0x2468}, + {0xA2E2, 0xA2E2, 0x2469}, {0xA2E3, 0xA2E3, 0x20AC}, + {0xA2E4, 0xA2E4, 0xE76D}, {0xA2E5, 0xA2E5, 0x3220}, + {0xA2E6, 0xA2E6, 0x3221}, {0xA2E7, 0xA2E7, 0x3222}, + {0xA2E8, 0xA2E8, 0x3223}, {0xA2E9, 0xA2E9, 0x3224}, + {0xA2EA, 0xA2EA, 0x3225}, {0xA2EB, 0xA2EB, 0x3226}, + {0xA2EC, 0xA2EC, 0x3227}, {0xA2ED, 0xA2ED, 0x3228}, + {0xA2EE, 0xA2EE, 0x3229}, {0xA2EF, 0xA2EF, 0xE76E}, + {0xA2F0, 0xA2F0, 0xE76F}, {0xA2F1, 0xA2A1, 0x2160}, + {0xA2F2, 0xA2A2, 0x2161}, {0xA2F3, 0xA2A3, 0x2162}, + {0xA2F4, 0xA2A4, 0x2163}, {0xA2F5, 0xA2A5, 0x2164}, + {0xA2F6, 0xA2A6, 0x2165}, {0xA2F7, 0xA2A7, 0x2166}, + {0xA2F8, 0xA2A8, 0x2167}, {0xA2F9, 0xA2A9, 0x2168}, + {0xA2FA, 0xA2AA, 0x2169}, {0xA2FB, 0x20B0, 0x216A}, + {0xA2FC, 0x20B1, 0x216B}, {0xA2FD, 0xA2FD, 0xE770}, + {0xA2FE, 0xA2FE, 0xE771}, {0xA2FF, 0xA2FF, 0x003F} +}; + +/** + Unicase array for 0xA300-0xA3FF + All are for 2-byte code points directly +*/ +static const MY_UNICASE_CHARACTER planeA3[]= +{ + {0xA300, 0xA300, 0x003F}, {0xA301, 0xA301, 0x003F}, + {0xA302, 0xA302, 0x003F}, {0xA303, 0xA303, 0x003F}, + {0xA304, 0xA304, 0x003F}, {0xA305, 0xA305, 0x003F}, + {0xA306, 0xA306, 0x003F}, {0xA307, 0xA307, 0x003F}, + {0xA308, 0xA308, 0x003F}, {0xA309, 0xA309, 0x003F}, + {0xA30A, 0xA30A, 0x003F}, {0xA30B, 0xA30B, 0x003F}, + {0xA30C, 0xA30C, 0x003F}, {0xA30D, 0xA30D, 0x003F}, + {0xA30E, 0xA30E, 0x003F}, {0xA30F, 0xA30F, 0x003F}, + {0xA310, 0xA310, 0x003F}, {0xA311, 0xA311, 0x003F}, + {0xA312, 0xA312, 0x003F}, {0xA313, 0xA313, 0x003F}, + {0xA314, 0xA314, 0x003F}, {0xA315, 0xA315, 0x003F}, + {0xA316, 0xA316, 0x003F}, {0xA317, 0xA317, 0x003F}, + {0xA318, 0xA318, 0x003F}, {0xA319, 0xA319, 0x003F}, + {0xA31A, 0xA31A, 0x003F}, {0xA31B, 0xA31B, 0x003F}, + {0xA31C, 0xA31C, 0x003F}, {0xA31D, 0xA31D, 0x003F}, + {0xA31E, 0xA31E, 0x003F}, {0xA31F, 0xA31F, 0x003F}, + {0xA320, 0xA320, 0x003F}, {0xA321, 0xA321, 0x003F}, + {0xA322, 0xA322, 0x003F}, {0xA323, 0xA323, 0x003F}, + {0xA324, 0xA324, 0x003F}, {0xA325, 0xA325, 0x003F}, + {0xA326, 0xA326, 0x003F}, {0xA327, 0xA327, 0x003F}, + {0xA328, 0xA328, 0x003F}, {0xA329, 0xA329, 0x003F}, + {0xA32A, 0xA32A, 0x003F}, {0xA32B, 0xA32B, 0x003F}, + {0xA32C, 0xA32C, 0x003F}, {0xA32D, 0xA32D, 0x003F}, + {0xA32E, 0xA32E, 0x003F}, {0xA32F, 0xA32F, 0x003F}, + {0xA330, 0xA330, 0x003F}, {0xA331, 0xA331, 0x003F}, + {0xA332, 0xA332, 0x003F}, {0xA333, 0xA333, 0x003F}, + {0xA334, 0xA334, 0x003F}, {0xA335, 0xA335, 0x003F}, + {0xA336, 0xA336, 0x003F}, {0xA337, 0xA337, 0x003F}, + {0xA338, 0xA338, 0x003F}, {0xA339, 0xA339, 0x003F}, + {0xA33A, 0xA33A, 0x003F}, {0xA33B, 0xA33B, 0x003F}, + {0xA33C, 0xA33C, 0x003F}, {0xA33D, 0xA33D, 0x003F}, + {0xA33E, 0xA33E, 0x003F}, {0xA33F, 0xA33F, 0x003F}, + {0xA340, 0xA340, 0xE586}, {0xA341, 0xA341, 0xE587}, + {0xA342, 0xA342, 0xE588}, {0xA343, 0xA343, 0xE589}, + {0xA344, 0xA344, 0xE58A}, {0xA345, 0xA345, 0xE58B}, + {0xA346, 0xA346, 0xE58C}, {0xA347, 0xA347, 0xE58D}, + {0xA348, 0xA348, 0xE58E}, {0xA349, 0xA349, 0xE58F}, + {0xA34A, 0xA34A, 0xE590}, {0xA34B, 0xA34B, 0xE591}, + {0xA34C, 0xA34C, 0xE592}, {0xA34D, 0xA34D, 0xE593}, + {0xA34E, 0xA34E, 0xE594}, {0xA34F, 0xA34F, 0xE595}, + {0xA350, 0xA350, 0xE596}, {0xA351, 0xA351, 0xE597}, + {0xA352, 0xA352, 0xE598}, {0xA353, 0xA353, 0xE599}, + {0xA354, 0xA354, 0xE59A}, {0xA355, 0xA355, 0xE59B}, + {0xA356, 0xA356, 0xE59C}, {0xA357, 0xA357, 0xE59D}, + {0xA358, 0xA358, 0xE59E}, {0xA359, 0xA359, 0xE59F}, + {0xA35A, 0xA35A, 0xE5A0}, {0xA35B, 0xA35B, 0xE5A1}, + {0xA35C, 0xA35C, 0xE5A2}, {0xA35D, 0xA35D, 0xE5A3}, + {0xA35E, 0xA35E, 0xE5A4}, {0xA35F, 0xA35F, 0xE5A5}, + {0xA360, 0xA360, 0xE5A6}, {0xA361, 0xA361, 0xE5A7}, + {0xA362, 0xA362, 0xE5A8}, {0xA363, 0xA363, 0xE5A9}, + {0xA364, 0xA364, 0xE5AA}, {0xA365, 0xA365, 0xE5AB}, + {0xA366, 0xA366, 0xE5AC}, {0xA367, 0xA367, 0xE5AD}, + {0xA368, 0xA368, 0xE5AE}, {0xA369, 0xA369, 0xE5AF}, + {0xA36A, 0xA36A, 0xE5B0}, {0xA36B, 0xA36B, 0xE5B1}, + {0xA36C, 0xA36C, 0xE5B2}, {0xA36D, 0xA36D, 0xE5B3}, + {0xA36E, 0xA36E, 0xE5B4}, {0xA36F, 0xA36F, 0xE5B5}, + {0xA370, 0xA370, 0xE5B6}, {0xA371, 0xA371, 0xE5B7}, + {0xA372, 0xA372, 0xE5B8}, {0xA373, 0xA373, 0xE5B9}, + {0xA374, 0xA374, 0xE5BA}, {0xA375, 0xA375, 0xE5BB}, + {0xA376, 0xA376, 0xE5BC}, {0xA377, 0xA377, 0xE5BD}, + {0xA378, 0xA378, 0xE5BE}, {0xA379, 0xA379, 0xE5BF}, + {0xA37A, 0xA37A, 0xE5C0}, {0xA37B, 0xA37B, 0xE5C1}, + {0xA37C, 0xA37C, 0xE5C2}, {0xA37D, 0xA37D, 0xE5C3}, + {0xA37E, 0xA37E, 0xE5C4}, {0xA37F, 0xA37F, 0x003F}, + {0xA380, 0xA380, 0xE5C5}, {0xA381, 0xA381, 0xE5C6}, + {0xA382, 0xA382, 0xE5C7}, {0xA383, 0xA383, 0xE5C8}, + {0xA384, 0xA384, 0xE5C9}, {0xA385, 0xA385, 0xE5CA}, + {0xA386, 0xA386, 0xE5CB}, {0xA387, 0xA387, 0xE5CC}, + {0xA388, 0xA388, 0xE5CD}, {0xA389, 0xA389, 0xE5CE}, + {0xA38A, 0xA38A, 0xE5CF}, {0xA38B, 0xA38B, 0xE5D0}, + {0xA38C, 0xA38C, 0xE5D1}, {0xA38D, 0xA38D, 0xE5D2}, + {0xA38E, 0xA38E, 0xE5D3}, {0xA38F, 0xA38F, 0xE5D4}, + {0xA390, 0xA390, 0xE5D5}, {0xA391, 0xA391, 0xE5D6}, + {0xA392, 0xA392, 0xE5D7}, {0xA393, 0xA393, 0xE5D8}, + {0xA394, 0xA394, 0xE5D9}, {0xA395, 0xA395, 0xE5DA}, + {0xA396, 0xA396, 0xE5DB}, {0xA397, 0xA397, 0xE5DC}, + {0xA398, 0xA398, 0xE5DD}, {0xA399, 0xA399, 0xE5DE}, + {0xA39A, 0xA39A, 0xE5DF}, {0xA39B, 0xA39B, 0xE5E0}, + {0xA39C, 0xA39C, 0xE5E1}, {0xA39D, 0xA39D, 0xE5E2}, + {0xA39E, 0xA39E, 0xE5E3}, {0xA39F, 0xA39F, 0xE5E4}, + {0xA3A0, 0xA3A0, 0xE5E5}, {0xA3A1, 0xA3A1, 0xFF01}, + {0xA3A2, 0xA3A2, 0xFF02}, {0xA3A3, 0xA3A3, 0xFF03}, + {0xA3A4, 0xA3A4, 0xFFE5}, {0xA3A5, 0xA3A5, 0xFF05}, + {0xA3A6, 0xA3A6, 0xFF06}, {0xA3A7, 0xA3A7, 0xFF07}, + {0xA3A8, 0xA3A8, 0xFF08}, {0xA3A9, 0xA3A9, 0xFF09}, + {0xA3AA, 0xA3AA, 0xFF0A}, {0xA3AB, 0xA3AB, 0xFF0B}, + {0xA3AC, 0xA3AC, 0xFF0C}, {0xA3AD, 0xA3AD, 0xFF0D}, + {0xA3AE, 0xA3AE, 0xFF0E}, {0xA3AF, 0xA3AF, 0xFF0F}, + {0xA3B0, 0xA3B0, 0xFF10}, {0xA3B1, 0xA3B1, 0xFF11}, + {0xA3B2, 0xA3B2, 0xFF12}, {0xA3B3, 0xA3B3, 0xFF13}, + {0xA3B4, 0xA3B4, 0xFF14}, {0xA3B5, 0xA3B5, 0xFF15}, + {0xA3B6, 0xA3B6, 0xFF16}, {0xA3B7, 0xA3B7, 0xFF17}, + {0xA3B8, 0xA3B8, 0xFF18}, {0xA3B9, 0xA3B9, 0xFF19}, + {0xA3BA, 0xA3BA, 0xFF1A}, {0xA3BB, 0xA3BB, 0xFF1B}, + {0xA3BC, 0xA3BC, 0xFF1C}, {0xA3BD, 0xA3BD, 0xFF1D}, + {0xA3BE, 0xA3BE, 0xFF1E}, {0xA3BF, 0xA3BF, 0xFF1F}, + {0xA3C0, 0xA3C0, 0xFF20}, {0xA3C1, 0xA3E1, 0xFF21}, + {0xA3C2, 0xA3E2, 0xFF22}, {0xA3C3, 0xA3E3, 0xFF23}, + {0xA3C4, 0xA3E4, 0xFF24}, {0xA3C5, 0xA3E5, 0xFF25}, + {0xA3C6, 0xA3E6, 0xFF26}, {0xA3C7, 0xA3E7, 0xFF27}, + {0xA3C8, 0xA3E8, 0xFF28}, {0xA3C9, 0xA3E9, 0xFF29}, + {0xA3CA, 0xA3EA, 0xFF2A}, {0xA3CB, 0xA3EB, 0xFF2B}, + {0xA3CC, 0xA3EC, 0xFF2C}, {0xA3CD, 0xA3ED, 0xFF2D}, + {0xA3CE, 0xA3EE, 0xFF2E}, {0xA3CF, 0xA3EF, 0xFF2F}, + {0xA3D0, 0xA3F0, 0xFF30}, {0xA3D1, 0xA3F1, 0xFF31}, + {0xA3D2, 0xA3F2, 0xFF32}, {0xA3D3, 0xA3F3, 0xFF33}, + {0xA3D4, 0xA3F4, 0xFF34}, {0xA3D5, 0xA3F5, 0xFF35}, + {0xA3D6, 0xA3F6, 0xFF36}, {0xA3D7, 0xA3F7, 0xFF37}, + {0xA3D8, 0xA3F8, 0xFF38}, {0xA3D9, 0xA3F9, 0xFF39}, + {0xA3DA, 0xA3FA, 0xFF3A}, {0xA3DB, 0xA3DB, 0xFF3B}, + {0xA3DC, 0xA3DC, 0xFF3C}, {0xA3DD, 0xA3DD, 0xFF3D}, + {0xA3DE, 0xA3DE, 0xFF3E}, {0xA3DF, 0xA3DF, 0xFF3F}, + {0xA3E0, 0xA3E0, 0xFF40}, {0xA3C1, 0xA3E1, 0xFF21}, + {0xA3C2, 0xA3E2, 0xFF22}, {0xA3C3, 0xA3E3, 0xFF23}, + {0xA3C4, 0xA3E4, 0xFF24}, {0xA3C5, 0xA3E5, 0xFF25}, + {0xA3C6, 0xA3E6, 0xFF26}, {0xA3C7, 0xA3E7, 0xFF27}, + {0xA3C8, 0xA3E8, 0xFF28}, {0xA3C9, 0xA3E9, 0xFF29}, + {0xA3CA, 0xA3EA, 0xFF2A}, {0xA3CB, 0xA3EB, 0xFF2B}, + {0xA3CC, 0xA3EC, 0xFF2C}, {0xA3CD, 0xA3ED, 0xFF2D}, + {0xA3CE, 0xA3EE, 0xFF2E}, {0xA3CF, 0xA3EF, 0xFF2F}, + {0xA3D0, 0xA3F0, 0xFF30}, {0xA3D1, 0xA3F1, 0xFF31}, + {0xA3D2, 0xA3F2, 0xFF32}, {0xA3D3, 0xA3F3, 0xFF33}, + {0xA3D4, 0xA3F4, 0xFF34}, {0xA3D5, 0xA3F5, 0xFF35}, + {0xA3D6, 0xA3F6, 0xFF36}, {0xA3D7, 0xA3F7, 0xFF37}, + {0xA3D8, 0xA3F8, 0xFF38}, {0xA3D9, 0xA3F9, 0xFF39}, + {0xA3DA, 0xA3FA, 0xFF3A}, {0xA3FB, 0xA3FB, 0xFF5B}, + {0xA3FC, 0xA3FC, 0xFF5C}, {0xA3FD, 0xA3FD, 0xFF5D}, + {0xA3FE, 0xA3FE, 0xFFE3}, {0xA3FF, 0xA3FF, 0x003F} +}; + +/** + Unicase array for 0xA600-0xA6FF + All are for 2-byte code points directly +*/ +static const MY_UNICASE_CHARACTER planeA6[]= +{ + {0xA600, 0xA600, 0x003F}, {0xA601, 0xA601, 0x003F}, + {0xA602, 0xA602, 0x003F}, {0xA603, 0xA603, 0x003F}, + {0xA604, 0xA604, 0x003F}, {0xA605, 0xA605, 0x003F}, + {0xA606, 0xA606, 0x003F}, {0xA607, 0xA607, 0x003F}, + {0xA608, 0xA608, 0x003F}, {0xA609, 0xA609, 0x003F}, + {0xA60A, 0xA60A, 0x003F}, {0xA60B, 0xA60B, 0x003F}, + {0xA60C, 0xA60C, 0x003F}, {0xA60D, 0xA60D, 0x003F}, + {0xA60E, 0xA60E, 0x003F}, {0xA60F, 0xA60F, 0x003F}, + {0xA610, 0xA610, 0x003F}, {0xA611, 0xA611, 0x003F}, + {0xA612, 0xA612, 0x003F}, {0xA613, 0xA613, 0x003F}, + {0xA614, 0xA614, 0x003F}, {0xA615, 0xA615, 0x003F}, + {0xA616, 0xA616, 0x003F}, {0xA617, 0xA617, 0x003F}, + {0xA618, 0xA618, 0x003F}, {0xA619, 0xA619, 0x003F}, + {0xA61A, 0xA61A, 0x003F}, {0xA61B, 0xA61B, 0x003F}, + {0xA61C, 0xA61C, 0x003F}, {0xA61D, 0xA61D, 0x003F}, + {0xA61E, 0xA61E, 0x003F}, {0xA61F, 0xA61F, 0x003F}, + {0xA620, 0xA620, 0x003F}, {0xA621, 0xA621, 0x003F}, + {0xA622, 0xA622, 0x003F}, {0xA623, 0xA623, 0x003F}, + {0xA624, 0xA624, 0x003F}, {0xA625, 0xA625, 0x003F}, + {0xA626, 0xA626, 0x003F}, {0xA627, 0xA627, 0x003F}, + {0xA628, 0xA628, 0x003F}, {0xA629, 0xA629, 0x003F}, + {0xA62A, 0xA62A, 0x003F}, {0xA62B, 0xA62B, 0x003F}, + {0xA62C, 0xA62C, 0x003F}, {0xA62D, 0xA62D, 0x003F}, + {0xA62E, 0xA62E, 0x003F}, {0xA62F, 0xA62F, 0x003F}, + {0xA630, 0xA630, 0x003F}, {0xA631, 0xA631, 0x003F}, + {0xA632, 0xA632, 0x003F}, {0xA633, 0xA633, 0x003F}, + {0xA634, 0xA634, 0x003F}, {0xA635, 0xA635, 0x003F}, + {0xA636, 0xA636, 0x003F}, {0xA637, 0xA637, 0x003F}, + {0xA638, 0xA638, 0x003F}, {0xA639, 0xA639, 0x003F}, + {0xA63A, 0xA63A, 0x003F}, {0xA63B, 0xA63B, 0x003F}, + {0xA63C, 0xA63C, 0x003F}, {0xA63D, 0xA63D, 0x003F}, + {0xA63E, 0xA63E, 0x003F}, {0xA63F, 0xA63F, 0x003F}, + {0xA640, 0xA640, 0xE6A6}, {0xA641, 0xA641, 0xE6A7}, + {0xA642, 0xA642, 0xE6A8}, {0xA643, 0xA643, 0xE6A9}, + {0xA644, 0xA644, 0xE6AA}, {0xA645, 0xA645, 0xE6AB}, + {0xA646, 0xA646, 0xE6AC}, {0xA647, 0xA647, 0xE6AD}, + {0xA648, 0xA648, 0xE6AE}, {0xA649, 0xA649, 0xE6AF}, + {0xA64A, 0xA64A, 0xE6B0}, {0xA64B, 0xA64B, 0xE6B1}, + {0xA64C, 0xA64C, 0xE6B2}, {0xA64D, 0xA64D, 0xE6B3}, + {0xA64E, 0xA64E, 0xE6B4}, {0xA64F, 0xA64F, 0xE6B5}, + {0xA650, 0xA650, 0xE6B6}, {0xA651, 0xA651, 0xE6B7}, + {0xA652, 0xA652, 0xE6B8}, {0xA653, 0xA653, 0xE6B9}, + {0xA654, 0xA654, 0xE6BA}, {0xA655, 0xA655, 0xE6BB}, + {0xA656, 0xA656, 0xE6BC}, {0xA657, 0xA657, 0xE6BD}, + {0xA658, 0xA658, 0xE6BE}, {0xA659, 0xA659, 0xE6BF}, + {0xA65A, 0xA65A, 0xE6C0}, {0xA65B, 0xA65B, 0xE6C1}, + {0xA65C, 0xA65C, 0xE6C2}, {0xA65D, 0xA65D, 0xE6C3}, + {0xA65E, 0xA65E, 0xE6C4}, {0xA65F, 0xA65F, 0xE6C5}, + {0xA660, 0xA660, 0xE6C6}, {0xA661, 0xA661, 0xE6C7}, + {0xA662, 0xA662, 0xE6C8}, {0xA663, 0xA663, 0xE6C9}, + {0xA664, 0xA664, 0xE6CA}, {0xA665, 0xA665, 0xE6CB}, + {0xA666, 0xA666, 0xE6CC}, {0xA667, 0xA667, 0xE6CD}, + {0xA668, 0xA668, 0xE6CE}, {0xA669, 0xA669, 0xE6CF}, + {0xA66A, 0xA66A, 0xE6D0}, {0xA66B, 0xA66B, 0xE6D1}, + {0xA66C, 0xA66C, 0xE6D2}, {0xA66D, 0xA66D, 0xE6D3}, + {0xA66E, 0xA66E, 0xE6D4}, {0xA66F, 0xA66F, 0xE6D5}, + {0xA670, 0xA670, 0xE6D6}, {0xA671, 0xA671, 0xE6D7}, + {0xA672, 0xA672, 0xE6D8}, {0xA673, 0xA673, 0xE6D9}, + {0xA674, 0xA674, 0xE6DA}, {0xA675, 0xA675, 0xE6DB}, + {0xA676, 0xA676, 0xE6DC}, {0xA677, 0xA677, 0xE6DD}, + {0xA678, 0xA678, 0xE6DE}, {0xA679, 0xA679, 0xE6DF}, + {0xA67A, 0xA67A, 0xE6E0}, {0xA67B, 0xA67B, 0xE6E1}, + {0xA67C, 0xA67C, 0xE6E2}, {0xA67D, 0xA67D, 0xE6E3}, + {0xA67E, 0xA67E, 0xE6E4}, {0xA67F, 0xA67F, 0x003F}, + {0xA680, 0xA680, 0xE6E5}, {0xA681, 0xA681, 0xE6E6}, + {0xA682, 0xA682, 0xE6E7}, {0xA683, 0xA683, 0xE6E8}, + {0xA684, 0xA684, 0xE6E9}, {0xA685, 0xA685, 0xE6EA}, + {0xA686, 0xA686, 0xE6EB}, {0xA687, 0xA687, 0xE6EC}, + {0xA688, 0xA688, 0xE6ED}, {0xA689, 0xA689, 0xE6EE}, + {0xA68A, 0xA68A, 0xE6EF}, {0xA68B, 0xA68B, 0xE6F0}, + {0xA68C, 0xA68C, 0xE6F1}, {0xA68D, 0xA68D, 0xE6F2}, + {0xA68E, 0xA68E, 0xE6F3}, {0xA68F, 0xA68F, 0xE6F4}, + {0xA690, 0xA690, 0xE6F5}, {0xA691, 0xA691, 0xE6F6}, + {0xA692, 0xA692, 0xE6F7}, {0xA693, 0xA693, 0xE6F8}, + {0xA694, 0xA694, 0xE6F9}, {0xA695, 0xA695, 0xE6FA}, + {0xA696, 0xA696, 0xE6FB}, {0xA697, 0xA697, 0xE6FC}, + {0xA698, 0xA698, 0xE6FD}, {0xA699, 0xA699, 0xE6FE}, + {0xA69A, 0xA69A, 0xE6FF}, {0xA69B, 0xA69B, 0xE700}, + {0xA69C, 0xA69C, 0xE701}, {0xA69D, 0xA69D, 0xE702}, + {0xA69E, 0xA69E, 0xE703}, {0xA69F, 0xA69F, 0xE704}, + {0xA6A0, 0xA6A0, 0xE705}, {0xA6A1, 0xA6C1, 0x0391}, + {0xA6A2, 0xA6C2, 0x0392}, {0xA6A3, 0xA6C3, 0x0393}, + {0xA6A4, 0xA6C4, 0x0394}, {0xA6A5, 0xA6C5, 0x0395}, + {0xA6A6, 0xA6C6, 0x0396}, {0xA6A7, 0xA6C7, 0x0397}, + {0xA6A8, 0xA6C8, 0x0398}, {0xA6A9, 0xA6C9, 0x0399}, + {0xA6AA, 0xA6CA, 0x039A}, {0xA6AB, 0xA6CB, 0x039B}, + {0xA6AC, 0xA6CC, 0x039C}, {0xA6AD, 0xA6CD, 0x039D}, + {0xA6AE, 0xA6CE, 0x039E}, {0xA6AF, 0xA6CF, 0x039F}, + {0xA6B0, 0xA6D0, 0x03A0}, {0xA6B1, 0xA6D1, 0x03A1}, + {0xA6B2, 0xA6D2, 0x03A3}, {0xA6B3, 0xA6D3, 0x03A4}, + {0xA6B4, 0xA6D4, 0x03A5}, {0xA6B5, 0xA6D5, 0x03A6}, + {0xA6B6, 0xA6D6, 0x03A7}, {0xA6B7, 0xA6D7, 0x03A8}, + {0xA6B8, 0xA6D8, 0x03A9}, {0xA6B9, 0xA6B9, 0xE785}, + {0xA6BA, 0xA6BA, 0xE786}, {0xA6BB, 0xA6BB, 0xE787}, + {0xA6BC, 0xA6BC, 0xE788}, {0xA6BD, 0xA6BD, 0xE789}, + {0xA6BE, 0xA6BE, 0xE78A}, {0xA6BF, 0xA6BF, 0xE78B}, + {0xA6C0, 0xA6C0, 0xE78C}, {0xA6A1, 0xA6C1, 0x0391}, + {0xA6A2, 0xA6C2, 0x03D0}, {0xA6A3, 0xA6C3, 0x0393}, + {0xA6A4, 0xA6C4, 0x0394}, {0xA6A5, 0xA6C5, 0x03F5}, + {0xA6A6, 0xA6C6, 0x0396}, {0xA6A7, 0xA6C7, 0x0397}, + {0xA6A8, 0xA6C8, 0x03D1}, {0xA6A9, 0xA6C9, 0x0345}, + {0xA6AA, 0xA6CA, 0x03F0}, {0xA6AB, 0xA6CB, 0x039B}, + {0xA6AC, 0xA6CC, 0x00B5}, {0xA6AD, 0xA6CD, 0x039D}, + {0xA6AE, 0xA6CE, 0x039E}, {0xA6AF, 0xA6CF, 0x039F}, + {0xA6B0, 0xA6D0, 0x03D6}, {0xA6B1, 0xA6D1, 0x03F1}, + {0xA6B2, 0xA6D2, 0x03C2}, {0xA6B3, 0xA6D3, 0x03A4}, + {0xA6B4, 0xA6D4, 0x03A5}, {0xA6B5, 0xA6D5, 0x03D5}, + {0xA6B6, 0xA6D6, 0x03A7}, {0xA6B7, 0xA6D7, 0x03A8}, + {0xA6B8, 0xA6D8, 0x2126}, {0xA6D9, 0xA6D9, 0xE78D}, + {0xA6DA, 0xA6DA, 0xE78E}, {0xA6DB, 0xA6DB, 0xE78F}, + {0xA6DC, 0xA6DC, 0xE790}, {0xA6DD, 0xA6DD, 0xE791}, + {0xA6DE, 0xA6DE, 0xE792}, {0xA6DF, 0xA6DF, 0xE793}, + {0xA6E0, 0xA6E0, 0xFE35}, {0xA6E1, 0xA6E1, 0xFE36}, + {0xA6E2, 0xA6E2, 0xFE39}, {0xA6E3, 0xA6E3, 0xFE3A}, + {0xA6E4, 0xA6E4, 0xFE3F}, {0xA6E5, 0xA6E5, 0xFE40}, + {0xA6E6, 0xA6E6, 0xFE3D}, {0xA6E7, 0xA6E7, 0xFE3E}, + {0xA6E8, 0xA6E8, 0xFE41}, {0xA6E9, 0xA6E9, 0xFE42}, + {0xA6EA, 0xA6EA, 0xFE43}, {0xA6EB, 0xA6EB, 0xFE44}, + {0xA6EC, 0xA6EC, 0xE794}, {0xA6ED, 0xA6ED, 0xE795}, + {0xA6EE, 0xA6EE, 0xFE3B}, {0xA6EF, 0xA6EF, 0xFE3C}, + {0xA6F0, 0xA6F0, 0xFE37}, {0xA6F1, 0xA6F1, 0xFE38}, + {0xA6F2, 0xA6F2, 0xFE31}, {0xA6F3, 0xA6F3, 0xE796}, + {0xA6F4, 0xA6F4, 0xFE33}, {0xA6F5, 0xA6F5, 0xFE34}, + {0xA6F6, 0xA6F6, 0xE797}, {0xA6F7, 0xA6F7, 0xE798}, + {0xA6F8, 0xA6F8, 0xE799}, {0xA6F9, 0xA6F9, 0xE79A}, + {0xA6FA, 0xA6FA, 0xE79B}, {0xA6FB, 0xA6FB, 0xE79C}, + {0xA6FC, 0xA6FC, 0xE79D}, {0xA6FD, 0xA6FD, 0xE79E}, + {0xA6FE, 0xA6FE, 0xE79F}, {0xA6FF, 0xA6FF, 0x003F} +}; + +/** + Unicase array for 0xA700-0xA7FF + All are for 2-byte code points directly +*/ +static const MY_UNICASE_CHARACTER planeA7[]= +{ + {0xA700, 0xA700, 0x003F}, {0xA701, 0xA701, 0x003F}, + {0xA702, 0xA702, 0x003F}, {0xA703, 0xA703, 0x003F}, + {0xA704, 0xA704, 0x003F}, {0xA705, 0xA705, 0x003F}, + {0xA706, 0xA706, 0x003F}, {0xA707, 0xA707, 0x003F}, + {0xA708, 0xA708, 0x003F}, {0xA709, 0xA709, 0x003F}, + {0xA70A, 0xA70A, 0x003F}, {0xA70B, 0xA70B, 0x003F}, + {0xA70C, 0xA70C, 0x003F}, {0xA70D, 0xA70D, 0x003F}, + {0xA70E, 0xA70E, 0x003F}, {0xA70F, 0xA70F, 0x003F}, + {0xA710, 0xA710, 0x003F}, {0xA711, 0xA711, 0x003F}, + {0xA712, 0xA712, 0x003F}, {0xA713, 0xA713, 0x003F}, + {0xA714, 0xA714, 0x003F}, {0xA715, 0xA715, 0x003F}, + {0xA716, 0xA716, 0x003F}, {0xA717, 0xA717, 0x003F}, + {0xA718, 0xA718, 0x003F}, {0xA719, 0xA719, 0x003F}, + {0xA71A, 0xA71A, 0x003F}, {0xA71B, 0xA71B, 0x003F}, + {0xA71C, 0xA71C, 0x003F}, {0xA71D, 0xA71D, 0x003F}, + {0xA71E, 0xA71E, 0x003F}, {0xA71F, 0xA71F, 0x003F}, + {0xA720, 0xA720, 0x003F}, {0xA721, 0xA721, 0x003F}, + {0xA722, 0xA722, 0x003F}, {0xA723, 0xA723, 0x003F}, + {0xA724, 0xA724, 0x003F}, {0xA725, 0xA725, 0x003F}, + {0xA726, 0xA726, 0x003F}, {0xA727, 0xA727, 0x003F}, + {0xA728, 0xA728, 0x003F}, {0xA729, 0xA729, 0x003F}, + {0xA72A, 0xA72A, 0x003F}, {0xA72B, 0xA72B, 0x003F}, + {0xA72C, 0xA72C, 0x003F}, {0xA72D, 0xA72D, 0x003F}, + {0xA72E, 0xA72E, 0x003F}, {0xA72F, 0xA72F, 0x003F}, + {0xA730, 0xA730, 0x003F}, {0xA731, 0xA731, 0x003F}, + {0xA732, 0xA732, 0x003F}, {0xA733, 0xA733, 0x003F}, + {0xA734, 0xA734, 0x003F}, {0xA735, 0xA735, 0x003F}, + {0xA736, 0xA736, 0x003F}, {0xA737, 0xA737, 0x003F}, + {0xA738, 0xA738, 0x003F}, {0xA739, 0xA739, 0x003F}, + {0xA73A, 0xA73A, 0x003F}, {0xA73B, 0xA73B, 0x003F}, + {0xA73C, 0xA73C, 0x003F}, {0xA73D, 0xA73D, 0x003F}, + {0xA73E, 0xA73E, 0x003F}, {0xA73F, 0xA73F, 0x003F}, + {0xA740, 0xA740, 0xE706}, {0xA741, 0xA741, 0xE707}, + {0xA742, 0xA742, 0xE708}, {0xA743, 0xA743, 0xE709}, + {0xA744, 0xA744, 0xE70A}, {0xA745, 0xA745, 0xE70B}, + {0xA746, 0xA746, 0xE70C}, {0xA747, 0xA747, 0xE70D}, + {0xA748, 0xA748, 0xE70E}, {0xA749, 0xA749, 0xE70F}, + {0xA74A, 0xA74A, 0xE710}, {0xA74B, 0xA74B, 0xE711}, + {0xA74C, 0xA74C, 0xE712}, {0xA74D, 0xA74D, 0xE713}, + {0xA74E, 0xA74E, 0xE714}, {0xA74F, 0xA74F, 0xE715}, + {0xA750, 0xA750, 0xE716}, {0xA751, 0xA751, 0xE717}, + {0xA752, 0xA752, 0xE718}, {0xA753, 0xA753, 0xE719}, + {0xA754, 0xA754, 0xE71A}, {0xA755, 0xA755, 0xE71B}, + {0xA756, 0xA756, 0xE71C}, {0xA757, 0xA757, 0xE71D}, + {0xA758, 0xA758, 0xE71E}, {0xA759, 0xA759, 0xE71F}, + {0xA75A, 0xA75A, 0xE720}, {0xA75B, 0xA75B, 0xE721}, + {0xA75C, 0xA75C, 0xE722}, {0xA75D, 0xA75D, 0xE723}, + {0xA75E, 0xA75E, 0xE724}, {0xA75F, 0xA75F, 0xE725}, + {0xA760, 0xA760, 0xE726}, {0xA761, 0xA761, 0xE727}, + {0xA762, 0xA762, 0xE728}, {0xA763, 0xA763, 0xE729}, + {0xA764, 0xA764, 0xE72A}, {0xA765, 0xA765, 0xE72B}, + {0xA766, 0xA766, 0xE72C}, {0xA767, 0xA767, 0xE72D}, + {0xA768, 0xA768, 0xE72E}, {0xA769, 0xA769, 0xE72F}, + {0xA76A, 0xA76A, 0xE730}, {0xA76B, 0xA76B, 0xE731}, + {0xA76C, 0xA76C, 0xE732}, {0xA76D, 0xA76D, 0xE733}, + {0xA76E, 0xA76E, 0xE734}, {0xA76F, 0xA76F, 0xE735}, + {0xA770, 0xA770, 0xE736}, {0xA771, 0xA771, 0xE737}, + {0xA772, 0xA772, 0xE738}, {0xA773, 0xA773, 0xE739}, + {0xA774, 0xA774, 0xE73A}, {0xA775, 0xA775, 0xE73B}, + {0xA776, 0xA776, 0xE73C}, {0xA777, 0xA777, 0xE73D}, + {0xA778, 0xA778, 0xE73E}, {0xA779, 0xA779, 0xE73F}, + {0xA77A, 0xA77A, 0xE740}, {0xA77B, 0xA77B, 0xE741}, + {0xA77C, 0xA77C, 0xE742}, {0xA77D, 0xA77D, 0xE743}, + {0xA77E, 0xA77E, 0xE744}, {0xA77F, 0xA77F, 0x003F}, + {0xA780, 0xA780, 0xE745}, {0xA781, 0xA781, 0xE746}, + {0xA782, 0xA782, 0xE747}, {0xA783, 0xA783, 0xE748}, + {0xA784, 0xA784, 0xE749}, {0xA785, 0xA785, 0xE74A}, + {0xA786, 0xA786, 0xE74B}, {0xA787, 0xA787, 0xE74C}, + {0xA788, 0xA788, 0xE74D}, {0xA789, 0xA789, 0xE74E}, + {0xA78A, 0xA78A, 0xE74F}, {0xA78B, 0xA78B, 0xE750}, + {0xA78C, 0xA78C, 0xE751}, {0xA78D, 0xA78D, 0xE752}, + {0xA78E, 0xA78E, 0xE753}, {0xA78F, 0xA78F, 0xE754}, + {0xA790, 0xA790, 0xE755}, {0xA791, 0xA791, 0xE756}, + {0xA792, 0xA792, 0xE757}, {0xA793, 0xA793, 0xE758}, + {0xA794, 0xA794, 0xE759}, {0xA795, 0xA795, 0xE75A}, + {0xA796, 0xA796, 0xE75B}, {0xA797, 0xA797, 0xE75C}, + {0xA798, 0xA798, 0xE75D}, {0xA799, 0xA799, 0xE75E}, + {0xA79A, 0xA79A, 0xE75F}, {0xA79B, 0xA79B, 0xE760}, + {0xA79C, 0xA79C, 0xE761}, {0xA79D, 0xA79D, 0xE762}, + {0xA79E, 0xA79E, 0xE763}, {0xA79F, 0xA79F, 0xE764}, + {0xA7A0, 0xA7A0, 0xE765}, {0xA7A1, 0xA7D1, 0x0410}, + {0xA7A2, 0xA7D2, 0x0411}, {0xA7A3, 0xA7D3, 0x0412}, + {0xA7A4, 0xA7D4, 0x0413}, {0xA7A5, 0xA7D5, 0x0414}, + {0xA7A6, 0xA7D6, 0x0415}, {0xA7A7, 0xA7D7, 0x0401}, + {0xA7A8, 0xA7D8, 0x0416}, {0xA7A9, 0xA7D9, 0x0417}, + {0xA7AA, 0xA7DA, 0x0418}, {0xA7AB, 0xA7DB, 0x0419}, + {0xA7AC, 0xA7DC, 0x041A}, {0xA7AD, 0xA7DD, 0x041B}, + {0xA7AE, 0xA7DE, 0x041C}, {0xA7AF, 0xA7DF, 0x041D}, + {0xA7B0, 0xA7E0, 0x041E}, {0xA7B1, 0xA7E1, 0x041F}, + {0xA7B2, 0xA7E2, 0x0420}, {0xA7B3, 0xA7E3, 0x0421}, + {0xA7B4, 0xA7E4, 0x0422}, {0xA7B5, 0xA7E5, 0x0423}, + {0xA7B6, 0xA7E6, 0x0424}, {0xA7B7, 0xA7E7, 0x0425}, + {0xA7B8, 0xA7E8, 0x0426}, {0xA7B9, 0xA7E9, 0x0427}, + {0xA7BA, 0xA7EA, 0x0428}, {0xA7BB, 0xA7EB, 0x0429}, + {0xA7BC, 0xA7EC, 0x042A}, {0xA7BD, 0xA7ED, 0x042B}, + {0xA7BE, 0xA7EE, 0x042C}, {0xA7BF, 0xA7EF, 0x042D}, + {0xA7C0, 0xA7F0, 0x042E}, {0xA7C1, 0xA7F1, 0x042F}, + {0xA7C2, 0xA7C2, 0xE7A0}, {0xA7C3, 0xA7C3, 0xE7A1}, + {0xA7C4, 0xA7C4, 0xE7A2}, {0xA7C5, 0xA7C5, 0xE7A3}, + {0xA7C6, 0xA7C6, 0xE7A4}, {0xA7C7, 0xA7C7, 0xE7A5}, + {0xA7C8, 0xA7C8, 0xE7A6}, {0xA7C9, 0xA7C9, 0xE7A7}, + {0xA7CA, 0xA7CA, 0xE7A8}, {0xA7CB, 0xA7CB, 0xE7A9}, + {0xA7CC, 0xA7CC, 0xE7AA}, {0xA7CD, 0xA7CD, 0xE7AB}, + {0xA7CE, 0xA7CE, 0xE7AC}, {0xA7CF, 0xA7CF, 0xE7AD}, + {0xA7D0, 0xA7D0, 0xE7AE}, {0xA7A1, 0xA7D1, 0x0410}, + {0xA7A2, 0xA7D2, 0x0411}, {0xA7A3, 0xA7D3, 0x0412}, + {0xA7A4, 0xA7D4, 0x0413}, {0xA7A5, 0xA7D5, 0x0414}, + {0xA7A6, 0xA7D6, 0x0415}, {0xA7A7, 0xA7D7, 0x0401}, + {0xA7A8, 0xA7D8, 0x0416}, {0xA7A9, 0xA7D9, 0x0417}, + {0xA7AA, 0xA7DA, 0x0418}, {0xA7AB, 0xA7DB, 0x0419}, + {0xA7AC, 0xA7DC, 0x041A}, {0xA7AD, 0xA7DD, 0x041B}, + {0xA7AE, 0xA7DE, 0x041C}, {0xA7AF, 0xA7DF, 0x041D}, + {0xA7B0, 0xA7E0, 0x041E}, {0xA7B1, 0xA7E1, 0x041F}, + {0xA7B2, 0xA7E2, 0x0420}, {0xA7B3, 0xA7E3, 0x0421}, + {0xA7B4, 0xA7E4, 0x0422}, {0xA7B5, 0xA7E5, 0x0423}, + {0xA7B6, 0xA7E6, 0x0424}, {0xA7B7, 0xA7E7, 0x0425}, + {0xA7B8, 0xA7E8, 0x0426}, {0xA7B9, 0xA7E9, 0x0427}, + {0xA7BA, 0xA7EA, 0x0428}, {0xA7BB, 0xA7EB, 0x0429}, + {0xA7BC, 0xA7EC, 0x042A}, {0xA7BD, 0xA7ED, 0x042B}, + {0xA7BE, 0xA7EE, 0x042C}, {0xA7BF, 0xA7EF, 0x042D}, + {0xA7C0, 0xA7F0, 0x042E}, {0xA7C1, 0xA7F1, 0x042F}, + {0xA7F2, 0xA7F2, 0xE7AF}, {0xA7F3, 0xA7F3, 0xE7B0}, + {0xA7F4, 0xA7F4, 0xE7B1}, {0xA7F5, 0xA7F5, 0xE7B2}, + {0xA7F6, 0xA7F6, 0xE7B3}, {0xA7F7, 0xA7F7, 0xE7B4}, + {0xA7F8, 0xA7F8, 0xE7B5}, {0xA7F9, 0xA7F9, 0xE7B6}, + {0xA7FA, 0xA7FA, 0xE7B7}, {0xA7FB, 0xA7FB, 0xE7B8}, + {0xA7FC, 0xA7FC, 0xE7B9}, {0xA7FD, 0xA7FD, 0xE7BA}, + {0xA7FE, 0xA7FE, 0xE7BB}, {0xA7FF, 0xA7FF, 0x003F} +}; + +/** + Unicase array for 0xA800-0xA8FF + All are for 2-byte code points directly +*/ +static const MY_UNICASE_CHARACTER planeA8[]= +{ + {0xA800, 0xA800, 0x003F}, {0xA801, 0xA801, 0x003F}, + {0xA802, 0xA802, 0x003F}, {0xA803, 0xA803, 0x003F}, + {0xA804, 0xA804, 0x003F}, {0xA805, 0xA805, 0x003F}, + {0xA806, 0xA806, 0x003F}, {0xA807, 0xA807, 0x003F}, + {0xA808, 0xA808, 0x003F}, {0xA809, 0xA809, 0x003F}, + {0xA80A, 0xA80A, 0x003F}, {0xA80B, 0xA80B, 0x003F}, + {0xA80C, 0xA80C, 0x003F}, {0xA80D, 0xA80D, 0x003F}, + {0xA80E, 0xA80E, 0x003F}, {0xA80F, 0xA80F, 0x003F}, + {0xA810, 0xA810, 0x003F}, {0xA811, 0xA811, 0x003F}, + {0xA812, 0xA812, 0x003F}, {0xA813, 0xA813, 0x003F}, + {0xA814, 0xA814, 0x003F}, {0xA815, 0xA815, 0x003F}, + {0xA816, 0xA816, 0x003F}, {0xA817, 0xA817, 0x003F}, + {0xA818, 0xA818, 0x003F}, {0xA819, 0xA819, 0x003F}, + {0xA81A, 0xA81A, 0x003F}, {0xA81B, 0xA81B, 0x003F}, + {0xA81C, 0xA81C, 0x003F}, {0xA81D, 0xA81D, 0x003F}, + {0xA81E, 0xA81E, 0x003F}, {0xA81F, 0xA81F, 0x003F}, + {0xA820, 0xA820, 0x003F}, {0xA821, 0xA821, 0x003F}, + {0xA822, 0xA822, 0x003F}, {0xA823, 0xA823, 0x003F}, + {0xA824, 0xA824, 0x003F}, {0xA825, 0xA825, 0x003F}, + {0xA826, 0xA826, 0x003F}, {0xA827, 0xA827, 0x003F}, + {0xA828, 0xA828, 0x003F}, {0xA829, 0xA829, 0x003F}, + {0xA82A, 0xA82A, 0x003F}, {0xA82B, 0xA82B, 0x003F}, + {0xA82C, 0xA82C, 0x003F}, {0xA82D, 0xA82D, 0x003F}, + {0xA82E, 0xA82E, 0x003F}, {0xA82F, 0xA82F, 0x003F}, + {0xA830, 0xA830, 0x003F}, {0xA831, 0xA831, 0x003F}, + {0xA832, 0xA832, 0x003F}, {0xA833, 0xA833, 0x003F}, + {0xA834, 0xA834, 0x003F}, {0xA835, 0xA835, 0x003F}, + {0xA836, 0xA836, 0x003F}, {0xA837, 0xA837, 0x003F}, + {0xA838, 0xA838, 0x003F}, {0xA839, 0xA839, 0x003F}, + {0xA83A, 0xA83A, 0x003F}, {0xA83B, 0xA83B, 0x003F}, + {0xA83C, 0xA83C, 0x003F}, {0xA83D, 0xA83D, 0x003F}, + {0xA83E, 0xA83E, 0x003F}, {0xA83F, 0xA83F, 0x003F}, + {0xA840, 0xA840, 0x02CA}, {0xA841, 0xA841, 0x02CB}, + {0xA842, 0xA842, 0x02D9}, {0xA843, 0xA843, 0x2013}, + {0xA844, 0xA844, 0x2015}, {0xA845, 0xA845, 0x2025}, + {0xA846, 0xA846, 0x2035}, {0xA847, 0xA847, 0x2105}, + {0xA848, 0xA848, 0x2109}, {0xA849, 0xA849, 0x2196}, + {0xA84A, 0xA84A, 0x2197}, {0xA84B, 0xA84B, 0x2198}, + {0xA84C, 0xA84C, 0x2199}, {0xA84D, 0xA84D, 0x2215}, + {0xA84E, 0xA84E, 0x221F}, {0xA84F, 0xA84F, 0x2223}, + {0xA850, 0xA850, 0x2252}, {0xA851, 0xA851, 0x2266}, + {0xA852, 0xA852, 0x2267}, {0xA853, 0xA853, 0x22BF}, + {0xA854, 0xA854, 0x2550}, {0xA855, 0xA855, 0x2551}, + {0xA856, 0xA856, 0x2552}, {0xA857, 0xA857, 0x2553}, + {0xA858, 0xA858, 0x2554}, {0xA859, 0xA859, 0x2555}, + {0xA85A, 0xA85A, 0x2556}, {0xA85B, 0xA85B, 0x2557}, + {0xA85C, 0xA85C, 0x2558}, {0xA85D, 0xA85D, 0x2559}, + {0xA85E, 0xA85E, 0x255A}, {0xA85F, 0xA85F, 0x255B}, + {0xA860, 0xA860, 0x255C}, {0xA861, 0xA861, 0x255D}, + {0xA862, 0xA862, 0x255E}, {0xA863, 0xA863, 0x255F}, + {0xA864, 0xA864, 0x2560}, {0xA865, 0xA865, 0x2561}, + {0xA866, 0xA866, 0x2562}, {0xA867, 0xA867, 0x2563}, + {0xA868, 0xA868, 0x2564}, {0xA869, 0xA869, 0x2565}, + {0xA86A, 0xA86A, 0x2566}, {0xA86B, 0xA86B, 0x2567}, + {0xA86C, 0xA86C, 0x2568}, {0xA86D, 0xA86D, 0x2569}, + {0xA86E, 0xA86E, 0x256A}, {0xA86F, 0xA86F, 0x256B}, + {0xA870, 0xA870, 0x256C}, {0xA871, 0xA871, 0x256D}, + {0xA872, 0xA872, 0x256E}, {0xA873, 0xA873, 0x256F}, + {0xA874, 0xA874, 0x2570}, {0xA875, 0xA875, 0x2571}, + {0xA876, 0xA876, 0x2572}, {0xA877, 0xA877, 0x2573}, + {0xA878, 0xA878, 0x2581}, {0xA879, 0xA879, 0x2582}, + {0xA87A, 0xA87A, 0x2583}, {0xA87B, 0xA87B, 0x2584}, + {0xA87C, 0xA87C, 0x2585}, {0xA87D, 0xA87D, 0x2586}, + {0xA87E, 0xA87E, 0x2587}, {0xA87F, 0xA87F, 0x003F}, + {0xA880, 0xA880, 0x2588}, {0xA881, 0xA881, 0x2589}, + {0xA882, 0xA882, 0x258A}, {0xA883, 0xA883, 0x258B}, + {0xA884, 0xA884, 0x258C}, {0xA885, 0xA885, 0x258D}, + {0xA886, 0xA886, 0x258E}, {0xA887, 0xA887, 0x258F}, + {0xA888, 0xA888, 0x2593}, {0xA889, 0xA889, 0x2594}, + {0xA88A, 0xA88A, 0x2595}, {0xA88B, 0xA88B, 0x25BC}, + {0xA88C, 0xA88C, 0x25BD}, {0xA88D, 0xA88D, 0x25E2}, + {0xA88E, 0xA88E, 0x25E3}, {0xA88F, 0xA88F, 0x25E4}, + {0xA890, 0xA890, 0x25E5}, {0xA891, 0xA891, 0x2609}, + {0xA892, 0xA892, 0x2295}, {0xA893, 0xA893, 0x3012}, + {0xA894, 0xA894, 0x301D}, {0xA895, 0xA895, 0x301E}, + {0xA896, 0xA896, 0xE7BC}, {0xA897, 0xA897, 0xE7BD}, + {0xA898, 0xA898, 0xE7BE}, {0xA899, 0xA899, 0xE7BF}, + {0xA89A, 0xA89A, 0xE7C0}, {0xA89B, 0xA89B, 0xE7C1}, + {0xA89C, 0xA89C, 0xE7C2}, {0xA89D, 0xA89D, 0xE7C3}, + {0xA89E, 0xA89E, 0xE7C4}, {0xA89F, 0xA89F, 0xE7C5}, + {0xA8A0, 0xA8A0, 0xE7C6}, {0x00EC, 0xA8A1, 0x0100}, + {0x00BB, 0xA8A2, 0x00C1}, {0x01B1, 0xA8A3, 0x01CD}, + {0x00BA, 0xA8A4, 0x00C0}, {0x00FD, 0xA8A5, 0x0112}, + {0x00C3, 0xA8A6, 0x00C9}, {0x0104, 0xA8A7, 0x011A}, + {0x00C2, 0xA8A8, 0x00C8}, {0x0113, 0xA8A9, 0x012A}, + {0x00C7, 0xA8AA, 0x00CD}, {0x01B2, 0xA8AB, 0x01CF}, + {0x00C6, 0xA8AC, 0x00CC}, {0x0132, 0xA8AD, 0x014C}, + {0x00CD, 0xA8AE, 0x00D3}, {0x01B3, 0xA8AF, 0x01D1}, + {0x00CC, 0xA8B0, 0x00D2}, {0x014F, 0xA8B1, 0x016A}, + {0x00D3, 0xA8B2, 0x00DA}, {0x01B4, 0xA8B3, 0x01D3}, + {0x00D2, 0xA8B4, 0x00D9}, {0x01B5, 0xA8B5, 0x01D5}, + {0x01B6, 0xA8B6, 0x01D7}, {0x01B7, 0xA8B7, 0x01D9}, + {0x01B8, 0xA8B8, 0x01DB}, {0x00D5, 0xA8B9, 0x00DC}, + {0x00C4, 0xA8BA, 0x00CA}, {0x2AAD, 0xA8BB, 0x2C6D}, + {0x1DA0, 0xA8BC, 0x1E3E}, {0x012B, 0xA8BD, 0x0143}, + {0x012E, 0xA8BE, 0x0147}, {0x01D4, 0xA8BF, 0x01F8}, + {0xA8C0, 0xA8C0, 0x0261}, {0xA8C1, 0xA8C1, 0xE7C9}, + {0xA8C2, 0xA8C2, 0xE7CA}, {0xA8C3, 0xA8C3, 0xE7CB}, + {0xA8C4, 0xA8C4, 0xE7CC}, {0xA8C5, 0xA8C5, 0x3105}, + {0xA8C6, 0xA8C6, 0x3106}, {0xA8C7, 0xA8C7, 0x3107}, + {0xA8C8, 0xA8C8, 0x3108}, {0xA8C9, 0xA8C9, 0x3109}, + {0xA8CA, 0xA8CA, 0x310A}, {0xA8CB, 0xA8CB, 0x310B}, + {0xA8CC, 0xA8CC, 0x310C}, {0xA8CD, 0xA8CD, 0x310D}, + {0xA8CE, 0xA8CE, 0x310E}, {0xA8CF, 0xA8CF, 0x310F}, + {0xA8D0, 0xA8D0, 0x3110}, {0xA8D1, 0xA8D1, 0x3111}, + {0xA8D2, 0xA8D2, 0x3112}, {0xA8D3, 0xA8D3, 0x3113}, + {0xA8D4, 0xA8D4, 0x3114}, {0xA8D5, 0xA8D5, 0x3115}, + {0xA8D6, 0xA8D6, 0x3116}, {0xA8D7, 0xA8D7, 0x3117}, + {0xA8D8, 0xA8D8, 0x3118}, {0xA8D9, 0xA8D9, 0x3119}, + {0xA8DA, 0xA8DA, 0x311A}, {0xA8DB, 0xA8DB, 0x311B}, + {0xA8DC, 0xA8DC, 0x311C}, {0xA8DD, 0xA8DD, 0x311D}, + {0xA8DE, 0xA8DE, 0x311E}, {0xA8DF, 0xA8DF, 0x311F}, + {0xA8E0, 0xA8E0, 0x3120}, {0xA8E1, 0xA8E1, 0x3121}, + {0xA8E2, 0xA8E2, 0x3122}, {0xA8E3, 0xA8E3, 0x3123}, + {0xA8E4, 0xA8E4, 0x3124}, {0xA8E5, 0xA8E5, 0x3125}, + {0xA8E6, 0xA8E6, 0x3126}, {0xA8E7, 0xA8E7, 0x3127}, + {0xA8E8, 0xA8E8, 0x3128}, {0xA8E9, 0xA8E9, 0x3129}, + {0xA8EA, 0xA8EA, 0xE7CD}, {0xA8EB, 0xA8EB, 0xE7CE}, + {0xA8EC, 0xA8EC, 0xE7CF}, {0xA8ED, 0xA8ED, 0xE7D0}, + {0xA8EE, 0xA8EE, 0xE7D1}, {0xA8EF, 0xA8EF, 0xE7D2}, + {0xA8F0, 0xA8F0, 0xE7D3}, {0xA8F1, 0xA8F1, 0xE7D4}, + {0xA8F2, 0xA8F2, 0xE7D5}, {0xA8F3, 0xA8F3, 0xE7D6}, + {0xA8F4, 0xA8F4, 0xE7D7}, {0xA8F5, 0xA8F5, 0xE7D8}, + {0xA8F6, 0xA8F6, 0xE7D9}, {0xA8F7, 0xA8F7, 0xE7DA}, + {0xA8F8, 0xA8F8, 0xE7DB}, {0xA8F9, 0xA8F9, 0xE7DC}, + {0xA8FA, 0xA8FA, 0xE7DD}, {0xA8FB, 0xA8FB, 0xE7DE}, + {0xA8FC, 0xA8FC, 0xE7DF}, {0xA8FD, 0xA8FD, 0xE7E0}, + {0xA8FE, 0xA8FE, 0xE7E1}, {0xA8FF, 0xA8FF, 0x003F} +}; + +/** + Unicase array for 0xE600-0xE6FF + Plus 0x20000, they're the diff(diff between code and 81308130) + for 4-byte code points +*/ +static const MY_UNICASE_CHARACTER planeE6[]= +{ + {0xE600, 0xE600, 0x103B8}, {0xE601, 0xE601, 0x103B9}, + {0xE602, 0xE602, 0x103BA}, {0xE603, 0xE603, 0x103BB}, + {0xE604, 0xE604, 0x103BC}, {0xE605, 0xE605, 0x103BD}, + {0xE606, 0xE606, 0x103BE}, {0xE607, 0xE607, 0x103BF}, + {0xE608, 0xE608, 0x103C0}, {0xE609, 0xE609, 0x103C1}, + {0xE60A, 0xE60A, 0x103C2}, {0xE60B, 0xE60B, 0x103C3}, + {0xE60C, 0xE60C, 0x103C4}, {0xE60D, 0xE60D, 0x103C5}, + {0xE60E, 0xE60E, 0x103C6}, {0xE60F, 0xE60F, 0x103C7}, + {0xE610, 0xE610, 0x103C8}, {0xE611, 0xE611, 0x103C9}, + {0xE612, 0xE612, 0x103CA}, {0xE613, 0xE613, 0x103CB}, + {0xE614, 0xE614, 0x103CC}, {0xE615, 0xE615, 0x103CD}, + {0xE616, 0xE616, 0x103CE}, {0xE617, 0xE617, 0x103CF}, + {0xE618, 0xE618, 0x103D0}, {0xE619, 0xE619, 0x103D1}, + {0xE61A, 0xE61A, 0x103D2}, {0xE61B, 0xE61B, 0x103D3}, + {0xE61C, 0xE61C, 0x103D4}, {0xE61D, 0xE61D, 0x103D5}, + {0xE61E, 0xE61E, 0x103D6}, {0xE61F, 0xE61F, 0x103D7}, + {0xE620, 0xE620, 0x103D8}, {0xE621, 0xE621, 0x103D9}, + {0xE622, 0xE622, 0x103DA}, {0xE623, 0xE623, 0x103DB}, + {0xE624, 0xE624, 0x103DC}, {0xE625, 0xE625, 0x103DD}, + {0xE626, 0xE626, 0x103DE}, {0xE627, 0xE627, 0x103DF}, + {0xE628, 0xE628, 0x103E0}, {0xE629, 0xE629, 0x103E1}, + {0xE62A, 0xE62A, 0x103E2}, {0xE62B, 0xE62B, 0x103E3}, + {0xE62C, 0xE62C, 0x103E4}, {0xE62D, 0xE62D, 0x103E5}, + {0xE62E, 0xE62E, 0x103E6}, {0xE62F, 0xE62F, 0x103E7}, + {0xE630, 0xE630, 0x103E8}, {0xE631, 0xE631, 0x103E9}, + {0xE632, 0xE632, 0x103EA}, {0xE633, 0xE633, 0x103EB}, + {0xE634, 0xE634, 0x103EC}, {0xE635, 0xE635, 0x103ED}, + {0xE636, 0xE636, 0x103EE}, {0xE637, 0xE637, 0x103EF}, + {0xE638, 0xE638, 0x103F0}, {0xE639, 0xE639, 0x103F1}, + {0xE63A, 0xE63A, 0x103F2}, {0xE63B, 0xE63B, 0x103F3}, + {0xE63C, 0xE63C, 0x103F4}, {0xE63D, 0xE63D, 0x103F5}, + {0xE63E, 0xE63E, 0x103F6}, {0xE63F, 0xE63F, 0x103F7}, + {0xE640, 0xE640, 0x103F8}, {0xE641, 0xE641, 0x103F9}, + {0xE642, 0xE642, 0x103FA}, {0xE643, 0xE643, 0x103FB}, + {0xE644, 0xE644, 0x103FC}, {0xE645, 0xE645, 0x103FD}, + {0xE646, 0xE646, 0x103FE}, {0xE647, 0xE647, 0x103FF}, + {0xE648, 0xE670, 0x10400}, {0xE649, 0xE671, 0x10401}, + {0xE64A, 0xE672, 0x10402}, {0xE64B, 0xE673, 0x10403}, + {0xE64C, 0xE674, 0x10404}, {0xE64D, 0xE675, 0x10405}, + {0xE64E, 0xE676, 0x10406}, {0xE64F, 0xE677, 0x10407}, + {0xE650, 0xE678, 0x10408}, {0xE651, 0xE679, 0x10409}, + {0xE652, 0xE67A, 0x1040A}, {0xE653, 0xE67B, 0x1040B}, + {0xE654, 0xE67C, 0x1040C}, {0xE655, 0xE67D, 0x1040D}, + {0xE656, 0xE67E, 0x1040E}, {0xE657, 0xE67F, 0x1040F}, + {0xE658, 0xE680, 0x10410}, {0xE659, 0xE681, 0x10411}, + {0xE65A, 0xE682, 0x10412}, {0xE65B, 0xE683, 0x10413}, + {0xE65C, 0xE684, 0x10414}, {0xE65D, 0xE685, 0x10415}, + {0xE65E, 0xE686, 0x10416}, {0xE65F, 0xE687, 0x10417}, + {0xE660, 0xE688, 0x10418}, {0xE661, 0xE689, 0x10419}, + {0xE662, 0xE68A, 0x1041A}, {0xE663, 0xE68B, 0x1041B}, + {0xE664, 0xE68C, 0x1041C}, {0xE665, 0xE68D, 0x1041D}, + {0xE666, 0xE68E, 0x1041E}, {0xE667, 0xE68F, 0x1041F}, + {0xE668, 0xE690, 0x10420}, {0xE669, 0xE691, 0x10421}, + {0xE66A, 0xE692, 0x10422}, {0xE66B, 0xE693, 0x10423}, + {0xE66C, 0xE694, 0x10424}, {0xE66D, 0xE695, 0x10425}, + {0xE66E, 0xE696, 0x10426}, {0xE66F, 0xE697, 0x10427}, + {0xE648, 0xE670, 0x10400}, {0xE649, 0xE671, 0x10401}, + {0xE64A, 0xE672, 0x10402}, {0xE64B, 0xE673, 0x10403}, + {0xE64C, 0xE674, 0x10404}, {0xE64D, 0xE675, 0x10405}, + {0xE64E, 0xE676, 0x10406}, {0xE64F, 0xE677, 0x10407}, + {0xE650, 0xE678, 0x10408}, {0xE651, 0xE679, 0x10409}, + {0xE652, 0xE67A, 0x1040A}, {0xE653, 0xE67B, 0x1040B}, + {0xE654, 0xE67C, 0x1040C}, {0xE655, 0xE67D, 0x1040D}, + {0xE656, 0xE67E, 0x1040E}, {0xE657, 0xE67F, 0x1040F}, + {0xE658, 0xE680, 0x10410}, {0xE659, 0xE681, 0x10411}, + {0xE65A, 0xE682, 0x10412}, {0xE65B, 0xE683, 0x10413}, + {0xE65C, 0xE684, 0x10414}, {0xE65D, 0xE685, 0x10415}, + {0xE65E, 0xE686, 0x10416}, {0xE65F, 0xE687, 0x10417}, + {0xE660, 0xE688, 0x10418}, {0xE661, 0xE689, 0x10419}, + {0xE662, 0xE68A, 0x1041A}, {0xE663, 0xE68B, 0x1041B}, + {0xE664, 0xE68C, 0x1041C}, {0xE665, 0xE68D, 0x1041D}, + {0xE666, 0xE68E, 0x1041E}, {0xE667, 0xE68F, 0x1041F}, + {0xE668, 0xE690, 0x10420}, {0xE669, 0xE691, 0x10421}, + {0xE66A, 0xE692, 0x10422}, {0xE66B, 0xE693, 0x10423}, + {0xE66C, 0xE694, 0x10424}, {0xE66D, 0xE695, 0x10425}, + {0xE66E, 0xE696, 0x10426}, {0xE66F, 0xE697, 0x10427}, + {0xE698, 0xE698, 0x10450}, {0xE699, 0xE699, 0x10451}, + {0xE69A, 0xE69A, 0x10452}, {0xE69B, 0xE69B, 0x10453}, + {0xE69C, 0xE69C, 0x10454}, {0xE69D, 0xE69D, 0x10455}, + {0xE69E, 0xE69E, 0x10456}, {0xE69F, 0xE69F, 0x10457}, + {0xE6A0, 0xE6A0, 0x10458}, {0xE6A1, 0xE6A1, 0x10459}, + {0xE6A2, 0xE6A2, 0x1045A}, {0xE6A3, 0xE6A3, 0x1045B}, + {0xE6A4, 0xE6A4, 0x1045C}, {0xE6A5, 0xE6A5, 0x1045D}, + {0xE6A6, 0xE6A6, 0x1045E}, {0xE6A7, 0xE6A7, 0x1045F}, + {0xE6A8, 0xE6A8, 0x10460}, {0xE6A9, 0xE6A9, 0x10461}, + {0xE6AA, 0xE6AA, 0x10462}, {0xE6AB, 0xE6AB, 0x10463}, + {0xE6AC, 0xE6AC, 0x10464}, {0xE6AD, 0xE6AD, 0x10465}, + {0xE6AE, 0xE6AE, 0x10466}, {0xE6AF, 0xE6AF, 0x10467}, + {0xE6B0, 0xE6B0, 0x10468}, {0xE6B1, 0xE6B1, 0x10469}, + {0xE6B2, 0xE6B2, 0x1046A}, {0xE6B3, 0xE6B3, 0x1046B}, + {0xE6B4, 0xE6B4, 0x1046C}, {0xE6B5, 0xE6B5, 0x1046D}, + {0xE6B6, 0xE6B6, 0x1046E}, {0xE6B7, 0xE6B7, 0x1046F}, + {0xE6B8, 0xE6B8, 0x10470}, {0xE6B9, 0xE6B9, 0x10471}, + {0xE6BA, 0xE6BA, 0x10472}, {0xE6BB, 0xE6BB, 0x10473}, + {0xE6BC, 0xE6BC, 0x10474}, {0xE6BD, 0xE6BD, 0x10475}, + {0xE6BE, 0xE6BE, 0x10476}, {0xE6BF, 0xE6BF, 0x10477}, + {0xE6C0, 0xE6C0, 0x10478}, {0xE6C1, 0xE6C1, 0x10479}, + {0xE6C2, 0xE6C2, 0x1047A}, {0xE6C3, 0xE6C3, 0x1047B}, + {0xE6C4, 0xE6C4, 0x1047C}, {0xE6C5, 0xE6C5, 0x1047D}, + {0xE6C6, 0xE6C6, 0x1047E}, {0xE6C7, 0xE6C7, 0x1047F}, + {0xE6C8, 0xE6C8, 0x10480}, {0xE6C9, 0xE6C9, 0x10481}, + {0xE6CA, 0xE6CA, 0x10482}, {0xE6CB, 0xE6CB, 0x10483}, + {0xE6CC, 0xE6CC, 0x10484}, {0xE6CD, 0xE6CD, 0x10485}, + {0xE6CE, 0xE6CE, 0x10486}, {0xE6CF, 0xE6CF, 0x10487}, + {0xE6D0, 0xE6D0, 0x10488}, {0xE6D1, 0xE6D1, 0x10489}, + {0xE6D2, 0xE6D2, 0x1048A}, {0xE6D3, 0xE6D3, 0x1048B}, + {0xE6D4, 0xE6D4, 0x1048C}, {0xE6D5, 0xE6D5, 0x1048D}, + {0xE6D6, 0xE6D6, 0x1048E}, {0xE6D7, 0xE6D7, 0x1048F}, + {0xE6D8, 0xE6D8, 0x10490}, {0xE6D9, 0xE6D9, 0x10491}, + {0xE6DA, 0xE6DA, 0x10492}, {0xE6DB, 0xE6DB, 0x10493}, + {0xE6DC, 0xE6DC, 0x10494}, {0xE6DD, 0xE6DD, 0x10495}, + {0xE6DE, 0xE6DE, 0x10496}, {0xE6DF, 0xE6DF, 0x10497}, + {0xE6E0, 0xE6E0, 0x10498}, {0xE6E1, 0xE6E1, 0x10499}, + {0xE6E2, 0xE6E2, 0x1049A}, {0xE6E3, 0xE6E3, 0x1049B}, + {0xE6E4, 0xE6E4, 0x1049C}, {0xE6E5, 0xE6E5, 0x1049D}, + {0xE6E6, 0xE6E6, 0x1049E}, {0xE6E7, 0xE6E7, 0x1049F}, + {0xE6E8, 0xE6E8, 0x104A0}, {0xE6E9, 0xE6E9, 0x104A1}, + {0xE6EA, 0xE6EA, 0x104A2}, {0xE6EB, 0xE6EB, 0x104A3}, + {0xE6EC, 0xE6EC, 0x104A4}, {0xE6ED, 0xE6ED, 0x104A5}, + {0xE6EE, 0xE6EE, 0x104A6}, {0xE6EF, 0xE6EF, 0x104A7}, + {0xE6F0, 0xE6F0, 0x104A8}, {0xE6F1, 0xE6F1, 0x104A9}, + {0xE6F2, 0xE6F2, 0x104AA}, {0xE6F3, 0xE6F3, 0x104AB}, + {0xE6F4, 0xE6F4, 0x104AC}, {0xE6F5, 0xE6F5, 0x104AD}, + {0xE6F6, 0xE6F6, 0x104AE}, {0xE6F7, 0xE6F7, 0x104AF}, + {0xE6F8, 0xE6F8, 0x104B0}, {0xE6F9, 0xE6F9, 0x104B1}, + {0xE6FA, 0xE6FA, 0x104B2}, {0xE6FB, 0xE6FB, 0x104B3}, + {0xE6FC, 0xE6FC, 0x104B4}, {0xE6FD, 0xE6FD, 0x104B5}, + {0xE6FE, 0xE6FE, 0x104B6}, {0xE6FF, 0xE6FF, 0x104B7} +}; + +/** + The UNICASE array +*/ +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_gb18030[256]= +{ + plane00, plane01, plane02, plane03, plane04, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + plane10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, plane1D, plane1E, plane1F, + plane20, NULL, NULL, plane23, NULL, NULL, NULL, NULL, + NULL, NULL, plane2A, plane2B, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, plane51, plane52, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, planeA2, planeA3, NULL, NULL, planeA6, planeA7, + planeA8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, planeE6, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + +/** + UNICASE INFO +*/ +static MY_UNICASE_INFO my_caseinfo_gb18030= +{ + 0xFFFF, + my_caseinfo_pages_gb18030 +}; + +/** + Mapping table from 2-byte gb18030 to unicode + including all 2-byte code points in [GB+8140, GB+FEFE], + with 0 for those invalid code points +*/ +static const uint16 tab_gb18030_2_uni[]= +{ +0x4E02, 0x4E04, 0x4E05, 0x4E06, 0x4E0F, 0x4E12, 0x4E17, 0x4E1F, +0x4E20, 0x4E21, 0x4E23, 0x4E26, 0x4E29, 0x4E2E, 0x4E2F, 0x4E31, +0x4E33, 0x4E35, 0x4E37, 0x4E3C, 0x4E40, 0x4E41, 0x4E42, 0x4E44, +0x4E46, 0x4E4A, 0x4E51, 0x4E55, 0x4E57, 0x4E5A, 0x4E5B, 0x4E62, +0x4E63, 0x4E64, 0x4E65, 0x4E67, 0x4E68, 0x4E6A, 0x4E6B, 0x4E6C, +0x4E6D, 0x4E6E, 0x4E6F, 0x4E72, 0x4E74, 0x4E75, 0x4E76, 0x4E77, +0x4E78, 0x4E79, 0x4E7A, 0x4E7B, 0x4E7C, 0x4E7D, 0x4E7F, 0x4E80, +0x4E81, 0x4E82, 0x4E83, 0x4E84, 0x4E85, 0x4E87, 0x4E8A, 0, +0x4E90, 0x4E96, 0x4E97, 0x4E99, 0x4E9C, 0x4E9D, 0x4E9E, 0x4EA3, +0x4EAA, 0x4EAF, 0x4EB0, 0x4EB1, 0x4EB4, 0x4EB6, 0x4EB7, 0x4EB8, +0x4EB9, 0x4EBC, 0x4EBD, 0x4EBE, 0x4EC8, 0x4ECC, 0x4ECF, 0x4ED0, +0x4ED2, 0x4EDA, 0x4EDB, 0x4EDC, 0x4EE0, 0x4EE2, 0x4EE6, 0x4EE7, +0x4EE9, 0x4EED, 0x4EEE, 0x4EEF, 0x4EF1, 0x4EF4, 0x4EF8, 0x4EF9, +0x4EFA, 0x4EFC, 0x4EFE, 0x4F00, 0x4F02, 0x4F03, 0x4F04, 0x4F05, +0x4F06, 0x4F07, 0x4F08, 0x4F0B, 0x4F0C, 0x4F12, 0x4F13, 0x4F14, +0x4F15, 0x4F16, 0x4F1C, 0x4F1D, 0x4F21, 0x4F23, 0x4F28, 0x4F29, +0x4F2C, 0x4F2D, 0x4F2E, 0x4F31, 0x4F33, 0x4F35, 0x4F37, 0x4F39, +0x4F3B, 0x4F3E, 0x4F3F, 0x4F40, 0x4F41, 0x4F42, 0x4F44, 0x4F45, +0x4F47, 0x4F48, 0x4F49, 0x4F4A, 0x4F4B, 0x4F4C, 0x4F52, 0x4F54, +0x4F56, 0x4F61, 0x4F62, 0x4F66, 0x4F68, 0x4F6A, 0x4F6B, 0x4F6D, +0x4F6E, 0x4F71, 0x4F72, 0x4F75, 0x4F77, 0x4F78, 0x4F79, 0x4F7A, +0x4F7D, 0x4F80, 0x4F81, 0x4F82, 0x4F85, 0x4F86, 0x4F87, 0x4F8A, +0x4F8C, 0x4F8E, 0x4F90, 0x4F92, 0x4F93, 0x4F95, 0x4F96, 0x4F98, +0x4F99, 0x4F9A, 0x4F9C, 0x4F9E, 0x4F9F, 0x4FA1, 0x4FA2, 0, +0x4FA4, 0x4FAB, 0x4FAD, 0x4FB0, 0x4FB1, 0x4FB2, 0x4FB3, 0x4FB4, +0x4FB6, 0x4FB7, 0x4FB8, 0x4FB9, 0x4FBA, 0x4FBB, 0x4FBC, 0x4FBD, +0x4FBE, 0x4FC0, 0x4FC1, 0x4FC2, 0x4FC6, 0x4FC7, 0x4FC8, 0x4FC9, +0x4FCB, 0x4FCC, 0x4FCD, 0x4FD2, 0x4FD3, 0x4FD4, 0x4FD5, 0x4FD6, +0x4FD9, 0x4FDB, 0x4FE0, 0x4FE2, 0x4FE4, 0x4FE5, 0x4FE7, 0x4FEB, +0x4FEC, 0x4FF0, 0x4FF2, 0x4FF4, 0x4FF5, 0x4FF6, 0x4FF7, 0x4FF9, +0x4FFB, 0x4FFC, 0x4FFD, 0x4FFF, 0x5000, 0x5001, 0x5002, 0x5003, +0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500A, 0, +0x500B, 0x500E, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, +0x501B, 0x501D, 0x501E, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, +0x502B, 0x502F, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, +0x5036, 0x5037, 0x5038, 0x5039, 0x503B, 0x503D, 0x503F, 0x5040, +0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504A, 0x504B, +0x504D, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, +0x5058, 0x5059, 0x505B, 0x505D, 0x505E, 0x505F, 0x5060, 0x5061, +0x5062, 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506A, +0x506B, 0x506D, 0x506E, 0x506F, 0x5070, 0x5071, 0x5072, 0x5073, +0x5074, 0x5075, 0x5078, 0x5079, 0x507A, 0x507C, 0x507D, 0x5081, +0x5082, 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508A, 0x508B, +0x508C, 0x508E, 0x508F, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, +0x5095, 0x5096, 0x5097, 0x5098, 0x5099, 0x509A, 0x509B, 0x509C, +0x509D, 0x509E, 0x509F, 0x50A0, 0x50A1, 0x50A2, 0x50A4, 0x50A6, +0x50AA, 0x50AB, 0x50AD, 0x50AE, 0x50AF, 0x50B0, 0x50B1, 0x50B3, +0x50B4, 0x50B5, 0x50B6, 0x50B7, 0x50B8, 0x50B9, 0x50BC, 0, +0x50BD, 0x50BE, 0x50BF, 0x50C0, 0x50C1, 0x50C2, 0x50C3, 0x50C4, +0x50C5, 0x50C6, 0x50C7, 0x50C8, 0x50C9, 0x50CA, 0x50CB, 0x50CC, +0x50CD, 0x50CE, 0x50D0, 0x50D1, 0x50D2, 0x50D3, 0x50D4, 0x50D5, +0x50D7, 0x50D8, 0x50D9, 0x50DB, 0x50DC, 0x50DD, 0x50DE, 0x50DF, +0x50E0, 0x50E1, 0x50E2, 0x50E3, 0x50E4, 0x50E5, 0x50E8, 0x50E9, +0x50EA, 0x50EB, 0x50EF, 0x50F0, 0x50F1, 0x50F2, 0x50F4, 0x50F6, +0x50F7, 0x50F8, 0x50F9, 0x50FA, 0x50FC, 0x50FD, 0x50FE, 0x50FF, +0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0, +0x5109, 0x510A, 0x510C, 0x510D, 0x510E, 0x510F, 0x5110, 0x5111, +0x5113, 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511A, +0x511B, 0x511C, 0x511D, 0x511E, 0x511F, 0x5120, 0x5122, 0x5123, +0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512A, 0x512B, +0x512C, 0x512D, 0x512E, 0x512F, 0x5130, 0x5131, 0x5132, 0x5133, +0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513A, 0x513B, +0x513C, 0x513D, 0x513E, 0x5142, 0x5147, 0x514A, 0x514C, 0x514E, +0x514F, 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515B, +0x515D, 0x515E, 0x515F, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, +0x5167, 0x5169, 0x516A, 0x516F, 0x5172, 0x517A, 0x517E, 0x517F, +0x5183, 0x5184, 0x5186, 0x5187, 0x518A, 0x518B, 0x518E, 0x518F, +0x5190, 0x5191, 0x5193, 0x5194, 0x5198, 0x519A, 0x519D, 0x519E, +0x519F, 0x51A1, 0x51A3, 0x51A6, 0x51A7, 0x51A8, 0x51A9, 0x51AA, +0x51AD, 0x51AE, 0x51B4, 0x51B8, 0x51B9, 0x51BA, 0x51BE, 0x51BF, +0x51C1, 0x51C2, 0x51C3, 0x51C5, 0x51C8, 0x51CA, 0x51CD, 0x51CE, +0x51D0, 0x51D2, 0x51D3, 0x51D4, 0x51D5, 0x51D6, 0x51D7, 0, +0x51D8, 0x51D9, 0x51DA, 0x51DC, 0x51DE, 0x51DF, 0x51E2, 0x51E3, +0x51E5, 0x51E6, 0x51E7, 0x51E8, 0x51E9, 0x51EA, 0x51EC, 0x51EE, +0x51F1, 0x51F2, 0x51F4, 0x51F7, 0x51FE, 0x5204, 0x5205, 0x5209, +0x520B, 0x520C, 0x520F, 0x5210, 0x5213, 0x5214, 0x5215, 0x521C, +0x521E, 0x521F, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, +0x522A, 0x522C, 0x522F, 0x5231, 0x5232, 0x5234, 0x5235, 0x523C, +0x523E, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524B, +0x524E, 0x524F, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0, +0x5259, 0x525A, 0x525B, 0x525D, 0x525F, 0x5260, 0x5262, 0x5263, +0x5264, 0x5266, 0x5268, 0x526B, 0x526C, 0x526D, 0x526E, 0x5270, +0x5271, 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, +0x527A, 0x527B, 0x527C, 0x527E, 0x5280, 0x5283, 0x5284, 0x5285, +0x5286, 0x5287, 0x5289, 0x528A, 0x528B, 0x528C, 0x528D, 0x528E, +0x528F, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, +0x5299, 0x529A, 0x529C, 0x52A4, 0x52A5, 0x52A6, 0x52A7, 0x52AE, +0x52AF, 0x52B0, 0x52B4, 0x52B5, 0x52B6, 0x52B7, 0x52B8, 0x52B9, +0x52BA, 0x52BB, 0x52BC, 0x52BD, 0x52C0, 0x52C1, 0x52C2, 0x52C4, +0x52C5, 0x52C6, 0x52C8, 0x52CA, 0x52CC, 0x52CD, 0x52CE, 0x52CF, +0x52D1, 0x52D3, 0x52D4, 0x52D5, 0x52D7, 0x52D9, 0x52DA, 0x52DB, +0x52DC, 0x52DD, 0x52DE, 0x52E0, 0x52E1, 0x52E2, 0x52E3, 0x52E5, +0x52E6, 0x52E7, 0x52E8, 0x52E9, 0x52EA, 0x52EB, 0x52EC, 0x52ED, +0x52EE, 0x52EF, 0x52F1, 0x52F2, 0x52F3, 0x52F4, 0x52F5, 0x52F6, +0x52F7, 0x52F8, 0x52FB, 0x52FC, 0x52FD, 0x5301, 0x5302, 0x5303, +0x5304, 0x5307, 0x5309, 0x530A, 0x530B, 0x530C, 0x530E, 0, +0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531B, 0x531C, 0x531E, +0x531F, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532B, +0x532C, 0x532D, 0x532F, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, +0x5335, 0x5336, 0x5337, 0x5338, 0x533C, 0x533D, 0x5340, 0x5342, +0x5344, 0x5346, 0x534B, 0x534C, 0x534D, 0x5350, 0x5354, 0x5358, +0x5359, 0x535B, 0x535D, 0x5365, 0x5368, 0x536A, 0x536C, 0x536D, +0x5372, 0x5376, 0x5379, 0x537B, 0x537C, 0x537D, 0x537E, 0x5380, +0x5381, 0x5383, 0x5387, 0x5388, 0x538A, 0x538E, 0x538F, 0, +0x5390, 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, +0x539B, 0x539C, 0x539E, 0x53A0, 0x53A1, 0x53A4, 0x53A7, 0x53AA, +0x53AB, 0x53AC, 0x53AD, 0x53AF, 0x53B0, 0x53B1, 0x53B2, 0x53B3, +0x53B4, 0x53B5, 0x53B7, 0x53B8, 0x53B9, 0x53BA, 0x53BC, 0x53BD, +0x53BE, 0x53C0, 0x53C3, 0x53C4, 0x53C5, 0x53C6, 0x53C7, 0x53CE, +0x53CF, 0x53D0, 0x53D2, 0x53D3, 0x53D5, 0x53DA, 0x53DC, 0x53DD, +0x53DE, 0x53E1, 0x53E2, 0x53E7, 0x53F4, 0x53FA, 0x53FE, 0x53FF, +0x5400, 0x5402, 0x5405, 0x5407, 0x540B, 0x5414, 0x5418, 0x5419, +0x541A, 0x541C, 0x5422, 0x5424, 0x5425, 0x542A, 0x5430, 0x5433, +0x5436, 0x5437, 0x543A, 0x543D, 0x543F, 0x5441, 0x5442, 0x5444, +0x5445, 0x5447, 0x5449, 0x544C, 0x544D, 0x544E, 0x544F, 0x5451, +0x545A, 0x545D, 0x545E, 0x545F, 0x5460, 0x5461, 0x5463, 0x5465, +0x5467, 0x5469, 0x546A, 0x546B, 0x546C, 0x546D, 0x546E, 0x546F, +0x5470, 0x5474, 0x5479, 0x547A, 0x547E, 0x547F, 0x5481, 0x5483, +0x5485, 0x5487, 0x5488, 0x5489, 0x548A, 0x548D, 0x5491, 0x5493, +0x5497, 0x5498, 0x549C, 0x549E, 0x549F, 0x54A0, 0x54A1, 0, +0x54A2, 0x54A5, 0x54AE, 0x54B0, 0x54B2, 0x54B5, 0x54B6, 0x54B7, +0x54B9, 0x54BA, 0x54BC, 0x54BE, 0x54C3, 0x54C5, 0x54CA, 0x54CB, +0x54D6, 0x54D8, 0x54DB, 0x54E0, 0x54E1, 0x54E2, 0x54E3, 0x54E4, +0x54EB, 0x54EC, 0x54EF, 0x54F0, 0x54F1, 0x54F4, 0x54F5, 0x54F6, +0x54F7, 0x54F8, 0x54F9, 0x54FB, 0x54FE, 0x5500, 0x5502, 0x5503, +0x5504, 0x5505, 0x5508, 0x550A, 0x550B, 0x550C, 0x550D, 0x550E, +0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551A, +0x551C, 0x551D, 0x551E, 0x551F, 0x5521, 0x5525, 0x5526, 0, +0x5528, 0x5529, 0x552B, 0x552D, 0x5532, 0x5534, 0x5535, 0x5536, +0x5538, 0x5539, 0x553A, 0x553B, 0x553D, 0x5540, 0x5542, 0x5545, +0x5547, 0x5548, 0x554B, 0x554C, 0x554D, 0x554E, 0x554F, 0x5551, +0x5552, 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555A, 0x555B, +0x555D, 0x555E, 0x555F, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, +0x556B, 0x556F, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, +0x557A, 0x557D, 0x557F, 0x5585, 0x5586, 0x558C, 0x558D, 0x558E, +0x5590, 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559A, 0x559B, +0x559E, 0x55A0, 0x55A1, 0x55A2, 0x55A3, 0x55A4, 0x55A5, 0x55A6, +0x55A8, 0x55A9, 0x55AA, 0x55AB, 0x55AC, 0x55AD, 0x55AE, 0x55AF, +0x55B0, 0x55B2, 0x55B4, 0x55B6, 0x55B8, 0x55BA, 0x55BC, 0x55BF, +0x55C0, 0x55C1, 0x55C2, 0x55C3, 0x55C6, 0x55C7, 0x55C8, 0x55CA, +0x55CB, 0x55CE, 0x55CF, 0x55D0, 0x55D5, 0x55D7, 0x55D8, 0x55D9, +0x55DA, 0x55DB, 0x55DE, 0x55E0, 0x55E2, 0x55E7, 0x55E9, 0x55ED, +0x55EE, 0x55F0, 0x55F1, 0x55F4, 0x55F6, 0x55F8, 0x55F9, 0x55FA, +0x55FB, 0x55FC, 0x55FF, 0x5602, 0x5603, 0x5604, 0x5605, 0, +0x5606, 0x5607, 0x560A, 0x560B, 0x560D, 0x5610, 0x5611, 0x5612, +0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561A, 0x561C, +0x561D, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, +0x562A, 0x562B, 0x562E, 0x562F, 0x5630, 0x5633, 0x5635, 0x5637, +0x5638, 0x563A, 0x563C, 0x563D, 0x563E, 0x5640, 0x5641, 0x5642, +0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564A, +0x564B, 0x564F, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, +0x565A, 0x565B, 0x565D, 0x565E, 0x565F, 0x5660, 0x5661, 0, +0x5663, 0x5665, 0x5666, 0x5667, 0x566D, 0x566E, 0x566F, 0x5670, +0x5672, 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567A, +0x567D, 0x567E, 0x567F, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, +0x5687, 0x5688, 0x5689, 0x568A, 0x568B, 0x568C, 0x568D, 0x5690, +0x5691, 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, +0x569A, 0x569B, 0x569C, 0x569D, 0x569E, 0x569F, 0x56A0, 0x56A1, +0x56A2, 0x56A4, 0x56A5, 0x56A6, 0x56A7, 0x56A8, 0x56A9, 0x56AA, +0x56AB, 0x56AC, 0x56AD, 0x56AE, 0x56B0, 0x56B1, 0x56B2, 0x56B3, +0x56B4, 0x56B5, 0x56B6, 0x56B8, 0x56B9, 0x56BA, 0x56BB, 0x56BD, +0x56BE, 0x56BF, 0x56C0, 0x56C1, 0x56C2, 0x56C3, 0x56C4, 0x56C5, +0x56C6, 0x56C7, 0x56C8, 0x56C9, 0x56CB, 0x56CC, 0x56CD, 0x56CE, +0x56CF, 0x56D0, 0x56D1, 0x56D2, 0x56D3, 0x56D5, 0x56D6, 0x56D8, +0x56D9, 0x56DC, 0x56E3, 0x56E5, 0x56E6, 0x56E7, 0x56E8, 0x56E9, +0x56EA, 0x56EC, 0x56EE, 0x56EF, 0x56F2, 0x56F3, 0x56F6, 0x56F7, +0x56F8, 0x56FB, 0x56FC, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, +0x570B, 0x570C, 0x570D, 0x570E, 0x570F, 0x5710, 0x5711, 0, +0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, +0x571A, 0x571B, 0x571D, 0x571E, 0x5720, 0x5721, 0x5722, 0x5724, +0x5725, 0x5726, 0x5727, 0x572B, 0x5731, 0x5732, 0x5734, 0x5735, +0x5736, 0x5737, 0x5738, 0x573C, 0x573D, 0x573F, 0x5741, 0x5743, +0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574B, 0x5752, 0x5753, +0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, +0x5767, 0x576C, 0x576E, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, +0x5778, 0x5779, 0x577A, 0x577D, 0x577E, 0x577F, 0x5780, 0, +0x5781, 0x5787, 0x5788, 0x5789, 0x578A, 0x578D, 0x578E, 0x578F, +0x5790, 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, +0x579A, 0x579C, 0x579D, 0x579E, 0x579F, 0x57A5, 0x57A8, 0x57AA, +0x57AC, 0x57AF, 0x57B0, 0x57B1, 0x57B3, 0x57B5, 0x57B6, 0x57B7, +0x57B9, 0x57BA, 0x57BB, 0x57BC, 0x57BD, 0x57BE, 0x57BF, 0x57C0, +0x57C1, 0x57C4, 0x57C5, 0x57C6, 0x57C7, 0x57C8, 0x57C9, 0x57CA, +0x57CC, 0x57CD, 0x57D0, 0x57D1, 0x57D3, 0x57D6, 0x57D7, 0x57DB, +0x57DC, 0x57DE, 0x57E1, 0x57E2, 0x57E3, 0x57E5, 0x57E6, 0x57E7, +0x57E8, 0x57E9, 0x57EA, 0x57EB, 0x57EC, 0x57EE, 0x57F0, 0x57F1, +0x57F2, 0x57F3, 0x57F5, 0x57F6, 0x57F7, 0x57FB, 0x57FC, 0x57FE, +0x57FF, 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580A, +0x580C, 0x580E, 0x580F, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, +0x5817, 0x5818, 0x581A, 0x581B, 0x581C, 0x581D, 0x581F, 0x5822, +0x5823, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582B, 0x582C, +0x582D, 0x582E, 0x582F, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, +0x5837, 0x5838, 0x5839, 0x583A, 0x583B, 0x583C, 0x583D, 0, +0x583E, 0x583F, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, +0x5847, 0x5848, 0x5849, 0x584A, 0x584B, 0x584E, 0x584F, 0x5850, +0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585A, 0x585B, +0x585C, 0x585D, 0x585F, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, +0x5866, 0x5867, 0x5868, 0x5869, 0x586A, 0x586D, 0x586E, 0x586F, +0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, +0x5878, 0x5879, 0x587A, 0x587B, 0x587C, 0x587D, 0x587F, 0x5882, +0x5884, 0x5886, 0x5887, 0x5888, 0x588A, 0x588B, 0x588C, 0, +0x588D, 0x588E, 0x588F, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, +0x5897, 0x5898, 0x589B, 0x589C, 0x589D, 0x58A0, 0x58A1, 0x58A2, +0x58A3, 0x58A4, 0x58A5, 0x58A6, 0x58A7, 0x58AA, 0x58AB, 0x58AC, +0x58AD, 0x58AE, 0x58AF, 0x58B0, 0x58B1, 0x58B2, 0x58B3, 0x58B4, +0x58B5, 0x58B6, 0x58B7, 0x58B8, 0x58B9, 0x58BA, 0x58BB, 0x58BD, +0x58BE, 0x58BF, 0x58C0, 0x58C2, 0x58C3, 0x58C4, 0x58C6, 0x58C7, +0x58C8, 0x58C9, 0x58CA, 0x58CB, 0x58CC, 0x58CD, 0x58CE, 0x58CF, +0x58D0, 0x58D2, 0x58D3, 0x58D4, 0x58D6, 0x58D7, 0x58D8, 0x58D9, +0x58DA, 0x58DB, 0x58DC, 0x58DD, 0x58DE, 0x58DF, 0x58E0, 0x58E1, +0x58E2, 0x58E3, 0x58E5, 0x58E6, 0x58E7, 0x58E8, 0x58E9, 0x58EA, +0x58ED, 0x58EF, 0x58F1, 0x58F2, 0x58F4, 0x58F5, 0x58F7, 0x58F8, +0x58FA, 0x58FB, 0x58FC, 0x58FD, 0x58FE, 0x58FF, 0x5900, 0x5901, +0x5903, 0x5905, 0x5906, 0x5908, 0x5909, 0x590A, 0x590B, 0x590C, +0x590E, 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591B, +0x591D, 0x591E, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, +0x592C, 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593B, 0, +0x593D, 0x593E, 0x593F, 0x5940, 0x5943, 0x5945, 0x5946, 0x594A, +0x594C, 0x594D, 0x5950, 0x5952, 0x5953, 0x5959, 0x595B, 0x595C, +0x595D, 0x595E, 0x595F, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, +0x5968, 0x5969, 0x596A, 0x596B, 0x596C, 0x596D, 0x596E, 0x596F, +0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597A, 0x597B, 0x597C, +0x597E, 0x597F, 0x5980, 0x5985, 0x5989, 0x598B, 0x598C, 0x598E, +0x598F, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599A, 0x599B, +0x599C, 0x599D, 0x599F, 0x59A0, 0x59A1, 0x59A2, 0x59A6, 0, +0x59A7, 0x59AC, 0x59AD, 0x59B0, 0x59B1, 0x59B3, 0x59B4, 0x59B5, +0x59B6, 0x59B7, 0x59B8, 0x59BA, 0x59BC, 0x59BD, 0x59BF, 0x59C0, +0x59C1, 0x59C2, 0x59C3, 0x59C4, 0x59C5, 0x59C7, 0x59C8, 0x59C9, +0x59CC, 0x59CD, 0x59CE, 0x59CF, 0x59D5, 0x59D6, 0x59D9, 0x59DB, +0x59DE, 0x59DF, 0x59E0, 0x59E1, 0x59E2, 0x59E4, 0x59E6, 0x59E7, +0x59E9, 0x59EA, 0x59EB, 0x59ED, 0x59EE, 0x59EF, 0x59F0, 0x59F1, +0x59F2, 0x59F3, 0x59F4, 0x59F5, 0x59F6, 0x59F7, 0x59F8, 0x59FA, +0x59FC, 0x59FD, 0x59FE, 0x5A00, 0x5A02, 0x5A0A, 0x5A0B, 0x5A0D, +0x5A0E, 0x5A0F, 0x5A10, 0x5A12, 0x5A14, 0x5A15, 0x5A16, 0x5A17, +0x5A19, 0x5A1A, 0x5A1B, 0x5A1D, 0x5A1E, 0x5A21, 0x5A22, 0x5A24, +0x5A26, 0x5A27, 0x5A28, 0x5A2A, 0x5A2B, 0x5A2C, 0x5A2D, 0x5A2E, +0x5A2F, 0x5A30, 0x5A33, 0x5A35, 0x5A37, 0x5A38, 0x5A39, 0x5A3A, +0x5A3B, 0x5A3D, 0x5A3E, 0x5A3F, 0x5A41, 0x5A42, 0x5A43, 0x5A44, +0x5A45, 0x5A47, 0x5A48, 0x5A4B, 0x5A4C, 0x5A4D, 0x5A4E, 0x5A4F, +0x5A50, 0x5A51, 0x5A52, 0x5A53, 0x5A54, 0x5A56, 0x5A57, 0x5A58, +0x5A59, 0x5A5B, 0x5A5C, 0x5A5D, 0x5A5E, 0x5A5F, 0x5A60, 0, +0x5A61, 0x5A63, 0x5A64, 0x5A65, 0x5A66, 0x5A68, 0x5A69, 0x5A6B, +0x5A6C, 0x5A6D, 0x5A6E, 0x5A6F, 0x5A70, 0x5A71, 0x5A72, 0x5A73, +0x5A78, 0x5A79, 0x5A7B, 0x5A7C, 0x5A7D, 0x5A7E, 0x5A80, 0x5A81, +0x5A82, 0x5A83, 0x5A84, 0x5A85, 0x5A86, 0x5A87, 0x5A88, 0x5A89, +0x5A8A, 0x5A8B, 0x5A8C, 0x5A8D, 0x5A8E, 0x5A8F, 0x5A90, 0x5A91, +0x5A93, 0x5A94, 0x5A95, 0x5A96, 0x5A97, 0x5A98, 0x5A99, 0x5A9C, +0x5A9D, 0x5A9E, 0x5A9F, 0x5AA0, 0x5AA1, 0x5AA2, 0x5AA3, 0x5AA4, +0x5AA5, 0x5AA6, 0x5AA7, 0x5AA8, 0x5AA9, 0x5AAB, 0x5AAC, 0, +0x5AAD, 0x5AAE, 0x5AAF, 0x5AB0, 0x5AB1, 0x5AB4, 0x5AB6, 0x5AB7, +0x5AB9, 0x5ABA, 0x5ABB, 0x5ABC, 0x5ABD, 0x5ABF, 0x5AC0, 0x5AC3, +0x5AC4, 0x5AC5, 0x5AC6, 0x5AC7, 0x5AC8, 0x5ACA, 0x5ACB, 0x5ACD, +0x5ACE, 0x5ACF, 0x5AD0, 0x5AD1, 0x5AD3, 0x5AD5, 0x5AD7, 0x5AD9, +0x5ADA, 0x5ADB, 0x5ADD, 0x5ADE, 0x5ADF, 0x5AE2, 0x5AE4, 0x5AE5, +0x5AE7, 0x5AE8, 0x5AEA, 0x5AEC, 0x5AED, 0x5AEE, 0x5AEF, 0x5AF0, +0x5AF2, 0x5AF3, 0x5AF4, 0x5AF5, 0x5AF6, 0x5AF7, 0x5AF8, 0x5AF9, +0x5AFA, 0x5AFB, 0x5AFC, 0x5AFD, 0x5AFE, 0x5AFF, 0x5B00, 0x5B01, +0x5B02, 0x5B03, 0x5B04, 0x5B05, 0x5B06, 0x5B07, 0x5B08, 0x5B0A, +0x5B0B, 0x5B0C, 0x5B0D, 0x5B0E, 0x5B0F, 0x5B10, 0x5B11, 0x5B12, +0x5B13, 0x5B14, 0x5B15, 0x5B18, 0x5B19, 0x5B1A, 0x5B1B, 0x5B1C, +0x5B1D, 0x5B1E, 0x5B1F, 0x5B20, 0x5B21, 0x5B22, 0x5B23, 0x5B24, +0x5B25, 0x5B26, 0x5B27, 0x5B28, 0x5B29, 0x5B2A, 0x5B2B, 0x5B2C, +0x5B2D, 0x5B2E, 0x5B2F, 0x5B30, 0x5B31, 0x5B33, 0x5B35, 0x5B36, +0x5B38, 0x5B39, 0x5B3A, 0x5B3B, 0x5B3C, 0x5B3D, 0x5B3E, 0x5B3F, +0x5B41, 0x5B42, 0x5B43, 0x5B44, 0x5B45, 0x5B46, 0x5B47, 0, +0x5B48, 0x5B49, 0x5B4A, 0x5B4B, 0x5B4C, 0x5B4D, 0x5B4E, 0x5B4F, +0x5B52, 0x5B56, 0x5B5E, 0x5B60, 0x5B61, 0x5B67, 0x5B68, 0x5B6B, +0x5B6D, 0x5B6E, 0x5B6F, 0x5B72, 0x5B74, 0x5B76, 0x5B77, 0x5B78, +0x5B79, 0x5B7B, 0x5B7C, 0x5B7E, 0x5B7F, 0x5B82, 0x5B86, 0x5B8A, +0x5B8D, 0x5B8E, 0x5B90, 0x5B91, 0x5B92, 0x5B94, 0x5B96, 0x5B9F, +0x5BA7, 0x5BA8, 0x5BA9, 0x5BAC, 0x5BAD, 0x5BAE, 0x5BAF, 0x5BB1, +0x5BB2, 0x5BB7, 0x5BBA, 0x5BBB, 0x5BBC, 0x5BC0, 0x5BC1, 0x5BC3, +0x5BC8, 0x5BC9, 0x5BCA, 0x5BCB, 0x5BCD, 0x5BCE, 0x5BCF, 0, +0x5BD1, 0x5BD4, 0x5BD5, 0x5BD6, 0x5BD7, 0x5BD8, 0x5BD9, 0x5BDA, +0x5BDB, 0x5BDC, 0x5BE0, 0x5BE2, 0x5BE3, 0x5BE6, 0x5BE7, 0x5BE9, +0x5BEA, 0x5BEB, 0x5BEC, 0x5BED, 0x5BEF, 0x5BF1, 0x5BF2, 0x5BF3, +0x5BF4, 0x5BF5, 0x5BF6, 0x5BF7, 0x5BFD, 0x5BFE, 0x5C00, 0x5C02, +0x5C03, 0x5C05, 0x5C07, 0x5C08, 0x5C0B, 0x5C0C, 0x5C0D, 0x5C0E, +0x5C10, 0x5C12, 0x5C13, 0x5C17, 0x5C19, 0x5C1B, 0x5C1E, 0x5C1F, +0x5C20, 0x5C21, 0x5C23, 0x5C26, 0x5C28, 0x5C29, 0x5C2A, 0x5C2B, +0x5C2D, 0x5C2E, 0x5C2F, 0x5C30, 0x5C32, 0x5C33, 0x5C35, 0x5C36, +0x5C37, 0x5C43, 0x5C44, 0x5C46, 0x5C47, 0x5C4C, 0x5C4D, 0x5C52, +0x5C53, 0x5C54, 0x5C56, 0x5C57, 0x5C58, 0x5C5A, 0x5C5B, 0x5C5C, +0x5C5D, 0x5C5F, 0x5C62, 0x5C64, 0x5C67, 0x5C68, 0x5C69, 0x5C6A, +0x5C6B, 0x5C6C, 0x5C6D, 0x5C70, 0x5C72, 0x5C73, 0x5C74, 0x5C75, +0x5C76, 0x5C77, 0x5C78, 0x5C7B, 0x5C7C, 0x5C7D, 0x5C7E, 0x5C80, +0x5C83, 0x5C84, 0x5C85, 0x5C86, 0x5C87, 0x5C89, 0x5C8A, 0x5C8B, +0x5C8E, 0x5C8F, 0x5C92, 0x5C93, 0x5C95, 0x5C9D, 0x5C9E, 0x5C9F, +0x5CA0, 0x5CA1, 0x5CA4, 0x5CA5, 0x5CA6, 0x5CA7, 0x5CA8, 0, +0x5CAA, 0x5CAE, 0x5CAF, 0x5CB0, 0x5CB2, 0x5CB4, 0x5CB6, 0x5CB9, +0x5CBA, 0x5CBB, 0x5CBC, 0x5CBE, 0x5CC0, 0x5CC2, 0x5CC3, 0x5CC5, +0x5CC6, 0x5CC7, 0x5CC8, 0x5CC9, 0x5CCA, 0x5CCC, 0x5CCD, 0x5CCE, +0x5CCF, 0x5CD0, 0x5CD1, 0x5CD3, 0x5CD4, 0x5CD5, 0x5CD6, 0x5CD7, +0x5CD8, 0x5CDA, 0x5CDB, 0x5CDC, 0x5CDD, 0x5CDE, 0x5CDF, 0x5CE0, +0x5CE2, 0x5CE3, 0x5CE7, 0x5CE9, 0x5CEB, 0x5CEC, 0x5CEE, 0x5CEF, +0x5CF1, 0x5CF2, 0x5CF3, 0x5CF4, 0x5CF5, 0x5CF6, 0x5CF7, 0x5CF8, +0x5CF9, 0x5CFA, 0x5CFC, 0x5CFD, 0x5CFE, 0x5CFF, 0x5D00, 0, +0x5D01, 0x5D04, 0x5D05, 0x5D08, 0x5D09, 0x5D0A, 0x5D0B, 0x5D0C, +0x5D0D, 0x5D0F, 0x5D10, 0x5D11, 0x5D12, 0x5D13, 0x5D15, 0x5D17, +0x5D18, 0x5D19, 0x5D1A, 0x5D1C, 0x5D1D, 0x5D1F, 0x5D20, 0x5D21, +0x5D22, 0x5D23, 0x5D25, 0x5D28, 0x5D2A, 0x5D2B, 0x5D2C, 0x5D2F, +0x5D30, 0x5D31, 0x5D32, 0x5D33, 0x5D35, 0x5D36, 0x5D37, 0x5D38, +0x5D39, 0x5D3A, 0x5D3B, 0x5D3C, 0x5D3F, 0x5D40, 0x5D41, 0x5D42, +0x5D43, 0x5D44, 0x5D45, 0x5D46, 0x5D48, 0x5D49, 0x5D4D, 0x5D4E, +0x5D4F, 0x5D50, 0x5D51, 0x5D52, 0x5D53, 0x5D54, 0x5D55, 0x5D56, +0x5D57, 0x5D59, 0x5D5A, 0x5D5C, 0x5D5E, 0x5D5F, 0x5D60, 0x5D61, +0x5D62, 0x5D63, 0x5D64, 0x5D65, 0x5D66, 0x5D67, 0x5D68, 0x5D6A, +0x5D6D, 0x5D6E, 0x5D70, 0x5D71, 0x5D72, 0x5D73, 0x5D75, 0x5D76, +0x5D77, 0x5D78, 0x5D79, 0x5D7A, 0x5D7B, 0x5D7C, 0x5D7D, 0x5D7E, +0x5D7F, 0x5D80, 0x5D81, 0x5D83, 0x5D84, 0x5D85, 0x5D86, 0x5D87, +0x5D88, 0x5D89, 0x5D8A, 0x5D8B, 0x5D8C, 0x5D8D, 0x5D8E, 0x5D8F, +0x5D90, 0x5D91, 0x5D92, 0x5D93, 0x5D94, 0x5D95, 0x5D96, 0x5D97, +0x5D98, 0x5D9A, 0x5D9B, 0x5D9C, 0x5D9E, 0x5D9F, 0x5DA0, 0, +0x5DA1, 0x5DA2, 0x5DA3, 0x5DA4, 0x5DA5, 0x5DA6, 0x5DA7, 0x5DA8, +0x5DA9, 0x5DAA, 0x5DAB, 0x5DAC, 0x5DAD, 0x5DAE, 0x5DAF, 0x5DB0, +0x5DB1, 0x5DB2, 0x5DB3, 0x5DB4, 0x5DB5, 0x5DB6, 0x5DB8, 0x5DB9, +0x5DBA, 0x5DBB, 0x5DBC, 0x5DBD, 0x5DBE, 0x5DBF, 0x5DC0, 0x5DC1, +0x5DC2, 0x5DC3, 0x5DC4, 0x5DC6, 0x5DC7, 0x5DC8, 0x5DC9, 0x5DCA, +0x5DCB, 0x5DCC, 0x5DCE, 0x5DCF, 0x5DD0, 0x5DD1, 0x5DD2, 0x5DD3, +0x5DD4, 0x5DD5, 0x5DD6, 0x5DD7, 0x5DD8, 0x5DD9, 0x5DDA, 0x5DDC, +0x5DDF, 0x5DE0, 0x5DE3, 0x5DE4, 0x5DEA, 0x5DEC, 0x5DED, 0, +0x5DF0, 0x5DF5, 0x5DF6, 0x5DF8, 0x5DF9, 0x5DFA, 0x5DFB, 0x5DFC, +0x5DFF, 0x5E00, 0x5E04, 0x5E07, 0x5E09, 0x5E0A, 0x5E0B, 0x5E0D, +0x5E0E, 0x5E12, 0x5E13, 0x5E17, 0x5E1E, 0x5E1F, 0x5E20, 0x5E21, +0x5E22, 0x5E23, 0x5E24, 0x5E25, 0x5E28, 0x5E29, 0x5E2A, 0x5E2B, +0x5E2C, 0x5E2F, 0x5E30, 0x5E32, 0x5E33, 0x5E34, 0x5E35, 0x5E36, +0x5E39, 0x5E3A, 0x5E3E, 0x5E3F, 0x5E40, 0x5E41, 0x5E43, 0x5E46, +0x5E47, 0x5E48, 0x5E49, 0x5E4A, 0x5E4B, 0x5E4D, 0x5E4E, 0x5E4F, +0x5E50, 0x5E51, 0x5E52, 0x5E53, 0x5E56, 0x5E57, 0x5E58, 0x5E59, +0x5E5A, 0x5E5C, 0x5E5D, 0x5E5F, 0x5E60, 0x5E63, 0x5E64, 0x5E65, +0x5E66, 0x5E67, 0x5E68, 0x5E69, 0x5E6A, 0x5E6B, 0x5E6C, 0x5E6D, +0x5E6E, 0x5E6F, 0x5E70, 0x5E71, 0x5E75, 0x5E77, 0x5E79, 0x5E7E, +0x5E81, 0x5E82, 0x5E83, 0x5E85, 0x5E88, 0x5E89, 0x5E8C, 0x5E8D, +0x5E8E, 0x5E92, 0x5E98, 0x5E9B, 0x5E9D, 0x5EA1, 0x5EA2, 0x5EA3, +0x5EA4, 0x5EA8, 0x5EA9, 0x5EAA, 0x5EAB, 0x5EAC, 0x5EAE, 0x5EAF, +0x5EB0, 0x5EB1, 0x5EB2, 0x5EB4, 0x5EBA, 0x5EBB, 0x5EBC, 0x5EBD, +0x5EBF, 0x5EC0, 0x5EC1, 0x5EC2, 0x5EC3, 0x5EC4, 0x5EC5, 0, +0x5EC6, 0x5EC7, 0x5EC8, 0x5ECB, 0x5ECC, 0x5ECD, 0x5ECE, 0x5ECF, +0x5ED0, 0x5ED4, 0x5ED5, 0x5ED7, 0x5ED8, 0x5ED9, 0x5EDA, 0x5EDC, +0x5EDD, 0x5EDE, 0x5EDF, 0x5EE0, 0x5EE1, 0x5EE2, 0x5EE3, 0x5EE4, +0x5EE5, 0x5EE6, 0x5EE7, 0x5EE9, 0x5EEB, 0x5EEC, 0x5EED, 0x5EEE, +0x5EEF, 0x5EF0, 0x5EF1, 0x5EF2, 0x5EF3, 0x5EF5, 0x5EF8, 0x5EF9, +0x5EFB, 0x5EFC, 0x5EFD, 0x5F05, 0x5F06, 0x5F07, 0x5F09, 0x5F0C, +0x5F0D, 0x5F0E, 0x5F10, 0x5F12, 0x5F14, 0x5F16, 0x5F19, 0x5F1A, +0x5F1C, 0x5F1D, 0x5F1E, 0x5F21, 0x5F22, 0x5F23, 0x5F24, 0, +0x5F28, 0x5F2B, 0x5F2C, 0x5F2E, 0x5F30, 0x5F32, 0x5F33, 0x5F34, +0x5F35, 0x5F36, 0x5F37, 0x5F38, 0x5F3B, 0x5F3D, 0x5F3E, 0x5F3F, +0x5F41, 0x5F42, 0x5F43, 0x5F44, 0x5F45, 0x5F46, 0x5F47, 0x5F48, +0x5F49, 0x5F4A, 0x5F4B, 0x5F4C, 0x5F4D, 0x5F4E, 0x5F4F, 0x5F51, +0x5F54, 0x5F59, 0x5F5A, 0x5F5B, 0x5F5C, 0x5F5E, 0x5F5F, 0x5F60, +0x5F63, 0x5F65, 0x5F67, 0x5F68, 0x5F6B, 0x5F6E, 0x5F6F, 0x5F72, +0x5F74, 0x5F75, 0x5F76, 0x5F78, 0x5F7A, 0x5F7D, 0x5F7E, 0x5F7F, +0x5F83, 0x5F86, 0x5F8D, 0x5F8E, 0x5F8F, 0x5F91, 0x5F93, 0x5F94, +0x5F96, 0x5F9A, 0x5F9B, 0x5F9D, 0x5F9E, 0x5F9F, 0x5FA0, 0x5FA2, +0x5FA3, 0x5FA4, 0x5FA5, 0x5FA6, 0x5FA7, 0x5FA9, 0x5FAB, 0x5FAC, +0x5FAF, 0x5FB0, 0x5FB1, 0x5FB2, 0x5FB3, 0x5FB4, 0x5FB6, 0x5FB8, +0x5FB9, 0x5FBA, 0x5FBB, 0x5FBE, 0x5FBF, 0x5FC0, 0x5FC1, 0x5FC2, +0x5FC7, 0x5FC8, 0x5FCA, 0x5FCB, 0x5FCE, 0x5FD3, 0x5FD4, 0x5FD5, +0x5FDA, 0x5FDB, 0x5FDC, 0x5FDE, 0x5FDF, 0x5FE2, 0x5FE3, 0x5FE5, +0x5FE6, 0x5FE8, 0x5FE9, 0x5FEC, 0x5FEF, 0x5FF0, 0x5FF2, 0x5FF3, +0x5FF4, 0x5FF6, 0x5FF7, 0x5FF9, 0x5FFA, 0x5FFC, 0x6007, 0, +0x6008, 0x6009, 0x600B, 0x600C, 0x6010, 0x6011, 0x6013, 0x6017, +0x6018, 0x601A, 0x601E, 0x601F, 0x6022, 0x6023, 0x6024, 0x602C, +0x602D, 0x602E, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, +0x6037, 0x6038, 0x6039, 0x603A, 0x603D, 0x603E, 0x6040, 0x6044, +0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604A, 0x604C, 0x604E, +0x604F, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605B, +0x605C, 0x605E, 0x605F, 0x6060, 0x6061, 0x6065, 0x6066, 0x606E, +0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607E, 0x6080, 0, +0x6081, 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608A, 0x608B, +0x608E, 0x608F, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, +0x6099, 0x609C, 0x609E, 0x60A1, 0x60A2, 0x60A4, 0x60A5, 0x60A7, +0x60A9, 0x60AA, 0x60AE, 0x60B0, 0x60B3, 0x60B5, 0x60B6, 0x60B7, +0x60B9, 0x60BA, 0x60BD, 0x60BE, 0x60BF, 0x60C0, 0x60C1, 0x60C2, +0x60C3, 0x60C4, 0x60C7, 0x60C8, 0x60C9, 0x60CC, 0x60CD, 0x60CE, +0x60CF, 0x60D0, 0x60D2, 0x60D3, 0x60D4, 0x60D6, 0x60D7, 0x60D9, +0x60DB, 0x60DE, 0x60E1, 0x60E2, 0x60E3, 0x60E4, 0x60E5, 0x60EA, +0x60F1, 0x60F2, 0x60F5, 0x60F7, 0x60F8, 0x60FB, 0x60FC, 0x60FD, +0x60FE, 0x60FF, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610A, +0x610B, 0x610C, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, +0x6117, 0x6118, 0x6119, 0x611B, 0x611C, 0x611D, 0x611E, 0x6121, +0x6122, 0x6125, 0x6128, 0x6129, 0x612A, 0x612C, 0x612D, 0x612E, +0x612F, 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, +0x6137, 0x6138, 0x6139, 0x613A, 0x613B, 0x613C, 0x613D, 0x613E, +0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0, +0x6147, 0x6149, 0x614B, 0x614D, 0x614F, 0x6150, 0x6152, 0x6153, +0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615A, 0x615B, 0x615C, +0x615E, 0x615F, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, +0x6169, 0x616A, 0x616B, 0x616C, 0x616D, 0x616E, 0x616F, 0x6171, +0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617A, 0x617B, +0x617C, 0x617D, 0x617E, 0x617F, 0x6180, 0x6181, 0x6182, 0x6183, +0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618A, 0x618C, +0x618D, 0x618F, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0, +0x6196, 0x6197, 0x6198, 0x6199, 0x619A, 0x619B, 0x619C, 0x619E, +0x619F, 0x61A0, 0x61A1, 0x61A2, 0x61A3, 0x61A4, 0x61A5, 0x61A6, +0x61AA, 0x61AB, 0x61AD, 0x61AE, 0x61AF, 0x61B0, 0x61B1, 0x61B2, +0x61B3, 0x61B4, 0x61B5, 0x61B6, 0x61B8, 0x61B9, 0x61BA, 0x61BB, +0x61BC, 0x61BD, 0x61BF, 0x61C0, 0x61C1, 0x61C3, 0x61C4, 0x61C5, +0x61C6, 0x61C7, 0x61C9, 0x61CC, 0x61CD, 0x61CE, 0x61CF, 0x61D0, +0x61D3, 0x61D5, 0x61D6, 0x61D7, 0x61D8, 0x61D9, 0x61DA, 0x61DB, +0x61DC, 0x61DD, 0x61DE, 0x61DF, 0x61E0, 0x61E1, 0x61E2, 0x61E3, +0x61E4, 0x61E5, 0x61E7, 0x61E8, 0x61E9, 0x61EA, 0x61EB, 0x61EC, +0x61ED, 0x61EE, 0x61EF, 0x61F0, 0x61F1, 0x61F2, 0x61F3, 0x61F4, +0x61F6, 0x61F7, 0x61F8, 0x61F9, 0x61FA, 0x61FB, 0x61FC, 0x61FD, +0x61FE, 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, +0x6209, 0x6213, 0x6214, 0x6219, 0x621C, 0x621D, 0x621E, 0x6220, +0x6223, 0x6226, 0x6227, 0x6228, 0x6229, 0x622B, 0x622D, 0x622F, +0x6230, 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623A, +0x623B, 0x623C, 0x6242, 0x6244, 0x6245, 0x6246, 0x624A, 0, +0x624F, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625A, 0x625C, +0x625D, 0x625E, 0x625F, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, +0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627A, +0x627B, 0x627D, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, +0x6288, 0x628B, 0x628C, 0x628D, 0x628E, 0x628F, 0x6290, 0x6294, +0x6299, 0x629C, 0x629D, 0x629E, 0x62A3, 0x62A6, 0x62A7, 0x62A9, +0x62AA, 0x62AD, 0x62AE, 0x62AF, 0x62B0, 0x62B2, 0x62B3, 0x62B4, +0x62B6, 0x62B7, 0x62B8, 0x62BA, 0x62BE, 0x62C0, 0x62C1, 0, +0x62C3, 0x62CB, 0x62CF, 0x62D1, 0x62D5, 0x62DD, 0x62DE, 0x62E0, +0x62E1, 0x62E4, 0x62EA, 0x62EB, 0x62F0, 0x62F2, 0x62F5, 0x62F8, +0x62F9, 0x62FA, 0x62FB, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, +0x630A, 0x630B, 0x630C, 0x630D, 0x630F, 0x6310, 0x6312, 0x6313, +0x6314, 0x6315, 0x6317, 0x6318, 0x6319, 0x631C, 0x6326, 0x6327, +0x6329, 0x632C, 0x632D, 0x632E, 0x6330, 0x6331, 0x6333, 0x6334, +0x6335, 0x6336, 0x6337, 0x6338, 0x633B, 0x633C, 0x633E, 0x633F, +0x6340, 0x6341, 0x6344, 0x6347, 0x6348, 0x634A, 0x6351, 0x6352, +0x6353, 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635A, 0x635B, +0x635C, 0x635D, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636A, +0x636B, 0x636C, 0x636F, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, +0x6378, 0x6379, 0x637C, 0x637D, 0x637E, 0x637F, 0x6381, 0x6383, +0x6384, 0x6385, 0x6386, 0x638B, 0x638D, 0x6391, 0x6393, 0x6394, +0x6395, 0x6397, 0x6399, 0x639A, 0x639B, 0x639C, 0x639D, 0x639E, +0x639F, 0x63A1, 0x63A4, 0x63A6, 0x63AB, 0x63AF, 0x63B1, 0x63B2, +0x63B5, 0x63B6, 0x63B9, 0x63BB, 0x63BD, 0x63BF, 0x63C0, 0, +0x63C1, 0x63C2, 0x63C3, 0x63C5, 0x63C7, 0x63C8, 0x63CA, 0x63CB, +0x63CC, 0x63D1, 0x63D3, 0x63D4, 0x63D5, 0x63D7, 0x63D8, 0x63D9, +0x63DA, 0x63DB, 0x63DC, 0x63DD, 0x63DF, 0x63E2, 0x63E4, 0x63E5, +0x63E6, 0x63E7, 0x63E8, 0x63EB, 0x63EC, 0x63EE, 0x63EF, 0x63F0, +0x63F1, 0x63F3, 0x63F5, 0x63F7, 0x63F9, 0x63FA, 0x63FB, 0x63FC, +0x63FE, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640A, +0x640D, 0x640E, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, +0x6419, 0x641A, 0x641D, 0x641F, 0x6422, 0x6423, 0x6424, 0, +0x6425, 0x6427, 0x6428, 0x6429, 0x642B, 0x642E, 0x642F, 0x6430, +0x6431, 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, +0x643B, 0x643C, 0x643E, 0x6440, 0x6442, 0x6443, 0x6449, 0x644B, +0x644C, 0x644D, 0x644E, 0x644F, 0x6450, 0x6451, 0x6453, 0x6455, +0x6456, 0x6457, 0x6459, 0x645A, 0x645B, 0x645C, 0x645D, 0x645F, +0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, +0x646A, 0x646B, 0x646C, 0x646E, 0x646F, 0x6470, 0x6471, 0x6472, +0x6473, 0x6474, 0x6475, 0x6476, 0x6477, 0x647B, 0x647C, 0x647D, +0x647E, 0x647F, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, +0x648A, 0x648B, 0x648C, 0x648D, 0x648E, 0x648F, 0x6490, 0x6493, +0x6494, 0x6497, 0x6498, 0x649A, 0x649B, 0x649C, 0x649D, 0x649F, +0x64A0, 0x64A1, 0x64A2, 0x64A3, 0x64A5, 0x64A6, 0x64A7, 0x64A8, +0x64AA, 0x64AB, 0x64AF, 0x64B1, 0x64B2, 0x64B3, 0x64B4, 0x64B6, +0x64B9, 0x64BB, 0x64BD, 0x64BE, 0x64BF, 0x64C1, 0x64C3, 0x64C4, +0x64C6, 0x64C7, 0x64C8, 0x64C9, 0x64CA, 0x64CB, 0x64CC, 0x64CF, +0x64D1, 0x64D3, 0x64D4, 0x64D5, 0x64D6, 0x64D9, 0x64DA, 0, +0x64DB, 0x64DC, 0x64DD, 0x64DF, 0x64E0, 0x64E1, 0x64E3, 0x64E5, +0x64E7, 0x64E8, 0x64E9, 0x64EA, 0x64EB, 0x64EC, 0x64ED, 0x64EE, +0x64EF, 0x64F0, 0x64F1, 0x64F2, 0x64F3, 0x64F4, 0x64F5, 0x64F6, +0x64F7, 0x64F8, 0x64F9, 0x64FA, 0x64FB, 0x64FC, 0x64FD, 0x64FE, +0x64FF, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, +0x6508, 0x650A, 0x650B, 0x650C, 0x650D, 0x650E, 0x650F, 0x6510, +0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651A, +0x651B, 0x651C, 0x651D, 0x651E, 0x651F, 0x6520, 0x6521, 0, +0x6522, 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652A, +0x652C, 0x652D, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653A, +0x653C, 0x653D, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, +0x6547, 0x654A, 0x654B, 0x654D, 0x654E, 0x6550, 0x6552, 0x6553, +0x6554, 0x6557, 0x6558, 0x655A, 0x655C, 0x655F, 0x6560, 0x6561, +0x6564, 0x6565, 0x6567, 0x6568, 0x6569, 0x656A, 0x656D, 0x656E, +0x656F, 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657A, +0x657B, 0x657C, 0x657D, 0x657E, 0x657F, 0x6580, 0x6581, 0x6582, +0x6583, 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658A, 0x658D, +0x658E, 0x658F, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659A, +0x659D, 0x659E, 0x65A0, 0x65A2, 0x65A3, 0x65A6, 0x65A8, 0x65AA, +0x65AC, 0x65AE, 0x65B1, 0x65B2, 0x65B3, 0x65B4, 0x65B5, 0x65B6, +0x65B7, 0x65B8, 0x65BA, 0x65BB, 0x65BE, 0x65BF, 0x65C0, 0x65C2, +0x65C7, 0x65C8, 0x65C9, 0x65CA, 0x65CD, 0x65D0, 0x65D1, 0x65D3, +0x65D4, 0x65D5, 0x65D8, 0x65D9, 0x65DA, 0x65DB, 0x65DC, 0x65DD, +0x65DE, 0x65DF, 0x65E1, 0x65E3, 0x65E4, 0x65EA, 0x65EB, 0, +0x65F2, 0x65F3, 0x65F4, 0x65F5, 0x65F8, 0x65F9, 0x65FB, 0x65FC, +0x65FD, 0x65FE, 0x65FF, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, +0x6609, 0x660B, 0x660D, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, +0x6618, 0x661A, 0x661B, 0x661C, 0x661E, 0x6621, 0x6622, 0x6623, +0x6624, 0x6626, 0x6629, 0x662A, 0x662B, 0x662C, 0x662E, 0x6630, +0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663A, 0x663B, 0x663D, +0x663F, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, +0x6649, 0x664A, 0x664D, 0x664E, 0x6650, 0x6651, 0x6658, 0, +0x6659, 0x665B, 0x665C, 0x665D, 0x665E, 0x6660, 0x6662, 0x6663, +0x6665, 0x6667, 0x6669, 0x666A, 0x666B, 0x666C, 0x666D, 0x6671, +0x6672, 0x6673, 0x6675, 0x6678, 0x6679, 0x667B, 0x667C, 0x667D, +0x667F, 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, +0x668A, 0x668B, 0x668D, 0x668E, 0x668F, 0x6690, 0x6692, 0x6693, +0x6694, 0x6695, 0x6698, 0x6699, 0x669A, 0x669B, 0x669C, 0x669E, +0x669F, 0x66A0, 0x66A1, 0x66A2, 0x66A3, 0x66A4, 0x66A5, 0x66A6, +0x66A9, 0x66AA, 0x66AB, 0x66AC, 0x66AD, 0x66AF, 0x66B0, 0x66B1, +0x66B2, 0x66B3, 0x66B5, 0x66B6, 0x66B7, 0x66B8, 0x66BA, 0x66BB, +0x66BC, 0x66BD, 0x66BF, 0x66C0, 0x66C1, 0x66C2, 0x66C3, 0x66C4, +0x66C5, 0x66C6, 0x66C7, 0x66C8, 0x66C9, 0x66CA, 0x66CB, 0x66CC, +0x66CD, 0x66CE, 0x66CF, 0x66D0, 0x66D1, 0x66D2, 0x66D3, 0x66D4, +0x66D5, 0x66D6, 0x66D7, 0x66D8, 0x66DA, 0x66DE, 0x66DF, 0x66E0, +0x66E1, 0x66E2, 0x66E3, 0x66E4, 0x66E5, 0x66E7, 0x66E8, 0x66EA, +0x66EB, 0x66EC, 0x66ED, 0x66EE, 0x66EF, 0x66F1, 0x66F5, 0x66F6, +0x66F8, 0x66FA, 0x66FB, 0x66FD, 0x6701, 0x6702, 0x6703, 0, +0x6704, 0x6705, 0x6706, 0x6707, 0x670C, 0x670E, 0x670F, 0x6711, +0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671A, 0x671C, 0x671E, +0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, +0x672E, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, +0x673B, 0x673C, 0x673E, 0x673F, 0x6741, 0x6744, 0x6745, 0x6747, +0x674A, 0x674B, 0x674D, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, +0x6759, 0x675A, 0x675B, 0x675D, 0x6762, 0x6763, 0x6764, 0x6766, +0x6767, 0x676B, 0x676C, 0x676E, 0x6771, 0x6774, 0x6776, 0, +0x6778, 0x6779, 0x677A, 0x677B, 0x677D, 0x6780, 0x6782, 0x6783, +0x6785, 0x6786, 0x6788, 0x678A, 0x678C, 0x678D, 0x678E, 0x678F, +0x6791, 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679B, 0x679F, +0x67A0, 0x67A1, 0x67A4, 0x67A6, 0x67A9, 0x67AC, 0x67AE, 0x67B1, +0x67B2, 0x67B4, 0x67B9, 0x67BA, 0x67BB, 0x67BC, 0x67BD, 0x67BE, +0x67BF, 0x67C0, 0x67C2, 0x67C5, 0x67C6, 0x67C7, 0x67C8, 0x67C9, +0x67CA, 0x67CB, 0x67CC, 0x67CD, 0x67CE, 0x67D5, 0x67D6, 0x67D7, +0x67DB, 0x67DF, 0x67E1, 0x67E3, 0x67E4, 0x67E6, 0x67E7, 0x67E8, +0x67EA, 0x67EB, 0x67ED, 0x67EE, 0x67F2, 0x67F5, 0x67F6, 0x67F7, +0x67F8, 0x67F9, 0x67FA, 0x67FB, 0x67FC, 0x67FE, 0x6801, 0x6802, +0x6803, 0x6804, 0x6806, 0x680D, 0x6810, 0x6812, 0x6814, 0x6815, +0x6818, 0x6819, 0x681A, 0x681B, 0x681C, 0x681E, 0x681F, 0x6820, +0x6822, 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682B, +0x682C, 0x682D, 0x682E, 0x682F, 0x6830, 0x6831, 0x6834, 0x6835, +0x6836, 0x683A, 0x683B, 0x683F, 0x6847, 0x684B, 0x684D, 0x684F, +0x6852, 0x6856, 0x6857, 0x6858, 0x6859, 0x685A, 0x685B, 0, +0x685C, 0x685D, 0x685E, 0x685F, 0x686A, 0x686C, 0x686D, 0x686E, +0x686F, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, +0x687A, 0x687B, 0x687C, 0x687D, 0x687E, 0x687F, 0x6880, 0x6882, +0x6884, 0x6887, 0x6888, 0x6889, 0x688A, 0x688B, 0x688C, 0x688D, +0x688E, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, +0x6899, 0x689A, 0x689B, 0x689C, 0x689D, 0x689E, 0x689F, 0x68A0, +0x68A1, 0x68A3, 0x68A4, 0x68A5, 0x68A9, 0x68AA, 0x68AB, 0x68AC, +0x68AE, 0x68B1, 0x68B2, 0x68B4, 0x68B6, 0x68B7, 0x68B8, 0, +0x68B9, 0x68BA, 0x68BB, 0x68BC, 0x68BD, 0x68BE, 0x68BF, 0x68C1, +0x68C3, 0x68C4, 0x68C5, 0x68C6, 0x68C7, 0x68C8, 0x68CA, 0x68CC, +0x68CE, 0x68CF, 0x68D0, 0x68D1, 0x68D3, 0x68D4, 0x68D6, 0x68D7, +0x68D9, 0x68DB, 0x68DC, 0x68DD, 0x68DE, 0x68DF, 0x68E1, 0x68E2, +0x68E4, 0x68E5, 0x68E6, 0x68E7, 0x68E8, 0x68E9, 0x68EA, 0x68EB, +0x68EC, 0x68ED, 0x68EF, 0x68F2, 0x68F3, 0x68F4, 0x68F6, 0x68F7, +0x68F8, 0x68FB, 0x68FD, 0x68FE, 0x68FF, 0x6900, 0x6902, 0x6903, +0x6904, 0x6906, 0x6907, 0x6908, 0x6909, 0x690A, 0x690C, 0x690F, +0x6911, 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, +0x691A, 0x691B, 0x691C, 0x691D, 0x691E, 0x6921, 0x6922, 0x6923, +0x6925, 0x6926, 0x6927, 0x6928, 0x6929, 0x692A, 0x692B, 0x692C, +0x692E, 0x692F, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, +0x6938, 0x693A, 0x693B, 0x693C, 0x693E, 0x6940, 0x6941, 0x6943, +0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694A, 0x694B, +0x694C, 0x694D, 0x694E, 0x694F, 0x6950, 0x6951, 0x6952, 0x6953, +0x6955, 0x6956, 0x6958, 0x6959, 0x695B, 0x695C, 0x695F, 0, +0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696A, +0x696C, 0x696D, 0x696F, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, +0x6976, 0x697A, 0x697B, 0x697D, 0x697E, 0x697F, 0x6981, 0x6983, +0x6985, 0x698A, 0x698B, 0x698C, 0x698E, 0x698F, 0x6990, 0x6991, +0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699A, 0x699D, 0x699E, +0x699F, 0x69A0, 0x69A1, 0x69A2, 0x69A3, 0x69A4, 0x69A5, 0x69A6, +0x69A9, 0x69AA, 0x69AC, 0x69AE, 0x69AF, 0x69B0, 0x69B2, 0x69B3, +0x69B5, 0x69B6, 0x69B8, 0x69B9, 0x69BA, 0x69BC, 0x69BD, 0, +0x69BE, 0x69BF, 0x69C0, 0x69C2, 0x69C3, 0x69C4, 0x69C5, 0x69C6, +0x69C7, 0x69C8, 0x69C9, 0x69CB, 0x69CD, 0x69CF, 0x69D1, 0x69D2, +0x69D3, 0x69D5, 0x69D6, 0x69D7, 0x69D8, 0x69D9, 0x69DA, 0x69DC, +0x69DD, 0x69DE, 0x69E1, 0x69E2, 0x69E3, 0x69E4, 0x69E5, 0x69E6, +0x69E7, 0x69E8, 0x69E9, 0x69EA, 0x69EB, 0x69EC, 0x69EE, 0x69EF, +0x69F0, 0x69F1, 0x69F3, 0x69F4, 0x69F5, 0x69F6, 0x69F7, 0x69F8, +0x69F9, 0x69FA, 0x69FB, 0x69FC, 0x69FE, 0x6A00, 0x6A01, 0x6A02, +0x6A03, 0x6A04, 0x6A05, 0x6A06, 0x6A07, 0x6A08, 0x6A09, 0x6A0B, +0x6A0C, 0x6A0D, 0x6A0E, 0x6A0F, 0x6A10, 0x6A11, 0x6A12, 0x6A13, +0x6A14, 0x6A15, 0x6A16, 0x6A19, 0x6A1A, 0x6A1B, 0x6A1C, 0x6A1D, +0x6A1E, 0x6A20, 0x6A22, 0x6A23, 0x6A24, 0x6A25, 0x6A26, 0x6A27, +0x6A29, 0x6A2B, 0x6A2C, 0x6A2D, 0x6A2E, 0x6A30, 0x6A32, 0x6A33, +0x6A34, 0x6A36, 0x6A37, 0x6A38, 0x6A39, 0x6A3A, 0x6A3B, 0x6A3C, +0x6A3F, 0x6A40, 0x6A41, 0x6A42, 0x6A43, 0x6A45, 0x6A46, 0x6A48, +0x6A49, 0x6A4A, 0x6A4B, 0x6A4C, 0x6A4D, 0x6A4E, 0x6A4F, 0x6A51, +0x6A52, 0x6A53, 0x6A54, 0x6A55, 0x6A56, 0x6A57, 0x6A5A, 0, +0x6A5C, 0x6A5D, 0x6A5E, 0x6A5F, 0x6A60, 0x6A62, 0x6A63, 0x6A64, +0x6A66, 0x6A67, 0x6A68, 0x6A69, 0x6A6A, 0x6A6B, 0x6A6C, 0x6A6D, +0x6A6E, 0x6A6F, 0x6A70, 0x6A72, 0x6A73, 0x6A74, 0x6A75, 0x6A76, +0x6A77, 0x6A78, 0x6A7A, 0x6A7B, 0x6A7D, 0x6A7E, 0x6A7F, 0x6A81, +0x6A82, 0x6A83, 0x6A85, 0x6A86, 0x6A87, 0x6A88, 0x6A89, 0x6A8A, +0x6A8B, 0x6A8C, 0x6A8D, 0x6A8F, 0x6A92, 0x6A93, 0x6A94, 0x6A95, +0x6A96, 0x6A98, 0x6A99, 0x6A9A, 0x6A9B, 0x6A9C, 0x6A9D, 0x6A9E, +0x6A9F, 0x6AA1, 0x6AA2, 0x6AA3, 0x6AA4, 0x6AA5, 0x6AA6, 0, +0x6AA7, 0x6AA8, 0x6AAA, 0x6AAD, 0x6AAE, 0x6AAF, 0x6AB0, 0x6AB1, +0x6AB2, 0x6AB3, 0x6AB4, 0x6AB5, 0x6AB6, 0x6AB7, 0x6AB8, 0x6AB9, +0x6ABA, 0x6ABB, 0x6ABC, 0x6ABD, 0x6ABE, 0x6ABF, 0x6AC0, 0x6AC1, +0x6AC2, 0x6AC3, 0x6AC4, 0x6AC5, 0x6AC6, 0x6AC7, 0x6AC8, 0x6AC9, +0x6ACA, 0x6ACB, 0x6ACC, 0x6ACD, 0x6ACE, 0x6ACF, 0x6AD0, 0x6AD1, +0x6AD2, 0x6AD3, 0x6AD4, 0x6AD5, 0x6AD6, 0x6AD7, 0x6AD8, 0x6AD9, +0x6ADA, 0x6ADB, 0x6ADC, 0x6ADD, 0x6ADE, 0x6ADF, 0x6AE0, 0x6AE1, +0x6AE2, 0x6AE3, 0x6AE4, 0x6AE5, 0x6AE6, 0x6AE7, 0x6AE8, 0x6AE9, +0x6AEA, 0x6AEB, 0x6AEC, 0x6AED, 0x6AEE, 0x6AEF, 0x6AF0, 0x6AF1, +0x6AF2, 0x6AF3, 0x6AF4, 0x6AF5, 0x6AF6, 0x6AF7, 0x6AF8, 0x6AF9, +0x6AFA, 0x6AFB, 0x6AFC, 0x6AFD, 0x6AFE, 0x6AFF, 0x6B00, 0x6B01, +0x6B02, 0x6B03, 0x6B04, 0x6B05, 0x6B06, 0x6B07, 0x6B08, 0x6B09, +0x6B0A, 0x6B0B, 0x6B0C, 0x6B0D, 0x6B0E, 0x6B0F, 0x6B10, 0x6B11, +0x6B12, 0x6B13, 0x6B14, 0x6B15, 0x6B16, 0x6B17, 0x6B18, 0x6B19, +0x6B1A, 0x6B1B, 0x6B1C, 0x6B1D, 0x6B1E, 0x6B1F, 0x6B25, 0x6B26, +0x6B28, 0x6B29, 0x6B2A, 0x6B2B, 0x6B2C, 0x6B2D, 0x6B2E, 0, +0x6B2F, 0x6B30, 0x6B31, 0x6B33, 0x6B34, 0x6B35, 0x6B36, 0x6B38, +0x6B3B, 0x6B3C, 0x6B3D, 0x6B3F, 0x6B40, 0x6B41, 0x6B42, 0x6B44, +0x6B45, 0x6B48, 0x6B4A, 0x6B4B, 0x6B4D, 0x6B4E, 0x6B4F, 0x6B50, +0x6B51, 0x6B52, 0x6B53, 0x6B54, 0x6B55, 0x6B56, 0x6B57, 0x6B58, +0x6B5A, 0x6B5B, 0x6B5C, 0x6B5D, 0x6B5E, 0x6B5F, 0x6B60, 0x6B61, +0x6B68, 0x6B69, 0x6B6B, 0x6B6C, 0x6B6D, 0x6B6E, 0x6B6F, 0x6B70, +0x6B71, 0x6B72, 0x6B73, 0x6B74, 0x6B75, 0x6B76, 0x6B77, 0x6B78, +0x6B7A, 0x6B7D, 0x6B7E, 0x6B7F, 0x6B80, 0x6B85, 0x6B88, 0, +0x6B8C, 0x6B8E, 0x6B8F, 0x6B90, 0x6B91, 0x6B94, 0x6B95, 0x6B97, +0x6B98, 0x6B99, 0x6B9C, 0x6B9D, 0x6B9E, 0x6B9F, 0x6BA0, 0x6BA2, +0x6BA3, 0x6BA4, 0x6BA5, 0x6BA6, 0x6BA7, 0x6BA8, 0x6BA9, 0x6BAB, +0x6BAC, 0x6BAD, 0x6BAE, 0x6BAF, 0x6BB0, 0x6BB1, 0x6BB2, 0x6BB6, +0x6BB8, 0x6BB9, 0x6BBA, 0x6BBB, 0x6BBC, 0x6BBD, 0x6BBE, 0x6BC0, +0x6BC3, 0x6BC4, 0x6BC6, 0x6BC7, 0x6BC8, 0x6BC9, 0x6BCA, 0x6BCC, +0x6BCE, 0x6BD0, 0x6BD1, 0x6BD8, 0x6BDA, 0x6BDC, 0x6BDD, 0x6BDE, +0x6BDF, 0x6BE0, 0x6BE2, 0x6BE3, 0x6BE4, 0x6BE5, 0x6BE6, 0x6BE7, +0x6BE8, 0x6BE9, 0x6BEC, 0x6BED, 0x6BEE, 0x6BF0, 0x6BF1, 0x6BF2, +0x6BF4, 0x6BF6, 0x6BF7, 0x6BF8, 0x6BFA, 0x6BFB, 0x6BFC, 0x6BFE, +0x6BFF, 0x6C00, 0x6C01, 0x6C02, 0x6C03, 0x6C04, 0x6C08, 0x6C09, +0x6C0A, 0x6C0B, 0x6C0C, 0x6C0E, 0x6C12, 0x6C17, 0x6C1C, 0x6C1D, +0x6C1E, 0x6C20, 0x6C23, 0x6C25, 0x6C2B, 0x6C2C, 0x6C2D, 0x6C31, +0x6C33, 0x6C36, 0x6C37, 0x6C39, 0x6C3A, 0x6C3B, 0x6C3C, 0x6C3E, +0x6C3F, 0x6C43, 0x6C44, 0x6C45, 0x6C48, 0x6C4B, 0x6C4C, 0x6C4D, +0x6C4E, 0x6C4F, 0x6C51, 0x6C52, 0x6C53, 0x6C56, 0x6C58, 0, +0x6C59, 0x6C5A, 0x6C62, 0x6C63, 0x6C65, 0x6C66, 0x6C67, 0x6C6B, +0x6C6C, 0x6C6D, 0x6C6E, 0x6C6F, 0x6C71, 0x6C73, 0x6C75, 0x6C77, +0x6C78, 0x6C7A, 0x6C7B, 0x6C7C, 0x6C7F, 0x6C80, 0x6C84, 0x6C87, +0x6C8A, 0x6C8B, 0x6C8D, 0x6C8E, 0x6C91, 0x6C92, 0x6C95, 0x6C96, +0x6C97, 0x6C98, 0x6C9A, 0x6C9C, 0x6C9D, 0x6C9E, 0x6CA0, 0x6CA2, +0x6CA8, 0x6CAC, 0x6CAF, 0x6CB0, 0x6CB4, 0x6CB5, 0x6CB6, 0x6CB7, +0x6CBA, 0x6CC0, 0x6CC1, 0x6CC2, 0x6CC3, 0x6CC6, 0x6CC7, 0x6CC8, +0x6CCB, 0x6CCD, 0x6CCE, 0x6CCF, 0x6CD1, 0x6CD2, 0x6CD8, 0, +0x6CD9, 0x6CDA, 0x6CDC, 0x6CDD, 0x6CDF, 0x6CE4, 0x6CE6, 0x6CE7, +0x6CE9, 0x6CEC, 0x6CED, 0x6CF2, 0x6CF4, 0x6CF9, 0x6CFF, 0x6D00, +0x6D02, 0x6D03, 0x6D05, 0x6D06, 0x6D08, 0x6D09, 0x6D0A, 0x6D0D, +0x6D0F, 0x6D10, 0x6D11, 0x6D13, 0x6D14, 0x6D15, 0x6D16, 0x6D18, +0x6D1C, 0x6D1D, 0x6D1F, 0x6D20, 0x6D21, 0x6D22, 0x6D23, 0x6D24, +0x6D26, 0x6D28, 0x6D29, 0x6D2C, 0x6D2D, 0x6D2F, 0x6D30, 0x6D34, +0x6D36, 0x6D37, 0x6D38, 0x6D3A, 0x6D3F, 0x6D40, 0x6D42, 0x6D44, +0x6D49, 0x6D4C, 0x6D50, 0x6D55, 0x6D56, 0x6D57, 0x6D58, 0x6D5B, +0x6D5D, 0x6D5F, 0x6D61, 0x6D62, 0x6D64, 0x6D65, 0x6D67, 0x6D68, +0x6D6B, 0x6D6C, 0x6D6D, 0x6D70, 0x6D71, 0x6D72, 0x6D73, 0x6D75, +0x6D76, 0x6D79, 0x6D7A, 0x6D7B, 0x6D7D, 0x6D7E, 0x6D7F, 0x6D80, +0x6D81, 0x6D83, 0x6D84, 0x6D86, 0x6D87, 0x6D8A, 0x6D8B, 0x6D8D, +0x6D8F, 0x6D90, 0x6D92, 0x6D96, 0x6D97, 0x6D98, 0x6D99, 0x6D9A, +0x6D9C, 0x6DA2, 0x6DA5, 0x6DAC, 0x6DAD, 0x6DB0, 0x6DB1, 0x6DB3, +0x6DB4, 0x6DB6, 0x6DB7, 0x6DB9, 0x6DBA, 0x6DBB, 0x6DBC, 0x6DBD, +0x6DBE, 0x6DC1, 0x6DC2, 0x6DC3, 0x6DC8, 0x6DC9, 0x6DCA, 0, +0x6DCD, 0x6DCE, 0x6DCF, 0x6DD0, 0x6DD2, 0x6DD3, 0x6DD4, 0x6DD5, +0x6DD7, 0x6DDA, 0x6DDB, 0x6DDC, 0x6DDF, 0x6DE2, 0x6DE3, 0x6DE5, +0x6DE7, 0x6DE8, 0x6DE9, 0x6DEA, 0x6DED, 0x6DEF, 0x6DF0, 0x6DF2, +0x6DF4, 0x6DF5, 0x6DF6, 0x6DF8, 0x6DFA, 0x6DFD, 0x6DFE, 0x6DFF, +0x6E00, 0x6E01, 0x6E02, 0x6E03, 0x6E04, 0x6E06, 0x6E07, 0x6E08, +0x6E09, 0x6E0B, 0x6E0F, 0x6E12, 0x6E13, 0x6E15, 0x6E18, 0x6E19, +0x6E1B, 0x6E1C, 0x6E1E, 0x6E1F, 0x6E22, 0x6E26, 0x6E27, 0x6E28, +0x6E2A, 0x6E2C, 0x6E2E, 0x6E30, 0x6E31, 0x6E33, 0x6E35, 0, +0x6E36, 0x6E37, 0x6E39, 0x6E3B, 0x6E3C, 0x6E3D, 0x6E3E, 0x6E3F, +0x6E40, 0x6E41, 0x6E42, 0x6E45, 0x6E46, 0x6E47, 0x6E48, 0x6E49, +0x6E4A, 0x6E4B, 0x6E4C, 0x6E4F, 0x6E50, 0x6E51, 0x6E52, 0x6E55, +0x6E57, 0x6E59, 0x6E5A, 0x6E5C, 0x6E5D, 0x6E5E, 0x6E60, 0x6E61, +0x6E62, 0x6E63, 0x6E64, 0x6E65, 0x6E66, 0x6E67, 0x6E68, 0x6E69, +0x6E6A, 0x6E6C, 0x6E6D, 0x6E6F, 0x6E70, 0x6E71, 0x6E72, 0x6E73, +0x6E74, 0x6E75, 0x6E76, 0x6E77, 0x6E78, 0x6E79, 0x6E7A, 0x6E7B, +0x6E7C, 0x6E7D, 0x6E80, 0x6E81, 0x6E82, 0x6E84, 0x6E87, 0x6E88, +0x6E8A, 0x6E8B, 0x6E8C, 0x6E8D, 0x6E8E, 0x6E91, 0x6E92, 0x6E93, +0x6E94, 0x6E95, 0x6E96, 0x6E97, 0x6E99, 0x6E9A, 0x6E9B, 0x6E9D, +0x6E9E, 0x6EA0, 0x6EA1, 0x6EA3, 0x6EA4, 0x6EA6, 0x6EA8, 0x6EA9, +0x6EAB, 0x6EAC, 0x6EAD, 0x6EAE, 0x6EB0, 0x6EB3, 0x6EB5, 0x6EB8, +0x6EB9, 0x6EBC, 0x6EBE, 0x6EBF, 0x6EC0, 0x6EC3, 0x6EC4, 0x6EC5, +0x6EC6, 0x6EC8, 0x6EC9, 0x6ECA, 0x6ECC, 0x6ECD, 0x6ECE, 0x6ED0, +0x6ED2, 0x6ED6, 0x6ED8, 0x6ED9, 0x6EDB, 0x6EDC, 0x6EDD, 0x6EE3, +0x6EE7, 0x6EEA, 0x6EEB, 0x6EEC, 0x6EED, 0x6EEE, 0x6EEF, 0, +0x6EF0, 0x6EF1, 0x6EF2, 0x6EF3, 0x6EF5, 0x6EF6, 0x6EF7, 0x6EF8, +0x6EFA, 0x6EFB, 0x6EFC, 0x6EFD, 0x6EFE, 0x6EFF, 0x6F00, 0x6F01, +0x6F03, 0x6F04, 0x6F05, 0x6F07, 0x6F08, 0x6F0A, 0x6F0B, 0x6F0C, +0x6F0D, 0x6F0E, 0x6F10, 0x6F11, 0x6F12, 0x6F16, 0x6F17, 0x6F18, +0x6F19, 0x6F1A, 0x6F1B, 0x6F1C, 0x6F1D, 0x6F1E, 0x6F1F, 0x6F21, +0x6F22, 0x6F23, 0x6F25, 0x6F26, 0x6F27, 0x6F28, 0x6F2C, 0x6F2E, +0x6F30, 0x6F32, 0x6F34, 0x6F35, 0x6F37, 0x6F38, 0x6F39, 0x6F3A, +0x6F3B, 0x6F3C, 0x6F3D, 0x6F3F, 0x6F40, 0x6F41, 0x6F42, 0, +0x6F43, 0x6F44, 0x6F45, 0x6F48, 0x6F49, 0x6F4A, 0x6F4C, 0x6F4E, +0x6F4F, 0x6F50, 0x6F51, 0x6F52, 0x6F53, 0x6F54, 0x6F55, 0x6F56, +0x6F57, 0x6F59, 0x6F5A, 0x6F5B, 0x6F5D, 0x6F5F, 0x6F60, 0x6F61, +0x6F63, 0x6F64, 0x6F65, 0x6F67, 0x6F68, 0x6F69, 0x6F6A, 0x6F6B, +0x6F6C, 0x6F6F, 0x6F70, 0x6F71, 0x6F73, 0x6F75, 0x6F76, 0x6F77, +0x6F79, 0x6F7B, 0x6F7D, 0x6F7E, 0x6F7F, 0x6F80, 0x6F81, 0x6F82, +0x6F83, 0x6F85, 0x6F86, 0x6F87, 0x6F8A, 0x6F8B, 0x6F8F, 0x6F90, +0x6F91, 0x6F92, 0x6F93, 0x6F94, 0x6F95, 0x6F96, 0x6F97, 0x6F98, +0x6F99, 0x6F9A, 0x6F9B, 0x6F9D, 0x6F9E, 0x6F9F, 0x6FA0, 0x6FA2, +0x6FA3, 0x6FA4, 0x6FA5, 0x6FA6, 0x6FA8, 0x6FA9, 0x6FAA, 0x6FAB, +0x6FAC, 0x6FAD, 0x6FAE, 0x6FAF, 0x6FB0, 0x6FB1, 0x6FB2, 0x6FB4, +0x6FB5, 0x6FB7, 0x6FB8, 0x6FBA, 0x6FBB, 0x6FBC, 0x6FBD, 0x6FBE, +0x6FBF, 0x6FC1, 0x6FC3, 0x6FC4, 0x6FC5, 0x6FC6, 0x6FC7, 0x6FC8, +0x6FCA, 0x6FCB, 0x6FCC, 0x6FCD, 0x6FCE, 0x6FCF, 0x6FD0, 0x6FD3, +0x6FD4, 0x6FD5, 0x6FD6, 0x6FD7, 0x6FD8, 0x6FD9, 0x6FDA, 0x6FDB, +0x6FDC, 0x6FDD, 0x6FDF, 0x6FE2, 0x6FE3, 0x6FE4, 0x6FE5, 0, +0x6FE6, 0x6FE7, 0x6FE8, 0x6FE9, 0x6FEA, 0x6FEB, 0x6FEC, 0x6FED, +0x6FF0, 0x6FF1, 0x6FF2, 0x6FF3, 0x6FF4, 0x6FF5, 0x6FF6, 0x6FF7, +0x6FF8, 0x6FF9, 0x6FFA, 0x6FFB, 0x6FFC, 0x6FFD, 0x6FFE, 0x6FFF, +0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, +0x7008, 0x7009, 0x700A, 0x700B, 0x700C, 0x700D, 0x700E, 0x700F, +0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, +0x7019, 0x701C, 0x701D, 0x701E, 0x701F, 0x7020, 0x7021, 0x7022, +0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702A, 0, +0x702B, 0x702C, 0x702D, 0x702E, 0x702F, 0x7030, 0x7031, 0x7032, +0x7033, 0x7034, 0x7036, 0x7037, 0x7038, 0x703A, 0x703B, 0x703C, +0x703D, 0x703E, 0x703F, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, +0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 0x704A, 0x704B, 0x704D, +0x704E, 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, +0x7057, 0x7058, 0x7059, 0x705A, 0x705B, 0x705C, 0x705D, 0x705F, +0x7060, 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, +0x7068, 0x7069, 0x706A, 0x706E, 0x7071, 0x7072, 0x7073, 0x7074, +0x7077, 0x7079, 0x707A, 0x707B, 0x707D, 0x7081, 0x7082, 0x7083, +0x7084, 0x7086, 0x7087, 0x7088, 0x708B, 0x708C, 0x708D, 0x708F, +0x7090, 0x7091, 0x7093, 0x7097, 0x7098, 0x709A, 0x709B, 0x709E, +0x709F, 0x70A0, 0x70A1, 0x70A2, 0x70A3, 0x70A4, 0x70A5, 0x70A6, +0x70A7, 0x70A8, 0x70A9, 0x70AA, 0x70B0, 0x70B2, 0x70B4, 0x70B5, +0x70B6, 0x70BA, 0x70BE, 0x70BF, 0x70C4, 0x70C5, 0x70C6, 0x70C7, +0x70C9, 0x70CB, 0x70CC, 0x70CD, 0x70CE, 0x70CF, 0x70D0, 0x70D1, +0x70D2, 0x70D3, 0x70D4, 0x70D5, 0x70D6, 0x70D7, 0x70DA, 0, +0x70DC, 0x70DD, 0x70DE, 0x70E0, 0x70E1, 0x70E2, 0x70E3, 0x70E5, +0x70EA, 0x70EE, 0x70F0, 0x70F1, 0x70F2, 0x70F3, 0x70F4, 0x70F5, +0x70F6, 0x70F8, 0x70FA, 0x70FB, 0x70FC, 0x70FE, 0x70FF, 0x7100, +0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, +0x710B, 0x710C, 0x710D, 0x710E, 0x710F, 0x7111, 0x7112, 0x7114, +0x7117, 0x711B, 0x711C, 0x711D, 0x711E, 0x711F, 0x7120, 0x7121, +0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712A, +0x712B, 0x712C, 0x712D, 0x712E, 0x7132, 0x7133, 0x7134, 0, +0x7135, 0x7137, 0x7138, 0x7139, 0x713A, 0x713B, 0x713C, 0x713D, +0x713E, 0x713F, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, +0x7147, 0x7148, 0x7149, 0x714B, 0x714D, 0x714F, 0x7150, 0x7151, +0x7152, 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, +0x715A, 0x715B, 0x715D, 0x715F, 0x7160, 0x7161, 0x7162, 0x7163, +0x7165, 0x7169, 0x716A, 0x716B, 0x716C, 0x716D, 0x716F, 0x7170, +0x7171, 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717B, 0x717C, +0x717E, 0x717F, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, +0x7187, 0x7188, 0x7189, 0x718B, 0x718C, 0x718D, 0x718E, 0x7190, +0x7191, 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719A, 0x719B, +0x719C, 0x719D, 0x719E, 0x71A1, 0x71A2, 0x71A3, 0x71A4, 0x71A5, +0x71A6, 0x71A7, 0x71A9, 0x71AA, 0x71AB, 0x71AD, 0x71AE, 0x71AF, +0x71B0, 0x71B1, 0x71B2, 0x71B4, 0x71B6, 0x71B7, 0x71B8, 0x71BA, +0x71BB, 0x71BC, 0x71BD, 0x71BE, 0x71BF, 0x71C0, 0x71C1, 0x71C2, +0x71C4, 0x71C5, 0x71C6, 0x71C7, 0x71C8, 0x71C9, 0x71CA, 0x71CB, +0x71CC, 0x71CD, 0x71CF, 0x71D0, 0x71D1, 0x71D2, 0x71D3, 0, +0x71D6, 0x71D7, 0x71D8, 0x71D9, 0x71DA, 0x71DB, 0x71DC, 0x71DD, +0x71DE, 0x71DF, 0x71E1, 0x71E2, 0x71E3, 0x71E4, 0x71E6, 0x71E8, +0x71E9, 0x71EA, 0x71EB, 0x71EC, 0x71ED, 0x71EF, 0x71F0, 0x71F1, +0x71F2, 0x71F3, 0x71F4, 0x71F5, 0x71F6, 0x71F7, 0x71F8, 0x71FA, +0x71FB, 0x71FC, 0x71FD, 0x71FE, 0x71FF, 0x7200, 0x7201, 0x7202, +0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720A, 0x720B, +0x720C, 0x720D, 0x720E, 0x720F, 0x7210, 0x7211, 0x7212, 0x7213, +0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721A, 0, +0x721B, 0x721C, 0x721E, 0x721F, 0x7220, 0x7221, 0x7222, 0x7223, +0x7224, 0x7225, 0x7226, 0x7227, 0x7229, 0x722B, 0x722D, 0x722E, +0x722F, 0x7232, 0x7233, 0x7234, 0x723A, 0x723C, 0x723E, 0x7240, +0x7241, 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724A, +0x724B, 0x724E, 0x724F, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, +0x7257, 0x7258, 0x725A, 0x725C, 0x725E, 0x7260, 0x7263, 0x7264, +0x7265, 0x7268, 0x726A, 0x726B, 0x726C, 0x726D, 0x7270, 0x7271, +0x7273, 0x7274, 0x7276, 0x7277, 0x7278, 0x727B, 0x727C, 0x727D, +0x7282, 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728C, +0x728E, 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, +0x7298, 0x7299, 0x729A, 0x729B, 0x729C, 0x729D, 0x729E, 0x72A0, +0x72A1, 0x72A2, 0x72A3, 0x72A4, 0x72A5, 0x72A6, 0x72A7, 0x72A8, +0x72A9, 0x72AA, 0x72AB, 0x72AE, 0x72B1, 0x72B2, 0x72B3, 0x72B5, +0x72BA, 0x72BB, 0x72BC, 0x72BD, 0x72BE, 0x72BF, 0x72C0, 0x72C5, +0x72C6, 0x72C7, 0x72C9, 0x72CA, 0x72CB, 0x72CC, 0x72CF, 0x72D1, +0x72D3, 0x72D4, 0x72D5, 0x72D6, 0x72D8, 0x72DA, 0x72DB, 0, +0xE4C6, 0xE4C7, 0xE4C8, 0xE4C9, 0xE4CA, 0xE4CB, 0xE4CC, 0xE4CD, +0xE4CE, 0xE4CF, 0xE4D0, 0xE4D1, 0xE4D2, 0xE4D3, 0xE4D4, 0xE4D5, +0xE4D6, 0xE4D7, 0xE4D8, 0xE4D9, 0xE4DA, 0xE4DB, 0xE4DC, 0xE4DD, +0xE4DE, 0xE4DF, 0xE4E0, 0xE4E1, 0xE4E2, 0xE4E3, 0xE4E4, 0xE4E5, +0xE4E6, 0xE4E7, 0xE4E8, 0xE4E9, 0xE4EA, 0xE4EB, 0xE4EC, 0xE4ED, +0xE4EE, 0xE4EF, 0xE4F0, 0xE4F1, 0xE4F2, 0xE4F3, 0xE4F4, 0xE4F5, +0xE4F6, 0xE4F7, 0xE4F8, 0xE4F9, 0xE4FA, 0xE4FB, 0xE4FC, 0xE4FD, +0xE4FE, 0xE4FF, 0xE500, 0xE501, 0xE502, 0xE503, 0xE504, 0, +0xE505, 0xE506, 0xE507, 0xE508, 0xE509, 0xE50A, 0xE50B, 0xE50C, +0xE50D, 0xE50E, 0xE50F, 0xE510, 0xE511, 0xE512, 0xE513, 0xE514, +0xE515, 0xE516, 0xE517, 0xE518, 0xE519, 0xE51A, 0xE51B, 0xE51C, +0xE51D, 0xE51E, 0xE51F, 0xE520, 0xE521, 0xE522, 0xE523, 0xE524, +0xE525, 0x3000, 0x3001, 0x3002, 0x00B7, 0x02C9, 0x02C7, 0x00A8, +0x3003, 0x3005, 0x2014, 0xFF5E, 0x2016, 0x2026, 0x2018, 0x2019, +0x201C, 0x201D, 0x3014, 0x3015, 0x3008, 0x3009, 0x300A, 0x300B, +0x300C, 0x300D, 0x300E, 0x300F, 0x3016, 0x3017, 0x3010, 0x3011, +0x00B1, 0x00D7, 0x00F7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220F, +0x222A, 0x2229, 0x2208, 0x2237, 0x221A, 0x22A5, 0x2225, 0x2220, +0x2312, 0x2299, 0x222B, 0x222E, 0x2261, 0x224C, 0x2248, 0x223D, +0x221D, 0x2260, 0x226E, 0x226F, 0x2264, 0x2265, 0x221E, 0x2235, +0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFF04, +0x00A4, 0xFFE0, 0xFFE1, 0x2030, 0x00A7, 0x2116, 0x2606, 0x2605, +0x25CB, 0x25CF, 0x25CE, 0x25C7, 0x25C6, 0x25A1, 0x25A0, 0x25B3, +0x25B2, 0x203B, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0, +0xE526, 0xE527, 0xE528, 0xE529, 0xE52A, 0xE52B, 0xE52C, 0xE52D, +0xE52E, 0xE52F, 0xE530, 0xE531, 0xE532, 0xE533, 0xE534, 0xE535, +0xE536, 0xE537, 0xE538, 0xE539, 0xE53A, 0xE53B, 0xE53C, 0xE53D, +0xE53E, 0xE53F, 0xE540, 0xE541, 0xE542, 0xE543, 0xE544, 0xE545, +0xE546, 0xE547, 0xE548, 0xE549, 0xE54A, 0xE54B, 0xE54C, 0xE54D, +0xE54E, 0xE54F, 0xE550, 0xE551, 0xE552, 0xE553, 0xE554, 0xE555, +0xE556, 0xE557, 0xE558, 0xE559, 0xE55A, 0xE55B, 0xE55C, 0xE55D, +0xE55E, 0xE55F, 0xE560, 0xE561, 0xE562, 0xE563, 0xE564, 0, +0xE565, 0xE566, 0xE567, 0xE568, 0xE569, 0xE56A, 0xE56B, 0xE56C, +0xE56D, 0xE56E, 0xE56F, 0xE570, 0xE571, 0xE572, 0xE573, 0xE574, +0xE575, 0xE576, 0xE577, 0xE578, 0xE579, 0xE57A, 0xE57B, 0xE57C, +0xE57D, 0xE57E, 0xE57F, 0xE580, 0xE581, 0xE582, 0xE583, 0xE584, +0xE585, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, +0x2177, 0x2178, 0x2179, 0xE766, 0xE767, 0xE768, 0xE769, 0xE76A, +0xE76B, 0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, +0x248F, 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, +0x2497, 0x2498, 0x2499, 0x249A, 0x249B, 0x2474, 0x2475, 0x2476, +0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, 0x247E, +0x247F, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, +0x2487, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, +0x2467, 0x2468, 0x2469, 0x20AC, 0xE76D, 0x3220, 0x3221, 0x3222, +0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xE76E, +0xE76F, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, +0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0xE770, 0xE771, 0, +0xE586, 0xE587, 0xE588, 0xE589, 0xE58A, 0xE58B, 0xE58C, 0xE58D, +0xE58E, 0xE58F, 0xE590, 0xE591, 0xE592, 0xE593, 0xE594, 0xE595, +0xE596, 0xE597, 0xE598, 0xE599, 0xE59A, 0xE59B, 0xE59C, 0xE59D, +0xE59E, 0xE59F, 0xE5A0, 0xE5A1, 0xE5A2, 0xE5A3, 0xE5A4, 0xE5A5, +0xE5A6, 0xE5A7, 0xE5A8, 0xE5A9, 0xE5AA, 0xE5AB, 0xE5AC, 0xE5AD, +0xE5AE, 0xE5AF, 0xE5B0, 0xE5B1, 0xE5B2, 0xE5B3, 0xE5B4, 0xE5B5, +0xE5B6, 0xE5B7, 0xE5B8, 0xE5B9, 0xE5BA, 0xE5BB, 0xE5BC, 0xE5BD, +0xE5BE, 0xE5BF, 0xE5C0, 0xE5C1, 0xE5C2, 0xE5C3, 0xE5C4, 0, +0xE5C5, 0xE5C6, 0xE5C7, 0xE5C8, 0xE5C9, 0xE5CA, 0xE5CB, 0xE5CC, +0xE5CD, 0xE5CE, 0xE5CF, 0xE5D0, 0xE5D1, 0xE5D2, 0xE5D3, 0xE5D4, +0xE5D5, 0xE5D6, 0xE5D7, 0xE5D8, 0xE5D9, 0xE5DA, 0xE5DB, 0xE5DC, +0xE5DD, 0xE5DE, 0xE5DF, 0xE5E0, 0xE5E1, 0xE5E2, 0xE5E3, 0xE5E4, +0xE5E5, 0xFF01, 0xFF02, 0xFF03, 0xFFE5, 0xFF05, 0xFF06, 0xFF07, +0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F, +0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, +0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F, +0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, +0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, +0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, +0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F, +0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, +0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, +0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, +0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFFE3, 0, +0xE5E6, 0xE5E7, 0xE5E8, 0xE5E9, 0xE5EA, 0xE5EB, 0xE5EC, 0xE5ED, +0xE5EE, 0xE5EF, 0xE5F0, 0xE5F1, 0xE5F2, 0xE5F3, 0xE5F4, 0xE5F5, +0xE5F6, 0xE5F7, 0xE5F8, 0xE5F9, 0xE5FA, 0xE5FB, 0xE5FC, 0xE5FD, +0xE5FE, 0xE5FF, 0xE600, 0xE601, 0xE602, 0xE603, 0xE604, 0xE605, +0xE606, 0xE607, 0xE608, 0xE609, 0xE60A, 0xE60B, 0xE60C, 0xE60D, +0xE60E, 0xE60F, 0xE610, 0xE611, 0xE612, 0xE613, 0xE614, 0xE615, +0xE616, 0xE617, 0xE618, 0xE619, 0xE61A, 0xE61B, 0xE61C, 0xE61D, +0xE61E, 0xE61F, 0xE620, 0xE621, 0xE622, 0xE623, 0xE624, 0, +0xE625, 0xE626, 0xE627, 0xE628, 0xE629, 0xE62A, 0xE62B, 0xE62C, +0xE62D, 0xE62E, 0xE62F, 0xE630, 0xE631, 0xE632, 0xE633, 0xE634, +0xE635, 0xE636, 0xE637, 0xE638, 0xE639, 0xE63A, 0xE63B, 0xE63C, +0xE63D, 0xE63E, 0xE63F, 0xE640, 0xE641, 0xE642, 0xE643, 0xE644, +0xE645, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, +0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, +0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, +0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, +0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, +0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, +0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, +0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, +0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, +0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, +0x3090, 0x3091, 0x3092, 0x3093, 0xE772, 0xE773, 0xE774, 0xE775, +0xE776, 0xE777, 0xE778, 0xE779, 0xE77A, 0xE77B, 0xE77C, 0, +0xE646, 0xE647, 0xE648, 0xE649, 0xE64A, 0xE64B, 0xE64C, 0xE64D, +0xE64E, 0xE64F, 0xE650, 0xE651, 0xE652, 0xE653, 0xE654, 0xE655, +0xE656, 0xE657, 0xE658, 0xE659, 0xE65A, 0xE65B, 0xE65C, 0xE65D, +0xE65E, 0xE65F, 0xE660, 0xE661, 0xE662, 0xE663, 0xE664, 0xE665, +0xE666, 0xE667, 0xE668, 0xE669, 0xE66A, 0xE66B, 0xE66C, 0xE66D, +0xE66E, 0xE66F, 0xE670, 0xE671, 0xE672, 0xE673, 0xE674, 0xE675, +0xE676, 0xE677, 0xE678, 0xE679, 0xE67A, 0xE67B, 0xE67C, 0xE67D, +0xE67E, 0xE67F, 0xE680, 0xE681, 0xE682, 0xE683, 0xE684, 0, +0xE685, 0xE686, 0xE687, 0xE688, 0xE689, 0xE68A, 0xE68B, 0xE68C, +0xE68D, 0xE68E, 0xE68F, 0xE690, 0xE691, 0xE692, 0xE693, 0xE694, +0xE695, 0xE696, 0xE697, 0xE698, 0xE699, 0xE69A, 0xE69B, 0xE69C, +0xE69D, 0xE69E, 0xE69F, 0xE6A0, 0xE6A1, 0xE6A2, 0xE6A3, 0xE6A4, +0xE6A5, 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, +0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, +0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, +0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, +0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, +0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, +0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, +0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, +0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, +0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, +0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6, 0xE77D, +0xE77E, 0xE77F, 0xE780, 0xE781, 0xE782, 0xE783, 0xE784, 0, +0xE6A6, 0xE6A7, 0xE6A8, 0xE6A9, 0xE6AA, 0xE6AB, 0xE6AC, 0xE6AD, +0xE6AE, 0xE6AF, 0xE6B0, 0xE6B1, 0xE6B2, 0xE6B3, 0xE6B4, 0xE6B5, +0xE6B6, 0xE6B7, 0xE6B8, 0xE6B9, 0xE6BA, 0xE6BB, 0xE6BC, 0xE6BD, +0xE6BE, 0xE6BF, 0xE6C0, 0xE6C1, 0xE6C2, 0xE6C3, 0xE6C4, 0xE6C5, +0xE6C6, 0xE6C7, 0xE6C8, 0xE6C9, 0xE6CA, 0xE6CB, 0xE6CC, 0xE6CD, +0xE6CE, 0xE6CF, 0xE6D0, 0xE6D1, 0xE6D2, 0xE6D3, 0xE6D4, 0xE6D5, +0xE6D6, 0xE6D7, 0xE6D8, 0xE6D9, 0xE6DA, 0xE6DB, 0xE6DC, 0xE6DD, +0xE6DE, 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2, 0xE6E3, 0xE6E4, 0, +0xE6E5, 0xE6E6, 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA, 0xE6EB, 0xE6EC, +0xE6ED, 0xE6EE, 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2, 0xE6F3, 0xE6F4, +0xE6F5, 0xE6F6, 0xE6F7, 0xE6F8, 0xE6F9, 0xE6FA, 0xE6FB, 0xE6FC, +0xE6FD, 0xE6FE, 0xE6FF, 0xE700, 0xE701, 0xE702, 0xE703, 0xE704, +0xE705, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, +0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, +0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, +0x03A9, 0xE785, 0xE786, 0xE787, 0xE788, 0xE789, 0xE78A, 0xE78B, +0xE78C, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, +0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, +0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, +0x03C9, 0xE78D, 0xE78E, 0xE78F, 0xE790, 0xE791, 0xE792, 0xE793, +0xFE35, 0xFE36, 0xFE39, 0xFE3A, 0xFE3F, 0xFE40, 0xFE3D, 0xFE3E, +0xFE41, 0xFE42, 0xFE43, 0xFE44, 0xE794, 0xE795, 0xFE3B, 0xFE3C, +0xFE37, 0xFE38, 0xFE31, 0xE796, 0xFE33, 0xFE34, 0xE797, 0xE798, +0xE799, 0xE79A, 0xE79B, 0xE79C, 0xE79D, 0xE79E, 0xE79F, 0, +0xE706, 0xE707, 0xE708, 0xE709, 0xE70A, 0xE70B, 0xE70C, 0xE70D, +0xE70E, 0xE70F, 0xE710, 0xE711, 0xE712, 0xE713, 0xE714, 0xE715, +0xE716, 0xE717, 0xE718, 0xE719, 0xE71A, 0xE71B, 0xE71C, 0xE71D, +0xE71E, 0xE71F, 0xE720, 0xE721, 0xE722, 0xE723, 0xE724, 0xE725, +0xE726, 0xE727, 0xE728, 0xE729, 0xE72A, 0xE72B, 0xE72C, 0xE72D, +0xE72E, 0xE72F, 0xE730, 0xE731, 0xE732, 0xE733, 0xE734, 0xE735, +0xE736, 0xE737, 0xE738, 0xE739, 0xE73A, 0xE73B, 0xE73C, 0xE73D, +0xE73E, 0xE73F, 0xE740, 0xE741, 0xE742, 0xE743, 0xE744, 0, +0xE745, 0xE746, 0xE747, 0xE748, 0xE749, 0xE74A, 0xE74B, 0xE74C, +0xE74D, 0xE74E, 0xE74F, 0xE750, 0xE751, 0xE752, 0xE753, 0xE754, +0xE755, 0xE756, 0xE757, 0xE758, 0xE759, 0xE75A, 0xE75B, 0xE75C, +0xE75D, 0xE75E, 0xE75F, 0xE760, 0xE761, 0xE762, 0xE763, 0xE764, +0xE765, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, +0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, +0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, +0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, +0x042E, 0x042F, 0xE7A0, 0xE7A1, 0xE7A2, 0xE7A3, 0xE7A4, 0xE7A5, +0xE7A6, 0xE7A7, 0xE7A8, 0xE7A9, 0xE7AA, 0xE7AB, 0xE7AC, 0xE7AD, +0xE7AE, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, +0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, +0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, +0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, +0x044E, 0x044F, 0xE7AF, 0xE7B0, 0xE7B1, 0xE7B2, 0xE7B3, 0xE7B4, +0xE7B5, 0xE7B6, 0xE7B7, 0xE7B8, 0xE7B9, 0xE7BA, 0xE7BB, 0, +0x02CA, 0x02CB, 0x02D9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, +0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221F, 0x2223, +0x2252, 0x2266, 0x2267, 0x22BF, 0x2550, 0x2551, 0x2552, 0x2553, +0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, +0x255C, 0x255D, 0x255E, 0x255F, 0x2560, 0x2561, 0x2562, 0x2563, +0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, +0x256C, 0x256D, 0x256E, 0x256F, 0x2570, 0x2571, 0x2572, 0x2573, +0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0, +0x2588, 0x2589, 0x258A, 0x258B, 0x258C, 0x258D, 0x258E, 0x258F, +0x2593, 0x2594, 0x2595, 0x25BC, 0x25BD, 0x25E2, 0x25E3, 0x25E4, +0x25E5, 0x2609, 0x2295, 0x3012, 0x301D, 0x301E, 0xE7BC, 0xE7BD, +0xE7BE, 0xE7BF, 0xE7C0, 0xE7C1, 0xE7C2, 0xE7C3, 0xE7C4, 0xE7C5, +0xE7C6, 0x0101, 0x00E1, 0x01CE, 0x00E0, 0x0113, 0x00E9, 0x011B, +0x00E8, 0x012B, 0x00ED, 0x01D0, 0x00EC, 0x014D, 0x00F3, 0x01D2, +0x00F2, 0x016B, 0x00FA, 0x01D4, 0x00F9, 0x01D6, 0x01D8, 0x01DA, +0x01DC, 0x00FC, 0x00EA, 0x0251, 0x1E3F, 0x0144, 0x0148, 0x01F9, +0x0261, 0xE7C9, 0xE7CA, 0xE7CB, 0xE7CC, 0x3105, 0x3106, 0x3107, +0x3108, 0x3109, 0x310A, 0x310B, 0x310C, 0x310D, 0x310E, 0x310F, +0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, +0x3118, 0x3119, 0x311A, 0x311B, 0x311C, 0x311D, 0x311E, 0x311F, +0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, +0x3128, 0x3129, 0xE7CD, 0xE7CE, 0xE7CF, 0xE7D0, 0xE7D1, 0xE7D2, +0xE7D3, 0xE7D4, 0xE7D5, 0xE7D6, 0xE7D7, 0xE7D8, 0xE7D9, 0xE7DA, +0xE7DB, 0xE7DC, 0xE7DD, 0xE7DE, 0xE7DF, 0xE7E0, 0xE7E1, 0, +0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, +0x3029, 0x32A3, 0x338E, 0x338F, 0x339C, 0x339D, 0x339E, 0x33A1, +0x33C4, 0x33CE, 0x33D1, 0x33D2, 0x33D5, 0xFE30, 0xFFE2, 0xFFE4, +0xE7E2, 0x2121, 0x3231, 0xE7E3, 0x2010, 0xE7E4, 0xE7E5, 0xE7E6, +0x30FC, 0x309B, 0x309C, 0x30FD, 0x30FE, 0x3006, 0x309D, 0x309E, +0xFE49, 0xFE4A, 0xFE4B, 0xFE4C, 0xFE4D, 0xFE4E, 0xFE4F, 0xFE50, +0xFE51, 0xFE52, 0xFE54, 0xFE55, 0xFE56, 0xFE57, 0xFE59, 0xFE5A, +0xFE5B, 0xFE5C, 0xFE5D, 0xFE5E, 0xFE5F, 0xFE60, 0xFE61, 0, +0xFE62, 0xFE63, 0xFE64, 0xFE65, 0xFE66, 0xFE68, 0xFE69, 0xFE6A, +0xFE6B, 0x303E, 0x2FF0, 0x2FF1, 0x2FF2, 0x2FF3, 0x2FF4, 0x2FF5, +0x2FF6, 0x2FF7, 0x2FF8, 0x2FF9, 0x2FFA, 0x2FFB, 0x3007, 0xE7F4, +0xE7F5, 0xE7F6, 0xE7F7, 0xE7F8, 0xE7F9, 0xE7FA, 0xE7FB, 0xE7FC, +0xE7FD, 0xE7FE, 0xE7FF, 0xE800, 0x2500, 0x2501, 0x2502, 0x2503, +0x2504, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250A, 0x250B, +0x250C, 0x250D, 0x250E, 0x250F, 0x2510, 0x2511, 0x2512, 0x2513, +0x2514, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251A, 0x251B, +0x251C, 0x251D, 0x251E, 0x251F, 0x2520, 0x2521, 0x2522, 0x2523, +0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252A, 0x252B, +0x252C, 0x252D, 0x252E, 0x252F, 0x2530, 0x2531, 0x2532, 0x2533, +0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253A, 0x253B, +0x253C, 0x253D, 0x253E, 0x253F, 0x2540, 0x2541, 0x2542, 0x2543, +0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254A, 0x254B, +0xE801, 0xE802, 0xE803, 0xE804, 0xE805, 0xE806, 0xE807, 0xE808, +0xE809, 0xE80A, 0xE80B, 0xE80C, 0xE80D, 0xE80E, 0xE80F, 0, +0x72DC, 0x72DD, 0x72DF, 0x72E2, 0x72E3, 0x72E4, 0x72E5, 0x72E6, +0x72E7, 0x72EA, 0x72EB, 0x72F5, 0x72F6, 0x72F9, 0x72FD, 0x72FE, +0x72FF, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, +0x7309, 0x730B, 0x730C, 0x730D, 0x730F, 0x7310, 0x7311, 0x7312, +0x7314, 0x7318, 0x7319, 0x731A, 0x731F, 0x7320, 0x7323, 0x7324, +0x7326, 0x7327, 0x7328, 0x732D, 0x732F, 0x7330, 0x7332, 0x7333, +0x7335, 0x7336, 0x733A, 0x733B, 0x733C, 0x733D, 0x7340, 0x7341, +0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0, +0x7349, 0x734A, 0x734B, 0x734C, 0x734E, 0x734F, 0x7351, 0x7353, +0x7354, 0x7355, 0x7356, 0x7358, 0x7359, 0x735A, 0x735B, 0x735C, +0x735D, 0x735E, 0x735F, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, +0x7366, 0x7367, 0x7368, 0x7369, 0x736A, 0x736B, 0x736E, 0x7370, +0x7371, 0xE000, 0xE001, 0xE002, 0xE003, 0xE004, 0xE005, 0xE006, +0xE007, 0xE008, 0xE009, 0xE00A, 0xE00B, 0xE00C, 0xE00D, 0xE00E, +0xE00F, 0xE010, 0xE011, 0xE012, 0xE013, 0xE014, 0xE015, 0xE016, +0xE017, 0xE018, 0xE019, 0xE01A, 0xE01B, 0xE01C, 0xE01D, 0xE01E, +0xE01F, 0xE020, 0xE021, 0xE022, 0xE023, 0xE024, 0xE025, 0xE026, +0xE027, 0xE028, 0xE029, 0xE02A, 0xE02B, 0xE02C, 0xE02D, 0xE02E, +0xE02F, 0xE030, 0xE031, 0xE032, 0xE033, 0xE034, 0xE035, 0xE036, +0xE037, 0xE038, 0xE039, 0xE03A, 0xE03B, 0xE03C, 0xE03D, 0xE03E, +0xE03F, 0xE040, 0xE041, 0xE042, 0xE043, 0xE044, 0xE045, 0xE046, +0xE047, 0xE048, 0xE049, 0xE04A, 0xE04B, 0xE04C, 0xE04D, 0xE04E, +0xE04F, 0xE050, 0xE051, 0xE052, 0xE053, 0xE054, 0xE055, 0xE056, +0xE057, 0xE058, 0xE059, 0xE05A, 0xE05B, 0xE05C, 0xE05D, 0, +0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, +0x737A, 0x737B, 0x737C, 0x737D, 0x737F, 0x7380, 0x7381, 0x7382, +0x7383, 0x7385, 0x7386, 0x7388, 0x738A, 0x738C, 0x738D, 0x738F, +0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, +0x739A, 0x739C, 0x739D, 0x739E, 0x73A0, 0x73A1, 0x73A3, 0x73A4, +0x73A5, 0x73A6, 0x73A7, 0x73A8, 0x73AA, 0x73AC, 0x73AD, 0x73B1, +0x73B4, 0x73B5, 0x73B6, 0x73B8, 0x73B9, 0x73BC, 0x73BD, 0x73BE, +0x73BF, 0x73C1, 0x73C3, 0x73C4, 0x73C5, 0x73C6, 0x73C7, 0, +0x73CB, 0x73CC, 0x73CE, 0x73D2, 0x73D3, 0x73D4, 0x73D5, 0x73D6, +0x73D7, 0x73D8, 0x73DA, 0x73DB, 0x73DC, 0x73DD, 0x73DF, 0x73E1, +0x73E2, 0x73E3, 0x73E4, 0x73E6, 0x73E8, 0x73EA, 0x73EB, 0x73EC, +0x73EE, 0x73EF, 0x73F0, 0x73F1, 0x73F3, 0x73F4, 0x73F5, 0x73F6, +0x73F7, 0xE05E, 0xE05F, 0xE060, 0xE061, 0xE062, 0xE063, 0xE064, +0xE065, 0xE066, 0xE067, 0xE068, 0xE069, 0xE06A, 0xE06B, 0xE06C, +0xE06D, 0xE06E, 0xE06F, 0xE070, 0xE071, 0xE072, 0xE073, 0xE074, +0xE075, 0xE076, 0xE077, 0xE078, 0xE079, 0xE07A, 0xE07B, 0xE07C, +0xE07D, 0xE07E, 0xE07F, 0xE080, 0xE081, 0xE082, 0xE083, 0xE084, +0xE085, 0xE086, 0xE087, 0xE088, 0xE089, 0xE08A, 0xE08B, 0xE08C, +0xE08D, 0xE08E, 0xE08F, 0xE090, 0xE091, 0xE092, 0xE093, 0xE094, +0xE095, 0xE096, 0xE097, 0xE098, 0xE099, 0xE09A, 0xE09B, 0xE09C, +0xE09D, 0xE09E, 0xE09F, 0xE0A0, 0xE0A1, 0xE0A2, 0xE0A3, 0xE0A4, +0xE0A5, 0xE0A6, 0xE0A7, 0xE0A8, 0xE0A9, 0xE0AA, 0xE0AB, 0xE0AC, +0xE0AD, 0xE0AE, 0xE0AF, 0xE0B0, 0xE0B1, 0xE0B2, 0xE0B3, 0xE0B4, +0xE0B5, 0xE0B6, 0xE0B7, 0xE0B8, 0xE0B9, 0xE0BA, 0xE0BB, 0, +0x73F8, 0x73F9, 0x73FA, 0x73FB, 0x73FC, 0x73FD, 0x73FE, 0x73FF, +0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740B, 0x740C, +0x740D, 0x740E, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, +0x7417, 0x7418, 0x7419, 0x741C, 0x741D, 0x741E, 0x741F, 0x7420, +0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742B, 0x742D, 0x742F, +0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743A, 0x743B, 0x743D, +0x743E, 0x743F, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, +0x7447, 0x7448, 0x7449, 0x744A, 0x744B, 0x744C, 0x744D, 0, +0x744E, 0x744F, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, +0x7458, 0x745D, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, +0x7466, 0x7467, 0x7468, 0x7469, 0x746A, 0x746B, 0x746C, 0x746E, +0x746F, 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, +0x747A, 0xE0BC, 0xE0BD, 0xE0BE, 0xE0BF, 0xE0C0, 0xE0C1, 0xE0C2, +0xE0C3, 0xE0C4, 0xE0C5, 0xE0C6, 0xE0C7, 0xE0C8, 0xE0C9, 0xE0CA, +0xE0CB, 0xE0CC, 0xE0CD, 0xE0CE, 0xE0CF, 0xE0D0, 0xE0D1, 0xE0D2, +0xE0D3, 0xE0D4, 0xE0D5, 0xE0D6, 0xE0D7, 0xE0D8, 0xE0D9, 0xE0DA, +0xE0DB, 0xE0DC, 0xE0DD, 0xE0DE, 0xE0DF, 0xE0E0, 0xE0E1, 0xE0E2, +0xE0E3, 0xE0E4, 0xE0E5, 0xE0E6, 0xE0E7, 0xE0E8, 0xE0E9, 0xE0EA, +0xE0EB, 0xE0EC, 0xE0ED, 0xE0EE, 0xE0EF, 0xE0F0, 0xE0F1, 0xE0F2, +0xE0F3, 0xE0F4, 0xE0F5, 0xE0F6, 0xE0F7, 0xE0F8, 0xE0F9, 0xE0FA, +0xE0FB, 0xE0FC, 0xE0FD, 0xE0FE, 0xE0FF, 0xE100, 0xE101, 0xE102, +0xE103, 0xE104, 0xE105, 0xE106, 0xE107, 0xE108, 0xE109, 0xE10A, +0xE10B, 0xE10C, 0xE10D, 0xE10E, 0xE10F, 0xE110, 0xE111, 0xE112, +0xE113, 0xE114, 0xE115, 0xE116, 0xE117, 0xE118, 0xE119, 0, +0x747B, 0x747C, 0x747D, 0x747F, 0x7482, 0x7484, 0x7485, 0x7486, +0x7488, 0x7489, 0x748A, 0x748C, 0x748D, 0x748F, 0x7491, 0x7492, +0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749A, +0x749B, 0x749D, 0x749F, 0x74A0, 0x74A1, 0x74A2, 0x74A3, 0x74A4, +0x74A5, 0x74A6, 0x74AA, 0x74AB, 0x74AC, 0x74AD, 0x74AE, 0x74AF, +0x74B0, 0x74B1, 0x74B2, 0x74B3, 0x74B4, 0x74B5, 0x74B6, 0x74B7, +0x74B8, 0x74B9, 0x74BB, 0x74BC, 0x74BD, 0x74BE, 0x74BF, 0x74C0, +0x74C1, 0x74C2, 0x74C3, 0x74C4, 0x74C5, 0x74C6, 0x74C7, 0, +0x74C8, 0x74C9, 0x74CA, 0x74CB, 0x74CC, 0x74CD, 0x74CE, 0x74CF, +0x74D0, 0x74D1, 0x74D3, 0x74D4, 0x74D5, 0x74D6, 0x74D7, 0x74D8, +0x74D9, 0x74DA, 0x74DB, 0x74DD, 0x74DF, 0x74E1, 0x74E5, 0x74E7, +0x74E8, 0x74E9, 0x74EA, 0x74EB, 0x74EC, 0x74ED, 0x74F0, 0x74F1, +0x74F2, 0xE11A, 0xE11B, 0xE11C, 0xE11D, 0xE11E, 0xE11F, 0xE120, +0xE121, 0xE122, 0xE123, 0xE124, 0xE125, 0xE126, 0xE127, 0xE128, +0xE129, 0xE12A, 0xE12B, 0xE12C, 0xE12D, 0xE12E, 0xE12F, 0xE130, +0xE131, 0xE132, 0xE133, 0xE134, 0xE135, 0xE136, 0xE137, 0xE138, +0xE139, 0xE13A, 0xE13B, 0xE13C, 0xE13D, 0xE13E, 0xE13F, 0xE140, +0xE141, 0xE142, 0xE143, 0xE144, 0xE145, 0xE146, 0xE147, 0xE148, +0xE149, 0xE14A, 0xE14B, 0xE14C, 0xE14D, 0xE14E, 0xE14F, 0xE150, +0xE151, 0xE152, 0xE153, 0xE154, 0xE155, 0xE156, 0xE157, 0xE158, +0xE159, 0xE15A, 0xE15B, 0xE15C, 0xE15D, 0xE15E, 0xE15F, 0xE160, +0xE161, 0xE162, 0xE163, 0xE164, 0xE165, 0xE166, 0xE167, 0xE168, +0xE169, 0xE16A, 0xE16B, 0xE16C, 0xE16D, 0xE16E, 0xE16F, 0xE170, +0xE171, 0xE172, 0xE173, 0xE174, 0xE175, 0xE176, 0xE177, 0, +0x74F3, 0x74F5, 0x74F8, 0x74F9, 0x74FA, 0x74FB, 0x74FC, 0x74FD, +0x74FE, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, +0x7508, 0x7509, 0x750A, 0x750B, 0x750C, 0x750E, 0x7510, 0x7512, +0x7514, 0x7515, 0x7516, 0x7517, 0x751B, 0x751D, 0x751E, 0x7520, +0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752A, 0x752E, +0x7534, 0x7536, 0x7539, 0x753C, 0x753D, 0x753F, 0x7541, 0x7542, +0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754A, 0x754D, 0x7550, +0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0, +0x755D, 0x755E, 0x755F, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, +0x7567, 0x7568, 0x7569, 0x756B, 0x756C, 0x756D, 0x756E, 0x756F, +0x7570, 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757A, 0x757B, +0x757C, 0x757D, 0x757E, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, +0x7587, 0xE178, 0xE179, 0xE17A, 0xE17B, 0xE17C, 0xE17D, 0xE17E, +0xE17F, 0xE180, 0xE181, 0xE182, 0xE183, 0xE184, 0xE185, 0xE186, +0xE187, 0xE188, 0xE189, 0xE18A, 0xE18B, 0xE18C, 0xE18D, 0xE18E, +0xE18F, 0xE190, 0xE191, 0xE192, 0xE193, 0xE194, 0xE195, 0xE196, +0xE197, 0xE198, 0xE199, 0xE19A, 0xE19B, 0xE19C, 0xE19D, 0xE19E, +0xE19F, 0xE1A0, 0xE1A1, 0xE1A2, 0xE1A3, 0xE1A4, 0xE1A5, 0xE1A6, +0xE1A7, 0xE1A8, 0xE1A9, 0xE1AA, 0xE1AB, 0xE1AC, 0xE1AD, 0xE1AE, +0xE1AF, 0xE1B0, 0xE1B1, 0xE1B2, 0xE1B3, 0xE1B4, 0xE1B5, 0xE1B6, +0xE1B7, 0xE1B8, 0xE1B9, 0xE1BA, 0xE1BB, 0xE1BC, 0xE1BD, 0xE1BE, +0xE1BF, 0xE1C0, 0xE1C1, 0xE1C2, 0xE1C3, 0xE1C4, 0xE1C5, 0xE1C6, +0xE1C7, 0xE1C8, 0xE1C9, 0xE1CA, 0xE1CB, 0xE1CC, 0xE1CD, 0xE1CE, +0xE1CF, 0xE1D0, 0xE1D1, 0xE1D2, 0xE1D3, 0xE1D4, 0xE1D5, 0, +0x7588, 0x7589, 0x758A, 0x758C, 0x758D, 0x758E, 0x7590, 0x7593, +0x7595, 0x7598, 0x759B, 0x759C, 0x759E, 0x75A2, 0x75A6, 0x75A7, +0x75A8, 0x75A9, 0x75AA, 0x75AD, 0x75B6, 0x75B7, 0x75BA, 0x75BB, +0x75BF, 0x75C0, 0x75C1, 0x75C6, 0x75CB, 0x75CC, 0x75CE, 0x75CF, +0x75D0, 0x75D1, 0x75D3, 0x75D7, 0x75D9, 0x75DA, 0x75DC, 0x75DD, +0x75DF, 0x75E0, 0x75E1, 0x75E5, 0x75E9, 0x75EC, 0x75ED, 0x75EE, +0x75EF, 0x75F2, 0x75F3, 0x75F5, 0x75F6, 0x75F7, 0x75F8, 0x75FA, +0x75FB, 0x75FD, 0x75FE, 0x7602, 0x7604, 0x7606, 0x7607, 0, +0x7608, 0x7609, 0x760B, 0x760D, 0x760E, 0x760F, 0x7611, 0x7612, +0x7613, 0x7614, 0x7616, 0x761A, 0x761C, 0x761D, 0x761E, 0x7621, +0x7623, 0x7627, 0x7628, 0x762C, 0x762E, 0x762F, 0x7631, 0x7632, +0x7636, 0x7637, 0x7639, 0x763A, 0x763B, 0x763D, 0x7641, 0x7642, +0x7644, 0xE1D6, 0xE1D7, 0xE1D8, 0xE1D9, 0xE1DA, 0xE1DB, 0xE1DC, +0xE1DD, 0xE1DE, 0xE1DF, 0xE1E0, 0xE1E1, 0xE1E2, 0xE1E3, 0xE1E4, +0xE1E5, 0xE1E6, 0xE1E7, 0xE1E8, 0xE1E9, 0xE1EA, 0xE1EB, 0xE1EC, +0xE1ED, 0xE1EE, 0xE1EF, 0xE1F0, 0xE1F1, 0xE1F2, 0xE1F3, 0xE1F4, +0xE1F5, 0xE1F6, 0xE1F7, 0xE1F8, 0xE1F9, 0xE1FA, 0xE1FB, 0xE1FC, +0xE1FD, 0xE1FE, 0xE1FF, 0xE200, 0xE201, 0xE202, 0xE203, 0xE204, +0xE205, 0xE206, 0xE207, 0xE208, 0xE209, 0xE20A, 0xE20B, 0xE20C, +0xE20D, 0xE20E, 0xE20F, 0xE210, 0xE211, 0xE212, 0xE213, 0xE214, +0xE215, 0xE216, 0xE217, 0xE218, 0xE219, 0xE21A, 0xE21B, 0xE21C, +0xE21D, 0xE21E, 0xE21F, 0xE220, 0xE221, 0xE222, 0xE223, 0xE224, +0xE225, 0xE226, 0xE227, 0xE228, 0xE229, 0xE22A, 0xE22B, 0xE22C, +0xE22D, 0xE22E, 0xE22F, 0xE230, 0xE231, 0xE232, 0xE233, 0, +0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764A, 0x764B, 0x764E, +0x764F, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, +0x7659, 0x765A, 0x765B, 0x765D, 0x765F, 0x7660, 0x7661, 0x7662, +0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766A, 0x766C, +0x766D, 0x766E, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, +0x7676, 0x7677, 0x7679, 0x767A, 0x767C, 0x767F, 0x7680, 0x7681, +0x7683, 0x7685, 0x7689, 0x768A, 0x768C, 0x768D, 0x768F, 0x7690, +0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769A, 0x769B, 0, +0x769C, 0x769D, 0x769E, 0x769F, 0x76A0, 0x76A1, 0x76A2, 0x76A3, +0x76A5, 0x76A6, 0x76A7, 0x76A8, 0x76A9, 0x76AA, 0x76AB, 0x76AC, +0x76AD, 0x76AF, 0x76B0, 0x76B3, 0x76B5, 0x76B6, 0x76B7, 0x76B8, +0x76B9, 0x76BA, 0x76BB, 0x76BC, 0x76BD, 0x76BE, 0x76C0, 0x76C1, +0x76C3, 0x554A, 0x963F, 0x57C3, 0x6328, 0x54CE, 0x5509, 0x54C0, +0x7691, 0x764C, 0x853C, 0x77EE, 0x827E, 0x788D, 0x7231, 0x9698, +0x978D, 0x6C28, 0x5B89, 0x4FFA, 0x6309, 0x6697, 0x5CB8, 0x80FA, +0x6848, 0x80AE, 0x6602, 0x76CE, 0x51F9, 0x6556, 0x71AC, 0x7FF1, +0x8884, 0x50B2, 0x5965, 0x61CA, 0x6FB3, 0x82AD, 0x634C, 0x6252, +0x53ED, 0x5427, 0x7B06, 0x516B, 0x75A4, 0x5DF4, 0x62D4, 0x8DCB, +0x9776, 0x628A, 0x8019, 0x575D, 0x9738, 0x7F62, 0x7238, 0x767D, +0x67CF, 0x767E, 0x6446, 0x4F70, 0x8D25, 0x62DC, 0x7A17, 0x6591, +0x73ED, 0x642C, 0x6273, 0x822C, 0x9881, 0x677F, 0x7248, 0x626E, +0x62CC, 0x4F34, 0x74E3, 0x534A, 0x529E, 0x7ECA, 0x90A6, 0x5E2E, +0x6886, 0x699C, 0x8180, 0x7ED1, 0x68D2, 0x78C5, 0x868C, 0x9551, +0x508D, 0x8C24, 0x82DE, 0x80DE, 0x5305, 0x8912, 0x5265, 0, +0x76C4, 0x76C7, 0x76C9, 0x76CB, 0x76CC, 0x76D3, 0x76D5, 0x76D9, +0x76DA, 0x76DC, 0x76DD, 0x76DE, 0x76E0, 0x76E1, 0x76E2, 0x76E3, +0x76E4, 0x76E6, 0x76E7, 0x76E8, 0x76E9, 0x76EA, 0x76EB, 0x76EC, +0x76ED, 0x76F0, 0x76F3, 0x76F5, 0x76F6, 0x76F7, 0x76FA, 0x76FB, +0x76FD, 0x76FF, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770A, +0x770C, 0x770E, 0x770F, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, +0x7715, 0x7716, 0x7717, 0x7718, 0x771B, 0x771C, 0x771D, 0x771E, +0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772A, 0x772B, 0, +0x772C, 0x772E, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, +0x773B, 0x773D, 0x773E, 0x773F, 0x7742, 0x7744, 0x7745, 0x7746, +0x7748, 0x7749, 0x774A, 0x774B, 0x774C, 0x774D, 0x774E, 0x774F, +0x7752, 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, +0x775C, 0x8584, 0x96F9, 0x4FDD, 0x5821, 0x9971, 0x5B9D, 0x62B1, +0x62A5, 0x66B4, 0x8C79, 0x9C8D, 0x7206, 0x676F, 0x7891, 0x60B2, +0x5351, 0x5317, 0x8F88, 0x80CC, 0x8D1D, 0x94A1, 0x500D, 0x72C8, +0x5907, 0x60EB, 0x7119, 0x88AB, 0x5954, 0x82EF, 0x672C, 0x7B28, +0x5D29, 0x7EF7, 0x752D, 0x6CF5, 0x8E66, 0x8FF8, 0x903C, 0x9F3B, +0x6BD4, 0x9119, 0x7B14, 0x5F7C, 0x78A7, 0x84D6, 0x853D, 0x6BD5, +0x6BD9, 0x6BD6, 0x5E01, 0x5E87, 0x75F9, 0x95ED, 0x655D, 0x5F0A, +0x5FC5, 0x8F9F, 0x58C1, 0x81C2, 0x907F, 0x965B, 0x97AD, 0x8FB9, +0x7F16, 0x8D2C, 0x6241, 0x4FBF, 0x53D8, 0x535E, 0x8FA8, 0x8FA9, +0x8FAB, 0x904D, 0x6807, 0x5F6A, 0x8198, 0x8868, 0x9CD6, 0x618B, +0x522B, 0x762A, 0x5F6C, 0x658C, 0x6FD2, 0x6EE8, 0x5BBE, 0x6448, +0x5175, 0x51B0, 0x67C4, 0x4E19, 0x79C9, 0x997C, 0x70B3, 0, +0x775D, 0x775E, 0x775F, 0x7760, 0x7764, 0x7767, 0x7769, 0x776A, +0x776D, 0x776E, 0x776F, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, +0x7775, 0x7776, 0x7777, 0x7778, 0x777A, 0x777B, 0x777C, 0x7781, +0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778A, 0x778B, +0x778F, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, +0x7799, 0x779A, 0x779B, 0x779C, 0x779D, 0x779E, 0x77A1, 0x77A3, +0x77A4, 0x77A6, 0x77A8, 0x77AB, 0x77AD, 0x77AE, 0x77AF, 0x77B1, +0x77B2, 0x77B4, 0x77B6, 0x77B7, 0x77B8, 0x77B9, 0x77BA, 0, +0x77BC, 0x77BE, 0x77C0, 0x77C1, 0x77C2, 0x77C3, 0x77C4, 0x77C5, +0x77C6, 0x77C7, 0x77C8, 0x77C9, 0x77CA, 0x77CB, 0x77CC, 0x77CE, +0x77CF, 0x77D0, 0x77D1, 0x77D2, 0x77D3, 0x77D4, 0x77D5, 0x77D6, +0x77D8, 0x77D9, 0x77DA, 0x77DD, 0x77DE, 0x77DF, 0x77E0, 0x77E1, +0x77E4, 0x75C5, 0x5E76, 0x73BB, 0x83E0, 0x64AD, 0x62E8, 0x94B5, +0x6CE2, 0x535A, 0x52C3, 0x640F, 0x94C2, 0x7B94, 0x4F2F, 0x5E1B, +0x8236, 0x8116, 0x818A, 0x6E24, 0x6CCA, 0x9A73, 0x6355, 0x535C, +0x54FA, 0x8865, 0x57E0, 0x4E0D, 0x5E03, 0x6B65, 0x7C3F, 0x90E8, +0x6016, 0x64E6, 0x731C, 0x88C1, 0x6750, 0x624D, 0x8D22, 0x776C, +0x8E29, 0x91C7, 0x5F69, 0x83DC, 0x8521, 0x9910, 0x53C2, 0x8695, +0x6B8B, 0x60ED, 0x60E8, 0x707F, 0x82CD, 0x8231, 0x4ED3, 0x6CA7, +0x85CF, 0x64CD, 0x7CD9, 0x69FD, 0x66F9, 0x8349, 0x5395, 0x7B56, +0x4FA7, 0x518C, 0x6D4B, 0x5C42, 0x8E6D, 0x63D2, 0x53C9, 0x832C, +0x8336, 0x67E5, 0x78B4, 0x643D, 0x5BDF, 0x5C94, 0x5DEE, 0x8BE7, +0x62C6, 0x67F4, 0x8C7A, 0x6400, 0x63BA, 0x8749, 0x998B, 0x8C17, +0x7F20, 0x94F2, 0x4EA7, 0x9610, 0x98A4, 0x660C, 0x7316, 0, +0x77E6, 0x77E8, 0x77EA, 0x77EF, 0x77F0, 0x77F1, 0x77F2, 0x77F4, +0x77F5, 0x77F7, 0x77F9, 0x77FA, 0x77FB, 0x77FC, 0x7803, 0x7804, +0x7805, 0x7806, 0x7807, 0x7808, 0x780A, 0x780B, 0x780E, 0x780F, +0x7810, 0x7813, 0x7815, 0x7819, 0x781B, 0x781E, 0x7820, 0x7821, +0x7822, 0x7824, 0x7828, 0x782A, 0x782B, 0x782E, 0x782F, 0x7831, +0x7832, 0x7833, 0x7835, 0x7836, 0x783D, 0x783F, 0x7841, 0x7842, +0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784A, 0x784B, 0x784D, +0x784F, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785A, 0, +0x785B, 0x785C, 0x785E, 0x785F, 0x7860, 0x7861, 0x7862, 0x7863, +0x7864, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786F, 0x7870, +0x7871, 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, +0x787A, 0x787B, 0x787D, 0x787E, 0x787F, 0x7880, 0x7881, 0x7882, +0x7883, 0x573A, 0x5C1D, 0x5E38, 0x957F, 0x507F, 0x80A0, 0x5382, +0x655E, 0x7545, 0x5531, 0x5021, 0x8D85, 0x6284, 0x949E, 0x671D, +0x5632, 0x6F6E, 0x5DE2, 0x5435, 0x7092, 0x8F66, 0x626F, 0x64A4, +0x63A3, 0x5F7B, 0x6F88, 0x90F4, 0x81E3, 0x8FB0, 0x5C18, 0x6668, +0x5FF1, 0x6C89, 0x9648, 0x8D81, 0x886C, 0x6491, 0x79F0, 0x57CE, +0x6A59, 0x6210, 0x5448, 0x4E58, 0x7A0B, 0x60E9, 0x6F84, 0x8BDA, +0x627F, 0x901E, 0x9A8B, 0x79E4, 0x5403, 0x75F4, 0x6301, 0x5319, +0x6C60, 0x8FDF, 0x5F1B, 0x9A70, 0x803B, 0x9F7F, 0x4F88, 0x5C3A, +0x8D64, 0x7FC5, 0x65A5, 0x70BD, 0x5145, 0x51B2, 0x866B, 0x5D07, +0x5BA0, 0x62BD, 0x916C, 0x7574, 0x8E0C, 0x7A20, 0x6101, 0x7B79, +0x4EC7, 0x7EF8, 0x7785, 0x4E11, 0x81ED, 0x521D, 0x51FA, 0x6A71, +0x53A8, 0x8E87, 0x9504, 0x96CF, 0x6EC1, 0x9664, 0x695A, 0, +0x7884, 0x7885, 0x7886, 0x7888, 0x788A, 0x788B, 0x788F, 0x7890, +0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789D, 0x789E, 0x78A0, +0x78A2, 0x78A4, 0x78A6, 0x78A8, 0x78A9, 0x78AA, 0x78AB, 0x78AC, +0x78AD, 0x78AE, 0x78AF, 0x78B5, 0x78B6, 0x78B7, 0x78B8, 0x78BA, +0x78BB, 0x78BC, 0x78BD, 0x78BF, 0x78C0, 0x78C2, 0x78C3, 0x78C4, +0x78C6, 0x78C7, 0x78C8, 0x78CC, 0x78CD, 0x78CE, 0x78CF, 0x78D1, +0x78D2, 0x78D3, 0x78D6, 0x78D7, 0x78D8, 0x78DA, 0x78DB, 0x78DC, +0x78DD, 0x78DE, 0x78DF, 0x78E0, 0x78E1, 0x78E2, 0x78E3, 0, +0x78E4, 0x78E5, 0x78E6, 0x78E7, 0x78E9, 0x78EA, 0x78EB, 0x78ED, +0x78EE, 0x78EF, 0x78F0, 0x78F1, 0x78F3, 0x78F5, 0x78F6, 0x78F8, +0x78F9, 0x78FB, 0x78FC, 0x78FD, 0x78FE, 0x78FF, 0x7900, 0x7902, +0x7903, 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790A, 0x790B, +0x790C, 0x7840, 0x50A8, 0x77D7, 0x6410, 0x89E6, 0x5904, 0x63E3, +0x5DDD, 0x7A7F, 0x693D, 0x4F20, 0x8239, 0x5598, 0x4E32, 0x75AE, +0x7A97, 0x5E62, 0x5E8A, 0x95EF, 0x521B, 0x5439, 0x708A, 0x6376, +0x9524, 0x5782, 0x6625, 0x693F, 0x9187, 0x5507, 0x6DF3, 0x7EAF, +0x8822, 0x6233, 0x7EF0, 0x75B5, 0x8328, 0x78C1, 0x96CC, 0x8F9E, +0x6148, 0x74F7, 0x8BCD, 0x6B64, 0x523A, 0x8D50, 0x6B21, 0x806A, +0x8471, 0x56F1, 0x5306, 0x4ECE, 0x4E1B, 0x51D1, 0x7C97, 0x918B, +0x7C07, 0x4FC3, 0x8E7F, 0x7BE1, 0x7A9C, 0x6467, 0x5D14, 0x50AC, +0x8106, 0x7601, 0x7CB9, 0x6DEC, 0x7FE0, 0x6751, 0x5B58, 0x5BF8, +0x78CB, 0x64AE, 0x6413, 0x63AA, 0x632B, 0x9519, 0x642D, 0x8FBE, +0x7B54, 0x7629, 0x6253, 0x5927, 0x5446, 0x6B79, 0x50A3, 0x6234, +0x5E26, 0x6B86, 0x4EE3, 0x8D37, 0x888B, 0x5F85, 0x902E, 0, +0x790D, 0x790E, 0x790F, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, +0x7916, 0x7917, 0x7918, 0x7919, 0x791A, 0x791B, 0x791C, 0x791D, +0x791F, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, +0x7928, 0x7929, 0x792A, 0x792B, 0x792C, 0x792D, 0x792E, 0x792F, +0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, +0x7939, 0x793D, 0x793F, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, +0x794A, 0x794B, 0x794C, 0x794D, 0x794E, 0x794F, 0x7950, 0x7951, +0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0, +0x7964, 0x7966, 0x7969, 0x796A, 0x796B, 0x796C, 0x796E, 0x7970, +0x7971, 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797B, +0x797C, 0x797D, 0x797E, 0x797F, 0x7982, 0x7983, 0x7986, 0x7987, +0x7988, 0x7989, 0x798B, 0x798C, 0x798D, 0x798E, 0x7990, 0x7991, +0x7992, 0x6020, 0x803D, 0x62C5, 0x4E39, 0x5355, 0x90F8, 0x63B8, +0x80C6, 0x65E6, 0x6C2E, 0x4F46, 0x60EE, 0x6DE1, 0x8BDE, 0x5F39, +0x86CB, 0x5F53, 0x6321, 0x515A, 0x8361, 0x6863, 0x5200, 0x6363, +0x8E48, 0x5012, 0x5C9B, 0x7977, 0x5BFC, 0x5230, 0x7A3B, 0x60BC, +0x9053, 0x76D7, 0x5FB7, 0x5F97, 0x7684, 0x8E6C, 0x706F, 0x767B, +0x7B49, 0x77AA, 0x51F3, 0x9093, 0x5824, 0x4F4E, 0x6EF4, 0x8FEA, +0x654C, 0x7B1B, 0x72C4, 0x6DA4, 0x7FDF, 0x5AE1, 0x62B5, 0x5E95, +0x5730, 0x8482, 0x7B2C, 0x5E1D, 0x5F1F, 0x9012, 0x7F14, 0x98A0, +0x6382, 0x6EC7, 0x7898, 0x70B9, 0x5178, 0x975B, 0x57AB, 0x7535, +0x4F43, 0x7538, 0x5E97, 0x60E6, 0x5960, 0x6DC0, 0x6BBF, 0x7889, +0x53FC, 0x96D5, 0x51CB, 0x5201, 0x6389, 0x540A, 0x9493, 0x8C03, +0x8DCC, 0x7239, 0x789F, 0x8776, 0x8FED, 0x8C0D, 0x53E0, 0, +0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799B, +0x799C, 0x799D, 0x799E, 0x799F, 0x79A0, 0x79A1, 0x79A2, 0x79A3, +0x79A4, 0x79A5, 0x79A6, 0x79A8, 0x79A9, 0x79AA, 0x79AB, 0x79AC, +0x79AD, 0x79AE, 0x79AF, 0x79B0, 0x79B1, 0x79B2, 0x79B4, 0x79B5, +0x79B6, 0x79B7, 0x79B8, 0x79BC, 0x79BF, 0x79C2, 0x79C4, 0x79C5, +0x79C7, 0x79C8, 0x79CA, 0x79CC, 0x79CE, 0x79CF, 0x79D0, 0x79D3, +0x79D4, 0x79D6, 0x79D7, 0x79D9, 0x79DA, 0x79DB, 0x79DC, 0x79DD, +0x79DE, 0x79E0, 0x79E1, 0x79E2, 0x79E5, 0x79E8, 0x79EA, 0, +0x79EC, 0x79EE, 0x79F1, 0x79F2, 0x79F3, 0x79F4, 0x79F5, 0x79F6, +0x79F7, 0x79F9, 0x79FA, 0x79FC, 0x79FE, 0x79FF, 0x7A01, 0x7A04, +0x7A05, 0x7A07, 0x7A08, 0x7A09, 0x7A0A, 0x7A0C, 0x7A0F, 0x7A10, +0x7A11, 0x7A12, 0x7A13, 0x7A15, 0x7A16, 0x7A18, 0x7A19, 0x7A1B, +0x7A1C, 0x4E01, 0x76EF, 0x53EE, 0x9489, 0x9876, 0x9F0E, 0x952D, +0x5B9A, 0x8BA2, 0x4E22, 0x4E1C, 0x51AC, 0x8463, 0x61C2, 0x52A8, +0x680B, 0x4F97, 0x606B, 0x51BB, 0x6D1E, 0x515C, 0x6296, 0x6597, +0x9661, 0x8C46, 0x9017, 0x75D8, 0x90FD, 0x7763, 0x6BD2, 0x728A, +0x72EC, 0x8BFB, 0x5835, 0x7779, 0x8D4C, 0x675C, 0x9540, 0x809A, +0x5EA6, 0x6E21, 0x5992, 0x7AEF, 0x77ED, 0x953B, 0x6BB5, 0x65AD, +0x7F0E, 0x5806, 0x5151, 0x961F, 0x5BF9, 0x58A9, 0x5428, 0x8E72, +0x6566, 0x987F, 0x56E4, 0x949D, 0x76FE, 0x9041, 0x6387, 0x54C6, +0x591A, 0x593A, 0x579B, 0x8EB2, 0x6735, 0x8DFA, 0x8235, 0x5241, +0x60F0, 0x5815, 0x86FE, 0x5CE8, 0x9E45, 0x4FC4, 0x989D, 0x8BB9, +0x5A25, 0x6076, 0x5384, 0x627C, 0x904F, 0x9102, 0x997F, 0x6069, +0x800C, 0x513F, 0x8033, 0x5C14, 0x9975, 0x6D31, 0x4E8C, 0, +0x7A1D, 0x7A1F, 0x7A21, 0x7A22, 0x7A24, 0x7A25, 0x7A26, 0x7A27, +0x7A28, 0x7A29, 0x7A2A, 0x7A2B, 0x7A2C, 0x7A2D, 0x7A2E, 0x7A2F, +0x7A30, 0x7A31, 0x7A32, 0x7A34, 0x7A35, 0x7A36, 0x7A38, 0x7A3A, +0x7A3E, 0x7A40, 0x7A41, 0x7A42, 0x7A43, 0x7A44, 0x7A45, 0x7A47, +0x7A48, 0x7A49, 0x7A4A, 0x7A4B, 0x7A4C, 0x7A4D, 0x7A4E, 0x7A4F, +0x7A50, 0x7A52, 0x7A53, 0x7A54, 0x7A55, 0x7A56, 0x7A58, 0x7A59, +0x7A5A, 0x7A5B, 0x7A5C, 0x7A5D, 0x7A5E, 0x7A5F, 0x7A60, 0x7A61, +0x7A62, 0x7A63, 0x7A64, 0x7A65, 0x7A66, 0x7A67, 0x7A68, 0, +0x7A69, 0x7A6A, 0x7A6B, 0x7A6C, 0x7A6D, 0x7A6E, 0x7A6F, 0x7A71, +0x7A72, 0x7A73, 0x7A75, 0x7A7B, 0x7A7C, 0x7A7D, 0x7A7E, 0x7A82, +0x7A85, 0x7A87, 0x7A89, 0x7A8A, 0x7A8B, 0x7A8C, 0x7A8E, 0x7A8F, +0x7A90, 0x7A93, 0x7A94, 0x7A99, 0x7A9A, 0x7A9B, 0x7A9E, 0x7AA1, +0x7AA2, 0x8D30, 0x53D1, 0x7F5A, 0x7B4F, 0x4F10, 0x4E4F, 0x9600, +0x6CD5, 0x73D0, 0x85E9, 0x5E06, 0x756A, 0x7FFB, 0x6A0A, 0x77FE, +0x9492, 0x7E41, 0x51E1, 0x70E6, 0x53CD, 0x8FD4, 0x8303, 0x8D29, +0x72AF, 0x996D, 0x6CDB, 0x574A, 0x82B3, 0x65B9, 0x80AA, 0x623F, +0x9632, 0x59A8, 0x4EFF, 0x8BBF, 0x7EBA, 0x653E, 0x83F2, 0x975E, +0x5561, 0x98DE, 0x80A5, 0x532A, 0x8BFD, 0x5420, 0x80BA, 0x5E9F, +0x6CB8, 0x8D39, 0x82AC, 0x915A, 0x5429, 0x6C1B, 0x5206, 0x7EB7, +0x575F, 0x711A, 0x6C7E, 0x7C89, 0x594B, 0x4EFD, 0x5FFF, 0x6124, +0x7CAA, 0x4E30, 0x5C01, 0x67AB, 0x8702, 0x5CF0, 0x950B, 0x98CE, +0x75AF, 0x70FD, 0x9022, 0x51AF, 0x7F1D, 0x8BBD, 0x5949, 0x51E4, +0x4F5B, 0x5426, 0x592B, 0x6577, 0x80A4, 0x5B75, 0x6276, 0x62C2, +0x8F90, 0x5E45, 0x6C1F, 0x7B26, 0x4F0F, 0x4FD8, 0x670D, 0, +0x7AA3, 0x7AA4, 0x7AA7, 0x7AA9, 0x7AAA, 0x7AAB, 0x7AAE, 0x7AAF, +0x7AB0, 0x7AB1, 0x7AB2, 0x7AB4, 0x7AB5, 0x7AB6, 0x7AB7, 0x7AB8, +0x7AB9, 0x7ABA, 0x7ABB, 0x7ABC, 0x7ABD, 0x7ABE, 0x7AC0, 0x7AC1, +0x7AC2, 0x7AC3, 0x7AC4, 0x7AC5, 0x7AC6, 0x7AC7, 0x7AC8, 0x7AC9, +0x7ACA, 0x7ACC, 0x7ACD, 0x7ACE, 0x7ACF, 0x7AD0, 0x7AD1, 0x7AD2, +0x7AD3, 0x7AD4, 0x7AD5, 0x7AD7, 0x7AD8, 0x7ADA, 0x7ADB, 0x7ADC, +0x7ADD, 0x7AE1, 0x7AE2, 0x7AE4, 0x7AE7, 0x7AE8, 0x7AE9, 0x7AEA, +0x7AEB, 0x7AEC, 0x7AEE, 0x7AF0, 0x7AF1, 0x7AF2, 0x7AF3, 0, +0x7AF4, 0x7AF5, 0x7AF6, 0x7AF7, 0x7AF8, 0x7AFB, 0x7AFC, 0x7AFE, +0x7B00, 0x7B01, 0x7B02, 0x7B05, 0x7B07, 0x7B09, 0x7B0C, 0x7B0D, +0x7B0E, 0x7B10, 0x7B12, 0x7B13, 0x7B16, 0x7B17, 0x7B18, 0x7B1A, +0x7B1C, 0x7B1D, 0x7B1F, 0x7B21, 0x7B22, 0x7B23, 0x7B27, 0x7B29, +0x7B2D, 0x6D6E, 0x6DAA, 0x798F, 0x88B1, 0x5F17, 0x752B, 0x629A, +0x8F85, 0x4FEF, 0x91DC, 0x65A7, 0x812F, 0x8151, 0x5E9C, 0x8150, +0x8D74, 0x526F, 0x8986, 0x8D4B, 0x590D, 0x5085, 0x4ED8, 0x961C, +0x7236, 0x8179, 0x8D1F, 0x5BCC, 0x8BA3, 0x9644, 0x5987, 0x7F1A, +0x5490, 0x5676, 0x560E, 0x8BE5, 0x6539, 0x6982, 0x9499, 0x76D6, +0x6E89, 0x5E72, 0x7518, 0x6746, 0x67D1, 0x7AFF, 0x809D, 0x8D76, +0x611F, 0x79C6, 0x6562, 0x8D63, 0x5188, 0x521A, 0x94A2, 0x7F38, +0x809B, 0x7EB2, 0x5C97, 0x6E2F, 0x6760, 0x7BD9, 0x768B, 0x9AD8, +0x818F, 0x7F94, 0x7CD5, 0x641E, 0x9550, 0x7A3F, 0x544A, 0x54E5, +0x6B4C, 0x6401, 0x6208, 0x9E3D, 0x80F3, 0x7599, 0x5272, 0x9769, +0x845B, 0x683C, 0x86E4, 0x9601, 0x9694, 0x94EC, 0x4E2A, 0x5404, +0x7ED9, 0x6839, 0x8DDF, 0x8015, 0x66F4, 0x5E9A, 0x7FB9, 0, +0x7B2F, 0x7B30, 0x7B32, 0x7B34, 0x7B35, 0x7B36, 0x7B37, 0x7B39, +0x7B3B, 0x7B3D, 0x7B3F, 0x7B40, 0x7B41, 0x7B42, 0x7B43, 0x7B44, +0x7B46, 0x7B48, 0x7B4A, 0x7B4D, 0x7B4E, 0x7B53, 0x7B55, 0x7B57, +0x7B59, 0x7B5C, 0x7B5E, 0x7B5F, 0x7B61, 0x7B63, 0x7B64, 0x7B65, +0x7B66, 0x7B67, 0x7B68, 0x7B69, 0x7B6A, 0x7B6B, 0x7B6C, 0x7B6D, +0x7B6F, 0x7B70, 0x7B73, 0x7B74, 0x7B76, 0x7B78, 0x7B7A, 0x7B7C, +0x7B7D, 0x7B7F, 0x7B81, 0x7B82, 0x7B83, 0x7B84, 0x7B86, 0x7B87, +0x7B88, 0x7B89, 0x7B8A, 0x7B8B, 0x7B8C, 0x7B8E, 0x7B8F, 0, +0x7B91, 0x7B92, 0x7B93, 0x7B96, 0x7B98, 0x7B99, 0x7B9A, 0x7B9B, +0x7B9E, 0x7B9F, 0x7BA0, 0x7BA3, 0x7BA4, 0x7BA5, 0x7BAE, 0x7BAF, +0x7BB0, 0x7BB2, 0x7BB3, 0x7BB5, 0x7BB6, 0x7BB7, 0x7BB9, 0x7BBA, +0x7BBB, 0x7BBC, 0x7BBD, 0x7BBE, 0x7BBF, 0x7BC0, 0x7BC2, 0x7BC3, +0x7BC4, 0x57C2, 0x803F, 0x6897, 0x5DE5, 0x653B, 0x529F, 0x606D, +0x9F9A, 0x4F9B, 0x8EAC, 0x516C, 0x5BAB, 0x5F13, 0x5DE9, 0x6C5E, +0x62F1, 0x8D21, 0x5171, 0x94A9, 0x52FE, 0x6C9F, 0x82DF, 0x72D7, +0x57A2, 0x6784, 0x8D2D, 0x591F, 0x8F9C, 0x83C7, 0x5495, 0x7B8D, +0x4F30, 0x6CBD, 0x5B64, 0x59D1, 0x9F13, 0x53E4, 0x86CA, 0x9AA8, +0x8C37, 0x80A1, 0x6545, 0x987E, 0x56FA, 0x96C7, 0x522E, 0x74DC, +0x5250, 0x5BE1, 0x6302, 0x8902, 0x4E56, 0x62D0, 0x602A, 0x68FA, +0x5173, 0x5B98, 0x51A0, 0x89C2, 0x7BA1, 0x9986, 0x7F50, 0x60EF, +0x704C, 0x8D2F, 0x5149, 0x5E7F, 0x901B, 0x7470, 0x89C4, 0x572D, +0x7845, 0x5F52, 0x9F9F, 0x95FA, 0x8F68, 0x9B3C, 0x8BE1, 0x7678, +0x6842, 0x67DC, 0x8DEA, 0x8D35, 0x523D, 0x8F8A, 0x6EDA, 0x68CD, +0x9505, 0x90ED, 0x56FD, 0x679C, 0x88F9, 0x8FC7, 0x54C8, 0, +0x7BC5, 0x7BC8, 0x7BC9, 0x7BCA, 0x7BCB, 0x7BCD, 0x7BCE, 0x7BCF, +0x7BD0, 0x7BD2, 0x7BD4, 0x7BD5, 0x7BD6, 0x7BD7, 0x7BD8, 0x7BDB, +0x7BDC, 0x7BDE, 0x7BDF, 0x7BE0, 0x7BE2, 0x7BE3, 0x7BE4, 0x7BE7, +0x7BE8, 0x7BE9, 0x7BEB, 0x7BEC, 0x7BED, 0x7BEF, 0x7BF0, 0x7BF2, +0x7BF3, 0x7BF4, 0x7BF5, 0x7BF6, 0x7BF8, 0x7BF9, 0x7BFA, 0x7BFB, +0x7BFD, 0x7BFF, 0x7C00, 0x7C01, 0x7C02, 0x7C03, 0x7C04, 0x7C05, +0x7C06, 0x7C08, 0x7C09, 0x7C0A, 0x7C0D, 0x7C0E, 0x7C10, 0x7C11, +0x7C12, 0x7C13, 0x7C14, 0x7C15, 0x7C17, 0x7C18, 0x7C19, 0, +0x7C1A, 0x7C1B, 0x7C1C, 0x7C1D, 0x7C1E, 0x7C20, 0x7C21, 0x7C22, +0x7C23, 0x7C24, 0x7C25, 0x7C28, 0x7C29, 0x7C2B, 0x7C2C, 0x7C2D, +0x7C2E, 0x7C2F, 0x7C30, 0x7C31, 0x7C32, 0x7C33, 0x7C34, 0x7C35, +0x7C36, 0x7C37, 0x7C39, 0x7C3A, 0x7C3B, 0x7C3C, 0x7C3D, 0x7C3E, +0x7C42, 0x9AB8, 0x5B69, 0x6D77, 0x6C26, 0x4EA5, 0x5BB3, 0x9A87, +0x9163, 0x61A8, 0x90AF, 0x97E9, 0x542B, 0x6DB5, 0x5BD2, 0x51FD, +0x558A, 0x7F55, 0x7FF0, 0x64BC, 0x634D, 0x65F1, 0x61BE, 0x608D, +0x710A, 0x6C57, 0x6C49, 0x592F, 0x676D, 0x822A, 0x58D5, 0x568E, +0x8C6A, 0x6BEB, 0x90DD, 0x597D, 0x8017, 0x53F7, 0x6D69, 0x5475, +0x559D, 0x8377, 0x83CF, 0x6838, 0x79BE, 0x548C, 0x4F55, 0x5408, +0x76D2, 0x8C89, 0x9602, 0x6CB3, 0x6DB8, 0x8D6B, 0x8910, 0x9E64, +0x8D3A, 0x563F, 0x9ED1, 0x75D5, 0x5F88, 0x72E0, 0x6068, 0x54FC, +0x4EA8, 0x6A2A, 0x8861, 0x6052, 0x8F70, 0x54C4, 0x70D8, 0x8679, +0x9E3F, 0x6D2A, 0x5B8F, 0x5F18, 0x7EA2, 0x5589, 0x4FAF, 0x7334, +0x543C, 0x539A, 0x5019, 0x540E, 0x547C, 0x4E4E, 0x5FFD, 0x745A, +0x58F6, 0x846B, 0x80E1, 0x8774, 0x72D0, 0x7CCA, 0x6E56, 0, +0x7C43, 0x7C44, 0x7C45, 0x7C46, 0x7C47, 0x7C48, 0x7C49, 0x7C4A, +0x7C4B, 0x7C4C, 0x7C4E, 0x7C4F, 0x7C50, 0x7C51, 0x7C52, 0x7C53, +0x7C54, 0x7C55, 0x7C56, 0x7C57, 0x7C58, 0x7C59, 0x7C5A, 0x7C5B, +0x7C5C, 0x7C5D, 0x7C5E, 0x7C5F, 0x7C60, 0x7C61, 0x7C62, 0x7C63, +0x7C64, 0x7C65, 0x7C66, 0x7C67, 0x7C68, 0x7C69, 0x7C6A, 0x7C6B, +0x7C6C, 0x7C6D, 0x7C6E, 0x7C6F, 0x7C70, 0x7C71, 0x7C72, 0x7C75, +0x7C76, 0x7C77, 0x7C78, 0x7C79, 0x7C7A, 0x7C7E, 0x7C7F, 0x7C80, +0x7C81, 0x7C82, 0x7C83, 0x7C84, 0x7C85, 0x7C86, 0x7C87, 0, +0x7C88, 0x7C8A, 0x7C8B, 0x7C8C, 0x7C8D, 0x7C8E, 0x7C8F, 0x7C90, +0x7C93, 0x7C94, 0x7C96, 0x7C99, 0x7C9A, 0x7C9B, 0x7CA0, 0x7CA1, +0x7CA3, 0x7CA6, 0x7CA7, 0x7CA8, 0x7CA9, 0x7CAB, 0x7CAC, 0x7CAD, +0x7CAF, 0x7CB0, 0x7CB4, 0x7CB5, 0x7CB6, 0x7CB7, 0x7CB8, 0x7CBA, +0x7CBB, 0x5F27, 0x864E, 0x552C, 0x62A4, 0x4E92, 0x6CAA, 0x6237, +0x82B1, 0x54D7, 0x534E, 0x733E, 0x6ED1, 0x753B, 0x5212, 0x5316, +0x8BDD, 0x69D0, 0x5F8A, 0x6000, 0x6DEE, 0x574F, 0x6B22, 0x73AF, +0x6853, 0x8FD8, 0x7F13, 0x6362, 0x60A3, 0x5524, 0x75EA, 0x8C62, +0x7115, 0x6DA3, 0x5BA6, 0x5E7B, 0x8352, 0x614C, 0x9EC4, 0x78FA, +0x8757, 0x7C27, 0x7687, 0x51F0, 0x60F6, 0x714C, 0x6643, 0x5E4C, +0x604D, 0x8C0E, 0x7070, 0x6325, 0x8F89, 0x5FBD, 0x6062, 0x86D4, +0x56DE, 0x6BC1, 0x6094, 0x6167, 0x5349, 0x60E0, 0x6666, 0x8D3F, +0x79FD, 0x4F1A, 0x70E9, 0x6C47, 0x8BB3, 0x8BF2, 0x7ED8, 0x8364, +0x660F, 0x5A5A, 0x9B42, 0x6D51, 0x6DF7, 0x8C41, 0x6D3B, 0x4F19, +0x706B, 0x83B7, 0x6216, 0x60D1, 0x970D, 0x8D27, 0x7978, 0x51FB, +0x573E, 0x57FA, 0x673A, 0x7578, 0x7A3D, 0x79EF, 0x7B95, 0, +0x7CBF, 0x7CC0, 0x7CC2, 0x7CC3, 0x7CC4, 0x7CC6, 0x7CC9, 0x7CCB, +0x7CCE, 0x7CCF, 0x7CD0, 0x7CD1, 0x7CD2, 0x7CD3, 0x7CD4, 0x7CD8, +0x7CDA, 0x7CDB, 0x7CDD, 0x7CDE, 0x7CE1, 0x7CE2, 0x7CE3, 0x7CE4, +0x7CE5, 0x7CE6, 0x7CE7, 0x7CE9, 0x7CEA, 0x7CEB, 0x7CEC, 0x7CED, +0x7CEE, 0x7CF0, 0x7CF1, 0x7CF2, 0x7CF3, 0x7CF4, 0x7CF5, 0x7CF6, +0x7CF7, 0x7CF9, 0x7CFA, 0x7CFC, 0x7CFD, 0x7CFE, 0x7CFF, 0x7D00, +0x7D01, 0x7D02, 0x7D03, 0x7D04, 0x7D05, 0x7D06, 0x7D07, 0x7D08, +0x7D09, 0x7D0B, 0x7D0C, 0x7D0D, 0x7D0E, 0x7D0F, 0x7D10, 0, +0x7D11, 0x7D12, 0x7D13, 0x7D14, 0x7D15, 0x7D16, 0x7D17, 0x7D18, +0x7D19, 0x7D1A, 0x7D1B, 0x7D1C, 0x7D1D, 0x7D1E, 0x7D1F, 0x7D21, +0x7D23, 0x7D24, 0x7D25, 0x7D26, 0x7D28, 0x7D29, 0x7D2A, 0x7D2C, +0x7D2D, 0x7D2E, 0x7D30, 0x7D31, 0x7D32, 0x7D33, 0x7D34, 0x7D35, +0x7D36, 0x808C, 0x9965, 0x8FF9, 0x6FC0, 0x8BA5, 0x9E21, 0x59EC, +0x7EE9, 0x7F09, 0x5409, 0x6781, 0x68D8, 0x8F91, 0x7C4D, 0x96C6, +0x53CA, 0x6025, 0x75BE, 0x6C72, 0x5373, 0x5AC9, 0x7EA7, 0x6324, +0x51E0, 0x810A, 0x5DF1, 0x84DF, 0x6280, 0x5180, 0x5B63, 0x4F0E, +0x796D, 0x5242, 0x60B8, 0x6D4E, 0x5BC4, 0x5BC2, 0x8BA1, 0x8BB0, +0x65E2, 0x5FCC, 0x9645, 0x5993, 0x7EE7, 0x7EAA, 0x5609, 0x67B7, +0x5939, 0x4F73, 0x5BB6, 0x52A0, 0x835A, 0x988A, 0x8D3E, 0x7532, +0x94BE, 0x5047, 0x7A3C, 0x4EF7, 0x67B6, 0x9A7E, 0x5AC1, 0x6B7C, +0x76D1, 0x575A, 0x5C16, 0x7B3A, 0x95F4, 0x714E, 0x517C, 0x80A9, +0x8270, 0x5978, 0x7F04, 0x8327, 0x68C0, 0x67EC, 0x78B1, 0x7877, +0x62E3, 0x6361, 0x7B80, 0x4FED, 0x526A, 0x51CF, 0x8350, 0x69DB, +0x9274, 0x8DF5, 0x8D31, 0x89C1, 0x952E, 0x7BAD, 0x4EF6, 0, +0x7D37, 0x7D38, 0x7D39, 0x7D3A, 0x7D3B, 0x7D3C, 0x7D3D, 0x7D3E, +0x7D3F, 0x7D40, 0x7D41, 0x7D42, 0x7D43, 0x7D44, 0x7D45, 0x7D46, +0x7D47, 0x7D48, 0x7D49, 0x7D4A, 0x7D4B, 0x7D4C, 0x7D4D, 0x7D4E, +0x7D4F, 0x7D50, 0x7D51, 0x7D52, 0x7D53, 0x7D54, 0x7D55, 0x7D56, +0x7D57, 0x7D58, 0x7D59, 0x7D5A, 0x7D5B, 0x7D5C, 0x7D5D, 0x7D5E, +0x7D5F, 0x7D60, 0x7D61, 0x7D62, 0x7D63, 0x7D64, 0x7D65, 0x7D66, +0x7D67, 0x7D68, 0x7D69, 0x7D6A, 0x7D6B, 0x7D6C, 0x7D6D, 0x7D6F, +0x7D70, 0x7D71, 0x7D72, 0x7D73, 0x7D74, 0x7D75, 0x7D76, 0, +0x7D78, 0x7D79, 0x7D7A, 0x7D7B, 0x7D7C, 0x7D7D, 0x7D7E, 0x7D7F, +0x7D80, 0x7D81, 0x7D82, 0x7D83, 0x7D84, 0x7D85, 0x7D86, 0x7D87, +0x7D88, 0x7D89, 0x7D8A, 0x7D8B, 0x7D8C, 0x7D8D, 0x7D8E, 0x7D8F, +0x7D90, 0x7D91, 0x7D92, 0x7D93, 0x7D94, 0x7D95, 0x7D96, 0x7D97, +0x7D98, 0x5065, 0x8230, 0x5251, 0x996F, 0x6E10, 0x6E85, 0x6DA7, +0x5EFA, 0x50F5, 0x59DC, 0x5C06, 0x6D46, 0x6C5F, 0x7586, 0x848B, +0x6868, 0x5956, 0x8BB2, 0x5320, 0x9171, 0x964D, 0x8549, 0x6912, +0x7901, 0x7126, 0x80F6, 0x4EA4, 0x90CA, 0x6D47, 0x9A84, 0x5A07, +0x56BC, 0x6405, 0x94F0, 0x77EB, 0x4FA5, 0x811A, 0x72E1, 0x89D2, +0x997A, 0x7F34, 0x7EDE, 0x527F, 0x6559, 0x9175, 0x8F7F, 0x8F83, +0x53EB, 0x7A96, 0x63ED, 0x63A5, 0x7686, 0x79F8, 0x8857, 0x9636, +0x622A, 0x52AB, 0x8282, 0x6854, 0x6770, 0x6377, 0x776B, 0x7AED, +0x6D01, 0x7ED3, 0x89E3, 0x59D0, 0x6212, 0x85C9, 0x82A5, 0x754C, +0x501F, 0x4ECB, 0x75A5, 0x8BEB, 0x5C4A, 0x5DFE, 0x7B4B, 0x65A4, +0x91D1, 0x4ECA, 0x6D25, 0x895F, 0x7D27, 0x9526, 0x4EC5, 0x8C28, +0x8FDB, 0x9773, 0x664B, 0x7981, 0x8FD1, 0x70EC, 0x6D78, 0, +0x7D99, 0x7D9A, 0x7D9B, 0x7D9C, 0x7D9D, 0x7D9E, 0x7D9F, 0x7DA0, +0x7DA1, 0x7DA2, 0x7DA3, 0x7DA4, 0x7DA5, 0x7DA7, 0x7DA8, 0x7DA9, +0x7DAA, 0x7DAB, 0x7DAC, 0x7DAD, 0x7DAF, 0x7DB0, 0x7DB1, 0x7DB2, +0x7DB3, 0x7DB4, 0x7DB5, 0x7DB6, 0x7DB7, 0x7DB8, 0x7DB9, 0x7DBA, +0x7DBB, 0x7DBC, 0x7DBD, 0x7DBE, 0x7DBF, 0x7DC0, 0x7DC1, 0x7DC2, +0x7DC3, 0x7DC4, 0x7DC5, 0x7DC6, 0x7DC7, 0x7DC8, 0x7DC9, 0x7DCA, +0x7DCB, 0x7DCC, 0x7DCD, 0x7DCE, 0x7DCF, 0x7DD0, 0x7DD1, 0x7DD2, +0x7DD3, 0x7DD4, 0x7DD5, 0x7DD6, 0x7DD7, 0x7DD8, 0x7DD9, 0, +0x7DDA, 0x7DDB, 0x7DDC, 0x7DDD, 0x7DDE, 0x7DDF, 0x7DE0, 0x7DE1, +0x7DE2, 0x7DE3, 0x7DE4, 0x7DE5, 0x7DE6, 0x7DE7, 0x7DE8, 0x7DE9, +0x7DEA, 0x7DEB, 0x7DEC, 0x7DED, 0x7DEE, 0x7DEF, 0x7DF0, 0x7DF1, +0x7DF2, 0x7DF3, 0x7DF4, 0x7DF5, 0x7DF6, 0x7DF7, 0x7DF8, 0x7DF9, +0x7DFA, 0x5C3D, 0x52B2, 0x8346, 0x5162, 0x830E, 0x775B, 0x6676, +0x9CB8, 0x4EAC, 0x60CA, 0x7CBE, 0x7CB3, 0x7ECF, 0x4E95, 0x8B66, +0x666F, 0x9888, 0x9759, 0x5883, 0x656C, 0x955C, 0x5F84, 0x75C9, +0x9756, 0x7ADF, 0x7ADE, 0x51C0, 0x70AF, 0x7A98, 0x63EA, 0x7A76, +0x7EA0, 0x7396, 0x97ED, 0x4E45, 0x7078, 0x4E5D, 0x9152, 0x53A9, +0x6551, 0x65E7, 0x81FC, 0x8205, 0x548E, 0x5C31, 0x759A, 0x97A0, +0x62D8, 0x72D9, 0x75BD, 0x5C45, 0x9A79, 0x83CA, 0x5C40, 0x5480, +0x77E9, 0x4E3E, 0x6CAE, 0x805A, 0x62D2, 0x636E, 0x5DE8, 0x5177, +0x8DDD, 0x8E1E, 0x952F, 0x4FF1, 0x53E5, 0x60E7, 0x70AC, 0x5267, +0x6350, 0x9E43, 0x5A1F, 0x5026, 0x7737, 0x5377, 0x7EE2, 0x6485, +0x652B, 0x6289, 0x6398, 0x5014, 0x7235, 0x89C9, 0x51B3, 0x8BC0, +0x7EDD, 0x5747, 0x83CC, 0x94A7, 0x519B, 0x541B, 0x5CFB, 0, +0x7DFB, 0x7DFC, 0x7DFD, 0x7DFE, 0x7DFF, 0x7E00, 0x7E01, 0x7E02, +0x7E03, 0x7E04, 0x7E05, 0x7E06, 0x7E07, 0x7E08, 0x7E09, 0x7E0A, +0x7E0B, 0x7E0C, 0x7E0D, 0x7E0E, 0x7E0F, 0x7E10, 0x7E11, 0x7E12, +0x7E13, 0x7E14, 0x7E15, 0x7E16, 0x7E17, 0x7E18, 0x7E19, 0x7E1A, +0x7E1B, 0x7E1C, 0x7E1D, 0x7E1E, 0x7E1F, 0x7E20, 0x7E21, 0x7E22, +0x7E23, 0x7E24, 0x7E25, 0x7E26, 0x7E27, 0x7E28, 0x7E29, 0x7E2A, +0x7E2B, 0x7E2C, 0x7E2D, 0x7E2E, 0x7E2F, 0x7E30, 0x7E31, 0x7E32, +0x7E33, 0x7E34, 0x7E35, 0x7E36, 0x7E37, 0x7E38, 0x7E39, 0, +0x7E3A, 0x7E3C, 0x7E3D, 0x7E3E, 0x7E3F, 0x7E40, 0x7E42, 0x7E43, +0x7E44, 0x7E45, 0x7E46, 0x7E48, 0x7E49, 0x7E4A, 0x7E4B, 0x7E4C, +0x7E4D, 0x7E4E, 0x7E4F, 0x7E50, 0x7E51, 0x7E52, 0x7E53, 0x7E54, +0x7E55, 0x7E56, 0x7E57, 0x7E58, 0x7E59, 0x7E5A, 0x7E5B, 0x7E5C, +0x7E5D, 0x4FCA, 0x7AE3, 0x6D5A, 0x90E1, 0x9A8F, 0x5580, 0x5496, +0x5361, 0x54AF, 0x5F00, 0x63E9, 0x6977, 0x51EF, 0x6168, 0x520A, +0x582A, 0x52D8, 0x574E, 0x780D, 0x770B, 0x5EB7, 0x6177, 0x7CE0, +0x625B, 0x6297, 0x4EA2, 0x7095, 0x8003, 0x62F7, 0x70E4, 0x9760, +0x5777, 0x82DB, 0x67EF, 0x68F5, 0x78D5, 0x9897, 0x79D1, 0x58F3, +0x54B3, 0x53EF, 0x6E34, 0x514B, 0x523B, 0x5BA2, 0x8BFE, 0x80AF, +0x5543, 0x57A6, 0x6073, 0x5751, 0x542D, 0x7A7A, 0x6050, 0x5B54, +0x63A7, 0x62A0, 0x53E3, 0x6263, 0x5BC7, 0x67AF, 0x54ED, 0x7A9F, +0x82E6, 0x9177, 0x5E93, 0x88E4, 0x5938, 0x57AE, 0x630E, 0x8DE8, +0x80EF, 0x5757, 0x7B77, 0x4FA9, 0x5FEB, 0x5BBD, 0x6B3E, 0x5321, +0x7B50, 0x72C2, 0x6846, 0x77FF, 0x7736, 0x65F7, 0x51B5, 0x4E8F, +0x76D4, 0x5CBF, 0x7AA5, 0x8475, 0x594E, 0x9B41, 0x5080, 0, +0x7E5E, 0x7E5F, 0x7E60, 0x7E61, 0x7E62, 0x7E63, 0x7E64, 0x7E65, +0x7E66, 0x7E67, 0x7E68, 0x7E69, 0x7E6A, 0x7E6B, 0x7E6C, 0x7E6D, +0x7E6E, 0x7E6F, 0x7E70, 0x7E71, 0x7E72, 0x7E73, 0x7E74, 0x7E75, +0x7E76, 0x7E77, 0x7E78, 0x7E79, 0x7E7A, 0x7E7B, 0x7E7C, 0x7E7D, +0x7E7E, 0x7E7F, 0x7E80, 0x7E81, 0x7E83, 0x7E84, 0x7E85, 0x7E86, +0x7E87, 0x7E88, 0x7E89, 0x7E8A, 0x7E8B, 0x7E8C, 0x7E8D, 0x7E8E, +0x7E8F, 0x7E90, 0x7E91, 0x7E92, 0x7E93, 0x7E94, 0x7E95, 0x7E96, +0x7E97, 0x7E98, 0x7E99, 0x7E9A, 0x7E9C, 0x7E9D, 0x7E9E, 0, +0x7EAE, 0x7EB4, 0x7EBB, 0x7EBC, 0x7ED6, 0x7EE4, 0x7EEC, 0x7EF9, +0x7F0A, 0x7F10, 0x7F1E, 0x7F37, 0x7F39, 0x7F3B, 0x7F3C, 0x7F3D, +0x7F3E, 0x7F3F, 0x7F40, 0x7F41, 0x7F43, 0x7F46, 0x7F47, 0x7F48, +0x7F49, 0x7F4A, 0x7F4B, 0x7F4C, 0x7F4D, 0x7F4E, 0x7F4F, 0x7F52, +0x7F53, 0x9988, 0x6127, 0x6E83, 0x5764, 0x6606, 0x6346, 0x56F0, +0x62EC, 0x6269, 0x5ED3, 0x9614, 0x5783, 0x62C9, 0x5587, 0x8721, +0x814A, 0x8FA3, 0x5566, 0x83B1, 0x6765, 0x8D56, 0x84DD, 0x5A6A, +0x680F, 0x62E6, 0x7BEE, 0x9611, 0x5170, 0x6F9C, 0x8C30, 0x63FD, +0x89C8, 0x61D2, 0x7F06, 0x70C2, 0x6EE5, 0x7405, 0x6994, 0x72FC, +0x5ECA, 0x90CE, 0x6717, 0x6D6A, 0x635E, 0x52B3, 0x7262, 0x8001, +0x4F6C, 0x59E5, 0x916A, 0x70D9, 0x6D9D, 0x52D2, 0x4E50, 0x96F7, +0x956D, 0x857E, 0x78CA, 0x7D2F, 0x5121, 0x5792, 0x64C2, 0x808B, +0x7C7B, 0x6CEA, 0x68F1, 0x695E, 0x51B7, 0x5398, 0x68A8, 0x7281, +0x9ECE, 0x7BF1, 0x72F8, 0x79BB, 0x6F13, 0x7406, 0x674E, 0x91CC, +0x9CA4, 0x793C, 0x8389, 0x8354, 0x540F, 0x6817, 0x4E3D, 0x5389, +0x52B1, 0x783E, 0x5386, 0x5229, 0x5088, 0x4F8B, 0x4FD0, 0, +0x7F56, 0x7F59, 0x7F5B, 0x7F5C, 0x7F5D, 0x7F5E, 0x7F60, 0x7F63, +0x7F64, 0x7F65, 0x7F66, 0x7F67, 0x7F6B, 0x7F6C, 0x7F6D, 0x7F6F, +0x7F70, 0x7F73, 0x7F75, 0x7F76, 0x7F77, 0x7F78, 0x7F7A, 0x7F7B, +0x7F7C, 0x7F7D, 0x7F7F, 0x7F80, 0x7F82, 0x7F83, 0x7F84, 0x7F85, +0x7F86, 0x7F87, 0x7F88, 0x7F89, 0x7F8B, 0x7F8D, 0x7F8F, 0x7F90, +0x7F91, 0x7F92, 0x7F93, 0x7F95, 0x7F96, 0x7F97, 0x7F98, 0x7F99, +0x7F9B, 0x7F9C, 0x7FA0, 0x7FA2, 0x7FA3, 0x7FA5, 0x7FA6, 0x7FA8, +0x7FA9, 0x7FAA, 0x7FAB, 0x7FAC, 0x7FAD, 0x7FAE, 0x7FB1, 0, +0x7FB3, 0x7FB4, 0x7FB5, 0x7FB6, 0x7FB7, 0x7FBA, 0x7FBB, 0x7FBE, +0x7FC0, 0x7FC2, 0x7FC3, 0x7FC4, 0x7FC6, 0x7FC7, 0x7FC8, 0x7FC9, +0x7FCB, 0x7FCD, 0x7FCF, 0x7FD0, 0x7FD1, 0x7FD2, 0x7FD3, 0x7FD6, +0x7FD7, 0x7FD9, 0x7FDA, 0x7FDB, 0x7FDC, 0x7FDD, 0x7FDE, 0x7FE2, +0x7FE3, 0x75E2, 0x7ACB, 0x7C92, 0x6CA5, 0x96B6, 0x529B, 0x7483, +0x54E9, 0x4FE9, 0x8054, 0x83B2, 0x8FDE, 0x9570, 0x5EC9, 0x601C, +0x6D9F, 0x5E18, 0x655B, 0x8138, 0x94FE, 0x604B, 0x70BC, 0x7EC3, +0x7CAE, 0x51C9, 0x6881, 0x7CB1, 0x826F, 0x4E24, 0x8F86, 0x91CF, +0x667E, 0x4EAE, 0x8C05, 0x64A9, 0x804A, 0x50DA, 0x7597, 0x71CE, +0x5BE5, 0x8FBD, 0x6F66, 0x4E86, 0x6482, 0x9563, 0x5ED6, 0x6599, +0x5217, 0x88C2, 0x70C8, 0x52A3, 0x730E, 0x7433, 0x6797, 0x78F7, +0x9716, 0x4E34, 0x90BB, 0x9CDE, 0x6DCB, 0x51DB, 0x8D41, 0x541D, +0x62CE, 0x73B2, 0x83F1, 0x96F6, 0x9F84, 0x94C3, 0x4F36, 0x7F9A, +0x51CC, 0x7075, 0x9675, 0x5CAD, 0x9886, 0x53E6, 0x4EE4, 0x6E9C, +0x7409, 0x69B4, 0x786B, 0x998F, 0x7559, 0x5218, 0x7624, 0x6D41, +0x67F3, 0x516D, 0x9F99, 0x804B, 0x5499, 0x7B3C, 0x7ABF, 0, +0x7FE4, 0x7FE7, 0x7FE8, 0x7FEA, 0x7FEB, 0x7FEC, 0x7FED, 0x7FEF, +0x7FF2, 0x7FF4, 0x7FF5, 0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9, 0x7FFA, +0x7FFD, 0x7FFE, 0x7FFF, 0x8002, 0x8007, 0x8008, 0x8009, 0x800A, +0x800E, 0x800F, 0x8011, 0x8013, 0x801A, 0x801B, 0x801D, 0x801E, +0x801F, 0x8021, 0x8023, 0x8024, 0x802B, 0x802C, 0x802D, 0x802E, +0x802F, 0x8030, 0x8032, 0x8034, 0x8039, 0x803A, 0x803C, 0x803E, +0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804E, +0x804F, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0, +0x8059, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, +0x8062, 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806B, +0x806C, 0x806D, 0x806E, 0x806F, 0x8070, 0x8072, 0x8073, 0x8074, +0x8075, 0x8076, 0x8077, 0x8078, 0x8079, 0x807A, 0x807B, 0x807C, +0x807D, 0x9686, 0x5784, 0x62E2, 0x9647, 0x697C, 0x5A04, 0x6402, +0x7BD3, 0x6F0F, 0x964B, 0x82A6, 0x5362, 0x9885, 0x5E90, 0x7089, +0x63B3, 0x5364, 0x864F, 0x9C81, 0x9E93, 0x788C, 0x9732, 0x8DEF, +0x8D42, 0x9E7F, 0x6F5E, 0x7984, 0x5F55, 0x9646, 0x622E, 0x9A74, +0x5415, 0x94DD, 0x4FA3, 0x65C5, 0x5C65, 0x5C61, 0x7F15, 0x8651, +0x6C2F, 0x5F8B, 0x7387, 0x6EE4, 0x7EFF, 0x5CE6, 0x631B, 0x5B6A, +0x6EE6, 0x5375, 0x4E71, 0x63A0, 0x7565, 0x62A1, 0x8F6E, 0x4F26, +0x4ED1, 0x6CA6, 0x7EB6, 0x8BBA, 0x841D, 0x87BA, 0x7F57, 0x903B, +0x9523, 0x7BA9, 0x9AA1, 0x88F8, 0x843D, 0x6D1B, 0x9A86, 0x7EDC, +0x5988, 0x9EBB, 0x739B, 0x7801, 0x8682, 0x9A6C, 0x9A82, 0x561B, +0x5417, 0x57CB, 0x4E70, 0x9EA6, 0x5356, 0x8FC8, 0x8109, 0x7792, +0x9992, 0x86EE, 0x6EE1, 0x8513, 0x66FC, 0x6162, 0x6F2B, 0, +0x807E, 0x8081, 0x8082, 0x8085, 0x8088, 0x808A, 0x808D, 0x808E, +0x808F, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, +0x809E, 0x80A3, 0x80A6, 0x80A7, 0x80A8, 0x80AC, 0x80B0, 0x80B3, +0x80B5, 0x80B6, 0x80B8, 0x80B9, 0x80BB, 0x80C5, 0x80C7, 0x80C8, +0x80C9, 0x80CA, 0x80CB, 0x80CF, 0x80D0, 0x80D1, 0x80D2, 0x80D3, +0x80D4, 0x80D5, 0x80D8, 0x80DF, 0x80E0, 0x80E2, 0x80E3, 0x80E6, +0x80EE, 0x80F5, 0x80F7, 0x80F9, 0x80FB, 0x80FE, 0x80FF, 0x8100, +0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810B, 0, +0x810C, 0x8115, 0x8117, 0x8119, 0x811B, 0x811C, 0x811D, 0x811F, +0x8120, 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, +0x8128, 0x8129, 0x812A, 0x812B, 0x812D, 0x812E, 0x8130, 0x8133, +0x8134, 0x8135, 0x8137, 0x8139, 0x813A, 0x813B, 0x813C, 0x813D, +0x813F, 0x8C29, 0x8292, 0x832B, 0x76F2, 0x6C13, 0x5FD9, 0x83BD, +0x732B, 0x8305, 0x951A, 0x6BDB, 0x77DB, 0x94C6, 0x536F, 0x8302, +0x5192, 0x5E3D, 0x8C8C, 0x8D38, 0x4E48, 0x73AB, 0x679A, 0x6885, +0x9176, 0x9709, 0x7164, 0x6CA1, 0x7709, 0x5A92, 0x9541, 0x6BCF, +0x7F8E, 0x6627, 0x5BD0, 0x59B9, 0x5A9A, 0x95E8, 0x95F7, 0x4EEC, +0x840C, 0x8499, 0x6AAC, 0x76DF, 0x9530, 0x731B, 0x68A6, 0x5B5F, +0x772F, 0x919A, 0x9761, 0x7CDC, 0x8FF7, 0x8C1C, 0x5F25, 0x7C73, +0x79D8, 0x89C5, 0x6CCC, 0x871C, 0x5BC6, 0x5E42, 0x68C9, 0x7720, +0x7EF5, 0x5195, 0x514D, 0x52C9, 0x5A29, 0x7F05, 0x9762, 0x82D7, +0x63CF, 0x7784, 0x85D0, 0x79D2, 0x6E3A, 0x5E99, 0x5999, 0x8511, +0x706D, 0x6C11, 0x62BF, 0x76BF, 0x654F, 0x60AF, 0x95FD, 0x660E, +0x879F, 0x9E23, 0x94ED, 0x540D, 0x547D, 0x8C2C, 0x6478, 0, +0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, +0x814D, 0x814E, 0x814F, 0x8152, 0x8156, 0x8157, 0x8158, 0x815B, +0x815C, 0x815D, 0x815E, 0x815F, 0x8161, 0x8162, 0x8163, 0x8164, +0x8166, 0x8168, 0x816A, 0x816B, 0x816C, 0x816F, 0x8172, 0x8173, +0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, +0x8186, 0x8187, 0x8189, 0x818B, 0x818C, 0x818D, 0x818E, 0x8190, +0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819A, +0x819E, 0x819F, 0x81A0, 0x81A1, 0x81A2, 0x81A4, 0x81A5, 0, +0x81A7, 0x81A9, 0x81AB, 0x81AC, 0x81AD, 0x81AE, 0x81AF, 0x81B0, +0x81B1, 0x81B2, 0x81B4, 0x81B5, 0x81B6, 0x81B7, 0x81B8, 0x81B9, +0x81BC, 0x81BD, 0x81BE, 0x81BF, 0x81C4, 0x81C5, 0x81C7, 0x81C8, +0x81C9, 0x81CB, 0x81CD, 0x81CE, 0x81CF, 0x81D0, 0x81D1, 0x81D2, +0x81D3, 0x6479, 0x8611, 0x6A21, 0x819C, 0x78E8, 0x6469, 0x9B54, +0x62B9, 0x672B, 0x83AB, 0x58A8, 0x9ED8, 0x6CAB, 0x6F20, 0x5BDE, +0x964C, 0x8C0B, 0x725F, 0x67D0, 0x62C7, 0x7261, 0x4EA9, 0x59C6, +0x6BCD, 0x5893, 0x66AE, 0x5E55, 0x52DF, 0x6155, 0x6728, 0x76EE, +0x7766, 0x7267, 0x7A46, 0x62FF, 0x54EA, 0x5450, 0x94A0, 0x90A3, +0x5A1C, 0x7EB3, 0x6C16, 0x4E43, 0x5976, 0x8010, 0x5948, 0x5357, +0x7537, 0x96BE, 0x56CA, 0x6320, 0x8111, 0x607C, 0x95F9, 0x6DD6, +0x5462, 0x9981, 0x5185, 0x5AE9, 0x80FD, 0x59AE, 0x9713, 0x502A, +0x6CE5, 0x5C3C, 0x62DF, 0x4F60, 0x533F, 0x817B, 0x9006, 0x6EBA, +0x852B, 0x62C8, 0x5E74, 0x78BE, 0x64B5, 0x637B, 0x5FF5, 0x5A18, +0x917F, 0x9E1F, 0x5C3F, 0x634F, 0x8042, 0x5B7D, 0x556E, 0x954A, +0x954D, 0x6D85, 0x60A8, 0x67E0, 0x72DE, 0x51DD, 0x5B81, 0, +0x81D4, 0x81D5, 0x81D6, 0x81D7, 0x81D8, 0x81D9, 0x81DA, 0x81DB, +0x81DC, 0x81DD, 0x81DE, 0x81DF, 0x81E0, 0x81E1, 0x81E2, 0x81E4, +0x81E5, 0x81E6, 0x81E8, 0x81E9, 0x81EB, 0x81EE, 0x81EF, 0x81F0, +0x81F1, 0x81F2, 0x81F5, 0x81F6, 0x81F7, 0x81F8, 0x81F9, 0x81FA, +0x81FD, 0x81FF, 0x8203, 0x8207, 0x8208, 0x8209, 0x820A, 0x820B, +0x820E, 0x820F, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, +0x8219, 0x821A, 0x821D, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, +0x8229, 0x822E, 0x8232, 0x823A, 0x823C, 0x823D, 0x823F, 0, +0x8240, 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824A, +0x824C, 0x824D, 0x824E, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, +0x8255, 0x8256, 0x8257, 0x8259, 0x825B, 0x825C, 0x825D, 0x825E, +0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, +0x8269, 0x62E7, 0x6CDE, 0x725B, 0x626D, 0x94AE, 0x7EBD, 0x8113, +0x6D53, 0x519C, 0x5F04, 0x5974, 0x52AA, 0x6012, 0x5973, 0x6696, +0x8650, 0x759F, 0x632A, 0x61E6, 0x7CEF, 0x8BFA, 0x54E6, 0x6B27, +0x9E25, 0x6BB4, 0x85D5, 0x5455, 0x5076, 0x6CA4, 0x556A, 0x8DB4, +0x722C, 0x5E15, 0x6015, 0x7436, 0x62CD, 0x6392, 0x724C, 0x5F98, +0x6E43, 0x6D3E, 0x6500, 0x6F58, 0x76D8, 0x78D0, 0x76FC, 0x7554, +0x5224, 0x53DB, 0x4E53, 0x5E9E, 0x65C1, 0x802A, 0x80D6, 0x629B, +0x5486, 0x5228, 0x70AE, 0x888D, 0x8DD1, 0x6CE1, 0x5478, 0x80DA, +0x57F9, 0x88F4, 0x8D54, 0x966A, 0x914D, 0x4F69, 0x6C9B, 0x55B7, +0x76C6, 0x7830, 0x62A8, 0x70F9, 0x6F8E, 0x5F6D, 0x84EC, 0x68DA, +0x787C, 0x7BF7, 0x81A8, 0x670B, 0x9E4F, 0x6367, 0x78B0, 0x576F, +0x7812, 0x9739, 0x6279, 0x62AB, 0x5288, 0x7435, 0x6BD7, 0, +0x826A, 0x826B, 0x826C, 0x826D, 0x8271, 0x8275, 0x8276, 0x8277, +0x8278, 0x827B, 0x827C, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, +0x8287, 0x8289, 0x828C, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, +0x829A, 0x829B, 0x829E, 0x82A0, 0x82A2, 0x82A3, 0x82A7, 0x82B2, +0x82B5, 0x82B6, 0x82BA, 0x82BB, 0x82BC, 0x82BF, 0x82C0, 0x82C2, +0x82C3, 0x82C5, 0x82C6, 0x82C9, 0x82D0, 0x82D6, 0x82D9, 0x82DA, +0x82DD, 0x82E2, 0x82E7, 0x82E8, 0x82E9, 0x82EA, 0x82EC, 0x82ED, +0x82EE, 0x82F0, 0x82F2, 0x82F3, 0x82F5, 0x82F6, 0x82F8, 0, +0x82FA, 0x82FC, 0x82FD, 0x82FE, 0x82FF, 0x8300, 0x830A, 0x830B, +0x830D, 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831D, +0x831E, 0x831F, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, +0x8326, 0x8329, 0x832A, 0x832E, 0x8330, 0x8332, 0x8337, 0x833B, +0x833D, 0x5564, 0x813E, 0x75B2, 0x76AE, 0x5339, 0x75DE, 0x50FB, +0x5C41, 0x8B6C, 0x7BC7, 0x504F, 0x7247, 0x9A97, 0x98D8, 0x6F02, +0x74E2, 0x7968, 0x6487, 0x77A5, 0x62FC, 0x9891, 0x8D2B, 0x54C1, +0x8058, 0x4E52, 0x576A, 0x82F9, 0x840D, 0x5E73, 0x51ED, 0x74F6, +0x8BC4, 0x5C4F, 0x5761, 0x6CFC, 0x9887, 0x5A46, 0x7834, 0x9B44, +0x8FEB, 0x7C95, 0x5256, 0x6251, 0x94FA, 0x4EC6, 0x8386, 0x8461, +0x83E9, 0x84B2, 0x57D4, 0x6734, 0x5703, 0x666E, 0x6D66, 0x8C31, +0x66DD, 0x7011, 0x671F, 0x6B3A, 0x6816, 0x621A, 0x59BB, 0x4E03, +0x51C4, 0x6F06, 0x67D2, 0x6C8F, 0x5176, 0x68CB, 0x5947, 0x6B67, +0x7566, 0x5D0E, 0x8110, 0x9F50, 0x65D7, 0x7948, 0x7941, 0x9A91, +0x8D77, 0x5C82, 0x4E5E, 0x4F01, 0x542F, 0x5951, 0x780C, 0x5668, +0x6C14, 0x8FC4, 0x5F03, 0x6C7D, 0x6CE3, 0x8BAB, 0x6390, 0, +0x833E, 0x833F, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834A, +0x834B, 0x834C, 0x834D, 0x834E, 0x8353, 0x8355, 0x8356, 0x8357, +0x8358, 0x8359, 0x835D, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, +0x8374, 0x8375, 0x8376, 0x8379, 0x837A, 0x837E, 0x837F, 0x8380, +0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838A, 0x838B, +0x838C, 0x838D, 0x838F, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, +0x8397, 0x8399, 0x839A, 0x839D, 0x839F, 0x83A1, 0x83A2, 0x83A3, +0x83A4, 0x83A5, 0x83A6, 0x83A7, 0x83AC, 0x83AD, 0x83AE, 0, +0x83AF, 0x83B5, 0x83BB, 0x83BE, 0x83BF, 0x83C2, 0x83C3, 0x83C4, +0x83C6, 0x83C8, 0x83C9, 0x83CB, 0x83CD, 0x83CE, 0x83D0, 0x83D1, +0x83D2, 0x83D3, 0x83D5, 0x83D7, 0x83D9, 0x83DA, 0x83DB, 0x83DE, +0x83E2, 0x83E3, 0x83E4, 0x83E6, 0x83E7, 0x83E8, 0x83EB, 0x83EC, +0x83ED, 0x6070, 0x6D3D, 0x7275, 0x6266, 0x948E, 0x94C5, 0x5343, +0x8FC1, 0x7B7E, 0x4EDF, 0x8C26, 0x4E7E, 0x9ED4, 0x94B1, 0x94B3, +0x524D, 0x6F5C, 0x9063, 0x6D45, 0x8C34, 0x5811, 0x5D4C, 0x6B20, +0x6B49, 0x67AA, 0x545B, 0x8154, 0x7F8C, 0x5899, 0x8537, 0x5F3A, +0x62A2, 0x6A47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77A7, 0x4E54, +0x4FA8, 0x5DE7, 0x9798, 0x64AC, 0x7FD8, 0x5CED, 0x4FCF, 0x7A8D, +0x5207, 0x8304, 0x4E14, 0x602F, 0x7A83, 0x94A6, 0x4FB5, 0x4EB2, +0x79E6, 0x7434, 0x52E4, 0x82B9, 0x64D2, 0x79BD, 0x5BDD, 0x6C81, +0x9752, 0x8F7B, 0x6C22, 0x503E, 0x537F, 0x6E05, 0x64CE, 0x6674, +0x6C30, 0x60C5, 0x9877, 0x8BF7, 0x5E86, 0x743C, 0x7A77, 0x79CB, +0x4E18, 0x90B1, 0x7403, 0x6C42, 0x56DA, 0x914B, 0x6CC5, 0x8D8B, +0x533A, 0x86C6, 0x66F2, 0x8EAF, 0x5C48, 0x9A71, 0x6E20, 0, +0x83EE, 0x83EF, 0x83F3, 0x83F4, 0x83F5, 0x83F6, 0x83F7, 0x83FA, +0x83FB, 0x83FC, 0x83FE, 0x83FF, 0x8400, 0x8402, 0x8405, 0x8407, +0x8408, 0x8409, 0x840A, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, +0x8416, 0x8417, 0x8419, 0x841A, 0x841B, 0x841E, 0x841F, 0x8420, +0x8421, 0x8422, 0x8423, 0x8429, 0x842A, 0x842B, 0x842C, 0x842D, +0x842E, 0x842F, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, +0x8437, 0x8439, 0x843A, 0x843B, 0x843E, 0x843F, 0x8440, 0x8441, +0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0, +0x844A, 0x844B, 0x844C, 0x844D, 0x844E, 0x844F, 0x8450, 0x8452, +0x8453, 0x8454, 0x8455, 0x8456, 0x8458, 0x845D, 0x845E, 0x845F, +0x8460, 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846A, +0x846E, 0x846F, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847B, +0x847C, 0x53D6, 0x5A36, 0x9F8B, 0x8DA3, 0x53BB, 0x5708, 0x98A7, +0x6743, 0x919B, 0x6CC9, 0x5168, 0x75CA, 0x62F3, 0x72AC, 0x5238, +0x529D, 0x7F3A, 0x7094, 0x7638, 0x5374, 0x9E4A, 0x69B7, 0x786E, +0x96C0, 0x88D9, 0x7FA4, 0x7136, 0x71C3, 0x5189, 0x67D3, 0x74E4, +0x58E4, 0x6518, 0x56B7, 0x8BA9, 0x9976, 0x6270, 0x7ED5, 0x60F9, +0x70ED, 0x58EC, 0x4EC1, 0x4EBA, 0x5FCD, 0x97E7, 0x4EFB, 0x8BA4, +0x5203, 0x598A, 0x7EAB, 0x6254, 0x4ECD, 0x65E5, 0x620E, 0x8338, +0x84C9, 0x8363, 0x878D, 0x7194, 0x6EB6, 0x5BB9, 0x7ED2, 0x5197, +0x63C9, 0x67D4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5B7A, 0x5982, +0x8FB1, 0x4E73, 0x6C5D, 0x5165, 0x8925, 0x8F6F, 0x962E, 0x854A, +0x745E, 0x9510, 0x95F0, 0x6DA6, 0x82E5, 0x5F31, 0x6492, 0x6D12, +0x8428, 0x816E, 0x9CC3, 0x585E, 0x8D5B, 0x4E09, 0x53C1, 0, +0x847D, 0x847E, 0x847F, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, +0x8486, 0x848A, 0x848D, 0x848F, 0x8490, 0x8491, 0x8492, 0x8493, +0x8494, 0x8495, 0x8496, 0x8498, 0x849A, 0x849B, 0x849D, 0x849E, +0x849F, 0x84A0, 0x84A2, 0x84A3, 0x84A4, 0x84A5, 0x84A6, 0x84A7, +0x84A8, 0x84A9, 0x84AA, 0x84AB, 0x84AC, 0x84AD, 0x84AE, 0x84B0, +0x84B1, 0x84B3, 0x84B5, 0x84B6, 0x84B7, 0x84BB, 0x84BC, 0x84BE, +0x84C0, 0x84C2, 0x84C3, 0x84C5, 0x84C6, 0x84C7, 0x84C8, 0x84CB, +0x84CC, 0x84CE, 0x84CF, 0x84D2, 0x84D4, 0x84D5, 0x84D7, 0, +0x84D8, 0x84D9, 0x84DA, 0x84DB, 0x84DC, 0x84DE, 0x84E1, 0x84E2, +0x84E4, 0x84E7, 0x84E8, 0x84E9, 0x84EA, 0x84EB, 0x84ED, 0x84EE, +0x84EF, 0x84F1, 0x84F2, 0x84F3, 0x84F4, 0x84F5, 0x84F6, 0x84F7, +0x84F8, 0x84F9, 0x84FA, 0x84FB, 0x84FD, 0x84FE, 0x8500, 0x8501, +0x8502, 0x4F1E, 0x6563, 0x6851, 0x55D3, 0x4E27, 0x6414, 0x9A9A, +0x626B, 0x5AC2, 0x745F, 0x8272, 0x6DA9, 0x68EE, 0x50E7, 0x838E, +0x7802, 0x6740, 0x5239, 0x6C99, 0x7EB1, 0x50BB, 0x5565, 0x715E, +0x7B5B, 0x6652, 0x73CA, 0x82EB, 0x6749, 0x5C71, 0x5220, 0x717D, +0x886B, 0x95EA, 0x9655, 0x64C5, 0x8D61, 0x81B3, 0x5584, 0x6C55, +0x6247, 0x7F2E, 0x5892, 0x4F24, 0x5546, 0x8D4F, 0x664C, 0x4E0A, +0x5C1A, 0x88F3, 0x68A2, 0x634E, 0x7A0D, 0x70E7, 0x828D, 0x52FA, +0x97F6, 0x5C11, 0x54E8, 0x90B5, 0x7ECD, 0x5962, 0x8D4A, 0x86C7, +0x820C, 0x820D, 0x8D66, 0x6444, 0x5C04, 0x6151, 0x6D89, 0x793E, +0x8BBE, 0x7837, 0x7533, 0x547B, 0x4F38, 0x8EAB, 0x6DF1, 0x5A20, +0x7EC5, 0x795E, 0x6C88, 0x5BA1, 0x5A76, 0x751A, 0x80BE, 0x614E, +0x6E17, 0x58F0, 0x751F, 0x7525, 0x7272, 0x5347, 0x7EF3, 0, +0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850A, +0x850B, 0x850D, 0x850E, 0x850F, 0x8510, 0x8512, 0x8514, 0x8515, +0x8516, 0x8518, 0x8519, 0x851B, 0x851C, 0x851D, 0x851E, 0x8520, +0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, +0x852A, 0x852D, 0x852E, 0x852F, 0x8530, 0x8531, 0x8532, 0x8533, +0x8534, 0x8535, 0x8536, 0x853E, 0x853F, 0x8540, 0x8541, 0x8542, +0x8544, 0x8545, 0x8546, 0x8547, 0x854B, 0x854C, 0x854D, 0x854E, +0x854F, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0, +0x8557, 0x8558, 0x855A, 0x855B, 0x855C, 0x855D, 0x855F, 0x8560, +0x8561, 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856A, +0x856B, 0x856C, 0x856D, 0x856E, 0x856F, 0x8570, 0x8571, 0x8573, +0x8575, 0x8576, 0x8577, 0x8578, 0x857C, 0x857D, 0x857F, 0x8580, +0x8581, 0x7701, 0x76DB, 0x5269, 0x80DC, 0x5723, 0x5E08, 0x5931, +0x72EE, 0x65BD, 0x6E7F, 0x8BD7, 0x5C38, 0x8671, 0x5341, 0x77F3, +0x62FE, 0x65F6, 0x4EC0, 0x98DF, 0x8680, 0x5B9E, 0x8BC6, 0x53F2, +0x77E2, 0x4F7F, 0x5C4E, 0x9A76, 0x59CB, 0x5F0F, 0x793A, 0x58EB, +0x4E16, 0x67FF, 0x4E8B, 0x62ED, 0x8A93, 0x901D, 0x52BF, 0x662F, +0x55DC, 0x566C, 0x9002, 0x4ED5, 0x4F8D, 0x91CA, 0x9970, 0x6C0F, +0x5E02, 0x6043, 0x5BA4, 0x89C6, 0x8BD5, 0x6536, 0x624B, 0x9996, +0x5B88, 0x5BFF, 0x6388, 0x552E, 0x53D7, 0x7626, 0x517D, 0x852C, +0x67A2, 0x68B3, 0x6B8A, 0x6292, 0x8F93, 0x53D4, 0x8212, 0x6DD1, +0x758F, 0x4E66, 0x8D4E, 0x5B70, 0x719F, 0x85AF, 0x6691, 0x66D9, +0x7F72, 0x8700, 0x9ECD, 0x9F20, 0x5C5E, 0x672F, 0x8FF0, 0x6811, +0x675F, 0x620D, 0x7AD6, 0x5885, 0x5EB6, 0x6570, 0x6F31, 0, +0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858A, 0x858B, 0x858C, +0x858D, 0x858E, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, +0x8596, 0x8597, 0x8598, 0x8599, 0x859A, 0x859D, 0x859E, 0x859F, +0x85A0, 0x85A1, 0x85A2, 0x85A3, 0x85A5, 0x85A6, 0x85A7, 0x85A9, +0x85AB, 0x85AC, 0x85AD, 0x85B1, 0x85B2, 0x85B3, 0x85B4, 0x85B5, +0x85B6, 0x85B8, 0x85BA, 0x85BB, 0x85BC, 0x85BD, 0x85BE, 0x85BF, +0x85C0, 0x85C2, 0x85C3, 0x85C4, 0x85C5, 0x85C6, 0x85C7, 0x85C8, +0x85CA, 0x85CB, 0x85CC, 0x85CD, 0x85CE, 0x85D1, 0x85D2, 0, +0x85D4, 0x85D6, 0x85D7, 0x85D8, 0x85D9, 0x85DA, 0x85DB, 0x85DD, +0x85DE, 0x85DF, 0x85E0, 0x85E1, 0x85E2, 0x85E3, 0x85E5, 0x85E6, +0x85E7, 0x85E8, 0x85EA, 0x85EB, 0x85EC, 0x85ED, 0x85EE, 0x85EF, +0x85F0, 0x85F1, 0x85F2, 0x85F3, 0x85F4, 0x85F5, 0x85F6, 0x85F7, +0x85F8, 0x6055, 0x5237, 0x800D, 0x6454, 0x8870, 0x7529, 0x5E05, +0x6813, 0x62F4, 0x971C, 0x53CC, 0x723D, 0x8C01, 0x6C34, 0x7761, +0x7A0E, 0x542E, 0x77AC, 0x987A, 0x821C, 0x8BF4, 0x7855, 0x6714, +0x70C1, 0x65AF, 0x6495, 0x5636, 0x601D, 0x79C1, 0x53F8, 0x4E1D, +0x6B7B, 0x8086, 0x5BFA, 0x55E3, 0x56DB, 0x4F3A, 0x4F3C, 0x9972, +0x5DF3, 0x677E, 0x8038, 0x6002, 0x9882, 0x9001, 0x5B8B, 0x8BBC, +0x8BF5, 0x641C, 0x8258, 0x64DE, 0x55FD, 0x82CF, 0x9165, 0x4FD7, +0x7D20, 0x901F, 0x7C9F, 0x50F3, 0x5851, 0x6EAF, 0x5BBF, 0x8BC9, +0x8083, 0x9178, 0x849C, 0x7B97, 0x867D, 0x968B, 0x968F, 0x7EE5, +0x9AD3, 0x788E, 0x5C81, 0x7A57, 0x9042, 0x96A7, 0x795F, 0x5B59, +0x635F, 0x7B0B, 0x84D1, 0x68AD, 0x5506, 0x7F29, 0x7410, 0x7D22, +0x9501, 0x6240, 0x584C, 0x4ED6, 0x5B83, 0x5979, 0x5854, 0, +0x85F9, 0x85FA, 0x85FC, 0x85FD, 0x85FE, 0x8600, 0x8601, 0x8602, +0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860A, 0x860B, +0x860C, 0x860D, 0x860E, 0x860F, 0x8610, 0x8612, 0x8613, 0x8614, +0x8615, 0x8617, 0x8618, 0x8619, 0x861A, 0x861B, 0x861C, 0x861D, +0x861E, 0x861F, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, +0x8626, 0x8628, 0x862A, 0x862B, 0x862C, 0x862D, 0x862E, 0x862F, +0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, +0x8639, 0x863A, 0x863B, 0x863D, 0x863E, 0x863F, 0x8640, 0, +0x8641, 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, +0x8649, 0x864A, 0x864B, 0x864C, 0x8652, 0x8653, 0x8655, 0x8656, +0x8657, 0x8658, 0x8659, 0x865B, 0x865C, 0x865D, 0x865F, 0x8660, +0x8661, 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, +0x866A, 0x736D, 0x631E, 0x8E4B, 0x8E0F, 0x80CE, 0x82D4, 0x62AC, +0x53F0, 0x6CF0, 0x915E, 0x592A, 0x6001, 0x6C70, 0x574D, 0x644A, +0x8D2A, 0x762B, 0x6EE9, 0x575B, 0x6A80, 0x75F0, 0x6F6D, 0x8C2D, +0x8C08, 0x5766, 0x6BEF, 0x8892, 0x78B3, 0x63A2, 0x53F9, 0x70AD, +0x6C64, 0x5858, 0x642A, 0x5802, 0x68E0, 0x819B, 0x5510, 0x7CD6, +0x5018, 0x8EBA, 0x6DCC, 0x8D9F, 0x70EB, 0x638F, 0x6D9B, 0x6ED4, +0x7EE6, 0x8404, 0x6843, 0x9003, 0x6DD8, 0x9676, 0x8BA8, 0x5957, +0x7279, 0x85E4, 0x817E, 0x75BC, 0x8A8A, 0x68AF, 0x5254, 0x8E22, +0x9511, 0x63D0, 0x9898, 0x8E44, 0x557C, 0x4F53, 0x66FF, 0x568F, +0x60D5, 0x6D95, 0x5243, 0x5C49, 0x5929, 0x6DFB, 0x586B, 0x7530, +0x751C, 0x606C, 0x8214, 0x8146, 0x6311, 0x6761, 0x8FE2, 0x773A, +0x8DF3, 0x8D34, 0x94C1, 0x5E16, 0x5385, 0x542C, 0x70C3, 0, +0x866D, 0x866F, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, +0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, +0x8689, 0x868E, 0x868F, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, +0x8697, 0x8698, 0x8699, 0x869A, 0x869B, 0x869E, 0x869F, 0x86A0, +0x86A1, 0x86A2, 0x86A5, 0x86A6, 0x86AB, 0x86AD, 0x86AE, 0x86B2, +0x86B3, 0x86B7, 0x86B8, 0x86B9, 0x86BB, 0x86BC, 0x86BD, 0x86BE, +0x86BF, 0x86C1, 0x86C2, 0x86C3, 0x86C5, 0x86C8, 0x86CC, 0x86CD, +0x86D2, 0x86D3, 0x86D5, 0x86D6, 0x86D7, 0x86DA, 0x86DC, 0, +0x86DD, 0x86E0, 0x86E1, 0x86E2, 0x86E3, 0x86E5, 0x86E6, 0x86E7, +0x86E8, 0x86EA, 0x86EB, 0x86EC, 0x86EF, 0x86F5, 0x86F6, 0x86F7, +0x86FA, 0x86FB, 0x86FC, 0x86FD, 0x86FF, 0x8701, 0x8704, 0x8705, +0x8706, 0x870B, 0x870C, 0x870E, 0x870F, 0x8710, 0x8711, 0x8714, +0x8716, 0x6C40, 0x5EF7, 0x505C, 0x4EAD, 0x5EAD, 0x633A, 0x8247, +0x901A, 0x6850, 0x916E, 0x77B3, 0x540C, 0x94DC, 0x5F64, 0x7AE5, +0x6876, 0x6345, 0x7B52, 0x7EDF, 0x75DB, 0x5077, 0x6295, 0x5934, +0x900F, 0x51F8, 0x79C3, 0x7A81, 0x56FE, 0x5F92, 0x9014, 0x6D82, +0x5C60, 0x571F, 0x5410, 0x5154, 0x6E4D, 0x56E2, 0x63A8, 0x9893, +0x817F, 0x8715, 0x892A, 0x9000, 0x541E, 0x5C6F, 0x81C0, 0x62D6, +0x6258, 0x8131, 0x9E35, 0x9640, 0x9A6E, 0x9A7C, 0x692D, 0x59A5, +0x62D3, 0x553E, 0x6316, 0x54C7, 0x86D9, 0x6D3C, 0x5A03, 0x74E6, +0x889C, 0x6B6A, 0x5916, 0x8C4C, 0x5F2F, 0x6E7E, 0x73A9, 0x987D, +0x4E38, 0x70F7, 0x5B8C, 0x7897, 0x633D, 0x665A, 0x7696, 0x60CB, +0x5B9B, 0x5A49, 0x4E07, 0x8155, 0x6C6A, 0x738B, 0x4EA1, 0x6789, +0x7F51, 0x5F80, 0x65FA, 0x671B, 0x5FD8, 0x5984, 0x5A01, 0, +0x8719, 0x871B, 0x871D, 0x871F, 0x8720, 0x8724, 0x8726, 0x8727, +0x8728, 0x872A, 0x872B, 0x872C, 0x872D, 0x872F, 0x8730, 0x8732, +0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873A, 0x873C, 0x873D, +0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874A, +0x874B, 0x874D, 0x874F, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, +0x8756, 0x8758, 0x875A, 0x875B, 0x875C, 0x875D, 0x875E, 0x875F, +0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876A, 0x876B, +0x876C, 0x876D, 0x876F, 0x8771, 0x8772, 0x8773, 0x8775, 0, +0x8777, 0x8778, 0x8779, 0x877A, 0x877F, 0x8780, 0x8781, 0x8784, +0x8786, 0x8787, 0x8789, 0x878A, 0x878C, 0x878E, 0x878F, 0x8790, +0x8791, 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879A, +0x879B, 0x879C, 0x879D, 0x879E, 0x87A0, 0x87A1, 0x87A2, 0x87A3, +0x87A4, 0x5DCD, 0x5FAE, 0x5371, 0x97E6, 0x8FDD, 0x6845, 0x56F4, +0x552F, 0x60DF, 0x4E3A, 0x6F4D, 0x7EF4, 0x82C7, 0x840E, 0x59D4, +0x4F1F, 0x4F2A, 0x5C3E, 0x7EAC, 0x672A, 0x851A, 0x5473, 0x754F, +0x80C3, 0x5582, 0x9B4F, 0x4F4D, 0x6E2D, 0x8C13, 0x5C09, 0x6170, +0x536B, 0x761F, 0x6E29, 0x868A, 0x6587, 0x95FB, 0x7EB9, 0x543B, +0x7A33, 0x7D0A, 0x95EE, 0x55E1, 0x7FC1, 0x74EE, 0x631D, 0x8717, +0x6DA1, 0x7A9D, 0x6211, 0x65A1, 0x5367, 0x63E1, 0x6C83, 0x5DEB, +0x545C, 0x94A8, 0x4E4C, 0x6C61, 0x8BEC, 0x5C4B, 0x65E0, 0x829C, +0x68A7, 0x543E, 0x5434, 0x6BCB, 0x6B66, 0x4E94, 0x6342, 0x5348, +0x821E, 0x4F0D, 0x4FAE, 0x575E, 0x620A, 0x96FE, 0x6664, 0x7269, +0x52FF, 0x52A1, 0x609F, 0x8BEF, 0x6614, 0x7199, 0x6790, 0x897F, +0x7852, 0x77FD, 0x6670, 0x563B, 0x5438, 0x9521, 0x727A, 0, +0x87A5, 0x87A6, 0x87A7, 0x87A9, 0x87AA, 0x87AE, 0x87B0, 0x87B1, +0x87B2, 0x87B4, 0x87B6, 0x87B7, 0x87B8, 0x87B9, 0x87BB, 0x87BC, +0x87BE, 0x87BF, 0x87C1, 0x87C2, 0x87C3, 0x87C4, 0x87C5, 0x87C7, +0x87C8, 0x87C9, 0x87CC, 0x87CD, 0x87CE, 0x87CF, 0x87D0, 0x87D4, +0x87D5, 0x87D6, 0x87D7, 0x87D8, 0x87D9, 0x87DA, 0x87DC, 0x87DD, +0x87DE, 0x87DF, 0x87E1, 0x87E2, 0x87E3, 0x87E4, 0x87E6, 0x87E7, +0x87E8, 0x87E9, 0x87EB, 0x87EC, 0x87ED, 0x87EF, 0x87F0, 0x87F1, +0x87F2, 0x87F3, 0x87F4, 0x87F5, 0x87F6, 0x87F7, 0x87F8, 0, +0x87FA, 0x87FB, 0x87FC, 0x87FD, 0x87FF, 0x8800, 0x8801, 0x8802, +0x8804, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880B, 0x880C, +0x880D, 0x880E, 0x880F, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, +0x8818, 0x8819, 0x881A, 0x881C, 0x881D, 0x881E, 0x881F, 0x8820, +0x8823, 0x7A00, 0x606F, 0x5E0C, 0x6089, 0x819D, 0x5915, 0x60DC, +0x7184, 0x70EF, 0x6EAA, 0x6C50, 0x7280, 0x6A84, 0x88AD, 0x5E2D, +0x4E60, 0x5AB3, 0x559C, 0x94E3, 0x6D17, 0x7CFB, 0x9699, 0x620F, +0x7EC6, 0x778E, 0x867E, 0x5323, 0x971E, 0x8F96, 0x6687, 0x5CE1, +0x4FA0, 0x72ED, 0x4E0B, 0x53A6, 0x590F, 0x5413, 0x6380, 0x9528, +0x5148, 0x4ED9, 0x9C9C, 0x7EA4, 0x54B8, 0x8D24, 0x8854, 0x8237, +0x95F2, 0x6D8E, 0x5F26, 0x5ACC, 0x663E, 0x9669, 0x73B0, 0x732E, +0x53BF, 0x817A, 0x9985, 0x7FA1, 0x5BAA, 0x9677, 0x9650, 0x7EBF, +0x76F8, 0x53A2, 0x9576, 0x9999, 0x7BB1, 0x8944, 0x6E58, 0x4E61, +0x7FD4, 0x7965, 0x8BE6, 0x60F3, 0x54CD, 0x4EAB, 0x9879, 0x5DF7, +0x6A61, 0x50CF, 0x5411, 0x8C61, 0x8427, 0x785D, 0x9704, 0x524A, +0x54EE, 0x56A3, 0x9500, 0x6D88, 0x5BB5, 0x6DC6, 0x6653, 0, +0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882A, 0x882B, +0x882C, 0x882D, 0x882E, 0x882F, 0x8830, 0x8831, 0x8833, 0x8834, +0x8835, 0x8836, 0x8837, 0x8838, 0x883A, 0x883B, 0x883D, 0x883E, +0x883F, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, +0x884A, 0x884B, 0x884E, 0x884F, 0x8850, 0x8851, 0x8852, 0x8853, +0x8855, 0x8856, 0x8858, 0x885A, 0x885B, 0x885C, 0x885D, 0x885E, +0x885F, 0x8860, 0x8866, 0x8867, 0x886A, 0x886D, 0x886F, 0x8871, +0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887A, 0, +0x887B, 0x887C, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888A, +0x888C, 0x888E, 0x888F, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, +0x8897, 0x8898, 0x8899, 0x889A, 0x889B, 0x889D, 0x889E, 0x889F, +0x88A0, 0x88A1, 0x88A3, 0x88A5, 0x88A6, 0x88A7, 0x88A8, 0x88A9, +0x88AA, 0x5C0F, 0x5B5D, 0x6821, 0x8096, 0x5578, 0x7B11, 0x6548, +0x6954, 0x4E9B, 0x6B47, 0x874E, 0x978B, 0x534F, 0x631F, 0x643A, +0x90AA, 0x659C, 0x80C1, 0x8C10, 0x5199, 0x68B0, 0x5378, 0x87F9, +0x61C8, 0x6CC4, 0x6CFB, 0x8C22, 0x5C51, 0x85AA, 0x82AF, 0x950C, +0x6B23, 0x8F9B, 0x65B0, 0x5FFB, 0x5FC3, 0x4FE1, 0x8845, 0x661F, +0x8165, 0x7329, 0x60FA, 0x5174, 0x5211, 0x578B, 0x5F62, 0x90A2, +0x884C, 0x9192, 0x5E78, 0x674F, 0x6027, 0x59D3, 0x5144, 0x51F6, +0x80F8, 0x5308, 0x6C79, 0x96C4, 0x718A, 0x4F11, 0x4FEE, 0x7F9E, +0x673D, 0x55C5, 0x9508, 0x79C0, 0x8896, 0x7EE3, 0x589F, 0x620C, +0x9700, 0x865A, 0x5618, 0x987B, 0x5F90, 0x8BB8, 0x84C4, 0x9157, +0x53D9, 0x65ED, 0x5E8F, 0x755C, 0x6064, 0x7D6E, 0x5A7F, 0x7EEA, +0x7EED, 0x8F69, 0x55A7, 0x5BA3, 0x60AC, 0x65CB, 0x7384, 0, +0x88AC, 0x88AE, 0x88AF, 0x88B0, 0x88B2, 0x88B3, 0x88B4, 0x88B5, +0x88B6, 0x88B8, 0x88B9, 0x88BA, 0x88BB, 0x88BD, 0x88BE, 0x88BF, +0x88C0, 0x88C3, 0x88C4, 0x88C7, 0x88C8, 0x88CA, 0x88CB, 0x88CC, +0x88CD, 0x88CF, 0x88D0, 0x88D1, 0x88D3, 0x88D6, 0x88D7, 0x88DA, +0x88DB, 0x88DC, 0x88DD, 0x88DE, 0x88E0, 0x88E1, 0x88E6, 0x88E7, +0x88E9, 0x88EA, 0x88EB, 0x88EC, 0x88ED, 0x88EE, 0x88EF, 0x88F2, +0x88F5, 0x88F6, 0x88F7, 0x88FA, 0x88FB, 0x88FD, 0x88FF, 0x8900, +0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0, +0x8909, 0x890B, 0x890C, 0x890D, 0x890E, 0x890F, 0x8911, 0x8914, +0x8915, 0x8916, 0x8917, 0x8918, 0x891C, 0x891D, 0x891E, 0x891F, +0x8920, 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, +0x892C, 0x892D, 0x892E, 0x892F, 0x8931, 0x8932, 0x8933, 0x8935, +0x8937, 0x9009, 0x7663, 0x7729, 0x7EDA, 0x9774, 0x859B, 0x5B66, +0x7A74, 0x96EA, 0x8840, 0x52CB, 0x718F, 0x5FAA, 0x65EC, 0x8BE2, +0x5BFB, 0x9A6F, 0x5DE1, 0x6B89, 0x6C5B, 0x8BAD, 0x8BAF, 0x900A, +0x8FC5, 0x538B, 0x62BC, 0x9E26, 0x9E2D, 0x5440, 0x4E2B, 0x82BD, +0x7259, 0x869C, 0x5D16, 0x8859, 0x6DAF, 0x96C5, 0x54D1, 0x4E9A, +0x8BB6, 0x7109, 0x54BD, 0x9609, 0x70DF, 0x6DF9, 0x76D0, 0x4E25, +0x7814, 0x8712, 0x5CA9, 0x5EF6, 0x8A00, 0x989C, 0x960E, 0x708E, +0x6CBF, 0x5944, 0x63A9, 0x773C, 0x884D, 0x6F14, 0x8273, 0x5830, +0x71D5, 0x538C, 0x781A, 0x96C1, 0x5501, 0x5F66, 0x7130, 0x5BB4, +0x8C1A, 0x9A8C, 0x6B83, 0x592E, 0x9E2F, 0x79E7, 0x6768, 0x626C, +0x4F6F, 0x75A1, 0x7F8A, 0x6D0B, 0x9633, 0x6C27, 0x4EF0, 0x75D2, +0x517B, 0x6837, 0x6F3E, 0x9080, 0x8170, 0x5996, 0x7476, 0, +0x8938, 0x8939, 0x893A, 0x893B, 0x893C, 0x893D, 0x893E, 0x893F, +0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, +0x894A, 0x894B, 0x894C, 0x894D, 0x894E, 0x894F, 0x8950, 0x8951, +0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, +0x895A, 0x895B, 0x895C, 0x895D, 0x8960, 0x8961, 0x8962, 0x8963, +0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896A, 0x896B, 0x896C, +0x896D, 0x896E, 0x896F, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, +0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897A, 0x897C, 0, +0x897D, 0x897E, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, +0x8989, 0x898A, 0x898B, 0x898C, 0x898D, 0x898E, 0x898F, 0x8990, +0x8991, 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, +0x8999, 0x899A, 0x899B, 0x899C, 0x899D, 0x899E, 0x899F, 0x89A0, +0x89A1, 0x6447, 0x5C27, 0x9065, 0x7A91, 0x8C23, 0x59DA, 0x54AC, +0x8200, 0x836F, 0x8981, 0x8000, 0x6930, 0x564E, 0x8036, 0x7237, +0x91CE, 0x51B6, 0x4E5F, 0x9875, 0x6396, 0x4E1A, 0x53F6, 0x66F3, +0x814B, 0x591C, 0x6DB2, 0x4E00, 0x58F9, 0x533B, 0x63D6, 0x94F1, +0x4F9D, 0x4F0A, 0x8863, 0x9890, 0x5937, 0x9057, 0x79FB, 0x4EEA, +0x80F0, 0x7591, 0x6C82, 0x5B9C, 0x59E8, 0x5F5D, 0x6905, 0x8681, +0x501A, 0x5DF2, 0x4E59, 0x77E3, 0x4EE5, 0x827A, 0x6291, 0x6613, +0x9091, 0x5C79, 0x4EBF, 0x5F79, 0x81C6, 0x9038, 0x8084, 0x75AB, +0x4EA6, 0x88D4, 0x610F, 0x6BC5, 0x5FC6, 0x4E49, 0x76CA, 0x6EA2, +0x8BE3, 0x8BAE, 0x8C0A, 0x8BD1, 0x5F02, 0x7FFC, 0x7FCC, 0x7ECE, +0x8335, 0x836B, 0x56E0, 0x6BB7, 0x97F3, 0x9634, 0x59FB, 0x541F, +0x94F6, 0x6DEB, 0x5BC5, 0x996E, 0x5C39, 0x5F15, 0x9690, 0, +0x89A2, 0x89A3, 0x89A4, 0x89A5, 0x89A6, 0x89A7, 0x89A8, 0x89A9, +0x89AA, 0x89AB, 0x89AC, 0x89AD, 0x89AE, 0x89AF, 0x89B0, 0x89B1, +0x89B2, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, 0x89B8, 0x89B9, +0x89BA, 0x89BB, 0x89BC, 0x89BD, 0x89BE, 0x89BF, 0x89C0, 0x89C3, +0x89CD, 0x89D3, 0x89D4, 0x89D5, 0x89D7, 0x89D8, 0x89D9, 0x89DB, +0x89DD, 0x89DF, 0x89E0, 0x89E1, 0x89E2, 0x89E4, 0x89E7, 0x89E8, +0x89E9, 0x89EA, 0x89EC, 0x89ED, 0x89EE, 0x89F0, 0x89F1, 0x89F2, +0x89F4, 0x89F5, 0x89F6, 0x89F7, 0x89F8, 0x89F9, 0x89FA, 0, +0x89FB, 0x89FC, 0x89FD, 0x89FE, 0x89FF, 0x8A01, 0x8A02, 0x8A03, +0x8A04, 0x8A05, 0x8A06, 0x8A08, 0x8A09, 0x8A0A, 0x8A0B, 0x8A0C, +0x8A0D, 0x8A0E, 0x8A0F, 0x8A10, 0x8A11, 0x8A12, 0x8A13, 0x8A14, +0x8A15, 0x8A16, 0x8A17, 0x8A18, 0x8A19, 0x8A1A, 0x8A1B, 0x8A1C, +0x8A1D, 0x5370, 0x82F1, 0x6A31, 0x5A74, 0x9E70, 0x5E94, 0x7F28, +0x83B9, 0x8424, 0x8425, 0x8367, 0x8747, 0x8FCE, 0x8D62, 0x76C8, +0x5F71, 0x9896, 0x786C, 0x6620, 0x54DF, 0x62E5, 0x4F63, 0x81C3, +0x75C8, 0x5EB8, 0x96CD, 0x8E0A, 0x86F9, 0x548F, 0x6CF3, 0x6D8C, +0x6C38, 0x607F, 0x52C7, 0x7528, 0x5E7D, 0x4F18, 0x60A0, 0x5FE7, +0x5C24, 0x7531, 0x90AE, 0x94C0, 0x72B9, 0x6CB9, 0x6E38, 0x9149, +0x6709, 0x53CB, 0x53F3, 0x4F51, 0x91C9, 0x8BF1, 0x53C8, 0x5E7C, +0x8FC2, 0x6DE4, 0x4E8E, 0x76C2, 0x6986, 0x865E, 0x611A, 0x8206, +0x4F59, 0x4FDE, 0x903E, 0x9C7C, 0x6109, 0x6E1D, 0x6E14, 0x9685, +0x4E88, 0x5A31, 0x96E8, 0x4E0E, 0x5C7F, 0x79B9, 0x5B87, 0x8BED, +0x7FBD, 0x7389, 0x57DF, 0x828B, 0x90C1, 0x5401, 0x9047, 0x55BB, +0x5CEA, 0x5FA1, 0x6108, 0x6B32, 0x72F1, 0x80B2, 0x8A89, 0, +0x8A1E, 0x8A1F, 0x8A20, 0x8A21, 0x8A22, 0x8A23, 0x8A24, 0x8A25, +0x8A26, 0x8A27, 0x8A28, 0x8A29, 0x8A2A, 0x8A2B, 0x8A2C, 0x8A2D, +0x8A2E, 0x8A2F, 0x8A30, 0x8A31, 0x8A32, 0x8A33, 0x8A34, 0x8A35, +0x8A36, 0x8A37, 0x8A38, 0x8A39, 0x8A3A, 0x8A3B, 0x8A3C, 0x8A3D, +0x8A3F, 0x8A40, 0x8A41, 0x8A42, 0x8A43, 0x8A44, 0x8A45, 0x8A46, +0x8A47, 0x8A49, 0x8A4A, 0x8A4B, 0x8A4C, 0x8A4D, 0x8A4E, 0x8A4F, +0x8A50, 0x8A51, 0x8A52, 0x8A53, 0x8A54, 0x8A55, 0x8A56, 0x8A57, +0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, 0x8A5E, 0, +0x8A5F, 0x8A60, 0x8A61, 0x8A62, 0x8A63, 0x8A64, 0x8A65, 0x8A66, +0x8A67, 0x8A68, 0x8A69, 0x8A6A, 0x8A6B, 0x8A6C, 0x8A6D, 0x8A6E, +0x8A6F, 0x8A70, 0x8A71, 0x8A72, 0x8A73, 0x8A74, 0x8A75, 0x8A76, +0x8A77, 0x8A78, 0x8A7A, 0x8A7B, 0x8A7C, 0x8A7D, 0x8A7E, 0x8A7F, +0x8A80, 0x6D74, 0x5BD3, 0x88D5, 0x9884, 0x8C6B, 0x9A6D, 0x9E33, +0x6E0A, 0x51A4, 0x5143, 0x57A3, 0x8881, 0x539F, 0x63F4, 0x8F95, +0x56ED, 0x5458, 0x5706, 0x733F, 0x6E90, 0x7F18, 0x8FDC, 0x82D1, +0x613F, 0x6028, 0x9662, 0x66F0, 0x7EA6, 0x8D8A, 0x8DC3, 0x94A5, +0x5CB3, 0x7CA4, 0x6708, 0x60A6, 0x9605, 0x8018, 0x4E91, 0x90E7, +0x5300, 0x9668, 0x5141, 0x8FD0, 0x8574, 0x915D, 0x6655, 0x97F5, +0x5B55, 0x531D, 0x7838, 0x6742, 0x683D, 0x54C9, 0x707E, 0x5BB0, +0x8F7D, 0x518D, 0x5728, 0x54B1, 0x6512, 0x6682, 0x8D5E, 0x8D43, +0x810F, 0x846C, 0x906D, 0x7CDF, 0x51FF, 0x85FB, 0x67A3, 0x65E9, +0x6FA1, 0x86A4, 0x8E81, 0x566A, 0x9020, 0x7682, 0x7076, 0x71E5, +0x8D23, 0x62E9, 0x5219, 0x6CFD, 0x8D3C, 0x600E, 0x589E, 0x618E, +0x66FE, 0x8D60, 0x624E, 0x55B3, 0x6E23, 0x672D, 0x8F67, 0, +0x8A81, 0x8A82, 0x8A83, 0x8A84, 0x8A85, 0x8A86, 0x8A87, 0x8A88, +0x8A8B, 0x8A8C, 0x8A8D, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A92, +0x8A94, 0x8A95, 0x8A96, 0x8A97, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, +0x8A9C, 0x8A9D, 0x8A9E, 0x8A9F, 0x8AA0, 0x8AA1, 0x8AA2, 0x8AA3, +0x8AA4, 0x8AA5, 0x8AA6, 0x8AA7, 0x8AA8, 0x8AA9, 0x8AAA, 0x8AAB, +0x8AAC, 0x8AAD, 0x8AAE, 0x8AAF, 0x8AB0, 0x8AB1, 0x8AB2, 0x8AB3, +0x8AB4, 0x8AB5, 0x8AB6, 0x8AB7, 0x8AB8, 0x8AB9, 0x8ABA, 0x8ABB, +0x8ABC, 0x8ABD, 0x8ABE, 0x8ABF, 0x8AC0, 0x8AC1, 0x8AC2, 0, +0x8AC3, 0x8AC4, 0x8AC5, 0x8AC6, 0x8AC7, 0x8AC8, 0x8AC9, 0x8ACA, +0x8ACB, 0x8ACC, 0x8ACD, 0x8ACE, 0x8ACF, 0x8AD0, 0x8AD1, 0x8AD2, +0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0x8AD7, 0x8AD8, 0x8AD9, 0x8ADA, +0x8ADB, 0x8ADC, 0x8ADD, 0x8ADE, 0x8ADF, 0x8AE0, 0x8AE1, 0x8AE2, +0x8AE3, 0x94E1, 0x95F8, 0x7728, 0x6805, 0x69A8, 0x548B, 0x4E4D, +0x70B8, 0x8BC8, 0x6458, 0x658B, 0x5B85, 0x7A84, 0x503A, 0x5BE8, +0x77BB, 0x6BE1, 0x8A79, 0x7C98, 0x6CBE, 0x76CF, 0x65A9, 0x8F97, +0x5D2D, 0x5C55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7AD9, 0x6E5B, +0x7EFD, 0x6A1F, 0x7AE0, 0x5F70, 0x6F33, 0x5F20, 0x638C, 0x6DA8, +0x6756, 0x4E08, 0x5E10, 0x8D26, 0x4ED7, 0x80C0, 0x7634, 0x969C, +0x62DB, 0x662D, 0x627E, 0x6CBC, 0x8D75, 0x7167, 0x7F69, 0x5146, +0x8087, 0x53EC, 0x906E, 0x6298, 0x54F2, 0x86F0, 0x8F99, 0x8005, +0x9517, 0x8517, 0x8FD9, 0x6D59, 0x73CD, 0x659F, 0x771F, 0x7504, +0x7827, 0x81FB, 0x8D1E, 0x9488, 0x4FA6, 0x6795, 0x75B9, 0x8BCA, +0x9707, 0x632F, 0x9547, 0x9635, 0x84B8, 0x6323, 0x7741, 0x5F81, +0x72F0, 0x4E89, 0x6014, 0x6574, 0x62EF, 0x6B63, 0x653F, 0, +0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, 0x8AE9, 0x8AEA, 0x8AEB, +0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, 0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3, +0x8AF4, 0x8AF5, 0x8AF6, 0x8AF7, 0x8AF8, 0x8AF9, 0x8AFA, 0x8AFB, +0x8AFC, 0x8AFD, 0x8AFE, 0x8AFF, 0x8B00, 0x8B01, 0x8B02, 0x8B03, +0x8B04, 0x8B05, 0x8B06, 0x8B08, 0x8B09, 0x8B0A, 0x8B0B, 0x8B0C, +0x8B0D, 0x8B0E, 0x8B0F, 0x8B10, 0x8B11, 0x8B12, 0x8B13, 0x8B14, +0x8B15, 0x8B16, 0x8B17, 0x8B18, 0x8B19, 0x8B1A, 0x8B1B, 0x8B1C, +0x8B1D, 0x8B1E, 0x8B1F, 0x8B20, 0x8B21, 0x8B22, 0x8B23, 0, +0x8B24, 0x8B25, 0x8B27, 0x8B28, 0x8B29, 0x8B2A, 0x8B2B, 0x8B2C, +0x8B2D, 0x8B2E, 0x8B2F, 0x8B30, 0x8B31, 0x8B32, 0x8B33, 0x8B34, +0x8B35, 0x8B36, 0x8B37, 0x8B38, 0x8B39, 0x8B3A, 0x8B3B, 0x8B3C, +0x8B3D, 0x8B3E, 0x8B3F, 0x8B40, 0x8B41, 0x8B42, 0x8B43, 0x8B44, +0x8B45, 0x5E27, 0x75C7, 0x90D1, 0x8BC1, 0x829D, 0x679D, 0x652F, +0x5431, 0x8718, 0x77E5, 0x80A2, 0x8102, 0x6C41, 0x4E4B, 0x7EC7, +0x804C, 0x76F4, 0x690D, 0x6B96, 0x6267, 0x503C, 0x4F84, 0x5740, +0x6307, 0x6B62, 0x8DBE, 0x53EA, 0x65E8, 0x7EB8, 0x5FD7, 0x631A, +0x63B7, 0x81F3, 0x81F4, 0x7F6E, 0x5E1C, 0x5CD9, 0x5236, 0x667A, +0x79E9, 0x7A1A, 0x8D28, 0x7099, 0x75D4, 0x6EDE, 0x6CBB, 0x7A92, +0x4E2D, 0x76C5, 0x5FE0, 0x949F, 0x8877, 0x7EC8, 0x79CD, 0x80BF, +0x91CD, 0x4EF2, 0x4F17, 0x821F, 0x5468, 0x5DDE, 0x6D32, 0x8BCC, +0x7CA5, 0x8F74, 0x8098, 0x5E1A, 0x5492, 0x76B1, 0x5B99, 0x663C, +0x9AA4, 0x73E0, 0x682A, 0x86DB, 0x6731, 0x732A, 0x8BF8, 0x8BDB, +0x9010, 0x7AF9, 0x70DB, 0x716E, 0x62C4, 0x77A9, 0x5631, 0x4E3B, +0x8457, 0x67F1, 0x52A9, 0x86C0, 0x8D2E, 0x94F8, 0x7B51, 0, +0x8B46, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, 0x8B4D, +0x8B4E, 0x8B4F, 0x8B50, 0x8B51, 0x8B52, 0x8B53, 0x8B54, 0x8B55, +0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, +0x8B5E, 0x8B5F, 0x8B60, 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, +0x8B67, 0x8B68, 0x8B69, 0x8B6A, 0x8B6B, 0x8B6D, 0x8B6E, 0x8B6F, +0x8B70, 0x8B71, 0x8B72, 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, +0x8B78, 0x8B79, 0x8B7A, 0x8B7B, 0x8B7C, 0x8B7D, 0x8B7E, 0x8B7F, +0x8B80, 0x8B81, 0x8B82, 0x8B83, 0x8B84, 0x8B85, 0x8B86, 0, +0x8B87, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0x8B8D, 0x8B8E, +0x8B8F, 0x8B90, 0x8B91, 0x8B92, 0x8B93, 0x8B94, 0x8B95, 0x8B96, +0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B, 0x8B9C, 0x8B9D, 0x8B9E, +0x8B9F, 0x8BAC, 0x8BB1, 0x8BBB, 0x8BC7, 0x8BD0, 0x8BEA, 0x8C09, +0x8C1E, 0x4F4F, 0x6CE8, 0x795D, 0x9A7B, 0x6293, 0x722A, 0x62FD, +0x4E13, 0x7816, 0x8F6C, 0x64B0, 0x8D5A, 0x7BC6, 0x6869, 0x5E84, +0x88C5, 0x5986, 0x649E, 0x58EE, 0x72B6, 0x690E, 0x9525, 0x8FFD, +0x8D58, 0x5760, 0x7F00, 0x8C06, 0x51C6, 0x6349, 0x62D9, 0x5353, +0x684C, 0x7422, 0x8301, 0x914C, 0x5544, 0x7740, 0x707C, 0x6D4A, +0x5179, 0x54A8, 0x8D44, 0x59FF, 0x6ECB, 0x6DC4, 0x5B5C, 0x7D2B, +0x4ED4, 0x7C7D, 0x6ED3, 0x5B50, 0x81EA, 0x6E0D, 0x5B57, 0x9B03, +0x68D5, 0x8E2A, 0x5B97, 0x7EFC, 0x603B, 0x7EB5, 0x90B9, 0x8D70, +0x594F, 0x63CD, 0x79DF, 0x8DB3, 0x5352, 0x65CF, 0x7956, 0x8BC5, +0x963B, 0x7EC4, 0x94BB, 0x7E82, 0x5634, 0x9189, 0x6700, 0x7F6A, +0x5C0A, 0x9075, 0x6628, 0x5DE6, 0x4F50, 0x67DE, 0x505A, 0x4F5C, +0x5750, 0x5EA7, 0xE810, 0xE811, 0xE812, 0xE813, 0xE814, 0, +0x8C38, 0x8C39, 0x8C3A, 0x8C3B, 0x8C3C, 0x8C3D, 0x8C3E, 0x8C3F, +0x8C40, 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C48, 0x8C4A, 0x8C4B, +0x8C4D, 0x8C4E, 0x8C4F, 0x8C50, 0x8C51, 0x8C52, 0x8C53, 0x8C54, +0x8C56, 0x8C57, 0x8C58, 0x8C59, 0x8C5B, 0x8C5C, 0x8C5D, 0x8C5E, +0x8C5F, 0x8C60, 0x8C63, 0x8C64, 0x8C65, 0x8C66, 0x8C67, 0x8C68, +0x8C69, 0x8C6C, 0x8C6D, 0x8C6E, 0x8C6F, 0x8C70, 0x8C71, 0x8C72, +0x8C74, 0x8C75, 0x8C76, 0x8C77, 0x8C7B, 0x8C7C, 0x8C7D, 0x8C7E, +0x8C7F, 0x8C80, 0x8C81, 0x8C83, 0x8C84, 0x8C86, 0x8C87, 0, +0x8C88, 0x8C8B, 0x8C8D, 0x8C8E, 0x8C8F, 0x8C90, 0x8C91, 0x8C92, +0x8C93, 0x8C95, 0x8C96, 0x8C97, 0x8C99, 0x8C9A, 0x8C9B, 0x8C9C, +0x8C9D, 0x8C9E, 0x8C9F, 0x8CA0, 0x8CA1, 0x8CA2, 0x8CA3, 0x8CA4, +0x8CA5, 0x8CA6, 0x8CA7, 0x8CA8, 0x8CA9, 0x8CAA, 0x8CAB, 0x8CAC, +0x8CAD, 0x4E8D, 0x4E0C, 0x5140, 0x4E10, 0x5EFF, 0x5345, 0x4E15, +0x4E98, 0x4E1E, 0x9B32, 0x5B6C, 0x5669, 0x4E28, 0x79BA, 0x4E3F, +0x5315, 0x4E47, 0x592D, 0x723B, 0x536E, 0x6C10, 0x56DF, 0x80E4, +0x9997, 0x6BD3, 0x777E, 0x9F17, 0x4E36, 0x4E9F, 0x9F10, 0x4E5C, +0x4E69, 0x4E93, 0x8288, 0x5B5B, 0x556C, 0x560F, 0x4EC4, 0x538D, +0x539D, 0x53A3, 0x53A5, 0x53AE, 0x9765, 0x8D5D, 0x531A, 0x53F5, +0x5326, 0x532E, 0x533E, 0x8D5C, 0x5366, 0x5363, 0x5202, 0x5208, +0x520E, 0x522D, 0x5233, 0x523F, 0x5240, 0x524C, 0x525E, 0x5261, +0x525C, 0x84AF, 0x527D, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, +0x7F54, 0x4EBB, 0x4EC3, 0x4EC9, 0x4EC2, 0x4EE8, 0x4EE1, 0x4EEB, +0x4EDE, 0x4F1B, 0x4EF3, 0x4F22, 0x4F64, 0x4EF5, 0x4F25, 0x4F27, +0x4F09, 0x4F2B, 0x4F5E, 0x4F67, 0x6538, 0x4F5A, 0x4F5D, 0, +0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1, 0x8CB2, 0x8CB3, 0x8CB4, 0x8CB5, +0x8CB6, 0x8CB7, 0x8CB8, 0x8CB9, 0x8CBA, 0x8CBB, 0x8CBC, 0x8CBD, +0x8CBE, 0x8CBF, 0x8CC0, 0x8CC1, 0x8CC2, 0x8CC3, 0x8CC4, 0x8CC5, +0x8CC6, 0x8CC7, 0x8CC8, 0x8CC9, 0x8CCA, 0x8CCB, 0x8CCC, 0x8CCD, +0x8CCE, 0x8CCF, 0x8CD0, 0x8CD1, 0x8CD2, 0x8CD3, 0x8CD4, 0x8CD5, +0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, 0x8CDB, 0x8CDC, 0x8CDD, +0x8CDE, 0x8CDF, 0x8CE0, 0x8CE1, 0x8CE2, 0x8CE3, 0x8CE4, 0x8CE5, +0x8CE6, 0x8CE7, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, 0, +0x8CED, 0x8CEE, 0x8CEF, 0x8CF0, 0x8CF1, 0x8CF2, 0x8CF3, 0x8CF4, +0x8CF5, 0x8CF6, 0x8CF7, 0x8CF8, 0x8CF9, 0x8CFA, 0x8CFB, 0x8CFC, +0x8CFD, 0x8CFE, 0x8CFF, 0x8D00, 0x8D01, 0x8D02, 0x8D03, 0x8D04, +0x8D05, 0x8D06, 0x8D07, 0x8D08, 0x8D09, 0x8D0A, 0x8D0B, 0x8D0C, +0x8D0D, 0x4F5F, 0x4F57, 0x4F32, 0x4F3D, 0x4F76, 0x4F74, 0x4F91, +0x4F89, 0x4F83, 0x4F8F, 0x4F7E, 0x4F7B, 0x4FAA, 0x4F7C, 0x4FAC, +0x4F94, 0x4FE6, 0x4FE8, 0x4FEA, 0x4FC5, 0x4FDA, 0x4FE3, 0x4FDC, +0x4FD1, 0x4FDF, 0x4FF8, 0x5029, 0x504C, 0x4FF3, 0x502C, 0x500F, +0x502E, 0x502D, 0x4FFE, 0x501C, 0x500C, 0x5025, 0x5028, 0x507E, +0x5043, 0x5055, 0x5048, 0x504E, 0x506C, 0x507B, 0x50A5, 0x50A7, +0x50A9, 0x50BA, 0x50D6, 0x5106, 0x50ED, 0x50EC, 0x50E6, 0x50EE, +0x5107, 0x510B, 0x4EDD, 0x6C3D, 0x4F58, 0x4F65, 0x4FCE, 0x9FA0, +0x6C46, 0x7C74, 0x516E, 0x5DFD, 0x9EC9, 0x9998, 0x5181, 0x5914, +0x52F9, 0x530D, 0x8A07, 0x5310, 0x51EB, 0x5919, 0x5155, 0x4EA0, +0x5156, 0x4EB3, 0x886E, 0x88A4, 0x4EB5, 0x8114, 0x88D2, 0x7980, +0x5B34, 0x8803, 0x7FB8, 0x51AB, 0x51B1, 0x51BD, 0x51BC, 0, +0x8D0E, 0x8D0F, 0x8D10, 0x8D11, 0x8D12, 0x8D13, 0x8D14, 0x8D15, +0x8D16, 0x8D17, 0x8D18, 0x8D19, 0x8D1A, 0x8D1B, 0x8D1C, 0x8D20, +0x8D51, 0x8D52, 0x8D57, 0x8D5F, 0x8D65, 0x8D68, 0x8D69, 0x8D6A, +0x8D6C, 0x8D6E, 0x8D6F, 0x8D71, 0x8D72, 0x8D78, 0x8D79, 0x8D7A, +0x8D7B, 0x8D7C, 0x8D7D, 0x8D7E, 0x8D7F, 0x8D80, 0x8D82, 0x8D83, +0x8D86, 0x8D87, 0x8D88, 0x8D89, 0x8D8C, 0x8D8D, 0x8D8E, 0x8D8F, +0x8D90, 0x8D92, 0x8D93, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99, +0x8D9A, 0x8D9B, 0x8D9C, 0x8D9D, 0x8D9E, 0x8DA0, 0x8DA1, 0, +0x8DA2, 0x8DA4, 0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, +0x8DAB, 0x8DAC, 0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB2, 0x8DB6, +0x8DB7, 0x8DB9, 0x8DBB, 0x8DBD, 0x8DC0, 0x8DC1, 0x8DC2, 0x8DC5, +0x8DC7, 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCD, 0x8DD0, 0x8DD2, 0x8DD3, +0x8DD4, 0x51C7, 0x5196, 0x51A2, 0x51A5, 0x8BA0, 0x8BA6, 0x8BA7, +0x8BAA, 0x8BB4, 0x8BB5, 0x8BB7, 0x8BC2, 0x8BC3, 0x8BCB, 0x8BCF, +0x8BCE, 0x8BD2, 0x8BD3, 0x8BD4, 0x8BD6, 0x8BD8, 0x8BD9, 0x8BDC, +0x8BDF, 0x8BE0, 0x8BE4, 0x8BE8, 0x8BE9, 0x8BEE, 0x8BF0, 0x8BF3, +0x8BF6, 0x8BF9, 0x8BFC, 0x8BFF, 0x8C00, 0x8C02, 0x8C04, 0x8C07, +0x8C0C, 0x8C0F, 0x8C11, 0x8C12, 0x8C14, 0x8C15, 0x8C16, 0x8C19, +0x8C1B, 0x8C18, 0x8C1D, 0x8C1F, 0x8C20, 0x8C21, 0x8C25, 0x8C27, +0x8C2A, 0x8C2B, 0x8C2E, 0x8C2F, 0x8C32, 0x8C33, 0x8C35, 0x8C36, +0x5369, 0x537A, 0x961D, 0x9622, 0x9621, 0x9631, 0x962A, 0x963D, +0x963C, 0x9642, 0x9649, 0x9654, 0x965F, 0x9667, 0x966C, 0x9672, +0x9674, 0x9688, 0x968D, 0x9697, 0x96B0, 0x9097, 0x909B, 0x909D, +0x9099, 0x90AC, 0x90A1, 0x90B4, 0x90B3, 0x90B6, 0x90BA, 0, +0x8DD5, 0x8DD8, 0x8DD9, 0x8DDC, 0x8DE0, 0x8DE1, 0x8DE2, 0x8DE5, +0x8DE6, 0x8DE7, 0x8DE9, 0x8DED, 0x8DEE, 0x8DF0, 0x8DF1, 0x8DF2, +0x8DF4, 0x8DF6, 0x8DFC, 0x8DFE, 0x8DFF, 0x8E00, 0x8E01, 0x8E02, +0x8E03, 0x8E04, 0x8E06, 0x8E07, 0x8E08, 0x8E0B, 0x8E0D, 0x8E0E, +0x8E10, 0x8E11, 0x8E12, 0x8E13, 0x8E15, 0x8E16, 0x8E17, 0x8E18, +0x8E19, 0x8E1A, 0x8E1B, 0x8E1C, 0x8E20, 0x8E21, 0x8E24, 0x8E25, +0x8E26, 0x8E27, 0x8E28, 0x8E2B, 0x8E2D, 0x8E30, 0x8E32, 0x8E33, +0x8E34, 0x8E36, 0x8E37, 0x8E38, 0x8E3B, 0x8E3C, 0x8E3E, 0, +0x8E3F, 0x8E43, 0x8E45, 0x8E46, 0x8E4C, 0x8E4D, 0x8E4E, 0x8E4F, +0x8E50, 0x8E53, 0x8E54, 0x8E55, 0x8E56, 0x8E57, 0x8E58, 0x8E5A, +0x8E5B, 0x8E5C, 0x8E5D, 0x8E5E, 0x8E5F, 0x8E60, 0x8E61, 0x8E62, +0x8E63, 0x8E64, 0x8E65, 0x8E67, 0x8E68, 0x8E6A, 0x8E6B, 0x8E6E, +0x8E71, 0x90B8, 0x90B0, 0x90CF, 0x90C5, 0x90BE, 0x90D0, 0x90C4, +0x90C7, 0x90D3, 0x90E6, 0x90E2, 0x90DC, 0x90D7, 0x90DB, 0x90EB, +0x90EF, 0x90FE, 0x9104, 0x9122, 0x911E, 0x9123, 0x9131, 0x912F, +0x9139, 0x9143, 0x9146, 0x520D, 0x5942, 0x52A2, 0x52AC, 0x52AD, +0x52BE, 0x54FF, 0x52D0, 0x52D6, 0x52F0, 0x53DF, 0x71EE, 0x77CD, +0x5EF4, 0x51F5, 0x51FC, 0x9B2F, 0x53B6, 0x5F01, 0x755A, 0x5DEF, +0x574C, 0x57A9, 0x57A1, 0x587E, 0x58BC, 0x58C5, 0x58D1, 0x5729, +0x572C, 0x572A, 0x5733, 0x5739, 0x572E, 0x572F, 0x575C, 0x573B, +0x5742, 0x5769, 0x5785, 0x576B, 0x5786, 0x577C, 0x577B, 0x5768, +0x576D, 0x5776, 0x5773, 0x57AD, 0x57A4, 0x578C, 0x57B2, 0x57CF, +0x57A7, 0x57B4, 0x5793, 0x57A0, 0x57D5, 0x57D8, 0x57DA, 0x57D9, +0x57D2, 0x57B8, 0x57F4, 0x57EF, 0x57F8, 0x57E4, 0x57DD, 0, +0x8E73, 0x8E75, 0x8E77, 0x8E78, 0x8E79, 0x8E7A, 0x8E7B, 0x8E7D, +0x8E7E, 0x8E80, 0x8E82, 0x8E83, 0x8E84, 0x8E86, 0x8E88, 0x8E89, +0x8E8A, 0x8E8B, 0x8E8C, 0x8E8D, 0x8E8E, 0x8E91, 0x8E92, 0x8E93, +0x8E95, 0x8E96, 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0x8E9B, 0x8E9D, +0x8E9F, 0x8EA0, 0x8EA1, 0x8EA2, 0x8EA3, 0x8EA4, 0x8EA5, 0x8EA6, +0x8EA7, 0x8EA8, 0x8EA9, 0x8EAA, 0x8EAD, 0x8EAE, 0x8EB0, 0x8EB1, +0x8EB3, 0x8EB4, 0x8EB5, 0x8EB6, 0x8EB7, 0x8EB8, 0x8EB9, 0x8EBB, +0x8EBC, 0x8EBD, 0x8EBE, 0x8EBF, 0x8EC0, 0x8EC1, 0x8EC2, 0, +0x8EC3, 0x8EC4, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, 0x8EC9, 0x8ECA, +0x8ECB, 0x8ECC, 0x8ECD, 0x8ECF, 0x8ED0, 0x8ED1, 0x8ED2, 0x8ED3, +0x8ED4, 0x8ED5, 0x8ED6, 0x8ED7, 0x8ED8, 0x8ED9, 0x8EDA, 0x8EDB, +0x8EDC, 0x8EDD, 0x8EDE, 0x8EDF, 0x8EE0, 0x8EE1, 0x8EE2, 0x8EE3, +0x8EE4, 0x580B, 0x580D, 0x57FD, 0x57ED, 0x5800, 0x581E, 0x5819, +0x5844, 0x5820, 0x5865, 0x586C, 0x5881, 0x5889, 0x589A, 0x5880, +0x99A8, 0x9F19, 0x61FF, 0x8279, 0x827D, 0x827F, 0x828F, 0x828A, +0x82A8, 0x8284, 0x828E, 0x8291, 0x8297, 0x8299, 0x82AB, 0x82B8, +0x82BE, 0x82B0, 0x82C8, 0x82CA, 0x82E3, 0x8298, 0x82B7, 0x82AE, +0x82CB, 0x82CC, 0x82C1, 0x82A9, 0x82B4, 0x82A1, 0x82AA, 0x829F, +0x82C4, 0x82CE, 0x82A4, 0x82E1, 0x8309, 0x82F7, 0x82E4, 0x830F, +0x8307, 0x82DC, 0x82F4, 0x82D2, 0x82D8, 0x830C, 0x82FB, 0x82D3, +0x8311, 0x831A, 0x8306, 0x8314, 0x8315, 0x82E0, 0x82D5, 0x831C, +0x8351, 0x835B, 0x835C, 0x8308, 0x8392, 0x833C, 0x8334, 0x8331, +0x839B, 0x835E, 0x832F, 0x834F, 0x8347, 0x8343, 0x835F, 0x8340, +0x8317, 0x8360, 0x832D, 0x833A, 0x8333, 0x8366, 0x8365, 0, +0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, +0x8EED, 0x8EEE, 0x8EEF, 0x8EF0, 0x8EF1, 0x8EF2, 0x8EF3, 0x8EF4, +0x8EF5, 0x8EF6, 0x8EF7, 0x8EF8, 0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, +0x8EFD, 0x8EFE, 0x8EFF, 0x8F00, 0x8F01, 0x8F02, 0x8F03, 0x8F04, +0x8F05, 0x8F06, 0x8F07, 0x8F08, 0x8F09, 0x8F0A, 0x8F0B, 0x8F0C, +0x8F0D, 0x8F0E, 0x8F0F, 0x8F10, 0x8F11, 0x8F12, 0x8F13, 0x8F14, +0x8F15, 0x8F16, 0x8F17, 0x8F18, 0x8F19, 0x8F1A, 0x8F1B, 0x8F1C, +0x8F1D, 0x8F1E, 0x8F1F, 0x8F20, 0x8F21, 0x8F22, 0x8F23, 0, +0x8F24, 0x8F25, 0x8F26, 0x8F27, 0x8F28, 0x8F29, 0x8F2A, 0x8F2B, +0x8F2C, 0x8F2D, 0x8F2E, 0x8F2F, 0x8F30, 0x8F31, 0x8F32, 0x8F33, +0x8F34, 0x8F35, 0x8F36, 0x8F37, 0x8F38, 0x8F39, 0x8F3A, 0x8F3B, +0x8F3C, 0x8F3D, 0x8F3E, 0x8F3F, 0x8F40, 0x8F41, 0x8F42, 0x8F43, +0x8F44, 0x8368, 0x831B, 0x8369, 0x836C, 0x836A, 0x836D, 0x836E, +0x83B0, 0x8378, 0x83B3, 0x83B4, 0x83A0, 0x83AA, 0x8393, 0x839C, +0x8385, 0x837C, 0x83B6, 0x83A9, 0x837D, 0x83B8, 0x837B, 0x8398, +0x839E, 0x83A8, 0x83BA, 0x83BC, 0x83C1, 0x8401, 0x83E5, 0x83D8, +0x5807, 0x8418, 0x840B, 0x83DD, 0x83FD, 0x83D6, 0x841C, 0x8438, +0x8411, 0x8406, 0x83D4, 0x83DF, 0x840F, 0x8403, 0x83F8, 0x83F9, +0x83EA, 0x83C5, 0x83C0, 0x8426, 0x83F0, 0x83E1, 0x845C, 0x8451, +0x845A, 0x8459, 0x8473, 0x8487, 0x8488, 0x847A, 0x8489, 0x8478, +0x843C, 0x8446, 0x8469, 0x8476, 0x848C, 0x848E, 0x8431, 0x846D, +0x84C1, 0x84CD, 0x84D0, 0x84E6, 0x84BD, 0x84D3, 0x84CA, 0x84BF, +0x84BA, 0x84E0, 0x84A1, 0x84B9, 0x84B4, 0x8497, 0x84E5, 0x84E3, +0x850C, 0x750D, 0x8538, 0x84F0, 0x8539, 0x851F, 0x853A, 0, +0x8F45, 0x8F46, 0x8F47, 0x8F48, 0x8F49, 0x8F4A, 0x8F4B, 0x8F4C, +0x8F4D, 0x8F4E, 0x8F4F, 0x8F50, 0x8F51, 0x8F52, 0x8F53, 0x8F54, +0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, 0x8F5A, 0x8F5B, 0x8F5C, +0x8F5D, 0x8F5E, 0x8F5F, 0x8F60, 0x8F61, 0x8F62, 0x8F63, 0x8F64, +0x8F65, 0x8F6A, 0x8F80, 0x8F8C, 0x8F92, 0x8F9D, 0x8FA0, 0x8FA1, +0x8FA2, 0x8FA4, 0x8FA5, 0x8FA6, 0x8FA7, 0x8FAA, 0x8FAC, 0x8FAD, +0x8FAE, 0x8FAF, 0x8FB2, 0x8FB3, 0x8FB4, 0x8FB5, 0x8FB7, 0x8FB8, +0x8FBA, 0x8FBB, 0x8FBC, 0x8FBF, 0x8FC0, 0x8FC3, 0x8FC6, 0, +0x8FC9, 0x8FCA, 0x8FCB, 0x8FCC, 0x8FCD, 0x8FCF, 0x8FD2, 0x8FD6, +0x8FD7, 0x8FDA, 0x8FE0, 0x8FE1, 0x8FE3, 0x8FE7, 0x8FEC, 0x8FEF, +0x8FF1, 0x8FF2, 0x8FF4, 0x8FF5, 0x8FF6, 0x8FFA, 0x8FFB, 0x8FFC, +0x8FFE, 0x8FFF, 0x9007, 0x9008, 0x900C, 0x900E, 0x9013, 0x9015, +0x9018, 0x8556, 0x853B, 0x84FF, 0x84FC, 0x8559, 0x8548, 0x8568, +0x8564, 0x855E, 0x857A, 0x77A2, 0x8543, 0x8572, 0x857B, 0x85A4, +0x85A8, 0x8587, 0x858F, 0x8579, 0x85AE, 0x859C, 0x8585, 0x85B9, +0x85B7, 0x85B0, 0x85D3, 0x85C1, 0x85DC, 0x85FF, 0x8627, 0x8605, +0x8629, 0x8616, 0x863C, 0x5EFE, 0x5F08, 0x593C, 0x5941, 0x8037, +0x5955, 0x595A, 0x5958, 0x530F, 0x5C22, 0x5C25, 0x5C2C, 0x5C34, +0x624C, 0x626A, 0x629F, 0x62BB, 0x62CA, 0x62DA, 0x62D7, 0x62EE, +0x6322, 0x62F6, 0x6339, 0x634B, 0x6343, 0x63AD, 0x63F6, 0x6371, +0x637A, 0x638E, 0x63B4, 0x636D, 0x63AC, 0x638A, 0x6369, 0x63AE, +0x63BC, 0x63F2, 0x63F8, 0x63E0, 0x63FF, 0x63C4, 0x63DE, 0x63CE, +0x6452, 0x63C6, 0x63BE, 0x6445, 0x6441, 0x640B, 0x641B, 0x6420, +0x640C, 0x6426, 0x6421, 0x645E, 0x6484, 0x646D, 0x6496, 0, +0x9019, 0x901C, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, +0x902A, 0x902B, 0x902C, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, +0x9037, 0x9039, 0x903A, 0x903D, 0x903F, 0x9040, 0x9043, 0x9045, +0x9046, 0x9048, 0x9049, 0x904A, 0x904B, 0x904C, 0x904E, 0x9054, +0x9055, 0x9056, 0x9059, 0x905A, 0x905C, 0x905D, 0x905E, 0x905F, +0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906A, 0x906B, +0x906C, 0x906F, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, +0x9078, 0x9079, 0x907A, 0x907B, 0x907C, 0x907E, 0x9081, 0, +0x9084, 0x9085, 0x9086, 0x9087, 0x9089, 0x908A, 0x908C, 0x908D, +0x908E, 0x908F, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909A, +0x909C, 0x909E, 0x909F, 0x90A0, 0x90A4, 0x90A5, 0x90A7, 0x90A8, +0x90A9, 0x90AB, 0x90AD, 0x90B2, 0x90B7, 0x90BC, 0x90BD, 0x90BF, +0x90C0, 0x647A, 0x64B7, 0x64B8, 0x6499, 0x64BA, 0x64C0, 0x64D0, +0x64D7, 0x64E4, 0x64E2, 0x6509, 0x6525, 0x652E, 0x5F0B, 0x5FD2, +0x7519, 0x5F11, 0x535F, 0x53F1, 0x53FD, 0x53E9, 0x53E8, 0x53FB, +0x5412, 0x5416, 0x5406, 0x544B, 0x5452, 0x5453, 0x5454, 0x5456, +0x5443, 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, +0x5477, 0x5471, 0x5464, 0x549A, 0x549B, 0x5484, 0x5476, 0x5466, +0x549D, 0x54D0, 0x54AD, 0x54C2, 0x54B4, 0x54D2, 0x54A7, 0x54A6, +0x54D3, 0x54D4, 0x5472, 0x54A3, 0x54D5, 0x54BB, 0x54BF, 0x54CC, +0x54D9, 0x54DA, 0x54DC, 0x54A9, 0x54AA, 0x54A4, 0x54DD, 0x54CF, +0x54DE, 0x551B, 0x54E7, 0x5520, 0x54FD, 0x5514, 0x54F3, 0x5522, +0x5523, 0x550F, 0x5511, 0x5527, 0x552A, 0x5567, 0x558F, 0x55B5, +0x5549, 0x556D, 0x5541, 0x5555, 0x553F, 0x5550, 0x553C, 0, +0x90C2, 0x90C3, 0x90C6, 0x90C8, 0x90C9, 0x90CB, 0x90CC, 0x90CD, +0x90D2, 0x90D4, 0x90D5, 0x90D6, 0x90D8, 0x90D9, 0x90DA, 0x90DE, +0x90DF, 0x90E0, 0x90E3, 0x90E4, 0x90E5, 0x90E9, 0x90EA, 0x90EC, +0x90EE, 0x90F0, 0x90F1, 0x90F2, 0x90F3, 0x90F5, 0x90F6, 0x90F7, +0x90F9, 0x90FA, 0x90FB, 0x90FC, 0x90FF, 0x9100, 0x9101, 0x9103, +0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910A, 0x910B, 0x910C, +0x910D, 0x910E, 0x910F, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, +0x9115, 0x9116, 0x9117, 0x9118, 0x911A, 0x911B, 0x911C, 0, +0x911D, 0x911F, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, +0x9128, 0x9129, 0x912A, 0x912B, 0x912C, 0x912D, 0x912E, 0x9130, +0x9132, 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913A, +0x913B, 0x913C, 0x913D, 0x913E, 0x913F, 0x9140, 0x9141, 0x9142, +0x9144, 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, +0x555C, 0x558B, 0x55D2, 0x5583, 0x55B1, 0x55B9, 0x5588, 0x5581, +0x559F, 0x557E, 0x55D6, 0x5591, 0x557B, 0x55DF, 0x55BD, 0x55BE, +0x5594, 0x5599, 0x55EA, 0x55F7, 0x55C9, 0x561F, 0x55D1, 0x55EB, +0x55EC, 0x55D4, 0x55E6, 0x55DD, 0x55C4, 0x55EF, 0x55E5, 0x55F2, +0x55F3, 0x55CC, 0x55CD, 0x55E8, 0x55F5, 0x55E4, 0x8F94, 0x561E, +0x5608, 0x560C, 0x5601, 0x5624, 0x5623, 0x55FE, 0x5600, 0x5627, +0x562D, 0x5658, 0x5639, 0x5657, 0x562C, 0x564D, 0x5662, 0x5659, +0x565C, 0x564C, 0x5654, 0x5686, 0x5664, 0x5671, 0x566B, 0x567B, +0x567C, 0x5685, 0x5693, 0x56AF, 0x56D4, 0x56D7, 0x56DD, 0x56E1, +0x56F5, 0x56EB, 0x56F9, 0x56FF, 0x5704, 0x570A, 0x5709, 0x571C, +0x5E0F, 0x5E19, 0x5E14, 0x5E11, 0x5E31, 0x5E3B, 0x5E3C, 0, +0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, +0x9158, 0x9159, 0x915B, 0x915C, 0x915F, 0x9160, 0x9166, 0x9167, +0x9168, 0x916B, 0x916D, 0x9173, 0x917A, 0x917B, 0x917C, 0x9180, +0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918A, 0x918E, +0x918F, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, +0x919C, 0x919D, 0x919E, 0x919F, 0x91A0, 0x91A1, 0x91A4, 0x91A5, +0x91A6, 0x91A7, 0x91A8, 0x91A9, 0x91AB, 0x91AC, 0x91B0, 0x91B1, +0x91B2, 0x91B3, 0x91B6, 0x91B7, 0x91B8, 0x91B9, 0x91BB, 0, +0x91BC, 0x91BD, 0x91BE, 0x91BF, 0x91C0, 0x91C1, 0x91C2, 0x91C3, +0x91C4, 0x91C5, 0x91C6, 0x91C8, 0x91CB, 0x91D0, 0x91D2, 0x91D3, +0x91D4, 0x91D5, 0x91D6, 0x91D7, 0x91D8, 0x91D9, 0x91DA, 0x91DB, +0x91DD, 0x91DE, 0x91DF, 0x91E0, 0x91E1, 0x91E2, 0x91E3, 0x91E4, +0x91E5, 0x5E37, 0x5E44, 0x5E54, 0x5E5B, 0x5E5E, 0x5E61, 0x5C8C, +0x5C7A, 0x5C8D, 0x5C90, 0x5C96, 0x5C88, 0x5C98, 0x5C99, 0x5C91, +0x5C9A, 0x5C9C, 0x5CB5, 0x5CA2, 0x5CBD, 0x5CAC, 0x5CAB, 0x5CB1, +0x5CA3, 0x5CC1, 0x5CB7, 0x5CC4, 0x5CD2, 0x5CE4, 0x5CCB, 0x5CE5, +0x5D02, 0x5D03, 0x5D27, 0x5D26, 0x5D2E, 0x5D24, 0x5D1E, 0x5D06, +0x5D1B, 0x5D58, 0x5D3E, 0x5D34, 0x5D3D, 0x5D6C, 0x5D5B, 0x5D6F, +0x5D5D, 0x5D6B, 0x5D4B, 0x5D4A, 0x5D69, 0x5D74, 0x5D82, 0x5D99, +0x5D9D, 0x8C73, 0x5DB7, 0x5DC5, 0x5F73, 0x5F77, 0x5F82, 0x5F87, +0x5F89, 0x5F8C, 0x5F95, 0x5F99, 0x5F9C, 0x5FA8, 0x5FAD, 0x5FB5, +0x5FBC, 0x8862, 0x5F61, 0x72AD, 0x72B0, 0x72B4, 0x72B7, 0x72B8, +0x72C3, 0x72C1, 0x72CE, 0x72CD, 0x72D2, 0x72E8, 0x72EF, 0x72E9, +0x72F2, 0x72F4, 0x72F7, 0x7301, 0x72F3, 0x7303, 0x72FA, 0, +0x91E6, 0x91E7, 0x91E8, 0x91E9, 0x91EA, 0x91EB, 0x91EC, 0x91ED, +0x91EE, 0x91EF, 0x91F0, 0x91F1, 0x91F2, 0x91F3, 0x91F4, 0x91F5, +0x91F6, 0x91F7, 0x91F8, 0x91F9, 0x91FA, 0x91FB, 0x91FC, 0x91FD, +0x91FE, 0x91FF, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, +0x9206, 0x9207, 0x9208, 0x9209, 0x920A, 0x920B, 0x920C, 0x920D, +0x920E, 0x920F, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, +0x9216, 0x9217, 0x9218, 0x9219, 0x921A, 0x921B, 0x921C, 0x921D, +0x921E, 0x921F, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0, +0x9225, 0x9226, 0x9227, 0x9228, 0x9229, 0x922A, 0x922B, 0x922C, +0x922D, 0x922E, 0x922F, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, +0x9235, 0x9236, 0x9237, 0x9238, 0x9239, 0x923A, 0x923B, 0x923C, +0x923D, 0x923E, 0x923F, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, +0x9245, 0x72FB, 0x7317, 0x7313, 0x7321, 0x730A, 0x731E, 0x731D, +0x7315, 0x7322, 0x7339, 0x7325, 0x732C, 0x7338, 0x7331, 0x7350, +0x734D, 0x7357, 0x7360, 0x736C, 0x736F, 0x737E, 0x821B, 0x5925, +0x98E7, 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996A, +0x996B, 0x996C, 0x9974, 0x9977, 0x997D, 0x9980, 0x9984, 0x9987, +0x998A, 0x998D, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5E80, +0x5E91, 0x5E8B, 0x5E96, 0x5EA5, 0x5EA0, 0x5EB9, 0x5EB5, 0x5EBE, +0x5EB3, 0x8D53, 0x5ED2, 0x5ED1, 0x5EDB, 0x5EE8, 0x5EEA, 0x81BA, +0x5FC4, 0x5FC9, 0x5FD6, 0x5FCF, 0x6003, 0x5FEE, 0x6004, 0x5FE1, +0x5FE4, 0x5FFE, 0x6005, 0x6006, 0x5FEA, 0x5FED, 0x5FF8, 0x6019, +0x6035, 0x6026, 0x601B, 0x600F, 0x600D, 0x6029, 0x602B, 0x600A, +0x603F, 0x6021, 0x6078, 0x6079, 0x607B, 0x607A, 0x6042, 0, +0x9246, 0x9247, 0x9248, 0x9249, 0x924A, 0x924B, 0x924C, 0x924D, +0x924E, 0x924F, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, +0x9256, 0x9257, 0x9258, 0x9259, 0x925A, 0x925B, 0x925C, 0x925D, +0x925E, 0x925F, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, +0x9266, 0x9267, 0x9268, 0x9269, 0x926A, 0x926B, 0x926C, 0x926D, +0x926E, 0x926F, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, +0x9277, 0x9278, 0x9279, 0x927A, 0x927B, 0x927C, 0x927D, 0x927E, +0x927F, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0, +0x9286, 0x9287, 0x9288, 0x9289, 0x928A, 0x928B, 0x928C, 0x928D, +0x928F, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, +0x9297, 0x9298, 0x9299, 0x929A, 0x929B, 0x929C, 0x929D, 0x929E, +0x929F, 0x92A0, 0x92A1, 0x92A2, 0x92A3, 0x92A4, 0x92A5, 0x92A6, +0x92A7, 0x606A, 0x607D, 0x6096, 0x609A, 0x60AD, 0x609D, 0x6083, +0x6092, 0x608C, 0x609B, 0x60EC, 0x60BB, 0x60B1, 0x60DD, 0x60D8, +0x60C6, 0x60DA, 0x60B4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60F4, +0x6100, 0x610E, 0x612B, 0x614A, 0x6175, 0x61AC, 0x6194, 0x61A7, +0x61B7, 0x61D4, 0x61F5, 0x5FDD, 0x96B3, 0x95E9, 0x95EB, 0x95F1, +0x95F3, 0x95F5, 0x95F6, 0x95FC, 0x95FE, 0x9603, 0x9604, 0x9606, +0x9608, 0x960A, 0x960B, 0x960C, 0x960D, 0x960F, 0x9612, 0x9615, +0x9616, 0x9617, 0x9619, 0x961A, 0x4E2C, 0x723F, 0x6215, 0x6C35, +0x6C54, 0x6C5C, 0x6C4A, 0x6CA3, 0x6C85, 0x6C90, 0x6C94, 0x6C8C, +0x6C68, 0x6C69, 0x6C74, 0x6C76, 0x6C86, 0x6CA9, 0x6CD0, 0x6CD4, +0x6CAD, 0x6CF7, 0x6CF8, 0x6CF1, 0x6CD7, 0x6CB2, 0x6CE0, 0x6CD6, +0x6CFA, 0x6CEB, 0x6CEE, 0x6CB1, 0x6CD3, 0x6CEF, 0x6CFE, 0, +0x92A8, 0x92A9, 0x92AA, 0x92AB, 0x92AC, 0x92AD, 0x92AF, 0x92B0, +0x92B1, 0x92B2, 0x92B3, 0x92B4, 0x92B5, 0x92B6, 0x92B7, 0x92B8, +0x92B9, 0x92BA, 0x92BB, 0x92BC, 0x92BD, 0x92BE, 0x92BF, 0x92C0, +0x92C1, 0x92C2, 0x92C3, 0x92C4, 0x92C5, 0x92C6, 0x92C7, 0x92C9, +0x92CA, 0x92CB, 0x92CC, 0x92CD, 0x92CE, 0x92CF, 0x92D0, 0x92D1, +0x92D2, 0x92D3, 0x92D4, 0x92D5, 0x92D6, 0x92D7, 0x92D8, 0x92D9, +0x92DA, 0x92DB, 0x92DC, 0x92DD, 0x92DE, 0x92DF, 0x92E0, 0x92E1, +0x92E2, 0x92E3, 0x92E4, 0x92E5, 0x92E6, 0x92E7, 0x92E8, 0, +0x92E9, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, +0x92F1, 0x92F2, 0x92F3, 0x92F4, 0x92F5, 0x92F6, 0x92F7, 0x92F8, +0x92F9, 0x92FA, 0x92FB, 0x92FC, 0x92FD, 0x92FE, 0x92FF, 0x9300, +0x9301, 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, +0x9309, 0x6D39, 0x6D27, 0x6D0C, 0x6D43, 0x6D48, 0x6D07, 0x6D04, +0x6D19, 0x6D0E, 0x6D2B, 0x6D4D, 0x6D2E, 0x6D35, 0x6D1A, 0x6D4F, +0x6D52, 0x6D54, 0x6D33, 0x6D91, 0x6D6F, 0x6D9E, 0x6DA0, 0x6D5E, +0x6D93, 0x6D94, 0x6D5C, 0x6D60, 0x6D7C, 0x6D63, 0x6E1A, 0x6DC7, +0x6DC5, 0x6DDE, 0x6E0E, 0x6DBF, 0x6DE0, 0x6E11, 0x6DE6, 0x6DDD, +0x6DD9, 0x6E16, 0x6DAB, 0x6E0C, 0x6DAE, 0x6E2B, 0x6E6E, 0x6E4E, +0x6E6B, 0x6EB2, 0x6E5F, 0x6E86, 0x6E53, 0x6E54, 0x6E32, 0x6E25, +0x6E44, 0x6EDF, 0x6EB1, 0x6E98, 0x6EE0, 0x6F2D, 0x6EE2, 0x6EA5, +0x6EA7, 0x6EBD, 0x6EBB, 0x6EB7, 0x6ED7, 0x6EB4, 0x6ECF, 0x6E8F, +0x6EC2, 0x6E9F, 0x6F62, 0x6F46, 0x6F47, 0x6F24, 0x6F15, 0x6EF9, +0x6F2F, 0x6F36, 0x6F4B, 0x6F74, 0x6F2A, 0x6F09, 0x6F29, 0x6F89, +0x6F8D, 0x6F8C, 0x6F78, 0x6F72, 0x6F7C, 0x6F7A, 0x6FD1, 0, +0x930A, 0x930B, 0x930C, 0x930D, 0x930E, 0x930F, 0x9310, 0x9311, +0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, +0x931A, 0x931B, 0x931C, 0x931D, 0x931E, 0x931F, 0x9320, 0x9321, +0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, +0x932A, 0x932B, 0x932C, 0x932D, 0x932E, 0x932F, 0x9330, 0x9331, +0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, +0x933A, 0x933B, 0x933C, 0x933D, 0x933F, 0x9340, 0x9341, 0x9342, +0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0, +0x934A, 0x934B, 0x934C, 0x934D, 0x934E, 0x934F, 0x9350, 0x9351, +0x9352, 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, +0x935A, 0x935B, 0x935C, 0x935D, 0x935E, 0x935F, 0x9360, 0x9361, +0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, +0x936B, 0x6FC9, 0x6FA7, 0x6FB9, 0x6FB6, 0x6FC2, 0x6FE1, 0x6FEE, +0x6FDE, 0x6FE0, 0x6FEF, 0x701A, 0x7023, 0x701B, 0x7039, 0x7035, +0x704F, 0x705E, 0x5B80, 0x5B84, 0x5B95, 0x5B93, 0x5BA5, 0x5BB8, +0x752F, 0x9A9E, 0x6434, 0x5BE4, 0x5BEE, 0x8930, 0x5BF0, 0x8E47, +0x8B07, 0x8FB6, 0x8FD3, 0x8FD5, 0x8FE5, 0x8FEE, 0x8FE4, 0x8FE9, +0x8FE6, 0x8FF3, 0x8FE8, 0x9005, 0x9004, 0x900B, 0x9026, 0x9011, +0x900D, 0x9016, 0x9021, 0x9035, 0x9036, 0x902D, 0x902F, 0x9044, +0x9051, 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905B, 0x66B9, +0x9074, 0x907D, 0x9082, 0x9088, 0x9083, 0x908B, 0x5F50, 0x5F57, +0x5F56, 0x5F58, 0x5C3B, 0x54AB, 0x5C50, 0x5C59, 0x5B71, 0x5C63, +0x5C66, 0x7FBC, 0x5F2A, 0x5F29, 0x5F2D, 0x8274, 0x5F3C, 0x9B3B, +0x5C6E, 0x5981, 0x5983, 0x598D, 0x59A9, 0x59AA, 0x59A3, 0, +0x936C, 0x936D, 0x936E, 0x936F, 0x9370, 0x9371, 0x9372, 0x9373, +0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937A, 0x937B, +0x937C, 0x937D, 0x937E, 0x937F, 0x9380, 0x9381, 0x9382, 0x9383, +0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938A, 0x938B, +0x938C, 0x938D, 0x938E, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, +0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, 0x939C, +0x939D, 0x939E, 0x939F, 0x93A0, 0x93A1, 0x93A2, 0x93A3, 0x93A4, +0x93A5, 0x93A6, 0x93A7, 0x93A8, 0x93A9, 0x93AA, 0x93AB, 0, +0x93AC, 0x93AD, 0x93AE, 0x93AF, 0x93B0, 0x93B1, 0x93B2, 0x93B3, +0x93B4, 0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, 0x93BA, 0x93BB, +0x93BC, 0x93BD, 0x93BE, 0x93BF, 0x93C0, 0x93C1, 0x93C2, 0x93C3, +0x93C4, 0x93C5, 0x93C6, 0x93C7, 0x93C8, 0x93C9, 0x93CB, 0x93CC, +0x93CD, 0x5997, 0x59CA, 0x59AB, 0x599E, 0x59A4, 0x59D2, 0x59B2, +0x59AF, 0x59D7, 0x59BE, 0x5A05, 0x5A06, 0x59DD, 0x5A08, 0x59E3, +0x59D8, 0x59F9, 0x5A0C, 0x5A09, 0x5A32, 0x5A34, 0x5A11, 0x5A23, +0x5A13, 0x5A40, 0x5A67, 0x5A4A, 0x5A55, 0x5A3C, 0x5A62, 0x5A75, +0x80EC, 0x5AAA, 0x5A9B, 0x5A77, 0x5A7A, 0x5ABE, 0x5AEB, 0x5AB2, +0x5AD2, 0x5AD4, 0x5AB8, 0x5AE0, 0x5AE3, 0x5AF1, 0x5AD6, 0x5AE6, +0x5AD8, 0x5ADC, 0x5B09, 0x5B17, 0x5B16, 0x5B32, 0x5B37, 0x5B40, +0x5C15, 0x5C1C, 0x5B5A, 0x5B65, 0x5B73, 0x5B51, 0x5B53, 0x5B62, +0x9A75, 0x9A77, 0x9A78, 0x9A7A, 0x9A7F, 0x9A7D, 0x9A80, 0x9A81, +0x9A85, 0x9A88, 0x9A8A, 0x9A90, 0x9A92, 0x9A93, 0x9A96, 0x9A98, +0x9A9B, 0x9A9C, 0x9A9D, 0x9A9F, 0x9AA0, 0x9AA2, 0x9AA3, 0x9AA5, +0x9AA7, 0x7E9F, 0x7EA1, 0x7EA3, 0x7EA5, 0x7EA8, 0x7EA9, 0, +0x93CE, 0x93CF, 0x93D0, 0x93D1, 0x93D2, 0x93D3, 0x93D4, 0x93D5, +0x93D7, 0x93D8, 0x93D9, 0x93DA, 0x93DB, 0x93DC, 0x93DD, 0x93DE, +0x93DF, 0x93E0, 0x93E1, 0x93E2, 0x93E3, 0x93E4, 0x93E5, 0x93E6, +0x93E7, 0x93E8, 0x93E9, 0x93EA, 0x93EB, 0x93EC, 0x93ED, 0x93EE, +0x93EF, 0x93F0, 0x93F1, 0x93F2, 0x93F3, 0x93F4, 0x93F5, 0x93F6, +0x93F7, 0x93F8, 0x93F9, 0x93FA, 0x93FB, 0x93FC, 0x93FD, 0x93FE, +0x93FF, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, +0x9407, 0x9408, 0x9409, 0x940A, 0x940B, 0x940C, 0x940D, 0, +0x940E, 0x940F, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, +0x9416, 0x9417, 0x9418, 0x9419, 0x941A, 0x941B, 0x941C, 0x941D, +0x941E, 0x941F, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, +0x9426, 0x9427, 0x9428, 0x9429, 0x942A, 0x942B, 0x942C, 0x942D, +0x942E, 0x7EAD, 0x7EB0, 0x7EBE, 0x7EC0, 0x7EC1, 0x7EC2, 0x7EC9, +0x7ECB, 0x7ECC, 0x7ED0, 0x7ED4, 0x7ED7, 0x7EDB, 0x7EE0, 0x7EE1, +0x7EE8, 0x7EEB, 0x7EEE, 0x7EEF, 0x7EF1, 0x7EF2, 0x7F0D, 0x7EF6, +0x7EFA, 0x7EFB, 0x7EFE, 0x7F01, 0x7F02, 0x7F03, 0x7F07, 0x7F08, +0x7F0B, 0x7F0C, 0x7F0F, 0x7F11, 0x7F12, 0x7F17, 0x7F19, 0x7F1C, +0x7F1B, 0x7F1F, 0x7F21, 0x7F22, 0x7F23, 0x7F24, 0x7F25, 0x7F26, +0x7F27, 0x7F2A, 0x7F2B, 0x7F2C, 0x7F2D, 0x7F2F, 0x7F30, 0x7F31, +0x7F32, 0x7F33, 0x7F35, 0x5E7A, 0x757F, 0x5DDB, 0x753E, 0x9095, +0x738E, 0x7391, 0x73AE, 0x73A2, 0x739F, 0x73CF, 0x73C2, 0x73D1, +0x73B7, 0x73B3, 0x73C0, 0x73C9, 0x73C8, 0x73E5, 0x73D9, 0x987C, +0x740A, 0x73E9, 0x73E7, 0x73DE, 0x73BA, 0x73F2, 0x740F, 0x742A, +0x745B, 0x7426, 0x7425, 0x7428, 0x7430, 0x742E, 0x742C, 0, +0x942F, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, +0x9437, 0x9438, 0x9439, 0x943A, 0x943B, 0x943C, 0x943D, 0x943F, +0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, +0x9448, 0x9449, 0x944A, 0x944B, 0x944C, 0x944D, 0x944E, 0x944F, +0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, +0x9458, 0x9459, 0x945A, 0x945B, 0x945C, 0x945D, 0x945E, 0x945F, +0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, +0x9468, 0x9469, 0x946A, 0x946C, 0x946D, 0x946E, 0x946F, 0, +0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, +0x9478, 0x9479, 0x947A, 0x947B, 0x947C, 0x947D, 0x947E, 0x947F, +0x9480, 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, +0x94C7, 0x94CF, 0x94D3, 0x94D4, 0x94DA, 0x94E6, 0x94FB, 0x951C, +0x9520, 0x741B, 0x741A, 0x7441, 0x745C, 0x7457, 0x7455, 0x7459, +0x7477, 0x746D, 0x747E, 0x749C, 0x748E, 0x7480, 0x7481, 0x7487, +0x748B, 0x749E, 0x74A8, 0x74A9, 0x7490, 0x74A7, 0x74D2, 0x74BA, +0x97EA, 0x97EB, 0x97EC, 0x674C, 0x6753, 0x675E, 0x6748, 0x6769, +0x67A5, 0x6787, 0x676A, 0x6773, 0x6798, 0x67A7, 0x6775, 0x67A8, +0x679E, 0x67AD, 0x678B, 0x6777, 0x677C, 0x67F0, 0x6809, 0x67D8, +0x680A, 0x67E9, 0x67B0, 0x680C, 0x67D9, 0x67B5, 0x67DA, 0x67B3, +0x67DD, 0x6800, 0x67C3, 0x67B8, 0x67E2, 0x680E, 0x67C1, 0x67FD, +0x6832, 0x6833, 0x6860, 0x6861, 0x684E, 0x6862, 0x6844, 0x6864, +0x6883, 0x681D, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683E, +0x684A, 0x6849, 0x6829, 0x68B5, 0x688F, 0x6874, 0x6877, 0x6893, +0x686B, 0x68C2, 0x696E, 0x68FC, 0x691F, 0x6920, 0x68F9, 0, +0x9527, 0x9533, 0x953D, 0x9543, 0x9548, 0x954B, 0x9555, 0x955A, +0x9560, 0x956E, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957A, +0x957B, 0x957C, 0x957D, 0x957E, 0x9580, 0x9581, 0x9582, 0x9583, +0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958A, 0x958B, +0x958C, 0x958D, 0x958E, 0x958F, 0x9590, 0x9591, 0x9592, 0x9593, +0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959A, 0x959B, +0x959C, 0x959D, 0x959E, 0x959F, 0x95A0, 0x95A1, 0x95A2, 0x95A3, +0x95A4, 0x95A5, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0x95AA, 0, +0x95AB, 0x95AC, 0x95AD, 0x95AE, 0x95AF, 0x95B0, 0x95B1, 0x95B2, +0x95B3, 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0x95B8, 0x95B9, 0x95BA, +0x95BB, 0x95BC, 0x95BD, 0x95BE, 0x95BF, 0x95C0, 0x95C1, 0x95C2, +0x95C3, 0x95C4, 0x95C5, 0x95C6, 0x95C7, 0x95C8, 0x95C9, 0x95CA, +0x95CB, 0x6924, 0x68F0, 0x690B, 0x6901, 0x6957, 0x68E3, 0x6910, +0x6971, 0x6939, 0x6960, 0x6942, 0x695D, 0x6984, 0x696B, 0x6980, +0x6998, 0x6978, 0x6934, 0x69CC, 0x6987, 0x6988, 0x69CE, 0x6989, +0x6966, 0x6963, 0x6979, 0x699B, 0x69A7, 0x69BB, 0x69AB, 0x69AD, +0x69D4, 0x69B1, 0x69C1, 0x69CA, 0x69DF, 0x6995, 0x69E0, 0x698D, +0x69FF, 0x6A2F, 0x69ED, 0x6A17, 0x6A18, 0x6A65, 0x69F2, 0x6A44, +0x6A3E, 0x6AA0, 0x6A50, 0x6A5B, 0x6A35, 0x6A8E, 0x6A79, 0x6A3D, +0x6A28, 0x6A58, 0x6A7C, 0x6A91, 0x6A90, 0x6AA9, 0x6A97, 0x6AAB, +0x7337, 0x7352, 0x6B81, 0x6B82, 0x6B87, 0x6B84, 0x6B92, 0x6B93, +0x6B8D, 0x6B9A, 0x6B9B, 0x6BA1, 0x6BAA, 0x8F6B, 0x8F6D, 0x8F71, +0x8F72, 0x8F73, 0x8F75, 0x8F76, 0x8F78, 0x8F77, 0x8F79, 0x8F7A, +0x8F7C, 0x8F7E, 0x8F81, 0x8F82, 0x8F84, 0x8F87, 0x8F8B, 0, +0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, 0x95D1, 0x95D2, 0x95D3, +0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, 0x95DA, 0x95DB, +0x95DC, 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, 0x95E2, 0x95E3, +0x95E4, 0x95E5, 0x95E6, 0x95E7, 0x95EC, 0x95FF, 0x9607, 0x9613, +0x9618, 0x961B, 0x961E, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, +0x9627, 0x9628, 0x9629, 0x962B, 0x962C, 0x962D, 0x962F, 0x9630, +0x9637, 0x9638, 0x9639, 0x963A, 0x963E, 0x9641, 0x9643, 0x964A, +0x964E, 0x964F, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0, +0x9658, 0x9659, 0x965A, 0x965C, 0x965D, 0x965E, 0x9660, 0x9663, +0x9665, 0x9666, 0x966B, 0x966D, 0x966E, 0x966F, 0x9670, 0x9671, +0x9673, 0x9678, 0x9679, 0x967A, 0x967B, 0x967C, 0x967D, 0x967E, +0x967F, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, +0x968A, 0x8F8D, 0x8F8E, 0x8F8F, 0x8F98, 0x8F9A, 0x8ECE, 0x620B, +0x6217, 0x621B, 0x621F, 0x6222, 0x6221, 0x6225, 0x6224, 0x622C, +0x81E7, 0x74EF, 0x74F4, 0x74FF, 0x750F, 0x7511, 0x7513, 0x6534, +0x65EE, 0x65EF, 0x65F0, 0x660A, 0x6619, 0x6772, 0x6603, 0x6615, +0x6600, 0x7085, 0x66F7, 0x661D, 0x6634, 0x6631, 0x6636, 0x6635, +0x8006, 0x665F, 0x6654, 0x6641, 0x664F, 0x6656, 0x6661, 0x6657, +0x6677, 0x6684, 0x668C, 0x66A7, 0x669D, 0x66BE, 0x66DB, 0x66DC, +0x66E6, 0x66E9, 0x8D32, 0x8D33, 0x8D36, 0x8D3B, 0x8D3D, 0x8D40, +0x8D45, 0x8D46, 0x8D48, 0x8D49, 0x8D47, 0x8D4D, 0x8D55, 0x8D59, +0x89C7, 0x89CA, 0x89CB, 0x89CC, 0x89CE, 0x89CF, 0x89D0, 0x89D1, +0x726E, 0x729F, 0x725D, 0x7266, 0x726F, 0x727E, 0x727F, 0x7284, +0x728B, 0x728D, 0x728F, 0x7292, 0x6308, 0x6332, 0x63B0, 0, +0x968C, 0x968E, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969A, +0x969B, 0x969D, 0x969E, 0x969F, 0x96A0, 0x96A1, 0x96A2, 0x96A3, +0x96A4, 0x96A5, 0x96A6, 0x96A8, 0x96A9, 0x96AA, 0x96AB, 0x96AC, +0x96AD, 0x96AE, 0x96AF, 0x96B1, 0x96B2, 0x96B4, 0x96B5, 0x96B7, +0x96B8, 0x96BA, 0x96BB, 0x96BF, 0x96C2, 0x96C3, 0x96C8, 0x96CA, +0x96CB, 0x96D0, 0x96D1, 0x96D3, 0x96D4, 0x96D6, 0x96D7, 0x96D8, +0x96D9, 0x96DA, 0x96DB, 0x96DC, 0x96DD, 0x96DE, 0x96DF, 0x96E1, +0x96E2, 0x96E3, 0x96E4, 0x96E5, 0x96E6, 0x96E7, 0x96EB, 0, +0x96EC, 0x96ED, 0x96EE, 0x96F0, 0x96F1, 0x96F2, 0x96F4, 0x96F5, +0x96F8, 0x96FA, 0x96FB, 0x96FC, 0x96FD, 0x96FF, 0x9702, 0x9703, +0x9705, 0x970A, 0x970B, 0x970C, 0x9710, 0x9711, 0x9712, 0x9714, +0x9715, 0x9717, 0x9718, 0x9719, 0x971A, 0x971B, 0x971D, 0x971F, +0x9720, 0x643F, 0x64D8, 0x8004, 0x6BEA, 0x6BF3, 0x6BFD, 0x6BF5, +0x6BF9, 0x6C05, 0x6C07, 0x6C06, 0x6C0D, 0x6C15, 0x6C18, 0x6C19, +0x6C1A, 0x6C21, 0x6C29, 0x6C24, 0x6C2A, 0x6C32, 0x6535, 0x6555, +0x656B, 0x724D, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809F, +0x809C, 0x8093, 0x80BC, 0x670A, 0x80BD, 0x80B1, 0x80AB, 0x80AD, +0x80B4, 0x80B7, 0x80E7, 0x80E8, 0x80E9, 0x80EA, 0x80DB, 0x80C2, +0x80C4, 0x80D9, 0x80CD, 0x80D7, 0x6710, 0x80DD, 0x80EB, 0x80F1, +0x80F4, 0x80ED, 0x810D, 0x810E, 0x80F2, 0x80FC, 0x6715, 0x8112, +0x8C5A, 0x8136, 0x811E, 0x812C, 0x8118, 0x8132, 0x8148, 0x814C, +0x8153, 0x8174, 0x8159, 0x815A, 0x8171, 0x8160, 0x8169, 0x817C, +0x817D, 0x816D, 0x8167, 0x584D, 0x5AB5, 0x8188, 0x8182, 0x8191, +0x6ED5, 0x81A3, 0x81AA, 0x81CC, 0x6726, 0x81CA, 0x81BB, 0, +0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, +0x9729, 0x972B, 0x972C, 0x972E, 0x972F, 0x9731, 0x9733, 0x9734, +0x9735, 0x9736, 0x9737, 0x973A, 0x973B, 0x973C, 0x973D, 0x973F, +0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, +0x9748, 0x9749, 0x974A, 0x974B, 0x974C, 0x974D, 0x974E, 0x974F, +0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975A, 0x975C, +0x975D, 0x975F, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976A, +0x976B, 0x976C, 0x976D, 0x976E, 0x976F, 0x9770, 0x9771, 0, +0x9772, 0x9775, 0x9777, 0x9778, 0x9779, 0x977A, 0x977B, 0x977D, +0x977E, 0x977F, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, +0x9787, 0x9788, 0x9789, 0x978A, 0x978C, 0x978E, 0x978F, 0x9790, +0x9793, 0x9795, 0x9796, 0x9797, 0x9799, 0x979A, 0x979B, 0x979C, +0x979D, 0x81C1, 0x81A6, 0x6B24, 0x6B37, 0x6B39, 0x6B43, 0x6B46, +0x6B59, 0x98D1, 0x98D2, 0x98D3, 0x98D5, 0x98D9, 0x98DA, 0x6BB3, +0x5F40, 0x6BC2, 0x89F3, 0x6590, 0x9F51, 0x6593, 0x65BC, 0x65C6, +0x65C4, 0x65C3, 0x65CC, 0x65CE, 0x65D2, 0x65D6, 0x7080, 0x709C, +0x7096, 0x709D, 0x70BB, 0x70C0, 0x70B7, 0x70AB, 0x70B1, 0x70E8, +0x70CA, 0x7110, 0x7113, 0x7116, 0x712F, 0x7131, 0x7173, 0x715C, +0x7168, 0x7145, 0x7172, 0x714A, 0x7178, 0x717A, 0x7198, 0x71B3, +0x71B5, 0x71A8, 0x71A0, 0x71E0, 0x71D4, 0x71E7, 0x71F9, 0x721D, +0x7228, 0x706C, 0x7118, 0x7166, 0x71B9, 0x623E, 0x623D, 0x6243, +0x6248, 0x6249, 0x793B, 0x7940, 0x7946, 0x7949, 0x795B, 0x795C, +0x7953, 0x795A, 0x7962, 0x7957, 0x7960, 0x796F, 0x7967, 0x797A, +0x7985, 0x798A, 0x799A, 0x79A7, 0x79B3, 0x5FD1, 0x5FD0, 0, +0x979E, 0x979F, 0x97A1, 0x97A2, 0x97A4, 0x97A5, 0x97A6, 0x97A7, +0x97A8, 0x97A9, 0x97AA, 0x97AC, 0x97AE, 0x97B0, 0x97B1, 0x97B3, +0x97B5, 0x97B6, 0x97B7, 0x97B8, 0x97B9, 0x97BA, 0x97BB, 0x97BC, +0x97BD, 0x97BE, 0x97BF, 0x97C0, 0x97C1, 0x97C2, 0x97C3, 0x97C4, +0x97C5, 0x97C6, 0x97C7, 0x97C8, 0x97C9, 0x97CA, 0x97CB, 0x97CC, +0x97CD, 0x97CE, 0x97CF, 0x97D0, 0x97D1, 0x97D2, 0x97D3, 0x97D4, +0x97D5, 0x97D6, 0x97D7, 0x97D8, 0x97D9, 0x97DA, 0x97DB, 0x97DC, +0x97DD, 0x97DE, 0x97DF, 0x97E0, 0x97E1, 0x97E2, 0x97E3, 0, +0x97E4, 0x97E5, 0x97E8, 0x97EE, 0x97EF, 0x97F0, 0x97F1, 0x97F2, +0x97F4, 0x97F7, 0x97F8, 0x97F9, 0x97FA, 0x97FB, 0x97FC, 0x97FD, +0x97FE, 0x97FF, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, +0x9806, 0x9807, 0x9808, 0x9809, 0x980A, 0x980B, 0x980C, 0x980D, +0x980E, 0x603C, 0x605D, 0x605A, 0x6067, 0x6041, 0x6059, 0x6063, +0x60AB, 0x6106, 0x610D, 0x615D, 0x61A9, 0x619D, 0x61CB, 0x61D1, +0x6206, 0x8080, 0x807F, 0x6C93, 0x6CF6, 0x6DFC, 0x77F6, 0x77F8, +0x7800, 0x7809, 0x7817, 0x7818, 0x7811, 0x65AB, 0x782D, 0x781C, +0x781D, 0x7839, 0x783A, 0x783B, 0x781F, 0x783C, 0x7825, 0x782C, +0x7823, 0x7829, 0x784E, 0x786D, 0x7856, 0x7857, 0x7826, 0x7850, +0x7847, 0x784C, 0x786A, 0x789B, 0x7893, 0x789A, 0x7887, 0x789C, +0x78A1, 0x78A3, 0x78B2, 0x78B9, 0x78A5, 0x78D4, 0x78D9, 0x78C9, +0x78EC, 0x78F2, 0x7905, 0x78F4, 0x7913, 0x7924, 0x791E, 0x7934, +0x9F9B, 0x9EF9, 0x9EFB, 0x9EFC, 0x76F1, 0x7704, 0x770D, 0x76F9, +0x7707, 0x7708, 0x771A, 0x7722, 0x7719, 0x772D, 0x7726, 0x7735, +0x7738, 0x7750, 0x7751, 0x7747, 0x7743, 0x775A, 0x7768, 0, +0x980F, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, +0x9817, 0x9818, 0x9819, 0x981A, 0x981B, 0x981C, 0x981D, 0x981E, +0x981F, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, +0x9827, 0x9828, 0x9829, 0x982A, 0x982B, 0x982C, 0x982D, 0x982E, +0x982F, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, +0x9837, 0x9838, 0x9839, 0x983A, 0x983B, 0x983C, 0x983D, 0x983E, +0x983F, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, +0x9847, 0x9848, 0x9849, 0x984A, 0x984B, 0x984C, 0x984D, 0, +0x984E, 0x984F, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, +0x9856, 0x9857, 0x9858, 0x9859, 0x985A, 0x985B, 0x985C, 0x985D, +0x985E, 0x985F, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, +0x9866, 0x9867, 0x9868, 0x9869, 0x986A, 0x986B, 0x986C, 0x986D, +0x986E, 0x7762, 0x7765, 0x777F, 0x778D, 0x777D, 0x7780, 0x778C, +0x7791, 0x779F, 0x77A0, 0x77B0, 0x77B5, 0x77BD, 0x753A, 0x7540, +0x754E, 0x754B, 0x7548, 0x755B, 0x7572, 0x7579, 0x7583, 0x7F58, +0x7F61, 0x7F5F, 0x8A48, 0x7F68, 0x7F74, 0x7F71, 0x7F79, 0x7F81, +0x7F7E, 0x76CD, 0x76E5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948B, +0x948A, 0x948C, 0x948D, 0x948F, 0x9490, 0x9494, 0x9497, 0x9495, +0x949A, 0x949B, 0x949C, 0x94A3, 0x94A4, 0x94AB, 0x94AA, 0x94AD, +0x94AC, 0x94AF, 0x94B0, 0x94B2, 0x94B4, 0x94B6, 0x94B7, 0x94B8, +0x94B9, 0x94BA, 0x94BC, 0x94BD, 0x94BF, 0x94C4, 0x94C8, 0x94C9, +0x94CA, 0x94CB, 0x94CC, 0x94CD, 0x94CE, 0x94D0, 0x94D1, 0x94D2, +0x94D5, 0x94D6, 0x94D7, 0x94D9, 0x94D8, 0x94DB, 0x94DE, 0x94DF, +0x94E0, 0x94E2, 0x94E4, 0x94E5, 0x94E7, 0x94E8, 0x94EA, 0, +0x986F, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988B, 0x988E, +0x9892, 0x9895, 0x9899, 0x98A3, 0x98A8, 0x98A9, 0x98AA, 0x98AB, +0x98AC, 0x98AD, 0x98AE, 0x98AF, 0x98B0, 0x98B1, 0x98B2, 0x98B3, +0x98B4, 0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, 0x98BA, 0x98BB, +0x98BC, 0x98BD, 0x98BE, 0x98BF, 0x98C0, 0x98C1, 0x98C2, 0x98C3, +0x98C4, 0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0x98CB, +0x98CC, 0x98CD, 0x98CF, 0x98D0, 0x98D4, 0x98D6, 0x98D7, 0x98DB, +0x98DC, 0x98DD, 0x98E0, 0x98E1, 0x98E2, 0x98E3, 0x98E4, 0, +0x98E5, 0x98E6, 0x98E9, 0x98EA, 0x98EB, 0x98EC, 0x98ED, 0x98EE, +0x98EF, 0x98F0, 0x98F1, 0x98F2, 0x98F3, 0x98F4, 0x98F5, 0x98F6, +0x98F7, 0x98F8, 0x98F9, 0x98FA, 0x98FB, 0x98FC, 0x98FD, 0x98FE, +0x98FF, 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, +0x9907, 0x94E9, 0x94EB, 0x94EE, 0x94EF, 0x94F3, 0x94F4, 0x94F5, +0x94F7, 0x94F9, 0x94FC, 0x94FD, 0x94FF, 0x9503, 0x9502, 0x9506, +0x9507, 0x9509, 0x950A, 0x950D, 0x950E, 0x950F, 0x9512, 0x9513, +0x9514, 0x9515, 0x9516, 0x9518, 0x951B, 0x951D, 0x951E, 0x951F, +0x9522, 0x952A, 0x952B, 0x9529, 0x952C, 0x9531, 0x9532, 0x9534, +0x9536, 0x9537, 0x9538, 0x953C, 0x953E, 0x953F, 0x9542, 0x9535, +0x9544, 0x9545, 0x9546, 0x9549, 0x954C, 0x954E, 0x954F, 0x9552, +0x9553, 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955B, 0x955E, +0x955F, 0x955D, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, +0x9568, 0x9569, 0x956A, 0x956B, 0x956C, 0x956F, 0x9571, 0x9572, +0x9573, 0x953A, 0x77E7, 0x77EC, 0x96C9, 0x79D5, 0x79ED, 0x79E3, +0x79EB, 0x7A06, 0x5D47, 0x7A03, 0x7A02, 0x7A1E, 0x7A14, 0, +0x9908, 0x9909, 0x990A, 0x990B, 0x990C, 0x990E, 0x990F, 0x9911, +0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, +0x991A, 0x991B, 0x991C, 0x991D, 0x991E, 0x991F, 0x9920, 0x9921, +0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, +0x992A, 0x992B, 0x992C, 0x992D, 0x992F, 0x9930, 0x9931, 0x9932, +0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993A, +0x993B, 0x993C, 0x993D, 0x993E, 0x993F, 0x9940, 0x9941, 0x9942, +0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0, +0x994A, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, +0x9952, 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995A, 0x995B, +0x995C, 0x995D, 0x995E, 0x995F, 0x9960, 0x9961, 0x9962, 0x9964, +0x9966, 0x9973, 0x9978, 0x9979, 0x997B, 0x997E, 0x9982, 0x9983, +0x9989, 0x7A39, 0x7A37, 0x7A51, 0x9ECF, 0x99A5, 0x7A70, 0x7688, +0x768E, 0x7693, 0x7699, 0x76A4, 0x74DE, 0x74E0, 0x752C, 0x9E20, +0x9E22, 0x9E28, 0x9E29, 0x9E2A, 0x9E2B, 0x9E2C, 0x9E32, 0x9E31, +0x9E36, 0x9E38, 0x9E37, 0x9E39, 0x9E3A, 0x9E3E, 0x9E41, 0x9E42, +0x9E44, 0x9E46, 0x9E47, 0x9E48, 0x9E49, 0x9E4B, 0x9E4C, 0x9E4E, +0x9E51, 0x9E55, 0x9E57, 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5E, 0x9E63, +0x9E66, 0x9E67, 0x9E68, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, 0x9E71, +0x9E6D, 0x9E73, 0x7592, 0x7594, 0x7596, 0x75A0, 0x759D, 0x75AC, +0x75A3, 0x75B3, 0x75B4, 0x75B8, 0x75C4, 0x75B1, 0x75B0, 0x75C3, +0x75C2, 0x75D6, 0x75CD, 0x75E3, 0x75E8, 0x75E6, 0x75E4, 0x75EB, +0x75E7, 0x7603, 0x75F1, 0x75FC, 0x75FF, 0x7610, 0x7600, 0x7605, +0x760C, 0x7617, 0x760A, 0x7625, 0x7618, 0x7615, 0x7619, 0, +0x998C, 0x998E, 0x999A, 0x999B, 0x999C, 0x999D, 0x999E, 0x999F, +0x99A0, 0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A6, 0x99A7, 0x99A9, +0x99AA, 0x99AB, 0x99AC, 0x99AD, 0x99AE, 0x99AF, 0x99B0, 0x99B1, +0x99B2, 0x99B3, 0x99B4, 0x99B5, 0x99B6, 0x99B7, 0x99B8, 0x99B9, +0x99BA, 0x99BB, 0x99BC, 0x99BD, 0x99BE, 0x99BF, 0x99C0, 0x99C1, +0x99C2, 0x99C3, 0x99C4, 0x99C5, 0x99C6, 0x99C7, 0x99C8, 0x99C9, +0x99CA, 0x99CB, 0x99CC, 0x99CD, 0x99CE, 0x99CF, 0x99D0, 0x99D1, +0x99D2, 0x99D3, 0x99D4, 0x99D5, 0x99D6, 0x99D7, 0x99D8, 0, +0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, 0x99DE, 0x99DF, 0x99E0, +0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, 0x99E6, 0x99E7, 0x99E8, +0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0x99F0, +0x99F1, 0x99F2, 0x99F3, 0x99F4, 0x99F5, 0x99F6, 0x99F7, 0x99F8, +0x99F9, 0x761B, 0x763C, 0x7622, 0x7620, 0x7640, 0x762D, 0x7630, +0x763F, 0x7635, 0x7643, 0x763E, 0x7633, 0x764D, 0x765E, 0x7654, +0x765C, 0x7656, 0x766B, 0x766F, 0x7FCA, 0x7AE6, 0x7A78, 0x7A79, +0x7A80, 0x7A86, 0x7A88, 0x7A95, 0x7AA6, 0x7AA0, 0x7AAC, 0x7AA8, +0x7AAD, 0x7AB3, 0x8864, 0x8869, 0x8872, 0x887D, 0x887F, 0x8882, +0x88A2, 0x88C6, 0x88B7, 0x88BC, 0x88C9, 0x88E2, 0x88CE, 0x88E3, +0x88E5, 0x88F1, 0x891A, 0x88FC, 0x88E8, 0x88FE, 0x88F0, 0x8921, +0x8919, 0x8913, 0x891B, 0x890A, 0x8934, 0x892B, 0x8936, 0x8941, +0x8966, 0x897B, 0x758B, 0x80E5, 0x76B2, 0x76B4, 0x77DC, 0x8012, +0x8014, 0x8016, 0x801C, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, +0x8029, 0x8028, 0x8031, 0x800B, 0x8035, 0x8043, 0x8046, 0x804D, +0x8052, 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883, 0, +0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x99FE, 0x99FF, 0x9A00, 0x9A01, +0x9A02, 0x9A03, 0x9A04, 0x9A05, 0x9A06, 0x9A07, 0x9A08, 0x9A09, +0x9A0A, 0x9A0B, 0x9A0C, 0x9A0D, 0x9A0E, 0x9A0F, 0x9A10, 0x9A11, +0x9A12, 0x9A13, 0x9A14, 0x9A15, 0x9A16, 0x9A17, 0x9A18, 0x9A19, +0x9A1A, 0x9A1B, 0x9A1C, 0x9A1D, 0x9A1E, 0x9A1F, 0x9A20, 0x9A21, +0x9A22, 0x9A23, 0x9A24, 0x9A25, 0x9A26, 0x9A27, 0x9A28, 0x9A29, +0x9A2A, 0x9A2B, 0x9A2C, 0x9A2D, 0x9A2E, 0x9A2F, 0x9A30, 0x9A31, +0x9A32, 0x9A33, 0x9A34, 0x9A35, 0x9A36, 0x9A37, 0x9A38, 0, +0x9A39, 0x9A3A, 0x9A3B, 0x9A3C, 0x9A3D, 0x9A3E, 0x9A3F, 0x9A40, +0x9A41, 0x9A42, 0x9A43, 0x9A44, 0x9A45, 0x9A46, 0x9A47, 0x9A48, +0x9A49, 0x9A4A, 0x9A4B, 0x9A4C, 0x9A4D, 0x9A4E, 0x9A4F, 0x9A50, +0x9A51, 0x9A52, 0x9A53, 0x9A54, 0x9A55, 0x9A56, 0x9A57, 0x9A58, +0x9A59, 0x9889, 0x988C, 0x988D, 0x988F, 0x9894, 0x989A, 0x989B, +0x989E, 0x989F, 0x98A1, 0x98A2, 0x98A5, 0x98A6, 0x864D, 0x8654, +0x866C, 0x866E, 0x867F, 0x867A, 0x867C, 0x867B, 0x86A8, 0x868D, +0x868B, 0x86AC, 0x869D, 0x86A7, 0x86A3, 0x86AA, 0x8693, 0x86A9, +0x86B6, 0x86C4, 0x86B5, 0x86CE, 0x86B0, 0x86BA, 0x86B1, 0x86AF, +0x86C9, 0x86CF, 0x86B4, 0x86E9, 0x86F1, 0x86F2, 0x86ED, 0x86F3, +0x86D0, 0x8713, 0x86DE, 0x86F4, 0x86DF, 0x86D8, 0x86D1, 0x8703, +0x8707, 0x86F8, 0x8708, 0x870A, 0x870D, 0x8709, 0x8723, 0x873B, +0x871E, 0x8725, 0x872E, 0x871A, 0x873E, 0x8748, 0x8734, 0x8731, +0x8729, 0x8737, 0x873F, 0x8782, 0x8722, 0x877D, 0x877E, 0x877B, +0x8760, 0x8770, 0x874C, 0x876E, 0x878B, 0x8753, 0x8763, 0x877C, +0x8764, 0x8759, 0x8765, 0x8793, 0x87AF, 0x87A8, 0x87D2, 0, +0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, 0x9A5E, 0x9A5F, 0x9A60, 0x9A61, +0x9A62, 0x9A63, 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0x9A68, 0x9A69, +0x9A6A, 0x9A6B, 0x9A72, 0x9A83, 0x9A89, 0x9A8D, 0x9A8E, 0x9A94, +0x9A95, 0x9A99, 0x9AA6, 0x9AA9, 0x9AAA, 0x9AAB, 0x9AAC, 0x9AAD, +0x9AAE, 0x9AAF, 0x9AB2, 0x9AB3, 0x9AB4, 0x9AB5, 0x9AB9, 0x9ABB, +0x9ABD, 0x9ABE, 0x9ABF, 0x9AC3, 0x9AC4, 0x9AC6, 0x9AC7, 0x9AC8, +0x9AC9, 0x9ACA, 0x9ACD, 0x9ACE, 0x9ACF, 0x9AD0, 0x9AD2, 0x9AD4, +0x9AD5, 0x9AD6, 0x9AD7, 0x9AD9, 0x9ADA, 0x9ADB, 0x9ADC, 0, +0x9ADD, 0x9ADE, 0x9AE0, 0x9AE2, 0x9AE3, 0x9AE4, 0x9AE5, 0x9AE7, +0x9AE8, 0x9AE9, 0x9AEA, 0x9AEC, 0x9AEE, 0x9AF0, 0x9AF1, 0x9AF2, +0x9AF3, 0x9AF4, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AFA, 0x9AFC, +0x9AFD, 0x9AFE, 0x9AFF, 0x9B00, 0x9B01, 0x9B02, 0x9B04, 0x9B05, +0x9B06, 0x87C6, 0x8788, 0x8785, 0x87AD, 0x8797, 0x8783, 0x87AB, +0x87E5, 0x87AC, 0x87B5, 0x87B3, 0x87CB, 0x87D3, 0x87BD, 0x87D1, +0x87C0, 0x87CA, 0x87DB, 0x87EA, 0x87E0, 0x87EE, 0x8816, 0x8813, +0x87FE, 0x880A, 0x881B, 0x8821, 0x8839, 0x883C, 0x7F36, 0x7F42, +0x7F44, 0x7F45, 0x8210, 0x7AFA, 0x7AFD, 0x7B08, 0x7B03, 0x7B04, +0x7B15, 0x7B0A, 0x7B2B, 0x7B0F, 0x7B47, 0x7B38, 0x7B2A, 0x7B19, +0x7B2E, 0x7B31, 0x7B20, 0x7B25, 0x7B24, 0x7B33, 0x7B3E, 0x7B1E, +0x7B58, 0x7B5A, 0x7B45, 0x7B75, 0x7B4C, 0x7B5D, 0x7B60, 0x7B6E, +0x7B7B, 0x7B62, 0x7B72, 0x7B71, 0x7B90, 0x7BA6, 0x7BA7, 0x7BB8, +0x7BAC, 0x7B9D, 0x7BA8, 0x7B85, 0x7BAA, 0x7B9C, 0x7BA2, 0x7BAB, +0x7BB4, 0x7BD1, 0x7BC1, 0x7BCC, 0x7BDD, 0x7BDA, 0x7BE5, 0x7BE6, +0x7BEA, 0x7C0C, 0x7BFE, 0x7BFC, 0x7C0F, 0x7C16, 0x7C0B, 0, +0x9B07, 0x9B09, 0x9B0A, 0x9B0B, 0x9B0C, 0x9B0D, 0x9B0E, 0x9B10, +0x9B11, 0x9B12, 0x9B14, 0x9B15, 0x9B16, 0x9B17, 0x9B18, 0x9B19, +0x9B1A, 0x9B1B, 0x9B1C, 0x9B1D, 0x9B1E, 0x9B20, 0x9B21, 0x9B22, +0x9B24, 0x9B25, 0x9B26, 0x9B27, 0x9B28, 0x9B29, 0x9B2A, 0x9B2B, +0x9B2C, 0x9B2D, 0x9B2E, 0x9B30, 0x9B31, 0x9B33, 0x9B34, 0x9B35, +0x9B36, 0x9B37, 0x9B38, 0x9B39, 0x9B3A, 0x9B3D, 0x9B3E, 0x9B3F, +0x9B40, 0x9B46, 0x9B4A, 0x9B4B, 0x9B4C, 0x9B4E, 0x9B50, 0x9B52, +0x9B53, 0x9B55, 0x9B56, 0x9B57, 0x9B58, 0x9B59, 0x9B5A, 0, +0x9B5B, 0x9B5C, 0x9B5D, 0x9B5E, 0x9B5F, 0x9B60, 0x9B61, 0x9B62, +0x9B63, 0x9B64, 0x9B65, 0x9B66, 0x9B67, 0x9B68, 0x9B69, 0x9B6A, +0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, 0x9B70, 0x9B71, 0x9B72, +0x9B73, 0x9B74, 0x9B75, 0x9B76, 0x9B77, 0x9B78, 0x9B79, 0x9B7A, +0x9B7B, 0x7C1F, 0x7C2A, 0x7C26, 0x7C38, 0x7C41, 0x7C40, 0x81FE, +0x8201, 0x8202, 0x8204, 0x81EC, 0x8844, 0x8221, 0x8222, 0x8223, +0x822D, 0x822F, 0x8228, 0x822B, 0x8238, 0x823B, 0x8233, 0x8234, +0x823E, 0x8244, 0x8249, 0x824B, 0x824F, 0x825A, 0x825F, 0x8268, +0x887E, 0x8885, 0x8888, 0x88D8, 0x88DF, 0x895E, 0x7F9D, 0x7F9F, +0x7FA7, 0x7FAF, 0x7FB0, 0x7FB2, 0x7C7C, 0x6549, 0x7C91, 0x7C9D, +0x7C9C, 0x7C9E, 0x7CA2, 0x7CB2, 0x7CBC, 0x7CBD, 0x7CC1, 0x7CC7, +0x7CCC, 0x7CCD, 0x7CC8, 0x7CC5, 0x7CD7, 0x7CE8, 0x826E, 0x66A8, +0x7FBF, 0x7FCE, 0x7FD5, 0x7FE5, 0x7FE1, 0x7FE6, 0x7FE9, 0x7FEE, +0x7FF3, 0x7CF8, 0x7D77, 0x7DA6, 0x7DAE, 0x7E47, 0x7E9B, 0x9EB8, +0x9EB4, 0x8D73, 0x8D84, 0x8D94, 0x8D91, 0x8DB1, 0x8D67, 0x8D6D, +0x8C47, 0x8C49, 0x914A, 0x9150, 0x914E, 0x914F, 0x9164, 0, +0x9B7C, 0x9B7D, 0x9B7E, 0x9B7F, 0x9B80, 0x9B81, 0x9B82, 0x9B83, +0x9B84, 0x9B85, 0x9B86, 0x9B87, 0x9B88, 0x9B89, 0x9B8A, 0x9B8B, +0x9B8C, 0x9B8D, 0x9B8E, 0x9B8F, 0x9B90, 0x9B91, 0x9B92, 0x9B93, +0x9B94, 0x9B95, 0x9B96, 0x9B97, 0x9B98, 0x9B99, 0x9B9A, 0x9B9B, +0x9B9C, 0x9B9D, 0x9B9E, 0x9B9F, 0x9BA0, 0x9BA1, 0x9BA2, 0x9BA3, +0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0x9BA8, 0x9BA9, 0x9BAA, 0x9BAB, +0x9BAC, 0x9BAD, 0x9BAE, 0x9BAF, 0x9BB0, 0x9BB1, 0x9BB2, 0x9BB3, +0x9BB4, 0x9BB5, 0x9BB6, 0x9BB7, 0x9BB8, 0x9BB9, 0x9BBA, 0, +0x9BBB, 0x9BBC, 0x9BBD, 0x9BBE, 0x9BBF, 0x9BC0, 0x9BC1, 0x9BC2, +0x9BC3, 0x9BC4, 0x9BC5, 0x9BC6, 0x9BC7, 0x9BC8, 0x9BC9, 0x9BCA, +0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE, 0x9BCF, 0x9BD0, 0x9BD1, 0x9BD2, +0x9BD3, 0x9BD4, 0x9BD5, 0x9BD6, 0x9BD7, 0x9BD8, 0x9BD9, 0x9BDA, +0x9BDB, 0x9162, 0x9161, 0x9170, 0x9169, 0x916F, 0x917D, 0x917E, +0x9172, 0x9174, 0x9179, 0x918C, 0x9185, 0x9190, 0x918D, 0x9191, +0x91A2, 0x91A3, 0x91AA, 0x91AD, 0x91AE, 0x91AF, 0x91B5, 0x91B4, +0x91BA, 0x8C55, 0x9E7E, 0x8DB8, 0x8DEB, 0x8E05, 0x8E59, 0x8E69, +0x8DB5, 0x8DBF, 0x8DBC, 0x8DBA, 0x8DC4, 0x8DD6, 0x8DD7, 0x8DDA, +0x8DDE, 0x8DCE, 0x8DCF, 0x8DDB, 0x8DC6, 0x8DEC, 0x8DF7, 0x8DF8, +0x8DE3, 0x8DF9, 0x8DFB, 0x8DE4, 0x8E09, 0x8DFD, 0x8E14, 0x8E1D, +0x8E1F, 0x8E2C, 0x8E2E, 0x8E23, 0x8E2F, 0x8E3A, 0x8E40, 0x8E39, +0x8E35, 0x8E3D, 0x8E31, 0x8E49, 0x8E41, 0x8E42, 0x8E51, 0x8E52, +0x8E4A, 0x8E70, 0x8E76, 0x8E7C, 0x8E6F, 0x8E74, 0x8E85, 0x8E8F, +0x8E94, 0x8E90, 0x8E9C, 0x8E9E, 0x8C78, 0x8C82, 0x8C8A, 0x8C85, +0x8C98, 0x8C94, 0x659B, 0x89D6, 0x89DE, 0x89DA, 0x89DC, 0, +0x9BDC, 0x9BDD, 0x9BDE, 0x9BDF, 0x9BE0, 0x9BE1, 0x9BE2, 0x9BE3, +0x9BE4, 0x9BE5, 0x9BE6, 0x9BE7, 0x9BE8, 0x9BE9, 0x9BEA, 0x9BEB, +0x9BEC, 0x9BED, 0x9BEE, 0x9BEF, 0x9BF0, 0x9BF1, 0x9BF2, 0x9BF3, +0x9BF4, 0x9BF5, 0x9BF6, 0x9BF7, 0x9BF8, 0x9BF9, 0x9BFA, 0x9BFB, +0x9BFC, 0x9BFD, 0x9BFE, 0x9BFF, 0x9C00, 0x9C01, 0x9C02, 0x9C03, +0x9C04, 0x9C05, 0x9C06, 0x9C07, 0x9C08, 0x9C09, 0x9C0A, 0x9C0B, +0x9C0C, 0x9C0D, 0x9C0E, 0x9C0F, 0x9C10, 0x9C11, 0x9C12, 0x9C13, +0x9C14, 0x9C15, 0x9C16, 0x9C17, 0x9C18, 0x9C19, 0x9C1A, 0, +0x9C1B, 0x9C1C, 0x9C1D, 0x9C1E, 0x9C1F, 0x9C20, 0x9C21, 0x9C22, +0x9C23, 0x9C24, 0x9C25, 0x9C26, 0x9C27, 0x9C28, 0x9C29, 0x9C2A, +0x9C2B, 0x9C2C, 0x9C2D, 0x9C2E, 0x9C2F, 0x9C30, 0x9C31, 0x9C32, +0x9C33, 0x9C34, 0x9C35, 0x9C36, 0x9C37, 0x9C38, 0x9C39, 0x9C3A, +0x9C3B, 0x89E5, 0x89EB, 0x89EF, 0x8A3E, 0x8B26, 0x9753, 0x96E9, +0x96F3, 0x96EF, 0x9706, 0x9701, 0x9708, 0x970F, 0x970E, 0x972A, +0x972D, 0x9730, 0x973E, 0x9F80, 0x9F83, 0x9F85, 0x9F86, 0x9F87, +0x9F88, 0x9F89, 0x9F8A, 0x9F8C, 0x9EFE, 0x9F0B, 0x9F0D, 0x96B9, +0x96BC, 0x96BD, 0x96CE, 0x96D2, 0x77BF, 0x96E0, 0x928E, 0x92AE, +0x92C8, 0x933E, 0x936A, 0x93CA, 0x938F, 0x943E, 0x946B, 0x9C7F, +0x9C82, 0x9C85, 0x9C86, 0x9C87, 0x9C88, 0x7A23, 0x9C8B, 0x9C8E, +0x9C90, 0x9C91, 0x9C92, 0x9C94, 0x9C95, 0x9C9A, 0x9C9B, 0x9C9E, +0x9C9F, 0x9CA0, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA5, 0x9CA6, 0x9CA7, +0x9CA8, 0x9CA9, 0x9CAB, 0x9CAD, 0x9CAE, 0x9CB0, 0x9CB1, 0x9CB2, +0x9CB3, 0x9CB4, 0x9CB5, 0x9CB6, 0x9CB7, 0x9CBA, 0x9CBB, 0x9CBC, +0x9CBD, 0x9CC4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CCA, 0x9CCB, 0, +0x9C3C, 0x9C3D, 0x9C3E, 0x9C3F, 0x9C40, 0x9C41, 0x9C42, 0x9C43, +0x9C44, 0x9C45, 0x9C46, 0x9C47, 0x9C48, 0x9C49, 0x9C4A, 0x9C4B, +0x9C4C, 0x9C4D, 0x9C4E, 0x9C4F, 0x9C50, 0x9C51, 0x9C52, 0x9C53, +0x9C54, 0x9C55, 0x9C56, 0x9C57, 0x9C58, 0x9C59, 0x9C5A, 0x9C5B, +0x9C5C, 0x9C5D, 0x9C5E, 0x9C5F, 0x9C60, 0x9C61, 0x9C62, 0x9C63, +0x9C64, 0x9C65, 0x9C66, 0x9C67, 0x9C68, 0x9C69, 0x9C6A, 0x9C6B, +0x9C6C, 0x9C6D, 0x9C6E, 0x9C6F, 0x9C70, 0x9C71, 0x9C72, 0x9C73, +0x9C74, 0x9C75, 0x9C76, 0x9C77, 0x9C78, 0x9C79, 0x9C7A, 0, +0x9C7B, 0x9C7D, 0x9C7E, 0x9C80, 0x9C83, 0x9C84, 0x9C89, 0x9C8A, +0x9C8C, 0x9C8F, 0x9C93, 0x9C96, 0x9C97, 0x9C98, 0x9C99, 0x9C9D, +0x9CAA, 0x9CAC, 0x9CAF, 0x9CB9, 0x9CBE, 0x9CBF, 0x9CC0, 0x9CC1, +0x9CC2, 0x9CC8, 0x9CC9, 0x9CD1, 0x9CD2, 0x9CDA, 0x9CDB, 0x9CE0, +0x9CE1, 0x9CCC, 0x9CCD, 0x9CCE, 0x9CCF, 0x9CD0, 0x9CD3, 0x9CD4, +0x9CD5, 0x9CD7, 0x9CD8, 0x9CD9, 0x9CDC, 0x9CDD, 0x9CDF, 0x9CE2, +0x977C, 0x9785, 0x9791, 0x9792, 0x9794, 0x97AF, 0x97AB, 0x97A3, +0x97B2, 0x97B4, 0x9AB1, 0x9AB0, 0x9AB7, 0x9E58, 0x9AB6, 0x9ABA, +0x9ABC, 0x9AC1, 0x9AC0, 0x9AC5, 0x9AC2, 0x9ACB, 0x9ACC, 0x9AD1, +0x9B45, 0x9B43, 0x9B47, 0x9B49, 0x9B48, 0x9B4D, 0x9B51, 0x98E8, +0x990D, 0x992E, 0x9955, 0x9954, 0x9ADF, 0x9AE1, 0x9AE6, 0x9AEF, +0x9AEB, 0x9AFB, 0x9AED, 0x9AF9, 0x9B08, 0x9B0F, 0x9B13, 0x9B1F, +0x9B23, 0x9EBD, 0x9EBE, 0x7E3B, 0x9E82, 0x9E87, 0x9E88, 0x9E8B, +0x9E92, 0x93D6, 0x9E9D, 0x9E9F, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EE0, +0x9EDF, 0x9EE2, 0x9EE9, 0x9EE7, 0x9EE5, 0x9EEA, 0x9EEF, 0x9F22, +0x9F2C, 0x9F2F, 0x9F39, 0x9F37, 0x9F3D, 0x9F3E, 0x9F44, 0, +0x9CE3, 0x9CE4, 0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0x9CE9, 0x9CEA, +0x9CEB, 0x9CEC, 0x9CED, 0x9CEE, 0x9CEF, 0x9CF0, 0x9CF1, 0x9CF2, +0x9CF3, 0x9CF4, 0x9CF5, 0x9CF6, 0x9CF7, 0x9CF8, 0x9CF9, 0x9CFA, +0x9CFB, 0x9CFC, 0x9CFD, 0x9CFE, 0x9CFF, 0x9D00, 0x9D01, 0x9D02, +0x9D03, 0x9D04, 0x9D05, 0x9D06, 0x9D07, 0x9D08, 0x9D09, 0x9D0A, +0x9D0B, 0x9D0C, 0x9D0D, 0x9D0E, 0x9D0F, 0x9D10, 0x9D11, 0x9D12, +0x9D13, 0x9D14, 0x9D15, 0x9D16, 0x9D17, 0x9D18, 0x9D19, 0x9D1A, +0x9D1B, 0x9D1C, 0x9D1D, 0x9D1E, 0x9D1F, 0x9D20, 0x9D21, 0, +0x9D22, 0x9D23, 0x9D24, 0x9D25, 0x9D26, 0x9D27, 0x9D28, 0x9D29, +0x9D2A, 0x9D2B, 0x9D2C, 0x9D2D, 0x9D2E, 0x9D2F, 0x9D30, 0x9D31, +0x9D32, 0x9D33, 0x9D34, 0x9D35, 0x9D36, 0x9D37, 0x9D38, 0x9D39, +0x9D3A, 0x9D3B, 0x9D3C, 0x9D3D, 0x9D3E, 0x9D3F, 0x9D40, 0x9D41, +0x9D42, 0xE234, 0xE235, 0xE236, 0xE237, 0xE238, 0xE239, 0xE23A, +0xE23B, 0xE23C, 0xE23D, 0xE23E, 0xE23F, 0xE240, 0xE241, 0xE242, +0xE243, 0xE244, 0xE245, 0xE246, 0xE247, 0xE248, 0xE249, 0xE24A, +0xE24B, 0xE24C, 0xE24D, 0xE24E, 0xE24F, 0xE250, 0xE251, 0xE252, +0xE253, 0xE254, 0xE255, 0xE256, 0xE257, 0xE258, 0xE259, 0xE25A, +0xE25B, 0xE25C, 0xE25D, 0xE25E, 0xE25F, 0xE260, 0xE261, 0xE262, +0xE263, 0xE264, 0xE265, 0xE266, 0xE267, 0xE268, 0xE269, 0xE26A, +0xE26B, 0xE26C, 0xE26D, 0xE26E, 0xE26F, 0xE270, 0xE271, 0xE272, +0xE273, 0xE274, 0xE275, 0xE276, 0xE277, 0xE278, 0xE279, 0xE27A, +0xE27B, 0xE27C, 0xE27D, 0xE27E, 0xE27F, 0xE280, 0xE281, 0xE282, +0xE283, 0xE284, 0xE285, 0xE286, 0xE287, 0xE288, 0xE289, 0xE28A, +0xE28B, 0xE28C, 0xE28D, 0xE28E, 0xE28F, 0xE290, 0xE291, 0, +0x9D43, 0x9D44, 0x9D45, 0x9D46, 0x9D47, 0x9D48, 0x9D49, 0x9D4A, +0x9D4B, 0x9D4C, 0x9D4D, 0x9D4E, 0x9D4F, 0x9D50, 0x9D51, 0x9D52, +0x9D53, 0x9D54, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, 0x9D5A, +0x9D5B, 0x9D5C, 0x9D5D, 0x9D5E, 0x9D5F, 0x9D60, 0x9D61, 0x9D62, +0x9D63, 0x9D64, 0x9D65, 0x9D66, 0x9D67, 0x9D68, 0x9D69, 0x9D6A, +0x9D6B, 0x9D6C, 0x9D6D, 0x9D6E, 0x9D6F, 0x9D70, 0x9D71, 0x9D72, +0x9D73, 0x9D74, 0x9D75, 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, +0x9D7B, 0x9D7C, 0x9D7D, 0x9D7E, 0x9D7F, 0x9D80, 0x9D81, 0, +0x9D82, 0x9D83, 0x9D84, 0x9D85, 0x9D86, 0x9D87, 0x9D88, 0x9D89, +0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, 0x9D91, +0x9D92, 0x9D93, 0x9D94, 0x9D95, 0x9D96, 0x9D97, 0x9D98, 0x9D99, +0x9D9A, 0x9D9B, 0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F, 0x9DA0, 0x9DA1, +0x9DA2, 0xE292, 0xE293, 0xE294, 0xE295, 0xE296, 0xE297, 0xE298, +0xE299, 0xE29A, 0xE29B, 0xE29C, 0xE29D, 0xE29E, 0xE29F, 0xE2A0, +0xE2A1, 0xE2A2, 0xE2A3, 0xE2A4, 0xE2A5, 0xE2A6, 0xE2A7, 0xE2A8, +0xE2A9, 0xE2AA, 0xE2AB, 0xE2AC, 0xE2AD, 0xE2AE, 0xE2AF, 0xE2B0, +0xE2B1, 0xE2B2, 0xE2B3, 0xE2B4, 0xE2B5, 0xE2B6, 0xE2B7, 0xE2B8, +0xE2B9, 0xE2BA, 0xE2BB, 0xE2BC, 0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, +0xE2C1, 0xE2C2, 0xE2C3, 0xE2C4, 0xE2C5, 0xE2C6, 0xE2C7, 0xE2C8, +0xE2C9, 0xE2CA, 0xE2CB, 0xE2CC, 0xE2CD, 0xE2CE, 0xE2CF, 0xE2D0, +0xE2D1, 0xE2D2, 0xE2D3, 0xE2D4, 0xE2D5, 0xE2D6, 0xE2D7, 0xE2D8, +0xE2D9, 0xE2DA, 0xE2DB, 0xE2DC, 0xE2DD, 0xE2DE, 0xE2DF, 0xE2E0, +0xE2E1, 0xE2E2, 0xE2E3, 0xE2E4, 0xE2E5, 0xE2E6, 0xE2E7, 0xE2E8, +0xE2E9, 0xE2EA, 0xE2EB, 0xE2EC, 0xE2ED, 0xE2EE, 0xE2EF, 0, +0x9DA3, 0x9DA4, 0x9DA5, 0x9DA6, 0x9DA7, 0x9DA8, 0x9DA9, 0x9DAA, +0x9DAB, 0x9DAC, 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0x9DB1, 0x9DB2, +0x9DB3, 0x9DB4, 0x9DB5, 0x9DB6, 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, +0x9DBB, 0x9DBC, 0x9DBD, 0x9DBE, 0x9DBF, 0x9DC0, 0x9DC1, 0x9DC2, +0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0x9DC7, 0x9DC8, 0x9DC9, 0x9DCA, +0x9DCB, 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, 0x9DD1, 0x9DD2, +0x9DD3, 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, 0x9DD8, 0x9DD9, 0x9DDA, +0x9DDB, 0x9DDC, 0x9DDD, 0x9DDE, 0x9DDF, 0x9DE0, 0x9DE1, 0, +0x9DE2, 0x9DE3, 0x9DE4, 0x9DE5, 0x9DE6, 0x9DE7, 0x9DE8, 0x9DE9, +0x9DEA, 0x9DEB, 0x9DEC, 0x9DED, 0x9DEE, 0x9DEF, 0x9DF0, 0x9DF1, +0x9DF2, 0x9DF3, 0x9DF4, 0x9DF5, 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, +0x9DFA, 0x9DFB, 0x9DFC, 0x9DFD, 0x9DFE, 0x9DFF, 0x9E00, 0x9E01, +0x9E02, 0xE2F0, 0xE2F1, 0xE2F2, 0xE2F3, 0xE2F4, 0xE2F5, 0xE2F6, +0xE2F7, 0xE2F8, 0xE2F9, 0xE2FA, 0xE2FB, 0xE2FC, 0xE2FD, 0xE2FE, +0xE2FF, 0xE300, 0xE301, 0xE302, 0xE303, 0xE304, 0xE305, 0xE306, +0xE307, 0xE308, 0xE309, 0xE30A, 0xE30B, 0xE30C, 0xE30D, 0xE30E, +0xE30F, 0xE310, 0xE311, 0xE312, 0xE313, 0xE314, 0xE315, 0xE316, +0xE317, 0xE318, 0xE319, 0xE31A, 0xE31B, 0xE31C, 0xE31D, 0xE31E, +0xE31F, 0xE320, 0xE321, 0xE322, 0xE323, 0xE324, 0xE325, 0xE326, +0xE327, 0xE328, 0xE329, 0xE32A, 0xE32B, 0xE32C, 0xE32D, 0xE32E, +0xE32F, 0xE330, 0xE331, 0xE332, 0xE333, 0xE334, 0xE335, 0xE336, +0xE337, 0xE338, 0xE339, 0xE33A, 0xE33B, 0xE33C, 0xE33D, 0xE33E, +0xE33F, 0xE340, 0xE341, 0xE342, 0xE343, 0xE344, 0xE345, 0xE346, +0xE347, 0xE348, 0xE349, 0xE34A, 0xE34B, 0xE34C, 0xE34D, 0, +0x9E03, 0x9E04, 0x9E05, 0x9E06, 0x9E07, 0x9E08, 0x9E09, 0x9E0A, +0x9E0B, 0x9E0C, 0x9E0D, 0x9E0E, 0x9E0F, 0x9E10, 0x9E11, 0x9E12, +0x9E13, 0x9E14, 0x9E15, 0x9E16, 0x9E17, 0x9E18, 0x9E19, 0x9E1A, +0x9E1B, 0x9E1C, 0x9E1D, 0x9E1E, 0x9E24, 0x9E27, 0x9E2E, 0x9E30, +0x9E34, 0x9E3B, 0x9E3C, 0x9E40, 0x9E4D, 0x9E50, 0x9E52, 0x9E53, +0x9E54, 0x9E56, 0x9E59, 0x9E5D, 0x9E5F, 0x9E60, 0x9E61, 0x9E62, +0x9E65, 0x9E6E, 0x9E6F, 0x9E72, 0x9E74, 0x9E75, 0x9E76, 0x9E77, +0x9E78, 0x9E79, 0x9E7A, 0x9E7B, 0x9E7C, 0x9E7D, 0x9E80, 0, +0x9E81, 0x9E83, 0x9E84, 0x9E85, 0x9E86, 0x9E89, 0x9E8A, 0x9E8C, +0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, 0x9E91, 0x9E94, 0x9E95, 0x9E96, +0x9E97, 0x9E98, 0x9E99, 0x9E9A, 0x9E9B, 0x9E9C, 0x9E9E, 0x9EA0, +0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0x9EA7, 0x9EA8, 0x9EA9, +0x9EAA, 0xE34E, 0xE34F, 0xE350, 0xE351, 0xE352, 0xE353, 0xE354, +0xE355, 0xE356, 0xE357, 0xE358, 0xE359, 0xE35A, 0xE35B, 0xE35C, +0xE35D, 0xE35E, 0xE35F, 0xE360, 0xE361, 0xE362, 0xE363, 0xE364, +0xE365, 0xE366, 0xE367, 0xE368, 0xE369, 0xE36A, 0xE36B, 0xE36C, +0xE36D, 0xE36E, 0xE36F, 0xE370, 0xE371, 0xE372, 0xE373, 0xE374, +0xE375, 0xE376, 0xE377, 0xE378, 0xE379, 0xE37A, 0xE37B, 0xE37C, +0xE37D, 0xE37E, 0xE37F, 0xE380, 0xE381, 0xE382, 0xE383, 0xE384, +0xE385, 0xE386, 0xE387, 0xE388, 0xE389, 0xE38A, 0xE38B, 0xE38C, +0xE38D, 0xE38E, 0xE38F, 0xE390, 0xE391, 0xE392, 0xE393, 0xE394, +0xE395, 0xE396, 0xE397, 0xE398, 0xE399, 0xE39A, 0xE39B, 0xE39C, +0xE39D, 0xE39E, 0xE39F, 0xE3A0, 0xE3A1, 0xE3A2, 0xE3A3, 0xE3A4, +0xE3A5, 0xE3A6, 0xE3A7, 0xE3A8, 0xE3A9, 0xE3AA, 0xE3AB, 0, +0x9EAB, 0x9EAC, 0x9EAD, 0x9EAE, 0x9EAF, 0x9EB0, 0x9EB1, 0x9EB2, +0x9EB3, 0x9EB5, 0x9EB6, 0x9EB7, 0x9EB9, 0x9EBA, 0x9EBC, 0x9EBF, +0x9EC0, 0x9EC1, 0x9EC2, 0x9EC3, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, +0x9ECA, 0x9ECB, 0x9ECC, 0x9ED0, 0x9ED2, 0x9ED3, 0x9ED5, 0x9ED6, +0x9ED7, 0x9ED9, 0x9EDA, 0x9EDE, 0x9EE1, 0x9EE3, 0x9EE4, 0x9EE6, +0x9EE8, 0x9EEB, 0x9EEC, 0x9EED, 0x9EEE, 0x9EF0, 0x9EF1, 0x9EF2, +0x9EF3, 0x9EF4, 0x9EF5, 0x9EF6, 0x9EF7, 0x9EF8, 0x9EFA, 0x9EFD, +0x9EFF, 0x9F00, 0x9F01, 0x9F02, 0x9F03, 0x9F04, 0x9F05, 0, +0x9F06, 0x9F07, 0x9F08, 0x9F09, 0x9F0A, 0x9F0C, 0x9F0F, 0x9F11, +0x9F12, 0x9F14, 0x9F15, 0x9F16, 0x9F18, 0x9F1A, 0x9F1B, 0x9F1C, +0x9F1D, 0x9F1E, 0x9F1F, 0x9F21, 0x9F23, 0x9F24, 0x9F25, 0x9F26, +0x9F27, 0x9F28, 0x9F29, 0x9F2A, 0x9F2B, 0x9F2D, 0x9F2E, 0x9F30, +0x9F31, 0xE3AC, 0xE3AD, 0xE3AE, 0xE3AF, 0xE3B0, 0xE3B1, 0xE3B2, +0xE3B3, 0xE3B4, 0xE3B5, 0xE3B6, 0xE3B7, 0xE3B8, 0xE3B9, 0xE3BA, +0xE3BB, 0xE3BC, 0xE3BD, 0xE3BE, 0xE3BF, 0xE3C0, 0xE3C1, 0xE3C2, +0xE3C3, 0xE3C4, 0xE3C5, 0xE3C6, 0xE3C7, 0xE3C8, 0xE3C9, 0xE3CA, +0xE3CB, 0xE3CC, 0xE3CD, 0xE3CE, 0xE3CF, 0xE3D0, 0xE3D1, 0xE3D2, +0xE3D3, 0xE3D4, 0xE3D5, 0xE3D6, 0xE3D7, 0xE3D8, 0xE3D9, 0xE3DA, +0xE3DB, 0xE3DC, 0xE3DD, 0xE3DE, 0xE3DF, 0xE3E0, 0xE3E1, 0xE3E2, +0xE3E3, 0xE3E4, 0xE3E5, 0xE3E6, 0xE3E7, 0xE3E8, 0xE3E9, 0xE3EA, +0xE3EB, 0xE3EC, 0xE3ED, 0xE3EE, 0xE3EF, 0xE3F0, 0xE3F1, 0xE3F2, +0xE3F3, 0xE3F4, 0xE3F5, 0xE3F6, 0xE3F7, 0xE3F8, 0xE3F9, 0xE3FA, +0xE3FB, 0xE3FC, 0xE3FD, 0xE3FE, 0xE3FF, 0xE400, 0xE401, 0xE402, +0xE403, 0xE404, 0xE405, 0xE406, 0xE407, 0xE408, 0xE409, 0, +0x9F32, 0x9F33, 0x9F34, 0x9F35, 0x9F36, 0x9F38, 0x9F3A, 0x9F3C, +0x9F3F, 0x9F40, 0x9F41, 0x9F42, 0x9F43, 0x9F45, 0x9F46, 0x9F47, +0x9F48, 0x9F49, 0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, +0x9F52, 0x9F53, 0x9F54, 0x9F55, 0x9F56, 0x9F57, 0x9F58, 0x9F59, +0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F5E, 0x9F5F, 0x9F60, 0x9F61, +0x9F62, 0x9F63, 0x9F64, 0x9F65, 0x9F66, 0x9F67, 0x9F68, 0x9F69, +0x9F6A, 0x9F6B, 0x9F6C, 0x9F6D, 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, +0x9F72, 0x9F73, 0x9F74, 0x9F75, 0x9F76, 0x9F77, 0x9F78, 0, +0x9F79, 0x9F7A, 0x9F7B, 0x9F7C, 0x9F7D, 0x9F7E, 0x9F81, 0x9F82, +0x9F8D, 0x9F8E, 0x9F8F, 0x9F90, 0x9F91, 0x9F92, 0x9F93, 0x9F94, +0x9F95, 0x9F96, 0x9F97, 0x9F98, 0x9F9C, 0x9F9D, 0x9F9E, 0x9FA1, +0x9FA2, 0x9FA3, 0x9FA4, 0x9FA5, 0xF92C, 0xF979, 0xF995, 0xF9E7, +0xF9F1, 0xE40A, 0xE40B, 0xE40C, 0xE40D, 0xE40E, 0xE40F, 0xE410, +0xE411, 0xE412, 0xE413, 0xE414, 0xE415, 0xE416, 0xE417, 0xE418, +0xE419, 0xE41A, 0xE41B, 0xE41C, 0xE41D, 0xE41E, 0xE41F, 0xE420, +0xE421, 0xE422, 0xE423, 0xE424, 0xE425, 0xE426, 0xE427, 0xE428, +0xE429, 0xE42A, 0xE42B, 0xE42C, 0xE42D, 0xE42E, 0xE42F, 0xE430, +0xE431, 0xE432, 0xE433, 0xE434, 0xE435, 0xE436, 0xE437, 0xE438, +0xE439, 0xE43A, 0xE43B, 0xE43C, 0xE43D, 0xE43E, 0xE43F, 0xE440, +0xE441, 0xE442, 0xE443, 0xE444, 0xE445, 0xE446, 0xE447, 0xE448, +0xE449, 0xE44A, 0xE44B, 0xE44C, 0xE44D, 0xE44E, 0xE44F, 0xE450, +0xE451, 0xE452, 0xE453, 0xE454, 0xE455, 0xE456, 0xE457, 0xE458, +0xE459, 0xE45A, 0xE45B, 0xE45C, 0xE45D, 0xE45E, 0xE45F, 0xE460, +0xE461, 0xE462, 0xE463, 0xE464, 0xE465, 0xE466, 0xE467, 0, +0xFA0C, 0xFA0D, 0xFA0E, 0xFA0F, 0xFA11, 0xFA13, 0xFA14, 0xFA18, +0xFA1F, 0xFA20, 0xFA21, 0xFA23, 0xFA24, 0xFA27, 0xFA28, 0xFA29, +0x2E81, 0xE816, 0xE817, 0xE818, 0x2E84, 0x3473, 0x3447, 0x2E88, +0x2E8B, 0xE81E, 0x359E, 0x361A, 0x360E, 0x2E8C, 0x2E97, 0x396E, +0x3918, 0xE826, 0x39CF, 0x39DF, 0x3A73, 0x39D0, 0xE82B, 0xE82C, +0x3B4E, 0x3C6E, 0x3CE0, 0x2EA7, 0xE831, 0xE832, 0x2EAA, 0x4056, +0x415F, 0x2EAE, 0x4337, 0x2EB3, 0x2EB6, 0x2EB7, 0xE83B, 0x43B1, +0x43AC, 0x2EBB, 0x43DD, 0x44D6, 0x4661, 0x464C, 0xE843, 0, +0x4723, 0x4729, 0x477C, 0x478D, 0x2ECA, 0x4947, 0x497A, 0x497D, +0x4982, 0x4983, 0x4985, 0x4986, 0x499F, 0x499B, 0x49B7, 0x49B6, +0xE854, 0xE855, 0x4CA3, 0x4C9F, 0x4CA0, 0x4CA1, 0x4C77, 0x4CA2, +0x4D13, 0x4D14, 0x4D15, 0x4D16, 0x4D17, 0x4D18, 0x4D19, 0x4DAE, +0xE864, 0xE468, 0xE469, 0xE46A, 0xE46B, 0xE46C, 0xE46D, 0xE46E, +0xE46F, 0xE470, 0xE471, 0xE472, 0xE473, 0xE474, 0xE475, 0xE476, +0xE477, 0xE478, 0xE479, 0xE47A, 0xE47B, 0xE47C, 0xE47D, 0xE47E, +0xE47F, 0xE480, 0xE481, 0xE482, 0xE483, 0xE484, 0xE485, 0xE486, +0xE487, 0xE488, 0xE489, 0xE48A, 0xE48B, 0xE48C, 0xE48D, 0xE48E, +0xE48F, 0xE490, 0xE491, 0xE492, 0xE493, 0xE494, 0xE495, 0xE496, +0xE497, 0xE498, 0xE499, 0xE49A, 0xE49B, 0xE49C, 0xE49D, 0xE49E, +0xE49F, 0xE4A0, 0xE4A1, 0xE4A2, 0xE4A3, 0xE4A4, 0xE4A5, 0xE4A6, +0xE4A7, 0xE4A8, 0xE4A9, 0xE4AA, 0xE4AB, 0xE4AC, 0xE4AD, 0xE4AE, +0xE4AF, 0xE4B0, 0xE4B1, 0xE4B2, 0xE4B3, 0xE4B4, 0xE4B5, 0xE4B6, +0xE4B7, 0xE4B8, 0xE4B9, 0xE4BA, 0xE4BB, 0xE4BC, 0xE4BD, 0xE4BE, +0xE4BF, 0xE4C0, 0xE4C1, 0xE4C2, 0xE4C3, 0xE4C4, 0xE4C5, 0 +}; + +/** + Mapping table from 4-byte gb18030 to Unicode + The values here are the diffs for 4-byte gb18030 code points + including following ranges: + [GB+81308130, GB+8130D330) + (GB+8135F436, GB+8137A839) + (GB+8138FD38, GB+82358F33) + (GB+8336C738, GB+8336D030) + (GB+84308534, GB+84309C38) + (GB+84318537, GB+8431A439] + Others can be calculated algorithmically +*/ +static const uint16 tab_gb18030_4_uni[]= +{ +0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, +0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, +0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, +0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, +0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A5, 0x00A6, 0x00A9, 0x00AA, +0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B2, 0x00B3, 0x00B4, +0x00B5, 0x00B6, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, +0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, +0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, +0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, +0x00D6, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, +0x00DF, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00EB, +0x00EE, 0x00EF, 0x00F0, 0x00F1, 0x00F4, 0x00F5, 0x00F6, 0x00F8, +0x00FB, 0x00FD, 0x00FE, 0x00FF, 0x0100, 0x0102, 0x0103, 0x0104, +0x0105, 0x0106, 0x0107, 0x0108, 0x0109, 0x010A, 0x010B, 0x010C, +0x010D, 0x010E, 0x010F, 0x0110, 0x0111, 0x0112, 0x0114, 0x0115, +0x0116, 0x0117, 0x0118, 0x0119, 0x011A, 0x011C, 0x011D, 0x011E, +0x011F, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126, +0x0127, 0x0128, 0x0129, 0x012A, 0x012C, 0x012D, 0x012E, 0x012F, +0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136, 0x0137, +0x0138, 0x0139, 0x013A, 0x013B, 0x013C, 0x013D, 0x013E, 0x013F, +0x0140, 0x0141, 0x0142, 0x0143, 0x0145, 0x0146, 0x0147, 0x0149, +0x014A, 0x014B, 0x014C, 0x014E, 0x014F, 0x0150, 0x0151, 0x0152, +0x0153, 0x0154, 0x0155, 0x0156, 0x0157, 0x0158, 0x0159, 0x015A, +0x015B, 0x015C, 0x015D, 0x015E, 0x015F, 0x0160, 0x0161, 0x0162, +0x0163, 0x0164, 0x0165, 0x0166, 0x0167, 0x0168, 0x0169, 0x016A, +0x016C, 0x016D, 0x016E, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, +0x0174, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017A, 0x017B, +0x017C, 0x017D, 0x017E, 0x017F, 0x0180, 0x0181, 0x0182, 0x0183, +0x0184, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018A, 0x018B, +0x018C, 0x018D, 0x018E, 0x018F, 0x0190, 0x0191, 0x0192, 0x0193, +0x0194, 0x0195, 0x0196, 0x0197, 0x0198, 0x0199, 0x019A, 0x019B, +0x019C, 0x019D, 0x019E, 0x019F, 0x01A0, 0x01A1, 0x01A2, 0x01A3, +0x01A4, 0x01A5, 0x01A6, 0x01A7, 0x01A8, 0x01A9, 0x01AA, 0x01AB, +0x01AC, 0x01AD, 0x01AE, 0x01AF, 0x01B0, 0x01B1, 0x01B2, 0x01B3, +0x01B4, 0x01B5, 0x01B6, 0x01B7, 0x01B8, 0x01B9, 0x01BA, 0x01BB, +0x01BC, 0x01BD, 0x01BE, 0x01BF, 0x01C0, 0x01C1, 0x01C2, 0x01C3, +0x01C4, 0x01C5, 0x01C6, 0x01C7, 0x01C8, 0x01C9, 0x01CA, 0x01CB, +0x01CC, 0x01CD, 0x01CF, 0x01D1, 0x01D3, 0x01D5, 0x01D7, 0x01D9, +0x01DB, 0x01DD, 0x01DE, 0x01DF, 0x01E0, 0x01E1, 0x01E2, 0x01E3, +0x01E4, 0x01E5, 0x01E6, 0x01E7, 0x01E8, 0x01E9, 0x01EA, 0x01EB, +0x01EC, 0x01ED, 0x01EE, 0x01EF, 0x01F0, 0x01F1, 0x01F2, 0x01F3, +0x01F4, 0x01F5, 0x01F6, 0x01F7, 0x01F8, 0x01FA, 0x01FB, 0x01FC, +0x01FD, 0x01FE, 0x01FF, 0x0200, 0x0201, 0x0202, 0x0203, 0x0204, +0x0205, 0x0206, 0x0207, 0x0208, 0x0209, 0x020A, 0x020B, 0x020C, +0x020D, 0x020E, 0x020F, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, +0x0215, 0x0216, 0x0217, 0x0218, 0x0219, 0x021A, 0x021B, 0x021C, +0x021D, 0x021E, 0x021F, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, +0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022A, 0x022B, 0x022C, +0x022D, 0x022E, 0x022F, 0x0230, 0x0231, 0x0232, 0x0233, 0x0234, +0x0235, 0x0236, 0x0237, 0x0238, 0x0239, 0x023A, 0x023B, 0x023C, +0x023D, 0x023E, 0x023F, 0x0240, 0x0241, 0x0242, 0x0243, 0x0244, +0x0245, 0x0246, 0x0247, 0x0248, 0x0249, 0x024A, 0x024B, 0x024C, +0x024D, 0x024E, 0x024F, 0x0250, 0x0252, 0x0253, 0x0254, 0x0255, +0x0256, 0x0257, 0x0258, 0x0259, 0x025A, 0x025B, 0x025C, 0x025D, +0x025E, 0x025F, 0x0260, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, +0x0267, 0x0268, 0x0269, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, +0x026F, 0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, +0x0277, 0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, +0x027F, 0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, +0x0287, 0x0288, 0x0289, 0x028A, 0x028B, 0x028C, 0x028D, 0x028E, +0x028F, 0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, +0x0297, 0x0298, 0x0299, 0x029A, 0x029B, 0x029C, 0x029D, 0x029E, +0x029F, 0x02A0, 0x02A1, 0x02A2, 0x02A3, 0x02A4, 0x02A5, 0x02A6, +0x02A7, 0x02A8, 0x02A9, 0x02AA, 0x02AB, 0x02AC, 0x02AD, 0x02AE, +0x02AF, 0x02B0, 0x02B1, 0x02B2, 0x02B3, 0x02B4, 0x02B5, 0x02B6, +0x02B7, 0x02B8, 0x02B9, 0x02BA, 0x02BB, 0x02BC, 0x02BD, 0x02BE, +0x02BF, 0x02C0, 0x02C1, 0x02C2, 0x02C3, 0x02C4, 0x02C5, 0x02C6, +0x02C8, 0x02CC, 0x02CD, 0x02CE, 0x02CF, 0x02D0, 0x02D1, 0x02D2, +0x02D3, 0x02D4, 0x02D5, 0x02D6, 0x02D7, 0x02D8, 0x02DA, 0x02DB, +0x02DC, 0x02DD, 0x02DE, 0x02DF, 0x02E0, 0x02E1, 0x02E2, 0x02E3, +0x02E4, 0x02E5, 0x02E6, 0x02E7, 0x02E8, 0x02E9, 0x02EA, 0x02EB, +0x02EC, 0x02ED, 0x02EE, 0x02EF, 0x02F0, 0x02F1, 0x02F2, 0x02F3, +0x02F4, 0x02F5, 0x02F6, 0x02F7, 0x02F8, 0x02F9, 0x02FA, 0x02FB, +0x02FC, 0x02FD, 0x02FE, 0x02FF, 0x0300, 0x0301, 0x0302, 0x0303, +0x0304, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 0x030A, 0x030B, +0x030C, 0x030D, 0x030E, 0x030F, 0x0310, 0x0311, 0x0312, 0x0313, +0x0314, 0x0315, 0x0316, 0x0317, 0x0318, 0x0319, 0x031A, 0x031B, +0x031C, 0x031D, 0x031E, 0x031F, 0x0320, 0x0321, 0x0322, 0x0323, +0x0324, 0x0325, 0x0326, 0x0327, 0x0328, 0x0329, 0x032A, 0x032B, +0x032C, 0x032D, 0x032E, 0x032F, 0x0330, 0x0331, 0x0332, 0x0333, +0x0334, 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033A, 0x033B, +0x033C, 0x033D, 0x033E, 0x033F, 0x0340, 0x0341, 0x0342, 0x0343, +0x0344, 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034A, 0x034B, +0x034C, 0x034D, 0x034E, 0x034F, 0x0350, 0x0351, 0x0352, 0x0353, +0x0354, 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035A, 0x035B, +0x035C, 0x035D, 0x035E, 0x035F, 0x0360, 0x0361, 0x0362, 0x0363, +0x0364, 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036A, 0x036B, +0x036C, 0x036D, 0x036E, 0x036F, 0x0370, 0x0371, 0x0372, 0x0373, +0x0374, 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037A, 0x037B, +0x037C, 0x037D, 0x037E, 0x037F, 0x0380, 0x0381, 0x0382, 0x0383, +0x0384, 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038A, 0x038B, +0x038C, 0x038D, 0x038E, 0x038F, 0x0390, 0x03A2, 0x03AA, 0x03AB, +0x03AC, 0x03AD, 0x03AE, 0x03AF, 0x03B0, 0x03C2, 0x03CA, 0x03CB, +0x03CC, 0x03CD, 0x03CE, 0x03CF, 0x03D0, 0x03D1, 0x03D2, 0x03D3, +0x03D4, 0x03D5, 0x03D6, 0x03D7, 0x03D8, 0x03D9, 0x03DA, 0x03DB, +0x03DC, 0x03DD, 0x03DE, 0x03DF, 0x03E0, 0x03E1, 0x03E2, 0x03E3, +0x03E4, 0x03E5, 0x03E6, 0x03E7, 0x03E8, 0x03E9, 0x03EA, 0x03EB, +0x03EC, 0x03ED, 0x03EE, 0x03EF, 0x03F0, 0x03F1, 0x03F2, 0x03F3, +0x03F4, 0x03F5, 0x03F6, 0x03F7, 0x03F8, 0x03F9, 0x03FA, 0x03FB, +0x03FC, 0x03FD, 0x03FE, 0x03FF, 0x0400, 0x0402, 0x0403, 0x0404, +0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, +0x040D, 0x040E, 0x040F, 0x0450, 0xE7C7, 0x1E40, 0x1E41, 0x1E42, +0x1E43, 0x1E44, 0x1E45, 0x1E46, 0x1E47, 0x1E48, 0x1E49, 0x1E4A, +0x1E4B, 0x1E4C, 0x1E4D, 0x1E4E, 0x1E4F, 0x1E50, 0x1E51, 0x1E52, +0x1E53, 0x1E54, 0x1E55, 0x1E56, 0x1E57, 0x1E58, 0x1E59, 0x1E5A, +0x1E5B, 0x1E5C, 0x1E5D, 0x1E5E, 0x1E5F, 0x1E60, 0x1E61, 0x1E62, +0x1E63, 0x1E64, 0x1E65, 0x1E66, 0x1E67, 0x1E68, 0x1E69, 0x1E6A, +0x1E6B, 0x1E6C, 0x1E6D, 0x1E6E, 0x1E6F, 0x1E70, 0x1E71, 0x1E72, +0x1E73, 0x1E74, 0x1E75, 0x1E76, 0x1E77, 0x1E78, 0x1E79, 0x1E7A, +0x1E7B, 0x1E7C, 0x1E7D, 0x1E7E, 0x1E7F, 0x1E80, 0x1E81, 0x1E82, +0x1E83, 0x1E84, 0x1E85, 0x1E86, 0x1E87, 0x1E88, 0x1E89, 0x1E8A, +0x1E8B, 0x1E8C, 0x1E8D, 0x1E8E, 0x1E8F, 0x1E90, 0x1E91, 0x1E92, +0x1E93, 0x1E94, 0x1E95, 0x1E96, 0x1E97, 0x1E98, 0x1E99, 0x1E9A, +0x1E9B, 0x1E9C, 0x1E9D, 0x1E9E, 0x1E9F, 0x1EA0, 0x1EA1, 0x1EA2, +0x1EA3, 0x1EA4, 0x1EA5, 0x1EA6, 0x1EA7, 0x1EA8, 0x1EA9, 0x1EAA, +0x1EAB, 0x1EAC, 0x1EAD, 0x1EAE, 0x1EAF, 0x1EB0, 0x1EB1, 0x1EB2, +0x1EB3, 0x1EB4, 0x1EB5, 0x1EB6, 0x1EB7, 0x1EB8, 0x1EB9, 0x1EBA, +0x1EBB, 0x1EBC, 0x1EBD, 0x1EBE, 0x1EBF, 0x1EC0, 0x1EC1, 0x1EC2, +0x1EC3, 0x1EC4, 0x1EC5, 0x1EC6, 0x1EC7, 0x1EC8, 0x1EC9, 0x1ECA, +0x1ECB, 0x1ECC, 0x1ECD, 0x1ECE, 0x1ECF, 0x1ED0, 0x1ED1, 0x1ED2, +0x1ED3, 0x1ED4, 0x1ED5, 0x1ED6, 0x1ED7, 0x1ED8, 0x1ED9, 0x1EDA, +0x1EDB, 0x1EDC, 0x1EDD, 0x1EDE, 0x1EDF, 0x1EE0, 0x1EE1, 0x1EE2, +0x1EE3, 0x1EE4, 0x1EE5, 0x1EE6, 0x1EE7, 0x1EE8, 0x1EE9, 0x1EEA, +0x1EEB, 0x1EEC, 0x1EED, 0x1EEE, 0x1EEF, 0x1EF0, 0x1EF1, 0x1EF2, +0x1EF3, 0x1EF4, 0x1EF5, 0x1EF6, 0x1EF7, 0x1EF8, 0x1EF9, 0x1EFA, +0x1EFB, 0x1EFC, 0x1EFD, 0x1EFE, 0x1EFF, 0x1F00, 0x1F01, 0x1F02, +0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07, 0x1F08, 0x1F09, 0x1F0A, +0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F, 0x1F10, 0x1F11, 0x1F12, +0x1F13, 0x1F14, 0x1F15, 0x1F16, 0x1F17, 0x1F18, 0x1F19, 0x1F1A, +0x1F1B, 0x1F1C, 0x1F1D, 0x1F1E, 0x1F1F, 0x1F20, 0x1F21, 0x1F22, +0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27, 0x1F28, 0x1F29, 0x1F2A, +0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F, 0x1F30, 0x1F31, 0x1F32, +0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37, 0x1F38, 0x1F39, 0x1F3A, +0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F, 0x1F40, 0x1F41, 0x1F42, +0x1F43, 0x1F44, 0x1F45, 0x1F46, 0x1F47, 0x1F48, 0x1F49, 0x1F4A, +0x1F4B, 0x1F4C, 0x1F4D, 0x1F4E, 0x1F4F, 0x1F50, 0x1F51, 0x1F52, +0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57, 0x1F58, 0x1F59, 0x1F5A, +0x1F5B, 0x1F5C, 0x1F5D, 0x1F5E, 0x1F5F, 0x1F60, 0x1F61, 0x1F62, +0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67, 0x1F68, 0x1F69, 0x1F6A, +0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F, 0x1F70, 0x1F71, 0x1F72, +0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77, 0x1F78, 0x1F79, 0x1F7A, +0x1F7B, 0x1F7C, 0x1F7D, 0x1F7E, 0x1F7F, 0x1F80, 0x1F81, 0x1F82, +0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87, 0x1F88, 0x1F89, 0x1F8A, +0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F, 0x1F90, 0x1F91, 0x1F92, +0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97, 0x1F98, 0x1F99, 0x1F9A, +0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F, 0x1FA0, 0x1FA1, 0x1FA2, +0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7, 0x1FA8, 0x1FA9, 0x1FAA, +0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF, 0x1FB0, 0x1FB1, 0x1FB2, +0x1FB3, 0x1FB4, 0x1FB5, 0x1FB6, 0x1FB7, 0x1FB8, 0x1FB9, 0x1FBA, +0x1FBB, 0x1FBC, 0x1FBD, 0x1FBE, 0x1FBF, 0x1FC0, 0x1FC1, 0x1FC2, +0x1FC3, 0x1FC4, 0x1FC5, 0x1FC6, 0x1FC7, 0x1FC8, 0x1FC9, 0x1FCA, +0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF, 0x1FD0, 0x1FD1, 0x1FD2, +0x1FD3, 0x1FD4, 0x1FD5, 0x1FD6, 0x1FD7, 0x1FD8, 0x1FD9, 0x1FDA, +0x1FDB, 0x1FDC, 0x1FDD, 0x1FDE, 0x1FDF, 0x1FE0, 0x1FE1, 0x1FE2, +0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7, 0x1FE8, 0x1FE9, 0x1FEA, +0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF, 0x1FF0, 0x1FF1, 0x1FF2, +0x1FF3, 0x1FF4, 0x1FF5, 0x1FF6, 0x1FF7, 0x1FF8, 0x1FF9, 0x1FFA, +0x1FFB, 0x1FFC, 0x1FFD, 0x1FFE, 0x1FFF, 0x2000, 0x2001, 0x2002, +0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, +0x200B, 0x200C, 0x200D, 0x200E, 0x200F, 0x2011, 0x2012, 0x2017, +0x201A, 0x201B, 0x201E, 0x201F, 0x2020, 0x2021, 0x2022, 0x2023, +0x2024, 0x2027, 0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D, +0x202E, 0x202F, 0x2031, 0x2034, 0x2036, 0x2037, 0x2038, 0x2039, +0x203A, 0x203C, 0x203D, 0x203E, 0x203F, 0x2040, 0x2041, 0x2042, +0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048, 0x2049, 0x204A, +0x204B, 0x204C, 0x204D, 0x204E, 0x204F, 0x2050, 0x2051, 0x2052, +0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058, 0x2059, 0x205A, +0x205B, 0x205C, 0x205D, 0x205E, 0x205F, 0x2060, 0x2061, 0x2062, +0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068, 0x2069, 0x206A, +0x206B, 0x206C, 0x206D, 0x206E, 0x206F, 0x2070, 0x2071, 0x2072, +0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207A, +0x207B, 0x207C, 0x207D, 0x207E, 0x207F, 0x2080, 0x2081, 0x2082, +0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x208A, +0x208B, 0x208C, 0x208D, 0x208E, 0x208F, 0x2090, 0x2091, 0x2092, +0x2093, 0x2094, 0x2095, 0x2096, 0x2097, 0x2098, 0x2099, 0x209A, +0x209B, 0x209C, 0x209D, 0x209E, 0x209F, 0x20A0, 0x20A1, 0x20A2, +0x20A3, 0x20A4, 0x20A5, 0x20A6, 0x20A7, 0x20A8, 0x20A9, 0x20AA, +0x20AB, 0x20AD, 0x20AE, 0x20AF, 0x20B0, 0x20B1, 0x20B2, 0x20B3, +0x20B4, 0x20B5, 0x20B6, 0x20B7, 0x20B8, 0x20B9, 0x20BA, 0x20BB, +0x20BC, 0x20BD, 0x20BE, 0x20BF, 0x20C0, 0x20C1, 0x20C2, 0x20C3, +0x20C4, 0x20C5, 0x20C6, 0x20C7, 0x20C8, 0x20C9, 0x20CA, 0x20CB, +0x20CC, 0x20CD, 0x20CE, 0x20CF, 0x20D0, 0x20D1, 0x20D2, 0x20D3, +0x20D4, 0x20D5, 0x20D6, 0x20D7, 0x20D8, 0x20D9, 0x20DA, 0x20DB, +0x20DC, 0x20DD, 0x20DE, 0x20DF, 0x20E0, 0x20E1, 0x20E2, 0x20E3, +0x20E4, 0x20E5, 0x20E6, 0x20E7, 0x20E8, 0x20E9, 0x20EA, 0x20EB, +0x20EC, 0x20ED, 0x20EE, 0x20EF, 0x20F0, 0x20F1, 0x20F2, 0x20F3, +0x20F4, 0x20F5, 0x20F6, 0x20F7, 0x20F8, 0x20F9, 0x20FA, 0x20FB, +0x20FC, 0x20FD, 0x20FE, 0x20FF, 0x2100, 0x2101, 0x2102, 0x2104, +0x2106, 0x2107, 0x2108, 0x210A, 0x210B, 0x210C, 0x210D, 0x210E, +0x210F, 0x2110, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2117, +0x2118, 0x2119, 0x211A, 0x211B, 0x211C, 0x211D, 0x211E, 0x211F, +0x2120, 0x2122, 0x2123, 0x2124, 0x2125, 0x2126, 0x2127, 0x2128, +0x2129, 0x212A, 0x212B, 0x212C, 0x212D, 0x212E, 0x212F, 0x2130, +0x2131, 0x2132, 0x2133, 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, +0x2139, 0x213A, 0x213B, 0x213C, 0x213D, 0x213E, 0x213F, 0x2140, +0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147, 0x2148, +0x2149, 0x214A, 0x214B, 0x214C, 0x214D, 0x214E, 0x214F, 0x2150, +0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, +0x2159, 0x215A, 0x215B, 0x215C, 0x215D, 0x215E, 0x215F, 0x216C, +0x216D, 0x216E, 0x216F, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, +0x217F, 0x2180, 0x2181, 0x2182, 0x2183, 0x2184, 0x2185, 0x2186, +0x2187, 0x2188, 0x2189, 0x218A, 0x218B, 0x218C, 0x218D, 0x218E, +0x218F, 0x2194, 0x2195, 0x219A, 0x219B, 0x219C, 0x219D, 0x219E, +0x219F, 0x21A0, 0x21A1, 0x21A2, 0x21A3, 0x21A4, 0x21A5, 0x21A6, +0x21A7, 0x21A8, 0x21A9, 0x21AA, 0x21AB, 0x21AC, 0x21AD, 0x21AE, +0x21AF, 0x21B0, 0x21B1, 0x21B2, 0x21B3, 0x21B4, 0x21B5, 0x21B6, +0x21B7, 0x21B8, 0x21B9, 0x21BA, 0x21BB, 0x21BC, 0x21BD, 0x21BE, +0x21BF, 0x21C0, 0x21C1, 0x21C2, 0x21C3, 0x21C4, 0x21C5, 0x21C6, +0x21C7, 0x21C8, 0x21C9, 0x21CA, 0x21CB, 0x21CC, 0x21CD, 0x21CE, +0x21CF, 0x21D0, 0x21D1, 0x21D2, 0x21D3, 0x21D4, 0x21D5, 0x21D6, +0x21D7, 0x21D8, 0x21D9, 0x21DA, 0x21DB, 0x21DC, 0x21DD, 0x21DE, +0x21DF, 0x21E0, 0x21E1, 0x21E2, 0x21E3, 0x21E4, 0x21E5, 0x21E6, +0x21E7, 0x21E8, 0x21E9, 0x21EA, 0x21EB, 0x21EC, 0x21ED, 0x21EE, +0x21EF, 0x21F0, 0x21F1, 0x21F2, 0x21F3, 0x21F4, 0x21F5, 0x21F6, +0x21F7, 0x21F8, 0x21F9, 0x21FA, 0x21FB, 0x21FC, 0x21FD, 0x21FE, +0x21FF, 0x2200, 0x2201, 0x2202, 0x2203, 0x2204, 0x2205, 0x2206, +0x2207, 0x2209, 0x220A, 0x220B, 0x220C, 0x220D, 0x220E, 0x2210, +0x2212, 0x2213, 0x2214, 0x2216, 0x2217, 0x2218, 0x2219, 0x221B, +0x221C, 0x2221, 0x2222, 0x2224, 0x2226, 0x222C, 0x222D, 0x222F, +0x2230, 0x2231, 0x2232, 0x2233, 0x2238, 0x2239, 0x223A, 0x223B, +0x223C, 0x223E, 0x223F, 0x2240, 0x2241, 0x2242, 0x2243, 0x2244, +0x2245, 0x2246, 0x2247, 0x2249, 0x224A, 0x224B, 0x224D, 0x224E, +0x224F, 0x2250, 0x2251, 0x2253, 0x2254, 0x2255, 0x2256, 0x2257, +0x2258, 0x2259, 0x225A, 0x225B, 0x225C, 0x225D, 0x225E, 0x225F, +0x2262, 0x2263, 0x2268, 0x2269, 0x226A, 0x226B, 0x226C, 0x226D, +0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, 0x2277, +0x2278, 0x2279, 0x227A, 0x227B, 0x227C, 0x227D, 0x227E, 0x227F, +0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285, 0x2286, 0x2287, +0x2288, 0x2289, 0x228A, 0x228B, 0x228C, 0x228D, 0x228E, 0x228F, +0x2290, 0x2291, 0x2292, 0x2293, 0x2294, 0x2296, 0x2297, 0x2298, +0x229A, 0x229B, 0x229C, 0x229D, 0x229E, 0x229F, 0x22A0, 0x22A1, +0x22A2, 0x22A3, 0x22A4, 0x22A6, 0x22A7, 0x22A8, 0x22A9, 0x22AA, +0x22AB, 0x22AC, 0x22AD, 0x22AE, 0x22AF, 0x22B0, 0x22B1, 0x22B2, +0x22B3, 0x22B4, 0x22B5, 0x22B6, 0x22B7, 0x22B8, 0x22B9, 0x22BA, +0x22BB, 0x22BC, 0x22BD, 0x22BE, 0x22C0, 0x22C1, 0x22C2, 0x22C3, +0x22C4, 0x22C5, 0x22C6, 0x22C7, 0x22C8, 0x22C9, 0x22CA, 0x22CB, +0x22CC, 0x22CD, 0x22CE, 0x22CF, 0x22D0, 0x22D1, 0x22D2, 0x22D3, +0x22D4, 0x22D5, 0x22D6, 0x22D7, 0x22D8, 0x22D9, 0x22DA, 0x22DB, +0x22DC, 0x22DD, 0x22DE, 0x22DF, 0x22E0, 0x22E1, 0x22E2, 0x22E3, +0x22E4, 0x22E5, 0x22E6, 0x22E7, 0x22E8, 0x22E9, 0x22EA, 0x22EB, +0x22EC, 0x22ED, 0x22EE, 0x22EF, 0x22F0, 0x22F1, 0x22F2, 0x22F3, +0x22F4, 0x22F5, 0x22F6, 0x22F7, 0x22F8, 0x22F9, 0x22FA, 0x22FB, +0x22FC, 0x22FD, 0x22FE, 0x22FF, 0x2300, 0x2301, 0x2302, 0x2303, +0x2304, 0x2305, 0x2306, 0x2307, 0x2308, 0x2309, 0x230A, 0x230B, +0x230C, 0x230D, 0x230E, 0x230F, 0x2310, 0x2311, 0x2313, 0x2314, +0x2315, 0x2316, 0x2317, 0x2318, 0x2319, 0x231A, 0x231B, 0x231C, +0x231D, 0x231E, 0x231F, 0x2320, 0x2321, 0x2322, 0x2323, 0x2324, +0x2325, 0x2326, 0x2327, 0x2328, 0x2329, 0x232A, 0x232B, 0x232C, +0x232D, 0x232E, 0x232F, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, +0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233A, 0x233B, 0x233C, +0x233D, 0x233E, 0x233F, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, +0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234A, 0x234B, 0x234C, +0x234D, 0x234E, 0x234F, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, +0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235A, 0x235B, 0x235C, +0x235D, 0x235E, 0x235F, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, +0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236A, 0x236B, 0x236C, +0x236D, 0x236E, 0x236F, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, +0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237A, 0x237B, 0x237C, +0x237D, 0x237E, 0x237F, 0x2380, 0x2381, 0x2382, 0x2383, 0x2384, +0x2385, 0x2386, 0x2387, 0x2388, 0x2389, 0x238A, 0x238B, 0x238C, +0x238D, 0x238E, 0x238F, 0x2390, 0x2391, 0x2392, 0x2393, 0x2394, +0x2395, 0x2396, 0x2397, 0x2398, 0x2399, 0x239A, 0x239B, 0x239C, +0x239D, 0x239E, 0x239F, 0x23A0, 0x23A1, 0x23A2, 0x23A3, 0x23A4, +0x23A5, 0x23A6, 0x23A7, 0x23A8, 0x23A9, 0x23AA, 0x23AB, 0x23AC, +0x23AD, 0x23AE, 0x23AF, 0x23B0, 0x23B1, 0x23B2, 0x23B3, 0x23B4, +0x23B5, 0x23B6, 0x23B7, 0x23B8, 0x23B9, 0x23BA, 0x23BB, 0x23BC, +0x23BD, 0x23BE, 0x23BF, 0x23C0, 0x23C1, 0x23C2, 0x23C3, 0x23C4, +0x23C5, 0x23C6, 0x23C7, 0x23C8, 0x23C9, 0x23CA, 0x23CB, 0x23CC, +0x23CD, 0x23CE, 0x23CF, 0x23D0, 0x23D1, 0x23D2, 0x23D3, 0x23D4, +0x23D5, 0x23D6, 0x23D7, 0x23D8, 0x23D9, 0x23DA, 0x23DB, 0x23DC, +0x23DD, 0x23DE, 0x23DF, 0x23E0, 0x23E1, 0x23E2, 0x23E3, 0x23E4, +0x23E5, 0x23E6, 0x23E7, 0x23E8, 0x23E9, 0x23EA, 0x23EB, 0x23EC, +0x23ED, 0x23EE, 0x23EF, 0x23F0, 0x23F1, 0x23F2, 0x23F3, 0x23F4, +0x23F5, 0x23F6, 0x23F7, 0x23F8, 0x23F9, 0x23FA, 0x23FB, 0x23FC, +0x23FD, 0x23FE, 0x23FF, 0x2400, 0x2401, 0x2402, 0x2403, 0x2404, +0x2405, 0x2406, 0x2407, 0x2408, 0x2409, 0x240A, 0x240B, 0x240C, +0x240D, 0x240E, 0x240F, 0x2410, 0x2411, 0x2412, 0x2413, 0x2414, +0x2415, 0x2416, 0x2417, 0x2418, 0x2419, 0x241A, 0x241B, 0x241C, +0x241D, 0x241E, 0x241F, 0x2420, 0x2421, 0x2422, 0x2423, 0x2424, +0x2425, 0x2426, 0x2427, 0x2428, 0x2429, 0x242A, 0x242B, 0x242C, +0x242D, 0x242E, 0x242F, 0x2430, 0x2431, 0x2432, 0x2433, 0x2434, +0x2435, 0x2436, 0x2437, 0x2438, 0x2439, 0x243A, 0x243B, 0x243C, +0x243D, 0x243E, 0x243F, 0x2440, 0x2441, 0x2442, 0x2443, 0x2444, +0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244A, 0x244B, 0x244C, +0x244D, 0x244E, 0x244F, 0x2450, 0x2451, 0x2452, 0x2453, 0x2454, +0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245A, 0x245B, 0x245C, +0x245D, 0x245E, 0x245F, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, +0x246F, 0x2470, 0x2471, 0x2472, 0x2473, 0x249C, 0x249D, 0x249E, +0x249F, 0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, +0x24A7, 0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, +0x24AF, 0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x24B6, +0x24B7, 0x24B8, 0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD, 0x24BE, +0x24BF, 0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5, 0x24C6, +0x24C7, 0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC, 0x24CD, 0x24CE, +0x24CF, 0x24D0, 0x24D1, 0x24D2, 0x24D3, 0x24D4, 0x24D5, 0x24D6, +0x24D7, 0x24D8, 0x24D9, 0x24DA, 0x24DB, 0x24DC, 0x24DD, 0x24DE, +0x24DF, 0x24E0, 0x24E1, 0x24E2, 0x24E3, 0x24E4, 0x24E5, 0x24E6, +0x24E7, 0x24E8, 0x24E9, 0x24EA, 0x24EB, 0x24EC, 0x24ED, 0x24EE, +0x24EF, 0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x24F5, 0x24F6, +0x24F7, 0x24F8, 0x24F9, 0x24FA, 0x24FB, 0x24FC, 0x24FD, 0x24FE, +0x24FF, 0x254C, 0x254D, 0x254E, 0x254F, 0x2574, 0x2575, 0x2576, +0x2577, 0x2578, 0x2579, 0x257A, 0x257B, 0x257C, 0x257D, 0x257E, +0x257F, 0x2580, 0x2590, 0x2591, 0x2592, 0x2596, 0x2597, 0x2598, +0x2599, 0x259A, 0x259B, 0x259C, 0x259D, 0x259E, 0x259F, 0x25A2, +0x25A3, 0x25A4, 0x25A5, 0x25A6, 0x25A7, 0x25A8, 0x25A9, 0x25AA, +0x25AB, 0x25AC, 0x25AD, 0x25AE, 0x25AF, 0x25B0, 0x25B1, 0x25B4, +0x25B5, 0x25B6, 0x25B7, 0x25B8, 0x25B9, 0x25BA, 0x25BB, 0x25BE, +0x25BF, 0x25C0, 0x25C1, 0x25C2, 0x25C3, 0x25C4, 0x25C5, 0x25C8, +0x25C9, 0x25CA, 0x25CC, 0x25CD, 0x25D0, 0x25D1, 0x25D2, 0x25D3, +0x25D4, 0x25D5, 0x25D6, 0x25D7, 0x25D8, 0x25D9, 0x25DA, 0x25DB, +0x25DC, 0x25DD, 0x25DE, 0x25DF, 0x25E0, 0x25E1, 0x25E6, 0x25E7, +0x25E8, 0x25E9, 0x25EA, 0x25EB, 0x25EC, 0x25ED, 0x25EE, 0x25EF, +0x25F0, 0x25F1, 0x25F2, 0x25F3, 0x25F4, 0x25F5, 0x25F6, 0x25F7, +0x25F8, 0x25F9, 0x25FA, 0x25FB, 0x25FC, 0x25FD, 0x25FE, 0x25FF, +0x2600, 0x2601, 0x2602, 0x2603, 0x2604, 0x2607, 0x2608, 0x260A, +0x260B, 0x260C, 0x260D, 0x260E, 0x260F, 0x2610, 0x2611, 0x2612, +0x2613, 0x2614, 0x2615, 0x2616, 0x2617, 0x2618, 0x2619, 0x261A, +0x261B, 0x261C, 0x261D, 0x261E, 0x261F, 0x2620, 0x2621, 0x2622, +0x2623, 0x2624, 0x2625, 0x2626, 0x2627, 0x2628, 0x2629, 0x262A, +0x262B, 0x262C, 0x262D, 0x262E, 0x262F, 0x2630, 0x2631, 0x2632, +0x2633, 0x2634, 0x2635, 0x2636, 0x2637, 0x2638, 0x2639, 0x263A, +0x263B, 0x263C, 0x263D, 0x263E, 0x263F, 0x2641, 0x2E82, 0x2E83, +0x2E85, 0x2E86, 0x2E87, 0x2E89, 0x2E8A, 0x2E8D, 0x2E8E, 0x2E8F, +0x2E90, 0x2E91, 0x2E92, 0x2E93, 0x2E94, 0x2E95, 0x2E96, 0x2E98, +0x2E99, 0x2E9A, 0x2E9B, 0x2E9C, 0x2E9D, 0x2E9E, 0x2E9F, 0x2EA0, +0x2EA1, 0x2EA2, 0x2EA3, 0x2EA4, 0x2EA5, 0x2EA6, 0x2EA8, 0x2EA9, +0x2EAB, 0x2EAC, 0x2EAD, 0x2EAF, 0x2EB0, 0x2EB1, 0x2EB2, 0x2EB4, +0x2EB5, 0x2EB8, 0x2EB9, 0x2EBA, 0x2EBC, 0x2EBD, 0x2EBE, 0x2EBF, +0x2EC0, 0x2EC1, 0x2EC2, 0x2EC3, 0x2EC4, 0x2EC5, 0x2EC6, 0x2EC7, +0x2EC8, 0x2EC9, 0x2ECB, 0x2ECC, 0x2ECD, 0x2ECE, 0x2ECF, 0x2ED0, +0x2ED1, 0x2ED2, 0x2ED3, 0x2ED4, 0x2ED5, 0x2ED6, 0x2ED7, 0x2ED8, +0x2ED9, 0x2EDA, 0x2EDB, 0x2EDC, 0x2EDD, 0x2EDE, 0x2EDF, 0x2EE0, +0x2EE1, 0x2EE2, 0x2EE3, 0x2EE4, 0x2EE5, 0x2EE6, 0x2EE7, 0x2EE8, +0x2EE9, 0x2EEA, 0x2EEB, 0x2EEC, 0x2EED, 0x2EEE, 0x2EEF, 0x2EF0, +0x2EF1, 0x2EF2, 0x2EF3, 0x2EF4, 0x2EF5, 0x2EF6, 0x2EF7, 0x2EF8, +0x2EF9, 0x2EFA, 0x2EFB, 0x2EFC, 0x2EFD, 0x2EFE, 0x2EFF, 0x2F00, +0x2F01, 0x2F02, 0x2F03, 0x2F04, 0x2F05, 0x2F06, 0x2F07, 0x2F08, +0x2F09, 0x2F0A, 0x2F0B, 0x2F0C, 0x2F0D, 0x2F0E, 0x2F0F, 0x2F10, +0x2F11, 0x2F12, 0x2F13, 0x2F14, 0x2F15, 0x2F16, 0x2F17, 0x2F18, +0x2F19, 0x2F1A, 0x2F1B, 0x2F1C, 0x2F1D, 0x2F1E, 0x2F1F, 0x2F20, +0x2F21, 0x2F22, 0x2F23, 0x2F24, 0x2F25, 0x2F26, 0x2F27, 0x2F28, +0x2F29, 0x2F2A, 0x2F2B, 0x2F2C, 0x2F2D, 0x2F2E, 0x2F2F, 0x2F30, +0x2F31, 0x2F32, 0x2F33, 0x2F34, 0x2F35, 0x2F36, 0x2F37, 0x2F38, +0x2F39, 0x2F3A, 0x2F3B, 0x2F3C, 0x2F3D, 0x2F3E, 0x2F3F, 0x2F40, +0x2F41, 0x2F42, 0x2F43, 0x2F44, 0x2F45, 0x2F46, 0x2F47, 0x2F48, +0x2F49, 0x2F4A, 0x2F4B, 0x2F4C, 0x2F4D, 0x2F4E, 0x2F4F, 0x2F50, +0x2F51, 0x2F52, 0x2F53, 0x2F54, 0x2F55, 0x2F56, 0x2F57, 0x2F58, +0x2F59, 0x2F5A, 0x2F5B, 0x2F5C, 0x2F5D, 0x2F5E, 0x2F5F, 0x2F60, +0x2F61, 0x2F62, 0x2F63, 0x2F64, 0x2F65, 0x2F66, 0x2F67, 0x2F68, +0x2F69, 0x2F6A, 0x2F6B, 0x2F6C, 0x2F6D, 0x2F6E, 0x2F6F, 0x2F70, +0x2F71, 0x2F72, 0x2F73, 0x2F74, 0x2F75, 0x2F76, 0x2F77, 0x2F78, +0x2F79, 0x2F7A, 0x2F7B, 0x2F7C, 0x2F7D, 0x2F7E, 0x2F7F, 0x2F80, +0x2F81, 0x2F82, 0x2F83, 0x2F84, 0x2F85, 0x2F86, 0x2F87, 0x2F88, +0x2F89, 0x2F8A, 0x2F8B, 0x2F8C, 0x2F8D, 0x2F8E, 0x2F8F, 0x2F90, +0x2F91, 0x2F92, 0x2F93, 0x2F94, 0x2F95, 0x2F96, 0x2F97, 0x2F98, +0x2F99, 0x2F9A, 0x2F9B, 0x2F9C, 0x2F9D, 0x2F9E, 0x2F9F, 0x2FA0, +0x2FA1, 0x2FA2, 0x2FA3, 0x2FA4, 0x2FA5, 0x2FA6, 0x2FA7, 0x2FA8, +0x2FA9, 0x2FAA, 0x2FAB, 0x2FAC, 0x2FAD, 0x2FAE, 0x2FAF, 0x2FB0, +0x2FB1, 0x2FB2, 0x2FB3, 0x2FB4, 0x2FB5, 0x2FB6, 0x2FB7, 0x2FB8, +0x2FB9, 0x2FBA, 0x2FBB, 0x2FBC, 0x2FBD, 0x2FBE, 0x2FBF, 0x2FC0, +0x2FC1, 0x2FC2, 0x2FC3, 0x2FC4, 0x2FC5, 0x2FC6, 0x2FC7, 0x2FC8, +0x2FC9, 0x2FCA, 0x2FCB, 0x2FCC, 0x2FCD, 0x2FCE, 0x2FCF, 0x2FD0, +0x2FD1, 0x2FD2, 0x2FD3, 0x2FD4, 0x2FD5, 0x2FD6, 0x2FD7, 0x2FD8, +0x2FD9, 0x2FDA, 0x2FDB, 0x2FDC, 0x2FDD, 0x2FDE, 0x2FDF, 0x2FE0, +0x2FE1, 0x2FE2, 0x2FE3, 0x2FE4, 0x2FE5, 0x2FE6, 0x2FE7, 0x2FE8, +0x2FE9, 0x2FEA, 0x2FEB, 0x2FEC, 0x2FED, 0x2FEE, 0x2FEF, 0x2FFC, +0x2FFD, 0x2FFE, 0x2FFF, 0x3004, 0x3018, 0x3019, 0x301A, 0x301B, +0x301C, 0x301F, 0x3020, 0x302A, 0x302B, 0x302C, 0x302D, 0x302E, +0x302F, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, +0x3037, 0x3038, 0x3039, 0x303A, 0x303B, 0x303C, 0x303D, 0x303F, +0x3040, 0x3094, 0x3095, 0x3096, 0x3097, 0x3098, 0x3099, 0x309A, +0x309F, 0x30A0, 0x30F7, 0x30F8, 0x30F9, 0x30FA, 0x30FB, 0x30FF, +0x3100, 0x3101, 0x3102, 0x3103, 0x3104, 0x312A, 0x312B, 0x312C, +0x312D, 0x312E, 0x312F, 0x3130, 0x3131, 0x3132, 0x3133, 0x3134, +0x3135, 0x3136, 0x3137, 0x3138, 0x3139, 0x313A, 0x313B, 0x313C, +0x313D, 0x313E, 0x313F, 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, +0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 0x314A, 0x314B, 0x314C, +0x314D, 0x314E, 0x314F, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, +0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315A, 0x315B, 0x315C, +0x315D, 0x315E, 0x315F, 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, +0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316A, 0x316B, 0x316C, +0x316D, 0x316E, 0x316F, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, +0x3175, 0x3176, 0x3177, 0x3178, 0x3179, 0x317A, 0x317B, 0x317C, +0x317D, 0x317E, 0x317F, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, +0x3185, 0x3186, 0x3187, 0x3188, 0x3189, 0x318A, 0x318B, 0x318C, +0x318D, 0x318E, 0x318F, 0x3190, 0x3191, 0x3192, 0x3193, 0x3194, +0x3195, 0x3196, 0x3197, 0x3198, 0x3199, 0x319A, 0x319B, 0x319C, +0x319D, 0x319E, 0x319F, 0x31A0, 0x31A1, 0x31A2, 0x31A3, 0x31A4, +0x31A5, 0x31A6, 0x31A7, 0x31A8, 0x31A9, 0x31AA, 0x31AB, 0x31AC, +0x31AD, 0x31AE, 0x31AF, 0x31B0, 0x31B1, 0x31B2, 0x31B3, 0x31B4, +0x31B5, 0x31B6, 0x31B7, 0x31B8, 0x31B9, 0x31BA, 0x31BB, 0x31BC, +0x31BD, 0x31BE, 0x31BF, 0x31C0, 0x31C1, 0x31C2, 0x31C3, 0x31C4, +0x31C5, 0x31C6, 0x31C7, 0x31C8, 0x31C9, 0x31CA, 0x31CB, 0x31CC, +0x31CD, 0x31CE, 0x31CF, 0x31D0, 0x31D1, 0x31D2, 0x31D3, 0x31D4, +0x31D5, 0x31D6, 0x31D7, 0x31D8, 0x31D9, 0x31DA, 0x31DB, 0x31DC, +0x31DD, 0x31DE, 0x31DF, 0x31E0, 0x31E1, 0x31E2, 0x31E3, 0x31E4, +0x31E5, 0x31E6, 0x31E7, 0x31E8, 0x31E9, 0x31EA, 0x31EB, 0x31EC, +0x31ED, 0x31EE, 0x31EF, 0x31F0, 0x31F1, 0x31F2, 0x31F3, 0x31F4, +0x31F5, 0x31F6, 0x31F7, 0x31F8, 0x31F9, 0x31FA, 0x31FB, 0x31FC, +0x31FD, 0x31FE, 0x31FF, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, +0x3205, 0x3206, 0x3207, 0x3208, 0x3209, 0x320A, 0x320B, 0x320C, +0x320D, 0x320E, 0x320F, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, +0x3215, 0x3216, 0x3217, 0x3218, 0x3219, 0x321A, 0x321B, 0x321C, +0x321D, 0x321E, 0x321F, 0x322A, 0x322B, 0x322C, 0x322D, 0x322E, +0x322F, 0x3230, 0x3232, 0x3233, 0x3234, 0x3235, 0x3236, 0x3237, +0x3238, 0x3239, 0x323A, 0x323B, 0x323C, 0x323D, 0x323E, 0x323F, +0x3240, 0x3241, 0x3242, 0x3243, 0x3244, 0x3245, 0x3246, 0x3247, +0x3248, 0x3249, 0x324A, 0x324B, 0x324C, 0x324D, 0x324E, 0x324F, +0x3250, 0x3251, 0x3252, 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, +0x3258, 0x3259, 0x325A, 0x325B, 0x325C, 0x325D, 0x325E, 0x325F, +0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, +0x3268, 0x3269, 0x326A, 0x326B, 0x326C, 0x326D, 0x326E, 0x326F, +0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, +0x3278, 0x3279, 0x327A, 0x327B, 0x327C, 0x327D, 0x327E, 0x327F, +0x3280, 0x3281, 0x3282, 0x3283, 0x3284, 0x3285, 0x3286, 0x3287, +0x3288, 0x3289, 0x328A, 0x328B, 0x328C, 0x328D, 0x328E, 0x328F, +0x3290, 0x3291, 0x3292, 0x3293, 0x3294, 0x3295, 0x3296, 0x3297, +0x3298, 0x3299, 0x329A, 0x329B, 0x329C, 0x329D, 0x329E, 0x329F, +0x32A0, 0x32A1, 0x32A2, 0x32A4, 0x32A5, 0x32A6, 0x32A7, 0x32A8, +0x32A9, 0x32AA, 0x32AB, 0x32AC, 0x32AD, 0x32AE, 0x32AF, 0x32B0, +0x32B1, 0x32B2, 0x32B3, 0x32B4, 0x32B5, 0x32B6, 0x32B7, 0x32B8, +0x32B9, 0x32BA, 0x32BB, 0x32BC, 0x32BD, 0x32BE, 0x32BF, 0x32C0, +0x32C1, 0x32C2, 0x32C3, 0x32C4, 0x32C5, 0x32C6, 0x32C7, 0x32C8, +0x32C9, 0x32CA, 0x32CB, 0x32CC, 0x32CD, 0x32CE, 0x32CF, 0x32D0, +0x32D1, 0x32D2, 0x32D3, 0x32D4, 0x32D5, 0x32D6, 0x32D7, 0x32D8, +0x32D9, 0x32DA, 0x32DB, 0x32DC, 0x32DD, 0x32DE, 0x32DF, 0x32E0, +0x32E1, 0x32E2, 0x32E3, 0x32E4, 0x32E5, 0x32E6, 0x32E7, 0x32E8, +0x32E9, 0x32EA, 0x32EB, 0x32EC, 0x32ED, 0x32EE, 0x32EF, 0x32F0, +0x32F1, 0x32F2, 0x32F3, 0x32F4, 0x32F5, 0x32F6, 0x32F7, 0x32F8, +0x32F9, 0x32FA, 0x32FB, 0x32FC, 0x32FD, 0x32FE, 0x32FF, 0x3300, +0x3301, 0x3302, 0x3303, 0x3304, 0x3305, 0x3306, 0x3307, 0x3308, +0x3309, 0x330A, 0x330B, 0x330C, 0x330D, 0x330E, 0x330F, 0x3310, +0x3311, 0x3312, 0x3313, 0x3314, 0x3315, 0x3316, 0x3317, 0x3318, +0x3319, 0x331A, 0x331B, 0x331C, 0x331D, 0x331E, 0x331F, 0x3320, +0x3321, 0x3322, 0x3323, 0x3324, 0x3325, 0x3326, 0x3327, 0x3328, +0x3329, 0x332A, 0x332B, 0x332C, 0x332D, 0x332E, 0x332F, 0x3330, +0x3331, 0x3332, 0x3333, 0x3334, 0x3335, 0x3336, 0x3337, 0x3338, +0x3339, 0x333A, 0x333B, 0x333C, 0x333D, 0x333E, 0x333F, 0x3340, +0x3341, 0x3342, 0x3343, 0x3344, 0x3345, 0x3346, 0x3347, 0x3348, +0x3349, 0x334A, 0x334B, 0x334C, 0x334D, 0x334E, 0x334F, 0x3350, +0x3351, 0x3352, 0x3353, 0x3354, 0x3355, 0x3356, 0x3357, 0x3358, +0x3359, 0x335A, 0x335B, 0x335C, 0x335D, 0x335E, 0x335F, 0x3360, +0x3361, 0x3362, 0x3363, 0x3364, 0x3365, 0x3366, 0x3367, 0x3368, +0x3369, 0x336A, 0x336B, 0x336C, 0x336D, 0x336E, 0x336F, 0x3370, +0x3371, 0x3372, 0x3373, 0x3374, 0x3375, 0x3376, 0x3377, 0x3378, +0x3379, 0x337A, 0x337B, 0x337C, 0x337D, 0x337E, 0x337F, 0x3380, +0x3381, 0x3382, 0x3383, 0x3384, 0x3385, 0x3386, 0x3387, 0x3388, +0x3389, 0x338A, 0x338B, 0x338C, 0x338D, 0x3390, 0x3391, 0x3392, +0x3393, 0x3394, 0x3395, 0x3396, 0x3397, 0x3398, 0x3399, 0x339A, +0x339B, 0x339F, 0x33A0, 0x33A2, 0x33A3, 0x33A4, 0x33A5, 0x33A6, +0x33A7, 0x33A8, 0x33A9, 0x33AA, 0x33AB, 0x33AC, 0x33AD, 0x33AE, +0x33AF, 0x33B0, 0x33B1, 0x33B2, 0x33B3, 0x33B4, 0x33B5, 0x33B6, +0x33B7, 0x33B8, 0x33B9, 0x33BA, 0x33BB, 0x33BC, 0x33BD, 0x33BE, +0x33BF, 0x33C0, 0x33C1, 0x33C2, 0x33C3, 0x33C5, 0x33C6, 0x33C7, +0x33C8, 0x33C9, 0x33CA, 0x33CB, 0x33CC, 0x33CD, 0x33CF, 0x33D0, +0x33D3, 0x33D4, 0x33D6, 0x33D7, 0x33D8, 0x33D9, 0x33DA, 0x33DB, +0x33DC, 0x33DD, 0x33DE, 0x33DF, 0x33E0, 0x33E1, 0x33E2, 0x33E3, +0x33E4, 0x33E5, 0x33E6, 0x33E7, 0x33E8, 0x33E9, 0x33EA, 0x33EB, +0x33EC, 0x33ED, 0x33EE, 0x33EF, 0x33F0, 0x33F1, 0x33F2, 0x33F3, +0x33F4, 0x33F5, 0x33F6, 0x33F7, 0x33F8, 0x33F9, 0x33FA, 0x33FB, +0x33FC, 0x33FD, 0x33FE, 0x33FF, 0x3400, 0x3401, 0x3402, 0x3403, +0x3404, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, 0x340A, 0x340B, +0x340C, 0x340D, 0x340E, 0x340F, 0x3410, 0x3411, 0x3412, 0x3413, +0x3414, 0x3415, 0x3416, 0x3417, 0x3418, 0x3419, 0x341A, 0x341B, +0x341C, 0x341D, 0x341E, 0x341F, 0x3420, 0x3421, 0x3422, 0x3423, +0x3424, 0x3425, 0x3426, 0x3427, 0x3428, 0x3429, 0x342A, 0x342B, +0x342C, 0x342D, 0x342E, 0x342F, 0x3430, 0x3431, 0x3432, 0x3433, +0x3434, 0x3435, 0x3436, 0x3437, 0x3438, 0x3439, 0x343A, 0x343B, +0x343C, 0x343D, 0x343E, 0x343F, 0x3440, 0x3441, 0x3442, 0x3443, +0x3444, 0x3445, 0x3446, 0x3448, 0x3449, 0x344A, 0x344B, 0x344C, +0x344D, 0x344E, 0x344F, 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, +0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345A, 0x345B, 0x345C, +0x345D, 0x345E, 0x345F, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, +0x3465, 0x3466, 0x3467, 0x3468, 0x3469, 0x346A, 0x346B, 0x346C, +0x346D, 0x346E, 0x346F, 0x3470, 0x3471, 0x3472, 0x3474, 0x3475, +0x3476, 0x3477, 0x3478, 0x3479, 0x347A, 0x347B, 0x347C, 0x347D, +0x347E, 0x347F, 0x3480, 0x3481, 0x3482, 0x3483, 0x3484, 0x3485, +0x3486, 0x3487, 0x3488, 0x3489, 0x348A, 0x348B, 0x348C, 0x348D, +0x348E, 0x348F, 0x3490, 0x3491, 0x3492, 0x3493, 0x3494, 0x3495, +0x3496, 0x3497, 0x3498, 0x3499, 0x349A, 0x349B, 0x349C, 0x349D, +0x349E, 0x349F, 0x34A0, 0x34A1, 0x34A2, 0x34A3, 0x34A4, 0x34A5, +0x34A6, 0x34A7, 0x34A8, 0x34A9, 0x34AA, 0x34AB, 0x34AC, 0x34AD, +0x34AE, 0x34AF, 0x34B0, 0x34B1, 0x34B2, 0x34B3, 0x34B4, 0x34B5, +0x34B6, 0x34B7, 0x34B8, 0x34B9, 0x34BA, 0x34BB, 0x34BC, 0x34BD, +0x34BE, 0x34BF, 0x34C0, 0x34C1, 0x34C2, 0x34C3, 0x34C4, 0x34C5, +0x34C6, 0x34C7, 0x34C8, 0x34C9, 0x34CA, 0x34CB, 0x34CC, 0x34CD, +0x34CE, 0x34CF, 0x34D0, 0x34D1, 0x34D2, 0x34D3, 0x34D4, 0x34D5, +0x34D6, 0x34D7, 0x34D8, 0x34D9, 0x34DA, 0x34DB, 0x34DC, 0x34DD, +0x34DE, 0x34DF, 0x34E0, 0x34E1, 0x34E2, 0x34E3, 0x34E4, 0x34E5, +0x34E6, 0x34E7, 0x34E8, 0x34E9, 0x34EA, 0x34EB, 0x34EC, 0x34ED, +0x34EE, 0x34EF, 0x34F0, 0x34F1, 0x34F2, 0x34F3, 0x34F4, 0x34F5, +0x34F6, 0x34F7, 0x34F8, 0x34F9, 0x34FA, 0x34FB, 0x34FC, 0x34FD, +0x34FE, 0x34FF, 0x3500, 0x3501, 0x3502, 0x3503, 0x3504, 0x3505, +0x3506, 0x3507, 0x3508, 0x3509, 0x350A, 0x350B, 0x350C, 0x350D, +0x350E, 0x350F, 0x3510, 0x3511, 0x3512, 0x3513, 0x3514, 0x3515, +0x3516, 0x3517, 0x3518, 0x3519, 0x351A, 0x351B, 0x351C, 0x351D, +0x351E, 0x351F, 0x3520, 0x3521, 0x3522, 0x3523, 0x3524, 0x3525, +0x3526, 0x3527, 0x3528, 0x3529, 0x352A, 0x352B, 0x352C, 0x352D, +0x352E, 0x352F, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534, 0x3535, +0x3536, 0x3537, 0x3538, 0x3539, 0x353A, 0x353B, 0x353C, 0x353D, +0x353E, 0x353F, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, +0x3546, 0x3547, 0x3548, 0x3549, 0x354A, 0x354B, 0x354C, 0x354D, +0x354E, 0x354F, 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, +0x3556, 0x3557, 0x3558, 0x3559, 0x355A, 0x355B, 0x355C, 0x355D, +0x355E, 0x355F, 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, +0x3566, 0x3567, 0x3568, 0x3569, 0x356A, 0x356B, 0x356C, 0x356D, +0x356E, 0x356F, 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, +0x3576, 0x3577, 0x3578, 0x3579, 0x357A, 0x357B, 0x357C, 0x357D, +0x357E, 0x357F, 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, +0x3586, 0x3587, 0x3588, 0x3589, 0x358A, 0x358B, 0x358C, 0x358D, +0x358E, 0x358F, 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, +0x3596, 0x3597, 0x3598, 0x3599, 0x359A, 0x359B, 0x359C, 0x359D, +0x359F, 0x35A0, 0x35A1, 0x35A2, 0x35A3, 0x35A4, 0x35A5, 0x35A6, +0x35A7, 0x35A8, 0x35A9, 0x35AA, 0x35AB, 0x35AC, 0x35AD, 0x35AE, +0x35AF, 0x35B0, 0x35B1, 0x35B2, 0x35B3, 0x35B4, 0x35B5, 0x35B6, +0x35B7, 0x35B8, 0x35B9, 0x35BA, 0x35BB, 0x35BC, 0x35BD, 0x35BE, +0x35BF, 0x35C0, 0x35C1, 0x35C2, 0x35C3, 0x35C4, 0x35C5, 0x35C6, +0x35C7, 0x35C8, 0x35C9, 0x35CA, 0x35CB, 0x35CC, 0x35CD, 0x35CE, +0x35CF, 0x35D0, 0x35D1, 0x35D2, 0x35D3, 0x35D4, 0x35D5, 0x35D6, +0x35D7, 0x35D8, 0x35D9, 0x35DA, 0x35DB, 0x35DC, 0x35DD, 0x35DE, +0x35DF, 0x35E0, 0x35E1, 0x35E2, 0x35E3, 0x35E4, 0x35E5, 0x35E6, +0x35E7, 0x35E8, 0x35E9, 0x35EA, 0x35EB, 0x35EC, 0x35ED, 0x35EE, +0x35EF, 0x35F0, 0x35F1, 0x35F2, 0x35F3, 0x35F4, 0x35F5, 0x35F6, +0x35F7, 0x35F8, 0x35F9, 0x35FA, 0x35FB, 0x35FC, 0x35FD, 0x35FE, +0x35FF, 0x3600, 0x3601, 0x3602, 0x3603, 0x3604, 0x3605, 0x3606, +0x3607, 0x3608, 0x3609, 0x360A, 0x360B, 0x360C, 0x360D, 0x360F, +0x3610, 0x3611, 0x3612, 0x3613, 0x3614, 0x3615, 0x3616, 0x3617, +0x3618, 0x3619, 0x361B, 0x361C, 0x361D, 0x361E, 0x361F, 0x3620, +0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, +0x3629, 0x362A, 0x362B, 0x362C, 0x362D, 0x362E, 0x362F, 0x3630, +0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, +0x3639, 0x363A, 0x363B, 0x363C, 0x363D, 0x363E, 0x363F, 0x3640, +0x3641, 0x3642, 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, +0x3649, 0x364A, 0x364B, 0x364C, 0x364D, 0x364E, 0x364F, 0x3650, +0x3651, 0x3652, 0x3653, 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, +0x3659, 0x365A, 0x365B, 0x365C, 0x365D, 0x365E, 0x365F, 0x3660, +0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, +0x3669, 0x366A, 0x366B, 0x366C, 0x366D, 0x366E, 0x366F, 0x3670, +0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, +0x3679, 0x367A, 0x367B, 0x367C, 0x367D, 0x367E, 0x367F, 0x3680, +0x3681, 0x3682, 0x3683, 0x3684, 0x3685, 0x3686, 0x3687, 0x3688, +0x3689, 0x368A, 0x368B, 0x368C, 0x368D, 0x368E, 0x368F, 0x3690, +0x3691, 0x3692, 0x3693, 0x3694, 0x3695, 0x3696, 0x3697, 0x3698, +0x3699, 0x369A, 0x369B, 0x369C, 0x369D, 0x369E, 0x369F, 0x36A0, +0x36A1, 0x36A2, 0x36A3, 0x36A4, 0x36A5, 0x36A6, 0x36A7, 0x36A8, +0x36A9, 0x36AA, 0x36AB, 0x36AC, 0x36AD, 0x36AE, 0x36AF, 0x36B0, +0x36B1, 0x36B2, 0x36B3, 0x36B4, 0x36B5, 0x36B6, 0x36B7, 0x36B8, +0x36B9, 0x36BA, 0x36BB, 0x36BC, 0x36BD, 0x36BE, 0x36BF, 0x36C0, +0x36C1, 0x36C2, 0x36C3, 0x36C4, 0x36C5, 0x36C6, 0x36C7, 0x36C8, +0x36C9, 0x36CA, 0x36CB, 0x36CC, 0x36CD, 0x36CE, 0x36CF, 0x36D0, +0x36D1, 0x36D2, 0x36D3, 0x36D4, 0x36D5, 0x36D6, 0x36D7, 0x36D8, +0x36D9, 0x36DA, 0x36DB, 0x36DC, 0x36DD, 0x36DE, 0x36DF, 0x36E0, +0x36E1, 0x36E2, 0x36E3, 0x36E4, 0x36E5, 0x36E6, 0x36E7, 0x36E8, +0x36E9, 0x36EA, 0x36EB, 0x36EC, 0x36ED, 0x36EE, 0x36EF, 0x36F0, +0x36F1, 0x36F2, 0x36F3, 0x36F4, 0x36F5, 0x36F6, 0x36F7, 0x36F8, +0x36F9, 0x36FA, 0x36FB, 0x36FC, 0x36FD, 0x36FE, 0x36FF, 0x3700, +0x3701, 0x3702, 0x3703, 0x3704, 0x3705, 0x3706, 0x3707, 0x3708, +0x3709, 0x370A, 0x370B, 0x370C, 0x370D, 0x370E, 0x370F, 0x3710, +0x3711, 0x3712, 0x3713, 0x3714, 0x3715, 0x3716, 0x3717, 0x3718, +0x3719, 0x371A, 0x371B, 0x371C, 0x371D, 0x371E, 0x371F, 0x3720, +0x3721, 0x3722, 0x3723, 0x3724, 0x3725, 0x3726, 0x3727, 0x3728, +0x3729, 0x372A, 0x372B, 0x372C, 0x372D, 0x372E, 0x372F, 0x3730, +0x3731, 0x3732, 0x3733, 0x3734, 0x3735, 0x3736, 0x3737, 0x3738, +0x3739, 0x373A, 0x373B, 0x373C, 0x373D, 0x373E, 0x373F, 0x3740, +0x3741, 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747, 0x3748, +0x3749, 0x374A, 0x374B, 0x374C, 0x374D, 0x374E, 0x374F, 0x3750, +0x3751, 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, +0x3759, 0x375A, 0x375B, 0x375C, 0x375D, 0x375E, 0x375F, 0x3760, +0x3761, 0x3762, 0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, +0x3769, 0x376A, 0x376B, 0x376C, 0x376D, 0x376E, 0x376F, 0x3770, +0x3771, 0x3772, 0x3773, 0x3774, 0x3775, 0x3776, 0x3777, 0x3778, +0x3779, 0x377A, 0x377B, 0x377C, 0x377D, 0x377E, 0x377F, 0x3780, +0x3781, 0x3782, 0x3783, 0x3784, 0x3785, 0x3786, 0x3787, 0x3788, +0x3789, 0x378A, 0x378B, 0x378C, 0x378D, 0x378E, 0x378F, 0x3790, +0x3791, 0x3792, 0x3793, 0x3794, 0x3795, 0x3796, 0x3797, 0x3798, +0x3799, 0x379A, 0x379B, 0x379C, 0x379D, 0x379E, 0x379F, 0x37A0, +0x37A1, 0x37A2, 0x37A3, 0x37A4, 0x37A5, 0x37A6, 0x37A7, 0x37A8, +0x37A9, 0x37AA, 0x37AB, 0x37AC, 0x37AD, 0x37AE, 0x37AF, 0x37B0, +0x37B1, 0x37B2, 0x37B3, 0x37B4, 0x37B5, 0x37B6, 0x37B7, 0x37B8, +0x37B9, 0x37BA, 0x37BB, 0x37BC, 0x37BD, 0x37BE, 0x37BF, 0x37C0, +0x37C1, 0x37C2, 0x37C3, 0x37C4, 0x37C5, 0x37C6, 0x37C7, 0x37C8, +0x37C9, 0x37CA, 0x37CB, 0x37CC, 0x37CD, 0x37CE, 0x37CF, 0x37D0, +0x37D1, 0x37D2, 0x37D3, 0x37D4, 0x37D5, 0x37D6, 0x37D7, 0x37D8, +0x37D9, 0x37DA, 0x37DB, 0x37DC, 0x37DD, 0x37DE, 0x37DF, 0x37E0, +0x37E1, 0x37E2, 0x37E3, 0x37E4, 0x37E5, 0x37E6, 0x37E7, 0x37E8, +0x37E9, 0x37EA, 0x37EB, 0x37EC, 0x37ED, 0x37EE, 0x37EF, 0x37F0, +0x37F1, 0x37F2, 0x37F3, 0x37F4, 0x37F5, 0x37F6, 0x37F7, 0x37F8, +0x37F9, 0x37FA, 0x37FB, 0x37FC, 0x37FD, 0x37FE, 0x37FF, 0x3800, +0x3801, 0x3802, 0x3803, 0x3804, 0x3805, 0x3806, 0x3807, 0x3808, +0x3809, 0x380A, 0x380B, 0x380C, 0x380D, 0x380E, 0x380F, 0x3810, +0x3811, 0x3812, 0x3813, 0x3814, 0x3815, 0x3816, 0x3817, 0x3818, +0x3819, 0x381A, 0x381B, 0x381C, 0x381D, 0x381E, 0x381F, 0x3820, +0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, 0x3828, +0x3829, 0x382A, 0x382B, 0x382C, 0x382D, 0x382E, 0x382F, 0x3830, +0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, +0x3839, 0x383A, 0x383B, 0x383C, 0x383D, 0x383E, 0x383F, 0x3840, +0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846, 0x3847, 0x3848, +0x3849, 0x384A, 0x384B, 0x384C, 0x384D, 0x384E, 0x384F, 0x3850, +0x3851, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856, 0x3857, 0x3858, +0x3859, 0x385A, 0x385B, 0x385C, 0x385D, 0x385E, 0x385F, 0x3860, +0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866, 0x3867, 0x3868, +0x3869, 0x386A, 0x386B, 0x386C, 0x386D, 0x386E, 0x386F, 0x3870, +0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, +0x3879, 0x387A, 0x387B, 0x387C, 0x387D, 0x387E, 0x387F, 0x3880, +0x3881, 0x3882, 0x3883, 0x3884, 0x3885, 0x3886, 0x3887, 0x3888, +0x3889, 0x388A, 0x388B, 0x388C, 0x388D, 0x388E, 0x388F, 0x3890, +0x3891, 0x3892, 0x3893, 0x3894, 0x3895, 0x3896, 0x3897, 0x3898, +0x3899, 0x389A, 0x389B, 0x389C, 0x389D, 0x389E, 0x389F, 0x38A0, +0x38A1, 0x38A2, 0x38A3, 0x38A4, 0x38A5, 0x38A6, 0x38A7, 0x38A8, +0x38A9, 0x38AA, 0x38AB, 0x38AC, 0x38AD, 0x38AE, 0x38AF, 0x38B0, +0x38B1, 0x38B2, 0x38B3, 0x38B4, 0x38B5, 0x38B6, 0x38B7, 0x38B8, +0x38B9, 0x38BA, 0x38BB, 0x38BC, 0x38BD, 0x38BE, 0x38BF, 0x38C0, +0x38C1, 0x38C2, 0x38C3, 0x38C4, 0x38C5, 0x38C6, 0x38C7, 0x38C8, +0x38C9, 0x38CA, 0x38CB, 0x38CC, 0x38CD, 0x38CE, 0x38CF, 0x38D0, +0x38D1, 0x38D2, 0x38D3, 0x38D4, 0x38D5, 0x38D6, 0x38D7, 0x38D8, +0x38D9, 0x38DA, 0x38DB, 0x38DC, 0x38DD, 0x38DE, 0x38DF, 0x38E0, +0x38E1, 0x38E2, 0x38E3, 0x38E4, 0x38E5, 0x38E6, 0x38E7, 0x38E8, +0x38E9, 0x38EA, 0x38EB, 0x38EC, 0x38ED, 0x38EE, 0x38EF, 0x38F0, +0x38F1, 0x38F2, 0x38F3, 0x38F4, 0x38F5, 0x38F6, 0x38F7, 0x38F8, +0x38F9, 0x38FA, 0x38FB, 0x38FC, 0x38FD, 0x38FE, 0x38FF, 0x3900, +0x3901, 0x3902, 0x3903, 0x3904, 0x3905, 0x3906, 0x3907, 0x3908, +0x3909, 0x390A, 0x390B, 0x390C, 0x390D, 0x390E, 0x390F, 0x3910, +0x3911, 0x3912, 0x3913, 0x3914, 0x3915, 0x3916, 0x3917, 0x3919, +0x391A, 0x391B, 0x391C, 0x391D, 0x391E, 0x391F, 0x3920, 0x3921, +0x3922, 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, +0x392A, 0x392B, 0x392C, 0x392D, 0x392E, 0x392F, 0x3930, 0x3931, +0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939, +0x393A, 0x393B, 0x393C, 0x393D, 0x393E, 0x393F, 0x3940, 0x3941, +0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949, +0x394A, 0x394B, 0x394C, 0x394D, 0x394E, 0x394F, 0x3950, 0x3951, +0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, +0x395A, 0x395B, 0x395C, 0x395D, 0x395E, 0x395F, 0x3960, 0x3961, +0x3962, 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, +0x396A, 0x396B, 0x396C, 0x396D, 0x396F, 0x3970, 0x3971, 0x3972, +0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978, 0x3979, 0x397A, +0x397B, 0x397C, 0x397D, 0x397E, 0x397F, 0x3980, 0x3981, 0x3982, +0x3983, 0x3984, 0x3985, 0x3986, 0x3987, 0x3988, 0x3989, 0x398A, +0x398B, 0x398C, 0x398D, 0x398E, 0x398F, 0x3990, 0x3991, 0x3992, +0x3993, 0x3994, 0x3995, 0x3996, 0x3997, 0x3998, 0x3999, 0x399A, +0x399B, 0x399C, 0x399D, 0x399E, 0x399F, 0x39A0, 0x39A1, 0x39A2, +0x39A3, 0x39A4, 0x39A5, 0x39A6, 0x39A7, 0x39A8, 0x39A9, 0x39AA, +0x39AB, 0x39AC, 0x39AD, 0x39AE, 0x39AF, 0x39B0, 0x39B1, 0x39B2, +0x39B3, 0x39B4, 0x39B5, 0x39B6, 0x39B7, 0x39B8, 0x39B9, 0x39BA, +0x39BB, 0x39BC, 0x39BD, 0x39BE, 0x39BF, 0x39C0, 0x39C1, 0x39C2, +0x39C3, 0x39C4, 0x39C5, 0x39C6, 0x39C7, 0x39C8, 0x39C9, 0x39CA, +0x39CB, 0x39CC, 0x39CD, 0x39CE, 0x39D1, 0x39D2, 0x39D3, 0x39D4, +0x39D5, 0x39D6, 0x39D7, 0x39D8, 0x39D9, 0x39DA, 0x39DB, 0x39DC, +0x39DD, 0x39DE, 0x39E0, 0x39E1, 0x39E2, 0x39E3, 0x39E4, 0x39E5, +0x39E6, 0x39E7, 0x39E8, 0x39E9, 0x39EA, 0x39EB, 0x39EC, 0x39ED, +0x39EE, 0x39EF, 0x39F0, 0x39F1, 0x39F2, 0x39F3, 0x39F4, 0x39F5, +0x39F6, 0x39F7, 0x39F8, 0x39F9, 0x39FA, 0x39FB, 0x39FC, 0x39FD, +0x39FE, 0x39FF, 0x3A00, 0x3A01, 0x3A02, 0x3A03, 0x3A04, 0x3A05, +0x3A06, 0x3A07, 0x3A08, 0x3A09, 0x3A0A, 0x3A0B, 0x3A0C, 0x3A0D, +0x3A0E, 0x3A0F, 0x3A10, 0x3A11, 0x3A12, 0x3A13, 0x3A14, 0x3A15, +0x3A16, 0x3A17, 0x3A18, 0x3A19, 0x3A1A, 0x3A1B, 0x3A1C, 0x3A1D, +0x3A1E, 0x3A1F, 0x3A20, 0x3A21, 0x3A22, 0x3A23, 0x3A24, 0x3A25, +0x3A26, 0x3A27, 0x3A28, 0x3A29, 0x3A2A, 0x3A2B, 0x3A2C, 0x3A2D, +0x3A2E, 0x3A2F, 0x3A30, 0x3A31, 0x3A32, 0x3A33, 0x3A34, 0x3A35, +0x3A36, 0x3A37, 0x3A38, 0x3A39, 0x3A3A, 0x3A3B, 0x3A3C, 0x3A3D, +0x3A3E, 0x3A3F, 0x3A40, 0x3A41, 0x3A42, 0x3A43, 0x3A44, 0x3A45, +0x3A46, 0x3A47, 0x3A48, 0x3A49, 0x3A4A, 0x3A4B, 0x3A4C, 0x3A4D, +0x3A4E, 0x3A4F, 0x3A50, 0x3A51, 0x3A52, 0x3A53, 0x3A54, 0x3A55, +0x3A56, 0x3A57, 0x3A58, 0x3A59, 0x3A5A, 0x3A5B, 0x3A5C, 0x3A5D, +0x3A5E, 0x3A5F, 0x3A60, 0x3A61, 0x3A62, 0x3A63, 0x3A64, 0x3A65, +0x3A66, 0x3A67, 0x3A68, 0x3A69, 0x3A6A, 0x3A6B, 0x3A6C, 0x3A6D, +0x3A6E, 0x3A6F, 0x3A70, 0x3A71, 0x3A72, 0x3A74, 0x3A75, 0x3A76, +0x3A77, 0x3A78, 0x3A79, 0x3A7A, 0x3A7B, 0x3A7C, 0x3A7D, 0x3A7E, +0x3A7F, 0x3A80, 0x3A81, 0x3A82, 0x3A83, 0x3A84, 0x3A85, 0x3A86, +0x3A87, 0x3A88, 0x3A89, 0x3A8A, 0x3A8B, 0x3A8C, 0x3A8D, 0x3A8E, +0x3A8F, 0x3A90, 0x3A91, 0x3A92, 0x3A93, 0x3A94, 0x3A95, 0x3A96, +0x3A97, 0x3A98, 0x3A99, 0x3A9A, 0x3A9B, 0x3A9C, 0x3A9D, 0x3A9E, +0x3A9F, 0x3AA0, 0x3AA1, 0x3AA2, 0x3AA3, 0x3AA4, 0x3AA5, 0x3AA6, +0x3AA7, 0x3AA8, 0x3AA9, 0x3AAA, 0x3AAB, 0x3AAC, 0x3AAD, 0x3AAE, +0x3AAF, 0x3AB0, 0x3AB1, 0x3AB2, 0x3AB3, 0x3AB4, 0x3AB5, 0x3AB6, +0x3AB7, 0x3AB8, 0x3AB9, 0x3ABA, 0x3ABB, 0x3ABC, 0x3ABD, 0x3ABE, +0x3ABF, 0x3AC0, 0x3AC1, 0x3AC2, 0x3AC3, 0x3AC4, 0x3AC5, 0x3AC6, +0x3AC7, 0x3AC8, 0x3AC9, 0x3ACA, 0x3ACB, 0x3ACC, 0x3ACD, 0x3ACE, +0x3ACF, 0x3AD0, 0x3AD1, 0x3AD2, 0x3AD3, 0x3AD4, 0x3AD5, 0x3AD6, +0x3AD7, 0x3AD8, 0x3AD9, 0x3ADA, 0x3ADB, 0x3ADC, 0x3ADD, 0x3ADE, +0x3ADF, 0x3AE0, 0x3AE1, 0x3AE2, 0x3AE3, 0x3AE4, 0x3AE5, 0x3AE6, +0x3AE7, 0x3AE8, 0x3AE9, 0x3AEA, 0x3AEB, 0x3AEC, 0x3AED, 0x3AEE, +0x3AEF, 0x3AF0, 0x3AF1, 0x3AF2, 0x3AF3, 0x3AF4, 0x3AF5, 0x3AF6, +0x3AF7, 0x3AF8, 0x3AF9, 0x3AFA, 0x3AFB, 0x3AFC, 0x3AFD, 0x3AFE, +0x3AFF, 0x3B00, 0x3B01, 0x3B02, 0x3B03, 0x3B04, 0x3B05, 0x3B06, +0x3B07, 0x3B08, 0x3B09, 0x3B0A, 0x3B0B, 0x3B0C, 0x3B0D, 0x3B0E, +0x3B0F, 0x3B10, 0x3B11, 0x3B12, 0x3B13, 0x3B14, 0x3B15, 0x3B16, +0x3B17, 0x3B18, 0x3B19, 0x3B1A, 0x3B1B, 0x3B1C, 0x3B1D, 0x3B1E, +0x3B1F, 0x3B20, 0x3B21, 0x3B22, 0x3B23, 0x3B24, 0x3B25, 0x3B26, +0x3B27, 0x3B28, 0x3B29, 0x3B2A, 0x3B2B, 0x3B2C, 0x3B2D, 0x3B2E, +0x3B2F, 0x3B30, 0x3B31, 0x3B32, 0x3B33, 0x3B34, 0x3B35, 0x3B36, +0x3B37, 0x3B38, 0x3B39, 0x3B3A, 0x3B3B, 0x3B3C, 0x3B3D, 0x3B3E, +0x3B3F, 0x3B40, 0x3B41, 0x3B42, 0x3B43, 0x3B44, 0x3B45, 0x3B46, +0x3B47, 0x3B48, 0x3B49, 0x3B4A, 0x3B4B, 0x3B4C, 0x3B4D, 0x3B4F, +0x3B50, 0x3B51, 0x3B52, 0x3B53, 0x3B54, 0x3B55, 0x3B56, 0x3B57, +0x3B58, 0x3B59, 0x3B5A, 0x3B5B, 0x3B5C, 0x3B5D, 0x3B5E, 0x3B5F, +0x3B60, 0x3B61, 0x3B62, 0x3B63, 0x3B64, 0x3B65, 0x3B66, 0x3B67, +0x3B68, 0x3B69, 0x3B6A, 0x3B6B, 0x3B6C, 0x3B6D, 0x3B6E, 0x3B6F, +0x3B70, 0x3B71, 0x3B72, 0x3B73, 0x3B74, 0x3B75, 0x3B76, 0x3B77, +0x3B78, 0x3B79, 0x3B7A, 0x3B7B, 0x3B7C, 0x3B7D, 0x3B7E, 0x3B7F, +0x3B80, 0x3B81, 0x3B82, 0x3B83, 0x3B84, 0x3B85, 0x3B86, 0x3B87, +0x3B88, 0x3B89, 0x3B8A, 0x3B8B, 0x3B8C, 0x3B8D, 0x3B8E, 0x3B8F, +0x3B90, 0x3B91, 0x3B92, 0x3B93, 0x3B94, 0x3B95, 0x3B96, 0x3B97, +0x3B98, 0x3B99, 0x3B9A, 0x3B9B, 0x3B9C, 0x3B9D, 0x3B9E, 0x3B9F, +0x3BA0, 0x3BA1, 0x3BA2, 0x3BA3, 0x3BA4, 0x3BA5, 0x3BA6, 0x3BA7, +0x3BA8, 0x3BA9, 0x3BAA, 0x3BAB, 0x3BAC, 0x3BAD, 0x3BAE, 0x3BAF, +0x3BB0, 0x3BB1, 0x3BB2, 0x3BB3, 0x3BB4, 0x3BB5, 0x3BB6, 0x3BB7, +0x3BB8, 0x3BB9, 0x3BBA, 0x3BBB, 0x3BBC, 0x3BBD, 0x3BBE, 0x3BBF, +0x3BC0, 0x3BC1, 0x3BC2, 0x3BC3, 0x3BC4, 0x3BC5, 0x3BC6, 0x3BC7, +0x3BC8, 0x3BC9, 0x3BCA, 0x3BCB, 0x3BCC, 0x3BCD, 0x3BCE, 0x3BCF, +0x3BD0, 0x3BD1, 0x3BD2, 0x3BD3, 0x3BD4, 0x3BD5, 0x3BD6, 0x3BD7, +0x3BD8, 0x3BD9, 0x3BDA, 0x3BDB, 0x3BDC, 0x3BDD, 0x3BDE, 0x3BDF, +0x3BE0, 0x3BE1, 0x3BE2, 0x3BE3, 0x3BE4, 0x3BE5, 0x3BE6, 0x3BE7, +0x3BE8, 0x3BE9, 0x3BEA, 0x3BEB, 0x3BEC, 0x3BED, 0x3BEE, 0x3BEF, +0x3BF0, 0x3BF1, 0x3BF2, 0x3BF3, 0x3BF4, 0x3BF5, 0x3BF6, 0x3BF7, +0x3BF8, 0x3BF9, 0x3BFA, 0x3BFB, 0x3BFC, 0x3BFD, 0x3BFE, 0x3BFF, +0x3C00, 0x3C01, 0x3C02, 0x3C03, 0x3C04, 0x3C05, 0x3C06, 0x3C07, +0x3C08, 0x3C09, 0x3C0A, 0x3C0B, 0x3C0C, 0x3C0D, 0x3C0E, 0x3C0F, +0x3C10, 0x3C11, 0x3C12, 0x3C13, 0x3C14, 0x3C15, 0x3C16, 0x3C17, +0x3C18, 0x3C19, 0x3C1A, 0x3C1B, 0x3C1C, 0x3C1D, 0x3C1E, 0x3C1F, +0x3C20, 0x3C21, 0x3C22, 0x3C23, 0x3C24, 0x3C25, 0x3C26, 0x3C27, +0x3C28, 0x3C29, 0x3C2A, 0x3C2B, 0x3C2C, 0x3C2D, 0x3C2E, 0x3C2F, +0x3C30, 0x3C31, 0x3C32, 0x3C33, 0x3C34, 0x3C35, 0x3C36, 0x3C37, +0x3C38, 0x3C39, 0x3C3A, 0x3C3B, 0x3C3C, 0x3C3D, 0x3C3E, 0x3C3F, +0x3C40, 0x3C41, 0x3C42, 0x3C43, 0x3C44, 0x3C45, 0x3C46, 0x3C47, +0x3C48, 0x3C49, 0x3C4A, 0x3C4B, 0x3C4C, 0x3C4D, 0x3C4E, 0x3C4F, +0x3C50, 0x3C51, 0x3C52, 0x3C53, 0x3C54, 0x3C55, 0x3C56, 0x3C57, +0x3C58, 0x3C59, 0x3C5A, 0x3C5B, 0x3C5C, 0x3C5D, 0x3C5E, 0x3C5F, +0x3C60, 0x3C61, 0x3C62, 0x3C63, 0x3C64, 0x3C65, 0x3C66, 0x3C67, +0x3C68, 0x3C69, 0x3C6A, 0x3C6B, 0x3C6C, 0x3C6D, 0x3C6F, 0x3C70, +0x3C71, 0x3C72, 0x3C73, 0x3C74, 0x3C75, 0x3C76, 0x3C77, 0x3C78, +0x3C79, 0x3C7A, 0x3C7B, 0x3C7C, 0x3C7D, 0x3C7E, 0x3C7F, 0x3C80, +0x3C81, 0x3C82, 0x3C83, 0x3C84, 0x3C85, 0x3C86, 0x3C87, 0x3C88, +0x3C89, 0x3C8A, 0x3C8B, 0x3C8C, 0x3C8D, 0x3C8E, 0x3C8F, 0x3C90, +0x3C91, 0x3C92, 0x3C93, 0x3C94, 0x3C95, 0x3C96, 0x3C97, 0x3C98, +0x3C99, 0x3C9A, 0x3C9B, 0x3C9C, 0x3C9D, 0x3C9E, 0x3C9F, 0x3CA0, +0x3CA1, 0x3CA2, 0x3CA3, 0x3CA4, 0x3CA5, 0x3CA6, 0x3CA7, 0x3CA8, +0x3CA9, 0x3CAA, 0x3CAB, 0x3CAC, 0x3CAD, 0x3CAE, 0x3CAF, 0x3CB0, +0x3CB1, 0x3CB2, 0x3CB3, 0x3CB4, 0x3CB5, 0x3CB6, 0x3CB7, 0x3CB8, +0x3CB9, 0x3CBA, 0x3CBB, 0x3CBC, 0x3CBD, 0x3CBE, 0x3CBF, 0x3CC0, +0x3CC1, 0x3CC2, 0x3CC3, 0x3CC4, 0x3CC5, 0x3CC6, 0x3CC7, 0x3CC8, +0x3CC9, 0x3CCA, 0x3CCB, 0x3CCC, 0x3CCD, 0x3CCE, 0x3CCF, 0x3CD0, +0x3CD1, 0x3CD2, 0x3CD3, 0x3CD4, 0x3CD5, 0x3CD6, 0x3CD7, 0x3CD8, +0x3CD9, 0x3CDA, 0x3CDB, 0x3CDC, 0x3CDD, 0x3CDE, 0x3CDF, 0x3CE1, +0x3CE2, 0x3CE3, 0x3CE4, 0x3CE5, 0x3CE6, 0x3CE7, 0x3CE8, 0x3CE9, +0x3CEA, 0x3CEB, 0x3CEC, 0x3CED, 0x3CEE, 0x3CEF, 0x3CF0, 0x3CF1, +0x3CF2, 0x3CF3, 0x3CF4, 0x3CF5, 0x3CF6, 0x3CF7, 0x3CF8, 0x3CF9, +0x3CFA, 0x3CFB, 0x3CFC, 0x3CFD, 0x3CFE, 0x3CFF, 0x3D00, 0x3D01, +0x3D02, 0x3D03, 0x3D04, 0x3D05, 0x3D06, 0x3D07, 0x3D08, 0x3D09, +0x3D0A, 0x3D0B, 0x3D0C, 0x3D0D, 0x3D0E, 0x3D0F, 0x3D10, 0x3D11, +0x3D12, 0x3D13, 0x3D14, 0x3D15, 0x3D16, 0x3D17, 0x3D18, 0x3D19, +0x3D1A, 0x3D1B, 0x3D1C, 0x3D1D, 0x3D1E, 0x3D1F, 0x3D20, 0x3D21, +0x3D22, 0x3D23, 0x3D24, 0x3D25, 0x3D26, 0x3D27, 0x3D28, 0x3D29, +0x3D2A, 0x3D2B, 0x3D2C, 0x3D2D, 0x3D2E, 0x3D2F, 0x3D30, 0x3D31, +0x3D32, 0x3D33, 0x3D34, 0x3D35, 0x3D36, 0x3D37, 0x3D38, 0x3D39, +0x3D3A, 0x3D3B, 0x3D3C, 0x3D3D, 0x3D3E, 0x3D3F, 0x3D40, 0x3D41, +0x3D42, 0x3D43, 0x3D44, 0x3D45, 0x3D46, 0x3D47, 0x3D48, 0x3D49, +0x3D4A, 0x3D4B, 0x3D4C, 0x3D4D, 0x3D4E, 0x3D4F, 0x3D50, 0x3D51, +0x3D52, 0x3D53, 0x3D54, 0x3D55, 0x3D56, 0x3D57, 0x3D58, 0x3D59, +0x3D5A, 0x3D5B, 0x3D5C, 0x3D5D, 0x3D5E, 0x3D5F, 0x3D60, 0x3D61, +0x3D62, 0x3D63, 0x3D64, 0x3D65, 0x3D66, 0x3D67, 0x3D68, 0x3D69, +0x3D6A, 0x3D6B, 0x3D6C, 0x3D6D, 0x3D6E, 0x3D6F, 0x3D70, 0x3D71, +0x3D72, 0x3D73, 0x3D74, 0x3D75, 0x3D76, 0x3D77, 0x3D78, 0x3D79, +0x3D7A, 0x3D7B, 0x3D7C, 0x3D7D, 0x3D7E, 0x3D7F, 0x3D80, 0x3D81, +0x3D82, 0x3D83, 0x3D84, 0x3D85, 0x3D86, 0x3D87, 0x3D88, 0x3D89, +0x3D8A, 0x3D8B, 0x3D8C, 0x3D8D, 0x3D8E, 0x3D8F, 0x3D90, 0x3D91, +0x3D92, 0x3D93, 0x3D94, 0x3D95, 0x3D96, 0x3D97, 0x3D98, 0x3D99, +0x3D9A, 0x3D9B, 0x3D9C, 0x3D9D, 0x3D9E, 0x3D9F, 0x3DA0, 0x3DA1, +0x3DA2, 0x3DA3, 0x3DA4, 0x3DA5, 0x3DA6, 0x3DA7, 0x3DA8, 0x3DA9, +0x3DAA, 0x3DAB, 0x3DAC, 0x3DAD, 0x3DAE, 0x3DAF, 0x3DB0, 0x3DB1, +0x3DB2, 0x3DB3, 0x3DB4, 0x3DB5, 0x3DB6, 0x3DB7, 0x3DB8, 0x3DB9, +0x3DBA, 0x3DBB, 0x3DBC, 0x3DBD, 0x3DBE, 0x3DBF, 0x3DC0, 0x3DC1, +0x3DC2, 0x3DC3, 0x3DC4, 0x3DC5, 0x3DC6, 0x3DC7, 0x3DC8, 0x3DC9, +0x3DCA, 0x3DCB, 0x3DCC, 0x3DCD, 0x3DCE, 0x3DCF, 0x3DD0, 0x3DD1, +0x3DD2, 0x3DD3, 0x3DD4, 0x3DD5, 0x3DD6, 0x3DD7, 0x3DD8, 0x3DD9, +0x3DDA, 0x3DDB, 0x3DDC, 0x3DDD, 0x3DDE, 0x3DDF, 0x3DE0, 0x3DE1, +0x3DE2, 0x3DE3, 0x3DE4, 0x3DE5, 0x3DE6, 0x3DE7, 0x3DE8, 0x3DE9, +0x3DEA, 0x3DEB, 0x3DEC, 0x3DED, 0x3DEE, 0x3DEF, 0x3DF0, 0x3DF1, +0x3DF2, 0x3DF3, 0x3DF4, 0x3DF5, 0x3DF6, 0x3DF7, 0x3DF8, 0x3DF9, +0x3DFA, 0x3DFB, 0x3DFC, 0x3DFD, 0x3DFE, 0x3DFF, 0x3E00, 0x3E01, +0x3E02, 0x3E03, 0x3E04, 0x3E05, 0x3E06, 0x3E07, 0x3E08, 0x3E09, +0x3E0A, 0x3E0B, 0x3E0C, 0x3E0D, 0x3E0E, 0x3E0F, 0x3E10, 0x3E11, +0x3E12, 0x3E13, 0x3E14, 0x3E15, 0x3E16, 0x3E17, 0x3E18, 0x3E19, +0x3E1A, 0x3E1B, 0x3E1C, 0x3E1D, 0x3E1E, 0x3E1F, 0x3E20, 0x3E21, +0x3E22, 0x3E23, 0x3E24, 0x3E25, 0x3E26, 0x3E27, 0x3E28, 0x3E29, +0x3E2A, 0x3E2B, 0x3E2C, 0x3E2D, 0x3E2E, 0x3E2F, 0x3E30, 0x3E31, +0x3E32, 0x3E33, 0x3E34, 0x3E35, 0x3E36, 0x3E37, 0x3E38, 0x3E39, +0x3E3A, 0x3E3B, 0x3E3C, 0x3E3D, 0x3E3E, 0x3E3F, 0x3E40, 0x3E41, +0x3E42, 0x3E43, 0x3E44, 0x3E45, 0x3E46, 0x3E47, 0x3E48, 0x3E49, +0x3E4A, 0x3E4B, 0x3E4C, 0x3E4D, 0x3E4E, 0x3E4F, 0x3E50, 0x3E51, +0x3E52, 0x3E53, 0x3E54, 0x3E55, 0x3E56, 0x3E57, 0x3E58, 0x3E59, +0x3E5A, 0x3E5B, 0x3E5C, 0x3E5D, 0x3E5E, 0x3E5F, 0x3E60, 0x3E61, +0x3E62, 0x3E63, 0x3E64, 0x3E65, 0x3E66, 0x3E67, 0x3E68, 0x3E69, +0x3E6A, 0x3E6B, 0x3E6C, 0x3E6D, 0x3E6E, 0x3E6F, 0x3E70, 0x3E71, +0x3E72, 0x3E73, 0x3E74, 0x3E75, 0x3E76, 0x3E77, 0x3E78, 0x3E79, +0x3E7A, 0x3E7B, 0x3E7C, 0x3E7D, 0x3E7E, 0x3E7F, 0x3E80, 0x3E81, +0x3E82, 0x3E83, 0x3E84, 0x3E85, 0x3E86, 0x3E87, 0x3E88, 0x3E89, +0x3E8A, 0x3E8B, 0x3E8C, 0x3E8D, 0x3E8E, 0x3E8F, 0x3E90, 0x3E91, +0x3E92, 0x3E93, 0x3E94, 0x3E95, 0x3E96, 0x3E97, 0x3E98, 0x3E99, +0x3E9A, 0x3E9B, 0x3E9C, 0x3E9D, 0x3E9E, 0x3E9F, 0x3EA0, 0x3EA1, +0x3EA2, 0x3EA3, 0x3EA4, 0x3EA5, 0x3EA6, 0x3EA7, 0x3EA8, 0x3EA9, +0x3EAA, 0x3EAB, 0x3EAC, 0x3EAD, 0x3EAE, 0x3EAF, 0x3EB0, 0x3EB1, +0x3EB2, 0x3EB3, 0x3EB4, 0x3EB5, 0x3EB6, 0x3EB7, 0x3EB8, 0x3EB9, +0x3EBA, 0x3EBB, 0x3EBC, 0x3EBD, 0x3EBE, 0x3EBF, 0x3EC0, 0x3EC1, +0x3EC2, 0x3EC3, 0x3EC4, 0x3EC5, 0x3EC6, 0x3EC7, 0x3EC8, 0x3EC9, +0x3ECA, 0x3ECB, 0x3ECC, 0x3ECD, 0x3ECE, 0x3ECF, 0x3ED0, 0x3ED1, +0x3ED2, 0x3ED3, 0x3ED4, 0x3ED5, 0x3ED6, 0x3ED7, 0x3ED8, 0x3ED9, +0x3EDA, 0x3EDB, 0x3EDC, 0x3EDD, 0x3EDE, 0x3EDF, 0x3EE0, 0x3EE1, +0x3EE2, 0x3EE3, 0x3EE4, 0x3EE5, 0x3EE6, 0x3EE7, 0x3EE8, 0x3EE9, +0x3EEA, 0x3EEB, 0x3EEC, 0x3EED, 0x3EEE, 0x3EEF, 0x3EF0, 0x3EF1, +0x3EF2, 0x3EF3, 0x3EF4, 0x3EF5, 0x3EF6, 0x3EF7, 0x3EF8, 0x3EF9, +0x3EFA, 0x3EFB, 0x3EFC, 0x3EFD, 0x3EFE, 0x3EFF, 0x3F00, 0x3F01, +0x3F02, 0x3F03, 0x3F04, 0x3F05, 0x3F06, 0x3F07, 0x3F08, 0x3F09, +0x3F0A, 0x3F0B, 0x3F0C, 0x3F0D, 0x3F0E, 0x3F0F, 0x3F10, 0x3F11, +0x3F12, 0x3F13, 0x3F14, 0x3F15, 0x3F16, 0x3F17, 0x3F18, 0x3F19, +0x3F1A, 0x3F1B, 0x3F1C, 0x3F1D, 0x3F1E, 0x3F1F, 0x3F20, 0x3F21, +0x3F22, 0x3F23, 0x3F24, 0x3F25, 0x3F26, 0x3F27, 0x3F28, 0x3F29, +0x3F2A, 0x3F2B, 0x3F2C, 0x3F2D, 0x3F2E, 0x3F2F, 0x3F30, 0x3F31, +0x3F32, 0x3F33, 0x3F34, 0x3F35, 0x3F36, 0x3F37, 0x3F38, 0x3F39, +0x3F3A, 0x3F3B, 0x3F3C, 0x3F3D, 0x3F3E, 0x3F3F, 0x3F40, 0x3F41, +0x3F42, 0x3F43, 0x3F44, 0x3F45, 0x3F46, 0x3F47, 0x3F48, 0x3F49, +0x3F4A, 0x3F4B, 0x3F4C, 0x3F4D, 0x3F4E, 0x3F4F, 0x3F50, 0x3F51, +0x3F52, 0x3F53, 0x3F54, 0x3F55, 0x3F56, 0x3F57, 0x3F58, 0x3F59, +0x3F5A, 0x3F5B, 0x3F5C, 0x3F5D, 0x3F5E, 0x3F5F, 0x3F60, 0x3F61, +0x3F62, 0x3F63, 0x3F64, 0x3F65, 0x3F66, 0x3F67, 0x3F68, 0x3F69, +0x3F6A, 0x3F6B, 0x3F6C, 0x3F6D, 0x3F6E, 0x3F6F, 0x3F70, 0x3F71, +0x3F72, 0x3F73, 0x3F74, 0x3F75, 0x3F76, 0x3F77, 0x3F78, 0x3F79, +0x3F7A, 0x3F7B, 0x3F7C, 0x3F7D, 0x3F7E, 0x3F7F, 0x3F80, 0x3F81, +0x3F82, 0x3F83, 0x3F84, 0x3F85, 0x3F86, 0x3F87, 0x3F88, 0x3F89, +0x3F8A, 0x3F8B, 0x3F8C, 0x3F8D, 0x3F8E, 0x3F8F, 0x3F90, 0x3F91, +0x3F92, 0x3F93, 0x3F94, 0x3F95, 0x3F96, 0x3F97, 0x3F98, 0x3F99, +0x3F9A, 0x3F9B, 0x3F9C, 0x3F9D, 0x3F9E, 0x3F9F, 0x3FA0, 0x3FA1, +0x3FA2, 0x3FA3, 0x3FA4, 0x3FA5, 0x3FA6, 0x3FA7, 0x3FA8, 0x3FA9, +0x3FAA, 0x3FAB, 0x3FAC, 0x3FAD, 0x3FAE, 0x3FAF, 0x3FB0, 0x3FB1, +0x3FB2, 0x3FB3, 0x3FB4, 0x3FB5, 0x3FB6, 0x3FB7, 0x3FB8, 0x3FB9, +0x3FBA, 0x3FBB, 0x3FBC, 0x3FBD, 0x3FBE, 0x3FBF, 0x3FC0, 0x3FC1, +0x3FC2, 0x3FC3, 0x3FC4, 0x3FC5, 0x3FC6, 0x3FC7, 0x3FC8, 0x3FC9, +0x3FCA, 0x3FCB, 0x3FCC, 0x3FCD, 0x3FCE, 0x3FCF, 0x3FD0, 0x3FD1, +0x3FD2, 0x3FD3, 0x3FD4, 0x3FD5, 0x3FD6, 0x3FD7, 0x3FD8, 0x3FD9, +0x3FDA, 0x3FDB, 0x3FDC, 0x3FDD, 0x3FDE, 0x3FDF, 0x3FE0, 0x3FE1, +0x3FE2, 0x3FE3, 0x3FE4, 0x3FE5, 0x3FE6, 0x3FE7, 0x3FE8, 0x3FE9, +0x3FEA, 0x3FEB, 0x3FEC, 0x3FED, 0x3FEE, 0x3FEF, 0x3FF0, 0x3FF1, +0x3FF2, 0x3FF3, 0x3FF4, 0x3FF5, 0x3FF6, 0x3FF7, 0x3FF8, 0x3FF9, +0x3FFA, 0x3FFB, 0x3FFC, 0x3FFD, 0x3FFE, 0x3FFF, 0x4000, 0x4001, +0x4002, 0x4003, 0x4004, 0x4005, 0x4006, 0x4007, 0x4008, 0x4009, +0x400A, 0x400B, 0x400C, 0x400D, 0x400E, 0x400F, 0x4010, 0x4011, +0x4012, 0x4013, 0x4014, 0x4015, 0x4016, 0x4017, 0x4018, 0x4019, +0x401A, 0x401B, 0x401C, 0x401D, 0x401E, 0x401F, 0x4020, 0x4021, +0x4022, 0x4023, 0x4024, 0x4025, 0x4026, 0x4027, 0x4028, 0x4029, +0x402A, 0x402B, 0x402C, 0x402D, 0x402E, 0x402F, 0x4030, 0x4031, +0x4032, 0x4033, 0x4034, 0x4035, 0x4036, 0x4037, 0x4038, 0x4039, +0x403A, 0x403B, 0x403C, 0x403D, 0x403E, 0x403F, 0x4040, 0x4041, +0x4042, 0x4043, 0x4044, 0x4045, 0x4046, 0x4047, 0x4048, 0x4049, +0x404A, 0x404B, 0x404C, 0x404D, 0x404E, 0x404F, 0x4050, 0x4051, +0x4052, 0x4053, 0x4054, 0x4055, 0x4057, 0x4058, 0x4059, 0x405A, +0x405B, 0x405C, 0x405D, 0x405E, 0x405F, 0x4060, 0x4061, 0x4062, +0x4063, 0x4064, 0x4065, 0x4066, 0x4067, 0x4068, 0x4069, 0x406A, +0x406B, 0x406C, 0x406D, 0x406E, 0x406F, 0x4070, 0x4071, 0x4072, +0x4073, 0x4074, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407A, +0x407B, 0x407C, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, 0x4082, +0x4083, 0x4084, 0x4085, 0x4086, 0x4087, 0x4088, 0x4089, 0x408A, +0x408B, 0x408C, 0x408D, 0x408E, 0x408F, 0x4090, 0x4091, 0x4092, +0x4093, 0x4094, 0x4095, 0x4096, 0x4097, 0x4098, 0x4099, 0x409A, +0x409B, 0x409C, 0x409D, 0x409E, 0x409F, 0x40A0, 0x40A1, 0x40A2, +0x40A3, 0x40A4, 0x40A5, 0x40A6, 0x40A7, 0x40A8, 0x40A9, 0x40AA, +0x40AB, 0x40AC, 0x40AD, 0x40AE, 0x40AF, 0x40B0, 0x40B1, 0x40B2, +0x40B3, 0x40B4, 0x40B5, 0x40B6, 0x40B7, 0x40B8, 0x40B9, 0x40BA, +0x40BB, 0x40BC, 0x40BD, 0x40BE, 0x40BF, 0x40C0, 0x40C1, 0x40C2, +0x40C3, 0x40C4, 0x40C5, 0x40C6, 0x40C7, 0x40C8, 0x40C9, 0x40CA, +0x40CB, 0x40CC, 0x40CD, 0x40CE, 0x40CF, 0x40D0, 0x40D1, 0x40D2, +0x40D3, 0x40D4, 0x40D5, 0x40D6, 0x40D7, 0x40D8, 0x40D9, 0x40DA, +0x40DB, 0x40DC, 0x40DD, 0x40DE, 0x40DF, 0x40E0, 0x40E1, 0x40E2, +0x40E3, 0x40E4, 0x40E5, 0x40E6, 0x40E7, 0x40E8, 0x40E9, 0x40EA, +0x40EB, 0x40EC, 0x40ED, 0x40EE, 0x40EF, 0x40F0, 0x40F1, 0x40F2, +0x40F3, 0x40F4, 0x40F5, 0x40F6, 0x40F7, 0x40F8, 0x40F9, 0x40FA, +0x40FB, 0x40FC, 0x40FD, 0x40FE, 0x40FF, 0x4100, 0x4101, 0x4102, +0x4103, 0x4104, 0x4105, 0x4106, 0x4107, 0x4108, 0x4109, 0x410A, +0x410B, 0x410C, 0x410D, 0x410E, 0x410F, 0x4110, 0x4111, 0x4112, +0x4113, 0x4114, 0x4115, 0x4116, 0x4117, 0x4118, 0x4119, 0x411A, +0x411B, 0x411C, 0x411D, 0x411E, 0x411F, 0x4120, 0x4121, 0x4122, +0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128, 0x4129, 0x412A, +0x412B, 0x412C, 0x412D, 0x412E, 0x412F, 0x4130, 0x4131, 0x4132, +0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138, 0x4139, 0x413A, +0x413B, 0x413C, 0x413D, 0x413E, 0x413F, 0x4140, 0x4141, 0x4142, +0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148, 0x4149, 0x414A, +0x414B, 0x414C, 0x414D, 0x414E, 0x414F, 0x4150, 0x4151, 0x4152, +0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158, 0x4159, 0x415A, +0x415B, 0x415C, 0x415D, 0x415E, 0x4160, 0x4161, 0x4162, 0x4163, +0x4164, 0x4165, 0x4166, 0x4167, 0x4168, 0x4169, 0x416A, 0x416B, +0x416C, 0x416D, 0x416E, 0x416F, 0x4170, 0x4171, 0x4172, 0x4173, +0x4174, 0x4175, 0x4176, 0x4177, 0x4178, 0x4179, 0x417A, 0x417B, +0x417C, 0x417D, 0x417E, 0x417F, 0x4180, 0x4181, 0x4182, 0x4183, +0x4184, 0x4185, 0x4186, 0x4187, 0x4188, 0x4189, 0x418A, 0x418B, +0x418C, 0x418D, 0x418E, 0x418F, 0x4190, 0x4191, 0x4192, 0x4193, +0x4194, 0x4195, 0x4196, 0x4197, 0x4198, 0x4199, 0x419A, 0x419B, +0x419C, 0x419D, 0x419E, 0x419F, 0x41A0, 0x41A1, 0x41A2, 0x41A3, +0x41A4, 0x41A5, 0x41A6, 0x41A7, 0x41A8, 0x41A9, 0x41AA, 0x41AB, +0x41AC, 0x41AD, 0x41AE, 0x41AF, 0x41B0, 0x41B1, 0x41B2, 0x41B3, +0x41B4, 0x41B5, 0x41B6, 0x41B7, 0x41B8, 0x41B9, 0x41BA, 0x41BB, +0x41BC, 0x41BD, 0x41BE, 0x41BF, 0x41C0, 0x41C1, 0x41C2, 0x41C3, +0x41C4, 0x41C5, 0x41C6, 0x41C7, 0x41C8, 0x41C9, 0x41CA, 0x41CB, +0x41CC, 0x41CD, 0x41CE, 0x41CF, 0x41D0, 0x41D1, 0x41D2, 0x41D3, +0x41D4, 0x41D5, 0x41D6, 0x41D7, 0x41D8, 0x41D9, 0x41DA, 0x41DB, +0x41DC, 0x41DD, 0x41DE, 0x41DF, 0x41E0, 0x41E1, 0x41E2, 0x41E3, +0x41E4, 0x41E5, 0x41E6, 0x41E7, 0x41E8, 0x41E9, 0x41EA, 0x41EB, +0x41EC, 0x41ED, 0x41EE, 0x41EF, 0x41F0, 0x41F1, 0x41F2, 0x41F3, +0x41F4, 0x41F5, 0x41F6, 0x41F7, 0x41F8, 0x41F9, 0x41FA, 0x41FB, +0x41FC, 0x41FD, 0x41FE, 0x41FF, 0x4200, 0x4201, 0x4202, 0x4203, +0x4204, 0x4205, 0x4206, 0x4207, 0x4208, 0x4209, 0x420A, 0x420B, +0x420C, 0x420D, 0x420E, 0x420F, 0x4210, 0x4211, 0x4212, 0x4213, +0x4214, 0x4215, 0x4216, 0x4217, 0x4218, 0x4219, 0x421A, 0x421B, +0x421C, 0x421D, 0x421E, 0x421F, 0x4220, 0x4221, 0x4222, 0x4223, +0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 0x422A, 0x422B, +0x422C, 0x422D, 0x422E, 0x422F, 0x4230, 0x4231, 0x4232, 0x4233, +0x4234, 0x4235, 0x4236, 0x4237, 0x4238, 0x4239, 0x423A, 0x423B, +0x423C, 0x423D, 0x423E, 0x423F, 0x4240, 0x4241, 0x4242, 0x4243, +0x4244, 0x4245, 0x4246, 0x4247, 0x4248, 0x4249, 0x424A, 0x424B, +0x424C, 0x424D, 0x424E, 0x424F, 0x4250, 0x4251, 0x4252, 0x4253, +0x4254, 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425A, 0x425B, +0x425C, 0x425D, 0x425E, 0x425F, 0x4260, 0x4261, 0x4262, 0x4263, +0x4264, 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 0x426A, 0x426B, +0x426C, 0x426D, 0x426E, 0x426F, 0x4270, 0x4271, 0x4272, 0x4273, +0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, 0x427A, 0x427B, +0x427C, 0x427D, 0x427E, 0x427F, 0x4280, 0x4281, 0x4282, 0x4283, +0x4284, 0x4285, 0x4286, 0x4287, 0x4288, 0x4289, 0x428A, 0x428B, +0x428C, 0x428D, 0x428E, 0x428F, 0x4290, 0x4291, 0x4292, 0x4293, +0x4294, 0x4295, 0x4296, 0x4297, 0x4298, 0x4299, 0x429A, 0x429B, +0x429C, 0x429D, 0x429E, 0x429F, 0x42A0, 0x42A1, 0x42A2, 0x42A3, +0x42A4, 0x42A5, 0x42A6, 0x42A7, 0x42A8, 0x42A9, 0x42AA, 0x42AB, +0x42AC, 0x42AD, 0x42AE, 0x42AF, 0x42B0, 0x42B1, 0x42B2, 0x42B3, +0x42B4, 0x42B5, 0x42B6, 0x42B7, 0x42B8, 0x42B9, 0x42BA, 0x42BB, +0x42BC, 0x42BD, 0x42BE, 0x42BF, 0x42C0, 0x42C1, 0x42C2, 0x42C3, +0x42C4, 0x42C5, 0x42C6, 0x42C7, 0x42C8, 0x42C9, 0x42CA, 0x42CB, +0x42CC, 0x42CD, 0x42CE, 0x42CF, 0x42D0, 0x42D1, 0x42D2, 0x42D3, +0x42D4, 0x42D5, 0x42D6, 0x42D7, 0x42D8, 0x42D9, 0x42DA, 0x42DB, +0x42DC, 0x42DD, 0x42DE, 0x42DF, 0x42E0, 0x42E1, 0x42E2, 0x42E3, +0x42E4, 0x42E5, 0x42E6, 0x42E7, 0x42E8, 0x42E9, 0x42EA, 0x42EB, +0x42EC, 0x42ED, 0x42EE, 0x42EF, 0x42F0, 0x42F1, 0x42F2, 0x42F3, +0x42F4, 0x42F5, 0x42F6, 0x42F7, 0x42F8, 0x42F9, 0x42FA, 0x42FB, +0x42FC, 0x42FD, 0x42FE, 0x42FF, 0x4300, 0x4301, 0x4302, 0x4303, +0x4304, 0x4305, 0x4306, 0x4307, 0x4308, 0x4309, 0x430A, 0x430B, +0x430C, 0x430D, 0x430E, 0x430F, 0x4310, 0x4311, 0x4312, 0x4313, +0x4314, 0x4315, 0x4316, 0x4317, 0x4318, 0x4319, 0x431A, 0x431B, +0x431C, 0x431D, 0x431E, 0x431F, 0x4320, 0x4321, 0x4322, 0x4323, +0x4324, 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, 0x432A, 0x432B, +0x432C, 0x432D, 0x432E, 0x432F, 0x4330, 0x4331, 0x4332, 0x4333, +0x4334, 0x4335, 0x4336, 0x4338, 0x4339, 0x433A, 0x433B, 0x433C, +0x433D, 0x433E, 0x433F, 0x4340, 0x4341, 0x4342, 0x4343, 0x4344, +0x4345, 0x4346, 0x4347, 0x4348, 0x4349, 0x434A, 0x434B, 0x434C, +0x434D, 0x434E, 0x434F, 0x4350, 0x4351, 0x4352, 0x4353, 0x4354, +0x4355, 0x4356, 0x4357, 0x4358, 0x4359, 0x435A, 0x435B, 0x435C, +0x435D, 0x435E, 0x435F, 0x4360, 0x4361, 0x4362, 0x4363, 0x4364, +0x4365, 0x4366, 0x4367, 0x4368, 0x4369, 0x436A, 0x436B, 0x436C, +0x436D, 0x436E, 0x436F, 0x4370, 0x4371, 0x4372, 0x4373, 0x4374, +0x4375, 0x4376, 0x4377, 0x4378, 0x4379, 0x437A, 0x437B, 0x437C, +0x437D, 0x437E, 0x437F, 0x4380, 0x4381, 0x4382, 0x4383, 0x4384, +0x4385, 0x4386, 0x4387, 0x4388, 0x4389, 0x438A, 0x438B, 0x438C, +0x438D, 0x438E, 0x438F, 0x4390, 0x4391, 0x4392, 0x4393, 0x4394, +0x4395, 0x4396, 0x4397, 0x4398, 0x4399, 0x439A, 0x439B, 0x439C, +0x439D, 0x439E, 0x439F, 0x43A0, 0x43A1, 0x43A2, 0x43A3, 0x43A4, +0x43A5, 0x43A6, 0x43A7, 0x43A8, 0x43A9, 0x43AA, 0x43AB, 0x43AD, +0x43AE, 0x43AF, 0x43B0, 0x43B2, 0x43B3, 0x43B4, 0x43B5, 0x43B6, +0x43B7, 0x43B8, 0x43B9, 0x43BA, 0x43BB, 0x43BC, 0x43BD, 0x43BE, +0x43BF, 0x43C0, 0x43C1, 0x43C2, 0x43C3, 0x43C4, 0x43C5, 0x43C6, +0x43C7, 0x43C8, 0x43C9, 0x43CA, 0x43CB, 0x43CC, 0x43CD, 0x43CE, +0x43CF, 0x43D0, 0x43D1, 0x43D2, 0x43D3, 0x43D4, 0x43D5, 0x43D6, +0x43D7, 0x43D8, 0x43D9, 0x43DA, 0x43DB, 0x43DC, 0x43DE, 0x43DF, +0x43E0, 0x43E1, 0x43E2, 0x43E3, 0x43E4, 0x43E5, 0x43E6, 0x43E7, +0x43E8, 0x43E9, 0x43EA, 0x43EB, 0x43EC, 0x43ED, 0x43EE, 0x43EF, +0x43F0, 0x43F1, 0x43F2, 0x43F3, 0x43F4, 0x43F5, 0x43F6, 0x43F7, +0x43F8, 0x43F9, 0x43FA, 0x43FB, 0x43FC, 0x43FD, 0x43FE, 0x43FF, +0x4400, 0x4401, 0x4402, 0x4403, 0x4404, 0x4405, 0x4406, 0x4407, +0x4408, 0x4409, 0x440A, 0x440B, 0x440C, 0x440D, 0x440E, 0x440F, +0x4410, 0x4411, 0x4412, 0x4413, 0x4414, 0x4415, 0x4416, 0x4417, +0x4418, 0x4419, 0x441A, 0x441B, 0x441C, 0x441D, 0x441E, 0x441F, +0x4420, 0x4421, 0x4422, 0x4423, 0x4424, 0x4425, 0x4426, 0x4427, +0x4428, 0x4429, 0x442A, 0x442B, 0x442C, 0x442D, 0x442E, 0x442F, +0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435, 0x4436, 0x4437, +0x4438, 0x4439, 0x443A, 0x443B, 0x443C, 0x443D, 0x443E, 0x443F, +0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445, 0x4446, 0x4447, +0x4448, 0x4449, 0x444A, 0x444B, 0x444C, 0x444D, 0x444E, 0x444F, +0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455, 0x4456, 0x4457, +0x4458, 0x4459, 0x445A, 0x445B, 0x445C, 0x445D, 0x445E, 0x445F, +0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465, 0x4466, 0x4467, +0x4468, 0x4469, 0x446A, 0x446B, 0x446C, 0x446D, 0x446E, 0x446F, +0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475, 0x4476, 0x4477, +0x4478, 0x4479, 0x447A, 0x447B, 0x447C, 0x447D, 0x447E, 0x447F, +0x4480, 0x4481, 0x4482, 0x4483, 0x4484, 0x4485, 0x4486, 0x4487, +0x4488, 0x4489, 0x448A, 0x448B, 0x448C, 0x448D, 0x448E, 0x448F, +0x4490, 0x4491, 0x4492, 0x4493, 0x4494, 0x4495, 0x4496, 0x4497, +0x4498, 0x4499, 0x449A, 0x449B, 0x449C, 0x449D, 0x449E, 0x449F, +0x44A0, 0x44A1, 0x44A2, 0x44A3, 0x44A4, 0x44A5, 0x44A6, 0x44A7, +0x44A8, 0x44A9, 0x44AA, 0x44AB, 0x44AC, 0x44AD, 0x44AE, 0x44AF, +0x44B0, 0x44B1, 0x44B2, 0x44B3, 0x44B4, 0x44B5, 0x44B6, 0x44B7, +0x44B8, 0x44B9, 0x44BA, 0x44BB, 0x44BC, 0x44BD, 0x44BE, 0x44BF, +0x44C0, 0x44C1, 0x44C2, 0x44C3, 0x44C4, 0x44C5, 0x44C6, 0x44C7, +0x44C8, 0x44C9, 0x44CA, 0x44CB, 0x44CC, 0x44CD, 0x44CE, 0x44CF, +0x44D0, 0x44D1, 0x44D2, 0x44D3, 0x44D4, 0x44D5, 0x44D7, 0x44D8, +0x44D9, 0x44DA, 0x44DB, 0x44DC, 0x44DD, 0x44DE, 0x44DF, 0x44E0, +0x44E1, 0x44E2, 0x44E3, 0x44E4, 0x44E5, 0x44E6, 0x44E7, 0x44E8, +0x44E9, 0x44EA, 0x44EB, 0x44EC, 0x44ED, 0x44EE, 0x44EF, 0x44F0, +0x44F1, 0x44F2, 0x44F3, 0x44F4, 0x44F5, 0x44F6, 0x44F7, 0x44F8, +0x44F9, 0x44FA, 0x44FB, 0x44FC, 0x44FD, 0x44FE, 0x44FF, 0x4500, +0x4501, 0x4502, 0x4503, 0x4504, 0x4505, 0x4506, 0x4507, 0x4508, +0x4509, 0x450A, 0x450B, 0x450C, 0x450D, 0x450E, 0x450F, 0x4510, +0x4511, 0x4512, 0x4513, 0x4514, 0x4515, 0x4516, 0x4517, 0x4518, +0x4519, 0x451A, 0x451B, 0x451C, 0x451D, 0x451E, 0x451F, 0x4520, +0x4521, 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527, 0x4528, +0x4529, 0x452A, 0x452B, 0x452C, 0x452D, 0x452E, 0x452F, 0x4530, +0x4531, 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537, 0x4538, +0x4539, 0x453A, 0x453B, 0x453C, 0x453D, 0x453E, 0x453F, 0x4540, +0x4541, 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548, +0x4549, 0x454A, 0x454B, 0x454C, 0x454D, 0x454E, 0x454F, 0x4550, +0x4551, 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557, 0x4558, +0x4559, 0x455A, 0x455B, 0x455C, 0x455D, 0x455E, 0x455F, 0x4560, +0x4561, 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567, 0x4568, +0x4569, 0x456A, 0x456B, 0x456C, 0x456D, 0x456E, 0x456F, 0x4570, +0x4571, 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577, 0x4578, +0x4579, 0x457A, 0x457B, 0x457C, 0x457D, 0x457E, 0x457F, 0x4580, +0x4581, 0x4582, 0x4583, 0x4584, 0x4585, 0x4586, 0x4587, 0x4588, +0x4589, 0x458A, 0x458B, 0x458C, 0x458D, 0x458E, 0x458F, 0x4590, +0x4591, 0x4592, 0x4593, 0x4594, 0x4595, 0x4596, 0x4597, 0x4598, +0x4599, 0x459A, 0x459B, 0x459C, 0x459D, 0x459E, 0x459F, 0x45A0, +0x45A1, 0x45A2, 0x45A3, 0x45A4, 0x45A5, 0x45A6, 0x45A7, 0x45A8, +0x45A9, 0x45AA, 0x45AB, 0x45AC, 0x45AD, 0x45AE, 0x45AF, 0x45B0, +0x45B1, 0x45B2, 0x45B3, 0x45B4, 0x45B5, 0x45B6, 0x45B7, 0x45B8, +0x45B9, 0x45BA, 0x45BB, 0x45BC, 0x45BD, 0x45BE, 0x45BF, 0x45C0, +0x45C1, 0x45C2, 0x45C3, 0x45C4, 0x45C5, 0x45C6, 0x45C7, 0x45C8, +0x45C9, 0x45CA, 0x45CB, 0x45CC, 0x45CD, 0x45CE, 0x45CF, 0x45D0, +0x45D1, 0x45D2, 0x45D3, 0x45D4, 0x45D5, 0x45D6, 0x45D7, 0x45D8, +0x45D9, 0x45DA, 0x45DB, 0x45DC, 0x45DD, 0x45DE, 0x45DF, 0x45E0, +0x45E1, 0x45E2, 0x45E3, 0x45E4, 0x45E5, 0x45E6, 0x45E7, 0x45E8, +0x45E9, 0x45EA, 0x45EB, 0x45EC, 0x45ED, 0x45EE, 0x45EF, 0x45F0, +0x45F1, 0x45F2, 0x45F3, 0x45F4, 0x45F5, 0x45F6, 0x45F7, 0x45F8, +0x45F9, 0x45FA, 0x45FB, 0x45FC, 0x45FD, 0x45FE, 0x45FF, 0x4600, +0x4601, 0x4602, 0x4603, 0x4604, 0x4605, 0x4606, 0x4607, 0x4608, +0x4609, 0x460A, 0x460B, 0x460C, 0x460D, 0x460E, 0x460F, 0x4610, +0x4611, 0x4612, 0x4613, 0x4614, 0x4615, 0x4616, 0x4617, 0x4618, +0x4619, 0x461A, 0x461B, 0x461C, 0x461D, 0x461E, 0x461F, 0x4620, +0x4621, 0x4622, 0x4623, 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, +0x4629, 0x462A, 0x462B, 0x462C, 0x462D, 0x462E, 0x462F, 0x4630, +0x4631, 0x4632, 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, +0x4639, 0x463A, 0x463B, 0x463C, 0x463D, 0x463E, 0x463F, 0x4640, +0x4641, 0x4642, 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, +0x4649, 0x464A, 0x464B, 0x464D, 0x464E, 0x464F, 0x4650, 0x4651, +0x4652, 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659, +0x465A, 0x465B, 0x465C, 0x465D, 0x465E, 0x465F, 0x4660, 0x4662, +0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669, 0x466A, +0x466B, 0x466C, 0x466D, 0x466E, 0x466F, 0x4670, 0x4671, 0x4672, +0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679, 0x467A, +0x467B, 0x467C, 0x467D, 0x467E, 0x467F, 0x4680, 0x4681, 0x4682, +0x4683, 0x4684, 0x4685, 0x4686, 0x4687, 0x4688, 0x4689, 0x468A, +0x468B, 0x468C, 0x468D, 0x468E, 0x468F, 0x4690, 0x4691, 0x4692, +0x4693, 0x4694, 0x4695, 0x4696, 0x4697, 0x4698, 0x4699, 0x469A, +0x469B, 0x469C, 0x469D, 0x469E, 0x469F, 0x46A0, 0x46A1, 0x46A2, +0x46A3, 0x46A4, 0x46A5, 0x46A6, 0x46A7, 0x46A8, 0x46A9, 0x46AA, +0x46AB, 0x46AC, 0x46AD, 0x46AE, 0x46AF, 0x46B0, 0x46B1, 0x46B2, +0x46B3, 0x46B4, 0x46B5, 0x46B6, 0x46B7, 0x46B8, 0x46B9, 0x46BA, +0x46BB, 0x46BC, 0x46BD, 0x46BE, 0x46BF, 0x46C0, 0x46C1, 0x46C2, +0x46C3, 0x46C4, 0x46C5, 0x46C6, 0x46C7, 0x46C8, 0x46C9, 0x46CA, +0x46CB, 0x46CC, 0x46CD, 0x46CE, 0x46CF, 0x46D0, 0x46D1, 0x46D2, +0x46D3, 0x46D4, 0x46D5, 0x46D6, 0x46D7, 0x46D8, 0x46D9, 0x46DA, +0x46DB, 0x46DC, 0x46DD, 0x46DE, 0x46DF, 0x46E0, 0x46E1, 0x46E2, +0x46E3, 0x46E4, 0x46E5, 0x46E6, 0x46E7, 0x46E8, 0x46E9, 0x46EA, +0x46EB, 0x46EC, 0x46ED, 0x46EE, 0x46EF, 0x46F0, 0x46F1, 0x46F2, +0x46F3, 0x46F4, 0x46F5, 0x46F6, 0x46F7, 0x46F8, 0x46F9, 0x46FA, +0x46FB, 0x46FC, 0x46FD, 0x46FE, 0x46FF, 0x4700, 0x4701, 0x4702, +0x4703, 0x4704, 0x4705, 0x4706, 0x4707, 0x4708, 0x4709, 0x470A, +0x470B, 0x470C, 0x470D, 0x470E, 0x470F, 0x4710, 0x4711, 0x4712, +0x4713, 0x4714, 0x4715, 0x4716, 0x4717, 0x4718, 0x4719, 0x471A, +0x471B, 0x471C, 0x471D, 0x471E, 0x471F, 0x4720, 0x4721, 0x4722, +0x4724, 0x4725, 0x4726, 0x4727, 0x4728, 0x472A, 0x472B, 0x472C, +0x472D, 0x472E, 0x472F, 0x4730, 0x4731, 0x4732, 0x4733, 0x4734, +0x4735, 0x4736, 0x4737, 0x4738, 0x4739, 0x473A, 0x473B, 0x473C, +0x473D, 0x473E, 0x473F, 0x4740, 0x4741, 0x4742, 0x4743, 0x4744, +0x4745, 0x4746, 0x4747, 0x4748, 0x4749, 0x474A, 0x474B, 0x474C, +0x474D, 0x474E, 0x474F, 0x4750, 0x4751, 0x4752, 0x4753, 0x4754, +0x4755, 0x4756, 0x4757, 0x4758, 0x4759, 0x475A, 0x475B, 0x475C, +0x475D, 0x475E, 0x475F, 0x4760, 0x4761, 0x4762, 0x4763, 0x4764, +0x4765, 0x4766, 0x4767, 0x4768, 0x4769, 0x476A, 0x476B, 0x476C, +0x476D, 0x476E, 0x476F, 0x4770, 0x4771, 0x4772, 0x4773, 0x4774, +0x4775, 0x4776, 0x4777, 0x4778, 0x4779, 0x477A, 0x477B, 0x477D, +0x477E, 0x477F, 0x4780, 0x4781, 0x4782, 0x4783, 0x4784, 0x4785, +0x4786, 0x4787, 0x4788, 0x4789, 0x478A, 0x478B, 0x478C, 0x478E, +0x478F, 0x4790, 0x4791, 0x4792, 0x4793, 0x4794, 0x4795, 0x4796, +0x4797, 0x4798, 0x4799, 0x479A, 0x479B, 0x479C, 0x479D, 0x479E, +0x479F, 0x47A0, 0x47A1, 0x47A2, 0x47A3, 0x47A4, 0x47A5, 0x47A6, +0x47A7, 0x47A8, 0x47A9, 0x47AA, 0x47AB, 0x47AC, 0x47AD, 0x47AE, +0x47AF, 0x47B0, 0x47B1, 0x47B2, 0x47B3, 0x47B4, 0x47B5, 0x47B6, +0x47B7, 0x47B8, 0x47B9, 0x47BA, 0x47BB, 0x47BC, 0x47BD, 0x47BE, +0x47BF, 0x47C0, 0x47C1, 0x47C2, 0x47C3, 0x47C4, 0x47C5, 0x47C6, +0x47C7, 0x47C8, 0x47C9, 0x47CA, 0x47CB, 0x47CC, 0x47CD, 0x47CE, +0x47CF, 0x47D0, 0x47D1, 0x47D2, 0x47D3, 0x47D4, 0x47D5, 0x47D6, +0x47D7, 0x47D8, 0x47D9, 0x47DA, 0x47DB, 0x47DC, 0x47DD, 0x47DE, +0x47DF, 0x47E0, 0x47E1, 0x47E2, 0x47E3, 0x47E4, 0x47E5, 0x47E6, +0x47E7, 0x47E8, 0x47E9, 0x47EA, 0x47EB, 0x47EC, 0x47ED, 0x47EE, +0x47EF, 0x47F0, 0x47F1, 0x47F2, 0x47F3, 0x47F4, 0x47F5, 0x47F6, +0x47F7, 0x47F8, 0x47F9, 0x47FA, 0x47FB, 0x47FC, 0x47FD, 0x47FE, +0x47FF, 0x4800, 0x4801, 0x4802, 0x4803, 0x4804, 0x4805, 0x4806, +0x4807, 0x4808, 0x4809, 0x480A, 0x480B, 0x480C, 0x480D, 0x480E, +0x480F, 0x4810, 0x4811, 0x4812, 0x4813, 0x4814, 0x4815, 0x4816, +0x4817, 0x4818, 0x4819, 0x481A, 0x481B, 0x481C, 0x481D, 0x481E, +0x481F, 0x4820, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826, +0x4827, 0x4828, 0x4829, 0x482A, 0x482B, 0x482C, 0x482D, 0x482E, +0x482F, 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836, +0x4837, 0x4838, 0x4839, 0x483A, 0x483B, 0x483C, 0x483D, 0x483E, +0x483F, 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846, +0x4847, 0x4848, 0x4849, 0x484A, 0x484B, 0x484C, 0x484D, 0x484E, +0x484F, 0x4850, 0x4851, 0x4852, 0x4853, 0x4854, 0x4855, 0x4856, +0x4857, 0x4858, 0x4859, 0x485A, 0x485B, 0x485C, 0x485D, 0x485E, +0x485F, 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866, +0x4867, 0x4868, 0x4869, 0x486A, 0x486B, 0x486C, 0x486D, 0x486E, +0x486F, 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876, +0x4877, 0x4878, 0x4879, 0x487A, 0x487B, 0x487C, 0x487D, 0x487E, +0x487F, 0x4880, 0x4881, 0x4882, 0x4883, 0x4884, 0x4885, 0x4886, +0x4887, 0x4888, 0x4889, 0x488A, 0x488B, 0x488C, 0x488D, 0x488E, +0x488F, 0x4890, 0x4891, 0x4892, 0x4893, 0x4894, 0x4895, 0x4896, +0x4897, 0x4898, 0x4899, 0x489A, 0x489B, 0x489C, 0x489D, 0x489E, +0x489F, 0x48A0, 0x48A1, 0x48A2, 0x48A3, 0x48A4, 0x48A5, 0x48A6, +0x48A7, 0x48A8, 0x48A9, 0x48AA, 0x48AB, 0x48AC, 0x48AD, 0x48AE, +0x48AF, 0x48B0, 0x48B1, 0x48B2, 0x48B3, 0x48B4, 0x48B5, 0x48B6, +0x48B7, 0x48B8, 0x48B9, 0x48BA, 0x48BB, 0x48BC, 0x48BD, 0x48BE, +0x48BF, 0x48C0, 0x48C1, 0x48C2, 0x48C3, 0x48C4, 0x48C5, 0x48C6, +0x48C7, 0x48C8, 0x48C9, 0x48CA, 0x48CB, 0x48CC, 0x48CD, 0x48CE, +0x48CF, 0x48D0, 0x48D1, 0x48D2, 0x48D3, 0x48D4, 0x48D5, 0x48D6, +0x48D7, 0x48D8, 0x48D9, 0x48DA, 0x48DB, 0x48DC, 0x48DD, 0x48DE, +0x48DF, 0x48E0, 0x48E1, 0x48E2, 0x48E3, 0x48E4, 0x48E5, 0x48E6, +0x48E7, 0x48E8, 0x48E9, 0x48EA, 0x48EB, 0x48EC, 0x48ED, 0x48EE, +0x48EF, 0x48F0, 0x48F1, 0x48F2, 0x48F3, 0x48F4, 0x48F5, 0x48F6, +0x48F7, 0x48F8, 0x48F9, 0x48FA, 0x48FB, 0x48FC, 0x48FD, 0x48FE, +0x48FF, 0x4900, 0x4901, 0x4902, 0x4903, 0x4904, 0x4905, 0x4906, +0x4907, 0x4908, 0x4909, 0x490A, 0x490B, 0x490C, 0x490D, 0x490E, +0x490F, 0x4910, 0x4911, 0x4912, 0x4913, 0x4914, 0x4915, 0x4916, +0x4917, 0x4918, 0x4919, 0x491A, 0x491B, 0x491C, 0x491D, 0x491E, +0x491F, 0x4920, 0x4921, 0x4922, 0x4923, 0x4924, 0x4925, 0x4926, +0x4927, 0x4928, 0x4929, 0x492A, 0x492B, 0x492C, 0x492D, 0x492E, +0x492F, 0x4930, 0x4931, 0x4932, 0x4933, 0x4934, 0x4935, 0x4936, +0x4937, 0x4938, 0x4939, 0x493A, 0x493B, 0x493C, 0x493D, 0x493E, +0x493F, 0x4940, 0x4941, 0x4942, 0x4943, 0x4944, 0x4945, 0x4946, +0x4948, 0x4949, 0x494A, 0x494B, 0x494C, 0x494D, 0x494E, 0x494F, +0x4950, 0x4951, 0x4952, 0x4953, 0x4954, 0x4955, 0x4956, 0x4957, +0x4958, 0x4959, 0x495A, 0x495B, 0x495C, 0x495D, 0x495E, 0x495F, +0x4960, 0x4961, 0x4962, 0x4963, 0x4964, 0x4965, 0x4966, 0x4967, +0x4968, 0x4969, 0x496A, 0x496B, 0x496C, 0x496D, 0x496E, 0x496F, +0x4970, 0x4971, 0x4972, 0x4973, 0x4974, 0x4975, 0x4976, 0x4977, +0x4978, 0x4979, 0x497B, 0x497C, 0x497E, 0x497F, 0x4980, 0x4981, +0x4984, 0x4987, 0x4988, 0x4989, 0x498A, 0x498B, 0x498C, 0x498D, +0x498E, 0x498F, 0x4990, 0x4991, 0x4992, 0x4993, 0x4994, 0x4995, +0x4996, 0x4997, 0x4998, 0x4999, 0x499A, 0x499C, 0x499D, 0x499E, +0x49A0, 0x49A1, 0x49A2, 0x49A3, 0x49A4, 0x49A5, 0x49A6, 0x49A7, +0x49A8, 0x49A9, 0x49AA, 0x49AB, 0x49AC, 0x49AD, 0x49AE, 0x49AF, +0x49B0, 0x49B1, 0x49B2, 0x49B3, 0x49B4, 0x49B5, 0x49B8, 0x49B9, +0x49BA, 0x49BB, 0x49BC, 0x49BD, 0x49BE, 0x49BF, 0x49C0, 0x49C1, +0x49C2, 0x49C3, 0x49C4, 0x49C5, 0x49C6, 0x49C7, 0x49C8, 0x49C9, +0x49CA, 0x49CB, 0x49CC, 0x49CD, 0x49CE, 0x49CF, 0x49D0, 0x49D1, +0x49D2, 0x49D3, 0x49D4, 0x49D5, 0x49D6, 0x49D7, 0x49D8, 0x49D9, +0x49DA, 0x49DB, 0x49DC, 0x49DD, 0x49DE, 0x49DF, 0x49E0, 0x49E1, +0x49E2, 0x49E3, 0x49E4, 0x49E5, 0x49E6, 0x49E7, 0x49E8, 0x49E9, +0x49EA, 0x49EB, 0x49EC, 0x49ED, 0x49EE, 0x49EF, 0x49F0, 0x49F1, +0x49F2, 0x49F3, 0x49F4, 0x49F5, 0x49F6, 0x49F7, 0x49F8, 0x49F9, +0x49FA, 0x49FB, 0x49FC, 0x49FD, 0x49FE, 0x49FF, 0x4A00, 0x4A01, +0x4A02, 0x4A03, 0x4A04, 0x4A05, 0x4A06, 0x4A07, 0x4A08, 0x4A09, +0x4A0A, 0x4A0B, 0x4A0C, 0x4A0D, 0x4A0E, 0x4A0F, 0x4A10, 0x4A11, +0x4A12, 0x4A13, 0x4A14, 0x4A15, 0x4A16, 0x4A17, 0x4A18, 0x4A19, +0x4A1A, 0x4A1B, 0x4A1C, 0x4A1D, 0x4A1E, 0x4A1F, 0x4A20, 0x4A21, +0x4A22, 0x4A23, 0x4A24, 0x4A25, 0x4A26, 0x4A27, 0x4A28, 0x4A29, +0x4A2A, 0x4A2B, 0x4A2C, 0x4A2D, 0x4A2E, 0x4A2F, 0x4A30, 0x4A31, +0x4A32, 0x4A33, 0x4A34, 0x4A35, 0x4A36, 0x4A37, 0x4A38, 0x4A39, +0x4A3A, 0x4A3B, 0x4A3C, 0x4A3D, 0x4A3E, 0x4A3F, 0x4A40, 0x4A41, +0x4A42, 0x4A43, 0x4A44, 0x4A45, 0x4A46, 0x4A47, 0x4A48, 0x4A49, +0x4A4A, 0x4A4B, 0x4A4C, 0x4A4D, 0x4A4E, 0x4A4F, 0x4A50, 0x4A51, +0x4A52, 0x4A53, 0x4A54, 0x4A55, 0x4A56, 0x4A57, 0x4A58, 0x4A59, +0x4A5A, 0x4A5B, 0x4A5C, 0x4A5D, 0x4A5E, 0x4A5F, 0x4A60, 0x4A61, +0x4A62, 0x4A63, 0x4A64, 0x4A65, 0x4A66, 0x4A67, 0x4A68, 0x4A69, +0x4A6A, 0x4A6B, 0x4A6C, 0x4A6D, 0x4A6E, 0x4A6F, 0x4A70, 0x4A71, +0x4A72, 0x4A73, 0x4A74, 0x4A75, 0x4A76, 0x4A77, 0x4A78, 0x4A79, +0x4A7A, 0x4A7B, 0x4A7C, 0x4A7D, 0x4A7E, 0x4A7F, 0x4A80, 0x4A81, +0x4A82, 0x4A83, 0x4A84, 0x4A85, 0x4A86, 0x4A87, 0x4A88, 0x4A89, +0x4A8A, 0x4A8B, 0x4A8C, 0x4A8D, 0x4A8E, 0x4A8F, 0x4A90, 0x4A91, +0x4A92, 0x4A93, 0x4A94, 0x4A95, 0x4A96, 0x4A97, 0x4A98, 0x4A99, +0x4A9A, 0x4A9B, 0x4A9C, 0x4A9D, 0x4A9E, 0x4A9F, 0x4AA0, 0x4AA1, +0x4AA2, 0x4AA3, 0x4AA4, 0x4AA5, 0x4AA6, 0x4AA7, 0x4AA8, 0x4AA9, +0x4AAA, 0x4AAB, 0x4AAC, 0x4AAD, 0x4AAE, 0x4AAF, 0x4AB0, 0x4AB1, +0x4AB2, 0x4AB3, 0x4AB4, 0x4AB5, 0x4AB6, 0x4AB7, 0x4AB8, 0x4AB9, +0x4ABA, 0x4ABB, 0x4ABC, 0x4ABD, 0x4ABE, 0x4ABF, 0x4AC0, 0x4AC1, +0x4AC2, 0x4AC3, 0x4AC4, 0x4AC5, 0x4AC6, 0x4AC7, 0x4AC8, 0x4AC9, +0x4ACA, 0x4ACB, 0x4ACC, 0x4ACD, 0x4ACE, 0x4ACF, 0x4AD0, 0x4AD1, +0x4AD2, 0x4AD3, 0x4AD4, 0x4AD5, 0x4AD6, 0x4AD7, 0x4AD8, 0x4AD9, +0x4ADA, 0x4ADB, 0x4ADC, 0x4ADD, 0x4ADE, 0x4ADF, 0x4AE0, 0x4AE1, +0x4AE2, 0x4AE3, 0x4AE4, 0x4AE5, 0x4AE6, 0x4AE7, 0x4AE8, 0x4AE9, +0x4AEA, 0x4AEB, 0x4AEC, 0x4AED, 0x4AEE, 0x4AEF, 0x4AF0, 0x4AF1, +0x4AF2, 0x4AF3, 0x4AF4, 0x4AF5, 0x4AF6, 0x4AF7, 0x4AF8, 0x4AF9, +0x4AFA, 0x4AFB, 0x4AFC, 0x4AFD, 0x4AFE, 0x4AFF, 0x4B00, 0x4B01, +0x4B02, 0x4B03, 0x4B04, 0x4B05, 0x4B06, 0x4B07, 0x4B08, 0x4B09, +0x4B0A, 0x4B0B, 0x4B0C, 0x4B0D, 0x4B0E, 0x4B0F, 0x4B10, 0x4B11, +0x4B12, 0x4B13, 0x4B14, 0x4B15, 0x4B16, 0x4B17, 0x4B18, 0x4B19, +0x4B1A, 0x4B1B, 0x4B1C, 0x4B1D, 0x4B1E, 0x4B1F, 0x4B20, 0x4B21, +0x4B22, 0x4B23, 0x4B24, 0x4B25, 0x4B26, 0x4B27, 0x4B28, 0x4B29, +0x4B2A, 0x4B2B, 0x4B2C, 0x4B2D, 0x4B2E, 0x4B2F, 0x4B30, 0x4B31, +0x4B32, 0x4B33, 0x4B34, 0x4B35, 0x4B36, 0x4B37, 0x4B38, 0x4B39, +0x4B3A, 0x4B3B, 0x4B3C, 0x4B3D, 0x4B3E, 0x4B3F, 0x4B40, 0x4B41, +0x4B42, 0x4B43, 0x4B44, 0x4B45, 0x4B46, 0x4B47, 0x4B48, 0x4B49, +0x4B4A, 0x4B4B, 0x4B4C, 0x4B4D, 0x4B4E, 0x4B4F, 0x4B50, 0x4B51, +0x4B52, 0x4B53, 0x4B54, 0x4B55, 0x4B56, 0x4B57, 0x4B58, 0x4B59, +0x4B5A, 0x4B5B, 0x4B5C, 0x4B5D, 0x4B5E, 0x4B5F, 0x4B60, 0x4B61, +0x4B62, 0x4B63, 0x4B64, 0x4B65, 0x4B66, 0x4B67, 0x4B68, 0x4B69, +0x4B6A, 0x4B6B, 0x4B6C, 0x4B6D, 0x4B6E, 0x4B6F, 0x4B70, 0x4B71, +0x4B72, 0x4B73, 0x4B74, 0x4B75, 0x4B76, 0x4B77, 0x4B78, 0x4B79, +0x4B7A, 0x4B7B, 0x4B7C, 0x4B7D, 0x4B7E, 0x4B7F, 0x4B80, 0x4B81, +0x4B82, 0x4B83, 0x4B84, 0x4B85, 0x4B86, 0x4B87, 0x4B88, 0x4B89, +0x4B8A, 0x4B8B, 0x4B8C, 0x4B8D, 0x4B8E, 0x4B8F, 0x4B90, 0x4B91, +0x4B92, 0x4B93, 0x4B94, 0x4B95, 0x4B96, 0x4B97, 0x4B98, 0x4B99, +0x4B9A, 0x4B9B, 0x4B9C, 0x4B9D, 0x4B9E, 0x4B9F, 0x4BA0, 0x4BA1, +0x4BA2, 0x4BA3, 0x4BA4, 0x4BA5, 0x4BA6, 0x4BA7, 0x4BA8, 0x4BA9, +0x4BAA, 0x4BAB, 0x4BAC, 0x4BAD, 0x4BAE, 0x4BAF, 0x4BB0, 0x4BB1, +0x4BB2, 0x4BB3, 0x4BB4, 0x4BB5, 0x4BB6, 0x4BB7, 0x4BB8, 0x4BB9, +0x4BBA, 0x4BBB, 0x4BBC, 0x4BBD, 0x4BBE, 0x4BBF, 0x4BC0, 0x4BC1, +0x4BC2, 0x4BC3, 0x4BC4, 0x4BC5, 0x4BC6, 0x4BC7, 0x4BC8, 0x4BC9, +0x4BCA, 0x4BCB, 0x4BCC, 0x4BCD, 0x4BCE, 0x4BCF, 0x4BD0, 0x4BD1, +0x4BD2, 0x4BD3, 0x4BD4, 0x4BD5, 0x4BD6, 0x4BD7, 0x4BD8, 0x4BD9, +0x4BDA, 0x4BDB, 0x4BDC, 0x4BDD, 0x4BDE, 0x4BDF, 0x4BE0, 0x4BE1, +0x4BE2, 0x4BE3, 0x4BE4, 0x4BE5, 0x4BE6, 0x4BE7, 0x4BE8, 0x4BE9, +0x4BEA, 0x4BEB, 0x4BEC, 0x4BED, 0x4BEE, 0x4BEF, 0x4BF0, 0x4BF1, +0x4BF2, 0x4BF3, 0x4BF4, 0x4BF5, 0x4BF6, 0x4BF7, 0x4BF8, 0x4BF9, +0x4BFA, 0x4BFB, 0x4BFC, 0x4BFD, 0x4BFE, 0x4BFF, 0x4C00, 0x4C01, +0x4C02, 0x4C03, 0x4C04, 0x4C05, 0x4C06, 0x4C07, 0x4C08, 0x4C09, +0x4C0A, 0x4C0B, 0x4C0C, 0x4C0D, 0x4C0E, 0x4C0F, 0x4C10, 0x4C11, +0x4C12, 0x4C13, 0x4C14, 0x4C15, 0x4C16, 0x4C17, 0x4C18, 0x4C19, +0x4C1A, 0x4C1B, 0x4C1C, 0x4C1D, 0x4C1E, 0x4C1F, 0x4C20, 0x4C21, +0x4C22, 0x4C23, 0x4C24, 0x4C25, 0x4C26, 0x4C27, 0x4C28, 0x4C29, +0x4C2A, 0x4C2B, 0x4C2C, 0x4C2D, 0x4C2E, 0x4C2F, 0x4C30, 0x4C31, +0x4C32, 0x4C33, 0x4C34, 0x4C35, 0x4C36, 0x4C37, 0x4C38, 0x4C39, +0x4C3A, 0x4C3B, 0x4C3C, 0x4C3D, 0x4C3E, 0x4C3F, 0x4C40, 0x4C41, +0x4C42, 0x4C43, 0x4C44, 0x4C45, 0x4C46, 0x4C47, 0x4C48, 0x4C49, +0x4C4A, 0x4C4B, 0x4C4C, 0x4C4D, 0x4C4E, 0x4C4F, 0x4C50, 0x4C51, +0x4C52, 0x4C53, 0x4C54, 0x4C55, 0x4C56, 0x4C57, 0x4C58, 0x4C59, +0x4C5A, 0x4C5B, 0x4C5C, 0x4C5D, 0x4C5E, 0x4C5F, 0x4C60, 0x4C61, +0x4C62, 0x4C63, 0x4C64, 0x4C65, 0x4C66, 0x4C67, 0x4C68, 0x4C69, +0x4C6A, 0x4C6B, 0x4C6C, 0x4C6D, 0x4C6E, 0x4C6F, 0x4C70, 0x4C71, +0x4C72, 0x4C73, 0x4C74, 0x4C75, 0x4C76, 0x4C78, 0x4C79, 0x4C7A, +0x4C7B, 0x4C7C, 0x4C7D, 0x4C7E, 0x4C7F, 0x4C80, 0x4C81, 0x4C82, +0x4C83, 0x4C84, 0x4C85, 0x4C86, 0x4C87, 0x4C88, 0x4C89, 0x4C8A, +0x4C8B, 0x4C8C, 0x4C8D, 0x4C8E, 0x4C8F, 0x4C90, 0x4C91, 0x4C92, +0x4C93, 0x4C94, 0x4C95, 0x4C96, 0x4C97, 0x4C98, 0x4C99, 0x4C9A, +0x4C9B, 0x4C9C, 0x4C9D, 0x4C9E, 0x4CA4, 0x4CA5, 0x4CA6, 0x4CA7, +0x4CA8, 0x4CA9, 0x4CAA, 0x4CAB, 0x4CAC, 0x4CAD, 0x4CAE, 0x4CAF, +0x4CB0, 0x4CB1, 0x4CB2, 0x4CB3, 0x4CB4, 0x4CB5, 0x4CB6, 0x4CB7, +0x4CB8, 0x4CB9, 0x4CBA, 0x4CBB, 0x4CBC, 0x4CBD, 0x4CBE, 0x4CBF, +0x4CC0, 0x4CC1, 0x4CC2, 0x4CC3, 0x4CC4, 0x4CC5, 0x4CC6, 0x4CC7, +0x4CC8, 0x4CC9, 0x4CCA, 0x4CCB, 0x4CCC, 0x4CCD, 0x4CCE, 0x4CCF, +0x4CD0, 0x4CD1, 0x4CD2, 0x4CD3, 0x4CD4, 0x4CD5, 0x4CD6, 0x4CD7, +0x4CD8, 0x4CD9, 0x4CDA, 0x4CDB, 0x4CDC, 0x4CDD, 0x4CDE, 0x4CDF, +0x4CE0, 0x4CE1, 0x4CE2, 0x4CE3, 0x4CE4, 0x4CE5, 0x4CE6, 0x4CE7, +0x4CE8, 0x4CE9, 0x4CEA, 0x4CEB, 0x4CEC, 0x4CED, 0x4CEE, 0x4CEF, +0x4CF0, 0x4CF1, 0x4CF2, 0x4CF3, 0x4CF4, 0x4CF5, 0x4CF6, 0x4CF7, +0x4CF8, 0x4CF9, 0x4CFA, 0x4CFB, 0x4CFC, 0x4CFD, 0x4CFE, 0x4CFF, +0x4D00, 0x4D01, 0x4D02, 0x4D03, 0x4D04, 0x4D05, 0x4D06, 0x4D07, +0x4D08, 0x4D09, 0x4D0A, 0x4D0B, 0x4D0C, 0x4D0D, 0x4D0E, 0x4D0F, +0x4D10, 0x4D11, 0x4D12, 0x4D1A, 0x4D1B, 0x4D1C, 0x4D1D, 0x4D1E, +0x4D1F, 0x4D20, 0x4D21, 0x4D22, 0x4D23, 0x4D24, 0x4D25, 0x4D26, +0x4D27, 0x4D28, 0x4D29, 0x4D2A, 0x4D2B, 0x4D2C, 0x4D2D, 0x4D2E, +0x4D2F, 0x4D30, 0x4D31, 0x4D32, 0x4D33, 0x4D34, 0x4D35, 0x4D36, +0x4D37, 0x4D38, 0x4D39, 0x4D3A, 0x4D3B, 0x4D3C, 0x4D3D, 0x4D3E, +0x4D3F, 0x4D40, 0x4D41, 0x4D42, 0x4D43, 0x4D44, 0x4D45, 0x4D46, +0x4D47, 0x4D48, 0x4D49, 0x4D4A, 0x4D4B, 0x4D4C, 0x4D4D, 0x4D4E, +0x4D4F, 0x4D50, 0x4D51, 0x4D52, 0x4D53, 0x4D54, 0x4D55, 0x4D56, +0x4D57, 0x4D58, 0x4D59, 0x4D5A, 0x4D5B, 0x4D5C, 0x4D5D, 0x4D5E, +0x4D5F, 0x4D60, 0x4D61, 0x4D62, 0x4D63, 0x4D64, 0x4D65, 0x4D66, +0x4D67, 0x4D68, 0x4D69, 0x4D6A, 0x4D6B, 0x4D6C, 0x4D6D, 0x4D6E, +0x4D6F, 0x4D70, 0x4D71, 0x4D72, 0x4D73, 0x4D74, 0x4D75, 0x4D76, +0x4D77, 0x4D78, 0x4D79, 0x4D7A, 0x4D7B, 0x4D7C, 0x4D7D, 0x4D7E, +0x4D7F, 0x4D80, 0x4D81, 0x4D82, 0x4D83, 0x4D84, 0x4D85, 0x4D86, +0x4D87, 0x4D88, 0x4D89, 0x4D8A, 0x4D8B, 0x4D8C, 0x4D8D, 0x4D8E, +0x4D8F, 0x4D90, 0x4D91, 0x4D92, 0x4D93, 0x4D94, 0x4D95, 0x4D96, +0x4D97, 0x4D98, 0x4D99, 0x4D9A, 0x4D9B, 0x4D9C, 0x4D9D, 0x4D9E, +0x4D9F, 0x4DA0, 0x4DA1, 0x4DA2, 0x4DA3, 0x4DA4, 0x4DA5, 0x4DA6, +0x4DA7, 0x4DA8, 0x4DA9, 0x4DAA, 0x4DAB, 0x4DAC, 0x4DAD, 0x4DAF, +0x4DB0, 0x4DB1, 0x4DB2, 0x4DB3, 0x4DB4, 0x4DB5, 0x4DB6, 0x4DB7, +0x4DB8, 0x4DB9, 0x4DBA, 0x4DBB, 0x4DBC, 0x4DBD, 0x4DBE, 0x4DBF, +0x4DC0, 0x4DC1, 0x4DC2, 0x4DC3, 0x4DC4, 0x4DC5, 0x4DC6, 0x4DC7, +0x4DC8, 0x4DC9, 0x4DCA, 0x4DCB, 0x4DCC, 0x4DCD, 0x4DCE, 0x4DCF, +0x4DD0, 0x4DD1, 0x4DD2, 0x4DD3, 0x4DD4, 0x4DD5, 0x4DD6, 0x4DD7, +0x4DD8, 0x4DD9, 0x4DDA, 0x4DDB, 0x4DDC, 0x4DDD, 0x4DDE, 0x4DDF, +0x4DE0, 0x4DE1, 0x4DE2, 0x4DE3, 0x4DE4, 0x4DE5, 0x4DE6, 0x4DE7, +0x4DE8, 0x4DE9, 0x4DEA, 0x4DEB, 0x4DEC, 0x4DED, 0x4DEE, 0x4DEF, +0x4DF0, 0x4DF1, 0x4DF2, 0x4DF3, 0x4DF4, 0x4DF5, 0x4DF6, 0x4DF7, +0x4DF8, 0x4DF9, 0x4DFA, 0x4DFB, 0x4DFC, 0x4DFD, 0x4DFE, 0x4DFF, +0xE76C, 0xE7C8, 0xE7E7, 0xE7E8, 0xE7E9, 0xE7EA, 0xE7EB, 0xE7EC, +0xE7ED, 0xE7EE, 0xE7EF, 0xE7F0, 0xE7F1, 0xE7F2, 0xE7F3, 0xE815, +0xE819, 0xE81A, 0xE81B, 0xE81C, 0xE81D, 0xE81F, 0xE820, 0xE821, +0xE822, 0xE823, 0xE824, 0xE825, 0xE827, 0xE828, 0xE829, 0xE82A, +0xE82D, 0xE82E, 0xE82F, 0xE830, 0xE833, 0xE834, 0xE835, 0xE836, +0xE837, 0xE838, 0xE839, 0xE83A, 0xE83C, 0xE83D, 0xE83E, 0xE83F, +0xE840, 0xE841, 0xE842, 0xE844, 0xE845, 0xE846, 0xE847, 0xE848, +0xE849, 0xE84A, 0xE84B, 0xE84C, 0xE84D, 0xE84E, 0xE84F, 0xE850, +0xE851, 0xE852, 0xE853, 0xE856, 0xE857, 0xE858, 0xE859, 0xE85A, +0xE85B, 0xE85C, 0xE85D, 0xE85E, 0xE85F, 0xE860, 0xE861, 0xE862, +0xE863, 0xF92D, 0xF92E, 0xF92F, 0xF930, 0xF931, 0xF932, 0xF933, +0xF934, 0xF935, 0xF936, 0xF937, 0xF938, 0xF939, 0xF93A, 0xF93B, +0xF93C, 0xF93D, 0xF93E, 0xF93F, 0xF940, 0xF941, 0xF942, 0xF943, +0xF944, 0xF945, 0xF946, 0xF947, 0xF948, 0xF949, 0xF94A, 0xF94B, +0xF94C, 0xF94D, 0xF94E, 0xF94F, 0xF950, 0xF951, 0xF952, 0xF953, +0xF954, 0xF955, 0xF956, 0xF957, 0xF958, 0xF959, 0xF95A, 0xF95B, +0xF95C, 0xF95D, 0xF95E, 0xF95F, 0xF960, 0xF961, 0xF962, 0xF963, +0xF964, 0xF965, 0xF966, 0xF967, 0xF968, 0xF969, 0xF96A, 0xF96B, +0xF96C, 0xF96D, 0xF96E, 0xF96F, 0xF970, 0xF971, 0xF972, 0xF973, +0xF974, 0xF975, 0xF976, 0xF977, 0xF978, 0xF97A, 0xF97B, 0xF97C, +0xF97D, 0xF97E, 0xF97F, 0xF980, 0xF981, 0xF982, 0xF983, 0xF984, +0xF985, 0xF986, 0xF987, 0xF988, 0xF989, 0xF98A, 0xF98B, 0xF98C, +0xF98D, 0xF98E, 0xF98F, 0xF990, 0xF991, 0xF992, 0xF993, 0xF994, +0xF996, 0xF997, 0xF998, 0xF999, 0xF99A, 0xF99B, 0xF99C, 0xF99D, +0xF99E, 0xF99F, 0xF9A0, 0xF9A1, 0xF9A2, 0xF9A3, 0xF9A4, 0xF9A5, +0xF9A6, 0xF9A7, 0xF9A8, 0xF9A9, 0xF9AA, 0xF9AB, 0xF9AC, 0xF9AD, +0xF9AE, 0xF9AF, 0xF9B0, 0xF9B1, 0xF9B2, 0xF9B3, 0xF9B4, 0xF9B5, +0xF9B6, 0xF9B7, 0xF9B8, 0xF9B9, 0xF9BA, 0xF9BB, 0xF9BC, 0xF9BD, +0xF9BE, 0xF9BF, 0xF9C0, 0xF9C1, 0xF9C2, 0xF9C3, 0xF9C4, 0xF9C5, +0xF9C6, 0xF9C7, 0xF9C8, 0xF9C9, 0xF9CA, 0xF9CB, 0xF9CC, 0xF9CD, +0xF9CE, 0xF9CF, 0xF9D0, 0xF9D1, 0xF9D2, 0xF9D3, 0xF9D4, 0xF9D5, +0xF9D6, 0xF9D7, 0xF9D8, 0xF9D9, 0xF9DA, 0xF9DB, 0xF9DC, 0xF9DD, +0xF9DE, 0xF9DF, 0xF9E0, 0xF9E1, 0xF9E2, 0xF9E3, 0xF9E4, 0xF9E5, +0xF9E6, 0xF9E8, 0xF9E9, 0xF9EA, 0xF9EB, 0xF9EC, 0xF9ED, 0xF9EE, +0xF9EF, 0xF9F0, 0xF9F2, 0xF9F3, 0xF9F4, 0xF9F5, 0xF9F6, 0xF9F7, +0xF9F8, 0xF9F9, 0xF9FA, 0xF9FB, 0xF9FC, 0xF9FD, 0xF9FE, 0xF9FF, +0xFA00, 0xFA01, 0xFA02, 0xFA03, 0xFA04, 0xFA05, 0xFA06, 0xFA07, +0xFA08, 0xFA09, 0xFA0A, 0xFA0B, 0xFA10, 0xFA12, 0xFA15, 0xFA16, +0xFA17, 0xFA19, 0xFA1A, 0xFA1B, 0xFA1C, 0xFA1D, 0xFA1E, 0xFA22, +0xFA25, 0xFA26, 0xFE32, 0xFE45, 0xFE46, 0xFE47, 0xFE48, 0xFE53, +0xFE58, 0xFE67, 0xFE6C, 0xFE6D, 0xFE6E, 0xFE6F, 0xFE70, 0xFE71, +0xFE72, 0xFE73, 0xFE74, 0xFE75, 0xFE76, 0xFE77, 0xFE78, 0xFE79, +0xFE7A, 0xFE7B, 0xFE7C, 0xFE7D, 0xFE7E, 0xFE7F, 0xFE80, 0xFE81, +0xFE82, 0xFE83, 0xFE84, 0xFE85, 0xFE86, 0xFE87, 0xFE88, 0xFE89, +0xFE8A, 0xFE8B, 0xFE8C, 0xFE8D, 0xFE8E, 0xFE8F, 0xFE90, 0xFE91, +0xFE92, 0xFE93, 0xFE94, 0xFE95, 0xFE96, 0xFE97, 0xFE98, 0xFE99, +0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D, 0xFE9E, 0xFE9F, 0xFEA0, 0xFEA1, +0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7, 0xFEA8, 0xFEA9, +0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE, 0xFEAF, 0xFEB0, 0xFEB1, +0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9, +0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, +0xFEC2, 0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, +0xFECA, 0xFECB, 0xFECC, 0xFECD, 0xFECE, 0xFECF, 0xFED0, 0xFED1, +0xFED2, 0xFED3, 0xFED4, 0xFED5, 0xFED6, 0xFED7, 0xFED8, 0xFED9, +0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD, 0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, +0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, 0xFEE6, 0xFEE7, 0xFEE8, 0xFEE9, +0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF, 0xFEF0, 0xFEF1, +0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8, 0xFEF9, +0xFEFA, 0xFEFB, 0xFEFC, 0xFEFD, 0xFEFE, 0xFEFF, 0xFF00, 0xFF5F, +0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, +0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, +0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, +0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, +0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85, 0xFF86, 0xFF87, +0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, +0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 0xFF97, +0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F, +0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0xFFA6, 0xFFA7, +0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0xFFAE, 0xFFAF, +0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0xFFB6, 0xFFB7, +0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0xFFBE, 0xFFBF, +0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7, +0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, +0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, +0xFFD8, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, +0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEB, 0xFFEC, 0xFFED, +0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, +0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, +0xFFFE, 0xFFFF +}; + +/** + Mapping table from Unicode to gb18030, part one + For Unicode in [0x80, 0x9FA6), if the leading byte + is less than 0x81, the corresponding value represents + the diff for 4-byte gb18030 code, otherwise, it's the + corresponding 2-byte gb18030 code +*/ +static const uint16 tab_uni_gb18030_p1[]= +{ +0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, +0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, +0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, +0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, +0x0020, 0x0021, 0x0022, 0x0023, 0xA1E8, 0x0024, 0x0025, 0xA1EC, +0xA1A7, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, +0xA1E3, 0xA1C0, 0x002D, 0x002E, 0x002F, 0x0030, 0x0031, 0xA1A4, +0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, +0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, 0x0040, 0x0041, +0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, +0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0xA1C1, +0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, +0xA8A4, 0xA8A2, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, +0xA8A8, 0xA8A6, 0xA8BA, 0x005F, 0xA8AC, 0xA8AA, 0x0060, 0x0061, +0x0062, 0x0063, 0xA8B0, 0xA8AE, 0x0064, 0x0065, 0x0066, 0xA1C2, +0x0067, 0xA8B4, 0xA8B2, 0x0068, 0xA8B9, 0x0069, 0x006A, 0x006B, +0x006C, 0xA8A1, 0x006D, 0x006E, 0x006F, 0x0070, 0x0071, 0x0072, +0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, +0x007B, 0x007C, 0x007D, 0xA8A5, 0x007E, 0x007F, 0x0080, 0x0081, +0x0082, 0x0083, 0x0084, 0xA8A7, 0x0085, 0x0086, 0x0087, 0x0088, +0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090, +0x0091, 0x0092, 0x0093, 0xA8A9, 0x0094, 0x0095, 0x0096, 0x0097, +0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, +0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, +0x00A8, 0x00A9, 0x00AA, 0x00AB, 0xA8BD, 0x00AC, 0x00AD, 0x00AE, +0xA8BE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0xA8AD, 0x00B3, 0x00B4, +0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, +0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, +0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, +0x00CD, 0x00CE, 0x00CF, 0xA8B1, 0x00D0, 0x00D1, 0x00D2, 0x00D3, +0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, +0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, +0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, +0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0, 0x00F1, 0x00F2, 0x00F3, +0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, +0x00FC, 0x00FD, 0x00FE, 0x00FF, 0x0100, 0x0101, 0x0102, 0x0103, +0x0104, 0x0105, 0x0106, 0x0107, 0x0108, 0x0109, 0x010A, 0x010B, +0x010C, 0x010D, 0x010E, 0x010F, 0x0110, 0x0111, 0x0112, 0x0113, +0x0114, 0x0115, 0x0116, 0x0117, 0x0118, 0x0119, 0x011A, 0x011B, +0x011C, 0x011D, 0x011E, 0x011F, 0x0120, 0x0121, 0x0122, 0x0123, +0x0124, 0x0125, 0x0126, 0x0127, 0x0128, 0x0129, 0x012A, 0x012B, +0x012C, 0x012D, 0x012E, 0x012F, 0x0130, 0x0131, 0xA8A3, 0x0132, +0xA8AB, 0x0133, 0xA8AF, 0x0134, 0xA8B3, 0x0135, 0xA8B5, 0x0136, +0xA8B6, 0x0137, 0xA8B7, 0x0138, 0xA8B8, 0x0139, 0x013A, 0x013B, +0x013C, 0x013D, 0x013E, 0x013F, 0x0140, 0x0141, 0x0142, 0x0143, +0x0144, 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 0x014A, 0x014B, +0x014C, 0x014D, 0x014E, 0x014F, 0x0150, 0x0151, 0x0152, 0x0153, +0x0154, 0xA8BF, 0x0155, 0x0156, 0x0157, 0x0158, 0x0159, 0x015A, +0x015B, 0x015C, 0x015D, 0x015E, 0x015F, 0x0160, 0x0161, 0x0162, +0x0163, 0x0164, 0x0165, 0x0166, 0x0167, 0x0168, 0x0169, 0x016A, +0x016B, 0x016C, 0x016D, 0x016E, 0x016F, 0x0170, 0x0171, 0x0172, +0x0173, 0x0174, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017A, +0x017B, 0x017C, 0x017D, 0x017E, 0x017F, 0x0180, 0x0181, 0x0182, +0x0183, 0x0184, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018A, +0x018B, 0x018C, 0x018D, 0x018E, 0x018F, 0x0190, 0x0191, 0x0192, +0x0193, 0x0194, 0x0195, 0x0196, 0x0197, 0x0198, 0x0199, 0x019A, +0x019B, 0x019C, 0x019D, 0x019E, 0x019F, 0x01A0, 0x01A1, 0x01A2, +0x01A3, 0x01A4, 0x01A5, 0x01A6, 0x01A7, 0x01A8, 0x01A9, 0x01AA, +0x01AB, 0xA8BB, 0x01AC, 0x01AD, 0x01AE, 0x01AF, 0x01B0, 0x01B1, +0x01B2, 0x01B3, 0x01B4, 0x01B5, 0x01B6, 0x01B7, 0x01B8, 0x01B9, +0x01BA, 0xA8C0, 0x01BB, 0x01BC, 0x01BD, 0x01BE, 0x01BF, 0x01C0, +0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C5, 0x01C6, 0x01C7, 0x01C8, +0x01C9, 0x01CA, 0x01CB, 0x01CC, 0x01CD, 0x01CE, 0x01CF, 0x01D0, +0x01D1, 0x01D2, 0x01D3, 0x01D4, 0x01D5, 0x01D6, 0x01D7, 0x01D8, +0x01D9, 0x01DA, 0x01DB, 0x01DC, 0x01DD, 0x01DE, 0x01DF, 0x01E0, +0x01E1, 0x01E2, 0x01E3, 0x01E4, 0x01E5, 0x01E6, 0x01E7, 0x01E8, +0x01E9, 0x01EA, 0x01EB, 0x01EC, 0x01ED, 0x01EE, 0x01EF, 0x01F0, +0x01F1, 0x01F2, 0x01F3, 0x01F4, 0x01F5, 0x01F6, 0x01F7, 0x01F8, +0x01F9, 0x01FA, 0x01FB, 0x01FC, 0x01FD, 0x01FE, 0x01FF, 0x0200, +0x0201, 0x0202, 0x0203, 0x0204, 0x0205, 0x0206, 0x0207, 0x0208, +0x0209, 0x020A, 0x020B, 0x020C, 0x020D, 0x020E, 0x020F, 0x0210, +0x0211, 0x0212, 0x0213, 0x0214, 0x0215, 0x0216, 0x0217, 0x0218, +0x0219, 0x021A, 0x021B, 0x021C, 0x021D, 0x021E, 0x021F, 0xA1A6, +0x0220, 0xA1A5, 0xA840, 0xA841, 0x0221, 0x0222, 0x0223, 0x0224, +0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022A, 0x022B, 0x022C, +0x022D, 0xA842, 0x022E, 0x022F, 0x0230, 0x0231, 0x0232, 0x0233, +0x0234, 0x0235, 0x0236, 0x0237, 0x0238, 0x0239, 0x023A, 0x023B, +0x023C, 0x023D, 0x023E, 0x023F, 0x0240, 0x0241, 0x0242, 0x0243, +0x0244, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, 0x024A, 0x024B, +0x024C, 0x024D, 0x024E, 0x024F, 0x0250, 0x0251, 0x0252, 0x0253, +0x0254, 0x0255, 0x0256, 0x0257, 0x0258, 0x0259, 0x025A, 0x025B, +0x025C, 0x025D, 0x025E, 0x025F, 0x0260, 0x0261, 0x0262, 0x0263, +0x0264, 0x0265, 0x0266, 0x0267, 0x0268, 0x0269, 0x026A, 0x026B, +0x026C, 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, 0x0272, 0x0273, +0x0274, 0x0275, 0x0276, 0x0277, 0x0278, 0x0279, 0x027A, 0x027B, +0x027C, 0x027D, 0x027E, 0x027F, 0x0280, 0x0281, 0x0282, 0x0283, +0x0284, 0x0285, 0x0286, 0x0287, 0x0288, 0x0289, 0x028A, 0x028B, +0x028C, 0x028D, 0x028E, 0x028F, 0x0290, 0x0291, 0x0292, 0x0293, +0x0294, 0x0295, 0x0296, 0x0297, 0x0298, 0x0299, 0x029A, 0x029B, +0x029C, 0x029D, 0x029E, 0x029F, 0x02A0, 0x02A1, 0x02A2, 0x02A3, +0x02A4, 0x02A5, 0x02A6, 0x02A7, 0x02A8, 0x02A9, 0x02AA, 0x02AB, +0x02AC, 0x02AD, 0x02AE, 0x02AF, 0x02B0, 0x02B1, 0x02B2, 0x02B3, +0x02B4, 0x02B5, 0x02B6, 0x02B7, 0x02B8, 0x02B9, 0x02BA, 0x02BB, +0x02BC, 0x02BD, 0x02BE, 0x02BF, 0x02C0, 0x02C1, 0x02C2, 0x02C3, +0x02C4, 0x02C5, 0x02C6, 0x02C7, 0x02C8, 0x02C9, 0x02CA, 0x02CB, +0x02CC, 0x02CD, 0x02CE, 0x02CF, 0x02D0, 0x02D1, 0x02D2, 0x02D3, +0x02D4, 0x02D5, 0x02D6, 0x02D7, 0x02D8, 0x02D9, 0x02DA, 0x02DB, +0x02DC, 0x02DD, 0x02DE, 0x02DF, 0x02E0, 0x02E1, 0x02E2, 0x02E3, +0x02E4, 0xA6A1, 0xA6A2, 0xA6A3, 0xA6A4, 0xA6A5, 0xA6A6, 0xA6A7, +0xA6A8, 0xA6A9, 0xA6AA, 0xA6AB, 0xA6AC, 0xA6AD, 0xA6AE, 0xA6AF, +0xA6B0, 0xA6B1, 0x02E5, 0xA6B2, 0xA6B3, 0xA6B4, 0xA6B5, 0xA6B6, +0xA6B7, 0xA6B8, 0x02E6, 0x02E7, 0x02E8, 0x02E9, 0x02EA, 0x02EB, +0x02EC, 0xA6C1, 0xA6C2, 0xA6C3, 0xA6C4, 0xA6C5, 0xA6C6, 0xA6C7, +0xA6C8, 0xA6C9, 0xA6CA, 0xA6CB, 0xA6CC, 0xA6CD, 0xA6CE, 0xA6CF, +0xA6D0, 0xA6D1, 0x02ED, 0xA6D2, 0xA6D3, 0xA6D4, 0xA6D5, 0xA6D6, +0xA6D7, 0xA6D8, 0x02EE, 0x02EF, 0x02F0, 0x02F1, 0x02F2, 0x02F3, +0x02F4, 0x02F5, 0x02F6, 0x02F7, 0x02F8, 0x02F9, 0x02FA, 0x02FB, +0x02FC, 0x02FD, 0x02FE, 0x02FF, 0x0300, 0x0301, 0x0302, 0x0303, +0x0304, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 0x030A, 0x030B, +0x030C, 0x030D, 0x030E, 0x030F, 0x0310, 0x0311, 0x0312, 0x0313, +0x0314, 0x0315, 0x0316, 0x0317, 0x0318, 0x0319, 0x031A, 0x031B, +0x031C, 0x031D, 0x031E, 0x031F, 0x0320, 0x0321, 0x0322, 0x0323, +0x0324, 0xA7A7, 0x0325, 0x0326, 0x0327, 0x0328, 0x0329, 0x032A, +0x032B, 0x032C, 0x032D, 0x032E, 0x032F, 0x0330, 0x0331, 0x0332, +0xA7A1, 0xA7A2, 0xA7A3, 0xA7A4, 0xA7A5, 0xA7A6, 0xA7A8, 0xA7A9, +0xA7AA, 0xA7AB, 0xA7AC, 0xA7AD, 0xA7AE, 0xA7AF, 0xA7B0, 0xA7B1, +0xA7B2, 0xA7B3, 0xA7B4, 0xA7B5, 0xA7B6, 0xA7B7, 0xA7B8, 0xA7B9, +0xA7BA, 0xA7BB, 0xA7BC, 0xA7BD, 0xA7BE, 0xA7BF, 0xA7C0, 0xA7C1, +0xA7D1, 0xA7D2, 0xA7D3, 0xA7D4, 0xA7D5, 0xA7D6, 0xA7D8, 0xA7D9, +0xA7DA, 0xA7DB, 0xA7DC, 0xA7DD, 0xA7DE, 0xA7DF, 0xA7E0, 0xA7E1, +0xA7E2, 0xA7E3, 0xA7E4, 0xA7E5, 0xA7E6, 0xA7E7, 0xA7E8, 0xA7E9, +0xA7EA, 0xA7EB, 0xA7EC, 0xA7ED, 0xA7EE, 0xA7EF, 0xA7F0, 0xA7F1, +0x0333, 0xA7D7, 0x0334, 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, +0x033A, 0x033B, 0x033C, 0x033D, 0x033E, 0x033F, 0x0340, 0x0341, +0x0342, 0x0343, 0x0344, 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, +0x034A, 0x034B, 0x034C, 0x034D, 0x034E, 0x034F, 0x0350, 0x0351, +0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, +0x035A, 0x035B, 0x035C, 0x035D, 0x035E, 0x035F, 0x0360, 0x0361, +0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, +0x036A, 0x036B, 0x036C, 0x036D, 0x036E, 0x036F, 0x0370, 0x0371, +0x0372, 0x0373, 0x0374, 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, +0x037A, 0x037B, 0x037C, 0x037D, 0x037E, 0x037F, 0x0380, 0x0381, +0x0382, 0x0383, 0x0384, 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, +0x038A, 0x038B, 0x038C, 0x038D, 0x038E, 0x038F, 0x0390, 0x0391, +0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, +0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, +0x03A2, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, +0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, 0x03B0, 0x03B1, +0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, +0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, +0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, +0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x03CF, 0x03D0, 0x03D1, +0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7, 0x03D8, 0x03D9, +0x03DA, 0x03DB, 0x03DC, 0x03DD, 0x03DE, 0x03DF, 0x03E0, 0x03E1, +0x03E2, 0x03E3, 0x03E4, 0x03E5, 0x03E6, 0x03E7, 0x03E8, 0x03E9, +0x03EA, 0x03EB, 0x03EC, 0x03ED, 0x03EE, 0x03EF, 0x03F0, 0x03F1, +0x03F2, 0x03F3, 0x03F4, 0x03F5, 0x03F6, 0x03F7, 0x03F8, 0x03F9, +0x03FA, 0x03FB, 0x03FC, 0x03FD, 0x03FE, 0x03FF, 0x0400, 0x0401, +0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, +0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F, 0x0410, 0x0411, +0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, +0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, +0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, +0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0430, 0x0431, +0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, +0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, +0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, +0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x0450, 0x0451, +0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, +0x045A, 0x045B, 0x045C, 0x045D, 0x045E, 0x045F, 0x0460, 0x0461, +0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467, 0x0468, 0x0469, +0x046A, 0x046B, 0x046C, 0x046D, 0x046E, 0x046F, 0x0470, 0x0471, +0x0472, 0x0473, 0x0474, 0x0475, 0x0476, 0x0477, 0x0478, 0x0479, +0x047A, 0x047B, 0x047C, 0x047D, 0x047E, 0x047F, 0x0480, 0x0481, +0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 0x0488, 0x0489, +0x048A, 0x048B, 0x048C, 0x048D, 0x048E, 0x048F, 0x0490, 0x0491, +0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 0x0498, 0x0499, +0x049A, 0x049B, 0x049C, 0x049D, 0x049E, 0x049F, 0x04A0, 0x04A1, +0x04A2, 0x04A3, 0x04A4, 0x04A5, 0x04A6, 0x04A7, 0x04A8, 0x04A9, +0x04AA, 0x04AB, 0x04AC, 0x04AD, 0x04AE, 0x04AF, 0x04B0, 0x04B1, +0x04B2, 0x04B3, 0x04B4, 0x04B5, 0x04B6, 0x04B7, 0x04B8, 0x04B9, +0x04BA, 0x04BB, 0x04BC, 0x04BD, 0x04BE, 0x04BF, 0x04C0, 0x04C1, +0x04C2, 0x04C3, 0x04C4, 0x04C5, 0x04C6, 0x04C7, 0x04C8, 0x04C9, +0x04CA, 0x04CB, 0x04CC, 0x04CD, 0x04CE, 0x04CF, 0x04D0, 0x04D1, +0x04D2, 0x04D3, 0x04D4, 0x04D5, 0x04D6, 0x04D7, 0x04D8, 0x04D9, +0x04DA, 0x04DB, 0x04DC, 0x04DD, 0x04DE, 0x04DF, 0x04E0, 0x04E1, +0x04E2, 0x04E3, 0x04E4, 0x04E5, 0x04E6, 0x04E7, 0x04E8, 0x04E9, +0x04EA, 0x04EB, 0x04EC, 0x04ED, 0x04EE, 0x04EF, 0x04F0, 0x04F1, +0x04F2, 0x04F3, 0x04F4, 0x04F5, 0x04F6, 0x04F7, 0x04F8, 0x04F9, +0x04FA, 0x04FB, 0x04FC, 0x04FD, 0x04FE, 0x04FF, 0x0500, 0x0501, +0x0502, 0x0503, 0x0504, 0x0505, 0x0506, 0x0507, 0x0508, 0x0509, +0x050A, 0x050B, 0x050C, 0x050D, 0x050E, 0x050F, 0x0510, 0x0511, +0x0512, 0x0513, 0x0514, 0x0515, 0x0516, 0x0517, 0x0518, 0x0519, +0x051A, 0x051B, 0x051C, 0x051D, 0x051E, 0x051F, 0x0520, 0x0521, +0x0522, 0x0523, 0x0524, 0x0525, 0x0526, 0x0527, 0x0528, 0x0529, +0x052A, 0x052B, 0x052C, 0x052D, 0x052E, 0x052F, 0x0530, 0x0531, +0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537, 0x0538, 0x0539, +0x053A, 0x053B, 0x053C, 0x053D, 0x053E, 0x053F, 0x0540, 0x0541, +0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, +0x054A, 0x054B, 0x054C, 0x054D, 0x054E, 0x054F, 0x0550, 0x0551, +0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x0557, 0x0558, 0x0559, +0x055A, 0x055B, 0x055C, 0x055D, 0x055E, 0x055F, 0x0560, 0x0561, +0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567, 0x0568, 0x0569, +0x056A, 0x056B, 0x056C, 0x056D, 0x056E, 0x056F, 0x0570, 0x0571, +0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577, 0x0578, 0x0579, +0x057A, 0x057B, 0x057C, 0x057D, 0x057E, 0x057F, 0x0580, 0x0581, +0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0587, 0x0588, 0x0589, +0x058A, 0x058B, 0x058C, 0x058D, 0x058E, 0x058F, 0x0590, 0x0591, +0x0592, 0x0593, 0x0594, 0x0595, 0x0596, 0x0597, 0x0598, 0x0599, +0x059A, 0x059B, 0x059C, 0x059D, 0x059E, 0x059F, 0x05A0, 0x05A1, +0x05A2, 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7, 0x05A8, 0x05A9, +0x05AA, 0x05AB, 0x05AC, 0x05AD, 0x05AE, 0x05AF, 0x05B0, 0x05B1, +0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, 0x05B8, 0x05B9, +0x05BA, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, 0x05C0, 0x05C1, +0x05C2, 0x05C3, 0x05C4, 0x05C5, 0x05C6, 0x05C7, 0x05C8, 0x05C9, +0x05CA, 0x05CB, 0x05CC, 0x05CD, 0x05CE, 0x05CF, 0x05D0, 0x05D1, +0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, +0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 0x05E0, 0x05E1, +0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, +0x05EA, 0x05EB, 0x05EC, 0x05ED, 0x05EE, 0x05EF, 0x05F0, 0x05F1, +0x05F2, 0x05F3, 0x05F4, 0x05F5, 0x05F6, 0x05F7, 0x05F8, 0x05F9, +0x05FA, 0x05FB, 0x05FC, 0x05FD, 0x05FE, 0x05FF, 0x0600, 0x0601, +0x0602, 0x0603, 0x0604, 0x0605, 0x0606, 0x0607, 0x0608, 0x0609, +0x060A, 0x060B, 0x060C, 0x060D, 0x060E, 0x060F, 0x0610, 0x0611, +0x0612, 0x0613, 0x0614, 0x0615, 0x0616, 0x0617, 0x0618, 0x0619, +0x061A, 0x061B, 0x061C, 0x061D, 0x061E, 0x061F, 0x0620, 0x0621, +0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, +0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, +0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, +0x063A, 0x063B, 0x063C, 0x063D, 0x063E, 0x063F, 0x0640, 0x0641, +0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, +0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x0651, +0x0652, 0x0653, 0x0654, 0x0655, 0x0656, 0x0657, 0x0658, 0x0659, +0x065A, 0x065B, 0x065C, 0x065D, 0x065E, 0x065F, 0x0660, 0x0661, +0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, +0x066A, 0x066B, 0x066C, 0x066D, 0x066E, 0x066F, 0x0670, 0x0671, +0x0672, 0x0673, 0x0674, 0x0675, 0x0676, 0x0677, 0x0678, 0x0679, +0x067A, 0x067B, 0x067C, 0x067D, 0x067E, 0x067F, 0x0680, 0x0681, +0x0682, 0x0683, 0x0684, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, +0x068A, 0x068B, 0x068C, 0x068D, 0x068E, 0x068F, 0x0690, 0x0691, +0x0692, 0x0693, 0x0694, 0x0695, 0x0696, 0x0697, 0x0698, 0x0699, +0x069A, 0x069B, 0x069C, 0x069D, 0x069E, 0x069F, 0x06A0, 0x06A1, +0x06A2, 0x06A3, 0x06A4, 0x06A5, 0x06A6, 0x06A7, 0x06A8, 0x06A9, +0x06AA, 0x06AB, 0x06AC, 0x06AD, 0x06AE, 0x06AF, 0x06B0, 0x06B1, +0x06B2, 0x06B3, 0x06B4, 0x06B5, 0x06B6, 0x06B7, 0x06B8, 0x06B9, +0x06BA, 0x06BB, 0x06BC, 0x06BD, 0x06BE, 0x06BF, 0x06C0, 0x06C1, +0x06C2, 0x06C3, 0x06C4, 0x06C5, 0x06C6, 0x06C7, 0x06C8, 0x06C9, +0x06CA, 0x06CB, 0x06CC, 0x06CD, 0x06CE, 0x06CF, 0x06D0, 0x06D1, +0x06D2, 0x06D3, 0x06D4, 0x06D5, 0x06D6, 0x06D7, 0x06D8, 0x06D9, +0x06DA, 0x06DB, 0x06DC, 0x06DD, 0x06DE, 0x06DF, 0x06E0, 0x06E1, +0x06E2, 0x06E3, 0x06E4, 0x06E5, 0x06E6, 0x06E7, 0x06E8, 0x06E9, +0x06EA, 0x06EB, 0x06EC, 0x06ED, 0x06EE, 0x06EF, 0x06F0, 0x06F1, +0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7, 0x06F8, 0x06F9, +0x06FA, 0x06FB, 0x06FC, 0x06FD, 0x06FE, 0x06FF, 0x0700, 0x0701, +0x0702, 0x0703, 0x0704, 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, +0x070A, 0x070B, 0x070C, 0x070D, 0x070E, 0x070F, 0x0710, 0x0711, +0x0712, 0x0713, 0x0714, 0x0715, 0x0716, 0x0717, 0x0718, 0x0719, +0x071A, 0x071B, 0x071C, 0x071D, 0x071E, 0x071F, 0x0720, 0x0721, +0x0722, 0x0723, 0x0724, 0x0725, 0x0726, 0x0727, 0x0728, 0x0729, +0x072A, 0x072B, 0x072C, 0x072D, 0x072E, 0x072F, 0x0730, 0x0731, +0x0732, 0x0733, 0x0734, 0x0735, 0x0736, 0x0737, 0x0738, 0x0739, +0x073A, 0x073B, 0x073C, 0x073D, 0x073E, 0x073F, 0x0740, 0x0741, +0x0742, 0x0743, 0x0744, 0x0745, 0x0746, 0x0747, 0x0748, 0x0749, +0x074A, 0x074B, 0x074C, 0x074D, 0x074E, 0x074F, 0x0750, 0x0751, +0x0752, 0x0753, 0x0754, 0x0755, 0x0756, 0x0757, 0x0758, 0x0759, +0x075A, 0x075B, 0x075C, 0x075D, 0x075E, 0x075F, 0x0760, 0x0761, +0x0762, 0x0763, 0x0764, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, +0x076A, 0x076B, 0x076C, 0x076D, 0x076E, 0x076F, 0x0770, 0x0771, +0x0772, 0x0773, 0x0774, 0x0775, 0x0776, 0x0777, 0x0778, 0x0779, +0x077A, 0x077B, 0x077C, 0x077D, 0x077E, 0x077F, 0x0780, 0x0781, +0x0782, 0x0783, 0x0784, 0x0785, 0x0786, 0x0787, 0x0788, 0x0789, +0x078A, 0x078B, 0x078C, 0x078D, 0x078E, 0x078F, 0x0790, 0x0791, +0x0792, 0x0793, 0x0794, 0x0795, 0x0796, 0x0797, 0x0798, 0x0799, +0x079A, 0x079B, 0x079C, 0x079D, 0x079E, 0x079F, 0x07A0, 0x07A1, +0x07A2, 0x07A3, 0x07A4, 0x07A5, 0x07A6, 0x07A7, 0x07A8, 0x07A9, +0x07AA, 0x07AB, 0x07AC, 0x07AD, 0x07AE, 0x07AF, 0x07B0, 0x07B1, +0x07B2, 0x07B3, 0x07B4, 0x07B5, 0x07B6, 0x07B7, 0x07B8, 0x07B9, +0x07BA, 0x07BB, 0x07BC, 0x07BD, 0x07BE, 0x07BF, 0x07C0, 0x07C1, +0x07C2, 0x07C3, 0x07C4, 0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, +0x07CA, 0x07CB, 0x07CC, 0x07CD, 0x07CE, 0x07CF, 0x07D0, 0x07D1, +0x07D2, 0x07D3, 0x07D4, 0x07D5, 0x07D6, 0x07D7, 0x07D8, 0x07D9, +0x07DA, 0x07DB, 0x07DC, 0x07DD, 0x07DE, 0x07DF, 0x07E0, 0x07E1, +0x07E2, 0x07E3, 0x07E4, 0x07E5, 0x07E6, 0x07E7, 0x07E8, 0x07E9, +0x07EA, 0x07EB, 0x07EC, 0x07ED, 0x07EE, 0x07EF, 0x07F0, 0x07F1, +0x07F2, 0x07F3, 0x07F4, 0x07F5, 0x07F6, 0x07F7, 0x07F8, 0x07F9, +0x07FA, 0x07FB, 0x07FC, 0x07FD, 0x07FE, 0x07FF, 0x0800, 0x0801, +0x0802, 0x0803, 0x0804, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, +0x080A, 0x080B, 0x080C, 0x080D, 0x080E, 0x080F, 0x0810, 0x0811, +0x0812, 0x0813, 0x0814, 0x0815, 0x0816, 0x0817, 0x0818, 0x0819, +0x081A, 0x081B, 0x081C, 0x081D, 0x081E, 0x081F, 0x0820, 0x0821, +0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0828, 0x0829, +0x082A, 0x082B, 0x082C, 0x082D, 0x082E, 0x082F, 0x0830, 0x0831, +0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837, 0x0838, 0x0839, +0x083A, 0x083B, 0x083C, 0x083D, 0x083E, 0x083F, 0x0840, 0x0841, +0x0842, 0x0843, 0x0844, 0x0845, 0x0846, 0x0847, 0x0848, 0x0849, +0x084A, 0x084B, 0x084C, 0x084D, 0x084E, 0x084F, 0x0850, 0x0851, +0x0852, 0x0853, 0x0854, 0x0855, 0x0856, 0x0857, 0x0858, 0x0859, +0x085A, 0x085B, 0x085C, 0x085D, 0x085E, 0x085F, 0x0860, 0x0861, +0x0862, 0x0863, 0x0864, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, +0x086A, 0x086B, 0x086C, 0x086D, 0x086E, 0x086F, 0x0870, 0x0871, +0x0872, 0x0873, 0x0874, 0x0875, 0x0876, 0x0877, 0x0878, 0x0879, +0x087A, 0x087B, 0x087C, 0x087D, 0x087E, 0x087F, 0x0880, 0x0881, +0x0882, 0x0883, 0x0884, 0x0885, 0x0886, 0x0887, 0x0888, 0x0889, +0x088A, 0x088B, 0x088C, 0x088D, 0x088E, 0x088F, 0x0890, 0x0891, +0x0892, 0x0893, 0x0894, 0x0895, 0x0896, 0x0897, 0x0898, 0x0899, +0x089A, 0x089B, 0x089C, 0x089D, 0x089E, 0x089F, 0x08A0, 0x08A1, +0x08A2, 0x08A3, 0x08A4, 0x08A5, 0x08A6, 0x08A7, 0x08A8, 0x08A9, +0x08AA, 0x08AB, 0x08AC, 0x08AD, 0x08AE, 0x08AF, 0x08B0, 0x08B1, +0x08B2, 0x08B3, 0x08B4, 0x08B5, 0x08B6, 0x08B7, 0x08B8, 0x08B9, +0x08BA, 0x08BB, 0x08BC, 0x08BD, 0x08BE, 0x08BF, 0x08C0, 0x08C1, +0x08C2, 0x08C3, 0x08C4, 0x08C5, 0x08C6, 0x08C7, 0x08C8, 0x08C9, +0x08CA, 0x08CB, 0x08CC, 0x08CD, 0x08CE, 0x08CF, 0x08D0, 0x08D1, +0x08D2, 0x08D3, 0x08D4, 0x08D5, 0x08D6, 0x08D7, 0x08D8, 0x08D9, +0x08DA, 0x08DB, 0x08DC, 0x08DD, 0x08DE, 0x08DF, 0x08E0, 0x08E1, +0x08E2, 0x08E3, 0x08E4, 0x08E5, 0x08E6, 0x08E7, 0x08E8, 0x08E9, +0x08EA, 0x08EB, 0x08EC, 0x08ED, 0x08EE, 0x08EF, 0x08F0, 0x08F1, +0x08F2, 0x08F3, 0x08F4, 0x08F5, 0x08F6, 0x08F7, 0x08F8, 0x08F9, +0x08FA, 0x08FB, 0x08FC, 0x08FD, 0x08FE, 0x08FF, 0x0900, 0x0901, +0x0902, 0x0903, 0x0904, 0x0905, 0x0906, 0x0907, 0x0908, 0x0909, +0x090A, 0x090B, 0x090C, 0x090D, 0x090E, 0x090F, 0x0910, 0x0911, +0x0912, 0x0913, 0x0914, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, +0x091A, 0x091B, 0x091C, 0x091D, 0x091E, 0x091F, 0x0920, 0x0921, +0x0922, 0x0923, 0x0924, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, +0x092A, 0x092B, 0x092C, 0x092D, 0x092E, 0x092F, 0x0930, 0x0931, +0x0932, 0x0933, 0x0934, 0x0935, 0x0936, 0x0937, 0x0938, 0x0939, +0x093A, 0x093B, 0x093C, 0x093D, 0x093E, 0x093F, 0x0940, 0x0941, +0x0942, 0x0943, 0x0944, 0x0945, 0x0946, 0x0947, 0x0948, 0x0949, +0x094A, 0x094B, 0x094C, 0x094D, 0x094E, 0x094F, 0x0950, 0x0951, +0x0952, 0x0953, 0x0954, 0x0955, 0x0956, 0x0957, 0x0958, 0x0959, +0x095A, 0x095B, 0x095C, 0x095D, 0x095E, 0x095F, 0x0960, 0x0961, +0x0962, 0x0963, 0x0964, 0x0965, 0x0966, 0x0967, 0x0968, 0x0969, +0x096A, 0x096B, 0x096C, 0x096D, 0x096E, 0x096F, 0x0970, 0x0971, +0x0972, 0x0973, 0x0974, 0x0975, 0x0976, 0x0977, 0x0978, 0x0979, +0x097A, 0x097B, 0x097C, 0x097D, 0x097E, 0x097F, 0x0980, 0x0981, +0x0982, 0x0983, 0x0984, 0x0985, 0x0986, 0x0987, 0x0988, 0x0989, +0x098A, 0x098B, 0x098C, 0x098D, 0x098E, 0x098F, 0x0990, 0x0991, +0x0992, 0x0993, 0x0994, 0x0995, 0x0996, 0x0997, 0x0998, 0x0999, +0x099A, 0x099B, 0x099C, 0x099D, 0x099E, 0x099F, 0x09A0, 0x09A1, +0x09A2, 0x09A3, 0x09A4, 0x09A5, 0x09A6, 0x09A7, 0x09A8, 0x09A9, +0x09AA, 0x09AB, 0x09AC, 0x09AD, 0x09AE, 0x09AF, 0x09B0, 0x09B1, +0x09B2, 0x09B3, 0x09B4, 0x09B5, 0x09B6, 0x09B7, 0x09B8, 0x09B9, +0x09BA, 0x09BB, 0x09BC, 0x09BD, 0x09BE, 0x09BF, 0x09C0, 0x09C1, +0x09C2, 0x09C3, 0x09C4, 0x09C5, 0x09C6, 0x09C7, 0x09C8, 0x09C9, +0x09CA, 0x09CB, 0x09CC, 0x09CD, 0x09CE, 0x09CF, 0x09D0, 0x09D1, +0x09D2, 0x09D3, 0x09D4, 0x09D5, 0x09D6, 0x09D7, 0x09D8, 0x09D9, +0x09DA, 0x09DB, 0x09DC, 0x09DD, 0x09DE, 0x09DF, 0x09E0, 0x09E1, +0x09E2, 0x09E3, 0x09E4, 0x09E5, 0x09E6, 0x09E7, 0x09E8, 0x09E9, +0x09EA, 0x09EB, 0x09EC, 0x09ED, 0x09EE, 0x09EF, 0x09F0, 0x09F1, +0x09F2, 0x09F3, 0x09F4, 0x09F5, 0x09F6, 0x09F7, 0x09F8, 0x09F9, +0x09FA, 0x09FB, 0x09FC, 0x09FD, 0x09FE, 0x09FF, 0x0A00, 0x0A01, +0x0A02, 0x0A03, 0x0A04, 0x0A05, 0x0A06, 0x0A07, 0x0A08, 0x0A09, +0x0A0A, 0x0A0B, 0x0A0C, 0x0A0D, 0x0A0E, 0x0A0F, 0x0A10, 0x0A11, +0x0A12, 0x0A13, 0x0A14, 0x0A15, 0x0A16, 0x0A17, 0x0A18, 0x0A19, +0x0A1A, 0x0A1B, 0x0A1C, 0x0A1D, 0x0A1E, 0x0A1F, 0x0A20, 0x0A21, +0x0A22, 0x0A23, 0x0A24, 0x0A25, 0x0A26, 0x0A27, 0x0A28, 0x0A29, +0x0A2A, 0x0A2B, 0x0A2C, 0x0A2D, 0x0A2E, 0x0A2F, 0x0A30, 0x0A31, +0x0A32, 0x0A33, 0x0A34, 0x0A35, 0x0A36, 0x0A37, 0x0A38, 0x0A39, +0x0A3A, 0x0A3B, 0x0A3C, 0x0A3D, 0x0A3E, 0x0A3F, 0x0A40, 0x0A41, +0x0A42, 0x0A43, 0x0A44, 0x0A45, 0x0A46, 0x0A47, 0x0A48, 0x0A49, +0x0A4A, 0x0A4B, 0x0A4C, 0x0A4D, 0x0A4E, 0x0A4F, 0x0A50, 0x0A51, +0x0A52, 0x0A53, 0x0A54, 0x0A55, 0x0A56, 0x0A57, 0x0A58, 0x0A59, +0x0A5A, 0x0A5B, 0x0A5C, 0x0A5D, 0x0A5E, 0x0A5F, 0x0A60, 0x0A61, +0x0A62, 0x0A63, 0x0A64, 0x0A65, 0x0A66, 0x0A67, 0x0A68, 0x0A69, +0x0A6A, 0x0A6B, 0x0A6C, 0x0A6D, 0x0A6E, 0x0A6F, 0x0A70, 0x0A71, +0x0A72, 0x0A73, 0x0A74, 0x0A75, 0x0A76, 0x0A77, 0x0A78, 0x0A79, +0x0A7A, 0x0A7B, 0x0A7C, 0x0A7D, 0x0A7E, 0x0A7F, 0x0A80, 0x0A81, +0x0A82, 0x0A83, 0x0A84, 0x0A85, 0x0A86, 0x0A87, 0x0A88, 0x0A89, +0x0A8A, 0x0A8B, 0x0A8C, 0x0A8D, 0x0A8E, 0x0A8F, 0x0A90, 0x0A91, +0x0A92, 0x0A93, 0x0A94, 0x0A95, 0x0A96, 0x0A97, 0x0A98, 0x0A99, +0x0A9A, 0x0A9B, 0x0A9C, 0x0A9D, 0x0A9E, 0x0A9F, 0x0AA0, 0x0AA1, +0x0AA2, 0x0AA3, 0x0AA4, 0x0AA5, 0x0AA6, 0x0AA7, 0x0AA8, 0x0AA9, +0x0AAA, 0x0AAB, 0x0AAC, 0x0AAD, 0x0AAE, 0x0AAF, 0x0AB0, 0x0AB1, +0x0AB2, 0x0AB3, 0x0AB4, 0x0AB5, 0x0AB6, 0x0AB7, 0x0AB8, 0x0AB9, +0x0ABA, 0x0ABB, 0x0ABC, 0x0ABD, 0x0ABE, 0x0ABF, 0x0AC0, 0x0AC1, +0x0AC2, 0x0AC3, 0x0AC4, 0x0AC5, 0x0AC6, 0x0AC7, 0x0AC8, 0x0AC9, +0x0ACA, 0x0ACB, 0x0ACC, 0x0ACD, 0x0ACE, 0x0ACF, 0x0AD0, 0x0AD1, +0x0AD2, 0x0AD3, 0x0AD4, 0x0AD5, 0x0AD6, 0x0AD7, 0x0AD8, 0x0AD9, +0x0ADA, 0x0ADB, 0x0ADC, 0x0ADD, 0x0ADE, 0x0ADF, 0x0AE0, 0x0AE1, +0x0AE2, 0x0AE3, 0x0AE4, 0x0AE5, 0x0AE6, 0x0AE7, 0x0AE8, 0x0AE9, +0x0AEA, 0x0AEB, 0x0AEC, 0x0AED, 0x0AEE, 0x0AEF, 0x0AF0, 0x0AF1, +0x0AF2, 0x0AF3, 0x0AF4, 0x0AF5, 0x0AF6, 0x0AF7, 0x0AF8, 0x0AF9, +0x0AFA, 0x0AFB, 0x0AFC, 0x0AFD, 0x0AFE, 0x0AFF, 0x0B00, 0x0B01, +0x0B02, 0x0B03, 0x0B04, 0x0B05, 0x0B06, 0x0B07, 0x0B08, 0x0B09, +0x0B0A, 0x0B0B, 0x0B0C, 0x0B0D, 0x0B0E, 0x0B0F, 0x0B10, 0x0B11, +0x0B12, 0x0B13, 0x0B14, 0x0B15, 0x0B16, 0x0B17, 0x0B18, 0x0B19, +0x0B1A, 0x0B1B, 0x0B1C, 0x0B1D, 0x0B1E, 0x0B1F, 0x0B20, 0x0B21, +0x0B22, 0x0B23, 0x0B24, 0x0B25, 0x0B26, 0x0B27, 0x0B28, 0x0B29, +0x0B2A, 0x0B2B, 0x0B2C, 0x0B2D, 0x0B2E, 0x0B2F, 0x0B30, 0x0B31, +0x0B32, 0x0B33, 0x0B34, 0x0B35, 0x0B36, 0x0B37, 0x0B38, 0x0B39, +0x0B3A, 0x0B3B, 0x0B3C, 0x0B3D, 0x0B3E, 0x0B3F, 0x0B40, 0x0B41, +0x0B42, 0x0B43, 0x0B44, 0x0B45, 0x0B46, 0x0B47, 0x0B48, 0x0B49, +0x0B4A, 0x0B4B, 0x0B4C, 0x0B4D, 0x0B4E, 0x0B4F, 0x0B50, 0x0B51, +0x0B52, 0x0B53, 0x0B54, 0x0B55, 0x0B56, 0x0B57, 0x0B58, 0x0B59, +0x0B5A, 0x0B5B, 0x0B5C, 0x0B5D, 0x0B5E, 0x0B5F, 0x0B60, 0x0B61, +0x0B62, 0x0B63, 0x0B64, 0x0B65, 0x0B66, 0x0B67, 0x0B68, 0x0B69, +0x0B6A, 0x0B6B, 0x0B6C, 0x0B6D, 0x0B6E, 0x0B6F, 0x0B70, 0x0B71, +0x0B72, 0x0B73, 0x0B74, 0x0B75, 0x0B76, 0x0B77, 0x0B78, 0x0B79, +0x0B7A, 0x0B7B, 0x0B7C, 0x0B7D, 0x0B7E, 0x0B7F, 0x0B80, 0x0B81, +0x0B82, 0x0B83, 0x0B84, 0x0B85, 0x0B86, 0x0B87, 0x0B88, 0x0B89, +0x0B8A, 0x0B8B, 0x0B8C, 0x0B8D, 0x0B8E, 0x0B8F, 0x0B90, 0x0B91, +0x0B92, 0x0B93, 0x0B94, 0x0B95, 0x0B96, 0x0B97, 0x0B98, 0x0B99, +0x0B9A, 0x0B9B, 0x0B9C, 0x0B9D, 0x0B9E, 0x0B9F, 0x0BA0, 0x0BA1, +0x0BA2, 0x0BA3, 0x0BA4, 0x0BA5, 0x0BA6, 0x0BA7, 0x0BA8, 0x0BA9, +0x0BAA, 0x0BAB, 0x0BAC, 0x0BAD, 0x0BAE, 0x0BAF, 0x0BB0, 0x0BB1, +0x0BB2, 0x0BB3, 0x0BB4, 0x0BB5, 0x0BB6, 0x0BB7, 0x0BB8, 0x0BB9, +0x0BBA, 0x0BBB, 0x0BBC, 0x0BBD, 0x0BBE, 0x0BBF, 0x0BC0, 0x0BC1, +0x0BC2, 0x0BC3, 0x0BC4, 0x0BC5, 0x0BC6, 0x0BC7, 0x0BC8, 0x0BC9, +0x0BCA, 0x0BCB, 0x0BCC, 0x0BCD, 0x0BCE, 0x0BCF, 0x0BD0, 0x0BD1, +0x0BD2, 0x0BD3, 0x0BD4, 0x0BD5, 0x0BD6, 0x0BD7, 0x0BD8, 0x0BD9, +0x0BDA, 0x0BDB, 0x0BDC, 0x0BDD, 0x0BDE, 0x0BDF, 0x0BE0, 0x0BE1, +0x0BE2, 0x0BE3, 0x0BE4, 0x0BE5, 0x0BE6, 0x0BE7, 0x0BE8, 0x0BE9, +0x0BEA, 0x0BEB, 0x0BEC, 0x0BED, 0x0BEE, 0x0BEF, 0x0BF0, 0x0BF1, +0x0BF2, 0x0BF3, 0x0BF4, 0x0BF5, 0x0BF6, 0x0BF7, 0x0BF8, 0x0BF9, +0x0BFA, 0x0BFB, 0x0BFC, 0x0BFD, 0x0BFE, 0x0BFF, 0x0C00, 0x0C01, +0x0C02, 0x0C03, 0x0C04, 0x0C05, 0x0C06, 0x0C07, 0x0C08, 0x0C09, +0x0C0A, 0x0C0B, 0x0C0C, 0x0C0D, 0x0C0E, 0x0C0F, 0x0C10, 0x0C11, +0x0C12, 0x0C13, 0x0C14, 0x0C15, 0x0C16, 0x0C17, 0x0C18, 0x0C19, +0x0C1A, 0x0C1B, 0x0C1C, 0x0C1D, 0x0C1E, 0x0C1F, 0x0C20, 0x0C21, +0x0C22, 0x0C23, 0x0C24, 0x0C25, 0x0C26, 0x0C27, 0x0C28, 0x0C29, +0x0C2A, 0x0C2B, 0x0C2C, 0x0C2D, 0x0C2E, 0x0C2F, 0x0C30, 0x0C31, +0x0C32, 0x0C33, 0x0C34, 0x0C35, 0x0C36, 0x0C37, 0x0C38, 0x0C39, +0x0C3A, 0x0C3B, 0x0C3C, 0x0C3D, 0x0C3E, 0x0C3F, 0x0C40, 0x0C41, +0x0C42, 0x0C43, 0x0C44, 0x0C45, 0x0C46, 0x0C47, 0x0C48, 0x0C49, +0x0C4A, 0x0C4B, 0x0C4C, 0x0C4D, 0x0C4E, 0x0C4F, 0x0C50, 0x0C51, +0x0C52, 0x0C53, 0x0C54, 0x0C55, 0x0C56, 0x0C57, 0x0C58, 0x0C59, +0x0C5A, 0x0C5B, 0x0C5C, 0x0C5D, 0x0C5E, 0x0C5F, 0x0C60, 0x0C61, +0x0C62, 0x0C63, 0x0C64, 0x0C65, 0x0C66, 0x0C67, 0x0C68, 0x0C69, +0x0C6A, 0x0C6B, 0x0C6C, 0x0C6D, 0x0C6E, 0x0C6F, 0x0C70, 0x0C71, +0x0C72, 0x0C73, 0x0C74, 0x0C75, 0x0C76, 0x0C77, 0x0C78, 0x0C79, +0x0C7A, 0x0C7B, 0x0C7C, 0x0C7D, 0x0C7E, 0x0C7F, 0x0C80, 0x0C81, +0x0C82, 0x0C83, 0x0C84, 0x0C85, 0x0C86, 0x0C87, 0x0C88, 0x0C89, +0x0C8A, 0x0C8B, 0x0C8C, 0x0C8D, 0x0C8E, 0x0C8F, 0x0C90, 0x0C91, +0x0C92, 0x0C93, 0x0C94, 0x0C95, 0x0C96, 0x0C97, 0x0C98, 0x0C99, +0x0C9A, 0x0C9B, 0x0C9C, 0x0C9D, 0x0C9E, 0x0C9F, 0x0CA0, 0x0CA1, +0x0CA2, 0x0CA3, 0x0CA4, 0x0CA5, 0x0CA6, 0x0CA7, 0x0CA8, 0x0CA9, +0x0CAA, 0x0CAB, 0x0CAC, 0x0CAD, 0x0CAE, 0x0CAF, 0x0CB0, 0x0CB1, +0x0CB2, 0x0CB3, 0x0CB4, 0x0CB5, 0x0CB6, 0x0CB7, 0x0CB8, 0x0CB9, +0x0CBA, 0x0CBB, 0x0CBC, 0x0CBD, 0x0CBE, 0x0CBF, 0x0CC0, 0x0CC1, +0x0CC2, 0x0CC3, 0x0CC4, 0x0CC5, 0x0CC6, 0x0CC7, 0x0CC8, 0x0CC9, +0x0CCA, 0x0CCB, 0x0CCC, 0x0CCD, 0x0CCE, 0x0CCF, 0x0CD0, 0x0CD1, +0x0CD2, 0x0CD3, 0x0CD4, 0x0CD5, 0x0CD6, 0x0CD7, 0x0CD8, 0x0CD9, +0x0CDA, 0x0CDB, 0x0CDC, 0x0CDD, 0x0CDE, 0x0CDF, 0x0CE0, 0x0CE1, +0x0CE2, 0x0CE3, 0x0CE4, 0x0CE5, 0x0CE6, 0x0CE7, 0x0CE8, 0x0CE9, +0x0CEA, 0x0CEB, 0x0CEC, 0x0CED, 0x0CEE, 0x0CEF, 0x0CF0, 0x0CF1, +0x0CF2, 0x0CF3, 0x0CF4, 0x0CF5, 0x0CF6, 0x0CF7, 0x0CF8, 0x0CF9, +0x0CFA, 0x0CFB, 0x0CFC, 0x0CFD, 0x0CFE, 0x0CFF, 0x0D00, 0x0D01, +0x0D02, 0x0D03, 0x0D04, 0x0D05, 0x0D06, 0x0D07, 0x0D08, 0x0D09, +0x0D0A, 0x0D0B, 0x0D0C, 0x0D0D, 0x0D0E, 0x0D0F, 0x0D10, 0x0D11, +0x0D12, 0x0D13, 0x0D14, 0x0D15, 0x0D16, 0x0D17, 0x0D18, 0x0D19, +0x0D1A, 0x0D1B, 0x0D1C, 0x0D1D, 0x0D1E, 0x0D1F, 0x0D20, 0x0D21, +0x0D22, 0x0D23, 0x0D24, 0x0D25, 0x0D26, 0x0D27, 0x0D28, 0x0D29, +0x0D2A, 0x0D2B, 0x0D2C, 0x0D2D, 0x0D2E, 0x0D2F, 0x0D30, 0x0D31, +0x0D32, 0x0D33, 0x0D34, 0x0D35, 0x0D36, 0x0D37, 0x0D38, 0x0D39, +0x0D3A, 0x0D3B, 0x0D3C, 0x0D3D, 0x0D3E, 0x0D3F, 0x0D40, 0x0D41, +0x0D42, 0x0D43, 0x0D44, 0x0D45, 0x0D46, 0x0D47, 0x0D48, 0x0D49, +0x0D4A, 0x0D4B, 0x0D4C, 0x0D4D, 0x0D4E, 0x0D4F, 0x0D50, 0x0D51, +0x0D52, 0x0D53, 0x0D54, 0x0D55, 0x0D56, 0x0D57, 0x0D58, 0x0D59, +0x0D5A, 0x0D5B, 0x0D5C, 0x0D5D, 0x0D5E, 0x0D5F, 0x0D60, 0x0D61, +0x0D62, 0x0D63, 0x0D64, 0x0D65, 0x0D66, 0x0D67, 0x0D68, 0x0D69, +0x0D6A, 0x0D6B, 0x0D6C, 0x0D6D, 0x0D6E, 0x0D6F, 0x0D70, 0x0D71, +0x0D72, 0x0D73, 0x0D74, 0x0D75, 0x0D76, 0x0D77, 0x0D78, 0x0D79, +0x0D7A, 0x0D7B, 0x0D7C, 0x0D7D, 0x0D7E, 0x0D7F, 0x0D80, 0x0D81, +0x0D82, 0x0D83, 0x0D84, 0x0D85, 0x0D86, 0x0D87, 0x0D88, 0x0D89, +0x0D8A, 0x0D8B, 0x0D8C, 0x0D8D, 0x0D8E, 0x0D8F, 0x0D90, 0x0D91, +0x0D92, 0x0D93, 0x0D94, 0x0D95, 0x0D96, 0x0D97, 0x0D98, 0x0D99, +0x0D9A, 0x0D9B, 0x0D9C, 0x0D9D, 0x0D9E, 0x0D9F, 0x0DA0, 0x0DA1, +0x0DA2, 0x0DA3, 0x0DA4, 0x0DA5, 0x0DA6, 0x0DA7, 0x0DA8, 0x0DA9, +0x0DAA, 0x0DAB, 0x0DAC, 0x0DAD, 0x0DAE, 0x0DAF, 0x0DB0, 0x0DB1, +0x0DB2, 0x0DB3, 0x0DB4, 0x0DB5, 0x0DB6, 0x0DB7, 0x0DB8, 0x0DB9, +0x0DBA, 0x0DBB, 0x0DBC, 0x0DBD, 0x0DBE, 0x0DBF, 0x0DC0, 0x0DC1, +0x0DC2, 0x0DC3, 0x0DC4, 0x0DC5, 0x0DC6, 0x0DC7, 0x0DC8, 0x0DC9, +0x0DCA, 0x0DCB, 0x0DCC, 0x0DCD, 0x0DCE, 0x0DCF, 0x0DD0, 0x0DD1, +0x0DD2, 0x0DD3, 0x0DD4, 0x0DD5, 0x0DD6, 0x0DD7, 0x0DD8, 0x0DD9, +0x0DDA, 0x0DDB, 0x0DDC, 0x0DDD, 0x0DDE, 0x0DDF, 0x0DE0, 0x0DE1, +0x0DE2, 0x0DE3, 0x0DE4, 0x0DE5, 0x0DE6, 0x0DE7, 0x0DE8, 0x0DE9, +0x0DEA, 0x0DEB, 0x0DEC, 0x0DED, 0x0DEE, 0x0DEF, 0x0DF0, 0x0DF1, +0x0DF2, 0x0DF3, 0x0DF4, 0x0DF5, 0x0DF6, 0x0DF7, 0x0DF8, 0x0DF9, +0x0DFA, 0x0DFB, 0x0DFC, 0x0DFD, 0x0DFE, 0x0DFF, 0x0E00, 0x0E01, +0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, 0x0E08, 0x0E09, +0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, 0x0E10, 0x0E11, +0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, 0x0E18, 0x0E19, +0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, 0x0E20, 0x0E21, +0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, 0x0E28, 0x0E29, +0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, 0x0E30, 0x0E31, +0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, 0x0E38, 0x0E39, +0x0E3A, 0x0E3B, 0x0E3C, 0x0E3D, 0x0E3E, 0x0E3F, 0x0E40, 0x0E41, +0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, 0x0E48, 0x0E49, +0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, 0x0E50, 0x0E51, +0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, 0x0E58, 0x0E59, +0x0E5A, 0x0E5B, 0x0E5C, 0x0E5D, 0x0E5E, 0x0E5F, 0x0E60, 0x0E61, +0x0E62, 0x0E63, 0x0E64, 0x0E65, 0x0E66, 0x0E67, 0x0E68, 0x0E69, +0x0E6A, 0x0E6B, 0x0E6C, 0x0E6D, 0x0E6E, 0x0E6F, 0x0E70, 0x0E71, +0x0E72, 0x0E73, 0x0E74, 0x0E75, 0x0E76, 0x0E77, 0x0E78, 0x0E79, +0x0E7A, 0x0E7B, 0x0E7C, 0x0E7D, 0x0E7E, 0x0E7F, 0x0E80, 0x0E81, +0x0E82, 0x0E83, 0x0E84, 0x0E85, 0x0E86, 0x0E87, 0x0E88, 0x0E89, +0x0E8A, 0x0E8B, 0x0E8C, 0x0E8D, 0x0E8E, 0x0E8F, 0x0E90, 0x0E91, +0x0E92, 0x0E93, 0x0E94, 0x0E95, 0x0E96, 0x0E97, 0x0E98, 0x0E99, +0x0E9A, 0x0E9B, 0x0E9C, 0x0E9D, 0x0E9E, 0x0E9F, 0x0EA0, 0x0EA1, +0x0EA2, 0x0EA3, 0x0EA4, 0x0EA5, 0x0EA6, 0x0EA7, 0x0EA8, 0x0EA9, +0x0EAA, 0x0EAB, 0x0EAC, 0x0EAD, 0x0EAE, 0x0EAF, 0x0EB0, 0x0EB1, +0x0EB2, 0x0EB3, 0x0EB4, 0x0EB5, 0x0EB6, 0x0EB7, 0x0EB8, 0x0EB9, +0x0EBA, 0x0EBB, 0x0EBC, 0x0EBD, 0x0EBE, 0x0EBF, 0x0EC0, 0x0EC1, +0x0EC2, 0x0EC3, 0x0EC4, 0x0EC5, 0x0EC6, 0x0EC7, 0x0EC8, 0x0EC9, +0x0ECA, 0x0ECB, 0x0ECC, 0x0ECD, 0x0ECE, 0x0ECF, 0x0ED0, 0x0ED1, +0x0ED2, 0x0ED3, 0x0ED4, 0x0ED5, 0x0ED6, 0x0ED7, 0x0ED8, 0x0ED9, +0x0EDA, 0x0EDB, 0x0EDC, 0x0EDD, 0x0EDE, 0x0EDF, 0x0EE0, 0x0EE1, +0x0EE2, 0x0EE3, 0x0EE4, 0x0EE5, 0x0EE6, 0x0EE7, 0x0EE8, 0x0EE9, +0x0EEA, 0x0EEB, 0x0EEC, 0x0EED, 0x0EEE, 0x0EEF, 0x0EF0, 0x0EF1, +0x0EF2, 0x0EF3, 0x0EF4, 0x0EF5, 0x0EF6, 0x0EF7, 0x0EF8, 0x0EF9, +0x0EFA, 0x0EFB, 0x0EFC, 0x0EFD, 0x0EFE, 0x0EFF, 0x0F00, 0x0F01, +0x0F02, 0x0F03, 0x0F04, 0x0F05, 0x0F06, 0x0F07, 0x0F08, 0x0F09, +0x0F0A, 0x0F0B, 0x0F0C, 0x0F0D, 0x0F0E, 0x0F0F, 0x0F10, 0x0F11, +0x0F12, 0x0F13, 0x0F14, 0x0F15, 0x0F16, 0x0F17, 0x0F18, 0x0F19, +0x0F1A, 0x0F1B, 0x0F1C, 0x0F1D, 0x0F1E, 0x0F1F, 0x0F20, 0x0F21, +0x0F22, 0x0F23, 0x0F24, 0x0F25, 0x0F26, 0x0F27, 0x0F28, 0x0F29, +0x0F2A, 0x0F2B, 0x0F2C, 0x0F2D, 0x0F2E, 0x0F2F, 0x0F30, 0x0F31, +0x0F32, 0x0F33, 0x0F34, 0x0F35, 0x0F36, 0x0F37, 0x0F38, 0x0F39, +0x0F3A, 0x0F3B, 0x0F3C, 0x0F3D, 0x0F3E, 0x0F3F, 0x0F40, 0x0F41, +0x0F42, 0x0F43, 0x0F44, 0x0F45, 0x0F46, 0x0F47, 0x0F48, 0x0F49, +0x0F4A, 0x0F4B, 0x0F4C, 0x0F4D, 0x0F4E, 0x0F4F, 0x0F50, 0x0F51, +0x0F52, 0x0F53, 0x0F54, 0x0F55, 0x0F56, 0x0F57, 0x0F58, 0x0F59, +0x0F5A, 0x0F5B, 0x0F5C, 0x0F5D, 0x0F5E, 0x0F5F, 0x0F60, 0x0F61, +0x0F62, 0x0F63, 0x0F64, 0x0F65, 0x0F66, 0x0F67, 0x0F68, 0x0F69, +0x0F6A, 0x0F6B, 0x0F6C, 0x0F6D, 0x0F6E, 0x0F6F, 0x0F70, 0x0F71, +0x0F72, 0x0F73, 0x0F74, 0x0F75, 0x0F76, 0x0F77, 0x0F78, 0x0F79, +0x0F7A, 0x0F7B, 0x0F7C, 0x0F7D, 0x0F7E, 0x0F7F, 0x0F80, 0x0F81, +0x0F82, 0x0F83, 0x0F84, 0x0F85, 0x0F86, 0x0F87, 0x0F88, 0x0F89, +0x0F8A, 0x0F8B, 0x0F8C, 0x0F8D, 0x0F8E, 0x0F8F, 0x0F90, 0x0F91, +0x0F92, 0x0F93, 0x0F94, 0x0F95, 0x0F96, 0x0F97, 0x0F98, 0x0F99, +0x0F9A, 0x0F9B, 0x0F9C, 0x0F9D, 0x0F9E, 0x0F9F, 0x0FA0, 0x0FA1, +0x0FA2, 0x0FA3, 0x0FA4, 0x0FA5, 0x0FA6, 0x0FA7, 0x0FA8, 0x0FA9, +0x0FAA, 0x0FAB, 0x0FAC, 0x0FAD, 0x0FAE, 0x0FAF, 0x0FB0, 0x0FB1, +0x0FB2, 0x0FB3, 0x0FB4, 0x0FB5, 0x0FB6, 0x0FB7, 0x0FB8, 0x0FB9, +0x0FBA, 0x0FBB, 0x0FBC, 0x0FBD, 0x0FBE, 0x0FBF, 0x0FC0, 0x0FC1, +0x0FC2, 0x0FC3, 0x0FC4, 0x0FC5, 0x0FC6, 0x0FC7, 0x0FC8, 0x0FC9, +0x0FCA, 0x0FCB, 0x0FCC, 0x0FCD, 0x0FCE, 0x0FCF, 0x0FD0, 0x0FD1, +0x0FD2, 0x0FD3, 0x0FD4, 0x0FD5, 0x0FD6, 0x0FD7, 0x0FD8, 0x0FD9, +0x0FDA, 0x0FDB, 0x0FDC, 0x0FDD, 0x0FDE, 0x0FDF, 0x0FE0, 0x0FE1, +0x0FE2, 0x0FE3, 0x0FE4, 0x0FE5, 0x0FE6, 0x0FE7, 0x0FE8, 0x0FE9, +0x0FEA, 0x0FEB, 0x0FEC, 0x0FED, 0x0FEE, 0x0FEF, 0x0FF0, 0x0FF1, +0x0FF2, 0x0FF3, 0x0FF4, 0x0FF5, 0x0FF6, 0x0FF7, 0x0FF8, 0x0FF9, +0x0FFA, 0x0FFB, 0x0FFC, 0x0FFD, 0x0FFE, 0x0FFF, 0x1000, 0x1001, +0x1002, 0x1003, 0x1004, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009, +0x100A, 0x100B, 0x100C, 0x100D, 0x100E, 0x100F, 0x1010, 0x1011, +0x1012, 0x1013, 0x1014, 0x1015, 0x1016, 0x1017, 0x1018, 0x1019, +0x101A, 0x101B, 0x101C, 0x101D, 0x101E, 0x101F, 0x1020, 0x1021, +0x1022, 0x1023, 0x1024, 0x1025, 0x1026, 0x1027, 0x1028, 0x1029, +0x102A, 0x102B, 0x102C, 0x102D, 0x102E, 0x102F, 0x1030, 0x1031, +0x1032, 0x1033, 0x1034, 0x1035, 0x1036, 0x1037, 0x1038, 0x1039, +0x103A, 0x103B, 0x103C, 0x103D, 0x103E, 0x103F, 0x1040, 0x1041, +0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047, 0x1048, 0x1049, +0x104A, 0x104B, 0x104C, 0x104D, 0x104E, 0x104F, 0x1050, 0x1051, +0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057, 0x1058, 0x1059, +0x105A, 0x105B, 0x105C, 0x105D, 0x105E, 0x105F, 0x1060, 0x1061, +0x1062, 0x1063, 0x1064, 0x1065, 0x1066, 0x1067, 0x1068, 0x1069, +0x106A, 0x106B, 0x106C, 0x106D, 0x106E, 0x106F, 0x1070, 0x1071, +0x1072, 0x1073, 0x1074, 0x1075, 0x1076, 0x1077, 0x1078, 0x1079, +0x107A, 0x107B, 0x107C, 0x107D, 0x107E, 0x107F, 0x1080, 0x1081, +0x1082, 0x1083, 0x1084, 0x1085, 0x1086, 0x1087, 0x1088, 0x1089, +0x108A, 0x108B, 0x108C, 0x108D, 0x108E, 0x108F, 0x1090, 0x1091, +0x1092, 0x1093, 0x1094, 0x1095, 0x1096, 0x1097, 0x1098, 0x1099, +0x109A, 0x109B, 0x109C, 0x109D, 0x109E, 0x109F, 0x10A0, 0x10A1, +0x10A2, 0x10A3, 0x10A4, 0x10A5, 0x10A6, 0x10A7, 0x10A8, 0x10A9, +0x10AA, 0x10AB, 0x10AC, 0x10AD, 0x10AE, 0x10AF, 0x10B0, 0x10B1, +0x10B2, 0x10B3, 0x10B4, 0x10B5, 0x10B6, 0x10B7, 0x10B8, 0x10B9, +0x10BA, 0x10BB, 0x10BC, 0x10BD, 0x10BE, 0x10BF, 0x10C0, 0x10C1, +0x10C2, 0x10C3, 0x10C4, 0x10C5, 0x10C6, 0x10C7, 0x10C8, 0x10C9, +0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF, 0x10D0, 0x10D1, +0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10D7, 0x10D8, 0x10D9, +0x10DA, 0x10DB, 0x10DC, 0x10DD, 0x10DE, 0x10DF, 0x10E0, 0x10E1, +0x10E2, 0x10E3, 0x10E4, 0x10E5, 0x10E6, 0x10E7, 0x10E8, 0x10E9, +0x10EA, 0x10EB, 0x10EC, 0x10ED, 0x10EE, 0x10EF, 0x10F0, 0x10F1, +0x10F2, 0x10F3, 0x10F4, 0x10F5, 0x10F6, 0x10F7, 0x10F8, 0x10F9, +0x10FA, 0x10FB, 0x10FC, 0x10FD, 0x10FE, 0x10FF, 0x1100, 0x1101, +0x1102, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, +0x110A, 0x110B, 0x110C, 0x110D, 0x110E, 0x110F, 0x1110, 0x1111, +0x1112, 0x1113, 0x1114, 0x1115, 0x1116, 0x1117, 0x1118, 0x1119, +0x111A, 0x111B, 0x111C, 0x111D, 0x111E, 0x111F, 0x1120, 0x1121, +0x1122, 0x1123, 0x1124, 0x1125, 0x1126, 0x1127, 0x1128, 0x1129, +0x112A, 0x112B, 0x112C, 0x112D, 0x112E, 0x112F, 0x1130, 0x1131, +0x1132, 0x1133, 0x1134, 0x1135, 0x1136, 0x1137, 0x1138, 0x1139, +0x113A, 0x113B, 0x113C, 0x113D, 0x113E, 0x113F, 0x1140, 0x1141, +0x1142, 0x1143, 0x1144, 0x1145, 0x1146, 0x1147, 0x1148, 0x1149, +0x114A, 0x114B, 0x114C, 0x114D, 0x114E, 0x114F, 0x1150, 0x1151, +0x1152, 0x1153, 0x1154, 0x1155, 0x1156, 0x1157, 0x1158, 0x1159, +0x115A, 0x115B, 0x115C, 0x115D, 0x115E, 0x115F, 0x1160, 0x1161, +0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, +0x116A, 0x116B, 0x116C, 0x116D, 0x116E, 0x116F, 0x1170, 0x1171, +0x1172, 0x1173, 0x1174, 0x1175, 0x1176, 0x1177, 0x1178, 0x1179, +0x117A, 0x117B, 0x117C, 0x117D, 0x117E, 0x117F, 0x1180, 0x1181, +0x1182, 0x1183, 0x1184, 0x1185, 0x1186, 0x1187, 0x1188, 0x1189, +0x118A, 0x118B, 0x118C, 0x118D, 0x118E, 0x118F, 0x1190, 0x1191, +0x1192, 0x1193, 0x1194, 0x1195, 0x1196, 0x1197, 0x1198, 0x1199, +0x119A, 0x119B, 0x119C, 0x119D, 0x119E, 0x119F, 0x11A0, 0x11A1, +0x11A2, 0x11A3, 0x11A4, 0x11A5, 0x11A6, 0x11A7, 0x11A8, 0x11A9, +0x11AA, 0x11AB, 0x11AC, 0x11AD, 0x11AE, 0x11AF, 0x11B0, 0x11B1, +0x11B2, 0x11B3, 0x11B4, 0x11B5, 0x11B6, 0x11B7, 0x11B8, 0x11B9, +0x11BA, 0x11BB, 0x11BC, 0x11BD, 0x11BE, 0x11BF, 0x11C0, 0x11C1, +0x11C2, 0x11C3, 0x11C4, 0x11C5, 0x11C6, 0x11C7, 0x11C8, 0x11C9, +0x11CA, 0x11CB, 0x11CC, 0x11CD, 0x11CE, 0x11CF, 0x11D0, 0x11D1, +0x11D2, 0x11D3, 0x11D4, 0x11D5, 0x11D6, 0x11D7, 0x11D8, 0x11D9, +0x11DA, 0x11DB, 0x11DC, 0x11DD, 0x11DE, 0x11DF, 0x11E0, 0x11E1, +0x11E2, 0x11E3, 0x11E4, 0x11E5, 0x11E6, 0x11E7, 0x11E8, 0x11E9, +0x11EA, 0x11EB, 0x11EC, 0x11ED, 0x11EE, 0x11EF, 0x11F0, 0x11F1, +0x11F2, 0x11F3, 0x11F4, 0x11F5, 0x11F6, 0x11F7, 0x11F8, 0x11F9, +0x11FA, 0x11FB, 0x11FC, 0x11FD, 0x11FE, 0x11FF, 0x1200, 0x1201, +0x1202, 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1208, 0x1209, +0x120A, 0x120B, 0x120C, 0x120D, 0x120E, 0x120F, 0x1210, 0x1211, +0x1212, 0x1213, 0x1214, 0x1215, 0x1216, 0x1217, 0x1218, 0x1219, +0x121A, 0x121B, 0x121C, 0x121D, 0x121E, 0x121F, 0x1220, 0x1221, +0x1222, 0x1223, 0x1224, 0x1225, 0x1226, 0x1227, 0x1228, 0x1229, +0x122A, 0x122B, 0x122C, 0x122D, 0x122E, 0x122F, 0x1230, 0x1231, +0x1232, 0x1233, 0x1234, 0x1235, 0x1236, 0x1237, 0x1238, 0x1239, +0x123A, 0x123B, 0x123C, 0x123D, 0x123E, 0x123F, 0x1240, 0x1241, +0x1242, 0x1243, 0x1244, 0x1245, 0x1246, 0x1247, 0x1248, 0x1249, +0x124A, 0x124B, 0x124C, 0x124D, 0x124E, 0x124F, 0x1250, 0x1251, +0x1252, 0x1253, 0x1254, 0x1255, 0x1256, 0x1257, 0x1258, 0x1259, +0x125A, 0x125B, 0x125C, 0x125D, 0x125E, 0x125F, 0x1260, 0x1261, +0x1262, 0x1263, 0x1264, 0x1265, 0x1266, 0x1267, 0x1268, 0x1269, +0x126A, 0x126B, 0x126C, 0x126D, 0x126E, 0x126F, 0x1270, 0x1271, +0x1272, 0x1273, 0x1274, 0x1275, 0x1276, 0x1277, 0x1278, 0x1279, +0x127A, 0x127B, 0x127C, 0x127D, 0x127E, 0x127F, 0x1280, 0x1281, +0x1282, 0x1283, 0x1284, 0x1285, 0x1286, 0x1287, 0x1288, 0x1289, +0x128A, 0x128B, 0x128C, 0x128D, 0x128E, 0x128F, 0x1290, 0x1291, +0x1292, 0x1293, 0x1294, 0x1295, 0x1296, 0x1297, 0x1298, 0x1299, +0x129A, 0x129B, 0x129C, 0x129D, 0x129E, 0x129F, 0x12A0, 0x12A1, +0x12A2, 0x12A3, 0x12A4, 0x12A5, 0x12A6, 0x12A7, 0x12A8, 0x12A9, +0x12AA, 0x12AB, 0x12AC, 0x12AD, 0x12AE, 0x12AF, 0x12B0, 0x12B1, +0x12B2, 0x12B3, 0x12B4, 0x12B5, 0x12B6, 0x12B7, 0x12B8, 0x12B9, +0x12BA, 0x12BB, 0x12BC, 0x12BD, 0x12BE, 0x12BF, 0x12C0, 0x12C1, +0x12C2, 0x12C3, 0x12C4, 0x12C5, 0x12C6, 0x12C7, 0x12C8, 0x12C9, +0x12CA, 0x12CB, 0x12CC, 0x12CD, 0x12CE, 0x12CF, 0x12D0, 0x12D1, +0x12D2, 0x12D3, 0x12D4, 0x12D5, 0x12D6, 0x12D7, 0x12D8, 0x12D9, +0x12DA, 0x12DB, 0x12DC, 0x12DD, 0x12DE, 0x12DF, 0x12E0, 0x12E1, +0x12E2, 0x12E3, 0x12E4, 0x12E5, 0x12E6, 0x12E7, 0x12E8, 0x12E9, +0x12EA, 0x12EB, 0x12EC, 0x12ED, 0x12EE, 0x12EF, 0x12F0, 0x12F1, +0x12F2, 0x12F3, 0x12F4, 0x12F5, 0x12F6, 0x12F7, 0x12F8, 0x12F9, +0x12FA, 0x12FB, 0x12FC, 0x12FD, 0x12FE, 0x12FF, 0x1300, 0x1301, +0x1302, 0x1303, 0x1304, 0x1305, 0x1306, 0x1307, 0x1308, 0x1309, +0x130A, 0x130B, 0x130C, 0x130D, 0x130E, 0x130F, 0x1310, 0x1311, +0x1312, 0x1313, 0x1314, 0x1315, 0x1316, 0x1317, 0x1318, 0x1319, +0x131A, 0x131B, 0x131C, 0x131D, 0x131E, 0x131F, 0x1320, 0x1321, +0x1322, 0x1323, 0x1324, 0x1325, 0x1326, 0x1327, 0x1328, 0x1329, +0x132A, 0x132B, 0x132C, 0x132D, 0x132E, 0x132F, 0x1330, 0x1331, +0x1332, 0x1333, 0x1334, 0x1335, 0x1336, 0x1337, 0x1338, 0x1339, +0x133A, 0x133B, 0x133C, 0x133D, 0x133E, 0x133F, 0x1340, 0x1341, +0x1342, 0x1343, 0x1344, 0x1345, 0x1346, 0x1347, 0x1348, 0x1349, +0x134A, 0x134B, 0x134C, 0x134D, 0x134E, 0x134F, 0x1350, 0x1351, +0x1352, 0x1353, 0x1354, 0x1355, 0x1356, 0x1357, 0x1358, 0x1359, +0x135A, 0x135B, 0x135C, 0x135D, 0x135E, 0x135F, 0x1360, 0x1361, +0x1362, 0x1363, 0x1364, 0x1365, 0x1366, 0x1367, 0x1368, 0x1369, +0x136A, 0x136B, 0x136C, 0x136D, 0x136E, 0x136F, 0x1370, 0x1371, +0x1372, 0x1373, 0x1374, 0x1375, 0x1376, 0x1377, 0x1378, 0x1379, +0x137A, 0x137B, 0x137C, 0x137D, 0x137E, 0x137F, 0x1380, 0x1381, +0x1382, 0x1383, 0x1384, 0x1385, 0x1386, 0x1387, 0x1388, 0x1389, +0x138A, 0x138B, 0x138C, 0x138D, 0x138E, 0x138F, 0x1390, 0x1391, +0x1392, 0x1393, 0x1394, 0x1395, 0x1396, 0x1397, 0x1398, 0x1399, +0x139A, 0x139B, 0x139C, 0x139D, 0x139E, 0x139F, 0x13A0, 0x13A1, +0x13A2, 0x13A3, 0x13A4, 0x13A5, 0x13A6, 0x13A7, 0x13A8, 0x13A9, +0x13AA, 0x13AB, 0x13AC, 0x13AD, 0x13AE, 0x13AF, 0x13B0, 0x13B1, +0x13B2, 0x13B3, 0x13B4, 0x13B5, 0x13B6, 0x13B7, 0x13B8, 0x13B9, +0x13BA, 0x13BB, 0x13BC, 0x13BD, 0x13BE, 0x13BF, 0x13C0, 0x13C1, +0x13C2, 0x13C3, 0x13C4, 0x13C5, 0x13C6, 0x13C7, 0x13C8, 0x13C9, +0x13CA, 0x13CB, 0x13CC, 0x13CD, 0x13CE, 0x13CF, 0x13D0, 0x13D1, +0x13D2, 0x13D3, 0x13D4, 0x13D5, 0x13D6, 0x13D7, 0x13D8, 0x13D9, +0x13DA, 0x13DB, 0x13DC, 0x13DD, 0x13DE, 0x13DF, 0x13E0, 0x13E1, +0x13E2, 0x13E3, 0x13E4, 0x13E5, 0x13E6, 0x13E7, 0x13E8, 0x13E9, +0x13EA, 0x13EB, 0x13EC, 0x13ED, 0x13EE, 0x13EF, 0x13F0, 0x13F1, +0x13F2, 0x13F3, 0x13F4, 0x13F5, 0x13F6, 0x13F7, 0x13F8, 0x13F9, +0x13FA, 0x13FB, 0x13FC, 0x13FD, 0x13FE, 0x13FF, 0x1400, 0x1401, +0x1402, 0x1403, 0x1404, 0x1405, 0x1406, 0x1407, 0x1408, 0x1409, +0x140A, 0x140B, 0x140C, 0x140D, 0x140E, 0x140F, 0x1410, 0x1411, +0x1412, 0x1413, 0x1414, 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, +0x141A, 0x141B, 0x141C, 0x141D, 0x141E, 0x141F, 0x1420, 0x1421, +0x1422, 0x1423, 0x1424, 0x1425, 0x1426, 0x1427, 0x1428, 0x1429, +0x142A, 0x142B, 0x142C, 0x142D, 0x142E, 0x142F, 0x1430, 0x1431, +0x1432, 0x1433, 0x1434, 0x1435, 0x1436, 0x1437, 0x1438, 0x1439, +0x143A, 0x143B, 0x143C, 0x143D, 0x143E, 0x143F, 0x1440, 0x1441, +0x1442, 0x1443, 0x1444, 0x1445, 0x1446, 0x1447, 0x1448, 0x1449, +0x144A, 0x144B, 0x144C, 0x144D, 0x144E, 0x144F, 0x1450, 0x1451, +0x1452, 0x1453, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459, +0x145A, 0x145B, 0x145C, 0x145D, 0x145E, 0x145F, 0x1460, 0x1461, +0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469, +0x146A, 0x146B, 0x146C, 0x146D, 0x146E, 0x146F, 0x1470, 0x1471, +0x1472, 0x1473, 0x1474, 0x1475, 0x1476, 0x1477, 0x1478, 0x1479, +0x147A, 0x147B, 0x147C, 0x147D, 0x147E, 0x147F, 0x1480, 0x1481, +0x1482, 0x1483, 0x1484, 0x1485, 0x1486, 0x1487, 0x1488, 0x1489, +0x148A, 0x148B, 0x148C, 0x148D, 0x148E, 0x148F, 0x1490, 0x1491, +0x1492, 0x1493, 0x1494, 0x1495, 0x1496, 0x1497, 0x1498, 0x1499, +0x149A, 0x149B, 0x149C, 0x149D, 0x149E, 0x149F, 0x14A0, 0x14A1, +0x14A2, 0x14A3, 0x14A4, 0x14A5, 0x14A6, 0x14A7, 0x14A8, 0x14A9, +0x14AA, 0x14AB, 0x14AC, 0x14AD, 0x14AE, 0x14AF, 0x14B0, 0x14B1, +0x14B2, 0x14B3, 0x14B4, 0x14B5, 0x14B6, 0x14B7, 0x14B8, 0x14B9, +0x14BA, 0x14BB, 0x14BC, 0x14BD, 0x14BE, 0x14BF, 0x14C0, 0x14C1, +0x14C2, 0x14C3, 0x14C4, 0x14C5, 0x14C6, 0x14C7, 0x14C8, 0x14C9, +0x14CA, 0x14CB, 0x14CC, 0x14CD, 0x14CE, 0x14CF, 0x14D0, 0x14D1, +0x14D2, 0x14D3, 0x14D4, 0x14D5, 0x14D6, 0x14D7, 0x14D8, 0x14D9, +0x14DA, 0x14DB, 0x14DC, 0x14DD, 0x14DE, 0x14DF, 0x14E0, 0x14E1, +0x14E2, 0x14E3, 0x14E4, 0x14E5, 0x14E6, 0x14E7, 0x14E8, 0x14E9, +0x14EA, 0x14EB, 0x14EC, 0x14ED, 0x14EE, 0x14EF, 0x14F0, 0x14F1, +0x14F2, 0x14F3, 0x14F4, 0x14F5, 0x14F6, 0x14F7, 0x14F8, 0x14F9, +0x14FA, 0x14FB, 0x14FC, 0x14FD, 0x14FE, 0x14FF, 0x1500, 0x1501, +0x1502, 0x1503, 0x1504, 0x1505, 0x1506, 0x1507, 0x1508, 0x1509, +0x150A, 0x150B, 0x150C, 0x150D, 0x150E, 0x150F, 0x1510, 0x1511, +0x1512, 0x1513, 0x1514, 0x1515, 0x1516, 0x1517, 0x1518, 0x1519, +0x151A, 0x151B, 0x151C, 0x151D, 0x151E, 0x151F, 0x1520, 0x1521, +0x1522, 0x1523, 0x1524, 0x1525, 0x1526, 0x1527, 0x1528, 0x1529, +0x152A, 0x152B, 0x152C, 0x152D, 0x152E, 0x152F, 0x1530, 0x1531, +0x1532, 0x1533, 0x1534, 0x1535, 0x1536, 0x1537, 0x1538, 0x1539, +0x153A, 0x153B, 0x153C, 0x153D, 0x153E, 0x153F, 0x1540, 0x1541, +0x1542, 0x1543, 0x1544, 0x1545, 0x1546, 0x1547, 0x1548, 0x1549, +0x154A, 0x154B, 0x154C, 0x154D, 0x154E, 0x154F, 0x1550, 0x1551, +0x1552, 0x1553, 0x1554, 0x1555, 0x1556, 0x1557, 0x1558, 0x1559, +0x155A, 0x155B, 0x155C, 0x155D, 0x155E, 0x155F, 0x1560, 0x1561, +0x1562, 0x1563, 0x1564, 0x1565, 0x1566, 0x1567, 0x1568, 0x1569, +0x156A, 0x156B, 0x156C, 0x156D, 0x156E, 0x156F, 0x1570, 0x1571, +0x1572, 0x1573, 0x1574, 0x1575, 0x1576, 0x1577, 0x1578, 0x1579, +0x157A, 0x157B, 0x157C, 0x157D, 0x157E, 0x157F, 0x1580, 0x1581, +0x1582, 0x1583, 0x1584, 0x1585, 0x1586, 0x1587, 0x1588, 0x1589, +0x158A, 0x158B, 0x158C, 0x158D, 0x158E, 0x158F, 0x1590, 0x1591, +0x1592, 0x1593, 0x1594, 0x1595, 0x1596, 0x1597, 0x1598, 0x1599, +0x159A, 0x159B, 0x159C, 0x159D, 0x159E, 0x159F, 0x15A0, 0x15A1, +0x15A2, 0x15A3, 0x15A4, 0x15A5, 0x15A6, 0x15A7, 0x15A8, 0x15A9, +0x15AA, 0x15AB, 0x15AC, 0x15AD, 0x15AE, 0x15AF, 0x15B0, 0x15B1, +0x15B2, 0x15B3, 0x15B4, 0x15B5, 0x15B6, 0x15B7, 0x15B8, 0x15B9, +0x15BA, 0x15BB, 0x15BC, 0x15BD, 0x15BE, 0x15BF, 0x15C0, 0x15C1, +0x15C2, 0x15C3, 0x15C4, 0x15C5, 0x15C6, 0x15C7, 0x15C8, 0x15C9, +0x15CA, 0x15CB, 0x15CC, 0x15CD, 0x15CE, 0x15CF, 0x15D0, 0x15D1, +0x15D2, 0x15D3, 0x15D4, 0x15D5, 0x15D6, 0x15D7, 0x15D8, 0x15D9, +0x15DA, 0x15DB, 0x15DC, 0x15DD, 0x15DE, 0x15DF, 0x15E0, 0x15E1, +0x15E2, 0x15E3, 0x15E4, 0x15E5, 0x15E6, 0x15E7, 0x15E8, 0x15E9, +0x15EA, 0x15EB, 0x15EC, 0x15ED, 0x15EE, 0x15EF, 0x15F0, 0x15F1, +0x15F2, 0x15F3, 0x15F4, 0x15F5, 0x15F6, 0x15F7, 0x15F8, 0x15F9, +0x15FA, 0x15FB, 0x15FC, 0x15FD, 0x15FE, 0x15FF, 0x1600, 0x1601, +0x1602, 0x1603, 0x1604, 0x1605, 0x1606, 0x1607, 0x1608, 0x1609, +0x160A, 0x160B, 0x160C, 0x160D, 0x160E, 0x160F, 0x1610, 0x1611, +0x1612, 0x1613, 0x1614, 0x1615, 0x1616, 0x1617, 0x1618, 0x1619, +0x161A, 0x161B, 0x161C, 0x161D, 0x161E, 0x161F, 0x1620, 0x1621, +0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628, 0x1629, +0x162A, 0x162B, 0x162C, 0x162D, 0x162E, 0x162F, 0x1630, 0x1631, +0x1632, 0x1633, 0x1634, 0x1635, 0x1636, 0x1637, 0x1638, 0x1639, +0x163A, 0x163B, 0x163C, 0x163D, 0x163E, 0x163F, 0x1640, 0x1641, +0x1642, 0x1643, 0x1644, 0x1645, 0x1646, 0x1647, 0x1648, 0x1649, +0x164A, 0x164B, 0x164C, 0x164D, 0x164E, 0x164F, 0x1650, 0x1651, +0x1652, 0x1653, 0x1654, 0x1655, 0x1656, 0x1657, 0x1658, 0x1659, +0x165A, 0x165B, 0x165C, 0x165D, 0x165E, 0x165F, 0x1660, 0x1661, +0x1662, 0x1663, 0x1664, 0x1665, 0x1666, 0x1667, 0x1668, 0x1669, +0x166A, 0x166B, 0x166C, 0x166D, 0x166E, 0x166F, 0x1670, 0x1671, +0x1672, 0x1673, 0x1674, 0x1675, 0x1676, 0x1677, 0x1678, 0x1679, +0x167A, 0x167B, 0x167C, 0x167D, 0x167E, 0x167F, 0x1680, 0x1681, +0x1682, 0x1683, 0x1684, 0x1685, 0x1686, 0x1687, 0x1688, 0x1689, +0x168A, 0x168B, 0x168C, 0x168D, 0x168E, 0x168F, 0x1690, 0x1691, +0x1692, 0x1693, 0x1694, 0x1695, 0x1696, 0x1697, 0x1698, 0x1699, +0x169A, 0x169B, 0x169C, 0x169D, 0x169E, 0x169F, 0x16A0, 0x16A1, +0x16A2, 0x16A3, 0x16A4, 0x16A5, 0x16A6, 0x16A7, 0x16A8, 0x16A9, +0x16AA, 0x16AB, 0x16AC, 0x16AD, 0x16AE, 0x16AF, 0x16B0, 0x16B1, +0x16B2, 0x16B3, 0x16B4, 0x16B5, 0x16B6, 0x16B7, 0x16B8, 0x16B9, +0x16BA, 0x16BB, 0x16BC, 0x16BD, 0x16BE, 0x16BF, 0x16C0, 0x16C1, +0x16C2, 0x16C3, 0x16C4, 0x16C5, 0x16C6, 0x16C7, 0x16C8, 0x16C9, +0x16CA, 0x16CB, 0x16CC, 0x16CD, 0x16CE, 0x16CF, 0x16D0, 0x16D1, +0x16D2, 0x16D3, 0x16D4, 0x16D5, 0x16D6, 0x16D7, 0x16D8, 0x16D9, +0x16DA, 0x16DB, 0x16DC, 0x16DD, 0x16DE, 0x16DF, 0x16E0, 0x16E1, +0x16E2, 0x16E3, 0x16E4, 0x16E5, 0x16E6, 0x16E7, 0x16E8, 0x16E9, +0x16EA, 0x16EB, 0x16EC, 0x16ED, 0x16EE, 0x16EF, 0x16F0, 0x16F1, +0x16F2, 0x16F3, 0x16F4, 0x16F5, 0x16F6, 0x16F7, 0x16F8, 0x16F9, +0x16FA, 0x16FB, 0x16FC, 0x16FD, 0x16FE, 0x16FF, 0x1700, 0x1701, +0x1702, 0x1703, 0x1704, 0x1705, 0x1706, 0x1707, 0x1708, 0x1709, +0x170A, 0x170B, 0x170C, 0x170D, 0x170E, 0x170F, 0x1710, 0x1711, +0x1712, 0x1713, 0x1714, 0x1715, 0x1716, 0x1717, 0x1718, 0x1719, +0x171A, 0x171B, 0x171C, 0x171D, 0x171E, 0x171F, 0x1720, 0x1721, +0x1722, 0x1723, 0x1724, 0x1725, 0x1726, 0x1727, 0x1728, 0x1729, +0x172A, 0x172B, 0x172C, 0x172D, 0x172E, 0x172F, 0x1730, 0x1731, +0x1732, 0x1733, 0x1734, 0x1735, 0x1736, 0x1737, 0x1738, 0x1739, +0x173A, 0x173B, 0x173C, 0x173D, 0x173E, 0x173F, 0x1740, 0x1741, +0x1742, 0x1743, 0x1744, 0x1745, 0x1746, 0x1747, 0x1748, 0x1749, +0x174A, 0x174B, 0x174C, 0x174D, 0x174E, 0x174F, 0x1750, 0x1751, +0x1752, 0x1753, 0x1754, 0x1755, 0x1756, 0x1757, 0x1758, 0x1759, +0x175A, 0x175B, 0x175C, 0x175D, 0x175E, 0x175F, 0x1760, 0x1761, +0x1762, 0x1763, 0x1764, 0x1765, 0x1766, 0x1767, 0x1768, 0x1769, +0x176A, 0x176B, 0x176C, 0x176D, 0x176E, 0x176F, 0x1770, 0x1771, +0x1772, 0x1773, 0x1774, 0x1775, 0x1776, 0x1777, 0x1778, 0x1779, +0x177A, 0x177B, 0x177C, 0x177D, 0x177E, 0x177F, 0x1780, 0x1781, +0x1782, 0x1783, 0x1784, 0x1785, 0x1786, 0x1787, 0x1788, 0x1789, +0x178A, 0x178B, 0x178C, 0x178D, 0x178E, 0x178F, 0x1790, 0x1791, +0x1792, 0x1793, 0x1794, 0x1795, 0x1796, 0x1797, 0x1798, 0x1799, +0x179A, 0x179B, 0x179C, 0x179D, 0x179E, 0x179F, 0x17A0, 0x17A1, +0x17A2, 0x17A3, 0x17A4, 0x17A5, 0x17A6, 0x17A7, 0x17A8, 0x17A9, +0x17AA, 0x17AB, 0x17AC, 0x17AD, 0x17AE, 0x17AF, 0x17B0, 0x17B1, +0x17B2, 0x17B3, 0x17B4, 0x17B5, 0x17B6, 0x17B7, 0x17B8, 0x17B9, +0x17BA, 0x17BB, 0x17BC, 0x17BD, 0x17BE, 0x17BF, 0x17C0, 0x17C1, +0x17C2, 0x17C3, 0x17C4, 0x17C5, 0x17C6, 0x17C7, 0x17C8, 0x17C9, +0x17CA, 0x17CB, 0x17CC, 0x17CD, 0x17CE, 0x17CF, 0x17D0, 0x17D1, +0x17D2, 0x17D3, 0x17D4, 0x17D5, 0x17D6, 0x17D7, 0x17D8, 0x17D9, +0x17DA, 0x17DB, 0x17DC, 0x17DD, 0x17DE, 0x17DF, 0x17E0, 0x17E1, +0x17E2, 0x17E3, 0x17E4, 0x17E5, 0x17E6, 0x17E7, 0x17E8, 0x17E9, +0x17EA, 0x17EB, 0x17EC, 0x17ED, 0x17EE, 0x17EF, 0x17F0, 0x17F1, +0x17F2, 0x17F3, 0x17F4, 0x17F5, 0x17F6, 0x17F7, 0x17F8, 0x17F9, +0x17FA, 0x17FB, 0x17FC, 0x17FD, 0x17FE, 0x17FF, 0x1800, 0x1801, +0x1802, 0x1803, 0x1804, 0x1805, 0x1806, 0x1807, 0x1808, 0x1809, +0x180A, 0x180B, 0x180C, 0x180D, 0x180E, 0x180F, 0x1810, 0x1811, +0x1812, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x1818, 0x1819, +0x181A, 0x181B, 0x181C, 0x181D, 0x181E, 0x181F, 0x1820, 0x1821, +0x1822, 0x1823, 0x1824, 0x1825, 0x1826, 0x1827, 0x1828, 0x1829, +0x182A, 0x182B, 0x182C, 0x182D, 0x182E, 0x182F, 0x1830, 0x1831, +0x1832, 0x1833, 0x1834, 0x1835, 0x1836, 0x1837, 0x1838, 0x1839, +0x183A, 0x183B, 0x183C, 0x183D, 0x183E, 0x183F, 0x1840, 0x1841, +0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, +0x184A, 0x184B, 0x184C, 0x184D, 0x184E, 0x184F, 0x1850, 0x1851, +0x1852, 0x1853, 0x1854, 0x1855, 0x1856, 0x1857, 0x1858, 0x1859, +0x185A, 0x185B, 0x185C, 0x185D, 0x185E, 0x185F, 0x1860, 0x1861, +0x1862, 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, +0x186A, 0x186B, 0x186C, 0x186D, 0x186E, 0x186F, 0x1870, 0x1871, +0x1872, 0x1873, 0x1874, 0x1875, 0x1876, 0x1877, 0x1878, 0x1879, +0x187A, 0x187B, 0x187C, 0x187D, 0x187E, 0x187F, 0x1880, 0x1881, +0x1882, 0x1883, 0x1884, 0x1885, 0x1886, 0x1887, 0x1888, 0x1889, +0x188A, 0x188B, 0x188C, 0x188D, 0x188E, 0x188F, 0x1890, 0x1891, +0x1892, 0x1893, 0x1894, 0x1895, 0x1896, 0x1897, 0x1898, 0x1899, +0x189A, 0x189B, 0x189C, 0x189D, 0x189E, 0x189F, 0x18A0, 0x18A1, +0x18A2, 0x18A3, 0x18A4, 0x18A5, 0x18A6, 0x18A7, 0x18A8, 0x18A9, +0x18AA, 0x18AB, 0x18AC, 0x18AD, 0x18AE, 0x18AF, 0x18B0, 0x18B1, +0x18B2, 0x18B3, 0x18B4, 0x18B5, 0x18B6, 0x18B7, 0x18B8, 0x18B9, +0x18BA, 0x18BB, 0x18BC, 0x18BD, 0x18BE, 0x18BF, 0x18C0, 0x18C1, +0x18C2, 0x18C3, 0x18C4, 0x18C5, 0x18C6, 0x18C7, 0x18C8, 0x18C9, +0x18CA, 0x18CB, 0x18CC, 0x18CD, 0x18CE, 0x18CF, 0x18D0, 0x18D1, +0x18D2, 0x18D3, 0x18D4, 0x18D5, 0x18D6, 0x18D7, 0x18D8, 0x18D9, +0x18DA, 0x18DB, 0x18DC, 0x18DD, 0x18DE, 0x18DF, 0x18E0, 0x18E1, +0x18E2, 0x18E3, 0x18E4, 0x18E5, 0x18E6, 0x18E7, 0x18E8, 0x18E9, +0x18EA, 0x18EB, 0x18EC, 0x18ED, 0x18EE, 0x18EF, 0x18F0, 0x18F1, +0x18F2, 0x18F3, 0x18F4, 0x18F5, 0x18F6, 0x18F7, 0x18F8, 0x18F9, +0x18FA, 0x18FB, 0x18FC, 0x18FD, 0x18FE, 0x18FF, 0x1900, 0x1901, +0x1902, 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x1908, 0x1909, +0x190A, 0x190B, 0x190C, 0x190D, 0x190E, 0x190F, 0x1910, 0x1911, +0x1912, 0x1913, 0x1914, 0x1915, 0x1916, 0x1917, 0x1918, 0x1919, +0x191A, 0x191B, 0x191C, 0x191D, 0x191E, 0x191F, 0x1920, 0x1921, +0x1922, 0x1923, 0x1924, 0x1925, 0x1926, 0x1927, 0x1928, 0x1929, +0x192A, 0x192B, 0x192C, 0x192D, 0x192E, 0x192F, 0x1930, 0x1931, +0x1932, 0x1933, 0x1934, 0x1935, 0x1936, 0x1937, 0x1938, 0x1939, +0x193A, 0x193B, 0x193C, 0x193D, 0x193E, 0x193F, 0x1940, 0x1941, +0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1948, 0x1949, +0x194A, 0x194B, 0x194C, 0x194D, 0x194E, 0x194F, 0x1950, 0x1951, +0x1952, 0x1953, 0x1954, 0x1955, 0x1956, 0x1957, 0x1958, 0x1959, +0x195A, 0x195B, 0x195C, 0x195D, 0x195E, 0x195F, 0x1960, 0x1961, +0x1962, 0x1963, 0x1964, 0x1965, 0x1966, 0x1967, 0x1968, 0x1969, +0x196A, 0x196B, 0x196C, 0x196D, 0x196E, 0x196F, 0x1970, 0x1971, +0x1972, 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, +0x197A, 0x197B, 0x197C, 0x197D, 0x197E, 0x197F, 0x1980, 0x1981, +0x1982, 0x1983, 0x1984, 0x1985, 0x1986, 0x1987, 0x1988, 0x1989, +0x198A, 0x198B, 0x198C, 0x198D, 0x198E, 0x198F, 0x1990, 0x1991, +0x1992, 0x1993, 0x1994, 0x1995, 0x1996, 0x1997, 0x1998, 0x1999, +0x199A, 0x199B, 0x199C, 0x199D, 0x199E, 0x199F, 0x19A0, 0x19A1, +0x19A2, 0x19A3, 0x19A4, 0x19A5, 0x19A6, 0x19A7, 0x19A8, 0x19A9, +0x19AA, 0x19AB, 0x19AC, 0x19AD, 0x19AE, 0x19AF, 0x19B0, 0x19B1, +0x19B2, 0x19B3, 0x19B4, 0x19B5, 0x19B6, 0x19B7, 0x19B8, 0x19B9, +0x19BA, 0x19BB, 0x19BC, 0x19BD, 0x19BE, 0x19BF, 0x19C0, 0x19C1, +0x19C2, 0x19C3, 0x19C4, 0x19C5, 0x19C6, 0x19C7, 0x19C8, 0x19C9, +0x19CA, 0x19CB, 0x19CC, 0x19CD, 0x19CE, 0x19CF, 0x19D0, 0x19D1, +0x19D2, 0x19D3, 0x19D4, 0x19D5, 0x19D6, 0x19D7, 0x19D8, 0x19D9, +0x19DA, 0x19DB, 0x19DC, 0x19DD, 0x19DE, 0x19DF, 0x19E0, 0x19E1, +0x19E2, 0x19E3, 0x19E4, 0x19E5, 0x19E6, 0x19E7, 0x19E8, 0x19E9, +0x19EA, 0x19EB, 0x19EC, 0x19ED, 0x19EE, 0x19EF, 0x19F0, 0x19F1, +0x19F2, 0x19F3, 0x19F4, 0x19F5, 0x19F6, 0x19F7, 0x19F8, 0x19F9, +0x19FA, 0x19FB, 0x19FC, 0x19FD, 0x19FE, 0x19FF, 0x1A00, 0x1A01, +0x1A02, 0x1A03, 0x1A04, 0x1A05, 0x1A06, 0x1A07, 0x1A08, 0x1A09, +0x1A0A, 0x1A0B, 0x1A0C, 0x1A0D, 0x1A0E, 0x1A0F, 0x1A10, 0x1A11, +0x1A12, 0x1A13, 0x1A14, 0x1A15, 0x1A16, 0x1A17, 0x1A18, 0x1A19, +0x1A1A, 0x1A1B, 0x1A1C, 0x1A1D, 0x1A1E, 0x1A1F, 0x1A20, 0x1A21, +0x1A22, 0x1A23, 0x1A24, 0x1A25, 0x1A26, 0x1A27, 0x1A28, 0x1A29, +0x1A2A, 0x1A2B, 0x1A2C, 0x1A2D, 0x1A2E, 0x1A2F, 0x1A30, 0x1A31, +0x1A32, 0x1A33, 0x1A34, 0x1A35, 0x1A36, 0x1A37, 0x1A38, 0x1A39, +0x1A3A, 0x1A3B, 0x1A3C, 0x1A3D, 0x1A3E, 0x1A3F, 0x1A40, 0x1A41, +0x1A42, 0x1A43, 0x1A44, 0x1A45, 0x1A46, 0x1A47, 0x1A48, 0x1A49, +0x1A4A, 0x1A4B, 0x1A4C, 0x1A4D, 0x1A4E, 0x1A4F, 0x1A50, 0x1A51, +0x1A52, 0x1A53, 0x1A54, 0x1A55, 0x1A56, 0x1A57, 0x1A58, 0x1A59, +0x1A5A, 0x1A5B, 0x1A5C, 0x1A5D, 0x1A5E, 0x1A5F, 0x1A60, 0x1A61, +0x1A62, 0x1A63, 0x1A64, 0x1A65, 0x1A66, 0x1A67, 0x1A68, 0x1A69, +0x1A6A, 0x1A6B, 0x1A6C, 0x1A6D, 0x1A6E, 0x1A6F, 0x1A70, 0x1A71, +0x1A72, 0x1A73, 0x1A74, 0x1A75, 0x1A76, 0x1A77, 0x1A78, 0x1A79, +0x1A7A, 0x1A7B, 0x1A7C, 0x1A7D, 0x1A7E, 0x1A7F, 0x1A80, 0x1A81, +0x1A82, 0x1A83, 0x1A84, 0x1A85, 0x1A86, 0x1A87, 0x1A88, 0x1A89, +0x1A8A, 0x1A8B, 0x1A8C, 0x1A8D, 0x1A8E, 0x1A8F, 0x1A90, 0x1A91, +0x1A92, 0x1A93, 0x1A94, 0x1A95, 0x1A96, 0x1A97, 0x1A98, 0x1A99, +0x1A9A, 0x1A9B, 0x1A9C, 0x1A9D, 0x1A9E, 0x1A9F, 0x1AA0, 0x1AA1, +0x1AA2, 0x1AA3, 0x1AA4, 0x1AA5, 0x1AA6, 0x1AA7, 0x1AA8, 0x1AA9, +0x1AAA, 0x1AAB, 0x1AAC, 0x1AAD, 0x1AAE, 0x1AAF, 0x1AB0, 0x1AB1, +0x1AB2, 0x1AB3, 0x1AB4, 0x1AB5, 0x1AB6, 0x1AB7, 0x1AB8, 0x1AB9, +0x1ABA, 0x1ABB, 0x1ABC, 0x1ABD, 0x1ABE, 0x1ABF, 0x1AC0, 0x1AC1, +0x1AC2, 0x1AC3, 0x1AC4, 0x1AC5, 0x1AC6, 0x1AC7, 0x1AC8, 0x1AC9, +0x1ACA, 0x1ACB, 0x1ACC, 0x1ACD, 0x1ACE, 0x1ACF, 0x1AD0, 0x1AD1, +0x1AD2, 0x1AD3, 0x1AD4, 0x1AD5, 0x1AD6, 0x1AD7, 0x1AD8, 0x1AD9, +0x1ADA, 0x1ADB, 0x1ADC, 0x1ADD, 0x1ADE, 0x1ADF, 0x1AE0, 0x1AE1, +0x1AE2, 0x1AE3, 0x1AE4, 0x1AE5, 0x1AE6, 0x1AE7, 0x1AE8, 0x1AE9, +0x1AEA, 0x1AEB, 0x1AEC, 0x1AED, 0x1AEE, 0x1AEF, 0x1AF0, 0x1AF1, +0x1AF2, 0x1AF3, 0x1AF4, 0x1AF5, 0x1AF6, 0x1AF7, 0x1AF8, 0x1AF9, +0x1AFA, 0x1AFB, 0x1AFC, 0x1AFD, 0x1AFE, 0x1AFF, 0x1B00, 0x1B01, +0x1B02, 0x1B03, 0x1B04, 0x1B05, 0x1B06, 0x1B07, 0x1B08, 0x1B09, +0x1B0A, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0F, 0x1B10, 0x1B11, +0x1B12, 0x1B13, 0x1B14, 0x1B15, 0x1B16, 0x1B17, 0x1B18, 0x1B19, +0x1B1A, 0x1B1B, 0x1B1C, 0x1B1D, 0x1B1E, 0x1B1F, 0x1B20, 0x1B21, +0x1B22, 0x1B23, 0x1B24, 0x1B25, 0x1B26, 0x1B27, 0x1B28, 0x1B29, +0x1B2A, 0x1B2B, 0x1B2C, 0x1B2D, 0x1B2E, 0x1B2F, 0x1B30, 0x1B31, +0x1B32, 0x1B33, 0x1B34, 0x1B35, 0x1B36, 0x1B37, 0x1B38, 0x1B39, +0x1B3A, 0x1B3B, 0x1B3C, 0x1B3D, 0x1B3E, 0x1B3F, 0x1B40, 0x1B41, +0x1B42, 0x1B43, 0x1B44, 0x1B45, 0x1B46, 0x1B47, 0x1B48, 0x1B49, +0x1B4A, 0x1B4B, 0x1B4C, 0x1B4D, 0x1B4E, 0x1B4F, 0x1B50, 0x1B51, +0x1B52, 0x1B53, 0x1B54, 0x1B55, 0x1B56, 0x1B57, 0x1B58, 0x1B59, +0x1B5A, 0x1B5B, 0x1B5C, 0x1B5D, 0x1B5E, 0x1B5F, 0x1B60, 0x1B61, +0x1B62, 0x1B63, 0x1B64, 0x1B65, 0x1B66, 0x1B67, 0x1B68, 0x1B69, +0x1B6A, 0x1B6B, 0x1B6C, 0x1B6D, 0x1B6E, 0x1B6F, 0x1B70, 0x1B71, +0x1B72, 0x1B73, 0x1B74, 0x1B75, 0x1B76, 0x1B77, 0x1B78, 0x1B79, +0x1B7A, 0x1B7B, 0x1B7C, 0x1B7D, 0x1B7E, 0x1B7F, 0x1B80, 0x1B81, +0x1B82, 0x1B83, 0x1B84, 0x1B85, 0x1B86, 0x1B87, 0x1B88, 0x1B89, +0x1B8A, 0x1B8B, 0x1B8C, 0x1B8D, 0x1B8E, 0x1B8F, 0x1B90, 0x1B91, +0x1B92, 0x1B93, 0x1B94, 0x1B95, 0x1B96, 0x1B97, 0x1B98, 0x1B99, +0x1B9A, 0x1B9B, 0x1B9C, 0x1B9D, 0x1B9E, 0x1B9F, 0x1BA0, 0x1BA1, +0x1BA2, 0x1BA3, 0x1BA4, 0x1BA5, 0x1BA6, 0x1BA7, 0x1BA8, 0x1BA9, +0x1BAA, 0x1BAB, 0x1BAC, 0x1BAD, 0x1BAE, 0x1BAF, 0x1BB0, 0x1BB1, +0x1BB2, 0x1BB3, 0x1BB4, 0x1BB5, 0x1BB6, 0x1BB7, 0x1BB8, 0x1BB9, +0x1BBA, 0x1BBB, 0x1BBC, 0x1BBD, 0x1BBE, 0x1BBF, 0x1BC0, 0x1BC1, +0x1BC2, 0x1BC3, 0x1BC4, 0x1BC5, 0x1BC6, 0x1BC7, 0x1BC8, 0x1BC9, +0x1BCA, 0x1BCB, 0x1BCC, 0x1BCD, 0x1BCE, 0x1BCF, 0x1BD0, 0x1BD1, +0x1BD2, 0x1BD3, 0x1BD4, 0x1BD5, 0x1BD6, 0x1BD7, 0x1BD8, 0x1BD9, +0x1BDA, 0x1BDB, 0x1BDC, 0x1BDD, 0x1BDE, 0x1BDF, 0x1BE0, 0x1BE1, +0x1BE2, 0x1BE3, 0x1BE4, 0x1BE5, 0x1BE6, 0x1BE7, 0x1BE8, 0x1BE9, +0x1BEA, 0x1BEB, 0x1BEC, 0x1BED, 0x1BEE, 0x1BEF, 0x1BF0, 0x1BF1, +0x1BF2, 0x1BF3, 0x1BF4, 0x1BF5, 0x1BF6, 0x1BF7, 0x1BF8, 0x1BF9, +0x1BFA, 0x1BFB, 0x1BFC, 0x1BFD, 0x1BFE, 0x1BFF, 0x1C00, 0x1C01, +0x1C02, 0x1C03, 0x1C04, 0x1C05, 0x1C06, 0x1C07, 0x1C08, 0x1C09, +0x1C0A, 0x1C0B, 0x1C0C, 0x1C0D, 0x1C0E, 0x1C0F, 0x1C10, 0x1C11, +0x1C12, 0x1C13, 0x1C14, 0x1C15, 0x1C16, 0x1C17, 0x1C18, 0x1C19, +0x1C1A, 0x1C1B, 0x1C1C, 0x1C1D, 0x1C1E, 0x1C1F, 0x1C20, 0x1C21, +0x1C22, 0x1C23, 0x1C24, 0x1C25, 0x1C26, 0x1C27, 0x1C28, 0x1C29, +0x1C2A, 0x1C2B, 0x1C2C, 0x1C2D, 0x1C2E, 0x1C2F, 0x1C30, 0x1C31, +0x1C32, 0x1C33, 0x1C34, 0x1C35, 0x1C36, 0x1C37, 0x1C38, 0x1C39, +0x1C3A, 0x1C3B, 0x1C3C, 0x1C3D, 0x1C3E, 0x1C3F, 0x1C40, 0x1C41, +0x1C42, 0x1C43, 0x1C44, 0x1C45, 0x1C46, 0x1C47, 0x1C48, 0x1C49, +0x1C4A, 0x1C4B, 0x1C4C, 0x1C4D, 0x1C4E, 0x1C4F, 0x1C50, 0x1C51, +0x1C52, 0x1C53, 0x1C54, 0x1C55, 0x1C56, 0x1C57, 0x1C58, 0x1C59, +0x1C5A, 0x1C5B, 0x1C5C, 0x1C5D, 0x1C5E, 0x1C5F, 0x1C60, 0x1C61, +0x1C62, 0x1C63, 0x1C64, 0x1C65, 0x1C66, 0x1C67, 0x1C68, 0x1C69, +0x1C6A, 0x1C6B, 0x1C6C, 0x1C6D, 0x1C6E, 0x1C6F, 0x1C70, 0x1C71, +0x1C72, 0x1C73, 0x1C74, 0x1C75, 0x1C76, 0x1C77, 0x1C78, 0x1C79, +0x1C7A, 0x1C7B, 0x1C7C, 0x1C7D, 0x1C7E, 0x1C7F, 0x1C80, 0x1C81, +0x1C82, 0x1C83, 0x1C84, 0x1C85, 0x1C86, 0x1C87, 0x1C88, 0x1C89, +0x1C8A, 0x1C8B, 0x1C8C, 0x1C8D, 0x1C8E, 0x1C8F, 0x1C90, 0x1C91, +0x1C92, 0x1C93, 0x1C94, 0x1C95, 0x1C96, 0x1C97, 0x1C98, 0x1C99, +0x1C9A, 0x1C9B, 0x1C9C, 0x1C9D, 0x1C9E, 0x1C9F, 0x1CA0, 0x1CA1, +0x1CA2, 0x1CA3, 0x1CA4, 0x1CA5, 0x1CA6, 0x1CA7, 0x1CA8, 0x1CA9, +0x1CAA, 0x1CAB, 0x1CAC, 0x1CAD, 0x1CAE, 0x1CAF, 0x1CB0, 0x1CB1, +0x1CB2, 0x1CB3, 0x1CB4, 0x1CB5, 0x1CB6, 0x1CB7, 0x1CB8, 0x1CB9, +0x1CBA, 0x1CBB, 0x1CBC, 0x1CBD, 0x1CBE, 0x1CBF, 0x1CC0, 0x1CC1, +0x1CC2, 0x1CC3, 0x1CC4, 0x1CC5, 0x1CC6, 0x1CC7, 0x1CC8, 0x1CC9, +0x1CCA, 0x1CCB, 0x1CCC, 0x1CCD, 0x1CCE, 0x1CCF, 0x1CD0, 0x1CD1, +0x1CD2, 0x1CD3, 0x1CD4, 0x1CD5, 0x1CD6, 0x1CD7, 0x1CD8, 0x1CD9, +0x1CDA, 0x1CDB, 0x1CDC, 0x1CDD, 0x1CDE, 0x1CDF, 0x1CE0, 0x1CE1, +0x1CE2, 0x1CE3, 0x1CE4, 0x1CE5, 0x1CE6, 0x1CE7, 0x1CE8, 0x1CE9, +0x1CEA, 0x1CEB, 0x1CEC, 0x1CED, 0x1CEE, 0x1CEF, 0x1CF0, 0x1CF1, +0x1CF2, 0x1CF3, 0x1CF4, 0x1CF5, 0x1CF6, 0x1CF7, 0x1CF8, 0x1CF9, +0x1CFA, 0x1CFB, 0x1CFC, 0x1CFD, 0x1CFE, 0x1CFF, 0x1D00, 0x1D01, +0x1D02, 0x1D03, 0x1D04, 0x1D05, 0x1D06, 0x1D07, 0x1D08, 0x1D09, +0x1D0A, 0x1D0B, 0x1D0C, 0x1D0D, 0x1D0E, 0x1D0F, 0x1D10, 0x1D11, +0x1D12, 0x1D13, 0x1D14, 0x1D15, 0x1D16, 0x1D17, 0x1D18, 0x1D19, +0x1D1A, 0x1D1B, 0x1D1C, 0x1D1D, 0x1D1E, 0x1D1F, 0x1D20, 0xA8BC, +0x1D22, 0x1D23, 0x1D24, 0x1D25, 0x1D26, 0x1D27, 0x1D28, 0x1D29, +0x1D2A, 0x1D2B, 0x1D2C, 0x1D2D, 0x1D2E, 0x1D2F, 0x1D30, 0x1D31, +0x1D32, 0x1D33, 0x1D34, 0x1D35, 0x1D36, 0x1D37, 0x1D38, 0x1D39, +0x1D3A, 0x1D3B, 0x1D3C, 0x1D3D, 0x1D3E, 0x1D3F, 0x1D40, 0x1D41, +0x1D42, 0x1D43, 0x1D44, 0x1D45, 0x1D46, 0x1D47, 0x1D48, 0x1D49, +0x1D4A, 0x1D4B, 0x1D4C, 0x1D4D, 0x1D4E, 0x1D4F, 0x1D50, 0x1D51, +0x1D52, 0x1D53, 0x1D54, 0x1D55, 0x1D56, 0x1D57, 0x1D58, 0x1D59, +0x1D5A, 0x1D5B, 0x1D5C, 0x1D5D, 0x1D5E, 0x1D5F, 0x1D60, 0x1D61, +0x1D62, 0x1D63, 0x1D64, 0x1D65, 0x1D66, 0x1D67, 0x1D68, 0x1D69, +0x1D6A, 0x1D6B, 0x1D6C, 0x1D6D, 0x1D6E, 0x1D6F, 0x1D70, 0x1D71, +0x1D72, 0x1D73, 0x1D74, 0x1D75, 0x1D76, 0x1D77, 0x1D78, 0x1D79, +0x1D7A, 0x1D7B, 0x1D7C, 0x1D7D, 0x1D7E, 0x1D7F, 0x1D80, 0x1D81, +0x1D82, 0x1D83, 0x1D84, 0x1D85, 0x1D86, 0x1D87, 0x1D88, 0x1D89, +0x1D8A, 0x1D8B, 0x1D8C, 0x1D8D, 0x1D8E, 0x1D8F, 0x1D90, 0x1D91, +0x1D92, 0x1D93, 0x1D94, 0x1D95, 0x1D96, 0x1D97, 0x1D98, 0x1D99, +0x1D9A, 0x1D9B, 0x1D9C, 0x1D9D, 0x1D9E, 0x1D9F, 0x1DA0, 0x1DA1, +0x1DA2, 0x1DA3, 0x1DA4, 0x1DA5, 0x1DA6, 0x1DA7, 0x1DA8, 0x1DA9, +0x1DAA, 0x1DAB, 0x1DAC, 0x1DAD, 0x1DAE, 0x1DAF, 0x1DB0, 0x1DB1, +0x1DB2, 0x1DB3, 0x1DB4, 0x1DB5, 0x1DB6, 0x1DB7, 0x1DB8, 0x1DB9, +0x1DBA, 0x1DBB, 0x1DBC, 0x1DBD, 0x1DBE, 0x1DBF, 0x1DC0, 0x1DC1, +0x1DC2, 0x1DC3, 0x1DC4, 0x1DC5, 0x1DC6, 0x1DC7, 0x1DC8, 0x1DC9, +0x1DCA, 0x1DCB, 0x1DCC, 0x1DCD, 0x1DCE, 0x1DCF, 0x1DD0, 0x1DD1, +0x1DD2, 0x1DD3, 0x1DD4, 0x1DD5, 0x1DD6, 0x1DD7, 0x1DD8, 0x1DD9, +0x1DDA, 0x1DDB, 0x1DDC, 0x1DDD, 0x1DDE, 0x1DDF, 0x1DE0, 0x1DE1, +0x1DE2, 0x1DE3, 0x1DE4, 0x1DE5, 0x1DE6, 0x1DE7, 0x1DE8, 0x1DE9, +0x1DEA, 0x1DEB, 0x1DEC, 0x1DED, 0x1DEE, 0x1DEF, 0x1DF0, 0x1DF1, +0x1DF2, 0x1DF3, 0x1DF4, 0x1DF5, 0x1DF6, 0x1DF7, 0x1DF8, 0x1DF9, +0x1DFA, 0x1DFB, 0x1DFC, 0x1DFD, 0x1DFE, 0x1DFF, 0x1E00, 0x1E01, +0x1E02, 0x1E03, 0x1E04, 0x1E05, 0x1E06, 0x1E07, 0x1E08, 0x1E09, +0x1E0A, 0x1E0B, 0x1E0C, 0x1E0D, 0x1E0E, 0x1E0F, 0x1E10, 0x1E11, +0x1E12, 0x1E13, 0x1E14, 0x1E15, 0x1E16, 0x1E17, 0x1E18, 0x1E19, +0x1E1A, 0x1E1B, 0x1E1C, 0x1E1D, 0x1E1E, 0x1E1F, 0x1E20, 0x1E21, +0x1E22, 0x1E23, 0x1E24, 0x1E25, 0x1E26, 0x1E27, 0x1E28, 0x1E29, +0x1E2A, 0x1E2B, 0x1E2C, 0x1E2D, 0x1E2E, 0x1E2F, 0x1E30, 0x1E31, +0x1E32, 0x1E33, 0x1E34, 0x1E35, 0x1E36, 0x1E37, 0x1E38, 0x1E39, +0x1E3A, 0x1E3B, 0x1E3C, 0x1E3D, 0x1E3E, 0x1E3F, 0x1E40, 0x1E41, +0x1E42, 0x1E43, 0x1E44, 0x1E45, 0x1E46, 0x1E47, 0x1E48, 0x1E49, +0x1E4A, 0x1E4B, 0x1E4C, 0x1E4D, 0x1E4E, 0x1E4F, 0x1E50, 0x1E51, +0x1E52, 0x1E53, 0x1E54, 0x1E55, 0x1E56, 0x1E57, 0x1E58, 0x1E59, +0x1E5A, 0x1E5B, 0x1E5C, 0x1E5D, 0x1E5E, 0x1E5F, 0x1E60, 0x1E61, +0x1E62, 0x1E63, 0x1E64, 0x1E65, 0x1E66, 0x1E67, 0x1E68, 0x1E69, +0x1E6A, 0x1E6B, 0x1E6C, 0x1E6D, 0x1E6E, 0x1E6F, 0x1E70, 0x1E71, +0x1E72, 0x1E73, 0x1E74, 0x1E75, 0x1E76, 0x1E77, 0x1E78, 0x1E79, +0x1E7A, 0x1E7B, 0x1E7C, 0x1E7D, 0x1E7E, 0x1E7F, 0x1E80, 0x1E81, +0x1E82, 0x1E83, 0x1E84, 0x1E85, 0x1E86, 0x1E87, 0x1E88, 0x1E89, +0x1E8A, 0x1E8B, 0x1E8C, 0x1E8D, 0x1E8E, 0x1E8F, 0x1E90, 0x1E91, +0x1E92, 0x1E93, 0x1E94, 0x1E95, 0x1E96, 0x1E97, 0x1E98, 0x1E99, +0x1E9A, 0x1E9B, 0x1E9C, 0x1E9D, 0x1E9E, 0x1E9F, 0x1EA0, 0x1EA1, +0x1EA2, 0x1EA3, 0x1EA4, 0x1EA5, 0x1EA6, 0x1EA7, 0x1EA8, 0x1EA9, +0x1EAA, 0x1EAB, 0x1EAC, 0x1EAD, 0x1EAE, 0x1EAF, 0x1EB0, 0x1EB1, +0x1EB2, 0x1EB3, 0x1EB4, 0x1EB5, 0x1EB6, 0x1EB7, 0x1EB8, 0x1EB9, +0x1EBA, 0x1EBB, 0x1EBC, 0x1EBD, 0x1EBE, 0x1EBF, 0x1EC0, 0x1EC1, +0x1EC2, 0x1EC3, 0x1EC4, 0x1EC5, 0x1EC6, 0x1EC7, 0x1EC8, 0x1EC9, +0x1ECA, 0x1ECB, 0x1ECC, 0x1ECD, 0x1ECE, 0x1ECF, 0x1ED0, 0x1ED1, +0x1ED2, 0x1ED3, 0x1ED4, 0x1ED5, 0x1ED6, 0x1ED7, 0x1ED8, 0x1ED9, +0x1EDA, 0x1EDB, 0x1EDC, 0x1EDD, 0x1EDE, 0x1EDF, 0x1EE0, 0x1EE1, +0x1EE2, 0x1EE3, 0x1EE4, 0x1EE5, 0x1EE6, 0x1EE7, 0x1EE8, 0x1EE9, +0x1EEA, 0x1EEB, 0x1EEC, 0x1EED, 0x1EEE, 0x1EEF, 0x1EF0, 0x1EF1, +0xA95C, 0x1EF2, 0x1EF3, 0xA843, 0xA1AA, 0xA844, 0xA1AC, 0x1EF4, +0xA1AE, 0xA1AF, 0x1EF5, 0x1EF6, 0xA1B0, 0xA1B1, 0x1EF7, 0x1EF8, +0x1EF9, 0x1EFA, 0x1EFB, 0x1EFC, 0x1EFD, 0xA845, 0xA1AD, 0x1EFE, +0x1EFF, 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, +0xA1EB, 0x1F07, 0xA1E4, 0xA1E5, 0x1F08, 0xA846, 0x1F09, 0x1F0A, +0x1F0B, 0x1F0C, 0x1F0D, 0xA1F9, 0x1F0E, 0x1F0F, 0x1F10, 0x1F11, +0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x1F16, 0x1F17, 0x1F18, 0x1F19, +0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F1E, 0x1F1F, 0x1F20, 0x1F21, +0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27, 0x1F28, 0x1F29, +0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F, 0x1F30, 0x1F31, +0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37, 0x1F38, 0x1F39, +0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F, 0x1F40, 0x1F41, +0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x1F46, 0x1F47, 0x1F48, 0x1F49, +0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F4E, 0x1F4F, 0x1F50, 0x1F51, +0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57, 0x1F58, 0x1F59, +0x1F5A, 0x1F5B, 0x1F5C, 0x1F5D, 0x1F5E, 0x1F5F, 0x1F60, 0x1F61, +0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67, 0x1F68, 0x1F69, +0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F, 0x1F70, 0x1F71, +0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77, 0x1F78, 0x1F79, +0x1F7A, 0x1F7B, 0x1F7C, 0x1F7D, 0xA2E3, 0x1F7E, 0x1F7F, 0x1F80, +0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87, 0x1F88, +0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F, 0x1F90, +0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97, 0x1F98, +0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F, 0x1FA0, +0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7, 0x1FA8, +0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF, 0x1FB0, +0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x1FB5, 0x1FB6, 0x1FB7, 0x1FB8, +0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBD, 0x1FBE, 0x1FBF, 0x1FC0, +0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x1FC5, 0x1FC6, 0x1FC7, 0x1FC8, +0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF, 0x1FD0, +0x1FD1, 0x1FD2, 0x1FD3, 0xA1E6, 0x1FD4, 0xA847, 0x1FD5, 0x1FD6, +0x1FD7, 0xA848, 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x1FDC, 0x1FDD, +0x1FDE, 0x1FDF, 0x1FE0, 0x1FE1, 0x1FE2, 0x1FE3, 0xA1ED, 0x1FE4, +0x1FE5, 0x1FE6, 0x1FE7, 0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, +0x1FED, 0xA959, 0x1FEE, 0x1FEF, 0x1FF0, 0x1FF1, 0x1FF2, 0x1FF3, +0x1FF4, 0x1FF5, 0x1FF6, 0x1FF7, 0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, +0x1FFC, 0x1FFD, 0x1FFE, 0x1FFF, 0x2000, 0x2001, 0x2002, 0x2003, +0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, +0x200C, 0x200D, 0x200E, 0x200F, 0x2010, 0x2011, 0x2012, 0x2013, +0x2014, 0x2015, 0x2016, 0x2017, 0x2018, 0x2019, 0x201A, 0x201B, +0x201C, 0x201D, 0x201E, 0x201F, 0x2020, 0x2021, 0x2022, 0x2023, +0x2024, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 0x202A, 0x202B, +0xA2F1, 0xA2F2, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, 0xA2F8, +0xA2F9, 0xA2FA, 0xA2FB, 0xA2FC, 0x202C, 0x202D, 0x202E, 0x202F, +0xA2A1, 0xA2A2, 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, +0xA2A9, 0xA2AA, 0x2030, 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, +0x2036, 0x2037, 0x2038, 0x2039, 0x203A, 0x203B, 0x203C, 0x203D, +0x203E, 0x203F, 0x2040, 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, +0xA1FB, 0xA1FC, 0xA1FA, 0xA1FD, 0x2046, 0x2047, 0xA849, 0xA84A, +0xA84B, 0xA84C, 0x2048, 0x2049, 0x204A, 0x204B, 0x204C, 0x204D, +0x204E, 0x204F, 0x2050, 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, +0x2056, 0x2057, 0x2058, 0x2059, 0x205A, 0x205B, 0x205C, 0x205D, +0x205E, 0x205F, 0x2060, 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, +0x2066, 0x2067, 0x2068, 0x2069, 0x206A, 0x206B, 0x206C, 0x206D, +0x206E, 0x206F, 0x2070, 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, +0x2076, 0x2077, 0x2078, 0x2079, 0x207A, 0x207B, 0x207C, 0x207D, +0x207E, 0x207F, 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, +0x2086, 0x2087, 0x2088, 0x2089, 0x208A, 0x208B, 0x208C, 0x208D, +0x208E, 0x208F, 0x2090, 0x2091, 0x2092, 0x2093, 0x2094, 0x2095, +0x2096, 0x2097, 0x2098, 0x2099, 0x209A, 0x209B, 0x209C, 0x209D, +0x209E, 0x209F, 0x20A0, 0x20A1, 0x20A2, 0x20A3, 0x20A4, 0x20A5, +0x20A6, 0x20A7, 0x20A8, 0x20A9, 0x20AA, 0x20AB, 0x20AC, 0x20AD, +0x20AE, 0x20AF, 0x20B0, 0x20B1, 0x20B2, 0x20B3, 0x20B4, 0x20B5, +0xA1CA, 0x20B6, 0x20B7, 0x20B8, 0x20B9, 0x20BA, 0x20BB, 0xA1C7, +0x20BC, 0xA1C6, 0x20BD, 0x20BE, 0x20BF, 0xA84D, 0x20C0, 0x20C1, +0x20C2, 0x20C3, 0xA1CC, 0x20C4, 0x20C5, 0xA1D8, 0xA1DE, 0xA84E, +0xA1CF, 0x20C6, 0x20C7, 0xA84F, 0x20C8, 0xA1CE, 0x20C9, 0xA1C4, +0xA1C5, 0xA1C9, 0xA1C8, 0xA1D2, 0x20CA, 0x20CB, 0xA1D3, 0x20CC, +0x20CD, 0x20CE, 0x20CF, 0x20D0, 0xA1E0, 0xA1DF, 0xA1C3, 0xA1CB, +0x20D1, 0x20D2, 0x20D3, 0x20D4, 0x20D5, 0xA1D7, 0x20D6, 0x20D7, +0x20D8, 0x20D9, 0x20DA, 0x20DB, 0x20DC, 0x20DD, 0x20DE, 0x20DF, +0xA1D6, 0x20E0, 0x20E1, 0x20E2, 0xA1D5, 0x20E3, 0x20E4, 0x20E5, +0x20E6, 0x20E7, 0xA850, 0x20E8, 0x20E9, 0x20EA, 0x20EB, 0x20EC, +0x20ED, 0x20EE, 0x20EF, 0x20F0, 0x20F1, 0x20F2, 0x20F3, 0x20F4, +0xA1D9, 0xA1D4, 0x20F5, 0x20F6, 0xA1DC, 0xA1DD, 0xA851, 0xA852, +0x20F7, 0x20F8, 0x20F9, 0x20FA, 0x20FB, 0x20FC, 0xA1DA, 0xA1DB, +0x20FD, 0x20FE, 0x20FF, 0x2100, 0x2101, 0x2102, 0x2103, 0x2104, +0x2105, 0x2106, 0x2107, 0x2108, 0x2109, 0x210A, 0x210B, 0x210C, +0x210D, 0x210E, 0x210F, 0x2110, 0x2111, 0x2112, 0x2113, 0x2114, +0x2115, 0x2116, 0x2117, 0x2118, 0x2119, 0x211A, 0x211B, 0x211C, +0x211D, 0x211E, 0x211F, 0x2120, 0x2121, 0xA892, 0x2122, 0x2123, +0x2124, 0xA1D1, 0x2125, 0x2126, 0x2127, 0x2128, 0x2129, 0x212A, +0x212B, 0x212C, 0x212D, 0x212E, 0x212F, 0xA1CD, 0x2130, 0x2131, +0x2132, 0x2133, 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, +0x213A, 0x213B, 0x213C, 0x213D, 0x213E, 0x213F, 0x2140, 0x2141, +0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147, 0x2148, 0xA853, +0x2149, 0x214A, 0x214B, 0x214C, 0x214D, 0x214E, 0x214F, 0x2150, +0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, +0x2159, 0x215A, 0x215B, 0x215C, 0x215D, 0x215E, 0x215F, 0x2160, +0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, +0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F, 0x2170, +0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, +0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F, 0x2180, +0x2181, 0x2182, 0x2183, 0x2184, 0x2185, 0x2186, 0x2187, 0x2188, +0x2189, 0x218A, 0x218B, 0x218C, 0x218D, 0x218E, 0x218F, 0x2190, +0x2191, 0x2192, 0x2193, 0x2194, 0x2195, 0x2196, 0x2197, 0x2198, +0x2199, 0x219A, 0xA1D0, 0x219B, 0x219C, 0x219D, 0x219E, 0x219F, +0x21A0, 0x21A1, 0x21A2, 0x21A3, 0x21A4, 0x21A5, 0x21A6, 0x21A7, +0x21A8, 0x21A9, 0x21AA, 0x21AB, 0x21AC, 0x21AD, 0x21AE, 0x21AF, +0x21B0, 0x21B1, 0x21B2, 0x21B3, 0x21B4, 0x21B5, 0x21B6, 0x21B7, +0x21B8, 0x21B9, 0x21BA, 0x21BB, 0x21BC, 0x21BD, 0x21BE, 0x21BF, +0x21C0, 0x21C1, 0x21C2, 0x21C3, 0x21C4, 0x21C5, 0x21C6, 0x21C7, +0x21C8, 0x21C9, 0x21CA, 0x21CB, 0x21CC, 0x21CD, 0x21CE, 0x21CF, +0x21D0, 0x21D1, 0x21D2, 0x21D3, 0x21D4, 0x21D5, 0x21D6, 0x21D7, +0x21D8, 0x21D9, 0x21DA, 0x21DB, 0x21DC, 0x21DD, 0x21DE, 0x21DF, +0x21E0, 0x21E1, 0x21E2, 0x21E3, 0x21E4, 0x21E5, 0x21E6, 0x21E7, +0x21E8, 0x21E9, 0x21EA, 0x21EB, 0x21EC, 0x21ED, 0x21EE, 0x21EF, +0x21F0, 0x21F1, 0x21F2, 0x21F3, 0x21F4, 0x21F5, 0x21F6, 0x21F7, +0x21F8, 0x21F9, 0x21FA, 0x21FB, 0x21FC, 0x21FD, 0x21FE, 0x21FF, +0x2200, 0x2201, 0x2202, 0x2203, 0x2204, 0x2205, 0x2206, 0x2207, +0x2208, 0x2209, 0x220A, 0x220B, 0x220C, 0x220D, 0x220E, 0x220F, +0x2210, 0x2211, 0x2212, 0x2213, 0x2214, 0x2215, 0x2216, 0x2217, +0x2218, 0x2219, 0x221A, 0x221B, 0x221C, 0x221D, 0x221E, 0x221F, +0x2220, 0x2221, 0x2222, 0x2223, 0x2224, 0x2225, 0x2226, 0x2227, +0x2228, 0x2229, 0x222A, 0x222B, 0x222C, 0x222D, 0x222E, 0x222F, +0x2230, 0x2231, 0x2232, 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, +0x2238, 0x2239, 0x223A, 0x223B, 0x223C, 0x223D, 0x223E, 0x223F, +0x2240, 0x2241, 0x2242, 0x2243, 0x2244, 0x2245, 0x2246, 0x2247, +0x2248, 0x2249, 0x224A, 0x224B, 0x224C, 0x224D, 0x224E, 0x224F, +0x2250, 0x2251, 0x2252, 0x2253, 0x2254, 0x2255, 0x2256, 0x2257, +0x2258, 0x2259, 0x225A, 0x225B, 0x225C, 0x225D, 0x225E, 0x225F, +0x2260, 0x2261, 0x2262, 0x2263, 0x2264, 0x2265, 0x2266, 0x2267, +0x2268, 0x2269, 0x226A, 0x226B, 0x226C, 0x226D, 0x226E, 0x226F, +0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, 0x2277, +0x2278, 0x2279, 0x227A, 0x227B, 0x227C, 0x227D, 0x227E, 0x227F, +0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285, 0x2286, 0x2287, +0x2288, 0x2289, 0x228A, 0x228B, 0x228C, 0x228D, 0x228E, 0x228F, +0x2290, 0x2291, 0x2292, 0x2293, 0x2294, 0x2295, 0x2296, 0x2297, +0x2298, 0x2299, 0x229A, 0x229B, 0x229C, 0x229D, 0x229E, 0x229F, +0x22A0, 0x22A1, 0x22A2, 0x22A3, 0x22A4, 0x22A5, 0x22A6, 0x22A7, +0x22A8, 0x22A9, 0x22AA, 0x22AB, 0x22AC, 0x22AD, 0x22AE, 0x22AF, +0x22B0, 0x22B1, 0x22B2, 0x22B3, 0x22B4, 0x22B5, 0x22B6, 0x22B7, +0x22B8, 0x22B9, 0x22BA, 0x22BB, 0x22BC, 0x22BD, 0x22BE, 0x22BF, +0x22C0, 0x22C1, 0x22C2, 0x22C3, 0x22C4, 0x22C5, 0x22C6, 0x22C7, +0x22C8, 0x22C9, 0x22CA, 0x22CB, 0x22CC, 0x22CD, 0x22CE, 0x22CF, +0x22D0, 0x22D1, 0x22D2, 0x22D3, 0x22D4, 0x22D5, 0x22D6, 0x22D7, +0x22D8, 0x22D9, 0x22DA, 0x22DB, 0x22DC, 0x22DD, 0x22DE, 0x22DF, +0x22E0, 0x22E1, 0x22E2, 0x22E3, 0x22E4, 0x22E5, 0x22E6, 0x22E7, +0xA2D9, 0xA2DA, 0xA2DB, 0xA2DC, 0xA2DD, 0xA2DE, 0xA2DF, 0xA2E0, +0xA2E1, 0xA2E2, 0x22E8, 0x22E9, 0x22EA, 0x22EB, 0x22EC, 0x22ED, +0x22EE, 0x22EF, 0x22F0, 0x22F1, 0xA2C5, 0xA2C6, 0xA2C7, 0xA2C8, +0xA2C9, 0xA2CA, 0xA2CB, 0xA2CC, 0xA2CD, 0xA2CE, 0xA2CF, 0xA2D0, +0xA2D1, 0xA2D2, 0xA2D3, 0xA2D4, 0xA2D5, 0xA2D6, 0xA2D7, 0xA2D8, +0xA2B1, 0xA2B2, 0xA2B3, 0xA2B4, 0xA2B5, 0xA2B6, 0xA2B7, 0xA2B8, +0xA2B9, 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2BE, 0xA2BF, 0xA2C0, +0xA2C1, 0xA2C2, 0xA2C3, 0xA2C4, 0x22F2, 0x22F3, 0x22F4, 0x22F5, +0x22F6, 0x22F7, 0x22F8, 0x22F9, 0x22FA, 0x22FB, 0x22FC, 0x22FD, +0x22FE, 0x22FF, 0x2300, 0x2301, 0x2302, 0x2303, 0x2304, 0x2305, +0x2306, 0x2307, 0x2308, 0x2309, 0x230A, 0x230B, 0x230C, 0x230D, +0x230E, 0x230F, 0x2310, 0x2311, 0x2312, 0x2313, 0x2314, 0x2315, +0x2316, 0x2317, 0x2318, 0x2319, 0x231A, 0x231B, 0x231C, 0x231D, +0x231E, 0x231F, 0x2320, 0x2321, 0x2322, 0x2323, 0x2324, 0x2325, +0x2326, 0x2327, 0x2328, 0x2329, 0x232A, 0x232B, 0x232C, 0x232D, +0x232E, 0x232F, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, +0x2336, 0x2337, 0x2338, 0x2339, 0x233A, 0x233B, 0x233C, 0x233D, +0x233E, 0x233F, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, +0x2346, 0x2347, 0x2348, 0x2349, 0x234A, 0x234B, 0x234C, 0x234D, +0x234E, 0x234F, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, +0xA9A4, 0xA9A5, 0xA9A6, 0xA9A7, 0xA9A8, 0xA9A9, 0xA9AA, 0xA9AB, +0xA9AC, 0xA9AD, 0xA9AE, 0xA9AF, 0xA9B0, 0xA9B1, 0xA9B2, 0xA9B3, +0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7, 0xA9B8, 0xA9B9, 0xA9BA, 0xA9BB, +0xA9BC, 0xA9BD, 0xA9BE, 0xA9BF, 0xA9C0, 0xA9C1, 0xA9C2, 0xA9C3, +0xA9C4, 0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, 0xA9C9, 0xA9CA, 0xA9CB, +0xA9CC, 0xA9CD, 0xA9CE, 0xA9CF, 0xA9D0, 0xA9D1, 0xA9D2, 0xA9D3, +0xA9D4, 0xA9D5, 0xA9D6, 0xA9D7, 0xA9D8, 0xA9D9, 0xA9DA, 0xA9DB, +0xA9DC, 0xA9DD, 0xA9DE, 0xA9DF, 0xA9E0, 0xA9E1, 0xA9E2, 0xA9E3, +0xA9E4, 0xA9E5, 0xA9E6, 0xA9E7, 0xA9E8, 0xA9E9, 0xA9EA, 0xA9EB, +0xA9EC, 0xA9ED, 0xA9EE, 0xA9EF, 0x2356, 0x2357, 0x2358, 0x2359, +0xA854, 0xA855, 0xA856, 0xA857, 0xA858, 0xA859, 0xA85A, 0xA85B, +0xA85C, 0xA85D, 0xA85E, 0xA85F, 0xA860, 0xA861, 0xA862, 0xA863, +0xA864, 0xA865, 0xA866, 0xA867, 0xA868, 0xA869, 0xA86A, 0xA86B, +0xA86C, 0xA86D, 0xA86E, 0xA86F, 0xA870, 0xA871, 0xA872, 0xA873, +0xA874, 0xA875, 0xA876, 0xA877, 0x235A, 0x235B, 0x235C, 0x235D, +0x235E, 0x235F, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, +0x2366, 0xA878, 0xA879, 0xA87A, 0xA87B, 0xA87C, 0xA87D, 0xA87E, +0xA880, 0xA881, 0xA882, 0xA883, 0xA884, 0xA885, 0xA886, 0xA887, +0x2367, 0x2368, 0x2369, 0xA888, 0xA889, 0xA88A, 0x236A, 0x236B, +0x236C, 0x236D, 0x236E, 0x236F, 0x2370, 0x2371, 0x2372, 0x2373, +0xA1F6, 0xA1F5, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, +0x237A, 0x237B, 0x237C, 0x237D, 0x237E, 0x237F, 0x2380, 0x2381, +0x2382, 0x2383, 0xA1F8, 0xA1F7, 0x2384, 0x2385, 0x2386, 0x2387, +0x2388, 0x2389, 0x238A, 0x238B, 0xA88B, 0xA88C, 0x238C, 0x238D, +0x238E, 0x238F, 0x2390, 0x2391, 0x2392, 0x2393, 0xA1F4, 0xA1F3, +0x2394, 0x2395, 0x2396, 0xA1F0, 0x2397, 0x2398, 0xA1F2, 0xA1F1, +0x2399, 0x239A, 0x239B, 0x239C, 0x239D, 0x239E, 0x239F, 0x23A0, +0x23A1, 0x23A2, 0x23A3, 0x23A4, 0x23A5, 0x23A6, 0x23A7, 0x23A8, +0x23A9, 0x23AA, 0xA88D, 0xA88E, 0xA88F, 0xA890, 0x23AB, 0x23AC, +0x23AD, 0x23AE, 0x23AF, 0x23B0, 0x23B1, 0x23B2, 0x23B3, 0x23B4, +0x23B5, 0x23B6, 0x23B7, 0x23B8, 0x23B9, 0x23BA, 0x23BB, 0x23BC, +0x23BD, 0x23BE, 0x23BF, 0x23C0, 0x23C1, 0x23C2, 0x23C3, 0x23C4, +0x23C5, 0x23C6, 0x23C7, 0x23C8, 0x23C9, 0xA1EF, 0xA1EE, 0x23CA, +0x23CB, 0xA891, 0x23CC, 0x23CD, 0x23CE, 0x23CF, 0x23D0, 0x23D1, +0x23D2, 0x23D3, 0x23D4, 0x23D5, 0x23D6, 0x23D7, 0x23D8, 0x23D9, +0x23DA, 0x23DB, 0x23DC, 0x23DD, 0x23DE, 0x23DF, 0x23E0, 0x23E1, +0x23E2, 0x23E3, 0x23E4, 0x23E5, 0x23E6, 0x23E7, 0x23E8, 0x23E9, +0x23EA, 0x23EB, 0x23EC, 0x23ED, 0x23EE, 0x23EF, 0x23F0, 0x23F1, +0x23F2, 0x23F3, 0x23F4, 0x23F5, 0x23F6, 0x23F7, 0x23F8, 0x23F9, +0x23FA, 0x23FB, 0x23FC, 0x23FD, 0x23FE, 0x23FF, 0x2400, 0x2401, +0xA1E2, 0x2402, 0xA1E1, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407, +0x2408, 0x2409, 0x240A, 0x240B, 0x240C, 0x240D, 0x240E, 0x240F, +0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417, +0x2418, 0x2419, 0x241A, 0x241B, 0x241C, 0x241D, 0x241E, 0x241F, +0x2420, 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, +0x2428, 0x2429, 0x242A, 0x242B, 0x242C, 0x242D, 0x242E, 0x242F, +0x2430, 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, +0x2438, 0x2439, 0x243A, 0x243B, 0x243C, 0x243D, 0x243E, 0x243F, +0x2440, 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, +0x2448, 0x2449, 0x244A, 0x244B, 0x244C, 0x244D, 0x244E, 0x244F, +0x2450, 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, +0x2458, 0x2459, 0x245A, 0x245B, 0x245C, 0x245D, 0x245E, 0x245F, +0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, +0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, +0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x2477, +0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, 0x247E, 0x247F, +0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487, +0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, 0x248F, +0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497, +0x2498, 0x2499, 0x249A, 0x249B, 0x249C, 0x249D, 0x249E, 0x249F, +0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, 0x24A7, +0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, 0x24AF, +0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x24B6, 0x24B7, +0x24B8, 0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD, 0x24BE, 0x24BF, +0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5, 0x24C6, 0x24C7, +0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC, 0x24CD, 0x24CE, 0x24CF, +0x24D0, 0x24D1, 0x24D2, 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7, +0x24D8, 0x24D9, 0x24DA, 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF, +0x24E0, 0x24E1, 0x24E2, 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7, +0x24E8, 0x24E9, 0x24EA, 0x24EB, 0x24EC, 0x24ED, 0x24EE, 0x24EF, +0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x24F5, 0x24F6, 0x24F7, +0x24F8, 0x24F9, 0x24FA, 0x24FB, 0x24FC, 0x24FD, 0x24FE, 0x24FF, +0x2500, 0x2501, 0x2502, 0x2503, 0x2504, 0x2505, 0x2506, 0x2507, +0x2508, 0x2509, 0x250A, 0x250B, 0x250C, 0x250D, 0x250E, 0x250F, +0x2510, 0x2511, 0x2512, 0x2513, 0x2514, 0x2515, 0x2516, 0x2517, +0x2518, 0x2519, 0x251A, 0x251B, 0x251C, 0x251D, 0x251E, 0x251F, +0x2520, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, +0x2528, 0x2529, 0x252A, 0x252B, 0x252C, 0x252D, 0x252E, 0x252F, +0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, +0x2538, 0x2539, 0x253A, 0x253B, 0x253C, 0x253D, 0x253E, 0x253F, +0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, +0x2548, 0x2549, 0x254A, 0x254B, 0x254C, 0x254D, 0x254E, 0x254F, +0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, +0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, 0x255F, +0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, +0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x256D, 0x256E, 0x256F, +0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2577, +0x2578, 0x2579, 0x257A, 0x257B, 0x257C, 0x257D, 0x257E, 0x257F, +0x2580, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, +0x2588, 0x2589, 0x258A, 0x258B, 0x258C, 0x258D, 0x258E, 0x258F, +0x2590, 0x2591, 0x2592, 0x2593, 0x2594, 0x2595, 0x2596, 0x2597, +0x2598, 0x2599, 0x259A, 0x259B, 0x259C, 0x259D, 0x259E, 0x259F, +0x25A0, 0x25A1, 0x25A2, 0x25A3, 0x25A4, 0x25A5, 0x25A6, 0x25A7, +0x25A8, 0x25A9, 0x25AA, 0x25AB, 0x25AC, 0x25AD, 0x25AE, 0x25AF, +0x25B0, 0x25B1, 0x25B2, 0x25B3, 0x25B4, 0x25B5, 0x25B6, 0x25B7, +0x25B8, 0x25B9, 0x25BA, 0x25BB, 0x25BC, 0x25BD, 0x25BE, 0x25BF, +0x25C0, 0x25C1, 0x25C2, 0x25C3, 0x25C4, 0x25C5, 0x25C6, 0x25C7, +0x25C8, 0x25C9, 0x25CA, 0x25CB, 0x25CC, 0x25CD, 0x25CE, 0x25CF, +0x25D0, 0x25D1, 0x25D2, 0x25D3, 0x25D4, 0x25D5, 0x25D6, 0x25D7, +0x25D8, 0x25D9, 0x25DA, 0x25DB, 0x25DC, 0x25DD, 0x25DE, 0x25DF, +0x25E0, 0x25E1, 0x25E2, 0x25E3, 0x25E4, 0x25E5, 0x25E6, 0x25E7, +0x25E8, 0x25E9, 0x25EA, 0x25EB, 0x25EC, 0x25ED, 0x25EE, 0x25EF, +0x25F0, 0x25F1, 0x25F2, 0x25F3, 0x25F4, 0x25F5, 0x25F6, 0x25F7, +0x25F8, 0x25F9, 0x25FA, 0x25FB, 0x25FC, 0x25FD, 0x25FE, 0x25FF, +0x2600, 0x2601, 0x2602, 0x2603, 0x2604, 0x2605, 0x2606, 0x2607, +0x2608, 0x2609, 0x260A, 0x260B, 0x260C, 0x260D, 0x260E, 0x260F, +0x2610, 0x2611, 0x2612, 0x2613, 0x2614, 0x2615, 0x2616, 0x2617, +0x2618, 0x2619, 0x261A, 0x261B, 0x261C, 0x261D, 0x261E, 0x261F, +0x2620, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, 0x2626, 0x2627, +0x2628, 0x2629, 0x262A, 0x262B, 0x262C, 0x262D, 0x262E, 0x262F, +0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, 0x2637, +0x2638, 0x2639, 0x263A, 0x263B, 0x263C, 0x263D, 0x263E, 0x263F, +0x2640, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, 0x2646, 0x2647, +0x2648, 0x2649, 0x264A, 0x264B, 0x264C, 0x264D, 0x264E, 0x264F, +0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655, 0x2656, 0x2657, +0x2658, 0x2659, 0x265A, 0x265B, 0x265C, 0x265D, 0x265E, 0x265F, +0x2660, 0x2661, 0x2662, 0x2663, 0x2664, 0x2665, 0x2666, 0x2667, +0x2668, 0x2669, 0x266A, 0x266B, 0x266C, 0x266D, 0x266E, 0x266F, +0x2670, 0x2671, 0x2672, 0x2673, 0x2674, 0x2675, 0x2676, 0x2677, +0x2678, 0x2679, 0x267A, 0x267B, 0x267C, 0x267D, 0x267E, 0x267F, +0x2680, 0x2681, 0x2682, 0x2683, 0x2684, 0x2685, 0x2686, 0x2687, +0x2688, 0x2689, 0x268A, 0x268B, 0x268C, 0x268D, 0x268E, 0x268F, +0x2690, 0x2691, 0x2692, 0x2693, 0x2694, 0x2695, 0x2696, 0x2697, +0x2698, 0x2699, 0x269A, 0x269B, 0x269C, 0x269D, 0x269E, 0x269F, +0x26A0, 0x26A1, 0x26A2, 0x26A3, 0x26A4, 0x26A5, 0x26A6, 0x26A7, +0x26A8, 0x26A9, 0x26AA, 0x26AB, 0x26AC, 0x26AD, 0x26AE, 0x26AF, +0x26B0, 0x26B1, 0x26B2, 0x26B3, 0x26B4, 0x26B5, 0x26B6, 0x26B7, +0x26B8, 0x26B9, 0x26BA, 0x26BB, 0x26BC, 0x26BD, 0x26BE, 0x26BF, +0x26C0, 0x26C1, 0x26C2, 0x26C3, 0x26C4, 0x26C5, 0x26C6, 0x26C7, +0x26C8, 0x26C9, 0x26CA, 0x26CB, 0x26CC, 0x26CD, 0x26CE, 0x26CF, +0x26D0, 0x26D1, 0x26D2, 0x26D3, 0x26D4, 0x26D5, 0x26D6, 0x26D7, +0x26D8, 0x26D9, 0x26DA, 0x26DB, 0x26DC, 0x26DD, 0x26DE, 0x26DF, +0x26E0, 0x26E1, 0x26E2, 0x26E3, 0x26E4, 0x26E5, 0x26E6, 0x26E7, +0x26E8, 0x26E9, 0x26EA, 0x26EB, 0x26EC, 0x26ED, 0x26EE, 0x26EF, +0x26F0, 0x26F1, 0x26F2, 0x26F3, 0x26F4, 0x26F5, 0x26F6, 0x26F7, +0x26F8, 0x26F9, 0x26FA, 0x26FB, 0x26FC, 0x26FD, 0x26FE, 0x26FF, +0x2700, 0x2701, 0x2702, 0x2703, 0x2704, 0x2705, 0x2706, 0x2707, +0x2708, 0x2709, 0x270A, 0x270B, 0x270C, 0x270D, 0x270E, 0x270F, +0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, +0x2718, 0x2719, 0x271A, 0x271B, 0x271C, 0x271D, 0x271E, 0x271F, +0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, +0x2728, 0x2729, 0x272A, 0x272B, 0x272C, 0x272D, 0x272E, 0x272F, +0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, +0x2738, 0x2739, 0x273A, 0x273B, 0x273C, 0x273D, 0x273E, 0x273F, +0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, +0x2748, 0x2749, 0x274A, 0x274B, 0x274C, 0x274D, 0x274E, 0x274F, +0x2750, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2757, +0x2758, 0x2759, 0x275A, 0x275B, 0x275C, 0x275D, 0x275E, 0x275F, +0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, +0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D, 0x276E, 0x276F, +0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776, 0x2777, +0x2778, 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0x277F, +0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, +0x2788, 0x2789, 0x278A, 0x278B, 0x278C, 0x278D, 0x278E, 0x278F, +0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2795, 0x2796, 0x2797, +0x2798, 0x2799, 0x279A, 0x279B, 0x279C, 0x279D, 0x279E, 0x279F, +0x27A0, 0x27A1, 0x27A2, 0x27A3, 0x27A4, 0x27A5, 0x27A6, 0x27A7, +0x27A8, 0x27A9, 0x27AA, 0x27AB, 0x27AC, 0x27AD, 0x27AE, 0x27AF, +0x27B0, 0x27B1, 0x27B2, 0x27B3, 0x27B4, 0x27B5, 0x27B6, 0x27B7, +0x27B8, 0x27B9, 0x27BA, 0x27BB, 0x27BC, 0x27BD, 0x27BE, 0x27BF, +0x27C0, 0x27C1, 0x27C2, 0x27C3, 0x27C4, 0x27C5, 0x27C6, 0x27C7, +0x27C8, 0x27C9, 0x27CA, 0x27CB, 0x27CC, 0x27CD, 0x27CE, 0x27CF, +0x27D0, 0x27D1, 0x27D2, 0x27D3, 0x27D4, 0x27D5, 0x27D6, 0x27D7, +0x27D8, 0x27D9, 0x27DA, 0x27DB, 0x27DC, 0x27DD, 0x27DE, 0x27DF, +0x27E0, 0x27E1, 0x27E2, 0x27E3, 0x27E4, 0x27E5, 0x27E6, 0x27E7, +0x27E8, 0x27E9, 0x27EA, 0x27EB, 0x27EC, 0x27ED, 0x27EE, 0x27EF, +0x27F0, 0x27F1, 0x27F2, 0x27F3, 0x27F4, 0x27F5, 0x27F6, 0x27F7, +0x27F8, 0x27F9, 0x27FA, 0x27FB, 0x27FC, 0x27FD, 0x27FE, 0x27FF, +0x2800, 0x2801, 0x2802, 0x2803, 0x2804, 0x2805, 0x2806, 0x2807, +0x2808, 0x2809, 0x280A, 0x280B, 0x280C, 0x280D, 0x280E, 0x280F, +0x2810, 0x2811, 0x2812, 0x2813, 0x2814, 0x2815, 0x2816, 0x2817, +0x2818, 0x2819, 0x281A, 0x281B, 0x281C, 0x281D, 0x281E, 0x281F, +0x2820, 0x2821, 0x2822, 0x2823, 0x2824, 0x2825, 0x2826, 0x2827, +0x2828, 0x2829, 0x282A, 0x282B, 0x282C, 0x282D, 0x282E, 0x282F, +0x2830, 0x2831, 0x2832, 0x2833, 0x2834, 0x2835, 0x2836, 0x2837, +0x2838, 0x2839, 0x283A, 0x283B, 0x283C, 0x283D, 0x283E, 0x283F, +0x2840, 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, 0x2846, 0x2847, +0x2848, 0x2849, 0x284A, 0x284B, 0x284C, 0x284D, 0x284E, 0x284F, +0x2850, 0x2851, 0x2852, 0x2853, 0x2854, 0x2855, 0x2856, 0x2857, +0x2858, 0x2859, 0x285A, 0x285B, 0x285C, 0x285D, 0x285E, 0x285F, +0x2860, 0x2861, 0x2862, 0x2863, 0x2864, 0x2865, 0x2866, 0x2867, +0x2868, 0x2869, 0x286A, 0x286B, 0x286C, 0x286D, 0x286E, 0x286F, +0x2870, 0x2871, 0x2872, 0x2873, 0x2874, 0x2875, 0x2876, 0x2877, +0x2878, 0x2879, 0x287A, 0x287B, 0x287C, 0x287D, 0x287E, 0x287F, +0x2880, 0x2881, 0x2882, 0x2883, 0x2884, 0x2885, 0x2886, 0x2887, +0x2888, 0x2889, 0x288A, 0x288B, 0x288C, 0x288D, 0x288E, 0x288F, +0x2890, 0x2891, 0x2892, 0x2893, 0x2894, 0x2895, 0x2896, 0x2897, +0x2898, 0x2899, 0x289A, 0x289B, 0x289C, 0x289D, 0x289E, 0x289F, +0x28A0, 0x28A1, 0x28A2, 0x28A3, 0x28A4, 0x28A5, 0x28A6, 0x28A7, +0x28A8, 0x28A9, 0x28AA, 0x28AB, 0x28AC, 0x28AD, 0x28AE, 0x28AF, +0x28B0, 0x28B1, 0x28B2, 0x28B3, 0x28B4, 0x28B5, 0x28B6, 0x28B7, +0x28B8, 0x28B9, 0x28BA, 0x28BB, 0x28BC, 0x28BD, 0x28BE, 0x28BF, +0x28C0, 0x28C1, 0x28C2, 0x28C3, 0x28C4, 0x28C5, 0x28C6, 0x28C7, +0x28C8, 0x28C9, 0x28CA, 0x28CB, 0x28CC, 0x28CD, 0x28CE, 0x28CF, +0x28D0, 0x28D1, 0x28D2, 0x28D3, 0x28D4, 0x28D5, 0x28D6, 0x28D7, +0x28D8, 0x28D9, 0x28DA, 0x28DB, 0x28DC, 0x28DD, 0x28DE, 0x28DF, +0x28E0, 0x28E1, 0x28E2, 0x28E3, 0x28E4, 0x28E5, 0x28E6, 0x28E7, +0x28E8, 0x28E9, 0x28EA, 0x28EB, 0x28EC, 0x28ED, 0x28EE, 0x28EF, +0x28F0, 0x28F1, 0x28F2, 0x28F3, 0x28F4, 0x28F5, 0x28F6, 0x28F7, +0x28F8, 0x28F9, 0x28FA, 0x28FB, 0x28FC, 0x28FD, 0x28FE, 0x28FF, +0x2900, 0x2901, 0x2902, 0x2903, 0x2904, 0x2905, 0x2906, 0x2907, +0x2908, 0x2909, 0x290A, 0x290B, 0x290C, 0x290D, 0x290E, 0x290F, +0x2910, 0x2911, 0x2912, 0x2913, 0x2914, 0x2915, 0x2916, 0x2917, +0x2918, 0x2919, 0x291A, 0x291B, 0x291C, 0x291D, 0x291E, 0x291F, +0x2920, 0x2921, 0x2922, 0x2923, 0x2924, 0x2925, 0x2926, 0x2927, +0x2928, 0x2929, 0x292A, 0x292B, 0x292C, 0x292D, 0x292E, 0x292F, +0x2930, 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, +0x2938, 0x2939, 0x293A, 0x293B, 0x293C, 0x293D, 0x293E, 0x293F, +0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, +0x2948, 0x2949, 0x294A, 0x294B, 0x294C, 0x294D, 0x294E, 0x294F, +0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, +0x2958, 0x2959, 0x295A, 0x295B, 0x295C, 0x295D, 0x295E, 0x295F, +0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, +0x2968, 0x2969, 0x296A, 0x296B, 0x296C, 0x296D, 0x296E, 0x296F, +0x2970, 0x2971, 0x2972, 0x2973, 0x2974, 0x2975, 0x2976, 0x2977, +0x2978, 0x2979, 0x297A, 0x297B, 0x297C, 0x297D, 0x297E, 0x297F, +0x2980, 0x2981, 0x2982, 0x2983, 0x2984, 0x2985, 0x2986, 0x2987, +0x2988, 0x2989, 0x298A, 0x298B, 0x298C, 0x298D, 0x298E, 0x298F, +0x2990, 0x2991, 0x2992, 0x2993, 0x2994, 0x2995, 0x2996, 0x2997, +0x2998, 0x2999, 0x299A, 0x299B, 0x299C, 0x299D, 0x299E, 0x299F, +0x29A0, 0x29A1, 0x29A2, 0x29A3, 0x29A4, 0x29A5, 0x29A6, 0x29A7, +0x29A8, 0x29A9, 0x29AA, 0x29AB, 0x29AC, 0x29AD, 0x29AE, 0x29AF, +0x29B0, 0x29B1, 0x29B2, 0x29B3, 0x29B4, 0x29B5, 0x29B6, 0x29B7, +0x29B8, 0x29B9, 0x29BA, 0x29BB, 0x29BC, 0x29BD, 0x29BE, 0x29BF, +0x29C0, 0x29C1, 0x29C2, 0x29C3, 0x29C4, 0x29C5, 0x29C6, 0x29C7, +0x29C8, 0x29C9, 0x29CA, 0x29CB, 0x29CC, 0x29CD, 0x29CE, 0x29CF, +0x29D0, 0x29D1, 0x29D2, 0x29D3, 0x29D4, 0x29D5, 0x29D6, 0x29D7, +0x29D8, 0x29D9, 0x29DA, 0x29DB, 0x29DC, 0x29DD, 0x29DE, 0x29DF, +0x29E0, 0x29E1, 0x29E2, 0x29E3, 0x29E4, 0x29E5, 0x29E6, 0x29E7, +0x29E8, 0x29E9, 0x29EA, 0x29EB, 0x29EC, 0x29ED, 0x29EE, 0x29EF, +0x29F0, 0x29F1, 0x29F2, 0x29F3, 0x29F4, 0x29F5, 0x29F6, 0x29F7, +0x29F8, 0x29F9, 0x29FA, 0x29FB, 0x29FC, 0x29FD, 0x29FE, 0x29FF, +0x2A00, 0x2A01, 0x2A02, 0x2A03, 0x2A04, 0x2A05, 0x2A06, 0x2A07, +0x2A08, 0x2A09, 0x2A0A, 0x2A0B, 0x2A0C, 0x2A0D, 0x2A0E, 0x2A0F, +0x2A10, 0x2A11, 0x2A12, 0x2A13, 0x2A14, 0x2A15, 0x2A16, 0x2A17, +0x2A18, 0x2A19, 0x2A1A, 0x2A1B, 0x2A1C, 0x2A1D, 0x2A1E, 0x2A1F, +0x2A20, 0x2A21, 0x2A22, 0x2A23, 0x2A24, 0x2A25, 0x2A26, 0x2A27, +0x2A28, 0x2A29, 0x2A2A, 0x2A2B, 0x2A2C, 0x2A2D, 0x2A2E, 0x2A2F, +0x2A30, 0x2A31, 0x2A32, 0x2A33, 0x2A34, 0x2A35, 0x2A36, 0x2A37, +0x2A38, 0x2A39, 0x2A3A, 0x2A3B, 0x2A3C, 0x2A3D, 0x2A3E, 0x2A3F, +0x2A40, 0x2A41, 0x2A42, 0x2A43, 0x2A44, 0x2A45, 0x2A46, 0x2A47, +0x2A48, 0x2A49, 0x2A4A, 0x2A4B, 0x2A4C, 0x2A4D, 0x2A4E, 0x2A4F, +0x2A50, 0x2A51, 0x2A52, 0x2A53, 0x2A54, 0x2A55, 0x2A56, 0x2A57, +0x2A58, 0x2A59, 0x2A5A, 0x2A5B, 0x2A5C, 0x2A5D, 0x2A5E, 0x2A5F, +0x2A60, 0x2A61, 0x2A62, 0x2A63, 0x2A64, 0x2A65, 0x2A66, 0x2A67, +0x2A68, 0x2A69, 0x2A6A, 0x2A6B, 0x2A6C, 0x2A6D, 0x2A6E, 0x2A6F, +0x2A70, 0x2A71, 0x2A72, 0x2A73, 0x2A74, 0x2A75, 0x2A76, 0x2A77, +0x2A78, 0x2A79, 0x2A7A, 0x2A7B, 0x2A7C, 0x2A7D, 0x2A7E, 0x2A7F, +0x2A80, 0x2A81, 0x2A82, 0x2A83, 0x2A84, 0x2A85, 0x2A86, 0x2A87, +0x2A88, 0x2A89, 0x2A8A, 0x2A8B, 0x2A8C, 0x2A8D, 0x2A8E, 0x2A8F, +0x2A90, 0x2A91, 0x2A92, 0x2A93, 0x2A94, 0x2A95, 0x2A96, 0x2A97, +0x2A98, 0x2A99, 0x2A9A, 0x2A9B, 0x2A9C, 0x2A9D, 0x2A9E, 0x2A9F, +0x2AA0, 0x2AA1, 0x2AA2, 0x2AA3, 0x2AA4, 0x2AA5, 0x2AA6, 0x2AA7, +0x2AA8, 0x2AA9, 0x2AAA, 0x2AAB, 0x2AAC, 0x2AAD, 0x2AAE, 0x2AAF, +0x2AB0, 0x2AB1, 0x2AB2, 0x2AB3, 0x2AB4, 0x2AB5, 0x2AB6, 0x2AB7, +0x2AB8, 0x2AB9, 0x2ABA, 0x2ABB, 0x2ABC, 0x2ABD, 0x2ABE, 0x2ABF, +0x2AC0, 0x2AC1, 0x2AC2, 0x2AC3, 0x2AC4, 0x2AC5, 0x2AC6, 0x2AC7, +0x2AC8, 0x2AC9, 0x2ACA, 0x2ACB, 0x2ACC, 0x2ACD, 0x2ACE, 0x2ACF, +0x2AD0, 0x2AD1, 0x2AD2, 0x2AD3, 0x2AD4, 0x2AD5, 0x2AD6, 0x2AD7, +0x2AD8, 0x2AD9, 0x2ADA, 0x2ADB, 0x2ADC, 0x2ADD, 0x2ADE, 0x2ADF, +0x2AE0, 0x2AE1, 0x2AE2, 0x2AE3, 0x2AE4, 0x2AE5, 0x2AE6, 0x2AE7, +0x2AE8, 0x2AE9, 0x2AEA, 0x2AEB, 0x2AEC, 0x2AED, 0x2AEE, 0x2AEF, +0x2AF0, 0x2AF1, 0x2AF2, 0x2AF3, 0x2AF4, 0x2AF5, 0x2AF6, 0x2AF7, +0x2AF8, 0x2AF9, 0x2AFA, 0x2AFB, 0x2AFC, 0x2AFD, 0x2AFE, 0x2AFF, +0x2B00, 0x2B01, 0x2B02, 0x2B03, 0x2B04, 0x2B05, 0x2B06, 0x2B07, +0x2B08, 0x2B09, 0x2B0A, 0x2B0B, 0x2B0C, 0x2B0D, 0x2B0E, 0x2B0F, +0x2B10, 0x2B11, 0x2B12, 0x2B13, 0x2B14, 0x2B15, 0x2B16, 0x2B17, +0x2B18, 0x2B19, 0x2B1A, 0x2B1B, 0x2B1C, 0x2B1D, 0x2B1E, 0x2B1F, +0x2B20, 0x2B21, 0x2B22, 0x2B23, 0x2B24, 0x2B25, 0x2B26, 0x2B27, +0x2B28, 0x2B29, 0x2B2A, 0x2B2B, 0x2B2C, 0x2B2D, 0x2B2E, 0x2B2F, +0x2B30, 0x2B31, 0x2B32, 0x2B33, 0x2B34, 0x2B35, 0x2B36, 0x2B37, +0x2B38, 0x2B39, 0x2B3A, 0x2B3B, 0x2B3C, 0x2B3D, 0x2B3E, 0x2B3F, +0x2B40, 0x2B41, 0x2B42, 0x2B43, 0x2B44, 0x2B45, 0x2B46, 0x2B47, +0x2B48, 0x2B49, 0x2B4A, 0x2B4B, 0x2B4C, 0x2B4D, 0x2B4E, 0x2B4F, +0x2B50, 0x2B51, 0x2B52, 0x2B53, 0x2B54, 0x2B55, 0x2B56, 0x2B57, +0x2B58, 0x2B59, 0x2B5A, 0x2B5B, 0x2B5C, 0x2B5D, 0x2B5E, 0x2B5F, +0x2B60, 0x2B61, 0x2B62, 0x2B63, 0x2B64, 0x2B65, 0x2B66, 0x2B67, +0x2B68, 0x2B69, 0x2B6A, 0x2B6B, 0x2B6C, 0x2B6D, 0x2B6E, 0x2B6F, +0x2B70, 0x2B71, 0x2B72, 0x2B73, 0x2B74, 0x2B75, 0x2B76, 0x2B77, +0x2B78, 0x2B79, 0x2B7A, 0x2B7B, 0x2B7C, 0x2B7D, 0x2B7E, 0x2B7F, +0x2B80, 0x2B81, 0x2B82, 0x2B83, 0x2B84, 0x2B85, 0x2B86, 0x2B87, +0x2B88, 0x2B89, 0x2B8A, 0x2B8B, 0x2B8C, 0x2B8D, 0x2B8E, 0x2B8F, +0x2B90, 0x2B91, 0x2B92, 0x2B93, 0x2B94, 0x2B95, 0x2B96, 0x2B97, +0x2B98, 0x2B99, 0x2B9A, 0x2B9B, 0x2B9C, 0x2B9D, 0x2B9E, 0x2B9F, +0x2BA0, 0x2BA1, 0x2BA2, 0x2BA3, 0x2BA4, 0x2BA5, 0x2BA6, 0x2BA7, +0x2BA8, 0x2BA9, 0x2BAA, 0x2BAB, 0x2BAC, 0x2BAD, 0x2BAE, 0x2BAF, +0x2BB0, 0x2BB1, 0x2BB2, 0x2BB3, 0x2BB4, 0x2BB5, 0x2BB6, 0x2BB7, +0x2BB8, 0x2BB9, 0x2BBA, 0x2BBB, 0x2BBC, 0x2BBD, 0x2BBE, 0x2BBF, +0x2BC0, 0x2BC1, 0x2BC2, 0x2BC3, 0x2BC4, 0x2BC5, 0x2BC6, 0x2BC7, +0x2BC8, 0x2BC9, 0x2BCA, 0x2BCB, 0x2BCC, 0x2BCD, 0x2BCE, 0x2BCF, +0x2BD0, 0x2BD1, 0x2BD2, 0x2BD3, 0x2BD4, 0x2BD5, 0x2BD6, 0x2BD7, +0x2BD8, 0x2BD9, 0x2BDA, 0x2BDB, 0x2BDC, 0x2BDD, 0x2BDE, 0x2BDF, +0x2BE0, 0x2BE1, 0x2BE2, 0x2BE3, 0x2BE4, 0x2BE5, 0x2BE6, 0x2BE7, +0x2BE8, 0x2BE9, 0x2BEA, 0x2BEB, 0x2BEC, 0x2BED, 0x2BEE, 0x2BEF, +0x2BF0, 0x2BF1, 0x2BF2, 0x2BF3, 0x2BF4, 0x2BF5, 0x2BF6, 0x2BF7, +0x2BF8, 0x2BF9, 0x2BFA, 0x2BFB, 0x2BFC, 0x2BFD, 0x2BFE, 0x2BFF, +0x2C00, 0x2C01, 0x2C02, 0x2C03, 0x2C04, 0x2C05, 0x2C06, 0x2C07, +0x2C08, 0x2C09, 0x2C0A, 0x2C0B, 0x2C0C, 0x2C0D, 0x2C0E, 0x2C0F, +0x2C10, 0x2C11, 0x2C12, 0x2C13, 0x2C14, 0x2C15, 0x2C16, 0x2C17, +0x2C18, 0x2C19, 0x2C1A, 0x2C1B, 0x2C1C, 0x2C1D, 0x2C1E, 0x2C1F, +0x2C20, 0x2C21, 0x2C22, 0x2C23, 0x2C24, 0x2C25, 0x2C26, 0x2C27, +0x2C28, 0x2C29, 0x2C2A, 0x2C2B, 0x2C2C, 0x2C2D, 0x2C2E, 0x2C2F, +0x2C30, 0x2C31, 0x2C32, 0x2C33, 0x2C34, 0x2C35, 0x2C36, 0x2C37, +0x2C38, 0x2C39, 0x2C3A, 0x2C3B, 0x2C3C, 0x2C3D, 0x2C3E, 0x2C3F, +0x2C40, 0xFE50, 0x2C41, 0x2C42, 0xFE54, 0x2C43, 0x2C44, 0x2C45, +0xFE57, 0x2C46, 0x2C47, 0xFE58, 0xFE5D, 0x2C48, 0x2C49, 0x2C4A, +0x2C4B, 0x2C4C, 0x2C4D, 0x2C4E, 0x2C4F, 0x2C50, 0x2C51, 0xFE5E, +0x2C52, 0x2C53, 0x2C54, 0x2C55, 0x2C56, 0x2C57, 0x2C58, 0x2C59, +0x2C5A, 0x2C5B, 0x2C5C, 0x2C5D, 0x2C5E, 0x2C5F, 0x2C60, 0xFE6B, +0x2C61, 0x2C62, 0xFE6E, 0x2C63, 0x2C64, 0x2C65, 0xFE71, 0x2C66, +0x2C67, 0x2C68, 0x2C69, 0xFE73, 0x2C6A, 0x2C6B, 0xFE74, 0xFE75, +0x2C6C, 0x2C6D, 0x2C6E, 0xFE79, 0x2C6F, 0x2C70, 0x2C71, 0x2C72, +0x2C73, 0x2C74, 0x2C75, 0x2C76, 0x2C77, 0x2C78, 0x2C79, 0x2C7A, +0x2C7B, 0x2C7C, 0xFE84, 0x2C7D, 0x2C7E, 0x2C7F, 0x2C80, 0x2C81, +0x2C82, 0x2C83, 0x2C84, 0x2C85, 0x2C86, 0x2C87, 0x2C88, 0x2C89, +0x2C8A, 0x2C8B, 0x2C8C, 0x2C8D, 0x2C8E, 0x2C8F, 0x2C90, 0x2C91, +0x2C92, 0x2C93, 0x2C94, 0x2C95, 0x2C96, 0x2C97, 0x2C98, 0x2C99, +0x2C9A, 0x2C9B, 0x2C9C, 0x2C9D, 0x2C9E, 0x2C9F, 0x2CA0, 0x2CA1, +0x2CA2, 0x2CA3, 0x2CA4, 0x2CA5, 0x2CA6, 0x2CA7, 0x2CA8, 0x2CA9, +0x2CAA, 0x2CAB, 0x2CAC, 0x2CAD, 0x2CAE, 0x2CAF, 0x2CB0, 0x2CB1, +0x2CB2, 0x2CB3, 0x2CB4, 0x2CB5, 0x2CB6, 0x2CB7, 0x2CB8, 0x2CB9, +0x2CBA, 0x2CBB, 0x2CBC, 0x2CBD, 0x2CBE, 0x2CBF, 0x2CC0, 0x2CC1, +0x2CC2, 0x2CC3, 0x2CC4, 0x2CC5, 0x2CC6, 0x2CC7, 0x2CC8, 0x2CC9, +0x2CCA, 0x2CCB, 0x2CCC, 0x2CCD, 0x2CCE, 0x2CCF, 0x2CD0, 0x2CD1, +0x2CD2, 0x2CD3, 0x2CD4, 0x2CD5, 0x2CD6, 0x2CD7, 0x2CD8, 0x2CD9, +0x2CDA, 0x2CDB, 0x2CDC, 0x2CDD, 0x2CDE, 0x2CDF, 0x2CE0, 0x2CE1, +0x2CE2, 0x2CE3, 0x2CE4, 0x2CE5, 0x2CE6, 0x2CE7, 0x2CE8, 0x2CE9, +0x2CEA, 0x2CEB, 0x2CEC, 0x2CED, 0x2CEE, 0x2CEF, 0x2CF0, 0x2CF1, +0x2CF2, 0x2CF3, 0x2CF4, 0x2CF5, 0x2CF6, 0x2CF7, 0x2CF8, 0x2CF9, +0x2CFA, 0x2CFB, 0x2CFC, 0x2CFD, 0x2CFE, 0x2CFF, 0x2D00, 0x2D01, +0x2D02, 0x2D03, 0x2D04, 0x2D05, 0x2D06, 0x2D07, 0x2D08, 0x2D09, +0x2D0A, 0x2D0B, 0x2D0C, 0x2D0D, 0x2D0E, 0x2D0F, 0x2D10, 0x2D11, +0x2D12, 0x2D13, 0x2D14, 0x2D15, 0x2D16, 0x2D17, 0x2D18, 0x2D19, +0x2D1A, 0x2D1B, 0x2D1C, 0x2D1D, 0x2D1E, 0x2D1F, 0x2D20, 0x2D21, +0x2D22, 0x2D23, 0x2D24, 0x2D25, 0x2D26, 0x2D27, 0x2D28, 0x2D29, +0x2D2A, 0x2D2B, 0x2D2C, 0x2D2D, 0x2D2E, 0x2D2F, 0x2D30, 0x2D31, +0x2D32, 0x2D33, 0x2D34, 0x2D35, 0x2D36, 0x2D37, 0x2D38, 0x2D39, +0x2D3A, 0x2D3B, 0x2D3C, 0x2D3D, 0x2D3E, 0x2D3F, 0x2D40, 0x2D41, +0x2D42, 0x2D43, 0x2D44, 0x2D45, 0x2D46, 0x2D47, 0x2D48, 0x2D49, +0x2D4A, 0x2D4B, 0x2D4C, 0x2D4D, 0x2D4E, 0x2D4F, 0x2D50, 0x2D51, +0x2D52, 0x2D53, 0x2D54, 0x2D55, 0x2D56, 0x2D57, 0x2D58, 0x2D59, +0x2D5A, 0x2D5B, 0x2D5C, 0x2D5D, 0x2D5E, 0x2D5F, 0x2D60, 0x2D61, +0x2D62, 0x2D63, 0x2D64, 0x2D65, 0x2D66, 0x2D67, 0x2D68, 0x2D69, +0x2D6A, 0x2D6B, 0x2D6C, 0x2D6D, 0x2D6E, 0x2D6F, 0x2D70, 0x2D71, +0x2D72, 0x2D73, 0x2D74, 0x2D75, 0x2D76, 0x2D77, 0x2D78, 0x2D79, +0x2D7A, 0x2D7B, 0x2D7C, 0x2D7D, 0x2D7E, 0x2D7F, 0x2D80, 0x2D81, +0x2D82, 0x2D83, 0x2D84, 0x2D85, 0x2D86, 0x2D87, 0x2D88, 0x2D89, +0x2D8A, 0x2D8B, 0x2D8C, 0x2D8D, 0x2D8E, 0x2D8F, 0x2D90, 0x2D91, +0x2D92, 0x2D93, 0x2D94, 0x2D95, 0x2D96, 0x2D97, 0x2D98, 0x2D99, +0x2D9A, 0x2D9B, 0x2D9C, 0x2D9D, 0x2D9E, 0x2D9F, 0x2DA0, 0x2DA1, +0xA98A, 0xA98B, 0xA98C, 0xA98D, 0xA98E, 0xA98F, 0xA990, 0xA991, +0xA992, 0xA993, 0xA994, 0xA995, 0x2DA2, 0x2DA3, 0x2DA4, 0x2DA5, +0xA1A1, 0xA1A2, 0xA1A3, 0xA1A8, 0x2DA6, 0xA1A9, 0xA965, 0xA996, +0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB, +0xA1BE, 0xA1BF, 0xA893, 0xA1FE, 0xA1B2, 0xA1B3, 0xA1BC, 0xA1BD, +0x2DA7, 0x2DA8, 0x2DA9, 0x2DAA, 0x2DAB, 0xA894, 0xA895, 0x2DAC, +0x2DAD, 0xA940, 0xA941, 0xA942, 0xA943, 0xA944, 0xA945, 0xA946, +0xA947, 0xA948, 0x2DAE, 0x2DAF, 0x2DB0, 0x2DB1, 0x2DB2, 0x2DB3, +0x2DB4, 0x2DB5, 0x2DB6, 0x2DB7, 0x2DB8, 0x2DB9, 0x2DBA, 0x2DBB, +0x2DBC, 0x2DBD, 0x2DBE, 0x2DBF, 0x2DC0, 0x2DC1, 0xA989, 0x2DC2, +0x2DC3, 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, 0xA4A5, 0xA4A6, 0xA4A7, +0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB, 0xA4AC, 0xA4AD, 0xA4AE, 0xA4AF, +0xA4B0, 0xA4B1, 0xA4B2, 0xA4B3, 0xA4B4, 0xA4B5, 0xA4B6, 0xA4B7, +0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD, 0xA4BE, 0xA4BF, +0xA4C0, 0xA4C1, 0xA4C2, 0xA4C3, 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, +0xA4C8, 0xA4C9, 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF, +0xA4D0, 0xA4D1, 0xA4D2, 0xA4D3, 0xA4D4, 0xA4D5, 0xA4D6, 0xA4D7, +0xA4D8, 0xA4D9, 0xA4DA, 0xA4DB, 0xA4DC, 0xA4DD, 0xA4DE, 0xA4DF, +0xA4E0, 0xA4E1, 0xA4E2, 0xA4E3, 0xA4E4, 0xA4E5, 0xA4E6, 0xA4E7, +0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, 0xA4ED, 0xA4EE, 0xA4EF, +0xA4F0, 0xA4F1, 0xA4F2, 0xA4F3, 0x2DC4, 0x2DC5, 0x2DC6, 0x2DC7, +0x2DC8, 0x2DC9, 0x2DCA, 0xA961, 0xA962, 0xA966, 0xA967, 0x2DCB, +0x2DCC, 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, 0xA5A5, 0xA5A6, 0xA5A7, +0xA5A8, 0xA5A9, 0xA5AA, 0xA5AB, 0xA5AC, 0xA5AD, 0xA5AE, 0xA5AF, +0xA5B0, 0xA5B1, 0xA5B2, 0xA5B3, 0xA5B4, 0xA5B5, 0xA5B6, 0xA5B7, +0xA5B8, 0xA5B9, 0xA5BA, 0xA5BB, 0xA5BC, 0xA5BD, 0xA5BE, 0xA5BF, +0xA5C0, 0xA5C1, 0xA5C2, 0xA5C3, 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, +0xA5C8, 0xA5C9, 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF, +0xA5D0, 0xA5D1, 0xA5D2, 0xA5D3, 0xA5D4, 0xA5D5, 0xA5D6, 0xA5D7, +0xA5D8, 0xA5D9, 0xA5DA, 0xA5DB, 0xA5DC, 0xA5DD, 0xA5DE, 0xA5DF, +0xA5E0, 0xA5E1, 0xA5E2, 0xA5E3, 0xA5E4, 0xA5E5, 0xA5E6, 0xA5E7, +0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, 0xA5ED, 0xA5EE, 0xA5EF, +0xA5F0, 0xA5F1, 0xA5F2, 0xA5F3, 0xA5F4, 0xA5F5, 0xA5F6, 0x2DCD, +0x2DCE, 0x2DCF, 0x2DD0, 0x2DD1, 0xA960, 0xA963, 0xA964, 0x2DD2, +0x2DD3, 0x2DD4, 0x2DD5, 0x2DD6, 0x2DD7, 0xA8C5, 0xA8C6, 0xA8C7, +0xA8C8, 0xA8C9, 0xA8CA, 0xA8CB, 0xA8CC, 0xA8CD, 0xA8CE, 0xA8CF, +0xA8D0, 0xA8D1, 0xA8D2, 0xA8D3, 0xA8D4, 0xA8D5, 0xA8D6, 0xA8D7, +0xA8D8, 0xA8D9, 0xA8DA, 0xA8DB, 0xA8DC, 0xA8DD, 0xA8DE, 0xA8DF, +0xA8E0, 0xA8E1, 0xA8E2, 0xA8E3, 0xA8E4, 0xA8E5, 0xA8E6, 0xA8E7, +0xA8E8, 0xA8E9, 0x2DD8, 0x2DD9, 0x2DDA, 0x2DDB, 0x2DDC, 0x2DDD, +0x2DDE, 0x2DDF, 0x2DE0, 0x2DE1, 0x2DE2, 0x2DE3, 0x2DE4, 0x2DE5, +0x2DE6, 0x2DE7, 0x2DE8, 0x2DE9, 0x2DEA, 0x2DEB, 0x2DEC, 0x2DED, +0x2DEE, 0x2DEF, 0x2DF0, 0x2DF1, 0x2DF2, 0x2DF3, 0x2DF4, 0x2DF5, +0x2DF6, 0x2DF7, 0x2DF8, 0x2DF9, 0x2DFA, 0x2DFB, 0x2DFC, 0x2DFD, +0x2DFE, 0x2DFF, 0x2E00, 0x2E01, 0x2E02, 0x2E03, 0x2E04, 0x2E05, +0x2E06, 0x2E07, 0x2E08, 0x2E09, 0x2E0A, 0x2E0B, 0x2E0C, 0x2E0D, +0x2E0E, 0x2E0F, 0x2E10, 0x2E11, 0x2E12, 0x2E13, 0x2E14, 0x2E15, +0x2E16, 0x2E17, 0x2E18, 0x2E19, 0x2E1A, 0x2E1B, 0x2E1C, 0x2E1D, +0x2E1E, 0x2E1F, 0x2E20, 0x2E21, 0x2E22, 0x2E23, 0x2E24, 0x2E25, +0x2E26, 0x2E27, 0x2E28, 0x2E29, 0x2E2A, 0x2E2B, 0x2E2C, 0x2E2D, +0x2E2E, 0x2E2F, 0x2E30, 0x2E31, 0x2E32, 0x2E33, 0x2E34, 0x2E35, +0x2E36, 0x2E37, 0x2E38, 0x2E39, 0x2E3A, 0x2E3B, 0x2E3C, 0x2E3D, +0x2E3E, 0x2E3F, 0x2E40, 0x2E41, 0x2E42, 0x2E43, 0x2E44, 0x2E45, +0x2E46, 0x2E47, 0x2E48, 0x2E49, 0x2E4A, 0x2E4B, 0x2E4C, 0x2E4D, +0x2E4E, 0x2E4F, 0x2E50, 0x2E51, 0x2E52, 0x2E53, 0x2E54, 0x2E55, +0x2E56, 0x2E57, 0x2E58, 0x2E59, 0x2E5A, 0x2E5B, 0x2E5C, 0x2E5D, +0x2E5E, 0x2E5F, 0x2E60, 0x2E61, 0x2E62, 0x2E63, 0x2E64, 0x2E65, +0x2E66, 0x2E67, 0x2E68, 0x2E69, 0x2E6A, 0x2E6B, 0x2E6C, 0x2E6D, +0x2E6E, 0x2E6F, 0x2E70, 0x2E71, 0x2E72, 0x2E73, 0x2E74, 0x2E75, +0x2E76, 0x2E77, 0x2E78, 0x2E79, 0x2E7A, 0x2E7B, 0x2E7C, 0x2E7D, +0x2E7E, 0x2E7F, 0x2E80, 0x2E81, 0x2E82, 0x2E83, 0x2E84, 0x2E85, +0x2E86, 0x2E87, 0x2E88, 0x2E89, 0x2E8A, 0x2E8B, 0x2E8C, 0x2E8D, +0x2E8E, 0x2E8F, 0x2E90, 0x2E91, 0x2E92, 0x2E93, 0x2E94, 0x2E95, +0x2E96, 0x2E97, 0x2E98, 0x2E99, 0x2E9A, 0x2E9B, 0x2E9C, 0x2E9D, +0x2E9E, 0x2E9F, 0x2EA0, 0x2EA1, 0x2EA2, 0x2EA3, 0x2EA4, 0x2EA5, +0x2EA6, 0x2EA7, 0x2EA8, 0x2EA9, 0x2EAA, 0x2EAB, 0x2EAC, 0x2EAD, +0x2EAE, 0x2EAF, 0x2EB0, 0x2EB1, 0x2EB2, 0x2EB3, 0x2EB4, 0x2EB5, +0x2EB6, 0x2EB7, 0x2EB8, 0x2EB9, 0x2EBA, 0x2EBB, 0x2EBC, 0x2EBD, +0x2EBE, 0x2EBF, 0x2EC0, 0x2EC1, 0x2EC2, 0x2EC3, 0x2EC4, 0x2EC5, +0x2EC6, 0x2EC7, 0x2EC8, 0x2EC9, 0x2ECA, 0x2ECB, 0x2ECC, 0x2ECD, +0xA2E5, 0xA2E6, 0xA2E7, 0xA2E8, 0xA2E9, 0xA2EA, 0xA2EB, 0xA2EC, +0xA2ED, 0xA2EE, 0x2ECE, 0x2ECF, 0x2ED0, 0x2ED1, 0x2ED2, 0x2ED3, +0x2ED4, 0xA95A, 0x2ED5, 0x2ED6, 0x2ED7, 0x2ED8, 0x2ED9, 0x2EDA, +0x2EDB, 0x2EDC, 0x2EDD, 0x2EDE, 0x2EDF, 0x2EE0, 0x2EE1, 0x2EE2, +0x2EE3, 0x2EE4, 0x2EE5, 0x2EE6, 0x2EE7, 0x2EE8, 0x2EE9, 0x2EEA, +0x2EEB, 0x2EEC, 0x2EED, 0x2EEE, 0x2EEF, 0x2EF0, 0x2EF1, 0x2EF2, +0x2EF3, 0x2EF4, 0x2EF5, 0x2EF6, 0x2EF7, 0x2EF8, 0x2EF9, 0x2EFA, +0x2EFB, 0x2EFC, 0x2EFD, 0x2EFE, 0x2EFF, 0x2F00, 0x2F01, 0x2F02, +0x2F03, 0x2F04, 0x2F05, 0x2F06, 0x2F07, 0x2F08, 0x2F09, 0x2F0A, +0x2F0B, 0x2F0C, 0x2F0D, 0x2F0E, 0x2F0F, 0x2F10, 0x2F11, 0x2F12, +0x2F13, 0x2F14, 0x2F15, 0x2F16, 0x2F17, 0x2F18, 0x2F19, 0x2F1A, +0x2F1B, 0x2F1C, 0x2F1D, 0x2F1E, 0x2F1F, 0x2F20, 0x2F21, 0x2F22, +0x2F23, 0x2F24, 0x2F25, 0x2F26, 0x2F27, 0x2F28, 0x2F29, 0x2F2A, +0x2F2B, 0x2F2C, 0x2F2D, 0x2F2E, 0x2F2F, 0x2F30, 0x2F31, 0x2F32, +0x2F33, 0x2F34, 0x2F35, 0x2F36, 0x2F37, 0x2F38, 0x2F39, 0x2F3A, +0x2F3B, 0x2F3C, 0x2F3D, 0x2F3E, 0x2F3F, 0x2F40, 0x2F41, 0x2F42, +0x2F43, 0x2F44, 0x2F45, 0xA949, 0x2F46, 0x2F47, 0x2F48, 0x2F49, +0x2F4A, 0x2F4B, 0x2F4C, 0x2F4D, 0x2F4E, 0x2F4F, 0x2F50, 0x2F51, +0x2F52, 0x2F53, 0x2F54, 0x2F55, 0x2F56, 0x2F57, 0x2F58, 0x2F59, +0x2F5A, 0x2F5B, 0x2F5C, 0x2F5D, 0x2F5E, 0x2F5F, 0x2F60, 0x2F61, +0x2F62, 0x2F63, 0x2F64, 0x2F65, 0x2F66, 0x2F67, 0x2F68, 0x2F69, +0x2F6A, 0x2F6B, 0x2F6C, 0x2F6D, 0x2F6E, 0x2F6F, 0x2F70, 0x2F71, +0x2F72, 0x2F73, 0x2F74, 0x2F75, 0x2F76, 0x2F77, 0x2F78, 0x2F79, +0x2F7A, 0x2F7B, 0x2F7C, 0x2F7D, 0x2F7E, 0x2F7F, 0x2F80, 0x2F81, +0x2F82, 0x2F83, 0x2F84, 0x2F85, 0x2F86, 0x2F87, 0x2F88, 0x2F89, +0x2F8A, 0x2F8B, 0x2F8C, 0x2F8D, 0x2F8E, 0x2F8F, 0x2F90, 0x2F91, +0x2F92, 0x2F93, 0x2F94, 0x2F95, 0x2F96, 0x2F97, 0x2F98, 0x2F99, +0x2F9A, 0x2F9B, 0x2F9C, 0x2F9D, 0x2F9E, 0x2F9F, 0x2FA0, 0x2FA1, +0x2FA2, 0x2FA3, 0x2FA4, 0x2FA5, 0x2FA6, 0x2FA7, 0x2FA8, 0x2FA9, +0x2FAA, 0x2FAB, 0x2FAC, 0x2FAD, 0x2FAE, 0x2FAF, 0x2FB0, 0x2FB1, +0x2FB2, 0x2FB3, 0x2FB4, 0x2FB5, 0x2FB6, 0x2FB7, 0x2FB8, 0x2FB9, +0x2FBA, 0x2FBB, 0x2FBC, 0x2FBD, 0x2FBE, 0x2FBF, 0x2FC0, 0x2FC1, +0x2FC2, 0x2FC3, 0x2FC4, 0x2FC5, 0x2FC6, 0x2FC7, 0x2FC8, 0x2FC9, +0x2FCA, 0x2FCB, 0x2FCC, 0x2FCD, 0x2FCE, 0x2FCF, 0x2FD0, 0x2FD1, +0x2FD2, 0x2FD3, 0x2FD4, 0x2FD5, 0x2FD6, 0x2FD7, 0x2FD8, 0x2FD9, +0x2FDA, 0x2FDB, 0x2FDC, 0x2FDD, 0x2FDE, 0x2FDF, 0x2FE0, 0x2FE1, +0x2FE2, 0x2FE3, 0x2FE4, 0x2FE5, 0x2FE6, 0x2FE7, 0x2FE8, 0x2FE9, +0x2FEA, 0x2FEB, 0x2FEC, 0x2FED, 0x2FEE, 0x2FEF, 0x2FF0, 0x2FF1, +0x2FF2, 0x2FF3, 0x2FF4, 0x2FF5, 0x2FF6, 0x2FF7, 0x2FF8, 0x2FF9, +0x2FFA, 0x2FFB, 0x2FFC, 0x2FFD, 0x2FFE, 0x2FFF, 0x3000, 0x3001, +0x3002, 0x3003, 0x3004, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, +0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011, +0x3012, 0x3013, 0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, +0x301A, 0x301B, 0x301C, 0x301D, 0x301E, 0x301F, 0x3020, 0x3021, +0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, +0x302A, 0x302B, 0x302C, 0x302D, 0x302E, 0x302F, 0xA94A, 0xA94B, +0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, +0x3038, 0x3039, 0x303A, 0x303B, 0xA94C, 0xA94D, 0xA94E, 0x303C, +0x303D, 0xA94F, 0x303E, 0x303F, 0x3040, 0x3041, 0x3042, 0x3043, +0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304A, 0x304B, +0x304C, 0x304D, 0x304E, 0x304F, 0x3050, 0x3051, 0x3052, 0x3053, +0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305A, 0x305B, +0x305C, 0x305D, 0x305E, 0x305F, 0xA950, 0x3060, 0x3061, 0x3062, +0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0xA951, 0x3069, +0x306A, 0xA952, 0xA953, 0x306B, 0x306C, 0xA954, 0x306D, 0x306E, +0x306F, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, +0x3077, 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, +0x307F, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, +0x3087, 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, +0x308F, 0x3090, 0x3091, 0x3092, 0x3093, 0x3094, 0x3095, 0x3096, +0x3097, 0x3098, 0x3099, 0x309A, 0x309B, 0x309C, 0x309D, 0x309E, +0x309F, 0x30A0, 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, +0x30A7, 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, +0x30AF, 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, +0x30B7, 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, +0x30BF, 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, +0x30C7, 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, +0x30CF, 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, +0x30D7, 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0xFE56, +0x30DE, 0x30DF, 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, +0x30E6, 0x30E7, 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, +0x30EE, 0x30EF, 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, +0x30F6, 0x30F7, 0x30F8, 0x30F9, 0x30FA, 0x30FB, 0x30FC, 0x30FD, +0x30FE, 0x30FF, 0x3100, 0x3101, 0x3102, 0x3103, 0x3104, 0x3105, +0x3106, 0x3107, 0x3108, 0xFE55, 0x3109, 0x310A, 0x310B, 0x310C, +0x310D, 0x310E, 0x310F, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, +0x3115, 0x3116, 0x3117, 0x3118, 0x3119, 0x311A, 0x311B, 0x311C, +0x311D, 0x311E, 0x311F, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, +0x3125, 0x3126, 0x3127, 0x3128, 0x3129, 0x312A, 0x312B, 0x312C, +0x312D, 0x312E, 0x312F, 0x3130, 0x3131, 0x3132, 0x3133, 0x3134, +0x3135, 0x3136, 0x3137, 0x3138, 0x3139, 0x313A, 0x313B, 0x313C, +0x313D, 0x313E, 0x313F, 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, +0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 0x314A, 0x314B, 0x314C, +0x314D, 0x314E, 0x314F, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, +0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315A, 0x315B, 0x315C, +0x315D, 0x315E, 0x315F, 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, +0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316A, 0x316B, 0x316C, +0x316D, 0x316E, 0x316F, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, +0x3175, 0x3176, 0x3177, 0x3178, 0x3179, 0x317A, 0x317B, 0x317C, +0x317D, 0x317E, 0x317F, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, +0x3185, 0x3186, 0x3187, 0x3188, 0x3189, 0x318A, 0x318B, 0x318C, +0x318D, 0x318E, 0x318F, 0x3190, 0x3191, 0x3192, 0x3193, 0x3194, +0x3195, 0x3196, 0x3197, 0x3198, 0x3199, 0x319A, 0x319B, 0x319C, +0x319D, 0x319E, 0x319F, 0x31A0, 0x31A1, 0x31A2, 0x31A3, 0x31A4, +0x31A5, 0x31A6, 0x31A7, 0x31A8, 0x31A9, 0x31AA, 0x31AB, 0x31AC, +0x31AD, 0x31AE, 0x31AF, 0x31B0, 0x31B1, 0x31B2, 0x31B3, 0x31B4, +0x31B5, 0x31B6, 0x31B7, 0x31B8, 0x31B9, 0x31BA, 0x31BB, 0x31BC, +0x31BD, 0x31BE, 0x31BF, 0x31C0, 0x31C1, 0x31C2, 0x31C3, 0x31C4, +0x31C5, 0x31C6, 0x31C7, 0x31C8, 0x31C9, 0x31CA, 0x31CB, 0x31CC, +0x31CD, 0x31CE, 0x31CF, 0x31D0, 0x31D1, 0x31D2, 0x31D3, 0x31D4, +0x31D5, 0x31D6, 0x31D7, 0x31D8, 0x31D9, 0x31DA, 0x31DB, 0x31DC, +0x31DD, 0x31DE, 0x31DF, 0x31E0, 0x31E1, 0x31E2, 0x31E3, 0x31E4, +0x31E5, 0x31E6, 0x31E7, 0x31E8, 0x31E9, 0x31EA, 0x31EB, 0x31EC, +0x31ED, 0x31EE, 0x31EF, 0x31F0, 0x31F1, 0x31F2, 0x31F3, 0x31F4, +0x31F5, 0x31F6, 0x31F7, 0x31F8, 0x31F9, 0x31FA, 0x31FB, 0x31FC, +0x31FD, 0x31FE, 0x31FF, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, +0x3205, 0x3206, 0x3207, 0x3208, 0x3209, 0x320A, 0x320B, 0x320C, +0x320D, 0x320E, 0x320F, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, +0x3215, 0x3216, 0x3217, 0x3218, 0x3219, 0x321A, 0x321B, 0x321C, +0x321D, 0x321E, 0x321F, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, +0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322A, 0x322B, 0x322C, +0x322D, 0x322E, 0x322F, 0x3230, 0x3231, 0x3232, 0xFE5A, 0x3233, +0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323A, 0x323B, +0x323C, 0x323D, 0x323E, 0x323F, 0x3240, 0x3241, 0x3242, 0x3243, +0x3244, 0x3245, 0x3246, 0x3247, 0x3248, 0x3249, 0x324A, 0x324B, +0x324C, 0x324D, 0x324E, 0x324F, 0x3250, 0x3251, 0x3252, 0x3253, +0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325A, 0x325B, +0x325C, 0x325D, 0x325E, 0x325F, 0x3260, 0x3261, 0x3262, 0x3263, +0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326A, 0x326B, +0x326C, 0x326D, 0x326E, 0x326F, 0x3270, 0x3271, 0x3272, 0x3273, +0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327A, 0x327B, +0x327C, 0x327D, 0x327E, 0x327F, 0x3280, 0x3281, 0x3282, 0x3283, +0x3284, 0x3285, 0x3286, 0x3287, 0x3288, 0x3289, 0x328A, 0x328B, +0x328C, 0x328D, 0x328E, 0x328F, 0x3290, 0x3291, 0x3292, 0x3293, +0x3294, 0x3295, 0x3296, 0x3297, 0x3298, 0x3299, 0x329A, 0x329B, +0x329C, 0x329D, 0x329E, 0x329F, 0x32A0, 0x32A1, 0xFE5C, 0x32A2, +0x32A3, 0x32A4, 0x32A5, 0x32A6, 0x32A7, 0x32A8, 0x32A9, 0x32AA, +0x32AB, 0x32AC, 0xFE5B, 0x32AD, 0x32AE, 0x32AF, 0x32B0, 0x32B1, +0x32B2, 0x32B3, 0x32B4, 0x32B5, 0x32B6, 0x32B7, 0x32B8, 0x32B9, +0x32BA, 0x32BB, 0x32BC, 0x32BD, 0x32BE, 0x32BF, 0x32C0, 0x32C1, +0x32C2, 0x32C3, 0x32C4, 0x32C5, 0x32C6, 0x32C7, 0x32C8, 0x32C9, +0x32CA, 0x32CB, 0x32CC, 0x32CD, 0x32CE, 0x32CF, 0x32D0, 0x32D1, +0x32D2, 0x32D3, 0x32D4, 0x32D5, 0x32D6, 0x32D7, 0x32D8, 0x32D9, +0x32DA, 0x32DB, 0x32DC, 0x32DD, 0x32DE, 0x32DF, 0x32E0, 0x32E1, +0x32E2, 0x32E3, 0x32E4, 0x32E5, 0x32E6, 0x32E7, 0x32E8, 0x32E9, +0x32EA, 0x32EB, 0x32EC, 0x32ED, 0x32EE, 0x32EF, 0x32F0, 0x32F1, +0x32F2, 0x32F3, 0x32F4, 0x32F5, 0x32F6, 0x32F7, 0x32F8, 0x32F9, +0x32FA, 0x32FB, 0x32FC, 0x32FD, 0x32FE, 0x32FF, 0x3300, 0x3301, +0x3302, 0x3303, 0x3304, 0x3305, 0x3306, 0x3307, 0x3308, 0x3309, +0x330A, 0x330B, 0x330C, 0x330D, 0x330E, 0x330F, 0x3310, 0x3311, +0x3312, 0x3313, 0x3314, 0x3315, 0x3316, 0x3317, 0x3318, 0x3319, +0x331A, 0x331B, 0x331C, 0x331D, 0x331E, 0x331F, 0x3320, 0x3321, +0x3322, 0x3323, 0x3324, 0x3325, 0x3326, 0x3327, 0x3328, 0x3329, +0x332A, 0x332B, 0x332C, 0x332D, 0x332E, 0x332F, 0x3330, 0x3331, +0x3332, 0x3333, 0x3334, 0x3335, 0x3336, 0x3337, 0x3338, 0x3339, +0x333A, 0x333B, 0x333C, 0x333D, 0x333E, 0x333F, 0x3340, 0x3341, +0x3342, 0x3343, 0x3344, 0x3345, 0x3346, 0x3347, 0x3348, 0x3349, +0x334A, 0x334B, 0x334C, 0x334D, 0x334E, 0x334F, 0x3350, 0x3351, +0x3352, 0x3353, 0x3354, 0x3355, 0x3356, 0x3357, 0x3358, 0x3359, +0x335A, 0x335B, 0x335C, 0x335D, 0x335E, 0x335F, 0x3360, 0x3361, +0x3362, 0x3363, 0x3364, 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, +0x336A, 0x336B, 0x336C, 0x336D, 0x336E, 0x336F, 0x3370, 0x3371, +0x3372, 0x3373, 0x3374, 0x3375, 0x3376, 0x3377, 0x3378, 0x3379, +0x337A, 0x337B, 0x337C, 0x337D, 0x337E, 0x337F, 0x3380, 0x3381, +0x3382, 0x3383, 0x3384, 0x3385, 0x3386, 0x3387, 0x3388, 0x3389, +0x338A, 0x338B, 0x338C, 0x338D, 0x338E, 0x338F, 0x3390, 0x3391, +0x3392, 0x3393, 0x3394, 0x3395, 0x3396, 0x3397, 0x3398, 0x3399, +0x339A, 0x339B, 0x339C, 0x339D, 0x339E, 0x339F, 0x33A0, 0x33A1, +0x33A2, 0x33A3, 0x33A4, 0x33A5, 0x33A6, 0x33A7, 0x33A8, 0x33A9, +0x33AA, 0x33AB, 0x33AC, 0x33AD, 0x33AE, 0x33AF, 0x33B0, 0x33B1, +0x33B2, 0x33B3, 0x33B4, 0x33B5, 0x33B6, 0x33B7, 0x33B8, 0x33B9, +0x33BA, 0x33BB, 0x33BC, 0x33BD, 0x33BE, 0x33BF, 0x33C0, 0x33C1, +0x33C2, 0x33C3, 0x33C4, 0x33C5, 0x33C6, 0x33C7, 0x33C8, 0x33C9, +0x33CA, 0x33CB, 0x33CC, 0x33CD, 0x33CE, 0x33CF, 0x33D0, 0x33D1, +0x33D2, 0x33D3, 0x33D4, 0x33D5, 0x33D6, 0x33D7, 0x33D8, 0x33D9, +0x33DA, 0x33DB, 0x33DC, 0x33DD, 0x33DE, 0x33DF, 0x33E0, 0x33E1, +0x33E2, 0x33E3, 0x33E4, 0x33E5, 0x33E6, 0x33E7, 0x33E8, 0x33E9, +0x33EA, 0x33EB, 0x33EC, 0x33ED, 0x33EE, 0x33EF, 0x33F0, 0x33F1, +0x33F2, 0x33F3, 0x33F4, 0x33F5, 0x33F6, 0x33F7, 0x33F8, 0x33F9, +0x33FA, 0x33FB, 0x33FC, 0x33FD, 0x33FE, 0x33FF, 0x3400, 0x3401, +0x3402, 0x3403, 0x3404, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, +0x340A, 0x340B, 0x340C, 0x340D, 0x340E, 0x340F, 0x3410, 0x3411, +0x3412, 0x3413, 0x3414, 0x3415, 0x3416, 0x3417, 0x3418, 0x3419, +0x341A, 0x341B, 0x341C, 0x341D, 0x341E, 0x341F, 0x3420, 0x3421, +0x3422, 0x3423, 0x3424, 0x3425, 0x3426, 0x3427, 0x3428, 0x3429, +0x342A, 0x342B, 0x342C, 0x342D, 0x342E, 0x342F, 0x3430, 0x3431, +0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3437, 0x3438, 0x3439, +0x343A, 0x343B, 0x343C, 0x343D, 0x343E, 0x343F, 0x3440, 0x3441, +0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, +0x344A, 0x344B, 0x344C, 0x344D, 0x344E, 0x344F, 0x3450, 0x3451, +0x3452, 0x3453, 0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, +0x345A, 0x345B, 0x345C, 0x345D, 0x345E, 0x345F, 0x3460, 0x3461, +0x3462, 0x3463, 0x3464, 0x3465, 0x3466, 0x3467, 0x3468, 0x3469, +0x346A, 0x346B, 0x346C, 0x346D, 0x346E, 0x346F, 0x3470, 0x3471, +0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477, 0x3478, 0x3479, +0x347A, 0x347B, 0x347C, 0x347D, 0x347E, 0x347F, 0x3480, 0x3481, +0x3482, 0x3483, 0x3484, 0x3485, 0x3486, 0x3487, 0x3488, 0x3489, +0x348A, 0x348B, 0x348C, 0x348D, 0x348E, 0x348F, 0x3490, 0x3491, +0x3492, 0x3493, 0x3494, 0x3495, 0x3496, 0x3497, 0x3498, 0x3499, +0x349A, 0x349B, 0x349C, 0x349D, 0x349E, 0x349F, 0x34A0, 0x34A1, +0x34A2, 0x34A3, 0x34A4, 0x34A5, 0x34A6, 0x34A7, 0x34A8, 0x34A9, +0x34AA, 0x34AB, 0x34AC, 0x34AD, 0x34AE, 0x34AF, 0x34B0, 0x34B1, +0x34B2, 0x34B3, 0x34B4, 0x34B5, 0x34B6, 0x34B7, 0x34B8, 0x34B9, +0x34BA, 0x34BB, 0x34BC, 0x34BD, 0x34BE, 0x34BF, 0x34C0, 0x34C1, +0x34C2, 0x34C3, 0x34C4, 0x34C5, 0x34C6, 0x34C7, 0x34C8, 0x34C9, +0x34CA, 0x34CB, 0x34CC, 0x34CD, 0x34CE, 0x34CF, 0x34D0, 0x34D1, +0x34D2, 0x34D3, 0x34D4, 0x34D5, 0x34D6, 0x34D7, 0x34D8, 0x34D9, +0x34DA, 0x34DB, 0x34DC, 0x34DD, 0x34DE, 0x34DF, 0x34E0, 0x34E1, +0x34E2, 0x34E3, 0x34E4, 0x34E5, 0x34E6, 0x34E7, 0x34E8, 0x34E9, +0x34EA, 0x34EB, 0x34EC, 0x34ED, 0x34EE, 0x34EF, 0x34F0, 0x34F1, +0x34F2, 0x34F3, 0x34F4, 0x34F5, 0x34F6, 0x34F7, 0x34F8, 0x34F9, +0x34FA, 0x34FB, 0x34FC, 0x34FD, 0x34FE, 0x34FF, 0x3500, 0x3501, +0x3502, 0x3503, 0x3504, 0x3505, 0x3506, 0x3507, 0x3508, 0x3509, +0x350A, 0x350B, 0x350C, 0x350D, 0x350E, 0x350F, 0x3510, 0x3511, +0x3512, 0x3513, 0x3514, 0x3515, 0x3516, 0x3517, 0x3518, 0x3519, +0x351A, 0x351B, 0x351C, 0x351D, 0x351E, 0x351F, 0x3520, 0x3521, +0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, +0x352A, 0x352B, 0x352C, 0x352D, 0x352E, 0x352F, 0x3530, 0x3531, +0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538, 0x3539, +0x353A, 0x353B, 0x353C, 0x353D, 0x353E, 0x353F, 0x3540, 0x3541, +0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548, 0x3549, +0x354A, 0x354B, 0x354C, 0x354D, 0x354E, 0x354F, 0x3550, 0x3551, +0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558, 0x3559, +0x355A, 0x355B, 0x355C, 0x355D, 0x355E, 0x355F, 0x3560, 0x3561, +0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, +0x356A, 0x356B, 0x356C, 0x356D, 0x356E, 0x356F, 0x3570, 0x3571, +0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, +0x357A, 0x357B, 0x357C, 0x357D, 0x357E, 0x357F, 0x3580, 0x3581, +0x3582, 0x3583, 0x3584, 0x3585, 0x3586, 0x3587, 0x3588, 0x3589, +0x358A, 0x358B, 0x358C, 0x358D, 0x358E, 0x358F, 0x3590, 0x3591, +0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, 0x3598, 0x3599, +0x359A, 0x359B, 0x359C, 0x359D, 0x359E, 0x359F, 0x35A0, 0x35A1, +0x35A2, 0x35A3, 0x35A4, 0x35A5, 0x35A6, 0x35A7, 0x35A8, 0x35A9, +0xFE60, 0x35AA, 0x35AB, 0x35AC, 0x35AD, 0x35AE, 0x35AF, 0x35B0, +0x35B1, 0x35B2, 0x35B3, 0x35B4, 0x35B5, 0x35B6, 0x35B7, 0x35B8, +0x35B9, 0x35BA, 0x35BB, 0x35BC, 0x35BD, 0x35BE, 0x35BF, 0x35C0, +0x35C1, 0x35C2, 0x35C3, 0x35C4, 0x35C5, 0x35C6, 0x35C7, 0x35C8, +0x35C9, 0x35CA, 0x35CB, 0x35CC, 0x35CD, 0x35CE, 0x35CF, 0x35D0, +0x35D1, 0x35D2, 0x35D3, 0x35D4, 0x35D5, 0x35D6, 0x35D7, 0x35D8, +0x35D9, 0x35DA, 0x35DB, 0x35DC, 0x35DD, 0x35DE, 0x35DF, 0x35E0, +0x35E1, 0x35E2, 0x35E3, 0x35E4, 0x35E5, 0x35E6, 0x35E7, 0x35E8, +0x35E9, 0x35EA, 0x35EB, 0x35EC, 0x35ED, 0x35EE, 0x35EF, 0x35F0, +0x35F1, 0x35F2, 0x35F3, 0x35F4, 0x35F5, 0x35F6, 0x35F7, 0x35F8, +0x35F9, 0x35FA, 0x35FB, 0x35FC, 0x35FD, 0x35FE, 0xFE5F, 0x35FF, +0x3600, 0x3601, 0x3602, 0x3603, 0x3604, 0x3605, 0x3606, 0x3607, +0x3608, 0x3609, 0x360A, 0x360B, 0x360C, 0x360D, 0x360E, 0x360F, +0x3610, 0x3611, 0x3612, 0x3613, 0x3614, 0x3615, 0x3616, 0x3617, +0x3618, 0x3619, 0x361A, 0x361B, 0x361C, 0x361D, 0x361E, 0x361F, +0x3620, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, +0x3628, 0x3629, 0x362A, 0x362B, 0x362C, 0x362D, 0x362E, 0x362F, +0x3630, 0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, +0x3638, 0x3639, 0x363A, 0x363B, 0x363C, 0x363D, 0x363E, 0x363F, +0x3640, 0x3641, 0x3642, 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, +0x3648, 0x3649, 0x364A, 0x364B, 0x364C, 0x364D, 0x364E, 0x364F, +0x3650, 0x3651, 0x3652, 0x3653, 0x3654, 0x3655, 0x3656, 0x3657, +0x3658, 0x3659, 0x365A, 0x365B, 0x365C, 0x365D, 0x365E, 0xFE62, +0xFE65, 0x365F, 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, +0x3666, 0x3667, 0x3668, 0x3669, 0x366A, 0x366B, 0x366C, 0xFE63, +0x366D, 0x366E, 0x366F, 0x3670, 0x3671, 0x3672, 0x3673, 0x3674, +0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367A, 0x367B, 0x367C, +0x367D, 0x367E, 0x367F, 0x3680, 0x3681, 0x3682, 0x3683, 0x3684, +0x3685, 0x3686, 0x3687, 0x3688, 0x3689, 0x368A, 0x368B, 0x368C, +0x368D, 0x368E, 0x368F, 0x3690, 0x3691, 0x3692, 0x3693, 0x3694, +0x3695, 0x3696, 0x3697, 0x3698, 0x3699, 0x369A, 0x369B, 0x369C, +0x369D, 0x369E, 0x369F, 0x36A0, 0x36A1, 0x36A2, 0x36A3, 0x36A4, +0x36A5, 0x36A6, 0x36A7, 0x36A8, 0x36A9, 0x36AA, 0x36AB, 0x36AC, +0x36AD, 0x36AE, 0x36AF, 0x36B0, 0x36B1, 0x36B2, 0x36B3, 0x36B4, +0x36B5, 0x36B6, 0x36B7, 0x36B8, 0x36B9, 0x36BA, 0x36BB, 0x36BC, +0x36BD, 0x36BE, 0x36BF, 0x36C0, 0x36C1, 0x36C2, 0x36C3, 0x36C4, +0x36C5, 0x36C6, 0x36C7, 0x36C8, 0x36C9, 0x36CA, 0x36CB, 0x36CC, +0x36CD, 0x36CE, 0x36CF, 0x36D0, 0x36D1, 0x36D2, 0x36D3, 0x36D4, +0x36D5, 0x36D6, 0x36D7, 0x36D8, 0x36D9, 0x36DA, 0x36DB, 0x36DC, +0x36DD, 0x36DE, 0x36DF, 0x36E0, 0x36E1, 0x36E2, 0x36E3, 0x36E4, +0x36E5, 0x36E6, 0x36E7, 0x36E8, 0x36E9, 0x36EA, 0x36EB, 0x36EC, +0x36ED, 0x36EE, 0x36EF, 0x36F0, 0x36F1, 0x36F2, 0x36F3, 0x36F4, +0x36F5, 0x36F6, 0x36F7, 0x36F8, 0x36F9, 0x36FA, 0x36FB, 0x36FC, +0x36FD, 0x36FE, 0x36FF, 0xFE64, 0x3700, 0x3701, 0x3702, 0x3703, +0x3704, 0x3705, 0x3706, 0x3707, 0x3708, 0x3709, 0x370A, 0x370B, +0x370C, 0x370D, 0x370E, 0x370F, 0x3710, 0x3711, 0x3712, 0x3713, +0x3714, 0x3715, 0x3716, 0x3717, 0x3718, 0x3719, 0x371A, 0x371B, +0x371C, 0x371D, 0x371E, 0x371F, 0x3720, 0x3721, 0x3722, 0x3723, +0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372A, 0x372B, +0x372C, 0x372D, 0x372E, 0x372F, 0x3730, 0x3731, 0x3732, 0x3733, +0x3734, 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373A, 0x373B, +0x373C, 0x373D, 0x373E, 0x373F, 0x3740, 0x3741, 0x3742, 0x3743, +0x3744, 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374A, 0x374B, +0x374C, 0x374D, 0x374E, 0x374F, 0x3750, 0x3751, 0x3752, 0x3753, +0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759, 0x375A, 0x375B, +0x375C, 0x375D, 0x375E, 0x375F, 0x3760, 0x3761, 0x3762, 0x3763, +0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376A, 0x376B, +0x376C, 0x376D, 0x376E, 0x376F, 0x3770, 0x3771, 0x3772, 0x3773, +0x3774, 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377A, 0x377B, +0x377C, 0x377D, 0x377E, 0x377F, 0x3780, 0x3781, 0x3782, 0x3783, +0x3784, 0x3785, 0x3786, 0x3787, 0x3788, 0x3789, 0x378A, 0x378B, +0x378C, 0x378D, 0x378E, 0x378F, 0x3790, 0x3791, 0x3792, 0x3793, +0x3794, 0x3795, 0x3796, 0x3797, 0x3798, 0x3799, 0x379A, 0x379B, +0x379C, 0x379D, 0x379E, 0x379F, 0x37A0, 0x37A1, 0x37A2, 0x37A3, +0x37A4, 0x37A5, 0x37A6, 0x37A7, 0x37A8, 0x37A9, 0x37AA, 0x37AB, +0x37AC, 0x37AD, 0x37AE, 0x37AF, 0x37B0, 0x37B1, 0x37B2, 0x37B3, +0x37B4, 0x37B5, 0x37B6, 0x37B7, 0x37B8, 0x37B9, 0x37BA, 0x37BB, +0x37BC, 0x37BD, 0x37BE, 0x37BF, 0x37C0, 0x37C1, 0x37C2, 0x37C3, +0x37C4, 0x37C5, 0x37C6, 0x37C7, 0x37C8, 0x37C9, 0x37CA, 0x37CB, +0x37CC, 0x37CD, 0x37CE, 0x37CF, 0x37D0, 0x37D1, 0x37D2, 0x37D3, +0x37D4, 0x37D5, 0x37D6, 0x37D7, 0x37D8, 0x37D9, 0xFE68, 0x37DA, +0x37DB, 0x37DC, 0x37DD, 0x37DE, 0x37DF, 0x37E0, 0x37E1, 0x37E2, +0x37E3, 0x37E4, 0x37E5, 0x37E6, 0x37E7, 0x37E8, 0x37E9, 0x37EA, +0x37EB, 0x37EC, 0x37ED, 0x37EE, 0x37EF, 0x37F0, 0x37F1, 0x37F2, +0x37F3, 0x37F4, 0x37F5, 0x37F6, 0x37F7, 0x37F8, 0x37F9, 0x37FA, +0x37FB, 0x37FC, 0x37FD, 0x37FE, 0x37FF, 0x3800, 0x3801, 0x3802, +0x3803, 0x3804, 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 0x380A, +0x380B, 0x380C, 0x380D, 0x380E, 0x380F, 0x3810, 0x3811, 0x3812, +0x3813, 0x3814, 0x3815, 0x3816, 0x3817, 0x3818, 0x3819, 0x381A, +0x381B, 0x381C, 0x381D, 0x381E, 0x381F, 0x3820, 0x3821, 0x3822, +0x3823, 0x3824, 0x3825, 0x3826, 0x3827, 0x3828, 0x3829, 0x382A, +0x382B, 0x382C, 0x382D, 0x382E, 0x382F, 0x3830, 0x3831, 0x3832, +0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383A, +0x383B, 0x383C, 0x383D, 0x383E, 0x383F, 0x3840, 0x3841, 0x3842, +0x3843, 0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384A, +0x384B, 0x384C, 0x384D, 0x384E, 0x384F, 0x3850, 0x3851, 0x3852, +0x3853, 0x3854, 0x3855, 0x3856, 0x3857, 0x3858, 0x3859, 0x385A, +0x385B, 0x385C, 0x385D, 0x385E, 0x385F, 0x3860, 0x3861, 0x3862, +0x3863, 0x3864, 0x3865, 0x3866, 0x3867, 0x3868, 0x3869, 0x386A, +0x386B, 0x386C, 0x386D, 0x386E, 0x386F, 0x3870, 0x3871, 0x3872, +0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879, 0x387A, +0x387B, 0x387C, 0x387D, 0x387E, 0x387F, 0x3880, 0x3881, 0x3882, +0x3883, 0x3884, 0x3885, 0x3886, 0x3887, 0x3888, 0x3889, 0x388A, +0x388B, 0x388C, 0x388D, 0x388E, 0x388F, 0x3890, 0x3891, 0x3892, +0x3893, 0x3894, 0x3895, 0x3896, 0x3897, 0x3898, 0x3899, 0x389A, +0x389B, 0x389C, 0x389D, 0x389E, 0x389F, 0x38A0, 0x38A1, 0x38A2, +0x38A3, 0x38A4, 0x38A5, 0x38A6, 0x38A7, 0x38A8, 0x38A9, 0x38AA, +0x38AB, 0x38AC, 0x38AD, 0x38AE, 0x38AF, 0x38B0, 0x38B1, 0x38B2, +0x38B3, 0x38B4, 0x38B5, 0x38B6, 0x38B7, 0x38B8, 0x38B9, 0x38BA, +0x38BB, 0x38BC, 0x38BD, 0x38BE, 0x38BF, 0x38C0, 0x38C1, 0x38C2, +0x38C3, 0x38C4, 0x38C5, 0x38C6, 0x38C7, 0x38C8, 0x38C9, 0x38CA, +0x38CB, 0x38CC, 0x38CD, 0x38CE, 0x38CF, 0x38D0, 0x38D1, 0x38D2, +0x38D3, 0x38D4, 0x38D5, 0x38D6, 0x38D7, 0x38D8, 0x38D9, 0x38DA, +0x38DB, 0x38DC, 0x38DD, 0x38DE, 0x38DF, 0x38E0, 0x38E1, 0x38E2, +0x38E3, 0x38E4, 0x38E5, 0x38E6, 0x38E7, 0x38E8, 0x38E9, 0x38EA, +0x38EB, 0x38EC, 0x38ED, 0x38EE, 0x38EF, 0x38F0, 0x38F1, 0x38F2, +0x38F3, 0x38F4, 0x38F5, 0x38F6, 0x38F7, 0x38F8, 0xFE69, 0x38F9, +0x38FA, 0x38FB, 0x38FC, 0x38FD, 0x38FE, 0x38FF, 0x3900, 0x3901, +0x3902, 0x3903, 0x3904, 0x3905, 0x3906, 0x3907, 0x3908, 0x3909, +0x390A, 0x390B, 0x390C, 0x390D, 0x390E, 0x390F, 0x3910, 0x3911, +0x3912, 0x3913, 0x3914, 0x3915, 0x3916, 0x3917, 0x3918, 0x3919, +0x391A, 0x391B, 0x391C, 0x391D, 0x391E, 0x391F, 0x3920, 0x3921, +0x3922, 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, +0x392A, 0x392B, 0x392C, 0x392D, 0x392E, 0x392F, 0x3930, 0x3931, +0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939, +0x393A, 0x393B, 0x393C, 0x393D, 0x393E, 0x393F, 0x3940, 0x3941, +0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949, +0x394A, 0x394B, 0x394C, 0x394D, 0x394E, 0x394F, 0x3950, 0x3951, +0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, +0x395A, 0x395B, 0x395C, 0x395D, 0x395E, 0x395F, 0x3960, 0x3961, +0x3962, 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, +0xFE6A, 0x396A, 0x396B, 0x396C, 0x396D, 0x396E, 0x396F, 0x3970, +0x3971, 0x3972, 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978, +0x3979, 0x397A, 0x397B, 0x397C, 0x397D, 0x397E, 0x397F, 0x3980, +0x3981, 0x3982, 0x3983, 0x3984, 0x3985, 0x3986, 0x3987, 0x3988, +0x3989, 0x398A, 0x398B, 0x398C, 0x398D, 0x398E, 0x398F, 0x3990, +0x3991, 0x3992, 0x3993, 0x3994, 0x3995, 0x3996, 0x3997, 0x3998, +0x3999, 0x399A, 0x399B, 0x399C, 0x399D, 0x399E, 0x399F, 0x39A0, +0x39A1, 0x39A2, 0x39A3, 0x39A4, 0x39A5, 0x39A6, 0x39A7, 0x39A8, +0x39A9, 0x39AA, 0x39AB, 0x39AC, 0x39AD, 0x39AE, 0x39AF, 0x39B0, +0x39B1, 0x39B2, 0x39B3, 0x39B4, 0x39B5, 0x39B6, 0x39B7, 0x39B8, +0x39B9, 0x39BA, 0x39BB, 0x39BC, 0x39BD, 0x39BE, 0x39BF, 0x39C0, +0x39C1, 0x39C2, 0x39C3, 0x39C4, 0x39C5, 0x39C6, 0x39C7, 0x39C8, +0x39C9, 0x39CA, 0x39CB, 0x39CC, 0x39CD, 0x39CE, 0x39CF, 0x39D0, +0x39D1, 0x39D2, 0x39D3, 0x39D4, 0x39D5, 0x39D6, 0x39D7, 0x39D8, +0x39D9, 0x39DA, 0x39DB, 0x39DC, 0x39DD, 0x39DE, 0x39DF, 0x39E0, +0x39E1, 0x39E2, 0x39E3, 0x39E4, 0x39E5, 0x39E6, 0x39E7, 0x39E8, +0x39E9, 0x39EA, 0x39EB, 0x39EC, 0x39ED, 0x39EE, 0x39EF, 0x39F0, +0x39F1, 0x39F2, 0x39F3, 0x39F4, 0x39F5, 0x39F6, 0x39F7, 0x39F8, +0x39F9, 0x39FA, 0x39FB, 0x39FC, 0x39FD, 0x39FE, 0x39FF, 0x3A00, +0x3A01, 0x3A02, 0x3A03, 0x3A04, 0x3A05, 0x3A06, 0x3A07, 0x3A08, +0x3A09, 0x3A0A, 0x3A0B, 0x3A0C, 0x3A0D, 0x3A0E, 0x3A0F, 0x3A10, +0x3A11, 0x3A12, 0x3A13, 0x3A14, 0x3A15, 0x3A16, 0x3A17, 0x3A18, +0x3A19, 0x3A1A, 0x3A1B, 0x3A1C, 0x3A1D, 0x3A1E, 0x3A1F, 0x3A20, +0x3A21, 0x3A22, 0x3A23, 0x3A24, 0x3A25, 0x3A26, 0x3A27, 0x3A28, +0x3A29, 0x3A2A, 0x3A2B, 0x3A2C, 0x3A2D, 0x3A2E, 0x3A2F, 0x3A30, +0x3A31, 0x3A32, 0x3A33, 0x3A34, 0x3A35, 0x3A36, 0x3A37, 0x3A38, +0x3A39, 0x3A3A, 0x3A3B, 0x3A3C, 0x3A3D, 0x3A3E, 0x3A3F, 0x3A40, +0x3A41, 0x3A42, 0x3A43, 0x3A44, 0x3A45, 0x3A46, 0x3A47, 0x3A48, +0x3A49, 0x3A4A, 0x3A4B, 0x3A4C, 0x3A4D, 0x3A4E, 0x3A4F, 0x3A50, +0x3A51, 0x3A52, 0x3A53, 0x3A54, 0x3A55, 0x3A56, 0x3A57, 0x3A58, +0x3A59, 0x3A5A, 0x3A5B, 0x3A5C, 0x3A5D, 0x3A5E, 0x3A5F, 0x3A60, +0x3A61, 0x3A62, 0x3A63, 0x3A64, 0x3A65, 0x3A66, 0x3A67, 0x3A68, +0x3A69, 0x3A6A, 0x3A6B, 0x3A6C, 0x3A6D, 0x3A6E, 0x3A6F, 0x3A70, +0x3A71, 0x3A72, 0x3A73, 0x3A74, 0x3A75, 0x3A76, 0x3A77, 0x3A78, +0x3A79, 0x3A7A, 0x3A7B, 0x3A7C, 0x3A7D, 0x3A7E, 0x3A7F, 0x3A80, +0x3A81, 0x3A82, 0x3A83, 0x3A84, 0x3A85, 0x3A86, 0x3A87, 0x3A88, +0x3A89, 0x3A8A, 0x3A8B, 0x3A8C, 0x3A8D, 0x3A8E, 0x3A8F, 0x3A90, +0x3A91, 0x3A92, 0x3A93, 0x3A94, 0x3A95, 0x3A96, 0x3A97, 0x3A98, +0x3A99, 0x3A9A, 0x3A9B, 0x3A9C, 0x3A9D, 0x3A9E, 0x3A9F, 0x3AA0, +0x3AA1, 0x3AA2, 0x3AA3, 0x3AA4, 0x3AA5, 0x3AA6, 0x3AA7, 0x3AA8, +0x3AA9, 0x3AAA, 0x3AAB, 0x3AAC, 0x3AAD, 0x3AAE, 0x3AAF, 0x3AB0, +0x3AB1, 0x3AB2, 0x3AB3, 0x3AB4, 0x3AB5, 0x3AB6, 0x3AB7, 0x3AB8, +0x3AB9, 0x3ABA, 0x3ABB, 0x3ABC, 0x3ABD, 0x3ABE, 0x3ABF, 0x3AC0, +0x3AC1, 0x3AC2, 0x3AC3, 0x3AC4, 0x3AC5, 0x3AC6, 0x3AC7, 0x3AC8, +0x3AC9, 0x3ACA, 0x3ACB, 0x3ACC, 0x3ACD, 0x3ACE, 0x3ACF, 0x3AD0, +0x3AD1, 0x3AD2, 0x3AD3, 0x3AD4, 0x3AD5, 0x3AD6, 0x3AD7, 0x3AD8, +0x3AD9, 0x3ADA, 0x3ADB, 0x3ADC, 0x3ADD, 0x3ADE, 0x3ADF, 0x3AE0, +0x3AE1, 0x3AE2, 0x3AE3, 0x3AE4, 0x3AE5, 0x3AE6, 0x3AE7, 0x3AE8, +0x3AE9, 0x3AEA, 0x3AEB, 0x3AEC, 0x3AED, 0x3AEE, 0x3AEF, 0x3AF0, +0x3AF1, 0x3AF2, 0x3AF3, 0x3AF4, 0x3AF5, 0x3AF6, 0x3AF7, 0x3AF8, +0x3AF9, 0x3AFA, 0x3AFB, 0x3AFC, 0x3AFD, 0x3AFE, 0x3AFF, 0x3B00, +0x3B01, 0x3B02, 0x3B03, 0x3B04, 0x3B05, 0x3B06, 0x3B07, 0x3B08, +0x3B09, 0x3B0A, 0x3B0B, 0x3B0C, 0x3B0D, 0x3B0E, 0x3B0F, 0x3B10, +0x3B11, 0x3B12, 0x3B13, 0x3B14, 0x3B15, 0x3B16, 0x3B17, 0x3B18, +0x3B19, 0x3B1A, 0x3B1B, 0x3B1C, 0x3B1D, 0x3B1E, 0x3B1F, 0x3B20, +0x3B21, 0x3B22, 0x3B23, 0x3B24, 0x3B25, 0x3B26, 0x3B27, 0x3B28, +0x3B29, 0x3B2A, 0x3B2B, 0x3B2C, 0x3B2D, 0x3B2E, 0x3B2F, 0x3B30, +0x3B31, 0x3B32, 0x3B33, 0x3B34, 0x3B35, 0x3B36, 0x3B37, 0x3B38, +0x3B39, 0x3B3A, 0x3B3B, 0x3B3C, 0x3B3D, 0x3B3E, 0x3B3F, 0x3B40, +0x3B41, 0x3B42, 0x3B43, 0x3B44, 0x3B45, 0x3B46, 0x3B47, 0x3B48, +0x3B49, 0x3B4A, 0x3B4B, 0x3B4C, 0x3B4D, 0x3B4E, 0x3B4F, 0x3B50, +0x3B51, 0x3B52, 0x3B53, 0x3B54, 0x3B55, 0x3B56, 0x3B57, 0x3B58, +0x3B59, 0x3B5A, 0x3B5B, 0x3B5C, 0x3B5D, 0x3B5E, 0x3B5F, 0x3B60, +0x3B61, 0x3B62, 0x3B63, 0x3B64, 0x3B65, 0x3B66, 0x3B67, 0x3B68, +0x3B69, 0x3B6A, 0x3B6B, 0x3B6C, 0x3B6D, 0x3B6E, 0x3B6F, 0x3B70, +0x3B71, 0x3B72, 0x3B73, 0x3B74, 0x3B75, 0x3B76, 0x3B77, 0x3B78, +0x3B79, 0x3B7A, 0x3B7B, 0x3B7C, 0x3B7D, 0x3B7E, 0x3B7F, 0x3B80, +0x3B81, 0x3B82, 0x3B83, 0x3B84, 0x3B85, 0x3B86, 0x3B87, 0x3B88, +0x3B89, 0x3B8A, 0x3B8B, 0x3B8C, 0x3B8D, 0x3B8E, 0x3B8F, 0x3B90, +0x3B91, 0x3B92, 0x3B93, 0x3B94, 0x3B95, 0x3B96, 0x3B97, 0x3B98, +0x3B99, 0x3B9A, 0x3B9B, 0x3B9C, 0x3B9D, 0x3B9E, 0x3B9F, 0x3BA0, +0x3BA1, 0x3BA2, 0x3BA3, 0x3BA4, 0x3BA5, 0x3BA6, 0x3BA7, 0x3BA8, +0x3BA9, 0x3BAA, 0x3BAB, 0x3BAC, 0x3BAD, 0x3BAE, 0x3BAF, 0x3BB0, +0x3BB1, 0x3BB2, 0x3BB3, 0x3BB4, 0x3BB5, 0x3BB6, 0x3BB7, 0x3BB8, +0x3BB9, 0x3BBA, 0x3BBB, 0x3BBC, 0x3BBD, 0x3BBE, 0x3BBF, 0x3BC0, +0x3BC1, 0x3BC2, 0x3BC3, 0x3BC4, 0x3BC5, 0x3BC6, 0x3BC7, 0x3BC8, +0x3BC9, 0x3BCA, 0x3BCB, 0x3BCC, 0x3BCD, 0x3BCE, 0x3BCF, 0x3BD0, +0x3BD1, 0x3BD2, 0x3BD3, 0x3BD4, 0x3BD5, 0x3BD6, 0x3BD7, 0x3BD8, +0x3BD9, 0x3BDA, 0x3BDB, 0x3BDC, 0x3BDD, 0x3BDE, 0x3BDF, 0x3BE0, +0x3BE1, 0x3BE2, 0x3BE3, 0x3BE4, 0x3BE5, 0x3BE6, 0x3BE7, 0x3BE8, +0x3BE9, 0x3BEA, 0x3BEB, 0x3BEC, 0x3BED, 0x3BEE, 0x3BEF, 0x3BF0, +0x3BF1, 0x3BF2, 0x3BF3, 0x3BF4, 0x3BF5, 0x3BF6, 0x3BF7, 0x3BF8, +0x3BF9, 0x3BFA, 0x3BFB, 0x3BFC, 0x3BFD, 0x3BFE, 0x3BFF, 0x3C00, +0x3C01, 0x3C02, 0x3C03, 0x3C04, 0x3C05, 0x3C06, 0x3C07, 0x3C08, +0x3C09, 0x3C0A, 0x3C0B, 0x3C0C, 0x3C0D, 0x3C0E, 0x3C0F, 0x3C10, +0x3C11, 0x3C12, 0x3C13, 0x3C14, 0x3C15, 0x3C16, 0x3C17, 0x3C18, +0x3C19, 0x3C1A, 0x3C1B, 0x3C1C, 0x3C1D, 0x3C1E, 0x3C1F, 0x3C20, +0x3C21, 0x3C22, 0x3C23, 0x3C24, 0x3C25, 0x3C26, 0x3C27, 0x3C28, +0x3C29, 0x3C2A, 0x3C2B, 0x3C2C, 0x3C2D, 0x3C2E, 0x3C2F, 0x3C30, +0x3C31, 0x3C32, 0x3C33, 0x3C34, 0x3C35, 0x3C36, 0x3C37, 0x3C38, +0x3C39, 0x3C3A, 0x3C3B, 0x3C3C, 0x3C3D, 0x3C3E, 0x3C3F, 0x3C40, +0x3C41, 0x3C42, 0x3C43, 0x3C44, 0x3C45, 0x3C46, 0x3C47, 0x3C48, +0x3C49, 0x3C4A, 0x3C4B, 0x3C4C, 0x3C4D, 0x3C4E, 0x3C4F, 0x3C50, +0x3C51, 0x3C52, 0x3C53, 0x3C54, 0x3C55, 0x3C56, 0x3C57, 0x3C58, +0x3C59, 0x3C5A, 0x3C5B, 0x3C5C, 0x3C5D, 0x3C5E, 0x3C5F, 0x3C60, +0x3C61, 0x3C62, 0x3C63, 0x3C64, 0x3C65, 0x3C66, 0x3C67, 0x3C68, +0x3C69, 0x3C6A, 0x3C6B, 0x3C6C, 0x3C6D, 0x3C6E, 0x3C6F, 0x3C70, +0x3C71, 0x3C72, 0x3C73, 0x3C74, 0x3C75, 0x3C76, 0x3C77, 0x3C78, +0x3C79, 0x3C7A, 0x3C7B, 0x3C7C, 0x3C7D, 0x3C7E, 0x3C7F, 0x3C80, +0x3C81, 0x3C82, 0x3C83, 0x3C84, 0x3C85, 0x3C86, 0x3C87, 0x3C88, +0x3C89, 0x3C8A, 0x3C8B, 0x3C8C, 0x3C8D, 0x3C8E, 0x3C8F, 0x3C90, +0x3C91, 0x3C92, 0x3C93, 0x3C94, 0x3C95, 0x3C96, 0x3C97, 0x3C98, +0x3C99, 0x3C9A, 0x3C9B, 0x3C9C, 0x3C9D, 0x3C9E, 0x3C9F, 0x3CA0, +0x3CA1, 0x3CA2, 0x3CA3, 0x3CA4, 0x3CA5, 0x3CA6, 0x3CA7, 0x3CA8, +0x3CA9, 0x3CAA, 0x3CAB, 0x3CAC, 0x3CAD, 0x3CAE, 0x3CAF, 0x3CB0, +0x3CB1, 0x3CB2, 0x3CB3, 0x3CB4, 0x3CB5, 0x3CB6, 0x3CB7, 0x3CB8, +0x3CB9, 0x3CBA, 0x3CBB, 0x3CBC, 0x3CBD, 0x3CBE, 0x3CBF, 0x3CC0, +0x3CC1, 0x3CC2, 0x3CC3, 0x3CC4, 0x3CC5, 0x3CC6, 0x3CC7, 0x3CC8, +0x3CC9, 0x3CCA, 0x3CCB, 0x3CCC, 0x3CCD, 0x3CCE, 0x3CCF, 0x3CD0, +0x3CD1, 0x3CD2, 0x3CD3, 0x3CD4, 0x3CD5, 0x3CD6, 0x3CD7, 0x3CD8, +0x3CD9, 0x3CDA, 0x3CDB, 0x3CDC, 0x3CDD, 0x3CDE, 0xFE6F, 0x3CDF, +0x3CE0, 0x3CE1, 0x3CE2, 0x3CE3, 0x3CE4, 0x3CE5, 0x3CE6, 0x3CE7, +0x3CE8, 0x3CE9, 0x3CEA, 0x3CEB, 0x3CEC, 0x3CED, 0x3CEE, 0x3CEF, +0x3CF0, 0x3CF1, 0x3CF2, 0x3CF3, 0x3CF4, 0x3CF5, 0x3CF6, 0x3CF7, +0x3CF8, 0x3CF9, 0x3CFA, 0x3CFB, 0x3CFC, 0x3CFD, 0x3CFE, 0x3CFF, +0x3D00, 0x3D01, 0x3D02, 0x3D03, 0x3D04, 0x3D05, 0x3D06, 0x3D07, +0x3D08, 0x3D09, 0x3D0A, 0x3D0B, 0x3D0C, 0x3D0D, 0x3D0E, 0x3D0F, +0x3D10, 0x3D11, 0x3D12, 0x3D13, 0x3D14, 0x3D15, 0x3D16, 0x3D17, +0x3D18, 0x3D19, 0x3D1A, 0x3D1B, 0x3D1C, 0x3D1D, 0x3D1E, 0x3D1F, +0x3D20, 0x3D21, 0x3D22, 0x3D23, 0x3D24, 0x3D25, 0x3D26, 0x3D27, +0x3D28, 0x3D29, 0x3D2A, 0x3D2B, 0x3D2C, 0x3D2D, 0x3D2E, 0x3D2F, +0x3D30, 0x3D31, 0x3D32, 0x3D33, 0x3D34, 0x3D35, 0x3D36, 0x3D37, +0x3D38, 0x3D39, 0x3D3A, 0x3D3B, 0x3D3C, 0x3D3D, 0x3D3E, 0x3D3F, +0x3D40, 0x3D41, 0x3D42, 0x3D43, 0x3D44, 0x3D45, 0x3D46, 0x3D47, +0x3D48, 0x3D49, 0x3D4A, 0x3D4B, 0x3D4C, 0x3D4D, 0x3D4E, 0x3D4F, +0x3D50, 0x3D51, 0x3D52, 0x3D53, 0x3D54, 0x3D55, 0x3D56, 0x3D57, +0x3D58, 0x3D59, 0x3D5A, 0x3D5B, 0x3D5C, 0x3D5D, 0x3D5E, 0x3D5F, +0x3D60, 0x3D61, 0x3D62, 0x3D63, 0x3D64, 0x3D65, 0x3D66, 0x3D67, +0x3D68, 0x3D69, 0x3D6A, 0x3D6B, 0x3D6C, 0x3D6D, 0x3D6E, 0x3D6F, +0x3D70, 0x3D71, 0x3D72, 0x3D73, 0x3D74, 0x3D75, 0x3D76, 0x3D77, +0x3D78, 0x3D79, 0x3D7A, 0x3D7B, 0x3D7C, 0x3D7D, 0x3D7E, 0x3D7F, +0x3D80, 0x3D81, 0x3D82, 0x3D83, 0x3D84, 0x3D85, 0x3D86, 0x3D87, +0x3D88, 0x3D89, 0x3D8A, 0x3D8B, 0x3D8C, 0x3D8D, 0x3D8E, 0x3D8F, +0x3D90, 0x3D91, 0x3D92, 0x3D93, 0x3D94, 0x3D95, 0x3D96, 0x3D97, +0x3D98, 0x3D99, 0x3D9A, 0x3D9B, 0x3D9C, 0x3D9D, 0x3D9E, 0x3D9F, +0x3DA0, 0x3DA1, 0x3DA2, 0x3DA3, 0x3DA4, 0x3DA5, 0x3DA6, 0x3DA7, +0x3DA8, 0x3DA9, 0x3DAA, 0x3DAB, 0x3DAC, 0x3DAD, 0x3DAE, 0x3DAF, +0x3DB0, 0x3DB1, 0x3DB2, 0x3DB3, 0x3DB4, 0x3DB5, 0x3DB6, 0x3DB7, +0x3DB8, 0x3DB9, 0x3DBA, 0x3DBB, 0x3DBC, 0x3DBD, 0x3DBE, 0x3DBF, +0x3DC0, 0x3DC1, 0x3DC2, 0x3DC3, 0x3DC4, 0x3DC5, 0x3DC6, 0x3DC7, +0x3DC8, 0x3DC9, 0x3DCA, 0x3DCB, 0x3DCC, 0x3DCD, 0x3DCE, 0x3DCF, +0x3DD0, 0x3DD1, 0x3DD2, 0x3DD3, 0x3DD4, 0x3DD5, 0x3DD6, 0x3DD7, +0x3DD8, 0x3DD9, 0x3DDA, 0x3DDB, 0x3DDC, 0x3DDD, 0x3DDE, 0x3DDF, +0x3DE0, 0x3DE1, 0x3DE2, 0x3DE3, 0x3DE4, 0x3DE5, 0x3DE6, 0xFE70, +0x3DE7, 0x3DE8, 0x3DE9, 0x3DEA, 0x3DEB, 0x3DEC, 0x3DED, 0x3DEE, +0x3DEF, 0x3DF0, 0x3DF1, 0x3DF2, 0x3DF3, 0x3DF4, 0x3DF5, 0x3DF6, +0x3DF7, 0x3DF8, 0x3DF9, 0x3DFA, 0x3DFB, 0x3DFC, 0x3DFD, 0x3DFE, +0x3DFF, 0x3E00, 0x3E01, 0x3E02, 0x3E03, 0x3E04, 0x3E05, 0x3E06, +0x3E07, 0x3E08, 0x3E09, 0x3E0A, 0x3E0B, 0x3E0C, 0x3E0D, 0x3E0E, +0x3E0F, 0x3E10, 0x3E11, 0x3E12, 0x3E13, 0x3E14, 0x3E15, 0x3E16, +0x3E17, 0x3E18, 0x3E19, 0x3E1A, 0x3E1B, 0x3E1C, 0x3E1D, 0x3E1E, +0x3E1F, 0x3E20, 0x3E21, 0x3E22, 0x3E23, 0x3E24, 0x3E25, 0x3E26, +0x3E27, 0x3E28, 0x3E29, 0x3E2A, 0x3E2B, 0x3E2C, 0x3E2D, 0x3E2E, +0x3E2F, 0x3E30, 0x3E31, 0x3E32, 0x3E33, 0x3E34, 0x3E35, 0x3E36, +0x3E37, 0x3E38, 0x3E39, 0x3E3A, 0x3E3B, 0x3E3C, 0x3E3D, 0x3E3E, +0x3E3F, 0x3E40, 0x3E41, 0x3E42, 0x3E43, 0x3E44, 0x3E45, 0x3E46, +0x3E47, 0x3E48, 0x3E49, 0x3E4A, 0x3E4B, 0x3E4C, 0x3E4D, 0x3E4E, +0x3E4F, 0x3E50, 0x3E51, 0x3E52, 0x3E53, 0x3E54, 0x3E55, 0x3E56, +0x3E57, 0x3E58, 0x3E59, 0x3E5A, 0x3E5B, 0x3E5C, 0x3E5D, 0x3E5E, +0x3E5F, 0x3E60, 0x3E61, 0x3E62, 0x3E63, 0x3E64, 0x3E65, 0x3E66, +0x3E67, 0x3E68, 0x3E69, 0x3E6A, 0x3E6B, 0x3E6C, 0x3E6D, 0x3E6E, +0x3E6F, 0x3E70, 0x3E71, 0x3E72, 0x3E73, 0x3E74, 0x3E75, 0x3E76, +0x3E77, 0x3E78, 0x3E79, 0x3E7A, 0x3E7B, 0x3E7C, 0x3E7D, 0x3E7E, +0x3E7F, 0x3E80, 0x3E81, 0x3E82, 0x3E83, 0x3E84, 0x3E85, 0x3E86, +0x3E87, 0x3E88, 0x3E89, 0x3E8A, 0x3E8B, 0x3E8C, 0x3E8D, 0x3E8E, +0x3E8F, 0x3E90, 0x3E91, 0x3E92, 0x3E93, 0x3E94, 0x3E95, 0x3E96, +0x3E97, 0x3E98, 0x3E99, 0x3E9A, 0x3E9B, 0x3E9C, 0x3E9D, 0x3E9E, +0x3E9F, 0x3EA0, 0x3EA1, 0x3EA2, 0x3EA3, 0x3EA4, 0x3EA5, 0x3EA6, +0x3EA7, 0x3EA8, 0x3EA9, 0x3EAA, 0x3EAB, 0x3EAC, 0x3EAD, 0x3EAE, +0x3EAF, 0x3EB0, 0x3EB1, 0x3EB2, 0x3EB3, 0x3EB4, 0x3EB5, 0x3EB6, +0x3EB7, 0x3EB8, 0x3EB9, 0x3EBA, 0x3EBB, 0x3EBC, 0x3EBD, 0x3EBE, +0x3EBF, 0x3EC0, 0x3EC1, 0x3EC2, 0x3EC3, 0x3EC4, 0x3EC5, 0x3EC6, +0x3EC7, 0x3EC8, 0x3EC9, 0x3ECA, 0x3ECB, 0x3ECC, 0x3ECD, 0x3ECE, +0x3ECF, 0x3ED0, 0x3ED1, 0x3ED2, 0x3ED3, 0x3ED4, 0x3ED5, 0x3ED6, +0x3ED7, 0x3ED8, 0x3ED9, 0x3EDA, 0x3EDB, 0x3EDC, 0x3EDD, 0x3EDE, +0x3EDF, 0x3EE0, 0x3EE1, 0x3EE2, 0x3EE3, 0x3EE4, 0x3EE5, 0x3EE6, +0x3EE7, 0x3EE8, 0x3EE9, 0x3EEA, 0x3EEB, 0x3EEC, 0x3EED, 0x3EEE, +0x3EEF, 0x3EF0, 0x3EF1, 0x3EF2, 0x3EF3, 0x3EF4, 0x3EF5, 0x3EF6, +0x3EF7, 0x3EF8, 0x3EF9, 0x3EFA, 0x3EFB, 0x3EFC, 0x3EFD, 0x3EFE, +0x3EFF, 0x3F00, 0x3F01, 0x3F02, 0x3F03, 0x3F04, 0x3F05, 0x3F06, +0x3F07, 0x3F08, 0x3F09, 0x3F0A, 0x3F0B, 0x3F0C, 0x3F0D, 0x3F0E, +0x3F0F, 0x3F10, 0x3F11, 0x3F12, 0x3F13, 0x3F14, 0x3F15, 0x3F16, +0x3F17, 0x3F18, 0x3F19, 0x3F1A, 0x3F1B, 0x3F1C, 0x3F1D, 0x3F1E, +0x3F1F, 0x3F20, 0x3F21, 0x3F22, 0x3F23, 0x3F24, 0x3F25, 0x3F26, +0x3F27, 0x3F28, 0x3F29, 0x3F2A, 0x3F2B, 0x3F2C, 0x3F2D, 0x3F2E, +0x3F2F, 0x3F30, 0x3F31, 0x3F32, 0x3F33, 0x3F34, 0x3F35, 0x3F36, +0x3F37, 0x3F38, 0x3F39, 0x3F3A, 0x3F3B, 0x3F3C, 0x3F3D, 0x3F3E, +0x3F3F, 0x3F40, 0x3F41, 0x3F42, 0x3F43, 0x3F44, 0x3F45, 0x3F46, +0x3F47, 0x3F48, 0x3F49, 0x3F4A, 0x3F4B, 0x3F4C, 0x3F4D, 0x3F4E, +0x3F4F, 0x3F50, 0x3F51, 0x3F52, 0x3F53, 0x3F54, 0x3F55, 0x3F56, +0x3F57, 0x3F58, 0x3F59, 0x3F5A, 0x3F5B, 0x3F5C, 0x3F5D, 0x3F5E, +0x3F5F, 0x3F60, 0x3F61, 0x3F62, 0x3F63, 0x3F64, 0x3F65, 0x3F66, +0x3F67, 0x3F68, 0x3F69, 0x3F6A, 0x3F6B, 0x3F6C, 0x3F6D, 0x3F6E, +0x3F6F, 0x3F70, 0x3F71, 0x3F72, 0x3F73, 0x3F74, 0x3F75, 0x3F76, +0x3F77, 0x3F78, 0x3F79, 0x3F7A, 0x3F7B, 0x3F7C, 0x3F7D, 0x3F7E, +0x3F7F, 0x3F80, 0x3F81, 0x3F82, 0x3F83, 0x3F84, 0x3F85, 0x3F86, +0x3F87, 0x3F88, 0x3F89, 0x3F8A, 0x3F8B, 0x3F8C, 0x3F8D, 0x3F8E, +0x3F8F, 0x3F90, 0x3F91, 0x3F92, 0x3F93, 0x3F94, 0x3F95, 0x3F96, +0x3F97, 0x3F98, 0x3F99, 0x3F9A, 0x3F9B, 0x3F9C, 0x3F9D, 0x3F9E, +0x3F9F, 0x3FA0, 0x3FA1, 0x3FA2, 0x3FA3, 0x3FA4, 0x3FA5, 0x3FA6, +0x3FA7, 0x3FA8, 0x3FA9, 0x3FAA, 0x3FAB, 0x3FAC, 0x3FAD, 0x3FAE, +0x3FAF, 0x3FB0, 0x3FB1, 0x3FB2, 0x3FB3, 0x3FB4, 0x3FB5, 0x3FB6, +0x3FB7, 0x3FB8, 0x3FB9, 0x3FBA, 0x3FBB, 0x3FBC, 0x3FBD, 0xFE72, +0x3FBE, 0x3FBF, 0x3FC0, 0x3FC1, 0x3FC2, 0x3FC3, 0x3FC4, 0x3FC5, +0x3FC6, 0x3FC7, 0x3FC8, 0x3FC9, 0x3FCA, 0x3FCB, 0x3FCC, 0x3FCD, +0x3FCE, 0x3FCF, 0x3FD0, 0x3FD1, 0x3FD2, 0x3FD3, 0x3FD4, 0x3FD5, +0x3FD6, 0x3FD7, 0x3FD8, 0x3FD9, 0x3FDA, 0x3FDB, 0x3FDC, 0x3FDD, +0x3FDE, 0x3FDF, 0x3FE0, 0x3FE1, 0x3FE2, 0x3FE3, 0x3FE4, 0x3FE5, +0x3FE6, 0x3FE7, 0x3FE8, 0x3FE9, 0x3FEA, 0x3FEB, 0x3FEC, 0x3FED, +0x3FEE, 0x3FEF, 0x3FF0, 0x3FF1, 0x3FF2, 0x3FF3, 0x3FF4, 0x3FF5, +0x3FF6, 0x3FF7, 0x3FF8, 0x3FF9, 0x3FFA, 0x3FFB, 0x3FFC, 0x3FFD, +0x3FFE, 0x3FFF, 0x4000, 0x4001, 0x4002, 0x4003, 0x4004, 0x4005, +0x4006, 0x4007, 0x4008, 0x4009, 0x400A, 0x400B, 0x400C, 0x400D, +0x400E, 0x400F, 0x4010, 0x4011, 0x4012, 0x4013, 0x4014, 0x4015, +0x4016, 0x4017, 0x4018, 0x4019, 0x401A, 0x401B, 0x401C, 0x401D, +0x401E, 0x401F, 0x4020, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, +0x4026, 0x4027, 0x4028, 0x4029, 0x402A, 0x402B, 0x402C, 0x402D, +0x402E, 0x402F, 0x4030, 0x4031, 0xFE78, 0x4032, 0x4033, 0x4034, +0x4035, 0xFE77, 0x4036, 0x4037, 0x4038, 0x4039, 0x403A, 0x403B, +0x403C, 0x403D, 0x403E, 0x403F, 0x4040, 0x4041, 0x4042, 0x4043, +0x4044, 0x4045, 0x4046, 0x4047, 0x4048, 0x4049, 0x404A, 0x404B, +0x404C, 0x404D, 0x404E, 0x404F, 0x4050, 0x4051, 0x4052, 0x4053, +0x4054, 0x4055, 0x4056, 0x4057, 0x4058, 0x4059, 0x405A, 0x405B, +0x405C, 0x405D, 0x405E, 0x405F, 0x4060, 0xFE7A, 0x4061, 0x4062, +0x4063, 0x4064, 0x4065, 0x4066, 0x4067, 0x4068, 0x4069, 0x406A, +0x406B, 0x406C, 0x406D, 0x406E, 0x406F, 0x4070, 0x4071, 0x4072, +0x4073, 0x4074, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407A, +0x407B, 0x407C, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, 0x4082, +0x4083, 0x4084, 0x4085, 0x4086, 0x4087, 0x4088, 0x4089, 0x408A, +0x408B, 0x408C, 0x408D, 0x408E, 0x408F, 0x4090, 0x4091, 0x4092, +0x4093, 0x4094, 0x4095, 0x4096, 0x4097, 0x4098, 0x4099, 0x409A, +0x409B, 0x409C, 0x409D, 0x409E, 0x409F, 0x40A0, 0x40A1, 0x40A2, +0x40A3, 0x40A4, 0x40A5, 0x40A6, 0x40A7, 0x40A8, 0x40A9, 0x40AA, +0x40AB, 0x40AC, 0x40AD, 0x40AE, 0x40AF, 0x40B0, 0x40B1, 0x40B2, +0x40B3, 0x40B4, 0x40B5, 0x40B6, 0x40B7, 0x40B8, 0x40B9, 0x40BA, +0x40BB, 0x40BC, 0x40BD, 0x40BE, 0x40BF, 0x40C0, 0x40C1, 0x40C2, +0x40C3, 0x40C4, 0x40C5, 0x40C6, 0x40C7, 0x40C8, 0x40C9, 0x40CA, +0x40CB, 0x40CC, 0x40CD, 0x40CE, 0x40CF, 0x40D0, 0x40D1, 0x40D2, +0x40D3, 0x40D4, 0x40D5, 0x40D6, 0x40D7, 0x40D8, 0x40D9, 0x40DA, +0x40DB, 0x40DC, 0x40DD, 0x40DE, 0x40DF, 0x40E0, 0x40E1, 0x40E2, +0x40E3, 0x40E4, 0x40E5, 0x40E6, 0x40E7, 0x40E8, 0x40E9, 0x40EA, +0x40EB, 0x40EC, 0x40ED, 0x40EE, 0x40EF, 0x40F0, 0x40F1, 0x40F2, +0x40F3, 0x40F4, 0x40F5, 0x40F6, 0x40F7, 0x40F8, 0x40F9, 0x40FA, +0x40FB, 0x40FC, 0x40FD, 0x40FE, 0x40FF, 0x4100, 0x4101, 0x4102, +0x4103, 0x4104, 0x4105, 0x4106, 0x4107, 0x4108, 0x4109, 0x410A, +0x410B, 0x410C, 0x410D, 0x410E, 0x410F, 0x4110, 0x4111, 0x4112, +0x4113, 0x4114, 0x4115, 0x4116, 0x4117, 0x4118, 0x4119, 0x411A, +0x411B, 0x411C, 0x411D, 0x411E, 0x411F, 0x4120, 0x4121, 0x4122, +0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128, 0x4129, 0x412A, +0x412B, 0x412C, 0x412D, 0x412E, 0x412F, 0x4130, 0x4131, 0x4132, +0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138, 0x4139, 0x413A, +0x413B, 0x413C, 0x413D, 0x413E, 0x413F, 0x4140, 0x4141, 0x4142, +0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148, 0x4149, 0x414A, +0x414B, 0x414C, 0x414D, 0x414E, 0x414F, 0x4150, 0x4151, 0x4152, +0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158, 0xFE7B, 0x4159, +0x415A, 0x415B, 0x415C, 0x415D, 0x415E, 0x415F, 0x4160, 0x4161, +0x4162, 0x4163, 0x4164, 0x4165, 0x4166, 0x4167, 0x4168, 0x4169, +0x416A, 0x416B, 0x416C, 0x416D, 0x416E, 0x416F, 0x4170, 0x4171, +0x4172, 0x4173, 0x4174, 0x4175, 0x4176, 0x4177, 0x4178, 0x4179, +0x417A, 0x417B, 0x417C, 0x417D, 0x417E, 0x417F, 0x4180, 0x4181, +0x4182, 0x4183, 0x4184, 0x4185, 0x4186, 0x4187, 0x4188, 0x4189, +0x418A, 0x418B, 0x418C, 0x418D, 0x418E, 0x418F, 0x4190, 0x4191, +0x4192, 0x4193, 0x4194, 0x4195, 0x4196, 0x4197, 0x4198, 0x4199, +0x419A, 0x419B, 0x419C, 0x419D, 0x419E, 0x419F, 0x41A0, 0x41A1, +0x41A2, 0x41A3, 0x41A4, 0x41A5, 0x41A6, 0x41A7, 0x41A8, 0x41A9, +0x41AA, 0x41AB, 0x41AC, 0x41AD, 0x41AE, 0x41AF, 0x41B0, 0x41B1, +0x41B2, 0x41B3, 0x41B4, 0x41B5, 0x41B6, 0x41B7, 0x41B8, 0x41B9, +0x41BA, 0x41BB, 0x41BC, 0x41BD, 0x41BE, 0x41BF, 0x41C0, 0x41C1, +0x41C2, 0x41C3, 0x41C4, 0x41C5, 0x41C6, 0x41C7, 0x41C8, 0x41C9, +0x41CA, 0x41CB, 0x41CC, 0x41CD, 0x41CE, 0x41CF, 0x41D0, 0x41D1, +0x41D2, 0x41D3, 0x41D4, 0x41D5, 0x41D6, 0x41D7, 0x41D8, 0x41D9, +0x41DA, 0x41DB, 0x41DC, 0x41DD, 0x41DE, 0x41DF, 0x41E0, 0x41E1, +0x41E2, 0x41E3, 0x41E4, 0x41E5, 0x41E6, 0x41E7, 0x41E8, 0x41E9, +0x41EA, 0x41EB, 0x41EC, 0x41ED, 0x41EE, 0x41EF, 0x41F0, 0x41F1, +0x41F2, 0x41F3, 0x41F4, 0x41F5, 0x41F6, 0x41F7, 0x41F8, 0x41F9, +0x41FA, 0x41FB, 0x41FC, 0x41FD, 0x41FE, 0x41FF, 0x4200, 0x4201, +0x4202, 0x4203, 0x4204, 0x4205, 0x4206, 0x4207, 0x4208, 0x4209, +0x420A, 0x420B, 0x420C, 0x420D, 0x420E, 0x420F, 0x4210, 0x4211, +0x4212, 0x4213, 0x4214, 0x4215, 0x4216, 0x4217, 0x4218, 0x4219, +0x421A, 0x421B, 0x421C, 0x421D, 0x421E, 0x421F, 0x4220, 0x4221, +0x4222, 0x4223, 0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, +0x422A, 0x422B, 0x422C, 0x422D, 0x422E, 0x422F, 0x4230, 0x4231, +0x4232, 0x4233, 0x4234, 0x4235, 0x4236, 0x4237, 0x4238, 0x4239, +0x423A, 0x423B, 0x423C, 0x423D, 0x423E, 0x423F, 0x4240, 0x4241, +0x4242, 0x4243, 0x4244, 0x4245, 0x4246, 0x4247, 0x4248, 0x4249, +0x424A, 0x424B, 0x424C, 0x424D, 0x424E, 0x424F, 0x4250, 0x4251, +0x4252, 0x4253, 0x4254, 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, +0x425A, 0x425B, 0x425C, 0x425D, 0x425E, 0x425F, 0x4260, 0x4261, +0x4262, 0x4263, 0x4264, 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, +0x426A, 0x426B, 0x426C, 0x426D, 0x426E, 0x426F, 0x4270, 0x4271, +0x4272, 0x4273, 0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, +0x427A, 0x427B, 0x427C, 0x427D, 0x427E, 0x427F, 0x4280, 0x4281, +0x4282, 0x4283, 0x4284, 0x4285, 0x4286, 0x4287, 0x4288, 0x4289, +0x428A, 0x428B, 0x428C, 0x428D, 0x428E, 0x428F, 0x4290, 0x4291, +0x4292, 0x4293, 0x4294, 0x4295, 0x4296, 0x4297, 0x4298, 0x4299, +0x429A, 0x429B, 0x429C, 0x429D, 0x429E, 0x429F, 0x42A0, 0x42A1, +0x42A2, 0x42A3, 0x42A4, 0x42A5, 0x42A6, 0x42A7, 0x42A8, 0x42A9, +0x42AA, 0x42AB, 0x42AC, 0x42AD, 0x42AE, 0x42AF, 0x42B0, 0x42B1, +0x42B2, 0x42B3, 0x42B4, 0x42B5, 0x42B6, 0x42B7, 0x42B8, 0x42B9, +0x42BA, 0x42BB, 0x42BC, 0x42BD, 0x42BE, 0x42BF, 0x42C0, 0x42C1, +0x42C2, 0x42C3, 0x42C4, 0x42C5, 0x42C6, 0x42C7, 0x42C8, 0x42C9, +0x42CA, 0x42CB, 0x42CC, 0x42CD, 0xFE7D, 0x42CE, 0x42CF, 0x42D0, +0x42D1, 0x42D2, 0x42D3, 0x42D4, 0x42D5, 0x42D6, 0x42D7, 0x42D8, +0x42D9, 0x42DA, 0x42DB, 0x42DC, 0x42DD, 0x42DE, 0x42DF, 0x42E0, +0x42E1, 0xFE7C, 0x42E2, 0x42E3, 0x42E4, 0x42E5, 0x42E6, 0x42E7, +0x42E8, 0x42E9, 0x42EA, 0x42EB, 0x42EC, 0x42ED, 0x42EE, 0x42EF, +0x42F0, 0x42F1, 0x42F2, 0x42F3, 0x42F4, 0x42F5, 0x42F6, 0x42F7, +0x42F8, 0x42F9, 0x42FA, 0x42FB, 0x42FC, 0x42FD, 0x42FE, 0x42FF, +0x4300, 0x4301, 0x4302, 0x4303, 0x4304, 0x4305, 0x4306, 0x4307, +0x4308, 0x4309, 0x430A, 0x430B, 0x430C, 0x430D, 0x430E, 0x430F, +0x4310, 0x4311, 0x4312, 0x4313, 0x4314, 0x4315, 0x4316, 0x4317, +0x4318, 0x4319, 0x431A, 0x431B, 0x431C, 0x431D, 0x431E, 0x431F, +0x4320, 0x4321, 0x4322, 0x4323, 0x4324, 0x4325, 0x4326, 0x4327, +0x4328, 0x4329, 0x432A, 0x432B, 0x432C, 0x432D, 0x432E, 0x432F, +0x4330, 0x4331, 0x4332, 0x4333, 0x4334, 0x4335, 0x4336, 0x4337, +0x4338, 0x4339, 0x433A, 0x433B, 0x433C, 0x433D, 0x433E, 0x433F, +0x4340, 0x4341, 0x4342, 0x4343, 0x4344, 0x4345, 0x4346, 0x4347, +0x4348, 0x4349, 0x434A, 0x434B, 0x434C, 0x434D, 0x434E, 0x434F, +0x4350, 0x4351, 0x4352, 0x4353, 0x4354, 0x4355, 0x4356, 0x4357, +0x4358, 0x4359, 0x435A, 0x435B, 0x435C, 0x435D, 0x435E, 0x435F, +0x4360, 0x4361, 0x4362, 0x4363, 0x4364, 0x4365, 0x4366, 0x4367, +0x4368, 0x4369, 0x436A, 0x436B, 0x436C, 0x436D, 0x436E, 0x436F, +0x4370, 0x4371, 0x4372, 0x4373, 0x4374, 0x4375, 0x4376, 0x4377, +0x4378, 0x4379, 0x437A, 0x437B, 0x437C, 0x437D, 0x437E, 0x437F, +0x4380, 0x4381, 0x4382, 0x4383, 0x4384, 0x4385, 0x4386, 0x4387, +0x4388, 0x4389, 0x438A, 0x438B, 0x438C, 0x438D, 0x438E, 0x438F, +0x4390, 0x4391, 0x4392, 0x4393, 0x4394, 0x4395, 0x4396, 0x4397, +0x4398, 0x4399, 0x439A, 0x439B, 0x439C, 0x439D, 0x439E, 0x439F, +0x43A0, 0x43A1, 0x43A2, 0xFE80, 0x43A3, 0x43A4, 0x43A5, 0x43A6, +0x43A7, 0xFE81, 0x43A8, 0x43A9, 0x43AA, 0x43AB, 0x43AC, 0x43AD, +0x43AE, 0x43AF, 0x43B0, 0x43B1, 0x43B2, 0x43B3, 0x43B4, 0x43B5, +0x43B6, 0x43B7, 0x43B8, 0x43B9, 0x43BA, 0x43BB, 0x43BC, 0x43BD, +0x43BE, 0x43BF, 0x43C0, 0x43C1, 0x43C2, 0x43C3, 0x43C4, 0x43C5, +0x43C6, 0x43C7, 0x43C8, 0x43C9, 0x43CA, 0x43CB, 0x43CC, 0x43CD, +0x43CE, 0x43CF, 0x43D0, 0x43D1, 0x43D2, 0x43D3, 0x43D4, 0x43D5, +0x43D6, 0x43D7, 0x43D8, 0x43D9, 0x43DA, 0x43DB, 0x43DC, 0x43DD, +0x43DE, 0x43DF, 0x43E0, 0x43E1, 0x43E2, 0x43E3, 0x43E4, 0x43E5, +0x43E6, 0x43E7, 0x43E8, 0x43E9, 0x43EA, 0x43EB, 0x43EC, 0x43ED, +0x43EE, 0x43EF, 0x43F0, 0x43F1, 0x43F2, 0x43F3, 0x43F4, 0x43F5, +0x43F6, 0x43F7, 0x43F8, 0x43F9, 0xFE82, 0x43FA, 0x43FB, 0x43FC, +0x43FD, 0x43FE, 0x43FF, 0x4400, 0x4401, 0x4402, 0x4403, 0x4404, +0x4405, 0x4406, 0x4407, 0x4408, 0x4409, 0xFE83, 0x440A, 0x440B, +0x440C, 0x440D, 0x440E, 0x440F, 0x4410, 0x4411, 0x4412, 0x4413, +0x4414, 0x4415, 0x4416, 0x4417, 0x4418, 0x4419, 0x441A, 0x441B, +0x441C, 0x441D, 0x441E, 0x441F, 0x4420, 0x4421, 0x4422, 0x4423, +0x4424, 0x4425, 0x4426, 0x4427, 0x4428, 0x4429, 0x442A, 0x442B, +0x442C, 0x442D, 0x442E, 0x442F, 0x4430, 0x4431, 0x4432, 0x4433, +0x4434, 0x4435, 0x4436, 0x4437, 0x4438, 0x4439, 0x443A, 0x443B, +0x443C, 0x443D, 0x443E, 0x443F, 0x4440, 0x4441, 0x4442, 0x4443, +0x4444, 0x4445, 0x4446, 0x4447, 0x4448, 0x4449, 0x444A, 0x444B, +0x444C, 0x444D, 0x444E, 0x444F, 0x4450, 0x4451, 0x4452, 0x4453, +0x4454, 0x4455, 0x4456, 0x4457, 0x4458, 0x4459, 0x445A, 0x445B, +0x445C, 0x445D, 0x445E, 0x445F, 0x4460, 0x4461, 0x4462, 0x4463, +0x4464, 0x4465, 0x4466, 0x4467, 0x4468, 0x4469, 0x446A, 0x446B, +0x446C, 0x446D, 0x446E, 0x446F, 0x4470, 0x4471, 0x4472, 0x4473, +0x4474, 0x4475, 0x4476, 0x4477, 0x4478, 0x4479, 0x447A, 0x447B, +0x447C, 0x447D, 0x447E, 0x447F, 0x4480, 0x4481, 0x4482, 0x4483, +0x4484, 0x4485, 0x4486, 0x4487, 0x4488, 0x4489, 0x448A, 0x448B, +0x448C, 0x448D, 0x448E, 0x448F, 0x4490, 0x4491, 0x4492, 0x4493, +0x4494, 0x4495, 0x4496, 0x4497, 0x4498, 0x4499, 0x449A, 0x449B, +0x449C, 0x449D, 0x449E, 0x449F, 0x44A0, 0x44A1, 0x44A2, 0x44A3, +0x44A4, 0x44A5, 0x44A6, 0x44A7, 0x44A8, 0x44A9, 0x44AA, 0x44AB, +0x44AC, 0x44AD, 0x44AE, 0x44AF, 0x44B0, 0x44B1, 0x44B2, 0x44B3, +0x44B4, 0x44B5, 0x44B6, 0x44B7, 0x44B8, 0x44B9, 0x44BA, 0x44BB, +0x44BC, 0x44BD, 0x44BE, 0x44BF, 0x44C0, 0x44C1, 0x44C2, 0x44C3, +0x44C4, 0x44C5, 0x44C6, 0x44C7, 0x44C8, 0x44C9, 0x44CA, 0x44CB, +0x44CC, 0x44CD, 0x44CE, 0x44CF, 0x44D0, 0x44D1, 0x44D2, 0x44D3, +0x44D4, 0x44D5, 0x44D6, 0x44D7, 0x44D8, 0x44D9, 0x44DA, 0x44DB, +0x44DC, 0x44DD, 0x44DE, 0x44DF, 0x44E0, 0x44E1, 0x44E2, 0x44E3, +0x44E4, 0x44E5, 0x44E6, 0x44E7, 0x44E8, 0x44E9, 0x44EA, 0x44EB, +0x44EC, 0x44ED, 0x44EE, 0x44EF, 0x44F0, 0x44F1, 0x44F2, 0x44F3, +0x44F4, 0x44F5, 0x44F6, 0x44F7, 0x44F8, 0x44F9, 0x44FA, 0x44FB, +0x44FC, 0x44FD, 0x44FE, 0x44FF, 0x4500, 0x4501, 0x4502, 0x4503, +0x4504, 0x4505, 0x4506, 0x4507, 0x4508, 0x4509, 0x450A, 0x450B, +0x450C, 0x450D, 0x450E, 0x450F, 0x4510, 0x4511, 0x4512, 0x4513, +0x4514, 0x4515, 0x4516, 0x4517, 0x4518, 0x4519, 0x451A, 0x451B, +0x451C, 0x451D, 0x451E, 0x451F, 0x4520, 0x4521, 0x4522, 0x4523, +0x4524, 0x4525, 0x4526, 0x4527, 0x4528, 0x4529, 0x452A, 0x452B, +0x452C, 0x452D, 0x452E, 0x452F, 0x4530, 0x4531, 0x4532, 0x4533, +0x4534, 0x4535, 0x4536, 0x4537, 0x4538, 0x4539, 0x453A, 0x453B, +0x453C, 0x453D, 0x453E, 0x453F, 0x4540, 0x4541, 0x4542, 0x4543, +0x4544, 0x4545, 0x4546, 0x4547, 0x4548, 0x4549, 0x454A, 0x454B, +0x454C, 0x454D, 0x454E, 0x454F, 0x4550, 0x4551, 0x4552, 0x4553, +0x4554, 0x4555, 0x4556, 0x4557, 0x4558, 0x4559, 0x455A, 0x455B, +0x455C, 0x455D, 0x455E, 0x455F, 0x4560, 0x4561, 0x4562, 0x4563, +0x4564, 0x4565, 0x4566, 0x4567, 0x4568, 0x4569, 0x456A, 0x456B, +0x456C, 0x456D, 0x456E, 0x456F, 0x4570, 0x4571, 0x4572, 0x4573, +0x4574, 0x4575, 0x4576, 0x4577, 0x4578, 0x4579, 0x457A, 0x457B, +0x457C, 0x457D, 0x457E, 0x457F, 0x4580, 0x4581, 0x4582, 0x4583, +0x4584, 0x4585, 0x4586, 0x4587, 0x4588, 0x4589, 0x458A, 0x458B, +0x458C, 0x458D, 0x458E, 0x458F, 0x4590, 0x4591, 0x4592, 0x4593, +0x4594, 0x4595, 0x4596, 0x4597, 0x4598, 0x4599, 0x459A, 0x459B, +0x459C, 0x459D, 0x459E, 0x459F, 0x45A0, 0x45A1, 0x45A2, 0x45A3, +0x45A4, 0x45A5, 0x45A6, 0x45A7, 0x45A8, 0x45A9, 0x45AA, 0x45AB, +0x45AC, 0x45AD, 0x45AE, 0x45AF, 0x45B0, 0x45B1, 0x45B2, 0x45B3, +0x45B4, 0x45B5, 0x45B6, 0x45B7, 0x45B8, 0x45B9, 0x45BA, 0x45BB, +0x45BC, 0x45BD, 0x45BE, 0x45BF, 0x45C0, 0x45C1, 0x45C2, 0xFE85, +0x45C3, 0x45C4, 0x45C5, 0x45C6, 0x45C7, 0x45C8, 0x45C9, 0x45CA, +0x45CB, 0x45CC, 0x45CD, 0x45CE, 0x45CF, 0x45D0, 0x45D1, 0x45D2, +0x45D3, 0x45D4, 0x45D5, 0x45D6, 0x45D7, 0x45D8, 0x45D9, 0x45DA, +0x45DB, 0x45DC, 0x45DD, 0x45DE, 0x45DF, 0x45E0, 0x45E1, 0x45E2, +0x45E3, 0x45E4, 0x45E5, 0x45E6, 0x45E7, 0x45E8, 0x45E9, 0x45EA, +0x45EB, 0x45EC, 0x45ED, 0x45EE, 0x45EF, 0x45F0, 0x45F1, 0x45F2, +0x45F3, 0x45F4, 0xFE86, 0x45F5, 0x45F6, 0xFE87, 0x45F7, 0x45F8, +0x45F9, 0x45FA, 0xFE88, 0xFE89, 0x45FB, 0xFE8A, 0xFE8B, 0x45FC, +0x45FD, 0x45FE, 0x45FF, 0x4600, 0x4601, 0x4602, 0x4603, 0x4604, +0x4605, 0x4606, 0x4607, 0x4608, 0x4609, 0x460A, 0x460B, 0x460C, +0x460D, 0x460E, 0x460F, 0xFE8D, 0x4610, 0x4611, 0x4612, 0xFE8C, +0x4613, 0x4614, 0x4615, 0x4616, 0x4617, 0x4618, 0x4619, 0x461A, +0x461B, 0x461C, 0x461D, 0x461E, 0x461F, 0x4620, 0x4621, 0x4622, +0x4623, 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0xFE8F, 0xFE8E, +0x4629, 0x462A, 0x462B, 0x462C, 0x462D, 0x462E, 0x462F, 0x4630, +0x4631, 0x4632, 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, +0x4639, 0x463A, 0x463B, 0x463C, 0x463D, 0x463E, 0x463F, 0x4640, +0x4641, 0x4642, 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, +0x4649, 0x464A, 0x464B, 0x464C, 0x464D, 0x464E, 0x464F, 0x4650, +0x4651, 0x4652, 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, +0x4659, 0x465A, 0x465B, 0x465C, 0x465D, 0x465E, 0x465F, 0x4660, +0x4661, 0x4662, 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, +0x4669, 0x466A, 0x466B, 0x466C, 0x466D, 0x466E, 0x466F, 0x4670, +0x4671, 0x4672, 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, +0x4679, 0x467A, 0x467B, 0x467C, 0x467D, 0x467E, 0x467F, 0x4680, +0x4681, 0x4682, 0x4683, 0x4684, 0x4685, 0x4686, 0x4687, 0x4688, +0x4689, 0x468A, 0x468B, 0x468C, 0x468D, 0x468E, 0x468F, 0x4690, +0x4691, 0x4692, 0x4693, 0x4694, 0x4695, 0x4696, 0x4697, 0x4698, +0x4699, 0x469A, 0x469B, 0x469C, 0x469D, 0x469E, 0x469F, 0x46A0, +0x46A1, 0x46A2, 0x46A3, 0x46A4, 0x46A5, 0x46A6, 0x46A7, 0x46A8, +0x46A9, 0x46AA, 0x46AB, 0x46AC, 0x46AD, 0x46AE, 0x46AF, 0x46B0, +0x46B1, 0x46B2, 0x46B3, 0x46B4, 0x46B5, 0x46B6, 0x46B7, 0x46B8, +0x46B9, 0x46BA, 0x46BB, 0x46BC, 0x46BD, 0x46BE, 0x46BF, 0x46C0, +0x46C1, 0x46C2, 0x46C3, 0x46C4, 0x46C5, 0x46C6, 0x46C7, 0x46C8, +0x46C9, 0x46CA, 0x46CB, 0x46CC, 0x46CD, 0x46CE, 0x46CF, 0x46D0, +0x46D1, 0x46D2, 0x46D3, 0x46D4, 0x46D5, 0x46D6, 0x46D7, 0x46D8, +0x46D9, 0x46DA, 0x46DB, 0x46DC, 0x46DD, 0x46DE, 0x46DF, 0x46E0, +0x46E1, 0x46E2, 0x46E3, 0x46E4, 0x46E5, 0x46E6, 0x46E7, 0x46E8, +0x46E9, 0x46EA, 0x46EB, 0x46EC, 0x46ED, 0x46EE, 0x46EF, 0x46F0, +0x46F1, 0x46F2, 0x46F3, 0x46F4, 0x46F5, 0x46F6, 0x46F7, 0x46F8, +0x46F9, 0x46FA, 0x46FB, 0x46FC, 0x46FD, 0x46FE, 0x46FF, 0x4700, +0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706, 0x4707, 0x4708, +0x4709, 0x470A, 0x470B, 0x470C, 0x470D, 0x470E, 0x470F, 0x4710, +0x4711, 0x4712, 0x4713, 0x4714, 0x4715, 0x4716, 0x4717, 0x4718, +0x4719, 0x471A, 0x471B, 0x471C, 0x471D, 0x471E, 0x471F, 0x4720, +0x4721, 0x4722, 0x4723, 0x4724, 0x4725, 0x4726, 0x4727, 0x4728, +0x4729, 0x472A, 0x472B, 0x472C, 0x472D, 0x472E, 0x472F, 0x4730, +0x4731, 0x4732, 0x4733, 0x4734, 0x4735, 0x4736, 0x4737, 0x4738, +0x4739, 0x473A, 0x473B, 0x473C, 0x473D, 0x473E, 0x473F, 0x4740, +0x4741, 0x4742, 0x4743, 0x4744, 0x4745, 0x4746, 0x4747, 0x4748, +0x4749, 0x474A, 0x474B, 0x474C, 0x474D, 0x474E, 0x474F, 0x4750, +0x4751, 0x4752, 0x4753, 0x4754, 0x4755, 0x4756, 0x4757, 0x4758, +0x4759, 0x475A, 0x475B, 0x475C, 0x475D, 0x475E, 0x475F, 0x4760, +0x4761, 0x4762, 0x4763, 0x4764, 0x4765, 0x4766, 0x4767, 0x4768, +0x4769, 0x476A, 0x476B, 0x476C, 0x476D, 0x476E, 0x476F, 0x4770, +0x4771, 0x4772, 0x4773, 0x4774, 0x4775, 0x4776, 0x4777, 0x4778, +0x4779, 0x477A, 0x477B, 0x477C, 0x477D, 0x477E, 0x477F, 0x4780, +0x4781, 0x4782, 0x4783, 0x4784, 0x4785, 0x4786, 0x4787, 0x4788, +0x4789, 0x478A, 0x478B, 0x478C, 0x478D, 0x478E, 0x478F, 0x4790, +0x4791, 0x4792, 0x4793, 0x4794, 0x4795, 0x4796, 0x4797, 0x4798, +0x4799, 0x479A, 0x479B, 0x479C, 0x479D, 0x479E, 0x479F, 0x47A0, +0x47A1, 0x47A2, 0x47A3, 0x47A4, 0x47A5, 0x47A6, 0x47A7, 0x47A8, +0x47A9, 0x47AA, 0x47AB, 0x47AC, 0x47AD, 0x47AE, 0x47AF, 0x47B0, +0x47B1, 0x47B2, 0x47B3, 0x47B4, 0x47B5, 0x47B6, 0x47B7, 0x47B8, +0x47B9, 0x47BA, 0x47BB, 0x47BC, 0x47BD, 0x47BE, 0x47BF, 0x47C0, +0x47C1, 0x47C2, 0x47C3, 0x47C4, 0x47C5, 0x47C6, 0x47C7, 0x47C8, +0x47C9, 0x47CA, 0x47CB, 0x47CC, 0x47CD, 0x47CE, 0x47CF, 0x47D0, +0x47D1, 0x47D2, 0x47D3, 0x47D4, 0x47D5, 0x47D6, 0x47D7, 0x47D8, +0x47D9, 0x47DA, 0x47DB, 0x47DC, 0x47DD, 0x47DE, 0x47DF, 0x47E0, +0x47E1, 0x47E2, 0x47E3, 0x47E4, 0x47E5, 0x47E6, 0x47E7, 0x47E8, +0x47E9, 0x47EA, 0x47EB, 0x47EC, 0x47ED, 0x47EE, 0x47EF, 0x47F0, +0x47F1, 0x47F2, 0x47F3, 0x47F4, 0x47F5, 0x47F6, 0x47F7, 0x47F8, +0x47F9, 0x47FA, 0x47FB, 0x47FC, 0x47FD, 0x47FE, 0x47FF, 0x4800, +0x4801, 0x4802, 0x4803, 0x4804, 0x4805, 0x4806, 0x4807, 0x4808, +0x4809, 0x480A, 0x480B, 0x480C, 0x480D, 0x480E, 0x480F, 0x4810, +0x4811, 0x4812, 0x4813, 0x4814, 0x4815, 0x4816, 0x4817, 0x4818, +0x4819, 0x481A, 0x481B, 0x481C, 0x481D, 0x481E, 0x481F, 0x4820, +0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826, 0x4827, 0x4828, +0x4829, 0x482A, 0x482B, 0x482C, 0x482D, 0x482E, 0x482F, 0x4830, +0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836, 0x4837, 0x4838, +0x4839, 0x483A, 0x483B, 0x483C, 0x483D, 0x483E, 0x483F, 0x4840, +0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846, 0x4847, 0x4848, +0x4849, 0x484A, 0x484B, 0x484C, 0x484D, 0x484E, 0x484F, 0x4850, +0x4851, 0x4852, 0x4853, 0x4854, 0x4855, 0x4856, 0x4857, 0x4858, +0x4859, 0x485A, 0x485B, 0x485C, 0x485D, 0x485E, 0x485F, 0x4860, +0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866, 0x4867, 0x4868, +0x4869, 0x486A, 0x486B, 0x486C, 0x486D, 0x486E, 0x486F, 0x4870, +0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876, 0x4877, 0x4878, +0x4879, 0x487A, 0x487B, 0x487C, 0x487D, 0x487E, 0x487F, 0x4880, +0x4881, 0x4882, 0x4883, 0x4884, 0x4885, 0x4886, 0x4887, 0x4888, +0x4889, 0x488A, 0x488B, 0x488C, 0x488D, 0x488E, 0x488F, 0x4890, +0x4891, 0x4892, 0x4893, 0x4894, 0x4895, 0x4896, 0x4897, 0x4898, +0x4899, 0x489A, 0x489B, 0x489C, 0x489D, 0x489E, 0x489F, 0x48A0, +0x48A1, 0x48A2, 0x48A3, 0x48A4, 0x48A5, 0x48A6, 0x48A7, 0x48A8, +0x48A9, 0x48AA, 0x48AB, 0x48AC, 0x48AD, 0x48AE, 0x48AF, 0x48B0, +0x48B1, 0x48B2, 0x48B3, 0x48B4, 0x48B5, 0x48B6, 0x48B7, 0x48B8, +0x48B9, 0x48BA, 0x48BB, 0x48BC, 0x48BD, 0x48BE, 0x48BF, 0x48C0, +0x48C1, 0x48C2, 0x48C3, 0x48C4, 0x48C5, 0x48C6, 0x48C7, 0x48C8, +0x48C9, 0x48CA, 0x48CB, 0x48CC, 0x48CD, 0x48CE, 0x48CF, 0x48D0, +0x48D1, 0x48D2, 0x48D3, 0x48D4, 0x48D5, 0x48D6, 0x48D7, 0x48D8, +0x48D9, 0x48DA, 0x48DB, 0x48DC, 0x48DD, 0x48DE, 0x48DF, 0x48E0, +0x48E1, 0x48E2, 0x48E3, 0x48E4, 0x48E5, 0x48E6, 0x48E7, 0xFE96, +0x48E8, 0x48E9, 0x48EA, 0x48EB, 0x48EC, 0x48ED, 0x48EE, 0x48EF, +0x48F0, 0x48F1, 0x48F2, 0x48F3, 0x48F4, 0x48F5, 0x48F6, 0x48F7, +0x48F8, 0x48F9, 0x48FA, 0x48FB, 0x48FC, 0x48FD, 0x48FE, 0x48FF, +0x4900, 0x4901, 0x4902, 0x4903, 0x4904, 0x4905, 0x4906, 0x4907, +0x4908, 0x4909, 0x490A, 0x490B, 0x490C, 0x490D, 0x490E, 0xFE93, +0xFE94, 0xFE95, 0xFE97, 0xFE92, 0x490F, 0x4910, 0x4911, 0x4912, +0x4913, 0x4914, 0x4915, 0x4916, 0x4917, 0x4918, 0x4919, 0x491A, +0x491B, 0x491C, 0x491D, 0x491E, 0x491F, 0x4920, 0x4921, 0x4922, +0x4923, 0x4924, 0x4925, 0x4926, 0x4927, 0x4928, 0x4929, 0x492A, +0x492B, 0x492C, 0x492D, 0x492E, 0x492F, 0x4930, 0x4931, 0x4932, +0x4933, 0x4934, 0x4935, 0x4936, 0x4937, 0x4938, 0x4939, 0x493A, +0x493B, 0x493C, 0x493D, 0x493E, 0x493F, 0x4940, 0x4941, 0x4942, +0x4943, 0x4944, 0x4945, 0x4946, 0x4947, 0x4948, 0x4949, 0x494A, +0x494B, 0x494C, 0x494D, 0x494E, 0x494F, 0x4950, 0x4951, 0x4952, +0x4953, 0x4954, 0x4955, 0x4956, 0x4957, 0x4958, 0x4959, 0x495A, +0x495B, 0x495C, 0x495D, 0x495E, 0x495F, 0x4960, 0x4961, 0x4962, +0x4963, 0x4964, 0x4965, 0x4966, 0x4967, 0x4968, 0x4969, 0x496A, +0x496B, 0x496C, 0x496D, 0x496E, 0x496F, 0x4970, 0x4971, 0x4972, +0x4973, 0x4974, 0x4975, 0x4976, 0x4977, 0x4978, 0x4979, 0x497A, +0x497B, 0x497C, 0x497D, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, +0xFE9D, 0xFE9E, 0x497E, 0x497F, 0x4980, 0x4981, 0x4982, 0x4983, +0x4984, 0x4985, 0x4986, 0x4987, 0x4988, 0x4989, 0x498A, 0x498B, +0x498C, 0x498D, 0x498E, 0x498F, 0x4990, 0x4991, 0x4992, 0x4993, +0x4994, 0x4995, 0x4996, 0x4997, 0x4998, 0x4999, 0x499A, 0x499B, +0x499C, 0x499D, 0x499E, 0x499F, 0x49A0, 0x49A1, 0x49A2, 0x49A3, +0x49A4, 0x49A5, 0x49A6, 0x49A7, 0x49A8, 0x49A9, 0x49AA, 0x49AB, +0x49AC, 0x49AD, 0x49AE, 0x49AF, 0x49B0, 0x49B1, 0x49B2, 0x49B3, +0x49B4, 0x49B5, 0x49B6, 0x49B7, 0x49B8, 0x49B9, 0x49BA, 0x49BB, +0x49BC, 0x49BD, 0x49BE, 0x49BF, 0x49C0, 0x49C1, 0x49C2, 0x49C3, +0x49C4, 0x49C5, 0x49C6, 0x49C7, 0x49C8, 0x49C9, 0x49CA, 0x49CB, +0x49CC, 0x49CD, 0x49CE, 0x49CF, 0x49D0, 0x49D1, 0x49D2, 0x49D3, +0x49D4, 0x49D5, 0x49D6, 0x49D7, 0x49D8, 0x49D9, 0x49DA, 0x49DB, +0x49DC, 0x49DD, 0x49DE, 0x49DF, 0x49E0, 0x49E1, 0x49E2, 0x49E3, +0x49E4, 0x49E5, 0x49E6, 0x49E7, 0x49E8, 0x49E9, 0x49EA, 0x49EB, +0x49EC, 0x49ED, 0x49EE, 0x49EF, 0x49F0, 0x49F1, 0x49F2, 0x49F3, +0x49F4, 0x49F5, 0x49F6, 0x49F7, 0x49F8, 0x49F9, 0x49FA, 0x49FB, +0x49FC, 0x49FD, 0x49FE, 0x49FF, 0x4A00, 0x4A01, 0x4A02, 0x4A03, +0x4A04, 0x4A05, 0x4A06, 0x4A07, 0x4A08, 0x4A09, 0x4A0A, 0x4A0B, +0x4A0C, 0x4A0D, 0x4A0E, 0x4A0F, 0x4A10, 0x4A11, 0xFE9F, 0x4A12, +0x4A13, 0x4A14, 0x4A15, 0x4A16, 0x4A17, 0x4A18, 0x4A19, 0x4A1A, +0x4A1B, 0x4A1C, 0x4A1D, 0x4A1E, 0x4A1F, 0x4A20, 0x4A21, 0x4A22, +0x4A23, 0x4A24, 0x4A25, 0x4A26, 0x4A27, 0x4A28, 0x4A29, 0x4A2A, +0x4A2B, 0x4A2C, 0x4A2D, 0x4A2E, 0x4A2F, 0x4A30, 0x4A31, 0x4A32, +0x4A33, 0x4A34, 0x4A35, 0x4A36, 0x4A37, 0x4A38, 0x4A39, 0x4A3A, +0x4A3B, 0x4A3C, 0x4A3D, 0x4A3E, 0x4A3F, 0x4A40, 0x4A41, 0x4A42, +0x4A43, 0x4A44, 0x4A45, 0x4A46, 0x4A47, 0x4A48, 0x4A49, 0x4A4A, +0x4A4B, 0x4A4C, 0x4A4D, 0x4A4E, 0x4A4F, 0x4A50, 0x4A51, 0x4A52, +0x4A53, 0x4A54, 0x4A55, 0x4A56, 0x4A57, 0x4A58, 0x4A59, 0x4A5A, +0x4A5B, 0x4A5C, 0x4A5D, 0x4A5E, 0x4A5F, 0x4A60, 0x4A61, 0x4A62, +0xD2BB, 0xB6A1, 0x8140, 0xC6DF, 0x8141, 0x8142, 0x8143, 0xCDF2, +0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2, 0xD8A2, 0xB2BB, 0xD3EB, 0x8144, +0xD8A4, 0xB3F3, 0x8145, 0xD7A8, 0xC7D2, 0xD8A7, 0xCAC0, 0x8146, +0xC7F0, 0xB1FB, 0xD2B5, 0xB4D4, 0xB6AB, 0xCBBF, 0xD8A9, 0x8147, +0x8148, 0x8149, 0xB6AA, 0x814A, 0xC1BD, 0xD1CF, 0x814B, 0xC9A5, +0xD8AD, 0x814C, 0xB8F6, 0xD1BE, 0xE3DC, 0xD6D0, 0x814D, 0x814E, +0xB7E1, 0x814F, 0xB4AE, 0x8150, 0xC1D9, 0x8151, 0xD8BC, 0x8152, +0xCDE8, 0xB5A4, 0xCEAA, 0xD6F7, 0x8153, 0xC0F6, 0xBED9, 0xD8AF, +0x8154, 0x8155, 0x8156, 0xC4CB, 0x8157, 0xBEC3, 0x8158, 0xD8B1, +0xC3B4, 0xD2E5, 0x8159, 0xD6AE, 0xCEDA, 0xD5A7, 0xBAF5, 0xB7A6, +0xC0D6, 0x815A, 0xC6B9, 0xC5D2, 0xC7C7, 0x815B, 0xB9D4, 0x815C, +0xB3CB, 0xD2D2, 0x815D, 0x815E, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2, +0xCFB0, 0xCFE7, 0x815F, 0x8160, 0x8161, 0x8162, 0xCAE9, 0x8163, +0x8164, 0xD8C0, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 0x816A, +0xC2F2, 0xC2D2, 0x816B, 0xC8E9, 0x816C, 0x816D, 0x816E, 0x816F, +0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0xC7AC, 0x8176, +0x8177, 0x8178, 0x8179, 0x817A, 0x817B, 0x817C, 0xC1CB, 0x817D, +0xD3E8, 0xD5F9, 0x817E, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 0xBFF7, +0x8180, 0xD4C6, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE, 0x8181, 0x8182, +0xD8A8, 0x8183, 0xD1C7, 0xD0A9, 0x8184, 0x8185, 0x8186, 0xD8BD, +0xD9EF, 0xCDF6, 0xBFBA, 0x8187, 0xBDBB, 0xBAA5, 0xD2E0, 0xB2FA, +0xBAE0, 0xC4B6, 0x8188, 0xCFED, 0xBEA9, 0xCDA4, 0xC1C1, 0x8189, +0x818A, 0x818B, 0xC7D7, 0xD9F1, 0x818C, 0xD9F4, 0x818D, 0x818E, +0x818F, 0x8190, 0xC8CB, 0xD8E9, 0x8191, 0x8192, 0x8193, 0xD2DA, +0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 0xBDF6, 0xC6CD, 0xB3F0, +0x8194, 0xD8EB, 0xBDF1, 0xBDE9, 0x8195, 0xC8D4, 0xB4D3, 0x8196, +0x8197, 0xC2D8, 0x8198, 0xB2D6, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC, +0xB8B6, 0xCFC9, 0x8199, 0x819A, 0x819B, 0xD9DA, 0xD8F0, 0xC7AA, +0x819C, 0xD8EE, 0x819D, 0xB4FA, 0xC1EE, 0xD2D4, 0x819E, 0x819F, +0xD8ED, 0x81A0, 0xD2C7, 0xD8EF, 0xC3C7, 0x81A1, 0x81A2, 0x81A3, +0xD1F6, 0x81A4, 0xD6D9, 0xD8F2, 0x81A5, 0xD8F5, 0xBCFE, 0xBCDB, +0x81A6, 0x81A7, 0x81A8, 0xC8CE, 0x81A9, 0xB7DD, 0x81AA, 0xB7C2, +0x81AB, 0xC6F3, 0x81AC, 0x81AD, 0x81AE, 0x81AF, 0x81B0, 0x81B1, +0x81B2, 0xD8F8, 0xD2C1, 0x81B3, 0x81B4, 0xCEE9, 0xBCBF, 0xB7FC, +0xB7A5, 0xD0DD, 0x81B5, 0x81B6, 0x81B7, 0x81B8, 0x81B9, 0xD6DA, +0xD3C5, 0xBBEF, 0xBBE1, 0xD8F1, 0x81BA, 0x81BB, 0xC9A1, 0xCEB0, +0xB4AB, 0x81BC, 0xD8F3, 0x81BD, 0xC9CB, 0xD8F6, 0xC2D7, 0xD8F7, +0x81BE, 0x81BF, 0xCEB1, 0xD8F9, 0x81C0, 0x81C1, 0x81C2, 0xB2AE, +0xB9C0, 0x81C3, 0xD9A3, 0x81C4, 0xB0E9, 0x81C5, 0xC1E6, 0x81C6, +0xC9EC, 0x81C7, 0xCBC5, 0x81C8, 0xCBC6, 0xD9A4, 0x81C9, 0x81CA, +0x81CB, 0x81CC, 0x81CD, 0xB5E8, 0x81CE, 0x81CF, 0xB5AB, 0x81D0, +0x81D1, 0x81D2, 0x81D3, 0x81D4, 0x81D5, 0xCEBB, 0xB5CD, 0xD7A1, +0xD7F4, 0xD3D3, 0x81D6, 0xCCE5, 0x81D7, 0xBACE, 0x81D8, 0xD9A2, +0xD9DC, 0xD3E0, 0xD8FD, 0xB7F0, 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, +0xC4E3, 0x81D9, 0x81DA, 0xD3B6, 0xD8F4, 0xD9DD, 0x81DB, 0xD8FB, +0x81DC, 0xC5E5, 0x81DD, 0x81DE, 0xC0D0, 0x81DF, 0x81E0, 0xD1F0, +0xB0DB, 0x81E1, 0x81E2, 0xBCD1, 0xD9A6, 0x81E3, 0xD9A5, 0x81E4, +0x81E5, 0x81E6, 0x81E7, 0xD9AC, 0xD9AE, 0x81E8, 0xD9AB, 0xCAB9, +0x81E9, 0x81EA, 0x81EB, 0xD9A9, 0xD6B6, 0x81EC, 0x81ED, 0x81EE, +0xB3DE, 0xD9A8, 0x81EF, 0xC0FD, 0x81F0, 0xCACC, 0x81F1, 0xD9AA, +0x81F2, 0xD9A7, 0x81F3, 0x81F4, 0xD9B0, 0x81F5, 0x81F6, 0xB6B1, +0x81F7, 0x81F8, 0x81F9, 0xB9A9, 0x81FA, 0xD2C0, 0x81FB, 0x81FC, +0xCFC0, 0x81FD, 0x81FE, 0xC2C2, 0x8240, 0xBDC4, 0xD5EC, 0xB2E0, +0xC7C8, 0xBFEB, 0xD9AD, 0x8241, 0xD9AF, 0x8242, 0xCEEA, 0xBAEE, +0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0xC7D6, 0x8248, 0x8249, +0x824A, 0x824B, 0x824C, 0x824D, 0x824E, 0x824F, 0x8250, 0xB1E3, +0x8251, 0x8252, 0x8253, 0xB4D9, 0xB6ED, 0xD9B4, 0x8254, 0x8255, +0x8256, 0x8257, 0xBFA1, 0x8258, 0x8259, 0x825A, 0xD9DE, 0xC7CE, +0xC0FE, 0xD9B8, 0x825B, 0x825C, 0x825D, 0x825E, 0x825F, 0xCBD7, +0xB7FD, 0x8260, 0xD9B5, 0x8261, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9, +0x8262, 0xD0C5, 0x8263, 0xD9B6, 0x8264, 0x8265, 0xD9B1, 0x8266, +0xD9B2, 0xC1A9, 0xD9B3, 0x8267, 0x8268, 0xBCF3, 0xD0DE, 0xB8A9, +0x8269, 0xBEE3, 0x826A, 0xD9BD, 0x826B, 0x826C, 0x826D, 0x826E, +0xD9BA, 0x826F, 0xB0B3, 0x8270, 0x8271, 0x8272, 0xD9C2, 0x8273, +0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827A, 0x827B, +0x827C, 0x827D, 0x827E, 0x8280, 0xD9C4, 0xB1B6, 0x8281, 0xD9BF, +0x8282, 0x8283, 0xB5B9, 0x8284, 0xBEF3, 0x8285, 0x8286, 0x8287, +0xCCC8, 0xBAF2, 0xD2D0, 0x8288, 0xD9C3, 0x8289, 0x828A, 0xBDE8, +0x828B, 0xB3AB, 0x828C, 0x828D, 0x828E, 0xD9C5, 0xBEEB, 0x828F, +0xD9C6, 0xD9BB, 0xC4DF, 0x8290, 0xD9BE, 0xD9C1, 0xD9C0, 0x8291, +0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, +0x829A, 0x829B, 0xD5AE, 0x829C, 0xD6B5, 0x829D, 0xC7E3, 0x829E, +0x829F, 0x82A0, 0x82A1, 0xD9C8, 0x82A2, 0x82A3, 0x82A4, 0xBCD9, +0xD9CA, 0x82A5, 0x82A6, 0x82A7, 0xD9BC, 0x82A8, 0xD9CB, 0xC6AB, +0x82A9, 0x82AA, 0x82AB, 0x82AC, 0x82AD, 0xD9C9, 0x82AE, 0x82AF, +0x82B0, 0x82B1, 0xD7F6, 0x82B2, 0xCDA3, 0x82B3, 0x82B4, 0x82B5, +0x82B6, 0x82B7, 0x82B8, 0x82B9, 0x82BA, 0xBDA1, 0x82BB, 0x82BC, +0x82BD, 0x82BE, 0x82BF, 0x82C0, 0xD9CC, 0x82C1, 0x82C2, 0x82C3, +0x82C4, 0x82C5, 0x82C6, 0x82C7, 0x82C8, 0x82C9, 0xC5BC, 0xCDB5, +0x82CA, 0x82CB, 0x82CC, 0xD9CD, 0x82CD, 0x82CE, 0xD9C7, 0xB3A5, +0xBFFE, 0x82CF, 0x82D0, 0x82D1, 0x82D2, 0xB8B5, 0x82D3, 0x82D4, +0xC0FC, 0x82D5, 0x82D6, 0x82D7, 0x82D8, 0xB0F8, 0x82D9, 0x82DA, +0x82DB, 0x82DC, 0x82DD, 0x82DE, 0x82DF, 0x82E0, 0x82E1, 0x82E2, +0x82E3, 0x82E4, 0x82E5, 0x82E6, 0x82E7, 0x82E8, 0x82E9, 0x82EA, +0x82EB, 0x82EC, 0x82ED, 0xB4F6, 0x82EE, 0xD9CE, 0x82EF, 0xD9CF, +0xB4A2, 0xD9D0, 0x82F0, 0x82F1, 0xB4DF, 0x82F2, 0x82F3, 0x82F4, +0x82F5, 0x82F6, 0xB0C1, 0x82F7, 0x82F8, 0x82F9, 0x82FA, 0x82FB, +0x82FC, 0x82FD, 0xD9D1, 0xC9B5, 0x82FE, 0x8340, 0x8341, 0x8342, +0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834A, +0x834B, 0x834C, 0x834D, 0x834E, 0x834F, 0x8350, 0x8351, 0xCFF1, +0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0xD9D2, 0x8358, +0x8359, 0x835A, 0xC1C5, 0x835B, 0x835C, 0x835D, 0x835E, 0x835F, +0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0xD9D6, 0xC9AE, +0x8366, 0x8367, 0x8368, 0x8369, 0xD9D5, 0xD9D4, 0xD9D7, 0x836A, +0x836B, 0x836C, 0x836D, 0xCBDB, 0x836E, 0xBDA9, 0x836F, 0x8370, +0x8371, 0x8372, 0x8373, 0xC6A7, 0x8374, 0x8375, 0x8376, 0x8377, +0x8378, 0x8379, 0x837A, 0x837B, 0x837C, 0x837D, 0xD9D3, 0xD9D8, +0x837E, 0x8380, 0x8381, 0xD9D9, 0x8382, 0x8383, 0x8384, 0x8385, +0x8386, 0x8387, 0xC8E5, 0x8388, 0x8389, 0x838A, 0x838B, 0x838C, +0x838D, 0x838E, 0x838F, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, +0x8395, 0xC0DC, 0x8396, 0x8397, 0x8398, 0x8399, 0x839A, 0x839B, +0x839C, 0x839D, 0x839E, 0x839F, 0x83A0, 0x83A1, 0x83A2, 0x83A3, +0x83A4, 0x83A5, 0x83A6, 0x83A7, 0x83A8, 0x83A9, 0x83AA, 0x83AB, +0x83AC, 0x83AD, 0x83AE, 0x83AF, 0x83B0, 0x83B1, 0x83B2, 0xB6F9, +0xD8A3, 0xD4CA, 0x83B3, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 0x83B4, +0xCFC8, 0xB9E2, 0x83B5, 0xBFCB, 0x83B6, 0xC3E2, 0x83B7, 0x83B8, +0x83B9, 0xB6D2, 0x83BA, 0x83BB, 0xCDC3, 0xD9EE, 0xD9F0, 0x83BC, +0x83BD, 0x83BE, 0xB5B3, 0x83BF, 0xB6B5, 0x83C0, 0x83C1, 0x83C2, +0x83C3, 0x83C4, 0xBEA4, 0x83C5, 0x83C6, 0xC8EB, 0x83C7, 0x83C8, +0xC8AB, 0x83C9, 0x83CA, 0xB0CB, 0xB9AB, 0xC1F9, 0xD9E2, 0x83CB, +0xC0BC, 0xB9B2, 0x83CC, 0xB9D8, 0xD0CB, 0xB1F8, 0xC6E4, 0xBEDF, +0xB5E4, 0xD7C8, 0x83CD, 0xD1F8, 0xBCE6, 0xCADE, 0x83CE, 0x83CF, +0xBCBD, 0xD9E6, 0xD8E7, 0x83D0, 0x83D1, 0xC4DA, 0x83D2, 0x83D3, +0xB8D4, 0xC8BD, 0x83D4, 0x83D5, 0xB2E1, 0xD4D9, 0x83D6, 0x83D7, +0x83D8, 0x83D9, 0xC3B0, 0x83DA, 0x83DB, 0xC3E1, 0xDAA2, 0xC8DF, +0x83DC, 0xD0B4, 0x83DD, 0xBEFC, 0xC5A9, 0x83DE, 0x83DF, 0x83E0, +0xB9DA, 0x83E1, 0xDAA3, 0x83E2, 0xD4A9, 0xDAA4, 0x83E3, 0x83E4, +0x83E5, 0x83E6, 0x83E7, 0xD9FB, 0xB6AC, 0x83E8, 0x83E9, 0xB7EB, +0xB1F9, 0xD9FC, 0xB3E5, 0xBEF6, 0x83EA, 0xBFF6, 0xD2B1, 0xC0E4, +0x83EB, 0x83EC, 0x83ED, 0xB6B3, 0xD9FE, 0xD9FD, 0x83EE, 0x83EF, +0xBEBB, 0x83F0, 0x83F1, 0x83F2, 0xC6E0, 0x83F3, 0xD7BC, 0xDAA1, +0x83F4, 0xC1B9, 0x83F5, 0xB5F2, 0xC1E8, 0x83F6, 0x83F7, 0xBCF5, +0x83F8, 0xB4D5, 0x83F9, 0x83FA, 0x83FB, 0x83FC, 0x83FD, 0x83FE, +0x8440, 0x8441, 0x8442, 0xC1DD, 0x8443, 0xC4FD, 0x8444, 0x8445, +0xBCB8, 0xB7B2, 0x8446, 0x8447, 0xB7EF, 0x8448, 0x8449, 0x844A, +0x844B, 0x844C, 0x844D, 0xD9EC, 0x844E, 0xC6BE, 0x844F, 0xBFAD, +0xBBCB, 0x8450, 0x8451, 0xB5CA, 0x8452, 0xDBC9, 0xD0D7, 0x8453, +0xCDB9, 0xB0BC, 0xB3F6, 0xBBF7, 0xDBCA, 0xBAAF, 0x8454, 0xD4E4, +0xB5B6, 0xB5F3, 0xD8D6, 0xC8D0, 0x8455, 0x8456, 0xB7D6, 0xC7D0, +0xD8D7, 0x8457, 0xBFAF, 0x8458, 0x8459, 0xDBBB, 0xD8D8, 0x845A, +0x845B, 0xD0CC, 0xBBAE, 0x845C, 0x845D, 0x845E, 0xEBBE, 0xC1D0, +0xC1F5, 0xD4F2, 0xB8D5, 0xB4B4, 0x845F, 0xB3F5, 0x8460, 0x8461, +0xC9BE, 0x8462, 0x8463, 0x8464, 0xC5D0, 0x8465, 0x8466, 0x8467, +0xC5D9, 0xC0FB, 0x8468, 0xB1F0, 0x8469, 0xD8D9, 0xB9CE, 0x846A, +0xB5BD, 0x846B, 0x846C, 0xD8DA, 0x846D, 0x846E, 0xD6C6, 0xCBA2, +0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 0x846F, 0xB9F4, 0x8470, 0xD8DB, +0xD8DC, 0xB6E7, 0xBCC1, 0xCCEA, 0x8471, 0x8472, 0x8473, 0x8474, +0x8475, 0x8476, 0xCFF7, 0x8477, 0xD8DD, 0xC7B0, 0x8478, 0x8479, +0xB9D0, 0xBDA3, 0x847A, 0x847B, 0xCCDE, 0x847C, 0xC6CA, 0x847D, +0x847E, 0x8480, 0x8481, 0x8482, 0xD8E0, 0x8483, 0xD8DE, 0x8484, +0x8485, 0xD8DF, 0x8486, 0x8487, 0x8488, 0xB0FE, 0x8489, 0xBEE7, +0x848A, 0xCAA3, 0xBCF4, 0x848B, 0x848C, 0x848D, 0x848E, 0xB8B1, +0x848F, 0x8490, 0xB8EE, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, +0x8496, 0x8497, 0x8498, 0x8499, 0x849A, 0xD8E2, 0x849B, 0xBDCB, +0x849C, 0xD8E4, 0xD8E3, 0x849D, 0x849E, 0x849F, 0x84A0, 0x84A1, +0xC5FC, 0x84A2, 0x84A3, 0x84A4, 0x84A5, 0x84A6, 0x84A7, 0x84A8, +0xD8E5, 0x84A9, 0x84AA, 0xD8E6, 0x84AB, 0x84AC, 0x84AD, 0x84AE, +0x84AF, 0x84B0, 0x84B1, 0xC1A6, 0x84B2, 0xC8B0, 0xB0EC, 0xB9A6, +0xBCD3, 0xCEF1, 0xDBBD, 0xC1D3, 0x84B3, 0x84B4, 0x84B5, 0x84B6, +0xB6AF, 0xD6FA, 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 0x84B7, 0x84B8, +0x84B9, 0xC0F8, 0xBEA2, 0xC0CD, 0x84BA, 0x84BB, 0x84BC, 0x84BD, +0x84BE, 0x84BF, 0x84C0, 0x84C1, 0x84C2, 0x84C3, 0xDBC0, 0xCAC6, +0x84C4, 0x84C5, 0x84C6, 0xB2AA, 0x84C7, 0x84C8, 0x84C9, 0xD3C2, +0x84CA, 0xC3E3, 0x84CB, 0xD1AB, 0x84CC, 0x84CD, 0x84CE, 0x84CF, +0xDBC2, 0x84D0, 0xC0D5, 0x84D1, 0x84D2, 0x84D3, 0xDBC3, 0x84D4, +0xBFB1, 0x84D5, 0x84D6, 0x84D7, 0x84D8, 0x84D9, 0x84DA, 0xC4BC, +0x84DB, 0x84DC, 0x84DD, 0x84DE, 0xC7DA, 0x84DF, 0x84E0, 0x84E1, +0x84E2, 0x84E3, 0x84E4, 0x84E5, 0x84E6, 0x84E7, 0x84E8, 0x84E9, +0xDBC4, 0x84EA, 0x84EB, 0x84EC, 0x84ED, 0x84EE, 0x84EF, 0x84F0, +0x84F1, 0xD9E8, 0xC9D7, 0x84F2, 0x84F3, 0x84F4, 0xB9B4, 0xCEF0, +0xD4C8, 0x84F5, 0x84F6, 0x84F7, 0x84F8, 0xB0FC, 0xB4D2, 0x84F9, +0xD0D9, 0x84FA, 0x84FB, 0x84FC, 0x84FD, 0xD9E9, 0x84FE, 0xDECB, +0xD9EB, 0x8540, 0x8541, 0x8542, 0x8543, 0xD8B0, 0xBBAF, 0xB1B1, +0x8544, 0xB3D7, 0xD8CE, 0x8545, 0x8546, 0xD4D1, 0x8547, 0x8548, +0xBDB3, 0xBFEF, 0x8549, 0xCFBB, 0x854A, 0x854B, 0xD8D0, 0x854C, +0x854D, 0x854E, 0xB7CB, 0x854F, 0x8550, 0x8551, 0xD8D1, 0x8552, +0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, 0x855A, +0x855B, 0xC6A5, 0xC7F8, 0xD2BD, 0x855C, 0x855D, 0xD8D2, 0xC4E4, +0x855E, 0xCAAE, 0x855F, 0xC7A7, 0x8560, 0xD8A6, 0x8561, 0xC9FD, +0xCEE7, 0xBBDC, 0xB0EB, 0x8562, 0x8563, 0x8564, 0xBBAA, 0xD0AD, +0x8565, 0xB1B0, 0xD7E4, 0xD7BF, 0x8566, 0xB5A5, 0xC2F4, 0xC4CF, +0x8567, 0x8568, 0xB2A9, 0x8569, 0xB2B7, 0x856A, 0xB1E5, 0xDFB2, +0xD5BC, 0xBFA8, 0xC2AC, 0xD8D5, 0xC2B1, 0x856B, 0xD8D4, 0xCED4, +0x856C, 0xDAE0, 0x856D, 0xCEC0, 0x856E, 0x856F, 0xD8B4, 0xC3AE, +0xD3A1, 0xCEA3, 0x8570, 0xBCB4, 0xC8B4, 0xC2D1, 0x8571, 0xBEED, +0xD0B6, 0x8572, 0xDAE1, 0x8573, 0x8574, 0x8575, 0x8576, 0xC7E4, +0x8577, 0x8578, 0xB3A7, 0x8579, 0xB6F2, 0xCCFC, 0xC0FA, 0x857A, +0x857B, 0xC0F7, 0x857C, 0xD1B9, 0xD1E1, 0xD8C7, 0x857D, 0x857E, +0x8580, 0x8581, 0x8582, 0x8583, 0x8584, 0xB2DE, 0x8585, 0x8586, +0xC0E5, 0x8587, 0xBAF1, 0x8588, 0x8589, 0xD8C8, 0x858A, 0xD4AD, +0x858B, 0x858C, 0xCFE1, 0xD8C9, 0x858D, 0xD8CA, 0xCFC3, 0x858E, +0xB3F8, 0xBEC7, 0x858F, 0x8590, 0x8591, 0x8592, 0xD8CB, 0x8593, +0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0xDBCC, 0x859A, +0x859B, 0x859C, 0x859D, 0xC8A5, 0x859E, 0x859F, 0x85A0, 0xCFD8, +0x85A1, 0xC8FE, 0xB2CE, 0x85A2, 0x85A3, 0x85A4, 0x85A5, 0x85A6, +0xD3D6, 0xB2E6, 0xBCB0, 0xD3D1, 0xCBAB, 0xB7B4, 0x85A7, 0x85A8, +0x85A9, 0xB7A2, 0x85AA, 0x85AB, 0xCAE5, 0x85AC, 0xC8A1, 0xCADC, +0xB1E4, 0xD0F0, 0x85AD, 0xC5D1, 0x85AE, 0x85AF, 0x85B0, 0xDBC5, +0xB5FE, 0x85B1, 0x85B2, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 0x85B3, +0xDFB6, 0xDFB5, 0xD6BB, 0xBDD0, 0xD5D9, 0xB0C8, 0xB6A3, 0xBFC9, +0xCCA8, 0xDFB3, 0xCAB7, 0xD3D2, 0x85B4, 0xD8CF, 0xD2B6, 0xBAC5, +0xCBBE, 0xCCBE, 0x85B5, 0xDFB7, 0xB5F0, 0xDFB4, 0x85B6, 0x85B7, +0x85B8, 0xD3F5, 0x85B9, 0xB3D4, 0xB8F7, 0x85BA, 0xDFBA, 0x85BB, +0xBACF, 0xBCAA, 0xB5F5, 0x85BC, 0xCDAC, 0xC3FB, 0xBAF3, 0xC0F4, +0xCDC2, 0xCFF2, 0xDFB8, 0xCFC5, 0x85BD, 0xC2C0, 0xDFB9, 0xC2F0, +0x85BE, 0x85BF, 0x85C0, 0xBEFD, 0x85C1, 0xC1DF, 0xCDCC, 0xD2F7, +0xB7CD, 0xDFC1, 0x85C2, 0xDFC4, 0x85C3, 0x85C4, 0xB7F1, 0xB0C9, +0xB6D6, 0xB7D4, 0x85C5, 0xBAAC, 0xCCFD, 0xBFD4, 0xCBB1, 0xC6F4, +0x85C6, 0xD6A8, 0xDFC5, 0x85C7, 0xCEE2, 0xB3B3, 0x85C8, 0x85C9, +0xCEFC, 0xB4B5, 0x85CA, 0xCEC7, 0xBAF0, 0x85CB, 0xCEE1, 0x85CC, +0xD1BD, 0x85CD, 0x85CE, 0xDFC0, 0x85CF, 0x85D0, 0xB4F4, 0x85D1, +0xB3CA, 0x85D2, 0xB8E6, 0xDFBB, 0x85D3, 0x85D4, 0x85D5, 0x85D6, +0xC4C5, 0x85D7, 0xDFBC, 0xDFBD, 0xDFBE, 0xC5BB, 0xDFBF, 0xDFC2, +0xD4B1, 0xDFC3, 0x85D8, 0xC7BA, 0xCED8, 0x85D9, 0x85DA, 0x85DB, +0x85DC, 0x85DD, 0xC4D8, 0x85DE, 0xDFCA, 0x85DF, 0xDFCF, 0x85E0, +0xD6DC, 0x85E1, 0x85E2, 0x85E3, 0x85E4, 0x85E5, 0x85E6, 0x85E7, +0x85E8, 0xDFC9, 0xDFDA, 0xCEB6, 0x85E9, 0xBAC7, 0xDFCE, 0xDFC8, +0xC5DE, 0x85EA, 0x85EB, 0xC9EB, 0xBAF4, 0xC3FC, 0x85EC, 0x85ED, +0xBED7, 0x85EE, 0xDFC6, 0x85EF, 0xDFCD, 0x85F0, 0xC5D8, 0x85F1, +0x85F2, 0x85F3, 0x85F4, 0xD5A6, 0xBACD, 0x85F5, 0xBECC, 0xD3BD, +0xB8C0, 0x85F6, 0xD6E4, 0x85F7, 0xDFC7, 0xB9BE, 0xBFA7, 0x85F8, +0x85F9, 0xC1FC, 0xDFCB, 0xDFCC, 0x85FA, 0xDFD0, 0x85FB, 0x85FC, +0x85FD, 0x85FE, 0x8640, 0xDFDB, 0xDFE5, 0x8641, 0xDFD7, 0xDFD6, +0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2, 0x8642, 0xBFA9, +0x8643, 0xD4DB, 0x8644, 0xBFC8, 0xDFD4, 0x8645, 0x8646, 0x8647, +0xCFCC, 0x8648, 0x8649, 0xDFDD, 0x864A, 0xD1CA, 0x864B, 0xDFDE, +0xB0A7, 0xC6B7, 0xDFD3, 0x864C, 0xBAE5, 0x864D, 0xB6DF, 0xCDDB, +0xB9FE, 0xD4D5, 0x864E, 0x864F, 0xDFDF, 0xCFEC, 0xB0A5, 0xDFE7, +0xDFD1, 0xD1C6, 0xDFD5, 0xDFD8, 0xDFD9, 0xDFDC, 0x8650, 0xBBA9, +0x8651, 0xDFE0, 0xDFE1, 0x8652, 0xDFE2, 0xDFE6, 0xDFE8, 0xD3B4, +0x8653, 0x8654, 0x8655, 0x8656, 0x8657, 0xB8E7, 0xC5B6, 0xDFEA, +0xC9DA, 0xC1A8, 0xC4C4, 0x8658, 0x8659, 0xBFDE, 0xCFF8, 0x865A, +0x865B, 0x865C, 0xD5DC, 0xDFEE, 0x865D, 0x865E, 0x865F, 0x8660, +0x8661, 0x8662, 0xB2B8, 0x8663, 0xBADF, 0xDFEC, 0x8664, 0xDBC1, +0x8665, 0xD1E4, 0x8666, 0x8667, 0x8668, 0x8669, 0xCBF4, 0xB4BD, +0x866A, 0xB0A6, 0x866B, 0x866C, 0x866D, 0x866E, 0x866F, 0xDFF1, +0xCCC6, 0xDFF2, 0x8670, 0x8671, 0xDFED, 0x8672, 0x8673, 0x8674, +0x8675, 0x8676, 0x8677, 0xDFE9, 0x8678, 0x8679, 0x867A, 0x867B, +0xDFEB, 0x867C, 0xDFEF, 0xDFF0, 0xBBBD, 0x867D, 0x867E, 0xDFF3, +0x8680, 0x8681, 0xDFF4, 0x8682, 0xBBA3, 0x8683, 0xCADB, 0xCEA8, +0xE0A7, 0xB3AA, 0x8684, 0xE0A6, 0x8685, 0x8686, 0x8687, 0xE0A1, +0x8688, 0x8689, 0x868A, 0x868B, 0xDFFE, 0x868C, 0xCDD9, 0xDFFC, +0x868D, 0xDFFA, 0x868E, 0xBFD0, 0xD7C4, 0x868F, 0xC9CC, 0x8690, +0x8691, 0xDFF8, 0xB0A1, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, +0xDFFD, 0x8697, 0x8698, 0x8699, 0x869A, 0xDFFB, 0xE0A2, 0x869B, +0x869C, 0x869D, 0x869E, 0x869F, 0xE0A8, 0x86A0, 0x86A1, 0x86A2, +0x86A3, 0xB7C8, 0x86A4, 0x86A5, 0xC6A1, 0xC9B6, 0xC0B2, 0xDFF5, +0x86A6, 0x86A7, 0xC5BE, 0x86A8, 0xD8C4, 0xDFF9, 0xC4F6, 0x86A9, +0x86AA, 0x86AB, 0x86AC, 0x86AD, 0x86AE, 0xE0A3, 0xE0A4, 0xE0A5, +0xD0A5, 0x86AF, 0x86B0, 0xE0B4, 0xCCE4, 0x86B1, 0xE0B1, 0x86B2, +0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 0x86B3, 0x86B4, 0xC0AE, +0xE0AE, 0xBAED, 0xBAB0, 0xE0A9, 0x86B5, 0x86B6, 0x86B7, 0xDFF6, +0x86B8, 0xE0B3, 0x86B9, 0x86BA, 0xE0B8, 0x86BB, 0x86BC, 0x86BD, +0xB4AD, 0xE0B9, 0x86BE, 0x86BF, 0xCFB2, 0xBAC8, 0x86C0, 0xE0B0, +0x86C1, 0x86C2, 0x86C3, 0x86C4, 0x86C5, 0x86C6, 0x86C7, 0xD0FA, +0x86C8, 0x86C9, 0x86CA, 0x86CB, 0x86CC, 0x86CD, 0x86CE, 0x86CF, +0x86D0, 0xE0AC, 0x86D1, 0xD4FB, 0x86D2, 0xDFF7, 0x86D3, 0xC5E7, +0x86D4, 0xE0AD, 0x86D5, 0xD3F7, 0x86D6, 0xE0B6, 0xE0B7, 0x86D7, +0x86D8, 0x86D9, 0x86DA, 0x86DB, 0xE0C4, 0xD0E1, 0x86DC, 0x86DD, +0x86DE, 0xE0BC, 0x86DF, 0x86E0, 0xE0C9, 0xE0CA, 0x86E1, 0x86E2, +0x86E3, 0xE0BE, 0xE0AA, 0xC9A4, 0xE0C1, 0x86E4, 0xE0B2, 0x86E5, +0x86E6, 0x86E7, 0x86E8, 0x86E9, 0xCAC8, 0xE0C3, 0x86EA, 0xE0B5, +0x86EB, 0xCECB, 0x86EC, 0xCBC3, 0xE0CD, 0xE0C6, 0xE0C2, 0x86ED, +0xE0CB, 0x86EE, 0xE0BA, 0xE0BF, 0xE0C0, 0x86EF, 0x86F0, 0xE0C5, +0x86F1, 0x86F2, 0xE0C7, 0xE0C8, 0x86F3, 0xE0CC, 0x86F4, 0xE0BB, +0x86F5, 0x86F6, 0x86F7, 0x86F8, 0x86F9, 0xCBD4, 0xE0D5, 0x86FA, +0xE0D6, 0xE0D2, 0x86FB, 0x86FC, 0x86FD, 0x86FE, 0x8740, 0x8741, +0xE0D0, 0xBCCE, 0x8742, 0x8743, 0xE0D1, 0x8744, 0xB8C2, 0xD8C5, +0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874A, 0x874B, 0x874C, +0xD0EA, 0x874D, 0x874E, 0xC2EF, 0x874F, 0x8750, 0xE0CF, 0xE0BD, +0x8751, 0x8752, 0x8753, 0xE0D4, 0xE0D3, 0x8754, 0x8755, 0xE0D7, +0x8756, 0x8757, 0x8758, 0x8759, 0xE0DC, 0xE0D8, 0x875A, 0x875B, +0x875C, 0xD6F6, 0xB3B0, 0x875D, 0xD7EC, 0x875E, 0xCBBB, 0x875F, +0x8760, 0xE0DA, 0x8761, 0xCEFB, 0x8762, 0x8763, 0x8764, 0xBAD9, +0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876A, 0x876B, 0x876C, +0x876D, 0x876E, 0x876F, 0x8770, 0xE0E1, 0xE0DD, 0xD2AD, 0x8771, +0x8772, 0x8773, 0x8774, 0x8775, 0xE0E2, 0x8776, 0x8777, 0xE0DB, +0xE0D9, 0xE0DF, 0x8778, 0x8779, 0xE0E0, 0x877A, 0x877B, 0x877C, +0x877D, 0x877E, 0xE0DE, 0x8780, 0xE0E4, 0x8781, 0x8782, 0x8783, +0xC6F7, 0xD8AC, 0xD4EB, 0xE0E6, 0xCAC9, 0x8784, 0x8785, 0x8786, +0x8787, 0xE0E5, 0x8788, 0x8789, 0x878A, 0x878B, 0xB8C1, 0x878C, +0x878D, 0x878E, 0x878F, 0xE0E7, 0xE0E8, 0x8790, 0x8791, 0x8792, +0x8793, 0x8794, 0x8795, 0x8796, 0x8797, 0xE0E9, 0xE0E3, 0x8798, +0x8799, 0x879A, 0x879B, 0x879C, 0x879D, 0x879E, 0xBABF, 0xCCE7, +0x879F, 0x87A0, 0x87A1, 0xE0EA, 0x87A2, 0x87A3, 0x87A4, 0x87A5, +0x87A6, 0x87A7, 0x87A8, 0x87A9, 0x87AA, 0x87AB, 0x87AC, 0x87AD, +0x87AE, 0x87AF, 0x87B0, 0xCFF9, 0x87B1, 0x87B2, 0x87B3, 0x87B4, +0x87B5, 0x87B6, 0x87B7, 0x87B8, 0x87B9, 0x87BA, 0x87BB, 0xE0EB, +0x87BC, 0x87BD, 0x87BE, 0x87BF, 0x87C0, 0x87C1, 0x87C2, 0xC8C2, +0x87C3, 0x87C4, 0x87C5, 0x87C6, 0xBDC0, 0x87C7, 0x87C8, 0x87C9, +0x87CA, 0x87CB, 0x87CC, 0x87CD, 0x87CE, 0x87CF, 0x87D0, 0x87D1, +0x87D2, 0x87D3, 0xC4D2, 0x87D4, 0x87D5, 0x87D6, 0x87D7, 0x87D8, +0x87D9, 0x87DA, 0x87DB, 0x87DC, 0xE0EC, 0x87DD, 0x87DE, 0xE0ED, +0x87DF, 0x87E0, 0xC7F4, 0xCBC4, 0x87E1, 0xE0EE, 0xBBD8, 0xD8B6, +0xD2F2, 0xE0EF, 0xCDC5, 0x87E2, 0xB6DA, 0x87E3, 0x87E4, 0x87E5, +0x87E6, 0x87E7, 0x87E8, 0xE0F1, 0x87E9, 0xD4B0, 0x87EA, 0x87EB, +0xC0A7, 0xB4D1, 0x87EC, 0x87ED, 0xCEA7, 0xE0F0, 0x87EE, 0x87EF, +0x87F0, 0xE0F2, 0xB9CC, 0x87F1, 0x87F2, 0xB9FA, 0xCDBC, 0xE0F3, +0x87F3, 0x87F4, 0x87F5, 0xC6D4, 0xE0F4, 0x87F6, 0xD4B2, 0x87F7, +0xC8A6, 0xE0F6, 0xE0F5, 0x87F8, 0x87F9, 0x87FA, 0x87FB, 0x87FC, +0x87FD, 0x87FE, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, +0x8846, 0x8847, 0x8848, 0x8849, 0xE0F7, 0x884A, 0x884B, 0xCDC1, +0x884C, 0x884D, 0x884E, 0xCAA5, 0x884F, 0x8850, 0x8851, 0x8852, +0xD4DA, 0xDBD7, 0xDBD9, 0x8853, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD, +0xB5D8, 0x8854, 0x8855, 0xDBDA, 0x8856, 0x8857, 0x8858, 0x8859, +0x885A, 0xDBDB, 0xB3A1, 0xDBDF, 0x885B, 0x885C, 0xBBF8, 0x885D, +0xD6B7, 0x885E, 0xDBE0, 0x885F, 0x8860, 0x8861, 0x8862, 0xBEF9, +0x8863, 0x8864, 0xB7BB, 0x8865, 0xDBD0, 0xCCAE, 0xBFB2, 0xBBB5, +0xD7F8, 0xBFD3, 0x8866, 0x8867, 0x8868, 0x8869, 0x886A, 0xBFE9, +0x886B, 0x886C, 0xBCE1, 0xCCB3, 0xDBDE, 0xB0D3, 0xCEEB, 0xB7D8, +0xD7B9, 0xC6C2, 0x886D, 0x886E, 0xC0A4, 0x886F, 0xCCB9, 0x8870, +0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3, 0x8871, 0xDBE8, 0x8872, 0xC5F7, +0x8873, 0x8874, 0x8875, 0xDBEA, 0x8876, 0x8877, 0xDBE9, 0xBFC0, +0x8878, 0x8879, 0x887A, 0xDBE6, 0xDBE5, 0x887B, 0x887C, 0x887D, +0x887E, 0x8880, 0xB4B9, 0xC0AC, 0xC2A2, 0xDBE2, 0xDBE4, 0x8881, +0x8882, 0x8883, 0x8884, 0xD0CD, 0xDBED, 0x8885, 0x8886, 0x8887, +0x8888, 0x8889, 0xC0DD, 0xDBF2, 0x888A, 0x888B, 0x888C, 0x888D, +0x888E, 0x888F, 0x8890, 0xB6E2, 0x8891, 0x8892, 0x8893, 0x8894, +0xDBF3, 0xDBD2, 0xB9B8, 0xD4AB, 0xDBEC, 0x8895, 0xBFD1, 0xDBF0, +0x8896, 0xDBD1, 0x8897, 0xB5E6, 0x8898, 0xDBEB, 0xBFE5, 0x8899, +0x889A, 0x889B, 0xDBEE, 0x889C, 0xDBF1, 0x889D, 0x889E, 0x889F, +0xDBF9, 0x88A0, 0x88A1, 0x88A2, 0x88A3, 0x88A4, 0x88A5, 0x88A6, +0x88A7, 0x88A8, 0xB9A1, 0xB0A3, 0x88A9, 0x88AA, 0x88AB, 0x88AC, +0x88AD, 0x88AE, 0x88AF, 0xC2F1, 0x88B0, 0x88B1, 0xB3C7, 0xDBEF, +0x88B2, 0x88B3, 0xDBF8, 0x88B4, 0xC6D2, 0xDBF4, 0x88B5, 0x88B6, +0xDBF5, 0xDBF7, 0xDBF6, 0x88B7, 0x88B8, 0xDBFE, 0x88B9, 0xD3F2, +0xB2BA, 0x88BA, 0x88BB, 0x88BC, 0xDBFD, 0x88BD, 0x88BE, 0x88BF, +0x88C0, 0x88C1, 0x88C2, 0x88C3, 0x88C4, 0xDCA4, 0x88C5, 0xDBFB, +0x88C6, 0x88C7, 0x88C8, 0x88C9, 0xDBFA, 0x88CA, 0x88CB, 0x88CC, +0xDBFC, 0xC5E0, 0xBBF9, 0x88CD, 0x88CE, 0xDCA3, 0x88CF, 0x88D0, +0xDCA5, 0x88D1, 0xCCC3, 0x88D2, 0x88D3, 0x88D4, 0xB6D1, 0xDDC0, +0x88D5, 0x88D6, 0x88D7, 0xDCA1, 0x88D8, 0xDCA2, 0x88D9, 0x88DA, +0x88DB, 0xC7B5, 0x88DC, 0x88DD, 0x88DE, 0xB6E9, 0x88DF, 0x88E0, +0x88E1, 0xDCA7, 0x88E2, 0x88E3, 0x88E4, 0x88E5, 0xDCA6, 0x88E6, +0xDCA9, 0xB1A4, 0x88E7, 0x88E8, 0xB5CC, 0x88E9, 0x88EA, 0x88EB, +0x88EC, 0x88ED, 0xBFB0, 0x88EE, 0x88EF, 0x88F0, 0x88F1, 0x88F2, +0xD1DF, 0x88F3, 0x88F4, 0x88F5, 0x88F6, 0xB6C2, 0x88F7, 0x88F8, +0x88F9, 0x88FA, 0x88FB, 0x88FC, 0x88FD, 0x88FE, 0x8940, 0x8941, +0x8942, 0x8943, 0x8944, 0x8945, 0xDCA8, 0x8946, 0x8947, 0x8948, +0x8949, 0x894A, 0x894B, 0x894C, 0xCBFA, 0xEBF3, 0x894D, 0x894E, +0x894F, 0xCBDC, 0x8950, 0x8951, 0xCBFE, 0x8952, 0x8953, 0x8954, +0xCCC1, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0xC8FB, 0x895A, +0x895B, 0x895C, 0x895D, 0x895E, 0x895F, 0xDCAA, 0x8960, 0x8961, +0x8962, 0x8963, 0x8964, 0xCCEE, 0xDCAB, 0x8965, 0x8966, 0x8967, +0x8968, 0x8969, 0x896A, 0x896B, 0x896C, 0x896D, 0x896E, 0x896F, +0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0xDBD3, 0x8976, +0xDCAF, 0xDCAC, 0x8977, 0xBEB3, 0x8978, 0xCAFB, 0x8979, 0x897A, +0x897B, 0xDCAD, 0x897C, 0x897D, 0x897E, 0x8980, 0x8981, 0x8982, +0x8983, 0x8984, 0xC9CA, 0xC4B9, 0x8985, 0x8986, 0x8987, 0x8988, +0x8989, 0xC7BD, 0xDCAE, 0x898A, 0x898B, 0x898C, 0xD4F6, 0xD0E6, +0x898D, 0x898E, 0x898F, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, +0xC4AB, 0xB6D5, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899A, +0x899B, 0x899C, 0x899D, 0x899E, 0x899F, 0x89A0, 0x89A1, 0x89A2, +0x89A3, 0x89A4, 0x89A5, 0x89A6, 0xDBD4, 0x89A7, 0x89A8, 0x89A9, +0x89AA, 0xB1DA, 0x89AB, 0x89AC, 0x89AD, 0xDBD5, 0x89AE, 0x89AF, +0x89B0, 0x89B1, 0x89B2, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, +0x89B8, 0xDBD6, 0x89B9, 0x89BA, 0x89BB, 0xBABE, 0x89BC, 0x89BD, +0x89BE, 0x89BF, 0x89C0, 0x89C1, 0x89C2, 0x89C3, 0x89C4, 0x89C5, +0x89C6, 0x89C7, 0x89C8, 0x89C9, 0xC8C0, 0x89CA, 0x89CB, 0x89CC, +0x89CD, 0x89CE, 0x89CF, 0xCABF, 0xC8C9, 0x89D0, 0xD7B3, 0x89D1, +0xC9F9, 0x89D2, 0x89D3, 0xBFC7, 0x89D4, 0x89D5, 0xBAF8, 0x89D6, +0x89D7, 0xD2BC, 0x89D8, 0x89D9, 0x89DA, 0x89DB, 0x89DC, 0x89DD, +0x89DE, 0x89DF, 0xE2BA, 0x89E0, 0xB4A6, 0x89E1, 0x89E2, 0xB1B8, +0x89E3, 0x89E4, 0x89E5, 0x89E6, 0x89E7, 0xB8B4, 0x89E8, 0xCFC4, +0x89E9, 0x89EA, 0x89EB, 0x89EC, 0xD9E7, 0xCFA6, 0xCDE2, 0x89ED, +0x89EE, 0xD9ED, 0xB6E0, 0x89EF, 0xD2B9, 0x89F0, 0x89F1, 0xB9BB, +0x89F2, 0x89F3, 0x89F4, 0x89F5, 0xE2B9, 0xE2B7, 0x89F6, 0xB4F3, +0x89F7, 0xCCEC, 0xCCAB, 0xB7F2, 0x89F8, 0xD8B2, 0xD1EB, 0xBABB, +0x89F9, 0xCAA7, 0x89FA, 0x89FB, 0xCDB7, 0x89FC, 0x89FD, 0xD2C4, +0xBFE4, 0xBCD0, 0xB6E1, 0x89FE, 0xDEC5, 0x8A40, 0x8A41, 0x8A42, +0x8A43, 0xDEC6, 0xDBBC, 0x8A44, 0xD1D9, 0x8A45, 0x8A46, 0xC6E6, +0xC4CE, 0xB7EE, 0x8A47, 0xB7DC, 0x8A48, 0x8A49, 0xBFFC, 0xD7E0, +0x8A4A, 0xC6F5, 0x8A4B, 0x8A4C, 0xB1BC, 0xDEC8, 0xBDB1, 0xCCD7, +0xDECA, 0x8A4D, 0xDEC9, 0x8A4E, 0x8A4F, 0x8A50, 0x8A51, 0x8A52, +0xB5EC, 0x8A53, 0xC9DD, 0x8A54, 0x8A55, 0xB0C2, 0x8A56, 0x8A57, +0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, 0x8A5E, 0x8A5F, +0x8A60, 0x8A61, 0x8A62, 0xC5AE, 0xC5AB, 0x8A63, 0xC4CC, 0x8A64, +0xBCE9, 0xCBFD, 0x8A65, 0x8A66, 0x8A67, 0xBAC3, 0x8A68, 0x8A69, +0x8A6A, 0xE5F9, 0xC8E7, 0xE5FA, 0xCDFD, 0x8A6B, 0xD7B1, 0xB8BE, +0xC2E8, 0x8A6C, 0xC8D1, 0x8A6D, 0x8A6E, 0xE5FB, 0x8A6F, 0x8A70, +0x8A71, 0x8A72, 0xB6CA, 0xBCCB, 0x8A73, 0x8A74, 0xD1FD, 0xE6A1, +0x8A75, 0xC3EE, 0x8A76, 0x8A77, 0x8A78, 0x8A79, 0xE6A4, 0x8A7A, +0x8A7B, 0x8A7C, 0x8A7D, 0xE5FE, 0xE6A5, 0xCDD7, 0x8A7E, 0x8A80, +0xB7C1, 0xE5FC, 0xE5FD, 0xE6A3, 0x8A81, 0x8A82, 0xC4DD, 0xE6A8, +0x8A83, 0x8A84, 0xE6A7, 0x8A85, 0x8A86, 0x8A87, 0x8A88, 0x8A89, +0x8A8A, 0xC3C3, 0x8A8B, 0xC6DE, 0x8A8C, 0x8A8D, 0xE6AA, 0x8A8E, +0x8A8F, 0x8A90, 0x8A91, 0x8A92, 0x8A93, 0x8A94, 0xC4B7, 0x8A95, +0x8A96, 0x8A97, 0xE6A2, 0xCABC, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, +0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 0x8A9C, 0x8A9D, 0xE6A9, +0xE6B0, 0x8A9E, 0xD2A6, 0x8A9F, 0xBDAA, 0xE6AD, 0x8AA0, 0x8AA1, +0x8AA2, 0x8AA3, 0x8AA4, 0xE6AF, 0x8AA5, 0xC0D1, 0x8AA6, 0x8AA7, +0xD2CC, 0x8AA8, 0x8AA9, 0x8AAA, 0xBCA7, 0x8AAB, 0x8AAC, 0x8AAD, +0x8AAE, 0x8AAF, 0x8AB0, 0x8AB1, 0x8AB2, 0x8AB3, 0x8AB4, 0x8AB5, +0x8AB6, 0xE6B1, 0x8AB7, 0xD2F6, 0x8AB8, 0x8AB9, 0x8ABA, 0xD7CB, +0x8ABB, 0xCDFE, 0x8ABC, 0xCDDE, 0xC2A6, 0xE6AB, 0xE6AC, 0xBDBF, +0xE6AE, 0xE6B3, 0x8ABD, 0x8ABE, 0xE6B2, 0x8ABF, 0x8AC0, 0x8AC1, +0x8AC2, 0xE6B6, 0x8AC3, 0xE6B8, 0x8AC4, 0x8AC5, 0x8AC6, 0x8AC7, +0xC4EF, 0x8AC8, 0x8AC9, 0x8ACA, 0xC4C8, 0x8ACB, 0x8ACC, 0xBEEA, +0xC9EF, 0x8ACD, 0x8ACE, 0xE6B7, 0x8ACF, 0xB6F0, 0x8AD0, 0x8AD1, +0x8AD2, 0xC3E4, 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0x8AD7, 0x8AD8, +0x8AD9, 0xD3E9, 0xE6B4, 0x8ADA, 0xE6B5, 0x8ADB, 0xC8A2, 0x8ADC, +0x8ADD, 0x8ADE, 0x8ADF, 0x8AE0, 0xE6BD, 0x8AE1, 0x8AE2, 0x8AE3, +0xE6B9, 0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, 0xC6C5, 0x8AE9, +0x8AEA, 0xCDF1, 0xE6BB, 0x8AEB, 0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, +0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3, 0x8AF4, 0xE6BC, 0x8AF5, 0x8AF6, +0x8AF7, 0x8AF8, 0xBBE9, 0x8AF9, 0x8AFA, 0x8AFB, 0x8AFC, 0x8AFD, +0x8AFE, 0x8B40, 0xE6BE, 0x8B41, 0x8B42, 0x8B43, 0x8B44, 0xE6BA, +0x8B45, 0x8B46, 0xC0B7, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, +0x8B4C, 0x8B4D, 0x8B4E, 0x8B4F, 0xD3A4, 0xE6BF, 0xC9F4, 0xE6C3, +0x8B50, 0x8B51, 0xE6C4, 0x8B52, 0x8B53, 0x8B54, 0x8B55, 0xD0F6, +0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, +0x8B5E, 0x8B5F, 0x8B60, 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, +0x8B66, 0x8B67, 0xC3BD, 0x8B68, 0x8B69, 0x8B6A, 0x8B6B, 0x8B6C, +0x8B6D, 0x8B6E, 0xC3C4, 0xE6C2, 0x8B6F, 0x8B70, 0x8B71, 0x8B72, +0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, 0x8B78, 0x8B79, 0x8B7A, +0x8B7B, 0x8B7C, 0xE6C1, 0x8B7D, 0x8B7E, 0x8B80, 0x8B81, 0x8B82, +0x8B83, 0x8B84, 0xE6C7, 0xCFB1, 0x8B85, 0xEBF4, 0x8B86, 0x8B87, +0xE6CA, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0xE6C5, 0x8B8D, +0x8B8E, 0xBCDE, 0xC9A9, 0x8B8F, 0x8B90, 0x8B91, 0x8B92, 0x8B93, +0x8B94, 0xBCB5, 0x8B95, 0x8B96, 0xCFD3, 0x8B97, 0x8B98, 0x8B99, +0x8B9A, 0x8B9B, 0xE6C8, 0x8B9C, 0xE6C9, 0x8B9D, 0xE6CE, 0x8B9E, +0xE6D0, 0x8B9F, 0x8BA0, 0x8BA1, 0xE6D1, 0x8BA2, 0x8BA3, 0x8BA4, +0xE6CB, 0xB5D5, 0x8BA5, 0xE6CC, 0x8BA6, 0x8BA7, 0xE6CF, 0x8BA8, +0x8BA9, 0xC4DB, 0x8BAA, 0xE6C6, 0x8BAB, 0x8BAC, 0x8BAD, 0x8BAE, +0x8BAF, 0xE6CD, 0x8BB0, 0x8BB1, 0x8BB2, 0x8BB3, 0x8BB4, 0x8BB5, +0x8BB6, 0x8BB7, 0x8BB8, 0x8BB9, 0x8BBA, 0x8BBB, 0x8BBC, 0x8BBD, +0x8BBE, 0x8BBF, 0x8BC0, 0x8BC1, 0x8BC2, 0x8BC3, 0x8BC4, 0x8BC5, +0x8BC6, 0xE6D2, 0x8BC7, 0x8BC8, 0x8BC9, 0x8BCA, 0x8BCB, 0x8BCC, +0x8BCD, 0x8BCE, 0x8BCF, 0x8BD0, 0x8BD1, 0x8BD2, 0xE6D4, 0xE6D3, +0x8BD3, 0x8BD4, 0x8BD5, 0x8BD6, 0x8BD7, 0x8BD8, 0x8BD9, 0x8BDA, +0x8BDB, 0x8BDC, 0x8BDD, 0x8BDE, 0x8BDF, 0x8BE0, 0x8BE1, 0x8BE2, +0x8BE3, 0x8BE4, 0x8BE5, 0x8BE6, 0x8BE7, 0x8BE8, 0x8BE9, 0x8BEA, +0x8BEB, 0x8BEC, 0xE6D5, 0x8BED, 0xD9F8, 0x8BEE, 0x8BEF, 0xE6D6, +0x8BF0, 0x8BF1, 0x8BF2, 0x8BF3, 0x8BF4, 0x8BF5, 0x8BF6, 0x8BF7, +0xE6D7, 0x8BF8, 0x8BF9, 0x8BFA, 0x8BFB, 0x8BFC, 0x8BFD, 0x8BFE, +0x8C40, 0x8C41, 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C46, 0x8C47, +0xD7D3, 0xE6DD, 0x8C48, 0xE6DE, 0xBFD7, 0xD4D0, 0x8C49, 0xD7D6, +0xB4E6, 0xCBEF, 0xE6DA, 0xD8C3, 0xD7CE, 0xD0A2, 0x8C4A, 0xC3CF, +0x8C4B, 0x8C4C, 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 0xD1A7, 0x8C4D, +0x8C4E, 0xBAA2, 0xC2CF, 0x8C4F, 0xD8AB, 0x8C50, 0x8C51, 0x8C52, +0xCAEB, 0xE5EE, 0x8C53, 0xE6DC, 0x8C54, 0xB7F5, 0x8C55, 0x8C56, +0x8C57, 0x8C58, 0xC8E6, 0x8C59, 0x8C5A, 0xC4F5, 0x8C5B, 0x8C5C, +0xE5B2, 0xC4FE, 0x8C5D, 0xCBFC, 0xE5B3, 0xD5AC, 0x8C5E, 0xD3EE, +0xCAD8, 0xB0B2, 0x8C5F, 0xCBCE, 0xCDEA, 0x8C60, 0x8C61, 0xBAEA, +0x8C62, 0x8C63, 0x8C64, 0xE5B5, 0x8C65, 0xE5B4, 0x8C66, 0xD7DA, +0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 0xB1A6, 0xCAB5, 0x8C67, +0xB3E8, 0xC9F3, 0xBFCD, 0xD0FB, 0xCAD2, 0xE5B6, 0xBBC2, 0x8C68, +0x8C69, 0x8C6A, 0xCFDC, 0xB9AC, 0x8C6B, 0x8C6C, 0x8C6D, 0x8C6E, +0xD4D7, 0x8C6F, 0x8C70, 0xBAA6, 0xD1E7, 0xCFFC, 0xBCD2, 0x8C71, +0xE5B7, 0xC8DD, 0x8C72, 0x8C73, 0x8C74, 0xBFED, 0xB1F6, 0xCBDE, +0x8C75, 0x8C76, 0xBCC5, 0x8C77, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC, +0x8C78, 0x8C79, 0x8C7A, 0x8C7B, 0xB8BB, 0x8C7C, 0x8C7D, 0x8C7E, +0xC3C2, 0x8C80, 0xBAAE, 0xD4A2, 0x8C81, 0x8C82, 0x8C83, 0x8C84, +0x8C85, 0x8C86, 0x8C87, 0x8C88, 0x8C89, 0xC7DE, 0xC4AF, 0xB2EC, +0x8C8A, 0xB9D1, 0x8C8B, 0x8C8C, 0xE5BB, 0xC1C8, 0x8C8D, 0x8C8E, +0xD5AF, 0x8C8F, 0x8C90, 0x8C91, 0x8C92, 0x8C93, 0xE5BC, 0x8C94, +0xE5BE, 0x8C95, 0x8C96, 0x8C97, 0x8C98, 0x8C99, 0x8C9A, 0x8C9B, +0xB4E7, 0xB6D4, 0xCBC2, 0xD1B0, 0xB5BC, 0x8C9C, 0x8C9D, 0xCAD9, +0x8C9E, 0xB7E2, 0x8C9F, 0x8CA0, 0xC9E4, 0x8CA1, 0xBDAB, 0x8CA2, +0x8CA3, 0xCEBE, 0xD7F0, 0x8CA4, 0x8CA5, 0x8CA6, 0x8CA7, 0xD0A1, +0x8CA8, 0xC9D9, 0x8CA9, 0x8CAA, 0xB6FB, 0xE6D8, 0xBCE2, 0x8CAB, +0xB3BE, 0x8CAC, 0xC9D0, 0x8CAD, 0xE6D9, 0xB3A2, 0x8CAE, 0x8CAF, +0x8CB0, 0x8CB1, 0xDECC, 0x8CB2, 0xD3C8, 0xDECD, 0x8CB3, 0xD2A2, +0x8CB4, 0x8CB5, 0x8CB6, 0x8CB7, 0xDECE, 0x8CB8, 0x8CB9, 0x8CBA, +0x8CBB, 0xBECD, 0x8CBC, 0x8CBD, 0xDECF, 0x8CBE, 0x8CBF, 0x8CC0, +0xCAAC, 0xD2FC, 0xB3DF, 0xE5EA, 0xC4E1, 0xBEA1, 0xCEB2, 0xC4F2, +0xBED6, 0xC6A8, 0xB2E3, 0x8CC1, 0x8CC2, 0xBED3, 0x8CC3, 0x8CC4, +0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD, 0x8CC5, 0x8CC6, 0xCABA, 0xC6C1, +0xE5EC, 0xD0BC, 0x8CC7, 0x8CC8, 0x8CC9, 0xD5B9, 0x8CCA, 0x8CCB, +0x8CCC, 0xE5ED, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0, 0xCAF4, 0x8CD1, +0xCDC0, 0xC2C5, 0x8CD2, 0xE5EF, 0x8CD3, 0xC2C4, 0xE5F0, 0x8CD4, +0x8CD5, 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, 0xE5F8, 0xCDCD, +0x8CDB, 0xC9BD, 0x8CDC, 0x8CDD, 0x8CDE, 0x8CDF, 0x8CE0, 0x8CE1, +0x8CE2, 0xD2D9, 0xE1A8, 0x8CE3, 0x8CE4, 0x8CE5, 0x8CE6, 0xD3EC, +0x8CE7, 0xCBEA, 0xC6F1, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, +0xE1AC, 0x8CED, 0x8CEE, 0x8CEF, 0xE1A7, 0xE1A9, 0x8CF0, 0x8CF1, +0xE1AA, 0xE1AF, 0x8CF2, 0x8CF3, 0xB2ED, 0x8CF4, 0xE1AB, 0xB8DA, +0xE1AD, 0xE1AE, 0xE1B0, 0xB5BA, 0xE1B1, 0x8CF5, 0x8CF6, 0x8CF7, +0x8CF8, 0x8CF9, 0xE1B3, 0xE1B8, 0x8CFA, 0x8CFB, 0x8CFC, 0x8CFD, +0x8CFE, 0xD1D2, 0x8D40, 0xE1B6, 0xE1B5, 0xC1EB, 0x8D41, 0x8D42, +0x8D43, 0xE1B7, 0x8D44, 0xD4C0, 0x8D45, 0xE1B2, 0x8D46, 0xE1BA, +0xB0B6, 0x8D47, 0x8D48, 0x8D49, 0x8D4A, 0xE1B4, 0x8D4B, 0xBFF9, +0x8D4C, 0xE1B9, 0x8D4D, 0x8D4E, 0xE1BB, 0x8D4F, 0x8D50, 0x8D51, +0x8D52, 0x8D53, 0x8D54, 0xE1BE, 0x8D55, 0x8D56, 0x8D57, 0x8D58, +0x8D59, 0x8D5A, 0xE1BC, 0x8D5B, 0x8D5C, 0x8D5D, 0x8D5E, 0x8D5F, +0x8D60, 0xD6C5, 0x8D61, 0x8D62, 0x8D63, 0x8D64, 0x8D65, 0x8D66, +0x8D67, 0xCFBF, 0x8D68, 0x8D69, 0xE1BD, 0xE1BF, 0xC2CD, 0x8D6A, +0xB6EB, 0x8D6B, 0xD3F8, 0x8D6C, 0x8D6D, 0xC7CD, 0x8D6E, 0x8D6F, +0xB7E5, 0x8D70, 0x8D71, 0x8D72, 0x8D73, 0x8D74, 0x8D75, 0x8D76, +0x8D77, 0x8D78, 0x8D79, 0xBEFE, 0x8D7A, 0x8D7B, 0x8D7C, 0x8D7D, +0x8D7E, 0x8D80, 0xE1C0, 0xE1C1, 0x8D81, 0x8D82, 0xE1C7, 0xB3E7, +0x8D83, 0x8D84, 0x8D85, 0x8D86, 0x8D87, 0x8D88, 0xC6E9, 0x8D89, +0x8D8A, 0x8D8B, 0x8D8C, 0x8D8D, 0xB4DE, 0x8D8E, 0xD1C2, 0x8D8F, +0x8D90, 0x8D91, 0x8D92, 0xE1C8, 0x8D93, 0x8D94, 0xE1C6, 0x8D95, +0x8D96, 0x8D97, 0x8D98, 0x8D99, 0xE1C5, 0x8D9A, 0xE1C3, 0xE1C2, +0x8D9B, 0xB1C0, 0x8D9C, 0x8D9D, 0x8D9E, 0xD5B8, 0xE1C4, 0x8D9F, +0x8DA0, 0x8DA1, 0x8DA2, 0x8DA3, 0xE1CB, 0x8DA4, 0x8DA5, 0x8DA6, +0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, 0x8DAB, 0xE1CC, 0xE1CA, 0x8DAC, +0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB1, 0x8DB2, 0x8DB3, 0xEFFA, +0x8DB4, 0x8DB5, 0xE1D3, 0xE1D2, 0xC7B6, 0x8DB6, 0x8DB7, 0x8DB8, +0x8DB9, 0x8DBA, 0x8DBB, 0x8DBC, 0x8DBD, 0x8DBE, 0x8DBF, 0x8DC0, +0xE1C9, 0x8DC1, 0x8DC2, 0xE1CE, 0x8DC3, 0xE1D0, 0x8DC4, 0x8DC5, +0x8DC6, 0x8DC7, 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCB, 0x8DCC, 0x8DCD, +0x8DCE, 0xE1D4, 0x8DCF, 0xE1D1, 0xE1CD, 0x8DD0, 0x8DD1, 0xE1CF, +0x8DD2, 0x8DD3, 0x8DD4, 0x8DD5, 0xE1D5, 0x8DD6, 0x8DD7, 0x8DD8, +0x8DD9, 0x8DDA, 0x8DDB, 0x8DDC, 0x8DDD, 0x8DDE, 0x8DDF, 0x8DE0, +0x8DE1, 0x8DE2, 0xE1D6, 0x8DE3, 0x8DE4, 0x8DE5, 0x8DE6, 0x8DE7, +0x8DE8, 0x8DE9, 0x8DEA, 0x8DEB, 0x8DEC, 0x8DED, 0x8DEE, 0x8DEF, +0x8DF0, 0x8DF1, 0x8DF2, 0x8DF3, 0x8DF4, 0x8DF5, 0x8DF6, 0x8DF7, +0x8DF8, 0xE1D7, 0x8DF9, 0x8DFA, 0x8DFB, 0xE1D8, 0x8DFC, 0x8DFD, +0x8DFE, 0x8E40, 0x8E41, 0x8E42, 0x8E43, 0x8E44, 0x8E45, 0x8E46, +0x8E47, 0x8E48, 0x8E49, 0x8E4A, 0x8E4B, 0x8E4C, 0x8E4D, 0x8E4E, +0x8E4F, 0x8E50, 0x8E51, 0x8E52, 0x8E53, 0x8E54, 0x8E55, 0xE1DA, +0x8E56, 0x8E57, 0x8E58, 0x8E59, 0x8E5A, 0x8E5B, 0x8E5C, 0x8E5D, +0x8E5E, 0x8E5F, 0x8E60, 0x8E61, 0x8E62, 0xE1DB, 0x8E63, 0x8E64, +0x8E65, 0x8E66, 0x8E67, 0x8E68, 0x8E69, 0xCEA1, 0x8E6A, 0x8E6B, +0x8E6C, 0x8E6D, 0x8E6E, 0x8E6F, 0x8E70, 0x8E71, 0x8E72, 0x8E73, +0x8E74, 0x8E75, 0x8E76, 0xE7DD, 0x8E77, 0xB4A8, 0xD6DD, 0x8E78, +0x8E79, 0xD1B2, 0xB3B2, 0x8E7A, 0x8E7B, 0xB9A4, 0xD7F3, 0xC7C9, +0xBEDE, 0xB9AE, 0x8E7C, 0xCED7, 0x8E7D, 0x8E7E, 0xB2EE, 0xDBCF, +0x8E80, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 0x8E81, 0x8E82, 0xCFEF, +0x8E83, 0x8E84, 0x8E85, 0x8E86, 0x8E87, 0xD9E3, 0xBDED, 0x8E88, +0x8E89, 0xB1D2, 0xCAD0, 0xB2BC, 0x8E8A, 0xCBA7, 0xB7AB, 0x8E8B, +0xCAA6, 0x8E8C, 0x8E8D, 0x8E8E, 0xCFA3, 0x8E8F, 0x8E90, 0xE0F8, +0xD5CA, 0xE0FB, 0x8E91, 0x8E92, 0xE0FA, 0xC5C1, 0xCCFB, 0x8E93, +0xC1B1, 0xE0F9, 0xD6E3, 0xB2AF, 0xD6C4, 0xB5DB, 0x8E94, 0x8E95, +0x8E96, 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0x8E9B, 0xB4F8, 0xD6A1, +0x8E9C, 0x8E9D, 0x8E9E, 0x8E9F, 0x8EA0, 0xCFAF, 0xB0EF, 0x8EA1, +0x8EA2, 0xE0FC, 0x8EA3, 0x8EA4, 0x8EA5, 0x8EA6, 0x8EA7, 0xE1A1, +0xB3A3, 0x8EA8, 0x8EA9, 0xE0FD, 0xE0FE, 0xC3B1, 0x8EAA, 0x8EAB, +0x8EAC, 0x8EAD, 0xC3DD, 0x8EAE, 0xE1A2, 0xB7F9, 0x8EAF, 0x8EB0, +0x8EB1, 0x8EB2, 0x8EB3, 0x8EB4, 0xBBCF, 0x8EB5, 0x8EB6, 0x8EB7, +0x8EB8, 0x8EB9, 0x8EBA, 0x8EBB, 0xE1A3, 0xC4BB, 0x8EBC, 0x8EBD, +0x8EBE, 0x8EBF, 0x8EC0, 0xE1A4, 0x8EC1, 0x8EC2, 0xE1A5, 0x8EC3, +0x8EC4, 0xE1A6, 0xB4B1, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, 0x8EC9, +0x8ECA, 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECE, 0x8ECF, 0x8ED0, 0x8ED1, +0x8ED2, 0x8ED3, 0xB8C9, 0xC6BD, 0xC4EA, 0x8ED4, 0xB2A2, 0x8ED5, +0xD0D2, 0x8ED6, 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 0x8ED7, 0xB9E3, +0xE2CF, 0x8ED8, 0x8ED9, 0x8EDA, 0xD7AF, 0x8EDB, 0xC7EC, 0xB1D3, +0x8EDC, 0x8EDD, 0xB4B2, 0xE2D1, 0x8EDE, 0x8EDF, 0x8EE0, 0xD0F2, +0xC2AE, 0xE2D0, 0x8EE1, 0xBFE2, 0xD3A6, 0xB5D7, 0xE2D2, 0xB5EA, +0x8EE2, 0xC3ED, 0xB8FD, 0x8EE3, 0xB8AE, 0x8EE4, 0xC5D3, 0xB7CF, +0xE2D4, 0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0xE2D3, 0xB6C8, 0xD7F9, +0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, 0x8EED, 0xCDA5, 0x8EEE, 0x8EEF, +0x8EF0, 0x8EF1, 0x8EF2, 0xE2D8, 0x8EF3, 0xE2D6, 0xCAFC, 0xBFB5, +0xD3B9, 0xE2D5, 0x8EF4, 0x8EF5, 0x8EF6, 0x8EF7, 0xE2D7, 0x8EF8, +0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, 0x8EFD, 0x8EFE, 0x8F40, 0x8F41, +0x8F42, 0xC1AE, 0xC0C8, 0x8F43, 0x8F44, 0x8F45, 0x8F46, 0x8F47, +0x8F48, 0xE2DB, 0xE2DA, 0xC0AA, 0x8F49, 0x8F4A, 0xC1CE, 0x8F4B, +0x8F4C, 0x8F4D, 0x8F4E, 0xE2DC, 0x8F4F, 0x8F50, 0x8F51, 0x8F52, +0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, 0x8F5A, +0xE2DD, 0x8F5B, 0xE2DE, 0x8F5C, 0x8F5D, 0x8F5E, 0x8F5F, 0x8F60, +0x8F61, 0x8F62, 0x8F63, 0x8F64, 0xDBC8, 0x8F65, 0xD1D3, 0xCDA2, +0x8F66, 0x8F67, 0xBDA8, 0x8F68, 0x8F69, 0x8F6A, 0xDEC3, 0xD8A5, +0xBFAA, 0xDBCD, 0xD2EC, 0xC6FA, 0xC5AA, 0x8F6B, 0x8F6C, 0x8F6D, +0xDEC4, 0x8F6E, 0xB1D7, 0xDFAE, 0x8F6F, 0x8F70, 0x8F71, 0xCABD, +0x8F72, 0xDFB1, 0x8F73, 0xB9AD, 0x8F74, 0xD2FD, 0x8F75, 0xB8A5, +0xBAEB, 0x8F76, 0x8F77, 0xB3DA, 0x8F78, 0x8F79, 0x8F7A, 0xB5DC, +0xD5C5, 0x8F7B, 0x8F7C, 0x8F7D, 0x8F7E, 0xC3D6, 0xCFD2, 0xBBA1, +0x8F80, 0xE5F3, 0xE5F2, 0x8F81, 0x8F82, 0xE5F4, 0x8F83, 0xCDE4, +0x8F84, 0xC8F5, 0x8F85, 0x8F86, 0x8F87, 0x8F88, 0x8F89, 0x8F8A, +0x8F8B, 0xB5AF, 0xC7BF, 0x8F8C, 0xE5F6, 0x8F8D, 0x8F8E, 0x8F8F, +0xECB0, 0x8F90, 0x8F91, 0x8F92, 0x8F93, 0x8F94, 0x8F95, 0x8F96, +0x8F97, 0x8F98, 0x8F99, 0x8F9A, 0x8F9B, 0x8F9C, 0x8F9D, 0x8F9E, +0xE5E6, 0x8F9F, 0xB9E9, 0xB5B1, 0x8FA0, 0xC2BC, 0xE5E8, 0xE5E7, +0xE5E9, 0x8FA1, 0x8FA2, 0x8FA3, 0x8FA4, 0xD2CD, 0x8FA5, 0x8FA6, +0x8FA7, 0xE1EA, 0xD0CE, 0x8FA8, 0xCDAE, 0x8FA9, 0xD1E5, 0x8FAA, +0x8FAB, 0xB2CA, 0xB1EB, 0x8FAC, 0xB1F2, 0xC5ED, 0x8FAD, 0x8FAE, +0xD5C3, 0xD3B0, 0x8FAF, 0xE1DC, 0x8FB0, 0x8FB1, 0x8FB2, 0xE1DD, +0x8FB3, 0xD2DB, 0x8FB4, 0xB3B9, 0xB1CB, 0x8FB5, 0x8FB6, 0x8FB7, +0xCDF9, 0xD5F7, 0xE1DE, 0x8FB8, 0xBEB6, 0xB4FD, 0x8FB9, 0xE1DF, +0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xE1E1, 0x8FBA, 0x8FBB, 0x8FBC, +0xD0EC, 0x8FBD, 0xCDBD, 0x8FBE, 0x8FBF, 0xE1E2, 0x8FC0, 0xB5C3, +0xC5C7, 0xE1E3, 0x8FC1, 0x8FC2, 0xE1E4, 0x8FC3, 0x8FC4, 0x8FC5, +0x8FC6, 0xD3F9, 0x8FC7, 0x8FC8, 0x8FC9, 0x8FCA, 0x8FCB, 0x8FCC, +0xE1E5, 0x8FCD, 0xD1AD, 0x8FCE, 0x8FCF, 0xE1E6, 0xCEA2, 0x8FD0, +0x8FD1, 0x8FD2, 0x8FD3, 0x8FD4, 0x8FD5, 0xE1E7, 0x8FD6, 0xB5C2, +0x8FD7, 0x8FD8, 0x8FD9, 0x8FDA, 0xE1E8, 0xBBD5, 0x8FDB, 0x8FDC, +0x8FDD, 0x8FDE, 0x8FDF, 0xD0C4, 0xE2E0, 0xB1D8, 0xD2E4, 0x8FE0, +0x8FE1, 0xE2E1, 0x8FE2, 0x8FE3, 0xBCC9, 0xC8CC, 0x8FE4, 0xE2E3, +0xECFE, 0xECFD, 0xDFAF, 0x8FE5, 0x8FE6, 0x8FE7, 0xE2E2, 0xD6BE, +0xCDFC, 0xC3A6, 0x8FE8, 0x8FE9, 0x8FEA, 0xE3C3, 0x8FEB, 0x8FEC, +0xD6D2, 0xE2E7, 0x8FED, 0x8FEE, 0xE2E8, 0x8FEF, 0x8FF0, 0xD3C7, +0x8FF1, 0x8FF2, 0xE2EC, 0xBFEC, 0x8FF3, 0xE2ED, 0xE2E5, 0x8FF4, +0x8FF5, 0xB3C0, 0x8FF6, 0x8FF7, 0x8FF8, 0xC4EE, 0x8FF9, 0x8FFA, +0xE2EE, 0x8FFB, 0x8FFC, 0xD0C3, 0x8FFD, 0xBAF6, 0xE2E9, 0xB7DE, +0xBBB3, 0xCCAC, 0xCBCB, 0xE2E4, 0xE2E6, 0xE2EA, 0xE2EB, 0x8FFE, +0x9040, 0x9041, 0xE2F7, 0x9042, 0x9043, 0xE2F4, 0xD4F5, 0xE2F3, +0x9044, 0x9045, 0xC5AD, 0x9046, 0xD5FA, 0xC5C2, 0xB2C0, 0x9047, +0x9048, 0xE2EF, 0x9049, 0xE2F2, 0xC1AF, 0xCBBC, 0x904A, 0x904B, +0xB5A1, 0xE2F9, 0x904C, 0x904D, 0x904E, 0xBCB1, 0xE2F1, 0xD0D4, +0xD4B9, 0xE2F5, 0xB9D6, 0xE2F6, 0x904F, 0x9050, 0x9051, 0xC7D3, +0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0xE2F0, 0x9057, 0x9058, +0x9059, 0x905A, 0x905B, 0xD7DC, 0xEDA1, 0x905C, 0x905D, 0xE2F8, +0x905E, 0xEDA5, 0xE2FE, 0xCAD1, 0x905F, 0x9060, 0x9061, 0x9062, +0x9063, 0x9064, 0x9065, 0xC1B5, 0x9066, 0xBBD0, 0x9067, 0x9068, +0xBFD6, 0x9069, 0xBAE3, 0x906A, 0x906B, 0xCBA1, 0x906C, 0x906D, +0x906E, 0xEDA6, 0xEDA3, 0x906F, 0x9070, 0xEDA2, 0x9071, 0x9072, +0x9073, 0x9074, 0xBBD6, 0xEDA7, 0xD0F4, 0x9075, 0x9076, 0xEDA4, +0xBADE, 0xB6F7, 0xE3A1, 0xB6B2, 0xCCF1, 0xB9A7, 0x9077, 0xCFA2, +0xC7A1, 0x9078, 0x9079, 0xBFD2, 0x907A, 0x907B, 0xB6F1, 0x907C, +0xE2FA, 0xE2FB, 0xE2FD, 0xE2FC, 0xC4D5, 0xE3A2, 0x907D, 0xD3C1, +0x907E, 0x9080, 0x9081, 0xE3A7, 0xC7C4, 0x9082, 0x9083, 0x9084, +0x9085, 0xCFA4, 0x9086, 0x9087, 0xE3A9, 0xBAB7, 0x9088, 0x9089, +0x908A, 0x908B, 0xE3A8, 0x908C, 0xBBDA, 0x908D, 0xE3A3, 0x908E, +0x908F, 0x9090, 0xE3A4, 0xE3AA, 0x9091, 0xE3A6, 0x9092, 0xCEF2, +0xD3C6, 0x9093, 0x9094, 0xBBBC, 0x9095, 0x9096, 0xD4C3, 0x9097, +0xC4FA, 0x9098, 0x9099, 0xEDA8, 0xD0FC, 0xE3A5, 0x909A, 0xC3F5, +0x909B, 0xE3AD, 0xB1AF, 0x909C, 0xE3B2, 0x909D, 0x909E, 0x909F, +0xBCC2, 0x90A0, 0x90A1, 0xE3AC, 0xB5BF, 0x90A2, 0x90A3, 0x90A4, +0x90A5, 0x90A6, 0x90A7, 0x90A8, 0x90A9, 0xC7E9, 0xE3B0, 0x90AA, +0x90AB, 0x90AC, 0xBEAA, 0xCDEF, 0x90AD, 0x90AE, 0x90AF, 0x90B0, +0x90B1, 0xBBF3, 0x90B2, 0x90B3, 0x90B4, 0xCCE8, 0x90B5, 0x90B6, +0xE3AF, 0x90B7, 0xE3B1, 0x90B8, 0xCFA7, 0xE3AE, 0x90B9, 0xCEA9, +0xBBDD, 0x90BA, 0x90BB, 0x90BC, 0x90BD, 0x90BE, 0xB5EB, 0xBEE5, +0xB2D2, 0xB3CD, 0x90BF, 0xB1B9, 0xE3AB, 0xB2D1, 0xB5AC, 0xB9DF, +0xB6E8, 0x90C0, 0x90C1, 0xCFEB, 0xE3B7, 0x90C2, 0xBBCC, 0x90C3, +0x90C4, 0xC8C7, 0xD0CA, 0x90C5, 0x90C6, 0x90C7, 0x90C8, 0x90C9, +0xE3B8, 0xB3EE, 0x90CA, 0x90CB, 0x90CC, 0x90CD, 0xEDA9, 0x90CE, +0xD3FA, 0xD3E4, 0x90CF, 0x90D0, 0x90D1, 0xEDAA, 0xE3B9, 0xD2E2, +0x90D2, 0x90D3, 0x90D4, 0x90D5, 0x90D6, 0xE3B5, 0x90D7, 0x90D8, +0x90D9, 0x90DA, 0xD3DE, 0x90DB, 0x90DC, 0x90DD, 0x90DE, 0xB8D0, +0xE3B3, 0x90DF, 0x90E0, 0xE3B6, 0xB7DF, 0x90E1, 0xE3B4, 0xC0A2, +0x90E2, 0x90E3, 0x90E4, 0xE3BA, 0x90E5, 0x90E6, 0x90E7, 0x90E8, +0x90E9, 0x90EA, 0x90EB, 0x90EC, 0x90ED, 0x90EE, 0x90EF, 0x90F0, +0x90F1, 0x90F2, 0x90F3, 0x90F4, 0x90F5, 0x90F6, 0x90F7, 0xD4B8, +0x90F8, 0x90F9, 0x90FA, 0x90FB, 0x90FC, 0x90FD, 0x90FE, 0x9140, +0xB4C8, 0x9141, 0xE3BB, 0x9142, 0xBBC5, 0x9143, 0xC9F7, 0x9144, +0x9145, 0xC9E5, 0x9146, 0x9147, 0x9148, 0xC4BD, 0x9149, 0x914A, +0x914B, 0x914C, 0x914D, 0x914E, 0x914F, 0xEDAB, 0x9150, 0x9151, +0x9152, 0x9153, 0xC2FD, 0x9154, 0x9155, 0x9156, 0x9157, 0xBBDB, +0xBFAE, 0x9158, 0x9159, 0x915A, 0x915B, 0x915C, 0x915D, 0x915E, +0xCEBF, 0x915F, 0x9160, 0x9161, 0x9162, 0xE3BC, 0x9163, 0xBFB6, +0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, 0x916A, 0x916B, +0x916C, 0x916D, 0x916E, 0x916F, 0x9170, 0x9171, 0x9172, 0x9173, +0x9174, 0x9175, 0x9176, 0xB1EF, 0x9177, 0x9178, 0xD4F7, 0x9179, +0x917A, 0x917B, 0x917C, 0x917D, 0xE3BE, 0x917E, 0x9180, 0x9181, +0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0xEDAD, 0x9187, 0x9188, +0x9189, 0x918A, 0x918B, 0x918C, 0x918D, 0x918E, 0x918F, 0xE3BF, +0xBAA9, 0xEDAC, 0x9190, 0x9191, 0xE3BD, 0x9192, 0x9193, 0x9194, +0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919A, 0x919B, 0xE3C0, +0x919C, 0x919D, 0x919E, 0x919F, 0x91A0, 0x91A1, 0xBAB6, 0x91A2, +0x91A3, 0x91A4, 0xB6AE, 0x91A5, 0x91A6, 0x91A7, 0x91A8, 0x91A9, +0xD0B8, 0x91AA, 0xB0C3, 0xEDAE, 0x91AB, 0x91AC, 0x91AD, 0x91AE, +0x91AF, 0xEDAF, 0xC0C1, 0x91B0, 0xE3C1, 0x91B1, 0x91B2, 0x91B3, +0x91B4, 0x91B5, 0x91B6, 0x91B7, 0x91B8, 0x91B9, 0x91BA, 0x91BB, +0x91BC, 0x91BD, 0x91BE, 0x91BF, 0x91C0, 0x91C1, 0xC5B3, 0x91C2, +0x91C3, 0x91C4, 0x91C5, 0x91C6, 0x91C7, 0x91C8, 0x91C9, 0x91CA, +0x91CB, 0x91CC, 0x91CD, 0x91CE, 0x91CF, 0xE3C2, 0x91D0, 0x91D1, +0x91D2, 0x91D3, 0x91D4, 0x91D5, 0x91D6, 0x91D7, 0x91D8, 0xDCB2, +0x91D9, 0x91DA, 0x91DB, 0x91DC, 0x91DD, 0x91DE, 0xEDB0, 0x91DF, +0xB8EA, 0x91E0, 0xCEEC, 0xEAA7, 0xD0E7, 0xCAF9, 0xC8D6, 0xCFB7, +0xB3C9, 0xCED2, 0xBDE4, 0x91E1, 0x91E2, 0xE3DE, 0xBBF2, 0xEAA8, +0xD5BD, 0x91E3, 0xC6DD, 0xEAA9, 0x91E4, 0x91E5, 0x91E6, 0xEAAA, +0x91E7, 0xEAAC, 0xEAAB, 0x91E8, 0xEAAE, 0xEAAD, 0x91E9, 0x91EA, +0x91EB, 0x91EC, 0xBDD8, 0x91ED, 0xEAAF, 0x91EE, 0xC2BE, 0x91EF, +0x91F0, 0x91F1, 0x91F2, 0xB4C1, 0xB4F7, 0x91F3, 0x91F4, 0xBBA7, +0x91F5, 0x91F6, 0x91F7, 0x91F8, 0x91F9, 0xECE6, 0xECE5, 0xB7BF, +0xCBF9, 0xB1E2, 0x91FA, 0xECE7, 0x91FB, 0x91FC, 0x91FD, 0xC9C8, +0xECE8, 0xECE9, 0x91FE, 0xCAD6, 0xDED0, 0xB2C5, 0xD4FA, 0x9240, +0x9241, 0xC6CB, 0xB0C7, 0xB4F2, 0xC8D3, 0x9242, 0x9243, 0x9244, +0xCDD0, 0x9245, 0x9246, 0xBFB8, 0x9247, 0x9248, 0x9249, 0x924A, +0x924B, 0x924C, 0x924D, 0xBFDB, 0x924E, 0x924F, 0xC7A4, 0xD6B4, +0x9250, 0xC0A9, 0xDED1, 0xC9A8, 0xD1EF, 0xC5A4, 0xB0E7, 0xB3B6, +0xC8C5, 0x9251, 0x9252, 0xB0E2, 0x9253, 0x9254, 0xB7F6, 0x9255, +0x9256, 0xC5FA, 0x9257, 0x9258, 0xB6F3, 0x9259, 0xD5D2, 0xB3D0, +0xBCBC, 0x925A, 0x925B, 0x925C, 0xB3AD, 0x925D, 0x925E, 0x925F, +0x9260, 0xBEF1, 0xB0D1, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, +0x9266, 0xD2D6, 0xCAE3, 0xD7A5, 0x9267, 0xCDB6, 0xB6B6, 0xBFB9, +0xD5DB, 0x9268, 0xB8A7, 0xC5D7, 0x9269, 0x926A, 0x926B, 0xDED2, +0xBFD9, 0xC2D5, 0xC7C0, 0x926C, 0xBBA4, 0xB1A8, 0x926D, 0x926E, +0xC5EA, 0x926F, 0x9270, 0xC5FB, 0xCCA7, 0x9271, 0x9272, 0x9273, +0x9274, 0xB1A7, 0x9275, 0x9276, 0x9277, 0xB5D6, 0x9278, 0x9279, +0x927A, 0xC4A8, 0x927B, 0xDED3, 0xD1BA, 0xB3E9, 0x927C, 0xC3F2, +0x927D, 0x927E, 0xB7F7, 0x9280, 0xD6F4, 0xB5A3, 0xB2F0, 0xC4B4, +0xC4E9, 0xC0AD, 0xDED4, 0x9281, 0xB0E8, 0xC5C4, 0xC1E0, 0x9282, +0xB9D5, 0x9283, 0xBEDC, 0xCDD8, 0xB0CE, 0x9284, 0xCDCF, 0xDED6, +0xBED0, 0xD7BE, 0xDED5, 0xD5D0, 0xB0DD, 0x9285, 0x9286, 0xC4E2, +0x9287, 0x9288, 0xC2A3, 0xBCF0, 0x9289, 0xD3B5, 0xC0B9, 0xC5A1, +0xB2A6, 0xD4F1, 0x928A, 0x928B, 0xC0A8, 0xCAC3, 0xDED7, 0xD5FC, +0x928C, 0xB9B0, 0x928D, 0xC8AD, 0xCBA9, 0x928E, 0xDED9, 0xBFBD, +0x928F, 0x9290, 0x9291, 0x9292, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3, +0x9293, 0xB3D6, 0xB9D2, 0x9294, 0x9295, 0x9296, 0x9297, 0xD6B8, +0xEAFC, 0xB0B4, 0x9298, 0x9299, 0x929A, 0x929B, 0xBFE6, 0x929C, +0x929D, 0xCCF4, 0x929E, 0x929F, 0x92A0, 0x92A1, 0xCDDA, 0x92A2, +0x92A3, 0x92A4, 0xD6BF, 0xC2CE, 0x92A5, 0xCECE, 0xCCA2, 0xD0AE, +0xC4D3, 0xB5B2, 0xDED8, 0xD5F5, 0xBCB7, 0xBBD3, 0x92A6, 0x92A7, +0xB0A4, 0x92A8, 0xC5B2, 0xB4EC, 0x92A9, 0x92AA, 0x92AB, 0xD5F1, +0x92AC, 0x92AD, 0xEAFD, 0x92AE, 0x92AF, 0x92B0, 0x92B1, 0x92B2, +0x92B3, 0xDEDA, 0xCDA6, 0x92B4, 0x92B5, 0xCDEC, 0x92B6, 0x92B7, +0x92B8, 0x92B9, 0xCEE6, 0xDEDC, 0x92BA, 0xCDB1, 0xC0A6, 0x92BB, +0x92BC, 0xD7BD, 0x92BD, 0xDEDB, 0xB0C6, 0xBAB4, 0xC9D3, 0xC4F3, +0xBEE8, 0x92BE, 0x92BF, 0x92C0, 0x92C1, 0xB2B6, 0x92C2, 0x92C3, +0x92C4, 0x92C5, 0x92C6, 0x92C7, 0x92C8, 0x92C9, 0xC0CC, 0xCBF0, +0x92CA, 0xBCF1, 0xBBBB, 0xB5B7, 0x92CB, 0x92CC, 0x92CD, 0xC5F5, +0x92CE, 0xDEE6, 0x92CF, 0x92D0, 0x92D1, 0xDEE3, 0xBEDD, 0x92D2, +0x92D3, 0xDEDF, 0x92D4, 0x92D5, 0x92D6, 0x92D7, 0xB4B7, 0xBDDD, +0x92D8, 0x92D9, 0xDEE0, 0xC4ED, 0x92DA, 0x92DB, 0x92DC, 0x92DD, +0xCFC6, 0x92DE, 0xB5E0, 0x92DF, 0x92E0, 0x92E1, 0x92E2, 0xB6DE, +0xCADA, 0xB5F4, 0xDEE5, 0x92E3, 0xD5C6, 0x92E4, 0xDEE1, 0xCCCD, +0xC6FE, 0x92E5, 0xC5C5, 0x92E6, 0x92E7, 0x92E8, 0xD2B4, 0x92E9, +0xBEF2, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, +0xC2D3, 0x92F1, 0xCCBD, 0xB3B8, 0x92F2, 0xBDD3, 0x92F3, 0xBFD8, +0xCDC6, 0xD1DA, 0xB4EB, 0x92F4, 0xDEE4, 0xDEDD, 0xDEE7, 0x92F5, +0xEAFE, 0x92F6, 0x92F7, 0xC2B0, 0xDEE2, 0x92F8, 0x92F9, 0xD6C0, +0xB5A7, 0x92FA, 0xB2F4, 0x92FB, 0xDEE8, 0x92FC, 0xDEF2, 0x92FD, +0x92FE, 0x9340, 0x9341, 0x9342, 0xDEED, 0x9343, 0xDEF1, 0x9344, +0x9345, 0xC8E0, 0x9346, 0x9347, 0x9348, 0xD7E1, 0xDEEF, 0xC3E8, +0xCCE1, 0x9349, 0xB2E5, 0x934A, 0x934B, 0x934C, 0xD2BE, 0x934D, +0x934E, 0x934F, 0x9350, 0x9351, 0x9352, 0x9353, 0xDEEE, 0x9354, +0xDEEB, 0xCED5, 0x9355, 0xB4A7, 0x9356, 0x9357, 0x9358, 0x9359, +0x935A, 0xBFAB, 0xBEBE, 0x935B, 0x935C, 0xBDD2, 0x935D, 0x935E, +0x935F, 0x9360, 0xDEE9, 0x9361, 0xD4AE, 0x9362, 0xDEDE, 0x9363, +0xDEEA, 0x9364, 0x9365, 0x9366, 0x9367, 0xC0BF, 0x9368, 0xDEEC, +0xB2F3, 0xB8E9, 0xC2A7, 0x9369, 0x936A, 0xBDC1, 0x936B, 0x936C, +0x936D, 0x936E, 0x936F, 0xDEF5, 0xDEF8, 0x9370, 0x9371, 0xB2AB, +0xB4A4, 0x9372, 0x9373, 0xB4EA, 0xC9A6, 0x9374, 0x9375, 0x9376, +0x9377, 0x9378, 0x9379, 0xDEF6, 0xCBD1, 0x937A, 0xB8E3, 0x937B, +0xDEF7, 0xDEFA, 0x937C, 0x937D, 0x937E, 0x9380, 0xDEF9, 0x9381, +0x9382, 0x9383, 0xCCC2, 0x9384, 0xB0E1, 0xB4EE, 0x9385, 0x9386, +0x9387, 0x9388, 0x9389, 0x938A, 0xE5BA, 0x938B, 0x938C, 0x938D, +0x938E, 0x938F, 0xD0AF, 0x9390, 0x9391, 0xB2EB, 0x9392, 0xEBA1, +0x9393, 0xDEF4, 0x9394, 0x9395, 0xC9E3, 0xDEF3, 0xB0DA, 0xD2A1, +0xB1F7, 0x9396, 0xCCAF, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, +0x939C, 0x939D, 0xDEF0, 0x939E, 0xCBA4, 0x939F, 0x93A0, 0x93A1, +0xD5AA, 0x93A2, 0x93A3, 0x93A4, 0x93A5, 0x93A6, 0xDEFB, 0x93A7, +0x93A8, 0x93A9, 0x93AA, 0x93AB, 0x93AC, 0x93AD, 0x93AE, 0xB4DD, +0x93AF, 0xC4A6, 0x93B0, 0x93B1, 0x93B2, 0xDEFD, 0x93B3, 0x93B4, +0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, 0x93BA, 0x93BB, 0x93BC, +0xC3FE, 0xC4A1, 0xDFA1, 0x93BD, 0x93BE, 0x93BF, 0x93C0, 0x93C1, +0x93C2, 0x93C3, 0xC1CC, 0x93C4, 0xDEFC, 0xBEEF, 0x93C5, 0xC6B2, +0x93C6, 0x93C7, 0x93C8, 0x93C9, 0x93CA, 0x93CB, 0x93CC, 0x93CD, +0x93CE, 0xB3C5, 0xC8F6, 0x93CF, 0x93D0, 0xCBBA, 0xDEFE, 0x93D1, +0x93D2, 0xDFA4, 0x93D3, 0x93D4, 0x93D5, 0x93D6, 0xD7B2, 0x93D7, +0x93D8, 0x93D9, 0x93DA, 0x93DB, 0xB3B7, 0x93DC, 0x93DD, 0x93DE, +0x93DF, 0xC1C3, 0x93E0, 0x93E1, 0xC7CB, 0xB2A5, 0xB4E9, 0x93E2, +0xD7AB, 0x93E3, 0x93E4, 0x93E5, 0x93E6, 0xC4EC, 0x93E7, 0xDFA2, +0xDFA3, 0x93E8, 0xDFA5, 0x93E9, 0xBAB3, 0x93EA, 0x93EB, 0x93EC, +0xDFA6, 0x93ED, 0xC0DE, 0x93EE, 0x93EF, 0xC9C3, 0x93F0, 0x93F1, +0x93F2, 0x93F3, 0x93F4, 0x93F5, 0x93F6, 0xB2D9, 0xC7E6, 0x93F7, +0xDFA7, 0x93F8, 0xC7DC, 0x93F9, 0x93FA, 0x93FB, 0x93FC, 0xDFA8, +0xEBA2, 0x93FD, 0x93FE, 0x9440, 0x9441, 0x9442, 0xCBD3, 0x9443, +0x9444, 0x9445, 0xDFAA, 0x9446, 0xDFA9, 0x9447, 0xB2C1, 0x9448, +0x9449, 0x944A, 0x944B, 0x944C, 0x944D, 0x944E, 0x944F, 0x9450, +0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, +0x9459, 0x945A, 0x945B, 0x945C, 0x945D, 0x945E, 0x945F, 0x9460, +0xC5CA, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, +0x9468, 0xDFAB, 0x9469, 0x946A, 0x946B, 0x946C, 0x946D, 0x946E, +0x946F, 0x9470, 0xD4DC, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, +0xC8C1, 0x9476, 0x9477, 0x9478, 0x9479, 0x947A, 0x947B, 0x947C, +0x947D, 0x947E, 0x9480, 0x9481, 0x9482, 0xDFAC, 0x9483, 0x9484, +0x9485, 0x9486, 0x9487, 0xBEF0, 0x9488, 0x9489, 0xDFAD, 0xD6A7, +0x948A, 0x948B, 0x948C, 0x948D, 0xEAB7, 0xEBB6, 0xCAD5, 0x948E, +0xD8FC, 0xB8C4, 0x948F, 0xB9A5, 0x9490, 0x9491, 0xB7C5, 0xD5FE, +0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0xB9CA, 0x9497, 0x9498, +0xD0A7, 0xF4CD, 0x9499, 0x949A, 0xB5D0, 0x949B, 0x949C, 0xC3F4, +0x949D, 0xBEC8, 0x949E, 0x949F, 0x94A0, 0xEBB7, 0xB0BD, 0x94A1, +0x94A2, 0xBDCC, 0x94A3, 0xC1B2, 0x94A4, 0xB1D6, 0xB3A8, 0x94A5, +0x94A6, 0x94A7, 0xB8D2, 0xC9A2, 0x94A8, 0x94A9, 0xB6D8, 0x94AA, +0x94AB, 0x94AC, 0x94AD, 0xEBB8, 0xBEB4, 0x94AE, 0x94AF, 0x94B0, +0xCAFD, 0x94B1, 0xC7C3, 0x94B2, 0xD5FB, 0x94B3, 0x94B4, 0xB7F3, +0x94B5, 0x94B6, 0x94B7, 0x94B8, 0x94B9, 0x94BA, 0x94BB, 0x94BC, +0x94BD, 0x94BE, 0x94BF, 0x94C0, 0x94C1, 0x94C2, 0x94C3, 0xCEC4, +0x94C4, 0x94C5, 0x94C6, 0xD5AB, 0xB1F3, 0x94C7, 0x94C8, 0x94C9, +0xECB3, 0xB0DF, 0x94CA, 0xECB5, 0x94CB, 0x94CC, 0x94CD, 0xB6B7, +0x94CE, 0xC1CF, 0x94CF, 0xF5FA, 0xD0B1, 0x94D0, 0x94D1, 0xD5E5, +0x94D2, 0xCED3, 0x94D3, 0x94D4, 0xBDEF, 0xB3E2, 0x94D5, 0xB8AB, +0x94D6, 0xD5B6, 0x94D7, 0xEDBD, 0x94D8, 0xB6CF, 0x94D9, 0xCBB9, +0xD0C2, 0x94DA, 0x94DB, 0x94DC, 0x94DD, 0x94DE, 0x94DF, 0x94E0, +0x94E1, 0xB7BD, 0x94E2, 0x94E3, 0xECB6, 0xCAA9, 0x94E4, 0x94E5, +0x94E6, 0xC5D4, 0x94E7, 0xECB9, 0xECB8, 0xC2C3, 0xECB7, 0x94E8, +0x94E9, 0x94EA, 0x94EB, 0xD0FD, 0xECBA, 0x94EC, 0xECBB, 0xD7E5, +0x94ED, 0x94EE, 0xECBC, 0x94EF, 0x94F0, 0x94F1, 0xECBD, 0xC6EC, +0x94F2, 0x94F3, 0x94F4, 0x94F5, 0x94F6, 0x94F7, 0x94F8, 0x94F9, +0xCEDE, 0x94FA, 0xBCC8, 0x94FB, 0x94FC, 0xC8D5, 0xB5A9, 0xBEC9, +0xD6BC, 0xD4E7, 0x94FD, 0x94FE, 0xD1AE, 0xD0F1, 0xEAB8, 0xEAB9, +0xEABA, 0xBAB5, 0x9540, 0x9541, 0x9542, 0x9543, 0xCAB1, 0xBFF5, +0x9544, 0x9545, 0xCDFA, 0x9546, 0x9547, 0x9548, 0x9549, 0x954A, +0xEAC0, 0x954B, 0xB0BA, 0xEABE, 0x954C, 0x954D, 0xC0A5, 0x954E, +0x954F, 0x9550, 0xEABB, 0x9551, 0xB2FD, 0x9552, 0xC3F7, 0xBBE8, +0x9553, 0x9554, 0x9555, 0xD2D7, 0xCEF4, 0xEABF, 0x9556, 0x9557, +0x9558, 0xEABC, 0x9559, 0x955A, 0x955B, 0xEAC3, 0x955C, 0xD0C7, +0xD3B3, 0x955D, 0x955E, 0x955F, 0x9560, 0xB4BA, 0x9561, 0xC3C1, +0xD7F2, 0x9562, 0x9563, 0x9564, 0x9565, 0xD5D1, 0x9566, 0xCAC7, +0x9567, 0xEAC5, 0x9568, 0x9569, 0xEAC4, 0xEAC7, 0xEAC6, 0x956A, +0x956B, 0x956C, 0x956D, 0x956E, 0xD6E7, 0x956F, 0xCFD4, 0x9570, +0x9571, 0xEACB, 0x9572, 0xBBCE, 0x9573, 0x9574, 0x9575, 0x9576, +0x9577, 0x9578, 0x9579, 0xBDFA, 0xC9CE, 0x957A, 0x957B, 0xEACC, +0x957C, 0x957D, 0xC9B9, 0xCFFE, 0xEACA, 0xD4CE, 0xEACD, 0xEACF, +0x957E, 0x9580, 0xCDED, 0x9581, 0x9582, 0x9583, 0x9584, 0xEAC9, +0x9585, 0xEACE, 0x9586, 0x9587, 0xCEEE, 0x9588, 0xBBDE, 0x9589, +0xB3BF, 0x958A, 0x958B, 0x958C, 0x958D, 0x958E, 0xC6D5, 0xBEB0, +0xCEFA, 0x958F, 0x9590, 0x9591, 0xC7E7, 0x9592, 0xBEA7, 0xEAD0, +0x9593, 0x9594, 0xD6C7, 0x9595, 0x9596, 0x9597, 0xC1C0, 0x9598, +0x9599, 0x959A, 0xD4DD, 0x959B, 0xEAD1, 0x959C, 0x959D, 0xCFBE, +0x959E, 0x959F, 0x95A0, 0x95A1, 0xEAD2, 0x95A2, 0x95A3, 0x95A4, +0x95A5, 0xCAEE, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0xC5AF, 0xB0B5, +0x95AA, 0x95AB, 0x95AC, 0x95AD, 0x95AE, 0xEAD4, 0x95AF, 0x95B0, +0x95B1, 0x95B2, 0x95B3, 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0xEAD3, +0xF4DF, 0x95B8, 0x95B9, 0x95BA, 0x95BB, 0x95BC, 0xC4BA, 0x95BD, +0x95BE, 0x95BF, 0x95C0, 0x95C1, 0xB1A9, 0x95C2, 0x95C3, 0x95C4, +0x95C5, 0xE5DF, 0x95C6, 0x95C7, 0x95C8, 0x95C9, 0xEAD5, 0x95CA, +0x95CB, 0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, 0x95D1, 0x95D2, +0x95D3, 0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, 0x95DA, +0x95DB, 0x95DC, 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, 0x95E2, +0x95E3, 0xCAEF, 0x95E4, 0xEAD6, 0xEAD7, 0xC6D8, 0x95E5, 0x95E6, +0x95E7, 0x95E8, 0x95E9, 0x95EA, 0x95EB, 0x95EC, 0xEAD8, 0x95ED, +0x95EE, 0xEAD9, 0x95EF, 0x95F0, 0x95F1, 0x95F2, 0x95F3, 0x95F4, +0xD4BB, 0x95F5, 0xC7FA, 0xD2B7, 0xB8FC, 0x95F6, 0x95F7, 0xEAC2, +0x95F8, 0xB2DC, 0x95F9, 0x95FA, 0xC2FC, 0x95FB, 0xD4F8, 0xCCE6, +0xD7EE, 0x95FC, 0x95FD, 0x95FE, 0x9640, 0x9641, 0x9642, 0x9643, +0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 0x9644, 0xB7FE, 0x9645, 0x9646, +0xEBD4, 0x9647, 0x9648, 0x9649, 0xCBB7, 0xEBDE, 0x964A, 0xC0CA, +0x964B, 0x964C, 0x964D, 0xCDFB, 0x964E, 0xB3AF, 0x964F, 0xC6DA, +0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0xEBFC, 0x9656, +0xC4BE, 0x9657, 0xCEB4, 0xC4A9, 0xB1BE, 0xD4FD, 0x9658, 0xCAF5, +0x9659, 0xD6EC, 0x965A, 0x965B, 0xC6D3, 0xB6E4, 0x965C, 0x965D, +0x965E, 0x965F, 0xBBFA, 0x9660, 0x9661, 0xD0E0, 0x9662, 0x9663, +0xC9B1, 0x9664, 0xD4D3, 0xC8A8, 0x9665, 0x9666, 0xB8CB, 0x9667, +0xE8BE, 0xC9BC, 0x9668, 0x9669, 0xE8BB, 0x966A, 0xC0EE, 0xD0D3, +0xB2C4, 0xB4E5, 0x966B, 0xE8BC, 0x966C, 0x966D, 0xD5C8, 0x966E, +0x966F, 0x9670, 0x9671, 0x9672, 0xB6C5, 0x9673, 0xE8BD, 0xCAF8, +0xB8DC, 0xCCF5, 0x9674, 0x9675, 0x9676, 0xC0B4, 0x9677, 0x9678, +0xD1EE, 0xE8BF, 0xE8C2, 0x9679, 0x967A, 0xBABC, 0x967B, 0xB1AD, +0xBDDC, 0x967C, 0xEABD, 0xE8C3, 0x967D, 0xE8C6, 0x967E, 0xE8CB, +0x9680, 0x9681, 0x9682, 0x9683, 0xE8CC, 0x9684, 0xCBC9, 0xB0E5, +0x9685, 0xBCAB, 0x9686, 0x9687, 0xB9B9, 0x9688, 0x9689, 0xE8C1, +0x968A, 0xCDF7, 0x968B, 0xE8CA, 0x968C, 0x968D, 0x968E, 0x968F, +0xCEF6, 0x9690, 0x9691, 0x9692, 0x9693, 0xD5ED, 0x9694, 0xC1D6, +0xE8C4, 0x9695, 0xC3B6, 0x9696, 0xB9FB, 0xD6A6, 0xE8C8, 0x9697, +0x9698, 0x9699, 0xCAE0, 0xD4E6, 0x969A, 0xE8C0, 0x969B, 0xE8C5, +0xE8C7, 0x969C, 0xC7B9, 0xB7E3, 0x969D, 0xE8C9, 0x969E, 0xBFDD, +0xE8D2, 0x969F, 0x96A0, 0xE8D7, 0x96A1, 0xE8D5, 0xBCDC, 0xBCCF, +0xE8DB, 0x96A2, 0x96A3, 0x96A4, 0x96A5, 0x96A6, 0x96A7, 0x96A8, +0x96A9, 0xE8DE, 0x96AA, 0xE8DA, 0xB1FA, 0x96AB, 0x96AC, 0x96AD, +0x96AE, 0x96AF, 0x96B0, 0x96B1, 0x96B2, 0x96B3, 0x96B4, 0xB0D8, +0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE, 0xC8E1, 0x96B5, 0x96B6, 0x96B7, +0xE8CF, 0xE8D4, 0xE8D6, 0x96B8, 0xB9F1, 0xE8D8, 0xD7F5, 0x96B9, +0xC4FB, 0x96BA, 0xE8DC, 0x96BB, 0x96BC, 0xB2E9, 0x96BD, 0x96BE, +0x96BF, 0xE8D1, 0x96C0, 0x96C1, 0xBCED, 0x96C2, 0x96C3, 0xBFC2, +0xE8CD, 0xD6F9, 0x96C4, 0xC1F8, 0xB2F1, 0x96C5, 0x96C6, 0x96C7, +0x96C8, 0x96C9, 0x96CA, 0x96CB, 0x96CC, 0xE8DF, 0x96CD, 0xCAC1, +0xE8D9, 0x96CE, 0x96CF, 0x96D0, 0x96D1, 0xD5A4, 0x96D2, 0xB1EA, +0xD5BB, 0xE8CE, 0xE8D0, 0xB6B0, 0xE8D3, 0x96D3, 0xE8DD, 0xC0B8, +0x96D4, 0xCAF7, 0x96D5, 0xCBA8, 0x96D6, 0x96D7, 0xC6DC, 0xC0F5, +0x96D8, 0x96D9, 0x96DA, 0x96DB, 0x96DC, 0xE8E9, 0x96DD, 0x96DE, +0x96DF, 0xD0A3, 0x96E0, 0x96E1, 0x96E2, 0x96E3, 0x96E4, 0x96E5, +0x96E6, 0xE8F2, 0xD6EA, 0x96E7, 0x96E8, 0x96E9, 0x96EA, 0x96EB, +0x96EC, 0x96ED, 0xE8E0, 0xE8E1, 0x96EE, 0x96EF, 0x96F0, 0xD1F9, +0xBACB, 0xB8F9, 0x96F1, 0x96F2, 0xB8F1, 0xD4D4, 0xE8EF, 0x96F3, +0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6, 0xBFF2, 0x96F4, +0xB0B8, 0xE8F1, 0xE8F0, 0x96F5, 0xD7C0, 0x96F6, 0xE8E4, 0x96F7, +0xCDA9, 0xC9A3, 0x96F8, 0xBBB8, 0xBDDB, 0xE8EA, 0x96F9, 0x96FA, +0x96FB, 0x96FC, 0x96FD, 0x96FE, 0x9740, 0x9741, 0x9742, 0x9743, +0xE8E2, 0xE8E3, 0xE8E5, 0xB5B5, 0xE8E7, 0xC7C5, 0xE8EB, 0xE8ED, +0xBDB0, 0xD7AE, 0x9744, 0xE8F8, 0x9745, 0x9746, 0x9747, 0x9748, +0x9749, 0x974A, 0x974B, 0x974C, 0xE8F5, 0x974D, 0xCDB0, 0xE8F6, +0x974E, 0x974F, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, +0x9756, 0xC1BA, 0x9757, 0xE8E8, 0x9758, 0xC3B7, 0xB0F0, 0x9759, +0x975A, 0x975B, 0x975C, 0x975D, 0x975E, 0x975F, 0x9760, 0xE8F4, +0x9761, 0x9762, 0x9763, 0xE8F7, 0x9764, 0x9765, 0x9766, 0xB9A3, +0x9767, 0x9768, 0x9769, 0x976A, 0x976B, 0x976C, 0x976D, 0x976E, +0x976F, 0x9770, 0xC9D2, 0x9771, 0x9772, 0x9773, 0xC3CE, 0xCEE0, +0xC0E6, 0x9774, 0x9775, 0x9776, 0x9777, 0xCBF3, 0x9778, 0xCCDD, +0xD0B5, 0x9779, 0x977A, 0xCAE1, 0x977B, 0xE8F3, 0x977C, 0x977D, +0x977E, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, +0xBCEC, 0x9787, 0xE8F9, 0x9788, 0x9789, 0x978A, 0x978B, 0x978C, +0x978D, 0xC3DE, 0x978E, 0xC6E5, 0x978F, 0xB9F7, 0x9790, 0x9791, +0x9792, 0x9793, 0xB0F4, 0x9794, 0x9795, 0xD7D8, 0x9796, 0x9797, +0xBCAC, 0x9798, 0xC5EF, 0x9799, 0x979A, 0x979B, 0x979C, 0x979D, +0xCCC4, 0x979E, 0x979F, 0xE9A6, 0x97A0, 0x97A1, 0x97A2, 0x97A3, +0x97A4, 0x97A5, 0x97A6, 0x97A7, 0x97A8, 0x97A9, 0xC9AD, 0x97AA, +0xE9A2, 0xC0E2, 0x97AB, 0x97AC, 0x97AD, 0xBFC3, 0x97AE, 0x97AF, +0x97B0, 0xE8FE, 0xB9D7, 0x97B1, 0xE8FB, 0x97B2, 0x97B3, 0x97B4, +0x97B5, 0xE9A4, 0x97B6, 0x97B7, 0x97B8, 0xD2CE, 0x97B9, 0x97BA, +0x97BB, 0x97BC, 0x97BD, 0xE9A3, 0x97BE, 0xD6B2, 0xD7B5, 0x97BF, +0xE9A7, 0x97C0, 0xBDB7, 0x97C1, 0x97C2, 0x97C3, 0x97C4, 0x97C5, +0x97C6, 0x97C7, 0x97C8, 0x97C9, 0x97CA, 0x97CB, 0x97CC, 0xE8FC, +0xE8FD, 0x97CD, 0x97CE, 0x97CF, 0xE9A1, 0x97D0, 0x97D1, 0x97D2, +0x97D3, 0x97D4, 0x97D5, 0x97D6, 0x97D7, 0xCDD6, 0x97D8, 0x97D9, +0xD2AC, 0x97DA, 0x97DB, 0x97DC, 0xE9B2, 0x97DD, 0x97DE, 0x97DF, +0x97E0, 0xE9A9, 0x97E1, 0x97E2, 0x97E3, 0xB4AA, 0x97E4, 0xB4BB, +0x97E5, 0x97E6, 0xE9AB, 0x97E7, 0x97E8, 0x97E9, 0x97EA, 0x97EB, +0x97EC, 0x97ED, 0x97EE, 0x97EF, 0x97F0, 0x97F1, 0x97F2, 0x97F3, +0x97F4, 0x97F5, 0x97F6, 0x97F7, 0xD0A8, 0x97F8, 0x97F9, 0xE9A5, +0x97FA, 0x97FB, 0xB3FE, 0x97FC, 0x97FD, 0xE9AC, 0xC0E3, 0x97FE, +0xE9AA, 0x9840, 0x9841, 0xE9B9, 0x9842, 0x9843, 0xE9B8, 0x9844, +0x9845, 0x9846, 0x9847, 0xE9AE, 0x9848, 0x9849, 0xE8FA, 0x984A, +0x984B, 0xE9A8, 0x984C, 0x984D, 0x984E, 0x984F, 0x9850, 0xBFAC, +0xE9B1, 0xE9BA, 0x9851, 0x9852, 0xC2A5, 0x9853, 0x9854, 0x9855, +0xE9AF, 0x9856, 0xB8C5, 0x9857, 0xE9AD, 0x9858, 0xD3DC, 0xE9B4, +0xE9B5, 0xE9B7, 0x9859, 0x985A, 0x985B, 0xE9C7, 0x985C, 0x985D, +0x985E, 0x985F, 0x9860, 0x9861, 0xC0C6, 0xE9C5, 0x9862, 0x9863, +0xE9B0, 0x9864, 0x9865, 0xE9BB, 0xB0F1, 0x9866, 0x9867, 0x9868, +0x9869, 0x986A, 0x986B, 0x986C, 0x986D, 0x986E, 0x986F, 0xE9BC, +0xD5A5, 0x9870, 0x9871, 0xE9BE, 0x9872, 0xE9BF, 0x9873, 0x9874, +0x9875, 0xE9C1, 0x9876, 0x9877, 0xC1F1, 0x9878, 0x9879, 0xC8B6, +0x987A, 0x987B, 0x987C, 0xE9BD, 0x987D, 0x987E, 0x9880, 0x9881, +0x9882, 0xE9C2, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, +0x9889, 0x988A, 0xE9C3, 0x988B, 0xE9B3, 0x988C, 0xE9B6, 0x988D, +0xBBB1, 0x988E, 0x988F, 0x9890, 0xE9C0, 0x9891, 0x9892, 0x9893, +0x9894, 0x9895, 0x9896, 0xBCF7, 0x9897, 0x9898, 0x9899, 0xE9C4, +0xE9C6, 0x989A, 0x989B, 0x989C, 0x989D, 0x989E, 0x989F, 0x98A0, +0x98A1, 0x98A2, 0x98A3, 0x98A4, 0x98A5, 0xE9CA, 0x98A6, 0x98A7, +0x98A8, 0x98A9, 0xE9CE, 0x98AA, 0x98AB, 0x98AC, 0x98AD, 0x98AE, +0x98AF, 0x98B0, 0x98B1, 0x98B2, 0x98B3, 0xB2DB, 0x98B4, 0xE9C8, +0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, 0x98BA, 0x98BB, 0x98BC, +0x98BD, 0x98BE, 0xB7AE, 0x98BF, 0x98C0, 0x98C1, 0x98C2, 0x98C3, +0x98C4, 0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0xE9CB, +0xE9CC, 0x98CB, 0x98CC, 0x98CD, 0x98CE, 0x98CF, 0x98D0, 0xD5C1, +0x98D1, 0xC4A3, 0x98D2, 0x98D3, 0x98D4, 0x98D5, 0x98D6, 0x98D7, +0xE9D8, 0x98D8, 0xBAE1, 0x98D9, 0x98DA, 0x98DB, 0x98DC, 0xE9C9, +0x98DD, 0xD3A3, 0x98DE, 0x98DF, 0x98E0, 0xE9D4, 0x98E1, 0x98E2, +0x98E3, 0x98E4, 0x98E5, 0x98E6, 0x98E7, 0xE9D7, 0xE9D0, 0x98E8, +0x98E9, 0x98EA, 0x98EB, 0x98EC, 0xE9CF, 0x98ED, 0x98EE, 0xC7C1, +0x98EF, 0x98F0, 0x98F1, 0x98F2, 0x98F3, 0x98F4, 0x98F5, 0x98F6, +0xE9D2, 0x98F7, 0x98F8, 0x98F9, 0x98FA, 0x98FB, 0x98FC, 0x98FD, +0xE9D9, 0xB3C8, 0x98FE, 0xE9D3, 0x9940, 0x9941, 0x9942, 0x9943, +0x9944, 0xCFF0, 0x9945, 0x9946, 0x9947, 0xE9CD, 0x9948, 0x9949, +0x994A, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, +0x9952, 0xB3F7, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, +0x9959, 0xE9D6, 0x995A, 0x995B, 0xE9DA, 0x995C, 0x995D, 0x995E, +0xCCB4, 0x995F, 0x9960, 0x9961, 0xCFAD, 0x9962, 0x9963, 0x9964, +0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996A, 0xE9D5, 0x996B, +0xE9DC, 0xE9DB, 0x996C, 0x996D, 0x996E, 0x996F, 0x9970, 0xE9DE, +0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, +0xE9D1, 0x9979, 0x997A, 0x997B, 0x997C, 0x997D, 0x997E, 0x9980, +0x9981, 0xE9DD, 0x9982, 0xE9DF, 0xC3CA, 0x9983, 0x9984, 0x9985, +0x9986, 0x9987, 0x9988, 0x9989, 0x998A, 0x998B, 0x998C, 0x998D, +0x998E, 0x998F, 0x9990, 0x9991, 0x9992, 0x9993, 0x9994, 0x9995, +0x9996, 0x9997, 0x9998, 0x9999, 0x999A, 0x999B, 0x999C, 0x999D, +0x999E, 0x999F, 0x99A0, 0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A5, +0x99A6, 0x99A7, 0x99A8, 0x99A9, 0x99AA, 0x99AB, 0x99AC, 0x99AD, +0x99AE, 0x99AF, 0x99B0, 0x99B1, 0x99B2, 0x99B3, 0x99B4, 0x99B5, +0x99B6, 0x99B7, 0x99B8, 0x99B9, 0x99BA, 0x99BB, 0x99BC, 0x99BD, +0x99BE, 0x99BF, 0x99C0, 0x99C1, 0x99C2, 0x99C3, 0x99C4, 0x99C5, +0x99C6, 0x99C7, 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, 0x99CD, +0x99CE, 0x99CF, 0x99D0, 0x99D1, 0x99D2, 0x99D3, 0x99D4, 0x99D5, +0x99D6, 0x99D7, 0x99D8, 0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, +0x99DE, 0x99DF, 0x99E0, 0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, +0x99E6, 0x99E7, 0x99E8, 0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, +0x99EE, 0x99EF, 0x99F0, 0x99F1, 0x99F2, 0x99F3, 0x99F4, 0x99F5, +0xC7B7, 0xB4CE, 0xBBB6, 0xD0C0, 0xECA3, 0x99F6, 0x99F7, 0xC5B7, +0x99F8, 0x99F9, 0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x99FE, 0x9A40, +0x9A41, 0x9A42, 0xD3FB, 0x9A43, 0x9A44, 0x9A45, 0x9A46, 0xECA4, +0x9A47, 0xECA5, 0xC6DB, 0x9A48, 0x9A49, 0x9A4A, 0xBFEE, 0x9A4B, +0x9A4C, 0x9A4D, 0x9A4E, 0xECA6, 0x9A4F, 0x9A50, 0xECA7, 0xD0AA, +0x9A51, 0xC7B8, 0x9A52, 0x9A53, 0xB8E8, 0x9A54, 0x9A55, 0x9A56, +0x9A57, 0x9A58, 0x9A59, 0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, 0x9A5E, +0x9A5F, 0xECA8, 0x9A60, 0x9A61, 0x9A62, 0x9A63, 0x9A64, 0x9A65, +0x9A66, 0x9A67, 0xD6B9, 0xD5FD, 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, +0x9A68, 0x9A69, 0xCDE1, 0x9A6A, 0x9A6B, 0x9A6C, 0x9A6D, 0x9A6E, +0x9A6F, 0x9A70, 0x9A71, 0x9A72, 0x9A73, 0x9A74, 0x9A75, 0x9A76, +0x9A77, 0xB4F5, 0x9A78, 0xCBC0, 0xBCDF, 0x9A79, 0x9A7A, 0x9A7B, +0x9A7C, 0xE9E2, 0xE9E3, 0xD1EA, 0xE9E5, 0x9A7D, 0xB4F9, 0xE9E4, +0x9A7E, 0xD1B3, 0xCAE2, 0xB2D0, 0x9A80, 0xE9E8, 0x9A81, 0x9A82, +0x9A83, 0x9A84, 0xE9E6, 0xE9E7, 0x9A85, 0x9A86, 0xD6B3, 0x9A87, +0x9A88, 0x9A89, 0xE9E9, 0xE9EA, 0x9A8A, 0x9A8B, 0x9A8C, 0x9A8D, +0x9A8E, 0xE9EB, 0x9A8F, 0x9A90, 0x9A91, 0x9A92, 0x9A93, 0x9A94, +0x9A95, 0x9A96, 0xE9EC, 0x9A97, 0x9A98, 0x9A99, 0x9A9A, 0x9A9B, +0x9A9C, 0x9A9D, 0x9A9E, 0xECAF, 0xC5B9, 0xB6CE, 0x9A9F, 0xD2F3, +0x9AA0, 0x9AA1, 0x9AA2, 0x9AA3, 0x9AA4, 0x9AA5, 0x9AA6, 0xB5EE, +0x9AA7, 0xBBD9, 0xECB1, 0x9AA8, 0x9AA9, 0xD2E3, 0x9AAA, 0x9AAB, +0x9AAC, 0x9AAD, 0x9AAE, 0xCEE3, 0x9AAF, 0xC4B8, 0x9AB0, 0xC3BF, +0x9AB1, 0x9AB2, 0xB6BE, 0xD8B9, 0xB1C8, 0xB1CF, 0xB1D1, 0xC5FE, +0x9AB3, 0xB1D0, 0x9AB4, 0xC3AB, 0x9AB5, 0x9AB6, 0x9AB7, 0x9AB8, +0x9AB9, 0xD5B1, 0x9ABA, 0x9ABB, 0x9ABC, 0x9ABD, 0x9ABE, 0x9ABF, +0x9AC0, 0x9AC1, 0xEBA4, 0xBAC1, 0x9AC2, 0x9AC3, 0x9AC4, 0xCCBA, +0x9AC5, 0x9AC6, 0x9AC7, 0xEBA5, 0x9AC8, 0xEBA7, 0x9AC9, 0x9ACA, +0x9ACB, 0xEBA8, 0x9ACC, 0x9ACD, 0x9ACE, 0xEBA6, 0x9ACF, 0x9AD0, +0x9AD1, 0x9AD2, 0x9AD3, 0x9AD4, 0x9AD5, 0xEBA9, 0xEBAB, 0xEBAA, +0x9AD6, 0x9AD7, 0x9AD8, 0x9AD9, 0x9ADA, 0xEBAC, 0x9ADB, 0xCACF, +0xD8B5, 0xC3F1, 0x9ADC, 0xC3A5, 0xC6F8, 0xEBAD, 0xC4CA, 0x9ADD, +0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 0x9ADE, 0x9ADF, 0x9AE0, 0xB7FA, +0x9AE1, 0xEBB1, 0xC7E2, 0x9AE2, 0xEBB3, 0x9AE3, 0xBAA4, 0xD1F5, +0xB0B1, 0xEBB2, 0xEBB4, 0x9AE4, 0x9AE5, 0x9AE6, 0xB5AA, 0xC2C8, +0xC7E8, 0x9AE7, 0xEBB5, 0x9AE8, 0xCBAE, 0xE3DF, 0x9AE9, 0x9AEA, +0xD3C0, 0x9AEB, 0x9AEC, 0x9AED, 0x9AEE, 0xD9DB, 0x9AEF, 0x9AF0, +0xCDA1, 0xD6AD, 0xC7F3, 0x9AF1, 0x9AF2, 0x9AF3, 0xD9E0, 0xBBE3, +0x9AF4, 0xBABA, 0xE3E2, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AF9, +0xCFAB, 0x9AFA, 0x9AFB, 0x9AFC, 0xE3E0, 0xC9C7, 0x9AFD, 0xBAB9, +0x9AFE, 0x9B40, 0x9B41, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD, +0xB3D8, 0xCEDB, 0x9B42, 0x9B43, 0xCCC0, 0x9B44, 0x9B45, 0x9B46, +0xE3E8, 0xE3E9, 0xCDF4, 0x9B47, 0x9B48, 0x9B49, 0x9B4A, 0x9B4B, +0xCCAD, 0x9B4C, 0xBCB3, 0x9B4D, 0xE3EA, 0x9B4E, 0xE3EB, 0x9B4F, +0x9B50, 0xD0DA, 0x9B51, 0x9B52, 0x9B53, 0xC6FB, 0xB7DA, 0x9B54, +0x9B55, 0xC7DF, 0xD2CA, 0xCED6, 0x9B56, 0xE3E4, 0xE3EC, 0x9B57, +0xC9F2, 0xB3C1, 0x9B58, 0x9B59, 0xE3E7, 0x9B5A, 0x9B5B, 0xC6E3, +0xE3E5, 0x9B5C, 0x9B5D, 0xEDB3, 0xE3E6, 0x9B5E, 0x9B5F, 0x9B60, +0x9B61, 0xC9B3, 0x9B62, 0xC5E6, 0x9B63, 0x9B64, 0x9B65, 0xB9B5, +0x9B66, 0xC3BB, 0x9B67, 0xE3E3, 0xC5BD, 0xC1A4, 0xC2D9, 0xB2D7, +0x9B68, 0xE3ED, 0xBBA6, 0xC4AD, 0x9B69, 0xE3F0, 0xBEDA, 0x9B6A, +0x9B6B, 0xE3FB, 0xE3F5, 0xBAD3, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, +0xB7D0, 0xD3CD, 0x9B70, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8, +0x9B71, 0x9B72, 0x9B73, 0x9B74, 0xD0B9, 0xC7F6, 0x9B75, 0x9B76, +0x9B77, 0xC8AA, 0xB2B4, 0x9B78, 0xC3DA, 0x9B79, 0x9B7A, 0x9B7B, +0xE3EE, 0x9B7C, 0x9B7D, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4, +0x9B7E, 0x9B80, 0x9B81, 0xB7BA, 0x9B82, 0x9B83, 0xC5A2, 0x9B84, +0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC, 0x9B85, 0xC4E0, 0x9B86, 0x9B87, +0xD7A2, 0x9B88, 0xC0E1, 0xE3F9, 0x9B89, 0x9B8A, 0xE3FA, 0xE3FD, +0xCCA9, 0xE3F3, 0x9B8B, 0xD3BE, 0x9B8C, 0xB1C3, 0xEDB4, 0xE3F1, +0xE3F2, 0x9B8D, 0xE3F8, 0xD0BA, 0xC6C3, 0xD4F3, 0xE3FE, 0x9B8E, +0x9B8F, 0xBDE0, 0x9B90, 0x9B91, 0xE4A7, 0x9B92, 0x9B93, 0xE4A6, +0x9B94, 0x9B95, 0x9B96, 0xD1F3, 0xE4A3, 0x9B97, 0xE4A9, 0x9B98, +0x9B99, 0x9B9A, 0xC8F7, 0x9B9B, 0x9B9C, 0x9B9D, 0x9B9E, 0xCFB4, +0x9B9F, 0xE4A8, 0xE4AE, 0xC2E5, 0x9BA0, 0x9BA1, 0xB6B4, 0x9BA2, +0x9BA3, 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0xBDF2, 0x9BA8, 0xE4A2, +0x9BA9, 0x9BAA, 0xBAE9, 0xE4AA, 0x9BAB, 0x9BAC, 0xE4AC, 0x9BAD, +0x9BAE, 0xB6FD, 0xD6DE, 0xE4B2, 0x9BAF, 0xE4AD, 0x9BB0, 0x9BB1, +0x9BB2, 0xE4A1, 0x9BB3, 0xBBEE, 0xCDDD, 0xC7A2, 0xC5C9, 0x9BB4, +0x9BB5, 0xC1F7, 0x9BB6, 0xE4A4, 0x9BB7, 0xC7B3, 0xBDAC, 0xBDBD, +0xE4A5, 0x9BB8, 0xD7C7, 0xB2E2, 0x9BB9, 0xE4AB, 0xBCC3, 0xE4AF, +0x9BBA, 0xBBEB, 0xE4B0, 0xC5A8, 0xE4B1, 0x9BBB, 0x9BBC, 0x9BBD, +0x9BBE, 0xD5E3, 0xBFA3, 0x9BBF, 0xE4BA, 0x9BC0, 0xE4B7, 0x9BC1, +0xE4BB, 0x9BC2, 0x9BC3, 0xE4BD, 0x9BC4, 0x9BC5, 0xC6D6, 0x9BC6, +0x9BC7, 0xBAC6, 0xC0CB, 0x9BC8, 0x9BC9, 0x9BCA, 0xB8A1, 0xE4B4, +0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE, 0xD4A1, 0x9BCF, 0x9BD0, 0xBAA3, +0xBDFE, 0x9BD1, 0x9BD2, 0x9BD3, 0xE4BC, 0x9BD4, 0x9BD5, 0x9BD6, +0x9BD7, 0x9BD8, 0xCDBF, 0x9BD9, 0x9BDA, 0xC4F9, 0x9BDB, 0x9BDC, +0xCFFB, 0xC9E6, 0x9BDD, 0x9BDE, 0xD3BF, 0x9BDF, 0xCFD1, 0x9BE0, +0x9BE1, 0xE4B3, 0x9BE2, 0xE4B8, 0xE4B9, 0xCCE9, 0x9BE3, 0x9BE4, +0x9BE5, 0x9BE6, 0x9BE7, 0xCCCE, 0x9BE8, 0xC0D4, 0xE4B5, 0xC1B0, +0xE4B6, 0xCED0, 0x9BE9, 0xBBC1, 0xB5D3, 0x9BEA, 0xC8F3, 0xBDA7, +0xD5C7, 0xC9AC, 0xB8A2, 0xE4CA, 0x9BEB, 0x9BEC, 0xE4CC, 0xD1C4, +0x9BED, 0x9BEE, 0xD2BA, 0x9BEF, 0x9BF0, 0xBAAD, 0x9BF1, 0x9BF2, +0xBAD4, 0x9BF3, 0x9BF4, 0x9BF5, 0x9BF6, 0x9BF7, 0x9BF8, 0xE4C3, +0xB5ED, 0x9BF9, 0x9BFA, 0x9BFB, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF, +0x9BFC, 0x9BFD, 0x9BFE, 0xC1DC, 0xCCCA, 0x9C40, 0x9C41, 0x9C42, +0x9C43, 0xCAE7, 0x9C44, 0x9C45, 0x9C46, 0x9C47, 0xC4D7, 0x9C48, +0xCCD4, 0xE4C8, 0x9C49, 0x9C4A, 0x9C4B, 0xE4C7, 0xE4C1, 0x9C4C, +0xE4C4, 0xB5AD, 0x9C4D, 0x9C4E, 0xD3D9, 0x9C4F, 0xE4C6, 0x9C50, +0x9C51, 0x9C52, 0x9C53, 0xD2F9, 0xB4E3, 0x9C54, 0xBBB4, 0x9C55, +0x9C56, 0xC9EE, 0x9C57, 0xB4BE, 0x9C58, 0x9C59, 0x9C5A, 0xBBEC, +0x9C5B, 0xD1CD, 0x9C5C, 0xCCED, 0xEDB5, 0x9C5D, 0x9C5E, 0x9C5F, +0x9C60, 0x9C61, 0x9C62, 0x9C63, 0x9C64, 0xC7E5, 0x9C65, 0x9C66, +0x9C67, 0x9C68, 0xD4A8, 0x9C69, 0xE4CB, 0xD7D5, 0xE4C2, 0x9C6A, +0xBDA5, 0xE4C5, 0x9C6B, 0x9C6C, 0xD3E6, 0x9C6D, 0xE4C9, 0xC9F8, +0x9C6E, 0x9C6F, 0xE4BE, 0x9C70, 0x9C71, 0xD3E5, 0x9C72, 0x9C73, +0xC7FE, 0xB6C9, 0x9C74, 0xD4FC, 0xB2B3, 0xE4D7, 0x9C75, 0x9C76, +0x9C77, 0xCEC2, 0x9C78, 0xE4CD, 0x9C79, 0xCEBC, 0x9C7A, 0xB8DB, +0x9C7B, 0x9C7C, 0xE4D6, 0x9C7D, 0xBFCA, 0x9C7E, 0x9C80, 0x9C81, +0xD3CE, 0x9C82, 0xC3EC, 0x9C83, 0x9C84, 0x9C85, 0x9C86, 0x9C87, +0x9C88, 0x9C89, 0x9C8A, 0xC5C8, 0xE4D8, 0x9C8B, 0x9C8C, 0x9C8D, +0x9C8E, 0x9C8F, 0x9C90, 0x9C91, 0x9C92, 0xCDC4, 0xE4CF, 0x9C93, +0x9C94, 0x9C95, 0x9C96, 0xE4D4, 0xE4D5, 0x9C97, 0xBAFE, 0x9C98, +0xCFE6, 0x9C99, 0x9C9A, 0xD5BF, 0x9C9B, 0x9C9C, 0x9C9D, 0xE4D2, +0x9C9E, 0x9C9F, 0x9CA0, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA4, 0x9CA5, +0x9CA6, 0x9CA7, 0x9CA8, 0xE4D0, 0x9CA9, 0x9CAA, 0xE4CE, 0x9CAB, +0x9CAC, 0x9CAD, 0x9CAE, 0x9CAF, 0x9CB0, 0x9CB1, 0x9CB2, 0x9CB3, +0x9CB4, 0x9CB5, 0x9CB6, 0x9CB7, 0x9CB8, 0x9CB9, 0xCDE5, 0xCAAA, +0x9CBA, 0x9CBB, 0x9CBC, 0xC0A3, 0x9CBD, 0xBDA6, 0xE4D3, 0x9CBE, +0x9CBF, 0xB8C8, 0x9CC0, 0x9CC1, 0x9CC2, 0x9CC3, 0x9CC4, 0xE4E7, +0xD4B4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CC8, 0x9CC9, 0x9CCA, 0x9CCB, +0xE4DB, 0x9CCC, 0x9CCD, 0x9CCE, 0xC1EF, 0x9CCF, 0x9CD0, 0xE4E9, +0x9CD1, 0x9CD2, 0xD2E7, 0x9CD3, 0x9CD4, 0xE4DF, 0x9CD5, 0xE4E0, +0x9CD6, 0x9CD7, 0xCFAA, 0x9CD8, 0x9CD9, 0x9CDA, 0x9CDB, 0xCBDD, +0x9CDC, 0xE4DA, 0xE4D1, 0x9CDD, 0xE4E5, 0x9CDE, 0xC8DC, 0xE4E3, +0x9CDF, 0x9CE0, 0xC4E7, 0xE4E2, 0x9CE1, 0xE4E1, 0x9CE2, 0x9CE3, +0x9CE4, 0xB3FC, 0xE4E8, 0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0xB5E1, +0x9CE9, 0x9CEA, 0x9CEB, 0xD7CC, 0x9CEC, 0x9CED, 0x9CEE, 0xE4E6, +0x9CEF, 0xBBAC, 0x9CF0, 0xD7D2, 0xCCCF, 0xEBF8, 0x9CF1, 0xE4E4, +0x9CF2, 0x9CF3, 0xB9F6, 0x9CF4, 0x9CF5, 0x9CF6, 0xD6CD, 0xE4D9, +0xE4DC, 0xC2FA, 0xE4DE, 0x9CF7, 0xC2CB, 0xC0C4, 0xC2D0, 0x9CF8, +0xB1F5, 0xCCB2, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC, 0x9CFD, 0x9CFE, +0x9D40, 0x9D41, 0x9D42, 0x9D43, 0xB5CE, 0x9D44, 0x9D45, 0x9D46, +0x9D47, 0xE4EF, 0x9D48, 0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D, +0x9D4E, 0x9D4F, 0xC6AF, 0x9D50, 0x9D51, 0x9D52, 0xC6E1, 0x9D53, +0x9D54, 0xE4F5, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, 0xC2A9, +0x9D5A, 0x9D5B, 0x9D5C, 0xC0EC, 0xD1DD, 0xE4EE, 0x9D5D, 0x9D5E, +0x9D5F, 0x9D60, 0x9D61, 0x9D62, 0x9D63, 0x9D64, 0x9D65, 0x9D66, +0xC4AE, 0x9D67, 0x9D68, 0x9D69, 0xE4ED, 0x9D6A, 0x9D6B, 0x9D6C, +0x9D6D, 0xE4F6, 0xE4F4, 0xC2FE, 0x9D6E, 0xE4DD, 0x9D6F, 0xE4F0, +0x9D70, 0xCAFE, 0x9D71, 0xD5C4, 0x9D72, 0x9D73, 0xE4F1, 0x9D74, +0x9D75, 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, 0xD1FA, 0x9D7B, +0x9D7C, 0x9D7D, 0x9D7E, 0x9D80, 0x9D81, 0x9D82, 0xE4EB, 0xE4EC, +0x9D83, 0x9D84, 0x9D85, 0xE4F2, 0x9D86, 0xCEAB, 0x9D87, 0x9D88, +0x9D89, 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, +0xC5CB, 0x9D91, 0x9D92, 0x9D93, 0xC7B1, 0x9D94, 0xC2BA, 0x9D95, +0x9D96, 0x9D97, 0xE4EA, 0x9D98, 0x9D99, 0x9D9A, 0xC1CA, 0x9D9B, +0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F, 0x9DA0, 0xCCB6, 0xB3B1, 0x9DA1, +0x9DA2, 0x9DA3, 0xE4FB, 0x9DA4, 0xE4F3, 0x9DA5, 0x9DA6, 0x9DA7, +0xE4FA, 0x9DA8, 0xE4FD, 0x9DA9, 0xE4FC, 0x9DAA, 0x9DAB, 0x9DAC, +0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0xB3CE, 0x9DB1, 0x9DB2, 0x9DB3, +0xB3BA, 0xE4F7, 0x9DB4, 0x9DB5, 0xE4F9, 0xE4F8, 0xC5EC, 0x9DB6, +0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, 0x9DBC, 0x9DBD, 0x9DBE, +0x9DBF, 0x9DC0, 0x9DC1, 0x9DC2, 0xC0BD, 0x9DC3, 0x9DC4, 0x9DC5, +0x9DC6, 0xD4E8, 0x9DC7, 0x9DC8, 0x9DC9, 0x9DCA, 0x9DCB, 0xE5A2, +0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, 0x9DD1, 0x9DD2, 0x9DD3, +0x9DD4, 0x9DD5, 0x9DD6, 0xB0C4, 0x9DD7, 0x9DD8, 0xE5A4, 0x9DD9, +0x9DDA, 0xE5A3, 0x9DDB, 0x9DDC, 0x9DDD, 0x9DDE, 0x9DDF, 0x9DE0, +0xBCA4, 0x9DE1, 0xE5A5, 0x9DE2, 0x9DE3, 0x9DE4, 0x9DE5, 0x9DE6, +0x9DE7, 0xE5A1, 0x9DE8, 0x9DE9, 0x9DEA, 0x9DEB, 0x9DEC, 0x9DED, +0x9DEE, 0xE4FE, 0xB1F4, 0x9DEF, 0x9DF0, 0x9DF1, 0x9DF2, 0x9DF3, +0x9DF4, 0x9DF5, 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, 0xE5A8, 0x9DFA, +0xE5A9, 0xE5A6, 0x9DFB, 0x9DFC, 0x9DFD, 0x9DFE, 0x9E40, 0x9E41, +0x9E42, 0x9E43, 0x9E44, 0x9E45, 0x9E46, 0x9E47, 0xE5A7, 0xE5AA, +0x9E48, 0x9E49, 0x9E4A, 0x9E4B, 0x9E4C, 0x9E4D, 0x9E4E, 0x9E4F, +0x9E50, 0x9E51, 0x9E52, 0x9E53, 0x9E54, 0x9E55, 0x9E56, 0x9E57, +0x9E58, 0x9E59, 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5D, 0x9E5E, 0x9E5F, +0x9E60, 0x9E61, 0x9E62, 0x9E63, 0x9E64, 0x9E65, 0x9E66, 0x9E67, +0x9E68, 0xC6D9, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, 0x9E6D, 0x9E6E, +0x9E6F, 0x9E70, 0xE5AB, 0xE5AD, 0x9E71, 0x9E72, 0x9E73, 0x9E74, +0x9E75, 0x9E76, 0x9E77, 0xE5AC, 0x9E78, 0x9E79, 0x9E7A, 0x9E7B, +0x9E7C, 0x9E7D, 0x9E7E, 0x9E80, 0x9E81, 0x9E82, 0x9E83, 0x9E84, +0x9E85, 0x9E86, 0x9E87, 0x9E88, 0x9E89, 0xE5AF, 0x9E8A, 0x9E8B, +0x9E8C, 0xE5AE, 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, 0x9E91, 0x9E92, +0x9E93, 0x9E94, 0x9E95, 0x9E96, 0x9E97, 0x9E98, 0x9E99, 0x9E9A, +0x9E9B, 0x9E9C, 0x9E9D, 0x9E9E, 0xB9E0, 0x9E9F, 0x9EA0, 0xE5B0, +0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0x9EA6, 0x9EA7, 0x9EA8, +0x9EA9, 0x9EAA, 0x9EAB, 0x9EAC, 0x9EAD, 0x9EAE, 0xE5B1, 0x9EAF, +0x9EB0, 0x9EB1, 0x9EB2, 0x9EB3, 0x9EB4, 0x9EB5, 0x9EB6, 0x9EB7, +0x9EB8, 0x9EB9, 0x9EBA, 0xBBF0, 0xECE1, 0xC3F0, 0x9EBB, 0xB5C6, +0xBBD2, 0x9EBC, 0x9EBD, 0x9EBE, 0x9EBF, 0xC1E9, 0xD4EE, 0x9EC0, +0xBEC4, 0x9EC1, 0x9EC2, 0x9EC3, 0xD7C6, 0x9EC4, 0xD4D6, 0xB2D3, +0xECBE, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, 0xEAC1, 0x9EC9, 0x9ECA, +0x9ECB, 0xC2AF, 0xB4B6, 0x9ECC, 0x9ECD, 0x9ECE, 0xD1D7, 0x9ECF, +0x9ED0, 0x9ED1, 0xB3B4, 0x9ED2, 0xC8B2, 0xBFBB, 0xECC0, 0x9ED3, +0x9ED4, 0xD6CB, 0x9ED5, 0x9ED6, 0xECBF, 0xECC1, 0x9ED7, 0x9ED8, +0x9ED9, 0x9EDA, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EDE, 0x9EDF, 0x9EE0, +0x9EE1, 0x9EE2, 0x9EE3, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC, +0x9EE4, 0xECC6, 0x9EE5, 0xB1FE, 0x9EE6, 0x9EE7, 0x9EE8, 0xECC4, +0xD5A8, 0xB5E3, 0x9EE9, 0xECC2, 0xC1B6, 0xB3E3, 0x9EEA, 0x9EEB, +0xECC3, 0xCBB8, 0xC0C3, 0xCCFE, 0x9EEC, 0x9EED, 0x9EEE, 0x9EEF, +0xC1D2, 0x9EF0, 0xECC8, 0x9EF1, 0x9EF2, 0x9EF3, 0x9EF4, 0x9EF5, +0x9EF6, 0x9EF7, 0x9EF8, 0x9EF9, 0x9EFA, 0x9EFB, 0x9EFC, 0x9EFD, +0xBAE6, 0xC0D3, 0x9EFE, 0xD6F2, 0x9F40, 0x9F41, 0x9F42, 0xD1CC, +0x9F43, 0x9F44, 0x9F45, 0x9F46, 0xBFBE, 0x9F47, 0xB7B3, 0xC9D5, +0xECC7, 0xBBE2, 0x9F48, 0xCCCC, 0xBDFD, 0xC8C8, 0x9F49, 0xCFA9, +0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F50, 0xCDE9, +0x9F51, 0xC5EB, 0x9F52, 0x9F53, 0x9F54, 0xB7E9, 0x9F55, 0x9F56, +0x9F57, 0x9F58, 0x9F59, 0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F5E, +0x9F5F, 0xD1C9, 0xBAB8, 0x9F60, 0x9F61, 0x9F62, 0x9F63, 0x9F64, +0xECC9, 0x9F65, 0x9F66, 0xECCA, 0x9F67, 0xBBC0, 0xECCB, 0x9F68, +0xECE2, 0xB1BA, 0xB7D9, 0x9F69, 0x9F6A, 0x9F6B, 0x9F6C, 0x9F6D, +0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F72, 0x9F73, 0xBDB9, 0x9F74, +0x9F75, 0x9F76, 0x9F77, 0x9F78, 0x9F79, 0x9F7A, 0x9F7B, 0xECCC, +0xD1E6, 0xECCD, 0x9F7C, 0x9F7D, 0x9F7E, 0x9F80, 0xC8BB, 0x9F81, +0x9F82, 0x9F83, 0x9F84, 0x9F85, 0x9F86, 0x9F87, 0x9F88, 0x9F89, +0x9F8A, 0x9F8B, 0x9F8C, 0x9F8D, 0x9F8E, 0xECD1, 0x9F8F, 0x9F90, +0x9F91, 0x9F92, 0xECD3, 0x9F93, 0xBBCD, 0x9F94, 0xBCE5, 0x9F95, +0x9F96, 0x9F97, 0x9F98, 0x9F99, 0x9F9A, 0x9F9B, 0x9F9C, 0x9F9D, +0x9F9E, 0x9F9F, 0x9FA0, 0x9FA1, 0xECCF, 0x9FA2, 0xC9B7, 0x9FA3, +0x9FA4, 0x9FA5, 0x9FA6, 0x9FA7, 0xC3BA, 0x9FA8, 0xECE3, 0xD5D5, +0xECD0, 0x9FA9, 0x9FAA, 0x9FAB, 0x9FAC, 0x9FAD, 0xD6F3, 0x9FAE, +0x9FAF, 0x9FB0, 0xECD2, 0xECCE, 0x9FB1, 0x9FB2, 0x9FB3, 0x9FB4, +0xECD4, 0x9FB5, 0xECD5, 0x9FB6, 0x9FB7, 0xC9BF, 0x9FB8, 0x9FB9, +0x9FBA, 0x9FBB, 0x9FBC, 0x9FBD, 0xCFA8, 0x9FBE, 0x9FBF, 0x9FC0, +0x9FC1, 0x9FC2, 0xD0DC, 0x9FC3, 0x9FC4, 0x9FC5, 0x9FC6, 0xD1AC, +0x9FC7, 0x9FC8, 0x9FC9, 0x9FCA, 0xC8DB, 0x9FCB, 0x9FCC, 0x9FCD, +0xECD6, 0xCEF5, 0x9FCE, 0x9FCF, 0x9FD0, 0x9FD1, 0x9FD2, 0xCAEC, +0xECDA, 0x9FD3, 0x9FD4, 0x9FD5, 0x9FD6, 0x9FD7, 0x9FD8, 0x9FD9, +0xECD9, 0x9FDA, 0x9FDB, 0x9FDC, 0xB0BE, 0x9FDD, 0x9FDE, 0x9FDF, +0x9FE0, 0x9FE1, 0x9FE2, 0xECD7, 0x9FE3, 0xECD8, 0x9FE4, 0x9FE5, +0x9FE6, 0xECE4, 0x9FE7, 0x9FE8, 0x9FE9, 0x9FEA, 0x9FEB, 0x9FEC, +0x9FED, 0x9FEE, 0x9FEF, 0xC8BC, 0x9FF0, 0x9FF1, 0x9FF2, 0x9FF3, +0x9FF4, 0x9FF5, 0x9FF6, 0x9FF7, 0x9FF8, 0x9FF9, 0xC1C7, 0x9FFA, +0x9FFB, 0x9FFC, 0x9FFD, 0x9FFE, 0xECDC, 0xD1E0, 0xA040, 0xA041, +0xA042, 0xA043, 0xA044, 0xA045, 0xA046, 0xA047, 0xA048, 0xA049, +0xECDB, 0xA04A, 0xA04B, 0xA04C, 0xA04D, 0xD4EF, 0xA04E, 0xECDD, +0xA04F, 0xA050, 0xA051, 0xA052, 0xA053, 0xA054, 0xDBC6, 0xA055, +0xA056, 0xA057, 0xA058, 0xA059, 0xA05A, 0xA05B, 0xA05C, 0xA05D, +0xA05E, 0xECDE, 0xA05F, 0xA060, 0xA061, 0xA062, 0xA063, 0xA064, +0xA065, 0xA066, 0xA067, 0xA068, 0xA069, 0xA06A, 0xB1AC, 0xA06B, +0xA06C, 0xA06D, 0xA06E, 0xA06F, 0xA070, 0xA071, 0xA072, 0xA073, +0xA074, 0xA075, 0xA076, 0xA077, 0xA078, 0xA079, 0xA07A, 0xA07B, +0xA07C, 0xA07D, 0xA07E, 0xA080, 0xA081, 0xECDF, 0xA082, 0xA083, +0xA084, 0xA085, 0xA086, 0xA087, 0xA088, 0xA089, 0xA08A, 0xA08B, +0xECE0, 0xA08C, 0xD7A6, 0xA08D, 0xC5C0, 0xA08E, 0xA08F, 0xA090, +0xEBBC, 0xB0AE, 0xA091, 0xA092, 0xA093, 0xBEF4, 0xB8B8, 0xD2AF, +0xB0D6, 0xB5F9, 0xA094, 0xD8B3, 0xA095, 0xCBAC, 0xA096, 0xE3DD, +0xA097, 0xA098, 0xA099, 0xA09A, 0xA09B, 0xA09C, 0xA09D, 0xC6AC, +0xB0E6, 0xA09E, 0xA09F, 0xA0A0, 0xC5C6, 0xEBB9, 0xA0A1, 0xA0A2, +0xA0A3, 0xA0A4, 0xEBBA, 0xA0A5, 0xA0A6, 0xA0A7, 0xEBBB, 0xA0A8, +0xA0A9, 0xD1C0, 0xA0AA, 0xC5A3, 0xA0AB, 0xEAF2, 0xA0AC, 0xC4B2, +0xA0AD, 0xC4B5, 0xC0CE, 0xA0AE, 0xA0AF, 0xA0B0, 0xEAF3, 0xC4C1, +0xA0B1, 0xCEEF, 0xA0B2, 0xA0B3, 0xA0B4, 0xA0B5, 0xEAF0, 0xEAF4, +0xA0B6, 0xA0B7, 0xC9FC, 0xA0B8, 0xA0B9, 0xC7A3, 0xA0BA, 0xA0BB, +0xA0BC, 0xCCD8, 0xCEFE, 0xA0BD, 0xA0BE, 0xA0BF, 0xEAF5, 0xEAF6, +0xCFAC, 0xC0E7, 0xA0C0, 0xA0C1, 0xEAF7, 0xA0C2, 0xA0C3, 0xA0C4, +0xA0C5, 0xA0C6, 0xB6BF, 0xEAF8, 0xA0C7, 0xEAF9, 0xA0C8, 0xEAFA, +0xA0C9, 0xA0CA, 0xEAFB, 0xA0CB, 0xA0CC, 0xA0CD, 0xA0CE, 0xA0CF, +0xA0D0, 0xA0D1, 0xA0D2, 0xA0D3, 0xA0D4, 0xA0D5, 0xA0D6, 0xEAF1, +0xA0D7, 0xA0D8, 0xA0D9, 0xA0DA, 0xA0DB, 0xA0DC, 0xA0DD, 0xA0DE, +0xA0DF, 0xA0E0, 0xA0E1, 0xA0E2, 0xC8AE, 0xE1EB, 0xA0E3, 0xB7B8, +0xE1EC, 0xA0E4, 0xA0E5, 0xA0E6, 0xE1ED, 0xA0E7, 0xD7B4, 0xE1EE, +0xE1EF, 0xD3CC, 0xA0E8, 0xA0E9, 0xA0EA, 0xA0EB, 0xA0EC, 0xA0ED, +0xA0EE, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 0xA0EF, 0xA0F0, 0xA0F1, +0xB1B7, 0xA0F2, 0xA0F3, 0xA0F4, 0xA0F5, 0xE1F3, 0xE1F2, 0xA0F6, +0xBAFC, 0xA0F7, 0xE1F4, 0xA0F8, 0xA0F9, 0xA0FA, 0xA0FB, 0xB9B7, +0xA0FC, 0xBED1, 0xA0FD, 0xA0FE, 0xAA40, 0xAA41, 0xC4FC, 0xAA42, +0xBADD, 0xBDC6, 0xAA43, 0xAA44, 0xAA45, 0xAA46, 0xAA47, 0xAA48, +0xE1F5, 0xE1F7, 0xAA49, 0xAA4A, 0xB6C0, 0xCFC1, 0xCAA8, 0xE1F6, +0xD5F8, 0xD3FC, 0xE1F8, 0xE1FC, 0xE1F9, 0xAA4B, 0xAA4C, 0xE1FA, +0xC0EA, 0xAA4D, 0xE1FE, 0xE2A1, 0xC0C7, 0xAA4E, 0xAA4F, 0xAA50, +0xAA51, 0xE1FB, 0xAA52, 0xE1FD, 0xAA53, 0xAA54, 0xAA55, 0xAA56, +0xAA57, 0xAA58, 0xE2A5, 0xAA59, 0xAA5A, 0xAA5B, 0xC1D4, 0xAA5C, +0xAA5D, 0xAA5E, 0xAA5F, 0xE2A3, 0xAA60, 0xE2A8, 0xB2FE, 0xE2A2, +0xAA61, 0xAA62, 0xAA63, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 0xAA64, +0xAA65, 0xE2A4, 0xE2A9, 0xAA66, 0xAA67, 0xE2AB, 0xAA68, 0xAA69, +0xAA6A, 0xD0C9, 0xD6ED, 0xC3A8, 0xE2AC, 0xAA6B, 0xCFD7, 0xAA6C, +0xAA6D, 0xE2AE, 0xAA6E, 0xAA6F, 0xBAEF, 0xAA70, 0xAA71, 0xE9E0, +0xE2AD, 0xE2AA, 0xAA72, 0xAA73, 0xAA74, 0xAA75, 0xBBAB, 0xD4B3, +0xAA76, 0xAA77, 0xAA78, 0xAA79, 0xAA7A, 0xAA7B, 0xAA7C, 0xAA7D, +0xAA7E, 0xAA80, 0xAA81, 0xAA82, 0xAA83, 0xE2B0, 0xAA84, 0xAA85, +0xE2AF, 0xAA86, 0xE9E1, 0xAA87, 0xAA88, 0xAA89, 0xAA8A, 0xE2B1, +0xAA8B, 0xAA8C, 0xAA8D, 0xAA8E, 0xAA8F, 0xAA90, 0xAA91, 0xAA92, +0xE2B2, 0xAA93, 0xAA94, 0xAA95, 0xAA96, 0xAA97, 0xAA98, 0xAA99, +0xAA9A, 0xAA9B, 0xAA9C, 0xAA9D, 0xE2B3, 0xCCA1, 0xAA9E, 0xE2B4, +0xAA9F, 0xAAA0, 0xAB40, 0xAB41, 0xAB42, 0xAB43, 0xAB44, 0xAB45, +0xAB46, 0xAB47, 0xAB48, 0xAB49, 0xAB4A, 0xAB4B, 0xE2B5, 0xAB4C, +0xAB4D, 0xAB4E, 0xAB4F, 0xAB50, 0xD0FE, 0xAB51, 0xAB52, 0xC2CA, +0xAB53, 0xD3F1, 0xAB54, 0xCDF5, 0xAB55, 0xAB56, 0xE7E0, 0xAB57, +0xAB58, 0xE7E1, 0xAB59, 0xAB5A, 0xAB5B, 0xAB5C, 0xBEC1, 0xAB5D, +0xAB5E, 0xAB5F, 0xAB60, 0xC2EA, 0xAB61, 0xAB62, 0xAB63, 0xE7E4, +0xAB64, 0xAB65, 0xE7E3, 0xAB66, 0xAB67, 0xAB68, 0xAB69, 0xAB6A, +0xAB6B, 0xCDE6, 0xAB6C, 0xC3B5, 0xAB6D, 0xAB6E, 0xE7E2, 0xBBB7, +0xCFD6, 0xAB6F, 0xC1E1, 0xE7E9, 0xAB70, 0xAB71, 0xAB72, 0xE7E8, +0xAB73, 0xAB74, 0xE7F4, 0xB2A3, 0xAB75, 0xAB76, 0xAB77, 0xAB78, +0xE7EA, 0xAB79, 0xE7E6, 0xAB7A, 0xAB7B, 0xAB7C, 0xAB7D, 0xAB7E, +0xE7EC, 0xE7EB, 0xC9BA, 0xAB80, 0xAB81, 0xD5E4, 0xAB82, 0xE7E5, +0xB7A9, 0xE7E7, 0xAB83, 0xAB84, 0xAB85, 0xAB86, 0xAB87, 0xAB88, +0xAB89, 0xE7EE, 0xAB8A, 0xAB8B, 0xAB8C, 0xAB8D, 0xE7F3, 0xAB8E, +0xD6E9, 0xAB8F, 0xAB90, 0xAB91, 0xAB92, 0xE7ED, 0xAB93, 0xE7F2, +0xAB94, 0xE7F1, 0xAB95, 0xAB96, 0xAB97, 0xB0E0, 0xAB98, 0xAB99, +0xAB9A, 0xAB9B, 0xE7F5, 0xAB9C, 0xAB9D, 0xAB9E, 0xAB9F, 0xABA0, +0xAC40, 0xAC41, 0xAC42, 0xAC43, 0xAC44, 0xAC45, 0xAC46, 0xAC47, +0xAC48, 0xAC49, 0xAC4A, 0xC7F2, 0xAC4B, 0xC0C5, 0xC0ED, 0xAC4C, +0xAC4D, 0xC1F0, 0xE7F0, 0xAC4E, 0xAC4F, 0xAC50, 0xAC51, 0xE7F6, +0xCBF6, 0xAC52, 0xAC53, 0xAC54, 0xAC55, 0xAC56, 0xAC57, 0xAC58, +0xAC59, 0xAC5A, 0xE8A2, 0xE8A1, 0xAC5B, 0xAC5C, 0xAC5D, 0xAC5E, +0xAC5F, 0xAC60, 0xD7C1, 0xAC61, 0xAC62, 0xE7FA, 0xE7F9, 0xAC63, +0xE7FB, 0xAC64, 0xE7F7, 0xAC65, 0xE7FE, 0xAC66, 0xE7FD, 0xAC67, +0xE7FC, 0xAC68, 0xAC69, 0xC1D5, 0xC7D9, 0xC5FD, 0xC5C3, 0xAC6A, +0xAC6B, 0xAC6C, 0xAC6D, 0xAC6E, 0xC7ED, 0xAC6F, 0xAC70, 0xAC71, +0xAC72, 0xE8A3, 0xAC73, 0xAC74, 0xAC75, 0xAC76, 0xAC77, 0xAC78, +0xAC79, 0xAC7A, 0xAC7B, 0xAC7C, 0xAC7D, 0xAC7E, 0xAC80, 0xAC81, +0xAC82, 0xAC83, 0xAC84, 0xAC85, 0xAC86, 0xE8A6, 0xAC87, 0xE8A5, +0xAC88, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 0xAC89, 0xC8F0, 0xC9AA, +0xAC8A, 0xAC8B, 0xAC8C, 0xAC8D, 0xAC8E, 0xAC8F, 0xAC90, 0xAC91, +0xAC92, 0xAC93, 0xAC94, 0xAC95, 0xAC96, 0xE8A9, 0xAC97, 0xAC98, +0xB9E5, 0xAC99, 0xAC9A, 0xAC9B, 0xAC9C, 0xAC9D, 0xD1FE, 0xE8A8, +0xAC9E, 0xAC9F, 0xACA0, 0xAD40, 0xAD41, 0xAD42, 0xE8AA, 0xAD43, +0xE8AD, 0xE8AE, 0xAD44, 0xC1A7, 0xAD45, 0xAD46, 0xAD47, 0xE8AF, +0xAD48, 0xAD49, 0xAD4A, 0xE8B0, 0xAD4B, 0xAD4C, 0xE8AC, 0xAD4D, +0xE8B4, 0xAD4E, 0xAD4F, 0xAD50, 0xAD51, 0xAD52, 0xAD53, 0xAD54, +0xAD55, 0xAD56, 0xAD57, 0xAD58, 0xE8AB, 0xAD59, 0xE8B1, 0xAD5A, +0xAD5B, 0xAD5C, 0xAD5D, 0xAD5E, 0xAD5F, 0xAD60, 0xAD61, 0xE8B5, +0xE8B2, 0xE8B3, 0xAD62, 0xAD63, 0xAD64, 0xAD65, 0xAD66, 0xAD67, +0xAD68, 0xAD69, 0xAD6A, 0xAD6B, 0xAD6C, 0xAD6D, 0xAD6E, 0xAD6F, +0xAD70, 0xAD71, 0xE8B7, 0xAD72, 0xAD73, 0xAD74, 0xAD75, 0xAD76, +0xAD77, 0xAD78, 0xAD79, 0xAD7A, 0xAD7B, 0xAD7C, 0xAD7D, 0xAD7E, +0xAD80, 0xAD81, 0xAD82, 0xAD83, 0xAD84, 0xAD85, 0xAD86, 0xAD87, +0xAD88, 0xAD89, 0xE8B6, 0xAD8A, 0xAD8B, 0xAD8C, 0xAD8D, 0xAD8E, +0xAD8F, 0xAD90, 0xAD91, 0xAD92, 0xB9CF, 0xAD93, 0xF0AC, 0xAD94, +0xF0AD, 0xAD95, 0xC6B0, 0xB0EA, 0xC8BF, 0xAD96, 0xCDDF, 0xAD97, +0xAD98, 0xAD99, 0xAD9A, 0xAD9B, 0xAD9C, 0xAD9D, 0xCECD, 0xEAB1, +0xAD9E, 0xAD9F, 0xADA0, 0xAE40, 0xEAB2, 0xAE41, 0xC6BF, 0xB4C9, +0xAE42, 0xAE43, 0xAE44, 0xAE45, 0xAE46, 0xAE47, 0xAE48, 0xEAB3, +0xAE49, 0xAE4A, 0xAE4B, 0xAE4C, 0xD5E7, 0xAE4D, 0xAE4E, 0xAE4F, +0xAE50, 0xAE51, 0xAE52, 0xAE53, 0xAE54, 0xDDF9, 0xAE55, 0xEAB4, +0xAE56, 0xEAB5, 0xAE57, 0xEAB6, 0xAE58, 0xAE59, 0xAE5A, 0xAE5B, +0xB8CA, 0xDFB0, 0xC9F5, 0xAE5C, 0xCCF0, 0xAE5D, 0xAE5E, 0xC9FA, +0xAE5F, 0xAE60, 0xAE61, 0xAE62, 0xAE63, 0xC9FB, 0xAE64, 0xAE65, +0xD3C3, 0xCBA6, 0xAE66, 0xB8A6, 0xF0AE, 0xB1C2, 0xAE67, 0xE5B8, +0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 0xAE68, 0xB5E7, 0xAE69, 0xC4D0, +0xB5E9, 0xAE6A, 0xEEAE, 0xBBAD, 0xAE6B, 0xAE6C, 0xE7DE, 0xAE6D, +0xEEAF, 0xAE6E, 0xAE6F, 0xAE70, 0xAE71, 0xB3A9, 0xAE72, 0xAE73, +0xEEB2, 0xAE74, 0xAE75, 0xEEB1, 0xBDE7, 0xAE76, 0xEEB0, 0xCEB7, +0xAE77, 0xAE78, 0xAE79, 0xAE7A, 0xC5CF, 0xAE7B, 0xAE7C, 0xAE7D, +0xAE7E, 0xC1F4, 0xDBCE, 0xEEB3, 0xD0F3, 0xAE80, 0xAE81, 0xAE82, +0xAE83, 0xAE84, 0xAE85, 0xAE86, 0xAE87, 0xC2D4, 0xC6E8, 0xAE88, +0xAE89, 0xAE8A, 0xB7AC, 0xAE8B, 0xAE8C, 0xAE8D, 0xAE8E, 0xAE8F, +0xAE90, 0xAE91, 0xEEB4, 0xAE92, 0xB3EB, 0xAE93, 0xAE94, 0xAE95, +0xBBFB, 0xEEB5, 0xAE96, 0xAE97, 0xAE98, 0xAE99, 0xAE9A, 0xE7DC, +0xAE9B, 0xAE9C, 0xAE9D, 0xEEB6, 0xAE9E, 0xAE9F, 0xBDAE, 0xAEA0, +0xAF40, 0xAF41, 0xAF42, 0xF1E2, 0xAF43, 0xAF44, 0xAF45, 0xCAE8, +0xAF46, 0xD2C9, 0xF0DA, 0xAF47, 0xF0DB, 0xAF48, 0xF0DC, 0xC1C6, +0xAF49, 0xB8ED, 0xBECE, 0xAF4A, 0xAF4B, 0xF0DE, 0xAF4C, 0xC5B1, +0xF0DD, 0xD1F1, 0xAF4D, 0xF0E0, 0xB0CC, 0xBDEA, 0xAF4E, 0xAF4F, +0xAF50, 0xAF51, 0xAF52, 0xD2DF, 0xF0DF, 0xAF53, 0xB4AF, 0xB7E8, +0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1, 0xF0E2, 0xB4C3, 0xAF54, 0xAF55, +0xF0E3, 0xD5EE, 0xAF56, 0xAF57, 0xCCDB, 0xBED2, 0xBCB2, 0xAF58, +0xAF59, 0xAF5A, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1, 0xAF5B, 0xD6A2, +0xD3B8, 0xBEB7, 0xC8AC, 0xAF5C, 0xAF5D, 0xF0EA, 0xAF5E, 0xAF5F, +0xAF60, 0xAF61, 0xD1F7, 0xAF62, 0xD6CC, 0xBADB, 0xF0E9, 0xAF63, +0xB6BB, 0xAF64, 0xAF65, 0xCDB4, 0xAF66, 0xAF67, 0xC6A6, 0xAF68, +0xAF69, 0xAF6A, 0xC1A1, 0xF0EB, 0xF0EE, 0xAF6B, 0xF0ED, 0xF0F0, +0xF0EC, 0xAF6C, 0xBBBE, 0xF0EF, 0xAF6D, 0xAF6E, 0xAF6F, 0xAF70, +0xCCB5, 0xF0F2, 0xAF71, 0xAF72, 0xB3D5, 0xAF73, 0xAF74, 0xAF75, +0xAF76, 0xB1D4, 0xAF77, 0xAF78, 0xF0F3, 0xAF79, 0xAF7A, 0xF0F4, +0xF0F6, 0xB4E1, 0xAF7B, 0xF0F1, 0xAF7C, 0xF0F7, 0xAF7D, 0xAF7E, +0xAF80, 0xAF81, 0xF0FA, 0xAF82, 0xF0F8, 0xAF83, 0xAF84, 0xAF85, +0xF0F5, 0xAF86, 0xAF87, 0xAF88, 0xAF89, 0xF0FD, 0xAF8A, 0xF0F9, +0xF0FC, 0xF0FE, 0xAF8B, 0xF1A1, 0xAF8C, 0xAF8D, 0xAF8E, 0xCEC1, +0xF1A4, 0xAF8F, 0xF1A3, 0xAF90, 0xC1F6, 0xF0FB, 0xCADD, 0xAF91, +0xAF92, 0xB4F1, 0xB1F1, 0xCCB1, 0xAF93, 0xF1A6, 0xAF94, 0xAF95, +0xF1A7, 0xAF96, 0xAF97, 0xF1AC, 0xD5CE, 0xF1A9, 0xAF98, 0xAF99, +0xC8B3, 0xAF9A, 0xAF9B, 0xAF9C, 0xF1A2, 0xAF9D, 0xF1AB, 0xF1A8, +0xF1A5, 0xAF9E, 0xAF9F, 0xF1AA, 0xAFA0, 0xB040, 0xB041, 0xB042, +0xB043, 0xB044, 0xB045, 0xB046, 0xB0A9, 0xF1AD, 0xB047, 0xB048, +0xB049, 0xB04A, 0xB04B, 0xB04C, 0xF1AF, 0xB04D, 0xF1B1, 0xB04E, +0xB04F, 0xB050, 0xB051, 0xB052, 0xF1B0, 0xB053, 0xF1AE, 0xB054, +0xB055, 0xB056, 0xB057, 0xD1A2, 0xB058, 0xB059, 0xB05A, 0xB05B, +0xB05C, 0xB05D, 0xB05E, 0xF1B2, 0xB05F, 0xB060, 0xB061, 0xF1B3, +0xB062, 0xB063, 0xB064, 0xB065, 0xB066, 0xB067, 0xB068, 0xB069, +0xB9EF, 0xB06A, 0xB06B, 0xB5C7, 0xB06C, 0xB0D7, 0xB0D9, 0xB06D, +0xB06E, 0xB06F, 0xD4ED, 0xB070, 0xB5C4, 0xB071, 0xBDD4, 0xBBCA, +0xF0A7, 0xB072, 0xB073, 0xB8DE, 0xB074, 0xB075, 0xF0A8, 0xB076, +0xB077, 0xB0A8, 0xB078, 0xF0A9, 0xB079, 0xB07A, 0xCDEE, 0xB07B, +0xB07C, 0xF0AA, 0xB07D, 0xB07E, 0xB080, 0xB081, 0xB082, 0xB083, +0xB084, 0xB085, 0xB086, 0xB087, 0xF0AB, 0xB088, 0xB089, 0xB08A, +0xB08B, 0xB08C, 0xB08D, 0xB08E, 0xB08F, 0xB090, 0xC6A4, 0xB091, +0xB092, 0xD6E5, 0xF1E4, 0xB093, 0xF1E5, 0xB094, 0xB095, 0xB096, +0xB097, 0xB098, 0xB099, 0xB09A, 0xB09B, 0xB09C, 0xB09D, 0xC3F3, +0xB09E, 0xB09F, 0xD3DB, 0xB0A0, 0xB140, 0xD6D1, 0xC5E8, 0xB141, +0xD3AF, 0xB142, 0xD2E6, 0xB143, 0xB144, 0xEEC1, 0xB0BB, 0xD5B5, +0xD1CE, 0xBCE0, 0xBAD0, 0xB145, 0xBFF8, 0xB146, 0xB8C7, 0xB5C1, +0xC5CC, 0xB147, 0xB148, 0xCAA2, 0xB149, 0xB14A, 0xB14B, 0xC3CB, +0xB14C, 0xB14D, 0xB14E, 0xB14F, 0xB150, 0xEEC2, 0xB151, 0xB152, +0xB153, 0xB154, 0xB155, 0xB156, 0xB157, 0xB158, 0xC4BF, 0xB6A2, +0xB159, 0xEDEC, 0xC3A4, 0xB15A, 0xD6B1, 0xB15B, 0xB15C, 0xB15D, +0xCFE0, 0xEDEF, 0xB15E, 0xB15F, 0xC5CE, 0xB160, 0xB6DC, 0xB161, +0xB162, 0xCAA1, 0xB163, 0xB164, 0xEDED, 0xB165, 0xB166, 0xEDF0, +0xEDF1, 0xC3BC, 0xB167, 0xBFB4, 0xB168, 0xEDEE, 0xB169, 0xB16A, +0xB16B, 0xB16C, 0xB16D, 0xB16E, 0xB16F, 0xB170, 0xB171, 0xB172, +0xB173, 0xEDF4, 0xEDF2, 0xB174, 0xB175, 0xB176, 0xB177, 0xD5E6, +0xC3DF, 0xB178, 0xEDF3, 0xB179, 0xB17A, 0xB17B, 0xEDF6, 0xB17C, +0xD5A3, 0xD1A3, 0xB17D, 0xB17E, 0xB180, 0xEDF5, 0xB181, 0xC3D0, +0xB182, 0xB183, 0xB184, 0xB185, 0xB186, 0xEDF7, 0xBFF4, 0xBEEC, +0xEDF8, 0xB187, 0xCCF7, 0xB188, 0xD1DB, 0xB189, 0xB18A, 0xB18B, +0xD7C5, 0xD5F6, 0xB18C, 0xEDFC, 0xB18D, 0xB18E, 0xB18F, 0xEDFB, +0xB190, 0xB191, 0xB192, 0xB193, 0xB194, 0xB195, 0xB196, 0xB197, +0xEDF9, 0xEDFA, 0xB198, 0xB199, 0xB19A, 0xB19B, 0xB19C, 0xB19D, +0xB19E, 0xB19F, 0xEDFD, 0xBEA6, 0xB1A0, 0xB240, 0xB241, 0xB242, +0xB243, 0xCBAF, 0xEEA1, 0xB6BD, 0xB244, 0xEEA2, 0xC4C0, 0xB245, +0xEDFE, 0xB246, 0xB247, 0xBDDE, 0xB2C7, 0xB248, 0xB249, 0xB24A, +0xB24B, 0xB24C, 0xB24D, 0xB24E, 0xB24F, 0xB250, 0xB251, 0xB252, +0xB253, 0xB6C3, 0xB254, 0xB255, 0xB256, 0xEEA5, 0xD8BA, 0xEEA3, +0xEEA6, 0xB257, 0xB258, 0xB259, 0xC3E9, 0xB3F2, 0xB25A, 0xB25B, +0xB25C, 0xB25D, 0xB25E, 0xB25F, 0xEEA7, 0xEEA4, 0xCFB9, 0xB260, +0xB261, 0xEEA8, 0xC2F7, 0xB262, 0xB263, 0xB264, 0xB265, 0xB266, +0xB267, 0xB268, 0xB269, 0xB26A, 0xB26B, 0xB26C, 0xB26D, 0xEEA9, +0xEEAA, 0xB26E, 0xDEAB, 0xB26F, 0xB270, 0xC6B3, 0xB271, 0xC7C6, +0xB272, 0xD6F5, 0xB5C9, 0xB273, 0xCBB2, 0xB274, 0xB275, 0xB276, +0xEEAB, 0xB277, 0xB278, 0xCDAB, 0xB279, 0xEEAC, 0xB27A, 0xB27B, +0xB27C, 0xB27D, 0xB27E, 0xD5B0, 0xB280, 0xEEAD, 0xB281, 0xF6C4, +0xB282, 0xB283, 0xB284, 0xB285, 0xB286, 0xB287, 0xB288, 0xB289, +0xB28A, 0xB28B, 0xB28C, 0xB28D, 0xB28E, 0xDBC7, 0xB28F, 0xB290, +0xB291, 0xB292, 0xB293, 0xB294, 0xB295, 0xB296, 0xB297, 0xB4A3, +0xB298, 0xB299, 0xB29A, 0xC3AC, 0xF1E6, 0xB29B, 0xB29C, 0xB29D, +0xB29E, 0xB29F, 0xCAB8, 0xD2D3, 0xB2A0, 0xD6AA, 0xB340, 0xEFF2, +0xB341, 0xBED8, 0xB342, 0xBDC3, 0xEFF3, 0xB6CC, 0xB0AB, 0xB343, +0xB344, 0xB345, 0xB346, 0xCAAF, 0xB347, 0xB348, 0xEDB6, 0xB349, +0xEDB7, 0xB34A, 0xB34B, 0xB34C, 0xB34D, 0xCEF9, 0xB7AF, 0xBFF3, +0xEDB8, 0xC2EB, 0xC9B0, 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB352, +0xB353, 0xEDB9, 0xB354, 0xB355, 0xC6F6, 0xBFB3, 0xB356, 0xB357, +0xB358, 0xEDBC, 0xC5F8, 0xB359, 0xD1D0, 0xB35A, 0xD7A9, 0xEDBA, +0xEDBB, 0xB35B, 0xD1E2, 0xB35C, 0xEDBF, 0xEDC0, 0xB35D, 0xEDC4, +0xB35E, 0xB35F, 0xB360, 0xEDC8, 0xB361, 0xEDC6, 0xEDCE, 0xD5E8, +0xB362, 0xEDC9, 0xB363, 0xB364, 0xEDC7, 0xEDBE, 0xB365, 0xB366, +0xC5E9, 0xB367, 0xB368, 0xB369, 0xC6C6, 0xB36A, 0xB36B, 0xC9E9, +0xD4D2, 0xEDC1, 0xEDC2, 0xEDC3, 0xEDC5, 0xB36C, 0xC0F9, 0xB36D, +0xB4A1, 0xB36E, 0xB36F, 0xB370, 0xB371, 0xB9E8, 0xB372, 0xEDD0, +0xB373, 0xB374, 0xB375, 0xB376, 0xEDD1, 0xB377, 0xEDCA, 0xB378, +0xEDCF, 0xB379, 0xCEF8, 0xB37A, 0xB37B, 0xCBB6, 0xEDCC, 0xEDCD, +0xB37C, 0xB37D, 0xB37E, 0xB380, 0xB381, 0xCFF5, 0xB382, 0xB383, +0xB384, 0xB385, 0xB386, 0xB387, 0xB388, 0xB389, 0xB38A, 0xB38B, +0xB38C, 0xB38D, 0xEDD2, 0xC1F2, 0xD3B2, 0xEDCB, 0xC8B7, 0xB38E, +0xB38F, 0xB390, 0xB391, 0xB392, 0xB393, 0xB394, 0xB395, 0xBCEF, +0xB396, 0xB397, 0xB398, 0xB399, 0xC5F0, 0xB39A, 0xB39B, 0xB39C, +0xB39D, 0xB39E, 0xB39F, 0xB3A0, 0xB440, 0xB441, 0xB442, 0xEDD6, +0xB443, 0xB5EF, 0xB444, 0xB445, 0xC2B5, 0xB0AD, 0xCBE9, 0xB446, +0xB447, 0xB1AE, 0xB448, 0xEDD4, 0xB449, 0xB44A, 0xB44B, 0xCDEB, +0xB5E2, 0xB44C, 0xEDD5, 0xEDD3, 0xEDD7, 0xB44D, 0xB44E, 0xB5FA, +0xB44F, 0xEDD8, 0xB450, 0xEDD9, 0xB451, 0xEDDC, 0xB452, 0xB1CC, +0xB453, 0xB454, 0xB455, 0xB456, 0xB457, 0xB458, 0xB459, 0xB45A, +0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC, 0xB2EA, 0xB45B, 0xB45C, 0xB45D, +0xB45E, 0xEDDB, 0xB45F, 0xB460, 0xB461, 0xB462, 0xC4EB, 0xB463, +0xB464, 0xB4C5, 0xB465, 0xB466, 0xB467, 0xB0F5, 0xB468, 0xB469, +0xB46A, 0xEDDF, 0xC0DA, 0xB4E8, 0xB46B, 0xB46C, 0xB46D, 0xB46E, +0xC5CD, 0xB46F, 0xB470, 0xB471, 0xEDDD, 0xBFC4, 0xB472, 0xB473, +0xB474, 0xEDDE, 0xB475, 0xB476, 0xB477, 0xB478, 0xB479, 0xB47A, +0xB47B, 0xB47C, 0xB47D, 0xB47E, 0xB480, 0xB481, 0xB482, 0xB483, +0xC4A5, 0xB484, 0xB485, 0xB486, 0xEDE0, 0xB487, 0xB488, 0xB489, +0xB48A, 0xB48B, 0xEDE1, 0xB48C, 0xEDE3, 0xB48D, 0xB48E, 0xC1D7, +0xB48F, 0xB490, 0xBBC7, 0xB491, 0xB492, 0xB493, 0xB494, 0xB495, +0xB496, 0xBDB8, 0xB497, 0xB498, 0xB499, 0xEDE2, 0xB49A, 0xB49B, +0xB49C, 0xB49D, 0xB49E, 0xB49F, 0xB4A0, 0xB540, 0xB541, 0xB542, +0xB543, 0xB544, 0xB545, 0xEDE4, 0xB546, 0xB547, 0xB548, 0xB549, +0xB54A, 0xB54B, 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xEDE6, 0xB550, +0xB551, 0xB552, 0xB553, 0xB554, 0xEDE5, 0xB555, 0xB556, 0xB557, +0xB558, 0xB559, 0xB55A, 0xB55B, 0xB55C, 0xB55D, 0xB55E, 0xB55F, +0xB560, 0xB561, 0xB562, 0xB563, 0xEDE7, 0xB564, 0xB565, 0xB566, +0xB567, 0xB568, 0xCABE, 0xECEA, 0xC0F1, 0xB569, 0xC9E7, 0xB56A, +0xECEB, 0xC6EE, 0xB56B, 0xB56C, 0xB56D, 0xB56E, 0xECEC, 0xB56F, +0xC6ED, 0xECED, 0xB570, 0xB571, 0xB572, 0xB573, 0xB574, 0xB575, +0xB576, 0xB577, 0xB578, 0xECF0, 0xB579, 0xB57A, 0xD7E6, 0xECF3, +0xB57B, 0xB57C, 0xECF1, 0xECEE, 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, +0xECF4, 0xB57D, 0xECF2, 0xB57E, 0xB580, 0xCFE9, 0xB581, 0xECF6, +0xC6B1, 0xB582, 0xB583, 0xB584, 0xB585, 0xBCC0, 0xB586, 0xECF5, +0xB587, 0xB588, 0xB589, 0xB58A, 0xB58B, 0xB58C, 0xB58D, 0xB5BB, +0xBBF6, 0xB58E, 0xECF7, 0xB58F, 0xB590, 0xB591, 0xB592, 0xB593, +0xD9F7, 0xBDFB, 0xB594, 0xB595, 0xC2BB, 0xECF8, 0xB596, 0xB597, +0xB598, 0xB599, 0xECF9, 0xB59A, 0xB59B, 0xB59C, 0xB59D, 0xB8A3, +0xB59E, 0xB59F, 0xB5A0, 0xB640, 0xB641, 0xB642, 0xB643, 0xB644, +0xB645, 0xB646, 0xECFA, 0xB647, 0xB648, 0xB649, 0xB64A, 0xB64B, +0xB64C, 0xB64D, 0xB64E, 0xB64F, 0xB650, 0xB651, 0xB652, 0xECFB, +0xB653, 0xB654, 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, 0xB65A, +0xB65B, 0xB65C, 0xB65D, 0xECFC, 0xB65E, 0xB65F, 0xB660, 0xB661, +0xB662, 0xD3ED, 0xD8AE, 0xC0EB, 0xB663, 0xC7DD, 0xBACC, 0xB664, +0xD0E3, 0xCBBD, 0xB665, 0xCDBA, 0xB666, 0xB667, 0xB8D1, 0xB668, +0xB669, 0xB1FC, 0xB66A, 0xC7EF, 0xB66B, 0xD6D6, 0xB66C, 0xB66D, +0xB66E, 0xBFC6, 0xC3EB, 0xB66F, 0xB670, 0xEFF5, 0xB671, 0xB672, +0xC3D8, 0xB673, 0xB674, 0xB675, 0xB676, 0xB677, 0xB678, 0xD7E2, +0xB679, 0xB67A, 0xB67B, 0xEFF7, 0xB3D3, 0xB67C, 0xC7D8, 0xD1ED, +0xB67D, 0xD6C8, 0xB67E, 0xEFF8, 0xB680, 0xEFF6, 0xB681, 0xBBFD, +0xB3C6, 0xB682, 0xB683, 0xB684, 0xB685, 0xB686, 0xB687, 0xB688, +0xBDD5, 0xB689, 0xB68A, 0xD2C6, 0xB68B, 0xBBE0, 0xB68C, 0xB68D, +0xCFA1, 0xB68E, 0xEFFC, 0xEFFB, 0xB68F, 0xB690, 0xEFF9, 0xB691, +0xB692, 0xB693, 0xB694, 0xB3CC, 0xB695, 0xC9D4, 0xCBB0, 0xB696, +0xB697, 0xB698, 0xB699, 0xB69A, 0xEFFE, 0xB69B, 0xB69C, 0xB0DE, +0xB69D, 0xB69E, 0xD6C9, 0xB69F, 0xB6A0, 0xB740, 0xEFFD, 0xB741, +0xB3ED, 0xB742, 0xB743, 0xF6D5, 0xB744, 0xB745, 0xB746, 0xB747, +0xB748, 0xB749, 0xB74A, 0xB74B, 0xB74C, 0xB74D, 0xB74E, 0xB74F, +0xB750, 0xB751, 0xB752, 0xCEC8, 0xB753, 0xB754, 0xB755, 0xF0A2, +0xB756, 0xF0A1, 0xB757, 0xB5BE, 0xBCDA, 0xBBFC, 0xB758, 0xB8E5, +0xB759, 0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB75E, 0xC4C2, 0xB75F, +0xB760, 0xB761, 0xB762, 0xB763, 0xB764, 0xB765, 0xB766, 0xB767, +0xB768, 0xF0A3, 0xB769, 0xB76A, 0xB76B, 0xB76C, 0xB76D, 0xCBEB, +0xB76E, 0xB76F, 0xB770, 0xB771, 0xB772, 0xB773, 0xB774, 0xB775, +0xB776, 0xB777, 0xB778, 0xB779, 0xB77A, 0xB77B, 0xB77C, 0xB77D, +0xB77E, 0xB780, 0xB781, 0xB782, 0xB783, 0xB784, 0xB785, 0xB786, +0xF0A6, 0xB787, 0xB788, 0xB789, 0xD1A8, 0xB78A, 0xBEBF, 0xC7EE, +0xF1B6, 0xF1B7, 0xBFD5, 0xB78B, 0xB78C, 0xB78D, 0xB78E, 0xB4A9, +0xF1B8, 0xCDBB, 0xB78F, 0xC7D4, 0xD5AD, 0xB790, 0xF1B9, 0xB791, +0xF1BA, 0xB792, 0xB793, 0xB794, 0xB795, 0xC7CF, 0xB796, 0xB797, +0xB798, 0xD2A4, 0xD6CF, 0xB799, 0xB79A, 0xF1BB, 0xBDD1, 0xB4B0, +0xBEBD, 0xB79B, 0xB79C, 0xB79D, 0xB4DC, 0xCED1, 0xB79E, 0xBFDF, +0xF1BD, 0xB79F, 0xB7A0, 0xB840, 0xB841, 0xBFFA, 0xF1BC, 0xB842, +0xF1BF, 0xB843, 0xB844, 0xB845, 0xF1BE, 0xF1C0, 0xB846, 0xB847, +0xB848, 0xB849, 0xB84A, 0xF1C1, 0xB84B, 0xB84C, 0xB84D, 0xB84E, +0xB84F, 0xB850, 0xB851, 0xB852, 0xB853, 0xB854, 0xB855, 0xC1FE, +0xB856, 0xB857, 0xB858, 0xB859, 0xB85A, 0xB85B, 0xB85C, 0xB85D, +0xB85E, 0xB85F, 0xB860, 0xC1A2, 0xB861, 0xB862, 0xB863, 0xB864, +0xB865, 0xB866, 0xB867, 0xB868, 0xB869, 0xB86A, 0xCAFA, 0xB86B, +0xB86C, 0xD5BE, 0xB86D, 0xB86E, 0xB86F, 0xB870, 0xBEBA, 0xBEB9, +0xD5C2, 0xB871, 0xB872, 0xBFA2, 0xB873, 0xCDAF, 0xF1B5, 0xB874, +0xB875, 0xB876, 0xB877, 0xB878, 0xB879, 0xBDDF, 0xB87A, 0xB6CB, +0xB87B, 0xB87C, 0xB87D, 0xB87E, 0xB880, 0xB881, 0xB882, 0xB883, +0xB884, 0xD6F1, 0xF3C3, 0xB885, 0xB886, 0xF3C4, 0xB887, 0xB8CD, +0xB888, 0xB889, 0xB88A, 0xF3C6, 0xF3C7, 0xB88B, 0xB0CA, 0xB88C, +0xF3C5, 0xB88D, 0xF3C9, 0xCBF1, 0xB88E, 0xB88F, 0xB890, 0xF3CB, +0xB891, 0xD0A6, 0xB892, 0xB893, 0xB1CA, 0xF3C8, 0xB894, 0xB895, +0xB896, 0xF3CF, 0xB897, 0xB5D1, 0xB898, 0xB899, 0xF3D7, 0xB89A, +0xF3D2, 0xB89B, 0xB89C, 0xB89D, 0xF3D4, 0xF3D3, 0xB7FB, 0xB89E, +0xB1BF, 0xB89F, 0xF3CE, 0xF3CA, 0xB5DA, 0xB8A0, 0xF3D0, 0xB940, +0xB941, 0xF3D1, 0xB942, 0xF3D5, 0xB943, 0xB944, 0xB945, 0xB946, +0xF3CD, 0xB947, 0xBCE3, 0xB948, 0xC1FD, 0xB949, 0xF3D6, 0xB94A, +0xB94B, 0xB94C, 0xB94D, 0xB94E, 0xB94F, 0xF3DA, 0xB950, 0xF3CC, +0xB951, 0xB5C8, 0xB952, 0xBDEE, 0xF3DC, 0xB953, 0xB954, 0xB7A4, +0xBFF0, 0xD6FE, 0xCDB2, 0xB955, 0xB4F0, 0xB956, 0xB2DF, 0xB957, +0xF3D8, 0xB958, 0xF3D9, 0xC9B8, 0xB959, 0xF3DD, 0xB95A, 0xB95B, +0xF3DE, 0xB95C, 0xF3E1, 0xB95D, 0xB95E, 0xB95F, 0xB960, 0xB961, +0xB962, 0xB963, 0xB964, 0xB965, 0xB966, 0xB967, 0xF3DF, 0xB968, +0xB969, 0xF3E3, 0xF3E2, 0xB96A, 0xB96B, 0xF3DB, 0xB96C, 0xBFEA, +0xB96D, 0xB3EF, 0xB96E, 0xF3E0, 0xB96F, 0xB970, 0xC7A9, 0xB971, +0xBCF2, 0xB972, 0xB973, 0xB974, 0xB975, 0xF3EB, 0xB976, 0xB977, +0xB978, 0xB979, 0xB97A, 0xB97B, 0xB97C, 0xB9BF, 0xB97D, 0xB97E, +0xF3E4, 0xB980, 0xB981, 0xB982, 0xB2AD, 0xBBFE, 0xB983, 0xCBE3, +0xB984, 0xB985, 0xB986, 0xB987, 0xF3ED, 0xF3E9, 0xB988, 0xB989, +0xB98A, 0xB9DC, 0xF3EE, 0xB98B, 0xB98C, 0xB98D, 0xF3E5, 0xF3E6, +0xF3EA, 0xC2E1, 0xF3EC, 0xF3EF, 0xF3E8, 0xBCFD, 0xB98E, 0xB98F, +0xB990, 0xCFE4, 0xB991, 0xB992, 0xF3F0, 0xB993, 0xB994, 0xB995, +0xF3E7, 0xB996, 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, 0xB99C, +0xB99D, 0xF3F2, 0xB99E, 0xB99F, 0xB9A0, 0xBA40, 0xD7AD, 0xC6AA, +0xBA41, 0xBA42, 0xBA43, 0xBA44, 0xF3F3, 0xBA45, 0xBA46, 0xBA47, +0xBA48, 0xF3F1, 0xBA49, 0xC2A8, 0xBA4A, 0xBA4B, 0xBA4C, 0xBA4D, +0xBA4E, 0xB8DD, 0xF3F5, 0xBA4F, 0xBA50, 0xF3F4, 0xBA51, 0xBA52, +0xBA53, 0xB4DB, 0xBA54, 0xBA55, 0xBA56, 0xF3F6, 0xF3F7, 0xBA57, +0xBA58, 0xBA59, 0xF3F8, 0xBA5A, 0xBA5B, 0xBA5C, 0xC0BA, 0xBA5D, +0xBA5E, 0xC0E9, 0xBA5F, 0xBA60, 0xBA61, 0xBA62, 0xBA63, 0xC5F1, +0xBA64, 0xBA65, 0xBA66, 0xBA67, 0xF3FB, 0xBA68, 0xF3FA, 0xBA69, +0xBA6A, 0xBA6B, 0xBA6C, 0xBA6D, 0xBA6E, 0xBA6F, 0xBA70, 0xB4D8, +0xBA71, 0xBA72, 0xBA73, 0xF3FE, 0xF3F9, 0xBA74, 0xBA75, 0xF3FC, +0xBA76, 0xBA77, 0xBA78, 0xBA79, 0xBA7A, 0xBA7B, 0xF3FD, 0xBA7C, +0xBA7D, 0xBA7E, 0xBA80, 0xBA81, 0xBA82, 0xBA83, 0xBA84, 0xF4A1, +0xBA85, 0xBA86, 0xBA87, 0xBA88, 0xBA89, 0xBA8A, 0xF4A3, 0xBBC9, +0xBA8B, 0xBA8C, 0xF4A2, 0xBA8D, 0xBA8E, 0xBA8F, 0xBA90, 0xBA91, +0xBA92, 0xBA93, 0xBA94, 0xBA95, 0xBA96, 0xBA97, 0xBA98, 0xBA99, +0xF4A4, 0xBA9A, 0xBA9B, 0xBA9C, 0xBA9D, 0xBA9E, 0xBA9F, 0xB2BE, +0xF4A6, 0xF4A5, 0xBAA0, 0xBB40, 0xBB41, 0xBB42, 0xBB43, 0xBB44, +0xBB45, 0xBB46, 0xBB47, 0xBB48, 0xBB49, 0xBCAE, 0xBB4A, 0xBB4B, +0xBB4C, 0xBB4D, 0xBB4E, 0xBB4F, 0xBB50, 0xBB51, 0xBB52, 0xBB53, +0xBB54, 0xBB55, 0xBB56, 0xBB57, 0xBB58, 0xBB59, 0xBB5A, 0xBB5B, +0xBB5C, 0xBB5D, 0xBB5E, 0xBB5F, 0xBB60, 0xBB61, 0xBB62, 0xBB63, +0xBB64, 0xBB65, 0xBB66, 0xBB67, 0xBB68, 0xBB69, 0xBB6A, 0xBB6B, +0xBB6C, 0xBB6D, 0xBB6E, 0xC3D7, 0xD9E1, 0xBB6F, 0xBB70, 0xBB71, +0xBB72, 0xBB73, 0xBB74, 0xC0E0, 0xF4CC, 0xD7D1, 0xBB75, 0xBB76, +0xBB77, 0xBB78, 0xBB79, 0xBB7A, 0xBB7B, 0xBB7C, 0xBB7D, 0xBB7E, +0xBB80, 0xB7DB, 0xBB81, 0xBB82, 0xBB83, 0xBB84, 0xBB85, 0xBB86, +0xBB87, 0xF4CE, 0xC1A3, 0xBB88, 0xBB89, 0xC6C9, 0xBB8A, 0xB4D6, +0xD5B3, 0xBB8B, 0xBB8C, 0xBB8D, 0xF4D0, 0xF4CF, 0xF4D1, 0xCBDA, +0xBB8E, 0xBB8F, 0xF4D2, 0xBB90, 0xD4C1, 0xD6E0, 0xBB91, 0xBB92, +0xBB93, 0xBB94, 0xB7E0, 0xBB95, 0xBB96, 0xBB97, 0xC1B8, 0xBB98, +0xBB99, 0xC1BB, 0xF4D3, 0xBEAC, 0xBB9A, 0xBB9B, 0xBB9C, 0xBB9D, +0xBB9E, 0xB4E2, 0xBB9F, 0xBBA0, 0xF4D4, 0xF4D5, 0xBEAB, 0xBC40, +0xBC41, 0xF4D6, 0xBC42, 0xBC43, 0xBC44, 0xF4DB, 0xBC45, 0xF4D7, +0xF4DA, 0xBC46, 0xBAFD, 0xBC47, 0xF4D8, 0xF4D9, 0xBC48, 0xBC49, +0xBC4A, 0xBC4B, 0xBC4C, 0xBC4D, 0xBC4E, 0xB8E2, 0xCCC7, 0xF4DC, +0xBC4F, 0xB2DA, 0xBC50, 0xBC51, 0xC3D3, 0xBC52, 0xBC53, 0xD4E3, +0xBFB7, 0xBC54, 0xBC55, 0xBC56, 0xBC57, 0xBC58, 0xBC59, 0xBC5A, +0xF4DD, 0xBC5B, 0xBC5C, 0xBC5D, 0xBC5E, 0xBC5F, 0xBC60, 0xC5B4, +0xBC61, 0xBC62, 0xBC63, 0xBC64, 0xBC65, 0xBC66, 0xBC67, 0xBC68, +0xF4E9, 0xBC69, 0xBC6A, 0xCFB5, 0xBC6B, 0xBC6C, 0xBC6D, 0xBC6E, +0xBC6F, 0xBC70, 0xBC71, 0xBC72, 0xBC73, 0xBC74, 0xBC75, 0xBC76, +0xBC77, 0xBC78, 0xCEC9, 0xBC79, 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D, +0xBC7E, 0xBC80, 0xBC81, 0xBC82, 0xBC83, 0xBC84, 0xBC85, 0xBC86, +0xBC87, 0xBC88, 0xBC89, 0xBC8A, 0xBC8B, 0xBC8C, 0xBC8D, 0xBC8E, +0xCBD8, 0xBC8F, 0xCBF7, 0xBC90, 0xBC91, 0xBC92, 0xBC93, 0xBDF4, +0xBC94, 0xBC95, 0xBC96, 0xD7CF, 0xBC97, 0xBC98, 0xBC99, 0xC0DB, +0xBC9A, 0xBC9B, 0xBC9C, 0xBC9D, 0xBC9E, 0xBC9F, 0xBCA0, 0xBD40, +0xBD41, 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD48, +0xBD49, 0xBD4A, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E, 0xBD4F, 0xBD50, +0xBD51, 0xBD52, 0xBD53, 0xBD54, 0xBD55, 0xBD56, 0xBD57, 0xBD58, +0xBD59, 0xBD5A, 0xBD5B, 0xBD5C, 0xBD5D, 0xBD5E, 0xBD5F, 0xBD60, +0xBD61, 0xBD62, 0xBD63, 0xBD64, 0xBD65, 0xBD66, 0xBD67, 0xBD68, +0xBD69, 0xBD6A, 0xBD6B, 0xBD6C, 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, +0xBD71, 0xBD72, 0xBD73, 0xBD74, 0xBD75, 0xBD76, 0xD0F5, 0xBD77, +0xBD78, 0xBD79, 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D, 0xBD7E, 0xF4EA, +0xBD80, 0xBD81, 0xBD82, 0xBD83, 0xBD84, 0xBD85, 0xBD86, 0xBD87, +0xBD88, 0xBD89, 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F, +0xBD90, 0xBD91, 0xBD92, 0xBD93, 0xBD94, 0xBD95, 0xBD96, 0xBD97, +0xBD98, 0xBD99, 0xBD9A, 0xBD9B, 0xBD9C, 0xBD9D, 0xBD9E, 0xBD9F, +0xBDA0, 0xBE40, 0xBE41, 0xBE42, 0xBE43, 0xBE44, 0xBE45, 0xBE46, +0xBE47, 0xBE48, 0xBE49, 0xBE4A, 0xBE4B, 0xBE4C, 0xF4EB, 0xBE4D, +0xBE4E, 0xBE4F, 0xBE50, 0xBE51, 0xBE52, 0xBE53, 0xF4EC, 0xBE54, +0xBE55, 0xBE56, 0xBE57, 0xBE58, 0xBE59, 0xBE5A, 0xBE5B, 0xBE5C, +0xBE5D, 0xBE5E, 0xBE5F, 0xBE60, 0xBE61, 0xBE62, 0xBE63, 0xBE64, +0xBE65, 0xBE66, 0xBE67, 0xBE68, 0xBE69, 0xBE6A, 0xBE6B, 0xBE6C, +0xBE6D, 0xBE6E, 0xBE6F, 0xBE70, 0xBE71, 0xBE72, 0xBE73, 0xBE74, +0xBE75, 0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A, 0xBE7B, 0xBE7C, +0xBE7D, 0xBE7E, 0xBE80, 0xBE81, 0xBE82, 0xBE83, 0xBE84, 0xBE85, +0xBE86, 0xBE87, 0xBE88, 0xBE89, 0xBE8A, 0xBE8B, 0xBE8C, 0xBE8D, +0xBE8E, 0xBE8F, 0xBE90, 0xBE91, 0xBE92, 0xBE93, 0xBE94, 0xBE95, +0xBE96, 0xBE97, 0xBE98, 0xBE99, 0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, +0xBE9E, 0xBE9F, 0xBEA0, 0xBF40, 0xBF41, 0xBF42, 0xBF43, 0xBF44, +0xBF45, 0xBF46, 0xBF47, 0xBF48, 0xBF49, 0xBF4A, 0xBF4B, 0xBF4C, +0xBF4D, 0xBF4E, 0xBF4F, 0xBF50, 0xBF51, 0xBF52, 0xBF53, 0xBF54, +0xBF55, 0xBF56, 0xBF57, 0xBF58, 0xBF59, 0xBF5A, 0xBF5B, 0xBF5C, +0xBF5D, 0xBF5E, 0xBF5F, 0xBF60, 0xBF61, 0xBF62, 0xBF63, 0xBF64, +0xBF65, 0xBF66, 0xBF67, 0xBF68, 0xBF69, 0xBF6A, 0xBF6B, 0xBF6C, +0xBF6D, 0xBF6E, 0xBF6F, 0xBF70, 0xBF71, 0xBF72, 0xBF73, 0xBF74, +0xBF75, 0xBF76, 0xBF77, 0xBF78, 0xBF79, 0xBF7A, 0xBF7B, 0xBF7C, +0xBF7D, 0xBF7E, 0xBF80, 0xF7E3, 0xBF81, 0xBF82, 0xBF83, 0xBF84, +0xBF85, 0xB7B1, 0xBF86, 0xBF87, 0xBF88, 0xBF89, 0xBF8A, 0xF4ED, +0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90, 0xBF91, 0xBF92, +0xBF93, 0xBF94, 0xBF95, 0xBF96, 0xBF97, 0xBF98, 0xBF99, 0xBF9A, +0xBF9B, 0xBF9C, 0xBF9D, 0xBF9E, 0xBF9F, 0xBFA0, 0xC040, 0xC041, +0xC042, 0xC043, 0xC044, 0xC045, 0xC046, 0xC047, 0xC048, 0xC049, +0xC04A, 0xC04B, 0xC04C, 0xC04D, 0xC04E, 0xC04F, 0xC050, 0xC051, +0xC052, 0xC053, 0xC054, 0xC055, 0xC056, 0xC057, 0xC058, 0xC059, +0xC05A, 0xC05B, 0xC05C, 0xC05D, 0xC05E, 0xC05F, 0xC060, 0xC061, +0xC062, 0xC063, 0xD7EB, 0xC064, 0xC065, 0xC066, 0xC067, 0xC068, +0xC069, 0xC06A, 0xC06B, 0xC06C, 0xC06D, 0xC06E, 0xC06F, 0xC070, +0xC071, 0xC072, 0xC073, 0xC074, 0xC075, 0xC076, 0xC077, 0xC078, +0xC079, 0xC07A, 0xC07B, 0xF4EE, 0xC07C, 0xC07D, 0xC07E, 0xE6F9, +0xBEC0, 0xE6FA, 0xBAEC, 0xE6FB, 0xCFCB, 0xE6FC, 0xD4BC, 0xBCB6, +0xE6FD, 0xE6FE, 0xBCCD, 0xC8D2, 0xCEB3, 0xE7A1, 0xC080, 0xB4BF, +0xE7A2, 0xC9B4, 0xB8D9, 0xC4C9, 0xC081, 0xD7DD, 0xC2DA, 0xB7D7, +0xD6BD, 0xCEC6, 0xB7C4, 0xC082, 0xC083, 0xC5A6, 0xE7A3, 0xCFDF, +0xE7A4, 0xE7A5, 0xE7A6, 0xC1B7, 0xD7E9, 0xC9F0, 0xCFB8, 0xD6AF, +0xD6D5, 0xE7A7, 0xB0ED, 0xE7A8, 0xE7A9, 0xC9DC, 0xD2EF, 0xBEAD, +0xE7AA, 0xB0F3, 0xC8DE, 0xBDE1, 0xE7AB, 0xC8C6, 0xC084, 0xE7AC, +0xBBE6, 0xB8F8, 0xD1A4, 0xE7AD, 0xC2E7, 0xBEF8, 0xBDCA, 0xCDB3, +0xE7AE, 0xE7AF, 0xBEEE, 0xD0E5, 0xC085, 0xCBE7, 0xCCD0, 0xBCCC, +0xE7B0, 0xBCA8, 0xD0F7, 0xE7B1, 0xC086, 0xD0F8, 0xE7B2, 0xE7B3, +0xB4C2, 0xE7B4, 0xE7B5, 0xC9FE, 0xCEAC, 0xC3E0, 0xE7B7, 0xB1C1, +0xB3F1, 0xC087, 0xE7B8, 0xE7B9, 0xD7DB, 0xD5C0, 0xE7BA, 0xC2CC, +0xD7BA, 0xE7BB, 0xE7BC, 0xE7BD, 0xBCEA, 0xC3E5, 0xC0C2, 0xE7BE, +0xE7BF, 0xBCA9, 0xC088, 0xE7C0, 0xE7C1, 0xE7B6, 0xB6D0, 0xE7C2, +0xC089, 0xE7C3, 0xE7C4, 0xBBBA, 0xB5DE, 0xC2C6, 0xB1E0, 0xE7C5, +0xD4B5, 0xE7C6, 0xB8BF, 0xE7C8, 0xE7C7, 0xB7EC, 0xC08A, 0xE7C9, +0xB2F8, 0xE7CA, 0xE7CB, 0xE7CC, 0xE7CD, 0xE7CE, 0xE7CF, 0xE7D0, +0xD3A7, 0xCBF5, 0xE7D1, 0xE7D2, 0xE7D3, 0xE7D4, 0xC9C9, 0xE7D5, +0xE7D6, 0xE7D7, 0xE7D8, 0xE7D9, 0xBDC9, 0xE7DA, 0xF3BE, 0xC08B, +0xB8D7, 0xC08C, 0xC8B1, 0xC08D, 0xC08E, 0xC08F, 0xC090, 0xC091, +0xC092, 0xC093, 0xF3BF, 0xC094, 0xF3C0, 0xF3C1, 0xC095, 0xC096, +0xC097, 0xC098, 0xC099, 0xC09A, 0xC09B, 0xC09C, 0xC09D, 0xC09E, +0xB9DE, 0xCDF8, 0xC09F, 0xC0A0, 0xD8E8, 0xBAB1, 0xC140, 0xC2DE, +0xEEB7, 0xC141, 0xB7A3, 0xC142, 0xC143, 0xC144, 0xC145, 0xEEB9, +0xC146, 0xEEB8, 0xB0D5, 0xC147, 0xC148, 0xC149, 0xC14A, 0xC14B, +0xEEBB, 0xD5D6, 0xD7EF, 0xC14C, 0xC14D, 0xC14E, 0xD6C3, 0xC14F, +0xC150, 0xEEBD, 0xCAF0, 0xC151, 0xEEBC, 0xC152, 0xC153, 0xC154, +0xC155, 0xEEBE, 0xC156, 0xC157, 0xC158, 0xC159, 0xEEC0, 0xC15A, +0xC15B, 0xEEBF, 0xC15C, 0xC15D, 0xC15E, 0xC15F, 0xC160, 0xC161, +0xC162, 0xC163, 0xD1F2, 0xC164, 0xC7BC, 0xC165, 0xC3C0, 0xC166, +0xC167, 0xC168, 0xC169, 0xC16A, 0xB8E1, 0xC16B, 0xC16C, 0xC16D, +0xC16E, 0xC16F, 0xC1E7, 0xC170, 0xC171, 0xF4C6, 0xD0DF, 0xF4C7, +0xC172, 0xCFDB, 0xC173, 0xC174, 0xC8BA, 0xC175, 0xC176, 0xF4C8, +0xC177, 0xC178, 0xC179, 0xC17A, 0xC17B, 0xC17C, 0xC17D, 0xF4C9, +0xF4CA, 0xC17E, 0xF4CB, 0xC180, 0xC181, 0xC182, 0xC183, 0xC184, +0xD9FA, 0xB8FE, 0xC185, 0xC186, 0xE5F1, 0xD3F0, 0xC187, 0xF4E0, +0xC188, 0xCECC, 0xC189, 0xC18A, 0xC18B, 0xB3E1, 0xC18C, 0xC18D, +0xC18E, 0xC18F, 0xF1B4, 0xC190, 0xD2EE, 0xC191, 0xF4E1, 0xC192, +0xC193, 0xC194, 0xC195, 0xC196, 0xCFE8, 0xF4E2, 0xC197, 0xC198, +0xC7CC, 0xC199, 0xC19A, 0xC19B, 0xC19C, 0xC19D, 0xC19E, 0xB5D4, +0xB4E4, 0xF4E4, 0xC19F, 0xC1A0, 0xC240, 0xF4E3, 0xF4E5, 0xC241, +0xC242, 0xF4E6, 0xC243, 0xC244, 0xC245, 0xC246, 0xF4E7, 0xC247, +0xBAB2, 0xB0BF, 0xC248, 0xF4E8, 0xC249, 0xC24A, 0xC24B, 0xC24C, +0xC24D, 0xC24E, 0xC24F, 0xB7AD, 0xD2ED, 0xC250, 0xC251, 0xC252, +0xD2AB, 0xC0CF, 0xC253, 0xBFBC, 0xEBA3, 0xD5DF, 0xEAC8, 0xC254, +0xC255, 0xC256, 0xC257, 0xF1F3, 0xB6F8, 0xCBA3, 0xC258, 0xC259, +0xC4CD, 0xC25A, 0xF1E7, 0xC25B, 0xF1E8, 0xB8FB, 0xF1E9, 0xBAC4, +0xD4C5, 0xB0D2, 0xC25C, 0xC25D, 0xF1EA, 0xC25E, 0xC25F, 0xC260, +0xF1EB, 0xC261, 0xF1EC, 0xC262, 0xC263, 0xF1ED, 0xF1EE, 0xF1EF, +0xF1F1, 0xF1F0, 0xC5D5, 0xC264, 0xC265, 0xC266, 0xC267, 0xC268, +0xC269, 0xF1F2, 0xC26A, 0xB6FA, 0xC26B, 0xF1F4, 0xD2AE, 0xDEC7, +0xCBCA, 0xC26C, 0xC26D, 0xB3DC, 0xC26E, 0xB5A2, 0xC26F, 0xB9A2, +0xC270, 0xC271, 0xC4F4, 0xF1F5, 0xC272, 0xC273, 0xF1F6, 0xC274, +0xC275, 0xC276, 0xC1C4, 0xC1FB, 0xD6B0, 0xF1F7, 0xC277, 0xC278, +0xC279, 0xC27A, 0xF1F8, 0xC27B, 0xC1AA, 0xC27C, 0xC27D, 0xC27E, +0xC6B8, 0xC280, 0xBEDB, 0xC281, 0xC282, 0xC283, 0xC284, 0xC285, +0xC286, 0xC287, 0xC288, 0xC289, 0xC28A, 0xC28B, 0xC28C, 0xC28D, +0xC28E, 0xF1F9, 0xB4CF, 0xC28F, 0xC290, 0xC291, 0xC292, 0xC293, +0xC294, 0xF1FA, 0xC295, 0xC296, 0xC297, 0xC298, 0xC299, 0xC29A, +0xC29B, 0xC29C, 0xC29D, 0xC29E, 0xC29F, 0xC2A0, 0xC340, 0xEDB2, +0xEDB1, 0xC341, 0xC342, 0xCBE0, 0xD2DE, 0xC343, 0xCBC1, 0xD5D8, +0xC344, 0xC8E2, 0xC345, 0xC0DF, 0xBCA1, 0xC346, 0xC347, 0xC348, +0xC349, 0xC34A, 0xC34B, 0xEBC1, 0xC34C, 0xC34D, 0xD0A4, 0xC34E, +0xD6E2, 0xC34F, 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 0xC350, 0xEBBF, +0xB3A6, 0xB9C9, 0xD6AB, 0xC351, 0xB7F4, 0xB7CA, 0xC352, 0xC353, +0xC354, 0xBCE7, 0xB7BE, 0xEBC6, 0xC355, 0xEBC7, 0xB0B9, 0xBFCF, +0xC356, 0xEBC5, 0xD3FD, 0xC357, 0xEBC8, 0xC358, 0xC359, 0xEBC9, +0xC35A, 0xC35B, 0xB7CE, 0xC35C, 0xEBC2, 0xEBC4, 0xC9F6, 0xD6D7, +0xD5CD, 0xD0B2, 0xEBCF, 0xCEB8, 0xEBD0, 0xC35D, 0xB5A8, 0xC35E, +0xC35F, 0xC360, 0xC361, 0xC362, 0xB1B3, 0xEBD2, 0xCCA5, 0xC363, +0xC364, 0xC365, 0xC366, 0xC367, 0xC368, 0xC369, 0xC5D6, 0xEBD3, +0xC36A, 0xEBD1, 0xC5DF, 0xEBCE, 0xCAA4, 0xEBD5, 0xB0FB, 0xC36B, +0xC36C, 0xBAFA, 0xC36D, 0xC36E, 0xD8B7, 0xF1E3, 0xC36F, 0xEBCA, +0xEBCB, 0xEBCC, 0xEBCD, 0xEBD6, 0xE6C0, 0xEBD9, 0xC370, 0xBFE8, +0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC, 0xEBD8, 0xC371, 0xBDBA, 0xC372, +0xD0D8, 0xC373, 0xB0B7, 0xC374, 0xEBDD, 0xC4DC, 0xC375, 0xC376, +0xC377, 0xC378, 0xD6AC, 0xC379, 0xC37A, 0xC37B, 0xB4E0, 0xC37C, +0xC37D, 0xC2F6, 0xBCB9, 0xC37E, 0xC380, 0xEBDA, 0xEBDB, 0xD4E0, +0xC6EA, 0xC4D4, 0xEBDF, 0xC5A7, 0xD9F5, 0xC381, 0xB2B1, 0xC382, +0xEBE4, 0xC383, 0xBDC5, 0xC384, 0xC385, 0xC386, 0xEBE2, 0xC387, +0xC388, 0xC389, 0xC38A, 0xC38B, 0xC38C, 0xC38D, 0xC38E, 0xC38F, +0xC390, 0xC391, 0xC392, 0xC393, 0xEBE3, 0xC394, 0xC395, 0xB8AC, +0xC396, 0xCDD1, 0xEBE5, 0xC397, 0xC398, 0xC399, 0xEBE1, 0xC39A, +0xC1B3, 0xC39B, 0xC39C, 0xC39D, 0xC39E, 0xC39F, 0xC6A2, 0xC3A0, +0xC440, 0xC441, 0xC442, 0xC443, 0xC444, 0xC445, 0xCCF3, 0xC446, +0xEBE6, 0xC447, 0xC0B0, 0xD2B8, 0xEBE7, 0xC448, 0xC449, 0xC44A, +0xB8AF, 0xB8AD, 0xC44B, 0xEBE8, 0xC7BB, 0xCDF3, 0xC44C, 0xC44D, +0xC44E, 0xEBEA, 0xEBEB, 0xC44F, 0xC450, 0xC451, 0xC452, 0xC453, +0xEBED, 0xC454, 0xC455, 0xC456, 0xC457, 0xD0C8, 0xC458, 0xEBF2, +0xC459, 0xEBEE, 0xC45A, 0xC45B, 0xC45C, 0xEBF1, 0xC8F9, 0xC45D, +0xD1FC, 0xEBEC, 0xC45E, 0xC45F, 0xEBE9, 0xC460, 0xC461, 0xC462, +0xC463, 0xB8B9, 0xCFD9, 0xC4E5, 0xEBEF, 0xEBF0, 0xCCDA, 0xCDC8, +0xB0F2, 0xC464, 0xEBF6, 0xC465, 0xC466, 0xC467, 0xC468, 0xC469, +0xEBF5, 0xC46A, 0xB2B2, 0xC46B, 0xC46C, 0xC46D, 0xC46E, 0xB8E0, +0xC46F, 0xEBF7, 0xC470, 0xC471, 0xC472, 0xC473, 0xC474, 0xC475, +0xB1EC, 0xC476, 0xC477, 0xCCC5, 0xC4A4, 0xCFA5, 0xC478, 0xC479, +0xC47A, 0xC47B, 0xC47C, 0xEBF9, 0xC47D, 0xC47E, 0xECA2, 0xC480, +0xC5F2, 0xC481, 0xEBFA, 0xC482, 0xC483, 0xC484, 0xC485, 0xC486, +0xC487, 0xC488, 0xC489, 0xC9C5, 0xC48A, 0xC48B, 0xC48C, 0xC48D, +0xC48E, 0xC48F, 0xE2DF, 0xEBFE, 0xC490, 0xC491, 0xC492, 0xC493, +0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 0xC494, 0xC495, 0xD2DC, 0xC496, +0xC497, 0xC498, 0xEBFD, 0xC499, 0xEBFB, 0xC49A, 0xC49B, 0xC49C, +0xC49D, 0xC49E, 0xC49F, 0xC4A0, 0xC540, 0xC541, 0xC542, 0xC543, +0xC544, 0xC545, 0xC546, 0xC547, 0xC548, 0xC549, 0xC54A, 0xC54B, +0xC54C, 0xC54D, 0xC54E, 0xB3BC, 0xC54F, 0xC550, 0xC551, 0xEAB0, +0xC552, 0xC553, 0xD7D4, 0xC554, 0xF4AB, 0xB3F4, 0xC555, 0xC556, +0xC557, 0xC558, 0xC559, 0xD6C1, 0xD6C2, 0xC55A, 0xC55B, 0xC55C, +0xC55D, 0xC55E, 0xC55F, 0xD5E9, 0xBECA, 0xC560, 0xF4A7, 0xC561, +0xD2A8, 0xF4A8, 0xF4A9, 0xC562, 0xF4AA, 0xBECB, 0xD3DF, 0xC563, +0xC564, 0xC565, 0xC566, 0xC567, 0xC9E0, 0xC9E1, 0xC568, 0xC569, +0xF3C2, 0xC56A, 0xCAE6, 0xC56B, 0xCCF2, 0xC56C, 0xC56D, 0xC56E, +0xC56F, 0xC570, 0xC571, 0xE2B6, 0xCBB4, 0xC572, 0xCEE8, 0xD6DB, +0xC573, 0xF4AD, 0xF4AE, 0xF4AF, 0xC574, 0xC575, 0xC576, 0xC577, +0xF4B2, 0xC578, 0xBABD, 0xF4B3, 0xB0E3, 0xF4B0, 0xC579, 0xF4B1, +0xBDA2, 0xB2D5, 0xC57A, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF, +0xF4B4, 0xB4AC, 0xC57B, 0xF4B5, 0xC57C, 0xC57D, 0xF4B8, 0xC57E, +0xC580, 0xC581, 0xC582, 0xC583, 0xF4B9, 0xC584, 0xC585, 0xCDA7, +0xC586, 0xF4BA, 0xC587, 0xF4BB, 0xC588, 0xC589, 0xC58A, 0xF4BC, +0xC58B, 0xC58C, 0xC58D, 0xC58E, 0xC58F, 0xC590, 0xC591, 0xC592, +0xCBD2, 0xC593, 0xF4BD, 0xC594, 0xC595, 0xC596, 0xC597, 0xF4BE, +0xC598, 0xC599, 0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC59E, 0xC59F, +0xF4BF, 0xC5A0, 0xC640, 0xC641, 0xC642, 0xC643, 0xF4DE, 0xC1BC, +0xBCE8, 0xC644, 0xC9AB, 0xD1DE, 0xE5F5, 0xC645, 0xC646, 0xC647, +0xC648, 0xDCB3, 0xD2D5, 0xC649, 0xC64A, 0xDCB4, 0xB0AC, 0xDCB5, +0xC64B, 0xC64C, 0xBDDA, 0xC64D, 0xDCB9, 0xC64E, 0xC64F, 0xC650, +0xD8C2, 0xC651, 0xDCB7, 0xD3F3, 0xC652, 0xC9D6, 0xDCBA, 0xDCB6, +0xC653, 0xDCBB, 0xC3A2, 0xC654, 0xC655, 0xC656, 0xC657, 0xDCBC, +0xDCC5, 0xDCBD, 0xC658, 0xC659, 0xCEDF, 0xD6A5, 0xC65A, 0xDCCF, +0xC65B, 0xDCCD, 0xC65C, 0xC65D, 0xDCD2, 0xBDE6, 0xC2AB, 0xC65E, +0xDCB8, 0xDCCB, 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE, +0xDCC1, 0xBBA8, 0xC65F, 0xB7BC, 0xDCCC, 0xC660, 0xC661, 0xDCC6, +0xDCBF, 0xC7DB, 0xC662, 0xC663, 0xC664, 0xD1BF, 0xDCC0, 0xC665, +0xC666, 0xDCCA, 0xC667, 0xC668, 0xDCD0, 0xC669, 0xC66A, 0xCEAD, +0xDCC2, 0xC66B, 0xDCC3, 0xDCC8, 0xDCC9, 0xB2D4, 0xDCD1, 0xCBD5, +0xC66C, 0xD4B7, 0xDCDB, 0xDCDF, 0xCCA6, 0xDCE6, 0xC66D, 0xC3E7, +0xDCDC, 0xC66E, 0xC66F, 0xBFC1, 0xDCD9, 0xC670, 0xB0FA, 0xB9B6, +0xDCE5, 0xDCD3, 0xC671, 0xDCC4, 0xDCD6, 0xC8F4, 0xBFE0, 0xC672, +0xC673, 0xC674, 0xC675, 0xC9BB, 0xC676, 0xC677, 0xC678, 0xB1BD, +0xC679, 0xD3A2, 0xC67A, 0xC67B, 0xDCDA, 0xC67C, 0xC67D, 0xDCD5, +0xC67E, 0xC6BB, 0xC680, 0xDCDE, 0xC681, 0xC682, 0xC683, 0xC684, +0xC685, 0xD7C2, 0xC3AF, 0xB7B6, 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, +0xDCEB, 0xDCD4, 0xC686, 0xC687, 0xDCDD, 0xC688, 0xBEA5, 0xDCD7, +0xC689, 0xDCE0, 0xC68A, 0xC68B, 0xDCE3, 0xDCE4, 0xC68C, 0xDCF8, +0xC68D, 0xC68E, 0xDCE1, 0xDDA2, 0xDCE7, 0xC68F, 0xC690, 0xC691, +0xC692, 0xC693, 0xC694, 0xC695, 0xC696, 0xC697, 0xC698, 0xBCEB, +0xB4C4, 0xC699, 0xC69A, 0xC3A3, 0xB2E7, 0xDCFA, 0xC69B, 0xDCF2, +0xC69C, 0xDCEF, 0xC69D, 0xDCFC, 0xDCEE, 0xD2F0, 0xB2E8, 0xC69E, +0xC8D7, 0xC8E3, 0xDCFB, 0xC69F, 0xDCED, 0xC6A0, 0xC740, 0xC741, +0xDCF7, 0xC742, 0xC743, 0xDCF5, 0xC744, 0xC745, 0xBEA3, 0xDCF4, +0xC746, 0xB2DD, 0xC747, 0xC748, 0xC749, 0xC74A, 0xC74B, 0xDCF3, +0xBCF6, 0xDCE8, 0xBBC4, 0xC74C, 0xC0F3, 0xC74D, 0xC74E, 0xC74F, +0xC750, 0xC751, 0xBCD4, 0xDCE9, 0xDCEA, 0xC752, 0xDCF1, 0xDCF6, +0xDCF9, 0xB5B4, 0xC753, 0xC8D9, 0xBBE7, 0xDCFE, 0xDCFD, 0xD3AB, +0xDDA1, 0xDDA3, 0xDDA5, 0xD2F1, 0xDDA4, 0xDDA6, 0xDDA7, 0xD2A9, +0xC754, 0xC755, 0xC756, 0xC757, 0xC758, 0xC759, 0xC75A, 0xBAC9, +0xDDA9, 0xC75B, 0xC75C, 0xDDB6, 0xDDB1, 0xDDB4, 0xC75D, 0xC75E, +0xC75F, 0xC760, 0xC761, 0xC762, 0xC763, 0xDDB0, 0xC6CE, 0xC764, +0xC765, 0xC0F2, 0xC766, 0xC767, 0xC768, 0xC769, 0xC9AF, 0xC76A, +0xC76B, 0xC76C, 0xDCEC, 0xDDAE, 0xC76D, 0xC76E, 0xC76F, 0xC770, +0xDDB7, 0xC771, 0xC772, 0xDCF0, 0xDDAF, 0xC773, 0xDDB8, 0xC774, +0xDDAC, 0xC775, 0xC776, 0xC777, 0xC778, 0xC779, 0xC77A, 0xC77B, +0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA, 0xC77C, 0xC77D, 0xC77E, 0xC780, +0xDDA8, 0xC0B3, 0xC1AB, 0xDDAA, 0xDDAB, 0xC781, 0xDDB2, 0xBBF1, +0xDDB5, 0xD3A8, 0xDDBA, 0xC782, 0xDDBB, 0xC3A7, 0xC783, 0xC784, +0xDDD2, 0xDDBC, 0xC785, 0xC786, 0xC787, 0xDDD1, 0xC788, 0xB9BD, +0xC789, 0xC78A, 0xBED5, 0xC78B, 0xBEFA, 0xC78C, 0xC78D, 0xBACA, +0xC78E, 0xC78F, 0xC790, 0xC791, 0xDDCA, 0xC792, 0xDDC5, 0xC793, +0xDDBF, 0xC794, 0xC795, 0xC796, 0xB2CB, 0xDDC3, 0xC797, 0xDDCB, +0xB2A4, 0xDDD5, 0xC798, 0xC799, 0xC79A, 0xDDBE, 0xC79B, 0xC79C, +0xC79D, 0xC6D0, 0xDDD0, 0xC79E, 0xC79F, 0xC7A0, 0xC840, 0xC841, +0xDDD4, 0xC1E2, 0xB7C6, 0xC842, 0xC843, 0xC844, 0xC845, 0xC846, +0xDDCE, 0xDDCF, 0xC847, 0xC848, 0xC849, 0xDDC4, 0xC84A, 0xC84B, +0xC84C, 0xDDBD, 0xC84D, 0xDDCD, 0xCCD1, 0xC84E, 0xDDC9, 0xC84F, +0xC850, 0xC851, 0xC852, 0xDDC2, 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, +0xC853, 0xDDC8, 0xC854, 0xC855, 0xC856, 0xC857, 0xC858, 0xC859, +0xDDC1, 0xC85A, 0xC85B, 0xC85C, 0xDDC6, 0xC2DC, 0xC85D, 0xC85E, +0xC85F, 0xC860, 0xC861, 0xC862, 0xD3A9, 0xD3AA, 0xDDD3, 0xCFF4, +0xC8F8, 0xC863, 0xC864, 0xC865, 0xC866, 0xC867, 0xC868, 0xC869, +0xC86A, 0xDDE6, 0xC86B, 0xC86C, 0xC86D, 0xC86E, 0xC86F, 0xC870, +0xDDC7, 0xC871, 0xC872, 0xC873, 0xDDE0, 0xC2E4, 0xC874, 0xC875, +0xC876, 0xC877, 0xC878, 0xC879, 0xC87A, 0xC87B, 0xDDE1, 0xC87C, +0xC87D, 0xC87E, 0xC880, 0xC881, 0xC882, 0xC883, 0xC884, 0xC885, +0xC886, 0xDDD7, 0xC887, 0xC888, 0xC889, 0xC88A, 0xC88B, 0xD6F8, +0xC88C, 0xDDD9, 0xDDD8, 0xB8F0, 0xDDD6, 0xC88D, 0xC88E, 0xC88F, +0xC890, 0xC6CF, 0xC891, 0xB6AD, 0xC892, 0xC893, 0xC894, 0xC895, +0xC896, 0xDDE2, 0xC897, 0xBAF9, 0xD4E1, 0xDDE7, 0xC898, 0xC899, +0xC89A, 0xB4D0, 0xC89B, 0xDDDA, 0xC89C, 0xBFFB, 0xDDE3, 0xC89D, +0xDDDF, 0xC89E, 0xDDDD, 0xC89F, 0xC8A0, 0xC940, 0xC941, 0xC942, +0xC943, 0xC944, 0xB5D9, 0xC945, 0xC946, 0xC947, 0xC948, 0xDDDB, +0xDDDC, 0xDDDE, 0xC949, 0xBDAF, 0xDDE4, 0xC94A, 0xDDE5, 0xC94B, +0xC94C, 0xC94D, 0xC94E, 0xC94F, 0xC950, 0xC951, 0xC952, 0xDDF5, +0xC953, 0xC3C9, 0xC954, 0xC955, 0xCBE2, 0xC956, 0xC957, 0xC958, +0xC959, 0xDDF2, 0xC95A, 0xC95B, 0xC95C, 0xC95D, 0xC95E, 0xC95F, +0xC960, 0xC961, 0xC962, 0xC963, 0xC964, 0xC965, 0xC966, 0xD8E1, +0xC967, 0xC968, 0xC6D1, 0xC969, 0xDDF4, 0xC96A, 0xC96B, 0xC96C, +0xD5F4, 0xDDF3, 0xDDF0, 0xC96D, 0xC96E, 0xDDEC, 0xC96F, 0xDDEF, +0xC970, 0xDDE8, 0xC971, 0xC972, 0xD0EE, 0xC973, 0xC974, 0xC975, +0xC976, 0xC8D8, 0xDDEE, 0xC977, 0xC978, 0xDDE9, 0xC979, 0xC97A, +0xDDEA, 0xCBF2, 0xC97B, 0xDDED, 0xC97C, 0xC97D, 0xB1CD, 0xC97E, +0xC980, 0xC981, 0xC982, 0xC983, 0xC984, 0xC0B6, 0xC985, 0xBCBB, +0xDDF1, 0xC986, 0xC987, 0xDDF7, 0xC988, 0xDDF6, 0xDDEB, 0xC989, +0xC98A, 0xC98B, 0xC98C, 0xC98D, 0xC5EE, 0xC98E, 0xC98F, 0xC990, +0xDDFB, 0xC991, 0xC992, 0xC993, 0xC994, 0xC995, 0xC996, 0xC997, +0xC998, 0xC999, 0xC99A, 0xC99B, 0xDEA4, 0xC99C, 0xC99D, 0xDEA3, +0xC99E, 0xC99F, 0xC9A0, 0xCA40, 0xCA41, 0xCA42, 0xCA43, 0xCA44, +0xCA45, 0xCA46, 0xCA47, 0xCA48, 0xDDF8, 0xCA49, 0xCA4A, 0xCA4B, +0xCA4C, 0xC3EF, 0xCA4D, 0xC2FB, 0xCA4E, 0xCA4F, 0xCA50, 0xD5E1, +0xCA51, 0xCA52, 0xCEB5, 0xCA53, 0xCA54, 0xCA55, 0xCA56, 0xDDFD, +0xCA57, 0xB2CC, 0xCA58, 0xCA59, 0xCA5A, 0xCA5B, 0xCA5C, 0xCA5D, +0xCA5E, 0xCA5F, 0xCA60, 0xC4E8, 0xCADF, 0xCA61, 0xCA62, 0xCA63, +0xCA64, 0xCA65, 0xCA66, 0xCA67, 0xCA68, 0xCA69, 0xCA6A, 0xC7BE, +0xDDFA, 0xDDFC, 0xDDFE, 0xDEA2, 0xB0AA, 0xB1CE, 0xCA6B, 0xCA6C, +0xCA6D, 0xCA6E, 0xCA6F, 0xDEAC, 0xCA70, 0xCA71, 0xCA72, 0xCA73, +0xDEA6, 0xBDB6, 0xC8EF, 0xCA74, 0xCA75, 0xCA76, 0xCA77, 0xCA78, +0xCA79, 0xCA7A, 0xCA7B, 0xCA7C, 0xCA7D, 0xCA7E, 0xDEA1, 0xCA80, +0xCA81, 0xDEA5, 0xCA82, 0xCA83, 0xCA84, 0xCA85, 0xDEA9, 0xCA86, +0xCA87, 0xCA88, 0xCA89, 0xCA8A, 0xDEA8, 0xCA8B, 0xCA8C, 0xCA8D, +0xDEA7, 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA92, 0xCA93, 0xCA94, +0xCA95, 0xCA96, 0xDEAD, 0xCA97, 0xD4CC, 0xCA98, 0xCA99, 0xCA9A, +0xCA9B, 0xDEB3, 0xDEAA, 0xDEAE, 0xCA9C, 0xCA9D, 0xC0D9, 0xCA9E, +0xCA9F, 0xCAA0, 0xCB40, 0xCB41, 0xB1A1, 0xDEB6, 0xCB42, 0xDEB1, +0xCB43, 0xCB44, 0xCB45, 0xCB46, 0xCB47, 0xCB48, 0xCB49, 0xDEB2, +0xCB4A, 0xCB4B, 0xCB4C, 0xCB4D, 0xCB4E, 0xCB4F, 0xCB50, 0xCB51, +0xCB52, 0xCB53, 0xCB54, 0xD1A6, 0xDEB5, 0xCB55, 0xCB56, 0xCB57, +0xCB58, 0xCB59, 0xCB5A, 0xCB5B, 0xDEAF, 0xCB5C, 0xCB5D, 0xCB5E, +0xDEB0, 0xCB5F, 0xD0BD, 0xCB60, 0xCB61, 0xCB62, 0xDEB4, 0xCAED, +0xDEB9, 0xCB63, 0xCB64, 0xCB65, 0xCB66, 0xCB67, 0xCB68, 0xDEB8, +0xCB69, 0xDEB7, 0xCB6A, 0xCB6B, 0xCB6C, 0xCB6D, 0xCB6E, 0xCB6F, +0xCB70, 0xDEBB, 0xCB71, 0xCB72, 0xCB73, 0xCB74, 0xCB75, 0xCB76, +0xCB77, 0xBDE5, 0xCB78, 0xCB79, 0xCB7A, 0xCB7B, 0xCB7C, 0xB2D8, +0xC3EA, 0xCB7D, 0xCB7E, 0xDEBA, 0xCB80, 0xC5BA, 0xCB81, 0xCB82, +0xCB83, 0xCB84, 0xCB85, 0xCB86, 0xDEBC, 0xCB87, 0xCB88, 0xCB89, +0xCB8A, 0xCB8B, 0xCB8C, 0xCB8D, 0xCCD9, 0xCB8E, 0xCB8F, 0xCB90, +0xCB91, 0xB7AA, 0xCB92, 0xCB93, 0xCB94, 0xCB95, 0xCB96, 0xCB97, +0xCB98, 0xCB99, 0xCB9A, 0xCB9B, 0xCB9C, 0xCB9D, 0xCB9E, 0xCB9F, +0xCBA0, 0xCC40, 0xCC41, 0xD4E5, 0xCC42, 0xCC43, 0xCC44, 0xDEBD, +0xCC45, 0xCC46, 0xCC47, 0xCC48, 0xCC49, 0xDEBF, 0xCC4A, 0xCC4B, +0xCC4C, 0xCC4D, 0xCC4E, 0xCC4F, 0xCC50, 0xCC51, 0xCC52, 0xCC53, +0xCC54, 0xC4A2, 0xCC55, 0xCC56, 0xCC57, 0xCC58, 0xDEC1, 0xCC59, +0xCC5A, 0xCC5B, 0xCC5C, 0xCC5D, 0xCC5E, 0xCC5F, 0xCC60, 0xCC61, +0xCC62, 0xCC63, 0xCC64, 0xCC65, 0xCC66, 0xCC67, 0xCC68, 0xDEBE, +0xCC69, 0xDEC0, 0xCC6A, 0xCC6B, 0xCC6C, 0xCC6D, 0xCC6E, 0xCC6F, +0xCC70, 0xCC71, 0xCC72, 0xCC73, 0xCC74, 0xCC75, 0xCC76, 0xCC77, +0xD5BA, 0xCC78, 0xCC79, 0xCC7A, 0xDEC2, 0xCC7B, 0xCC7C, 0xCC7D, +0xCC7E, 0xCC80, 0xCC81, 0xCC82, 0xCC83, 0xCC84, 0xCC85, 0xCC86, +0xCC87, 0xCC88, 0xCC89, 0xCC8A, 0xCC8B, 0xF2AE, 0xBBA2, 0xC2B2, +0xC5B0, 0xC2C7, 0xCC8C, 0xCC8D, 0xF2AF, 0xCC8E, 0xCC8F, 0xCC90, +0xCC91, 0xCC92, 0xD0E9, 0xCC93, 0xCC94, 0xCC95, 0xD3DD, 0xCC96, +0xCC97, 0xCC98, 0xEBBD, 0xCC99, 0xCC9A, 0xCC9B, 0xCC9C, 0xCC9D, +0xCC9E, 0xCC9F, 0xCCA0, 0xB3E6, 0xF2B0, 0xCD40, 0xF2B1, 0xCD41, +0xCD42, 0xCAAD, 0xCD43, 0xCD44, 0xCD45, 0xCD46, 0xCD47, 0xCD48, +0xCD49, 0xBAE7, 0xF2B3, 0xF2B5, 0xF2B4, 0xCBE4, 0xCFBA, 0xF2B2, +0xCAB4, 0xD2CF, 0xC2EC, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, 0xCD4E, +0xCD4F, 0xCD50, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7, 0xCD51, 0xCD52, +0xCD53, 0xCD54, 0xCD55, 0xF2BE, 0xCD56, 0xB2CF, 0xCD57, 0xCD58, +0xCD59, 0xCD5A, 0xCD5B, 0xCD5C, 0xD1C1, 0xF2BA, 0xCD5D, 0xCD5E, +0xCD5F, 0xCD60, 0xCD61, 0xF2BC, 0xD4E9, 0xCD62, 0xCD63, 0xF2BB, +0xF2B6, 0xF2BF, 0xF2BD, 0xCD64, 0xF2B9, 0xCD65, 0xCD66, 0xF2C7, +0xF2C4, 0xF2C6, 0xCD67, 0xCD68, 0xF2CA, 0xF2C2, 0xF2C0, 0xCD69, +0xCD6A, 0xCD6B, 0xF2C5, 0xCD6C, 0xCD6D, 0xCD6E, 0xCD6F, 0xCD70, +0xD6FB, 0xCD71, 0xCD72, 0xCD73, 0xF2C1, 0xCD74, 0xC7F9, 0xC9DF, +0xCD75, 0xF2C8, 0xB9C6, 0xB5B0, 0xCD76, 0xCD77, 0xF2C3, 0xF2C9, +0xF2D0, 0xF2D6, 0xCD78, 0xCD79, 0xBBD7, 0xCD7A, 0xCD7B, 0xCD7C, +0xF2D5, 0xCDDC, 0xCD7D, 0xD6EB, 0xCD7E, 0xCD80, 0xF2D2, 0xF2D4, +0xCD81, 0xCD82, 0xCD83, 0xCD84, 0xB8F2, 0xCD85, 0xCD86, 0xCD87, +0xCD88, 0xF2CB, 0xCD89, 0xCD8A, 0xCD8B, 0xF2CE, 0xC2F9, 0xCD8C, +0xD5DD, 0xF2CC, 0xF2CD, 0xF2CF, 0xF2D3, 0xCD8D, 0xCD8E, 0xCD8F, +0xF2D9, 0xD3BC, 0xCD90, 0xCD91, 0xCD92, 0xCD93, 0xB6EA, 0xCD94, +0xCAF1, 0xCD95, 0xB7E4, 0xF2D7, 0xCD96, 0xCD97, 0xCD98, 0xF2D8, +0xF2DA, 0xF2DD, 0xF2DB, 0xCD99, 0xCD9A, 0xF2DC, 0xCD9B, 0xCD9C, +0xCD9D, 0xCD9E, 0xD1D1, 0xF2D1, 0xCD9F, 0xCDC9, 0xCDA0, 0xCECF, +0xD6A9, 0xCE40, 0xF2E3, 0xCE41, 0xC3DB, 0xCE42, 0xF2E0, 0xCE43, +0xCE44, 0xC0AF, 0xF2EC, 0xF2DE, 0xCE45, 0xF2E1, 0xCE46, 0xCE47, +0xCE48, 0xF2E8, 0xCE49, 0xCE4A, 0xCE4B, 0xCE4C, 0xF2E2, 0xCE4D, +0xCE4E, 0xF2E7, 0xCE4F, 0xCE50, 0xF2E6, 0xCE51, 0xCE52, 0xF2E9, +0xCE53, 0xCE54, 0xCE55, 0xF2DF, 0xCE56, 0xCE57, 0xF2E4, 0xF2EA, +0xCE58, 0xCE59, 0xCE5A, 0xCE5B, 0xCE5C, 0xCE5D, 0xCE5E, 0xD3AC, +0xF2E5, 0xB2F5, 0xCE5F, 0xCE60, 0xF2F2, 0xCE61, 0xD0AB, 0xCE62, +0xCE63, 0xCE64, 0xCE65, 0xF2F5, 0xCE66, 0xCE67, 0xCE68, 0xBBC8, +0xCE69, 0xF2F9, 0xCE6A, 0xCE6B, 0xCE6C, 0xCE6D, 0xCE6E, 0xCE6F, +0xF2F0, 0xCE70, 0xCE71, 0xF2F6, 0xF2F8, 0xF2FA, 0xCE72, 0xCE73, +0xCE74, 0xCE75, 0xCE76, 0xCE77, 0xCE78, 0xCE79, 0xF2F3, 0xCE7A, +0xF2F1, 0xCE7B, 0xCE7C, 0xCE7D, 0xBAFB, 0xCE7E, 0xB5FB, 0xCE80, +0xCE81, 0xCE82, 0xCE83, 0xF2EF, 0xF2F7, 0xF2ED, 0xF2EE, 0xCE84, +0xCE85, 0xCE86, 0xF2EB, 0xF3A6, 0xCE87, 0xF3A3, 0xCE88, 0xCE89, +0xF3A2, 0xCE8A, 0xCE8B, 0xF2F4, 0xCE8C, 0xC8DA, 0xCE8D, 0xCE8E, +0xCE8F, 0xCE90, 0xCE91, 0xF2FB, 0xCE92, 0xCE93, 0xCE94, 0xF3A5, +0xCE95, 0xCE96, 0xCE97, 0xCE98, 0xCE99, 0xCE9A, 0xCE9B, 0xC3F8, +0xCE9C, 0xCE9D, 0xCE9E, 0xCE9F, 0xCEA0, 0xCF40, 0xCF41, 0xCF42, +0xF2FD, 0xCF43, 0xCF44, 0xF3A7, 0xF3A9, 0xF3A4, 0xCF45, 0xF2FC, +0xCF46, 0xCF47, 0xCF48, 0xF3AB, 0xCF49, 0xF3AA, 0xCF4A, 0xCF4B, +0xCF4C, 0xCF4D, 0xC2DD, 0xCF4E, 0xCF4F, 0xF3AE, 0xCF50, 0xCF51, +0xF3B0, 0xCF52, 0xCF53, 0xCF54, 0xCF55, 0xCF56, 0xF3A1, 0xCF57, +0xCF58, 0xCF59, 0xF3B1, 0xF3AC, 0xCF5A, 0xCF5B, 0xCF5C, 0xCF5D, +0xCF5E, 0xF3AF, 0xF2FE, 0xF3AD, 0xCF5F, 0xCF60, 0xCF61, 0xCF62, +0xCF63, 0xCF64, 0xCF65, 0xF3B2, 0xCF66, 0xCF67, 0xCF68, 0xCF69, +0xF3B4, 0xCF6A, 0xCF6B, 0xCF6C, 0xCF6D, 0xF3A8, 0xCF6E, 0xCF6F, +0xCF70, 0xCF71, 0xF3B3, 0xCF72, 0xCF73, 0xCF74, 0xF3B5, 0xCF75, +0xCF76, 0xCF77, 0xCF78, 0xCF79, 0xCF7A, 0xCF7B, 0xCF7C, 0xCF7D, +0xCF7E, 0xD0B7, 0xCF80, 0xCF81, 0xCF82, 0xCF83, 0xF3B8, 0xCF84, +0xCF85, 0xCF86, 0xCF87, 0xD9F9, 0xCF88, 0xCF89, 0xCF8A, 0xCF8B, +0xCF8C, 0xCF8D, 0xF3B9, 0xCF8E, 0xCF8F, 0xCF90, 0xCF91, 0xCF92, +0xCF93, 0xCF94, 0xCF95, 0xF3B7, 0xCF96, 0xC8E4, 0xF3B6, 0xCF97, +0xCF98, 0xCF99, 0xCF9A, 0xF3BA, 0xCF9B, 0xCF9C, 0xCF9D, 0xCF9E, +0xCF9F, 0xF3BB, 0xB4C0, 0xCFA0, 0xD040, 0xD041, 0xD042, 0xD043, +0xD044, 0xD045, 0xD046, 0xD047, 0xD048, 0xD049, 0xD04A, 0xD04B, +0xD04C, 0xD04D, 0xEEC3, 0xD04E, 0xD04F, 0xD050, 0xD051, 0xD052, +0xD053, 0xF3BC, 0xD054, 0xD055, 0xF3BD, 0xD056, 0xD057, 0xD058, +0xD1AA, 0xD059, 0xD05A, 0xD05B, 0xF4AC, 0xD0C6, 0xD05C, 0xD05D, +0xD05E, 0xD05F, 0xD060, 0xD061, 0xD0D0, 0xD1DC, 0xD062, 0xD063, +0xD064, 0xD065, 0xD066, 0xD067, 0xCFCE, 0xD068, 0xD069, 0xBDD6, +0xD06A, 0xD1C3, 0xD06B, 0xD06C, 0xD06D, 0xD06E, 0xD06F, 0xD070, +0xD071, 0xBAE2, 0xE1E9, 0xD2C2, 0xF1C2, 0xB2B9, 0xD072, 0xD073, +0xB1ED, 0xF1C3, 0xD074, 0xC9C0, 0xB3C4, 0xD075, 0xD9F2, 0xD076, +0xCBA5, 0xD077, 0xF1C4, 0xD078, 0xD079, 0xD07A, 0xD07B, 0xD6D4, +0xD07C, 0xD07D, 0xD07E, 0xD080, 0xD081, 0xF1C5, 0xF4C0, 0xF1C6, +0xD082, 0xD4AC, 0xF1C7, 0xD083, 0xB0C0, 0xF4C1, 0xD084, 0xD085, +0xF4C2, 0xD086, 0xD087, 0xB4FC, 0xD088, 0xC5DB, 0xD089, 0xD08A, +0xD08B, 0xD08C, 0xCCBB, 0xD08D, 0xD08E, 0xD08F, 0xD0E4, 0xD090, +0xD091, 0xD092, 0xD093, 0xD094, 0xCDE0, 0xD095, 0xD096, 0xD097, +0xD098, 0xD099, 0xF1C8, 0xD09A, 0xD9F3, 0xD09B, 0xD09C, 0xD09D, +0xD09E, 0xD09F, 0xD0A0, 0xB1BB, 0xD140, 0xCFAE, 0xD141, 0xD142, +0xD143, 0xB8A4, 0xD144, 0xD145, 0xD146, 0xD147, 0xD148, 0xF1CA, +0xD149, 0xD14A, 0xD14B, 0xD14C, 0xF1CB, 0xD14D, 0xD14E, 0xD14F, +0xD150, 0xB2C3, 0xC1D1, 0xD151, 0xD152, 0xD7B0, 0xF1C9, 0xD153, +0xD154, 0xF1CC, 0xD155, 0xD156, 0xD157, 0xD158, 0xF1CE, 0xD159, +0xD15A, 0xD15B, 0xD9F6, 0xD15C, 0xD2E1, 0xD4A3, 0xD15D, 0xD15E, +0xF4C3, 0xC8B9, 0xD15F, 0xD160, 0xD161, 0xD162, 0xD163, 0xF4C4, +0xD164, 0xD165, 0xF1CD, 0xF1CF, 0xBFE3, 0xF1D0, 0xD166, 0xD167, +0xF1D4, 0xD168, 0xD169, 0xD16A, 0xD16B, 0xD16C, 0xD16D, 0xD16E, +0xF1D6, 0xF1D1, 0xD16F, 0xC9D1, 0xC5E1, 0xD170, 0xD171, 0xD172, +0xC2E3, 0xB9FC, 0xD173, 0xD174, 0xF1D3, 0xD175, 0xF1D5, 0xD176, +0xD177, 0xD178, 0xB9D3, 0xD179, 0xD17A, 0xD17B, 0xD17C, 0xD17D, +0xD17E, 0xD180, 0xF1DB, 0xD181, 0xD182, 0xD183, 0xD184, 0xD185, +0xBAD6, 0xD186, 0xB0FD, 0xF1D9, 0xD187, 0xD188, 0xD189, 0xD18A, +0xD18B, 0xF1D8, 0xF1D2, 0xF1DA, 0xD18C, 0xD18D, 0xD18E, 0xD18F, +0xD190, 0xF1D7, 0xD191, 0xD192, 0xD193, 0xC8EC, 0xD194, 0xD195, +0xD196, 0xD197, 0xCDCA, 0xF1DD, 0xD198, 0xD199, 0xD19A, 0xD19B, +0xE5BD, 0xD19C, 0xD19D, 0xD19E, 0xF1DC, 0xD19F, 0xF1DE, 0xD1A0, +0xD240, 0xD241, 0xD242, 0xD243, 0xD244, 0xD245, 0xD246, 0xD247, +0xD248, 0xF1DF, 0xD249, 0xD24A, 0xCFE5, 0xD24B, 0xD24C, 0xD24D, +0xD24E, 0xD24F, 0xD250, 0xD251, 0xD252, 0xD253, 0xD254, 0xD255, +0xD256, 0xD257, 0xD258, 0xD259, 0xD25A, 0xD25B, 0xD25C, 0xD25D, +0xD25E, 0xD25F, 0xD260, 0xD261, 0xD262, 0xD263, 0xF4C5, 0xBDF3, +0xD264, 0xD265, 0xD266, 0xD267, 0xD268, 0xD269, 0xF1E0, 0xD26A, +0xD26B, 0xD26C, 0xD26D, 0xD26E, 0xD26F, 0xD270, 0xD271, 0xD272, +0xD273, 0xD274, 0xD275, 0xD276, 0xD277, 0xD278, 0xD279, 0xD27A, +0xD27B, 0xD27C, 0xD27D, 0xF1E1, 0xD27E, 0xD280, 0xD281, 0xCEF7, +0xD282, 0xD2AA, 0xD283, 0xF1FB, 0xD284, 0xD285, 0xB8B2, 0xD286, +0xD287, 0xD288, 0xD289, 0xD28A, 0xD28B, 0xD28C, 0xD28D, 0xD28E, +0xD28F, 0xD290, 0xD291, 0xD292, 0xD293, 0xD294, 0xD295, 0xD296, +0xD297, 0xD298, 0xD299, 0xD29A, 0xD29B, 0xD29C, 0xD29D, 0xD29E, +0xD29F, 0xD2A0, 0xD340, 0xD341, 0xD342, 0xD343, 0xD344, 0xD345, +0xD346, 0xD347, 0xD348, 0xD349, 0xD34A, 0xD34B, 0xD34C, 0xD34D, +0xD34E, 0xD34F, 0xD350, 0xD351, 0xD352, 0xD353, 0xD354, 0xD355, +0xD356, 0xD357, 0xD358, 0xD359, 0xD35A, 0xD35B, 0xD35C, 0xD35D, +0xD35E, 0xBCFB, 0xB9DB, 0xD35F, 0xB9E6, 0xC3D9, 0xCAD3, 0xEAE8, +0xC0C0, 0xBEF5, 0xEAE9, 0xEAEA, 0xEAEB, 0xD360, 0xEAEC, 0xEAED, +0xEAEE, 0xEAEF, 0xBDC7, 0xD361, 0xD362, 0xD363, 0xF5FB, 0xD364, +0xD365, 0xD366, 0xF5FD, 0xD367, 0xF5FE, 0xD368, 0xF5FC, 0xD369, +0xD36A, 0xD36B, 0xD36C, 0xBDE2, 0xD36D, 0xF6A1, 0xB4A5, 0xD36E, +0xD36F, 0xD370, 0xD371, 0xF6A2, 0xD372, 0xD373, 0xD374, 0xF6A3, +0xD375, 0xD376, 0xD377, 0xECB2, 0xD378, 0xD379, 0xD37A, 0xD37B, +0xD37C, 0xD37D, 0xD37E, 0xD380, 0xD381, 0xD382, 0xD383, 0xD384, +0xD1D4, 0xD385, 0xD386, 0xD387, 0xD388, 0xD389, 0xD38A, 0xD9EA, +0xD38B, 0xD38C, 0xD38D, 0xD38E, 0xD38F, 0xD390, 0xD391, 0xD392, +0xD393, 0xD394, 0xD395, 0xD396, 0xD397, 0xD398, 0xD399, 0xD39A, +0xD39B, 0xD39C, 0xD39D, 0xD39E, 0xD39F, 0xD3A0, 0xD440, 0xD441, +0xD442, 0xD443, 0xD444, 0xD445, 0xD446, 0xD447, 0xD448, 0xD449, +0xD44A, 0xD44B, 0xD44C, 0xD44D, 0xD44E, 0xD44F, 0xD450, 0xD451, +0xD452, 0xD453, 0xD454, 0xD455, 0xD456, 0xD457, 0xD458, 0xD459, +0xD45A, 0xD45B, 0xD45C, 0xD45D, 0xD45E, 0xD45F, 0xF6A4, 0xD460, +0xD461, 0xD462, 0xD463, 0xD464, 0xD465, 0xD466, 0xD467, 0xD468, +0xEEBA, 0xD469, 0xD46A, 0xD46B, 0xD46C, 0xD46D, 0xD46E, 0xD46F, +0xD470, 0xD471, 0xD472, 0xD473, 0xD474, 0xD475, 0xD476, 0xD477, +0xD478, 0xD479, 0xD47A, 0xD47B, 0xD47C, 0xD47D, 0xD47E, 0xD480, +0xD481, 0xD482, 0xD483, 0xD484, 0xD485, 0xD486, 0xD487, 0xD488, +0xD489, 0xD48A, 0xD48B, 0xD48C, 0xD48D, 0xD48E, 0xD48F, 0xD490, +0xD491, 0xD492, 0xD493, 0xD494, 0xD495, 0xD496, 0xD497, 0xD498, +0xD499, 0xD5B2, 0xD49A, 0xD49B, 0xD49C, 0xD49D, 0xD49E, 0xD49F, +0xD4A0, 0xD540, 0xD541, 0xD542, 0xD543, 0xD544, 0xD545, 0xD546, +0xD547, 0xD3FE, 0xCCDC, 0xD548, 0xD549, 0xD54A, 0xD54B, 0xD54C, +0xD54D, 0xD54E, 0xD54F, 0xCAC4, 0xD550, 0xD551, 0xD552, 0xD553, +0xD554, 0xD555, 0xD556, 0xD557, 0xD558, 0xD559, 0xD55A, 0xD55B, +0xD55C, 0xD55D, 0xD55E, 0xD55F, 0xD560, 0xD561, 0xD562, 0xD563, +0xD564, 0xD565, 0xD566, 0xD567, 0xD568, 0xD569, 0xD56A, 0xD56B, +0xD56C, 0xD56D, 0xD56E, 0xD56F, 0xD570, 0xD571, 0xD572, 0xD573, +0xD574, 0xD575, 0xD576, 0xD577, 0xD578, 0xD579, 0xD57A, 0xD57B, +0xD57C, 0xD57D, 0xD57E, 0xD580, 0xD581, 0xD582, 0xD583, 0xD584, +0xD585, 0xD586, 0xD587, 0xD588, 0xD589, 0xD58A, 0xD58B, 0xD58C, +0xD58D, 0xD58E, 0xD58F, 0xD590, 0xD591, 0xD592, 0xD593, 0xD594, +0xD595, 0xD596, 0xD597, 0xD598, 0xD599, 0xD59A, 0xD59B, 0xD59C, +0xD59D, 0xD59E, 0xD59F, 0xD5A0, 0xD640, 0xD641, 0xD642, 0xD643, +0xD644, 0xD645, 0xD646, 0xD647, 0xD648, 0xD649, 0xD64A, 0xD64B, +0xD64C, 0xD64D, 0xD64E, 0xD64F, 0xD650, 0xD651, 0xD652, 0xD653, +0xD654, 0xD655, 0xD656, 0xD657, 0xD658, 0xD659, 0xD65A, 0xD65B, +0xD65C, 0xD65D, 0xD65E, 0xD65F, 0xD660, 0xD661, 0xD662, 0xE5C0, +0xD663, 0xD664, 0xD665, 0xD666, 0xD667, 0xD668, 0xD669, 0xD66A, +0xD66B, 0xD66C, 0xD66D, 0xD66E, 0xD66F, 0xD670, 0xD671, 0xD672, +0xD673, 0xD674, 0xD675, 0xD676, 0xD677, 0xD678, 0xD679, 0xD67A, +0xD67B, 0xD67C, 0xD67D, 0xD67E, 0xD680, 0xD681, 0xF6A5, 0xD682, +0xD683, 0xD684, 0xD685, 0xD686, 0xD687, 0xD688, 0xD689, 0xD68A, +0xD68B, 0xD68C, 0xD68D, 0xD68E, 0xD68F, 0xD690, 0xD691, 0xD692, +0xD693, 0xD694, 0xD695, 0xD696, 0xD697, 0xD698, 0xD699, 0xD69A, +0xD69B, 0xD69C, 0xD69D, 0xD69E, 0xD69F, 0xD6A0, 0xD740, 0xD741, +0xD742, 0xD743, 0xD744, 0xD745, 0xD746, 0xD747, 0xD748, 0xD749, +0xD74A, 0xD74B, 0xD74C, 0xD74D, 0xD74E, 0xD74F, 0xD750, 0xD751, +0xD752, 0xD753, 0xD754, 0xD755, 0xD756, 0xD757, 0xD758, 0xD759, +0xD75A, 0xD75B, 0xD75C, 0xD75D, 0xD75E, 0xD75F, 0xBEAF, 0xD760, +0xD761, 0xD762, 0xD763, 0xD764, 0xC6A9, 0xD765, 0xD766, 0xD767, +0xD768, 0xD769, 0xD76A, 0xD76B, 0xD76C, 0xD76D, 0xD76E, 0xD76F, +0xD770, 0xD771, 0xD772, 0xD773, 0xD774, 0xD775, 0xD776, 0xD777, +0xD778, 0xD779, 0xD77A, 0xD77B, 0xD77C, 0xD77D, 0xD77E, 0xD780, +0xD781, 0xD782, 0xD783, 0xD784, 0xD785, 0xD786, 0xD787, 0xD788, +0xD789, 0xD78A, 0xD78B, 0xD78C, 0xD78D, 0xD78E, 0xD78F, 0xD790, +0xD791, 0xD792, 0xD793, 0xD794, 0xD795, 0xD796, 0xD797, 0xD798, +0xDAA5, 0xBCC6, 0xB6A9, 0xB8BC, 0xC8CF, 0xBCA5, 0xDAA6, 0xDAA7, +0xCCD6, 0xC8C3, 0xDAA8, 0xC6FD, 0xD799, 0xD1B5, 0xD2E9, 0xD1B6, +0xBCC7, 0xD79A, 0xBDB2, 0xBBE4, 0xDAA9, 0xDAAA, 0xD1C8, 0xDAAB, +0xD0ED, 0xB6EF, 0xC2DB, 0xD79B, 0xCBCF, 0xB7ED, 0xC9E8, 0xB7C3, +0xBEF7, 0xD6A4, 0xDAAC, 0xDAAD, 0xC6C0, 0xD7E7, 0xCAB6, 0xD79C, +0xD5A9, 0xCBDF, 0xD5EF, 0xDAAE, 0xD6DF, 0xB4CA, 0xDAB0, 0xDAAF, +0xD79D, 0xD2EB, 0xDAB1, 0xDAB2, 0xDAB3, 0xCAD4, 0xDAB4, 0xCAAB, +0xDAB5, 0xDAB6, 0xB3CF, 0xD6EF, 0xDAB7, 0xBBB0, 0xB5AE, 0xDAB8, +0xDAB9, 0xB9EE, 0xD1AF, 0xD2E8, 0xDABA, 0xB8C3, 0xCFEA, 0xB2EF, +0xDABB, 0xDABC, 0xD79E, 0xBDEB, 0xCEDC, 0xD3EF, 0xDABD, 0xCEF3, +0xDABE, 0xD3D5, 0xBBE5, 0xDABF, 0xCBB5, 0xCBD0, 0xDAC0, 0xC7EB, +0xD6EE, 0xDAC1, 0xC5B5, 0xB6C1, 0xDAC2, 0xB7CC, 0xBFCE, 0xDAC3, +0xDAC4, 0xCBAD, 0xDAC5, 0xB5F7, 0xDAC6, 0xC1C2, 0xD7BB, 0xDAC7, +0xCCB8, 0xD79F, 0xD2EA, 0xC4B1, 0xDAC8, 0xB5FD, 0xBBD1, 0xDAC9, +0xD0B3, 0xDACA, 0xDACB, 0xCEBD, 0xDACC, 0xDACD, 0xDACE, 0xB2F7, +0xDAD1, 0xDACF, 0xD1E8, 0xDAD0, 0xC3D5, 0xDAD2, 0xD7A0, 0xDAD3, +0xDAD4, 0xDAD5, 0xD0BB, 0xD2A5, 0xB0F9, 0xDAD6, 0xC7AB, 0xDAD7, +0xBDF7, 0xC3A1, 0xDAD8, 0xDAD9, 0xC3FD, 0xCCB7, 0xDADA, 0xDADB, +0xC0BE, 0xC6D7, 0xDADC, 0xDADD, 0xC7B4, 0xDADE, 0xDADF, 0xB9C8, +0xD840, 0xD841, 0xD842, 0xD843, 0xD844, 0xD845, 0xD846, 0xD847, +0xD848, 0xBBED, 0xD849, 0xD84A, 0xD84B, 0xD84C, 0xB6B9, 0xF4F8, +0xD84D, 0xF4F9, 0xD84E, 0xD84F, 0xCDE3, 0xD850, 0xD851, 0xD852, +0xD853, 0xD854, 0xD855, 0xD856, 0xD857, 0xF5B9, 0xD858, 0xD859, +0xD85A, 0xD85B, 0xEBE0, 0xD85C, 0xD85D, 0xD85E, 0xD85F, 0xD860, +0xD861, 0xCFF3, 0xBBBF, 0xD862, 0xD863, 0xD864, 0xD865, 0xD866, +0xD867, 0xD868, 0xBAC0, 0xD4A5, 0xD869, 0xD86A, 0xD86B, 0xD86C, +0xD86D, 0xD86E, 0xD86F, 0xE1D9, 0xD870, 0xD871, 0xD872, 0xD873, +0xF5F4, 0xB1AA, 0xB2F2, 0xD874, 0xD875, 0xD876, 0xD877, 0xD878, +0xD879, 0xD87A, 0xF5F5, 0xD87B, 0xD87C, 0xF5F7, 0xD87D, 0xD87E, +0xD880, 0xBAD1, 0xF5F6, 0xD881, 0xC3B2, 0xD882, 0xD883, 0xD884, +0xD885, 0xD886, 0xD887, 0xD888, 0xF5F9, 0xD889, 0xD88A, 0xD88B, +0xF5F8, 0xD88C, 0xD88D, 0xD88E, 0xD88F, 0xD890, 0xD891, 0xD892, +0xD893, 0xD894, 0xD895, 0xD896, 0xD897, 0xD898, 0xD899, 0xD89A, +0xD89B, 0xD89C, 0xD89D, 0xD89E, 0xD89F, 0xD8A0, 0xD940, 0xD941, +0xD942, 0xD943, 0xD944, 0xD945, 0xD946, 0xD947, 0xD948, 0xD949, +0xD94A, 0xD94B, 0xD94C, 0xD94D, 0xD94E, 0xD94F, 0xD950, 0xD951, +0xD952, 0xD953, 0xD954, 0xD955, 0xD956, 0xD957, 0xD958, 0xD959, +0xD95A, 0xD95B, 0xD95C, 0xD95D, 0xD95E, 0xD95F, 0xD960, 0xD961, +0xD962, 0xD963, 0xD964, 0xD965, 0xD966, 0xD967, 0xD968, 0xD969, +0xD96A, 0xD96B, 0xD96C, 0xD96D, 0xD96E, 0xD96F, 0xD970, 0xD971, +0xD972, 0xD973, 0xD974, 0xD975, 0xD976, 0xD977, 0xD978, 0xD979, +0xD97A, 0xD97B, 0xD97C, 0xD97D, 0xD97E, 0xD980, 0xD981, 0xD982, +0xD983, 0xD984, 0xD985, 0xD986, 0xD987, 0xD988, 0xD989, 0xD98A, +0xD98B, 0xD98C, 0xD98D, 0xD98E, 0xD98F, 0xD990, 0xD991, 0xD992, +0xD993, 0xD994, 0xD995, 0xD996, 0xD997, 0xD998, 0xD999, 0xD99A, +0xD99B, 0xD99C, 0xD99D, 0xD99E, 0xD99F, 0xD9A0, 0xDA40, 0xDA41, +0xDA42, 0xDA43, 0xDA44, 0xDA45, 0xDA46, 0xDA47, 0xDA48, 0xDA49, +0xDA4A, 0xDA4B, 0xDA4C, 0xDA4D, 0xDA4E, 0xB1B4, 0xD5EA, 0xB8BA, +0xDA4F, 0xB9B1, 0xB2C6, 0xD4F0, 0xCFCD, 0xB0DC, 0xD5CB, 0xBBF5, +0xD6CA, 0xB7B7, 0xCCB0, 0xC6B6, 0xB1E1, 0xB9BA, 0xD6FC, 0xB9E1, +0xB7A1, 0xBCFA, 0xEADA, 0xEADB, 0xCCF9, 0xB9F3, 0xEADC, 0xB4FB, +0xC3B3, 0xB7D1, 0xBAD8, 0xEADD, 0xD4F4, 0xEADE, 0xBCD6, 0xBBDF, +0xEADF, 0xC1DE, 0xC2B8, 0xD4DF, 0xD7CA, 0xEAE0, 0xEAE1, 0xEAE4, +0xEAE2, 0xEAE3, 0xC9DE, 0xB8B3, 0xB6C4, 0xEAE5, 0xCAEA, 0xC9CD, +0xB4CD, 0xDA50, 0xDA51, 0xE2D9, 0xC5E2, 0xEAE6, 0xC0B5, 0xDA52, +0xD7B8, 0xEAE7, 0xD7AC, 0xC8FC, 0xD8D3, 0xD8CD, 0xD4DE, 0xDA53, +0xD4F9, 0xC9C4, 0xD3AE, 0xB8D3, 0xB3E0, 0xDA54, 0xC9E2, 0xF4F6, +0xDA55, 0xDA56, 0xDA57, 0xBAD5, 0xDA58, 0xF4F7, 0xDA59, 0xDA5A, +0xD7DF, 0xDA5B, 0xDA5C, 0xF4F1, 0xB8B0, 0xD5D4, 0xB8CF, 0xC6F0, +0xDA5D, 0xDA5E, 0xDA5F, 0xDA60, 0xDA61, 0xDA62, 0xDA63, 0xDA64, +0xDA65, 0xB3C3, 0xDA66, 0xDA67, 0xF4F2, 0xB3AC, 0xDA68, 0xDA69, +0xDA6A, 0xDA6B, 0xD4BD, 0xC7F7, 0xDA6C, 0xDA6D, 0xDA6E, 0xDA6F, +0xDA70, 0xF4F4, 0xDA71, 0xDA72, 0xF4F3, 0xDA73, 0xDA74, 0xDA75, +0xDA76, 0xDA77, 0xDA78, 0xDA79, 0xDA7A, 0xDA7B, 0xDA7C, 0xCCCB, +0xDA7D, 0xDA7E, 0xDA80, 0xC8A4, 0xDA81, 0xDA82, 0xDA83, 0xDA84, +0xDA85, 0xDA86, 0xDA87, 0xDA88, 0xDA89, 0xDA8A, 0xDA8B, 0xDA8C, +0xDA8D, 0xF4F5, 0xDA8E, 0xD7E3, 0xC5BF, 0xF5C0, 0xDA8F, 0xDA90, +0xF5BB, 0xDA91, 0xF5C3, 0xDA92, 0xF5C2, 0xDA93, 0xD6BA, 0xF5C1, +0xDA94, 0xDA95, 0xDA96, 0xD4BE, 0xF5C4, 0xDA97, 0xF5CC, 0xDA98, +0xDA99, 0xDA9A, 0xDA9B, 0xB0CF, 0xB5F8, 0xDA9C, 0xF5C9, 0xF5CA, +0xDA9D, 0xC5DC, 0xDA9E, 0xDA9F, 0xDAA0, 0xDB40, 0xF5C5, 0xF5C6, +0xDB41, 0xDB42, 0xF5C7, 0xF5CB, 0xDB43, 0xBEE0, 0xF5C8, 0xB8FA, +0xDB44, 0xDB45, 0xDB46, 0xF5D0, 0xF5D3, 0xDB47, 0xDB48, 0xDB49, +0xBFE7, 0xDB4A, 0xB9F2, 0xF5BC, 0xF5CD, 0xDB4B, 0xDB4C, 0xC2B7, +0xDB4D, 0xDB4E, 0xDB4F, 0xCCF8, 0xDB50, 0xBCF9, 0xDB51, 0xF5CE, +0xF5CF, 0xF5D1, 0xB6E5, 0xF5D2, 0xDB52, 0xF5D5, 0xDB53, 0xDB54, +0xDB55, 0xDB56, 0xDB57, 0xDB58, 0xDB59, 0xF5BD, 0xDB5A, 0xDB5B, +0xDB5C, 0xF5D4, 0xD3BB, 0xDB5D, 0xB3EC, 0xDB5E, 0xDB5F, 0xCCA4, +0xDB60, 0xDB61, 0xDB62, 0xDB63, 0xF5D6, 0xDB64, 0xDB65, 0xDB66, +0xDB67, 0xDB68, 0xDB69, 0xDB6A, 0xDB6B, 0xF5D7, 0xBEE1, 0xF5D8, +0xDB6C, 0xDB6D, 0xCCDF, 0xF5DB, 0xDB6E, 0xDB6F, 0xDB70, 0xDB71, +0xDB72, 0xB2C8, 0xD7D9, 0xDB73, 0xF5D9, 0xDB74, 0xF5DA, 0xF5DC, +0xDB75, 0xF5E2, 0xDB76, 0xDB77, 0xDB78, 0xF5E0, 0xDB79, 0xDB7A, +0xDB7B, 0xF5DF, 0xF5DD, 0xDB7C, 0xDB7D, 0xF5E1, 0xDB7E, 0xDB80, +0xF5DE, 0xF5E4, 0xF5E5, 0xDB81, 0xCCE3, 0xDB82, 0xDB83, 0xE5BF, +0xB5B8, 0xF5E3, 0xF5E8, 0xCCA3, 0xDB84, 0xDB85, 0xDB86, 0xDB87, +0xDB88, 0xF5E6, 0xF5E7, 0xDB89, 0xDB8A, 0xDB8B, 0xDB8C, 0xDB8D, +0xDB8E, 0xF5BE, 0xDB8F, 0xDB90, 0xDB91, 0xDB92, 0xDB93, 0xDB94, +0xDB95, 0xDB96, 0xDB97, 0xDB98, 0xDB99, 0xDB9A, 0xB1C4, 0xDB9B, +0xDB9C, 0xF5BF, 0xDB9D, 0xDB9E, 0xB5C5, 0xB2E4, 0xDB9F, 0xF5EC, +0xF5E9, 0xDBA0, 0xB6D7, 0xDC40, 0xF5ED, 0xDC41, 0xF5EA, 0xDC42, +0xDC43, 0xDC44, 0xDC45, 0xDC46, 0xF5EB, 0xDC47, 0xDC48, 0xB4DA, +0xDC49, 0xD4EA, 0xDC4A, 0xDC4B, 0xDC4C, 0xF5EE, 0xDC4D, 0xB3F9, +0xDC4E, 0xDC4F, 0xDC50, 0xDC51, 0xDC52, 0xDC53, 0xDC54, 0xF5EF, +0xF5F1, 0xDC55, 0xDC56, 0xDC57, 0xF5F0, 0xDC58, 0xDC59, 0xDC5A, +0xDC5B, 0xDC5C, 0xDC5D, 0xDC5E, 0xF5F2, 0xDC5F, 0xF5F3, 0xDC60, +0xDC61, 0xDC62, 0xDC63, 0xDC64, 0xDC65, 0xDC66, 0xDC67, 0xDC68, +0xDC69, 0xDC6A, 0xDC6B, 0xC9ED, 0xB9AA, 0xDC6C, 0xDC6D, 0xC7FB, +0xDC6E, 0xDC6F, 0xB6E3, 0xDC70, 0xDC71, 0xDC72, 0xDC73, 0xDC74, +0xDC75, 0xDC76, 0xCCC9, 0xDC77, 0xDC78, 0xDC79, 0xDC7A, 0xDC7B, +0xDC7C, 0xDC7D, 0xDC7E, 0xDC80, 0xDC81, 0xDC82, 0xDC83, 0xDC84, +0xDC85, 0xDC86, 0xDC87, 0xDC88, 0xDC89, 0xDC8A, 0xEAA6, 0xDC8B, +0xDC8C, 0xDC8D, 0xDC8E, 0xDC8F, 0xDC90, 0xDC91, 0xDC92, 0xDC93, +0xDC94, 0xDC95, 0xDC96, 0xDC97, 0xDC98, 0xDC99, 0xDC9A, 0xDC9B, +0xDC9C, 0xDC9D, 0xDC9E, 0xDC9F, 0xDCA0, 0xDD40, 0xDD41, 0xDD42, +0xDD43, 0xDD44, 0xDD45, 0xDD46, 0xDD47, 0xDD48, 0xDD49, 0xDD4A, +0xDD4B, 0xDD4C, 0xDD4D, 0xDD4E, 0xDD4F, 0xDD50, 0xDD51, 0xDD52, +0xDD53, 0xDD54, 0xDD55, 0xDD56, 0xDD57, 0xDD58, 0xDD59, 0xDD5A, +0xDD5B, 0xDD5C, 0xDD5D, 0xDD5E, 0xDD5F, 0xDD60, 0xDD61, 0xDD62, +0xDD63, 0xDD64, 0xDD65, 0xDD66, 0xDD67, 0xDD68, 0xDD69, 0xDD6A, +0xDD6B, 0xDD6C, 0xDD6D, 0xDD6E, 0xDD6F, 0xDD70, 0xDD71, 0xDD72, +0xDD73, 0xDD74, 0xDD75, 0xDD76, 0xDD77, 0xDD78, 0xDD79, 0xDD7A, +0xDD7B, 0xDD7C, 0xDD7D, 0xDD7E, 0xDD80, 0xDD81, 0xDD82, 0xDD83, +0xDD84, 0xDD85, 0xDD86, 0xDD87, 0xDD88, 0xDD89, 0xDD8A, 0xDD8B, +0xDD8C, 0xDD8D, 0xDD8E, 0xDD8F, 0xDD90, 0xDD91, 0xDD92, 0xDD93, +0xDD94, 0xDD95, 0xDD96, 0xDD97, 0xDD98, 0xDD99, 0xDD9A, 0xDD9B, +0xDD9C, 0xDD9D, 0xDD9E, 0xDD9F, 0xDDA0, 0xDE40, 0xDE41, 0xDE42, +0xDE43, 0xDE44, 0xDE45, 0xDE46, 0xDE47, 0xDE48, 0xDE49, 0xDE4A, +0xDE4B, 0xDE4C, 0xDE4D, 0xDE4E, 0xDE4F, 0xDE50, 0xDE51, 0xDE52, +0xDE53, 0xDE54, 0xDE55, 0xDE56, 0xDE57, 0xDE58, 0xDE59, 0xDE5A, +0xDE5B, 0xDE5C, 0xDE5D, 0xDE5E, 0xDE5F, 0xDE60, 0xB3B5, 0xD4FE, +0xB9EC, 0xD0F9, 0xDE61, 0xE9ED, 0xD7AA, 0xE9EE, 0xC2D6, 0xC8ED, +0xBAE4, 0xE9EF, 0xE9F0, 0xE9F1, 0xD6E1, 0xE9F2, 0xE9F3, 0xE9F5, +0xE9F4, 0xE9F6, 0xE9F7, 0xC7E1, 0xE9F8, 0xD4D8, 0xE9F9, 0xBDCE, +0xDE62, 0xE9FA, 0xE9FB, 0xBDCF, 0xE9FC, 0xB8A8, 0xC1BE, 0xE9FD, +0xB1B2, 0xBBD4, 0xB9F5, 0xE9FE, 0xDE63, 0xEAA1, 0xEAA2, 0xEAA3, +0xB7F8, 0xBCAD, 0xDE64, 0xCAE4, 0xE0CE, 0xD4AF, 0xCFBD, 0xD5B7, +0xEAA4, 0xD5DE, 0xEAA5, 0xD0C1, 0xB9BC, 0xDE65, 0xB4C7, 0xB1D9, +0xDE66, 0xDE67, 0xDE68, 0xC0B1, 0xDE69, 0xDE6A, 0xDE6B, 0xDE6C, +0xB1E6, 0xB1E7, 0xDE6D, 0xB1E8, 0xDE6E, 0xDE6F, 0xDE70, 0xDE71, +0xB3BD, 0xC8E8, 0xDE72, 0xDE73, 0xDE74, 0xDE75, 0xE5C1, 0xDE76, +0xDE77, 0xB1DF, 0xDE78, 0xDE79, 0xDE7A, 0xC1C9, 0xB4EF, 0xDE7B, +0xDE7C, 0xC7A8, 0xD3D8, 0xDE7D, 0xC6F9, 0xD1B8, 0xDE7E, 0xB9FD, +0xC2F5, 0xDE80, 0xDE81, 0xDE82, 0xDE83, 0xDE84, 0xD3AD, 0xDE85, +0xD4CB, 0xBDFC, 0xDE86, 0xE5C2, 0xB7B5, 0xE5C3, 0xDE87, 0xDE88, +0xBBB9, 0xD5E2, 0xDE89, 0xBDF8, 0xD4B6, 0xCEA5, 0xC1AC, 0xB3D9, +0xDE8A, 0xDE8B, 0xCCF6, 0xDE8C, 0xE5C6, 0xE5C4, 0xE5C8, 0xDE8D, +0xE5CA, 0xE5C7, 0xB5CF, 0xC6C8, 0xDE8E, 0xB5FC, 0xE5C5, 0xDE8F, +0xCAF6, 0xDE90, 0xDE91, 0xE5C9, 0xDE92, 0xDE93, 0xDE94, 0xC3D4, +0xB1C5, 0xBCA3, 0xDE95, 0xDE96, 0xDE97, 0xD7B7, 0xDE98, 0xDE99, +0xCDCB, 0xCBCD, 0xCACA, 0xCCD3, 0xE5CC, 0xE5CB, 0xC4E6, 0xDE9A, +0xDE9B, 0xD1A1, 0xD1B7, 0xE5CD, 0xDE9C, 0xE5D0, 0xDE9D, 0xCDB8, +0xD6F0, 0xE5CF, 0xB5DD, 0xDE9E, 0xCDBE, 0xDE9F, 0xE5D1, 0xB6BA, +0xDEA0, 0xDF40, 0xCDA8, 0xB9E4, 0xDF41, 0xCAC5, 0xB3D1, 0xCBD9, +0xD4EC, 0xE5D2, 0xB7EA, 0xDF42, 0xDF43, 0xDF44, 0xE5CE, 0xDF45, +0xDF46, 0xDF47, 0xDF48, 0xDF49, 0xDF4A, 0xE5D5, 0xB4FE, 0xE5D6, +0xDF4B, 0xDF4C, 0xDF4D, 0xDF4E, 0xDF4F, 0xE5D3, 0xE5D4, 0xDF50, +0xD2DD, 0xDF51, 0xDF52, 0xC2DF, 0xB1C6, 0xDF53, 0xD3E2, 0xDF54, +0xDF55, 0xB6DD, 0xCBEC, 0xDF56, 0xE5D7, 0xDF57, 0xDF58, 0xD3F6, +0xDF59, 0xDF5A, 0xDF5B, 0xDF5C, 0xDF5D, 0xB1E9, 0xDF5E, 0xB6F4, +0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0, 0xDF5F, 0xDF60, 0xDF61, 0xD2C5, +0xE5DC, 0xDF62, 0xDF63, 0xE5DE, 0xDF64, 0xDF65, 0xDF66, 0xDF67, +0xDF68, 0xDF69, 0xE5DD, 0xC7B2, 0xDF6A, 0xD2A3, 0xDF6B, 0xDF6C, +0xE5DB, 0xDF6D, 0xDF6E, 0xDF6F, 0xDF70, 0xD4E2, 0xD5DA, 0xDF71, +0xDF72, 0xDF73, 0xDF74, 0xDF75, 0xE5E0, 0xD7F1, 0xDF76, 0xDF77, +0xDF78, 0xDF79, 0xDF7A, 0xDF7B, 0xDF7C, 0xE5E1, 0xDF7D, 0xB1DC, +0xD1FB, 0xDF7E, 0xE5E2, 0xE5E4, 0xDF80, 0xDF81, 0xDF82, 0xDF83, +0xE5E3, 0xDF84, 0xDF85, 0xE5E5, 0xDF86, 0xDF87, 0xDF88, 0xDF89, +0xDF8A, 0xD2D8, 0xDF8B, 0xB5CB, 0xDF8C, 0xE7DF, 0xDF8D, 0xDAF5, +0xDF8E, 0xDAF8, 0xDF8F, 0xDAF6, 0xDF90, 0xDAF7, 0xDF91, 0xDF92, +0xDF93, 0xDAFA, 0xD0CF, 0xC4C7, 0xDF94, 0xDF95, 0xB0EE, 0xDF96, +0xDF97, 0xDF98, 0xD0B0, 0xDF99, 0xDAF9, 0xDF9A, 0xD3CA, 0xBAAA, +0xDBA2, 0xC7F1, 0xDF9B, 0xDAFC, 0xDAFB, 0xC9DB, 0xDAFD, 0xDF9C, +0xDBA1, 0xD7DE, 0xDAFE, 0xC1DA, 0xDF9D, 0xDF9E, 0xDBA5, 0xDF9F, +0xDFA0, 0xD3F4, 0xE040, 0xE041, 0xDBA7, 0xDBA4, 0xE042, 0xDBA8, +0xE043, 0xE044, 0xBDBC, 0xE045, 0xE046, 0xE047, 0xC0C9, 0xDBA3, +0xDBA6, 0xD6A3, 0xE048, 0xDBA9, 0xE049, 0xE04A, 0xE04B, 0xDBAD, +0xE04C, 0xE04D, 0xE04E, 0xDBAE, 0xDBAC, 0xBAC2, 0xE04F, 0xE050, +0xE051, 0xBFA4, 0xDBAB, 0xE052, 0xE053, 0xE054, 0xDBAA, 0xD4C7, +0xB2BF, 0xE055, 0xE056, 0xDBAF, 0xE057, 0xB9F9, 0xE058, 0xDBB0, +0xE059, 0xE05A, 0xE05B, 0xE05C, 0xB3BB, 0xE05D, 0xE05E, 0xE05F, +0xB5A6, 0xE060, 0xE061, 0xE062, 0xE063, 0xB6BC, 0xDBB1, 0xE064, +0xE065, 0xE066, 0xB6F5, 0xE067, 0xDBB2, 0xE068, 0xE069, 0xE06A, +0xE06B, 0xE06C, 0xE06D, 0xE06E, 0xE06F, 0xE070, 0xE071, 0xE072, +0xE073, 0xE074, 0xE075, 0xE076, 0xE077, 0xE078, 0xE079, 0xE07A, +0xE07B, 0xB1C9, 0xE07C, 0xE07D, 0xE07E, 0xE080, 0xDBB4, 0xE081, +0xE082, 0xE083, 0xDBB3, 0xDBB5, 0xE084, 0xE085, 0xE086, 0xE087, +0xE088, 0xE089, 0xE08A, 0xE08B, 0xE08C, 0xE08D, 0xE08E, 0xDBB7, +0xE08F, 0xDBB6, 0xE090, 0xE091, 0xE092, 0xE093, 0xE094, 0xE095, +0xE096, 0xDBB8, 0xE097, 0xE098, 0xE099, 0xE09A, 0xE09B, 0xE09C, +0xE09D, 0xE09E, 0xE09F, 0xDBB9, 0xE0A0, 0xE140, 0xDBBA, 0xE141, +0xE142, 0xD3CF, 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD, +0xF4FB, 0xE143, 0xBEC6, 0xE144, 0xE145, 0xE146, 0xE147, 0xD0EF, +0xE148, 0xE149, 0xB7D3, 0xE14A, 0xE14B, 0xD4CD, 0xCCAA, 0xE14C, +0xE14D, 0xF5A2, 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 0xE14E, 0xE14F, +0xE150, 0xF5A4, 0xC0D2, 0xE151, 0xB3EA, 0xE152, 0xCDAA, 0xF5A5, +0xF5A3, 0xBDB4, 0xF5A8, 0xE153, 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, +0xCBE1, 0xF5AA, 0xE154, 0xE155, 0xE156, 0xF5A6, 0xF5A7, 0xC4F0, +0xE157, 0xE158, 0xE159, 0xE15A, 0xE15B, 0xF5AC, 0xE15C, 0xB4BC, +0xE15D, 0xD7ED, 0xE15E, 0xB4D7, 0xF5AB, 0xF5AE, 0xE15F, 0xE160, +0xF5AD, 0xF5AF, 0xD0D1, 0xE161, 0xE162, 0xE163, 0xE164, 0xE165, +0xE166, 0xE167, 0xC3D1, 0xC8A9, 0xE168, 0xE169, 0xE16A, 0xE16B, +0xE16C, 0xE16D, 0xF5B0, 0xF5B1, 0xE16E, 0xE16F, 0xE170, 0xE171, +0xE172, 0xE173, 0xF5B2, 0xE174, 0xE175, 0xF5B3, 0xF5B4, 0xF5B5, +0xE176, 0xE177, 0xE178, 0xE179, 0xF5B7, 0xF5B6, 0xE17A, 0xE17B, +0xE17C, 0xE17D, 0xF5B8, 0xE17E, 0xE180, 0xE181, 0xE182, 0xE183, +0xE184, 0xE185, 0xE186, 0xE187, 0xE188, 0xE189, 0xE18A, 0xB2C9, +0xE18B, 0xD3D4, 0xCACD, 0xE18C, 0xC0EF, 0xD6D8, 0xD2B0, 0xC1BF, +0xE18D, 0xBDF0, 0xE18E, 0xE18F, 0xE190, 0xE191, 0xE192, 0xE193, +0xE194, 0xE195, 0xE196, 0xE197, 0xB8AA, 0xE198, 0xE199, 0xE19A, +0xE19B, 0xE19C, 0xE19D, 0xE19E, 0xE19F, 0xE1A0, 0xE240, 0xE241, +0xE242, 0xE243, 0xE244, 0xE245, 0xE246, 0xE247, 0xE248, 0xE249, +0xE24A, 0xE24B, 0xE24C, 0xE24D, 0xE24E, 0xE24F, 0xE250, 0xE251, +0xE252, 0xE253, 0xE254, 0xE255, 0xE256, 0xE257, 0xE258, 0xE259, +0xE25A, 0xE25B, 0xE25C, 0xE25D, 0xE25E, 0xE25F, 0xE260, 0xE261, +0xE262, 0xE263, 0xE264, 0xE265, 0xE266, 0xE267, 0xE268, 0xE269, +0xE26A, 0xE26B, 0xE26C, 0xE26D, 0xE26E, 0xE26F, 0xE270, 0xE271, +0xE272, 0xE273, 0xE274, 0xE275, 0xE276, 0xE277, 0xE278, 0xE279, +0xE27A, 0xE27B, 0xE27C, 0xE27D, 0xE27E, 0xE280, 0xE281, 0xE282, +0xE283, 0xE284, 0xE285, 0xE286, 0xE287, 0xE288, 0xE289, 0xE28A, +0xE28B, 0xE28C, 0xE28D, 0xE28E, 0xE28F, 0xE290, 0xE291, 0xE292, +0xE293, 0xE294, 0xE295, 0xE296, 0xE297, 0xE298, 0xE299, 0xE29A, +0xE29B, 0xE29C, 0xE29D, 0xE29E, 0xE29F, 0xE2A0, 0xE340, 0xE341, +0xE342, 0xE343, 0xE344, 0xE345, 0xE346, 0xE347, 0xE348, 0xE349, +0xE34A, 0xE34B, 0xE34C, 0xE34D, 0xE34E, 0xE34F, 0xE350, 0xE351, +0xE352, 0xE353, 0xE354, 0xE355, 0xE356, 0xE357, 0xE358, 0xE359, +0xE35A, 0xE35B, 0xE35C, 0xE35D, 0xE35E, 0xE35F, 0xE360, 0xE361, +0xE362, 0xE363, 0xE364, 0xE365, 0xE366, 0xE367, 0xE368, 0xE369, +0xE36A, 0xE36B, 0xE36C, 0xE36D, 0xBCF8, 0xE36E, 0xE36F, 0xE370, +0xE371, 0xE372, 0xE373, 0xE374, 0xE375, 0xE376, 0xE377, 0xE378, +0xE379, 0xE37A, 0xE37B, 0xE37C, 0xE37D, 0xE37E, 0xE380, 0xE381, +0xE382, 0xE383, 0xE384, 0xE385, 0xE386, 0xE387, 0xF6C6, 0xE388, +0xE389, 0xE38A, 0xE38B, 0xE38C, 0xE38D, 0xE38E, 0xE38F, 0xE390, +0xE391, 0xE392, 0xE393, 0xE394, 0xE395, 0xE396, 0xE397, 0xE398, +0xE399, 0xE39A, 0xE39B, 0xE39C, 0xE39D, 0xE39E, 0xE39F, 0xE3A0, +0xE440, 0xE441, 0xE442, 0xE443, 0xE444, 0xE445, 0xF6C7, 0xE446, +0xE447, 0xE448, 0xE449, 0xE44A, 0xE44B, 0xE44C, 0xE44D, 0xE44E, +0xE44F, 0xE450, 0xE451, 0xE452, 0xE453, 0xE454, 0xE455, 0xE456, +0xE457, 0xE458, 0xE459, 0xE45A, 0xE45B, 0xE45C, 0xE45D, 0xE45E, +0xF6C8, 0xE45F, 0xE460, 0xE461, 0xE462, 0xE463, 0xE464, 0xE465, +0xE466, 0xE467, 0xE468, 0xE469, 0xE46A, 0xE46B, 0xE46C, 0xE46D, +0xE46E, 0xE46F, 0xE470, 0xE471, 0xE472, 0xE473, 0xE474, 0xE475, +0xE476, 0xE477, 0xE478, 0xE479, 0xE47A, 0xE47B, 0xE47C, 0xE47D, +0xE47E, 0xE480, 0xE481, 0xE482, 0xE483, 0xE484, 0xE485, 0xE486, +0xE487, 0xE488, 0xE489, 0xE48A, 0xE48B, 0xE48C, 0xE48D, 0xE48E, +0xE48F, 0xE490, 0xE491, 0xE492, 0xE493, 0xE494, 0xE495, 0xE496, +0xE497, 0xE498, 0xE499, 0xE49A, 0xE49B, 0xE49C, 0xE49D, 0xE49E, +0xE49F, 0xE4A0, 0xE540, 0xE541, 0xE542, 0xE543, 0xE544, 0xE545, +0xE546, 0xE547, 0xE548, 0xE549, 0xE54A, 0xE54B, 0xE54C, 0xE54D, +0xE54E, 0xE54F, 0xE550, 0xE551, 0xE552, 0xE553, 0xE554, 0xE555, +0xE556, 0xE557, 0xE558, 0xE559, 0xE55A, 0xE55B, 0xE55C, 0xE55D, +0xE55E, 0xE55F, 0xE560, 0xE561, 0xE562, 0xE563, 0xE564, 0xE565, +0xE566, 0xE567, 0xE568, 0xE569, 0xE56A, 0xE56B, 0xE56C, 0xE56D, +0xE56E, 0xE56F, 0xE570, 0xE571, 0xE572, 0xE573, 0xF6C9, 0xE574, +0xE575, 0xE576, 0xE577, 0xE578, 0xE579, 0xE57A, 0xE57B, 0xE57C, +0xE57D, 0xE57E, 0xE580, 0xE581, 0xE582, 0xE583, 0xE584, 0xE585, +0xE586, 0xE587, 0xE588, 0xE589, 0xE58A, 0xE58B, 0xE58C, 0xE58D, +0xE58E, 0xE58F, 0xE590, 0xE591, 0xE592, 0xE593, 0xE594, 0xE595, +0xE596, 0xE597, 0xE598, 0xE599, 0xE59A, 0xE59B, 0xE59C, 0xE59D, +0xE59E, 0xE59F, 0xF6CA, 0xE5A0, 0xE640, 0xE641, 0xE642, 0xE643, +0xE644, 0xE645, 0xE646, 0xE647, 0xE648, 0xE649, 0xE64A, 0xE64B, +0xE64C, 0xE64D, 0xE64E, 0xE64F, 0xE650, 0xE651, 0xE652, 0xE653, +0xE654, 0xE655, 0xE656, 0xE657, 0xE658, 0xE659, 0xE65A, 0xE65B, +0xE65C, 0xE65D, 0xE65E, 0xE65F, 0xE660, 0xE661, 0xE662, 0xF6CC, +0xE663, 0xE664, 0xE665, 0xE666, 0xE667, 0xE668, 0xE669, 0xE66A, +0xE66B, 0xE66C, 0xE66D, 0xE66E, 0xE66F, 0xE670, 0xE671, 0xE672, +0xE673, 0xE674, 0xE675, 0xE676, 0xE677, 0xE678, 0xE679, 0xE67A, +0xE67B, 0xE67C, 0xE67D, 0xE67E, 0xE680, 0xE681, 0xE682, 0xE683, +0xE684, 0xE685, 0xE686, 0xE687, 0xE688, 0xE689, 0xE68A, 0xE68B, +0xE68C, 0xE68D, 0xE68E, 0xE68F, 0xE690, 0xE691, 0xE692, 0xE693, +0xE694, 0xE695, 0xE696, 0xE697, 0xE698, 0xE699, 0xE69A, 0xE69B, +0xE69C, 0xE69D, 0xF6CB, 0xE69E, 0xE69F, 0xE6A0, 0xE740, 0xE741, +0xE742, 0xE743, 0xE744, 0xE745, 0xE746, 0xE747, 0xF7E9, 0xE748, +0xE749, 0xE74A, 0xE74B, 0xE74C, 0xE74D, 0xE74E, 0xE74F, 0xE750, +0xE751, 0xE752, 0xE753, 0xE754, 0xE755, 0xE756, 0xE757, 0xE758, +0xE759, 0xE75A, 0xE75B, 0xE75C, 0xE75D, 0xE75E, 0xE75F, 0xE760, +0xE761, 0xE762, 0xE763, 0xE764, 0xE765, 0xE766, 0xE767, 0xE768, +0xE769, 0xE76A, 0xE76B, 0xE76C, 0xE76D, 0xE76E, 0xE76F, 0xE770, +0xE771, 0xE772, 0xE773, 0xE774, 0xE775, 0xE776, 0xE777, 0xE778, +0xE779, 0xE77A, 0xE77B, 0xE77C, 0xE77D, 0xE77E, 0xE780, 0xE781, +0xE782, 0xE783, 0xE784, 0xE785, 0xE786, 0xE787, 0xE788, 0xE789, +0xE78A, 0xE78B, 0xE78C, 0xE78D, 0xE78E, 0xE78F, 0xE790, 0xE791, +0xE792, 0xE793, 0xE794, 0xE795, 0xE796, 0xE797, 0xE798, 0xE799, +0xE79A, 0xE79B, 0xE79C, 0xE79D, 0xE79E, 0xE79F, 0xE7A0, 0xE840, +0xE841, 0xE842, 0xE843, 0xE844, 0xE845, 0xE846, 0xE847, 0xE848, +0xE849, 0xE84A, 0xE84B, 0xE84C, 0xE84D, 0xE84E, 0xF6CD, 0xE84F, +0xE850, 0xE851, 0xE852, 0xE853, 0xE854, 0xE855, 0xE856, 0xE857, +0xE858, 0xE859, 0xE85A, 0xE85B, 0xE85C, 0xE85D, 0xE85E, 0xE85F, +0xE860, 0xE861, 0xE862, 0xE863, 0xE864, 0xE865, 0xE866, 0xE867, +0xE868, 0xE869, 0xE86A, 0xE86B, 0xE86C, 0xE86D, 0xE86E, 0xE86F, +0xE870, 0xE871, 0xE872, 0xE873, 0xE874, 0xE875, 0xE876, 0xE877, +0xE878, 0xE879, 0xE87A, 0xF6CE, 0xE87B, 0xE87C, 0xE87D, 0xE87E, +0xE880, 0xE881, 0xE882, 0xE883, 0xE884, 0xE885, 0xE886, 0xE887, +0xE888, 0xE889, 0xE88A, 0xE88B, 0xE88C, 0xE88D, 0xE88E, 0xE88F, +0xE890, 0xE891, 0xE892, 0xE893, 0xE894, 0xEEC4, 0xEEC5, 0xEEC6, +0xD5EB, 0xB6A4, 0xEEC8, 0xEEC7, 0xEEC9, 0xEECA, 0xC7A5, 0xEECB, +0xEECC, 0xE895, 0xB7B0, 0xB5F6, 0xEECD, 0xEECF, 0xE896, 0xEECE, +0xE897, 0xB8C6, 0xEED0, 0xEED1, 0xEED2, 0xB6DB, 0xB3AE, 0xD6D3, +0xC4C6, 0xB1B5, 0xB8D6, 0xEED3, 0xEED4, 0xD4BF, 0xC7D5, 0xBEFB, +0xCED9, 0xB9B3, 0xEED6, 0xEED5, 0xEED8, 0xEED7, 0xC5A5, 0xEED9, +0xEEDA, 0xC7AE, 0xEEDB, 0xC7AF, 0xEEDC, 0xB2A7, 0xEEDD, 0xEEDE, +0xEEDF, 0xEEE0, 0xEEE1, 0xD7EA, 0xEEE2, 0xEEE3, 0xBCD8, 0xEEE4, +0xD3CB, 0xCCFA, 0xB2AC, 0xC1E5, 0xEEE5, 0xC7A6, 0xC3AD, 0xE898, +0xEEE6, 0xEEE7, 0xEEE8, 0xEEE9, 0xEEEA, 0xEEEB, 0xEEEC, 0xE899, +0xEEED, 0xEEEE, 0xEEEF, 0xE89A, 0xE89B, 0xEEF0, 0xEEF1, 0xEEF2, +0xEEF4, 0xEEF3, 0xE89C, 0xEEF5, 0xCDAD, 0xC2C1, 0xEEF6, 0xEEF7, +0xEEF8, 0xD5A1, 0xEEF9, 0xCFB3, 0xEEFA, 0xEEFB, 0xE89D, 0xEEFC, +0xEEFD, 0xEFA1, 0xEEFE, 0xEFA2, 0xB8F5, 0xC3FA, 0xEFA3, 0xEFA4, +0xBDC2, 0xD2BF, 0xB2F9, 0xEFA5, 0xEFA6, 0xEFA7, 0xD2F8, 0xEFA8, +0xD6FD, 0xEFA9, 0xC6CC, 0xE89E, 0xEFAA, 0xEFAB, 0xC1B4, 0xEFAC, +0xCFFA, 0xCBF8, 0xEFAE, 0xEFAD, 0xB3FA, 0xB9F8, 0xEFAF, 0xEFB0, +0xD0E2, 0xEFB1, 0xEFB2, 0xB7E6, 0xD0BF, 0xEFB3, 0xEFB4, 0xEFB5, +0xC8F1, 0xCCE0, 0xEFB6, 0xEFB7, 0xEFB8, 0xEFB9, 0xEFBA, 0xD5E0, +0xEFBB, 0xB4ED, 0xC3AA, 0xEFBC, 0xE89F, 0xEFBD, 0xEFBE, 0xEFBF, +0xE8A0, 0xCEFD, 0xEFC0, 0xC2E0, 0xB4B8, 0xD7B6, 0xBDF5, 0xE940, +0xCFC7, 0xEFC3, 0xEFC1, 0xEFC2, 0xEFC4, 0xB6A7, 0xBCFC, 0xBEE2, +0xC3CC, 0xEFC5, 0xEFC6, 0xE941, 0xEFC7, 0xEFCF, 0xEFC8, 0xEFC9, +0xEFCA, 0xC7C2, 0xEFF1, 0xB6CD, 0xEFCB, 0xE942, 0xEFCC, 0xEFCD, +0xB6C6, 0xC3BE, 0xEFCE, 0xE943, 0xEFD0, 0xEFD1, 0xEFD2, 0xD5F2, +0xE944, 0xEFD3, 0xC4F7, 0xE945, 0xEFD4, 0xC4F8, 0xEFD5, 0xEFD6, +0xB8E4, 0xB0F7, 0xEFD7, 0xEFD8, 0xEFD9, 0xE946, 0xEFDA, 0xEFDB, +0xEFDC, 0xEFDD, 0xE947, 0xEFDE, 0xBEB5, 0xEFE1, 0xEFDF, 0xEFE0, +0xE948, 0xEFE2, 0xEFE3, 0xC1CD, 0xEFE4, 0xEFE5, 0xEFE6, 0xEFE7, +0xEFE8, 0xEFE9, 0xEFEA, 0xEFEB, 0xEFEC, 0xC0D8, 0xE949, 0xEFED, +0xC1AD, 0xEFEE, 0xEFEF, 0xEFF0, 0xE94A, 0xE94B, 0xCFE2, 0xE94C, +0xE94D, 0xE94E, 0xE94F, 0xE950, 0xE951, 0xE952, 0xE953, 0xB3A4, +0xE954, 0xE955, 0xE956, 0xE957, 0xE958, 0xE959, 0xE95A, 0xE95B, +0xE95C, 0xE95D, 0xE95E, 0xE95F, 0xE960, 0xE961, 0xE962, 0xE963, +0xE964, 0xE965, 0xE966, 0xE967, 0xE968, 0xE969, 0xE96A, 0xE96B, +0xE96C, 0xE96D, 0xE96E, 0xE96F, 0xE970, 0xE971, 0xE972, 0xE973, +0xE974, 0xE975, 0xE976, 0xE977, 0xE978, 0xE979, 0xE97A, 0xE97B, +0xE97C, 0xE97D, 0xE97E, 0xE980, 0xE981, 0xE982, 0xE983, 0xE984, +0xE985, 0xE986, 0xE987, 0xE988, 0xE989, 0xE98A, 0xE98B, 0xE98C, +0xE98D, 0xE98E, 0xE98F, 0xE990, 0xE991, 0xE992, 0xE993, 0xE994, +0xE995, 0xE996, 0xE997, 0xE998, 0xE999, 0xE99A, 0xE99B, 0xE99C, +0xE99D, 0xE99E, 0xE99F, 0xE9A0, 0xEA40, 0xEA41, 0xEA42, 0xEA43, +0xEA44, 0xEA45, 0xEA46, 0xEA47, 0xEA48, 0xEA49, 0xEA4A, 0xEA4B, +0xEA4C, 0xEA4D, 0xEA4E, 0xEA4F, 0xEA50, 0xEA51, 0xEA52, 0xEA53, +0xEA54, 0xEA55, 0xEA56, 0xEA57, 0xEA58, 0xEA59, 0xEA5A, 0xEA5B, +0xC3C5, 0xE3C5, 0xC9C1, 0xE3C6, 0xEA5C, 0xB1D5, 0xCECA, 0xB4B3, +0xC8F2, 0xE3C7, 0xCFD0, 0xE3C8, 0xBCE4, 0xE3C9, 0xE3CA, 0xC3C6, +0xD5A2, 0xC4D6, 0xB9EB, 0xCEC5, 0xE3CB, 0xC3F6, 0xE3CC, 0xEA5D, +0xB7A7, 0xB8F3, 0xBAD2, 0xE3CD, 0xE3CE, 0xD4C4, 0xE3CF, 0xEA5E, +0xE3D0, 0xD1CB, 0xE3D1, 0xE3D2, 0xE3D3, 0xE3D4, 0xD1D6, 0xE3D5, +0xB2FB, 0xC0BB, 0xE3D6, 0xEA5F, 0xC0AB, 0xE3D7, 0xE3D8, 0xE3D9, +0xEA60, 0xE3DA, 0xE3DB, 0xEA61, 0xB8B7, 0xDAE2, 0xEA62, 0xB6D3, +0xEA63, 0xDAE4, 0xDAE3, 0xEA64, 0xEA65, 0xEA66, 0xEA67, 0xEA68, +0xEA69, 0xEA6A, 0xDAE6, 0xEA6B, 0xEA6C, 0xEA6D, 0xC8EE, 0xEA6E, +0xEA6F, 0xDAE5, 0xB7C0, 0xD1F4, 0xD2F5, 0xD5F3, 0xBDD7, 0xEA70, +0xEA71, 0xEA72, 0xEA73, 0xD7E8, 0xDAE8, 0xDAE7, 0xEA74, 0xB0A2, +0xCDD3, 0xEA75, 0xDAE9, 0xEA76, 0xB8BD, 0xBCCA, 0xC2BD, 0xC2A4, +0xB3C2, 0xDAEA, 0xEA77, 0xC2AA, 0xC4B0, 0xBDB5, 0xEA78, 0xEA79, +0xCFDE, 0xEA7A, 0xEA7B, 0xEA7C, 0xDAEB, 0xC9C2, 0xEA7D, 0xEA7E, +0xEA80, 0xEA81, 0xEA82, 0xB1DD, 0xEA83, 0xEA84, 0xEA85, 0xDAEC, +0xEA86, 0xB6B8, 0xD4BA, 0xEA87, 0xB3FD, 0xEA88, 0xEA89, 0xDAED, +0xD4C9, 0xCFD5, 0xC5E3, 0xEA8A, 0xDAEE, 0xEA8B, 0xEA8C, 0xEA8D, +0xEA8E, 0xEA8F, 0xDAEF, 0xEA90, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD, +0xEA91, 0xEA92, 0xEA93, 0xEA94, 0xEA95, 0xEA96, 0xEA97, 0xEA98, +0xEA99, 0xEA9A, 0xEA9B, 0xEA9C, 0xEA9D, 0xD3E7, 0xC2A1, 0xEA9E, +0xDAF1, 0xEA9F, 0xEAA0, 0xCBE5, 0xEB40, 0xDAF2, 0xEB41, 0xCBE6, +0xD2FE, 0xEB42, 0xEB43, 0xEB44, 0xB8F4, 0xEB45, 0xEB46, 0xDAF3, +0xB0AF, 0xCFB6, 0xEB47, 0xEB48, 0xD5CF, 0xEB49, 0xEB4A, 0xEB4B, +0xEB4C, 0xEB4D, 0xEB4E, 0xEB4F, 0xEB50, 0xEB51, 0xEB52, 0xCBED, +0xEB53, 0xEB54, 0xEB55, 0xEB56, 0xEB57, 0xEB58, 0xEB59, 0xEB5A, +0xDAF4, 0xEB5B, 0xEB5C, 0xE3C4, 0xEB5D, 0xEB5E, 0xC1A5, 0xEB5F, +0xEB60, 0xF6BF, 0xEB61, 0xEB62, 0xF6C0, 0xF6C1, 0xC4D1, 0xEB63, +0xC8B8, 0xD1E3, 0xEB64, 0xEB65, 0xD0DB, 0xD1C5, 0xBCAF, 0xB9CD, +0xEB66, 0xEFF4, 0xEB67, 0xEB68, 0xB4C6, 0xD3BA, 0xF6C2, 0xB3FB, +0xEB69, 0xEB6A, 0xF6C3, 0xEB6B, 0xEB6C, 0xB5F1, 0xEB6D, 0xEB6E, +0xEB6F, 0xEB70, 0xEB71, 0xEB72, 0xEB73, 0xEB74, 0xEB75, 0xEB76, +0xF6C5, 0xEB77, 0xEB78, 0xEB79, 0xEB7A, 0xEB7B, 0xEB7C, 0xEB7D, +0xD3EA, 0xF6A7, 0xD1A9, 0xEB7E, 0xEB80, 0xEB81, 0xEB82, 0xF6A9, +0xEB83, 0xEB84, 0xEB85, 0xF6A8, 0xEB86, 0xEB87, 0xC1E3, 0xC0D7, +0xEB88, 0xB1A2, 0xEB89, 0xEB8A, 0xEB8B, 0xEB8C, 0xCEED, 0xEB8D, +0xD0E8, 0xF6AB, 0xEB8E, 0xEB8F, 0xCFF6, 0xEB90, 0xF6AA, 0xD5F0, +0xF6AC, 0xC3B9, 0xEB91, 0xEB92, 0xEB93, 0xBBF4, 0xF6AE, 0xF6AD, +0xEB94, 0xEB95, 0xEB96, 0xC4DE, 0xEB97, 0xEB98, 0xC1D8, 0xEB99, +0xEB9A, 0xEB9B, 0xEB9C, 0xEB9D, 0xCBAA, 0xEB9E, 0xCFBC, 0xEB9F, +0xEBA0, 0xEC40, 0xEC41, 0xEC42, 0xEC43, 0xEC44, 0xEC45, 0xEC46, +0xEC47, 0xEC48, 0xF6AF, 0xEC49, 0xEC4A, 0xF6B0, 0xEC4B, 0xEC4C, +0xF6B1, 0xEC4D, 0xC2B6, 0xEC4E, 0xEC4F, 0xEC50, 0xEC51, 0xEC52, +0xB0D4, 0xC5F9, 0xEC53, 0xEC54, 0xEC55, 0xEC56, 0xF6B2, 0xEC57, +0xEC58, 0xEC59, 0xEC5A, 0xEC5B, 0xEC5C, 0xEC5D, 0xEC5E, 0xEC5F, +0xEC60, 0xEC61, 0xEC62, 0xEC63, 0xEC64, 0xEC65, 0xEC66, 0xEC67, +0xEC68, 0xEC69, 0xC7E0, 0xF6A6, 0xEC6A, 0xEC6B, 0xBEB8, 0xEC6C, +0xEC6D, 0xBEB2, 0xEC6E, 0xB5E5, 0xEC6F, 0xEC70, 0xB7C7, 0xEC71, +0xBFBF, 0xC3D2, 0xC3E6, 0xEC72, 0xEC73, 0xD8CC, 0xEC74, 0xEC75, +0xEC76, 0xB8EF, 0xEC77, 0xEC78, 0xEC79, 0xEC7A, 0xEC7B, 0xEC7C, +0xEC7D, 0xEC7E, 0xEC80, 0xBDF9, 0xD1A5, 0xEC81, 0xB0D0, 0xEC82, +0xEC83, 0xEC84, 0xEC85, 0xEC86, 0xF7B0, 0xEC87, 0xEC88, 0xEC89, +0xEC8A, 0xEC8B, 0xEC8C, 0xEC8D, 0xEC8E, 0xF7B1, 0xEC8F, 0xEC90, +0xEC91, 0xEC92, 0xEC93, 0xD0AC, 0xEC94, 0xB0B0, 0xEC95, 0xEC96, +0xEC97, 0xF7B2, 0xF7B3, 0xEC98, 0xF7B4, 0xEC99, 0xEC9A, 0xEC9B, +0xC7CA, 0xEC9C, 0xEC9D, 0xEC9E, 0xEC9F, 0xECA0, 0xED40, 0xED41, +0xBECF, 0xED42, 0xED43, 0xF7B7, 0xED44, 0xED45, 0xED46, 0xED47, +0xED48, 0xED49, 0xED4A, 0xF7B6, 0xED4B, 0xB1DE, 0xED4C, 0xF7B5, +0xED4D, 0xED4E, 0xF7B8, 0xED4F, 0xF7B9, 0xED50, 0xED51, 0xED52, +0xED53, 0xED54, 0xED55, 0xED56, 0xED57, 0xED58, 0xED59, 0xED5A, +0xED5B, 0xED5C, 0xED5D, 0xED5E, 0xED5F, 0xED60, 0xED61, 0xED62, +0xED63, 0xED64, 0xED65, 0xED66, 0xED67, 0xED68, 0xED69, 0xED6A, +0xED6B, 0xED6C, 0xED6D, 0xED6E, 0xED6F, 0xED70, 0xED71, 0xED72, +0xED73, 0xED74, 0xED75, 0xED76, 0xED77, 0xED78, 0xED79, 0xED7A, +0xED7B, 0xED7C, 0xED7D, 0xED7E, 0xED80, 0xED81, 0xCEA4, 0xC8CD, +0xED82, 0xBAAB, 0xE8B8, 0xE8B9, 0xE8BA, 0xBEC2, 0xED83, 0xED84, +0xED85, 0xED86, 0xED87, 0xD2F4, 0xED88, 0xD4CF, 0xC9D8, 0xED89, +0xED8A, 0xED8B, 0xED8C, 0xED8D, 0xED8E, 0xED8F, 0xED90, 0xED91, +0xED92, 0xED93, 0xED94, 0xED95, 0xED96, 0xED97, 0xED98, 0xED99, +0xED9A, 0xED9B, 0xED9C, 0xED9D, 0xED9E, 0xED9F, 0xEDA0, 0xEE40, +0xEE41, 0xEE42, 0xEE43, 0xEE44, 0xEE45, 0xEE46, 0xEE47, 0xEE48, +0xEE49, 0xEE4A, 0xEE4B, 0xEE4C, 0xEE4D, 0xEE4E, 0xEE4F, 0xEE50, +0xEE51, 0xEE52, 0xEE53, 0xEE54, 0xEE55, 0xEE56, 0xEE57, 0xEE58, +0xEE59, 0xEE5A, 0xEE5B, 0xEE5C, 0xEE5D, 0xEE5E, 0xEE5F, 0xEE60, +0xEE61, 0xEE62, 0xEE63, 0xEE64, 0xEE65, 0xEE66, 0xEE67, 0xEE68, +0xEE69, 0xEE6A, 0xEE6B, 0xEE6C, 0xEE6D, 0xEE6E, 0xEE6F, 0xEE70, +0xEE71, 0xEE72, 0xEE73, 0xEE74, 0xEE75, 0xEE76, 0xEE77, 0xEE78, +0xEE79, 0xEE7A, 0xEE7B, 0xEE7C, 0xEE7D, 0xEE7E, 0xEE80, 0xEE81, +0xEE82, 0xEE83, 0xEE84, 0xEE85, 0xEE86, 0xEE87, 0xEE88, 0xEE89, +0xEE8A, 0xEE8B, 0xEE8C, 0xEE8D, 0xEE8E, 0xEE8F, 0xEE90, 0xEE91, +0xEE92, 0xEE93, 0xEE94, 0xEE95, 0xEE96, 0xEE97, 0xEE98, 0xEE99, +0xEE9A, 0xEE9B, 0xEE9C, 0xEE9D, 0xEE9E, 0xEE9F, 0xEEA0, 0xEF40, +0xEF41, 0xEF42, 0xEF43, 0xEF44, 0xEF45, 0xD2B3, 0xB6A5, 0xC7EA, +0xF1FC, 0xCFEE, 0xCBB3, 0xD0EB, 0xE7EF, 0xCDE7, 0xB9CB, 0xB6D9, +0xF1FD, 0xB0E4, 0xCBCC, 0xF1FE, 0xD4A4, 0xC2AD, 0xC1EC, 0xC6C4, +0xBEB1, 0xF2A1, 0xBCD5, 0xEF46, 0xF2A2, 0xF2A3, 0xEF47, 0xF2A4, +0xD2C3, 0xC6B5, 0xEF48, 0xCDC7, 0xF2A5, 0xEF49, 0xD3B1, 0xBFC5, +0xCCE2, 0xEF4A, 0xF2A6, 0xF2A7, 0xD1D5, 0xB6EE, 0xF2A8, 0xF2A9, +0xB5DF, 0xF2AA, 0xF2AB, 0xEF4B, 0xB2FC, 0xF2AC, 0xF2AD, 0xC8A7, +0xEF4C, 0xEF4D, 0xEF4E, 0xEF4F, 0xEF50, 0xEF51, 0xEF52, 0xEF53, +0xEF54, 0xEF55, 0xEF56, 0xEF57, 0xEF58, 0xEF59, 0xEF5A, 0xEF5B, +0xEF5C, 0xEF5D, 0xEF5E, 0xEF5F, 0xEF60, 0xEF61, 0xEF62, 0xEF63, +0xEF64, 0xEF65, 0xEF66, 0xEF67, 0xEF68, 0xEF69, 0xEF6A, 0xEF6B, +0xEF6C, 0xEF6D, 0xEF6E, 0xEF6F, 0xEF70, 0xEF71, 0xB7E7, 0xEF72, +0xEF73, 0xECA9, 0xECAA, 0xECAB, 0xEF74, 0xECAC, 0xEF75, 0xEF76, +0xC6AE, 0xECAD, 0xECAE, 0xEF77, 0xEF78, 0xEF79, 0xB7C9, 0xCAB3, +0xEF7A, 0xEF7B, 0xEF7C, 0xEF7D, 0xEF7E, 0xEF80, 0xEF81, 0xE2B8, +0xF7CF, 0xEF82, 0xEF83, 0xEF84, 0xEF85, 0xEF86, 0xEF87, 0xEF88, +0xEF89, 0xEF8A, 0xEF8B, 0xEF8C, 0xEF8D, 0xEF8E, 0xEF8F, 0xEF90, +0xEF91, 0xEF92, 0xEF93, 0xEF94, 0xEF95, 0xEF96, 0xEF97, 0xEF98, +0xEF99, 0xEF9A, 0xEF9B, 0xEF9C, 0xEF9D, 0xEF9E, 0xEF9F, 0xEFA0, +0xF040, 0xF041, 0xF042, 0xF043, 0xF044, 0xF7D0, 0xF045, 0xF046, +0xB2CD, 0xF047, 0xF048, 0xF049, 0xF04A, 0xF04B, 0xF04C, 0xF04D, +0xF04E, 0xF04F, 0xF050, 0xF051, 0xF052, 0xF053, 0xF054, 0xF055, +0xF056, 0xF057, 0xF058, 0xF059, 0xF05A, 0xF05B, 0xF05C, 0xF05D, +0xF05E, 0xF05F, 0xF060, 0xF061, 0xF062, 0xF063, 0xF7D1, 0xF064, +0xF065, 0xF066, 0xF067, 0xF068, 0xF069, 0xF06A, 0xF06B, 0xF06C, +0xF06D, 0xF06E, 0xF06F, 0xF070, 0xF071, 0xF072, 0xF073, 0xF074, +0xF075, 0xF076, 0xF077, 0xF078, 0xF079, 0xF07A, 0xF07B, 0xF07C, +0xF07D, 0xF07E, 0xF080, 0xF081, 0xF082, 0xF083, 0xF084, 0xF085, +0xF086, 0xF087, 0xF088, 0xF089, 0xF7D3, 0xF7D2, 0xF08A, 0xF08B, +0xF08C, 0xF08D, 0xF08E, 0xF08F, 0xF090, 0xF091, 0xF092, 0xF093, +0xF094, 0xF095, 0xF096, 0xE2BB, 0xF097, 0xBCA2, 0xF098, 0xE2BC, +0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, 0xE2C1, 0xB7B9, 0xD2FB, 0xBDA4, +0xCACE, 0xB1A5, 0xCBC7, 0xF099, 0xE2C2, 0xB6FC, 0xC8C4, 0xE2C3, +0xF09A, 0xF09B, 0xBDC8, 0xF09C, 0xB1FD, 0xE2C4, 0xF09D, 0xB6F6, +0xE2C5, 0xC4D9, 0xF09E, 0xF09F, 0xE2C6, 0xCFDA, 0xB9DD, 0xE2C7, +0xC0A1, 0xF0A0, 0xE2C8, 0xB2F6, 0xF140, 0xE2C9, 0xF141, 0xC1F3, +0xE2CA, 0xE2CB, 0xC2F8, 0xE2CC, 0xE2CD, 0xE2CE, 0xCAD7, 0xD8B8, +0xD9E5, 0xCFE3, 0xF142, 0xF143, 0xF144, 0xF145, 0xF146, 0xF147, +0xF148, 0xF149, 0xF14A, 0xF14B, 0xF14C, 0xF0A5, 0xF14D, 0xF14E, +0xDCB0, 0xF14F, 0xF150, 0xF151, 0xF152, 0xF153, 0xF154, 0xF155, +0xF156, 0xF157, 0xF158, 0xF159, 0xF15A, 0xF15B, 0xF15C, 0xF15D, +0xF15E, 0xF15F, 0xF160, 0xF161, 0xF162, 0xF163, 0xF164, 0xF165, +0xF166, 0xF167, 0xF168, 0xF169, 0xF16A, 0xF16B, 0xF16C, 0xF16D, +0xF16E, 0xF16F, 0xF170, 0xF171, 0xF172, 0xF173, 0xF174, 0xF175, +0xF176, 0xF177, 0xF178, 0xF179, 0xF17A, 0xF17B, 0xF17C, 0xF17D, +0xF17E, 0xF180, 0xF181, 0xF182, 0xF183, 0xF184, 0xF185, 0xF186, +0xF187, 0xF188, 0xF189, 0xF18A, 0xF18B, 0xF18C, 0xF18D, 0xF18E, +0xF18F, 0xF190, 0xF191, 0xF192, 0xF193, 0xF194, 0xF195, 0xF196, +0xF197, 0xF198, 0xF199, 0xF19A, 0xF19B, 0xF19C, 0xF19D, 0xF19E, +0xF19F, 0xF1A0, 0xF240, 0xF241, 0xF242, 0xF243, 0xF244, 0xF245, +0xF246, 0xF247, 0xF248, 0xF249, 0xF24A, 0xF24B, 0xF24C, 0xF24D, +0xF24E, 0xF24F, 0xF250, 0xF251, 0xF252, 0xF253, 0xF254, 0xF255, +0xF256, 0xF257, 0xF258, 0xF259, 0xF25A, 0xF25B, 0xF25C, 0xF25D, +0xF25E, 0xF25F, 0xF260, 0xF261, 0xF262, 0xF263, 0xF264, 0xF265, +0xF266, 0xF267, 0xF268, 0xF269, 0xF26A, 0xF26B, 0xF26C, 0xF26D, +0xF26E, 0xF26F, 0xF270, 0xF271, 0xF272, 0xF273, 0xF274, 0xF275, +0xF276, 0xF277, 0xF278, 0xF279, 0xF27A, 0xF27B, 0xF27C, 0xF27D, +0xF27E, 0xF280, 0xF281, 0xF282, 0xF283, 0xF284, 0xF285, 0xF286, +0xF287, 0xF288, 0xF289, 0xF28A, 0xF28B, 0xF28C, 0xF28D, 0xF28E, +0xF28F, 0xF290, 0xF291, 0xF292, 0xF293, 0xF294, 0xF295, 0xF296, +0xF297, 0xF298, 0xF299, 0xF29A, 0xF29B, 0xF29C, 0xF29D, 0xF29E, +0xF29F, 0xF2A0, 0xF340, 0xF341, 0xF342, 0xF343, 0xF344, 0xF345, +0xF346, 0xF347, 0xF348, 0xF349, 0xF34A, 0xF34B, 0xF34C, 0xF34D, +0xF34E, 0xF34F, 0xF350, 0xF351, 0xC2ED, 0xD4A6, 0xCDD4, 0xD1B1, +0xB3DB, 0xC7FD, 0xF352, 0xB2B5, 0xC2BF, 0xE6E0, 0xCABB, 0xE6E1, +0xE6E2, 0xBED4, 0xE6E3, 0xD7A4, 0xCDD5, 0xE6E5, 0xBCDD, 0xE6E4, +0xE6E6, 0xE6E7, 0xC2EE, 0xF353, 0xBDBE, 0xE6E8, 0xC2E6, 0xBAA7, +0xE6E9, 0xF354, 0xE6EA, 0xB3D2, 0xD1E9, 0xF355, 0xF356, 0xBFA5, +0xE6EB, 0xC6EF, 0xE6EC, 0xE6ED, 0xF357, 0xF358, 0xE6EE, 0xC6AD, +0xE6EF, 0xF359, 0xC9A7, 0xE6F0, 0xE6F1, 0xE6F2, 0xE5B9, 0xE6F3, +0xE6F4, 0xC2E2, 0xE6F5, 0xE6F6, 0xD6E8, 0xE6F7, 0xF35A, 0xE6F8, +0xB9C7, 0xF35B, 0xF35C, 0xF35D, 0xF35E, 0xF35F, 0xF360, 0xF361, +0xF7BB, 0xF7BA, 0xF362, 0xF363, 0xF364, 0xF365, 0xF7BE, 0xF7BC, +0xBAA1, 0xF366, 0xF7BF, 0xF367, 0xF7C0, 0xF368, 0xF369, 0xF36A, +0xF7C2, 0xF7C1, 0xF7C4, 0xF36B, 0xF36C, 0xF7C3, 0xF36D, 0xF36E, +0xF36F, 0xF370, 0xF371, 0xF7C5, 0xF7C6, 0xF372, 0xF373, 0xF374, +0xF375, 0xF7C7, 0xF376, 0xCBE8, 0xF377, 0xF378, 0xF379, 0xF37A, +0xB8DF, 0xF37B, 0xF37C, 0xF37D, 0xF37E, 0xF380, 0xF381, 0xF7D4, +0xF382, 0xF7D5, 0xF383, 0xF384, 0xF385, 0xF386, 0xF7D6, 0xF387, +0xF388, 0xF389, 0xF38A, 0xF7D8, 0xF38B, 0xF7DA, 0xF38C, 0xF7D7, +0xF38D, 0xF38E, 0xF38F, 0xF390, 0xF391, 0xF392, 0xF393, 0xF394, +0xF395, 0xF7DB, 0xF396, 0xF7D9, 0xF397, 0xF398, 0xF399, 0xF39A, +0xF39B, 0xF39C, 0xF39D, 0xD7D7, 0xF39E, 0xF39F, 0xF3A0, 0xF440, +0xF7DC, 0xF441, 0xF442, 0xF443, 0xF444, 0xF445, 0xF446, 0xF7DD, +0xF447, 0xF448, 0xF449, 0xF7DE, 0xF44A, 0xF44B, 0xF44C, 0xF44D, +0xF44E, 0xF44F, 0xF450, 0xF451, 0xF452, 0xF453, 0xF454, 0xF7DF, +0xF455, 0xF456, 0xF457, 0xF7E0, 0xF458, 0xF459, 0xF45A, 0xF45B, +0xF45C, 0xF45D, 0xF45E, 0xF45F, 0xF460, 0xF461, 0xF462, 0xDBCB, +0xF463, 0xF464, 0xD8AA, 0xF465, 0xF466, 0xF467, 0xF468, 0xF469, +0xF46A, 0xF46B, 0xF46C, 0xE5F7, 0xB9ED, 0xF46D, 0xF46E, 0xF46F, +0xF470, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8, 0xF471, 0xF7CA, +0xF7CC, 0xF7CB, 0xF472, 0xF473, 0xF474, 0xF7CD, 0xF475, 0xCEBA, +0xF476, 0xF7CE, 0xF477, 0xF478, 0xC4A7, 0xF479, 0xF47A, 0xF47B, +0xF47C, 0xF47D, 0xF47E, 0xF480, 0xF481, 0xF482, 0xF483, 0xF484, +0xF485, 0xF486, 0xF487, 0xF488, 0xF489, 0xF48A, 0xF48B, 0xF48C, +0xF48D, 0xF48E, 0xF48F, 0xF490, 0xF491, 0xF492, 0xF493, 0xF494, +0xF495, 0xF496, 0xF497, 0xF498, 0xF499, 0xF49A, 0xF49B, 0xF49C, +0xF49D, 0xF49E, 0xF49F, 0xF4A0, 0xF540, 0xF541, 0xF542, 0xF543, +0xF544, 0xF545, 0xF546, 0xF547, 0xF548, 0xF549, 0xF54A, 0xF54B, +0xF54C, 0xF54D, 0xF54E, 0xF54F, 0xF550, 0xF551, 0xF552, 0xF553, +0xF554, 0xF555, 0xF556, 0xF557, 0xF558, 0xF559, 0xF55A, 0xF55B, +0xF55C, 0xF55D, 0xF55E, 0xF55F, 0xF560, 0xF561, 0xF562, 0xF563, +0xF564, 0xF565, 0xF566, 0xF567, 0xF568, 0xF569, 0xF56A, 0xF56B, +0xF56C, 0xF56D, 0xF56E, 0xF56F, 0xF570, 0xF571, 0xF572, 0xF573, +0xF574, 0xF575, 0xF576, 0xF577, 0xF578, 0xF579, 0xF57A, 0xF57B, +0xF57C, 0xF57D, 0xF57E, 0xF580, 0xF581, 0xF582, 0xF583, 0xF584, +0xF585, 0xF586, 0xF587, 0xF588, 0xF589, 0xF58A, 0xF58B, 0xF58C, +0xF58D, 0xF58E, 0xF58F, 0xF590, 0xF591, 0xF592, 0xF593, 0xF594, +0xF595, 0xF596, 0xF597, 0xF598, 0xF599, 0xF59A, 0xF59B, 0xF59C, +0xF59D, 0xF59E, 0xF59F, 0xF5A0, 0xF640, 0xF641, 0xF642, 0xF643, +0xF644, 0xF645, 0xF646, 0xF647, 0xF648, 0xF649, 0xF64A, 0xF64B, +0xF64C, 0xF64D, 0xF64E, 0xF64F, 0xF650, 0xF651, 0xF652, 0xF653, +0xF654, 0xF655, 0xF656, 0xF657, 0xF658, 0xF659, 0xF65A, 0xF65B, +0xF65C, 0xF65D, 0xF65E, 0xF65F, 0xF660, 0xF661, 0xF662, 0xF663, +0xF664, 0xF665, 0xF666, 0xF667, 0xF668, 0xF669, 0xF66A, 0xF66B, +0xF66C, 0xF66D, 0xF66E, 0xF66F, 0xF670, 0xF671, 0xF672, 0xF673, +0xF674, 0xF675, 0xF676, 0xF677, 0xF678, 0xF679, 0xF67A, 0xF67B, +0xF67C, 0xF67D, 0xF67E, 0xF680, 0xF681, 0xF682, 0xF683, 0xF684, +0xF685, 0xF686, 0xF687, 0xF688, 0xF689, 0xF68A, 0xF68B, 0xF68C, +0xF68D, 0xF68E, 0xF68F, 0xF690, 0xF691, 0xF692, 0xF693, 0xF694, +0xF695, 0xF696, 0xF697, 0xF698, 0xF699, 0xF69A, 0xF69B, 0xF69C, +0xF69D, 0xF69E, 0xF69F, 0xF6A0, 0xF740, 0xF741, 0xF742, 0xF743, +0xF744, 0xF745, 0xF746, 0xF747, 0xF748, 0xF749, 0xF74A, 0xF74B, +0xF74C, 0xF74D, 0xF74E, 0xF74F, 0xF750, 0xF751, 0xF752, 0xF753, +0xF754, 0xF755, 0xF756, 0xF757, 0xF758, 0xF759, 0xF75A, 0xF75B, +0xF75C, 0xF75D, 0xF75E, 0xF75F, 0xF760, 0xF761, 0xF762, 0xF763, +0xF764, 0xF765, 0xF766, 0xF767, 0xF768, 0xF769, 0xF76A, 0xF76B, +0xF76C, 0xF76D, 0xF76E, 0xF76F, 0xF770, 0xF771, 0xF772, 0xF773, +0xF774, 0xF775, 0xF776, 0xF777, 0xF778, 0xF779, 0xF77A, 0xF77B, +0xF77C, 0xF77D, 0xF77E, 0xF780, 0xD3E3, 0xF781, 0xF782, 0xF6CF, +0xF783, 0xC2B3, 0xF6D0, 0xF784, 0xF785, 0xF6D1, 0xF6D2, 0xF6D3, +0xF6D4, 0xF786, 0xF787, 0xF6D6, 0xF788, 0xB1AB, 0xF6D7, 0xF789, +0xF6D8, 0xF6D9, 0xF6DA, 0xF78A, 0xF6DB, 0xF6DC, 0xF78B, 0xF78C, +0xF78D, 0xF78E, 0xF6DD, 0xF6DE, 0xCFCA, 0xF78F, 0xF6DF, 0xF6E0, +0xF6E1, 0xF6E2, 0xF6E3, 0xF6E4, 0xC0F0, 0xF6E5, 0xF6E6, 0xF6E7, +0xF6E8, 0xF6E9, 0xF790, 0xF6EA, 0xF791, 0xF6EB, 0xF6EC, 0xF792, +0xF6ED, 0xF6EE, 0xF6EF, 0xF6F0, 0xF6F1, 0xF6F2, 0xF6F3, 0xF6F4, +0xBEA8, 0xF793, 0xF6F5, 0xF6F6, 0xF6F7, 0xF6F8, 0xF794, 0xF795, +0xF796, 0xF797, 0xF798, 0xC8FA, 0xF6F9, 0xF6FA, 0xF6FB, 0xF6FC, +0xF799, 0xF79A, 0xF6FD, 0xF6FE, 0xF7A1, 0xF7A2, 0xF7A3, 0xF7A4, +0xF7A5, 0xF79B, 0xF79C, 0xF7A6, 0xF7A7, 0xF7A8, 0xB1EE, 0xF7A9, +0xF7AA, 0xF7AB, 0xF79D, 0xF79E, 0xF7AC, 0xF7AD, 0xC1DB, 0xF7AE, +0xF79F, 0xF7A0, 0xF7AF, 0xF840, 0xF841, 0xF842, 0xF843, 0xF844, +0xF845, 0xF846, 0xF847, 0xF848, 0xF849, 0xF84A, 0xF84B, 0xF84C, +0xF84D, 0xF84E, 0xF84F, 0xF850, 0xF851, 0xF852, 0xF853, 0xF854, +0xF855, 0xF856, 0xF857, 0xF858, 0xF859, 0xF85A, 0xF85B, 0xF85C, +0xF85D, 0xF85E, 0xF85F, 0xF860, 0xF861, 0xF862, 0xF863, 0xF864, +0xF865, 0xF866, 0xF867, 0xF868, 0xF869, 0xF86A, 0xF86B, 0xF86C, +0xF86D, 0xF86E, 0xF86F, 0xF870, 0xF871, 0xF872, 0xF873, 0xF874, +0xF875, 0xF876, 0xF877, 0xF878, 0xF879, 0xF87A, 0xF87B, 0xF87C, +0xF87D, 0xF87E, 0xF880, 0xF881, 0xF882, 0xF883, 0xF884, 0xF885, +0xF886, 0xF887, 0xF888, 0xF889, 0xF88A, 0xF88B, 0xF88C, 0xF88D, +0xF88E, 0xF88F, 0xF890, 0xF891, 0xF892, 0xF893, 0xF894, 0xF895, +0xF896, 0xF897, 0xF898, 0xF899, 0xF89A, 0xF89B, 0xF89C, 0xF89D, +0xF89E, 0xF89F, 0xF8A0, 0xF940, 0xF941, 0xF942, 0xF943, 0xF944, +0xF945, 0xF946, 0xF947, 0xF948, 0xF949, 0xF94A, 0xF94B, 0xF94C, +0xF94D, 0xF94E, 0xF94F, 0xF950, 0xF951, 0xF952, 0xF953, 0xF954, +0xF955, 0xF956, 0xF957, 0xF958, 0xF959, 0xF95A, 0xF95B, 0xF95C, +0xF95D, 0xF95E, 0xF95F, 0xF960, 0xF961, 0xF962, 0xF963, 0xF964, +0xF965, 0xF966, 0xF967, 0xF968, 0xF969, 0xF96A, 0xF96B, 0xF96C, +0xF96D, 0xF96E, 0xF96F, 0xF970, 0xF971, 0xF972, 0xF973, 0xF974, +0xF975, 0xF976, 0xF977, 0xF978, 0xF979, 0xF97A, 0xF97B, 0xF97C, +0xF97D, 0xF97E, 0xF980, 0xF981, 0xF982, 0xF983, 0xF984, 0xF985, +0xF986, 0xF987, 0xF988, 0xF989, 0xF98A, 0xF98B, 0xF98C, 0xF98D, +0xF98E, 0xF98F, 0xF990, 0xF991, 0xF992, 0xF993, 0xF994, 0xF995, +0xF996, 0xF997, 0xF998, 0xF999, 0xF99A, 0xF99B, 0xF99C, 0xF99D, +0xF99E, 0xF99F, 0xF9A0, 0xFA40, 0xFA41, 0xFA42, 0xFA43, 0xFA44, +0xFA45, 0xFA46, 0xFA47, 0xFA48, 0xFA49, 0xFA4A, 0xFA4B, 0xFA4C, +0xFA4D, 0xFA4E, 0xFA4F, 0xFA50, 0xFA51, 0xFA52, 0xFA53, 0xFA54, +0xFA55, 0xFA56, 0xFA57, 0xFA58, 0xFA59, 0xFA5A, 0xFA5B, 0xFA5C, +0xFA5D, 0xFA5E, 0xFA5F, 0xFA60, 0xFA61, 0xFA62, 0xFA63, 0xFA64, +0xFA65, 0xFA66, 0xFA67, 0xFA68, 0xFA69, 0xFA6A, 0xFA6B, 0xFA6C, +0xFA6D, 0xFA6E, 0xFA6F, 0xFA70, 0xFA71, 0xFA72, 0xFA73, 0xFA74, +0xFA75, 0xFA76, 0xFA77, 0xFA78, 0xFA79, 0xFA7A, 0xFA7B, 0xFA7C, +0xFA7D, 0xFA7E, 0xFA80, 0xFA81, 0xFA82, 0xFA83, 0xFA84, 0xFA85, +0xFA86, 0xFA87, 0xFA88, 0xFA89, 0xFA8A, 0xFA8B, 0xFA8C, 0xFA8D, +0xFA8E, 0xFA8F, 0xFA90, 0xFA91, 0xFA92, 0xFA93, 0xFA94, 0xFA95, +0xFA96, 0xFA97, 0xFA98, 0xFA99, 0xFA9A, 0xFA9B, 0xFA9C, 0xFA9D, +0xFA9E, 0xFA9F, 0xFAA0, 0xFB40, 0xFB41, 0xFB42, 0xFB43, 0xFB44, +0xFB45, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C, +0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, +0xFB55, 0xFB56, 0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B, 0xC4F1, +0xF0AF, 0xBCA6, 0xF0B0, 0xC3F9, 0xFB5C, 0xC5B8, 0xD1BB, 0xFB5D, +0xF0B1, 0xF0B2, 0xF0B3, 0xF0B4, 0xF0B5, 0xD1BC, 0xFB5E, 0xD1EC, +0xFB5F, 0xF0B7, 0xF0B6, 0xD4A7, 0xFB60, 0xCDD2, 0xF0B8, 0xF0BA, +0xF0B9, 0xF0BB, 0xF0BC, 0xFB61, 0xFB62, 0xB8EB, 0xF0BD, 0xBAE8, +0xFB63, 0xF0BE, 0xF0BF, 0xBEE9, 0xF0C0, 0xB6EC, 0xF0C1, 0xF0C2, +0xF0C3, 0xF0C4, 0xC8B5, 0xF0C5, 0xF0C6, 0xFB64, 0xF0C7, 0xC5F4, +0xFB65, 0xF0C8, 0xFB66, 0xFB67, 0xFB68, 0xF0C9, 0xFB69, 0xF0CA, +0xF7BD, 0xFB6A, 0xF0CB, 0xF0CC, 0xF0CD, 0xFB6B, 0xF0CE, 0xFB6C, +0xFB6D, 0xFB6E, 0xFB6F, 0xF0CF, 0xBAD7, 0xFB70, 0xF0D0, 0xF0D1, +0xF0D2, 0xF0D3, 0xF0D4, 0xF0D5, 0xF0D6, 0xF0D8, 0xFB71, 0xFB72, +0xD3A5, 0xF0D7, 0xFB73, 0xF0D9, 0xFB74, 0xFB75, 0xFB76, 0xFB77, +0xFB78, 0xFB79, 0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D, 0xF5BA, 0xC2B9, +0xFB7E, 0xFB80, 0xF7E4, 0xFB81, 0xFB82, 0xFB83, 0xFB84, 0xF7E5, +0xF7E6, 0xFB85, 0xFB86, 0xF7E7, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, +0xFB8B, 0xFB8C, 0xF7E8, 0xC2B4, 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, +0xFB91, 0xFB92, 0xFB93, 0xFB94, 0xFB95, 0xF7EA, 0xFB96, 0xF7EB, +0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C, 0xC2F3, 0xFB9D, +0xFB9E, 0xFB9F, 0xFBA0, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, +0xFC45, 0xFC46, 0xFC47, 0xFC48, 0xF4F0, 0xFC49, 0xFC4A, 0xFC4B, +0xF4EF, 0xFC4C, 0xFC4D, 0xC2E9, 0xFC4E, 0xF7E1, 0xF7E2, 0xFC4F, +0xFC50, 0xFC51, 0xFC52, 0xFC53, 0xBBC6, 0xFC54, 0xFC55, 0xFC56, +0xFC57, 0xD9E4, 0xFC58, 0xFC59, 0xFC5A, 0xCAF2, 0xC0E8, 0xF0A4, +0xFC5B, 0xBADA, 0xFC5C, 0xFC5D, 0xC7AD, 0xFC5E, 0xFC5F, 0xFC60, +0xC4AC, 0xFC61, 0xFC62, 0xF7EC, 0xF7ED, 0xF7EE, 0xFC63, 0xF7F0, +0xF7EF, 0xFC64, 0xF7F1, 0xFC65, 0xFC66, 0xF7F4, 0xFC67, 0xF7F3, +0xFC68, 0xF7F2, 0xF7F5, 0xFC69, 0xFC6A, 0xFC6B, 0xFC6C, 0xF7F6, +0xFC6D, 0xFC6E, 0xFC6F, 0xFC70, 0xFC71, 0xFC72, 0xFC73, 0xFC74, +0xFC75, 0xEDE9, 0xFC76, 0xEDEA, 0xEDEB, 0xFC77, 0xF6BC, 0xFC78, +0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D, 0xFC7E, 0xFC80, 0xFC81, +0xFC82, 0xFC83, 0xFC84, 0xF6BD, 0xFC85, 0xF6BE, 0xB6A6, 0xFC86, +0xD8BE, 0xFC87, 0xFC88, 0xB9C4, 0xFC89, 0xFC8A, 0xFC8B, 0xD8BB, +0xFC8C, 0xDCB1, 0xFC8D, 0xFC8E, 0xFC8F, 0xFC90, 0xFC91, 0xFC92, +0xCAF3, 0xFC93, 0xF7F7, 0xFC94, 0xFC95, 0xFC96, 0xFC97, 0xFC98, +0xFC99, 0xFC9A, 0xFC9B, 0xFC9C, 0xF7F8, 0xFC9D, 0xFC9E, 0xF7F9, +0xFC9F, 0xFCA0, 0xFD40, 0xFD41, 0xFD42, 0xFD43, 0xFD44, 0xF7FB, +0xFD45, 0xF7FA, 0xFD46, 0xB1C7, 0xFD47, 0xF7FC, 0xF7FD, 0xFD48, +0xFD49, 0xFD4A, 0xFD4B, 0xFD4C, 0xF7FE, 0xFD4D, 0xFD4E, 0xFD4F, +0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55, 0xFD56, 0xFD57, +0xC6EB, 0xECB4, 0xFD58, 0xFD59, 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, +0xFD5E, 0xFD5F, 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65, +0xFD66, 0xFD67, 0xFD68, 0xFD69, 0xFD6A, 0xFD6B, 0xFD6C, 0xFD6D, +0xFD6E, 0xFD6F, 0xFD70, 0xFD71, 0xFD72, 0xFD73, 0xFD74, 0xFD75, +0xFD76, 0xFD77, 0xFD78, 0xFD79, 0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D, +0xFD7E, 0xFD80, 0xFD81, 0xFD82, 0xFD83, 0xFD84, 0xFD85, 0xB3DD, +0xF6B3, 0xFD86, 0xFD87, 0xF6B4, 0xC1E4, 0xF6B5, 0xF6B6, 0xF6B7, +0xF6B8, 0xF6B9, 0xF6BA, 0xC8A3, 0xF6BB, 0xFD88, 0xFD89, 0xFD8A, +0xFD8B, 0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD90, 0xFD91, 0xFD92, +0xFD93, 0xC1FA, 0xB9A8, 0xEDE8, 0xFD94, 0xFD95, 0xFD96, 0xB9EA, +0xD9DF, 0xFD97, 0xFD98, 0xFD99, 0xFD9A, 0xFD9B +}; + +/** + Mapping table from Unicode to gb18030, part two + For Unicode in [0xE000, 0xE865) and (0xF92B, 0xFFFF] + The values here have the same meaning with tab_uni_gb18030_p1 +*/ +static const uint16 tab_uni_gb18030_p2[]= +{ +0xAAA1, 0xAAA2, 0xAAA3, 0xAAA4, 0xAAA5, 0xAAA6, 0xAAA7, 0xAAA8, +0xAAA9, 0xAAAA, 0xAAAB, 0xAAAC, 0xAAAD, 0xAAAE, 0xAAAF, 0xAAB0, +0xAAB1, 0xAAB2, 0xAAB3, 0xAAB4, 0xAAB5, 0xAAB6, 0xAAB7, 0xAAB8, +0xAAB9, 0xAABA, 0xAABB, 0xAABC, 0xAABD, 0xAABE, 0xAABF, 0xAAC0, +0xAAC1, 0xAAC2, 0xAAC3, 0xAAC4, 0xAAC5, 0xAAC6, 0xAAC7, 0xAAC8, +0xAAC9, 0xAACA, 0xAACB, 0xAACC, 0xAACD, 0xAACE, 0xAACF, 0xAAD0, +0xAAD1, 0xAAD2, 0xAAD3, 0xAAD4, 0xAAD5, 0xAAD6, 0xAAD7, 0xAAD8, +0xAAD9, 0xAADA, 0xAADB, 0xAADC, 0xAADD, 0xAADE, 0xAADF, 0xAAE0, +0xAAE1, 0xAAE2, 0xAAE3, 0xAAE4, 0xAAE5, 0xAAE6, 0xAAE7, 0xAAE8, +0xAAE9, 0xAAEA, 0xAAEB, 0xAAEC, 0xAAED, 0xAAEE, 0xAAEF, 0xAAF0, +0xAAF1, 0xAAF2, 0xAAF3, 0xAAF4, 0xAAF5, 0xAAF6, 0xAAF7, 0xAAF8, +0xAAF9, 0xAAFA, 0xAAFB, 0xAAFC, 0xAAFD, 0xAAFE, 0xABA1, 0xABA2, +0xABA3, 0xABA4, 0xABA5, 0xABA6, 0xABA7, 0xABA8, 0xABA9, 0xABAA, +0xABAB, 0xABAC, 0xABAD, 0xABAE, 0xABAF, 0xABB0, 0xABB1, 0xABB2, +0xABB3, 0xABB4, 0xABB5, 0xABB6, 0xABB7, 0xABB8, 0xABB9, 0xABBA, +0xABBB, 0xABBC, 0xABBD, 0xABBE, 0xABBF, 0xABC0, 0xABC1, 0xABC2, +0xABC3, 0xABC4, 0xABC5, 0xABC6, 0xABC7, 0xABC8, 0xABC9, 0xABCA, +0xABCB, 0xABCC, 0xABCD, 0xABCE, 0xABCF, 0xABD0, 0xABD1, 0xABD2, +0xABD3, 0xABD4, 0xABD5, 0xABD6, 0xABD7, 0xABD8, 0xABD9, 0xABDA, +0xABDB, 0xABDC, 0xABDD, 0xABDE, 0xABDF, 0xABE0, 0xABE1, 0xABE2, +0xABE3, 0xABE4, 0xABE5, 0xABE6, 0xABE7, 0xABE8, 0xABE9, 0xABEA, +0xABEB, 0xABEC, 0xABED, 0xABEE, 0xABEF, 0xABF0, 0xABF1, 0xABF2, +0xABF3, 0xABF4, 0xABF5, 0xABF6, 0xABF7, 0xABF8, 0xABF9, 0xABFA, +0xABFB, 0xABFC, 0xABFD, 0xABFE, 0xACA1, 0xACA2, 0xACA3, 0xACA4, +0xACA5, 0xACA6, 0xACA7, 0xACA8, 0xACA9, 0xACAA, 0xACAB, 0xACAC, +0xACAD, 0xACAE, 0xACAF, 0xACB0, 0xACB1, 0xACB2, 0xACB3, 0xACB4, +0xACB5, 0xACB6, 0xACB7, 0xACB8, 0xACB9, 0xACBA, 0xACBB, 0xACBC, +0xACBD, 0xACBE, 0xACBF, 0xACC0, 0xACC1, 0xACC2, 0xACC3, 0xACC4, +0xACC5, 0xACC6, 0xACC7, 0xACC8, 0xACC9, 0xACCA, 0xACCB, 0xACCC, +0xACCD, 0xACCE, 0xACCF, 0xACD0, 0xACD1, 0xACD2, 0xACD3, 0xACD4, +0xACD5, 0xACD6, 0xACD7, 0xACD8, 0xACD9, 0xACDA, 0xACDB, 0xACDC, +0xACDD, 0xACDE, 0xACDF, 0xACE0, 0xACE1, 0xACE2, 0xACE3, 0xACE4, +0xACE5, 0xACE6, 0xACE7, 0xACE8, 0xACE9, 0xACEA, 0xACEB, 0xACEC, +0xACED, 0xACEE, 0xACEF, 0xACF0, 0xACF1, 0xACF2, 0xACF3, 0xACF4, +0xACF5, 0xACF6, 0xACF7, 0xACF8, 0xACF9, 0xACFA, 0xACFB, 0xACFC, +0xACFD, 0xACFE, 0xADA1, 0xADA2, 0xADA3, 0xADA4, 0xADA5, 0xADA6, +0xADA7, 0xADA8, 0xADA9, 0xADAA, 0xADAB, 0xADAC, 0xADAD, 0xADAE, +0xADAF, 0xADB0, 0xADB1, 0xADB2, 0xADB3, 0xADB4, 0xADB5, 0xADB6, +0xADB7, 0xADB8, 0xADB9, 0xADBA, 0xADBB, 0xADBC, 0xADBD, 0xADBE, +0xADBF, 0xADC0, 0xADC1, 0xADC2, 0xADC3, 0xADC4, 0xADC5, 0xADC6, +0xADC7, 0xADC8, 0xADC9, 0xADCA, 0xADCB, 0xADCC, 0xADCD, 0xADCE, +0xADCF, 0xADD0, 0xADD1, 0xADD2, 0xADD3, 0xADD4, 0xADD5, 0xADD6, +0xADD7, 0xADD8, 0xADD9, 0xADDA, 0xADDB, 0xADDC, 0xADDD, 0xADDE, +0xADDF, 0xADE0, 0xADE1, 0xADE2, 0xADE3, 0xADE4, 0xADE5, 0xADE6, +0xADE7, 0xADE8, 0xADE9, 0xADEA, 0xADEB, 0xADEC, 0xADED, 0xADEE, +0xADEF, 0xADF0, 0xADF1, 0xADF2, 0xADF3, 0xADF4, 0xADF5, 0xADF6, +0xADF7, 0xADF8, 0xADF9, 0xADFA, 0xADFB, 0xADFC, 0xADFD, 0xADFE, +0xAEA1, 0xAEA2, 0xAEA3, 0xAEA4, 0xAEA5, 0xAEA6, 0xAEA7, 0xAEA8, +0xAEA9, 0xAEAA, 0xAEAB, 0xAEAC, 0xAEAD, 0xAEAE, 0xAEAF, 0xAEB0, +0xAEB1, 0xAEB2, 0xAEB3, 0xAEB4, 0xAEB5, 0xAEB6, 0xAEB7, 0xAEB8, +0xAEB9, 0xAEBA, 0xAEBB, 0xAEBC, 0xAEBD, 0xAEBE, 0xAEBF, 0xAEC0, +0xAEC1, 0xAEC2, 0xAEC3, 0xAEC4, 0xAEC5, 0xAEC6, 0xAEC7, 0xAEC8, +0xAEC9, 0xAECA, 0xAECB, 0xAECC, 0xAECD, 0xAECE, 0xAECF, 0xAED0, +0xAED1, 0xAED2, 0xAED3, 0xAED4, 0xAED5, 0xAED6, 0xAED7, 0xAED8, +0xAED9, 0xAEDA, 0xAEDB, 0xAEDC, 0xAEDD, 0xAEDE, 0xAEDF, 0xAEE0, +0xAEE1, 0xAEE2, 0xAEE3, 0xAEE4, 0xAEE5, 0xAEE6, 0xAEE7, 0xAEE8, +0xAEE9, 0xAEEA, 0xAEEB, 0xAEEC, 0xAEED, 0xAEEE, 0xAEEF, 0xAEF0, +0xAEF1, 0xAEF2, 0xAEF3, 0xAEF4, 0xAEF5, 0xAEF6, 0xAEF7, 0xAEF8, +0xAEF9, 0xAEFA, 0xAEFB, 0xAEFC, 0xAEFD, 0xAEFE, 0xAFA1, 0xAFA2, +0xAFA3, 0xAFA4, 0xAFA5, 0xAFA6, 0xAFA7, 0xAFA8, 0xAFA9, 0xAFAA, +0xAFAB, 0xAFAC, 0xAFAD, 0xAFAE, 0xAFAF, 0xAFB0, 0xAFB1, 0xAFB2, +0xAFB3, 0xAFB4, 0xAFB5, 0xAFB6, 0xAFB7, 0xAFB8, 0xAFB9, 0xAFBA, +0xAFBB, 0xAFBC, 0xAFBD, 0xAFBE, 0xAFBF, 0xAFC0, 0xAFC1, 0xAFC2, +0xAFC3, 0xAFC4, 0xAFC5, 0xAFC6, 0xAFC7, 0xAFC8, 0xAFC9, 0xAFCA, +0xAFCB, 0xAFCC, 0xAFCD, 0xAFCE, 0xAFCF, 0xAFD0, 0xAFD1, 0xAFD2, +0xAFD3, 0xAFD4, 0xAFD5, 0xAFD6, 0xAFD7, 0xAFD8, 0xAFD9, 0xAFDA, +0xAFDB, 0xAFDC, 0xAFDD, 0xAFDE, 0xAFDF, 0xAFE0, 0xAFE1, 0xAFE2, +0xAFE3, 0xAFE4, 0xAFE5, 0xAFE6, 0xAFE7, 0xAFE8, 0xAFE9, 0xAFEA, +0xAFEB, 0xAFEC, 0xAFED, 0xAFEE, 0xAFEF, 0xAFF0, 0xAFF1, 0xAFF2, +0xAFF3, 0xAFF4, 0xAFF5, 0xAFF6, 0xAFF7, 0xAFF8, 0xAFF9, 0xAFFA, +0xAFFB, 0xAFFC, 0xAFFD, 0xAFFE, 0xF8A1, 0xF8A2, 0xF8A3, 0xF8A4, +0xF8A5, 0xF8A6, 0xF8A7, 0xF8A8, 0xF8A9, 0xF8AA, 0xF8AB, 0xF8AC, +0xF8AD, 0xF8AE, 0xF8AF, 0xF8B0, 0xF8B1, 0xF8B2, 0xF8B3, 0xF8B4, +0xF8B5, 0xF8B6, 0xF8B7, 0xF8B8, 0xF8B9, 0xF8BA, 0xF8BB, 0xF8BC, +0xF8BD, 0xF8BE, 0xF8BF, 0xF8C0, 0xF8C1, 0xF8C2, 0xF8C3, 0xF8C4, +0xF8C5, 0xF8C6, 0xF8C7, 0xF8C8, 0xF8C9, 0xF8CA, 0xF8CB, 0xF8CC, +0xF8CD, 0xF8CE, 0xF8CF, 0xF8D0, 0xF8D1, 0xF8D2, 0xF8D3, 0xF8D4, +0xF8D5, 0xF8D6, 0xF8D7, 0xF8D8, 0xF8D9, 0xF8DA, 0xF8DB, 0xF8DC, +0xF8DD, 0xF8DE, 0xF8DF, 0xF8E0, 0xF8E1, 0xF8E2, 0xF8E3, 0xF8E4, +0xF8E5, 0xF8E6, 0xF8E7, 0xF8E8, 0xF8E9, 0xF8EA, 0xF8EB, 0xF8EC, +0xF8ED, 0xF8EE, 0xF8EF, 0xF8F0, 0xF8F1, 0xF8F2, 0xF8F3, 0xF8F4, +0xF8F5, 0xF8F6, 0xF8F7, 0xF8F8, 0xF8F9, 0xF8FA, 0xF8FB, 0xF8FC, +0xF8FD, 0xF8FE, 0xF9A1, 0xF9A2, 0xF9A3, 0xF9A4, 0xF9A5, 0xF9A6, +0xF9A7, 0xF9A8, 0xF9A9, 0xF9AA, 0xF9AB, 0xF9AC, 0xF9AD, 0xF9AE, +0xF9AF, 0xF9B0, 0xF9B1, 0xF9B2, 0xF9B3, 0xF9B4, 0xF9B5, 0xF9B6, +0xF9B7, 0xF9B8, 0xF9B9, 0xF9BA, 0xF9BB, 0xF9BC, 0xF9BD, 0xF9BE, +0xF9BF, 0xF9C0, 0xF9C1, 0xF9C2, 0xF9C3, 0xF9C4, 0xF9C5, 0xF9C6, +0xF9C7, 0xF9C8, 0xF9C9, 0xF9CA, 0xF9CB, 0xF9CC, 0xF9CD, 0xF9CE, +0xF9CF, 0xF9D0, 0xF9D1, 0xF9D2, 0xF9D3, 0xF9D4, 0xF9D5, 0xF9D6, +0xF9D7, 0xF9D8, 0xF9D9, 0xF9DA, 0xF9DB, 0xF9DC, 0xF9DD, 0xF9DE, +0xF9DF, 0xF9E0, 0xF9E1, 0xF9E2, 0xF9E3, 0xF9E4, 0xF9E5, 0xF9E6, +0xF9E7, 0xF9E8, 0xF9E9, 0xF9EA, 0xF9EB, 0xF9EC, 0xF9ED, 0xF9EE, +0xF9EF, 0xF9F0, 0xF9F1, 0xF9F2, 0xF9F3, 0xF9F4, 0xF9F5, 0xF9F6, +0xF9F7, 0xF9F8, 0xF9F9, 0xF9FA, 0xF9FB, 0xF9FC, 0xF9FD, 0xF9FE, +0xFAA1, 0xFAA2, 0xFAA3, 0xFAA4, 0xFAA5, 0xFAA6, 0xFAA7, 0xFAA8, +0xFAA9, 0xFAAA, 0xFAAB, 0xFAAC, 0xFAAD, 0xFAAE, 0xFAAF, 0xFAB0, +0xFAB1, 0xFAB2, 0xFAB3, 0xFAB4, 0xFAB5, 0xFAB6, 0xFAB7, 0xFAB8, +0xFAB9, 0xFABA, 0xFABB, 0xFABC, 0xFABD, 0xFABE, 0xFABF, 0xFAC0, +0xFAC1, 0xFAC2, 0xFAC3, 0xFAC4, 0xFAC5, 0xFAC6, 0xFAC7, 0xFAC8, +0xFAC9, 0xFACA, 0xFACB, 0xFACC, 0xFACD, 0xFACE, 0xFACF, 0xFAD0, +0xFAD1, 0xFAD2, 0xFAD3, 0xFAD4, 0xFAD5, 0xFAD6, 0xFAD7, 0xFAD8, +0xFAD9, 0xFADA, 0xFADB, 0xFADC, 0xFADD, 0xFADE, 0xFADF, 0xFAE0, +0xFAE1, 0xFAE2, 0xFAE3, 0xFAE4, 0xFAE5, 0xFAE6, 0xFAE7, 0xFAE8, +0xFAE9, 0xFAEA, 0xFAEB, 0xFAEC, 0xFAED, 0xFAEE, 0xFAEF, 0xFAF0, +0xFAF1, 0xFAF2, 0xFAF3, 0xFAF4, 0xFAF5, 0xFAF6, 0xFAF7, 0xFAF8, +0xFAF9, 0xFAFA, 0xFAFB, 0xFAFC, 0xFAFD, 0xFAFE, 0xFBA1, 0xFBA2, +0xFBA3, 0xFBA4, 0xFBA5, 0xFBA6, 0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, +0xFBAB, 0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF, 0xFBB0, 0xFBB1, 0xFBB2, +0xFBB3, 0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8, 0xFBB9, 0xFBBA, +0xFBBB, 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1, 0xFBC2, +0xFBC3, 0xFBC4, 0xFBC5, 0xFBC6, 0xFBC7, 0xFBC8, 0xFBC9, 0xFBCA, +0xFBCB, 0xFBCC, 0xFBCD, 0xFBCE, 0xFBCF, 0xFBD0, 0xFBD1, 0xFBD2, +0xFBD3, 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, +0xFBDB, 0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, +0xFBE3, 0xFBE4, 0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, +0xFBEB, 0xFBEC, 0xFBED, 0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, +0xFBF3, 0xFBF4, 0xFBF5, 0xFBF6, 0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, +0xFBFB, 0xFBFC, 0xFBFD, 0xFBFE, 0xFCA1, 0xFCA2, 0xFCA3, 0xFCA4, +0xFCA5, 0xFCA6, 0xFCA7, 0xFCA8, 0xFCA9, 0xFCAA, 0xFCAB, 0xFCAC, +0xFCAD, 0xFCAE, 0xFCAF, 0xFCB0, 0xFCB1, 0xFCB2, 0xFCB3, 0xFCB4, +0xFCB5, 0xFCB6, 0xFCB7, 0xFCB8, 0xFCB9, 0xFCBA, 0xFCBB, 0xFCBC, +0xFCBD, 0xFCBE, 0xFCBF, 0xFCC0, 0xFCC1, 0xFCC2, 0xFCC3, 0xFCC4, +0xFCC5, 0xFCC6, 0xFCC7, 0xFCC8, 0xFCC9, 0xFCCA, 0xFCCB, 0xFCCC, +0xFCCD, 0xFCCE, 0xFCCF, 0xFCD0, 0xFCD1, 0xFCD2, 0xFCD3, 0xFCD4, +0xFCD5, 0xFCD6, 0xFCD7, 0xFCD8, 0xFCD9, 0xFCDA, 0xFCDB, 0xFCDC, +0xFCDD, 0xFCDE, 0xFCDF, 0xFCE0, 0xFCE1, 0xFCE2, 0xFCE3, 0xFCE4, +0xFCE5, 0xFCE6, 0xFCE7, 0xFCE8, 0xFCE9, 0xFCEA, 0xFCEB, 0xFCEC, +0xFCED, 0xFCEE, 0xFCEF, 0xFCF0, 0xFCF1, 0xFCF2, 0xFCF3, 0xFCF4, +0xFCF5, 0xFCF6, 0xFCF7, 0xFCF8, 0xFCF9, 0xFCFA, 0xFCFB, 0xFCFC, +0xFCFD, 0xFCFE, 0xFDA1, 0xFDA2, 0xFDA3, 0xFDA4, 0xFDA5, 0xFDA6, +0xFDA7, 0xFDA8, 0xFDA9, 0xFDAA, 0xFDAB, 0xFDAC, 0xFDAD, 0xFDAE, +0xFDAF, 0xFDB0, 0xFDB1, 0xFDB2, 0xFDB3, 0xFDB4, 0xFDB5, 0xFDB6, +0xFDB7, 0xFDB8, 0xFDB9, 0xFDBA, 0xFDBB, 0xFDBC, 0xFDBD, 0xFDBE, +0xFDBF, 0xFDC0, 0xFDC1, 0xFDC2, 0xFDC3, 0xFDC4, 0xFDC5, 0xFDC6, +0xFDC7, 0xFDC8, 0xFDC9, 0xFDCA, 0xFDCB, 0xFDCC, 0xFDCD, 0xFDCE, +0xFDCF, 0xFDD0, 0xFDD1, 0xFDD2, 0xFDD3, 0xFDD4, 0xFDD5, 0xFDD6, +0xFDD7, 0xFDD8, 0xFDD9, 0xFDDA, 0xFDDB, 0xFDDC, 0xFDDD, 0xFDDE, +0xFDDF, 0xFDE0, 0xFDE1, 0xFDE2, 0xFDE3, 0xFDE4, 0xFDE5, 0xFDE6, +0xFDE7, 0xFDE8, 0xFDE9, 0xFDEA, 0xFDEB, 0xFDEC, 0xFDED, 0xFDEE, +0xFDEF, 0xFDF0, 0xFDF1, 0xFDF2, 0xFDF3, 0xFDF4, 0xFDF5, 0xFDF6, +0xFDF7, 0xFDF8, 0xFDF9, 0xFDFA, 0xFDFB, 0xFDFC, 0xFDFD, 0xFDFE, +0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7, 0xFEA8, +0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE, 0xFEAF, 0xFEB0, +0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, +0xFEB9, 0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0, +0xFEC1, 0xFEC2, 0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8, +0xFEC9, 0xFECA, 0xFECB, 0xFECC, 0xFECD, 0xFECE, 0xFECF, 0xFED0, +0xFED1, 0xFED2, 0xFED3, 0xFED4, 0xFED5, 0xFED6, 0xFED7, 0xFED8, +0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD, 0xFEDE, 0xFEDF, 0xFEE0, +0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, 0xFEE6, 0xFEE7, 0xFEE8, +0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF, 0xFEF0, +0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8, +0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0xFEFD, 0xFEFE, 0xA140, 0xA141, +0xA142, 0xA143, 0xA144, 0xA145, 0xA146, 0xA147, 0xA148, 0xA149, +0xA14A, 0xA14B, 0xA14C, 0xA14D, 0xA14E, 0xA14F, 0xA150, 0xA151, +0xA152, 0xA153, 0xA154, 0xA155, 0xA156, 0xA157, 0xA158, 0xA159, +0xA15A, 0xA15B, 0xA15C, 0xA15D, 0xA15E, 0xA15F, 0xA160, 0xA161, +0xA162, 0xA163, 0xA164, 0xA165, 0xA166, 0xA167, 0xA168, 0xA169, +0xA16A, 0xA16B, 0xA16C, 0xA16D, 0xA16E, 0xA16F, 0xA170, 0xA171, +0xA172, 0xA173, 0xA174, 0xA175, 0xA176, 0xA177, 0xA178, 0xA179, +0xA17A, 0xA17B, 0xA17C, 0xA17D, 0xA17E, 0xA180, 0xA181, 0xA182, +0xA183, 0xA184, 0xA185, 0xA186, 0xA187, 0xA188, 0xA189, 0xA18A, +0xA18B, 0xA18C, 0xA18D, 0xA18E, 0xA18F, 0xA190, 0xA191, 0xA192, +0xA193, 0xA194, 0xA195, 0xA196, 0xA197, 0xA198, 0xA199, 0xA19A, +0xA19B, 0xA19C, 0xA19D, 0xA19E, 0xA19F, 0xA1A0, 0xA240, 0xA241, +0xA242, 0xA243, 0xA244, 0xA245, 0xA246, 0xA247, 0xA248, 0xA249, +0xA24A, 0xA24B, 0xA24C, 0xA24D, 0xA24E, 0xA24F, 0xA250, 0xA251, +0xA252, 0xA253, 0xA254, 0xA255, 0xA256, 0xA257, 0xA258, 0xA259, +0xA25A, 0xA25B, 0xA25C, 0xA25D, 0xA25E, 0xA25F, 0xA260, 0xA261, +0xA262, 0xA263, 0xA264, 0xA265, 0xA266, 0xA267, 0xA268, 0xA269, +0xA26A, 0xA26B, 0xA26C, 0xA26D, 0xA26E, 0xA26F, 0xA270, 0xA271, +0xA272, 0xA273, 0xA274, 0xA275, 0xA276, 0xA277, 0xA278, 0xA279, +0xA27A, 0xA27B, 0xA27C, 0xA27D, 0xA27E, 0xA280, 0xA281, 0xA282, +0xA283, 0xA284, 0xA285, 0xA286, 0xA287, 0xA288, 0xA289, 0xA28A, +0xA28B, 0xA28C, 0xA28D, 0xA28E, 0xA28F, 0xA290, 0xA291, 0xA292, +0xA293, 0xA294, 0xA295, 0xA296, 0xA297, 0xA298, 0xA299, 0xA29A, +0xA29B, 0xA29C, 0xA29D, 0xA29E, 0xA29F, 0xA2A0, 0xA340, 0xA341, +0xA342, 0xA343, 0xA344, 0xA345, 0xA346, 0xA347, 0xA348, 0xA349, +0xA34A, 0xA34B, 0xA34C, 0xA34D, 0xA34E, 0xA34F, 0xA350, 0xA351, +0xA352, 0xA353, 0xA354, 0xA355, 0xA356, 0xA357, 0xA358, 0xA359, +0xA35A, 0xA35B, 0xA35C, 0xA35D, 0xA35E, 0xA35F, 0xA360, 0xA361, +0xA362, 0xA363, 0xA364, 0xA365, 0xA366, 0xA367, 0xA368, 0xA369, +0xA36A, 0xA36B, 0xA36C, 0xA36D, 0xA36E, 0xA36F, 0xA370, 0xA371, +0xA372, 0xA373, 0xA374, 0xA375, 0xA376, 0xA377, 0xA378, 0xA379, +0xA37A, 0xA37B, 0xA37C, 0xA37D, 0xA37E, 0xA380, 0xA381, 0xA382, +0xA383, 0xA384, 0xA385, 0xA386, 0xA387, 0xA388, 0xA389, 0xA38A, +0xA38B, 0xA38C, 0xA38D, 0xA38E, 0xA38F, 0xA390, 0xA391, 0xA392, +0xA393, 0xA394, 0xA395, 0xA396, 0xA397, 0xA398, 0xA399, 0xA39A, +0xA39B, 0xA39C, 0xA39D, 0xA39E, 0xA39F, 0xA3A0, 0xA440, 0xA441, +0xA442, 0xA443, 0xA444, 0xA445, 0xA446, 0xA447, 0xA448, 0xA449, +0xA44A, 0xA44B, 0xA44C, 0xA44D, 0xA44E, 0xA44F, 0xA450, 0xA451, +0xA452, 0xA453, 0xA454, 0xA455, 0xA456, 0xA457, 0xA458, 0xA459, +0xA45A, 0xA45B, 0xA45C, 0xA45D, 0xA45E, 0xA45F, 0xA460, 0xA461, +0xA462, 0xA463, 0xA464, 0xA465, 0xA466, 0xA467, 0xA468, 0xA469, +0xA46A, 0xA46B, 0xA46C, 0xA46D, 0xA46E, 0xA46F, 0xA470, 0xA471, +0xA472, 0xA473, 0xA474, 0xA475, 0xA476, 0xA477, 0xA478, 0xA479, +0xA47A, 0xA47B, 0xA47C, 0xA47D, 0xA47E, 0xA480, 0xA481, 0xA482, +0xA483, 0xA484, 0xA485, 0xA486, 0xA487, 0xA488, 0xA489, 0xA48A, +0xA48B, 0xA48C, 0xA48D, 0xA48E, 0xA48F, 0xA490, 0xA491, 0xA492, +0xA493, 0xA494, 0xA495, 0xA496, 0xA497, 0xA498, 0xA499, 0xA49A, +0xA49B, 0xA49C, 0xA49D, 0xA49E, 0xA49F, 0xA4A0, 0xA540, 0xA541, +0xA542, 0xA543, 0xA544, 0xA545, 0xA546, 0xA547, 0xA548, 0xA549, +0xA54A, 0xA54B, 0xA54C, 0xA54D, 0xA54E, 0xA54F, 0xA550, 0xA551, +0xA552, 0xA553, 0xA554, 0xA555, 0xA556, 0xA557, 0xA558, 0xA559, +0xA55A, 0xA55B, 0xA55C, 0xA55D, 0xA55E, 0xA55F, 0xA560, 0xA561, +0xA562, 0xA563, 0xA564, 0xA565, 0xA566, 0xA567, 0xA568, 0xA569, +0xA56A, 0xA56B, 0xA56C, 0xA56D, 0xA56E, 0xA56F, 0xA570, 0xA571, +0xA572, 0xA573, 0xA574, 0xA575, 0xA576, 0xA577, 0xA578, 0xA579, +0xA57A, 0xA57B, 0xA57C, 0xA57D, 0xA57E, 0xA580, 0xA581, 0xA582, +0xA583, 0xA584, 0xA585, 0xA586, 0xA587, 0xA588, 0xA589, 0xA58A, +0xA58B, 0xA58C, 0xA58D, 0xA58E, 0xA58F, 0xA590, 0xA591, 0xA592, +0xA593, 0xA594, 0xA595, 0xA596, 0xA597, 0xA598, 0xA599, 0xA59A, +0xA59B, 0xA59C, 0xA59D, 0xA59E, 0xA59F, 0xA5A0, 0xA640, 0xA641, +0xA642, 0xA643, 0xA644, 0xA645, 0xA646, 0xA647, 0xA648, 0xA649, +0xA64A, 0xA64B, 0xA64C, 0xA64D, 0xA64E, 0xA64F, 0xA650, 0xA651, +0xA652, 0xA653, 0xA654, 0xA655, 0xA656, 0xA657, 0xA658, 0xA659, +0xA65A, 0xA65B, 0xA65C, 0xA65D, 0xA65E, 0xA65F, 0xA660, 0xA661, +0xA662, 0xA663, 0xA664, 0xA665, 0xA666, 0xA667, 0xA668, 0xA669, +0xA66A, 0xA66B, 0xA66C, 0xA66D, 0xA66E, 0xA66F, 0xA670, 0xA671, +0xA672, 0xA673, 0xA674, 0xA675, 0xA676, 0xA677, 0xA678, 0xA679, +0xA67A, 0xA67B, 0xA67C, 0xA67D, 0xA67E, 0xA680, 0xA681, 0xA682, +0xA683, 0xA684, 0xA685, 0xA686, 0xA687, 0xA688, 0xA689, 0xA68A, +0xA68B, 0xA68C, 0xA68D, 0xA68E, 0xA68F, 0xA690, 0xA691, 0xA692, +0xA693, 0xA694, 0xA695, 0xA696, 0xA697, 0xA698, 0xA699, 0xA69A, +0xA69B, 0xA69C, 0xA69D, 0xA69E, 0xA69F, 0xA6A0, 0xA740, 0xA741, +0xA742, 0xA743, 0xA744, 0xA745, 0xA746, 0xA747, 0xA748, 0xA749, +0xA74A, 0xA74B, 0xA74C, 0xA74D, 0xA74E, 0xA74F, 0xA750, 0xA751, +0xA752, 0xA753, 0xA754, 0xA755, 0xA756, 0xA757, 0xA758, 0xA759, +0xA75A, 0xA75B, 0xA75C, 0xA75D, 0xA75E, 0xA75F, 0xA760, 0xA761, +0xA762, 0xA763, 0xA764, 0xA765, 0xA766, 0xA767, 0xA768, 0xA769, +0xA76A, 0xA76B, 0xA76C, 0xA76D, 0xA76E, 0xA76F, 0xA770, 0xA771, +0xA772, 0xA773, 0xA774, 0xA775, 0xA776, 0xA777, 0xA778, 0xA779, +0xA77A, 0xA77B, 0xA77C, 0xA77D, 0xA77E, 0xA780, 0xA781, 0xA782, +0xA783, 0xA784, 0xA785, 0xA786, 0xA787, 0xA788, 0xA789, 0xA78A, +0xA78B, 0xA78C, 0xA78D, 0xA78E, 0xA78F, 0xA790, 0xA791, 0xA792, +0xA793, 0xA794, 0xA795, 0xA796, 0xA797, 0xA798, 0xA799, 0xA79A, +0xA79B, 0xA79C, 0xA79D, 0xA79E, 0xA79F, 0xA7A0, 0xA2AB, 0xA2AC, +0xA2AD, 0xA2AE, 0xA2AF, 0xA2B0, 0x659D, 0xA2E4, 0xA2EF, 0xA2F0, +0xA2FD, 0xA2FE, 0xA4F4, 0xA4F5, 0xA4F6, 0xA4F7, 0xA4F8, 0xA4F9, +0xA4FA, 0xA4FB, 0xA4FC, 0xA4FD, 0xA4FE, 0xA5F7, 0xA5F8, 0xA5F9, +0xA5FA, 0xA5FB, 0xA5FC, 0xA5FD, 0xA5FE, 0xA6B9, 0xA6BA, 0xA6BB, +0xA6BC, 0xA6BD, 0xA6BE, 0xA6BF, 0xA6C0, 0xA6D9, 0xA6DA, 0xA6DB, +0xA6DC, 0xA6DD, 0xA6DE, 0xA6DF, 0xA6EC, 0xA6ED, 0xA6F3, 0xA6F6, +0xA6F7, 0xA6F8, 0xA6F9, 0xA6FA, 0xA6FB, 0xA6FC, 0xA6FD, 0xA6FE, +0xA7C2, 0xA7C3, 0xA7C4, 0xA7C5, 0xA7C6, 0xA7C7, 0xA7C8, 0xA7C9, +0xA7CA, 0xA7CB, 0xA7CC, 0xA7CD, 0xA7CE, 0xA7CF, 0xA7D0, 0xA7F2, +0xA7F3, 0xA7F4, 0xA7F5, 0xA7F6, 0xA7F7, 0xA7F8, 0xA7F9, 0xA7FA, +0xA7FB, 0xA7FC, 0xA7FD, 0xA7FE, 0xA896, 0xA897, 0xA898, 0xA899, +0xA89A, 0xA89B, 0xA89C, 0xA89D, 0xA89E, 0xA89F, 0xA8A0, 0x0001, +0x659E, 0xA8C1, 0xA8C2, 0xA8C3, 0xA8C4, 0xA8EA, 0xA8EB, 0xA8EC, +0xA8ED, 0xA8EE, 0xA8EF, 0xA8F0, 0xA8F1, 0xA8F2, 0xA8F3, 0xA8F4, +0xA8F5, 0xA8F6, 0xA8F7, 0xA8F8, 0xA8F9, 0xA8FA, 0xA8FB, 0xA8FC, +0xA8FD, 0xA8FE, 0xA958, 0xA95B, 0xA95D, 0xA95E, 0xA95F, 0x659F, +0x65A0, 0x65A1, 0x65A2, 0x65A3, 0x65A4, 0x65A5, 0x65A6, 0x65A7, +0x65A8, 0x65A9, 0x65AA, 0x65AB, 0xA997, 0xA998, 0xA999, 0xA99A, +0xA99B, 0xA99C, 0xA99D, 0xA99E, 0xA99F, 0xA9A0, 0xA9A1, 0xA9A2, +0xA9A3, 0xA9F0, 0xA9F1, 0xA9F2, 0xA9F3, 0xA9F4, 0xA9F5, 0xA9F6, +0xA9F7, 0xA9F8, 0xA9F9, 0xA9FA, 0xA9FB, 0xA9FC, 0xA9FD, 0xA9FE, +0xD7FA, 0xD7FB, 0xD7FC, 0xD7FD, 0xD7FE, 0x65AC, 0xFE51, 0xFE52, +0xFE53, 0x65AD, 0x65AE, 0x65AF, 0x65B0, 0x65B1, 0xFE59, 0x65B2, +0x65B3, 0x65B4, 0x65B5, 0x65B6, 0x65B7, 0x65B8, 0xFE61, 0x65B9, +0x65BA, 0x65BB, 0x65BC, 0xFE66, 0xFE67, 0x65BD, 0x65BE, 0x65BF, +0x65C0, 0xFE6C, 0xFE6D, 0x65C1, 0x65C2, 0x65C3, 0x65C4, 0x65C5, +0x65C6, 0x65C7, 0x65C8, 0xFE76, 0x65C9, 0x65CA, 0x65CB, 0x65CC, +0x65CD, 0x65CE, 0x65CF, 0xFE7E, 0x65D0, 0x65D1, 0x65D2, 0x65D3, +0x65D4, 0x65D5, 0x65D6, 0x65D7, 0x65D8, 0x65D9, 0x65DA, 0x65DB, +0x65DC, 0x65DD, 0x65DE, 0x65DF, 0xFE90, 0xFE91, 0x65E0, 0x65E1, +0x65E2, 0x65E3, 0x65E4, 0x65E5, 0x65E6, 0x65E7, 0x65E8, 0x65E9, +0x65EA, 0x65EB, 0x65EC, 0x65ED, 0xFEA0, 0xFD9C, 0x76B5, 0x76B6, +0x76B7, 0x76B8, 0x76B9, 0x76BA, 0x76BB, 0x76BC, 0x76BD, 0x76BE, +0x76BF, 0x76C0, 0x76C1, 0x76C2, 0x76C3, 0x76C4, 0x76C5, 0x76C6, +0x76C7, 0x76C8, 0x76C9, 0x76CA, 0x76CB, 0x76CC, 0x76CD, 0x76CE, +0x76CF, 0x76D0, 0x76D1, 0x76D2, 0x76D3, 0x76D4, 0x76D5, 0x76D6, +0x76D7, 0x76D8, 0x76D9, 0x76DA, 0x76DB, 0x76DC, 0x76DD, 0x76DE, +0x76DF, 0x76E0, 0x76E1, 0x76E2, 0x76E3, 0x76E4, 0x76E5, 0x76E6, +0x76E7, 0x76E8, 0x76E9, 0x76EA, 0x76EB, 0x76EC, 0x76ED, 0x76EE, +0x76EF, 0x76F0, 0x76F1, 0x76F2, 0x76F3, 0x76F4, 0x76F5, 0x76F6, +0x76F7, 0x76F8, 0x76F9, 0x76FA, 0x76FB, 0x76FC, 0x76FD, 0x76FE, +0x76FF, 0x7700, 0xFD9D, 0x7701, 0x7702, 0x7703, 0x7704, 0x7705, +0x7706, 0x7707, 0x7708, 0x7709, 0x770A, 0x770B, 0x770C, 0x770D, +0x770E, 0x770F, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, 0x7715, +0x7716, 0x7717, 0x7718, 0x7719, 0x771A, 0x771B, 0xFD9E, 0x771C, +0x771D, 0x771E, 0x771F, 0x7720, 0x7721, 0x7722, 0x7723, 0x7724, +0x7725, 0x7726, 0x7727, 0x7728, 0x7729, 0x772A, 0x772B, 0x772C, +0x772D, 0x772E, 0x772F, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, +0x7735, 0x7736, 0x7737, 0x7738, 0x7739, 0x773A, 0x773B, 0x773C, +0x773D, 0x773E, 0x773F, 0x7740, 0x7741, 0x7742, 0x7743, 0x7744, +0x7745, 0x7746, 0x7747, 0x7748, 0x7749, 0x774A, 0x774B, 0x774C, +0x774D, 0x774E, 0x774F, 0x7750, 0x7751, 0x7752, 0x7753, 0x7754, +0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775A, 0x775B, 0x775C, +0x775D, 0x775E, 0x775F, 0x7760, 0x7761, 0x7762, 0x7763, 0x7764, +0x7765, 0x7766, 0x7767, 0x7768, 0x7769, 0x776A, 0x776B, 0x776C, +0xFD9F, 0x776D, 0x776E, 0x776F, 0x7770, 0x7771, 0x7772, 0x7773, +0x7774, 0x7775, 0xFDA0, 0x7776, 0x7777, 0x7778, 0x7779, 0x777A, +0x777B, 0x777C, 0x777D, 0x777E, 0x777F, 0x7780, 0x7781, 0x7782, +0x7783, 0x7784, 0x7785, 0x7786, 0x7787, 0x7788, 0x7789, 0x778A, +0x778B, 0x778C, 0x778D, 0x778E, 0x778F, 0xFE40, 0xFE41, 0xFE42, +0xFE43, 0x7790, 0xFE44, 0x7791, 0xFE45, 0xFE46, 0x7792, 0x7793, +0x7794, 0xFE47, 0x7795, 0x7796, 0x7797, 0x7798, 0x7799, 0x779A, +0xFE48, 0xFE49, 0xFE4A, 0x779B, 0xFE4B, 0xFE4C, 0x779C, 0x779D, +0xFE4D, 0xFE4E, 0xFE4F, 0x779E, 0x779F, 0x77A0, 0x77A1, 0x77A2, +0x77A3, 0x77A4, 0x77A5, 0x77A6, 0x77A7, 0x77A8, 0x77A9, 0x77AA, +0x77AB, 0x77AC, 0x77AD, 0x77AE, 0x77AF, 0x77B0, 0x77B1, 0x77B2, +0x77B3, 0x77B4, 0x77B5, 0x77B6, 0x77B7, 0x77B8, 0x77B9, 0x77BA, +0x77BB, 0x77BC, 0x77BD, 0x77BE, 0x77BF, 0x77C0, 0x77C1, 0x77C2, +0x77C3, 0x77C4, 0x77C5, 0x77C6, 0x77C7, 0x77C8, 0x77C9, 0x77CA, +0x77CB, 0x77CC, 0x77CD, 0x77CE, 0x77CF, 0x77D0, 0x77D1, 0x77D2, +0x77D3, 0x77D4, 0x77D5, 0x77D6, 0x77D7, 0x77D8, 0x77D9, 0x77DA, +0x77DB, 0x77DC, 0x77DD, 0x77DE, 0x77DF, 0x77E0, 0x77E1, 0x77E2, +0x77E3, 0x77E4, 0x77E5, 0x77E6, 0x77E7, 0x77E8, 0x77E9, 0x77EA, +0x77EB, 0x77EC, 0x77ED, 0x77EE, 0x77EF, 0x77F0, 0x77F1, 0x77F2, +0x77F3, 0x77F4, 0x77F5, 0x77F6, 0x77F7, 0x77F8, 0x77F9, 0x77FA, +0x77FB, 0x77FC, 0x77FD, 0x77FE, 0x77FF, 0x7800, 0x7801, 0x7802, +0x7803, 0x7804, 0x7805, 0x7806, 0x7807, 0x7808, 0x7809, 0x780A, +0x780B, 0x780C, 0x780D, 0x780E, 0x780F, 0x7810, 0x7811, 0x7812, +0x7813, 0x7814, 0x7815, 0x7816, 0x7817, 0x7818, 0x7819, 0x781A, +0x781B, 0x781C, 0x781D, 0x781E, 0x781F, 0x7820, 0x7821, 0x7822, +0x7823, 0x7824, 0x7825, 0x7826, 0x7827, 0x7828, 0x7829, 0x782A, +0x782B, 0x782C, 0x782D, 0x782E, 0x782F, 0x7830, 0x7831, 0x7832, +0x7833, 0x7834, 0x7835, 0x7836, 0x7837, 0x7838, 0x7839, 0x783A, +0x783B, 0x783C, 0x783D, 0x783E, 0x783F, 0x7840, 0x7841, 0x7842, +0x7843, 0x7844, 0x7845, 0x7846, 0x7847, 0x7848, 0x7849, 0x784A, +0x784B, 0x784C, 0x784D, 0x784E, 0x784F, 0x7850, 0x7851, 0x7852, +0x7853, 0x7854, 0x7855, 0x7856, 0x7857, 0x7858, 0x7859, 0x785A, +0x785B, 0x785C, 0x785D, 0x785E, 0x785F, 0x7860, 0x7861, 0x7862, +0x7863, 0x7864, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786A, +0x786B, 0x786C, 0x786D, 0x786E, 0x786F, 0x7870, 0x7871, 0x7872, +0x7873, 0x7874, 0x7875, 0x7876, 0x7877, 0x7878, 0x7879, 0x787A, +0x787B, 0x787C, 0x787D, 0x787E, 0x787F, 0x7880, 0x7881, 0x7882, +0x7883, 0x7884, 0x7885, 0x7886, 0x7887, 0x7888, 0x7889, 0x788A, +0x788B, 0x788C, 0x788D, 0x788E, 0x788F, 0x7890, 0x7891, 0x7892, +0x7893, 0x7894, 0x7895, 0x7896, 0x7897, 0x7898, 0x7899, 0x789A, +0x789B, 0x789C, 0x789D, 0x789E, 0x789F, 0x78A0, 0x78A1, 0x78A2, +0x78A3, 0x78A4, 0x78A5, 0x78A6, 0x78A7, 0x78A8, 0x78A9, 0x78AA, +0x78AB, 0x78AC, 0x78AD, 0x78AE, 0x78AF, 0x78B0, 0x78B1, 0x78B2, +0x78B3, 0x78B4, 0x78B5, 0x78B6, 0x78B7, 0x78B8, 0x78B9, 0x78BA, +0x78BB, 0x78BC, 0x78BD, 0x78BE, 0x78BF, 0x78C0, 0x78C1, 0x78C2, +0x78C3, 0x78C4, 0x78C5, 0x78C6, 0x78C7, 0x78C8, 0x78C9, 0x78CA, +0x78CB, 0x78CC, 0x78CD, 0x78CE, 0x78CF, 0x78D0, 0x78D1, 0x78D2, +0x78D3, 0x78D4, 0x78D5, 0x78D6, 0x78D7, 0x78D8, 0x78D9, 0x78DA, +0x78DB, 0x78DC, 0x78DD, 0x78DE, 0x78DF, 0x78E0, 0x78E1, 0x78E2, +0x78E3, 0x78E4, 0x78E5, 0x78E6, 0x78E7, 0x78E8, 0x78E9, 0x78EA, +0x78EB, 0x78EC, 0x78ED, 0x78EE, 0x78EF, 0x78F0, 0x78F1, 0x78F2, +0x78F3, 0x78F4, 0x78F5, 0x78F6, 0x78F7, 0x78F8, 0x78F9, 0x78FA, +0x78FB, 0x78FC, 0x78FD, 0x78FE, 0x78FF, 0x7900, 0x7901, 0x7902, +0x7903, 0x7904, 0x7905, 0x7906, 0x7907, 0x7908, 0x7909, 0x790A, +0x790B, 0x790C, 0x790D, 0x790E, 0x790F, 0x7910, 0x7911, 0x7912, +0x7913, 0x7914, 0x7915, 0x7916, 0x7917, 0x7918, 0x7919, 0x791A, +0x791B, 0x791C, 0x791D, 0x791E, 0x791F, 0x7920, 0x7921, 0x7922, +0x7923, 0x7924, 0x7925, 0x7926, 0x7927, 0x7928, 0x7929, 0x792A, +0x792B, 0x792C, 0x792D, 0x792E, 0x792F, 0x7930, 0x7931, 0x7932, +0x7933, 0x7934, 0x7935, 0x7936, 0x7937, 0x7938, 0x7939, 0x793A, +0x793B, 0x793C, 0x793D, 0x793E, 0x793F, 0x7940, 0x7941, 0x7942, +0x7943, 0x7944, 0x7945, 0x7946, 0x7947, 0x7948, 0x7949, 0x794A, +0x794B, 0x794C, 0x794D, 0x794E, 0x794F, 0x7950, 0x7951, 0x7952, +0x7953, 0x7954, 0x7955, 0x7956, 0x7957, 0x7958, 0x7959, 0x795A, +0x795B, 0x795C, 0x795D, 0x795E, 0x795F, 0x7960, 0x7961, 0x7962, +0x7963, 0x7964, 0x7965, 0x7966, 0x7967, 0x7968, 0x7969, 0x796A, +0x796B, 0x796C, 0x796D, 0x796E, 0x796F, 0x7970, 0x7971, 0x7972, +0x7973, 0x7974, 0x7975, 0x7976, 0x7977, 0x7978, 0x7979, 0x797A, +0x797B, 0x797C, 0x797D, 0x797E, 0x797F, 0x7980, 0x7981, 0x7982, +0x7983, 0x7984, 0x7985, 0x7986, 0x7987, 0x7988, 0x7989, 0x798A, +0x798B, 0x798C, 0x798D, 0x798E, 0x798F, 0x7990, 0x7991, 0x7992, +0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799A, +0x799B, 0x799C, 0x799D, 0x799E, 0x799F, 0x79A0, 0x79A1, 0x79A2, +0x79A3, 0x79A4, 0x79A5, 0x79A6, 0x79A7, 0x79A8, 0x79A9, 0x79AA, +0x79AB, 0x79AC, 0x79AD, 0x79AE, 0x79AF, 0x79B0, 0x79B1, 0x79B2, +0x79B3, 0x79B4, 0x79B5, 0x79B6, 0x79B7, 0x79B8, 0x79B9, 0x79BA, +0x79BB, 0x79BC, 0x79BD, 0x79BE, 0x79BF, 0x79C0, 0x79C1, 0x79C2, +0x79C3, 0x79C4, 0x79C5, 0x79C6, 0x79C7, 0x79C8, 0x79C9, 0x79CA, +0x79CB, 0x79CC, 0x79CD, 0x79CE, 0x79CF, 0x79D0, 0x79D1, 0x79D2, +0x79D3, 0x79D4, 0x79D5, 0x79D6, 0x79D7, 0x79D8, 0x79D9, 0x79DA, +0x79DB, 0x79DC, 0x79DD, 0x79DE, 0x79DF, 0x79E0, 0x79E1, 0x79E2, +0x79E3, 0x79E4, 0x79E5, 0x79E6, 0x79E7, 0x79E8, 0x79E9, 0x79EA, +0x79EB, 0x79EC, 0x79ED, 0x79EE, 0x79EF, 0x79F0, 0x79F1, 0x79F2, +0x79F3, 0x79F4, 0x79F5, 0x79F6, 0x79F7, 0x79F8, 0x79F9, 0x79FA, +0x79FB, 0x79FC, 0x79FD, 0x79FE, 0x79FF, 0x7A00, 0x7A01, 0x7A02, +0x7A03, 0x7A04, 0x7A05, 0x7A06, 0x7A07, 0x7A08, 0x7A09, 0x7A0A, +0x7A0B, 0x7A0C, 0x7A0D, 0x7A0E, 0x7A0F, 0x7A10, 0x7A11, 0x7A12, +0x7A13, 0x7A14, 0x7A15, 0x7A16, 0x7A17, 0x7A18, 0x7A19, 0x7A1A, +0x7A1B, 0x7A1C, 0x7A1D, 0x7A1E, 0x7A1F, 0x7A20, 0x7A21, 0x7A22, +0x7A23, 0x7A24, 0x7A25, 0x7A26, 0x7A27, 0x7A28, 0x7A29, 0x7A2A, +0x7A2B, 0x7A2C, 0x7A2D, 0x7A2E, 0x7A2F, 0x7A30, 0x7A31, 0x7A32, +0x7A33, 0x7A34, 0x7A35, 0x7A36, 0x7A37, 0x7A38, 0x7A39, 0x7A3A, +0x7A3B, 0x7A3C, 0x7A3D, 0x7A3E, 0x7A3F, 0x7A40, 0x7A41, 0x7A42, +0x7A43, 0x7A44, 0x7A45, 0x7A46, 0x7A47, 0x7A48, 0x7A49, 0x7A4A, +0x7A4B, 0x7A4C, 0x7A4D, 0x7A4E, 0x7A4F, 0x7A50, 0x7A51, 0x7A52, +0x7A53, 0x7A54, 0x7A55, 0x7A56, 0x7A57, 0x7A58, 0x7A59, 0x7A5A, +0x7A5B, 0x7A5C, 0x7A5D, 0x7A5E, 0x7A5F, 0x7A60, 0x7A61, 0x7A62, +0x7A63, 0x7A64, 0x7A65, 0x7A66, 0x7A67, 0x7A68, 0x7A69, 0x7A6A, +0x7A6B, 0x7A6C, 0x7A6D, 0x7A6E, 0x7A6F, 0x7A70, 0x7A71, 0x7A72, +0x7A73, 0x7A74, 0x7A75, 0x7A76, 0x7A77, 0x7A78, 0x7A79, 0x7A7A, +0x7A7B, 0x7A7C, 0x7A7D, 0x7A7E, 0x7A7F, 0x7A80, 0x7A81, 0x7A82, +0x7A83, 0x7A84, 0x7A85, 0x7A86, 0x7A87, 0x7A88, 0x7A89, 0x7A8A, +0x7A8B, 0x7A8C, 0x7A8D, 0x7A8E, 0x7A8F, 0x7A90, 0x7A91, 0x7A92, +0x7A93, 0x7A94, 0x7A95, 0x7A96, 0x7A97, 0x7A98, 0x7A99, 0x7A9A, +0x7A9B, 0x7A9C, 0x7A9D, 0x7A9E, 0x7A9F, 0x7AA0, 0x7AA1, 0x7AA2, +0x7AA3, 0x7AA4, 0x7AA5, 0x7AA6, 0x7AA7, 0x7AA8, 0x7AA9, 0x7AAA, +0x7AAB, 0x7AAC, 0x7AAD, 0x7AAE, 0x7AAF, 0x7AB0, 0x7AB1, 0x7AB2, +0x7AB3, 0x7AB4, 0x7AB5, 0x7AB6, 0x7AB7, 0x7AB8, 0x7AB9, 0x7ABA, +0x7ABB, 0x7ABC, 0x7ABD, 0x7ABE, 0x7ABF, 0x7AC0, 0x7AC1, 0x7AC2, +0x7AC3, 0x7AC4, 0x7AC5, 0x7AC6, 0x7AC7, 0x7AC8, 0x7AC9, 0x7ACA, +0x7ACB, 0x7ACC, 0x7ACD, 0x7ACE, 0x7ACF, 0x7AD0, 0x7AD1, 0x7AD2, +0x7AD3, 0x7AD4, 0x7AD5, 0x7AD6, 0x7AD7, 0x7AD8, 0x7AD9, 0x7ADA, +0x7ADB, 0x7ADC, 0x7ADD, 0x7ADE, 0x7ADF, 0x7AE0, 0x7AE1, 0x7AE2, +0x7AE3, 0x7AE4, 0x7AE5, 0x7AE6, 0x7AE7, 0x7AE8, 0x7AE9, 0x7AEA, +0x7AEB, 0x7AEC, 0x7AED, 0x7AEE, 0x7AEF, 0x7AF0, 0x7AF1, 0x7AF2, +0x7AF3, 0x7AF4, 0x7AF5, 0x7AF6, 0x7AF7, 0x7AF8, 0x7AF9, 0x7AFA, +0x7AFB, 0x7AFC, 0x7AFD, 0x7AFE, 0x7AFF, 0x7B00, 0x7B01, 0x7B02, +0x7B03, 0x7B04, 0x7B05, 0x7B06, 0x7B07, 0x7B08, 0x7B09, 0x7B0A, +0x7B0B, 0x7B0C, 0x7B0D, 0x7B0E, 0x7B0F, 0x7B10, 0x7B11, 0x7B12, +0x7B13, 0x7B14, 0x7B15, 0x7B16, 0x7B17, 0x7B18, 0x7B19, 0x7B1A, +0x7B1B, 0x7B1C, 0x7B1D, 0x7B1E, 0x7B1F, 0x7B20, 0x7B21, 0x7B22, +0x7B23, 0x7B24, 0x7B25, 0x7B26, 0x7B27, 0x7B28, 0x7B29, 0x7B2A, +0x7B2B, 0x7B2C, 0x7B2D, 0x7B2E, 0x7B2F, 0x7B30, 0x7B31, 0x7B32, +0x7B33, 0x7B34, 0x7B35, 0x7B36, 0x7B37, 0x7B38, 0x7B39, 0x7B3A, +0x7B3B, 0x7B3C, 0x7B3D, 0x7B3E, 0x7B3F, 0x7B40, 0x7B41, 0x7B42, +0x7B43, 0x7B44, 0x7B45, 0x7B46, 0x7B47, 0x7B48, 0x7B49, 0x7B4A, +0x7B4B, 0x7B4C, 0x7B4D, 0x7B4E, 0x7B4F, 0x7B50, 0x7B51, 0x7B52, +0x7B53, 0x7B54, 0x7B55, 0x7B56, 0x7B57, 0x7B58, 0x7B59, 0x7B5A, +0x7B5B, 0x7B5C, 0x7B5D, 0x7B5E, 0x7B5F, 0x7B60, 0x7B61, 0x7B62, +0x7B63, 0x7B64, 0x7B65, 0x7B66, 0x7B67, 0x7B68, 0x7B69, 0x7B6A, +0x7B6B, 0x7B6C, 0x7B6D, 0x7B6E, 0x7B6F, 0x7B70, 0x7B71, 0x7B72, +0x7B73, 0x7B74, 0x7B75, 0x7B76, 0x7B77, 0x7B78, 0x7B79, 0x7B7A, +0x7B7B, 0x7B7C, 0x7B7D, 0x7B7E, 0x7B7F, 0x7B80, 0x7B81, 0x7B82, +0x7B83, 0x7B84, 0x7B85, 0x7B86, 0x7B87, 0x7B88, 0x7B89, 0x7B8A, +0x7B8B, 0x7B8C, 0x7B8D, 0x7B8E, 0x7B8F, 0x7B90, 0x7B91, 0x7B92, +0x7B93, 0x7B94, 0x7B95, 0x7B96, 0x7B97, 0x7B98, 0x7B99, 0x7B9A, +0x7B9B, 0x7B9C, 0x7B9D, 0x7B9E, 0x7B9F, 0x7BA0, 0x7BA1, 0x7BA2, +0x7BA3, 0xA955, 0xA6F2, 0x7BA4, 0xA6F4, 0xA6F5, 0xA6E0, 0xA6E1, +0xA6F0, 0xA6F1, 0xA6E2, 0xA6E3, 0xA6EE, 0xA6EF, 0xA6E6, 0xA6E7, +0xA6E4, 0xA6E5, 0xA6E8, 0xA6E9, 0xA6EA, 0xA6EB, 0x7BA5, 0x7BA6, +0x7BA7, 0x7BA8, 0xA968, 0xA969, 0xA96A, 0xA96B, 0xA96C, 0xA96D, +0xA96E, 0xA96F, 0xA970, 0xA971, 0x7BA9, 0xA972, 0xA973, 0xA974, +0xA975, 0x7BAA, 0xA976, 0xA977, 0xA978, 0xA979, 0xA97A, 0xA97B, +0xA97C, 0xA97D, 0xA97E, 0xA980, 0xA981, 0xA982, 0xA983, 0xA984, +0x7BAB, 0xA985, 0xA986, 0xA987, 0xA988, 0x7BAC, 0x7BAD, 0x7BAE, +0x7BAF, 0x7BB0, 0x7BB1, 0x7BB2, 0x7BB3, 0x7BB4, 0x7BB5, 0x7BB6, +0x7BB7, 0x7BB8, 0x7BB9, 0x7BBA, 0x7BBB, 0x7BBC, 0x7BBD, 0x7BBE, +0x7BBF, 0x7BC0, 0x7BC1, 0x7BC2, 0x7BC3, 0x7BC4, 0x7BC5, 0x7BC6, +0x7BC7, 0x7BC8, 0x7BC9, 0x7BCA, 0x7BCB, 0x7BCC, 0x7BCD, 0x7BCE, +0x7BCF, 0x7BD0, 0x7BD1, 0x7BD2, 0x7BD3, 0x7BD4, 0x7BD5, 0x7BD6, +0x7BD7, 0x7BD8, 0x7BD9, 0x7BDA, 0x7BDB, 0x7BDC, 0x7BDD, 0x7BDE, +0x7BDF, 0x7BE0, 0x7BE1, 0x7BE2, 0x7BE3, 0x7BE4, 0x7BE5, 0x7BE6, +0x7BE7, 0x7BE8, 0x7BE9, 0x7BEA, 0x7BEB, 0x7BEC, 0x7BED, 0x7BEE, +0x7BEF, 0x7BF0, 0x7BF1, 0x7BF2, 0x7BF3, 0x7BF4, 0x7BF5, 0x7BF6, +0x7BF7, 0x7BF8, 0x7BF9, 0x7BFA, 0x7BFB, 0x7BFC, 0x7BFD, 0x7BFE, +0x7BFF, 0x7C00, 0x7C01, 0x7C02, 0x7C03, 0x7C04, 0x7C05, 0x7C06, +0x7C07, 0x7C08, 0x7C09, 0x7C0A, 0x7C0B, 0x7C0C, 0x7C0D, 0x7C0E, +0x7C0F, 0x7C10, 0x7C11, 0x7C12, 0x7C13, 0x7C14, 0x7C15, 0x7C16, +0x7C17, 0x7C18, 0x7C19, 0x7C1A, 0x7C1B, 0x7C1C, 0x7C1D, 0x7C1E, +0x7C1F, 0x7C20, 0x7C21, 0x7C22, 0x7C23, 0x7C24, 0x7C25, 0x7C26, +0x7C27, 0x7C28, 0x7C29, 0x7C2A, 0x7C2B, 0x7C2C, 0x7C2D, 0x7C2E, +0x7C2F, 0x7C30, 0x7C31, 0x7C32, 0x7C33, 0x7C34, 0x7C35, 0x7C36, +0x7C37, 0x7C38, 0x7C39, 0x7C3A, 0x7C3B, 0x7C3C, 0x7C3D, 0x7C3E, +0x7C3F, 0x7C40, 0xA3A1, 0xA3A2, 0xA3A3, 0xA1E7, 0xA3A5, 0xA3A6, +0xA3A7, 0xA3A8, 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, +0xA3AF, 0xA3B0, 0xA3B1, 0xA3B2, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, +0xA3B7, 0xA3B8, 0xA3B9, 0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA3BE, +0xA3BF, 0xA3C0, 0xA3C1, 0xA3C2, 0xA3C3, 0xA3C4, 0xA3C5, 0xA3C6, +0xA3C7, 0xA3C8, 0xA3C9, 0xA3CA, 0xA3CB, 0xA3CC, 0xA3CD, 0xA3CE, +0xA3CF, 0xA3D0, 0xA3D1, 0xA3D2, 0xA3D3, 0xA3D4, 0xA3D5, 0xA3D6, +0xA3D7, 0xA3D8, 0xA3D9, 0xA3DA, 0xA3DB, 0xA3DC, 0xA3DD, 0xA3DE, +0xA3DF, 0xA3E0, 0xA3E1, 0xA3E2, 0xA3E3, 0xA3E4, 0xA3E5, 0xA3E6, +0xA3E7, 0xA3E8, 0xA3E9, 0xA3EA, 0xA3EB, 0xA3EC, 0xA3ED, 0xA3EE, +0xA3EF, 0xA3F0, 0xA3F1, 0xA3F2, 0xA3F3, 0xA3F4, 0xA3F5, 0xA3F6, +0xA3F7, 0xA3F8, 0xA3F9, 0xA3FA, 0xA3FB, 0xA3FC, 0xA3FD, 0xA1AB, +0x7C41, 0x7C42, 0x7C43, 0x7C44, 0x7C45, 0x7C46, 0x7C47, 0x7C48, +0x7C49, 0x7C4A, 0x7C4B, 0x7C4C, 0x7C4D, 0x7C4E, 0x7C4F, 0x7C50, +0x7C51, 0x7C52, 0x7C53, 0x7C54, 0x7C55, 0x7C56, 0x7C57, 0x7C58, +0x7C59, 0x7C5A, 0x7C5B, 0x7C5C, 0x7C5D, 0x7C5E, 0x7C5F, 0x7C60, +0x7C61, 0x7C62, 0x7C63, 0x7C64, 0x7C65, 0x7C66, 0x7C67, 0x7C68, +0x7C69, 0x7C6A, 0x7C6B, 0x7C6C, 0x7C6D, 0x7C6E, 0x7C6F, 0x7C70, +0x7C71, 0x7C72, 0x7C73, 0x7C74, 0x7C75, 0x7C76, 0x7C77, 0x7C78, +0x7C79, 0x7C7A, 0x7C7B, 0x7C7C, 0x7C7D, 0x7C7E, 0x7C7F, 0x7C80, +0x7C81, 0x7C82, 0x7C83, 0x7C84, 0x7C85, 0x7C86, 0x7C87, 0x7C88, +0x7C89, 0x7C8A, 0x7C8B, 0x7C8C, 0x7C8D, 0x7C8E, 0x7C8F, 0x7C90, +0x7C91, 0x7C92, 0x7C93, 0x7C94, 0x7C95, 0x7C96, 0x7C97, 0x7C98, +0x7C99, 0x7C9A, 0x7C9B, 0x7C9C, 0x7C9D, 0x7C9E, 0x7C9F, 0x7CA0, +0x7CA1, 0x7CA2, 0x7CA3, 0x7CA4, 0x7CA5, 0x7CA6, 0x7CA7, 0x7CA8, +0x7CA9, 0x7CAA, 0x7CAB, 0x7CAC, 0x7CAD, 0x7CAE, 0x7CAF, 0x7CB0, +0x7CB1, 0x7CB2, 0x7CB3, 0x7CB4, 0x7CB5, 0x7CB6, 0x7CB7, 0x7CB8, +0x7CB9, 0x7CBA, 0x7CBB, 0x7CBC, 0x7CBD, 0x7CBE, 0x7CBF, 0x7CC0, +0x7CC1, 0xA1E9, 0xA1EA, 0xA956, 0xA3FE, 0xA957, 0xA3A4, 0x7CC2, +0x7CC3, 0x7CC4, 0x7CC5, 0x7CC6, 0x7CC7, 0x7CC8, 0x7CC9, 0x7CCA, +0x7CCB, 0x7CCC, 0x7CCD, 0x7CCE, 0x7CCF, 0x7CD0, 0x7CD1, 0x7CD2, +0x7CD3, 0x7CD4, 0x7CD5, 0x7CD6, 0x7CD7, 0x7CD8, 0x7CD9, 0x7CDA, +0x7CDB +}; + +/** + The following 3 Chinese character weight arrays are based upon + the PINYIN collation in zh.xml file of CLDR24(http://cldr.unicode.org/) + (http://unicode.org/Public/cldr/24/core.zip) + + Please note that we only support those Chinese characters with PINYIN + in zh.xml currently, we support neither those CJK characters whose + category defined in Unicode are Symbol with the same shape as + Chinese characters nor the PINYIN characters + + The 3 arrays include the sort order of the code points accordingly + The weight here just mean the order of the corresponding gb18030 + code point. For example: currently U+963F(GB+B0A2) is the first + character in the PINYIN collation, while U+5475(GB+BAC7) is the second, + and so on. So the weight of U+963F is 1 and U+5475 is 2, + and GB+8140 is the 15308th character, which has the value of 15308 + in the first array + + The weight starts from 1 to 41309 and there are no duplicate weights + in the collation, so the simplified Chinese is not equal to the + corresponding traditional Chinese + + Totally, there are 41309 Chinese characters being taken into + account in these arrays + + The weight of each code point shall be the corresponding weight in + these arrays plus PINYIN_WEIGHT_BASE +*/ + +/** + Weight array for those 2-byte gb18030 code points in the range + [GB+8140, GB+FE9F]. If it's not a Chinese char, the weight is 0 +*/ +static const uint16 gb18030_2_weight_py[]= +{ +15308, 26403, 32018, 10022, 20221, 3853, 26996, 6117, 24523, 17600, +36813, 1796, 14235, 12424, 13777, 9402, 2763, 40603, 9858, 14080, +7905, 35363, 35610, 31400, 14287, 35292, 36111, 11015, 3298, 36190, +34284, 8336, 14288, 32020, 11032, 6317, 26965, 21034, 12685, 14582, +26905, 19601, 10824, 40703, 33915, 34465, 8093, 26086, 20856, 8385, +28328, 36968, 4806, 39018, 39657, 9512, 8396, 19021, 17937, 35820, +14815, 19318, 27011, 36944, 27705, 28174, 8788, 34234, 23228, 34238, +28437, 35289, 32493, 14027, 35178, 36898, 5148, 17412, 6746, 19824, +12251, 12677, 30443, 390, 1744, 7812, 25865, 1745, 32053, 30025, +10612, 8417, 1875, 3032, 2888, 26413, 25300, 12799, 3033, 23732, +31078, 35007, 7689, 2319, 30446, 5510, 39874, 22268, 36947, 5891, +6633, 31310, 35627, 33157, 12254, 67, 13926, 22418, 5132, 7834, +28854, 4747, 4087, 3046, 32312, 34098, 33161, 38316, 32145, 21796, +21264, 32938, 33589, 40060, 24677, 999, 22419, 35641, 27710, 35547, +39233, 9928, 19345, 40270, 2093, 24678, 1114, 38824, 4422, 34815, +38692, 1160, 32059, 24761, 27141, 836, 11661, 10459, 32470, 8674, +7190, 20501, 1797, 10524, 11958, 9570, 24923, 4440, 33251, 26579, +30035, 8302, 16241, 35382, 9450, 36052, 20077, 33597, 140, 18699, +7066, 19055, 2584, 3402, 34101, 39979, 25542, 4817, 27715, 38038, +28542, 21673, 13890, 14207, 3378, 39183, 41281, 3859, 18877, 14460, +27346, 29530, 26697, 29946, 1888, 20980, 32580, 29935, 37138, 31785, +33547, 9484, 15682, 31258, 35693, 8099, 17572, 11918, 14121, 23841, +25892, 22266, 31436, 8100, 31944, 33371, 5650, 3048, 39870, 16242, +27774, 11989, 32748, 13106, 1606, 3984, 7498, 34245, 892, 37237, +33118, 11019, 2865, 39391, 1800, 14322, 34927, 4752, 17397, 30330, +16243, 2324, 40974, 8769, 29294, 27227, 19842, 28650, 4193, 33295, +22346, 23147, 8458, 14127, 28121, 13647, 7399, 39458, 40890, 19058, +27784, 16841, 11919, 6133, 40859, 981, 31260, 14609, 20943, 2192, +12988, 35117, 26144, 24201, 36306, 3251, 12864, 25646, 39954, 4283, +30676, 37153, 1804, 29069, 34605, 7709, 28857, 31088, 6915, 3060, +26776, 15205, 5660, 2503, 899, 32964, 11480, 35028, 38698, 3861, +34294, 36756, 33565, 38377, 4353, 8174, 1080, 39658, 20235, 12296, +35570, 32965, 34050, 2170, 6474, 2413, 39078, 29675, 900, 37977, +13654, 30677, 27914, 39690, 27992, 31923, 37642, 25474, 21810, 37910, +13267, 19294, 5732, 28791, 10270, 13665, 31492, 26308, 23848, 14880, +2326, 3998, 25868, 910, 32756, 36634, 34937, 28747, 28298, 34830, +7157, 1806, 12717, 38043, 9244, 2230, 16740, 36548, 38154, 40955, +1018, 27823, 4095, 37171, 38561, 41057, 26371, 4167, 14150, 10086, +38748, 24358, 34624, 5683, 32990, 18505, 912, 22744, 13898, 17528, +18736, 19379, 23669, 32093, 28750, 36413, 6207, 40425, 26313, 24049, +14225, 29940, 41219, 23073, 16559, 2936, 9462, 23170, 3260, 2692, +30711, 12159, 1857, 11768, 4114, 29438, 5197, 13449, 7664, 32371, +14494, 6966, 17963, 1938, 9233, 32428, 32372, 20448, 35207, 13977, +12839, 24105, 7728, 40097, 96, 25844, 35489, 15081, 21727, 2699, +35875, 5310, 15768, 13028, 4020, 13456, 26138, 38048, 2316, 1704, +185, 28574, 3820, 2629, 16345, 21283, 13914, 23864, 19866, 31291, +21644, 24493, 21284, 2916, 17815, 18908, 15848, 822, 37378, 1557, +38076, 39503, 27769, 36698, 10228, 3225, 3227, 17246, 29023, 30738, +18461, 3959, 2720, 25200, 27273, 11844, 17313, 19124, 38080, 21863, +28868, 34569, 16714, 21054, 38053, 33319, 6551, 6552, 29838, 2890, +7065, 7067, 13846, 34472, 26974, 0, 23649, 7572, 19563, 26609, +6229, 0, 17047, 11541, 30444, 21183, 17604, 36970, 10145, 29227, +7568, 12554, 35821, 19615, 25171, 37528, 19598, 2403, 14185, 9284, +14200, 19620, 40068, 9040, 33561, 36109, 15198, 35373, 19994, 27028, +19847, 14611, 15599, 17874, 8176, 32930, 20155, 28550, 8488, 11044, +22093, 7913, 20422, 23584, 12852, 27347, 19750, 29765, 9217, 14128, +24418, 6198, 8459, 36067, 35449, 17155, 4180, 20506, 40564, 4710, +27647, 6702, 13978, 17940, 31579, 6367, 7229, 7230, 14373, 3945, +39357, 7690, 20833, 39869, 7691, 7696, 15145, 8397, 22878, 15749, +9965, 25297, 4133, 12085, 23837, 4822, 12089, 5134, 30299, 14823, +16847, 7914, 24880, 14374, 20423, 17997, 39877, 1644, 13618, 13619, +26205, 2759, 8796, 4177, 15897, 6757, 7135, 13627, 4442, 14090, +18494, 19155, 38233, 37478, 4870, 15425, 26088, 4178, 4872, 16853, +7499, 2768, 23246, 4179, 40860, 8502, 1837, 6673, 24377, 6323, +13109, 12513, 34289, 11946, 6690, 6475, 31153, 9292, 26797, 13114, +4938, 15146, 4181, 4081, 2782, 29863, 18737, 16879, 22405, 26228, +15582, 9267, 11220, 38387, 40699, 17429, 14650, 18240, 9647, 13457, +9648, 13144, 13145, 28772, 12601, 13158, 13159, 39808, 2721, 13072, +20556, 16996, 40262, 34225, 13927, 15504, 32818, 39529, 35643, 40128, +20576, 16544, 14751, 15591, 34755, 30179, 32746, 20705, 15810, 13629, +17765, 15426, 13936, 8603, 20428, 3578, 16464, 36621, 15427, 14754, +24378, 18708, 2110, 3586, 15171, 20237, 6201, 33629, 31403, 35752, +33996, 31013, 26802, 16555, 18738, 22745, 27083, 12145, 13303, 2982, +25018, 32543, 35854, 14907, 7209, 14717, 29619, 14651, 5115, 19356, +34002, 34004, 18945, 17208, 3111, 25201, 25022, 37819, 14241, 790, +30908, 1391, 8337, 8338, 36037, 22312, 14376, 28930, 8675, 6908, +8900, 4939, 14327, 24441, 21109, 14307, 35366, 13288, 15292, 10825, +24679, 1460, 24142, 38120, 15813, 10842, 37155, 9591, 11753, 5109, +9646, 17421, 17430, 28106, 6369, 14362, 14973, 31770, 15338, 34473, +24700, 34096, 21418, 41041, 27005, 31771, 30389, 30390, 32824, 5088, +12297, 27454, 15850, 31426, 32955, 13608, 248, 24442, 26466, 3518, +33599, 25043, 31327, 12278, 6917, 31516, 25907, 30656, 38918, 10023, +34211, 5605, 38456, 22136, 34182, 10334, 34187, 39617, 22139, 29064, +26524, 29466, 41140, 7500, 2414, 37551, 17158, 5733, 13899, 291, +9608, 34632, 17171, 2937, 16341, 17187, 34408, 34555, 37614, 8872, +17870, 25503, 24877, 7102, 16728, 6319, 40375, 2223, 2224, 2227, +90, 5059, 27155, 9330, 430, 25736, 27012, 40597, 12802, 27910, +8604, 30784, 25713, 4574, 9285, 24567, 3513, 17710, 10568, 20319, +19474, 33724, 40812, 4825, 35152, 21946, 11945, 35297, 3854, 24319, +13780, 2094, 6820, 10616, 31184, 21164, 33950, 6223, 10569, 8601, +15050, 18875, 8672, 19687, 23401, 31187, 13504, 10570, 3516, 26733, +29964, 30989, 6893, 26828, 14729, 22307, 30951, 19245, 25136, 5610, +27019, 40061, 29447, 31778, 35668, 23457, 22842, 40826, 33557, 35669, +32577, 4925, 24881, 9962, 30036, 23030, 1646, 7920, 34722, 10335, +9862, 4896, 30217, 41308, 2096, 28543, 32316, 11986, 23464, 7136, +6898, 31786, 40069, 27348, 32747, 15722, 11270, 28932, 6899, 33825, +9736, 16592, 29584, 33326, 36879, 6040, 21434, 33313, 7566, 10258, +37543, 18475, 23031, 19492, 41047, 10357, 32333, 16548, 1839, 17622, +411, 20321, 17777, 28122, 7957, 10056, 27572, 36891, 9086, 9144, +956, 9974, 35726, 12759, 29731, 32153, 30331, 17122, 24594, 3050, +38199, 34214, 6226, 23410, 5552, 24326, 20599, 8969, 6259, 24886, +17606, 16539, 26091, 41268, 31042, 13950, 23483, 7079, 23979, 191, +38235, 21423, 36930, 29299, 16290, 31468, 30, 21770, 40611, 5661, +10533, 2193, 32438, 29967, 31263, 30979, 26146, 9149, 23414, 23415, +5179, 35187, 40840, 1132, 4761, 10369, 34216, 23418, 38948, 17607, +32172, 36309, 9303, 39019, 9851, 19096, 34296, 5662, 24937, 2770, +14470, 28793, 182, 5187, 37269, 38956, 40001, 2623, 30249, 37248, +37980, 34897, 20240, 10921, 37876, 11405, 11406, 12129, 39927, 30595, +26153, 33638, 11485, 6693, 21523, 17626, 37270, 25935, 3415, 24048, +34613, 5102, 22309, 2228, 36541, 30526, 36401, 2076, 31810, 13666, +38209, 11089, 29086, 34946, 10469, 23903, 26007, 36549, 10707, 32857, +19320, 2507, 9910, 25612, 30190, 12146, 22158, 31159, 23816, 40729, +19206, 30234, 0, 28344, 39480, 25841, 8773, 20850, 23985, 1249, +294, 17414, 41146, 38912, 20626, 28724, 13525, 3688, 13357, 15147, +28752, 26236, 35, 32627, 18581, 32628, 10865, 11769, 9750, 21953, +32094, 38252, 2906, 22935, 5422, 19301, 10940, 8289, 28770, 35159, +25848, 13526, 32766, 11145, 19339, 25152, 16562, 32770, 12168, 16004, +32639, 10222, 8127, 24052, 4021, 2792, 5202, 34128, 6875, 41221, +7210, 3430, 11633, 38073, 4154, 4649, 5198, 37341, 29970, 31560, +23519, 10216, 17431, 33509, 11636, 36166, 34071, 21549, 27655, 34538, +36516, 4911, 38602, 40103, 21730, 11795, 33018, 13537, 37656, 26, +36566, 15772, 37189, 22298, 5396, 10567, 6613, 5249, 33202, 22585, +36103, 41168, 21648, 5579, 16444, 28413, 11951, 32036, 35241, 6684, +22623, 3824, 12616, 13995, 2917, 34145, 19683, 29212, 18674, 11826, +1988, 36701, 21571, 36175, 11115, 19685, 10601, 38996, 16950, 18265, +9927, 21035, 20545, 34675, 17268, 18612, 18397, 20550, 5230, 3229, +22799, 22590, 32558, 20551, 31887, 6753, 15705, 34420, 2727, 36364, +5784, 16239, 28523, 32678, 4338, 11294, 12062, 40447, 21589, 32679, +2167, 16978, 2827, 2644, 17328, 36000, 19099, 37998, 27959, 31762, +38335, 12967, 37999, 40263, 16387, 21601, 16433, 18354, 11657, 36046, +21617, 29859, 15294, 37475, 14202, 22646, 37822, 4475, 11660, 6821, +9771, 29559, 29762, 9773, 25112, 25376, 9774, 28544, 9777, 36129, +11920, 9975, 19061, 9779, 4093, 30596, 37552, 24909, 15648, 8197, +37562, 37563, 34270, 29787, 29802, 29803, 29864, 19036, 11782, 35905, +18981, 18999, 34227, 29833, 29525, 23104, 18694, 15784, 34147, 37215, +23625, 23626, 40589, 5289, 23583, 32049, 26363, 21497, 20577, 12748, +39535, 33991, 35645, 24291, 19688, 25465, 29982, 978, 1164, 14085, +5641, 14019, 12478, 5606, 14020, 625, 28766, 24685, 39370, 9300, +28554, 14187, 34816, 7813, 18700, 24526, 9033, 33952, 433, 18000, +40277, 8152, 10829, 39618, 355, 5015, 22180, 20465, 12495, 10461, +18919, 4372, 3521, 36053, 10801, 6522, 38862, 7940, 9454, 34922, +6717, 9576, 2533, 34759, 32827, 27167, 1824, 10630, 4988, 15120, +5293, 10191, 188, 33206, 32334, 653, 7853, 471, 35728, 36257, +10057, 33616, 4194, 24241, 1035, 7381, 25044, 36624, 15056, 12703, +5653, 16522, 14732, 13854, 38936, 17779, 11244, 2112, 14189, 35156, +5623, 34164, 24938, 28186, 24352, 30335, 14620, 19082, 39241, 15543, +3740, 6135, 28745, 2209, 3991, 1036, 15207, 6722, 35753, 39463, +40558, 23260, 14621, 21226, 15440, 16040, 21323, 12865, 8507, 37251, +6918, 9220, 16842, 7413, 34194, 16110, 219, 26725, 21113, 29742, +3325, 11893, 1226, 17529, 9742, 40418, 766, 37002, 19569, 13574, +25630, 35190, 8855, 40896, 37003, 11486, 6934, 34939, 806, 4379, +19707, 2934, 30094, 36264, 7763, 39956, 13812, 13858, 10564, 8515, +4227, 12999, 22902, 16821, 32537, 11465, 6496, 30279, 33737, 12543, +12325, 15762, 36414, 36641, 15150, 28000, 26935, 20135, 31015, 3340, +29788, 25060, 39930, 17173, 39931, 699, 38147, 6528, 29268, 31356, +39336, 33998, 39200, 82, 8904, 34387, 15213, 30887, 32991, 18329, +9926, 16513, 2907, 22356, 1060, 3181, 18748, 18659, 21918, 23857, +19723, 20627, 40385, 27498, 18548, 1539, 2432, 39741, 38752, 15237, +5815, 3204, 39486, 31830, 9746, 23971, 13969, 5693, 4713, 34633, +28424, 38337, 23766, 30881, 40525, 24012, 26317, 26318, 455, 23076, +15769, 6169, 7256, 25076, 6609, 41205, 5694, 26809, 6788, 6791, +28670, 5488, 20748, 7618, 11500, 28671, 4991, 35197, 40361, 13213, +370, 23951, 24017, 15493, 35906, 22541, 5822, 13244, 35162, 33931, +28678, 16412, 14660, 11274, 5319, 25217, 23872, 34007, 32396, 31755, +99, 34176, 5367, 25637, 14017, 16753, 15875, 18613, 34421, 28696, +30748, 11276, 18463, 18464, 25718, 17269, 17919, 2862, 34018, 34438, +16715, 493, 30291, 25905, 40471, 35299, 19346, 40285, 40475, 10912, +16083, 10922, 33640, 16089, 27191, 19530, 41206, 27192, 35337, 9127, +13289, 7758, 38572, 1474, 28115, 25111, 18001, 4874, 33357, 33104, +21094, 32045, 37628, 19600, 6668, 24374, 30263, 9042, 23492, 19970, +19972, 3206, 38296, 9329, 8573, 28885, 28590, 34458, 1112, 11198, +37867, 12688, 396, 7047, 5513, 22207, 14750, 32828, 5764, 34876, +11388, 15123, 38372, 972, 11560, 7464, 5856, 34115, 1008, 360, +31014, 9857, 31357, 362, 13270, 17422, 6701, 37807, 13271, 27106, +7667, 12027, 1347, 18982, 6755, 6068, 23627, 14289, 21831, 2580, +32056, 7309, 12429, 10614, 5082, 7837, 14116, 9898, 30974, 39879, +21976, 15508, 39945, 37823, 7823, 3666, 37693, 40453, 34589, 20867, +33108, 7593, 7692, 30393, 6429, 434, 40598, 38827, 20940, 37631, +29700, 32149, 39454, 6808, 20579, 1173, 26581, 6809, 10338, 33558, +7164, 39234, 20372, 627, 7839, 18002, 40817, 25174, 26208, 34723, +19374, 40710, 14587, 25322, 6188, 12280, 8307, 32526, 11157, 14701, +9038, 12858, 12859, 21422, 39457, 12108, 32325, 10539, 9455, 15024, +15712, 34594, 20502, 17768, 22277, 6903, 36881, 34359, 26588, 26919, +9577, 24927, 27780, 10631, 32335, 26472, 3300, 32957, 19493, 7854, +19698, 15434, 4311, 4312, 29532, 33261, 20983, 36982, 23012, 21172, +39639, 9976, 40456, 22788, 29948, 32336, 31191, 34360, 31265, 15, +34366, 36983, 27725, 17391, 14398, 40512, 23153, 32160, 40612, 6136, +18714, 50, 6811, 18499, 20191, 4552, 23032, 14471, 2171, 18031, +32600, 27283, 23416, 11608, 7328, 31065, 25676, 28653, 7420, 7554, +29232, 21227, 24940, 14124, 14034, 23657, 5798, 33299, 11077, 30276, +16249, 36078, 3764, 21143, 8178, 19062, 220, 16041, 36137, 34249, +14399, 17140, 5769, 32161, 11245, 11209, 5298, 35030, 21028, 4313, +12810, 29676, 37272, 30597, 5674, 25508, 19755, 5103, 25649, 24214, +11609, 31093, 23754, 4228, 20282, 8182, 13771, 6476, 35466, 39957, +11487, 20193, 152, 36311, 33738, 13575, 30529, 39265, 24535, 27069, +32980, 30142, 17531, 19644, 25186, 27635, 22649, 30791, 30188, 14330, +10923, 24202, 767, 33481, 29677, 9522, 3909, 34947, 37565, 25400, +25613, 18227, 19759, 22062, 340, 19248, 15995, 24256, 39087, 37566, +13576, 25408, 20482, 36321, 28004, 21454, 28903, 22144, 16473, 21118, +741, 22608, 35856, 37317, 33804, 19372, 35328, 15260, 36556, 21332, +9532, 13902, 40386, 38253, 9942, 16620, 38913, 11095, 11096, 363, +21199, 19323, 22770, 9109, 31280, 24053, 30148, 38664, 19576, 32188, +32189, 20645, 17666, 17432, 11228, 9538, 5459, 39494, 33511, 35333, +11214, 31561, 16005, 25236, 34640, 2700, 13362, 19763, 7348, 7211, +32106, 35907, 11797, 13538, 8233, 27116, 28205, 23952, 17508, 11338, +33142, 21461, 6170, 35908, 2232, 100, 21436, 21649, 19250, 29415, +3825, 13996, 4404, 37071, 22795, 25439, 25575, 20948, 34329, 28579, +36350, 2267, 37749, 20203, 1395, 26688, 33311, 21354, 6372, 18320, +37518, 16420, 34676, 18118, 13491, 21437, 16422, 23714, 36365, 27479, +11848, 24979, 20101, 16988, 18983, 34439, 40224, 16428, 14818, 19247, +33165, 27718, 28545, 36917, 40401, 28264, 20322, 4553, 23658, 34165, +21279, 40743, 16904, 33932, 2043, 20932, 21576, 36366, 18984, 25463, +24444, 29724, 25538, 35009, 35375, 14086, 40548, 40236, 10624, 26914, +35420, 29404, 26975, 3301, 25121, 8893, 32586, 38493, 760, 26664, +11558, 20120, 15600, 2194, 38067, 37485, 24353, 25050, 39083, 13124, +21634, 1807, 11322, 24299, 26931, 21635, 13960, 21637, 39720, 37172, +769, 15787, 21638, 14640, 24305, 10866, 26941, 21640, 26676, 30718, +32932, 15788, 11783, 15089, 35936, 35509, 782, 24229, 3747, 784, +7742, 18917, 6555, 22949, 40378, 7855, 15435, 13230, 40381, 34054, +27369, 6570, 5364, 13610, 7103, 7104, 27213, 26405, 20698, 17741, +32264, 32265, 16111, 30430, 17735, 19480, 30435, 30432, 30433, 34918, +6763, 15990, 39928, 8398, 9156, 29914, 8411, 8412, 31774, 1078, +13791, 29248, 5885, 26833, 39139, 32959, 21221, 31453, 30671, 19418, +18563, 22860, 29223, 7506, 32981, 18899, 2474, 33019, 14674, 14813, +17688, 14963, 27332, 31901, 21306, 30244, 32054, 17076, 6883, 5418, +11860, 18356, 25304, 31311, 10048, 26574, 3881, 25305, 37694, 604, +35010, 249, 31315, 13623, 6886, 7594, 30306, 23733, 23225, 13784, +41278, 41279, 34817, 14588, 8494, 33917, 22909, 17093, 29367, 24688, +7922, 30070, 22489, 356, 15856, 24689, 22963, 29368, 18003, 3459, +22901, 10054, 33432, 29578, 33918, 1521, 10345, 406, 19187, 6904, +8161, 5942, 18703, 7055, 7070, 8308, 24902, 35402, 20759, 26920, +141, 30580, 11313, 20118, 17025, 12498, 29585, 30581, 36883, 9242, +17026, 34924, 13336, 6827, 32829, 2055, 25114, 7705, 21073, 17029, +36746, 32337, 10644, 5353, 26596, 3302, 29767, 8827, 10259, 31952, +36131, 37149, 16523, 15236, 32249, 25045, 3721, 28451, 17878, 11205, +14402, 16250, 20386, 16042, 16043, 41050, 9221, 34195, 8527, 19063, +19064, 16826, 6676, 39254, 36139, 6137, 9981, 39255, 30678, 22511, +13657, 41051, 15646, 6138, 36140, 40885, 38311, 11488, 37004, 34777, +7717, 24622, 34778, 29072, 35574, 39695, 27070, 6936, 40313, 15190, +18926, 34493, 19756, 9991, 12132, 11407, 29496, 31348, 37005, 40898, +16333, 15410, 34377, 34378, 30686, 40899, 2544, 28190, 15479, 24215, +29225, 29789, 6530, 31521, 31017, 2328, 5302, 25409, 13680, 15151, +18228, 31358, 23998, 1019, 5734, 23817, 36642, 21535, 4846, 27147, +25758, 27828, 40912, 13306, 17657, 15262, 2787, 5988, 2450, 6076, +29748, 18550, 38655, 38656, 295, 2366, 24719, 23908, 4715, 41159, +5361, 5362, 31688, 37318, 22291, 18381, 32546, 2475, 1859, 24222, +13363, 34531, 16565, 38714, 17668, 17669, 13864, 6789, 41207, 13533, +9649, 34970, 13364, 34971, 14919, 38603, 35909, 33933, 21087, 35228, +35229, 35501, 21560, 32277, 12353, 33030, 15415, 31564, 5709, 371, +41166, 30884, 25440, 5368, 18186, 37990, 37190, 37753, 36230, 25628, +13738, 17230, 9548, 18399, 18400, 25451, 31637, 14531, 2728, 36497, +15914, 34423, 21098, 24980, 3030, 4690, 18985, 5754, 5755, 21616, +34441, 34440, 34576, 15966, 34577, 15748, 11448, 14021, 2992, 17811, +14585, 23135, 23136, 24641, 39365, 38828, 35422, 13892, 34102, 14752, +412, 7907, 37951, 6051, 21494, 7559, 22002, 39536, 11050, 5170, +5017, 20580, 1830, 20591, 35697, 35698, 22849, 23588, 14730, 25545, +27442, 27530, 24092, 39067, 26840, 25122, 5032, 9506, 22861, 38806, +25893, 30277, 5038, 26148, 23265, 6411, 10752, 39334, 33482, 30599, +35787, 663, 22866, 6045, 8905, 22063, 28905, 20138, 12837, 29008, +11624, 39904, 26237, 1540, 9785, 38254, 20811, 666, 14100, 2793, +39763, 10874, 1273, 1393, 38820, 20162, 24018, 2668, 7619, 19876, +671, 3826, 20343, 3932, 13721, 32287, 16369, 12848, 1798, 8467, +12447, 29458, 38298, 9474, 20696, 24233, 6636, 34212, 536, 13787, +40490, 34152, 4444, 29580, 35559, 39628, 29351, 39629, 32590, 29768, +9587, 15684, 19495, 36827, 2056, 1799, 3383, 16251, 12299, 27787, +27362, 24403, 37275, 20314, 27862, 2419, 32441, 7509, 14332, 6954, +9523, 18330, 26155, 27863, 39721, 23035, 24406, 14343, 14333, 18512, +36271, 5055, 18750, 35857, 3922, 29804, 27657, 33138, 20316, 2938, +31281, 7522, 9476, 15699, 15774, 1316, 23953, 17942, 17689, 18615, +12681, 36498, 32125, 29482, 36588, 16990, 29484, 34025, 5545, 22026, +11662, 20941, 11665, 7651, 14546, 34475, 38144, 35293, 7132, 25852, +7133, 27085, 5890, 11035, 31138, 29902, 13290, 468, 26658, 14830, +28888, 8096, 5612, 2972, 39135, 35423, 24903, 26415, 33731, 14130, +5857, 38746, 13295, 23940, 22349, 1227, 26532, 5188, 13013, 8775, +7160, 1250, 15584, 13212, 1676, 32650, 5203, 9751, 13308, 10691, +20028, 9762, 30290, 14987, 12469, 18701, 11757, 11758, 35502, 35503, +35521, 37679, 37681, 30910, 34595, 37240, 3406, 5858, 36643, 22732, +3448, 40590, 30134, 12260, 39881, 30447, 5515, 18005, 7925, 30462, +31439, 30465, 3379, 39641, 14131, 4551, 39871, 4555, 6144, 12531, +39662, 4556, 39992, 16252, 32967, 13806, 13116, 27073, 12811, 1484, +8184, 30687, 22146, 31524, 39272, 22747, 29105, 5438, 39279, 1658, +3690, 3096, 13459, 11798, 19735, 18486, 32457, 829, 24831, 16646, +25266, 6087, 8324, 25269, 8368, 23445, 27007, 31415, 7233, 36304, +20374, 30949, 31323, 12261, 31779, 12749, 30394, 4481, 37224, 23226, +4748, 28591, 29983, 23735, 11887, 33322, 15835, 32060, 15250, 14589, +35674, 755, 20375, 22232, 14597, 628, 21066, 29429, 11064, 14598, +3783, 5648, 29728, 36739, 7844, 31780, 1177, 36683, 33847, 4484, +1761, 11553, 33600, 1178, 27350, 31440, 28619, 36673, 20697, 39545, +27033, 31792, 16594, 10540, 15815, 20707, 39551, 32832, 29353, 5944, +10260, 9578, 31441, 13415, 27775, 10837, 24530, 11666, 3581, 35405, +33327, 9334, 17958, 3525, 26407, 24904, 37702, 22316, 5426, 11733, +32793, 19488, 36625, 37482, 22441, 37706, 37254, 29770, 13804, 38949, +17959, 10261, 24148, 29173, 2113, 23845, 31454, 19375, 35314, 10532, +3380, 31336, 16859, 17623, 4486, 35757, 17124, 21107, 6919, 31338, +4557, 6694, 2953, 19833, 25895, 9412, 9407, 23155, 15546, 29302, +19065, 31493, 15209, 9696, 21328, 6604, 9819, 38586, 37493, 13857, +12544, 16331, 37256, 10387, 24941, 28654, 29178, 21515, 4314, 11872, +33125, 6938, 28339, 40951, 12866, 36635, 5431, 21116, 37913, 5969, +4287, 24465, 2420, 1439, 20438, 40901, 29073, 920, 33740, 30531, +8693, 30688, 1229, 33741, 11408, 20242, 36636, 15172, 5299, 36080, +3171, 19653, 23604, 15452, 84, 24160, 34495, 21883, 40952, 25825, +36531, 25068, 8906, 37847, 28018, 23292, 34951, 27824, 11574, 12327, +9158, 14641, 4183, 21333, 32859, 15152, 39317, 36644, 2391, 34125, +26709, 1928, 15175, 31823, 11930, 36648, 34834, 17175, 25941, 28906, +36089, 33657, 28606, 37917, 20508, 8984, 4562, 22700, 20812, 9787, +3627, 2282, 2259, 2254, 4717, 20449, 38756, 29671, 364, 27499, +9419, 25077, 38210, 14347, 17417, 21967, 27830, 24263, 36280, 18937, +26374, 29865, 19382, 23679, 26545, 24427, 5703, 39495, 18513, 14785, +23182, 23174, 37344, 22881, 17659, 4589, 36695, 3691, 39765, 29672, +3261, 23520, 24720, 22366, 941, 24494, 13365, 3617, 17435, 22886, +16006, 11785, 3355, 36285, 36286, 31747, 31581, 5204, 28673, 6737, +6573, 28028, 14939, 2439, 32641, 7213, 7666, 16569, 16621, 32190, +20450, 17722, 31282, 2285, 14920, 4650, 32388, 28727, 26769, 22476, +35911, 32107, 21088, 5206, 28730, 14102, 27801, 13471, 30822, 33766, +24280, 24271, 14661, 2393, 15496, 36351, 35912, 17944, 26026, 15090, +11257, 101, 34334, 16147, 32037, 3650, 37191, 36292, 4999, 19954, +108, 19877, 6584, 23342, 20566, 16351, 19840, 3827, 39809, 21900, +34330, 34842, 1989, 39828, 15878, 15849, 36860, 7897, 18266, 20344, +3370, 11864, 2844, 16421, 11261, 33819, 25229, 2848, 12636, 14693, +11295, 26564, 17564, 21024, 20056, 28870, 14989, 8536, 40489, 37687, +8631, 12854, 6199, 5961, 38319, 12767, 39407, 15939, 38708, 23909, +8655, 13022, 37319, 34532, 10875, 38719, 31853, 31862, 24834, 11036, +11038, 6884, 27014, 29161, 19603, 5793, 26394, 35424, 35566, 34496, +24569, 16647, 7297, 25624, 38037, 38799, 5883, 36921, 15628, 8418, +26575, 2492, 30028, 9130, 31313, 5450, 25307, 31416, 23737, 12750, +36953, 353, 31423, 39539, 39612, 5451, 34462, 15836, 1463, 14375, +30950, 10895, 37695, 24322, 5136, 39308, 37868, 30308, 21156, 23016, +23017, 432, 334, 38226, 37949, 1762, 39546, 28614, 2102, 35014, +39132, 38371, 34724, 10310, 21268, 35175, 3575, 22428, 12689, 19771, +24690, 3976, 12693, 38457, 22170, 20840, 23738, 30038, 537, 5614, +14599, 16116, 23578, 23646, 10519, 21623, 8943, 4819, 35406, 32833, +2408, 11594, 510, 39630, 16118, 6720, 6721, 21753, 39184, 8677, +13508, 6192, 20844, 17769, 38373, 18878, 5945, 14845, 17866, 14552, +34243, 32154, 37471, 30042, 1898, 8829, 29151, 3310, 25761, 15513, +19752, 18481, 14388, 22344, 12989, 26215, 25629, 32837, 2500, 7760, +13421, 14324, 11990, 29771, 23019, 38307, 27357, 35131, 14857, 30312, +2114, 41227, 35733, 38516, 18879, 27858, 30043, 657, 30878, 30396, +24247, 26518, 20387, 19813, 8109, 5350, 31066, 14734, 37714, 40950, +3122, 29738, 983, 25735, 41243, 31089, 31476, 3315, 25968, 19049, +24419, 8508, 5624, 11922, 23266, 27236, 23665, 18034, 34254, 39256, +17608, 9304, 35758, 12001, 26305, 39312, 2197, 1752, 29175, 39994, +15500, 21994, 13566, 20519, 8867, 19989, 25939, 22408, 21879, 13000, +39266, 14265, 13001, 34388, 21011, 10578, 22603, 30532, 25826, 21486, +27075, 40953, 39201, 34056, 36603, 1401, 34779, 11409, 34497, 38069, +33485, 15398, 12288, 29181, 16175, 16189, 3172, 14270, 29783, 11610, +8794, 3752, 32619, 32800, 23749, 2511, 847, 34940, 30533, 1077, +30982, 40954, 8807, 9052, 24333, 25410, 25061, 3770, 28280, 28266, +25402, 701, 15363, 34952, 5358, 39415, 21811, 16164, 24663, 32266, +13962, 20334, 6956, 4199, 26229, 28462, 38463, 22066, 17176, 28907, +10926, 39723, 30193, 11169, 30983, 23967, 29270, 39089, 6957, 21889, +24958, 38502, 31271, 26537, 15284, 27871, 25788, 2789, 28309, 14272, +3689, 4139, 9321, 7766, 5695, 23511, 27878, 17505, 3262, 3420, +9420, 18753, 18551, 40960, 8346, 11099, 38389, 4170, 28879, 11222, +20930, 13236, 9533, 36478, 304, 39767, 21550, 19445, 2840, 15585, +3889, 26546, 29866, 13450, 2302, 15524, 1541, 13307, 36090, 9063, +23682, 12354, 22760, 16542, 6614, 32381, 25634, 9651, 38074, 35880, +32191, 3268, 21085, 10725, 9491, 4914, 21402, 17941, 39318, 11634, +13460, 12456, 2355, 5150, 5151, 1860, 3063, 14811, 8128, 993, +8129, 40637, 30712, 23047, 24337, 6611, 11170, 13461, 28486, 24110, +31053, 13035, 36569, 21047, 18669, 40638, 38269, 23050, 4331, 12201, +5274, 26027, 24386, 13592, 15745, 5117, 32878, 15114, 377, 14662, +35219, 7043, 19990, 20029, 12458, 28580, 5369, 16418, 14572, 35145, +25603, 35252, 35245, 21289, 31114, 12382, 1732, 21650, 8666, 39810, +39791, 16141, 20547, 13174, 32904, 17830, 28640, 533, 27928, 18676, +19045, 25249, 29055, 34843, 16806, 2158, 27274, 38077, 21409, 32288, +15101, 17274, 16210, 11378, 36443, 18616, 18466, 23709, 23710, 23715, +16371, 32126, 36367, 19741, 2672, 36534, 4684, 32914, 26565, 19130, +15108, 20057, 16979, 38081, 18988, 28642, 17331, 5756, 30208, 5278, +13498, 16430, 17359, 9620, 9580, 23160, 34077, 15309, 35550, 8371, +569, 22966, 5728, 15597, 20429, 31330, 10360, 2411, 3986, 8683, +33627, 13517, 3166, 26605, 6691, 37159, 544, 33628, 6692, 21526, +5773, 6679, 35790, 15412, 34616, 12134, 29706, 32757, 6696, 34785, +31975, 20399, 36, 37, 5572, 39206, 27392, 17672, 24731, 33359, +35592, 13472, 26366, 13473, 40661, 35937, 17509, 1332, 16964, 32785, +32786, 33914, 23233, 23249, 14867, 38520, 16476, 580, 37203, 16379, +30770, 26735, 12805, 12812, 37164, 13527, 29413, 6301, 36119, 23890, +24764, 38643, 4884, 40622, 40639, 24267, 17901, 40662, 4030, 6512, +40264, 2764, 10159, 22279, 36740, 19774, 23250, 22448, 18215, 7857, +7400, 14038, 38872, 35575, 26426, 13125, 37030, 39792, 7215, 22707, +7216, 38617, 15778, 28237, 37098, 12470, 12534, 12007, 32820, 29347, +28552, 5643, 33459, 2762, 34750, 26915, 20376, 20377, 30019, 4222, +31252, 883, 605, 13626, 26736, 11060, 7394, 9623, 33726, 7563, +24292, 10833, 34354, 38304, 7395, 26698, 14600, 34763, 1766, 33851, +22967, 39136, 18010, 10256, 20592, 1475, 33608, 11866, 40972, 27037, +7495, 5946, 30885, 6130, 49, 1767, 251, 18362, 15860, 29405, +26926, 11559, 33828, 15921, 33472, 13422, 13941, 39645, 29591, 10704, +8310, 32496, 10070, 15063, 32344, 16044, 40080, 31477, 26796, 38950, +38951, 10071, 10266, 30348, 29306, 40623, 41177, 40052, 26272, 21276, +31495, 23422, 39313, 35791, 225, 30349, 17881, 2871, 30476, 32726, +7555, 8858, 35468, 37802, 11617, 33569, 20445, 35120, 36509, 27310, +30700, 24385, 19655, 20992, 13014, 34786, 4229, 34959, 28348, 13972, +13451, 15155, 8583, 31019, 2958, 23512, 10281, 34634, 17189, 12592, +19836, 38091, 33020, 10284, 20640, 4508, 21340, 38762, 11786, 10108, +33807, 4098, 17676, 5207, 14103, 22761, 17902, 31751, 35913, 12603, +11579, 5060, 35209, 35210, 17212, 28679, 29633, 32733, 7527, 26682, +38895, 10291, 35938, 32510, 33233, 26643, 13477, 824, 14165, 34664, +111, 35246, 25582, 19884, 17253, 3195, 15879, 6018, 17727, 34684, +12063, 18623, 25454, 18411, 19179, 18989, 26199, 28871, 34578, 40226, +37666, 35170, 10834, 27228, 2360, 26819, 2468, 2280, 33643, 11761, +36219, 24169, 7585, 22556, 7597, 18011, 7460, 29165, 21823, 29406, +16509, 41142, 20475, 11462, 29968, 12137, 36317, 40908, 30508, 29634, +16521, 16637, 18412, 5476, 27336, 20785, 25267, 394, 6712, 5341, +17081, 9567, 14244, 1113, 3290, 4436, 25626, 23635, 36955, 31146, +34030, 7234, 40819, 25313, 30033, 5644, 19481, 3569, 35653, 8342, +8880, 16849, 13325, 26364, 30427, 14370, 19482, 27719, 37536, 7491, +6128, 32062, 4223, 27220, 11201, 33114, 3856, 3857, 27779, 31083, +13933, 12103, 19555, 1181, 265, 7598, 35678, 7930, 20978, 11061, +34154, 6254, 33151, 34888, 6870, 38861, 37902, 41202, 6255, 6806, +18851, 27856, 20979, 32069, 28558, 31722, 9325, 725, 20593, 35705, +35180, 35184, 27038, 21501, 1121, 35407, 21272, 16160, 10348, 632, +7235, 39890, 5027, 4374, 34821, 7845, 19625, 26445, 27783, 26589, +20982, 36626, 39631, 38374, 5176, 9084, 2107, 276, 7942, 407, +6765, 1188, 26216, 27727, 3980, 22235, 27021, 9326, 38375, 35020, +14319, 18302, 19695, 17389, 25387, 38224, 26741, 36622, 34043, 23476, +39068, 35425, 32477, 39192, 17126, 25997, 15186, 962, 25287, 526, +25288, 1801, 40715, 3788, 35734, 4447, 13110, 41172, 7077, 7111, +36828, 7174, 8945, 38581, 17782, 36063, 35735, 27047, 7962, 25547, +35426, 15643, 24450, 25909, 33958, 6768, 40510, 36985, 38066, 0, +36307, 13836, 18353, 38696, 34044, 26099, 39079, 845, 29472, 16121, +14136, 23009, 984, 25677, 31478, 16477, 18306, 7710, 23156, 30954, +15030, 8427, 27985, 24611, 36832, 18483, 22324, 40459, 5664, 33734, +29777, 38207, 277, 1213, 5556, 9984, 39402, 25331, 903, 12995, +11400, 30341, 21853, 12709, 29374, 12535, 32601, 18887, 11891, 2456, +7606, 27789, 16863, 6280, 24296, 36469, 14406, 16084, 40616, 2656, +30679, 14137, 16864, 1689, 32050, 7816, 28942, 39665, 16253, 17406, +40574, 16874, 23497, 1809, 19068, 4491, 23850, 23283, 2211, 2682, +5432, 7468, 22015, 697, 11877, 3328, 38182, 17160, 37279, 37280, +9226, 15069, 6203, 8512, 30477, 4885, 7246, 3246, 38705, 23423, +37499, 34500, 37281, 24911, 35792, 25292, 23162, 40577, 7997, 16260, +41001, 41002, 7573, 26611, 24382, 21234, 30350, 18730, 10211, 13579, +3799, 14555, 14481, 3329, 41245, 23900, 34168, 848, 40624, 40733, +1692, 22353, 6099, 3949, 2967, 19843, 11246, 13002, 9524, 31812, +5420, 9690, 5840, 39408, 25025, 20514, 8281, 8868, 22409, 38647, +36042, 26070, 6733, 8198, 30701, 30541, 12813, 40909, 12889, 35469, +31683, 34625, 34513, 12890, 37173, 10397, 31101, 22666, 1085, 34902, +12008, 33497, 25744, 34787, 16190, 34389, 975, 11618, 15941, 13813, +15942, 27641, 7722, 30145, 39666, 20813, 19656, 11087, 10934, 29503, +37033, 36771, 27827, 33869, 34831, 39091, 22667, 35199, 13683, 35200, +6653, 37012, 30542, 19717, 29185, 12317, 13684, 25533, 11496, 16657, +25026, 32571, 27148, 28660, 30891, 26726, 4043, 22645, 12818, 35858, +38657, 8032, 21891, 20147, 9175, 13140, 28409, 35040, 26116, 37577, +40848, 20488, 28019, 12838, 34960, 13701, 11578, 8469, 23767, 19303, +37578, 25417, 26942, 39423, 37853, 29504, 25411, 28807, 38525, 27649, +26810, 15370, 31542, 9166, 23176, 8584, 28270, 22067, 28909, 8713, +34061, 5738, 21778, 12338, 9057, 23910, 23819, 19724, 33669, 8534, +40640, 30107, 24122, 34862, 5739, 12819, 41183, 5421, 18489, 25938, +31694, 12170, 17425, 11787, 36562, 23866, 9825, 8355, 8360, 29868, +11230, 26071, 4721, 22361, 36850, 13275, 11103, 11429, 9652, 21551, +35881, 8556, 15266, 9539, 9540, 19453, 5536, 40465, 16659, 16517, +3182, 4509, 16908, 33393, 24387, 27501, 29665, 9423, 38260, 28030, +16744, 18665, 17587, 20156, 18520, 3002, 28031, 15377, 1547, 18769, +14274, 39038, 38395, 27264, 19384, 21460, 34869, 29388, 22362, 40335, +26119, 24968, 12903, 4510, 12679, 34717, 33988, 7151, 34078, 39500, +41150, 4570, 23115, 27397, 11223, 16015, 39112, 26326, 31586, 4234, +5824, 7187, 20539, 31293, 25238, 17968, 18251, 24060, 32390, 25732, +7261, 38666, 16606, 37859, 27565, 6615, 3273, 28825, 19868, 28056, +14942, 5825, 11800, 12184, 21872, 30151, 21667, 25688, 29635, 38343, +7626, 24496, 25193, 10551, 23780, 9111, 18317, 16624, 8558, 31907, +26820, 40886, 25908, 12371, 6243, 14181, 13214, 4044, 28494, 27270, +13249, 17948, 21734, 36227, 28224, 26248, 41192, 33813, 3277, 8474, +14513, 41196, 35939, 23118, 7733, 11702, 5321, 12619, 28216, 22890, +3362, 3960, 40365, 9662, 12373, 13776, 12824, 38544, 13040, 23956, +5402, 35597, 1601, 27805, 26495, 17394, 36176, 28964, 28583, 20208, +23352, 29876, 1710, 12036, 12629, 23706, 21292, 21653, 35345, 8597, +15227, 36297, 21782, 24413, 34547, 23353, 20175, 38900, 9668, 4241, +12213, 15954, 22942, 5496, 3933, 8776, 20210, 36705, 39839, 11571, +23711, 16762, 16696, 25812, 18681, 17254, 4689, 18953, 20350, 11837, +21934, 18609, 39811, 8565, 6376, 37603, 17275, 7540, 40669, 27930, +17456, 13326, 3938, 24438, 40176, 18624, 34430, 17293, 40175, 3231, +13741, 7020, 27956, 11264, 21585, 37415, 18414, 16314, 13560, 32291, +9556, 14575, 32676, 18125, 36373, 12958, 36242, 36811, 36450, 32461, +21744, 2011, 2736, 16380, 14577, 27481, 26568, 30650, 4582, 24984, +24835, 2353, 14372, 37437, 19135, 17349, 4692, 18990, 5282, 14996, +34719, 16434, 16391, 40227, 16721, 17066, 496, 21043, 37449, 18156, +9496, 35679, 23641, 33468, 2974, 3981, 23488, 15169, 35736, 14858, +31800, 33618, 10316, 15993, 16470, 15793, 27582, 17, 4047, 3539, +24216, 15210, 15796, 15214, 4113, 9261, 36085, 37035, 32630, 35211, +31162, 28756, 13983, 21924, 10876, 29191, 11286, 33514, 22300, 31752, +32772, 4049, 26327, 9951, 4031, 35940, 7010, 37082, 4337, 11447, +2103, 2104, 14601, 23743, 3467, 26005, 3540, 26011, 39933, 28195, +28196, 17190, 4890, 37057, 17214, 9549, 6885, 38926, 20582, 20583, +34889, 26743, 33619, 14869, 23598, 24612, 27986, 24380, 35793, 7829, +35193, 2251, 11879, 5983, 39102, 37881, 30892, 3876, 29193, 13984, +26379, 36169, 5869, 14353, 11801, 4696, 5118, 6463, 13250, 17552, +1734, 6377, 13216, 12959, 40288, 24420, 35759, 26093, 24096, 15399, +32709, 34119, 11691, 24008, 12163, 21925, 11697, 6509, 35346, 32686, +9401, 19748, 48, 13770, 22498, 2710, 10206, 2189, 22493, 17864, +12700, 25824, 20795, 30159, 34046, 7112, 25395, 32253, 14467, 24613, +6281, 26101, 22251, 14482, 6680, 1081, 25906, 19658, 25828, 36935, +30166, 10398, 28474, 25859, 18863, 20747, 19581, 29636, 25489, 38612, +25982, 38613, 19887, 18682, 6033, 14825, 23447, 34756, 21187, 1741, +26590, 23477, 31456, 24354, 34264, 6145, 34835, 37806, 39307, 1746, +5287, 27551, 16648, 21308, 7306, 9566, 1679, 38299, 20222, 5846, +40592, 4117, 30301, 7310, 4980, 30030, 19477, 24573, 22817, 23629, +31139, 31140, 29846, 14369, 39366, 39540, 23636, 14087, 14088, 25695, +15021, 10620, 24999, 1464, 8455, 39876, 7362, 14832, 11016, 21684, +33593, 33602, 37824, 34463, 5172, 36726, 11052, 11982, 21819, 19689, +20111, 3671, 22119, 1118, 39541, 22095, 40507, 37954, 18209, 38227, +7695, 19772, 38065, 30040, 17096, 20078, 35385, 7154, 29250, 27623, +15858, 14204, 14382, 35681, 12694, 39885, 11720, 959, 38229, 40186, +36684, 9082, 10835, 22845, 4425, 39373, 27968, 3242, 27713, 14459, +25781, 26737, 14840, 7931, 12432, 9406, 5242, 36126, 22058, 35707, +11596, 38040, 3303, 30582, 10803, 13101, 27732, 7072, 33256, 7945, +25996, 39554, 36255, 31195, 15314, 19194, 211, 29166, 20708, 16785, +35309, 20082, 24930, 22968, 32696, 32953, 27971, 15817, 24150, 14591, +22851, 33328, 39633, 9456, 20470, 31148, 24692, 35708, 14125, 26838, +7168, 2766, 13937, 17783, 24601, 30673, 9979, 19497, 36748, 1899, +6274, 10645, 35737, 36466, 16402, 10027, 17030, 8799, 17525, 4253, +7761, 35738, 29594, 16554, 12705, 3676, 14212, 28124, 3247, 22282, +32341, 26700, 16104, 22824, 10062, 14032, 21391, 29735, 32752, 29534, +6828, 29966, 17128, 27531, 27733, 16788, 27532, 6343, 37837, 10565, +33301, 27186, 4315, 38807, 15547, 31090, 30048, 6141, 31043, 14407, +26528, 17575, 11873, 28455, 24155, 5429, 14763, 9151, 9820, 34299, +39995, 22402, 10268, 2867, 23157, 7368, 39468, 18718, 14474, 16792, +39032, 22862, 29303, 37259, 21228, 18719, 20125, 14138, 18036, 19066, +24772, 37260, 21393, 1531, 10849, 37494, 16254, 24355, 23809, 39558, +36210, 20126, 985, 37487, 30980, 25742, 7421, 37488, 15409, 12537, +26529, 26066, 23562, 22601, 31906, 37490, 25510, 11410, 13003, 21832, +24625, 29497, 7247, 31044, 5676, 30535, 25558, 2421, 10373, 34501, +10661, 20089, 19565, 36312, 34502, 10579, 26781, 19757, 38018, 11894, +20962, 9599, 3600, 6940, 17534, 23499, 23500, 19711, 29264, 4598, +30600, 2229, 11746, 20621, 33486, 12320, 12997, 7792, 35796, 36266, +26933, 13580, 3256, 28749, 37014, 1233, 20440, 26847, 29744, 26753, +36637, 14483, 6204, 29893, 13444, 24626, 28768, 18378, 12009, 37554, +21012, 635, 36838, 24952, 40460, 17629, 2683, 34379, 4262, 21528, +40735, 19421, 36409, 16235, 7808, 18501, 30601, 32051, 36410, 22920, +13964, 34627, 28349, 37570, 17418, 35036, 19971, 40559, 3342, 28605, +28421, 30194, 9001, 25943, 38498, 26937, 19089, 19277, 30543, 2185, +31360, 30893, 23901, 38247, 26855, 33, 37849, 36086, 28008, 28390, +26856, 21, 22109, 4008, 30998, 2329, 20335, 8707, 10274, 11576, +31824, 5561, 39725, 33273, 13685, 8653, 28132, 13522, 11763, 36152, +8549, 18379, 4264, 32794, 37303, 33426, 11100, 1253, 1542, 39751, +13305, 15611, 26719, 26375, 20148, 297, 18662, 11028, 36694, 2790, +7346, 36559, 9707, 19426, 24407, 37047, 12575, 34202, 2999, 31743, +12576, 18515, 18382, 13904, 9789, 4563, 39496, 8358, 23949, 13528, +4501, 4267, 29867, 21920, 29012, 35160, 31689, 20149, 28809, 26376, +10099, 17419, 30196, 3492, 8405, 7767, 40878, 15264, 22333, 38787, +40483, 33670, 11976, 13141, 34318, 27500, 17660, 4733, 29106, 13241, +4564, 36483, 10681, 34062, 27387, 9421, 40993, 16112, 33671, 39752, +22614, 37346, 13535, 23010, 5308, 11788, 13710, 31284, 21998, 12355, +30614, 28044, 23772, 31566, 31843, 34129, 6659, 20451, 25730, 28032, +39109, 4565, 35860, 39039, 30284, 26319, 34073, 16007, 35122, 29805, +25772, 10513, 1301, 2702, 27316, 23048, 17895, 30615, 26038, 26019, +3356, 14232, 11231, 13366, 16622, 4814, 10726, 10005, 37856, 18334, +10727, 8044, 10285, 10399, 32192, 13147, 26245, 31844, 37473, 18854, +21680, 37073, 17946, 20256, 5250, 11434, 38270, 33035, 37365, 27117, +33934, 18092, 30410, 40773, 36570, 11802, 2306, 17547, 5826, 35232, +11340, 39113, 19458, 5154, 35919, 28206, 22621, 14663, 28487, 24274, +40653, 21731, 9752, 13991, 7622, 26029, 12356, 11803, 3957, 28502, +27803, 6079, 26067, 40255, 17447, 20097, 26881, 27398, 20163, 21677, +36433, 36434, 19878, 13999, 23343, 12620, 4789, 31118, 28920, 36231, +36232, 6580, 4406, 12028, 14169, 16446, 15096, 60, 30624, 1706, +9195, 23787, 36435, 1742, 16142, 7535, 2351, 19684, 13176, 30739, +19226, 38098, 18951, 17231, 36703, 34871, 18677, 27770, 39793, 36441, +6374, 30494, 11646, 33056, 22080, 26690, 1564, 2716, 20665, 18269, +12939, 26042, 3367, 9201, 1716, 12052, 32408, 18617, 24339, 25452, +17276, 14170, 32669, 36446, 28167, 30750, 11262, 33980, 40170, 18403, +16309, 6588, 7279, 10999, 16310, 27418, 18201, 36447, 20048, 12644, +17558, 13183, 36451, 17920, 35990, 12953, 2731, 5075, 25203, 13068, +16372, 7280, 27514, 37523, 40682, 7744, 26566, 16769, 16373, 4579, +24832, 36589, 23792, 7195, 25101, 34705, 36536, 25774, 38109, 18992, +34690, 16980, 20103, 26356, 28643, 5279, 13499, 2828, 36537, 10306, +40225, 16431, 16388, 21052, 30294, 19000, 34095, 32309, 34708, 8484, +34713, 37462, 9449, 32573, 32574, 11861, 10571, 40415, 38484, 32940, +3570, 38009, 23460, 39886, 7599, 21697, 30913, 22964, 35682, 22432, +15167, 22098, 15168, 22163, 20791, 17737, 9451, 33116, 9495, 9452, +1522, 4930, 31948, 39245, 40190, 15407, 38865, 7946, 439, 32954, +6766, 18191, 40569, 22184, 28560, 34822, 29560, 9930, 30781, 11557, +40124, 13423, 33620, 10543, 25002, 11396, 33378, 33379, 32255, 36120, +31152, 39987, 34929, 27048, 30519, 29595, 20327, 38015, 15170, 31956, +33829, 39248, 22972, 11671, 9459, 3079, 11602, 3238, 0, 17867, +7978, 14213, 32970, 23109, 29473, 40606, 29536, 9888, 16510, 34601, +33630, 3592, 25396, 10915, 31482, 27239, 10466, 33995, 15689, 14708, +32603, 31483, 40478, 15064, 5665, 32971, 12302, 34302, 18966, 34609, +14475, 17961, 16049, 11924, 29969, 31499, 4767, 31204, 10580, 3022, +8113, 31098, 4492, 7793, 22867, 24467, 25743, 31500, 24468, 33178, +35797, 14887, 37283, 8532, 22520, 33354, 30514, 26754, 2954, 26423, +33346, 21394, 8808, 30879, 3178, 10471, 15977, 39935, 31925, 11619, +7794, 17539, 33215, 13445, 1254, 36318, 40248, 30703, 29851, 26277, +31544, 21835, 21836, 2689, 34313, 14216, 14226, 19790, 30803, 38428, +33179, 24479, 25512, 11419, 7251, 24635, 28197, 34788, 17803, 13585, +8615, 9262, 37804, 31926, 27149, 17639, 9058, 28810, 3024, 7053, +1941, 11565, 32871, 31831, 31367, 37921, 10413, 10473, 31546, 37854, +20927, 26280, 24519, 35083, 20150, 17426, 36420, 31277, 8911, 34716, +23980, 1276, 1548, 4511, 18771, 12907, 18521, 22363, 28138, 35884, +28999, 14922, 40921, 11104, 35492, 39770, 30814, 18314, 10109, 21926, +25258, 14230, 16113, 4697, 38344, 12923, 31588, 31589, 35885, 32774, +3639, 11509, 2802, 35212, 28680, 34656, 32202, 24023, 15092, 5461, +6661, 26636, 13373, 7627, 27669, 37367, 17903, 29637, 26434, 7587, +34079, 16443, 19765, 28881, 35921, 14104, 19838, 14182, 13474, 36429, +35941, 33935, 16352, 28608, 2310, 31605, 25089, 4522, 17457, 11703, +40214, 18103, 30560, 35942, 32894, 38897, 11817, 4992, 21735, 16353, +25583, 15323, 34013, 14003, 3836, 5405, 35096, 10494, 16447, 1569, +25447, 17256, 20673, 25753, 18954, 16211, 283, 34136, 15880, 27605, +17754, 17296, 18626, 14965, 17731, 34685, 31645, 33069, 18415, 35255, +2317, 25222, 37770, 16452, 4583, 3737, 9435, 14699, 3115, 20061, +28873, 16457, 40228, 16461, 18157, 37465, 38906, 39238, 22185, 3244, +30798, 10146, 14923, 35290, 41096, 7119, 4151, 15345, 38122, 5984, +23911, 36606, 23957, 22102, 2989, 12880, 4138, 37037, 38429, 1406, +682, 1942, 4141, 36919, 6379, 3257, 21718, 14246, 28400, 25314, +19469, 7365, 8496, 34592, 8634, 886, 27728, 36886, 8639, 20760, +5619, 25016, 24934, 40864, 19499, 15516, 23660, 16877, 23034, 8513, +39474, 964, 24953, 4263, 12727, 7723, 15364, 14488, 3918, 31833, +928, 19212, 13817, 19257, 25860, 30815, 19582, 6616, 29638, 24123, +31908, 17257, 6380, 17839, 22024, 22711, 2003, 31646, 3779, 30644, +15969, 3781, 431, 12430, 2178, 40593, 8628, 15296, 1879, 10789, +34235, 36116, 11283, 40474, 24343, 39946, 20789, 22433, 14462, 35386, +26738, 30073, 18007, 22495, 21269, 35016, 36877, 33955, 5173, 1884, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 17995, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +15674, 32244, 11315, 10350, 38866, 12283, 34105, 26217, 28444, 29588, +16596, 19498, 31459, 31957, 897, 39648, 34362, 26094, 10063, 14039, +22014, 7427, 32604, 545, 23270, 1534, 36267, 16255, 12868, 23894, +16045, 34309, 40976, 39668, 39258, 34198, 17868, 5771, 40904, 9635, +7718, 31046, 37555, 4082, 29850, 34265, 32801, 12720, 1402, 36765, +34954, 28267, 1930, 20484, 27866, 19298, 37572, 4998, 37321, 26857, +10214, 23986, 35829, 39093, 2330, 10225, 19447, 13276, 20631, 2693, +298, 10218, 4720, 994, 1302, 1279, 11502, 23077, 17896, 33683, +29631, 35087, 27592, 32643, 27208, 6612, 13539, 8720, 14792, 6362, +11804, 15775, 32278, 32281, 21651, 22796, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +12030, 21781, 19955, 17834, 21135, 9478, 27202, 18618, 28432, 32414, +20049, 25204, 21140, 19132, 32298, 23382, 14991, 20311, 40717, 18598, +27965, 24571, 8297, 16651, 395, 10621, 5645, 4119, 8374, 36959, +23404, 36960, 2947, 8882, 31256, 7841, 13795, 34189, 1472, 689, +37700, 14841, 19809, 14842, 12855, 5138, 22786, 23892, 35710, 180, +22852, 7947, 33793, 4426, 9020, 12803, 26447, 4369, 25182, 26746, +26591, 35412, 41097, 18303, 1192, 39063, 13855, 13511, 13112, 17130, +9487, 32073, 39988, 34292, 33434, 34770, 33563, 27976, 24242, 36133, +34047, 763, 32533, 31958, 9509, 3677, 33622, 22283, 16632, 5245, +36530, 30921, 6830, 3316, 5666, 31270, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +31202, 3312, 15065, 19703, 905, 29537, 32346, 3993, 9988, 33801, +34372, 33861, 33438, 7979, 31484, 18038, 16866, 13954, 28395, 7807, +30315, 5805, 22790, 38648, 26006, 20395, 37284, 16261, 30923, 26806, +30602, 29307, 4000, 1039, 3248, 6959, 2872, 1040, 18731, 9385, +5861, 915, 25052, 40625, 24250, 7198, 14016, 6413, 13814, 11897, +37174, 19720, 4231, 33749, 29093, 33216, 5053, 25513, 20400, 12892, +30704, 25651, 11420, 32863, 4084, 13015, 40423, 2955, 17541, 24959, +6503, 34199, 11499, 18238, 26863, 25423, 28353, 34963, 30894, 31278, +39103, 13973, 36421, 19279, 28910, 18241, 17191, 16482, 39208, 23912, +4831, 14912, 38855, 1699, 27259, 2912, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +16064, 40388, 4512, 35339, 23324, 36484, 28357, 24646, 307, 17506, +19818, 36171, 11249, 30823, 31222, 5462, 33444, 38346, 34081, 24794, +5322, 17904, 17678, 24497, 28058, 9542, 14105, 7263, 13985, 18252, +12187, 11863, 14106, 113, 38188, 5254, 13478, 9730, 28735, 11818, +11347, 26040, 28219, 29283, 4045, 37084, 14004, 18619, 1712, 27297, +41169, 16360, 31760, 40788, 33816, 25666, 31119, 8364, 16697, 6381, +17279, 39840, 25525, 16967, 38102, 24507, 29213, 9554, 28160, 16217, +18416, 18627, 17299, 16453, 36375, 20058, 32462, 24516, 9436, 5416, +38112, 11367, 1885, 1900, 39483, 17361, 0, 32469, 23637, 608, +22301, 7396, 5139, 0, 0, 30245, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10901, 35413, 528, 14709, 2900, 3412, 0, 5300, 19947, 40516, +22869, 1407, 40089, 0, 4392, 36329, 23513, 32186, 18553, 5705, +21928, 40389, 17970, 31294, 5121, 31034, 36356, 34562, 29261, 9998, +2904, 24375, 26598, 2773, 2774, 25678, 27942, 26628, 18695, 7790, +38412, 7911, 22820, 29529, 39181, 19844, 23235, 18323, 34031, 18210, +20761, 37829, 7948, 8798, 13798, 7949, 29256, 20762, 6671, 13227, +30185, 4936, 20984, 20764, 20765, 2412, 29259, 8313, 1202, 4941, +39669, 19024, 22047, 36040, 11212, 26489, 37015, 20769, 15071, 35763, +18220, 5974, 11215, 5248, 40520, 13235, 3347, 2959, 30016, 16681, +2520, 18253, 6046, 17974, 13254, 3840, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +22635, 6019, 6024, 13633, 5177, 27245, 39753, 20938, 1119, 8497, +40045, 32024, 33465, 3216, 14847, 23243, 31915, 4751, 1193, 40973, +33903, 39395, 7169, 39559, 7501, 14390, 26221, 21509, 29007, 29562, +13568, 30680, 11675, 28625, 3593, 19785, 14147, 32608, 29745, 19504, +32609, 28096, 7864, 6697, 27189, 35831, 1020, 38810, 9387, 19253, +17885, 12557, 29313, 156, 3609, 1257, 20401, 6532, 6817, 34219, +4640, 26712, 39937, 3619, 37322, 7726, 34793, 3183, 29794, 9748, +30927, 11426, 15697, 36091, 14925, 31571, 9361, 35886, 4142, 11775, +21845, 5740, 38816, 26723, 4657, 35922, 40985, 27937, 26031, 5918, +18573, 18574, 24275, 8068, 17683, 24063, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +18260, 16573, 32212, 7531, 5122, 36282, 10488, 32213, 9365, 9670, +21755, 37399, 30629, 36579, 16759, 17236, 27324, 5228, 17950, 17951, +1672, 12637, 3444, 34844, 13596, 39303, 19686, 17314, 12068, 16316, +12682, 33843, 36503, 36244, 36597, 28644, 5759, 19181, 19006, 19010, +1827, 1834, 440, 7155, 7158, 24128, 12267, 38196, 19618, 21980, +4427, 18022, 20600, 12285, 22403, 8543, 6835, 10082, 1234, 3806, +23854, 40, 32732, 10286, 11580, 10287, 38273, 4744, 10294, 32737, +35220, 10297, 13481, 121, 33239, 11584, 17300, 22739, 10449, 13553, +8421, 22212, 24627, 25063, 38391, 9178, 15035, 15036, 40098, 38399, +9196, 38846, 6384, 23405, 36395, 841, 8, 1, 14, 16, +10, 12, 11, 32, 42, 56, 52, 66, 86, 75, +79, 165, 145, 137, 189, 210, 227, 209, 216, 214, +244, 250, 267, 274, 288, 305, 313, 337, 359, 361, +373, 374, 400, 413, 392, 500, 501, 504, 389, 409, +499, 436, 449, 465, 461, 472, 467, 491, 506, 469, +516, 525, 523, 531, 524, 540, 542, 549, 576, 572, +579, 568, 573, 574, 606, 607, 649, 629, 623, 646, +622, 621, 630, 651, 654, 658, 681, 683, 677, 696, +708, 691, 709, 695, 698, 724, 726, 719, 733, 1838, +38831, 10351, 10362, 1840, 30334, 36932, 7331, 8115, 24628, 5387, +18741, 38652, 16910, 13905, 33673, 12901, 22069, 167, 18606, 33583, +40026, 5323, 171, 9202, 17301, 8456, 30503, 23461, 37616, 29257, +33117, 31795, 7700, 20382, 20471, 27042, 37830, 22045, 7398, 19628, +32328, 27051, 34730, 39249, 35022, 26599, 11991, 4982, 39142, 15863, +14391, 26701, 19781, 20602, 40299, 39070, 27052, 5957, 21320, 40867, +3019, 1773, 20085, 18367, 29599, 6043, 5667, 21158, 20476, 33862, +39197, 34774, 20611, 39955, 20603, 19713, 26477, 10084, 11412, 3387, +4848, 14770, 6836, 19422, 32354, 31503, 16106, 26279, 29314, 9726, +30358, 16844, 27086, 24480, 17804, 39274, 747, 743, 757, 765, +756, 753, 793, 792, 817, 800, 811, 828, 840, 856, +846, 839, 867, 917, 889, 873, 891, 893, 876, 880, +913, 914, 898, 958, 971, 969, 986, 1009, 1037, 1031, +1053, 1070, 1054, 1082, 1105, 1110, 1139, 1128, 1120, 1281, +1261, 1285, 1157, 1199, 1191, 1153, 1166, 1256, 1159, 1212, +1274, 1154, 22612, 1314, 1339, 1328, 1196, 1419, 1396, 1403, +1429, 1431, 1473, 1469, 1458, 1505, 1506, 1510, 1490, 1526, +1533, 1549, 1592, 1636, 1628, 1645, 1671, 1688, 1691, 1705, +1694, 1687, 1728, 1749, 1747, 1768, 1757, 1763, 1770, 1769, +16885, 16293, 28198, 14778, 1258, 11882, 18742, 35833, 40053, 37049, +11883, 19299, 32034, 33282, 11629, 9729, 38021, 4291, 12893, 19791, +10767, 33754, 29342, 33674, 7183, 31108, 16003, 19993, 31023, 15616, +5314, 3137, 24488, 20650, 27542, 38274, 38818, 35923, 5871, 15586, +20651, 27566, 4523, 18492, 3432, 19388, 9613, 11446, 25721, 31608, +23085, 26687, 17726, 3112, 32214, 35221, 33700, 20725, 9663, 13168, +35250, 122, 11829, 13049, 38901, 19738, 3867, 25987, 21670, 34016, +35103, 12044, 19896, 20211, 22800, 20212, 17281, 15882, 33777, 20215, +12069, 18633, 19911, 18418, 9438, 19435, 31767, 28875, 15246, 40267, +17875, 37285, 27586, 38249, 14998, 26660, 1802, 1794, 1836, 1848, +1861, 1832, 1844, 1833, 1919, 1889, 1929, 1906, 1944, 1877, +1882, 1915, 1914, 2053, 1922, 22910, 1881, 2075, 2050, 2074, +2073, 2121, 2091, 2092, 2095, 2150, 2118, 2101, 2157, 2172, +2184, 2180, 2175, 2182, 2203, 2207, 2191, 2195, 2210, 2212, +2233, 2221, 2248, 2246, 2250, 2279, 2294, 2322, 2325, 2318, +2321, 2343, 2356, 2357, 2373, 2362, 2390, 2406, 2423, 2405, +2404, 2410, 2471, 2488, 2510, 2489, 2535, 2536, 2534, 2555, +2545, 2553, 2583, 2587, 2585, 2608, 2619, 2620, 2661, 2297, +2695, 2686, 2680, 2690, 2777, 2758, 2778, 2846, 2864, 2868, +10744, 36464, 39996, 13480, 38348, 37678, 487, 6090, 23453, 40823, +31325, 38928, 15637, 8498, 5090, 14849, 17110, 7847, 20383, 6872, +15252, 39555, 13800, 1685, 6896, 38930, 28181, 22046, 14015, 20604, +14392, 37243, 15352, 30086, 6910, 20767, 40300, 21803, 22825, 18023, +22213, 16655, 1841, 22975, 36674, 15893, 15515, 24946, 40142, 15822, +6922, 23602, 18722, 30681, 77, 32347, 34373, 22326, 16633, 10654, +24437, 30593, 24046, 35764, 15519, 25057, 2837, 16484, 10582, 37016, +32612, 31971, 19527, 19201, 36638, 3054, 3089, 34620, 26107, 16086, +37286, 3602, 11247, 18655, 3202, 21844, 27795, 40631, 15523, 34314, +40521, 15551, 3318, 23294, 40977, 24422, 2929, 2895, 2898, 38781, +2896, 2892, 2928, 2966, 2948, 2952, 2949, 2980, 2969, 2975, +2993, 3000, 3003, 2991, 3014, 3016, 3045, 3059, 3097, 3087, +3071, 3098, 3121, 3146, 3152, 3145, 3239, 3149, 3151, 3153, +3220, 3215, 3269, 3249, 3299, 3361, 3289, 3291, 3306, 3334, +3326, 3357, 3296, 3294, 3381, 3382, 3392, 3400, 3422, 3462, +27146, 3451, 3457, 3450, 3453, 3530, 3520, 3517, 3512, 3572, +3589, 3566, 3582, 3668, 3669, 3716, 3720, 3739, 3762, 3879, +3800, 3815, 3807, 3804, 3808, 3782, 3796, 3863, 3852, 3872, +3882, 3880, 3927, 3902, 3936, 3907, 3916, 3903, 3899, 4042, +17886, 15034, 1855, 20402, 12894, 10472, 25065, 16830, 36154, 31273, +23295, 19084, 21081, 25656, 34395, 6104, 30103, 36323, 15459, 30808, +27593, 39105, 6506, 31983, 5309, 29098, 21126, 29345, 23514, 6666, +7727, 25080, 25081, 19280, 8915, 28036, 6844, 18244, 27661, 28819, +11171, 22467, 30714, 29277, 31987, 31573, 17439, 30616, 37886, 6535, +16176, 40390, 24428, 40393, 2707, 23533, 310, 22339, 18336, 18671, +15242, 4173, 3207, 36223, 16748, 1551, 23534, 23535, 4724, 40929, +4333, 19093, 12202, 26335, 16574, 38349, 13169, 31865, 6111, 28687, +22075, 37991, 24028, 5540, 17237, 13215, 31909, 38791, 24066, 13050, +37385, 40538, 10434, 15472, 38282, 16693, 3948, 3951, 4040, 4007, +4014, 3969, 4058, 4076, 4080, 4096, 4088, 4092, 4111, 4118, +4135, 4137, 4155, 4150, 4166, 4175, 4186, 4187, 4196, 4205, +4191, 4224, 4230, 4271, 4252, 4257, 4250, 4296, 4301, 4316, +4349, 4378, 4394, 4395, 4393, 4391, 4380, 4367, 4421, 4441, +4455, 4437, 4517, 4494, 4476, 4474, 4542, 4543, 4597, 4616, +4656, 4660, 4631, 4683, 4698, 4694, 4718, 4708, 4709, 4759, +4770, 4775, 4763, 4777, 4809, 4816, 4824, 4834, 4835, 4829, +4881, 4878, 4889, 4904, 4923, 4948, 4990, 4976, 4978, 4994, +5001, 5004, 5066, 5024, 5028, 5009, 5031, 5043, 5025, 5003, +15417, 3963, 35256, 25094, 5325, 35599, 22479, 22480, 37400, 22778, +7016, 127, 15391, 12945, 37401, 25671, 22224, 4412, 1992, 34878, +19314, 32228, 15883, 16704, 16767, 39850, 17282, 17303, 7282, 25102, +22227, 36376, 17317, 18419, 18420, 20683, 27482, 9439, 16384, 38083, +34444, 25358, 37696, 28401, 19290, 32946, 34890, 23236, 1004, 6557, +39948, 25323, 35302, 26922, 36888, 39636, 29373, 8162, 20119, 28107, +19778, 2621, 18888, 37151, 31203, 40301, 9590, 31959, 39396, 8611, +8612, 27535, 13955, 26704, 8315, 16085, 5668, 28948, 9227, 9413, +41178, 18052, 18733, 5357, 39475, 851, 39020, 11621, 36843, 36087, +40746, 12010, 39095, 37650, 31208, 32268, 5026, 5094, 5086, 5081, +5085, 5096, 5146, 5142, 5167, 5189, 5169, 5181, 5184, 5174, +5180, 5186, 5244, 5268, 5269, 5294, 5295, 5336, 5354, 5370, +5379, 5352, 5356, 5351, 5376, 5397, 5383, 5388, 5385, 5439, +5448, 5446, 5472, 5453, 5454, 5478, 5493, 5484, 5482, 5527, +5511, 5533, 5551, 5553, 5558, 5546, 5554, 5567, 5565, 5613, +5611, 5445, 5681, 5669, 5651, 5642, 5658, 5679, 5742, 5730, +5735, 5776, 5765, 5763, 5827, 5792, 5785, 5786, 5726, 5790, +5799, 5803, 5801, 5807, 5863, 5845, 5872, 5852, 5841, 5900, +5892, 5893, 5899, 5932, 5931, 5993, 6000, 5938, 5963, 5982, +34789, 39418, 35326, 19721, 27644, 5686, 957, 39106, 36651, 12342, +8617, 28813, 27650, 19304, 28476, 8283, 33758, 23326, 37386, 12189, +27760, 2708, 5210, 9664, 28220, 17052, 21736, 20037, 5372, 17259, +37771, 29146, 38113, 16818, 25504, 32972, 29726, 25270, 40824, 2532, +35686, 32065, 21371, 24532, 7658, 10257, 37832, 39383, 14028, 39384, +37235, 15685, 634, 22443, 21223, 17133, 36749, 22444, 1902, 18024, +21375, 41241, 39397, 14605, 11961, 29601, 39676, 11963, 10377, 36071, +40723, 39677, 25290, 6440, 40143, 21725, 8186, 15317, 34120, 27536, +16087, 8429, 14044, 29079, 29786, 34272, 19085, 18744, 9230, 41250, +40563, 702, 12150, 39419, 16090, 16831, 6048, 6056, 6050, 6057, +6069, 6074, 6103, 6091, 6086, 6118, 6123, 6124, 6168, 6171, +6182, 6193, 6185, 6191, 6184, 6194, 6228, 6253, 6268, 6258, +6269, 6277, 6285, 6227, 6330, 6340, 6353, 6341, 6346, 6410, +6419, 6416, 6426, 6456, 6428, 6434, 6446, 6425, 6479, 6487, +6507, 6491, 6493, 6498, 6525, 6553, 6549, 6550, 6608, 6603, +6623, 6605, 6646, 6635, 6643, 6639, 6650, 6677, 6670, 6667, +6685, 6716, 6736, 6805, 6785, 6777, 6758, 6778, 6771, 6843, +6826, 6841, 6823, 6847, 6819, 6825, 6909, 6880, 6889, 6951, +6927, 6914, 7048, 7064, 7063, 7106, 7105, 7110, 7109, 7130, +22358, 1781, 41179, 37306, 19031, 32448, 35331, 31835, 1443, 12580, +8034, 22616, 21892, 13590, 39938, 40916, 33575, 3263, 5393, 32193, +40756, 37348, 33687, 39772, 8588, 9186, 25424, 28208, 25502, 12605, +15273, 2286, 19731, 39814, 12581, 18795, 27949, 12190, 36486, 30968, +24546, 10483, 35925, 11519, 24179, 12459, 32656, 23087, 13378, 40582, +39942, 41203, 18909, 28230, 21738, 26044, 11830, 25199, 21903, 37402, +22780, 12638, 29927, 30970, 3279, 12045, 15884, 18912, 1574, 26068, +40587, 17002, 4693, 30178, 36925, 26592, 14093, 35065, 16547, 35024, +738, 1774, 30186, 40196, 13512, 5896, 31155, 9519, 4136, 35073, +32613, 3320, 15606, 5194, 40632, 33498, 7138, 7153, 7171, 7178, +7163, 7162, 7173, 7191, 7196, 7220, 7205, 7207, 7218, 7257, +7236, 7239, 7269, 7228, 7240, 7296, 7299, 7321, 7322, 7307, +7314, 7313, 7412, 7363, 7360, 7380, 7379, 7376, 7377, 7387, +7388, 7393, 7409, 7423, 7417, 7419, 7415, 7449, 7462, 7463, +7487, 7494, 7489, 7492, 7497, 7562, 7576, 7558, 7565, 7556, +7561, 7592, 7613, 7595, 7645, 7654, 7650, 7655, 7660, 7661, +7686, 7698, 7697, 7724, 7706, 7721, 7687, 7699, 7711, 7762, +7757, 7795, 7778, 7788, 7787, 7912, 7822, 8275, 7879, 7842, +7876, 7917, 7927, 8023, 7995, 7944, 7980, 7909, 7939, 7929, +27946, 9358, 40701, 31051, 30197, 34275, 24489, 34973, 34974, 29414, +3004, 29278, 5919, 14665, 17748, 31591, 31377, 15906, 4145, 38841, +15806, 15802, 3278, 4790, 22722, 38218, 4701, 24116, 24508, 6310, +38223, 18467, 24197, 3973, 27142, 8156, 23881, 3982, 10636, 23244, +10307, 26818, 7684, 20312, 24864, 40302, 18026, 18369, 1803, 563, +27745, 10663, 14148, 5911, 35836, 27380, 14140, 24870, 22832, 26451, +40406, 2481, 5464, 4815, 30253, 14176, 15229, 14178, 16653, 22345, +3463, 19489, 40191, 30428, 32698, 28108, 24295, 34192, 40511, 37545, +10164, 2455, 1206, 35567, 6142, 26225, 4900, 40199, 20890, 9091, +24157, 20437, 727, 2415, 22285, 18039, 7963, 7977, 8014, 8278, +7908, 8276, 8091, 8112, 8105, 8107, 8098, 23067, 8117, 8095, +8124, 8165, 8177, 8255, 8192, 8160, 8280, 8146, 8157, 8144, +8201, 8148, 8183, 8145, 8151, 8147, 8200, 8277, 8292, 8288, +8303, 8326, 8354, 8344, 8345, 8347, 8453, 8366, 8372, 8387, +8388, 8375, 8425, 8430, 8422, 8426, 8479, 8486, 8489, 8501, +8500, 8493, 8492, 8524, 8529, 8491, 8559, 8539, 8542, 8552, +8540, 8560, 8580, 8591, 8589, 8602, 8640, 8656, 8649, 8624, +8645, 8641, 8635, 8646, 8680, 8698, 8686, 9855, 8679, 8702, +8771, 8765, 8766, 8777, 8780, 8781, 8801, 8851, 8797, 8818, +21793, 7981, 7243, 8428, 7332, 26982, 19612, 29224, 24460, 20466, +19202, 9638, 24710, 3475, 36081, 35076, 1137, 16125, 32710, 28278, +25559, 12140, 10173, 39960, 16263, 5247, 2429, 7871, 29795, 16886, +16488, 14557, 9388, 13016, 9999, 29611, 31979, 39729, 3335, 28109, +40326, 41251, 29499, 2430, 8616, 8400, 15895, 37851, 21909, 32729, +23023, 16270, 41006, 1142, 1283, 8774, 28568, 9328, 36938, 12902, +5394, 3490, 39281, 26164, 40054, 18759, 17890, 15082, 8036, 38433, +9107, 23685, 15083, 4206, 2436, 41062, 2035, 33760, 1408, 28286, +32274, 22883, 33226, 10954, 35493, 37676, 4232, 18939, 31167, 6172, +27597, 12360, 13689, 33227, 19796, 7349, 8826, 8833, 8836, 8869, +8879, 8874, 8894, 8899, 8881, 8895, 8871, 8887, 8870, 8935, +8938, 8941, 8966, 8965, 8990, 8985, 8988, 9017, 9016, 9037, +9034, 9036, 9041, 9100, 9245, 9241, 9106, 9075, 9081, 9080, +9079, 9171, 9128, 9154, 9143, 9134, 9136, 9216, 9219, 9215, +9228, 9250, 9247, 9290, 9294, 9302, 9309, 9313, 9324, 9331, +9355, 9344, 9346, 9347, 9345, 9389, 9384, 9442, 9408, 9434, +9405, 9448, 9473, 9488, 9528, 9501, 9498, 9517, 9497, 9500, +9505, 9568, 9585, 9573, 9581, 9631, 9624, 9645, 9629, 9621, +9702, 9703, 9724, 9745, 9741, 9775, 9815, 9829, 9842, 9852, +4101, 7729, 40212, 11512, 24176, 24543, 20301, 23867, 9246, 27150, +37860, 10424, 28826, 37751, 3775, 25751, 39290, 21561, 23871, 32734, +18460, 22371, 6423, 40655, 3924, 26184, 40342, 23917, 18391, 12925, +2141, 11820, 1323, 5576, 4530, 34331, 2288, 40435, 22545, 22735, +37403, 29872, 38280, 26185, 9666, 35511, 11110, 2803, 15620, 22891, +38216, 12203, 18558, 2445, 21407, 28316, 4699, 5930, 28320, 16661, +17640, 32657, 1994, 20176, 26186, 5326, 17691, 5126, 8136, 13052, +20456, 16020, 5072, 13388, 28288, 16577, 32670, 18831, 27131, 38058, +23566, 22021, 23567, 22022, 8443, 14681, 6469, 18819, 34425, 5260, +25846, 40367, 18405, 23712, 17474, 27152, 9876, 9871, 9885, 9904, +9895, 9903, 9902, 9940, 9948, 9960, 9997, 9959, 9985, 9990, +9961, 10028, 10024, 10117, 10114, 10060, 10053, 10113, 10059, 10073, +10051, 10046, 10147, 10160, 10166, 10231, 10230, 10219, 10210, 10245, +10243, 10265, 10247, 10263, 2, 10318, 10366, 10381, 10361, 10329, +10336, 10332, 10331, 10375, 10215, 10355, 10340, 10372, 10478, 10475, +10481, 10463, 10511, 10510, 10521, 10525, 10526, 10529, 10531, 10530, +10550, 10552, 10541, 10572, 10573, 10575, 10641, 10660, 10634, 10617, +10613, 10615, 10748, 10742, 10755, 10788, 10800, 10823, 10797, 10828, +11132, 10831, 10937, 10904, 10931, 10903, 10955, 10899, 11135, 10927, +16374, 16026, 37099, 37762, 10240, 39121, 28584, 29215, 21586, 3842, +36044, 23568, 29029, 40448, 40116, 7224, 27934, 40115, 23884, 40688, +29034, 18845, 18634, 13077, 30175, 36458, 37443, 16319, 18426, 24203, +17489, 16389, 23726, 37776, 39922, 24839, 17490, 1428, 6517, 41133, +17003, 27697, 19143, 36463, 37788, 40697, 37463, 7237, 26584, 38932, +26593, 21817, 10353, 21219, 4826, 38819, 23648, 38573, 1129, 611, +31340, 26095, 15253, 25531, 1207, 4755, 36301, 38944, 3528, 28611, +11133, 8395, 14615, 20614, 40081, 16867, 27990, 10664, 29606, 2416, +17884, 40461, 529, 16635, 7084, 24711, 10507, 32364, 8016, 17038, +37731, 18760, 14496, 23311, 553, 38759, 10897, 11017, 11134, 11051, +11033, 11053, 11037, 11139, 11141, 11154, 11168, 11167, 11202, 11196, +11195, 11203, 11254, 11252, 11251, 11253, 11269, 11445, 11308, 11317, +9870, 11372, 11393, 11399, 11391, 11411, 11423, 11401, 11395, 11389, +11382, 11458, 11466, 11484, 11518, 11515, 11526, 11478, 11481, 11490, +11497, 11585, 11562, 11556, 11561, 11587, 11595, 11614, 11641, 11593, +11676, 11658, 11692, 11686, 11784, 11714, 11744, 11739, 11736, 11740, +11717, 11734, 11716, 11718, 11730, 11727, 11867, 11865, 11870, 11899, +11888, 11923, 11953, 11960, 11971, 11970, 11993, 11984, 12005, 12033, +11985, 12003, 12084, 12091, 12122, 12092, 12149, 12172, 12116, 12165, +9826, 11248, 25875, 28821, 1446, 20270, 40981, 13151, 16920, 33037, +7888, 21897, 944, 9192, 33428, 12843, 40466, 28832, 25878, 7674, +13311, 20543, 25880, 25881, 21902, 31620, 17594, 15779, 2045, 11355, +27419, 40991, 32416, 29880, 21596, 17304, 41305, 5596, 21597, 29426, +16460, 27616, 14252, 8883, 39310, 14255, 36878, 12504, 2589, 40072, +34040, 37669, 10638, 36927, 10354, 30311, 25324, 30918, 24603, 20884, +40718, 29702, 21704, 7818, 12520, 27232, 4254, 22445, 39193, 26096, +10647, 39561, 12287, 7569, 37839, 25327, 5145, 13856, 7401, 4756, +14300, 37958, 505, 7861, 39679, 4428, 3795, 10655, 37959, 31805, +7982, 32973, 26608, 1846, 40308, 24702, 12096, 12087, 12110, 12186, +12083, 12100, 12113, 12124, 12141, 12257, 12266, 12316, 12678, 12406, +12323, 12252, 12282, 12289, 12262, 12265, 12326, 12263, 12437, 12422, +12290, 12423, 12562, 12482, 12600, 12489, 12473, 12538, 12488, 12533, +12502, 12528, 12527, 12471, 12472, 12500, 12480, 12487, 12479, 12521, +12477, 12731, 12698, 12686, 12690, 12704, 12683, 12756, 12772, 12807, +12798, 12808, 12809, 12842, 12827, 12829, 12828, 12836, 12850, 12863, +12849, 12847, 12869, 12851, 12891, 12861, 12856, 12857, 12846, 12882, +12987, 12996, 12984, 13026, 13005, 12978, 12990, 13017, 12981, 12994, +12993, 13104, 15217, 13136, 13132, 13105, 13095, 13137, 13149, 13096, +18040, 40309, 26475, 8463, 34826, 7983, 30092, 39146, 5039, 3994, +26842, 39899, 32167, 41101, 14191, 636, 24774, 20615, 27363, 41174, +15894, 14040, 25337, 10174, 32985, 13675, 40148, 3802, 9307, 530, +14890, 15867, 10929, 4451, 11324, 8809, 28900, 13676, 15693, 13438, +24955, 8331, 19203, 33867, 1015, 32355, 8003, 8778, 6205, 25405, +29420, 36082, 16737, 32986, 14772, 8316, 5975, 29661, 27637, 13300, +32482, 11748, 14891, 13018, 14779, 3424, 20246, 39156, 18895, 3336, +24637, 27254, 680, 29662, 32622, 11328, 24219, 8841, 33427, 29094, +29719, 32864, 10674, 31826, 8017, 29475, 28134, 6569, 16091, 7872, +14050, 11091, 39420, 34384, 14222, 7768, 13108, 13113, 13100, 13099, +13117, 13128, 13111, 13098, 13239, 13222, 13223, 13226, 13217, 13256, +13268, 13265, 13263, 13262, 13324, 13302, 13291, 13368, 13347, 13377, +13348, 13343, 13329, 13333, 13337, 13341, 13335, 14974, 13433, 13430, +13428, 13413, 13429, 13418, 13411, 13420, 13475, 13419, 13441, 13518, +13529, 13515, 13516, 13501, 13520, 13577, 13565, 13564, 13569, 13583, +13562, 13699, 13620, 13613, 14466, 13631, 13659, 13686, 13704, 13640, +13644, 13772, 13835, 13788, 12387, 13789, 13797, 13803, 13778, 13799, +13802, 13792, 13837, 13859, 13839, 13847, 13838, 13848, 13877, 13894, +13901, 13887, 13900, 13932, 13968, 13942, 13965, 13931, 13945, 13943, +12560, 33722, 25350, 40917, 3132, 6738, 17192, 18934, 17584, 3814, +25010, 26479, 23312, 40560, 23314, 30362, 23861, 32374, 27194, 30609, +28952, 30363, 8518, 30488, 1026, 40547, 2205, 9827, 4776, 19074, +18312, 23432, 38711, 1284, 4326, 18078, 20197, 23178, 24172, 29274, +40918, 9708, 41007, 31550, 40757, 33305, 17613, 13906, 7433, 25680, +20409, 37327, 40962, 7255, 18935, 33675, 36332, 26411, 23564, 33688, +32452, 12910, 15463, 32383, 25659, 20198, 12174, 6508, 3727, 5706, +20412, 20286, 37582, 33023, 775, 27664, 24544, 1409, 11374, 8812, +4515, 20252, 30818, 8219, 30723, 29690, 9005, 20302, 32879, 17545, +40923, 1499, 37925, 36094, 29108, 9270, 13888, 13928, 14029, 14051, +14026, 14180, 14042, 14058, 14023, 14036, 14054, 14049, 14025, 14079, +14110, 14096, 14095, 14158, 14154, 14146, 14167, 14119, 14132, 14153, +14143, 14133, 14117, 14209, 14217, 14266, 14251, 14243, 14294, 14298, +14286, 14293, 14285, 14301, 14328, 14329, 14309, 14312, 14339, 14314, +14331, 14315, 14442, 14381, 14383, 14389, 14379, 14386, 14478, 14456, +14545, 14698, 14549, 14547, 14646, 14590, 14623, 14580, 14595, 14627, +14658, 14638, 14607, 14581, 14622, 14602, 14612, 14706, 14716, 14705, +14753, 14765, 14728, 14760, 14810, 14990, 14831, 14866, 14855, 14948, +14853, 14822, 14827, 14850, 15019, 15032, 15027, 15016, 15018, 15057, +39797, 37926, 3270, 2704, 5062, 31989, 37583, 40963, 33517, 36533, +30882, 8813, 33761, 36430, 13993, 35927, 40529, 21344, 670, 9188, +22073, 40106, 12926, 4357, 24971, 27504, 37811, 31993, 4725, 31593, +25427, 28917, 8234, 37861, 3140, 8592, 25620, 10972, 38051, 29018, +32392, 28047, 39166, 40986, 28918, 11586, 2213, 1324, 7803, 4661, +16931, 28321, 34542, 31756, 40988, 16690, 14796, 23873, 19460, 39506, +18910, 20825, 22736, 17449, 33886, 40965, 12204, 26249, 28231, 18947, +1048, 35343, 25953, 20726, 23973, 11905, 32429, 12621, 26179, 33449, +25162, 33887, 28240, 24032, 38351, 41272, 39439, 26341, 25882, 17912, +37404, 7217, 17692, 4336, 41212, 13177, 15051, 15072, 15059, 15053, +15061, 15112, 15111, 15116, 8636, 15122, 15127, 15153, 15138, 15148, +15184, 15189, 15187, 15199, 15202, 15234, 15254, 15263, 15275, 15283, +15295, 15290, 15297, 15310, 15312, 15316, 15332, 15402, 15340, 15343, +15356, 15379, 15375, 15347, 15397, 9863, 15401, 15413, 15420, 15421, +15430, 15438, 15483, 15489, 15485, 15488, 15507, 15506, 15540, 15567, +15561, 15570, 15577, 15588, 15595, 15603, 15639, 15642, 15653, 15675, +15698, 15681, 15695, 15708, 15723, 15731, 15734, 15732, 15750, 15766, +15753, 15751, 15785, 15795, 15808, 15823, 15837, 15820, 15859, 15866, +15855, 15854, 15896, 15901, 15898, 15903, 15933, 15919, 15944, 9513, +25253, 2808, 25691, 33451, 11831, 11237, 41125, 31621, 23975, 37950, +4993, 26771, 11839, 31883, 26048, 13056, 13257, 11356, 38191, 4535, +33072, 13485, 1364, 5231, 35976, 21750, 28241, 35977, 26189, 33538, +12646, 1718, 23832, 16375, 23096, 34019, 23371, 22388, 35107, 20685, +16814, 32916, 41131, 15885, 36713, 33713, 16706, 32130, 2737, 13561, +18635, 2741, 36384, 2188, 25227, 32139, 41155, 41134, 19241, 17008, +16437, 16726, 17568, 10622, 25315, 40274, 39178, 5947, 31801, 36313, +28945, 37800, 32356, 4711, 32948, 7826, 7827, 23560, 1847, 22870, +32538, 38907, 8519, 36341, 9429, 41213, 28693, 2352, 23551, 31035, +36369, 16707, 28708, 18636, 30456, 8487, 16001, 15997, 15998, 16037, +16038, 16081, 16101, 16117, 16115, 16130, 16129, 16157, 16159, 16177, +16197, 16188, 16200, 16234, 16247, 16240, 16294, 16338, 16330, 16328, +16326, 16347, 16336, 16323, 16342, 16340, 16404, 16400, 16414, 16405, +16439, 16442, 16479, 16481, 16471, 16474, 16465, 16508, 16524, 16541, +16543, 16545, 16589, 16590, 16593, 16619, 16616, 16615, 16670, 16644, +16671, 16695, 16749, 16745, 16794, 16750, 16733, 16683, 16639, 16786, +16784, 16828, 16829, 16840, 16850, 16862, 16865, 16925, 16929, 17392, +16855, 16881, 17034, 17388, 17022, 17046, 17018, 17136, 17112, 17079, +17125, 17082, 17074, 17085, 17132, 17072, 17083, 17154, 17091, 17101, +19100, 19997, 9088, 40240, 14393, 19562, 20385, 9305, 29081, 14773, +8004, 26714, 9308, 40633, 37307, 199, 7184, 27651, 19309, 18315, +508, 7186, 3007, 30824, 1306, 12622, 3699, 18321, 14799, 20177, +38902, 19121, 22553, 12239, 12248, 18996, 20079, 4932, 34765, 36830, +36826, 7603, 415, 34853, 9147, 23893, 38123, 8541, 35767, 40311, +35453, 25406, 25125, 23970, 11329, 32366, 35839, 34877, 23913, 23777, +37060, 8814, 37590, 7276, 26253, 7633, 26255, 17516, 21764, 23983, +8968, 3679, 7570, 10648, 3588, 4757, 7984, 31961, 974, 16161, +22449, 18327, 39680, 24775, 31677, 32855, 31815, 15400, 11750, 11613, +32614, 26159, 10675, 13238, 5395, 26165, 17161, 17078, 17148, 17088, +17100, 17070, 16909, 17390, 17396, 17410, 17404, 17399, 17470, 17416, +17402, 17403, 17401, 17498, 17500, 17536, 17524, 17523, 17522, 17581, +17573, 17574, 17582, 17571, 17601, 17625, 17632, 17628, 17621, 17624, +17641, 17650, 17654, 17645, 17677, 17656, 17643, 16604, 16667, 17744, +17750, 17743, 17738, 17758, 17800, 17784, 17759, 17793, 17883, 17872, +17908, 17906, 17873, 17871, 17923, 17880, 17939, 17960, 17954, 17869, +18015, 18047, 18069, 18073, 18027, 18198, 18043, 18018, 17998, 18028, +18181, 18184, 18189, 18188, 18203, 18216, 18237, 18222, 18235, 18214, +18207, 18242, 18213, 18301, 18322, 18355, 18374, 18357, 18373, 18490, +3621, 33762, 3633, 40924, 30323, 11637, 10772, 10484, 22708, 17450, +10778, 388, 17913, 22308, 24117, 319, 11840, 33778, 5413, 16588, +9021, 9024, 9022, 6042, 25643, 20953, 6473, 29465, 22450, 35446, +24887, 12713, 14617, 3911, 19086, 12344, 38443, 18527, 12216, 16626, +12055, 36714, 11266, 35659, 24244, 37841, 5093, 10650, 39460, 22105, +39147, 3085, 39261, 36833, 30232, 29359, 7086, 34266, 29432, 33721, +10275, 26807, 17805, 14055, 1143, 5631, 9790, 30929, 33677, 22828, +4503, 6116, 21244, 29510, 14568, 4516, 15905, 17570, 17440, 31024, +16010, 17452, 17460, 4531, 26764, 27831, 29478, 16021, 21572, 39509, +5128, 21658, 24133, 21295, 29481, 29483, 18377, 18455, 18457, 18454, +18507, 18495, 18546, 18554, 18567, 18561, 18587, 18584, 18602, 18586, +18590, 18653, 18650, 18652, 18656, 18838, 18743, 18843, 18747, 18710, +18726, 18790, 18732, 18702, 18698, 18768, 18856, 18874, 18892, 18876, +18885, 18903, 18893, 18896, 18922, 18928, 18920, 18923, 18931, 18924, +18969, 18970, 18968, 18975, 19014, 19016, 6920, 6921, 19048, 19056, +19051, 19050, 19053, 19054, 19088, 19105, 19116, 19094, 19106, 19110, +19111, 19112, 19164, 19205, 19188, 19191, 19189, 19246, 19252, 19272, +19273, 19275, 19270, 19292, 19322, 19319, 19325, 19336, 19347, 19348, +19344, 19349, 19385, 19383, 19378, 19423, 19450, 19437, 19444, 19446, +18428, 38870, 27734, 28012, 38887, 35622, 24575, 15481, 2395, 8632, +1880, 11384, 35553, 25316, 25595, 37630, 2496, 9963, 7602, 22233, +22164, 36737, 25138, 30952, 23238, 22496, 31433, 31434, 15484, 5948, +7496, 441, 1892, 24766, 29258, 40825, 15641, 39386, 21316, 22853, +40874, 8102, 32156, 20763, 24695, 15349, 3523, 34729, 22120, 3409, +33330, 7078, 10544, 40875, 9510, 3313, 29408, 4758, 19699, 32841, +32842, 19351, 33103, 21624, 30398, 30956, 33384, 14141, 36834, 10535, +17796, 26222, 29538, 19704, 4258, 26705, 23810, 5449, 14711, 4636, +33382, 33175, 30049, 3321, 21174, 6282, 21151, 22573, 9153, 17150, +38808, 4768, 13582, 17610, 27518, 1535, 19380, 19478, 19490, 19485, +19483, 19476, 19525, 19549, 19558, 19575, 19552, 19553, 19611, 19599, +19622, 19623, 19645, 19666, 19629, 19681, 19693, 19691, 19702, 19725, +19730, 19718, 19690, 19696, 19708, 19762, 19749, 19751, 19775, 19784, +19770, 19783, 19807, 19829, 19841, 19850, 19861, 19886, 19857, 19950, +19943, 19969, 19967, 19992, 20027, 20041, 20030, 20000, 20007, 19996, +20075, 20122, 20117, 20115, 20152, 20123, 20130, 20194, 20190, 20192, +20236, 20223, 20230, 20232, 20244, 20267, 20279, 20283, 20284, 20304, +20294, 20297, 20310, 20309, 20338, 20325, 20371, 20426, 20421, 20436, +20434, 20432, 20468, 20493, 20469, 20478, 20467, 20512, 20521, 20523, +19070, 22664, 16738, 15999, 4203, 5190, 21176, 20925, 25338, 26706, +4321, 14411, 6206, 22523, 9783, 31103, 19760, 21242, 40424, 3610, +19108, 21952, 5687, 158, 21122, 27465, 37918, 39936, 25539, 29796, +30707, 13447, 12729, 6504, 1260, 2905, 23820, 30237, 27935, 28814, +28023, 40524, 35865, 17661, 12345, 22533, 32872, 18906, 21942, 2913, +18775, 9793, 22128, 4062, 13280, 7881, 40391, 18940, 13367, 36514, +18865, 33987, 4239, 29639, 21350, 17679, 4787, 9543, 32651, 29000, +7265, 39501, 13376, 10882, 4782, 25733, 32453, 28168, 7672, 40366, +5158, 15776, 21737, 14950, 4032, 14742, 16204, 17511, 30010, 23356, +4798, 1735, 34014, 21149, 31120, 38151, 20532, 20552, 20533, 20535, +20542, 20537, 20555, 20564, 20574, 20609, 20656, 20664, 20585, 20630, +20628, 20589, 20712, 20703, 20735, 20834, 20754, 20753, 20756, 20752, +20808, 20817, 20810, 20802, 20816, 20782, 20786, 20814, 20792, 20822, +20843, 20858, 21165, 20881, 20865, 20877, 20868, 20937, 20934, 20935, +20954, 20950, 20981, 20977, 20987, 21039, 21070, 21108, 21104, 21141, +21144, 21166, 21173, 21184, 21198, 21202, 21210, 21252, 21220, 21216, +21211, 21266, 21265, 21318, 21336, 21317, 21334, 21368, 21366, 21369, +21404, 21403, 21392, 21421, 21444, 21439, 21445, 21480, 21485, 21510, +21577, 21512, 21555, 21556, 21508, 21619, 21631, 21628, 21645, 21625, +32410, 1570, 33312, 15790, 16213, 34337, 18628, 12065, 37968, 19174, +24840, 38152, 18998, 21263, 37973, 23643, 31085, 9490, 17909, 9479, +13410, 12550, 8548, 3874, 20199, 21562, 8697, 13130, 5977, 39410, +33388, 28569, 32322, 2499, 31816, 37177, 33308, 14570, 14357, 33196, +26571, 14297, 28626, 27099, 28754, 23128, 23129, 9394, 11238, 29344, +31980, 5343, 7358, 21984, 28597, 7242, 4091, 18852, 18046, 31962, +24471, 22142, 15738, 8018, 38211, 7769, 16889, 37042, 16489, 37308, +1945, 21430, 14426, 11514, 15464, 1500, 20819, 5999, 6318, 712, +2519, 35929, 2333, 18528, 5068, 33989, 35098, 5508, 5262, 23958, +18683, 35601, 12400, 13191, 12056, 23372, 21627, 21674, 21683, 21692, +21703, 21694, 21724, 21722, 21719, 21752, 21789, 21797, 21807, 21815, +21834, 21841, 21839, 21852, 21899, 21904, 21875, 21908, 21912, 21915, +21913, 21964, 21947, 21950, 21911, 21985, 21982, 21993, 22003, 22004, +21995, 22007, 22013, 22016, 22012, 22035, 22031, 22054, 22049, 22059, +22072, 22103, 22104, 22094, 22101, 22118, 22137, 22141, 22159, 22165, +22169, 22179, 22178, 22210, 22187, 22204, 22209, 22230, 22236, 22248, +22256, 22253, 22247, 22284, 22274, 22273, 22297, 22302, 22320, 22315, +22325, 22338, 22351, 22359, 22352, 22357, 22416, 22372, 22343, 22360, +22401, 22410, 22424, 22439, 22482, 22421, 22427, 22466, 22521, 22497, +18687, 18637, 2745, 27488, 12928, 22829, 34677, 34702, 2389, 16649, +29460, 29364, 13328, 22342, 35640, 2607, 20188, 8369, 37221, 11046, +40855, 11728, 28117, 39609, 29985, 30661, 23455, 30912, 25271, 7919, +33594, 11140, 14834, 9014, 335, 3900, 19619, 25369, 10157, 36117, +36817, 35661, 24200, 22570, 29063, 5550, 17099, 36665, 887, 35557, +21629, 21270, 1886, 1764, 33421, 35017, 32066, 10627, 38458, 6129, +5937, 21487, 10836, 19694, 26740, 9083, 1183, 30779, 7938, 40707, +5616, 12505, 4593, 37558, 33919, 8678, 17111, 25390, 2631, 3157, +37236, 10193, 40858, 17774, 31198, 12506, 9504, 4446, 9039, 9457, +13340, 36981, 40714, 7172, 19529, 39950, 22508, 22522, 22504, 22484, +22560, 22575, 22618, 22595, 22636, 22654, 22647, 22690, 22693, 22704, +22748, 22720, 22743, 22757, 22762, 22773, 22793, 22787, 22812, 22818, +22819, 22843, 22846, 22864, 22839, 22841, 22858, 22840, 22848, 22907, +23008, 22918, 22932, 22974, 22990, 22965, 22978, 23011, 23039, 23126, +23037, 23066, 23070, 23068, 23072, 2111, 23105, 23107, 23110, 23108, +23112, 23134, 23133, 23161, 23163, 23150, 23561, 23144, 23139, 23148, +23177, 23146, 23142, 23229, 23284, 23230, 23234, 23271, 23263, 23253, +23222, 23309, 23237, 23220, 23282, 23413, 23398, 23392, 23396, 23400, +23465, 23470, 23527, 23443, 23450, 23451, 23452, 23459, 23444, 23572, +23638, 40193, 11316, 7850, 8309, 4899, 4110, 14030, 7076, 212, +24042, 3465, 22855, 13851, 16597, 27355, 40455, 4934, 38234, 37472, +6438, 30674, 16856, 6276, 7856, 25289, 36134, 2116, 37873, 28126, +3304, 3162, 31199, 1650, 31464, 8834, 40304, 20608, 40458, 41242, +30044, 24604, 28297, 3163, 22347, 19849, 33298, 14033, 3052, 15028, +34365, 4879, 10064, 4880, 12762, 30449, 27979, 21705, 26418, 32342, +30978, 13652, 20986, 20798, 29848, 8975, 19526, 4449, 5671, 24768, +6143, 41000, 16162, 18724, 30787, 21521, 16046, 23069, 38016, 8578, +9822, 19067, 3797, 4197, 38703, 19814, 16868, 803, 24329, 14735, +24245, 5625, 13570, 13896, 24047, 28561, 23589, 23590, 23647, 23628, +23645, 23656, 23622, 23632, 23674, 23623, 23666, 8392, 23783, 23746, +23747, 23740, 23773, 23818, 23802, 23823, 23846, 23849, 23836, 23860, +23891, 23886, 23902, 23887, 23944, 23947, 23943, 23964, 24021, 24010, +24006, 23989, 24044, 24065, 24039, 24040, 24077, 24113, 24108, 24099, +24091, 24088, 24093, 24136, 12696, 24135, 24139, 24144, 24209, 24207, +24206, 24243, 24249, 24254, 24235, 24266, 24251, 24302, 24323, 24345, +24347, 24346, 24348, 24349, 24356, 24390, 24381, 24383, 24379, 24399, +24401, 24417, 24469, 24445, 24531, 24522, 24524, 24616, 24576, 24568, +24592, 24579, 24716, 24674, 24707, 24675, 24708, 24686, 24684, 24773, +8804, 11162, 24248, 149, 30475, 1038, 40049, 12871, 17935, 28718, +29263, 5386, 11022, 10382, 4226, 2901, 11319, 7507, 16256, 26151, +34487, 35447, 29378, 23273, 30345, 2417, 39230, 30162, 14262, 1392, +36041, 19851, 2052, 22228, 6115, 24536, 15358, 32539, 30403, 37168, +37019, 8189, 17535, 33746, 21013, 2427, 31047, 4285, 32615, 1440, +19650, 154, 36412, 16126, 16127, 13234, 20245, 41296, 41297, 41038, +25511, 31734, 35195, 155, 24778, 12884, 8007, 18930, 14047, 22305, +10665, 10666, 10756, 34621, 29746, 40739, 24384, 20092, 11492, 26617, +8348, 40085, 13131, 30694, 1924, 30537, 12551, 6499, 35077, 28130, +24957, 39084, 11881, 26849, 16335, 40906, 24862, 24865, 24873, 24890, +24878, 24907, 24991, 24922, 24972, 24929, 24921, 24944, 24933, 24998, +25015, 25014, 25029, 9626, 25038, 25040, 25109, 25071, 25058, 25053, +25124, 25126, 25148, 25156, 25172, 25181, 25208, 25219, 25220, 25218, +25228, 25234, 25243, 25251, 25254, 25256, 25264, 25263, 25261, 25283, +25318, 25302, 25298, 25296, 25311, 25308, 25352, 25353, 25371, 25384, +25383, 25414, 25391, 25433, 25421, 25413, 25392, 25389, 25462, 25509, +25505, 25537, 25546, 25586, 25570, 25576, 25541, 25598, 25596, 25594, +25607, 25619, 25642, 25638, 25686, 25706, 25704, 25724, 25725, 25738, +25740, 25763, 25766, 25786, 25829, 25833, 25827, 25843, 25849, 25853, +34900, 37496, 19715, 37801, 27364, 40419, 9356, 25198, 33904, 11147, +30695, 36918, 27867, 36273, 26858, 4266, 26939, 37805, 39097, 25562, +17181, 25031, 37573, 17182, 14562, 31531, 3905, 33552, 29798, 18232, +12016, 5777, 23855, 41039, 22988, 4850, 37501, 3912, 37309, 22065, +23071, 20908, 31684, 7614, 37852, 25745, 2331, 20012, 28268, 20486, +27868, 18233, 31685, 9161, 16480, 8356, 4888, 28804, 19163, 33751, +35037, 9643, 40958, 9705, 41309, 29379, 2431, 22295, 5211, 26621, +16515, 18199, 5912, 29383, 19614, 29565, 4013, 160, 17420, 4505, +22871, 24540, 13907, 4268, 13706, 30610, 29899, 2369, 37349, 35867, +40809, 1262, 18663, 2132, 38760, 16677, 25866, 25898, 25910, 25919, +25934, 25942, 25944, 25967, 25970, 26008, 25994, 25998, 26069, 26076, +26098, 26089, 26080, 26087, 26082, 26085, 26137, 26147, 26110, 26181, +26190, 26218, 26211, 26206, 26200, 26204, 26238, 26212, 26260, 26263, +26324, 26337, 26330, 26309, 26293, 26301, 26321, 26373, 26367, 26369, +26396, 26395, 26404, 26406, 26414, 26420, 26416, 26424, 26417, 26443, +26442, 26452, 26454, 26471, 26467, 26468, 26485, 26488, 26505, 26499, +26516, 26531, 26538, 26525, 26536, 26526, 26523, 26521, 26600, 26573, +26580, 26576, 26578, 26607, 26595, 26585, 26653, 3150, 26659, 26669, +26652, 26696, 26710, 26703, 26734, 26729, 26755, 26745, 26728, 26767, +23950, 19449, 34396, 18079, 12552, 1543, 9711, 10030, 5569, 18763, +26550, 26378, 5570, 34001, 1946, 5698, 4853, 26629, 33875, 10945, +299, 20094, 18517, 39905, 22937, 13273, 20151, 4506, 21457, 11777, +14787, 36162, 13142, 36088, 9791, 3179, 11102, 26112, 15614, 23863, +19255, 38130, 38317, 16921, 30725, 12363, 23778, 26811, 19870, 21960, +2798, 5780, 25687, 16746, 37063, 24057, 3920, 11177, 12913, 19341, +37857, 732, 36788, 18797, 25237, 6984, 29109, 7477, 14927, 7200, +25568, 7623, 16011, 27564, 34223, 33518, 8222, 5317, 31218, 6173, +27666, 32652, 31848, 18384, 30898, 26484, 12914, 28271, 18093, 37369, +31990, 27767, 21733, 33767, 37931, 37350, 26774, 26799, 26801, 26795, +26793, 26824, 26823, 26839, 26837, 26848, 26830, 26821, 26829, 26898, +26902, 27144, 26909, 26651, 26924, 26923, 26913, 27143, 26962, 26964, +26969, 26976, 26973, 26970, 27006, 27002, 26993, 26997, 27039, 27016, +27035, 27100, 27058, 27018, 27036, 27084, 27115, 27045, 26999, 27017, +27081, 27027, 26994, 27000, 27034, 27030, 27024, 27025, 27157, 27163, +27169, 27165, 27176, 27184, 27182, 27177, 27193, 27180, 27265, 27221, +27237, 27229, 27215, 27256, 27219, 27249, 27238, 27246, 27211, 27286, +27284, 27290, 27320, 27309, 27322, 27313, 27314, 27312, 27315, 27308, +27337, 27345, 27351, 27340, 27338, 27353, 27383, 27361, 27378, 27386, +31698, 10295, 105, 11806, 11807, 12609, 4407, 32450, 30413, 20340, +16836, 13247, 2308, 26639, 23955, 17453, 15374, 37591, 4960, 29201, +28778, 38605, 28272, 32108, 7266, 6081, 33038, 9193, 27319, 13162, +10200, 25804, 34005, 35090, 565, 6581, 22797, 30732, 21652, 3832, +19330, 22723, 12624, 38189, 3192, 39117, 7124, 21290, 36436, 4572, +32658, 23344, 7188, 13042, 33695, 15955, 1452, 5923, 20170, 16354, +14002, 24503, 24182, 17706, 32219, 28064, 18869, 35960, 33705, 32934, +35961, 16179, 16760, 13541, 5581, 39597, 862, 35099, 20670, 11439, +1567, 27929, 28695, 29901, 24512, 24068, 30843, 18270, 11822, 21974, +8598, 37937, 837, 17285, 27327, 3935, 27356, 27424, 27427, 27435, +27433, 27440, 27441, 27458, 27456, 27474, 27472, 27496, 27517, 27521, +27540, 27537, 27555, 27568, 27557, 27561, 27571, 27584, 27579, 27576, +27636, 27659, 27654, 27626, 27619, 27614, 27612, 27702, 27749, 27708, +27748, 27706, 4438, 27003, 27722, 27704, 27778, 27820, 27817, 27844, +27842, 27839, 27838, 27841, 27864, 27884, 27923, 27939, 27940, 27944, +27961, 27978, 27980, 27995, 28015, 28001, 28007, 27984, 28092, 27969, +28100, 28110, 28111, 28120, 28153, 28154, 28152, 28173, 28199, 28175, +28228, 28193, 28204, 28184, 28261, 28275, 28276, 28308, 28300, 28294, +28311, 28336, 28333, 28340, 28327, 28407, 28397, 28398, 28399, 28420, +63, 17981, 33779, 24340, 16313, 30171, 31394, 25692, 25693, 23362, +18620, 27954, 29928, 19909, 37944, 22894, 37208, 34017, 12639, 14198, +33780, 24673, 27955, 14199, 7810, 2047, 25205, 35992, 32293, 37106, +14532, 17559, 17518, 36239, 23959, 36370, 18406, 29713, 30762, 37766, +18122, 35000, 19742, 10136, 15915, 16376, 12649, 5329, 19468, 16817, +16708, 11653, 7745, 39444, 30855, 15963, 11267, 16982, 12657, 16773, +11281, 19133, 12240, 15967, 18848, 12968, 25821, 29043, 16719, 25012, +32688, 36026, 19001, 19827, 1642, 27629, 32597, 3995, 10851, 33477, +4844, 7991, 33492, 18658, 11026, 10277, 13360, 14636, 820, 34409, +38721, 38722, 15908, 1707, 31875, 27417, 28428, 28442, 28504, 28490, +28546, 28557, 28556, 28551, 28596, 28601, 28589, 28593, 28592, 28612, +28631, 28617, 28636, 28632, 28645, 28684, 28662, 28674, 28666, 28651, +28713, 28720, 28716, 28753, 28746, 28741, 28743, 28764, 28799, 28801, +28790, 28795, 28822, 28788, 28827, 28856, 28864, 28858, 28880, 28877, +28897, 28895, 28908, 28896, 28946, 28936, 28935, 28943, 28938, 28972, +28977, 28984, 29025, 29009, 29006, 29010, 29045, 29044, 29053, 29049, +29074, 29114, 29120, 29071, 29149, 29182, 29204, 29174, 29169, 29164, +29222, 29226, 29233, 29269, 29247, 29262, 29252, 29316, 29309, 29354, +29365, 29370, 29417, 29422, 29430, 29436, 29428, 29457, 29462, 29467, +5849, 24582, 6060, 31912, 14852, 38933, 26501, 36928, 9973, 40831, +32528, 7370, 6913, 416, 3531, 23653, 30919, 37709, 37710, 15029, +23255, 29598, 23256, 37546, 14861, 11672, 24246, 23257, 39953, 20799, +30450, 7604, 7605, 10167, 8170, 25144, 804, 21231, 28988, 22865, +3471, 14618, 17151, 8179, 38421, 9025, 22513, 22514, 32169, 5860, +1652, 1777, 38584, 29437, 9155, 36405, 8699, 4453, 11677, 19509, +8190, 17799, 35324, 32177, 17165, 35807, 22872, 23166, 26509, 35454, +30482, 20622, 24162, 9602, 24474, 16636, 33218, 13815, 24638, 12775, +29953, 3055, 551, 10090, 33803, 26717, 8120, 32368, 16490, 1263, +37502, 36844, 13692, 5191, 5812, 11678, 29459, 29486, 29494, 29489, +29490, 29533, 29543, 29561, 29592, 29616, 29641, 29574, 29603, 29576, +29605, 29659, 29657, 29660, 29655, 29668, 29674, 29683, 29682, 29714, +29723, 29727, 29730, 29764, 29769, 29773, 29847, 29776, 29832, 29835, +29840, 29849, 29858, 29896, 29908, 29939, 29954, 29957, 29947, 29963, +29979, 30008, 30039, 30027, 30050, 30089, 30067, 30065, 30176, 30143, +30135, 28439, 30160, 30181, 30246, 30191, 30182, 30210, 30214, 30229, +30247, 30260, 30285, 30273, 30280, 30309, 30313, 30298, 30314, 30304, +30359, 30332, 30340, 30353, 30338, 30327, 30336, 30388, 30404, 30434, +30445, 30442, 30513, 30458, 30461, 30502, 30505, 30499, 30498, 30516, +27798, 14427, 23318, 37332, 15085, 27652, 19076, 17194, 5995, 28953, +16061, 10003, 10102, 706, 7456, 30548, 6607, 37510, 28392, 23821, +25708, 21246, 30810, 17615, 6152, 6969, 616, 5699, 30490, 2256, +34836, 6106, 16198, 13693, 29511, 19673, 33519, 20200, 13593, 26944, +33764, 34535, 25519, 30553, 8223, 37584, 19797, 30883, 25569, 32881, +31932, 36336, 26872, 3728, 28775, 40159, 40925, 29110, 37585, 19871, +16203, 6361, 24545, 17202, 31054, 37809, 24871, 36425, 13243, 650, +27670, 4463, 31598, 31006, 17454, 592, 25434, 12377, 31169, 33448, +10119, 35504, 1096, 11178, 35594, 6462, 20971, 10428, 10976, 9541, +19282, 35931, 30936, 36432, 28994, 39909, 30564, 30540, 30515, 30572, +30578, 30586, 30574, 30589, 30591, 30773, 30608, 30594, 30662, 30522, +30663, 30657, 30658, 30659, 30660, 30774, 30809, 30777, 30782, 30783, +30789, 30840, 30775, 30796, 30788, 30786, 30812, 30772, 30896, 30888, +30920, 30909, 30916, 30911, 30948, 30964, 30953, 30972, 30996, 30993, +31030, 31038, 31052, 31040, 31050, 31059, 31105, 31082, 31095, 31079, +31145, 31144, 31151, 31134, 31141, 31150, 31147, 31181, 31188, 31200, +31186, 31185, 31182, 31254, 31242, 31262, 31243, 31279, 31402, 31257, +31314, 31308, 31363, 31342, 31324, 31305, 31401, 31337, 31335, 31427, +31547, 31428, 31904, 31486, 31782, 31494, 31559, 31413, 31535, 31458, +2334, 25992, 23565, 29427, 26384, 5715, 18813, 30836, 39817, 3189, +24802, 22546, 37087, 13170, 18529, 24309, 36234, 13252, 30940, 32659, +30416, 38993, 39044, 19261, 9764, 18261, 4533, 16945, 19432, 32660, +2968, 20671, 41153, 27678, 24554, 28996, 39510, 22380, 13483, 24814, +1633, 17694, 9617, 31758, 12461, 40395, 7457, 16578, 14959, 14960, +36177, 2717, 13390, 21093, 32671, 31232, 3731, 34088, 27679, 4046, +3280, 5263, 17058, 26346, 35602, 14109, 4964, 23552, 4364, 32513, +26559, 24283, 36535, 2641, 17261, 38325, 33781, 40217, 38287, 32813, +19538, 33076, 23373, 25457, 13069, 10241, 40685, 13756, 22802, 10325, +7287, 16709, 13753, 16226, 20461, 17305, 31504, 31905, 31421, 31473, +31574, 31405, 31474, 31545, 31481, 31526, 31417, 31501, 31700, 31678, +31672, 31668, 31682, 31731, 31730, 31723, 31775, 31820, 31772, 31783, +31931, 31917, 31938, 32003, 31985, 31976, 31946, 31940, 31950, 32019, +26152, 32025, 32021, 32076, 32091, 32055, 32427, 32099, 32058, 32152, +32151, 32170, 32168, 32148, 32155, 32150, 32182, 32246, 32248, 32320, +32359, 32314, 32367, 32351, 32357, 32326, 32343, 32323, 32321, 32434, +32437, 32464, 32435, 32451, 32454, 32442, 32431, 32483, 32478, 32472, +32501, 32494, 32492, 32530, 32527, 32551, 32542, 32523, 32536, 32606, +32611, 32648, 33901, 32585, 32663, 32616, 32593, 32587, 32705, 32724, +24563, 21598, 18638, 6470, 32683, 40183, 18430, 17323, 18431, 7747, +35129, 1075, 21040, 9209, 36385, 27420, 31660, 2276, 24850, 24990, +2277, 19415, 13767, 40231, 40588, 11459, 21714, 22237, 39961, 19354, +7143, 15113, 20360, 31902, 15235, 37639, 24900, 18049, 33864, 27365, +29670, 32540, 32184, 10957, 30821, 5398, 3694, 30826, 5403, 40556, +8423, 36966, 35389, 7851, 7567, 13636, 39893, 5143, 35718, 39951, +13801, 39556, 32844, 25140, 39389, 15025, 2635, 11599, 25141, 30088, +18183, 805, 35072, 41290, 1208, 26473, 14619, 10465, 33921, 39145, +35437, 22005, 1842, 5521, 8171, 9698, 39653, 39685, 25145, 35747, +30045, 20887, 8994, 33857, 38945, 24698, 32721, 32742, 32751, 32745, +32754, 32753, 32750, 32804, 32795, 32805, 32808, 32882, 32819, 32834, +32861, 32821, 32848, 32825, 32851, 32927, 32968, 32949, 33075, 33034, +32944, 32945, 32987, 32958, 33145, 33110, 33133, 33115, 33111, 33134, +33109, 33105, 33169, 33176, 33205, 33217, 33210, 33209, 33288, 33244, +33253, 33248, 33246, 33245, 33284, 33291, 33289, 33292, 33290, 33317, +33316, 33331, 33320, 33323, 33342, 33344, 33369, 33372, 33380, 33422, +33441, 33439, 33430, 33436, 33435, 33501, 33458, 33505, 33478, 33500, +33471, 33548, 33554, 33663, 33636, 33605, 33588, 33592, 3988, 33607, +33648, 33641, 33631, 33632, 33725, 33736, 33729, 33799, 33800, 33789, +9699, 21365, 1904, 1849, 3542, 3537, 15690, 25333, 13297, 13119, +1917, 13661, 7082, 25555, 40144, 9520, 36072, 15121, 33314, 33493, +16047, 21455, 27374, 12770, 16088, 17041, 14715, 26618, 8701, 39149, +18224, 12563, 35845, 2079, 40463, 27538, 25127, 17393, 7820, 2664, +16056, 28951, 37653, 18065, 3546, 2874, 3810, 17611, 22257, 7431, +37503, 34517, 6357, 39757, 35581, 12564, 39478, 15502, 23563, 29189, +29100, 8210, 3725, 33016, 5996, 16062, 6480, 33445, 33446, 37654, +8211, 37054, 29894, 34530, 11630, 22229, 5111, 37882, 28412, 9006, +11255, 25429, 37655, 20970, 14233, 28355, 593, 25925, 21463, 36342, +13821, 11258, 15700, 17441, 16922, 26878, 33827, 33841, 33855, 33854, +33906, 33908, 33916, 33913, 33944, 33948, 33993, 33999, 34055, 34027, +34032, 34026, 34029, 34028, 34110, 34099, 34143, 34097, 34107, 34100, +34148, 34153, 34157, 34162, 34285, 34146, 34186, 34180, 34193, 34196, +34201, 34197, 34218, 34213, 34230, 34233, 34301, 34593, 34306, 34290, +34300, 34368, 34346, 34364, 34385, 34353, 34345, 34350, 34406, 34376, +34357, 34356, 34467, 34483, 34486, 34478, 34522, 34602, 34614, 34657, +34587, 34597, 34623, 34598, 34596, 34618, 34599, 34611, 34604, 34728, +34720, 34732, 34731, 34751, 34746, 34754, 34757, 34747, 34764, 34749, +34823, 34814, 34825, 34819, 34850, 34864, 34910, 34903, 34885, 34964, +18907, 35932, 5935, 33049, 32112, 30837, 1599, 2379, 12195, 26072, +734, 1394, 8070, 13043, 40437, 13044, 4792, 12388, 5123, 37992, +7270, 1983, 32557, 33154, 1660, 25239, 19429, 16355, 345, 38283, +9671, 2398, 28233, 21739, 2670, 17513, 5259, 27329, 28736, 1367, +16364, 23095, 39599, 6518, 27331, 30241, 27136, 534, 32912, 2015, +3233, 16318, 18423, 31714, 32134, 16385, 39025, 5077, 14700, 38115, +26894, 13084, 36020, 16462, 34232, 31418, 7780, 8282, 7811, 484, +10443, 12242, 12250, 13097, 9348, 1480, 34603, 9521, 14872, 22685, +19643, 20128, 20129, 20331, 27062, 27746, 2662, 19109, 14893, 20144, +29421, 17427, 35084, 39758, 15037, 31691, 34953, 34917, 34956, 34933, +34943, 34923, 35018, 35026, 35067, 35068, 35106, 35119, 35121, 35130, +35288, 35157, 35153, 35150, 35167, 35118, 35164, 35165, 35166, 35194, +35173, 35188, 35291, 35319, 35296, 35321, 35318, 35301, 35294, 35295, +35478, 35369, 35460, 35444, 35365, 35435, 35482, 35377, 36039, 35398, +35520, 35576, 35563, 35565, 35542, 35541, 35552, 35543, 35617, 35652, +35677, 35663, 35630, 35613, 35650, 35946, 35778, 35840, 35711, 35625, +35844, 35825, 35882, 35616, 35612, 35740, 35828, 35689, 35623, 35748, +35662, 35633, 35945, 35769, 35687, 36059, 36060, 36047, 36064, 36061, +36049, 36055, 36114, 36145, 36142, 36138, 36198, 36193, 36194, 36209, +26285, 30555, 31849, 29321, 37075, 16415, 6997, 6421, 24223, 22161, +12625, 20495, 36437, 9070, 24744, 38726, 14006, 9366, 5470, 13186, +19122, 24897, 12947, 30641, 14977, 24750, 19125, 16426, 26693, 5597, +9378, 34591, 29310, 24588, 13853, 4617, 39686, 3038, 12293, 5192, +5628, 11216, 24961, 8710, 27088, 9605, 13773, 11933, 24642, 33224, +21249, 12175, 18778, 38397, 1327, 33235, 26385, 8927, 39844, 33940, +4037, 31629, 35530, 17343, 14983, 31656, 34694, 31663, 34715, 6093, +8163, 24589, 24590, 13509, 12508, 7206, 34111, 5898, 10716, 2636, +28974, 33475, 13653, 35438, 25328, 34144, 36135, 26303, 23480, 30046, +12524, 34112, 36136, 6832, 7574, 34258, 36251, 36305, 36338, 36310, +36358, 36303, 36333, 36400, 36402, 36403, 36399, 36532, 36396, 36439, +36398, 36482, 36477, 36510, 36506, 36539, 36543, 36542, 36576, 36544, +36546, 36554, 36650, 36646, 36617, 36618, 36627, 36614, 36629, 36620, +36662, 36685, 36676, 36687, 36679, 36719, 36720, 36731, 36755, 36727, +36735, 36764, 36818, 36812, 36916, 36868, 36871, 36901, 36889, 36866, +36870, 36923, 36931, 36945, 36963, 37034, 37043, 37028, 37053, 36950, +36969, 37021, 36967, 37010, 37013, 36993, 36998, 37129, 36984, 37137, +37128, 37132, 37143, 37131, 37144, 37134, 37212, 37250, 37220, 37230, +33456, 37294, 37271, 37239, 37276, 37301, 37258, 37234, 37229, 37313, +34895, 27846, 26672, 36143, 33127, 14874, 32707, 21159, 3168, 36759, +39569, 33332, 7403, 33177, 2976, 26530, 32081, 25767, 40561, 33566, +35772, 35773, 28093, 3417, 10319, 26619, 10390, 33651, 39151, 40317, +39335, 9044, 40846, 38588, 9162, 8191, 13008, 5978, 18053, 5629, +34855, 21080, 22108, 40087, 8465, 35810, 14626, 35078, 38500, 35456, +35457, 24869, 38875, 22873, 1238, 33355, 24715, 446, 4949, 41103, +28902, 40249, 4388, 38959, 36639, 33571, 34064, 35846, 11563, 10402, +27089, 2552, 32764, 26860, 10527, 2594, 9053, 9606, 24962, 11765, +13694, 11217, 8318, 32485, 30546, 26622, 40090, 29614, 20017, 20515, +6962, 11623, 34393, 33335, 9310, 7145, 37241, 37273, 37291, 37246, +37351, 37213, 37484, 37489, 37480, 37527, 37538, 37548, 37542, 37553, +37581, 37533, 37532, 37544, 37571, 37569, 37556, 37615, 37633, 37652, +37634, 37635, 37665, 37668, 37727, 37717, 35069, 37699, 37726, 37684, +37707, 37713, 37840, 37818, 37833, 37820, 37872, 37865, 37899, 37927, +37909, 37798, 37920, 37897, 37952, 37976, 37974, 38014, 38012, 38010, +38025, 38042, 38035, 38036, 38063, 38078, 38086, 38093, 38124, 38146, +38148, 38158, 38163, 38170, 38192, 38174, 38173, 38184, 38179, 38222, +38215, 38205, 38197, 38195, 38217, 38231, 38228, 38225, 38230, 38318, +38331, 38339, 38341, 2472, 38361, 38368, 38379, 38382, 38411, 34229, +1810, 29410, 35472, 16741, 40154, 15826, 15715, 31214, 12585, 39760, +25345, 4647, 16518, 6845, 15843, 7046, 29548, 5195, 931, 2696, +36907, 15525, 24103, 24220, 27432, 161, 37182, 32767, 3345, 13818, +32375, 31165, 31368, 8619, 27853, 2061, 11778, 14156, 27573, 39209, +27574, 6359, 11250, 2962, 27519, 13716, 15466, 24733, 4566, 32716, +28210, 30491, 32195, 7478, 3433, 28489, 35891, 21345, 36173, 5916, +22580, 40646, 2799, 3138, 40555, 12597, 23188, 28676, 40530, 30726, +14502, 24409, 6174, 39338, 38265, 41008, 23691, 40647, 17636, 13152, +4023, 10226, 19091, 26679, 1596, 11273, 22675, 37066, 6005, 33524, +22689, 27119, 33769, 27120, 11937, 11232, 38423, 38418, 38459, 38491, +38504, 38004, 38483, 38492, 38485, 38524, 38517, 38540, 38548, 38556, +38563, 38614, 38578, 38594, 38583, 38576, 38641, 38638, 21399, 38642, +38640, 38737, 38694, 38691, 38693, 38697, 38706, 38702, 38763, 38747, +38754, 38757, 38744, 38786, 38785, 38801, 38796, 38800, 38805, 38797, +38804, 38817, 38811, 38829, 38830, 38850, 38852, 38867, 38879, 38881, +38859, 38886, 38858, 38914, 38921, 38934, 38958, 38986, 39017, 39021, +39051, 39026, 39029, 39062, 39090, 39071, 39094, 39073, 39116, 39054, +39056, 39057, 39133, 39141, 39130, 39215, 39190, 39214, 39176, 39273, +39244, 39259, 39236, 39246, 39232, 39237, 39321, 39311, 39323, 39329, +6998, 39968, 5710, 32889, 8059, 23114, 29512, 13163, 23439, 37371, +40776, 40394, 31754, 11809, 36097, 168, 32207, 20999, 3190, 7783, +40163, 34796, 34658, 11520, 33770, 8733, 21895, 23193, 20724, 35235, +30827, 33315, 29021, 40027, 26336, 22941, 16017, 11570, 12038, 8667, +36438, 20026, 32736, 20172, 31757, 23921, 3142, 33977, 29124, 28069, +714, 3501, 23700, 27125, 13284, 37595, 33051, 10491, 28921, 34984, +34985, 39872, 37092, 1568, 4592, 16946, 20544, 20667, 26386, 39000, +20522, 13058, 38284, 13597, 17463, 18531, 2312, 21935, 9731, 31703, +40672, 317, 318, 13921, 39001, 35523, 10889, 13319, 19399, 3013, +10131, 11184, 2816, 33536, 38354, 26057, 39328, 39331, 39327, 39325, +39362, 39371, 39359, 39363, 39426, 39374, 39377, 39399, 39361, 39358, +39376, 39470, 39456, 39472, 39473, 39451, 39459, 39453, 39534, 39552, +39526, 39570, 39527, 39532, 39542, 39610, 39644, 39664, 39608, 39651, +39731, 39620, 39627, 39616, 39700, 39650, 39728, 39623, 39622, 39670, +39702, 39621, 39678, 39873, 39892, 39883, 39894, 39897, 39888, 39924, +39923, 39952, 39943, 39944, 39977, 39981, 39976, 39984, 39978, 40003, +40040, 40044, 40123, 40062, 40078, 40063, 40071, 40110, 40138, 40137, +40150, 40127, 40140, 40139, 40130, 40197, 40184, 40194, 40247, 40238, +40258, 40254, 40234, 39050, 40287, 40272, 40312, 40282, 40323, 40315, +31630, 38402, 6589, 39350, 21095, 16365, 6860, 36371, 14967, 12225, +41225, 13488, 2046, 11843, 40442, 31236, 38333, 38449, 27153, 24118, +28699, 38334, 23120, 26772, 33783, 38220, 28704, 5275, 28246, 32295, +12230, 13548, 38732, 21038, 35353, 130, 38622, 11711, 11242, 35993, +35994, 26347, 25230, 21785, 23833, 40543, 28530, 11120, 40034, 10242, +131, 36378, 13197, 37427, 13078, 11854, 6392, 39006, 33896, 38110, +16774, 26694, 30865, 2829, 17352, 35533, 1518, 39012, 34695, 7033, +3847, 30869, 3848, 35115, 2750, 25231, 36246, 16392, 3236, 32924, +21606, 11302, 38117, 36030, 5285, 38637, 34709, 6408, 30026, 25301, +33321, 33347, 1168, 39985, 26667, 33480, 40271, 40280, 40291, 40284, +40362, 38848, 40371, 40374, 40380, 40400, 40429, 40427, 40431, 40457, +40452, 40462, 40451, 40484, 40470, 40472, 4202, 40498, 40492, 40527, +40509, 40546, 40552, 40557, 40571, 40568, 40567, 40572, 41246, 40599, +40608, 40610, 39049, 40594, 40602, 40708, 40709, 40720, 40711, 40736, +40722, 40704, 40843, 40811, 40829, 40845, 40884, 40853, 40866, 40852, +40938, 40903, 40927, 40888, 40892, 40948, 40971, 40995, 41023, 41027, +41028, 41037, 41043, 41044, 41052, 41098, 41092, 41093, 41094, 41116, +41130, 41164, 41189, 41176, 41180, 41204, 41208, 41239, 41264, 41265, +38490, 41291, 41274, 41275, 41287, 0, 0, 0, 0, 0, +23654, 10656, 31922, 12306, 10676, 9945, 10592, 31610, 31611, 17695, +10037, 6393, 18434, 23412, 17042, 5455, 1093, 27396, 32398, 7736, +39853, 39867, 34710, 34712, 3979, 11607, 29991, 35774, 35775, 12872, +421, 10809, 6948, 3906, 12897, 15490, 8319, 14637, 7877, 31554, +1700, 40164, 12738, 7629, 31612, 1984, 30899, 11349, 5587, 40935, +7635, 35982, 218, 22515, 20894, 22451, 9029, 20899, 36900, 20623, +27751, 11330, 16057, 10404, 10104, 16913, 21250, 1146, 37195, 12739, +29853, 19551, 31613, 7004, 14679, 3893, 28700, 11303, 15003, 878, +39065, 37541, 8164, 2183, 8970, 28985, 35439, 10172, 30400, 22789, +12004, 7336, 28627, 9411, 38244, 39471, 3968, 12081, 31304, 8335, +21419, 25777, 22417, 8787, 3288, 8688, 21063, 6995, 9691, 36974, +22766, 1109, 30024, 34880, 34915, 39360, 5509, 33162, 36256, 15929, +37320, 8551, 28968, 40233, 12268, 20968, 20318, 12088, 23216, 20076, +875, 26000, 9173, 38297, 26520, 4873, 34482, 14881, 27648, 35226, +34660, 7359, 22947, 9571, 15992, 1433, 38266, 9299, 36814, 5337, +35615, 30947, 14083, 15632, 9622, 15139, 16173, 12111, 26298, 30274, +15743, 22699, 14905, 24005, 11949, 35903, 14184, 30463, 25262, 6049, +38779, 16641, 25759, 8625, 20783, 25299, 37130, 22563, 34181, 30215, +31244, 2863, 2320, 15291, 40269, 21672, 15117, 36680, 35642, 8986, +7142, 40319, 27079, 1239, 40751, 7144, 9639, 22688, 1437, 19338, +5049, 26804, 15868, 7513, 29434, 35459, 3477, 19651, 10468, 1240, +18746, 17962, 11766, 8320, 22669, 40752, 12816, 33666, 38320, 13448, +8357, 38126, 13135, 36337, 34126, 39210, 26492, 1701, 1702, 24643, +26493, 4126, 38131, 40017, 16297, 38092, 4464, 3139, 26397, 29323, +22263, 8815, 32196, 19360, 13153, 28212, 8226, 28757, 4567, 4568, +39779, 12177, 38815, 6422, 13994, 33338, 4292, 37890, 778, 38022, +16300, 7804, 2350, 12208, 26815, 35949, 40438, 8244, 9071, 25845, +38285, 17696, 35964, 559, 3211, 30419, 39833, 40539, 1571, 37815, +38363, 5232, 38103, 34678, 23138, 26348, 29575, 30066, 21309, 12687, +12269, 7134, 36874, 15721, 15200, 40129, 35665, 29348, 2616, 13412, +21720, 20704, 3785, 34471, 17102, 24584, 17024, 37139, 22821, 36619, +23240, 7791, 23843, 25739, 22011, 40570, 27226, 19156, 31039, 1127, +29167, 9349, 15542, 14608, 7659, 34481, 32845, 12525, 30520, 40949, +18498, 28859, 1690, 21854, 3606, 31536, 14098, 13138, 13356, 14341, +29618, 33755, 5114, 29573, 30011, 26500, 23633, 41095, 37755, 4678, +5548, 31406, 34118, 10694, 9800, 2806, 15962, 718, 23062, 10574, +7972, 7910, 27966, 27711, 29681, 34466, 1895, 9694, 19642, 32976, +18973, 23021, 1780, 36427, 19172, 16698, 1743, 11043, 17763, 32243, +30422, 36453, 14009, 8478, 32234, 38136, 1379, 6394, 27300, 34691, +26401, 33898, 18488, 8482, 38138, 37530, 1241, 40006, 7796, 37812, +31489, 29615, 31828, 3259, 3275, 31995, 28835, 41022, 17115, 26304, +24462, 36206, 32262, 4351, 14875, 24298, 3472, 4352, 3221, 5979, +5528, 31819, 38589, 14894, 12337, 3487, 3914, 9266, 33972, 29386, +6734, 8433, 28313, 4648, 31692, 38889, 28026, 36224, 14504, 13154, +25082, 4328, 4738, 18780, 5318, 24548, 40777, 29119, 24741, 3652, +11535, 24069, 24033, 13543, 38221, 29217, 7128, 38084, 15686, 15353, +14876, 3200, 7410, 37716, 475, 23276, 30164, 35812, 21395, 18055, +19786, 15650, 4355, 23580, 40320, 14417, 27785, 20107, 39926, 20473, +34344, 13614, 10714, 26291, 21910, 14586, 21153, 9133, 10309, 5607, +38860, 24682, 35379, 15811, 16731, 9301, 12274, 11590, 26586, 9035, +24925, 39239, 11917, 33559, 24089, 8606, 15838, 7045, 40997, 40607, +30675, 36988, 26666, 2769, 28185, 3169, 13121, 33965, 35189, 6925, +37266, 33735, 150, 5672, 40726, 22686, 20524, 5271, 27996, 27078, +20134, 38963, 13019, 38332, 24050, 14915, 34644, 38600, 3230, 13607, +13891, 8143, 31309, 23624, 14082, 601, 5788, 41276, 838, 33249, +8305, 39637, 21503, 40999, 4195, 22507, 30525, 11483, 15926, 31699, +9956, 24443, 15851, 19473, 31143, 7361, 1759, 22423, 879, 35172, +5774, 22061, 14631, 21238, 35474, 12154, 6783, 6784, 40155, 24963, +40372, 32487, 3611, 22670, 39736, 12776, 2204, 28469, 14499, 27261, +29808, 4018, 14157, 21547, 32636, 2136, 4813, 20776, 27262, 13452, +24009, 20717, 13155, 23331, 31055, 30727, 13717, 12365, 21554, 14431, +14432, 19078, 18782, 16845, 30372, 24970, 41065, 24177, 35588, 4655, +40926, 22411, 39276, 37077, 6662, 4116, 36656, 5711, 38473, 3208, +9271, 28831, 8061, 41068, 21896, 2576, 29942, 23922, 21408, 5744, +29125, 12391, 18205, 38101, 1341, 3705, 18824, 17697, 28781, 5074, +28074, 31759, 15985, 12220, 39511, 23927, 5588, 22082, 40936, 17464, +38165, 21412, 29929, 14527, 32122, 39916, 5608, 28553, 12755, 39626, +40131, 15754, 24141, 11310, 37903, 17118, 36465, 8607, 31447, 7955, +22506, 28652, 34489, 14767, 34316, 36156, 38750, 22938, 26315, 41010, +18116, 7740, 3897, 11383, 19343, 24762, 26464, 10333, 8762, 19942, +33626, 32875, 27911, 33046, 14976, 36192, 23798, 5288, 2951, 27610, +1459, 973, 24623, 979, 6902, 7167, 27287, 12182, 36567, 10487, +30573, 31136, 8627, 39175, 15852, 22564, 35368, 17087, 23223, 602, +8376, 18456, 5789, 18588, 3072, 3458, 30069, 21213, 20755, 354, +34156, 5941, 6187, 15141, 26214, 26393, 21102, 8306, 36124, 3308, +26925, 9740, 33994, 17778, 37636, 39462, 192, 35754, 22510, 21424, +1869, 4667, 14970, 17983, 28419, 24034, 14814, 17642, 6624, 15881, +4969, 1374, 1375, 14687, 24120, 6632, 3844, 12235, 31303, 37772, +21414, 39520, 17345, 39861, 3943, 6516, 30866, 18435, 17990, 32135, +30871, 16393, 25213, 25775, 21607, 28539, 24854, 13833, 4685, 4867, +31768, 15971, 15005, 17992, 5100, 7685, 29153, 6735, 8909, 16493, +25351, 19167, 59, 12178, 14505, 15575, 16623, 34540, 19806, 15278, +24746, 18535, 16629, 6752, 39514, 34718, 29158, 5415, 36538, 37453, +3047, 34241, 9583, 15026, 37711, 33174, 5034, 33733, 7327, 25330, +26223, 15840, 27243, 29993, 3170, 5044, 6926, 20896, 23278, 19567, +25648, 25334, 23750, 40403, 10576, 10857, 22348, 29841, 25975, 5037, +15645, 5965, 36077, 16827, 10808, 8706, 37564, 19441, 36555, 17583, +3491, 33146, 22557, 36013, 2400, 13327, 20936, 6424, 23631, 12097, +30303, 24439, 23399, 32432, 7918, 34349, 37826, 7488, 12485, 17090, +6890, 14592, 22488, 39543, 25696, 32318, 2893, 4478, 24234, 31319, +23839, 23227, 26207, 1466, 40275, 15579, 35554, 20587, 8383, 22767, +18359, 437, 20793, 14384, 25175, 24398, 3461, 7937, 18008, 21447, +36254, 19559, 36397, 24448, 20378, 26444, 23842, 29065, 25233, 1195, +4377, 14551, 29590, 11668, 40135, 29491, 24043, 7954, 25286, 33294, +24931, 11729, 34041, 20472, 12507, 13339, 3675, 13225, 19190, 33258, +24782, 15869, 5630, 18057, 5050, 278, 39153, 7339, 15829, 34833, +22330, 916, 9098, 9099, 22191, 40322, 25480, 6949, 450, 40042, +39576, 34944, 15360, 35813, 39714, 27092, 22876, 7087, 8954, 14493, +13524, 9463, 10406, 15154, 24964, 40010, 38046, 39737, 26491, 17634, +37335, 26430, 36782, 30408, 36220, 38970, 30367, 8126, 24362, 40019, +21251, 16834, 38978, 38717, 17637, 40769, 11639, 30492, 4329, 9830, +15220, 35589, 22369, 23869, 9715, 21405, 22884, 9392, 937, 19079, +22018, 17590, 25664, 25521, 12680, 34797, 32208, 4104, 4607, 4238, +8734, 36793, 10598, 27268, 8236, 40778, 8062, 30900, 998, 38672, +37088, 30901, 28922, 9198, 39119, 32001, 34042, 8792, 13938, 19337, +28263, 10640, 40074, 15204, 1104, 26928, 31041, 36831, 6829, 19700, +36752, 17135, 29772, 32075, 7968, 28125, 36753, 5555, 26602, 9382, +16525, 36308, 4255, 14041, 23272, 31488, 27791, 13895, 20958, 23159, +444, 27242, 2869, 29431, 36995, 11320, 1221, 7990, 29781, 5185, +4764, 34304, 14408, 5297, 12870, 30344, 36404, 9094, 10075, 23574, +7720, 25339, 32445, 30538, 2780, 15149, 23501, 16000, 31735, 6944, +768, 21987, 29500, 18503, 22037, 33745, 12721, 39098, 26859, 25616, +20632, 7052, 923, 31018, 10196, 12335, 16890, 703, 12896, 27588, +16529, 36418, 37310, 28024, 19863, 6237, 31745, 17507, 4645, 17965, +37596, 18825, 13391, 3011, 40410, 30844, 11906, 33990, 39004, 13544, +38728, 2067, 16611, 7636, 7221, 17918, 8745, 26055, 15230, 11359, +35604, 12408, 40544, 7100, 37428, 13198, 10608, 16713, 22294, 17346, +17357, 18640, 17993, 5013, 39990, 17580, 30895, 4389, 41181, 1496, +16199, 4400, 33909, 643, 1504, 33910, 596, 4415, 1515, 1517, +21726, 21729, 2818, 4308, 36036, 25356, 1397, 26903, 25625, 2651, +8370, 36924, 35372, 23141, 37955, 30501, 29839, 40549, 29163, 10158, +4924, 6822, 39974, 3074, 21312, 39624, 3155, 40283, 28931, 30075, +24899, 11669, 6196, 36890, 20942, 35417, 13645, 17775, 34106, 6642, +14210, 36686, 24605, 5659, 14134, 35568, 24789, 15615, 33723, 17721, +11791, 34130, 14928, 25681, 41188, 12364, 19869, 7214, 23329, 10692, +33039, 10597, 30557, 35930, 31033, 27926, 1326, 10199, 28582, 25578, +34010, 32282, 8595, 16953, 12057, 24824, 10560, 7283, 21587, 20059, +8934, 35701, 15847, 17398, 4898, 35696, 31450, 38143, 22189, 36718, +17734, 8298, 8399, 27207, 19808, 29860, 3117, 8097, 22096, 336, +13639, 13416, 37957, 35732, 18884, 15058, 29338, 35134, 31, 20889, +12443, 9318, 527, 14405, 23020, 17788, 23748, 9409, 5970, 38381, +34262, 24330, 37011, 195, 33742, 1779, 15932, 37646, 27252, 7058, +4059, 12888, 27587, 38651, 21886, 25920, 19210, 36327, 39488, 10096, +39031, 31341, 17405, 28388, 11673, 9243, 16257, 988, 4882, 14879, +1055, 36761, 39998, 13956, 37267, 4299, 29176, 4945, 37619, 21881, +5301, 28155, 34508, 3478, 29082, 26934, 39085, 36768, 37916, 6950, +9846, 4950, 30603, 21032, 34955, 3875, 34124, 28470, 5690, 3488, +37622, 28013, 19321, 9422, 38761, 27102, 2165, 3623, 28027, 6657, +5700, 18518, 3496, 4833, 25252, 23692, 33836, 37355, 35495, 31374, +17675, 27121, 19361, 9877, 38607, 29016, 7125, 1414, 1418, 16957, +37604, 35003, 19134, 17062, 29485, 23394, 26202, 36946, 25540, 30426, +7835, 15293, 1680, 33107, 26657, 37531, 4808, 11973, 662, 14593, +1169, 30216, 15812, 9502, 26831, 15638, 38966, 32876, 18583, 41222, +4680, 8437, 11433, 22583, 33285, 40660, 11955, 41138, 21051, 35614, +28981, 5018, 27072, 2069, 3563, 12086, 15594, 5338, 16645, 38369, +34149, 34883, 7836, 8089, 35644, 4995, 17086, 6888, 1116, 955, +9735, 24320, 36197, 37956, 15110, 8287, 9077, 18190, 6125, 21626, +6669, 21065, 36682, 27620, 15814, 12105, 26661, 11591, 4897, 17865, +35397, 32581, 1185, 4346, 9453, 11723, 33373, 35303, 22030, 15756, +6715, 12494, 20320, 19991, 38489, 21721, 8782, 20701, 19293, 3405, +16549, 8825, 31190, 38376, 28330, 38200, 31449, 41285, 12112, 7781, +38236, 21878, 20278, 17876, 40417, 38834, 28939, 10844, 4760, 26145, +8304, 10343, 12275, 10799, 33252, 31669, 9531, 21850, 16540, 34358, +3297, 6270, 18857, 8103, 31189, 16466, 12757, 8824, 1893, 31796, +890, 32701, 23152, 24350, 39991, 40998, 22847, 16248, 21224, 36754, +2138, 32436, 14479, 36573, 23994, 35317, 19705, 25741, 908, 27244, +37161, 37908, 10746, 15925, 32439, 32440, 27860, 28796, 20481, 31513, +25599, 4006, 40741, 41004, 35196, 31158, 32446, 37844, 10273, 36553, +19652, 2994, 7875, 17719, 40384, 11092, 24001, 19440, 24002, 33576, +5486, 1358, 34068, 1286, 38338, 30611, 39340, 19668, 17892, 5112, +19872, 35225, 2396, 15771, 7730, 19873, 15873, 17512, 38097, 2712, +36700, 12210, 34668, 2724, 4860, 11293, 36540, 5178, 2051, 6096, +16463, 17139, 27426, 4065, 5964, 4902, 20990, 16872, 15930, 13572, +36602, 15994, 14264, 27861, 36076, 3597, 13573, 18580, 15691, 21906, +11742, 24255, 293, 27999, 6329, 15362, 21532, 10320, 3129, 28396, +8704, 7, 20835, 10213, 5724, 22, 81, 28306, 9867, 29563, +3418, 22288, 16822, 2364, 22746, 23172, 36326, 1023, 27920, 5564, +20146, 22335, 14809, 17664, 23046, 4066, 13531, 21907, 24265, 18582, +2469, 5458, 10198, 13988, 14938, 35335, 25830, 22471, 25574, 2156, +12050, 21033, 30571, 12977, 20974, 19052, 10894, 17999, 36880, 37148, +24351, 37156, 11337, 30575, 39619, 22275, 28855, 3786, 38239, 9780, +31648, 38107, 17324, 36991, 34490, 41175, 19568, 39199, 6284, 39082, +37663, 8279, 29237, 23581, 7159, 3811, 38047, 4325, 36904, 36278, +23074, 41185, 9890, 30618, 18787, 16411, 34326, 28956, 38665, 28677, +40531, 32209, 6331, 28734, 24653, 4274, 37933, 22995, 15387, 27891, +3865, 4838, 37935, 36671, 273, 38514, 13312, 22737, 3212, 37408, +16947, 38166, 35350, 13317, 28702, 7161, 21742, 35995, 34686, 35996, +21440, 25590, 3845, 34697, 18138, 20068, 20069, 21442, 33200, 13557, +26187, 20074, 34706, 1468, 27067, 27137, 16958, 14014, 24593, 35564, +17718, 5344, 38833, 6062, 22977, 24609, 417, 39076, 39461, 418, +19020, 8108, 20944, 5904, 26307, 24081, 30590, 31094, 19443, 38814, +8043, 7212, 12259, 23397, 23634, 23224, 24680, 34183, 32317, 352, +2452, 16325, 397, 11057, 15404, 6127, 12800, 33431, 5016, 9015, +19605, 20373, 35671, 6189, 13507, 34034, 39242, 16551, 16244, 27786, +34297, 9222, 32703, 9743, 15544, 14864, 25401, 35031, 30257, 38027, +30598, 37006, 4845, 18545, 40731, 19709, 26805, 27794, 12452, 38813, +17894, 5489, 1708, 35510, 5746, 3562, 7391, 4623, 34104, 34762, +10802, 16245, 31726, 2899, 11489, 34950, 39288, 13470, 24851, 26201, +25024, 24570, 206, 9475, 19288, 21693, 37869, 31943, 22183, 7493, +25388, 15757, 27179, 28262, 1201, 14758, 17129, 36986, 32256, 36132, +15605, 4122, 40839, 7303, 11163, 11164, 10076, 8510, 23279, 19502, +25379, 5673, 27743, 31807, 35779, 2611, 26843, 29837, 31491, 21818, +23662, 24672, 13122, 22605, 35137, 13860, 464, 7371, 3176, 33271, +6263, 37729, 23667, 7868, 22452, 20900, 33132, 6839, 14896, 6652, +8998, 36211, 23757, 615, 25787, 25273, 2981, 21707, 7577, 37878, +12451, 24252, 22453, 9744, 10669, 36150, 15033, 26853, 35815, 39901, +31736, 8349, 25380, 11975, 28603, 15300, 37664, 18853, 6952, 30990, +6698, 40761, 21280, 29800, 27093, 20404, 9105, 15367, 18066, 1782, +27752, 9170, 1934, 22460, 37314, 27753, 41252, 2060, 36776, 29272, +12817, 39099, 26986, 27094, 39485, 14633, 28095, 35315, 9821, 19103, +21229, 26486, 4635, 20004, 10928, 2546, 30692, 30880, 19712, 21078, +38758, 14155, 14924, 17673, 33036, 34008, 11296, 4107, 11978, 28265, +36160, 39525, 26899, 28786, 29986, 31776, 25319, 37225, 3573, 35391, +32495, 1845, 36992, 11892, 2512, 27869, 20528, 33391, 13908, 25876, +40432, 21042, 22561, 31248, 9569, 22182, 33375, 32474, 30140, 147, +37157, 1211, 8810, 296, 13903, 2701, 33032, 17943, 36352, 33201, +5339, 4823, 2835, 31250, 39611, 21965, 3670, 31249, 15166, 2945, +4176, 27777, 1462, 21691, 11058, 3975, 22314, 4927, 34848, 41280, +21215, 7926, 2973, 35675, 35384, 29667, 34288, 2407, 15142, 34036, +2665, 26861, 26862, 33871, 38836, 810, 10407, 1267, 26759, 3915, +26940, 1935, 40327, 3612, 37961, 22922, 29617, 23765, 8024, 38552, +18310, 23676, 8025, 17184, 37733, 22461, 34735, 639, 1856, 13696, +9002, 27382, 39277, 20774, 31737, 31738, 5691, 12730, 20815, 28722, +11332, 35577, 27645, 15871, 15119, 871, 29624, 33274, 10684, 13454, +3550, 7148, 19213, 1783, 27103, 20718, 12732, 36163, 15038, 40015, +3755, 32507, 29625, 20641, 16799, 12167, 37336, 33679, 25276, 41229, +39761, 26311, 3624, 32273, 33275, 24967, 22464, 29439, 40160, 32548, +20489, 15725, 34966, 32097, 32187, 33397, 15039, 2517, 16603, 12348, +22579, 25565, 20095, 35332, 36093, 9465, 15431, 37904, 896, 27819, +23650, 15900, 16080, 35731, 29168, 24906, 24154, 33300, 7465, 2933, +30471, 3792, 10846, 4762, 37914, 15996, 6939, 16843, 40514, 24083, +1230, 28005, 23852, 36558, 14101, 24056, 3692, 4026, 17945, 19957, +29292, 11642, 27455, 34588, 30579, 10623, 20425, 15251, 28447, 18858, +16082, 14260, 16472, 37268, 2870, 31808, 30922, 11875, 6928, 24888, +25059, 10408, 29273, 25032, 10031, 23937, 22056, 23888, 27550, 23448, +27709, 2582, 7694, 37535, 20788, 20224, 6637, 20110, 9132, 1465, +30975, 10184, 30576, 16652, 8379, 27343, 18358, 18589, 34725, 27720, +30072, 18006, 19607, 19184, 33848, 22097, 30071, 10626, 20427, 14024, +200, 6122, 36848, 26012, 15331, 23771, 27776, 24, 5913, 10111, +25711, 27110, 15528, 24649, 32646, 38979, 33447, 38150, 29112, 4892, +9272, 10729, 39908, 29679, 18902, 19729, 16497, 30373, 33139, 37858, +938, 28038, 37358, 2698, 6107, 1959, 10112, 12783, 10690, 4681, +7731, 2667, 30374, 39784, 27667, 33765, 11179, 37185, 29391, 8957, +40650, 19038, 33278, 24307, 26722, 10007, 19039, 35141, 3926, 38359, +14434, 32385, 29440, 19512, 23130, 16923, 22112, 25712, 3353, 8620, +17044, 28993, 1826, 40338, 39231, 29757, 18316, 41194, 14669, 2941, +37624, 13164, 8521, 5920, 28960, 2915, 19080, 9832, 18094, 861, +18799, 16936, 23919, 23025, 14743, 20413, 11314, 30668, 17770, 12701, +39061, 36058, 11667, 40133, 12501, 33610, 11726, 28933, 34038, 13293, +18211, 11018, 34039, 25609, 27975, 31196, 16246, 30587, 40605, 14707, +2454, 659, 31457, 19753, 11394, 40242, 23269, 31480, 27790, 6347, +40575, 22600, 20238, 8461, 7450, 4558, 26670, 9410, 18720, 27464, +32983, 34308, 20243, 13435, 27865, 11491, 33645, 22304, 12879, 33866, +31097, 19710, 34628, 24258, 15453, 26540, 19531, 36416, 23111, 17178, +25614, 28410, 11927, 1252, 33442, 8118, 28802, 22126, 20483, 11501, +36419, 32631, 16409, 2367, 10868, 19211, 11424, 17542, 40158, 35330, +18755, 33805, 8432, 27393, 27660, 26244, 26482, 29630, 2703, 16299, +41195, 22373, 232, 22472, 32394, 34173, 40500, 16803, 15385, 15557, +28500, 16066, 6366, 21192, 4209, 40780, 39286, 966, 21563, 40987, +4275, 28682, 6109, 23338, 23782, 40534, 12196, 37373, 13915, 9395, +19588, 2878, 29326, 31599, 17551, 28961, 9236, 4893, 27402, 39118, +18800, 19956, 18801, 11148, 1600, 8294, 16278, 15495, 7414, 31404, +20972, 30414, 11136, 5443, 32109, 22657, 11952, 17638, 7204, 19820, +15161, 36345, 5541, 17553, 9760, 32283, 6465, 29822, 30626, 40933, +8245, 25523, 12393, 7005, 15043, 3210, 29126, 38444, 11114, 34800, +6511, 32002, 37089, 15533, 33237, 11528, 30745, 8246, 38843, 2523, +24183, 26883, 10603, 15956, 29327, 24030, 28141, 17048, 5209, 2706, +17446, 25577, 23084, 1336, 10234, 40664, 10134, 33067, 36445, 37765, +7681, 10302, 494, 20187, 9564, 5291, 20113, 36882, 3159, 21636, +23677, 23681, 31365, 17667, 23695, 11339, 13047, 13046, 4306, 34237, +31320, 14206, 38232, 35390, 7108, 12697, 14120, 5021, 10804, 22140, +2057, 17031, 24606, 32598, 29171, 25115, 15924, 30523, 11404, 18725, +4094, 11493, 24632, 31973, 300, 9055, 28471, 18234, 32102, 17899, +14668, 33041, 20305, 28234, 16169, 12468, 11738, 29892, 39697, 15304, +39549, 12114, 6813, 2299, 31740, 14652, 2851, 14118, 21799, 20080, +7988, 1228, 37441, 3069, 27575, 7416, 34347, 31247, 37222, 1117, +24031, 10780, 29680, 4534, 11351, 35251, 20415, 13171, 6482, 13165, +27809, 15957, 10985, 33772, 6747, 13733, 39120, 1415, 39912, 40785, +33407, 35144, 19767, 22042, 27, 13830, 23882, 19737, 28369, 4965, +715, 32005, 17469, 28373, 15181, 34994, 35258, 21783, 31007, 25450, +28842, 28374, 23929, 17264, 27603, 4210, 1995, 22083, 4919, 1099, +25928, 8522, 40787, 31174, 36442, 11583, 29397, 18273, 15162, 28289, +26129, 27896, 30420, 10299, 39224, 39225, 16500, 35966, 37602, 28867, +21573, 31704, 12742, 8669, 19284, 14723, 27857, 41114, 28375, 32043, +7809, 30991, 20854, 18685, 28376, 21936, 41083, 29879, 33412, 9433, +33894, 17555, 27203, 19434, 20672, 19123, 13930, 40818, 9499, 21681, +36951, 27712, 4926, 40038, 26209, 24138, 34242, 25232, 27224, 18967, +13334, 22772, 2586, 17028, 22823, 30184, 32157, 28296, 5654, 30670, +6812, 14135, 1593, 13655, 2866, 1210, 2679, 21804, 339, 37643, +29495, 31347, 9047, 20526, 22607, 83, 22791, 3419, 16903, 34317, +23945, 22719, 2908, 16673, 38753, 31562, 26322, 1315, 21465, 19251, +27476, 8296, 8291, 7915, 21790, 40730, 13609, 14819, 722, 38140, +27723, 8158, 40996, 35690, 21792, 5022, 32584, 11159, 22660, 16858, +23281, 15445, 40494, 2226, 39716, 31355, 365, 18236, 26312, 1545, +4507, 2801, 12642, 32458, 27611, 36922, 40058, 8629, 30302, 15853, +1359, 30847, 18280, 5593, 25883, 40969, 35525, 18832, 15537, 23933, +4732, 23207, 2921, 28782, 19464, 36584, 2819, 7737, 14175, 1572, +27413, 18578, 33452, 4538, 18407, 38104, 13188, 2385, 16969, 32046, +31632, 15280, 27516, 1073, 38821, 23883, 3283, 18842, 11188, 12409, +23097, 11846, 23976, 22930, 17921, 26056, 33453, 25886, 3284, 16029, +27684, 18346, 21097, 11537, 22768, 28248, 7285, 24071, 24917, 34807, +28783, 32563, 14978, 13394, 41214, 17703, 24194, 16584, 6592, 33155, +38060, 12231, 13071, 39917, 5499, 34179, 36526, 6543, 14979, 21784, +38061, 23122, 29443, 7286, 38822, 6085, 26349, 15137, 12956, 7544, +28253, 18688, 14726, 11850, 37429, 17486, 37825, 22422, 27216, 8457, +32947, 7933, 40066, 7934, 3978, 5020, 15683, 10162, 13294, 8832, +32596, 29068, 18041, 23419, 7422, 26409, 9697, 6723, 27188, 18307, +25005, 30342, 40724, 15450, 32444, 29080, 20298, 11749, 27638, 1488, +8997, 40517, 20396, 13966, 39157, 25615, 8582, 16888, 35838, 12895, +1696, 22701, 19448, 16676, 20716, 25949, 32880, 17674, 38342, 13245, +23826, 24025, 11341, 41128, 34879, 12171, 4075, 38011, 36545, 6054, +12094, 30667, 1683, 30914, 14846, 15346, 18364, 5795, 5029, 22969, +20381, 12702, 7113, 8946, 33476, 34191, 10163, 34930, 19195, 31725, +11603, 17499, 23286, 36319, 23285, 11025, 16050, 34504, 4559, 30352, +40678, 24036, 13201, 40687, 16710, 1380, 29444, 11361, 35270, 6710, +9835, 5334, 14695, 7638, 4971, 36005, 132, 40945, 34141, 5927, +40359, 10563, 40545, 12241, 21599, 10451, 12070, 24368, 1720, 36383, +16032, 21662, 33543, 13203, 13204, 23885, 2579, 39865, 20363, 16999, +16716, 12243, 41139, 15889, 26402, 22398, 16231, 6400, 27608, 4342, +18964, 1585, 834, 18690, 32430, 15807, 18440, 7037, 18641, 13206, +16458, 2027, 12971, 35116, 2751, 32467, 13208, 31665, 9444, 2347, +21609, 16779, 4686, 24856, 22116, 19146, 41122, 19005, 38172, 21612, +15007, 28876, 27335, 16398, 12276, 34758, 33259, 802, 33266, 19503, +34260, 39688, 32082, 31206, 23299, 2875, 3124, 14410, 19660, 37039, +37649, 31978, 21121, 94, 28812, 13912, 11510, 36339, 4736, 4513, +33808, 38765, 23081, 2311, 24812, 18803, 1351, 38105, 30988, 30709, +37919, 28912, 31317, 1525, 23403, 2494, 19289, 17095, 22492, 20292, +35015, 25697, 12979, 3947, 3295, 4482, 32579, 7364, 21992, 40279, +20952, 39632, 39027, 18363, 14318, 22850, 18594, 31947, 32582, 36885, +39553, 30157, 39379, 18012, 9019, 5618, 17107, 6764, 3243, 15315, +16598, 34159, 25235, 39646, 39069, 9458, 23151, 29535, 9255, 14325, +11206, 10542, 9632, 13651, 18971, 14757, 144, 33562, 7329, 9224, +7975, 14868, 40836, 28299, 18035, 3952, 7610, 6350, 23851, 38873, +39738, 36324, 11508, 40762, 1960, 28865, 25430, 1066, 18259, 11353, +16221, 2744, 38784, 2894, 14302, 338, 5980, 24734, 17730, 20053, +19811, 19291, 27457, 26270, 11994, 19812, 34375, 1223, 10077, 1224, +26365, 15130, 15301, 1017, 10670, 25727, 25900, 32178, 32179, 12886, +20442, 31924, 27552, 6288, 38430, 21146, 38596, 22332, 32017, 18068, +1495, 1268, 25728, 95, 9360, 8715, 8716, 7185, 4019, 10724, +9535, 20447, 25993, 16096, 16534, 18861, 29508, 26171, 14500, 37746, +37747, 2800, 24891, 17973, 2879, 26194, 16097, 34328, 30937, 34410, +7000, 11885, 37374, 30938, 32560, 735, 10731, 24896, 35054, 30941, +620, 233, 30627, 36104, 16144, 25093, 19107, 4201, 17578, 9824, +13126, 5675, 14409, 41029, 26711, 20993, 38384, 17538, 16407, 12329, +22814, 14560, 24538, 6500, 4204, 3222, 18859, 2550, 14559, 33870, +19716, 36415, 39101, 7473, 28472, 28282, 33003, 8550, 4719, 8585, +27590, 1698, 25416, 40157, 33002, 13910, 23948, 23184, 3891, 28816, +40162, 10952, 8435, 37750, 24391, 30116, 14941, 24059, 24273, 18670, +41209, 31584, 14509, 37589, 16688, 34411, 17949, 2044, 2567, 36772, +306, 20584, 4624, 26368, 29293, 37875, 17527, 22730, 5104, 12318, +1729, 35916, 25317, 6897, 9085, 15350, 18596, 39557, 35720, 39138, +10841, 17117, 34926, 27057, 39656, 24936, 18711, 38954, 21397, 30483, +16357, 6334, 25027, 7735, 29286, 21574, 28514, 15163, 10437, 25095, +4174, 9368, 6307, 23442, 15911, 28846, 9370, 22725, 15244, 31890, +11847, 2823, 22638, 5330, 11362, 28525, 30945, 28417, 10052, 15143, +6326, 11751, 4953, 11345, 16643, 33160, 8339, 39605, 36048, 34748, +6251, 6887, 26731, 22243, 15505, 37866, 39533, 22486, 3240, 6891, +24683, 5609, 18180, 30068, 1760, 6759, 27223, 6760, 7068, 9574, +36926, 15055, 24090, 33260, 4251, 8172, 31951, 26268, 26747, 23042, +39188, 32332, 5419, 7504, 35750, 6564, 19059, 36066, 14396, 3165, +18712, 26750, 32261, 36074, 40241, 34776, 25366, 31966, 3722, 34612, +36075, 27367, 5526, 30524, 21522, 6565, 4322, 40740, 4602, 18786, +17905, 30785, 12845, 23889, 12763, 12450, 12314, 15192, 5479, 8352, +13023, 38129, 21914, 18016, 2124, 1063, 38360, 22625, 23038, 8286, +16172, 8454, 10254, 28649, 8576, 38303, 33113, 37828, 14205, 10347, +38064, 19609, 37233, 2931, 21315, 23252, 3311, 35183, 2990, 34600, +11601, 2058, 9983, 9598, 33747, 15940, 93, 20487, 29972, 34012, +35095, 31641, 21049, 961, 27044, 15862, 35416, 39655, 40719, 8312, +13949, 39198, 16291, 24617, 12142, 5147, 8212, 2655, 12523, 31679, +5559, 37044, 9062, 13987, 24889, 13103, 13310, 22816, 19557, 9139, +31267, 9225, 12138, 14629, 12881, 22652, 15329, 24149, 25762, 512, +194, 13571, 8350, 34509, 11615, 37879, 31353, 28806, 12568, 5359, +292, 31829, 36215, 25823, 25245, 17893, 29913, 5487, 13468, 28157, +369, 32275, 7617, 21286, 7092, 12197, 5366, 36229, 6849, 18462, +31633, 17220, 17242, 10909, 39401, 35780, 24253, 23668, 11325, 9056, +14775, 10872, 37986, 37067, 3823, 28144, 10132, 31121, 27475, 9431, +3937, 37993, 36582, 12222, 31622, 18345, 16959, 21002, 33942, 38002, +12420, 12421, 20860, 7831, 26004, 20807, 7579, 22125, 37845, 3613, +34736, 183, 31362, 5813, 5306, 11094, 5914, 20820, 3188, 38511, +18086, 23194, 40024, 10693, 38608, 36100, 40343, 30007, 18200, 6215, +36347, 31385, 18106, 18107, 10696, 36105, 8712, 515, 19635, 20744, +4766, 13127, 25856, 27253, 2940, 18855, 23116, 24836, 22754, 5342, +32061, 4079, 6131, 34247, 36065, 15443, 37803, 28116, 3591, 13443, +6352, 5985, 36853, 37539, 9795, 37688, 31081, 25386, 11453, 14089, +25640, 28594, 8884, 40550, 20874, 34920, 23803, 18365, 6195, 15118, +18595, 12804, 26699, 40073, 41284, 9253, 39064, 24765, 39387, 14126, +9460, 6200, 34293, 15760, 25785, 9887, 22661, 39191, 20086, 29992, +19104, 4868, 22172, 30343, 21483, 14046, 34311, 7451, 37017, 40905, +6100, 13129, 4600, 21015, 20247, 30236, 6960, 27381, 3339, 36512, +8714, 18900, 1730, 29013, 39775, 4070, 9197, 19885, 25954, 26251, +19362, 19363, 37891, 18342, 19979, 1717, 31392, 30848, 16149, 31705, +35983, 5234, 29042, 37430, 18408, 5076, 12410, 22134, 34810, 30648, +7746, 31898, 12658, 19926, 19927, 16717, 17367, 12076, 65, 7553, +5079, 18441, 18139, 135, 7751, 17380, 787, 10508, 10504, 10506, +1823, 24344, 29238, 39100, 3266, 24426, 14163, 14168, 29245, 7429, +20264, 813, 29328, 11852, 35278, 6063, 2549, 23760, 25340, 5560, +6448, 31354, 25341, 24260, 21711, 36216, 25768, 20911, 20642, 41105, +640, 35871, 35085, 28954, 934, 12780, 10685, 22193, 1825, 36096, +8726, 28958, 13719, 164, 10523, 8958, 23621, 29477, 36519, 28143, +29392, 33884, 15574, 1050, 28506, 26412, 17461, 17971, 36956, 31479, +35322, 26157, 33135, 26556, 1527, 25784, 14634, 27875, 1555, 1556, +27212, 9050, 9168, 10982, 7467, 12180, 16346, 36961, 22281, 19560, +38580, 14037, 21275, 18229, 35583, 34752, 30666, 6638, 23978, 26921, +10839, 40289, 33853, 28559, 35185, 34768, 31344, 9987, 19831, 2978, +34619, 10936, 37304, 30544, 6502, 730, 33748, 1405, 29952, 18204, +19454, 26380, 37923, 35883, 37368, 7262, 28218, 32285, 14982, 4706, +1524, 5384, 33658, 31587, 17094, 11059, 14188, 11078, 7425, 26995, +27714, 32064, 39548, 24694, 11065, 7951, 41283, 19999, 39382, 4376, +39074, 29355, 23287, 2684, 31825, 40641, 31753, 25207, 28980, 28712, +1789, 16145, 16237, 33061, 674, 7062, 24555, 24556, 10438, 32779, +20829, 12933, 5542, 30903, 28925, 28515, 32910, 22084, 8746, 1368, +16151, 28784, 18538, 9682, 24073, 33911, 12236, 12964, 13260, 2854, +4972, 11124, 32306, 23728, 6402, 30242, 12973, 16399, 30583, 25342, +8038, 19793, 25020, 8727, 30728, 24114, 10015, 2964, 16154, 25534, +37939, 26560, 30755, 8743, 561, 28926, 9012, 37942, 8623, 1369, +30761, 28257, 6397, 30243, 6403, 7956, 14306, 32105, 33044, 32113, +12228, 37985, 16658, 22374, 11536, 36354, 37945, 22392, 176, 36108, +32517, 11125, 35182, 6071, 24404, 15928, 32541, 27562, 9941, 33495, +35477, 33499, 6874, 27848, 15980, 23302, 6561, 12760, 11732, 21822, +21194, 34849, 40861, 25051, 23671, 20443, 28991, 23529, 6575, 19677, +19839, 8537, 37211, 37219, 4929, 33920, 20296, 12099, 8382, 5292, +11987, 3049, 6640, 34244, 40601, 1399, 7701, 7176, 76, 17131, +18368, 38460, 29597, 5622, 16174, 30085, 7964, 33265, 19501, 31960, +23992, 38558, 6202, 21075, 8770, 31099, 23506, 6566, 922, 6102, +3203, 6356, 13702, 5697, 33874, 1442, 38975, 9714, 25924, 24429, +24800, 6619, 5494, 13255, 2163, 19897, 2017, 15188, 39578, 8072, +8140, 33466, 20231, 15581, 6629, 20293, 5089, 26775, 37483, 35432, +28129, 40868, 3413, 20711, 16292, 13004, 5678, 28303, 34200, 21335, +10177, 37315, 30320, 582, 6655, 5571, 5113, 22111, 22924, 18185, +3095, 14099, 16800, 10421, 24015, 6992, 6846, 30729, 32883, 16136, +26680, 35507, 26685, 9874, 6548, 37186, 22835, 16801, 8130, 12784, +29692, 11813, 15952, 12790, 19097, 29553, 3276, 36488, 37813, 10979, +10120, 14107, 29919, 29920, 22794, 16301, 29921, 40794, 40793, 4211, +6112, 16302, 28688, 10129, 23705, 15388, 4793, 33839, 24226, 35516, +25834, 29135, 6853, 7013, 34417, 30986, 15228, 36609, 40396, 34418, +32286, 33193, 35603, 37660, 25931, 5747, 5748, 13285, 15909, 16810, +16585, 22740, 30268, 19405, 4670, 35004, 10303, 24074, 9239, 34139, +34573, 11855, 2855, 25591, 19931, 1722, 28133, 22611, 25709, 27922, +15945, 19664, 15378, 20491, 22733, 3274, 15241, 17907, 9203, 29463, +1182, 25001, 29255, 7323, 39140, 26490, 30357, 29889, 7953, 8505, +9146, 17166, 34516, 22532, 16410, 16933, 12205, 38350, 10363, 9427, +14727, 13841, 8290, 35546, 22904, 38825, 17715, 29836, 4121, 26213, +19810, 2610, 21816, 2109, 28595, 14606, 610, 23741, 7367, 15298, +29701, 11974, 462, 37245, 39253, 9148, 6814, 22953, 2119, 1905, +37712, 20800, 28717, 5797, 27581, 27059, 33858, 28404, 1209, 21225, +22447, 6689, 15326, 16600, 7114, 36835, 3323, 12766, 21076, 35135, +5333, 5905, 36073, 15144, 40145, 6097, 6121, 11165, 24948, 9853, +32307, 22809, 18643, 16435, 21611, 24995, 29546, 14218, 11767, 36476, +36607, 16808, 7702, 1536, 9311, 8028, 31927, 38662, 1544, 25792, +452, 28570, 17813, 9274, 33885, 26436, 14676, 1562, 27680, 30756, +34806, 34997, 27900, 15164, 27901, 7222, 18281, 31710, 18347, 22712, +22713, 18287, 1579, 1580, 1581, 17707, 1615, 26062, 7752, 33420, +34753, 38639, 27646, 34967, 18239, 7418, 7226, 7447, 26918, 2225, +12120, 6095, 27735, 30051, 38585, 29997, 25343, 37295, 14783, 3605, +36217, 7342, 7343, 28269, 36212, 29707, 35479, 41299, 1270, 13774, +28913, 18311, 4401, 29450, 27754, 770, 27096, 6787, 9913, 25346, +29320, 13455, 12781, 1784, 34968, 29626, 26104, 5906, 39263, 26003, +3751, 28767, 193, 25556, 16558, 16264, 28990, 15522, 38358, 17037, +8613, 6840, 4887, 19029, 18309, 15129, 13009, 16487, 24301, 14418, +4, 23907, 21888, 965, 5436, 15455, 16058, 9232, 11948, 22254, +14737, 28663, 40755, 24174, 15157, 27653, 6972, 2518, 27881, 11334, +25, 18570, 23914, 7520, 19726, 20652, 8725, 14721, 20852, 18247, +35894, 12736, 1703, 1554, 28779, 19459, 19114, 36574, 41070, 33882, +5539, 2713, 14952, 23090, 18673, 6583, 16356, 23119, 4682, 23924, +5495, 12047, 40674, 35967, 2578, 1575, 39906, 26663, 4849, 39739, +1124, 40827, 20606, 27282, 18890, 12133, 7866, 16485, 15365, 25293, +4402, 32508, 34837, 14789, 7121, 16669, 31558, 1863, 21177, 6994, +2139, 15091, 6299, 28039, 37068, 27112, 34981, 11904, 9833, 27113, +13166, 40535, 1786, 32395, 2144, 35240, 28683, 7439, 38767, 30831, +9396, 7001, 21837, 37936, 10987, 11530, 11825, 12934, 10782, 116, +28838, 7588, 30839, 9199, 2524, 27855, 28844, 1996, 8564, 31878, +16019, 18343, 27897, 28965, 35262, 37862, 20549, 28848, 19402, 1360, +37419, 33413, 13924, 25890, 16030, 40446, 26351, 3656, 5235, 35998, +12232, 25241, 3286, 30862, 32519, 38627, 7589, 9925, 19928, 34698, +20561, 2752, 32520, 19148, 38118, 21046, 6088, 30031, 6761, 10356, +16668, 31448, 6278, 15060, 9823, 9164, 39162, 12594, 26032, 21381, +8256, 25210, 9503, 13426, 10271, 31529, 22940, 5956, 11079, 36616, +14253, 37477, 758, 39189, 9090, 6134, 18597, 24769, 3411, 27631, +7083, 39689, 9260, 33385, 18972, 1926, 16878, 9165, 37297, 32180, +29085, 31274, 20285, 159, 858, 4297, 10951, 6975, 4397, 19727, +31369, 35088, 12919, 36349, 39042, 18338, 17687, 13385, 14360, 37397, +11117, 18828, 9440, 21152, 6055, 13563, 17097, 26297, 17109, 36742, +8389, 15351, 5144, 38494, 22211, 40297, 33796, 12706, 34217, 35443, +39706, 16557, 31351, 4847, 32175, 26106, 40203, 7516, 9229, 30705, +37175, 36937, 5107, 16194, 35862, 10766, 2638, 18568, 12820, 25980, +35205, 1937, 7616, 1950, 21282, 1290, 1975, 29821, 9950, 7440, +12935, 170, 125, 32123, 37814, 7640, 22783, 33149, 19276, 37296, +7765, 10092, 5562, 30105, 38964, 3489, 34066, 40328, 39430, 22290, +33187, 25381, 25789, 37884, 30930, 39493, 5200, 18862, 36783, 1951, +773, 14917, 30113, 35872, 24728, 23137, 24735, 14195, 22958, 38840, +37513, 22264, 40102, 14649, 40339, 21794, 14436, 22468, 38141, 12840, +18087, 39163, 28573, 8228, 34840, 26988, 1312, 30177, 30115, 27762, +18248, 19311, 22681, 28963, 39804, 25436, 29019, 6213, 34006, 24914, +26641, 14196, 7123, 9917, 1976, 40167, 36102, 19221, 40125, 5214, +33052, 18264, 14517, 27832, 24227, 19517, 3629, 20649, 585, 12358, +11517, 1550, 19168, 36485, 38565, 18390, 36228, 3774, 595, 16306, +35956, 5830, 22588, 5753, 24842, 35768, 27821, 31432, 24447, 40551, +1432, 35025, 29409, 6290, 15366, 37052, 34000, 14645, 37184, 36038, +2572, 20880, 25325, 13852, 19779, 22106, 5246, 12765, 8643, 15501, +17411, 3337, 17504, 13007, 1594, 3953, 29186, 1264, 14423, 6681, +4910, 930, 771, 18901, 1444, 16343, 3551, 39023, 23974, 25584, +22115, 22562, 33469, 15031, 4810, 13849, 16729, 40830, 3035, 27742, +11947, 16618, 28771, 21959, 18522, 13279, 21780, 20688, 5976, 6058, +5098, 18045, 21633, 9263, 16009, 314, 28659, 9931, 23258, 10169, +16502, 10130, 29824, 33773, 29962, 15097, 6879, 3389, 33238, 44, +18826, 40502, 40031, 26561, 22683, 16070, 28966, 16279, 40937, 15473, +23358, 23359, 34671, 7441, 25958, 34552, 8748, 35057, 31396, 22695, +4539, 22696, 23789, 7442, 11538, 23786, 11956, 37103, 29140, 24978, +32011, 40939, 15959, 25526, 27683, 9280, 30126, 9553, 27904, 23717, +3373, 39847, 18283, 22396, 29028, 31711, 2394, 6389, 34687, 37606, +41017, 25960, 26352, 16984, 39857, 27480, 18844, 31712, 19126, 38774, +20680, 384, 2242, 1582, 4541, 24753, 1377, 39858, 37440, 33542, +11190, 1871, 28088, 32684, 17925, 38738, 6627, 18293, 30129, 2485, +5839, 13401, 29446, 34699, 19139, 38629, 13677, 10393, 36474, 15361, +10091, 6993, 40392, 21564, 19373, 25926, 10300, 25587, 22803, 10826, +23745, 24577, 12435, 2634, 11597, 8767, 19846, 7969, 22505, 25699, +32259, 10209, 13805, 8983, 6261, 36203, 3410, 9936, 9095, 10383, +17152, 36758, 25147, 38497, 24534, 18048, 3253, 36897, 24473, 12769, +21079, 39712, 27639, 24713, 29501, 16128, 23288, 13351, 34782, 20715, +26716, 38911, 26429, 31213, 16892, 3913, 8020, 23906, 24361, 23319, +31552, 37333, 7434, 9828, 9753, 35868, 22534, 29389, 24966, 30283, +16492, 19953, 4233, 25428, 21021, 8049, 15948, 15382, 8224, 27886, +37064, 36789, 18523, 24648, 1410, 19584, 24278, 315, 19428, 19536, +14076, 36021, 35279, 30062, 22784, 40121, 34707, 18448, 18873, 29040, +32468, 12673, 27493, 14542, 31720, 11304, 17015, 1588, 25375, 36062, +1528, 33207, 24212, 40895, 27991, 15937, 27478, 30682, 30697, 30698, +37024, 8466, 35819, 246, 815, 935, 4358, 29155, 24016, 15736, +29943, 8848, 22677, 37095, 28170, 2009, 32675, 685, 2010, 4362, +20554, 17705, 18541, 32681, 38137, 29160, 1739, 15792, 18644, 8546, +24104, 15306, 24086, 16586, 25990, 16055, 5563, 7405, 33398, 25151, +5201, 16063, 1731, 7199, 22469, 7201, 29197, 818, 1313, 19586, +8053, 7093, 25437, 24738, 8923, 16139, 22377, 40368, 26439, 28322, +29211, 17245, 1733, 5589, 22386, 27812, 19324, 37592, 31597, 3435, +28830, 22151, 27123, 11527, 2383, 22709, 28833, 31609, 32559, 39911, +38769, 27451, 19589, 22381, 11833, 22081, 26342, 12058, 19961, 2722, +17476, 20359, 16983, 6472, 24855, 7821, 36334, 24432, 32038, 27056, +40187, 36976, 12286, 6409, 12118, 12992, 38869, 40835, 11074, 24461, +22955, 4944, 26751, 38242, 9023, 17147, 27739, 29377, 12711, 1400, +3414, 15607, 1236, 32263, 34383, 24954, 39268, 37850, 27087, 8533, +21996, 26427, 32728, 24425, 38258, 24171, 40330, 25747, 23769, 30168, +1282, 5110, 15555, 37506, 32634, 39110, 16008, 11511, 10770, 9007, +7480, 17215, 1322, 3497, 28060, 20348, 6244, 18804, 6510, 9614, +39292, 40940, 27569, 13063, 30155, 11002, 16215, 23376, 17484, 39170, +22397, 19315, 25863, 19407, 19408, 26078, 33544, 17853, 23722, 23721, +21041, 16153, 21665, 1740, 25215, 6279, 6298, 21147, 10734, 31879, +6311, 10041, 6314, 6313, 14283, 37454, 37458, 34662, 8135, 24284, +9551, 40942, 18348, 9555, 26389, 19787, 12569, 23305, 8301, 33508, +37395, 29925, 23199, 17620, 8414, 22714, 1371, 12465, 33540, 3871, +34579, 38630, 37001, 5346, 25275, 13697, 507, 10686, 30054, 5915, +12455, 33691, 6848, 6974, 26121, 10179, 30003, 20655, 13824, 26681, +619, 37586, 22538, 18666, 30933, 10963, 18605, 37965, 7383, 7624, +20916, 36790, 22697, 20699, 10431, 31997, 5831, 38057, 5467, 2037, +16311, 40113, 36965, 36980, 3681, 31817, 21511, 21826, 4090, 26219, +35562, 1130, 39896, 612, 7402, 8763, 18599, 40200, 38243, 31509, +26428, 30708, 19952, 27173, 2382, 3703, 19907, 24211, 21452, 12715, +24639, 26114, 1366, 5524, 23966, 28307, 13713, 28774, 31594, 32071, +20083, 414, 17149, 29419, 31505, 40738, 2301, 17891, 40979, 25873, +10771, 38055, 4399, 33577, 25518, 24665, 13316, 8783, 12571, 35714, +18044, 31506, 40331, 7474, 13033, 22655, 10426, 35944, 20109, 39476, +23313, 23431, 34982, 5417, 7863, 24748, 14256, 14416, 17806, 40753, +38082, 21010, 39022, 13229, 27065, 6061, 8391, 40079, 35569, 9101, +24739, 10012, 22474, 18097, 30121, 1868, 24656, 22889, 8067, 1330, +4434, 30832, 14439, 5873, 483, 36797, 9720, 22475, 21379, 33232, +28576, 821, 8240, 38476, 14659, 9115, 27151, 6221, 5080, 28509, +13734, 27271, 10817, 32514, 7095, 235, 30628, 38899, 40168, 36289, +17824, 19223, 29642, 29156, 35953, 1816, 30746, 13381, 15668, 9545, +32115, 8740, 11682, 16638, 8284, 15333, 33455, 6708, 15044, 29136, +20259, 26441, 38477, 28323, 24228, 37096, 21180, 39002, 9723, 8850, +28094, 31233, 24659, 26252, 23056, 11441, 29396, 17056, 26130, 26131, +15336, 19903, 3399, 17395, 41036, 31910, 36658, 21256, 40797, 23364, +39302, 32515, 21181, 4279, 12643, 5878, 4639, 30102, 32090, 20509, +39582, 34638, 26182, 3352, 29809, 16798, 16065, 22241, 10978, 29121, +33582, 9893, 28837, 16579, 2068, 13546, 31631, 14688, 17059, 34022, +26968, 4858, 6630, 24482, 33930, 4663, 1665, 801, 28403, 12998, +7862, 23898, 39479, 7867, 26227, 17167, 30098, 12723, 2034, 28562, +15979, 24000, 1265, 32270, 32089, 12155, 13354, 17585, 12586, 4300, +11256, 3495, 39780, 5781, 1958, 39498, 13156, 6006, 4071, 39940, +14571, 6705, 4837, 22679, 25520, 21567, 22076, 23197, 3940, 14969, +23121, 7278, 4666, 40220, 17985, 2743, 17851, 41120, 33095, 39614, +5862, 20633, 33390, 20668, 22547, 10914, 14873, 26370, 9097, 40748, +24192, 9238, 40057, 6162, 16280, 7542, 21258, 35985, 16071, 18835, +14364, 2883, 14067, 19081, 18117, 41015, 16970, 19962, 40943, 39849, +21382, 11138, 37474, 5723, 26886, 26646, 11915, 29142, 10784, 33241, +40178, 16222, 40944, 38324, 1420, 1421, 11442, 24981, 38328, 30565, +30566, 37107, 4242, 25528, 6021, 11543, 17561, 34563, 24557, 24558, +13064, 1102, 7022, 34809, 8264, 25836, 8445, 31937, 30156, 11005, +27154, 25754, 33899, 30905, 23876, 10304, 31176, 7386, 25963, 18290, +19285, 26955, 26890, 9373, 40801, 29032, 28435, 35005, 6868, 36612, +23794, 23378, 30906, 25756, 26727, 17487, 327, 16666, 11654, 20462, +12659, 29403, 24756, 12965, 26648, 19412, 8908, 28025, 39776, 40750, +24435, 14149, 37000, 17169, 30924, 29509, 12588, 22292, 7437, 26174, +36182, 64, 25888, 19335, 3218, 14563, 731, 29387, 40764, 15491, +37187, 4330, 31123, 20229, 37561, 30127, 40491, 28277, 14761, 14424, +19214, 24818, 3839, 24486, 18977, 31375, 38094, 20727, 380, 18272, +953, 33148, 36769, 7382, 479, 22877, 21376, 18603, 27945, 8202, +10811, 28566, 9537, 13707, 30717, 7090, 12589, 13361, 32509, 34070, +8847, 16924, 17443, 12917, 26948, 29394, 9716, 26123, 11432, 12599, +24364, 18098, 41012, 7438, 16067, 2880, 9237, 21253, 21380, 5874, +26880, 40783, 7676, 6011, 7008, 24553, 8248, 11531, 1417, 25956, +31715, 24661, 1614, 12660, 12652, 40222, 13261, 33418, 40398, 36595, +38775, 15282, 33947, 1639, 37445, 24757, 32567, 1873, 13500, 34093, +28089, 11549, 41216, 26359, 26360, 7227, 9687, 17926, 34094, 20291, +31766, 38367, 32572, 7683, 9379, 10821, 15783, 38329, 25965, 38632, +8450, 9689, 36528, 17065, 2925, 16823, 27421, 136, 25593, 12671, +33719, 11129, 27422, 17374, 17863, 17379, 20368, 39123, 32521, 7041, +18646, 9445, 17016, 32142, 5345, 12445, 29998, 426, 10409, 36777, +38464, 480, 22529, 15322, 29627, 38321, 10814, 15767, 38468, 15040, +36653, 23340, 26642, 1098, 2919, 29128, 30902, 30562, 24975, 13253, +22153, 12943, 30850, 31707, 11122, 8447, 320, 23360, 28431, 9369, +34995, 16664, 1613, 33946, 19404, 20460, 36585, 9680, 26353, 41215, +17061, 4955, 34738, 4961, 24058, 19395, 12942, 14445, 25524, 9011, +950, 13816, 29689, 15659, 9182, 5632, 10776, 8729, 15390, 1345, +18536, 23613, 15791, 1737, 6399, 19795, 454, 34537, 17617, 32653, +30495, 3445, 32500, 34649, 29454, 28929, 36594, 1530, 16059, 19580, +25155, 29393, 12615, 40782, 33404, 24977, 14279, 1738, 11366, 17861, +20536, 11640, 20032, 12454, 15041, 40257, 20035, 23370, 321, 26567, +17928, 5071, 4034, 36859, 32009, 35352, 24749, 6390, 16977, 24394, +2292, 242, 7631, 36911, 31238, 34580, 31658, 24657, 9952, 38408, +38628, 9399, 21453, 35578, 8030, 17185, 14271, 2065, 34631, 8104, +5864, 12158, 7797, 25627, 8406, 26868, 7799, 20490, 774, 37508, +39434, 11106, 24269, 7884, 587, 30934, 12918, 26875, 37362, 7833, +34907, 14936, 14937, 22582, 11288, 39220, 777, 34650, 34171, 39346, +7374, 7800, 30935, 21929, 5065, 8662, 25573, 18099, 20341, 8054, +30122, 20414, 17227, 1448, 39806, 8663, 37514, 4411, 24806, 32654, +3438, 5216, 14440, 35051, 9116, 6156, 37376, 34743, 25501, 34175, +29442, 37377, 29346, 36348, 6539, 31171, 7096, 9278, 106, 39437, +34667, 10557, 32662, 12792, 17825, 40169, 34801, 29129, 10697, 19224, +25581, 20729, 8668, 25279, 13382, 33409, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +40029, 39438, 19225, 10566, 21435, 7044, 18979, 12793, 12634, 29826, +11292, 30153, 2085, 31234, 14724, 37412, 1998, 15099, 34135, 1097, +31624, 15100, 14523, 29759, 14066, 29137, 6856, 6857, 15846, 10996, +31301, 26645, 16307, 13559, 22117, 18836, 22550, 27277, 8081, 175, +40680, 22394, 24285, 23713, 863, 5879, 18837, 25110, 12949, 14530, +29845, 34178, 37520, 23367, 16971, 35267, 40504, 15559, 6800, 16072, +26766, 23368, 14068, 35986, 35987, 14069, 40798, 16281, 6163, 23208, +4298, 8819, 14448, 14971, 36043, 41234, 12229, 27414, 36362, 3657, +20289, 25529, 177, 24560, 29143, 11006, 29144, 7024, 13602, 19593, +8083, 4244, 29828, 34564, 10448, 37608, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +22659, 16075, 19743, 11007, 36363, 4132, 31398, 14533, 6222, 2338, +7408, 10501, 36379, 37609, 32131, 31011, 26891, 10502, 3941, 28852, +32013, 25757, 18291, 12415, 9126, 12963, 28290, 10141, 4416, 4417, +36010, 35108, 34689, 12237, 17326, 29289, 15623, 29059, 29060, 36011, +29830, 19286, 13399, 8570, 29290, 3199, 12416, 29883, 39048, 328, +35059, 35358, 21939, 3660, 39863, 18350, 36596, 18872, 1381, 27484, +40690, 37117, 31240, 14995, 36187, 29148, 27691, 13402, 36022, 11192, +1384, 36387, 28090, 11550, 7292, 13403, 17709, 34700, 8572, 14368, +32237, 32238, 29831, 19342, 41217, 37447, 36389, 18849, 29884, 32239, +33943, 36028, 22640, 3966, 19142, 31662, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +35537, 12249, 38294, 37124, 38633, 35282, 34813, 22641, 21666, 11130, +20073, 36392, 19938, 5601, 37787, 37448, 16781, 835, 18647, 10505, +18449, 27494, 37792, 36393, 9446, 24860, 17017, 19012, 26832, 2323, +32599, 18029, 33922, 10547, 40000, 31207, 16060, 23678, 8811, 37505, +28014, 10416, 24541, 35900, 31004, 18250, 12368, 35901, 35342, 11354, +38616, 19904, 27485, 18654, 13868, 18100, 13065, 32232, 4863, 13075, +13088, 34445, 36693, 4619, 22196, 4620, 22198, 40345, 12936, 20034, +37204, 18276, 3194, 15045, 17915, 21261, 14365, 15046, 14072, 17290, +32460, 32233, 12744, 20051, 17327, 38777, 14077, 23387, 18161, 34452, +4621, 19353, 10417, 3027, 7886, 20271, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +20255, 7892, 22222, 24895, 24742, 20730, 7896, 32406, 16282, 20277, +3667, 7754, 24736, 20274, 19682, 20700, 41016, 21847, 7642, 11495, +13869, 9467, 29242, 29710, 11236, 15876, 10701, 3449, 10509, 35902, +5156, 31861, 29975, 20648, 23785, 5783, 34553, 19769, 34565, 37769, +5276, 34340, 34436, 34570, 5164, 39173, 5078, 2293, 35360, 19747, +38689, 34586, 6407, 18648, 7649, 20249, 37598, 4665, 24898, 3012, +30206, 40179, 39445, 19935, 330, 1640, 30133, 1389, 2995, 20154, +6078, 40770, 9172, 6161, 7634, 37524, 2887, 8571, 23556, 37525, +28785, 29004, 27305, 7534, 30943, 459, 5877, 30125, 39914, 24823, +26765, 26951, 26954, 29519, 21433, 14075, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11912, 14540, 34575, 29760, 27694, 32423, 16727, 35053, 31389, 31393, +10739, 33091, 7036, 33454, 31036, 38409, 21756, 21062, 23322, 38528, +12635, 40799, 12238, 12246, 3553, 3224, 3226, 10441, 34205, 36183, +33078, 736, 38291, 33083, 2630, 3446, 34566, 14576, 29401, 18123, +18108, 3895, 24985, 33087, 15498, 21591, 14367, 35058, 4340, 16100, +37209, 3965, 35608, 21262, 38293, 41020, 24876, 37896, 34584, 21943, +7039, 31132, 36032, 4365, 41021, 5760, 3967, 14013, 34282, 10385, +36151, 18392, 22154, 8928, 22155, 34567, 18425, 18468, 8932, 15196, +4974, 18176, 4975, 9547, 24565, 1643, 4220, 10453, 15000, 32926, +37452, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 2943, 0, 0, 0, +34283, 40083, 40059, 5335, 13769, 0, 30248, 10042, 10036, 32719, +33204, 40088, 40064, 0, 8490, 15739, 27837, 27816, 0, 0, +8495, 15765, 28443, 21682, 0, 0, 0, 18491, 2281, 27009, +3767, 0, 25309, 25349, 0, 490, 481, 37470, 40377, 24481, +16023, 16013, 0, 33128, 34696, 14161, 24389, 0, 26344, 35138, +22923, 26345, 40586, 26350, 15008, 30967, 39341, 4069, 39342, 0, +0, 37116, 36290, 4243, 24559, 37115, 29033, 26876, 13384, 17826, +14071, 14534, 29061, 22643, 34568 +}; + +/** + Weight array for one range of 4-byte gb18030 code points, + which is [GB+8138FE38, GB+82359232]. The sequence NO. of this + array is the diff between the code point and GB+8138FE38 + The weights would be 0 for non-Chinese chars +*/ +static const uint16 gb18030_4_weight_py_p1[]= +{ +36865, 34286, 36250, 25280, 14183, 0, 5349, 2049, 32720, 31179, +30440, 30441, 31180, 27773, 34914, 12676, 12467, 33203, 27209, 28151, +0, 25382, 25370, 37683, 5007, 0, 20420, 27553, 27554, 1590, +38908, 38905, 23963, 25028, 0, 20832, 27001, 27140, 27700, 27701, +8523, 30497, 30496, 0, 0, 0, 37469, 25536, 14543, 2399, +2401, 2402, 11031, 36045, 31667, 31911, 13211, 0, 0, 34455, +954, 3057, 4305, 4307, 4344, 8141, 13886, 2926, 2927, 38795, +19828, 0, 8142, 37136, 24373, 30655, 35287, 7756, 7448, 26958, +0, 26959, 26960, 0, 19287, 9142, 9618, 37127, 21479, 18693, +19371, 11552, 20260, 23390, 23391, 3560, 3561, 18452, 18453, 9563, +9562, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 24521, 29334, 0, 0, 15728, 31241, 36195, 0, 0, +0, 0, 0, 35364, 0, 0, 0, 0, 0, 0, +0, 0, 0, 32822, 0, 0, 0, 0, 0, 3784, +0, 0, 0, 0, 21876, 0, 0, 5101, 0, 0, +0, 33596, 33250, 0, 33318, 18208, 17932, 32447, 36575, 33159, +39126, 5008, 31306, 22044, 0, 0, 19271, 23838, 35626, 36112, +21185, 3391, 7688, 0, 0, 0, 40566, 7389, 331, 31246, +41273, 0, 6183, 27967, 35664, 24446, 15809, 16783, 21101, 40276, +27217, 0, 0, 0, 33556, 0, 0, 26587, 13796, 5939, +21851, 27970, 35692, 18472, 36505, 1032, 0, 0, 0, 16329, +20281, 35724, 17119, 12512, 37146, 19102, 2618, 0, 0, 0, +11890, 33564, 11737, 25244, 0, 0, 10079, 31809, 28602, 34936, +11741, 15068, 19296, 19030, 28797, 34945, 38877, 38522, 37170, 40635, +7147, 25190, 23428, 3615, 31275, 10093, 28860, 26009, 0, 24484, +16672, 25790, 0, 0, 15981, 23075, 28485, 27288, 34740, 21957, +28571, 0, 20201, 36284, 5917, 37188, 20342, 15095, 21468, 33053, +36804, 0, 0, 3114, 7739, 16764, 17312, 0, 19178, 0, +12474, 0, 0, 0, 0, 24920, 0, 2177, 17602, 9131, +19616, 0, 9288, 28180, 0, 0, 19637, 19377, 24908, 27082, +16987, 0, 30455, 15596, 6442, 39213, 29456, 0, 0, 1795, +11983, 6186, 8967, 3241, 0, 24208, 14208, 18707, 33296, 0, +20988, 32977, 0, 1247, 13698, 27982, 0, 8873, 0, 36867, +33243, 23582, 22487, 5787, 8094, 19183, 23585, 23586, 28765, 509, +8386, 4370, 33727, 16507, 0, 0, 26502, 0, 16852, 11204, +29685, 22648, 5522, 25647, 6916, 24152, 35782, 40576, 25702, 12874, +0, 3607, 3724, 31537, 0, 19034, 5456, 17887, 14904, 28016, +32765, 38088, 0, 0, 40251, 38663, 12920, 41030, 4048, 33045, +17228, 0, 3655, 31708, 12976, 0, 12256, 0, 7486, 3971, +1002, 13628, 0, 438, 17605, 15759, 0, 31919, 1618, 14906, +16686, 33192, 556, 34841, 18949, 901, 6930, 18657, 0, 0, +3081, 21864, 33791, 10537, 37154, 0, 9603, 35822, 33832, 8982, +18560, 29048, 16642, 27004, 0, 28279, 35062, 32052, 41026, 0, +25041, 36113, 31410, 39530, 12747, 11047, 16155, 35555, 15424, 7843, +24240, 73, 0, 15446, 3908, 32931, 3917, 30550, 0, 0, +11381, 27973, 36893, 0, 15088, 38847, 33587, 26966, 0, 27425, +15989, 27473, 10410, 8359, 34456, 24566, 26572, 11197, 31412, 7308, +22162, 5135, 7390, 8878, 275, 8088, 21154, 33949, 36722, 11155, +0, 3147, 9770, 20836, 11199, 17092, 7165, 32576, 23029, 0, +27716, 0, 0, 16654, 17956, 35694, 10790, 0, 33606, 24763, +7069, 0, 0, 34033, 0, 0, 0, 0, 21504, 30669, +32956, 29066, 10643, 30012, 21505, 21506, 36128, 39066, 0, 0, +0, 0, 0, 27181, 21877, 35186, 23259, 29715, 9980, 15062, +6166, 11869, 18713, 14397, 11996, 18030, 0, 29298, 19060, 0, +0, 0, 0, 0, 0, 8689, 34307, 26930, 33926, 22296, +4284, 21686, 6725, 38245, 6932, 32852, 36688, 6933, 26778, 30958, +15647, 10920, 8691, 31968, 19438, 19028, 12309, 10747, 39691, 0, +0, 30250, 0, 564, 80, 40497, 23670, 9046, 5193, 852, +1927, 3888, 17172, 32763, 33440, 0, 0, 0, 0, 0, +10680, 29187, 4641, 16133, 16560, 39740, 32807, 31539, 0, 24167, +38388, 31540, 0, 0, 4561, 12349, 12022, 28425, 34399, 33682, +22926, 25838, 0, 0, 0, 9757, 35227, 32511, 33907, 10422, +41301, 35904, 4403, 0, 16824, 32211, 28587, 25438, 35935, 39825, +31615, 32218, 14677, 12395, 0, 22223, 17267, 0, 16368, 25840, +10040, 34431, 24752, 0, 34443, 15197, 3559, 21492, 11979, 0, +1172, 31941, 31012, 33794, 30282, 36805, 24230, 33590, 21496, 1163, +10248, 14084, 350, 351, 0, 0, 39055, 28613, 14457, 0, +41277, 2097, 13637, 72, 38142, 4371, 7166, 0, 0, 0, +0, 21507, 18325, 19697, 6562, 656, 1197, 759, 0, 3990, +32027, 29300, 2897, 0, 0, 6674, 30527, 8181, 6726, 37162, +35158, 15931, 30683, 15761, 0, 30528, 34898, 18458, 33213, 40382, +3480, 32858, 21533, 16512, 35327, 40911, 19381, 38812, 32033, 9727, +32868, 0, 12590, 17665, 35876, 12350, 36167, 0, 4912, 35877, +33029, 10289, 36654, 15221, 2841, 28575, 28824, 39505, 823, 19881, +15953, 2715, 16752, 0, 31881, 0, 31636, 24121, 21055, 37799, +0, 18361, 8159, 40889, 0, 9135, 15124, 5866, 11221, 15984, +0, 8574, 28976, 0, 26261, 16285, 21498, 7921, 8575, 24130, +626, 12691, 15541, 31787, 37252, 40493, 26668, 4317, 32618, 12457, +21788, 32693, 35629, 36948, 35370, 34459, 26656, 25173, 10249, 25779, +15020, 36724, 0, 33150, 22231, 24528, 2652, 0, 2098, 6126, +27717, 7107, 0, 19604, 37900, 12101, 0, 24079, 33324, 22181, +3898, 22313, 21867, 13638, 35306, 7137, 6762, 0, 0, 0, +6718, 0, 0, 24146, 18881, 24595, 27912, 2296, 6272, 31452, +7703, 35729, 28295, 24125, 22971, 33120, 29656, 33172, 36745, 895, +18476, 0, 0, 0, 0, 37836, 16854, 28450, 16403, 19420, +23965, 40041, 34606, 31471, 18715, 31472, 25969, 7337, 0, 30684, +7197, 35784, 21114, 3254, 28748, 12131, 27368, 22663, 151, 15714, +2508, 0, 32173, 39694, 0, 0, 7716, 17530, 34053, 33655, +20136, 11755, 20809, 36550, 38650, 35823, 21775, 28800, 31519, 37846, +27377, 8010, 35824, 4952, 0, 17423, 2365, 2231, 14639, 18749, +28017, 21197, 366, 198, 23858, 0, 4714, 4498, 0, 25153, +21401, 19327, 33153, 37744, 20929, 375, 26635, 19310, 0, 0, +16445, 31603, 37756, 39827, 31026, 11259, 19980, 21470, 30387, 20046, +21583, 24828, 38108, 17567, 39523, 40813, 9869, 33591, 10252, 33728, +39640, 20233, 4260, 9048, 0, 4272, 18997, 40268, 27164, 17711, +14310, 32928, 6089, 13783, 25385, 19479, 0, 15429, 35019, 21630, +35399, 16467, 36600, 36130, 34367, 27983, 0, 17877, 34166, 19564, +20474, 41173, 37163, 35785, 9049, 20093, 15076, 30962, 0, 15261, +5816, 18380, 0, 33283, 4778, 24054, 20207, 19982, 24314, 0, +30305, 5423, 74, 0, 1478, 21759, 17424, 13909, 36920, 4190, +41266, 2032, 11592, 35064, 29936, 12529, 146, 19197, 12441, 30685, +1850, 37960, 33656, 21385, 37898, 0, 460, 38925, 14378, 30664, +32951, 23466, 35400, 32952, 4373, 24596, 6325, 21482, 23493, 12446, +29898, 0, 27814, 5818, 16564, 38678, 0, 0, 36110, 2451, +12425, 11715, 40815, 16324, 21064, 14584, 24318, 5011, 0, 13616, +33555, 4477, 36663, 6252, 3455, 0, 20424, 11476, 28176, 15403, +41045, 10253, 3293, 33953, 21214, 3574, 17400, 208, 20757, 27621, +32473, 34760, 11158, 4875, 24597, 16550, 7959, 6563, 19494, 16468, +30137, 9977, 19524, 1897, 25113, 23247, 9978, 0, 18478, 0, +29375, 38237, 23261, 38085, 20003, 22249, 38699, 32534, 8526, 0, +23262, 0, 18716, 0, 37912, 6935, 6477, 20392, 30530, 24950, +27918, 20393, 29743, 0, 20507, 35034, 14897, 17174, 15763, 8530, +37567, 4989, 0, 16561, 18510, 23859, 302, 1595, 36557, 19532, +5360, 0, 303, 0, 31687, 8042, 5116, 14346, 25729, 29629, +24729, 6977, 23181, 12351, 12352, 11174, 13532, 41190, 1597, 19875, +555, 30730, 35591, 376, 37199, 10232, 6579, 31117, 21355, 4687, +0, 16951, 18614, 21471, 11260, 17272, 0, 18958, 7743, 20102, +37455, 0, 14579, 0, 0, 38646, 22337, 35545, 0, 12530, +1111, 0, 25306, 11449, 7232, 8673, 15680, 13786, 26081, 0, +27617, 29579, 37476, 40706, 1174, 15724, 17103, 11457, 34035, 21868, +0, 38940, 30977, 32162, 23597, 35133, 19638, 0, 0, 27370, +0, 23997, 40553, 16048, 31349, 36316, 4153, 29087, 17415, 1084, +8999, 19508, 33000, 7798, 18511, 38156, 39343, 3921, 19456, 18389, +0, 36291, 22776, 39352, 12952, 18986, 21490, 35789, 0, 12570, +12370, 38541, 37133, 14291, 11307, 39537, 16158, 18004, 39544, 970, +38487, 14380, 5171, 17736, 35700, 38864, 32327, 3580, 4445, 3522, +34474, 16469, 6273, 18479, 2678, 0, 29904, 2541, 51, 3534, +0, 36470, 38957, 29687, 0, 29907, 2554, 35039, 40959, 0, +22048, 24107, 17433, 24270, 18668, 34652, 15303, 27951, 35988, 2650, +14203, 13272, 0, 14164, 0, 6190, 0, 14747, 10050, 5640, +0, 0, 10619, 0, 3460, 5847, 1176, 0, 34103, 18591, +0, 32831, 1186, 0, 1198, 0, 32163, 25700, 1674, 7115, +14769, 0, 39204, 919, 6955, 37181, 24793, 38090, 20052, 35673, +27763, 0, 0, 0, 26295, 28555, 20801, 14145, 1483, 25415, +2487, 2305, 6052, 0, 0, 0, 0, 5547, 29654, 28441, +33255, 27781, 6687, 31791, 28889, 0, 29067, 26300, 13115, 39661, +30521, 36259, 0, 0, 11371, 39929, 23494, 40900, 0, 32993, +33001, 38255, 30607, 0, 0, 28492, 38604, 21676, 0, 0, +0, 35635, 25282, 27339, 2581, 40591, 0, 20227, 12270, 7378, +22271, 71, 7312, 333, 24321, 23569, 32744, 7560, 8378, 23987, +8637, 29582, 2653, 36875, 8538, 980, 8154, 3974, 40278, 0, +0, 10161, 21618, 14844, 3672, 2588, 15566, 17780, 17104, 37232, +0, 36971, 9900, 17105, 10743, 8940, 15436, 37638, 5425, 11725, +0, 9489, 14211, 41293, 8167, 24153, 868, 3077, 4383, 19496, +9932, 31797, 24599, 11555, 0, 0, 3787, 25894, 34298, 39467, +5430, 28986, 19830, 18033, 27183, 29949, 2249, 5968, 3082, 22350, +35320, 14473, 12532, 16259, 29301, 37645, 0, 2196, 23154, 37255, +17409, 4490, 0, 0, 0, 37008, 12313, 30794, 20088, 28191, +32853, 33483, 3598, 24624, 11759, 0, 37009, 24163, 27559, 27539, +6728, 18500, 0, 22147, 28604, 36218, 25946, 7469, 3131, 37568, +35467, 11925, 26010, 35208, 20446, 7647, 10395, 0, 36274, 2433, +21339, 372, 7770, 17434, 2911, 2788, 19256, 5933, 10867, 18752, +0, 35878, 11175, 38393, 10880, 6978, 12023, 28284, 21342, 32379, +16915, 32380, 34653, 18386, 19835, 13870, 12200, 0, 1453, 37202, +12035, 20306, 3833, 19331, 0, 16662, 13739, 30853, 35989, 33776, +31882, 2289, 16370, 36241, 33081, 37971, 19177, 18153, 23736, 11981, +12853, 31060, 0, 0, 8682, 40136, 5953, 36630, 12449, 34784, +25617, 31693, 27512, 37380, 35376, 23801, 12271, 24882, 29253, 27156, +23799, 20784, 13843, 19602, 36196, 8341, 22903, 33824, 19617, 7392, +34184, 11589, 37227, 9252, 9332, 18300, 6895, 40822, 40857, 1180, +30219, 0, 17766, 0, 0, 0, 9901, 36056, 40132, 3748, +32245, 33850, 0, 24586, 22278, 9579, 7071, 8942, 24452, 10838, +16595, 17106, 3217, 25867, 40698, 31063, 23018, 15512, 30020, 22318, +28987, 28453, 40614, 1607, 9223, 10847, 0, 1776, 39663, 6167, +6545, 39993, 21189, 17934, 22933, 12442, 20394, 30689, 3061, 9051, +665, 25557, 28628, 2077, 40902, 15902, 16556, 10081, 36408, 39699, +13667, 33281, 32860, 34059, 26275, 23763, 32803, 28006, 9868, 20140, +11895, 22457, 0, 11760, 20902, 27825, 990, 3769, 13681, 11575, +16406, 0, 11098, 6235, 12018, 9706, 34958, 2434, 9609, 13139, +13024, 5363, 13970, 19302, 11772, 20250, 2260, 19037, 22613, 34861, +14642, 14643, 25070, 0, 23689, 26183, 0, 14348, 12024, 37885, +4956, 33757, 32642, 7523, 2440, 35218, 0, 5452, 0, 24272, +11701, 30006, 0, 23954, 31696, 21285, 25831, 19883, 29871, 16417, +10233, 4467, 38567, 281, 19170, 20349, 0, 7893, 0, 32902, +1990, 11828, 24412, 32903, 0, 0, 2001, 23790, 22944, 13492, +14981, 16099, 14535, 7032, 21600, 23725, 6029, 6030, 0, 23149, +39393, 23267, 40515, 15630, 36954, 24236, 15635, 10346, 7941, 0, +5617, 32339, 9630, 10359, 25123, 10069, 29658, 1907, 26271, 1135, +18727, 35192, 21233, 4061, 25896, 5908, 18728, 29705, 17502, 15411, +25897, 39154, 4064, 17537, 19654, 0, 23683, 15177, 26459, 32629, +1296, 38394, 36281, 31582, 26325, 28041, 25799, 25716, 4302, 18622, +18124, 2531, 0, 11416, 0, 0, 12753, 631, 10905, 6262, +0, 18552, 14441, 14803, 15406, 28329, 19192, 38942, 6073, 6505, +40334, 34461, 22138, 2540, 0, 0, 0, 0, 35571, 0, +0, 36762, 11635, 35044, 35008, 39531, 8937, 23402, 8790, 0, +0, 10798, 20114, 7928, 10832, 9485, 28715, 5517, 0, 34361, +0, 0, 24883, 0, 2930, 20503, 28894, 798, 143, 0, +0, 32251, 0, 0, 0, 19639, 16526, 21009, 902, 3167, +0, 7426, 40051, 12135, 13578, 27371, 0, 16105, 5971, 18729, +0, 0, 0, 0, 37032, 28563, 2839, 19439, 20444, 11417, +30890, 21833, 11418, 10757, 14151, 1939, 32272, 17188, 13971, 0, +19534, 22749, 10223, 34795, 0, 32389, 28042, 30731, 3102, 31583, +13990, 2477, 10482, 7584, 26195, 18101, 0, 6585, 23201, 23132, +37757, 1991, 0, 11836, 6017, 34683, 14696, 13552, 21030, 17859, +36949, 29198, 29243, 31253, 10705, 32697, 10267, 0, 29358, 39269, +0, 11472, 8218, 0, 0, 29974, 0, 25357, 13405, 0, +33166, 0, 0, 37632, 14839, 11156, 0, 688, 20706, 0, +30665, 0, 19776, 27726, 1476, 18593, 24691, 0, 0, 8685, +38943, 18886, 22032, 25393, 24600, 17781, 8944, 32252, 31799, 33123, +0, 21451, 0, 0, 0, 32849, 17791, 7858, 4843, 40615, +420, 41294, 38952, 41143, 10371, 12301, 0, 12867, 0, 0, +0, 29784, 32174, 34499, 28794, 28459, 5627, 14886, 254, 9992, +32708, 14480, 30534, 678, 40495, 21527, 29340, 20960, 0, 0, +36842, 20195, 0, 0, 20964, 26782, 2513, 34312, 8795, 3754, +25650, 12773, 24257, 19571, 6958, 17177, 3482, 38125, 10396, 13682, +21398, 0, 9416, 10758, 8353, 0, 991, 28352, 31161, 12572, +31541, 24485, 10412, 31000, 32185, 13700, 11900, 22530, 26627, 3771, +39207, 0, 38597, 27589, 12162, 27850, 39585, 977, 0, 0, +0, 16519, 1297, 33879, 22260, 5061, 0, 39431, 22535, 2794, +1298, 28029, 12025, 10522, 14229, 4099, 13274, 21200, 9183, 7407, +0, 0, 28493, 4784, 31585, 5442, 32200, 15801, 38981, 28414, +10967, 4785, 18788, 14790, 18789, 23865, 22219, 39222, 0, 17213, +2375, 23333, 0, 0, 29199, 18102, 24810, 17510, 18672, 27296, +8979, 38989, 22174, 13997, 24392, 0, 0, 40930, 23091, 13918, +1603, 13175, 9721, 0, 0, 38168, 17837, 16965, 19171, 26691, +20209, 13182, 5592, 949, 0, 17514, 0, 32227, 22801, 25099, +18413, 41200, 0, 14975, 26256, 33939, 0, 33084, 0, 16423, +23381, 35532, 21866, 16997, 37775, 0, 35551, 3401, 12491, 10149, +32943, 15509, 40712, 10313, 31793, 24884, 9864, 31913, 9865, 9508, +2657, 34045, 33473, 26702, 15604, 31920, 26149, 36933, 34263, 23033, +41054, 36836, 40863, 17503, 32085, 32031, 35579, 26156, 34626, 13521, +31543, 3547, 27097, 15267, 36222, 10514, 35915, 31604, 26037, 13998, +35247, 36706, 25100, 35149, 18991, 16078, 39324, 0, 0, 0, +0, 32797, 0, 4765, 33394, 236, 33423, 2244, 4108, 38415, +0, 35706, 22434, 15640, 26749, 16478, 29938, 31496, 18051, 23164, +31096, 17533, 6351, 19834, 16441, 30702, 6501, 38, 38029, 11773, +35859, 20646, 40879, 7668, 22370, 0, 1334, 17295, 18625, 19235, +9861, 39134, 8311, 25046, 39081, 15549, 3330, 14335, 14898, 12573, +18091, 0, 26453, 25088, 25717, 4310, 21209, 39372, 18493, 22171, +0, 0, 796, 25394, 32077, 16790, 32602, 7859, 24771, 0, +26100, 39574, 28656, 25479, 27941, 36475, 19572, 20965, 1493, 0, +27436, 28808, 10097, 25979, 25418, 0, 5460, 23079, 13372, 28731, +0, 25159, 21654, 17838, 6032, 5955, 39947, 0, 18938, 5208, +31408, 9565, 12255, 21307, 35621, 21420, 37135, 30457, 9843, 38302, +34348, 4749, 32147, 13407, 29699, 8150, 22272, 0, 36681, 24529, +34155, 2105, 1470, 27022, 38417, 35680, 1471, 0, 6556, 16327, +35308, 2633, 3673, 33852, 33609, 36972, 33376, 0, 0, 0, +9739, 0, 0, 0, 18482, 32961, 3078, 12991, 28620, 22598, +38068, 33795, 32158, 21481, 0, 0, 0, 0, 0, 20124, +12536, 21774, 10848, 11144, 30472, 36757, 38240, 1232, 20087, 23896, +32969, 7330, 35760, 28624, 16791, 36631, 0, 13953, 26533, 36260, +12444, 0, 27987, 0, 0, 0, 30478, 20268, 27994, 35795, +26180, 31498, 12319, 19200, 36691, 19649, 38462, 28192, 39701, 1486, +16876, 0, 0, 0, 0, 0, 0, 0, 24100, 9415, +31525, 39205, 36552, 21536, 15077, 32995, 35035, 32996, 39416, 21204, +0, 27642, 18459, 3177, 20142, 25062, 5106, 26276, 0, 0, +0, 28020, 33005, 1940, 6077, 41061, 0, 27385, 26513, 10098, +28633, 8586, 0, 0, 0, 20914, 20157, 34072, 19837, 13146, +4735, 14921, 10479, 7524, 26945, 3065, 26721, 21829, 22882, 19457, +0, 0, 0, 0, 35917, 3821, 0, 15665, 746, 16685, +15416, 26172, 1319, 28158, 8730, 22624, 35918, 32201, 21348, 36428, +40256, 4273, 7774, 33699, 22734, 31296, 17682, 2342, 41032, 41237, +1507, 35093, 11346, 22041, 33405, 0, 16757, 24434, 32777, 13387, +9802, 0, 0, 34424, 33938, 40177, 10559, 36444, 31627, 0, +0, 17481, 32292, 11358, 36107, 0, 17557, 26288, 2345, 952, +13073, 27416, 7357, 5836, 0, 492, 37119, 0, 0, 21050, +16778, 36033, 5012, 0, 2677, 3015, 8373, 13934, 21193, 0, +0, 0, 17717, 20595, 36825, 0, 18324, 9971, 0, 36666, +13944, 3526, 25326, 21723, 0, 0, 10717, 29339, 0, 18, +9259, 1532, 1909, 24458, 0, 27372, 4215, 11690, 3021, 8185, +11611, 6941, 30797, 7612, 28657, 0, 19069, 10470, 36645, 11693, +0, 37036, 40956, 34629, 24634, 38878, 14221, 28564, 0, 0, +0, 0, 0, 0, 29956, 17889, 14227, 38465, 33219, 11101, +0, 33672, 0, 0, 0, 4774, 24408, 20647, 0, 38161, +1062, 3431, 0, 0, 34654, 8731, 20657, 942, 14740, 6003, +38896, 0, 31221, 34655, 0, 14947, 32111, 28581, 10035, 0, +5782, 12630, 13744, 0, 41126, 0, 33068, 16315, 7281, 12064, +31892, 21595, 20060, 25166, 4705, 36121, 20116, 0, 14911, 24693, +29596, 30397, 38910, 17023, 26446, 15571, 32063, 38927, 39394, 29407, +27230, 927, 35249, 22694, 2850, 11039, 15499, 14245, 139, 4248, +23739, 885, 403, 7600, 15339, 30078, 30079, 41240, 18014, 0, +9589, 34291, 27050, 10793, 17792, 26103, 27737, 0, 904, 25332, +6348, 1910, 17579, 23814, 7510, 12577, 40957, 11620, 10400, 16882, +37579, 37735, 33395, 2795, 5574, 16680, 13911, 3726, 27766, 23117, +35050, 13251, 11291, 11435, 28923, 25622, 31027, 36454, 25242, 36122, +27015, 36115, 14833, 29984, 33792, 12695, 39887, 24140, 40281, 5848, +0, 36876, 0, 0, 35410, 26977, 35709, 20596, 0, 0, +25047, 32594, 31197, 8800, 36467, 29492, 26979, 21222, 8803, 28456, +31045, 14476, 2772, 22731, 40618, 10850, 21117, 34380, 9027, 37166, +10754, 0, 27643, 3421, 11090, 34857, 30999, 32360, 22792, 25422, +18516, 16602, 26239, 32632, 38257, 9916, 7258, 10033, 2666, 38715, +0, 28427, 40341, 21732, 10124, 37083, 40666, 36910, 17278, 12053, +31647, 32128, 2732, 17482, 0, 27615, 14311, 23060, 24574, 8939, +40820, 36958, 0, 0, 25364, 21698, 19692, 404, 14284, 0, +33611, 22856, 1477, 19626, 0, 0, 0, 0, 35431, 36987, +0, 22857, 24697, 762, 11735, 0, 0, 0, 2122, 19500, +16184, 29780, 31201, 17142, 18037, 0, 12545, 15070, 41003, 6729, +14888, 5048, 921, 0, 0, 0, 0, 0, 16192, 1695, +28156, 29793, 33905, 0, 0, 0, 0, 0, 6790, 0, +0, 28202, 1303, 29754, 26021, 2304, 29810, 20251, 13865, 18904, +0, 0, 38720, 1147, 12374, 38330, 33771, 17232, 0, 0, +28225, 36577, 27323, 0, 0, 6851, 0, 0, 0, 0, +24515, 19136, 39185, 29987, 9087, 37150, 16735, 1911, 21175, 22672, +17543, 28861, 17436, 30897, 5256, 17375, 29487, 30220, 40065, 8499, +33257, 266, 7324, 22407, 1901, 30083, 27240, 35442, 1912, 24156, +29703, 8948, 29604, 9993, 3332, 13671, 11421, 33302, 5809, 2613, +6208, 22526, 25653, 17809, 26784, 21954, 5696, 37048, 4097, 25425, +15268, 28818, 4571, 22721, 4172, 18791, 29640, 39347, 17234, 25808, +22050, 27671, 0, 5257, 10991, 35974, 32409, 33088, 19140, 18351, +0, 28661, 8471, 0, 28686, 0, 0, 0, 36728, 20976, +0, 8525, 15052, 3583, 8992, 30333, 17143, 18218, 17797, 31970, +854, 197, 37305, 14489, 25516, 34074, 40765, 4855, 2307, 38357, +36578, 8250, 25669, 0, 31718, 27379, 13408, 13409, 33464, 38803, +0, 0, 27529, 3156, 7300, 12284, 39380, 0, 9218, 31339, +0, 24151, 27358, 9866, 30084, 6344, 40833, 25143, 20796, 8168, +18021, 12303, 33383, 33830, 20924, 34167, 13808, 17144, 4942, 25552, +37495, 18894, 26673, 17036, 17630, 8839, 33180, 32802, 24300, 24161, +3088, 36766, 2125, 15841, 25055, 85, 24218, 23904, 4009, 22287, +16131, 35325, 9319, 26785, 22653, 0, 40092, 11503, 11627, 10943, +929, 0, 0, 38390, 12579, 9185, 31570, 8587, 2627, 19307, +40336, 29941, 40528, 32103, 16495, 0, 0, 0, 39796, 102, +32279, 9758, 31697, 0, 29944, 2287, 25986, 32117, 13831, 7677, +25133, 0, 35101, 5373, 12794, 16766, 34433, 18631, 29931, 36457, +22639, 19237, 17362, 1673, 0, 19627, 519, 11573, 0, 35081, +10322, 4290, 10418, 21675, 3841, 17315, 28874, 11309, 1194, 410, +3080, 34851, 4943, 290, 33928, 0, 40745, 4909, 25191, 668, +4856, 30375, 28511, 750, 8381, 34363, 31443, 40298, 34215, 7325, +36894, 148, 29906, 19856, 26542, 13975, 9191, 12604, 24064, 13484, +34434, 31895, 15248, 20225, 33845, 26210, 31084, 23642, 11387, 25320, +39186, 29230, 14848, 32835, 23468, 252, 19777, 9140, 0, 28892, +7241, 14614, 2836, 27558, 1204, 19633, 27580, 9145, 10706, 11211, +19199, 10170, 12764, 24945, 8314, 11464, 2078, 9159, 7719, 20804, +78, 36471, 27560, 17631, 13672, 3601, 13673, 3768, 22900, 3125, +34381, 6414, 5677, 0, 17633, 32361, 1538, 33303, 19949, 35201, +20143, 23504, 23505, 31107, 33006, 37324, 23608, 3348, 35041, 36330, +34794, 12340, 40913, 33753, 20407, 15159, 35045, 34534, 28285, 9654, +11581, 36423, 26786, 2561, 17438, 0, 33810, 4103, 3105, 21349, +24892, 20287, 12031, 37074, 38667, 10980, 2480, 1558, 23784, 31607, +13281, 15587, 19329, 19537, 38673, 1454, 12214, 14956, 21036, 1352, +27130, 27606, 20676, 17842, 20356, 20682, 31652, 2740, 24843, 13555, +12077, 32141, 33604, 21700, 29600, 10769, 37383, 0, 3697, 2014, +41132, 5853, 40573, 12115, 23601, 0, 33304, 11776, 26906, 15631, +0, 6521, 34925, 36973, 690, 13641, 39028, 12707, 26980, 5621, +6165, 4381, 8169, 20384, 39072, 39144, 0, 34610, 24080, 10151, +8949, 23991, 19025, 9339, 16187, 25703, 7194, 4869, 34382, 8901, +13674, 9320, 9784, 28350, 31069, 39337, 21537, 5910, 16286, 28466, +4771, 34170, 9704, 0, 0, 5530, 0, 20196, 13589, 20408, +14565, 37050, 39104, 38884, 38505, 33220, 0, 586, 10419, 9065, +10689, 16567, 31371, 1862, 15530, 18794, 4658, 17448, 35340, 24112, +27292, 0, 33881, 13873, 24225, 11704, 28059, 4158, 6618, 18393, +0, 21092, 28689, 5161, 30751, 8441, 4963, 17258, 2159, 32415, +22086, 16219, 40182, 21474, 11265, 36455, 32419, 16456, 20560, 497, +0, 9582, 1123, 7848, 11988, 35742, 18326, 0, 36070, 14766, +11962, 3333, 6286, 6837, 0, 34515, 40522, 38503, 23426, 37041, +25019, 11965, 21538, 11505, 14566, 26548, 0, 0, 22367, 20492, +2377, 18525, 16927, 4143, 0, 4728, 26340, 5125, 23361, 0, +16317, 18163, 17713, 25361, 36964, 35685, 5884, 23406, 35388, 21370, +7849, 12986, 34190, 7366, 25698, 32070, 0, 0, 1205, 26927, +22976, 21374, 39675, 28944, 29304, 29305, 25611, 35765, 17794, 222, +10376, 24459, 17146, 9518, 40869, 27989, 37640, 34257, 2542, 30354, +14714, 29542, 36840, 11747, 13006, 25679, 19506, 14556, 40747, 14420, +157, 28200, 16267, 11928, 25007, 2873, 6781, 15552, 21160, 29099, +33574, 14344, 11506, 23516, 13703, 19577, 34320, 0, 39588, 29912, +0, 97, 22149, 2349, 28820, 7057, 11934, 23327, 3923, 28360, +40644, 21779, 29817, 26637, 18556, 1552, 16928, 19390, 33144, 2462, +11525, 19766, 8563, 17467, 5407, 38674, 40789, 0, 0, 39851, +488, 4805, 24562, 0, 18421, 32133, 7549, 9814, 3292, 14317, +6907, 3674, 37705, 10635, 35023, 34161, 34931, 29602, 38496, 36896, +33963, 35029, 15444, 11403, 16486, 37725, 3173, 0, 0, 26713, +0, 21639, 20485, 10589, 4140, 37887, 33759, 13986, 40654, 36942, +28638, 15274, 24498, 0, 3366, 14276, 33979, 39293, 3698, 22053, +24115, 0, 24819, 16363, 35975, 25455, 27687, 23630, 27721, 0, +7170, 0, 19848, 11207, 0, 0, 9907, 24098, 4003, 25066, +6567, 17180, 476, 13826, 33527, 19227, 0, 37871, 39895, 11073, +36201, 0, 39560, 23805, 0, 8394, 13118, 40305, 40306, 15676, +21517, 25701, 38241, 260, 39708, 8973, 35801, 3416, 12139, 40147, +16601, 25335, 25403, 39267, 20897, 2422, 0, 0, 35471, 14900, +1655, 3343, 15079, 6291, 30706, 35837, 38960, 34391, 0, 25857, +19073, 22879, 38856, 10000, 37325, 5057, 38885, 7455, 26163, 18076, +28477, 24721, 19511, 35222, 745, 9655, 9295, 21019, 8722, 0, +26946, 15380, 28361, 4398, 40099, 28572, 15770, 24338, 33516, 6420, +2441, 11373, 4514, 25839, 39344, 23775, 13866, 40922, 30720, 0, +0, 31855, 20918, 23082, 27888, 14666, 39115, 26435, 28916, 590, +28496, 23870, 31005, 25431, 19220, 10981, 27927, 39910, 23088, 20347, +13874, 26437, 20167, 27406, 18104, 16751, 13282, 16837, 39815, 5888, +0, 25879, 9119, 7353, 19801, 28239, 13051, 28840, 33071, 15669, +31231, 7273, 19228, 2236, 2483, 18109, 35347, 4575, 37863, 19898, +37416, 39841, 35600, 5163, 12054, 30637, 28697, 26047, 33058, 27931, +27835, 23718, 18285, 36003, 0, 16813, 16981, 7546, 17845, 17988, +32420, 32790, 21938, 20062, 32137, 25212, 40449, 27487, 34447, 1520, +18168, 10637, 23251, 17739, 613, 1215, 10916, 10917, 0, 2425, +22286, 24470, 20479, 14337, 2129, 19722, 25871, 30804, 0, 0, +16911, 25009, 0, 11901, 32505, 0, 27107, 36424, 0, 21020, +11513, 14349, 34323, 0, 25800, 29873, 33047, 38990, 19821, 31866, +19397, 0, 11532, 28690, 32778, 35257, 1354, 19117, 7274, 17283, +4745, 4051, 5411, 5595, 15886, 3942, 32138, 2857, 20071, 23879, +24580, 39187, 0, 0, 0, 11075, 8390, 3529, 9337, 20797, +1903, 11208, 8830, 34932, 19634, 30468, 0, 0, 0, 25554, +33924, 39260, 20389, 13266, 0, 38701, 41244, 37715, 17795, 0, +40082, 1216, 25336, 37287, 0, 4320, 7116, 35802, 20091, 24421, +0, 30479, 12559, 2080, 0, 1623, 7252, 37732, 16887, 7253, +24788, 8123, 7089, 6818, 39282, 29240, 37326, 13976, 23430, 14497, +16271, 3064, 872, 21716, 35888, 33578, 20720, 34075, 8045, 0, +21622, 29476, 1046, 38469, 30551, 15381, 34904, 21970, 32644, 8845, +28828, 9659, 11805, 28415, 0, 34979, 4916, 23541, 13917, 19041, +20168, 20169, 12927, 18806, 7268, 21931, 20031, 13746, 8137, 1677, +11582, 27950, 34991, 21579, 13878, 17515, 2005, 12946, 29157, 18113, +41129, 26887, 36243, 5412, 3843, 2161, 20361, 34571, 16427, 3738, +13400, 27486, 24918, 21604, 19238, 0, 26895, 19240, 40230, 0, +14759, 14214, 7117, 35804, 25707, 2206, 25277, 8046, 16348, 28245, +36977, 36750, 5772, 18042, 40310, 28457, 22863, 38549, 13350, 4207, +2134, 15619, 4827, 0, 10025, 10026, 20736, 11066, 8889, 5520, +7966, 33856, 20006, 19714, 16527, 9231, 38880, 28467, 37329, 40980, +16932, 18796, 31227, 16694, 12463, 17321, 17004, 0, 22914, 34824, +30231, 30093, 22327, 0, 38874, 9601, 0, 33551, 20928, 25074, +30715, 39283, 6151, 30724, 1968, 0, 11436, 33888, 38059, 17337, +34480, 11479, 33964, 10918, 764, 25185, 32605, 22979, 17740, 40005, +35805, 33649, 19204, 15327, 4011, 0, 20907, 10001, 3025, 18761, +38659, 28478, 7889, 10596, 38352, 24067, 28072, 22781, 9437, 0, +11880, 3904, 0, 7074, 7075, 25645, 23409, 27741, 14491, 0, +34527, 705, 35215, 40758, 21161, 4185, 2358, 29206, 10126, 41257, +38922, 30228, 8802, 1217, 7141, 40316, 31361, 30925, 39756, 40094, +18762, 30928, 9710, 24647, 16202, 38032, 27924, 20202, 5635, 23542, +2381, 22750, 17468, 26888, 18427, 28011, 23449, 37629, 7759, 33460, +14843, 5656, 22692, 9381, 21699, 25321, 39182, 8343, 22597, 28714, +3017, 4281, 10311, 20598, 1648, 23471, 27043, 1125, 14851, 27730, +0, 9257, 20885, 11687, 31461, 7140, 33381, 20709, 0, 31673, +39681, 25726, 14477, 5962, 39034, 26476, 19945, 1218, 10074, 36994, +32348, 22122, 21203, 2252, 2126, 0, 23424, 12548, 40626, 18735, +15073, 32358, 31507, 2201, 30961, 39477, 40876, 16052, 4493, 29308, +4012, 5531, 4289, 24539, 38961, 38385, 25514, 1726, 12334, 31530, +40153, 14901, 8709, 12151, 4907, 3134, 28391, 25748, 32506, 11566, +23336, 40332, 28283, 2614, 31021, 15373, 15330, 9180, 8321, 7347, +4518, 2374, 39774, 2796, 16682, 33399, 38564, 38977, 37061, 9656, +8919, 38056, 5119, 12032, 27889, 28758, 9112, 31859, 19392, 6707, +378, 22626, 31381, 62, 19899, 22633, 19900, 34845, 39842, 2006, +36452, 30640, 25223, 16381, 34339, 2825, 24987, 39148, 23093, 0, +28565, 7503, 27307, 0, 5316, 4857, 28622, 29260, 3536, 28488, +12821, 27567, 11545, 17716, 0, 0, 3119, 13948, 6912, 8995, +7986, 6776, 0, 6943, 1016, 28901, 5680, 0, 5688, 2131, +30364, 38888, 19075, 23315, 20818, 23862, 0, 40919, 27883, 0, +36785, 40022, 28499, 0, 28062, 2145, 31701, 13283, 2397, 8243, +29020, 3113, 8252, 7536, 31302, 31446, 34827, 20516, 22160, 19539, +26077, 19930, 2388, 29369, 15140, 539, 32723, 33171, 23473, 0, +0, 26456, 11397, 21685, 32700, 3161, 5095, 7708, 36202, 253, +25183, 25378, 19376, 7334, 24705, 26983, 10380, 1481, 5041, 20618, +5477, 0, 0, 15824, 0, 2593, 6731, 36841, 10272, 0, +9264, 33966, 16795, 13897, 23425, 24712, 30481, 35323, 17651, 0, +0, 34392, 35841, 36155, 23296, 38962, 31827, 35842, 35139, 31212, +39421, 39733, 10029, 4324, 7874, 4265, 22875, 15741, 3809, 0, +30149, 4504, 8553, 15718, 24723, 24724, 39424, 19973, 17193, 40014, +28482, 39425, 9234, 17614, 10871, 16196, 5779, 4460, 36335, 0, +0, 23317, 0, 2595, 19672, 6360, 36095, 2628, 25710, 10528, +25660, 7882, 16295, 33306, 12912, 35889, 19764, 0, 19515, 12607, +28317, 10118, 0, 17218, 40849, 41108, 34980, 8660, 16934, 23438, +8978, 17219, 1753, 28318, 0, 0, 28063, 3878, 12929, 32896, +946, 33584, 14171, 23089, 18105, 32491, 41302, 5922, 4277, 24411, +21000, 38527, 18948, 35514, 26461, 37085, 11182, 16943, 21991, 0, +0, 16944, 0, 0, 27507, 0, 35947, 21678, 27676, 15704, +8253, 35348, 5468, 25163, 2447, 0, 29132, 24282, 1604, 28242, +30630, 6622, 26045, 123, 23546, 41223, 15803, 7482, 0, 36299, +0, 25973, 6308, 11841, 33073, 38286, 28698, 28845, 39843, 35979, +8078, 6858, 0, 15102, 12743, 2569, 32229, 19466, 0, 1373, +18121, 13755, 16027, 12795, 0, 3282, 16538, 33242, 7547, 18871, +38479, 10450, 12234, 21297, 36459, 32791, 29036, 16612, 38292, 15965, +0, 23795, 14536, 22726, 7289, 29696, 17952, 20064, 40692, 32920, +11127, 20065, 13604, 38001, 4587, 17369, 25168, 40229, 36188, 10144, +0, 36035, 19008, 37794, 25170, 18171, 21443, 37467, 21840, 0, +35744, 21842, 35745, 23744, 31963, 3950, 36148, 20132, 31532, 20909, +15215, 41104, 31981, 34403, 29818, 29056, 31172, 28372, 36181, 3717, +40047, 19523, 37540, 21824, 20280, 38180, 30346, 16869, 24706, 20893, +26929, 1222, 40725, 694, 0, 14774, 32499, 15934, 22038, 15825, +34057, 38499, 34942, 16053, 11622, 31533, 6842, 34790, 29384, 36775, +14902, 16891, 0, 16912, 3264, 12583, 11029, 38712, 8125, 2909, +9390, 14498, 19865, 2876, 28755, 20721, 33231, 17043, 34325, 27885, +26871, 35890, 1813, 4519, 10774, 30365, 5707, 12194, 8732, 10010, +1969, 33402, 18257, 2263, 2264, 35948, 33814, 34416, 38190, 10127, +36608, 40932, 0, 15276, 37086, 23196, 39043, 19263, 0, 0, +27508, 14005, 9432, 23094, 17977, 0, 29518, 13258, 16214, 35980, +36583, 4470, 34559, 13752, 34020, 30856, 32294, 21659, 8262, 8750, +0, 20686, 40355, 20933, 32299, 30946, 17340, 2273, 20366, 12969, +21361, 2648, 30296, 33614, 21825, 19352, 41144, 15238, 15115, 10168, +0, 0, 37370, 30857, 40189, 0, 0, 35717, 0, 5854, +7970, 1131, 40244, 40838, 27366, 31965, 21232, 0, 13439, 34058, +3683, 21777, 25407, 39713, 25911, 0, 26232, 37311, 0, 13863, +0, 18766, 9944, 1625, 35869, 41184, 38713, 37334, 30366, 21247, +9391, 14914, 1044, 2257, 0, 6793, 23523, 34906, 16012, 25636, +10775, 34076, 33024, 0, 0, 32888, 1970, 15468, 4726, 33696, +532, 21932, 40966, 0, 29207, 3961, 3500, 21466, 9430, 7775, +33048, 5469, 30631, 14961, 38362, 25814, 6750, 18114, 19917, 0, +9839, 19918, 18422, 0, 36527, 0, 9443, 4676, 17011, 6406, +0, 1529, 0, 31510, 0, 5427, 5428, 32349, 17408, 0, +26478, 32856, 26850, 30799, 0, 0, 10476, 36781, 18777, 16296, +36487, 26790, 14793, 23538, 13045, 37934, 0, 23547, 0, 17982, +12405, 19333, 4161, 21411, 1719, 17376, 18173, 8509, 3344, 33752, +32269, 10947, 1091, 41064, 5005, 5006, 11935, 25832, 3106, 29118, +0, 21901, 39818, 18271, 7541, 13487, 9371, 31709, 17916, 33788, +25365, 28973, 22572, 33173, 26302, 39687, 30233, 29704, 29235, 35316, +32974, 22574, 34934, 34935, 21827, 10269, 21620, 36261, 7301, 20989, +34894, 30399, 37620, 31972, 40086, 37621, 27077, 20269, 31511, 12553, +28949, 7512, 33968, 21236, 4387, 20133, 1489, 0, 20851, 37312, +6961, 39581, 25274, 33664, 19032, 11764, 34123, 21084, 10103, 12779, +6295, 11226, 29750, 22833, 4646, 31553, 27852, 20022, 33186, 31373, +24490, 38766, 28955, 33307, 14351, 14657, 11936, 29111, 19386, 34642, +12176, 27197, 16747, 30370, 3100, 2309, 13827, 36908, 11699, 38474, +28068, 8737, 21133, 31868, 0, 6541, 3506, 30632, 38999, 9722, +2987, 3440, 38164, 11842, 18980, 17699, 16581, 30060, 11650, 31395, +381, 26563, 28161, 19366, 28763, 33197, 14112, 187, 28529, 2738, +30861, 29890, 12654, 3197, 3116, 37438, 32304, 0, 0, 0, +21134, 0, 24591, 13228, 27822, 15074, 17662, 14503, 0, 19433, +17849, 0, 3996, 3543, 32486, 24221, 19761, 27389, 2632, 3554, +9123, 37076, 36098, 0, 18262, 16576, 27407, 39007, 27490, 11606, +0, 0, 6947, 0, 26168, 40983, 14931, 15094, 29852, 18533, +30638, 3706, 40356, 17850, 0, 39014, 38854, 0, 35776, 3886, +21237, 1852, 28099, 35587, 10288, 34276, 11350, 19461, 19462, 24825, +16610, 10239, 39915, 20391, 32171, 39202, 27311, 41247, 40318, 9045, +33868, 35811, 39735, 32867, 13967, 2258, 0, 2135, 17589, 39432, +12598, 30371, 9426, 14430, 98, 8225, 9657, 10816, 34659, 25663, +39799, 1610, 35515, 28367, 6013, 9675, 26816, 34140, 3235, 26512, +0, 0, 4293, 10652, 6209, 3265, 30716, 25589, 27306, 2169, +12295, 37979, 23274, 34305, 8180, 37292, 8008, 22985, 39411, 28721, +41248, 3062, 24781, 36903, 10405, 10810, 9607, 6963, 13301, 37883, +29720, 4812, 29752, 8213, 41254, 10948, 0, 1957, 38839, 15013, +28776, 14933, 8227, 11521, 4236, 36655, 4216, 28368, 3502, 23701, +2174, 32718, 19401, 2238, 23548, 13179, 1357, 12226, 39516, 40219, +24826, 38682, 12413, 1426, 0, 17344, 17354, 37781, 24992, 3245, +8166, 2592, 28878, 27066, 10187, 24159, 23275, 1918, 20895, 29717, +3901, 4638, 37728, 39412, 3174, 4005, 1242, 19854, 448, 29265, +20397, 17757, 7782, 3258, 24668, 29380, 8022, 16132, 13020, 0, +0, 0, 39211, 24645, 41300, 3622, 15946, 17810, 933, 6455, +31286, 0, 40649, 18781, 28777, 0, 3925, 17616, 29324, 16095, +2914, 14934, 29814, 11431, 7525, 1310, 0, 31934, 31116, 12613, +24893, 15982, 10977, 24549, 28222, 2173, 0, 24670, 22628, 22152, +30240, 34987, 25441, 34011, 4662, 6014, 3653, 4859, 19977, 33842, +6751, 1666, 39045, 3939, 2849, 9679, 6515, 41034, 5503, 16284, +29037, 37782, 24993, 40232, 18056, 3126, 39152, 8193, 26535, 29411, +15716, 34, 0, 24491, 27401, 9882, 26287, 30267, 38683, 18469, +14257, 17116, 0, 4225, 25398, 37718, 14877, 15286, 7302, 23277, +10657, 7993, 18601, 10668, 30101, 20398, 29266, 14782, 23427, 39315, +24423, 8953, 29275, 16494, 19667, 36277, 18784, 37511, 14506, 22620, +0, 32890, 1503, 11884, 40166, 25444, 25927, 31170, 2599, 15532, +26338, 22383, 19463, 33411, 0, 4536, 15536, 40409, 2723, 27681, +3707, 28247, 951, 15183, 0, 39856, 30867, 20418, 18137, 41121, +21610, 18174, 23482, 37720, 0, 35892, 31761, 3180, 0, 25487, +3196, 21741, 36729, 12486, 1887, 7397, 0, 0, 4625, 5620, +13344, 36990, 10367, 33625, 37244, 24699, 0, 546, 8806, 14215, +0, 34268, 27375, 36767, 27847, 35204, 2348, 34965, 27390, 34397, +27449, 17745, 4520, 37354, 1971, 28159, 0, 34661, 16804, 17914, +29057, 6383, 37783, 12427, 0, 37827, 0, 0, 14385, 14548, +3884, 3158, 8892, 32545, 32247, 142, 9584, 37145, 16734, 0, +29774, 3164, 33264, 24607, 10189, 0, 5270, 2199, 5626, 34488, +40728, 0, 36320, 2685, 0, 16896, 28351, 19278, 19283, 0, +28815, 22259, 18519, 23180, 4854, 29815, 6989, 2261, 13718, 35506, +12392, 5281, 14993, 1126, 16787, 35749, 4256, 4259, 22980, 16870, +38026, 28600, 22986, 4627, 14632, 33667, 7340, 0, 33668, 7146, +11967, 40156, 25188, 7182, 14718, 9947, 17591, 39433, 20161, 36941, +0, 2461, 19734, 36099, 20257, 29819, 15951, 0, 0, 20173, +25445, 37390, 23923, 20038, 14528, 22591, 13923, 30511, 12640, 19925, +13200, 33984, 833, 8449, 2831, 17382, 17035, 24608, 6647, 36511, +37877, 3175, 39577, 25189, 0, 19033, 15133, 9610, 37739, 11780, +22617, 2556, 6740, 2705, 26120, 27108, 26555, 33277, 36426, 27109, +3634, 35236, 10011, 7530, 35237, 34545, 41137, 27895, 13875, 6797, +32401, 9367, 28924, 24189, 2810, 10018, 19978, 37758, 4664, 23874, +13922, 20780, 37519, 0, 22341, 39351, 39845, 4278, 37205, 20732, +30423, 13320, 23206, 28079, 22769, 29288, 15804, 4669, 28252, 0, +13601, 13194, 324, 13495, 35271, 0, 35272, 18424, 38171, 751, +17485, 0, 11363, 18963, 30652, 32300, 29445, 2020, 39355, 40223, +866, 19933, 32937, 21940, 36716, 0, 32740, 17365, 38455, 20072, +0, 0, 0, 32929, 0, 0, 0, 0, 12542, 13587, +0, 21458, 322, 3997, 31346, 9386, 32988, 29544, 33969, 5305, +38595, 28723, 22334, 32874, 33680, 32377, 27756, 15735, 31219, 11950, +25731, 6333, 11344, 16138, 8237, 4072, 32210, 24279, 24132, 16349, +0, 34277, 36353, 25092, 10155, 4294, 39823, 0, 30763, 34435, +32565, 36006, 21301, 0, 26904, 6053, 40816, 14836, 33595, 37549, +0, 0, 33560, 5377, 29251, 8768, 35418, 10642, 35310, 0, +17033, 15644, 32260, 28127, 31803, 33859, 0, 0, 5525, 16258, +39999, 21426, 3324, 13123, 1245, 40420, 18059, 10279, 704, 28805, +3425, 19300, 32370, 27466, 36560, 24726, 0, 23078, 11792, 30619, +35595, 35238, 0, 3108, 10236, 1709, 0, 32411, 2735, 11943, +0, 10078, 4385, 39414, 23289, 15935, 25515, 0, 36325, 33343, +0, 10960, 4739, 0, 25086, 5577, 31384, 24552, 0, 34679, +17704, 1107, 0, 1721, 0, 37526, 21843, 739, 36473, 10678, +4396, 23609, 29101, 37337, 16678, 744, 0, 12587, 8052, 32386, +2460, 10883, 26035, 1029, 24363, 37200, 30203, 61, 10014, 5224, +8739, 5582, 12048, 22130, 0, 40501, 18110, 19332, 19364, 17478, +32673, 33945, 39228, 23004, 8263, 21767, 31897, 6599, 5240, 37894, +32425, 36248, 27281, 6602, 1076, 11123, 7466, 7508, 37983, 939, +7444, 32092, 27095, 20248, 38660, 38661, 38598, 11812, 8132, 30381, +20570, 24072, 17733, 0, 20367, 10860, 10671, 37022, 23300, 6786, +256, 0, 477, 5692, 33877, 5701, 1287, 40095, 22192, 29435, +35496, 0, 12789, 39801, 29820, 32892, 5213, 29395, 33043, 2963, +37625, 9397, 17618, 1049, 0, 18816, 12402, 33889, 27410, 6337, +27898, 10993, 37938, 2820, 675, 25453, 6862, 31008, 485, 7777, +36943, 39046, 7639, 9398, 2086, 8753, 6626, 11546, 6396, 29159, +2022, 23877, 17857, 18443, 30874, 38742, 16396, 28149, 20912, 1288, +30111, 40333, 5934, 2083, 14516, 23000, 32006, 30754, 23002, 4922, +7225, 2674, 11128, 37984, 0, 0, 0, 0, 0, 7288, +33093, 10672, 3479, 740, 36157, 0, 14057, 1972, 25668, 3869, +36361, 35357, 8332, 16054, 37880, 39158, 34221, 14428, 10813, 20411, +513, 8718, 1497, 40580, 10282, 39159, 26789, 8784, 1311, 6745, +4276, 4057, 25901, 3363, 25157, 3209, 19676, 22265, 30561, 22586, +8134, 40583, 23198, 17910, 35344, 19822, 31228, 23549, 6016, 3213, +32007, 10439, 25929, 9279, 10783, 282, 8138, 24035, 11942, 22481, +34428, 27682, 31706, 20498, 15986, 8747, 0, 382, 25889, 27511, +18540, 39171, 11853, 2739, 0, 17986, 20855, 10142, 6398, 14012, +20218, 7293, 7040, 2977, 10673, 10679, 37316, 33973, 22173, 1089, +2985, 36849, 35485, 33975, 25791, 33690, 17204, 17221, 37657, 6577, +12034, 26175, 16838, 23015, 10887, 9799, 2146, 25683, 30845, 27899, +238, 37094, 32455, 10558, 34805, 32674, 34996, 0, 1376, 0, +10562, 28971, 18295, 0, 40346, 0, 31821, 38087, 35818, 6293, +37576, 14340, 0, 1936, 29102, 36481, 0, 35488, 21378, 26481, +992, 9003, 618, 20644, 8322, 7059, 26519, 0, 39787, 34870, +13157, 37658, 27544, 29122, 30736, 34133, 39803, 35934, 25294, 27127, +10986, 21163, 35125, 13180, 28169, 36495, 781, 10994, 10995, 35261, +0, 34874, 17479, 31635, 7060, 6542, 38079, 40354, 36500, 36502, +13925, 4164, 5238, 0, 15781, 36016, 35277, 13079, 7061, 21663, +4420, 23834, 33985, 1874, 20106, 27549, 20563, 17598, 23436, 23437, +27174, 8080, 1949, 1068, 1664, 35598, 30877, 11327, 7254, 23303, +19579, 772, 258, 261, 8216, 23320, 25128, 30112, 35898, 1962, +22676, 457, 0, 33809, 0, 0, 37375, 3499, 18607, 35508, +17222, 0, 21464, 31873, 31229, 0, 16805, 23053, 40585, 41151, +40675, 2881, 239, 7097, 37411, 16846, 8257, 38450, 11909, 4295, +27903, 1101, 1370, 38451, 0, 10447, 17309, 0, 10137, 38033, +9125, 3375, 18542, 20687, 20181, 19368, 386, 39008, 40221, 11548, +7291, 5505, 29650, 0, 6401, 31131, 30872, 12667, 3664, 17929, +1586, 18447, 13093, 21613, 19151, 26650, 0, 9277, 21588, 35781, +15652, 30321, 30199, 23611, 1963, 15305, 18088, 8472, 9276, 9878, +15832, 10554, 15907, 38277, 29479, 16503, 1344, 11437, 22997, 35055, +30421, 29214, 28171, 15720, 6591, 347, 13195, 20558, 16033, 15782, +243, 19317, 24405, 24004, 0, 15324, 10305, 6756, 32084, 20926, +28314, 13820, 22465, 21990, 27800, 2910, 21558, 19387, 27807, 4466, +32114, 16146, 0, 5583, 23026, 29398, 41082, 31076, 7538, 2216, +22385, 25835, 0, 25527, 23363, 4862, 22087, 2016, 19406, 40970, +4473, 16034, 12668, 16394, 0, 19937, 20220, 22091, 18645, 41136, +0, 18289, 35584, 30932, 17206, 17223, 38364, 40265, 11902, 26654, +3635, 33310, 30493, 6160, 12049, 22589, 10890, 19802, 3066, 19804, +2988, 14539, 21786, 0, 36027, 25592, 18178, 34269, 0, 23518, +40763, 0, 710, 8917, 38267, 13823, 37069, 24268, 940, 428, +30120, 34742, 24062, 36857, 39805, 13829, 20661, 26770, 26332, 23339, +26333, 20098, 8961, 35518, 8863, 8864, 29712, 7894, 33937, 35263, +29517, 29399, 20731, 18275, 2239, 16960, 27276, 18834, 12061, 4894, +22025, 18282, 14684, 38729, 14529, 39301, 41084, 32412, 39848, 0, +0, 16216, 0, 0, 16223, 33541, 8865, 6865, 20751, 39973, +29141, 37607, 38624, 8866, 31010, 16506, 27908, 38480, 9883, 11191, +38687, 0, 18543, 2856, 39862, 30868, 33822, 38194, 20419, 9558, +27960, 0, 0, 27690, 6804, 2465, 15805, 29038, 21182, 16587, +18692, 35535, 33097, 34581, 24396, 23058, 3849, 32240, 9400, 13765, +16321, 19941, 35286, 0, 17226, 0, 0, 5058, 6458, 10687, +0, 31841, 0, 23332, 0, 37587, 12367, 37928, 7406, 8918, +10180, 39219, 25083, 0, 0, 13825, 22544, 8473, 33812, 26762, +26950, 24085, 4408, 6007, 1977, 5875, 30376, 4409, 39594, 521, +31295, 780, 5215, 458, 29643, 0, 8926, 14359, 9667, 4468, +36858, 37597, 16607, 14519, 8076, 21575, 6854, 6855, 33287, 15243, +34673, 29825, 23036, 1052, 20499, 27547, 34681, 23366, 37605, 1637, +0, 33785, 10785, 11544, 34913, 14801, 15961, 7023, 12411, 20681, +3735, 785, 31399, 39229, 33715, 28532, 3659, 31653, 4585, 19267, +15624, 34692, 2274, 0, 10503, 5475, 25167, 29652, 37446, 32568, +21100, 27570, 7641, 23100, 18141, 349, 11368, 35536, 11369, 19939, +36391, 16780, 34711, 788, 6038, 18179, 8531, 32666, 30255, 4074, +5602, 11335, 35049, 17207, 20024, 10885, 26763, 12741, 36179, 30563, +0, 22727, 18850, 18142, 35874, 2187, 26316, 10879, 27291, 30058, +20663, 11180, 29453, 1791, 22387, 11908, 7895, 9838, 2152, 16972, +2847, 22554, 4864, 19929, 28384, 23984, 39522, 15890, 1108, 329, +19940, 32387, 15706, 29694, 29854, 30757, 32124, 0, 29857, 16614, +2833, 21346, 21352, 16937, 6179, 14691, 23875, 2019, 26198, 38407, +28975, 23878, 21751, 35851, 14159, 8436, 5584, 13039, 19800, 4962, +13059, 37413, 33062, 38052, 19520, 16973, 9733, 34021, 28526, 39047, +34875, 29891, 26391, 31903, 24038, 30875, 36529, 4052, 24822, 30205, +0, 39449, 29554, 9212, 26392, 2166, 8077, 29455, 28521, 28533, +40659, 10016, 22893, 10445, 40506, 40119, 2025, 18294, 21830, 31625, +22225, 5722, 10326, 29219, 30272, 29221, 23349, 12628, 3507, 486, +14008, 15476, 17311, 14692, 24875, 16228, 9208, 23619, 23386, 32424, +13089, 26957, 12970, 47, 11193, 38410, 38295, 35060, 38636, 12674, +2606, 34714, 12966, 0, 0, 13396, 29649, 21004, 37773, 0, +3511, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 26273 +}; + +/** + Weight array for the other range of 4-byte gb18030 code points, + which is [GB+95328236, GB+98399836]. The sequence NO. of this array + is the diff between code point and GB+95328236 + The weights would be 0 for non-Chinese chars + This range maps from Unicode [U+20000, U+2FFFF], which is CJK extension +*/ +static const uint16 gb18030_4_weight_py_p2[]= +{ +10308, 23140, 0, 24134, 0, 9894, 0, 0, 0, 24520, +2354, 0, 0, 26998, 0, 0, 0, 0, 0, 27613, +14821, 0, 0, 0, 0, 0, 0, 37216, 0, 15539, +0, 0, 0, 0, 40702, 0, 0, 0, 33247, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 20734, +0, 0, 0, 0, 0, 12106, 35177, 15023, 0, 0, +23742, 18706, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 3887, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 27114, 0, 0, +0, 0, 0, 0, 0, 0, 24193, 0, 0, 0, +0, 8295, 0, 0, 0, 0, 0, 0, 0, 23239, +0, 0, 0, 0, 0, 0, 0, 0, 0, 2786, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 11285, 0, 35611, 41263, 13605, 0, 0, 0, +0, 0, 0, 0, 0, 40994, 0, 0, 40810, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 13840, +0, 0, 22027, 0, 6519, 4545, 0, 26695, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 11477, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 36191, 0, 9692, 0, 0, 0, 0, 0, +0, 0, 0, 0, 14237, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 26577, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +14321, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 35206, 0, 0, 0, 6214, 0, 0, 14816, 13606, +0, 5880, 0, 14817, 4189, 0, 0, 0, 17996, 0, +0, 0, 29471, 0, 0, 0, 0, 0, 0, 0, +0, 8789, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 34239, 0, 0, 35392, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 30606, +0, 0, 13612, 0, 0, 0, 0, 0, 0, 0, +0, 0, 35381, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 6041, 0, 0, 23245, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 728, 0, 0, 0, 0, 32979, +0, 0, 0, 0, 0, 0, 0, 38809, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 36565, 0, 0, 0, +33692, 0, 0, 0, 0, 0, 0, 0, 0, 6044, +0, 5124, 0, 0, 0, 30769, 0, 0, 0, 9283, +0, 0, 0, 0, 0, 7305, 0, 0, 0, 0, +20573, 0, 0, 31409, 34457, 0, 0, 21212, 5168, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 5133, +0, 0, 0, 28886, 0, 0, 8875, 0, 0, 0, +0, 15710, 3970, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 24879, 0, 20575, 0, 26825, +0, 8419, 0, 26732, 0, 0, 0, 0, 0, 0, +0, 0, 0, 30032, 0, 0, 0, 27158, 0, 0, +0, 0, 21491, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 37901, 9289, +0, 0, 0, 0, 0, 0, 32575, 16546, 0, 0, +5175, 28291, 0, 0, 0, 19522, 35393, 0, 28983, 0, +1184, 0, 0, 0, 0, 0, 0, 0, 28440, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 19186, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +31721, 11868, 4935, 0, 0, 14610, 0, 6342, 0, 0, +190, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 19780, +0, 0, 25142, 0, 28, 37238, 0, 0, 13107, 0, +23475, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 20433, 0, 0, 0, 40075, 39638, 39925, 21105, 1805, +0, 40416, 27359, 34114, 14863, 23807, 0, 0, 9293, 0, +29737, 0, 0, 0, 36508, 39659, 0, 0, 0, 0, +0, 0, 15923, 0, 0, 0, 0, 0, 0, 0, +3219, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 17526, 34163, 0, 0, +0, 0, 9844, 20295, 26503, 37147, 0, 27736, 27913, 0, +39660, 0, 0, 24126, 0, 8175, 0, 0, 14469, 911, +0, 1225, 0, 0, 28337, 0, 0, 23812, 20505, 2779, +0, 0, 25940, 12128, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 8971, +24463, 0, 0, 0, 25500, 0, 0, 0, 27917, 27919, +34938, 0, 0, 0, 0, 0, 0, 0, 0, 0, +3765, 0, 0, 27443, 38909, 17170, 8351, 28131, 38590, 0, +40481, 0, 0, 0, 0, 0, 0, 0, 0, 8196, +0, 0, 0, 0, 0, 12144, 6233, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 11752, 0, 0, 13010, 34510, +39717, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 19758, 35079, 5529, 35463, 0, 0, 0, 1657, +0, 0, 24785, 35853, 0, 34858, 0, 0, 0, 38431, +0, 0, 0, 26160, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 16268, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 14903, 0, 23171, 0, 0, 37045, 0, 0, +38028, 25793, 26013, 0, 0, 6658, 0, 0, 0, 13775, +15376, 0, 0, 37674, 0, 0, 0, 13029, 34969, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 32101, +0, 32769, 24011, 0, 0, 0, 37340, 24791, 0, 0, +0, 0, 0, 32100, 19216, 0, 9477, 0, 0, 3267, +4171, 35499, 0, 39320, 0, 40984, 6574, 0, 38554, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 7479, 35500, 19874, 0, 0, 0, 0, +0, 0, 1413, 13728, 27404, 17681, 1149, 27963, 0, 0, +0, 5713, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 945, 30985, 0, +0, 0, 0, 19893, 0, 2805, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 5371, 0, 0, +0, 0, 22798, 13060, 17978, 9673, 23203, 10606, 0, 0, +0, 12404, 33063, 39300, 2813, 0, 0, 0, 0, 0, +0, 0, 0, 0, 34998, 2821, 0, 0, 0, 0, +0, 0, 5751, 3760, 21169, 21170, 0, 0, 38570, 1423, +0, 2824, 0, 0, 0, 0, 0, 0, 0, 0, +32685, 0, 0, 0, 0, 4675, 33147, 14114, 23731, 0, +24372, 0, 0, 0, 0, 9129, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 31322, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +37618, 1775, 0, 0, 0, 0, 30319, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +21459, 0, 0, 0, 0, 17544, 0, 0, 25247, 0, +0, 0, 0, 0, 7351, 5578, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 11644, 35971, 32222, 0, +0, 0, 0, 0, 0, 0, 0, 0, 16386, 8272, +0, 33367, 0, 0, 17599, 28883, 12253, 0, 0, 0, +13779, 38413, 26826, 0, 0, 0, 0, 0, 23241, 1430, +0, 16401, 17933, 0, 0, 0, 0, 0, 0, 0, +39718, 1246, 26808, 0, 0, 0, 0, 26813, 0, 24286, +0, 0, 1523, 31407, 0, 0, 0, 0, 0, 14749, +0, 12098, 0, 31419, 24290, 0, 0, 9899, 0, 0, +0, 19057, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 37722, 0, 0, 0, 0, 0, 0, 0, +17413, 0, 0, 0, 0, 0, 0, 583, 0, 0, +10548, 0, 0, 0, 23200, 0, 0, 0, 23708, 39356, +19597, 0, 0, 0, 0, 4544, 0, 0, 20864, 0, +0, 0, 0, 0, 29524, 0, 40887, 0, 0, 0, +0, 0, 0, 0, 0, 14186, 38851, 0, 0, 0, +0, 0, 0, 0, 0, 21390, 3314, 0, 0, 23603, +0, 0, 37298, 13440, 0, 0, 0, 0, 0, 38893, +0, 0, 0, 0, 0, 5544, 14238, 0, 0, 0, +28165, 0, 0, 34881, 0, 0, 0, 30431, 0, 0, +17644, 0, 29577, 0, 19966, 0, 0, 0, 0, 36821, +0, 0, 0, 0, 0, 0, 0, 27632, 0, 0, +0, 0, 0, 0, 0, 18564, 0, 0, 0, 36092, +0, 0, 0, 0, 0, 3746, 0, 0, 0, 0, +0, 8448, 14236, 0, 0, 0, 0, 0, 0, 0, +0, 0, 24316, 14201, 0, 32823, 0, 0, 0, 0, +0, 0, 0, 0, 10460, 0, 0, 0, 28887, 0, +24585, 32826, 14122, 21387, 14123, 0, 0, 12277, 0, 0, +0, 0, 0, 0, 0, 0, 29295, 0, 4753, 5950, +0, 24400, 0, 0, 0, 0, 0, 0, 0, 22899, +22859, 0, 5960, 18562, 0, 0, 0, 0, 0, 0, +0, 0, 0, 17501, 9989, 22123, 28792, 0, 0, 0, +35464, 33802, 28389, 18226, 27497, 26708, 0, 2128, 27870, 0, +0, 24262, 26675, 0, 0, 0, 21754, 29551, 13240, 0, +0, 0, 0, 0, 0, 0, 0, 31580, 39807, 0, +0, 0, 0, 0, 0, 16303, 17247, 17248, 0, 0, +10442, 13542, 0, 34437, 0, 27210, 0, 0, 26961, 0, +0, 0, 0, 0, 0, 39127, 0, 36675, 0, 0, +0, 0, 0, 0, 28387, 31183, 0, 0, 0, 0, +0, 2891, 4548, 0, 0, 0, 14596, 0, 0, 0, +0, 0, 0, 0, 27218, 0, 0, 0, 0, 0, +14323, 30584, 0, 0, 0, 0, 0, 0, 0, 0, +11995, 0, 0, 0, 0, 0, 13584, 0, 0, 0, +0, 0, 0, 0, 38183, 0, 0, 0, 0, 0, +0, 0, 0, 0, 21945, 0, 0, 0, 0, 0, +9286, 0, 0, 0, 0, 0, 0, 10205, 17019, 39606, +32313, 0, 0, 2054, 2944, 0, 0, 0, 0, 0, +0, 0, 0, 37797, 10368, 0, 0, 0, 0, 0, +0, 0, 28914, 0, 0, 0, 1573, 0, 0, 0, +0, 5842, 0, 7131, 14239, 0, 0, 0, 0, 5637, +35618, 16035, 0, 38917, 0, 16114, 39975, 14583, 0, 0, +0, 26292, 26140, 5844, 566, 12090, 0, 0, 39875, 0, +0, 35367, 0, 15576, 31135, 0, 0, 0, 8626, 393, +0, 0, 8987, 0, 0, 32146, 9248, 18299, 3515, 9312, +4078, 0, 16848, 4629, 27423, 0, 0, 0, 0, 0, +0, 1115, 0, 0, 0, 1758, 17084, 0, 0, 14295, +29349, 6713, 0, 34287, 24901, 0, 0, 17764, 0, 15422, +0, 8779, 39058, 0, 7596, 0, 0, 0, 0, 0, +0, 0, 0, 35383, 0, 14313, 33598, 13414, 0, 0, +18918, 14296, 0, 3855, 0, 0, 32319, 0, 15755, 6559, +0, 0, 0, 0, 19095, 31437, 24324, 2106, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 23587, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 22440, 34158, 1005, 9817, 9254, 0, 0, 0, 14464, +0, 0, 23570, 0, 14856, 0, 0, 0, 0, 0, +17120, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 11142, 13342, 0, 0, 0, 0, 0, 0, +23591, 0, 38419, 23571, 0, 38947, 2504, 36468, 0, 0, +34295, 0, 3680, 0, 0, 0, 3533, 0, 30275, 0, +27859, 0, 0, 0, 0, 0, 15206, 37550, 0, 0, +0, 0, 0, 0, 0, 0, 0, 3790, 0, 28338, +29740, 0, 0, 38955, 29047, 0, 31156, 0, 4901, 17156, +2506, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 25399, 8972, 25054, 0, 16871, 0, 0, 0, 0, +28899, 0, 0, 0, 0, 0, 17157, 0, 0, 20014, +0, 3608, 0, 0, 9725, 18506, 4168, 28343, 13442, 13958, +0, 0, 0, 7179, 38523, 0, 0, 0, 0, 0, +0, 0, 13959, 4769, 0, 0, 2486, 41220, 0, 38882, +0, 0, 22755, 38654, 31538, 35082, 8122, 3687, 0, 0, +0, 0, 0, 4773, 0, 0, 0, 9268, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 12160, +0, 0, 26014, 38599, 18194, 26015, 35217, 0, 0, 0, +0, 0, 14429, 0, 0, 0, 0, 0, 29753, 0, +0, 0, 25571, 38268, 11336, 0, 0, 0, 0, 32276, +0, 23693, 38894, 0, 0, 0, 0, 0, 0, 2265, +0, 0, 16140, 17229, 25522, 0, 0, 0, 6368, 0, +0, 17816, 0, 0, 0, 0, 36355, 17249, 0, 0, +6371, 0, 18112, 0, 0, 0, 0, 0, 0, 0, +30289, 0, 0, 0, 0, 6028, 0, 0, 0, 14240, +0, 17071, 15627, 15503, 0, 39129, 0, 0, 0, 0, +0, 0, 10458, 0, 1161, 0, 22420, 0, 0, 0, +0, 0, 10148, 0, 0, 0, 0, 0, 0, 40596, +6544, 0, 35666, 0, 0, 0, 0, 0, 0, 0, +15423, 35667, 20590, 0, 0, 2245, 0, 8823, 15428, 27029, +0, 0, 0, 0, 0, 0, 0, 18019, 1006, 0, +0, 6492, 0, 0, 0, 0, 14704, 21106, 40832, 0, +0, 40975, 0, 0, 0, 0, 0, 0, 0, 28789, +0, 0, 31967, 10080, 0, 0, 0, 0, 19027, 23752, +0, 0, 0, 0, 0, 20625, 21917, 10212, 0, 0, +0, 38426, 14776, 4560, 0, 0, 0, 0, 17186, 38432, +36846, 5814, 14908, 925, 0, 0, 0, 35038, 22756, 0, +0, 0, 0, 0, 0, 13979, 15158, 26016, 34838, 13980, +0, 0, 0, 15470, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 2671, 0, 0, 21413, 0, 30424, +18965, 0, 0, 0, 0, 0, 37821, 34882, 720, 0, +0, 15017, 33790, 0, 39980, 0, 0, 0, 0, 0, +0, 0, 15988, 7789, 0, 0, 0, 0, 0, 0, +0, 0, 24767, 26470, 28274, 0, 0, 0, 6324, 0, +15740, 22214, 0, 0, 0, 0, 0, 0, 808, 0, +0, 0, 8203, 14342, 25150, 0, 0, 0, 14437, 0, +0, 0, 0, 0, 24501, 0, 0, 40033, 11194, 752, +0, 0, 0, 0, 0, 35374, 0, 35394, 35395, 0, +0, 0, 0, 19624, 0, 0, 0, 0, 0, 0, +0, 0, 25654, 0, 0, 0, 0, 4414, 0, 0, +9957, 0, 4546, 0, 0, 0, 31773, 0, 0, 0, +0, 24924, 29366, 0, 5894, 0, 9966, 0, 0, 0, +0, 0, 0, 0, 0, 35155, 0, 0, 0, 0, +0, 6810, 30588, 0, 2327, 5907, 0, 0, 0, 6931, +5684, 0, 28105, 24965, 0, 0, 6976, 21922, 33806, 0, +0, 0, 31292, 0, 0, 0, 35972, 0, 20733, 0, +0, 0, 0, 0, 0, 0, 10827, 0, 0, 0, +9967, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 26900, 0, 0, 0, 25778, 0, 0, 0, 0, +1156, 0, 9958, 14115, 0, 0, 24317, 4842, 4435, 0, +567, 0, 0, 0, 0, 6520, 0, 0, 0, 0, +31777, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 39392, 19017, 0, 10843, 12298, 9316, 0, 0, 0, +0, 0, 22124, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 40161, 0, 0, 0, +0, 1150, 0, 37079, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 23393, 0, 0, 10330, 3946, 0, +0, 26465, 3568, 1878, 0, 0, 0, 25362, 36732, 0, +0, 0, 20939, 0, 0, 0, 0, 11722, 29371, 609, +0, 0, 0, 0, 33467, 0, 0, 0, 36744, 3587, +0, 0, 0, 0, 0, 0, 0, 0, 0, 10545, +0, 0, 0, 30264, 0, 0, 32999, 0, 0, 0, +14918, 0, 28150, 24342, 40414, 0, 0, 0, 0, 0, +0, 12475, 0, 0, 1162, 0, 31438, 0, 0, 0, +0, 0, 12308, 0, 15075, 0, 0, 17655, 36699, 0, +0, 0, 0, 0, 0, 14453, 0, 0, 0, 0, +37685, 0, 0, 687, 0, 0, 22485, 0, 0, 38300, +0, 0, 35628, 5604, 0, 0, 24137, 0, 28326, 0, +4439, 0, 40273, 37690, 0, 0, 0, 0, 0, 13332, +0, 0, 0, 0, 26911, 0, 0, 35396, 31945, 0, +0, 0, 0, 0, 0, 0, 37537, 0, 0, 0, +0, 9776, 0, 15432, 0, 0, 4754, 35725, 0, 0, +0, 0, 0, 0, 0, 0, 0, 17121, 0, 5766, +0, 0, 31467, 0, 0, 0, 0, 1248, 0, 0, +1434, 19701, 17138, 0, 0, 27916, 0, 0, 0, 0, +0, 0, 0, 0, 18219, 9642, 15451, 0, 0, 0, +0, 35465, 0, 31739, 36158, 0, 0, 0, 0, 15456, +0, 0, 0, 26544, 0, 0, 0, 31070, 0, 0, +0, 0, 0, 0, 22619, 0, 0, 0, 0, 0, +0, 0, 37742, 10688, 0, 0, 17209, 8232, 0, 0, +0, 0, 0, 0, 0, 14955, 32116, 0, 0, 0, +0, 5752, 0, 0, 17348, 0, 0, 0, 0, 0, +0, 29722, 0, 0, 0, 0, 12844, 0, 0, 522, +5638, 38782, 0, 0, 0, 0, 0, 37214, 0, 0, +0, 0, 6554, 0, 0, 0, 0, 2222, 29763, 0, +0, 0, 0, 0, 0, 0, 28618, 12279, 23242, 26299, +21373, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 9414, 0, 1138, 0, 0, 33212, 0, 0, +0, 0, 0, 0, 0, 39165, 0, 0, 0, 0, +0, 25765, 0, 20572, 0, 7906, 0, 0, 0, 0, +28884, 686, 0, 0, 0, 0, 0, 0, 1605, 0, +31411, 0, 13615, 0, 0, 0, 0, 0, 0, 0, +13929, 0, 0, 0, 0, 0, 0, 0, 23640, 0, +0, 0, 0, 0, 0, 0, 0, 0, 27724, 14091, +0, 3524, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 14094, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 28189, 0, 0, +0, 0, 0, 0, 0, 0, 0, 38383, 16880, 0, +0, 0, 40579, 0, 0, 0, 0, 1492, 0, 0, +0, 0, 0, 30001, 0, 0, 0, 1292, 0, 0, +7521, 0, 0, 0, 5441, 0, 40211, 0, 0, 0, +0, 14446, 0, 0, 0, 0, 0, 0, 0, 35544, +0, 0, 34226, 0, 0, 3564, 9287, 39528, 0, 0, +0, 0, 0, 0, 25355, 0, 0, 36677, 0, 1876, +0, 12428, 22811, 0, 0, 36302, 34721, 19546, 0, 0, +0, 0, 0, 0, 0, 18471, 20837, 25822, 4077, 0, +4366, 31245, 25303, 0, 0, 0, 5010, 12258, 0, 35548, +0, 25135, 0, 0, 11980, 9249, 0, 38920, 22593, 0, +0, 37953, 624, 13621, 0, 0, 10737, 0, 0, 32315, +11588, 0, 0, 0, 0, 0, 0, 0, 0, 38370, +4996, 8630, 0, 22594, 0, 22691, 26907, 17603, 37691, 11048, +1461, 0, 0, 25359, 0, 25360, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 35298, 39364, 0, 13844, +30992, 2970, 0, 24525, 0, 40235, 0, 38414, 22948, 207, +0, 10337, 0, 3883, 34352, 0, 0, 0, 27020, 11056, +6894, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 26912, 0, 0, 0, 0, 30037, +5014, 30261, 22906, 25466, 14377, 0, 1829, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 37140, 6225, 0, 9575, 27178, 0, 0, 28292, +21313, 39982, 18473, 1765, 41226, 35179, 25178, 0, 18009, 25782, +0, 0, 16732, 6900, 0, 39949, 12436, 0, 0, 6901, +0, 0, 0, 41282, 0, 0, 20876, 37870, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32950, 41157, 27349, 6119, 7203, 25285, 0, 652, 9968, 10629, +35304, 0, 35305, 0, 0, 15341, 35695, 11663, 39240, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 14129, 0, 0, 8681, +0, 0, 21757, 24145, 0, 5951, 0, 12514, 35727, 35419, +0, 7958, 27577, 27578, 36623, 15487, 11160, 10715, 0, 0, +0, 10358, 0, 0, 10315, 23804, 23592, 0, 27731, 0, +655, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 14031, 15433, +0, 0, 0, 0, 0, 13, 18496, 0, 29732, 0, +0, 4152, 0, 0, 27843, 3307, 0, 30517, 0, 0, +21801, 0, 14299, 0, 0, 1686, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 32749, 26748, 10792, 0, 0, 40296, 0, 9351, 12121, +0, 12526, 0, 31469, 0, 26527, 21951, 10910, 28449, 32702, +0, 38206, 0, 0, 2039, 23484, 30187, 30047, 5382, 0, +20888, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 38519, 0, 0, 34248, 0, 0, +31264, 39125, 5447, 10317, 0, 245, 22509, 26001, 7646, 9258, +0, 0, 0, 22954, 0, 0, 0, 33860, 9934, 8506, +419, 40891, 19968, 0, 11997, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 5729, 31470, 0, 0, 4983, +21053, 0, 0, 0, 5855, 19196, 15439, 0, 0, 0, +0, 35783, 14882, 10386, 0, 12310, 0, 0, 10467, 21524, +25723, 23753, 5046, 26422, 15447, 40201, 0, 26844, 18925, 12718, +22662, 10807, 12130, 28458, 3798, 31048, 14144, 22919, 38521, 33130, +0, 0, 1482, 0, 0, 33639, 0, 0, 0, 0, +9096, 13811, 0, 0, 32181, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 6834, 0, 1920, 22698, +0, 0, 0, 38005, 0, 22034, 29741, 0, 36314, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32497, 0, 0, 21882, 8647, 1921, 32978, 0, 0, 0, +39086, 37027, 21330, 0, 0, 0, 0, 0, 34121, 30235, +0, 268, 10087, 10585, 5105, 0, 21857, 0, 2392, 12324, +21207, 36640, 32617, 0, 4053, 35080, 0, 8705, 28798, 809, +2783, 0, 33654, 0, 0, 9872, 0, 3803, 0, 13011, +41235, 0, 0, 0, 30802, 4905, 22454, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 11414, 0, +31517, 0, 22310, 18202, 20773, 20323, 16528, 29951, 578, 0, +0, 8652, 0, 15696, 0, 0, 12725, 1854, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 11415, +0, 41058, 19207, 0, 0, 0, 0, 0, 0, 16901, +0, 10411, 20529, 0, 27541, 26626, 15288, 3616, 18074, 19165, +0, 0, 34519, 38883, 4055, 9174, 24304, 0, 28665, 7665, +29801, 0, 0, 0, 0, 18075, 0, 0, 16516, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 16339, 38089, 31364, 0, 0, 0, 0, 16902, +5, 19035, 39583, 3812, 13304, 0, 12899, 0, 0, 0, +0, 19072, 35480, 0, 26372, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 12161, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 35855, 21621, 0, 0, 0, 11781, 0, 38392, +0, 0, 10032, 0, 36221, 1293, 163, 31929, 21248, 0, +0, 0, 5535, 13030, 22068, 0, 0, 37342, 4067, 37964, +0, 2558, 0, 38971, 26017, 0, 22299, 9108, 38972, 0, +0, 0, 0, 0, 16914, 6239, 0, 3816, 0, 41163, +22991, 0, 0, 26494, 18385, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 27391, 0, 13981, 18084, 0, 0, 15265, 16201, +0, 33510, 13982, 0, 4085, 0, 0, 0, 37743, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 19340, 33028, +14275, 12602, 0, 37748, 0, 0, 0, 12921, 0, 10008, +0, 25797, 11796, 24109, 0, 26025, 41165, 0, 0, 18667, +11234, 3892, 26286, 31113, 12369, 40651, 32198, 35336, 9796, 16014, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 40020, 0, 0, 18767, 0, 1864, 26949, +36517, 15662, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 39788, 32884, 0, 0, 35242, 7002, 18946, +10122, 35243, 0, 0, 0, 0, 19222, 4334, 7352, 39504, +36520, 30969, 30201, 107, 37080, 0, 0, 11149, 0, 17817, +14059, 37989, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 38132, +6578, 0, 12617, 0, 0, 0, 31057, 0, 12381, 31602, +0, 38723, 29870, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 37081, 0, 0, 0, 0, 17827, +0, 0, 39826, 26885, 0, 16609, 16304, 30747, 22201, 3505, +36490, 6304, 0, 6305, 0, 827, 24184, 27408, 0, 39508, +0, 0, 0, 0, 0, 17828, 0, 22379, 0, 38915, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 21933, 0, 0, +33054, 12396, 16305, 36440, 2470, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +16640, 0, 0, 0, 0, 0, 0, 19092, 0, 0, +0, 18398, 31880, 0, 0, 0, 17979, 0, 0, 9552, +0, 0, 0, 0, 0, 0, 0, 0, 0, 33240, +0, 0, 0, 16963, 4363, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 24414, +0, 0, 0, 0, 0, 0, 0, 0, 0, 12951, +5410, 13066, 24436, 33079, 36525, 0, 0, 0, 0, 0, +0, 0, 0, 9856, 0, 39052, 26498, 20045, 11357, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 4673, 25588, 25773, 12067, 35354, 0, 5543, 0, 19023, +0, 35999, 0, 0, 0, 0, 0, 0, 2048, 22156, +28705, 6866, 38135, 4578, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 38533, 0, 31763, 19544, 0, +16229, 37948, 0, 0, 0, 0, 0, 0, 0, 7027, +0, 0, 0, 6023, 0, 0, 0, 0, 0, 0, +0, 9374, 0, 0, 0, 11443, 0, 0, 0, 27139, +13081, 0, 0, 38631, 12419, 11444, 0, 0, 0, 0, +0, 0, 0, 0, 0, 30425, 19180, 0, 0, 0, +0, 0, 0, 0, 0, 6315, 0, 0, 0, 0, +0, 17566, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 21493, 21006, 14308, 37686, 0, +0, 34884, 4134, 0, 0, 0, 2278, 17020, 6634, 21007, +21008, 0, 0, 0, 0, 0, 25372, 0, 0, 0, +0, 37692, 0, 0, 36723, 0, 36050, 0, 9772, 0, +0, 0, 5290, 0, 0, 0, 0, 0, 0, 0, +0, 39059, 19998, 5940, 0, 0, 39060, 0, 0, 0, +15711, 0, 9969, 27840, 10344, 12107, 38935, 0, 0, 0, +1771, 0, 30585, 29673, 0, 29766, 0, 0, 8503, 18497, +24932, 11921, 40402, 25049, 0, 10653, 0, 5296, 10370, 28599, +9317, 0, 37249, 0, 34261, 0, 0, 30278, 25116, 0, +0, 0, 0, 14883, 21916, 0, 0, 24910, 39481, 0, +0, 18060, 31160, 33182, 4951, 0, 37497, 37647, 0, 0, +0, 20636, 0, 36778, 0, 0, 0, 0, 31276, 0, +38751, 0, 0, 33756, 0, 0, 25246, 9713, 37343, 0, +0, 0, 0, 0, 31998, 1449, 36799, 0, 36106, 0, +33817, 36806, 16701, 0, 0, 0, 0, 0, 29523, 0, +0, 39053, 0, 0, 0, 0, 38034, 8285, 16171, 0, +0, 25039, 0, 0, 0, 0, 14454, 0, 4221, 4895, +29981, 9, 0, 0, 0, 40814, 0, 0, 11475, 35646, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 791, 3454, 0, 0, 25373, 0, 0, +0, 0, 0, 0, 18585, 0, 0, 13622, 27013, 0, +41115, 0, 0, 0, 0, 0, 0, 35647, 0, 0, +7652, 7653, 0, 0, 0, 20578, 0, 0, 0, 27341, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 287, 0, 22571, 22844, 22908, 12751, 40037, +0, 24527, 0, 0, 0, 36819, 28648, 0, 0, 25467, +0, 20112, 0, 0, 0, 0, 0, 0, 0, 0, +35670, 0, 25470, 0, 0, 17767, 24449, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 11664, 12496, 0, 0, 0, +0, 8605, 0, 0, 0, 0, 0, 0, 0, 36738, +2497, 5424, 36054, 0, 37231, 894, 0, 1896, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 23988, 0, 0, 0, 0, 0, +2574, 0, 33119, 0, 3466, 0, 0, 0, 0, 38201, +15920, 0, 7505, 0, 0, 28405, 9338, 0, 0, 6675, +0, 0, 0, 0, 9514, 0, 39464, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +2771, 21110, 0, 0, 10911, 0, 28940, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 35755, 0, 0, 21525, 38559, 11321, 0, 6443, 0, +23491, 2418, 0, 0, 4198, 0, 0, 0, 4903, 0, +0, 0, 39692, 8856, 0, 0, 0, 31031, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 6444, 0, 0, 0, 3474, 0, 0, 0, 223, +16124, 0, 31092, 0, 0, 0, 36315, 0, 22687, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 38424, 40370, 0, 28002, 0, +0, 0, 0, 21331, 0, 0, 0, 0, 0, 0, +40202, 2687, 0, 0, 1056, 21241, 39482, 11754, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32029, 0, 39719, 31518, 0, 0, 13269, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 6529, 7870, 0, +0, 13358, 2996, 552, 0, 0, 0, 0, 0, 17807, +0, 0, 0, 0, 0, 0, 301, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38155, 4016, 0, 0, 30147, 0, 0, 10217, 15259, +36159, 0, 32373, 0, 0, 0, 0, 0, 0, 8204, +1627, 0, 15904, 0, 0, 0, 24175, 25794, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 4913, 35161, 0, 0, 0, 38788, 0, +17586, 0, 6547, 0, 0, 0, 0, 16563, 34003, 0, +0, 0, 0, 0, 0, 0, 0, 0, 39762, 0, +15661, 0, 0, 0, 28213, 31056, 0, 0, 0, 15663, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 13034, 0, 0, 0, 0, 0, 0, 13277, 0, +0, 0, 0, 40533, 0, 27502, 37070, 0, 0, 25798, +0, 37363, 16413, 0, 0, 0, 0, 0, 37379, 0, +23828, 14673, 0, 17818, 0, 0, 27295, 32397, 0, 0, +8362, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 28578, 0, 0, 0, 0, 29329, 0, 0, +0, 0, 0, 0, 0, 19976, 0, 5585, 0, 20206, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +11645, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 6798, 0, 0, 0, 17829, 0, 0, 0, 0, +16308, 36180, 16419, 0, 13392, 0, 12051, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 9766, 0, 0, +38730, 0, 0, 0, 0, 0, 0, 20100, 0, 0, +15912, 0, 0, 0, 0, 0, 0, 6803, 0, 0, +0, 0, 0, 0, 0, 36184, 0, 0, 0, 0, +0, 0, 0, 16816, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 8981, 0, 0, +0, 0, 0, 29526, 34916, 0, 30459, 0, 0, 0, +0, 13648, 0, 0, 0, 0, 33377, 0, 27360, 0, +0, 0, 0, 0, 0, 30790, 0, 0, 37299, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38611, 0, 0, 0, 0, 0, 0, 0, 247, +0, 0, 0, 0, 0, 25933, 3846, 0, 15729, 0, +0, 0, 14544, 9897, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 20226, 0, 0, 0, 0, 10186, +0, 0, 3791, 0, 0, 0, 18061, 0, 40907, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 16036, 0, 0, 39878, 0, 38826, 0, +6039, 9018, 37835, 5091, 21869, 0, 0, 0, 0, 0, +0, 1772, 0, 25146, 2658, 0, 0, 0, 25475, 36068, +2659, 0, 0, 39693, 0, 0, 9340, 21855, 26610, 0, +0, 28003, 0, 0, 31068, 3545, 0, 0, 0, 0, +0, 0, 20337, 39487, 0, 0, 23173, 0, 0, 9004, +0, 0, 0, 0, 18557, 0, 40784, 0, 0, 0, +0, 5277, 0, 32308, 0, 25535, 0, 0, 0, 0, +0, 22399, 0, 0, 0, 0, 0, 0, 31414, 0, +0, 0, 15709, 0, 9619, 4247, 13781, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 13782, 31420, +0, 15629, 0, 9078, 38486, 7315, 0, 0, 32941, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 11311, 0, 21448, 31788, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 4612, +0, 9693, 0, 0, 0, 31451, 0, 0, 0, 0, +0, 23579, 0, 0, 19470, 0, 0, 38937, 0, 0, +14755, 0, 0, 0, 1616, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 1617, 0, 0, 0, +0, 24939, 0, 0, 0, 0, 0, 31811, 0, 0, +13432, 0, 24949, 39571, 29236, 15125, 0, 0, 0, 0, +25869, 0, 0, 40742, 0, 0, 0, 0, 0, 0, +0, 13678, 0, 0, 0, 0, 0, 0, 1654, 0, +6294, 41147, 0, 0, 0, 0, 0, 0, 0, 0, +34520, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 1294, 0, 0, 0, 15744, 0, 34651, 30620, 0, +11290, 0, 10290, 0, 0, 0, 0, 8924, 0, 0, +19882, 0, 0, 16754, 0, 5719, 0, 1793, 11298, 0, +0, 30207, 14986, 0, 0, 0, 0, 0, 0, 0, +3565, 0, 0, 0, 0, 391, 14290, 0, 0, 0, +0, 0, 0, 0, 0, 5639, 0, 38798, 0, 4979, +26908, 10250, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 35168, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 1165, 22568, 35012, +0, 0, 5514, 2295, 22785, 37698, 24124, 22425, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 30136, 32942, 0, +0, 0, 0, 0, 0, 35174, 0, 0, 7316, 9251, +11063, 25597, 0, 0, 0, 0, 0, 25179, 7824, 11456, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 25544, 0, 0, 0, 0, 0, +0, 0, 19608, 0, 0, 6523, 11724, 31789, 33374, 0, +0, 25180, 35307, 0, 0, 38938, 0, 12515, 8608, 36892, +0, 23043, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +3985, 4613, 38939, 21449, 0, 24147, 0, 0, 2537, 0, +21450, 28123, 0, 0, 0, 0, 0, 2538, 3309, 34928, +6436, 30436, 0, 21425, 20002, 0, 0, 0, 0, 0, +21771, 31804, 0, 34892, 0, 2660, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32966, 20330, 15538, 0, 4637, 0, 26779, 22107, 11086, 0, +15448, 32353, 0, 10749, 24464, 40897, 0, 0, 7994, 20959, +0, 21327, 0, 15677, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 21196, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 8648, 0, 0, 0, 10750, 0, 19, +0, 26845, 0, 0, 0, 0, 0, 0, 0, 0, +33386, 4487, 13346, 0, 38425, 32607, 17532, 24868, 0, 0, +26274, 32992, 0, 8974, 20332, 2624, 0, 7051, 0, 0, +0, 6289, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +15608, 0, 0, 0, 29381, 26854, 0, 0, 0, 25912, +0, 0, 9357, 0, 0, 0, 10283, 39742, 34867, 29568, +1271, 0, 20530, 0, 8031, 0, 0, 0, 0, 0, +0, 23946, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 39743, 0, 0, 27877, 0, 0, 21456, 14784, 0, +34859, 0, 11471, 0, 0, 0, 1024, 20531, 2997, 0, +0, 0, 18898, 26433, 2081, 38340, 27656, 0, 41186, 37675, +38054, 19015, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 24792, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 20300, 0, 0, 0, +0, 0, 40428, 0, 0, 0, 0, 0, 0, 0, +5311, 0, 37509, 0, 0, 0, 0, 0, 0, 0, +14569, 0, 0, 11696, 23528, 0, 37929, 0, 19455, 0, +20565, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 22705, 0, 13989, 0, 0, 0, 0, 0, 34908, +0, 0, 0, 0, 0, 0, 3636, 21347, 27887, 0, +0, 0, 0, 0, 27405, 0, 0, 22706, 0, 0, +0, 0, 0, 0, 0, 0, 10123, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 34911, 0, +21168, 0, 0, 0, 0, 0, 0, 0, 27128, 0, +37516, 0, 2214, 13737, 0, 0, 0, 0, 0, 0, +0, 0, 0, 33055, 0, 0, 0, 34422, 32667, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 33064, 17270, 0, 7355, 0, 0, 0, 0, 0, +0, 0, 0, 40350, 0, 20921, 0, 40411, 0, 0, +15910, 0, 0, 0, 19128, 0, 0, 0, 0, 0, +0, 0, 0, 23577, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 30292, 0, 0, 0, 0, 0, +0, 27302, 0, 3390, 0, 35619, 0, 0, 0, 0, +10244, 0, 13505, 0, 0, 11719, 0, 32743, 4368, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 12497, 0, 0, 0, 0, 0, +0, 0, 21271, 0, 21274, 29150, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 14628, 0, +20513, 0, 0, 0, 0, 16873, 0, 39958, 0, 33642, +0, 24476, 8011, 0, 1727, 0, 0, 0, 12555, 0, +0, 23290, 31822, 0, 0, 0, 0, 0, 5485, 7088, +0, 0, 0, 0, 0, 27289, 29628, 32715, 0, 22542, +0, 0, 0, 0, 0, 0, 0, 0, 5152, 0, +12397, 0, 0, 0, 0, 0, 0, 0, 0, 32784, +0, 0, 0, 4581, 0, 0, 0, 1678, 25464, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 20261, 0, 0, 0, 0, +20262, 0, 27214, 32694, 754, 30225, 0, 22208, 0, 0, +0, 0, 0, 0, 0, 0, 0, 8327, 0, 10830, +10538, 0, 40185, 9314, 0, 0, 0, 9628, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 5023, +0, 0, 1684, 11554, 0, 0, 2539, 0, 0, 0, +32026, 14465, 0, 35021, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 7643, 38202, +0, 0, 0, 7704, 0, 0, 0, 0, 0, 0, +14400, 37253, 0, 0, 0, 0, 0, 11871, 0, 0, +0, 0, 0, 0, 0, 0, 13656, 33352, 0, 20957, +0, 0, 0, 0, 0, 21772, 0, 26780, 0, 37274, +0, 0, 11323, 8838, 30347, 0, 30095, 23996, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 36265, 0, 12719, 0, 0, 0, +0, 0, 0, 28345, 0, 13679, 31520, 31016, 0, 0, +0, 19507, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 34783, 0, 34948, 0, 0, 0, +0, 19510, 21919, 0, 0, 184, 0, 0, 0, 18566, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 6967, 40847, 0, 0, 0, 0, 6968, 0, 228, +0, 0, 0, 0, 12017, 0, 2473, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 33358, 12591, 0, 41255, 0, 23323, 0, 0, +0, 0, 39287, 0, 0, 0, 0, 0, 12183, 23191, +14738, 21646, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 26041, +0, 0, 0, 0, 0, 10493, 25494, 24310, 0, 0, +0, 0, 14447, 0, 0, 17271, 0, 0, 0, 0, +0, 26952, 0, 0, 21357, 32226, 7902, 0, 0, 25604, +0, 0, 0, 33366, 9681, 0, 12656, 0, 19964, 7904, +0, 25847, 37436, 13551, 19985, 18439, 23936, 0, 20067, 0, +0, 35538, 0, 0, 9955, 21363, 16631, 26079, 0, 0, +17953, 0, 37217, 0, 0, 0, 0, 0, 0, 21848, +0, 0, 0, 0, 0, 31328, 0, 0, 0, 1435, +0, 0, 1436, 33739, 0, 12875, 0, 0, 1438, 0, +0, 0, 0, 0, 0, 0, 0, 0, 5437, 0, +0, 0, 0, 40387, 0, 0, 0, 25488, 0, 0, +0, 0, 27468, 0, 0, 0, 0, 0, 0, 0, +12684, 0, 0, 11685, 0, 0, 38574, 0, 0, 0, +535, 17762, 0, 32796, 0, 0, 0, 0, 0, 0, +0, 12982, 27168, 0, 0, 0, 0, 15325, 0, 0, +0, 9350, 19018, 0, 0, 0, 0, 0, 21773, 2932, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 17577, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 20963, 25600, 0, 0, 0, +39744, 0, 0, 0, 0, 0, 0, 0, 2371, 0, +0, 0, 0, 0, 0, 0, 0, 0, 17210, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 16358, +0, 0, 0, 2673, 0, 30429, 0, 0, 17075, 0, +0, 31307, 22177, 36869, 0, 8367, 0, 0, 0, 138, +33370, 27522, 25685, 0, 0, 0, 0, 0, 603, 36725, +0, 0, 0, 0, 0, 0, 0, 0, 11959, 0, +0, 11598, 0, 0, 41286, 32588, 0, 20189, 0, 0, +0, 0, 8299, 37617, 0, 2040, 3037, 29937, 0, 2041, +0, 0, 0, 0, 0, 8300, 0, 29356, 20846, 0, +0, 0, 0, 10933, 21534, 0, 0, 0, 0, 11679, +18549, 0, 29096, 0, 24106, 24055, 39939, 0, 0, 0, +5537, 0, 0, 0, 17900, 0, 0, 24982, 40397, 0, +16711, 0, 32923, 0, 0, 25265, 0, 0, 5243, 0, +6320, 21386, 0, 0, 0, 26967, 0, 0, 32144, 0, +0, 0, 0, 0, 0, 39452, 0, 0, 0, 68, +4345, 23061, 0, 26971, 0, 0, 0, 24687, 27304, 5727, +0, 32722, 27525, 0, 11312, 0, 0, 0, 35401, 14702, +0, 0, 39550, 0, 0, 0, 0, 0, 0, 0, +38863, 0, 0, 0, 0, 0, 0, 33617, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 18477, +0, 40293, 0, 28331, 0, 0, 0, 5952, 0, 0, +24770, 0, 15441, 10845, 14401, 0, 24402, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 1751, +0, 0, 0, 0, 0, 0, 0, 29177, 0, 14884, +0, 0, 24621, 0, 0, 0, 0, 0, 0, 0, +0, 13298, 0, 0, 0, 0, 0, 0, 37911, 0, +0, 19789, 22455, 0, 24784, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 20137, 0, 0, 29183, +0, 0, 15174, 0, 1140, 0, 24718, 0, 0, 0, +0, 0, 0, 0, 0, 29363, 0, 4022, 0, 0, +0, 0, 0, 0, 14501, 0, 31563, 0, 0, 0, +17967, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 3557, 12223, 0, 0, 0, +0, 0, 18621, 0, 0, 0, 17329, 0, 0, 0, +0, 0, 14820, 0, 0, 0, 0, 0, 0, 40126, +18696, 0, 0, 0, 0, 0, 0, 0, 21499, 0, +0, 0, 0, 0, 24928, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 34228, +0, 6881, 0, 11040, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 19475, 0, +0, 0, 0, 0, 0, 0, 0, 31312, 0, 0, +2491, 0, 0, 0, 0, 24204, 13617, 10618, 0, 5083, +7054, 38301, 11049, 263, 13785, 8149, 36664, 0, 7693, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 20787, 0, 0, 0, 0, 0, 0, 0, +0, 0, 25995, 4549, 0, 0, 0, 15249, 0, 0, +0, 0, 0, 0, 35061, 70, 723, 0, 22950, 0, +26972, 7317, 0, 14458, 22490, 0, 30778, 15633, 24131, 8377, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 15857, 28178, 1003, 12692, +34240, 0, 0, 0, 15231, 21500, 0, 33254, 0, 31790, +0, 17957, 6719, 0, 2765, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 27031, 0, 0, 6560, 0, 13224, +37141, 18704, 7056, 0, 0, 9138, 0, 30672, 3051, 11392, +1649, 0, 0, 10058, 29903, 20882, 23411, 0, 29684, 37481, +30448, 0, 31192, 8609, 0, 0, 15511, 0, 35421, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 32589, 0, 9586, 34246, 28183, 27818, 0, 40604, +0, 0, 29733, 32250, 0, 0, 0, 0, 38306, 17123, +0, 0, 40294, 0, 13649, 0, 0, 29172, 0, 0, +32846, 24457, 0, 34250, 14403, 0, 0, 36141, 39465, 0, +15208, 40721, 0, 15354, 0, 21513, 23939, 30337, 38238, 0, +14404, 0, 40865, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 34251, 0, +0, 17879, 0, 23264, 0, 0, 0, 0, 11674, 0, +0, 0, 0, 23485, 0, 34772, 28187, 0, 23417, 9515, +0, 0, 0, 0, 0, 0, 0, 0, 24328, 6815, +0, 41292, 0, 0, 38308, 23486, 12311, 0, 30096, 5966, +0, 11743, 19570, 0, 33567, 0, 0, 10751, 34494, 32481, +4488, 10924, 0, 0, 224, 0, 1778, 0, 0, 0, +0, 0, 0, 0, 0, 6727, 0, 0, 0, 0, +0, 0, 0, 0, 40245, 5967, 36689, 23421, 26932, 33997, +36690, 15191, 24082, 0, 0, 23899, 22303, 0, 0, 24951, +0, 36407, 0, 0, 0, 0, 0, 26105, 0, 0, +0, 28904, 0, 10720, 22577, 34949, 0, 0, 0, 0, +29790, 2625, 0, 32030, 23291, 0, 24477, 0, 0, 13961, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +39088, 0, 0, 0, 40151, 0, 31522, 0, 30997, 39932, +0, 0, 0, 28194, 0, 0, 15368, 16134, 15289, 0, +0, 2998, 1272, 20637, 40329, 10094, 37180, 35481, 19254, 0, +0, 23509, 9728, 19442, 17658, 17888, 41059, 16742, 11097, 4169, +23510, 16674, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 3426, 0, 22936, +5989, 0, 0, 0, 0, 0, 16743, 0, 0, 0, +35586, 0, 0, 0, 0, 5819, 0, 0, 6610, 8555, +10873, 0, 32640, 8293, 22336, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +26677, 0, 0, 0, 0, 30613, 0, 0, 0, 0, +0, 0, 0, 0, 0, 6572, 3001, 36226, 15773, 15664, +0, 41191, 9189, 0, 0, 37930, 39789, 0, 0, 12618, +3272, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 33031, 0, 0, 0, 0, 41167, 186, 10201, +0, 0, 22960, 0, 5580, 35244, 0, 0, 0, 21090, +0, 0, 0, 0, 0, 0, 0, 0, 0, 13729, +713, 16416, 2340, 0, 1331, 0, 0, 0, 0, 38669, +23539, 0, 0, 0, 0, 0, 21091, 0, 0, 18950, +0, 15877, 0, 20546, 0, 16755, 22202, 0, 0, 0, +0, 0, 17250, 2482, 0, 5324, 16756, 0, 0, 7014, +0, 1072, 14964, 0, 0, 0, 0, 0, 0, 0, +0, 33818, 21578, 0, 9918, 0, 0, 0, 0, 0, +32289, 0, 13067, 20047, 21584, 0, 0, 0, 0, 0, +0, 0, 0, 2341, 27836, 38356, 36001, 0, 0, 0, +3736, 0, 2344, 0, 0, 0, 0, 16771, 21865, 17330, +0, 0, 16989, 19129, 0, 0, 0, 28869, 0, 0, +21602, 21603, 0, 12247, 0, 16777, 0, 21056, 0, 0, +17930, 18151, 0, 0, 32241, 37460, 0, 38006, 24997, 17760, +0, 0, 0, 0, 0, 37223, 11451, 0, 0, 0, +0, 0, 0, 0, 0, 0, 21103, 0, 34108, 0, +14472, 11998, 0, 35786, 0, 0, 0, 0, 0, 0, +0, 0, 31626, 26053, 13496, 36592, 0, 0, 0, 0, +0, 0, 0, 26822, 14018, 30391, 35151, 14242, 0, 0, +8936, 0, 0, 0, 0, 11600, 0, 0, 0, 0, +0, 0, 0, 0, 7122, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 10045, 0, 0, 0, 0, +0, 0, 7960, 0, 0, 0, 7973, 40613, 12123, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 669, 0, 0, 23219, 26963, 0, 5882, 22269, 32242, +25851, 0, 0, 0, 0, 2889, 37667, 0, 8876, 0, +31137, 0, 7557, 0, 0, 2760, 0, 21186, 14828, 0, +38849, 0, 23734, 0, 0, 332, 0, 0, 0, 0, +30460, 39880, 0, 11452, 0, 2099, 40237, 1175, 2971, 39235, +7923, 15580, 0, 41238, 33846, 0, 8153, 0, 0, 0, +35013, 0, 0, 1831, 0, 881, 32830, 27032, 35403, 0, +10632, 4750, 0, 35699, 40379, 0, 0, 0, 0, 3579, +0, 0, 0, 0, 0, 0, 22911, 0, 0, 0, +36125, 0, 0, 0, 0, 0, 0, 0, 0, 37637, +0, 0, 0, 0, 14190, 0, 0, 19630, 23844, 0, +35730, 0, 0, 0, 31193, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 844, 11999, 4554, +15545, 0, 0, 0, 0, 28452, 0, 10067, 23847, 0, +0, 0, 39466, 0, 0, 0, 0, 0, 26002, 0, +0, 23659, 9818, 0, 0, 9695, 0, 0, 12876, 39900, +20241, 9597, 27071, 20713, 6937, 463, 16185, 0, 0, 0, +40084, 0, 12312, 0, 0, 0, 0, 0, 38181, 0, +0, 0, 38380, 35788, 0, 9026, 0, 0, 9527, 36322, +26188, 10394, 700, 20629, 19855, 0, 0, 31359, 5051, 0, +0, 14219, 0, 0, 0, 0, 10088, 0, 0, 29569, +15583, 16905, 39745, 11770, 38071, 0, 5886, 4642, 0, 0, +0, 0, 0, 0, 0, 0, 0, 39746, 0, 15726, +0, 32549, 11229, 17670, 4779, 24013, 13458, 0, 33512, 7149, +0, 30056, 28672, 39764, 0, 0, 0, 0, 0, 0, +21128, 19670, 5702, 2476, 0, 0, 13469, 17444, 0, 26124, +5205, 0, 0, 28214, 17445, 9848, 0, 0, 1598, 0, +4465, 5823, 18942, 21287, 34541, 16350, 0, 0, 8363, 3930, +0, 0, 0, 1348, 41077, 11827, 0, 16289, 32221, 7678, +10497, 0, 0, 0, 0, 0, 0, 0, 0, 35104, +38681, 0, 21171, 0, 19176, 0, 37611, 0, 21206, 0, +0, 0, 0, 0, 0, 25281, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 8692, 0, 13012, 22874, 0, 0, +0, 1675, 0, 0, 13160, 0, 0, 1815, 0, 0, +0, 0, 0, 20108, 11034, 0, 0, 0, 5881, 0, +36678, 34886, 1000, 0, 3148, 12102, 0, 34887, 0, 0, +0, 0, 0, 0, 0, 0, 0, 9352, 34607, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 3556, 0, 26141, 34460, 35631, 35632, 3070, 0, 0, +10049, 11450, 0, 0, 0, 0, 27528, 28177, 25268, 28646, +39538, 0, 7311, 7779, 0, 0, 0, 0, 28647, 0, +19995, 22491, 2100, 20871, 29249, 435, 35672, 0, 0, 0, +0, 0, 0, 0, 0, 0, 34468, 0, 29350, 0, +34919, 26662, 15342, 29586, 0, 33826, 0, 0, 0, 0, +0, 0, 0, 36884, 0, 541, 0, 0, 0, 31953, +18882, 16103, 38121, 24598, 0, 0, 4632, 41141, 18544, 0, +31954, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 26597, 0, 0, 23064, 0, 14035, 23895, 35756, 0, +21514, 6526, 0, 13658, 28188, 38700, 4594, 0, 0, 1010, +9353, 26517, 0, 13951, 5663, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 5097, 0, 20945, 0, 21758, +0, 12300, 34369, 0, 21776, 0, 6445, 30792, 22650, 0, +0, 0, 10925, 0, 12832, 35191, 15049, 16334, 16186, 36079, +0, 0, 0, 29905, 0, 0, 0, 0, 0, 0, +0, 21115, 0, 0, 0, 0, 41102, 0, 0, 0, +0, 19297, 27640, 39722, 0, 0, 11616, 40519, 0, 11756, +0, 0, 0, 0, 0, 3910, 0, 3090, 0, 0, +33389, 16337, 0, 4499, 26718, 20638, 35329, 34957, 31741, 41160, +1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 37046, 0, 18751, 0, 0, 0, 0, 29915, 30719, +0, 7620, 26678, 0, 0, 0, 0, 0, 0, 0, +0, 17671, 0, 0, 0, 0, 0, 0, 27317, 5153, +14739, 37072, 33189, 34977, 27948, 0, 0, 0, 0, 0, +0, 0, 0, 0, 11968, 0, 23697, 0, 0, 0, +0, 0, 19262, 0, 0, 15160, 0, 0, 0, 18675, +0, 36702, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 32407, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 31235, 0, 36240, 31638, 0, 0, 38532, +33080, 0, 0, 0, 24829, 0, 0, 0, 16991, 0, +0, 0, 0, 23724, 0, 0, 0, 0, 0, 0, +18152, 19004, 0, 0, 0, 0, 2649, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 39330, 0, +34370, 0, 0, 0, 0, 0, 0, 0, 0, 0, +36252, 15918, 0, 0, 0, 24681, 0, 7916, 0, 37226, +0, 0, 0, 0, 0, 23231, 0, 0, 0, 0, +23467, 12499, 37479, 0, 0, 0, 0, 0, 8610, 14756, +0, 23248, 0, 8328, 0, 25017, 0, 0, 0, 0, +30793, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 39747, 0, 0, 0, 13021, 0, 27755, +0, 0, 35910, 23694, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 17073, 0, 0, 38119, 35648, 0, +2179, 35649, 8633, 0, 5943, 0, 39378, 35702, 0, 38013, +5033, 0, 27993, 0, 0, 0, 0, 0, 13730, 3228, +24830, 0, 10044, 32143, 0, 0, 0, 0, 0, 0, +24919, 13611, 0, 0, 0, 14748, 0, 0, 0, 0, +5166, 0, 0, 13842, 0, 0, 0, 0, 0, 0, +1748, 10893, 0, 0, 0, 14829, 0, 36952, 0, 0, +0, 0, 0, 0, 0, 17021, 23938, 27523, 15634, 0, +39131, 0, 0, 0, 0, 7924, 26582, 0, 0, 0, +4192, 0, 0, 29587, 0, 35703, 0, 34761, 0, 0, +30077, 39983, 12281, 0, 0, 0, 0, 0, 34109, 0, +26665, 33732, 0, 0, 0, 0, 0, 18212, 37486, 10913, +39332, 0, 0, 22323, 0, 0, 0, 14865, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 39696, 22651, +37644, 0, 12877, 0, 0, 0, 22145, 0, 0, 0, +40421, 0, 32183, 0, 1025, 0, 4500, 0, 20639, 0, +0, 0, 9786, 0, 0, 0, 3354, 24014, 0, 0, +0, 0, 0, 0, 1317, 0, 0, 23972, 0, 40021, +0, 0, 0, 0, 0, 0, 7272, 1634, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 2000, 25497, +0, 0, 0, 0, 0, 6084, 24983, 14366, 35002, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 31939, +0, 0, 38175, 0, 0, 0, 0, 0, 0, 5092, +0, 31266, 30090, 0, 10852, 0, 0, 0, 0, 31523, +0, 0, 0, 0, 16269, 0, 7435, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 10998, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32057, 0, 0, 26262, 0, 0, 0, 7490, 0, 0, +4876, 0, 7961, 0, 3992, 0, 0, 0, 0, 0, +0, 0, 0, 6120, 16440, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 31742, 0, 0, 0, 0, +0, 1546, 37364, 28215, 31750, 0, 0, 0, 0, 23027, +0, 0, 0, 0, 0, 0, 13502, 0, 35634, 0, +0, 30300, 12431, 0, 30307, 29945, 0, 0, 0, 264, +0, 29228, 3456, 0, 0, 0, 25137, 0, 25780, 36118, +22426, 4423, 29581, 36199, 0, 0, 8676, 29352, 39243, 40070, +0, 35404, 15730, 27782, 0, 0, 0, 5652, 0, 0, +0, 0, 32836, 0, 32591, 9486, 30138, 7707, 31194, 0, +0, 33433, 0, 0, 0, 0, 0, 0, 0, 0, +0, 36747, 0, 18032, 34608, 0, 0, 6139, 23487, 28941, +9982, 0, 3470, 27788, 0, 0, 0, 0, 0, 25004, +0, 0, 10068, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 25532, 23495, 15126, 37007, 2509, 3393, 37277, +0, 1808, 0, 4489, 40146, 0, 37290, 0, 0, 0, +0, 14885, 18331, 25945, 37300, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 27444, 0, 0, 0, 0, 0, 37648, 0, 0, +38749, 0, 0, 27445, 0, 3954, 38755, 25872, 32095, 0, +4716, 19951, 5566, 0, 0, 0, 39748, 367, 0, 0, +0, 0, 0, 0, 33392, 0, 22671, 0, 13534, 15798, +25795, 32378, 38509, 5820, 0, 0, 0, 0, 0, 0, +0, 35490, 0, 0, 11799, 26323, 0, 0, 0, 0, +0, 0, 0, 0, 3729, 35505, 33033, 39790, 29424, 0, +22838, 32216, 0, 0, 32110, 28070, 0, 4688, 0, 0, +0, 0, 0, 27833, 0, 0, 0, 10516, 0, 32413, +0, 36807, 0, 37426, 0, 0, 28585, 0, 14988, 21057, +0, 5725, 0, 35620, 1155, 0, 0, 0, 0, 0, +0, 33457, 35636, 25608, 0, 8877, 0, 0, 35637, 0, +0, 0, 0, 39607, 33106, 0, 12476, 0, 32022, 0, +0, 0, 38823, 21155, 32939, 0, 0, 0, 35651, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 8090, 0, 26522, +0, 37534, 7298, 0, 7838, 31316, 31422, 10702, 0, 0, +0, 12481, 2946, 0, 0, 0, 0, 20581, 22276, 0, +0, 20743, 24578, 19621, 0, 4928, 0, 31942, 26583, 28982, +10625, 1179, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 21267, 0, 24041, +0, 0, 0, 0, 0, 0, 0, 25639, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 13292, 2498, 20081, 0, 0, 35704, +0, 28293, 0, 31329, 33730, 0, 0, 31670, 0, 35560, +0, 0, 0, 0, 0, 0, 0, 0, 21069, 0, +0, 30780, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 15233, 0, +0, 18480, 18883, 40469, 0, 0, 0, 0, 0, 0, +39642, 0, 33297, 0, 8828, 13939, 32338, 12516, 4877, 0, +16552, 7644, 14613, 0, 0, 0, 0, 20313, 31955, 0, +0, 0, 0, 27974, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 39643, 0, 11071, 15601, +0, 28332, 21319, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 28998, 40295, 0, 0, 0, 0, +0, 4940, 0, 24610, 34252, 0, 32164, 0, 0, 21188, +0, 0, 0, 39562, 1651, 0, 0, 0, 3741, 16332, +6140, 25117, 32535, 0, 32704, 30339, 25610, 30504, 21324, 0, +511, 34253, 0, 0, 0, 0, 0, 27633, 36204, 0, +37257, 0, 0, 0, 0, 0, 16860, 12000, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 692, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 31475, +0, 14261, 0, 0, 32982, 23664, 21884, 33280, 6695, 12448, +31269, 20745, 34615, 23496, 20847, 3599, 10753, 0, 25977, 0, +21077, 0, 0, 3384, 3385, 15976, 0, 12833, 29782, 0, +6349, 0, 0, 31969, 39959, 12006, 3723, 4946, 0, 0, +19646, 35075, 0, 0, 0, 0, 0, 14713, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 27074, 0, 0, 36146, 0, 0, 0, 9157, +31350, 0, 0, 0, 9847, 29179, 0, 10577, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 25255, +0, 35450, 0, 30014, 0, 0, 0, 24478, 9911, 0, +23503, 0, 0, 12012, 29184, 22456, 0, 0, 8840, 0, +32994, 0, 20139, 8614, 28408, 32502, 0, 27251, 0, 0, +8012, 0, 0, 0, 0, 0, 40383, 18332, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 36770, 0, 0, 0, 0, 3388, 6531, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +16906, 34860, 16907, 0, 0, 18660, 20775, 28201, 91, 0, +0, 15610, 0, 38965, 92, 29011, 0, 18933, 29910, 1088, +0, 0, 0, 0, 0, 0, 0, 0, 11771, 11333, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 16135, 0, 33136, +0, 0, 0, 25978, 0, 0, 0, 0, 0, 0, +0, 0, 0, 27384, 25069, 427, 29955, 0, 0, 0, +8217, 1629, 0, 28863, 0, 32550, 0, 27658, 1952, 0, +19328, 5312, 0, 9650, 10512, 31565, 5313, 35879, 0, 1090, +0, 9110, 4780, 26018, 0, 0, 0, 8719, 37345, 20861, +0, 17195, 39766, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 38890, 0, 0, 0, 12169, 25657, 0, 0, +0, 3756, 0, 0, 0, 0, 0, 0, 0, 0, +13708, 0, 0, 0, 0, 0, 0, 0, 0, 0, +2960, 38973, 0, 0, 0, 0, 28040, 36568, 0, 0, +23530, 40652, 0, 0, 15179, 0, 35230, 0, 23531, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 33362, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 35338, 3864, 0, 0, 0, 29888, 109, 22777, 0, +0, 17819, 20204, 110, 0, 20567, 30833, 36521, 21288, 0, +0, 0, 1978, 0, 18339, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 25715, 0, 0, 0, 0, 0, 0, +0, 18867, 2566, 0, 0, 4035, 0, 25985, 16952, 0, +27811, 0, 17251, 0, 0, 0, 0, 31874, 0, 34335, +4839, 0, 18267, 0, 0, 0, 0, 0, 0, 0, +19894, 0, 38725, 0, 0, 0, 0, 0, 0, 0, +0, 0, 40486, 0, 0, 20307, 0, 17273, 0, 14573, +0, 0, 0, 33065, 33066, 18465, 18401, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 29027, 40348, 0, 0, 0, 0, 0, 0, +0, 2729, 32290, 0, 0, 36449, 22293, 0, 0, 0, +0, 0, 0, 0, 32913, 0, 13550, 0, 0, 0, +3708, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 10327, 0, 0, 0, 0, 0, 0, 0, 0, +0, 30018, 0, 0, 0, 0, 0, 0, 0, 10713, +0, 0, 19416, 0, 13885, 0, 24760, 6250, 24572, 38007, +0, 26730, 38008, 0, 0, 35549, 0, 0, 0, 0, +11200, 0, 0, 0, 0, 15185, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 37703, 21314, 27627, 0, 31061, 0, 0, 0, +2247, 0, 12862, 0, 20326, 26448, 0, 25476, 8393, 0, +0, 0, 0, 23941, 0, 27285, 40620, 0, 0, 0, +0, 0, 0, 26846, 0, 29180, 0, 0, 0, 0, +38427, 38591, 0, 0, 0, 0, 0, 7662, 20333, 0, +38313, 0, 0, 0, 39749, 23680, 10095, 8711, 0, 0, +0, 0, 0, 0, 2255, 0, 9788, 13359, 0, 36561, +308, 0, 0, 0, 0, 0, 0, 38435, 0, 31842, +0, 0, 0, 33513, 31283, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 14940, 12181, 0, +3637, 0, 30378, 0, 20345, 38322, 0, 0, 0, 0, +13751, 26953, 0, 31639, 0, 7025, 0, 0, 0, 11041, +11045, 0, 17080, 0, 0, 3972, 0, 0, 35300, 19606, +33462, 39884, 0, 35676, 0, 0, 0, 0, 0, 0, +17647, 0, 0, 0, 0, 12860, 12983, 14461, 0, 0, +40286, 0, 0, 0, 31261, 0, 0, 0, 0, 0, +0, 15442, 15408, 17159, 1134, 8694, 0, 33484, 26109, 18062, +15369, 0, 0, 0, 0, 0, 1953, 1412, 27460, 23351, +26354, 0, 0, 0, 12082, 0, 24078, 0, 0, 0, +0, 0, 35638, 14824, 38783, 0, 33163, 0, 0, 0, +0, 30029, 9896, 32023, 0, 30064, 35371, 0, 0, 0, +0, 0, 0, 4630, 0, 0, 0, 13219, 20975, 0, +0, 22400, 0, 13624, 33900, 10896, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 36815, 21798, 35169, +0, 0, 36253, 0, 15562, 0, 0, 0, 0, 0, +0, 0, 0, 0, 32578, 32433, 0, 0, 0, 0, +21067, 0, 38802, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +13630, 0, 0, 21800, 26296, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 12752, 0, +0, 0, 0, 40046, 25471, 0, 0, 18705, 25783, 21808, +0, 1890, 38929, 0, 24293, 0, 4347, 41046, 0, 31062, +31259, 0, 0, 21488, 0, 0, 0, 32068, 10633, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 29556, 13893, 0, 0, 0, 0, 13650, 10464, 29734, +38941, 22774, 13940, 21026, 0, 0, 0, 0, 6644, 0, +31455, 32960, 0, 31798, 16553, 6486, 12517, 2501, 3763, 0, +8504, 0, 0, 0, 0, 0, 32476, 5355, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 1479, +32592, 33121, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 37158, 32165, 16861, +23808, 0, 0, 19754, 0, 23990, 34255, 0, 23573, 24517, +0, 693, 39257, 0, 0, 0, 0, 0, 0, 0, +0, 0, 38309, 27463, 0, 0, 25976, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 18717, 0, 0, 0, 32847, +0, 8110, 38557, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38312, 0, 6497, 0, 5483, 37278, 0, 18927, 0, +30401, 33927, 13434, 37682, 39698, 30690, 0, 8695, 14554, 0, +34498, 4883, 19647, 0, 0, 0, 0, 0, 0, 0, +7996, 20, 0, 0, 33743, 0, 8511, 153, 0, 0, +0, 0, 12315, 0, 0, 0, 0, 0, 22517, 39572, +0, 0, 21856, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 22110, 0, 35451, +0, 0, 13668, 0, 40732, 0, 12834, 30258, 0, 0, +12835, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 2784, +0, 28346, 28347, 12328, 27826, 0, 29050, 22458, 22934, 0, +0, 0, 0, 0, 20141, 0, 0, 0, 0, 0, +35198, 0, 24334, 13963, 0, 0, 14807, 0, 0, 37498, +25631, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 637, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +1693, 0, 0, 0, 30807, 38212, 24168, 27879, 18661, 0, +0, 0, 5990, 4060, 1275, 40205, 19249, 7517, 22758, 36275, +33873, 0, 368, 40636, 41060, 0, 0, 1141, 0, 0, +0, 0, 0, 16531, 0, 29188, 0, 0, 0, 0, +0, 29412, 12900, 0, 0, 0, 0, 29664, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 6682, 6210, 0, +0, 0, 1441, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 39768, 0, 7621, 0, 0, 0, 15285, 39769, +38526, 1295, 15799, 0, 641, 14812, 24730, 0, 23183, 16679, +32877, 28773, 0, 0, 0, 0, 0, 0, 0, 0, +27882, 0, 936, 0, 0, 0, 0, 0, 0, 0, +0, 34868, 13031, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38213, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 40373, 0, +0, 7260, 0, 26514, 0, 24495, 0, 22992, 0, 29441, +26125, 37988, 0, 0, 0, 21462, 9341, 4741, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 24111, 0, 6002, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 22775, +4405, 0, 711, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 36293, 0, 0, 0, 32280, +0, 0, 35596, 20303, 6489, 40107, 0, 15558, 0, 0, +0, 0, 0, 0, 0, 0, 38768, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 18268, 0, 39596, 2807, +6373, 37600, 0, 0, 28393, 13740, 17252, 8962, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 673, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 9801, +17690, 26689, 0, 0, 0, 0, 0, 0, 0, 0, +0, 21472, 0, 4702, 30758, 0, 30059, 0, 0, 27952, +0, 18402, 0, 0, 0, 0, 0, 32668, 34556, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 24415, 0, 0, 0, 0, 0, 0, +0, 0, 0, 31640, 0, 37105, 0, 39353, 33082, 2615, +7680, 0, 9806, 0, 14111, 16449, 32127, 0, 0, 18119, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 16768, 0, 0, 0, +15105, 32789, 0, 0, 0, 0, 0, 0, 0, 0, +37996, 0, 0, 0, 0, 0, 0, 0, 9375, 24196, +19231, 35109, 18987, 28535, 0, 0, 0, 0, 0, 0, +0, 19232, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 466, 2858, 0, 40694, 0, 0, +0, 0, 0, 0, 0, 0, 0, 29416, 0, 0, +0, 30293, 18154, 0, 0, 0, 37461, 23446, 0, 23232, +0, 0, 0, 0, 12490, 1883, 0, 26834, 8101, 0, +9507, 0, 0, 5767, 0, 10194, 0, 8329, 0, 23268, +0, 0, 0, 0, 0, 0, 0, 3327, 11745, 0, +0, 31974, 26936, 39724, 23306, 0, 9914, 0, 0, 13462, +17211, 0, 17724, 0, 24019, 0, 0, 0, 25806, 0, +23209, 26827, 0, 0, 13625, 0, 0, 0, 0, 0, +0, 882, 1398, 402, 15022, 22429, 0, 0, 5137, 0, +0, 28787, 15973, 15636, 0, 15592, 0, 0, 0, 0, +0, 26835, 26836, 12109, 795, 0, 0, 0, 15405, 15816, +0, 0, 0, 0, 20430, 0, 0, 17648, 6905, 8684, +0, 0, 0, 30466, 6688, 0, 0, 23593, 11161, 0, +10703, 0, 0, 22319, 0, 13510, 0, 0, 0, 0, +24696, 40862, 40076, 15819, 0, 26092, 0, 12518, 30518, 23044, +33923, 0, 26419, 0, 0, 0, 0, 0, 16475, 39563, +29539, 0, 0, 4984, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 34773, 13952, 39564, +0, 0, 40621, 0, 37978, 2681, 0, 0, 0, 0, +19648, 0, 0, 0, 15548, 40002, 10853, 22329, 0, 0, +0, 14334, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 4318, 20439, 0, 0, 0, 0, 32758, 0, +6417, 30604, 0, 2253, 37029, 6449, 15131, 22609, 0, 0, +3341, 0, 0, 0, 4288, 0, 26458, 34511, 15764, 0, +37672, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 23307, 39280, +0, 15457, 23308, 39584, 18754, 0, 0, 0, 0, 22462, +21890, 22206, 0, 0, 0, 0, 0, 0, 7472, 0, +0, 0, 0, 30926, 0, 0, 19862, 0, 0, 0, +0, 0, 26283, 0, 0, 0, 33360, 0, 6792, 1609, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +36696, 0, 19451, 0, 17725, 0, 0, 32885, 19022, 24020, +5491, 0, 3359, 3360, 0, 0, 0, 0, 0, 4332, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +2442, 0, 0, 0, 0, 0, 0, 0, 16687, 38670, +17051, 17455, 25132, 0, 0, 0, 0, 0, 0, 0, +0, 3191, 0, 3364, 9118, 0, 40989, 3834, 4130, 0, +0, 0, 0, 0, 0, 0, 16809, 27604, 18952, 0, +0, 0, 0, 8082, 0, 17291, 0, 25904, 0, 0, +0, 25862, 0, 0, 0, 25817, 0, 0, 0, 21592, +0, 0, 41118, 17064, 0, 0, 0, 27334, 0, 0, +8085, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 1187, 0, 0, 0, 5380, 0, 0, 0, 0, +26841, 0, 0, 0, 8464, 28751, 0, 0, 0, 0, +19452, 0, 0, 16916, 0, 0, 1318, 0, 0, 0, +22079, 0, 36709, 0, 0, 0, 0, 14248, 0, 9737, +17646, 0, 0, 31087, 23594, 6260, 0, 17789, 0, 13424, +0, 17790, 0, 0, 0, 0, 0, 29360, 0, 0, +9747, 0, 22127, 24007, 0, 5573, 37922, 0, 0, 0, +0, 0, 0, 0, 16650, 0, 0, 0, 27622, 33112, +0, 0, 0, 0, 33122, 32531, 19158, 0, 0, 0, +0, 0, 1012, 29357, 0, 0, 0, 0, 0, 0, +32759, 0, 6234, 0, 0, 0, 0, 5303, 29502, 40422, +0, 0, 0, 0, 0, 21923, 0, 31111, 0, 0, +0, 0, 0, 0, 33143, 25661, 0, 0, 40663, 5320, +0, 0, 0, 4794, 0, 0, 0, 40676, 0, 0, +0, 0, 0, 4547, 2761, 0, 0, 0, 0, 34820, +0, 0, 0, 0, 0, 0, 0, 0, 0, 34479, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 34484, 0, 39195, 0, 0, 0, 0, 0, 0, +0, 21871, 34617, 0, 0, 0, 0, 0, 0, 7404, +0, 0, 0, 34512, 37031, 0, 0, 29088, 8205, 976, +0, 34521, 0, 11625, 0, 0, 0, 0, 0, 11569, +0, 0, 9658, 34663, 0, 10989, 1563, 0, 0, 0, +0, 0, 0, 28258, 0, 0, 0, 0, 0, 0, +40856, 12483, 6871, 12519, 15974, 0, 17627, 0, 0, 0, +12013, 0, 30621, 40565, 0, 0, 0, 29527, 0, 0, +0, 38023, 36872, 0, 0, 0, 0, 25312, 0, 0, +0, 20263, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 20872, 0, 0, 29729, 0, 5087, +0, 14838, 0, 0, 33463, 5516, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 32525, 0, 0, 0, +0, 0, 0, 33349, 0, 0, 36822, 9291, 0, 0, +31442, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10462, 0, 0, 0, 0, 6070, 0, 0, 18592, 0, +33549, 0, 40077, 32340, 11460, 2502, 26978, 8460, 21870, 213, +0, 0, 0, 32798, 0, 0, 0, 0, 0, 0, +0, 10262, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 24213, 8835, 26224, 7974, 0, 0, 0, 0, +0, 0, 0, 38310, 0, 0, 0, 0, 0, 0, +0, 0, 0, 5182, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 5770, 26606, +0, 41100, 0, 0, 0, 0, 0, 0, 0, 0, +1619, 0, 0, 0, 4200, 39036, 5047, 0, 0, 31067, +24466, 0, 0, 0, 17882, 0, 11876, 12136, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 2363, 0, 0, 0, 0, +20803, 0, 0, 5972, 30795, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 1485, 29152, 0, 0, 0, 29791, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 8859, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 3481, 4599, +29154, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 12019, 23175, 25948, 25936, 33833, 270, 20967, 0, +34792, 27258, 26115, 0, 0, 0, 0, 29547, 0, 0, +0, 0, 0, 0, 0, 34274, 11564, 0, 0, 0, +1697, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 21968, 2372, 0, 309, +0, 19671, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 19867, 0, +29241, 0, 0, 0, 0, 0, 0, 25937, 33693, 15240, +0, 0, 0, 0, 0, 0, 0, 16520, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 1632, 4569, 0, 0, 32199, 0, 0, 0, +0, 0, 0, 0, 0, 0, 29973, 0, 0, 0, +0, 37381, 5217, 36522, 0, 38844, 0, 23131, 0, 0, +0, 0, 0, 0, 0, 0, 11815, 0, 0, 0, +0, 0, 117, 20569, 0, 0, 14063, 16359, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 17836, 22738, 0, 2002, 24513, 0, 0, 1361, +0, 0, 0, 0, 0, 36586, 0, 0, 0, 0, +0, 17292, 0, 0, 0, 0, 0, 0, 0, 21593, +0, 5444, 0, 0, 0, 11299, 0, 0, 0, 37778, +0, 0, 4246, 0, 17368, 0, 38778, 18155, 4280, 0, +0, 0, 0, 0, 0, 2409, 34037, 0, 0, 0, +14550, 11862, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 29564, 0, +0, 0, 0, 0, 0, 0, 21641, 14653, 0, 0, +0, 0, 0, 0, 0, 2598, 0, 0, 0, 0, +0, 0, 38167, 0, 0, 0, 0, 37456, 0, 0, +0, 15482, 0, 0, 0, 0, 0, 0, 15861, 7461, +0, 0, 0, 0, 0, 0, 0, 37907, 23806, 0, +0, 0, 24942, 0, 0, 0, 22981, 0, 22267, 0, +0, 0, 0, 0, 0, 0, 0, 0, 8860, 35826, +19208, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 15789, 0, 33834, 21431, 0, 0, 0, 0, 0, +10966, 14508, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 35253, 0, 0, 0, 0, +31642, 0, 0, 37774, 28872, 22815, 6628, 874, 0, 0, +17712, 0, 0, 0, 0, 0, 0, 0, 36615, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 34150, 0, 0, 13406, 0, 0, 16102, 0, +39180, 27342, 0, 0, 26916, 0, 0, 0, 36733, 22029, +32695, 12272, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 23145, 10339, 0, 0, 15563, 0, 0, 0, +0, 0, 0, 0, 35176, 3576, 0, 0, 0, 0, +0, 0, 15313, 37704, 0, 0, 30221, 21388, 0, 4375, +0, 35408, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 14371, 0, +0, 0, 0, 0, 0, 34727, 16851, 0, 4997, 3718, +0, 0, 0, 0, 0, 35427, 0, 0, 0, 0, +10061, 0, 0, 0, 0, 35311, 0, 3749, 11072, 40369, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 24453, 6767, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 29593, 32072, 0, 0, 0, 0, 0, 7976, +0, 0, 5800, 31676, 32799, 39196, 24095, 29739, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 10072, 15865, 28301, 0, 27185, +29376, 0, 0, 0, 39080, 0, 0, 21190, 0, 23813, +36147, 0, 17609, 26154, 40870, 22518, 8547, 0, 0, 13957, +36763, 0, 26310, 0, 20131, 21966, 0, 10854, 0, 0, +0, 36899, 0, 19946, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 39573, 0, 0, 1136, 0, 0, +0, 26612, 23498, 32083, 22060, 15287, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 27459, 22519, 0, 38017, 40246, 0, 27872, 14220, 0, +0, 2688, 7250, 32711, 36214, 10759, 19657, 29792, 0, 12556, +0, 0, 0, 35470, 0, 37302, 14192, 22217, 0, 32620, +0, 9030, 0, 0, 9000, 28281, 32267, 40405, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 3805, 0, 0, 0, 0, 0, +23999, 29089, 37848, 0, 0, 26230, 17802, 0, 39579, 0, +0, 0, 22009, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 14487, 16265, 0, 0, 0, 40844, 0, 24786, 9176, +14909, 39489, 271, 24336, 22531, 41148, 0, 23768, 0, 4851, +0, 12339, 29097, 25563, 0, 9889, 34067, 0, 926, 39490, +0, 6656, 0, 0, 0, 0, 0, 0, 0, 0, +0, 5273, 0, 0, 0, 0, 25367, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +8404, 0, 0, 8535, 28473, 0, 30167, 34863, 15655, 39750, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 12904, 21343, 26631, 707, +27447, 6240, 0, 23690, 10004, 23576, 8434, 0, 0, 4269, +2559, 1299, 35334, 7880, 6876, 0, 16566, 10224, 16917, 0, +0, 0, 0, 28992, 26632, 0, 36168, 0, 0, 12905, +0, 0, 0, 2560, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 21552, 4603, 0, 0, 35491, 0, 0, 0, 28817, +0, 0, 14788, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 3628, 9031, 0, 0, +13709, 38974, 10953, 19513, 0, 0, 0, 41009, 27764, 0, +0, 7528, 40771, 40772, 0, 13722, 27668, 0, 4235, 22220, +0, 0, 0, 35143, 5538, 0, 16684, 33522, 25572, 0, +21999, 14791, 31854, 35231, 166, 0, 35914, 12922, 0, 0, +27804, 31074, 0, 26028, 39592, 1095, 40433, 0, 0, 0, +13309, 10292, 0, 3638, 6660, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 1964, 12372, 4056, 0, 19219, +0, 0, 25689, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 10968, +0, 0, 0, 0, 0, 5218, 0, 0, 10034, 25087, +26127, 38671, 38279, 4105, 23195, 6008, 0, 38513, 29721, 0, +0, 4361, 25807, 0, 19115, 0, 0, 12383, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 19169, 24281, 0, 0, 0, 24502, +14794, 0, 0, 0, 112, 13041, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 29205, 30939, 0, +0, 24027, 0, 0, 0, 22020, 11907, 0, 0, 118, +0, 27601, 17465, 6586, 0, 28510, 13919, 1349, 34548, 8621, +22724, 37398, 26558, 0, 0, 12938, 0, 10990, 0, 0, +17831, 0, 1511, 28071, 13386, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +40540, 0, 0, 0, 0, 9953, 0, 0, 0, 0, +0, 0, 0, 0, 0, 6663, 0, 0, 0, 0, +0, 0, 0, 0, 32935, 19905, 7898, 18829, 28761, 0, +0, 18278, 32119, 25930, 0, 0, 4609, 40467, 0, 3143, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 17556, 0, 0, 0, +16966, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 22413, 30154, 0, 0, 30172, 0, 17701, 32787, +4219, 11277, 21473, 23716, 17294, 0, 0, 22175, 29400, 18279, +31237, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 36499, 0, +38452, 0, 0, 0, 0, 0, 0, 0, 0, 0, +37111, 0, 32296, 33820, 27461, 31649, 0, 0, 19745, 26074, +17562, 0, 14280, 16630, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32680, 41018, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 18292, 0, 38904, 0, 39009, 0, 16772, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 6490, 0, 0, 0, 0, 0, 0, 0, 0, +0, 13082, 27462, 41259, 24198, 0, 16613, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 37442, +36019, 21303, 0, 0, 2467, 0, 0, 0, 0, 0, +0, 34701, 0, 25672, 0, 0, 0, 0, 0, 0, +34446, 6031, 20219, 0, 0, 0, 0, 0, 0, 16722, +0, 30295, 0, 0, 0, 0, 0, 0, 20863, 0, +0, 0, 0, 0, 34450, 0, 0, 0, 16782, 0, +0, 26136, 10891, 0, 0, 31424, 31425, 0, 36816, 9929, +0, 9860, 0, 30180, 33601, 22430, 28615, 31429, 31430, 1682, +24205, 31431, 36962, 31781, 0, 4443, 23840, 31914, 0, 0, +30211, 6906, 36823, 33293, 21217, 9970, 1189, 26742, 0, 0, +38577, 5794, 37142, 0, 21949, 0, 9588, 30467, 23651, 35428, +0, 0, 41048, 0, 23652, 6094, 15514, 0, 3987, 35312, +0, 0, 9935, 15794, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 5804, 31813, 40734, 18050, +40871, 0, 37282, 11878, 0, 27703, 15211, 0, 0, 0, +0, 0, 0, 0, 226, 0, 36837, 12330, 11926, 23575, +10760, 10761, 0, 5806, 0, 0, 0, 0, 0, 32806, +0, 0, 0, 26539, 26158, 0, 0, 0, 32869, 34961, +4986, 0, 33004, 3427, 36847, 10321, 26161, 0, 0, 0, +0, 28567, 0, 40206, 0, 54, 0, 0, 0, 25072, +38261, 0, 16165, 18571, 4068, 0, 36851, 0, 0, 0, +0, 0, 0, 0, 29192, 0, 26877, 0, 0, 0, +0, 0, 0, 0, 0, 32773, 31863, 0, 0, 0, +0, 0, 12041, 3651, 35955, 0, 0, 0, 0, 27298, +37760, 2730, 7021, 31643, 31650, 36501, 41088, 37969, 0, 0, +37972, 0, 0, 0, 0, 0, 0, 0, 28438, 30392, +0, 0, 0, 33167, 0, 0, 30500, 8092, 0, 0, +0, 0, 18651, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 12980, 0, 0, 34355, +0, 1190, 15486, 9404, 0, 0, 40716, 0, 0, 0, +0, 0, 15975, 40048, 39647, 0, 0, 29778, 0, 0, +0, 28454, 0, 3999, 3255, 3386, 40314, 0, 4985, 0, +0, 0, 0, 0, 0, 0, 0, 1251, 0, 12814, +0, 0, 35827, 0, 0, 37730, 8517, 0, 0, 0, +0, 0, 8407, 0, 0, 0, 0, 0, 24022, 0, +0, 0, 3928, 3931, 1333, 0, 0, 0, 9669, 0, +0, 9200, 1792, 36298, 40542, 9206, 0, 17332, 0, 0, +0, 0, 0, 6882, 5002, 0, 0, 0, 0, 0, +2243, 0, 0, 0, 0, 0, 29162, 6427, 35654, 0, +0, 0, 5936, 0, 21695, 0, 33954, 21157, 9625, 15311, +0, 0, 4109, 0, 0, 0, 38416, 36734, 0, 538, +26917, 5791, 21978, 24587, 0, 0, 0, 33956, 0, 20594, +15344, 36824, 13417, 1891, 0, 0, 0, 0, 33424, 0, +0, 0, 0, 0, 20084, 19193, 0, 33959, 0, 6769, +0, 7139, 26220, 0, 15991, 21142, 20234, 17127, 19019, 0, +5954, 0, 23595, 16789, 0, 19640, 0, 10534, 3083, 39667, +0, 9150, 4828, 0, 0, 0, 0, 31343, 28978, 0, +0, 31497, 34899, 30691, 0, 41055, 19295, 37165, 22404, 35794, +24331, 37723, 15014, 13299, 33644, 1013, 0, 0, 0, 0, +19160, 40496, 0, 0, 0, 0, 0, 0, 6450, 32544, +0, 0, 11762, 0, 0, 0, 9167, 15320, 0, 0, +33214, 11896, 1404, 0, 0, 0, 15458, 15321, 0, 0, +4852, 0, 0, 0, 0, 0, 0, 18770, 0, 41187, +38160, 13463, 9424, 0, 0, 0, 0, 34321, 7091, 0, +24388, 0, 0, 5492, 27765, 28217, 17746, 0, 0, 0, +0, 26328, 0, 1335, 30834, 35248, 0, 38568, 0, 35146, +5926, 119, 0, 0, 13315, 0, 0, 27953, 0, 11278, +37424, 0, 0, 25221, 0, 0, 5757, 41119, 570, 0, +24237, 0, 0, 12699, 0, 22502, 0, 0, 29686, 0, +0, 0, 3793, 0, 0, 0, 0, 9592, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 12147, 0, +0, 0, 0, 0, 0, 0, 33970, 0, 5808, 0, +0, 1494, 38030, 29620, 0, 0, 0, 0, 0, 0, +26284, 0, 9235, 25078, 0, 0, 0, 0, 0, 0, +9190, 0, 0, 0, 0, 0, 0, 0, 10969, 15746, +0, 0, 9068, 0, 28057, 0, 3835, 0, 15534, 0, +6335, 0, 0, 0, 0, 35973, 0, 0, 5409, 23932, +0, 0, 0, 0, 0, 18433, 0, 16998, 0, 17360, +24370, 0, 30570, 0, 20702, 0, 0, 0, 0, 23458, +0, 13264, 32838, 0, 0, 0, 0, 5052, 0, 18514, +0, 0, 0, 0, 0, 0, 9403, 0, 0, 0, +22244, 0, 0, 22503, 0, 14762, 0, 853, 14910, 14786, +27098, 0, 0, 0, 0, 32933, 0, 0, 25684, 14177, +23007, 25850, 0, 0, 0, 0, 12093, 0, 0, 0, +0, 0, 0, 0, 0, 7564, 884, 13793, 25760, 0, +22431, 0, 0, 0, 0, 0, 5649, 19556, 502, 503, +29372, 18013, 26744, 39137, 22435, 31331, 0, 38305, 797, 0, +0, 0, 0, 0, 0, 18880, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10192, 6256, 7943, 21218, 0, 0, 0, 8687, 0, 0, +25548, 32254, 0, 0, 1200, 0, 0, 0, 0, 0, +0, 0, 0, 0, 19561, 0, 0, 0, 25477, 24614, +0, 0, 0, 1908, 0, 10195, 21111, 34371, 0, 0, +0, 0, 0, 0, 0, 22190, 28128, 0, 30161, 0, +24709, 16875, 5433, 0, 13669, 13670, 9700, 12878, 1231, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 25899, 664, 4261, 0, 0, 0, +20961, 679, 0, 0, 25412, 12726, 27873, 0, 0, 0, +5434, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 32086, 38592, 19659, 0, 0, 40744, +0, 12574, 23310, 0, 0, 0, 0, 25618, 28310, 25483, +31366, 25419, 25420, 0, 0, 0, 0, 0, 0, 0, +0, 0, 28475, 0, 27880, 0, 0, 0, 0, 0, +0, 0, 16918, 0, 0, 4734, 40920, 19817, 31748, 0, +19535, 21553, 0, 28137, 0, 22261, 0, 0, 1300, 5704, +0, 0, 24799, 24061, 0, 7586, 28043, 0, 0, 0, +0, 0, 0, 33523, 0, 0, 0, 25490, 12185, 0, +0, 24811, 17820, 0, 0, 0, 0, 0, 0, 0, +0, 25983, 0, 0, 16107, 0, 4795, 35254, 1817, 0, +13742, 0, 24816, 24817, 0, 0, 0, 19895, 25160, 0, +1711, 3009, 0, 0, 6378, 0, 0, 0, 0, 0, +0, 0, 0, 0, 25206, 32129, 0, 0, 28969, 24837, +21594, 0, 0, 27278, 18689, 0, 16109, 0, 0, 0, +0, 0, 20379, 20431, 0, 0, 0, 5183, 0, 0, +36276, 0, 0, 32776, 0, 0, 0, 12484, 0, 0, +0, 0, 36057, 0, 0, 0, 0, 0, 0, 0, +0, 0, 7580, 39962, 0, 0, 0, 9184, 0, 0, +0, 0, 0, 2530, 0, 18206, 0, 0, 2070, 0, +0, 0, 21975, 27707, 5340, 39128, 0, 0, 26203, 0, +4063, 0, 14292, 0, 0, 0, 0, 0, 15419, 3452, +0, 0, 0, 0, 0, 11054, 17089, 26083, 0, 0, +22028, 30577, 31251, 0, 0, 0, 36394, 0, 0, 0, +0, 26084, 5512, 0, 0, 5084, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 29725, 10341, 22951, +0, 39547, 21696, 21311, 0, 0, 0, 0, 0, 25468, +9333, 0, 39455, 0, 0, 12273, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +7318, 0, 0, 13632, 9884, 0, 0, 0, 38695, 0, +31794, 0, 0, 40713, 0, 0, 31671, 22742, 0, 0, +960, 0, 12985, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 13102, 0, 0, 37975, 0, +0, 0, 0, 0, 0, 0, 982, 19631, 0, 0, +38203, 40476, 0, 15839, 0, 0, 1103, 0, 22033, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 19632, 28744, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +30013, 19157, 0, 0, 28621, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 181, +0, 0, 0, 0, 0, 9986, 40198, 0, 6772, 6773, +8462, 0, 0, 0, 0, 0, 0, 0, 0, 0, +24518, 0, 30473, 0, 20610, 39033, 30955, 40477, 0, 13567, +22215, 0, 0, 0, 0, 0, 0, 0, 27988, 0, +0, 0, 0, 14624, 0, 0, 23158, 2298, 0, 29861, +26102, 0, 30091, 0, 0, 11210, 0, 35761, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +20388, 39898, 0, 0, 0, 27583, 0, 0, 0, 35762, +30474, 289, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 27964, 0, 0, 0, 0, 0, 0, 0, +9600, 30144, 11689, 0, 0, 33646, 38070, 0, 40841, 1487, +0, 4947, 36069, 25006, 0, 0, 11271, 20848, 37981, 0, +29075, 0, 0, 0, 0, 0, 35452, 28629, 26508, 27585, +0, 33267, 0, 0, 36839, 0, 0, 7611, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 15449, 0, 0, 0, 7998, 0, 0, +0, 0, 0, 0, 20441, 0, 0, 0, 0, 0, +0, 0, 22604, 0, 12321, 24101, 39934, 8468, 37500, 3483, +0, 0, 0, 23853, 0, 41249, 0, 32862, 19573, 0, +10935, 0, 22610, 34122, 0, 31977, 29090, 0, 0, 20903, +4054, 0, 0, 0, 0, 0, 0, 0, 0, 0, +31272, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 11468, 33971, 28979, 0, 24102, 0, +0, 13352, 0, 0, 0, 0, 0, 0, 0, 0, +5272, 547, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 5307, 15612, 0, +14425, 26117, 14052, 0, 0, 20534, 21761, 0, 27591, 0, +27388, 40464, 8033, 0, 0, 38127, 32870, 16532, 29570, 0, +0, 0, 0, 0, 0, 38967, 0, 0, 2303, 0, +37734, 0, 0, 40091, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 28634, 0, 0, 0, 34394, 18756, +34523, 0, 0, 0, 0, 0, 38256, 27446, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 9755, 40208, 0, +25566, 25567, 0, 0, 15219, 12593, 8557, 0, 0, 0, +33021, 0, 0, 21969, 12906, 0, 0, 0, 39497, 38436, +0, 10708, 0, 15800, 0, 1954, 0, 0, 26020, 230, +13148, 0, 29014, 0, 0, 27802, 0, 19974, 36170, 28635, +9756, 0, 0, 25635, 30813, 0, 0, 27759, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 23521, 0, 38789, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 6176, 8055, 26683, 28045, 35920, +17548, 0, 10423, 0, 39114, 0, 38271, 0, 4742, 4743, +0, 0, 0, 0, 0, 0, 0, 0, 0, 7801, +17049, 15617, 0, 0, 0, 32771, 36855, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 10229, 0, 0, +0, 0, 0, 10115, 15494, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 37366, 0, 0, 0, 0, 0, 11377, +28319, 0, 16206, 0, 6302, 13167, 22928, 1450, 0, 0, +0, 0, 33978, 0, 1508, 0, 0, 0, 0, 30835, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 5227, 13743, 560, 0, 21410, 32403, 26043, 0, 0, +11186, 4050, 0, 0, 21971, 17832, 5586, 2215, 0, 38447, +0, 18868, 0, 0, 0, 12042, 0, 0, 17255, 36491, +0, 30749, 1350, 9803, 0, 22631, 0, 0, 1565, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 34549, 0, 0, 0, 40439, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 10698, 0, 0, 0, 17980, 7015, 0, 36236, +16448, 0, 35100, 0, 0, 33892, 17277, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 16450, 18120, 31644, 10607, +0, 13493, 40681, 0, 0, 0, 39515, 0, 0, 2012, +29003, 204, 0, 0, 34089, 16765, 38134, 11710, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 31891, 10700, 0, 7356, 13074, 4580, +37997, 0, 2160, 0, 36711, 0, 0, 6596, 22055, 0, +0, 0, 0, 0, 0, 0, 0, 28527, 0, 22114, +0, 0, 0, 7223, 31651, 0, 0, 0, 0, 0, +0, 0, 0, 0, 35110, 19131, 0, 0, 1425, 0, +14010, 17333, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 34693, 6312, 0, 0, 19467, 0, +8933, 25226, 2313, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 19826, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 9214, 27471, 0, 0, 0, 0, 0, +34448, 1390, 0, 0, 0, 0, 0, 0, 1589, 3377, +15987, 0, 11972, 0, 0, 0, 0, 0, 0, 0, +0, 3571, 0, 31080, 0, 4596, 39613, 0, 0, 0, +0, 0, 0, 27524, 0, 0, 9297, 23040, 33603, 27624, +0, 31255, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 7840, 0, 27023, 0, 0, 11721, +11454, 21979, 0, 0, 0, 0, 0, 0, 40239, 0, +35409, 0, 0, 0, 0, 17108, 26266, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +20380, 0, 8638, 0, 10840, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 7049, +7175, 0, 0, 33621, 35429, 0, 0, 0, 0, 0, +0, 0, 0, 0, 36507, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 3468, 0, 0, 0, +0, 35430, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 5557, 11688, 10374, 0, 38461, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +37842, 32078, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 32166, 16617, 26474, 27060, 40617, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 1620, 14304, 31049, 13436, +7999, 0, 32443, 15173, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 21119, 0, 12014, 12331, 16191, 0, +0, 0, 0, 7817, 26278, 17742, 20336, 3091, 0, 0, +20527, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 18508, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 6779, 0, +0, 21120, 0, 12148, 0, 0, 40324, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 28009, 6780, 0, 0, 0, 14228, +0, 0, 38031, 11694, 36479, 10941, 17964, 31020, 10100, 0, +0, 0, 20995, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 31832, 0, 8470, +0, 0, 0, 0, 10474, 12164, 32504, 26118, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 29958, 0, 38838, 27394, 0, 36852, 12908, 0, +0, 0, 0, 0, 38214, 0, 0, 0, 0, 0, +0, 0, 38764, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 25750, 0, 0, +0, 0, 0, 0, 34322, 0, 0, 0, 0, 0, +0, 4781, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 12357, 26381, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 6996, 16570, 28732, 0, 40340, +0, 0, 0, 0, 0, 17947, 0, 38345, 0, 14741, +10881, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 26684, 12029, 0, +0, 0, 16016, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 4027, 40104, 0, 0, 0, 280, 0, +40665, 0, 0, 0, 0, 33234, 0, 20346, 10886, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 28685, 0, +0, 0, 0, 1337, 0, 0, 0, 0, 0, 0, +0, 0, 0, 6082, 0, 0, 0, 0, 0, 15180, +0, 1566, 0, 0, 0, 0, 12043, 17833, 4700, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 32404, 25259, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 37761, 0, 34015, 0, 17728, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 26133, 0, 0, +27134, 0, 0, 0, 33070, 0, 0, 0, 0, 0, +0, 0, 0, 32677, 0, 0, 0, 35147, 16424, 35991, +0, 0, 0, 0, 0, 17517, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 2013, 2359, 0, 0, +0, 0, 0, 0, 0, 35105, 0, 0, 0, 0, +0, 0, 0, 0, 17563, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 28536, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 12662, 0, 0, +31657, 39864, 0, 0, 0, 0, 31659, 0, 0, 37785, +0, 0, 0, 0, 0, 0, 32310, 0, 40700, 0, +0, 0, 0, 0, 0, 0, 0, 38780, 0, 0, +0, 0, 0, 41091, 0, 20839, 0, 0, 0, 0, +0, 0, 5378, 17771, 20841, 0, 0, 0, 0, 0, +0, 0, 0, 22186, 0, 14603, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 19161, 0, 0, 27428, +26410, 0, 0, 19162, 0, 7581, 0, 0, 0, 812, +0, 0, 0, 0, 17196, 0, 0, 33361, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 5252, 0, +0, 0, 0, 0, 0, 0, 0, 0, 3398, 0, +0, 0, 38794, 0, 0, 27933, 0, 0, 26655, 0, +0, 0, 0, 0, 0, 0, 8761, 0, 0, 0, +0, 0, 36936, 0, 11626, 3103, 0, 13506, 40290, 27225, +0, 0, 32706, 0, 0, 0, 21642, 0, 0, 0, +0, 0, 0, 13218, 0, 13220, 0, 0, 0, 0, +0, 0, 0, 5895, 0, 0, 0, 0, 0, 23942, +24615, 0, 7712, 0, 0, 0, 0, 0, 38707, 15357, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +5991, 38262, 0, 0, 9468, 26030, 7669, 0, 0, 13278, +0, 34412, 39812, 0, 0, 0, 17297, 0, 0, 0, +18158, 0, 0, 0, 35378, 0, 24863, 22057, 8989, 0, +12801, 10349, 0, 22406, 0, 14604, 0, 3075, 0, 0, +17785, 27049, 22973, 32532, 0, 22599, 19159, 4634, 0, 37160, +0, 0, 0, 15572, 32984, 0, 0, 0, 0, 30351, +34503, 22252, 0, 0, 0, 3331, 0, 0, 0, 0, +29091, 3092, 1255, 17540, 12815, 0, 29505, 0, 0, 0, +29051, 0, 0, 0, 0, 0, 5998, 0, 27395, 16919, +18864, 31930, 0, 4722, 0, 0, 0, 1865, 29917, 23080, +0, 17969, 7670, 0, 1979, 2843, 0, 0, 5253, 28588, +5406, 0, 0, 17298, 0, 34185, 34188, 38579, 0, 0, +35441, 0, 23165, 0, 0, 0, 0, 0, 0, 0, +11042, 0, 29461, 0, 15590, 0, 0, 4249, 36736, 7656, +0, 21849, 29336, 13935, 22494, 3154, 22596, 0, 13794, 9572, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +40473, 0, 0, 10898, 3858, 27344, 28890, 22499, 25472, 25473, +0, 10791, 22317, 0, 0, 0, 0, 0, 0, 543, +0, 31949, 0, 0, 0, 24294, 21273, 0, 28891, 24885, +0, 0, 32839, 0, 38868, 11143, 33124, 0, 27159, 0, +0, 29779, 0, 17576, 1214, 3885, 0, 33208, 0, 33126, +7860, 0, 0, 0, 0, 13807, 0, 0, 0, 8111, +0, 0, 28989, 26534, 0, 0, 2979, 4188, 0, 0, +0, 0, 0, 0, 25149, 10795, 1014, 0, 2200, 0, +0, 0, 0, 20746, 0, 0, 0, 33487, 5973, 0, +0, 2785, 37038, 39963, 0, 0, 0, 16883, 27162, 0, +0, 0, 0, 0, 6354, 0, 19550, 11498, 0, 28950, +0, 6451, 29092, 26756, 19719, 0, 0, 0, 39092, 24264, +22615, 28811, 2332, 34962, 0, 33443, 667, 9177, 0, 0, +0, 2133, 0, 0, 0, 0, 0, 0, 9059, 1943, +0, 0, 0, 30984, 0, 0, 12578, 0, 0, 0, +0, 0, 16166, 0, 0, 4723, 20452, 4628, 21927, 36563, +0, 0, 0, 0, 19583, 15460, 19471, 6080, 11287, 6742, +13242, 28033, 0, 0, 0, 0, 2478, 28495, 0, 11516, +14943, 34080, 0, 0, 33363, 0, 20164, 25131, 16571, 0, +0, 39813, 30740, 0, 0, 0, 0, 26039, 0, 0, +0, 38133, 0, 0, 0, 0, 0, 203, 30854, 0, +11279, 0, 0, 38735, 0, 36374, 8670, 11849, 0, 24986, +0, 0, 0, 0, 0, 17854, 14541, 495, 16723, 0, +19414, 18159, 0, 0, 17077, 12426, 0, 0, 0, 11659, +33164, 27008, 38919, 0, 0, 1828, 0, 0, 0, 2493, +0, 0, 0, 2495, 14022, 398, 877, 0, 0, 34590, +0, 11055, 0, 36957, 0, 1167, 4089, 0, 12433, 0, +0, 0, 20790, 0, 19554, 39882, 0, 35171, 6224, 35154, +0, 0, 0, 25374, 36051, 0, 10255, 0, 20873, 29448, +8155, 20758, 38024, 0, 10900, 0, 3118, 30074, 0, 0, +3977, 7932, 0, 0, 0, 0, 0, 0, 0, 794, +0, 0, 0, 0, 5615, 2190, 18697, 22952, 4931, 35181, +0, 35561, 0, 0, 0, 32475, 1079, 40134, 0, 35411, +0, 18921, 0, 15818, 0, 0, 39634, 0, 0, 0, +0, 30212, 5518, 27352, 17772, 38177, 39635, 21071, 0, 0, +0, 0, 0, 0, 0, 0, 0, 2617, 0, 0, +32595, 38145, 0, 0, 37242, 6275, 2591, 32840, 34769, 0, +32257, 761, 0, 0, 0, 0, 0, 0, 0, 0, +38518, 0, 24602, 0, 10906, 38041, 14859, 0, 9933, 0, +0, 0, 0, 0, 0, 0, 0, 215, 38204, 0, +0, 26150, 0, 32345, 3535, 34485, 0, 221, 0, 0, +0, 38953, 14870, 0, 0, 17141, 0, 16656, 0, 0, +2198, 0, 18721, 0, 12710, 0, 0, 32028, 32760, 34310, +33488, 0, 6648, 36411, 11612, 29076, 21760, 31732, 0, 0, +29785, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 30251, 3123, 0, 0, 0, 10581, 0, +29077, 33744, 37982, 0, 0, 0, 0, 0, 0, 8696, +0, 0, 0, 18502, 2622, 22064, 12332, 0, 28463, 0, +0, 31527, 0, 0, 32621, 0, 25947, 12728, 28010, 11469, +0, 4830, 0, 28464, 27434, 0, 0, 0, 0, 0, +0, 0, 0, 0, 8013, 17179, 0, 26541, 0, 28803, +0, 0, 0, 0, 0, 0, 5736, 0, 0, 0, +1277, 0, 9060, 4643, 0, 23684, 0, 0, 16675, 28021, +0, 0, 40978, 10197, 0, 0, 0, 0, 0, 0, +0, 3618, 2368, 0, 0, 31106, 32633, 17808, 34319, 0, +0, 0, 0, 0, 0, 1278, 0, 11425, 0, 31548, +3428, 33515, 21086, 34400, 0, 33022, 38437, 0, 28207, 0, +31845, 1027, 25154, 27596, 584, 9653, 15134, 3136, 0, 0, +33684, 0, 0, 0, 0, 0, 0, 0, 6979, 17197, +31567, 11430, 28034, 0, 2939, 0, 0, 0, 0, 0, +18772, 34401, 0, 0, 5251, 5155, 34741, 0, 38555, 14664, +0, 6703, 25951, 16277, 28046, 0, 0, 0, 0, 0, +0, 38272, 0, 0, 0, 1320, 0, 0, 36294, 0, +10202, 0, 17821, 0, 0, 10235, 34798, 0, 0, 0, +0, 0, 27602, 120, 24506, 0, 0, 16758, 32905, 0, +27129, 0, 0, 0, 0, 0, 0, 18678, 0, 25097, +17472, 0, 0, 0, 0, 0, 32781, 0, 36368, 0, +0, 32915, 0, 0, 0, 0, 0, 0, 18127, 36715, +0, 0, 0, 0, 5280, 16432, 32687, 0, 0, 0, +0, 0, 0, 0, 35861, 0, 0, 0, 31142, 0, +35655, 30034, 2071, 0, 33168, 0, 0, 27618, 13845, 0, +399, 7192, 0, 20586, 25737, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 4981, 12492, +0, 0, 0, 0, 27972, 24451, 408, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 29254, 36741, 0, 30080, +0, 30262, 36887, 0, 6132, 0, 0, 31724, 15564, 0, +0, 0, 24454, 6524, 6770, 0, 35739, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +31460, 24210, 27977, 0, 0, 18217, 0, 30316, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 3053, 40141, 0, +19641, 0, 0, 0, 0, 0, 0, 24943, 0, 0, +0, 0, 0, 36934, 0, 35798, 20008, 0, 0, 16262, +39703, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 21235, 0, 577, 0, 0, 0, 6146, 0, +0, 0, 39704, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 35830, 0, 0, 18063, 37040, 4495, 5685, 39726, 0, +0, 0, 25652, 0, 0, 13133, 0, 0, 0, 0, +0, 30406, 0, 13974, 0, 22148, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 18757, 24787, 0, +31744, 4954, 0, 0, 0, 0, 11105, 19166, 0, 16660, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 8956, 0, +0, 0, 0, 18195, 0, 0, 0, 0, 0, 0, +16572, 0, 40434, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 38185, 10293, +32554, 0, 0, 10296, 17233, 0, 0, 5828, 8736, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 11348, +0, 0, 0, 0, 0, 0, 7003, 0, 31999, 0, +0, 0, 0, 12940, 23354, 32004, 36861, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 39298, 0, 0, 0, 0, +0, 0, 0, 0, 40441, 0, 0, 0, 2845, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 33085, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 21099, 0, 0, +0, 0, 0, 0, 0, 12663, 29291, 0, 0, 0, +0, 34585, 0, 0, 0, 10246, 33156, 18160, 0, 571, +1033, 0, 0, 0, 0, 8991, 18020, 0, 0, 16122, +23599, 13519, 0, 7050, 34941, 6327, 0, 0, 0, 0, +0, 11977, 6418, 22239, 0, 0, 0, 0, 0, 0, +0, 0, 37580, 0, 0, 18524, 33276, 0, 0, 17437, +34972, 31568, 34978, 0, 31616, 0, 0, 18629, 0, 34688, +0, 0, 24988, 0, 0, 0, 0, 25216, 30224, 41042, +7319, 35683, 6430, 28179, 0, 22436, 0, 9972, 0, 33612, +0, 8947, 0, 5655, 0, 20883, 0, 0, 0, 0, +0, 0, 6774, 30189, 0, 0, 21516, 0, 0, 0, +0, 0, 5901, 11463, 0, 0, 29078, 7338, 0, 0, +0, 31205, 255, 0, 22868, 0, 0, 0, 0, 9994, +0, 8516, 16884, 0, 6606, 8199, 20904, 0, 2449, 0, +0, 0, 0, 13588, 0, 24424, 0, 36328, 32489, 0, +0, 0, 0, 10942, 0, 0, 28022, 0, 0, 0, +0, 0, 0, 8658, 6980, 33685, 0, 0, 0, 0, +0, 0, 0, 0, 31590, 0, 0, 0, 15270, 9797, +13595, 4102, 16689, 10555, 41210, 0, 0, 0, 0, 22771, +0, 0, 5466, 31617, 16692, 0, 26339, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 18630, 0, 6597, +15106, 0, 0, 2852, 0, 32918, 30209, 39010, 0, 40399, +0, 0, 0, 18352, 16725, 0, 0, 0, 5019, 8380, +0, 0, 0, 0, 0, 0, 27040, 0, 0, 34514, +0, 0, 0, 0, 8410, 0, 0, 0, 34432, 0, +0, 0, 0, 0, 28118, 0, 0, 0, 39891, 0, +27041, 0, 0, 0, 0, 26798, 0, 0, 0, 2775, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 11524, 36295, 0, +0, 19959, 0, 0, 0, 0, 0, 0, 25209, 0, +0, 32471, 0, 0, 906, 0, 0, 0, 4100, 0, +0, 0, 0, 23099, 0, 0, 0, 0, 0, 0, +0, 15337, 16156, 0, 0, 25000, 0, 10185, 3577, 19484, +0, 0, 0, 0, 38488, 0, 0, 0, 7657, 0, +3034, 0, 0, 0, 0, 0, 0, 14092, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 17773, 0, 20878, 20879, 29589, 0, 0, +0, 25139, 41099, 22442, 36829, 0, 27231, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 17786, 27160, 29887, +0, 8577, 26449, 30082, 0, 20985, 0, 0, 0, 30141, +8897, 5902, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 19944, 660, 0, 32850, 27738, 29540, 9633, 0, +0, 8000, 9636, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 9637, 0, 0, 0, 0, 0, 0, +0, 40250, 0, 16266, 0, 19083, 29312, 25187, 0, 0, +6148, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 14777, 34390, 0, 0, 25632, 5149, +0, 0, 19663, 0, 0, 0, 0, 0, 18976, 0, +33686, 0, 31569, 0, 0, 0, 0, 0, 0, 0, +19258, 23185, 0, 2596, 0, 0, 26383, 10116, 22887, 0, +0, 0, 12188, 0, 0, 0, 0, 17235, 0, 37382, +594, 0, 29001, 0, 0, 0, 0, 3828, 0, 0, +3829, 0, 0, 0, 23202, 31618, 948, 0, 0, 0, +35264, 0, 0, 9480, 0, 40349, 0, 0, 0, 16702, +16703, 2527, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 9482, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 6034, 0, 0, 0, 0, +0, 34210, 0, 0, 0, 0, 21502, 27247, 0, 39705, +0, 0, 0, 39794, 0, 0, 39795, 22587, 0, 14247, +14249, 35656, 36873, 0, 14250, 0, 0, 0, 0, 11385, +0, 6431, 0, 0, 0, 0, 0, 0, 0, 0, +0, 28934, 24143, 24238, 33170, 2654, 12503, 0, 24325, 0, +0, 0, 0, 0, 0, 0, 6435, 39381, 0, 0, +21948, 0, 31332, 0, 30915, 0, 0, 0, 0, 0, +1203, 0, 0, 842, 0, 20766, 13946, 28937, 17649, 0, +0, 0, 0, 2361, 38420, 0, 0, 0, 0, 0, +3527, 34160, 15922, 36258, 0, 0, 0, 0, 0, 0, +0, 0, 18372, 23600, 0, 10150, 26408, 9906, 2505, 0, +13425, 16599, 0, 0, 0, 0, 0, 0, 31485, 0, +0, 1913, 0, 0, 0, 0, 0, 0, 0, 39565, +0, 30021, 8001, 0, 10855, 0, 21529, 35799, 40480, 0, +0, 0, 2547, 0, 0, 0, 28097, 0, 0, 37915, +0, 0, 0, 0, 0, 0, 6447, 0, 31502, 4123, +33268, 13437, 26613, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 30437, 849, 7453, 13134, 24960, 35832, +6149, 33659, 20905, 12333, 0, 0, 39155, 23293, 6533, 36153, +0, 14338, 22527, 33183, 19071, 2202, 18192, 1622, 5390, 5435, +0, 0, 0, 0, 0, 16236, 0, 31528, 14635, 0, +32712, 0, 14048, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 30265, 0, 21125, 32449, 25073, 24170, 29749, 33573, 11774, +0, 0, 0, 20406, 30713, 0, 36779, 29911, 5056, 0, +0, 0, 15414, 20913, 0, 8206, 37323, 39586, 0, 9943, +23, 8207, 0, 0, 0, 0, 0, 0, 0, 0, +0, 34737, 0, 0, 26943, 0, 2694, 0, 0, 0, +3630, 37924, 27437, 0, 28035, 25923, 0, 6981, 39319, 39, +28358, 2137, 0, 25129, 35887, 34533, 0, 20915, 31285, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 17198, +17199, 0, 31572, 14926, 26869, 0, 34222, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 3186, +36422, 1321, 3104, 0, 0, 38398, 30152, 11107, 29017, 36518, +1148, 21647, 17549, 33190, 37192, 0, 0, 0, 0, 0, +0, 0, 943, 0, 20540, 6538, 0, 5365, 23334, 0, +0, 0, 0, 0, 0, 0, 27438, 0, 0, 32655, +39941, 40537, 0, 1509, 0, 30741, 31606, 0, 5463, 0, +32811, 22051, 21565, 0, 0, 1661, 26557, 7532, 20454, 23540, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 26334, 28366, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 12384, 0, 0, 5160, 14798, 18818, 0, 379, 0, +0, 0, 35957, 27325, 28238, 30841, 30326, 3962, 0, 0, +0, 0, 31124, 0, 0, 0, 0, 0, 0, 0, +0, 0, 1362, 0, 36237, 11969, 0, 0, 15182, 21656, +0, 0, 0, 0, 126, 0, 17280, 0, 38529, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 18840, +0, 0, 0, 0, 1514, 22085, 0, 0, 0, 0, +0, 0, 0, 9678, 27957, 19920, 32297, 18487, 0, 23553, +0, 0, 0, 0, 0, 2853, 36014, 10183, 0, 17520, +9441, 0, 30768, 0, 0, 0, 0, 14992, 16718, 18995, +17363, 0, 22559, 0, 0, 0, 0, 0, 11380, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +9516, 0, 0, 0, 0, 14490, 0, 0, 5457, 0, +0, 0, 7529, 0, 0, 0, 0, 0, 0, 39367, +0, 19773, 0, 11386, 0, 0, 0, 21981, 1122, 0, +22912, 0, 0, 0, 0, 0, 0, 7073, 0, 11390, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 2950, 0, 19198, 7828, 0, 0, 0, +0, 0, 0, 0, 0, 3801, 0, 41056, 20991, 32727, +0, 0, 0, 0, 0, 548, 18739, 0, 19209, 0, +0, 21427, 38248, 0, 0, 0, 40325, 10938, 0, 0, +11628, 28862, 3813, 0, 0, 0, 0, 0, 0, 11504, +6236, 0, 0, 0, 0, 0, 0, 0, 0, 20317, +0, 1965, 0, 0, 5714, 0, 5480, 23051, 0, 27808, +3830, 0, 0, 0, 0, 35102, 19960, 18404, 0, 0, +0, 0, 17473, 0, 0, 1667, 0, 0, 0, 0, +18913, 0, 0, 0, 0, 26064, 41260, 0, 0, 0, +4821, 18162, 39309, 22569, 737, 0, 0, 25042, 0, 0, +22437, 21025, 22438, 2033, 888, 7156, 0, 20435, 20601, 30226, +38832, 39649, 4614, 0, 0, 0, 0, 34051, 12304, 9634, +0, 3317, 0, 0, 0, 10083, 32761, 25056, 0, 4319, +0, 8114, 0, 0, 0, 0, 0, 24303, 18740, 25064, +5775, 23672, 0, 0, 0, 0, 2935, 28465, 855, 0, +0, 6454, 1043, 10812, 0, 0, 0, 0, 38466, 38467, +0, 0, 0, 0, 25079, 19259, 10006, 0, 0, 18243, +18792, 0, 40774, 0, 22584, 40105, 0, 38162, 0, 21712, +0, 0, 11819, 0, 0, 33936, 0, 16208, 0, 0, +0, 0, 0, 21763, 34557, 25196, 21137, 0, 16218, 9481, +6385, 0, 0, 18632, 0, 0, 0, 13086, 33094, 23559, +0, 0, 32570, 0, 0, 9816, 13634, 19547, 0, 0, +31916, 15899, 0, 0, 0, 0, 0, 0, 36667, 0, +9886, 20121, 35070, 0, 0, 30886, 0, 0, 0, 0, +0, 0, 0, 0, 0, 17145, 14764, 31154, 24045, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +5909, 4001, 0, 0, 28302, 0, 0, 3682, 0, 0, +24912, 26543, 0, 0, 0, 0, 0, 0, 0, 0, +19948, 14644, 0, 0, 0, 0, 0, 0, 0, 29811, +0, 0, 0, 0, 0, 0, 21728, 20541, 0, 0, +0, 0, 0, 7671, 0, 0, 0, 0, 0, 0, +0, 0, 312, 9759, 10970, 2268, 6617, 9892, 13479, 0, +0, 0, 0, 0, 0, 0, 9117, 0, 0, 0, +0, 13872, 0, 0, 34802, 0, 0, 0, 0, 0, +0, 0, 2600, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 11652, 0, 0, 0, 0, 0, +0, 0, 24838, 15394, 0, 0, 0, 0, 0, 0, +0, 0, 0, 24371, 36029, 0, 0, 15165, 13404, 0, +0, 3761, 2072, 8791, 13331, 39368, 0, 0, 30976, 0, +1681, 0, 0, 0, 33348, 7320, 0, 0, 35387, 4120, +35063, 0, 0, 34726, 6432, 34469, 0, 19845, 0, 0, +0, 0, 0, 3403, 20794, 13338, 0, 21821, 0, 9778, +33957, 0, 0, 7950, 33902, 7846, 22280, 20597, 31444, 31086, +26267, 0, 0, 31445, 23469, 20265, 0, 0, 0, 0, +0, 0, 0, 0, 5140, 0, 3860, 0, 0, 0, +0, 0, 0, 0, 0, 7502, 20324, 0, 33960, 33623, +27630, 14553, 19610, 799, 0, 35433, 9256, 21321, 0, 35434, +0, 41288, 0, 0, 21802, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 5796, 7326, 35741, +27053, 0, 0, 4615, 39143, 0, 0, 0, 0, 0, +27061, 13427, 10805, 7080, 0, 0, 0, 0, 16793, 33962, +8854, 0, 27161, 0, 14710, 0, 0, 0, 0, 0, +0, 0, 13660, 30592, 0, 27171, 14139, 0, 33550, 3750, +0, 0, 0, 0, 0, 0, 0, 0, 0, 13231, +20741, 0, 0, 37261, 0, 0, 14889, 0, 0, 0, +0, 29557, 0, 0, 32610, 0, 6230, 0, 9782, 19505, +30438, 33647, 30506, 28304, 14771, 37724, 0, 9995, 0, 26614, +0, 32854, 18221, 25720, 0, 0, 0, 0, 0, 0, +0, 1235, 0, 0, 21145, 0, 0, 0, 30402, 14336, +25030, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 21329, 0, 20009, 28305, 0, 23968, 0, 0, +10089, 40630, 20015, 33660, 0, 16514, 13687, 6101, 2956, 39727, +7430, 12774, 15078, 12015, 23167, 14419, 40554, 0, 5810, 13446, +34169, 0, 38653, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 39417, 0, 19355, 10861, 32997, 26938, 9529, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 33661, 0, 0, 12341, 0, 4184, 0, 19665, 25633, +33502, 11427, 26162, 14564, 0, 0, 0, 15872, 0, 10768, +9359, 9269, 0, 20018, 5992, 1280, 17612, 16195, 26281, 18758, +31834, 0, 0, 27921, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 21921, 0, 16832, 0, +0, 0, 0, 0, 0, 0, 0, 15656, 9534, 0, +0, 31549, 22070, 26022, 15015, 10728, 9425, 14654, 0, 20969, +11176, 8721, 17200, 9064, 29194, 0, 19308, 29015, 4957, 0, +0, 0, 23186, 37347, 13464, 20339, 8844, 19975, 30816, 0, +29107, 23325, 0, 0, 3187, 6241, 0, 22071, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 10110, 0, 0, 0, 20165, 19260, +18793, 23192, 15529, 0, 6004, 23532, 13374, 15271, 24024, 20166, +26246, 0, 0, 0, 0, 0, 0, 12909, 16926, 15467, +33694, 0, 0, 0, 0, 0, 0, 19389, 7802, 2842, +11698, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 15618, +0, 0, 30742, 9428, 12385, 41230, 12037, 32895, 0, 0, +0, 0, 28226, 0, 25665, 0, 28995, 0, 0, 0, +39348, 16068, 32512, 20205, 0, 31864, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 25764, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 7011, +20351, 40260, 41014, 19958, 0, 31619, 0, 28839, 0, 12841, +2920, 12398, 0, 0, 0, 0, 0, 0, 0, 0, +40670, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 10498, 2568, 23550, +20213, 39169, 15670, 35265, 40032, 0, 12944, 0, 22113, 0, +0, 11649, 0, 20497, 18344, 0, 0, 0, 0, 0, +0, 0, 27546, 0, 19365, 16974, 0, 0, 27607, 35528, +0, 0, 0, 0, 17302, 0, 0, 0, 32815, 28997, +33416, 0, 0, 33895, 17316, 19921, 30645, 19922, 0, 0, +0, 0, 0, 0, 0, 0, 35111, 16383, 18128, 36380, +36381, 17334, 13076, 9557, 0, 0, 0, 9376, 33089, 0, +0, 26569, 0, 41154, 0, 0, 0, 0, 0, 0, +0, 15247, 16724, 0, 0, 0, 0, 0, 1519, 0, +0, 27303, 21820, 33613, 0, 0, 0, 10264, 0, 0, +0, 0, 9593, 0, 38560, 16483, 4679, 39707, 7764, 24217, +0, 38246, 20906, 21709, 35834, 0, 0, 4502, 26864, 13025, +40914, 34524, 36331, 0, 0, 0, 25655, 0, 25426, 31846, +0, 9362, 15178, 0, 31370, 0, 24276, 4524, 0, 38275, +33057, 0, 37384, 38096, 4147, 17054, 17055, 33704, 20040, 33706, +25670, 0, 0, 9674, 25496, 0, 0, 19594, 0, 24287, +4703, 4704, 4707, 0, 0, 0, 0, 0, 0, 0, +0, 0, 31149, 0, 7193, 443, 0, 0, 0, 0, +0, 0, 23596, 39671, 29418, 0, 0, 0, 0, 0, +0, 0, 0, 0, 39672, 39469, 0, 11402, 3794, 0, +39673, 0, 0, 0, 36472, 0, 0, 0, 31352, 850, +0, 10662, 26674, 0, 14899, 16002, 0, 0, 35580, 34271, +0, 0, 1086, 0, 0, 0, 15733, 23673, 0, 0, +38835, 0, 15156, 26377, 0, 0, 229, 38968, 39754, 0, +0, 0, 0, 0, 0, 39771, 0, 13465, 0, 0, +0, 0, 0, 0, 27672, 23086, 21962, 0, 0, 0, +0, 0, 0, 0, 40671, 0, 0, 0, 0, 0, +0, 36382, 0, 11301, 0, 34231, 0, 0, 26910, 21977, +23106, 0, 0, 0, 19486, 2609, 0, 0, 0, 0, +0, 0, 0, 0, 0, 37831, 0, 0, 9141, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 5141, 0, 21072, 0, 38931, 0, 10902, 0, 0, +0, 0, 0, 15510, 0, 5958, 29470, 0, 0, 9335, +0, 0, 24440, 26981, 12806, 357, 20859, 22813, 12761, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 39030, 2115, 31064, 0, 2575, 0, 0, 0, 0, +21074, 15203, 0, 0, 0, 6345, 9336, 24455, 0, 25397, +35572, 6527, 16736, 0, 39997, 15713, 6816, 32079, 5802, 21880, +6923, 36547, 31345, 15517, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 39674, 0, 0, 0, 39566, 34052, 0, 0, 39333, +0, 0, 34775, 0, 12002, 12305, 21112, 0, 0, 0, +0, 34256, 18723, 0, 0, 7865, 25870, 4002, 30693, 0, +8116, 15520, 27744, 15299, 0, 35800, 11213, 0, 0, 0, +0, 0, 0, 0, 37167, 0, 0, 0, 0, 17162, +0, 0, 17936, 6415, 6942, 0, 0, 0, 23969, 6355, +0, 0, 13688, 4323, 32362, 0, 0, 0, 8581, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +5391, 0, 0, 0, 10586, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 40915, 0, 0, 23515, 30108, +10588, 22578, 8862, 0, 21544, 0, 0, 15554, 0, 0, +39587, 0, 0, 0, 0, 0, 0, 32730, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 26547, 37051, 13237, 0, 0, 0, 0, +0, 23429, 3205, 25921, 0, 28359, 23774, 11789, 0, 26320, +6982, 0, 0, 0, 0, 0, 0, 0, 0, 24542, +0, 15461, 0, 0, 31002, 40766, 12359, 0, 0, 0, +0, 4977, 0, 4891, 0, 0, 0, 18555, 15272, 16137, +5575, 24127, 0, 20658, 0, 0, 9831, 10595, 3006, 10515, +0, 0, 0, 0, 0, 0, 0, 0, 2376, 38982, +0, 0, 9717, 0, 0, 0, 0, 0, 0, 0, +0, 0, 33526, 22375, 14949, 0, 0, 8439, 27673, 0, +28227, 25090, 0, 31225, 34413, 22412, 32738, 22052, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 16207, 0, 0, 0, 0, 0, 0, 0, 0, +0, 1069, 39168, 12399, 0, 0, 13920, 17466, 15497, 0, +40043, 0, 0, 0, 0, 0, 0, 0, 38219, 0, +16663, 23204, 1820, 0, 0, 0, 0, 0, 0, 0, +0, 36238, 22779, 0, 0, 0, 0, 27932, 18955, 0, +5594, 6386, 17732, 40683, 0, 0, 0, 0, 0, 0, +0, 0, 2942, 0, 0, 0, 0, 0, 0, 0, +3232, 28528, 0, 0, 0, 0, 0, 25103, 5414, 0, +0, 25224, 0, 23005, 0, 0, 0, 0, 0, 0, +39920, 32816, 0, 0, 13259, 24844, 16776, 2168, 25037, 0, +0, 0, 0, 0, 0, 32569, 16820, 0, 0, 0, +16459, 0, 0, 0, 0, 16180, 0, 16181, 0, 0, +37466, 0, 0, 0, 0, 0, 13503, 24231, 12095, 0, +0, 8420, 0, 0, 35657, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 35684, 39375, +0, 0, 1591, 26739, 14316, 0, 0, 0, 0, 10314, +7952, 0, 14387, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +41267, 35414, 0, 0, 0, 0, 32330, 35415, 0, 27729, +0, 4217, 0, 0, 20605, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 38582, 0, 34048, 0, 0, 25549, 0, +11992, 0, 0, 0, 26421, 0, 0, 0, 27187, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 36895, 37262, 0, 0, 15066, 0, 0, 0, +0, 0, 0, 40737, 18734, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +3541, 16051, 0, 0, 0, 0, 40562, 0, 0, 0, +0, 0, 10762, 0, 0, 33570, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 40910, 36513, 0, 0, +40152, 0, 0, 18333, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 21812, 0, 0, 0, 0, +0, 0, 1304, 0, 3631, 0, 41106, 7772, 18773, 23113, +0, 0, 0, 0, 0, 40430, 0, 38976, 26870, 37183, +18774, 17588, 0, 0, 0, 14944, 17747, 1028, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 35943, 9364, 0, 0, 0, +0, 0, 0, 0, 343, 0, 0, 9665, 20455, 0, +34550, 16361, 0, 0, 1993, 0, 0, 38099, 36863, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 36002, +21296, 0, 0, 0, 0, 0, 21299, 9840, 15109, 0, +26892, 0, 32302, 0, 23727, 25104, 15970, 0, 0, 0, +0, 0, 0, 0, 0, 0, 26507, 0, 12011, 0, +30407, 0, 0, 0, 0, 0, 7545, 7552, 0, 37218, +0, 0, 0, 39369, 9298, 0, 13635, 19487, 10342, 0, +36820, 0, 0, 0, 0, 0, 0, 6433, 27625, 0, +17098, 0, 0, 13642, 21701, 470, 36975, 0, 0, 0, +0, 0, 39385, 0, 0, 0, 0, 0, 0, 0, +0, 0, 10352, 15348, 0, 0, 0, 0, 6437, 12708, +0, 3120, 0, 4218, 10364, 38547, 0, 0, 0, 0, +19782, 0, 0, 10365, 40834, 40195, 0, 0, 30087, 0, +0, 0, 0, 0, 41228, 0, 25553, 6775, 13296, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 10546, +0, 1011, 20612, 0, 0, 0, 0, 41053, 0, 0, +1621, 0, 15692, 12768, 0, 0, 0, 0, 40578, 0, +33387, 0, 0, 0, 0, 0, 0, 10388, 0, 23993, +0, 0, 0, 0, 0, 0, 0, 7470, 26757, 0, +0, 0, 40523, 15797, 38314, 32087, 0, 1259, 35835, 0, +2957, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 19661, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 30360, 0, +0, 0, 0, 0, 0, 31163, 15657, 31071, 33221, 15371, +0, 14273, 6478, 11428, 0, 0, 39755, 2435, 25517, 12343, +0, 35213, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 14053, 34865, 0, 0, 0, +0, 40961, 0, 0, 0, 0, 0, 0, 0, 2283, +0, 0, 0, 0, 0, 0, 0, 27662, 17201, 9187, +2961, 0, 7476, 18245, 0, 13711, 37808, 0, 0, 39773, +0, 0, 3817, 1630, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +12173, 0, 0, 0, 0, 0, 0, 0, 0, 0, +19113, 12924, 0, 4144, 27503, 0, 18943, 15093, 13540, 0, +29200, 38400, 0, 0, 35924, 0, 4525, 21178, 12737, 0, +0, 0, 0, 0, 12606, 0, 0, 0, 0, 0, +0, 0, 0, 103, 0, 0, 0, 0, 0, 0, +0, 0, 0, 13036, 0, 0, 997, 0, 7267, 28229, +41231, 0, 8562, 8594, 16575, 0, 40667, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 11109, 0, 0, +29922, 0, 0, 0, 1338, 14514, 0, 0, 0, 0, +0, 0, 11181, 0, 0, 0, 3365, 0, 0, 0, +15777, 5258, 8742, 32906, 0, 13745, 0, 2235, 0, 0, +0, 0, 0, 0, 0, 0, 41078, 0, 23092, 0, +0, 27326, 2084, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 21657, 34558, 40112, 0, 19906, 0, 1455, +0, 32562, 0, 0, 0, 0, 18830, 16968, 0, 0, +0, 12645, 0, 20357, 16811, 0, 39852, 36710, 1456, 0, +0, 0, 0, 0, 0, 0, 20830, 25197, 0, 0, +0, 0, 0, 0, 0, 0, 21475, 0, 0, 0, +0, 0, 0, 0, 24989, 39011, 0, 0, 0, 0, +16819, 0, 0, 0, 0, 0, 0, 5284, 14999, 0, +0, 0, 18146, 0, 18164, 34451, 0, 0, 0, 35011, +39177, 23143, 69, 0, 21791, 19521, 0, 0, 0, 0, +0, 0, 0, 15201, 0, 14254, 34476, 20266, 0, 36127, +30310, 35066, 30183, 22500, 28182, 0, 0, 0, 0, 0, +0, 0, 0, 15565, 0, 0, 10646, 0, 20504, 18025, +35743, 26601, 0, 41289, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 29736, 0, 36668, 0, 30227, +9594, 10718, 0, 0, 0, 27063, 0, 33353, 0, 3, +0, 0, 0, 0, 0, 0, 0, 3319, 0, 15518, +35766, 34852, 29498, 6287, 2548, 18328, 0, 0, 0, 24629, +33831, 26615, 15786, 29669, 0, 23815, 0, 3873, 0, 0, +0, 0, 30959, 0, 18484, 196, 0, 0, 0, 0, +0, 0, 15212, 0, 35032, 0, 8002, 0, 0, 0, +1057, 16408, 23606, 5811, 0, 0, 13523, 9530, 0, 33356, +0, 0, 15454, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 32363, 31133, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 8955, 0, +0, 0, 21955, 15372, 0, 0, 0, 15658, 0, 0, +0, 0, 0, 29279, 9066, 19281, 0, 18335, 0, 0, +0, 30817, 30966, 0, 0, 0, 0, 0, 0, 8976, +0, 29812, 21643, 0, 0, 20158, 0, 0, 0, 16496, +23825, 19391, 38983, 0, 11235, 36571, 13992, 0, 19799, 0, +0, 8056, 0, 0, 0, 24801, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 18340, 8241, 5219, 0, 8960, 0, 4791, 0, +0, 33286, 0, 0, 0, 0, 0, 0, 29758, 27200, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 24514, 0, 0, 0, 0, 0, 0, 0, +0, 25456, 0, 0, 0, 0, 0, 0, 0, 17318, +0, 0, 0, 12233, 30174, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 29653, 0, 0, 0, +0, 0, 28710, 0, 18165, 0, 35658, 25641, 0, 22001, +0, 0, 0, 2164, 0, 0, 0, 37708, 25048, 40303, +9905, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 7177, 9908, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 2059, 22827, +17798, 0, 0, 0, 0, 0, 0, 0, 15978, 8015, +29315, 31102, 0, 14421, 0, 0, 0, 0, 0, 0, +0, 0, 39107, 0, 8035, 0, 0, 0, 0, 0, +0, 0, 18383, 0, 0, 0, 31847, 29280, 0, 0, +0, 12595, 0, 0, 0, 35094, 0, 4659, 0, 0, +22168, 24180, 0, 0, 0, 0, 0, 18394, 12460, 0, +0, 0, 0, 0, 29645, 35522, 0, 2882, 0, 0, +0, 0, 0, 8929, 0, 0, 6219, 0, 0, 0, +0, 0, 0, 0, 32466, 0, 0, 29531, 0, 40376, +35556, 35712, 40828, 23408, 0, 0, 2573, 0, 0, 0, +0, 0, 0, 0, 0, 0, 6641, 0, 0, 3678, +18709, 6645, 0, 7369, 27054, 29170, 12117, 24533, 27527, 3160, +0, 0, 11572, 27145, 0, 0, 37838, 0, 0, 0, +0, 0, 18370, 0, 19419, 8993, 0, 0, 0, 32080, +20613, 0, 26671, 0, 22916, 35074, 24701, 25184, 0, 0, +0, 14625, 0, 0, 36205, 520, 21518, 0, 3766, 0, +0, 0, 0, 0, 0, 0, 0, 0, 25404, 4112, +21530, 17163, 13233, 15318, 2424, 3753, 40363, 40842, 34780, 0, +0, 0, 0, 0, 0, 0, 30960, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 12546, 12547, 0, 0, 0, 18932, 24636, 6654, 742, +2663, 0, 1931, 0, 3423, 39037, 19548, 0, 12558, 20315, +37651, 0, 31209, 39730, 22830, 0, 0, 3686, 0, 0, +0, 0, 0, 20016, 7454, 4832, 19858, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 36161, 19533, 5778, +5867, 0, 23770, 0, 0, 10188, 39491, 14495, 21428, 0, +0, 0, 20019, 9179, 0, 0, 0, 0, 0, 40364, +21545, 40642, 0, 35214, 4590, 0, 33503, 0, 31836, 0, +0, 1858, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 2284, 0, 0, 0, +0, 34525, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 13913, 0, 0, 14567, 5315, +6459, 0, 35142, 14160, 15462, 19217, 30721, 29755, 36784, 22040, +0, 22536, 6108, 0, 30722, 3099, 13150, 0, 27663, 40645, +27936, 0, 25658, 0, 37058, 0, 0, 0, 0, 6983, +0, 0, 15679, 0, 40337, 0, 0, 0, 0, 0, +31988, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 8057, +28959, 31592, 3776, 8438, 18866, 2443, 26329, 18254, 0, 31856, +12191, 35593, 28681, 0, 10971, 0, 0, 4836, 8764, 0, +27118, 25952, 10730, 32391, 0, 0, 31992, 0, 0, 0, +0, 20823, 28363, 0, 38566, 0, 7887, 26033, 21795, 35926, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 24277, 24430, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 11821, +27505, 5157, 21930, 20666, 23698, 3648, 22019, 14795, 0, 0, +3008, 17822, 1754, 15621, 5220, 3831, 29571, 5221, 19431, 11111, +17684, 32215, 0, 2380, 18805, 4129, 31226, 19396, 0, 0, +0, 40850, 0, 6464, 0, 0, 27513, 8242, 14675, 40108, +0, 5921, 30509, 4148, 23699, 29961, 0, 17458, 1559, 16938, +0, 0, 16939, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +1353, 8251, 4796, 6336, 0, 38100, 18395, 34085, 24509, 12215, +23830, 0, 13053, 26440, 6799, 27275, 2148, 33532, 6178, 0, +25161, 0, 34803, 25690, 17976, 13054, 5716, 7632, 5832, 41198, +0, 21668, 0, 0, 0, 0, 28112, 29330, 237, 0, +0, 2446, 6113, 26644, 6466, 29130, 13482, 41199, 38792, 13055, +5229, 5162, 27834, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 38675, 29515, 39829, 0, 0, 36801, +22023, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 17057, 0, 0, 23788, 0, 28243, 14574, 128, 8744, +14682, 30009, 1363, 23615, 2004, 11838, 0, 13184, 0, 0, +9010, 28114, 0, 0, 0, 0, 4413, 23982, 0, 0, +0, 34426, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 5834, 0, 0, +20354, 0, 0, 0, 0, 0, 0, 0, 0, 0, +23003, 18187, 13754, 40351, 9207, 0, 0, 6485, 38903, 0, +26463, 24312, 20050, 0, 22897, 4576, 3780, 0, 0, 25815, +0, 0, 0, 0, 0, 0, 29331, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 18286, 18870, 18686, 41019, 0, 0, 0, 18959, 11379, +0, 29402, 29932, 23977, 17984, 865, 22203, 38626, 0, 17319, +0, 0, 0, 29145, 11008, 0, 0, 0, 0, 0, +17846, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 11712, +24754, 33844, 0, 14179, 6025, 28164, 0, 30863, 0, 34442, +34341, 647, 0, 13287, 21300, 17335, 11011, 23554, 39921, 0, +0, 0, 0, 0, 0, 0, 0, 1382, 0, 0, +37120, 6026, 17989, 17350, 40691, 12664, 14451, 0, 7748, 0, +37444, 0, 0, 0, 0, 0, 0, 0, 0, 0, +17855, 38000, 23796, 13603, 9377, 0, 40695, 0, 0, 8273, +0, 0, 0, 0, 0, 0, 0, 26065, 0, 0, +4677, 0, 0, 0, 0, 0, 0, 11713, 0, 0, +0, 0, 5331, 18446, 36034, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 25776, 37793, 0, +5603, 0, 0, 0, 0, 0, 0, 8452, 38062, 26362, +37464, 2031, 0, 6092, 7238, 0, 37228, 0, 26594, 0, +0, 0, 0, 0, 8888, 0, 20328, 29989, 0, 0, +17787, 0, 0, 0, 0, 0, 0, 0, 0, 38378, +22238, 0, 20005, 0, 20477, 7333, 0, 20891, 27740, 35445, +12712, 40307, 0, 0, 0, 0, 0, 575, 37263, 0, +22956, 0, 0, 0, 11284, 2300, 13349, 0, 0, 0, +28658, 0, 0, 0, 0, 0, 0, 0, 0, 39709, +0, 20090, 15319, 0, 0, 0, 0, 34893, 6568, 25008, +2130, 4010, 24084, 18230, 1932, 0, 15255, 7663, 0, 0, +0, 0, 0, 0, 0, 0, 0, 5392, 0, 0, +0, 6292, 8708, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 18077, 31690, 0, +21341, 40011, 40012, 0, 0, 0, 0, 3772, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 21367, 12166, 0, 24722, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +15135, 0, 0, 32382, 0, 10420, 0, 17897, 0, 40767, +0, 0, 0, 21958, 4651, 0, 0, 0, 0, 2562, +0, 0, 0, 0, 0, 39964, 2066, 0, 0, 0, +0, 0, 3777, 31857, 25801, 32203, 26034, 20272, 0, 7264, +39435, 0, 4786, 0, 0, 0, 0, 0, 32035, 0, +0, 0, 0, 0, 0, 0, 0, 0, 21898, 16940, +41071, 0, 4729, 38281, 0, 16941, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 23355, 0, 40584, 4797, 23055, 0, +7275, 28691, 0, 0, 0, 0, 0, 0, 0, 0, +0, 40790, 41109, 40030, 25448, 17911, 28692, 0, 0, 0, +0, 0, 0, 0, 27135, 0, 0, 0, 4746, 40796, +7899, 0, 0, 0, 0, 32782, 0, 0, 0, 0, +0, 0, 7738, 0, 0, 0, 0, 0, 0, 32417, +13190, 0, 7682, 0, 0, 0, 0, 17320, 20684, 0, +0, 0, 0, 0, 0, 36712, 0, 0, 0, 0, +0, 12072, 0, 24755, 0, 0, 0, 0, 21441, 0, +0, 0, 20063, 0, 0, 23557, 0, 0, 10455, 0, +17565, 0, 0, 0, 0, 0, 0, 41306, 0, 0, +18169, 0, 0, 40188, 0, 21446, 0, 0, 12434, 25363, +13643, 8424, 0, 0, 35713, 0, 0, 40039, 0, 31333, +0, 0, 0, 0, 8831, 4633, 0, 20329, 0, 0, +0, 34049, 0, 39398, 32699, 0, 0, 7965, 10907, 0, +0, 0, 5519, 0, 14860, 5897, 0, 0, 0, 0, +0, 0, 0, 0, 0, 27170, 0, 0, 30469, 0, +0, 0, 0, 0, 0, 20892, 5523, 27064, 4384, 27241, +0, 30230, 3084, 7244, 0, 9092, 37491, 0, 0, 9354, +0, 0, 0, 0, 0, 0, 0, 0, 24158, 0, +38644, 5040, 26487, 0, 0, 0, 0, 0, 0, 0, +40004, 32498, 20480, 40872, 11467, 20010, 0, 31814, 39710, 22036, +6730, 0, 0, 0, 4452, 20714, 0, 3039, 0, 35803, +8996, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 14045, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 38336, 22831, 35202, 13690, 0, +22459, 0, 0, 26111, 40482, 14223, 0, 0, 18231, 37176, +0, 14422, 0, 0, 0, 0, 21887, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 19662, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 3130, 0, 40426, 21429, 15573, 13591, +11224, 0, 0, 33137, 41253, 34635, 14913, 0, 0, 0, +0, 10869, 40093, 26549, 0, 34526, 0, 33007, 5994, 0, +0, 3133, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +13027, 12582, 0, 0, 4327, 10682, 0, 0, 0, 0, +0, 0, 0, 0, 4958, 0, 0, 0, 15136, 33228, +11790, 13032, 40100, 38470, 8220, 3632, 1047, 21893, 0, 0, +0, 12596, 23776, 0, 30411, 21941, 1305, 27598, 0, 0, +0, 0, 0, 0, 0, 0, 14056, 35223, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 7481, 0, 0, 16930, 0, 0, 17216, 22543, +0, 0, 0, 0, 0, 0, 28221, 18255, 10425, 11914, +28733, 27599, 39798, 1966, 0, 0, 0, 31858, 0, 0, +0, 22939, 25134, 0, 20824, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 36572, +0, 0, 0, 0, 5067, 0, 0, 0, 0, 0, +0, 0, 23441, 5889, 21566, 27506, 0, 26438, 16098, 28232, +0, 6245, 6009, 0, 0, 0, 0, 0, 0, 0, +8925, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 40408, +9798, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 33533, 24820, 0, 0, 34086, 0, 0, 13389, +38997, 0, 5833, 25915, 1030, 0, 28371, 23831, 0, 0, +0, 33534, 0, 34087, 0, 0, 20669, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 28244, +16212, 40261, 40114, 0, 17284, 0, 5127, 14524, 0, 37943, +2814, 19120, 0, 0, 26049, 0, 17475, 0, 41127, 0, +0, 16312, 27510, 24191, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 6247, 0, 0, 0, 0, 0, +31397, 19912, 0, 12647, 0, 0, 3447, 0, 21294, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 34999, 0, 0, 16224, +0, 0, 18960, 0, 28255, 7903, 0, 0, 16770, 30764, +0, 0, 0, 0, 0, 0, 0, 0, 4540, 0, +0, 0, 0, 0, 17336, 0, 22804, 0, 15048, 14578, +0, 16230, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 12665, 0, 0, 20365, 0, 35112, 1427, +0, 0, 0, 4586, 27695, 0, 0, 27696, 0, 0, +10456, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 21060, 0, 6035, 0, 0, 3073, 37905, 0, 33425, +27233, 0, 2776, 20390, 17407, 36083, 33211, 30536, 9160, 29688, +28411, 7471, 4906, 21539, 4644, 41271, 13712, 33880, 1967, 13871, +36233, 33528, 0, 36978, 33350, 0, 23478, 843, 33262, 8950, +0, 0, 41158, 0, 0, 0, 13581, 0, 15128, 0, +0, 33272, 857, 27255, 37328, 0, 40055, 38658, 0, 0, +0, 0, 0, 0, 39907, 0, 0, 0, 2563, 0, +4208, 18337, 0, 0, 0, 0, 28142, 0, 40259, 0, +0, 0, 0, 0, 0, 0, 0, 1513, 0, 0, +0, 33194, 0, 34279, 0, 0, 18133, 0, 0, 0, +0, 34281, 0, 0, 0, 0, 29464, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 5549, +0, 0, 0, 0, 0, 0, 0, 22501, 11067, 2453, +0, 0, 0, 0, 0, 0, 29231, 20737, 14731, 0, +20738, 0, 14616, 18304, 0, 18182, 0, 0, 0, 18305, +11076, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 7967, 10908, 0, 0, 6924, 8898, +9093, 0, 0, 0, 0, 9306, 0, 0, 0, 0, +0, 0, 0, 19026, 0, 7245, 18929, 19852, 8005, 18223, +0, 0, 0, 0, 0, 32865, 9103, 0, 32365, 1933, +0, 12561, 0, 0, 0, 0, 0, 0, 0, 24913, +18745, 0, 0, 0, 0, 0, 0, 0, 0, 0, +27594, 0, 0, 20740, 37330, 10101, 0, 0, 0, 0, +0, 37736, 5199, 0, 0, 0, 0, 37059, 12911, 0, +0, 8520, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 2378, 26724, 18318, 0, 0, 0, 0, +13375, 0, 0, 28048, 28049, 39967, 0, 0, 0, 0, +0, 0, 17749, 0, 33838, 18807, 0, 12623, 0, 0, +34414, 0, 0, 0, 0, 18820, 0, 20457, 29131, 0, +0, 0, 11438, 0, 0, 35958, 28737, 0, 31300, 0, +0, 0, 12224, 0, 0, 0, 0, 0, 0, 6387, +16074, 0, 15047, 0, 0, 0, 0, 26893, 21031, 23006, +0, 0, 27280, 25023, 0, 0, 0, 0, 0, 0, +25310, 0, 0, 7601, 0, 0, 28445, 29988, 0, 34766, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 6678, 4350, 0, 9152, +7607, 0, 0, 25507, 0, 0, 0, 8544, 32479, 0, +32480, 10794, 0, 28898, 26306, 34781, 40873, 0, 37557, 0, +0, 0, 0, 0, 0, 0, 27962, 0, 0, 4124, +32484, 0, 581, 0, 19424, 0, 8119, 16178, 17039, 0, +13691, 36692, 0, 0, 0, 0, 37331, 0, 3620, 0, +4125, 35863, 26240, 0, 0, 0, 12361, 34324, 0, 0, +31372, 4270, 19514, 0, 0, 0, 0, 8047, 12734, 9067, +9122, 12786, 0, 0, 0, 32204, 0, 14000, 40882, 18526, +0, 0, 9069, 0, 0, 0, 25278, 0, 26250, 0, +0, 14957, 29646, 36862, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 12941, 6382, 0, 11000, +0, 0, 0, 25959, 37425, 0, 0, 0, 0, 0, +19367, 0, 39443, 34338, 8568, 0, 11280, 0, 0, 0, +0, 0, 24994, 0, 0, 34847, 0, 41156, 0, 0, +0, 32583, 35715, 34477, 10639, 36979, 0, 0, 0, 3584, +0, 3464, 0, 0, 10165, 25999, 21983, 28448, 7571, 3408, +0, 0, 10649, 33961, 0, 0, 0, 0, 0, 0, +0, 0, 39567, 0, 0, 0, 0, 24776, 0, 0, +0, 0, 31487, 7985, 0, 27248, 9909, 0, 22982, 0, +4429, 0, 0, 0, 0, 0, 0, 0, 2637, 0, +0, 10583, 0, 0, 0, 0, 22205, 26620, 32623, 0, +0, 33750, 4431, 29506, 22987, 0, 0, 0, 0, 0, +0, 28479, 2516, 0, 0, 41063, 12020, 33676, 34636, 2639, +0, 30106, 0, 0, 0, 0, 0, 0, 32194, 33763, +10773, 11375, 8723, 3742, 1307, 10590, 10591, 3493, 0, 2564, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38471, 0, 38543, 28497, 0, 0, 22993, 28498, 0, +36791, 8058, 4359, 4959, 28429, 0, 18256, 0, 0, 4360, +0, 10602, 0, 10125, 16168, 0, 26882, 0, 0, 0, +0, 29647, 11832, 10435, 22764, 37405, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 32120, 10038, 0, 22998, +0, 0, 0, 0, 0, 0, 16225, 12073, 0, 0, +0, 0, 0, 0, 0, 0, 28610, 0, 0, 0, +16591, 0, 27354, 0, 0, 0, 5381, 5768, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +33364, 0, 0, 30512, 0, 3068, 20951, 0, 14826, 0, +0, 7081, 7085, 21814, 21828, 0, 0, 0, 0, 0, +0, 40407, 0, 0, 0, 0, 21905, 0, 17761, 16730, +0, 405, 0, 0, 0, 0, 3252, 0, 0, 9525, +24956, 8772, 0, 8951, 26480, 0, 0, 0, 0, 16272, +39284, 35864, 9709, 30547, 19087, 0, 0, 0, 26947, 36340, +26787, 29813, 1308, 0, 38263, 39965, 0, 25491, 23335, 8235, +2444, 0, 0, 0, 0, 16942, 19398, 0, 17459, 1560, +0, 0, 0, 4159, 35959, 0, 0, 0, 22043, 0, +0, 0, 0, 35978, 15780, 0, 0, 1577, 0, 3663, +24848, 20695, 38923, 26142, 26143, 0, 0, 0, 0, 0, +0, 34891, 8890, 20955, 0, 0, 32962, 0, 0, 29337, +0, 0, 0, 0, 0, 0, 35132, 0, 0, 26097, +0, 0, 0, 0, 0, 25974, 0, 0, 5731, 33633, +0, 0, 0, 0, 0, 24777, 0, 0, 0, 0, +0, 0, 10584, 26803, 29558, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 6807, 0, +0, 0, 0, 17653, 0, 10721, 17040, 0, 32503, 0, +0, 26715, 0, 0, 7873, 0, 0, 0, 0, 0, +0, 0, 34528, 30489, 23179, 6739, 0, 11225, 23686, 0, +33008, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 4459, 26760, 0, 0, 0, 7150, 0, +33229, 0, 29959, 34641, 0, 17812, 0, 0, 20023, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +40982, 0, 40768, 0, 10973, 36431, 17451, 4917, 29282, 29343, +0, 0, 0, 0, 0, 0, 0, 0, 0, 25432, +0, 104, 0, 0, 114, 38991, 9763, 18808, 38845, 20033, +17685, 38992, 0, 0, 0, 24872, 4532, 0, 0, 29480, +0, 28694, 38676, 10992, 0, 22765, 0, 4920, 25449, 0, +0, 0, 0, 0, 21136, 0, 0, 0, 0, 21037, +5261, 13486, 0, 0, 0, 0, 0, 14683, 7126, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 17338, 0, 9767, 30271, 0, 0, 0, 0, +21495, 0, 13850, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 22565, 3567, 0, 0, 0, 0, 0, +0, 0, 22566, 35639, 6321, 30218, 33992, 0, 23454, 26294, +0, 0, 33461, 0, 0, 10312, 22099, 0, 22234, 0, +33325, 0, 3519, 28616, 41171, 41124, 23462, 6322, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 27526, 0, 0, 20857, 31435, 0, 0, 0, 0, +0, 0, 0, 0, 0, 3018, 35688, 0, 0, 39247, +0, 0, 14463, 5030, 0, 25854, 0, 0, 40292, 30395, +0, 0, 25855, 633, 12830, 19350, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 30158, 0, +23472, 0, 0, 0, 0, 40454, 30081, 0, 0, 22854, +0, 0, 0, 0, 0, 0, 0, 0, 0, 22321, +15821, 35436, 0, 32963, 37670, 10520, 0, 10745, 39250, 4282, +27055, 30222, 0, 32843, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 8853, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 6911, +0, 0, 0, 0, 0, 0, 0, 0, 0, 15673, +20886, 0, 0, 14394, 33863, 24703, 3086, 18891, 10378, 26800, +21027, 0, 10379, 2543, 34303, 8837, 21519, 0, 9781, 34374, +9383, 0, 0, 39682, 16634, 0, 0, 0, 0, 0, +0, 6412, 23489, 24704, 14871, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 7713, +0, 33634, 29950, 0, 9996, 15649, 0, 0, 26616, 39711, +0, 22166, 39270, 17164, 30355, 0, 7304, 33181, 0, 0, +34267, 0, 0, 0, 0, 14412, 26707, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 19528, 0, 30015, 40627, 31508, 36268, 14043, +29994, 0, 0, 8857, 12549, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 40404, 0, 0, +29433, 0, 39409, 0, 12322, 0, 0, 0, 36417, 30805, +0, 11422, 29507, 2691, 0, 0, 15943, 23607, 638, 2514, +30146, 21016, 13586, 0, 34315, 0, 29797, 0, 30963, 0, +4496, 0, 0, 33662, 36272, 0, 0, 1058, 0, 0, +0, 0, 18860, 0, 0, 0, 0, 38019, 4908, 0, +0, 0, 21540, 14561, 10763, 0, 0, 0, 8861, 0, +0, 0, 0, 0, 0, 0, 0, 10764, 15193, 8907, +0, 11695, 33009, 0, 0, 31837, 10002, 20020, 0, 31022, +11931, 25950, 33185, 38969, 12021, 0, 8912, 0, 0, 25842, +13861, 30198, 0, 0, 0, 6546, 3429, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 31551, 0, 0, +0, 0, 20021, 38128, 25922, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 29999, +39732, 30965, 0, 0, 36172, 30017, 0, 3693, 38264, 0, +32645, 20538, 4652, 0, 0, 1447, 33400, 0, 0, 35494, +0, 0, 0, 0, 0, 0, 11568, 0, 38396, 28315, +11903, 14655, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 4653, 0, 0, 12192, 34082, +28287, 2479, 0, 35928, 0, 0, 0, 0, 1553, 0, +0, 0, 14945, 17217, 0, 0, 22221, 0, 0, 0, +0, 37966, 35233, 0, 1325, 39040, 39041, 0, 14354, 38984, +0, 0, 27399, 0, 0, 0, 31595, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 33580, +20947, 32205, 9718, 30825, 0, 0, 12386, 25809, 0, 0, +6177, 21860, 6461, 39294, 15666, 0, 0, 20494, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 748, +11816, 0, 0, 40931, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 25902, 0, +29002, 35513, 0, 37387, 0, 0, 0, 35097, 21669, 0, +3837, 11940, 0, 6587, 0, 23545, 36492, 1818, 21655, 11533, +0, 0, 0, 0, 0, 0, 0, 0, 36493, 0, +0, 0, 749, 0, 0, 0, 9492, 16763, 41224, 0, +0, 0, 0, 0, 0, 0, 0, 2815, 0, 0, +0, 0, 0, 0, 0, 0, 0, 13061, 0, 0, +0, 19913, 0, 32788, 0, 0, 0, 0, 0, 33195, +0, 16975, 0, 0, 0, 0, 0, 0, 0, 0, +24087, 0, 0, 0, 0, 30766, 20923, 0, 22135, 0, +16712, 0, 0, 19137, 0, 0, 0, 18993, 0, 8821, +0, 18994, 0, 0, 24849, 0, 0, 0, 19144, 0, +21044, 0, 0, 19145, 37791, 0, 0, 0, 0, 0, +27533, 0, 0, 20127, 30452, 2426, 12883, 30480, 0, 0, +0, 0, 0, 12735, 0, 0, 0, 0, 11360, 0, +0, 0, 17569, 40854, 517, 27166, 0, 0, 30329, 0, +0, 0, 27234, 0, 0, 0, 0, 9511, 31462, 0, +25550, 35071, 0, 0, 8545, 0, 0, 0, 0, 0, +0, 37737, 0, 0, 36564, 30238, 1955, 0, 0, 0, +0, 33191, 0, 0, 22627, 1980, 0, 0, 9919, 38569, +31128, 0, 35266, 1372, 9923, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 3585, 0, 0, 39683, +0, 21230, 0, 0, 0, 31210, 55, 0, 0, 0, +0, 0, 53, 37193, 3640, 0, 0, 14166, 39816, 39830, +39831, 14455, 0, 0, 0, 0, 9964, 0, 0, 0, +22822, 0, 0, 35027, 0, 0, 0, 0, 0, 36751, +22826, 0, 20616, 0, 0, 0, 0, 0, 41295, 22983, +0, 33929, 15842, 35806, 22984, 0, 0, 0, 0, 0, +0, 0, 0, 40526, 0, 0, 0, 0, 0, 0, +0, 21245, 24664, 4604, 0, 0, 0, 0, 0, 0, +35046, 0, 0, 0, 0, 7628, 0, 0, 0, 31994, +0, 13246, 2521, 0, 0, 32775, 2522, 0, 0, 0, +0, 0, 3368, 4799, 0, 0, 0, 24510, 0, 37417, +0, 37100, 0, 0, 0, 30987, 0, 2528, 37207, 0, +0, 0, 0, 0, 0, 41258, 5374, 0, 0, 14804, +5375, 36390, 0, 7786, 0, 0, 0, 31037, 0, 0, +13947, 23479, 0, 24327, 0, 16119, 0, 28623, 32074, 0, +29234, 0, 16123, 0, 29341, 0, 10930, 40149, 38587, 28460, +0, 29239, 28468, 28480, 11172, 34529, 29451, 0, 29452, 28481, +0, 0, 0, 0, 0, 0, 11272, 0, 12787, 23536, +0, 28503, 0, 0, 28641, 11239, 0, 0, 40443, 11153, +0, 0, 16390, 0, 0, 0, 0, 0, 0, 0, +0, 0, 41218, 35660, 7935, 31326, 0, 7936, 0, 6059, +28446, 0, 0, 0, 0, 0, 0, 0, 3036, 0, +0, 25377, 25003, 0, 8642, 0, 0, 0, 0, 7987, +5670, 5859, 36632, 0, 12831, 0, 0, 18375, 0, 0, +36633, 22512, 0, 11964, 24472, 0, 7248, 31211, 29607, 10175, +0, 0, 28630, 0, 0, 0, 0, 0, 10536, 0, +0, 0, 0, 0, 29361, 0, 0, 0, 40007, 0, +0, 554, 33010, 5347, 0, 13862, 0, 0, 0, 0, +0, 10870, 859, 0, 6105, 0, 0, 0, 21858, 30819, +37062, 0, 33230, 8048, 32384, 23522, 29756, 0, 0, 12362, +0, 36515, 0, 5490, 30552, 31575, 0, 22017, 0, 26768, +36854, 0, 41, 13161, 0, 9008, 25752, 0, 0, 0, +8977, 0, 0, 26167, 28829, 0, 0, 0, 0, 0, +0, 18809, 316, 0, 23543, 33406, 0, 5000, 0, 0, +0, 7189, 30842, 0, 6664, 17693, 7219, 11534, 14958, 28512, +41232, 25240, 2237, 29024, 0, 0, 11240, 33535, 0, 38615, +0, 0, 0, 8442, 0, 0, 22389, 2240, 32812, 4968, +0, 0, 0, 12648, 0, 0, 0, 0, 17060, 0, +0, 22088, 0, 0, 0, 18429, 17339, 31713, 29035, 0, +0, 18134, 0, 0, 0, 0, 17068, 25169, 18170, 0, +0, 0, 9701, 0, 0, 0, 0, 0, 22917, 20617, +22008, 0, 0, 474, 0, 0, 0, 0, 0, 0, +0, 23316, 0, 0, 34402, 0, 0, 0, 0, 0, +30239, 262, 0, 20517, 20453, 34137, 19914, 0, 0, 9323, +0, 0, 13330, 0, 0, 0, 0, 8325, 0, 0, +0, 0, 0, 2181, 31318, 38924, 25284, 15578, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 38853, 39889, 24581, 9738, 8885, 23041, 11062, 20228, +0, 0, 29229, 0, 0, 0, 0, 30464, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 40192, 4933, +33351, 20842, 0, 0, 14703, 0, 0, 21389, 0, 0, +0, 0, 0, 0, 11068, 26090, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 39388, 0, 0, 28402, 0, 27628, +0, 0, 0, 35716, 0, 0, 0, 0, 0, 0, +0, 24456, 39652, 18889, 25551, 0, 23254, 37152, 39989, 34771, +32258, 20710, 3789, 11604, 14258, 14326, 22729, 0, 0, 0, +0, 13513, 0, 9315, 0, 20607, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 31463, 23065, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 12522, 0, 0, +0, 0, 0, 0, 30957, 907, 35573, 7989, 27634, 14712, +12539, 0, 21325, 0, 987, 0, 0, 0, 0, 33635, +0, 0, 24297, 1916, 0, 0, 30451, 39035, 0, 31091, +26450, 38208, 34828, 0, 0, 27845, 21520, 0, 0, 0, +0, 1219, 0, 0, 0, 0, 0, 0, 0, 4626, +23897, 0, 0, 0, 0, 0, 32755, 39403, 26504, 0, +0, 39684, 22328, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 5903, 0, 0, 0, 0, 0, 0, +31100, 0, 39568, 1220, 0, 7608, 0, 0, 0, 0, +0, 0, 0, 0, 0, 661, 0, 0, 0, 0, +24630, 21277, 1923, 6649, 0, 26984, 33489, 2902, 33490, 35136, +20011, 0, 0, 0, 33131, 40628, 8187, 0, 0, 22576, +33967, 0, 37288, 32176, 37289, 37018, 0, 14413, 28406, 15550, +0, 0, 39271, 19853, 8514, 0, 0, 0, 0, 0, +20805, 31733, 1237, 0, 8188, 0, 0, 0, 0, 0, +32762, 0, 0, 0, 14267, 0, 0, 9028, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +3476, 14268, 14269, 0, 0, 26108, 0, 7428, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 8006, +0, 0, 0, 30405, 33491, 1851, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 10276, 0, 32866, 22668, 37178, 0, 29271, 22528, 0, +26985, 15742, 12152, 0, 0, 38386, 20966, 20739, 0, 8019, +6452, 0, 0, 26783, 2551, 0, 3484, 9604, 20403, 28769, +550, 23905, 0, 40634, 30806, 34063, 0, 20299, 38020, 36773, +0, 36902, 0, 26231, 10401, 18897, 39484, 0, 0, 0, +14152, 39096, 0, 0, 19859, 36774, 0, 31104, 451, 0, +0, 14780, 25561, 4601, 39422, 0, 0, 0, 0, 0, +0, 0, 0, 10939, 34734, 0, 15080, 26510, 15609, 0, +0, 23764, 0, 0, 19860, 0, 0, 0, 0, 0, +29382, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 21541, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 3485, +0, 33337, 0, 11932, 0, 0, 5568, 16491, 0, 38157, +2437, 28354, 41110, 28136, 0, 31984, 0, 33011, 0, 0, +13705, 36780, 0, 9061, 8843, 0, 0, 0, 15084, 11567, +12346, 23013, 31164, 0, 35866, 0, 0, 20946, 0, 25484, +20996, 0, 22880, 26314, 5868, 12347, 11146, 6571, 15568, 28483, +0, 10723, 0, 27260, 0, 0, 0, 10549, 7648, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 15613, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 21377, 0, 0, 0, 3919, 0, 0, 0, 0, +0, 0, 0, 0, 23981, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 31838, 10944, 27851, 31109, +0, 9915, 25564, 19864, 0, 25874, 0, 31215, 0, 36786, +0, 28637, 26633, 0, 0, 0, 23433, 0, 9794, 23610, +32104, 0, 0, 0, 0, 28139, 18776, 0, 0, 23187, +5870, 0, 0, 23328, 12782, 36787, 31695, 3005, 0, 0, +0, 0, 0, 20159, 18572, 1145, 0, 0, 0, 0, +0, 0, 22262, 0, 0, 0, 39111, 26634, 2797, 8221, +0, 0, 0, 0, 24732, 27665, 0, 0, 41149, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 38891, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 22537, 0, 0, 4605, 0, +0, 0, 0, 0, 8561, 6363, 0, 7890, 9363, 25971, +27925, 13037, 23024, 0, 2262, 1064, 20742, 38842, 32717, 0, +14510, 27267, 13038, 16935, 0, 4127, 16625, 0, 10485, 10974, +9113, 38790, 13723, 32555, 0, 6332, 10009, 12788, 32556, 12375, +27318, 16535, 12193, 26247, 0, 0, 28919, 40775, 27467, 0, +12376, 4028, 12608, 26638, 17972, 17680, 0, 25877, 0, 201, +25662, 0, 29116, 5212, 0, 11342, 0, 25802, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 25682, 31168, 14667, 11343, 16835, 18798, 0, 0, +28639, 38347, 0, 0, 0, 23781, 0, 0, 0, 31596, +0, 0, 0, 0, 0, 0, 0, 0, 0, 4433, +26515, 0, 0, 0, 0, 25803, 0, 0, 19678, 24813, +0, 1981, 8440, 0, 24181, 14797, 5255, 2918, 34799, 10432, +0, 12206, 0, 1788, 0, 19736, 0, 0, 0, 6620, +344, 14060, 18810, 20275, 5829, 10489, 0, 12930, 0, 0, +11183, 9009, 0, 0, 18811, 8069, 11705, 0, 38323, 0, +14001, 27674, 25119, 0, 0, 0, 0, 0, 5222, 0, +30415, 1451, 0, 0, 0, 0, 12791, 0, 0, 0, +0, 0, 0, 5159, 14277, 32206, 1982, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 32000, +0, 1561, 0, 0, 0, 22996, 0, 0, 25972, 947, +26176, 30743, 0, 2335, 18812, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 5223, 0, 9204, 37967, 684, +8476, 0, 0, 2986, 12631, 17755, 0, 24511, 13178, 18821, +6483, 28101, 34992, 36235, 0, 28513, 34993, 14064, 3934, 8073, +37601, 26462, 0, 1819, 5327, 27132, 0, 0, 18610, 24185, +19118, 22999, 0, 19901, 13747, 0, 0, 12217, 0, 0, +18822, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 2965, 20352, 19902, 13057, +0, 0, 2208, 0, 28073, 0, 0, 0, 0, 0, +0, 0, 10495, 25813, 0, 40791, 15535, 8849, 27677, 0, +0, 0, 0, 0, 29138, 38727, 33074, 27520, 3558, 36707, +18684, 19981, 17840, 27771, 0, 0, 31628, 7277, 7900, 26692, +29139, 2642, 37763, 0, 7901, 13185, 5720, 0, 0, 0, +32909, 5129, 0, 0, 0, 39512, 0, 0, 0, 33707, +0, 0, 0, 0, 21580, 7354, 19908, 20458, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 18537, 6388, +0, 38731, 13192, 10135, 5233, 26073, 13193, 28703, 13494, 22945, +0, 22898, 0, 40444, 0, 17702, 40883, 0, 40684, 0, +11119, 0, 0, 0, 0, 31888, 0, 19915, 14685, 20358, +32230, 0, 16028, 19916, 12954, 0, 0, 0, 21765, 0, +5721, 25961, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 4038, +39518, 23793, 18914, 0, 40686, 0, 0, 0, 41304, 10020, +28172, 9073, 0, 3870, 12653, 36004, 37112, 0, 0, 0, +0, 0, 0, 0, 21766, 21298, 25755, 0, 0, 0, +17924, 0, 0, 21660, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 24075, 35006, 8270, 27483, 16031, 24841, 6181, 27333, 0, +0, 0, 0, 0, 16992, 14537, 25694, 0, 0, 0, +38454, 0, 0, 0, 32682, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 19825, 26956, 5758, 17351, 5506, 38114, +0, 19138, 2275, 0, 0, 286, 0, 0, 13083, 0, +5928, 0, 0, 36460, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 36025, 5283, 21769, 0, 37779, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 17067, 17009, +11131, 0, 36914, 0, 0, 0, 0, 0, 0, 0, +21058, 0, 0, 0, 0, 0, 0, 0, 3237, 0, +0, 0, 0, 0, 0, 7753, 1641, 0, 0, 0, +0, 19436, 8485, 12080, 0, 4622, 0, 36864, 0, 0, +36915, 0, 0, 0, 33470, 0, 0, 0, 0, 33624, +11020, 18600, 0, 31964, 35770, 0, 0, 0, 0, 0, +0, 0, 11023, 11080, 40837, 0, 0, 0, 0, 0, +0, 8902, 29897, 31157, 18064, 9104, 39903, 0, 0, 0, +0, 0, 0, 0, 18604, 0, 0, 0, 41111, 0, +0, 0, 29621, 31928, 10414, 0, 0, 0, 0, 37745, +0, 0, 0, 0, 0, 20998, 1956, 10877, 23537, 27293, +23918, 40023, 35091, 9114, 0, 0, 0, 591, 15222, 0, +0, 0, 0, 0, 0, 0, 10427, 12610, 10975, 34415, +0, 0, 0, 0, 4240, 6083, 24551, 10779, 0, 0, +10298, 0, 0, 41113, 0, 32220, 0, 0, 32041, 31884, +0, 0, 26050, 0, 0, 0, 8749, 31889, 0, 0, +0, 8751, 0, 0, 18915, 0, 8752, 15477, 0, 27205, +40360, 0, 29039, 34236, 21310, 0, 0, 0, 0, 0, +0, 0, 19185, 28119, 0, 0, 2767, 0, 0, 31334, +0, 36929, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38178, 0, 35746, 31465, 10651, 24935, 30470, 3532, 31802, +29296, 37874, 0, 35313, 12291, 11605, 7819, 0, 8106, 0, +0, 12292, 33797, 0, 0, 28598, 0, 6439, 0, 0, +0, 37547, 0, 0, 0, 5657, 0, 0, 40243, 28547, +0, 25478, 33925, 37264, 7335, 869, 0, 24866, 0, 2123, +12714, 38422, 0, 21805, 26506, 0, 0, 0, 17153, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 9595, 9327, 0, 5042, +0, 0, 0, 0, 0, 0, 0, 8317, 0, 0, +4454, 0, 34505, 27793, 27076, 0, 15694, 39575, 29608, 24779, +6945, 0, 33269, 25560, 37020, 0, 0, 35808, 35809, 33650, +7830, 8700, 0, 0, 0, 0, 10389, 36084, 0, 10719, +0, 6732, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 33270, 7249, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 23168, 26113, 0, 6453, 5689, +16893, 35843, 31686, 8842, 29612, 15328, 10722, 16092, 21542, 3486, +29095, 0, 29613, 0, 0, 0, 0, 0, 16894, 20910, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 38593, 870, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 29385, 0, 37962, 6970, 27195, 15556, 22364, 8208, 18764, +33012, 33013, 33396, 18765, 29317, 28484, 4461, 24725, 0, 8209, +39427, 0, 33014, 41025, 7519, 20410, 33222, 0, 0, 29622, +23297, 0, 22702, 0, 28203, 7120, 0, 0, 0, 11030, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 27799, +0, 1624, 6067, 617, 26865, 33015, 32714, 7475, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 4115, 27448, 34905, 14929, 26788, 0, 36697, 7350, +0, 0, 15949, 5708, 0, 19585, 13714, 0, 34404, 0, +0, 30554, 0, 0, 25913, 13715, 37065, 30820, 6985, 24969, +14231, 7773, 18387, 6001, 22674, 0, 17546, 10956, 18941, 0, +0, 0, 0, 0, 0, 0, 0, 5821, 0, 0, +0, 4783, 20722, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 30453, +14719, 15383, 34405, 13466, 0, 0, 0, 0, 0, 0, +0, 8920, 0, 25435, 28273, 26331, 0, 0, 3498, 0, +23337, 28364, 0, 35234, 38186, 25035, 38668, 429, 41067, 28365, +38985, 31860, 0, 3958, 13476, 41193, 8661, 31378, 0, 0, +19040, 12378, 0, 0, 32886, 32887, 0, 0, 6267, 0, +0, 0, 0, 24547, 0, 0, 0, 0, 0, 22888, +0, 18258, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 13724, +0, 11808, 0, 0, 0, 26173, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 39507, 115, +33701, 1340, 0, 35124, 21356, 40215, 0, 28065, 0, 32897, +37388, 24740, 0, 0, 41072, 39436, 38770, 19042, 30744, 3700, +20171, 0, 12207, 0, 28066, 35163, 31702, 29874, 17462, 33815, +0, 31382, 0, 0, 0, 0, 0, 19590, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +10695, 0, 0, 19043, 6375, 4573, 2711, 18814, 28067, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +19044, 0, 0, 0, 0, 0, 39913, 16954, 7537, 0, +14108, 16022, 35962, 11187, 4800, 0, 37406, 1051, 29976, 27328, +5073, 31173, 4469, 21679, 5328, 41079, 10017, 0, 22551, 4131, +0, 0, 6467, 22000, 0, 0, 40171, 0, 32907, 38998, +24186, 33774, 0, 25988, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 1355, 0, 8254, 0, 0, 0, +0, 0, 17260, 0, 0, 0, 0, 0, 6859, 0, +35127, 27330, 0, 26051, 0, 23205, 9849, 26052, 0, 8259, +19591, 0, 16699, 38618, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 2643, 0, 0, 0, 0, 30846, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 16700, 0, 38326, 36359, 129, +32814, 0, 1365, 0, 0, 0, 0, 0, 0, 2733, +0, 0, 22555, 4577, 17843, 23374, 0, 12650, 14073, 6164, +7459, 35529, 29881, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 19963, 2271, +34206, 0, 0, 0, 0, 0, 0, 0, 34846, 0, +29521, 0, 0, 0, 39519, 0, 33086, 18961, 0, 17322, +0, 19595, 0, 0, 32012, 0, 0, 27938, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 27958, 33983, 0, 0, 0, 0, +0, 17341, 37612, 0, 0, 38688, 0, 28537, 33821, 30864, +35275, 22157, 19596, 29147, 22805, 0, 6471, 24660, 35606, 0, +0, 0, 0, 30128, 2645, 0, 0, 14011, 0, 0, +0, 0, 6869, 0, 0, 0, 0, 0, 0, 2746, +36386, 18135, 0, 32303, 0, 23213, 0, 37777, 19047, 36461, +24845, 0, 0, 0, 7484, 40805, 0, 0, 0, 0, +0, 24369, 0, 0, 0, 21664, 30873, 27489, 0, 8274, +0, 0, 20693, 20694, 30132, 2647, 38153, 0, 0, 0, +0, 0, 17005, 17010, 0, 32016, 14746, 0, 21005, 20186, +0, 0, 11551, 0, 27515, 0, 33586, 0, 0, 7485, +0, 33098, 0, 0, 0, 0, 28541, 36661, 0, 38690, +0, 0, 0, 0, 0, 0, 0, 23962, 21045, 0, +17994, 0, 0, 0, 19009, 32311, 8086, 0, 18172, 0, +0, 0, 25966, 0, 11859, 0, 0, 0, 0, 0, +29488, 0, 24376, 0, 11461, 0, 217, 0, 0, 0, +0, 0, 0, 19425, 0, 21337, 0, 0, 0, 9792, +21956, 0, 0, 32547, 0, 13867, 0, 0, 0, 0, +39291, 0, 20838, 0, 0, 25903, 11112, 0, 41080, 11707, +0, 0, 12218, 0, 0, 0, 35269, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 33263, 0, 0, 16182, 37265, 14892, 0, 0, +0, 0, 0, 27373, 39275, 0, 36647, 0, 8654, 0, +13143, 33188, 0, 0, 11638, 0, 0, 27452, 0, 0, +3704, 10181, 0, 0, 0, 0, 17714, 0, 0, 0, +0, 13221, 0, 8886, 0, 40600, 0, 0, 0, 0, +0, 23407, 0, 0, 0, 0, 23644, 0, 6257, 22913, +0, 0, 11069, 0, 0, 21702, 0, 23474, 5850, 5851, +0, 17113, 0, 0, 33329, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 20845, +0, 39251, 16183, 39654, 0, 6873, 1843, 22915, 33474, 36669, +4382, 17137, 0, 0, 22188, 0, 0, 33437, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 23124, +0, 3058, 23490, 0, 0, 35771, 0, 29070, 6724, 18376, +0, 13120, 0, 0, 0, 0, 0, 38704, 37641, 0, +0, 0, 0, 0, 0, 0, 36996, 0, 8805, 0, +10806, 0, 0, 0, 23420, 0, 20806, 11413, 18485, 31818, +6838, 16511, 7511, 30356, 0, 4811, 0, 22354, 0, 0, +0, 4886, 30994, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 8579, +0, 0, 0, 4772, 0, 0, 23507, 16895, 24164, 23856, +15553, 1041, 0, 27190, 0, 0, 0, 0, 0, 0, +0, 30545, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 26233, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 40759, 0, 0, 29190, 23687, +6358, 0, 0, 29806, 0, 0, 30549, 0, 0, 0, +10946, 33223, 0, 26241, 39589, 0, 0, 0, 0, 3548, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 40101, 31003, 3494, 28362, +33025, 0, 15465, 0, 0, 26193, 26873, 27196, 0, 13822, +0, 0, 0, 8590, 18905, 0, 0, 0, 0, 0, +0, 0, 0, 0, 33026, 0, 0, 0, 0, 0, +39590, 0, 0, 0, 19393, 0, 27450, 15469, 0, 5887, +35341, 0, 28050, 4146, 0, 0, 0, 0, 0, 0, +0, 0, 0, 4788, 30169, 0, 0, 33040, 0, 0, +0, 0, 0, 0, 0, 33811, 0, 0, 0, 0, +10490, 14951, 0, 0, 29208, 7533, 0, 39595, 27124, 29923, +0, 0, 3701, 0, 29209, 38724, 10556, 0, 24815, 30625, +0, 6621, 825, 0, 0, 0, 17686, 0, 0, 0, +0, 0, 0, 0, 27675, 0, 0, 0, 0, 0, +1602, 33050, 1662, 0, 4588, 0, 0, 0, 14678, 10436, +0, 0, 0, 16024, 36580, 0, 0, 0, 0, 0, +0, 0, 27409, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 21581, 0, 37101, 40677, 19910, +11001, 0, 0, 17841, 0, 0, 0, 0, 0, 0, +0, 13600, 33345, 0, 0, 0, 0, 34560, 0, 0, +0, 0, 0, 13757, 16220, 27415, 13758, 16705, 0, 0, +41086, 0, 27138, 0, 0, 0, 0, 0, 30646, 6339, +28082, 0, 0, 0, 0, 0, 0, 0, 0, 32919, +25211, 0, 0, 0, 0, 0, 0, 0, 19239, 0, +0, 0, 0, 23730, 0, 0, 0, 0, 0, 0, +21059, 18166, 0, 0, 12675, 0, 0, 0, 20511, 0, +0, 9137, 0, 0, 0, 0, 33798, 0, 0, 0, +33479, 0, 0, 0, 0, 1947, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 30558, 0, 0, 0, +0, 0, 15671, 0, 0, 0, 30328, 0, 2590, 0, +19636, 15437, 0, 0, 4450, 0, 0, 0, 32350, 20619, +0, 0, 0, 0, 0, 0, 11874, 2838, 26851, 39150, +6946, 20013, 0, 26852, 24714, 27250, 0, 4354, 34506, 0, +0, 10862, 23169, 39734, 11470, 0, 0, 0, 0, 0, +0, 0, 39580, 0, 36845, 0, 0, 0, 0, 0, +8618, 35042, 23014, 0, 0, 0, 0, 0, 0, 0, +0, 35483, 3394, 12584, 0, 58, 0, 6211, 0, 28209, +0, 14350, 0, 0, 0, 0, 0, 0, 23524, 17442, +33835, 0, 17723, 0, 0, 0, 0, 37932, 33837, 4595, +22656, 0, 15950, 0, 29117, 11376, 5120, 9660, 3141, 0, +26398, 12611, 0, 0, 0, 0, 17550, 15195, 26812, 0, +6246, 36800, 23345, 0, 32739, 0, 0, 0, 0, 0, +35963, 18530, 0, 0, 4149, 0, 0, 0, 0, 16627, +8566, 0, 0, 0, 38353, 0, 30642, 0, 0, 0, +12955, 0, 0, 0, 0, 36377, 7290, 17342, 23719, 0, +0, 0, 35114, 0, 0, 0, 15917, 30653, 0, 25107, +0, 0, 32741, 25108, 0, 0, 10892, 0, 0, 0, +0, 6672, 3983, 0, 0, 26603, 0, 0, 40619, 6831, +12540, 0, 0, 28655, 0, 21986, 0, 0, 0, 0, +0, 0, 0, 13809, 24097, 0, 0, 0, 0, 23755, +14630, 0, 0, 24631, 30097, 0, 0, 0, 21885, 27747, +0, 0, 0, 35455, 0, 9169, 11929, 21997, 40749, 0, +13353, 0, 0, 31746, 26460, 0, 35484, 39759, 0, 0, +0, 0, 0, 0, 0, 19090, 0, 40016, 14930, 28675, +21894, 14656, 10958, 0, 39777, 0, 0, 0, 0, 1092, +0, 0, 0, 0, 0, 0, 0, 0, 0, 3641, +33768, 12379, 9296, 14511, 31115, 30117, 0, 24652, 30559, 6481, +0, 27198, 0, 39167, 21162, 0, 0, 31867, 38994, 39819, +0, 20853, 0, 0, 0, 0, 12931, 0, 0, 0, +0, 0, 34983, 9804, 0, 0, 5636, 0, 12046, 14065, +0, 0, 0, 0, 0, 0, 14966, 37764, 0, 0, +0, 0, 0, 0, 12407, 0, 28078, 0, 12960, 0, +16076, 31129, 15887, 1584, 14985, 0, 0, 1387, 0, 2749, +0, 40806, 17377, 0, 0, 0, 7815, 23800, 34464, 0, +28742, 20588, 0, 0, 0, 15602, 31466, 0, 0, 0, +0, 0, 0, 0, 0, 0, 11081, 11082, 0, 7992, +0, 0, 34854, 9845, 0, 25272, 36262, 7714, 15067, 0, +37843, 0, 0, 34116, 0, 31806, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 31921, 0, +0, 10171, 0, 0, 0, 0, 0, 0, 0, 0, +11083, 0, 0, 10856, 23125, 7208, 0, 0, 0, 0, +12722, 0, 0, 35458, 0, 0, 0, 0, 0, 30052, +20849, 0, 0, 0, 0, 0, 0, 0, 0, 0, +36149, 36269, 0, 0, 0, 0, 0, 0, 0, 0, +0, 12565, 30507, 27090, 6534, 6782, 0, 30104, 30195, 17183, +0, 0, 0, 25257, 0, 0, 4456, 33665, 40008, 40877, +0, 0, 0, 0, 0, 0, 30485, 34220, 0, 12566, +3023, 0, 0, 0, 0, 0, 0, 0, 0, 12336, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 26282, 29807, 0, 1659, 31839, 22463, 38506, 0, 0, +11779, 0, 28312, 0, 10477, 0, 37673, 0, 31166, 0, +18080, 0, 38507, 11173, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 2697, 0, 0, 0, 0, +0, 0, 0, 6971, 0, 3184, 0, 0, 0, 0, +0, 28211, 0, 29322, 0, 0, 0, 0, 0, 0, +39778, 29195, 279, 40648, 40880, 15384, 0, 26023, 29281, 18779, +0, 0, 0, 0, 26259, 38472, 0, 0, 0, 3695, +0, 34643, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 20778, 10878, 0, 0, 0, 0, +0, 0, 3434, 0, 0, 28037, 0, 0, 0, 0, +0, 21130, 0, 0, 12380, 6704, 10815, 0, 4591, 38401, +36174, 0, 32735, 0, 1502, 1065, 16205, 0, 3436, 0, +23612, 0, 169, 26879, 0, 0, 3642, 0, 0, 0, +0, 0, 0, 0, 0, 21813, 0, 12612, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 21961, +0, 31933, 0, 0, 2640, 0, 43, 0, 0, 26814, +10433, 0, 12389, 3439, 31869, 39295, 0, 0, 28416, 0, +19313, 0, 0, 22477, 0, 0, 33529, 23829, 0, 0, +0, 0, 0, 0, 0, 0, 0, 32039, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 37389, 0, 0, 0, 0, 0, +0, 13731, 32042, 18679, 0, 24187, 0, 2601, 0, 0, +0, 34872, 12632, 26139, 18576, 0, 12219, 39832, 30510, 0, +1356, 172, 35349, 173, 0, 0, 0, 0, 16955, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 32118, 0, 0, 0, 0, 14363, 28738, 0, 10301, +10499, 0, 0, 38403, 38679, 35981, 31885, 0, 31886, 7202, +34427, 0, 0, 20779, 0, 0, 0, 0, 0, 9120, +0, 0, 0, 0, 0, 0, 0, 0, 37864, 0, +0, 0, 0, 0, 39972, 0, 2817, 4163, 11845, 37995, +9732, 13070, 34207, 0, 0, 0, 32564, 10500, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 5236, 0, 0, 0, 20216, +21661, 0, 19923, 0, 17847, 40117, 23057, 28549, 0, 0, +0, 36456, 29030, 9809, 0, 0, 0, 0, 23960, 0, +18962, 25820, 17848, 3510, 32936, 0, 0, 9812, 831, 19233, +14802, 0, 0, 0, 7028, 0, 0, 0, 0, 0, +0, 0, 0, 10452, 0, 19805, 0, 0, 33092, 22806, +0, 9954, 3234, 26358, 11856, 0, 0, 0, 0, 0, +0, 0, 36388, 0, 13087, 0, 0, 0, 0, 179, +0, 0, 0, 28538, 35361, 29934, 0, 0, 0, 18297, +0, 41261, 0, 17014, 0, 22810, 33986, 0, 21201, 6316, +0, 0, 16438, 0, 0, 0, 0, 0, 38575, 14835, +39075, 12294, 23655, 0, 9937, 7609, 0, 9938, 10667, 10403, +10765, 0, 0, 0, 38716, 3818, 28607, 23868, 0, 26554, +36343, 0, 0, 24224, 0, 0, 12039, 0, 31870, 10492, +31876, 31935, 10203, 16628, 0, 17286, 0, 0, 3281, 0, +0, 0, 15107, 31664, 10043, 0, 0, 0, 0, 0, +6283, 0, 6231, 30281, 0, 0, 6232, 38044, 14781, 0, +18547, 4017, 0, 39285, 0, 0, 0, 23330, 15239, 12026, +16274, 0, 0, 0, 0, 0, 0, 0, 8323, 0, +27201, 0, 6157, 0, 0, 0, 0, 18532, 29855, 0, +0, 37093, 31383, 0, 29287, 0, 0, 0, 0, 0, +0, 0, 9807, 0, 0, 0, 0, 0, 28706, 23383, +0, 0, 0, 0, 0, 0, 17856, 17370, 0, 34024, +0, 0, 0, 0, 8852, 29468, 10065, 3989, 0, 29990, +0, 33341, 36760, 20620, 3538, 0, 11024, 6328, 0, 20770, +0, 20898, 0, 18054, 0, 0, 0, 87, 32088, 0, +0, 0, 15216, 27750, 25858, 0, 0, 0, 35847, 0, +0, 0, 0, 35870, 32768, 0, 39428, 6296, 0, 0, +0, 0, 19359, 0, 0, 0, 19077, 14932, 0, 0, +0, 23915, 18085, 0, 0, 0, 0, 0, 0, 22678, +4606, 6796, 37194, 0, 0, 0, 40581, 0, 31871, 11275, +20496, 28834, 0, 0, 0, 23052, 0, 20178, 19400, 0, +9322, 0, 23707, 0, 17917, 20459, 30759, 2484, 0, 11121, +28162, 0, 0, 14686, 26178, 19924, 0, 0, 0, 0, +0, 0, 0, 0, 0, 30651, 31661, 18197, 0, 0, +1388, 30876, 0, 0, 0, 17114, 38946, 0, 36601, 10919, +30317, 422, 12873, 0, 0, 0, 0, 41269, 38649, 1853, +24537, 34733, 0, 0, 6147, 24780, 0, 0, 0, 0, +22524, 38550, 0, 0, 26234, 9054, 1608, 35473, 8021, 0, +33184, 27091, 29566, 0, 0, 6065, 0, 0, 29751, 32635, +31216, 22258, 11631, 0, 0, 0, 0, 16273, 0, 0, +0, 27761, 4737, 26169, 40056, 38892, 30617, 16275, 1309, 0, +0, 6175, 0, 0, 21131, 32810, 25248, 29895, 30828, 36792, +19732, 37593, 39969, 0, 0, 0, 0, 0, 0, 0, +27893, 0, 9124, 26483, 0, 38857, 22548, 0, 0, 29572, +0, 3441, 22382, 2718, 36581, 27509, 0, 31298, 0, 22552, +11440, 0, 8079, 0, 1611, 0, 0, 0, 0, 21096, +0, 1612, 30858, 36587, 0, 21139, 9343, 0, 0, 0, +0, 0, 17353, 0, 33199, 34449, 22970, 22245, 0, 0, +0, 0, 28334, 0, 25329, 26269, 0, 0, 0, 0, +28335, 0, 0, 0, 0, 0, 5099, 0, 19832, 0, +0, 0, 0, 0, 0, 0, 0, 27172, 0, 0, +0, 0, 9043, 0, 9939, 27080, 34832, 0, 9163, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 15359, 0, 0, 14414, 0, 22039, 2428, 729, 33336, +2186, 0, 0, 17938, 88, 0, 0, 0, 20145, 16287, +0, 0, 0, 32624, 0, 26511, 0, 0, 0, 0, +0, 0, 0, 11966, 21338, 0, 0, 0, 0, 0, +0, 0, 39339, 0, 17966, 38434, 0, 0, 37855, 0, +0, 33678, 0, 0, 0, 0, 0, 0, 3349, 31072, +31555, 0, 0, 932, 0, 0, 26382, 0, 0, 0, +37352, 20160, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 6488, 0, +0, 2597, 0, 38276, 3396, 0, 29513, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 35512, 0, 0, +0, 0, 0, 34909, 0, 0, 15667, 0, 7630, 32898, +3397, 0, 0, 0, 0, 0, 0, 0, 0, 16018, +0, 0, 0, 1713, 0, 18534, 0, 0, 0, 35965, +20179, 33059, 0, 0, 0, 0, 0, 0, 0, 0, +0, 9550, 0, 19119, 0, 0, 26343, 0, 0, 0, +0, 0, 0, 0, 14525, 6338, 0, 0, 32121, 0, +0, 39600, 0, 0, 1736, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 39601, 40445, 33941, +17560, 28249, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 16454, 14694, 20217, 34138, 38736, 9734, +0, 0, 0, 0, 0, 0, 39860, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 30870, 25013, 2646, +0, 0, 0, 0, 0, 0, 0, 0, 25368, 0, +37780, 0, 40807, 0, 0, 0, 19242, 9627, 0, 3322, +0, 14415, 29311, 30412, 0, 0, 0, 39404, 0, 0, +21014, 0, 0, 0, 0, 9946, 0, 0, 0, 0, +31576, 17898, 0, 0, 34327, 33697, 0, 0, 0, 0, +11113, 8475, 33702, 0, 31877, 0, 0, 0, 4802, 0, +0, 31893, 11009, 0, 0, 0, 0, 0, 0, 34342, +0, 0, 0, 0, 0, 0, 0, 0, 35719, 3469, +14862, 0, 41049, 0, 0, 0, 0, 0, 0, 0, +0, 0, 13514, 35777, 0, 28719, 3594, 445, 29716, 40893, +24618, 0, 0, 3595, 31728, 0, 0, 0, 0, 0, +0, 0, 21326, 0, 4618, 0, 31268, 0, 4004, 27943, +36604, 14558, 447, 0, 4430, 5682, 22092, 3603, 0, 24662, +0, 34386, 0, 0, 0, 0, 0, 0, 0, 0, +0, 38551, 0, 0, 0, 0, 32369, 1059, 15827, 23508, +40009, 14492, 24165, 20634, 37574, 0, 9644, 41145, 0, 0, +0, 0, 0, 0, 0, 0, 0, 24166, 0, 0, +0, 0, 0, 0, 0, 0, 10949, 24644, 9873, 8214, +16533, 26166, 31556, 2062, 27101, 36649, 9464, 0, 21546, 0, +0, 10796, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 20153, 0, 0, 0, 6986, 32197, 37888, 33689, +24306, 6153, 16833, 23525, 16344, 8050, 23434, 3743, 0, 0, +4654, 0, 0, 20659, 860, 0, 0, 0, 5399, 0, +0, 0, 13725, 3758, 3643, 37372, 4727, 28051, 29202, 27400, +38438, 8060, 0, 3107, 7814, 10777, 38439, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +13726, 38440, 38606, 0, 0, 34543, 9880, 31297, 11185, 5743, +34986, 27894, 23702, 12390, 33365, 23544, 15042, 0, 9881, 0, +0, 0, 0, 0, 0, 0, 34551, 13748, 4730, 0, +29877, 38771, 22710, 18823, 39440, 4036, 20180, 23926, 0, 17554, +0, 0, 0, 0, 0, 0, 17262, 0, 0, 0, +6861, 28076, 14968, 0, 0, 14526, 28701, 17700, 25861, 6217, +0, 37994, 39513, 0, 0, 0, 33893, 18115, 0, 0, +5471, 0, 0, 38623, 33784, 24313, 13549, 22637, 0, 0, +10039, 0, 0, 0, 0, 0, 37113, 9810, 0, 34090, +0, 0, 34091, 2742, 13760, 14538, 34572, 6395, 0, 10736, +32421, 34092, 0, 0, 0, 0, 18136, 13763, 36031, 24853, +8416, 7750, 0, 15004, 24759, 0, 0, 0, 0, 14320, +0, 12509, 12438, 0, 0, 0, 0, 0, 0, 31674, +22121, 0, 15864, 15687, 0, 15688, 38495, 0, 0, 473, +0, 0, 3201, 11084, 21809, 6833, 33333, 6631, 26752, 30318, +7575, 0, 0, 31490, 40727, 0, 11085, 0, 0, 0, +0, 1653, 0, 30163, 614, 8690, 0, 15355, 0, 0, +0, 0, 0, 0, 40518, 8009, 20624, 12771, 30099, 37293, +0, 20771, 14895, 14484, 9265, 22957, 0, 0, 21278, 0, +0, 0, 30223, 34507, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 3862, 15828, +9912, 0, 32488, 31534, 0, 4820, 29567, 25746, 0, 6700, +3093, 0, 0, 0, 16796, 40754, 0, 39314, 41270, 0, +0, 15256, 38045, 0, 37504, 24483, 0, 0, 0, 7180, +34065, 0, 12567, 0, 2515, 0, 0, 0, 0, 0, +0, 0, 27263, 33876, 32873, 29052, 10105, 32096, 26242, 30022, +10178, 16094, 2459, 6238, 21859, 34637, 3350, 23045, 23517, 37738, +7878, 0, 0, 0, 0, 29550, 0, 0, 0, 0, +0, 0, 0, 31073, 26761, 30150, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 28725, 0, 34224, 39781, 18783, 34536, +14433, 0, 0, 5440, 0, 4024, 41107, 6987, 39499, 22368, +0, 1631, 0, 5633, 0, 0, 0, 0, 0, 0, +0, 0, 16276, 0, 35224, 0, 0, 0, 0, 0, +0, 0, 0, 0, 10227, 22074, 28759, 15269, 33525, 41031, +12614, 31379, 0, 0, 4128, 0, 0, 22994, 34539, 30170, +0, 6364, 0, 22680, 3644, 11938, 22836, 0, 4526, 38475, +0, 0, 0, 0, 30287, 0, 0, 0, 0, 30259, +0, 0, 0, 6999, 30829, 514, 0, 13248, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 2565, +0, 4033, 15737, 29022, 41013, 17238, 28505, 25810, 0, 0, +22077, 22078, 0, 0, 0, 25984, 24029, 0, 0, 0, +0, 0, 0, 0, 0, 41073, 0, 39820, 34544, 0, +13732, 21205, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 18978, 24745, +0, 5497, 17595, 2809, 24188, 18577, 6015, 4731, 0, 0, +12462, 0, 0, 3010, 27469, 41081, 0, 15277, 0, 0, +23928, 16956, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +27439, 37407, 38772, 16761, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 22943, 0, 0, 0, 0, 39003, 32783, +0, 28739, 4803, 16366, 0, 33537, 27412, 38478, 2269, 0, +0, 1151, 22414, 0, 0, 0, 0, 3371, 0, 0, +0, 0, 0, 24070, 12227, 0, 0, 0, 0, 0, +38530, 0, 16367, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 29332, 25816, 13879, 40352, 6801, 0, 2603, +14800, 28849, 1074, 0, 7284, 17844, 38327, 28250, 0, 0, +0, 0, 0, 0, 0, 0, 0, 26054, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 39854, 29930, 0, 24367, 0, 4339, 0, 0, 0, +28531, 1822, 30971, 0, 0, 22961, 0, 0, 0, 0, +0, 0, 0, 20557, 2162, 0, 0, 15888, 0, 4865, +25250, 832, 16320, 0, 0, 0, 0, 0, 0, 21417, +16993, 0, 0, 0, 0, 0, 0, 13497, 18639, 17355, +18436, 9685, 0, 0, 0, 2830, 0, 0, 0, 0, +0, 0, 32140, 0, 2859, 0, 33096, 38740, 0, 0, +0, 0, 0, 27491, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 20105, 19002, 19243, 0, 0, +5761, 0, 0, 0, 0, 0, 0, 0, 6036, 0, +30297, 37795, 19011, 0, 19013, 0, 0, 0, 0, 16825, +0, 30256, 6047, 21195, 26457, 32975, 22516, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 19566, 0, 36207, +0, 1925, 0, 40321, 0, 0, 3684, 0, 0, 0, +0, 0, 0, 0, 20772, 30100, 0, 29663, 35140, 0, +0, 0, 0, 0, 0, 11577, 0, 25344, 0, 35203, +0, 0, 0, 0, 0, 30109, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 41117, 37353, 0, 0, +6, 0, 40018, 30286, 0, 0, 0, 6743, 39970, 9854, +11522, 20273, 0, 0, 0, 4237, 24178, 8921, 29514, 19733, +0, 0, 0, 28882, 0, 0, 25442, 0, 0, 25443, +23346, 9805, 0, 0, 0, 32561, 29285, 0, 0, 0, +0, 0, 0, 32672, 0, 0, 38619, 4804, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 16382, 0, +0, 0, 26647, 0, 16775, 17356, 0, 2675, 21608, 19003, +0, 29469, 11731, 0, 0, 0, 0, 8896, 0, 0, +0, 0, 0, 0, 0, 0, 23481, 36989, 0, 33129, +0, 0, 0, 0, 37719, 423, 5045, 12125, 33865, 0, +0, 14878, 21706, 0, 0, 0, 0, 0, 0, 0, +6441, 12307, 0, 0, 0, 0, 0, 0, 21988, 8952, +989, 0, 15521, 34856, 18308, 21239, 38501, 36270, 21396, 22216, +0, 8903, 2127, 10391, 25481, 9640, 0, 0, 0, 1243, +31512, 14485, 11898, 1266, 0, 29362, 39316, 0, 0, 35848, +4457, 0, 1811, 0, 0, 0, 0, 8910, 0, 0, +7181, 0, 0, 34791, 33572, 0, 0, 10587, 0, 0, +38149, 2626, 10683, 0, 29276, 0, 0, 0, 39429, 33225, +33553, 0, 0, 39212, 0, 0, 30368, 0, 0, 0, +15086, 0, 0, 0, 0, 31110, 0, 0, 18785, 0, +39289, 25485, 3358, 8051, 0, 6988, 28915, 28823, 0, 14720, +3040, 28491, 5634, 0, 40928, 0, 0, 15526, 29900, 0, +15527, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 25486, 37810, 10429, 40964, 4527, +24550, 0, 0, 0, 20826, 6706, 33581, 15531, 32393, 0, +0, 0, 0, 0, 0, 0, 0, 6365, 15223, 0, +36344, 0, 0, 0, 40779, 0, 0, 0, 0, 11523, +0, 22376, 0, 17239, 0, 1985, 8738, 14515, 15386, 0, +10983, 34988, 28836, 0, 24504, 25492, 18319, 11823, 12209, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 39821, 0, 28841, 39598, 15279, 0, 0, +0, 0, 0, 0, 34873, 0, 28866, 10604, 0, 0, +0, 17596, 0, 2384, 0, 0, 0, 20949, 40967, 0, +5498, 0, 13393, 22390, 0, 9469, 7098, 13187, 13545, 21861, +38193, 0, 0, 0, 0, 22395, 5264, 0, 24827, 17483, +20831, 16425, 0, 0, 0, 0, 7637, 0, 0, 0, +11911, 0, 0, 0, 15834, 0, 36245, 27470, 13199, 0, +0, 0, 0, 0, 0, 0, 19234, 0, 18846, 0, +0, 0, 0, 0, 8757, 25225, 0, 0, 22807, 0, +18437, 0, 0, 0, 39174, 32422, 0, 0, 17991, 17493, +26258, 2026, 17364, 0, 0, 0, 0, 0, 0, 32925, +8759, 20464, 17495, 0, 0, 15006, 40036, 0, 0, 0, +0, 15396, 0, 6037, 0, 39015, 0, 27222, 12104, 18366, +9461, 38187, 32418, 23639, 0, 26604, 0, 0, 36208, 13810, +0, 0, 26623, 26624, 25769, 0, 0, 0, 0, 31840, +0, 0, 0, 0, 0, 15702, 0, 24803, 0, 8735, +644, 0, 1342, 23703, 0, 0, 0, 0, 0, 0, +1714, 645, 0, 41303, 22632, 0, 12059, 0, 0, 0, +0, 0, 0, 0, 648, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 21740, 0, 3198, 0, +22311, 0, 0, 8087, 29761, 0, 0, 0, 0, 0, +0, 0, 0, 0, 22567, 22962, 0, 0, 3514, 0, +0, 33951, 23456, 31321, 0, 0, 39615, 5646, 4479, 36730, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 4480, 0, 0, 5647, 40595, 0, 41024, +4550, 0, 0, 22100, 34470, 23463, 25469, 12754, 0, 39625, +24583, 37701, 0, 27026, 0, 0, 0, 10208, 0, 0, +0, 0, 0, 0, 0, 30041, 0, 0, 1647, 0, +15232, 0, 0, 0, 4309, 0, 4424, 0, 36200, 27046, +20956, 25644, 0, 34767, 3404, 0, 4348, 0, 0, 8891, +20001, 0, 12439, 0, 0, 0, 0, 0, 0, 0, +8793, 38198, 0, 0, 0, 1034, 0, 0, 0, 0, +0, 33158, 16120, 0, 5959, 0, 0, 29493, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +27534, 0, 0, 0, 5035, 0, 0, 0, 0, 0, +0, 0, 17032, 0, 36628, 13345, 0, 0, 28418, 24867, +36144, 37492, 13662, 0, 23661, 34896, 34259, 0, 0, 24357, +0, 0, 0, 0, 0, 0, 0, 22250, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 12716, 0, 29718, 0, 29046, 0, 0, 0, 0, +0, 6651, 2781, 12724, 3604, 12885, 27376, 0, 0, 0, +0, 0, 0, 0, 0, 28461, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 39413, 0, 37559, 0, 0, 10858, 0, +17801, 0, 0, 0, 38250, 0, 4015, 0, 0, 0, +24669, 1021, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 11331, +15717, 26758, 0, 13695, 0, 30486, 0, 0, 0, 10863, +0, 0, 0, 0, 0, 0, 38259, 38072, 34866, 0, +3549, 14345, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 17663, 36939, 0, 0, 0, 0, 1445, 0, +15844, 0, 0, 0, 0, 0, 0, 0, 0, 0, +3877, 34203, 40643, 0, 24173, 32376, 0, 37507, 31287, 13467, +32552, 26170, 0, 39782, 0, 0, 3757, 0, 1411, 30556, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 5401, +0, 0, 0, 0, 0, 0, 0, 0, 0, 37356, +29916, 0, 0, 3041, 0, 0, 0, 11810, 23827, 0, +30733, 0, 0, 0, 0, 0, 0, 0, 36794, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +5712, 0, 4987, 0, 0, 36795, 14355, 29918, 38075, 0, +0, 11824, 0, 26177, 0, 0, 12040, 0, 0, 0, +0, 0, 0, 0, 34989, 0, 0, 0, 0, 32399, +0, 0, 0, 0, 32400, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 5717, 0, +14361, 0, 0, 0, 11834, 0, 15334, 36802, 0, 0, +17287, 0, 0, 0, 4106, 0, 3508, 0, 12060, 0, +36808, 0, 37767, 0, 0, 0, 0, 0, 0, 0, +0, 0, 28524, 38106, 0, 0, 0, 21590, 40357, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 32305, 0, 0, 0, 0, 0, 0, 0, 26901, +0, 15589, 23395, 29834, 7231, 4807, 0, 0, 29980, 2490, +2176, 32522, 22270, 14081, 23221, 26455, 21690, 20866, 0, 24232, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, +0, 1170, 721, 1467, 40705, 20869, 30776, 10207, 0, 0, +0, 0, 0, 0, 0, 13889, 0, 39326, 0, 0, +0, 24129, 0, 0, 0, 0, 0, 0, 10251, 29583, +38176, 26794, 4818, 11455, 25543, 38039, 21372, 0, 0, 0, +0, 0, 0, 0, 32067, 0, 0, 0, 0, 0, +0, 0, 0, 0, 24926, 12493, 36123, 17027, 19491, 26469, +10055, 4871, 15054, 12510, 2108, 18474, 7825, 36743, 15758, 0, +0, 0, 0, 0, 32529, 0, 0, 0, 0, 37834, +0, 24239, 11670, 23063, 0, 0, 0, 0, 0, 16857, +22246, 27235, 14395, 35440, 39252, 3719, 0, 31675, 0, 11021, +25506, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 11398, 24094, 39400, 36406, 31729, 23995, 12541, 39262, +11482, 0, 36997, 41005, 19706, 0, 0, 0, 26777, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 24947, 0, 0, 0, 0, 0, 0, 13232, 10384, +0, 29609, 10392, 30889, 35814, 22143, 0, 0, 30995, 23756, +17168, 35461, 4182, 33652, 30696, 0, 0, 0, 0, 0, +8650, 0, 37169, 0, 0, 38562, 8401, 23675, 15257, 16897, +26625, 9417, 0, 22718, 0, 0, 16898, 0, 11027, 0, +0, 29799, 27563, 0, 11093, 16899, 0, 0, 18565, 0, +0, 0, 5304, 0, 41298, 26235, 0, 26551, 0, 7771, +14647, 29623, 13453, 24051, 8554, 40760, 11507, 26243, 0, 0, +28667, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +30053, 0, 18193, 0, 3351, 31032, 41256, 37357, 0, 40209, +0, 25130, 31749, 24795, 0, 8724, 0, 0, 0, 0, +0, 0, 23189, 33520, 0, 0, 0, 0, 8361, 25084, +3822, 19879, 0, 0, 0, 0, 0, 0, 26640, 24804, +0, 0, 24026, 2266, 0, 0, 17240, 0, 30417, 16691, +33236, 16501, 0, 0, 27126, 39296, 7271, 0, 0, 0, +0, 0, 39822, 0, 0, 0, 0, 36178, 0, 17263, +0, 0, 0, 0, 20548, 30752, 0, 36360, 25202, 0, +0, 0, 0, 0, 24916, 0, 0, 0, 0, 19175, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 5036, 0, 36263, 1133, 8644, 0, 30981, 34491, +20239, 0, 8528, 24619, 39405, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 9102, 29610, 0, +18058, 29083, 4390, 35462, 7341, 22921, 1244, 0, 807, 0, +0, 0, 0, 0, 0, 0, 0, 22331, 0, 28098, +0, 0, 27796, 30605, 32713, 0, 0, 0, 0, 0, +10278, 34518, 0, 0, 0, 0, 0, 0, 0, 0, +35475, 38159, 36480, 21017, 0, 0, 0, 0, 0, 37963, +0, 29318, 31557, 13530, 34398, 0, 0, 0, 0, 0, +0, 0, 21167, 28728, 34645, 29325, 39783, 3773, 28957, 0, +0, 0, 0, 38510, 0, 0, 0, 0, 0, 0, +20253, 0, 0, 31288, 36225, 34646, 16605, 0, 0, 0, +0, 22927, 0, 11939, 9891, 20749, 4528, 0, 0, 15703, +3778, 0, 36856, 0, 0, 0, 40656, 0, 0, 27890, +0, 0, 0, 0, 0, 0, 36287, 0, 0, 41197, +25914, 18341, 10128, 30838, 19888, 10984, 17241, 0, 20174, 0, +672, 13048, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 25091, 0, 0, 0, 19889, 0, 20750, 10710, +11116, 20039, 26196, 0, 0, 26387, 3043, 0, 40673, 0, +39441, 21432, 0, 0, 0, 0, 0, 12633, 0, 0, +15392, 39299, 0, 0, 0, 0, 0, 5130, 17729, 38680, +8963, 16582, 11151, 4073, 0, 13062, 16025, 0, 0, 0, +0, 26497, 0, 0, 0, 0, 0, 0, 3214, 28740, +0, 11004, 19919, 22226, 38684, 2923, 0, 8444, 0, 0, +35997, 0, 28251, 0, 0, 0, 33714, 12655, 16455, 0, +0, 0, 35531, 0, 0, 20183, 0, 20362, 0, 0, +0, 4691, 0, 0, 16429, 0, 0, 34343, 0, 0, +20070, 0, 0, 0, 36660, 2346, 13090, 0, 0, 27909, +0, 0, 0, 0, 0, 0, 34453, 0, 0, 14768, +0, 0, 0, 6990, 0, 0, 7673, 0, 7675, 0, +0, 0, 0, 0, 0, 9493, 19326, 0, 17756, 0, +0, 0, 0, 3685, 0, 16900, 0, 0, 0, 0, +0, 39502, 0, 0, 33060, 0, 0, 3838, 0, 12414, +0, 0, 0, 22446, 0, 0, 0, 0, 13663, 0, +0, 0, 0, 40050, 0, 0, 0, 0, 0, 33334, +0, 0, 0, 15870, 0, 0, 0, 0, 0, 0, +0, 14097, 0, 11088, 0, 0, 23758, 0, 0, 0, +0, 2457, 0, 0, 23298, 30361, 19574, 0, 6264, 0, +0, 0, 0, 0, 0, 0, 0, 0, 15593, 0, +5054, 0, 21082, 0, 10677, 0, 0, 0, 0, 0, +0, 0, 16288, 6741, 23688, 0, 36164, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 18569, 11632, 0, 0, 0, 8215, 19578, 0, +40013, 0, 0, 36605, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 16568, 12366, 35893, 18246, 4521, +0, 21022, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +29971, 32553, 0, 0, 0, 1501, 4156, 31376, 0, 14435, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 32809, 22473, 40657, 25714, 0, 25981, 40881, 0, 39345, +0, 0, 41069, 24737, 0, 3645, 0, 39800, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 25021, 23696, 34174, 3042, 10430, 25602, 0, 0, 0, +14438, 31380, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 3646, 15874, 0, 4608, 25673, 16143, 3503, 41074, +13379, 0, 37090, 29823, 19890, 4918, 27600, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 7734, +9032, 6158, 2577, 19679, 2804, 1416, 37391, 0, 0, 30325, +41075, 0, 40786, 0, 4086, 30379, 30202, 0, 24915, 0, +0, 30380, 0, 32040, 0, 0, 0, 0, 0, 0, +36523, 13172, 0, 0, 30753, 29133, 25957, 0, 23357, 26128, +37409, 12401, 6306, 2811, 29878, 0, 0, 18274, 0, 40541, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 25674, 0, 0, +34669, 9205, 0, 17265, 2525, 0, 0, 0, 5718, 0, +38677, 22929, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 18579, 0, +39846, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 17477, 0, 0, 0, 19173, +0, 0, 0, 0, 0, 0, 0, 6802, 0, 0, +14980, 17306, 16377, 0, 25675, 9121, 2734, 33539, 0, 0, +39602, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 33982, +1870, 3285, 0, 40353, 10517, 0, 0, 598, 0, 0, +0, 0, 0, 0, 0, 0, 0, 6020, 0, 0, +38685, 9811, 0, 0, 1578, 16227, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 13883, 0, 0, 0, +0, 0, 0, 0, 8334, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +19983, 0, 37439, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 31765, 0, 22716, 27688, 0, 0, +0, 0, 0, 0, 5504, 0, 0, 0, 4303, 5599, +12244, 2747, 0, 0, 0, 40693, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 2217, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 13323, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 29697, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 17012, 0, 0, +0, 0, 23880, 0, 0, 0, 4304, 0, 0, 0, +0, 0, 0, 0, 0, 28540, 0, 5929, 0, 13092, +0, 0, 0, 0, 0, 0, 0, 39604, 15001, 0, +20562, 0, 19147, 0, 0, 0, 0, 0, 786, 0, +0, 0, 0, 0, 0, 41135, 0, 0, 0, 0, +0, 0, 0, 38916, 0, 0, 37126, 0, 0, 789, +0, 0, 19274, 31784, 11070, 35721, 6824, 9089, 29775, 39077, +0, 24633, 27997, 17635, 24717, 18067, 9418, 16498, 29678, 4915, +18575, 11529, 27199, 13380, 41211, 8333, 30633, 0, 0, 16039, +6494, 27792, 23280, 34829, 0, 0, 0, 27068, 0, 8330, +0, 0, 5389, 35033, 0, 0, 0, 23759, 0, 26425, +2903, 20520, 0, 20525, 0, 0, 0, 21123, 0, 0, +4497, 0, 21543, 38837, 2458, 0, 0, 27797, 21548, 4462, +0, 0, 15087, 0, 26431, 0, 40210, 6744, 231, 1094, +0, 0, 29196, 0, 22581, 31991, 24650, 26791, 0, 0, +0, 28780, 0, 0, 0, 19394, 22658, 0, 29210, 25446, +0, 0, 0, 0, 0, 0, 0, 4537, 0, 0, +12221, 7776, 31390, 13547, 16583, 38355, 22391, 2290, 0, 21743, +0, 2822, 0, 0, 0, 0, 0, 0, 0, 0, +19410, 9684, 21484, 3713, 2860, 0, 0, 0, 21061, 0, +0, 31918, 14259, 12440, 39194, 0, 0, 0, 0, 29541, +0, 0, 19815, 37721, 0, 39902, 29995, 25705, 32989, 31514, +0, 29545, 21708, 0, 30484, 12887, 0, 7578, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 1491, 0, 0, 0, 0, 35476, 0, 0, +5986, 12156, 8431, 0, 0, 12898, 14193, 0, 0, 0, +0, 0, 15132, 0, 0, 0, 25067, 0, 20994, 20719, +33681, 27829, 26720, 15830, 25075, 30612, 0, 0, 0, 5997, +20997, 0, 25749, 8913, 6297, 0, 21400, 0, 0, 2984, +10415, 34639, 0, 0, 0, 0, 0, 29816, 2082, 0, +10959, 36652, 0, 26987, 4025, 0, 0, 0, 0, 0, +0, 0, 0, 32647, 19819, 17045, 29113, 0, 12915, 0, +0, 0, 39591, 9273, 9393, 0, 23526, 0, 7436, 37196, +38987, 30734, 6877, 2669, 31600, 0, 9194, 0, 0, 0, +0, 0, 0, 25085, 11811, 0, 32891, 36346, 0, 28501, +30252, 8063, 13828, 22622, 0, 0, 0, 26792, 37091, 15719, +0, 22629, 32899, 21846, 32402, 13173, 33703, 0, 1343, 0, +0, 0, 21001, 0, 17592, 0, 22682, 0, 0, 0, +14172, 0, 0, 0, 28430, 34670, 124, 0, 0, 32664, +23930, 31299, 28843, 0, 15098, 0, 0, 0, 0, 0, +16148, 0, 0, 0, 0, 0, 0, 16537, 0, 21208, +0, 0, 6309, 27299, 0, 13489, 21582, 0, 37102, 0, +0, 0, 0, 0, 2448, 0, 13490, 0, 11243, 30944, +35128, 6864, 9471, 11152, 13395, 0, 0, 0, 0, 0, +0, 0, 16812, 0, 26388, 36672, 0, 5473, 9372, 21689, +0, 28256, 32566, 0, 25818, 2886, 0, 0, 0, 0, +0, 0, 25734, 0, 37816, 0, 7590, 13202, 33717, 0, +0, 0, 31896, 27301, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 32921, 17366, 0, 0, 29698, +0, 0, 20104, 2832, 11957, 0, 0, 40412, 37786, 0, +0, 0, 0, 0, 0, 0, 0, 16397, 0, 34454, +5332, 32524, 37689, 29528, 1001, 25891, 32331, 5949, 22606, 22665, +0, 28422, 0, 13369, 35123, 0, 37768, 0, 25354, 24076, +23217, 5843, 23218, 0, 0, 10047, 37529, 36721, 12264, 8340, +9859, 27010, 0, 24676, 0, 0, 0, 0, 0, 0, +0, 0, 0, 30973, 0, 0, 39179, 22905, 34351, 9076, +14594, 29335, 0, 0, 0, 0, 0, 6892, 0, 0, +34151, 17955, 1171, 0, 0, 0, 40821, 10628, 0, 6714, +0, 6558, 33849, 0, 26264, 0, 26265, 34921, 25176, 0, +0, 0, 0, 0, 0, 0, 30076, 0, 0, 1750, +33615, 29965, 3305, 0, 6271, 35722, 0, 0, 0, 3076, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 14733, +12119, 0, 38871, 1007, 0, 29297, 0, 0, 0, 0, +22322, 0, 0, 0, 0, 8173, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 30139, 0, 32159, 21322, 18371, 0, 0, 40609, +0, 39264, 27556, 40894, 7715, 6495, 22602, 34492, 27915, 24620, +6929, 23751, 0, 23811, 0, 2154, 34117, 0, 0, 0, +0, 0, 0, 40513, 0, 0, 19613, 13431, 0, 0, +0, 0, 0, 38645, 22525, 31515, 34622, 7514, 21531, 0, +39715, 0, 28341, 0, 35816, 0, 16739, 33653, 0, 35817, +0, 0, 30539, 0, 0, 12143, 3127, 5981, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 37560, +0, 31680, 0, 18225, 28342, 0, 0, 0, 0, 0, +0, 0, 0, 1022, 32032, 34630, 0, 4712, 0, 15258, +0, 0, 24359, 18509, 1087, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 38709, 4695, 31217, 33504, +3135, 10220, 14916, 0, 3223, 2557, 2791, 39492, 34069, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 8717, 3185, 35216, 0, 0, 0, 0, +3956, 24796, 33027, 0, 38718, 15492, 0, 14935, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 24797, +0, 19880, 35239, 41011, 23083, 0, 27122, 0, 0, 0, +0, 27321, 2709, 0, 0, 6370, 0, 9765, 18815, 34332, +0, 0, 0, 0, 21469, 1715, 0, 0, 0, 0, +0, 0, 0, 29926, 0, 0, 0, 0, 0, 0, +21358, 11297, 23791, 0, 0, 0, 0, 0, 0, 32048, +0, 0, 18147, 0, 0, 0, 0, 17428, 0, 35895, +0, 17203, 27768, 0, 0, 5069, 0, 0, 30859, 0, +0, 4448, 0, 0, 0, 14303, 10658, 0, 36999, 0, +15927, 0, 0, 0, 10176, 8651, 7411, 0, 0, 15936, +0, 0, 9526, 3544, 0, 0, 14305, 0, 0, 28135, +0, 0, 5987, 0, 0, 0, 0, 0, 0, 0, +28166, 0, 0, 0, 24259, 0, 0, 0, 9536, 0, +0, 0, 0, 0, 0, 40499, 0, 0, 29423, 0, +0, 37740, 0, 0, 0, 0, 0, 41161, 0, 0, +0, 0, 0, 0, 0, 31220, 4740, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 39785, 0, 0, +0, 0, 27543, 0, 6154, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 30622, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 3745, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 25722, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 12394, 0, 0, 0, +0, 0, 5876, 0, 2336, 0, 15622, 0, 0, 30634, +0, 0, 0, 2270, 0, 0, 19264, 21972, 0, 0, +0, 0, 0, 0, 25884, 0, 0, 0, 30643, 0, +0, 0, 0, 0, 25887, 0, 0, 13880, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +30647, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 2218, 17000, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 37789, 0, 0, 0, 0, +37817, 0, 0, 3250, 0, 0, 26226, 0, 0, 0, +0, 0, 0, 0, 10859, 26191, 29996, 0, 7832, 0, +24332, 33494, 0, 0, 0, 4083, 8194, 0, 0, 0, +35849, 6150, 8026, 8027, 38251, 23127, 0, 18070, 0, 0, +0, 26192, 22218, 0, 0, 0, 36165, 19215, 11227, 36279, +1061, 36940, 26552, 0, 33017, 3955, 0, 0, 0, 0, +0, 0, 0, 0, 26553, 5817, 0, 0, 0, 35896, +0, 3101, 8846, 18388, 22885, 37889, 34647, 20653, 0, 28140, +0, 0, 0, 0, 0, 0, 0, 14162, 0, 27854, +22150, 0, 34204, 26024, 6748, 0, 0, 4157, 33042, 0, +29869, 8922, 33883, 0, 16167, 0, 18095, 0, 5064, 38441, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +36101, 27806, 0, 37197, 30118, 30119, 0, 0, 482, 25195, +1986, 5070, 0, 38445, 10781, 0, 0, 0, 11708, 0, +0, 0, 0, 0, 0, 18608, 0, 0, 0, 0, +18196, 25579, 0, 0, 0, 0, 0, 0, 0, 0, +0, 5225, 19891, 32044, 31025, 10019, 40792, 39226, 26046, 4861, +17266, 0, 5745, 17471, 9072, 0, 0, 0, 22384, 0, +0, 0, 36357, 0, 10818, 0, 6582, 31391, 0, 0, +0, 0, 0, 0, 0, 22751, 10496, 0, 18396, 20674, +7483, 18911, 38288, 2007, 5835, 19541, 0, 40487, 18833, 22132, +6590, 2151, 0, 0, 0, 0, 3144, 19465, 0, 0, +0, 0, 0, 0, 0, 0, 31634, 0, 0, 0, +0, 0, 0, 205, 39918, 0, 21029, 30173, 10446, 0, +0, 6593, 30288, 39919, 2463, 17307, 27477, 0, 0, 0, +2464, 0, 27685, 0, 6594, 0, 11886, 0, 0, 0, +0, 0, 0, 0, 12961, 21745, 5237, 8268, 12071, 11851, +4418, 0, 36659, 25819, 29522, 0, 0, 0, 0, 0, +0, 0, 18349, 0, 0, 28102, 18129, 19411, 5838, 0, +0, 0, 22176, 0, 18130, 0, 0, 17347, 0, 21768, +0, 0, 0, 17852, 26289, 0, 7551, 0, 0, 0, +0, 26290, 0, 0, 18140, 38741, 0, 1724, 17006, 0, +0, 27698, 25214, 12972, 40696, 0, 0, 18143, 18144, 19986, +0, 27492, 0, 0, 0, 0, 18148, 0, 0, 11944, +0, 0, 0, 0, 0, 0, 18167, 12975, 24861, 0, +0, 0, 21749, 14142, 3128, 0, 0, 0, 0, 0, +39108, 24431, 0, 24433, 7012, 0, 0, 26058, 0, 0, +0, 0, 0, 909, 0, 7424, 0, 0, 7515, 7452, +0, 0, 0, 0, 7372, 15678, 0, 0, 0, 0, +37987, 11793, 0, 7458, 0, 0, 0, 6595, 0, 0, +0, 0, 21989, 21710, 22167, 5196, 5108, 89, 0, 29319, +3026, 342, 19792, 21018, 0, 0, 2042, 37338, 32098, 19357, +0, 0, 22834, 0, 6536, 0, 5400, 0, 0, 33309, +21351, 9949, 4029, 27429, 19430, 0, 0, 0, 0, 0, +30418, 35950, 5924, 34333, 0, 31122, 28113, 0, 202, 16362, +21023, 0, 24667, 20276, 21874, 2272, 2291, 0, 0, 0, +16451, 29333, 35273, 0, 21415, 0, 27431, 0, 0, 0, +0, 4419, 0, 13085, 0, 0, 8480, 0, 0, 0, +13209, 9813, 0, 38635, 0, 19182, 0, 0, 12126, 9641, +0, 0, 0, 12777, 12453, 0, 0, 33872, 0, 7725, +0, 0, 0, 1269, 23301, 0, 0, 37575, 269, 5532, +0, 0, 6964, 7615, 0, 0, 14648, 21281, 30110, 0, +26630, 8037, 31986, 24790, 22989, 30369, 18081, 19305, 40096, 814, +0, 37339, 0, 0, 0, 0, 1045, 19358, 0, 12733, +0, 34839, 0, 15727, 13536, 0, 1785, 0, 0, 0, +19218, 9612, 6794, 39786, 0, 0, 0, 39216, 6991, 40165, +456, 0, 0, 0, 39217, 7732, 6300, 21406, 2142, 6576, +26126, 26036, 1329, 0, 0, 0, 39802, 38988, 2143, 0, +0, 0, 14946, 34132, 0, 0, 0, 31872, 0, 40668, +557, 34990, 3866, 28507, 23704, 0, 21148, 37392, 7006, 12932, +35951, 32661, 0, 21568, 0, 0, 1755, 0, 0, 0, +0, 9834, 32900, 5925, 0, 0, 14443, 28370, 6010, 8074, +20258, 27133, 33890, 29134, 37410, 0, 0, 32908, 8075, 39834, +21293, 33891, 34804, 0, 7784, 40990, 40111, 33775, 0, 0, +0, 40172, 0, 16238, 0, 36524, 8622, 16150, 0, 6852, +30635, 19739, 0, 0, 0, 11263, 3868, 0, 28377, 28516, +28378, 28517, 33981, 0, 8964, 12825, 0, 2008, 28518, 37627, +0, 0, 0, 0, 0, 0, 28519, 0, 0, 0, +0, 4214, 0, 0, 33340, 10444, 28324, 0, 0, 0, +0, 20677, 3734, 28146, 38289, 18841, 38773, 19230, 33708, 12957, +26257, 0, 33709, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 13286, 0, 0, 0, 830, 19334, +0, 29648, 31894, 0, 0, 25459, 0, 26773, 40118, 0, +12962, 8269, 5501, 0, 0, 36593, 14450, 0, 36015, 676, +0, 26059, 28259, 0, 6711, 33090, 0, 0, 0, 11364, +0, 0, 0, 25606, 21302, 40120, 9686, 0, 19236, 0, +0, 0, 0, 0, 0, 0, 39447, 33718, 0, 39448, +0, 14997, 14452, 0, 0, 37613, 18642, 0, 0, 2029, +0, 0, 25461, 33099, 0, 0, 0, 0, 0, 31769, +19149, 0, 0, 0, 8760, 0, 0, 41123, 10085, 0, +13355, 25770, 24261, 25118, 22194, 37741, 3094, 8039, 22240, 0, +0, 19794, 0, 0, 28911, 0, 15480, 31850, 0, 0, +0, 0, 0, 6795, 0, 35897, 0, 0, 28223, 0, +31996, 14722, 0, 30623, 0, 35933, 0, 37393, 0, 558, +30124, 28508, 22199, 0, 0, 0, 1790, 0, 0, 37940, +37941, 6513, 25667, 30636, 0, 0, 0, 0, 0, 30760, +9676, 0, 4970, 32010, 0, 0, 11941, 14745, 28147, 0, +28254, 0, 0, 18539, 562, 37431, 39354, 9683, 0, 15916, +8569, 5131, 0, 0, 0, 32301, 38546, 26060, 0, 15395, +2088, 2023, 0, 0, 28260, 0, 37450, 2089, 14281, 14282, +0, 14805, 15009, 0, 20875, 38542, 28893, 30710, 31982, 32998, +0, 0, 0, 25811, 12211, 0, 0, 33077, 0, 0, +6598, 40851, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 37623, 24335, 8040, 22365, 22195, 0, 36283, 0, +10593, 41066, 0, 8916, 6212, 10324, 31112, 0, 22129, 0, +0, 28052, 15224, 21569, 10237, 7805, 7007, 35259, 0, 0, +29516, 6218, 39005, 25916, 0, 0, 0, 20678, 28080, 0, +16665, 0, 23123, 6867, 40689, 35276, 0, 0, 0, 32465, +9494, 25295, 18175, 0, 0, 358, 0, 0, 2612, 0, +6699, 24475, 15651, 33496, 11326, 34901, 39203, 29549, 1042, 0, +0, 257, 0, 15194, 0, 15654, 22255, 36905, 341, 19816, +20635, 0, 0, 0, 0, 0, 8121, 24360, 16193, 6265, +28726, 0, 0, 23822, 35086, 30811, 10950, 20643, 10323, 33878, +0, 1289, 22925, 0, 5534, 0, 39160, 0, 26866, 15218, +2438, 0, 0, 33506, 39161, 0, 40252, 0, 0, 0, +0, 11794, 3552, 0, 0, 10709, 21762, 21557, 34648, 0, +3744, 8131, 9466, 23190, 0, 8785, 29552, 0, 0, 0, +28729, 23824, 0, 0, 14352, 33521, 23435, 0, 39218, 0, +0, 0, 24654, 0, 6878, 0, 0, 11814, 10732, 24410, +0, 3056, 0, 0, 8238, 0, 10599, 31601, 31223, 19516, +0, 0, 29054, 0, 0, 10600, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 1973, 0, 24308, 8786, +0, 0, 8064, 15983, 0, 0, 0, 0, 0, 1663, +14173, 15225, 9544, 0, 8596, 33530, 234, 37754, 31386, 35517, +14061, 0, 18817, 24974, 29924, 0, 12626, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 14234, 14954, +22763, 16069, 0, 0, 30266, 11835, 6665, 37626, 13749, 0, +9672, 8599, 23001, 19823, 40440, 10190, 0, 0, 0, 0, +0, 0, 0, 0, 36610, 24658, 0, 16807, 259, 22592, +31009, 0, 0, 24341, 0, 24311, 20355, 6248, 20042, 38620, +0, 24416, 35526, 0, 0, 0, 0, 0, 0, 0, +597, 0, 0, 14725, 0, 38290, 33710, 16378, 19265, 19266, +21937, 864, 0, 23028, 33711, 0, 0, 0, 383, 0, +0, 0, 0, 0, 10711, 0, 0, 10712, 38686, 0, +26075, 8600, 0, 22946, 17751, 0, 0, 0, 0, 30269, +33786, 0, 0, 0, 0, 0, 15964, 0, 0, 7029, +10143, 26061, 0, 0, 5239, 0, 0, 0, 0, 0, +33787, 0, 7034, 8365, 0, 5348, 0, 19965, 35359, 21671, +0, 22808, 0, 0, 0, 2339, 0, 0, 0, 0, +37662, 0, 7038, 21605, 0, 0, 36247, 0, 0, 24037, +0, 10609, 18149, 0, 2676, 36504, 0, 0, 0, 0, +9380, 0, 21477, 33507, 28668, 14007, 0, 0, 0, 22355, +0, 17652, 0, 0, 918, 0, 0, 33152, 30000, 2983, +8402, 0, 10864, 30487, 0, 0, 8029, 22289, 0, 21083, +34060, 33974, 0, 0, 18313, 18082, 33976, 24727, 10221, 35486, +10106, 0, 8041, 453, 35487, 0, 1948, 0, 0, 0, +10594, 17205, 0, 0, 0, 25796, 31577, 0, 0, 0, +27111, 22703, 11233, 35497, 1961, 1974, 21179, 24655, 0, 0, +30735, 3109, 36796, 0, 30830, 11700, 25805, 0, 0, 0, +10733, 27892, 10121, 22197, 0, 7384, 0, 18263, 40109, 22549, +0, 17243, 0, 0, 4212, 31614, 39297, 0, 1067, 39322, +28235, 34546, 0, 0, 0, 0, 24365, 31387, 17619, 0, +38898, 17593, 0, 0, 0, 13598, 0, 10605, 36704, 0, +16209, 10819, 0, 37659, 10699, 35260, 0, 36494, 33840, 36803, +0, 0, 0, 0, 24976, 0, 0, 0, 28847, 28379, +0, 17288, 27902, 17289, 0, 0, 37418, 0, 0, 35984, +0, 0, 0, 0, 0, 33417, 323, 29882, 28081, 27453, +0, 37432, 0, 7741, 0, 0, 0, 28083, 29933, 37433, +39304, 39305, 0, 28970, 0, 0, 0, 0, 18288, 0, +3374, 28163, 25964, 0, 0, 0, 0, 0, 0, 9210, +7749, 17858, 22717, 0, 0, 0, 17371, 0, 18444, 3896, +32689, 10610, 33100, 26570, 0, 0, 18451, 10741, 33823, 7755, +0, 442, 1894, 28947, 27998, 38876, 1537, 27874, 29909, 28356, +32637, 10553, 25955, 0, 7432, 0, 0, 0, 0, 21717, +19542, 0, 0, 0, 0, 11365, 39450, 0, 0, 0, +35723, 0, 37247, 0, 0, 35448, 37671, 3473, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 36213, +21715, 25482, 0, 0, 0, 20901, 0, 0, 0, 0, +0, 0, 0, 29267, 0, 424, 0, 0, 0, 0, +7118, 39278, 6965, 23022, 12157, 21243, 0, 14224, 12778, 0, +0, 8403, 0, 0, 0, 18071, 0, 41182, 0, 0, +924, 0, 0, 0, 0, 0, 0, 27257, 35582, 22010, +0, 0, 0, 21127, 27104, 0, 19427, 27105, 0, 29103, +0, 0, 0, 0, 0, 0, 8914, 0, 0, 0, +0, 16802, 776, 37512, 41236, 16499, 33401, 0, 0, 38049, +3395, 12916, 19674, 12785, 37359, 0, 0, 37360, 35498, 0, +0, 0, 19472, 38050, 0, 40532, 29115, 0, 0, 31851, +14512, 38095, 18802, 28962, 0, 0, 40536, 18096, 0, 14670, +0, 0, 12198, 14744, 0, 0, 40781, 0, 37677, 6155, +0, 0, 0, 0, 21048, 0, 0, 0, 3730, 0, +0, 0, 0, 0, 0, 0, 0, 272, 0, 0, +0, 8816, 0, 1866, 6110, 30737, 0, 0, 0, 0, +24973, 15389, 0, 0, 22630, 15226, 8071, 36657, 0, 29875, +29711, 36909, 34912, 0, 35126, 0, 0, 34665, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 32217, 0, +29127, 0, 28236, 0, 0, 0, 4410, 0, 0, 0, +33585, 31388, 2234, 37394, 0, 0, 2812, 32008, 0, 15335, +2337, 2526, 24666, 0, 0, 4921, 0, 28075, 0, 0, +11150, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 31175, 37517, 0, 0, 0, +0, 13321, 32516, 38531, 25885, 20553, 0, 26399, 2386, 28145, +4162, 20043, 40218, 3732, 12641, 3733, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 17480, +0, 0, 0, 0, 9920, 0, 0, 0, 0, 0, +6625, 32518, 3287, 26400, 17308, 11542, 0, 0, 5500, 0, +0, 17597, 0, 0, 0, 0, 0, 0, 37970, 0, +0, 0, 12066, 17922, 0, 0, 6391, 10139, 36590, 37661, +9850, 18126, 0, 17519, 0, 385, 5265, 36007, 21746, 26355, +0, 33198, 0, 0, 4973, 37434, 2241, 31130, 2570, 2021, +0, 13080, 0, 0, 0, 0, 0, 0, 19932, 30767, +20559, 0, 0, 0, 0, 27548, 13761, 27609, 12074, 0, +0, 4343, 0, 18442, 11282, 0, 30061, 0, 0, 37123, +0, 0, 2861, 36599, 12079, 0, 16436, 0, 0, 0, +0, 20870, 401, 8384, 35558, 12758, 0, 4937, 6098, 34113, +25291, 14736, 29862, 33568, 27849, 0, 2370, 3271, 0, 6072, +0, 0, 0, 0, 0, 0, 0, 0, 9875, 0, +0, 0, 0, 31289, 0, 0, 0, 0, 0, 0, +23440, 0, 12212, 0, 0, 0, 0, 0, 15958, 30639, +0, 0, 0, 0, 0, 0, 27175, 8084, 0, 29885, +0, 1656, 0, 28664, 10153, 22759, 0, 0, 0, 37055, +28669, 0, 0, 0, 0, 0, 0, 0, 32456, 0, +33414, 0, 0, 0, 0, 31028, 9921, 22393, 0, 0, +0, 0, 0, 0, 0, 28707, 0, 1669, 32463, 0, +0, 35607, 0, 0, 22728, 11318, 20768, 425, 0, 7344, +0, 0, 0, 6064, 0, 0, 0, 0, 0, 0, +0, 7582, 0, 0, 13819, 0, 0, 0, 28325, 0, +0, 0, 0, 0, 30409, 8657, 0, 0, 7583, 0, +30114, 0, 30931, 9275, 6683, 0, 38980, 4432, 35047, 0, +642, 2140, 20654, 0, 22959, 0, 0, 8728, 0, 0, +18249, 0, 0, 25192, 0, 0, 0, 0, 0, 0, +8408, 0, 10961, 20723, 0, 0, 33403, 11473, 8065, 11681, +0, 24805, 13727, 30057, 37078, 20660, 40025, 14356, 0, 27294, +15831, 24499, 17814, 8239, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 33698, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 17975, 0, 21570, 0, +22478, 0, 8247, 2147, 35952, 0, 0, 1987, 0, 6850, +0, 0, 0, 0, 0, 38995, 0, 17244, 0, 0, +29843, 4966, 0, 18827, 34336, 6159, 24190, 30382, 20510, 41152, +8258, 24747, 967, 346, 23931, 0, 0, 0, 0, 25120, +0, 0, 0, 0, 0, 0, 25096, 11189, 32405, 16108, +0, 0, 0, 4801, 0, 0, 35524, 0, 0, 0, +3442, 40992, 21138, 3372, 6484, 36611, 39024, 0, 28760, 34808, +32911, 33782, 0, 6514, 27430, 32223, 32224, 0, 0, 6863, +0, 0, 0, 0, 0, 0, 0, 0, 16170, 0, +0, 0, 0, 0, 30849, 36708, 37104, 0, 0, 29058, +0, 13881, 0, 28850, 23375, 0, 5750, 28927, 18956, 38733, +30904, 12651, 284, 21973, 23618, 0, 0, 0, 26889, 28434, +0, 0, 20679, 0, 0, 0, 36809, 0, 0, 0, +0, 0, 0, 0, 38453, 0, 0, 35001, 0, 0, +0, 0, 0, 0, 0, 3709, 16985, 37114, 2826, 35355, +0, 0, 3658, 0, 16986, 0, 0, 0, 0, 0, +0, 0, 0, 29829, 0, 41087, 0, 0, 32235, 0, +0, 0, 0, 31899, 0, 1670, 10021, 23384, 25917, 0, +7446, 0, 26357, 0, 0, 0, 0, 0, 0, 0, +11300, 0, 0, 0, 0, 0, 0, 0, 717, 37121, +37122, 0, 12418, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 15747, 40946, 0, 0, 0, +0, 0, 0, 32426, 19936, 0, 0, 0, 0, 0, +0, 0, 0, 17372, 39868, 7294, 17860, 2219, 6405, 9472, +33368, 17013, 23558, 0, 0, 15002, 30063, 0, 14697, 32690, +0, 0, 0, 0, 24858, 0, 0, 0, 40413, 0, +0, 0, 0, 15010, 0, 0, 0, 0, 13790, 0, +40067, 32324, 18360, 34818, 25177, 35691, 17776, 1835, 11889, 12511, +6197, 39986, 24905, 13646, 0, 0, 0, 0, 14468, 0, +963, 0, 0, 1083, 8703, 4286, 0, 23761, 27876, 30800, +3338, 18504, 37023, 16163, 23762, 5737, 28423, 38710, 0, 7259, +17835, 29474, 12127, 23663, 10932, 0, 0, 37025, 23502, 37026, +30192, 0, 478, 23304, 25771, 24003, 34273, 32271, 0, 0, +0, 0, 0, 0, 4356, 7345, 0, 16093, 9712, 25033, +6973, 24487, 0, 0, 19306, 15660, 35043, 0, 0, 25034, +3890, 12822, 0, 40253, 0, 6537, 30213, 0, 21129, 0, +0, 0, 34407, 29632, 0, 0, 0, 0, 0, 33279, +9719, 22837, 0, 0, 0, 37198, 10486, 0, 40658, 0, +0, 26496, 37201, 0, 0, 12627, 0, 23925, 27545, 4335, +41076, 16839, 21255, 0, 30204, 38446, 0, 5226, 0, 0, +0, 0, 0, 0, 6468, 1512, 13599, 23614, 10440, 3759, +34419, 0, 34672, 0, 0, 0, 27815, 29026, 35056, 0, +15307, 0, 40503, 9677, 45, 9922, 0, 0, 0, 0, +28380, 33712, 1576, 0, 7806, 24751, 19543, 0, 9808, 0, +0, 0, 0, 0, 1378, 14984, 4165, 0, 0, 23098, +0, 0, 0, 36008, 0, 0, 23720, 36017, 7030, 18131, +0, 1383, 0, 0, 0, 0, 0, 12075, 20571, 0, +0, 34023, 0, 0, 34703, 0, 0, 0, 17373, 0, +28711, 0, 0, 0, 19007, 0, 15176, 19669, 32638, 0, +0, 0, 0, 57, 0, 0, 28426, 0, 0, 19798, +0, 9761, 0, 0, 0, 8593, 21089, 10238, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 25036, 0, +0, 0, 0, 2387, 25989, 0, 0, 0, 0, 22558, +0, 0, 0, 0, 0, 0, 32817, 32691, 14486, 0, +0, 0, 0, 3346, 21124, 0, 0, 0, 0, 0, +21191, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 20777, 0, 26432, 0, 5741, 0, 0, +18089, 0, 39164, 35048, 0, 8229, 23779, 24492, 14507, 1814, +19587, 38512, 28548, 0, 0, 0, 3696, 0, 0, 0, +0, 0, 0, 38553, 0, 26874, 36670, 0, 24500, 5404, +29203, 40508, 0, 36288, 0, 21132, 1867, 15833, 39593, 6749, +4529, 779, 0, 0, 0, 0, 0, 0, 0, 0, +0, 16948, 0, 0, 14518, 30942, 17823, 0, 0, 31075, +26991, 21467, 19518, 14278, 0, 0, 0, 0, 33408, 0, +0, 0, 0, 31058, 0, 5408, 0, 31623, 240, 4967, +40968, 10133, 4213, 1100, 0, 6216, 0, 38793, 0, 0, +0, 34177, 0, 0, 5590, 11954, 0, 0, 0, 20416, +0, 0, 8260, 0, 783, 15474, 19592, 25260, 40941, 23616, +31936, 27905, 33415, 20919, 0, 0, 0, 19403, 0, 0, +0, 0, 38404, 2725, 26562, 31077, 0, 0, 0, 0, +46, 716, 10204, 0, 25962, 28381, 29216, 34278, 0, 1821, +25458, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 26134, 31029, 0, 0, 325, 0, 40468, 0, 22752, +28148, 35356, 27906, 6249, 27907, 19127, 0, 0, 0, 0, +0, 0, 0, 0, 0, 7550, 41233, 0, 21150, 5474, +39521, 4840, 17708, 12466, 1872, 4584, 3376, 2087, 0, 25864, +38111, 0, 0, 0, 0, 0, 13554, 0, 0, 35113, +18691, 0, 2314, 0, 0, 0, 0, 0, 0, 0, +0, 0, 21304, 0, 0, 0, 0, 0, 0, 0, +13764, 23102, 40488, 38116, 0, 0, 0, 0, 0, 0, +17378, 0, 0, 16232, 0, 0, 3715, 0, 0, 38743, +0, 0, 0, 0, 0, 0, 0, 0, 0, 1498, +31001, 0, 0, 0, 0, 10735, 0, 0, 0, 22782, +0, 26063, 0, 0, 0, 0, 21305, 7591, 33579, 0, +26989, 0, 14689, 0, 0, 0, 14994, 0, 37457, 0, +9749, 9754, 0, 10962, 0, 0, 17224, 32893, 7094, 37594, +9879, 0, 0, 14174, 0, 15471, 0, 40934, 7539, 0, +22340, 8817, 0, 12948, 21257, 0, 32225, 17310, 3028, 0, +7099, 8820, 37435, 11010, 7548, 326, 0, 0, 0, 7129, +0, 0, 0, 0, 15478, 15707, 2024, 0, 0, 35280, +13556, 0, 0, 0, 0, 0, 0, 0, 3031, 8822, +25623, 0, 37790, 0, 17931, 0, 0, 0, 0, 37459, +37796, 38537, 32692, 0, 0, 20370, 0, 0, 0, 9596, +14263, 0, 30165, 0, 0, 31681, 30699, 40629, 30801, 15938, +0, 0, 19788, 0, 10280, 10152, 7373, 21687, 36906, 11218, +0, 0, 16530, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 40204, 9611, 1291, 12823, +29390, 0, 18936, 15569, 41162, 18083, 23321, 0, 40207, 0, +0, 0, 0, 9181, 41112, 0, 34739, 27947, 0, 15947, +0, 2877, 0, 34975, 0, 0, 37361, 0, 0, 0, +0, 0, 0, 27266, 16298, 35899, 6242, 0, 0, 0, +31224, 36489, 8066, 40436, 8133, 0, 28053, 17050, 35092, 29960, +0, 0, 0, 0, 0, 0, 0, 9661, 0, 0, +0, 18944, 34666, 23347, 16536, 40216, 0, 9615, 10888, 0, +0, 0, 0, 0, 0, 14062, 0, 0, 3555, 0, +0, 14521, 38448, 0, 20288, 0, 0, 0, 0, 0, +0, 0, 40173, 8413, 33339, 12403, 0, 0, 0, 26197, +19803, 37946, 0, 0, 0, 27204, 0, 0, 18957, 36912, +13322, 21862, 0, 0, 0, 0, 14690, 36913, 0, 0, +36009, 29031, 30649, 3067, 17987, 9240, 0, 17325, 17752, 0, +0, 13398, 34811, 1583, 23377, 0, 0, 0, 36018, 0, +0, 1723, 19934, 2605, 0, 8415, 0, 0, 0, 24846, +5600, 16720, 0, 0, 0, 0, 18150, 0, 0, 0, +11305, 24857, 0, 19150, 0, 15972, 0, 0, 0, 24640, +37179, 11219, 0, 0, 0, 16797, 0, 25347, 32731, 27757, +0, 0, 6457, 1626, 0, 0, 0, 0, 21688, 0, +10480, 22242, 0, 7526, 20821, 0, 0, 7883, 0, 0, +10964, 30454, 26122, 0, 13370, 31290, 0, 0, 0, 0, +0, 0, 0, 8230, 0, 0, 0, 0, 0, 0, +0, 1787, 40344, 0, 40213, 3437, 0, 26686, 10884, 2063, +0, 0, 0, 0, 25194, 0, 0, 0, 0, 0, +0, 0, 20827, 0, 17225, 0, 0, 12740, 0, 0, +19312, 0, 0, 19892, 20728, 40028, 32284, 11706, 9342, 14358, +0, 20828, 0, 25621, 0, 31230, 0, 25580, 0, 38515, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 21873, 32901, 0, 13313, 0, +0, 0, 0, 0, 0, 17053, 27272, 35968, 5591, 24393, +14522, 0, 0, 39835, 0, 16504, 2149, 15845, 35969, 0, +1997, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 3654, 0, 0, 0, 0, 0, 13318, +0, 31125, 34134, 0, 0, 0, 0, 29977, 19519, 0, +7385, 40679, 0, 23617, 0, 28433, 23365, 0, 22415, 1635, +7679, 29844, 11241, 0, 0, 7017, 0, 0, 0, 7018, +0, 0, 6114, 0, 25585, 0, 0, 0, 0, 0, +7019, 0, 0, 0, 0, 0, 0, 0, 34680, 27772, +0, 0, 0, 0, 0, 36448, 21259, 21260, 35527, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 20044, 0, 0, 0, 0, +35148, 22931, 4610, 0, 30860, 0, 9924, 36372, 0, 29520, +39855, 7445, 36810, 0, 0, 15960, 241, 489, 0, 10138, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 21003, 20973, 0, 0, 14074, 0, 0, 30567, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 4039, 0, 28383, 28928, 23379, 28851, 30765, 8446, 0, +8754, 0, 10140, 0, 20922, 8755, 0, 0, 0, 0, +39306, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 28436, +0, 0, 0, 27686, 0, 21359, 25932, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 32917, +0, 0, 0, 41089, 37118, 21360, 23210, 0, 0, 26649, +0, 0, 0, 0, 0, 0, 2064, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 16077, 16994, 0, 9281, 0, 0, 0, 0, 0, +0, 0, 34574, 2153, 13205, 0, 31239, 2466, 17927, 40450, +0, 11655, 0, 29651, 38481, 0, 10518, 0, 0, 9841, +0, 0, 0, 0, 0, 0, 0, 0, 0, 14113, +0, 0, 0, 6027, 0, 36462, 0, 0, 0, 0, +39866, 0, 0, 0, 0, 0, 30771, 0, 12669, 25499, +0, 0, 387, 5266, 19141, 35281, 30569, 0, 0, 0, +0, 0, 23961, 0, 0, 0, 0, 0, 0, 8758, +12670, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 41035, 0, 35539, 0, 0, 38482, 0, 17862, +0, 0, 0, 0, 0, 0, 35284, 0, 0, 0, +0, 0, 0, 0, 38634, 0, 0, 0, 3851, 1587, +0, 0, 0, 0, 33720, 36717, 0, 0, 0, 0, +0, 33101, 30654, 17381, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 2030, 13094, 2753, 16079, 0, +0, 24397, 0, 0, 0, 0, 0, 27495, 31666, 24859, +0, 0, 0, 0, 0, 0, 19152, 0, 0, 5286, +21384, 17069, 0, 498, 0, 6953, 7869, 8195, 11913, 38508, +162, 0, 0, 24651, 3819, 20254, 34131, 29842, 21254, 11137, +27269, 0, 33531, 39971, 15281, 0, 0, 0, 0, 0, +32625, 32626, 4458, 3614, 0, 5865, 35850, 0, 6066, 0, +0, 10107, 30322, 0, 35585, 816, 35873, 0, 0, 0, +0, 34127, 0, 0, 0, 0, 32490, 0, 0, 0, +0, 0, 0, 1106, 0, 0, 13720, 8659, 38315, 0, +39221, 10965, 31578, 33140, 32649, 8231, 39966, 0, 19675, 33141, +23916, 0, 0, 0, 7625, 588, 11289, 0, 0, 0, +0, 0, 0, 13371, 0, 819, 34172, 34976, 0, 0, +0, 0, 0, 31852, 0, 14671, 0, 24894, 37752, 28577, +29708, 20662, 38442, 24807, 0, 7891, 0, 24808, 3647, 0, +36798, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 29123, 0, 0, 30200, 0, 0, 30123, 0, 3929, +0, 8664, 0, 0, 0, 0, 0, 0, 37515, 8665, +24809, 0, 0, 0, 0, 14672, 0, 0, 6012, 35519, +26884, 35954, 0, 9616, 13314, 0, 27810, 24505, 0, 7009, +11474, 11683, 34083, 0, 0, 14520, 0, 38545, 3649, 16608, +0, 23348, 33410, 0, 11643, 29644, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 8249, 0, +0, 34084, 13735, 20099, 37396, 0, 0, 0, 0, 0, +0, 0, 40485, 13383, 39836, 3369, 0, 13750, 32665, 3193, +16961, 37759, 0, 39837, 16580, 31126, 24821, 0, 30439, 0, +35351, 35970, 16505, 0, 29693, 174, 14962, 34674, 0, 0, +0, 14680, 0, 39227, 0, 39838, 19540, 0, 0, 0, +33450, 0, 0, 4160, 3894, 0, 0, 0, 0, 0, +23934, 7443, 2922, 0, 20214, 28077, 348, 0, 8139, 0, +0, 0, 30851, 39442, 20417, 2884, 34429, 37420, 0, 8261, +28520, 12464, 0, 7543, 0, 0, 11003, 14449, 0, 37206, +0, 0, 0, 0, 0, 23369, 19740, 0, 0, 1638, +9836, 0, 0, 0, 20518, 0, 30383, 30384, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +14070, 37421, 32231, 0, 0, 4245, 12412, 0, 32459, 22306, +8265, 0, 0, 0, 18284, 0, 25837, 33912, 41033, 0, +13759, 0, 0, 38625, 0, 37108, 37109, 19744, 20308, 19680, +6709, 8266, 0, 0, 0, 0, 0, 0, 0, 13196, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +20290, 0, 285, 0, 0, 0, 0, 15475, 0, 0, +0, 0, 0, 0, 0, 0, 10786, 0, 0, 0, +9074, 0, 31654, 0, 25460, 8671, 22089, 37610, 32047, 0, +0, 26135, 22483, 0, 24395, 36591, 24833, 0, 8980, 0, +8756, 32132, 0, 28084, 0, 0, 0, 599, 23380, 10820, +0, 0, 0, 31655, 0, 31177, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 23211, 11126, 9559, 0, 5598, 26390, 19369, 20463, 12661, +31716, 32136, 12417, 2924, 15625, 3710, 0, 0, 0, 0, +0, 0, 38776, 22741, 28086, 19046, 16995, 19984, 3711, 29246, +0, 18132, 0, 3661, 0, 0, 0, 0, 0, 0, +0, 0, 3712, 0, 0, 3662, 0, 0, 0, 21476, +0, 36613, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 20184, 0, 27279, 0, +31900, 0, 7035, 40804, 0, 0, 13762, 12245, 10740, 26817, +17358, 0, 23214, 0, 40035, 27692, 24847, 0, 0, 0, +0, 0, 0, 0, 0, 32922, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 27693, 0, 0, +0, 33545, 0, 0, 0, 0, 8271, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 21747, 34280, 18296, 12826, 9560, 15968, 3665, 2315, 3944, +0, 9768, 0, 5165, 0, 0, 0, 13207, 0, 5267, +10822, 0, 15626, 0, 4041, 23729, 134, 0, 22642, 0, +0, 0, 0, 0, 0, 34142, 14078, 19987, 0, 1725, +16395, 9213, 3850, 0, 0, 36598, 9282, 37125, 40122, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 2220, 0, 18298, 2090, 19244, 13766, 39124, +20369, 9483, 0, 12796, 0, 16233, 0, 0, 0, 0, +0, 0, 27206, 0, 0, 9769, 0, 0, 19988, 23797, +16322, 0, 10457, 29886, 0, 0, 0, 0, 0, 11656, +0, 0, 0, 0, 0, 0, 10611, 0, 0, 0, +18916, 0, 0, 12797, 0, 0, 0, 0, 0, 9561, +0, 0, 35362, 11306, 0, 0, 0, 0, 0, 0, +19153, 0, 0, 0, 15011, 0, 0, 0, 9447, 0, +0, 24996, 21478, 0, 0, 19417, 0, 0, 37906, 30917, +3590, 3596, 39406, 0, 4386, 40479, 11166, 13664, 24783, 29747, +20405, 19728, 37056, 311, 589, 0, 22470, 39122, 18664, 3626, +29691, 0, 13594, 0, 38610, 0, 0, 0, 0, 0, +13876, 18680, 0, 0, 13189, 28762, 2885, 0, 4471, 0, +0, 30254, 4611, 15245, 0, 1516, 0, 0, 0, 0, +0, 0, 30907, 0, 0, 23723, 0, 0, 0, 8481, +0, 0, 11857, 0, 8451, 0, 12672, 8483, 0, 11268, +0, 0, 0, 27758, 0, 0, 7885, 0, 0, 0, +0, 22539, 0, 2155, 0, 0, 0, 0, 995, 0, +0, 0, 0, 0, 26990, 0, 0, 11352, 0, 9546, +0, 0, 21963, 0, 0, 0, 0, 0, 0, 0, +0, 22200, 0, 36496, 29555, 32780, 0, 40347, 0, 37097, +0, 0, 0, 0, 0, 13181, 0, 0, 24874, 30385, +16073, 40505, 0, 37422, 9837, 22895, 41170, 41085, 0, 40180, +21838, 40181, 0, 0, 0, 0, 22715, 20054, 0, 0, +0, 0, 1385, 28087, 0, 0, 0, 23101, 20066, 0, +0, 0, 0, 0, 0, 0, 0, 35283, 37210, 0, +37451, 0, 40266, 0, 0, 18145, 0, 0, 0, 0, +0, 0, 21787, 0, 0, 0, 18072, 0, 17720, 0, +30055, 0, 1144, 20917, 24798, 0, 22540, 6266, 21559, 30004, +0, 12179, 0, 18090, 0, 0, 0, 15701, 28054, 0, +0, 0, 29709, 0, 0, 0, 0, 0, 20931, 38278, +0, 0, 29666, 8741, 6540, 0, 0, 13736, 0, 29284, +29425, 3504, 24743, 0, 26132, 0, 1999, 16962, 0, 19229, +0, 17698, 27411, 5481, 0, 3443, 20353, 0, 28967, 11910, +0, 21489, 0, 15103, 11118, 0, 18839, 35268, 0, 20675, +3044, 0, 0, 0, 28394, 0, 15393, 8267, 0, 3029, +0, 0, 28382, 0, 0, 24561, 0, 0, 0, 28085, +0, 37947, 0, 28385, 15672, 2018, 0, 18559, 20689, 0, +17521, 33897, 28386, 19413, 1386, 0, 0, 0, 0, 0, +0, 0, 29220, 0, 17491, 28709, 26361, 0, 24852, 6404, +11370, 25991, 0, 0, 0, 15891, 0, 0, 0, 21614, +0, 21615, 19154, 41262, 35751, 32352, 3020, 29449, 0, 0, +0, 0, 0, 0, 27595, 0, 20096, 0, 0, 20025, +0, 0, 0, 30377, 0, 996, 23920, 0, 20568, 0, +0, 18277, 31127, 0, 19768, 0, 29695, 0, 0, 20781, +0, 19746, 0, 0, 0, 0, 41307, 0, 30002, 15302, +30005, 0, 0, 0, 3110, 39349, 0, 3702, 29244, 0, +39824, 2714, 2719, 0, 0, 24366, 29978, 11709, 25098, 38621, +12950, 2726, 0, 11539, 0, 11651, 3509, 0, 11540, 10561, +37892, 0, 29856, 1422, 0, 11547, 37893, 0, 0, 0, +0, 20690, 8930, 0, 8931, 0, 9688, 0, 2748, 0, +25105, 25719, 15892, 22753, 0, 0, 25601, 0, 0, 0, +21713, 11108, 13916, 21353, 826, 0, 21291, 0, 1346, 10988, +16949, 0, 0, 40174, 20862, 0, 25011, 7785, 1152, 16976, +1668, 21383, 6180, 0, 0, 17488, 21362, 17492, 19268, 39013, +0, 0, 0, 12746, 35540, 0, 18470, 0, 35852, 0, +0, 0, 0, 5063, 6460, 0, 0, 0, 0, 35590, +0, 28609, 10154, 27403, 0, 0, 0, 0, 30324, 0, +28055, 35052, 7152, 0, 39223, 0, 0, 0, 0, 0, +0, 0, 6303, 12937, 0, 0, 0, 22131, 11647, 0, +2602, 26254, 18611, 0, 37414, 0, 34682, 30386, 24119, 19098, +37423, 0, 0, 29827, 30852, 0, 30023, 0, 0, 11916, +968, 24195, 0, 13882, 16283, 0, 39603, 37110, 0, 4472, +0, 0, 0, 0, 0, 0, 35274, 6022, 2604, 5837, +19409, 0, 5502, 30568, 21416, 16815, 1756, 31178, 0, 39172, +0, 0, 25530, 30270, 20182, 13832, 0, 10787, 0, 38571, +25605, 40803, 22090, 0, 20691, 0, 20185, 0, 23212, 20692, +0, 0, 39446, 600, 0, 20364, 0, 18847, 0, 23215, +3714, 0, 17001, 36023, 0, 0, 5507, 4841, 0, 6600, +19316, 34582, 0, 38365, 34583, 6601, 23059, 0, 0, 37784, +0, 0, 0, 12078, 19370, 13091, 21748, 24288, 0, 24289, +0, 0, 35285, 0, 28586, 0, 0, 0, 0, 12974, +0, 0, 2571, 0, 5241, 29041, 17383, 0, 0, 21438, +2754, 38139, 0, 0, 0, 0, 37468, 0, 41201, 1424, +0, 0, 3964, 0, 0, 0, 0, 0, 0, 0, +25158, 0, 25164, 34744, 2036, 0, 0, 0, 0, 4668, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +20055, 0, 15418, 0, 4674, 0, 0, 0, 0, 0, +0, 31719, 0, 19269, 0, 26896, 5762, 0, 0, 26897, +0, 0, 6075, 14194, 0, 37588, 8409, 0, 0, 0, +11858, 12199, 0, 22378, 0, 5465, 0, 1071, 0, 0, +22133, 28522, 0, 37521, 8567, 37522, 0, 0, 0, 0, +0, 12745, 0, 0, 0, 15560, 0, 0, 6220, 0, +0, 32236, 23555, 0, 25918, 0, 0, 0, 36300, 0, +0, 18445, 0, 0, 29005, 18450, 0, 0, 25348, 0, +0, 36296, 22892, 23054, 37599, 25493, 0, 7375, 0, 0, +0, 10156, 20036, 10997, 40795, 0, 18111, 14197, 25495, 0, +0, 0, 22896, 9470, 7127, 0, 0, 0, 0, 0, +0, 0, 0, 4671, 15104, 0, 0, 0, 0, 0, +0, 0, 33429, 0, 7101, 29218, 0, 34812, 0, 133, +11012, 31717, 0, 11013, 0, 27689, 17063, 0, 36024, 9211, +0, 28853, 0, 0, 0, 0, 0, 0, 25106, 40947, +17007, 0, 13558, 0, 0, 7295, 23103, 27699, 0, 13768, +18649, 17384, 2755, 0, 35089, 0, 0, 0, 0, 11648, +0, 0, 0, 10738, 5749, 24671, 14972, 0, 22634, 0, +0, 0, 15913, 0, 0, 31764, 29062, 0, 0, 33716, +0, 0, 0, 0, 0, 1457, 0, 0, 10328, 17494, +0, 0, 28091, 17753, 0, 0, 0, 0, 13884, 0, +0, 0, 0, 17385, 2756, 0, 0, 23341, 23350, 0, +0, 40800, 0, 40802, 0, 23385, 0, 23388, 40808, 0, +38536, 38538, 22006, 0, 14444, 0, 0, 34554, 0, 0, +10182, 20920, 0, 0, 0, 0, 0, 0, 34561, 0, +38734, 26992, 39517, 0, 0, 0, 0, 38405, 0, 0, +0, 0, 0, 0, 25498, 38406, 0, 36012, 20500, 34208, +0, 39859, 0, 16152, 32014, 0, 22684, 28534, 0, 35605, +0, 0, 33419, 38534, 0, 6754, 7026, 0, 0, 0, +36186, 0, 7031, 28103, 178, 4866, 0, 30130, 0, 30131, +32015, 0, 0, 4341, 0, 28104, 0, 0, 0, 0, +0, 0, 0, 12666, 23835, 41090, 38535, 37895, 38739, 0, +35534, 0, 0, 0, 0, 0, 34209, 37680, 0, 0, +0, 0, 0, 10454, 23620, 0, 0, 0, 2529, 0, +0, 0, 0, 21944, 0, 0, 0, 0, 11014, 0, +34704, 0, 24199, 2028, 23935, 13834, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 21364, 0, 0, +2834, 24315, 0, 38169, 0, 0, 36249, 33102, 0, 23389, +13210, 0, 0, 33546, 0, 38366, 0, 7042, 0, 0, +0, 41040, 35609, 0, 0, 0, 0, 39524, 17386, 0, +0, 17387, 36189, 0, 0, 17497, 0, 2757, 0, 15012, +0, 38003, 0, 0, 0, 0, 0, 0, 38539, 22673, +0, 18409, 0, 18410, 0, 0, 0, 0, 18417, 0, +0, 0, 0, 18432, 0, 0, 18438, 0, 19545, 0, +0, 39016, 0, 0, 0, 0, 0, 0, 8477, 9013, +25165, 4672, 13397, 0, 0, 0, 0, 0, 0, 2038, +0, 40358, 24564, 34745, 0, 0, 0, 0, 32792, 0, +11684, 24758, 0, 0, 0, 0, 18177, 0, 36185, 0, +0, 0, 22644, 0, 0, 0, 17496, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 6686, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +518, 0, 0, 0, 0, 0, 0, 38601, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 18974, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +27813, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 14806, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 36551, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 21806, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 4483, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 32329, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 17134, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 7518, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 28061, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 15598, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 3407, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 34009, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 23605, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 8959, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 12153, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 19101, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 35624, 0, 0, 0, 0, 0, 35380, +0, 0, 21068, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 31727, 0, 32725, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 14808, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 37697, 0, 15752, 0, 0, 18017, +0, 0, 0, 0, 0, 0, 21240, 0, 0, 2117, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 10013, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 7852, 0, 4485, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +14953, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +38745, 0, 0, 0, 0, 0, 2120, 27981, 0, 0, +0, 0, 0, 0, 11494, 0, 0, 0, 0, 0, +38609, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 14837, 0, 0, 0, 0, 0, 10066, 29, 0, +0, 0, 29084, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 33637, 10659, +0, 0, 0, 0, 0, 0, 0, 0, 7971, 0, +11680, 26867, 0, 0, 0, 23049, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 39390, 0, 0, 14854, 0, 0, 0, 21632, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 3625, 0, +29104 +}; + +/** + Convert a gb18030 code in uchars to the code + The byte sequence in src must be a gb18030 sequence + + @param[in] src gb18030 code in uchars + @param[in] srclen length of valid chars, should be 1, 2 or 4 only + @return the gb18030 code +*/ +static inline +uint gb18030_chs_to_code(const uchar *src, size_t srclen) +{ + uint r= 0; + + DBUG_ASSERT(srclen == 1 || srclen == 2 || srclen == 4); + + switch (srclen) + { + case 1: + r= src[0]; + break; + case 2: + r= (src[0] << 8) + src[1]; + break; + case 4: + r= (src[0] << 24) + (src[1] << 16) + (src[2] << 8) + src[3]; + break; + default: + DBUG_ASSERT(0); + } + + return r; +} + +/** + Convert a gb18030 code to a sequence of chars. If the code number + is too large to store, the tailing bytes will be cut off + + @param[out] dst dest to store the result + @param[in] dstlen valid length of dest + @param[in] code gb18030 code + @return the length of dest used to store the gb18030 chars +*/ +static size_t +code_to_gb18030_chs(uchar *dst, size_t dstlen, uint code) +{ + size_t i, len= 0; + uchar *dst_end= dst + dstlen; + uchar r[4]; + for (i= 0; code != 0; i++, code>>= 8) + r[i]= (uchar) (code & 0xFF); + + DBUG_ASSERT(i == 1 || i == 2 || i == 4); + for (; i > 0 && dst < dst_end; --i, ++len) + *dst++= r[i - 1]; + + return len; +} + +/** + Calculate the 4-byte GB18030 code from a diff value + + @param[out] dst dest to store the gb18030 code in bytes + @param[in] destlen valid length of dest + @param[in] diff the diff between gb18030 code and GB+81308130 + @retval 4 if the diff is a valid value and there is enough + space in dst + 0 otherwise +*/ +static uint +diff_to_gb18030_4(uchar *dst, uint dstlen, uint diff) +{ + DBUG_ASSERT(dstlen >= 4); + + if (diff > MAX_GB18030_DIFF || dstlen < 4) + return 0; + + dst[3]= (uchar) (diff % 10) + MIN_MB_EVEN_BYTE_4; + diff/= 10; + dst[2]= (uchar) (diff % 126) + MIN_MB_ODD_BYTE; + diff/= 126; + dst[1]= (uchar) (diff % 10) + MIN_MB_EVEN_BYTE_4; + dst[0]= (uchar) (diff / 10) + MIN_MB_ODD_BYTE; + + return 4; +} + +/** + Calculate the diff between the 4-byte gb18030 code and GB+81308130 + + @param[in] code 4-byte gb18030 code + @return the diff +*/ +static uint +gb18030_4_code_to_diff(uint code) +{ + uint diff= 0; + + DBUG_ASSERT(is_mb_odd((code >> 24) & 0xFF)); + diff+= ((code >> 24) & 0xFF) - MIN_MB_ODD_BYTE; + diff*= 10; + DBUG_ASSERT(is_mb_even_4((code >> 16) & 0xFF)); + diff+= ((code >> 16) & 0xFF) - MIN_MB_EVEN_BYTE_4; + diff*= 126; + DBUG_ASSERT(is_mb_odd((code >> 8) & 0xFF)); + diff+= ((code >> 8) & 0xFF) - MIN_MB_ODD_BYTE; + diff*= 10; + DBUG_ASSERT(is_mb_even_4(code & 0xFF)); + diff+= (code & 0xFF) - MIN_MB_EVEN_BYTE_4; + + return diff; +} + +/** + Calculate the diff between the 4-byte gb18030 code in bytes + and GB+81308130 + + @param[in] src 4-byte gb18030 code in bytes + @return the diff +*/ +static inline uint +gb18030_4_chs_to_diff(const uchar *src) +{ + return (src[0] - MIN_MB_ODD_BYTE) * 12600 + + (src[1] - MIN_MB_EVEN_BYTE_4) * 1260 + + (src[2] - MIN_MB_ODD_BYTE) * 10 + + (src[3] - MIN_MB_EVEN_BYTE_4); +} + +/** + Judge if a sequence of chars is in gb18030 multi-bytes code + + @param[in] cs charset + @param[in] p start of gb18030 code + @param[in] e end of gb18030 code + @retval 2 or 4 if it is gb18030 mluti-bytes code, + 0 if not +*/ +static uint +my_ismbchar_gb18030(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *p, const char *e) +{ + DBUG_ASSERT(e > p); + + if (e - p <= 1 || !is_mb_odd(p[0])) + return 0; + + if (is_mb_even_2(p[1])) + return 2; + else if (e - p > 3 && is_mb_even_4(p[1]) && + is_mb_odd(p[2]) && is_mb_even_4(p[3])) + return 4; + + return 0; +} + +/** + Get the length of a possible gb18030 code according to its first byte + or first two bytes + + @param[in] cs charset + @param[in] c first byte or first two bytes of the code + @retval 1/2/4 accordingly if the leading byte(s) indicate + the code would be gb18030, otherwise 0 +*/ +static uint +my_mbcharlen_gb18030(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), uint c) +{ + if (c <= 0xFF) + /* We use is_mb_odd instead of is_mb_1 here, because in other cs, + they return 1 for every char that doesn't represent a leading byte + of multi-byte code point, including invalid 1-byte char. */ + return !is_mb_odd(c); + if (c > 0xFFFF || !is_mb_odd((c >> 8) & 0xFF)) + return 0; + if (is_mb_even_2((c & 0xFF))) + return 2; + if (is_mb_even_4((c & 0xFF))) + return 4; + + return 0; +} + +/** + Convert the Unicode code to its gb18030 code in bytes + + @param[in] cs charset + @param[in] wc Unicode code + @param[out] s start of gb18030 code output + @param[out] e end of gb18030 code output + @retval 1) the length of gb18030 code(1/2/4) if convertible, + 2) MY_CS_TOOSMALL..MY_CS_TOOSMALL4 if the output + space is too small + 3) MY_CS_ILUNI if we can't encode unicode to gb18030 +*/ +static int +my_wc_mb_gb18030_chs(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + uint idx= 0; + uint len; + uint16 cp= 0; + + if (s >= e) + return MY_CS_TOOSMALL; + + if (wc < 0x80) + { + /* [0x00, 0x7F] */ + s[0]= (uchar) wc; + return 1; + } + + len= 2; + if (wc < 0x9FA6) + { + /* [0x80, 0x9FA6) */ + cp= tab_uni_gb18030_p1[wc - 0x80]; + if ((uint)((cp >> 8) & 0xFF) < MIN_MB_ODD_BYTE) + { + idx= cp; + len= 4; + } + } + else if (wc <= 0xD7FF) + { + /* [0x9FA6, 0xD7FF] */ + idx= wc - 0x5543; + len= 4; + } + else if (wc < 0xE000) + { + /* [0xD800, 0xE000) */ + return MY_CS_ILUNI; + } + else if (wc < 0xE865) + { + /* [0xE000, 0xE865) */ + cp= tab_uni_gb18030_p2[wc - 0xE000]; + if ((uint)((cp >> 8) & 0xFF) < MIN_MB_ODD_BYTE) + { + idx= cp + UNI2_TO_GB4_DIFF; + len= 4; + } + } + else if (wc <= 0xF92B) + { + /* [0xE865, 0xF92B] */ + idx= wc - 0x6557; + len= 4; + } + else if (wc <= 0XFFFF) + { + /* (0xF92B, 0xFFFF] */ + cp= tab_uni_gb18030_p2[wc - 0xE000 - 4295]; + if ((uint)((cp >> 8) & 0xFF) < MIN_MB_ODD_BYTE) + { + idx= cp + UNI2_TO_GB4_DIFF; + len= 4; + } + } + else if (wc <= 0x10FFFF) + { + /* [0x10000, 0x10FFFF] */ + idx= wc + 0x1E248; + len= 4; + } + else + { + /* Other */ + return MY_CS_ILUNI; + } + + switch (len) + { + uint err; + case 2: + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + s[0]= (uchar) ((cp >> 8) & 0xFF); + s[1]= (uchar) (cp & 0xFF); + + return len; + case 4: + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + err= diff_to_gb18030_4(s, 4, idx); + DBUG_ASSERT(err != 0); + + return err != 0 ? len : MY_CS_ILUNI; + } + + DBUG_ASSERT(0); + return MY_CS_ILUNI; +} + +/** + Convert a gb18030 code in bytes to unicode code + + @param[in] cs charset + @param[out] pwc unicode code + @param[in] s start of gb18030 code + @param[in] e end of gb18030 code + @retval 1) the length of converted gb18030 code if convertible + 2) MY_CS_TOOSMALL..MY_CS_TOOSMALL4 if + the gb18030 code is too short + 3) MY_CS_ILSEQ if gb18030 code is + wrong by sequence +*/ +static int +my_mb_wc_gb18030(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + uint idx= 0; + uint cp= 0; + + if (s >= e) + return MY_CS_TOOSMALL; + + if (is_mb_1(s[0])) + { + /* [0x00, 0x7F] */ + *pwc= s[0]; + return 1; + } + else if (!is_mb_odd(s[0])) + return MY_CS_ILSEQ; + + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + if (is_mb_even_2(s[1])) + { + idx= (s[0] - MIN_MB_ODD_BYTE) * 192 + (s[1] - MIN_MB_EVEN_BYTE_2); + *pwc= tab_gb18030_2_uni[idx]; + + return (*pwc == 0) ? MY_CS_ILSEQ : 2; + } + else if (is_mb_even_4(s[1])) + { + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + if (!(is_mb_odd(s[2]) && is_mb_even_4(s[3]))) + return MY_CS_ILSEQ; + + idx= gb18030_4_chs_to_diff(s); + + if (idx < 0x334) + /* [GB+81308130, GB+8130D330) */ + cp= tab_gb18030_4_uni[idx]; + else if (idx <= 0x1D20) + /* [GB+8130D330, GB+8135F436] */ + cp= idx + 0x11E; + else if (idx < 0x2403) + /* (GB+8135F436, GB+8137A839) */ + cp= tab_gb18030_4_uni[idx - 6637]; + else if (idx <= 0x2C40) + /* [GB+8137A839, GB+8138FD38] */ + cp= idx + 0x240; + else if (idx < 0x4A63) + /* (GB+8138FD38, GB+82358F33) */ + cp= tab_gb18030_4_uni[idx - 6637 - 2110]; + else if (idx <= 0x82BC) + /* [GB+82358F33, GB+8336C738] */ + cp= idx + 0x5543; + else if (idx < 0x830E) + /* (GB+8336C738, GB+8336D030) */ + cp= tab_gb18030_4_uni[idx - 6637 - 2110 - 14426]; + else if (idx <= 0x93D4) + /* [GB+8336D030, GB+84308534] */ + cp= idx + 0x6557; + else if (idx < 0x94BE) + /* (GB+84308534, GB+84309C38) */ + cp= tab_gb18030_4_uni[idx - 6637 - 2110 - 14426 - 4295]; + else if (idx <= 0x98C3) + /* [GB+84309C38, GB+84318537] */ + cp= idx + 0x656C; + else if (idx <= 0x99fb) + /* (GB+84318537, GB+8431A439] */ + cp= tab_gb18030_4_uni[idx - 6637 - 2110 - 14426 - 4295 - 1030]; + else if (idx >= 0x2E248 && idx <= 0x12E247) + /* [GB+90308130, GB+E3329A35] */ + cp= idx - 0x1E248; + else if ((idx > 0x99fb && idx < 0x2E248) || + (idx > 0x12E247 && idx <= 0x18398F)) + /* (GB+8431A439, GB+90308130) and (GB+E3329A35, GB+FE39FE39) */ + cp= 0x003F; + else + DBUG_ASSERT(0); + + *pwc= cp; + return 4; + } + else + return MY_CS_ILSEQ; +} + +/** + Get the well formed length of a GB18030 string + + @param[in] cs charset + @param[in] b start of gb18030 code + @param[in] e end of gb18030 code + @param[in] pos max chars we care about + @param[out] error 0 if every gb18030 code we get is correct, otherwise 1 + @return the length of all well formed bytes +*/ +static size_t +my_well_formed_len_gb18030(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + const char *emb= e - 1; + + *error= 0; + + while (pos-- && b < e) + { + if (is_mb_1((uchar) b[0])) + ++b; + else if (b < emb && is_mb_odd(b[0]) && is_mb_even_2(b[1])) + b+= 2; + else if (b + 2 < emb && is_mb_odd(b[0]) && is_mb_even_4(b[1]) && + is_mb_odd(b[2]) && is_mb_even_4(b[3])) + b+= 4; + else + { + *error= 1; + break; + } + } + + return (size_t) (b - b0); +} + +/** + Get the case info of one gb18030 code in bytes + + @param[in] cs charset + @param[in] src start byte of gb18030 code + @param[in] srclen length in bytes of gb18030 code + @return the case info(MY_UNICASE_CHARACTER) of given gb18030 code +*/ +static const MY_UNICASE_CHARACTER* +get_case_info(const CHARSET_INFO *cs, const uchar *src, size_t srclen) +{ + const MY_UNICASE_CHARACTER *p= NULL; + + DBUG_ASSERT(cs != NULL); + + switch (srclen) + { + uint diff, code; + case 1: + return &cs->caseinfo->page[0][(uchar) src[0]]; + case 2: + if (src[0] < ((MIN_2_BYTE_UNICASE >> 8) & 0xFF) || + src[0] > ((MAX_2_BYTE_UNICASE >> 8) & 0xFF)) + return NULL; + + p= cs->caseinfo->page[(uchar) src[0]]; + return p ? &p[(uchar) src[1]] : NULL; + case 4: + diff= gb18030_4_chs_to_diff(src); + code= 0; + + if (diff < MIN_2_BYTE_UNICASE - UNICASE_4_BYTE_OFFSET) + code= diff + UNICASE_4_BYTE_OFFSET; + else if (diff >= MIN_3_BYTE_FROM_UNI && diff <= MAX_3_BYTE_FROM_UNI) + code= (diff & 0xFFFF); + else + return NULL; + + p= cs->caseinfo->page[(code >> 8) & 0xFF]; + return p ? &p[code & 0xFF] : NULL; + } + + DBUG_ASSERT(0); + return NULL; +} + +/** + Convert the code in one MY_UNICASE_CHARACTER to real gb18030 code + + @param[in] code code in one MY_UNICASE_CHARACTER + @return gb18030 code +*/ +static uint +case_info_code_to_gb18030(uint code) +{ + if ((code >= MIN_2_BYTE_UNICASE && code <= MAX_2_BYTE_UNICASE) || + code < UNICASE_4_BYTE_OFFSET) + return code; + else + { + uint r; + uchar gbchs[4]; + + if (code >= UNICASE_4_BYTE_OFFSET && code < MIN_2_BYTE_UNICASE) + code-= UNICASE_4_BYTE_OFFSET; + else if (code >= (MIN_3_BYTE_FROM_UNI & 0xFFFF) && + code <= (MAX_3_BYTE_FROM_UNI & 0xFFFF)) + code+= (MIN_3_BYTE_FROM_UNI & 0xFF0000); + else + DBUG_ASSERT(0); + + r= diff_to_gb18030_4(gbchs, 4, code); + DBUG_ASSERT(r == 4); + + return r == 4 ? gb18030_chs_to_code(gbchs, 4) : 0; + } +} + +/** + Get the casefolded code of a given gb18030 code + + @param[in] cs charset + @param[in] src start byte of gb18030 code + @param[in] srclen length of gb18030 code in bytes + @param[in] is_upper TRUE if we want capital letter + FALSE if small letter is required + @retval the gb18030 code according to is_upper + 0 if no upper-case or lower-case exists +*/ +static uint +get_casefolded_code(const CHARSET_INFO *cs, const uchar *src, + size_t srclen, size_t is_upper) +{ + const MY_UNICASE_CHARACTER *ch= get_case_info(cs, src, srclen); + + DBUG_ASSERT(srclen == 1 || srclen == 2 || srclen == 4); + + return ch ? case_info_code_to_gb18030(is_upper ? ch->toupper : ch->tolower) : + 0; +} + +/** + Get the casefolded gb18030 codes of a given sequence of gb18030 codes + Store the casefolded result to a specified dest + + @param[in] cs charset + @param[in] src start byte of given sequence of gb18030 codes + @param[in] srclen length of the sequence + @param[out] det start byte of the output of casefolded codes + @param[out] dstlen length of the result array + @param[in] map the LOWER map or the UPPER map of gb18030 + @param[in] is_upper TRUE if we want capital letter + FALSE if small letter is required + @return the length of result +*/ +static size_t +my_casefold_gb18030(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen, const uchar *map, + my_bool is_upper) +{ + char *srcend= src + srclen; + char *dst0= dst; + char *dst_end= dst + dstlen; + + while (src < srcend) + { + uint mblen= my_ismbchar_gb18030(cs, src, srcend); + + DBUG_ASSERT(dst < dst_end); + if (mblen) + { + uint code= get_casefolded_code(cs, (uchar *) src, mblen, is_upper); + + if (code != 0) + { + size_t mblen_dst= code_to_gb18030_chs((uchar *) dst, dst_end - dst, + code); + + DBUG_ASSERT(dst + mblen_dst <= dst_end); + src+= mblen; + dst+= mblen_dst; + } + else + { + DBUG_ASSERT(mblen == 2 || mblen == 4); + DBUG_ASSERT(dst + mblen <= dst_end); + + if (mblen == 4) + { + *dst++= *src++; + *dst++= *src++; + } + + *dst++= *src++; + *dst++= *src++; + } + } + else + *dst++= (char) map[(uchar) (*src++)]; + } + + return (size_t) (dst - dst0); +} + +/** + Convert a gb18030 string to a corresponding lower-case gb18030 string + + @param[in] cs charset + @param[in] src start byte of given gb18030 code + @param[in] srclen length of given gb18030 code + @param[out] dst start byte of casedown gb18030 code + @param[in] dstlen length of the result array + @return length of the casedown gb18030 code +*/ +static size_t +my_casedn_gb18030(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + DBUG_ASSERT(cs != NULL); + DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); + return my_casefold_gb18030(cs, src, srclen, dst, dstlen, cs->to_lower, 0); +} + +/** + Convert a gb18030 string to a corresponding up-case gb18030 string + + @param[in] cs charset + @param[in] src start byte of given gb18030 code + @param[in] srclen length of given gb18030 code + @param[out] dst start byte of caseup gb18030 code + @param[in] dstlen length of the result array + @return length of the caseup gb18030 code +*/ +static size_t +my_caseup_gb18030(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + DBUG_ASSERT(cs != NULL); + DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply); + return my_casefold_gb18030(cs, src, srclen, dst, dstlen, cs->to_upper, 1); +} + +/** + Get the casedown gb18030 code of a given gb18030 code + It's only for UCA, because the caseinfo for UCA is different + + @param[in] cs charset + @param[in] src start byte of given gb18030 code + @param[in] srclen length of given gb18030 code + @param[out] dst start byte of casedown gb18030 code + @param[in] dstlen length of the result array + @return length of the casedown gb18030 code +*/ +static size_t +my_casedn_gb18030_uca(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + my_wc_t wc; + const MY_UNICASE_INFO *uni_plane; + int srcres, dstres; + char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; + + DBUG_ASSERT(cs != NULL); + DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); + + uni_plane= cs->caseinfo; + + while ((src < srcend) && + (srcres= my_mb_wc_gb18030(cs, &wc, (uchar *) src, + (uchar *) srcend)) > 0) + { + if (wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(wc >> 8) & 0xFF])) + wc= page[wc & 0xFF].tolower; + } + + if ((dstres= my_wc_mb_gb18030_chs(cs, wc, (uchar *) dst, + (uchar *) dstend)) <= 0) + break; + + src+= srcres; + dst+= dstres; + } + + return (size_t) (dst - dst0); +} + +/** + Get the caseup gb18030 code of a given gb18030 code + It's only for UCA, because the caseinfo for UCA is different + + @param[in] cs charset + @param[in] src start byte of given gb18030 code + @param[in] srclen length of given gb18030 code + @param[out] dst start byte of caseup gb18030 code + @param[in] dstlen length of the result array + @return length of the caseup gb18030 code +*/ +static size_t +my_caseup_gb18030_uca(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + my_wc_t wc; + const MY_UNICASE_INFO *uni_plane; + int srcres, dstres; + char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; + + DBUG_ASSERT(cs != NULL); + DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply); + + uni_plane= cs->caseinfo; + + while ((src < srcend) && + (srcres= my_mb_wc_gb18030(cs, &wc, (uchar *) src, + (uchar *) srcend)) > 0) + { + if (wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(wc >> 8) & 0xFF])) + wc= page[wc & 0xFF].toupper; + } + + if ((dstres= my_wc_mb_gb18030_chs(cs, wc, (uchar *) dst, + (uchar *) dstend)) <= 0) + break; + + src+= srcres; + dst+= dstres; + } + + return (size_t) (dst - dst0); +} + +/** + Get the weight for a multi-byte gb18030 code if the code point represents + a Chinese character defined in collation PINYIN in CLDR24 + The result will be PINYIN_WEIGHT_BASE + a none-zero seq NO. for the code + + if not, result would be PINYIN_WEIGHT_BASE + + @param[in] code the multi-byte gb18030 code + @retval a non-zero weight if it's a Chinese character with PINYIN, + which shall be PINYIN_WEIGHT_BASE + none-zero seq NO. + otherwise, PINYIN_WEIGHT_BASE +*/ +static uint +get_weight_if_chinese_character(uint code) +{ + if (code >= PINYIN_2_BYTE_START && code <= PINYIN_2_BYTE_END) + { + uint idx= (((code >> 8) & 0xFF) - MIN_MB_ODD_BYTE) * 0xBE + + (code & 0xFF) - MIN_MB_EVEN_BYTE_2; + if ((code & 0xFF) > 0x7F) + idx-= 0x01; + + return PINYIN_WEIGHT_BASE + gb18030_2_weight_py[idx]; + } + else if (code >= PINYIN_4_BYTE_1_START && code <= PINYIN_4_BYTE_1_END) + { + uint idx= gb18030_4_code_to_diff(code) - PINYIN_4_1_DIFF; + return PINYIN_WEIGHT_BASE + gb18030_4_weight_py_p1[idx]; + } + else if (code >= PINYIN_4_BYTE_2_START && code <= PINYIN_4_BYTE_2_END) + { + uint idx= gb18030_4_code_to_diff(code) - PINYIN_4_2_DIFF; + return PINYIN_WEIGHT_BASE + gb18030_4_weight_py_p2[idx]; + } + + return PINYIN_WEIGHT_BASE; +} + +/** + Get the weight for a multi-byte gb18030 code, we get the weight by + the case up form of gb18030 code if exists + + For any Chinese character, which has non-zero seq NO. defined in + gb18030_2_weight_py/gb18030_4_weight_py_p1/gb18030_4_weight_py_p2 + according to its gb18030 code, the final weight shall be + 0xFFA00000+(seq No.) + + For any non-Chinese gb18030 character C, let C'=C or UPPER(C) if exists. + So C' would be 2 bytes or 4 bytes. + + 1. For any C' represented in 2 bytes, the final weight shall be C' itself. + For example: + GB+A2F1=UPPER(GB+A2A1), which is a 2-byte non-Chinese character. + So C' would be GB+A2F1 for both GB+A2A1 and GB+A2F1, and both + final weights of GB+A2A1 and GB+A2F1 are 0xA2F1 + + 2. For any C' represented in 4 bytes, the final weight shall be + COMMON_WEIGHT_BASE+diff(C'). We get the diff by gb18030_4_code_to_diff + For example: + The character GB+9030E833=UPPER(GB+9030EC33), which is a 4-byte + non-Chinese character. So the C' would be GB+9030E833 for both + GB+9030E833 and GB+9030EC33, and diff(C') would be 0x2E651 in this case. + Both final weights of GB+9030E833 and GB+9030EC33 are + 0xFF000000+0x2E651=0xFF02E651 + + The weight of the maximum code point GB+FE39FE39 is defined as 0xFFFFFFFF + + @param[in] cs charset + @param[in] src the first byte of multi-byte gb18030 code + @param[in] mblen the length of multi-bytes gb18030 code + @return the weight of the given gb18030 code point +*/ +static uint +get_weight_for_mbchar(const CHARSET_INFO *cs, const uchar *src, size_t mblen) +{ + uint weight, caseup_code, code= gb18030_chs_to_code(src, mblen); + + DBUG_ASSERT(mblen == 2 || mblen == 4); + + /* Make sure the max 4-byte gb18030 code has the max weight */ + if (code == 0xFE39FE39) + return 0xFFFFFFFF; + + weight= get_weight_if_chinese_character(code); + if (weight > PINYIN_WEIGHT_BASE) + return weight; + + caseup_code= get_casefolded_code(cs, src, mblen, 1); + if (caseup_code == 0) + caseup_code= code; + + weight= (caseup_code <= 0xFFFF) ? caseup_code : + COMMON_WEIGHT_BASE + gb18030_4_code_to_diff(caseup_code); + + return weight; +} + +/** + Get the weight of a given gb18030 code + We can assert the code must be a valid gb18030 code + + @param[in] cs charset + @param[in] s code chars + @param[in] s_len length of the code + @return weight the weight of the code +*/ +static uint +get_weight_for_gb18030_chs(const CHARSET_INFO *cs, const char *s, size_t s_len) +{ + DBUG_ASSERT(s_len == 1 || s_len == 2 || s_len == 4); + + if (s_len == 1) + { + DBUG_ASSERT(is_mb_1(*s)); + return cs->sort_order[(uchar) *s]; + } + + return get_weight_for_mbchar(cs, (const uchar *) s, s_len); +} + +/** + Get the code value and length of next code in given gb18030 string + + @param[in] cs charset + @param[in] s string + @param[in] e end of string + @param[out] code the code value of the next code, be valid when retval>0 + @retval the length of the next code, if the code is valid + 0 if the given string is empty or the code is invalid +*/ +static size_t +get_code_and_length(const CHARSET_INFO *cs, const char *s, + const char *e, size_t *code) +{ + size_t len; + + if (s >= e) + return 0; + + if (is_mb_1(s[0])) + { + *code= s[0]; + return 1; + } + + if ((len= my_ismbchar_gb18030(cs, s, e)) == 0) + return 0; + + DBUG_ASSERT(len == 2 || len == 4); + *code= gb18030_chs_to_code((const uchar *) s, len); + return len; +} + +/** + Internal func to compare two strings according to gb18030 + every gb18030 code should compare by its upper-case form + + @param[in] cs charset + @param[in/out] s_res pointer to the start byte of first gb18030 code + string, return the first byte unchecked + @param[in] s_length length of the first string + @param[in/out] t_res pointer to the start byte of second gb18030 code + string, return the first byte unchecked + @param[in] t_length length of the second string + @retval 0 if the strings are equal + >0 if the first string is bigger + <0 if the second string is bigger +*/ +static int +my_strnncoll_gb18030_internal(const CHARSET_INFO *cs, + const uchar **s_res, size_t s_length, + const uchar **t_res, size_t t_length) +{ + const uchar *s= *s_res; + const uchar *t= *t_res; + const uchar *se= s + s_length; + const uchar *te= t + t_length; + + DBUG_ASSERT(cs != NULL); + + while (s < se && t < te) + { + uint mblen_s= my_ismbchar_gb18030(cs, (char *) s, (char *) se); + uint mblen_t= my_ismbchar_gb18030(cs, (char *) t, (char *) te); + + if (mblen_s > 0 && mblen_t > 0) + { + uint code_s= get_weight_for_mbchar(cs, s, mblen_s); + uint code_t= get_weight_for_mbchar(cs, t, mblen_t); + + if (code_s != code_t) + return code_s > code_t ? 1 : -1; + + s+= mblen_s; + t+= mblen_t; + } + else if (mblen_s == 0 && mblen_t == 0) + { + uchar so= cs->sort_order[*s++], to= cs->sort_order[*t++]; + if (so != to) + return (int) (so - to); + } + else + return mblen_s == 0 ? -1 : 1; + } + + *s_res= s; + *t_res= t; + return 0; +} + +/** + Compare two strings according to gb18030 + every gb18030 code should compare by its caseup form + + @param[in] cs charset + @param[in] s start of the first string + @param[in] s_length length of the first string + @param[in] t start of the second string + @param[in] t_length length of the second string + @param[in] t_is_prefix TRUE if t is prefix, otherwise FALSE + @retval 0 if two strings are equal + 1 if the first string is bigger + -1 if the second string is bigger +*/ +static int +my_strnncoll_gb18030(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, size_t s_length, + const uchar *t, size_t t_length, + my_bool t_is_prefix) +{ + int res= my_strnncoll_gb18030_internal(cs, &s, s_length, &t, t_length); + + if (res != 0) + return res; + else if (t_is_prefix && s_length > t_length) + return 0; + else + return (int) (s_length - t_length); +} + +/** + Compare two strings according to gb18030, but ignore trailing spaces + every gb18030 code should compare by its caseup form + + @param[in] cs charset + @param[in] s start of the first string + @param[in] s_length length of the first string + @param[in] t start of the second string + @param[in] t_length length of the second string + @param[in] diff_if_only_endspace_difference + TRUE if we treat two strings with only different + trailing spaces as different, otherwise FALSE + @retval 0 if two strings are equal + 1 if the first string is bigger + -1 if the second string is bigger +*/ +static int +my_strnncollsp_gb18030(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, size_t s_length, + const uchar *t, size_t t_length, + my_bool diff_if_only_endspace_difference) +{ + const uchar *se= s + s_length, *te= t + t_length; + int res= my_strnncoll_gb18030_internal(cs, &s, s_length, &t, t_length); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + if (!res && (s != se || t != te)) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Always assume s is bigger than t */ + + /* Put longer key in s */ + if (s_length < t_length) + { + s= t; + se= te; + swap= -1; + res= -res; + } + + for (; s < se; s++) + { + if (*s != 0x20) + return (*s < 0x20) ? -swap : swap; + } + } + + return res; +} + +/** + Make a sort key suitable for memcmp() corresponding to gb18030 + Sort accroding to UPPER() for non-Chinese chars, and PINYIN + for Chinese chars + + @param[in] cs charset + @param[out] dst first byte of the result array + @param[out] dstlen the length of the result array + @param[in] nweights how many gb18030 codes we care about + @param[in] src first byte of the given gb18030 code + @param[in] srclen length of the given gb18030 code + @param[in] flags flags for strxfrm + @return the length of the sort key +*/ +size_t +my_strnxfrm_gb18030(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + uchar *ds= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order; + + DBUG_ASSERT(cs != NULL); + sort_order= cs->sort_order; + + for (; dst < de && src < se && nweights; nweights--) + { + uint mblen= cs->cset->ismbchar(cs, (const char *) src, (const char *) se); + + if (mblen > 0) + { + uint weight= get_weight_for_mbchar(cs, src, mblen); + dst+= code_to_gb18030_chs(dst, de - dst, weight); + src+= mblen; + } + else + { + *dst++= sort_order ? sort_order[*src] : *src; + ++src; + } + } + + return my_strxfrm_pad_desc_and_reverse(cs, ds, dst, de, nweights, flags, 0); +} + +/** + Compare 0-terminated gb18030 strings + + @param[in] cs charset + @param[in] s first 0-terminated string to compare + @param[in] t second 0-terminated string to compare + @retval negative number if s < t + positive number if s > t + 0 if the strings are equal +*/ +static int +my_strcasecmp_gb18030(const CHARSET_INFO *cs, const char *s, const char *t) +{ + size_t s_length= strlen(s); + size_t t_length= strlen(t); + int res= my_strnncoll_gb18030_internal(cs, (const uchar **) &s, s_length, + (const uchar **) &t, t_length); + + return res ? res : (int) (s_length - t_length); +} + +/** + Convert a Unicode code to gb18030 code + + @param[in] cs charset + @param[in] unicode unicode code + @return gb18030 code +*/ +static uint +unicode_to_gb18030_code(const CHARSET_INFO *cs, int unicode) +{ + uchar dst[4]; + uint dst_len; + int res; + + DBUG_ASSERT(cs != NULL); + + res= cs->cset->wc_mb(cs, unicode, dst, dst + 4); + + DBUG_ASSERT(res == 1 || res == 2 || res == 4); + + dst_len= (uint) res; + return gb18030_chs_to_code(dst, dst_len); +} + +/** + Compare string against string with wildcard + + @param[in] cs charset + @param[in] str string + @param[in] str_end end of the string + @param[in] wildstr string with wildcard + @param[in] wildend end of the string with wildcard + @param[in] escape escape char, which is a gb18030 code + @param[in] w_one wild one char, which is a gb18030 code + @param[in] w_many wild many char, which is a gb18030 code + @return 0 if matched + -1 if not matched with wildcard + 1 if matched with wildcard +*/ +static int +my_wildcmp_gb18030_impl(const CHARSET_INFO *cs, + const char *str, const char*str_end, + const char *wildstr, const char *wildend, + uint escape, uint w_one, uint w_many, + int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + size_t s_gb, w_gb; + size_t s_len, w_len; + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + + while (wildstr != wildend) + { + while (1) + { + my_bool escaped= 0; + if ((w_len= get_code_and_length(cs, wildstr, wildend, &w_gb)) == 0) + return 1; + + if (w_gb == w_many) + { + result= 1; /* Found an anchor char */ + break; + } + + wildstr+= w_len; + if (w_gb == escape && wildstr < wildend) + { + if ((w_len= get_code_and_length(cs, wildstr, wildend, &w_gb)) == 0) + return 1; + + wildstr+= w_len; + escaped= 1; + } + + if ((s_len= get_code_and_length(cs, str, str_end, &s_gb)) == 0) + return 1; + str+= s_len; + + if (!escaped && w_gb == w_one) + { + result= 1; /* Found an anchor char */ + } + else + { + s_gb= get_weight_for_gb18030_chs(cs, str - s_len, s_len); + w_gb= get_weight_for_gb18030_chs(cs, wildstr - w_len, w_len); + if (s_gb != w_gb) + return 1; /* No match */ + } + + if (wildstr == wildend) + return (str != str_end); /* Match if both are at end */ + } + + if (w_gb == w_many) + { /* Found w_many */ + /* Remove any '%' and '_' from the wild search string */ + for ( ; wildstr != wildend ; ) + { + if ((w_len= get_code_and_length(cs, wildstr, wildend, &w_gb)) == 0) + return 1; + + if (w_gb == w_many) + { + wildstr+= w_len; + continue; + } + + if (w_gb == w_one) + { + wildstr+= w_len; + + if ((s_len= get_code_and_length(cs, str, str_end, &s_gb)) == 0) + return 1; + str+= s_len; + continue; + } + break; /* Not a wild character */ + } + + if (wildstr == wildend) + return 0; /* OK if w_many is last */ + + if (str == str_end) + return -1; + + if ((w_len= get_code_and_length(cs, wildstr, wildend, &w_gb)) == 0) + return 1; + wildstr+= w_len; + + if (w_gb == escape) + { + if (wildstr < wildend) + { + if ((w_len= get_code_and_length(cs, wildstr, wildend, &w_gb)) == 0) + return 1; + wildstr+= w_len; + } + } + + while (1) + { + /* Skip until the first character from wildstr is found */ + while (str != str_end) + { + if ((s_len= get_code_and_length(cs, str, str_end, &s_gb)) == 0) + return 1; + + s_gb= get_weight_for_gb18030_chs(cs, str, s_len); + w_gb= get_weight_for_gb18030_chs(cs, wildstr - w_len, w_len); + if (s_gb == w_gb) + break; + + str+= s_len; + } + + if (str == str_end) + return -1; + + str+= s_len; + + result= my_wildcmp_gb18030_impl(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, + recurse_level + 1); + if (result <= 0) + return result; + } + } + } + + return (str != str_end ? 1 : 0); +} + +/** + Compare string against string with wildcard + + @param[in] cs charset + @param[in] str string + @param[in] str_end end of the string + @param[in] wildstr string with wildcard + @param[in] wildend end of the string with wildcard + @param[in] escape escape char, which is a Unicode code + @param[in] w_one wild one char, which is a Unicode code + @param[in] w_many wild many char, which is a Unicode code + @return 0 if matched + -1 if not matched with wildcard + 1 if matched with wildcard +*/ +static int +my_wildcmp_gb18030(const CHARSET_INFO *cs, + const char *str, const char*str_end, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many) +{ + uint escape_gb, w_one_gb, w_many_gb; + + escape_gb= unicode_to_gb18030_code(cs, escape); + w_one_gb= unicode_to_gb18030_code(cs, w_one); + w_many_gb= unicode_to_gb18030_code(cs, w_many); + + return my_wildcmp_gb18030_impl(cs, str, str_end, + wildstr, wildend, + escape_gb, w_one_gb, w_many_gb, 1); +} + +/** + Calculate hash value for given gb18030 string + + @param[in] cs charset + @param[in] s string + @param[in] slen the length of string + @param[in/out] n1 n1 + @param[in/out] n2 n2 +*/ +static void +my_hash_sort_gb18030(const CHARSET_INFO *cs, const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + const uchar *e= s + slen; + ulong tmp1, tmp2; + size_t len; + size_t s_gb; + uint ch; + + /* Skip trailing spaces */ + while (e > s && e[-1] == 0x20) + e--; + + tmp1= *n1; + tmp2= *n2; + + while ((len= get_code_and_length(cs, (const char *) s, + (const char *) e, &s_gb)) != 0) + { + s_gb= get_weight_for_gb18030_chs(cs, (const char *) s, len); + + ch= (s_gb & 0xFF); + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (s_gb >> 8) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (s_gb >> 16) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (s_gb >> 24) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + s+= len; + } + + *n1= tmp1; + *n2= tmp2; +} + +static MY_COLLATION_HANDLER my_collation_ci_handler= +{ + NULL, + my_strnncoll_gb18030, + my_strnncollsp_gb18030, + my_strnxfrm_gb18030, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_gb18030, + my_strcasecmp_gb18030, + my_instr_mb, + my_hash_sort_gb18030, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_gb18030_handler= +{ + NULL, + my_ismbchar_gb18030, + my_mbcharlen_gb18030, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_gb18030, + my_lengthsp_8bit, + my_numcells_mb, + my_mb_wc_gb18030, + my_wc_mb_gb18030_chs, + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_gb18030, + my_casedn_gb18030, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + +MY_CHARSET_HANDLER my_charset_gb18030_uca_handler= +{ + NULL, + my_ismbchar_gb18030, + my_mbcharlen_gb18030, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_gb18030, + my_lengthsp_8bit, + my_numcells_mb, + my_mb_wc_gb18030, + my_wc_mb_gb18030_chs, + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_gb18030_uca, + my_casedn_gb18030_uca, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + +CHARSET_INFO my_charset_gb18030_chinese_ci= +{ + 248, 0, 0, /* number */ + MY_CS_COMPILED | MY_CS_PRIMARY | MY_CS_STRNXFRM, /* state */ + "gb18030", /* cs name */ + "gb18030_chinese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_gb18030, /* ctype */ + to_lower_gb18030, /* lower */ + to_upper_gb18030, /* UPPER */ + sort_order_gb18030, /* sort */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_gb18030, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 2, /* strxfrm_multiply */ + 2, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 2, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFE39FE39, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_gb18030_handler, + &my_collation_ci_handler +}; + +CHARSET_INFO my_charset_gb18030_bin= +{ + 249, 0, 0, /* number */ + MY_CS_COMPILED | MY_CS_BINSORT, /* state */ + "gb18030", /* cs name */ + "gb18030_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_gb18030, /* ctype */ + to_lower_gb18030, /* lower */ + to_upper_gb18030, /* UPPER */ + NULL, /* sort order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_gb18030, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 2, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 2, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFEFEFE, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_gb18030_handler, + &my_collation_mb_bin_handler +}; + +#endif diff --git a/mysql/strings/ctype-gb2312.c b/mysql/strings/ctype-gb2312.c new file mode 100644 index 0000000..0d74438 --- /dev/null +++ b/mysql/strings/ctype-gb2312.c @@ -0,0 +1,6486 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for Chinese EUC character sets (GB2312), and created by Miles Tsai (net-bull@126.com). + */ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. mbmaxlen_gb2312=2 + */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_gb2312 + +static const uchar ctype_gb2312[257] = +{ + 0, /* For standard library */ + 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16, + 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16, + 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,32, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0, +}; + +static const uchar to_lower_gb2312[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar to_upper_gb2312[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar sort_order_gb2312[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '\\', ']', '[', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +/* Support for Chinese(GB2312) characters, by Miles Tsai (net-bull@126.com) + modified by Wei He (hewei@mail.ied.ac.cn) */ + +#define isgb2312head(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xf7) +#define isgb2312tail(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe) + + +static uint ismbchar_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return (isgb2312head(*(p)) && (e)-(p)>1 && isgb2312tail(*((p)+1))? 2: 0); +} + +static uint mbcharlen_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (isgb2312head(c)? 2 : 1); +} + + +static const MY_UNICASE_CHARACTER cA2[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA2A0,0xA2A0,0xA2A0}, /* A2A0 */ + {0xA2A1,0xA2A1,0x003F}, + {0xA2A2,0xA2A2,0x003F}, + {0xA2A3,0xA2A3,0x003F}, + {0xA2A4,0xA2A4,0x003F}, + {0xA2A5,0xA2A5,0x003F}, + {0xA2A6,0xA2A6,0x003F}, + {0xA2A7,0xA2A7,0x003F}, + {0xA2A8,0xA2A8,0x003F}, + {0xA2A9,0xA2A9,0x003F}, + {0xA2AA,0xA2AA,0x003F}, + {0xA2AB,0xA2AB,0x003F}, + {0xA2AC,0xA2AC,0x003F}, + {0xA2AD,0xA2AD,0x003F}, + {0xA2AE,0xA2AE,0x003F}, + {0xA2AF,0xA2AF,0x003F}, + {0xA2B0,0xA2B0,0x003F}, /* A2B0 */ + {0xA2B1,0xA2B1,0x2488}, + {0xA2B2,0xA2B2,0x2489}, + {0xA2B3,0xA2B3,0x248A}, + {0xA2B4,0xA2B4,0x248B}, + {0xA2B5,0xA2B5,0x248C}, + {0xA2B6,0xA2B6,0x248D}, + {0xA2B7,0xA2B7,0x248E}, + {0xA2B8,0xA2B8,0x248F}, + {0xA2B9,0xA2B9,0x2490}, + {0xA2BA,0xA2BA,0x2491}, + {0xA2BB,0xA2BB,0x2492}, + {0xA2BC,0xA2BC,0x2493}, + {0xA2BD,0xA2BD,0x2494}, + {0xA2BE,0xA2BE,0x2495}, + {0xA2BF,0xA2BF,0x2496}, + {0xA2C0,0xA2C0,0x2497}, /* A2C0 */ + {0xA2C1,0xA2C1,0x2498}, + {0xA2C2,0xA2C2,0x2499}, + {0xA2C3,0xA2C3,0x249A}, + {0xA2C4,0xA2C4,0x249B}, + {0xA2C5,0xA2C5,0x2474}, + {0xA2C6,0xA2C6,0x2475}, + {0xA2C7,0xA2C7,0x2476}, + {0xA2C8,0xA2C8,0x2477}, + {0xA2C9,0xA2C9,0x2478}, + {0xA2CA,0xA2CA,0x2479}, + {0xA2CB,0xA2CB,0x247A}, + {0xA2CC,0xA2CC,0x247B}, + {0xA2CD,0xA2CD,0x247C}, + {0xA2CE,0xA2CE,0x247D}, + {0xA2CF,0xA2CF,0x247E}, + {0xA2D0,0xA2D0,0x247F}, /* A2D0 */ + {0xA2D1,0xA2D1,0x2480}, + {0xA2D2,0xA2D2,0x2481}, + {0xA2D3,0xA2D3,0x2482}, + {0xA2D4,0xA2D4,0x2483}, + {0xA2D5,0xA2D5,0x2484}, + {0xA2D6,0xA2D6,0x2485}, + {0xA2D7,0xA2D7,0x2486}, + {0xA2D8,0xA2D8,0x2487}, + {0xA2D9,0xA2D9,0x2460}, + {0xA2DA,0xA2DA,0x2461}, + {0xA2DB,0xA2DB,0x2462}, + {0xA2DC,0xA2DC,0x2463}, + {0xA2DD,0xA2DD,0x2464}, + {0xA2DE,0xA2DE,0x2465}, + {0xA2DF,0xA2DF,0x2466}, + {0xA2E0,0xA2E0,0x2467}, /* A2E0 */ + {0xA2E1,0xA2E1,0x2468}, + {0xA2E2,0xA2E2,0x2469}, + {0xA2E3,0xA2E3,0x003F}, + {0xA2E4,0xA2E4,0x003F}, + {0xA2E5,0xA2E5,0x3220}, + {0xA2E6,0xA2E6,0x3221}, + {0xA2E7,0xA2E7,0x3222}, + {0xA2E8,0xA2E8,0x3223}, + {0xA2E9,0xA2E9,0x3224}, + {0xA2EA,0xA2EA,0x3225}, + {0xA2EB,0xA2EB,0x3226}, + {0xA2EC,0xA2EC,0x3227}, + {0xA2ED,0xA2ED,0x3228}, + {0xA2EE,0xA2EE,0x3229}, + {0xA2EF,0xA2EF,0x003F}, + {0xA2F0,0xA2F0,0x003F}, /* A2F0 */ + {0xA2F1,0xA2F1,0x2160}, + {0xA2F2,0xA2F2,0x2161}, + {0xA2F3,0xA2F3,0x2162}, + {0xA2F4,0xA2F4,0x2163}, + {0xA2F5,0xA2F5,0x2164}, + {0xA2F6,0xA2F6,0x2165}, + {0xA2F7,0xA2F7,0x2166}, + {0xA2F8,0xA2F8,0x2167}, + {0xA2F9,0xA2F9,0x2168}, + {0xA2FA,0xA2FA,0x2169}, + {0xA2FB,0xA2FB,0x216A}, + {0xA2FC,0xA2FC,0x216B}, + {0xA2FD,0xA2FD,0x003F}, + {0xA2FE,0xA2FE,0x003F}, + {0xA2FF,0xA2FF,0xA2FF} +}; + + +static const MY_UNICASE_CHARACTER cA3[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA3A0,0xA3A0,0xA3A0}, /* A3A0 */ + {0xA3A1,0xA3A1,0xFF01}, + {0xA3A2,0xA3A2,0xFF02}, + {0xA3A3,0xA3A3,0xFF03}, + {0xA3A4,0xA3A4,0xFFE5}, + {0xA3A5,0xA3A5,0xFF05}, + {0xA3A6,0xA3A6,0xFF06}, + {0xA3A7,0xA3A7,0xFF07}, + {0xA3A8,0xA3A8,0xFF08}, + {0xA3A9,0xA3A9,0xFF09}, + {0xA3AA,0xA3AA,0xFF0A}, + {0xA3AB,0xA3AB,0xFF0B}, + {0xA3AC,0xA3AC,0xFF0C}, + {0xA3AD,0xA3AD,0xFF0D}, + {0xA3AE,0xA3AE,0xFF0E}, + {0xA3AF,0xA3AF,0xFF0F}, + {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */ + {0xA3B1,0xA3B1,0xFF11}, + {0xA3B2,0xA3B2,0xFF12}, + {0xA3B3,0xA3B3,0xFF13}, + {0xA3B4,0xA3B4,0xFF14}, + {0xA3B5,0xA3B5,0xFF15}, + {0xA3B6,0xA3B6,0xFF16}, + {0xA3B7,0xA3B7,0xFF17}, + {0xA3B8,0xA3B8,0xFF18}, + {0xA3B9,0xA3B9,0xFF19}, + {0xA3BA,0xA3BA,0xFF1A}, + {0xA3BB,0xA3BB,0xFF1B}, + {0xA3BC,0xA3BC,0xFF1C}, + {0xA3BD,0xA3BD,0xFF1D}, + {0xA3BE,0xA3BE,0xFF1E}, + {0xA3BF,0xA3BF,0xFF1F}, + {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */ + {0xA3C1,0xA3E1,0xFF21}, + {0xA3C2,0xA3E2,0xFF22}, + {0xA3C3,0xA3E3,0xFF23}, + {0xA3C4,0xA3E4,0xFF24}, + {0xA3C5,0xA3E5,0xFF25}, + {0xA3C6,0xA3E6,0xFF26}, + {0xA3C7,0xA3E7,0xFF27}, + {0xA3C8,0xA3E8,0xFF28}, + {0xA3C9,0xA3E9,0xFF29}, + {0xA3CA,0xA3EA,0xFF2A}, + {0xA3CB,0xA3EB,0xFF2B}, + {0xA3CC,0xA3EC,0xFF2C}, + {0xA3CD,0xA3ED,0xFF2D}, + {0xA3CE,0xA3EE,0xFF2E}, + {0xA3CF,0xA3EF,0xFF2F}, + {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */ + {0xA3D1,0xA3F1,0xFF31}, + {0xA3D2,0xA3F2,0xFF32}, + {0xA3D3,0xA3F3,0xFF33}, + {0xA3D4,0xA3F4,0xFF34}, + {0xA3D5,0xA3F5,0xFF35}, + {0xA3D6,0xA3F6,0xFF36}, + {0xA3D7,0xA3F7,0xFF37}, + {0xA3D8,0xA3F8,0xFF38}, + {0xA3D9,0xA3F9,0xFF39}, + {0xA3DA,0xA3FA,0xFF3A}, + {0xA3DB,0xA3DB,0xFF3B}, + {0xA3DC,0xA3DC,0xFF3C}, + {0xA3DD,0xA3DD,0xFF3D}, + {0xA3DE,0xA3DE,0xFF3E}, + {0xA3DF,0xA3DF,0xFF3F}, + {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */ + {0xA3C1,0xA3E1,0xFF41}, + {0xA3C2,0xA3E2,0xFF42}, + {0xA3C3,0xA3E3,0xFF43}, + {0xA3C4,0xA3E4,0xFF44}, + {0xA3C5,0xA3E5,0xFF45}, + {0xA3C6,0xA3E6,0xFF46}, + {0xA3C7,0xA3E7,0xFF47}, + {0xA3C8,0xA3E8,0xFF48}, + {0xA3C9,0xA3E9,0xFF49}, + {0xA3CA,0xA3EA,0xFF4A}, + {0xA3CB,0xA3EB,0xFF4B}, + {0xA3CC,0xA3EC,0xFF4C}, + {0xA3CD,0xA3ED,0xFF4D}, + {0xA3CE,0xA3EE,0xFF4E}, + {0xA3CF,0xA3EF,0xFF4F}, + {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */ + {0xA3D1,0xA3F1,0xFF51}, + {0xA3D2,0xA3F2,0xFF52}, + {0xA3D3,0xA3F3,0xFF53}, + {0xA3D4,0xA3F4,0xFF54}, + {0xA3D5,0xA3F5,0xFF55}, + {0xA3D6,0xA3F6,0xFF56}, + {0xA3D7,0xA3F7,0xFF57}, + {0xA3D8,0xA3F8,0xFF58}, + {0xA3D9,0xA3F9,0xFF59}, + {0xA3DA,0xA3FA,0xFF5A}, + {0xA3FB,0xA3FB,0xFF5B}, + {0xA3FC,0xA3FC,0xFF5C}, + {0xA3FD,0xA3FD,0xFF5D}, + {0xA3FE,0xA3FE,0xFFE3}, + {0xA3FF,0xA3FF,0xA3FF} +}; + + +static const MY_UNICASE_CHARACTER cA6[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA6A0,0xA6A0,0xA6A0}, /* A6A0 */ + {0xA6A1,0xA6C1,0x0391}, + {0xA6A2,0xA6C2,0x0392}, + {0xA6A3,0xA6C3,0x0393}, + {0xA6A4,0xA6C4,0x0394}, + {0xA6A5,0xA6C5,0x0395}, + {0xA6A6,0xA6C6,0x0396}, + {0xA6A7,0xA6C7,0x0397}, + {0xA6A8,0xA6C8,0x0398}, + {0xA6A9,0xA6C9,0x0399}, + {0xA6AA,0xA6CA,0x039A}, + {0xA6AB,0xA6CB,0x039B}, + {0xA6AC,0xA6CC,0x039C}, + {0xA6AD,0xA6CD,0x039D}, + {0xA6AE,0xA6CE,0x039E}, + {0xA6AF,0xA6CF,0x039F}, + {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */ + {0xA6B1,0xA6D1,0x03A1}, + {0xA6B2,0xA6D2,0x03A3}, + {0xA6B3,0xA6D3,0x03A4}, + {0xA6B4,0xA6D4,0x03A5}, + {0xA6B5,0xA6D5,0x03A6}, + {0xA6B6,0xA6D6,0x03A7}, + {0xA6B7,0xA6D7,0x03A8}, + {0xA6B8,0xA6D8,0x03A9}, + {0xA6B9,0xA6B9,0x003F}, + {0xA6BA,0xA6BA,0x003F}, + {0xA6BB,0xA6BB,0x003F}, + {0xA6BC,0xA6BC,0x003F}, + {0xA6BD,0xA6BD,0x003F}, + {0xA6BE,0xA6BE,0x003F}, + {0xA6BF,0xA6BF,0x003F}, + {0xA6C0,0xA6C0,0x003F}, /* A6C0 */ + {0xA6A1,0xA6C1,0x03B1}, + {0xA6A2,0xA6C2,0x03B2}, + {0xA6A3,0xA6C3,0x03B3}, + {0xA6A4,0xA6C4,0x03B4}, + {0xA6A5,0xA6C5,0x03B5}, + {0xA6A6,0xA6C6,0x03B6}, + {0xA6A7,0xA6C7,0x03B7}, + {0xA6A8,0xA6C8,0x03B8}, + {0xA6A9,0xA6C9,0x03B9}, + {0xA6AA,0xA6CA,0x03BA}, + {0xA6AB,0xA6CB,0x03BB}, + {0xA6AC,0xA6CC,0x03BC}, + {0xA6AD,0xA6CD,0x03BD}, + {0xA6AE,0xA6CE,0x03BE}, + {0xA6AF,0xA6CF,0x03BF}, + {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */ + {0xA6B1,0xA6D1,0x03C1}, + {0xA6B2,0xA6D2,0x03C3}, + {0xA6B3,0xA6D3,0x03C4}, + {0xA6B4,0xA6D4,0x03C5}, + {0xA6B5,0xA6D5,0x03C6}, + {0xA6B6,0xA6D6,0x03C7}, + {0xA6B7,0xA6D7,0x03C8}, + {0xA6B8,0xA6D8,0x03C9}, + {0xA6D9,0xA6D9,0x003F}, + {0xA6DA,0xA6DA,0x003F}, + {0xA6DB,0xA6DB,0x003F}, + {0xA6DC,0xA6DC,0x003F}, + {0xA6DD,0xA6DD,0x003F}, + {0xA6DE,0xA6DE,0x003F}, + {0xA6DF,0xA6DF,0x003F}, + {0xA6E0,0xA6E0,0x003F}, /* A6E0 */ + {0xA6E1,0xA6E1,0x003F}, + {0xA6E2,0xA6E2,0x003F}, + {0xA6E3,0xA6E3,0x003F}, + {0xA6E4,0xA6E4,0x003F}, + {0xA6E5,0xA6E5,0x003F}, + {0xA6E6,0xA6E6,0x003F}, + {0xA6E7,0xA6E7,0x003F}, + {0xA6E8,0xA6E8,0x003F}, + {0xA6E9,0xA6E9,0x003F}, + {0xA6EA,0xA6EA,0x003F}, + {0xA6EB,0xA6EB,0x003F}, + {0xA6EC,0xA6EC,0x003F}, + {0xA6ED,0xA6ED,0x003F}, + {0xA6EE,0xA6EE,0x003F}, + {0xA6EF,0xA6EF,0x003F}, + {0xA6F0,0xA6F0,0x003F}, /* A6F0 */ + {0xA6F1,0xA6F1,0x003F}, + {0xA6F2,0xA6F2,0x003F}, + {0xA6F3,0xA6F3,0x003F}, + {0xA6F4,0xA6F4,0x003F}, + {0xA6F5,0xA6F5,0x003F}, + {0xA6F6,0xA6F6,0x003F}, + {0xA6F7,0xA6F7,0x003F}, + {0xA6F8,0xA6F8,0x003F}, + {0xA6F9,0xA6F9,0x003F}, + {0xA6FA,0xA6FA,0x003F}, + {0xA6FB,0xA6FB,0x003F}, + {0xA6FC,0xA6FC,0x003F}, + {0xA6FD,0xA6FD,0x003F}, + {0xA6FE,0xA6FE,0x003F}, + {0xA6FF,0xA6FF,0xA6FF} +}; + + +static const MY_UNICASE_CHARACTER cA7[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA7A0,0xA7A0,0xA7A0}, /* A7A0 */ + {0xA7A1,0xA7D1,0x0410}, + {0xA7A2,0xA7D2,0x0411}, + {0xA7A3,0xA7D3,0x0412}, + {0xA7A4,0xA7D4,0x0413}, + {0xA7A5,0xA7D5,0x0414}, + {0xA7A6,0xA7D6,0x0415}, + {0xA7A7,0xA7D7,0x0401}, + {0xA7A8,0xA7D8,0x0416}, + {0xA7A9,0xA7D9,0x0417}, + {0xA7AA,0xA7DA,0x0418}, + {0xA7AB,0xA7DB,0x0419}, + {0xA7AC,0xA7DC,0x041A}, + {0xA7AD,0xA7DD,0x041B}, + {0xA7AE,0xA7DE,0x041C}, + {0xA7AF,0xA7DF,0x041D}, + {0xA7B0,0xA7E0,0x041E}, /* A7B0 */ + {0xA7B1,0xA7E1,0x041F}, + {0xA7B2,0xA7E2,0x0420}, + {0xA7B3,0xA7E3,0x0421}, + {0xA7B4,0xA7E4,0x0422}, + {0xA7B5,0xA7E5,0x0423}, + {0xA7B6,0xA7E6,0x0424}, + {0xA7B7,0xA7E7,0x0425}, + {0xA7B8,0xA7E8,0x0426}, + {0xA7B9,0xA7E9,0x0427}, + {0xA7BA,0xA7EA,0x0428}, + {0xA7BB,0xA7EB,0x0429}, + {0xA7BC,0xA7EC,0x042A}, + {0xA7BD,0xA7ED,0x042B}, + {0xA7BE,0xA7EE,0x042C}, + {0xA7BF,0xA7EF,0x042D}, + {0xA7C0,0xA7F0,0x042E}, /* A7C0 */ + {0xA7C1,0xA7F1,0x042F}, + {0xA7C2,0xA7C2,0x003F}, + {0xA7C3,0xA7C3,0x003F}, + {0xA7C4,0xA7C4,0x003F}, + {0xA7C5,0xA7C5,0x003F}, + {0xA7C6,0xA7C6,0x003F}, + {0xA7C7,0xA7C7,0x003F}, + {0xA7C8,0xA7C8,0x003F}, + {0xA7C9,0xA7C9,0x003F}, + {0xA7CA,0xA7CA,0x003F}, + {0xA7CB,0xA7CB,0x003F}, + {0xA7CC,0xA7CC,0x003F}, + {0xA7CD,0xA7CD,0x003F}, + {0xA7CE,0xA7CE,0x003F}, + {0xA7CF,0xA7CF,0x003F}, + {0xA7D0,0xA7D0,0x003F}, /* A7D0 */ + {0xA7A1,0xA7D1,0x0430}, + {0xA7A2,0xA7D2,0x0431}, + {0xA7A3,0xA7D3,0x0432}, + {0xA7A4,0xA7D4,0x0433}, + {0xA7A5,0xA7D5,0x0434}, + {0xA7A6,0xA7D6,0x0435}, + {0xA7A7,0xA7D7,0x0451}, + {0xA7A8,0xA7D8,0x0436}, + {0xA7A9,0xA7D9,0x0437}, + {0xA7AA,0xA7DA,0x0438}, + {0xA7AB,0xA7DB,0x0439}, + {0xA7AC,0xA7DC,0x043A}, + {0xA7AD,0xA7DD,0x043B}, + {0xA7AE,0xA7DE,0x043C}, + {0xA7AF,0xA7DF,0x043D}, + {0xA7B0,0xA7E0,0x043E}, /* A7E0 */ + {0xA7B1,0xA7E1,0x043F}, + {0xA7B2,0xA7E2,0x0440}, + {0xA7B3,0xA7E3,0x0441}, + {0xA7B4,0xA7E4,0x0442}, + {0xA7B5,0xA7E5,0x0443}, + {0xA7B6,0xA7E6,0x0444}, + {0xA7B7,0xA7E7,0x0445}, + {0xA7B8,0xA7E8,0x0446}, + {0xA7B9,0xA7E9,0x0447}, + {0xA7BA,0xA7EA,0x0448}, + {0xA7BB,0xA7EB,0x0449}, + {0xA7BC,0xA7EC,0x044A}, + {0xA7BD,0xA7ED,0x044B}, + {0xA7BE,0xA7EE,0x044C}, + {0xA7BF,0xA7EF,0x044D}, + {0xA7C0,0xA7F0,0x044E}, /* A7F0 */ + {0xA7C1,0xA7F1,0x044F}, + {0xA7F2,0xA7F2,0x003F}, + {0xA7F3,0xA7F3,0x003F}, + {0xA7F4,0xA7F4,0x003F}, + {0xA7F5,0xA7F5,0x003F}, + {0xA7F6,0xA7F6,0x003F}, + {0xA7F7,0xA7F7,0x003F}, + {0xA7F8,0xA7F8,0x003F}, + {0xA7F9,0xA7F9,0x003F}, + {0xA7FA,0xA7FA,0x003F}, + {0xA7FB,0xA7FB,0x003F}, + {0xA7FC,0xA7FC,0x003F}, + {0xA7FD,0xA7FD,0x003F}, + {0xA7FE,0xA7FE,0x003F}, + {0xA7FF,0xA7FF,0xA7FF} +}; + + +static const MY_UNICASE_CHARACTER cA8[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA8A0,0xA8A0,0xA8A0}, /* A8A0 */ + {0xA8A1,0xA8A1,0x0101}, + {0xA8A2,0xA8A2,0x00E1}, + {0xA8A3,0xA8A3,0x01CE}, + {0xA8A4,0xA8A4,0x00E0}, + {0xA8A5,0xA8A5,0x0113}, + {0xA8A6,0xA8A6,0x00E9}, + {0xA8A7,0xA8A7,0x011B}, + {0xA8A8,0xA8A8,0x00E8}, + {0xA8A9,0xA8A9,0x012B}, + {0xA8AA,0xA8AA,0x00ED}, + {0xA8AB,0xA8AB,0x01D0}, + {0xA8AC,0xA8AC,0x00EC}, + {0xA8AD,0xA8AD,0x014D}, + {0xA8AE,0xA8AE,0x00F3}, + {0xA8AF,0xA8AF,0x01D2}, + {0xA8B0,0xA8B0,0x00F2}, /* A8B0 */ + {0xA8B1,0xA8B1,0x016B}, + {0xA8B2,0xA8B2,0x00FA}, + {0xA8B3,0xA8B3,0x01D4}, + {0xA8B4,0xA8B4,0x00F9}, + {0xA8B5,0xA8B5,0x01D6}, + {0xA8B6,0xA8B6,0x01D8}, + {0xA8B7,0xA8B7,0x01DA}, + {0xA8B8,0xA8B8,0x01DC}, + {0xA8B9,0xA8B9,0x00FC}, + {0xA8BA,0xA8BA,0x00EA}, + {0xA8BB,0xA8BB,0x003F}, + {0xA8BC,0xA8BC,0x003F}, + {0xA8BD,0xA8BD,0x003F}, + {0xA8BE,0xA8BE,0x003F}, + {0xA8BF,0xA8BF,0x003F}, + {0xA8C0,0xA8C0,0x003F}, /* A8C0 */ + {0xA8C1,0xA8C1,0x003F}, + {0xA8C2,0xA8C2,0x003F}, + {0xA8C3,0xA8C3,0x003F}, + {0xA8C4,0xA8C4,0x003F}, + {0xA8C5,0xA8C5,0x3105}, + {0xA8C6,0xA8C6,0x3106}, + {0xA8C7,0xA8C7,0x3107}, + {0xA8C8,0xA8C8,0x3108}, + {0xA8C9,0xA8C9,0x3109}, + {0xA8CA,0xA8CA,0x310A}, + {0xA8CB,0xA8CB,0x310B}, + {0xA8CC,0xA8CC,0x310C}, + {0xA8CD,0xA8CD,0x310D}, + {0xA8CE,0xA8CE,0x310E}, + {0xA8CF,0xA8CF,0x310F}, + {0xA8D0,0xA8D0,0x3110}, /* A8D0 */ + {0xA8D1,0xA8D1,0x3111}, + {0xA8D2,0xA8D2,0x3112}, + {0xA8D3,0xA8D3,0x3113}, + {0xA8D4,0xA8D4,0x3114}, + {0xA8D5,0xA8D5,0x3115}, + {0xA8D6,0xA8D6,0x3116}, + {0xA8D7,0xA8D7,0x3117}, + {0xA8D8,0xA8D8,0x3118}, + {0xA8D9,0xA8D9,0x3119}, + {0xA8DA,0xA8DA,0x311A}, + {0xA8DB,0xA8DB,0x311B}, + {0xA8DC,0xA8DC,0x311C}, + {0xA8DD,0xA8DD,0x311D}, + {0xA8DE,0xA8DE,0x311E}, + {0xA8DF,0xA8DF,0x311F}, + {0xA8E0,0xA8E0,0x3120}, /* A8E0 */ + {0xA8E1,0xA8E1,0x3121}, + {0xA8E2,0xA8E2,0x3122}, + {0xA8E3,0xA8E3,0x3123}, + {0xA8E4,0xA8E4,0x3124}, + {0xA8E5,0xA8E5,0x3125}, + {0xA8E6,0xA8E6,0x3126}, + {0xA8E7,0xA8E7,0x3127}, + {0xA8E8,0xA8E8,0x3128}, + {0xA8E9,0xA8E9,0x3129}, + {0xA8EA,0xA8EA,0x003F}, + {0xA8EB,0xA8EB,0x003F}, + {0xA8EC,0xA8EC,0x003F}, + {0xA8ED,0xA8ED,0x003F}, + {0xA8EE,0xA8EE,0x003F}, + {0xA8EF,0xA8EF,0x003F}, + {0xA8F0,0xA8F0,0x003F}, /* A8F0 */ + {0xA8F1,0xA8F1,0x003F}, + {0xA8F2,0xA8F2,0x003F}, + {0xA8F3,0xA8F3,0x003F}, + {0xA8F4,0xA8F4,0x003F}, + {0xA8F5,0xA8F5,0x003F}, + {0xA8F6,0xA8F6,0x003F}, + {0xA8F7,0xA8F7,0x003F}, + {0xA8F8,0xA8F8,0x003F}, + {0xA8F9,0xA8F9,0x003F}, + {0xA8FA,0xA8FA,0x003F}, + {0xA8FB,0xA8FB,0x003F}, + {0xA8FC,0xA8FC,0x003F}, + {0xA8FD,0xA8FD,0x003F}, + {0xA8FE,0xA8FE,0x003F}, + {0xA8FF,0xA8FF,0xA8FF} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_gb2312[256]= +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, cA2, cA3, NULL, NULL, cA6, cA7, /* A */ + cA8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + + +static MY_UNICASE_INFO my_caseinfo_gb2312= +{ + 0xFFFF, + my_caseinfo_pages_gb2312 +}; + + +/* page 0 0x2121-0x2658 */ +static const uint16 tab_gb2312_uni0[]={ +0x3000,0x3001,0x3002,0x30FB,0x02C9,0x02C7,0x00A8,0x3003, +0x3005,0x2015,0xFF5E,0x2016,0x2026,0x2018,0x2019,0x201C, +0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C, +0x300D,0x300E,0x300F,0x3016,0x3017,0x3010,0x3011,0x00B1, +0x00D7,0x00F7,0x2236,0x2227,0x2228,0x2211,0x220F,0x222A, +0x2229,0x2208,0x2237,0x221A,0x22A5,0x2225,0x2220,0x2312, +0x2299,0x222B,0x222E,0x2261,0x224C,0x2248,0x223D,0x221D, +0x2260,0x226E,0x226F,0x2264,0x2265,0x221E,0x2235,0x2234, +0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFF04,0x00A4, +0xFFE0,0xFFE1,0x2030,0x00A7,0x2116,0x2606,0x2605,0x25CB, +0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,0x25A0,0x25B3,0x25B2, +0x203B,0x2192,0x2190,0x2191,0x2193,0x3013, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x2488,0x2489,0x248A,0x248B,0x248C,0x248D,0x248E,0x248F, +0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496,0x2497, +0x2498,0x2499,0x249A,0x249B,0x2474,0x2475,0x2476,0x2477, +0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,0x247E,0x247F, +0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486,0x2487, +0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, +0x2468,0x2469, 0, 0,0x3220,0x3221,0x3222,0x3223, +0x3224,0x3225,0x3226,0x3227,0x3228,0x3229, 0, 0, +0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167, +0x2168,0x2169,0x216A,0x216B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFF01,0xFF02,0xFF03,0xFFE5,0xFF05,0xFF06,0xFF07,0xFF08, +0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,0xFF10, +0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18, +0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,0xFF20, +0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28, +0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30, +0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38, +0xFF39,0xFF3A,0xFF3B,0xFF3C,0xFF3D,0xFF3E,0xFF3F,0xFF40, +0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48, +0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50, +0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58, +0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048, +0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050, +0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058, +0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060, +0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068, +0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070, +0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078, +0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080, +0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088, +0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090, +0x3091,0x3092,0x3093, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8, +0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0, +0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8, +0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0, +0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8, +0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0, +0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8, +0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0, +0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8, +0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0, +0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, +0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0, +0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9, + 0, 0, 0, 0, 0, 0, 0, 0, +0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8, +0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0, +0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9 +}; + +/* page 1 0x2721-0x296F */ +static const uint16 tab_gb2312_uni1[]={ +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416, +0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426, +0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E, +0x042F, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436, +0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446, +0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E, +0x044F, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x0101,0x00E1,0x01CE,0x00E0,0x0113,0x00E9,0x011B,0x00E8, +0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,0x01D2,0x00F2, +0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,0x01DA,0x01DC, +0x00FC,0x00EA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x3105,0x3106,0x3107,0x3108, +0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F,0x3110, +0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117,0x3118, +0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,0x311F,0x3120, +0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127,0x3128, +0x3129, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x2500,0x2501,0x2502,0x2503,0x2504, +0x2505,0x2506,0x2507,0x2508,0x2509,0x250A,0x250B,0x250C, +0x250D,0x250E,0x250F,0x2510,0x2511,0x2512,0x2513,0x2514, +0x2515,0x2516,0x2517,0x2518,0x2519,0x251A,0x251B,0x251C, +0x251D,0x251E,0x251F,0x2520,0x2521,0x2522,0x2523,0x2524, +0x2525,0x2526,0x2527,0x2528,0x2529,0x252A,0x252B,0x252C, +0x252D,0x252E,0x252F,0x2530,0x2531,0x2532,0x2533,0x2534, +0x2535,0x2536,0x2537,0x2538,0x2539,0x253A,0x253B,0x253C, +0x253D,0x253E,0x253F,0x2540,0x2541,0x2542,0x2543,0x2544, +0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B}; + +/* page 2 0x3021-0x777E */ +static const uint16 tab_gb2312_uni2[]={ +0x554A,0x963F,0x57C3,0x6328,0x54CE,0x5509,0x54C0,0x7691, +0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,0x9698,0x978D, +0x6C28,0x5B89,0x4FFA,0x6309,0x6697,0x5CB8,0x80FA,0x6848, +0x80AE,0x6602,0x76CE,0x51F9,0x6556,0x71AC,0x7FF1,0x8884, +0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,0x6252,0x53ED, +0x5427,0x7B06,0x516B,0x75A4,0x5DF4,0x62D4,0x8DCB,0x9776, +0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,0x767D,0x67CF, +0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,0x6591,0x73ED, +0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,0x626E,0x62CC, +0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,0x5E2E,0x6886, +0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,0x9551,0x508D, +0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8584,0x96F9,0x4FDD,0x5821,0x9971,0x5B9D,0x62B1,0x62A5, +0x66B4,0x8C79,0x9C8D,0x7206,0x676F,0x7891,0x60B2,0x5351, +0x5317,0x8F88,0x80CC,0x8D1D,0x94A1,0x500D,0x72C8,0x5907, +0x60EB,0x7119,0x88AB,0x5954,0x82EF,0x672C,0x7B28,0x5D29, +0x7EF7,0x752D,0x6CF5,0x8E66,0x8FF8,0x903C,0x9F3B,0x6BD4, +0x9119,0x7B14,0x5F7C,0x78A7,0x84D6,0x853D,0x6BD5,0x6BD9, +0x6BD6,0x5E01,0x5E87,0x75F9,0x95ED,0x655D,0x5F0A,0x5FC5, +0x8F9F,0x58C1,0x81C2,0x907F,0x965B,0x97AD,0x8FB9,0x7F16, +0x8D2C,0x6241,0x4FBF,0x53D8,0x535E,0x8FA8,0x8FA9,0x8FAB, +0x904D,0x6807,0x5F6A,0x8198,0x8868,0x9CD6,0x618B,0x522B, +0x762A,0x5F6C,0x658C,0x6FD2,0x6EE8,0x5BBE,0x6448,0x5175, +0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x75C5,0x5E76,0x73BB,0x83E0,0x64AD,0x62E8,0x94B5,0x6CE2, +0x535A,0x52C3,0x640F,0x94C2,0x7B94,0x4F2F,0x5E1B,0x8236, +0x8116,0x818A,0x6E24,0x6CCA,0x9A73,0x6355,0x535C,0x54FA, +0x8865,0x57E0,0x4E0D,0x5E03,0x6B65,0x7C3F,0x90E8,0x6016, +0x64E6,0x731C,0x88C1,0x6750,0x624D,0x8D22,0x776C,0x8E29, +0x91C7,0x5F69,0x83DC,0x8521,0x9910,0x53C2,0x8695,0x6B8B, +0x60ED,0x60E8,0x707F,0x82CD,0x8231,0x4ED3,0x6CA7,0x85CF, +0x64CD,0x7CD9,0x69FD,0x66F9,0x8349,0x5395,0x7B56,0x4FA7, +0x518C,0x6D4B,0x5C42,0x8E6D,0x63D2,0x53C9,0x832C,0x8336, +0x67E5,0x78B4,0x643D,0x5BDF,0x5C94,0x5DEE,0x8BE7,0x62C6, +0x67F4,0x8C7A,0x6400,0x63BA,0x8749,0x998B,0x8C17,0x7F20, +0x94F2,0x4EA7,0x9610,0x98A4,0x660C,0x7316, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x573A,0x5C1D,0x5E38,0x957F,0x507F,0x80A0,0x5382,0x655E, +0x7545,0x5531,0x5021,0x8D85,0x6284,0x949E,0x671D,0x5632, +0x6F6E,0x5DE2,0x5435,0x7092,0x8F66,0x626F,0x64A4,0x63A3, +0x5F7B,0x6F88,0x90F4,0x81E3,0x8FB0,0x5C18,0x6668,0x5FF1, +0x6C89,0x9648,0x8D81,0x886C,0x6491,0x79F0,0x57CE,0x6A59, +0x6210,0x5448,0x4E58,0x7A0B,0x60E9,0x6F84,0x8BDA,0x627F, +0x901E,0x9A8B,0x79E4,0x5403,0x75F4,0x6301,0x5319,0x6C60, +0x8FDF,0x5F1B,0x9A70,0x803B,0x9F7F,0x4F88,0x5C3A,0x8D64, +0x7FC5,0x65A5,0x70BD,0x5145,0x51B2,0x866B,0x5D07,0x5BA0, +0x62BD,0x916C,0x7574,0x8E0C,0x7A20,0x6101,0x7B79,0x4EC7, +0x7EF8,0x7785,0x4E11,0x81ED,0x521D,0x51FA,0x6A71,0x53A8, +0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7840,0x50A8,0x77D7,0x6410,0x89E6,0x5904,0x63E3,0x5DDD, +0x7A7F,0x693D,0x4F20,0x8239,0x5598,0x4E32,0x75AE,0x7A97, +0x5E62,0x5E8A,0x95EF,0x521B,0x5439,0x708A,0x6376,0x9524, +0x5782,0x6625,0x693F,0x9187,0x5507,0x6DF3,0x7EAF,0x8822, +0x6233,0x7EF0,0x75B5,0x8328,0x78C1,0x96CC,0x8F9E,0x6148, +0x74F7,0x8BCD,0x6B64,0x523A,0x8D50,0x6B21,0x806A,0x8471, +0x56F1,0x5306,0x4ECE,0x4E1B,0x51D1,0x7C97,0x918B,0x7C07, +0x4FC3,0x8E7F,0x7BE1,0x7A9C,0x6467,0x5D14,0x50AC,0x8106, +0x7601,0x7CB9,0x6DEC,0x7FE0,0x6751,0x5B58,0x5BF8,0x78CB, +0x64AE,0x6413,0x63AA,0x632B,0x9519,0x642D,0x8FBE,0x7B54, +0x7629,0x6253,0x5927,0x5446,0x6B79,0x50A3,0x6234,0x5E26, +0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6020,0x803D,0x62C5,0x4E39,0x5355,0x90F8,0x63B8,0x80C6, +0x65E6,0x6C2E,0x4F46,0x60EE,0x6DE1,0x8BDE,0x5F39,0x86CB, +0x5F53,0x6321,0x515A,0x8361,0x6863,0x5200,0x6363,0x8E48, +0x5012,0x5C9B,0x7977,0x5BFC,0x5230,0x7A3B,0x60BC,0x9053, +0x76D7,0x5FB7,0x5F97,0x7684,0x8E6C,0x706F,0x767B,0x7B49, +0x77AA,0x51F3,0x9093,0x5824,0x4F4E,0x6EF4,0x8FEA,0x654C, +0x7B1B,0x72C4,0x6DA4,0x7FDF,0x5AE1,0x62B5,0x5E95,0x5730, +0x8482,0x7B2C,0x5E1D,0x5F1F,0x9012,0x7F14,0x98A0,0x6382, +0x6EC7,0x7898,0x70B9,0x5178,0x975B,0x57AB,0x7535,0x4F43, +0x7538,0x5E97,0x60E6,0x5960,0x6DC0,0x6BBF,0x7889,0x53FC, +0x96D5,0x51CB,0x5201,0x6389,0x540A,0x9493,0x8C03,0x8DCC, +0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4E01,0x76EF,0x53EE,0x9489,0x9876,0x9F0E,0x952D,0x5B9A, +0x8BA2,0x4E22,0x4E1C,0x51AC,0x8463,0x61C2,0x52A8,0x680B, +0x4F97,0x606B,0x51BB,0x6D1E,0x515C,0x6296,0x6597,0x9661, +0x8C46,0x9017,0x75D8,0x90FD,0x7763,0x6BD2,0x728A,0x72EC, +0x8BFB,0x5835,0x7779,0x8D4C,0x675C,0x9540,0x809A,0x5EA6, +0x6E21,0x5992,0x7AEF,0x77ED,0x953B,0x6BB5,0x65AD,0x7F0E, +0x5806,0x5151,0x961F,0x5BF9,0x58A9,0x5428,0x8E72,0x6566, +0x987F,0x56E4,0x949D,0x76FE,0x9041,0x6387,0x54C6,0x591A, +0x593A,0x579B,0x8EB2,0x6735,0x8DFA,0x8235,0x5241,0x60F0, +0x5815,0x86FE,0x5CE8,0x9E45,0x4FC4,0x989D,0x8BB9,0x5A25, +0x6076,0x5384,0x627C,0x904F,0x9102,0x997F,0x6069,0x800C, +0x513F,0x8033,0x5C14,0x9975,0x6D31,0x4E8C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8D30,0x53D1,0x7F5A,0x7B4F,0x4F10,0x4E4F,0x9600,0x6CD5, +0x73D0,0x85E9,0x5E06,0x756A,0x7FFB,0x6A0A,0x77FE,0x9492, +0x7E41,0x51E1,0x70E6,0x53CD,0x8FD4,0x8303,0x8D29,0x72AF, +0x996D,0x6CDB,0x574A,0x82B3,0x65B9,0x80AA,0x623F,0x9632, +0x59A8,0x4EFF,0x8BBF,0x7EBA,0x653E,0x83F2,0x975E,0x5561, +0x98DE,0x80A5,0x532A,0x8BFD,0x5420,0x80BA,0x5E9F,0x6CB8, +0x8D39,0x82AC,0x915A,0x5429,0x6C1B,0x5206,0x7EB7,0x575F, +0x711A,0x6C7E,0x7C89,0x594B,0x4EFD,0x5FFF,0x6124,0x7CAA, +0x4E30,0x5C01,0x67AB,0x8702,0x5CF0,0x950B,0x98CE,0x75AF, +0x70FD,0x9022,0x51AF,0x7F1D,0x8BBD,0x5949,0x51E4,0x4F5B, +0x5426,0x592B,0x6577,0x80A4,0x5B75,0x6276,0x62C2,0x8F90, +0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6D6E,0x6DAA,0x798F,0x88B1,0x5F17,0x752B,0x629A,0x8F85, +0x4FEF,0x91DC,0x65A7,0x812F,0x8151,0x5E9C,0x8150,0x8D74, +0x526F,0x8986,0x8D4B,0x590D,0x5085,0x4ED8,0x961C,0x7236, +0x8179,0x8D1F,0x5BCC,0x8BA3,0x9644,0x5987,0x7F1A,0x5490, +0x5676,0x560E,0x8BE5,0x6539,0x6982,0x9499,0x76D6,0x6E89, +0x5E72,0x7518,0x6746,0x67D1,0x7AFF,0x809D,0x8D76,0x611F, +0x79C6,0x6562,0x8D63,0x5188,0x521A,0x94A2,0x7F38,0x809B, +0x7EB2,0x5C97,0x6E2F,0x6760,0x7BD9,0x768B,0x9AD8,0x818F, +0x7F94,0x7CD5,0x641E,0x9550,0x7A3F,0x544A,0x54E5,0x6B4C, +0x6401,0x6208,0x9E3D,0x80F3,0x7599,0x5272,0x9769,0x845B, +0x683C,0x86E4,0x9601,0x9694,0x94EC,0x4E2A,0x5404,0x7ED9, +0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x57C2,0x803F,0x6897,0x5DE5,0x653B,0x529F,0x606D,0x9F9A, +0x4F9B,0x8EAC,0x516C,0x5BAB,0x5F13,0x5DE9,0x6C5E,0x62F1, +0x8D21,0x5171,0x94A9,0x52FE,0x6C9F,0x82DF,0x72D7,0x57A2, +0x6784,0x8D2D,0x591F,0x8F9C,0x83C7,0x5495,0x7B8D,0x4F30, +0x6CBD,0x5B64,0x59D1,0x9F13,0x53E4,0x86CA,0x9AA8,0x8C37, +0x80A1,0x6545,0x987E,0x56FA,0x96C7,0x522E,0x74DC,0x5250, +0x5BE1,0x6302,0x8902,0x4E56,0x62D0,0x602A,0x68FA,0x5173, +0x5B98,0x51A0,0x89C2,0x7BA1,0x9986,0x7F50,0x60EF,0x704C, +0x8D2F,0x5149,0x5E7F,0x901B,0x7470,0x89C4,0x572D,0x7845, +0x5F52,0x9F9F,0x95FA,0x8F68,0x9B3C,0x8BE1,0x7678,0x6842, +0x67DC,0x8DEA,0x8D35,0x523D,0x8F8A,0x6EDA,0x68CD,0x9505, +0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9AB8,0x5B69,0x6D77,0x6C26,0x4EA5,0x5BB3,0x9A87,0x9163, +0x61A8,0x90AF,0x97E9,0x542B,0x6DB5,0x5BD2,0x51FD,0x558A, +0x7F55,0x7FF0,0x64BC,0x634D,0x65F1,0x61BE,0x608D,0x710A, +0x6C57,0x6C49,0x592F,0x676D,0x822A,0x58D5,0x568E,0x8C6A, +0x6BEB,0x90DD,0x597D,0x8017,0x53F7,0x6D69,0x5475,0x559D, +0x8377,0x83CF,0x6838,0x79BE,0x548C,0x4F55,0x5408,0x76D2, +0x8C89,0x9602,0x6CB3,0x6DB8,0x8D6B,0x8910,0x9E64,0x8D3A, +0x563F,0x9ED1,0x75D5,0x5F88,0x72E0,0x6068,0x54FC,0x4EA8, +0x6A2A,0x8861,0x6052,0x8F70,0x54C4,0x70D8,0x8679,0x9E3F, +0x6D2A,0x5B8F,0x5F18,0x7EA2,0x5589,0x4FAF,0x7334,0x543C, +0x539A,0x5019,0x540E,0x547C,0x4E4E,0x5FFD,0x745A,0x58F6, +0x846B,0x80E1,0x8774,0x72D0,0x7CCA,0x6E56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5F27,0x864E,0x552C,0x62A4,0x4E92,0x6CAA,0x6237,0x82B1, +0x54D7,0x534E,0x733E,0x6ED1,0x753B,0x5212,0x5316,0x8BDD, +0x69D0,0x5F8A,0x6000,0x6DEE,0x574F,0x6B22,0x73AF,0x6853, +0x8FD8,0x7F13,0x6362,0x60A3,0x5524,0x75EA,0x8C62,0x7115, +0x6DA3,0x5BA6,0x5E7B,0x8352,0x614C,0x9EC4,0x78FA,0x8757, +0x7C27,0x7687,0x51F0,0x60F6,0x714C,0x6643,0x5E4C,0x604D, +0x8C0E,0x7070,0x6325,0x8F89,0x5FBD,0x6062,0x86D4,0x56DE, +0x6BC1,0x6094,0x6167,0x5349,0x60E0,0x6666,0x8D3F,0x79FD, +0x4F1A,0x70E9,0x6C47,0x8BB3,0x8BF2,0x7ED8,0x8364,0x660F, +0x5A5A,0x9B42,0x6D51,0x6DF7,0x8C41,0x6D3B,0x4F19,0x706B, +0x83B7,0x6216,0x60D1,0x970D,0x8D27,0x7978,0x51FB,0x573E, +0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x808C,0x9965,0x8FF9,0x6FC0,0x8BA5,0x9E21,0x59EC,0x7EE9, +0x7F09,0x5409,0x6781,0x68D8,0x8F91,0x7C4D,0x96C6,0x53CA, +0x6025,0x75BE,0x6C72,0x5373,0x5AC9,0x7EA7,0x6324,0x51E0, +0x810A,0x5DF1,0x84DF,0x6280,0x5180,0x5B63,0x4F0E,0x796D, +0x5242,0x60B8,0x6D4E,0x5BC4,0x5BC2,0x8BA1,0x8BB0,0x65E2, +0x5FCC,0x9645,0x5993,0x7EE7,0x7EAA,0x5609,0x67B7,0x5939, +0x4F73,0x5BB6,0x52A0,0x835A,0x988A,0x8D3E,0x7532,0x94BE, +0x5047,0x7A3C,0x4EF7,0x67B6,0x9A7E,0x5AC1,0x6B7C,0x76D1, +0x575A,0x5C16,0x7B3A,0x95F4,0x714E,0x517C,0x80A9,0x8270, +0x5978,0x7F04,0x8327,0x68C0,0x67EC,0x78B1,0x7877,0x62E3, +0x6361,0x7B80,0x4FED,0x526A,0x51CF,0x8350,0x69DB,0x9274, +0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5065,0x8230,0x5251,0x996F,0x6E10,0x6E85,0x6DA7,0x5EFA, +0x50F5,0x59DC,0x5C06,0x6D46,0x6C5F,0x7586,0x848B,0x6868, +0x5956,0x8BB2,0x5320,0x9171,0x964D,0x8549,0x6912,0x7901, +0x7126,0x80F6,0x4EA4,0x90CA,0x6D47,0x9A84,0x5A07,0x56BC, +0x6405,0x94F0,0x77EB,0x4FA5,0x811A,0x72E1,0x89D2,0x997A, +0x7F34,0x7EDE,0x527F,0x6559,0x9175,0x8F7F,0x8F83,0x53EB, +0x7A96,0x63ED,0x63A5,0x7686,0x79F8,0x8857,0x9636,0x622A, +0x52AB,0x8282,0x6854,0x6770,0x6377,0x776B,0x7AED,0x6D01, +0x7ED3,0x89E3,0x59D0,0x6212,0x85C9,0x82A5,0x754C,0x501F, +0x4ECB,0x75A5,0x8BEB,0x5C4A,0x5DFE,0x7B4B,0x65A4,0x91D1, +0x4ECA,0x6D25,0x895F,0x7D27,0x9526,0x4EC5,0x8C28,0x8FDB, +0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5C3D,0x52B2,0x8346,0x5162,0x830E,0x775B,0x6676,0x9CB8, +0x4EAC,0x60CA,0x7CBE,0x7CB3,0x7ECF,0x4E95,0x8B66,0x666F, +0x9888,0x9759,0x5883,0x656C,0x955C,0x5F84,0x75C9,0x9756, +0x7ADF,0x7ADE,0x51C0,0x70AF,0x7A98,0x63EA,0x7A76,0x7EA0, +0x7396,0x97ED,0x4E45,0x7078,0x4E5D,0x9152,0x53A9,0x6551, +0x65E7,0x81FC,0x8205,0x548E,0x5C31,0x759A,0x97A0,0x62D8, +0x72D9,0x75BD,0x5C45,0x9A79,0x83CA,0x5C40,0x5480,0x77E9, +0x4E3E,0x6CAE,0x805A,0x62D2,0x636E,0x5DE8,0x5177,0x8DDD, +0x8E1E,0x952F,0x4FF1,0x53E5,0x60E7,0x70AC,0x5267,0x6350, +0x9E43,0x5A1F,0x5026,0x7737,0x5377,0x7EE2,0x6485,0x652B, +0x6289,0x6398,0x5014,0x7235,0x89C9,0x51B3,0x8BC0,0x7EDD, +0x5747,0x83CC,0x94A7,0x519B,0x541B,0x5CFB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4FCA,0x7AE3,0x6D5A,0x90E1,0x9A8F,0x5580,0x5496,0x5361, +0x54AF,0x5F00,0x63E9,0x6977,0x51EF,0x6168,0x520A,0x582A, +0x52D8,0x574E,0x780D,0x770B,0x5EB7,0x6177,0x7CE0,0x625B, +0x6297,0x4EA2,0x7095,0x8003,0x62F7,0x70E4,0x9760,0x5777, +0x82DB,0x67EF,0x68F5,0x78D5,0x9897,0x79D1,0x58F3,0x54B3, +0x53EF,0x6E34,0x514B,0x523B,0x5BA2,0x8BFE,0x80AF,0x5543, +0x57A6,0x6073,0x5751,0x542D,0x7A7A,0x6050,0x5B54,0x63A7, +0x62A0,0x53E3,0x6263,0x5BC7,0x67AF,0x54ED,0x7A9F,0x82E6, +0x9177,0x5E93,0x88E4,0x5938,0x57AE,0x630E,0x8DE8,0x80EF, +0x5757,0x7B77,0x4FA9,0x5FEB,0x5BBD,0x6B3E,0x5321,0x7B50, +0x72C2,0x6846,0x77FF,0x7736,0x65F7,0x51B5,0x4E8F,0x76D4, +0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9988,0x6127,0x6E83,0x5764,0x6606,0x6346,0x56F0,0x62EC, +0x6269,0x5ED3,0x9614,0x5783,0x62C9,0x5587,0x8721,0x814A, +0x8FA3,0x5566,0x83B1,0x6765,0x8D56,0x84DD,0x5A6A,0x680F, +0x62E6,0x7BEE,0x9611,0x5170,0x6F9C,0x8C30,0x63FD,0x89C8, +0x61D2,0x7F06,0x70C2,0x6EE5,0x7405,0x6994,0x72FC,0x5ECA, +0x90CE,0x6717,0x6D6A,0x635E,0x52B3,0x7262,0x8001,0x4F6C, +0x59E5,0x916A,0x70D9,0x6D9D,0x52D2,0x4E50,0x96F7,0x956D, +0x857E,0x78CA,0x7D2F,0x5121,0x5792,0x64C2,0x808B,0x7C7B, +0x6CEA,0x68F1,0x695E,0x51B7,0x5398,0x68A8,0x7281,0x9ECE, +0x7BF1,0x72F8,0x79BB,0x6F13,0x7406,0x674E,0x91CC,0x9CA4, +0x793C,0x8389,0x8354,0x540F,0x6817,0x4E3D,0x5389,0x52B1, +0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x75E2,0x7ACB,0x7C92,0x6CA5,0x96B6,0x529B,0x7483,0x54E9, +0x4FE9,0x8054,0x83B2,0x8FDE,0x9570,0x5EC9,0x601C,0x6D9F, +0x5E18,0x655B,0x8138,0x94FE,0x604B,0x70BC,0x7EC3,0x7CAE, +0x51C9,0x6881,0x7CB1,0x826F,0x4E24,0x8F86,0x91CF,0x667E, +0x4EAE,0x8C05,0x64A9,0x804A,0x50DA,0x7597,0x71CE,0x5BE5, +0x8FBD,0x6F66,0x4E86,0x6482,0x9563,0x5ED6,0x6599,0x5217, +0x88C2,0x70C8,0x52A3,0x730E,0x7433,0x6797,0x78F7,0x9716, +0x4E34,0x90BB,0x9CDE,0x6DCB,0x51DB,0x8D41,0x541D,0x62CE, +0x73B2,0x83F1,0x96F6,0x9F84,0x94C3,0x4F36,0x7F9A,0x51CC, +0x7075,0x9675,0x5CAD,0x9886,0x53E6,0x4EE4,0x6E9C,0x7409, +0x69B4,0x786B,0x998F,0x7559,0x5218,0x7624,0x6D41,0x67F3, +0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9686,0x5784,0x62E2,0x9647,0x697C,0x5A04,0x6402,0x7BD3, +0x6F0F,0x964B,0x82A6,0x5362,0x9885,0x5E90,0x7089,0x63B3, +0x5364,0x864F,0x9C81,0x9E93,0x788C,0x9732,0x8DEF,0x8D42, +0x9E7F,0x6F5E,0x7984,0x5F55,0x9646,0x622E,0x9A74,0x5415, +0x94DD,0x4FA3,0x65C5,0x5C65,0x5C61,0x7F15,0x8651,0x6C2F, +0x5F8B,0x7387,0x6EE4,0x7EFF,0x5CE6,0x631B,0x5B6A,0x6EE6, +0x5375,0x4E71,0x63A0,0x7565,0x62A1,0x8F6E,0x4F26,0x4ED1, +0x6CA6,0x7EB6,0x8BBA,0x841D,0x87BA,0x7F57,0x903B,0x9523, +0x7BA9,0x9AA1,0x88F8,0x843D,0x6D1B,0x9A86,0x7EDC,0x5988, +0x9EBB,0x739B,0x7801,0x8682,0x9A6C,0x9A82,0x561B,0x5417, +0x57CB,0x4E70,0x9EA6,0x5356,0x8FC8,0x8109,0x7792,0x9992, +0x86EE,0x6EE1,0x8513,0x66FC,0x6162,0x6F2B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8C29,0x8292,0x832B,0x76F2,0x6C13,0x5FD9,0x83BD,0x732B, +0x8305,0x951A,0x6BDB,0x77DB,0x94C6,0x536F,0x8302,0x5192, +0x5E3D,0x8C8C,0x8D38,0x4E48,0x73AB,0x679A,0x6885,0x9176, +0x9709,0x7164,0x6CA1,0x7709,0x5A92,0x9541,0x6BCF,0x7F8E, +0x6627,0x5BD0,0x59B9,0x5A9A,0x95E8,0x95F7,0x4EEC,0x840C, +0x8499,0x6AAC,0x76DF,0x9530,0x731B,0x68A6,0x5B5F,0x772F, +0x919A,0x9761,0x7CDC,0x8FF7,0x8C1C,0x5F25,0x7C73,0x79D8, +0x89C5,0x6CCC,0x871C,0x5BC6,0x5E42,0x68C9,0x7720,0x7EF5, +0x5195,0x514D,0x52C9,0x5A29,0x7F05,0x9762,0x82D7,0x63CF, +0x7784,0x85D0,0x79D2,0x6E3A,0x5E99,0x5999,0x8511,0x706D, +0x6C11,0x62BF,0x76BF,0x654F,0x60AF,0x95FD,0x660E,0x879F, +0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6479,0x8611,0x6A21,0x819C,0x78E8,0x6469,0x9B54,0x62B9, +0x672B,0x83AB,0x58A8,0x9ED8,0x6CAB,0x6F20,0x5BDE,0x964C, +0x8C0B,0x725F,0x67D0,0x62C7,0x7261,0x4EA9,0x59C6,0x6BCD, +0x5893,0x66AE,0x5E55,0x52DF,0x6155,0x6728,0x76EE,0x7766, +0x7267,0x7A46,0x62FF,0x54EA,0x5450,0x94A0,0x90A3,0x5A1C, +0x7EB3,0x6C16,0x4E43,0x5976,0x8010,0x5948,0x5357,0x7537, +0x96BE,0x56CA,0x6320,0x8111,0x607C,0x95F9,0x6DD6,0x5462, +0x9981,0x5185,0x5AE9,0x80FD,0x59AE,0x9713,0x502A,0x6CE5, +0x5C3C,0x62DF,0x4F60,0x533F,0x817B,0x9006,0x6EBA,0x852B, +0x62C8,0x5E74,0x78BE,0x64B5,0x637B,0x5FF5,0x5A18,0x917F, +0x9E1F,0x5C3F,0x634F,0x8042,0x5B7D,0x556E,0x954A,0x954D, +0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x62E7,0x6CDE,0x725B,0x626D,0x94AE,0x7EBD,0x8113,0x6D53, +0x519C,0x5F04,0x5974,0x52AA,0x6012,0x5973,0x6696,0x8650, +0x759F,0x632A,0x61E6,0x7CEF,0x8BFA,0x54E6,0x6B27,0x9E25, +0x6BB4,0x85D5,0x5455,0x5076,0x6CA4,0x556A,0x8DB4,0x722C, +0x5E15,0x6015,0x7436,0x62CD,0x6392,0x724C,0x5F98,0x6E43, +0x6D3E,0x6500,0x6F58,0x76D8,0x78D0,0x76FC,0x7554,0x5224, +0x53DB,0x4E53,0x5E9E,0x65C1,0x802A,0x80D6,0x629B,0x5486, +0x5228,0x70AE,0x888D,0x8DD1,0x6CE1,0x5478,0x80DA,0x57F9, +0x88F4,0x8D54,0x966A,0x914D,0x4F69,0x6C9B,0x55B7,0x76C6, +0x7830,0x62A8,0x70F9,0x6F8E,0x5F6D,0x84EC,0x68DA,0x787C, +0x7BF7,0x81A8,0x670B,0x9E4F,0x6367,0x78B0,0x576F,0x7812, +0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5564,0x813E,0x75B2,0x76AE,0x5339,0x75DE,0x50FB,0x5C41, +0x8B6C,0x7BC7,0x504F,0x7247,0x9A97,0x98D8,0x6F02,0x74E2, +0x7968,0x6487,0x77A5,0x62FC,0x9891,0x8D2B,0x54C1,0x8058, +0x4E52,0x576A,0x82F9,0x840D,0x5E73,0x51ED,0x74F6,0x8BC4, +0x5C4F,0x5761,0x6CFC,0x9887,0x5A46,0x7834,0x9B44,0x8FEB, +0x7C95,0x5256,0x6251,0x94FA,0x4EC6,0x8386,0x8461,0x83E9, +0x84B2,0x57D4,0x6734,0x5703,0x666E,0x6D66,0x8C31,0x66DD, +0x7011,0x671F,0x6B3A,0x6816,0x621A,0x59BB,0x4E03,0x51C4, +0x6F06,0x67D2,0x6C8F,0x5176,0x68CB,0x5947,0x6B67,0x7566, +0x5D0E,0x8110,0x9F50,0x65D7,0x7948,0x7941,0x9A91,0x8D77, +0x5C82,0x4E5E,0x4F01,0x542F,0x5951,0x780C,0x5668,0x6C14, +0x8FC4,0x5F03,0x6C7D,0x6CE3,0x8BAB,0x6390, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6070,0x6D3D,0x7275,0x6266,0x948E,0x94C5,0x5343,0x8FC1, +0x7B7E,0x4EDF,0x8C26,0x4E7E,0x9ED4,0x94B1,0x94B3,0x524D, +0x6F5C,0x9063,0x6D45,0x8C34,0x5811,0x5D4C,0x6B20,0x6B49, +0x67AA,0x545B,0x8154,0x7F8C,0x5899,0x8537,0x5F3A,0x62A2, +0x6A47,0x9539,0x6572,0x6084,0x6865,0x77A7,0x4E54,0x4FA8, +0x5DE7,0x9798,0x64AC,0x7FD8,0x5CED,0x4FCF,0x7A8D,0x5207, +0x8304,0x4E14,0x602F,0x7A83,0x94A6,0x4FB5,0x4EB2,0x79E6, +0x7434,0x52E4,0x82B9,0x64D2,0x79BD,0x5BDD,0x6C81,0x9752, +0x8F7B,0x6C22,0x503E,0x537F,0x6E05,0x64CE,0x6674,0x6C30, +0x60C5,0x9877,0x8BF7,0x5E86,0x743C,0x7A77,0x79CB,0x4E18, +0x90B1,0x7403,0x6C42,0x56DA,0x914B,0x6CC5,0x8D8B,0x533A, +0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x53D6,0x5A36,0x9F8B,0x8DA3,0x53BB,0x5708,0x98A7,0x6743, +0x919B,0x6CC9,0x5168,0x75CA,0x62F3,0x72AC,0x5238,0x529D, +0x7F3A,0x7094,0x7638,0x5374,0x9E4A,0x69B7,0x786E,0x96C0, +0x88D9,0x7FA4,0x7136,0x71C3,0x5189,0x67D3,0x74E4,0x58E4, +0x6518,0x56B7,0x8BA9,0x9976,0x6270,0x7ED5,0x60F9,0x70ED, +0x58EC,0x4EC1,0x4EBA,0x5FCD,0x97E7,0x4EFB,0x8BA4,0x5203, +0x598A,0x7EAB,0x6254,0x4ECD,0x65E5,0x620E,0x8338,0x84C9, +0x8363,0x878D,0x7194,0x6EB6,0x5BB9,0x7ED2,0x5197,0x63C9, +0x67D4,0x8089,0x8339,0x8815,0x5112,0x5B7A,0x5982,0x8FB1, +0x4E73,0x6C5D,0x5165,0x8925,0x8F6F,0x962E,0x854A,0x745E, +0x9510,0x95F0,0x6DA6,0x82E5,0x5F31,0x6492,0x6D12,0x8428, +0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4F1E,0x6563,0x6851,0x55D3,0x4E27,0x6414,0x9A9A,0x626B, +0x5AC2,0x745F,0x8272,0x6DA9,0x68EE,0x50E7,0x838E,0x7802, +0x6740,0x5239,0x6C99,0x7EB1,0x50BB,0x5565,0x715E,0x7B5B, +0x6652,0x73CA,0x82EB,0x6749,0x5C71,0x5220,0x717D,0x886B, +0x95EA,0x9655,0x64C5,0x8D61,0x81B3,0x5584,0x6C55,0x6247, +0x7F2E,0x5892,0x4F24,0x5546,0x8D4F,0x664C,0x4E0A,0x5C1A, +0x88F3,0x68A2,0x634E,0x7A0D,0x70E7,0x828D,0x52FA,0x97F6, +0x5C11,0x54E8,0x90B5,0x7ECD,0x5962,0x8D4A,0x86C7,0x820C, +0x820D,0x8D66,0x6444,0x5C04,0x6151,0x6D89,0x793E,0x8BBE, +0x7837,0x7533,0x547B,0x4F38,0x8EAB,0x6DF1,0x5A20,0x7EC5, +0x795E,0x6C88,0x5BA1,0x5A76,0x751A,0x80BE,0x614E,0x6E17, +0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7701,0x76DB,0x5269,0x80DC,0x5723,0x5E08,0x5931,0x72EE, +0x65BD,0x6E7F,0x8BD7,0x5C38,0x8671,0x5341,0x77F3,0x62FE, +0x65F6,0x4EC0,0x98DF,0x8680,0x5B9E,0x8BC6,0x53F2,0x77E2, +0x4F7F,0x5C4E,0x9A76,0x59CB,0x5F0F,0x793A,0x58EB,0x4E16, +0x67FF,0x4E8B,0x62ED,0x8A93,0x901D,0x52BF,0x662F,0x55DC, +0x566C,0x9002,0x4ED5,0x4F8D,0x91CA,0x9970,0x6C0F,0x5E02, +0x6043,0x5BA4,0x89C6,0x8BD5,0x6536,0x624B,0x9996,0x5B88, +0x5BFF,0x6388,0x552E,0x53D7,0x7626,0x517D,0x852C,0x67A2, +0x68B3,0x6B8A,0x6292,0x8F93,0x53D4,0x8212,0x6DD1,0x758F, +0x4E66,0x8D4E,0x5B70,0x719F,0x85AF,0x6691,0x66D9,0x7F72, +0x8700,0x9ECD,0x9F20,0x5C5E,0x672F,0x8FF0,0x6811,0x675F, +0x620D,0x7AD6,0x5885,0x5EB6,0x6570,0x6F31, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6055,0x5237,0x800D,0x6454,0x8870,0x7529,0x5E05,0x6813, +0x62F4,0x971C,0x53CC,0x723D,0x8C01,0x6C34,0x7761,0x7A0E, +0x542E,0x77AC,0x987A,0x821C,0x8BF4,0x7855,0x6714,0x70C1, +0x65AF,0x6495,0x5636,0x601D,0x79C1,0x53F8,0x4E1D,0x6B7B, +0x8086,0x5BFA,0x55E3,0x56DB,0x4F3A,0x4F3C,0x9972,0x5DF3, +0x677E,0x8038,0x6002,0x9882,0x9001,0x5B8B,0x8BBC,0x8BF5, +0x641C,0x8258,0x64DE,0x55FD,0x82CF,0x9165,0x4FD7,0x7D20, +0x901F,0x7C9F,0x50F3,0x5851,0x6EAF,0x5BBF,0x8BC9,0x8083, +0x9178,0x849C,0x7B97,0x867D,0x968B,0x968F,0x7EE5,0x9AD3, +0x788E,0x5C81,0x7A57,0x9042,0x96A7,0x795F,0x5B59,0x635F, +0x7B0B,0x84D1,0x68AD,0x5506,0x7F29,0x7410,0x7D22,0x9501, +0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x736D,0x631E,0x8E4B,0x8E0F,0x80CE,0x82D4,0x62AC,0x53F0, +0x6CF0,0x915E,0x592A,0x6001,0x6C70,0x574D,0x644A,0x8D2A, +0x762B,0x6EE9,0x575B,0x6A80,0x75F0,0x6F6D,0x8C2D,0x8C08, +0x5766,0x6BEF,0x8892,0x78B3,0x63A2,0x53F9,0x70AD,0x6C64, +0x5858,0x642A,0x5802,0x68E0,0x819B,0x5510,0x7CD6,0x5018, +0x8EBA,0x6DCC,0x8D9F,0x70EB,0x638F,0x6D9B,0x6ED4,0x7EE6, +0x8404,0x6843,0x9003,0x6DD8,0x9676,0x8BA8,0x5957,0x7279, +0x85E4,0x817E,0x75BC,0x8A8A,0x68AF,0x5254,0x8E22,0x9511, +0x63D0,0x9898,0x8E44,0x557C,0x4F53,0x66FF,0x568F,0x60D5, +0x6D95,0x5243,0x5C49,0x5929,0x6DFB,0x586B,0x7530,0x751C, +0x606C,0x8214,0x8146,0x6311,0x6761,0x8FE2,0x773A,0x8DF3, +0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6C40,0x5EF7,0x505C,0x4EAD,0x5EAD,0x633A,0x8247,0x901A, +0x6850,0x916E,0x77B3,0x540C,0x94DC,0x5F64,0x7AE5,0x6876, +0x6345,0x7B52,0x7EDF,0x75DB,0x5077,0x6295,0x5934,0x900F, +0x51F8,0x79C3,0x7A81,0x56FE,0x5F92,0x9014,0x6D82,0x5C60, +0x571F,0x5410,0x5154,0x6E4D,0x56E2,0x63A8,0x9893,0x817F, +0x8715,0x892A,0x9000,0x541E,0x5C6F,0x81C0,0x62D6,0x6258, +0x8131,0x9E35,0x9640,0x9A6E,0x9A7C,0x692D,0x59A5,0x62D3, +0x553E,0x6316,0x54C7,0x86D9,0x6D3C,0x5A03,0x74E6,0x889C, +0x6B6A,0x5916,0x8C4C,0x5F2F,0x6E7E,0x73A9,0x987D,0x4E38, +0x70F7,0x5B8C,0x7897,0x633D,0x665A,0x7696,0x60CB,0x5B9B, +0x5A49,0x4E07,0x8155,0x6C6A,0x738B,0x4EA1,0x6789,0x7F51, +0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5DCD,0x5FAE,0x5371,0x97E6,0x8FDD,0x6845,0x56F4,0x552F, +0x60DF,0x4E3A,0x6F4D,0x7EF4,0x82C7,0x840E,0x59D4,0x4F1F, +0x4F2A,0x5C3E,0x7EAC,0x672A,0x851A,0x5473,0x754F,0x80C3, +0x5582,0x9B4F,0x4F4D,0x6E2D,0x8C13,0x5C09,0x6170,0x536B, +0x761F,0x6E29,0x868A,0x6587,0x95FB,0x7EB9,0x543B,0x7A33, +0x7D0A,0x95EE,0x55E1,0x7FC1,0x74EE,0x631D,0x8717,0x6DA1, +0x7A9D,0x6211,0x65A1,0x5367,0x63E1,0x6C83,0x5DEB,0x545C, +0x94A8,0x4E4C,0x6C61,0x8BEC,0x5C4B,0x65E0,0x829C,0x68A7, +0x543E,0x5434,0x6BCB,0x6B66,0x4E94,0x6342,0x5348,0x821E, +0x4F0D,0x4FAE,0x575E,0x620A,0x96FE,0x6664,0x7269,0x52FF, +0x52A1,0x609F,0x8BEF,0x6614,0x7199,0x6790,0x897F,0x7852, +0x77FD,0x6670,0x563B,0x5438,0x9521,0x727A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7A00,0x606F,0x5E0C,0x6089,0x819D,0x5915,0x60DC,0x7184, +0x70EF,0x6EAA,0x6C50,0x7280,0x6A84,0x88AD,0x5E2D,0x4E60, +0x5AB3,0x559C,0x94E3,0x6D17,0x7CFB,0x9699,0x620F,0x7EC6, +0x778E,0x867E,0x5323,0x971E,0x8F96,0x6687,0x5CE1,0x4FA0, +0x72ED,0x4E0B,0x53A6,0x590F,0x5413,0x6380,0x9528,0x5148, +0x4ED9,0x9C9C,0x7EA4,0x54B8,0x8D24,0x8854,0x8237,0x95F2, +0x6D8E,0x5F26,0x5ACC,0x663E,0x9669,0x73B0,0x732E,0x53BF, +0x817A,0x9985,0x7FA1,0x5BAA,0x9677,0x9650,0x7EBF,0x76F8, +0x53A2,0x9576,0x9999,0x7BB1,0x8944,0x6E58,0x4E61,0x7FD4, +0x7965,0x8BE6,0x60F3,0x54CD,0x4EAB,0x9879,0x5DF7,0x6A61, +0x50CF,0x5411,0x8C61,0x8427,0x785D,0x9704,0x524A,0x54EE, +0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5C0F,0x5B5D,0x6821,0x8096,0x5578,0x7B11,0x6548,0x6954, +0x4E9B,0x6B47,0x874E,0x978B,0x534F,0x631F,0x643A,0x90AA, +0x659C,0x80C1,0x8C10,0x5199,0x68B0,0x5378,0x87F9,0x61C8, +0x6CC4,0x6CFB,0x8C22,0x5C51,0x85AA,0x82AF,0x950C,0x6B23, +0x8F9B,0x65B0,0x5FFB,0x5FC3,0x4FE1,0x8845,0x661F,0x8165, +0x7329,0x60FA,0x5174,0x5211,0x578B,0x5F62,0x90A2,0x884C, +0x9192,0x5E78,0x674F,0x6027,0x59D3,0x5144,0x51F6,0x80F8, +0x5308,0x6C79,0x96C4,0x718A,0x4F11,0x4FEE,0x7F9E,0x673D, +0x55C5,0x9508,0x79C0,0x8896,0x7EE3,0x589F,0x620C,0x9700, +0x865A,0x5618,0x987B,0x5F90,0x8BB8,0x84C4,0x9157,0x53D9, +0x65ED,0x5E8F,0x755C,0x6064,0x7D6E,0x5A7F,0x7EEA,0x7EED, +0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9009,0x7663,0x7729,0x7EDA,0x9774,0x859B,0x5B66,0x7A74, +0x96EA,0x8840,0x52CB,0x718F,0x5FAA,0x65EC,0x8BE2,0x5BFB, +0x9A6F,0x5DE1,0x6B89,0x6C5B,0x8BAD,0x8BAF,0x900A,0x8FC5, +0x538B,0x62BC,0x9E26,0x9E2D,0x5440,0x4E2B,0x82BD,0x7259, +0x869C,0x5D16,0x8859,0x6DAF,0x96C5,0x54D1,0x4E9A,0x8BB6, +0x7109,0x54BD,0x9609,0x70DF,0x6DF9,0x76D0,0x4E25,0x7814, +0x8712,0x5CA9,0x5EF6,0x8A00,0x989C,0x960E,0x708E,0x6CBF, +0x5944,0x63A9,0x773C,0x884D,0x6F14,0x8273,0x5830,0x71D5, +0x538C,0x781A,0x96C1,0x5501,0x5F66,0x7130,0x5BB4,0x8C1A, +0x9A8C,0x6B83,0x592E,0x9E2F,0x79E7,0x6768,0x626C,0x4F6F, +0x75A1,0x7F8A,0x6D0B,0x9633,0x6C27,0x4EF0,0x75D2,0x517B, +0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6447,0x5C27,0x9065,0x7A91,0x8C23,0x59DA,0x54AC,0x8200, +0x836F,0x8981,0x8000,0x6930,0x564E,0x8036,0x7237,0x91CE, +0x51B6,0x4E5F,0x9875,0x6396,0x4E1A,0x53F6,0x66F3,0x814B, +0x591C,0x6DB2,0x4E00,0x58F9,0x533B,0x63D6,0x94F1,0x4F9D, +0x4F0A,0x8863,0x9890,0x5937,0x9057,0x79FB,0x4EEA,0x80F0, +0x7591,0x6C82,0x5B9C,0x59E8,0x5F5D,0x6905,0x8681,0x501A, +0x5DF2,0x4E59,0x77E3,0x4EE5,0x827A,0x6291,0x6613,0x9091, +0x5C79,0x4EBF,0x5F79,0x81C6,0x9038,0x8084,0x75AB,0x4EA6, +0x88D4,0x610F,0x6BC5,0x5FC6,0x4E49,0x76CA,0x6EA2,0x8BE3, +0x8BAE,0x8C0A,0x8BD1,0x5F02,0x7FFC,0x7FCC,0x7ECE,0x8335, +0x836B,0x56E0,0x6BB7,0x97F3,0x9634,0x59FB,0x541F,0x94F6, +0x6DEB,0x5BC5,0x996E,0x5C39,0x5F15,0x9690, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5370,0x82F1,0x6A31,0x5A74,0x9E70,0x5E94,0x7F28,0x83B9, +0x8424,0x8425,0x8367,0x8747,0x8FCE,0x8D62,0x76C8,0x5F71, +0x9896,0x786C,0x6620,0x54DF,0x62E5,0x4F63,0x81C3,0x75C8, +0x5EB8,0x96CD,0x8E0A,0x86F9,0x548F,0x6CF3,0x6D8C,0x6C38, +0x607F,0x52C7,0x7528,0x5E7D,0x4F18,0x60A0,0x5FE7,0x5C24, +0x7531,0x90AE,0x94C0,0x72B9,0x6CB9,0x6E38,0x9149,0x6709, +0x53CB,0x53F3,0x4F51,0x91C9,0x8BF1,0x53C8,0x5E7C,0x8FC2, +0x6DE4,0x4E8E,0x76C2,0x6986,0x865E,0x611A,0x8206,0x4F59, +0x4FDE,0x903E,0x9C7C,0x6109,0x6E1D,0x6E14,0x9685,0x4E88, +0x5A31,0x96E8,0x4E0E,0x5C7F,0x79B9,0x5B87,0x8BED,0x7FBD, +0x7389,0x57DF,0x828B,0x90C1,0x5401,0x9047,0x55BB,0x5CEA, +0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6D74,0x5BD3,0x88D5,0x9884,0x8C6B,0x9A6D,0x9E33,0x6E0A, +0x51A4,0x5143,0x57A3,0x8881,0x539F,0x63F4,0x8F95,0x56ED, +0x5458,0x5706,0x733F,0x6E90,0x7F18,0x8FDC,0x82D1,0x613F, +0x6028,0x9662,0x66F0,0x7EA6,0x8D8A,0x8DC3,0x94A5,0x5CB3, +0x7CA4,0x6708,0x60A6,0x9605,0x8018,0x4E91,0x90E7,0x5300, +0x9668,0x5141,0x8FD0,0x8574,0x915D,0x6655,0x97F5,0x5B55, +0x531D,0x7838,0x6742,0x683D,0x54C9,0x707E,0x5BB0,0x8F7D, +0x518D,0x5728,0x54B1,0x6512,0x6682,0x8D5E,0x8D43,0x810F, +0x846C,0x906D,0x7CDF,0x51FF,0x85FB,0x67A3,0x65E9,0x6FA1, +0x86A4,0x8E81,0x566A,0x9020,0x7682,0x7076,0x71E5,0x8D23, +0x62E9,0x5219,0x6CFD,0x8D3C,0x600E,0x589E,0x618E,0x66FE, +0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x94E1,0x95F8,0x7728,0x6805,0x69A8,0x548B,0x4E4D,0x70B8, +0x8BC8,0x6458,0x658B,0x5B85,0x7A84,0x503A,0x5BE8,0x77BB, +0x6BE1,0x8A79,0x7C98,0x6CBE,0x76CF,0x65A9,0x8F97,0x5D2D, +0x5C55,0x8638,0x6808,0x5360,0x6218,0x7AD9,0x6E5B,0x7EFD, +0x6A1F,0x7AE0,0x5F70,0x6F33,0x5F20,0x638C,0x6DA8,0x6756, +0x4E08,0x5E10,0x8D26,0x4ED7,0x80C0,0x7634,0x969C,0x62DB, +0x662D,0x627E,0x6CBC,0x8D75,0x7167,0x7F69,0x5146,0x8087, +0x53EC,0x906E,0x6298,0x54F2,0x86F0,0x8F99,0x8005,0x9517, +0x8517,0x8FD9,0x6D59,0x73CD,0x659F,0x771F,0x7504,0x7827, +0x81FB,0x8D1E,0x9488,0x4FA6,0x6795,0x75B9,0x8BCA,0x9707, +0x632F,0x9547,0x9635,0x84B8,0x6323,0x7741,0x5F81,0x72F0, +0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5E27,0x75C7,0x90D1,0x8BC1,0x829D,0x679D,0x652F,0x5431, +0x8718,0x77E5,0x80A2,0x8102,0x6C41,0x4E4B,0x7EC7,0x804C, +0x76F4,0x690D,0x6B96,0x6267,0x503C,0x4F84,0x5740,0x6307, +0x6B62,0x8DBE,0x53EA,0x65E8,0x7EB8,0x5FD7,0x631A,0x63B7, +0x81F3,0x81F4,0x7F6E,0x5E1C,0x5CD9,0x5236,0x667A,0x79E9, +0x7A1A,0x8D28,0x7099,0x75D4,0x6EDE,0x6CBB,0x7A92,0x4E2D, +0x76C5,0x5FE0,0x949F,0x8877,0x7EC8,0x79CD,0x80BF,0x91CD, +0x4EF2,0x4F17,0x821F,0x5468,0x5DDE,0x6D32,0x8BCC,0x7CA5, +0x8F74,0x8098,0x5E1A,0x5492,0x76B1,0x5B99,0x663C,0x9AA4, +0x73E0,0x682A,0x86DB,0x6731,0x732A,0x8BF8,0x8BDB,0x9010, +0x7AF9,0x70DB,0x716E,0x62C4,0x77A9,0x5631,0x4E3B,0x8457, +0x67F1,0x52A9,0x86C0,0x8D2E,0x94F8,0x7B51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4F4F,0x6CE8,0x795D,0x9A7B,0x6293,0x722A,0x62FD,0x4E13, +0x7816,0x8F6C,0x64B0,0x8D5A,0x7BC6,0x6869,0x5E84,0x88C5, +0x5986,0x649E,0x58EE,0x72B6,0x690E,0x9525,0x8FFD,0x8D58, +0x5760,0x7F00,0x8C06,0x51C6,0x6349,0x62D9,0x5353,0x684C, +0x7422,0x8301,0x914C,0x5544,0x7740,0x707C,0x6D4A,0x5179, +0x54A8,0x8D44,0x59FF,0x6ECB,0x6DC4,0x5B5C,0x7D2B,0x4ED4, +0x7C7D,0x6ED3,0x5B50,0x81EA,0x6E0D,0x5B57,0x9B03,0x68D5, +0x8E2A,0x5B97,0x7EFC,0x603B,0x7EB5,0x90B9,0x8D70,0x594F, +0x63CD,0x79DF,0x8DB3,0x5352,0x65CF,0x7956,0x8BC5,0x963B, +0x7EC4,0x94BB,0x7E82,0x5634,0x9189,0x6700,0x7F6A,0x5C0A, +0x9075,0x6628,0x5DE6,0x4F50,0x67DE,0x505A,0x4F5C,0x5750, +0x5EA7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4E8D,0x4E0C,0x5140,0x4E10,0x5EFF,0x5345,0x4E15,0x4E98, +0x4E1E,0x9B32,0x5B6C,0x5669,0x4E28,0x79BA,0x4E3F,0x5315, +0x4E47,0x592D,0x723B,0x536E,0x6C10,0x56DF,0x80E4,0x9997, +0x6BD3,0x777E,0x9F17,0x4E36,0x4E9F,0x9F10,0x4E5C,0x4E69, +0x4E93,0x8288,0x5B5B,0x556C,0x560F,0x4EC4,0x538D,0x539D, +0x53A3,0x53A5,0x53AE,0x9765,0x8D5D,0x531A,0x53F5,0x5326, +0x532E,0x533E,0x8D5C,0x5366,0x5363,0x5202,0x5208,0x520E, +0x522D,0x5233,0x523F,0x5240,0x524C,0x525E,0x5261,0x525C, +0x84AF,0x527D,0x5282,0x5281,0x5290,0x5293,0x5182,0x7F54, +0x4EBB,0x4EC3,0x4EC9,0x4EC2,0x4EE8,0x4EE1,0x4EEB,0x4EDE, +0x4F1B,0x4EF3,0x4F22,0x4F64,0x4EF5,0x4F25,0x4F27,0x4F09, +0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4F5F,0x4F57,0x4F32,0x4F3D,0x4F76,0x4F74,0x4F91,0x4F89, +0x4F83,0x4F8F,0x4F7E,0x4F7B,0x4FAA,0x4F7C,0x4FAC,0x4F94, +0x4FE6,0x4FE8,0x4FEA,0x4FC5,0x4FDA,0x4FE3,0x4FDC,0x4FD1, +0x4FDF,0x4FF8,0x5029,0x504C,0x4FF3,0x502C,0x500F,0x502E, +0x502D,0x4FFE,0x501C,0x500C,0x5025,0x5028,0x507E,0x5043, +0x5055,0x5048,0x504E,0x506C,0x507B,0x50A5,0x50A7,0x50A9, +0x50BA,0x50D6,0x5106,0x50ED,0x50EC,0x50E6,0x50EE,0x5107, +0x510B,0x4EDD,0x6C3D,0x4F58,0x4F65,0x4FCE,0x9FA0,0x6C46, +0x7C74,0x516E,0x5DFD,0x9EC9,0x9998,0x5181,0x5914,0x52F9, +0x530D,0x8A07,0x5310,0x51EB,0x5919,0x5155,0x4EA0,0x5156, +0x4EB3,0x886E,0x88A4,0x4EB5,0x8114,0x88D2,0x7980,0x5B34, +0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x51C7,0x5196,0x51A2,0x51A5,0x8BA0,0x8BA6,0x8BA7,0x8BAA, +0x8BB4,0x8BB5,0x8BB7,0x8BC2,0x8BC3,0x8BCB,0x8BCF,0x8BCE, +0x8BD2,0x8BD3,0x8BD4,0x8BD6,0x8BD8,0x8BD9,0x8BDC,0x8BDF, +0x8BE0,0x8BE4,0x8BE8,0x8BE9,0x8BEE,0x8BF0,0x8BF3,0x8BF6, +0x8BF9,0x8BFC,0x8BFF,0x8C00,0x8C02,0x8C04,0x8C07,0x8C0C, +0x8C0F,0x8C11,0x8C12,0x8C14,0x8C15,0x8C16,0x8C19,0x8C1B, +0x8C18,0x8C1D,0x8C1F,0x8C20,0x8C21,0x8C25,0x8C27,0x8C2A, +0x8C2B,0x8C2E,0x8C2F,0x8C32,0x8C33,0x8C35,0x8C36,0x5369, +0x537A,0x961D,0x9622,0x9621,0x9631,0x962A,0x963D,0x963C, +0x9642,0x9649,0x9654,0x965F,0x9667,0x966C,0x9672,0x9674, +0x9688,0x968D,0x9697,0x96B0,0x9097,0x909B,0x909D,0x9099, +0x90AC,0x90A1,0x90B4,0x90B3,0x90B6,0x90BA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x90B8,0x90B0,0x90CF,0x90C5,0x90BE,0x90D0,0x90C4,0x90C7, +0x90D3,0x90E6,0x90E2,0x90DC,0x90D7,0x90DB,0x90EB,0x90EF, +0x90FE,0x9104,0x9122,0x911E,0x9123,0x9131,0x912F,0x9139, +0x9143,0x9146,0x520D,0x5942,0x52A2,0x52AC,0x52AD,0x52BE, +0x54FF,0x52D0,0x52D6,0x52F0,0x53DF,0x71EE,0x77CD,0x5EF4, +0x51F5,0x51FC,0x9B2F,0x53B6,0x5F01,0x755A,0x5DEF,0x574C, +0x57A9,0x57A1,0x587E,0x58BC,0x58C5,0x58D1,0x5729,0x572C, +0x572A,0x5733,0x5739,0x572E,0x572F,0x575C,0x573B,0x5742, +0x5769,0x5785,0x576B,0x5786,0x577C,0x577B,0x5768,0x576D, +0x5776,0x5773,0x57AD,0x57A4,0x578C,0x57B2,0x57CF,0x57A7, +0x57B4,0x5793,0x57A0,0x57D5,0x57D8,0x57DA,0x57D9,0x57D2, +0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x580B,0x580D,0x57FD,0x57ED,0x5800,0x581E,0x5819,0x5844, +0x5820,0x5865,0x586C,0x5881,0x5889,0x589A,0x5880,0x99A8, +0x9F19,0x61FF,0x8279,0x827D,0x827F,0x828F,0x828A,0x82A8, +0x8284,0x828E,0x8291,0x8297,0x8299,0x82AB,0x82B8,0x82BE, +0x82B0,0x82C8,0x82CA,0x82E3,0x8298,0x82B7,0x82AE,0x82CB, +0x82CC,0x82C1,0x82A9,0x82B4,0x82A1,0x82AA,0x829F,0x82C4, +0x82CE,0x82A4,0x82E1,0x8309,0x82F7,0x82E4,0x830F,0x8307, +0x82DC,0x82F4,0x82D2,0x82D8,0x830C,0x82FB,0x82D3,0x8311, +0x831A,0x8306,0x8314,0x8315,0x82E0,0x82D5,0x831C,0x8351, +0x835B,0x835C,0x8308,0x8392,0x833C,0x8334,0x8331,0x839B, +0x835E,0x832F,0x834F,0x8347,0x8343,0x835F,0x8340,0x8317, +0x8360,0x832D,0x833A,0x8333,0x8366,0x8365, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8368,0x831B,0x8369,0x836C,0x836A,0x836D,0x836E,0x83B0, +0x8378,0x83B3,0x83B4,0x83A0,0x83AA,0x8393,0x839C,0x8385, +0x837C,0x83B6,0x83A9,0x837D,0x83B8,0x837B,0x8398,0x839E, +0x83A8,0x83BA,0x83BC,0x83C1,0x8401,0x83E5,0x83D8,0x5807, +0x8418,0x840B,0x83DD,0x83FD,0x83D6,0x841C,0x8438,0x8411, +0x8406,0x83D4,0x83DF,0x840F,0x8403,0x83F8,0x83F9,0x83EA, +0x83C5,0x83C0,0x8426,0x83F0,0x83E1,0x845C,0x8451,0x845A, +0x8459,0x8473,0x8487,0x8488,0x847A,0x8489,0x8478,0x843C, +0x8446,0x8469,0x8476,0x848C,0x848E,0x8431,0x846D,0x84C1, +0x84CD,0x84D0,0x84E6,0x84BD,0x84D3,0x84CA,0x84BF,0x84BA, +0x84E0,0x84A1,0x84B9,0x84B4,0x8497,0x84E5,0x84E3,0x850C, +0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8556,0x853B,0x84FF,0x84FC,0x8559,0x8548,0x8568,0x8564, +0x855E,0x857A,0x77A2,0x8543,0x8572,0x857B,0x85A4,0x85A8, +0x8587,0x858F,0x8579,0x85AE,0x859C,0x8585,0x85B9,0x85B7, +0x85B0,0x85D3,0x85C1,0x85DC,0x85FF,0x8627,0x8605,0x8629, +0x8616,0x863C,0x5EFE,0x5F08,0x593C,0x5941,0x8037,0x5955, +0x595A,0x5958,0x530F,0x5C22,0x5C25,0x5C2C,0x5C34,0x624C, +0x626A,0x629F,0x62BB,0x62CA,0x62DA,0x62D7,0x62EE,0x6322, +0x62F6,0x6339,0x634B,0x6343,0x63AD,0x63F6,0x6371,0x637A, +0x638E,0x63B4,0x636D,0x63AC,0x638A,0x6369,0x63AE,0x63BC, +0x63F2,0x63F8,0x63E0,0x63FF,0x63C4,0x63DE,0x63CE,0x6452, +0x63C6,0x63BE,0x6445,0x6441,0x640B,0x641B,0x6420,0x640C, +0x6426,0x6421,0x645E,0x6484,0x646D,0x6496, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x647A,0x64B7,0x64B8,0x6499,0x64BA,0x64C0,0x64D0,0x64D7, +0x64E4,0x64E2,0x6509,0x6525,0x652E,0x5F0B,0x5FD2,0x7519, +0x5F11,0x535F,0x53F1,0x53FD,0x53E9,0x53E8,0x53FB,0x5412, +0x5416,0x5406,0x544B,0x5452,0x5453,0x5454,0x5456,0x5443, +0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,0x5494,0x5477, +0x5471,0x5464,0x549A,0x549B,0x5484,0x5476,0x5466,0x549D, +0x54D0,0x54AD,0x54C2,0x54B4,0x54D2,0x54A7,0x54A6,0x54D3, +0x54D4,0x5472,0x54A3,0x54D5,0x54BB,0x54BF,0x54CC,0x54D9, +0x54DA,0x54DC,0x54A9,0x54AA,0x54A4,0x54DD,0x54CF,0x54DE, +0x551B,0x54E7,0x5520,0x54FD,0x5514,0x54F3,0x5522,0x5523, +0x550F,0x5511,0x5527,0x552A,0x5567,0x558F,0x55B5,0x5549, +0x556D,0x5541,0x5555,0x553F,0x5550,0x553C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530,0x555C, +0x558B,0x55D2,0x5583,0x55B1,0x55B9,0x5588,0x5581,0x559F, +0x557E,0x55D6,0x5591,0x557B,0x55DF,0x55BD,0x55BE,0x5594, +0x5599,0x55EA,0x55F7,0x55C9,0x561F,0x55D1,0x55EB,0x55EC, +0x55D4,0x55E6,0x55DD,0x55C4,0x55EF,0x55E5,0x55F2,0x55F3, +0x55CC,0x55CD,0x55E8,0x55F5,0x55E4,0x8F94,0x561E,0x5608, +0x560C,0x5601,0x5624,0x5623,0x55FE,0x5600,0x5627,0x562D, +0x5658,0x5639,0x5657,0x562C,0x564D,0x5662,0x5659,0x565C, +0x564C,0x5654,0x5686,0x5664,0x5671,0x566B,0x567B,0x567C, +0x5685,0x5693,0x56AF,0x56D4,0x56D7,0x56DD,0x56E1,0x56F5, +0x56EB,0x56F9,0x56FF,0x5704,0x570A,0x5709,0x571C,0x5E0F, +0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5E37,0x5E44,0x5E54,0x5E5B,0x5E5E,0x5E61,0x5C8C,0x5C7A, +0x5C8D,0x5C90,0x5C96,0x5C88,0x5C98,0x5C99,0x5C91,0x5C9A, +0x5C9C,0x5CB5,0x5CA2,0x5CBD,0x5CAC,0x5CAB,0x5CB1,0x5CA3, +0x5CC1,0x5CB7,0x5CC4,0x5CD2,0x5CE4,0x5CCB,0x5CE5,0x5D02, +0x5D03,0x5D27,0x5D26,0x5D2E,0x5D24,0x5D1E,0x5D06,0x5D1B, +0x5D58,0x5D3E,0x5D34,0x5D3D,0x5D6C,0x5D5B,0x5D6F,0x5D5D, +0x5D6B,0x5D4B,0x5D4A,0x5D69,0x5D74,0x5D82,0x5D99,0x5D9D, +0x8C73,0x5DB7,0x5DC5,0x5F73,0x5F77,0x5F82,0x5F87,0x5F89, +0x5F8C,0x5F95,0x5F99,0x5F9C,0x5FA8,0x5FAD,0x5FB5,0x5FBC, +0x8862,0x5F61,0x72AD,0x72B0,0x72B4,0x72B7,0x72B8,0x72C3, +0x72C1,0x72CE,0x72CD,0x72D2,0x72E8,0x72EF,0x72E9,0x72F2, +0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x72FB,0x7317,0x7313,0x7321,0x730A,0x731E,0x731D,0x7315, +0x7322,0x7339,0x7325,0x732C,0x7338,0x7331,0x7350,0x734D, +0x7357,0x7360,0x736C,0x736F,0x737E,0x821B,0x5925,0x98E7, +0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996A,0x996B, +0x996C,0x9974,0x9977,0x997D,0x9980,0x9984,0x9987,0x998A, +0x998D,0x9990,0x9991,0x9993,0x9994,0x9995,0x5E80,0x5E91, +0x5E8B,0x5E96,0x5EA5,0x5EA0,0x5EB9,0x5EB5,0x5EBE,0x5EB3, +0x8D53,0x5ED2,0x5ED1,0x5EDB,0x5EE8,0x5EEA,0x81BA,0x5FC4, +0x5FC9,0x5FD6,0x5FCF,0x6003,0x5FEE,0x6004,0x5FE1,0x5FE4, +0x5FFE,0x6005,0x6006,0x5FEA,0x5FED,0x5FF8,0x6019,0x6035, +0x6026,0x601B,0x600F,0x600D,0x6029,0x602B,0x600A,0x603F, +0x6021,0x6078,0x6079,0x607B,0x607A,0x6042, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x606A,0x607D,0x6096,0x609A,0x60AD,0x609D,0x6083,0x6092, +0x608C,0x609B,0x60EC,0x60BB,0x60B1,0x60DD,0x60D8,0x60C6, +0x60DA,0x60B4,0x6120,0x6126,0x6115,0x6123,0x60F4,0x6100, +0x610E,0x612B,0x614A,0x6175,0x61AC,0x6194,0x61A7,0x61B7, +0x61D4,0x61F5,0x5FDD,0x96B3,0x95E9,0x95EB,0x95F1,0x95F3, +0x95F5,0x95F6,0x95FC,0x95FE,0x9603,0x9604,0x9606,0x9608, +0x960A,0x960B,0x960C,0x960D,0x960F,0x9612,0x9615,0x9616, +0x9617,0x9619,0x961A,0x4E2C,0x723F,0x6215,0x6C35,0x6C54, +0x6C5C,0x6C4A,0x6CA3,0x6C85,0x6C90,0x6C94,0x6C8C,0x6C68, +0x6C69,0x6C74,0x6C76,0x6C86,0x6CA9,0x6CD0,0x6CD4,0x6CAD, +0x6CF7,0x6CF8,0x6CF1,0x6CD7,0x6CB2,0x6CE0,0x6CD6,0x6CFA, +0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6D39,0x6D27,0x6D0C,0x6D43,0x6D48,0x6D07,0x6D04,0x6D19, +0x6D0E,0x6D2B,0x6D4D,0x6D2E,0x6D35,0x6D1A,0x6D4F,0x6D52, +0x6D54,0x6D33,0x6D91,0x6D6F,0x6D9E,0x6DA0,0x6D5E,0x6D93, +0x6D94,0x6D5C,0x6D60,0x6D7C,0x6D63,0x6E1A,0x6DC7,0x6DC5, +0x6DDE,0x6E0E,0x6DBF,0x6DE0,0x6E11,0x6DE6,0x6DDD,0x6DD9, +0x6E16,0x6DAB,0x6E0C,0x6DAE,0x6E2B,0x6E6E,0x6E4E,0x6E6B, +0x6EB2,0x6E5F,0x6E86,0x6E53,0x6E54,0x6E32,0x6E25,0x6E44, +0x6EDF,0x6EB1,0x6E98,0x6EE0,0x6F2D,0x6EE2,0x6EA5,0x6EA7, +0x6EBD,0x6EBB,0x6EB7,0x6ED7,0x6EB4,0x6ECF,0x6E8F,0x6EC2, +0x6E9F,0x6F62,0x6F46,0x6F47,0x6F24,0x6F15,0x6EF9,0x6F2F, +0x6F36,0x6F4B,0x6F74,0x6F2A,0x6F09,0x6F29,0x6F89,0x6F8D, +0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6FC9,0x6FA7,0x6FB9,0x6FB6,0x6FC2,0x6FE1,0x6FEE,0x6FDE, +0x6FE0,0x6FEF,0x701A,0x7023,0x701B,0x7039,0x7035,0x704F, +0x705E,0x5B80,0x5B84,0x5B95,0x5B93,0x5BA5,0x5BB8,0x752F, +0x9A9E,0x6434,0x5BE4,0x5BEE,0x8930,0x5BF0,0x8E47,0x8B07, +0x8FB6,0x8FD3,0x8FD5,0x8FE5,0x8FEE,0x8FE4,0x8FE9,0x8FE6, +0x8FF3,0x8FE8,0x9005,0x9004,0x900B,0x9026,0x9011,0x900D, +0x9016,0x9021,0x9035,0x9036,0x902D,0x902F,0x9044,0x9051, +0x9052,0x9050,0x9068,0x9058,0x9062,0x905B,0x66B9,0x9074, +0x907D,0x9082,0x9088,0x9083,0x908B,0x5F50,0x5F57,0x5F56, +0x5F58,0x5C3B,0x54AB,0x5C50,0x5C59,0x5B71,0x5C63,0x5C66, +0x7FBC,0x5F2A,0x5F29,0x5F2D,0x8274,0x5F3C,0x9B3B,0x5C6E, +0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5997,0x59CA,0x59AB,0x599E,0x59A4,0x59D2,0x59B2,0x59AF, +0x59D7,0x59BE,0x5A05,0x5A06,0x59DD,0x5A08,0x59E3,0x59D8, +0x59F9,0x5A0C,0x5A09,0x5A32,0x5A34,0x5A11,0x5A23,0x5A13, +0x5A40,0x5A67,0x5A4A,0x5A55,0x5A3C,0x5A62,0x5A75,0x80EC, +0x5AAA,0x5A9B,0x5A77,0x5A7A,0x5ABE,0x5AEB,0x5AB2,0x5AD2, +0x5AD4,0x5AB8,0x5AE0,0x5AE3,0x5AF1,0x5AD6,0x5AE6,0x5AD8, +0x5ADC,0x5B09,0x5B17,0x5B16,0x5B32,0x5B37,0x5B40,0x5C15, +0x5C1C,0x5B5A,0x5B65,0x5B73,0x5B51,0x5B53,0x5B62,0x9A75, +0x9A77,0x9A78,0x9A7A,0x9A7F,0x9A7D,0x9A80,0x9A81,0x9A85, +0x9A88,0x9A8A,0x9A90,0x9A92,0x9A93,0x9A96,0x9A98,0x9A9B, +0x9A9C,0x9A9D,0x9A9F,0x9AA0,0x9AA2,0x9AA3,0x9AA5,0x9AA7, +0x7E9F,0x7EA1,0x7EA3,0x7EA5,0x7EA8,0x7EA9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7EAD,0x7EB0,0x7EBE,0x7EC0,0x7EC1,0x7EC2,0x7EC9,0x7ECB, +0x7ECC,0x7ED0,0x7ED4,0x7ED7,0x7EDB,0x7EE0,0x7EE1,0x7EE8, +0x7EEB,0x7EEE,0x7EEF,0x7EF1,0x7EF2,0x7F0D,0x7EF6,0x7EFA, +0x7EFB,0x7EFE,0x7F01,0x7F02,0x7F03,0x7F07,0x7F08,0x7F0B, +0x7F0C,0x7F0F,0x7F11,0x7F12,0x7F17,0x7F19,0x7F1C,0x7F1B, +0x7F1F,0x7F21,0x7F22,0x7F23,0x7F24,0x7F25,0x7F26,0x7F27, +0x7F2A,0x7F2B,0x7F2C,0x7F2D,0x7F2F,0x7F30,0x7F31,0x7F32, +0x7F33,0x7F35,0x5E7A,0x757F,0x5DDB,0x753E,0x9095,0x738E, +0x7391,0x73AE,0x73A2,0x739F,0x73CF,0x73C2,0x73D1,0x73B7, +0x73B3,0x73C0,0x73C9,0x73C8,0x73E5,0x73D9,0x987C,0x740A, +0x73E9,0x73E7,0x73DE,0x73BA,0x73F2,0x740F,0x742A,0x745B, +0x7426,0x7425,0x7428,0x7430,0x742E,0x742C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x741B,0x741A,0x7441,0x745C,0x7457,0x7455,0x7459,0x7477, +0x746D,0x747E,0x749C,0x748E,0x7480,0x7481,0x7487,0x748B, +0x749E,0x74A8,0x74A9,0x7490,0x74A7,0x74D2,0x74BA,0x97EA, +0x97EB,0x97EC,0x674C,0x6753,0x675E,0x6748,0x6769,0x67A5, +0x6787,0x676A,0x6773,0x6798,0x67A7,0x6775,0x67A8,0x679E, +0x67AD,0x678B,0x6777,0x677C,0x67F0,0x6809,0x67D8,0x680A, +0x67E9,0x67B0,0x680C,0x67D9,0x67B5,0x67DA,0x67B3,0x67DD, +0x6800,0x67C3,0x67B8,0x67E2,0x680E,0x67C1,0x67FD,0x6832, +0x6833,0x6860,0x6861,0x684E,0x6862,0x6844,0x6864,0x6883, +0x681D,0x6855,0x6866,0x6841,0x6867,0x6840,0x683E,0x684A, +0x6849,0x6829,0x68B5,0x688F,0x6874,0x6877,0x6893,0x686B, +0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6924,0x68F0,0x690B,0x6901,0x6957,0x68E3,0x6910,0x6971, +0x6939,0x6960,0x6942,0x695D,0x6984,0x696B,0x6980,0x6998, +0x6978,0x6934,0x69CC,0x6987,0x6988,0x69CE,0x6989,0x6966, +0x6963,0x6979,0x699B,0x69A7,0x69BB,0x69AB,0x69AD,0x69D4, +0x69B1,0x69C1,0x69CA,0x69DF,0x6995,0x69E0,0x698D,0x69FF, +0x6A2F,0x69ED,0x6A17,0x6A18,0x6A65,0x69F2,0x6A44,0x6A3E, +0x6AA0,0x6A50,0x6A5B,0x6A35,0x6A8E,0x6A79,0x6A3D,0x6A28, +0x6A58,0x6A7C,0x6A91,0x6A90,0x6AA9,0x6A97,0x6AAB,0x7337, +0x7352,0x6B81,0x6B82,0x6B87,0x6B84,0x6B92,0x6B93,0x6B8D, +0x6B9A,0x6B9B,0x6BA1,0x6BAA,0x8F6B,0x8F6D,0x8F71,0x8F72, +0x8F73,0x8F75,0x8F76,0x8F78,0x8F77,0x8F79,0x8F7A,0x8F7C, +0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8F8D,0x8F8E,0x8F8F,0x8F98,0x8F9A,0x8ECE,0x620B,0x6217, +0x621B,0x621F,0x6222,0x6221,0x6225,0x6224,0x622C,0x81E7, +0x74EF,0x74F4,0x74FF,0x750F,0x7511,0x7513,0x6534,0x65EE, +0x65EF,0x65F0,0x660A,0x6619,0x6772,0x6603,0x6615,0x6600, +0x7085,0x66F7,0x661D,0x6634,0x6631,0x6636,0x6635,0x8006, +0x665F,0x6654,0x6641,0x664F,0x6656,0x6661,0x6657,0x6677, +0x6684,0x668C,0x66A7,0x669D,0x66BE,0x66DB,0x66DC,0x66E6, +0x66E9,0x8D32,0x8D33,0x8D36,0x8D3B,0x8D3D,0x8D40,0x8D45, +0x8D46,0x8D48,0x8D49,0x8D47,0x8D4D,0x8D55,0x8D59,0x89C7, +0x89CA,0x89CB,0x89CC,0x89CE,0x89CF,0x89D0,0x89D1,0x726E, +0x729F,0x725D,0x7266,0x726F,0x727E,0x727F,0x7284,0x728B, +0x728D,0x728F,0x7292,0x6308,0x6332,0x63B0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x643F,0x64D8,0x8004,0x6BEA,0x6BF3,0x6BFD,0x6BF5,0x6BF9, +0x6C05,0x6C07,0x6C06,0x6C0D,0x6C15,0x6C18,0x6C19,0x6C1A, +0x6C21,0x6C29,0x6C24,0x6C2A,0x6C32,0x6535,0x6555,0x656B, +0x724D,0x7252,0x7256,0x7230,0x8662,0x5216,0x809F,0x809C, +0x8093,0x80BC,0x670A,0x80BD,0x80B1,0x80AB,0x80AD,0x80B4, +0x80B7,0x80E7,0x80E8,0x80E9,0x80EA,0x80DB,0x80C2,0x80C4, +0x80D9,0x80CD,0x80D7,0x6710,0x80DD,0x80EB,0x80F1,0x80F4, +0x80ED,0x810D,0x810E,0x80F2,0x80FC,0x6715,0x8112,0x8C5A, +0x8136,0x811E,0x812C,0x8118,0x8132,0x8148,0x814C,0x8153, +0x8174,0x8159,0x815A,0x8171,0x8160,0x8169,0x817C,0x817D, +0x816D,0x8167,0x584D,0x5AB5,0x8188,0x8182,0x8191,0x6ED5, +0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x81C1,0x81A6,0x6B24,0x6B37,0x6B39,0x6B43,0x6B46,0x6B59, +0x98D1,0x98D2,0x98D3,0x98D5,0x98D9,0x98DA,0x6BB3,0x5F40, +0x6BC2,0x89F3,0x6590,0x9F51,0x6593,0x65BC,0x65C6,0x65C4, +0x65C3,0x65CC,0x65CE,0x65D2,0x65D6,0x7080,0x709C,0x7096, +0x709D,0x70BB,0x70C0,0x70B7,0x70AB,0x70B1,0x70E8,0x70CA, +0x7110,0x7113,0x7116,0x712F,0x7131,0x7173,0x715C,0x7168, +0x7145,0x7172,0x714A,0x7178,0x717A,0x7198,0x71B3,0x71B5, +0x71A8,0x71A0,0x71E0,0x71D4,0x71E7,0x71F9,0x721D,0x7228, +0x706C,0x7118,0x7166,0x71B9,0x623E,0x623D,0x6243,0x6248, +0x6249,0x793B,0x7940,0x7946,0x7949,0x795B,0x795C,0x7953, +0x795A,0x7962,0x7957,0x7960,0x796F,0x7967,0x797A,0x7985, +0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x603C,0x605D,0x605A,0x6067,0x6041,0x6059,0x6063,0x60AB, +0x6106,0x610D,0x615D,0x61A9,0x619D,0x61CB,0x61D1,0x6206, +0x8080,0x807F,0x6C93,0x6CF6,0x6DFC,0x77F6,0x77F8,0x7800, +0x7809,0x7817,0x7818,0x7811,0x65AB,0x782D,0x781C,0x781D, +0x7839,0x783A,0x783B,0x781F,0x783C,0x7825,0x782C,0x7823, +0x7829,0x784E,0x786D,0x7856,0x7857,0x7826,0x7850,0x7847, +0x784C,0x786A,0x789B,0x7893,0x789A,0x7887,0x789C,0x78A1, +0x78A3,0x78B2,0x78B9,0x78A5,0x78D4,0x78D9,0x78C9,0x78EC, +0x78F2,0x7905,0x78F4,0x7913,0x7924,0x791E,0x7934,0x9F9B, +0x9EF9,0x9EFB,0x9EFC,0x76F1,0x7704,0x770D,0x76F9,0x7707, +0x7708,0x771A,0x7722,0x7719,0x772D,0x7726,0x7735,0x7738, +0x7750,0x7751,0x7747,0x7743,0x775A,0x7768, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7762,0x7765,0x777F,0x778D,0x777D,0x7780,0x778C,0x7791, +0x779F,0x77A0,0x77B0,0x77B5,0x77BD,0x753A,0x7540,0x754E, +0x754B,0x7548,0x755B,0x7572,0x7579,0x7583,0x7F58,0x7F61, +0x7F5F,0x8A48,0x7F68,0x7F74,0x7F71,0x7F79,0x7F81,0x7F7E, +0x76CD,0x76E5,0x8832,0x9485,0x9486,0x9487,0x948B,0x948A, +0x948C,0x948D,0x948F,0x9490,0x9494,0x9497,0x9495,0x949A, +0x949B,0x949C,0x94A3,0x94A4,0x94AB,0x94AA,0x94AD,0x94AC, +0x94AF,0x94B0,0x94B2,0x94B4,0x94B6,0x94B7,0x94B8,0x94B9, +0x94BA,0x94BC,0x94BD,0x94BF,0x94C4,0x94C8,0x94C9,0x94CA, +0x94CB,0x94CC,0x94CD,0x94CE,0x94D0,0x94D1,0x94D2,0x94D5, +0x94D6,0x94D7,0x94D9,0x94D8,0x94DB,0x94DE,0x94DF,0x94E0, +0x94E2,0x94E4,0x94E5,0x94E7,0x94E8,0x94EA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x94E9,0x94EB,0x94EE,0x94EF,0x94F3,0x94F4,0x94F5,0x94F7, +0x94F9,0x94FC,0x94FD,0x94FF,0x9503,0x9502,0x9506,0x9507, +0x9509,0x950A,0x950D,0x950E,0x950F,0x9512,0x9513,0x9514, +0x9515,0x9516,0x9518,0x951B,0x951D,0x951E,0x951F,0x9522, +0x952A,0x952B,0x9529,0x952C,0x9531,0x9532,0x9534,0x9536, +0x9537,0x9538,0x953C,0x953E,0x953F,0x9542,0x9535,0x9544, +0x9545,0x9546,0x9549,0x954C,0x954E,0x954F,0x9552,0x9553, +0x9554,0x9556,0x9557,0x9558,0x9559,0x955B,0x955E,0x955F, +0x955D,0x9561,0x9562,0x9564,0x9565,0x9566,0x9567,0x9568, +0x9569,0x956A,0x956B,0x956C,0x956F,0x9571,0x9572,0x9573, +0x953A,0x77E7,0x77EC,0x96C9,0x79D5,0x79ED,0x79E3,0x79EB, +0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7A39,0x7A37,0x7A51,0x9ECF,0x99A5,0x7A70,0x7688,0x768E, +0x7693,0x7699,0x76A4,0x74DE,0x74E0,0x752C,0x9E20,0x9E22, +0x9E28,0x9E29,0x9E2A,0x9E2B,0x9E2C,0x9E32,0x9E31,0x9E36, +0x9E38,0x9E37,0x9E39,0x9E3A,0x9E3E,0x9E41,0x9E42,0x9E44, +0x9E46,0x9E47,0x9E48,0x9E49,0x9E4B,0x9E4C,0x9E4E,0x9E51, +0x9E55,0x9E57,0x9E5A,0x9E5B,0x9E5C,0x9E5E,0x9E63,0x9E66, +0x9E67,0x9E68,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E71,0x9E6D, +0x9E73,0x7592,0x7594,0x7596,0x75A0,0x759D,0x75AC,0x75A3, +0x75B3,0x75B4,0x75B8,0x75C4,0x75B1,0x75B0,0x75C3,0x75C2, +0x75D6,0x75CD,0x75E3,0x75E8,0x75E6,0x75E4,0x75EB,0x75E7, +0x7603,0x75F1,0x75FC,0x75FF,0x7610,0x7600,0x7605,0x760C, +0x7617,0x760A,0x7625,0x7618,0x7615,0x7619, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x761B,0x763C,0x7622,0x7620,0x7640,0x762D,0x7630,0x763F, +0x7635,0x7643,0x763E,0x7633,0x764D,0x765E,0x7654,0x765C, +0x7656,0x766B,0x766F,0x7FCA,0x7AE6,0x7A78,0x7A79,0x7A80, +0x7A86,0x7A88,0x7A95,0x7AA6,0x7AA0,0x7AAC,0x7AA8,0x7AAD, +0x7AB3,0x8864,0x8869,0x8872,0x887D,0x887F,0x8882,0x88A2, +0x88C6,0x88B7,0x88BC,0x88C9,0x88E2,0x88CE,0x88E3,0x88E5, +0x88F1,0x891A,0x88FC,0x88E8,0x88FE,0x88F0,0x8921,0x8919, +0x8913,0x891B,0x890A,0x8934,0x892B,0x8936,0x8941,0x8966, +0x897B,0x758B,0x80E5,0x76B2,0x76B4,0x77DC,0x8012,0x8014, +0x8016,0x801C,0x8020,0x8022,0x8025,0x8026,0x8027,0x8029, +0x8028,0x8031,0x800B,0x8035,0x8043,0x8046,0x804D,0x8052, +0x8069,0x8071,0x8983,0x9878,0x9880,0x9883, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9889,0x988C,0x988D,0x988F,0x9894,0x989A,0x989B,0x989E, +0x989F,0x98A1,0x98A2,0x98A5,0x98A6,0x864D,0x8654,0x866C, +0x866E,0x867F,0x867A,0x867C,0x867B,0x86A8,0x868D,0x868B, +0x86AC,0x869D,0x86A7,0x86A3,0x86AA,0x8693,0x86A9,0x86B6, +0x86C4,0x86B5,0x86CE,0x86B0,0x86BA,0x86B1,0x86AF,0x86C9, +0x86CF,0x86B4,0x86E9,0x86F1,0x86F2,0x86ED,0x86F3,0x86D0, +0x8713,0x86DE,0x86F4,0x86DF,0x86D8,0x86D1,0x8703,0x8707, +0x86F8,0x8708,0x870A,0x870D,0x8709,0x8723,0x873B,0x871E, +0x8725,0x872E,0x871A,0x873E,0x8748,0x8734,0x8731,0x8729, +0x8737,0x873F,0x8782,0x8722,0x877D,0x877E,0x877B,0x8760, +0x8770,0x874C,0x876E,0x878B,0x8753,0x8763,0x877C,0x8764, +0x8759,0x8765,0x8793,0x87AF,0x87A8,0x87D2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x87C6,0x8788,0x8785,0x87AD,0x8797,0x8783,0x87AB,0x87E5, +0x87AC,0x87B5,0x87B3,0x87CB,0x87D3,0x87BD,0x87D1,0x87C0, +0x87CA,0x87DB,0x87EA,0x87E0,0x87EE,0x8816,0x8813,0x87FE, +0x880A,0x881B,0x8821,0x8839,0x883C,0x7F36,0x7F42,0x7F44, +0x7F45,0x8210,0x7AFA,0x7AFD,0x7B08,0x7B03,0x7B04,0x7B15, +0x7B0A,0x7B2B,0x7B0F,0x7B47,0x7B38,0x7B2A,0x7B19,0x7B2E, +0x7B31,0x7B20,0x7B25,0x7B24,0x7B33,0x7B3E,0x7B1E,0x7B58, +0x7B5A,0x7B45,0x7B75,0x7B4C,0x7B5D,0x7B60,0x7B6E,0x7B7B, +0x7B62,0x7B72,0x7B71,0x7B90,0x7BA6,0x7BA7,0x7BB8,0x7BAC, +0x7B9D,0x7BA8,0x7B85,0x7BAA,0x7B9C,0x7BA2,0x7BAB,0x7BB4, +0x7BD1,0x7BC1,0x7BCC,0x7BDD,0x7BDA,0x7BE5,0x7BE6,0x7BEA, +0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7C1F,0x7C2A,0x7C26,0x7C38,0x7C41,0x7C40,0x81FE,0x8201, +0x8202,0x8204,0x81EC,0x8844,0x8221,0x8222,0x8223,0x822D, +0x822F,0x8228,0x822B,0x8238,0x823B,0x8233,0x8234,0x823E, +0x8244,0x8249,0x824B,0x824F,0x825A,0x825F,0x8268,0x887E, +0x8885,0x8888,0x88D8,0x88DF,0x895E,0x7F9D,0x7F9F,0x7FA7, +0x7FAF,0x7FB0,0x7FB2,0x7C7C,0x6549,0x7C91,0x7C9D,0x7C9C, +0x7C9E,0x7CA2,0x7CB2,0x7CBC,0x7CBD,0x7CC1,0x7CC7,0x7CCC, +0x7CCD,0x7CC8,0x7CC5,0x7CD7,0x7CE8,0x826E,0x66A8,0x7FBF, +0x7FCE,0x7FD5,0x7FE5,0x7FE1,0x7FE6,0x7FE9,0x7FEE,0x7FF3, +0x7CF8,0x7D77,0x7DA6,0x7DAE,0x7E47,0x7E9B,0x9EB8,0x9EB4, +0x8D73,0x8D84,0x8D94,0x8D91,0x8DB1,0x8D67,0x8D6D,0x8C47, +0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9162,0x9161,0x9170,0x9169,0x916F,0x917D,0x917E,0x9172, +0x9174,0x9179,0x918C,0x9185,0x9190,0x918D,0x9191,0x91A2, +0x91A3,0x91AA,0x91AD,0x91AE,0x91AF,0x91B5,0x91B4,0x91BA, +0x8C55,0x9E7E,0x8DB8,0x8DEB,0x8E05,0x8E59,0x8E69,0x8DB5, +0x8DBF,0x8DBC,0x8DBA,0x8DC4,0x8DD6,0x8DD7,0x8DDA,0x8DDE, +0x8DCE,0x8DCF,0x8DDB,0x8DC6,0x8DEC,0x8DF7,0x8DF8,0x8DE3, +0x8DF9,0x8DFB,0x8DE4,0x8E09,0x8DFD,0x8E14,0x8E1D,0x8E1F, +0x8E2C,0x8E2E,0x8E23,0x8E2F,0x8E3A,0x8E40,0x8E39,0x8E35, +0x8E3D,0x8E31,0x8E49,0x8E41,0x8E42,0x8E51,0x8E52,0x8E4A, +0x8E70,0x8E76,0x8E7C,0x8E6F,0x8E74,0x8E85,0x8E8F,0x8E94, +0x8E90,0x8E9C,0x8E9E,0x8C78,0x8C82,0x8C8A,0x8C85,0x8C98, +0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x89E5,0x89EB,0x89EF,0x8A3E,0x8B26,0x9753,0x96E9,0x96F3, +0x96EF,0x9706,0x9701,0x9708,0x970F,0x970E,0x972A,0x972D, +0x9730,0x973E,0x9F80,0x9F83,0x9F85,0x9F86,0x9F87,0x9F88, +0x9F89,0x9F8A,0x9F8C,0x9EFE,0x9F0B,0x9F0D,0x96B9,0x96BC, +0x96BD,0x96CE,0x96D2,0x77BF,0x96E0,0x928E,0x92AE,0x92C8, +0x933E,0x936A,0x93CA,0x938F,0x943E,0x946B,0x9C7F,0x9C82, +0x9C85,0x9C86,0x9C87,0x9C88,0x7A23,0x9C8B,0x9C8E,0x9C90, +0x9C91,0x9C92,0x9C94,0x9C95,0x9C9A,0x9C9B,0x9C9E,0x9C9F, +0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA5,0x9CA6,0x9CA7,0x9CA8, +0x9CA9,0x9CAB,0x9CAD,0x9CAE,0x9CB0,0x9CB1,0x9CB2,0x9CB3, +0x9CB4,0x9CB5,0x9CB6,0x9CB7,0x9CBA,0x9CBB,0x9CBC,0x9CBD, +0x9CC4,0x9CC5,0x9CC6,0x9CC7,0x9CCA,0x9CCB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9CCC,0x9CCD,0x9CCE,0x9CCF,0x9CD0,0x9CD3,0x9CD4,0x9CD5, +0x9CD7,0x9CD8,0x9CD9,0x9CDC,0x9CDD,0x9CDF,0x9CE2,0x977C, +0x9785,0x9791,0x9792,0x9794,0x97AF,0x97AB,0x97A3,0x97B2, +0x97B4,0x9AB1,0x9AB0,0x9AB7,0x9E58,0x9AB6,0x9ABA,0x9ABC, +0x9AC1,0x9AC0,0x9AC5,0x9AC2,0x9ACB,0x9ACC,0x9AD1,0x9B45, +0x9B43,0x9B47,0x9B49,0x9B48,0x9B4D,0x9B51,0x98E8,0x990D, +0x992E,0x9955,0x9954,0x9ADF,0x9AE1,0x9AE6,0x9AEF,0x9AEB, +0x9AFB,0x9AED,0x9AF9,0x9B08,0x9B0F,0x9B13,0x9B1F,0x9B23, +0x9EBD,0x9EBE,0x7E3B,0x9E82,0x9E87,0x9E88,0x9E8B,0x9E92, +0x93D6,0x9E9D,0x9E9F,0x9EDB,0x9EDC,0x9EDD,0x9EE0,0x9EDF, +0x9EE2,0x9EE9,0x9EE7,0x9EE5,0x9EEA,0x9EEF,0x9F22,0x9F2C, +0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44}; + +static int func_gb2312_uni_onechar(int code){ + if ((code>=0x2121)&&(code<=0x2658)) + return(tab_gb2312_uni0[code-0x2121]); + if ((code>=0x2721)&&(code<=0x296F)) + return(tab_gb2312_uni1[code-0x2721]); + if ((code>=0x3021)&&(code<=0x777E)) + return(tab_gb2312_uni2[code-0x3021]); + return(0); +} + + +/* page 0 0x00A4-0x01DC */ +static const uint16 tab_uni_gb23120[]={ +0x2168, 0, 0,0x216C,0x2127, 0, 0, 0, + 0, 0, 0, 0,0x2163,0x2140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x2141, 0, 0, 0, 0, + 0, 0, 0, 0,0x2824,0x2822, 0, 0, + 0, 0, 0, 0,0x2828,0x2826,0x283A, 0, +0x282C,0x282A, 0, 0, 0, 0,0x2830,0x282E, + 0, 0, 0,0x2142, 0,0x2834,0x2832, 0, +0x2839, 0, 0, 0, 0,0x2821, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x2825, + 0, 0, 0, 0, 0, 0, 0,0x2827, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x2829, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x282D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x2831, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x2823, 0,0x282B, 0,0x282F, 0, +0x2833, 0,0x2835, 0,0x2836, 0,0x2837, 0, +0x2838}; + +/* page 1 0x02C7-0x0451 */ +static const uint16 tab_uni_gb23121[]={ +0x2126, 0,0x2125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x2621,0x2622,0x2623,0x2624,0x2625,0x2626, +0x2627,0x2628,0x2629,0x262A,0x262B,0x262C,0x262D,0x262E, +0x262F,0x2630,0x2631, 0,0x2632,0x2633,0x2634,0x2635, +0x2636,0x2637,0x2638, 0, 0, 0, 0, 0, + 0, 0,0x2641,0x2642,0x2643,0x2644,0x2645,0x2646, +0x2647,0x2648,0x2649,0x264A,0x264B,0x264C,0x264D,0x264E, +0x264F,0x2650,0x2651, 0,0x2652,0x2653,0x2654,0x2655, +0x2656,0x2657,0x2658, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x2727, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2728, +0x2729,0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730, +0x2731,0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,0x2738, +0x2739,0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,0x2740, +0x2741,0x2751,0x2752,0x2753,0x2754,0x2755,0x2756,0x2758, +0x2759,0x275A,0x275B,0x275C,0x275D,0x275E,0x275F,0x2760, +0x2761,0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,0x2768, +0x2769,0x276A,0x276B,0x276C,0x276D,0x276E,0x276F,0x2770, +0x2771, 0,0x2757}; + +/* page 2 0x2015-0x2312 */ +static const uint16 tab_uni_gb23122[]={ +0x212A,0x212C, 0,0x212E,0x212F, 0, 0,0x2130, +0x2131, 0, 0, 0, 0, 0, 0, 0, + 0,0x212D, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x216B, 0,0x2164,0x2165, 0, + 0, 0, 0, 0, 0, 0,0x2179, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x2166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x216D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x2271,0x2272,0x2273,0x2274,0x2275, +0x2276,0x2277,0x2278,0x2279,0x227A,0x227B,0x227C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x217B,0x217C,0x217A,0x217D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x214A, 0, 0, 0, 0, + 0, 0,0x2147, 0,0x2146, 0, 0, 0, + 0, 0, 0, 0, 0,0x214C, 0, 0, +0x2158,0x215E, 0,0x214F, 0, 0, 0, 0, +0x214E, 0,0x2144,0x2145,0x2149,0x2148,0x2152, 0, + 0,0x2153, 0, 0, 0, 0, 0,0x2160, +0x215F,0x2143,0x214B, 0, 0, 0, 0, 0, +0x2157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x2156, 0, 0, 0,0x2155, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x2159,0x2154, 0, 0,0x215C, +0x215D, 0, 0, 0, 0, 0, 0, 0, + 0,0x215A,0x215B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x2151, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x214D, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x2150}; + +/* page 3 0x2460-0x2642 */ +static const uint16 tab_uni_gb23123[]={ +0x2259,0x225A,0x225B,0x225C,0x225D,0x225E,0x225F,0x2260, +0x2261,0x2262, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x2245,0x2246,0x2247,0x2248, +0x2249,0x224A,0x224B,0x224C,0x224D,0x224E,0x224F,0x2250, +0x2251,0x2252,0x2253,0x2254,0x2255,0x2256,0x2257,0x2258, +0x2231,0x2232,0x2233,0x2234,0x2235,0x2236,0x2237,0x2238, +0x2239,0x223A,0x223B,0x223C,0x223D,0x223E,0x223F,0x2240, +0x2241,0x2242,0x2243,0x2244, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x2924,0x2925,0x2926,0x2927,0x2928,0x2929,0x292A,0x292B, +0x292C,0x292D,0x292E,0x292F,0x2930,0x2931,0x2932,0x2933, +0x2934,0x2935,0x2936,0x2937,0x2938,0x2939,0x293A,0x293B, +0x293C,0x293D,0x293E,0x293F,0x2940,0x2941,0x2942,0x2943, +0x2944,0x2945,0x2946,0x2947,0x2948,0x2949,0x294A,0x294B, +0x294C,0x294D,0x294E,0x294F,0x2950,0x2951,0x2952,0x2953, +0x2954,0x2955,0x2956,0x2957,0x2958,0x2959,0x295A,0x295B, +0x295C,0x295D,0x295E,0x295F,0x2960,0x2961,0x2962,0x2963, +0x2964,0x2965,0x2966,0x2967,0x2968,0x2969,0x296A,0x296B, +0x296C,0x296D,0x296E,0x296F, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x2176,0x2175, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x2178,0x2177, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x2174,0x2173, + 0, 0, 0,0x2170, 0, 0,0x2172,0x2171, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x216F,0x216E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x2162, 0,0x2161}; + +/* page 4 0x3000-0x3129 */ +static const uint16 tab_uni_gb23124[]={ +0x2121,0x2122,0x2123,0x2128, 0,0x2129, 0, 0, +0x2134,0x2135,0x2136,0x2137,0x2138,0x2139,0x213A,0x213B, +0x213E,0x213F, 0,0x217E,0x2132,0x2133,0x213C,0x213D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427, +0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F, +0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437, +0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F, +0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, +0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, +0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, +0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F, +0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, +0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, +0x2470,0x2471,0x2472,0x2473, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527, +0x2528,0x2529,0x252A,0x252B,0x252C,0x252D,0x252E,0x252F, +0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537, +0x2538,0x2539,0x253A,0x253B,0x253C,0x253D,0x253E,0x253F, +0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547, +0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F, +0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556,0x2557, +0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,0x255F, +0x2560,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567, +0x2568,0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F, +0x2570,0x2571,0x2572,0x2573,0x2574,0x2575,0x2576, 0, + 0, 0, 0,0x2124, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x2845,0x2846,0x2847, +0x2848,0x2849,0x284A,0x284B,0x284C,0x284D,0x284E,0x284F, +0x2850,0x2851,0x2852,0x2853,0x2854,0x2855,0x2856,0x2857, +0x2858,0x2859,0x285A,0x285B,0x285C,0x285D,0x285E,0x285F, +0x2860,0x2861,0x2862,0x2863,0x2864,0x2865,0x2866,0x2867, +0x2868,0x2869}; + +/* page 5 0x3220-0x3229 */ +static const uint16 tab_uni_gb23125[]={ +0x2265,0x2266,0x2267,0x2268,0x2269,0x226A,0x226B,0x226C, +0x226D,0x226E}; + +/* page 6 0x4E00-0x9B54 */ +static const uint16 tab_uni_gb23126[]={ +0x523B,0x3621, 0,0x465F, 0, 0, 0,0x4D72, +0x5549,0x487D,0x494F,0x4F42,0x5822,0x323B,0x536B, 0, +0x5824,0x3373, 0,0x5728,0x4752,0x5827,0x4A40, 0, +0x4770,0x317B,0x5235,0x3454,0x362B,0x4B3F,0x5829, 0, + 0, 0,0x362A, 0,0x413D,0x514F, 0,0x4925, +0x582D, 0,0x3876,0x513E,0x635C,0x5650, 0, 0, +0x3761, 0,0x342E, 0,0x4159, 0,0x583C, 0, +0x4D68,0x3524,0x4E2A,0x5677, 0,0x4076,0x3E59,0x582F, + 0, 0, 0,0x444B, 0,0x3E43, 0,0x5831, +0x4334,0x5265, 0,0x562E,0x4E5A,0x5527,0x3A75,0x3726, +0x4056, 0,0x4639,0x4552,0x4747, 0,0x3954, 0, +0x334B,0x5252, 0, 0,0x583F,0x3E45,0x4672,0x5232, +0x4F30,0x4F67, 0, 0, 0, 0,0x4A69, 0, + 0,0x5840, 0, 0, 0, 0, 0, 0, +0x4272,0x4252, 0,0x4869, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x472C, 0, + 0, 0, 0, 0, 0, 0,0x414B, 0, +0x5368,0x5579, 0,0x4A42,0x367E,0x5821,0x535A,0x3F77, + 0,0x5446,0x3B25,0x5841,0x4E65,0x3E2E, 0, 0, +0x5828, 0,0x5147,0x5029, 0, 0, 0,0x583D, +0x596F,0x4D76,0x3F3A, 0,0x3D3B,0x3A25,0x5260,0x327A, +0x3A60,0x4436, 0,0x4F6D,0x3E29,0x4D24,0x4141, 0, + 0, 0,0x4757,0x5971, 0,0x5974, 0, 0, + 0, 0,0x484B,0x5869, 0, 0, 0,0x525A, +0x4A32,0x484A,0x586C,0x586A,0x5846,0x3D76,0x464D,0x3370, + 0,0x586B,0x3D71,0x3D69, 0,0x4854,0x3453, 0, + 0,0x4258, 0,0x3256,0x5750,0x4A4B,0x4B7B,0x554C, +0x3836,0x4F49, 0, 0, 0,0x595A,0x5870,0x472A, + 0,0x586E, 0,0x347A,0x416E,0x5254, 0, 0, +0x586D, 0,0x5247,0x586F,0x4347, 0, 0, 0, +0x5176, 0,0x5659,0x5872, 0,0x5875,0x3C7E,0x3C5B, + 0, 0, 0,0x484E, 0,0x375D, 0,0x3742, + 0,0x4673, 0, 0, 0, 0, 0, 0, + 0,0x5878,0x5241, 0, 0,0x4E69,0x3C3F,0x377C, +0x3725,0x505D, 0, 0, 0, 0, 0,0x565A, +0x5345,0x3B6F,0x3B61,0x5871, 0, 0,0x4921,0x4E30, +0x342B, 0,0x5873, 0,0x494B,0x5876,0x4257,0x5877, + 0, 0,0x4E31,0x5879, 0, 0, 0,0x322E, +0x3940, 0,0x5923, 0,0x3069, 0,0x4166, 0, +0x496C, 0,0x4B45, 0,0x4B46,0x5924, 0, 0, + 0, 0, 0,0x3568, 0, 0,0x352B, 0, + 0, 0, 0, 0, 0,0x4E3B,0x354D,0x5721, +0x5774,0x5353, 0,0x4C65, 0,0x3A4E, 0,0x5922, +0x595C,0x5360,0x587D,0x3770,0x5777,0x587E,0x587A,0x5921, +0x4463, 0, 0,0x5336,0x5874,0x595D, 0,0x587B, + 0,0x4565, 0, 0,0x4050, 0, 0,0x5170, +0x305B, 0, 0,0x3C51,0x5926, 0,0x5925, 0, + 0, 0, 0,0x592C,0x592E, 0,0x592B,0x4A39, + 0, 0, 0,0x5929,0x5636, 0, 0, 0, +0x335E,0x5928, 0,0x407D, 0,0x4A4C, 0,0x592A, + 0,0x5927, 0, 0,0x5930, 0, 0,0x3631, + 0, 0, 0,0x3929, 0,0x5240, 0, 0, +0x4F40, 0, 0,0x4242, 0,0x3D44,0x556C,0x3260, +0x4748,0x3F6B,0x592D, 0,0x592F, 0,0x4E6A,0x3A6E, + 0, 0, 0, 0, 0,0x4756, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x3163, + 0, 0, 0,0x3459,0x366D,0x5934, 0, 0, + 0, 0,0x3F21, 0, 0, 0,0x595E,0x474E, +0x407E,0x5938, 0, 0, 0, 0, 0,0x4B57, +0x377D, 0,0x5935, 0,0x5937,0x3123,0x5361,0x5939, + 0,0x5045, 0,0x5936, 0, 0,0x5931, 0, +0x5932,0x4129,0x5933, 0, 0,0x3C73,0x505E,0x3829, + 0,0x3E63, 0,0x593D, 0, 0, 0, 0, +0x593A, 0,0x3033, 0, 0, 0,0x5942, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5944,0x3136, 0,0x593F, + 0, 0,0x3539, 0,0x3E73, 0, 0, 0, +0x4C48,0x3A72,0x5250, 0,0x5943, 0, 0,0x3D68, + 0,0x332B, 0, 0, 0,0x5945,0x3E6B, 0, +0x5946,0x593B,0x445F, 0,0x593E,0x5941,0x5940, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x552E, 0,0x5635, 0,0x4763, 0, + 0, 0, 0,0x5948, 0, 0, 0,0x3C59, +0x594A, 0, 0, 0,0x593C, 0,0x594B,0x462B, + 0, 0, 0, 0, 0,0x5949, 0, 0, + 0, 0,0x5776, 0,0x4D23, 0, 0, 0, + 0, 0, 0, 0, 0,0x3D21, 0, 0, + 0, 0, 0, 0,0x594C, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x453C,0x4D35, + 0, 0, 0,0x594D, 0, 0,0x5947,0x3325, +0x3F7E, 0, 0, 0, 0,0x3835, 0, 0, +0x407C, 0, 0, 0, 0,0x3078, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x3476, 0,0x594E, 0,0x594F, +0x3422,0x5950, 0, 0,0x345F, 0, 0, 0, + 0, 0,0x3041, 0, 0, 0, 0, 0, + 0, 0,0x5951,0x4935, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x4F71, + 0, 0, 0, 0, 0, 0,0x5952, 0, + 0, 0,0x4145, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x5956,0x492E, + 0, 0, 0, 0,0x5955,0x5954,0x5957, 0, + 0, 0, 0,0x4B5B, 0,0x3D29, 0, 0, + 0, 0, 0,0x4627, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x5953,0x5958, + 0, 0, 0,0x5959, 0, 0, 0, 0, + 0, 0,0x4865, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x405C, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x3679, +0x5823,0x544A, 0,0x542A,0x5056,0x3364,0x5557, 0, +0x4F48,0x3962, 0,0x3F4B, 0,0x4362, 0, 0, + 0,0x3652, 0, 0,0x4D43,0x596E,0x5970, 0, + 0, 0,0x3533, 0,0x3635, 0, 0, 0, + 0, 0,0x3E24, 0, 0,0x486B, 0, 0, +0x482B, 0, 0,0x304B,0x392B,0x4179,0x5962, 0, +0x403C,0x3932, 0,0x3958,0x504B,0x3178,0x4664,0x3E5F, +0x3564,0x5748, 0,0x5178,0x3C66,0x4A5E, 0, 0, +0x3C3D,0x5966,0x5867, 0, 0,0x445A, 0, 0, +0x3854,0x483D, 0, 0,0x3261,0x5459, 0, 0, + 0, 0,0x4330, 0, 0,0x4361,0x5A22,0x485F, + 0,0x5034, 0,0x3E7C,0x4529, 0, 0, 0, +0x395A, 0,0x5A23, 0,0x5429,0x5A24, 0, 0, + 0, 0, 0,0x597B,0x362C, 0, 0,0x376B, +0x3179,0x597C,0x3365,0x3E76, 0,0x3F76,0x5231,0x4064, + 0, 0, 0,0x3633,0x597E,0x597D, 0, 0, +0x3E3B, 0, 0, 0,0x4660, 0,0x573C,0x5A21, + 0,0x4139, 0,0x3572,0x4168, 0, 0,0x3C75, + 0,0x3455, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x415D, 0,0x447D, 0, 0, +0x3C38,0x3732, 0, 0,0x376F, 0, 0, 0, + 0, 0, 0,0x596C, 0,0x463E, 0,0x3F2D, +0x3B4B, 0, 0,0x354A, 0,0x5B49,0x5057, 0, +0x4D39,0x303C,0x3376,0x3B77,0x5B4A,0x3A2F, 0,0x5464, +0x3536,0x3573,0x5856,0x4850, 0, 0,0x3756,0x4750, +0x5857, 0,0x3F2F, 0, 0,0x5B3B,0x5858, 0, + 0,0x504C,0x3B2E, 0, 0, 0,0x6B3E,0x4150, +0x4175,0x5472,0x3855,0x3434, 0,0x3375, 0, 0, +0x493E, 0, 0, 0,0x4550, 0, 0, 0, +0x4559,0x407B, 0,0x3170, 0,0x5859,0x394E, 0, +0x353D, 0, 0,0x585A, 0, 0,0x5646,0x4B22, +0x482F,0x4932,0x344C,0x3F4C, 0,0x3974, 0,0x585B, +0x585C,0x3667,0x3C41,0x4C6A, 0, 0, 0, 0, + 0, 0,0x4F77, 0,0x585D,0x4730, 0, 0, +0x3950,0x3D23, 0, 0,0x4C5E, 0,0x464A, 0, + 0, 0, 0, 0,0x5860, 0,0x585E, 0, + 0,0x585F, 0, 0, 0,0x307E, 0,0x3E67, + 0,0x4A23,0x3C74, 0, 0, 0, 0,0x3831, + 0, 0,0x386E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x5862, 0,0x3D4B, + 0,0x5864,0x5863, 0, 0, 0, 0, 0, +0x457C, 0, 0, 0, 0, 0, 0, 0, +0x5865, 0, 0,0x5866, 0, 0, 0, 0, + 0, 0, 0,0x4126, 0,0x4830,0x306C,0x3926, +0x3C53,0x4E71,0x5B3D,0x4153, 0, 0, 0, 0, +0x362F,0x567A,0x452C,0x3D59,0x5B3E,0x5B3F, 0, 0, + 0,0x4078,0x3E22,0x404D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x5B40,0x4A46, + 0, 0, 0,0x322A, 0, 0, 0,0x5342, + 0,0x4363, 0,0x512B, 0, 0, 0, 0, +0x5B42, 0,0x4055, 0, 0, 0,0x5B43, 0, +0x3F31, 0, 0, 0, 0, 0, 0,0x443C, + 0, 0, 0, 0,0x475A, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5B44, 0, 0, 0, 0, 0, 0, 0, + 0,0x5968,0x4957, 0, 0, 0,0x3934,0x4E70, +0x5448, 0, 0, 0, 0,0x307C,0x3452, 0, +0x5059, 0, 0, 0, 0,0x5969, 0,0x5E4B, +0x596B, 0, 0, 0, 0,0x5830,0x3B2F,0x3131, + 0,0x3357,0x584E, 0, 0,0x5451, 0, 0, +0x3D33,0x3F6F, 0,0x4F3B, 0, 0,0x5850, 0, + 0, 0,0x374B, 0, 0, 0,0x5851, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x4625,0x4778,0x523D, 0, 0,0x5852,0x4464, + 0,0x4A2E, 0,0x4727, 0,0x5826, 0,0x497D, +0x4E67,0x3B5C,0x306B, 0, 0, 0,0x3B2A,0x502D, + 0,0x3130,0x5764,0x573F, 0,0x3525,0x4274,0x444F, + 0, 0,0x3229, 0,0x3237, 0,0x3165,0x5F32, +0x553C,0x3F28,0x422C,0x5855,0x4231, 0,0x5854,0x4E54, + 0,0x5A60, 0,0x4E40, 0, 0,0x5834,0x432E, +0x5321,0x4E23, 0,0x3C34,0x4834,0x4251, 0,0x3E6D, +0x5036, 0,0x5A61, 0, 0, 0, 0,0x4764, + 0, 0,0x3327, 0,0x3672,0x4C7C,0x407A, 0, + 0,0x4077, 0,0x5139,0x5161,0x5847, 0, 0, + 0, 0, 0, 0, 0,0x325E, 0, 0, +0x4065, 0,0x3A71, 0, 0,0x5848, 0,0x542D, + 0, 0,0x4F61,0x5849, 0,0x584A,0x4F43, 0, +0x3378,0x3E47, 0, 0, 0, 0,0x584B, 0, + 0, 0, 0, 0, 0, 0,0x5B4C, 0, + 0, 0, 0,0x4825, 0, 0, 0,0x4F58, + 0,0x487E,0x324E, 0, 0, 0, 0, 0, +0x5356,0x3266,0x3C30,0x5351,0x4B2B,0x3734, 0, 0, + 0,0x3722, 0, 0,0x4A65, 0,0x4821,0x4A5C, +0x3164,0x5070, 0,0x4551, 0, 0, 0,0x5B45, +0x357E, 0, 0,0x3F5A,0x3945,0x3E64,0x416D, 0, +0x5F36,0x5F35,0x563B,0x3D50,0x5559,0x3048,0x3623,0x3F49, +0x4C28,0x5F33,0x4A37,0x5352, 0,0x584F,0x5236,0x3A45, +0x4B3E,0x4C3E, 0,0x5F37,0x3570,0x5F34, 0, 0, + 0,0x5375, 0,0x3354,0x3877, 0,0x5F3A, 0, +0x3A4F,0x3C2A,0x3575, 0,0x4D2C,0x437B,0x3A73,0x4074, +0x4D42,0x4F72,0x5F38,0x4F45, 0,0x4240,0x5F39,0x4270, + 0, 0, 0,0x3E7D, 0,0x415F,0x4D4C,0x5277, +0x374D,0x5F41, 0,0x5F44, 0, 0,0x3771,0x3049, +0x3656,0x3754, 0,0x3A2C,0x4C7D,0x3F54,0x4B31,0x4674, + 0,0x5628,0x5F45, 0,0x4E62,0x3333, 0, 0, +0x4E7C,0x3435, 0,0x4E47,0x3A70, 0,0x4E61, 0, +0x513D, 0, 0,0x5F40, 0, 0,0x3474, 0, +0x334A, 0,0x3866,0x5F3B, 0, 0, 0, 0, +0x4445, 0,0x5F3C,0x5F3D,0x5F3E,0x453B,0x5F3F,0x5F42, +0x5431,0x5F43, 0,0x473A,0x4E58, 0, 0, 0, + 0, 0,0x4458, 0,0x5F4A, 0,0x5F4F, 0, +0x565C, 0, 0, 0, 0, 0, 0, 0, + 0,0x5F49,0x5F5A,0x4E36, 0,0x3A47,0x5F4E,0x5F48, +0x455E, 0, 0,0x496B,0x3A74,0x437C, 0, 0, +0x3E57, 0,0x5F46, 0,0x5F4D, 0,0x4558, 0, + 0, 0, 0,0x5526,0x3A4D, 0,0x3E4C,0x533D, +0x3840, 0,0x5664, 0,0x5F47,0x393E,0x3F27, 0, + 0,0x417C,0x5F4B,0x5F4C, 0,0x5F50, 0, 0, + 0, 0, 0,0x5F5B,0x5F65, 0,0x5F57,0x5F56, +0x5749,0x5F63,0x5F64,0x656B,0x5227,0x5F52, 0,0x3F29, + 0,0x545B, 0,0x3F48,0x5F54, 0, 0, 0, +0x4F4C, 0, 0,0x5F5D, 0,0x514A, 0,0x5F5E, +0x3027,0x4637,0x5F53, 0,0x3A65, 0,0x365F,0x4D5B, +0x397E,0x5455, 0, 0,0x5F5F,0x4F6C,0x3025,0x5F67, +0x5F51,0x5146,0x5F55,0x5F58,0x5F59,0x5F5C, 0,0x3B29, + 0,0x5F60,0x5F61, 0,0x5F62,0x5F66,0x5F68,0x5334, + 0, 0, 0, 0, 0,0x3867,0x4536,0x5F6A, +0x495A,0x4128,0x4444, 0, 0,0x3F5E,0x4F78, 0, + 0, 0,0x555C,0x5F6E, 0, 0, 0, 0, + 0, 0,0x3238, 0,0x3A5F,0x5F6C, 0,0x5B41, + 0,0x5164, 0, 0, 0, 0,0x4B74,0x343D, + 0,0x3026, 0, 0, 0, 0, 0,0x5F71, +0x4C46,0x5F72, 0, 0,0x5F6D, 0, 0, 0, + 0, 0, 0,0x5F69, 0, 0, 0, 0, +0x5F6B, 0,0x5F6F,0x5F70,0x3B3D, 0, 0,0x5F73, + 0, 0,0x5F74, 0,0x3B23, 0,0x4A5B,0x4E28, +0x6027,0x332A, 0,0x6026, 0, 0, 0,0x6021, + 0, 0, 0, 0,0x5F7E, 0,0x4D59,0x5F7C, + 0,0x5F7A, 0,0x3F50,0x5744, 0,0x494C, 0, + 0,0x5F78,0x3021, 0, 0, 0, 0, 0, +0x5F7D, 0, 0, 0, 0,0x5F7B,0x6022, 0, + 0, 0, 0, 0,0x6028, 0, 0, 0, + 0,0x3748, 0, 0,0x4621,0x4936,0x4032,0x5F75, + 0, 0,0x453E, 0,0x5844,0x5F79,0x4476, 0, + 0, 0, 0, 0, 0,0x6023,0x6024,0x6025, +0x5025, 0, 0,0x6034,0x4C64, 0,0x6031, 0, +0x3F26,0x602F,0x4E39,0x602B,0x4946, 0, 0,0x402E, +0x602E,0x3A6D,0x3A30,0x6029, 0, 0, 0,0x5F76, + 0,0x6033, 0, 0,0x6038, 0, 0, 0, +0x342D,0x6039, 0, 0,0x4F32,0x3A48, 0,0x6030, + 0, 0, 0, 0, 0, 0, 0,0x507A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x602C, 0,0x547B, 0,0x5F77, 0,0x4567, + 0,0x602D, 0,0x5377, 0,0x6036,0x6037, 0, + 0, 0, 0, 0,0x6044,0x5061, 0, 0, + 0,0x603C, 0, 0,0x6049,0x604A, 0, 0, + 0,0x603E,0x602A,0x4924,0x6041, 0,0x6032, 0, + 0, 0, 0, 0,0x4A48,0x6043, 0,0x6035, + 0,0x4E4B, 0,0x4B43,0x604D,0x6046,0x6042, 0, +0x604B, 0,0x603A,0x603F,0x6040, 0, 0,0x6045, + 0, 0,0x6047,0x6048, 0,0x604C, 0,0x603B, + 0, 0, 0, 0, 0,0x4B54,0x6055, 0, +0x6056,0x6052, 0, 0, 0, 0, 0, 0, +0x6050,0x3C4E, 0, 0,0x6051, 0,0x3842,0x5845, + 0, 0, 0, 0, 0, 0, 0, 0, +0x506A, 0, 0,0x426F, 0, 0,0x604F,0x603D, + 0, 0, 0,0x6054,0x6053, 0, 0,0x6057, + 0, 0, 0, 0,0x605C,0x6058, 0, 0, + 0,0x5676,0x3330, 0,0x576C, 0,0x4B3B, 0, + 0,0x605A, 0,0x4E7B, 0, 0, 0,0x3A59, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x6061,0x605D,0x522D, 0, + 0, 0, 0, 0,0x6062, 0, 0,0x605B, +0x6059,0x605F, 0, 0,0x6060, 0, 0, 0, + 0, 0,0x605E, 0,0x6064, 0, 0, 0, +0x4677,0x582C,0x546B,0x6066,0x4A49, 0, 0, 0, + 0,0x6065, 0, 0, 0, 0,0x3841, 0, + 0, 0, 0,0x6067,0x6068, 0, 0, 0, + 0, 0, 0, 0, 0,0x6069,0x6063, 0, + 0, 0, 0, 0, 0, 0,0x3A3F,0x4C67, + 0, 0, 0,0x606A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x4F79, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x606B, + 0, 0, 0, 0, 0, 0, 0,0x4842, + 0, 0, 0, 0,0x3D40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x4452, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x606C, 0, 0,0x606D, + 0, 0,0x4774,0x4B44, 0,0x606E,0x3B58,0x5836, +0x5272,0x606F,0x4D45, 0,0x365A, 0, 0, 0, + 0, 0, 0,0x6071, 0,0x5430, 0, 0, +0x4027,0x3451, 0, 0,0x4E27,0x6070, 0, 0, + 0,0x6072,0x394C, 0, 0,0x397A,0x4D3C,0x6073, + 0, 0, 0,0x4654,0x6074, 0,0x5432, 0, +0x4826,0x6076,0x6075, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x6077, 0, 0,0x4D41, + 0, 0, 0,0x4A25, 0, 0, 0, 0, +0x545A,0x5B57,0x5B59, 0,0x5B58,0x3967,0x5B5C,0x5B5D, +0x3558, 0, 0,0x5B5A, 0, 0, 0, 0, + 0,0x5B5B,0x3321,0x5B5F, 0, 0,0x3B78, 0, +0x5637, 0,0x5B60, 0, 0, 0, 0,0x3E79, + 0, 0,0x373B, 0,0x5B50,0x4C2E,0x3F32,0x3B35, +0x5778,0x3F53, 0, 0, 0, 0, 0,0x3F69, + 0, 0,0x3C61,0x4C33,0x5B5E,0x3053,0x4E6B,0x3758, +0x5739,0x4642, 0, 0,0x4024, 0,0x4C39, 0, +0x5B67,0x5B61,0x463A,0x5B63, 0,0x5B68, 0,0x4577, + 0, 0, 0,0x5B6A, 0, 0,0x5B69,0x3F40, + 0, 0, 0,0x5B66,0x5B65, 0, 0, 0, + 0, 0,0x3439,0x402C,0x4222,0x5B62,0x5B64, 0, + 0, 0, 0,0x504D,0x5B6D, 0, 0, 0, + 0, 0,0x405D,0x5B72, 0, 0, 0, 0, + 0, 0, 0,0x3662, 0, 0, 0, 0, +0x5B73,0x5B52,0x3938,0x542B,0x5B6C, 0,0x3F51,0x5B70, + 0,0x5B51, 0,0x3566, 0,0x5B6B,0x3F65, 0, + 0, 0,0x5B6E, 0,0x5B71, 0, 0, 0, +0x5B79, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x3921,0x3023, 0, 0, 0, 0, + 0, 0, 0,0x4271, 0, 0,0x3347,0x5B6F, + 0, 0,0x5B78, 0,0x4652,0x5B74, 0, 0, +0x5B75,0x5B77,0x5B76, 0, 0,0x5B7E, 0,0x5372, +0x323A, 0, 0, 0,0x5B7D, 0, 0, 0, + 0, 0, 0, 0, 0,0x5C24, 0,0x5B7B, + 0, 0, 0, 0,0x5B7A, 0, 0, 0, +0x5B7C,0x4560,0x3B79, 0, 0,0x5C23, 0, 0, +0x5C25, 0,0x4C43, 0, 0, 0,0x3651,0x5D40, + 0, 0, 0,0x5C21, 0,0x5C22, 0, 0, + 0,0x4735, 0, 0, 0,0x3669, 0, 0, + 0,0x5C27, 0, 0, 0, 0,0x5C26, 0, +0x5C29,0x3124, 0, 0,0x354C, 0, 0, 0, + 0, 0,0x3F30, 0, 0, 0, 0, 0, +0x515F, 0, 0, 0, 0,0x3642, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5C28, 0, 0, 0, + 0, 0, 0, 0,0x4B7A,0x6B73, 0, 0, + 0,0x4B5C, 0, 0,0x4B7E, 0, 0, 0, +0x4C41, 0, 0, 0, 0, 0,0x487B, 0, + 0, 0, 0, 0, 0,0x5C2A, 0, 0, + 0, 0, 0,0x4C6E,0x5C2B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x5B53, 0, +0x5C2F,0x5C2C, 0,0x3E33, 0,0x4A7B, 0, 0, + 0,0x5C2D, 0, 0, 0, 0, 0, 0, + 0, 0,0x494A,0x4439, 0, 0, 0, 0, + 0,0x473D,0x5C2E, 0, 0, 0,0x5476,0x5066, + 0, 0, 0, 0, 0, 0, 0, 0, +0x442B,0x3655, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5B54, 0, 0, 0, + 0,0x315A, 0, 0, 0,0x5B55, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5B56, 0, 0, 0,0x3A3E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x4840, 0, 0, 0, + 0, 0, 0,0x4A3F,0x4849, 0,0x5733, 0, +0x4979, 0, 0,0x3F47, 0, 0,0x3A78, 0, + 0,0x523C, 0, 0, 0, 0, 0, 0, + 0, 0,0x623A, 0,0x3426, 0, 0,0x3138, + 0, 0, 0, 0, 0,0x3834, 0,0x4F44, + 0, 0, 0, 0,0x5967,0x4F26,0x4D62, 0, + 0,0x596D,0x3660, 0,0x5239, 0, 0,0x393B, + 0, 0, 0, 0,0x6239,0x6237, 0,0x3473, + 0,0x4C6C,0x4C2B,0x3772, 0,0x5832,0x516B,0x3A3B, + 0,0x4A27, 0, 0,0x4D37, 0, 0,0x5244, +0x3F64,0x3C50,0x3661, 0,0x5E45, 0, 0, 0, + 0,0x5E46,0x5B3C, 0,0x5159, 0, 0,0x4666, +0x444E,0x376E, 0,0x375C, 0, 0,0x3F7C,0x5760, + 0,0x4675, 0, 0,0x313C,0x5E48,0x3D31,0x4C57, +0x5E4A, 0,0x5E49, 0, 0, 0, 0, 0, +0x356C, 0,0x495D, 0, 0,0x3042, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x452E,0x452B, 0,0x444C, 0, +0x3C69,0x4B7D, 0, 0, 0,0x3A43, 0, 0, + 0,0x6579,0x4867,0x657A,0x4D7D, 0,0x5731,0x383E, +0x4268, 0,0x4851, 0, 0,0x657B, 0, 0, + 0, 0,0x364A,0x3C4B, 0, 0,0x517D,0x6621, + 0,0x436E, 0, 0, 0, 0,0x6624, 0, + 0, 0, 0,0x657E,0x6625,0x4D57, 0, 0, +0x3741,0x657C,0x657D,0x6623, 0, 0,0x445D,0x6628, + 0, 0,0x6627, 0, 0, 0, 0, 0, + 0,0x4343, 0,0x465E, 0, 0,0x662A, 0, + 0, 0, 0, 0, 0, 0,0x4437, 0, + 0, 0,0x6622,0x4A3C, 0, 0, 0, 0, +0x3D63,0x3943,0x6626,0x5055,0x4E2F, 0, 0,0x6629, +0x6630, 0,0x5226, 0,0x3D2A,0x662D, 0, 0, + 0, 0, 0,0x662F, 0,0x4051, 0, 0, +0x524C, 0, 0, 0,0x3C27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6631, 0,0x5276, 0, 0, 0,0x574B, + 0,0x4D7E, 0,0x4D5E,0x4226,0x662B,0x662C,0x3D3F, +0x662E,0x6633, 0, 0,0x6632, 0, 0, 0, + 0,0x6636, 0,0x6638, 0, 0, 0, 0, +0x446F, 0, 0, 0,0x4448, 0, 0,0x3E6A, +0x496F, 0, 0,0x6637, 0,0x3670, 0, 0, + 0,0x4364, 0, 0, 0, 0, 0, 0, + 0,0x5369,0x6634, 0,0x6635, 0,0x4822, 0, + 0, 0, 0, 0,0x663D, 0, 0, 0, +0x6639, 0, 0, 0, 0, 0,0x4645, 0, + 0,0x4D71,0x663B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x663C, 0, 0, + 0, 0,0x3B69, 0, 0, 0, 0, 0, + 0, 0,0x663E, 0, 0, 0, 0,0x663A, + 0, 0,0x4037, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5324,0x663F,0x4974,0x6643, + 0, 0,0x6644, 0, 0, 0, 0,0x5076, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x433D, 0, 0, 0, 0, 0, + 0, 0,0x4344,0x6642, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6641, 0, 0, 0, 0, 0, + 0, 0,0x6647,0x4F31, 0,0x6B74, 0, 0, +0x664A, 0, 0, 0, 0, 0,0x6645, 0, + 0,0x3C5E,0x4929, 0, 0, 0, 0, 0, + 0,0x3C35, 0, 0,0x4F53, 0, 0, 0, + 0, 0,0x6648, 0,0x6649, 0,0x664E, 0, +0x6650, 0, 0, 0,0x6651, 0, 0, 0, +0x664B,0x3555, 0,0x664C, 0, 0,0x664F, 0, + 0,0x445B, 0,0x6646, 0, 0, 0, 0, + 0,0x664D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6652, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6654,0x6653, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6655, 0,0x5978, 0, 0,0x6656, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6657, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5753,0x665D, 0,0x665E,0x3F57,0x5450, 0,0x5756, +0x3466,0x4B6F,0x665A,0x5843,0x574E,0x5022, 0,0x434F, + 0, 0,0x665F,0x3C3E,0x3942,0x665B,0x5127, 0, + 0,0x3A22,0x424F, 0,0x582B, 0, 0, 0, +0x4A6B,0x656E, 0,0x665C, 0,0x3775, 0, 0, + 0, 0,0x4866, 0, 0,0x4475, 0, 0, +0x6532,0x447E, 0,0x4B7C,0x6533,0x552C, 0,0x536E, +0x4A58,0x3032, 0,0x4B4E,0x4D6A, 0, 0,0x3A6A, + 0, 0, 0,0x6535, 0,0x6534, 0,0x575A, +0x3959,0x5666,0x3628,0x4D70,0x524B,0x3126,0x4A35, 0, +0x3368,0x4973,0x3F4D,0x507B,0x4A52,0x6536,0x3B42, 0, + 0, 0,0x4F5C,0x392C, 0, 0, 0, 0, +0x5457, 0, 0,0x3A26,0x5167,0x4F7C,0x3C52, 0, +0x6537,0x485D, 0, 0, 0,0x3F6D,0x3176,0x4B5E, + 0, 0,0x3C45, 0,0x3C44,0x527A,0x435C,0x3F5C, + 0, 0, 0, 0,0x383B, 0, 0, 0, +0x4342, 0,0x3A2E,0x5422, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x475E,0x442F,0x326C, + 0,0x3951, 0, 0,0x653B,0x4148, 0, 0, +0x552F, 0, 0, 0, 0, 0,0x653C, 0, +0x653E, 0, 0, 0, 0, 0, 0, 0, +0x3467,0x3654,0x4B42,0x5130,0x353C, 0, 0,0x4A59, + 0,0x3762, 0, 0,0x4964, 0,0x3D2B, 0, + 0,0x4E3E,0x5770, 0, 0, 0, 0,0x5021, + 0,0x4959, 0, 0,0x367B,0x6658,0x3C62, 0, +0x333E, 0,0x4950, 0,0x6659,0x3322, 0, 0, + 0, 0,0x5E4C, 0,0x5348,0x5E4D, 0,0x5222, + 0, 0, 0, 0,0x5E4E, 0, 0, 0, + 0,0x3E4D, 0, 0,0x5E4F, 0, 0, 0, +0x4A2C,0x527C,0x335F,0x656A,0x4461,0x3E21,0x4E32,0x4472, +0x3E56,0x4628,0x3263, 0, 0,0x3E53, 0, 0, +0x477C,0x4C6B,0x3D6C,0x4E5D, 0, 0,0x4A3A,0x4641, +0x656C,0x503C, 0, 0, 0,0x5539, 0, 0, + 0,0x656D, 0, 0, 0, 0,0x4A74, 0, +0x4D40,0x4245, 0,0x656F, 0,0x4244,0x6570, 0, + 0, 0, 0, 0, 0, 0,0x6578,0x4D4D, + 0,0x493D, 0, 0, 0, 0, 0, 0, + 0,0x5259,0x6128, 0, 0, 0, 0,0x536C, + 0,0x4B6A,0x4671, 0, 0, 0, 0, 0, +0x612C, 0, 0, 0,0x6127,0x6129, 0, 0, +0x612A,0x612F, 0, 0,0x326D, 0,0x612B,0x385A, +0x612D,0x612E,0x6130,0x353A,0x6131, 0, 0, 0, + 0, 0,0x6133,0x6138, 0, 0, 0, 0, + 0,0x5152, 0,0x6136,0x6135,0x416B, 0, 0, + 0,0x6137, 0,0x5440, 0,0x6132, 0,0x613A, +0x3036, 0, 0, 0, 0,0x6134, 0,0x3F79, + 0,0x6139, 0, 0,0x613B, 0, 0, 0, + 0, 0, 0,0x613E, 0, 0, 0, 0, + 0, 0,0x613C, 0, 0, 0, 0, 0, + 0,0x5645, 0, 0, 0, 0, 0, 0, + 0,0x4F3F, 0, 0,0x613D,0x613F,0x424D, 0, +0x366B, 0,0x5378, 0, 0,0x474D, 0, 0, +0x3765, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x3E7E, 0, 0, 0, 0, + 0, 0,0x6140,0x6141, 0, 0,0x6147,0x3367, + 0, 0, 0, 0, 0, 0,0x4669, 0, + 0, 0, 0, 0,0x345E, 0,0x5142, 0, + 0, 0, 0,0x6148, 0, 0,0x6146, 0, + 0, 0, 0, 0,0x6145, 0,0x6143,0x6142, + 0,0x3140, 0, 0, 0,0x5538,0x6144, 0, + 0, 0, 0, 0,0x614B, 0, 0, 0, + 0, 0, 0, 0, 0,0x614C,0x614A, 0, + 0, 0, 0, 0, 0, 0, 0,0x6F7A, + 0, 0,0x6153,0x6152,0x4736, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6149, 0, 0,0x614E, 0,0x6150, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6154, 0,0x6151,0x614D, 0, 0,0x614F, + 0, 0, 0, 0,0x6155, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6156, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6157, 0, 0, 0,0x6158, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x615A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x615B, 0, 0, + 0, 0, 0, 0, 0,0x4E21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x675D, 0,0x3428,0x565D, 0, + 0,0x5132,0x3332, 0, 0,0x3924,0x5773,0x4749, +0x3E5E,0x392E, 0,0x4E57, 0, 0,0x326E,0x5B4F, + 0,0x3C3A,0x5251,0x4B48,0x304D, 0, 0,0x4F6F, + 0, 0, 0, 0, 0,0x5963,0x3D6D, 0, + 0,0x3152,0x4A50,0x323C, 0,0x4B27,0x372B, 0, +0x4A26, 0, 0, 0,0x4F23, 0, 0,0x6078, +0x554A,0x607B, 0, 0,0x607A,0x4541,0x4C7B, 0, +0x4131,0x6079,0x5663,0x322F,0x5644,0x355B, 0, 0, + 0, 0, 0, 0, 0, 0,0x3478,0x5621, + 0, 0, 0, 0, 0,0x4F2F,0x306F, 0, + 0,0x607C, 0, 0, 0, 0, 0,0x6121, +0x3323, 0, 0,0x607D,0x607E,0x4331, 0, 0, + 0, 0,0x435D, 0,0x6122,0x3779, 0, 0, + 0, 0, 0, 0,0x3B4F, 0, 0, 0, + 0, 0, 0, 0,0x6123,0x443B, 0, 0, + 0, 0, 0,0x6124, 0, 0,0x6125, 0, + 0,0x6126,0x3431, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x3849,0x463D,0x446A, 0,0x3222, 0, +0x5052, 0,0x675B,0x3B43,0x5357,0x5344, 0,0x3963, +0x624F, 0, 0, 0,0x572F, 0,0x476C,0x3153, + 0, 0,0x3432,0x6251, 0, 0, 0,0x5072, +0x422E,0x6250, 0,0x3F62,0x5326,0x3557,0x6252,0x356A, + 0,0x436D,0x387D, 0,0x382E, 0,0x4553,0x374F, +0x6254, 0, 0, 0, 0,0x6253,0x3648,0x5779, + 0, 0, 0, 0, 0,0x4D25, 0, 0, + 0, 0, 0,0x6258, 0,0x6256,0x4A7C,0x3F35, +0x5339,0x6255, 0, 0, 0, 0,0x6257, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x412E,0x4048, 0, 0, 0, 0, 0, + 0,0x625B,0x625A,0x402A, 0, 0,0x414E, 0, + 0, 0, 0,0x625C, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x625D, 0,0x625E, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5B48, 0,0x5153,0x4D22, + 0, 0,0x3D28, 0, 0, 0,0x5E43,0x5825, +0x3F2A,0x5B4D,0x526C,0x467A,0x452A, 0, 0, 0, +0x5E44, 0,0x3157,0x5F2E, 0, 0, 0,0x4A3D, + 0,0x5F31, 0,0x392D, 0,0x527D, 0,0x3825, +0x3A6B, 0, 0,0x335A, 0, 0, 0,0x355C, +0x5545, 0, 0, 0, 0,0x4356,0x4F52,0x3B21, + 0,0x6573,0x6572, 0, 0,0x6574, 0,0x4D64, + 0,0x4875, 0, 0, 0, 0, 0, 0, + 0,0x352F,0x473F, 0,0x6576, 0, 0, 0, +0x6C30, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6566, 0,0x3969,0x3531, 0,0x423C,0x6568,0x6567, +0x6569, 0, 0, 0, 0,0x524D, 0, 0, + 0,0x616A,0x504E, 0,0x4D2E, 0,0x5165, 0, + 0,0x324A,0x316B, 0,0x3172,0x456D, 0, 0, +0x5543,0x5330, 0,0x615C, 0, 0, 0,0x615D, + 0,0x525B, 0,0x3339,0x314B, 0, 0, 0, +0x4D79,0x5577,0x615E, 0,0x3E36,0x347D, 0,0x615F, +0x3A5C,0x6160,0x3B32,0x4249,0x6161, 0, 0, 0, +0x506C, 0,0x4D3D, 0, 0,0x6162, 0,0x3543, +0x4547,0x6163, 0, 0,0x6164, 0, 0, 0, + 0,0x5379, 0, 0, 0, 0, 0, 0, +0x6165, 0,0x512D, 0, 0,0x6166,0x4E22, 0, + 0, 0, 0, 0, 0,0x6167, 0,0x3542, + 0, 0, 0, 0,0x6168,0x3B55, 0, 0, + 0, 0, 0,0x5044,0x6260,0x3158,0x5264, 0, + 0,0x6261, 0, 0,0x3C49,0x484C, 0,0x6263, +0x6C7E,0x6C7D,0x5F2F, 0, 0, 0,0x6262,0x563E, +0x4D7C,0x4326, 0, 0, 0,0x6343, 0, 0, +0x5652,0x6267, 0, 0,0x6268, 0, 0,0x5347, + 0, 0,0x626C,0x3F6C, 0,0x626D,0x6265, 0, + 0,0x3340, 0, 0, 0,0x446E, 0, 0, +0x626E, 0, 0,0x5043, 0,0x3A76,0x6269,0x375E, +0x3B33,0x4C2C,0x4B4B,0x6264,0x6266,0x626A,0x626B, 0, + 0, 0,0x6277, 0, 0,0x6274,0x5475,0x6273, + 0, 0,0x452D, 0,0x557A,0x4542,0x3240, 0, + 0,0x626F, 0,0x6272,0x412F,0x4B3C, 0, 0, +0x3521,0x6279, 0, 0, 0,0x3C31,0x6271,0x5054, +0x5439,0x6275,0x3956,0x6276, 0, 0, 0,0x4753, + 0, 0, 0, 0, 0,0x6270, 0, 0, + 0, 0, 0,0x575C,0x6D21, 0, 0,0x6278, + 0,0x6D25,0x627E,0x4A51, 0, 0, 0, 0, + 0, 0, 0,0x4135, 0,0x3B50, 0, 0, +0x3F56, 0,0x3A63, 0, 0,0x4B21, 0, 0, + 0,0x6D26,0x6D23, 0, 0,0x6D22, 0, 0, + 0, 0,0x3B56,0x6D27,0x5074, 0, 0,0x6D24, +0x3A5E,0x3677,0x6321,0x3632,0x4C71,0x3927, 0,0x4F22, +0x4721, 0, 0,0x3F52, 0, 0,0x3671, 0, +0x627A,0x627B,0x627D,0x627C,0x4455,0x6322, 0,0x5341, + 0, 0, 0,0x6327,0x4744, 0, 0, 0, + 0,0x4F24, 0, 0,0x6329,0x3A37, 0, 0, + 0, 0,0x6328, 0,0x3B5A, 0,0x6323, 0, + 0, 0,0x6324,0x632A, 0,0x6326, 0,0x4E72, +0x5346, 0, 0,0x3B3C, 0, 0,0x5443, 0, +0x447A, 0, 0,0x6D28,0x507C,0x6325, 0,0x4375, + 0,0x632D,0x312F, 0,0x6332, 0, 0, 0, +0x3C42, 0, 0,0x632C,0x353F, 0, 0, 0, + 0, 0, 0, 0, 0,0x4769,0x6330, 0, + 0, 0,0x3E2A,0x4D6F, 0, 0, 0, 0, + 0,0x3B73, 0, 0, 0,0x4C68, 0, 0, +0x632F, 0,0x6331, 0,0x4F27,0x632E, 0,0x4E29, +0x3B5D, 0, 0, 0, 0, 0,0x356B,0x3E65, +0x3252,0x334D, 0,0x3139,0x632B,0x3251,0x352C,0x395F, +0x3668, 0, 0,0x4F6B,0x6337, 0,0x3B4C, 0, + 0,0x4847,0x504A, 0, 0, 0, 0, 0, +0x6338,0x336E, 0, 0, 0, 0,0x6D29, 0, +0x537A,0x5364, 0, 0, 0,0x6D2A,0x6339,0x5262, + 0, 0, 0, 0, 0,0x6335, 0, 0, + 0, 0,0x535E, 0, 0, 0, 0,0x3850, +0x6333, 0, 0,0x6336,0x375F, 0,0x6334,0x4022, + 0, 0, 0,0x633A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x5438, + 0, 0, 0, 0, 0, 0, 0, 0, +0x3448, 0,0x633B, 0,0x3B45, 0,0x4977, 0, + 0,0x4965, 0, 0, 0,0x443D, 0, 0, + 0, 0, 0, 0, 0,0x6D2B, 0, 0, + 0, 0,0x427D, 0, 0, 0, 0,0x3B5B, +0x3F2E, 0, 0, 0, 0, 0, 0, 0, +0x4E3F, 0, 0, 0, 0,0x633C, 0,0x3F36, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x316F, 0, 0,0x5477, 0, + 0, 0, 0, 0,0x633E, 0, 0, 0, + 0, 0, 0, 0, 0,0x6D2D, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x633F, +0x3A29,0x6D2C, 0, 0,0x633D, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6340, + 0, 0, 0, 0, 0, 0,0x3A36, 0, + 0, 0,0x362E, 0, 0, 0, 0, 0, +0x5038, 0,0x3043,0x6D2E, 0, 0, 0, 0, + 0,0x6D2F,0x4041, 0,0x6341, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x4533, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6342, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x5C32, + 0, 0, 0, 0, 0, 0,0x6D30, 0, +0x386A, 0,0x4E6C,0x6A27,0x5067,0x4A79,0x4856,0x4F37, +0x3349,0x4E52,0x3D64, 0, 0,0x635E,0x3B72,0x6A28, +0x553D, 0,0x465D,0x6A29, 0, 0, 0,0x6A2A, + 0,0x6A2C,0x6A2B, 0,0x6A2E,0x6A2D, 0, 0, + 0, 0,0x3D58, 0,0x6A2F, 0,0x423E, 0, + 0, 0, 0,0x3441,0x3477, 0, 0,0x3B27, + 0, 0, 0, 0, 0,0x6C66,0x6C65,0x373F, +0x4B79,0x3162, 0,0x6C67, 0, 0, 0,0x4948, +0x6C68,0x6C69, 0,0x4A56,0x5E50,0x3245,0x547A, 0, + 0,0x464B,0x3047,0x3472,0x4853, 0, 0, 0, +0x4D50, 0, 0,0x3F38, 0, 0, 0, 0, + 0, 0, 0,0x3F5B, 0, 0,0x4724,0x5634, + 0,0x4029,0x5E51,0x4928,0x516F,0x4524,0x3067,0x3336, +0x4845, 0, 0,0x3062, 0, 0,0x3776, 0, + 0,0x457A, 0, 0,0x3673, 0,0x5552,0x3350, +0x3C3C, 0, 0, 0,0x332D, 0, 0, 0, + 0,0x3E71,0x3051, 0, 0, 0, 0, 0, + 0,0x5256,0x4A63,0x5725, 0,0x4D36,0x3636,0x3F39, +0x555B, 0,0x3827,0x4557, 0, 0, 0,0x5E52, +0x3F59,0x4255,0x4740, 0,0x3B24,0x3128, 0, 0, +0x456A, 0, 0,0x457B,0x4C27, 0, 0, 0, + 0,0x3127, 0, 0, 0,0x3556, 0, 0, + 0,0x4428, 0,0x5E53,0x513A,0x3369, 0,0x4372, + 0, 0,0x3777, 0,0x5674,0x3523,0x3270,0x4434, +0x4469,0x402D,0x5E54, 0,0x3068,0x4544,0x4160, 0, +0x3955, 0,0x3E5C,0x4D58,0x304E, 0,0x4D4F,0x5E56, +0x3E50,0x573E,0x5E55,0x5550,0x305D, 0, 0,0x4462, + 0, 0,0x4223,0x3C70, 0,0x5335,0x4039,0x4521, +0x3226,0x5471, 0, 0,0x4028,0x4A43,0x5E57,0x557C, + 0,0x3930, 0,0x482D,0x4B29, 0,0x5E59,0x3F3D, + 0, 0, 0, 0,0x4634,0x5727,0x4A30,0x4443, + 0,0x3356,0x3952, 0, 0, 0, 0,0x5638, +0x6A7C,0x3034, 0, 0, 0, 0,0x3F66, 0, + 0,0x4C74, 0, 0, 0, 0,0x4D5A, 0, + 0, 0,0x563F,0x424E, 0,0x4E4E,0x4C22,0x502E, +0x4453,0x3532,0x5E58,0x5575,0x3C37,0x3B53, 0, 0, +0x3024, 0,0x4532,0x346C, 0, 0, 0,0x5571, + 0, 0,0x6A7D, 0, 0, 0, 0, 0, + 0,0x5E5A,0x4D26, 0, 0,0x4D6C, 0, 0, + 0, 0,0x4E66,0x5E5C, 0,0x4D31,0x4026, 0, + 0,0x573D, 0,0x5E5B,0x3046,0x3A34,0x4953,0x4473, +0x3E68, 0, 0, 0, 0,0x3236, 0, 0, + 0, 0, 0, 0, 0, 0,0x404C,0x4B70, + 0,0x3C71,0x3B3B,0x3537, 0, 0, 0,0x4575, + 0,0x5E66, 0, 0, 0,0x5E63,0x3E5D, 0, + 0,0x5E5F, 0, 0, 0, 0,0x3437,0x3D5D, + 0, 0,0x5E60,0x446D, 0, 0, 0, 0, +0x4F46, 0,0x3560, 0, 0, 0, 0,0x365E, +0x4A5A,0x3574,0x5E65, 0,0x5546, 0,0x5E61,0x4C4D, +0x467E, 0,0x4545, 0, 0, 0,0x5234, 0, +0x3E72, 0, 0, 0, 0, 0, 0, 0, +0x4253, 0,0x4C3D,0x3338, 0,0x3D53, 0,0x3F58, +0x4D46,0x515A,0x346B, 0,0x5E64,0x5E5D,0x5E67, 0, +0x6A7E, 0, 0,0x4230,0x5E62, 0, 0,0x5640, +0x3527, 0,0x3274, 0,0x5E68, 0,0x5E72, 0, + 0, 0, 0, 0,0x5E6D, 0,0x5E71, 0, + 0,0x4860, 0, 0, 0,0x5761,0x5E6F,0x4368, +0x4C61, 0,0x3265, 0, 0, 0,0x523E, 0, + 0, 0, 0, 0, 0, 0,0x5E6E, 0, +0x5E6B,0x4E55, 0,0x3427, 0, 0, 0, 0, + 0,0x3F2B,0x3E3E, 0, 0,0x3D52, 0, 0, + 0, 0,0x5E69, 0,0x542E, 0,0x5E5E, 0, +0x5E6A, 0, 0, 0, 0,0x403F, 0,0x5E6C, +0x3273,0x3869,0x4227, 0, 0,0x3D41, 0, 0, + 0, 0, 0,0x5E75,0x5E78, 0, 0,0x322B, +0x3424, 0, 0,0x346A,0x4926, 0, 0, 0, + 0, 0, 0,0x5E76,0x4B51, 0,0x3863, 0, +0x5E77,0x5E7A, 0, 0, 0, 0,0x5E79, 0, + 0, 0,0x4C42, 0,0x3061,0x346E, 0, 0, + 0, 0, 0, 0,0x653A, 0, 0, 0, + 0, 0,0x502F, 0, 0,0x326B, 0,0x6B21, + 0,0x5E74, 0, 0,0x4963,0x5E73,0x305A,0x5221, +0x3177, 0,0x4C2F, 0, 0, 0, 0, 0, + 0, 0,0x5E70, 0,0x4B24, 0, 0, 0, +0x552A, 0, 0, 0, 0, 0,0x5E7B, 0, + 0, 0, 0, 0, 0, 0, 0,0x345D, + 0,0x4426, 0, 0, 0,0x5E7D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x437E,0x4421,0x5F21, 0, 0, 0, 0, 0, + 0, 0,0x414C, 0,0x5E7C,0x3E6F, 0,0x4632, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3345,0x4876, 0, 0,0x4B3A,0x5E7E, 0, + 0,0x5F24, 0, 0, 0, 0,0x5732, 0, + 0, 0, 0, 0,0x3337, 0, 0, 0, + 0,0x4143, 0, 0,0x474B,0x3225,0x3469, 0, +0x572B, 0, 0, 0, 0,0x446C, 0,0x5F22, +0x5F23, 0,0x5F25, 0,0x3A33, 0, 0, 0, +0x5F26, 0,0x405E, 0, 0,0x4943, 0, 0, + 0, 0, 0, 0, 0,0x3259,0x4766, 0, +0x5F27, 0,0x475C, 0, 0, 0, 0,0x5F28, +0x6B22, 0, 0, 0, 0, 0,0x4B53, 0, + 0, 0,0x5F2A, 0,0x5F29, 0,0x3241, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x454A, 0, 0, 0, 0, 0, 0, 0, + 0,0x5F2B, 0, 0, 0, 0, 0, 0, + 0, 0,0x545C, 0, 0, 0, 0, 0, +0x4841, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x5F2C, 0, 0, + 0, 0, 0,0x3E70, 0, 0,0x5F2D,0x5627, + 0, 0, 0, 0,0x6A37,0x6B36,0x4A55, 0, +0x587C,0x3844, 0,0x3925, 0, 0,0x3745,0x557E, + 0, 0, 0, 0, 0,0x394A, 0, 0, +0x5027,0x744D, 0, 0,0x3550, 0, 0,0x4374, + 0,0x3E48, 0, 0, 0,0x6B37,0x303D, 0, + 0,0x3D4C, 0,0x4132, 0,0x3156,0x3328, 0, + 0, 0,0x3852,0x4922, 0, 0,0x3658, 0, + 0, 0, 0,0x6B38,0x3E34, 0, 0, 0, +0x4A7D, 0,0x4743, 0,0x557B, 0, 0,0x3773, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x4E44, + 0, 0, 0,0x552B,0x3173, 0, 0, 0, +0x6C33,0x305F, 0,0x6C35, 0, 0, 0,0x3637, + 0,0x414F, 0,0x757A,0x5031, 0, 0,0x5565, + 0,0x4E53, 0, 0,0x3D6F,0x3362, 0,0x382B, + 0,0x5536, 0,0x6D3D, 0,0x364F, 0,0x4B39, +0x5042, 0, 0, 0, 0, 0, 0, 0, + 0,0x373D, 0, 0,0x6C36,0x4A29, 0, 0, + 0,0x4554, 0,0x6C39,0x6C38,0x4243,0x6C37, 0, + 0, 0, 0,0x507D,0x6C3A, 0,0x6C3B,0x5765, + 0, 0,0x6C3C, 0, 0, 0,0x6C3D,0x466C, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4E5E, 0,0x3C48, 0, 0,0x4855,0x3529,0x3E49, +0x563C,0x5467, 0, 0,0x512E,0x5071,0x6A38,0x6A39, +0x6A3A,0x3A35, 0, 0, 0, 0,0x4A31,0x3F75, + 0, 0,0x4D7A, 0, 0, 0, 0, 0, +0x6A40, 0,0x303A,0x6A3E, 0, 0,0x4025, 0, + 0, 0,0x6A3B, 0,0x327D, 0,0x4377,0x3B68, + 0, 0, 0,0x5257,0x4E74,0x6A3F, 0, 0, + 0,0x6A3C, 0, 0, 0,0x6A43, 0,0x5047, +0x5333, 0, 0, 0, 0,0x343A, 0,0x4341, +0x5772, 0, 0, 0, 0,0x5551, 0,0x4A47, + 0,0x6A45, 0, 0,0x6A44,0x6A47,0x6A46, 0, + 0, 0, 0, 0,0x5667, 0,0x4F54, 0, + 0,0x6A4B, 0,0x3B4E, 0, 0, 0, 0, + 0, 0, 0,0x3D7A,0x494E, 0, 0,0x6A4C, + 0, 0,0x4939,0x4F7E,0x6A4A,0x544E,0x6A4D,0x6A4F, + 0, 0,0x4D6D, 0, 0, 0, 0,0x6A49, + 0,0x6A4E, 0, 0,0x4E6E, 0,0x3B5E, 0, +0x333F, 0, 0, 0, 0, 0,0x4655,0x3E30, +0x4E7A, 0, 0, 0,0x4767, 0,0x3E27,0x6A50, + 0, 0,0x5647, 0, 0, 0,0x4140, 0, + 0, 0,0x545D, 0,0x6A51, 0, 0,0x4F3E, + 0, 0, 0, 0,0x6A52, 0, 0, 0, + 0,0x4A6E, 0, 0, 0, 0,0x452F,0x3035, + 0, 0, 0, 0, 0,0x6A54, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6A53, +0x745F, 0, 0, 0, 0, 0,0x443A, 0, + 0, 0, 0, 0,0x3129, 0, 0, 0, + 0,0x655F, 0, 0, 0, 0,0x6A55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x4A6F, 0,0x6A56,0x6A57,0x4658, 0, 0, + 0, 0, 0, 0, 0, 0,0x6A58, 0, + 0,0x6A59, 0, 0, 0, 0, 0, 0, +0x543B, 0,0x477A,0x5237,0x387C, 0, 0,0x6A42, + 0,0x325C, 0, 0,0x427C, 0,0x5478,0x4C66, +0x576E, 0, 0, 0, 0, 0, 0, 0, +0x5442,0x5350,0x6B43,0x4573, 0,0x377E, 0, 0, +0x6B54, 0, 0, 0,0x4B37,0x6B5E, 0,0x404A, + 0, 0, 0,0x4D7B, 0,0x332F, 0,0x465A, + 0, 0, 0, 0, 0, 0,0x6B7C, 0, +0x443E, 0,0x4E34,0x4429,0x313E,0x547D, 0,0x4A75, + 0,0x566C, 0, 0,0x4653,0x3664, 0, 0, + 0, 0,0x3B7A, 0, 0,0x5060, 0, 0, +0x4931, 0,0x5453,0x4828, 0, 0,0x384B, 0, +0x683E,0x493C, 0, 0,0x683B, 0,0x406E,0x5053, +0x3244,0x3465, 0,0x683C, 0, 0,0x5548, 0, + 0, 0, 0, 0,0x3645, 0,0x683D,0x4A78, +0x385C,0x4C75, 0, 0, 0,0x4034, 0, 0, +0x516E,0x683F,0x6842, 0, 0,0x3A3C, 0,0x312D, +0x3D5C, 0,0x6A3D,0x6843, 0,0x6846, 0,0x684B, + 0, 0, 0, 0,0x684C, 0,0x4B49,0x3065, + 0,0x3C2B, 0, 0,0x3939, 0, 0,0x6841, + 0,0x4D77, 0,0x684A, 0, 0, 0, 0, +0x4E76, 0, 0, 0, 0,0x556D, 0,0x4156, +0x6844, 0,0x4336, 0,0x397B,0x5626,0x6848, 0, + 0, 0,0x4A60,0x5466, 0,0x6840, 0,0x6845, +0x6847, 0,0x4739,0x3763, 0,0x6849, 0,0x3F5D, +0x6852, 0, 0,0x6857, 0,0x6855,0x3C5C,0x3C4F, +0x685B, 0, 0, 0, 0, 0, 0, 0, + 0,0x685E, 0,0x685A,0x317A, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x3058, +0x4433,0x384C,0x4662,0x483E,0x4861, 0, 0, 0, +0x684F,0x6854,0x6856, 0,0x3971,0x6858,0x5775, 0, +0x447B, 0,0x685C, 0, 0,0x3269, 0, 0, + 0,0x6851, 0, 0,0x3C6D, 0, 0,0x3F42, +0x684D,0x5679, 0,0x4178,0x3271, 0, 0, 0, + 0, 0, 0, 0, 0,0x685F, 0,0x4A41, +0x6859, 0, 0, 0, 0,0x5524, 0,0x316A, +0x553B,0x684E,0x6850,0x3630,0x6853, 0,0x685D,0x4038, + 0,0x4A77, 0,0x4B28, 0, 0,0x465C,0x4075, + 0, 0, 0, 0, 0,0x6869, 0, 0, + 0,0x5023, 0, 0, 0, 0, 0, 0, + 0,0x6872,0x566A, 0, 0, 0, 0, 0, + 0, 0,0x6860,0x6861, 0, 0, 0,0x5179, +0x3A4B,0x3879, 0, 0,0x3871,0x5454,0x686F, 0, +0x686E,0x686C,0x3970,0x4C52,0x6866,0x4E26,0x3F72, 0, +0x3038,0x6871,0x6870, 0,0x5740, 0,0x6864, 0, +0x4D29,0x4923, 0,0x3B38,0x3D5B,0x686A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6862,0x6863,0x6865,0x3535,0x6867,0x4745,0x686B,0x686D, +0x3D30,0x572E, 0,0x6878, 0, 0, 0, 0, + 0, 0, 0, 0,0x6875, 0,0x4D30,0x6876, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x413A, 0,0x6868, 0,0x4337,0x3070, 0, + 0, 0, 0, 0, 0, 0, 0,0x6874, + 0, 0, 0,0x6877, 0, 0, 0,0x3923, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x4952, 0, 0, 0,0x434E,0x4E60, +0x4066, 0, 0, 0, 0,0x4B73, 0,0x4C5D, +0x5035, 0, 0,0x4A61, 0,0x6873, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x3C6C, 0,0x6879, 0, 0, 0, 0, 0, + 0,0x435E, 0,0x4665, 0,0x3977, 0, 0, + 0, 0,0x3074, 0, 0,0x5758, 0, 0, +0x3C2C, 0,0x456F, 0, 0, 0, 0, 0, +0x4C44, 0, 0,0x6926, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x492D, 0, +0x6922,0x4062, 0, 0, 0,0x3F43, 0, 0, + 0,0x687E,0x3957, 0,0x687B, 0, 0, 0, + 0,0x6924, 0, 0, 0,0x524E, 0, 0, + 0, 0, 0,0x6923, 0,0x5632,0x5735, 0, +0x6927, 0,0x3D37, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x687C, +0x687D, 0, 0, 0,0x6921, 0, 0, 0, + 0, 0, 0, 0, 0,0x4D56, 0, 0, +0x522C, 0, 0, 0,0x6932, 0, 0, 0, + 0,0x6929, 0, 0, 0,0x342A, 0,0x343B, + 0, 0,0x692B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5028, 0, 0,0x6925, + 0, 0,0x337E, 0, 0,0x692C,0x4063, 0, +0x692A, 0, 0,0x6939, 0, 0,0x6938, 0, + 0, 0, 0,0x692E, 0, 0,0x687A, 0, + 0,0x6928, 0, 0, 0, 0, 0,0x3F2C, +0x6931,0x693A, 0, 0,0x4225, 0, 0, 0, +0x692F, 0,0x3845, 0,0x692D, 0,0x535C,0x6934, +0x6935,0x6937, 0, 0, 0,0x6947, 0, 0, + 0, 0, 0, 0,0x4046,0x6945, 0, 0, +0x6930, 0, 0,0x693B,0x3071, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x693C, +0x5525, 0, 0,0x693E, 0,0x693F, 0, 0, + 0,0x6941, 0, 0,0x4171, 0, 0,0x4836, + 0, 0, 0,0x693D, 0, 0, 0, 0, + 0,0x6942, 0, 0, 0, 0, 0, 0, + 0, 0,0x6943, 0,0x6933, 0,0x6936, 0, +0x3B31, 0, 0, 0,0x6940, 0, 0, 0, + 0, 0, 0,0x3C77, 0, 0, 0,0x6944, +0x6946, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x694A, 0, 0, + 0, 0,0x694E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x325B, 0,0x6948, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x372E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x694B, +0x694C, 0, 0, 0, 0, 0, 0,0x5541, + 0,0x4423, 0, 0, 0, 0, 0, 0, +0x6958, 0,0x3A61, 0, 0, 0, 0,0x6949, + 0,0x5323, 0, 0, 0,0x6954, 0, 0, + 0, 0, 0, 0, 0,0x6957,0x6950, 0, + 0, 0, 0, 0,0x694F, 0, 0,0x4741, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6952, 0, 0, 0, 0, 0, 0, 0, +0x6959,0x3348, 0,0x6953, 0, 0, 0, 0, + 0,0x4F70, 0, 0, 0,0x694D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3377, 0, 0, 0, 0, 0, 0, + 0,0x6956, 0, 0,0x695A, 0, 0, 0, +0x4C34, 0, 0, 0,0x4F2D, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6955, 0, +0x695C,0x695B, 0, 0, 0, 0, 0,0x695E, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6951, 0, 0, 0, 0, 0, 0, 0, + 0,0x695D, 0,0x695F,0x434A, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4737,0x344E,0x3B36,0x5040,0x6C23, 0, 0,0x4537, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x537B, 0, 0, 0, 0,0x6C24, + 0,0x6C25,0x465B, 0, 0, 0,0x3F6E, 0, + 0, 0, 0,0x6C26, 0, 0,0x6C27,0x502A, + 0,0x4738, 0, 0,0x3868, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6C28, 0, 0, 0, 0, 0, 0, + 0, 0,0x5639,0x557D,0x344B,0x323D,0x4E64,0x4667, + 0, 0,0x4D61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3475, 0,0x4B40,0x3C5F, 0, 0, 0, + 0,0x6962,0x6963,0x516A,0x6965, 0,0x3479,0x6964, + 0,0x5133,0x4A62,0x3250, 0,0x6968, 0, 0, + 0, 0,0x6966,0x6967, 0, 0,0x5633, 0, + 0, 0,0x6969,0x696A, 0, 0, 0, 0, + 0,0x696B, 0, 0, 0, 0, 0, 0, + 0, 0,0x696C, 0, 0, 0, 0, 0, + 0, 0, 0,0x6C2F,0x4539,0x364E, 0,0x5273, + 0, 0, 0, 0, 0, 0, 0,0x356E, + 0,0x3B59,0x6C31, 0, 0,0x5263, 0, 0, + 0, 0, 0,0x4E63, 0,0x4438, 0,0x433F, + 0, 0,0x363E,0x5839,0x3148,0x314F,0x3151,0x457E, + 0,0x3150, 0,0x432B, 0, 0, 0, 0, + 0,0x5531, 0, 0, 0, 0, 0, 0, + 0, 0,0x6B24,0x3A41, 0, 0, 0,0x4C3A, + 0, 0, 0,0x6B25, 0,0x6B27, 0, 0, + 0,0x6B28, 0, 0, 0,0x6B26, 0, 0, + 0, 0, 0, 0, 0,0x6B29,0x6B2B,0x6B2A, + 0, 0, 0, 0, 0,0x6B2C, 0,0x4A4F, +0x5835,0x4371, 0,0x4325,0x4678,0x6B2D,0x444A, 0, +0x6B2E,0x6B2F,0x6B30,0x3755, 0, 0, 0,0x377A, + 0,0x6B31,0x4762, 0,0x6B33, 0,0x3A24,0x5175, +0x3031,0x6B32,0x6B34, 0, 0, 0,0x352A,0x4248, +0x4768, 0,0x6B35, 0,0x4B2E,0x635F, 0, 0, +0x5340, 0, 0, 0, 0,0x595B, 0, 0, +0x4D21,0x562D,0x4773, 0, 0, 0,0x5960,0x3B63, + 0,0x3A3A,0x6362, 0, 0, 0, 0, 0, +0x4F2B, 0, 0, 0,0x6360,0x4947, 0,0x3A39, + 0, 0, 0,0x5134,0x6361,0x486A,0x392F,0x3D2D, +0x3358,0x4E5B, 0, 0,0x4C40, 0, 0, 0, +0x6368,0x6369,0x4D74, 0, 0, 0, 0, 0, +0x4C2D, 0,0x3C33, 0,0x636A, 0,0x636B, 0, + 0,0x505A, 0, 0, 0,0x467B,0x375A, 0, + 0,0x475F,0x524A,0x4E56, 0,0x6364,0x636C, 0, +0x4972,0x3341, 0, 0,0x6367, 0, 0,0x4663, +0x6365, 0, 0,0x6D33,0x6366, 0, 0, 0, + 0,0x4933, 0,0x4566, 0, 0, 0,0x3935, + 0,0x433B, 0,0x6363,0x453D,0x4124,0x4259,0x3257, + 0,0x636D,0x3B26,0x442D, 0,0x6370,0x3E5A, 0, + 0,0x637B,0x6375,0x3A53, 0, 0, 0, 0, +0x3750,0x534D, 0,0x564E,0x5553,0x3941,0x5534,0x5158, + 0, 0, 0, 0,0x5039,0x4776, 0, 0, + 0,0x482A,0x3234, 0,0x435A, 0, 0, 0, +0x636E, 0, 0,0x637C,0x636F,0x3728,0x6377,0x6374, + 0, 0, 0,0x373A, 0, 0,0x4522, 0, +0x6376,0x455D,0x3228,0x467C, 0,0x4460, 0, 0, +0x5722, 0,0x4061,0x6379, 0, 0,0x637A,0x637D, +0x4C29,0x6373, 0,0x533E, 0,0x3143,0x6D34,0x6371, +0x6372, 0,0x6378,0x503A,0x4643,0x5473,0x637E, 0, + 0,0x3D60, 0, 0,0x6427, 0, 0,0x6426, + 0, 0, 0,0x5173,0x6423, 0,0x6429, 0, + 0, 0,0x4877, 0, 0, 0, 0,0x4F34, + 0,0x6428,0x642E,0x4265, 0, 0,0x3634, 0, + 0, 0, 0, 0, 0,0x3D72, 0,0x6422, + 0, 0,0x3A69,0x642A, 0, 0,0x642C, 0, + 0,0x367D,0x565E,0x6432, 0,0x642D, 0, 0, + 0,0x6421, 0,0x3B6E,0x4D5D,0x4722,0x4549, 0, + 0,0x4177, 0,0x6424, 0,0x4733,0x3D2C,0x3D3D, +0x6425, 0,0x5747,0x3262, 0,0x642B,0x3C43,0x642F, + 0,0x3B6B,0x6430,0x4528,0x6431, 0, 0, 0, + 0,0x5563,0x3F23, 0,0x643A, 0,0x6437, 0, +0x643B, 0, 0,0x643D, 0, 0,0x4656, 0, + 0,0x3A46,0x404B, 0, 0, 0,0x3821,0x6434, + 0, 0, 0, 0,0x5421, 0, 0,0x3A23, +0x3D7E, 0, 0, 0,0x643C, 0, 0, 0, + 0, 0,0x4D3F, 0, 0,0x4479, 0, 0, +0x4F7B,0x4966, 0, 0,0x533F, 0,0x4F51, 0, + 0,0x6433, 0,0x6438,0x6439,0x4C69, 0, 0, + 0, 0, 0,0x4C4E, 0,0x4054,0x6435,0x4130, +0x6436,0x4E50, 0,0x3B41,0x3553, 0,0x4873,0x3D27, +0x5547,0x492C,0x3822,0x644A, 0, 0,0x644C,0x5144, + 0, 0,0x523A, 0, 0,0x3A2D, 0, 0, +0x3A54, 0, 0, 0, 0, 0, 0,0x6443, +0x356D, 0, 0, 0,0x574D,0x6440,0x4F7D,0x643F, + 0, 0, 0,0x415C,0x4C4A, 0, 0, 0, + 0,0x4A67, 0, 0, 0, 0,0x4457, 0, +0x4C54,0x6448, 0, 0, 0,0x6447,0x6441, 0, +0x6444,0x352D, 0, 0,0x5359, 0,0x6446, 0, + 0, 0, 0,0x5279,0x3463, 0,0x3B34, 0, + 0,0x496E, 0,0x343E, 0, 0, 0,0x3B6C, + 0,0x514D, 0,0x4C6D,0x6D35, 0, 0, 0, + 0, 0, 0, 0, 0,0x4765, 0, 0, + 0, 0,0x5428, 0,0x644B,0x5755,0x6442, 0, +0x3D25,0x6445, 0, 0,0x5366, 0,0x6449,0x4978, + 0, 0,0x643E, 0, 0,0x5365, 0, 0, +0x477E,0x3649, 0,0x547C,0x3233,0x6457, 0, 0, + 0,0x4E42, 0,0x644D, 0,0x4E3C, 0,0x385B, + 0, 0,0x6456, 0,0x3F4A, 0, 0, 0, +0x534E, 0,0x436C, 0, 0, 0, 0, 0, + 0, 0, 0,0x4548,0x6458, 0, 0, 0, + 0, 0, 0, 0, 0,0x4D44,0x644F, 0, + 0, 0, 0,0x6454,0x6455, 0,0x3A7E, 0, +0x4F66, 0, 0,0x553F, 0, 0, 0,0x6452, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x6450, 0, 0,0x644E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x4D65,0x4A2A, + 0, 0, 0,0x4023, 0,0x3D26,0x6453, 0, + 0,0x3848, 0, 0, 0, 0, 0,0x6467, +0x5434, 0, 0, 0, 0, 0, 0, 0, +0x645B, 0, 0, 0,0x416F, 0, 0,0x6469, + 0, 0,0x5267, 0, 0,0x645F, 0,0x6460, + 0, 0,0x4F2A, 0, 0, 0, 0,0x4B5D, + 0,0x645A,0x6451, 0,0x6465, 0,0x485C,0x6463, + 0, 0,0x4467,0x6462, 0,0x6461, 0, 0, + 0,0x337C,0x6468, 0, 0, 0, 0,0x3561, + 0, 0, 0,0x574C, 0, 0, 0,0x6466, + 0,0x3B2C, 0,0x5752,0x4C4F,0x6B78, 0,0x6464, + 0, 0,0x3976, 0, 0, 0,0x564D,0x6459, +0x645C,0x427A,0x645E, 0,0x424B,0x4044,0x4250, 0, +0x3175,0x4C32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x354E, 0, 0, 0, + 0,0x646F, 0, 0, 0, 0, 0, 0, + 0, 0,0x462F, 0, 0, 0,0x4661, 0, + 0,0x6475, 0, 0, 0, 0, 0,0x4229, + 0, 0, 0,0x406C,0x515D,0x646E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x442E, 0, 0, 0,0x646D, 0, 0, 0, + 0,0x6476,0x6474,0x427E, 0,0x645D, 0,0x6470, + 0,0x4A7E, 0,0x5544, 0, 0,0x6471, 0, + 0, 0, 0, 0, 0, 0,0x517A, 0, + 0, 0, 0, 0, 0, 0,0x646B,0x646C, + 0, 0, 0,0x6472, 0,0x4E2B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x454B, 0, 0, 0,0x4731, 0,0x423A, 0, + 0, 0,0x646A, 0, 0, 0,0x414A, 0, + 0, 0, 0, 0, 0,0x4C36,0x3331, 0, + 0, 0,0x647B, 0,0x6473, 0, 0, 0, +0x647A, 0,0x647D, 0,0x647C, 0, 0, 0, + 0, 0, 0, 0,0x334E, 0, 0, 0, +0x333A,0x6477, 0, 0,0x6479,0x6478,0x456C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x403D, 0, 0, 0, + 0,0x5468, 0, 0, 0, 0, 0,0x6522, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x3044, 0, 0,0x6524, 0, + 0,0x6523, 0, 0, 0, 0, 0, 0, +0x3C24, 0,0x6525, 0, 0, 0, 0, 0, + 0,0x6521, 0, 0, 0, 0, 0, 0, + 0,0x647E,0x3174, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6528, 0, +0x6529,0x6526, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6527,0x652A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x4659, 0, 0, 0, 0, 0, 0, + 0, 0,0x652B,0x652D, 0, 0, 0, 0, + 0, 0, 0,0x652C, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x652F, 0, 0, + 0,0x652E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x3960, 0, 0,0x6530, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6531, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x3B70,0x6C61,0x4370, 0,0x3546, +0x3B52, 0, 0, 0, 0,0x4169,0x546E, 0, +0x3E44, 0, 0, 0,0x5746, 0,0x5456,0x3253, +0x6C3E, 0, 0, 0, 0,0x6A41, 0, 0, + 0,0x422F,0x3436, 0, 0, 0,0x5157, 0, + 0, 0,0x3334, 0,0x4832,0x3F3B,0x6C40, 0, + 0,0x564B, 0, 0,0x6C3F,0x6C41, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x6C45,0x3E66,0x4C3F,0x455A,0x3E3C, + 0,0x6C46, 0,0x317E, 0, 0, 0,0x6C44, +0x5528,0x3563, 0,0x6C42,0x4136,0x3363, 0, 0, +0x6C43,0x4B38,0x4043,0x4C7E, 0, 0, 0, 0, +0x4152, 0,0x6C48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x3A66,0x4053, 0,0x5672, 0, 0, 0,0x514C, + 0, 0, 0, 0,0x3F3E, 0,0x3733,0x4955, +0x6C47,0x3B62, 0,0x4C4C,0x3D7D,0x4848, 0,0x4F29, + 0, 0, 0, 0, 0, 0, 0,0x4D69, + 0,0x456B, 0, 0, 0,0x3769, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5149,0x3A38, 0, 0, 0, 0, 0, +0x6C49, 0, 0,0x6C4A, 0,0x3B40,0x6C4B, 0, +0x6C62,0x313A,0x3759, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x3D39, 0, + 0, 0, 0, 0, 0, 0, 0,0x6C4C, +0x5166,0x6C4D, 0, 0, 0, 0,0x483B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6C51, 0, 0, + 0, 0,0x6C53, 0,0x3B4D, 0,0x3C65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x6C4F, 0,0x4937, 0, + 0, 0, 0, 0,0x433A, 0,0x6C63,0x5555, +0x6C50, 0, 0, 0, 0, 0,0x5673, 0, + 0, 0,0x6C52,0x6C4E, 0, 0, 0, 0, +0x6C54, 0,0x6C55, 0, 0,0x493F, 0, 0, + 0, 0, 0, 0,0x4F28, 0, 0, 0, + 0, 0,0x505C, 0, 0, 0, 0,0x512C, + 0, 0, 0, 0,0x485B, 0, 0, 0, +0x6C56,0x4E75, 0, 0, 0, 0, 0,0x4A6C, +0x6C5A, 0, 0, 0, 0, 0, 0, 0, +0x6C59, 0, 0, 0,0x303E, 0, 0, 0, + 0, 0, 0,0x6C57, 0,0x6C58, 0, 0, + 0,0x6C64, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x483C, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x4147, 0, + 0, 0, 0, 0,0x6C5C,0x5160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6C5B, 0, 0, 0, 0,0x546F, 0,0x6C5D, + 0, 0, 0, 0, 0, 0,0x5B46, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6C5E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x312C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6C5F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6C60, 0,0x5726, 0,0x4540, 0, 0, 0, +0x6B3C,0x302E, 0, 0, 0,0x3E74,0x3838,0x522F, +0x3056,0x3579, 0,0x5833, 0,0x4B2C, 0,0x635D, + 0, 0, 0, 0, 0, 0, 0,0x462C, +0x3066, 0, 0, 0,0x4546,0x6B39, 0, 0, + 0, 0,0x6B3A, 0, 0, 0,0x6B3B, 0, + 0,0x5140, 0,0x4523, 0,0x6A72, 0,0x4432, + 0,0x4435,0x404E, 0, 0, 0,0x6A73,0x4441, + 0,0x4E6F, 0, 0, 0, 0,0x6A70,0x6A74, + 0, 0,0x497C, 0, 0,0x4723, 0, 0, + 0,0x4C58,0x4E7E, 0, 0, 0,0x6A75,0x6A76, +0x4F2C,0x4067, 0, 0,0x6A77, 0, 0, 0, + 0, 0,0x363F,0x6A78, 0,0x6A79, 0,0x6A7A, + 0, 0,0x6A7B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6A71, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x482E,0x616B, 0,0x3738, +0x616C, 0, 0, 0,0x616D, 0,0x5734,0x616E, +0x616F,0x534C, 0, 0, 0, 0, 0, 0, + 0,0x6171,0x3F71,0x6170,0x3552, 0, 0, 0, +0x3137, 0, 0, 0, 0,0x6173,0x6172, 0, +0x3A7C, 0,0x6174, 0, 0, 0, 0,0x3937, + 0,0x3E51, 0, 0, 0, 0,0x447C, 0, +0x3A5D,0x3D46, 0, 0, 0, 0, 0, 0, +0x6175,0x6177, 0, 0,0x3640,0x4F41,0x4A28,0x6176, +0x5578,0x537C,0x6178,0x617C,0x6179, 0, 0,0x617A, +0x406A, 0,0x617E,0x6221,0x4047, 0, 0, 0, + 0,0x617B, 0,0x617D, 0, 0, 0, 0, + 0, 0,0x6225, 0, 0, 0,0x4154, 0, + 0, 0, 0,0x6223, 0,0x6228,0x327E,0x6222, + 0, 0, 0,0x434D,0x3242,0x6227,0x6226, 0, + 0,0x6224,0x6229, 0, 0,0x622B, 0, 0, + 0,0x5049,0x566D,0x4328,0x622C, 0,0x4F57, 0, + 0,0x622E, 0, 0,0x3A6F, 0, 0,0x6960, +0x622D,0x622A, 0, 0, 0, 0,0x3B2B,0x5433, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6230, 0, 0, +0x622F, 0,0x6961, 0, 0, 0, 0,0x6231, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x6233,0x4C21, 0,0x6234, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6235, 0, + 0, 0, 0, 0,0x507E, 0, 0,0x424A, + 0,0x5371, 0,0x4D75, 0, 0,0x6760, 0, + 0,0x6761, 0, 0, 0, 0,0x3E41, 0, + 0, 0, 0,0x426A, 0, 0, 0,0x6764, + 0, 0,0x6763, 0, 0, 0, 0, 0, + 0,0x4D66, 0,0x4335, 0, 0,0x6762,0x3B37, +0x4F56, 0,0x4161,0x6769, 0, 0, 0,0x6768, + 0, 0,0x6774,0x3223, 0, 0, 0, 0, +0x676A, 0,0x6766, 0, 0, 0, 0, 0, +0x676C,0x676B,0x493A, 0, 0,0x5564, 0,0x6765, +0x3729,0x6767, 0, 0, 0, 0, 0, 0, + 0,0x676E, 0, 0, 0, 0,0x6773, 0, +0x5669, 0, 0, 0, 0,0x676D, 0,0x6772, + 0,0x6771, 0, 0, 0,0x3060, 0, 0, + 0, 0,0x6775, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x4772, 0,0x4045,0x406D, 0, + 0,0x4170,0x6770, 0, 0, 0, 0,0x6776, +0x4B76, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6822,0x6821, 0, 0, 0, 0, + 0, 0,0x5741, 0, 0,0x677A,0x6779, 0, +0x677B, 0,0x6777, 0,0x677E, 0,0x677D, 0, +0x677C, 0, 0,0x4155,0x4759,0x457D,0x4543, 0, + 0, 0, 0, 0,0x476D, 0, 0, 0, + 0,0x6823, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6826, 0,0x6825, + 0,0x6827,0x3A77,0x6778,0x6824, 0,0x4870,0x492A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6829, 0, 0, +0x3965, 0, 0, 0, 0, 0,0x517E,0x6828, + 0, 0, 0, 0, 0, 0,0x682A, 0, +0x682D,0x682E, 0,0x4127, 0, 0, 0,0x682F, + 0, 0, 0,0x6830, 0, 0,0x682C, 0, +0x6834, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x682B, 0,0x6831, 0, + 0, 0, 0, 0, 0, 0, 0,0x6835, +0x6832,0x6833, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6837, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6836, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x394F, 0,0x702C, 0, +0x702D, 0,0x4630,0x306A,0x483F, 0,0x4D5F, 0, + 0, 0, 0, 0, 0, 0,0x4E4D,0x6A31, + 0, 0, 0, 0,0x6A32, 0,0x463F,0x3449, + 0, 0, 0, 0, 0, 0, 0,0x6A33, + 0, 0, 0, 0,0x5567, 0, 0, 0, + 0, 0, 0, 0, 0,0x5D79, 0,0x6A34, + 0,0x6A35, 0,0x6A36, 0, 0, 0, 0, +0x384A,0x5F30,0x4975, 0,0x4C70, 0, 0,0x497A, + 0, 0, 0, 0, 0,0x497B, 0, 0, +0x5343,0x4B26, 0,0x3826,0x702E,0x3142, 0,0x6538, +0x4C6F,0x5349,0x3C57,0x496A, 0,0x3567, 0,0x4450, +0x3569, 0,0x6E2E,0x3B2D, 0, 0,0x675E, 0, +0x6E2F, 0, 0, 0, 0,0x3329, 0, 0, +0x6E32, 0, 0,0x6E31,0x3D67, 0,0x6E30,0x4E37, + 0, 0, 0, 0,0x454F, 0, 0, 0, + 0,0x4174,0x5B4E,0x6E33,0x5073, 0, 0, 0, + 0, 0, 0, 0, 0,0x4254,0x4668, 0, + 0, 0,0x372C, 0, 0, 0, 0, 0, + 0, 0,0x6E34, 0,0x336B, 0, 0, 0, +0x3B7B,0x6E35, 0, 0, 0, 0, 0,0x675C, + 0, 0, 0,0x6E36, 0, 0,0x3D2E, 0, + 0, 0, 0,0x7162, 0, 0, 0,0x4A68, + 0,0x5249,0x705A, 0,0x705B, 0,0x705C,0x4146, + 0,0x386D,0x3E4E, 0, 0,0x705E, 0,0x4531, +0x705D,0x5171, 0,0x7060,0x304C,0x3D6A, 0, 0, + 0, 0, 0,0x525F,0x705F, 0,0x342F,0x3768, +0x7066,0x7065,0x4623,0x7061,0x7062,0x3443, 0, 0, +0x7063,0x556E, 0, 0,0x4C5B,0x3E52,0x3C32, 0, + 0, 0,0x7068,0x7067,0x7064,0x3221, 0,0x5622, +0x5338,0x3E37,0x482C, 0, 0,0x706A, 0, 0, + 0, 0,0x5177, 0,0x564C,0x3A5B,0x7069, 0, +0x363B, 0, 0,0x4D34, 0, 0,0x4626, 0, + 0, 0,0x4121,0x706B,0x706E, 0,0x706D,0x7070, +0x706C, 0,0x3B3E,0x706F, 0, 0, 0, 0, +0x4C35,0x7072, 0, 0,0x3355, 0, 0, 0, + 0,0x3154, 0, 0,0x7073, 0, 0,0x7074, +0x7076,0x3461, 0,0x7071, 0,0x7077, 0, 0, + 0, 0,0x707A, 0,0x7078, 0, 0, 0, +0x7075, 0, 0, 0, 0,0x707D, 0,0x7079, +0x707C,0x707E, 0,0x7121, 0, 0, 0,0x4E41, +0x7124, 0,0x7123, 0,0x4176,0x707B,0x4A5D, 0, + 0,0x3471,0x3171,0x4C31, 0,0x7126, 0, 0, +0x7127, 0, 0,0x712C,0x554E,0x7129, 0, 0, +0x4833, 0, 0, 0,0x7122, 0,0x712B,0x7128, +0x7125, 0, 0,0x712A, 0, 0, 0, 0, + 0, 0, 0, 0,0x3029,0x712D, 0, 0, + 0, 0, 0, 0,0x712F, 0,0x7131, 0, + 0, 0, 0, 0,0x7130, 0,0x712E, 0, + 0, 0, 0,0x5122, 0, 0, 0, 0, + 0, 0, 0,0x7132, 0, 0, 0,0x7133, + 0, 0, 0, 0, 0, 0, 0, 0, +0x396F, 0, 0,0x3547, 0,0x3057,0x3059, 0, + 0, 0,0x546D, 0,0x3544, 0,0x3D54,0x3B4A, +0x7027, 0, 0,0x385E, 0, 0,0x7028, 0, + 0,0x3028, 0,0x7029, 0, 0,0x4D6E, 0, + 0,0x702A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x702B, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x4624, 0, + 0,0x5665,0x7164, 0,0x7165, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x4373, + 0, 0,0x535B, 0, 0,0x5651,0x4568, 0, +0x532F, 0,0x5266, 0, 0,0x6E41,0x303B,0x5535, +0x514E,0x3C60,0x3A50, 0,0x3F78, 0,0x3847,0x3541, +0x454C, 0, 0,0x4A22, 0, 0, 0,0x434B, + 0, 0, 0, 0, 0,0x6E42, 0, 0, + 0, 0, 0, 0, 0, 0,0x443F,0x3622, + 0,0x6D6C,0x4324, 0,0x5631, 0, 0, 0, +0x4F60,0x6D6F, 0, 0,0x454E, 0,0x365C, 0, + 0,0x4A21, 0, 0,0x6D6D, 0, 0,0x6D70, +0x6D71,0x433C, 0,0x3F34, 0,0x6D6E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x6D74,0x6D72, 0, 0, 0, 0,0x5566, +0x435F, 0,0x6D73, 0, 0, 0,0x6D76, 0, +0x5523,0x5123, 0, 0, 0,0x6D75, 0,0x4350, + 0, 0, 0, 0, 0,0x6D77,0x3F74,0x3E6C, +0x6D78, 0,0x4C77, 0,0x515B, 0, 0, 0, +0x5745,0x5576, 0,0x6D7C, 0, 0, 0,0x6D7B, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6D79,0x6D7A, 0, 0, 0, 0, 0, 0, + 0, 0,0x6D7D,0x3E26, 0, 0, 0, 0, + 0,0x4B2F,0x6E21,0x363D, 0,0x6E22,0x4440, 0, +0x6D7E, 0, 0,0x3D5E,0x3247, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3643, 0, 0, 0,0x6E25,0x583A,0x6E23, +0x6E26, 0, 0, 0,0x4369,0x3372, 0, 0, + 0, 0, 0, 0,0x6E27,0x6E24,0x4F39, 0, + 0,0x6E28,0x4277, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6E29, +0x6E2A, 0,0x5E2B, 0, 0,0x4633, 0,0x4746, + 0,0x5675,0x3549, 0,0x4B32, 0, 0, 0, +0x6E2B, 0, 0,0x4D2B, 0,0x6E2C, 0, 0, + 0, 0, 0,0x5530, 0,0x6E2D, 0,0x7644, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x5B47, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x3423, + 0, 0, 0,0x432C,0x7166, 0, 0, 0, + 0, 0,0x4A38,0x5253, 0,0x562A, 0,0x6F72, + 0,0x3E58, 0,0x3D43,0x6F73,0x364C,0x302B, 0, + 0, 0, 0,0x4A2F, 0, 0,0x6D36, 0, +0x6D37, 0, 0, 0, 0,0x4E79,0x372F,0x3F73, +0x6D38,0x426B,0x4930, 0, 0, 0, 0, 0, + 0,0x6D39, 0, 0,0x4676,0x3F33, 0, 0, + 0,0x6D3C,0x4578, 0,0x5150, 0,0x5729,0x6D3A, +0x6D3B, 0,0x5162, 0,0x6D3F,0x6D40, 0,0x6D44, + 0, 0, 0,0x6D48, 0,0x6D46,0x6D4E,0x5568, + 0,0x6D49, 0, 0,0x6D47,0x6D3E, 0, 0, +0x4569, 0, 0, 0,0x4646, 0, 0,0x4969, +0x5452,0x6D41,0x6D42,0x6D43,0x6D45, 0,0x4079, 0, +0x3421, 0, 0, 0, 0,0x3968, 0,0x6D50, + 0, 0, 0, 0,0x6D51, 0,0x6D4A, 0, +0x6D4F, 0,0x4E78, 0, 0,0x4B36,0x6D4C,0x6D4D, + 0, 0, 0, 0, 0,0x4F75, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6D52,0x4172,0x5332,0x6D4B,0x4837, 0, + 0, 0, 0, 0, 0, 0, 0,0x3C6F, + 0, 0, 0, 0,0x4570, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6D56, + 0,0x356F, 0, 0,0x4235,0x302D,0x4B69, 0, + 0,0x312E, 0,0x6D54, 0, 0, 0,0x4D6B, +0x3562, 0,0x6D55,0x6D53,0x6D57, 0, 0,0x357A, + 0,0x6D58, 0,0x6D59, 0,0x6D5C, 0,0x314C, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4576,0x3C6E,0x6D5A,0x4C3C,0x326A, 0, 0, 0, + 0,0x6D5B, 0, 0, 0, 0,0x446B, 0, + 0,0x3445, 0, 0, 0,0x3075, 0, 0, + 0,0x6D5F,0x405A,0x3468, 0, 0, 0, 0, +0x454D, 0, 0, 0,0x6D5D,0x3F44, 0, 0, + 0,0x6D5E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4425, 0, 0, 0,0x6D60, 0, 0, 0, + 0, 0,0x6D61, 0,0x6D63, 0, 0,0x4157, + 0, 0,0x3B47, 0, 0, 0, 0, 0, + 0,0x3D38, 0, 0, 0,0x6D62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x6D64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6D66, 0, + 0, 0, 0, 0,0x6D65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x6D67, 0, 0, 0, + 0, 0,0x4A3E,0x6C6A,0x4071, 0,0x4967, 0, +0x6C6B,0x466E, 0, 0, 0, 0,0x6C6C, 0, +0x466D,0x6C6D, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x6C70, 0, 0,0x5766,0x6C73, + 0, 0,0x6C71,0x6C6E,0x6C6F,0x5723,0x4971,0x4B6E, +0x6C74, 0,0x6C72, 0, 0,0x4F69, 0,0x6C76, +0x4631, 0, 0, 0, 0,0x3C40, 0,0x6C75, + 0, 0, 0, 0, 0, 0, 0,0x353B, +0x3B76, 0,0x6C77, 0, 0, 0, 0, 0, +0x5977,0x3D7B, 0, 0,0x423B,0x6C78, 0, 0, + 0, 0,0x6C79, 0, 0, 0, 0,0x3823, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6C7A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6C7B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x6C7C, 0, 0, 0, 0, + 0,0x536D,0x582E,0x406B, 0,0x475D,0x3A4C, 0, +0x5063,0x4B3D, 0,0x4D3A, 0, 0,0x3851, 0, + 0,0x317C, 0,0x476F, 0,0x5656, 0, 0, + 0,0x3F46,0x436B, 0, 0,0x6F75, 0, 0, +0x4358, 0, 0, 0, 0, 0, 0,0x5762, + 0, 0, 0,0x6F77,0x3353, 0,0x4758,0x516D, + 0,0x5648, 0,0x6F78, 0,0x6F76, 0,0x3B7D, +0x3346, 0, 0, 0, 0, 0, 0, 0, +0x3D55, 0, 0,0x5246, 0,0x3B60, 0, 0, +0x4F21, 0,0x6F7C,0x6F7B, 0, 0,0x6F79, 0, + 0, 0, 0,0x334C, 0,0x4954,0x4B30, 0, + 0, 0, 0, 0,0x6F7E, 0, 0,0x305E, + 0, 0,0x5649, 0, 0, 0,0x6F7D, 0, +0x336D, 0, 0,0x7655, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x4E48, 0, 0, 0,0x7022, + 0,0x7021, 0,0x353E,0x3C5A,0x3B7C, 0,0x3865, + 0, 0, 0, 0, 0, 0,0x4442, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7023, 0, 0, 0, 0, 0,0x4B6B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7026, 0, 0, 0,0x5128, 0,0x3E3F,0x476E, +0x7136,0x7137,0x3F55, 0, 0, 0, 0,0x3429, +0x7138,0x4D3B, 0,0x4754,0x552D, 0,0x7139, 0, +0x713A, 0, 0, 0, 0,0x474F, 0, 0, + 0,0x5224,0x564F, 0, 0,0x713B,0x3D51,0x3430, +0x3E3D, 0, 0, 0,0x345C,0x4E51, 0,0x3F5F, +0x713D, 0, 0, 0, 0,0x3F7A,0x713C, 0, +0x713F, 0, 0, 0,0x713E,0x7140, 0, 0, + 0, 0, 0,0x7141, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x417E, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x4122, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x4A7A, 0, + 0,0x553E, 0, 0, 0, 0,0x3E3A,0x3E39, +0x5542, 0, 0,0x3F22, 0,0x4D2F,0x7135, 0, + 0, 0, 0, 0, 0,0x3D5F, 0,0x364B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5671,0x7343, 0, 0,0x7344, 0,0x384D, + 0, 0, 0,0x7346,0x7347, 0,0x304A, 0, +0x7345, 0,0x7349,0x4B71, 0, 0, 0,0x734B, + 0,0x5026, 0, 0,0x314A,0x7348, 0, 0, + 0,0x734F, 0,0x3551, 0, 0,0x7357, 0, +0x7352, 0, 0, 0,0x7354,0x7353,0x377B, 0, +0x313F, 0,0x734E,0x734A,0x355A, 0,0x7350, 0, + 0,0x7351, 0,0x7355, 0, 0, 0, 0, +0x734D, 0,0x3C63, 0,0x417D, 0,0x7356, 0, + 0, 0, 0, 0, 0,0x735A, 0,0x734C, + 0,0x3548, 0,0x3D6E,0x735C, 0, 0,0x3724, +0x3F70,0x567E,0x4D32, 0,0x3470, 0,0x325F, 0, +0x7358, 0,0x7359,0x4938, 0,0x735D, 0, 0, +0x735E, 0,0x7361, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x735F, 0, + 0,0x7363,0x7362, 0, 0,0x735B, 0,0x3F6A, + 0,0x336F, 0,0x7360, 0, 0,0x4729, 0, +0x3C72, 0, 0, 0, 0,0x736B, 0, 0, + 0, 0, 0, 0, 0,0x393F, 0, 0, +0x7364, 0, 0, 0,0x322D,0x3B7E, 0,0x4B63, + 0, 0, 0, 0,0x736D,0x7369, 0, 0, + 0,0x395C,0x736E, 0, 0, 0,0x7365,0x7366, +0x736A,0x4261,0x736C,0x736F,0x7368,0x3C7D, 0, 0, + 0,0x4F64, 0, 0,0x7370, 0, 0, 0, +0x7367, 0, 0, 0, 0, 0, 0, 0, + 0,0x7372, 0, 0, 0, 0,0x572D,0x462A, + 0, 0, 0, 0,0x7373, 0, 0, 0, + 0,0x7371, 0,0x4228, 0, 0, 0, 0, + 0,0x385D,0x7375, 0, 0,0x7374, 0, 0, + 0,0x345B, 0, 0, 0,0x7376,0x7377, 0, + 0, 0,0x7378, 0, 0, 0,0x403A, 0, + 0,0x4069, 0, 0, 0, 0, 0,0x4571, + 0, 0, 0, 0,0x737B, 0,0x737A, 0, + 0, 0, 0, 0, 0, 0, 0,0x3458, + 0, 0, 0,0x737E,0x7379, 0, 0,0x737C, + 0, 0, 0, 0, 0, 0,0x737D, 0, + 0, 0, 0, 0, 0, 0, 0,0x7421, + 0, 0, 0, 0, 0, 0,0x7423,0x3B49, + 0, 0,0x7422, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7424, 0, 0, 0, 0, 0, 0,0x323E, +0x7426,0x7425, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x3C2E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x4357,0x5961, 0, 0, 0, + 0, 0, 0,0x4060,0x744C,0x5751, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x375B, 0, 0, 0, 0, 0, 0, + 0,0x744E,0x4123, 0, 0,0x4649, 0,0x3456, +0x5533, 0, 0, 0,0x7450,0x744F,0x7451,0x4B5A, + 0, 0,0x7452, 0,0x5441,0x5660, 0, 0, + 0, 0,0x3760, 0, 0, 0,0x4138, 0, + 0,0x413B,0x7453,0x3E2C, 0, 0, 0, 0, + 0,0x3462, 0, 0,0x7454,0x7455,0x3E2B, 0, + 0,0x7456, 0, 0, 0,0x745B, 0,0x7457, +0x745A, 0,0x3A7D, 0,0x7458,0x7459, 0, 0, + 0, 0, 0, 0, 0,0x3862,0x4C47,0x745C, + 0,0x325A, 0, 0,0x4353, 0, 0,0x5463, +0x3F37, 0, 0, 0, 0, 0, 0, 0, +0x745D, 0, 0, 0, 0, 0, 0,0x4534, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7469, 0, 0,0x4F35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x4E49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4B58, 0,0x4B77, 0, 0, 0, 0,0x3D74, + 0, 0, 0,0x574F, 0, 0, 0,0x405B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x5075, 0, + 0, 0, 0, 0, 0, 0, 0,0x746A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x746B, 0, + 0, 0, 0, 0, 0, 0,0x746C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x7763, 0, 0, 0, 0, + 0,0x3731, 0, 0, 0, 0, 0,0x746D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x576B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x746E, 0, 0, 0,0x6679, +0x3E40,0x667A,0x3A6C,0x667B,0x4F4B,0x667C,0x543C,0x3C36, +0x667D,0x667E,0x3C4D,0x4852,0x4E33,0x6721, 0,0x343F, +0x6722,0x4934,0x3859,0x4449, 0,0x575D,0x425A,0x3757, +0x563D,0x4E46,0x3744, 0, 0,0x4526,0x6723,0x4F5F, +0x6724,0x6725,0x6726,0x4137,0x5769,0x4970,0x4F38,0x562F, +0x5655,0x6727,0x306D,0x6728,0x6729,0x495C,0x526F,0x3E2D, +0x672A,0x3073,0x485E,0x3D61,0x672B,0x4846, 0,0x672C, +0x3B66,0x3878,0x5124,0x672D,0x4267,0x3E78,0x3D4A,0x4D33, +0x672E,0x672F,0x3E6E,0x5065, 0,0x4B67,0x4C50,0x3C4C, +0x6730,0x3C28,0x5077,0x6731, 0,0x5078,0x6732,0x6733, +0x3442,0x6734,0x6735,0x497E,0x4E2C,0x4360,0x6737,0x3141, +0x3371, 0,0x6738,0x6739,0x575B,0x5540,0x673A,0x424C, +0x573A,0x673B,0x673C,0x673D,0x3C6A,0x4365,0x4042,0x673E, +0x673F,0x3C29, 0,0x6740,0x6741,0x6736,0x3650,0x6742, + 0,0x6743,0x6744,0x3B3A,0x355E,0x4246,0x3160,0x6745, +0x5435,0x6746,0x383F,0x6748,0x6747,0x376C, 0,0x6749, +0x3278,0x674A,0x674B,0x674C,0x674D,0x674E,0x674F,0x6750, +0x5327,0x4B75,0x6751,0x6752,0x6753,0x6754,0x4949,0x6755, +0x6756,0x6757,0x6758,0x6759,0x3D49,0x675A,0x733E, 0, +0x3857, 0,0x4831, 0, 0, 0, 0, 0, + 0, 0,0x733F, 0,0x7340,0x7341, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x395E,0x4D78, 0, 0,0x5868,0x3A31, 0,0x425E, +0x6E37, 0,0x3723, 0, 0, 0, 0,0x6E39, + 0,0x6E38,0x3055, 0, 0, 0, 0, 0, +0x6E3B,0x5556,0x576F, 0, 0, 0,0x5643, 0, + 0,0x6E3D,0x4A70, 0,0x6E3C, 0, 0, 0, + 0,0x6E3E, 0, 0, 0, 0,0x6E40, 0, + 0,0x6E3F, 0, 0, 0, 0, 0, 0, + 0, 0,0x5172, 0,0x473C, 0,0x4340, 0, + 0, 0, 0, 0,0x3861, 0, 0, 0, + 0, 0,0x4167, 0, 0,0x7446,0x505F,0x7447, + 0,0x4F5B, 0, 0,0x483A, 0, 0,0x7448, + 0, 0, 0, 0, 0, 0, 0,0x7449, +0x744A, 0,0x744B, 0, 0, 0, 0, 0, +0x597A,0x387E, 0, 0,0x6571,0x5370, 0,0x7460, + 0,0x4E4C, 0, 0, 0,0x3361, 0, 0, + 0, 0,0x7134, 0,0x526E, 0,0x7461, 0, + 0, 0, 0, 0,0x4F68,0x7462, 0, 0, +0x474C, 0, 0, 0, 0, 0, 0,0x3554, +0x3464,0x7464, 0, 0, 0,0x7463,0x7465, 0, + 0,0x7466, 0, 0, 0, 0,0x7467, 0, +0x3A32,0x303F, 0,0x7468, 0, 0, 0, 0, + 0, 0, 0,0x372D,0x526D, 0, 0, 0, +0x522B,0x404F, 0,0x3F3C,0x6B23,0x555F,0x6A48, 0, + 0, 0, 0,0x7173,0x3678,0x4B23, 0, 0, +0x444D, 0,0x7167, 0,0x7168,0x387B,0x7169,0x3A44, +0x5445,0x3052, 0, 0,0x716A, 0, 0, 0, +0x716B, 0,0x716C, 0, 0,0x716D,0x716E,0x716F, +0x7171,0x7170,0x4555, 0, 0, 0, 0, 0, + 0,0x7172, 0,0x367A, 0,0x7174,0x522E,0x5E47, +0x4B4A, 0, 0,0x335C, 0,0x3522, 0,0x3922, + 0, 0,0x4474,0x7175, 0, 0,0x7176, 0, + 0, 0,0x4144,0x417B,0x5630,0x7177, 0, 0, + 0, 0,0x7178, 0,0x412A, 0, 0, 0, +0x4638, 0,0x3E5B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7179,0x344F, 0, 0, 0, 0, 0, + 0,0x717A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6D32, +0x6D31, 0, 0,0x4B60,0x525E, 0,0x4B41,0x5558, + 0,0x4862, 0,0x405F,0x3C21, 0, 0, 0, + 0, 0, 0,0x6B41, 0, 0,0x5024, 0, +0x5662, 0,0x3647,0x3858,0x6B40,0x384E, 0,0x6B3F, +0x3326,0x3949,0x562B, 0,0x3774,0x374A, 0, 0, + 0,0x3C67,0x373E,0x6B46, 0,0x6B47,0x3039,0x3F4F, + 0,0x6B45,0x537D, 0,0x6B48, 0, 0,0x6B49, + 0, 0,0x374E, 0,0x6B42,0x6B44,0x4976,0x5657, +0x554D,0x5032,0x6B4F,0x4E38,0x6B50, 0,0x3528, 0, + 0, 0, 0, 0,0x3133,0x6B52,0x4C25, 0, + 0, 0, 0, 0, 0, 0,0x4556,0x6B53, + 0,0x6B51,0x455F,0x6B4E,0x4A24,0x6B55,0x307B, 0, + 0,0x3A7A, 0, 0,0x5837,0x7163, 0,0x6B4A, +0x6B4B,0x6B4C,0x6B4D,0x6B56,0x6640,0x6B59, 0,0x3F68, +0x5248,0x6B57,0x6B5C,0x386C,0x6B58, 0,0x3D3A, 0, +0x5058, 0,0x3037, 0,0x6B5D,0x445C, 0, 0, + 0, 0,0x562C, 0, 0, 0,0x3460, 0, + 0,0x4276,0x3C39, 0, 0,0x6B5A,0x6B5B,0x5460, +0x466A,0x4454,0x6B5F,0x4527,0x5975, 0,0x3231, 0, +0x6B64, 0,0x3D45, 0, 0, 0,0x6B62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x6B63, 0, 0,0x382C, + 0,0x4D51,0x6B65, 0, 0, 0,0x6B61, 0, +0x4133, 0, 0, 0, 0, 0,0x4622, 0, + 0, 0, 0, 0, 0, 0,0x4C73, 0, +0x6B66, 0,0x4030,0x5238,0x6B67, 0, 0, 0, +0x382F,0x382D, 0,0x6B68,0x473B,0x4D73, 0, 0, + 0,0x6B6A,0x6B6B, 0, 0, 0, 0, 0, +0x6B6D, 0, 0, 0, 0,0x5048, 0,0x6B72, + 0,0x6B6E, 0, 0, 0,0x6B71,0x4879, 0, +0x517C,0x6B6C, 0, 0,0x6B69, 0, 0, 0, + 0,0x3839,0x4F59,0x4465,0x6B6F,0x6B70,0x4C5A,0x4D48, +0x3072, 0,0x6B76, 0, 0, 0, 0, 0, +0x6B75, 0,0x3232, 0, 0, 0, 0,0x3860, + 0,0x6B77, 0, 0, 0, 0, 0, 0, +0x316C, 0, 0,0x4C45,0x4424,0x4F25, 0, 0, + 0, 0, 0,0x6B79, 0, 0,0x6C22, 0, +0x4572, 0,0x6B7A, 0, 0, 0, 0, 0, + 0, 0, 0,0x4945, 0, 0, 0, 0, + 0, 0,0x625F,0x6B7E, 0, 0, 0, 0, +0x4D4E,0x6C21,0x315B,0x5337, 0, 0,0x525C, 0, + 0, 0,0x6B7D, 0,0x6B7B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x333C, 0, 0, 0,0x6A30, + 0, 0,0x5754, 0,0x742B,0x3374, 0, 0, + 0, 0, 0,0x5641,0x5642, 0, 0, 0, + 0, 0, 0,0x5569,0x3E4A, 0,0x7427, 0, +0x5228,0x7428,0x7429, 0,0x742A,0x3E4B,0x535F, 0, + 0, 0, 0, 0,0x4960,0x4961, 0, 0, +0x7342, 0,0x4A66, 0,0x4C72, 0, 0, 0, + 0, 0, 0,0x6236,0x4B34, 0,0x4E68,0x565B, + 0,0x742D,0x742E,0x742F, 0, 0, 0, 0, +0x7432, 0,0x3A3D,0x7433,0x3063,0x7430, 0,0x7431, +0x3D22,0x3255, 0,0x7436,0x7437,0x3666,0x3230,0x4F4F, +0x7434,0x342C, 0,0x7435, 0, 0,0x7438, 0, + 0, 0, 0, 0,0x7439, 0, 0,0x4D27, + 0,0x743A, 0,0x743B, 0, 0, 0,0x743C, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4B52, 0,0x743D, 0, 0, 0, 0,0x743E, + 0, 0, 0, 0, 0, 0, 0, 0, +0x743F, 0, 0, 0, 0, 0,0x745E,0x413C, +0x3C68, 0,0x492B,0x515E,0x6575, 0, 0, 0, + 0,0x5C33,0x5255, 0, 0,0x5C34,0x302C,0x5C35, + 0, 0,0x3D5A, 0,0x5C39, 0, 0, 0, +0x5842, 0,0x5C37,0x5373, 0,0x4956,0x5C3A,0x5C36, + 0,0x5C3B,0x4322, 0, 0, 0, 0,0x5C3C, +0x5C45,0x5C3D, 0, 0,0x4E5F,0x5625, 0,0x5C4F, + 0,0x5C4D, 0, 0,0x5C52,0x3D66,0x422B, 0, +0x5C38,0x5C4B,0x5C4E,0x5C3E,0x3752,0x3045,0x5C47,0x503E, +0x5C41,0x3B28, 0,0x373C,0x5C4C, 0, 0,0x5C46, +0x5C3F,0x475B, 0, 0, 0,0x513F,0x5C40, 0, + 0,0x5C4A, 0, 0,0x5C50, 0, 0,0x4E2D, +0x5C42, 0,0x5C43,0x5C48,0x5C49,0x3254,0x5C51,0x4B55, + 0,0x5437,0x5C5B,0x5C5F,0x4C26,0x5C66, 0,0x4367, +0x5C5C, 0, 0,0x3F41,0x5C59, 0,0x307A,0x3936, +0x5C65,0x5C53, 0,0x5C44,0x5C56,0x4874,0x3F60, 0, + 0, 0, 0,0x493B, 0, 0, 0,0x313D, + 0,0x5322, 0, 0,0x5C5A, 0, 0,0x5C55, + 0,0x463B, 0,0x5C5E, 0, 0, 0, 0, + 0,0x5742,0x432F,0x3736,0x4751,0x4329,0x5C62,0x5C58, +0x5C6B,0x5C54, 0, 0,0x5C5D, 0,0x3E25,0x5C57, + 0,0x5C60, 0, 0,0x5C63,0x5C64, 0,0x5C78, + 0, 0,0x5C61,0x5D22,0x5C67, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x3C6B, +0x3444, 0, 0,0x4323,0x3267,0x5C7A, 0,0x5C72, + 0,0x5C6F, 0,0x5C7C,0x5C6E,0x5270,0x3268, 0, +0x4857,0x4863,0x5C7B, 0,0x5C6D, 0, 0, 0, +0x5C77, 0, 0,0x5C75, 0, 0,0x3E23,0x5C74, + 0,0x325D, 0, 0, 0, 0, 0,0x5C73, +0x3C76,0x5C68,0x3B44, 0,0x4073, 0, 0, 0, + 0, 0,0x3C54,0x5C69,0x5C6A, 0,0x5C71,0x5C76, +0x5C79,0x3534, 0,0x4859,0x3B67,0x5C7E,0x5C7D,0x532B, +0x5D21,0x5D23,0x5D25,0x5271,0x5D24,0x5D26,0x5D27,0x5229, + 0, 0, 0, 0, 0, 0, 0,0x3A49, +0x5D29, 0, 0,0x5D36,0x5D31,0x5D34, 0, 0, + 0, 0, 0, 0, 0,0x5D30,0x464E, 0, + 0,0x4072, 0, 0, 0, 0,0x492F, 0, + 0, 0,0x5C6C,0x5D2E, 0, 0, 0, 0, +0x5D37, 0, 0,0x5C70,0x5D2F, 0,0x5D38, 0, +0x5D2C, 0, 0, 0, 0, 0, 0, 0, +0x5D39,0x5D33,0x5D2D,0x442A, 0, 0, 0, 0, +0x5D28,0x4033,0x412B,0x5D2A,0x5D2B, 0,0x5D32,0x3B71, +0x5D35,0x5328,0x5D3A, 0,0x5D3B,0x4327, 0, 0, +0x5D52,0x5D3C, 0, 0, 0,0x5D51, 0,0x393D, + 0, 0,0x3E55, 0,0x3E7A, 0, 0,0x3A4A, + 0, 0, 0, 0,0x5D4A, 0,0x5D45, 0, +0x5D3F, 0, 0, 0,0x324B,0x5D43, 0,0x5D4B, +0x3224,0x5D55, 0, 0, 0,0x5D3E, 0, 0, + 0,0x4650,0x5D50, 0, 0, 0, 0, 0, +0x5D54,0x4162,0x3746, 0, 0, 0, 0, 0, +0x5D4E,0x5D4F, 0, 0, 0,0x5D44, 0, 0, + 0,0x5D3D, 0,0x5D4D,0x4C51, 0,0x5D49, 0, + 0, 0, 0,0x5D42,0x4348,0x463C,0x4E2E,0x5D4C, + 0,0x5D48, 0, 0, 0, 0, 0, 0, +0x5D41, 0, 0, 0,0x5D46,0x425C, 0, 0, + 0, 0, 0, 0,0x5329,0x532A,0x5D53,0x4F74, +0x4878, 0, 0, 0, 0, 0, 0, 0, + 0,0x5D66, 0, 0, 0, 0, 0, 0, +0x5D47, 0, 0, 0,0x5D60,0x4264, 0, 0, + 0, 0, 0, 0, 0, 0,0x5D61, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5D57, 0, 0, 0, 0, 0,0x5678, + 0,0x5D59,0x5D58,0x3870,0x5D56, 0, 0, 0, + 0,0x464F, 0,0x362D, 0, 0, 0, 0, + 0,0x5D62, 0,0x3A79,0x5461,0x5D67, 0, 0, + 0,0x3450, 0,0x5D5A, 0,0x3F7B,0x5D63, 0, +0x5D5F, 0,0x5D5D, 0, 0, 0, 0, 0, + 0, 0,0x3559, 0, 0, 0, 0,0x5D5B, +0x5D5C,0x5D5E, 0,0x3D2F,0x5D64, 0,0x5D65, 0, + 0, 0, 0, 0, 0, 0, 0,0x5D75, + 0,0x4349, 0, 0,0x4B62, 0, 0, 0, + 0,0x5D72, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x5861, + 0, 0,0x4651, 0,0x5D74, 0, 0, 0, +0x5574,0x5D73,0x5D70, 0, 0,0x5D6C, 0,0x5D6F, + 0,0x5D68, 0, 0,0x506E, 0, 0, 0, + 0,0x4858,0x5D6E, 0, 0,0x5D69, 0, 0, +0x5D6A,0x4B72, 0,0x5D6D, 0, 0,0x314D, 0, + 0, 0, 0, 0, 0,0x4036, 0,0x3C3B, +0x5D71, 0, 0,0x5D77, 0,0x5D76,0x5D6B, 0, + 0, 0, 0, 0,0x456E, 0, 0, 0, +0x5D7B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5E24, 0, 0,0x5E23, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x5D78, 0, 0, 0, + 0,0x436F, 0,0x427B, 0, 0, 0,0x5561, + 0, 0,0x4E35, 0, 0, 0, 0,0x5D7D, + 0,0x324C, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x4468,0x4A5F, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x473E, +0x5D7A,0x5D7C,0x5D7E,0x5E22,0x302A,0x314E, 0, 0, + 0, 0, 0,0x5E2C, 0, 0, 0, 0, +0x5E26,0x3D36,0x486F, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x5E21, 0, + 0,0x5E25, 0, 0, 0, 0,0x5E29, 0, + 0, 0, 0, 0,0x5E28, 0, 0, 0, +0x5E27, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x5E2D, 0,0x544C, 0, 0, 0, + 0,0x5E33,0x5E2A,0x5E2E, 0, 0,0x4059, 0, + 0, 0, 0, 0,0x3121,0x5E36, 0,0x5E31, + 0, 0, 0, 0, 0, 0, 0,0x5E32, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x5126,0x5E35, 0, 0, 0, + 0, 0, 0, 0,0x5E2F, 0, 0, 0, +0x5E30, 0,0x503D, 0, 0, 0,0x5E34,0x4A6D, +0x5E39, 0, 0, 0, 0, 0, 0,0x5E38, + 0,0x5E37, 0, 0, 0, 0, 0, 0, + 0,0x5E3B, 0, 0, 0, 0, 0, 0, + 0,0x3D65, 0, 0, 0, 0, 0,0x3258, +0x436A, 0, 0,0x5E3A, 0,0x453A, 0, 0, + 0, 0, 0, 0,0x5E3C, 0, 0, 0, + 0, 0, 0, 0,0x4C59, 0, 0, 0, + 0,0x372A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x5465, 0, 0, 0,0x5E3D, + 0, 0, 0, 0, 0,0x5E3F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x4422, 0, 0, 0, 0,0x5E41, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x5E3E, + 0,0x5E40, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x553A, 0, 0, 0,0x5E42, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x722E,0x3B22,0x4232, +0x4530,0x4247, 0, 0,0x722F, 0, 0, 0, + 0, 0,0x5069, 0, 0, 0,0x535D, 0, + 0, 0,0x6B3D, 0, 0, 0, 0, 0, + 0, 0, 0,0x3366,0x7230, 0,0x7231, 0, + 0,0x4A2D, 0, 0, 0, 0, 0, 0, + 0,0x3A67,0x7233,0x7235,0x7234,0x4B64,0x4F3A,0x7232, +0x4A34,0x524F,0x426C, 0, 0, 0, 0, 0, + 0, 0,0x4E43,0x7238,0x3076,0x7237, 0, 0, + 0, 0, 0,0x723E, 0,0x324F, 0, 0, + 0, 0, 0, 0,0x5141,0x723A, 0, 0, + 0, 0, 0,0x723C,0x5469, 0, 0,0x723B, +0x7236,0x723F,0x723D, 0,0x7239, 0, 0,0x7247, +0x7244,0x7246, 0, 0,0x724A,0x7242,0x7240, 0, + 0, 0,0x7245, 0, 0, 0, 0, 0, +0x567B, 0, 0, 0,0x7241, 0,0x4779,0x495F, + 0,0x7248,0x3946,0x3530, 0, 0,0x7243,0x7249, +0x7250,0x7256, 0, 0,0x3B57, 0, 0, 0, +0x7255,0x4D5C, 0,0x566B, 0, 0,0x7252,0x7254, + 0, 0, 0, 0,0x3872, 0, 0, 0, + 0,0x724B, 0, 0, 0,0x724E,0x4279, 0, +0x555D,0x724C,0x724D,0x724F,0x7253, 0, 0, 0, +0x7259,0x533C, 0, 0, 0, 0,0x366A, 0, +0x4A71, 0,0x3764,0x7257, 0, 0, 0,0x7258, +0x725A,0x725D,0x725B, 0, 0,0x725C, 0, 0, + 0, 0,0x5151,0x7251, 0,0x4D49, 0,0x4E4F, +0x5629, 0,0x7263, 0,0x435B, 0,0x7260, 0, + 0,0x402F,0x726C,0x725E, 0,0x7261, 0, 0, + 0,0x7268, 0, 0, 0, 0,0x7262, 0, + 0,0x7267, 0, 0,0x7266, 0, 0,0x7269, + 0, 0, 0,0x725F, 0, 0,0x7264,0x726A, + 0, 0, 0, 0, 0, 0, 0,0x532C, +0x7265,0x3275, 0, 0,0x7272, 0,0x502B, 0, + 0, 0, 0,0x7275, 0, 0, 0,0x3B48, + 0,0x7279, 0, 0, 0, 0, 0, 0, +0x7270, 0, 0,0x7276,0x7278,0x727A, 0, 0, + 0, 0, 0, 0, 0, 0,0x7273, 0, +0x7271, 0, 0, 0,0x3A7B, 0,0x357B, 0, + 0, 0, 0,0x726F,0x7277,0x726D,0x726E, 0, + 0, 0,0x726B,0x7326, 0,0x7323, 0, 0, +0x7322, 0, 0,0x7274, 0,0x485A, 0, 0, + 0, 0, 0,0x727B, 0, 0, 0,0x7325, + 0, 0, 0, 0, 0, 0, 0,0x4378, + 0, 0, 0, 0, 0, 0, 0, 0, +0x727D, 0, 0,0x7327,0x7329,0x7324, 0,0x727C, + 0, 0, 0,0x732B, 0,0x732A, 0, 0, + 0, 0,0x425D, 0, 0,0x732E, 0, 0, +0x7330, 0, 0, 0, 0, 0,0x7321, 0, + 0, 0,0x7331,0x732C, 0, 0, 0, 0, + 0,0x732F,0x727E,0x732D, 0, 0, 0, 0, + 0, 0, 0,0x7332, 0, 0, 0, 0, +0x7334, 0, 0, 0, 0,0x7328, 0, 0, + 0, 0,0x7333, 0, 0, 0,0x7335, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5037, 0, 0, 0, 0,0x7338, 0, + 0, 0, 0,0x5979, 0, 0, 0, 0, + 0, 0,0x7339, 0, 0, 0, 0, 0, + 0, 0, 0,0x7337, 0,0x4864,0x7336, 0, + 0, 0, 0,0x733A, 0, 0, 0, 0, + 0,0x733B,0x3440, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6E43, 0, 0, 0, 0, 0, + 0,0x733C, 0, 0,0x733D, 0, 0, 0, +0x512A, 0, 0, 0,0x742C,0x5046, 0, 0, + 0, 0, 0, 0,0x5050,0x515C, 0, 0, + 0, 0, 0, 0,0x4F4E, 0, 0,0x3D56, + 0,0x5143, 0, 0, 0, 0, 0, 0, + 0,0x3A62,0x6169,0x5242,0x7142,0x3239, 0, 0, +0x316D,0x7143, 0,0x4940,0x3344, 0,0x5972, 0, +0x4B25, 0,0x7144, 0, 0, 0, 0,0x5654, + 0, 0, 0, 0, 0,0x7145,0x7440,0x7146, + 0,0x542C,0x7147, 0,0x3040,0x7441, 0, 0, +0x7442, 0, 0,0x347C, 0,0x455B, 0, 0, + 0, 0,0x4C3B, 0, 0, 0,0x5064, 0, + 0, 0, 0, 0,0x4D60, 0, 0, 0, + 0, 0,0x7148, 0,0x5973, 0, 0, 0, + 0, 0, 0,0x313B, 0,0x4F2E, 0, 0, + 0,0x3824, 0, 0, 0, 0, 0,0x714A, + 0, 0, 0, 0,0x714B, 0, 0, 0, + 0,0x3243,0x4151, 0, 0,0x5730,0x7149, 0, + 0,0x714C, 0, 0, 0, 0,0x714E, 0, + 0, 0,0x5976, 0,0x5261,0x5423, 0, 0, +0x7443,0x4839, 0, 0, 0, 0, 0,0x7444, + 0, 0,0x714D,0x714F,0x3F63,0x7150, 0, 0, +0x7154, 0, 0, 0, 0, 0, 0, 0, +0x7156,0x7151, 0,0x4951,0x4561, 0, 0, 0, +0x4263,0x397C, 0, 0,0x7153, 0,0x7155, 0, + 0, 0,0x3953, 0, 0, 0, 0, 0, + 0, 0,0x715B, 0, 0, 0, 0, 0, +0x3A56, 0,0x307D,0x7159, 0, 0, 0, 0, + 0,0x7158,0x7152,0x715A, 0, 0, 0, 0, + 0,0x7157, 0, 0, 0,0x486C, 0, 0, + 0, 0,0x4D4A,0x715D, 0, 0, 0, 0, +0x653D, 0, 0, 0,0x715C, 0,0x715E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x715F, 0, 0,0x4F65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7445,0x3D73, + 0, 0, 0, 0, 0, 0,0x7160, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x7161, 0, 0, 0,0x4E77, + 0,0x522A, 0,0x717B, 0, 0,0x3832, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3C7B,0x395B, 0,0x3966,0x4359,0x4A53,0x6A68, +0x4040,0x3E75,0x6A69,0x6A6A,0x6A6B, 0,0x6A6C,0x6A6D, +0x6A6E,0x6A6F,0x3D47, 0, 0, 0,0x757B, 0, + 0, 0,0x757D, 0,0x757E, 0,0x757C, 0, + 0, 0, 0,0x3D62, 0,0x7621,0x3425, 0, + 0, 0, 0,0x7622, 0, 0, 0,0x7623, + 0, 0, 0,0x6C32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5154, 0, 0, 0, 0, 0, 0,0x596A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7624, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6E3A, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x5532, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x537E,0x4C5C, 0, 0, 0, 0, 0, + 0, 0, 0,0x4A44, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x6540, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7625, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x3E2F, 0, + 0, 0, 0, 0,0x4629, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5A25,0x3C46,0x3629,0x383C,0x484F,0x3C25,0x5A26,0x5A27, +0x4C56,0x4843,0x5A28,0x467D, 0,0x5135,0x5269,0x5136, +0x3C47, 0,0x3D32,0x3B64,0x5A29,0x5A2A,0x5148,0x5A2B, +0x506D,0x366F,0x425B, 0,0x4B4F,0x376D,0x4968,0x3743, +0x3E77,0x5624,0x5A2C,0x5A2D,0x4640,0x5767,0x4A36, 0, +0x5529,0x4B5F,0x556F,0x5A2E,0x565F,0x344A,0x5A30,0x5A2F, + 0,0x526B,0x5A31,0x5A32,0x5A33,0x4A54,0x5A34,0x4A2B, +0x5A35,0x5A36,0x334F,0x566F,0x5A37,0x3B30,0x352E,0x5A38, +0x5A39,0x396E,0x512F,0x5268,0x5A3A,0x3843,0x4F6A,0x326F, +0x5A3B,0x5A3C, 0,0x3D6B,0x4E5C,0x536F,0x5A3D,0x4E73, +0x5A3E,0x5355,0x3B65,0x5A3F,0x4B35,0x4B50,0x5A40,0x476B, +0x566E,0x5A41,0x4535,0x3641,0x5A42,0x374C,0x3F4E,0x5A43, +0x5A44,0x4B2D,0x5A45,0x3577,0x5A46,0x4142,0x573B,0x5A47, +0x4C38, 0,0x526A,0x4431,0x5A48,0x357D,0x3B51,0x5A49, +0x5033,0x5A4A,0x5A4B,0x4E3D,0x5A4C,0x5A4D,0x5A4E,0x3277, +0x5A51,0x5A4F,0x5168,0x5A50,0x4355,0x5A52, 0,0x5A53, +0x5A54,0x5A55,0x503B,0x5225,0x3079,0x5A56,0x472B,0x5A57, +0x3D77,0x4321,0x5A58,0x5A59,0x437D,0x4C37,0x5A5A,0x5A5B, +0x403E,0x4657,0x5A5C,0x5A5D,0x4734,0x5A5E,0x5A5F,0x3948, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3B6D, 0, 0, 0, 0,0x3639,0x7478, + 0,0x7479, 0, 0,0x4D63, 0, 0, 0, + 0, 0, 0, 0, 0,0x7539, 0, 0, + 0, 0,0x6B60, 0, 0, 0, 0, 0, + 0,0x4F73,0x3B3F, 0, 0, 0, 0, 0, + 0, 0,0x3A40,0x5425, 0, 0, 0, 0, + 0, 0, 0,0x6159, 0, 0, 0, 0, +0x7574,0x312A,0x3272, 0, 0, 0, 0, 0, + 0, 0,0x7575, 0, 0,0x7577, 0, 0, + 0,0x3A51,0x7576, 0,0x4332, 0, 0, 0, + 0, 0, 0, 0,0x7579, 0, 0, 0, +0x7578, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x3134,0x556A,0x383A, + 0,0x3931,0x3246,0x5470,0x4F4D,0x305C,0x554B,0x3B75, +0x564A,0x3737,0x4C30,0x4636,0x3161,0x393A,0x567C,0x3961, +0x3721,0x3C7A,0x6A5A,0x6A5B,0x4C79,0x3973,0x6A5C,0x347B, +0x4333,0x3751,0x3A58,0x6A5D,0x5474,0x6A5E,0x3C56,0x3B5F, +0x6A5F,0x415E,0x4238,0x545F,0x574A,0x6A60,0x6A61,0x6A64, +0x6A62,0x6A63,0x495E,0x3833,0x3644,0x6A65,0x4A6A,0x494D, +0x344D, 0, 0,0x6259,0x4562,0x6A66,0x4035, 0, +0x5738,0x6A67,0x572C,0x487C,0x5853,0x584D,0x545E, 0, +0x5479,0x4944,0x532E,0x3853,0x3360, 0,0x4962,0x7476, + 0, 0, 0,0x3A55, 0,0x7477, 0, 0, +0x575F, 0, 0,0x7471,0x3830,0x5554,0x384F,0x4670, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3343, 0, 0,0x7472,0x332C, 0, 0, + 0, 0,0x543D,0x4777, 0, 0, 0, 0, + 0,0x7474, 0, 0,0x7473, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x4C4B, + 0, 0, 0,0x4824, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x7475, 0,0x5763,0x453F,0x7540, 0, 0, +0x753B, 0,0x7543, 0,0x7542, 0,0x563A,0x7541, + 0, 0, 0,0x543E,0x7544, 0,0x754C, 0, + 0, 0, 0,0x304F,0x3578, 0,0x7549,0x754A, + 0,0x455C, 0, 0, 0, 0,0x7545,0x7546, + 0, 0,0x7547,0x754B, 0,0x3E60,0x7548,0x387A, + 0, 0, 0,0x7550,0x7553, 0, 0, 0, +0x3F67, 0,0x3972,0x753C,0x754D, 0, 0,0x4237, + 0, 0, 0,0x4C78, 0,0x3C79, 0,0x754E, +0x754F,0x7551,0x3665,0x7552, 0,0x7555, 0, 0, + 0, 0, 0, 0, 0,0x753D, 0, 0, + 0,0x7554,0x533B, 0,0x336C, 0, 0,0x4C24, + 0, 0, 0, 0,0x7556, 0, 0, 0, + 0, 0, 0, 0, 0,0x7557,0x3E61,0x7558, + 0, 0,0x4C5F,0x755B, 0, 0, 0, 0, + 0,0x3248,0x5759, 0,0x7559, 0,0x755A,0x755C, + 0,0x7562, 0, 0, 0,0x7560, 0, 0, + 0,0x755F,0x755D, 0, 0,0x7561, 0, 0, +0x755E,0x7564,0x7565, 0,0x4C63, 0, 0,0x653F, +0x3538,0x7563,0x7568,0x4C23, 0, 0, 0, 0, + 0,0x7566,0x7567, 0, 0, 0, 0, 0, + 0,0x753E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x3144, 0, + 0,0x753F, 0, 0,0x3545,0x3264, 0,0x756C, +0x7569, 0,0x3657, 0,0x756D, 0,0x756A, 0, + 0, 0, 0, 0,0x756B, 0, 0,0x345A, + 0,0x546A, 0, 0, 0,0x756E, 0,0x3379, + 0, 0, 0, 0, 0, 0, 0,0x756F, +0x7571, 0, 0, 0,0x7570, 0, 0, 0, + 0, 0, 0, 0,0x7572, 0,0x7573, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x496D,0x392A, 0, 0,0x477B, + 0, 0,0x3663, 0, 0, 0, 0, 0, + 0, 0,0x4C49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x6A26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x3335,0x547E, +0x396C,0x5079, 0,0x696D,0x572A,0x696E,0x4256,0x486D, +0x3A64,0x696F,0x6970,0x6971,0x5661,0x6972,0x6973,0x6975, +0x6974,0x6976,0x6977,0x4761,0x6978,0x5458,0x6979,0x3D4E, + 0,0x697A,0x697B,0x3D4F,0x697C,0x3828,0x413E,0x697D, +0x3132,0x3B54,0x3975,0x697E, 0,0x6A21,0x6A22,0x6A23, +0x3778,0x3C2D, 0,0x4A64,0x604E,0x542F,0x4F3D,0x5537, +0x6A24,0x555E,0x6A25,0x5041,0x393C, 0,0x3447,0x3159, + 0, 0, 0,0x4031, 0, 0, 0, 0, +0x3166,0x3167, 0,0x3168, 0, 0, 0, 0, +0x333D,0x4868, 0, 0, 0, 0,0x6541, 0, + 0,0x315F, 0, 0, 0,0x4149,0x346F, 0, + 0,0x4728,0x5358, 0,0x4679,0x5138, 0,0x397D, +0x4275, 0, 0, 0, 0, 0,0x532D, 0, +0x544B,0x3D7C, 0,0x6542,0x3735,0x6543, 0, 0, +0x3B39,0x5562, 0,0x3D78,0x5436,0x4E25,0x412C,0x3359, + 0, 0,0x4C76, 0,0x6546,0x6544,0x6548, 0, +0x654A,0x6547,0x354F,0x4648, 0,0x357C,0x6545, 0, +0x4A76, 0, 0,0x6549, 0, 0, 0,0x4354, +0x3145,0x3C23, 0, 0, 0,0x5737, 0, 0, +0x4D4B,0x4B4D,0x4A4A,0x4C53,0x654C,0x654B,0x4466, 0, + 0,0x5121,0x5137,0x654D, 0,0x6550, 0,0x4D38, +0x5670,0x654F,0x355D, 0,0x4D3E, 0,0x6551,0x363A, + 0, 0,0x4D28,0x3964, 0,0x4A45,0x3351,0x4B59, +0x546C,0x6552,0x376A, 0, 0, 0,0x654E, 0, + 0, 0, 0, 0, 0,0x6555,0x347E,0x6556, + 0, 0, 0, 0, 0,0x6553,0x6554, 0, +0x525D, 0, 0,0x425F,0x3146, 0,0x5362, 0, + 0,0x365D,0x4B6C, 0,0x6557, 0, 0,0x5376, + 0, 0, 0, 0, 0,0x3169, 0,0x3674, +0x655A,0x6558,0x6559,0x3540, 0, 0, 0,0x5245, +0x655C, 0, 0,0x655E, 0, 0, 0, 0, + 0, 0,0x655D,0x4732, 0,0x5223, 0, 0, +0x655B, 0, 0, 0, 0,0x5462,0x555A, 0, + 0, 0, 0, 0,0x6560,0x5771, 0, 0, + 0, 0, 0, 0, 0,0x6561, 0,0x315C, +0x517B, 0,0x6562,0x6564, 0, 0, 0, 0, +0x6563, 0, 0,0x6565, 0, 0, 0, 0, + 0,0x5258, 0,0x354B, 0,0x675F, 0,0x5A75, + 0,0x5A78, 0,0x5A76, 0,0x5A77, 0, 0, + 0,0x5A7A,0x504F,0x4447, 0, 0,0x306E, 0, + 0, 0,0x5030, 0,0x5A79, 0,0x534A,0x3A2A, +0x5B22,0x4771, 0,0x5A7C,0x5A7B,0x495B,0x5A7D, 0, +0x5B21,0x575E,0x5A7E,0x415A, 0, 0,0x5B25, 0, + 0,0x5374, 0, 0,0x5B27,0x5B24, 0,0x5B28, + 0, 0,0x3D3C, 0, 0, 0,0x4049,0x5B23, +0x5B26,0x5623, 0,0x5B29, 0, 0, 0,0x5B2D, + 0, 0, 0,0x5B2E,0x5B2C,0x3A42, 0, 0, + 0,0x3F24,0x5B2B, 0, 0, 0,0x5B2A,0x5447, +0x323F, 0, 0,0x5B2F, 0,0x3979, 0,0x5B30, + 0, 0, 0, 0,0x333B, 0, 0, 0, +0x3526, 0, 0, 0, 0,0x363C,0x5B31, 0, + 0, 0,0x3675, 0,0x5B32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3149, 0, 0, 0, 0,0x5B34, 0, + 0, 0,0x5B33,0x5B35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x5B37, + 0,0x5B36, 0, 0, 0, 0, 0, 0, + 0,0x5B38, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x5B39, 0, 0,0x5B3A, 0, + 0,0x534F,0x747A,0x4775,0x5743,0x4564,0x747C,0x747D, +0x747B, 0,0x3E46, 0, 0, 0, 0,0x506F, + 0, 0,0x3753, 0, 0,0x544D,0x4C2A, 0, + 0,0x7522,0x7521,0x3A28,0x747E,0x4B56, 0, 0, + 0,0x7524,0x4052, 0,0x336A, 0,0x4D2A,0x7525, +0x7523,0x3D34,0x7528, 0,0x7529,0x3D4D,0x4338,0x3F61, +0x4B61,0x752A, 0, 0, 0,0x7526,0x7527,0x4470, + 0, 0, 0, 0, 0,0x752C, 0,0x343C, + 0,0x576D, 0,0x3457,0x752B,0x752E, 0, 0, +0x752D,0x752F,0x5051, 0, 0, 0, 0, 0, + 0, 0,0x4351,0x4829, 0, 0, 0, 0, + 0, 0,0x7530,0x7531, 0, 0, 0, 0, + 0, 0,0x7532, 0, 0,0x7533,0x7534,0x7535, + 0, 0, 0, 0,0x7537,0x7536, 0, 0, + 0, 0,0x7538, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x3249, + 0,0x5354,0x4A4D, 0,0x406F,0x5658,0x5230,0x413F, + 0,0x3D70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x382A, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x3C78, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7647, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7648, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7649, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x764A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x764C, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x764B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7769, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x764D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x764E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x6E44,0x6E45,0x6E46, +0x556B,0x3624,0x6E48,0x6E47,0x6E49,0x6E4A,0x4725,0x6E4B, +0x6E4C, 0,0x3730,0x3576,0x6E4D,0x6E4F, 0,0x6E4E, + 0,0x3846,0x6E50,0x6E51,0x6E52,0x365B,0x332E,0x5653, +0x4446,0x3135,0x3856,0x6E53,0x6E54,0x543F,0x4755,0x3E7B, +0x4E59,0x3933,0x6E56,0x6E55,0x6E58,0x6E57,0x4525,0x6E59, +0x6E5A,0x472E,0x6E5B,0x472F,0x6E5C,0x3227,0x6E5D,0x6E5E, +0x6E5F,0x6E60,0x6E61,0x576A,0x6E62,0x6E63,0x3C58,0x6E64, +0x534B,0x4C7A,0x322C,0x4165,0x6E65,0x4726,0x432D, 0, +0x6E66,0x6E67,0x6E68,0x6E69,0x6E6A,0x6E6B,0x6E6C, 0, +0x6E6D,0x6E6E,0x6E6F, 0, 0,0x6E70,0x6E71,0x6E72, +0x6E74,0x6E73, 0,0x6E75,0x4D2D,0x4241,0x6E76,0x6E77, +0x6E78,0x5521,0x6E79,0x4F33,0x6E7A,0x6E7B, 0,0x6E7C, +0x6E7D,0x6F21,0x6E7E,0x6F22,0x3875,0x437A,0x6F23,0x6F24, +0x3D42,0x523F,0x3279,0x6F25,0x6F26,0x6F27,0x5278,0x6F28, +0x567D,0x6F29,0x464C, 0,0x6F2A,0x6F2B,0x4134,0x6F2C, +0x4F7A,0x4B78,0x6F2E,0x6F2D,0x337A,0x3978,0x6F2F,0x6F30, +0x5062,0x6F31,0x6F32,0x3766,0x503F,0x6F33,0x6F34,0x6F35, +0x4871,0x4C60,0x6F36,0x6F37,0x6F38,0x6F39,0x6F3A,0x5560, +0x6F3B,0x346D,0x432A,0x6F3C, 0,0x6F3D,0x6F3E,0x6F3F, + 0,0x4E7D,0x6F40,0x4260,0x3438,0x5736,0x3D75, 0, +0x4F47,0x6F43,0x6F41,0x6F42,0x6F44,0x3627,0x3C7C,0x3E62, +0x434C,0x6F45,0x6F46, 0,0x6F47,0x6F4F,0x6F48,0x6F49, +0x6F4A,0x4742,0x6F71,0x364D,0x6F4B, 0,0x6F4C,0x6F4D, +0x3646,0x433E,0x6F4E, 0,0x6F50,0x6F51,0x6F52,0x5572, + 0,0x6F53,0x4477, 0,0x6F54,0x4478,0x6F55,0x6F56, +0x3864,0x3077,0x6F57,0x6F58,0x6F59, 0,0x6F5A,0x6F5B, +0x6F5C,0x6F5D, 0,0x6F5E,0x3E35,0x6F61,0x6F5F,0x6F60, + 0,0x6F62,0x6F63,0x414D,0x6F64,0x6F65,0x6F66,0x6F67, +0x6F68,0x6F69,0x6F6A,0x6F6B,0x6F6C,0x4058, 0,0x6F6D, +0x412D,0x6F6E,0x6F6F,0x6F70, 0, 0,0x4F62, 0, + 0, 0, 0, 0, 0, 0, 0,0x3324, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4345,0x6345,0x4941,0x6346, 0,0x3155,0x4E4A,0x3433, +0x4872,0x6347,0x4F50,0x6348,0x3C64,0x6349,0x634A,0x4346, +0x5522,0x4456,0x396B,0x4E45,0x634B,0x4376,0x634C, 0, +0x3727,0x3873,0x3A52,0x634D,0x634E,0x5444,0x634F, 0, +0x6350,0x514B,0x6351,0x6352,0x6353,0x6354,0x5156,0x6355, +0x327B,0x403B,0x6356, 0,0x402B,0x6357,0x6358,0x6359, + 0,0x635A,0x635B, 0,0x3837,0x5A62, 0,0x3653, + 0,0x5A64,0x5A63, 0, 0, 0, 0, 0, + 0, 0,0x5A66, 0, 0, 0,0x486E, 0, + 0,0x5A65,0x3740,0x5174,0x5275,0x5573,0x3D57, 0, + 0, 0, 0,0x5768,0x5A68,0x5A67, 0,0x3022, +0x4D53, 0,0x5A69, 0,0x383D,0x3C4A,0x423D,0x4224, +0x3342,0x5A6A, 0,0x422A,0x4430,0x3D35, 0, 0, +0x4F5E, 0, 0, 0,0x5A6B,0x4942, 0, 0, + 0, 0, 0,0x315D, 0, 0, 0,0x5A6C, + 0,0x3638,0x543A, 0,0x337D, 0, 0,0x5A6D, +0x5449,0x4F55,0x4563, 0,0x5A6E, 0, 0, 0, + 0, 0,0x5A6F, 0,0x5A70,0x416A,0x4C55,0x4F5D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x5367,0x4221, 0, +0x5A71, 0, 0,0x4B65, 0,0x5A72, 0,0x4B66, +0x527E, 0, 0, 0,0x3874, 0, 0,0x5A73, +0x302F,0x4F36, 0, 0,0x554F, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x4B6D, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5A74, 0, 0,0x6344, 0, 0,0x4125, 0, + 0,0x763F, 0, 0,0x7640,0x7641,0x4451, 0, +0x4838,0x5163, 0, 0,0x505B,0x5145,0x3C2F,0x394D, + 0,0x6F74, 0, 0,0x3446,0x533A,0x7642,0x337B, + 0, 0,0x7643, 0, 0,0x3571, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7645, 0, 0, 0, 0, 0, 0, 0, +0x536A,0x7627,0x5129, 0, 0, 0, 0,0x7629, + 0, 0, 0,0x7628, 0, 0,0x4163,0x4057, + 0,0x3122, 0, 0, 0, 0,0x4E6D, 0, +0x5068,0x762B, 0, 0,0x4F76, 0,0x762A,0x5570, +0x762C,0x4339, 0, 0, 0,0x3B74,0x762E,0x762D, + 0, 0, 0,0x445E, 0, 0,0x4158, 0, + 0, 0, 0, 0,0x4B2A, 0,0x4F3C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x762F, 0, 0,0x7630, 0, 0, +0x7631, 0,0x4236, 0, 0, 0, 0, 0, +0x3054,0x4579, 0, 0, 0, 0,0x7632, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x4760,0x7626, 0, 0,0x3E38, 0, + 0,0x3E32, 0,0x3565, 0, 0,0x3747, 0, +0x3F3F,0x4352,0x4366, 0, 0,0x584C, 0, 0, + 0,0x386F, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x3D79,0x5125, 0,0x3050, 0, + 0, 0, 0, 0,0x7730, 0, 0, 0, + 0, 0, 0, 0, 0,0x7731, 0, 0, + 0, 0, 0,0x502C, 0,0x3030, 0, 0, + 0,0x7732,0x7733, 0,0x7734, 0, 0, 0, +0x474A, 0, 0, 0, 0, 0, 0, 0, +0x3E4F, 0, 0,0x7737, 0, 0, 0, 0, + 0, 0, 0,0x7736, 0,0x315E, 0,0x7735, + 0, 0,0x7738, 0,0x7739, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x4E24,0x484D, + 0,0x3A2B,0x6838,0x6839,0x683A,0x3E42, 0, 0, + 0, 0, 0,0x5274, 0,0x544F,0x4958, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x5233,0x3625,0x476A, +0x717C,0x4F6E,0x4B33,0x506B,0x676F,0x4D67,0x394B,0x3659, +0x717D,0x3064,0x4B4C,0x717E,0x5424,0x422D,0x416C,0x4644, +0x3E31,0x7221,0x3C55, 0,0x7222,0x7223, 0,0x7224, +0x5243,0x4635, 0,0x4D47,0x7225, 0,0x5331,0x3F45, +0x4C62, 0,0x7226,0x7227,0x5155,0x366E,0x7228,0x7229, +0x355F,0x722A,0x722B, 0,0x327C,0x722C,0x722D,0x4827, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x3767, 0, + 0,0x6C29,0x6C2A,0x6C2B, 0,0x6C2C, 0, 0, +0x462E,0x6C2D,0x6C2E, 0, 0, 0,0x3749,0x4A33, + 0, 0, 0, 0, 0, 0, 0,0x6238, +0x774F, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x7750, 0, 0, +0x324D, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x7751, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x7753,0x7752, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0x623B, 0,0x3C22, 0,0x623C, +0x623D,0x623E,0x623F,0x6240,0x6241,0x3739,0x527B,0x3D24, +0x4A4E,0x3125,0x4B47, 0,0x6242,0x367C,0x4844,0x6243, + 0, 0,0x3D48, 0,0x317D,0x6244, 0,0x3676, +0x6245,0x4459, 0, 0,0x6246,0x4F5A,0x395D,0x6247, +0x4021, 0,0x6248,0x3276, 0,0x6249, 0,0x4173, +0x624A,0x624B,0x4278,0x624C,0x624D,0x624E,0x4A57,0x5838, +0x5965,0x4F63, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x7025, 0, 0, +0x5C30, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x426D,0x5426,0x4D54,0x5131, +0x335B,0x477D, 0,0x3235,0x423F,0x6660,0x4A3B,0x6661, +0x6662,0x3E54,0x6663,0x5724,0x4D55,0x6665,0x3C5D,0x6664, +0x6666,0x6667,0x426E, 0,0x3D3E,0x6668,0x4266,0x3A27, +0x6669, 0,0x666A,0x3352,0x5169, 0, 0,0x3F25, +0x666B,0x466F,0x666C,0x666D, 0, 0,0x666E,0x462D, +0x666F, 0,0x4927,0x6670,0x6671,0x6672,0x6539,0x6673, +0x6674,0x4262,0x6675,0x6676,0x5668,0x6677, 0,0x6678, +0x3947, 0, 0, 0, 0, 0, 0, 0, +0x773B,0x773A, 0, 0, 0, 0,0x773E,0x773C, +0x3A21, 0,0x773F, 0,0x7740, 0, 0, 0, +0x7742,0x7741,0x7744, 0, 0,0x7743, 0, 0, + 0, 0, 0,0x7745,0x7746, 0, 0, 0, + 0,0x7747, 0,0x4B68, 0, 0, 0, 0, +0x385F, 0, 0, 0, 0, 0, 0,0x7754, + 0,0x7755, 0, 0, 0, 0,0x7756, 0, + 0, 0, 0,0x7758, 0,0x775A, 0,0x7757, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x775B, 0,0x7759, 0, 0, 0, 0, + 0, 0, 0,0x5757, 0, 0, 0, 0, +0x775C, 0, 0, 0, 0, 0, 0,0x775D, + 0, 0, 0,0x775E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x775F, + 0, 0, 0,0x7760, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x5B4B, + 0, 0,0x582A, 0, 0, 0, 0, 0, + 0, 0, 0,0x6577,0x396D, 0, 0, 0, + 0,0x3F7D,0x3B6A,0x7749,0x4647,0x7748, 0,0x774A, +0x774C,0x774B, 0, 0, 0,0x774D, 0,0x4E3A, + 0,0x774E, 0, 0,0x4427}; + +/* page 7 0x9C7C-0x9CE2 */ +static const uint16 tab_uni_gb23127[]={ +0x5363, 0, 0,0x764F, 0,0x4233,0x7650, 0, + 0,0x7651,0x7652,0x7653,0x7654, 0, 0,0x7656, + 0,0x312B,0x7657, 0,0x7658,0x7659,0x765A, 0, +0x765B,0x765C, 0, 0, 0, 0,0x765D,0x765E, +0x4F4A, 0,0x765F,0x7660,0x7661,0x7662,0x7663,0x7664, +0x4070,0x7665,0x7666,0x7667,0x7668,0x7669, 0,0x766A, + 0,0x766B,0x766C, 0,0x766D,0x766E,0x766F,0x7670, +0x7671,0x7672,0x7673,0x7674,0x3E28, 0,0x7675,0x7676, +0x7677,0x7678, 0, 0, 0, 0, 0,0x487A, +0x7679,0x767A,0x767B,0x767C, 0, 0,0x767D,0x767E, +0x7721,0x7722,0x7723,0x7724,0x7725, 0, 0,0x7726, +0x7727,0x7728,0x316E,0x7729,0x772A,0x772B, 0, 0, +0x772C,0x772D,0x415B,0x772E, 0, 0,0x772F}; + +/* page 8 0x9E1F-0x9FA0 */ +static const uint16 tab_uni_gb23128[]={ +0x4471,0x702F,0x3C26,0x7030,0x4379, 0,0x4538,0x513B, + 0,0x7031,0x7032,0x7033,0x7034,0x7035,0x513C, 0, +0x516C, 0,0x7037,0x7036,0x5427, 0,0x4D52,0x7038, +0x703A,0x7039,0x703B,0x703C, 0, 0,0x386B,0x703D, +0x3A68, 0,0x703E,0x703F,0x3E69,0x7040,0x366C,0x7041, +0x7042,0x7043,0x7044,0x4835,0x7045,0x7046, 0,0x7047, +0x4574, 0,0x7048, 0, 0, 0,0x7049, 0, +0x704A,0x773D, 0,0x704B,0x704C,0x704D, 0,0x704E, + 0, 0, 0, 0,0x704F,0x3A57, 0,0x7050, +0x7051,0x7052,0x7053,0x7054,0x7055,0x7056,0x7058, 0, + 0,0x5325,0x7057, 0,0x7059, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x753A, +0x4239, 0, 0,0x7764, 0, 0, 0, 0, +0x7765,0x7766, 0, 0,0x7767, 0, 0, 0, + 0, 0, 0,0x7768,0x4234, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x776A, 0, +0x776B, 0, 0, 0, 0, 0, 0,0x4273, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x7470, 0, 0, + 0,0x746F, 0, 0,0x4269, 0,0x7761,0x7762, + 0, 0, 0, 0, 0,0x3B46, 0, 0, + 0, 0,0x5964, 0, 0, 0,0x4A72,0x4068, +0x7024, 0,0x3A5A, 0, 0,0x472D, 0, 0, + 0,0x442C, 0, 0,0x776C,0x776D,0x776E, 0, +0x7770,0x776F, 0,0x7771, 0, 0,0x7774, 0, +0x7773, 0,0x7772,0x7775, 0, 0, 0, 0, +0x7776, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x6D69, 0,0x6D6A,0x6D6B, 0,0x763C, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x763D, 0,0x763E,0x3626, + 0,0x583E, 0, 0,0x3944, 0, 0, 0, +0x583B, 0,0x5C31, 0, 0, 0, 0, 0, + 0,0x4A73, 0,0x7777, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0x7778, 0, 0, +0x7779, 0, 0, 0, 0, 0, 0, 0, +0x777B, 0,0x777A, 0,0x3147, 0,0x777C,0x777D, + 0, 0, 0, 0, 0,0x777E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x466B,0x6C34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x335D,0x7633, 0, 0,0x7634,0x4164,0x7635,0x7636, +0x7637,0x7638,0x7639,0x763A,0x4823,0x763B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0x417A,0x3928,0x6D68, 0, 0, 0, +0x396A,0x595F}; + +/* page 9 0xFF01-0xFFE5 */ +static const uint16 tab_uni_gb23129[]={ +0x2321,0x2322,0x2323,0x2167,0x2325,0x2326,0x2327,0x2328, +0x2329,0x232A,0x232B,0x232C,0x232D,0x232E,0x232F,0x2330, +0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337,0x2338, +0x2339,0x233A,0x233B,0x233C,0x233D,0x233E,0x233F,0x2340, +0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347,0x2348, +0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F,0x2350, +0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357,0x2358, +0x2359,0x235A,0x235B,0x235C,0x235D,0x235E,0x235F,0x2360, +0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367,0x2368, +0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F,0x2370, +0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377,0x2378, +0x2379,0x237A,0x237B,0x237C,0x237D,0x212B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0x2169, +0x216A, 0,0x237E, 0,0x2324}; + +static int func_uni_gb2312_onechar(int code){ + if ((code>=0x00A4)&&(code<=0x01DC)) + return(tab_uni_gb23120[code-0x00A4]); + if ((code>=0x02C7)&&(code<=0x0451)) + return(tab_uni_gb23121[code-0x02C7]); + if ((code>=0x2015)&&(code<=0x2312)) + return(tab_uni_gb23122[code-0x2015]); + if ((code>=0x2460)&&(code<=0x2642)) + return(tab_uni_gb23123[code-0x2460]); + if ((code>=0x3000)&&(code<=0x3129)) + return(tab_uni_gb23124[code-0x3000]); + if ((code>=0x3220)&&(code<=0x3229)) + return(tab_uni_gb23125[code-0x3220]); + if ((code>=0x4E00)&&(code<=0x9B54)) + return(tab_uni_gb23126[code-0x4E00]); + if ((code>=0x9C7C)&&(code<=0x9CE2)) + return(tab_uni_gb23127[code-0x9C7C]); + if ((code>=0x9E1F)&&(code<=0x9FA0)) + return(tab_uni_gb23128[code-0x9E1F]); + if ((code>=0xFF01)&&(code<=0xFFE5)) + return(tab_uni_gb23129[code-0xFF01]); + return(0); +} + + +static int +my_wc_mb_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int code; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((uint) wc < 0x80) + { + s[0]= (uchar) wc; + return 1; + } + + if (!(code=func_uni_gb2312_onechar(wc))) + return MY_CS_ILUNI; + + if (s+2>e) + return MY_CS_TOOSMALL2; + + code|=0x8080; + s[0]=code>>8; + s[1]=code&0xFF; + return 2; +} + + +static int +my_mb_wc_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e){ + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) + { + pwc[0]=hi; + return 1; + } + + if (s+2>e) + return MY_CS_TOOSMALL2; + + if (!(pwc[0]=func_gb2312_uni_onechar(((hi<<8)+s[1])&0x7F7F))) + return -2; + + return 2; +} + + +/* + Returns well formed length of a EUC-KR string. +*/ +static size_t +my_well_formed_len_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + const char *emb= e - 1; /* Last possible end of an MB character */ + + *error= 0; + while (pos-- && b < e) + { + if ((uchar) b[0] < 128) + { + /* Single byte ascii character */ + b++; + } + else if (b < emb && isgb2312head(*b) && isgb2312tail(b[1])) + { + /* Double byte character */ + b+= 2; + } + else + { + /* Wrong byte sequence */ + *error= 1; + break; + } + } + return (size_t) (b - b0); +} + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_simple, /* strnncoll */ + my_strnncollsp_simple, + my_strnxfrm_mb, /* strnxfrm */ + my_strnxfrmlen_simple, + my_like_range_mb, /* like_range */ + my_wildcmp_mb, /* wildcmp */ + my_strcasecmp_mb, /* instr */ + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_gb2312, + mbcharlen_gb2312, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_gb2312, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_gb2312, /* mb_wc */ + my_wc_mb_gb2312, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_mb, + my_casedn_mb, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_gb2312_chinese_ci= +{ + 24,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ + "gb2312", /* cs name */ + "gb2312_chinese_ci",/* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_gb2312, + to_lower_gb2312, + to_upper_gb2312, + sort_order_gb2312, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_gb2312,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xF7FE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + +CHARSET_INFO my_charset_gb2312_bin= +{ + 86,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "gb2312", /* cs name */ + "gb2312_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_gb2312, + to_lower_gb2312, + to_upper_gb2312, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_gb2312,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xF7FE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + +#endif diff --git a/mysql/strings/ctype-gbk.c b/mysql/strings/ctype-gbk.c new file mode 100644 index 0000000..fa410d4 --- /dev/null +++ b/mysql/strings/ctype-gbk.c @@ -0,0 +1,10884 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for Chinese character sets GBK, created by Wei He + (hewei@mail.ied.ac.cn) +*/ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_gbk=1 + * .configure. mbmaxlen_gbk=2 + */ + + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_gbk + + +/* Support for Chinese(GBK) characters, by hewei@mail.ied.ac.cn */ + +#define isgbkhead(c) (0x81<=(uchar)(c) && (uchar)(c)<=0xfe) +#define isgbktail(c) ((0x40<=(uchar)(c) && (uchar)(c)<=0x7e) || \ + (0x80<=(uchar)(c) && (uchar)(c)<=0xfe)) + +#define isgbkcode(c,d) (isgbkhead(c) && isgbktail(d)) +#define gbkcode(c,d) ((((uint) (uchar) (c)) <<8) | (uchar)(d)) +#define gbkhead(e) ((uchar)(e>>8)) +#define gbktail(e) ((uchar)(e&0xff)) + +static const uchar ctype_gbk[257] = +{ + 0, /* For standard library */ + 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16, + 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16, + 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,32, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0, +}; + +static const uchar to_lower_gbk[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar to_upper_gbk[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + + +static const MY_UNICASE_CHARACTER cA2[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA240,0xA240,0x003F}, /* A240 */ + {0xA241,0xA241,0x003F}, + {0xA242,0xA242,0x003F}, + {0xA243,0xA243,0x003F}, + {0xA244,0xA244,0x003F}, + {0xA245,0xA245,0x003F}, + {0xA246,0xA246,0x003F}, + {0xA247,0xA247,0x003F}, + {0xA248,0xA248,0x003F}, + {0xA249,0xA249,0x003F}, + {0xA24A,0xA24A,0x003F}, + {0xA24B,0xA24B,0x003F}, + {0xA24C,0xA24C,0x003F}, + {0xA24D,0xA24D,0x003F}, + {0xA24E,0xA24E,0x003F}, + {0xA24F,0xA24F,0x003F}, + {0xA250,0xA250,0x003F}, /* A250 */ + {0xA251,0xA251,0x003F}, + {0xA252,0xA252,0x003F}, + {0xA253,0xA253,0x003F}, + {0xA254,0xA254,0x003F}, + {0xA255,0xA255,0x003F}, + {0xA256,0xA256,0x003F}, + {0xA257,0xA257,0x003F}, + {0xA258,0xA258,0x003F}, + {0xA259,0xA259,0x003F}, + {0xA25A,0xA25A,0x003F}, + {0xA25B,0xA25B,0x003F}, + {0xA25C,0xA25C,0x003F}, + {0xA25D,0xA25D,0x003F}, + {0xA25E,0xA25E,0x003F}, + {0xA25F,0xA25F,0x003F}, + {0xA260,0xA260,0x003F}, /* A260 */ + {0xA261,0xA261,0x003F}, + {0xA262,0xA262,0x003F}, + {0xA263,0xA263,0x003F}, + {0xA264,0xA264,0x003F}, + {0xA265,0xA265,0x003F}, + {0xA266,0xA266,0x003F}, + {0xA267,0xA267,0x003F}, + {0xA268,0xA268,0x003F}, + {0xA269,0xA269,0x003F}, + {0xA26A,0xA26A,0x003F}, + {0xA26B,0xA26B,0x003F}, + {0xA26C,0xA26C,0x003F}, + {0xA26D,0xA26D,0x003F}, + {0xA26E,0xA26E,0x003F}, + {0xA26F,0xA26F,0x003F}, + {0xA270,0xA270,0x003F}, /* A270 */ + {0xA271,0xA271,0x003F}, + {0xA272,0xA272,0x003F}, + {0xA273,0xA273,0x003F}, + {0xA274,0xA274,0x003F}, + {0xA275,0xA275,0x003F}, + {0xA276,0xA276,0x003F}, + {0xA277,0xA277,0x003F}, + {0xA278,0xA278,0x003F}, + {0xA279,0xA279,0x003F}, + {0xA27A,0xA27A,0x003F}, + {0xA27B,0xA27B,0x003F}, + {0xA27C,0xA27C,0x003F}, + {0xA27D,0xA27D,0x003F}, + {0xA27E,0xA27E,0x003F}, + {0xA27F,0xA27F,0xA27F}, + {0xA280,0xA280,0x003F}, /* A280 */ + {0xA281,0xA281,0x003F}, + {0xA282,0xA282,0x003F}, + {0xA283,0xA283,0x003F}, + {0xA284,0xA284,0x003F}, + {0xA285,0xA285,0x003F}, + {0xA286,0xA286,0x003F}, + {0xA287,0xA287,0x003F}, + {0xA288,0xA288,0x003F}, + {0xA289,0xA289,0x003F}, + {0xA28A,0xA28A,0x003F}, + {0xA28B,0xA28B,0x003F}, + {0xA28C,0xA28C,0x003F}, + {0xA28D,0xA28D,0x003F}, + {0xA28E,0xA28E,0x003F}, + {0xA28F,0xA28F,0x003F}, + {0xA290,0xA290,0x003F}, /* A290 */ + {0xA291,0xA291,0x003F}, + {0xA292,0xA292,0x003F}, + {0xA293,0xA293,0x003F}, + {0xA294,0xA294,0x003F}, + {0xA295,0xA295,0x003F}, + {0xA296,0xA296,0x003F}, + {0xA297,0xA297,0x003F}, + {0xA298,0xA298,0x003F}, + {0xA299,0xA299,0x003F}, + {0xA29A,0xA29A,0x003F}, + {0xA29B,0xA29B,0x003F}, + {0xA29C,0xA29C,0x003F}, + {0xA29D,0xA29D,0x003F}, + {0xA29E,0xA29E,0x003F}, + {0xA29F,0xA29F,0x003F}, + {0xA2A0,0xA2A0,0x003F}, /* A2A0 */ + {0xA2F1,0xA2A1,0x2170}, + {0xA2F2,0xA2A2,0x2171}, + {0xA2F3,0xA2A3,0x2172}, + {0xA2F4,0xA2A4,0x2173}, + {0xA2F5,0xA2A5,0x2174}, + {0xA2F6,0xA2A6,0x2175}, + {0xA2F7,0xA2A7,0x2176}, + {0xA2F8,0xA2A8,0x2177}, + {0xA2F9,0xA2A9,0x2178}, + {0xA2FA,0xA2AA,0x2179}, + {0xA2AB,0xA2AB,0x003F}, + {0xA2AC,0xA2AC,0x003F}, + {0xA2AD,0xA2AD,0x003F}, + {0xA2AE,0xA2AE,0x003F}, + {0xA2AF,0xA2AF,0x003F}, + {0xA2B0,0xA2B0,0x003F}, /* A2B0 */ + {0xA2B1,0xA2B1,0x2488}, + {0xA2B2,0xA2B2,0x2489}, + {0xA2B3,0xA2B3,0x248A}, + {0xA2B4,0xA2B4,0x248B}, + {0xA2B5,0xA2B5,0x248C}, + {0xA2B6,0xA2B6,0x248D}, + {0xA2B7,0xA2B7,0x248E}, + {0xA2B8,0xA2B8,0x248F}, + {0xA2B9,0xA2B9,0x2490}, + {0xA2BA,0xA2BA,0x2491}, + {0xA2BB,0xA2BB,0x2492}, + {0xA2BC,0xA2BC,0x2493}, + {0xA2BD,0xA2BD,0x2494}, + {0xA2BE,0xA2BE,0x2495}, + {0xA2BF,0xA2BF,0x2496}, + {0xA2C0,0xA2C0,0x2497}, /* A2C0 */ + {0xA2C1,0xA2C1,0x2498}, + {0xA2C2,0xA2C2,0x2499}, + {0xA2C3,0xA2C3,0x249A}, + {0xA2C4,0xA2C4,0x249B}, + {0xA2C5,0xA2C5,0x2474}, + {0xA2C6,0xA2C6,0x2475}, + {0xA2C7,0xA2C7,0x2476}, + {0xA2C8,0xA2C8,0x2477}, + {0xA2C9,0xA2C9,0x2478}, + {0xA2CA,0xA2CA,0x2479}, + {0xA2CB,0xA2CB,0x247A}, + {0xA2CC,0xA2CC,0x247B}, + {0xA2CD,0xA2CD,0x247C}, + {0xA2CE,0xA2CE,0x247D}, + {0xA2CF,0xA2CF,0x247E}, + {0xA2D0,0xA2D0,0x247F}, /* A2D0 */ + {0xA2D1,0xA2D1,0x2480}, + {0xA2D2,0xA2D2,0x2481}, + {0xA2D3,0xA2D3,0x2482}, + {0xA2D4,0xA2D4,0x2483}, + {0xA2D5,0xA2D5,0x2484}, + {0xA2D6,0xA2D6,0x2485}, + {0xA2D7,0xA2D7,0x2486}, + {0xA2D8,0xA2D8,0x2487}, + {0xA2D9,0xA2D9,0x2460}, + {0xA2DA,0xA2DA,0x2461}, + {0xA2DB,0xA2DB,0x2462}, + {0xA2DC,0xA2DC,0x2463}, + {0xA2DD,0xA2DD,0x2464}, + {0xA2DE,0xA2DE,0x2465}, + {0xA2DF,0xA2DF,0x2466}, + {0xA2E0,0xA2E0,0x2467}, /* A2E0 */ + {0xA2E1,0xA2E1,0x2468}, + {0xA2E2,0xA2E2,0x2469}, + {0xA2E3,0xA2E3,0x003F}, + {0xA2E4,0xA2E4,0x003F}, + {0xA2E5,0xA2E5,0x3220}, + {0xA2E6,0xA2E6,0x3221}, + {0xA2E7,0xA2E7,0x3222}, + {0xA2E8,0xA2E8,0x3223}, + {0xA2E9,0xA2E9,0x3224}, + {0xA2EA,0xA2EA,0x3225}, + {0xA2EB,0xA2EB,0x3226}, + {0xA2EC,0xA2EC,0x3227}, + {0xA2ED,0xA2ED,0x3228}, + {0xA2EE,0xA2EE,0x3229}, + {0xA2EF,0xA2EF,0x003F}, + {0xA2F0,0xA2F0,0x003F}, /* A2F0 */ + {0xA2F1,0xA2A1,0x2160}, + {0xA2F2,0xA2A2,0x2161}, + {0xA2F3,0xA2A3,0x2162}, + {0xA2F4,0xA2A4,0x2163}, + {0xA2F5,0xA2A5,0x2164}, + {0xA2F6,0xA2A6,0x2165}, + {0xA2F7,0xA2A7,0x2166}, + {0xA2F8,0xA2A8,0x2167}, + {0xA2F9,0xA2A9,0x2168}, + {0xA2FA,0xA2AA,0x2169}, + {0xA2FB,0xA2FB,0x216A}, + {0xA2FC,0xA2FC,0x216B}, + {0xA2FD,0xA2FD,0x003F}, + {0xA2FE,0xA2FE,0x003F}, + {0xA2FF,0xA2FF,0xA2FF} +}; + +static const MY_UNICASE_CHARACTER cA3[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA340,0xA340,0x003F}, /* A340 */ + {0xA341,0xA341,0x003F}, + {0xA342,0xA342,0x003F}, + {0xA343,0xA343,0x003F}, + {0xA344,0xA344,0x003F}, + {0xA345,0xA345,0x003F}, + {0xA346,0xA346,0x003F}, + {0xA347,0xA347,0x003F}, + {0xA348,0xA348,0x003F}, + {0xA349,0xA349,0x003F}, + {0xA34A,0xA34A,0x003F}, + {0xA34B,0xA34B,0x003F}, + {0xA34C,0xA34C,0x003F}, + {0xA34D,0xA34D,0x003F}, + {0xA34E,0xA34E,0x003F}, + {0xA34F,0xA34F,0x003F}, + {0xA350,0xA350,0x003F}, /* A350 */ + {0xA351,0xA351,0x003F}, + {0xA352,0xA352,0x003F}, + {0xA353,0xA353,0x003F}, + {0xA354,0xA354,0x003F}, + {0xA355,0xA355,0x003F}, + {0xA356,0xA356,0x003F}, + {0xA357,0xA357,0x003F}, + {0xA358,0xA358,0x003F}, + {0xA359,0xA359,0x003F}, + {0xA35A,0xA35A,0x003F}, + {0xA35B,0xA35B,0x003F}, + {0xA35C,0xA35C,0x003F}, + {0xA35D,0xA35D,0x003F}, + {0xA35E,0xA35E,0x003F}, + {0xA35F,0xA35F,0x003F}, + {0xA360,0xA360,0x003F}, /* A360 */ + {0xA361,0xA361,0x003F}, + {0xA362,0xA362,0x003F}, + {0xA363,0xA363,0x003F}, + {0xA364,0xA364,0x003F}, + {0xA365,0xA365,0x003F}, + {0xA366,0xA366,0x003F}, + {0xA367,0xA367,0x003F}, + {0xA368,0xA368,0x003F}, + {0xA369,0xA369,0x003F}, + {0xA36A,0xA36A,0x003F}, + {0xA36B,0xA36B,0x003F}, + {0xA36C,0xA36C,0x003F}, + {0xA36D,0xA36D,0x003F}, + {0xA36E,0xA36E,0x003F}, + {0xA36F,0xA36F,0x003F}, + {0xA370,0xA370,0x003F}, /* A370 */ + {0xA371,0xA371,0x003F}, + {0xA372,0xA372,0x003F}, + {0xA373,0xA373,0x003F}, + {0xA374,0xA374,0x003F}, + {0xA375,0xA375,0x003F}, + {0xA376,0xA376,0x003F}, + {0xA377,0xA377,0x003F}, + {0xA378,0xA378,0x003F}, + {0xA379,0xA379,0x003F}, + {0xA37A,0xA37A,0x003F}, + {0xA37B,0xA37B,0x003F}, + {0xA37C,0xA37C,0x003F}, + {0xA37D,0xA37D,0x003F}, + {0xA37E,0xA37E,0x003F}, + {0xA37F,0xA37F,0xA37F}, + {0xA380,0xA380,0x003F}, /* A380 */ + {0xA381,0xA381,0x003F}, + {0xA382,0xA382,0x003F}, + {0xA383,0xA383,0x003F}, + {0xA384,0xA384,0x003F}, + {0xA385,0xA385,0x003F}, + {0xA386,0xA386,0x003F}, + {0xA387,0xA387,0x003F}, + {0xA388,0xA388,0x003F}, + {0xA389,0xA389,0x003F}, + {0xA38A,0xA38A,0x003F}, + {0xA38B,0xA38B,0x003F}, + {0xA38C,0xA38C,0x003F}, + {0xA38D,0xA38D,0x003F}, + {0xA38E,0xA38E,0x003F}, + {0xA38F,0xA38F,0x003F}, + {0xA390,0xA390,0x003F}, /* A390 */ + {0xA391,0xA391,0x003F}, + {0xA392,0xA392,0x003F}, + {0xA393,0xA393,0x003F}, + {0xA394,0xA394,0x003F}, + {0xA395,0xA395,0x003F}, + {0xA396,0xA396,0x003F}, + {0xA397,0xA397,0x003F}, + {0xA398,0xA398,0x003F}, + {0xA399,0xA399,0x003F}, + {0xA39A,0xA39A,0x003F}, + {0xA39B,0xA39B,0x003F}, + {0xA39C,0xA39C,0x003F}, + {0xA39D,0xA39D,0x003F}, + {0xA39E,0xA39E,0x003F}, + {0xA39F,0xA39F,0x003F}, + {0xA3A0,0xA3A0,0x003F}, /* A3A0 */ + {0xA3A1,0xA3A1,0xFF01}, + {0xA3A2,0xA3A2,0xFF02}, + {0xA3A3,0xA3A3,0xFF03}, + {0xA3A4,0xA3A4,0xFFE5}, + {0xA3A5,0xA3A5,0xFF05}, + {0xA3A6,0xA3A6,0xFF06}, + {0xA3A7,0xA3A7,0xFF07}, + {0xA3A8,0xA3A8,0xFF08}, + {0xA3A9,0xA3A9,0xFF09}, + {0xA3AA,0xA3AA,0xFF0A}, + {0xA3AB,0xA3AB,0xFF0B}, + {0xA3AC,0xA3AC,0xFF0C}, + {0xA3AD,0xA3AD,0xFF0D}, + {0xA3AE,0xA3AE,0xFF0E}, + {0xA3AF,0xA3AF,0xFF0F}, + {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */ + {0xA3B1,0xA3B1,0xFF11}, + {0xA3B2,0xA3B2,0xFF12}, + {0xA3B3,0xA3B3,0xFF13}, + {0xA3B4,0xA3B4,0xFF14}, + {0xA3B5,0xA3B5,0xFF15}, + {0xA3B6,0xA3B6,0xFF16}, + {0xA3B7,0xA3B7,0xFF17}, + {0xA3B8,0xA3B8,0xFF18}, + {0xA3B9,0xA3B9,0xFF19}, + {0xA3BA,0xA3BA,0xFF1A}, + {0xA3BB,0xA3BB,0xFF1B}, + {0xA3BC,0xA3BC,0xFF1C}, + {0xA3BD,0xA3BD,0xFF1D}, + {0xA3BE,0xA3BE,0xFF1E}, + {0xA3BF,0xA3BF,0xFF1F}, + {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */ + {0xA3C1,0xA3E1,0xFF21}, + {0xA3C2,0xA3E2,0xFF22}, + {0xA3C3,0xA3E3,0xFF23}, + {0xA3C4,0xA3E4,0xFF24}, + {0xA3C5,0xA3E5,0xFF25}, + {0xA3C6,0xA3E6,0xFF26}, + {0xA3C7,0xA3E7,0xFF27}, + {0xA3C8,0xA3E8,0xFF28}, + {0xA3C9,0xA3E9,0xFF29}, + {0xA3CA,0xA3EA,0xFF2A}, + {0xA3CB,0xA3EB,0xFF2B}, + {0xA3CC,0xA3EC,0xFF2C}, + {0xA3CD,0xA3ED,0xFF2D}, + {0xA3CE,0xA3EE,0xFF2E}, + {0xA3CF,0xA3EF,0xFF2F}, + {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */ + {0xA3D1,0xA3F1,0xFF31}, + {0xA3D2,0xA3F2,0xFF32}, + {0xA3D3,0xA3F3,0xFF33}, + {0xA3D4,0xA3F4,0xFF34}, + {0xA3D5,0xA3F5,0xFF35}, + {0xA3D6,0xA3F6,0xFF36}, + {0xA3D7,0xA3F7,0xFF37}, + {0xA3D8,0xA3F8,0xFF38}, + {0xA3D9,0xA3F9,0xFF39}, + {0xA3DA,0xA3FA,0xFF3A}, + {0xA3DB,0xA3DB,0xFF3B}, + {0xA3DC,0xA3DC,0xFF3C}, + {0xA3DD,0xA3DD,0xFF3D}, + {0xA3DE,0xA3DE,0xFF3E}, + {0xA3DF,0xA3DF,0xFF3F}, + {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */ + {0xA3C1,0xA3E1,0xFF41}, + {0xA3C2,0xA3E2,0xFF42}, + {0xA3C3,0xA3E3,0xFF43}, + {0xA3C4,0xA3E4,0xFF44}, + {0xA3C5,0xA3E5,0xFF45}, + {0xA3C6,0xA3E6,0xFF46}, + {0xA3C7,0xA3E7,0xFF47}, + {0xA3C8,0xA3E8,0xFF48}, + {0xA3C9,0xA3E9,0xFF49}, + {0xA3CA,0xA3EA,0xFF4A}, + {0xA3CB,0xA3EB,0xFF4B}, + {0xA3CC,0xA3EC,0xFF4C}, + {0xA3CD,0xA3ED,0xFF4D}, + {0xA3CE,0xA3EE,0xFF4E}, + {0xA3CF,0xA3EF,0xFF4F}, + {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */ + {0xA3D1,0xA3F1,0xFF51}, + {0xA3D2,0xA3F2,0xFF52}, + {0xA3D3,0xA3F3,0xFF53}, + {0xA3D4,0xA3F4,0xFF54}, + {0xA3D5,0xA3F5,0xFF55}, + {0xA3D6,0xA3F6,0xFF56}, + {0xA3D7,0xA3F7,0xFF57}, + {0xA3D8,0xA3F8,0xFF58}, + {0xA3D9,0xA3F9,0xFF59}, + {0xA3DA,0xA3FA,0xFF5A}, + {0xA3FB,0xA3FB,0xFF5B}, + {0xA3FC,0xA3FC,0xFF5C}, + {0xA3FD,0xA3FD,0xFF5D}, + {0xA3FE,0xA3FE,0xFFE3}, + {0xA3FF,0xA3FF,0xA3FF} +}; + + +static const MY_UNICASE_CHARACTER cA6[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA640,0xA640,0x003F}, /* A640 */ + {0xA641,0xA641,0x003F}, + {0xA642,0xA642,0x003F}, + {0xA643,0xA643,0x003F}, + {0xA644,0xA644,0x003F}, + {0xA645,0xA645,0x003F}, + {0xA646,0xA646,0x003F}, + {0xA647,0xA647,0x003F}, + {0xA648,0xA648,0x003F}, + {0xA649,0xA649,0x003F}, + {0xA64A,0xA64A,0x003F}, + {0xA64B,0xA64B,0x003F}, + {0xA64C,0xA64C,0x003F}, + {0xA64D,0xA64D,0x003F}, + {0xA64E,0xA64E,0x003F}, + {0xA64F,0xA64F,0x003F}, + {0xA650,0xA650,0x003F}, /* A650 */ + {0xA651,0xA651,0x003F}, + {0xA652,0xA652,0x003F}, + {0xA653,0xA653,0x003F}, + {0xA654,0xA654,0x003F}, + {0xA655,0xA655,0x003F}, + {0xA656,0xA656,0x003F}, + {0xA657,0xA657,0x003F}, + {0xA658,0xA658,0x003F}, + {0xA659,0xA659,0x003F}, + {0xA65A,0xA65A,0x003F}, + {0xA65B,0xA65B,0x003F}, + {0xA65C,0xA65C,0x003F}, + {0xA65D,0xA65D,0x003F}, + {0xA65E,0xA65E,0x003F}, + {0xA65F,0xA65F,0x003F}, + {0xA660,0xA660,0x003F}, /* A660 */ + {0xA661,0xA661,0x003F}, + {0xA662,0xA662,0x003F}, + {0xA663,0xA663,0x003F}, + {0xA664,0xA664,0x003F}, + {0xA665,0xA665,0x003F}, + {0xA666,0xA666,0x003F}, + {0xA667,0xA667,0x003F}, + {0xA668,0xA668,0x003F}, + {0xA669,0xA669,0x003F}, + {0xA66A,0xA66A,0x003F}, + {0xA66B,0xA66B,0x003F}, + {0xA66C,0xA66C,0x003F}, + {0xA66D,0xA66D,0x003F}, + {0xA66E,0xA66E,0x003F}, + {0xA66F,0xA66F,0x003F}, + {0xA670,0xA670,0x003F}, /* A670 */ + {0xA671,0xA671,0x003F}, + {0xA672,0xA672,0x003F}, + {0xA673,0xA673,0x003F}, + {0xA674,0xA674,0x003F}, + {0xA675,0xA675,0x003F}, + {0xA676,0xA676,0x003F}, + {0xA677,0xA677,0x003F}, + {0xA678,0xA678,0x003F}, + {0xA679,0xA679,0x003F}, + {0xA67A,0xA67A,0x003F}, + {0xA67B,0xA67B,0x003F}, + {0xA67C,0xA67C,0x003F}, + {0xA67D,0xA67D,0x003F}, + {0xA67E,0xA67E,0x003F}, + {0xA67F,0xA67F,0xA67F}, + {0xA680,0xA680,0x003F}, /* A680 */ + {0xA681,0xA681,0x003F}, + {0xA682,0xA682,0x003F}, + {0xA683,0xA683,0x003F}, + {0xA684,0xA684,0x003F}, + {0xA685,0xA685,0x003F}, + {0xA686,0xA686,0x003F}, + {0xA687,0xA687,0x003F}, + {0xA688,0xA688,0x003F}, + {0xA689,0xA689,0x003F}, + {0xA68A,0xA68A,0x003F}, + {0xA68B,0xA68B,0x003F}, + {0xA68C,0xA68C,0x003F}, + {0xA68D,0xA68D,0x003F}, + {0xA68E,0xA68E,0x003F}, + {0xA68F,0xA68F,0x003F}, + {0xA690,0xA690,0x003F}, /* A690 */ + {0xA691,0xA691,0x003F}, + {0xA692,0xA692,0x003F}, + {0xA693,0xA693,0x003F}, + {0xA694,0xA694,0x003F}, + {0xA695,0xA695,0x003F}, + {0xA696,0xA696,0x003F}, + {0xA697,0xA697,0x003F}, + {0xA698,0xA698,0x003F}, + {0xA699,0xA699,0x003F}, + {0xA69A,0xA69A,0x003F}, + {0xA69B,0xA69B,0x003F}, + {0xA69C,0xA69C,0x003F}, + {0xA69D,0xA69D,0x003F}, + {0xA69E,0xA69E,0x003F}, + {0xA69F,0xA69F,0x003F}, + {0xA6A0,0xA6A0,0x003F}, /* A6A0 */ + {0xA6A1,0xA6C1,0x0391}, + {0xA6A2,0xA6C2,0x0392}, + {0xA6A3,0xA6C3,0x0393}, + {0xA6A4,0xA6C4,0x0394}, + {0xA6A5,0xA6C5,0x0395}, + {0xA6A6,0xA6C6,0x0396}, + {0xA6A7,0xA6C7,0x0397}, + {0xA6A8,0xA6C8,0x0398}, + {0xA6A9,0xA6C9,0x0399}, + {0xA6AA,0xA6CA,0x039A}, + {0xA6AB,0xA6CB,0x039B}, + {0xA6AC,0xA6CC,0x039C}, + {0xA6AD,0xA6CD,0x039D}, + {0xA6AE,0xA6CE,0x039E}, + {0xA6AF,0xA6CF,0x039F}, + {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */ + {0xA6B1,0xA6D1,0x03A1}, + {0xA6B2,0xA6D2,0x03A3}, + {0xA6B3,0xA6D3,0x03A4}, + {0xA6B4,0xA6D4,0x03A5}, + {0xA6B5,0xA6D5,0x03A6}, + {0xA6B6,0xA6D6,0x03A7}, + {0xA6B7,0xA6D7,0x03A8}, + {0xA6B8,0xA6D8,0x03A9}, + {0xA6B9,0xA6B9,0x003F}, + {0xA6BA,0xA6BA,0x003F}, + {0xA6BB,0xA6BB,0x003F}, + {0xA6BC,0xA6BC,0x003F}, + {0xA6BD,0xA6BD,0x003F}, + {0xA6BE,0xA6BE,0x003F}, + {0xA6BF,0xA6BF,0x003F}, + {0xA6C0,0xA6C0,0x003F}, /* A6C0 */ + {0xA6A1,0xA6C1,0x03B1}, + {0xA6A2,0xA6C2,0x03B2}, + {0xA6A3,0xA6C3,0x03B3}, + {0xA6A4,0xA6C4,0x03B4}, + {0xA6A5,0xA6C5,0x03B5}, + {0xA6A6,0xA6C6,0x03B6}, + {0xA6A7,0xA6C7,0x03B7}, + {0xA6A8,0xA6C8,0x03B8}, + {0xA6A9,0xA6C9,0x03B9}, + {0xA6AA,0xA6CA,0x03BA}, + {0xA6AB,0xA6CB,0x03BB}, + {0xA6AC,0xA6CC,0x03BC}, + {0xA6AD,0xA6CD,0x03BD}, + {0xA6AE,0xA6CE,0x03BE}, + {0xA6AF,0xA6CF,0x03BF}, + {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */ + {0xA6B1,0xA6D1,0x03C1}, + {0xA6B2,0xA6D2,0x03C3}, + {0xA6B3,0xA6D3,0x03C4}, + {0xA6B4,0xA6D4,0x03C5}, + {0xA6B5,0xA6D5,0x03C6}, + {0xA6B6,0xA6D6,0x03C7}, + {0xA6B7,0xA6D7,0x03C8}, + {0xA6B8,0xA6D8,0x03C9}, + {0xA6D9,0xA6D9,0x003F}, + {0xA6DA,0xA6DA,0x003F}, + {0xA6DB,0xA6DB,0x003F}, + {0xA6DC,0xA6DC,0x003F}, + {0xA6DD,0xA6DD,0x003F}, + {0xA6DE,0xA6DE,0x003F}, + {0xA6DF,0xA6DF,0x003F}, + {0xA6E0,0xA6E0,0xFE35}, /* A6E0 */ + {0xA6E1,0xA6E1,0xFE36}, + {0xA6E2,0xA6E2,0xFE39}, + {0xA6E3,0xA6E3,0xFE3A}, + {0xA6E4,0xA6E4,0xFE3F}, + {0xA6E5,0xA6E5,0xFE40}, + {0xA6E6,0xA6E6,0xFE3D}, + {0xA6E7,0xA6E7,0xFE3E}, + {0xA6E8,0xA6E8,0xFE41}, + {0xA6E9,0xA6E9,0xFE42}, + {0xA6EA,0xA6EA,0xFE43}, + {0xA6EB,0xA6EB,0xFE44}, + {0xA6EC,0xA6EC,0x003F}, + {0xA6ED,0xA6ED,0x003F}, + {0xA6EE,0xA6EE,0xFE3B}, + {0xA6EF,0xA6EF,0xFE3C}, + {0xA6F0,0xA6F0,0xFE37}, /* A6F0 */ + {0xA6F1,0xA6F1,0xFE38}, + {0xA6F2,0xA6F2,0xFE31}, + {0xA6F3,0xA6F3,0x003F}, + {0xA6F4,0xA6F4,0xFE33}, + {0xA6F5,0xA6F5,0xFE34}, + {0xA6F6,0xA6F6,0x003F}, + {0xA6F7,0xA6F7,0x003F}, + {0xA6F8,0xA6F8,0x003F}, + {0xA6F9,0xA6F9,0x003F}, + {0xA6FA,0xA6FA,0x003F}, + {0xA6FB,0xA6FB,0x003F}, + {0xA6FC,0xA6FC,0x003F}, + {0xA6FD,0xA6FD,0x003F}, + {0xA6FE,0xA6FE,0x003F}, + {0xA6FF,0xA6FF,0xA6FF} +}; + + +static const MY_UNICASE_CHARACTER cA7[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA740,0xA740,0x003F}, /* A740 */ + {0xA741,0xA741,0x003F}, + {0xA742,0xA742,0x003F}, + {0xA743,0xA743,0x003F}, + {0xA744,0xA744,0x003F}, + {0xA745,0xA745,0x003F}, + {0xA746,0xA746,0x003F}, + {0xA747,0xA747,0x003F}, + {0xA748,0xA748,0x003F}, + {0xA749,0xA749,0x003F}, + {0xA74A,0xA74A,0x003F}, + {0xA74B,0xA74B,0x003F}, + {0xA74C,0xA74C,0x003F}, + {0xA74D,0xA74D,0x003F}, + {0xA74E,0xA74E,0x003F}, + {0xA74F,0xA74F,0x003F}, + {0xA750,0xA750,0x003F}, /* A750 */ + {0xA751,0xA751,0x003F}, + {0xA752,0xA752,0x003F}, + {0xA753,0xA753,0x003F}, + {0xA754,0xA754,0x003F}, + {0xA755,0xA755,0x003F}, + {0xA756,0xA756,0x003F}, + {0xA757,0xA757,0x003F}, + {0xA758,0xA758,0x003F}, + {0xA759,0xA759,0x003F}, + {0xA75A,0xA75A,0x003F}, + {0xA75B,0xA75B,0x003F}, + {0xA75C,0xA75C,0x003F}, + {0xA75D,0xA75D,0x003F}, + {0xA75E,0xA75E,0x003F}, + {0xA75F,0xA75F,0x003F}, + {0xA760,0xA760,0x003F}, /* A760 */ + {0xA761,0xA761,0x003F}, + {0xA762,0xA762,0x003F}, + {0xA763,0xA763,0x003F}, + {0xA764,0xA764,0x003F}, + {0xA765,0xA765,0x003F}, + {0xA766,0xA766,0x003F}, + {0xA767,0xA767,0x003F}, + {0xA768,0xA768,0x003F}, + {0xA769,0xA769,0x003F}, + {0xA76A,0xA76A,0x003F}, + {0xA76B,0xA76B,0x003F}, + {0xA76C,0xA76C,0x003F}, + {0xA76D,0xA76D,0x003F}, + {0xA76E,0xA76E,0x003F}, + {0xA76F,0xA76F,0x003F}, + {0xA770,0xA770,0x003F}, /* A770 */ + {0xA771,0xA771,0x003F}, + {0xA772,0xA772,0x003F}, + {0xA773,0xA773,0x003F}, + {0xA774,0xA774,0x003F}, + {0xA775,0xA775,0x003F}, + {0xA776,0xA776,0x003F}, + {0xA777,0xA777,0x003F}, + {0xA778,0xA778,0x003F}, + {0xA779,0xA779,0x003F}, + {0xA77A,0xA77A,0x003F}, + {0xA77B,0xA77B,0x003F}, + {0xA77C,0xA77C,0x003F}, + {0xA77D,0xA77D,0x003F}, + {0xA77E,0xA77E,0x003F}, + {0xA77F,0xA77F,0xA77F}, + {0xA780,0xA780,0x003F}, /* A780 */ + {0xA781,0xA781,0x003F}, + {0xA782,0xA782,0x003F}, + {0xA783,0xA783,0x003F}, + {0xA784,0xA784,0x003F}, + {0xA785,0xA785,0x003F}, + {0xA786,0xA786,0x003F}, + {0xA787,0xA787,0x003F}, + {0xA788,0xA788,0x003F}, + {0xA789,0xA789,0x003F}, + {0xA78A,0xA78A,0x003F}, + {0xA78B,0xA78B,0x003F}, + {0xA78C,0xA78C,0x003F}, + {0xA78D,0xA78D,0x003F}, + {0xA78E,0xA78E,0x003F}, + {0xA78F,0xA78F,0x003F}, + {0xA790,0xA790,0x003F}, /* A790 */ + {0xA791,0xA791,0x003F}, + {0xA792,0xA792,0x003F}, + {0xA793,0xA793,0x003F}, + {0xA794,0xA794,0x003F}, + {0xA795,0xA795,0x003F}, + {0xA796,0xA796,0x003F}, + {0xA797,0xA797,0x003F}, + {0xA798,0xA798,0x003F}, + {0xA799,0xA799,0x003F}, + {0xA79A,0xA79A,0x003F}, + {0xA79B,0xA79B,0x003F}, + {0xA79C,0xA79C,0x003F}, + {0xA79D,0xA79D,0x003F}, + {0xA79E,0xA79E,0x003F}, + {0xA79F,0xA79F,0x003F}, + {0xA7A0,0xA7A0,0x003F}, /* A7A0 */ + {0xA7A1,0xA7D1,0x0410}, + {0xA7A2,0xA7D2,0x0411}, + {0xA7A3,0xA7D3,0x0412}, + {0xA7A4,0xA7D4,0x0413}, + {0xA7A5,0xA7D5,0x0414}, + {0xA7A6,0xA7D6,0x0415}, + {0xA7A7,0xA7D7,0x0401}, + {0xA7A8,0xA7D8,0x0416}, + {0xA7A9,0xA7D9,0x0417}, + {0xA7AA,0xA7DA,0x0418}, + {0xA7AB,0xA7DB,0x0419}, + {0xA7AC,0xA7DC,0x041A}, + {0xA7AD,0xA7DD,0x041B}, + {0xA7AE,0xA7DE,0x041C}, + {0xA7AF,0xA7DF,0x041D}, + {0xA7B0,0xA7E0,0x041E}, /* A7B0 */ + {0xA7B1,0xA7E1,0x041F}, + {0xA7B2,0xA7E2,0x0420}, + {0xA7B3,0xA7E3,0x0421}, + {0xA7B4,0xA7E4,0x0422}, + {0xA7B5,0xA7E5,0x0423}, + {0xA7B6,0xA7E6,0x0424}, + {0xA7B7,0xA7E7,0x0425}, + {0xA7B8,0xA7E8,0x0426}, + {0xA7B9,0xA7E9,0x0427}, + {0xA7BA,0xA7EA,0x0428}, + {0xA7BB,0xA7EB,0x0429}, + {0xA7BC,0xA7EC,0x042A}, + {0xA7BD,0xA7ED,0x042B}, + {0xA7BE,0xA7EE,0x042C}, + {0xA7BF,0xA7EF,0x042D}, + {0xA7C0,0xA7F0,0x042E}, /* A7C0 */ + {0xA7C1,0xA7F1,0x042F}, + {0xA7C2,0xA7C2,0x003F}, + {0xA7C3,0xA7C3,0x003F}, + {0xA7C4,0xA7C4,0x003F}, + {0xA7C5,0xA7C5,0x003F}, + {0xA7C6,0xA7C6,0x003F}, + {0xA7C7,0xA7C7,0x003F}, + {0xA7C8,0xA7C8,0x003F}, + {0xA7C9,0xA7C9,0x003F}, + {0xA7CA,0xA7CA,0x003F}, + {0xA7CB,0xA7CB,0x003F}, + {0xA7CC,0xA7CC,0x003F}, + {0xA7CD,0xA7CD,0x003F}, + {0xA7CE,0xA7CE,0x003F}, + {0xA7CF,0xA7CF,0x003F}, + {0xA7D0,0xA7D0,0x003F}, /* A7D0 */ + {0xA7A1,0xA7D1,0x0430}, + {0xA7A2,0xA7D2,0x0431}, + {0xA7A3,0xA7D3,0x0432}, + {0xA7A4,0xA7D4,0x0433}, + {0xA7A5,0xA7D5,0x0434}, + {0xA7A6,0xA7D6,0x0435}, + {0xA7A7,0xA7D7,0x0451}, + {0xA7A8,0xA7D8,0x0436}, + {0xA7A9,0xA7D9,0x0437}, + {0xA7AA,0xA7DA,0x0438}, + {0xA7AB,0xA7DB,0x0439}, + {0xA7AC,0xA7DC,0x043A}, + {0xA7AD,0xA7DD,0x043B}, + {0xA7AE,0xA7DE,0x043C}, + {0xA7AF,0xA7DF,0x043D}, + {0xA7B0,0xA7E0,0x043E}, /* A7E0 */ + {0xA7B1,0xA7E1,0x043F}, + {0xA7B2,0xA7E2,0x0440}, + {0xA7B3,0xA7E3,0x0441}, + {0xA7B4,0xA7E4,0x0442}, + {0xA7B5,0xA7E5,0x0443}, + {0xA7B6,0xA7E6,0x0444}, + {0xA7B7,0xA7E7,0x0445}, + {0xA7B8,0xA7E8,0x0446}, + {0xA7B9,0xA7E9,0x0447}, + {0xA7BA,0xA7EA,0x0448}, + {0xA7BB,0xA7EB,0x0449}, + {0xA7BC,0xA7EC,0x044A}, + {0xA7BD,0xA7ED,0x044B}, + {0xA7BE,0xA7EE,0x044C}, + {0xA7BF,0xA7EF,0x044D}, + {0xA7C0,0xA7F0,0x044E}, /* A7F0 */ + {0xA7C1,0xA7F1,0x044F}, + {0xA7F2,0xA7F2,0x003F}, + {0xA7F3,0xA7F3,0x003F}, + {0xA7F4,0xA7F4,0x003F}, + {0xA7F5,0xA7F5,0x003F}, + {0xA7F6,0xA7F6,0x003F}, + {0xA7F7,0xA7F7,0x003F}, + {0xA7F8,0xA7F8,0x003F}, + {0xA7F9,0xA7F9,0x003F}, + {0xA7FA,0xA7FA,0x003F}, + {0xA7FB,0xA7FB,0x003F}, + {0xA7FC,0xA7FC,0x003F}, + {0xA7FD,0xA7FD,0x003F}, + {0xA7FE,0xA7FE,0x003F}, + {0xA7FF,0xA7FF,0xA7FF} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_gbk[256]= +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, cA2, cA3, NULL, NULL, cA6, cA7, /* A */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + + +static MY_UNICASE_INFO my_caseinfo_gbk= +{ + 0xFFFF, + my_caseinfo_pages_gbk +}; + + +static const uchar sort_order_gbk[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '\\', ']', '[', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uint16 gbk_order[]= +{ +8653,14277,17116,11482,11160,2751,14613,3913,13337,9827, +19496,1759,8105,7103,7836,5638,2223,21433,5878,8006, +4851,18766,18879,16728,8129,6200,19133,6389,2500,19084, +16228,5074,8130,5900,6201,3985,14597,11566,8588,8769, +15885,11411,11965,1961,18012,18303,12242,14118,11490,12911, +15015,4367,3184,2093,20937,5710,5108,10560,9993,18982, +8393,10697,14620,19558,14970,15193,5359,18189,12666,18192, +3310,18659,17358,7973,18673,19537,3404,9723,4221,16486, +7023,13648,16310,1049,1726,4799,15534,4366,17133,4192, +6219,5118,1804,2360,2279,14279,13740,4511,2361,12906, +16650,18590,4723,2001,16313,3594,21026,12146,19561,3800, +4161,16774,18892,17657,7025,892,7917,12245,3394,4813, +11902,3189,20002,2365,12964,18115,17660,20227,17182,11907, +11671,17562,17864,21131,13423,1361,12246,18897,14978,18848, +20727,5902,10726,21241,1906,13424,1408,20519,3038,18495, +20446,1431,17138,13464,14558,1221,6720,6137,17348,5268, +4448,11313,1760,6172,6870,5744,13541,3044,17701,14368, +16114,5051,9142,18776,5669,19089,11088,17867,925,10395, +4372,10578,2138,2554,18118,21087,13862,7461,14983,3322, +15305,11844,7924,8087,2542,20701,21772,2754,10490,8218, +14800,15869,14436,16119,1814,11543,17398,16069,19659,17020, +17844,5694,8833,16744,18925,4957,9812,6852,8036,12966, +14038,12145,16833,11165,17076,17756,3673,2367,20916,9143, +14927,6885,17486,7469,1661,2827,4627,18198,1307,19711, +17637,2595,2262,20807,1764,8150,18547,3192,9711,16262, +9144,2006,21629,5311,15743,14733,10991,15402,2916,17724, +12195,12622,5141,8039,15169,7780,4568,20835,21575,10580, +15022,9470,6853,3926,21563,1342,16745,8181,11526,1947, +7402,18641,14145,13149,19222,2468,12920,13916,21077,2968, +16438,19667,1768,15632,18374,4738,15517,16655,4309,2374, +14492,8602,3679,2103,1312,18681,6613,18604,20451,2755, +18218,19473,17854,20316,3003,4998,1391,20938,11169,7049, +18861,17577,18091,1937,4085,2059,20633,15948,1313,20138, +7785,16439,15081,20955,15117,17065,19924,13831,11913,20062, +7568,10703,3717,15480,6047,7790,16867,14223,12971,8429, +2008,2833,14026,1317,17493,19411,18551,15452,15257,18504, +4441,1769,7249,20128,5509,1970,9420,19365,20190,21617, +12202,15041,2871,19676,20388,21674,14258,2901,8058,5970, +20472,13257,18226,3694,17591,10279,1318,12409,7901,9794, +10416,10769,12876,17154,15455,19298,3970,21327,14228,13095, +8096,16072,21748,12581,9326,2311,5683,12641,3583,2184, +16464,6969,1795,6778,2880,15819,3433,7674,4713,17297, +8231,4333,9995,1841,5558,17155,17298,11283,18694,7946, +7311,13129,4753,21149,905,14010,18821,8532,11873,2190, +19006,3456,8874,7433,2841,7680,14143,20130,1993,1699, +976,15361,2736,2154,9202,11685,7951,12982,11008,16763, +11829,13327,11686,2299,9940,10507,8917,1277,19790,1636, +20143,21002,15011,19443,6026,13299,2455,9667,15612,16477, +10261,2811,2202,13674,14760,6818,9691,10624,20145,11940, +15524,18349,9437,11578,20132,17736,4121,4122,16023,2280, +4371,4373,7873,18307,14602,14695,13054,5410,6065,14389, +3979,1137,5411,6672,16311,11632,9829,19575,5901,15708, +12553,7165,18983,10860,13664,18242,10848,2049,8075,5579, +8083,10863,21136,5445,17851,19132,8597,18771,11054,14631, +10997,8292,8803,11246,4999,17559,11134,15369,5155,6407, +12054,4857,11265,12834,7322,15057,10937,15984,5544,8040, +13291,3961,5142,19101,869,9631,2009,11315,21404,3172, +14941,4204,7947,9997,16906,4035,4476,4477,8171,2818, +20725,4724,11453,20868,4725,4729,8565,5109,12490,8862, +5920,13737,2888,6930,12963,3223,6934,3395,16243,8397, +9475,4858,13515,3777,11266,10029,21028,1671,7765,7766, +14169,2221,5328,2907,8951,4225,4416,7770,3046,8014, +3975,10636,20236,19825,3248,8717,2140,2908,3249,9477, +4628,2225,12676,2909,21564,5167,1225,4186,13266,4017, +7471,7146,18214,6890,4195,16037,16688,5583,14497,7476, +3286,8566,2910,2862,2232,16038,10417,9492,12234,14190, +8793,5573,6486,20322,21455,9734,8317,10143,5781,7681, +5782,7500,7501,15466,7188,7511,7512,21003,2203,21693, +11350,9540,21212,18183,7918,8754,17511,20869,18899,21160, +11356,9315,8364,8798,18460,16189,17483,11415,8897,7771, +9917,8718,7926,5228,11270,2644,9269,19404,8719,8367, +13267,10400,1914,2157,8584,11171,3964,17881,16785,18951, +18052,16616,14500,9323,10418,12410,14661,6963,7570,7668, +13601,17386,18995,8437,4460,8346,15920,8318,3387,10734, +18057,18058,10525,9654,2390,13675,13603,20000,8106,1260, +10824,1426,5075,5076,18887,12175,8174,15558,5269,4304, +5380,3287,8156,5386,11605,8142,18768,7580,8641,6319, +13425,4478,13147,2019,8900,6331,19668,5756,6769,3381, +9009,9730,9735,15160,4036,8167,13489,17009,8667,18308, +13439,18112,11735,21667,14617,17010,16290,16291,17515,3368, +7050,14841,5636,16826,17573,7760,18493,13306,14312,2619, +17868,13609,8991,7038,4310,16881,14020,16422,20565,5941, +18174,3642,20346,12080,856,13144,18158,20908,10800,15630, +14340,15837,21707,4629,2060,19870,9632,3718,7902,994, +5762,18391,9647,2312,9199,9648,18281,18342,19911,5367, +9950,13834,13513,8771,9414,4057,21302,1963,1964,1967, +902,3349,14697,5602,1071,13959,14621,21428,7288,15079, +7039,16495,13949,3111,5580,13365,2615,4109,6202,11213, +10792,17918,21538,3226,18658,11985,6862,18734,2752,13232, +7838,1907,4252,6223,16703,11495,18037,3974,6301,5226, +8514,10487,5267,10892,12763,16706,7702,20003,2616,14457, +16083,16587,4296,14513,8355,12171,16590,10670,13651,3646, +14626,21132,15826,17015,18911,12792,12461,21545,17848,18912, +17396,3277,13516,5918,16115,12548,1673,4864,18438,6078, +5880,3263,16211,21784,1909,15296,17183,6884,12796,4417, +4299,17021,21137,14801,17484,8852,6512,15560,4300,17921, +5819,9342,15900,17742,19525,3869,11715,17703,12554,6040, +19865,10267,12549,10804,21670,6091,17277,9319,12531,9840, +1060,11215,10514,15170,4892,5904,14898,19534,5469,5470, +1128,5922,18937,7270,15971,17189,16263,9474,13382,2369, +20210,18177,3976,12767,3618,13236,10885,5397,15621,8770, +9830,9310,14121,21573,16634,19148,12803,4381,13051,956, +20237,3755,19551,15744,9169,16852,866,11893,21439,3680, +6197,17412,17324,16086,16747,16602,3834,5510,12770,12771, +3420,16198,21552,1421,3198,6097,18178,12772,20576,9831, +17200,19226,5584,20226,5822,10609,11641,3599,13550,15387, +5361,15481,952,3426,19731,20581,21103,2153,16223,19719, +20139,18533,11172,6356,20044,6584,6585,6954,21058,16397, +14150,17888,6618,4199,11775,9843,19732,14051,2564,13093, +18379,3377,12174,1968,19359,16350,19294,12243,1294,5362, +20214,6898,15645,18557,6146,13005,14084,19366,6272,17534, +10713,2104,5894,13900,16200,6964,12093,16692,12975,21496, +9358,16216,7314,15280,3056,14008,5363,11510,13001,1474, +997,9724,21709,20612,11383,15441,7715,2684,7622,8585, +15456,14192,872,17497,10281,17428,6338,6779,5831,11989, +17156,20245,2293,12512,3560,10705,6367,5040,15465,18663, +14003,7716,17498,6462,10721,13660,9327,17501,6973,9010, +17433,6024,10669,13098,2842,15393,3436,18133,4283,21749, +4461,2571,6707,1986,2900,3138,3434,19771,9090,16900, +12816,6022,9736,17830,6708,19167,18099,11781,14950,18337, +19249,3270,20404,21152,11875,6791,17596,7723,19933,884, +19376,8877,19687,12164,3544,17647,4150,3457,17648,12338, +19127,21715,11831,3635,9259,15329,6901,17127,18710,4191, +12352,21112,7195,7956,2300,18061,10887,15701,10319,6808, +1859,19445,11794,19170,6436,10969,6216,20594,9522,10157, +5898,11567,11326,18410,9674,10340,10229,11345,3447,2456, +12439,12340,17368,10889,17057,4224,8845,18285,2207,19263, +3872,9117,15331,17456,2995,6523,6919,21337,11803,17457, +1936,9533,2248,2161,9697,19072,10607,20163,15100,6199, +20287,7392,20107,21238,9225,11809,13650,10203,6717,19085, +11816,16035,8643,19823,8084,12359,20004,3059,6719,4253, +5838,15886,15982,5839,13638,13780,5840,15341,5842,19140, +6854,5923,10582,5843,2868,16398,19872,13534,8824,12598, +19879,19880,18208,16051,16004,16005,16039,10567,6783,19020, +10539,10550,18184,16018,15868,12573,10392,8863,8172,19697, +12845,12846,21424,3476,12833,17119,14167,11764,11357,7264, +20873,18048,18901,13220,4667,8756,16106,4705,1432,8009, +3665,7966,7128,2587,7967,12053,15477,13430,20832,5587, +15350,8076,18496,4801,10396,13339,5438,18013,1074,10032, +21247,4985,6322,20909,989,3323,12104,11235,7138,6138, +10512,3008,2621,19090,6306,4110,20541,4877,5674,18543, +4231,5748,2116,18465,17517,14702,1762,6233,3281,8548, +3479,6000,954,17677,17278,1186,4803,1097,18938,19207, +5954,17874,2917,13191,1374,4557,13610,19406,8518,7240, +3675,9306,8357,7882,20573,9913,6446,1915,8078,18661, +3600,18200,13551,15199,13252,16268,8298,10602,20739,8775, +2704,3928,15450,1948,2829,1375,8603,4214,18952,20841, +21403,12685,8299,11653,8726,9031,11701,7331,5169,19721, +4311,5546,9471,4548,18163,9032,972,14386,11607,15974, +2517,6540,1462,9789,5823,21324,1244,19595,10838,7744, +13909,18685,5360,21578,19596,6619,4318,18552,1268,3013, +10906,2309,16148,12551,4773,21079,7858,7887,6198,5174, +2935,8605,12479,9418,17729,6610,4093,16233,17928,17030, +7062,8871,19299,19417,8569,15122,14579,11123,16618,2526, +15997,13618,21060,9639,12203,1209,20185,4112,15728,16751, +20767,18053,20711,898,5381,18272,8607,16540,17592,10190, +5887,9300,2294,12204,1384,2426,10427,10374,11972,12978, +10920,11384,16040,14865,10301,1622,2072,20975,20512,8617, +3765,2439,20849,7172,5829,13045,7943,3700,3174,18392, +15307,20290,12928,16506,21383,13068,14230,14231,1088,12583, +8875,3942,4462,13626,4146,3217,3701,14505,4242,4245, +15413,3587,11432,4684,6631,15414,3271,18690,21282,7502, +1039,13032,13072,8748,19021,12316,3766,7551,18665,1852, +15419,9243,8322,6513,3492,13684,12987,18062,9260,16999, +906,18151,3529,13911,7957,9427,8940,10341,18286,15427, +16481,6514,10263,10264,13950,9675,9985,2208,18070,18291, +9406,1106,16240,14024,21355,18735,10727,21254,21358,6353, +9064,6357,17889,9070,14715,10820,4147,14718,18755,5496, +7582,4769,20373,1592,15166,13637,10033,3251,17753,17613, +11596,17130,19916,10850,4182,13264,11964,5447,12805,11003, +11047,2440,20269,5601,5209,15535,15370,18300,1406,6926, +20037,7229,1056,4359,3596,12118,8363,17518,3735,18497, +6573,8553,20360,1351,6662,4610,3780,18127,1363,1032, +16617,12536,16800,1037,7571,9731,4203,19993,7572,14677, +4715,6902,1527,10540,2376,3886,12847,8131,11926,2135, +17136,4517,7104,6221,3365,4816,8031,5875,16599,21029, +11997,5995,21069,20005,4807,2552,8400,21341,18361,11496, +17629,4669,4726,16292,4072,1075,21429,20521,11523,19918, +15958,17185,18913,4247,11358,1436,14370,4248,6080,17849, +4434,20728,11236,1173,4817,10034,21539,13666,14173,18439, +10741,21482,8275,13754,3952,7040,5056,17377,6456,8339, +5443,7327,7328,11738,20834,20673,17273,6182,5675,8491, +8847,18364,11314,9918,12150,4302,19527,18255,14375,14566, +5749,13543,15020,6234,17279,14316,2502,17574,10805,4827, +11443,8723,2979,2980,15870,17708,11546,19581,12503,11626, +20926,5924,21344,12472,16076,17280,16710,18256,16748,16841, +18260,19582,14989,9609,8190,21375,12628,17194,21440,3929, +10404,879,4249,10275,11146,3095,12550,8191,1949,10054, +17413,14766,12773,6692,5001,16647,16648,15405,4581,4582, +15709,11654,13552,8046,7979,12868,3756,17726,6421,16231, +9150,19109,21097,11614,5002,10583,973,9033,19149,18201, +8192,9622,3737,17195,6447,6480,3483,18605,11564,13964, +7294,15949,19734,16351,3689,13838,10941,3378,13918,13178, +6693,16657,12924,2936,11189,5005,7831,4086,18806,21080, +6620,11148,932,19228,17929,7745,16352,20747,13345,15635, +17584,16171,9790,10871,13670,14932,12361,16502,16199,3132, +6358,7791,1245,17817,15950,5715,21662,18558,19882,13796, +13901,10132,10944,12039,1026,10672,9002,13206,20689,19883, +7746,13800,11302,19235,15124,11752,15542,12085,9276,11609, +1235,12346,18996,19759,17966,10773,18749,8627,19370,11703, +5719,7905,21307,20246,5908,9361,20563,6426,6427,1034, +13922,10677,12423,5487,16758,13099,16174,20438,11193,17210, +17211,11392,9864,9712,6490,5723,3572,20852,17832,18753, +6482,16901,9011,13705,18396,2181,7625,10946,4534,4463, +17161,19022,6168,7724,4536,14680,15209,13033,9774,17945, +17649,11755,3943,19023,1971,907,11742,11832,10673,15800, +2738,7958,3028,19632,12437,13822,13876,11528,18236,15363, +19255,12988,19972,11154,1403,14431,17732,11711,4037,10186, +19849,9247,18411,10100,7696,11743,9249,17172,19264,14855, +6822,13579,11104,9538,10541,18292,21213,9251,8394,21477, +17662,14984,15342,19522,21318,15232,11216,3096,12869,18145, +11682,21506,9501,18022,1877,11517,11798,19265,10542,13830, +13303,7230,13858,18591,18772,8010,21395,21223,6229,14563, +18794,15793,14603,2503,13642,5375,17403,20364,3516,14419, +6659,11115,8804,1950,20141,19831,13343,6142,20637,7482, +11825,1770,6541,13226,14576,11826,7938,11847,20963,19677, +1247,8885,11827,8312,13229,6339,14584,11828,14425,16469, +17560,8886,6784,8533,19039,18830,1257,13187,2705,1258, +4762,10511,4124,12519,21303,4828,8724,7588,21305,18092, +14812,4131,3527,7762,4393,4394,14764,14280,11327,9907, +17242,17243,9046,16304,9904,10796,16305,16306,16307,18541, +4232,8998,21059,5110,5515,16061,5115,5116,17012,1390, +7844,15716,3798,14519,20669,17576,11649,16842,16843,10758, +10309,12474,15684,4631,17585,10500,2084,17597,8329,8391, +9883,8392,21237,17624,11692,16188,17134,9579,4288,3503, +6742,10206,13743,16775,5949,14364,2765,18725,19947,1157, +18592,981,16777,7768,4290,4670,16248,12907,12663,7839, +21769,21770,18498,8276,5161,18015,12501,9591,15773,13432, +4865,16137,12288,1030,8924,13433,12525,15774,10036,2589, +12463,2091,1185,15898,18016,1588,6083,8721,10649,4303, +4990,3826,10399,4363,4375,5057,13530,18786,11438,14567, +926,16386,6533,11113,9552,7139,3954,16387,19529,5502, +9919,18545,7610,4258,17519,1884,13639,4736,11585,9555, +19464,17281,13793,3517,14382,2504,15985,5349,5231,17082, +19141,19665,9307,8616,17234,13611,2695,15316,9955,6478, +8193,9151,11248,9034,9035,21671,5547,18164,5179,10584, +10585,10055,4187,20740,19151,3965,5926,20741,16440,12301, +7787,21672,8823,3930,19152,21490,20275,6621,19597,18474, +4742,13395,18475,15636,18862,20956,14654,4319,21271,8594, +10518,18318,10942,5932,6955,6586,15855,16795,19598,21579, +9193,8712,18267,18268,16447,21580,2121,15200,8679,13179, +12699,15998,4113,16882,16619,2010,15485,13801,7795,870, +10133,16801,13060,1368,3719,12950,19418,11778,3238,14580, +13968,15043,21588,7596,9858,8628,2233,3853,2076,3890, +15978,10302,20433,20434,998,2031,13447,13009,3175,21713, +3524,3525,16958,19760,12160,10221,17387,2085,1796,13182, +7626,18232,9328,20458,9866,9867,7890,4243,21738,7721, +8441,18574,7627,18575,8442,20405,19024,18023,11593,18705, +18706,18824,11788,17251,7074,17601,8707,5724,3710,1040, +21730,16369,13823,3530,10114,7818,19688,19975,19196,13859, +7823,9660,5732,10230,10231,19319,16937,8244,2209,19345, +8961,18287,11599,13580,2359,3159,10543,3729,3730,11805, +18293,18294,18354,8989,18295,8861,6605,7968,2341,9938, +8768,12561,12562,13406,20792,20522,18795,7897,15252,13598, +12240,4852,20087,3876,11763,4648,12010,20874,6409,3412, +3325,11359,4866,11367,18927,18928,12467,12835,8356,13863, +14839,14878,13123,20625,14523,13643,3336,5707,12475,20508, +7408,16232,3339,14148,12687,4061,6287,20780,17818,16400, +18969,1192,12480,3839,5382,12040,15543,11124,7309,15602, +6704,21044,14193,1623,5847,20247,11469,1193,8019,2236, +20985,6342,1492,1504,20496,11136,13073,2171,4685,11015, +1195,2739,11224,2793,7816,17258,9214,7318,1761,5147, +7112,15831,20270,5689,10886,13188,4163,18175,1124,7840, +21342,18140,3047,15899,18853,20918,15766,20919,17405,15986, +5754,8835,10998,19501,1885,1763,2547,9152,7051,15026, +14808,13284,19736,11210,15061,2064,17327,4633,8155,4327, +16448,10191,17124,15062,20964,1923,13258,8159,8160,10282, +19210,3348,10428,18997,2788,16006,14951,17645,11211,2313, +16759,4637,5691,8789,8878,1513,13034,9999,9884,10342, +7208,19346,17173,15845,19387,9539,15847,18074,3612,12524, +6721,11524,6722,4706,8251,18309,20183,18728,4413,14016, +4414,14663,3799,6402,16674,3664,7583,1095,14412,20469, +15536,4954,3649,2329,20674,18787,8365,14285,19827,8041, +3781,20470,7589,13024,12198,1463,14347,15407,7422,5256, +4428,1475,8794,7429,1682,17439,3437,5832,7552,6264, +11065,5836,16239,8476,7122,10397,6770,6771,18825,18826, +18836,19941,19942,16558,18365,19706,2556,3782,19419,12386, +2582,21425,16167,7028,21030,16314,3597,10037,4867,16320, +16834,16192,2543,20927,8042,3094,20798,3097,16984,7154, +20939,3065,21098,9153,17578,7857,7477,14656,7295,1595, +5007,16449,1210,16883,20750,12413,15649,3561,20754,1676, +2686,2387,18576,6792,10927,10271,17338,1280,13490,9371, +13717,3895,5069,13719,5093,18895,14619,16819,4457,19220, +11238,16588,16780,7029,17016,7841,16249,3061,19702,12664, +3190,15371,16092,12908,6842,17740,16318,17139,8623,8277, +18915,1238,11239,12128,8801,1174,11583,15810,5542,8283, +19457,3670,15969,19460,4821,17017,1437,19436,17979,3064, +1738,6656,18038,12251,14802,16835,15386,19400,11360,8772, +14633,17022,9344,6183,8902,11416,20884,17520,15767,3827, +6041,5750,12620,17485,14929,6328,13340,6723,2645,18788, +17743,5604,10010,2624,14282,13531,19953,12179,3554,6754, +17406,10801,19407,19828,12258,19955,19722,15988,7855,20577, +10011,6042,13150,15685,1916,12969,16845,10742,18954,6179, +2544,16786,9484,9295,3066,18955,9610,11603,4312,16788, +3098,3557,2322,10985,9623,5646,5641,12629,8777,15745, +10586,16868,8604,5796,11702,4142,5857,20398,19836,7885, +7161,9956,19723,6106,13553,15406,15689,11772,2981,6832, +17639,4282,15278,21613,7332,19412,3558,11608,20063,3840, +2970,13315,2065,1573,6835,21581,15637,1324,17930,16353, +5277,16450,1465,17931,6587,11173,19413,12806,14256,19110, +2421,10875,12840,8731,900,13156,18319,13919,21614,13998, +19229,13624,5383,20021,15132,12707,18560,15042,6665,7064, +5516,8313,2911,11704,17535,8570,20769,19420,2042,18131, +14446,1834,8586,17035,6859,19422,18507,9640,14053,15544, +19118,17896,15382,20067,11316,5407,3101,12414,11470,5848, +2665,1985,1980,1978,3176,11284,20476,15945,1035,14866, +5648,13627,20215,8161,9726,11995,15044,7944,19212,10523, +14260,16041,10744,12882,14352,13297,3707,20853,10283,8383, +12648,12643,19772,12491,9860,3115,19442,2687,20986,15946, +2474,12817,13449,12214,1335,13328,7628,2661,9737,12494, +9012,6786,2533,19214,19215,16992,16993,3438,15415,4244, +4177,15139,8454,2074,17434,4465,4714,9329,9362,17212, +11285,9868,16760,1987,8443,3139,17304,15442,14485,12280, +19025,17162,11876,3439,15443,8022,15032,6985,16515,6520, +13218,13213,8323,2043,8750,19256,19026,10001,14089,8534, +6504,908,18238,9098,17128,2669,19633,19217,3316,11048, +910,11016,4136,12731,11353,9205,10989,2740,21004,11955, +2792,18512,1860,21010,8942,8918,19446,4850,10158,11225, +2540,6809,2254,9248,6506,17972,13691,2256,7209,8336, +6524,14358,9808,11563,11076,15525,8477,21363,5186,19944, +5244,7323,3962,3835,1943,7276,20814,8973,20456,13010, +5259,7430,19761,18334,17044,20461,17050,17052,13492,6403, +6405,4289,14622,15676,10851,3752,14272,18796,18858,18320, +13367,9372,4512,13896,20126,20502,3797,19543,8815,5950, +14365,2095,16110,5497,16776,3566,13744,2096,12909,7265, +19564,1029,16825,20875,20905,3567,18301,8908,1583,8173, +16589,6347,19948,13234,14413,20763,20038,16250,11622,12542, +12543,1073,1020,20229,20006,1739,20880,11540,12559,18593, +20671,20312,18440,6068,11675,18672,2642,12253,7231,10952, +13434,2822,7233,20423,12100,11484,12910,16116,1125,3651, +8284,9079,12829,12861,6169,11818,5398,3221,2622,17521, +2054,6683,1109,20920,9081,4212,4213,11887,20702,5270, +7704,3956,11486,9920,20313,10367,3828,8407,9912,8256, +18196,17190,19661,16120,1820,5350,15671,2509,14122,8758, +10939,11888,8182,12193,7403,14178,13957,17523,2101,4770, +7655,8183,6886,15989,12544,20274,15038,18649,8414,16254, +1917,21752,18677,20375,10368,15058,16121,1188,16434,16294, +13198,14335,11249,10977,4962,3511,16649,8358,19962,21612, +15746,15973,1355,13958,21757,16656,12631,2512,14067,10572, +13292,5170,3655,6855,12688,14737,12872,10056,18202,20742, +9832,5590,11679,6891,18375,20766,1952,1731,15687,21643, +8751,12006,7737,11319,5333,10992,14052,12235,11944,7413, +20748,8118,7414,18273,11558,6209,12344,16354,13999,11761, +14657,21615,20712,18094,6624,1596,18476,6588,18321,21705, +17819,8705,7046,15690,9113,9121,2422,8120,15995,6694, +5325,2707,17426,17586,12922,2106,1289,18553,16355,3565, +16605,21616,5326,5451,13240,13802,13619,2711,15246,15234, +13803,12205,8685,18561,3522,20817,11914,9109,13419,17244, +7939,11219,4328,2922,14191,15318,20350,12042,9641,15545, +6359,20965,16202,17095,16606,13043,15730,20641,4329,11939, +13563,20368,16752,14349,8638,13804,13990,2234,15265,8122, +2685,2894,5849,4775,3702,12812,15070,9770,2475,2568, +5649,10429,10303,21619,5080,6428,20369,13046,15531,6487, +11516,7546,5720,19339,1004,20987,11782,10745,2253,8795, +2767,14353,16042,7675,2169,12884,1662,7594,18566,5458, +12885,6974,12417,9313,4151,17301,13910,5783,20142,19007, +17213,2477,11592,6276,5697,3272,11727,9998,20770,6709, +7682,7117,2025,15459,3406,1797,2375,8390,17435,1358, +4973,21451,16175,12569,13241,4148,6463,7683,15325,13131, +16643,7435,19378,11574,10380,21452,20254,12571,2992,6993, +3467,14090,13276,7756,8860,3388,17543,18699,1043,8324, +18700,4343,10993,11066,7118,15364,3531,9246,8267,18656, +13908,18715,18711,11688,6903,7819,1717,11833,5263,21005, +7817,9093,11343,7524,17550,9943,15396,1121,15086,10320, +10570,13706,21006,18513,9453,1932,14761,3157,11732,17259, +8542,9676,9130,6569,19320,10343,10265,12893,12894,12899, +9215,17174,19266,10930,2173,19321,3154,17554,14359,10645, +10933,11077,2580,20146,10544,15397,9698,3731,16207,3470, +7698,9252,9704,5767,5771,6957,18101,8654,18849,5096, +1140,12527,3715,8802,11271,16783,6092,2057,2828,5274, +17882,7710,2416,20634,4197,19671,1129,17883,4198,11776, +3738,4188,18970,8713,18381,6958,15960,17494,4200,18478, +17067,11280,873,874,3633,20715,14821,9870,13450,17754, +18870,7685,14235,7686,21462,19040,9775,1521,9528,17504, +17505,18011,12669,12677,8419,20377,20378,1147,19690,9221, +16487,14459,7291,7296,19678,7717,15962,4011,19137,12994, +13466,20429,21443,21447,21453,13211,9972,21463,2846,4106, +21215,7846,5998,12151,19461,11481,12678,12263,10127,4830, +4569,7982,20546,18863,14293,7483,4368,20996,4466,12391, +4467,20414,8881,15223,19646,7123,7156,6895,17513,15764, +15348,3667,17805,2222,18456,14564,11240,11241,16084,2931, +16740,1302,1158,7769,14460,6416,4564,5768,17920,4651, +13221,6324,18251,20273,4565,14437,8285,18467,1742,17981, +12528,20675,10041,6038,11368,1593,17872,6829,21627,14637, +4625,3870,16539,3924,878,1743,983,10210,8927,15794, +14574,6661,17923,8964,8848,7656,7929,20929,15903,6271, +5059,17362,5957,8521,17282,9030,21142,16846,14496,20578, +20579,5961,6045,16271,15748,21444,21722,21126,14210,11681, +16870,12775,20768,18971,961,16277,9958,2268,16325,17473, +4602,17975,18813,20068,6698,17857,11253,18643,19350,14773, +16456,13275,10876,11552,7423,18479,2937,18567,15281,12600, +7676,8573,5236,16622,2324,12813,6052,18393,9649,7183, +10986,20150,17598,6053,11393,3076,11708,20482,6787,5977, +17968,2874,9874,15444,8023,12418,9973,16994,19027,7189, +6675,3350,18695,18696,9655,15420,15927,17477,4639,14429, +20556,6027,19041,17388,17691,14198,7688,1278,8067,18405, +911,18712,13881,11019,9668,2434,8943,3863,3864,18635, +6920,10483,13827,10236,10646,10545,14163,15526,18355,21216, +19936,18904,6325,14734,2028,14470,20288,1984,17891,6772, +19191,13158,4664,12324,1141,10042,4606,13468,11921,15795, +9298,21708,11298,6609,16087,12635,19232,21586,16342,15928, +9305,9330,10237,12445,14794,15622,13718,1053,4209,3505, +9582,13370,8108,1407,2494,3042,13898,12854,19565,16680, +18079,4479,21541,13747,16113,3668,10797,2553,18905,5077, +5370,18773,7584,14171,16293,8133,10798,16977,19860,4621, +3922,17141,2932,14727,6475,17634,11859,2753,15018,19951, +7925,6942,10831,1438,984,4672,18918,4818,11541,6417, +18159,3988,17654,18530,4279,20540,20056,21718,14461,3671, +10325,15019,11542,17145,14990,16978,5598,4878,11369,18930, +18674,18679,14638,11766,1414,18789,11678,9105,6085,12036, +4480,21036,3332,3009,18518,4822,14731,14306,15021,14376, +11545,19408,20921,20314,3416,5467,12563,990,4879,1816, +4233,1400,20361,14991,21256,12130,14627,5599,2118,18599, +8149,10174,10898,9600,13786,20199,13996,19405,18087,12800, +20626,18797,17351,20707,9612,14076,8590,1730,13728,1115, +13729,1765,21485,2719,18941,3049,7472,21719,4379,4400, +19713,4440,5399,20394,9613,19097,18942,14643,4893,13865, +18798,8821,13311,14040,18042,4234,2918,11418,20093,11959, +19223,7782,10175,20449,18088,13977,20635,1287,15839,9083, +8048,1826,1356,13929,16855,9278,10177,4739,12632,16593, +8497,5125,15113,13389,19504,10268,12182,21359,3681,17925, +15994,20213,19535,1457,3622,5928,20813,13761,1314,7409, +6581,16272,11937,7244,15777,7157,17414,10492,8890,2079, +4675,15024,14993,4001,13223,19335,8195,9065,21441,2164, +16441,8049,9485,1732,17122,4802,15566,20941,9154,9720, +21415,9489,12807,1750,10589,3067,12973,12700,1958,2177, +20582,4613,12019,1206,6836,2519,20201,9633,19738,19739, +5551,5813,3967,5172,16326,3257,4489,2466,20454,12776, +19839,18322,19740,13535,18972,13732,12637,21417,4914,9159, +21645,21646,4658,2395,13272,11658,16278,10412,6019,7748, +2723,8257,8226,2520,21758,13002,18147,12304,21445,21499, +1690,12201,3903,2804,2269,10970,6448,7415,5716,17031, +3539,5774,3739,20815,13600,11483,4965,5335,12236,14225, +18807,14390,4216,5014,16457,16361,7297,21587,7347,18814, +16955,18388,18328,7348,19679,6110,16663,12369,1476,18535, +5825,17823,13967,18480,9122,18274,1353,6699,8975,7859, +8976,14937,4748,16173,7052,11471,10877,8831,6364,15860, +19611,19481,3070,17992,18505,20643,12370,18691,7796,18692, +14887,19602,16362,10915,15692,7058,7797,13854,6628,9380, +13564,17332,14606,15409,16542,14408,2779,12309,7300,18998, +20435,4929,11948,11127,5527,7497,15300,18609,14133,19889, +21557,11307,15133,7310,18568,7806,6674,5148,12929,10706, +19890,13809,14585,20820,16547,15861,13805,15490,20380,14943, +14506,8690,16890,5522,12644,5215,15238,12043,15547,5289, +2939,20652,11894,7070,5455,13011,12953,10921,17901,5184, +21420,16154,13096,18523,3721,7301,20976,3526,10222,14042, +16962,6975,9771,6788,19373,12983,5864,5087,5088,16043, +6488,14108,3179,12211,19513,7574,6431,6596,5784,11783, +19008,5199,8631,5725,5726,10747,20588,21351,9382,9302, +2427,3077,9502,17769,13277,14867,15892,5652,20250,15140, +9392,10377,9824,11135,10286,2347,15141,8693,1628,10435, +8123,20614,20325,14755,10748,11476,18525,15782,12212,21285, +14134,13572,7358,3078,6976,18233,18030,4423,18102,20856, +21710,3109,12603,14824,6489,9018,20659,14236,16908,2943, +3767,4430,11338,16764,13698,10016,10150,13104,17305,13956, +4494,20440,9353,20031,14892,4152,2480,15500,11009,15148, +8456,15421,6793,6986,11941,16176,11841,13935,15929,20295, +4689,13329,13672,6191,12935,5489,10184,9364,5200,16995, +14508,21558,14031,7083,3981,7995,7513,2845,3312,14758, +7555,10004,11581,19193,6801,14199,21731,17970,2484,5149, +8239,21734,19042,12606,4757,6738,3493,7196,15214,12496, +2537,2812,21294,6802,7084,7835,7303,14686,7436,13036, +3547,18872,1660,15033,14328,9661,19171,15580,15366,11155, +12734,16046,1734,6907,7202,12892,11690,11836,18759,5223, +7525,19218,11897,13288,18340,12735,11140,20559,5788,2945, +7000,8981,12517,3592,2794,5299,11156,19448,21012,6670, +12895,9430,9397,13995,10385,9669,3158,10527,11228,6814, +11979,10481,21007,5204,4039,19906,9677,4643,21465,15088, +9750,7602,2798,13302,21190,10348,18289,9683,21191,2458, +7824,4352,15099,6508,11800,19802,10238,9134,7646,17260, +5738,8268,17458,10103,19270,7384,19200,19492,19326,17341, +11884,1869,2211,9222,8270,14857,14362,21736,3113,13582, +13493,2022,8170,19809,10630,9701,3160,10546,3472,8481, +18296,9253,9228,21217,9411,9575,1108,11572,19816,10106, +5687,6517,12857,17808,2331,2825,12804,8582,18943,8415, +17025,17875,6069,9000,9273,8891,14905,862,17820,2629, +13239,8606,8893,8608,2873,5568,19113,19613,17429,18697, +16694,15460,7948,11973,6343,15695,6518,17833,12166,16996, +17502,17837,16910,9776,2847,19043,4350,19637,2994,6526, +1911,1912,8286,12915,2596,14082,2630,14086,21061,15203, +15204,9650,20251,19624,9656,5733,4287,20567,11361,11362, +18595,14464,17876,8421,12838,13390,15114,13269,18973,15961, +18686,1977,6837,3849,20653,20047,16543,2763,15696,7949, +14264,19168,3788,8162,9019,3165,3389,4080,7556,9803, +1719,4040,7378,7385,21257,13293,18956,14123,8704,13125, +18554,18129,6773,13628,6970,11974,6737,4103,18760,17463, +5637,10935,877,7830,12293,2197,10829,10830,12290,9911, +7237,13997,11460,16169,18089,4401,13794,17235,8221,13391, +4002,11963,12138,8227,4189,1392,14019,10878,14001,14749, +16184,6111,15323,14021,10479,11433,9507,15930,13816,20410, +14071,20411,11022,10386,3868,8398,12785,18461,11633,1712, +14377,12801,16847,13253,18205,3934,18508,20026,20762,1727, +3474,14876,9373,11693,4515,5741,1683,20271,11161,3776, +19946,2881,16244,4518,3320,16111,10794,13371,12447,12849, +16675,16676,16020,8132,20793,20876,12855,8011,8012,13939, +8490,6225,13589,1584,5137,21027,12072,8402,6390,11853, +17866,17869,20007,18302,3413,19454,6411,6881,11856,10893, +11109,2678,12073,1411,20877,12056,21372,20089,10122,20230, +4728,10953,20092,16118,9594,11089,18779,4425,15717,14926, +8925,8085,8177,18919,7234,21033,6746,1340,20232,21196, +19437,5466,6326,12178,3039,2590,15105,2462,14981,8217, +18039,14462,8404,4871,7106,5640,3414,19139,21089,18675, +6685,20127,2505,16388,6308,7465,14994,4376,17705,4881, +14075,20887,19205,16712,8657,10654,967,15679,11417,9442, +18739,11091,13545,12529,17465,17570,15107,8903,13152,8279, +12469,17744,20923,5676,11294,16683,13435,18931,8037,14521, +12239,2224,7927,9925,13383,16435,5925,10806,19465,1821, +3996,6240,18944,19334,9236,5943,9556,5331,9787,2951, +4771,18945,15905,9322,7242,2680,8090,15171,2467,12153, +17283,14440,9076,12453,5958,7977,11723,15972,17490,15872, +4259,16085,9614,14879,14995,9444,14880,4024,20015,6180, +17728,14711,2982,20493,8778,16273,16125,3931,16635,8196, +14343,9816,6833,15317,13154,3556,8372,5511,5858,5962, +21099,12232,6046,2264,12633,4546,2598,10405,8222,9445, +20611,12476,15747,19725,11655,10406,11118,8050,10058,10587, +13473,19726,11725,1619,6334,19837,9155,13254,12949,20890, +19184,1827,1343,19832,16603,13965,4583,19833,8711,7158, +14344,14079,12690,12343,16858,19835,13840,6589,7416,11927, +13397,15856,4743,16636,15639,16356,13868,2066,6099,18323, +6248,11097,10835,19230,18324,6210,14493,10943,20116,6845, +11533,5758,2653,4321,9791,12808,12809,10910,15727,3118, +16401,1969,6764,1831,17856,7060,7411,4788,18974,19208, +14577,7749,20638,15453,19603,1467,11277,14526,15975,14474, +19414,8228,3968,16054,7670,13398,15464,10220,6896,19874, +11559,1178,19508,13557,21347,9845,2178,17201,2956,6144, +21500,10759,19295,9119,4744,10277,16402,17092,19296,12506, +7940,5777,15282,19885,9727,18607,11004,21405,2527,15381, +3290,16203,5419,14055,20320,14581,10603,10688,16363,20117, +16802,16544,13006,20243,14529,871,20023,19114,15127,15290, +14530,863,12065,2837,16620,2011,11220,5286,6049,6673, +17036,3626,20966,19240,7798,5258,15176,7713,6775,19158, +5194,14849,2958,17495,19750,17782,6429,1478,1624,20977, +7595,8809,14451,14261,11128,1000,10375,6397,19441,2235, +4533,19372,5803,10762,13286,19619,7174,18171,2345,16989, +7175,10304,10223,7907,5850,3102,20854,5089,13030,7718, +3071,2961,16044,11996,15605,18664,16959,11129,15491,14262, +5975,9728,16204,2609,5113,12206,21572,8630,12187,20495, +2697,17902,6879,7499,18230,2902,9861,3185,15650,7549, +3103,19341,6258,17658,14820,5650,3104,9047,17903,20978, +12349,8444,7722,12508,3487,6789,7811,16761,12009,7075, +16410,15146,12956,17045,17046,15253,4178,11286,13955,15142, +20657,3105,18999,20988,16237,15394,18100,9013,18645,16007, +13982,6167,1505,2192,14780,12602,9969,16411,14095,14088, +2534,8099,6491,7629,9363,3218,6277,5938,20028,10192, +6278,4935,6054,6122,17214,7503,14197,17047,1038,10378, +11848,19634,10003,14486,3458,6599,20255,17604,19780,14681, +18024,10085,10782,21520,19379,6794,1994,9801,3768,18707, +6550,20660,10783,3407,19029,15210,12351,8325,15326,13215, +21459,11877,5833,7953,12165,14091,7085,16516,2810,15332, +15034,15884,14092,21234,9744,11102,14544,14825,11137,11849, +19312,19313,11017,7959,12732,7197,21716,16667,15553,19197, +19128,4133,3029,6904,13300,9261,8537,885,16413,1701, +5533,12941,19314,1702,9094,4642,2014,10888,7526,16478, +10666,20155,10454,9662,19447,18514,10384,15013,20997,19355, +4038,16334,6715,17614,12048,14432,1638,2200,11226,10159, +7375,14097,2539,5536,1706,6914,17311,10344,13242,13826, +9678,8070,17452,19323,15190,16484,6507,18047,21188,10232, +9181,4137,4537,6383,9182,14762,10097,19324,11103,7217, +9806,7528,19267,9986,19065,7382,2210,3359,13676,7450, +9216,4504,14870,19851,21470,4763,14360,9433,9217,3112, +13491,19388,12943,4452,8473,18429,19327,13983,20164,10547, +18419,9534,11105,14250,15398,3471,7699,2249,19329,6064, +21214,9266,9226,11577,16241,10551,18111,17265,18432,5152, +18436,19820,5668,17394,17395,6679,6203,21322,20357,17563, +2639,20109,12794,21034,4673,11860,16561,12560,18920,12254, +8580,12058,8581,12097,11457,9905,5670,17663,5671,5672, +1567,3282,17079,20734,21198,8710,20525,4882,1078,17571, +17572,10118,21411,12108,15354,18500,15887,14207,16389,6658, +21091,7657,17877,6186,13592,6579,17760,17761,17236,19142, +16686,21093,18548,14644,16345,15906,18043,20114,8583,17083, +17974,20736,12532,6727,5679,2381,6689,2412,6757,9927, +4902,8091,2382,12596,15840,21435,15874,5886,9299,14182, +17884,2650,13795,6355,16860,14740,6143,18051,8837,8422, +17415,16861,21360,8525,3682,17580,7053,16793,10493,18376, +8223,10013,9039,6857,16088,16871,3203,16719,6211,8304, +4966,16661,3068,4789,12481,13316,13966,16872,13317,17669, +18975,7618,19741,5182,12305,5517,16327,14475,5569,14290, +14291,11634,5336,16357,2424,6147,8993,21062,17068,6700, +4790,9796,17681,7671,1479,19233,21230,16458,16032,14211, +16885,11929,11930,2182,18227,8092,8097,10963,16505,20340, +7936,13322,13855,6591,4490,13402,15205,18481,9934,7752, +20216,5570,19990,11554,14664,9847,5456,15492,2357,4362, +1842,6667,17539,17041,16805,19992,6118,6149,16892,20027, +11515,14213,13323,18623,11130,9732,19304,16753,5408,18394, +13052,1494,1629,3079,10436,7359,10287,12213,15178,19011, +15893,8445,21592,6432,18822,20989,16509,10181,5978,11975, +13712,8098,9051,3163,20296,7366,16912,16913,19012,17503, +2668,6635,2240,18698,18103,18400,18104,13075,8536,3573, +4179,14399,7632,4690,14958,19781,9974,8100,14299,4691, +18105,9258,10947,15533,19030,8101,10987,8024,8025,19309, +19044,18025,9206,15383,1996,16919,13631,21622,9751,6739, +21208,10093,16371,19045,17549,20557,6803,3299,11934,1757, +13882,6156,18066,7961,2742,3549,18631,6157,9262,1641, +13824,9670,11406,13972,10528,9131,992,18071,8944,14917, +9891,9684,10349,8463,9900,18415,16939,17617,10239,18716, +1999,13688,19981,9263,3114,2702,5658,8338,2392,11075, +15527,9264,21218,9254,10107,19822,20533,20731,12109,2465, +16403,5936,8446,18652,21685,4404,2899,8671,20171,3850, +13012,19374,13037,12060,2338,7339,2893,19614,20341,1553, +1200,1843,2895,19515,4041,2471,11852,8109,15294,13748, +10790,4544,5162,18363,5246,1303,14992,19530,5248,11439, +3653,13599,13548,21566,10808,8760,12870,9490,12552,5173, +15593,1345,13558,2957,7254,4749,8686,8229,2786,17042, +1329,10661,7863,10679,14022,16510,9508,4153,15931,13105, +16920,9671,4042,9945,12024,12395,1866,16940,2714,16419, +13701,2715,1072,7105,2148,21426,5242,8645,1807,6302, +18190,19135,4458,21357,8910,21070,11455,12255,8219,18780, +17675,16139,10039,12256,11676,18596,19523,18040,3396,1811, +23007,23008,23009,23010,23011,23012,23013,23014,23015,23016, +23017,23018,23019,23020,23021,23022,23023,23024,23025,23026, +23027,23028,23029,23030,23031,23032,23033,23034,23035,23036, +23037,23038,23039,23040,23041,23042,23043,23044,23045,23046, +23047,23048,23049,23050,23051,23052,23053,23054,23055,23056, +23057,23058,23059,23060,23061,23062,23063,23064,23065,23066, +23067,23068,23069,23070,23071,23072,23073,23074,23075,23076, +23077,23078,23079,23080,23081,23082,23083,23084,23085,23086, +23087,23088,23089,23090,23091,23092,23093,23094,23095,23096, +23097,23098,23099,23100,23101,23102,11,34,37,328, +70,72,68,118,23934,6,66,74,330,75, +76,77,78,109,112,88,90,92,94,96, +98,100,102,114,115,104,106,131,132,133, +151,143,144,136,135,146,145,134,152,137, +165,142,140,167,124,147,148,158,155,154, +153,138,157,163,164,159,160,431,150,149, +339,338,327,79,80,443,18,323,321,322, +331,325,491,335,336,176,178,177,175,174, +169,168,171,170,332,185,189,183,187,334, +23103,23104,23105,23106,23107,23108,23109,23110,23111,23112, +23113,23114,23115,23116,23117,23118,23119,23120,23121,23122, +23123,23124,23125,23126,23127,23128,23129,23130,23131,23132, +23133,23134,23135,23136,23137,23138,23139,23140,23141,23142, +23143,23144,23145,23146,23147,23148,23149,23150,23151,23152, +23153,23154,23155,23156,23157,23158,23159,23160,23161,23162, +23163,23164,23165,23166,23167,23168,23169,23170,23171,23172, +23173,23174,23175,23176,23177,23178,23179,23180,23181,23182, +23183,23184,23185,23186,23187,23188,23189,23190,23191,23192, +23193,23194,23195,23196,23197,23198,345,352,359,366, +373,380,387,394,401,407,23679,23680,23681,23682, +23683,23684,344,351,358,365,372,379,386,393, +400,406,410,413,416,418,420,422,424,426, +428,430,343,350,357,364,371,378,385,392, +399,405,409,412,415,417,419,421,423,425, +427,429,342,349,356,363,370,377,384,391, +398,404,23685,23686,18727,4412,14015,14972,16730,10188, +12616,1048,8127,14553,23687,23688,346,353,360,367, +374,381,388,395,402,408,411,414,23689,23690, +23199,23200,23201,23202,23203,23204,23205,23206,23207,23208, +23209,23210,23211,23212,23213,23214,23215,23216,23217,23218, +23219,23220,23221,23222,23223,23224,23225,23226,23227,23228, +23229,23230,23231,23232,23233,23234,23235,23236,23237,23238, +23239,23240,23241,23242,23243,23244,23245,23246,23247,23248, +23249,23250,23251,23252,23253,23254,23255,23256,23257,23258, +23259,23260,23261,23262,23263,23264,23265,23266,23267,23268, +23269,23270,23271,23272,23273,23274,23275,23276,23277,23278, +23279,23280,23281,23282,23283,23284,23285,23286,23287,23288, +23289,23290,23291,23292,23293,23294,13,14,16,324, +20,22,1,24,27,30,121,32,3,36, +38,340,341,348,355,362,369,376,383,390, +397,40,43,126,128,130,45,47,432,439, +441,447,449,456,459,462,464,470,472,477, +481,487,492,498,500,502,504,506,509,520, +522,524,526,528,48,50,51,52,53,57, +433,440,442,448,450,457,460,463,465,471, +473,478,482,488,493,499,501,503,505,507, +510,521,523,525,527,529,60,62,64,69, +23295,23296,23297,23298,23299,23300,23301,23302,23303,23304, +23305,23306,23307,23308,23309,23310,23311,23312,23313,23314, +23315,23316,23317,23318,23319,23320,23321,23322,23323,23324, +23325,23326,23327,23328,23329,23330,23331,23332,23333,23334, +23335,23336,23337,23338,23339,23340,23341,23342,23343,23344, +23345,23346,23347,23348,23349,23350,23351,23352,23353,23354, +23355,23356,23357,23358,23359,23360,23361,23362,23363,23364, +23365,23366,23367,23368,23369,23370,23371,23372,23373,23374, +23375,23376,23377,23378,23379,23380,23381,23382,23383,23384, +23385,23386,23387,23388,23389,23390,645,647,649,651, +653,655,658,660,662,664,667,669,671,673, +675,677,680,682,684,686,688,690,692,694, +696,698,700,702,704,706,708,710,712,714, +716,718,720,722,724,726,728,730,732,734, +736,738,740,742,744,746,748,750,752,754, +756,758,760,762,764,766,768,770,772,774, +776,778,780,782,784,786,788,790,792,794, +796,798,800,802,804,806,808,810,812,23691, +23692,23693,23694,23695,23696,23697,23698,23699,23700,23701, +23391,23392,23393,23394,23395,23396,23397,23398,23399,23400, +23401,23402,23403,23404,23405,23406,23407,23408,23409,23410, +23411,23412,23413,23414,23415,23416,23417,23418,23419,23420, +23421,23422,23423,23424,23425,23426,23427,23428,23429,23430, +23431,23432,23433,23434,23435,23436,23437,23438,23439,23440, +23441,23442,23443,23444,23445,23446,23447,23448,23449,23450, +23451,23452,23453,23454,23455,23456,23457,23458,23459,23460, +23461,23462,23463,23464,23465,23466,23467,23468,23469,23470, +23471,23472,23473,23474,23475,23476,23477,23478,23479,23480, +23481,23482,23483,23484,23485,23486,644,646,648,650, +652,654,657,659,661,663,666,668,670,672, +674,676,679,681,683,685,687,689,691,693, +695,697,699,701,703,705,707,709,711,713, +715,717,719,721,723,725,727,729,731,733, +735,737,739,741,743,745,747,749,751,753, +755,757,759,761,763,765,767,769,771,773, +775,777,779,781,783,785,787,789,791,793, +795,797,799,801,803,805,807,809,811,656, +665,678,23702,23703,23704,23705,23706,23707,23708,23709, +23487,23488,23489,23490,23491,23492,23493,23494,23495,23496, +23497,23498,23499,23500,23501,23502,23503,23504,23505,23506, +23507,23508,23509,23510,23511,23512,23513,23514,23515,23516, +23517,23518,23519,23520,23521,23522,23523,23524,23525,23526, +23527,23528,23529,23530,23531,23532,23533,23534,23535,23536, +23537,23538,23539,23540,23541,23542,23543,23544,23545,23546, +23547,23548,23549,23550,23551,23552,23553,23554,23555,23556, +23557,23558,23559,23560,23561,23562,23563,23564,23565,23566, +23567,23568,23569,23570,23571,23572,23573,23574,23575,23576, +23577,23578,23579,23580,23581,23582,530,532,534,536, +538,540,542,544,546,548,550,552,554,556, +558,560,562,564,566,568,570,572,574,576, +23710,23711,23712,23713,23714,23715,23716,23717,531,533, +535,537,539,541,543,545,547,549,551,553, +555,557,559,561,563,565,567,569,571,573, +575,577,23718,23719,23720,23721,23722,23723,23724,25, +28,110,113,89,91,93,95,97,99,101, +103,23725,23726,105,107,61,65,8,23727,82, +87,23728,23729,23730,23731,23732,23733,23734,23735,23736, +23583,23584,23585,23586,23587,23588,23589,23590,23591,23592, +23593,23594,23595,23596,23597,23598,23599,23600,23601,23602, +23603,23604,23605,23606,23607,23608,23609,23610,23611,23612, +23613,23614,23615,23616,23617,23618,23619,23620,23621,23622, +23623,23624,23625,23626,23627,23628,23629,23630,23631,23632, +23633,23634,23635,23636,23637,23638,23639,23640,23641,23642, +23643,23644,23645,23646,23647,23648,23649,23650,23651,23652, +23653,23654,23655,23656,23657,23658,23659,23660,23661,23662, +23663,23664,23665,23666,23667,23668,23669,23670,23671,23672, +23673,23674,23675,23676,23677,23678,578,580,582,584, +586,588,590,592,594,596,598,600,602,604, +606,608,610,612,614,616,618,620,622,624, +626,628,630,632,634,636,638,640,642,23737, +23738,23739,23740,23741,23742,23743,23744,23745,23746,23747, +23748,23749,23750,23751,579,581,583,585,587,589, +591,593,595,597,599,601,603,605,607,609, +611,613,615,617,619,621,623,625,627,629, +631,633,635,637,639,641,643,23752,23753,23754, +23755,23756,23757,23758,23759,23760,23761,23762,23763,23764, +71,58,73,5,7,329,81,446,458,190, +184,186,188,123,139,141,156,161,162,166, +197,204,209,210,211,217,218,219,225,226, +227,233,234,235,245,246,247,256,257,258, +267,268,269,278,279,280,297,298,299,212, +220,236,228,300,301,302,303,307,309,311, +313,315,317,319,318,316,314,312,310,308, +304,320,305,306,172,173,179,180,181,182, +337,122,333,116,117,23765,23766,23767,23768,23769, +23770,23771,23772,23773,23774,23775,437,434,436,435, +455,451,454,452,469,466,468,467,497,494, +496,495,515,511,514,512,519,516,518,517, +513,453,438,23776,489,490,23777,461,23778,23779, +23780,23781,813,814,815,816,817,818,819,820, +821,822,823,824,825,826,827,828,829,830, +831,832,833,834,835,836,837,838,839,840, +841,842,843,844,845,846,847,848,849,23782, +23783,23784,23785,23786,23787,23788,23789,23790,23791,23792, +23793,23794,23795,23796,23797,23798,23799,23800,23801,23802, +347,354,361,368,375,382,389,396,403,20773, +484,474,486,445,475,483,444,476,479,480, +485,41,326,67,23803,508,21167,23804,4,23805, +23806,23807,23935,9,10,23936,23937,119,23938,23939, +83,84,85,86,54,55,56,31,33,35, +42,39,44,12,23,26,59,63,108,111, +15,21,29,120,2,125,129,127,49,17, +19,46,23808,23809,23810,23811,23812,23813,23814,23815, +23816,23817,23818,23819,23820,0,23821,23822,23823,23824, +23825,23826,23827,23828,23829,23830,23831,23832,23833,191, +192,198,199,193,194,200,201,195,196,202, +203,205,206,207,208,213,214,215,216,221, +222,223,224,229,230,231,232,237,238,239, +240,241,242,243,244,248,249,250,251,252, +253,254,255,259,260,261,262,263,264,265, +266,270,271,272,273,274,275,276,277,281, +282,283,284,285,286,287,288,289,290,291, +292,293,294,295,296,23834,23835,23836,23837,23838, +23839,23840,23841,23842,23843,23844,23845,23846,23847,23848, +8829,17231,6535,6086,20542,7042,18120,14179,15314,15901, +9317,10807,16850,17084,1310,20931,18257,14124,5959,7983, +12018,4587,17416,1130,12691,1620,19209,9156,7333,12998, +9036,18384,21630,20942,20743,18167,9930,2092,21583,5037, +4745,16637,19875,2869,16031,18206,17531,7250,1549,19478, +18563,15235,1836,11304,15065,10689,19887,3315,19763,14531, +6021,13003,18986,20644,2012,6025,10777,7575,11431,2185, +1002,5217,3180,1359,1506,1495,6633,1901,9970,17909, +15926,18626,14914,17436,14719,4149,7725,5316,8386,4033, +6795,8879,17252,17253,11834,1558,21785,21786,21787,21788, +21789,21790,21791,21792,21793,21794,21795,21796,21797,21798, +21799,21800,21801,21802,21803,21804,21805,21806,21807,21808, +21809,21810,21811,21812,21813,21814,21815,21816,21817,21818, +21819,21820,21821,21822,21823,21824,21825,21826,21827,21828, +21829,21830,21831,21832,21833,21834,21835,21836,21837,21838, +21839,21840,21841,21842,21843,21844,21845,21846,21847,21848, +21849,21850,21851,21852,21853,21854,21855,21856,21857,21858, +21859,21860,21861,21862,21863,21864,21865,21866,21867,21868, +21869,21870,21871,21872,21873,21874,21875,21876,21877,21878, +6905,11896,11018,9944,11594,5692,14720,10345,15311,17313, +11073,13677,11600,10627,17262,12754,8479,11208,21486,10333, +15102,13369,5048,9375,1054,6226,3669,2883,5098,19567, +12765,19568,2317,6231,16742,4819,7847,18193,10973,1202, +19952,8405,20040,8406,7324,3397,12430,12996,18932,951, +12470,4883,17960,3000,5431,7289,14307,3007,13669,14466, +14378,15344,21686,10176,1444,20623,7883,7706,7474,9616, +5680,17147,21094,18216,17786,18471,17853,15109,13192,19144, +18090,1242,17380,17085,5708,2681,17878,12154,9347,3452, +19224,16567,4261,2513,15633,16750,21879,21880,21881,21882, +21883,21884,21885,21886,21887,21888,21889,21890,21891,21892, +21893,21894,21895,21896,21897,21898,21899,21900,21901,21902, +21903,21904,21905,21906,21907,21908,21909,21910,21911,21912, +21913,21914,21915,21916,21917,21918,21919,21920,21921,21922, +21923,21924,21925,21926,21927,21928,21929,21930,21931,21932, +21933,21934,21935,21936,21937,21938,21939,21940,21941,21942, +21943,21944,21945,21946,21947,21948,21949,21950,21951,21952, +21953,21954,21955,21956,21957,21958,21959,21960,21961,21962, +21963,21964,21965,21966,21967,21968,21969,21970,21971,21972, +16716,2510,8526,10903,1315,15875,17286,2830,5964,17964, +18262,17987,17789,4903,16862,10059,9624,7886,15277,4741, +16257,3760,12433,20430,14083,11250,19742,9160,11251,14501, +16404,15749,2834,1377,2472,4330,2270,1378,10413,5626, +3784,1321,12999,21418,13200,4454,7888,4062,7860,6701, +19680,10917,2940,17937,15646,17682,3347,13842,11254,7350, +16459,13920,6592,17537,2863,7424,21326,2323,9797,13565, +4098,18168,6630,10141,14536,13811,15283,18569,16545,16756, +20654,7945,19306,10691,15548,10144,9651,9282,15761,13013, +3229,8438,20536,1694,14752,2296,21973,21974,21975,21976, +21977,21978,21979,21980,21981,21982,21983,21984,21985,21986, +21987,21988,21989,21990,21991,21992,21993,21994,21995,21996, +21997,21998,21999,22000,22001,22002,22003,22004,22005,22006, +22007,22008,22009,22010,22011,22012,22013,22014,22015,22016, +22017,22018,22019,22020,22021,22022,22023,22024,22025,22026, +22027,22028,22029,22030,22031,22032,22033,22034,22035,22036, +22037,22038,22039,22040,22041,22042,22043,22044,22045,22046, +22047,22048,22049,22050,22051,22052,22053,22054,22055,22056, +22057,22058,22059,22060,22061,22062,22063,22064,22065,22066, +9052,21308,3080,18756,12724,8021,20202,13409,1006,9772, +10979,19169,6464,16517,16723,3574,17793,20297,18106,13480, +3494,9975,9876,13330,15149,5727,8026,4496,7891,10151, +6988,6796,8027,912,20204,3459,7689,5816,15446,6804, +6553,14096,15216,15737,2813,19638,7962,10346,1705,14771, +21717,9211,17004,7203,17971,13927,16668,5090,9398,4043, +9679,21013,13850,9709,20158,13332,15702,5736,15188,9135, +10240,10350,9685,9265,19271,11078,17342,13335,5659,3552, +20166,6564,1812,1822,20848,9705,14696,17347,13055,1161, +12167,4566,3398,4797,11233,16212,22067,22068,22069,22070, +22071,22072,22073,22074,22075,22076,22077,22078,22079,22080, +22081,22082,22083,22084,22085,22086,22087,22088,22089,22090, +22091,22092,22093,22094,22095,22096,22097,22098,22099,22100, +22101,22102,22103,22104,22105,22106,22107,22108,22109,22110, +22111,22112,22113,22114,22115,22116,22117,22118,22119,22120, +22121,22122,22123,22124,22125,22126,22127,22128,22129,22130, +22131,22132,22133,22134,22135,22136,22137,22138,22139,22140, +22141,22142,22143,22144,22145,22146,22147,22148,22149,22150, +22151,22152,22153,22154,22155,22156,22157,22158,22159,22160, +6350,18790,1138,8373,2289,2560,10201,3484,11035,21378, +12482,1554,21148,10202,3018,19241,12814,17208,10305,3708, +11976,21309,10017,16765,3445,16627,19259,18343,15724,5934, +2291,13265,14383,2227,2228,13930,15091,14397,10393,4786, +20334,4856,12451,3878,13590,10995,1440,8146,15241,10123, +11440,20011,4884,5330,7849,4885,15720,11441,15587,7543, +16196,4895,11547,11444,11445,2058,15723,5061,1451,3266, +20943,10563,12032,18741,6481,19604,19605,11447,8527,18957, +10129,3842,6483,3455,21380,7592,2530,2325,16105,9393, +2111,10152,3859,10020,7559,2744,22161,22162,22163,22164, +22165,22166,22167,22168,22169,22170,22171,22172,22173,22174, +22175,22176,22177,22178,22179,22180,22181,22182,22183,22184, +22185,22186,22187,22188,22189,22190,22191,22192,22193,22194, +22195,22196,22197,22198,22199,22200,22201,22202,22203,22204, +22205,22206,22207,22208,22209,22210,22211,22212,22213,22214, +22215,22216,22217,22218,22219,22220,22221,22222,22223,22224, +22225,22226,22227,22228,22229,22230,22231,22232,22233,22234, +22235,22236,22237,22238,22239,22240,22241,22242,22243,22244, +22245,22246,22247,22248,22249,22250,22251,22252,22253,22254, +12354,3866,3867,7773,3417,14744,20979,11522,1412,5163, +21124,17120,17806,2446,18041,12674,17062,3191,1445,21628, +18004,20808,4436,20891,4630,8185,14183,11699,15601,15889, +7738,16442,6730,15388,2651,10960,8055,17418,15976,10812, +17419,15158,12565,4201,14713,18987,1369,20510,5627,10676, +9961,7166,15752,935,2656,1481,11255,4114,8681,18181, +3134,14449,21064,20980,19764,4751,18483,2428,15999,5830, +16571,6595,8842,19119,8448,16903,5616,19013,2896,6780, +11925,3722,20516,14453,3142,19031,21634,15089,14093,3815, +10313,10314,13216,4943,9879,13106,22255,22256,22257,22258, +22259,22260,22261,22262,22263,22264,22265,22266,22267,22268, +22269,22270,22271,22272,22273,22274,22275,22276,22277,22278, +22279,22280,22281,22282,22283,22284,22285,22286,22287,22288, +22289,22290,22291,22292,22293,22294,22295,22296,22297,22298, +22299,22300,22301,22302,22303,22304,22305,22306,22307,22308, +22309,22310,22311,22312,22313,22314,22315,22316,22317,22318, +22319,22320,22321,22322,22323,22324,22325,22326,22327,22328, +22329,22330,22331,22332,22333,22334,22335,22336,22337,22338, +22339,22340,22341,22342,22343,22344,22345,22346,22347,22348, +10154,9331,17220,4640,3390,19213,6155,17221,5617,16373, +11889,19795,16417,19383,9428,9663,14784,3446,10006,10007, +1681,7210,2577,18515,7757,20761,10891,9692,6922,9185, +7009,17978,19348,19201,19392,15399,3732,10647,10554,10555, +1775,1778,1079,4426,4427,13140,1389,20208,10861,11998, +3040,10047,11370,7043,12233,5191,4263,5968,1468,2727, +12976,875,17476,6055,6676,6056,20256,3188,6057,17480, +18701,6059,7691,916,17694,6671,9686,12406,6134,7731, +5119,12121,13399,13620,20323,5528,8503,8504,21150,20327, +20328,20443,4044,12766,19283,1286,852,851,860,861, +857,859,858,868,876,882,881,891,901,893, +896,941,928,924,955,966,974,965,970,969, +979,982,985,987,993,1005,1009,1023,1031,1033, +1042,1041,1058,1061,1052,1051,1055,1062,1047,1059, +1050,1076,1084,1093,1090,12005,1094,1105,1098,1096, +1111,1114,1112,1120,1113,1126,1127,1131,1145,1142, +1146,1139,1143,1144,1159,1160,1172,1175,1171,1183, +1170,1169,1176,1184,1187,1189,1199,1201,1197,1205, +1214,1203,1215,1204,1208,1223,1224,1220,1230,1780, +20526,6087,6094,1781,16266,19553,4527,4967,13400,3540, +10420,20432,9504,7908,17904,7356,12044,942,10339,17862, +21113,3495,947,5537,9687,5138,16340,12795,19913,15721, +17636,17023,4733,11245,11295,14640,20012,12031,4567,10866, +17275,14645,18444,20737,18600,14384,6887,3311,20680,8930, +8186,14441,10957,11371,21261,20628,14646,3832,11700,21568, +2356,1747,11093,10214,15909,3871,3683,11623,11299,17988, +20709,18472,11377,21078,11372,10912,13094,5969,6565,2548, +3240,8376,4264,10760,17289,16874,9077,14212,15753,5814, +16235,9473,14665,13324,9935,20751,1853,1236,1240,1243, +1239,1237,1262,1261,1273,1263,1270,1279,1285,1290, +1288,1284,1295,1323,1305,1297,1306,1308,1298,1301, +1319,1320,1311,1339,1350,1349,1357,1364,1365,1373, +1380,1387,1381,1393,1402,1405,1423,1417,1413,1496, +1483,1501,1429,1449,1443,1427,1433,1480,1430,1456, +1493,1428,1488,1511,1523,1519,1448,1563,1546,1550, +1568,1569,1590,1591,1580,1605,1606,1608,1598,1615, +1614,1630,1654,1666,1665,1672,1680,1687,1689,1700, +1691,1686,1713,1729,1728,1744,1735,1740,1746,1745, +9494,9172,15206,8380,12347,6839,10421,5195,21127,19620, +6840,10704,17125,17716,6705,5815,20118,2971,7351,10964, +6291,17939,15762,17905,4443,16666,5780,11053,16623,8812, +3489,2399,13325,11395,4702,20257,20518,19032,3789,8796, +11396,14893,3085,10290,2572,10750,5728,6600,14894,16921, +12586,14430,9909,2391,7518,18702,17913,11423,5785,7519, +18713,917,6810,7442,20560,10929,2758,14072,11842,18068, +18634,6910,11023,11157,12440,11158,9431,8945,17951,11159, +6923,10352,11028,10241,5660,10767,17006,15528,8622,21239, +13193,19743,14907,20244,8482,14416,1766,1758,1779,1791, +1798,1776,1785,1777,1829,1815,1835,1825,1844,1805, +1809,1828,1790,1845,1830,1810,1808,1898,1894,1897, +1896,1920,1904,1905,1908,1929,1919,1910,1931,1938, +1944,1940,1939,1941,1953,1956,1946,1951,1957,1959, +1972,1962,1975,1974,1976,1983,1991,2004,2007,2000, +2003,2021,2026,2027,2034,2029,2041,2052,2067,2051, +2050,2055,2083,2088,2105,2094,2119,2120,2117,2128, +2122,2127,2137,2142,2139,2145,2150,2152,2166,2165, +2186,2180,2175,2183,2229,2220,2230,2255,2261,2265, +6285,19332,21100,7690,20298,19940,1104,3897,12790,21542, +16782,20568,8817,5164,3370,8409,9603,4823,16562,4280, +8624,20888,7851,1685,4297,20569,15195,16213,7878,11373, +8187,19715,10638,16144,4306,11446,21225,11910,12454,10048, +12122,9378,1782,12534,19430,8931,8759,13555,21171,5682, +4313,12839,10408,16443,895,17287,18263,12184,9348,6244, +13270,16498,13091,2089,8761,13614,2252,9283,6212,19606, +17421,17093,1207,10269,19415,2371,2385,18385,14130,9067, +5518,2090,6449,10371,2437,11932,15030,21448,8763,18329, +21381,8779,2528,12708,21631,13294,2306,2285,2287,2278, +2286,2281,2305,2310,2318,2321,2319,2335,2328,2332, +2342,2346,2348,2340,2354,2355,2364,2373,2388,2384, +2378,2389,2394,2404,2407,2403,2417,2405,2406,2408, +2449,2445,2478,2447,2501,2536,2493,2495,2507,2521, +2518,2535,2498,2496,2545,2546,2550,2551,2569,2592, +2597,2585,2588,2584,2586,2625,2620,2618,2614,2640, +2648,2638,2646,2675,2676,2693,2694,2703,2709,2733, +2724,2735,2728,2726,2729,2716,2721,2756,2750,2760, +2766,2764,2791,2774,2796,2778,2785,2775,2772,2808, +9962,8501,1793,11256,7352,6148,13621,9465,19159,16754, +12709,10591,11591,13923,18276,3907,16152,19236,8734,16465, +14913,20655,4100,17099,3488,15648,11612,15732,12815,4175, +4752,13629,13069,10692,5387,15143,4269,10146,14954,15497, +6465,12273,8996,15734,17102,12649,9738,16511,20050,4115, +9114,12030,18577,21312,2195,12820,1008,12190,10193,10382, +8620,2903,2441,19121,9424,12390,12821,12822,3181,21599, +2993,10596,6994,14238,9332,20299,7520,17053,3911,3770, +1800,20104,13077,3608,9664,7521,16922,20497,13108,7443, +19791,21391,6128,8738,20260,9454,2803,2805,2851,2836, +2838,2819,2854,2859,2861,2872,2864,2867,2879,2882, +2890,2892,21361,2898,2444,2905,2912,2913,2920,2926, +2915,2933,2938,2963,2950,2954,2948,2974,2976,2983, +3001,3012,3021,3022,3019,3017,3014,3006,3037,3045, +3053,3043,3084,3069,2889,3058,3057,3093,3117,3123, +3141,3143,3130,3153,3164,3162,3177,3170,3171,3196, +3204,3205,3200,3207,3215,3220,3225,3231,3232,3228, +3255,3252,3260,3267,3274,3291,3295,3308,3309,3313, +3317,3318,3354,3329,3333,3319,3335,3342,3330,3344, +7820,2814,18717,13633,3496,18873,12281,12282,19642,12426, +12824,919,8701,7379,19796,13928,12125,3032,1861,18516, +10710,17224,8946,9400,9432,21017,9680,9688,4505,13636, +12126,19272,9693,10242,10243,11408,14858,5661,9223,1934, +18297,13775,19949,15295,10699,17566,18531,12671,1362,4125, +21071,21072,18737,14570,19531,20924,15776,4991,11114,15161, +10955,2151,10494,19666,16717,21262,5755,17086,20809,5232, +5233,14881,7934,14443,5062,9066,3684,15570,5552,5647, +21724,10070,10414,3520,20845,1469,2807,6702,19510,19115, +21507,6897,20646,19928,16720,17245,3331,3372,3367,3364, +3366,3373,3403,3399,3410,3427,3411,3422,3423,3415, +3421,3425,3451,3464,3465,3480,3481,3500,3518,3532, +3515,3513,3519,3512,3534,3545,3535,3541,3537,3562, +3555,3564,3579,3568,3569,3580,3589,3584,3582,3603, +3595,3606,3617,3619,3623,3613,3620,20383,3628,3650, +3648,3663,3693,3685,3674,3666,3677,3692,3723,3716, +3720,3740,3736,3734,3769,3751,3745,3746,3747,3750, +3757,3759,3758,3761,3786,3775,3790,3779,3774,3806, +3801,3802,3805,3821,3820,3854,3858,3824,3836,3848, +18482,20818,18748,10918,14938,3695,1326,20656,19424,7176, +5237,15494,14944,10707,15324,5018,17941,12725,19792,6989, +15008,2196,3441,5786,15217,9568,11879,11071,3533,9672, +19982,20829,20167,9459,13835,17581,15967,13720,21543,2115, +18921,17143,11714,13342,4709,6039,20013,20801,7974,20802, +19709,8836,1177,12259,11650,9619,19466,12260,1823,10049, +11716,21755,20810,8288,6872,15910,20945,6873,6101,19102, +21492,20946,13731,4075,21265,11871,5008,5212,20276,14882, +9068,5127,7987,15640,15996,18209,10599,10423,5555,21760, +21408,1211,6966,20967,9071,9466,3873,3880,3875,3881, +3887,3889,3906,3898,3894,3914,3918,3919,3941,3944, +3948,3957,3950,3955,3949,3958,3978,3987,3984,3990, +3994,3998,4005,3977,4020,4023,4029,4058,4025,4060, +4064,4063,4070,4078,4071,4073,4076,4069,4087,4090, +4101,4091,4092,4094,4111,4123,4119,4120,4145,4141, +4155,4143,4170,4162,4169,4166,4171,4196,4184,4181, +4193,4211,4219,4208,4240,4236,4226,4237,4235,4268, +4257,4267,4255,4273,4251,4256,4305,4286,4293,4326, +4316,4308,4360,4370,4369,4396,4395,4399,4398,4411, +12208,9994,21675,19752,10565,10566,18751,17043,1575,7177, +4930,1497,11949,7753,21065,21589,17827,2452,3542,9799, +21513,19773,17910,20990,5218,5529,13812,15211,13833,7190, +8632,1988,10980,21008,7178,10445,15095,6990,19343,16596, +13353,9102,19033,6642,13165,7119,17444,12587,7635,21421, +15934,21735,10508,15219,11881,14098,6811,13673,11957,19797, +12427,7211,16066,16597,2486,6911,8947,10510,1645,14100, +21422,9542,3161,18186,19547,14379,8015,18615,9318,18601, +1234,1748,16197,21202,7707,3803,16689,5712,2891,18619, +17422,2514,8807,3431,21449,17824,4418,4424,4437,4442, +4433,4432,4439,4449,4453,4469,4456,4459,4468,4492, +4481,4483,4499,4475,4485,4510,4514,4521,4522,4516, +4520,4519,4541,4542,4539,4556,4555,4553,4554,4560, +4561,4563,4575,4585,4578,4580,4576,4600,4608,4609, +4619,4624,4620,4622,4626,4650,4661,4647,4652,4646, +4649,4668,4680,4671,4701,4707,4704,4708,4711,4712, +4721,4731,4730,4750,4737,4747,4722,4732,4740,4772, +4768,4777,4780,4785,4784,4800,4806,4812,4843,4820, +4841,4860,4869,4924,4913,4880,4904,4854,4876,4870, +15094,5614,21419,16641,16205,18210,13326,18578,18579,15799, +2349,15735,3816,8326,9877,16914,16809,8957,2897,20531, +8894,8895,2485,3210,9880,20221,3168,13134,13333,4013, +20225,10266,13170,2820,14560,4986,12858,2826,6236,12675, +6016,14467,4654,11209,13505,21263,10050,10216,1767,1117, +15001,6249,8056,3810,18988,14815,8052,13509,12456,9505, +21320,2086,3575,3219,16224,8072,8612,8073,9377,12194, +2593,10802,21199,16252,7658,15162,13222,18161,21374,19867, +6002,2081,12295,18859,3932,14186,17088,21204,11505,5473, +13155,11275,1226,2061,12156,10060,4894,4901,4919,4912, +4853,4952,4951,4964,4959,4960,4956,4963,4968,4953, +4971,4994,5000,5034,5013,4989,5004,4980,4987,4978, +5016,4982,5006,4979,4983,4981,5015,4984,5045,5044, +5052,5070,5085,5078,5079,5081,5091,5092,5097,5103, +5104,5099,5123,5128,5120,5124,5150,5153,5156,5166, +5165,5160,5159,5158,5180,5181,5201,5187,5190,5198, +5188,5202,5213,5220,5219,5227,5250,5257,5255,5240, +5253,5251,5247,5254,5273,5279,5275,5281,5272,5283, +5313,5308,5309,5317,5319,5320,5332,5327,5329,5344, +11905,4905,4487,5126,4528,14605,10857,14651,13312,11276, +10656,5775,13442,2602,19111,18620,1422,9084,7665,15245, +13869,6960,6007,21081,9161,3454,2069,4838,16000,9495, +9286,8258,5628,7425,5935,15941,17098,20969,2522,15163, +21278,21761,15857,2070,5235,5112,8905,20024,11962,17475, +12547,9163,21648,12021,1499,5314,15358,5600,19556,7357, +20552,6398,20755,14154,21128,10431,9963,8529,4931,20324, +5486,12886,8530,2927,2073,21676,1875,17942,1555,15248, +17248,12492,17686,6371,14539,19939,2941,10524,16696,3945, +14915,7077,7800,17687,10967,4535,5348,5352,5354,5364, +5369,5368,5376,5379,5371,5378,5366,5374,5365,5394, +5395,5396,5404,5403,5415,5412,5414,5429,5428,5442, +5439,5441,5446,5481,5474,5462,5485,5461,5465,5464, +5463,5524,5495,5513,5504,5500,5501,5543,5545,5541, +5553,5564,5563,5582,5585,5589,5594,5596,5597,5603, +5612,5605,5607,5608,5606,5629,5625,5663,5642,5657, +5639,5667,5688,5695,5717,5702,5699,5711,5698,5701, +5706,5742,5753,5746,5751,5773,5769,5779,5772,5765, +5799,5800,5812,5828,5821,5841,5856,5868,5872,5879, +2875,4754,21288,6262,13163,13350,11202,12984,5488,14588, +20032,6124,15501,19974,2713,13971,20758,11789,12986,17478, +5388,12086,4067,21460,2789,14159,21289,13016,10227,7367, +1927,6805,1515,3634,3086,18237,14110,3166,12318,12404, +19798,16045,20258,14160,5787,18832,6434,2241,8813,12497, +20219,6995,10307,2075,11731,15268,3167,3793,15269,9383, +9810,17445,1862,11141,14161,3497,9885,3392,4975,7444, +11287,9022,3357,7639,15249,9333,17453,10460,14689,20135, +12781,12023,12736,12321,5133,8333,10461,10455,18288,3461, +14012,21296,5424,12896,9758,14690,5883,5882,5884,5893, +5890,5892,5891,5906,5910,5916,5933,5915,5929,5931, +5917,5944,5942,5983,5982,5956,5953,5981,5955,5963, +5951,5948,5993,5999,6003,6029,6028,6023,6018,6035, +6034,6044,6036,6043,6067,6070,6096,6102,6093,6074, +6079,6076,6075,6100,6114,6089,6081,6098,6151,6150, +6152,6139,6166,6165,6170,6173,6174,6176,6178,6177, +6190,6192,6184,6204,6205,6207,6239,6247,6235,6224, +6220,6222,6286,6284,6288,6300,6305,6310,6303,6321, +6318,6323,6366,6352,6363,6351,6373,6349,6372,6360, +9218,9024,19647,19977,6031,20667,15367,15704,11801,2745, +18839,12746,15615,21338,21157,4472,14789,21156,12944,21473, +15617,10469,10353,7389,16187,19328,19812,9187,10246,13171, +9764,9227,12904,19984,21054,13495,9765,1566,4108,21702, +9543,14550,10632,19331,19986,21475,19821,4482,14371,20570, +14380,11917,6088,11647,3227,20507,12863,20374,1418,1163, +16789,14125,8625,13837,1419,15197,19145,20574,11094,15377, +6420,5107,8294,11378,21145,2563,15115,6250,15913,2062, +9960,21348,1118,9312,4384,13443,6107,17294,4920,9561, +19968,10432,8232,12716,1132,20479,6348,6391,6393,6410, +6401,6412,6404,6444,6455,6454,6461,6460,6476,6474, +6473,6477,6501,6499,6498,6500,6511,6516,6531,6537, +6530,6566,6576,6580,6575,6590,6593,6582,6578,6574, +6570,6607,6611,6617,6641,6639,6644,6612,6614,6623, +6629,6660,6664,6657,6663,6678,6684,6696,6713,6682, +6731,6718,6774,6735,6785,6741,6763,6760,6758,6761, +6744,6756,6743,6745,6752,6749,6830,6828,6831,6846, +6843,6856,6867,6871,6875,6874,6888,6882,6894,6906, +6883,6892,6929,6935,6952,6936,6965,6978,6949,6971, +5865,6450,14029,15498,1577,11182,21633,7505,9509,17606, +4847,11952,1336,5531,17783,7259,21352,15505,14032,4717, +7598,11340,14033,14034,11956,2670,9826,8882,1880,6558, +14787,7212,17314,16048,11806,9689,21783,3638,11807,15809, +9267,14923,8111,5372,20764,8113,19524,7143,2143,21139, +18085,19938,6237,19549,5249,16253,13755,16564,13384,11502, +21487,15959,11862,4804,7147,14736,2952,12261,20708,14126, +6241,20892,7045,4656,20016,13758,3402,7884,4570,3193, +8138,20094,1064,4831,20948,12639,2710,6245,20095,17027, +4906,17582,14388,1788,21266,13507,6938,6932,6944,6987, +6928,6941,6947,6953,6961,7026,7033,7057,7069,7092, +7061,7024,7041,7047,7030,7032,7063,7031,7108,7101, +7109,7102,7168,7131,7187,7136,7126,7159,7135,7155, +7142,7153,7152,7124,7125,7140,7130,7134,7129,7148, +7127,7257,7236,7228,7232,7241,7227,7268,7278,7292, +7287,7293,7307,7312,7304,7306,7305,7308,7320,7330, +7319,7317,7334,7321,7349,7329,7325,7326,7316,7341, +7401,7410,7400,7432,7418,7397,7404,7426,7399,7407, +7406,7467,7498,7494,7491,7468,7458,7495,7504,7459, +10061,21267,14318,5144,18503,4907,16147,20682,3340,2831, +14524,21042,17196,21688,8079,1179,13475,11379,14809,21720, +8933,7984,13763,6008,17588,7792,21174,2725,5592,1119, +8431,8934,6362,3051,6542,5337,15540,17532,8840,7666, +13560,5071,10657,17991,1366,17290,4915,5318,15914,13798, +15804,19112,9419,17589,8377,5063,3843,15940,14934,7591, +17353,6765,8432,7427,8381,2570,16607,20713,10498,2523, +13403,14750,1198,15942,17427,6544,13180,5355,17781,15647, +17792,17538,6255,17038,4921,15841,15186,4130,9072,4839, +7991,6424,20819,18270,8095,4776,7470,7475,7464,7463, +7478,7486,7473,7462,7548,7539,7540,7542,7538,7561, +7569,7567,7566,7565,7581,7593,7585,7631,7616,7634, +7617,7615,7606,7607,7611,7614,7609,8468,7663,7662, +7660,7650,7661,7652,7648,7654,7687,7653,7667,7711, +7719,7708,7709,7701,7712,7747,7736,7735,7739,7751, +7733,7805,7767,7763,8220,7772,7788,7799,7808,7777, +7778,7832,7829,7842,7867,7843,7848,7854,7837,7850, +7853,7845,7869,7889,7871,7874,7870,7876,7894,7898, +7904,7895,7903,7923,7942,7930,7941,7922,7932,7931, +7167,17898,13734,21590,2398,4220,9652,10521,9822,2734, +13594,14319,12717,21406,12719,16283,12980,17299,14717,16407, +15572,16284,5175,16330,1371,21384,1955,5866,3206,10592, +10180,12779,20457,1500,2988,10080,11150,12647,13160,15733, +21591,5804,21649,16894,21514,17730,9835,7909,4590,13931, +11258,19765,21620,4491,10522,17906,19242,14284,12720,17911, +17335,7360,8735,17302,13924,11151,6979,4102,2699,3709, +11259,10841,19892,17599,1253,14955,13351,1556,6568,5340, +3082,11178,16512,5021,16470,15956,5421,11203,17544,9800, +21593,1601,5807,19122,15651,5574,7919,7920,7975,7992, +7972,7989,7986,7996,7969,7980,7993,7990,7971,8005, +8030,8017,8016,8064,8060,8054,8068,8034,8043,8059, +8051,8044,8032,8088,8093,8119,8110,8107,8135,8137, +8128,8134,8126,8139,8152,8153,8143,8144,8157,8145, +8154,8147,8213,8176,8178,8184,8175,8180,8224,8216, +8250,8254,8253,8252,8315,8278,8301,8273,8282,8303, +8320,8311,8290,8272,8300,8287,8293,8341,8345,8340, +8366,8374,8354,8370,8389,8478,8401,8418,8413,8458, +8412,8396,8399,8410,8489,8499,8494,8487,8488,8519, +20998,20073,2479,2194,3351,17103,19893,21621,17834,14484, +16366,5341,14114,19310,7954,19034,21386,11709,1194,5530, +12046,21153,7368,3004,13574,14868,20076,17105,3182,7191, +13817,15551,5027,20033,20693,5221,13907,6376,20131,15608, +17306,15147,20694,21635,15552,6668,1960,1516,4779,3144, +9516,15270,18339,17000,21637,9395,21332,12989,10785,20858, +10509,11400,12392,9745,18000,21623,6996,14200,15220,10526, +1372,18758,14058,11323,13047,6848,17166,7198,14144,17799, +13663,18001,15224,13080,20301,21765,20826,14241,14035,9981, +19799,4501,9886,2337,21741,7527,8515,8528,8522,8516, +8524,8545,8544,8546,10204,8552,8554,8571,8559,8567, +8589,8593,8591,8598,8600,8614,8626,8629,8633,8637, +8644,8639,8647,8655,8656,8659,8664,8668,8669,8670, +8680,8695,8692,8673,8702,8703,8708,8714,8715,8716, +8720,8725,8741,8745,8743,8744,8757,8755,8773,8786, +8785,8787,8790,8797,8800,8805,8819,8820,8826,8830, +8843,8832,8841,8846,8853,8855,8857,8856,8864,8872, +8866,8865,8884,8892,8896,8904,8909,8929,8926,8932, +8923,8922,8950,8954,8952,8955,8971,8963,8977,8992, +13709,2243,13936,17800,6812,6495,21698,16928,13049,20034, +3300,14487,6815,7213,14099,7445,7562,6559,13081,3089, +7868,7694,1531,2204,19057,11885,15225,19058,14141,13884, +7218,1708,12959,9219,12590,18072,12747,12225,18637,11409, +9457,17555,21701,8948,19449,17915,9401,17176,2212,7697, +10354,2213,19276,1945,13689,17180,21712,21703,10667,17007, +9255,9412,9809,6227,13749,21244,20700,3829,17026,19231, +15568,20065,17291,3173,17568,4808,4809,12626,1789,12483, +17382,20548,5176,19250,5654,21742,15425,2017,12825,16628, +19268,9402,15432,10355,14973,5154,9008,9004,9005,9028, +9029,9062,9075,9080,9078,9089,9088,9103,9104,9115, +9124,9120,9127,9106,9148,9141,9173,9196,9192,9191, +9190,9204,9195,9188,9200,9198,9237,9235,9244,9238, +9256,9257,9279,9281,9274,9277,9270,9296,9308,9311, +9314,9316,9340,9341,9343,9360,9357,9356,9379,9369, +9388,9396,9425,9422,9446,9426,9417,9451,9440,9443, +9441,9463,9464,9469,9476,9478,9486,9514,9515,9479, +9480,9493,9558,9549,9550,9566,9547,9482,9605,9581, +9611,9583,9578,9585,9618,9577,9584,9630,9590,9598, +13649,14373,5471,21226,8188,10999,11247,5591,15642,8378, +4916,14394,5593,21450,19753,962,4444,14945,10708,10182, +1101,4446,2350,16518,1507,7199,2690,10185,8387,11142, +20561,10621,12322,7014,7020,10548,11086,3283,18469,19502, +19500,4676,1065,18521,5506,12997,20172,5189,18958,21268, +18808,13799,13645,13044,6545,17295,18990,18509,13014,12933, +19625,5342,19899,4502,14203,4694,14204,9780,11891,13053, +5405,2682,4657,6242,2647,3194,4908,17089,12172,9107, +12264,10189,20949,13476,16951,17533,16878,8706,6767,6695, +17423,14153,6256,7547,3543,14155,9634,9580,9626,9588, +9597,9576,9503,9553,9710,9721,9718,9714,9757,9725, +9716,9717,9715,9766,9768,9793,9786,9785,9783,9819, +9813,9815,9820,9811,9828,9842,9846,9844,9839,9841, +9869,9855,9856,9854,9875,9857,9853,9352,9902,9908, +9881,9859,9906,9914,9933,9926,9915,9929,9959,9952, +9979,9977,9953,9951,9988,9957,9996,10012,10009,10027, +10044,10067,10078,10079,10051,10028,10063,10046,10030,10052, +10035,10112,10116,10115,10119,10128,10140,10130,10138,10126, +10121,10145,10125,10173,10187,10205,10218,10207,10217,10226, +2662,17943,2667,21594,16297,6710,6295,6153,12393,9746, +13485,1012,9982,12173,13135,1014,6816,17952,3550,9339, +5432,5435,5433,3833,13915,4377,4084,15836,12265,2599, +13519,7246,8295,2780,10600,7071,20259,10291,7001,9365, +6915,19450,6509,18906,13195,20018,3371,6243,20837,20838, +20683,2383,20745,19505,16215,15770,4385,18207,15813,14106, +6050,14504,9936,7994,1424,3660,5851,16572,17907,12484, +3072,3908,3909,15864,8264,3083,8956,9739,9740,16624, +9016,9747,9752,3087,14478,15045,15843,9023,11795,20859, +3393,11837,13142,7531,15844,15846,10219,10258,10260,10257, +10280,10273,10300,10306,10310,10308,10323,10321,10335,10322, +10327,10369,10365,10366,10372,10466,10422,10316,10425,10401, +10411,10444,10415,10398,10394,10434,10474,10486,10496,10488, +10491,10505,10497,10499,10515,10519,10513,10516,10419,10517, +10531,10532,10530,10536,10557,10558,10561,10562,10571,10579, +10574,10573,10576,10577,10601,10612,10620,10608,10613,10616, +10617,10618,10640,10658,10650,10653,10651,10671,10675,10684, +10685,10686,10682,10701,10714,10712,10715,10718,10728,10729, +10725,10730,10749,10746,10743,10761,10780,10768,10775,10776, +10247,20545,14996,15128,20554,18888,13372,8740,2045,5245, +3614,6572,2617,13750,13891,19917,2099,5919,4674,12129, +12074,19459,13652,16591,12673,12291,16831,16832,8742,3830, +1446,1080,1817,13469,15722,21544,4607,20803,11696,12180, +21570,4824,17192,11442,13437,8674,2623,18443,12075,2557, +17745,4380,6188,21571,5709,2511,15796,3195,10900,17524, +17525,10731,17526,11815,16604,16594,17764,8053,19506,6181, +9931,14184,15876,10904,2955,14444,7274,15592,8343,7054, +17763,17666,16126,2515,16070,4003,11606,12332,5512,9461, +20509,15201,7750,9833,14872,1621,10770,10795,10803,10799, +10994,10793,10817,10825,10833,10840,10827,10828,10856,10849, +10864,10865,10872,10881,10867,10890,10896,10895,10902,10922, +10926,10916,10894,10899,10907,10945,10936,10938,10954,10959, +10951,10958,10971,10983,10990,11001,11036,11021,11005,11037, +11034,11046,11045,11096,11064,11072,11067,11057,11060,11055, +11085,11116,11112,11111,11132,11117,11121,11149,11145,11147, +11170,11162,11166,11168,11175,11181,11188,11190,11191,11204, +11198,11200,11207,11206,11221,11217,11234,11268,11264,11274, +11273,11272,11292,11311,11293,11300,11291,11318,11321,11325, +10590,12368,5874,13561,2924,3428,11628,11514,13764,14445, +2985,8199,3969,12308,5846,16664,10919,13921,4173,2657, +10615,11988,3696,936,11611,14847,20069,21063,13843,16001, +16461,7672,7255,4099,1482,2292,12954,16218,14714,15495, +15134,21382,19001,9862,7072,12312,17540,10502,11977,2297, +10437,5853,12078,2853,7577,4844,21310,10438,7630,19353, +10480,18031,2077,15932,11710,9878,3209,5729,17440,15598, +4497,20857,7633,6344,3208,18724,17336,15189,4716,21295, +3409,8880,11880,8459,2848,8361,9129,9777,16103,12737, +3213,1720,18067,11618,16669,20188,11331,11346,11332,11333, +11339,11336,11349,11352,11355,11376,11391,11401,11364,11386, +11385,11366,11420,11413,11428,11437,11435,11434,11436,11429, +11467,11475,11468,11464,11474,11450,11452,11472,11458,11479, +11485,11491,11621,11501,11494,11499,11497,11521,11518,11519, +11531,11529,11544,11539,11549,11568,11584,11604,11602,11613, +11615,11625,11627,11493,11635,11636,11642,11665,11648,11646, +11643,11674,11673,11698,11707,11697,11705,18231,11712,11713, +11729,11728,11724,11737,11741,11744,11747,11758,11760,11769, +11799,11771,11786,11787,11768,11817,11823,11822,11830,11819, +17312,1642,17733,9056,9132,18239,10351,6921,20098,10644, +13496,20189,10549,11670,20099,12859,16654,5696,9980,5693, +7647,7162,5193,2761,11152,11790,5278,7488,3845,20816, +17766,15359,17271,2100,13616,19682,17688,8265,8163,17671, +14339,8136,15389,14673,15458,12611,12612,5631,6496,15763, +17100,3507,4484,12000,15378,4486,2866,10331,10066,17090, +13319,12084,8849,4922,20217,4778,9497,19616,9287,15880, +1846,11740,8205,6638,21595,1602,11477,3857,3983,1216, +2110,19035,2015,10292,3355,18032,18632,3577,3462,13039, +10387,18874,7091,7532,6916,12748,11821,11845,11851,11855, +11861,11858,11870,11869,11866,11886,11901,11908,11912,11915, +11928,11924,11923,11936,11954,11958,11942,11961,11968,11971, +11969,11992,11986,11987,11994,12001,11999,12004,12011,12012, +12007,12014,12017,12020,12016,12027,12026,12034,12033,12037, +12045,12061,12062,12055,12059,12071,12081,12083,12094,12098, +12099,12103,12102,12107,12110,12117,12119,12127,12131,12137, +12141,12139,12135,12155,12148,12147,12163,12168,12181,12177, +12183,12215,12199,12209,12200,12207,12217,12218,12192,12210, +12231,12237,12250,12257,12284,12247,12252,12272,12306,12292, +10389,10356,2216,14861,7370,12455,18412,18428,2040,9374, +15833,15771,7605,12191,18896,2097,11144,5094,19700,6408, +21561,6750,15167,20902,16093,16427,12791,16560,13721,4862, +21245,6445,8403,7133,1021,2773,10862,13776,5996,19136, +19498,18907,13139,12331,3672,3616,9596,19429,1304,18852, +21250,11677,1813,1741,17779,18597,17144,6232,20347,3923, +3823,11765,6327,10897,14463,5565,1441,16492,4875,21479, +20882,7144,3063,11749,18017,5271,9604,13789,2155,2410, +19710,6011,21562,9922,16714,4185,5705,3048,5444,5677, +7613,19579,21484,4438,10819,21073,12299,12307,12294,12285, +12327,12333,12350,12341,12355,12363,12360,12358,12381,12389, +12387,12399,12408,12416,12419,12425,12435,12431,12443,12449, +12450,12462,12464,12477,12458,12460,12473,12459,12466,12500, +12502,12505,12511,12533,12539,12526,12535,12540,12558,12566, +12555,12575,12578,12576,12580,12594,12592,12593,12597,12595, +12601,12614,12613,12636,12638,12624,12630,12619,12615,12623, +12646,12621,12618,12667,12701,12668,12670,12692,12686,12680, +12660,12715,12672,12659,12698,12769,12760,12756,12758,12762, +12797,12798,12818,12783,12787,12788,12789,12793,12784,12827, +12856,21200,6536,4825,5058,3284,2878,7976,4378,968, +13088,2594,12471,7879,9345,14805,21343,3285,2056,19580, +4074,16436,9481,3997,4829,13730,19146,1918,20042,15173, +2506,2413,16715,1674,16851,5353,21264,11375,21346,21756, +16122,13385,15256,2414,12196,11000,17725,7978,2370,8495, +18259,3253,5960,3254,7272,16315,19468,11863,14289,17284, +16601,7783,11548,11461,16026,11637,10818,3050,3686,13470, +3933,21644,9108,10409,16499,11773,9037,12577,20115,5211, +5860,10588,2722,2921,20453,10978,9487,1266,13237,8359, +13196,3656,7740,7900,13092,15355,12836,12837,12862,12848, +12860,12867,12842,12851,12878,12843,12873,12919,12937,12917, +12918,12912,12932,12952,12947,12957,12970,12972,12962,12979, +12995,12990,13004,12991,13026,13028,13025,13041,13074,13067, +13065,13056,13090,13107,13086,13087,13115,13132,13130,13126, +13122,13119,13124,13138,13141,13143,13146,13148,13174,13173, +13172,13194,13199,13204,13190,13210,13201,13228,13235,13245, +13247,13246,13248,13249,13255,13278,13271,13273,13268,13282, +13283,13290,13318,13308,13341,13336,13338,13392,13373,13366, +13381,13375,13446,13421,13440,13422,13441,13431,13429,13474, +5334,6458,13177,930,16324,1376,21125,7336,9992,15438, +15726,3538,6394,6103,2934,2290,6538,4632,9157,14149, +18315,18805,14308,7160,5611,2063,20684,16182,8116,1459, +18961,11002,1282,12123,3902,13346,8682,17383,16296,19673, +19674,5009,9792,17934,11560,2068,16638,2969,17424,1551, +11465,933,19297,9085,9086,7545,11176,21759,21780,21665, +13841,16985,18688,934,13477,7342,4917,10520,7343,12170, +6251,6252,6289,18386,15977,21503,13274,11098,6626,14391, +5082,21146,7489,16452,1832,16358,7163,4095,18621,15175, +13562,20639,6838,14528,9194,21585,13504,13506,13511,13522, +13514,13533,13585,13540,13575,13544,13539,13554,13547,13588, +13597,13596,13605,13604,13607,13608,13623,13625,13615,13613, +13644,13646,13658,13662,13665,13668,13680,13686,13687,13685, +13690,13695,13702,13707,13710,13711,13716,13715,13713,13726, +13752,13742,13738,13736,13746,13745,13772,13773,13778,13784, +13790,13807,13791,13818,13810,13806,13792,13788,13829,13839, +13836,13857,13864,13885,13873,13877,13861,13893,13892,13890, +13895,13906,13914,13912,13933,13944,13943,13951,13952,13960, +13962,13978,13979,13988,14002,14005,14000,14009,14014,14017, +18534,19838,10913,19989,14810,21325,5613,13671,18005,9007, +16453,19509,15066,19116,14532,2959,14582,19991,20647,13870, +9643,13606,19888,9644,8261,16887,2776,17846,16002,10135, +6899,3741,12977,21666,12537,3242,19840,2781,19754,12041, +12579,11511,16956,4681,20025,13969,2013,11061,15236,11305, +15067,10136,16957,5477,9280,5086,3259,15488,10639,17938, +18608,5778,21618,5801,21781,15779,2071,12157,9197,14395, +9301,10074,3811,15780,10858,15891,21207,938,9729,3073, +12485,13348,7910,2962,7809,16408,16057,2033,19774,19002, +8233,1484,10376,1924,20480,9391,14025,14027,14041,14043, +14050,14054,14056,14066,14068,14085,14074,14077,14107,14111, +14127,14120,14115,14119,14116,14117,14142,14147,14152,14158, +14162,14180,14218,14170,14164,14168,14194,14175,14205,14206, +14234,14240,14237,14224,14216,14220,14232,14259,14253,14255, +14274,14273,14278,14281,14270,14287,14286,14292,14288,14304, +14303,14309,14310,14315,14313,14314,14321,14323,14332,14329, +14334,14346,14350,14341,14348,14342,14338,14337,14385,14363, +14369,14366,14367,14387,14381,14372,14407,14414,14415,14422, +14438,14435,14447,14442,14458,14455,14476,14465,14454,14483, +13031,10779,18277,10081,7164,1625,5805,5945,3629,10433, +14354,14263,3630,18056,1883,3704,3243,14398,17996,6368, +1007,11100,10284,21045,12513,7573,11131,3074,11754,6781, +8384,19162,14195,19117,5852,2425,6430,14131,8810,12981, +10678,2020,20249,9510,16471,7078,12934,14507,11011,11991, +2237,3742,13934,9423,19626,13101,2787,6466,7361,10722, +20029,1229,19487,10446,13697,4337,15652,4616,8449,4638, +13872,4686,9017,14891,18182,17835,5022,3490,16722,3946, +14956,17441,17048,10224,20074,14298,7362,15239,10086,19783, +17104,15010,11878,17946,20077,19775,14490,14498,14499,14468, +14494,14512,14511,14522,14520,14527,14516,14510,14514,14552, +14556,14568,14559,14555,14572,14571,14562,14561,14595,14596, +14599,14604,14601,14600,14618,14616,14609,14612,14639,14623, +14635,14675,14649,14625,14636,14662,14679,14642,14614,14624, +14660,14630,14610,14615,14634,14632,14628,14629,14698,14699, +14703,14701,14705,14710,14709,14706,14716,14708,14756,14728, +14738,14735,14724,14751,14726,14746,14739,14745,14722,14768, +14767,14770,14782,14774,14783,14776,14779,14775,14777,21229, +14795,14799,14803,14797,14796,14804,14818,14807,14814,14819, +16964,6058,909,6797,6798,7192,3030,17333,16299,11222, +9468,7554,1995,14400,13035,9748,8691,19900,3297,15698, +15469,20407,15240,17163,4498,3892,17607,5532,14781,7514, +6015,13994,18059,18628,1134,4134,12438,16476,11835,2741, +10716,12400,12823,20205,2432,20662,4408,11689,19315,3110, +17446,12733,4447,7437,17912,8982,1579,3818,11138,9207, +7960,13331,13166,17249,17222,15151,10482,19052,17914,17561, +19053,9116,9429,7726,3636,20898,1292,18633,11403,6601, +1639,15087,15426,16058,13334,13109,16528,10160,6806,11980, +5224,20082,1256,9681,14785,21189,14806,14831,14833,14836, +14835,14837,14838,14845,14843,14851,14848,14864,14871,14875, +14885,14883,14886,14895,14888,14889,14897,14906,14903,14902, +14933,14952,14949,14928,14924,14922,14921,14968,15004,14974, +15003,14971,14976,14977,14986,14969,15017,15039,15036,15051, +15050,15048,15047,15049,15063,15072,15084,14911,15090,15092, +15101,15110,15111,15118,15131,15123,15126,15112,15104,15106, +15159,15164,15165,15168,15183,15184,15182,15192,15207,15194, +15218,15202,15208,15196,15229,15242,15243,15264,15260,15254, +15266,15276,15275,15279,15273,15299,15292,15293,7828,15306, +887,10021,17953,13243,9184,16186,16814,13937,13938,12741, +10347,15097,16067,10816,20085,12498,19692,18069,7214,8082, +17954,13359,15098,8104,4796,1882,13678,19066,17261,19804, +8245,9781,9782,19199,13040,19269,10233,15964,6453,19979, +10101,18587,10931,5991,8962,9220,7219,3498,10789,9458, +9403,6497,4764,20827,16533,8987,6510,9535,7221,9435, +6515,10628,7015,8988,10471,7393,14013,15618,9409,13595, +17464,19080,10552,10982,1669,14930,17409,2832,6335,17814, +3236,4911,17821,10373,6396,6051,7623,8309,1275,18279, +20462,20463,8958,1703,17054,14830,15308,15313,15333,15328, +15345,15352,15351,15347,15376,15379,15368,15373,15372,15384, +15391,15385,15395,15392,15400,15423,15410,15416,15412,15403, +15435,15439,15436,15457,15451,15448,15449,15462,15484,15486, +15479,15482,15499,15478,15502,15516,15521,15518,15532,15530, +15539,15537,15546,15538,15569,15563,15562,15567,15564,15584, +15585,15590,15613,15603,15600,15604,15624,15623,15626,15625, +15638,15654,15656,15634,15670,15691,15699,15686,15682,15678, +15677,15707,15710,15729,15715,15725,15718,15754,15750,15768, +15772,15775,15801,15807,15811,15816,15827,15830,15834,15838, +3778,13376,2463,14515,8411,20571,14331,19550,5921,21548, +17360,4547,4307,1066,2626,12865,16565,19957,19958,8496, +12681,15908,12682,19868,8416,6728,13197,12683,21076,11462, +16316,4677,4678,6004,4995,13655,12112,11657,3341,12478, +2600,8296,9628,5003,20338,5436,12302,1873,17198,3783, +1675,1749,20396,15817,5514,19293,5280,3052,6732,10813, +5010,9932,18747,17203,9635,18976,12486,7793,14333,18809, +16328,11381,13157,5759,13321,9350,17684,7861,13404,7279, +16078,2372,1328,5971,17965,20714,4970,17246,9288,1485, +19841,19511,7801,3429,3762,6733,15832,15849,15853,15850, +15851,15871,15878,15888,15904,15917,15933,15895,15911,15897, +15912,15938,15937,15939,15936,15944,15947,15954,15953,15965, +15966,15968,15970,15983,15987,15992,15990,15993,16017,16019, +16025,16030,16034,16056,16059,16071,16079,16080,16075,16082, +16091,16102,16117,16109,16127,16146,16134,16132,16141,16172, +16168,16179,16181,16193,16190,16201,16194,16191,16208,16214, +16222,16226,16238,16229,16234,16251,16255,16242,16256,16247, +16282,16264,16265,16280,16270,16261,16269,16289,16295,16308, +16312,16309,16321,16317,16319,16339,16341,16337,16336,16344, +15031,8206,12721,19766,8531,14946,10593,9653,3855,15573, +9048,5937,5976,1213,4604,16466,4144,19845,15291,12955, +13945,11661,16467,9836,3935,4334,1166,3705,16331,1979, +11099,2187,9125,7067,15865,10883,17836,11153,7755,14586, +17944,18335,13845,16367,5023,19894,10968,16513,13925,17546, +17071,19245,14540,2700,15468,21180,21596,15653,19895,11012, +9128,4032,13352,16963,16644,19994,13510,19307,7550,1150, +14959,3054,16917,16613,9749,1151,13819,7086,16697,17798, +5984,18827,1395,6467,18871,4079,11536,6126,6377,6736, +10693,19037,16577,19311,15609,21047,16374,16360,16343,16379, +16384,16391,16381,16393,16395,16378,16406,16396,16428,16444, +16429,16423,16424,16425,16426,16489,16507,16491,16493,16494, +16501,16527,16490,16503,16500,16497,16508,16488,16548,16541, +16566,16557,16563,16559,16586,16595,16592,16598,16611,16610, +16625,16630,16642,16632,16640,16646,16665,16653,16659,16651, +16681,16679,16685,16672,16677,16684,16682,16701,16707,16711, +16705,16704,16702,16741,16729,16746,16731,16757,16733,16743, +16734,16772,16803,16791,16781,16770,16771,16787,16784,16827, +16893,16828,16821,16863,16829,16869,16899,16823,16888,16849, +2016,15014,12728,15788,14266,3713,10452,16524,21009,2430, +13482,12319,19639,7522,10293,13231,19198,7557,16580,17447, +10786,20593,20616,10681,5837,10155,3088,9519,10765,17448, +2301,11404,21711,14961,13356,15597,20860,12222,7692,13486, +1678,9887,5764,17002,7120,21314,4605,9334,8461,8462, +19172,2201,7640,11595,17454,11427,2701,18108,14962,2795, +2487,3463,9570,14243,18875,8029,3301,12826,3033,17369, +14355,13219,19325,2160,9673,20280,17955,21209,20264,17510, +10823,17619,12749,13828,7451,6032,21471,7826,1709,6073, +4508,9434,7825,9138,11289,9690,16875,16844,16824,16853, +16904,16817,16854,16891,16859,16884,16820,16873,16966,16952, +16950,16948,16954,16983,16982,16979,17013,17034,17011,17018, +17070,17063,17073,17110,17101,17096,17077,17074,17080,17117, +17123,17121,17118,17149,17153,17135,17132,17158,17137,17188, +17187,17199,17197,17184,17191,17186,17206,17232,17233,17269, +17293,17266,17296,17288,17292,17274,17285,17272,17270,17320, +17323,17343,17321,17334,17337,17328,17318,17354,17352,17349, +17364,17359,17357,17379,17378,17389,17385,17376,17381,17417, +17420,17438,17399,17487,17451,17425,17407,17404,17468,17472, +13417,11808,10357,4082,17461,21194,10248,9537,10249,12092, +18646,12326,11569,5540,19277,14790,16944,1981,13498,13584, +1982,10757,7827,21219,21423,6608,11919,12132,21082,10733, +4420,8555,11230,17060,8615,19923,13471,10069,17989,14811, +15915,10270,17207,6374,16514,3546,2689,16519,3548,21401, +5121,19572,18781,4826,4655,7774,21038,3400,18935,21074, +7852,20805,17527,13653,20806,8492,2158,6687,13654,16145, +10111,1267,18618,21778,1452,14317,8297,6140,18019,20681, +18801,12013,1783,3598,4996,5798,20934,20950,13656,18947, +16123,11503,5416,17985,20575,13438,17471,17481,17489,17482, +17492,17491,17488,17507,17506,17508,17509,17547,17512,17522, +17536,17514,17529,17516,17530,17558,17579,17569,17618,17603, +17564,17565,17590,17575,17650,17631,17642,17635,17632,17643, +17630,17627,17664,17667,17676,17683,17680,17679,17674,17696, +17704,17699,17698,17697,17717,17721,17719,17722,17720,17735, +17734,17746,17737,17741,17749,17750,17755,17757,17762,17780, +17895,17790,17784,17788,17787,17831,17804,17828,17815,17826, +17811,17845,17847,17899,17887,17870,17863,17865,17879,17871, +17893,17890,17885,17886,17919,17927,17922,17962,17963,17959, +19727,11058,1784,1792,2631,2627,8838,13762,7590,7479, +11380,7789,4382,13866,21172,5713,19103,8550,17710,14105, +9038,11753,14813,7252,9069,9562,8344,14392,5282,20685, +10131,7169,18993,1899,21350,14884,13647,9559,17794,2168, +9042,15571,19930,10075,2632,2271,2730,9834,12142,4589, +5802,18331,4030,20981,12777,12710,5863,8753,12640,15694, +14674,4932,2698,17595,3856,9049,4088,17795,17796,19931, +5019,19623,16055,18333,6706,12115,3383,20048,15303,5422, +6502,13814,19932,11535,8102,2129,1152,14046,11756,19251, +7865,6505,8844,9741,9511,14542,17973,17977,17984,17983, +18006,18007,18014,18010,18029,18036,18049,18054,18093,18077, +18080,18075,18078,18076,18123,18116,18113,18114,18122,18117, +18138,18141,18142,18144,18139,18137,18157,18154,18162,18165, +18170,18166,18180,18176,18185,18188,18221,18212,18223,18215, +18220,18261,18245,18258,18271,18250,18243,18248,18278,18266, +18253,18252,18305,18313,18314,18310,18332,18371,18380,18401, +18360,18367,18387,18368,18366,18382,18369,18377,18373,18442, +18437,18446,18445,18457,18452,18459,18462,18453,18468,18455, +18501,18494,18502,18499,18520,18524,18538,18536,18529,18570, +10506,19038,3822,17611,17167,16525,1658,2035,7193,14109, +1232,1508,4944,7438,21333,7439,3211,7088,3391,20105, +4500,1857,17390,18107,1677,13699,10764,9208,1027,20261, +5789,2047,15221,11882,2172,9779,3460,14786,15447,1533, +9212,4947,20899,15340,14788,16219,14691,1122,17552,1870, +2459,9186,10244,16974,17178,9224,20600,3361,8271,20168, +14549,7456,19077,9231,18187,16822,4781,5011,4798,1103, +6132,7017,7022,7460,5609,1594,18372,5714,8423,12377, +10870,11119,11120,11218,14652,15002,2167,20686,8433,11125, +15805,9733,18624,20982,8505,16960,18562,18540,18565,18550, +18555,18544,18598,18603,18616,18617,18636,18642,18644,18648, +18647,18662,18660,18657,18669,18682,18666,18667,18668,18687, +18671,18683,18726,18744,18733,18745,18743,18736,18731,18732, +18818,18770,18812,18804,18767,18800,18820,18774,18777,18785, +18835,18864,18855,18857,18844,18843,18850,18845,18885,18903, +18917,18909,18893,18881,18902,19048,18966,18991,18933,18891, +18992,18984,19009,18884,18880,18946,18985,18923,18889,18948, +18908,18894,19047,18960,18922,19093,19094,19086,19098,19095, +19088,19091,19134,19155,19153,19150,19181,19178,19179,19183, +14214,16368,17049,15756,19635,9245,4344,4065,13183,12095, +7200,11312,19316,5459,13526,20464,7963,5618,3578,7529, +10622,13527,7380,16418,8470,13529,10625,9250,14433,3639, +5623,18362,15751,13378,7881,3124,20951,2363,7048,3430, +3657,6484,13566,5287,14667,5760,7833,6860,13407,17685, +11662,6980,10439,20326,1518,17692,14267,5390,21014,18026, +2850,16932,18840,10470,8475,16942,18422,16946,18249,3899, +4992,13379,13380,7705,7145,4524,18124,3804,6274,2102, +15586,17812,7784,3418,13759,18125,19147,14221,12802,16124, +7150,18126,19163,4262,4659,18203,19203,19221,19247,19227, +19261,19219,19243,19289,19290,19291,19288,19305,19284,19318, +19286,19340,19338,19351,19349,19357,19361,19360,19382,19362, +19364,19368,19423,19421,19399,19401,19409,19397,19410,19403, +19428,19438,19432,19439,19433,19452,19453,19456,19472,19455, +19458,19477,19499,19495,19494,19518,19520,19539,19532,19517, +19519,19545,19552,19557,19570,19612,19617,19610,19622,19562, +19574,19608,19573,19600,19554,19588,19592,19559,19583,19658, +19653,19656,19662,19655,19663,19657,19694,19720,19699,19705, +19696,19745,19733,19712,19737,19749,19724,19708,19704,19756, +18532,15052,14424,19154,17640,8425,17469,11624,2418,19475, +20893,17747,4572,17668,2333,14345,18264,13980,21407,17855, +18962,18963,15119,2565,6071,14393,6108,17894,20687,21273, +20781,5448,21556,20399,5519,5012,7420,3846,10071,3658, +18522,11590,12064,21147,5145,18977,8302,18622,20367,16149, +18810,13508,20549,12487,1471,17752,13445,1083,3292,21689, +15541,21232,3015,20584,19416,17858,18095,18994,6666,6112, +14668,2126,17496,14534,6175,2144,5452,5761,13567,6776, +7802,6485,5065,17355,16365,14396,2731,3971,11062,11320, +4332,6703,18275,17748,5595,4422,19714,19735,19744,19717, +19776,19695,19830,19834,19826,19854,19861,19869,19864,19873, +19891,19858,19857,19866,19886,19884,19876,19912,19919,19929, +19920,19921,19935,19937,19966,19964,19954,19950,19965,19943, +19956,19961,20017,19999,20014,20001,20041,20035,20055,20075, +20061,20059,20071,20054,20088,20101,20100,20113,20112,20110, +20120,20121,20124,20125,20137,20144,20149,20152,20173,20184, +20186,20191,20192,20195,20206,20198,20197,20203,20200,20224, +20218,20212,20209,20207,20220,20234,20231,20228,20233,20277, +20283,20292,20293,20289,20307,20332,20317,20319,20333,20335, +1772,15798,18815,9421,21176,8906,8850,16693,7179,20983, +13770,3136,9303,4270,8914,16896,15881,3432,1331,2188, +19541,8764,13127,13181,14834,939,19683,17499,2529,7864, +17300,16695,16806,5238,15054,1890,6782,8062,14899,20716, +14900,4031,6451,2326,14873,7813,8736,13451,3106,17470, +15212,16332,17215,4617,2573,15327,19014,11487,19164,3814, +12335,21456,2238,2400,21400,7185,12650,15417,21387,16472, +8207,13287,3947,20783,20252,21650,12887,21457,9849,7506, +2843,17126,10604,14426,1657,6492,12372,19628,3860,17838, +12380,14682,17947,14683,6861,6493,20339,20337,20348,20362, +20370,20311,20356,20363,20358,20379,20376,20382,20384,20386, +20389,20412,20392,20401,20395,20391,20427,20424,20436,20428, +20426,20466,20448,20445,20447,20450,20455,20452,20483,20471, +20475,20477,20468,20494,20492,20504,20500,20503,20506,20501, +20505,20517,20511,20523,20524,20534,20535,20543,20550,20551, +20538,20553,20537,20564,20566,20572,20583,20592,20602,20603, +20613,20607,20609,20622,20642,20629,20645,20630,20661,20618, +20619,20620,20672,20679,20670,20720,20705,20719,20699,20752, +20733,20744,20729,20735,20726,20730,20771,20765,20772,20778, +4345,21083,3711,17548,4939,12605,15866,7515,12780,19784, +21521,21313,16998,6799,19124,943,17217,11555,2431,4783, +21183,18484,18402,6643,17948,5296,11950,12652,11422,18708, +16520,17689,15611,21114,14239,12516,9020,6669,6908,5264, +19317,11063,17479,11139,17001,13038,2402,18046,15658,15152, +1217,2613,12890,14688,7578,19902,17612,17449,15554,18582, +18583,20824,19643,1640,3116,9520,11341,11342,14268,20595, +11324,7446,20262,21692,9755,10294,1998,11981,5817,16967, +21466,1013,1044,7915,20596,18837,6345,7603,10787,2353, +5988,6469,2245,17839,20302,14103,20777,20779,20776,20774, +20790,20794,20787,20791,20821,20795,20797,20811,20789,20786, +20796,20842,20833,20843,20844,20830,20836,20831,20872,20885, +20866,20894,20867,20870,20878,20903,20928,20940,20901,20933, +20970,20911,20917,20907,20958,20932,20968,20914,20913,20944, +20959,20912,20947,21025,21037,21032,21039,21041,21035,21056, +21055,21075,21067,21068,21085,21088,21084,21090,21086,21104, +21119,21122,21123,21133,21143,21134,21138,21154,21168,21166, +21175,21159,21170,21169,21162,21203,21195,21201,21231,21224, +21236,21233,21222,21269,21255,21243,21270,21251,21277,21272, +16933,20329,4138,20785,11597,9213,4278,19356,8464,7003, +21751,7695,1881,6817,21335,11347,20285,20345,14592,13110, +15428,20286,12608,14488,17956,20222,15431,3468,15227,17175, +7006,7730,9760,11892,18763,888,20415,6740,6819,19067, +19068,14244,13692,11900,12960,4140,15338,6438,21117,6033, +920,19273,7386,19805,7455,6826,4047,20599,17958,20165, +9436,14434,16535,2250,9702,18841,1611,20601,18423,4355, +2748,16537,2749,18639,2217,13693,19202,9229,2460,17556, +11810,6528,20169,19082,3473,20422,18433,4056,16108,13741, +17739,17751,1434,21092,14421,17816,21242,21249,21259,21253, +21293,21298,21299,21301,21304,21317,21329,21328,21330,21345, +21340,21349,21339,21362,21354,21356,21367,21368,21365,21385, +21373,21376,21399,21402,21413,21410,21409,21414,21446,21430, +21437,21438,21442,21427,21432,21480,21481,21489,21483,21501, +21491,21478,21553,21476,21536,21554,21537,21560,21567,21559, +21603,21582,21598,21574,21576,21610,21626,21638,21658,21660, +21661,21663,21668,21669,21673,21687,21681,21682,21683,21704, +21700,21714,21729,21723,21725,21737,21739,21754,21763,21764, +21773,21779,21766,21767,21777,23849,23850,23851,23852,23853, +12866,6246,17064,7055,6257,5909,6213,16924,16925,9888, +5946,4048,10251,12768,9563,3570,1394,14823,17309,4758, +21018,21024,18434,18435,2824,6691,16095,18964,18965,7337, +1068,6313,4323,2777,7355,8746,5066,8310,4842,16897, +1695,21184,7260,4692,16926,1858,16549,6554,3637,21600, +4696,19059,971,12303,11506,12266,5437,11508,19538,11382, +15005,6546,8747,6113,975,9506,11663,1425,19689,7261, +16033,10826,16927,19049,8332,2769,15429,6527,8484,1299, +20624,19863,4993,1942,5406,15591,18949,6006,16258,12432, +6893,4529,15390,5645,20242,20952,2817,6927,16768,5073, +11736,13984,12244,5322,2492,5276,11580,4342,5794,19576, +12420,1404,16107,18527,18539,20788,3641,17661,19206,8968, +19762,5197,15583,21221,7034,11534,11212,6933,12658,11087, +1806,14078,5526,20268,14336,3250,18312,8430,14942,18704, +18403,4538,12518,5745,8999,1571,20253,5586,19497,3501, +18883,16585,8008,8816,5766,8560,9118,6945,14219,16230, +8859,12385,8436,13064,6865,19019,8074,16322,13714,3874, +20491,9367,13976,18886,11451,13739,19654,12329,18155,16209, +16732,2260,2002,8640,21240,11843,8547,19434,18898,5413, +4419,21274,14659,1472,21509,4421,5776,12379,1572,10720, +3345,14502,8935,4634,15814,18811,2603,10873,6145,1346, +10424,10014,6777,5067,12371,21510,7298,17900,20278,7673, +5068,20174,7493,19246,18132,20717,14326,1696,1697,13408, +14327,2886,20176,21108,9174,20151,3055,2401,14275,15757, +12143,5343,17216,10735,7507,15213,5025,15461,3107,3108, +20993,6981,20515,4066,7955,11260,2972,20078,1255,20119, +9176,4795,2024,6998,14509,913,21334,5030,5460,14011, +20263,9889,19054,1135,2443,16301,21011,21392,1643,19998, +20308,3448,20159,18413,12589,14245,15896,16133,11672,5039, +7035,4415,19521,8851,8599,21161,18910,15765,2149,7649, +11867,11414,2717,18306,9599,13377,9551,19660,12452,19402, +14988,4787,12968,13961,12015,21412,14732,10637,16631,1416, +15680,5610,8774,8291,4710,18311,17528,7151,16346,21611, +10274,15519,1688,11938,2655,16889,8018,7496,7621,8158, +15919,17940,3386,15894,16104,14330,12852,21684,19976,3150, +3615,16818,18128,6267,5855,2242,8986,1219,12574,6206, +4899,4855,15103,14979,15952,18304,1819,5795,10869,17583, +10535,12546,1751,19308,10643,9399,1725,6406,9916,17230, +16303,19330,7964,5409,17225,20177,1540,4049,14772,18420, +18421,18003,10272,5151,20179,19855,1473,21105,4791,19995, +16865,15916,17039,2473,2482,17106,15507,21657,9606,14222, +13314,13224,17240,21495,8426,13225,2601,3002,2450,3847, +3604,17033,20400,8434,7068,2605,2783,5572,18045,15806, +4217,5130,15267,3137,16961,20555,15137,19192,8235,7508, +13630,2989,3187,10440,3491,13354,21522,15655,13456,2671, +6649,13111,13082,7727,20223,15706,4410,20148,16687,8677, +8427,2436,4549,19963,1099,12694,16183,18978,7490,10072, +10961,8825,3041,12830,21275,8201,15023,11106,21057,11297, +18241,7764,6273,14215,11967,8274,11620,5499,6066,3643, +20539,13427,18775,8898,9416,5588,7775,6680,14374,5440, +13542,20775,6851,17850,13120,5229,8911,16836,21640,21436, +16437,19585,14420,2226,15198,2419,7480,18044,18684,4314, +19728,17926,931,3687,21494,12378,11328,3466,15120,14658, +11122,20585,7428,20284,13097,8439,18397,20403,2457,7759, +7896,4977,16773,12844,8007,1155,3748,21768,1283,17700, +5054,20925,11767,21642,2919,12298,16349,6615,16445,16965, +5914,13307,8919,10791,16678,4540,1736,12249,1300,18670, +15815,12038,8306,11659,18816,7170,4238,4239,21177,13568, +21300,17356,2658,1383,20971,7280,1954,3294,8234,14753, +16008,2839,8063,11780,17432,1925,3222,11449,14754,7677, +13066,11051,7509,12727,16645,16473,7814,7080,11784,8208, +11785,10594,10441,9467,16286,13573,21677,13164,12651,3140, +21597,12238,20757,19636,4180,2973,19426,3712,20353,2442, +16156,15504,4940,21678,11951,2132,16073,13018,20441,3724, +15659,7089,10195,20156,1524,2692,10456,9890,15471,3358, +15153,17003,8997,7204,20861,13020,20862,12050,21601,9754, +20193,11733,16068,8242,17171,21052,3644,15349,7267,20915, +21163,8867,17019,6532,20057,9608,19333,5230,16837,4889, +12297,15404,18316,8375,18228,19160,20473,12514,14229,21651, +10098,4761,2771,6571,10724,13465,14311,6077,5306,11033, +17880,17541,15080,17610,8469,19177,12946,3475,2320,14919, +1581,1352,13396,1354,4301,4435,14769,6984,19377,6154, +16380,16673,5241,20698,8920,12330,18769,9587,12661,1156, +5100,10259,3749,10324,2379,3647,16136,11644,11456,988, +18194,3825,3951,8561,14177,14271,11601,5055,19138,2508, +14573,5820,18050,9924,19922,20840,957,18953,12300,11739, +1801,3148,8466,10022,15304,13083,13084,9852,4156,5634, +3303,1537,1538,8334,13137,4160,2746,7010,16767,19983, +11734,20864,9699,21021,2801,4107,16536,10252,10024,17179, +16538,9230,13682,17623,11811,15339,13500,7098,3155,21696, +17008,8990,8485,10025,3375,4660,15672,4218,5385,9291, +13735,10641,883,6982,8236,8781,8782,18338,10948,8634, +13458,10295,9366,4222,20863,18414,15674,3551,19279,19817, +2366,20336,5752,8493,19959,17665,3337,17924,4525,13760, +14185,8912,14742,16097,2420,3343,4315,11507,12695,10836, +13917,8913,12923,21319,6208,6336,12197,16027,14069,3338, +8822,3838,19108,9462,6312,5285,19881,10772,19369,9821, +2608,17651,12325,19076,2039,7604,11520,4068,12850,6939, +16246,17738,12761,17319,4861,18247,20009,4863,7132,9589, +4294,8280,12287,20879,13940,17268,2282,3060,13189,16779, +12965,12665,14172,1586,21246,8791,18851,11365,5102,12421, +10209,1077,11459,8179,13667,13281,2591,4874,10040,11748, +19204,10854,19285,13310,11243,14305,12967,18791,13694,1447, +3011,8255,15902,6725,21165,15852,13089,4888,13727,17723, +13546,6751,18086,11296,12799,7612,2679,7541,10652,19287, +13478,8936,3659,10073,3346,991,20688,4530,8907,18506, +12185,1322,5479,5480,12113,21276,13832,4324,1085,21120, +20895,18556,8683,18979,13256,14669,12488,4386,5401,8230, +7714,5684,10426,8572,13569,21106,20123,20972,14325,9848, +19768,14297,19485,6567,13641,20587,16285,4972,13260,21109, +11664,10082,20590,20459,9850,21518,6711,16333,2990,5869, +8609,18869,12216,12985,5808,11730,12493,5630,1333,10595, +12022,9825,13926,13847,7087,18485,17218,2876,3122,2944, +5297,19490,6215,14757,5028,21523,4941,16550,1360,20442, +19640,16551,8610,5492,20664,17108,12913,5324,7928,10719, +15231,6238,21141,8601,1401,14575,16633,19503,4260,10901, +19467,9620,15991,17148,4897,15172,19469,3621,17638,16267, +9275,19225,2953,7985,12693,16864,15028,7899,11532,12634, +1082,14741,2266,15812,19589,6539,1458,4910,16028,3424, +3201,18222,21664,3482,7335,16276,19292,5475,5965,12828, +4746,13765,17330,16359,2231,8568,12810,9006,16986,4322, +1246,12002,15858,10278,12028,17933,7251,20648,14533,13904, +11387,4361,1327,16621,6012,7066,9498,1212,7354,14910, +9309,19302,19755,15135,11007,3980,16990,9773,3135,10015, +19903,10457,7641,2351,21321,16529,6849,18033,20598,7728, +20465,1892,9355,4697,4470,9984,5302,14101,8613,6560, +18877,7093,21393,4392,19806,7533,6218,9405,12162,9700, +9703,10358,10026,3321,21095,9818,16546,3016,21726,1600, +9126,3025,18008,1182,1604,1607,1154,3034,1609,1610, +11872,11874,20695,2978,18729,13774,4513,14557,13897,2162, +5095,19546,18846,12617,20310,16338,16024,21396,3275,5997, +3276,4254,21031,2380,11694,2643,2409,21252,15559,16140, +13517,6726,3960,19533,11525,18793,7779,9923,18121,4168, +8089,19470,13386,3678,8045,18860,13479,8811,17917,9899, +6790,18134,8450,13932,21728,7079,11010,4493,12726,6265, +17608,6214,16370,19036,16626,15085,1517,6014,15365,13879, +18064,17254,5222,9523,6917,13488,6195,4506,11802,11079, +5393,18929,8916,9713,3265,18926,16840,20182,12111,19451, +9903,5049,5111,14700,10972,16036,2393,4955,1589,1022, +7776,7651,20091,18940,10605,8520,15760,18650,867,11504, +7110,5845,1116,8194,12545,9928,12921,5643,3841,20318, +18204,13238,19601,960,17932,1771,8970,19926,14747,4364, +2852,7346,14909,20431,11946,14044,10659,19239,20850,5974, +20610,16790,9719,15289,6729,5507,9158,1344,3256,8428, +1382,19476,21101,7935,19729,2984,15688,3289,19914,11945, +3485,15185,18326,2604,15643,14578,20640,19479,20066,4325, +5873,3293,16405,11551,18564,2762,18130,15319,3697,2606, +19915,15129,10690,5651,20481,14676,1935,2663,15138,4176, +3706,10285,2611,3230,13708,12888,17976,19777,18823,4338, +9873,14684,10736,6552,20408,15607,4409,1559,1562,9524, +19907,19493,10629,9573,15848,12757,14166,19560,13860,16260, +4814,8642,1684,17628,14411,19856,3214,6876,1191,8281, +1435,16210,8899,5703,14517,8818,20586,17542,10318,21750, +3151,5132,6598,12337,17718,21461,6868,21706,11576,18882, +15589,3326,14655,1895,2637,6931,8799,3502,9370,20309, +850,18528,4815,4950,18900,3314,9586,4292,1409,1123, +5818,13233,19180,20090,8543,17061,5581,10117,3920,11820, +4183,11582,19435,14925,8901,6943,14417,6681,3264,9910, +18784,17400,1442,2999,5673,6747,17758,18738,12025,8868, +4210,7137,11214,11052,20359,11868,5321,11412,10702,2555, +9320,5347,16709,20315,15274,20211,16839,21776,6946,4782, +20238,11943,11187,9954,21323,20528,15565,6332,3197,14146, +5053,6082,7036,6304,17702,16949,5718,11935,9289,18254, +2499,3995,10489,4958,16708,9272,7269,5346,1818,17024, +13518,17466,12627,13250,21096,21641,12465,9149,11651,19471, +1926,17322,8225,19380,13058,18742,10905,13963,1316,14743, +19672,20060,6311,8966,17325,17326,15059,15483,11301,16880, +13894,2835,21505,21647,18689,16691,17331,20019,13059,19367, +10874,2343,4840,9898,21306,6425,13062,10771,13063,17859, +3585,1529,18097,1502,20291,16409,20782,10882,9965,3384, +11013,18703,2046,8876,4755,11014,8939,9778,20154,2198, +19444,6999,18407,2206,20157,6522,19358,3419,1787,3901, +9268,9621,14832,2855,3837,3268,11550,9488,8969,7742, +19393,9001,8117,15060,19107,2652,7743,10276,8839,16639, +6762,13205,996,15121,4019,8730,11777,6072,2397,15262, +5284,855,11638,6020,3714,880,897,14908,5881,15890, +2566,12158,9460,2030,12411,12642,19238,1370,15082,3605, +11126,12188,8388,9863,12568,2856,7720,11960,13209,10317, +2082,3571,6013,7952,8453,18754,14004,12276,13875,1930, +6913,11565,16377,7396,11538,10575,6346,10031,19526,19664, +13251,19669,19897,16382,20910,12149,15515,2718,20239,5844, +16941,20162,9694,19586,18317,21721,10837,3376,4004,20636, +19871,4833,15711,12831,12507,2732,20129,2987,19540,19211, +12582,21727,5888,16412,10443,9242,18234,15575,20439,15418, +21388,17219,4021,15445,13412,2964,20079,4431,8698,15074, +2757,3234,20080,19431,986,20372,7599,12405,2244,19800, +9521,20194,18761,7601,15430,12509,11883,19069,18416,19070, +11745,13887,2747,18424,10104,11081,11082,11746,17673,7732, +14551,11084,18430,1587,14653,14692,9525,7875,5043,18856, +9897,3508,20527,3884,12504,13388,1081,20632,20839,1067, +10559,4961,11527,3807,14187,13116,16394,16658,10774,20514, +4934,4464,7027,12759,12853,12662,13426,18156,17267,1028, +2078,9189,1057,6413,8709,3921,7266,17785,3324,5427, +10852,11237,18914,3953,7703,18081,20732,9321,9145,15025, +18219,5548,17467,5824,8776,8417,13797,18606,16225,20122, +16399,19599,3237,10299,21498,10908,14503,15029,7114,20513, +9968,3588,1704,18831,3725,2636,4562,3128,18119,18466, +6307,9146,16981,2288,6622,18559,20756,7684,13499,14165, +13587,13368,964,5690,10683,11857,20039,17075,12106,4623, +13787,8869,14707,15230,1450,8369,9615,19584,17237,19143, +8806,2885,21551,4488,19590,16690,5966,5171,12696,10810, +13781,3688,15000,17028,18967,2147,14525,16022,16866,11918, +12871,13394,7481,12267,18653,19185,1092,4550,2423,17712, +3993,19967,12874,4837,1922,11509,17641,4265,8435,4172, +5418,19186,12925,1165,13989,13722,2336,11864,4662,20045, +18865,13202,12268,5827,6253,19156,8500,3809,18980,21043, +16987,5083,13782,6878,15380,8649,19877,10336,11639,16569, +4202,21515,11660,16003,14670,11257,5484,8689,10076,1752, +3020,5523,1837,12269,19757,15006,21762,1889,19483,3763, +7299,20649,14607,14671,15818,8307,15157,18740,5859,10610, +11656,14322,3131,11059,6361,2123,16451,16504,10911,11588, +20478,8061,8447,9871,17605,18063,6525,2877,6880,15233, +19161,20865,14554,15476,16094,17014,13753,19703,2641,18783, +17361,1786,19587,6844,2107,15068,11330,17768,7911,14030, +21331,11571,12328,16736,5743,12105,17759,17350,16170,929, +19670,1455,5338,999,7906,2191,17602,10000,19257,17626, +3504,3224,2251,16738,20904,11993,2677,16737,8579,2316, +2906,15016,1582,11854,6414,2821,12176,3279,18517,21771, +11645,4868,2330,18916,18778,15943,18213,2053,8562,18082, +12926,14535,15302,17994,20529,1269,6115,1489,14477,2784, +14583,1838,21279,2659,20096,12522,15918,12927,4925,20385, +10859,12879,4926,9645,19969,12270,18447,1180,1794,7803, +5420,14817,20753,11448,11683,11779,3698,7256,11473,15440, +14409,18866,14939,8937,8551,1296,15921,17713,6259,7678, +2633,4405,5315,1753,14587,11421,5877,19165,8506,21107, +2708,17365,15922,11389,9448,6972,19769,17908,13724,21753, +20984,14226,2664,16991,17714,13571,12271,15820,21181,6292, +11308,8854,18571,17157,17209,17770,8507,2108,9351,7073, +12334,13871,11101,18752,19120,5685,8722,20058,1309,15037, +12864,8953,9061,18939,15681,13532,13153,17727,4611,2308, +16323,2720,6333,3199,20064,9003,4320,9472,21377,13117, +1466,15125,12951,19371,8020,13100,2688,2844,10002,11041, +15741,6714,14842,18244,16385,6228,11267,8646,15315,10475, +9063,8115,9297,19730,2267,17029,16568,6834,4317,13520, +13617,6116,15731,13622,8618,21353,12035,12992,14874,12786, +14975,2136,4727,19859,11454,11163,4164,11108,5498,1585, +16600,6010,16383,9376,5101,14798,10208,10326,18441,14985, +4227,10038,10853,10648,17980,12057,16138,6230,11269,7970, +963,3917,19512,14087,8662,12931,14947,11640,3812,5979, +13947,14678,8765,13411,17437,20591,17797,20187,15627,3261, +5575,6279,19375,4009,10504,10925,9292,16298,17646,20030, +1334,15144,19778,2189,15882,1850,5980,7282,6263,8347, +4756,2170,16287,20995,14957,8348,6468,19685,15784,8938, +21458,10568,17715,13230,14452,5939,10569,18654,2790,20305, +8209,17303,4271,10814,12570,9512,12067,13948,2532,5239, +9565,15596,1733,21286,20718,15979,10183,21732,8328,2315, +19847,7369,5177,3817,15577,2298,10597,8737,10087,12277, +10447,9518,13017,12144,8362,11261,6534,16432,9921,7238, +20621,19092,6724,21164,7141,17873,6748,15561,18083,7586, +10124,6392,18084,13899,15108,16713,9147,16392,21434,8342, +2080,1190,16848,10940,6577,21228,12689,16857,15027,4026, +21416,12342,14482,5143,4601,3099,14423,5644,10407,14846, +17587,18224,11174,7664,15064,6625,17892,12169,7338,17990, +16660,10909,18389,13207,8732,14351,10821,19301,12599,9642, +13902,15301,6858,1477,17791,4969,15487,12077,11303,6632, +19303,17430,9240,2032,6340,10660,6594,9798,21179,18750, +10430,17967,5129,14822,14953,14196,14320,15925,2193,9175, +21733,12219,977,12278,17307,18149,21369,9452,854,8783, +15330,9054,4034,16521,2928,21524,20759,1348,11791,21636, +2965,15422,3910,12729,12936,21389,6991,19785,7914,5632, +10845,2273,15758,16918,9802,15578,5559,3262,14826,20663, +10448,11040,10449,6452,1659,5046,9164,8749,4551,16762, +11537,16300,6399,3563,17164,17165,6866,9851,4451,10981, +8575,18450,3609,9804,5835,17255,4081,16011,16414,16288, +5031,13848,7090,4348,8510,20665,15660,20344,6435,18486, +4105,17109,19641,8766,14479,6646,16479,5032,20532,2112, +13167,14545,6217,8983,11953,13078,15179,9567,3440,20406, +9743,13878,12585,1522,6030,21464,5990,17616,19322,19978, +4719,6061,1107,11143,5740,3477,11110,19528,2411,11846, +12880,12883,16804,9865,12889,6549,7441,7440,2977,18191, +16739,8086,20235,18782,4397,7235,8035,3328,6309,12082, +1886,9557,13387,17410,15683,13640,8965,16347,6583,10410, +2870,6627,13401,17094,1003,5453,15320,10137,17159,9971, +8327,17609,11205,15222,9110,7121,6759,16053,20957,8651, +20883,6948,4250,2176,16988,8319,2257,8033,11909,11090, +4909,1464,19811,2377,14901,4577,18246,16735,19701,1410, +13079,6297,15951,21624,6555,18714,11263,7523,4089,7516, +14960,8984,6381,17949,20606,7821,20666,1560,21050,21527, +17773,18655,10949,12029,865,5072,12938,10928,2113,3302, +1218,17111,9756,15284,8587,18584,18718,11898,16614,13825, +15510,15285,13021,5300,14916,2929,1863,12051,3273,1397, +14048,5178,21528,16699,19260,6677,15790,10162,8576,15250, +14138,15075,16302,5225,20722,20723,9293,19055,19905,15523, +11796,16968,7262,5266,10694,8350,15056,21691,15286,15287, +4759,16553,11489,10388,15288,11982,21680,16047,17777,5656, +18002,9805,14721,10766,11405,10623,7921,21540,5700,11850, +19563,14980,3278,21118,14174,13145,18195,13703,14730,9784, +7608,12424,2141,9554,12448,16195,17193,15255,3676,16433, +4281,8047,1655,7786,2263,1454,2174,11911,1024,19925, +15854,16794,5449,11329,12345,899,12434,2567,9500,18229, +13027,12412,2295,9389,20474,16902,14233,1512,11757,10674, +14853,5047,5042,4859,11903,21497,7761,8395,1222,20180, +14987,4988,21639,18924,11904,15343,17402,6457,12366,9483, +12697,8728,21366,1966,20962,16799,1036,10139,14227,1627, +3075,20460,7215,17339,14920,19544,21130,5243,16245,8921, +1534,16530,10165,3611,14036,21625,18838,10462,8767,13022, +3183,12656,2303,15472,10788,19385,2246,4760,8071,1644, +14827,10315,17801,3090,10234,20160,7530,2038,9529,17131, +16935,8635,14869,1388,20487,12897,2488,10467,6470,7094, +12591,6820,13023,12510,9987,14102,17802,17315,2489,9025, +14965,10167,11598,6651,12422,15226,4507,13112,13538,18489, +15473,17392,8471,7642,21744,9892,13169,9336,4139,17656, +20136,7007,7452,21053,3593,18153,19347,4118,8472,11899, +15705,12610,15822,15823,20499,3893,14246,8558,7453,4644, +15228,10390,8352,6823,19807,9762,20008,12248,14725,5140, +17567,4872,21135,4873,2823,3327,8834,6001,7587,5351, +17408,15631,10062,12774,4584,14283,5797,4215,14712,10178, +13593,16274,21493,8729,17329,15641,11201,6766,14935,1597, +5417,21379,11252,7937,20690,13903,5214,9496,18989,7353, +1692,12388,10778,9390,11322,14057,17545,9872,20294,7553, +12958,13076,6551,21699,18526,6977,2858,20111,19363,3877, +6937,16431,4653,11242,8408,8672,10212,3753,3334,12530, +11244,7239,4402,5400,17813,18160,6187,18549,10655,16980, +6690,9767,12703,19234,12702,6395,9040,18325,3100,16279, +21468,13085,12901,21472,9404,1541,15824,6562,17553,4207, +5871,2491,8337,4698,3304,19073,921,21609,18136,3819, +21292,6196,21394,7016,11691,6135,6924,13263,1710,19275, +9027,11838,17842,7534,7535,12961,2134,21023,11231,9541, +9407,7018,21695,8949,14276,12230,9139,4052,14918,2997, +10529,1652,1281,10391,17226,8888,10253,4356,10359,7536, +9232,1872,7394,18640,2218,17345,7537,16947,5664,2023, +11812,9438,3156,13502,12070,10633,21697,10553,20196,11814, +8486,15529,21220,9233,13985,18463,17706,1265,17711,10811, +18146,20953,17150,19675,12711,2272,2396,8198,10879,19615, +19927,17097,11610,904,15493,7913,6636,19248,3186,3081, +17969,20484,12584,1997,13484,10450,1528,20161,16609,16463, +20070,15549,16778,1613,12764,2098,10698,9593,12289,11196, +18594,13941,7398,2802,2497,3062,17397,4543,12003,21248, +11530,20922,20608,10211,8148,12468,10328,17078,17401,19462, +20886,16180,20799,10043,5430,3652,9601,16142,2464,8658, +9346,18143,13696,20930,20627,5678,12625,15873,9082,8151, +6479,6185,6755,7781,10533,8368,927,17852,4526,5549, +4900,8420,21550,15259,10057,2806,4679,4027,12974,20547, +20973,19237,6634,21516,1851,15522,13815,1386,10153,6556, +9136,2215,2283,2284,8140,1025,3852,8457,9901,11080, +10975,10700,14844,14209,6889,10976,18265,1460,5967,1461, +14188,8557,8650,1367,6254,13953,14039,17204,7492,7344, +11278,17066,14877,4006,20342,11616,20402,12186,17115,10077, +1599,1490,13954,6119,5615,5291,5260,4445,2840,6275, +5721,11282,14113,9073,9304,10477,15862,14156,8237,19970, +19971,2239,13523,10019,2274,14137,9074,18235,16578,18280, +4346,6841,19786,16579,6280,1231,6281,13525,18611,16581, +1168,944,16415,19129,9095,13632,10614,2923,9817,5862, +7484,3690,8197,3119,14448,11553,20321,9795,9239,7065, +12444,8260,13347,4096,2925,2451,10476,2125,8259,17993, +10914,19300,20651,4614,15322,15247,17594,5196,3178,5216, +14912,1693,13808,21178,17593,7912,13029,12645,2768,15496, +21182,6370,5131,19973,13279,16159,8455,13103,13214,10381, +21740,16907,8238,19898,9394,18282,10005,1879,2130,19482, +1001,11363,3129,14254,15742,20043,9788,12402,3379,7059, +1714,19028,13751,4298,5468,8675,10330,20889,18936,20677, +6330,9607,18546,14648,20936,13549,10402,20580,11726,16329, +9210,4022,13576,12241,15738,11797,15335,8577,6129,13634, +2904,5619,4012,12782,8959,15512,5621,12401,8621,17058, +6821,2247,12283,3499,6561,15337,16583,16584,5952,8563, +4018,6768,15321,6548,9368,17659,18890,20900,19087,18454, +3986,4291,14456,12134,5157,20036,20871,12286,2461,4295, +13428,3645,10110,16135,1737,4228,14729,4229,4374,5747, +19548,8517,13121,17707,2949,4997,17081,14208,14469,12564, +20703,17276,3514,12136,18950,4127,10581,19100,8189,2415, +10403,14471,17239,19105,21227,18473,13777,17091,2696,18378, +19106,19591,3602,16348,11774,4128,2986,21504,3121,10442, +9976,16496,7315,12993,7273,7113,7056,8595,3581,5084, +7431,20175,11970,10045,1921,1385,20306,12353,12556,5038, +9111,5136,6037,15401,5210,20272,17633,20010,5770,6084, +20140,10855,19707,2307,11695,12679,14495,18678,2339,18370, +6688,1888,5927,5757,17935,8974,903,11306,16089,18065, +18630,16938,11575,1341,14641,8928,18792,20935,21488,5060, +7933,20710,9170,13393,6962,15454,5020,2163,7149,16953, +3624,19618,5457,7950,13521,7466,7597,12446,10832,5503, +16749,5550,6959,8305,7340,12362,8661,13151,15258,1110, +959,7741,5064,18327,6697,20046,16797,15489,7171,3523, +995,17040,19188,13991,13704,9966,16060,3586,12314,15187, +19770,17250,4683,11687,4388,6992,3528,19195,20999,10262, +16936,9658,9665,6141,20812,18968,13203,12875,6543,5454, +8379,6341,20103,19629,2737,15181,5989,6909,14852,5655, +2797,20106,19384,7002,16929,10197,9526,11556,18027,20108, +7099,7100,11492,4810,14081,11466,4663,12076,20020,2660, +18448,953,11006,3764,3486,6337,3813,11478,2429,20343, +10083,12653,21110,6266,20409,19125,21290,16101,10088,3973, +19252,16810,10094,10095,6268,19130,5288,1878,10868,11430, +3202,7485,14018,14748,2314,10473,12604,13494,12415,3506, +17140,2860,3925,18199,19099,8727,20022,12557,2649,7669, +4028,3851,19514,19862,5854,19945,16652,13785,6606,8013, +13913,15374,5373,21397,11498,18542,12948,10213,3959,8549, +10329,7290,14439,21140,21775,5566,20676,13467,20804,8038, +5681,3963,18217,8870,13987,5885,12367,20706,11095,16096, +10611,3247,12101,16275,11759,7988,18225,4603,19607,21584, +3904,7487,3120,11561,11177,16217,4331,14816,2525,19352, +5290,10501,1715,15606,20991,20371,5534,11020,14059,14201, +10737,10738,20051,10196,11049,1707,16812,16531,9099,16969, +19060,3449,15620,19808,10235,3360,7095,12079,18491,16420, +16421,17059,7222,11050,11029,9408,9706,6925,890,4645, +3363,10254,10105,923,4765,9708,1259,6160,6161,6163, +1774,13244,15712,20650,2476,13296,8066,8069,15714,4588, +11180,1271,15759,6824,18721,3885,2124,7345,13766,3625, +4077,16798,13767,13208,11865,19189,13981,11512,11390,21690, +1181,19004,18625,15574,1133,7754,6260,12114,1754,19123, +5293,15576,7081,940,6171,5402,12832,15842,19354,15180, +15785,17998,8788,1379,15334,20498,9753,10018,19566,16856, +18746,14151,17644,16909,1616,13986,8308,15069,1634,1635, +14723,5450,5483,6380,4612,6983,9203,19569,12152,10834, +20393,7981,11680,10134,18868,18458,16430,4165,13050,14569, +6329,21258,17982,15353,18680,18470,16792,5930,10984,2334, +18383,6365,19751,16364,4097,1227,17936,1552,16077,10120, +10781,14265,20072,19010,19782,4495,15215,17256,8474,3169, +1612,3536,17897,16911,9592,6415,8077,6422,4586,14611, +14982,17142,20881,13436,6418,4886,21774,11056,20800,3010, +20631,15769,12704,2179,17037,21454,16997,13679,15588,15434, +1525,9096,9140,17615,1196,4365,13357,13358,6130,13136, +11480,7371,3610,11966,15555,15336,17551,12052,5303,1535, +9100,15474,10297,5791,13113,18009,7011,7390,7563,2258, +3305,6440,17263,12905,4053,16220,7395,9234,16390,13768, +4933,10965,13602,5294,16474,13133,5940,2327,9097,13856, +20083,14356,16482,5301,1136,15556,5426,20084,5205,1536, +16485,6825,4050,16221,4054,4890,8141,17160,17600,17168, +7004,20102,9381,12220,6650,19258,20086,12226,949,19131, +17372,6441,18676,3888,13285,8967,17384,14890,5907,17822, +18817,17825,5557,15053,8995,12712,4126,7271,6753,11920, +13757,18519,21565,13612,12877,11279,15595,12819,4132,10884, +10988,5185,11762,19698,3280,18018,11199,6940,5139,3478, +17809,2368,4167,18197,21431,1547,4734,4450,894,9617, +10215,20349,15907,3654,9112,16143,4896,17709,10809,17087, +13057,20387,3966,11586,5312,16662,12811,4129,1325,3905, +2438,21121,7807,3703,17995,1574,20589,5806,14045,13298, +13481,4154,3590,7560,1933,11024,1871,8592,20896,4946, +4976,17807,11167,8792,4158,11197,3369,14491,19829,18799, +15174,21569,2561,11419,9171,7417,3691,15261,18169,11706, +6009,19758,16259,1148,4174,3631,3385,12066,12538,10113, +2386,8065,9449,6123,13070,4339,4272,16475,7815,9091, +14427,18828,18829,8697,4116,1603,12457,9450,15808,7283, +15957,6800,8980,7284,10606,15883,2483,19344,19996,6379, +5985,8028,16062,16063,12436,9177,16064,21529,21530,2930, +3912,9178,15424,5986,12891,8699,3212,8103,13184,18833, +14006,15663,4275,4351,18283,16608,8611,19395,21315,18284, +17257,17672,18876,19934,14049,3726,3727,7579,8960,9456, +9337,12407,16227,10740,3149,18588,6062,13114,5562,18135, +18352,6827,2259,13888,11031,1711,15177,12348,13946,15083, +8978,10880,8694,11310,12403,2481,8619,9978,5538,15835, +1439,13591,15719,4523,20678,14324,16281,16052,4887,5168, +5505,9636,18330,12311,9241,9517,6997,20300,6095,5653, +8353,7872,5041,18847,12499,20520,9896,16021,2884,14176, +10974,2146,11916,1913,15375,8289,1162,12914,4545,8648, +3989,6877,1091,19716,20738,5508,8678,12520,1887,1824, +19960,11463,15437,3754,14904,14650,17986,15298,1453,11652, +12262,4194,8660,9349,4403,19507,2516,7275,11587,18651, +2470,3808,19104,8564,21173,15877,3915,6459,13556,5876, +17264,12442,10360,10008,11813,13586,15879,8094,12541,19337, +19394,9455,4735,3916,5571,4927,17069,20437,1626,13993, +1086,15360,9939,5576,17999,14300,8330,1637,14963,16483, +18488,18586,15077,8578,14061,4471,10166,16971,10198,12396, +12397,10169,1647,1648,1649,9894,1650,14104,4766,17778, +18464,20425,14940,18572,10142,4579,4473,4599,14565,1965, +6951,3900,14997,16128,20397,16098,13769,19746,8382,2654, +19190,4531,4532,15237,19187,21280,18819,21782,1491,7834, +15550,1248,3026,15828,15007,1249,14672,4241,5895,13771, +15755,7679,7281,1755,18573,15923,14128,15803,20746,14080, +2706,15463,958,13867,9325,9162,15594,8762,20304,9560, +5234,4266,3258,10564,10179,8556,7421,9285,13227,8202, +853,13008,11947,1347,3559,8733,9043,5556,6864,12140, +8360,15411,21512,13161,8574,14948,4335,2109,15071,6547, +864,10312,13015,4636,10923,11397,5292,8349,11488,10147, +19015,7258,1698,1633,15470,10784,10619,19381,21679,17997, +3607,2199,8460,12588,10383,4135,9209,12607,3152,13019, +3591,6912,21467,19056,2133,1646,21046,14418,3241,20974, +1415,21546,11374,14765,10495,6956,4835,9284,8687,13733, +3027,17366,18510,8385,4406,9387,16898,1799,11629,4341, +1891,8535,4010,15145,19630,16905,18580,6847,5870,14685, +7517,21390,1756,17308,1928,18709,3442,4594,20485,16522, +5633,4347,11931,20081,6382,6647,6807,7372,6298,914, +15509,4665,16526,5535,2114,15055,15511,1864,5203,17055, +9021,10163,15076,15581,18719,16554,11344,15513,10752,1530, +19803,17776,7916,14037,9026,21336,14247,2672,3450,19071, +7008,13700,2490,16534,17373,20416,4666,5899,11030,18425, +11351,2219,17374,10634,20170,11573,3896,16112,4230,6090, +9386,16838,3999,8523,5861,5520,20691,7184,14094,11721, +5035,13681,5704,7659,6048,16886,12515,3831,6423,19398, +8112,19824,1241,20704,5472,3927,10332,13472,2559,14931, +4383,20954,5567,17765,10534,1833,9491,5521,19748,17205, +15644,16755,11192,937,1291,2960,6369,4336,3023,10924, +16807,18627,7365,19254,20615,10194,9882,7638,8164,19794, +6437,10459,5662,11619,3879,7734,9595,14217,9602,19463, +5105,8676,3401,20365,12120,21260,17961,7243,18179,18803, +20960,9324,16796,3239,17202,14129,21206,4635,5554,16460, +19681,19555,3380,9123,19000,6290,2159,10311,7302,14070, +18693,1839,4682,1847,11684,1503,1854,16010,5911,4595, +7373,945,918,17170,19997,4699,12428,17653,10687,19747, +4774,5973,3699,16153,16129,2607,18096,21281,20822,12159, +17670,13783,13992,20049,16573,20851,3405,10478,19486,1848, +1251,8440,16155,19005,13448,12567,13452,8080,12523,20530, +19846,12189,21151,8316,21287,11906,8210,12274,20181,7313, +10084,20692,15346,5026,18511,14608,1509,16157,16158,15009, +10148,10709,12375,15579,21000,13820,15610,3972,18060,13536, +14401,8081,4407,5896,1855,21185,19126,10663,21111,3443, +5897,10156,8240,15046,13185,10815,2666,11394,1149,7076, +6640,1632,10642,19342,20390,10225,19194,2712,1153,9179, +19051,3771,12339,3728,13497,18959,15040,16830,13309,21398, +1570,18602,15797,4007,8688,19621,18055,8314,19684,18730, +2131,11500,13756,7880,10956,12063,3453,7248,5252,8752, +9722,2524,9769,7419,1656,2809,15693,1486,8203,4190, +3269,1330,1250,10503,1576,9201,2634,20605,13048,13883, +12069,18173,17810,8498,3216,7877,9415,21547,2362,14999, +6863,9359,15520,11990,10288,7576,11895,11410,3844,3882, +3374,10065,11824,5826,9015,1010,15408,5903,12684,6005, +9294,5987,16012,17950,16081,8538,4284,2549,17693,15012, +10458,21370,21116,14357,12376,9057,15582,9165,21602,8739, +12738,12739,18408,4596,14062,18409,5304,18612,16815,12383, +3091,12384,12942,4597,6652,12940,6869,19648,15666,13537, +17113,21604,8985,13851,14964,5578,16163,5735,15078,12900, +2541,21015,10168,12228,15614,16972,2044,4045,18417,19908, +21655,14063,14248,12751,21019,14856,10468,16973,10626,20488, +11407,1046,1973,1651,3092,13461,1542,21020,19810,17841, +6471,1802,15154,17462,9989,20467,4157,10172,16165,2087, +3773,7643,15825,18426,10635,20418,7794,6109,19336,8684, +5972,4340,21311,11792,10739,14047,6060,13886,12441,6320, +12916,13374,7107,2156,6686,5310,10996,4898,12296,13942, +17238,6017,7856,5377,3991,19182,2558,5905,5476,6104, +9629,19474,13657,20366,13344,10068,2469,19536,13320,7277, +11589,20961,14936,13444,15859,9087,12705,7619,18477,10839, +14450,20562,14296,16721,9499,2782,4923,13007,13259,12722, +16895,19767,4591,5867,5834,19003,12313,15783,13570,16236, +9290,11039,2942,13813,11562,4936,8979,8696,5024,15073, +19627,19488,10289,13410,1557,10843,13217,1011,10763,10822, +8003,19078,18722,16131,12429,21158,18431,10255,10485,15619, +17346,7226,14862,8249,16976,6529,9544,1653,13779,19096, +1617,17678,13176,21577,15116,8972,14854,16446,16454,16455, +19609,5146,18981,980,1272,1332,3005,15673,13071,8858, +16074,5357,12373,19644,15191,1867,17455,12096,1868,3235, +11348,9893,10298,17459,20178,15675,1723,8889,10361,5192, +13128,8652,13118,9338,14073,9041,3627,4573,17771,13659, +3435,9050,1716,4429,12275,4455,15697,1274,1510,10844, +4937,4389,13821,13454,5389,9092,12221,21297,14301,15271, +15700,9666,1718,15703,12224,15035,10680,19901,16916,2574, +15503,12087,14687,6645,2037,12394,15506,16923,17391,21049, +20486,14840,10846,12223,6813,12049,14242,6918,11042,2205, +9759,11229,9536,4083,13501,4805,19244,13301,17129,14647, +21197,19577,7044,4059,6950,7405,20544,21549,6419,13313, +12521,3288,14472,20240,5434,9625,14998,15778,7245,1548, +2562,8808,1470,17241,18269,13559,20749,8502,14666,5183, +12008,14294,17474,13295,20248,13159,21283,13970,12930,16185, +1498,3382,8780,19843,17431,20658,9014,6637,6293,5423, +4618,9657,1514,2612,15150,11227,3982,10451,4104,5763, +20760,21605,14896,7447,4223,6384,9133,12750,9761,20696, +12229,10711,14023,10754,10755,14112,17843,9947,12902,12903, +11570,9101,11839,1724,13683,4000,4008,11617,6282,17056, +4014,5947,4015,4016,8125,19818,19819,18404,4974,17655, +5734,21606,10199,5737,14269,10962,12713,12714,5050,17829, +19793,16065,12655,9838,5117,12398,1539,12752,17840,2759, +18356,20419,19594,3510,13723,7804,1070,6261,16130,3632, +7116,19631,4274,13162,14135,5994,16100,11398,7866,14428, +1167,19896,12315,10379,16574,6375,10338,20097,4559,4687, +11513,19489,12382,11337,6127,17107,3772,20134,3576,1876, +9183,21155,19571,19578,2683,17032,11770,11922,2865,14181, +18854,1420,21040,1164,4571,5307,10334,21205,20241,16879, +14295,16462,11038,14704,2036,2691,11026,13175,11750,7247, +13405,14132,1532,3601,13042,15263,7812,15467,16915,17146, +11092,1063,9627,15802,16876,21502,1992,9964,21632,14028, +6294,20133,3024,17860,13844,13420,7600,5323,7173,18934, +10064,16877,21284,4615,7434,12364,6125,19046,11107,20846, +12718,12778,18581,3553,4834,13459,8114,8200,9937,21511, +20147,11557,20604,7544,2628,3883,5106,21144,18802,5482, +13455,5912,12279,10089,16160,1102,13413,12495,4942,1520, +7201,16523,8211,3791,1856,19491,5810,12317,11718,17690, +15362,1276,5029,20354,8321,5490,14590,3936,3352,15309, +7822,14759,6316,17370,4390,946,16416,20558,21186,19216, +9941,10664,15935,18834,19050,1773,16480,7636,8828,5730, +17169,5298,6734,9354,4945,8665,17774,4206,8511,15664, +11179,14302,20355,15272,13186,19645,11630,20597,5811,5358, +15096,16725,13415,14202,12572,6602,15789,9569,14139,14140, +8666,11025,2538,9527,21659,16930,19427,14403,21531,12742, +13262,17371,11631,2966,7216,3795,3133,16151,17152,11317, +20897,18395,14537,2531,16009,9447,9053,12133,6378,15657, +17861,5889,15508,9335,1893,7729,16934,8335,9571,18073, +14598,3244,4159,13304,18021,3145,1679,1264,15297,7412, +4832,13000,20847,4836,14189,9637,16150,7253,1874,15356, +8994,13061,1487,17247,17151,6967,7620,9823,7180,2975, +6503,2610,20994,3743,1849,20855,7510,3861,2857,21066, +8266,4205,3233,12374,13846,11793,12047,12654,2799,8465, +12609,4503,3147,21210,10023,2214,9946,21694,17625,20906, +3785,11388,17767,11402,12320,6354,8424,14257,5478,21508, +13168,5561,21129,3938,9166,4598,11667,19061,9058,10463, +8165,2276,7998,10598,10099,21653,9530,11043,21607,21016, +11722,6400,19649,3662,14546,14405,6603,15667,6299,17695, +21193,9137,21608,7205,1564,1565,6604,13581,20281,16375, +16376,19650,2946,13852,3865,6653,9807,18344,13360,13361, +7448,1399,4353,18490,5036,14007,7383,17072,16178,6385, +14693,13973,17957,16555,7387,6063,16700,12091,14064,10170, +10696,14594,14547,5622,21534,15616,15312,18589,5305,19396, +12945,12753,16556,13974,14410,9763,1017,9385,6716,11290, +7223,15792,13462,7391,14406,10756,5384,15136,20992,21555, +13289,8057,19593,9638,16570,15863,7181,12161,4592,14157, +19173,889,17316,10717,2448,8262,1228,15781,21517,19166, +19686,2991,16670,11164,19878,16164,21364,15244,8371,8204, +10662,8331,2743,13305,10537,16808,20153,11424,1045,10161, +1338,17652,19480,4558,1100,12489,11717,10337,15093,5017, +6314,15357,5722,7810,16468,4387,7182,7624,17367,18098, +5356,9513,9742,7363,14589,15787,5809,14136,6597,7186, +13261,10090,21652,4593,9055,2275,5560,11666,11719,3792, +14543,21526,4718,3862,4349,13355,5033,6648,1561,14060, +16975,13418,1664,7224,7220,21211,7564,13363,21316,19390, +20489,8636,18035,1667,19813,13463,17393,1803,7700,18109, +15155,6654,21746,14251,14252,4474,5792,9991,18110,11195, +17005,20303,17344,4720,5624,6317,8883,20282,14065,20420, +5135,5793,14489,9574,2304,9410,14791,922,13889,7225, +17916,6442,14793,9707,9949,10668,11232,20668,17375,4358, +10362,5666,9545,17181,3509,7111,16099,1069,6117,19484, +20351,1840,12310,8663,15924,20279,6315,8873,20352,8508, +19425,12730,14402,1396,2302,15661,16552,16372,13577,7558, +12088,7377,16532,16970,6439,5134,1015,12740,15310,5620, +18585,9384,1663,18034,10753,11288,19386,5790,14249,21745, +9572,3296,18449,3298,13102,10751,7376,8214,13849,5425, +1337,7862,15955,8827,5493,3661,6296,5295,8700,1526, +10296,12841,8887,1721,4051,10966,1087,18336,9837,17442, +16335,2578,17363,18398,15829,15557,19389,1618,9044,10842, +13661,15786,7194,21525,17772,13578,8124,1722,6563,9948, +11335,6712,11068,7115,8509,21235,11070,12745,1016,14361, +9990,3356,2849,19516,17112,18762,13460,4046,9532,13280, +1989,978,4693,19542,16726,18357,16943,13414,5913,20330, +20417,5635,11751,18867,4928,9646,8121,1900,18390,4891, +3787,6968,4792,13905,5114,14538,4793,11309,1252,19844, +20823,6433,13212,4845,4688,16575,7364,14541,19779,4811, +18537,8451,8452,12336,6519,20721,1254,18399,18148,20784, +4552,4794,16576,11978,3353,5261,13874,10091,11223,4938, +16161,11262,9659,1578,21001,5262,19848,3031,13483,17443, +2575,3444,8212,18610,5491,21048,19787,18451,19788,18150, +15821,19789,15736,19253,4117,16698,4391,5577,915,20825, +18406,6193,17450,7285,9942,21187,18487,15662,6269,10453, +13880,11425,5265,13725,7637,17775,22349,22350,22351,22352, +22353,22354,22355,22356,22357,22358,22359,22360,22361,22362, +22363,22364,22365,22366,22367,22368,22369,22370,22371,22372, +22373,22374,22375,22376,22377,22378,22379,22380,22381,22382, +22383,22384,22385,22386,22387,22388,22389,22390,22391,22392, +22393,22394,22395,22396,22397,22398,22399,22400,22401,22402, +22403,22404,22405,22406,22407,22408,22409,22410,22411,22412, +22413,22414,22415,22416,22417,22418,22419,22420,22421,22422, +22423,22424,22425,22426,22427,22428,22429,22430,22431,22432, +22433,22434,22435,22436,22437,22438,22439,22440,22441,22442, +21115,2576,10665,6194,11720,4285,10538,7286,7206,16013, +6521,16177,1902,16724,8351,19801,1865,8539,8540,1398, +16931,8541,8241,15980,7997,15665,4276,4277,8915,5539, +16766,14404,9180,7693,12068,10464,12323,14763,4948,948, +21469,12227,13416,12898,1293,3796,10465,13635,7381,8243, +16029,18152,19850,12743,9531,18720,21371,8784,4246,9059, +14481,12744,7999,19062,19063,8000,21532,9167,3939,12657, +2967,5345,8215,8467,19064,21743,7005,14828,14829,2673, +11194,13853,950,13362,15668,6386,15669,4354,7758,10847, +4949,2947,16014,18345,6133,19909,22443,22444,22445,22446, +22447,22448,22449,22450,22451,22452,22453,22454,22455,22456, +22457,22458,22459,22460,22461,22462,22463,22464,22465,22466, +22467,22468,22469,22470,22471,22472,22473,22474,22475,22476, +22477,22478,22479,22480,22481,22482,22483,22484,22485,22486, +22487,22488,22489,22490,22491,22492,22493,22494,22495,22496, +22497,22498,22499,22500,22501,22502,22503,22504,22505,22506, +22507,22508,22509,22510,22511,22512,22513,22514,22515,22516, +22517,22518,22519,22520,22521,22522,22523,22524,22525,22526, +22527,22528,22529,22530,22531,22532,22533,22534,22535,22536, +12365,9060,10932,6387,19262,2887,16816,8246,3940,2018, +4574,6388,19274,19910,17177,16615,14548,6158,2800,15514, +17114,13975,10171,7096,5494,7388,15251,5992,3035,3036, +19074,18638,18418,7012,9695,15739,8814,15628,15629,19075, +16015,10695,17460,5206,15740,2435,7097,16049,20617,1018, +18614,18764,11983,2674,21022,10200,19391,10484,1543,14859, +21474,19651,16727,8480,19176,15433,14966,7644,19079,6472, +1544,19278,15156,6655,4509,7645,9895,18427,5208,8169, +17227,17228,16016,10723,21747,19814,19280,10472,16050,17229, +18028,19081,12356,14792,10631,16945,22537,22538,22539,22540, +22541,22542,22543,22544,22545,22546,22547,22548,22549,22550, +22551,22552,22553,22554,22555,22556,22557,22558,22559,22560, +22561,22562,22563,22564,22565,22566,22567,22568,22569,22570, +22571,22572,22573,22574,22575,22576,22577,22578,22579,22580, +22581,22582,22583,22584,22585,22586,22587,22588,22589,22590, +22591,22592,22593,22594,22595,22596,22597,22598,22599,22600, +22601,22602,22603,22604,22605,22606,22607,22608,22609,22610, +22611,22612,22613,22614,22615,22616,22617,22618,22619,22620, +22621,22622,22623,22624,22625,22626,22627,22628,22629,22630, +18842,7021,20267,19652,20421,18723,18492,12357,11840,6443, +11083,19281,11032,3640,19985,19815,9439,1903,10363,6162, +10256,14863,19988,19282,5665,13503,9546,10556,14518,2005, +17411,10053,18020,6189,21102,16718,9045,12881,5339,19842, +15130,6120,13349,19016,16612,10149,7082,19017,18757,6557, +20413,11027,14860,10370,7892,10092,7449,17223,3245,7454, +7457,18298,19440,3125,1631,3126,12116,21291,7374,11069, +19691,10164,2433,8512,9983,11668,8166,8513,8001,9682, +17340,18290,7263,11074,9696,20490,8004,12755,10108,18299, +3127,10732,6121,2358,4846,11183,22631,22632,22633,22634, +22635,22636,22637,22638,22639,22640,22641,22642,22643,22644, +22645,22646,22647,22648,22649,22650,22651,22652,22653,22654, +22655,22656,22657,22658,22659,22660,22661,22662,22663,22664, +22665,22666,22667,22668,22669,22670,22671,22672,22673,22674, +22675,22676,22677,22678,22679,22680,22681,22682,22683,22684, +22685,22686,22687,22688,22689,22690,22691,22692,22693,22694, +22695,22696,22697,22698,22699,22700,22701,22702,22703,22704, +22705,22706,22707,22708,22709,22710,22711,22712,22713,22714, +22715,22716,22717,22718,22719,22720,22721,22722,22723,22724, +11184,4848,12124,13524,13457,11426,4849,17310,9168,11186, +2581,4767,13453,11185,11334,11354,21654,11933,4700,6616, +7893,5686,15713,15963,6494,8941,6270,2583,6164,19018, +3408,17051,16090,11399,12939,3744,18341,10950,18346,19980, +3469,18240,18350,18351,20724,20697,3362,1990,18765,10934, +20444,18359,4055,10364,4703,11281,19904,3146,13528,2352, +16206,21192,20828,11044,1019,1668,16166,1545,2344,11133, +3891,21519,5525,3937,4695,19852,2277,5207,2048,19853, +15475,15599,14778,4641,16582,1089,3794,16162,21051,13487, +14480,14591,14593,15867,8247,8002,22725,22726,22727,22728, +22729,22730,22731,22732,22733,22734,22735,22736,22737,22738, +22739,22740,22741,22742,22743,22744,22745,22746,22747,22748, +22749,22750,22751,22752,22753,22754,22755,22756,22757,22758, +22759,22760,22761,22762,22763,22764,22765,22766,22767,22768, +22769,22770,22771,22772,22773,22774,22775,22776,22777,22778, +22779,22780,22781,22782,22783,22784,22785,22786,22787,22788, +22789,22790,22791,22792,22793,22794,22795,22796,22797,22798, +22799,22800,22801,22802,22803,22804,22805,22806,22807,22808, +22809,22810,22811,22812,22813,22814,22815,22816,22817,22818, +6850,8248,18353,15981,14967,17317,9413,18629,16811,16813, +6283,17622,6159,17803,16629,20331,11890,11579,12723,20381, +7207,21533,7013,7019,2635,2453,2454,6131,18172,19174, +17620,1233,20265,14694,21535,2579,18347,8269,15791,10102, +10096,2770,13583,17621,19175,11804,8168,18613,2996,20052, +19693,2815,18878,11669,20266,2998,13512,20053,18358,11984, +4357,16671,19083,3246,21656,3733,2816,7965,18211,6105, +19157,10228,12089,5391,12090,18348,10245,10250,5392,8596, +3306,10109,3307,5731,13364,1670,2914,6136,8483,17557, +19987,9271,9814,5122,9564,9967,22819,22820,22821,22822, +22823,22824,22825,22826,22827,22828,22829,22830,22831,22832, +22833,22834,22835,22836,22837,22838,22839,22840,22841,22842, +22843,22844,22845,22846,22847,22848,22849,22850,22851,22852, +22853,22854,22855,22856,22857,22858,22859,22860,22861,22862, +22863,22864,22865,22866,22867,22868,22869,22870,22871,22872, +22873,22874,22875,22876,22877,22878,22879,22880,22881,22882, +22883,22884,22885,22886,22887,22888,22889,22890,22891,22892, +22893,22894,22895,22896,22897,22898,22899,22900,22901,22902, +22903,22904,22905,22906,22907,22908,22909,22910,22911,22912, +16769,6900,14850,19718,12706,4918,8263,9548,886,5739, +14473,3992,7037,17500,17731,3521,23854,23855,23856,23857, +23858,23859,23860,23861,23862,23863,23864,23865,23866,23867, +23868,23869,23870,23871,23872,23873,23874,23875,23876,23877, +23878,23879,23880,23881,23882,23883,23884,23885,23886,23887, +23888,23889,23890,23891,23892,23893,23894,23895,23896,23897, +23898,23899,23900,23901,23902,23903,23904,23905,23906,23907, +23908,23909,23910,23911,23912,23913,23914,23915,23916,23917, +23918,23919,23920,23921,23922,23923,23924,23925,23926,23927, +23928,23929,23930,23931,23932,23933,22913,22914,22915,22916, +22917,22918,22919,22920,22921,22922,22923,22924,22925,22926, +22927,22928,22929,22930,22931,22932,22933,22934,22935,22936, +22937,22938,22939,22940,22941,22942,22943,22944,22945,22946, +22947,22948,22949,22950,22951,22952,22953,22954,22955,22956, +22957,22958,22959,22960,22961,22962,22963,22964,22965,22966, +22967,22968,22969,22970,22971,22972,22973,22974,22975,22976, +22977,22978,22979,22980,22981,22982,22983,22984,22985,22986, +22987,22988,22989,22990,22991,22992,22993,22994,22995,22996, +22997,22998,22999,23000,23001,23002,23003,23004,23005,23006 +}; + +static uint16 gbksortorder(uint16 i) +{ + uint idx=gbktail(i); + if (idx>0x7f) idx-=0x41; + else idx-=0x40; + idx+=(gbkhead(i)-0x81)*0xbe; + return 0x8100+gbk_order[idx]; +} + + +int my_strnncoll_gbk_internal(const uchar **a_res, const uchar **b_res, + size_t length) +{ + const uchar *a= *a_res, *b= *b_res; + uint a_char,b_char; + + while (length--) + { + if ((length > 0) && isgbkcode(*a,*(a+1)) && isgbkcode(*b, *(b+1))) + { + a_char= gbkcode(*a,*(a+1)); + b_char= gbkcode(*b,*(b+1)); + if (a_char != b_char) + return ((int) gbksortorder((uint16) a_char) - + (int) gbksortorder((uint16) b_char)); + a+= 2; + b+= 2; + length--; + } + else if (sort_order_gbk[*a++] != sort_order_gbk[*b++]) + return ((int) sort_order_gbk[a[-1]] - + (int) sort_order_gbk[b[-1]]); + } + *a_res= a; + *b_res= b; + return 0; +} + + + +int my_strnncoll_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool b_is_prefix) +{ + size_t length= MY_MIN(a_length, b_length); + int res= my_strnncoll_gbk_internal(&a, &b, length); + return res ? res : (int) ((b_is_prefix ? length : a_length) - b_length); +} + + +static int my_strnncollsp_gbk(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + size_t length= MY_MIN(a_length, b_length); + int res= my_strnncoll_gbk_internal(&a, &b, length); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + if (!res && a_length != b_length) + { + const uchar *end; + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a_length < b_length) + { + /* put shorter key in a */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (end= a + a_length-length; a < end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + } + return res; +} + + +static size_t +my_strnxfrm_gbk(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + uchar *d0= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order= cs->sort_order; + + for (; dst < de && src < se && nweights; nweights--) + { + if (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) + { + /* + Note, it is safe not to check (src < se) + in the code below, because ismbchar() would + not return TRUE if src was too short + */ + uint16 e= gbksortorder((uint16) gbkcode(*src, *(src + 1))); + *dst++= gbkhead(e); + if (dst < de) + *dst++= gbktail(e); + src+= 2; + } + else + *dst++= sort_order ? sort_order[*src++] : *src++; + } + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); +} + + +static uint ismbchar_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return (isgbkhead(*(p)) && (e)-(p)>1 && isgbktail(*((p)+1))? 2: 0); +} + +static uint mbcharlen_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (isgbkhead(c)? 2 : 1); +} + +/* page 0 0x8140-0xFE4F */ +static const uint16 tab_gbk_uni0[]={ +0x4E02,0x4E04,0x4E05,0x4E06,0x4E0F,0x4E12,0x4E17,0x4E1F, +0x4E20,0x4E21,0x4E23,0x4E26,0x4E29,0x4E2E,0x4E2F,0x4E31, +0x4E33,0x4E35,0x4E37,0x4E3C,0x4E40,0x4E41,0x4E42,0x4E44, +0x4E46,0x4E4A,0x4E51,0x4E55,0x4E57,0x4E5A,0x4E5B,0x4E62, +0x4E63,0x4E64,0x4E65,0x4E67,0x4E68,0x4E6A,0x4E6B,0x4E6C, +0x4E6D,0x4E6E,0x4E6F,0x4E72,0x4E74,0x4E75,0x4E76,0x4E77, +0x4E78,0x4E79,0x4E7A,0x4E7B,0x4E7C,0x4E7D,0x4E7F,0x4E80, +0x4E81,0x4E82,0x4E83,0x4E84,0x4E85,0x4E87,0x4E8A, 0, +0x4E90,0x4E96,0x4E97,0x4E99,0x4E9C,0x4E9D,0x4E9E,0x4EA3, +0x4EAA,0x4EAF,0x4EB0,0x4EB1,0x4EB4,0x4EB6,0x4EB7,0x4EB8, +0x4EB9,0x4EBC,0x4EBD,0x4EBE,0x4EC8,0x4ECC,0x4ECF,0x4ED0, +0x4ED2,0x4EDA,0x4EDB,0x4EDC,0x4EE0,0x4EE2,0x4EE6,0x4EE7, +0x4EE9,0x4EED,0x4EEE,0x4EEF,0x4EF1,0x4EF4,0x4EF8,0x4EF9, +0x4EFA,0x4EFC,0x4EFE,0x4F00,0x4F02,0x4F03,0x4F04,0x4F05, +0x4F06,0x4F07,0x4F08,0x4F0B,0x4F0C,0x4F12,0x4F13,0x4F14, +0x4F15,0x4F16,0x4F1C,0x4F1D,0x4F21,0x4F23,0x4F28,0x4F29, +0x4F2C,0x4F2D,0x4F2E,0x4F31,0x4F33,0x4F35,0x4F37,0x4F39, +0x4F3B,0x4F3E,0x4F3F,0x4F40,0x4F41,0x4F42,0x4F44,0x4F45, +0x4F47,0x4F48,0x4F49,0x4F4A,0x4F4B,0x4F4C,0x4F52,0x4F54, +0x4F56,0x4F61,0x4F62,0x4F66,0x4F68,0x4F6A,0x4F6B,0x4F6D, +0x4F6E,0x4F71,0x4F72,0x4F75,0x4F77,0x4F78,0x4F79,0x4F7A, +0x4F7D,0x4F80,0x4F81,0x4F82,0x4F85,0x4F86,0x4F87,0x4F8A, +0x4F8C,0x4F8E,0x4F90,0x4F92,0x4F93,0x4F95,0x4F96,0x4F98, +0x4F99,0x4F9A,0x4F9C,0x4F9E,0x4F9F,0x4FA1,0x4FA2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x4FA4,0x4FAB,0x4FAD,0x4FB0,0x4FB1,0x4FB2,0x4FB3,0x4FB4, +0x4FB6,0x4FB7,0x4FB8,0x4FB9,0x4FBA,0x4FBB,0x4FBC,0x4FBD, +0x4FBE,0x4FC0,0x4FC1,0x4FC2,0x4FC6,0x4FC7,0x4FC8,0x4FC9, +0x4FCB,0x4FCC,0x4FCD,0x4FD2,0x4FD3,0x4FD4,0x4FD5,0x4FD6, +0x4FD9,0x4FDB,0x4FE0,0x4FE2,0x4FE4,0x4FE5,0x4FE7,0x4FEB, +0x4FEC,0x4FF0,0x4FF2,0x4FF4,0x4FF5,0x4FF6,0x4FF7,0x4FF9, +0x4FFB,0x4FFC,0x4FFD,0x4FFF,0x5000,0x5001,0x5002,0x5003, +0x5004,0x5005,0x5006,0x5007,0x5008,0x5009,0x500A, 0, +0x500B,0x500E,0x5010,0x5011,0x5013,0x5015,0x5016,0x5017, +0x501B,0x501D,0x501E,0x5020,0x5022,0x5023,0x5024,0x5027, +0x502B,0x502F,0x5030,0x5031,0x5032,0x5033,0x5034,0x5035, +0x5036,0x5037,0x5038,0x5039,0x503B,0x503D,0x503F,0x5040, +0x5041,0x5042,0x5044,0x5045,0x5046,0x5049,0x504A,0x504B, +0x504D,0x5050,0x5051,0x5052,0x5053,0x5054,0x5056,0x5057, +0x5058,0x5059,0x505B,0x505D,0x505E,0x505F,0x5060,0x5061, +0x5062,0x5063,0x5064,0x5066,0x5067,0x5068,0x5069,0x506A, +0x506B,0x506D,0x506E,0x506F,0x5070,0x5071,0x5072,0x5073, +0x5074,0x5075,0x5078,0x5079,0x507A,0x507C,0x507D,0x5081, +0x5082,0x5083,0x5084,0x5086,0x5087,0x5089,0x508A,0x508B, +0x508C,0x508E,0x508F,0x5090,0x5091,0x5092,0x5093,0x5094, +0x5095,0x5096,0x5097,0x5098,0x5099,0x509A,0x509B,0x509C, +0x509D,0x509E,0x509F,0x50A0,0x50A1,0x50A2,0x50A4,0x50A6, +0x50AA,0x50AB,0x50AD,0x50AE,0x50AF,0x50B0,0x50B1,0x50B3, +0x50B4,0x50B5,0x50B6,0x50B7,0x50B8,0x50B9,0x50BC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x50BD,0x50BE,0x50BF,0x50C0,0x50C1,0x50C2,0x50C3,0x50C4, +0x50C5,0x50C6,0x50C7,0x50C8,0x50C9,0x50CA,0x50CB,0x50CC, +0x50CD,0x50CE,0x50D0,0x50D1,0x50D2,0x50D3,0x50D4,0x50D5, +0x50D7,0x50D8,0x50D9,0x50DB,0x50DC,0x50DD,0x50DE,0x50DF, +0x50E0,0x50E1,0x50E2,0x50E3,0x50E4,0x50E5,0x50E8,0x50E9, +0x50EA,0x50EB,0x50EF,0x50F0,0x50F1,0x50F2,0x50F4,0x50F6, +0x50F7,0x50F8,0x50F9,0x50FA,0x50FC,0x50FD,0x50FE,0x50FF, +0x5100,0x5101,0x5102,0x5103,0x5104,0x5105,0x5108, 0, +0x5109,0x510A,0x510C,0x510D,0x510E,0x510F,0x5110,0x5111, +0x5113,0x5114,0x5115,0x5116,0x5117,0x5118,0x5119,0x511A, +0x511B,0x511C,0x511D,0x511E,0x511F,0x5120,0x5122,0x5123, +0x5124,0x5125,0x5126,0x5127,0x5128,0x5129,0x512A,0x512B, +0x512C,0x512D,0x512E,0x512F,0x5130,0x5131,0x5132,0x5133, +0x5134,0x5135,0x5136,0x5137,0x5138,0x5139,0x513A,0x513B, +0x513C,0x513D,0x513E,0x5142,0x5147,0x514A,0x514C,0x514E, +0x514F,0x5150,0x5152,0x5153,0x5157,0x5158,0x5159,0x515B, +0x515D,0x515E,0x515F,0x5160,0x5161,0x5163,0x5164,0x5166, +0x5167,0x5169,0x516A,0x516F,0x5172,0x517A,0x517E,0x517F, +0x5183,0x5184,0x5186,0x5187,0x518A,0x518B,0x518E,0x518F, +0x5190,0x5191,0x5193,0x5194,0x5198,0x519A,0x519D,0x519E, +0x519F,0x51A1,0x51A3,0x51A6,0x51A7,0x51A8,0x51A9,0x51AA, +0x51AD,0x51AE,0x51B4,0x51B8,0x51B9,0x51BA,0x51BE,0x51BF, +0x51C1,0x51C2,0x51C3,0x51C5,0x51C8,0x51CA,0x51CD,0x51CE, +0x51D0,0x51D2,0x51D3,0x51D4,0x51D5,0x51D6,0x51D7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x51D8,0x51D9,0x51DA,0x51DC,0x51DE,0x51DF,0x51E2,0x51E3, +0x51E5,0x51E6,0x51E7,0x51E8,0x51E9,0x51EA,0x51EC,0x51EE, +0x51F1,0x51F2,0x51F4,0x51F7,0x51FE,0x5204,0x5205,0x5209, +0x520B,0x520C,0x520F,0x5210,0x5213,0x5214,0x5215,0x521C, +0x521E,0x521F,0x5221,0x5222,0x5223,0x5225,0x5226,0x5227, +0x522A,0x522C,0x522F,0x5231,0x5232,0x5234,0x5235,0x523C, +0x523E,0x5244,0x5245,0x5246,0x5247,0x5248,0x5249,0x524B, +0x524E,0x524F,0x5252,0x5253,0x5255,0x5257,0x5258, 0, +0x5259,0x525A,0x525B,0x525D,0x525F,0x5260,0x5262,0x5263, +0x5264,0x5266,0x5268,0x526B,0x526C,0x526D,0x526E,0x5270, +0x5271,0x5273,0x5274,0x5275,0x5276,0x5277,0x5278,0x5279, +0x527A,0x527B,0x527C,0x527E,0x5280,0x5283,0x5284,0x5285, +0x5286,0x5287,0x5289,0x528A,0x528B,0x528C,0x528D,0x528E, +0x528F,0x5291,0x5292,0x5294,0x5295,0x5296,0x5297,0x5298, +0x5299,0x529A,0x529C,0x52A4,0x52A5,0x52A6,0x52A7,0x52AE, +0x52AF,0x52B0,0x52B4,0x52B5,0x52B6,0x52B7,0x52B8,0x52B9, +0x52BA,0x52BB,0x52BC,0x52BD,0x52C0,0x52C1,0x52C2,0x52C4, +0x52C5,0x52C6,0x52C8,0x52CA,0x52CC,0x52CD,0x52CE,0x52CF, +0x52D1,0x52D3,0x52D4,0x52D5,0x52D7,0x52D9,0x52DA,0x52DB, +0x52DC,0x52DD,0x52DE,0x52E0,0x52E1,0x52E2,0x52E3,0x52E5, +0x52E6,0x52E7,0x52E8,0x52E9,0x52EA,0x52EB,0x52EC,0x52ED, +0x52EE,0x52EF,0x52F1,0x52F2,0x52F3,0x52F4,0x52F5,0x52F6, +0x52F7,0x52F8,0x52FB,0x52FC,0x52FD,0x5301,0x5302,0x5303, +0x5304,0x5307,0x5309,0x530A,0x530B,0x530C,0x530E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5311,0x5312,0x5313,0x5314,0x5318,0x531B,0x531C,0x531E, +0x531F,0x5322,0x5324,0x5325,0x5327,0x5328,0x5329,0x532B, +0x532C,0x532D,0x532F,0x5330,0x5331,0x5332,0x5333,0x5334, +0x5335,0x5336,0x5337,0x5338,0x533C,0x533D,0x5340,0x5342, +0x5344,0x5346,0x534B,0x534C,0x534D,0x5350,0x5354,0x5358, +0x5359,0x535B,0x535D,0x5365,0x5368,0x536A,0x536C,0x536D, +0x5372,0x5376,0x5379,0x537B,0x537C,0x537D,0x537E,0x5380, +0x5381,0x5383,0x5387,0x5388,0x538A,0x538E,0x538F, 0, +0x5390,0x5391,0x5392,0x5393,0x5394,0x5396,0x5397,0x5399, +0x539B,0x539C,0x539E,0x53A0,0x53A1,0x53A4,0x53A7,0x53AA, +0x53AB,0x53AC,0x53AD,0x53AF,0x53B0,0x53B1,0x53B2,0x53B3, +0x53B4,0x53B5,0x53B7,0x53B8,0x53B9,0x53BA,0x53BC,0x53BD, +0x53BE,0x53C0,0x53C3,0x53C4,0x53C5,0x53C6,0x53C7,0x53CE, +0x53CF,0x53D0,0x53D2,0x53D3,0x53D5,0x53DA,0x53DC,0x53DD, +0x53DE,0x53E1,0x53E2,0x53E7,0x53F4,0x53FA,0x53FE,0x53FF, +0x5400,0x5402,0x5405,0x5407,0x540B,0x5414,0x5418,0x5419, +0x541A,0x541C,0x5422,0x5424,0x5425,0x542A,0x5430,0x5433, +0x5436,0x5437,0x543A,0x543D,0x543F,0x5441,0x5442,0x5444, +0x5445,0x5447,0x5449,0x544C,0x544D,0x544E,0x544F,0x5451, +0x545A,0x545D,0x545E,0x545F,0x5460,0x5461,0x5463,0x5465, +0x5467,0x5469,0x546A,0x546B,0x546C,0x546D,0x546E,0x546F, +0x5470,0x5474,0x5479,0x547A,0x547E,0x547F,0x5481,0x5483, +0x5485,0x5487,0x5488,0x5489,0x548A,0x548D,0x5491,0x5493, +0x5497,0x5498,0x549C,0x549E,0x549F,0x54A0,0x54A1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x54A2,0x54A5,0x54AE,0x54B0,0x54B2,0x54B5,0x54B6,0x54B7, +0x54B9,0x54BA,0x54BC,0x54BE,0x54C3,0x54C5,0x54CA,0x54CB, +0x54D6,0x54D8,0x54DB,0x54E0,0x54E1,0x54E2,0x54E3,0x54E4, +0x54EB,0x54EC,0x54EF,0x54F0,0x54F1,0x54F4,0x54F5,0x54F6, +0x54F7,0x54F8,0x54F9,0x54FB,0x54FE,0x5500,0x5502,0x5503, +0x5504,0x5505,0x5508,0x550A,0x550B,0x550C,0x550D,0x550E, +0x5512,0x5513,0x5515,0x5516,0x5517,0x5518,0x5519,0x551A, +0x551C,0x551D,0x551E,0x551F,0x5521,0x5525,0x5526, 0, +0x5528,0x5529,0x552B,0x552D,0x5532,0x5534,0x5535,0x5536, +0x5538,0x5539,0x553A,0x553B,0x553D,0x5540,0x5542,0x5545, +0x5547,0x5548,0x554B,0x554C,0x554D,0x554E,0x554F,0x5551, +0x5552,0x5553,0x5554,0x5557,0x5558,0x5559,0x555A,0x555B, +0x555D,0x555E,0x555F,0x5560,0x5562,0x5563,0x5568,0x5569, +0x556B,0x556F,0x5570,0x5571,0x5572,0x5573,0x5574,0x5579, +0x557A,0x557D,0x557F,0x5585,0x5586,0x558C,0x558D,0x558E, +0x5590,0x5592,0x5593,0x5595,0x5596,0x5597,0x559A,0x559B, +0x559E,0x55A0,0x55A1,0x55A2,0x55A3,0x55A4,0x55A5,0x55A6, +0x55A8,0x55A9,0x55AA,0x55AB,0x55AC,0x55AD,0x55AE,0x55AF, +0x55B0,0x55B2,0x55B4,0x55B6,0x55B8,0x55BA,0x55BC,0x55BF, +0x55C0,0x55C1,0x55C2,0x55C3,0x55C6,0x55C7,0x55C8,0x55CA, +0x55CB,0x55CE,0x55CF,0x55D0,0x55D5,0x55D7,0x55D8,0x55D9, +0x55DA,0x55DB,0x55DE,0x55E0,0x55E2,0x55E7,0x55E9,0x55ED, +0x55EE,0x55F0,0x55F1,0x55F4,0x55F6,0x55F8,0x55F9,0x55FA, +0x55FB,0x55FC,0x55FF,0x5602,0x5603,0x5604,0x5605, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5606,0x5607,0x560A,0x560B,0x560D,0x5610,0x5611,0x5612, +0x5613,0x5614,0x5615,0x5616,0x5617,0x5619,0x561A,0x561C, +0x561D,0x5620,0x5621,0x5622,0x5625,0x5626,0x5628,0x5629, +0x562A,0x562B,0x562E,0x562F,0x5630,0x5633,0x5635,0x5637, +0x5638,0x563A,0x563C,0x563D,0x563E,0x5640,0x5641,0x5642, +0x5643,0x5644,0x5645,0x5646,0x5647,0x5648,0x5649,0x564A, +0x564B,0x564F,0x5650,0x5651,0x5652,0x5653,0x5655,0x5656, +0x565A,0x565B,0x565D,0x565E,0x565F,0x5660,0x5661, 0, +0x5663,0x5665,0x5666,0x5667,0x566D,0x566E,0x566F,0x5670, +0x5672,0x5673,0x5674,0x5675,0x5677,0x5678,0x5679,0x567A, +0x567D,0x567E,0x567F,0x5680,0x5681,0x5682,0x5683,0x5684, +0x5687,0x5688,0x5689,0x568A,0x568B,0x568C,0x568D,0x5690, +0x5691,0x5692,0x5694,0x5695,0x5696,0x5697,0x5698,0x5699, +0x569A,0x569B,0x569C,0x569D,0x569E,0x569F,0x56A0,0x56A1, +0x56A2,0x56A4,0x56A5,0x56A6,0x56A7,0x56A8,0x56A9,0x56AA, +0x56AB,0x56AC,0x56AD,0x56AE,0x56B0,0x56B1,0x56B2,0x56B3, +0x56B4,0x56B5,0x56B6,0x56B8,0x56B9,0x56BA,0x56BB,0x56BD, +0x56BE,0x56BF,0x56C0,0x56C1,0x56C2,0x56C3,0x56C4,0x56C5, +0x56C6,0x56C7,0x56C8,0x56C9,0x56CB,0x56CC,0x56CD,0x56CE, +0x56CF,0x56D0,0x56D1,0x56D2,0x56D3,0x56D5,0x56D6,0x56D8, +0x56D9,0x56DC,0x56E3,0x56E5,0x56E6,0x56E7,0x56E8,0x56E9, +0x56EA,0x56EC,0x56EE,0x56EF,0x56F2,0x56F3,0x56F6,0x56F7, +0x56F8,0x56FB,0x56FC,0x5700,0x5701,0x5702,0x5705,0x5707, +0x570B,0x570C,0x570D,0x570E,0x570F,0x5710,0x5711, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5712,0x5713,0x5714,0x5715,0x5716,0x5717,0x5718,0x5719, +0x571A,0x571B,0x571D,0x571E,0x5720,0x5721,0x5722,0x5724, +0x5725,0x5726,0x5727,0x572B,0x5731,0x5732,0x5734,0x5735, +0x5736,0x5737,0x5738,0x573C,0x573D,0x573F,0x5741,0x5743, +0x5744,0x5745,0x5746,0x5748,0x5749,0x574B,0x5752,0x5753, +0x5754,0x5755,0x5756,0x5758,0x5759,0x5762,0x5763,0x5765, +0x5767,0x576C,0x576E,0x5770,0x5771,0x5772,0x5774,0x5775, +0x5778,0x5779,0x577A,0x577D,0x577E,0x577F,0x5780, 0, +0x5781,0x5787,0x5788,0x5789,0x578A,0x578D,0x578E,0x578F, +0x5790,0x5791,0x5794,0x5795,0x5796,0x5797,0x5798,0x5799, +0x579A,0x579C,0x579D,0x579E,0x579F,0x57A5,0x57A8,0x57AA, +0x57AC,0x57AF,0x57B0,0x57B1,0x57B3,0x57B5,0x57B6,0x57B7, +0x57B9,0x57BA,0x57BB,0x57BC,0x57BD,0x57BE,0x57BF,0x57C0, +0x57C1,0x57C4,0x57C5,0x57C6,0x57C7,0x57C8,0x57C9,0x57CA, +0x57CC,0x57CD,0x57D0,0x57D1,0x57D3,0x57D6,0x57D7,0x57DB, +0x57DC,0x57DE,0x57E1,0x57E2,0x57E3,0x57E5,0x57E6,0x57E7, +0x57E8,0x57E9,0x57EA,0x57EB,0x57EC,0x57EE,0x57F0,0x57F1, +0x57F2,0x57F3,0x57F5,0x57F6,0x57F7,0x57FB,0x57FC,0x57FE, +0x57FF,0x5801,0x5803,0x5804,0x5805,0x5808,0x5809,0x580A, +0x580C,0x580E,0x580F,0x5810,0x5812,0x5813,0x5814,0x5816, +0x5817,0x5818,0x581A,0x581B,0x581C,0x581D,0x581F,0x5822, +0x5823,0x5825,0x5826,0x5827,0x5828,0x5829,0x582B,0x582C, +0x582D,0x582E,0x582F,0x5831,0x5832,0x5833,0x5834,0x5836, +0x5837,0x5838,0x5839,0x583A,0x583B,0x583C,0x583D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x583E,0x583F,0x5840,0x5841,0x5842,0x5843,0x5845,0x5846, +0x5847,0x5848,0x5849,0x584A,0x584B,0x584E,0x584F,0x5850, +0x5852,0x5853,0x5855,0x5856,0x5857,0x5859,0x585A,0x585B, +0x585C,0x585D,0x585F,0x5860,0x5861,0x5862,0x5863,0x5864, +0x5866,0x5867,0x5868,0x5869,0x586A,0x586D,0x586E,0x586F, +0x5870,0x5871,0x5872,0x5873,0x5874,0x5875,0x5876,0x5877, +0x5878,0x5879,0x587A,0x587B,0x587C,0x587D,0x587F,0x5882, +0x5884,0x5886,0x5887,0x5888,0x588A,0x588B,0x588C, 0, +0x588D,0x588E,0x588F,0x5890,0x5891,0x5894,0x5895,0x5896, +0x5897,0x5898,0x589B,0x589C,0x589D,0x58A0,0x58A1,0x58A2, +0x58A3,0x58A4,0x58A5,0x58A6,0x58A7,0x58AA,0x58AB,0x58AC, +0x58AD,0x58AE,0x58AF,0x58B0,0x58B1,0x58B2,0x58B3,0x58B4, +0x58B5,0x58B6,0x58B7,0x58B8,0x58B9,0x58BA,0x58BB,0x58BD, +0x58BE,0x58BF,0x58C0,0x58C2,0x58C3,0x58C4,0x58C6,0x58C7, +0x58C8,0x58C9,0x58CA,0x58CB,0x58CC,0x58CD,0x58CE,0x58CF, +0x58D0,0x58D2,0x58D3,0x58D4,0x58D6,0x58D7,0x58D8,0x58D9, +0x58DA,0x58DB,0x58DC,0x58DD,0x58DE,0x58DF,0x58E0,0x58E1, +0x58E2,0x58E3,0x58E5,0x58E6,0x58E7,0x58E8,0x58E9,0x58EA, +0x58ED,0x58EF,0x58F1,0x58F2,0x58F4,0x58F5,0x58F7,0x58F8, +0x58FA,0x58FB,0x58FC,0x58FD,0x58FE,0x58FF,0x5900,0x5901, +0x5903,0x5905,0x5906,0x5908,0x5909,0x590A,0x590B,0x590C, +0x590E,0x5910,0x5911,0x5912,0x5913,0x5917,0x5918,0x591B, +0x591D,0x591E,0x5920,0x5921,0x5922,0x5923,0x5926,0x5928, +0x592C,0x5930,0x5932,0x5933,0x5935,0x5936,0x593B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x593D,0x593E,0x593F,0x5940,0x5943,0x5945,0x5946,0x594A, +0x594C,0x594D,0x5950,0x5952,0x5953,0x5959,0x595B,0x595C, +0x595D,0x595E,0x595F,0x5961,0x5963,0x5964,0x5966,0x5967, +0x5968,0x5969,0x596A,0x596B,0x596C,0x596D,0x596E,0x596F, +0x5970,0x5971,0x5972,0x5975,0x5977,0x597A,0x597B,0x597C, +0x597E,0x597F,0x5980,0x5985,0x5989,0x598B,0x598C,0x598E, +0x598F,0x5990,0x5991,0x5994,0x5995,0x5998,0x599A,0x599B, +0x599C,0x599D,0x599F,0x59A0,0x59A1,0x59A2,0x59A6, 0, +0x59A7,0x59AC,0x59AD,0x59B0,0x59B1,0x59B3,0x59B4,0x59B5, +0x59B6,0x59B7,0x59B8,0x59BA,0x59BC,0x59BD,0x59BF,0x59C0, +0x59C1,0x59C2,0x59C3,0x59C4,0x59C5,0x59C7,0x59C8,0x59C9, +0x59CC,0x59CD,0x59CE,0x59CF,0x59D5,0x59D6,0x59D9,0x59DB, +0x59DE,0x59DF,0x59E0,0x59E1,0x59E2,0x59E4,0x59E6,0x59E7, +0x59E9,0x59EA,0x59EB,0x59ED,0x59EE,0x59EF,0x59F0,0x59F1, +0x59F2,0x59F3,0x59F4,0x59F5,0x59F6,0x59F7,0x59F8,0x59FA, +0x59FC,0x59FD,0x59FE,0x5A00,0x5A02,0x5A0A,0x5A0B,0x5A0D, +0x5A0E,0x5A0F,0x5A10,0x5A12,0x5A14,0x5A15,0x5A16,0x5A17, +0x5A19,0x5A1A,0x5A1B,0x5A1D,0x5A1E,0x5A21,0x5A22,0x5A24, +0x5A26,0x5A27,0x5A28,0x5A2A,0x5A2B,0x5A2C,0x5A2D,0x5A2E, +0x5A2F,0x5A30,0x5A33,0x5A35,0x5A37,0x5A38,0x5A39,0x5A3A, +0x5A3B,0x5A3D,0x5A3E,0x5A3F,0x5A41,0x5A42,0x5A43,0x5A44, +0x5A45,0x5A47,0x5A48,0x5A4B,0x5A4C,0x5A4D,0x5A4E,0x5A4F, +0x5A50,0x5A51,0x5A52,0x5A53,0x5A54,0x5A56,0x5A57,0x5A58, +0x5A59,0x5A5B,0x5A5C,0x5A5D,0x5A5E,0x5A5F,0x5A60, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5A61,0x5A63,0x5A64,0x5A65,0x5A66,0x5A68,0x5A69,0x5A6B, +0x5A6C,0x5A6D,0x5A6E,0x5A6F,0x5A70,0x5A71,0x5A72,0x5A73, +0x5A78,0x5A79,0x5A7B,0x5A7C,0x5A7D,0x5A7E,0x5A80,0x5A81, +0x5A82,0x5A83,0x5A84,0x5A85,0x5A86,0x5A87,0x5A88,0x5A89, +0x5A8A,0x5A8B,0x5A8C,0x5A8D,0x5A8E,0x5A8F,0x5A90,0x5A91, +0x5A93,0x5A94,0x5A95,0x5A96,0x5A97,0x5A98,0x5A99,0x5A9C, +0x5A9D,0x5A9E,0x5A9F,0x5AA0,0x5AA1,0x5AA2,0x5AA3,0x5AA4, +0x5AA5,0x5AA6,0x5AA7,0x5AA8,0x5AA9,0x5AAB,0x5AAC, 0, +0x5AAD,0x5AAE,0x5AAF,0x5AB0,0x5AB1,0x5AB4,0x5AB6,0x5AB7, +0x5AB9,0x5ABA,0x5ABB,0x5ABC,0x5ABD,0x5ABF,0x5AC0,0x5AC3, +0x5AC4,0x5AC5,0x5AC6,0x5AC7,0x5AC8,0x5ACA,0x5ACB,0x5ACD, +0x5ACE,0x5ACF,0x5AD0,0x5AD1,0x5AD3,0x5AD5,0x5AD7,0x5AD9, +0x5ADA,0x5ADB,0x5ADD,0x5ADE,0x5ADF,0x5AE2,0x5AE4,0x5AE5, +0x5AE7,0x5AE8,0x5AEA,0x5AEC,0x5AED,0x5AEE,0x5AEF,0x5AF0, +0x5AF2,0x5AF3,0x5AF4,0x5AF5,0x5AF6,0x5AF7,0x5AF8,0x5AF9, +0x5AFA,0x5AFB,0x5AFC,0x5AFD,0x5AFE,0x5AFF,0x5B00,0x5B01, +0x5B02,0x5B03,0x5B04,0x5B05,0x5B06,0x5B07,0x5B08,0x5B0A, +0x5B0B,0x5B0C,0x5B0D,0x5B0E,0x5B0F,0x5B10,0x5B11,0x5B12, +0x5B13,0x5B14,0x5B15,0x5B18,0x5B19,0x5B1A,0x5B1B,0x5B1C, +0x5B1D,0x5B1E,0x5B1F,0x5B20,0x5B21,0x5B22,0x5B23,0x5B24, +0x5B25,0x5B26,0x5B27,0x5B28,0x5B29,0x5B2A,0x5B2B,0x5B2C, +0x5B2D,0x5B2E,0x5B2F,0x5B30,0x5B31,0x5B33,0x5B35,0x5B36, +0x5B38,0x5B39,0x5B3A,0x5B3B,0x5B3C,0x5B3D,0x5B3E,0x5B3F, +0x5B41,0x5B42,0x5B43,0x5B44,0x5B45,0x5B46,0x5B47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5B48,0x5B49,0x5B4A,0x5B4B,0x5B4C,0x5B4D,0x5B4E,0x5B4F, +0x5B52,0x5B56,0x5B5E,0x5B60,0x5B61,0x5B67,0x5B68,0x5B6B, +0x5B6D,0x5B6E,0x5B6F,0x5B72,0x5B74,0x5B76,0x5B77,0x5B78, +0x5B79,0x5B7B,0x5B7C,0x5B7E,0x5B7F,0x5B82,0x5B86,0x5B8A, +0x5B8D,0x5B8E,0x5B90,0x5B91,0x5B92,0x5B94,0x5B96,0x5B9F, +0x5BA7,0x5BA8,0x5BA9,0x5BAC,0x5BAD,0x5BAE,0x5BAF,0x5BB1, +0x5BB2,0x5BB7,0x5BBA,0x5BBB,0x5BBC,0x5BC0,0x5BC1,0x5BC3, +0x5BC8,0x5BC9,0x5BCA,0x5BCB,0x5BCD,0x5BCE,0x5BCF, 0, +0x5BD1,0x5BD4,0x5BD5,0x5BD6,0x5BD7,0x5BD8,0x5BD9,0x5BDA, +0x5BDB,0x5BDC,0x5BE0,0x5BE2,0x5BE3,0x5BE6,0x5BE7,0x5BE9, +0x5BEA,0x5BEB,0x5BEC,0x5BED,0x5BEF,0x5BF1,0x5BF2,0x5BF3, +0x5BF4,0x5BF5,0x5BF6,0x5BF7,0x5BFD,0x5BFE,0x5C00,0x5C02, +0x5C03,0x5C05,0x5C07,0x5C08,0x5C0B,0x5C0C,0x5C0D,0x5C0E, +0x5C10,0x5C12,0x5C13,0x5C17,0x5C19,0x5C1B,0x5C1E,0x5C1F, +0x5C20,0x5C21,0x5C23,0x5C26,0x5C28,0x5C29,0x5C2A,0x5C2B, +0x5C2D,0x5C2E,0x5C2F,0x5C30,0x5C32,0x5C33,0x5C35,0x5C36, +0x5C37,0x5C43,0x5C44,0x5C46,0x5C47,0x5C4C,0x5C4D,0x5C52, +0x5C53,0x5C54,0x5C56,0x5C57,0x5C58,0x5C5A,0x5C5B,0x5C5C, +0x5C5D,0x5C5F,0x5C62,0x5C64,0x5C67,0x5C68,0x5C69,0x5C6A, +0x5C6B,0x5C6C,0x5C6D,0x5C70,0x5C72,0x5C73,0x5C74,0x5C75, +0x5C76,0x5C77,0x5C78,0x5C7B,0x5C7C,0x5C7D,0x5C7E,0x5C80, +0x5C83,0x5C84,0x5C85,0x5C86,0x5C87,0x5C89,0x5C8A,0x5C8B, +0x5C8E,0x5C8F,0x5C92,0x5C93,0x5C95,0x5C9D,0x5C9E,0x5C9F, +0x5CA0,0x5CA1,0x5CA4,0x5CA5,0x5CA6,0x5CA7,0x5CA8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5CAA,0x5CAE,0x5CAF,0x5CB0,0x5CB2,0x5CB4,0x5CB6,0x5CB9, +0x5CBA,0x5CBB,0x5CBC,0x5CBE,0x5CC0,0x5CC2,0x5CC3,0x5CC5, +0x5CC6,0x5CC7,0x5CC8,0x5CC9,0x5CCA,0x5CCC,0x5CCD,0x5CCE, +0x5CCF,0x5CD0,0x5CD1,0x5CD3,0x5CD4,0x5CD5,0x5CD6,0x5CD7, +0x5CD8,0x5CDA,0x5CDB,0x5CDC,0x5CDD,0x5CDE,0x5CDF,0x5CE0, +0x5CE2,0x5CE3,0x5CE7,0x5CE9,0x5CEB,0x5CEC,0x5CEE,0x5CEF, +0x5CF1,0x5CF2,0x5CF3,0x5CF4,0x5CF5,0x5CF6,0x5CF7,0x5CF8, +0x5CF9,0x5CFA,0x5CFC,0x5CFD,0x5CFE,0x5CFF,0x5D00, 0, +0x5D01,0x5D04,0x5D05,0x5D08,0x5D09,0x5D0A,0x5D0B,0x5D0C, +0x5D0D,0x5D0F,0x5D10,0x5D11,0x5D12,0x5D13,0x5D15,0x5D17, +0x5D18,0x5D19,0x5D1A,0x5D1C,0x5D1D,0x5D1F,0x5D20,0x5D21, +0x5D22,0x5D23,0x5D25,0x5D28,0x5D2A,0x5D2B,0x5D2C,0x5D2F, +0x5D30,0x5D31,0x5D32,0x5D33,0x5D35,0x5D36,0x5D37,0x5D38, +0x5D39,0x5D3A,0x5D3B,0x5D3C,0x5D3F,0x5D40,0x5D41,0x5D42, +0x5D43,0x5D44,0x5D45,0x5D46,0x5D48,0x5D49,0x5D4D,0x5D4E, +0x5D4F,0x5D50,0x5D51,0x5D52,0x5D53,0x5D54,0x5D55,0x5D56, +0x5D57,0x5D59,0x5D5A,0x5D5C,0x5D5E,0x5D5F,0x5D60,0x5D61, +0x5D62,0x5D63,0x5D64,0x5D65,0x5D66,0x5D67,0x5D68,0x5D6A, +0x5D6D,0x5D6E,0x5D70,0x5D71,0x5D72,0x5D73,0x5D75,0x5D76, +0x5D77,0x5D78,0x5D79,0x5D7A,0x5D7B,0x5D7C,0x5D7D,0x5D7E, +0x5D7F,0x5D80,0x5D81,0x5D83,0x5D84,0x5D85,0x5D86,0x5D87, +0x5D88,0x5D89,0x5D8A,0x5D8B,0x5D8C,0x5D8D,0x5D8E,0x5D8F, +0x5D90,0x5D91,0x5D92,0x5D93,0x5D94,0x5D95,0x5D96,0x5D97, +0x5D98,0x5D9A,0x5D9B,0x5D9C,0x5D9E,0x5D9F,0x5DA0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5DA1,0x5DA2,0x5DA3,0x5DA4,0x5DA5,0x5DA6,0x5DA7,0x5DA8, +0x5DA9,0x5DAA,0x5DAB,0x5DAC,0x5DAD,0x5DAE,0x5DAF,0x5DB0, +0x5DB1,0x5DB2,0x5DB3,0x5DB4,0x5DB5,0x5DB6,0x5DB8,0x5DB9, +0x5DBA,0x5DBB,0x5DBC,0x5DBD,0x5DBE,0x5DBF,0x5DC0,0x5DC1, +0x5DC2,0x5DC3,0x5DC4,0x5DC6,0x5DC7,0x5DC8,0x5DC9,0x5DCA, +0x5DCB,0x5DCC,0x5DCE,0x5DCF,0x5DD0,0x5DD1,0x5DD2,0x5DD3, +0x5DD4,0x5DD5,0x5DD6,0x5DD7,0x5DD8,0x5DD9,0x5DDA,0x5DDC, +0x5DDF,0x5DE0,0x5DE3,0x5DE4,0x5DEA,0x5DEC,0x5DED, 0, +0x5DF0,0x5DF5,0x5DF6,0x5DF8,0x5DF9,0x5DFA,0x5DFB,0x5DFC, +0x5DFF,0x5E00,0x5E04,0x5E07,0x5E09,0x5E0A,0x5E0B,0x5E0D, +0x5E0E,0x5E12,0x5E13,0x5E17,0x5E1E,0x5E1F,0x5E20,0x5E21, +0x5E22,0x5E23,0x5E24,0x5E25,0x5E28,0x5E29,0x5E2A,0x5E2B, +0x5E2C,0x5E2F,0x5E30,0x5E32,0x5E33,0x5E34,0x5E35,0x5E36, +0x5E39,0x5E3A,0x5E3E,0x5E3F,0x5E40,0x5E41,0x5E43,0x5E46, +0x5E47,0x5E48,0x5E49,0x5E4A,0x5E4B,0x5E4D,0x5E4E,0x5E4F, +0x5E50,0x5E51,0x5E52,0x5E53,0x5E56,0x5E57,0x5E58,0x5E59, +0x5E5A,0x5E5C,0x5E5D,0x5E5F,0x5E60,0x5E63,0x5E64,0x5E65, +0x5E66,0x5E67,0x5E68,0x5E69,0x5E6A,0x5E6B,0x5E6C,0x5E6D, +0x5E6E,0x5E6F,0x5E70,0x5E71,0x5E75,0x5E77,0x5E79,0x5E7E, +0x5E81,0x5E82,0x5E83,0x5E85,0x5E88,0x5E89,0x5E8C,0x5E8D, +0x5E8E,0x5E92,0x5E98,0x5E9B,0x5E9D,0x5EA1,0x5EA2,0x5EA3, +0x5EA4,0x5EA8,0x5EA9,0x5EAA,0x5EAB,0x5EAC,0x5EAE,0x5EAF, +0x5EB0,0x5EB1,0x5EB2,0x5EB4,0x5EBA,0x5EBB,0x5EBC,0x5EBD, +0x5EBF,0x5EC0,0x5EC1,0x5EC2,0x5EC3,0x5EC4,0x5EC5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x5EC6,0x5EC7,0x5EC8,0x5ECB,0x5ECC,0x5ECD,0x5ECE,0x5ECF, +0x5ED0,0x5ED4,0x5ED5,0x5ED7,0x5ED8,0x5ED9,0x5EDA,0x5EDC, +0x5EDD,0x5EDE,0x5EDF,0x5EE0,0x5EE1,0x5EE2,0x5EE3,0x5EE4, +0x5EE5,0x5EE6,0x5EE7,0x5EE9,0x5EEB,0x5EEC,0x5EED,0x5EEE, +0x5EEF,0x5EF0,0x5EF1,0x5EF2,0x5EF3,0x5EF5,0x5EF8,0x5EF9, +0x5EFB,0x5EFC,0x5EFD,0x5F05,0x5F06,0x5F07,0x5F09,0x5F0C, +0x5F0D,0x5F0E,0x5F10,0x5F12,0x5F14,0x5F16,0x5F19,0x5F1A, +0x5F1C,0x5F1D,0x5F1E,0x5F21,0x5F22,0x5F23,0x5F24, 0, +0x5F28,0x5F2B,0x5F2C,0x5F2E,0x5F30,0x5F32,0x5F33,0x5F34, +0x5F35,0x5F36,0x5F37,0x5F38,0x5F3B,0x5F3D,0x5F3E,0x5F3F, +0x5F41,0x5F42,0x5F43,0x5F44,0x5F45,0x5F46,0x5F47,0x5F48, +0x5F49,0x5F4A,0x5F4B,0x5F4C,0x5F4D,0x5F4E,0x5F4F,0x5F51, +0x5F54,0x5F59,0x5F5A,0x5F5B,0x5F5C,0x5F5E,0x5F5F,0x5F60, +0x5F63,0x5F65,0x5F67,0x5F68,0x5F6B,0x5F6E,0x5F6F,0x5F72, +0x5F74,0x5F75,0x5F76,0x5F78,0x5F7A,0x5F7D,0x5F7E,0x5F7F, +0x5F83,0x5F86,0x5F8D,0x5F8E,0x5F8F,0x5F91,0x5F93,0x5F94, +0x5F96,0x5F9A,0x5F9B,0x5F9D,0x5F9E,0x5F9F,0x5FA0,0x5FA2, +0x5FA3,0x5FA4,0x5FA5,0x5FA6,0x5FA7,0x5FA9,0x5FAB,0x5FAC, +0x5FAF,0x5FB0,0x5FB1,0x5FB2,0x5FB3,0x5FB4,0x5FB6,0x5FB8, +0x5FB9,0x5FBA,0x5FBB,0x5FBE,0x5FBF,0x5FC0,0x5FC1,0x5FC2, +0x5FC7,0x5FC8,0x5FCA,0x5FCB,0x5FCE,0x5FD3,0x5FD4,0x5FD5, +0x5FDA,0x5FDB,0x5FDC,0x5FDE,0x5FDF,0x5FE2,0x5FE3,0x5FE5, +0x5FE6,0x5FE8,0x5FE9,0x5FEC,0x5FEF,0x5FF0,0x5FF2,0x5FF3, +0x5FF4,0x5FF6,0x5FF7,0x5FF9,0x5FFA,0x5FFC,0x6007, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6008,0x6009,0x600B,0x600C,0x6010,0x6011,0x6013,0x6017, +0x6018,0x601A,0x601E,0x601F,0x6022,0x6023,0x6024,0x602C, +0x602D,0x602E,0x6030,0x6031,0x6032,0x6033,0x6034,0x6036, +0x6037,0x6038,0x6039,0x603A,0x603D,0x603E,0x6040,0x6044, +0x6045,0x6046,0x6047,0x6048,0x6049,0x604A,0x604C,0x604E, +0x604F,0x6051,0x6053,0x6054,0x6056,0x6057,0x6058,0x605B, +0x605C,0x605E,0x605F,0x6060,0x6061,0x6065,0x6066,0x606E, +0x6071,0x6072,0x6074,0x6075,0x6077,0x607E,0x6080, 0, +0x6081,0x6082,0x6085,0x6086,0x6087,0x6088,0x608A,0x608B, +0x608E,0x608F,0x6090,0x6091,0x6093,0x6095,0x6097,0x6098, +0x6099,0x609C,0x609E,0x60A1,0x60A2,0x60A4,0x60A5,0x60A7, +0x60A9,0x60AA,0x60AE,0x60B0,0x60B3,0x60B5,0x60B6,0x60B7, +0x60B9,0x60BA,0x60BD,0x60BE,0x60BF,0x60C0,0x60C1,0x60C2, +0x60C3,0x60C4,0x60C7,0x60C8,0x60C9,0x60CC,0x60CD,0x60CE, +0x60CF,0x60D0,0x60D2,0x60D3,0x60D4,0x60D6,0x60D7,0x60D9, +0x60DB,0x60DE,0x60E1,0x60E2,0x60E3,0x60E4,0x60E5,0x60EA, +0x60F1,0x60F2,0x60F5,0x60F7,0x60F8,0x60FB,0x60FC,0x60FD, +0x60FE,0x60FF,0x6102,0x6103,0x6104,0x6105,0x6107,0x610A, +0x610B,0x610C,0x6110,0x6111,0x6112,0x6113,0x6114,0x6116, +0x6117,0x6118,0x6119,0x611B,0x611C,0x611D,0x611E,0x6121, +0x6122,0x6125,0x6128,0x6129,0x612A,0x612C,0x612D,0x612E, +0x612F,0x6130,0x6131,0x6132,0x6133,0x6134,0x6135,0x6136, +0x6137,0x6138,0x6139,0x613A,0x613B,0x613C,0x613D,0x613E, +0x6140,0x6141,0x6142,0x6143,0x6144,0x6145,0x6146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6147,0x6149,0x614B,0x614D,0x614F,0x6150,0x6152,0x6153, +0x6154,0x6156,0x6157,0x6158,0x6159,0x615A,0x615B,0x615C, +0x615E,0x615F,0x6160,0x6161,0x6163,0x6164,0x6165,0x6166, +0x6169,0x616A,0x616B,0x616C,0x616D,0x616E,0x616F,0x6171, +0x6172,0x6173,0x6174,0x6176,0x6178,0x6179,0x617A,0x617B, +0x617C,0x617D,0x617E,0x617F,0x6180,0x6181,0x6182,0x6183, +0x6184,0x6185,0x6186,0x6187,0x6188,0x6189,0x618A,0x618C, +0x618D,0x618F,0x6190,0x6191,0x6192,0x6193,0x6195, 0, +0x6196,0x6197,0x6198,0x6199,0x619A,0x619B,0x619C,0x619E, +0x619F,0x61A0,0x61A1,0x61A2,0x61A3,0x61A4,0x61A5,0x61A6, +0x61AA,0x61AB,0x61AD,0x61AE,0x61AF,0x61B0,0x61B1,0x61B2, +0x61B3,0x61B4,0x61B5,0x61B6,0x61B8,0x61B9,0x61BA,0x61BB, +0x61BC,0x61BD,0x61BF,0x61C0,0x61C1,0x61C3,0x61C4,0x61C5, +0x61C6,0x61C7,0x61C9,0x61CC,0x61CD,0x61CE,0x61CF,0x61D0, +0x61D3,0x61D5,0x61D6,0x61D7,0x61D8,0x61D9,0x61DA,0x61DB, +0x61DC,0x61DD,0x61DE,0x61DF,0x61E0,0x61E1,0x61E2,0x61E3, +0x61E4,0x61E5,0x61E7,0x61E8,0x61E9,0x61EA,0x61EB,0x61EC, +0x61ED,0x61EE,0x61EF,0x61F0,0x61F1,0x61F2,0x61F3,0x61F4, +0x61F6,0x61F7,0x61F8,0x61F9,0x61FA,0x61FB,0x61FC,0x61FD, +0x61FE,0x6200,0x6201,0x6202,0x6203,0x6204,0x6205,0x6207, +0x6209,0x6213,0x6214,0x6219,0x621C,0x621D,0x621E,0x6220, +0x6223,0x6226,0x6227,0x6228,0x6229,0x622B,0x622D,0x622F, +0x6230,0x6231,0x6232,0x6235,0x6236,0x6238,0x6239,0x623A, +0x623B,0x623C,0x6242,0x6244,0x6245,0x6246,0x624A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x624F,0x6250,0x6255,0x6256,0x6257,0x6259,0x625A,0x625C, +0x625D,0x625E,0x625F,0x6260,0x6261,0x6262,0x6264,0x6265, +0x6268,0x6271,0x6272,0x6274,0x6275,0x6277,0x6278,0x627A, +0x627B,0x627D,0x6281,0x6282,0x6283,0x6285,0x6286,0x6287, +0x6288,0x628B,0x628C,0x628D,0x628E,0x628F,0x6290,0x6294, +0x6299,0x629C,0x629D,0x629E,0x62A3,0x62A6,0x62A7,0x62A9, +0x62AA,0x62AD,0x62AE,0x62AF,0x62B0,0x62B2,0x62B3,0x62B4, +0x62B6,0x62B7,0x62B8,0x62BA,0x62BE,0x62C0,0x62C1, 0, +0x62C3,0x62CB,0x62CF,0x62D1,0x62D5,0x62DD,0x62DE,0x62E0, +0x62E1,0x62E4,0x62EA,0x62EB,0x62F0,0x62F2,0x62F5,0x62F8, +0x62F9,0x62FA,0x62FB,0x6300,0x6303,0x6304,0x6305,0x6306, +0x630A,0x630B,0x630C,0x630D,0x630F,0x6310,0x6312,0x6313, +0x6314,0x6315,0x6317,0x6318,0x6319,0x631C,0x6326,0x6327, +0x6329,0x632C,0x632D,0x632E,0x6330,0x6331,0x6333,0x6334, +0x6335,0x6336,0x6337,0x6338,0x633B,0x633C,0x633E,0x633F, +0x6340,0x6341,0x6344,0x6347,0x6348,0x634A,0x6351,0x6352, +0x6353,0x6354,0x6356,0x6357,0x6358,0x6359,0x635A,0x635B, +0x635C,0x635D,0x6360,0x6364,0x6365,0x6366,0x6368,0x636A, +0x636B,0x636C,0x636F,0x6370,0x6372,0x6373,0x6374,0x6375, +0x6378,0x6379,0x637C,0x637D,0x637E,0x637F,0x6381,0x6383, +0x6384,0x6385,0x6386,0x638B,0x638D,0x6391,0x6393,0x6394, +0x6395,0x6397,0x6399,0x639A,0x639B,0x639C,0x639D,0x639E, +0x639F,0x63A1,0x63A4,0x63A6,0x63AB,0x63AF,0x63B1,0x63B2, +0x63B5,0x63B6,0x63B9,0x63BB,0x63BD,0x63BF,0x63C0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x63C1,0x63C2,0x63C3,0x63C5,0x63C7,0x63C8,0x63CA,0x63CB, +0x63CC,0x63D1,0x63D3,0x63D4,0x63D5,0x63D7,0x63D8,0x63D9, +0x63DA,0x63DB,0x63DC,0x63DD,0x63DF,0x63E2,0x63E4,0x63E5, +0x63E6,0x63E7,0x63E8,0x63EB,0x63EC,0x63EE,0x63EF,0x63F0, +0x63F1,0x63F3,0x63F5,0x63F7,0x63F9,0x63FA,0x63FB,0x63FC, +0x63FE,0x6403,0x6404,0x6406,0x6407,0x6408,0x6409,0x640A, +0x640D,0x640E,0x6411,0x6412,0x6415,0x6416,0x6417,0x6418, +0x6419,0x641A,0x641D,0x641F,0x6422,0x6423,0x6424, 0, +0x6425,0x6427,0x6428,0x6429,0x642B,0x642E,0x642F,0x6430, +0x6431,0x6432,0x6433,0x6435,0x6436,0x6437,0x6438,0x6439, +0x643B,0x643C,0x643E,0x6440,0x6442,0x6443,0x6449,0x644B, +0x644C,0x644D,0x644E,0x644F,0x6450,0x6451,0x6453,0x6455, +0x6456,0x6457,0x6459,0x645A,0x645B,0x645C,0x645D,0x645F, +0x6460,0x6461,0x6462,0x6463,0x6464,0x6465,0x6466,0x6468, +0x646A,0x646B,0x646C,0x646E,0x646F,0x6470,0x6471,0x6472, +0x6473,0x6474,0x6475,0x6476,0x6477,0x647B,0x647C,0x647D, +0x647E,0x647F,0x6480,0x6481,0x6483,0x6486,0x6488,0x6489, +0x648A,0x648B,0x648C,0x648D,0x648E,0x648F,0x6490,0x6493, +0x6494,0x6497,0x6498,0x649A,0x649B,0x649C,0x649D,0x649F, +0x64A0,0x64A1,0x64A2,0x64A3,0x64A5,0x64A6,0x64A7,0x64A8, +0x64AA,0x64AB,0x64AF,0x64B1,0x64B2,0x64B3,0x64B4,0x64B6, +0x64B9,0x64BB,0x64BD,0x64BE,0x64BF,0x64C1,0x64C3,0x64C4, +0x64C6,0x64C7,0x64C8,0x64C9,0x64CA,0x64CB,0x64CC,0x64CF, +0x64D1,0x64D3,0x64D4,0x64D5,0x64D6,0x64D9,0x64DA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x64DB,0x64DC,0x64DD,0x64DF,0x64E0,0x64E1,0x64E3,0x64E5, +0x64E7,0x64E8,0x64E9,0x64EA,0x64EB,0x64EC,0x64ED,0x64EE, +0x64EF,0x64F0,0x64F1,0x64F2,0x64F3,0x64F4,0x64F5,0x64F6, +0x64F7,0x64F8,0x64F9,0x64FA,0x64FB,0x64FC,0x64FD,0x64FE, +0x64FF,0x6501,0x6502,0x6503,0x6504,0x6505,0x6506,0x6507, +0x6508,0x650A,0x650B,0x650C,0x650D,0x650E,0x650F,0x6510, +0x6511,0x6513,0x6514,0x6515,0x6516,0x6517,0x6519,0x651A, +0x651B,0x651C,0x651D,0x651E,0x651F,0x6520,0x6521, 0, +0x6522,0x6523,0x6524,0x6526,0x6527,0x6528,0x6529,0x652A, +0x652C,0x652D,0x6530,0x6531,0x6532,0x6533,0x6537,0x653A, +0x653C,0x653D,0x6540,0x6541,0x6542,0x6543,0x6544,0x6546, +0x6547,0x654A,0x654B,0x654D,0x654E,0x6550,0x6552,0x6553, +0x6554,0x6557,0x6558,0x655A,0x655C,0x655F,0x6560,0x6561, +0x6564,0x6565,0x6567,0x6568,0x6569,0x656A,0x656D,0x656E, +0x656F,0x6571,0x6573,0x6575,0x6576,0x6578,0x6579,0x657A, +0x657B,0x657C,0x657D,0x657E,0x657F,0x6580,0x6581,0x6582, +0x6583,0x6584,0x6585,0x6586,0x6588,0x6589,0x658A,0x658D, +0x658E,0x658F,0x6592,0x6594,0x6595,0x6596,0x6598,0x659A, +0x659D,0x659E,0x65A0,0x65A2,0x65A3,0x65A6,0x65A8,0x65AA, +0x65AC,0x65AE,0x65B1,0x65B2,0x65B3,0x65B4,0x65B5,0x65B6, +0x65B7,0x65B8,0x65BA,0x65BB,0x65BE,0x65BF,0x65C0,0x65C2, +0x65C7,0x65C8,0x65C9,0x65CA,0x65CD,0x65D0,0x65D1,0x65D3, +0x65D4,0x65D5,0x65D8,0x65D9,0x65DA,0x65DB,0x65DC,0x65DD, +0x65DE,0x65DF,0x65E1,0x65E3,0x65E4,0x65EA,0x65EB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x65F2,0x65F3,0x65F4,0x65F5,0x65F8,0x65F9,0x65FB,0x65FC, +0x65FD,0x65FE,0x65FF,0x6601,0x6604,0x6605,0x6607,0x6608, +0x6609,0x660B,0x660D,0x6610,0x6611,0x6612,0x6616,0x6617, +0x6618,0x661A,0x661B,0x661C,0x661E,0x6621,0x6622,0x6623, +0x6624,0x6626,0x6629,0x662A,0x662B,0x662C,0x662E,0x6630, +0x6632,0x6633,0x6637,0x6638,0x6639,0x663A,0x663B,0x663D, +0x663F,0x6640,0x6642,0x6644,0x6645,0x6646,0x6647,0x6648, +0x6649,0x664A,0x664D,0x664E,0x6650,0x6651,0x6658, 0, +0x6659,0x665B,0x665C,0x665D,0x665E,0x6660,0x6662,0x6663, +0x6665,0x6667,0x6669,0x666A,0x666B,0x666C,0x666D,0x6671, +0x6672,0x6673,0x6675,0x6678,0x6679,0x667B,0x667C,0x667D, +0x667F,0x6680,0x6681,0x6683,0x6685,0x6686,0x6688,0x6689, +0x668A,0x668B,0x668D,0x668E,0x668F,0x6690,0x6692,0x6693, +0x6694,0x6695,0x6698,0x6699,0x669A,0x669B,0x669C,0x669E, +0x669F,0x66A0,0x66A1,0x66A2,0x66A3,0x66A4,0x66A5,0x66A6, +0x66A9,0x66AA,0x66AB,0x66AC,0x66AD,0x66AF,0x66B0,0x66B1, +0x66B2,0x66B3,0x66B5,0x66B6,0x66B7,0x66B8,0x66BA,0x66BB, +0x66BC,0x66BD,0x66BF,0x66C0,0x66C1,0x66C2,0x66C3,0x66C4, +0x66C5,0x66C6,0x66C7,0x66C8,0x66C9,0x66CA,0x66CB,0x66CC, +0x66CD,0x66CE,0x66CF,0x66D0,0x66D1,0x66D2,0x66D3,0x66D4, +0x66D5,0x66D6,0x66D7,0x66D8,0x66DA,0x66DE,0x66DF,0x66E0, +0x66E1,0x66E2,0x66E3,0x66E4,0x66E5,0x66E7,0x66E8,0x66EA, +0x66EB,0x66EC,0x66ED,0x66EE,0x66EF,0x66F1,0x66F5,0x66F6, +0x66F8,0x66FA,0x66FB,0x66FD,0x6701,0x6702,0x6703, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6704,0x6705,0x6706,0x6707,0x670C,0x670E,0x670F,0x6711, +0x6712,0x6713,0x6716,0x6718,0x6719,0x671A,0x671C,0x671E, +0x6720,0x6721,0x6722,0x6723,0x6724,0x6725,0x6727,0x6729, +0x672E,0x6730,0x6732,0x6733,0x6736,0x6737,0x6738,0x6739, +0x673B,0x673C,0x673E,0x673F,0x6741,0x6744,0x6745,0x6747, +0x674A,0x674B,0x674D,0x6752,0x6754,0x6755,0x6757,0x6758, +0x6759,0x675A,0x675B,0x675D,0x6762,0x6763,0x6764,0x6766, +0x6767,0x676B,0x676C,0x676E,0x6771,0x6774,0x6776, 0, +0x6778,0x6779,0x677A,0x677B,0x677D,0x6780,0x6782,0x6783, +0x6785,0x6786,0x6788,0x678A,0x678C,0x678D,0x678E,0x678F, +0x6791,0x6792,0x6793,0x6794,0x6796,0x6799,0x679B,0x679F, +0x67A0,0x67A1,0x67A4,0x67A6,0x67A9,0x67AC,0x67AE,0x67B1, +0x67B2,0x67B4,0x67B9,0x67BA,0x67BB,0x67BC,0x67BD,0x67BE, +0x67BF,0x67C0,0x67C2,0x67C5,0x67C6,0x67C7,0x67C8,0x67C9, +0x67CA,0x67CB,0x67CC,0x67CD,0x67CE,0x67D5,0x67D6,0x67D7, +0x67DB,0x67DF,0x67E1,0x67E3,0x67E4,0x67E6,0x67E7,0x67E8, +0x67EA,0x67EB,0x67ED,0x67EE,0x67F2,0x67F5,0x67F6,0x67F7, +0x67F8,0x67F9,0x67FA,0x67FB,0x67FC,0x67FE,0x6801,0x6802, +0x6803,0x6804,0x6806,0x680D,0x6810,0x6812,0x6814,0x6815, +0x6818,0x6819,0x681A,0x681B,0x681C,0x681E,0x681F,0x6820, +0x6822,0x6823,0x6824,0x6825,0x6826,0x6827,0x6828,0x682B, +0x682C,0x682D,0x682E,0x682F,0x6830,0x6831,0x6834,0x6835, +0x6836,0x683A,0x683B,0x683F,0x6847,0x684B,0x684D,0x684F, +0x6852,0x6856,0x6857,0x6858,0x6859,0x685A,0x685B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x685C,0x685D,0x685E,0x685F,0x686A,0x686C,0x686D,0x686E, +0x686F,0x6870,0x6871,0x6872,0x6873,0x6875,0x6878,0x6879, +0x687A,0x687B,0x687C,0x687D,0x687E,0x687F,0x6880,0x6882, +0x6884,0x6887,0x6888,0x6889,0x688A,0x688B,0x688C,0x688D, +0x688E,0x6890,0x6891,0x6892,0x6894,0x6895,0x6896,0x6898, +0x6899,0x689A,0x689B,0x689C,0x689D,0x689E,0x689F,0x68A0, +0x68A1,0x68A3,0x68A4,0x68A5,0x68A9,0x68AA,0x68AB,0x68AC, +0x68AE,0x68B1,0x68B2,0x68B4,0x68B6,0x68B7,0x68B8, 0, +0x68B9,0x68BA,0x68BB,0x68BC,0x68BD,0x68BE,0x68BF,0x68C1, +0x68C3,0x68C4,0x68C5,0x68C6,0x68C7,0x68C8,0x68CA,0x68CC, +0x68CE,0x68CF,0x68D0,0x68D1,0x68D3,0x68D4,0x68D6,0x68D7, +0x68D9,0x68DB,0x68DC,0x68DD,0x68DE,0x68DF,0x68E1,0x68E2, +0x68E4,0x68E5,0x68E6,0x68E7,0x68E8,0x68E9,0x68EA,0x68EB, +0x68EC,0x68ED,0x68EF,0x68F2,0x68F3,0x68F4,0x68F6,0x68F7, +0x68F8,0x68FB,0x68FD,0x68FE,0x68FF,0x6900,0x6902,0x6903, +0x6904,0x6906,0x6907,0x6908,0x6909,0x690A,0x690C,0x690F, +0x6911,0x6913,0x6914,0x6915,0x6916,0x6917,0x6918,0x6919, +0x691A,0x691B,0x691C,0x691D,0x691E,0x6921,0x6922,0x6923, +0x6925,0x6926,0x6927,0x6928,0x6929,0x692A,0x692B,0x692C, +0x692E,0x692F,0x6931,0x6932,0x6933,0x6935,0x6936,0x6937, +0x6938,0x693A,0x693B,0x693C,0x693E,0x6940,0x6941,0x6943, +0x6944,0x6945,0x6946,0x6947,0x6948,0x6949,0x694A,0x694B, +0x694C,0x694D,0x694E,0x694F,0x6950,0x6951,0x6952,0x6953, +0x6955,0x6956,0x6958,0x6959,0x695B,0x695C,0x695F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6961,0x6962,0x6964,0x6965,0x6967,0x6968,0x6969,0x696A, +0x696C,0x696D,0x696F,0x6970,0x6972,0x6973,0x6974,0x6975, +0x6976,0x697A,0x697B,0x697D,0x697E,0x697F,0x6981,0x6983, +0x6985,0x698A,0x698B,0x698C,0x698E,0x698F,0x6990,0x6991, +0x6992,0x6993,0x6996,0x6997,0x6999,0x699A,0x699D,0x699E, +0x699F,0x69A0,0x69A1,0x69A2,0x69A3,0x69A4,0x69A5,0x69A6, +0x69A9,0x69AA,0x69AC,0x69AE,0x69AF,0x69B0,0x69B2,0x69B3, +0x69B5,0x69B6,0x69B8,0x69B9,0x69BA,0x69BC,0x69BD, 0, +0x69BE,0x69BF,0x69C0,0x69C2,0x69C3,0x69C4,0x69C5,0x69C6, +0x69C7,0x69C8,0x69C9,0x69CB,0x69CD,0x69CF,0x69D1,0x69D2, +0x69D3,0x69D5,0x69D6,0x69D7,0x69D8,0x69D9,0x69DA,0x69DC, +0x69DD,0x69DE,0x69E1,0x69E2,0x69E3,0x69E4,0x69E5,0x69E6, +0x69E7,0x69E8,0x69E9,0x69EA,0x69EB,0x69EC,0x69EE,0x69EF, +0x69F0,0x69F1,0x69F3,0x69F4,0x69F5,0x69F6,0x69F7,0x69F8, +0x69F9,0x69FA,0x69FB,0x69FC,0x69FE,0x6A00,0x6A01,0x6A02, +0x6A03,0x6A04,0x6A05,0x6A06,0x6A07,0x6A08,0x6A09,0x6A0B, +0x6A0C,0x6A0D,0x6A0E,0x6A0F,0x6A10,0x6A11,0x6A12,0x6A13, +0x6A14,0x6A15,0x6A16,0x6A19,0x6A1A,0x6A1B,0x6A1C,0x6A1D, +0x6A1E,0x6A20,0x6A22,0x6A23,0x6A24,0x6A25,0x6A26,0x6A27, +0x6A29,0x6A2B,0x6A2C,0x6A2D,0x6A2E,0x6A30,0x6A32,0x6A33, +0x6A34,0x6A36,0x6A37,0x6A38,0x6A39,0x6A3A,0x6A3B,0x6A3C, +0x6A3F,0x6A40,0x6A41,0x6A42,0x6A43,0x6A45,0x6A46,0x6A48, +0x6A49,0x6A4A,0x6A4B,0x6A4C,0x6A4D,0x6A4E,0x6A4F,0x6A51, +0x6A52,0x6A53,0x6A54,0x6A55,0x6A56,0x6A57,0x6A5A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6A5C,0x6A5D,0x6A5E,0x6A5F,0x6A60,0x6A62,0x6A63,0x6A64, +0x6A66,0x6A67,0x6A68,0x6A69,0x6A6A,0x6A6B,0x6A6C,0x6A6D, +0x6A6E,0x6A6F,0x6A70,0x6A72,0x6A73,0x6A74,0x6A75,0x6A76, +0x6A77,0x6A78,0x6A7A,0x6A7B,0x6A7D,0x6A7E,0x6A7F,0x6A81, +0x6A82,0x6A83,0x6A85,0x6A86,0x6A87,0x6A88,0x6A89,0x6A8A, +0x6A8B,0x6A8C,0x6A8D,0x6A8F,0x6A92,0x6A93,0x6A94,0x6A95, +0x6A96,0x6A98,0x6A99,0x6A9A,0x6A9B,0x6A9C,0x6A9D,0x6A9E, +0x6A9F,0x6AA1,0x6AA2,0x6AA3,0x6AA4,0x6AA5,0x6AA6, 0, +0x6AA7,0x6AA8,0x6AAA,0x6AAD,0x6AAE,0x6AAF,0x6AB0,0x6AB1, +0x6AB2,0x6AB3,0x6AB4,0x6AB5,0x6AB6,0x6AB7,0x6AB8,0x6AB9, +0x6ABA,0x6ABB,0x6ABC,0x6ABD,0x6ABE,0x6ABF,0x6AC0,0x6AC1, +0x6AC2,0x6AC3,0x6AC4,0x6AC5,0x6AC6,0x6AC7,0x6AC8,0x6AC9, +0x6ACA,0x6ACB,0x6ACC,0x6ACD,0x6ACE,0x6ACF,0x6AD0,0x6AD1, +0x6AD2,0x6AD3,0x6AD4,0x6AD5,0x6AD6,0x6AD7,0x6AD8,0x6AD9, +0x6ADA,0x6ADB,0x6ADC,0x6ADD,0x6ADE,0x6ADF,0x6AE0,0x6AE1, +0x6AE2,0x6AE3,0x6AE4,0x6AE5,0x6AE6,0x6AE7,0x6AE8,0x6AE9, +0x6AEA,0x6AEB,0x6AEC,0x6AED,0x6AEE,0x6AEF,0x6AF0,0x6AF1, +0x6AF2,0x6AF3,0x6AF4,0x6AF5,0x6AF6,0x6AF7,0x6AF8,0x6AF9, +0x6AFA,0x6AFB,0x6AFC,0x6AFD,0x6AFE,0x6AFF,0x6B00,0x6B01, +0x6B02,0x6B03,0x6B04,0x6B05,0x6B06,0x6B07,0x6B08,0x6B09, +0x6B0A,0x6B0B,0x6B0C,0x6B0D,0x6B0E,0x6B0F,0x6B10,0x6B11, +0x6B12,0x6B13,0x6B14,0x6B15,0x6B16,0x6B17,0x6B18,0x6B19, +0x6B1A,0x6B1B,0x6B1C,0x6B1D,0x6B1E,0x6B1F,0x6B25,0x6B26, +0x6B28,0x6B29,0x6B2A,0x6B2B,0x6B2C,0x6B2D,0x6B2E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6B2F,0x6B30,0x6B31,0x6B33,0x6B34,0x6B35,0x6B36,0x6B38, +0x6B3B,0x6B3C,0x6B3D,0x6B3F,0x6B40,0x6B41,0x6B42,0x6B44, +0x6B45,0x6B48,0x6B4A,0x6B4B,0x6B4D,0x6B4E,0x6B4F,0x6B50, +0x6B51,0x6B52,0x6B53,0x6B54,0x6B55,0x6B56,0x6B57,0x6B58, +0x6B5A,0x6B5B,0x6B5C,0x6B5D,0x6B5E,0x6B5F,0x6B60,0x6B61, +0x6B68,0x6B69,0x6B6B,0x6B6C,0x6B6D,0x6B6E,0x6B6F,0x6B70, +0x6B71,0x6B72,0x6B73,0x6B74,0x6B75,0x6B76,0x6B77,0x6B78, +0x6B7A,0x6B7D,0x6B7E,0x6B7F,0x6B80,0x6B85,0x6B88, 0, +0x6B8C,0x6B8E,0x6B8F,0x6B90,0x6B91,0x6B94,0x6B95,0x6B97, +0x6B98,0x6B99,0x6B9C,0x6B9D,0x6B9E,0x6B9F,0x6BA0,0x6BA2, +0x6BA3,0x6BA4,0x6BA5,0x6BA6,0x6BA7,0x6BA8,0x6BA9,0x6BAB, +0x6BAC,0x6BAD,0x6BAE,0x6BAF,0x6BB0,0x6BB1,0x6BB2,0x6BB6, +0x6BB8,0x6BB9,0x6BBA,0x6BBB,0x6BBC,0x6BBD,0x6BBE,0x6BC0, +0x6BC3,0x6BC4,0x6BC6,0x6BC7,0x6BC8,0x6BC9,0x6BCA,0x6BCC, +0x6BCE,0x6BD0,0x6BD1,0x6BD8,0x6BDA,0x6BDC,0x6BDD,0x6BDE, +0x6BDF,0x6BE0,0x6BE2,0x6BE3,0x6BE4,0x6BE5,0x6BE6,0x6BE7, +0x6BE8,0x6BE9,0x6BEC,0x6BED,0x6BEE,0x6BF0,0x6BF1,0x6BF2, +0x6BF4,0x6BF6,0x6BF7,0x6BF8,0x6BFA,0x6BFB,0x6BFC,0x6BFE, +0x6BFF,0x6C00,0x6C01,0x6C02,0x6C03,0x6C04,0x6C08,0x6C09, +0x6C0A,0x6C0B,0x6C0C,0x6C0E,0x6C12,0x6C17,0x6C1C,0x6C1D, +0x6C1E,0x6C20,0x6C23,0x6C25,0x6C2B,0x6C2C,0x6C2D,0x6C31, +0x6C33,0x6C36,0x6C37,0x6C39,0x6C3A,0x6C3B,0x6C3C,0x6C3E, +0x6C3F,0x6C43,0x6C44,0x6C45,0x6C48,0x6C4B,0x6C4C,0x6C4D, +0x6C4E,0x6C4F,0x6C51,0x6C52,0x6C53,0x6C56,0x6C58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6C59,0x6C5A,0x6C62,0x6C63,0x6C65,0x6C66,0x6C67,0x6C6B, +0x6C6C,0x6C6D,0x6C6E,0x6C6F,0x6C71,0x6C73,0x6C75,0x6C77, +0x6C78,0x6C7A,0x6C7B,0x6C7C,0x6C7F,0x6C80,0x6C84,0x6C87, +0x6C8A,0x6C8B,0x6C8D,0x6C8E,0x6C91,0x6C92,0x6C95,0x6C96, +0x6C97,0x6C98,0x6C9A,0x6C9C,0x6C9D,0x6C9E,0x6CA0,0x6CA2, +0x6CA8,0x6CAC,0x6CAF,0x6CB0,0x6CB4,0x6CB5,0x6CB6,0x6CB7, +0x6CBA,0x6CC0,0x6CC1,0x6CC2,0x6CC3,0x6CC6,0x6CC7,0x6CC8, +0x6CCB,0x6CCD,0x6CCE,0x6CCF,0x6CD1,0x6CD2,0x6CD8, 0, +0x6CD9,0x6CDA,0x6CDC,0x6CDD,0x6CDF,0x6CE4,0x6CE6,0x6CE7, +0x6CE9,0x6CEC,0x6CED,0x6CF2,0x6CF4,0x6CF9,0x6CFF,0x6D00, +0x6D02,0x6D03,0x6D05,0x6D06,0x6D08,0x6D09,0x6D0A,0x6D0D, +0x6D0F,0x6D10,0x6D11,0x6D13,0x6D14,0x6D15,0x6D16,0x6D18, +0x6D1C,0x6D1D,0x6D1F,0x6D20,0x6D21,0x6D22,0x6D23,0x6D24, +0x6D26,0x6D28,0x6D29,0x6D2C,0x6D2D,0x6D2F,0x6D30,0x6D34, +0x6D36,0x6D37,0x6D38,0x6D3A,0x6D3F,0x6D40,0x6D42,0x6D44, +0x6D49,0x6D4C,0x6D50,0x6D55,0x6D56,0x6D57,0x6D58,0x6D5B, +0x6D5D,0x6D5F,0x6D61,0x6D62,0x6D64,0x6D65,0x6D67,0x6D68, +0x6D6B,0x6D6C,0x6D6D,0x6D70,0x6D71,0x6D72,0x6D73,0x6D75, +0x6D76,0x6D79,0x6D7A,0x6D7B,0x6D7D,0x6D7E,0x6D7F,0x6D80, +0x6D81,0x6D83,0x6D84,0x6D86,0x6D87,0x6D8A,0x6D8B,0x6D8D, +0x6D8F,0x6D90,0x6D92,0x6D96,0x6D97,0x6D98,0x6D99,0x6D9A, +0x6D9C,0x6DA2,0x6DA5,0x6DAC,0x6DAD,0x6DB0,0x6DB1,0x6DB3, +0x6DB4,0x6DB6,0x6DB7,0x6DB9,0x6DBA,0x6DBB,0x6DBC,0x6DBD, +0x6DBE,0x6DC1,0x6DC2,0x6DC3,0x6DC8,0x6DC9,0x6DCA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6DCD,0x6DCE,0x6DCF,0x6DD0,0x6DD2,0x6DD3,0x6DD4,0x6DD5, +0x6DD7,0x6DDA,0x6DDB,0x6DDC,0x6DDF,0x6DE2,0x6DE3,0x6DE5, +0x6DE7,0x6DE8,0x6DE9,0x6DEA,0x6DED,0x6DEF,0x6DF0,0x6DF2, +0x6DF4,0x6DF5,0x6DF6,0x6DF8,0x6DFA,0x6DFD,0x6DFE,0x6DFF, +0x6E00,0x6E01,0x6E02,0x6E03,0x6E04,0x6E06,0x6E07,0x6E08, +0x6E09,0x6E0B,0x6E0F,0x6E12,0x6E13,0x6E15,0x6E18,0x6E19, +0x6E1B,0x6E1C,0x6E1E,0x6E1F,0x6E22,0x6E26,0x6E27,0x6E28, +0x6E2A,0x6E2C,0x6E2E,0x6E30,0x6E31,0x6E33,0x6E35, 0, +0x6E36,0x6E37,0x6E39,0x6E3B,0x6E3C,0x6E3D,0x6E3E,0x6E3F, +0x6E40,0x6E41,0x6E42,0x6E45,0x6E46,0x6E47,0x6E48,0x6E49, +0x6E4A,0x6E4B,0x6E4C,0x6E4F,0x6E50,0x6E51,0x6E52,0x6E55, +0x6E57,0x6E59,0x6E5A,0x6E5C,0x6E5D,0x6E5E,0x6E60,0x6E61, +0x6E62,0x6E63,0x6E64,0x6E65,0x6E66,0x6E67,0x6E68,0x6E69, +0x6E6A,0x6E6C,0x6E6D,0x6E6F,0x6E70,0x6E71,0x6E72,0x6E73, +0x6E74,0x6E75,0x6E76,0x6E77,0x6E78,0x6E79,0x6E7A,0x6E7B, +0x6E7C,0x6E7D,0x6E80,0x6E81,0x6E82,0x6E84,0x6E87,0x6E88, +0x6E8A,0x6E8B,0x6E8C,0x6E8D,0x6E8E,0x6E91,0x6E92,0x6E93, +0x6E94,0x6E95,0x6E96,0x6E97,0x6E99,0x6E9A,0x6E9B,0x6E9D, +0x6E9E,0x6EA0,0x6EA1,0x6EA3,0x6EA4,0x6EA6,0x6EA8,0x6EA9, +0x6EAB,0x6EAC,0x6EAD,0x6EAE,0x6EB0,0x6EB3,0x6EB5,0x6EB8, +0x6EB9,0x6EBC,0x6EBE,0x6EBF,0x6EC0,0x6EC3,0x6EC4,0x6EC5, +0x6EC6,0x6EC8,0x6EC9,0x6ECA,0x6ECC,0x6ECD,0x6ECE,0x6ED0, +0x6ED2,0x6ED6,0x6ED8,0x6ED9,0x6EDB,0x6EDC,0x6EDD,0x6EE3, +0x6EE7,0x6EEA,0x6EEB,0x6EEC,0x6EED,0x6EEE,0x6EEF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6EF0,0x6EF1,0x6EF2,0x6EF3,0x6EF5,0x6EF6,0x6EF7,0x6EF8, +0x6EFA,0x6EFB,0x6EFC,0x6EFD,0x6EFE,0x6EFF,0x6F00,0x6F01, +0x6F03,0x6F04,0x6F05,0x6F07,0x6F08,0x6F0A,0x6F0B,0x6F0C, +0x6F0D,0x6F0E,0x6F10,0x6F11,0x6F12,0x6F16,0x6F17,0x6F18, +0x6F19,0x6F1A,0x6F1B,0x6F1C,0x6F1D,0x6F1E,0x6F1F,0x6F21, +0x6F22,0x6F23,0x6F25,0x6F26,0x6F27,0x6F28,0x6F2C,0x6F2E, +0x6F30,0x6F32,0x6F34,0x6F35,0x6F37,0x6F38,0x6F39,0x6F3A, +0x6F3B,0x6F3C,0x6F3D,0x6F3F,0x6F40,0x6F41,0x6F42, 0, +0x6F43,0x6F44,0x6F45,0x6F48,0x6F49,0x6F4A,0x6F4C,0x6F4E, +0x6F4F,0x6F50,0x6F51,0x6F52,0x6F53,0x6F54,0x6F55,0x6F56, +0x6F57,0x6F59,0x6F5A,0x6F5B,0x6F5D,0x6F5F,0x6F60,0x6F61, +0x6F63,0x6F64,0x6F65,0x6F67,0x6F68,0x6F69,0x6F6A,0x6F6B, +0x6F6C,0x6F6F,0x6F70,0x6F71,0x6F73,0x6F75,0x6F76,0x6F77, +0x6F79,0x6F7B,0x6F7D,0x6F7E,0x6F7F,0x6F80,0x6F81,0x6F82, +0x6F83,0x6F85,0x6F86,0x6F87,0x6F8A,0x6F8B,0x6F8F,0x6F90, +0x6F91,0x6F92,0x6F93,0x6F94,0x6F95,0x6F96,0x6F97,0x6F98, +0x6F99,0x6F9A,0x6F9B,0x6F9D,0x6F9E,0x6F9F,0x6FA0,0x6FA2, +0x6FA3,0x6FA4,0x6FA5,0x6FA6,0x6FA8,0x6FA9,0x6FAA,0x6FAB, +0x6FAC,0x6FAD,0x6FAE,0x6FAF,0x6FB0,0x6FB1,0x6FB2,0x6FB4, +0x6FB5,0x6FB7,0x6FB8,0x6FBA,0x6FBB,0x6FBC,0x6FBD,0x6FBE, +0x6FBF,0x6FC1,0x6FC3,0x6FC4,0x6FC5,0x6FC6,0x6FC7,0x6FC8, +0x6FCA,0x6FCB,0x6FCC,0x6FCD,0x6FCE,0x6FCF,0x6FD0,0x6FD3, +0x6FD4,0x6FD5,0x6FD6,0x6FD7,0x6FD8,0x6FD9,0x6FDA,0x6FDB, +0x6FDC,0x6FDD,0x6FDF,0x6FE2,0x6FE3,0x6FE4,0x6FE5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x6FE6,0x6FE7,0x6FE8,0x6FE9,0x6FEA,0x6FEB,0x6FEC,0x6FED, +0x6FF0,0x6FF1,0x6FF2,0x6FF3,0x6FF4,0x6FF5,0x6FF6,0x6FF7, +0x6FF8,0x6FF9,0x6FFA,0x6FFB,0x6FFC,0x6FFD,0x6FFE,0x6FFF, +0x7000,0x7001,0x7002,0x7003,0x7004,0x7005,0x7006,0x7007, +0x7008,0x7009,0x700A,0x700B,0x700C,0x700D,0x700E,0x700F, +0x7010,0x7012,0x7013,0x7014,0x7015,0x7016,0x7017,0x7018, +0x7019,0x701C,0x701D,0x701E,0x701F,0x7020,0x7021,0x7022, +0x7024,0x7025,0x7026,0x7027,0x7028,0x7029,0x702A, 0, +0x702B,0x702C,0x702D,0x702E,0x702F,0x7030,0x7031,0x7032, +0x7033,0x7034,0x7036,0x7037,0x7038,0x703A,0x703B,0x703C, +0x703D,0x703E,0x703F,0x7040,0x7041,0x7042,0x7043,0x7044, +0x7045,0x7046,0x7047,0x7048,0x7049,0x704A,0x704B,0x704D, +0x704E,0x7050,0x7051,0x7052,0x7053,0x7054,0x7055,0x7056, +0x7057,0x7058,0x7059,0x705A,0x705B,0x705C,0x705D,0x705F, +0x7060,0x7061,0x7062,0x7063,0x7064,0x7065,0x7066,0x7067, +0x7068,0x7069,0x706A,0x706E,0x7071,0x7072,0x7073,0x7074, +0x7077,0x7079,0x707A,0x707B,0x707D,0x7081,0x7082,0x7083, +0x7084,0x7086,0x7087,0x7088,0x708B,0x708C,0x708D,0x708F, +0x7090,0x7091,0x7093,0x7097,0x7098,0x709A,0x709B,0x709E, +0x709F,0x70A0,0x70A1,0x70A2,0x70A3,0x70A4,0x70A5,0x70A6, +0x70A7,0x70A8,0x70A9,0x70AA,0x70B0,0x70B2,0x70B4,0x70B5, +0x70B6,0x70BA,0x70BE,0x70BF,0x70C4,0x70C5,0x70C6,0x70C7, +0x70C9,0x70CB,0x70CC,0x70CD,0x70CE,0x70CF,0x70D0,0x70D1, +0x70D2,0x70D3,0x70D4,0x70D5,0x70D6,0x70D7,0x70DA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x70DC,0x70DD,0x70DE,0x70E0,0x70E1,0x70E2,0x70E3,0x70E5, +0x70EA,0x70EE,0x70F0,0x70F1,0x70F2,0x70F3,0x70F4,0x70F5, +0x70F6,0x70F8,0x70FA,0x70FB,0x70FC,0x70FE,0x70FF,0x7100, +0x7101,0x7102,0x7103,0x7104,0x7105,0x7106,0x7107,0x7108, +0x710B,0x710C,0x710D,0x710E,0x710F,0x7111,0x7112,0x7114, +0x7117,0x711B,0x711C,0x711D,0x711E,0x711F,0x7120,0x7121, +0x7122,0x7123,0x7124,0x7125,0x7127,0x7128,0x7129,0x712A, +0x712B,0x712C,0x712D,0x712E,0x7132,0x7133,0x7134, 0, +0x7135,0x7137,0x7138,0x7139,0x713A,0x713B,0x713C,0x713D, +0x713E,0x713F,0x7140,0x7141,0x7142,0x7143,0x7144,0x7146, +0x7147,0x7148,0x7149,0x714B,0x714D,0x714F,0x7150,0x7151, +0x7152,0x7153,0x7154,0x7155,0x7156,0x7157,0x7158,0x7159, +0x715A,0x715B,0x715D,0x715F,0x7160,0x7161,0x7162,0x7163, +0x7165,0x7169,0x716A,0x716B,0x716C,0x716D,0x716F,0x7170, +0x7171,0x7174,0x7175,0x7176,0x7177,0x7179,0x717B,0x717C, +0x717E,0x717F,0x7180,0x7181,0x7182,0x7183,0x7185,0x7186, +0x7187,0x7188,0x7189,0x718B,0x718C,0x718D,0x718E,0x7190, +0x7191,0x7192,0x7193,0x7195,0x7196,0x7197,0x719A,0x719B, +0x719C,0x719D,0x719E,0x71A1,0x71A2,0x71A3,0x71A4,0x71A5, +0x71A6,0x71A7,0x71A9,0x71AA,0x71AB,0x71AD,0x71AE,0x71AF, +0x71B0,0x71B1,0x71B2,0x71B4,0x71B6,0x71B7,0x71B8,0x71BA, +0x71BB,0x71BC,0x71BD,0x71BE,0x71BF,0x71C0,0x71C1,0x71C2, +0x71C4,0x71C5,0x71C6,0x71C7,0x71C8,0x71C9,0x71CA,0x71CB, +0x71CC,0x71CD,0x71CF,0x71D0,0x71D1,0x71D2,0x71D3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x71D6,0x71D7,0x71D8,0x71D9,0x71DA,0x71DB,0x71DC,0x71DD, +0x71DE,0x71DF,0x71E1,0x71E2,0x71E3,0x71E4,0x71E6,0x71E8, +0x71E9,0x71EA,0x71EB,0x71EC,0x71ED,0x71EF,0x71F0,0x71F1, +0x71F2,0x71F3,0x71F4,0x71F5,0x71F6,0x71F7,0x71F8,0x71FA, +0x71FB,0x71FC,0x71FD,0x71FE,0x71FF,0x7200,0x7201,0x7202, +0x7203,0x7204,0x7205,0x7207,0x7208,0x7209,0x720A,0x720B, +0x720C,0x720D,0x720E,0x720F,0x7210,0x7211,0x7212,0x7213, +0x7214,0x7215,0x7216,0x7217,0x7218,0x7219,0x721A, 0, +0x721B,0x721C,0x721E,0x721F,0x7220,0x7221,0x7222,0x7223, +0x7224,0x7225,0x7226,0x7227,0x7229,0x722B,0x722D,0x722E, +0x722F,0x7232,0x7233,0x7234,0x723A,0x723C,0x723E,0x7240, +0x7241,0x7242,0x7243,0x7244,0x7245,0x7246,0x7249,0x724A, +0x724B,0x724E,0x724F,0x7250,0x7251,0x7253,0x7254,0x7255, +0x7257,0x7258,0x725A,0x725C,0x725E,0x7260,0x7263,0x7264, +0x7265,0x7268,0x726A,0x726B,0x726C,0x726D,0x7270,0x7271, +0x7273,0x7274,0x7276,0x7277,0x7278,0x727B,0x727C,0x727D, +0x7282,0x7283,0x7285,0x7286,0x7287,0x7288,0x7289,0x728C, +0x728E,0x7290,0x7291,0x7293,0x7294,0x7295,0x7296,0x7297, +0x7298,0x7299,0x729A,0x729B,0x729C,0x729D,0x729E,0x72A0, +0x72A1,0x72A2,0x72A3,0x72A4,0x72A5,0x72A6,0x72A7,0x72A8, +0x72A9,0x72AA,0x72AB,0x72AE,0x72B1,0x72B2,0x72B3,0x72B5, +0x72BA,0x72BB,0x72BC,0x72BD,0x72BE,0x72BF,0x72C0,0x72C5, +0x72C6,0x72C7,0x72C9,0x72CA,0x72CB,0x72CC,0x72CF,0x72D1, +0x72D3,0x72D4,0x72D5,0x72D6,0x72D8,0x72DA,0x72DB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3000,0x3001,0x3002,0x00B7,0x02C9,0x02C7,0x00A8, +0x3003,0x3005,0x2014,0xFF5E,0x2016,0x2026,0x2018,0x2019, +0x201C,0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B, +0x300C,0x300D,0x300E,0x300F,0x3016,0x3017,0x3010,0x3011, +0x00B1,0x00D7,0x00F7,0x2236,0x2227,0x2228,0x2211,0x220F, +0x222A,0x2229,0x2208,0x2237,0x221A,0x22A5,0x2225,0x2220, +0x2312,0x2299,0x222B,0x222E,0x2261,0x224C,0x2248,0x223D, +0x221D,0x2260,0x226E,0x226F,0x2264,0x2265,0x221E,0x2235, +0x2234,0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFF04, +0x00A4,0xFFE0,0xFFE1,0x2030,0x00A7,0x2116,0x2606,0x2605, +0x25CB,0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,0x25A0,0x25B3, +0x25B2,0x203B,0x2192,0x2190,0x2191,0x2193,0x3013, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176, +0x2177,0x2178,0x2179, 0, 0, 0, 0, 0, + 0,0x2488,0x2489,0x248A,0x248B,0x248C,0x248D,0x248E, +0x248F,0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496, +0x2497,0x2498,0x2499,0x249A,0x249B,0x2474,0x2475,0x2476, +0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,0x247E, +0x247F,0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486, +0x2487,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466, +0x2467,0x2468,0x2469, 0, 0,0x3220,0x3221,0x3222, +0x3223,0x3224,0x3225,0x3226,0x3227,0x3228,0x3229, 0, + 0,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, +0x2167,0x2168,0x2169,0x216A,0x216B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xFF01,0xFF02,0xFF03,0xFFE5,0xFF05,0xFF06,0xFF07, +0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F, +0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17, +0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F, +0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27, +0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, +0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37, +0xFF38,0xFF39,0xFF3A,0xFF3B,0xFF3C,0xFF3D,0xFF3E,0xFF3F, +0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47, +0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F, +0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57, +0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047, +0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F, +0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057, +0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F, +0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067, +0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F, +0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077, +0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F, +0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087, +0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F, +0x3090,0x3091,0x3092,0x3093, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7, +0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF, +0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7, +0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF, +0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7, +0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF, +0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7, +0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF, +0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7, +0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF, +0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, +0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8, +0x03A9, 0, 0, 0, 0, 0, 0, 0, + 0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, +0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, +0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8, +0x03C9, 0, 0, 0, 0, 0, 0, 0, +0xFE35,0xFE36,0xFE39,0xFE3A,0xFE3F,0xFE40,0xFE3D,0xFE3E, +0xFE41,0xFE42,0xFE43,0xFE44, 0, 0,0xFE3B,0xFE3C, +0xFE37,0xFE38,0xFE31, 0,0xFE33,0xFE34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401, +0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D, +0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425, +0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D, +0x042E,0x042F, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451, +0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D, +0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445, +0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D, +0x044E,0x044F, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x02CA,0x02CB,0x02D9,0x2013,0x2015,0x2025,0x2035,0x2105, +0x2109,0x2196,0x2197,0x2198,0x2199,0x2215,0x221F,0x2223, +0x2252,0x2266,0x2267,0x22BF,0x2550,0x2551,0x2552,0x2553, +0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255A,0x255B, +0x255C,0x255D,0x255E,0x255F,0x2560,0x2561,0x2562,0x2563, +0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256A,0x256B, +0x256C,0x256D,0x256E,0x256F,0x2570,0x2571,0x2572,0x2573, +0x2581,0x2582,0x2583,0x2584,0x2585,0x2586,0x2587, 0, +0x2588,0x2589,0x258A,0x258B,0x258C,0x258D,0x258E,0x258F, +0x2593,0x2594,0x2595,0x25BC,0x25BD,0x25E2,0x25E3,0x25E4, +0x25E5,0x2609,0x2295,0x3012,0x301D,0x301E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0x0101,0x00E1,0x01CE,0x00E0,0x0113,0x00E9,0x011B, +0x00E8,0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,0x01D2, +0x00F2,0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,0x01DA, +0x01DC,0x00FC,0x00EA,0x0251, 0,0x0144,0x0148, 0, +0x0261, 0, 0, 0, 0,0x3105,0x3106,0x3107, +0x3108,0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F, +0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117, +0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,0x311F, +0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127, +0x3128,0x3129, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x3021,0x3022,0x3023,0x3024,0x3025,0x3026,0x3027,0x3028, +0x3029,0x32A3,0x338E,0x338F,0x339C,0x339D,0x339E,0x33A1, +0x33C4,0x33CE,0x33D1,0x33D2,0x33D5,0xFE30,0xFFE2,0xFFE4, + 0,0x2121,0x3231, 0,0x2010, 0, 0, 0, +0x30FC,0x309B,0x309C,0x30FD,0x30FE,0x3006,0x309D,0x309E, +0xFE49,0xFE4A,0xFE4B,0xFE4C,0xFE4D,0xFE4E,0xFE4F,0xFE50, +0xFE51,0xFE52,0xFE54,0xFE55,0xFE56,0xFE57,0xFE59,0xFE5A, +0xFE5B,0xFE5C,0xFE5D,0xFE5E,0xFE5F,0xFE60,0xFE61, 0, +0xFE62,0xFE63,0xFE64,0xFE65,0xFE66,0xFE68,0xFE69,0xFE6A, +0xFE6B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0x3007, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0x2500,0x2501,0x2502,0x2503, +0x2504,0x2505,0x2506,0x2507,0x2508,0x2509,0x250A,0x250B, +0x250C,0x250D,0x250E,0x250F,0x2510,0x2511,0x2512,0x2513, +0x2514,0x2515,0x2516,0x2517,0x2518,0x2519,0x251A,0x251B, +0x251C,0x251D,0x251E,0x251F,0x2520,0x2521,0x2522,0x2523, +0x2524,0x2525,0x2526,0x2527,0x2528,0x2529,0x252A,0x252B, +0x252C,0x252D,0x252E,0x252F,0x2530,0x2531,0x2532,0x2533, +0x2534,0x2535,0x2536,0x2537,0x2538,0x2539,0x253A,0x253B, +0x253C,0x253D,0x253E,0x253F,0x2540,0x2541,0x2542,0x2543, +0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x72DC,0x72DD,0x72DF,0x72E2,0x72E3,0x72E4,0x72E5,0x72E6, +0x72E7,0x72EA,0x72EB,0x72F5,0x72F6,0x72F9,0x72FD,0x72FE, +0x72FF,0x7300,0x7302,0x7304,0x7305,0x7306,0x7307,0x7308, +0x7309,0x730B,0x730C,0x730D,0x730F,0x7310,0x7311,0x7312, +0x7314,0x7318,0x7319,0x731A,0x731F,0x7320,0x7323,0x7324, +0x7326,0x7327,0x7328,0x732D,0x732F,0x7330,0x7332,0x7333, +0x7335,0x7336,0x733A,0x733B,0x733C,0x733D,0x7340,0x7341, +0x7342,0x7343,0x7344,0x7345,0x7346,0x7347,0x7348, 0, +0x7349,0x734A,0x734B,0x734C,0x734E,0x734F,0x7351,0x7353, +0x7354,0x7355,0x7356,0x7358,0x7359,0x735A,0x735B,0x735C, +0x735D,0x735E,0x735F,0x7361,0x7362,0x7363,0x7364,0x7365, +0x7366,0x7367,0x7368,0x7369,0x736A,0x736B,0x736E,0x7370, +0x7371, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7372,0x7373,0x7374,0x7375,0x7376,0x7377,0x7378,0x7379, +0x737A,0x737B,0x737C,0x737D,0x737F,0x7380,0x7381,0x7382, +0x7383,0x7385,0x7386,0x7388,0x738A,0x738C,0x738D,0x738F, +0x7390,0x7392,0x7393,0x7394,0x7395,0x7397,0x7398,0x7399, +0x739A,0x739C,0x739D,0x739E,0x73A0,0x73A1,0x73A3,0x73A4, +0x73A5,0x73A6,0x73A7,0x73A8,0x73AA,0x73AC,0x73AD,0x73B1, +0x73B4,0x73B5,0x73B6,0x73B8,0x73B9,0x73BC,0x73BD,0x73BE, +0x73BF,0x73C1,0x73C3,0x73C4,0x73C5,0x73C6,0x73C7, 0, +0x73CB,0x73CC,0x73CE,0x73D2,0x73D3,0x73D4,0x73D5,0x73D6, +0x73D7,0x73D8,0x73DA,0x73DB,0x73DC,0x73DD,0x73DF,0x73E1, +0x73E2,0x73E3,0x73E4,0x73E6,0x73E8,0x73EA,0x73EB,0x73EC, +0x73EE,0x73EF,0x73F0,0x73F1,0x73F3,0x73F4,0x73F5,0x73F6, +0x73F7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x73F8,0x73F9,0x73FA,0x73FB,0x73FC,0x73FD,0x73FE,0x73FF, +0x7400,0x7401,0x7402,0x7404,0x7407,0x7408,0x740B,0x740C, +0x740D,0x740E,0x7411,0x7412,0x7413,0x7414,0x7415,0x7416, +0x7417,0x7418,0x7419,0x741C,0x741D,0x741E,0x741F,0x7420, +0x7421,0x7423,0x7424,0x7427,0x7429,0x742B,0x742D,0x742F, +0x7431,0x7432,0x7437,0x7438,0x7439,0x743A,0x743B,0x743D, +0x743E,0x743F,0x7440,0x7442,0x7443,0x7444,0x7445,0x7446, +0x7447,0x7448,0x7449,0x744A,0x744B,0x744C,0x744D, 0, +0x744E,0x744F,0x7450,0x7451,0x7452,0x7453,0x7454,0x7456, +0x7458,0x745D,0x7460,0x7461,0x7462,0x7463,0x7464,0x7465, +0x7466,0x7467,0x7468,0x7469,0x746A,0x746B,0x746C,0x746E, +0x746F,0x7471,0x7472,0x7473,0x7474,0x7475,0x7478,0x7479, +0x747A, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x747B,0x747C,0x747D,0x747F,0x7482,0x7484,0x7485,0x7486, +0x7488,0x7489,0x748A,0x748C,0x748D,0x748F,0x7491,0x7492, +0x7493,0x7494,0x7495,0x7496,0x7497,0x7498,0x7499,0x749A, +0x749B,0x749D,0x749F,0x74A0,0x74A1,0x74A2,0x74A3,0x74A4, +0x74A5,0x74A6,0x74AA,0x74AB,0x74AC,0x74AD,0x74AE,0x74AF, +0x74B0,0x74B1,0x74B2,0x74B3,0x74B4,0x74B5,0x74B6,0x74B7, +0x74B8,0x74B9,0x74BB,0x74BC,0x74BD,0x74BE,0x74BF,0x74C0, +0x74C1,0x74C2,0x74C3,0x74C4,0x74C5,0x74C6,0x74C7, 0, +0x74C8,0x74C9,0x74CA,0x74CB,0x74CC,0x74CD,0x74CE,0x74CF, +0x74D0,0x74D1,0x74D3,0x74D4,0x74D5,0x74D6,0x74D7,0x74D8, +0x74D9,0x74DA,0x74DB,0x74DD,0x74DF,0x74E1,0x74E5,0x74E7, +0x74E8,0x74E9,0x74EA,0x74EB,0x74EC,0x74ED,0x74F0,0x74F1, +0x74F2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x74F3,0x74F5,0x74F8,0x74F9,0x74FA,0x74FB,0x74FC,0x74FD, +0x74FE,0x7500,0x7501,0x7502,0x7503,0x7505,0x7506,0x7507, +0x7508,0x7509,0x750A,0x750B,0x750C,0x750E,0x7510,0x7512, +0x7514,0x7515,0x7516,0x7517,0x751B,0x751D,0x751E,0x7520, +0x7521,0x7522,0x7523,0x7524,0x7526,0x7527,0x752A,0x752E, +0x7534,0x7536,0x7539,0x753C,0x753D,0x753F,0x7541,0x7542, +0x7543,0x7544,0x7546,0x7547,0x7549,0x754A,0x754D,0x7550, +0x7551,0x7552,0x7553,0x7555,0x7556,0x7557,0x7558, 0, +0x755D,0x755E,0x755F,0x7560,0x7561,0x7562,0x7563,0x7564, +0x7567,0x7568,0x7569,0x756B,0x756C,0x756D,0x756E,0x756F, +0x7570,0x7571,0x7573,0x7575,0x7576,0x7577,0x757A,0x757B, +0x757C,0x757D,0x757E,0x7580,0x7581,0x7582,0x7584,0x7585, +0x7587, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7588,0x7589,0x758A,0x758C,0x758D,0x758E,0x7590,0x7593, +0x7595,0x7598,0x759B,0x759C,0x759E,0x75A2,0x75A6,0x75A7, +0x75A8,0x75A9,0x75AA,0x75AD,0x75B6,0x75B7,0x75BA,0x75BB, +0x75BF,0x75C0,0x75C1,0x75C6,0x75CB,0x75CC,0x75CE,0x75CF, +0x75D0,0x75D1,0x75D3,0x75D7,0x75D9,0x75DA,0x75DC,0x75DD, +0x75DF,0x75E0,0x75E1,0x75E5,0x75E9,0x75EC,0x75ED,0x75EE, +0x75EF,0x75F2,0x75F3,0x75F5,0x75F6,0x75F7,0x75F8,0x75FA, +0x75FB,0x75FD,0x75FE,0x7602,0x7604,0x7606,0x7607, 0, +0x7608,0x7609,0x760B,0x760D,0x760E,0x760F,0x7611,0x7612, +0x7613,0x7614,0x7616,0x761A,0x761C,0x761D,0x761E,0x7621, +0x7623,0x7627,0x7628,0x762C,0x762E,0x762F,0x7631,0x7632, +0x7636,0x7637,0x7639,0x763A,0x763B,0x763D,0x7641,0x7642, +0x7644, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7645,0x7646,0x7647,0x7648,0x7649,0x764A,0x764B,0x764E, +0x764F,0x7650,0x7651,0x7652,0x7653,0x7655,0x7657,0x7658, +0x7659,0x765A,0x765B,0x765D,0x765F,0x7660,0x7661,0x7662, +0x7664,0x7665,0x7666,0x7667,0x7668,0x7669,0x766A,0x766C, +0x766D,0x766E,0x7670,0x7671,0x7672,0x7673,0x7674,0x7675, +0x7676,0x7677,0x7679,0x767A,0x767C,0x767F,0x7680,0x7681, +0x7683,0x7685,0x7689,0x768A,0x768C,0x768D,0x768F,0x7690, +0x7692,0x7694,0x7695,0x7697,0x7698,0x769A,0x769B, 0, +0x769C,0x769D,0x769E,0x769F,0x76A0,0x76A1,0x76A2,0x76A3, +0x76A5,0x76A6,0x76A7,0x76A8,0x76A9,0x76AA,0x76AB,0x76AC, +0x76AD,0x76AF,0x76B0,0x76B3,0x76B5,0x76B6,0x76B7,0x76B8, +0x76B9,0x76BA,0x76BB,0x76BC,0x76BD,0x76BE,0x76C0,0x76C1, +0x76C3,0x554A,0x963F,0x57C3,0x6328,0x54CE,0x5509,0x54C0, +0x7691,0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,0x9698, +0x978D,0x6C28,0x5B89,0x4FFA,0x6309,0x6697,0x5CB8,0x80FA, +0x6848,0x80AE,0x6602,0x76CE,0x51F9,0x6556,0x71AC,0x7FF1, +0x8884,0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,0x6252, +0x53ED,0x5427,0x7B06,0x516B,0x75A4,0x5DF4,0x62D4,0x8DCB, +0x9776,0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,0x767D, +0x67CF,0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,0x6591, +0x73ED,0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,0x626E, +0x62CC,0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,0x5E2E, +0x6886,0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,0x9551, +0x508D,0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x76C4,0x76C7,0x76C9,0x76CB,0x76CC,0x76D3,0x76D5,0x76D9, +0x76DA,0x76DC,0x76DD,0x76DE,0x76E0,0x76E1,0x76E2,0x76E3, +0x76E4,0x76E6,0x76E7,0x76E8,0x76E9,0x76EA,0x76EB,0x76EC, +0x76ED,0x76F0,0x76F3,0x76F5,0x76F6,0x76F7,0x76FA,0x76FB, +0x76FD,0x76FF,0x7700,0x7702,0x7703,0x7705,0x7706,0x770A, +0x770C,0x770E,0x770F,0x7710,0x7711,0x7712,0x7713,0x7714, +0x7715,0x7716,0x7717,0x7718,0x771B,0x771C,0x771D,0x771E, +0x7721,0x7723,0x7724,0x7725,0x7727,0x772A,0x772B, 0, +0x772C,0x772E,0x7730,0x7731,0x7732,0x7733,0x7734,0x7739, +0x773B,0x773D,0x773E,0x773F,0x7742,0x7744,0x7745,0x7746, +0x7748,0x7749,0x774A,0x774B,0x774C,0x774D,0x774E,0x774F, +0x7752,0x7753,0x7754,0x7755,0x7756,0x7757,0x7758,0x7759, +0x775C,0x8584,0x96F9,0x4FDD,0x5821,0x9971,0x5B9D,0x62B1, +0x62A5,0x66B4,0x8C79,0x9C8D,0x7206,0x676F,0x7891,0x60B2, +0x5351,0x5317,0x8F88,0x80CC,0x8D1D,0x94A1,0x500D,0x72C8, +0x5907,0x60EB,0x7119,0x88AB,0x5954,0x82EF,0x672C,0x7B28, +0x5D29,0x7EF7,0x752D,0x6CF5,0x8E66,0x8FF8,0x903C,0x9F3B, +0x6BD4,0x9119,0x7B14,0x5F7C,0x78A7,0x84D6,0x853D,0x6BD5, +0x6BD9,0x6BD6,0x5E01,0x5E87,0x75F9,0x95ED,0x655D,0x5F0A, +0x5FC5,0x8F9F,0x58C1,0x81C2,0x907F,0x965B,0x97AD,0x8FB9, +0x7F16,0x8D2C,0x6241,0x4FBF,0x53D8,0x535E,0x8FA8,0x8FA9, +0x8FAB,0x904D,0x6807,0x5F6A,0x8198,0x8868,0x9CD6,0x618B, +0x522B,0x762A,0x5F6C,0x658C,0x6FD2,0x6EE8,0x5BBE,0x6448, +0x5175,0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x775D,0x775E,0x775F,0x7760,0x7764,0x7767,0x7769,0x776A, +0x776D,0x776E,0x776F,0x7770,0x7771,0x7772,0x7773,0x7774, +0x7775,0x7776,0x7777,0x7778,0x777A,0x777B,0x777C,0x7781, +0x7782,0x7783,0x7786,0x7787,0x7788,0x7789,0x778A,0x778B, +0x778F,0x7790,0x7793,0x7794,0x7795,0x7796,0x7797,0x7798, +0x7799,0x779A,0x779B,0x779C,0x779D,0x779E,0x77A1,0x77A3, +0x77A4,0x77A6,0x77A8,0x77AB,0x77AD,0x77AE,0x77AF,0x77B1, +0x77B2,0x77B4,0x77B6,0x77B7,0x77B8,0x77B9,0x77BA, 0, +0x77BC,0x77BE,0x77C0,0x77C1,0x77C2,0x77C3,0x77C4,0x77C5, +0x77C6,0x77C7,0x77C8,0x77C9,0x77CA,0x77CB,0x77CC,0x77CE, +0x77CF,0x77D0,0x77D1,0x77D2,0x77D3,0x77D4,0x77D5,0x77D6, +0x77D8,0x77D9,0x77DA,0x77DD,0x77DE,0x77DF,0x77E0,0x77E1, +0x77E4,0x75C5,0x5E76,0x73BB,0x83E0,0x64AD,0x62E8,0x94B5, +0x6CE2,0x535A,0x52C3,0x640F,0x94C2,0x7B94,0x4F2F,0x5E1B, +0x8236,0x8116,0x818A,0x6E24,0x6CCA,0x9A73,0x6355,0x535C, +0x54FA,0x8865,0x57E0,0x4E0D,0x5E03,0x6B65,0x7C3F,0x90E8, +0x6016,0x64E6,0x731C,0x88C1,0x6750,0x624D,0x8D22,0x776C, +0x8E29,0x91C7,0x5F69,0x83DC,0x8521,0x9910,0x53C2,0x8695, +0x6B8B,0x60ED,0x60E8,0x707F,0x82CD,0x8231,0x4ED3,0x6CA7, +0x85CF,0x64CD,0x7CD9,0x69FD,0x66F9,0x8349,0x5395,0x7B56, +0x4FA7,0x518C,0x6D4B,0x5C42,0x8E6D,0x63D2,0x53C9,0x832C, +0x8336,0x67E5,0x78B4,0x643D,0x5BDF,0x5C94,0x5DEE,0x8BE7, +0x62C6,0x67F4,0x8C7A,0x6400,0x63BA,0x8749,0x998B,0x8C17, +0x7F20,0x94F2,0x4EA7,0x9610,0x98A4,0x660C,0x7316, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x77E6,0x77E8,0x77EA,0x77EF,0x77F0,0x77F1,0x77F2,0x77F4, +0x77F5,0x77F7,0x77F9,0x77FA,0x77FB,0x77FC,0x7803,0x7804, +0x7805,0x7806,0x7807,0x7808,0x780A,0x780B,0x780E,0x780F, +0x7810,0x7813,0x7815,0x7819,0x781B,0x781E,0x7820,0x7821, +0x7822,0x7824,0x7828,0x782A,0x782B,0x782E,0x782F,0x7831, +0x7832,0x7833,0x7835,0x7836,0x783D,0x783F,0x7841,0x7842, +0x7843,0x7844,0x7846,0x7848,0x7849,0x784A,0x784B,0x784D, +0x784F,0x7851,0x7853,0x7854,0x7858,0x7859,0x785A, 0, +0x785B,0x785C,0x785E,0x785F,0x7860,0x7861,0x7862,0x7863, +0x7864,0x7865,0x7866,0x7867,0x7868,0x7869,0x786F,0x7870, +0x7871,0x7872,0x7873,0x7874,0x7875,0x7876,0x7878,0x7879, +0x787A,0x787B,0x787D,0x787E,0x787F,0x7880,0x7881,0x7882, +0x7883,0x573A,0x5C1D,0x5E38,0x957F,0x507F,0x80A0,0x5382, +0x655E,0x7545,0x5531,0x5021,0x8D85,0x6284,0x949E,0x671D, +0x5632,0x6F6E,0x5DE2,0x5435,0x7092,0x8F66,0x626F,0x64A4, +0x63A3,0x5F7B,0x6F88,0x90F4,0x81E3,0x8FB0,0x5C18,0x6668, +0x5FF1,0x6C89,0x9648,0x8D81,0x886C,0x6491,0x79F0,0x57CE, +0x6A59,0x6210,0x5448,0x4E58,0x7A0B,0x60E9,0x6F84,0x8BDA, +0x627F,0x901E,0x9A8B,0x79E4,0x5403,0x75F4,0x6301,0x5319, +0x6C60,0x8FDF,0x5F1B,0x9A70,0x803B,0x9F7F,0x4F88,0x5C3A, +0x8D64,0x7FC5,0x65A5,0x70BD,0x5145,0x51B2,0x866B,0x5D07, +0x5BA0,0x62BD,0x916C,0x7574,0x8E0C,0x7A20,0x6101,0x7B79, +0x4EC7,0x7EF8,0x7785,0x4E11,0x81ED,0x521D,0x51FA,0x6A71, +0x53A8,0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7884,0x7885,0x7886,0x7888,0x788A,0x788B,0x788F,0x7890, +0x7892,0x7894,0x7895,0x7896,0x7899,0x789D,0x789E,0x78A0, +0x78A2,0x78A4,0x78A6,0x78A8,0x78A9,0x78AA,0x78AB,0x78AC, +0x78AD,0x78AE,0x78AF,0x78B5,0x78B6,0x78B7,0x78B8,0x78BA, +0x78BB,0x78BC,0x78BD,0x78BF,0x78C0,0x78C2,0x78C3,0x78C4, +0x78C6,0x78C7,0x78C8,0x78CC,0x78CD,0x78CE,0x78CF,0x78D1, +0x78D2,0x78D3,0x78D6,0x78D7,0x78D8,0x78DA,0x78DB,0x78DC, +0x78DD,0x78DE,0x78DF,0x78E0,0x78E1,0x78E2,0x78E3, 0, +0x78E4,0x78E5,0x78E6,0x78E7,0x78E9,0x78EA,0x78EB,0x78ED, +0x78EE,0x78EF,0x78F0,0x78F1,0x78F3,0x78F5,0x78F6,0x78F8, +0x78F9,0x78FB,0x78FC,0x78FD,0x78FE,0x78FF,0x7900,0x7902, +0x7903,0x7904,0x7906,0x7907,0x7908,0x7909,0x790A,0x790B, +0x790C,0x7840,0x50A8,0x77D7,0x6410,0x89E6,0x5904,0x63E3, +0x5DDD,0x7A7F,0x693D,0x4F20,0x8239,0x5598,0x4E32,0x75AE, +0x7A97,0x5E62,0x5E8A,0x95EF,0x521B,0x5439,0x708A,0x6376, +0x9524,0x5782,0x6625,0x693F,0x9187,0x5507,0x6DF3,0x7EAF, +0x8822,0x6233,0x7EF0,0x75B5,0x8328,0x78C1,0x96CC,0x8F9E, +0x6148,0x74F7,0x8BCD,0x6B64,0x523A,0x8D50,0x6B21,0x806A, +0x8471,0x56F1,0x5306,0x4ECE,0x4E1B,0x51D1,0x7C97,0x918B, +0x7C07,0x4FC3,0x8E7F,0x7BE1,0x7A9C,0x6467,0x5D14,0x50AC, +0x8106,0x7601,0x7CB9,0x6DEC,0x7FE0,0x6751,0x5B58,0x5BF8, +0x78CB,0x64AE,0x6413,0x63AA,0x632B,0x9519,0x642D,0x8FBE, +0x7B54,0x7629,0x6253,0x5927,0x5446,0x6B79,0x50A3,0x6234, +0x5E26,0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x790D,0x790E,0x790F,0x7910,0x7911,0x7912,0x7914,0x7915, +0x7916,0x7917,0x7918,0x7919,0x791A,0x791B,0x791C,0x791D, +0x791F,0x7920,0x7921,0x7922,0x7923,0x7925,0x7926,0x7927, +0x7928,0x7929,0x792A,0x792B,0x792C,0x792D,0x792E,0x792F, +0x7930,0x7931,0x7932,0x7933,0x7935,0x7936,0x7937,0x7938, +0x7939,0x793D,0x793F,0x7942,0x7943,0x7944,0x7945,0x7947, +0x794A,0x794B,0x794C,0x794D,0x794E,0x794F,0x7950,0x7951, +0x7952,0x7954,0x7955,0x7958,0x7959,0x7961,0x7963, 0, +0x7964,0x7966,0x7969,0x796A,0x796B,0x796C,0x796E,0x7970, +0x7971,0x7972,0x7973,0x7974,0x7975,0x7976,0x7979,0x797B, +0x797C,0x797D,0x797E,0x797F,0x7982,0x7983,0x7986,0x7987, +0x7988,0x7989,0x798B,0x798C,0x798D,0x798E,0x7990,0x7991, +0x7992,0x6020,0x803D,0x62C5,0x4E39,0x5355,0x90F8,0x63B8, +0x80C6,0x65E6,0x6C2E,0x4F46,0x60EE,0x6DE1,0x8BDE,0x5F39, +0x86CB,0x5F53,0x6321,0x515A,0x8361,0x6863,0x5200,0x6363, +0x8E48,0x5012,0x5C9B,0x7977,0x5BFC,0x5230,0x7A3B,0x60BC, +0x9053,0x76D7,0x5FB7,0x5F97,0x7684,0x8E6C,0x706F,0x767B, +0x7B49,0x77AA,0x51F3,0x9093,0x5824,0x4F4E,0x6EF4,0x8FEA, +0x654C,0x7B1B,0x72C4,0x6DA4,0x7FDF,0x5AE1,0x62B5,0x5E95, +0x5730,0x8482,0x7B2C,0x5E1D,0x5F1F,0x9012,0x7F14,0x98A0, +0x6382,0x6EC7,0x7898,0x70B9,0x5178,0x975B,0x57AB,0x7535, +0x4F43,0x7538,0x5E97,0x60E6,0x5960,0x6DC0,0x6BBF,0x7889, +0x53FC,0x96D5,0x51CB,0x5201,0x6389,0x540A,0x9493,0x8C03, +0x8DCC,0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7993,0x7994,0x7995,0x7996,0x7997,0x7998,0x7999,0x799B, +0x799C,0x799D,0x799E,0x799F,0x79A0,0x79A1,0x79A2,0x79A3, +0x79A4,0x79A5,0x79A6,0x79A8,0x79A9,0x79AA,0x79AB,0x79AC, +0x79AD,0x79AE,0x79AF,0x79B0,0x79B1,0x79B2,0x79B4,0x79B5, +0x79B6,0x79B7,0x79B8,0x79BC,0x79BF,0x79C2,0x79C4,0x79C5, +0x79C7,0x79C8,0x79CA,0x79CC,0x79CE,0x79CF,0x79D0,0x79D3, +0x79D4,0x79D6,0x79D7,0x79D9,0x79DA,0x79DB,0x79DC,0x79DD, +0x79DE,0x79E0,0x79E1,0x79E2,0x79E5,0x79E8,0x79EA, 0, +0x79EC,0x79EE,0x79F1,0x79F2,0x79F3,0x79F4,0x79F5,0x79F6, +0x79F7,0x79F9,0x79FA,0x79FC,0x79FE,0x79FF,0x7A01,0x7A04, +0x7A05,0x7A07,0x7A08,0x7A09,0x7A0A,0x7A0C,0x7A0F,0x7A10, +0x7A11,0x7A12,0x7A13,0x7A15,0x7A16,0x7A18,0x7A19,0x7A1B, +0x7A1C,0x4E01,0x76EF,0x53EE,0x9489,0x9876,0x9F0E,0x952D, +0x5B9A,0x8BA2,0x4E22,0x4E1C,0x51AC,0x8463,0x61C2,0x52A8, +0x680B,0x4F97,0x606B,0x51BB,0x6D1E,0x515C,0x6296,0x6597, +0x9661,0x8C46,0x9017,0x75D8,0x90FD,0x7763,0x6BD2,0x728A, +0x72EC,0x8BFB,0x5835,0x7779,0x8D4C,0x675C,0x9540,0x809A, +0x5EA6,0x6E21,0x5992,0x7AEF,0x77ED,0x953B,0x6BB5,0x65AD, +0x7F0E,0x5806,0x5151,0x961F,0x5BF9,0x58A9,0x5428,0x8E72, +0x6566,0x987F,0x56E4,0x949D,0x76FE,0x9041,0x6387,0x54C6, +0x591A,0x593A,0x579B,0x8EB2,0x6735,0x8DFA,0x8235,0x5241, +0x60F0,0x5815,0x86FE,0x5CE8,0x9E45,0x4FC4,0x989D,0x8BB9, +0x5A25,0x6076,0x5384,0x627C,0x904F,0x9102,0x997F,0x6069, +0x800C,0x513F,0x8033,0x5C14,0x9975,0x6D31,0x4E8C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7A1D,0x7A1F,0x7A21,0x7A22,0x7A24,0x7A25,0x7A26,0x7A27, +0x7A28,0x7A29,0x7A2A,0x7A2B,0x7A2C,0x7A2D,0x7A2E,0x7A2F, +0x7A30,0x7A31,0x7A32,0x7A34,0x7A35,0x7A36,0x7A38,0x7A3A, +0x7A3E,0x7A40,0x7A41,0x7A42,0x7A43,0x7A44,0x7A45,0x7A47, +0x7A48,0x7A49,0x7A4A,0x7A4B,0x7A4C,0x7A4D,0x7A4E,0x7A4F, +0x7A50,0x7A52,0x7A53,0x7A54,0x7A55,0x7A56,0x7A58,0x7A59, +0x7A5A,0x7A5B,0x7A5C,0x7A5D,0x7A5E,0x7A5F,0x7A60,0x7A61, +0x7A62,0x7A63,0x7A64,0x7A65,0x7A66,0x7A67,0x7A68, 0, +0x7A69,0x7A6A,0x7A6B,0x7A6C,0x7A6D,0x7A6E,0x7A6F,0x7A71, +0x7A72,0x7A73,0x7A75,0x7A7B,0x7A7C,0x7A7D,0x7A7E,0x7A82, +0x7A85,0x7A87,0x7A89,0x7A8A,0x7A8B,0x7A8C,0x7A8E,0x7A8F, +0x7A90,0x7A93,0x7A94,0x7A99,0x7A9A,0x7A9B,0x7A9E,0x7AA1, +0x7AA2,0x8D30,0x53D1,0x7F5A,0x7B4F,0x4F10,0x4E4F,0x9600, +0x6CD5,0x73D0,0x85E9,0x5E06,0x756A,0x7FFB,0x6A0A,0x77FE, +0x9492,0x7E41,0x51E1,0x70E6,0x53CD,0x8FD4,0x8303,0x8D29, +0x72AF,0x996D,0x6CDB,0x574A,0x82B3,0x65B9,0x80AA,0x623F, +0x9632,0x59A8,0x4EFF,0x8BBF,0x7EBA,0x653E,0x83F2,0x975E, +0x5561,0x98DE,0x80A5,0x532A,0x8BFD,0x5420,0x80BA,0x5E9F, +0x6CB8,0x8D39,0x82AC,0x915A,0x5429,0x6C1B,0x5206,0x7EB7, +0x575F,0x711A,0x6C7E,0x7C89,0x594B,0x4EFD,0x5FFF,0x6124, +0x7CAA,0x4E30,0x5C01,0x67AB,0x8702,0x5CF0,0x950B,0x98CE, +0x75AF,0x70FD,0x9022,0x51AF,0x7F1D,0x8BBD,0x5949,0x51E4, +0x4F5B,0x5426,0x592B,0x6577,0x80A4,0x5B75,0x6276,0x62C2, +0x8F90,0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7AA3,0x7AA4,0x7AA7,0x7AA9,0x7AAA,0x7AAB,0x7AAE,0x7AAF, +0x7AB0,0x7AB1,0x7AB2,0x7AB4,0x7AB5,0x7AB6,0x7AB7,0x7AB8, +0x7AB9,0x7ABA,0x7ABB,0x7ABC,0x7ABD,0x7ABE,0x7AC0,0x7AC1, +0x7AC2,0x7AC3,0x7AC4,0x7AC5,0x7AC6,0x7AC7,0x7AC8,0x7AC9, +0x7ACA,0x7ACC,0x7ACD,0x7ACE,0x7ACF,0x7AD0,0x7AD1,0x7AD2, +0x7AD3,0x7AD4,0x7AD5,0x7AD7,0x7AD8,0x7ADA,0x7ADB,0x7ADC, +0x7ADD,0x7AE1,0x7AE2,0x7AE4,0x7AE7,0x7AE8,0x7AE9,0x7AEA, +0x7AEB,0x7AEC,0x7AEE,0x7AF0,0x7AF1,0x7AF2,0x7AF3, 0, +0x7AF4,0x7AF5,0x7AF6,0x7AF7,0x7AF8,0x7AFB,0x7AFC,0x7AFE, +0x7B00,0x7B01,0x7B02,0x7B05,0x7B07,0x7B09,0x7B0C,0x7B0D, +0x7B0E,0x7B10,0x7B12,0x7B13,0x7B16,0x7B17,0x7B18,0x7B1A, +0x7B1C,0x7B1D,0x7B1F,0x7B21,0x7B22,0x7B23,0x7B27,0x7B29, +0x7B2D,0x6D6E,0x6DAA,0x798F,0x88B1,0x5F17,0x752B,0x629A, +0x8F85,0x4FEF,0x91DC,0x65A7,0x812F,0x8151,0x5E9C,0x8150, +0x8D74,0x526F,0x8986,0x8D4B,0x590D,0x5085,0x4ED8,0x961C, +0x7236,0x8179,0x8D1F,0x5BCC,0x8BA3,0x9644,0x5987,0x7F1A, +0x5490,0x5676,0x560E,0x8BE5,0x6539,0x6982,0x9499,0x76D6, +0x6E89,0x5E72,0x7518,0x6746,0x67D1,0x7AFF,0x809D,0x8D76, +0x611F,0x79C6,0x6562,0x8D63,0x5188,0x521A,0x94A2,0x7F38, +0x809B,0x7EB2,0x5C97,0x6E2F,0x6760,0x7BD9,0x768B,0x9AD8, +0x818F,0x7F94,0x7CD5,0x641E,0x9550,0x7A3F,0x544A,0x54E5, +0x6B4C,0x6401,0x6208,0x9E3D,0x80F3,0x7599,0x5272,0x9769, +0x845B,0x683C,0x86E4,0x9601,0x9694,0x94EC,0x4E2A,0x5404, +0x7ED9,0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7B2F,0x7B30,0x7B32,0x7B34,0x7B35,0x7B36,0x7B37,0x7B39, +0x7B3B,0x7B3D,0x7B3F,0x7B40,0x7B41,0x7B42,0x7B43,0x7B44, +0x7B46,0x7B48,0x7B4A,0x7B4D,0x7B4E,0x7B53,0x7B55,0x7B57, +0x7B59,0x7B5C,0x7B5E,0x7B5F,0x7B61,0x7B63,0x7B64,0x7B65, +0x7B66,0x7B67,0x7B68,0x7B69,0x7B6A,0x7B6B,0x7B6C,0x7B6D, +0x7B6F,0x7B70,0x7B73,0x7B74,0x7B76,0x7B78,0x7B7A,0x7B7C, +0x7B7D,0x7B7F,0x7B81,0x7B82,0x7B83,0x7B84,0x7B86,0x7B87, +0x7B88,0x7B89,0x7B8A,0x7B8B,0x7B8C,0x7B8E,0x7B8F, 0, +0x7B91,0x7B92,0x7B93,0x7B96,0x7B98,0x7B99,0x7B9A,0x7B9B, +0x7B9E,0x7B9F,0x7BA0,0x7BA3,0x7BA4,0x7BA5,0x7BAE,0x7BAF, +0x7BB0,0x7BB2,0x7BB3,0x7BB5,0x7BB6,0x7BB7,0x7BB9,0x7BBA, +0x7BBB,0x7BBC,0x7BBD,0x7BBE,0x7BBF,0x7BC0,0x7BC2,0x7BC3, +0x7BC4,0x57C2,0x803F,0x6897,0x5DE5,0x653B,0x529F,0x606D, +0x9F9A,0x4F9B,0x8EAC,0x516C,0x5BAB,0x5F13,0x5DE9,0x6C5E, +0x62F1,0x8D21,0x5171,0x94A9,0x52FE,0x6C9F,0x82DF,0x72D7, +0x57A2,0x6784,0x8D2D,0x591F,0x8F9C,0x83C7,0x5495,0x7B8D, +0x4F30,0x6CBD,0x5B64,0x59D1,0x9F13,0x53E4,0x86CA,0x9AA8, +0x8C37,0x80A1,0x6545,0x987E,0x56FA,0x96C7,0x522E,0x74DC, +0x5250,0x5BE1,0x6302,0x8902,0x4E56,0x62D0,0x602A,0x68FA, +0x5173,0x5B98,0x51A0,0x89C2,0x7BA1,0x9986,0x7F50,0x60EF, +0x704C,0x8D2F,0x5149,0x5E7F,0x901B,0x7470,0x89C4,0x572D, +0x7845,0x5F52,0x9F9F,0x95FA,0x8F68,0x9B3C,0x8BE1,0x7678, +0x6842,0x67DC,0x8DEA,0x8D35,0x523D,0x8F8A,0x6EDA,0x68CD, +0x9505,0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7BC5,0x7BC8,0x7BC9,0x7BCA,0x7BCB,0x7BCD,0x7BCE,0x7BCF, +0x7BD0,0x7BD2,0x7BD4,0x7BD5,0x7BD6,0x7BD7,0x7BD8,0x7BDB, +0x7BDC,0x7BDE,0x7BDF,0x7BE0,0x7BE2,0x7BE3,0x7BE4,0x7BE7, +0x7BE8,0x7BE9,0x7BEB,0x7BEC,0x7BED,0x7BEF,0x7BF0,0x7BF2, +0x7BF3,0x7BF4,0x7BF5,0x7BF6,0x7BF8,0x7BF9,0x7BFA,0x7BFB, +0x7BFD,0x7BFF,0x7C00,0x7C01,0x7C02,0x7C03,0x7C04,0x7C05, +0x7C06,0x7C08,0x7C09,0x7C0A,0x7C0D,0x7C0E,0x7C10,0x7C11, +0x7C12,0x7C13,0x7C14,0x7C15,0x7C17,0x7C18,0x7C19, 0, +0x7C1A,0x7C1B,0x7C1C,0x7C1D,0x7C1E,0x7C20,0x7C21,0x7C22, +0x7C23,0x7C24,0x7C25,0x7C28,0x7C29,0x7C2B,0x7C2C,0x7C2D, +0x7C2E,0x7C2F,0x7C30,0x7C31,0x7C32,0x7C33,0x7C34,0x7C35, +0x7C36,0x7C37,0x7C39,0x7C3A,0x7C3B,0x7C3C,0x7C3D,0x7C3E, +0x7C42,0x9AB8,0x5B69,0x6D77,0x6C26,0x4EA5,0x5BB3,0x9A87, +0x9163,0x61A8,0x90AF,0x97E9,0x542B,0x6DB5,0x5BD2,0x51FD, +0x558A,0x7F55,0x7FF0,0x64BC,0x634D,0x65F1,0x61BE,0x608D, +0x710A,0x6C57,0x6C49,0x592F,0x676D,0x822A,0x58D5,0x568E, +0x8C6A,0x6BEB,0x90DD,0x597D,0x8017,0x53F7,0x6D69,0x5475, +0x559D,0x8377,0x83CF,0x6838,0x79BE,0x548C,0x4F55,0x5408, +0x76D2,0x8C89,0x9602,0x6CB3,0x6DB8,0x8D6B,0x8910,0x9E64, +0x8D3A,0x563F,0x9ED1,0x75D5,0x5F88,0x72E0,0x6068,0x54FC, +0x4EA8,0x6A2A,0x8861,0x6052,0x8F70,0x54C4,0x70D8,0x8679, +0x9E3F,0x6D2A,0x5B8F,0x5F18,0x7EA2,0x5589,0x4FAF,0x7334, +0x543C,0x539A,0x5019,0x540E,0x547C,0x4E4E,0x5FFD,0x745A, +0x58F6,0x846B,0x80E1,0x8774,0x72D0,0x7CCA,0x6E56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7C43,0x7C44,0x7C45,0x7C46,0x7C47,0x7C48,0x7C49,0x7C4A, +0x7C4B,0x7C4C,0x7C4E,0x7C4F,0x7C50,0x7C51,0x7C52,0x7C53, +0x7C54,0x7C55,0x7C56,0x7C57,0x7C58,0x7C59,0x7C5A,0x7C5B, +0x7C5C,0x7C5D,0x7C5E,0x7C5F,0x7C60,0x7C61,0x7C62,0x7C63, +0x7C64,0x7C65,0x7C66,0x7C67,0x7C68,0x7C69,0x7C6A,0x7C6B, +0x7C6C,0x7C6D,0x7C6E,0x7C6F,0x7C70,0x7C71,0x7C72,0x7C75, +0x7C76,0x7C77,0x7C78,0x7C79,0x7C7A,0x7C7E,0x7C7F,0x7C80, +0x7C81,0x7C82,0x7C83,0x7C84,0x7C85,0x7C86,0x7C87, 0, +0x7C88,0x7C8A,0x7C8B,0x7C8C,0x7C8D,0x7C8E,0x7C8F,0x7C90, +0x7C93,0x7C94,0x7C96,0x7C99,0x7C9A,0x7C9B,0x7CA0,0x7CA1, +0x7CA3,0x7CA6,0x7CA7,0x7CA8,0x7CA9,0x7CAB,0x7CAC,0x7CAD, +0x7CAF,0x7CB0,0x7CB4,0x7CB5,0x7CB6,0x7CB7,0x7CB8,0x7CBA, +0x7CBB,0x5F27,0x864E,0x552C,0x62A4,0x4E92,0x6CAA,0x6237, +0x82B1,0x54D7,0x534E,0x733E,0x6ED1,0x753B,0x5212,0x5316, +0x8BDD,0x69D0,0x5F8A,0x6000,0x6DEE,0x574F,0x6B22,0x73AF, +0x6853,0x8FD8,0x7F13,0x6362,0x60A3,0x5524,0x75EA,0x8C62, +0x7115,0x6DA3,0x5BA6,0x5E7B,0x8352,0x614C,0x9EC4,0x78FA, +0x8757,0x7C27,0x7687,0x51F0,0x60F6,0x714C,0x6643,0x5E4C, +0x604D,0x8C0E,0x7070,0x6325,0x8F89,0x5FBD,0x6062,0x86D4, +0x56DE,0x6BC1,0x6094,0x6167,0x5349,0x60E0,0x6666,0x8D3F, +0x79FD,0x4F1A,0x70E9,0x6C47,0x8BB3,0x8BF2,0x7ED8,0x8364, +0x660F,0x5A5A,0x9B42,0x6D51,0x6DF7,0x8C41,0x6D3B,0x4F19, +0x706B,0x83B7,0x6216,0x60D1,0x970D,0x8D27,0x7978,0x51FB, +0x573E,0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7CBF,0x7CC0,0x7CC2,0x7CC3,0x7CC4,0x7CC6,0x7CC9,0x7CCB, +0x7CCE,0x7CCF,0x7CD0,0x7CD1,0x7CD2,0x7CD3,0x7CD4,0x7CD8, +0x7CDA,0x7CDB,0x7CDD,0x7CDE,0x7CE1,0x7CE2,0x7CE3,0x7CE4, +0x7CE5,0x7CE6,0x7CE7,0x7CE9,0x7CEA,0x7CEB,0x7CEC,0x7CED, +0x7CEE,0x7CF0,0x7CF1,0x7CF2,0x7CF3,0x7CF4,0x7CF5,0x7CF6, +0x7CF7,0x7CF9,0x7CFA,0x7CFC,0x7CFD,0x7CFE,0x7CFF,0x7D00, +0x7D01,0x7D02,0x7D03,0x7D04,0x7D05,0x7D06,0x7D07,0x7D08, +0x7D09,0x7D0B,0x7D0C,0x7D0D,0x7D0E,0x7D0F,0x7D10, 0, +0x7D11,0x7D12,0x7D13,0x7D14,0x7D15,0x7D16,0x7D17,0x7D18, +0x7D19,0x7D1A,0x7D1B,0x7D1C,0x7D1D,0x7D1E,0x7D1F,0x7D21, +0x7D23,0x7D24,0x7D25,0x7D26,0x7D28,0x7D29,0x7D2A,0x7D2C, +0x7D2D,0x7D2E,0x7D30,0x7D31,0x7D32,0x7D33,0x7D34,0x7D35, +0x7D36,0x808C,0x9965,0x8FF9,0x6FC0,0x8BA5,0x9E21,0x59EC, +0x7EE9,0x7F09,0x5409,0x6781,0x68D8,0x8F91,0x7C4D,0x96C6, +0x53CA,0x6025,0x75BE,0x6C72,0x5373,0x5AC9,0x7EA7,0x6324, +0x51E0,0x810A,0x5DF1,0x84DF,0x6280,0x5180,0x5B63,0x4F0E, +0x796D,0x5242,0x60B8,0x6D4E,0x5BC4,0x5BC2,0x8BA1,0x8BB0, +0x65E2,0x5FCC,0x9645,0x5993,0x7EE7,0x7EAA,0x5609,0x67B7, +0x5939,0x4F73,0x5BB6,0x52A0,0x835A,0x988A,0x8D3E,0x7532, +0x94BE,0x5047,0x7A3C,0x4EF7,0x67B6,0x9A7E,0x5AC1,0x6B7C, +0x76D1,0x575A,0x5C16,0x7B3A,0x95F4,0x714E,0x517C,0x80A9, +0x8270,0x5978,0x7F04,0x8327,0x68C0,0x67EC,0x78B1,0x7877, +0x62E3,0x6361,0x7B80,0x4FED,0x526A,0x51CF,0x8350,0x69DB, +0x9274,0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7D37,0x7D38,0x7D39,0x7D3A,0x7D3B,0x7D3C,0x7D3D,0x7D3E, +0x7D3F,0x7D40,0x7D41,0x7D42,0x7D43,0x7D44,0x7D45,0x7D46, +0x7D47,0x7D48,0x7D49,0x7D4A,0x7D4B,0x7D4C,0x7D4D,0x7D4E, +0x7D4F,0x7D50,0x7D51,0x7D52,0x7D53,0x7D54,0x7D55,0x7D56, +0x7D57,0x7D58,0x7D59,0x7D5A,0x7D5B,0x7D5C,0x7D5D,0x7D5E, +0x7D5F,0x7D60,0x7D61,0x7D62,0x7D63,0x7D64,0x7D65,0x7D66, +0x7D67,0x7D68,0x7D69,0x7D6A,0x7D6B,0x7D6C,0x7D6D,0x7D6F, +0x7D70,0x7D71,0x7D72,0x7D73,0x7D74,0x7D75,0x7D76, 0, +0x7D78,0x7D79,0x7D7A,0x7D7B,0x7D7C,0x7D7D,0x7D7E,0x7D7F, +0x7D80,0x7D81,0x7D82,0x7D83,0x7D84,0x7D85,0x7D86,0x7D87, +0x7D88,0x7D89,0x7D8A,0x7D8B,0x7D8C,0x7D8D,0x7D8E,0x7D8F, +0x7D90,0x7D91,0x7D92,0x7D93,0x7D94,0x7D95,0x7D96,0x7D97, +0x7D98,0x5065,0x8230,0x5251,0x996F,0x6E10,0x6E85,0x6DA7, +0x5EFA,0x50F5,0x59DC,0x5C06,0x6D46,0x6C5F,0x7586,0x848B, +0x6868,0x5956,0x8BB2,0x5320,0x9171,0x964D,0x8549,0x6912, +0x7901,0x7126,0x80F6,0x4EA4,0x90CA,0x6D47,0x9A84,0x5A07, +0x56BC,0x6405,0x94F0,0x77EB,0x4FA5,0x811A,0x72E1,0x89D2, +0x997A,0x7F34,0x7EDE,0x527F,0x6559,0x9175,0x8F7F,0x8F83, +0x53EB,0x7A96,0x63ED,0x63A5,0x7686,0x79F8,0x8857,0x9636, +0x622A,0x52AB,0x8282,0x6854,0x6770,0x6377,0x776B,0x7AED, +0x6D01,0x7ED3,0x89E3,0x59D0,0x6212,0x85C9,0x82A5,0x754C, +0x501F,0x4ECB,0x75A5,0x8BEB,0x5C4A,0x5DFE,0x7B4B,0x65A4, +0x91D1,0x4ECA,0x6D25,0x895F,0x7D27,0x9526,0x4EC5,0x8C28, +0x8FDB,0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7D99,0x7D9A,0x7D9B,0x7D9C,0x7D9D,0x7D9E,0x7D9F,0x7DA0, +0x7DA1,0x7DA2,0x7DA3,0x7DA4,0x7DA5,0x7DA7,0x7DA8,0x7DA9, +0x7DAA,0x7DAB,0x7DAC,0x7DAD,0x7DAF,0x7DB0,0x7DB1,0x7DB2, +0x7DB3,0x7DB4,0x7DB5,0x7DB6,0x7DB7,0x7DB8,0x7DB9,0x7DBA, +0x7DBB,0x7DBC,0x7DBD,0x7DBE,0x7DBF,0x7DC0,0x7DC1,0x7DC2, +0x7DC3,0x7DC4,0x7DC5,0x7DC6,0x7DC7,0x7DC8,0x7DC9,0x7DCA, +0x7DCB,0x7DCC,0x7DCD,0x7DCE,0x7DCF,0x7DD0,0x7DD1,0x7DD2, +0x7DD3,0x7DD4,0x7DD5,0x7DD6,0x7DD7,0x7DD8,0x7DD9, 0, +0x7DDA,0x7DDB,0x7DDC,0x7DDD,0x7DDE,0x7DDF,0x7DE0,0x7DE1, +0x7DE2,0x7DE3,0x7DE4,0x7DE5,0x7DE6,0x7DE7,0x7DE8,0x7DE9, +0x7DEA,0x7DEB,0x7DEC,0x7DED,0x7DEE,0x7DEF,0x7DF0,0x7DF1, +0x7DF2,0x7DF3,0x7DF4,0x7DF5,0x7DF6,0x7DF7,0x7DF8,0x7DF9, +0x7DFA,0x5C3D,0x52B2,0x8346,0x5162,0x830E,0x775B,0x6676, +0x9CB8,0x4EAC,0x60CA,0x7CBE,0x7CB3,0x7ECF,0x4E95,0x8B66, +0x666F,0x9888,0x9759,0x5883,0x656C,0x955C,0x5F84,0x75C9, +0x9756,0x7ADF,0x7ADE,0x51C0,0x70AF,0x7A98,0x63EA,0x7A76, +0x7EA0,0x7396,0x97ED,0x4E45,0x7078,0x4E5D,0x9152,0x53A9, +0x6551,0x65E7,0x81FC,0x8205,0x548E,0x5C31,0x759A,0x97A0, +0x62D8,0x72D9,0x75BD,0x5C45,0x9A79,0x83CA,0x5C40,0x5480, +0x77E9,0x4E3E,0x6CAE,0x805A,0x62D2,0x636E,0x5DE8,0x5177, +0x8DDD,0x8E1E,0x952F,0x4FF1,0x53E5,0x60E7,0x70AC,0x5267, +0x6350,0x9E43,0x5A1F,0x5026,0x7737,0x5377,0x7EE2,0x6485, +0x652B,0x6289,0x6398,0x5014,0x7235,0x89C9,0x51B3,0x8BC0, +0x7EDD,0x5747,0x83CC,0x94A7,0x519B,0x541B,0x5CFB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7DFB,0x7DFC,0x7DFD,0x7DFE,0x7DFF,0x7E00,0x7E01,0x7E02, +0x7E03,0x7E04,0x7E05,0x7E06,0x7E07,0x7E08,0x7E09,0x7E0A, +0x7E0B,0x7E0C,0x7E0D,0x7E0E,0x7E0F,0x7E10,0x7E11,0x7E12, +0x7E13,0x7E14,0x7E15,0x7E16,0x7E17,0x7E18,0x7E19,0x7E1A, +0x7E1B,0x7E1C,0x7E1D,0x7E1E,0x7E1F,0x7E20,0x7E21,0x7E22, +0x7E23,0x7E24,0x7E25,0x7E26,0x7E27,0x7E28,0x7E29,0x7E2A, +0x7E2B,0x7E2C,0x7E2D,0x7E2E,0x7E2F,0x7E30,0x7E31,0x7E32, +0x7E33,0x7E34,0x7E35,0x7E36,0x7E37,0x7E38,0x7E39, 0, +0x7E3A,0x7E3C,0x7E3D,0x7E3E,0x7E3F,0x7E40,0x7E42,0x7E43, +0x7E44,0x7E45,0x7E46,0x7E48,0x7E49,0x7E4A,0x7E4B,0x7E4C, +0x7E4D,0x7E4E,0x7E4F,0x7E50,0x7E51,0x7E52,0x7E53,0x7E54, +0x7E55,0x7E56,0x7E57,0x7E58,0x7E59,0x7E5A,0x7E5B,0x7E5C, +0x7E5D,0x4FCA,0x7AE3,0x6D5A,0x90E1,0x9A8F,0x5580,0x5496, +0x5361,0x54AF,0x5F00,0x63E9,0x6977,0x51EF,0x6168,0x520A, +0x582A,0x52D8,0x574E,0x780D,0x770B,0x5EB7,0x6177,0x7CE0, +0x625B,0x6297,0x4EA2,0x7095,0x8003,0x62F7,0x70E4,0x9760, +0x5777,0x82DB,0x67EF,0x68F5,0x78D5,0x9897,0x79D1,0x58F3, +0x54B3,0x53EF,0x6E34,0x514B,0x523B,0x5BA2,0x8BFE,0x80AF, +0x5543,0x57A6,0x6073,0x5751,0x542D,0x7A7A,0x6050,0x5B54, +0x63A7,0x62A0,0x53E3,0x6263,0x5BC7,0x67AF,0x54ED,0x7A9F, +0x82E6,0x9177,0x5E93,0x88E4,0x5938,0x57AE,0x630E,0x8DE8, +0x80EF,0x5757,0x7B77,0x4FA9,0x5FEB,0x5BBD,0x6B3E,0x5321, +0x7B50,0x72C2,0x6846,0x77FF,0x7736,0x65F7,0x51B5,0x4E8F, +0x76D4,0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7E5E,0x7E5F,0x7E60,0x7E61,0x7E62,0x7E63,0x7E64,0x7E65, +0x7E66,0x7E67,0x7E68,0x7E69,0x7E6A,0x7E6B,0x7E6C,0x7E6D, +0x7E6E,0x7E6F,0x7E70,0x7E71,0x7E72,0x7E73,0x7E74,0x7E75, +0x7E76,0x7E77,0x7E78,0x7E79,0x7E7A,0x7E7B,0x7E7C,0x7E7D, +0x7E7E,0x7E7F,0x7E80,0x7E81,0x7E83,0x7E84,0x7E85,0x7E86, +0x7E87,0x7E88,0x7E89,0x7E8A,0x7E8B,0x7E8C,0x7E8D,0x7E8E, +0x7E8F,0x7E90,0x7E91,0x7E92,0x7E93,0x7E94,0x7E95,0x7E96, +0x7E97,0x7E98,0x7E99,0x7E9A,0x7E9C,0x7E9D,0x7E9E, 0, +0x7EAE,0x7EB4,0x7EBB,0x7EBC,0x7ED6,0x7EE4,0x7EEC,0x7EF9, +0x7F0A,0x7F10,0x7F1E,0x7F37,0x7F39,0x7F3B,0x7F3C,0x7F3D, +0x7F3E,0x7F3F,0x7F40,0x7F41,0x7F43,0x7F46,0x7F47,0x7F48, +0x7F49,0x7F4A,0x7F4B,0x7F4C,0x7F4D,0x7F4E,0x7F4F,0x7F52, +0x7F53,0x9988,0x6127,0x6E83,0x5764,0x6606,0x6346,0x56F0, +0x62EC,0x6269,0x5ED3,0x9614,0x5783,0x62C9,0x5587,0x8721, +0x814A,0x8FA3,0x5566,0x83B1,0x6765,0x8D56,0x84DD,0x5A6A, +0x680F,0x62E6,0x7BEE,0x9611,0x5170,0x6F9C,0x8C30,0x63FD, +0x89C8,0x61D2,0x7F06,0x70C2,0x6EE5,0x7405,0x6994,0x72FC, +0x5ECA,0x90CE,0x6717,0x6D6A,0x635E,0x52B3,0x7262,0x8001, +0x4F6C,0x59E5,0x916A,0x70D9,0x6D9D,0x52D2,0x4E50,0x96F7, +0x956D,0x857E,0x78CA,0x7D2F,0x5121,0x5792,0x64C2,0x808B, +0x7C7B,0x6CEA,0x68F1,0x695E,0x51B7,0x5398,0x68A8,0x7281, +0x9ECE,0x7BF1,0x72F8,0x79BB,0x6F13,0x7406,0x674E,0x91CC, +0x9CA4,0x793C,0x8389,0x8354,0x540F,0x6817,0x4E3D,0x5389, +0x52B1,0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7F56,0x7F59,0x7F5B,0x7F5C,0x7F5D,0x7F5E,0x7F60,0x7F63, +0x7F64,0x7F65,0x7F66,0x7F67,0x7F6B,0x7F6C,0x7F6D,0x7F6F, +0x7F70,0x7F73,0x7F75,0x7F76,0x7F77,0x7F78,0x7F7A,0x7F7B, +0x7F7C,0x7F7D,0x7F7F,0x7F80,0x7F82,0x7F83,0x7F84,0x7F85, +0x7F86,0x7F87,0x7F88,0x7F89,0x7F8B,0x7F8D,0x7F8F,0x7F90, +0x7F91,0x7F92,0x7F93,0x7F95,0x7F96,0x7F97,0x7F98,0x7F99, +0x7F9B,0x7F9C,0x7FA0,0x7FA2,0x7FA3,0x7FA5,0x7FA6,0x7FA8, +0x7FA9,0x7FAA,0x7FAB,0x7FAC,0x7FAD,0x7FAE,0x7FB1, 0, +0x7FB3,0x7FB4,0x7FB5,0x7FB6,0x7FB7,0x7FBA,0x7FBB,0x7FBE, +0x7FC0,0x7FC2,0x7FC3,0x7FC4,0x7FC6,0x7FC7,0x7FC8,0x7FC9, +0x7FCB,0x7FCD,0x7FCF,0x7FD0,0x7FD1,0x7FD2,0x7FD3,0x7FD6, +0x7FD7,0x7FD9,0x7FDA,0x7FDB,0x7FDC,0x7FDD,0x7FDE,0x7FE2, +0x7FE3,0x75E2,0x7ACB,0x7C92,0x6CA5,0x96B6,0x529B,0x7483, +0x54E9,0x4FE9,0x8054,0x83B2,0x8FDE,0x9570,0x5EC9,0x601C, +0x6D9F,0x5E18,0x655B,0x8138,0x94FE,0x604B,0x70BC,0x7EC3, +0x7CAE,0x51C9,0x6881,0x7CB1,0x826F,0x4E24,0x8F86,0x91CF, +0x667E,0x4EAE,0x8C05,0x64A9,0x804A,0x50DA,0x7597,0x71CE, +0x5BE5,0x8FBD,0x6F66,0x4E86,0x6482,0x9563,0x5ED6,0x6599, +0x5217,0x88C2,0x70C8,0x52A3,0x730E,0x7433,0x6797,0x78F7, +0x9716,0x4E34,0x90BB,0x9CDE,0x6DCB,0x51DB,0x8D41,0x541D, +0x62CE,0x73B2,0x83F1,0x96F6,0x9F84,0x94C3,0x4F36,0x7F9A, +0x51CC,0x7075,0x9675,0x5CAD,0x9886,0x53E6,0x4EE4,0x6E9C, +0x7409,0x69B4,0x786B,0x998F,0x7559,0x5218,0x7624,0x6D41, +0x67F3,0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x7FE4,0x7FE7,0x7FE8,0x7FEA,0x7FEB,0x7FEC,0x7FED,0x7FEF, +0x7FF2,0x7FF4,0x7FF5,0x7FF6,0x7FF7,0x7FF8,0x7FF9,0x7FFA, +0x7FFD,0x7FFE,0x7FFF,0x8002,0x8007,0x8008,0x8009,0x800A, +0x800E,0x800F,0x8011,0x8013,0x801A,0x801B,0x801D,0x801E, +0x801F,0x8021,0x8023,0x8024,0x802B,0x802C,0x802D,0x802E, +0x802F,0x8030,0x8032,0x8034,0x8039,0x803A,0x803C,0x803E, +0x8040,0x8041,0x8044,0x8045,0x8047,0x8048,0x8049,0x804E, +0x804F,0x8050,0x8051,0x8053,0x8055,0x8056,0x8057, 0, +0x8059,0x805B,0x805C,0x805D,0x805E,0x805F,0x8060,0x8061, +0x8062,0x8063,0x8064,0x8065,0x8066,0x8067,0x8068,0x806B, +0x806C,0x806D,0x806E,0x806F,0x8070,0x8072,0x8073,0x8074, +0x8075,0x8076,0x8077,0x8078,0x8079,0x807A,0x807B,0x807C, +0x807D,0x9686,0x5784,0x62E2,0x9647,0x697C,0x5A04,0x6402, +0x7BD3,0x6F0F,0x964B,0x82A6,0x5362,0x9885,0x5E90,0x7089, +0x63B3,0x5364,0x864F,0x9C81,0x9E93,0x788C,0x9732,0x8DEF, +0x8D42,0x9E7F,0x6F5E,0x7984,0x5F55,0x9646,0x622E,0x9A74, +0x5415,0x94DD,0x4FA3,0x65C5,0x5C65,0x5C61,0x7F15,0x8651, +0x6C2F,0x5F8B,0x7387,0x6EE4,0x7EFF,0x5CE6,0x631B,0x5B6A, +0x6EE6,0x5375,0x4E71,0x63A0,0x7565,0x62A1,0x8F6E,0x4F26, +0x4ED1,0x6CA6,0x7EB6,0x8BBA,0x841D,0x87BA,0x7F57,0x903B, +0x9523,0x7BA9,0x9AA1,0x88F8,0x843D,0x6D1B,0x9A86,0x7EDC, +0x5988,0x9EBB,0x739B,0x7801,0x8682,0x9A6C,0x9A82,0x561B, +0x5417,0x57CB,0x4E70,0x9EA6,0x5356,0x8FC8,0x8109,0x7792, +0x9992,0x86EE,0x6EE1,0x8513,0x66FC,0x6162,0x6F2B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x807E,0x8081,0x8082,0x8085,0x8088,0x808A,0x808D,0x808E, +0x808F,0x8090,0x8091,0x8092,0x8094,0x8095,0x8097,0x8099, +0x809E,0x80A3,0x80A6,0x80A7,0x80A8,0x80AC,0x80B0,0x80B3, +0x80B5,0x80B6,0x80B8,0x80B9,0x80BB,0x80C5,0x80C7,0x80C8, +0x80C9,0x80CA,0x80CB,0x80CF,0x80D0,0x80D1,0x80D2,0x80D3, +0x80D4,0x80D5,0x80D8,0x80DF,0x80E0,0x80E2,0x80E3,0x80E6, +0x80EE,0x80F5,0x80F7,0x80F9,0x80FB,0x80FE,0x80FF,0x8100, +0x8101,0x8103,0x8104,0x8105,0x8107,0x8108,0x810B, 0, +0x810C,0x8115,0x8117,0x8119,0x811B,0x811C,0x811D,0x811F, +0x8120,0x8121,0x8122,0x8123,0x8124,0x8125,0x8126,0x8127, +0x8128,0x8129,0x812A,0x812B,0x812D,0x812E,0x8130,0x8133, +0x8134,0x8135,0x8137,0x8139,0x813A,0x813B,0x813C,0x813D, +0x813F,0x8C29,0x8292,0x832B,0x76F2,0x6C13,0x5FD9,0x83BD, +0x732B,0x8305,0x951A,0x6BDB,0x77DB,0x94C6,0x536F,0x8302, +0x5192,0x5E3D,0x8C8C,0x8D38,0x4E48,0x73AB,0x679A,0x6885, +0x9176,0x9709,0x7164,0x6CA1,0x7709,0x5A92,0x9541,0x6BCF, +0x7F8E,0x6627,0x5BD0,0x59B9,0x5A9A,0x95E8,0x95F7,0x4EEC, +0x840C,0x8499,0x6AAC,0x76DF,0x9530,0x731B,0x68A6,0x5B5F, +0x772F,0x919A,0x9761,0x7CDC,0x8FF7,0x8C1C,0x5F25,0x7C73, +0x79D8,0x89C5,0x6CCC,0x871C,0x5BC6,0x5E42,0x68C9,0x7720, +0x7EF5,0x5195,0x514D,0x52C9,0x5A29,0x7F05,0x9762,0x82D7, +0x63CF,0x7784,0x85D0,0x79D2,0x6E3A,0x5E99,0x5999,0x8511, +0x706D,0x6C11,0x62BF,0x76BF,0x654F,0x60AF,0x95FD,0x660E, +0x879F,0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8140,0x8141,0x8142,0x8143,0x8144,0x8145,0x8147,0x8149, +0x814D,0x814E,0x814F,0x8152,0x8156,0x8157,0x8158,0x815B, +0x815C,0x815D,0x815E,0x815F,0x8161,0x8162,0x8163,0x8164, +0x8166,0x8168,0x816A,0x816B,0x816C,0x816F,0x8172,0x8173, +0x8175,0x8176,0x8177,0x8178,0x8181,0x8183,0x8184,0x8185, +0x8186,0x8187,0x8189,0x818B,0x818C,0x818D,0x818E,0x8190, +0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,0x8199,0x819A, +0x819E,0x819F,0x81A0,0x81A1,0x81A2,0x81A4,0x81A5, 0, +0x81A7,0x81A9,0x81AB,0x81AC,0x81AD,0x81AE,0x81AF,0x81B0, +0x81B1,0x81B2,0x81B4,0x81B5,0x81B6,0x81B7,0x81B8,0x81B9, +0x81BC,0x81BD,0x81BE,0x81BF,0x81C4,0x81C5,0x81C7,0x81C8, +0x81C9,0x81CB,0x81CD,0x81CE,0x81CF,0x81D0,0x81D1,0x81D2, +0x81D3,0x6479,0x8611,0x6A21,0x819C,0x78E8,0x6469,0x9B54, +0x62B9,0x672B,0x83AB,0x58A8,0x9ED8,0x6CAB,0x6F20,0x5BDE, +0x964C,0x8C0B,0x725F,0x67D0,0x62C7,0x7261,0x4EA9,0x59C6, +0x6BCD,0x5893,0x66AE,0x5E55,0x52DF,0x6155,0x6728,0x76EE, +0x7766,0x7267,0x7A46,0x62FF,0x54EA,0x5450,0x94A0,0x90A3, +0x5A1C,0x7EB3,0x6C16,0x4E43,0x5976,0x8010,0x5948,0x5357, +0x7537,0x96BE,0x56CA,0x6320,0x8111,0x607C,0x95F9,0x6DD6, +0x5462,0x9981,0x5185,0x5AE9,0x80FD,0x59AE,0x9713,0x502A, +0x6CE5,0x5C3C,0x62DF,0x4F60,0x533F,0x817B,0x9006,0x6EBA, +0x852B,0x62C8,0x5E74,0x78BE,0x64B5,0x637B,0x5FF5,0x5A18, +0x917F,0x9E1F,0x5C3F,0x634F,0x8042,0x5B7D,0x556E,0x954A, +0x954D,0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x81D4,0x81D5,0x81D6,0x81D7,0x81D8,0x81D9,0x81DA,0x81DB, +0x81DC,0x81DD,0x81DE,0x81DF,0x81E0,0x81E1,0x81E2,0x81E4, +0x81E5,0x81E6,0x81E8,0x81E9,0x81EB,0x81EE,0x81EF,0x81F0, +0x81F1,0x81F2,0x81F5,0x81F6,0x81F7,0x81F8,0x81F9,0x81FA, +0x81FD,0x81FF,0x8203,0x8207,0x8208,0x8209,0x820A,0x820B, +0x820E,0x820F,0x8211,0x8213,0x8215,0x8216,0x8217,0x8218, +0x8219,0x821A,0x821D,0x8220,0x8224,0x8225,0x8226,0x8227, +0x8229,0x822E,0x8232,0x823A,0x823C,0x823D,0x823F, 0, +0x8240,0x8241,0x8242,0x8243,0x8245,0x8246,0x8248,0x824A, +0x824C,0x824D,0x824E,0x8250,0x8251,0x8252,0x8253,0x8254, +0x8255,0x8256,0x8257,0x8259,0x825B,0x825C,0x825D,0x825E, +0x8260,0x8261,0x8262,0x8263,0x8264,0x8265,0x8266,0x8267, +0x8269,0x62E7,0x6CDE,0x725B,0x626D,0x94AE,0x7EBD,0x8113, +0x6D53,0x519C,0x5F04,0x5974,0x52AA,0x6012,0x5973,0x6696, +0x8650,0x759F,0x632A,0x61E6,0x7CEF,0x8BFA,0x54E6,0x6B27, +0x9E25,0x6BB4,0x85D5,0x5455,0x5076,0x6CA4,0x556A,0x8DB4, +0x722C,0x5E15,0x6015,0x7436,0x62CD,0x6392,0x724C,0x5F98, +0x6E43,0x6D3E,0x6500,0x6F58,0x76D8,0x78D0,0x76FC,0x7554, +0x5224,0x53DB,0x4E53,0x5E9E,0x65C1,0x802A,0x80D6,0x629B, +0x5486,0x5228,0x70AE,0x888D,0x8DD1,0x6CE1,0x5478,0x80DA, +0x57F9,0x88F4,0x8D54,0x966A,0x914D,0x4F69,0x6C9B,0x55B7, +0x76C6,0x7830,0x62A8,0x70F9,0x6F8E,0x5F6D,0x84EC,0x68DA, +0x787C,0x7BF7,0x81A8,0x670B,0x9E4F,0x6367,0x78B0,0x576F, +0x7812,0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x826A,0x826B,0x826C,0x826D,0x8271,0x8275,0x8276,0x8277, +0x8278,0x827B,0x827C,0x8280,0x8281,0x8283,0x8285,0x8286, +0x8287,0x8289,0x828C,0x8290,0x8293,0x8294,0x8295,0x8296, +0x829A,0x829B,0x829E,0x82A0,0x82A2,0x82A3,0x82A7,0x82B2, +0x82B5,0x82B6,0x82BA,0x82BB,0x82BC,0x82BF,0x82C0,0x82C2, +0x82C3,0x82C5,0x82C6,0x82C9,0x82D0,0x82D6,0x82D9,0x82DA, +0x82DD,0x82E2,0x82E7,0x82E8,0x82E9,0x82EA,0x82EC,0x82ED, +0x82EE,0x82F0,0x82F2,0x82F3,0x82F5,0x82F6,0x82F8, 0, +0x82FA,0x82FC,0x82FD,0x82FE,0x82FF,0x8300,0x830A,0x830B, +0x830D,0x8310,0x8312,0x8313,0x8316,0x8318,0x8319,0x831D, +0x831E,0x831F,0x8320,0x8321,0x8322,0x8323,0x8324,0x8325, +0x8326,0x8329,0x832A,0x832E,0x8330,0x8332,0x8337,0x833B, +0x833D,0x5564,0x813E,0x75B2,0x76AE,0x5339,0x75DE,0x50FB, +0x5C41,0x8B6C,0x7BC7,0x504F,0x7247,0x9A97,0x98D8,0x6F02, +0x74E2,0x7968,0x6487,0x77A5,0x62FC,0x9891,0x8D2B,0x54C1, +0x8058,0x4E52,0x576A,0x82F9,0x840D,0x5E73,0x51ED,0x74F6, +0x8BC4,0x5C4F,0x5761,0x6CFC,0x9887,0x5A46,0x7834,0x9B44, +0x8FEB,0x7C95,0x5256,0x6251,0x94FA,0x4EC6,0x8386,0x8461, +0x83E9,0x84B2,0x57D4,0x6734,0x5703,0x666E,0x6D66,0x8C31, +0x66DD,0x7011,0x671F,0x6B3A,0x6816,0x621A,0x59BB,0x4E03, +0x51C4,0x6F06,0x67D2,0x6C8F,0x5176,0x68CB,0x5947,0x6B67, +0x7566,0x5D0E,0x8110,0x9F50,0x65D7,0x7948,0x7941,0x9A91, +0x8D77,0x5C82,0x4E5E,0x4F01,0x542F,0x5951,0x780C,0x5668, +0x6C14,0x8FC4,0x5F03,0x6C7D,0x6CE3,0x8BAB,0x6390, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x833E,0x833F,0x8341,0x8342,0x8344,0x8345,0x8348,0x834A, +0x834B,0x834C,0x834D,0x834E,0x8353,0x8355,0x8356,0x8357, +0x8358,0x8359,0x835D,0x8362,0x8370,0x8371,0x8372,0x8373, +0x8374,0x8375,0x8376,0x8379,0x837A,0x837E,0x837F,0x8380, +0x8381,0x8382,0x8383,0x8384,0x8387,0x8388,0x838A,0x838B, +0x838C,0x838D,0x838F,0x8390,0x8391,0x8394,0x8395,0x8396, +0x8397,0x8399,0x839A,0x839D,0x839F,0x83A1,0x83A2,0x83A3, +0x83A4,0x83A5,0x83A6,0x83A7,0x83AC,0x83AD,0x83AE, 0, +0x83AF,0x83B5,0x83BB,0x83BE,0x83BF,0x83C2,0x83C3,0x83C4, +0x83C6,0x83C8,0x83C9,0x83CB,0x83CD,0x83CE,0x83D0,0x83D1, +0x83D2,0x83D3,0x83D5,0x83D7,0x83D9,0x83DA,0x83DB,0x83DE, +0x83E2,0x83E3,0x83E4,0x83E6,0x83E7,0x83E8,0x83EB,0x83EC, +0x83ED,0x6070,0x6D3D,0x7275,0x6266,0x948E,0x94C5,0x5343, +0x8FC1,0x7B7E,0x4EDF,0x8C26,0x4E7E,0x9ED4,0x94B1,0x94B3, +0x524D,0x6F5C,0x9063,0x6D45,0x8C34,0x5811,0x5D4C,0x6B20, +0x6B49,0x67AA,0x545B,0x8154,0x7F8C,0x5899,0x8537,0x5F3A, +0x62A2,0x6A47,0x9539,0x6572,0x6084,0x6865,0x77A7,0x4E54, +0x4FA8,0x5DE7,0x9798,0x64AC,0x7FD8,0x5CED,0x4FCF,0x7A8D, +0x5207,0x8304,0x4E14,0x602F,0x7A83,0x94A6,0x4FB5,0x4EB2, +0x79E6,0x7434,0x52E4,0x82B9,0x64D2,0x79BD,0x5BDD,0x6C81, +0x9752,0x8F7B,0x6C22,0x503E,0x537F,0x6E05,0x64CE,0x6674, +0x6C30,0x60C5,0x9877,0x8BF7,0x5E86,0x743C,0x7A77,0x79CB, +0x4E18,0x90B1,0x7403,0x6C42,0x56DA,0x914B,0x6CC5,0x8D8B, +0x533A,0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x83EE,0x83EF,0x83F3,0x83F4,0x83F5,0x83F6,0x83F7,0x83FA, +0x83FB,0x83FC,0x83FE,0x83FF,0x8400,0x8402,0x8405,0x8407, +0x8408,0x8409,0x840A,0x8410,0x8412,0x8413,0x8414,0x8415, +0x8416,0x8417,0x8419,0x841A,0x841B,0x841E,0x841F,0x8420, +0x8421,0x8422,0x8423,0x8429,0x842A,0x842B,0x842C,0x842D, +0x842E,0x842F,0x8430,0x8432,0x8433,0x8434,0x8435,0x8436, +0x8437,0x8439,0x843A,0x843B,0x843E,0x843F,0x8440,0x8441, +0x8442,0x8443,0x8444,0x8445,0x8447,0x8448,0x8449, 0, +0x844A,0x844B,0x844C,0x844D,0x844E,0x844F,0x8450,0x8452, +0x8453,0x8454,0x8455,0x8456,0x8458,0x845D,0x845E,0x845F, +0x8460,0x8462,0x8464,0x8465,0x8466,0x8467,0x8468,0x846A, +0x846E,0x846F,0x8470,0x8472,0x8474,0x8477,0x8479,0x847B, +0x847C,0x53D6,0x5A36,0x9F8B,0x8DA3,0x53BB,0x5708,0x98A7, +0x6743,0x919B,0x6CC9,0x5168,0x75CA,0x62F3,0x72AC,0x5238, +0x529D,0x7F3A,0x7094,0x7638,0x5374,0x9E4A,0x69B7,0x786E, +0x96C0,0x88D9,0x7FA4,0x7136,0x71C3,0x5189,0x67D3,0x74E4, +0x58E4,0x6518,0x56B7,0x8BA9,0x9976,0x6270,0x7ED5,0x60F9, +0x70ED,0x58EC,0x4EC1,0x4EBA,0x5FCD,0x97E7,0x4EFB,0x8BA4, +0x5203,0x598A,0x7EAB,0x6254,0x4ECD,0x65E5,0x620E,0x8338, +0x84C9,0x8363,0x878D,0x7194,0x6EB6,0x5BB9,0x7ED2,0x5197, +0x63C9,0x67D4,0x8089,0x8339,0x8815,0x5112,0x5B7A,0x5982, +0x8FB1,0x4E73,0x6C5D,0x5165,0x8925,0x8F6F,0x962E,0x854A, +0x745E,0x9510,0x95F0,0x6DA6,0x82E5,0x5F31,0x6492,0x6D12, +0x8428,0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x847D,0x847E,0x847F,0x8480,0x8481,0x8483,0x8484,0x8485, +0x8486,0x848A,0x848D,0x848F,0x8490,0x8491,0x8492,0x8493, +0x8494,0x8495,0x8496,0x8498,0x849A,0x849B,0x849D,0x849E, +0x849F,0x84A0,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6,0x84A7, +0x84A8,0x84A9,0x84AA,0x84AB,0x84AC,0x84AD,0x84AE,0x84B0, +0x84B1,0x84B3,0x84B5,0x84B6,0x84B7,0x84BB,0x84BC,0x84BE, +0x84C0,0x84C2,0x84C3,0x84C5,0x84C6,0x84C7,0x84C8,0x84CB, +0x84CC,0x84CE,0x84CF,0x84D2,0x84D4,0x84D5,0x84D7, 0, +0x84D8,0x84D9,0x84DA,0x84DB,0x84DC,0x84DE,0x84E1,0x84E2, +0x84E4,0x84E7,0x84E8,0x84E9,0x84EA,0x84EB,0x84ED,0x84EE, +0x84EF,0x84F1,0x84F2,0x84F3,0x84F4,0x84F5,0x84F6,0x84F7, +0x84F8,0x84F9,0x84FA,0x84FB,0x84FD,0x84FE,0x8500,0x8501, +0x8502,0x4F1E,0x6563,0x6851,0x55D3,0x4E27,0x6414,0x9A9A, +0x626B,0x5AC2,0x745F,0x8272,0x6DA9,0x68EE,0x50E7,0x838E, +0x7802,0x6740,0x5239,0x6C99,0x7EB1,0x50BB,0x5565,0x715E, +0x7B5B,0x6652,0x73CA,0x82EB,0x6749,0x5C71,0x5220,0x717D, +0x886B,0x95EA,0x9655,0x64C5,0x8D61,0x81B3,0x5584,0x6C55, +0x6247,0x7F2E,0x5892,0x4F24,0x5546,0x8D4F,0x664C,0x4E0A, +0x5C1A,0x88F3,0x68A2,0x634E,0x7A0D,0x70E7,0x828D,0x52FA, +0x97F6,0x5C11,0x54E8,0x90B5,0x7ECD,0x5962,0x8D4A,0x86C7, +0x820C,0x820D,0x8D66,0x6444,0x5C04,0x6151,0x6D89,0x793E, +0x8BBE,0x7837,0x7533,0x547B,0x4F38,0x8EAB,0x6DF1,0x5A20, +0x7EC5,0x795E,0x6C88,0x5BA1,0x5A76,0x751A,0x80BE,0x614E, +0x6E17,0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8503,0x8504,0x8505,0x8506,0x8507,0x8508,0x8509,0x850A, +0x850B,0x850D,0x850E,0x850F,0x8510,0x8512,0x8514,0x8515, +0x8516,0x8518,0x8519,0x851B,0x851C,0x851D,0x851E,0x8520, +0x8522,0x8523,0x8524,0x8525,0x8526,0x8527,0x8528,0x8529, +0x852A,0x852D,0x852E,0x852F,0x8530,0x8531,0x8532,0x8533, +0x8534,0x8535,0x8536,0x853E,0x853F,0x8540,0x8541,0x8542, +0x8544,0x8545,0x8546,0x8547,0x854B,0x854C,0x854D,0x854E, +0x854F,0x8550,0x8551,0x8552,0x8553,0x8554,0x8555, 0, +0x8557,0x8558,0x855A,0x855B,0x855C,0x855D,0x855F,0x8560, +0x8561,0x8562,0x8563,0x8565,0x8566,0x8567,0x8569,0x856A, +0x856B,0x856C,0x856D,0x856E,0x856F,0x8570,0x8571,0x8573, +0x8575,0x8576,0x8577,0x8578,0x857C,0x857D,0x857F,0x8580, +0x8581,0x7701,0x76DB,0x5269,0x80DC,0x5723,0x5E08,0x5931, +0x72EE,0x65BD,0x6E7F,0x8BD7,0x5C38,0x8671,0x5341,0x77F3, +0x62FE,0x65F6,0x4EC0,0x98DF,0x8680,0x5B9E,0x8BC6,0x53F2, +0x77E2,0x4F7F,0x5C4E,0x9A76,0x59CB,0x5F0F,0x793A,0x58EB, +0x4E16,0x67FF,0x4E8B,0x62ED,0x8A93,0x901D,0x52BF,0x662F, +0x55DC,0x566C,0x9002,0x4ED5,0x4F8D,0x91CA,0x9970,0x6C0F, +0x5E02,0x6043,0x5BA4,0x89C6,0x8BD5,0x6536,0x624B,0x9996, +0x5B88,0x5BFF,0x6388,0x552E,0x53D7,0x7626,0x517D,0x852C, +0x67A2,0x68B3,0x6B8A,0x6292,0x8F93,0x53D4,0x8212,0x6DD1, +0x758F,0x4E66,0x8D4E,0x5B70,0x719F,0x85AF,0x6691,0x66D9, +0x7F72,0x8700,0x9ECD,0x9F20,0x5C5E,0x672F,0x8FF0,0x6811, +0x675F,0x620D,0x7AD6,0x5885,0x5EB6,0x6570,0x6F31, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8582,0x8583,0x8586,0x8588,0x8589,0x858A,0x858B,0x858C, +0x858D,0x858E,0x8590,0x8591,0x8592,0x8593,0x8594,0x8595, +0x8596,0x8597,0x8598,0x8599,0x859A,0x859D,0x859E,0x859F, +0x85A0,0x85A1,0x85A2,0x85A3,0x85A5,0x85A6,0x85A7,0x85A9, +0x85AB,0x85AC,0x85AD,0x85B1,0x85B2,0x85B3,0x85B4,0x85B5, +0x85B6,0x85B8,0x85BA,0x85BB,0x85BC,0x85BD,0x85BE,0x85BF, +0x85C0,0x85C2,0x85C3,0x85C4,0x85C5,0x85C6,0x85C7,0x85C8, +0x85CA,0x85CB,0x85CC,0x85CD,0x85CE,0x85D1,0x85D2, 0, +0x85D4,0x85D6,0x85D7,0x85D8,0x85D9,0x85DA,0x85DB,0x85DD, +0x85DE,0x85DF,0x85E0,0x85E1,0x85E2,0x85E3,0x85E5,0x85E6, +0x85E7,0x85E8,0x85EA,0x85EB,0x85EC,0x85ED,0x85EE,0x85EF, +0x85F0,0x85F1,0x85F2,0x85F3,0x85F4,0x85F5,0x85F6,0x85F7, +0x85F8,0x6055,0x5237,0x800D,0x6454,0x8870,0x7529,0x5E05, +0x6813,0x62F4,0x971C,0x53CC,0x723D,0x8C01,0x6C34,0x7761, +0x7A0E,0x542E,0x77AC,0x987A,0x821C,0x8BF4,0x7855,0x6714, +0x70C1,0x65AF,0x6495,0x5636,0x601D,0x79C1,0x53F8,0x4E1D, +0x6B7B,0x8086,0x5BFA,0x55E3,0x56DB,0x4F3A,0x4F3C,0x9972, +0x5DF3,0x677E,0x8038,0x6002,0x9882,0x9001,0x5B8B,0x8BBC, +0x8BF5,0x641C,0x8258,0x64DE,0x55FD,0x82CF,0x9165,0x4FD7, +0x7D20,0x901F,0x7C9F,0x50F3,0x5851,0x6EAF,0x5BBF,0x8BC9, +0x8083,0x9178,0x849C,0x7B97,0x867D,0x968B,0x968F,0x7EE5, +0x9AD3,0x788E,0x5C81,0x7A57,0x9042,0x96A7,0x795F,0x5B59, +0x635F,0x7B0B,0x84D1,0x68AD,0x5506,0x7F29,0x7410,0x7D22, +0x9501,0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x85F9,0x85FA,0x85FC,0x85FD,0x85FE,0x8600,0x8601,0x8602, +0x8603,0x8604,0x8606,0x8607,0x8608,0x8609,0x860A,0x860B, +0x860C,0x860D,0x860E,0x860F,0x8610,0x8612,0x8613,0x8614, +0x8615,0x8617,0x8618,0x8619,0x861A,0x861B,0x861C,0x861D, +0x861E,0x861F,0x8620,0x8621,0x8622,0x8623,0x8624,0x8625, +0x8626,0x8628,0x862A,0x862B,0x862C,0x862D,0x862E,0x862F, +0x8630,0x8631,0x8632,0x8633,0x8634,0x8635,0x8636,0x8637, +0x8639,0x863A,0x863B,0x863D,0x863E,0x863F,0x8640, 0, +0x8641,0x8642,0x8643,0x8644,0x8645,0x8646,0x8647,0x8648, +0x8649,0x864A,0x864B,0x864C,0x8652,0x8653,0x8655,0x8656, +0x8657,0x8658,0x8659,0x865B,0x865C,0x865D,0x865F,0x8660, +0x8661,0x8663,0x8664,0x8665,0x8666,0x8667,0x8668,0x8669, +0x866A,0x736D,0x631E,0x8E4B,0x8E0F,0x80CE,0x82D4,0x62AC, +0x53F0,0x6CF0,0x915E,0x592A,0x6001,0x6C70,0x574D,0x644A, +0x8D2A,0x762B,0x6EE9,0x575B,0x6A80,0x75F0,0x6F6D,0x8C2D, +0x8C08,0x5766,0x6BEF,0x8892,0x78B3,0x63A2,0x53F9,0x70AD, +0x6C64,0x5858,0x642A,0x5802,0x68E0,0x819B,0x5510,0x7CD6, +0x5018,0x8EBA,0x6DCC,0x8D9F,0x70EB,0x638F,0x6D9B,0x6ED4, +0x7EE6,0x8404,0x6843,0x9003,0x6DD8,0x9676,0x8BA8,0x5957, +0x7279,0x85E4,0x817E,0x75BC,0x8A8A,0x68AF,0x5254,0x8E22, +0x9511,0x63D0,0x9898,0x8E44,0x557C,0x4F53,0x66FF,0x568F, +0x60D5,0x6D95,0x5243,0x5C49,0x5929,0x6DFB,0x586B,0x7530, +0x751C,0x606C,0x8214,0x8146,0x6311,0x6761,0x8FE2,0x773A, +0x8DF3,0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x866D,0x866F,0x8670,0x8672,0x8673,0x8674,0x8675,0x8676, +0x8677,0x8678,0x8683,0x8684,0x8685,0x8686,0x8687,0x8688, +0x8689,0x868E,0x868F,0x8690,0x8691,0x8692,0x8694,0x8696, +0x8697,0x8698,0x8699,0x869A,0x869B,0x869E,0x869F,0x86A0, +0x86A1,0x86A2,0x86A5,0x86A6,0x86AB,0x86AD,0x86AE,0x86B2, +0x86B3,0x86B7,0x86B8,0x86B9,0x86BB,0x86BC,0x86BD,0x86BE, +0x86BF,0x86C1,0x86C2,0x86C3,0x86C5,0x86C8,0x86CC,0x86CD, +0x86D2,0x86D3,0x86D5,0x86D6,0x86D7,0x86DA,0x86DC, 0, +0x86DD,0x86E0,0x86E1,0x86E2,0x86E3,0x86E5,0x86E6,0x86E7, +0x86E8,0x86EA,0x86EB,0x86EC,0x86EF,0x86F5,0x86F6,0x86F7, +0x86FA,0x86FB,0x86FC,0x86FD,0x86FF,0x8701,0x8704,0x8705, +0x8706,0x870B,0x870C,0x870E,0x870F,0x8710,0x8711,0x8714, +0x8716,0x6C40,0x5EF7,0x505C,0x4EAD,0x5EAD,0x633A,0x8247, +0x901A,0x6850,0x916E,0x77B3,0x540C,0x94DC,0x5F64,0x7AE5, +0x6876,0x6345,0x7B52,0x7EDF,0x75DB,0x5077,0x6295,0x5934, +0x900F,0x51F8,0x79C3,0x7A81,0x56FE,0x5F92,0x9014,0x6D82, +0x5C60,0x571F,0x5410,0x5154,0x6E4D,0x56E2,0x63A8,0x9893, +0x817F,0x8715,0x892A,0x9000,0x541E,0x5C6F,0x81C0,0x62D6, +0x6258,0x8131,0x9E35,0x9640,0x9A6E,0x9A7C,0x692D,0x59A5, +0x62D3,0x553E,0x6316,0x54C7,0x86D9,0x6D3C,0x5A03,0x74E6, +0x889C,0x6B6A,0x5916,0x8C4C,0x5F2F,0x6E7E,0x73A9,0x987D, +0x4E38,0x70F7,0x5B8C,0x7897,0x633D,0x665A,0x7696,0x60CB, +0x5B9B,0x5A49,0x4E07,0x8155,0x6C6A,0x738B,0x4EA1,0x6789, +0x7F51,0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8719,0x871B,0x871D,0x871F,0x8720,0x8724,0x8726,0x8727, +0x8728,0x872A,0x872B,0x872C,0x872D,0x872F,0x8730,0x8732, +0x8733,0x8735,0x8736,0x8738,0x8739,0x873A,0x873C,0x873D, +0x8740,0x8741,0x8742,0x8743,0x8744,0x8745,0x8746,0x874A, +0x874B,0x874D,0x874F,0x8750,0x8751,0x8752,0x8754,0x8755, +0x8756,0x8758,0x875A,0x875B,0x875C,0x875D,0x875E,0x875F, +0x8761,0x8762,0x8766,0x8767,0x8768,0x8769,0x876A,0x876B, +0x876C,0x876D,0x876F,0x8771,0x8772,0x8773,0x8775, 0, +0x8777,0x8778,0x8779,0x877A,0x877F,0x8780,0x8781,0x8784, +0x8786,0x8787,0x8789,0x878A,0x878C,0x878E,0x878F,0x8790, +0x8791,0x8792,0x8794,0x8795,0x8796,0x8798,0x8799,0x879A, +0x879B,0x879C,0x879D,0x879E,0x87A0,0x87A1,0x87A2,0x87A3, +0x87A4,0x5DCD,0x5FAE,0x5371,0x97E6,0x8FDD,0x6845,0x56F4, +0x552F,0x60DF,0x4E3A,0x6F4D,0x7EF4,0x82C7,0x840E,0x59D4, +0x4F1F,0x4F2A,0x5C3E,0x7EAC,0x672A,0x851A,0x5473,0x754F, +0x80C3,0x5582,0x9B4F,0x4F4D,0x6E2D,0x8C13,0x5C09,0x6170, +0x536B,0x761F,0x6E29,0x868A,0x6587,0x95FB,0x7EB9,0x543B, +0x7A33,0x7D0A,0x95EE,0x55E1,0x7FC1,0x74EE,0x631D,0x8717, +0x6DA1,0x7A9D,0x6211,0x65A1,0x5367,0x63E1,0x6C83,0x5DEB, +0x545C,0x94A8,0x4E4C,0x6C61,0x8BEC,0x5C4B,0x65E0,0x829C, +0x68A7,0x543E,0x5434,0x6BCB,0x6B66,0x4E94,0x6342,0x5348, +0x821E,0x4F0D,0x4FAE,0x575E,0x620A,0x96FE,0x6664,0x7269, +0x52FF,0x52A1,0x609F,0x8BEF,0x6614,0x7199,0x6790,0x897F, +0x7852,0x77FD,0x6670,0x563B,0x5438,0x9521,0x727A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x87A5,0x87A6,0x87A7,0x87A9,0x87AA,0x87AE,0x87B0,0x87B1, +0x87B2,0x87B4,0x87B6,0x87B7,0x87B8,0x87B9,0x87BB,0x87BC, +0x87BE,0x87BF,0x87C1,0x87C2,0x87C3,0x87C4,0x87C5,0x87C7, +0x87C8,0x87C9,0x87CC,0x87CD,0x87CE,0x87CF,0x87D0,0x87D4, +0x87D5,0x87D6,0x87D7,0x87D8,0x87D9,0x87DA,0x87DC,0x87DD, +0x87DE,0x87DF,0x87E1,0x87E2,0x87E3,0x87E4,0x87E6,0x87E7, +0x87E8,0x87E9,0x87EB,0x87EC,0x87ED,0x87EF,0x87F0,0x87F1, +0x87F2,0x87F3,0x87F4,0x87F5,0x87F6,0x87F7,0x87F8, 0, +0x87FA,0x87FB,0x87FC,0x87FD,0x87FF,0x8800,0x8801,0x8802, +0x8804,0x8805,0x8806,0x8807,0x8808,0x8809,0x880B,0x880C, +0x880D,0x880E,0x880F,0x8810,0x8811,0x8812,0x8814,0x8817, +0x8818,0x8819,0x881A,0x881C,0x881D,0x881E,0x881F,0x8820, +0x8823,0x7A00,0x606F,0x5E0C,0x6089,0x819D,0x5915,0x60DC, +0x7184,0x70EF,0x6EAA,0x6C50,0x7280,0x6A84,0x88AD,0x5E2D, +0x4E60,0x5AB3,0x559C,0x94E3,0x6D17,0x7CFB,0x9699,0x620F, +0x7EC6,0x778E,0x867E,0x5323,0x971E,0x8F96,0x6687,0x5CE1, +0x4FA0,0x72ED,0x4E0B,0x53A6,0x590F,0x5413,0x6380,0x9528, +0x5148,0x4ED9,0x9C9C,0x7EA4,0x54B8,0x8D24,0x8854,0x8237, +0x95F2,0x6D8E,0x5F26,0x5ACC,0x663E,0x9669,0x73B0,0x732E, +0x53BF,0x817A,0x9985,0x7FA1,0x5BAA,0x9677,0x9650,0x7EBF, +0x76F8,0x53A2,0x9576,0x9999,0x7BB1,0x8944,0x6E58,0x4E61, +0x7FD4,0x7965,0x8BE6,0x60F3,0x54CD,0x4EAB,0x9879,0x5DF7, +0x6A61,0x50CF,0x5411,0x8C61,0x8427,0x785D,0x9704,0x524A, +0x54EE,0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8824,0x8825,0x8826,0x8827,0x8828,0x8829,0x882A,0x882B, +0x882C,0x882D,0x882E,0x882F,0x8830,0x8831,0x8833,0x8834, +0x8835,0x8836,0x8837,0x8838,0x883A,0x883B,0x883D,0x883E, +0x883F,0x8841,0x8842,0x8843,0x8846,0x8847,0x8848,0x8849, +0x884A,0x884B,0x884E,0x884F,0x8850,0x8851,0x8852,0x8853, +0x8855,0x8856,0x8858,0x885A,0x885B,0x885C,0x885D,0x885E, +0x885F,0x8860,0x8866,0x8867,0x886A,0x886D,0x886F,0x8871, +0x8873,0x8874,0x8875,0x8876,0x8878,0x8879,0x887A, 0, +0x887B,0x887C,0x8880,0x8883,0x8886,0x8887,0x8889,0x888A, +0x888C,0x888E,0x888F,0x8890,0x8891,0x8893,0x8894,0x8895, +0x8897,0x8898,0x8899,0x889A,0x889B,0x889D,0x889E,0x889F, +0x88A0,0x88A1,0x88A3,0x88A5,0x88A6,0x88A7,0x88A8,0x88A9, +0x88AA,0x5C0F,0x5B5D,0x6821,0x8096,0x5578,0x7B11,0x6548, +0x6954,0x4E9B,0x6B47,0x874E,0x978B,0x534F,0x631F,0x643A, +0x90AA,0x659C,0x80C1,0x8C10,0x5199,0x68B0,0x5378,0x87F9, +0x61C8,0x6CC4,0x6CFB,0x8C22,0x5C51,0x85AA,0x82AF,0x950C, +0x6B23,0x8F9B,0x65B0,0x5FFB,0x5FC3,0x4FE1,0x8845,0x661F, +0x8165,0x7329,0x60FA,0x5174,0x5211,0x578B,0x5F62,0x90A2, +0x884C,0x9192,0x5E78,0x674F,0x6027,0x59D3,0x5144,0x51F6, +0x80F8,0x5308,0x6C79,0x96C4,0x718A,0x4F11,0x4FEE,0x7F9E, +0x673D,0x55C5,0x9508,0x79C0,0x8896,0x7EE3,0x589F,0x620C, +0x9700,0x865A,0x5618,0x987B,0x5F90,0x8BB8,0x84C4,0x9157, +0x53D9,0x65ED,0x5E8F,0x755C,0x6064,0x7D6E,0x5A7F,0x7EEA, +0x7EED,0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x88AC,0x88AE,0x88AF,0x88B0,0x88B2,0x88B3,0x88B4,0x88B5, +0x88B6,0x88B8,0x88B9,0x88BA,0x88BB,0x88BD,0x88BE,0x88BF, +0x88C0,0x88C3,0x88C4,0x88C7,0x88C8,0x88CA,0x88CB,0x88CC, +0x88CD,0x88CF,0x88D0,0x88D1,0x88D3,0x88D6,0x88D7,0x88DA, +0x88DB,0x88DC,0x88DD,0x88DE,0x88E0,0x88E1,0x88E6,0x88E7, +0x88E9,0x88EA,0x88EB,0x88EC,0x88ED,0x88EE,0x88EF,0x88F2, +0x88F5,0x88F6,0x88F7,0x88FA,0x88FB,0x88FD,0x88FF,0x8900, +0x8901,0x8903,0x8904,0x8905,0x8906,0x8907,0x8908, 0, +0x8909,0x890B,0x890C,0x890D,0x890E,0x890F,0x8911,0x8914, +0x8915,0x8916,0x8917,0x8918,0x891C,0x891D,0x891E,0x891F, +0x8920,0x8922,0x8923,0x8924,0x8926,0x8927,0x8928,0x8929, +0x892C,0x892D,0x892E,0x892F,0x8931,0x8932,0x8933,0x8935, +0x8937,0x9009,0x7663,0x7729,0x7EDA,0x9774,0x859B,0x5B66, +0x7A74,0x96EA,0x8840,0x52CB,0x718F,0x5FAA,0x65EC,0x8BE2, +0x5BFB,0x9A6F,0x5DE1,0x6B89,0x6C5B,0x8BAD,0x8BAF,0x900A, +0x8FC5,0x538B,0x62BC,0x9E26,0x9E2D,0x5440,0x4E2B,0x82BD, +0x7259,0x869C,0x5D16,0x8859,0x6DAF,0x96C5,0x54D1,0x4E9A, +0x8BB6,0x7109,0x54BD,0x9609,0x70DF,0x6DF9,0x76D0,0x4E25, +0x7814,0x8712,0x5CA9,0x5EF6,0x8A00,0x989C,0x960E,0x708E, +0x6CBF,0x5944,0x63A9,0x773C,0x884D,0x6F14,0x8273,0x5830, +0x71D5,0x538C,0x781A,0x96C1,0x5501,0x5F66,0x7130,0x5BB4, +0x8C1A,0x9A8C,0x6B83,0x592E,0x9E2F,0x79E7,0x6768,0x626C, +0x4F6F,0x75A1,0x7F8A,0x6D0B,0x9633,0x6C27,0x4EF0,0x75D2, +0x517B,0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8938,0x8939,0x893A,0x893B,0x893C,0x893D,0x893E,0x893F, +0x8940,0x8942,0x8943,0x8945,0x8946,0x8947,0x8948,0x8949, +0x894A,0x894B,0x894C,0x894D,0x894E,0x894F,0x8950,0x8951, +0x8952,0x8953,0x8954,0x8955,0x8956,0x8957,0x8958,0x8959, +0x895A,0x895B,0x895C,0x895D,0x8960,0x8961,0x8962,0x8963, +0x8964,0x8965,0x8967,0x8968,0x8969,0x896A,0x896B,0x896C, +0x896D,0x896E,0x896F,0x8970,0x8971,0x8972,0x8973,0x8974, +0x8975,0x8976,0x8977,0x8978,0x8979,0x897A,0x897C, 0, +0x897D,0x897E,0x8980,0x8982,0x8984,0x8985,0x8987,0x8988, +0x8989,0x898A,0x898B,0x898C,0x898D,0x898E,0x898F,0x8990, +0x8991,0x8992,0x8993,0x8994,0x8995,0x8996,0x8997,0x8998, +0x8999,0x899A,0x899B,0x899C,0x899D,0x899E,0x899F,0x89A0, +0x89A1,0x6447,0x5C27,0x9065,0x7A91,0x8C23,0x59DA,0x54AC, +0x8200,0x836F,0x8981,0x8000,0x6930,0x564E,0x8036,0x7237, +0x91CE,0x51B6,0x4E5F,0x9875,0x6396,0x4E1A,0x53F6,0x66F3, +0x814B,0x591C,0x6DB2,0x4E00,0x58F9,0x533B,0x63D6,0x94F1, +0x4F9D,0x4F0A,0x8863,0x9890,0x5937,0x9057,0x79FB,0x4EEA, +0x80F0,0x7591,0x6C82,0x5B9C,0x59E8,0x5F5D,0x6905,0x8681, +0x501A,0x5DF2,0x4E59,0x77E3,0x4EE5,0x827A,0x6291,0x6613, +0x9091,0x5C79,0x4EBF,0x5F79,0x81C6,0x9038,0x8084,0x75AB, +0x4EA6,0x88D4,0x610F,0x6BC5,0x5FC6,0x4E49,0x76CA,0x6EA2, +0x8BE3,0x8BAE,0x8C0A,0x8BD1,0x5F02,0x7FFC,0x7FCC,0x7ECE, +0x8335,0x836B,0x56E0,0x6BB7,0x97F3,0x9634,0x59FB,0x541F, +0x94F6,0x6DEB,0x5BC5,0x996E,0x5C39,0x5F15,0x9690, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x89A2,0x89A3,0x89A4,0x89A5,0x89A6,0x89A7,0x89A8,0x89A9, +0x89AA,0x89AB,0x89AC,0x89AD,0x89AE,0x89AF,0x89B0,0x89B1, +0x89B2,0x89B3,0x89B4,0x89B5,0x89B6,0x89B7,0x89B8,0x89B9, +0x89BA,0x89BB,0x89BC,0x89BD,0x89BE,0x89BF,0x89C0,0x89C3, +0x89CD,0x89D3,0x89D4,0x89D5,0x89D7,0x89D8,0x89D9,0x89DB, +0x89DD,0x89DF,0x89E0,0x89E1,0x89E2,0x89E4,0x89E7,0x89E8, +0x89E9,0x89EA,0x89EC,0x89ED,0x89EE,0x89F0,0x89F1,0x89F2, +0x89F4,0x89F5,0x89F6,0x89F7,0x89F8,0x89F9,0x89FA, 0, +0x89FB,0x89FC,0x89FD,0x89FE,0x89FF,0x8A01,0x8A02,0x8A03, +0x8A04,0x8A05,0x8A06,0x8A08,0x8A09,0x8A0A,0x8A0B,0x8A0C, +0x8A0D,0x8A0E,0x8A0F,0x8A10,0x8A11,0x8A12,0x8A13,0x8A14, +0x8A15,0x8A16,0x8A17,0x8A18,0x8A19,0x8A1A,0x8A1B,0x8A1C, +0x8A1D,0x5370,0x82F1,0x6A31,0x5A74,0x9E70,0x5E94,0x7F28, +0x83B9,0x8424,0x8425,0x8367,0x8747,0x8FCE,0x8D62,0x76C8, +0x5F71,0x9896,0x786C,0x6620,0x54DF,0x62E5,0x4F63,0x81C3, +0x75C8,0x5EB8,0x96CD,0x8E0A,0x86F9,0x548F,0x6CF3,0x6D8C, +0x6C38,0x607F,0x52C7,0x7528,0x5E7D,0x4F18,0x60A0,0x5FE7, +0x5C24,0x7531,0x90AE,0x94C0,0x72B9,0x6CB9,0x6E38,0x9149, +0x6709,0x53CB,0x53F3,0x4F51,0x91C9,0x8BF1,0x53C8,0x5E7C, +0x8FC2,0x6DE4,0x4E8E,0x76C2,0x6986,0x865E,0x611A,0x8206, +0x4F59,0x4FDE,0x903E,0x9C7C,0x6109,0x6E1D,0x6E14,0x9685, +0x4E88,0x5A31,0x96E8,0x4E0E,0x5C7F,0x79B9,0x5B87,0x8BED, +0x7FBD,0x7389,0x57DF,0x828B,0x90C1,0x5401,0x9047,0x55BB, +0x5CEA,0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8A1E,0x8A1F,0x8A20,0x8A21,0x8A22,0x8A23,0x8A24,0x8A25, +0x8A26,0x8A27,0x8A28,0x8A29,0x8A2A,0x8A2B,0x8A2C,0x8A2D, +0x8A2E,0x8A2F,0x8A30,0x8A31,0x8A32,0x8A33,0x8A34,0x8A35, +0x8A36,0x8A37,0x8A38,0x8A39,0x8A3A,0x8A3B,0x8A3C,0x8A3D, +0x8A3F,0x8A40,0x8A41,0x8A42,0x8A43,0x8A44,0x8A45,0x8A46, +0x8A47,0x8A49,0x8A4A,0x8A4B,0x8A4C,0x8A4D,0x8A4E,0x8A4F, +0x8A50,0x8A51,0x8A52,0x8A53,0x8A54,0x8A55,0x8A56,0x8A57, +0x8A58,0x8A59,0x8A5A,0x8A5B,0x8A5C,0x8A5D,0x8A5E, 0, +0x8A5F,0x8A60,0x8A61,0x8A62,0x8A63,0x8A64,0x8A65,0x8A66, +0x8A67,0x8A68,0x8A69,0x8A6A,0x8A6B,0x8A6C,0x8A6D,0x8A6E, +0x8A6F,0x8A70,0x8A71,0x8A72,0x8A73,0x8A74,0x8A75,0x8A76, +0x8A77,0x8A78,0x8A7A,0x8A7B,0x8A7C,0x8A7D,0x8A7E,0x8A7F, +0x8A80,0x6D74,0x5BD3,0x88D5,0x9884,0x8C6B,0x9A6D,0x9E33, +0x6E0A,0x51A4,0x5143,0x57A3,0x8881,0x539F,0x63F4,0x8F95, +0x56ED,0x5458,0x5706,0x733F,0x6E90,0x7F18,0x8FDC,0x82D1, +0x613F,0x6028,0x9662,0x66F0,0x7EA6,0x8D8A,0x8DC3,0x94A5, +0x5CB3,0x7CA4,0x6708,0x60A6,0x9605,0x8018,0x4E91,0x90E7, +0x5300,0x9668,0x5141,0x8FD0,0x8574,0x915D,0x6655,0x97F5, +0x5B55,0x531D,0x7838,0x6742,0x683D,0x54C9,0x707E,0x5BB0, +0x8F7D,0x518D,0x5728,0x54B1,0x6512,0x6682,0x8D5E,0x8D43, +0x810F,0x846C,0x906D,0x7CDF,0x51FF,0x85FB,0x67A3,0x65E9, +0x6FA1,0x86A4,0x8E81,0x566A,0x9020,0x7682,0x7076,0x71E5, +0x8D23,0x62E9,0x5219,0x6CFD,0x8D3C,0x600E,0x589E,0x618E, +0x66FE,0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8A81,0x8A82,0x8A83,0x8A84,0x8A85,0x8A86,0x8A87,0x8A88, +0x8A8B,0x8A8C,0x8A8D,0x8A8E,0x8A8F,0x8A90,0x8A91,0x8A92, +0x8A94,0x8A95,0x8A96,0x8A97,0x8A98,0x8A99,0x8A9A,0x8A9B, +0x8A9C,0x8A9D,0x8A9E,0x8A9F,0x8AA0,0x8AA1,0x8AA2,0x8AA3, +0x8AA4,0x8AA5,0x8AA6,0x8AA7,0x8AA8,0x8AA9,0x8AAA,0x8AAB, +0x8AAC,0x8AAD,0x8AAE,0x8AAF,0x8AB0,0x8AB1,0x8AB2,0x8AB3, +0x8AB4,0x8AB5,0x8AB6,0x8AB7,0x8AB8,0x8AB9,0x8ABA,0x8ABB, +0x8ABC,0x8ABD,0x8ABE,0x8ABF,0x8AC0,0x8AC1,0x8AC2, 0, +0x8AC3,0x8AC4,0x8AC5,0x8AC6,0x8AC7,0x8AC8,0x8AC9,0x8ACA, +0x8ACB,0x8ACC,0x8ACD,0x8ACE,0x8ACF,0x8AD0,0x8AD1,0x8AD2, +0x8AD3,0x8AD4,0x8AD5,0x8AD6,0x8AD7,0x8AD8,0x8AD9,0x8ADA, +0x8ADB,0x8ADC,0x8ADD,0x8ADE,0x8ADF,0x8AE0,0x8AE1,0x8AE2, +0x8AE3,0x94E1,0x95F8,0x7728,0x6805,0x69A8,0x548B,0x4E4D, +0x70B8,0x8BC8,0x6458,0x658B,0x5B85,0x7A84,0x503A,0x5BE8, +0x77BB,0x6BE1,0x8A79,0x7C98,0x6CBE,0x76CF,0x65A9,0x8F97, +0x5D2D,0x5C55,0x8638,0x6808,0x5360,0x6218,0x7AD9,0x6E5B, +0x7EFD,0x6A1F,0x7AE0,0x5F70,0x6F33,0x5F20,0x638C,0x6DA8, +0x6756,0x4E08,0x5E10,0x8D26,0x4ED7,0x80C0,0x7634,0x969C, +0x62DB,0x662D,0x627E,0x6CBC,0x8D75,0x7167,0x7F69,0x5146, +0x8087,0x53EC,0x906E,0x6298,0x54F2,0x86F0,0x8F99,0x8005, +0x9517,0x8517,0x8FD9,0x6D59,0x73CD,0x659F,0x771F,0x7504, +0x7827,0x81FB,0x8D1E,0x9488,0x4FA6,0x6795,0x75B9,0x8BCA, +0x9707,0x632F,0x9547,0x9635,0x84B8,0x6323,0x7741,0x5F81, +0x72F0,0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8AE4,0x8AE5,0x8AE6,0x8AE7,0x8AE8,0x8AE9,0x8AEA,0x8AEB, +0x8AEC,0x8AED,0x8AEE,0x8AEF,0x8AF0,0x8AF1,0x8AF2,0x8AF3, +0x8AF4,0x8AF5,0x8AF6,0x8AF7,0x8AF8,0x8AF9,0x8AFA,0x8AFB, +0x8AFC,0x8AFD,0x8AFE,0x8AFF,0x8B00,0x8B01,0x8B02,0x8B03, +0x8B04,0x8B05,0x8B06,0x8B08,0x8B09,0x8B0A,0x8B0B,0x8B0C, +0x8B0D,0x8B0E,0x8B0F,0x8B10,0x8B11,0x8B12,0x8B13,0x8B14, +0x8B15,0x8B16,0x8B17,0x8B18,0x8B19,0x8B1A,0x8B1B,0x8B1C, +0x8B1D,0x8B1E,0x8B1F,0x8B20,0x8B21,0x8B22,0x8B23, 0, +0x8B24,0x8B25,0x8B27,0x8B28,0x8B29,0x8B2A,0x8B2B,0x8B2C, +0x8B2D,0x8B2E,0x8B2F,0x8B30,0x8B31,0x8B32,0x8B33,0x8B34, +0x8B35,0x8B36,0x8B37,0x8B38,0x8B39,0x8B3A,0x8B3B,0x8B3C, +0x8B3D,0x8B3E,0x8B3F,0x8B40,0x8B41,0x8B42,0x8B43,0x8B44, +0x8B45,0x5E27,0x75C7,0x90D1,0x8BC1,0x829D,0x679D,0x652F, +0x5431,0x8718,0x77E5,0x80A2,0x8102,0x6C41,0x4E4B,0x7EC7, +0x804C,0x76F4,0x690D,0x6B96,0x6267,0x503C,0x4F84,0x5740, +0x6307,0x6B62,0x8DBE,0x53EA,0x65E8,0x7EB8,0x5FD7,0x631A, +0x63B7,0x81F3,0x81F4,0x7F6E,0x5E1C,0x5CD9,0x5236,0x667A, +0x79E9,0x7A1A,0x8D28,0x7099,0x75D4,0x6EDE,0x6CBB,0x7A92, +0x4E2D,0x76C5,0x5FE0,0x949F,0x8877,0x7EC8,0x79CD,0x80BF, +0x91CD,0x4EF2,0x4F17,0x821F,0x5468,0x5DDE,0x6D32,0x8BCC, +0x7CA5,0x8F74,0x8098,0x5E1A,0x5492,0x76B1,0x5B99,0x663C, +0x9AA4,0x73E0,0x682A,0x86DB,0x6731,0x732A,0x8BF8,0x8BDB, +0x9010,0x7AF9,0x70DB,0x716E,0x62C4,0x77A9,0x5631,0x4E3B, +0x8457,0x67F1,0x52A9,0x86C0,0x8D2E,0x94F8,0x7B51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8B46,0x8B47,0x8B48,0x8B49,0x8B4A,0x8B4B,0x8B4C,0x8B4D, +0x8B4E,0x8B4F,0x8B50,0x8B51,0x8B52,0x8B53,0x8B54,0x8B55, +0x8B56,0x8B57,0x8B58,0x8B59,0x8B5A,0x8B5B,0x8B5C,0x8B5D, +0x8B5E,0x8B5F,0x8B60,0x8B61,0x8B62,0x8B63,0x8B64,0x8B65, +0x8B67,0x8B68,0x8B69,0x8B6A,0x8B6B,0x8B6D,0x8B6E,0x8B6F, +0x8B70,0x8B71,0x8B72,0x8B73,0x8B74,0x8B75,0x8B76,0x8B77, +0x8B78,0x8B79,0x8B7A,0x8B7B,0x8B7C,0x8B7D,0x8B7E,0x8B7F, +0x8B80,0x8B81,0x8B82,0x8B83,0x8B84,0x8B85,0x8B86, 0, +0x8B87,0x8B88,0x8B89,0x8B8A,0x8B8B,0x8B8C,0x8B8D,0x8B8E, +0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93,0x8B94,0x8B95,0x8B96, +0x8B97,0x8B98,0x8B99,0x8B9A,0x8B9B,0x8B9C,0x8B9D,0x8B9E, +0x8B9F,0x8BAC,0x8BB1,0x8BBB,0x8BC7,0x8BD0,0x8BEA,0x8C09, +0x8C1E,0x4F4F,0x6CE8,0x795D,0x9A7B,0x6293,0x722A,0x62FD, +0x4E13,0x7816,0x8F6C,0x64B0,0x8D5A,0x7BC6,0x6869,0x5E84, +0x88C5,0x5986,0x649E,0x58EE,0x72B6,0x690E,0x9525,0x8FFD, +0x8D58,0x5760,0x7F00,0x8C06,0x51C6,0x6349,0x62D9,0x5353, +0x684C,0x7422,0x8301,0x914C,0x5544,0x7740,0x707C,0x6D4A, +0x5179,0x54A8,0x8D44,0x59FF,0x6ECB,0x6DC4,0x5B5C,0x7D2B, +0x4ED4,0x7C7D,0x6ED3,0x5B50,0x81EA,0x6E0D,0x5B57,0x9B03, +0x68D5,0x8E2A,0x5B97,0x7EFC,0x603B,0x7EB5,0x90B9,0x8D70, +0x594F,0x63CD,0x79DF,0x8DB3,0x5352,0x65CF,0x7956,0x8BC5, +0x963B,0x7EC4,0x94BB,0x7E82,0x5634,0x9189,0x6700,0x7F6A, +0x5C0A,0x9075,0x6628,0x5DE6,0x4F50,0x67DE,0x505A,0x4F5C, +0x5750,0x5EA7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8C38,0x8C39,0x8C3A,0x8C3B,0x8C3C,0x8C3D,0x8C3E,0x8C3F, +0x8C40,0x8C42,0x8C43,0x8C44,0x8C45,0x8C48,0x8C4A,0x8C4B, +0x8C4D,0x8C4E,0x8C4F,0x8C50,0x8C51,0x8C52,0x8C53,0x8C54, +0x8C56,0x8C57,0x8C58,0x8C59,0x8C5B,0x8C5C,0x8C5D,0x8C5E, +0x8C5F,0x8C60,0x8C63,0x8C64,0x8C65,0x8C66,0x8C67,0x8C68, +0x8C69,0x8C6C,0x8C6D,0x8C6E,0x8C6F,0x8C70,0x8C71,0x8C72, +0x8C74,0x8C75,0x8C76,0x8C77,0x8C7B,0x8C7C,0x8C7D,0x8C7E, +0x8C7F,0x8C80,0x8C81,0x8C83,0x8C84,0x8C86,0x8C87, 0, +0x8C88,0x8C8B,0x8C8D,0x8C8E,0x8C8F,0x8C90,0x8C91,0x8C92, +0x8C93,0x8C95,0x8C96,0x8C97,0x8C99,0x8C9A,0x8C9B,0x8C9C, +0x8C9D,0x8C9E,0x8C9F,0x8CA0,0x8CA1,0x8CA2,0x8CA3,0x8CA4, +0x8CA5,0x8CA6,0x8CA7,0x8CA8,0x8CA9,0x8CAA,0x8CAB,0x8CAC, +0x8CAD,0x4E8D,0x4E0C,0x5140,0x4E10,0x5EFF,0x5345,0x4E15, +0x4E98,0x4E1E,0x9B32,0x5B6C,0x5669,0x4E28,0x79BA,0x4E3F, +0x5315,0x4E47,0x592D,0x723B,0x536E,0x6C10,0x56DF,0x80E4, +0x9997,0x6BD3,0x777E,0x9F17,0x4E36,0x4E9F,0x9F10,0x4E5C, +0x4E69,0x4E93,0x8288,0x5B5B,0x556C,0x560F,0x4EC4,0x538D, +0x539D,0x53A3,0x53A5,0x53AE,0x9765,0x8D5D,0x531A,0x53F5, +0x5326,0x532E,0x533E,0x8D5C,0x5366,0x5363,0x5202,0x5208, +0x520E,0x522D,0x5233,0x523F,0x5240,0x524C,0x525E,0x5261, +0x525C,0x84AF,0x527D,0x5282,0x5281,0x5290,0x5293,0x5182, +0x7F54,0x4EBB,0x4EC3,0x4EC9,0x4EC2,0x4EE8,0x4EE1,0x4EEB, +0x4EDE,0x4F1B,0x4EF3,0x4F22,0x4F64,0x4EF5,0x4F25,0x4F27, +0x4F09,0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8CAE,0x8CAF,0x8CB0,0x8CB1,0x8CB2,0x8CB3,0x8CB4,0x8CB5, +0x8CB6,0x8CB7,0x8CB8,0x8CB9,0x8CBA,0x8CBB,0x8CBC,0x8CBD, +0x8CBE,0x8CBF,0x8CC0,0x8CC1,0x8CC2,0x8CC3,0x8CC4,0x8CC5, +0x8CC6,0x8CC7,0x8CC8,0x8CC9,0x8CCA,0x8CCB,0x8CCC,0x8CCD, +0x8CCE,0x8CCF,0x8CD0,0x8CD1,0x8CD2,0x8CD3,0x8CD4,0x8CD5, +0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA,0x8CDB,0x8CDC,0x8CDD, +0x8CDE,0x8CDF,0x8CE0,0x8CE1,0x8CE2,0x8CE3,0x8CE4,0x8CE5, +0x8CE6,0x8CE7,0x8CE8,0x8CE9,0x8CEA,0x8CEB,0x8CEC, 0, +0x8CED,0x8CEE,0x8CEF,0x8CF0,0x8CF1,0x8CF2,0x8CF3,0x8CF4, +0x8CF5,0x8CF6,0x8CF7,0x8CF8,0x8CF9,0x8CFA,0x8CFB,0x8CFC, +0x8CFD,0x8CFE,0x8CFF,0x8D00,0x8D01,0x8D02,0x8D03,0x8D04, +0x8D05,0x8D06,0x8D07,0x8D08,0x8D09,0x8D0A,0x8D0B,0x8D0C, +0x8D0D,0x4F5F,0x4F57,0x4F32,0x4F3D,0x4F76,0x4F74,0x4F91, +0x4F89,0x4F83,0x4F8F,0x4F7E,0x4F7B,0x4FAA,0x4F7C,0x4FAC, +0x4F94,0x4FE6,0x4FE8,0x4FEA,0x4FC5,0x4FDA,0x4FE3,0x4FDC, +0x4FD1,0x4FDF,0x4FF8,0x5029,0x504C,0x4FF3,0x502C,0x500F, +0x502E,0x502D,0x4FFE,0x501C,0x500C,0x5025,0x5028,0x507E, +0x5043,0x5055,0x5048,0x504E,0x506C,0x507B,0x50A5,0x50A7, +0x50A9,0x50BA,0x50D6,0x5106,0x50ED,0x50EC,0x50E6,0x50EE, +0x5107,0x510B,0x4EDD,0x6C3D,0x4F58,0x4F65,0x4FCE,0x9FA0, +0x6C46,0x7C74,0x516E,0x5DFD,0x9EC9,0x9998,0x5181,0x5914, +0x52F9,0x530D,0x8A07,0x5310,0x51EB,0x5919,0x5155,0x4EA0, +0x5156,0x4EB3,0x886E,0x88A4,0x4EB5,0x8114,0x88D2,0x7980, +0x5B34,0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8D0E,0x8D0F,0x8D10,0x8D11,0x8D12,0x8D13,0x8D14,0x8D15, +0x8D16,0x8D17,0x8D18,0x8D19,0x8D1A,0x8D1B,0x8D1C,0x8D20, +0x8D51,0x8D52,0x8D57,0x8D5F,0x8D65,0x8D68,0x8D69,0x8D6A, +0x8D6C,0x8D6E,0x8D6F,0x8D71,0x8D72,0x8D78,0x8D79,0x8D7A, +0x8D7B,0x8D7C,0x8D7D,0x8D7E,0x8D7F,0x8D80,0x8D82,0x8D83, +0x8D86,0x8D87,0x8D88,0x8D89,0x8D8C,0x8D8D,0x8D8E,0x8D8F, +0x8D90,0x8D92,0x8D93,0x8D95,0x8D96,0x8D97,0x8D98,0x8D99, +0x8D9A,0x8D9B,0x8D9C,0x8D9D,0x8D9E,0x8DA0,0x8DA1, 0, +0x8DA2,0x8DA4,0x8DA5,0x8DA6,0x8DA7,0x8DA8,0x8DA9,0x8DAA, +0x8DAB,0x8DAC,0x8DAD,0x8DAE,0x8DAF,0x8DB0,0x8DB2,0x8DB6, +0x8DB7,0x8DB9,0x8DBB,0x8DBD,0x8DC0,0x8DC1,0x8DC2,0x8DC5, +0x8DC7,0x8DC8,0x8DC9,0x8DCA,0x8DCD,0x8DD0,0x8DD2,0x8DD3, +0x8DD4,0x51C7,0x5196,0x51A2,0x51A5,0x8BA0,0x8BA6,0x8BA7, +0x8BAA,0x8BB4,0x8BB5,0x8BB7,0x8BC2,0x8BC3,0x8BCB,0x8BCF, +0x8BCE,0x8BD2,0x8BD3,0x8BD4,0x8BD6,0x8BD8,0x8BD9,0x8BDC, +0x8BDF,0x8BE0,0x8BE4,0x8BE8,0x8BE9,0x8BEE,0x8BF0,0x8BF3, +0x8BF6,0x8BF9,0x8BFC,0x8BFF,0x8C00,0x8C02,0x8C04,0x8C07, +0x8C0C,0x8C0F,0x8C11,0x8C12,0x8C14,0x8C15,0x8C16,0x8C19, +0x8C1B,0x8C18,0x8C1D,0x8C1F,0x8C20,0x8C21,0x8C25,0x8C27, +0x8C2A,0x8C2B,0x8C2E,0x8C2F,0x8C32,0x8C33,0x8C35,0x8C36, +0x5369,0x537A,0x961D,0x9622,0x9621,0x9631,0x962A,0x963D, +0x963C,0x9642,0x9649,0x9654,0x965F,0x9667,0x966C,0x9672, +0x9674,0x9688,0x968D,0x9697,0x96B0,0x9097,0x909B,0x909D, +0x9099,0x90AC,0x90A1,0x90B4,0x90B3,0x90B6,0x90BA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8DD5,0x8DD8,0x8DD9,0x8DDC,0x8DE0,0x8DE1,0x8DE2,0x8DE5, +0x8DE6,0x8DE7,0x8DE9,0x8DED,0x8DEE,0x8DF0,0x8DF1,0x8DF2, +0x8DF4,0x8DF6,0x8DFC,0x8DFE,0x8DFF,0x8E00,0x8E01,0x8E02, +0x8E03,0x8E04,0x8E06,0x8E07,0x8E08,0x8E0B,0x8E0D,0x8E0E, +0x8E10,0x8E11,0x8E12,0x8E13,0x8E15,0x8E16,0x8E17,0x8E18, +0x8E19,0x8E1A,0x8E1B,0x8E1C,0x8E20,0x8E21,0x8E24,0x8E25, +0x8E26,0x8E27,0x8E28,0x8E2B,0x8E2D,0x8E30,0x8E32,0x8E33, +0x8E34,0x8E36,0x8E37,0x8E38,0x8E3B,0x8E3C,0x8E3E, 0, +0x8E3F,0x8E43,0x8E45,0x8E46,0x8E4C,0x8E4D,0x8E4E,0x8E4F, +0x8E50,0x8E53,0x8E54,0x8E55,0x8E56,0x8E57,0x8E58,0x8E5A, +0x8E5B,0x8E5C,0x8E5D,0x8E5E,0x8E5F,0x8E60,0x8E61,0x8E62, +0x8E63,0x8E64,0x8E65,0x8E67,0x8E68,0x8E6A,0x8E6B,0x8E6E, +0x8E71,0x90B8,0x90B0,0x90CF,0x90C5,0x90BE,0x90D0,0x90C4, +0x90C7,0x90D3,0x90E6,0x90E2,0x90DC,0x90D7,0x90DB,0x90EB, +0x90EF,0x90FE,0x9104,0x9122,0x911E,0x9123,0x9131,0x912F, +0x9139,0x9143,0x9146,0x520D,0x5942,0x52A2,0x52AC,0x52AD, +0x52BE,0x54FF,0x52D0,0x52D6,0x52F0,0x53DF,0x71EE,0x77CD, +0x5EF4,0x51F5,0x51FC,0x9B2F,0x53B6,0x5F01,0x755A,0x5DEF, +0x574C,0x57A9,0x57A1,0x587E,0x58BC,0x58C5,0x58D1,0x5729, +0x572C,0x572A,0x5733,0x5739,0x572E,0x572F,0x575C,0x573B, +0x5742,0x5769,0x5785,0x576B,0x5786,0x577C,0x577B,0x5768, +0x576D,0x5776,0x5773,0x57AD,0x57A4,0x578C,0x57B2,0x57CF, +0x57A7,0x57B4,0x5793,0x57A0,0x57D5,0x57D8,0x57DA,0x57D9, +0x57D2,0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8E73,0x8E75,0x8E77,0x8E78,0x8E79,0x8E7A,0x8E7B,0x8E7D, +0x8E7E,0x8E80,0x8E82,0x8E83,0x8E84,0x8E86,0x8E88,0x8E89, +0x8E8A,0x8E8B,0x8E8C,0x8E8D,0x8E8E,0x8E91,0x8E92,0x8E93, +0x8E95,0x8E96,0x8E97,0x8E98,0x8E99,0x8E9A,0x8E9B,0x8E9D, +0x8E9F,0x8EA0,0x8EA1,0x8EA2,0x8EA3,0x8EA4,0x8EA5,0x8EA6, +0x8EA7,0x8EA8,0x8EA9,0x8EAA,0x8EAD,0x8EAE,0x8EB0,0x8EB1, +0x8EB3,0x8EB4,0x8EB5,0x8EB6,0x8EB7,0x8EB8,0x8EB9,0x8EBB, +0x8EBC,0x8EBD,0x8EBE,0x8EBF,0x8EC0,0x8EC1,0x8EC2, 0, +0x8EC3,0x8EC4,0x8EC5,0x8EC6,0x8EC7,0x8EC8,0x8EC9,0x8ECA, +0x8ECB,0x8ECC,0x8ECD,0x8ECF,0x8ED0,0x8ED1,0x8ED2,0x8ED3, +0x8ED4,0x8ED5,0x8ED6,0x8ED7,0x8ED8,0x8ED9,0x8EDA,0x8EDB, +0x8EDC,0x8EDD,0x8EDE,0x8EDF,0x8EE0,0x8EE1,0x8EE2,0x8EE3, +0x8EE4,0x580B,0x580D,0x57FD,0x57ED,0x5800,0x581E,0x5819, +0x5844,0x5820,0x5865,0x586C,0x5881,0x5889,0x589A,0x5880, +0x99A8,0x9F19,0x61FF,0x8279,0x827D,0x827F,0x828F,0x828A, +0x82A8,0x8284,0x828E,0x8291,0x8297,0x8299,0x82AB,0x82B8, +0x82BE,0x82B0,0x82C8,0x82CA,0x82E3,0x8298,0x82B7,0x82AE, +0x82CB,0x82CC,0x82C1,0x82A9,0x82B4,0x82A1,0x82AA,0x829F, +0x82C4,0x82CE,0x82A4,0x82E1,0x8309,0x82F7,0x82E4,0x830F, +0x8307,0x82DC,0x82F4,0x82D2,0x82D8,0x830C,0x82FB,0x82D3, +0x8311,0x831A,0x8306,0x8314,0x8315,0x82E0,0x82D5,0x831C, +0x8351,0x835B,0x835C,0x8308,0x8392,0x833C,0x8334,0x8331, +0x839B,0x835E,0x832F,0x834F,0x8347,0x8343,0x835F,0x8340, +0x8317,0x8360,0x832D,0x833A,0x8333,0x8366,0x8365, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8EE5,0x8EE6,0x8EE7,0x8EE8,0x8EE9,0x8EEA,0x8EEB,0x8EEC, +0x8EED,0x8EEE,0x8EEF,0x8EF0,0x8EF1,0x8EF2,0x8EF3,0x8EF4, +0x8EF5,0x8EF6,0x8EF7,0x8EF8,0x8EF9,0x8EFA,0x8EFB,0x8EFC, +0x8EFD,0x8EFE,0x8EFF,0x8F00,0x8F01,0x8F02,0x8F03,0x8F04, +0x8F05,0x8F06,0x8F07,0x8F08,0x8F09,0x8F0A,0x8F0B,0x8F0C, +0x8F0D,0x8F0E,0x8F0F,0x8F10,0x8F11,0x8F12,0x8F13,0x8F14, +0x8F15,0x8F16,0x8F17,0x8F18,0x8F19,0x8F1A,0x8F1B,0x8F1C, +0x8F1D,0x8F1E,0x8F1F,0x8F20,0x8F21,0x8F22,0x8F23, 0, +0x8F24,0x8F25,0x8F26,0x8F27,0x8F28,0x8F29,0x8F2A,0x8F2B, +0x8F2C,0x8F2D,0x8F2E,0x8F2F,0x8F30,0x8F31,0x8F32,0x8F33, +0x8F34,0x8F35,0x8F36,0x8F37,0x8F38,0x8F39,0x8F3A,0x8F3B, +0x8F3C,0x8F3D,0x8F3E,0x8F3F,0x8F40,0x8F41,0x8F42,0x8F43, +0x8F44,0x8368,0x831B,0x8369,0x836C,0x836A,0x836D,0x836E, +0x83B0,0x8378,0x83B3,0x83B4,0x83A0,0x83AA,0x8393,0x839C, +0x8385,0x837C,0x83B6,0x83A9,0x837D,0x83B8,0x837B,0x8398, +0x839E,0x83A8,0x83BA,0x83BC,0x83C1,0x8401,0x83E5,0x83D8, +0x5807,0x8418,0x840B,0x83DD,0x83FD,0x83D6,0x841C,0x8438, +0x8411,0x8406,0x83D4,0x83DF,0x840F,0x8403,0x83F8,0x83F9, +0x83EA,0x83C5,0x83C0,0x8426,0x83F0,0x83E1,0x845C,0x8451, +0x845A,0x8459,0x8473,0x8487,0x8488,0x847A,0x8489,0x8478, +0x843C,0x8446,0x8469,0x8476,0x848C,0x848E,0x8431,0x846D, +0x84C1,0x84CD,0x84D0,0x84E6,0x84BD,0x84D3,0x84CA,0x84BF, +0x84BA,0x84E0,0x84A1,0x84B9,0x84B4,0x8497,0x84E5,0x84E3, +0x850C,0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x8F45,0x8F46,0x8F47,0x8F48,0x8F49,0x8F4A,0x8F4B,0x8F4C, +0x8F4D,0x8F4E,0x8F4F,0x8F50,0x8F51,0x8F52,0x8F53,0x8F54, +0x8F55,0x8F56,0x8F57,0x8F58,0x8F59,0x8F5A,0x8F5B,0x8F5C, +0x8F5D,0x8F5E,0x8F5F,0x8F60,0x8F61,0x8F62,0x8F63,0x8F64, +0x8F65,0x8F6A,0x8F80,0x8F8C,0x8F92,0x8F9D,0x8FA0,0x8FA1, +0x8FA2,0x8FA4,0x8FA5,0x8FA6,0x8FA7,0x8FAA,0x8FAC,0x8FAD, +0x8FAE,0x8FAF,0x8FB2,0x8FB3,0x8FB4,0x8FB5,0x8FB7,0x8FB8, +0x8FBA,0x8FBB,0x8FBC,0x8FBF,0x8FC0,0x8FC3,0x8FC6, 0, +0x8FC9,0x8FCA,0x8FCB,0x8FCC,0x8FCD,0x8FCF,0x8FD2,0x8FD6, +0x8FD7,0x8FDA,0x8FE0,0x8FE1,0x8FE3,0x8FE7,0x8FEC,0x8FEF, +0x8FF1,0x8FF2,0x8FF4,0x8FF5,0x8FF6,0x8FFA,0x8FFB,0x8FFC, +0x8FFE,0x8FFF,0x9007,0x9008,0x900C,0x900E,0x9013,0x9015, +0x9018,0x8556,0x853B,0x84FF,0x84FC,0x8559,0x8548,0x8568, +0x8564,0x855E,0x857A,0x77A2,0x8543,0x8572,0x857B,0x85A4, +0x85A8,0x8587,0x858F,0x8579,0x85AE,0x859C,0x8585,0x85B9, +0x85B7,0x85B0,0x85D3,0x85C1,0x85DC,0x85FF,0x8627,0x8605, +0x8629,0x8616,0x863C,0x5EFE,0x5F08,0x593C,0x5941,0x8037, +0x5955,0x595A,0x5958,0x530F,0x5C22,0x5C25,0x5C2C,0x5C34, +0x624C,0x626A,0x629F,0x62BB,0x62CA,0x62DA,0x62D7,0x62EE, +0x6322,0x62F6,0x6339,0x634B,0x6343,0x63AD,0x63F6,0x6371, +0x637A,0x638E,0x63B4,0x636D,0x63AC,0x638A,0x6369,0x63AE, +0x63BC,0x63F2,0x63F8,0x63E0,0x63FF,0x63C4,0x63DE,0x63CE, +0x6452,0x63C6,0x63BE,0x6445,0x6441,0x640B,0x641B,0x6420, +0x640C,0x6426,0x6421,0x645E,0x6484,0x646D,0x6496, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9019,0x901C,0x9023,0x9024,0x9025,0x9027,0x9028,0x9029, +0x902A,0x902B,0x902C,0x9030,0x9031,0x9032,0x9033,0x9034, +0x9037,0x9039,0x903A,0x903D,0x903F,0x9040,0x9043,0x9045, +0x9046,0x9048,0x9049,0x904A,0x904B,0x904C,0x904E,0x9054, +0x9055,0x9056,0x9059,0x905A,0x905C,0x905D,0x905E,0x905F, +0x9060,0x9061,0x9064,0x9066,0x9067,0x9069,0x906A,0x906B, +0x906C,0x906F,0x9070,0x9071,0x9072,0x9073,0x9076,0x9077, +0x9078,0x9079,0x907A,0x907B,0x907C,0x907E,0x9081, 0, +0x9084,0x9085,0x9086,0x9087,0x9089,0x908A,0x908C,0x908D, +0x908E,0x908F,0x9090,0x9092,0x9094,0x9096,0x9098,0x909A, +0x909C,0x909E,0x909F,0x90A0,0x90A4,0x90A5,0x90A7,0x90A8, +0x90A9,0x90AB,0x90AD,0x90B2,0x90B7,0x90BC,0x90BD,0x90BF, +0x90C0,0x647A,0x64B7,0x64B8,0x6499,0x64BA,0x64C0,0x64D0, +0x64D7,0x64E4,0x64E2,0x6509,0x6525,0x652E,0x5F0B,0x5FD2, +0x7519,0x5F11,0x535F,0x53F1,0x53FD,0x53E9,0x53E8,0x53FB, +0x5412,0x5416,0x5406,0x544B,0x5452,0x5453,0x5454,0x5456, +0x5443,0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,0x5494, +0x5477,0x5471,0x5464,0x549A,0x549B,0x5484,0x5476,0x5466, +0x549D,0x54D0,0x54AD,0x54C2,0x54B4,0x54D2,0x54A7,0x54A6, +0x54D3,0x54D4,0x5472,0x54A3,0x54D5,0x54BB,0x54BF,0x54CC, +0x54D9,0x54DA,0x54DC,0x54A9,0x54AA,0x54A4,0x54DD,0x54CF, +0x54DE,0x551B,0x54E7,0x5520,0x54FD,0x5514,0x54F3,0x5522, +0x5523,0x550F,0x5511,0x5527,0x552A,0x5567,0x558F,0x55B5, +0x5549,0x556D,0x5541,0x5555,0x553F,0x5550,0x553C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x90C2,0x90C3,0x90C6,0x90C8,0x90C9,0x90CB,0x90CC,0x90CD, +0x90D2,0x90D4,0x90D5,0x90D6,0x90D8,0x90D9,0x90DA,0x90DE, +0x90DF,0x90E0,0x90E3,0x90E4,0x90E5,0x90E9,0x90EA,0x90EC, +0x90EE,0x90F0,0x90F1,0x90F2,0x90F3,0x90F5,0x90F6,0x90F7, +0x90F9,0x90FA,0x90FB,0x90FC,0x90FF,0x9100,0x9101,0x9103, +0x9105,0x9106,0x9107,0x9108,0x9109,0x910A,0x910B,0x910C, +0x910D,0x910E,0x910F,0x9110,0x9111,0x9112,0x9113,0x9114, +0x9115,0x9116,0x9117,0x9118,0x911A,0x911B,0x911C, 0, +0x911D,0x911F,0x9120,0x9121,0x9124,0x9125,0x9126,0x9127, +0x9128,0x9129,0x912A,0x912B,0x912C,0x912D,0x912E,0x9130, +0x9132,0x9133,0x9134,0x9135,0x9136,0x9137,0x9138,0x913A, +0x913B,0x913C,0x913D,0x913E,0x913F,0x9140,0x9141,0x9142, +0x9144,0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530, +0x555C,0x558B,0x55D2,0x5583,0x55B1,0x55B9,0x5588,0x5581, +0x559F,0x557E,0x55D6,0x5591,0x557B,0x55DF,0x55BD,0x55BE, +0x5594,0x5599,0x55EA,0x55F7,0x55C9,0x561F,0x55D1,0x55EB, +0x55EC,0x55D4,0x55E6,0x55DD,0x55C4,0x55EF,0x55E5,0x55F2, +0x55F3,0x55CC,0x55CD,0x55E8,0x55F5,0x55E4,0x8F94,0x561E, +0x5608,0x560C,0x5601,0x5624,0x5623,0x55FE,0x5600,0x5627, +0x562D,0x5658,0x5639,0x5657,0x562C,0x564D,0x5662,0x5659, +0x565C,0x564C,0x5654,0x5686,0x5664,0x5671,0x566B,0x567B, +0x567C,0x5685,0x5693,0x56AF,0x56D4,0x56D7,0x56DD,0x56E1, +0x56F5,0x56EB,0x56F9,0x56FF,0x5704,0x570A,0x5709,0x571C, +0x5E0F,0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9145,0x9147,0x9148,0x9151,0x9153,0x9154,0x9155,0x9156, +0x9158,0x9159,0x915B,0x915C,0x915F,0x9160,0x9166,0x9167, +0x9168,0x916B,0x916D,0x9173,0x917A,0x917B,0x917C,0x9180, +0x9181,0x9182,0x9183,0x9184,0x9186,0x9188,0x918A,0x918E, +0x918F,0x9193,0x9194,0x9195,0x9196,0x9197,0x9198,0x9199, +0x919C,0x919D,0x919E,0x919F,0x91A0,0x91A1,0x91A4,0x91A5, +0x91A6,0x91A7,0x91A8,0x91A9,0x91AB,0x91AC,0x91B0,0x91B1, +0x91B2,0x91B3,0x91B6,0x91B7,0x91B8,0x91B9,0x91BB, 0, +0x91BC,0x91BD,0x91BE,0x91BF,0x91C0,0x91C1,0x91C2,0x91C3, +0x91C4,0x91C5,0x91C6,0x91C8,0x91CB,0x91D0,0x91D2,0x91D3, +0x91D4,0x91D5,0x91D6,0x91D7,0x91D8,0x91D9,0x91DA,0x91DB, +0x91DD,0x91DE,0x91DF,0x91E0,0x91E1,0x91E2,0x91E3,0x91E4, +0x91E5,0x5E37,0x5E44,0x5E54,0x5E5B,0x5E5E,0x5E61,0x5C8C, +0x5C7A,0x5C8D,0x5C90,0x5C96,0x5C88,0x5C98,0x5C99,0x5C91, +0x5C9A,0x5C9C,0x5CB5,0x5CA2,0x5CBD,0x5CAC,0x5CAB,0x5CB1, +0x5CA3,0x5CC1,0x5CB7,0x5CC4,0x5CD2,0x5CE4,0x5CCB,0x5CE5, +0x5D02,0x5D03,0x5D27,0x5D26,0x5D2E,0x5D24,0x5D1E,0x5D06, +0x5D1B,0x5D58,0x5D3E,0x5D34,0x5D3D,0x5D6C,0x5D5B,0x5D6F, +0x5D5D,0x5D6B,0x5D4B,0x5D4A,0x5D69,0x5D74,0x5D82,0x5D99, +0x5D9D,0x8C73,0x5DB7,0x5DC5,0x5F73,0x5F77,0x5F82,0x5F87, +0x5F89,0x5F8C,0x5F95,0x5F99,0x5F9C,0x5FA8,0x5FAD,0x5FB5, +0x5FBC,0x8862,0x5F61,0x72AD,0x72B0,0x72B4,0x72B7,0x72B8, +0x72C3,0x72C1,0x72CE,0x72CD,0x72D2,0x72E8,0x72EF,0x72E9, +0x72F2,0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x91E6,0x91E7,0x91E8,0x91E9,0x91EA,0x91EB,0x91EC,0x91ED, +0x91EE,0x91EF,0x91F0,0x91F1,0x91F2,0x91F3,0x91F4,0x91F5, +0x91F6,0x91F7,0x91F8,0x91F9,0x91FA,0x91FB,0x91FC,0x91FD, +0x91FE,0x91FF,0x9200,0x9201,0x9202,0x9203,0x9204,0x9205, +0x9206,0x9207,0x9208,0x9209,0x920A,0x920B,0x920C,0x920D, +0x920E,0x920F,0x9210,0x9211,0x9212,0x9213,0x9214,0x9215, +0x9216,0x9217,0x9218,0x9219,0x921A,0x921B,0x921C,0x921D, +0x921E,0x921F,0x9220,0x9221,0x9222,0x9223,0x9224, 0, +0x9225,0x9226,0x9227,0x9228,0x9229,0x922A,0x922B,0x922C, +0x922D,0x922E,0x922F,0x9230,0x9231,0x9232,0x9233,0x9234, +0x9235,0x9236,0x9237,0x9238,0x9239,0x923A,0x923B,0x923C, +0x923D,0x923E,0x923F,0x9240,0x9241,0x9242,0x9243,0x9244, +0x9245,0x72FB,0x7317,0x7313,0x7321,0x730A,0x731E,0x731D, +0x7315,0x7322,0x7339,0x7325,0x732C,0x7338,0x7331,0x7350, +0x734D,0x7357,0x7360,0x736C,0x736F,0x737E,0x821B,0x5925, +0x98E7,0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996A, +0x996B,0x996C,0x9974,0x9977,0x997D,0x9980,0x9984,0x9987, +0x998A,0x998D,0x9990,0x9991,0x9993,0x9994,0x9995,0x5E80, +0x5E91,0x5E8B,0x5E96,0x5EA5,0x5EA0,0x5EB9,0x5EB5,0x5EBE, +0x5EB3,0x8D53,0x5ED2,0x5ED1,0x5EDB,0x5EE8,0x5EEA,0x81BA, +0x5FC4,0x5FC9,0x5FD6,0x5FCF,0x6003,0x5FEE,0x6004,0x5FE1, +0x5FE4,0x5FFE,0x6005,0x6006,0x5FEA,0x5FED,0x5FF8,0x6019, +0x6035,0x6026,0x601B,0x600F,0x600D,0x6029,0x602B,0x600A, +0x603F,0x6021,0x6078,0x6079,0x607B,0x607A,0x6042, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9246,0x9247,0x9248,0x9249,0x924A,0x924B,0x924C,0x924D, +0x924E,0x924F,0x9250,0x9251,0x9252,0x9253,0x9254,0x9255, +0x9256,0x9257,0x9258,0x9259,0x925A,0x925B,0x925C,0x925D, +0x925E,0x925F,0x9260,0x9261,0x9262,0x9263,0x9264,0x9265, +0x9266,0x9267,0x9268,0x9269,0x926A,0x926B,0x926C,0x926D, +0x926E,0x926F,0x9270,0x9271,0x9272,0x9273,0x9275,0x9276, +0x9277,0x9278,0x9279,0x927A,0x927B,0x927C,0x927D,0x927E, +0x927F,0x9280,0x9281,0x9282,0x9283,0x9284,0x9285, 0, +0x9286,0x9287,0x9288,0x9289,0x928A,0x928B,0x928C,0x928D, +0x928F,0x9290,0x9291,0x9292,0x9293,0x9294,0x9295,0x9296, +0x9297,0x9298,0x9299,0x929A,0x929B,0x929C,0x929D,0x929E, +0x929F,0x92A0,0x92A1,0x92A2,0x92A3,0x92A4,0x92A5,0x92A6, +0x92A7,0x606A,0x607D,0x6096,0x609A,0x60AD,0x609D,0x6083, +0x6092,0x608C,0x609B,0x60EC,0x60BB,0x60B1,0x60DD,0x60D8, +0x60C6,0x60DA,0x60B4,0x6120,0x6126,0x6115,0x6123,0x60F4, +0x6100,0x610E,0x612B,0x614A,0x6175,0x61AC,0x6194,0x61A7, +0x61B7,0x61D4,0x61F5,0x5FDD,0x96B3,0x95E9,0x95EB,0x95F1, +0x95F3,0x95F5,0x95F6,0x95FC,0x95FE,0x9603,0x9604,0x9606, +0x9608,0x960A,0x960B,0x960C,0x960D,0x960F,0x9612,0x9615, +0x9616,0x9617,0x9619,0x961A,0x4E2C,0x723F,0x6215,0x6C35, +0x6C54,0x6C5C,0x6C4A,0x6CA3,0x6C85,0x6C90,0x6C94,0x6C8C, +0x6C68,0x6C69,0x6C74,0x6C76,0x6C86,0x6CA9,0x6CD0,0x6CD4, +0x6CAD,0x6CF7,0x6CF8,0x6CF1,0x6CD7,0x6CB2,0x6CE0,0x6CD6, +0x6CFA,0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x92A8,0x92A9,0x92AA,0x92AB,0x92AC,0x92AD,0x92AF,0x92B0, +0x92B1,0x92B2,0x92B3,0x92B4,0x92B5,0x92B6,0x92B7,0x92B8, +0x92B9,0x92BA,0x92BB,0x92BC,0x92BD,0x92BE,0x92BF,0x92C0, +0x92C1,0x92C2,0x92C3,0x92C4,0x92C5,0x92C6,0x92C7,0x92C9, +0x92CA,0x92CB,0x92CC,0x92CD,0x92CE,0x92CF,0x92D0,0x92D1, +0x92D2,0x92D3,0x92D4,0x92D5,0x92D6,0x92D7,0x92D8,0x92D9, +0x92DA,0x92DB,0x92DC,0x92DD,0x92DE,0x92DF,0x92E0,0x92E1, +0x92E2,0x92E3,0x92E4,0x92E5,0x92E6,0x92E7,0x92E8, 0, +0x92E9,0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,0x92F0, +0x92F1,0x92F2,0x92F3,0x92F4,0x92F5,0x92F6,0x92F7,0x92F8, +0x92F9,0x92FA,0x92FB,0x92FC,0x92FD,0x92FE,0x92FF,0x9300, +0x9301,0x9302,0x9303,0x9304,0x9305,0x9306,0x9307,0x9308, +0x9309,0x6D39,0x6D27,0x6D0C,0x6D43,0x6D48,0x6D07,0x6D04, +0x6D19,0x6D0E,0x6D2B,0x6D4D,0x6D2E,0x6D35,0x6D1A,0x6D4F, +0x6D52,0x6D54,0x6D33,0x6D91,0x6D6F,0x6D9E,0x6DA0,0x6D5E, +0x6D93,0x6D94,0x6D5C,0x6D60,0x6D7C,0x6D63,0x6E1A,0x6DC7, +0x6DC5,0x6DDE,0x6E0E,0x6DBF,0x6DE0,0x6E11,0x6DE6,0x6DDD, +0x6DD9,0x6E16,0x6DAB,0x6E0C,0x6DAE,0x6E2B,0x6E6E,0x6E4E, +0x6E6B,0x6EB2,0x6E5F,0x6E86,0x6E53,0x6E54,0x6E32,0x6E25, +0x6E44,0x6EDF,0x6EB1,0x6E98,0x6EE0,0x6F2D,0x6EE2,0x6EA5, +0x6EA7,0x6EBD,0x6EBB,0x6EB7,0x6ED7,0x6EB4,0x6ECF,0x6E8F, +0x6EC2,0x6E9F,0x6F62,0x6F46,0x6F47,0x6F24,0x6F15,0x6EF9, +0x6F2F,0x6F36,0x6F4B,0x6F74,0x6F2A,0x6F09,0x6F29,0x6F89, +0x6F8D,0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x930A,0x930B,0x930C,0x930D,0x930E,0x930F,0x9310,0x9311, +0x9312,0x9313,0x9314,0x9315,0x9316,0x9317,0x9318,0x9319, +0x931A,0x931B,0x931C,0x931D,0x931E,0x931F,0x9320,0x9321, +0x9322,0x9323,0x9324,0x9325,0x9326,0x9327,0x9328,0x9329, +0x932A,0x932B,0x932C,0x932D,0x932E,0x932F,0x9330,0x9331, +0x9332,0x9333,0x9334,0x9335,0x9336,0x9337,0x9338,0x9339, +0x933A,0x933B,0x933C,0x933D,0x933F,0x9340,0x9341,0x9342, +0x9343,0x9344,0x9345,0x9346,0x9347,0x9348,0x9349, 0, +0x934A,0x934B,0x934C,0x934D,0x934E,0x934F,0x9350,0x9351, +0x9352,0x9353,0x9354,0x9355,0x9356,0x9357,0x9358,0x9359, +0x935A,0x935B,0x935C,0x935D,0x935E,0x935F,0x9360,0x9361, +0x9362,0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369, +0x936B,0x6FC9,0x6FA7,0x6FB9,0x6FB6,0x6FC2,0x6FE1,0x6FEE, +0x6FDE,0x6FE0,0x6FEF,0x701A,0x7023,0x701B,0x7039,0x7035, +0x704F,0x705E,0x5B80,0x5B84,0x5B95,0x5B93,0x5BA5,0x5BB8, +0x752F,0x9A9E,0x6434,0x5BE4,0x5BEE,0x8930,0x5BF0,0x8E47, +0x8B07,0x8FB6,0x8FD3,0x8FD5,0x8FE5,0x8FEE,0x8FE4,0x8FE9, +0x8FE6,0x8FF3,0x8FE8,0x9005,0x9004,0x900B,0x9026,0x9011, +0x900D,0x9016,0x9021,0x9035,0x9036,0x902D,0x902F,0x9044, +0x9051,0x9052,0x9050,0x9068,0x9058,0x9062,0x905B,0x66B9, +0x9074,0x907D,0x9082,0x9088,0x9083,0x908B,0x5F50,0x5F57, +0x5F56,0x5F58,0x5C3B,0x54AB,0x5C50,0x5C59,0x5B71,0x5C63, +0x5C66,0x7FBC,0x5F2A,0x5F29,0x5F2D,0x8274,0x5F3C,0x9B3B, +0x5C6E,0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x936C,0x936D,0x936E,0x936F,0x9370,0x9371,0x9372,0x9373, +0x9374,0x9375,0x9376,0x9377,0x9378,0x9379,0x937A,0x937B, +0x937C,0x937D,0x937E,0x937F,0x9380,0x9381,0x9382,0x9383, +0x9384,0x9385,0x9386,0x9387,0x9388,0x9389,0x938A,0x938B, +0x938C,0x938D,0x938E,0x9390,0x9391,0x9392,0x9393,0x9394, +0x9395,0x9396,0x9397,0x9398,0x9399,0x939A,0x939B,0x939C, +0x939D,0x939E,0x939F,0x93A0,0x93A1,0x93A2,0x93A3,0x93A4, +0x93A5,0x93A6,0x93A7,0x93A8,0x93A9,0x93AA,0x93AB, 0, +0x93AC,0x93AD,0x93AE,0x93AF,0x93B0,0x93B1,0x93B2,0x93B3, +0x93B4,0x93B5,0x93B6,0x93B7,0x93B8,0x93B9,0x93BA,0x93BB, +0x93BC,0x93BD,0x93BE,0x93BF,0x93C0,0x93C1,0x93C2,0x93C3, +0x93C4,0x93C5,0x93C6,0x93C7,0x93C8,0x93C9,0x93CB,0x93CC, +0x93CD,0x5997,0x59CA,0x59AB,0x599E,0x59A4,0x59D2,0x59B2, +0x59AF,0x59D7,0x59BE,0x5A05,0x5A06,0x59DD,0x5A08,0x59E3, +0x59D8,0x59F9,0x5A0C,0x5A09,0x5A32,0x5A34,0x5A11,0x5A23, +0x5A13,0x5A40,0x5A67,0x5A4A,0x5A55,0x5A3C,0x5A62,0x5A75, +0x80EC,0x5AAA,0x5A9B,0x5A77,0x5A7A,0x5ABE,0x5AEB,0x5AB2, +0x5AD2,0x5AD4,0x5AB8,0x5AE0,0x5AE3,0x5AF1,0x5AD6,0x5AE6, +0x5AD8,0x5ADC,0x5B09,0x5B17,0x5B16,0x5B32,0x5B37,0x5B40, +0x5C15,0x5C1C,0x5B5A,0x5B65,0x5B73,0x5B51,0x5B53,0x5B62, +0x9A75,0x9A77,0x9A78,0x9A7A,0x9A7F,0x9A7D,0x9A80,0x9A81, +0x9A85,0x9A88,0x9A8A,0x9A90,0x9A92,0x9A93,0x9A96,0x9A98, +0x9A9B,0x9A9C,0x9A9D,0x9A9F,0x9AA0,0x9AA2,0x9AA3,0x9AA5, +0x9AA7,0x7E9F,0x7EA1,0x7EA3,0x7EA5,0x7EA8,0x7EA9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x93CE,0x93CF,0x93D0,0x93D1,0x93D2,0x93D3,0x93D4,0x93D5, +0x93D7,0x93D8,0x93D9,0x93DA,0x93DB,0x93DC,0x93DD,0x93DE, +0x93DF,0x93E0,0x93E1,0x93E2,0x93E3,0x93E4,0x93E5,0x93E6, +0x93E7,0x93E8,0x93E9,0x93EA,0x93EB,0x93EC,0x93ED,0x93EE, +0x93EF,0x93F0,0x93F1,0x93F2,0x93F3,0x93F4,0x93F5,0x93F6, +0x93F7,0x93F8,0x93F9,0x93FA,0x93FB,0x93FC,0x93FD,0x93FE, +0x93FF,0x9400,0x9401,0x9402,0x9403,0x9404,0x9405,0x9406, +0x9407,0x9408,0x9409,0x940A,0x940B,0x940C,0x940D, 0, +0x940E,0x940F,0x9410,0x9411,0x9412,0x9413,0x9414,0x9415, +0x9416,0x9417,0x9418,0x9419,0x941A,0x941B,0x941C,0x941D, +0x941E,0x941F,0x9420,0x9421,0x9422,0x9423,0x9424,0x9425, +0x9426,0x9427,0x9428,0x9429,0x942A,0x942B,0x942C,0x942D, +0x942E,0x7EAD,0x7EB0,0x7EBE,0x7EC0,0x7EC1,0x7EC2,0x7EC9, +0x7ECB,0x7ECC,0x7ED0,0x7ED4,0x7ED7,0x7EDB,0x7EE0,0x7EE1, +0x7EE8,0x7EEB,0x7EEE,0x7EEF,0x7EF1,0x7EF2,0x7F0D,0x7EF6, +0x7EFA,0x7EFB,0x7EFE,0x7F01,0x7F02,0x7F03,0x7F07,0x7F08, +0x7F0B,0x7F0C,0x7F0F,0x7F11,0x7F12,0x7F17,0x7F19,0x7F1C, +0x7F1B,0x7F1F,0x7F21,0x7F22,0x7F23,0x7F24,0x7F25,0x7F26, +0x7F27,0x7F2A,0x7F2B,0x7F2C,0x7F2D,0x7F2F,0x7F30,0x7F31, +0x7F32,0x7F33,0x7F35,0x5E7A,0x757F,0x5DDB,0x753E,0x9095, +0x738E,0x7391,0x73AE,0x73A2,0x739F,0x73CF,0x73C2,0x73D1, +0x73B7,0x73B3,0x73C0,0x73C9,0x73C8,0x73E5,0x73D9,0x987C, +0x740A,0x73E9,0x73E7,0x73DE,0x73BA,0x73F2,0x740F,0x742A, +0x745B,0x7426,0x7425,0x7428,0x7430,0x742E,0x742C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x942F,0x9430,0x9431,0x9432,0x9433,0x9434,0x9435,0x9436, +0x9437,0x9438,0x9439,0x943A,0x943B,0x943C,0x943D,0x943F, +0x9440,0x9441,0x9442,0x9443,0x9444,0x9445,0x9446,0x9447, +0x9448,0x9449,0x944A,0x944B,0x944C,0x944D,0x944E,0x944F, +0x9450,0x9451,0x9452,0x9453,0x9454,0x9455,0x9456,0x9457, +0x9458,0x9459,0x945A,0x945B,0x945C,0x945D,0x945E,0x945F, +0x9460,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,0x9467, +0x9468,0x9469,0x946A,0x946C,0x946D,0x946E,0x946F, 0, +0x9470,0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,0x9477, +0x9478,0x9479,0x947A,0x947B,0x947C,0x947D,0x947E,0x947F, +0x9480,0x9481,0x9482,0x9483,0x9484,0x9491,0x9496,0x9498, +0x94C7,0x94CF,0x94D3,0x94D4,0x94DA,0x94E6,0x94FB,0x951C, +0x9520,0x741B,0x741A,0x7441,0x745C,0x7457,0x7455,0x7459, +0x7477,0x746D,0x747E,0x749C,0x748E,0x7480,0x7481,0x7487, +0x748B,0x749E,0x74A8,0x74A9,0x7490,0x74A7,0x74D2,0x74BA, +0x97EA,0x97EB,0x97EC,0x674C,0x6753,0x675E,0x6748,0x6769, +0x67A5,0x6787,0x676A,0x6773,0x6798,0x67A7,0x6775,0x67A8, +0x679E,0x67AD,0x678B,0x6777,0x677C,0x67F0,0x6809,0x67D8, +0x680A,0x67E9,0x67B0,0x680C,0x67D9,0x67B5,0x67DA,0x67B3, +0x67DD,0x6800,0x67C3,0x67B8,0x67E2,0x680E,0x67C1,0x67FD, +0x6832,0x6833,0x6860,0x6861,0x684E,0x6862,0x6844,0x6864, +0x6883,0x681D,0x6855,0x6866,0x6841,0x6867,0x6840,0x683E, +0x684A,0x6849,0x6829,0x68B5,0x688F,0x6874,0x6877,0x6893, +0x686B,0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9527,0x9533,0x953D,0x9543,0x9548,0x954B,0x9555,0x955A, +0x9560,0x956E,0x9574,0x9575,0x9577,0x9578,0x9579,0x957A, +0x957B,0x957C,0x957D,0x957E,0x9580,0x9581,0x9582,0x9583, +0x9584,0x9585,0x9586,0x9587,0x9588,0x9589,0x958A,0x958B, +0x958C,0x958D,0x958E,0x958F,0x9590,0x9591,0x9592,0x9593, +0x9594,0x9595,0x9596,0x9597,0x9598,0x9599,0x959A,0x959B, +0x959C,0x959D,0x959E,0x959F,0x95A0,0x95A1,0x95A2,0x95A3, +0x95A4,0x95A5,0x95A6,0x95A7,0x95A8,0x95A9,0x95AA, 0, +0x95AB,0x95AC,0x95AD,0x95AE,0x95AF,0x95B0,0x95B1,0x95B2, +0x95B3,0x95B4,0x95B5,0x95B6,0x95B7,0x95B8,0x95B9,0x95BA, +0x95BB,0x95BC,0x95BD,0x95BE,0x95BF,0x95C0,0x95C1,0x95C2, +0x95C3,0x95C4,0x95C5,0x95C6,0x95C7,0x95C8,0x95C9,0x95CA, +0x95CB,0x6924,0x68F0,0x690B,0x6901,0x6957,0x68E3,0x6910, +0x6971,0x6939,0x6960,0x6942,0x695D,0x6984,0x696B,0x6980, +0x6998,0x6978,0x6934,0x69CC,0x6987,0x6988,0x69CE,0x6989, +0x6966,0x6963,0x6979,0x699B,0x69A7,0x69BB,0x69AB,0x69AD, +0x69D4,0x69B1,0x69C1,0x69CA,0x69DF,0x6995,0x69E0,0x698D, +0x69FF,0x6A2F,0x69ED,0x6A17,0x6A18,0x6A65,0x69F2,0x6A44, +0x6A3E,0x6AA0,0x6A50,0x6A5B,0x6A35,0x6A8E,0x6A79,0x6A3D, +0x6A28,0x6A58,0x6A7C,0x6A91,0x6A90,0x6AA9,0x6A97,0x6AAB, +0x7337,0x7352,0x6B81,0x6B82,0x6B87,0x6B84,0x6B92,0x6B93, +0x6B8D,0x6B9A,0x6B9B,0x6BA1,0x6BAA,0x8F6B,0x8F6D,0x8F71, +0x8F72,0x8F73,0x8F75,0x8F76,0x8F78,0x8F77,0x8F79,0x8F7A, +0x8F7C,0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x95CC,0x95CD,0x95CE,0x95CF,0x95D0,0x95D1,0x95D2,0x95D3, +0x95D4,0x95D5,0x95D6,0x95D7,0x95D8,0x95D9,0x95DA,0x95DB, +0x95DC,0x95DD,0x95DE,0x95DF,0x95E0,0x95E1,0x95E2,0x95E3, +0x95E4,0x95E5,0x95E6,0x95E7,0x95EC,0x95FF,0x9607,0x9613, +0x9618,0x961B,0x961E,0x9620,0x9623,0x9624,0x9625,0x9626, +0x9627,0x9628,0x9629,0x962B,0x962C,0x962D,0x962F,0x9630, +0x9637,0x9638,0x9639,0x963A,0x963E,0x9641,0x9643,0x964A, +0x964E,0x964F,0x9651,0x9652,0x9653,0x9656,0x9657, 0, +0x9658,0x9659,0x965A,0x965C,0x965D,0x965E,0x9660,0x9663, +0x9665,0x9666,0x966B,0x966D,0x966E,0x966F,0x9670,0x9671, +0x9673,0x9678,0x9679,0x967A,0x967B,0x967C,0x967D,0x967E, +0x967F,0x9680,0x9681,0x9682,0x9683,0x9684,0x9687,0x9689, +0x968A,0x8F8D,0x8F8E,0x8F8F,0x8F98,0x8F9A,0x8ECE,0x620B, +0x6217,0x621B,0x621F,0x6222,0x6221,0x6225,0x6224,0x622C, +0x81E7,0x74EF,0x74F4,0x74FF,0x750F,0x7511,0x7513,0x6534, +0x65EE,0x65EF,0x65F0,0x660A,0x6619,0x6772,0x6603,0x6615, +0x6600,0x7085,0x66F7,0x661D,0x6634,0x6631,0x6636,0x6635, +0x8006,0x665F,0x6654,0x6641,0x664F,0x6656,0x6661,0x6657, +0x6677,0x6684,0x668C,0x66A7,0x669D,0x66BE,0x66DB,0x66DC, +0x66E6,0x66E9,0x8D32,0x8D33,0x8D36,0x8D3B,0x8D3D,0x8D40, +0x8D45,0x8D46,0x8D48,0x8D49,0x8D47,0x8D4D,0x8D55,0x8D59, +0x89C7,0x89CA,0x89CB,0x89CC,0x89CE,0x89CF,0x89D0,0x89D1, +0x726E,0x729F,0x725D,0x7266,0x726F,0x727E,0x727F,0x7284, +0x728B,0x728D,0x728F,0x7292,0x6308,0x6332,0x63B0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x968C,0x968E,0x9691,0x9692,0x9693,0x9695,0x9696,0x969A, +0x969B,0x969D,0x969E,0x969F,0x96A0,0x96A1,0x96A2,0x96A3, +0x96A4,0x96A5,0x96A6,0x96A8,0x96A9,0x96AA,0x96AB,0x96AC, +0x96AD,0x96AE,0x96AF,0x96B1,0x96B2,0x96B4,0x96B5,0x96B7, +0x96B8,0x96BA,0x96BB,0x96BF,0x96C2,0x96C3,0x96C8,0x96CA, +0x96CB,0x96D0,0x96D1,0x96D3,0x96D4,0x96D6,0x96D7,0x96D8, +0x96D9,0x96DA,0x96DB,0x96DC,0x96DD,0x96DE,0x96DF,0x96E1, +0x96E2,0x96E3,0x96E4,0x96E5,0x96E6,0x96E7,0x96EB, 0, +0x96EC,0x96ED,0x96EE,0x96F0,0x96F1,0x96F2,0x96F4,0x96F5, +0x96F8,0x96FA,0x96FB,0x96FC,0x96FD,0x96FF,0x9702,0x9703, +0x9705,0x970A,0x970B,0x970C,0x9710,0x9711,0x9712,0x9714, +0x9715,0x9717,0x9718,0x9719,0x971A,0x971B,0x971D,0x971F, +0x9720,0x643F,0x64D8,0x8004,0x6BEA,0x6BF3,0x6BFD,0x6BF5, +0x6BF9,0x6C05,0x6C07,0x6C06,0x6C0D,0x6C15,0x6C18,0x6C19, +0x6C1A,0x6C21,0x6C29,0x6C24,0x6C2A,0x6C32,0x6535,0x6555, +0x656B,0x724D,0x7252,0x7256,0x7230,0x8662,0x5216,0x809F, +0x809C,0x8093,0x80BC,0x670A,0x80BD,0x80B1,0x80AB,0x80AD, +0x80B4,0x80B7,0x80E7,0x80E8,0x80E9,0x80EA,0x80DB,0x80C2, +0x80C4,0x80D9,0x80CD,0x80D7,0x6710,0x80DD,0x80EB,0x80F1, +0x80F4,0x80ED,0x810D,0x810E,0x80F2,0x80FC,0x6715,0x8112, +0x8C5A,0x8136,0x811E,0x812C,0x8118,0x8132,0x8148,0x814C, +0x8153,0x8174,0x8159,0x815A,0x8171,0x8160,0x8169,0x817C, +0x817D,0x816D,0x8167,0x584D,0x5AB5,0x8188,0x8182,0x8191, +0x6ED5,0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9721,0x9722,0x9723,0x9724,0x9725,0x9726,0x9727,0x9728, +0x9729,0x972B,0x972C,0x972E,0x972F,0x9731,0x9733,0x9734, +0x9735,0x9736,0x9737,0x973A,0x973B,0x973C,0x973D,0x973F, +0x9740,0x9741,0x9742,0x9743,0x9744,0x9745,0x9746,0x9747, +0x9748,0x9749,0x974A,0x974B,0x974C,0x974D,0x974E,0x974F, +0x9750,0x9751,0x9754,0x9755,0x9757,0x9758,0x975A,0x975C, +0x975D,0x975F,0x9763,0x9764,0x9766,0x9767,0x9768,0x976A, +0x976B,0x976C,0x976D,0x976E,0x976F,0x9770,0x9771, 0, +0x9772,0x9775,0x9777,0x9778,0x9779,0x977A,0x977B,0x977D, +0x977E,0x977F,0x9780,0x9781,0x9782,0x9783,0x9784,0x9786, +0x9787,0x9788,0x9789,0x978A,0x978C,0x978E,0x978F,0x9790, +0x9793,0x9795,0x9796,0x9797,0x9799,0x979A,0x979B,0x979C, +0x979D,0x81C1,0x81A6,0x6B24,0x6B37,0x6B39,0x6B43,0x6B46, +0x6B59,0x98D1,0x98D2,0x98D3,0x98D5,0x98D9,0x98DA,0x6BB3, +0x5F40,0x6BC2,0x89F3,0x6590,0x9F51,0x6593,0x65BC,0x65C6, +0x65C4,0x65C3,0x65CC,0x65CE,0x65D2,0x65D6,0x7080,0x709C, +0x7096,0x709D,0x70BB,0x70C0,0x70B7,0x70AB,0x70B1,0x70E8, +0x70CA,0x7110,0x7113,0x7116,0x712F,0x7131,0x7173,0x715C, +0x7168,0x7145,0x7172,0x714A,0x7178,0x717A,0x7198,0x71B3, +0x71B5,0x71A8,0x71A0,0x71E0,0x71D4,0x71E7,0x71F9,0x721D, +0x7228,0x706C,0x7118,0x7166,0x71B9,0x623E,0x623D,0x6243, +0x6248,0x6249,0x793B,0x7940,0x7946,0x7949,0x795B,0x795C, +0x7953,0x795A,0x7962,0x7957,0x7960,0x796F,0x7967,0x797A, +0x7985,0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x979E,0x979F,0x97A1,0x97A2,0x97A4,0x97A5,0x97A6,0x97A7, +0x97A8,0x97A9,0x97AA,0x97AC,0x97AE,0x97B0,0x97B1,0x97B3, +0x97B5,0x97B6,0x97B7,0x97B8,0x97B9,0x97BA,0x97BB,0x97BC, +0x97BD,0x97BE,0x97BF,0x97C0,0x97C1,0x97C2,0x97C3,0x97C4, +0x97C5,0x97C6,0x97C7,0x97C8,0x97C9,0x97CA,0x97CB,0x97CC, +0x97CD,0x97CE,0x97CF,0x97D0,0x97D1,0x97D2,0x97D3,0x97D4, +0x97D5,0x97D6,0x97D7,0x97D8,0x97D9,0x97DA,0x97DB,0x97DC, +0x97DD,0x97DE,0x97DF,0x97E0,0x97E1,0x97E2,0x97E3, 0, +0x97E4,0x97E5,0x97E8,0x97EE,0x97EF,0x97F0,0x97F1,0x97F2, +0x97F4,0x97F7,0x97F8,0x97F9,0x97FA,0x97FB,0x97FC,0x97FD, +0x97FE,0x97FF,0x9800,0x9801,0x9802,0x9803,0x9804,0x9805, +0x9806,0x9807,0x9808,0x9809,0x980A,0x980B,0x980C,0x980D, +0x980E,0x603C,0x605D,0x605A,0x6067,0x6041,0x6059,0x6063, +0x60AB,0x6106,0x610D,0x615D,0x61A9,0x619D,0x61CB,0x61D1, +0x6206,0x8080,0x807F,0x6C93,0x6CF6,0x6DFC,0x77F6,0x77F8, +0x7800,0x7809,0x7817,0x7818,0x7811,0x65AB,0x782D,0x781C, +0x781D,0x7839,0x783A,0x783B,0x781F,0x783C,0x7825,0x782C, +0x7823,0x7829,0x784E,0x786D,0x7856,0x7857,0x7826,0x7850, +0x7847,0x784C,0x786A,0x789B,0x7893,0x789A,0x7887,0x789C, +0x78A1,0x78A3,0x78B2,0x78B9,0x78A5,0x78D4,0x78D9,0x78C9, +0x78EC,0x78F2,0x7905,0x78F4,0x7913,0x7924,0x791E,0x7934, +0x9F9B,0x9EF9,0x9EFB,0x9EFC,0x76F1,0x7704,0x770D,0x76F9, +0x7707,0x7708,0x771A,0x7722,0x7719,0x772D,0x7726,0x7735, +0x7738,0x7750,0x7751,0x7747,0x7743,0x775A,0x7768, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x980F,0x9810,0x9811,0x9812,0x9813,0x9814,0x9815,0x9816, +0x9817,0x9818,0x9819,0x981A,0x981B,0x981C,0x981D,0x981E, +0x981F,0x9820,0x9821,0x9822,0x9823,0x9824,0x9825,0x9826, +0x9827,0x9828,0x9829,0x982A,0x982B,0x982C,0x982D,0x982E, +0x982F,0x9830,0x9831,0x9832,0x9833,0x9834,0x9835,0x9836, +0x9837,0x9838,0x9839,0x983A,0x983B,0x983C,0x983D,0x983E, +0x983F,0x9840,0x9841,0x9842,0x9843,0x9844,0x9845,0x9846, +0x9847,0x9848,0x9849,0x984A,0x984B,0x984C,0x984D, 0, +0x984E,0x984F,0x9850,0x9851,0x9852,0x9853,0x9854,0x9855, +0x9856,0x9857,0x9858,0x9859,0x985A,0x985B,0x985C,0x985D, +0x985E,0x985F,0x9860,0x9861,0x9862,0x9863,0x9864,0x9865, +0x9866,0x9867,0x9868,0x9869,0x986A,0x986B,0x986C,0x986D, +0x986E,0x7762,0x7765,0x777F,0x778D,0x777D,0x7780,0x778C, +0x7791,0x779F,0x77A0,0x77B0,0x77B5,0x77BD,0x753A,0x7540, +0x754E,0x754B,0x7548,0x755B,0x7572,0x7579,0x7583,0x7F58, +0x7F61,0x7F5F,0x8A48,0x7F68,0x7F74,0x7F71,0x7F79,0x7F81, +0x7F7E,0x76CD,0x76E5,0x8832,0x9485,0x9486,0x9487,0x948B, +0x948A,0x948C,0x948D,0x948F,0x9490,0x9494,0x9497,0x9495, +0x949A,0x949B,0x949C,0x94A3,0x94A4,0x94AB,0x94AA,0x94AD, +0x94AC,0x94AF,0x94B0,0x94B2,0x94B4,0x94B6,0x94B7,0x94B8, +0x94B9,0x94BA,0x94BC,0x94BD,0x94BF,0x94C4,0x94C8,0x94C9, +0x94CA,0x94CB,0x94CC,0x94CD,0x94CE,0x94D0,0x94D1,0x94D2, +0x94D5,0x94D6,0x94D7,0x94D9,0x94D8,0x94DB,0x94DE,0x94DF, +0x94E0,0x94E2,0x94E4,0x94E5,0x94E7,0x94E8,0x94EA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x986F,0x9870,0x9871,0x9872,0x9873,0x9874,0x988B,0x988E, +0x9892,0x9895,0x9899,0x98A3,0x98A8,0x98A9,0x98AA,0x98AB, +0x98AC,0x98AD,0x98AE,0x98AF,0x98B0,0x98B1,0x98B2,0x98B3, +0x98B4,0x98B5,0x98B6,0x98B7,0x98B8,0x98B9,0x98BA,0x98BB, +0x98BC,0x98BD,0x98BE,0x98BF,0x98C0,0x98C1,0x98C2,0x98C3, +0x98C4,0x98C5,0x98C6,0x98C7,0x98C8,0x98C9,0x98CA,0x98CB, +0x98CC,0x98CD,0x98CF,0x98D0,0x98D4,0x98D6,0x98D7,0x98DB, +0x98DC,0x98DD,0x98E0,0x98E1,0x98E2,0x98E3,0x98E4, 0, +0x98E5,0x98E6,0x98E9,0x98EA,0x98EB,0x98EC,0x98ED,0x98EE, +0x98EF,0x98F0,0x98F1,0x98F2,0x98F3,0x98F4,0x98F5,0x98F6, +0x98F7,0x98F8,0x98F9,0x98FA,0x98FB,0x98FC,0x98FD,0x98FE, +0x98FF,0x9900,0x9901,0x9902,0x9903,0x9904,0x9905,0x9906, +0x9907,0x94E9,0x94EB,0x94EE,0x94EF,0x94F3,0x94F4,0x94F5, +0x94F7,0x94F9,0x94FC,0x94FD,0x94FF,0x9503,0x9502,0x9506, +0x9507,0x9509,0x950A,0x950D,0x950E,0x950F,0x9512,0x9513, +0x9514,0x9515,0x9516,0x9518,0x951B,0x951D,0x951E,0x951F, +0x9522,0x952A,0x952B,0x9529,0x952C,0x9531,0x9532,0x9534, +0x9536,0x9537,0x9538,0x953C,0x953E,0x953F,0x9542,0x9535, +0x9544,0x9545,0x9546,0x9549,0x954C,0x954E,0x954F,0x9552, +0x9553,0x9554,0x9556,0x9557,0x9558,0x9559,0x955B,0x955E, +0x955F,0x955D,0x9561,0x9562,0x9564,0x9565,0x9566,0x9567, +0x9568,0x9569,0x956A,0x956B,0x956C,0x956F,0x9571,0x9572, +0x9573,0x953A,0x77E7,0x77EC,0x96C9,0x79D5,0x79ED,0x79E3, +0x79EB,0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9908,0x9909,0x990A,0x990B,0x990C,0x990E,0x990F,0x9911, +0x9912,0x9913,0x9914,0x9915,0x9916,0x9917,0x9918,0x9919, +0x991A,0x991B,0x991C,0x991D,0x991E,0x991F,0x9920,0x9921, +0x9922,0x9923,0x9924,0x9925,0x9926,0x9927,0x9928,0x9929, +0x992A,0x992B,0x992C,0x992D,0x992F,0x9930,0x9931,0x9932, +0x9933,0x9934,0x9935,0x9936,0x9937,0x9938,0x9939,0x993A, +0x993B,0x993C,0x993D,0x993E,0x993F,0x9940,0x9941,0x9942, +0x9943,0x9944,0x9945,0x9946,0x9947,0x9948,0x9949, 0, +0x994A,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,0x9951, +0x9952,0x9953,0x9956,0x9957,0x9958,0x9959,0x995A,0x995B, +0x995C,0x995D,0x995E,0x995F,0x9960,0x9961,0x9962,0x9964, +0x9966,0x9973,0x9978,0x9979,0x997B,0x997E,0x9982,0x9983, +0x9989,0x7A39,0x7A37,0x7A51,0x9ECF,0x99A5,0x7A70,0x7688, +0x768E,0x7693,0x7699,0x76A4,0x74DE,0x74E0,0x752C,0x9E20, +0x9E22,0x9E28,0x9E29,0x9E2A,0x9E2B,0x9E2C,0x9E32,0x9E31, +0x9E36,0x9E38,0x9E37,0x9E39,0x9E3A,0x9E3E,0x9E41,0x9E42, +0x9E44,0x9E46,0x9E47,0x9E48,0x9E49,0x9E4B,0x9E4C,0x9E4E, +0x9E51,0x9E55,0x9E57,0x9E5A,0x9E5B,0x9E5C,0x9E5E,0x9E63, +0x9E66,0x9E67,0x9E68,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E71, +0x9E6D,0x9E73,0x7592,0x7594,0x7596,0x75A0,0x759D,0x75AC, +0x75A3,0x75B3,0x75B4,0x75B8,0x75C4,0x75B1,0x75B0,0x75C3, +0x75C2,0x75D6,0x75CD,0x75E3,0x75E8,0x75E6,0x75E4,0x75EB, +0x75E7,0x7603,0x75F1,0x75FC,0x75FF,0x7610,0x7600,0x7605, +0x760C,0x7617,0x760A,0x7625,0x7618,0x7615,0x7619, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x998C,0x998E,0x999A,0x999B,0x999C,0x999D,0x999E,0x999F, +0x99A0,0x99A1,0x99A2,0x99A3,0x99A4,0x99A6,0x99A7,0x99A9, +0x99AA,0x99AB,0x99AC,0x99AD,0x99AE,0x99AF,0x99B0,0x99B1, +0x99B2,0x99B3,0x99B4,0x99B5,0x99B6,0x99B7,0x99B8,0x99B9, +0x99BA,0x99BB,0x99BC,0x99BD,0x99BE,0x99BF,0x99C0,0x99C1, +0x99C2,0x99C3,0x99C4,0x99C5,0x99C6,0x99C7,0x99C8,0x99C9, +0x99CA,0x99CB,0x99CC,0x99CD,0x99CE,0x99CF,0x99D0,0x99D1, +0x99D2,0x99D3,0x99D4,0x99D5,0x99D6,0x99D7,0x99D8, 0, +0x99D9,0x99DA,0x99DB,0x99DC,0x99DD,0x99DE,0x99DF,0x99E0, +0x99E1,0x99E2,0x99E3,0x99E4,0x99E5,0x99E6,0x99E7,0x99E8, +0x99E9,0x99EA,0x99EB,0x99EC,0x99ED,0x99EE,0x99EF,0x99F0, +0x99F1,0x99F2,0x99F3,0x99F4,0x99F5,0x99F6,0x99F7,0x99F8, +0x99F9,0x761B,0x763C,0x7622,0x7620,0x7640,0x762D,0x7630, +0x763F,0x7635,0x7643,0x763E,0x7633,0x764D,0x765E,0x7654, +0x765C,0x7656,0x766B,0x766F,0x7FCA,0x7AE6,0x7A78,0x7A79, +0x7A80,0x7A86,0x7A88,0x7A95,0x7AA6,0x7AA0,0x7AAC,0x7AA8, +0x7AAD,0x7AB3,0x8864,0x8869,0x8872,0x887D,0x887F,0x8882, +0x88A2,0x88C6,0x88B7,0x88BC,0x88C9,0x88E2,0x88CE,0x88E3, +0x88E5,0x88F1,0x891A,0x88FC,0x88E8,0x88FE,0x88F0,0x8921, +0x8919,0x8913,0x891B,0x890A,0x8934,0x892B,0x8936,0x8941, +0x8966,0x897B,0x758B,0x80E5,0x76B2,0x76B4,0x77DC,0x8012, +0x8014,0x8016,0x801C,0x8020,0x8022,0x8025,0x8026,0x8027, +0x8029,0x8028,0x8031,0x800B,0x8035,0x8043,0x8046,0x804D, +0x8052,0x8069,0x8071,0x8983,0x9878,0x9880,0x9883, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x99FA,0x99FB,0x99FC,0x99FD,0x99FE,0x99FF,0x9A00,0x9A01, +0x9A02,0x9A03,0x9A04,0x9A05,0x9A06,0x9A07,0x9A08,0x9A09, +0x9A0A,0x9A0B,0x9A0C,0x9A0D,0x9A0E,0x9A0F,0x9A10,0x9A11, +0x9A12,0x9A13,0x9A14,0x9A15,0x9A16,0x9A17,0x9A18,0x9A19, +0x9A1A,0x9A1B,0x9A1C,0x9A1D,0x9A1E,0x9A1F,0x9A20,0x9A21, +0x9A22,0x9A23,0x9A24,0x9A25,0x9A26,0x9A27,0x9A28,0x9A29, +0x9A2A,0x9A2B,0x9A2C,0x9A2D,0x9A2E,0x9A2F,0x9A30,0x9A31, +0x9A32,0x9A33,0x9A34,0x9A35,0x9A36,0x9A37,0x9A38, 0, +0x9A39,0x9A3A,0x9A3B,0x9A3C,0x9A3D,0x9A3E,0x9A3F,0x9A40, +0x9A41,0x9A42,0x9A43,0x9A44,0x9A45,0x9A46,0x9A47,0x9A48, +0x9A49,0x9A4A,0x9A4B,0x9A4C,0x9A4D,0x9A4E,0x9A4F,0x9A50, +0x9A51,0x9A52,0x9A53,0x9A54,0x9A55,0x9A56,0x9A57,0x9A58, +0x9A59,0x9889,0x988C,0x988D,0x988F,0x9894,0x989A,0x989B, +0x989E,0x989F,0x98A1,0x98A2,0x98A5,0x98A6,0x864D,0x8654, +0x866C,0x866E,0x867F,0x867A,0x867C,0x867B,0x86A8,0x868D, +0x868B,0x86AC,0x869D,0x86A7,0x86A3,0x86AA,0x8693,0x86A9, +0x86B6,0x86C4,0x86B5,0x86CE,0x86B0,0x86BA,0x86B1,0x86AF, +0x86C9,0x86CF,0x86B4,0x86E9,0x86F1,0x86F2,0x86ED,0x86F3, +0x86D0,0x8713,0x86DE,0x86F4,0x86DF,0x86D8,0x86D1,0x8703, +0x8707,0x86F8,0x8708,0x870A,0x870D,0x8709,0x8723,0x873B, +0x871E,0x8725,0x872E,0x871A,0x873E,0x8748,0x8734,0x8731, +0x8729,0x8737,0x873F,0x8782,0x8722,0x877D,0x877E,0x877B, +0x8760,0x8770,0x874C,0x876E,0x878B,0x8753,0x8763,0x877C, +0x8764,0x8759,0x8765,0x8793,0x87AF,0x87A8,0x87D2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9A5A,0x9A5B,0x9A5C,0x9A5D,0x9A5E,0x9A5F,0x9A60,0x9A61, +0x9A62,0x9A63,0x9A64,0x9A65,0x9A66,0x9A67,0x9A68,0x9A69, +0x9A6A,0x9A6B,0x9A72,0x9A83,0x9A89,0x9A8D,0x9A8E,0x9A94, +0x9A95,0x9A99,0x9AA6,0x9AA9,0x9AAA,0x9AAB,0x9AAC,0x9AAD, +0x9AAE,0x9AAF,0x9AB2,0x9AB3,0x9AB4,0x9AB5,0x9AB9,0x9ABB, +0x9ABD,0x9ABE,0x9ABF,0x9AC3,0x9AC4,0x9AC6,0x9AC7,0x9AC8, +0x9AC9,0x9ACA,0x9ACD,0x9ACE,0x9ACF,0x9AD0,0x9AD2,0x9AD4, +0x9AD5,0x9AD6,0x9AD7,0x9AD9,0x9ADA,0x9ADB,0x9ADC, 0, +0x9ADD,0x9ADE,0x9AE0,0x9AE2,0x9AE3,0x9AE4,0x9AE5,0x9AE7, +0x9AE8,0x9AE9,0x9AEA,0x9AEC,0x9AEE,0x9AF0,0x9AF1,0x9AF2, +0x9AF3,0x9AF4,0x9AF5,0x9AF6,0x9AF7,0x9AF8,0x9AFA,0x9AFC, +0x9AFD,0x9AFE,0x9AFF,0x9B00,0x9B01,0x9B02,0x9B04,0x9B05, +0x9B06,0x87C6,0x8788,0x8785,0x87AD,0x8797,0x8783,0x87AB, +0x87E5,0x87AC,0x87B5,0x87B3,0x87CB,0x87D3,0x87BD,0x87D1, +0x87C0,0x87CA,0x87DB,0x87EA,0x87E0,0x87EE,0x8816,0x8813, +0x87FE,0x880A,0x881B,0x8821,0x8839,0x883C,0x7F36,0x7F42, +0x7F44,0x7F45,0x8210,0x7AFA,0x7AFD,0x7B08,0x7B03,0x7B04, +0x7B15,0x7B0A,0x7B2B,0x7B0F,0x7B47,0x7B38,0x7B2A,0x7B19, +0x7B2E,0x7B31,0x7B20,0x7B25,0x7B24,0x7B33,0x7B3E,0x7B1E, +0x7B58,0x7B5A,0x7B45,0x7B75,0x7B4C,0x7B5D,0x7B60,0x7B6E, +0x7B7B,0x7B62,0x7B72,0x7B71,0x7B90,0x7BA6,0x7BA7,0x7BB8, +0x7BAC,0x7B9D,0x7BA8,0x7B85,0x7BAA,0x7B9C,0x7BA2,0x7BAB, +0x7BB4,0x7BD1,0x7BC1,0x7BCC,0x7BDD,0x7BDA,0x7BE5,0x7BE6, +0x7BEA,0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9B07,0x9B09,0x9B0A,0x9B0B,0x9B0C,0x9B0D,0x9B0E,0x9B10, +0x9B11,0x9B12,0x9B14,0x9B15,0x9B16,0x9B17,0x9B18,0x9B19, +0x9B1A,0x9B1B,0x9B1C,0x9B1D,0x9B1E,0x9B20,0x9B21,0x9B22, +0x9B24,0x9B25,0x9B26,0x9B27,0x9B28,0x9B29,0x9B2A,0x9B2B, +0x9B2C,0x9B2D,0x9B2E,0x9B30,0x9B31,0x9B33,0x9B34,0x9B35, +0x9B36,0x9B37,0x9B38,0x9B39,0x9B3A,0x9B3D,0x9B3E,0x9B3F, +0x9B40,0x9B46,0x9B4A,0x9B4B,0x9B4C,0x9B4E,0x9B50,0x9B52, +0x9B53,0x9B55,0x9B56,0x9B57,0x9B58,0x9B59,0x9B5A, 0, +0x9B5B,0x9B5C,0x9B5D,0x9B5E,0x9B5F,0x9B60,0x9B61,0x9B62, +0x9B63,0x9B64,0x9B65,0x9B66,0x9B67,0x9B68,0x9B69,0x9B6A, +0x9B6B,0x9B6C,0x9B6D,0x9B6E,0x9B6F,0x9B70,0x9B71,0x9B72, +0x9B73,0x9B74,0x9B75,0x9B76,0x9B77,0x9B78,0x9B79,0x9B7A, +0x9B7B,0x7C1F,0x7C2A,0x7C26,0x7C38,0x7C41,0x7C40,0x81FE, +0x8201,0x8202,0x8204,0x81EC,0x8844,0x8221,0x8222,0x8223, +0x822D,0x822F,0x8228,0x822B,0x8238,0x823B,0x8233,0x8234, +0x823E,0x8244,0x8249,0x824B,0x824F,0x825A,0x825F,0x8268, +0x887E,0x8885,0x8888,0x88D8,0x88DF,0x895E,0x7F9D,0x7F9F, +0x7FA7,0x7FAF,0x7FB0,0x7FB2,0x7C7C,0x6549,0x7C91,0x7C9D, +0x7C9C,0x7C9E,0x7CA2,0x7CB2,0x7CBC,0x7CBD,0x7CC1,0x7CC7, +0x7CCC,0x7CCD,0x7CC8,0x7CC5,0x7CD7,0x7CE8,0x826E,0x66A8, +0x7FBF,0x7FCE,0x7FD5,0x7FE5,0x7FE1,0x7FE6,0x7FE9,0x7FEE, +0x7FF3,0x7CF8,0x7D77,0x7DA6,0x7DAE,0x7E47,0x7E9B,0x9EB8, +0x9EB4,0x8D73,0x8D84,0x8D94,0x8D91,0x8DB1,0x8D67,0x8D6D, +0x8C47,0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9B7C,0x9B7D,0x9B7E,0x9B7F,0x9B80,0x9B81,0x9B82,0x9B83, +0x9B84,0x9B85,0x9B86,0x9B87,0x9B88,0x9B89,0x9B8A,0x9B8B, +0x9B8C,0x9B8D,0x9B8E,0x9B8F,0x9B90,0x9B91,0x9B92,0x9B93, +0x9B94,0x9B95,0x9B96,0x9B97,0x9B98,0x9B99,0x9B9A,0x9B9B, +0x9B9C,0x9B9D,0x9B9E,0x9B9F,0x9BA0,0x9BA1,0x9BA2,0x9BA3, +0x9BA4,0x9BA5,0x9BA6,0x9BA7,0x9BA8,0x9BA9,0x9BAA,0x9BAB, +0x9BAC,0x9BAD,0x9BAE,0x9BAF,0x9BB0,0x9BB1,0x9BB2,0x9BB3, +0x9BB4,0x9BB5,0x9BB6,0x9BB7,0x9BB8,0x9BB9,0x9BBA, 0, +0x9BBB,0x9BBC,0x9BBD,0x9BBE,0x9BBF,0x9BC0,0x9BC1,0x9BC2, +0x9BC3,0x9BC4,0x9BC5,0x9BC6,0x9BC7,0x9BC8,0x9BC9,0x9BCA, +0x9BCB,0x9BCC,0x9BCD,0x9BCE,0x9BCF,0x9BD0,0x9BD1,0x9BD2, +0x9BD3,0x9BD4,0x9BD5,0x9BD6,0x9BD7,0x9BD8,0x9BD9,0x9BDA, +0x9BDB,0x9162,0x9161,0x9170,0x9169,0x916F,0x917D,0x917E, +0x9172,0x9174,0x9179,0x918C,0x9185,0x9190,0x918D,0x9191, +0x91A2,0x91A3,0x91AA,0x91AD,0x91AE,0x91AF,0x91B5,0x91B4, +0x91BA,0x8C55,0x9E7E,0x8DB8,0x8DEB,0x8E05,0x8E59,0x8E69, +0x8DB5,0x8DBF,0x8DBC,0x8DBA,0x8DC4,0x8DD6,0x8DD7,0x8DDA, +0x8DDE,0x8DCE,0x8DCF,0x8DDB,0x8DC6,0x8DEC,0x8DF7,0x8DF8, +0x8DE3,0x8DF9,0x8DFB,0x8DE4,0x8E09,0x8DFD,0x8E14,0x8E1D, +0x8E1F,0x8E2C,0x8E2E,0x8E23,0x8E2F,0x8E3A,0x8E40,0x8E39, +0x8E35,0x8E3D,0x8E31,0x8E49,0x8E41,0x8E42,0x8E51,0x8E52, +0x8E4A,0x8E70,0x8E76,0x8E7C,0x8E6F,0x8E74,0x8E85,0x8E8F, +0x8E94,0x8E90,0x8E9C,0x8E9E,0x8C78,0x8C82,0x8C8A,0x8C85, +0x8C98,0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9BDC,0x9BDD,0x9BDE,0x9BDF,0x9BE0,0x9BE1,0x9BE2,0x9BE3, +0x9BE4,0x9BE5,0x9BE6,0x9BE7,0x9BE8,0x9BE9,0x9BEA,0x9BEB, +0x9BEC,0x9BED,0x9BEE,0x9BEF,0x9BF0,0x9BF1,0x9BF2,0x9BF3, +0x9BF4,0x9BF5,0x9BF6,0x9BF7,0x9BF8,0x9BF9,0x9BFA,0x9BFB, +0x9BFC,0x9BFD,0x9BFE,0x9BFF,0x9C00,0x9C01,0x9C02,0x9C03, +0x9C04,0x9C05,0x9C06,0x9C07,0x9C08,0x9C09,0x9C0A,0x9C0B, +0x9C0C,0x9C0D,0x9C0E,0x9C0F,0x9C10,0x9C11,0x9C12,0x9C13, +0x9C14,0x9C15,0x9C16,0x9C17,0x9C18,0x9C19,0x9C1A, 0, +0x9C1B,0x9C1C,0x9C1D,0x9C1E,0x9C1F,0x9C20,0x9C21,0x9C22, +0x9C23,0x9C24,0x9C25,0x9C26,0x9C27,0x9C28,0x9C29,0x9C2A, +0x9C2B,0x9C2C,0x9C2D,0x9C2E,0x9C2F,0x9C30,0x9C31,0x9C32, +0x9C33,0x9C34,0x9C35,0x9C36,0x9C37,0x9C38,0x9C39,0x9C3A, +0x9C3B,0x89E5,0x89EB,0x89EF,0x8A3E,0x8B26,0x9753,0x96E9, +0x96F3,0x96EF,0x9706,0x9701,0x9708,0x970F,0x970E,0x972A, +0x972D,0x9730,0x973E,0x9F80,0x9F83,0x9F85,0x9F86,0x9F87, +0x9F88,0x9F89,0x9F8A,0x9F8C,0x9EFE,0x9F0B,0x9F0D,0x96B9, +0x96BC,0x96BD,0x96CE,0x96D2,0x77BF,0x96E0,0x928E,0x92AE, +0x92C8,0x933E,0x936A,0x93CA,0x938F,0x943E,0x946B,0x9C7F, +0x9C82,0x9C85,0x9C86,0x9C87,0x9C88,0x7A23,0x9C8B,0x9C8E, +0x9C90,0x9C91,0x9C92,0x9C94,0x9C95,0x9C9A,0x9C9B,0x9C9E, +0x9C9F,0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA5,0x9CA6,0x9CA7, +0x9CA8,0x9CA9,0x9CAB,0x9CAD,0x9CAE,0x9CB0,0x9CB1,0x9CB2, +0x9CB3,0x9CB4,0x9CB5,0x9CB6,0x9CB7,0x9CBA,0x9CBB,0x9CBC, +0x9CBD,0x9CC4,0x9CC5,0x9CC6,0x9CC7,0x9CCA,0x9CCB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9C3C,0x9C3D,0x9C3E,0x9C3F,0x9C40,0x9C41,0x9C42,0x9C43, +0x9C44,0x9C45,0x9C46,0x9C47,0x9C48,0x9C49,0x9C4A,0x9C4B, +0x9C4C,0x9C4D,0x9C4E,0x9C4F,0x9C50,0x9C51,0x9C52,0x9C53, +0x9C54,0x9C55,0x9C56,0x9C57,0x9C58,0x9C59,0x9C5A,0x9C5B, +0x9C5C,0x9C5D,0x9C5E,0x9C5F,0x9C60,0x9C61,0x9C62,0x9C63, +0x9C64,0x9C65,0x9C66,0x9C67,0x9C68,0x9C69,0x9C6A,0x9C6B, +0x9C6C,0x9C6D,0x9C6E,0x9C6F,0x9C70,0x9C71,0x9C72,0x9C73, +0x9C74,0x9C75,0x9C76,0x9C77,0x9C78,0x9C79,0x9C7A, 0, +0x9C7B,0x9C7D,0x9C7E,0x9C80,0x9C83,0x9C84,0x9C89,0x9C8A, +0x9C8C,0x9C8F,0x9C93,0x9C96,0x9C97,0x9C98,0x9C99,0x9C9D, +0x9CAA,0x9CAC,0x9CAF,0x9CB9,0x9CBE,0x9CBF,0x9CC0,0x9CC1, +0x9CC2,0x9CC8,0x9CC9,0x9CD1,0x9CD2,0x9CDA,0x9CDB,0x9CE0, +0x9CE1,0x9CCC,0x9CCD,0x9CCE,0x9CCF,0x9CD0,0x9CD3,0x9CD4, +0x9CD5,0x9CD7,0x9CD8,0x9CD9,0x9CDC,0x9CDD,0x9CDF,0x9CE2, +0x977C,0x9785,0x9791,0x9792,0x9794,0x97AF,0x97AB,0x97A3, +0x97B2,0x97B4,0x9AB1,0x9AB0,0x9AB7,0x9E58,0x9AB6,0x9ABA, +0x9ABC,0x9AC1,0x9AC0,0x9AC5,0x9AC2,0x9ACB,0x9ACC,0x9AD1, +0x9B45,0x9B43,0x9B47,0x9B49,0x9B48,0x9B4D,0x9B51,0x98E8, +0x990D,0x992E,0x9955,0x9954,0x9ADF,0x9AE1,0x9AE6,0x9AEF, +0x9AEB,0x9AFB,0x9AED,0x9AF9,0x9B08,0x9B0F,0x9B13,0x9B1F, +0x9B23,0x9EBD,0x9EBE,0x7E3B,0x9E82,0x9E87,0x9E88,0x9E8B, +0x9E92,0x93D6,0x9E9D,0x9E9F,0x9EDB,0x9EDC,0x9EDD,0x9EE0, +0x9EDF,0x9EE2,0x9EE9,0x9EE7,0x9EE5,0x9EEA,0x9EEF,0x9F22, +0x9F2C,0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9CE3,0x9CE4,0x9CE5,0x9CE6,0x9CE7,0x9CE8,0x9CE9,0x9CEA, +0x9CEB,0x9CEC,0x9CED,0x9CEE,0x9CEF,0x9CF0,0x9CF1,0x9CF2, +0x9CF3,0x9CF4,0x9CF5,0x9CF6,0x9CF7,0x9CF8,0x9CF9,0x9CFA, +0x9CFB,0x9CFC,0x9CFD,0x9CFE,0x9CFF,0x9D00,0x9D01,0x9D02, +0x9D03,0x9D04,0x9D05,0x9D06,0x9D07,0x9D08,0x9D09,0x9D0A, +0x9D0B,0x9D0C,0x9D0D,0x9D0E,0x9D0F,0x9D10,0x9D11,0x9D12, +0x9D13,0x9D14,0x9D15,0x9D16,0x9D17,0x9D18,0x9D19,0x9D1A, +0x9D1B,0x9D1C,0x9D1D,0x9D1E,0x9D1F,0x9D20,0x9D21, 0, +0x9D22,0x9D23,0x9D24,0x9D25,0x9D26,0x9D27,0x9D28,0x9D29, +0x9D2A,0x9D2B,0x9D2C,0x9D2D,0x9D2E,0x9D2F,0x9D30,0x9D31, +0x9D32,0x9D33,0x9D34,0x9D35,0x9D36,0x9D37,0x9D38,0x9D39, +0x9D3A,0x9D3B,0x9D3C,0x9D3D,0x9D3E,0x9D3F,0x9D40,0x9D41, +0x9D42, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9D43,0x9D44,0x9D45,0x9D46,0x9D47,0x9D48,0x9D49,0x9D4A, +0x9D4B,0x9D4C,0x9D4D,0x9D4E,0x9D4F,0x9D50,0x9D51,0x9D52, +0x9D53,0x9D54,0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0x9D5A, +0x9D5B,0x9D5C,0x9D5D,0x9D5E,0x9D5F,0x9D60,0x9D61,0x9D62, +0x9D63,0x9D64,0x9D65,0x9D66,0x9D67,0x9D68,0x9D69,0x9D6A, +0x9D6B,0x9D6C,0x9D6D,0x9D6E,0x9D6F,0x9D70,0x9D71,0x9D72, +0x9D73,0x9D74,0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A, +0x9D7B,0x9D7C,0x9D7D,0x9D7E,0x9D7F,0x9D80,0x9D81, 0, +0x9D82,0x9D83,0x9D84,0x9D85,0x9D86,0x9D87,0x9D88,0x9D89, +0x9D8A,0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F,0x9D90,0x9D91, +0x9D92,0x9D93,0x9D94,0x9D95,0x9D96,0x9D97,0x9D98,0x9D99, +0x9D9A,0x9D9B,0x9D9C,0x9D9D,0x9D9E,0x9D9F,0x9DA0,0x9DA1, +0x9DA2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9DA3,0x9DA4,0x9DA5,0x9DA6,0x9DA7,0x9DA8,0x9DA9,0x9DAA, +0x9DAB,0x9DAC,0x9DAD,0x9DAE,0x9DAF,0x9DB0,0x9DB1,0x9DB2, +0x9DB3,0x9DB4,0x9DB5,0x9DB6,0x9DB7,0x9DB8,0x9DB9,0x9DBA, +0x9DBB,0x9DBC,0x9DBD,0x9DBE,0x9DBF,0x9DC0,0x9DC1,0x9DC2, +0x9DC3,0x9DC4,0x9DC5,0x9DC6,0x9DC7,0x9DC8,0x9DC9,0x9DCA, +0x9DCB,0x9DCC,0x9DCD,0x9DCE,0x9DCF,0x9DD0,0x9DD1,0x9DD2, +0x9DD3,0x9DD4,0x9DD5,0x9DD6,0x9DD7,0x9DD8,0x9DD9,0x9DDA, +0x9DDB,0x9DDC,0x9DDD,0x9DDE,0x9DDF,0x9DE0,0x9DE1, 0, +0x9DE2,0x9DE3,0x9DE4,0x9DE5,0x9DE6,0x9DE7,0x9DE8,0x9DE9, +0x9DEA,0x9DEB,0x9DEC,0x9DED,0x9DEE,0x9DEF,0x9DF0,0x9DF1, +0x9DF2,0x9DF3,0x9DF4,0x9DF5,0x9DF6,0x9DF7,0x9DF8,0x9DF9, +0x9DFA,0x9DFB,0x9DFC,0x9DFD,0x9DFE,0x9DFF,0x9E00,0x9E01, +0x9E02, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9E03,0x9E04,0x9E05,0x9E06,0x9E07,0x9E08,0x9E09,0x9E0A, +0x9E0B,0x9E0C,0x9E0D,0x9E0E,0x9E0F,0x9E10,0x9E11,0x9E12, +0x9E13,0x9E14,0x9E15,0x9E16,0x9E17,0x9E18,0x9E19,0x9E1A, +0x9E1B,0x9E1C,0x9E1D,0x9E1E,0x9E24,0x9E27,0x9E2E,0x9E30, +0x9E34,0x9E3B,0x9E3C,0x9E40,0x9E4D,0x9E50,0x9E52,0x9E53, +0x9E54,0x9E56,0x9E59,0x9E5D,0x9E5F,0x9E60,0x9E61,0x9E62, +0x9E65,0x9E6E,0x9E6F,0x9E72,0x9E74,0x9E75,0x9E76,0x9E77, +0x9E78,0x9E79,0x9E7A,0x9E7B,0x9E7C,0x9E7D,0x9E80, 0, +0x9E81,0x9E83,0x9E84,0x9E85,0x9E86,0x9E89,0x9E8A,0x9E8C, +0x9E8D,0x9E8E,0x9E8F,0x9E90,0x9E91,0x9E94,0x9E95,0x9E96, +0x9E97,0x9E98,0x9E99,0x9E9A,0x9E9B,0x9E9C,0x9E9E,0x9EA0, +0x9EA1,0x9EA2,0x9EA3,0x9EA4,0x9EA5,0x9EA7,0x9EA8,0x9EA9, +0x9EAA, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9EAB,0x9EAC,0x9EAD,0x9EAE,0x9EAF,0x9EB0,0x9EB1,0x9EB2, +0x9EB3,0x9EB5,0x9EB6,0x9EB7,0x9EB9,0x9EBA,0x9EBC,0x9EBF, +0x9EC0,0x9EC1,0x9EC2,0x9EC3,0x9EC5,0x9EC6,0x9EC7,0x9EC8, +0x9ECA,0x9ECB,0x9ECC,0x9ED0,0x9ED2,0x9ED3,0x9ED5,0x9ED6, +0x9ED7,0x9ED9,0x9EDA,0x9EDE,0x9EE1,0x9EE3,0x9EE4,0x9EE6, +0x9EE8,0x9EEB,0x9EEC,0x9EED,0x9EEE,0x9EF0,0x9EF1,0x9EF2, +0x9EF3,0x9EF4,0x9EF5,0x9EF6,0x9EF7,0x9EF8,0x9EFA,0x9EFD, +0x9EFF,0x9F00,0x9F01,0x9F02,0x9F03,0x9F04,0x9F05, 0, +0x9F06,0x9F07,0x9F08,0x9F09,0x9F0A,0x9F0C,0x9F0F,0x9F11, +0x9F12,0x9F14,0x9F15,0x9F16,0x9F18,0x9F1A,0x9F1B,0x9F1C, +0x9F1D,0x9F1E,0x9F1F,0x9F21,0x9F23,0x9F24,0x9F25,0x9F26, +0x9F27,0x9F28,0x9F29,0x9F2A,0x9F2B,0x9F2D,0x9F2E,0x9F30, +0x9F31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x9F32,0x9F33,0x9F34,0x9F35,0x9F36,0x9F38,0x9F3A,0x9F3C, +0x9F3F,0x9F40,0x9F41,0x9F42,0x9F43,0x9F45,0x9F46,0x9F47, +0x9F48,0x9F49,0x9F4A,0x9F4B,0x9F4C,0x9F4D,0x9F4E,0x9F4F, +0x9F52,0x9F53,0x9F54,0x9F55,0x9F56,0x9F57,0x9F58,0x9F59, +0x9F5A,0x9F5B,0x9F5C,0x9F5D,0x9F5E,0x9F5F,0x9F60,0x9F61, +0x9F62,0x9F63,0x9F64,0x9F65,0x9F66,0x9F67,0x9F68,0x9F69, +0x9F6A,0x9F6B,0x9F6C,0x9F6D,0x9F6E,0x9F6F,0x9F70,0x9F71, +0x9F72,0x9F73,0x9F74,0x9F75,0x9F76,0x9F77,0x9F78, 0, +0x9F79,0x9F7A,0x9F7B,0x9F7C,0x9F7D,0x9F7E,0x9F81,0x9F82, +0x9F8D,0x9F8E,0x9F8F,0x9F90,0x9F91,0x9F92,0x9F93,0x9F94, +0x9F95,0x9F96,0x9F97,0x9F98,0x9F9C,0x9F9D,0x9F9E,0x9FA1, +0x9FA2,0x9FA3,0x9FA4,0x9FA5,0xF92C,0xF979,0xF995,0xF9E7, +0xF9F1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFA0C,0xFA0D,0xFA0E,0xFA0F,0xFA11,0xFA13,0xFA14,0xFA18, +0xFA1F,0xFA20,0xFA21,0xFA23,0xFA24,0xFA27,0xFA28,0xFA29 +}; + +static int func_gbk_uni_onechar(int code){ + if ((code>=0x8140)&&(code<=0xFE4F)) + return(tab_gbk_uni0[code-0x8140]); + return(0); +} + + + +/* page 0 0x00A4-0x0451 */ +static const uint16 tab_uni_gbk0[]={ +0xA1E8, 0, 0,0xA1EC,0xA1A7, 0, 0, 0, + 0, 0, 0, 0,0xA1E3,0xA1C0, 0, 0, + 0, 0, 0,0xA1A4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA1C1, 0, 0, 0, 0, + 0, 0, 0, 0,0xA8A4,0xA8A2, 0, 0, + 0, 0, 0, 0,0xA8A8,0xA8A6,0xA8BA, 0, +0xA8AC,0xA8AA, 0, 0, 0, 0,0xA8B0,0xA8AE, + 0, 0, 0,0xA1C2, 0,0xA8B4,0xA8B2, 0, +0xA8B9, 0, 0, 0, 0,0xA8A1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA8A5, + 0, 0, 0, 0, 0, 0, 0,0xA8A7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA8A9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA8BD, 0, 0, 0,0xA8BE, 0, 0, 0, + 0,0xA8AD, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA8B1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA8A3, 0,0xA8AB, 0,0xA8AF, 0, +0xA8B3, 0,0xA8B5, 0,0xA8B6, 0,0xA8B7, 0, +0xA8B8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA8BB, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA8C0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA1A6, 0,0xA1A5,0xA840,0xA841, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA842, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA6A1,0xA6A2,0xA6A3, +0xA6A4,0xA6A5,0xA6A6,0xA6A7,0xA6A8,0xA6A9,0xA6AA,0xA6AB, +0xA6AC,0xA6AD,0xA6AE,0xA6AF,0xA6B0,0xA6B1, 0,0xA6B2, +0xA6B3,0xA6B4,0xA6B5,0xA6B6,0xA6B7,0xA6B8, 0, 0, + 0, 0, 0, 0, 0,0xA6C1,0xA6C2,0xA6C3, +0xA6C4,0xA6C5,0xA6C6,0xA6C7,0xA6C8,0xA6C9,0xA6CA,0xA6CB, +0xA6CC,0xA6CD,0xA6CE,0xA6CF,0xA6D0,0xA6D1, 0,0xA6D2, +0xA6D3,0xA6D4,0xA6D5,0xA6D6,0xA6D7,0xA6D8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA7A7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA7A1,0xA7A2,0xA7A3,0xA7A4, +0xA7A5,0xA7A6,0xA7A8,0xA7A9,0xA7AA,0xA7AB,0xA7AC,0xA7AD, +0xA7AE,0xA7AF,0xA7B0,0xA7B1,0xA7B2,0xA7B3,0xA7B4,0xA7B5, +0xA7B6,0xA7B7,0xA7B8,0xA7B9,0xA7BA,0xA7BB,0xA7BC,0xA7BD, +0xA7BE,0xA7BF,0xA7C0,0xA7C1,0xA7D1,0xA7D2,0xA7D3,0xA7D4, +0xA7D5,0xA7D6,0xA7D8,0xA7D9,0xA7DA,0xA7DB,0xA7DC,0xA7DD, +0xA7DE,0xA7DF,0xA7E0,0xA7E1,0xA7E2,0xA7E3,0xA7E4,0xA7E5, +0xA7E6,0xA7E7,0xA7E8,0xA7E9,0xA7EA,0xA7EB,0xA7EC,0xA7ED, +0xA7EE,0xA7EF,0xA7F0,0xA7F1, 0,0xA7D7}; + +/* page 1 0x2010-0x2312 */ +static const uint16 tab_uni_gbk1[]={ +0xA95C, 0, 0,0xA843,0xA1AA,0xA844,0xA1AC, 0, +0xA1AE,0xA1AF, 0, 0,0xA1B0,0xA1B1, 0, 0, + 0, 0, 0, 0, 0,0xA845,0xA1AD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1EB, 0,0xA1E4,0xA1E5, 0,0xA846, 0, 0, + 0, 0, 0,0xA1F9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA1E6, 0,0xA847, 0, 0, + 0,0xA848, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA1ED, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA959, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA2F1,0xA2F2,0xA2F3,0xA2F4,0xA2F5,0xA2F6,0xA2F7,0xA2F8, +0xA2F9,0xA2FA,0xA2FB,0xA2FC, 0, 0, 0, 0, +0xA2A1,0xA2A2,0xA2A3,0xA2A4,0xA2A5,0xA2A6,0xA2A7,0xA2A8, +0xA2A9,0xA2AA, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1FB,0xA1FC,0xA1FA,0xA1FD, 0, 0,0xA849,0xA84A, +0xA84B,0xA84C, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1CA, 0, 0, 0, 0, 0, 0,0xA1C7, + 0,0xA1C6, 0, 0, 0,0xA84D, 0, 0, + 0, 0,0xA1CC, 0, 0,0xA1D8,0xA1DE,0xA84E, +0xA1CF, 0, 0,0xA84F, 0,0xA1CE, 0,0xA1C4, +0xA1C5,0xA1C9,0xA1C8,0xA1D2, 0, 0,0xA1D3, 0, + 0, 0, 0, 0,0xA1E0,0xA1DF,0xA1C3,0xA1CB, + 0, 0, 0, 0, 0,0xA1D7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1D6, 0, 0, 0,0xA1D5, 0, 0, 0, + 0, 0,0xA850, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1D9,0xA1D4, 0, 0,0xA1DC,0xA1DD,0xA851,0xA852, + 0, 0, 0, 0, 0, 0,0xA1DA,0xA1DB, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA892, 0, 0, + 0,0xA1D1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1CD, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,0xA853, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA1D0}; + +/* page 2 0x2460-0x2642 */ +static const uint16 tab_uni_gbk2[]={ +0xA2D9,0xA2DA,0xA2DB,0xA2DC,0xA2DD,0xA2DE,0xA2DF,0xA2E0, +0xA2E1,0xA2E2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,0xA2C5,0xA2C6,0xA2C7,0xA2C8, +0xA2C9,0xA2CA,0xA2CB,0xA2CC,0xA2CD,0xA2CE,0xA2CF,0xA2D0, +0xA2D1,0xA2D2,0xA2D3,0xA2D4,0xA2D5,0xA2D6,0xA2D7,0xA2D8, +0xA2B1,0xA2B2,0xA2B3,0xA2B4,0xA2B5,0xA2B6,0xA2B7,0xA2B8, +0xA2B9,0xA2BA,0xA2BB,0xA2BC,0xA2BD,0xA2BE,0xA2BF,0xA2C0, +0xA2C1,0xA2C2,0xA2C3,0xA2C4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA9A4,0xA9A5,0xA9A6,0xA9A7,0xA9A8,0xA9A9,0xA9AA,0xA9AB, +0xA9AC,0xA9AD,0xA9AE,0xA9AF,0xA9B0,0xA9B1,0xA9B2,0xA9B3, +0xA9B4,0xA9B5,0xA9B6,0xA9B7,0xA9B8,0xA9B9,0xA9BA,0xA9BB, +0xA9BC,0xA9BD,0xA9BE,0xA9BF,0xA9C0,0xA9C1,0xA9C2,0xA9C3, +0xA9C4,0xA9C5,0xA9C6,0xA9C7,0xA9C8,0xA9C9,0xA9CA,0xA9CB, +0xA9CC,0xA9CD,0xA9CE,0xA9CF,0xA9D0,0xA9D1,0xA9D2,0xA9D3, +0xA9D4,0xA9D5,0xA9D6,0xA9D7,0xA9D8,0xA9D9,0xA9DA,0xA9DB, +0xA9DC,0xA9DD,0xA9DE,0xA9DF,0xA9E0,0xA9E1,0xA9E2,0xA9E3, +0xA9E4,0xA9E5,0xA9E6,0xA9E7,0xA9E8,0xA9E9,0xA9EA,0xA9EB, +0xA9EC,0xA9ED,0xA9EE,0xA9EF, 0, 0, 0, 0, +0xA854,0xA855,0xA856,0xA857,0xA858,0xA859,0xA85A,0xA85B, +0xA85C,0xA85D,0xA85E,0xA85F,0xA860,0xA861,0xA862,0xA863, +0xA864,0xA865,0xA866,0xA867,0xA868,0xA869,0xA86A,0xA86B, +0xA86C,0xA86D,0xA86E,0xA86F,0xA870,0xA871,0xA872,0xA873, +0xA874,0xA875,0xA876,0xA877, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA878,0xA879,0xA87A,0xA87B,0xA87C,0xA87D,0xA87E, +0xA880,0xA881,0xA882,0xA883,0xA884,0xA885,0xA886,0xA887, + 0, 0, 0,0xA888,0xA889,0xA88A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1F6,0xA1F5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA1F8,0xA1F7, 0, 0, 0, 0, + 0, 0, 0, 0,0xA88B,0xA88C, 0, 0, + 0, 0, 0, 0, 0, 0,0xA1F4,0xA1F3, + 0, 0, 0,0xA1F0, 0, 0,0xA1F2,0xA1F1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,0xA88D,0xA88E,0xA88F,0xA890, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xA1EF,0xA1EE, 0, + 0,0xA891, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1E2, 0,0xA1E1}; + +/* page 3 0x3000-0x3129 */ +static const uint16 tab_uni_gbk3[]={ +0xA1A1,0xA1A2,0xA1A3,0xA1A8, 0,0xA1A9,0xA965,0xA996, +0xA1B4,0xA1B5,0xA1B6,0xA1B7,0xA1B8,0xA1B9,0xA1BA,0xA1BB, +0xA1BE,0xA1BF,0xA893,0xA1FE,0xA1B2,0xA1B3,0xA1BC,0xA1BD, + 0, 0, 0, 0, 0,0xA894,0xA895, 0, + 0,0xA940,0xA941,0xA942,0xA943,0xA944,0xA945,0xA946, +0xA947,0xA948, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA4A1,0xA4A2,0xA4A3,0xA4A4,0xA4A5,0xA4A6,0xA4A7, +0xA4A8,0xA4A9,0xA4AA,0xA4AB,0xA4AC,0xA4AD,0xA4AE,0xA4AF, +0xA4B0,0xA4B1,0xA4B2,0xA4B3,0xA4B4,0xA4B5,0xA4B6,0xA4B7, +0xA4B8,0xA4B9,0xA4BA,0xA4BB,0xA4BC,0xA4BD,0xA4BE,0xA4BF, +0xA4C0,0xA4C1,0xA4C2,0xA4C3,0xA4C4,0xA4C5,0xA4C6,0xA4C7, +0xA4C8,0xA4C9,0xA4CA,0xA4CB,0xA4CC,0xA4CD,0xA4CE,0xA4CF, +0xA4D0,0xA4D1,0xA4D2,0xA4D3,0xA4D4,0xA4D5,0xA4D6,0xA4D7, +0xA4D8,0xA4D9,0xA4DA,0xA4DB,0xA4DC,0xA4DD,0xA4DE,0xA4DF, +0xA4E0,0xA4E1,0xA4E2,0xA4E3,0xA4E4,0xA4E5,0xA4E6,0xA4E7, +0xA4E8,0xA4E9,0xA4EA,0xA4EB,0xA4EC,0xA4ED,0xA4EE,0xA4EF, +0xA4F0,0xA4F1,0xA4F2,0xA4F3, 0, 0, 0, 0, + 0, 0, 0,0xA961,0xA962,0xA966,0xA967, 0, + 0,0xA5A1,0xA5A2,0xA5A3,0xA5A4,0xA5A5,0xA5A6,0xA5A7, +0xA5A8,0xA5A9,0xA5AA,0xA5AB,0xA5AC,0xA5AD,0xA5AE,0xA5AF, +0xA5B0,0xA5B1,0xA5B2,0xA5B3,0xA5B4,0xA5B5,0xA5B6,0xA5B7, +0xA5B8,0xA5B9,0xA5BA,0xA5BB,0xA5BC,0xA5BD,0xA5BE,0xA5BF, +0xA5C0,0xA5C1,0xA5C2,0xA5C3,0xA5C4,0xA5C5,0xA5C6,0xA5C7, +0xA5C8,0xA5C9,0xA5CA,0xA5CB,0xA5CC,0xA5CD,0xA5CE,0xA5CF, +0xA5D0,0xA5D1,0xA5D2,0xA5D3,0xA5D4,0xA5D5,0xA5D6,0xA5D7, +0xA5D8,0xA5D9,0xA5DA,0xA5DB,0xA5DC,0xA5DD,0xA5DE,0xA5DF, +0xA5E0,0xA5E1,0xA5E2,0xA5E3,0xA5E4,0xA5E5,0xA5E6,0xA5E7, +0xA5E8,0xA5E9,0xA5EA,0xA5EB,0xA5EC,0xA5ED,0xA5EE,0xA5EF, +0xA5F0,0xA5F1,0xA5F2,0xA5F3,0xA5F4,0xA5F5,0xA5F6, 0, + 0, 0, 0, 0,0xA960,0xA963,0xA964, 0, + 0, 0, 0, 0, 0,0xA8C5,0xA8C6,0xA8C7, +0xA8C8,0xA8C9,0xA8CA,0xA8CB,0xA8CC,0xA8CD,0xA8CE,0xA8CF, +0xA8D0,0xA8D1,0xA8D2,0xA8D3,0xA8D4,0xA8D5,0xA8D6,0xA8D7, +0xA8D8,0xA8D9,0xA8DA,0xA8DB,0xA8DC,0xA8DD,0xA8DE,0xA8DF, +0xA8E0,0xA8E1,0xA8E2,0xA8E3,0xA8E4,0xA8E5,0xA8E6,0xA8E7, +0xA8E8,0xA8E9}; + +/* page 4 0x3220-0x32A3 */ +static const uint16 tab_uni_gbk4[]={ +0xA2E5,0xA2E6,0xA2E7,0xA2E8,0xA2E9,0xA2EA,0xA2EB,0xA2EC, +0xA2ED,0xA2EE, 0, 0, 0, 0, 0, 0, + 0,0xA95A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xA949}; + +/* page 5 0x338E-0x33D5 */ +static const uint16 tab_uni_gbk5[]={ +0xA94A,0xA94B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA94C,0xA94D, +0xA94E, 0, 0,0xA94F, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,0xA950, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA951, 0, 0,0xA952,0xA953, 0, 0,0xA954 +}; + +/* page 6 0x4E00-0x9FA5 */ +static const uint16 tab_uni_gbk6[]={ +0xD2BB,0xB6A1,0x8140,0xC6DF,0x8141,0x8142,0x8143,0xCDF2, +0xD5C9,0xC8FD,0xC9CF,0xCFC2,0xD8A2,0xB2BB,0xD3EB,0x8144, +0xD8A4,0xB3F3,0x8145,0xD7A8,0xC7D2,0xD8A7,0xCAC0,0x8146, +0xC7F0,0xB1FB,0xD2B5,0xB4D4,0xB6AB,0xCBBF,0xD8A9,0x8147, +0x8148,0x8149,0xB6AA,0x814A,0xC1BD,0xD1CF,0x814B,0xC9A5, +0xD8AD,0x814C,0xB8F6,0xD1BE,0xE3DC,0xD6D0,0x814D,0x814E, +0xB7E1,0x814F,0xB4AE,0x8150,0xC1D9,0x8151,0xD8BC,0x8152, +0xCDE8,0xB5A4,0xCEAA,0xD6F7,0x8153,0xC0F6,0xBED9,0xD8AF, +0x8154,0x8155,0x8156,0xC4CB,0x8157,0xBEC3,0x8158,0xD8B1, +0xC3B4,0xD2E5,0x8159,0xD6AE,0xCEDA,0xD5A7,0xBAF5,0xB7A6, +0xC0D6,0x815A,0xC6B9,0xC5D2,0xC7C7,0x815B,0xB9D4,0x815C, +0xB3CB,0xD2D2,0x815D,0x815E,0xD8BF,0xBEC5,0xC6F2,0xD2B2, +0xCFB0,0xCFE7,0x815F,0x8160,0x8161,0x8162,0xCAE9,0x8163, +0x8164,0xD8C0,0x8165,0x8166,0x8167,0x8168,0x8169,0x816A, +0xC2F2,0xC2D2,0x816B,0xC8E9,0x816C,0x816D,0x816E,0x816F, +0x8170,0x8171,0x8172,0x8173,0x8174,0x8175,0xC7AC,0x8176, +0x8177,0x8178,0x8179,0x817A,0x817B,0x817C,0xC1CB,0x817D, +0xD3E8,0xD5F9,0x817E,0xCAC2,0xB6FE,0xD8A1,0xD3DA,0xBFF7, +0x8180,0xD4C6,0xBBA5,0xD8C1,0xCEE5,0xBEAE,0x8181,0x8182, +0xD8A8,0x8183,0xD1C7,0xD0A9,0x8184,0x8185,0x8186,0xD8BD, +0xD9EF,0xCDF6,0xBFBA,0x8187,0xBDBB,0xBAA5,0xD2E0,0xB2FA, +0xBAE0,0xC4B6,0x8188,0xCFED,0xBEA9,0xCDA4,0xC1C1,0x8189, +0x818A,0x818B,0xC7D7,0xD9F1,0x818C,0xD9F4,0x818D,0x818E, +0x818F,0x8190,0xC8CB,0xD8E9,0x8191,0x8192,0x8193,0xD2DA, +0xCAB2,0xC8CA,0xD8EC,0xD8EA,0xD8C6,0xBDF6,0xC6CD,0xB3F0, +0x8194,0xD8EB,0xBDF1,0xBDE9,0x8195,0xC8D4,0xB4D3,0x8196, +0x8197,0xC2D8,0x8198,0xB2D6,0xD7D0,0xCACB,0xCBFB,0xD5CC, +0xB8B6,0xCFC9,0x8199,0x819A,0x819B,0xD9DA,0xD8F0,0xC7AA, +0x819C,0xD8EE,0x819D,0xB4FA,0xC1EE,0xD2D4,0x819E,0x819F, +0xD8ED,0x81A0,0xD2C7,0xD8EF,0xC3C7,0x81A1,0x81A2,0x81A3, +0xD1F6,0x81A4,0xD6D9,0xD8F2,0x81A5,0xD8F5,0xBCFE,0xBCDB, +0x81A6,0x81A7,0x81A8,0xC8CE,0x81A9,0xB7DD,0x81AA,0xB7C2, +0x81AB,0xC6F3,0x81AC,0x81AD,0x81AE,0x81AF,0x81B0,0x81B1, +0x81B2,0xD8F8,0xD2C1,0x81B3,0x81B4,0xCEE9,0xBCBF,0xB7FC, +0xB7A5,0xD0DD,0x81B5,0x81B6,0x81B7,0x81B8,0x81B9,0xD6DA, +0xD3C5,0xBBEF,0xBBE1,0xD8F1,0x81BA,0x81BB,0xC9A1,0xCEB0, +0xB4AB,0x81BC,0xD8F3,0x81BD,0xC9CB,0xD8F6,0xC2D7,0xD8F7, +0x81BE,0x81BF,0xCEB1,0xD8F9,0x81C0,0x81C1,0x81C2,0xB2AE, +0xB9C0,0x81C3,0xD9A3,0x81C4,0xB0E9,0x81C5,0xC1E6,0x81C6, +0xC9EC,0x81C7,0xCBC5,0x81C8,0xCBC6,0xD9A4,0x81C9,0x81CA, +0x81CB,0x81CC,0x81CD,0xB5E8,0x81CE,0x81CF,0xB5AB,0x81D0, +0x81D1,0x81D2,0x81D3,0x81D4,0x81D5,0xCEBB,0xB5CD,0xD7A1, +0xD7F4,0xD3D3,0x81D6,0xCCE5,0x81D7,0xBACE,0x81D8,0xD9A2, +0xD9DC,0xD3E0,0xD8FD,0xB7F0,0xD7F7,0xD8FE,0xD8FA,0xD9A1, +0xC4E3,0x81D9,0x81DA,0xD3B6,0xD8F4,0xD9DD,0x81DB,0xD8FB, +0x81DC,0xC5E5,0x81DD,0x81DE,0xC0D0,0x81DF,0x81E0,0xD1F0, +0xB0DB,0x81E1,0x81E2,0xBCD1,0xD9A6,0x81E3,0xD9A5,0x81E4, +0x81E5,0x81E6,0x81E7,0xD9AC,0xD9AE,0x81E8,0xD9AB,0xCAB9, +0x81E9,0x81EA,0x81EB,0xD9A9,0xD6B6,0x81EC,0x81ED,0x81EE, +0xB3DE,0xD9A8,0x81EF,0xC0FD,0x81F0,0xCACC,0x81F1,0xD9AA, +0x81F2,0xD9A7,0x81F3,0x81F4,0xD9B0,0x81F5,0x81F6,0xB6B1, +0x81F7,0x81F8,0x81F9,0xB9A9,0x81FA,0xD2C0,0x81FB,0x81FC, +0xCFC0,0x81FD,0x81FE,0xC2C2,0x8240,0xBDC4,0xD5EC,0xB2E0, +0xC7C8,0xBFEB,0xD9AD,0x8241,0xD9AF,0x8242,0xCEEA,0xBAEE, +0x8243,0x8244,0x8245,0x8246,0x8247,0xC7D6,0x8248,0x8249, +0x824A,0x824B,0x824C,0x824D,0x824E,0x824F,0x8250,0xB1E3, +0x8251,0x8252,0x8253,0xB4D9,0xB6ED,0xD9B4,0x8254,0x8255, +0x8256,0x8257,0xBFA1,0x8258,0x8259,0x825A,0xD9DE,0xC7CE, +0xC0FE,0xD9B8,0x825B,0x825C,0x825D,0x825E,0x825F,0xCBD7, +0xB7FD,0x8260,0xD9B5,0x8261,0xD9B7,0xB1A3,0xD3E1,0xD9B9, +0x8262,0xD0C5,0x8263,0xD9B6,0x8264,0x8265,0xD9B1,0x8266, +0xD9B2,0xC1A9,0xD9B3,0x8267,0x8268,0xBCF3,0xD0DE,0xB8A9, +0x8269,0xBEE3,0x826A,0xD9BD,0x826B,0x826C,0x826D,0x826E, +0xD9BA,0x826F,0xB0B3,0x8270,0x8271,0x8272,0xD9C2,0x8273, +0x8274,0x8275,0x8276,0x8277,0x8278,0x8279,0x827A,0x827B, +0x827C,0x827D,0x827E,0x8280,0xD9C4,0xB1B6,0x8281,0xD9BF, +0x8282,0x8283,0xB5B9,0x8284,0xBEF3,0x8285,0x8286,0x8287, +0xCCC8,0xBAF2,0xD2D0,0x8288,0xD9C3,0x8289,0x828A,0xBDE8, +0x828B,0xB3AB,0x828C,0x828D,0x828E,0xD9C5,0xBEEB,0x828F, +0xD9C6,0xD9BB,0xC4DF,0x8290,0xD9BE,0xD9C1,0xD9C0,0x8291, +0x8292,0x8293,0x8294,0x8295,0x8296,0x8297,0x8298,0x8299, +0x829A,0x829B,0xD5AE,0x829C,0xD6B5,0x829D,0xC7E3,0x829E, +0x829F,0x82A0,0x82A1,0xD9C8,0x82A2,0x82A3,0x82A4,0xBCD9, +0xD9CA,0x82A5,0x82A6,0x82A7,0xD9BC,0x82A8,0xD9CB,0xC6AB, +0x82A9,0x82AA,0x82AB,0x82AC,0x82AD,0xD9C9,0x82AE,0x82AF, +0x82B0,0x82B1,0xD7F6,0x82B2,0xCDA3,0x82B3,0x82B4,0x82B5, +0x82B6,0x82B7,0x82B8,0x82B9,0x82BA,0xBDA1,0x82BB,0x82BC, +0x82BD,0x82BE,0x82BF,0x82C0,0xD9CC,0x82C1,0x82C2,0x82C3, +0x82C4,0x82C5,0x82C6,0x82C7,0x82C8,0x82C9,0xC5BC,0xCDB5, +0x82CA,0x82CB,0x82CC,0xD9CD,0x82CD,0x82CE,0xD9C7,0xB3A5, +0xBFFE,0x82CF,0x82D0,0x82D1,0x82D2,0xB8B5,0x82D3,0x82D4, +0xC0FC,0x82D5,0x82D6,0x82D7,0x82D8,0xB0F8,0x82D9,0x82DA, +0x82DB,0x82DC,0x82DD,0x82DE,0x82DF,0x82E0,0x82E1,0x82E2, +0x82E3,0x82E4,0x82E5,0x82E6,0x82E7,0x82E8,0x82E9,0x82EA, +0x82EB,0x82EC,0x82ED,0xB4F6,0x82EE,0xD9CE,0x82EF,0xD9CF, +0xB4A2,0xD9D0,0x82F0,0x82F1,0xB4DF,0x82F2,0x82F3,0x82F4, +0x82F5,0x82F6,0xB0C1,0x82F7,0x82F8,0x82F9,0x82FA,0x82FB, +0x82FC,0x82FD,0xD9D1,0xC9B5,0x82FE,0x8340,0x8341,0x8342, +0x8343,0x8344,0x8345,0x8346,0x8347,0x8348,0x8349,0x834A, +0x834B,0x834C,0x834D,0x834E,0x834F,0x8350,0x8351,0xCFF1, +0x8352,0x8353,0x8354,0x8355,0x8356,0x8357,0xD9D2,0x8358, +0x8359,0x835A,0xC1C5,0x835B,0x835C,0x835D,0x835E,0x835F, +0x8360,0x8361,0x8362,0x8363,0x8364,0x8365,0xD9D6,0xC9AE, +0x8366,0x8367,0x8368,0x8369,0xD9D5,0xD9D4,0xD9D7,0x836A, +0x836B,0x836C,0x836D,0xCBDB,0x836E,0xBDA9,0x836F,0x8370, +0x8371,0x8372,0x8373,0xC6A7,0x8374,0x8375,0x8376,0x8377, +0x8378,0x8379,0x837A,0x837B,0x837C,0x837D,0xD9D3,0xD9D8, +0x837E,0x8380,0x8381,0xD9D9,0x8382,0x8383,0x8384,0x8385, +0x8386,0x8387,0xC8E5,0x8388,0x8389,0x838A,0x838B,0x838C, +0x838D,0x838E,0x838F,0x8390,0x8391,0x8392,0x8393,0x8394, +0x8395,0xC0DC,0x8396,0x8397,0x8398,0x8399,0x839A,0x839B, +0x839C,0x839D,0x839E,0x839F,0x83A0,0x83A1,0x83A2,0x83A3, +0x83A4,0x83A5,0x83A6,0x83A7,0x83A8,0x83A9,0x83AA,0x83AB, +0x83AC,0x83AD,0x83AE,0x83AF,0x83B0,0x83B1,0x83B2,0xB6F9, +0xD8A3,0xD4CA,0x83B3,0xD4AA,0xD0D6,0xB3E4,0xD5D7,0x83B4, +0xCFC8,0xB9E2,0x83B5,0xBFCB,0x83B6,0xC3E2,0x83B7,0x83B8, +0x83B9,0xB6D2,0x83BA,0x83BB,0xCDC3,0xD9EE,0xD9F0,0x83BC, +0x83BD,0x83BE,0xB5B3,0x83BF,0xB6B5,0x83C0,0x83C1,0x83C2, +0x83C3,0x83C4,0xBEA4,0x83C5,0x83C6,0xC8EB,0x83C7,0x83C8, +0xC8AB,0x83C9,0x83CA,0xB0CB,0xB9AB,0xC1F9,0xD9E2,0x83CB, +0xC0BC,0xB9B2,0x83CC,0xB9D8,0xD0CB,0xB1F8,0xC6E4,0xBEDF, +0xB5E4,0xD7C8,0x83CD,0xD1F8,0xBCE6,0xCADE,0x83CE,0x83CF, +0xBCBD,0xD9E6,0xD8E7,0x83D0,0x83D1,0xC4DA,0x83D2,0x83D3, +0xB8D4,0xC8BD,0x83D4,0x83D5,0xB2E1,0xD4D9,0x83D6,0x83D7, +0x83D8,0x83D9,0xC3B0,0x83DA,0x83DB,0xC3E1,0xDAA2,0xC8DF, +0x83DC,0xD0B4,0x83DD,0xBEFC,0xC5A9,0x83DE,0x83DF,0x83E0, +0xB9DA,0x83E1,0xDAA3,0x83E2,0xD4A9,0xDAA4,0x83E3,0x83E4, +0x83E5,0x83E6,0x83E7,0xD9FB,0xB6AC,0x83E8,0x83E9,0xB7EB, +0xB1F9,0xD9FC,0xB3E5,0xBEF6,0x83EA,0xBFF6,0xD2B1,0xC0E4, +0x83EB,0x83EC,0x83ED,0xB6B3,0xD9FE,0xD9FD,0x83EE,0x83EF, +0xBEBB,0x83F0,0x83F1,0x83F2,0xC6E0,0x83F3,0xD7BC,0xDAA1, +0x83F4,0xC1B9,0x83F5,0xB5F2,0xC1E8,0x83F6,0x83F7,0xBCF5, +0x83F8,0xB4D5,0x83F9,0x83FA,0x83FB,0x83FC,0x83FD,0x83FE, +0x8440,0x8441,0x8442,0xC1DD,0x8443,0xC4FD,0x8444,0x8445, +0xBCB8,0xB7B2,0x8446,0x8447,0xB7EF,0x8448,0x8449,0x844A, +0x844B,0x844C,0x844D,0xD9EC,0x844E,0xC6BE,0x844F,0xBFAD, +0xBBCB,0x8450,0x8451,0xB5CA,0x8452,0xDBC9,0xD0D7,0x8453, +0xCDB9,0xB0BC,0xB3F6,0xBBF7,0xDBCA,0xBAAF,0x8454,0xD4E4, +0xB5B6,0xB5F3,0xD8D6,0xC8D0,0x8455,0x8456,0xB7D6,0xC7D0, +0xD8D7,0x8457,0xBFAF,0x8458,0x8459,0xDBBB,0xD8D8,0x845A, +0x845B,0xD0CC,0xBBAE,0x845C,0x845D,0x845E,0xEBBE,0xC1D0, +0xC1F5,0xD4F2,0xB8D5,0xB4B4,0x845F,0xB3F5,0x8460,0x8461, +0xC9BE,0x8462,0x8463,0x8464,0xC5D0,0x8465,0x8466,0x8467, +0xC5D9,0xC0FB,0x8468,0xB1F0,0x8469,0xD8D9,0xB9CE,0x846A, +0xB5BD,0x846B,0x846C,0xD8DA,0x846D,0x846E,0xD6C6,0xCBA2, +0xC8AF,0xC9B2,0xB4CC,0xBFCC,0x846F,0xB9F4,0x8470,0xD8DB, +0xD8DC,0xB6E7,0xBCC1,0xCCEA,0x8471,0x8472,0x8473,0x8474, +0x8475,0x8476,0xCFF7,0x8477,0xD8DD,0xC7B0,0x8478,0x8479, +0xB9D0,0xBDA3,0x847A,0x847B,0xCCDE,0x847C,0xC6CA,0x847D, +0x847E,0x8480,0x8481,0x8482,0xD8E0,0x8483,0xD8DE,0x8484, +0x8485,0xD8DF,0x8486,0x8487,0x8488,0xB0FE,0x8489,0xBEE7, +0x848A,0xCAA3,0xBCF4,0x848B,0x848C,0x848D,0x848E,0xB8B1, +0x848F,0x8490,0xB8EE,0x8491,0x8492,0x8493,0x8494,0x8495, +0x8496,0x8497,0x8498,0x8499,0x849A,0xD8E2,0x849B,0xBDCB, +0x849C,0xD8E4,0xD8E3,0x849D,0x849E,0x849F,0x84A0,0x84A1, +0xC5FC,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6,0x84A7,0x84A8, +0xD8E5,0x84A9,0x84AA,0xD8E6,0x84AB,0x84AC,0x84AD,0x84AE, +0x84AF,0x84B0,0x84B1,0xC1A6,0x84B2,0xC8B0,0xB0EC,0xB9A6, +0xBCD3,0xCEF1,0xDBBD,0xC1D3,0x84B3,0x84B4,0x84B5,0x84B6, +0xB6AF,0xD6FA,0xC5AC,0xBDD9,0xDBBE,0xDBBF,0x84B7,0x84B8, +0x84B9,0xC0F8,0xBEA2,0xC0CD,0x84BA,0x84BB,0x84BC,0x84BD, +0x84BE,0x84BF,0x84C0,0x84C1,0x84C2,0x84C3,0xDBC0,0xCAC6, +0x84C4,0x84C5,0x84C6,0xB2AA,0x84C7,0x84C8,0x84C9,0xD3C2, +0x84CA,0xC3E3,0x84CB,0xD1AB,0x84CC,0x84CD,0x84CE,0x84CF, +0xDBC2,0x84D0,0xC0D5,0x84D1,0x84D2,0x84D3,0xDBC3,0x84D4, +0xBFB1,0x84D5,0x84D6,0x84D7,0x84D8,0x84D9,0x84DA,0xC4BC, +0x84DB,0x84DC,0x84DD,0x84DE,0xC7DA,0x84DF,0x84E0,0x84E1, +0x84E2,0x84E3,0x84E4,0x84E5,0x84E6,0x84E7,0x84E8,0x84E9, +0xDBC4,0x84EA,0x84EB,0x84EC,0x84ED,0x84EE,0x84EF,0x84F0, +0x84F1,0xD9E8,0xC9D7,0x84F2,0x84F3,0x84F4,0xB9B4,0xCEF0, +0xD4C8,0x84F5,0x84F6,0x84F7,0x84F8,0xB0FC,0xB4D2,0x84F9, +0xD0D9,0x84FA,0x84FB,0x84FC,0x84FD,0xD9E9,0x84FE,0xDECB, +0xD9EB,0x8540,0x8541,0x8542,0x8543,0xD8B0,0xBBAF,0xB1B1, +0x8544,0xB3D7,0xD8CE,0x8545,0x8546,0xD4D1,0x8547,0x8548, +0xBDB3,0xBFEF,0x8549,0xCFBB,0x854A,0x854B,0xD8D0,0x854C, +0x854D,0x854E,0xB7CB,0x854F,0x8550,0x8551,0xD8D1,0x8552, +0x8553,0x8554,0x8555,0x8556,0x8557,0x8558,0x8559,0x855A, +0x855B,0xC6A5,0xC7F8,0xD2BD,0x855C,0x855D,0xD8D2,0xC4E4, +0x855E,0xCAAE,0x855F,0xC7A7,0x8560,0xD8A6,0x8561,0xC9FD, +0xCEE7,0xBBDC,0xB0EB,0x8562,0x8563,0x8564,0xBBAA,0xD0AD, +0x8565,0xB1B0,0xD7E4,0xD7BF,0x8566,0xB5A5,0xC2F4,0xC4CF, +0x8567,0x8568,0xB2A9,0x8569,0xB2B7,0x856A,0xB1E5,0xDFB2, +0xD5BC,0xBFA8,0xC2AC,0xD8D5,0xC2B1,0x856B,0xD8D4,0xCED4, +0x856C,0xDAE0,0x856D,0xCEC0,0x856E,0x856F,0xD8B4,0xC3AE, +0xD3A1,0xCEA3,0x8570,0xBCB4,0xC8B4,0xC2D1,0x8571,0xBEED, +0xD0B6,0x8572,0xDAE1,0x8573,0x8574,0x8575,0x8576,0xC7E4, +0x8577,0x8578,0xB3A7,0x8579,0xB6F2,0xCCFC,0xC0FA,0x857A, +0x857B,0xC0F7,0x857C,0xD1B9,0xD1E1,0xD8C7,0x857D,0x857E, +0x8580,0x8581,0x8582,0x8583,0x8584,0xB2DE,0x8585,0x8586, +0xC0E5,0x8587,0xBAF1,0x8588,0x8589,0xD8C8,0x858A,0xD4AD, +0x858B,0x858C,0xCFE1,0xD8C9,0x858D,0xD8CA,0xCFC3,0x858E, +0xB3F8,0xBEC7,0x858F,0x8590,0x8591,0x8592,0xD8CB,0x8593, +0x8594,0x8595,0x8596,0x8597,0x8598,0x8599,0xDBCC,0x859A, +0x859B,0x859C,0x859D,0xC8A5,0x859E,0x859F,0x85A0,0xCFD8, +0x85A1,0xC8FE,0xB2CE,0x85A2,0x85A3,0x85A4,0x85A5,0x85A6, +0xD3D6,0xB2E6,0xBCB0,0xD3D1,0xCBAB,0xB7B4,0x85A7,0x85A8, +0x85A9,0xB7A2,0x85AA,0x85AB,0xCAE5,0x85AC,0xC8A1,0xCADC, +0xB1E4,0xD0F0,0x85AD,0xC5D1,0x85AE,0x85AF,0x85B0,0xDBC5, +0xB5FE,0x85B1,0x85B2,0xBFDA,0xB9C5,0xBEE4,0xC1ED,0x85B3, +0xDFB6,0xDFB5,0xD6BB,0xBDD0,0xD5D9,0xB0C8,0xB6A3,0xBFC9, +0xCCA8,0xDFB3,0xCAB7,0xD3D2,0x85B4,0xD8CF,0xD2B6,0xBAC5, +0xCBBE,0xCCBE,0x85B5,0xDFB7,0xB5F0,0xDFB4,0x85B6,0x85B7, +0x85B8,0xD3F5,0x85B9,0xB3D4,0xB8F7,0x85BA,0xDFBA,0x85BB, +0xBACF,0xBCAA,0xB5F5,0x85BC,0xCDAC,0xC3FB,0xBAF3,0xC0F4, +0xCDC2,0xCFF2,0xDFB8,0xCFC5,0x85BD,0xC2C0,0xDFB9,0xC2F0, +0x85BE,0x85BF,0x85C0,0xBEFD,0x85C1,0xC1DF,0xCDCC,0xD2F7, +0xB7CD,0xDFC1,0x85C2,0xDFC4,0x85C3,0x85C4,0xB7F1,0xB0C9, +0xB6D6,0xB7D4,0x85C5,0xBAAC,0xCCFD,0xBFD4,0xCBB1,0xC6F4, +0x85C6,0xD6A8,0xDFC5,0x85C7,0xCEE2,0xB3B3,0x85C8,0x85C9, +0xCEFC,0xB4B5,0x85CA,0xCEC7,0xBAF0,0x85CB,0xCEE1,0x85CC, +0xD1BD,0x85CD,0x85CE,0xDFC0,0x85CF,0x85D0,0xB4F4,0x85D1, +0xB3CA,0x85D2,0xB8E6,0xDFBB,0x85D3,0x85D4,0x85D5,0x85D6, +0xC4C5,0x85D7,0xDFBC,0xDFBD,0xDFBE,0xC5BB,0xDFBF,0xDFC2, +0xD4B1,0xDFC3,0x85D8,0xC7BA,0xCED8,0x85D9,0x85DA,0x85DB, +0x85DC,0x85DD,0xC4D8,0x85DE,0xDFCA,0x85DF,0xDFCF,0x85E0, +0xD6DC,0x85E1,0x85E2,0x85E3,0x85E4,0x85E5,0x85E6,0x85E7, +0x85E8,0xDFC9,0xDFDA,0xCEB6,0x85E9,0xBAC7,0xDFCE,0xDFC8, +0xC5DE,0x85EA,0x85EB,0xC9EB,0xBAF4,0xC3FC,0x85EC,0x85ED, +0xBED7,0x85EE,0xDFC6,0x85EF,0xDFCD,0x85F0,0xC5D8,0x85F1, +0x85F2,0x85F3,0x85F4,0xD5A6,0xBACD,0x85F5,0xBECC,0xD3BD, +0xB8C0,0x85F6,0xD6E4,0x85F7,0xDFC7,0xB9BE,0xBFA7,0x85F8, +0x85F9,0xC1FC,0xDFCB,0xDFCC,0x85FA,0xDFD0,0x85FB,0x85FC, +0x85FD,0x85FE,0x8640,0xDFDB,0xDFE5,0x8641,0xDFD7,0xDFD6, +0xD7C9,0xDFE3,0xDFE4,0xE5EB,0xD2A7,0xDFD2,0x8642,0xBFA9, +0x8643,0xD4DB,0x8644,0xBFC8,0xDFD4,0x8645,0x8646,0x8647, +0xCFCC,0x8648,0x8649,0xDFDD,0x864A,0xD1CA,0x864B,0xDFDE, +0xB0A7,0xC6B7,0xDFD3,0x864C,0xBAE5,0x864D,0xB6DF,0xCDDB, +0xB9FE,0xD4D5,0x864E,0x864F,0xDFDF,0xCFEC,0xB0A5,0xDFE7, +0xDFD1,0xD1C6,0xDFD5,0xDFD8,0xDFD9,0xDFDC,0x8650,0xBBA9, +0x8651,0xDFE0,0xDFE1,0x8652,0xDFE2,0xDFE6,0xDFE8,0xD3B4, +0x8653,0x8654,0x8655,0x8656,0x8657,0xB8E7,0xC5B6,0xDFEA, +0xC9DA,0xC1A8,0xC4C4,0x8658,0x8659,0xBFDE,0xCFF8,0x865A, +0x865B,0x865C,0xD5DC,0xDFEE,0x865D,0x865E,0x865F,0x8660, +0x8661,0x8662,0xB2B8,0x8663,0xBADF,0xDFEC,0x8664,0xDBC1, +0x8665,0xD1E4,0x8666,0x8667,0x8668,0x8669,0xCBF4,0xB4BD, +0x866A,0xB0A6,0x866B,0x866C,0x866D,0x866E,0x866F,0xDFF1, +0xCCC6,0xDFF2,0x8670,0x8671,0xDFED,0x8672,0x8673,0x8674, +0x8675,0x8676,0x8677,0xDFE9,0x8678,0x8679,0x867A,0x867B, +0xDFEB,0x867C,0xDFEF,0xDFF0,0xBBBD,0x867D,0x867E,0xDFF3, +0x8680,0x8681,0xDFF4,0x8682,0xBBA3,0x8683,0xCADB,0xCEA8, +0xE0A7,0xB3AA,0x8684,0xE0A6,0x8685,0x8686,0x8687,0xE0A1, +0x8688,0x8689,0x868A,0x868B,0xDFFE,0x868C,0xCDD9,0xDFFC, +0x868D,0xDFFA,0x868E,0xBFD0,0xD7C4,0x868F,0xC9CC,0x8690, +0x8691,0xDFF8,0xB0A1,0x8692,0x8693,0x8694,0x8695,0x8696, +0xDFFD,0x8697,0x8698,0x8699,0x869A,0xDFFB,0xE0A2,0x869B, +0x869C,0x869D,0x869E,0x869F,0xE0A8,0x86A0,0x86A1,0x86A2, +0x86A3,0xB7C8,0x86A4,0x86A5,0xC6A1,0xC9B6,0xC0B2,0xDFF5, +0x86A6,0x86A7,0xC5BE,0x86A8,0xD8C4,0xDFF9,0xC4F6,0x86A9, +0x86AA,0x86AB,0x86AC,0x86AD,0x86AE,0xE0A3,0xE0A4,0xE0A5, +0xD0A5,0x86AF,0x86B0,0xE0B4,0xCCE4,0x86B1,0xE0B1,0x86B2, +0xBFA6,0xE0AF,0xCEB9,0xE0AB,0xC9C6,0x86B3,0x86B4,0xC0AE, +0xE0AE,0xBAED,0xBAB0,0xE0A9,0x86B5,0x86B6,0x86B7,0xDFF6, +0x86B8,0xE0B3,0x86B9,0x86BA,0xE0B8,0x86BB,0x86BC,0x86BD, +0xB4AD,0xE0B9,0x86BE,0x86BF,0xCFB2,0xBAC8,0x86C0,0xE0B0, +0x86C1,0x86C2,0x86C3,0x86C4,0x86C5,0x86C6,0x86C7,0xD0FA, +0x86C8,0x86C9,0x86CA,0x86CB,0x86CC,0x86CD,0x86CE,0x86CF, +0x86D0,0xE0AC,0x86D1,0xD4FB,0x86D2,0xDFF7,0x86D3,0xC5E7, +0x86D4,0xE0AD,0x86D5,0xD3F7,0x86D6,0xE0B6,0xE0B7,0x86D7, +0x86D8,0x86D9,0x86DA,0x86DB,0xE0C4,0xD0E1,0x86DC,0x86DD, +0x86DE,0xE0BC,0x86DF,0x86E0,0xE0C9,0xE0CA,0x86E1,0x86E2, +0x86E3,0xE0BE,0xE0AA,0xC9A4,0xE0C1,0x86E4,0xE0B2,0x86E5, +0x86E6,0x86E7,0x86E8,0x86E9,0xCAC8,0xE0C3,0x86EA,0xE0B5, +0x86EB,0xCECB,0x86EC,0xCBC3,0xE0CD,0xE0C6,0xE0C2,0x86ED, +0xE0CB,0x86EE,0xE0BA,0xE0BF,0xE0C0,0x86EF,0x86F0,0xE0C5, +0x86F1,0x86F2,0xE0C7,0xE0C8,0x86F3,0xE0CC,0x86F4,0xE0BB, +0x86F5,0x86F6,0x86F7,0x86F8,0x86F9,0xCBD4,0xE0D5,0x86FA, +0xE0D6,0xE0D2,0x86FB,0x86FC,0x86FD,0x86FE,0x8740,0x8741, +0xE0D0,0xBCCE,0x8742,0x8743,0xE0D1,0x8744,0xB8C2,0xD8C5, +0x8745,0x8746,0x8747,0x8748,0x8749,0x874A,0x874B,0x874C, +0xD0EA,0x874D,0x874E,0xC2EF,0x874F,0x8750,0xE0CF,0xE0BD, +0x8751,0x8752,0x8753,0xE0D4,0xE0D3,0x8754,0x8755,0xE0D7, +0x8756,0x8757,0x8758,0x8759,0xE0DC,0xE0D8,0x875A,0x875B, +0x875C,0xD6F6,0xB3B0,0x875D,0xD7EC,0x875E,0xCBBB,0x875F, +0x8760,0xE0DA,0x8761,0xCEFB,0x8762,0x8763,0x8764,0xBAD9, +0x8765,0x8766,0x8767,0x8768,0x8769,0x876A,0x876B,0x876C, +0x876D,0x876E,0x876F,0x8770,0xE0E1,0xE0DD,0xD2AD,0x8771, +0x8772,0x8773,0x8774,0x8775,0xE0E2,0x8776,0x8777,0xE0DB, +0xE0D9,0xE0DF,0x8778,0x8779,0xE0E0,0x877A,0x877B,0x877C, +0x877D,0x877E,0xE0DE,0x8780,0xE0E4,0x8781,0x8782,0x8783, +0xC6F7,0xD8AC,0xD4EB,0xE0E6,0xCAC9,0x8784,0x8785,0x8786, +0x8787,0xE0E5,0x8788,0x8789,0x878A,0x878B,0xB8C1,0x878C, +0x878D,0x878E,0x878F,0xE0E7,0xE0E8,0x8790,0x8791,0x8792, +0x8793,0x8794,0x8795,0x8796,0x8797,0xE0E9,0xE0E3,0x8798, +0x8799,0x879A,0x879B,0x879C,0x879D,0x879E,0xBABF,0xCCE7, +0x879F,0x87A0,0x87A1,0xE0EA,0x87A2,0x87A3,0x87A4,0x87A5, +0x87A6,0x87A7,0x87A8,0x87A9,0x87AA,0x87AB,0x87AC,0x87AD, +0x87AE,0x87AF,0x87B0,0xCFF9,0x87B1,0x87B2,0x87B3,0x87B4, +0x87B5,0x87B6,0x87B7,0x87B8,0x87B9,0x87BA,0x87BB,0xE0EB, +0x87BC,0x87BD,0x87BE,0x87BF,0x87C0,0x87C1,0x87C2,0xC8C2, +0x87C3,0x87C4,0x87C5,0x87C6,0xBDC0,0x87C7,0x87C8,0x87C9, +0x87CA,0x87CB,0x87CC,0x87CD,0x87CE,0x87CF,0x87D0,0x87D1, +0x87D2,0x87D3,0xC4D2,0x87D4,0x87D5,0x87D6,0x87D7,0x87D8, +0x87D9,0x87DA,0x87DB,0x87DC,0xE0EC,0x87DD,0x87DE,0xE0ED, +0x87DF,0x87E0,0xC7F4,0xCBC4,0x87E1,0xE0EE,0xBBD8,0xD8B6, +0xD2F2,0xE0EF,0xCDC5,0x87E2,0xB6DA,0x87E3,0x87E4,0x87E5, +0x87E6,0x87E7,0x87E8,0xE0F1,0x87E9,0xD4B0,0x87EA,0x87EB, +0xC0A7,0xB4D1,0x87EC,0x87ED,0xCEA7,0xE0F0,0x87EE,0x87EF, +0x87F0,0xE0F2,0xB9CC,0x87F1,0x87F2,0xB9FA,0xCDBC,0xE0F3, +0x87F3,0x87F4,0x87F5,0xC6D4,0xE0F4,0x87F6,0xD4B2,0x87F7, +0xC8A6,0xE0F6,0xE0F5,0x87F8,0x87F9,0x87FA,0x87FB,0x87FC, +0x87FD,0x87FE,0x8840,0x8841,0x8842,0x8843,0x8844,0x8845, +0x8846,0x8847,0x8848,0x8849,0xE0F7,0x884A,0x884B,0xCDC1, +0x884C,0x884D,0x884E,0xCAA5,0x884F,0x8850,0x8851,0x8852, +0xD4DA,0xDBD7,0xDBD9,0x8853,0xDBD8,0xB9E7,0xDBDC,0xDBDD, +0xB5D8,0x8854,0x8855,0xDBDA,0x8856,0x8857,0x8858,0x8859, +0x885A,0xDBDB,0xB3A1,0xDBDF,0x885B,0x885C,0xBBF8,0x885D, +0xD6B7,0x885E,0xDBE0,0x885F,0x8860,0x8861,0x8862,0xBEF9, +0x8863,0x8864,0xB7BB,0x8865,0xDBD0,0xCCAE,0xBFB2,0xBBB5, +0xD7F8,0xBFD3,0x8866,0x8867,0x8868,0x8869,0x886A,0xBFE9, +0x886B,0x886C,0xBCE1,0xCCB3,0xDBDE,0xB0D3,0xCEEB,0xB7D8, +0xD7B9,0xC6C2,0x886D,0x886E,0xC0A4,0x886F,0xCCB9,0x8870, +0xDBE7,0xDBE1,0xC6BA,0xDBE3,0x8871,0xDBE8,0x8872,0xC5F7, +0x8873,0x8874,0x8875,0xDBEA,0x8876,0x8877,0xDBE9,0xBFC0, +0x8878,0x8879,0x887A,0xDBE6,0xDBE5,0x887B,0x887C,0x887D, +0x887E,0x8880,0xB4B9,0xC0AC,0xC2A2,0xDBE2,0xDBE4,0x8881, +0x8882,0x8883,0x8884,0xD0CD,0xDBED,0x8885,0x8886,0x8887, +0x8888,0x8889,0xC0DD,0xDBF2,0x888A,0x888B,0x888C,0x888D, +0x888E,0x888F,0x8890,0xB6E2,0x8891,0x8892,0x8893,0x8894, +0xDBF3,0xDBD2,0xB9B8,0xD4AB,0xDBEC,0x8895,0xBFD1,0xDBF0, +0x8896,0xDBD1,0x8897,0xB5E6,0x8898,0xDBEB,0xBFE5,0x8899, +0x889A,0x889B,0xDBEE,0x889C,0xDBF1,0x889D,0x889E,0x889F, +0xDBF9,0x88A0,0x88A1,0x88A2,0x88A3,0x88A4,0x88A5,0x88A6, +0x88A7,0x88A8,0xB9A1,0xB0A3,0x88A9,0x88AA,0x88AB,0x88AC, +0x88AD,0x88AE,0x88AF,0xC2F1,0x88B0,0x88B1,0xB3C7,0xDBEF, +0x88B2,0x88B3,0xDBF8,0x88B4,0xC6D2,0xDBF4,0x88B5,0x88B6, +0xDBF5,0xDBF7,0xDBF6,0x88B7,0x88B8,0xDBFE,0x88B9,0xD3F2, +0xB2BA,0x88BA,0x88BB,0x88BC,0xDBFD,0x88BD,0x88BE,0x88BF, +0x88C0,0x88C1,0x88C2,0x88C3,0x88C4,0xDCA4,0x88C5,0xDBFB, +0x88C6,0x88C7,0x88C8,0x88C9,0xDBFA,0x88CA,0x88CB,0x88CC, +0xDBFC,0xC5E0,0xBBF9,0x88CD,0x88CE,0xDCA3,0x88CF,0x88D0, +0xDCA5,0x88D1,0xCCC3,0x88D2,0x88D3,0x88D4,0xB6D1,0xDDC0, +0x88D5,0x88D6,0x88D7,0xDCA1,0x88D8,0xDCA2,0x88D9,0x88DA, +0x88DB,0xC7B5,0x88DC,0x88DD,0x88DE,0xB6E9,0x88DF,0x88E0, +0x88E1,0xDCA7,0x88E2,0x88E3,0x88E4,0x88E5,0xDCA6,0x88E6, +0xDCA9,0xB1A4,0x88E7,0x88E8,0xB5CC,0x88E9,0x88EA,0x88EB, +0x88EC,0x88ED,0xBFB0,0x88EE,0x88EF,0x88F0,0x88F1,0x88F2, +0xD1DF,0x88F3,0x88F4,0x88F5,0x88F6,0xB6C2,0x88F7,0x88F8, +0x88F9,0x88FA,0x88FB,0x88FC,0x88FD,0x88FE,0x8940,0x8941, +0x8942,0x8943,0x8944,0x8945,0xDCA8,0x8946,0x8947,0x8948, +0x8949,0x894A,0x894B,0x894C,0xCBFA,0xEBF3,0x894D,0x894E, +0x894F,0xCBDC,0x8950,0x8951,0xCBFE,0x8952,0x8953,0x8954, +0xCCC1,0x8955,0x8956,0x8957,0x8958,0x8959,0xC8FB,0x895A, +0x895B,0x895C,0x895D,0x895E,0x895F,0xDCAA,0x8960,0x8961, +0x8962,0x8963,0x8964,0xCCEE,0xDCAB,0x8965,0x8966,0x8967, +0x8968,0x8969,0x896A,0x896B,0x896C,0x896D,0x896E,0x896F, +0x8970,0x8971,0x8972,0x8973,0x8974,0x8975,0xDBD3,0x8976, +0xDCAF,0xDCAC,0x8977,0xBEB3,0x8978,0xCAFB,0x8979,0x897A, +0x897B,0xDCAD,0x897C,0x897D,0x897E,0x8980,0x8981,0x8982, +0x8983,0x8984,0xC9CA,0xC4B9,0x8985,0x8986,0x8987,0x8988, +0x8989,0xC7BD,0xDCAE,0x898A,0x898B,0x898C,0xD4F6,0xD0E6, +0x898D,0x898E,0x898F,0x8990,0x8991,0x8992,0x8993,0x8994, +0xC4AB,0xB6D5,0x8995,0x8996,0x8997,0x8998,0x8999,0x899A, +0x899B,0x899C,0x899D,0x899E,0x899F,0x89A0,0x89A1,0x89A2, +0x89A3,0x89A4,0x89A5,0x89A6,0xDBD4,0x89A7,0x89A8,0x89A9, +0x89AA,0xB1DA,0x89AB,0x89AC,0x89AD,0xDBD5,0x89AE,0x89AF, +0x89B0,0x89B1,0x89B2,0x89B3,0x89B4,0x89B5,0x89B6,0x89B7, +0x89B8,0xDBD6,0x89B9,0x89BA,0x89BB,0xBABE,0x89BC,0x89BD, +0x89BE,0x89BF,0x89C0,0x89C1,0x89C2,0x89C3,0x89C4,0x89C5, +0x89C6,0x89C7,0x89C8,0x89C9,0xC8C0,0x89CA,0x89CB,0x89CC, +0x89CD,0x89CE,0x89CF,0xCABF,0xC8C9,0x89D0,0xD7B3,0x89D1, +0xC9F9,0x89D2,0x89D3,0xBFC7,0x89D4,0x89D5,0xBAF8,0x89D6, +0x89D7,0xD2BC,0x89D8,0x89D9,0x89DA,0x89DB,0x89DC,0x89DD, +0x89DE,0x89DF,0xE2BA,0x89E0,0xB4A6,0x89E1,0x89E2,0xB1B8, +0x89E3,0x89E4,0x89E5,0x89E6,0x89E7,0xB8B4,0x89E8,0xCFC4, +0x89E9,0x89EA,0x89EB,0x89EC,0xD9E7,0xCFA6,0xCDE2,0x89ED, +0x89EE,0xD9ED,0xB6E0,0x89EF,0xD2B9,0x89F0,0x89F1,0xB9BB, +0x89F2,0x89F3,0x89F4,0x89F5,0xE2B9,0xE2B7,0x89F6,0xB4F3, +0x89F7,0xCCEC,0xCCAB,0xB7F2,0x89F8,0xD8B2,0xD1EB,0xBABB, +0x89F9,0xCAA7,0x89FA,0x89FB,0xCDB7,0x89FC,0x89FD,0xD2C4, +0xBFE4,0xBCD0,0xB6E1,0x89FE,0xDEC5,0x8A40,0x8A41,0x8A42, +0x8A43,0xDEC6,0xDBBC,0x8A44,0xD1D9,0x8A45,0x8A46,0xC6E6, +0xC4CE,0xB7EE,0x8A47,0xB7DC,0x8A48,0x8A49,0xBFFC,0xD7E0, +0x8A4A,0xC6F5,0x8A4B,0x8A4C,0xB1BC,0xDEC8,0xBDB1,0xCCD7, +0xDECA,0x8A4D,0xDEC9,0x8A4E,0x8A4F,0x8A50,0x8A51,0x8A52, +0xB5EC,0x8A53,0xC9DD,0x8A54,0x8A55,0xB0C2,0x8A56,0x8A57, +0x8A58,0x8A59,0x8A5A,0x8A5B,0x8A5C,0x8A5D,0x8A5E,0x8A5F, +0x8A60,0x8A61,0x8A62,0xC5AE,0xC5AB,0x8A63,0xC4CC,0x8A64, +0xBCE9,0xCBFD,0x8A65,0x8A66,0x8A67,0xBAC3,0x8A68,0x8A69, +0x8A6A,0xE5F9,0xC8E7,0xE5FA,0xCDFD,0x8A6B,0xD7B1,0xB8BE, +0xC2E8,0x8A6C,0xC8D1,0x8A6D,0x8A6E,0xE5FB,0x8A6F,0x8A70, +0x8A71,0x8A72,0xB6CA,0xBCCB,0x8A73,0x8A74,0xD1FD,0xE6A1, +0x8A75,0xC3EE,0x8A76,0x8A77,0x8A78,0x8A79,0xE6A4,0x8A7A, +0x8A7B,0x8A7C,0x8A7D,0xE5FE,0xE6A5,0xCDD7,0x8A7E,0x8A80, +0xB7C1,0xE5FC,0xE5FD,0xE6A3,0x8A81,0x8A82,0xC4DD,0xE6A8, +0x8A83,0x8A84,0xE6A7,0x8A85,0x8A86,0x8A87,0x8A88,0x8A89, +0x8A8A,0xC3C3,0x8A8B,0xC6DE,0x8A8C,0x8A8D,0xE6AA,0x8A8E, +0x8A8F,0x8A90,0x8A91,0x8A92,0x8A93,0x8A94,0xC4B7,0x8A95, +0x8A96,0x8A97,0xE6A2,0xCABC,0x8A98,0x8A99,0x8A9A,0x8A9B, +0xBDE3,0xB9C3,0xE6A6,0xD0D5,0xCEAF,0x8A9C,0x8A9D,0xE6A9, +0xE6B0,0x8A9E,0xD2A6,0x8A9F,0xBDAA,0xE6AD,0x8AA0,0x8AA1, +0x8AA2,0x8AA3,0x8AA4,0xE6AF,0x8AA5,0xC0D1,0x8AA6,0x8AA7, +0xD2CC,0x8AA8,0x8AA9,0x8AAA,0xBCA7,0x8AAB,0x8AAC,0x8AAD, +0x8AAE,0x8AAF,0x8AB0,0x8AB1,0x8AB2,0x8AB3,0x8AB4,0x8AB5, +0x8AB6,0xE6B1,0x8AB7,0xD2F6,0x8AB8,0x8AB9,0x8ABA,0xD7CB, +0x8ABB,0xCDFE,0x8ABC,0xCDDE,0xC2A6,0xE6AB,0xE6AC,0xBDBF, +0xE6AE,0xE6B3,0x8ABD,0x8ABE,0xE6B2,0x8ABF,0x8AC0,0x8AC1, +0x8AC2,0xE6B6,0x8AC3,0xE6B8,0x8AC4,0x8AC5,0x8AC6,0x8AC7, +0xC4EF,0x8AC8,0x8AC9,0x8ACA,0xC4C8,0x8ACB,0x8ACC,0xBEEA, +0xC9EF,0x8ACD,0x8ACE,0xE6B7,0x8ACF,0xB6F0,0x8AD0,0x8AD1, +0x8AD2,0xC3E4,0x8AD3,0x8AD4,0x8AD5,0x8AD6,0x8AD7,0x8AD8, +0x8AD9,0xD3E9,0xE6B4,0x8ADA,0xE6B5,0x8ADB,0xC8A2,0x8ADC, +0x8ADD,0x8ADE,0x8ADF,0x8AE0,0xE6BD,0x8AE1,0x8AE2,0x8AE3, +0xE6B9,0x8AE4,0x8AE5,0x8AE6,0x8AE7,0x8AE8,0xC6C5,0x8AE9, +0x8AEA,0xCDF1,0xE6BB,0x8AEB,0x8AEC,0x8AED,0x8AEE,0x8AEF, +0x8AF0,0x8AF1,0x8AF2,0x8AF3,0x8AF4,0xE6BC,0x8AF5,0x8AF6, +0x8AF7,0x8AF8,0xBBE9,0x8AF9,0x8AFA,0x8AFB,0x8AFC,0x8AFD, +0x8AFE,0x8B40,0xE6BE,0x8B41,0x8B42,0x8B43,0x8B44,0xE6BA, +0x8B45,0x8B46,0xC0B7,0x8B47,0x8B48,0x8B49,0x8B4A,0x8B4B, +0x8B4C,0x8B4D,0x8B4E,0x8B4F,0xD3A4,0xE6BF,0xC9F4,0xE6C3, +0x8B50,0x8B51,0xE6C4,0x8B52,0x8B53,0x8B54,0x8B55,0xD0F6, +0x8B56,0x8B57,0x8B58,0x8B59,0x8B5A,0x8B5B,0x8B5C,0x8B5D, +0x8B5E,0x8B5F,0x8B60,0x8B61,0x8B62,0x8B63,0x8B64,0x8B65, +0x8B66,0x8B67,0xC3BD,0x8B68,0x8B69,0x8B6A,0x8B6B,0x8B6C, +0x8B6D,0x8B6E,0xC3C4,0xE6C2,0x8B6F,0x8B70,0x8B71,0x8B72, +0x8B73,0x8B74,0x8B75,0x8B76,0x8B77,0x8B78,0x8B79,0x8B7A, +0x8B7B,0x8B7C,0xE6C1,0x8B7D,0x8B7E,0x8B80,0x8B81,0x8B82, +0x8B83,0x8B84,0xE6C7,0xCFB1,0x8B85,0xEBF4,0x8B86,0x8B87, +0xE6CA,0x8B88,0x8B89,0x8B8A,0x8B8B,0x8B8C,0xE6C5,0x8B8D, +0x8B8E,0xBCDE,0xC9A9,0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93, +0x8B94,0xBCB5,0x8B95,0x8B96,0xCFD3,0x8B97,0x8B98,0x8B99, +0x8B9A,0x8B9B,0xE6C8,0x8B9C,0xE6C9,0x8B9D,0xE6CE,0x8B9E, +0xE6D0,0x8B9F,0x8BA0,0x8BA1,0xE6D1,0x8BA2,0x8BA3,0x8BA4, +0xE6CB,0xB5D5,0x8BA5,0xE6CC,0x8BA6,0x8BA7,0xE6CF,0x8BA8, +0x8BA9,0xC4DB,0x8BAA,0xE6C6,0x8BAB,0x8BAC,0x8BAD,0x8BAE, +0x8BAF,0xE6CD,0x8BB0,0x8BB1,0x8BB2,0x8BB3,0x8BB4,0x8BB5, +0x8BB6,0x8BB7,0x8BB8,0x8BB9,0x8BBA,0x8BBB,0x8BBC,0x8BBD, +0x8BBE,0x8BBF,0x8BC0,0x8BC1,0x8BC2,0x8BC3,0x8BC4,0x8BC5, +0x8BC6,0xE6D2,0x8BC7,0x8BC8,0x8BC9,0x8BCA,0x8BCB,0x8BCC, +0x8BCD,0x8BCE,0x8BCF,0x8BD0,0x8BD1,0x8BD2,0xE6D4,0xE6D3, +0x8BD3,0x8BD4,0x8BD5,0x8BD6,0x8BD7,0x8BD8,0x8BD9,0x8BDA, +0x8BDB,0x8BDC,0x8BDD,0x8BDE,0x8BDF,0x8BE0,0x8BE1,0x8BE2, +0x8BE3,0x8BE4,0x8BE5,0x8BE6,0x8BE7,0x8BE8,0x8BE9,0x8BEA, +0x8BEB,0x8BEC,0xE6D5,0x8BED,0xD9F8,0x8BEE,0x8BEF,0xE6D6, +0x8BF0,0x8BF1,0x8BF2,0x8BF3,0x8BF4,0x8BF5,0x8BF6,0x8BF7, +0xE6D7,0x8BF8,0x8BF9,0x8BFA,0x8BFB,0x8BFC,0x8BFD,0x8BFE, +0x8C40,0x8C41,0x8C42,0x8C43,0x8C44,0x8C45,0x8C46,0x8C47, +0xD7D3,0xE6DD,0x8C48,0xE6DE,0xBFD7,0xD4D0,0x8C49,0xD7D6, +0xB4E6,0xCBEF,0xE6DA,0xD8C3,0xD7CE,0xD0A2,0x8C4A,0xC3CF, +0x8C4B,0x8C4C,0xE6DF,0xBCBE,0xB9C2,0xE6DB,0xD1A7,0x8C4D, +0x8C4E,0xBAA2,0xC2CF,0x8C4F,0xD8AB,0x8C50,0x8C51,0x8C52, +0xCAEB,0xE5EE,0x8C53,0xE6DC,0x8C54,0xB7F5,0x8C55,0x8C56, +0x8C57,0x8C58,0xC8E6,0x8C59,0x8C5A,0xC4F5,0x8C5B,0x8C5C, +0xE5B2,0xC4FE,0x8C5D,0xCBFC,0xE5B3,0xD5AC,0x8C5E,0xD3EE, +0xCAD8,0xB0B2,0x8C5F,0xCBCE,0xCDEA,0x8C60,0x8C61,0xBAEA, +0x8C62,0x8C63,0x8C64,0xE5B5,0x8C65,0xE5B4,0x8C66,0xD7DA, +0xB9D9,0xD6E6,0xB6A8,0xCDF0,0xD2CB,0xB1A6,0xCAB5,0x8C67, +0xB3E8,0xC9F3,0xBFCD,0xD0FB,0xCAD2,0xE5B6,0xBBC2,0x8C68, +0x8C69,0x8C6A,0xCFDC,0xB9AC,0x8C6B,0x8C6C,0x8C6D,0x8C6E, +0xD4D7,0x8C6F,0x8C70,0xBAA6,0xD1E7,0xCFFC,0xBCD2,0x8C71, +0xE5B7,0xC8DD,0x8C72,0x8C73,0x8C74,0xBFED,0xB1F6,0xCBDE, +0x8C75,0x8C76,0xBCC5,0x8C77,0xBCC4,0xD2FA,0xC3DC,0xBFDC, +0x8C78,0x8C79,0x8C7A,0x8C7B,0xB8BB,0x8C7C,0x8C7D,0x8C7E, +0xC3C2,0x8C80,0xBAAE,0xD4A2,0x8C81,0x8C82,0x8C83,0x8C84, +0x8C85,0x8C86,0x8C87,0x8C88,0x8C89,0xC7DE,0xC4AF,0xB2EC, +0x8C8A,0xB9D1,0x8C8B,0x8C8C,0xE5BB,0xC1C8,0x8C8D,0x8C8E, +0xD5AF,0x8C8F,0x8C90,0x8C91,0x8C92,0x8C93,0xE5BC,0x8C94, +0xE5BE,0x8C95,0x8C96,0x8C97,0x8C98,0x8C99,0x8C9A,0x8C9B, +0xB4E7,0xB6D4,0xCBC2,0xD1B0,0xB5BC,0x8C9C,0x8C9D,0xCAD9, +0x8C9E,0xB7E2,0x8C9F,0x8CA0,0xC9E4,0x8CA1,0xBDAB,0x8CA2, +0x8CA3,0xCEBE,0xD7F0,0x8CA4,0x8CA5,0x8CA6,0x8CA7,0xD0A1, +0x8CA8,0xC9D9,0x8CA9,0x8CAA,0xB6FB,0xE6D8,0xBCE2,0x8CAB, +0xB3BE,0x8CAC,0xC9D0,0x8CAD,0xE6D9,0xB3A2,0x8CAE,0x8CAF, +0x8CB0,0x8CB1,0xDECC,0x8CB2,0xD3C8,0xDECD,0x8CB3,0xD2A2, +0x8CB4,0x8CB5,0x8CB6,0x8CB7,0xDECE,0x8CB8,0x8CB9,0x8CBA, +0x8CBB,0xBECD,0x8CBC,0x8CBD,0xDECF,0x8CBE,0x8CBF,0x8CC0, +0xCAAC,0xD2FC,0xB3DF,0xE5EA,0xC4E1,0xBEA1,0xCEB2,0xC4F2, +0xBED6,0xC6A8,0xB2E3,0x8CC1,0x8CC2,0xBED3,0x8CC3,0x8CC4, +0xC7FC,0xCCEB,0xBDEC,0xCEDD,0x8CC5,0x8CC6,0xCABA,0xC6C1, +0xE5EC,0xD0BC,0x8CC7,0x8CC8,0x8CC9,0xD5B9,0x8CCA,0x8CCB, +0x8CCC,0xE5ED,0x8CCD,0x8CCE,0x8CCF,0x8CD0,0xCAF4,0x8CD1, +0xCDC0,0xC2C5,0x8CD2,0xE5EF,0x8CD3,0xC2C4,0xE5F0,0x8CD4, +0x8CD5,0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA,0xE5F8,0xCDCD, +0x8CDB,0xC9BD,0x8CDC,0x8CDD,0x8CDE,0x8CDF,0x8CE0,0x8CE1, +0x8CE2,0xD2D9,0xE1A8,0x8CE3,0x8CE4,0x8CE5,0x8CE6,0xD3EC, +0x8CE7,0xCBEA,0xC6F1,0x8CE8,0x8CE9,0x8CEA,0x8CEB,0x8CEC, +0xE1AC,0x8CED,0x8CEE,0x8CEF,0xE1A7,0xE1A9,0x8CF0,0x8CF1, +0xE1AA,0xE1AF,0x8CF2,0x8CF3,0xB2ED,0x8CF4,0xE1AB,0xB8DA, +0xE1AD,0xE1AE,0xE1B0,0xB5BA,0xE1B1,0x8CF5,0x8CF6,0x8CF7, +0x8CF8,0x8CF9,0xE1B3,0xE1B8,0x8CFA,0x8CFB,0x8CFC,0x8CFD, +0x8CFE,0xD1D2,0x8D40,0xE1B6,0xE1B5,0xC1EB,0x8D41,0x8D42, +0x8D43,0xE1B7,0x8D44,0xD4C0,0x8D45,0xE1B2,0x8D46,0xE1BA, +0xB0B6,0x8D47,0x8D48,0x8D49,0x8D4A,0xE1B4,0x8D4B,0xBFF9, +0x8D4C,0xE1B9,0x8D4D,0x8D4E,0xE1BB,0x8D4F,0x8D50,0x8D51, +0x8D52,0x8D53,0x8D54,0xE1BE,0x8D55,0x8D56,0x8D57,0x8D58, +0x8D59,0x8D5A,0xE1BC,0x8D5B,0x8D5C,0x8D5D,0x8D5E,0x8D5F, +0x8D60,0xD6C5,0x8D61,0x8D62,0x8D63,0x8D64,0x8D65,0x8D66, +0x8D67,0xCFBF,0x8D68,0x8D69,0xE1BD,0xE1BF,0xC2CD,0x8D6A, +0xB6EB,0x8D6B,0xD3F8,0x8D6C,0x8D6D,0xC7CD,0x8D6E,0x8D6F, +0xB7E5,0x8D70,0x8D71,0x8D72,0x8D73,0x8D74,0x8D75,0x8D76, +0x8D77,0x8D78,0x8D79,0xBEFE,0x8D7A,0x8D7B,0x8D7C,0x8D7D, +0x8D7E,0x8D80,0xE1C0,0xE1C1,0x8D81,0x8D82,0xE1C7,0xB3E7, +0x8D83,0x8D84,0x8D85,0x8D86,0x8D87,0x8D88,0xC6E9,0x8D89, +0x8D8A,0x8D8B,0x8D8C,0x8D8D,0xB4DE,0x8D8E,0xD1C2,0x8D8F, +0x8D90,0x8D91,0x8D92,0xE1C8,0x8D93,0x8D94,0xE1C6,0x8D95, +0x8D96,0x8D97,0x8D98,0x8D99,0xE1C5,0x8D9A,0xE1C3,0xE1C2, +0x8D9B,0xB1C0,0x8D9C,0x8D9D,0x8D9E,0xD5B8,0xE1C4,0x8D9F, +0x8DA0,0x8DA1,0x8DA2,0x8DA3,0xE1CB,0x8DA4,0x8DA5,0x8DA6, +0x8DA7,0x8DA8,0x8DA9,0x8DAA,0x8DAB,0xE1CC,0xE1CA,0x8DAC, +0x8DAD,0x8DAE,0x8DAF,0x8DB0,0x8DB1,0x8DB2,0x8DB3,0xEFFA, +0x8DB4,0x8DB5,0xE1D3,0xE1D2,0xC7B6,0x8DB6,0x8DB7,0x8DB8, +0x8DB9,0x8DBA,0x8DBB,0x8DBC,0x8DBD,0x8DBE,0x8DBF,0x8DC0, +0xE1C9,0x8DC1,0x8DC2,0xE1CE,0x8DC3,0xE1D0,0x8DC4,0x8DC5, +0x8DC6,0x8DC7,0x8DC8,0x8DC9,0x8DCA,0x8DCB,0x8DCC,0x8DCD, +0x8DCE,0xE1D4,0x8DCF,0xE1D1,0xE1CD,0x8DD0,0x8DD1,0xE1CF, +0x8DD2,0x8DD3,0x8DD4,0x8DD5,0xE1D5,0x8DD6,0x8DD7,0x8DD8, +0x8DD9,0x8DDA,0x8DDB,0x8DDC,0x8DDD,0x8DDE,0x8DDF,0x8DE0, +0x8DE1,0x8DE2,0xE1D6,0x8DE3,0x8DE4,0x8DE5,0x8DE6,0x8DE7, +0x8DE8,0x8DE9,0x8DEA,0x8DEB,0x8DEC,0x8DED,0x8DEE,0x8DEF, +0x8DF0,0x8DF1,0x8DF2,0x8DF3,0x8DF4,0x8DF5,0x8DF6,0x8DF7, +0x8DF8,0xE1D7,0x8DF9,0x8DFA,0x8DFB,0xE1D8,0x8DFC,0x8DFD, +0x8DFE,0x8E40,0x8E41,0x8E42,0x8E43,0x8E44,0x8E45,0x8E46, +0x8E47,0x8E48,0x8E49,0x8E4A,0x8E4B,0x8E4C,0x8E4D,0x8E4E, +0x8E4F,0x8E50,0x8E51,0x8E52,0x8E53,0x8E54,0x8E55,0xE1DA, +0x8E56,0x8E57,0x8E58,0x8E59,0x8E5A,0x8E5B,0x8E5C,0x8E5D, +0x8E5E,0x8E5F,0x8E60,0x8E61,0x8E62,0xE1DB,0x8E63,0x8E64, +0x8E65,0x8E66,0x8E67,0x8E68,0x8E69,0xCEA1,0x8E6A,0x8E6B, +0x8E6C,0x8E6D,0x8E6E,0x8E6F,0x8E70,0x8E71,0x8E72,0x8E73, +0x8E74,0x8E75,0x8E76,0xE7DD,0x8E77,0xB4A8,0xD6DD,0x8E78, +0x8E79,0xD1B2,0xB3B2,0x8E7A,0x8E7B,0xB9A4,0xD7F3,0xC7C9, +0xBEDE,0xB9AE,0x8E7C,0xCED7,0x8E7D,0x8E7E,0xB2EE,0xDBCF, +0x8E80,0xBCBA,0xD2D1,0xCBC8,0xB0CD,0x8E81,0x8E82,0xCFEF, +0x8E83,0x8E84,0x8E85,0x8E86,0x8E87,0xD9E3,0xBDED,0x8E88, +0x8E89,0xB1D2,0xCAD0,0xB2BC,0x8E8A,0xCBA7,0xB7AB,0x8E8B, +0xCAA6,0x8E8C,0x8E8D,0x8E8E,0xCFA3,0x8E8F,0x8E90,0xE0F8, +0xD5CA,0xE0FB,0x8E91,0x8E92,0xE0FA,0xC5C1,0xCCFB,0x8E93, +0xC1B1,0xE0F9,0xD6E3,0xB2AF,0xD6C4,0xB5DB,0x8E94,0x8E95, +0x8E96,0x8E97,0x8E98,0x8E99,0x8E9A,0x8E9B,0xB4F8,0xD6A1, +0x8E9C,0x8E9D,0x8E9E,0x8E9F,0x8EA0,0xCFAF,0xB0EF,0x8EA1, +0x8EA2,0xE0FC,0x8EA3,0x8EA4,0x8EA5,0x8EA6,0x8EA7,0xE1A1, +0xB3A3,0x8EA8,0x8EA9,0xE0FD,0xE0FE,0xC3B1,0x8EAA,0x8EAB, +0x8EAC,0x8EAD,0xC3DD,0x8EAE,0xE1A2,0xB7F9,0x8EAF,0x8EB0, +0x8EB1,0x8EB2,0x8EB3,0x8EB4,0xBBCF,0x8EB5,0x8EB6,0x8EB7, +0x8EB8,0x8EB9,0x8EBA,0x8EBB,0xE1A3,0xC4BB,0x8EBC,0x8EBD, +0x8EBE,0x8EBF,0x8EC0,0xE1A4,0x8EC1,0x8EC2,0xE1A5,0x8EC3, +0x8EC4,0xE1A6,0xB4B1,0x8EC5,0x8EC6,0x8EC7,0x8EC8,0x8EC9, +0x8ECA,0x8ECB,0x8ECC,0x8ECD,0x8ECE,0x8ECF,0x8ED0,0x8ED1, +0x8ED2,0x8ED3,0xB8C9,0xC6BD,0xC4EA,0x8ED4,0xB2A2,0x8ED5, +0xD0D2,0x8ED6,0xE7DB,0xBBC3,0xD3D7,0xD3C4,0x8ED7,0xB9E3, +0xE2CF,0x8ED8,0x8ED9,0x8EDA,0xD7AF,0x8EDB,0xC7EC,0xB1D3, +0x8EDC,0x8EDD,0xB4B2,0xE2D1,0x8EDE,0x8EDF,0x8EE0,0xD0F2, +0xC2AE,0xE2D0,0x8EE1,0xBFE2,0xD3A6,0xB5D7,0xE2D2,0xB5EA, +0x8EE2,0xC3ED,0xB8FD,0x8EE3,0xB8AE,0x8EE4,0xC5D3,0xB7CF, +0xE2D4,0x8EE5,0x8EE6,0x8EE7,0x8EE8,0xE2D3,0xB6C8,0xD7F9, +0x8EE9,0x8EEA,0x8EEB,0x8EEC,0x8EED,0xCDA5,0x8EEE,0x8EEF, +0x8EF0,0x8EF1,0x8EF2,0xE2D8,0x8EF3,0xE2D6,0xCAFC,0xBFB5, +0xD3B9,0xE2D5,0x8EF4,0x8EF5,0x8EF6,0x8EF7,0xE2D7,0x8EF8, +0x8EF9,0x8EFA,0x8EFB,0x8EFC,0x8EFD,0x8EFE,0x8F40,0x8F41, +0x8F42,0xC1AE,0xC0C8,0x8F43,0x8F44,0x8F45,0x8F46,0x8F47, +0x8F48,0xE2DB,0xE2DA,0xC0AA,0x8F49,0x8F4A,0xC1CE,0x8F4B, +0x8F4C,0x8F4D,0x8F4E,0xE2DC,0x8F4F,0x8F50,0x8F51,0x8F52, +0x8F53,0x8F54,0x8F55,0x8F56,0x8F57,0x8F58,0x8F59,0x8F5A, +0xE2DD,0x8F5B,0xE2DE,0x8F5C,0x8F5D,0x8F5E,0x8F5F,0x8F60, +0x8F61,0x8F62,0x8F63,0x8F64,0xDBC8,0x8F65,0xD1D3,0xCDA2, +0x8F66,0x8F67,0xBDA8,0x8F68,0x8F69,0x8F6A,0xDEC3,0xD8A5, +0xBFAA,0xDBCD,0xD2EC,0xC6FA,0xC5AA,0x8F6B,0x8F6C,0x8F6D, +0xDEC4,0x8F6E,0xB1D7,0xDFAE,0x8F6F,0x8F70,0x8F71,0xCABD, +0x8F72,0xDFB1,0x8F73,0xB9AD,0x8F74,0xD2FD,0x8F75,0xB8A5, +0xBAEB,0x8F76,0x8F77,0xB3DA,0x8F78,0x8F79,0x8F7A,0xB5DC, +0xD5C5,0x8F7B,0x8F7C,0x8F7D,0x8F7E,0xC3D6,0xCFD2,0xBBA1, +0x8F80,0xE5F3,0xE5F2,0x8F81,0x8F82,0xE5F4,0x8F83,0xCDE4, +0x8F84,0xC8F5,0x8F85,0x8F86,0x8F87,0x8F88,0x8F89,0x8F8A, +0x8F8B,0xB5AF,0xC7BF,0x8F8C,0xE5F6,0x8F8D,0x8F8E,0x8F8F, +0xECB0,0x8F90,0x8F91,0x8F92,0x8F93,0x8F94,0x8F95,0x8F96, +0x8F97,0x8F98,0x8F99,0x8F9A,0x8F9B,0x8F9C,0x8F9D,0x8F9E, +0xE5E6,0x8F9F,0xB9E9,0xB5B1,0x8FA0,0xC2BC,0xE5E8,0xE5E7, +0xE5E9,0x8FA1,0x8FA2,0x8FA3,0x8FA4,0xD2CD,0x8FA5,0x8FA6, +0x8FA7,0xE1EA,0xD0CE,0x8FA8,0xCDAE,0x8FA9,0xD1E5,0x8FAA, +0x8FAB,0xB2CA,0xB1EB,0x8FAC,0xB1F2,0xC5ED,0x8FAD,0x8FAE, +0xD5C3,0xD3B0,0x8FAF,0xE1DC,0x8FB0,0x8FB1,0x8FB2,0xE1DD, +0x8FB3,0xD2DB,0x8FB4,0xB3B9,0xB1CB,0x8FB5,0x8FB6,0x8FB7, +0xCDF9,0xD5F7,0xE1DE,0x8FB8,0xBEB6,0xB4FD,0x8FB9,0xE1DF, +0xBADC,0xE1E0,0xBBB2,0xC2C9,0xE1E1,0x8FBA,0x8FBB,0x8FBC, +0xD0EC,0x8FBD,0xCDBD,0x8FBE,0x8FBF,0xE1E2,0x8FC0,0xB5C3, +0xC5C7,0xE1E3,0x8FC1,0x8FC2,0xE1E4,0x8FC3,0x8FC4,0x8FC5, +0x8FC6,0xD3F9,0x8FC7,0x8FC8,0x8FC9,0x8FCA,0x8FCB,0x8FCC, +0xE1E5,0x8FCD,0xD1AD,0x8FCE,0x8FCF,0xE1E6,0xCEA2,0x8FD0, +0x8FD1,0x8FD2,0x8FD3,0x8FD4,0x8FD5,0xE1E7,0x8FD6,0xB5C2, +0x8FD7,0x8FD8,0x8FD9,0x8FDA,0xE1E8,0xBBD5,0x8FDB,0x8FDC, +0x8FDD,0x8FDE,0x8FDF,0xD0C4,0xE2E0,0xB1D8,0xD2E4,0x8FE0, +0x8FE1,0xE2E1,0x8FE2,0x8FE3,0xBCC9,0xC8CC,0x8FE4,0xE2E3, +0xECFE,0xECFD,0xDFAF,0x8FE5,0x8FE6,0x8FE7,0xE2E2,0xD6BE, +0xCDFC,0xC3A6,0x8FE8,0x8FE9,0x8FEA,0xE3C3,0x8FEB,0x8FEC, +0xD6D2,0xE2E7,0x8FED,0x8FEE,0xE2E8,0x8FEF,0x8FF0,0xD3C7, +0x8FF1,0x8FF2,0xE2EC,0xBFEC,0x8FF3,0xE2ED,0xE2E5,0x8FF4, +0x8FF5,0xB3C0,0x8FF6,0x8FF7,0x8FF8,0xC4EE,0x8FF9,0x8FFA, +0xE2EE,0x8FFB,0x8FFC,0xD0C3,0x8FFD,0xBAF6,0xE2E9,0xB7DE, +0xBBB3,0xCCAC,0xCBCB,0xE2E4,0xE2E6,0xE2EA,0xE2EB,0x8FFE, +0x9040,0x9041,0xE2F7,0x9042,0x9043,0xE2F4,0xD4F5,0xE2F3, +0x9044,0x9045,0xC5AD,0x9046,0xD5FA,0xC5C2,0xB2C0,0x9047, +0x9048,0xE2EF,0x9049,0xE2F2,0xC1AF,0xCBBC,0x904A,0x904B, +0xB5A1,0xE2F9,0x904C,0x904D,0x904E,0xBCB1,0xE2F1,0xD0D4, +0xD4B9,0xE2F5,0xB9D6,0xE2F6,0x904F,0x9050,0x9051,0xC7D3, +0x9052,0x9053,0x9054,0x9055,0x9056,0xE2F0,0x9057,0x9058, +0x9059,0x905A,0x905B,0xD7DC,0xEDA1,0x905C,0x905D,0xE2F8, +0x905E,0xEDA5,0xE2FE,0xCAD1,0x905F,0x9060,0x9061,0x9062, +0x9063,0x9064,0x9065,0xC1B5,0x9066,0xBBD0,0x9067,0x9068, +0xBFD6,0x9069,0xBAE3,0x906A,0x906B,0xCBA1,0x906C,0x906D, +0x906E,0xEDA6,0xEDA3,0x906F,0x9070,0xEDA2,0x9071,0x9072, +0x9073,0x9074,0xBBD6,0xEDA7,0xD0F4,0x9075,0x9076,0xEDA4, +0xBADE,0xB6F7,0xE3A1,0xB6B2,0xCCF1,0xB9A7,0x9077,0xCFA2, +0xC7A1,0x9078,0x9079,0xBFD2,0x907A,0x907B,0xB6F1,0x907C, +0xE2FA,0xE2FB,0xE2FD,0xE2FC,0xC4D5,0xE3A2,0x907D,0xD3C1, +0x907E,0x9080,0x9081,0xE3A7,0xC7C4,0x9082,0x9083,0x9084, +0x9085,0xCFA4,0x9086,0x9087,0xE3A9,0xBAB7,0x9088,0x9089, +0x908A,0x908B,0xE3A8,0x908C,0xBBDA,0x908D,0xE3A3,0x908E, +0x908F,0x9090,0xE3A4,0xE3AA,0x9091,0xE3A6,0x9092,0xCEF2, +0xD3C6,0x9093,0x9094,0xBBBC,0x9095,0x9096,0xD4C3,0x9097, +0xC4FA,0x9098,0x9099,0xEDA8,0xD0FC,0xE3A5,0x909A,0xC3F5, +0x909B,0xE3AD,0xB1AF,0x909C,0xE3B2,0x909D,0x909E,0x909F, +0xBCC2,0x90A0,0x90A1,0xE3AC,0xB5BF,0x90A2,0x90A3,0x90A4, +0x90A5,0x90A6,0x90A7,0x90A8,0x90A9,0xC7E9,0xE3B0,0x90AA, +0x90AB,0x90AC,0xBEAA,0xCDEF,0x90AD,0x90AE,0x90AF,0x90B0, +0x90B1,0xBBF3,0x90B2,0x90B3,0x90B4,0xCCE8,0x90B5,0x90B6, +0xE3AF,0x90B7,0xE3B1,0x90B8,0xCFA7,0xE3AE,0x90B9,0xCEA9, +0xBBDD,0x90BA,0x90BB,0x90BC,0x90BD,0x90BE,0xB5EB,0xBEE5, +0xB2D2,0xB3CD,0x90BF,0xB1B9,0xE3AB,0xB2D1,0xB5AC,0xB9DF, +0xB6E8,0x90C0,0x90C1,0xCFEB,0xE3B7,0x90C2,0xBBCC,0x90C3, +0x90C4,0xC8C7,0xD0CA,0x90C5,0x90C6,0x90C7,0x90C8,0x90C9, +0xE3B8,0xB3EE,0x90CA,0x90CB,0x90CC,0x90CD,0xEDA9,0x90CE, +0xD3FA,0xD3E4,0x90CF,0x90D0,0x90D1,0xEDAA,0xE3B9,0xD2E2, +0x90D2,0x90D3,0x90D4,0x90D5,0x90D6,0xE3B5,0x90D7,0x90D8, +0x90D9,0x90DA,0xD3DE,0x90DB,0x90DC,0x90DD,0x90DE,0xB8D0, +0xE3B3,0x90DF,0x90E0,0xE3B6,0xB7DF,0x90E1,0xE3B4,0xC0A2, +0x90E2,0x90E3,0x90E4,0xE3BA,0x90E5,0x90E6,0x90E7,0x90E8, +0x90E9,0x90EA,0x90EB,0x90EC,0x90ED,0x90EE,0x90EF,0x90F0, +0x90F1,0x90F2,0x90F3,0x90F4,0x90F5,0x90F6,0x90F7,0xD4B8, +0x90F8,0x90F9,0x90FA,0x90FB,0x90FC,0x90FD,0x90FE,0x9140, +0xB4C8,0x9141,0xE3BB,0x9142,0xBBC5,0x9143,0xC9F7,0x9144, +0x9145,0xC9E5,0x9146,0x9147,0x9148,0xC4BD,0x9149,0x914A, +0x914B,0x914C,0x914D,0x914E,0x914F,0xEDAB,0x9150,0x9151, +0x9152,0x9153,0xC2FD,0x9154,0x9155,0x9156,0x9157,0xBBDB, +0xBFAE,0x9158,0x9159,0x915A,0x915B,0x915C,0x915D,0x915E, +0xCEBF,0x915F,0x9160,0x9161,0x9162,0xE3BC,0x9163,0xBFB6, +0x9164,0x9165,0x9166,0x9167,0x9168,0x9169,0x916A,0x916B, +0x916C,0x916D,0x916E,0x916F,0x9170,0x9171,0x9172,0x9173, +0x9174,0x9175,0x9176,0xB1EF,0x9177,0x9178,0xD4F7,0x9179, +0x917A,0x917B,0x917C,0x917D,0xE3BE,0x917E,0x9180,0x9181, +0x9182,0x9183,0x9184,0x9185,0x9186,0xEDAD,0x9187,0x9188, +0x9189,0x918A,0x918B,0x918C,0x918D,0x918E,0x918F,0xE3BF, +0xBAA9,0xEDAC,0x9190,0x9191,0xE3BD,0x9192,0x9193,0x9194, +0x9195,0x9196,0x9197,0x9198,0x9199,0x919A,0x919B,0xE3C0, +0x919C,0x919D,0x919E,0x919F,0x91A0,0x91A1,0xBAB6,0x91A2, +0x91A3,0x91A4,0xB6AE,0x91A5,0x91A6,0x91A7,0x91A8,0x91A9, +0xD0B8,0x91AA,0xB0C3,0xEDAE,0x91AB,0x91AC,0x91AD,0x91AE, +0x91AF,0xEDAF,0xC0C1,0x91B0,0xE3C1,0x91B1,0x91B2,0x91B3, +0x91B4,0x91B5,0x91B6,0x91B7,0x91B8,0x91B9,0x91BA,0x91BB, +0x91BC,0x91BD,0x91BE,0x91BF,0x91C0,0x91C1,0xC5B3,0x91C2, +0x91C3,0x91C4,0x91C5,0x91C6,0x91C7,0x91C8,0x91C9,0x91CA, +0x91CB,0x91CC,0x91CD,0x91CE,0x91CF,0xE3C2,0x91D0,0x91D1, +0x91D2,0x91D3,0x91D4,0x91D5,0x91D6,0x91D7,0x91D8,0xDCB2, +0x91D9,0x91DA,0x91DB,0x91DC,0x91DD,0x91DE,0xEDB0,0x91DF, +0xB8EA,0x91E0,0xCEEC,0xEAA7,0xD0E7,0xCAF9,0xC8D6,0xCFB7, +0xB3C9,0xCED2,0xBDE4,0x91E1,0x91E2,0xE3DE,0xBBF2,0xEAA8, +0xD5BD,0x91E3,0xC6DD,0xEAA9,0x91E4,0x91E5,0x91E6,0xEAAA, +0x91E7,0xEAAC,0xEAAB,0x91E8,0xEAAE,0xEAAD,0x91E9,0x91EA, +0x91EB,0x91EC,0xBDD8,0x91ED,0xEAAF,0x91EE,0xC2BE,0x91EF, +0x91F0,0x91F1,0x91F2,0xB4C1,0xB4F7,0x91F3,0x91F4,0xBBA7, +0x91F5,0x91F6,0x91F7,0x91F8,0x91F9,0xECE6,0xECE5,0xB7BF, +0xCBF9,0xB1E2,0x91FA,0xECE7,0x91FB,0x91FC,0x91FD,0xC9C8, +0xECE8,0xECE9,0x91FE,0xCAD6,0xDED0,0xB2C5,0xD4FA,0x9240, +0x9241,0xC6CB,0xB0C7,0xB4F2,0xC8D3,0x9242,0x9243,0x9244, +0xCDD0,0x9245,0x9246,0xBFB8,0x9247,0x9248,0x9249,0x924A, +0x924B,0x924C,0x924D,0xBFDB,0x924E,0x924F,0xC7A4,0xD6B4, +0x9250,0xC0A9,0xDED1,0xC9A8,0xD1EF,0xC5A4,0xB0E7,0xB3B6, +0xC8C5,0x9251,0x9252,0xB0E2,0x9253,0x9254,0xB7F6,0x9255, +0x9256,0xC5FA,0x9257,0x9258,0xB6F3,0x9259,0xD5D2,0xB3D0, +0xBCBC,0x925A,0x925B,0x925C,0xB3AD,0x925D,0x925E,0x925F, +0x9260,0xBEF1,0xB0D1,0x9261,0x9262,0x9263,0x9264,0x9265, +0x9266,0xD2D6,0xCAE3,0xD7A5,0x9267,0xCDB6,0xB6B6,0xBFB9, +0xD5DB,0x9268,0xB8A7,0xC5D7,0x9269,0x926A,0x926B,0xDED2, +0xBFD9,0xC2D5,0xC7C0,0x926C,0xBBA4,0xB1A8,0x926D,0x926E, +0xC5EA,0x926F,0x9270,0xC5FB,0xCCA7,0x9271,0x9272,0x9273, +0x9274,0xB1A7,0x9275,0x9276,0x9277,0xB5D6,0x9278,0x9279, +0x927A,0xC4A8,0x927B,0xDED3,0xD1BA,0xB3E9,0x927C,0xC3F2, +0x927D,0x927E,0xB7F7,0x9280,0xD6F4,0xB5A3,0xB2F0,0xC4B4, +0xC4E9,0xC0AD,0xDED4,0x9281,0xB0E8,0xC5C4,0xC1E0,0x9282, +0xB9D5,0x9283,0xBEDC,0xCDD8,0xB0CE,0x9284,0xCDCF,0xDED6, +0xBED0,0xD7BE,0xDED5,0xD5D0,0xB0DD,0x9285,0x9286,0xC4E2, +0x9287,0x9288,0xC2A3,0xBCF0,0x9289,0xD3B5,0xC0B9,0xC5A1, +0xB2A6,0xD4F1,0x928A,0x928B,0xC0A8,0xCAC3,0xDED7,0xD5FC, +0x928C,0xB9B0,0x928D,0xC8AD,0xCBA9,0x928E,0xDED9,0xBFBD, +0x928F,0x9290,0x9291,0x9292,0xC6B4,0xD7A7,0xCAB0,0xC4C3, +0x9293,0xB3D6,0xB9D2,0x9294,0x9295,0x9296,0x9297,0xD6B8, +0xEAFC,0xB0B4,0x9298,0x9299,0x929A,0x929B,0xBFE6,0x929C, +0x929D,0xCCF4,0x929E,0x929F,0x92A0,0x92A1,0xCDDA,0x92A2, +0x92A3,0x92A4,0xD6BF,0xC2CE,0x92A5,0xCECE,0xCCA2,0xD0AE, +0xC4D3,0xB5B2,0xDED8,0xD5F5,0xBCB7,0xBBD3,0x92A6,0x92A7, +0xB0A4,0x92A8,0xC5B2,0xB4EC,0x92A9,0x92AA,0x92AB,0xD5F1, +0x92AC,0x92AD,0xEAFD,0x92AE,0x92AF,0x92B0,0x92B1,0x92B2, +0x92B3,0xDEDA,0xCDA6,0x92B4,0x92B5,0xCDEC,0x92B6,0x92B7, +0x92B8,0x92B9,0xCEE6,0xDEDC,0x92BA,0xCDB1,0xC0A6,0x92BB, +0x92BC,0xD7BD,0x92BD,0xDEDB,0xB0C6,0xBAB4,0xC9D3,0xC4F3, +0xBEE8,0x92BE,0x92BF,0x92C0,0x92C1,0xB2B6,0x92C2,0x92C3, +0x92C4,0x92C5,0x92C6,0x92C7,0x92C8,0x92C9,0xC0CC,0xCBF0, +0x92CA,0xBCF1,0xBBBB,0xB5B7,0x92CB,0x92CC,0x92CD,0xC5F5, +0x92CE,0xDEE6,0x92CF,0x92D0,0x92D1,0xDEE3,0xBEDD,0x92D2, +0x92D3,0xDEDF,0x92D4,0x92D5,0x92D6,0x92D7,0xB4B7,0xBDDD, +0x92D8,0x92D9,0xDEE0,0xC4ED,0x92DA,0x92DB,0x92DC,0x92DD, +0xCFC6,0x92DE,0xB5E0,0x92DF,0x92E0,0x92E1,0x92E2,0xB6DE, +0xCADA,0xB5F4,0xDEE5,0x92E3,0xD5C6,0x92E4,0xDEE1,0xCCCD, +0xC6FE,0x92E5,0xC5C5,0x92E6,0x92E7,0x92E8,0xD2B4,0x92E9, +0xBEF2,0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,0x92F0, +0xC2D3,0x92F1,0xCCBD,0xB3B8,0x92F2,0xBDD3,0x92F3,0xBFD8, +0xCDC6,0xD1DA,0xB4EB,0x92F4,0xDEE4,0xDEDD,0xDEE7,0x92F5, +0xEAFE,0x92F6,0x92F7,0xC2B0,0xDEE2,0x92F8,0x92F9,0xD6C0, +0xB5A7,0x92FA,0xB2F4,0x92FB,0xDEE8,0x92FC,0xDEF2,0x92FD, +0x92FE,0x9340,0x9341,0x9342,0xDEED,0x9343,0xDEF1,0x9344, +0x9345,0xC8E0,0x9346,0x9347,0x9348,0xD7E1,0xDEEF,0xC3E8, +0xCCE1,0x9349,0xB2E5,0x934A,0x934B,0x934C,0xD2BE,0x934D, +0x934E,0x934F,0x9350,0x9351,0x9352,0x9353,0xDEEE,0x9354, +0xDEEB,0xCED5,0x9355,0xB4A7,0x9356,0x9357,0x9358,0x9359, +0x935A,0xBFAB,0xBEBE,0x935B,0x935C,0xBDD2,0x935D,0x935E, +0x935F,0x9360,0xDEE9,0x9361,0xD4AE,0x9362,0xDEDE,0x9363, +0xDEEA,0x9364,0x9365,0x9366,0x9367,0xC0BF,0x9368,0xDEEC, +0xB2F3,0xB8E9,0xC2A7,0x9369,0x936A,0xBDC1,0x936B,0x936C, +0x936D,0x936E,0x936F,0xDEF5,0xDEF8,0x9370,0x9371,0xB2AB, +0xB4A4,0x9372,0x9373,0xB4EA,0xC9A6,0x9374,0x9375,0x9376, +0x9377,0x9378,0x9379,0xDEF6,0xCBD1,0x937A,0xB8E3,0x937B, +0xDEF7,0xDEFA,0x937C,0x937D,0x937E,0x9380,0xDEF9,0x9381, +0x9382,0x9383,0xCCC2,0x9384,0xB0E1,0xB4EE,0x9385,0x9386, +0x9387,0x9388,0x9389,0x938A,0xE5BA,0x938B,0x938C,0x938D, +0x938E,0x938F,0xD0AF,0x9390,0x9391,0xB2EB,0x9392,0xEBA1, +0x9393,0xDEF4,0x9394,0x9395,0xC9E3,0xDEF3,0xB0DA,0xD2A1, +0xB1F7,0x9396,0xCCAF,0x9397,0x9398,0x9399,0x939A,0x939B, +0x939C,0x939D,0xDEF0,0x939E,0xCBA4,0x939F,0x93A0,0x93A1, +0xD5AA,0x93A2,0x93A3,0x93A4,0x93A5,0x93A6,0xDEFB,0x93A7, +0x93A8,0x93A9,0x93AA,0x93AB,0x93AC,0x93AD,0x93AE,0xB4DD, +0x93AF,0xC4A6,0x93B0,0x93B1,0x93B2,0xDEFD,0x93B3,0x93B4, +0x93B5,0x93B6,0x93B7,0x93B8,0x93B9,0x93BA,0x93BB,0x93BC, +0xC3FE,0xC4A1,0xDFA1,0x93BD,0x93BE,0x93BF,0x93C0,0x93C1, +0x93C2,0x93C3,0xC1CC,0x93C4,0xDEFC,0xBEEF,0x93C5,0xC6B2, +0x93C6,0x93C7,0x93C8,0x93C9,0x93CA,0x93CB,0x93CC,0x93CD, +0x93CE,0xB3C5,0xC8F6,0x93CF,0x93D0,0xCBBA,0xDEFE,0x93D1, +0x93D2,0xDFA4,0x93D3,0x93D4,0x93D5,0x93D6,0xD7B2,0x93D7, +0x93D8,0x93D9,0x93DA,0x93DB,0xB3B7,0x93DC,0x93DD,0x93DE, +0x93DF,0xC1C3,0x93E0,0x93E1,0xC7CB,0xB2A5,0xB4E9,0x93E2, +0xD7AB,0x93E3,0x93E4,0x93E5,0x93E6,0xC4EC,0x93E7,0xDFA2, +0xDFA3,0x93E8,0xDFA5,0x93E9,0xBAB3,0x93EA,0x93EB,0x93EC, +0xDFA6,0x93ED,0xC0DE,0x93EE,0x93EF,0xC9C3,0x93F0,0x93F1, +0x93F2,0x93F3,0x93F4,0x93F5,0x93F6,0xB2D9,0xC7E6,0x93F7, +0xDFA7,0x93F8,0xC7DC,0x93F9,0x93FA,0x93FB,0x93FC,0xDFA8, +0xEBA2,0x93FD,0x93FE,0x9440,0x9441,0x9442,0xCBD3,0x9443, +0x9444,0x9445,0xDFAA,0x9446,0xDFA9,0x9447,0xB2C1,0x9448, +0x9449,0x944A,0x944B,0x944C,0x944D,0x944E,0x944F,0x9450, +0x9451,0x9452,0x9453,0x9454,0x9455,0x9456,0x9457,0x9458, +0x9459,0x945A,0x945B,0x945C,0x945D,0x945E,0x945F,0x9460, +0xC5CA,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,0x9467, +0x9468,0xDFAB,0x9469,0x946A,0x946B,0x946C,0x946D,0x946E, +0x946F,0x9470,0xD4DC,0x9471,0x9472,0x9473,0x9474,0x9475, +0xC8C1,0x9476,0x9477,0x9478,0x9479,0x947A,0x947B,0x947C, +0x947D,0x947E,0x9480,0x9481,0x9482,0xDFAC,0x9483,0x9484, +0x9485,0x9486,0x9487,0xBEF0,0x9488,0x9489,0xDFAD,0xD6A7, +0x948A,0x948B,0x948C,0x948D,0xEAB7,0xEBB6,0xCAD5,0x948E, +0xD8FC,0xB8C4,0x948F,0xB9A5,0x9490,0x9491,0xB7C5,0xD5FE, +0x9492,0x9493,0x9494,0x9495,0x9496,0xB9CA,0x9497,0x9498, +0xD0A7,0xF4CD,0x9499,0x949A,0xB5D0,0x949B,0x949C,0xC3F4, +0x949D,0xBEC8,0x949E,0x949F,0x94A0,0xEBB7,0xB0BD,0x94A1, +0x94A2,0xBDCC,0x94A3,0xC1B2,0x94A4,0xB1D6,0xB3A8,0x94A5, +0x94A6,0x94A7,0xB8D2,0xC9A2,0x94A8,0x94A9,0xB6D8,0x94AA, +0x94AB,0x94AC,0x94AD,0xEBB8,0xBEB4,0x94AE,0x94AF,0x94B0, +0xCAFD,0x94B1,0xC7C3,0x94B2,0xD5FB,0x94B3,0x94B4,0xB7F3, +0x94B5,0x94B6,0x94B7,0x94B8,0x94B9,0x94BA,0x94BB,0x94BC, +0x94BD,0x94BE,0x94BF,0x94C0,0x94C1,0x94C2,0x94C3,0xCEC4, +0x94C4,0x94C5,0x94C6,0xD5AB,0xB1F3,0x94C7,0x94C8,0x94C9, +0xECB3,0xB0DF,0x94CA,0xECB5,0x94CB,0x94CC,0x94CD,0xB6B7, +0x94CE,0xC1CF,0x94CF,0xF5FA,0xD0B1,0x94D0,0x94D1,0xD5E5, +0x94D2,0xCED3,0x94D3,0x94D4,0xBDEF,0xB3E2,0x94D5,0xB8AB, +0x94D6,0xD5B6,0x94D7,0xEDBD,0x94D8,0xB6CF,0x94D9,0xCBB9, +0xD0C2,0x94DA,0x94DB,0x94DC,0x94DD,0x94DE,0x94DF,0x94E0, +0x94E1,0xB7BD,0x94E2,0x94E3,0xECB6,0xCAA9,0x94E4,0x94E5, +0x94E6,0xC5D4,0x94E7,0xECB9,0xECB8,0xC2C3,0xECB7,0x94E8, +0x94E9,0x94EA,0x94EB,0xD0FD,0xECBA,0x94EC,0xECBB,0xD7E5, +0x94ED,0x94EE,0xECBC,0x94EF,0x94F0,0x94F1,0xECBD,0xC6EC, +0x94F2,0x94F3,0x94F4,0x94F5,0x94F6,0x94F7,0x94F8,0x94F9, +0xCEDE,0x94FA,0xBCC8,0x94FB,0x94FC,0xC8D5,0xB5A9,0xBEC9, +0xD6BC,0xD4E7,0x94FD,0x94FE,0xD1AE,0xD0F1,0xEAB8,0xEAB9, +0xEABA,0xBAB5,0x9540,0x9541,0x9542,0x9543,0xCAB1,0xBFF5, +0x9544,0x9545,0xCDFA,0x9546,0x9547,0x9548,0x9549,0x954A, +0xEAC0,0x954B,0xB0BA,0xEABE,0x954C,0x954D,0xC0A5,0x954E, +0x954F,0x9550,0xEABB,0x9551,0xB2FD,0x9552,0xC3F7,0xBBE8, +0x9553,0x9554,0x9555,0xD2D7,0xCEF4,0xEABF,0x9556,0x9557, +0x9558,0xEABC,0x9559,0x955A,0x955B,0xEAC3,0x955C,0xD0C7, +0xD3B3,0x955D,0x955E,0x955F,0x9560,0xB4BA,0x9561,0xC3C1, +0xD7F2,0x9562,0x9563,0x9564,0x9565,0xD5D1,0x9566,0xCAC7, +0x9567,0xEAC5,0x9568,0x9569,0xEAC4,0xEAC7,0xEAC6,0x956A, +0x956B,0x956C,0x956D,0x956E,0xD6E7,0x956F,0xCFD4,0x9570, +0x9571,0xEACB,0x9572,0xBBCE,0x9573,0x9574,0x9575,0x9576, +0x9577,0x9578,0x9579,0xBDFA,0xC9CE,0x957A,0x957B,0xEACC, +0x957C,0x957D,0xC9B9,0xCFFE,0xEACA,0xD4CE,0xEACD,0xEACF, +0x957E,0x9580,0xCDED,0x9581,0x9582,0x9583,0x9584,0xEAC9, +0x9585,0xEACE,0x9586,0x9587,0xCEEE,0x9588,0xBBDE,0x9589, +0xB3BF,0x958A,0x958B,0x958C,0x958D,0x958E,0xC6D5,0xBEB0, +0xCEFA,0x958F,0x9590,0x9591,0xC7E7,0x9592,0xBEA7,0xEAD0, +0x9593,0x9594,0xD6C7,0x9595,0x9596,0x9597,0xC1C0,0x9598, +0x9599,0x959A,0xD4DD,0x959B,0xEAD1,0x959C,0x959D,0xCFBE, +0x959E,0x959F,0x95A0,0x95A1,0xEAD2,0x95A2,0x95A3,0x95A4, +0x95A5,0xCAEE,0x95A6,0x95A7,0x95A8,0x95A9,0xC5AF,0xB0B5, +0x95AA,0x95AB,0x95AC,0x95AD,0x95AE,0xEAD4,0x95AF,0x95B0, +0x95B1,0x95B2,0x95B3,0x95B4,0x95B5,0x95B6,0x95B7,0xEAD3, +0xF4DF,0x95B8,0x95B9,0x95BA,0x95BB,0x95BC,0xC4BA,0x95BD, +0x95BE,0x95BF,0x95C0,0x95C1,0xB1A9,0x95C2,0x95C3,0x95C4, +0x95C5,0xE5DF,0x95C6,0x95C7,0x95C8,0x95C9,0xEAD5,0x95CA, +0x95CB,0x95CC,0x95CD,0x95CE,0x95CF,0x95D0,0x95D1,0x95D2, +0x95D3,0x95D4,0x95D5,0x95D6,0x95D7,0x95D8,0x95D9,0x95DA, +0x95DB,0x95DC,0x95DD,0x95DE,0x95DF,0x95E0,0x95E1,0x95E2, +0x95E3,0xCAEF,0x95E4,0xEAD6,0xEAD7,0xC6D8,0x95E5,0x95E6, +0x95E7,0x95E8,0x95E9,0x95EA,0x95EB,0x95EC,0xEAD8,0x95ED, +0x95EE,0xEAD9,0x95EF,0x95F0,0x95F1,0x95F2,0x95F3,0x95F4, +0xD4BB,0x95F5,0xC7FA,0xD2B7,0xB8FC,0x95F6,0x95F7,0xEAC2, +0x95F8,0xB2DC,0x95F9,0x95FA,0xC2FC,0x95FB,0xD4F8,0xCCE6, +0xD7EE,0x95FC,0x95FD,0x95FE,0x9640,0x9641,0x9642,0x9643, +0xD4C2,0xD3D0,0xEBC3,0xC5F3,0x9644,0xB7FE,0x9645,0x9646, +0xEBD4,0x9647,0x9648,0x9649,0xCBB7,0xEBDE,0x964A,0xC0CA, +0x964B,0x964C,0x964D,0xCDFB,0x964E,0xB3AF,0x964F,0xC6DA, +0x9650,0x9651,0x9652,0x9653,0x9654,0x9655,0xEBFC,0x9656, +0xC4BE,0x9657,0xCEB4,0xC4A9,0xB1BE,0xD4FD,0x9658,0xCAF5, +0x9659,0xD6EC,0x965A,0x965B,0xC6D3,0xB6E4,0x965C,0x965D, +0x965E,0x965F,0xBBFA,0x9660,0x9661,0xD0E0,0x9662,0x9663, +0xC9B1,0x9664,0xD4D3,0xC8A8,0x9665,0x9666,0xB8CB,0x9667, +0xE8BE,0xC9BC,0x9668,0x9669,0xE8BB,0x966A,0xC0EE,0xD0D3, +0xB2C4,0xB4E5,0x966B,0xE8BC,0x966C,0x966D,0xD5C8,0x966E, +0x966F,0x9670,0x9671,0x9672,0xB6C5,0x9673,0xE8BD,0xCAF8, +0xB8DC,0xCCF5,0x9674,0x9675,0x9676,0xC0B4,0x9677,0x9678, +0xD1EE,0xE8BF,0xE8C2,0x9679,0x967A,0xBABC,0x967B,0xB1AD, +0xBDDC,0x967C,0xEABD,0xE8C3,0x967D,0xE8C6,0x967E,0xE8CB, +0x9680,0x9681,0x9682,0x9683,0xE8CC,0x9684,0xCBC9,0xB0E5, +0x9685,0xBCAB,0x9686,0x9687,0xB9B9,0x9688,0x9689,0xE8C1, +0x968A,0xCDF7,0x968B,0xE8CA,0x968C,0x968D,0x968E,0x968F, +0xCEF6,0x9690,0x9691,0x9692,0x9693,0xD5ED,0x9694,0xC1D6, +0xE8C4,0x9695,0xC3B6,0x9696,0xB9FB,0xD6A6,0xE8C8,0x9697, +0x9698,0x9699,0xCAE0,0xD4E6,0x969A,0xE8C0,0x969B,0xE8C5, +0xE8C7,0x969C,0xC7B9,0xB7E3,0x969D,0xE8C9,0x969E,0xBFDD, +0xE8D2,0x969F,0x96A0,0xE8D7,0x96A1,0xE8D5,0xBCDC,0xBCCF, +0xE8DB,0x96A2,0x96A3,0x96A4,0x96A5,0x96A6,0x96A7,0x96A8, +0x96A9,0xE8DE,0x96AA,0xE8DA,0xB1FA,0x96AB,0x96AC,0x96AD, +0x96AE,0x96AF,0x96B0,0x96B1,0x96B2,0x96B3,0x96B4,0xB0D8, +0xC4B3,0xB8CC,0xC6E2,0xC8BE,0xC8E1,0x96B5,0x96B6,0x96B7, +0xE8CF,0xE8D4,0xE8D6,0x96B8,0xB9F1,0xE8D8,0xD7F5,0x96B9, +0xC4FB,0x96BA,0xE8DC,0x96BB,0x96BC,0xB2E9,0x96BD,0x96BE, +0x96BF,0xE8D1,0x96C0,0x96C1,0xBCED,0x96C2,0x96C3,0xBFC2, +0xE8CD,0xD6F9,0x96C4,0xC1F8,0xB2F1,0x96C5,0x96C6,0x96C7, +0x96C8,0x96C9,0x96CA,0x96CB,0x96CC,0xE8DF,0x96CD,0xCAC1, +0xE8D9,0x96CE,0x96CF,0x96D0,0x96D1,0xD5A4,0x96D2,0xB1EA, +0xD5BB,0xE8CE,0xE8D0,0xB6B0,0xE8D3,0x96D3,0xE8DD,0xC0B8, +0x96D4,0xCAF7,0x96D5,0xCBA8,0x96D6,0x96D7,0xC6DC,0xC0F5, +0x96D8,0x96D9,0x96DA,0x96DB,0x96DC,0xE8E9,0x96DD,0x96DE, +0x96DF,0xD0A3,0x96E0,0x96E1,0x96E2,0x96E3,0x96E4,0x96E5, +0x96E6,0xE8F2,0xD6EA,0x96E7,0x96E8,0x96E9,0x96EA,0x96EB, +0x96EC,0x96ED,0xE8E0,0xE8E1,0x96EE,0x96EF,0x96F0,0xD1F9, +0xBACB,0xB8F9,0x96F1,0x96F2,0xB8F1,0xD4D4,0xE8EF,0x96F3, +0xE8EE,0xE8EC,0xB9F0,0xCCD2,0xE8E6,0xCEA6,0xBFF2,0x96F4, +0xB0B8,0xE8F1,0xE8F0,0x96F5,0xD7C0,0x96F6,0xE8E4,0x96F7, +0xCDA9,0xC9A3,0x96F8,0xBBB8,0xBDDB,0xE8EA,0x96F9,0x96FA, +0x96FB,0x96FC,0x96FD,0x96FE,0x9740,0x9741,0x9742,0x9743, +0xE8E2,0xE8E3,0xE8E5,0xB5B5,0xE8E7,0xC7C5,0xE8EB,0xE8ED, +0xBDB0,0xD7AE,0x9744,0xE8F8,0x9745,0x9746,0x9747,0x9748, +0x9749,0x974A,0x974B,0x974C,0xE8F5,0x974D,0xCDB0,0xE8F6, +0x974E,0x974F,0x9750,0x9751,0x9752,0x9753,0x9754,0x9755, +0x9756,0xC1BA,0x9757,0xE8E8,0x9758,0xC3B7,0xB0F0,0x9759, +0x975A,0x975B,0x975C,0x975D,0x975E,0x975F,0x9760,0xE8F4, +0x9761,0x9762,0x9763,0xE8F7,0x9764,0x9765,0x9766,0xB9A3, +0x9767,0x9768,0x9769,0x976A,0x976B,0x976C,0x976D,0x976E, +0x976F,0x9770,0xC9D2,0x9771,0x9772,0x9773,0xC3CE,0xCEE0, +0xC0E6,0x9774,0x9775,0x9776,0x9777,0xCBF3,0x9778,0xCCDD, +0xD0B5,0x9779,0x977A,0xCAE1,0x977B,0xE8F3,0x977C,0x977D, +0x977E,0x9780,0x9781,0x9782,0x9783,0x9784,0x9785,0x9786, +0xBCEC,0x9787,0xE8F9,0x9788,0x9789,0x978A,0x978B,0x978C, +0x978D,0xC3DE,0x978E,0xC6E5,0x978F,0xB9F7,0x9790,0x9791, +0x9792,0x9793,0xB0F4,0x9794,0x9795,0xD7D8,0x9796,0x9797, +0xBCAC,0x9798,0xC5EF,0x9799,0x979A,0x979B,0x979C,0x979D, +0xCCC4,0x979E,0x979F,0xE9A6,0x97A0,0x97A1,0x97A2,0x97A3, +0x97A4,0x97A5,0x97A6,0x97A7,0x97A8,0x97A9,0xC9AD,0x97AA, +0xE9A2,0xC0E2,0x97AB,0x97AC,0x97AD,0xBFC3,0x97AE,0x97AF, +0x97B0,0xE8FE,0xB9D7,0x97B1,0xE8FB,0x97B2,0x97B3,0x97B4, +0x97B5,0xE9A4,0x97B6,0x97B7,0x97B8,0xD2CE,0x97B9,0x97BA, +0x97BB,0x97BC,0x97BD,0xE9A3,0x97BE,0xD6B2,0xD7B5,0x97BF, +0xE9A7,0x97C0,0xBDB7,0x97C1,0x97C2,0x97C3,0x97C4,0x97C5, +0x97C6,0x97C7,0x97C8,0x97C9,0x97CA,0x97CB,0x97CC,0xE8FC, +0xE8FD,0x97CD,0x97CE,0x97CF,0xE9A1,0x97D0,0x97D1,0x97D2, +0x97D3,0x97D4,0x97D5,0x97D6,0x97D7,0xCDD6,0x97D8,0x97D9, +0xD2AC,0x97DA,0x97DB,0x97DC,0xE9B2,0x97DD,0x97DE,0x97DF, +0x97E0,0xE9A9,0x97E1,0x97E2,0x97E3,0xB4AA,0x97E4,0xB4BB, +0x97E5,0x97E6,0xE9AB,0x97E7,0x97E8,0x97E9,0x97EA,0x97EB, +0x97EC,0x97ED,0x97EE,0x97EF,0x97F0,0x97F1,0x97F2,0x97F3, +0x97F4,0x97F5,0x97F6,0x97F7,0xD0A8,0x97F8,0x97F9,0xE9A5, +0x97FA,0x97FB,0xB3FE,0x97FC,0x97FD,0xE9AC,0xC0E3,0x97FE, +0xE9AA,0x9840,0x9841,0xE9B9,0x9842,0x9843,0xE9B8,0x9844, +0x9845,0x9846,0x9847,0xE9AE,0x9848,0x9849,0xE8FA,0x984A, +0x984B,0xE9A8,0x984C,0x984D,0x984E,0x984F,0x9850,0xBFAC, +0xE9B1,0xE9BA,0x9851,0x9852,0xC2A5,0x9853,0x9854,0x9855, +0xE9AF,0x9856,0xB8C5,0x9857,0xE9AD,0x9858,0xD3DC,0xE9B4, +0xE9B5,0xE9B7,0x9859,0x985A,0x985B,0xE9C7,0x985C,0x985D, +0x985E,0x985F,0x9860,0x9861,0xC0C6,0xE9C5,0x9862,0x9863, +0xE9B0,0x9864,0x9865,0xE9BB,0xB0F1,0x9866,0x9867,0x9868, +0x9869,0x986A,0x986B,0x986C,0x986D,0x986E,0x986F,0xE9BC, +0xD5A5,0x9870,0x9871,0xE9BE,0x9872,0xE9BF,0x9873,0x9874, +0x9875,0xE9C1,0x9876,0x9877,0xC1F1,0x9878,0x9879,0xC8B6, +0x987A,0x987B,0x987C,0xE9BD,0x987D,0x987E,0x9880,0x9881, +0x9882,0xE9C2,0x9883,0x9884,0x9885,0x9886,0x9887,0x9888, +0x9889,0x988A,0xE9C3,0x988B,0xE9B3,0x988C,0xE9B6,0x988D, +0xBBB1,0x988E,0x988F,0x9890,0xE9C0,0x9891,0x9892,0x9893, +0x9894,0x9895,0x9896,0xBCF7,0x9897,0x9898,0x9899,0xE9C4, +0xE9C6,0x989A,0x989B,0x989C,0x989D,0x989E,0x989F,0x98A0, +0x98A1,0x98A2,0x98A3,0x98A4,0x98A5,0xE9CA,0x98A6,0x98A7, +0x98A8,0x98A9,0xE9CE,0x98AA,0x98AB,0x98AC,0x98AD,0x98AE, +0x98AF,0x98B0,0x98B1,0x98B2,0x98B3,0xB2DB,0x98B4,0xE9C8, +0x98B5,0x98B6,0x98B7,0x98B8,0x98B9,0x98BA,0x98BB,0x98BC, +0x98BD,0x98BE,0xB7AE,0x98BF,0x98C0,0x98C1,0x98C2,0x98C3, +0x98C4,0x98C5,0x98C6,0x98C7,0x98C8,0x98C9,0x98CA,0xE9CB, +0xE9CC,0x98CB,0x98CC,0x98CD,0x98CE,0x98CF,0x98D0,0xD5C1, +0x98D1,0xC4A3,0x98D2,0x98D3,0x98D4,0x98D5,0x98D6,0x98D7, +0xE9D8,0x98D8,0xBAE1,0x98D9,0x98DA,0x98DB,0x98DC,0xE9C9, +0x98DD,0xD3A3,0x98DE,0x98DF,0x98E0,0xE9D4,0x98E1,0x98E2, +0x98E3,0x98E4,0x98E5,0x98E6,0x98E7,0xE9D7,0xE9D0,0x98E8, +0x98E9,0x98EA,0x98EB,0x98EC,0xE9CF,0x98ED,0x98EE,0xC7C1, +0x98EF,0x98F0,0x98F1,0x98F2,0x98F3,0x98F4,0x98F5,0x98F6, +0xE9D2,0x98F7,0x98F8,0x98F9,0x98FA,0x98FB,0x98FC,0x98FD, +0xE9D9,0xB3C8,0x98FE,0xE9D3,0x9940,0x9941,0x9942,0x9943, +0x9944,0xCFF0,0x9945,0x9946,0x9947,0xE9CD,0x9948,0x9949, +0x994A,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,0x9951, +0x9952,0xB3F7,0x9953,0x9954,0x9955,0x9956,0x9957,0x9958, +0x9959,0xE9D6,0x995A,0x995B,0xE9DA,0x995C,0x995D,0x995E, +0xCCB4,0x995F,0x9960,0x9961,0xCFAD,0x9962,0x9963,0x9964, +0x9965,0x9966,0x9967,0x9968,0x9969,0x996A,0xE9D5,0x996B, +0xE9DC,0xE9DB,0x996C,0x996D,0x996E,0x996F,0x9970,0xE9DE, +0x9971,0x9972,0x9973,0x9974,0x9975,0x9976,0x9977,0x9978, +0xE9D1,0x9979,0x997A,0x997B,0x997C,0x997D,0x997E,0x9980, +0x9981,0xE9DD,0x9982,0xE9DF,0xC3CA,0x9983,0x9984,0x9985, +0x9986,0x9987,0x9988,0x9989,0x998A,0x998B,0x998C,0x998D, +0x998E,0x998F,0x9990,0x9991,0x9992,0x9993,0x9994,0x9995, +0x9996,0x9997,0x9998,0x9999,0x999A,0x999B,0x999C,0x999D, +0x999E,0x999F,0x99A0,0x99A1,0x99A2,0x99A3,0x99A4,0x99A5, +0x99A6,0x99A7,0x99A8,0x99A9,0x99AA,0x99AB,0x99AC,0x99AD, +0x99AE,0x99AF,0x99B0,0x99B1,0x99B2,0x99B3,0x99B4,0x99B5, +0x99B6,0x99B7,0x99B8,0x99B9,0x99BA,0x99BB,0x99BC,0x99BD, +0x99BE,0x99BF,0x99C0,0x99C1,0x99C2,0x99C3,0x99C4,0x99C5, +0x99C6,0x99C7,0x99C8,0x99C9,0x99CA,0x99CB,0x99CC,0x99CD, +0x99CE,0x99CF,0x99D0,0x99D1,0x99D2,0x99D3,0x99D4,0x99D5, +0x99D6,0x99D7,0x99D8,0x99D9,0x99DA,0x99DB,0x99DC,0x99DD, +0x99DE,0x99DF,0x99E0,0x99E1,0x99E2,0x99E3,0x99E4,0x99E5, +0x99E6,0x99E7,0x99E8,0x99E9,0x99EA,0x99EB,0x99EC,0x99ED, +0x99EE,0x99EF,0x99F0,0x99F1,0x99F2,0x99F3,0x99F4,0x99F5, +0xC7B7,0xB4CE,0xBBB6,0xD0C0,0xECA3,0x99F6,0x99F7,0xC5B7, +0x99F8,0x99F9,0x99FA,0x99FB,0x99FC,0x99FD,0x99FE,0x9A40, +0x9A41,0x9A42,0xD3FB,0x9A43,0x9A44,0x9A45,0x9A46,0xECA4, +0x9A47,0xECA5,0xC6DB,0x9A48,0x9A49,0x9A4A,0xBFEE,0x9A4B, +0x9A4C,0x9A4D,0x9A4E,0xECA6,0x9A4F,0x9A50,0xECA7,0xD0AA, +0x9A51,0xC7B8,0x9A52,0x9A53,0xB8E8,0x9A54,0x9A55,0x9A56, +0x9A57,0x9A58,0x9A59,0x9A5A,0x9A5B,0x9A5C,0x9A5D,0x9A5E, +0x9A5F,0xECA8,0x9A60,0x9A61,0x9A62,0x9A63,0x9A64,0x9A65, +0x9A66,0x9A67,0xD6B9,0xD5FD,0xB4CB,0xB2BD,0xCEE4,0xC6E7, +0x9A68,0x9A69,0xCDE1,0x9A6A,0x9A6B,0x9A6C,0x9A6D,0x9A6E, +0x9A6F,0x9A70,0x9A71,0x9A72,0x9A73,0x9A74,0x9A75,0x9A76, +0x9A77,0xB4F5,0x9A78,0xCBC0,0xBCDF,0x9A79,0x9A7A,0x9A7B, +0x9A7C,0xE9E2,0xE9E3,0xD1EA,0xE9E5,0x9A7D,0xB4F9,0xE9E4, +0x9A7E,0xD1B3,0xCAE2,0xB2D0,0x9A80,0xE9E8,0x9A81,0x9A82, +0x9A83,0x9A84,0xE9E6,0xE9E7,0x9A85,0x9A86,0xD6B3,0x9A87, +0x9A88,0x9A89,0xE9E9,0xE9EA,0x9A8A,0x9A8B,0x9A8C,0x9A8D, +0x9A8E,0xE9EB,0x9A8F,0x9A90,0x9A91,0x9A92,0x9A93,0x9A94, +0x9A95,0x9A96,0xE9EC,0x9A97,0x9A98,0x9A99,0x9A9A,0x9A9B, +0x9A9C,0x9A9D,0x9A9E,0xECAF,0xC5B9,0xB6CE,0x9A9F,0xD2F3, +0x9AA0,0x9AA1,0x9AA2,0x9AA3,0x9AA4,0x9AA5,0x9AA6,0xB5EE, +0x9AA7,0xBBD9,0xECB1,0x9AA8,0x9AA9,0xD2E3,0x9AAA,0x9AAB, +0x9AAC,0x9AAD,0x9AAE,0xCEE3,0x9AAF,0xC4B8,0x9AB0,0xC3BF, +0x9AB1,0x9AB2,0xB6BE,0xD8B9,0xB1C8,0xB1CF,0xB1D1,0xC5FE, +0x9AB3,0xB1D0,0x9AB4,0xC3AB,0x9AB5,0x9AB6,0x9AB7,0x9AB8, +0x9AB9,0xD5B1,0x9ABA,0x9ABB,0x9ABC,0x9ABD,0x9ABE,0x9ABF, +0x9AC0,0x9AC1,0xEBA4,0xBAC1,0x9AC2,0x9AC3,0x9AC4,0xCCBA, +0x9AC5,0x9AC6,0x9AC7,0xEBA5,0x9AC8,0xEBA7,0x9AC9,0x9ACA, +0x9ACB,0xEBA8,0x9ACC,0x9ACD,0x9ACE,0xEBA6,0x9ACF,0x9AD0, +0x9AD1,0x9AD2,0x9AD3,0x9AD4,0x9AD5,0xEBA9,0xEBAB,0xEBAA, +0x9AD6,0x9AD7,0x9AD8,0x9AD9,0x9ADA,0xEBAC,0x9ADB,0xCACF, +0xD8B5,0xC3F1,0x9ADC,0xC3A5,0xC6F8,0xEBAD,0xC4CA,0x9ADD, +0xEBAE,0xEBAF,0xEBB0,0xB7D5,0x9ADE,0x9ADF,0x9AE0,0xB7FA, +0x9AE1,0xEBB1,0xC7E2,0x9AE2,0xEBB3,0x9AE3,0xBAA4,0xD1F5, +0xB0B1,0xEBB2,0xEBB4,0x9AE4,0x9AE5,0x9AE6,0xB5AA,0xC2C8, +0xC7E8,0x9AE7,0xEBB5,0x9AE8,0xCBAE,0xE3DF,0x9AE9,0x9AEA, +0xD3C0,0x9AEB,0x9AEC,0x9AED,0x9AEE,0xD9DB,0x9AEF,0x9AF0, +0xCDA1,0xD6AD,0xC7F3,0x9AF1,0x9AF2,0x9AF3,0xD9E0,0xBBE3, +0x9AF4,0xBABA,0xE3E2,0x9AF5,0x9AF6,0x9AF7,0x9AF8,0x9AF9, +0xCFAB,0x9AFA,0x9AFB,0x9AFC,0xE3E0,0xC9C7,0x9AFD,0xBAB9, +0x9AFE,0x9B40,0x9B41,0xD1B4,0xE3E1,0xC8EA,0xB9AF,0xBDAD, +0xB3D8,0xCEDB,0x9B42,0x9B43,0xCCC0,0x9B44,0x9B45,0x9B46, +0xE3E8,0xE3E9,0xCDF4,0x9B47,0x9B48,0x9B49,0x9B4A,0x9B4B, +0xCCAD,0x9B4C,0xBCB3,0x9B4D,0xE3EA,0x9B4E,0xE3EB,0x9B4F, +0x9B50,0xD0DA,0x9B51,0x9B52,0x9B53,0xC6FB,0xB7DA,0x9B54, +0x9B55,0xC7DF,0xD2CA,0xCED6,0x9B56,0xE3E4,0xE3EC,0x9B57, +0xC9F2,0xB3C1,0x9B58,0x9B59,0xE3E7,0x9B5A,0x9B5B,0xC6E3, +0xE3E5,0x9B5C,0x9B5D,0xEDB3,0xE3E6,0x9B5E,0x9B5F,0x9B60, +0x9B61,0xC9B3,0x9B62,0xC5E6,0x9B63,0x9B64,0x9B65,0xB9B5, +0x9B66,0xC3BB,0x9B67,0xE3E3,0xC5BD,0xC1A4,0xC2D9,0xB2D7, +0x9B68,0xE3ED,0xBBA6,0xC4AD,0x9B69,0xE3F0,0xBEDA,0x9B6A, +0x9B6B,0xE3FB,0xE3F5,0xBAD3,0x9B6C,0x9B6D,0x9B6E,0x9B6F, +0xB7D0,0xD3CD,0x9B70,0xD6CE,0xD5D3,0xB9C1,0xD5B4,0xD1D8, +0x9B71,0x9B72,0x9B73,0x9B74,0xD0B9,0xC7F6,0x9B75,0x9B76, +0x9B77,0xC8AA,0xB2B4,0x9B78,0xC3DA,0x9B79,0x9B7A,0x9B7B, +0xE3EE,0x9B7C,0x9B7D,0xE3FC,0xE3EF,0xB7A8,0xE3F7,0xE3F4, +0x9B7E,0x9B80,0x9B81,0xB7BA,0x9B82,0x9B83,0xC5A2,0x9B84, +0xE3F6,0xC5DD,0xB2A8,0xC6FC,0x9B85,0xC4E0,0x9B86,0x9B87, +0xD7A2,0x9B88,0xC0E1,0xE3F9,0x9B89,0x9B8A,0xE3FA,0xE3FD, +0xCCA9,0xE3F3,0x9B8B,0xD3BE,0x9B8C,0xB1C3,0xEDB4,0xE3F1, +0xE3F2,0x9B8D,0xE3F8,0xD0BA,0xC6C3,0xD4F3,0xE3FE,0x9B8E, +0x9B8F,0xBDE0,0x9B90,0x9B91,0xE4A7,0x9B92,0x9B93,0xE4A6, +0x9B94,0x9B95,0x9B96,0xD1F3,0xE4A3,0x9B97,0xE4A9,0x9B98, +0x9B99,0x9B9A,0xC8F7,0x9B9B,0x9B9C,0x9B9D,0x9B9E,0xCFB4, +0x9B9F,0xE4A8,0xE4AE,0xC2E5,0x9BA0,0x9BA1,0xB6B4,0x9BA2, +0x9BA3,0x9BA4,0x9BA5,0x9BA6,0x9BA7,0xBDF2,0x9BA8,0xE4A2, +0x9BA9,0x9BAA,0xBAE9,0xE4AA,0x9BAB,0x9BAC,0xE4AC,0x9BAD, +0x9BAE,0xB6FD,0xD6DE,0xE4B2,0x9BAF,0xE4AD,0x9BB0,0x9BB1, +0x9BB2,0xE4A1,0x9BB3,0xBBEE,0xCDDD,0xC7A2,0xC5C9,0x9BB4, +0x9BB5,0xC1F7,0x9BB6,0xE4A4,0x9BB7,0xC7B3,0xBDAC,0xBDBD, +0xE4A5,0x9BB8,0xD7C7,0xB2E2,0x9BB9,0xE4AB,0xBCC3,0xE4AF, +0x9BBA,0xBBEB,0xE4B0,0xC5A8,0xE4B1,0x9BBB,0x9BBC,0x9BBD, +0x9BBE,0xD5E3,0xBFA3,0x9BBF,0xE4BA,0x9BC0,0xE4B7,0x9BC1, +0xE4BB,0x9BC2,0x9BC3,0xE4BD,0x9BC4,0x9BC5,0xC6D6,0x9BC6, +0x9BC7,0xBAC6,0xC0CB,0x9BC8,0x9BC9,0x9BCA,0xB8A1,0xE4B4, +0x9BCB,0x9BCC,0x9BCD,0x9BCE,0xD4A1,0x9BCF,0x9BD0,0xBAA3, +0xBDFE,0x9BD1,0x9BD2,0x9BD3,0xE4BC,0x9BD4,0x9BD5,0x9BD6, +0x9BD7,0x9BD8,0xCDBF,0x9BD9,0x9BDA,0xC4F9,0x9BDB,0x9BDC, +0xCFFB,0xC9E6,0x9BDD,0x9BDE,0xD3BF,0x9BDF,0xCFD1,0x9BE0, +0x9BE1,0xE4B3,0x9BE2,0xE4B8,0xE4B9,0xCCE9,0x9BE3,0x9BE4, +0x9BE5,0x9BE6,0x9BE7,0xCCCE,0x9BE8,0xC0D4,0xE4B5,0xC1B0, +0xE4B6,0xCED0,0x9BE9,0xBBC1,0xB5D3,0x9BEA,0xC8F3,0xBDA7, +0xD5C7,0xC9AC,0xB8A2,0xE4CA,0x9BEB,0x9BEC,0xE4CC,0xD1C4, +0x9BED,0x9BEE,0xD2BA,0x9BEF,0x9BF0,0xBAAD,0x9BF1,0x9BF2, +0xBAD4,0x9BF3,0x9BF4,0x9BF5,0x9BF6,0x9BF7,0x9BF8,0xE4C3, +0xB5ED,0x9BF9,0x9BFA,0x9BFB,0xD7CD,0xE4C0,0xCFFD,0xE4BF, +0x9BFC,0x9BFD,0x9BFE,0xC1DC,0xCCCA,0x9C40,0x9C41,0x9C42, +0x9C43,0xCAE7,0x9C44,0x9C45,0x9C46,0x9C47,0xC4D7,0x9C48, +0xCCD4,0xE4C8,0x9C49,0x9C4A,0x9C4B,0xE4C7,0xE4C1,0x9C4C, +0xE4C4,0xB5AD,0x9C4D,0x9C4E,0xD3D9,0x9C4F,0xE4C6,0x9C50, +0x9C51,0x9C52,0x9C53,0xD2F9,0xB4E3,0x9C54,0xBBB4,0x9C55, +0x9C56,0xC9EE,0x9C57,0xB4BE,0x9C58,0x9C59,0x9C5A,0xBBEC, +0x9C5B,0xD1CD,0x9C5C,0xCCED,0xEDB5,0x9C5D,0x9C5E,0x9C5F, +0x9C60,0x9C61,0x9C62,0x9C63,0x9C64,0xC7E5,0x9C65,0x9C66, +0x9C67,0x9C68,0xD4A8,0x9C69,0xE4CB,0xD7D5,0xE4C2,0x9C6A, +0xBDA5,0xE4C5,0x9C6B,0x9C6C,0xD3E6,0x9C6D,0xE4C9,0xC9F8, +0x9C6E,0x9C6F,0xE4BE,0x9C70,0x9C71,0xD3E5,0x9C72,0x9C73, +0xC7FE,0xB6C9,0x9C74,0xD4FC,0xB2B3,0xE4D7,0x9C75,0x9C76, +0x9C77,0xCEC2,0x9C78,0xE4CD,0x9C79,0xCEBC,0x9C7A,0xB8DB, +0x9C7B,0x9C7C,0xE4D6,0x9C7D,0xBFCA,0x9C7E,0x9C80,0x9C81, +0xD3CE,0x9C82,0xC3EC,0x9C83,0x9C84,0x9C85,0x9C86,0x9C87, +0x9C88,0x9C89,0x9C8A,0xC5C8,0xE4D8,0x9C8B,0x9C8C,0x9C8D, +0x9C8E,0x9C8F,0x9C90,0x9C91,0x9C92,0xCDC4,0xE4CF,0x9C93, +0x9C94,0x9C95,0x9C96,0xE4D4,0xE4D5,0x9C97,0xBAFE,0x9C98, +0xCFE6,0x9C99,0x9C9A,0xD5BF,0x9C9B,0x9C9C,0x9C9D,0xE4D2, +0x9C9E,0x9C9F,0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA4,0x9CA5, +0x9CA6,0x9CA7,0x9CA8,0xE4D0,0x9CA9,0x9CAA,0xE4CE,0x9CAB, +0x9CAC,0x9CAD,0x9CAE,0x9CAF,0x9CB0,0x9CB1,0x9CB2,0x9CB3, +0x9CB4,0x9CB5,0x9CB6,0x9CB7,0x9CB8,0x9CB9,0xCDE5,0xCAAA, +0x9CBA,0x9CBB,0x9CBC,0xC0A3,0x9CBD,0xBDA6,0xE4D3,0x9CBE, +0x9CBF,0xB8C8,0x9CC0,0x9CC1,0x9CC2,0x9CC3,0x9CC4,0xE4E7, +0xD4B4,0x9CC5,0x9CC6,0x9CC7,0x9CC8,0x9CC9,0x9CCA,0x9CCB, +0xE4DB,0x9CCC,0x9CCD,0x9CCE,0xC1EF,0x9CCF,0x9CD0,0xE4E9, +0x9CD1,0x9CD2,0xD2E7,0x9CD3,0x9CD4,0xE4DF,0x9CD5,0xE4E0, +0x9CD6,0x9CD7,0xCFAA,0x9CD8,0x9CD9,0x9CDA,0x9CDB,0xCBDD, +0x9CDC,0xE4DA,0xE4D1,0x9CDD,0xE4E5,0x9CDE,0xC8DC,0xE4E3, +0x9CDF,0x9CE0,0xC4E7,0xE4E2,0x9CE1,0xE4E1,0x9CE2,0x9CE3, +0x9CE4,0xB3FC,0xE4E8,0x9CE5,0x9CE6,0x9CE7,0x9CE8,0xB5E1, +0x9CE9,0x9CEA,0x9CEB,0xD7CC,0x9CEC,0x9CED,0x9CEE,0xE4E6, +0x9CEF,0xBBAC,0x9CF0,0xD7D2,0xCCCF,0xEBF8,0x9CF1,0xE4E4, +0x9CF2,0x9CF3,0xB9F6,0x9CF4,0x9CF5,0x9CF6,0xD6CD,0xE4D9, +0xE4DC,0xC2FA,0xE4DE,0x9CF7,0xC2CB,0xC0C4,0xC2D0,0x9CF8, +0xB1F5,0xCCB2,0x9CF9,0x9CFA,0x9CFB,0x9CFC,0x9CFD,0x9CFE, +0x9D40,0x9D41,0x9D42,0x9D43,0xB5CE,0x9D44,0x9D45,0x9D46, +0x9D47,0xE4EF,0x9D48,0x9D49,0x9D4A,0x9D4B,0x9D4C,0x9D4D, +0x9D4E,0x9D4F,0xC6AF,0x9D50,0x9D51,0x9D52,0xC6E1,0x9D53, +0x9D54,0xE4F5,0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0xC2A9, +0x9D5A,0x9D5B,0x9D5C,0xC0EC,0xD1DD,0xE4EE,0x9D5D,0x9D5E, +0x9D5F,0x9D60,0x9D61,0x9D62,0x9D63,0x9D64,0x9D65,0x9D66, +0xC4AE,0x9D67,0x9D68,0x9D69,0xE4ED,0x9D6A,0x9D6B,0x9D6C, +0x9D6D,0xE4F6,0xE4F4,0xC2FE,0x9D6E,0xE4DD,0x9D6F,0xE4F0, +0x9D70,0xCAFE,0x9D71,0xD5C4,0x9D72,0x9D73,0xE4F1,0x9D74, +0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A,0xD1FA,0x9D7B, +0x9D7C,0x9D7D,0x9D7E,0x9D80,0x9D81,0x9D82,0xE4EB,0xE4EC, +0x9D83,0x9D84,0x9D85,0xE4F2,0x9D86,0xCEAB,0x9D87,0x9D88, +0x9D89,0x9D8A,0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F,0x9D90, +0xC5CB,0x9D91,0x9D92,0x9D93,0xC7B1,0x9D94,0xC2BA,0x9D95, +0x9D96,0x9D97,0xE4EA,0x9D98,0x9D99,0x9D9A,0xC1CA,0x9D9B, +0x9D9C,0x9D9D,0x9D9E,0x9D9F,0x9DA0,0xCCB6,0xB3B1,0x9DA1, +0x9DA2,0x9DA3,0xE4FB,0x9DA4,0xE4F3,0x9DA5,0x9DA6,0x9DA7, +0xE4FA,0x9DA8,0xE4FD,0x9DA9,0xE4FC,0x9DAA,0x9DAB,0x9DAC, +0x9DAD,0x9DAE,0x9DAF,0x9DB0,0xB3CE,0x9DB1,0x9DB2,0x9DB3, +0xB3BA,0xE4F7,0x9DB4,0x9DB5,0xE4F9,0xE4F8,0xC5EC,0x9DB6, +0x9DB7,0x9DB8,0x9DB9,0x9DBA,0x9DBB,0x9DBC,0x9DBD,0x9DBE, +0x9DBF,0x9DC0,0x9DC1,0x9DC2,0xC0BD,0x9DC3,0x9DC4,0x9DC5, +0x9DC6,0xD4E8,0x9DC7,0x9DC8,0x9DC9,0x9DCA,0x9DCB,0xE5A2, +0x9DCC,0x9DCD,0x9DCE,0x9DCF,0x9DD0,0x9DD1,0x9DD2,0x9DD3, +0x9DD4,0x9DD5,0x9DD6,0xB0C4,0x9DD7,0x9DD8,0xE5A4,0x9DD9, +0x9DDA,0xE5A3,0x9DDB,0x9DDC,0x9DDD,0x9DDE,0x9DDF,0x9DE0, +0xBCA4,0x9DE1,0xE5A5,0x9DE2,0x9DE3,0x9DE4,0x9DE5,0x9DE6, +0x9DE7,0xE5A1,0x9DE8,0x9DE9,0x9DEA,0x9DEB,0x9DEC,0x9DED, +0x9DEE,0xE4FE,0xB1F4,0x9DEF,0x9DF0,0x9DF1,0x9DF2,0x9DF3, +0x9DF4,0x9DF5,0x9DF6,0x9DF7,0x9DF8,0x9DF9,0xE5A8,0x9DFA, +0xE5A9,0xE5A6,0x9DFB,0x9DFC,0x9DFD,0x9DFE,0x9E40,0x9E41, +0x9E42,0x9E43,0x9E44,0x9E45,0x9E46,0x9E47,0xE5A7,0xE5AA, +0x9E48,0x9E49,0x9E4A,0x9E4B,0x9E4C,0x9E4D,0x9E4E,0x9E4F, +0x9E50,0x9E51,0x9E52,0x9E53,0x9E54,0x9E55,0x9E56,0x9E57, +0x9E58,0x9E59,0x9E5A,0x9E5B,0x9E5C,0x9E5D,0x9E5E,0x9E5F, +0x9E60,0x9E61,0x9E62,0x9E63,0x9E64,0x9E65,0x9E66,0x9E67, +0x9E68,0xC6D9,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E6D,0x9E6E, +0x9E6F,0x9E70,0xE5AB,0xE5AD,0x9E71,0x9E72,0x9E73,0x9E74, +0x9E75,0x9E76,0x9E77,0xE5AC,0x9E78,0x9E79,0x9E7A,0x9E7B, +0x9E7C,0x9E7D,0x9E7E,0x9E80,0x9E81,0x9E82,0x9E83,0x9E84, +0x9E85,0x9E86,0x9E87,0x9E88,0x9E89,0xE5AF,0x9E8A,0x9E8B, +0x9E8C,0xE5AE,0x9E8D,0x9E8E,0x9E8F,0x9E90,0x9E91,0x9E92, +0x9E93,0x9E94,0x9E95,0x9E96,0x9E97,0x9E98,0x9E99,0x9E9A, +0x9E9B,0x9E9C,0x9E9D,0x9E9E,0xB9E0,0x9E9F,0x9EA0,0xE5B0, +0x9EA1,0x9EA2,0x9EA3,0x9EA4,0x9EA5,0x9EA6,0x9EA7,0x9EA8, +0x9EA9,0x9EAA,0x9EAB,0x9EAC,0x9EAD,0x9EAE,0xE5B1,0x9EAF, +0x9EB0,0x9EB1,0x9EB2,0x9EB3,0x9EB4,0x9EB5,0x9EB6,0x9EB7, +0x9EB8,0x9EB9,0x9EBA,0xBBF0,0xECE1,0xC3F0,0x9EBB,0xB5C6, +0xBBD2,0x9EBC,0x9EBD,0x9EBE,0x9EBF,0xC1E9,0xD4EE,0x9EC0, +0xBEC4,0x9EC1,0x9EC2,0x9EC3,0xD7C6,0x9EC4,0xD4D6,0xB2D3, +0xECBE,0x9EC5,0x9EC6,0x9EC7,0x9EC8,0xEAC1,0x9EC9,0x9ECA, +0x9ECB,0xC2AF,0xB4B6,0x9ECC,0x9ECD,0x9ECE,0xD1D7,0x9ECF, +0x9ED0,0x9ED1,0xB3B4,0x9ED2,0xC8B2,0xBFBB,0xECC0,0x9ED3, +0x9ED4,0xD6CB,0x9ED5,0x9ED6,0xECBF,0xECC1,0x9ED7,0x9ED8, +0x9ED9,0x9EDA,0x9EDB,0x9EDC,0x9EDD,0x9EDE,0x9EDF,0x9EE0, +0x9EE1,0x9EE2,0x9EE3,0xECC5,0xBEE6,0xCCBF,0xC5DA,0xBEBC, +0x9EE4,0xECC6,0x9EE5,0xB1FE,0x9EE6,0x9EE7,0x9EE8,0xECC4, +0xD5A8,0xB5E3,0x9EE9,0xECC2,0xC1B6,0xB3E3,0x9EEA,0x9EEB, +0xECC3,0xCBB8,0xC0C3,0xCCFE,0x9EEC,0x9EED,0x9EEE,0x9EEF, +0xC1D2,0x9EF0,0xECC8,0x9EF1,0x9EF2,0x9EF3,0x9EF4,0x9EF5, +0x9EF6,0x9EF7,0x9EF8,0x9EF9,0x9EFA,0x9EFB,0x9EFC,0x9EFD, +0xBAE6,0xC0D3,0x9EFE,0xD6F2,0x9F40,0x9F41,0x9F42,0xD1CC, +0x9F43,0x9F44,0x9F45,0x9F46,0xBFBE,0x9F47,0xB7B3,0xC9D5, +0xECC7,0xBBE2,0x9F48,0xCCCC,0xBDFD,0xC8C8,0x9F49,0xCFA9, +0x9F4A,0x9F4B,0x9F4C,0x9F4D,0x9F4E,0x9F4F,0x9F50,0xCDE9, +0x9F51,0xC5EB,0x9F52,0x9F53,0x9F54,0xB7E9,0x9F55,0x9F56, +0x9F57,0x9F58,0x9F59,0x9F5A,0x9F5B,0x9F5C,0x9F5D,0x9F5E, +0x9F5F,0xD1C9,0xBAB8,0x9F60,0x9F61,0x9F62,0x9F63,0x9F64, +0xECC9,0x9F65,0x9F66,0xECCA,0x9F67,0xBBC0,0xECCB,0x9F68, +0xECE2,0xB1BA,0xB7D9,0x9F69,0x9F6A,0x9F6B,0x9F6C,0x9F6D, +0x9F6E,0x9F6F,0x9F70,0x9F71,0x9F72,0x9F73,0xBDB9,0x9F74, +0x9F75,0x9F76,0x9F77,0x9F78,0x9F79,0x9F7A,0x9F7B,0xECCC, +0xD1E6,0xECCD,0x9F7C,0x9F7D,0x9F7E,0x9F80,0xC8BB,0x9F81, +0x9F82,0x9F83,0x9F84,0x9F85,0x9F86,0x9F87,0x9F88,0x9F89, +0x9F8A,0x9F8B,0x9F8C,0x9F8D,0x9F8E,0xECD1,0x9F8F,0x9F90, +0x9F91,0x9F92,0xECD3,0x9F93,0xBBCD,0x9F94,0xBCE5,0x9F95, +0x9F96,0x9F97,0x9F98,0x9F99,0x9F9A,0x9F9B,0x9F9C,0x9F9D, +0x9F9E,0x9F9F,0x9FA0,0x9FA1,0xECCF,0x9FA2,0xC9B7,0x9FA3, +0x9FA4,0x9FA5,0x9FA6,0x9FA7,0xC3BA,0x9FA8,0xECE3,0xD5D5, +0xECD0,0x9FA9,0x9FAA,0x9FAB,0x9FAC,0x9FAD,0xD6F3,0x9FAE, +0x9FAF,0x9FB0,0xECD2,0xECCE,0x9FB1,0x9FB2,0x9FB3,0x9FB4, +0xECD4,0x9FB5,0xECD5,0x9FB6,0x9FB7,0xC9BF,0x9FB8,0x9FB9, +0x9FBA,0x9FBB,0x9FBC,0x9FBD,0xCFA8,0x9FBE,0x9FBF,0x9FC0, +0x9FC1,0x9FC2,0xD0DC,0x9FC3,0x9FC4,0x9FC5,0x9FC6,0xD1AC, +0x9FC7,0x9FC8,0x9FC9,0x9FCA,0xC8DB,0x9FCB,0x9FCC,0x9FCD, +0xECD6,0xCEF5,0x9FCE,0x9FCF,0x9FD0,0x9FD1,0x9FD2,0xCAEC, +0xECDA,0x9FD3,0x9FD4,0x9FD5,0x9FD6,0x9FD7,0x9FD8,0x9FD9, +0xECD9,0x9FDA,0x9FDB,0x9FDC,0xB0BE,0x9FDD,0x9FDE,0x9FDF, +0x9FE0,0x9FE1,0x9FE2,0xECD7,0x9FE3,0xECD8,0x9FE4,0x9FE5, +0x9FE6,0xECE4,0x9FE7,0x9FE8,0x9FE9,0x9FEA,0x9FEB,0x9FEC, +0x9FED,0x9FEE,0x9FEF,0xC8BC,0x9FF0,0x9FF1,0x9FF2,0x9FF3, +0x9FF4,0x9FF5,0x9FF6,0x9FF7,0x9FF8,0x9FF9,0xC1C7,0x9FFA, +0x9FFB,0x9FFC,0x9FFD,0x9FFE,0xECDC,0xD1E0,0xA040,0xA041, +0xA042,0xA043,0xA044,0xA045,0xA046,0xA047,0xA048,0xA049, +0xECDB,0xA04A,0xA04B,0xA04C,0xA04D,0xD4EF,0xA04E,0xECDD, +0xA04F,0xA050,0xA051,0xA052,0xA053,0xA054,0xDBC6,0xA055, +0xA056,0xA057,0xA058,0xA059,0xA05A,0xA05B,0xA05C,0xA05D, +0xA05E,0xECDE,0xA05F,0xA060,0xA061,0xA062,0xA063,0xA064, +0xA065,0xA066,0xA067,0xA068,0xA069,0xA06A,0xB1AC,0xA06B, +0xA06C,0xA06D,0xA06E,0xA06F,0xA070,0xA071,0xA072,0xA073, +0xA074,0xA075,0xA076,0xA077,0xA078,0xA079,0xA07A,0xA07B, +0xA07C,0xA07D,0xA07E,0xA080,0xA081,0xECDF,0xA082,0xA083, +0xA084,0xA085,0xA086,0xA087,0xA088,0xA089,0xA08A,0xA08B, +0xECE0,0xA08C,0xD7A6,0xA08D,0xC5C0,0xA08E,0xA08F,0xA090, +0xEBBC,0xB0AE,0xA091,0xA092,0xA093,0xBEF4,0xB8B8,0xD2AF, +0xB0D6,0xB5F9,0xA094,0xD8B3,0xA095,0xCBAC,0xA096,0xE3DD, +0xA097,0xA098,0xA099,0xA09A,0xA09B,0xA09C,0xA09D,0xC6AC, +0xB0E6,0xA09E,0xA09F,0xA0A0,0xC5C6,0xEBB9,0xA0A1,0xA0A2, +0xA0A3,0xA0A4,0xEBBA,0xA0A5,0xA0A6,0xA0A7,0xEBBB,0xA0A8, +0xA0A9,0xD1C0,0xA0AA,0xC5A3,0xA0AB,0xEAF2,0xA0AC,0xC4B2, +0xA0AD,0xC4B5,0xC0CE,0xA0AE,0xA0AF,0xA0B0,0xEAF3,0xC4C1, +0xA0B1,0xCEEF,0xA0B2,0xA0B3,0xA0B4,0xA0B5,0xEAF0,0xEAF4, +0xA0B6,0xA0B7,0xC9FC,0xA0B8,0xA0B9,0xC7A3,0xA0BA,0xA0BB, +0xA0BC,0xCCD8,0xCEFE,0xA0BD,0xA0BE,0xA0BF,0xEAF5,0xEAF6, +0xCFAC,0xC0E7,0xA0C0,0xA0C1,0xEAF7,0xA0C2,0xA0C3,0xA0C4, +0xA0C5,0xA0C6,0xB6BF,0xEAF8,0xA0C7,0xEAF9,0xA0C8,0xEAFA, +0xA0C9,0xA0CA,0xEAFB,0xA0CB,0xA0CC,0xA0CD,0xA0CE,0xA0CF, +0xA0D0,0xA0D1,0xA0D2,0xA0D3,0xA0D4,0xA0D5,0xA0D6,0xEAF1, +0xA0D7,0xA0D8,0xA0D9,0xA0DA,0xA0DB,0xA0DC,0xA0DD,0xA0DE, +0xA0DF,0xA0E0,0xA0E1,0xA0E2,0xC8AE,0xE1EB,0xA0E3,0xB7B8, +0xE1EC,0xA0E4,0xA0E5,0xA0E6,0xE1ED,0xA0E7,0xD7B4,0xE1EE, +0xE1EF,0xD3CC,0xA0E8,0xA0E9,0xA0EA,0xA0EB,0xA0EC,0xA0ED, +0xA0EE,0xE1F1,0xBFF1,0xE1F0,0xB5D2,0xA0EF,0xA0F0,0xA0F1, +0xB1B7,0xA0F2,0xA0F3,0xA0F4,0xA0F5,0xE1F3,0xE1F2,0xA0F6, +0xBAFC,0xA0F7,0xE1F4,0xA0F8,0xA0F9,0xA0FA,0xA0FB,0xB9B7, +0xA0FC,0xBED1,0xA0FD,0xA0FE,0xAA40,0xAA41,0xC4FC,0xAA42, +0xBADD,0xBDC6,0xAA43,0xAA44,0xAA45,0xAA46,0xAA47,0xAA48, +0xE1F5,0xE1F7,0xAA49,0xAA4A,0xB6C0,0xCFC1,0xCAA8,0xE1F6, +0xD5F8,0xD3FC,0xE1F8,0xE1FC,0xE1F9,0xAA4B,0xAA4C,0xE1FA, +0xC0EA,0xAA4D,0xE1FE,0xE2A1,0xC0C7,0xAA4E,0xAA4F,0xAA50, +0xAA51,0xE1FB,0xAA52,0xE1FD,0xAA53,0xAA54,0xAA55,0xAA56, +0xAA57,0xAA58,0xE2A5,0xAA59,0xAA5A,0xAA5B,0xC1D4,0xAA5C, +0xAA5D,0xAA5E,0xAA5F,0xE2A3,0xAA60,0xE2A8,0xB2FE,0xE2A2, +0xAA61,0xAA62,0xAA63,0xC3CD,0xB2C2,0xE2A7,0xE2A6,0xAA64, +0xAA65,0xE2A4,0xE2A9,0xAA66,0xAA67,0xE2AB,0xAA68,0xAA69, +0xAA6A,0xD0C9,0xD6ED,0xC3A8,0xE2AC,0xAA6B,0xCFD7,0xAA6C, +0xAA6D,0xE2AE,0xAA6E,0xAA6F,0xBAEF,0xAA70,0xAA71,0xE9E0, +0xE2AD,0xE2AA,0xAA72,0xAA73,0xAA74,0xAA75,0xBBAB,0xD4B3, +0xAA76,0xAA77,0xAA78,0xAA79,0xAA7A,0xAA7B,0xAA7C,0xAA7D, +0xAA7E,0xAA80,0xAA81,0xAA82,0xAA83,0xE2B0,0xAA84,0xAA85, +0xE2AF,0xAA86,0xE9E1,0xAA87,0xAA88,0xAA89,0xAA8A,0xE2B1, +0xAA8B,0xAA8C,0xAA8D,0xAA8E,0xAA8F,0xAA90,0xAA91,0xAA92, +0xE2B2,0xAA93,0xAA94,0xAA95,0xAA96,0xAA97,0xAA98,0xAA99, +0xAA9A,0xAA9B,0xAA9C,0xAA9D,0xE2B3,0xCCA1,0xAA9E,0xE2B4, +0xAA9F,0xAAA0,0xAB40,0xAB41,0xAB42,0xAB43,0xAB44,0xAB45, +0xAB46,0xAB47,0xAB48,0xAB49,0xAB4A,0xAB4B,0xE2B5,0xAB4C, +0xAB4D,0xAB4E,0xAB4F,0xAB50,0xD0FE,0xAB51,0xAB52,0xC2CA, +0xAB53,0xD3F1,0xAB54,0xCDF5,0xAB55,0xAB56,0xE7E0,0xAB57, +0xAB58,0xE7E1,0xAB59,0xAB5A,0xAB5B,0xAB5C,0xBEC1,0xAB5D, +0xAB5E,0xAB5F,0xAB60,0xC2EA,0xAB61,0xAB62,0xAB63,0xE7E4, +0xAB64,0xAB65,0xE7E3,0xAB66,0xAB67,0xAB68,0xAB69,0xAB6A, +0xAB6B,0xCDE6,0xAB6C,0xC3B5,0xAB6D,0xAB6E,0xE7E2,0xBBB7, +0xCFD6,0xAB6F,0xC1E1,0xE7E9,0xAB70,0xAB71,0xAB72,0xE7E8, +0xAB73,0xAB74,0xE7F4,0xB2A3,0xAB75,0xAB76,0xAB77,0xAB78, +0xE7EA,0xAB79,0xE7E6,0xAB7A,0xAB7B,0xAB7C,0xAB7D,0xAB7E, +0xE7EC,0xE7EB,0xC9BA,0xAB80,0xAB81,0xD5E4,0xAB82,0xE7E5, +0xB7A9,0xE7E7,0xAB83,0xAB84,0xAB85,0xAB86,0xAB87,0xAB88, +0xAB89,0xE7EE,0xAB8A,0xAB8B,0xAB8C,0xAB8D,0xE7F3,0xAB8E, +0xD6E9,0xAB8F,0xAB90,0xAB91,0xAB92,0xE7ED,0xAB93,0xE7F2, +0xAB94,0xE7F1,0xAB95,0xAB96,0xAB97,0xB0E0,0xAB98,0xAB99, +0xAB9A,0xAB9B,0xE7F5,0xAB9C,0xAB9D,0xAB9E,0xAB9F,0xABA0, +0xAC40,0xAC41,0xAC42,0xAC43,0xAC44,0xAC45,0xAC46,0xAC47, +0xAC48,0xAC49,0xAC4A,0xC7F2,0xAC4B,0xC0C5,0xC0ED,0xAC4C, +0xAC4D,0xC1F0,0xE7F0,0xAC4E,0xAC4F,0xAC50,0xAC51,0xE7F6, +0xCBF6,0xAC52,0xAC53,0xAC54,0xAC55,0xAC56,0xAC57,0xAC58, +0xAC59,0xAC5A,0xE8A2,0xE8A1,0xAC5B,0xAC5C,0xAC5D,0xAC5E, +0xAC5F,0xAC60,0xD7C1,0xAC61,0xAC62,0xE7FA,0xE7F9,0xAC63, +0xE7FB,0xAC64,0xE7F7,0xAC65,0xE7FE,0xAC66,0xE7FD,0xAC67, +0xE7FC,0xAC68,0xAC69,0xC1D5,0xC7D9,0xC5FD,0xC5C3,0xAC6A, +0xAC6B,0xAC6C,0xAC6D,0xAC6E,0xC7ED,0xAC6F,0xAC70,0xAC71, +0xAC72,0xE8A3,0xAC73,0xAC74,0xAC75,0xAC76,0xAC77,0xAC78, +0xAC79,0xAC7A,0xAC7B,0xAC7C,0xAC7D,0xAC7E,0xAC80,0xAC81, +0xAC82,0xAC83,0xAC84,0xAC85,0xAC86,0xE8A6,0xAC87,0xE8A5, +0xAC88,0xE8A7,0xBAF7,0xE7F8,0xE8A4,0xAC89,0xC8F0,0xC9AA, +0xAC8A,0xAC8B,0xAC8C,0xAC8D,0xAC8E,0xAC8F,0xAC90,0xAC91, +0xAC92,0xAC93,0xAC94,0xAC95,0xAC96,0xE8A9,0xAC97,0xAC98, +0xB9E5,0xAC99,0xAC9A,0xAC9B,0xAC9C,0xAC9D,0xD1FE,0xE8A8, +0xAC9E,0xAC9F,0xACA0,0xAD40,0xAD41,0xAD42,0xE8AA,0xAD43, +0xE8AD,0xE8AE,0xAD44,0xC1A7,0xAD45,0xAD46,0xAD47,0xE8AF, +0xAD48,0xAD49,0xAD4A,0xE8B0,0xAD4B,0xAD4C,0xE8AC,0xAD4D, +0xE8B4,0xAD4E,0xAD4F,0xAD50,0xAD51,0xAD52,0xAD53,0xAD54, +0xAD55,0xAD56,0xAD57,0xAD58,0xE8AB,0xAD59,0xE8B1,0xAD5A, +0xAD5B,0xAD5C,0xAD5D,0xAD5E,0xAD5F,0xAD60,0xAD61,0xE8B5, +0xE8B2,0xE8B3,0xAD62,0xAD63,0xAD64,0xAD65,0xAD66,0xAD67, +0xAD68,0xAD69,0xAD6A,0xAD6B,0xAD6C,0xAD6D,0xAD6E,0xAD6F, +0xAD70,0xAD71,0xE8B7,0xAD72,0xAD73,0xAD74,0xAD75,0xAD76, +0xAD77,0xAD78,0xAD79,0xAD7A,0xAD7B,0xAD7C,0xAD7D,0xAD7E, +0xAD80,0xAD81,0xAD82,0xAD83,0xAD84,0xAD85,0xAD86,0xAD87, +0xAD88,0xAD89,0xE8B6,0xAD8A,0xAD8B,0xAD8C,0xAD8D,0xAD8E, +0xAD8F,0xAD90,0xAD91,0xAD92,0xB9CF,0xAD93,0xF0AC,0xAD94, +0xF0AD,0xAD95,0xC6B0,0xB0EA,0xC8BF,0xAD96,0xCDDF,0xAD97, +0xAD98,0xAD99,0xAD9A,0xAD9B,0xAD9C,0xAD9D,0xCECD,0xEAB1, +0xAD9E,0xAD9F,0xADA0,0xAE40,0xEAB2,0xAE41,0xC6BF,0xB4C9, +0xAE42,0xAE43,0xAE44,0xAE45,0xAE46,0xAE47,0xAE48,0xEAB3, +0xAE49,0xAE4A,0xAE4B,0xAE4C,0xD5E7,0xAE4D,0xAE4E,0xAE4F, +0xAE50,0xAE51,0xAE52,0xAE53,0xAE54,0xDDF9,0xAE55,0xEAB4, +0xAE56,0xEAB5,0xAE57,0xEAB6,0xAE58,0xAE59,0xAE5A,0xAE5B, +0xB8CA,0xDFB0,0xC9F5,0xAE5C,0xCCF0,0xAE5D,0xAE5E,0xC9FA, +0xAE5F,0xAE60,0xAE61,0xAE62,0xAE63,0xC9FB,0xAE64,0xAE65, +0xD3C3,0xCBA6,0xAE66,0xB8A6,0xF0AE,0xB1C2,0xAE67,0xE5B8, +0xCCEF,0xD3C9,0xBCD7,0xC9EA,0xAE68,0xB5E7,0xAE69,0xC4D0, +0xB5E9,0xAE6A,0xEEAE,0xBBAD,0xAE6B,0xAE6C,0xE7DE,0xAE6D, +0xEEAF,0xAE6E,0xAE6F,0xAE70,0xAE71,0xB3A9,0xAE72,0xAE73, +0xEEB2,0xAE74,0xAE75,0xEEB1,0xBDE7,0xAE76,0xEEB0,0xCEB7, +0xAE77,0xAE78,0xAE79,0xAE7A,0xC5CF,0xAE7B,0xAE7C,0xAE7D, +0xAE7E,0xC1F4,0xDBCE,0xEEB3,0xD0F3,0xAE80,0xAE81,0xAE82, +0xAE83,0xAE84,0xAE85,0xAE86,0xAE87,0xC2D4,0xC6E8,0xAE88, +0xAE89,0xAE8A,0xB7AC,0xAE8B,0xAE8C,0xAE8D,0xAE8E,0xAE8F, +0xAE90,0xAE91,0xEEB4,0xAE92,0xB3EB,0xAE93,0xAE94,0xAE95, +0xBBFB,0xEEB5,0xAE96,0xAE97,0xAE98,0xAE99,0xAE9A,0xE7DC, +0xAE9B,0xAE9C,0xAE9D,0xEEB6,0xAE9E,0xAE9F,0xBDAE,0xAEA0, +0xAF40,0xAF41,0xAF42,0xF1E2,0xAF43,0xAF44,0xAF45,0xCAE8, +0xAF46,0xD2C9,0xF0DA,0xAF47,0xF0DB,0xAF48,0xF0DC,0xC1C6, +0xAF49,0xB8ED,0xBECE,0xAF4A,0xAF4B,0xF0DE,0xAF4C,0xC5B1, +0xF0DD,0xD1F1,0xAF4D,0xF0E0,0xB0CC,0xBDEA,0xAF4E,0xAF4F, +0xAF50,0xAF51,0xAF52,0xD2DF,0xF0DF,0xAF53,0xB4AF,0xB7E8, +0xF0E6,0xF0E5,0xC6A3,0xF0E1,0xF0E2,0xB4C3,0xAF54,0xAF55, +0xF0E3,0xD5EE,0xAF56,0xAF57,0xCCDB,0xBED2,0xBCB2,0xAF58, +0xAF59,0xAF5A,0xF0E8,0xF0E7,0xF0E4,0xB2A1,0xAF5B,0xD6A2, +0xD3B8,0xBEB7,0xC8AC,0xAF5C,0xAF5D,0xF0EA,0xAF5E,0xAF5F, +0xAF60,0xAF61,0xD1F7,0xAF62,0xD6CC,0xBADB,0xF0E9,0xAF63, +0xB6BB,0xAF64,0xAF65,0xCDB4,0xAF66,0xAF67,0xC6A6,0xAF68, +0xAF69,0xAF6A,0xC1A1,0xF0EB,0xF0EE,0xAF6B,0xF0ED,0xF0F0, +0xF0EC,0xAF6C,0xBBBE,0xF0EF,0xAF6D,0xAF6E,0xAF6F,0xAF70, +0xCCB5,0xF0F2,0xAF71,0xAF72,0xB3D5,0xAF73,0xAF74,0xAF75, +0xAF76,0xB1D4,0xAF77,0xAF78,0xF0F3,0xAF79,0xAF7A,0xF0F4, +0xF0F6,0xB4E1,0xAF7B,0xF0F1,0xAF7C,0xF0F7,0xAF7D,0xAF7E, +0xAF80,0xAF81,0xF0FA,0xAF82,0xF0F8,0xAF83,0xAF84,0xAF85, +0xF0F5,0xAF86,0xAF87,0xAF88,0xAF89,0xF0FD,0xAF8A,0xF0F9, +0xF0FC,0xF0FE,0xAF8B,0xF1A1,0xAF8C,0xAF8D,0xAF8E,0xCEC1, +0xF1A4,0xAF8F,0xF1A3,0xAF90,0xC1F6,0xF0FB,0xCADD,0xAF91, +0xAF92,0xB4F1,0xB1F1,0xCCB1,0xAF93,0xF1A6,0xAF94,0xAF95, +0xF1A7,0xAF96,0xAF97,0xF1AC,0xD5CE,0xF1A9,0xAF98,0xAF99, +0xC8B3,0xAF9A,0xAF9B,0xAF9C,0xF1A2,0xAF9D,0xF1AB,0xF1A8, +0xF1A5,0xAF9E,0xAF9F,0xF1AA,0xAFA0,0xB040,0xB041,0xB042, +0xB043,0xB044,0xB045,0xB046,0xB0A9,0xF1AD,0xB047,0xB048, +0xB049,0xB04A,0xB04B,0xB04C,0xF1AF,0xB04D,0xF1B1,0xB04E, +0xB04F,0xB050,0xB051,0xB052,0xF1B0,0xB053,0xF1AE,0xB054, +0xB055,0xB056,0xB057,0xD1A2,0xB058,0xB059,0xB05A,0xB05B, +0xB05C,0xB05D,0xB05E,0xF1B2,0xB05F,0xB060,0xB061,0xF1B3, +0xB062,0xB063,0xB064,0xB065,0xB066,0xB067,0xB068,0xB069, +0xB9EF,0xB06A,0xB06B,0xB5C7,0xB06C,0xB0D7,0xB0D9,0xB06D, +0xB06E,0xB06F,0xD4ED,0xB070,0xB5C4,0xB071,0xBDD4,0xBBCA, +0xF0A7,0xB072,0xB073,0xB8DE,0xB074,0xB075,0xF0A8,0xB076, +0xB077,0xB0A8,0xB078,0xF0A9,0xB079,0xB07A,0xCDEE,0xB07B, +0xB07C,0xF0AA,0xB07D,0xB07E,0xB080,0xB081,0xB082,0xB083, +0xB084,0xB085,0xB086,0xB087,0xF0AB,0xB088,0xB089,0xB08A, +0xB08B,0xB08C,0xB08D,0xB08E,0xB08F,0xB090,0xC6A4,0xB091, +0xB092,0xD6E5,0xF1E4,0xB093,0xF1E5,0xB094,0xB095,0xB096, +0xB097,0xB098,0xB099,0xB09A,0xB09B,0xB09C,0xB09D,0xC3F3, +0xB09E,0xB09F,0xD3DB,0xB0A0,0xB140,0xD6D1,0xC5E8,0xB141, +0xD3AF,0xB142,0xD2E6,0xB143,0xB144,0xEEC1,0xB0BB,0xD5B5, +0xD1CE,0xBCE0,0xBAD0,0xB145,0xBFF8,0xB146,0xB8C7,0xB5C1, +0xC5CC,0xB147,0xB148,0xCAA2,0xB149,0xB14A,0xB14B,0xC3CB, +0xB14C,0xB14D,0xB14E,0xB14F,0xB150,0xEEC2,0xB151,0xB152, +0xB153,0xB154,0xB155,0xB156,0xB157,0xB158,0xC4BF,0xB6A2, +0xB159,0xEDEC,0xC3A4,0xB15A,0xD6B1,0xB15B,0xB15C,0xB15D, +0xCFE0,0xEDEF,0xB15E,0xB15F,0xC5CE,0xB160,0xB6DC,0xB161, +0xB162,0xCAA1,0xB163,0xB164,0xEDED,0xB165,0xB166,0xEDF0, +0xEDF1,0xC3BC,0xB167,0xBFB4,0xB168,0xEDEE,0xB169,0xB16A, +0xB16B,0xB16C,0xB16D,0xB16E,0xB16F,0xB170,0xB171,0xB172, +0xB173,0xEDF4,0xEDF2,0xB174,0xB175,0xB176,0xB177,0xD5E6, +0xC3DF,0xB178,0xEDF3,0xB179,0xB17A,0xB17B,0xEDF6,0xB17C, +0xD5A3,0xD1A3,0xB17D,0xB17E,0xB180,0xEDF5,0xB181,0xC3D0, +0xB182,0xB183,0xB184,0xB185,0xB186,0xEDF7,0xBFF4,0xBEEC, +0xEDF8,0xB187,0xCCF7,0xB188,0xD1DB,0xB189,0xB18A,0xB18B, +0xD7C5,0xD5F6,0xB18C,0xEDFC,0xB18D,0xB18E,0xB18F,0xEDFB, +0xB190,0xB191,0xB192,0xB193,0xB194,0xB195,0xB196,0xB197, +0xEDF9,0xEDFA,0xB198,0xB199,0xB19A,0xB19B,0xB19C,0xB19D, +0xB19E,0xB19F,0xEDFD,0xBEA6,0xB1A0,0xB240,0xB241,0xB242, +0xB243,0xCBAF,0xEEA1,0xB6BD,0xB244,0xEEA2,0xC4C0,0xB245, +0xEDFE,0xB246,0xB247,0xBDDE,0xB2C7,0xB248,0xB249,0xB24A, +0xB24B,0xB24C,0xB24D,0xB24E,0xB24F,0xB250,0xB251,0xB252, +0xB253,0xB6C3,0xB254,0xB255,0xB256,0xEEA5,0xD8BA,0xEEA3, +0xEEA6,0xB257,0xB258,0xB259,0xC3E9,0xB3F2,0xB25A,0xB25B, +0xB25C,0xB25D,0xB25E,0xB25F,0xEEA7,0xEEA4,0xCFB9,0xB260, +0xB261,0xEEA8,0xC2F7,0xB262,0xB263,0xB264,0xB265,0xB266, +0xB267,0xB268,0xB269,0xB26A,0xB26B,0xB26C,0xB26D,0xEEA9, +0xEEAA,0xB26E,0xDEAB,0xB26F,0xB270,0xC6B3,0xB271,0xC7C6, +0xB272,0xD6F5,0xB5C9,0xB273,0xCBB2,0xB274,0xB275,0xB276, +0xEEAB,0xB277,0xB278,0xCDAB,0xB279,0xEEAC,0xB27A,0xB27B, +0xB27C,0xB27D,0xB27E,0xD5B0,0xB280,0xEEAD,0xB281,0xF6C4, +0xB282,0xB283,0xB284,0xB285,0xB286,0xB287,0xB288,0xB289, +0xB28A,0xB28B,0xB28C,0xB28D,0xB28E,0xDBC7,0xB28F,0xB290, +0xB291,0xB292,0xB293,0xB294,0xB295,0xB296,0xB297,0xB4A3, +0xB298,0xB299,0xB29A,0xC3AC,0xF1E6,0xB29B,0xB29C,0xB29D, +0xB29E,0xB29F,0xCAB8,0xD2D3,0xB2A0,0xD6AA,0xB340,0xEFF2, +0xB341,0xBED8,0xB342,0xBDC3,0xEFF3,0xB6CC,0xB0AB,0xB343, +0xB344,0xB345,0xB346,0xCAAF,0xB347,0xB348,0xEDB6,0xB349, +0xEDB7,0xB34A,0xB34B,0xB34C,0xB34D,0xCEF9,0xB7AF,0xBFF3, +0xEDB8,0xC2EB,0xC9B0,0xB34E,0xB34F,0xB350,0xB351,0xB352, +0xB353,0xEDB9,0xB354,0xB355,0xC6F6,0xBFB3,0xB356,0xB357, +0xB358,0xEDBC,0xC5F8,0xB359,0xD1D0,0xB35A,0xD7A9,0xEDBA, +0xEDBB,0xB35B,0xD1E2,0xB35C,0xEDBF,0xEDC0,0xB35D,0xEDC4, +0xB35E,0xB35F,0xB360,0xEDC8,0xB361,0xEDC6,0xEDCE,0xD5E8, +0xB362,0xEDC9,0xB363,0xB364,0xEDC7,0xEDBE,0xB365,0xB366, +0xC5E9,0xB367,0xB368,0xB369,0xC6C6,0xB36A,0xB36B,0xC9E9, +0xD4D2,0xEDC1,0xEDC2,0xEDC3,0xEDC5,0xB36C,0xC0F9,0xB36D, +0xB4A1,0xB36E,0xB36F,0xB370,0xB371,0xB9E8,0xB372,0xEDD0, +0xB373,0xB374,0xB375,0xB376,0xEDD1,0xB377,0xEDCA,0xB378, +0xEDCF,0xB379,0xCEF8,0xB37A,0xB37B,0xCBB6,0xEDCC,0xEDCD, +0xB37C,0xB37D,0xB37E,0xB380,0xB381,0xCFF5,0xB382,0xB383, +0xB384,0xB385,0xB386,0xB387,0xB388,0xB389,0xB38A,0xB38B, +0xB38C,0xB38D,0xEDD2,0xC1F2,0xD3B2,0xEDCB,0xC8B7,0xB38E, +0xB38F,0xB390,0xB391,0xB392,0xB393,0xB394,0xB395,0xBCEF, +0xB396,0xB397,0xB398,0xB399,0xC5F0,0xB39A,0xB39B,0xB39C, +0xB39D,0xB39E,0xB39F,0xB3A0,0xB440,0xB441,0xB442,0xEDD6, +0xB443,0xB5EF,0xB444,0xB445,0xC2B5,0xB0AD,0xCBE9,0xB446, +0xB447,0xB1AE,0xB448,0xEDD4,0xB449,0xB44A,0xB44B,0xCDEB, +0xB5E2,0xB44C,0xEDD5,0xEDD3,0xEDD7,0xB44D,0xB44E,0xB5FA, +0xB44F,0xEDD8,0xB450,0xEDD9,0xB451,0xEDDC,0xB452,0xB1CC, +0xB453,0xB454,0xB455,0xB456,0xB457,0xB458,0xB459,0xB45A, +0xC5F6,0xBCEE,0xEDDA,0xCCBC,0xB2EA,0xB45B,0xB45C,0xB45D, +0xB45E,0xEDDB,0xB45F,0xB460,0xB461,0xB462,0xC4EB,0xB463, +0xB464,0xB4C5,0xB465,0xB466,0xB467,0xB0F5,0xB468,0xB469, +0xB46A,0xEDDF,0xC0DA,0xB4E8,0xB46B,0xB46C,0xB46D,0xB46E, +0xC5CD,0xB46F,0xB470,0xB471,0xEDDD,0xBFC4,0xB472,0xB473, +0xB474,0xEDDE,0xB475,0xB476,0xB477,0xB478,0xB479,0xB47A, +0xB47B,0xB47C,0xB47D,0xB47E,0xB480,0xB481,0xB482,0xB483, +0xC4A5,0xB484,0xB485,0xB486,0xEDE0,0xB487,0xB488,0xB489, +0xB48A,0xB48B,0xEDE1,0xB48C,0xEDE3,0xB48D,0xB48E,0xC1D7, +0xB48F,0xB490,0xBBC7,0xB491,0xB492,0xB493,0xB494,0xB495, +0xB496,0xBDB8,0xB497,0xB498,0xB499,0xEDE2,0xB49A,0xB49B, +0xB49C,0xB49D,0xB49E,0xB49F,0xB4A0,0xB540,0xB541,0xB542, +0xB543,0xB544,0xB545,0xEDE4,0xB546,0xB547,0xB548,0xB549, +0xB54A,0xB54B,0xB54C,0xB54D,0xB54E,0xB54F,0xEDE6,0xB550, +0xB551,0xB552,0xB553,0xB554,0xEDE5,0xB555,0xB556,0xB557, +0xB558,0xB559,0xB55A,0xB55B,0xB55C,0xB55D,0xB55E,0xB55F, +0xB560,0xB561,0xB562,0xB563,0xEDE7,0xB564,0xB565,0xB566, +0xB567,0xB568,0xCABE,0xECEA,0xC0F1,0xB569,0xC9E7,0xB56A, +0xECEB,0xC6EE,0xB56B,0xB56C,0xB56D,0xB56E,0xECEC,0xB56F, +0xC6ED,0xECED,0xB570,0xB571,0xB572,0xB573,0xB574,0xB575, +0xB576,0xB577,0xB578,0xECF0,0xB579,0xB57A,0xD7E6,0xECF3, +0xB57B,0xB57C,0xECF1,0xECEE,0xECEF,0xD7A3,0xC9F1,0xCBEE, +0xECF4,0xB57D,0xECF2,0xB57E,0xB580,0xCFE9,0xB581,0xECF6, +0xC6B1,0xB582,0xB583,0xB584,0xB585,0xBCC0,0xB586,0xECF5, +0xB587,0xB588,0xB589,0xB58A,0xB58B,0xB58C,0xB58D,0xB5BB, +0xBBF6,0xB58E,0xECF7,0xB58F,0xB590,0xB591,0xB592,0xB593, +0xD9F7,0xBDFB,0xB594,0xB595,0xC2BB,0xECF8,0xB596,0xB597, +0xB598,0xB599,0xECF9,0xB59A,0xB59B,0xB59C,0xB59D,0xB8A3, +0xB59E,0xB59F,0xB5A0,0xB640,0xB641,0xB642,0xB643,0xB644, +0xB645,0xB646,0xECFA,0xB647,0xB648,0xB649,0xB64A,0xB64B, +0xB64C,0xB64D,0xB64E,0xB64F,0xB650,0xB651,0xB652,0xECFB, +0xB653,0xB654,0xB655,0xB656,0xB657,0xB658,0xB659,0xB65A, +0xB65B,0xB65C,0xB65D,0xECFC,0xB65E,0xB65F,0xB660,0xB661, +0xB662,0xD3ED,0xD8AE,0xC0EB,0xB663,0xC7DD,0xBACC,0xB664, +0xD0E3,0xCBBD,0xB665,0xCDBA,0xB666,0xB667,0xB8D1,0xB668, +0xB669,0xB1FC,0xB66A,0xC7EF,0xB66B,0xD6D6,0xB66C,0xB66D, +0xB66E,0xBFC6,0xC3EB,0xB66F,0xB670,0xEFF5,0xB671,0xB672, +0xC3D8,0xB673,0xB674,0xB675,0xB676,0xB677,0xB678,0xD7E2, +0xB679,0xB67A,0xB67B,0xEFF7,0xB3D3,0xB67C,0xC7D8,0xD1ED, +0xB67D,0xD6C8,0xB67E,0xEFF8,0xB680,0xEFF6,0xB681,0xBBFD, +0xB3C6,0xB682,0xB683,0xB684,0xB685,0xB686,0xB687,0xB688, +0xBDD5,0xB689,0xB68A,0xD2C6,0xB68B,0xBBE0,0xB68C,0xB68D, +0xCFA1,0xB68E,0xEFFC,0xEFFB,0xB68F,0xB690,0xEFF9,0xB691, +0xB692,0xB693,0xB694,0xB3CC,0xB695,0xC9D4,0xCBB0,0xB696, +0xB697,0xB698,0xB699,0xB69A,0xEFFE,0xB69B,0xB69C,0xB0DE, +0xB69D,0xB69E,0xD6C9,0xB69F,0xB6A0,0xB740,0xEFFD,0xB741, +0xB3ED,0xB742,0xB743,0xF6D5,0xB744,0xB745,0xB746,0xB747, +0xB748,0xB749,0xB74A,0xB74B,0xB74C,0xB74D,0xB74E,0xB74F, +0xB750,0xB751,0xB752,0xCEC8,0xB753,0xB754,0xB755,0xF0A2, +0xB756,0xF0A1,0xB757,0xB5BE,0xBCDA,0xBBFC,0xB758,0xB8E5, +0xB759,0xB75A,0xB75B,0xB75C,0xB75D,0xB75E,0xC4C2,0xB75F, +0xB760,0xB761,0xB762,0xB763,0xB764,0xB765,0xB766,0xB767, +0xB768,0xF0A3,0xB769,0xB76A,0xB76B,0xB76C,0xB76D,0xCBEB, +0xB76E,0xB76F,0xB770,0xB771,0xB772,0xB773,0xB774,0xB775, +0xB776,0xB777,0xB778,0xB779,0xB77A,0xB77B,0xB77C,0xB77D, +0xB77E,0xB780,0xB781,0xB782,0xB783,0xB784,0xB785,0xB786, +0xF0A6,0xB787,0xB788,0xB789,0xD1A8,0xB78A,0xBEBF,0xC7EE, +0xF1B6,0xF1B7,0xBFD5,0xB78B,0xB78C,0xB78D,0xB78E,0xB4A9, +0xF1B8,0xCDBB,0xB78F,0xC7D4,0xD5AD,0xB790,0xF1B9,0xB791, +0xF1BA,0xB792,0xB793,0xB794,0xB795,0xC7CF,0xB796,0xB797, +0xB798,0xD2A4,0xD6CF,0xB799,0xB79A,0xF1BB,0xBDD1,0xB4B0, +0xBEBD,0xB79B,0xB79C,0xB79D,0xB4DC,0xCED1,0xB79E,0xBFDF, +0xF1BD,0xB79F,0xB7A0,0xB840,0xB841,0xBFFA,0xF1BC,0xB842, +0xF1BF,0xB843,0xB844,0xB845,0xF1BE,0xF1C0,0xB846,0xB847, +0xB848,0xB849,0xB84A,0xF1C1,0xB84B,0xB84C,0xB84D,0xB84E, +0xB84F,0xB850,0xB851,0xB852,0xB853,0xB854,0xB855,0xC1FE, +0xB856,0xB857,0xB858,0xB859,0xB85A,0xB85B,0xB85C,0xB85D, +0xB85E,0xB85F,0xB860,0xC1A2,0xB861,0xB862,0xB863,0xB864, +0xB865,0xB866,0xB867,0xB868,0xB869,0xB86A,0xCAFA,0xB86B, +0xB86C,0xD5BE,0xB86D,0xB86E,0xB86F,0xB870,0xBEBA,0xBEB9, +0xD5C2,0xB871,0xB872,0xBFA2,0xB873,0xCDAF,0xF1B5,0xB874, +0xB875,0xB876,0xB877,0xB878,0xB879,0xBDDF,0xB87A,0xB6CB, +0xB87B,0xB87C,0xB87D,0xB87E,0xB880,0xB881,0xB882,0xB883, +0xB884,0xD6F1,0xF3C3,0xB885,0xB886,0xF3C4,0xB887,0xB8CD, +0xB888,0xB889,0xB88A,0xF3C6,0xF3C7,0xB88B,0xB0CA,0xB88C, +0xF3C5,0xB88D,0xF3C9,0xCBF1,0xB88E,0xB88F,0xB890,0xF3CB, +0xB891,0xD0A6,0xB892,0xB893,0xB1CA,0xF3C8,0xB894,0xB895, +0xB896,0xF3CF,0xB897,0xB5D1,0xB898,0xB899,0xF3D7,0xB89A, +0xF3D2,0xB89B,0xB89C,0xB89D,0xF3D4,0xF3D3,0xB7FB,0xB89E, +0xB1BF,0xB89F,0xF3CE,0xF3CA,0xB5DA,0xB8A0,0xF3D0,0xB940, +0xB941,0xF3D1,0xB942,0xF3D5,0xB943,0xB944,0xB945,0xB946, +0xF3CD,0xB947,0xBCE3,0xB948,0xC1FD,0xB949,0xF3D6,0xB94A, +0xB94B,0xB94C,0xB94D,0xB94E,0xB94F,0xF3DA,0xB950,0xF3CC, +0xB951,0xB5C8,0xB952,0xBDEE,0xF3DC,0xB953,0xB954,0xB7A4, +0xBFF0,0xD6FE,0xCDB2,0xB955,0xB4F0,0xB956,0xB2DF,0xB957, +0xF3D8,0xB958,0xF3D9,0xC9B8,0xB959,0xF3DD,0xB95A,0xB95B, +0xF3DE,0xB95C,0xF3E1,0xB95D,0xB95E,0xB95F,0xB960,0xB961, +0xB962,0xB963,0xB964,0xB965,0xB966,0xB967,0xF3DF,0xB968, +0xB969,0xF3E3,0xF3E2,0xB96A,0xB96B,0xF3DB,0xB96C,0xBFEA, +0xB96D,0xB3EF,0xB96E,0xF3E0,0xB96F,0xB970,0xC7A9,0xB971, +0xBCF2,0xB972,0xB973,0xB974,0xB975,0xF3EB,0xB976,0xB977, +0xB978,0xB979,0xB97A,0xB97B,0xB97C,0xB9BF,0xB97D,0xB97E, +0xF3E4,0xB980,0xB981,0xB982,0xB2AD,0xBBFE,0xB983,0xCBE3, +0xB984,0xB985,0xB986,0xB987,0xF3ED,0xF3E9,0xB988,0xB989, +0xB98A,0xB9DC,0xF3EE,0xB98B,0xB98C,0xB98D,0xF3E5,0xF3E6, +0xF3EA,0xC2E1,0xF3EC,0xF3EF,0xF3E8,0xBCFD,0xB98E,0xB98F, +0xB990,0xCFE4,0xB991,0xB992,0xF3F0,0xB993,0xB994,0xB995, +0xF3E7,0xB996,0xB997,0xB998,0xB999,0xB99A,0xB99B,0xB99C, +0xB99D,0xF3F2,0xB99E,0xB99F,0xB9A0,0xBA40,0xD7AD,0xC6AA, +0xBA41,0xBA42,0xBA43,0xBA44,0xF3F3,0xBA45,0xBA46,0xBA47, +0xBA48,0xF3F1,0xBA49,0xC2A8,0xBA4A,0xBA4B,0xBA4C,0xBA4D, +0xBA4E,0xB8DD,0xF3F5,0xBA4F,0xBA50,0xF3F4,0xBA51,0xBA52, +0xBA53,0xB4DB,0xBA54,0xBA55,0xBA56,0xF3F6,0xF3F7,0xBA57, +0xBA58,0xBA59,0xF3F8,0xBA5A,0xBA5B,0xBA5C,0xC0BA,0xBA5D, +0xBA5E,0xC0E9,0xBA5F,0xBA60,0xBA61,0xBA62,0xBA63,0xC5F1, +0xBA64,0xBA65,0xBA66,0xBA67,0xF3FB,0xBA68,0xF3FA,0xBA69, +0xBA6A,0xBA6B,0xBA6C,0xBA6D,0xBA6E,0xBA6F,0xBA70,0xB4D8, +0xBA71,0xBA72,0xBA73,0xF3FE,0xF3F9,0xBA74,0xBA75,0xF3FC, +0xBA76,0xBA77,0xBA78,0xBA79,0xBA7A,0xBA7B,0xF3FD,0xBA7C, +0xBA7D,0xBA7E,0xBA80,0xBA81,0xBA82,0xBA83,0xBA84,0xF4A1, +0xBA85,0xBA86,0xBA87,0xBA88,0xBA89,0xBA8A,0xF4A3,0xBBC9, +0xBA8B,0xBA8C,0xF4A2,0xBA8D,0xBA8E,0xBA8F,0xBA90,0xBA91, +0xBA92,0xBA93,0xBA94,0xBA95,0xBA96,0xBA97,0xBA98,0xBA99, +0xF4A4,0xBA9A,0xBA9B,0xBA9C,0xBA9D,0xBA9E,0xBA9F,0xB2BE, +0xF4A6,0xF4A5,0xBAA0,0xBB40,0xBB41,0xBB42,0xBB43,0xBB44, +0xBB45,0xBB46,0xBB47,0xBB48,0xBB49,0xBCAE,0xBB4A,0xBB4B, +0xBB4C,0xBB4D,0xBB4E,0xBB4F,0xBB50,0xBB51,0xBB52,0xBB53, +0xBB54,0xBB55,0xBB56,0xBB57,0xBB58,0xBB59,0xBB5A,0xBB5B, +0xBB5C,0xBB5D,0xBB5E,0xBB5F,0xBB60,0xBB61,0xBB62,0xBB63, +0xBB64,0xBB65,0xBB66,0xBB67,0xBB68,0xBB69,0xBB6A,0xBB6B, +0xBB6C,0xBB6D,0xBB6E,0xC3D7,0xD9E1,0xBB6F,0xBB70,0xBB71, +0xBB72,0xBB73,0xBB74,0xC0E0,0xF4CC,0xD7D1,0xBB75,0xBB76, +0xBB77,0xBB78,0xBB79,0xBB7A,0xBB7B,0xBB7C,0xBB7D,0xBB7E, +0xBB80,0xB7DB,0xBB81,0xBB82,0xBB83,0xBB84,0xBB85,0xBB86, +0xBB87,0xF4CE,0xC1A3,0xBB88,0xBB89,0xC6C9,0xBB8A,0xB4D6, +0xD5B3,0xBB8B,0xBB8C,0xBB8D,0xF4D0,0xF4CF,0xF4D1,0xCBDA, +0xBB8E,0xBB8F,0xF4D2,0xBB90,0xD4C1,0xD6E0,0xBB91,0xBB92, +0xBB93,0xBB94,0xB7E0,0xBB95,0xBB96,0xBB97,0xC1B8,0xBB98, +0xBB99,0xC1BB,0xF4D3,0xBEAC,0xBB9A,0xBB9B,0xBB9C,0xBB9D, +0xBB9E,0xB4E2,0xBB9F,0xBBA0,0xF4D4,0xF4D5,0xBEAB,0xBC40, +0xBC41,0xF4D6,0xBC42,0xBC43,0xBC44,0xF4DB,0xBC45,0xF4D7, +0xF4DA,0xBC46,0xBAFD,0xBC47,0xF4D8,0xF4D9,0xBC48,0xBC49, +0xBC4A,0xBC4B,0xBC4C,0xBC4D,0xBC4E,0xB8E2,0xCCC7,0xF4DC, +0xBC4F,0xB2DA,0xBC50,0xBC51,0xC3D3,0xBC52,0xBC53,0xD4E3, +0xBFB7,0xBC54,0xBC55,0xBC56,0xBC57,0xBC58,0xBC59,0xBC5A, +0xF4DD,0xBC5B,0xBC5C,0xBC5D,0xBC5E,0xBC5F,0xBC60,0xC5B4, +0xBC61,0xBC62,0xBC63,0xBC64,0xBC65,0xBC66,0xBC67,0xBC68, +0xF4E9,0xBC69,0xBC6A,0xCFB5,0xBC6B,0xBC6C,0xBC6D,0xBC6E, +0xBC6F,0xBC70,0xBC71,0xBC72,0xBC73,0xBC74,0xBC75,0xBC76, +0xBC77,0xBC78,0xCEC9,0xBC79,0xBC7A,0xBC7B,0xBC7C,0xBC7D, +0xBC7E,0xBC80,0xBC81,0xBC82,0xBC83,0xBC84,0xBC85,0xBC86, +0xBC87,0xBC88,0xBC89,0xBC8A,0xBC8B,0xBC8C,0xBC8D,0xBC8E, +0xCBD8,0xBC8F,0xCBF7,0xBC90,0xBC91,0xBC92,0xBC93,0xBDF4, +0xBC94,0xBC95,0xBC96,0xD7CF,0xBC97,0xBC98,0xBC99,0xC0DB, +0xBC9A,0xBC9B,0xBC9C,0xBC9D,0xBC9E,0xBC9F,0xBCA0,0xBD40, +0xBD41,0xBD42,0xBD43,0xBD44,0xBD45,0xBD46,0xBD47,0xBD48, +0xBD49,0xBD4A,0xBD4B,0xBD4C,0xBD4D,0xBD4E,0xBD4F,0xBD50, +0xBD51,0xBD52,0xBD53,0xBD54,0xBD55,0xBD56,0xBD57,0xBD58, +0xBD59,0xBD5A,0xBD5B,0xBD5C,0xBD5D,0xBD5E,0xBD5F,0xBD60, +0xBD61,0xBD62,0xBD63,0xBD64,0xBD65,0xBD66,0xBD67,0xBD68, +0xBD69,0xBD6A,0xBD6B,0xBD6C,0xBD6D,0xBD6E,0xBD6F,0xBD70, +0xBD71,0xBD72,0xBD73,0xBD74,0xBD75,0xBD76,0xD0F5,0xBD77, +0xBD78,0xBD79,0xBD7A,0xBD7B,0xBD7C,0xBD7D,0xBD7E,0xF4EA, +0xBD80,0xBD81,0xBD82,0xBD83,0xBD84,0xBD85,0xBD86,0xBD87, +0xBD88,0xBD89,0xBD8A,0xBD8B,0xBD8C,0xBD8D,0xBD8E,0xBD8F, +0xBD90,0xBD91,0xBD92,0xBD93,0xBD94,0xBD95,0xBD96,0xBD97, +0xBD98,0xBD99,0xBD9A,0xBD9B,0xBD9C,0xBD9D,0xBD9E,0xBD9F, +0xBDA0,0xBE40,0xBE41,0xBE42,0xBE43,0xBE44,0xBE45,0xBE46, +0xBE47,0xBE48,0xBE49,0xBE4A,0xBE4B,0xBE4C,0xF4EB,0xBE4D, +0xBE4E,0xBE4F,0xBE50,0xBE51,0xBE52,0xBE53,0xF4EC,0xBE54, +0xBE55,0xBE56,0xBE57,0xBE58,0xBE59,0xBE5A,0xBE5B,0xBE5C, +0xBE5D,0xBE5E,0xBE5F,0xBE60,0xBE61,0xBE62,0xBE63,0xBE64, +0xBE65,0xBE66,0xBE67,0xBE68,0xBE69,0xBE6A,0xBE6B,0xBE6C, +0xBE6D,0xBE6E,0xBE6F,0xBE70,0xBE71,0xBE72,0xBE73,0xBE74, +0xBE75,0xBE76,0xBE77,0xBE78,0xBE79,0xBE7A,0xBE7B,0xBE7C, +0xBE7D,0xBE7E,0xBE80,0xBE81,0xBE82,0xBE83,0xBE84,0xBE85, +0xBE86,0xBE87,0xBE88,0xBE89,0xBE8A,0xBE8B,0xBE8C,0xBE8D, +0xBE8E,0xBE8F,0xBE90,0xBE91,0xBE92,0xBE93,0xBE94,0xBE95, +0xBE96,0xBE97,0xBE98,0xBE99,0xBE9A,0xBE9B,0xBE9C,0xBE9D, +0xBE9E,0xBE9F,0xBEA0,0xBF40,0xBF41,0xBF42,0xBF43,0xBF44, +0xBF45,0xBF46,0xBF47,0xBF48,0xBF49,0xBF4A,0xBF4B,0xBF4C, +0xBF4D,0xBF4E,0xBF4F,0xBF50,0xBF51,0xBF52,0xBF53,0xBF54, +0xBF55,0xBF56,0xBF57,0xBF58,0xBF59,0xBF5A,0xBF5B,0xBF5C, +0xBF5D,0xBF5E,0xBF5F,0xBF60,0xBF61,0xBF62,0xBF63,0xBF64, +0xBF65,0xBF66,0xBF67,0xBF68,0xBF69,0xBF6A,0xBF6B,0xBF6C, +0xBF6D,0xBF6E,0xBF6F,0xBF70,0xBF71,0xBF72,0xBF73,0xBF74, +0xBF75,0xBF76,0xBF77,0xBF78,0xBF79,0xBF7A,0xBF7B,0xBF7C, +0xBF7D,0xBF7E,0xBF80,0xF7E3,0xBF81,0xBF82,0xBF83,0xBF84, +0xBF85,0xB7B1,0xBF86,0xBF87,0xBF88,0xBF89,0xBF8A,0xF4ED, +0xBF8B,0xBF8C,0xBF8D,0xBF8E,0xBF8F,0xBF90,0xBF91,0xBF92, +0xBF93,0xBF94,0xBF95,0xBF96,0xBF97,0xBF98,0xBF99,0xBF9A, +0xBF9B,0xBF9C,0xBF9D,0xBF9E,0xBF9F,0xBFA0,0xC040,0xC041, +0xC042,0xC043,0xC044,0xC045,0xC046,0xC047,0xC048,0xC049, +0xC04A,0xC04B,0xC04C,0xC04D,0xC04E,0xC04F,0xC050,0xC051, +0xC052,0xC053,0xC054,0xC055,0xC056,0xC057,0xC058,0xC059, +0xC05A,0xC05B,0xC05C,0xC05D,0xC05E,0xC05F,0xC060,0xC061, +0xC062,0xC063,0xD7EB,0xC064,0xC065,0xC066,0xC067,0xC068, +0xC069,0xC06A,0xC06B,0xC06C,0xC06D,0xC06E,0xC06F,0xC070, +0xC071,0xC072,0xC073,0xC074,0xC075,0xC076,0xC077,0xC078, +0xC079,0xC07A,0xC07B,0xF4EE,0xC07C,0xC07D,0xC07E,0xE6F9, +0xBEC0,0xE6FA,0xBAEC,0xE6FB,0xCFCB,0xE6FC,0xD4BC,0xBCB6, +0xE6FD,0xE6FE,0xBCCD,0xC8D2,0xCEB3,0xE7A1,0xC080,0xB4BF, +0xE7A2,0xC9B4,0xB8D9,0xC4C9,0xC081,0xD7DD,0xC2DA,0xB7D7, +0xD6BD,0xCEC6,0xB7C4,0xC082,0xC083,0xC5A6,0xE7A3,0xCFDF, +0xE7A4,0xE7A5,0xE7A6,0xC1B7,0xD7E9,0xC9F0,0xCFB8,0xD6AF, +0xD6D5,0xE7A7,0xB0ED,0xE7A8,0xE7A9,0xC9DC,0xD2EF,0xBEAD, +0xE7AA,0xB0F3,0xC8DE,0xBDE1,0xE7AB,0xC8C6,0xC084,0xE7AC, +0xBBE6,0xB8F8,0xD1A4,0xE7AD,0xC2E7,0xBEF8,0xBDCA,0xCDB3, +0xE7AE,0xE7AF,0xBEEE,0xD0E5,0xC085,0xCBE7,0xCCD0,0xBCCC, +0xE7B0,0xBCA8,0xD0F7,0xE7B1,0xC086,0xD0F8,0xE7B2,0xE7B3, +0xB4C2,0xE7B4,0xE7B5,0xC9FE,0xCEAC,0xC3E0,0xE7B7,0xB1C1, +0xB3F1,0xC087,0xE7B8,0xE7B9,0xD7DB,0xD5C0,0xE7BA,0xC2CC, +0xD7BA,0xE7BB,0xE7BC,0xE7BD,0xBCEA,0xC3E5,0xC0C2,0xE7BE, +0xE7BF,0xBCA9,0xC088,0xE7C0,0xE7C1,0xE7B6,0xB6D0,0xE7C2, +0xC089,0xE7C3,0xE7C4,0xBBBA,0xB5DE,0xC2C6,0xB1E0,0xE7C5, +0xD4B5,0xE7C6,0xB8BF,0xE7C8,0xE7C7,0xB7EC,0xC08A,0xE7C9, +0xB2F8,0xE7CA,0xE7CB,0xE7CC,0xE7CD,0xE7CE,0xE7CF,0xE7D0, +0xD3A7,0xCBF5,0xE7D1,0xE7D2,0xE7D3,0xE7D4,0xC9C9,0xE7D5, +0xE7D6,0xE7D7,0xE7D8,0xE7D9,0xBDC9,0xE7DA,0xF3BE,0xC08B, +0xB8D7,0xC08C,0xC8B1,0xC08D,0xC08E,0xC08F,0xC090,0xC091, +0xC092,0xC093,0xF3BF,0xC094,0xF3C0,0xF3C1,0xC095,0xC096, +0xC097,0xC098,0xC099,0xC09A,0xC09B,0xC09C,0xC09D,0xC09E, +0xB9DE,0xCDF8,0xC09F,0xC0A0,0xD8E8,0xBAB1,0xC140,0xC2DE, +0xEEB7,0xC141,0xB7A3,0xC142,0xC143,0xC144,0xC145,0xEEB9, +0xC146,0xEEB8,0xB0D5,0xC147,0xC148,0xC149,0xC14A,0xC14B, +0xEEBB,0xD5D6,0xD7EF,0xC14C,0xC14D,0xC14E,0xD6C3,0xC14F, +0xC150,0xEEBD,0xCAF0,0xC151,0xEEBC,0xC152,0xC153,0xC154, +0xC155,0xEEBE,0xC156,0xC157,0xC158,0xC159,0xEEC0,0xC15A, +0xC15B,0xEEBF,0xC15C,0xC15D,0xC15E,0xC15F,0xC160,0xC161, +0xC162,0xC163,0xD1F2,0xC164,0xC7BC,0xC165,0xC3C0,0xC166, +0xC167,0xC168,0xC169,0xC16A,0xB8E1,0xC16B,0xC16C,0xC16D, +0xC16E,0xC16F,0xC1E7,0xC170,0xC171,0xF4C6,0xD0DF,0xF4C7, +0xC172,0xCFDB,0xC173,0xC174,0xC8BA,0xC175,0xC176,0xF4C8, +0xC177,0xC178,0xC179,0xC17A,0xC17B,0xC17C,0xC17D,0xF4C9, +0xF4CA,0xC17E,0xF4CB,0xC180,0xC181,0xC182,0xC183,0xC184, +0xD9FA,0xB8FE,0xC185,0xC186,0xE5F1,0xD3F0,0xC187,0xF4E0, +0xC188,0xCECC,0xC189,0xC18A,0xC18B,0xB3E1,0xC18C,0xC18D, +0xC18E,0xC18F,0xF1B4,0xC190,0xD2EE,0xC191,0xF4E1,0xC192, +0xC193,0xC194,0xC195,0xC196,0xCFE8,0xF4E2,0xC197,0xC198, +0xC7CC,0xC199,0xC19A,0xC19B,0xC19C,0xC19D,0xC19E,0xB5D4, +0xB4E4,0xF4E4,0xC19F,0xC1A0,0xC240,0xF4E3,0xF4E5,0xC241, +0xC242,0xF4E6,0xC243,0xC244,0xC245,0xC246,0xF4E7,0xC247, +0xBAB2,0xB0BF,0xC248,0xF4E8,0xC249,0xC24A,0xC24B,0xC24C, +0xC24D,0xC24E,0xC24F,0xB7AD,0xD2ED,0xC250,0xC251,0xC252, +0xD2AB,0xC0CF,0xC253,0xBFBC,0xEBA3,0xD5DF,0xEAC8,0xC254, +0xC255,0xC256,0xC257,0xF1F3,0xB6F8,0xCBA3,0xC258,0xC259, +0xC4CD,0xC25A,0xF1E7,0xC25B,0xF1E8,0xB8FB,0xF1E9,0xBAC4, +0xD4C5,0xB0D2,0xC25C,0xC25D,0xF1EA,0xC25E,0xC25F,0xC260, +0xF1EB,0xC261,0xF1EC,0xC262,0xC263,0xF1ED,0xF1EE,0xF1EF, +0xF1F1,0xF1F0,0xC5D5,0xC264,0xC265,0xC266,0xC267,0xC268, +0xC269,0xF1F2,0xC26A,0xB6FA,0xC26B,0xF1F4,0xD2AE,0xDEC7, +0xCBCA,0xC26C,0xC26D,0xB3DC,0xC26E,0xB5A2,0xC26F,0xB9A2, +0xC270,0xC271,0xC4F4,0xF1F5,0xC272,0xC273,0xF1F6,0xC274, +0xC275,0xC276,0xC1C4,0xC1FB,0xD6B0,0xF1F7,0xC277,0xC278, +0xC279,0xC27A,0xF1F8,0xC27B,0xC1AA,0xC27C,0xC27D,0xC27E, +0xC6B8,0xC280,0xBEDB,0xC281,0xC282,0xC283,0xC284,0xC285, +0xC286,0xC287,0xC288,0xC289,0xC28A,0xC28B,0xC28C,0xC28D, +0xC28E,0xF1F9,0xB4CF,0xC28F,0xC290,0xC291,0xC292,0xC293, +0xC294,0xF1FA,0xC295,0xC296,0xC297,0xC298,0xC299,0xC29A, +0xC29B,0xC29C,0xC29D,0xC29E,0xC29F,0xC2A0,0xC340,0xEDB2, +0xEDB1,0xC341,0xC342,0xCBE0,0xD2DE,0xC343,0xCBC1,0xD5D8, +0xC344,0xC8E2,0xC345,0xC0DF,0xBCA1,0xC346,0xC347,0xC348, +0xC349,0xC34A,0xC34B,0xEBC1,0xC34C,0xC34D,0xD0A4,0xC34E, +0xD6E2,0xC34F,0xB6C7,0xB8D8,0xEBC0,0xB8CE,0xC350,0xEBBF, +0xB3A6,0xB9C9,0xD6AB,0xC351,0xB7F4,0xB7CA,0xC352,0xC353, +0xC354,0xBCE7,0xB7BE,0xEBC6,0xC355,0xEBC7,0xB0B9,0xBFCF, +0xC356,0xEBC5,0xD3FD,0xC357,0xEBC8,0xC358,0xC359,0xEBC9, +0xC35A,0xC35B,0xB7CE,0xC35C,0xEBC2,0xEBC4,0xC9F6,0xD6D7, +0xD5CD,0xD0B2,0xEBCF,0xCEB8,0xEBD0,0xC35D,0xB5A8,0xC35E, +0xC35F,0xC360,0xC361,0xC362,0xB1B3,0xEBD2,0xCCA5,0xC363, +0xC364,0xC365,0xC366,0xC367,0xC368,0xC369,0xC5D6,0xEBD3, +0xC36A,0xEBD1,0xC5DF,0xEBCE,0xCAA4,0xEBD5,0xB0FB,0xC36B, +0xC36C,0xBAFA,0xC36D,0xC36E,0xD8B7,0xF1E3,0xC36F,0xEBCA, +0xEBCB,0xEBCC,0xEBCD,0xEBD6,0xE6C0,0xEBD9,0xC370,0xBFE8, +0xD2C8,0xEBD7,0xEBDC,0xB8EC,0xEBD8,0xC371,0xBDBA,0xC372, +0xD0D8,0xC373,0xB0B7,0xC374,0xEBDD,0xC4DC,0xC375,0xC376, +0xC377,0xC378,0xD6AC,0xC379,0xC37A,0xC37B,0xB4E0,0xC37C, +0xC37D,0xC2F6,0xBCB9,0xC37E,0xC380,0xEBDA,0xEBDB,0xD4E0, +0xC6EA,0xC4D4,0xEBDF,0xC5A7,0xD9F5,0xC381,0xB2B1,0xC382, +0xEBE4,0xC383,0xBDC5,0xC384,0xC385,0xC386,0xEBE2,0xC387, +0xC388,0xC389,0xC38A,0xC38B,0xC38C,0xC38D,0xC38E,0xC38F, +0xC390,0xC391,0xC392,0xC393,0xEBE3,0xC394,0xC395,0xB8AC, +0xC396,0xCDD1,0xEBE5,0xC397,0xC398,0xC399,0xEBE1,0xC39A, +0xC1B3,0xC39B,0xC39C,0xC39D,0xC39E,0xC39F,0xC6A2,0xC3A0, +0xC440,0xC441,0xC442,0xC443,0xC444,0xC445,0xCCF3,0xC446, +0xEBE6,0xC447,0xC0B0,0xD2B8,0xEBE7,0xC448,0xC449,0xC44A, +0xB8AF,0xB8AD,0xC44B,0xEBE8,0xC7BB,0xCDF3,0xC44C,0xC44D, +0xC44E,0xEBEA,0xEBEB,0xC44F,0xC450,0xC451,0xC452,0xC453, +0xEBED,0xC454,0xC455,0xC456,0xC457,0xD0C8,0xC458,0xEBF2, +0xC459,0xEBEE,0xC45A,0xC45B,0xC45C,0xEBF1,0xC8F9,0xC45D, +0xD1FC,0xEBEC,0xC45E,0xC45F,0xEBE9,0xC460,0xC461,0xC462, +0xC463,0xB8B9,0xCFD9,0xC4E5,0xEBEF,0xEBF0,0xCCDA,0xCDC8, +0xB0F2,0xC464,0xEBF6,0xC465,0xC466,0xC467,0xC468,0xC469, +0xEBF5,0xC46A,0xB2B2,0xC46B,0xC46C,0xC46D,0xC46E,0xB8E0, +0xC46F,0xEBF7,0xC470,0xC471,0xC472,0xC473,0xC474,0xC475, +0xB1EC,0xC476,0xC477,0xCCC5,0xC4A4,0xCFA5,0xC478,0xC479, +0xC47A,0xC47B,0xC47C,0xEBF9,0xC47D,0xC47E,0xECA2,0xC480, +0xC5F2,0xC481,0xEBFA,0xC482,0xC483,0xC484,0xC485,0xC486, +0xC487,0xC488,0xC489,0xC9C5,0xC48A,0xC48B,0xC48C,0xC48D, +0xC48E,0xC48F,0xE2DF,0xEBFE,0xC490,0xC491,0xC492,0xC493, +0xCDCE,0xECA1,0xB1DB,0xD3B7,0xC494,0xC495,0xD2DC,0xC496, +0xC497,0xC498,0xEBFD,0xC499,0xEBFB,0xC49A,0xC49B,0xC49C, +0xC49D,0xC49E,0xC49F,0xC4A0,0xC540,0xC541,0xC542,0xC543, +0xC544,0xC545,0xC546,0xC547,0xC548,0xC549,0xC54A,0xC54B, +0xC54C,0xC54D,0xC54E,0xB3BC,0xC54F,0xC550,0xC551,0xEAB0, +0xC552,0xC553,0xD7D4,0xC554,0xF4AB,0xB3F4,0xC555,0xC556, +0xC557,0xC558,0xC559,0xD6C1,0xD6C2,0xC55A,0xC55B,0xC55C, +0xC55D,0xC55E,0xC55F,0xD5E9,0xBECA,0xC560,0xF4A7,0xC561, +0xD2A8,0xF4A8,0xF4A9,0xC562,0xF4AA,0xBECB,0xD3DF,0xC563, +0xC564,0xC565,0xC566,0xC567,0xC9E0,0xC9E1,0xC568,0xC569, +0xF3C2,0xC56A,0xCAE6,0xC56B,0xCCF2,0xC56C,0xC56D,0xC56E, +0xC56F,0xC570,0xC571,0xE2B6,0xCBB4,0xC572,0xCEE8,0xD6DB, +0xC573,0xF4AD,0xF4AE,0xF4AF,0xC574,0xC575,0xC576,0xC577, +0xF4B2,0xC578,0xBABD,0xF4B3,0xB0E3,0xF4B0,0xC579,0xF4B1, +0xBDA2,0xB2D5,0xC57A,0xF4B6,0xF4B7,0xB6E6,0xB2B0,0xCFCF, +0xF4B4,0xB4AC,0xC57B,0xF4B5,0xC57C,0xC57D,0xF4B8,0xC57E, +0xC580,0xC581,0xC582,0xC583,0xF4B9,0xC584,0xC585,0xCDA7, +0xC586,0xF4BA,0xC587,0xF4BB,0xC588,0xC589,0xC58A,0xF4BC, +0xC58B,0xC58C,0xC58D,0xC58E,0xC58F,0xC590,0xC591,0xC592, +0xCBD2,0xC593,0xF4BD,0xC594,0xC595,0xC596,0xC597,0xF4BE, +0xC598,0xC599,0xC59A,0xC59B,0xC59C,0xC59D,0xC59E,0xC59F, +0xF4BF,0xC5A0,0xC640,0xC641,0xC642,0xC643,0xF4DE,0xC1BC, +0xBCE8,0xC644,0xC9AB,0xD1DE,0xE5F5,0xC645,0xC646,0xC647, +0xC648,0xDCB3,0xD2D5,0xC649,0xC64A,0xDCB4,0xB0AC,0xDCB5, +0xC64B,0xC64C,0xBDDA,0xC64D,0xDCB9,0xC64E,0xC64F,0xC650, +0xD8C2,0xC651,0xDCB7,0xD3F3,0xC652,0xC9D6,0xDCBA,0xDCB6, +0xC653,0xDCBB,0xC3A2,0xC654,0xC655,0xC656,0xC657,0xDCBC, +0xDCC5,0xDCBD,0xC658,0xC659,0xCEDF,0xD6A5,0xC65A,0xDCCF, +0xC65B,0xDCCD,0xC65C,0xC65D,0xDCD2,0xBDE6,0xC2AB,0xC65E, +0xDCB8,0xDCCB,0xDCCE,0xDCBE,0xB7D2,0xB0C5,0xDCC7,0xD0BE, +0xDCC1,0xBBA8,0xC65F,0xB7BC,0xDCCC,0xC660,0xC661,0xDCC6, +0xDCBF,0xC7DB,0xC662,0xC663,0xC664,0xD1BF,0xDCC0,0xC665, +0xC666,0xDCCA,0xC667,0xC668,0xDCD0,0xC669,0xC66A,0xCEAD, +0xDCC2,0xC66B,0xDCC3,0xDCC8,0xDCC9,0xB2D4,0xDCD1,0xCBD5, +0xC66C,0xD4B7,0xDCDB,0xDCDF,0xCCA6,0xDCE6,0xC66D,0xC3E7, +0xDCDC,0xC66E,0xC66F,0xBFC1,0xDCD9,0xC670,0xB0FA,0xB9B6, +0xDCE5,0xDCD3,0xC671,0xDCC4,0xDCD6,0xC8F4,0xBFE0,0xC672, +0xC673,0xC674,0xC675,0xC9BB,0xC676,0xC677,0xC678,0xB1BD, +0xC679,0xD3A2,0xC67A,0xC67B,0xDCDA,0xC67C,0xC67D,0xDCD5, +0xC67E,0xC6BB,0xC680,0xDCDE,0xC681,0xC682,0xC683,0xC684, +0xC685,0xD7C2,0xC3AF,0xB7B6,0xC7D1,0xC3A9,0xDCE2,0xDCD8, +0xDCEB,0xDCD4,0xC686,0xC687,0xDCDD,0xC688,0xBEA5,0xDCD7, +0xC689,0xDCE0,0xC68A,0xC68B,0xDCE3,0xDCE4,0xC68C,0xDCF8, +0xC68D,0xC68E,0xDCE1,0xDDA2,0xDCE7,0xC68F,0xC690,0xC691, +0xC692,0xC693,0xC694,0xC695,0xC696,0xC697,0xC698,0xBCEB, +0xB4C4,0xC699,0xC69A,0xC3A3,0xB2E7,0xDCFA,0xC69B,0xDCF2, +0xC69C,0xDCEF,0xC69D,0xDCFC,0xDCEE,0xD2F0,0xB2E8,0xC69E, +0xC8D7,0xC8E3,0xDCFB,0xC69F,0xDCED,0xC6A0,0xC740,0xC741, +0xDCF7,0xC742,0xC743,0xDCF5,0xC744,0xC745,0xBEA3,0xDCF4, +0xC746,0xB2DD,0xC747,0xC748,0xC749,0xC74A,0xC74B,0xDCF3, +0xBCF6,0xDCE8,0xBBC4,0xC74C,0xC0F3,0xC74D,0xC74E,0xC74F, +0xC750,0xC751,0xBCD4,0xDCE9,0xDCEA,0xC752,0xDCF1,0xDCF6, +0xDCF9,0xB5B4,0xC753,0xC8D9,0xBBE7,0xDCFE,0xDCFD,0xD3AB, +0xDDA1,0xDDA3,0xDDA5,0xD2F1,0xDDA4,0xDDA6,0xDDA7,0xD2A9, +0xC754,0xC755,0xC756,0xC757,0xC758,0xC759,0xC75A,0xBAC9, +0xDDA9,0xC75B,0xC75C,0xDDB6,0xDDB1,0xDDB4,0xC75D,0xC75E, +0xC75F,0xC760,0xC761,0xC762,0xC763,0xDDB0,0xC6CE,0xC764, +0xC765,0xC0F2,0xC766,0xC767,0xC768,0xC769,0xC9AF,0xC76A, +0xC76B,0xC76C,0xDCEC,0xDDAE,0xC76D,0xC76E,0xC76F,0xC770, +0xDDB7,0xC771,0xC772,0xDCF0,0xDDAF,0xC773,0xDDB8,0xC774, +0xDDAC,0xC775,0xC776,0xC777,0xC778,0xC779,0xC77A,0xC77B, +0xDDB9,0xDDB3,0xDDAD,0xC4AA,0xC77C,0xC77D,0xC77E,0xC780, +0xDDA8,0xC0B3,0xC1AB,0xDDAA,0xDDAB,0xC781,0xDDB2,0xBBF1, +0xDDB5,0xD3A8,0xDDBA,0xC782,0xDDBB,0xC3A7,0xC783,0xC784, +0xDDD2,0xDDBC,0xC785,0xC786,0xC787,0xDDD1,0xC788,0xB9BD, +0xC789,0xC78A,0xBED5,0xC78B,0xBEFA,0xC78C,0xC78D,0xBACA, +0xC78E,0xC78F,0xC790,0xC791,0xDDCA,0xC792,0xDDC5,0xC793, +0xDDBF,0xC794,0xC795,0xC796,0xB2CB,0xDDC3,0xC797,0xDDCB, +0xB2A4,0xDDD5,0xC798,0xC799,0xC79A,0xDDBE,0xC79B,0xC79C, +0xC79D,0xC6D0,0xDDD0,0xC79E,0xC79F,0xC7A0,0xC840,0xC841, +0xDDD4,0xC1E2,0xB7C6,0xC842,0xC843,0xC844,0xC845,0xC846, +0xDDCE,0xDDCF,0xC847,0xC848,0xC849,0xDDC4,0xC84A,0xC84B, +0xC84C,0xDDBD,0xC84D,0xDDCD,0xCCD1,0xC84E,0xDDC9,0xC84F, +0xC850,0xC851,0xC852,0xDDC2,0xC3C8,0xC6BC,0xCEAE,0xDDCC, +0xC853,0xDDC8,0xC854,0xC855,0xC856,0xC857,0xC858,0xC859, +0xDDC1,0xC85A,0xC85B,0xC85C,0xDDC6,0xC2DC,0xC85D,0xC85E, +0xC85F,0xC860,0xC861,0xC862,0xD3A9,0xD3AA,0xDDD3,0xCFF4, +0xC8F8,0xC863,0xC864,0xC865,0xC866,0xC867,0xC868,0xC869, +0xC86A,0xDDE6,0xC86B,0xC86C,0xC86D,0xC86E,0xC86F,0xC870, +0xDDC7,0xC871,0xC872,0xC873,0xDDE0,0xC2E4,0xC874,0xC875, +0xC876,0xC877,0xC878,0xC879,0xC87A,0xC87B,0xDDE1,0xC87C, +0xC87D,0xC87E,0xC880,0xC881,0xC882,0xC883,0xC884,0xC885, +0xC886,0xDDD7,0xC887,0xC888,0xC889,0xC88A,0xC88B,0xD6F8, +0xC88C,0xDDD9,0xDDD8,0xB8F0,0xDDD6,0xC88D,0xC88E,0xC88F, +0xC890,0xC6CF,0xC891,0xB6AD,0xC892,0xC893,0xC894,0xC895, +0xC896,0xDDE2,0xC897,0xBAF9,0xD4E1,0xDDE7,0xC898,0xC899, +0xC89A,0xB4D0,0xC89B,0xDDDA,0xC89C,0xBFFB,0xDDE3,0xC89D, +0xDDDF,0xC89E,0xDDDD,0xC89F,0xC8A0,0xC940,0xC941,0xC942, +0xC943,0xC944,0xB5D9,0xC945,0xC946,0xC947,0xC948,0xDDDB, +0xDDDC,0xDDDE,0xC949,0xBDAF,0xDDE4,0xC94A,0xDDE5,0xC94B, +0xC94C,0xC94D,0xC94E,0xC94F,0xC950,0xC951,0xC952,0xDDF5, +0xC953,0xC3C9,0xC954,0xC955,0xCBE2,0xC956,0xC957,0xC958, +0xC959,0xDDF2,0xC95A,0xC95B,0xC95C,0xC95D,0xC95E,0xC95F, +0xC960,0xC961,0xC962,0xC963,0xC964,0xC965,0xC966,0xD8E1, +0xC967,0xC968,0xC6D1,0xC969,0xDDF4,0xC96A,0xC96B,0xC96C, +0xD5F4,0xDDF3,0xDDF0,0xC96D,0xC96E,0xDDEC,0xC96F,0xDDEF, +0xC970,0xDDE8,0xC971,0xC972,0xD0EE,0xC973,0xC974,0xC975, +0xC976,0xC8D8,0xDDEE,0xC977,0xC978,0xDDE9,0xC979,0xC97A, +0xDDEA,0xCBF2,0xC97B,0xDDED,0xC97C,0xC97D,0xB1CD,0xC97E, +0xC980,0xC981,0xC982,0xC983,0xC984,0xC0B6,0xC985,0xBCBB, +0xDDF1,0xC986,0xC987,0xDDF7,0xC988,0xDDF6,0xDDEB,0xC989, +0xC98A,0xC98B,0xC98C,0xC98D,0xC5EE,0xC98E,0xC98F,0xC990, +0xDDFB,0xC991,0xC992,0xC993,0xC994,0xC995,0xC996,0xC997, +0xC998,0xC999,0xC99A,0xC99B,0xDEA4,0xC99C,0xC99D,0xDEA3, +0xC99E,0xC99F,0xC9A0,0xCA40,0xCA41,0xCA42,0xCA43,0xCA44, +0xCA45,0xCA46,0xCA47,0xCA48,0xDDF8,0xCA49,0xCA4A,0xCA4B, +0xCA4C,0xC3EF,0xCA4D,0xC2FB,0xCA4E,0xCA4F,0xCA50,0xD5E1, +0xCA51,0xCA52,0xCEB5,0xCA53,0xCA54,0xCA55,0xCA56,0xDDFD, +0xCA57,0xB2CC,0xCA58,0xCA59,0xCA5A,0xCA5B,0xCA5C,0xCA5D, +0xCA5E,0xCA5F,0xCA60,0xC4E8,0xCADF,0xCA61,0xCA62,0xCA63, +0xCA64,0xCA65,0xCA66,0xCA67,0xCA68,0xCA69,0xCA6A,0xC7BE, +0xDDFA,0xDDFC,0xDDFE,0xDEA2,0xB0AA,0xB1CE,0xCA6B,0xCA6C, +0xCA6D,0xCA6E,0xCA6F,0xDEAC,0xCA70,0xCA71,0xCA72,0xCA73, +0xDEA6,0xBDB6,0xC8EF,0xCA74,0xCA75,0xCA76,0xCA77,0xCA78, +0xCA79,0xCA7A,0xCA7B,0xCA7C,0xCA7D,0xCA7E,0xDEA1,0xCA80, +0xCA81,0xDEA5,0xCA82,0xCA83,0xCA84,0xCA85,0xDEA9,0xCA86, +0xCA87,0xCA88,0xCA89,0xCA8A,0xDEA8,0xCA8B,0xCA8C,0xCA8D, +0xDEA7,0xCA8E,0xCA8F,0xCA90,0xCA91,0xCA92,0xCA93,0xCA94, +0xCA95,0xCA96,0xDEAD,0xCA97,0xD4CC,0xCA98,0xCA99,0xCA9A, +0xCA9B,0xDEB3,0xDEAA,0xDEAE,0xCA9C,0xCA9D,0xC0D9,0xCA9E, +0xCA9F,0xCAA0,0xCB40,0xCB41,0xB1A1,0xDEB6,0xCB42,0xDEB1, +0xCB43,0xCB44,0xCB45,0xCB46,0xCB47,0xCB48,0xCB49,0xDEB2, +0xCB4A,0xCB4B,0xCB4C,0xCB4D,0xCB4E,0xCB4F,0xCB50,0xCB51, +0xCB52,0xCB53,0xCB54,0xD1A6,0xDEB5,0xCB55,0xCB56,0xCB57, +0xCB58,0xCB59,0xCB5A,0xCB5B,0xDEAF,0xCB5C,0xCB5D,0xCB5E, +0xDEB0,0xCB5F,0xD0BD,0xCB60,0xCB61,0xCB62,0xDEB4,0xCAED, +0xDEB9,0xCB63,0xCB64,0xCB65,0xCB66,0xCB67,0xCB68,0xDEB8, +0xCB69,0xDEB7,0xCB6A,0xCB6B,0xCB6C,0xCB6D,0xCB6E,0xCB6F, +0xCB70,0xDEBB,0xCB71,0xCB72,0xCB73,0xCB74,0xCB75,0xCB76, +0xCB77,0xBDE5,0xCB78,0xCB79,0xCB7A,0xCB7B,0xCB7C,0xB2D8, +0xC3EA,0xCB7D,0xCB7E,0xDEBA,0xCB80,0xC5BA,0xCB81,0xCB82, +0xCB83,0xCB84,0xCB85,0xCB86,0xDEBC,0xCB87,0xCB88,0xCB89, +0xCB8A,0xCB8B,0xCB8C,0xCB8D,0xCCD9,0xCB8E,0xCB8F,0xCB90, +0xCB91,0xB7AA,0xCB92,0xCB93,0xCB94,0xCB95,0xCB96,0xCB97, +0xCB98,0xCB99,0xCB9A,0xCB9B,0xCB9C,0xCB9D,0xCB9E,0xCB9F, +0xCBA0,0xCC40,0xCC41,0xD4E5,0xCC42,0xCC43,0xCC44,0xDEBD, +0xCC45,0xCC46,0xCC47,0xCC48,0xCC49,0xDEBF,0xCC4A,0xCC4B, +0xCC4C,0xCC4D,0xCC4E,0xCC4F,0xCC50,0xCC51,0xCC52,0xCC53, +0xCC54,0xC4A2,0xCC55,0xCC56,0xCC57,0xCC58,0xDEC1,0xCC59, +0xCC5A,0xCC5B,0xCC5C,0xCC5D,0xCC5E,0xCC5F,0xCC60,0xCC61, +0xCC62,0xCC63,0xCC64,0xCC65,0xCC66,0xCC67,0xCC68,0xDEBE, +0xCC69,0xDEC0,0xCC6A,0xCC6B,0xCC6C,0xCC6D,0xCC6E,0xCC6F, +0xCC70,0xCC71,0xCC72,0xCC73,0xCC74,0xCC75,0xCC76,0xCC77, +0xD5BA,0xCC78,0xCC79,0xCC7A,0xDEC2,0xCC7B,0xCC7C,0xCC7D, +0xCC7E,0xCC80,0xCC81,0xCC82,0xCC83,0xCC84,0xCC85,0xCC86, +0xCC87,0xCC88,0xCC89,0xCC8A,0xCC8B,0xF2AE,0xBBA2,0xC2B2, +0xC5B0,0xC2C7,0xCC8C,0xCC8D,0xF2AF,0xCC8E,0xCC8F,0xCC90, +0xCC91,0xCC92,0xD0E9,0xCC93,0xCC94,0xCC95,0xD3DD,0xCC96, +0xCC97,0xCC98,0xEBBD,0xCC99,0xCC9A,0xCC9B,0xCC9C,0xCC9D, +0xCC9E,0xCC9F,0xCCA0,0xB3E6,0xF2B0,0xCD40,0xF2B1,0xCD41, +0xCD42,0xCAAD,0xCD43,0xCD44,0xCD45,0xCD46,0xCD47,0xCD48, +0xCD49,0xBAE7,0xF2B3,0xF2B5,0xF2B4,0xCBE4,0xCFBA,0xF2B2, +0xCAB4,0xD2CF,0xC2EC,0xCD4A,0xCD4B,0xCD4C,0xCD4D,0xCD4E, +0xCD4F,0xCD50,0xCEC3,0xF2B8,0xB0F6,0xF2B7,0xCD51,0xCD52, +0xCD53,0xCD54,0xCD55,0xF2BE,0xCD56,0xB2CF,0xCD57,0xCD58, +0xCD59,0xCD5A,0xCD5B,0xCD5C,0xD1C1,0xF2BA,0xCD5D,0xCD5E, +0xCD5F,0xCD60,0xCD61,0xF2BC,0xD4E9,0xCD62,0xCD63,0xF2BB, +0xF2B6,0xF2BF,0xF2BD,0xCD64,0xF2B9,0xCD65,0xCD66,0xF2C7, +0xF2C4,0xF2C6,0xCD67,0xCD68,0xF2CA,0xF2C2,0xF2C0,0xCD69, +0xCD6A,0xCD6B,0xF2C5,0xCD6C,0xCD6D,0xCD6E,0xCD6F,0xCD70, +0xD6FB,0xCD71,0xCD72,0xCD73,0xF2C1,0xCD74,0xC7F9,0xC9DF, +0xCD75,0xF2C8,0xB9C6,0xB5B0,0xCD76,0xCD77,0xF2C3,0xF2C9, +0xF2D0,0xF2D6,0xCD78,0xCD79,0xBBD7,0xCD7A,0xCD7B,0xCD7C, +0xF2D5,0xCDDC,0xCD7D,0xD6EB,0xCD7E,0xCD80,0xF2D2,0xF2D4, +0xCD81,0xCD82,0xCD83,0xCD84,0xB8F2,0xCD85,0xCD86,0xCD87, +0xCD88,0xF2CB,0xCD89,0xCD8A,0xCD8B,0xF2CE,0xC2F9,0xCD8C, +0xD5DD,0xF2CC,0xF2CD,0xF2CF,0xF2D3,0xCD8D,0xCD8E,0xCD8F, +0xF2D9,0xD3BC,0xCD90,0xCD91,0xCD92,0xCD93,0xB6EA,0xCD94, +0xCAF1,0xCD95,0xB7E4,0xF2D7,0xCD96,0xCD97,0xCD98,0xF2D8, +0xF2DA,0xF2DD,0xF2DB,0xCD99,0xCD9A,0xF2DC,0xCD9B,0xCD9C, +0xCD9D,0xCD9E,0xD1D1,0xF2D1,0xCD9F,0xCDC9,0xCDA0,0xCECF, +0xD6A9,0xCE40,0xF2E3,0xCE41,0xC3DB,0xCE42,0xF2E0,0xCE43, +0xCE44,0xC0AF,0xF2EC,0xF2DE,0xCE45,0xF2E1,0xCE46,0xCE47, +0xCE48,0xF2E8,0xCE49,0xCE4A,0xCE4B,0xCE4C,0xF2E2,0xCE4D, +0xCE4E,0xF2E7,0xCE4F,0xCE50,0xF2E6,0xCE51,0xCE52,0xF2E9, +0xCE53,0xCE54,0xCE55,0xF2DF,0xCE56,0xCE57,0xF2E4,0xF2EA, +0xCE58,0xCE59,0xCE5A,0xCE5B,0xCE5C,0xCE5D,0xCE5E,0xD3AC, +0xF2E5,0xB2F5,0xCE5F,0xCE60,0xF2F2,0xCE61,0xD0AB,0xCE62, +0xCE63,0xCE64,0xCE65,0xF2F5,0xCE66,0xCE67,0xCE68,0xBBC8, +0xCE69,0xF2F9,0xCE6A,0xCE6B,0xCE6C,0xCE6D,0xCE6E,0xCE6F, +0xF2F0,0xCE70,0xCE71,0xF2F6,0xF2F8,0xF2FA,0xCE72,0xCE73, +0xCE74,0xCE75,0xCE76,0xCE77,0xCE78,0xCE79,0xF2F3,0xCE7A, +0xF2F1,0xCE7B,0xCE7C,0xCE7D,0xBAFB,0xCE7E,0xB5FB,0xCE80, +0xCE81,0xCE82,0xCE83,0xF2EF,0xF2F7,0xF2ED,0xF2EE,0xCE84, +0xCE85,0xCE86,0xF2EB,0xF3A6,0xCE87,0xF3A3,0xCE88,0xCE89, +0xF3A2,0xCE8A,0xCE8B,0xF2F4,0xCE8C,0xC8DA,0xCE8D,0xCE8E, +0xCE8F,0xCE90,0xCE91,0xF2FB,0xCE92,0xCE93,0xCE94,0xF3A5, +0xCE95,0xCE96,0xCE97,0xCE98,0xCE99,0xCE9A,0xCE9B,0xC3F8, +0xCE9C,0xCE9D,0xCE9E,0xCE9F,0xCEA0,0xCF40,0xCF41,0xCF42, +0xF2FD,0xCF43,0xCF44,0xF3A7,0xF3A9,0xF3A4,0xCF45,0xF2FC, +0xCF46,0xCF47,0xCF48,0xF3AB,0xCF49,0xF3AA,0xCF4A,0xCF4B, +0xCF4C,0xCF4D,0xC2DD,0xCF4E,0xCF4F,0xF3AE,0xCF50,0xCF51, +0xF3B0,0xCF52,0xCF53,0xCF54,0xCF55,0xCF56,0xF3A1,0xCF57, +0xCF58,0xCF59,0xF3B1,0xF3AC,0xCF5A,0xCF5B,0xCF5C,0xCF5D, +0xCF5E,0xF3AF,0xF2FE,0xF3AD,0xCF5F,0xCF60,0xCF61,0xCF62, +0xCF63,0xCF64,0xCF65,0xF3B2,0xCF66,0xCF67,0xCF68,0xCF69, +0xF3B4,0xCF6A,0xCF6B,0xCF6C,0xCF6D,0xF3A8,0xCF6E,0xCF6F, +0xCF70,0xCF71,0xF3B3,0xCF72,0xCF73,0xCF74,0xF3B5,0xCF75, +0xCF76,0xCF77,0xCF78,0xCF79,0xCF7A,0xCF7B,0xCF7C,0xCF7D, +0xCF7E,0xD0B7,0xCF80,0xCF81,0xCF82,0xCF83,0xF3B8,0xCF84, +0xCF85,0xCF86,0xCF87,0xD9F9,0xCF88,0xCF89,0xCF8A,0xCF8B, +0xCF8C,0xCF8D,0xF3B9,0xCF8E,0xCF8F,0xCF90,0xCF91,0xCF92, +0xCF93,0xCF94,0xCF95,0xF3B7,0xCF96,0xC8E4,0xF3B6,0xCF97, +0xCF98,0xCF99,0xCF9A,0xF3BA,0xCF9B,0xCF9C,0xCF9D,0xCF9E, +0xCF9F,0xF3BB,0xB4C0,0xCFA0,0xD040,0xD041,0xD042,0xD043, +0xD044,0xD045,0xD046,0xD047,0xD048,0xD049,0xD04A,0xD04B, +0xD04C,0xD04D,0xEEC3,0xD04E,0xD04F,0xD050,0xD051,0xD052, +0xD053,0xF3BC,0xD054,0xD055,0xF3BD,0xD056,0xD057,0xD058, +0xD1AA,0xD059,0xD05A,0xD05B,0xF4AC,0xD0C6,0xD05C,0xD05D, +0xD05E,0xD05F,0xD060,0xD061,0xD0D0,0xD1DC,0xD062,0xD063, +0xD064,0xD065,0xD066,0xD067,0xCFCE,0xD068,0xD069,0xBDD6, +0xD06A,0xD1C3,0xD06B,0xD06C,0xD06D,0xD06E,0xD06F,0xD070, +0xD071,0xBAE2,0xE1E9,0xD2C2,0xF1C2,0xB2B9,0xD072,0xD073, +0xB1ED,0xF1C3,0xD074,0xC9C0,0xB3C4,0xD075,0xD9F2,0xD076, +0xCBA5,0xD077,0xF1C4,0xD078,0xD079,0xD07A,0xD07B,0xD6D4, +0xD07C,0xD07D,0xD07E,0xD080,0xD081,0xF1C5,0xF4C0,0xF1C6, +0xD082,0xD4AC,0xF1C7,0xD083,0xB0C0,0xF4C1,0xD084,0xD085, +0xF4C2,0xD086,0xD087,0xB4FC,0xD088,0xC5DB,0xD089,0xD08A, +0xD08B,0xD08C,0xCCBB,0xD08D,0xD08E,0xD08F,0xD0E4,0xD090, +0xD091,0xD092,0xD093,0xD094,0xCDE0,0xD095,0xD096,0xD097, +0xD098,0xD099,0xF1C8,0xD09A,0xD9F3,0xD09B,0xD09C,0xD09D, +0xD09E,0xD09F,0xD0A0,0xB1BB,0xD140,0xCFAE,0xD141,0xD142, +0xD143,0xB8A4,0xD144,0xD145,0xD146,0xD147,0xD148,0xF1CA, +0xD149,0xD14A,0xD14B,0xD14C,0xF1CB,0xD14D,0xD14E,0xD14F, +0xD150,0xB2C3,0xC1D1,0xD151,0xD152,0xD7B0,0xF1C9,0xD153, +0xD154,0xF1CC,0xD155,0xD156,0xD157,0xD158,0xF1CE,0xD159, +0xD15A,0xD15B,0xD9F6,0xD15C,0xD2E1,0xD4A3,0xD15D,0xD15E, +0xF4C3,0xC8B9,0xD15F,0xD160,0xD161,0xD162,0xD163,0xF4C4, +0xD164,0xD165,0xF1CD,0xF1CF,0xBFE3,0xF1D0,0xD166,0xD167, +0xF1D4,0xD168,0xD169,0xD16A,0xD16B,0xD16C,0xD16D,0xD16E, +0xF1D6,0xF1D1,0xD16F,0xC9D1,0xC5E1,0xD170,0xD171,0xD172, +0xC2E3,0xB9FC,0xD173,0xD174,0xF1D3,0xD175,0xF1D5,0xD176, +0xD177,0xD178,0xB9D3,0xD179,0xD17A,0xD17B,0xD17C,0xD17D, +0xD17E,0xD180,0xF1DB,0xD181,0xD182,0xD183,0xD184,0xD185, +0xBAD6,0xD186,0xB0FD,0xF1D9,0xD187,0xD188,0xD189,0xD18A, +0xD18B,0xF1D8,0xF1D2,0xF1DA,0xD18C,0xD18D,0xD18E,0xD18F, +0xD190,0xF1D7,0xD191,0xD192,0xD193,0xC8EC,0xD194,0xD195, +0xD196,0xD197,0xCDCA,0xF1DD,0xD198,0xD199,0xD19A,0xD19B, +0xE5BD,0xD19C,0xD19D,0xD19E,0xF1DC,0xD19F,0xF1DE,0xD1A0, +0xD240,0xD241,0xD242,0xD243,0xD244,0xD245,0xD246,0xD247, +0xD248,0xF1DF,0xD249,0xD24A,0xCFE5,0xD24B,0xD24C,0xD24D, +0xD24E,0xD24F,0xD250,0xD251,0xD252,0xD253,0xD254,0xD255, +0xD256,0xD257,0xD258,0xD259,0xD25A,0xD25B,0xD25C,0xD25D, +0xD25E,0xD25F,0xD260,0xD261,0xD262,0xD263,0xF4C5,0xBDF3, +0xD264,0xD265,0xD266,0xD267,0xD268,0xD269,0xF1E0,0xD26A, +0xD26B,0xD26C,0xD26D,0xD26E,0xD26F,0xD270,0xD271,0xD272, +0xD273,0xD274,0xD275,0xD276,0xD277,0xD278,0xD279,0xD27A, +0xD27B,0xD27C,0xD27D,0xF1E1,0xD27E,0xD280,0xD281,0xCEF7, +0xD282,0xD2AA,0xD283,0xF1FB,0xD284,0xD285,0xB8B2,0xD286, +0xD287,0xD288,0xD289,0xD28A,0xD28B,0xD28C,0xD28D,0xD28E, +0xD28F,0xD290,0xD291,0xD292,0xD293,0xD294,0xD295,0xD296, +0xD297,0xD298,0xD299,0xD29A,0xD29B,0xD29C,0xD29D,0xD29E, +0xD29F,0xD2A0,0xD340,0xD341,0xD342,0xD343,0xD344,0xD345, +0xD346,0xD347,0xD348,0xD349,0xD34A,0xD34B,0xD34C,0xD34D, +0xD34E,0xD34F,0xD350,0xD351,0xD352,0xD353,0xD354,0xD355, +0xD356,0xD357,0xD358,0xD359,0xD35A,0xD35B,0xD35C,0xD35D, +0xD35E,0xBCFB,0xB9DB,0xD35F,0xB9E6,0xC3D9,0xCAD3,0xEAE8, +0xC0C0,0xBEF5,0xEAE9,0xEAEA,0xEAEB,0xD360,0xEAEC,0xEAED, +0xEAEE,0xEAEF,0xBDC7,0xD361,0xD362,0xD363,0xF5FB,0xD364, +0xD365,0xD366,0xF5FD,0xD367,0xF5FE,0xD368,0xF5FC,0xD369, +0xD36A,0xD36B,0xD36C,0xBDE2,0xD36D,0xF6A1,0xB4A5,0xD36E, +0xD36F,0xD370,0xD371,0xF6A2,0xD372,0xD373,0xD374,0xF6A3, +0xD375,0xD376,0xD377,0xECB2,0xD378,0xD379,0xD37A,0xD37B, +0xD37C,0xD37D,0xD37E,0xD380,0xD381,0xD382,0xD383,0xD384, +0xD1D4,0xD385,0xD386,0xD387,0xD388,0xD389,0xD38A,0xD9EA, +0xD38B,0xD38C,0xD38D,0xD38E,0xD38F,0xD390,0xD391,0xD392, +0xD393,0xD394,0xD395,0xD396,0xD397,0xD398,0xD399,0xD39A, +0xD39B,0xD39C,0xD39D,0xD39E,0xD39F,0xD3A0,0xD440,0xD441, +0xD442,0xD443,0xD444,0xD445,0xD446,0xD447,0xD448,0xD449, +0xD44A,0xD44B,0xD44C,0xD44D,0xD44E,0xD44F,0xD450,0xD451, +0xD452,0xD453,0xD454,0xD455,0xD456,0xD457,0xD458,0xD459, +0xD45A,0xD45B,0xD45C,0xD45D,0xD45E,0xD45F,0xF6A4,0xD460, +0xD461,0xD462,0xD463,0xD464,0xD465,0xD466,0xD467,0xD468, +0xEEBA,0xD469,0xD46A,0xD46B,0xD46C,0xD46D,0xD46E,0xD46F, +0xD470,0xD471,0xD472,0xD473,0xD474,0xD475,0xD476,0xD477, +0xD478,0xD479,0xD47A,0xD47B,0xD47C,0xD47D,0xD47E,0xD480, +0xD481,0xD482,0xD483,0xD484,0xD485,0xD486,0xD487,0xD488, +0xD489,0xD48A,0xD48B,0xD48C,0xD48D,0xD48E,0xD48F,0xD490, +0xD491,0xD492,0xD493,0xD494,0xD495,0xD496,0xD497,0xD498, +0xD499,0xD5B2,0xD49A,0xD49B,0xD49C,0xD49D,0xD49E,0xD49F, +0xD4A0,0xD540,0xD541,0xD542,0xD543,0xD544,0xD545,0xD546, +0xD547,0xD3FE,0xCCDC,0xD548,0xD549,0xD54A,0xD54B,0xD54C, +0xD54D,0xD54E,0xD54F,0xCAC4,0xD550,0xD551,0xD552,0xD553, +0xD554,0xD555,0xD556,0xD557,0xD558,0xD559,0xD55A,0xD55B, +0xD55C,0xD55D,0xD55E,0xD55F,0xD560,0xD561,0xD562,0xD563, +0xD564,0xD565,0xD566,0xD567,0xD568,0xD569,0xD56A,0xD56B, +0xD56C,0xD56D,0xD56E,0xD56F,0xD570,0xD571,0xD572,0xD573, +0xD574,0xD575,0xD576,0xD577,0xD578,0xD579,0xD57A,0xD57B, +0xD57C,0xD57D,0xD57E,0xD580,0xD581,0xD582,0xD583,0xD584, +0xD585,0xD586,0xD587,0xD588,0xD589,0xD58A,0xD58B,0xD58C, +0xD58D,0xD58E,0xD58F,0xD590,0xD591,0xD592,0xD593,0xD594, +0xD595,0xD596,0xD597,0xD598,0xD599,0xD59A,0xD59B,0xD59C, +0xD59D,0xD59E,0xD59F,0xD5A0,0xD640,0xD641,0xD642,0xD643, +0xD644,0xD645,0xD646,0xD647,0xD648,0xD649,0xD64A,0xD64B, +0xD64C,0xD64D,0xD64E,0xD64F,0xD650,0xD651,0xD652,0xD653, +0xD654,0xD655,0xD656,0xD657,0xD658,0xD659,0xD65A,0xD65B, +0xD65C,0xD65D,0xD65E,0xD65F,0xD660,0xD661,0xD662,0xE5C0, +0xD663,0xD664,0xD665,0xD666,0xD667,0xD668,0xD669,0xD66A, +0xD66B,0xD66C,0xD66D,0xD66E,0xD66F,0xD670,0xD671,0xD672, +0xD673,0xD674,0xD675,0xD676,0xD677,0xD678,0xD679,0xD67A, +0xD67B,0xD67C,0xD67D,0xD67E,0xD680,0xD681,0xF6A5,0xD682, +0xD683,0xD684,0xD685,0xD686,0xD687,0xD688,0xD689,0xD68A, +0xD68B,0xD68C,0xD68D,0xD68E,0xD68F,0xD690,0xD691,0xD692, +0xD693,0xD694,0xD695,0xD696,0xD697,0xD698,0xD699,0xD69A, +0xD69B,0xD69C,0xD69D,0xD69E,0xD69F,0xD6A0,0xD740,0xD741, +0xD742,0xD743,0xD744,0xD745,0xD746,0xD747,0xD748,0xD749, +0xD74A,0xD74B,0xD74C,0xD74D,0xD74E,0xD74F,0xD750,0xD751, +0xD752,0xD753,0xD754,0xD755,0xD756,0xD757,0xD758,0xD759, +0xD75A,0xD75B,0xD75C,0xD75D,0xD75E,0xD75F,0xBEAF,0xD760, +0xD761,0xD762,0xD763,0xD764,0xC6A9,0xD765,0xD766,0xD767, +0xD768,0xD769,0xD76A,0xD76B,0xD76C,0xD76D,0xD76E,0xD76F, +0xD770,0xD771,0xD772,0xD773,0xD774,0xD775,0xD776,0xD777, +0xD778,0xD779,0xD77A,0xD77B,0xD77C,0xD77D,0xD77E,0xD780, +0xD781,0xD782,0xD783,0xD784,0xD785,0xD786,0xD787,0xD788, +0xD789,0xD78A,0xD78B,0xD78C,0xD78D,0xD78E,0xD78F,0xD790, +0xD791,0xD792,0xD793,0xD794,0xD795,0xD796,0xD797,0xD798, +0xDAA5,0xBCC6,0xB6A9,0xB8BC,0xC8CF,0xBCA5,0xDAA6,0xDAA7, +0xCCD6,0xC8C3,0xDAA8,0xC6FD,0xD799,0xD1B5,0xD2E9,0xD1B6, +0xBCC7,0xD79A,0xBDB2,0xBBE4,0xDAA9,0xDAAA,0xD1C8,0xDAAB, +0xD0ED,0xB6EF,0xC2DB,0xD79B,0xCBCF,0xB7ED,0xC9E8,0xB7C3, +0xBEF7,0xD6A4,0xDAAC,0xDAAD,0xC6C0,0xD7E7,0xCAB6,0xD79C, +0xD5A9,0xCBDF,0xD5EF,0xDAAE,0xD6DF,0xB4CA,0xDAB0,0xDAAF, +0xD79D,0xD2EB,0xDAB1,0xDAB2,0xDAB3,0xCAD4,0xDAB4,0xCAAB, +0xDAB5,0xDAB6,0xB3CF,0xD6EF,0xDAB7,0xBBB0,0xB5AE,0xDAB8, +0xDAB9,0xB9EE,0xD1AF,0xD2E8,0xDABA,0xB8C3,0xCFEA,0xB2EF, +0xDABB,0xDABC,0xD79E,0xBDEB,0xCEDC,0xD3EF,0xDABD,0xCEF3, +0xDABE,0xD3D5,0xBBE5,0xDABF,0xCBB5,0xCBD0,0xDAC0,0xC7EB, +0xD6EE,0xDAC1,0xC5B5,0xB6C1,0xDAC2,0xB7CC,0xBFCE,0xDAC3, +0xDAC4,0xCBAD,0xDAC5,0xB5F7,0xDAC6,0xC1C2,0xD7BB,0xDAC7, +0xCCB8,0xD79F,0xD2EA,0xC4B1,0xDAC8,0xB5FD,0xBBD1,0xDAC9, +0xD0B3,0xDACA,0xDACB,0xCEBD,0xDACC,0xDACD,0xDACE,0xB2F7, +0xDAD1,0xDACF,0xD1E8,0xDAD0,0xC3D5,0xDAD2,0xD7A0,0xDAD3, +0xDAD4,0xDAD5,0xD0BB,0xD2A5,0xB0F9,0xDAD6,0xC7AB,0xDAD7, +0xBDF7,0xC3A1,0xDAD8,0xDAD9,0xC3FD,0xCCB7,0xDADA,0xDADB, +0xC0BE,0xC6D7,0xDADC,0xDADD,0xC7B4,0xDADE,0xDADF,0xB9C8, +0xD840,0xD841,0xD842,0xD843,0xD844,0xD845,0xD846,0xD847, +0xD848,0xBBED,0xD849,0xD84A,0xD84B,0xD84C,0xB6B9,0xF4F8, +0xD84D,0xF4F9,0xD84E,0xD84F,0xCDE3,0xD850,0xD851,0xD852, +0xD853,0xD854,0xD855,0xD856,0xD857,0xF5B9,0xD858,0xD859, +0xD85A,0xD85B,0xEBE0,0xD85C,0xD85D,0xD85E,0xD85F,0xD860, +0xD861,0xCFF3,0xBBBF,0xD862,0xD863,0xD864,0xD865,0xD866, +0xD867,0xD868,0xBAC0,0xD4A5,0xD869,0xD86A,0xD86B,0xD86C, +0xD86D,0xD86E,0xD86F,0xE1D9,0xD870,0xD871,0xD872,0xD873, +0xF5F4,0xB1AA,0xB2F2,0xD874,0xD875,0xD876,0xD877,0xD878, +0xD879,0xD87A,0xF5F5,0xD87B,0xD87C,0xF5F7,0xD87D,0xD87E, +0xD880,0xBAD1,0xF5F6,0xD881,0xC3B2,0xD882,0xD883,0xD884, +0xD885,0xD886,0xD887,0xD888,0xF5F9,0xD889,0xD88A,0xD88B, +0xF5F8,0xD88C,0xD88D,0xD88E,0xD88F,0xD890,0xD891,0xD892, +0xD893,0xD894,0xD895,0xD896,0xD897,0xD898,0xD899,0xD89A, +0xD89B,0xD89C,0xD89D,0xD89E,0xD89F,0xD8A0,0xD940,0xD941, +0xD942,0xD943,0xD944,0xD945,0xD946,0xD947,0xD948,0xD949, +0xD94A,0xD94B,0xD94C,0xD94D,0xD94E,0xD94F,0xD950,0xD951, +0xD952,0xD953,0xD954,0xD955,0xD956,0xD957,0xD958,0xD959, +0xD95A,0xD95B,0xD95C,0xD95D,0xD95E,0xD95F,0xD960,0xD961, +0xD962,0xD963,0xD964,0xD965,0xD966,0xD967,0xD968,0xD969, +0xD96A,0xD96B,0xD96C,0xD96D,0xD96E,0xD96F,0xD970,0xD971, +0xD972,0xD973,0xD974,0xD975,0xD976,0xD977,0xD978,0xD979, +0xD97A,0xD97B,0xD97C,0xD97D,0xD97E,0xD980,0xD981,0xD982, +0xD983,0xD984,0xD985,0xD986,0xD987,0xD988,0xD989,0xD98A, +0xD98B,0xD98C,0xD98D,0xD98E,0xD98F,0xD990,0xD991,0xD992, +0xD993,0xD994,0xD995,0xD996,0xD997,0xD998,0xD999,0xD99A, +0xD99B,0xD99C,0xD99D,0xD99E,0xD99F,0xD9A0,0xDA40,0xDA41, +0xDA42,0xDA43,0xDA44,0xDA45,0xDA46,0xDA47,0xDA48,0xDA49, +0xDA4A,0xDA4B,0xDA4C,0xDA4D,0xDA4E,0xB1B4,0xD5EA,0xB8BA, +0xDA4F,0xB9B1,0xB2C6,0xD4F0,0xCFCD,0xB0DC,0xD5CB,0xBBF5, +0xD6CA,0xB7B7,0xCCB0,0xC6B6,0xB1E1,0xB9BA,0xD6FC,0xB9E1, +0xB7A1,0xBCFA,0xEADA,0xEADB,0xCCF9,0xB9F3,0xEADC,0xB4FB, +0xC3B3,0xB7D1,0xBAD8,0xEADD,0xD4F4,0xEADE,0xBCD6,0xBBDF, +0xEADF,0xC1DE,0xC2B8,0xD4DF,0xD7CA,0xEAE0,0xEAE1,0xEAE4, +0xEAE2,0xEAE3,0xC9DE,0xB8B3,0xB6C4,0xEAE5,0xCAEA,0xC9CD, +0xB4CD,0xDA50,0xDA51,0xE2D9,0xC5E2,0xEAE6,0xC0B5,0xDA52, +0xD7B8,0xEAE7,0xD7AC,0xC8FC,0xD8D3,0xD8CD,0xD4DE,0xDA53, +0xD4F9,0xC9C4,0xD3AE,0xB8D3,0xB3E0,0xDA54,0xC9E2,0xF4F6, +0xDA55,0xDA56,0xDA57,0xBAD5,0xDA58,0xF4F7,0xDA59,0xDA5A, +0xD7DF,0xDA5B,0xDA5C,0xF4F1,0xB8B0,0xD5D4,0xB8CF,0xC6F0, +0xDA5D,0xDA5E,0xDA5F,0xDA60,0xDA61,0xDA62,0xDA63,0xDA64, +0xDA65,0xB3C3,0xDA66,0xDA67,0xF4F2,0xB3AC,0xDA68,0xDA69, +0xDA6A,0xDA6B,0xD4BD,0xC7F7,0xDA6C,0xDA6D,0xDA6E,0xDA6F, +0xDA70,0xF4F4,0xDA71,0xDA72,0xF4F3,0xDA73,0xDA74,0xDA75, +0xDA76,0xDA77,0xDA78,0xDA79,0xDA7A,0xDA7B,0xDA7C,0xCCCB, +0xDA7D,0xDA7E,0xDA80,0xC8A4,0xDA81,0xDA82,0xDA83,0xDA84, +0xDA85,0xDA86,0xDA87,0xDA88,0xDA89,0xDA8A,0xDA8B,0xDA8C, +0xDA8D,0xF4F5,0xDA8E,0xD7E3,0xC5BF,0xF5C0,0xDA8F,0xDA90, +0xF5BB,0xDA91,0xF5C3,0xDA92,0xF5C2,0xDA93,0xD6BA,0xF5C1, +0xDA94,0xDA95,0xDA96,0xD4BE,0xF5C4,0xDA97,0xF5CC,0xDA98, +0xDA99,0xDA9A,0xDA9B,0xB0CF,0xB5F8,0xDA9C,0xF5C9,0xF5CA, +0xDA9D,0xC5DC,0xDA9E,0xDA9F,0xDAA0,0xDB40,0xF5C5,0xF5C6, +0xDB41,0xDB42,0xF5C7,0xF5CB,0xDB43,0xBEE0,0xF5C8,0xB8FA, +0xDB44,0xDB45,0xDB46,0xF5D0,0xF5D3,0xDB47,0xDB48,0xDB49, +0xBFE7,0xDB4A,0xB9F2,0xF5BC,0xF5CD,0xDB4B,0xDB4C,0xC2B7, +0xDB4D,0xDB4E,0xDB4F,0xCCF8,0xDB50,0xBCF9,0xDB51,0xF5CE, +0xF5CF,0xF5D1,0xB6E5,0xF5D2,0xDB52,0xF5D5,0xDB53,0xDB54, +0xDB55,0xDB56,0xDB57,0xDB58,0xDB59,0xF5BD,0xDB5A,0xDB5B, +0xDB5C,0xF5D4,0xD3BB,0xDB5D,0xB3EC,0xDB5E,0xDB5F,0xCCA4, +0xDB60,0xDB61,0xDB62,0xDB63,0xF5D6,0xDB64,0xDB65,0xDB66, +0xDB67,0xDB68,0xDB69,0xDB6A,0xDB6B,0xF5D7,0xBEE1,0xF5D8, +0xDB6C,0xDB6D,0xCCDF,0xF5DB,0xDB6E,0xDB6F,0xDB70,0xDB71, +0xDB72,0xB2C8,0xD7D9,0xDB73,0xF5D9,0xDB74,0xF5DA,0xF5DC, +0xDB75,0xF5E2,0xDB76,0xDB77,0xDB78,0xF5E0,0xDB79,0xDB7A, +0xDB7B,0xF5DF,0xF5DD,0xDB7C,0xDB7D,0xF5E1,0xDB7E,0xDB80, +0xF5DE,0xF5E4,0xF5E5,0xDB81,0xCCE3,0xDB82,0xDB83,0xE5BF, +0xB5B8,0xF5E3,0xF5E8,0xCCA3,0xDB84,0xDB85,0xDB86,0xDB87, +0xDB88,0xF5E6,0xF5E7,0xDB89,0xDB8A,0xDB8B,0xDB8C,0xDB8D, +0xDB8E,0xF5BE,0xDB8F,0xDB90,0xDB91,0xDB92,0xDB93,0xDB94, +0xDB95,0xDB96,0xDB97,0xDB98,0xDB99,0xDB9A,0xB1C4,0xDB9B, +0xDB9C,0xF5BF,0xDB9D,0xDB9E,0xB5C5,0xB2E4,0xDB9F,0xF5EC, +0xF5E9,0xDBA0,0xB6D7,0xDC40,0xF5ED,0xDC41,0xF5EA,0xDC42, +0xDC43,0xDC44,0xDC45,0xDC46,0xF5EB,0xDC47,0xDC48,0xB4DA, +0xDC49,0xD4EA,0xDC4A,0xDC4B,0xDC4C,0xF5EE,0xDC4D,0xB3F9, +0xDC4E,0xDC4F,0xDC50,0xDC51,0xDC52,0xDC53,0xDC54,0xF5EF, +0xF5F1,0xDC55,0xDC56,0xDC57,0xF5F0,0xDC58,0xDC59,0xDC5A, +0xDC5B,0xDC5C,0xDC5D,0xDC5E,0xF5F2,0xDC5F,0xF5F3,0xDC60, +0xDC61,0xDC62,0xDC63,0xDC64,0xDC65,0xDC66,0xDC67,0xDC68, +0xDC69,0xDC6A,0xDC6B,0xC9ED,0xB9AA,0xDC6C,0xDC6D,0xC7FB, +0xDC6E,0xDC6F,0xB6E3,0xDC70,0xDC71,0xDC72,0xDC73,0xDC74, +0xDC75,0xDC76,0xCCC9,0xDC77,0xDC78,0xDC79,0xDC7A,0xDC7B, +0xDC7C,0xDC7D,0xDC7E,0xDC80,0xDC81,0xDC82,0xDC83,0xDC84, +0xDC85,0xDC86,0xDC87,0xDC88,0xDC89,0xDC8A,0xEAA6,0xDC8B, +0xDC8C,0xDC8D,0xDC8E,0xDC8F,0xDC90,0xDC91,0xDC92,0xDC93, +0xDC94,0xDC95,0xDC96,0xDC97,0xDC98,0xDC99,0xDC9A,0xDC9B, +0xDC9C,0xDC9D,0xDC9E,0xDC9F,0xDCA0,0xDD40,0xDD41,0xDD42, +0xDD43,0xDD44,0xDD45,0xDD46,0xDD47,0xDD48,0xDD49,0xDD4A, +0xDD4B,0xDD4C,0xDD4D,0xDD4E,0xDD4F,0xDD50,0xDD51,0xDD52, +0xDD53,0xDD54,0xDD55,0xDD56,0xDD57,0xDD58,0xDD59,0xDD5A, +0xDD5B,0xDD5C,0xDD5D,0xDD5E,0xDD5F,0xDD60,0xDD61,0xDD62, +0xDD63,0xDD64,0xDD65,0xDD66,0xDD67,0xDD68,0xDD69,0xDD6A, +0xDD6B,0xDD6C,0xDD6D,0xDD6E,0xDD6F,0xDD70,0xDD71,0xDD72, +0xDD73,0xDD74,0xDD75,0xDD76,0xDD77,0xDD78,0xDD79,0xDD7A, +0xDD7B,0xDD7C,0xDD7D,0xDD7E,0xDD80,0xDD81,0xDD82,0xDD83, +0xDD84,0xDD85,0xDD86,0xDD87,0xDD88,0xDD89,0xDD8A,0xDD8B, +0xDD8C,0xDD8D,0xDD8E,0xDD8F,0xDD90,0xDD91,0xDD92,0xDD93, +0xDD94,0xDD95,0xDD96,0xDD97,0xDD98,0xDD99,0xDD9A,0xDD9B, +0xDD9C,0xDD9D,0xDD9E,0xDD9F,0xDDA0,0xDE40,0xDE41,0xDE42, +0xDE43,0xDE44,0xDE45,0xDE46,0xDE47,0xDE48,0xDE49,0xDE4A, +0xDE4B,0xDE4C,0xDE4D,0xDE4E,0xDE4F,0xDE50,0xDE51,0xDE52, +0xDE53,0xDE54,0xDE55,0xDE56,0xDE57,0xDE58,0xDE59,0xDE5A, +0xDE5B,0xDE5C,0xDE5D,0xDE5E,0xDE5F,0xDE60,0xB3B5,0xD4FE, +0xB9EC,0xD0F9,0xDE61,0xE9ED,0xD7AA,0xE9EE,0xC2D6,0xC8ED, +0xBAE4,0xE9EF,0xE9F0,0xE9F1,0xD6E1,0xE9F2,0xE9F3,0xE9F5, +0xE9F4,0xE9F6,0xE9F7,0xC7E1,0xE9F8,0xD4D8,0xE9F9,0xBDCE, +0xDE62,0xE9FA,0xE9FB,0xBDCF,0xE9FC,0xB8A8,0xC1BE,0xE9FD, +0xB1B2,0xBBD4,0xB9F5,0xE9FE,0xDE63,0xEAA1,0xEAA2,0xEAA3, +0xB7F8,0xBCAD,0xDE64,0xCAE4,0xE0CE,0xD4AF,0xCFBD,0xD5B7, +0xEAA4,0xD5DE,0xEAA5,0xD0C1,0xB9BC,0xDE65,0xB4C7,0xB1D9, +0xDE66,0xDE67,0xDE68,0xC0B1,0xDE69,0xDE6A,0xDE6B,0xDE6C, +0xB1E6,0xB1E7,0xDE6D,0xB1E8,0xDE6E,0xDE6F,0xDE70,0xDE71, +0xB3BD,0xC8E8,0xDE72,0xDE73,0xDE74,0xDE75,0xE5C1,0xDE76, +0xDE77,0xB1DF,0xDE78,0xDE79,0xDE7A,0xC1C9,0xB4EF,0xDE7B, +0xDE7C,0xC7A8,0xD3D8,0xDE7D,0xC6F9,0xD1B8,0xDE7E,0xB9FD, +0xC2F5,0xDE80,0xDE81,0xDE82,0xDE83,0xDE84,0xD3AD,0xDE85, +0xD4CB,0xBDFC,0xDE86,0xE5C2,0xB7B5,0xE5C3,0xDE87,0xDE88, +0xBBB9,0xD5E2,0xDE89,0xBDF8,0xD4B6,0xCEA5,0xC1AC,0xB3D9, +0xDE8A,0xDE8B,0xCCF6,0xDE8C,0xE5C6,0xE5C4,0xE5C8,0xDE8D, +0xE5CA,0xE5C7,0xB5CF,0xC6C8,0xDE8E,0xB5FC,0xE5C5,0xDE8F, +0xCAF6,0xDE90,0xDE91,0xE5C9,0xDE92,0xDE93,0xDE94,0xC3D4, +0xB1C5,0xBCA3,0xDE95,0xDE96,0xDE97,0xD7B7,0xDE98,0xDE99, +0xCDCB,0xCBCD,0xCACA,0xCCD3,0xE5CC,0xE5CB,0xC4E6,0xDE9A, +0xDE9B,0xD1A1,0xD1B7,0xE5CD,0xDE9C,0xE5D0,0xDE9D,0xCDB8, +0xD6F0,0xE5CF,0xB5DD,0xDE9E,0xCDBE,0xDE9F,0xE5D1,0xB6BA, +0xDEA0,0xDF40,0xCDA8,0xB9E4,0xDF41,0xCAC5,0xB3D1,0xCBD9, +0xD4EC,0xE5D2,0xB7EA,0xDF42,0xDF43,0xDF44,0xE5CE,0xDF45, +0xDF46,0xDF47,0xDF48,0xDF49,0xDF4A,0xE5D5,0xB4FE,0xE5D6, +0xDF4B,0xDF4C,0xDF4D,0xDF4E,0xDF4F,0xE5D3,0xE5D4,0xDF50, +0xD2DD,0xDF51,0xDF52,0xC2DF,0xB1C6,0xDF53,0xD3E2,0xDF54, +0xDF55,0xB6DD,0xCBEC,0xDF56,0xE5D7,0xDF57,0xDF58,0xD3F6, +0xDF59,0xDF5A,0xDF5B,0xDF5C,0xDF5D,0xB1E9,0xDF5E,0xB6F4, +0xE5DA,0xE5D8,0xE5D9,0xB5C0,0xDF5F,0xDF60,0xDF61,0xD2C5, +0xE5DC,0xDF62,0xDF63,0xE5DE,0xDF64,0xDF65,0xDF66,0xDF67, +0xDF68,0xDF69,0xE5DD,0xC7B2,0xDF6A,0xD2A3,0xDF6B,0xDF6C, +0xE5DB,0xDF6D,0xDF6E,0xDF6F,0xDF70,0xD4E2,0xD5DA,0xDF71, +0xDF72,0xDF73,0xDF74,0xDF75,0xE5E0,0xD7F1,0xDF76,0xDF77, +0xDF78,0xDF79,0xDF7A,0xDF7B,0xDF7C,0xE5E1,0xDF7D,0xB1DC, +0xD1FB,0xDF7E,0xE5E2,0xE5E4,0xDF80,0xDF81,0xDF82,0xDF83, +0xE5E3,0xDF84,0xDF85,0xE5E5,0xDF86,0xDF87,0xDF88,0xDF89, +0xDF8A,0xD2D8,0xDF8B,0xB5CB,0xDF8C,0xE7DF,0xDF8D,0xDAF5, +0xDF8E,0xDAF8,0xDF8F,0xDAF6,0xDF90,0xDAF7,0xDF91,0xDF92, +0xDF93,0xDAFA,0xD0CF,0xC4C7,0xDF94,0xDF95,0xB0EE,0xDF96, +0xDF97,0xDF98,0xD0B0,0xDF99,0xDAF9,0xDF9A,0xD3CA,0xBAAA, +0xDBA2,0xC7F1,0xDF9B,0xDAFC,0xDAFB,0xC9DB,0xDAFD,0xDF9C, +0xDBA1,0xD7DE,0xDAFE,0xC1DA,0xDF9D,0xDF9E,0xDBA5,0xDF9F, +0xDFA0,0xD3F4,0xE040,0xE041,0xDBA7,0xDBA4,0xE042,0xDBA8, +0xE043,0xE044,0xBDBC,0xE045,0xE046,0xE047,0xC0C9,0xDBA3, +0xDBA6,0xD6A3,0xE048,0xDBA9,0xE049,0xE04A,0xE04B,0xDBAD, +0xE04C,0xE04D,0xE04E,0xDBAE,0xDBAC,0xBAC2,0xE04F,0xE050, +0xE051,0xBFA4,0xDBAB,0xE052,0xE053,0xE054,0xDBAA,0xD4C7, +0xB2BF,0xE055,0xE056,0xDBAF,0xE057,0xB9F9,0xE058,0xDBB0, +0xE059,0xE05A,0xE05B,0xE05C,0xB3BB,0xE05D,0xE05E,0xE05F, +0xB5A6,0xE060,0xE061,0xE062,0xE063,0xB6BC,0xDBB1,0xE064, +0xE065,0xE066,0xB6F5,0xE067,0xDBB2,0xE068,0xE069,0xE06A, +0xE06B,0xE06C,0xE06D,0xE06E,0xE06F,0xE070,0xE071,0xE072, +0xE073,0xE074,0xE075,0xE076,0xE077,0xE078,0xE079,0xE07A, +0xE07B,0xB1C9,0xE07C,0xE07D,0xE07E,0xE080,0xDBB4,0xE081, +0xE082,0xE083,0xDBB3,0xDBB5,0xE084,0xE085,0xE086,0xE087, +0xE088,0xE089,0xE08A,0xE08B,0xE08C,0xE08D,0xE08E,0xDBB7, +0xE08F,0xDBB6,0xE090,0xE091,0xE092,0xE093,0xE094,0xE095, +0xE096,0xDBB8,0xE097,0xE098,0xE099,0xE09A,0xE09B,0xE09C, +0xE09D,0xE09E,0xE09F,0xDBB9,0xE0A0,0xE140,0xDBBA,0xE141, +0xE142,0xD3CF,0xF4FA,0xC7F5,0xD7C3,0xC5E4,0xF4FC,0xF4FD, +0xF4FB,0xE143,0xBEC6,0xE144,0xE145,0xE146,0xE147,0xD0EF, +0xE148,0xE149,0xB7D3,0xE14A,0xE14B,0xD4CD,0xCCAA,0xE14C, +0xE14D,0xF5A2,0xF5A1,0xBAA8,0xF4FE,0xCBD6,0xE14E,0xE14F, +0xE150,0xF5A4,0xC0D2,0xE151,0xB3EA,0xE152,0xCDAA,0xF5A5, +0xF5A3,0xBDB4,0xF5A8,0xE153,0xF5A9,0xBDCD,0xC3B8,0xBFE1, +0xCBE1,0xF5AA,0xE154,0xE155,0xE156,0xF5A6,0xF5A7,0xC4F0, +0xE157,0xE158,0xE159,0xE15A,0xE15B,0xF5AC,0xE15C,0xB4BC, +0xE15D,0xD7ED,0xE15E,0xB4D7,0xF5AB,0xF5AE,0xE15F,0xE160, +0xF5AD,0xF5AF,0xD0D1,0xE161,0xE162,0xE163,0xE164,0xE165, +0xE166,0xE167,0xC3D1,0xC8A9,0xE168,0xE169,0xE16A,0xE16B, +0xE16C,0xE16D,0xF5B0,0xF5B1,0xE16E,0xE16F,0xE170,0xE171, +0xE172,0xE173,0xF5B2,0xE174,0xE175,0xF5B3,0xF5B4,0xF5B5, +0xE176,0xE177,0xE178,0xE179,0xF5B7,0xF5B6,0xE17A,0xE17B, +0xE17C,0xE17D,0xF5B8,0xE17E,0xE180,0xE181,0xE182,0xE183, +0xE184,0xE185,0xE186,0xE187,0xE188,0xE189,0xE18A,0xB2C9, +0xE18B,0xD3D4,0xCACD,0xE18C,0xC0EF,0xD6D8,0xD2B0,0xC1BF, +0xE18D,0xBDF0,0xE18E,0xE18F,0xE190,0xE191,0xE192,0xE193, +0xE194,0xE195,0xE196,0xE197,0xB8AA,0xE198,0xE199,0xE19A, +0xE19B,0xE19C,0xE19D,0xE19E,0xE19F,0xE1A0,0xE240,0xE241, +0xE242,0xE243,0xE244,0xE245,0xE246,0xE247,0xE248,0xE249, +0xE24A,0xE24B,0xE24C,0xE24D,0xE24E,0xE24F,0xE250,0xE251, +0xE252,0xE253,0xE254,0xE255,0xE256,0xE257,0xE258,0xE259, +0xE25A,0xE25B,0xE25C,0xE25D,0xE25E,0xE25F,0xE260,0xE261, +0xE262,0xE263,0xE264,0xE265,0xE266,0xE267,0xE268,0xE269, +0xE26A,0xE26B,0xE26C,0xE26D,0xE26E,0xE26F,0xE270,0xE271, +0xE272,0xE273,0xE274,0xE275,0xE276,0xE277,0xE278,0xE279, +0xE27A,0xE27B,0xE27C,0xE27D,0xE27E,0xE280,0xE281,0xE282, +0xE283,0xE284,0xE285,0xE286,0xE287,0xE288,0xE289,0xE28A, +0xE28B,0xE28C,0xE28D,0xE28E,0xE28F,0xE290,0xE291,0xE292, +0xE293,0xE294,0xE295,0xE296,0xE297,0xE298,0xE299,0xE29A, +0xE29B,0xE29C,0xE29D,0xE29E,0xE29F,0xE2A0,0xE340,0xE341, +0xE342,0xE343,0xE344,0xE345,0xE346,0xE347,0xE348,0xE349, +0xE34A,0xE34B,0xE34C,0xE34D,0xE34E,0xE34F,0xE350,0xE351, +0xE352,0xE353,0xE354,0xE355,0xE356,0xE357,0xE358,0xE359, +0xE35A,0xE35B,0xE35C,0xE35D,0xE35E,0xE35F,0xE360,0xE361, +0xE362,0xE363,0xE364,0xE365,0xE366,0xE367,0xE368,0xE369, +0xE36A,0xE36B,0xE36C,0xE36D,0xBCF8,0xE36E,0xE36F,0xE370, +0xE371,0xE372,0xE373,0xE374,0xE375,0xE376,0xE377,0xE378, +0xE379,0xE37A,0xE37B,0xE37C,0xE37D,0xE37E,0xE380,0xE381, +0xE382,0xE383,0xE384,0xE385,0xE386,0xE387,0xF6C6,0xE388, +0xE389,0xE38A,0xE38B,0xE38C,0xE38D,0xE38E,0xE38F,0xE390, +0xE391,0xE392,0xE393,0xE394,0xE395,0xE396,0xE397,0xE398, +0xE399,0xE39A,0xE39B,0xE39C,0xE39D,0xE39E,0xE39F,0xE3A0, +0xE440,0xE441,0xE442,0xE443,0xE444,0xE445,0xF6C7,0xE446, +0xE447,0xE448,0xE449,0xE44A,0xE44B,0xE44C,0xE44D,0xE44E, +0xE44F,0xE450,0xE451,0xE452,0xE453,0xE454,0xE455,0xE456, +0xE457,0xE458,0xE459,0xE45A,0xE45B,0xE45C,0xE45D,0xE45E, +0xF6C8,0xE45F,0xE460,0xE461,0xE462,0xE463,0xE464,0xE465, +0xE466,0xE467,0xE468,0xE469,0xE46A,0xE46B,0xE46C,0xE46D, +0xE46E,0xE46F,0xE470,0xE471,0xE472,0xE473,0xE474,0xE475, +0xE476,0xE477,0xE478,0xE479,0xE47A,0xE47B,0xE47C,0xE47D, +0xE47E,0xE480,0xE481,0xE482,0xE483,0xE484,0xE485,0xE486, +0xE487,0xE488,0xE489,0xE48A,0xE48B,0xE48C,0xE48D,0xE48E, +0xE48F,0xE490,0xE491,0xE492,0xE493,0xE494,0xE495,0xE496, +0xE497,0xE498,0xE499,0xE49A,0xE49B,0xE49C,0xE49D,0xE49E, +0xE49F,0xE4A0,0xE540,0xE541,0xE542,0xE543,0xE544,0xE545, +0xE546,0xE547,0xE548,0xE549,0xE54A,0xE54B,0xE54C,0xE54D, +0xE54E,0xE54F,0xE550,0xE551,0xE552,0xE553,0xE554,0xE555, +0xE556,0xE557,0xE558,0xE559,0xE55A,0xE55B,0xE55C,0xE55D, +0xE55E,0xE55F,0xE560,0xE561,0xE562,0xE563,0xE564,0xE565, +0xE566,0xE567,0xE568,0xE569,0xE56A,0xE56B,0xE56C,0xE56D, +0xE56E,0xE56F,0xE570,0xE571,0xE572,0xE573,0xF6C9,0xE574, +0xE575,0xE576,0xE577,0xE578,0xE579,0xE57A,0xE57B,0xE57C, +0xE57D,0xE57E,0xE580,0xE581,0xE582,0xE583,0xE584,0xE585, +0xE586,0xE587,0xE588,0xE589,0xE58A,0xE58B,0xE58C,0xE58D, +0xE58E,0xE58F,0xE590,0xE591,0xE592,0xE593,0xE594,0xE595, +0xE596,0xE597,0xE598,0xE599,0xE59A,0xE59B,0xE59C,0xE59D, +0xE59E,0xE59F,0xF6CA,0xE5A0,0xE640,0xE641,0xE642,0xE643, +0xE644,0xE645,0xE646,0xE647,0xE648,0xE649,0xE64A,0xE64B, +0xE64C,0xE64D,0xE64E,0xE64F,0xE650,0xE651,0xE652,0xE653, +0xE654,0xE655,0xE656,0xE657,0xE658,0xE659,0xE65A,0xE65B, +0xE65C,0xE65D,0xE65E,0xE65F,0xE660,0xE661,0xE662,0xF6CC, +0xE663,0xE664,0xE665,0xE666,0xE667,0xE668,0xE669,0xE66A, +0xE66B,0xE66C,0xE66D,0xE66E,0xE66F,0xE670,0xE671,0xE672, +0xE673,0xE674,0xE675,0xE676,0xE677,0xE678,0xE679,0xE67A, +0xE67B,0xE67C,0xE67D,0xE67E,0xE680,0xE681,0xE682,0xE683, +0xE684,0xE685,0xE686,0xE687,0xE688,0xE689,0xE68A,0xE68B, +0xE68C,0xE68D,0xE68E,0xE68F,0xE690,0xE691,0xE692,0xE693, +0xE694,0xE695,0xE696,0xE697,0xE698,0xE699,0xE69A,0xE69B, +0xE69C,0xE69D,0xF6CB,0xE69E,0xE69F,0xE6A0,0xE740,0xE741, +0xE742,0xE743,0xE744,0xE745,0xE746,0xE747,0xF7E9,0xE748, +0xE749,0xE74A,0xE74B,0xE74C,0xE74D,0xE74E,0xE74F,0xE750, +0xE751,0xE752,0xE753,0xE754,0xE755,0xE756,0xE757,0xE758, +0xE759,0xE75A,0xE75B,0xE75C,0xE75D,0xE75E,0xE75F,0xE760, +0xE761,0xE762,0xE763,0xE764,0xE765,0xE766,0xE767,0xE768, +0xE769,0xE76A,0xE76B,0xE76C,0xE76D,0xE76E,0xE76F,0xE770, +0xE771,0xE772,0xE773,0xE774,0xE775,0xE776,0xE777,0xE778, +0xE779,0xE77A,0xE77B,0xE77C,0xE77D,0xE77E,0xE780,0xE781, +0xE782,0xE783,0xE784,0xE785,0xE786,0xE787,0xE788,0xE789, +0xE78A,0xE78B,0xE78C,0xE78D,0xE78E,0xE78F,0xE790,0xE791, +0xE792,0xE793,0xE794,0xE795,0xE796,0xE797,0xE798,0xE799, +0xE79A,0xE79B,0xE79C,0xE79D,0xE79E,0xE79F,0xE7A0,0xE840, +0xE841,0xE842,0xE843,0xE844,0xE845,0xE846,0xE847,0xE848, +0xE849,0xE84A,0xE84B,0xE84C,0xE84D,0xE84E,0xF6CD,0xE84F, +0xE850,0xE851,0xE852,0xE853,0xE854,0xE855,0xE856,0xE857, +0xE858,0xE859,0xE85A,0xE85B,0xE85C,0xE85D,0xE85E,0xE85F, +0xE860,0xE861,0xE862,0xE863,0xE864,0xE865,0xE866,0xE867, +0xE868,0xE869,0xE86A,0xE86B,0xE86C,0xE86D,0xE86E,0xE86F, +0xE870,0xE871,0xE872,0xE873,0xE874,0xE875,0xE876,0xE877, +0xE878,0xE879,0xE87A,0xF6CE,0xE87B,0xE87C,0xE87D,0xE87E, +0xE880,0xE881,0xE882,0xE883,0xE884,0xE885,0xE886,0xE887, +0xE888,0xE889,0xE88A,0xE88B,0xE88C,0xE88D,0xE88E,0xE88F, +0xE890,0xE891,0xE892,0xE893,0xE894,0xEEC4,0xEEC5,0xEEC6, +0xD5EB,0xB6A4,0xEEC8,0xEEC7,0xEEC9,0xEECA,0xC7A5,0xEECB, +0xEECC,0xE895,0xB7B0,0xB5F6,0xEECD,0xEECF,0xE896,0xEECE, +0xE897,0xB8C6,0xEED0,0xEED1,0xEED2,0xB6DB,0xB3AE,0xD6D3, +0xC4C6,0xB1B5,0xB8D6,0xEED3,0xEED4,0xD4BF,0xC7D5,0xBEFB, +0xCED9,0xB9B3,0xEED6,0xEED5,0xEED8,0xEED7,0xC5A5,0xEED9, +0xEEDA,0xC7AE,0xEEDB,0xC7AF,0xEEDC,0xB2A7,0xEEDD,0xEEDE, +0xEEDF,0xEEE0,0xEEE1,0xD7EA,0xEEE2,0xEEE3,0xBCD8,0xEEE4, +0xD3CB,0xCCFA,0xB2AC,0xC1E5,0xEEE5,0xC7A6,0xC3AD,0xE898, +0xEEE6,0xEEE7,0xEEE8,0xEEE9,0xEEEA,0xEEEB,0xEEEC,0xE899, +0xEEED,0xEEEE,0xEEEF,0xE89A,0xE89B,0xEEF0,0xEEF1,0xEEF2, +0xEEF4,0xEEF3,0xE89C,0xEEF5,0xCDAD,0xC2C1,0xEEF6,0xEEF7, +0xEEF8,0xD5A1,0xEEF9,0xCFB3,0xEEFA,0xEEFB,0xE89D,0xEEFC, +0xEEFD,0xEFA1,0xEEFE,0xEFA2,0xB8F5,0xC3FA,0xEFA3,0xEFA4, +0xBDC2,0xD2BF,0xB2F9,0xEFA5,0xEFA6,0xEFA7,0xD2F8,0xEFA8, +0xD6FD,0xEFA9,0xC6CC,0xE89E,0xEFAA,0xEFAB,0xC1B4,0xEFAC, +0xCFFA,0xCBF8,0xEFAE,0xEFAD,0xB3FA,0xB9F8,0xEFAF,0xEFB0, +0xD0E2,0xEFB1,0xEFB2,0xB7E6,0xD0BF,0xEFB3,0xEFB4,0xEFB5, +0xC8F1,0xCCE0,0xEFB6,0xEFB7,0xEFB8,0xEFB9,0xEFBA,0xD5E0, +0xEFBB,0xB4ED,0xC3AA,0xEFBC,0xE89F,0xEFBD,0xEFBE,0xEFBF, +0xE8A0,0xCEFD,0xEFC0,0xC2E0,0xB4B8,0xD7B6,0xBDF5,0xE940, +0xCFC7,0xEFC3,0xEFC1,0xEFC2,0xEFC4,0xB6A7,0xBCFC,0xBEE2, +0xC3CC,0xEFC5,0xEFC6,0xE941,0xEFC7,0xEFCF,0xEFC8,0xEFC9, +0xEFCA,0xC7C2,0xEFF1,0xB6CD,0xEFCB,0xE942,0xEFCC,0xEFCD, +0xB6C6,0xC3BE,0xEFCE,0xE943,0xEFD0,0xEFD1,0xEFD2,0xD5F2, +0xE944,0xEFD3,0xC4F7,0xE945,0xEFD4,0xC4F8,0xEFD5,0xEFD6, +0xB8E4,0xB0F7,0xEFD7,0xEFD8,0xEFD9,0xE946,0xEFDA,0xEFDB, +0xEFDC,0xEFDD,0xE947,0xEFDE,0xBEB5,0xEFE1,0xEFDF,0xEFE0, +0xE948,0xEFE2,0xEFE3,0xC1CD,0xEFE4,0xEFE5,0xEFE6,0xEFE7, +0xEFE8,0xEFE9,0xEFEA,0xEFEB,0xEFEC,0xC0D8,0xE949,0xEFED, +0xC1AD,0xEFEE,0xEFEF,0xEFF0,0xE94A,0xE94B,0xCFE2,0xE94C, +0xE94D,0xE94E,0xE94F,0xE950,0xE951,0xE952,0xE953,0xB3A4, +0xE954,0xE955,0xE956,0xE957,0xE958,0xE959,0xE95A,0xE95B, +0xE95C,0xE95D,0xE95E,0xE95F,0xE960,0xE961,0xE962,0xE963, +0xE964,0xE965,0xE966,0xE967,0xE968,0xE969,0xE96A,0xE96B, +0xE96C,0xE96D,0xE96E,0xE96F,0xE970,0xE971,0xE972,0xE973, +0xE974,0xE975,0xE976,0xE977,0xE978,0xE979,0xE97A,0xE97B, +0xE97C,0xE97D,0xE97E,0xE980,0xE981,0xE982,0xE983,0xE984, +0xE985,0xE986,0xE987,0xE988,0xE989,0xE98A,0xE98B,0xE98C, +0xE98D,0xE98E,0xE98F,0xE990,0xE991,0xE992,0xE993,0xE994, +0xE995,0xE996,0xE997,0xE998,0xE999,0xE99A,0xE99B,0xE99C, +0xE99D,0xE99E,0xE99F,0xE9A0,0xEA40,0xEA41,0xEA42,0xEA43, +0xEA44,0xEA45,0xEA46,0xEA47,0xEA48,0xEA49,0xEA4A,0xEA4B, +0xEA4C,0xEA4D,0xEA4E,0xEA4F,0xEA50,0xEA51,0xEA52,0xEA53, +0xEA54,0xEA55,0xEA56,0xEA57,0xEA58,0xEA59,0xEA5A,0xEA5B, +0xC3C5,0xE3C5,0xC9C1,0xE3C6,0xEA5C,0xB1D5,0xCECA,0xB4B3, +0xC8F2,0xE3C7,0xCFD0,0xE3C8,0xBCE4,0xE3C9,0xE3CA,0xC3C6, +0xD5A2,0xC4D6,0xB9EB,0xCEC5,0xE3CB,0xC3F6,0xE3CC,0xEA5D, +0xB7A7,0xB8F3,0xBAD2,0xE3CD,0xE3CE,0xD4C4,0xE3CF,0xEA5E, +0xE3D0,0xD1CB,0xE3D1,0xE3D2,0xE3D3,0xE3D4,0xD1D6,0xE3D5, +0xB2FB,0xC0BB,0xE3D6,0xEA5F,0xC0AB,0xE3D7,0xE3D8,0xE3D9, +0xEA60,0xE3DA,0xE3DB,0xEA61,0xB8B7,0xDAE2,0xEA62,0xB6D3, +0xEA63,0xDAE4,0xDAE3,0xEA64,0xEA65,0xEA66,0xEA67,0xEA68, +0xEA69,0xEA6A,0xDAE6,0xEA6B,0xEA6C,0xEA6D,0xC8EE,0xEA6E, +0xEA6F,0xDAE5,0xB7C0,0xD1F4,0xD2F5,0xD5F3,0xBDD7,0xEA70, +0xEA71,0xEA72,0xEA73,0xD7E8,0xDAE8,0xDAE7,0xEA74,0xB0A2, +0xCDD3,0xEA75,0xDAE9,0xEA76,0xB8BD,0xBCCA,0xC2BD,0xC2A4, +0xB3C2,0xDAEA,0xEA77,0xC2AA,0xC4B0,0xBDB5,0xEA78,0xEA79, +0xCFDE,0xEA7A,0xEA7B,0xEA7C,0xDAEB,0xC9C2,0xEA7D,0xEA7E, +0xEA80,0xEA81,0xEA82,0xB1DD,0xEA83,0xEA84,0xEA85,0xDAEC, +0xEA86,0xB6B8,0xD4BA,0xEA87,0xB3FD,0xEA88,0xEA89,0xDAED, +0xD4C9,0xCFD5,0xC5E3,0xEA8A,0xDAEE,0xEA8B,0xEA8C,0xEA8D, +0xEA8E,0xEA8F,0xDAEF,0xEA90,0xDAF0,0xC1EA,0xCCD5,0xCFDD, +0xEA91,0xEA92,0xEA93,0xEA94,0xEA95,0xEA96,0xEA97,0xEA98, +0xEA99,0xEA9A,0xEA9B,0xEA9C,0xEA9D,0xD3E7,0xC2A1,0xEA9E, +0xDAF1,0xEA9F,0xEAA0,0xCBE5,0xEB40,0xDAF2,0xEB41,0xCBE6, +0xD2FE,0xEB42,0xEB43,0xEB44,0xB8F4,0xEB45,0xEB46,0xDAF3, +0xB0AF,0xCFB6,0xEB47,0xEB48,0xD5CF,0xEB49,0xEB4A,0xEB4B, +0xEB4C,0xEB4D,0xEB4E,0xEB4F,0xEB50,0xEB51,0xEB52,0xCBED, +0xEB53,0xEB54,0xEB55,0xEB56,0xEB57,0xEB58,0xEB59,0xEB5A, +0xDAF4,0xEB5B,0xEB5C,0xE3C4,0xEB5D,0xEB5E,0xC1A5,0xEB5F, +0xEB60,0xF6BF,0xEB61,0xEB62,0xF6C0,0xF6C1,0xC4D1,0xEB63, +0xC8B8,0xD1E3,0xEB64,0xEB65,0xD0DB,0xD1C5,0xBCAF,0xB9CD, +0xEB66,0xEFF4,0xEB67,0xEB68,0xB4C6,0xD3BA,0xF6C2,0xB3FB, +0xEB69,0xEB6A,0xF6C3,0xEB6B,0xEB6C,0xB5F1,0xEB6D,0xEB6E, +0xEB6F,0xEB70,0xEB71,0xEB72,0xEB73,0xEB74,0xEB75,0xEB76, +0xF6C5,0xEB77,0xEB78,0xEB79,0xEB7A,0xEB7B,0xEB7C,0xEB7D, +0xD3EA,0xF6A7,0xD1A9,0xEB7E,0xEB80,0xEB81,0xEB82,0xF6A9, +0xEB83,0xEB84,0xEB85,0xF6A8,0xEB86,0xEB87,0xC1E3,0xC0D7, +0xEB88,0xB1A2,0xEB89,0xEB8A,0xEB8B,0xEB8C,0xCEED,0xEB8D, +0xD0E8,0xF6AB,0xEB8E,0xEB8F,0xCFF6,0xEB90,0xF6AA,0xD5F0, +0xF6AC,0xC3B9,0xEB91,0xEB92,0xEB93,0xBBF4,0xF6AE,0xF6AD, +0xEB94,0xEB95,0xEB96,0xC4DE,0xEB97,0xEB98,0xC1D8,0xEB99, +0xEB9A,0xEB9B,0xEB9C,0xEB9D,0xCBAA,0xEB9E,0xCFBC,0xEB9F, +0xEBA0,0xEC40,0xEC41,0xEC42,0xEC43,0xEC44,0xEC45,0xEC46, +0xEC47,0xEC48,0xF6AF,0xEC49,0xEC4A,0xF6B0,0xEC4B,0xEC4C, +0xF6B1,0xEC4D,0xC2B6,0xEC4E,0xEC4F,0xEC50,0xEC51,0xEC52, +0xB0D4,0xC5F9,0xEC53,0xEC54,0xEC55,0xEC56,0xF6B2,0xEC57, +0xEC58,0xEC59,0xEC5A,0xEC5B,0xEC5C,0xEC5D,0xEC5E,0xEC5F, +0xEC60,0xEC61,0xEC62,0xEC63,0xEC64,0xEC65,0xEC66,0xEC67, +0xEC68,0xEC69,0xC7E0,0xF6A6,0xEC6A,0xEC6B,0xBEB8,0xEC6C, +0xEC6D,0xBEB2,0xEC6E,0xB5E5,0xEC6F,0xEC70,0xB7C7,0xEC71, +0xBFBF,0xC3D2,0xC3E6,0xEC72,0xEC73,0xD8CC,0xEC74,0xEC75, +0xEC76,0xB8EF,0xEC77,0xEC78,0xEC79,0xEC7A,0xEC7B,0xEC7C, +0xEC7D,0xEC7E,0xEC80,0xBDF9,0xD1A5,0xEC81,0xB0D0,0xEC82, +0xEC83,0xEC84,0xEC85,0xEC86,0xF7B0,0xEC87,0xEC88,0xEC89, +0xEC8A,0xEC8B,0xEC8C,0xEC8D,0xEC8E,0xF7B1,0xEC8F,0xEC90, +0xEC91,0xEC92,0xEC93,0xD0AC,0xEC94,0xB0B0,0xEC95,0xEC96, +0xEC97,0xF7B2,0xF7B3,0xEC98,0xF7B4,0xEC99,0xEC9A,0xEC9B, +0xC7CA,0xEC9C,0xEC9D,0xEC9E,0xEC9F,0xECA0,0xED40,0xED41, +0xBECF,0xED42,0xED43,0xF7B7,0xED44,0xED45,0xED46,0xED47, +0xED48,0xED49,0xED4A,0xF7B6,0xED4B,0xB1DE,0xED4C,0xF7B5, +0xED4D,0xED4E,0xF7B8,0xED4F,0xF7B9,0xED50,0xED51,0xED52, +0xED53,0xED54,0xED55,0xED56,0xED57,0xED58,0xED59,0xED5A, +0xED5B,0xED5C,0xED5D,0xED5E,0xED5F,0xED60,0xED61,0xED62, +0xED63,0xED64,0xED65,0xED66,0xED67,0xED68,0xED69,0xED6A, +0xED6B,0xED6C,0xED6D,0xED6E,0xED6F,0xED70,0xED71,0xED72, +0xED73,0xED74,0xED75,0xED76,0xED77,0xED78,0xED79,0xED7A, +0xED7B,0xED7C,0xED7D,0xED7E,0xED80,0xED81,0xCEA4,0xC8CD, +0xED82,0xBAAB,0xE8B8,0xE8B9,0xE8BA,0xBEC2,0xED83,0xED84, +0xED85,0xED86,0xED87,0xD2F4,0xED88,0xD4CF,0xC9D8,0xED89, +0xED8A,0xED8B,0xED8C,0xED8D,0xED8E,0xED8F,0xED90,0xED91, +0xED92,0xED93,0xED94,0xED95,0xED96,0xED97,0xED98,0xED99, +0xED9A,0xED9B,0xED9C,0xED9D,0xED9E,0xED9F,0xEDA0,0xEE40, +0xEE41,0xEE42,0xEE43,0xEE44,0xEE45,0xEE46,0xEE47,0xEE48, +0xEE49,0xEE4A,0xEE4B,0xEE4C,0xEE4D,0xEE4E,0xEE4F,0xEE50, +0xEE51,0xEE52,0xEE53,0xEE54,0xEE55,0xEE56,0xEE57,0xEE58, +0xEE59,0xEE5A,0xEE5B,0xEE5C,0xEE5D,0xEE5E,0xEE5F,0xEE60, +0xEE61,0xEE62,0xEE63,0xEE64,0xEE65,0xEE66,0xEE67,0xEE68, +0xEE69,0xEE6A,0xEE6B,0xEE6C,0xEE6D,0xEE6E,0xEE6F,0xEE70, +0xEE71,0xEE72,0xEE73,0xEE74,0xEE75,0xEE76,0xEE77,0xEE78, +0xEE79,0xEE7A,0xEE7B,0xEE7C,0xEE7D,0xEE7E,0xEE80,0xEE81, +0xEE82,0xEE83,0xEE84,0xEE85,0xEE86,0xEE87,0xEE88,0xEE89, +0xEE8A,0xEE8B,0xEE8C,0xEE8D,0xEE8E,0xEE8F,0xEE90,0xEE91, +0xEE92,0xEE93,0xEE94,0xEE95,0xEE96,0xEE97,0xEE98,0xEE99, +0xEE9A,0xEE9B,0xEE9C,0xEE9D,0xEE9E,0xEE9F,0xEEA0,0xEF40, +0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xD2B3,0xB6A5,0xC7EA, +0xF1FC,0xCFEE,0xCBB3,0xD0EB,0xE7EF,0xCDE7,0xB9CB,0xB6D9, +0xF1FD,0xB0E4,0xCBCC,0xF1FE,0xD4A4,0xC2AD,0xC1EC,0xC6C4, +0xBEB1,0xF2A1,0xBCD5,0xEF46,0xF2A2,0xF2A3,0xEF47,0xF2A4, +0xD2C3,0xC6B5,0xEF48,0xCDC7,0xF2A5,0xEF49,0xD3B1,0xBFC5, +0xCCE2,0xEF4A,0xF2A6,0xF2A7,0xD1D5,0xB6EE,0xF2A8,0xF2A9, +0xB5DF,0xF2AA,0xF2AB,0xEF4B,0xB2FC,0xF2AC,0xF2AD,0xC8A7, +0xEF4C,0xEF4D,0xEF4E,0xEF4F,0xEF50,0xEF51,0xEF52,0xEF53, +0xEF54,0xEF55,0xEF56,0xEF57,0xEF58,0xEF59,0xEF5A,0xEF5B, +0xEF5C,0xEF5D,0xEF5E,0xEF5F,0xEF60,0xEF61,0xEF62,0xEF63, +0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0xEF6B, +0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0xB7E7,0xEF72, +0xEF73,0xECA9,0xECAA,0xECAB,0xEF74,0xECAC,0xEF75,0xEF76, +0xC6AE,0xECAD,0xECAE,0xEF77,0xEF78,0xEF79,0xB7C9,0xCAB3, +0xEF7A,0xEF7B,0xEF7C,0xEF7D,0xEF7E,0xEF80,0xEF81,0xE2B8, +0xF7CF,0xEF82,0xEF83,0xEF84,0xEF85,0xEF86,0xEF87,0xEF88, +0xEF89,0xEF8A,0xEF8B,0xEF8C,0xEF8D,0xEF8E,0xEF8F,0xEF90, +0xEF91,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0xEF97,0xEF98, +0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0xEF9F,0xEFA0, +0xF040,0xF041,0xF042,0xF043,0xF044,0xF7D0,0xF045,0xF046, +0xB2CD,0xF047,0xF048,0xF049,0xF04A,0xF04B,0xF04C,0xF04D, +0xF04E,0xF04F,0xF050,0xF051,0xF052,0xF053,0xF054,0xF055, +0xF056,0xF057,0xF058,0xF059,0xF05A,0xF05B,0xF05C,0xF05D, +0xF05E,0xF05F,0xF060,0xF061,0xF062,0xF063,0xF7D1,0xF064, +0xF065,0xF066,0xF067,0xF068,0xF069,0xF06A,0xF06B,0xF06C, +0xF06D,0xF06E,0xF06F,0xF070,0xF071,0xF072,0xF073,0xF074, +0xF075,0xF076,0xF077,0xF078,0xF079,0xF07A,0xF07B,0xF07C, +0xF07D,0xF07E,0xF080,0xF081,0xF082,0xF083,0xF084,0xF085, +0xF086,0xF087,0xF088,0xF089,0xF7D3,0xF7D2,0xF08A,0xF08B, +0xF08C,0xF08D,0xF08E,0xF08F,0xF090,0xF091,0xF092,0xF093, +0xF094,0xF095,0xF096,0xE2BB,0xF097,0xBCA2,0xF098,0xE2BC, +0xE2BD,0xE2BE,0xE2BF,0xE2C0,0xE2C1,0xB7B9,0xD2FB,0xBDA4, +0xCACE,0xB1A5,0xCBC7,0xF099,0xE2C2,0xB6FC,0xC8C4,0xE2C3, +0xF09A,0xF09B,0xBDC8,0xF09C,0xB1FD,0xE2C4,0xF09D,0xB6F6, +0xE2C5,0xC4D9,0xF09E,0xF09F,0xE2C6,0xCFDA,0xB9DD,0xE2C7, +0xC0A1,0xF0A0,0xE2C8,0xB2F6,0xF140,0xE2C9,0xF141,0xC1F3, +0xE2CA,0xE2CB,0xC2F8,0xE2CC,0xE2CD,0xE2CE,0xCAD7,0xD8B8, +0xD9E5,0xCFE3,0xF142,0xF143,0xF144,0xF145,0xF146,0xF147, +0xF148,0xF149,0xF14A,0xF14B,0xF14C,0xF0A5,0xF14D,0xF14E, +0xDCB0,0xF14F,0xF150,0xF151,0xF152,0xF153,0xF154,0xF155, +0xF156,0xF157,0xF158,0xF159,0xF15A,0xF15B,0xF15C,0xF15D, +0xF15E,0xF15F,0xF160,0xF161,0xF162,0xF163,0xF164,0xF165, +0xF166,0xF167,0xF168,0xF169,0xF16A,0xF16B,0xF16C,0xF16D, +0xF16E,0xF16F,0xF170,0xF171,0xF172,0xF173,0xF174,0xF175, +0xF176,0xF177,0xF178,0xF179,0xF17A,0xF17B,0xF17C,0xF17D, +0xF17E,0xF180,0xF181,0xF182,0xF183,0xF184,0xF185,0xF186, +0xF187,0xF188,0xF189,0xF18A,0xF18B,0xF18C,0xF18D,0xF18E, +0xF18F,0xF190,0xF191,0xF192,0xF193,0xF194,0xF195,0xF196, +0xF197,0xF198,0xF199,0xF19A,0xF19B,0xF19C,0xF19D,0xF19E, +0xF19F,0xF1A0,0xF240,0xF241,0xF242,0xF243,0xF244,0xF245, +0xF246,0xF247,0xF248,0xF249,0xF24A,0xF24B,0xF24C,0xF24D, +0xF24E,0xF24F,0xF250,0xF251,0xF252,0xF253,0xF254,0xF255, +0xF256,0xF257,0xF258,0xF259,0xF25A,0xF25B,0xF25C,0xF25D, +0xF25E,0xF25F,0xF260,0xF261,0xF262,0xF263,0xF264,0xF265, +0xF266,0xF267,0xF268,0xF269,0xF26A,0xF26B,0xF26C,0xF26D, +0xF26E,0xF26F,0xF270,0xF271,0xF272,0xF273,0xF274,0xF275, +0xF276,0xF277,0xF278,0xF279,0xF27A,0xF27B,0xF27C,0xF27D, +0xF27E,0xF280,0xF281,0xF282,0xF283,0xF284,0xF285,0xF286, +0xF287,0xF288,0xF289,0xF28A,0xF28B,0xF28C,0xF28D,0xF28E, +0xF28F,0xF290,0xF291,0xF292,0xF293,0xF294,0xF295,0xF296, +0xF297,0xF298,0xF299,0xF29A,0xF29B,0xF29C,0xF29D,0xF29E, +0xF29F,0xF2A0,0xF340,0xF341,0xF342,0xF343,0xF344,0xF345, +0xF346,0xF347,0xF348,0xF349,0xF34A,0xF34B,0xF34C,0xF34D, +0xF34E,0xF34F,0xF350,0xF351,0xC2ED,0xD4A6,0xCDD4,0xD1B1, +0xB3DB,0xC7FD,0xF352,0xB2B5,0xC2BF,0xE6E0,0xCABB,0xE6E1, +0xE6E2,0xBED4,0xE6E3,0xD7A4,0xCDD5,0xE6E5,0xBCDD,0xE6E4, +0xE6E6,0xE6E7,0xC2EE,0xF353,0xBDBE,0xE6E8,0xC2E6,0xBAA7, +0xE6E9,0xF354,0xE6EA,0xB3D2,0xD1E9,0xF355,0xF356,0xBFA5, +0xE6EB,0xC6EF,0xE6EC,0xE6ED,0xF357,0xF358,0xE6EE,0xC6AD, +0xE6EF,0xF359,0xC9A7,0xE6F0,0xE6F1,0xE6F2,0xE5B9,0xE6F3, +0xE6F4,0xC2E2,0xE6F5,0xE6F6,0xD6E8,0xE6F7,0xF35A,0xE6F8, +0xB9C7,0xF35B,0xF35C,0xF35D,0xF35E,0xF35F,0xF360,0xF361, +0xF7BB,0xF7BA,0xF362,0xF363,0xF364,0xF365,0xF7BE,0xF7BC, +0xBAA1,0xF366,0xF7BF,0xF367,0xF7C0,0xF368,0xF369,0xF36A, +0xF7C2,0xF7C1,0xF7C4,0xF36B,0xF36C,0xF7C3,0xF36D,0xF36E, +0xF36F,0xF370,0xF371,0xF7C5,0xF7C6,0xF372,0xF373,0xF374, +0xF375,0xF7C7,0xF376,0xCBE8,0xF377,0xF378,0xF379,0xF37A, +0xB8DF,0xF37B,0xF37C,0xF37D,0xF37E,0xF380,0xF381,0xF7D4, +0xF382,0xF7D5,0xF383,0xF384,0xF385,0xF386,0xF7D6,0xF387, +0xF388,0xF389,0xF38A,0xF7D8,0xF38B,0xF7DA,0xF38C,0xF7D7, +0xF38D,0xF38E,0xF38F,0xF390,0xF391,0xF392,0xF393,0xF394, +0xF395,0xF7DB,0xF396,0xF7D9,0xF397,0xF398,0xF399,0xF39A, +0xF39B,0xF39C,0xF39D,0xD7D7,0xF39E,0xF39F,0xF3A0,0xF440, +0xF7DC,0xF441,0xF442,0xF443,0xF444,0xF445,0xF446,0xF7DD, +0xF447,0xF448,0xF449,0xF7DE,0xF44A,0xF44B,0xF44C,0xF44D, +0xF44E,0xF44F,0xF450,0xF451,0xF452,0xF453,0xF454,0xF7DF, +0xF455,0xF456,0xF457,0xF7E0,0xF458,0xF459,0xF45A,0xF45B, +0xF45C,0xF45D,0xF45E,0xF45F,0xF460,0xF461,0xF462,0xDBCB, +0xF463,0xF464,0xD8AA,0xF465,0xF466,0xF467,0xF468,0xF469, +0xF46A,0xF46B,0xF46C,0xE5F7,0xB9ED,0xF46D,0xF46E,0xF46F, +0xF470,0xBFFD,0xBBEA,0xF7C9,0xC6C7,0xF7C8,0xF471,0xF7CA, +0xF7CC,0xF7CB,0xF472,0xF473,0xF474,0xF7CD,0xF475,0xCEBA, +0xF476,0xF7CE,0xF477,0xF478,0xC4A7,0xF479,0xF47A,0xF47B, +0xF47C,0xF47D,0xF47E,0xF480,0xF481,0xF482,0xF483,0xF484, +0xF485,0xF486,0xF487,0xF488,0xF489,0xF48A,0xF48B,0xF48C, +0xF48D,0xF48E,0xF48F,0xF490,0xF491,0xF492,0xF493,0xF494, +0xF495,0xF496,0xF497,0xF498,0xF499,0xF49A,0xF49B,0xF49C, +0xF49D,0xF49E,0xF49F,0xF4A0,0xF540,0xF541,0xF542,0xF543, +0xF544,0xF545,0xF546,0xF547,0xF548,0xF549,0xF54A,0xF54B, +0xF54C,0xF54D,0xF54E,0xF54F,0xF550,0xF551,0xF552,0xF553, +0xF554,0xF555,0xF556,0xF557,0xF558,0xF559,0xF55A,0xF55B, +0xF55C,0xF55D,0xF55E,0xF55F,0xF560,0xF561,0xF562,0xF563, +0xF564,0xF565,0xF566,0xF567,0xF568,0xF569,0xF56A,0xF56B, +0xF56C,0xF56D,0xF56E,0xF56F,0xF570,0xF571,0xF572,0xF573, +0xF574,0xF575,0xF576,0xF577,0xF578,0xF579,0xF57A,0xF57B, +0xF57C,0xF57D,0xF57E,0xF580,0xF581,0xF582,0xF583,0xF584, +0xF585,0xF586,0xF587,0xF588,0xF589,0xF58A,0xF58B,0xF58C, +0xF58D,0xF58E,0xF58F,0xF590,0xF591,0xF592,0xF593,0xF594, +0xF595,0xF596,0xF597,0xF598,0xF599,0xF59A,0xF59B,0xF59C, +0xF59D,0xF59E,0xF59F,0xF5A0,0xF640,0xF641,0xF642,0xF643, +0xF644,0xF645,0xF646,0xF647,0xF648,0xF649,0xF64A,0xF64B, +0xF64C,0xF64D,0xF64E,0xF64F,0xF650,0xF651,0xF652,0xF653, +0xF654,0xF655,0xF656,0xF657,0xF658,0xF659,0xF65A,0xF65B, +0xF65C,0xF65D,0xF65E,0xF65F,0xF660,0xF661,0xF662,0xF663, +0xF664,0xF665,0xF666,0xF667,0xF668,0xF669,0xF66A,0xF66B, +0xF66C,0xF66D,0xF66E,0xF66F,0xF670,0xF671,0xF672,0xF673, +0xF674,0xF675,0xF676,0xF677,0xF678,0xF679,0xF67A,0xF67B, +0xF67C,0xF67D,0xF67E,0xF680,0xF681,0xF682,0xF683,0xF684, +0xF685,0xF686,0xF687,0xF688,0xF689,0xF68A,0xF68B,0xF68C, +0xF68D,0xF68E,0xF68F,0xF690,0xF691,0xF692,0xF693,0xF694, +0xF695,0xF696,0xF697,0xF698,0xF699,0xF69A,0xF69B,0xF69C, +0xF69D,0xF69E,0xF69F,0xF6A0,0xF740,0xF741,0xF742,0xF743, +0xF744,0xF745,0xF746,0xF747,0xF748,0xF749,0xF74A,0xF74B, +0xF74C,0xF74D,0xF74E,0xF74F,0xF750,0xF751,0xF752,0xF753, +0xF754,0xF755,0xF756,0xF757,0xF758,0xF759,0xF75A,0xF75B, +0xF75C,0xF75D,0xF75E,0xF75F,0xF760,0xF761,0xF762,0xF763, +0xF764,0xF765,0xF766,0xF767,0xF768,0xF769,0xF76A,0xF76B, +0xF76C,0xF76D,0xF76E,0xF76F,0xF770,0xF771,0xF772,0xF773, +0xF774,0xF775,0xF776,0xF777,0xF778,0xF779,0xF77A,0xF77B, +0xF77C,0xF77D,0xF77E,0xF780,0xD3E3,0xF781,0xF782,0xF6CF, +0xF783,0xC2B3,0xF6D0,0xF784,0xF785,0xF6D1,0xF6D2,0xF6D3, +0xF6D4,0xF786,0xF787,0xF6D6,0xF788,0xB1AB,0xF6D7,0xF789, +0xF6D8,0xF6D9,0xF6DA,0xF78A,0xF6DB,0xF6DC,0xF78B,0xF78C, +0xF78D,0xF78E,0xF6DD,0xF6DE,0xCFCA,0xF78F,0xF6DF,0xF6E0, +0xF6E1,0xF6E2,0xF6E3,0xF6E4,0xC0F0,0xF6E5,0xF6E6,0xF6E7, +0xF6E8,0xF6E9,0xF790,0xF6EA,0xF791,0xF6EB,0xF6EC,0xF792, +0xF6ED,0xF6EE,0xF6EF,0xF6F0,0xF6F1,0xF6F2,0xF6F3,0xF6F4, +0xBEA8,0xF793,0xF6F5,0xF6F6,0xF6F7,0xF6F8,0xF794,0xF795, +0xF796,0xF797,0xF798,0xC8FA,0xF6F9,0xF6FA,0xF6FB,0xF6FC, +0xF799,0xF79A,0xF6FD,0xF6FE,0xF7A1,0xF7A2,0xF7A3,0xF7A4, +0xF7A5,0xF79B,0xF79C,0xF7A6,0xF7A7,0xF7A8,0xB1EE,0xF7A9, +0xF7AA,0xF7AB,0xF79D,0xF79E,0xF7AC,0xF7AD,0xC1DB,0xF7AE, +0xF79F,0xF7A0,0xF7AF,0xF840,0xF841,0xF842,0xF843,0xF844, +0xF845,0xF846,0xF847,0xF848,0xF849,0xF84A,0xF84B,0xF84C, +0xF84D,0xF84E,0xF84F,0xF850,0xF851,0xF852,0xF853,0xF854, +0xF855,0xF856,0xF857,0xF858,0xF859,0xF85A,0xF85B,0xF85C, +0xF85D,0xF85E,0xF85F,0xF860,0xF861,0xF862,0xF863,0xF864, +0xF865,0xF866,0xF867,0xF868,0xF869,0xF86A,0xF86B,0xF86C, +0xF86D,0xF86E,0xF86F,0xF870,0xF871,0xF872,0xF873,0xF874, +0xF875,0xF876,0xF877,0xF878,0xF879,0xF87A,0xF87B,0xF87C, +0xF87D,0xF87E,0xF880,0xF881,0xF882,0xF883,0xF884,0xF885, +0xF886,0xF887,0xF888,0xF889,0xF88A,0xF88B,0xF88C,0xF88D, +0xF88E,0xF88F,0xF890,0xF891,0xF892,0xF893,0xF894,0xF895, +0xF896,0xF897,0xF898,0xF899,0xF89A,0xF89B,0xF89C,0xF89D, +0xF89E,0xF89F,0xF8A0,0xF940,0xF941,0xF942,0xF943,0xF944, +0xF945,0xF946,0xF947,0xF948,0xF949,0xF94A,0xF94B,0xF94C, +0xF94D,0xF94E,0xF94F,0xF950,0xF951,0xF952,0xF953,0xF954, +0xF955,0xF956,0xF957,0xF958,0xF959,0xF95A,0xF95B,0xF95C, +0xF95D,0xF95E,0xF95F,0xF960,0xF961,0xF962,0xF963,0xF964, +0xF965,0xF966,0xF967,0xF968,0xF969,0xF96A,0xF96B,0xF96C, +0xF96D,0xF96E,0xF96F,0xF970,0xF971,0xF972,0xF973,0xF974, +0xF975,0xF976,0xF977,0xF978,0xF979,0xF97A,0xF97B,0xF97C, +0xF97D,0xF97E,0xF980,0xF981,0xF982,0xF983,0xF984,0xF985, +0xF986,0xF987,0xF988,0xF989,0xF98A,0xF98B,0xF98C,0xF98D, +0xF98E,0xF98F,0xF990,0xF991,0xF992,0xF993,0xF994,0xF995, +0xF996,0xF997,0xF998,0xF999,0xF99A,0xF99B,0xF99C,0xF99D, +0xF99E,0xF99F,0xF9A0,0xFA40,0xFA41,0xFA42,0xFA43,0xFA44, +0xFA45,0xFA46,0xFA47,0xFA48,0xFA49,0xFA4A,0xFA4B,0xFA4C, +0xFA4D,0xFA4E,0xFA4F,0xFA50,0xFA51,0xFA52,0xFA53,0xFA54, +0xFA55,0xFA56,0xFA57,0xFA58,0xFA59,0xFA5A,0xFA5B,0xFA5C, +0xFA5D,0xFA5E,0xFA5F,0xFA60,0xFA61,0xFA62,0xFA63,0xFA64, +0xFA65,0xFA66,0xFA67,0xFA68,0xFA69,0xFA6A,0xFA6B,0xFA6C, +0xFA6D,0xFA6E,0xFA6F,0xFA70,0xFA71,0xFA72,0xFA73,0xFA74, +0xFA75,0xFA76,0xFA77,0xFA78,0xFA79,0xFA7A,0xFA7B,0xFA7C, +0xFA7D,0xFA7E,0xFA80,0xFA81,0xFA82,0xFA83,0xFA84,0xFA85, +0xFA86,0xFA87,0xFA88,0xFA89,0xFA8A,0xFA8B,0xFA8C,0xFA8D, +0xFA8E,0xFA8F,0xFA90,0xFA91,0xFA92,0xFA93,0xFA94,0xFA95, +0xFA96,0xFA97,0xFA98,0xFA99,0xFA9A,0xFA9B,0xFA9C,0xFA9D, +0xFA9E,0xFA9F,0xFAA0,0xFB40,0xFB41,0xFB42,0xFB43,0xFB44, +0xFB45,0xFB46,0xFB47,0xFB48,0xFB49,0xFB4A,0xFB4B,0xFB4C, +0xFB4D,0xFB4E,0xFB4F,0xFB50,0xFB51,0xFB52,0xFB53,0xFB54, +0xFB55,0xFB56,0xFB57,0xFB58,0xFB59,0xFB5A,0xFB5B,0xC4F1, +0xF0AF,0xBCA6,0xF0B0,0xC3F9,0xFB5C,0xC5B8,0xD1BB,0xFB5D, +0xF0B1,0xF0B2,0xF0B3,0xF0B4,0xF0B5,0xD1BC,0xFB5E,0xD1EC, +0xFB5F,0xF0B7,0xF0B6,0xD4A7,0xFB60,0xCDD2,0xF0B8,0xF0BA, +0xF0B9,0xF0BB,0xF0BC,0xFB61,0xFB62,0xB8EB,0xF0BD,0xBAE8, +0xFB63,0xF0BE,0xF0BF,0xBEE9,0xF0C0,0xB6EC,0xF0C1,0xF0C2, +0xF0C3,0xF0C4,0xC8B5,0xF0C5,0xF0C6,0xFB64,0xF0C7,0xC5F4, +0xFB65,0xF0C8,0xFB66,0xFB67,0xFB68,0xF0C9,0xFB69,0xF0CA, +0xF7BD,0xFB6A,0xF0CB,0xF0CC,0xF0CD,0xFB6B,0xF0CE,0xFB6C, +0xFB6D,0xFB6E,0xFB6F,0xF0CF,0xBAD7,0xFB70,0xF0D0,0xF0D1, +0xF0D2,0xF0D3,0xF0D4,0xF0D5,0xF0D6,0xF0D8,0xFB71,0xFB72, +0xD3A5,0xF0D7,0xFB73,0xF0D9,0xFB74,0xFB75,0xFB76,0xFB77, +0xFB78,0xFB79,0xFB7A,0xFB7B,0xFB7C,0xFB7D,0xF5BA,0xC2B9, +0xFB7E,0xFB80,0xF7E4,0xFB81,0xFB82,0xFB83,0xFB84,0xF7E5, +0xF7E6,0xFB85,0xFB86,0xF7E7,0xFB87,0xFB88,0xFB89,0xFB8A, +0xFB8B,0xFB8C,0xF7E8,0xC2B4,0xFB8D,0xFB8E,0xFB8F,0xFB90, +0xFB91,0xFB92,0xFB93,0xFB94,0xFB95,0xF7EA,0xFB96,0xF7EB, +0xFB97,0xFB98,0xFB99,0xFB9A,0xFB9B,0xFB9C,0xC2F3,0xFB9D, +0xFB9E,0xFB9F,0xFBA0,0xFC40,0xFC41,0xFC42,0xFC43,0xFC44, +0xFC45,0xFC46,0xFC47,0xFC48,0xF4F0,0xFC49,0xFC4A,0xFC4B, +0xF4EF,0xFC4C,0xFC4D,0xC2E9,0xFC4E,0xF7E1,0xF7E2,0xFC4F, +0xFC50,0xFC51,0xFC52,0xFC53,0xBBC6,0xFC54,0xFC55,0xFC56, +0xFC57,0xD9E4,0xFC58,0xFC59,0xFC5A,0xCAF2,0xC0E8,0xF0A4, +0xFC5B,0xBADA,0xFC5C,0xFC5D,0xC7AD,0xFC5E,0xFC5F,0xFC60, +0xC4AC,0xFC61,0xFC62,0xF7EC,0xF7ED,0xF7EE,0xFC63,0xF7F0, +0xF7EF,0xFC64,0xF7F1,0xFC65,0xFC66,0xF7F4,0xFC67,0xF7F3, +0xFC68,0xF7F2,0xF7F5,0xFC69,0xFC6A,0xFC6B,0xFC6C,0xF7F6, +0xFC6D,0xFC6E,0xFC6F,0xFC70,0xFC71,0xFC72,0xFC73,0xFC74, +0xFC75,0xEDE9,0xFC76,0xEDEA,0xEDEB,0xFC77,0xF6BC,0xFC78, +0xFC79,0xFC7A,0xFC7B,0xFC7C,0xFC7D,0xFC7E,0xFC80,0xFC81, +0xFC82,0xFC83,0xFC84,0xF6BD,0xFC85,0xF6BE,0xB6A6,0xFC86, +0xD8BE,0xFC87,0xFC88,0xB9C4,0xFC89,0xFC8A,0xFC8B,0xD8BB, +0xFC8C,0xDCB1,0xFC8D,0xFC8E,0xFC8F,0xFC90,0xFC91,0xFC92, +0xCAF3,0xFC93,0xF7F7,0xFC94,0xFC95,0xFC96,0xFC97,0xFC98, +0xFC99,0xFC9A,0xFC9B,0xFC9C,0xF7F8,0xFC9D,0xFC9E,0xF7F9, +0xFC9F,0xFCA0,0xFD40,0xFD41,0xFD42,0xFD43,0xFD44,0xF7FB, +0xFD45,0xF7FA,0xFD46,0xB1C7,0xFD47,0xF7FC,0xF7FD,0xFD48, +0xFD49,0xFD4A,0xFD4B,0xFD4C,0xF7FE,0xFD4D,0xFD4E,0xFD4F, +0xFD50,0xFD51,0xFD52,0xFD53,0xFD54,0xFD55,0xFD56,0xFD57, +0xC6EB,0xECB4,0xFD58,0xFD59,0xFD5A,0xFD5B,0xFD5C,0xFD5D, +0xFD5E,0xFD5F,0xFD60,0xFD61,0xFD62,0xFD63,0xFD64,0xFD65, +0xFD66,0xFD67,0xFD68,0xFD69,0xFD6A,0xFD6B,0xFD6C,0xFD6D, +0xFD6E,0xFD6F,0xFD70,0xFD71,0xFD72,0xFD73,0xFD74,0xFD75, +0xFD76,0xFD77,0xFD78,0xFD79,0xFD7A,0xFD7B,0xFD7C,0xFD7D, +0xFD7E,0xFD80,0xFD81,0xFD82,0xFD83,0xFD84,0xFD85,0xB3DD, +0xF6B3,0xFD86,0xFD87,0xF6B4,0xC1E4,0xF6B5,0xF6B6,0xF6B7, +0xF6B8,0xF6B9,0xF6BA,0xC8A3,0xF6BB,0xFD88,0xFD89,0xFD8A, +0xFD8B,0xFD8C,0xFD8D,0xFD8E,0xFD8F,0xFD90,0xFD91,0xFD92, +0xFD93,0xC1FA,0xB9A8,0xEDE8,0xFD94,0xFD95,0xFD96,0xB9EA, +0xD9DF,0xFD97,0xFD98,0xFD99,0xFD9A,0xFD9B}; + +/* page 7 0xF92C-0xFA29 */ +static const uint16 tab_uni_gbk7[]={ +0xFD9C, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFD9D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xFD9E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,0xFD9F, 0, 0, 0, 0, + 0, 0, 0, 0, 0,0xFDA0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xFE40,0xFE41,0xFE42,0xFE43, 0,0xFE44, 0,0xFE45, +0xFE46, 0, 0, 0,0xFE47, 0, 0, 0, + 0, 0, 0,0xFE48,0xFE49,0xFE4A, 0,0xFE4B, +0xFE4C, 0, 0,0xFE4D,0xFE4E,0xFE4F}; + +/* page 8 0xFE30-0xFFE5 */ +static const uint16 tab_uni_gbk8[]={ +0xA955,0xA6F2, 0,0xA6F4,0xA6F5,0xA6E0,0xA6E1,0xA6F0, +0xA6F1,0xA6E2,0xA6E3,0xA6EE,0xA6EF,0xA6E6,0xA6E7,0xA6E4, +0xA6E5,0xA6E8,0xA6E9,0xA6EA,0xA6EB, 0, 0, 0, + 0,0xA968,0xA969,0xA96A,0xA96B,0xA96C,0xA96D,0xA96E, +0xA96F,0xA970,0xA971, 0,0xA972,0xA973,0xA974,0xA975, + 0,0xA976,0xA977,0xA978,0xA979,0xA97A,0xA97B,0xA97C, +0xA97D,0xA97E,0xA980,0xA981,0xA982,0xA983,0xA984, 0, +0xA985,0xA986,0xA987,0xA988, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0,0xA3A1,0xA3A2,0xA3A3,0xA1E7,0xA3A5,0xA3A6,0xA3A7, +0xA3A8,0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF, +0xA3B0,0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7, +0xA3B8,0xA3B9,0xA3BA,0xA3BB,0xA3BC,0xA3BD,0xA3BE,0xA3BF, +0xA3C0,0xA3C1,0xA3C2,0xA3C3,0xA3C4,0xA3C5,0xA3C6,0xA3C7, +0xA3C8,0xA3C9,0xA3CA,0xA3CB,0xA3CC,0xA3CD,0xA3CE,0xA3CF, +0xA3D0,0xA3D1,0xA3D2,0xA3D3,0xA3D4,0xA3D5,0xA3D6,0xA3D7, +0xA3D8,0xA3D9,0xA3DA,0xA3DB,0xA3DC,0xA3DD,0xA3DE,0xA3DF, +0xA3E0,0xA3E1,0xA3E2,0xA3E3,0xA3E4,0xA3E5,0xA3E6,0xA3E7, +0xA3E8,0xA3E9,0xA3EA,0xA3EB,0xA3EC,0xA3ED,0xA3EE,0xA3EF, +0xA3F0,0xA3F1,0xA3F2,0xA3F3,0xA3F4,0xA3F5,0xA3F6,0xA3F7, +0xA3F8,0xA3F9,0xA3FA,0xA3FB,0xA3FC,0xA3FD,0xA1AB, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0xA1E9,0xA1EA,0xA956,0xA3FE,0xA957,0xA3A4}; + +static int func_uni_gbk_onechar(int code){ + if ((code>=0x00A4)&&(code<=0x0451)) + return(tab_uni_gbk0[code-0x00A4]); + if ((code>=0x2010)&&(code<=0x2312)) + return(tab_uni_gbk1[code-0x2010]); + if ((code>=0x2460)&&(code<=0x2642)) + return(tab_uni_gbk2[code-0x2460]); + if ((code>=0x3000)&&(code<=0x3129)) + return(tab_uni_gbk3[code-0x3000]); + if ((code>=0x3220)&&(code<=0x32A3)) + return(tab_uni_gbk4[code-0x3220]); + if ((code>=0x338E)&&(code<=0x33D5)) + return(tab_uni_gbk5[code-0x338E]); + if ((code>=0x4E00)&&(code<=0x9FA5)) + return(tab_uni_gbk6[code-0x4E00]); + if ((code>=0xF92C)&&(code<=0xFA29)) + return(tab_uni_gbk7[code-0xF92C]); + if ((code>=0xFE30)&&(code<=0xFFE5)) + return(tab_uni_gbk8[code-0xFE30]); + return(0); +} + +static int +my_wc_mb_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int code; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((uint) wc < 0x80) + { + s[0]= (uchar) wc; + return 1; + } + + if (!(code=func_uni_gbk_onechar(wc))) + return MY_CS_ILUNI; + + if (s+2>e) + return MY_CS_TOOSMALL2; + + s[0]=code>>8; + s[1]=code&0xFF; + return 2; +} + +static int +my_mb_wc_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + hi=s[0]; + + if (hi<0x80) + { + pwc[0]=hi; + return 1; + } + + if (s+2>e) + return MY_CS_TOOSMALL2; + + if (!(pwc[0]=func_gbk_uni_onechar( (hi<<8) + s[1]))) + return -2; + + return 2; + +} + + +/* + Returns well formed length of a GBK string. +*/ +static +size_t my_well_formed_len_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + const char *emb= e - 1; /* Last possible end of an MB character */ + + *error= 0; + while (pos-- && b < e) + { + if ((uchar) b[0] < 128) + { + /* Single byte ascii character */ + b++; + } + else if ((b < emb) && isgbkcode((uchar)*b, (uchar)b[1])) + { + /* Double byte character */ + b+= 2; + } + else + { + /* Wrong byte sequence */ + *error= 1; + break; + } + } + return (size_t) (b - b0); +} + + + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_gbk, + my_strnncollsp_gbk, + my_strnxfrm_gbk, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb, + my_strcasecmp_mb, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_gbk, + mbcharlen_gbk, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_gbk, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_gbk, + my_wc_mb_gbk, + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_mb, + my_casedn_mb, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_gbk_chinese_ci= +{ + 28,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ + "gbk", /* cs name */ + "gbk_chinese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_gbk, + to_lower_gbk, + to_upper_gbk, + sort_order_gbk, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_gbk, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xA967, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + +CHARSET_INFO my_charset_gbk_bin= +{ + 87,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "gbk", /* cs name */ + "gbk_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_gbk, + to_lower_gbk, + to_upper_gbk, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_gbk, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + + +#endif diff --git a/mysql/strings/ctype-latin1.c b/mysql/strings/ctype-latin1.c new file mode 100644 index 0000000..40782de --- /dev/null +++ b/mysql/strings/ctype-latin1.c @@ -0,0 +1,805 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +static const uchar ctype_latin1[] = { + 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 16, 0, 16, 2, 16, 16, 16, 16, 16, 16, 1, 16, 1, 0, 1, 0, + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 2, 0, 2, 1, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static const uchar to_lower_latin1[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,215,248,249,250,251,252,253,254,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 +}; + +static const uchar to_upper_latin1[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,247,216,217,218,219,220,221,222,255 +}; + +static const uchar sort_order_latin1[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 65, 65, 65, 65, 92, 91, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73, + 68, 78, 79, 79, 79, 79, 93,215,216, 85, 85, 85, 89, 89,222,223, + 65, 65, 65, 65, 92, 91, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73, + 68, 78, 79, 79, 79, 79, 93,247,216, 85, 85, 85, 89, 89,222,255 +}; + +/* + WL#1494 notes: + + We'll use cp1252 instead of iso-8859-1. + cp1252 contains printable characters in the range 0x80-0x9F. + In ISO 8859-1, these code points have no associated printable + characters. Therefore, by converting from CP1252 to ISO 8859-1, + one would lose the euro (for instance). Since most people are + unaware of the difference, and since we don't really want a + "Windows ANSI" to differ from a "Unix ANSI", we will: + + - continue to pretend the latin1 character set is ISO 8859-1 + - actually allow the storage of euro etc. so it's actually cp1252 + + Also we'll map these five undefined cp1252 character: + 0x81, 0x8D, 0x8F, 0x90, 0x9D + into corresponding control characters: + U+0081, U+008D, U+008F, U+0090, U+009D. + like ISO-8859-1 does. Otherwise, loading "mysqldump" + output doesn't reproduce these undefined characters. +*/ + +static const unsigned short cs_to_uni[256]={ +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; +static const uchar pl00[256]={ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, +0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, +0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, +0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, +0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, +0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, +0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x8D,0x00,0x8F, +0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x9D,0x00,0x00, +0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, +0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, +0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, +0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, +0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, +0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, +0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, +0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; +static const uchar pl01[256]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x8C,0x9C,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x8A,0x9A,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x9F,0x00,0x00,0x00,0x00,0x8E,0x9E,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; +static const uchar pl02[256]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x98,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; +static const uchar pl20[256]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x96,0x97,0x00,0x00,0x00, +0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00, +0x86,0x87,0x95,0x00,0x00,0x00,0x85,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x8B,0x9B,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; +static const uchar pl21[256]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x99,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; +static const uchar *uni_to_cs[256]={ +pl00,pl01,pl02,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +pl20,pl21,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL +}; + +static +int my_mb_wc_latin1(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *wc, + const uchar *str, + const uchar *end MY_ATTRIBUTE((unused))) +{ + if (str >= end) + return MY_CS_TOOSMALL; + + *wc=cs_to_uni[*str]; + return (!wc[0] && str[0]) ? -1 : 1; +} + +static +int my_wc_mb_latin1(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, + uchar *str, + uchar *end MY_ATTRIBUTE((unused))) +{ + const uchar *pl; + + if (str >= end) + return MY_CS_TOOSMALL; + + if (wc > 0xFFFF) + return MY_CS_ILUNI; + + pl= uni_to_cs[wc >> 8]; + str[0]= pl ? pl[wc & 0xFF] : '\0'; + return (!str[0] && wc) ? MY_CS_ILUNI : 1; +} + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + NULL, + my_mbcharlen_8bit, + my_numchars_8bit, + my_charpos_8bit, + my_well_formed_len_8bit, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_latin1, + my_wc_mb_latin1, + my_mb_ctype_8bit, + my_caseup_str_8bit, + my_casedn_str_8bit, + my_caseup_8bit, + my_casedn_8bit, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_latin1= +{ + 8,0,0, /* number */ + MY_CS_COMPILED | MY_CS_PRIMARY, /* state */ + "latin1", /* cs name */ + "latin1_swedish_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1, + to_lower_latin1, + to_upper_latin1, + sort_order_latin1, + NULL, /* uca */ + cs_to_uni, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_8bit_simple_ci_handler +}; + + + + +/* + * This file is the latin1 character set with German sorting + * + * The modern sort order is used, where: + * + * 'ä' -> "ae" + * 'ö' -> "oe" + * 'ü' -> "ue" + * 'ß' -> "ss" + */ + + +/* + * This is a simple latin1 mapping table, which maps all accented + * characters to their non-accented equivalents. Note: in this + * table, 'ä' is mapped to 'A', 'ÿ' is mapped to 'Y', etc. - all + * accented characters except the following are treated the same way. + * Ü, ü, Ö, ö, Ä, ä + */ + +static const uchar sort_order_latin1_de[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 65, 65, 65, 65,196, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73, + 68, 78, 79, 79, 79, 79,214,215,216, 85, 85, 85,220, 89,222,223, + 65, 65, 65, 65,196, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73, + 68, 78, 79, 79, 79, 79,214,247,216, 85, 85, 85,220, 89,222, 89 +}; + + +/* + same as sort_order_latin_de, but maps ALL accented chars to unaccented ones +*/ + +static const uchar combo1map[]={ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 65, 65, 65, 65, 65, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73, + 68, 78, 79, 79, 79, 79, 79,215,216, 85, 85, 85, 85, 89,222, 83, + 65, 65, 65, 65, 65, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73, + 68, 78, 79, 79, 79, 79, 79,247,216, 85, 85, 85, 85, 89,222, 89 +}; + +static const uchar combo2map[]={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,69, 0, 0, 0, 0, 0,69, 0, 0,83, 0, 0, 0, 0,69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,69, 0, 0, 0, 0, 0,69, 0, 0, 0, 0 +}; + + +/* + Some notes about the following comparison rules: + By definition, my_strnncoll_latin_de must works exactly as if had called + my_strnxfrm_latin_de() on both strings and compared the result strings. + + This means that: + Ä must also matches ÁE and Aè, because my_strxn_frm_latin_de() will convert + both to AE. + + The other option would be to not do any accent removal in + sort_order_latin_de[] at all +*/ + + +static int my_strnncoll_latin1_de(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool b_is_prefix) +{ + const uchar *a_end= a + a_length; + const uchar *b_end= b + b_length; + uchar a_char, a_extend= 0, b_char, b_extend= 0; + + while ((a < a_end || a_extend) && (b < b_end || b_extend)) + { + if (a_extend) + { + a_char=a_extend; a_extend=0; + } + else + { + a_extend=combo2map[*a]; + a_char=combo1map[*a++]; + } + if (b_extend) + { + b_char=b_extend; b_extend=0; + } + else + { + b_extend=combo2map[*b]; + b_char=combo1map[*b++]; + } + if (a_char != b_char) + return (int) a_char - (int) b_char; + } + /* + A simple test of string lengths won't work -- we test to see + which string ran out first + */ + return ((a < a_end || a_extend) ? (b_is_prefix ? 0 : 1) : + (b < b_end || b_extend) ? -1 : 0); +} + + +static int my_strnncollsp_latin1_de(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + const uchar *a_end= a + a_length, *b_end= b + b_length; + uchar a_char, a_extend= 0, b_char, b_extend= 0; + int res; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + while ((a < a_end || a_extend) && (b < b_end || b_extend)) + { + if (a_extend) + { + a_char=a_extend; + a_extend= 0; + } + else + { + a_extend= combo2map[*a]; + a_char= combo1map[*a++]; + } + if (b_extend) + { + b_char= b_extend; + b_extend= 0; + } + else + { + b_extend= combo2map[*b]; + b_char= combo1map[*b++]; + } + if (a_char != b_char) + return (int) a_char - (int) b_char; + } + /* Check if double character last */ + if (a_extend) + return 1; + if (b_extend) + return -1; + + res= 0; + if (a != a_end || b != b_end) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a == a_end) + { + /* put shorter key in a */ + a_end= b_end; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for ( ; a < a_end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + } + return res; +} + + +static size_t +my_strnxfrm_latin1_de(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar* src, size_t srclen, uint flags) +{ + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + uchar *d0= dst; + for ( ; src < se && dst < de && nweights; src++, nweights--) + { + uchar chr= combo1map[*src]; + *dst++= chr; + if ((chr= combo2map[*src]) && dst < de && nweights > 1) + { + *dst++= chr; + nweights--; + } + } + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); +} + + +void my_hash_sort_latin1_de(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *key, size_t len, + ulong *nr1, ulong *nr2) +{ + const uchar *end; + ulong tmp1; + ulong tmp2; + + /* + Remove end space. We have to do this to be able to compare + 'AE' and 'Ä' as identical + */ + end= skip_trailing_space(key, len); + + tmp1= *nr1; + tmp2= *nr2; + + for (; key < end ; key++) + { + uint X= (uint) combo1map[(uint) *key]; + tmp1^=(ulong) ((((uint) tmp1 & 63) + tmp2) * X) + (tmp1 << 8); + tmp2+=3; + if ((X= combo2map[*key])) + { + tmp1^=(ulong) ((((uint) tmp1 & 63) + tmp2) * X) + (tmp1 << 8); + tmp2+=3; + } + } + + *nr1= tmp1; + *nr2= tmp2; +} + + +static MY_COLLATION_HANDLER my_collation_german2_ci_handler= +{ + NULL, /* init */ + my_strnncoll_latin1_de, + my_strnncollsp_latin1_de, + my_strnxfrm_latin1_de, + my_strnxfrmlen_simple, + my_like_range_simple, + my_wildcmp_8bit, + my_strcasecmp_8bit, + my_instr_simple, + my_hash_sort_latin1_de, + my_propagate_complex +}; + + +CHARSET_INFO my_charset_latin1_german2_ci= +{ + 31,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */ + "latin1", /* cs name */ + "latin1_german2_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1, + to_lower_latin1, + to_upper_latin1, + sort_order_latin1_de, + NULL, /* uca */ + cs_to_uni, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 2, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 247, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_german2_ci_handler +}; + + +CHARSET_INFO my_charset_latin1_bin= +{ + 47,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "latin1", /* cs name */ + "latin1_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_latin1, + to_lower_latin1, + to_upper_latin1, + NULL, /* sort_order */ + NULL, /* uca */ + cs_to_uni, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_8bit_bin_handler +}; + diff --git a/mysql/strings/ctype-mb.c b/mysql/strings/ctype-mb.c new file mode 100644 index 0000000..784aab1 --- /dev/null +++ b/mysql/strings/ctype-mb.c @@ -0,0 +1,1502 @@ +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include "m_ctype.h" +#include "m_string.h" + + +size_t my_caseup_str_mb(const CHARSET_INFO *cs, char *str) +{ + uint32 l; + const uchar *map= cs->to_upper; + char *str_orig= str; + + while (*str) + { + /* Pointing after the '\0' is safe here. */ + if ((l= my_ismbchar(cs, str, str + cs->mbmaxlen))) + str+= l; + else + { + *str= (char) map[(uchar)*str]; + str++; + } + } + return (size_t) (str - str_orig); +} + + +size_t my_casedn_str_mb(const CHARSET_INFO *cs, char *str) +{ + uint32 l; + const uchar *map= cs->to_lower; + char *str_orig= str; + + while (*str) + { + /* Pointing after the '\0' is safe here. */ + if ((l= my_ismbchar(cs, str, str + cs->mbmaxlen))) + str+= l; + else + { + *str= (char) map[(uchar)*str]; + str++; + } + } + return (size_t) (str - str_orig); +} + + +static inline const MY_UNICASE_CHARACTER* +get_case_info_for_ch(const CHARSET_INFO *cs, uint page, uint offs) +{ + const MY_UNICASE_CHARACTER *p; + return cs->caseinfo ? ((p= cs->caseinfo->page[page]) ? &p[offs] : NULL) : NULL; +} + + +/* + For character sets which don't change octet length in case conversion. +*/ +size_t my_caseup_mb(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + uint32 l; + char *srcend= src + srclen; + const uchar *map= cs->to_upper; + + DBUG_ASSERT(cs->caseup_multiply == 1); + DBUG_ASSERT(src == dst && srclen == dstlen); + DBUG_ASSERT(cs->mbmaxlen == 2); + + while (src < srcend) + { + if ((l=my_ismbchar(cs, src, srcend))) + { + const MY_UNICASE_CHARACTER *ch; + if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1]))) + { + *src++= ch->toupper >> 8; + *src++= ch->toupper & 0xFF; + } + else + src+= l; + } + else + { + *src=(char) map[(uchar) *src]; + src++; + } + } + return srclen; +} + + +size_t my_casedn_mb(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + uint32 l; + char *srcend= src + srclen; + const uchar *map=cs->to_lower; + + DBUG_ASSERT(cs->casedn_multiply == 1); + DBUG_ASSERT(src == dst && srclen == dstlen); + DBUG_ASSERT(cs->mbmaxlen == 2); + + while (src < srcend) + { + if ((l= my_ismbchar(cs, src, srcend))) + { + const MY_UNICASE_CHARACTER *ch; + if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1]))) + { + *src++= ch->tolower >> 8; + *src++= ch->tolower & 0xFF; + } + else + src+= l; + } + else + { + *src= (char) map[(uchar)*src]; + src++; + } + } + return srclen; +} + + +/* + Case folding functions for character set + where case conversion can change string octet length. + For example, in EUCKR, + _euckr 0xA9A5 == "LATIN LETTER DOTLESS I" (Turkish letter) + is upper-cased to to + _euckr 0x49 "LATIN CAPITAL LETTER I" ('usual' letter I) + Length is reduced in this example from two bytes to one byte. +*/ +static size_t +my_casefold_mb_varlen(const CHARSET_INFO *cs, + char *src, size_t srclen, + char *dst, size_t dstlen MY_ATTRIBUTE((unused)), + const uchar *map, + size_t is_upper) +{ + char *srcend= src + srclen, *dst0= dst; + + DBUG_ASSERT(cs->mbmaxlen == 2); + + while (src < srcend) + { + size_t mblen= my_ismbchar(cs, src, srcend); + if (mblen) + { + const MY_UNICASE_CHARACTER *ch; + if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1]))) + { + int code= is_upper ? ch->toupper : ch->tolower; + src+= 2; + if (code > 0xFF) + *dst++= code >> 8; + *dst++= code & 0xFF; + } + else + { + *dst++= *src++; + *dst++= *src++; + } + } + else + { + *dst++= (char) map[(uchar) *src++]; + } + } + return (size_t) (dst - dst0); +} + + +size_t +my_casedn_mb_varlen(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); + DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_lower, 0); +} + + +size_t +my_caseup_mb_varlen(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply); + DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_upper, 1); +} + + +/* + my_strcasecmp_mb() returns 0 if strings are equal, non-zero otherwise. + */ + +int my_strcasecmp_mb(const CHARSET_INFO *cs,const char *s, const char *t) +{ + uint32 l; + const uchar *map=cs->to_upper; + + while (*s && *t) + { + /* Pointing after the '\0' is safe here. */ + if ((l=my_ismbchar(cs, s, s + cs->mbmaxlen))) + { + while (l--) + if (*s++ != *t++) + return 1; + } + else if (my_mbcharlen(cs, *t) != 1 || + map[(uchar) *s++] != map[(uchar) *t++]) + return 1; + } + /* At least one of '*s' and '*t' is zero here. */ + DBUG_ASSERT(!*t || !*s); + return (*t != *s); +} + + +/* +** Compare string against string with wildcard +** 0 if matched +** -1 if not matched with wildcard +** 1 if matched with wildcard +*/ + +#define INC_PTR(cs,A,B) A+=(my_ismbchar(cs,A,B) ? my_ismbchar(cs,A,B) : 1) + +#define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)] + +static +int my_wildcmp_mb_impl(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + while (wildstr != wildend) + { + while (*wildstr != w_many && *wildstr != w_one) + { + int l; + if (*wildstr == escape && wildstr+1 != wildend) + wildstr++; + if ((l = my_ismbchar(cs, wildstr, wildend))) + { + if (str+l > str_end || memcmp(str, wildstr, l) != 0) + return 1; + str += l; + wildstr += l; + } + else + if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++)) + return(1); /* No match */ + if (wildstr == wildend) + return (str != str_end); /* Match if both are at end */ + result=1; /* Found an anchor char */ + } + if (*wildstr == w_one) + { + do + { + if (str == str_end) /* Skip one char if possible */ + return (result); + INC_PTR(cs,str,str_end); + } while (++wildstr < wildend && *wildstr == w_one); + if (wildstr == wildend) + break; + } + if (*wildstr == w_many) + { /* Found w_many */ + uchar cmp; + const char* mb = wildstr; + int mb_len=0; + + wildstr++; + /* Remove any '%' and '_' from the wild search string */ + for (; wildstr != wildend ; wildstr++) + { + if (*wildstr == w_many) + continue; + if (*wildstr == w_one) + { + if (str == str_end) + return (-1); + INC_PTR(cs,str,str_end); + continue; + } + break; /* Not a wild character */ + } + if (wildstr == wildend) + return(0); /* Ok if w_many is last */ + if (str == str_end) + return -1; + + if ((cmp= *wildstr) == escape && wildstr+1 != wildend) + cmp= *++wildstr; + + mb=wildstr; + mb_len= my_ismbchar(cs, wildstr, wildend); + INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */ + cmp=likeconv(cs,cmp); + do + { + for (;;) + { + if (str >= str_end) + return -1; + if (mb_len) + { + if (str+mb_len <= str_end && memcmp(str, mb, mb_len) == 0) + { + str += mb_len; + break; + } + } + else if (!my_ismbchar(cs, str, str_end) && + likeconv(cs,*str) == cmp) + { + str++; + break; + } + INC_PTR(cs,str, str_end); + } + { + int tmp=my_wildcmp_mb_impl(cs,str,str_end, + wildstr,wildend,escape,w_one, + w_many, recurse_level + 1); + if (tmp <= 0) + return (tmp); + } + } while (str != str_end && wildstr[0] != w_many); + return(-1); + } + } + return (str != str_end ? 1 : 0); +} + +int my_wildcmp_mb(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_mb_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + + +size_t my_numchars_mb(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *pos, const char *end) +{ + size_t count= 0; + while (pos < end) + { + uint mb_len; + pos+= (mb_len= my_ismbchar(cs,pos,end)) ? mb_len : 1; + count++; + } + return count; +} + + +size_t my_charpos_mb(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *pos, const char *end, size_t length) +{ + const char *start= pos; + + while (length && pos < end) + { + uint mb_len; + pos+= (mb_len= my_ismbchar(cs, pos, end)) ? mb_len : 1; + length--; + } + return (size_t) (length ? end+2-start : pos-start); +} + + +size_t my_well_formed_len_mb(const CHARSET_INFO *cs, const char *b, + const char *e, size_t pos, int *error) +{ + const char *b_start= b; + *error= 0; + while (pos) + { + my_wc_t wc; + int mb_len; + + if ((mb_len= cs->cset->mb_wc(cs, &wc, (uchar*) b, (uchar*) e)) <= 0) + { + *error= b < e ? 1 : 0; + break; + } + b+= mb_len; + pos--; + } + return (size_t) (b - b_start); +} + + +uint my_instr_mb(const CHARSET_INFO *cs, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch) +{ + const char *end, *b0; + int res= 0; + + if (s_length <= b_length) + { + if (!s_length) + { + if (nmatch) + { + match->beg= 0; + match->end= 0; + match->mb_len= 0; + } + return 1; /* Empty string is always found */ + } + + b0= b; + end= b+b_length-s_length+1; + + while (b < end) + { + int mb_len; + + if (!cs->coll->strnncoll(cs, (uchar*) b, s_length, + (uchar*) s, s_length, 0)) + { + if (nmatch) + { + match[0].beg= 0; + match[0].end= (uint) (b-b0); + match[0].mb_len= res; + if (nmatch > 1) + { + match[1].beg= match[0].end; + match[1].end= match[0].end + (uint)s_length; + match[1].mb_len= 0; /* Not computed */ + } + } + return 2; + } + mb_len= (mb_len= my_ismbchar(cs, b, end)) ? mb_len : 1; + b+= mb_len; + b_length-= mb_len; + res++; + } + } + return 0; +} + + +/* BINARY collations handlers for MB charsets */ + +int +my_strnncoll_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + size_t len= MY_MIN(slen,tlen); + int cmp= memcmp(s,t,len); + return cmp ? cmp : (int) ((t_is_prefix ? len : slen) - tlen); +} + + +/* + Compare two strings. + + SYNOPSIS + my_strnncollsp_mb_bin() + cs Chararacter set + s String to compare + slen Length of 's' + t String to compare + tlen Length of 't' + diff_if_only_endspace_difference + Set to 1 if the strings should be regarded as different + if they only difference in end space + + NOTE + This function is used for character strings with binary collations. + The shorter string is extended with end space to be as long as the longer + one. + + RETURN + A negative number if s < t + A positive number if s > t + 0 if strings are equal +*/ + +int +my_strnncollsp_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + const uchar *end; + size_t length; + int res; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + end= a + (length= MY_MIN(a_length, b_length)); + while (a < end) + { + if (*a++ != *b++) + return ((int) a[-1] - (int) b[-1]); + } + res= 0; + if (a_length != b_length) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a_length < b_length) + { + /* put shorter key in s */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (end= a + a_length-length; a < end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + } + return res; +} + + +/* + Copy one non-ascii character. + "dst" must have enough room for the character. + Note, we don't use sort_order[] in this macros. + This is correct even for case insensitive collations: + - basic Latin letters are processed outside this macros; + - for other characters sort_order[x] is equal to x. +*/ +#define my_strnxfrm_mb_non_ascii_char(cs, dst, src, se) \ +{ \ + switch (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) { \ + case 4: \ + *dst++= *src++; \ + /* fall through */ \ + case 3: \ + *dst++= *src++; \ + /* fall through */ \ + case 2: \ + *dst++= *src++; \ + /* fall through */ \ + case 0: \ + *dst++= *src++; /* byte in range 0x80..0xFF which is not MB head */ \ + } \ +} + + +/* + For character sets with two or three byte multi-byte + characters having multibyte weights *equal* to their codes: + cp932, euckr, gb2312, sjis, eucjpms, ujis. +*/ +size_t +my_strnxfrm_mb(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + uchar *d0= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order= cs->sort_order; + + DBUG_ASSERT(cs->mbmaxlen <= 4); + + /* + If "srclen" is smaller than both "dstlen" and "nweights" + then we can run a simplified loop - + without checking "nweights" and "de". + */ + if (dstlen >= srclen && nweights >= srclen) + { + if (sort_order) + { + /* Optimized version for a case insensitive collation */ + for (; src < se; nweights--) + { + if (*src < 128) /* quickly catch ASCII characters */ + *dst++= sort_order[*src++]; + else + my_strnxfrm_mb_non_ascii_char(cs, dst, src, se); + } + } + else + { + /* Optimized version for a case sensitive collation (no sort_order) */ + for (; src < se; nweights--) + { + if (*src < 128) /* quickly catch ASCII characters */ + *dst++= *src++; + else + my_strnxfrm_mb_non_ascii_char(cs, dst, src, se); + } + } + goto pad; + } + + /* + A thourough loop, checking all possible limits: + "se", "nweights" and "de". + */ + for (; src < se && nweights && dst < de; nweights--) + { + int chlen; + if (*src < 128 || + !(chlen= cs->cset->ismbchar(cs, (const char*) src, (const char*) se))) + { + /* Single byte character */ + *dst++= sort_order ? sort_order[*src++] : *src++; + } + else + { + /* Multi-byte character */ + size_t len= (dst + chlen <= de) ? chlen : de - dst; + memcpy(dst, src, len); + dst+= len; + src+= len; + } + } + +pad: + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); +} + + +int +my_strcasecmp_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *s, const char *t) +{ + return strcmp(s,t); +} + + +void +my_hash_sort_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *key, size_t len,ulong *nr1, ulong *nr2) +{ + const uchar *pos = key; + + /* + Remove trailing spaces. We have to do this to be able to compare + 'A ' and 'A' as identical + */ + key= skip_trailing_space(key, len); + + for (; pos < (uchar*) key ; pos++) + { + nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * + ((uint)*pos)) + (nr1[0] << 8); + nr2[0]+=3; + } +} + + +/* + Fill the given buffer with 'maximum character' for given charset + SYNOPSIS + pad_max_char() + cs Character set + str Start of buffer to fill + end End of buffer to fill + + DESCRIPTION + Write max key: + - for non-Unicode character sets: + just memset using max_sort_char if max_sort_char is one byte. + In case when max_sort_char is two bytes, fill with double-byte pairs + and optionally pad with a single space character. + - for Unicode character set (utf-8): + create a buffer with multibyte representation of the max_sort_char + character, and copy it into max_str in a loop. +*/ +static void pad_max_char(const CHARSET_INFO *cs, char *str, char *end) +{ + char buf[10]; + char buflen; + + if (!(cs->state & MY_CS_UNICODE)) + { + if (cs->max_sort_char <= 255) + { + memset(str, cs->max_sort_char, end - str); + return; + } + else if (cs->max_sort_char <= 0xFFFF) + { + buf[0]= (char)(cs->max_sort_char >> 8); + buf[1]= cs->max_sort_char & 0xFF; + buflen= 2; + } + else + { + /* Currently, it's only for GB18030, so it must be a 4-byte char */ + DBUG_ASSERT(cs->max_sort_char > 0xFFFFFF); + buf[0]= cs->max_sort_char >> 24 & 0xFF; + buf[1]= cs->max_sort_char >> 16 & 0xFF; + buf[2]= cs->max_sort_char >> 8 & 0xFF; + buf[3]= cs->max_sort_char & 0xFF; + buflen= 4; + } + } + else + { + buflen= cs->cset->wc_mb(cs, cs->max_sort_char, (uchar*) buf, + (uchar*) buf + sizeof(buf)); + } + + DBUG_ASSERT(buflen > 0); + do + { + if ((str + buflen) <= end) + { + /* Enough space for the characer */ + memcpy(str, buf, buflen); + str+= buflen; + } + else + { + /* + There is no space for whole multibyte + character, then add trailing spaces. + */ + *str++= ' '; + } + } while (str < end); +} + +/* +** Calculate min_str and max_str that ranges a LIKE string. +** Arguments: +** ptr Pointer to LIKE string. +** ptr_length Length of LIKE string. +** escape Escape character in LIKE. (Normally '\'). +** All escape characters should be removed from min_str and max_str +** res_length Length of min_str and max_str. +** min_str Smallest case sensitive string that ranges LIKE. +** Should be space padded to res_length. +** max_str Largest case sensitive string that ranges LIKE. +** Normally padded with the biggest character sort value. +** +** The function should return 0 if ok and 1 if the LIKE string can't be +** optimized ! +*/ + +my_bool my_like_range_mb(const CHARSET_INFO *cs, + const char *ptr,size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str,char *max_str, + size_t *min_length,size_t *max_length) +{ + uint mb_len; + const char *end= ptr + ptr_length; + char *min_org= min_str; + char *min_end= min_str + res_length; + char *max_end= max_str + res_length; + size_t maxcharlen= res_length / cs->mbmaxlen; + const MY_CONTRACTIONS *contractions= my_charset_get_contractions(cs, 0); + + for (; ptr != end && min_str != min_end && maxcharlen ; maxcharlen--) + { + /* We assume here that escape, w_any, w_namy are one-byte characters */ + if (*ptr == escape && ptr+1 != end) + ptr++; /* Skip escape */ + else if (*ptr == w_one || *ptr == w_many) /* '_' and '%' in SQL */ + { +fill_max_and_min: + /* + Calculate length of keys: + 'a\0\0... is the smallest possible string when we have space expand + a\ff\ff... is the biggest possible string + */ + *min_length= ((cs->state & MY_CS_BINSORT) ? (size_t) (min_str - min_org) : + res_length); + *max_length= res_length; + /* Create min key */ + do + { + *min_str++= (char) cs->min_sort_char; + } while (min_str != min_end); + + /* + Write max key: create a buffer with multibyte + representation of the max_sort_char character, + and copy it into max_str in a loop. + */ + *max_length= res_length; + pad_max_char(cs, max_str, max_end); + return 0; + } + if ((mb_len= my_ismbchar(cs, ptr, end)) > 1) + { + if (ptr+mb_len > end || min_str+mb_len > min_end) + break; + while (mb_len--) + *min_str++= *max_str++= *ptr++; + } + else + { + /* + Special case for collations with contractions. + For example, in Chezh, 'ch' is a separate letter + which is sorted between 'h' and 'i'. + If the pattern 'abc%', 'c' at the end can mean: + - letter 'c' itself, + - beginning of the contraction 'ch'. + + If we simply return this LIKE range: + + 'abc\min\min\min' and 'abc\max\max\max' + + then this query: SELECT * FROM t1 WHERE a LIKE 'abc%' + will only find values starting from 'abc[^h]', + but won't find values starting from 'abch'. + + We must ignore contraction heads followed by w_one or w_many. + ('Contraction head' means any letter which can be the first + letter in a contraction) + + For example, for Czech 'abc%', we will return LIKE range, + which is equal to LIKE range for 'ab%': + + 'ab\min\min\min\min' and 'ab\max\max\max\max'. + + */ + if (contractions && ptr + 1 < end && + my_uca_can_be_contraction_head(contractions, (uchar) *ptr)) + { + /* Ptr[0] is a contraction head. */ + + if (ptr[1] == w_one || ptr[1] == w_many) + { + /* Contraction head followed by a wildcard, quit. */ + goto fill_max_and_min; + } + + /* + Some letters can be both contraction heads and contraction tails. + For example, in Danish 'aa' is a separate single letter which + is sorted after 'z'. So 'a' can be both head and tail. + + If ptr[0]+ptr[1] is a contraction, + then put both letters together. + + If ptr[1] can be a contraction part, but ptr[0]+ptr[1] + is not a contraction, then we put only ptr[0], + and continue with ptr[1] on the next loop. + */ + if (my_uca_can_be_contraction_tail(contractions, (uchar) ptr[1]) && + my_uca_contraction2_weight(contractions, (uchar) ptr[0], ptr[1])) + { + /* Contraction found */ + if (maxcharlen == 1 || min_str + 1 >= min_end) + { + /* Both contraction parts don't fit, quit */ + goto fill_max_and_min; + } + + /* Put contraction head */ + *min_str++= *max_str++= *ptr++; + maxcharlen--; + } + } + /* Put contraction tail, or a single character */ + *min_str++= *max_str++= *ptr++; + } + } + + *min_length= *max_length = (size_t) (min_str - min_org); + while (min_str != min_end) + *min_str++= *max_str++= ' '; /* Because if key compression */ + return 0; +} + + +/** + Calculate min_str and max_str that ranges a LIKE string. + Generic function, currently used for ucs2, utf16, utf32, + but should be suitable for any other character sets with + cs->min_sort_char and cs->max_sort_char represented in + Unicode code points. + + @param cs Character set and collation pointer + @param ptr Pointer to LIKE pattern. + @param ptr_length Length of LIKE pattern. + @param escape Escape character pattern, typically '\'. + @param w_one 'One character' pattern, typically '_'. + @param w_many 'Many characters' pattern, typically '%'. + @param res_length Length of min_str and max_str. + + @param[out] min_str Smallest string that ranges LIKE. + @param[out] max_str Largest string that ranges LIKE. + @param[out] min_len Length of min_str + @param[out] max_len Length of max_str + + @return Optimization status. + @retval FALSE if LIKE pattern can be optimized + @rerval TRUE if LIKE can't be optimized. +*/ +my_bool +my_like_range_generic(const CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str,char *max_str, + size_t *min_length,size_t *max_length) +{ + const char *end= ptr + ptr_length; + const char *min_org= min_str; + const char *max_org= max_str; + char *min_end= min_str + res_length; + char *max_end= max_str + res_length; + size_t charlen= res_length / cs->mbmaxlen; + size_t res_length_diff; + const MY_CONTRACTIONS *contractions= my_charset_get_contractions(cs, 0); + + for ( ; charlen > 0; charlen--) + { + my_wc_t wc, wc2; + int res; + if ((res= cs->cset->mb_wc(cs, &wc, (uchar*) ptr, (uchar*) end)) <= 0) + { + if (res == MY_CS_ILSEQ) /* Bad sequence */ + return TRUE; /* min_length and max_length are not important */ + break; /* End of the string */ + } + ptr+= res; + + if (wc == (my_wc_t) escape) + { + if ((res= cs->cset->mb_wc(cs, &wc, (uchar*) ptr, (uchar*) end)) <= 0) + { + if (res == MY_CS_ILSEQ) + return TRUE; /* min_length and max_length are not important */ + /* + End of the string: Escape is the last character. + Put escape as a normal character. + We'll will leave the loop on the next iteration. + */ + } + else + ptr+= res; + + /* Put escape character to min_str and max_str */ + if ((res= cs->cset->wc_mb(cs, wc, + (uchar*) min_str, (uchar*) min_end)) <= 0) + goto pad_set_lengths; /* No space */ + min_str+= res; + + if ((res= cs->cset->wc_mb(cs, wc, + (uchar*) max_str, (uchar*) max_end)) <= 0) + goto pad_set_lengths; /* No space */ + max_str+= res; + continue; + } + else if (wc == (my_wc_t) w_one) + { + if ((res= cs->cset->wc_mb(cs, cs->min_sort_char, + (uchar*) min_str, (uchar*) min_end)) <= 0) + goto pad_set_lengths; + min_str+= res; + + if ((res= cs->cset->wc_mb(cs, cs->max_sort_char, + (uchar*) max_str, (uchar*) max_end)) <= 0) + goto pad_set_lengths; + max_str+= res; + continue; + } + else if (wc == (my_wc_t) w_many) + { + /* + Calculate length of keys: + a\min\min... is the smallest possible string + a\max\max... is the biggest possible string + */ + *min_length= ((cs->state & MY_CS_BINSORT) ? + (size_t) (min_str - min_org) : + res_length); + *max_length= res_length; + goto pad_min_max; + } + + if (contractions && + my_uca_can_be_contraction_head(contractions, wc) && + (res= cs->cset->mb_wc(cs, &wc2, (uchar*) ptr, (uchar*) end)) > 0) + { + uint16 *weight; + if ((wc2 == (my_wc_t) w_one || wc2 == (my_wc_t) w_many)) + { + /* Contraction head followed by a wildcard */ + *min_length= *max_length= res_length; + goto pad_min_max; + } + + if (my_uca_can_be_contraction_tail(contractions, wc2) && + (weight= my_uca_contraction2_weight(contractions, wc, wc2)) && weight[0]) + { + /* Contraction found */ + if (charlen == 1) + { + /* contraction does not fit to result */ + *min_length= *max_length= res_length; + goto pad_min_max; + } + + ptr+= res; + charlen--; + + /* Put contraction head */ + if ((res= cs->cset->wc_mb(cs, wc, + (uchar*) min_str, (uchar*) min_end)) <= 0) + goto pad_set_lengths; + min_str+= res; + + if ((res= cs->cset->wc_mb(cs, wc, + (uchar*) max_str, (uchar*) max_end)) <= 0) + goto pad_set_lengths; + max_str+= res; + wc= wc2; /* Prepare to put contraction tail */ + } + } + + /* Normal character, or contraction tail */ + if ((res= cs->cset->wc_mb(cs, wc, + (uchar*) min_str, (uchar*) min_end)) <= 0) + goto pad_set_lengths; + min_str+= res; + if ((res= cs->cset->wc_mb(cs, wc, + (uchar*) max_str, (uchar*) max_end)) <= 0) + goto pad_set_lengths; + max_str+= res; + } + +pad_set_lengths: + *min_length= (size_t) (min_str - min_org); + *max_length= (size_t) (max_str - max_org); + +pad_min_max: + /* + Fill up max_str and min_str to res_length. + fill() cannot set incomplete characters and + requires that "length" argument is divisible to mbminlen. + Make sure to call fill() with proper "length" argument. + */ + res_length_diff= res_length % cs->mbminlen; + cs->cset->fill(cs, min_str, min_end - min_str - res_length_diff, + cs->min_sort_char); + cs->cset->fill(cs, max_str, max_end - max_str - res_length_diff, + cs->max_sort_char); + + /* In case of incomplete characters set the remainder to 0x00's */ + if (res_length_diff) + { + /* Example: odd res_length for ucs2 */ + memset(min_end - res_length_diff, 0, res_length_diff); + memset(max_end - res_length_diff, 0, res_length_diff); + } + return FALSE; +} + + +static +int +my_wildcmp_mb_bin_impl(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + while (wildstr != wildend) + { + while (*wildstr != w_many && *wildstr != w_one) + { + int l; + if (*wildstr == escape && wildstr+1 != wildend) + wildstr++; + if ((l = my_ismbchar(cs, wildstr, wildend))) + { + if (str+l > str_end || memcmp(str, wildstr, l) != 0) + return 1; + str += l; + wildstr += l; + } + else + if (str == str_end || *wildstr++ != *str++) + return(1); /* No match */ + if (wildstr == wildend) + return (str != str_end); /* Match if both are at end */ + result=1; /* Found an anchor char */ + } + if (*wildstr == w_one) + { + do + { + if (str == str_end) /* Skip one char if possible */ + return (result); + INC_PTR(cs,str,str_end); + } while (++wildstr < wildend && *wildstr == w_one); + if (wildstr == wildend) + break; + } + if (*wildstr == w_many) + { /* Found w_many */ + int cmp; + const char* mb = wildstr; + int mb_len=0; + + wildstr++; + /* Remove any '%' and '_' from the wild search string */ + for (; wildstr != wildend ; wildstr++) + { + if (*wildstr == w_many) + continue; + if (*wildstr == w_one) + { + if (str == str_end) + return (-1); + INC_PTR(cs,str,str_end); + continue; + } + break; /* Not a wild character */ + } + if (wildstr == wildend) + return(0); /* Ok if w_many is last */ + if (str == str_end) + return -1; + + if ((cmp= *wildstr) == escape && wildstr+1 != wildend) + cmp= *++wildstr; + + mb=wildstr; + mb_len= my_ismbchar(cs, wildstr, wildend); + INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */ + do + { + for (;;) + { + if (str >= str_end) + return -1; + if (mb_len) + { + if (str+mb_len <= str_end && memcmp(str, mb, mb_len) == 0) + { + str += mb_len; + break; + } + } + else if (!my_ismbchar(cs, str, str_end) && *str == cmp) + { + str++; + break; + } + INC_PTR(cs,str, str_end); + } + { + int tmp=my_wildcmp_mb_bin_impl(cs,str,str_end, + wildstr,wildend,escape, + w_one,w_many, recurse_level + 1); + if (tmp <= 0) + return (tmp); + } + } while (str != str_end && wildstr[0] != w_many); + return(-1); + } + } + return (str != str_end ? 1 : 0); +} + +int +my_wildcmp_mb_bin(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_mb_bin_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + + +/* + Data was produced from EastAsianWidth.txt + using utt11-dump utility. +*/ +static const char pg11[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pg23[256]= +{ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pg2E[256]= +{ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pg2F[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0 +}; + +static const char pg30[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +}; + +static const char pg31[256]= +{ +0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +}; + +static const char pg32[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +}; + +static const char pg4D[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pg9F[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pgA4[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pgD7[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pgFA[256]= +{ +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pgFE[256]= +{ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const char pgFF[256]= +{ +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const struct {int page; const char *p;} utr11_data[256]= +{ +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,pg11},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,pg23},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,pg2E},{0,pg2F}, +{0,pg30},{0,pg31},{0,pg32},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pg4D},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pg9F}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pgA4},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL}, +{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pgD7}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL}, +{0,NULL},{1,NULL},{0,pgFA},{0,NULL},{0,NULL},{0,NULL},{0,pgFE},{0,pgFF} +}; + + +size_t my_numcells_mb(const CHARSET_INFO *cs, const char *b, const char *e) +{ + my_wc_t wc; + size_t clen= 0; + + while (b < e) + { + int mb_len; + uint pg; + if ((mb_len= cs->cset->mb_wc(cs, &wc, (uchar*) b, (uchar*) e)) <= 0 || + wc > 0xFFFF) + { + /* + Let's think a wrong sequence takes 1 dysplay cell. + Also, consider supplementary characters as taking one cell. + */ + mb_len= 1; + b++; + continue; + } + b+= mb_len; + if (wc > 0xFFFF) + { + if (wc >= 0x20000 && wc <= 0x3FFFD) /* CJK Ideograph Extension B, C */ + clen+= 1; + } + else + { + pg= (wc >> 8) & 0xFF; + clen+= utr11_data[pg].p ? utr11_data[pg].p[wc & 0xFF] : utr11_data[pg].page; + } + clen++; + } + return clen; +} + + +int my_mb_ctype_mb(const CHARSET_INFO *cs, int *ctype, + const uchar *s, const uchar *e) +{ + my_wc_t wc; + int res= cs->cset->mb_wc(cs, &wc, s, e); + if (res <= 0 || wc > 0xFFFF) + *ctype= 0; + else + *ctype= my_uni_ctype[wc>>8].ctype ? + my_uni_ctype[wc>>8].ctype[wc&0xFF] : + my_uni_ctype[wc>>8].pctype; + return res; +} + + +MY_COLLATION_HANDLER my_collation_mb_bin_handler = +{ + NULL, /* init */ + my_strnncoll_mb_bin, + my_strnncollsp_mb_bin, + my_strnxfrm_mb, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb_bin, + my_strcasecmp_mb_bin, + my_instr_mb, + my_hash_sort_mb_bin, + my_propagate_simple +}; diff --git a/mysql/strings/ctype-simple.c b/mysql/strings/ctype-simple.c new file mode 100644 index 0000000..953eb75 --- /dev/null +++ b/mysql/strings/ctype-simple.c @@ -0,0 +1,1941 @@ +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include "m_string.h" +#include "m_ctype.h" +#include "my_sys.h" /* Needed for MY_ERRNO_ERANGE */ +#include + +#include "stdarg.h" + +/* + Returns the number of bytes required for strnxfrm(). +*/ + +size_t my_strnxfrmlen_simple(const CHARSET_INFO *cs, size_t len) +{ + return len * (cs->strxfrm_multiply ? cs->strxfrm_multiply : 1); +} + + +/* + Converts a string into its sort key. + + SYNOPSIS + my_strnxfrm_xxx() + + IMPLEMENTATION + + The my_strxfrm_xxx() function transforms a string pointed to by + 'src' with length 'srclen' according to the charset+collation + pair 'cs' and copies the result key into 'dest'. + + Comparing two strings using memcmp() after my_strnxfrm_xxx() + is equal to comparing two original strings with my_strnncollsp_xxx(). + + Not more than 'dstlen' bytes are written into 'dst'. + To garantee that the whole string is transformed, 'dstlen' must be + at least srclen*cs->strnxfrm_multiply bytes long. Otherwise, + consequent memcmp() may return a non-accurate result. + + If the source string is too short to fill whole 'dstlen' bytes, + then the 'dest' string is padded up to 'dstlen', ensuring that: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + my_strnxfrm_simple() is implemented for 8bit charsets and + simple collations with one-to-one string->key transformation. + + See also implementations for various charsets/collations in + other ctype-xxx.c files. + + RETURN + + Target len 'dstlen'. + +*/ + + +size_t +my_strnxfrm_simple(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + const uchar *map= cs->sort_order; + uchar *d0= dst; + const uchar *end; + const uchar *remainder; + size_t frmlen; + if ((frmlen= MY_MIN(dstlen, nweights)) > srclen) + frmlen= srclen; + end= src + frmlen; + + // Do the first few bytes. + remainder= src + (frmlen % 8); + for (; src < remainder;) + *dst++= map[*src++]; + + // Unroll loop for rest of string. + for (; src < end;) + { + *dst++= map[*src++]; + *dst++= map[*src++]; + *dst++= map[*src++]; + *dst++= map[*src++]; + *dst++= map[*src++]; + *dst++= map[*src++]; + *dst++= map[*src++]; + *dst++= map[*src++]; + } + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, d0 + dstlen, + (uint)(nweights - frmlen), flags, 0); +} + + +int my_strnncoll_simple(const CHARSET_INFO * cs, const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + size_t len = ( slen > tlen ) ? tlen : slen; + const uchar *map= cs->sort_order; + if (t_is_prefix && slen > tlen) + slen=tlen; + while (len--) + { + if (map[*s++] != map[*t++]) + return ((int) map[s[-1]] - (int) map[t[-1]]); + } + /* + We can't use (slen - tlen) here as the result may be outside of the + precision of a signed int + */ + return slen > tlen ? 1 : slen < tlen ? -1 : 0 ; +} + + +/* + Compare strings, discarding end space + + SYNOPSIS + my_strnncollsp_simple() + cs character set handler + a First string to compare + a_length Length of 'a' + b Second string to compare + b_length Length of 'b' + diff_if_only_endspace_difference + Set to 1 if the strings should be regarded as different + if they only difference in end space + + IMPLEMENTATION + If one string is shorter as the other, then we space extend the other + so that the strings have equal length. + + This will ensure that the following things hold: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + RETURN + < 0 a < b + = 0 a == b + > 0 a > b +*/ + +int my_strnncollsp_simple(const CHARSET_INFO *cs, const uchar *a, + size_t a_length, const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + const uchar *map= cs->sort_order, *end; + size_t length; + int res; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + end= a + (length= MY_MIN(a_length, b_length)); + while (a < end) + { + if (map[*a++] != map[*b++]) + return ((int) map[a[-1]] - (int) map[b[-1]]); + } + res= 0; + if (a_length != b_length) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a_length < b_length) + { + /* put shorter key in s */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (end= a + a_length-length; a < end ; a++) + { + if (map[*a] != map[' ']) + return (map[*a] < map[' ']) ? -swap : swap; + } + } + return res; +} + + +size_t my_caseup_str_8bit(const CHARSET_INFO *cs,char *str) +{ + const uchar *map= cs->to_upper; + char *str_orig= str; + while ((*str= (char) map[(uchar) *str]) != 0) + str++; + return (size_t) (str - str_orig); +} + + +size_t my_casedn_str_8bit(const CHARSET_INFO *cs,char *str) +{ + const uchar *map= cs->to_lower; + char *str_orig= str; + while ((*str= (char) map[(uchar) *str]) != 0) + str++; + return (size_t) (str - str_orig); +} + + +size_t my_caseup_8bit(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + char *end= src + srclen; + const uchar *map= cs->to_upper; + DBUG_ASSERT(src == dst && srclen == dstlen); + for ( ; src != end ; src++) + *src= (char) map[(uchar) *src]; + return srclen; +} + + +size_t my_casedn_8bit(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + char *end= src + srclen; + const uchar *map=cs->to_lower; + DBUG_ASSERT(src == dst && srclen == dstlen); + for ( ; src != end ; src++) + *src= (char) map[(uchar) *src]; + return srclen; +} + +int my_strcasecmp_8bit(const CHARSET_INFO *cs,const char *s, const char *t) +{ + const uchar *map=cs->to_upper; + while (map[(uchar) *s] == map[(uchar) *t++]) + if (!*s++) return 0; + return ((int) map[(uchar) s[0]] - (int) map[(uchar) t[-1]]); +} + + +int my_mb_wc_8bit(const CHARSET_INFO *cs,my_wc_t *wc, + const uchar *str, + const uchar *end MY_ATTRIBUTE((unused))) +{ + if (str >= end) + return MY_CS_TOOSMALL; + + *wc=cs->tab_to_uni[*str]; + return (!wc[0] && str[0]) ? -1 : 1; +} + +int my_wc_mb_8bit(const CHARSET_INFO *cs,my_wc_t wc, + uchar *str, + uchar *end) +{ + const MY_UNI_IDX *idx; + + if (str >= end) + return MY_CS_TOOSMALL; + + for (idx=cs->tab_from_uni; idx->tab ; idx++) + { + if (idx->from <= wc && idx->to >= wc) + { + str[0]= idx->tab[wc - idx->from]; + return (!str[0] && wc) ? MY_CS_ILUNI : 1; + } + } + return MY_CS_ILUNI; +} + + +/* + We can't use vsprintf here as it's not guaranteed to return + the length on all operating systems. + This function is also not called in a safe environment, so the + end buffer must be checked. +*/ + +size_t my_snprintf_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char* to, size_t n MY_ATTRIBUTE((unused)), + const char* fmt, ...) +{ + va_list args; + size_t result; + va_start(args,fmt); + result= my_vsnprintf(to, n, fmt, args); + va_end(args); + return result; +} + + +void my_hash_sort_simple(const CHARSET_INFO *cs, + const uchar *key, size_t len, + ulong *nr1, ulong *nr2) +{ + const uchar *sort_order=cs->sort_order; + const uchar *end; + ulong tmp1; + ulong tmp2; + + /* + Remove end space. We have to do this to be able to compare + 'A ' and 'A' as identical + */ + end= skip_trailing_space(key, len); + + tmp1= *nr1; + tmp2= *nr2; + + for (; key < (uchar*) end ; key++) + { + tmp1^=(ulong) ((((uint) tmp1 & 63) + tmp2) * + ((uint) sort_order[(uint) *key])) + (tmp1 << 8); + tmp2+=3; + } + + *nr1= tmp1; + *nr2= tmp2; +} + + +long my_strntol_8bit(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative; + uint32 cutoff; + uint cutlim; + uint32 i; + const char *s; + uchar c; + const char *save, *e; + int overflow; + + *err= 0; /* Initialize error indicator */ + + s = nptr; + e = nptr+l; + + for ( ; s='0' && c<='9') + c -= '0'; + else if (c>='A' && c<='Z') + c = c - 'A' + 10; + else if (c>='a' && c<='z') + c = c - 'a' + 10; + else + break; + if (c >= base) + break; + if (i > cutoff || (i == cutoff && c > cutlim)) + overflow = 1; + else + { + i *= (uint32) base; + i += c; + } + } + + if (s == save) + goto noconv; + + if (endptr != NULL) + *endptr = (char *) s; + + if (negative) + { + if (i > (uint32) INT_MIN32) + overflow = 1; + } + else if (i > INT_MAX32) + overflow = 1; + + if (overflow) + { + err[0]= ERANGE; + return negative ? INT_MIN32 : INT_MAX32; + } + + return (negative ? -((long) i) : (long) i); + +noconv: + err[0]= EDOM; + if (endptr != NULL) + *endptr = (char *) nptr; + return 0L; +} + + +ulong my_strntoul_8bit(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative; + uint32 cutoff; + uint cutlim; + uint32 i; + const char *s; + uchar c; + const char *save, *e; + int overflow; + + *err= 0; /* Initialize error indicator */ + + s = nptr; + e = nptr+l; + + for( ; s='0' && c<='9') + c -= '0'; + else if (c>='A' && c<='Z') + c = c - 'A' + 10; + else if (c>='a' && c<='z') + c = c - 'a' + 10; + else + break; + if (c >= base) + break; + if (i > cutoff || (i == cutoff && c > cutlim)) + overflow = 1; + else + { + i *= (uint32) base; + i += c; + } + } + + if (s == save) + goto noconv; + + if (endptr != NULL) + *endptr = (char *) s; + + if (overflow) + { + err[0]= ERANGE; + return (~(uint32) 0); + } + + return (negative ? -((long) i) : (long) i); + +noconv: + err[0]= EDOM; + if (endptr != NULL) + *endptr = (char *) nptr; + return 0L; +} + + +longlong my_strntoll_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *nptr, size_t l, int base, + char **endptr,int *err) +{ + int negative; + ulonglong cutoff; + uint cutlim; + ulonglong i; + const char *s, *e; + const char *save; + int overflow; + + *err= 0; /* Initialize error indicator */ + + s = nptr; + e = nptr+l; + + for(; s='0' && c<='9') + c -= '0'; + else if (c>='A' && c<='Z') + c = c - 'A' + 10; + else if (c>='a' && c<='z') + c = c - 'a' + 10; + else + break; + if (c >= base) + break; + if (i > cutoff || (i == cutoff && c > cutlim)) + overflow = 1; + else + { + i *= (ulonglong) base; + i += c; + } + } + + if (s == save) + goto noconv; + + if (endptr != NULL) + *endptr = (char *) s; + + if (negative) + { + if (i > (ulonglong) LLONG_MIN) + overflow = 1; + } + else if (i > (ulonglong) LLONG_MAX) + overflow = 1; + + if (overflow) + { + err[0]= ERANGE; + return negative ? LLONG_MIN : LLONG_MAX; + } + + return (negative ? -((longlong) i) : (longlong) i); + +noconv: + err[0]= EDOM; + if (endptr != NULL) + *endptr = (char *) nptr; + return 0L; +} + + +ulonglong my_strntoull_8bit(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative; + ulonglong cutoff; + uint cutlim; + ulonglong i; + const char *s, *e; + const char *save; + int overflow; + + *err= 0; /* Initialize error indicator */ + + s = nptr; + e = nptr+l; + + for(; s='0' && c<='9') + c -= '0'; + else if (c>='A' && c<='Z') + c = c - 'A' + 10; + else if (c>='a' && c<='z') + c = c - 'a' + 10; + else + break; + if (c >= base) + break; + if (i > cutoff || (i == cutoff && c > cutlim)) + overflow = 1; + else + { + i *= (ulonglong) base; + i += c; + } + } + + if (s == save) + goto noconv; + + if (endptr != NULL) + *endptr = (char *) s; + + if (overflow) + { + err[0]= ERANGE; + return (~(ulonglong) 0); + } + + return (negative ? -((longlong) i) : (longlong) i); + +noconv: + err[0]= EDOM; + if (endptr != NULL) + *endptr = (char *) nptr; + return 0L; +} + + +/* + Read double from string + + SYNOPSIS: + my_strntod_8bit() + cs Character set information + str String to convert to double + length Optional length for string. + end result pointer to end of converted string + err Error number if failed conversion + + NOTES: + If length is not INT_MAX32 or str[length] != 0 then the given str must + be writeable + If length == INT_MAX32 the str must be \0 terminated. + + It's implemented this way to save a buffer allocation and a memory copy. + + RETURN + Value of number in string +*/ + + +double my_strntod_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char *str, size_t length, + char **end, int *err) +{ + if (length == INT_MAX32) + length= 65535; /* Should be big enough */ + *end= str + length; + return my_strtod(str, end, err); +} + + +/* + This is a fast version optimized for the case of radix 10 / -10 + + Assume len >= 1 +*/ + +size_t my_long10_to_str_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char *dst, size_t len, int radix, long int val) +{ + char buffer[66]; + char *p, *e; + long int new_val; + uint sign=0; + unsigned long int uval = (unsigned long int) val; + + e = p = &buffer[sizeof(buffer)-1]; + *p= 0; + + if (radix < 0) + { + if (val < 0) + { + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval= (unsigned long int)0 - uval; + *dst++= '-'; + len--; + sign= 1; + } + } + + new_val = (long) (uval / 10); + *--p = '0'+ (char) (uval - (unsigned long) new_val * 10); + val = new_val; + + while (val != 0) + { + new_val=val/10; + *--p = '0' + (char) (val-new_val*10); + val= new_val; + } + + len= MY_MIN(len, (size_t) (e-p)); + memcpy(dst, p, len); + return len+sign; +} + + +size_t my_longlong10_to_str_8bit(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + char *dst, size_t len, int radix, + longlong val) +{ + char buffer[65]; + char *p, *e; + long long_val; + uint sign= 0; + ulonglong uval = (ulonglong)val; + + if (radix < 0) + { + if (val < 0) + { + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (ulonglong)0 - uval; + *dst++= '-'; + len--; + sign= 1; + } + } + + e = p = &buffer[sizeof(buffer)-1]; + *p= 0; + + if (uval == 0) + { + *--p= '0'; + len= 1; + goto cnv; + } + + while (uval > (ulonglong) LONG_MAX) + { + ulonglong quo= uval/(uint) 10; + uint rem= (uint) (uval- quo* (uint) 10); + *--p = '0' + rem; + uval= quo; + } + + long_val= (long) uval; + while (long_val != 0) + { + long quo= long_val/10; + *--p = (char) ('0' + (long_val - quo*10)); + long_val= quo; + } + + len= MY_MIN(len, (size_t) (e-p)); +cnv: + memcpy(dst, p, len); + return len+sign; +} + + +/* +** Compare string against string with wildcard +** 0 if matched +** -1 if not matched with wildcard +** 1 if matched with wildcard +*/ + +#define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)] +#define INC_PTR(cs,A,B) (A)++ + +static +int my_wildcmp_8bit_impl(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + while (wildstr != wildend) + { + while (*wildstr != w_many && *wildstr != w_one) + { + if (*wildstr == escape && wildstr+1 != wildend) + wildstr++; + + if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++)) + return(1); /* No match */ + if (wildstr == wildend) + return(str != str_end); /* Match if both are at end */ + result=1; /* Found an anchor char */ + } + if (*wildstr == w_one) + { + do + { + if (str == str_end) /* Skip one char if possible */ + return(result); + INC_PTR(cs,str,str_end); + } while (++wildstr < wildend && *wildstr == w_one); + if (wildstr == wildend) + break; + } + if (*wildstr == w_many) + { /* Found w_many */ + uchar cmp; + + wildstr++; + /* Remove any '%' and '_' from the wild search string */ + for (; wildstr != wildend ; wildstr++) + { + if (*wildstr == w_many) + continue; + if (*wildstr == w_one) + { + if (str == str_end) + return(-1); + INC_PTR(cs,str,str_end); + continue; + } + break; /* Not a wild character */ + } + if (wildstr == wildend) + return(0); /* Ok if w_many is last */ + if (str == str_end) + return(-1); + + if ((cmp= *wildstr) == escape && wildstr+1 != wildend) + cmp= *++wildstr; + + INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */ + cmp=likeconv(cs,cmp); + do + { + while (str != str_end && (uchar) likeconv(cs,*str) != cmp) + str++; + if (str++ == str_end) return(-1); + { + int tmp=my_wildcmp_8bit_impl(cs,str,str_end, + wildstr,wildend,escape,w_one, + w_many, recurse_level + 1); + if (tmp <= 0) + return(tmp); + } + } while (str != str_end && wildstr[0] != w_many); + return(-1); + } + } + return(str != str_end ? 1 : 0); +} + +int my_wildcmp_8bit(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_8bit_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + + +/* +** Calculate min_str and max_str that ranges a LIKE string. +** Arguments: +** ptr Pointer to LIKE string. +** ptr_length Length of LIKE string. +** escape Escape character in LIKE. (Normally '\'). +** All escape characters should be removed from min_str and max_str +** res_length Length of min_str and max_str. +** min_str Smallest case sensitive string that ranges LIKE. +** Should be space padded to res_length. +** max_str Largest case sensitive string that ranges LIKE. +** Normally padded with the biggest character sort value. +** +** The function should return 0 if ok and 1 if the LIKE string can't be +** optimized ! +*/ + +my_bool my_like_range_simple(const CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str,char *max_str, + size_t *min_length, size_t *max_length) +{ + const char *end= ptr + ptr_length; + char *min_org=min_str; + char *min_end=min_str+res_length; + size_t charlen= res_length / cs->mbmaxlen; + + for (; ptr != end && min_str != min_end && charlen > 0 ; ptr++, charlen--) + { + if (*ptr == escape && ptr+1 != end) + { + ptr++; /* Skip escape */ + *min_str++= *max_str++ = *ptr; + continue; + } + if (*ptr == w_one) /* '_' in SQL */ + { + *min_str++='\0'; /* This should be min char */ + *max_str++= (char) cs->max_sort_char; + continue; + } + if (*ptr == w_many) /* '%' in SQL */ + { + /* Calculate length of keys */ + *min_length= ((cs->state & MY_CS_BINSORT) ? + (size_t) (min_str - min_org) : + res_length); + *max_length= res_length; + do + { + *min_str++= 0; + *max_str++= (char) cs->max_sort_char; + } while (min_str != min_end); + return 0; + } + *min_str++= *max_str++ = *ptr; + } + + *min_length= *max_length = (size_t) (min_str - min_org); + while (min_str != min_end) + *min_str++= *max_str++ = ' '; /* Because if key compression */ + return 0; +} + + +size_t my_scan_8bit(const CHARSET_INFO *cs, const char *str, const char *end, + int sq) +{ + const char *str0= str; + switch (sq) + { + case MY_SEQ_INTTAIL: + if (*str == '.') + { + for(str++ ; str != end && *str == '0' ; str++); + return (size_t) (str - str0); + } + return 0; + + case MY_SEQ_SPACES: + for ( ; str < end ; str++) + { + if (!my_isspace(cs,*str)) + break; + } + return (size_t) (str - str0); + default: + return 0; + } +} + + +void my_fill_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char *s, size_t l, int fill) +{ + memset(s, fill, l); +} + + +size_t my_numchars_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e) +{ + return (size_t) (e - b); +} + + +size_t my_numcells_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e) +{ + return (size_t) (e - b); +} + + +size_t my_charpos_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b MY_ATTRIBUTE((unused)), + const char *e MY_ATTRIBUTE((unused)), + size_t pos) +{ + return pos; +} + + +size_t my_well_formed_len_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *start, const char *end, + size_t nchars, int *error) +{ + size_t nbytes= (size_t) (end-start); + *error= 0; + return MY_MIN(nbytes, nchars); +} + + +size_t my_lengthsp_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *ptr, size_t length) +{ + const char *end; + end= (const char *) skip_trailing_space((const uchar *)ptr, length); + return (size_t) (end-ptr); +} + + +uint my_instr_simple(const CHARSET_INFO *cs, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch) +{ + const uchar *str, *search, *end, *search_end; + + if (s_length <= b_length) + { + if (!s_length) + { + if (nmatch) + { + match->beg= 0; + match->end= 0; + match->mb_len= 0; + } + return 1; /* Empty string is always found */ + } + + str= (const uchar*) b; + search= (const uchar*) s; + end= (const uchar*) b+b_length-s_length+1; + search_end= (const uchar*) s + s_length; + +skip: + while (str != end) + { + if (cs->sort_order[*str++] == cs->sort_order[*search]) + { + const uchar *i,*j; + + i= str; + j= search+1; + + while (j != search_end) + if (cs->sort_order[*i++] != cs->sort_order[*j++]) + goto skip; + + if (nmatch > 0) + { + match[0].beg= 0; + match[0].end= (uint) (str- (const uchar*)b-1); + match[0].mb_len= match[0].end; + + if (nmatch > 1) + { + match[1].beg= match[0].end; + match[1].end= match[0].end + (uint)s_length; + match[1].mb_len= match[1].end-match[1].beg; + } + } + return 2; + } + } + } + return 0; +} + +size_t my_well_formed_len_ascii(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *start, const char *end, + size_t nchars, int *error) +{ + /** + @todo: Currently return warning on invalid character. + Return error in future release. + */ + const char* oldstart = start; + *error= 0; + while (start < end) + { + if ((*start & 0x80) != 0) + { + *error = 1; + break; + } + start++; + } + return MY_MIN((size_t)(end - oldstart), nchars); +} + +typedef struct +{ + int nchars; + MY_UNI_IDX uidx; +} uni_idx; + +#define PLANE_SIZE 0x100 +#define PLANE_NUM 0x100 +#define PLANE_NUMBER(x) (((x)>>8) % PLANE_NUM) + +static int pcmp(const void * f, const void * s) +{ + const uni_idx *F= (const uni_idx*) f; + const uni_idx *S= (const uni_idx*) s; + int res; + + if (!(res=((S->nchars)-(F->nchars)))) + res=((F->uidx.from)-(S->uidx.to)); + return res; +} + +static my_bool +create_fromuni(CHARSET_INFO *cs, + MY_CHARSET_LOADER *loader) +{ + uni_idx idx[PLANE_NUM]; + int i,n; + MY_UNI_IDX *tab_from_uni; + + /* + Check that Unicode map is loaded. + It can be not loaded when the collation is + listed in Index.xml but not specified + in the character set specific XML file. + */ + if (!cs->tab_to_uni) + return TRUE; + + /* Clear plane statistics */ + memset(idx, 0, sizeof(idx)); + + /* Count number of characters in each plane */ + for (i=0; i< 0x100; i++) + { + uint16 wc=cs->tab_to_uni[i]; + int pl= PLANE_NUMBER(wc); + + if (wc || !i) + { + if (!idx[pl].nchars) + { + idx[pl].uidx.from=wc; + idx[pl].uidx.to=wc; + }else + { + idx[pl].uidx.from=wcidx[pl].uidx.to?wc:idx[pl].uidx.to; + } + idx[pl].nchars++; + } + } + + /* Sort planes in descending order */ + qsort(&idx,PLANE_NUM,sizeof(uni_idx),&pcmp); + + for (i=0; i < PLANE_NUM; i++) + { + int ch,numchars; + uchar *tab; + + /* Skip empty plane */ + if (!idx[i].nchars) + break; + + numchars=idx[i].uidx.to-idx[i].uidx.from+1; + if (!(idx[i].uidx.tab= tab= (uchar *) + (loader->once_alloc) + (numchars * sizeof(*idx[i].uidx.tab)))) + return TRUE; + + memset(tab, 0, numchars*sizeof(*idx[i].uidx.tab)); + + for (ch=1; ch < PLANE_SIZE; ch++) + { + uint16 wc=cs->tab_to_uni[ch]; + if (wc >= idx[i].uidx.from && wc <= idx[i].uidx.to && wc) + { + int ofs= wc - idx[i].uidx.from; + /* + Character sets like armscii8 may have two code points for + one character. When converting from UNICODE back to + armscii8, select the lowest one, which is in the ASCII + range. + */ + if (tab[ofs] == '\0') + tab[ofs]= ch; + } + } + } + + /* Allocate and fill reverse table for each plane */ + n=i; + if (!(cs->tab_from_uni= tab_from_uni= (MY_UNI_IDX *) + (loader->once_alloc) + (sizeof(MY_UNI_IDX) * (n + 1)))) + return TRUE; + + for (i=0; i< n; i++) + tab_from_uni[i]= idx[i].uidx; + + /* Set end-of-list marker */ + memset(&tab_from_uni[i], 0, sizeof(MY_UNI_IDX)); + return FALSE; +} + +static my_bool +my_cset_init_8bit(CHARSET_INFO *cs, MY_CHARSET_LOADER *loader) +{ + cs->caseup_multiply= 1; + cs->casedn_multiply= 1; + cs->pad_char= ' '; + return create_fromuni(cs, loader); +} + +static void set_max_sort_char(CHARSET_INFO *cs) +{ + uchar max_char; + uint i; + + if (!cs->sort_order) + return; + + max_char=cs->sort_order[(uchar) cs->max_sort_char]; + for (i= 0; i < 256; i++) + { + if ((uchar) cs->sort_order[i] > max_char) + { + max_char=(uchar) cs->sort_order[i]; + cs->max_sort_char= i; + } + } +} + +static my_bool +my_coll_init_simple(CHARSET_INFO *cs, + MY_CHARSET_LOADER *loader MY_ATTRIBUTE((unused))) +{ + set_max_sort_char(cs); + return FALSE; +} + + +longlong my_strtoll10_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *nptr, char **endptr, int *error) +{ + return my_strtoll10(nptr, endptr, error); +} + + +int my_mb_ctype_8bit(const CHARSET_INFO *cs, int *ctype, + const uchar *s, const uchar *e) +{ + if (s >= e) + { + *ctype= 0; + return MY_CS_TOOSMALL; + } + *ctype= cs->ctype[*s + 1]; + return 1; +} + + +#define CUTOFF (ULLONG_MAX / 10) +#define CUTLIM (ULLONG_MAX % 10) +#define DIGITS_IN_ULONGLONG 20 + +static ulonglong d10[DIGITS_IN_ULONGLONG]= +{ + 1, + 10, + 100, + 1000, + 10000, + 100000, + 1000000, + 10000000, + 100000000, + 1000000000, + 10000000000ULL, + 100000000000ULL, + 1000000000000ULL, + 10000000000000ULL, + 100000000000000ULL, + 1000000000000000ULL, + 10000000000000000ULL, + 100000000000000000ULL, + 1000000000000000000ULL, + 10000000000000000000ULL +}; + + +/* + + Convert a string to unsigned long long integer value + with rounding. + + SYNOPSYS + my_strntoull10_8bit() + cs in pointer to character set + str in pointer to the string to be converted + length in string length + unsigned_flag in whether the number is unsigned + endptr out pointer to the stop character + error out returned error code + + DESCRIPTION + This function takes the decimal representation of integer number + from string str and converts it to an signed or unsigned + long long integer value. + Space characters and tab are ignored. + A sign character might precede the digit characters. + The number may have any number of pre-zero digits. + The number may have decimal point and exponent. + Rounding is always done in "away from zero" style: + 0.5 -> 1 + -0.5 -> -1 + + The function stops reading the string str after "length" bytes + or at the first character that is not a part of correct number syntax: + + ::= + [ ] [ E [ ] ] + + ::= + [ [ ] ] + | + ::= ... + + RETURN VALUES + Value of string as a signed/unsigned longlong integer + + endptr cannot be NULL. The function will store the end pointer + to the stop character here. + + The error parameter contains information how things went: + 0 ok + ERANGE If the the value of the converted number is out of range + In this case the return value is: + - ULLONG_MAX if unsigned_flag and the number was too big + - 0 if unsigned_flag and the number was negative + - LLONG_MAX if no unsigned_flag and the number is too big + - LLONG_MIN if no unsigned_flag and the number it too big negative + + EDOM If the string didn't contain any digits. + In this case the return value is 0. +*/ + +ulonglong +my_strntoull10rnd_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *str, size_t length, int unsigned_flag, + char **endptr, int *error) +{ + const char *dot, *end9, *beg, *end= str + length; + ulonglong ull; + ulong ul; + uchar ch; + int shift= 0, digits= 0, negative, addon; + + /* Skip leading spaces and tabs */ + for ( ; str < end && (*str == ' ' || *str == '\t') ; str++); + + if (str >= end) + goto ret_edom; + + if ((negative= (*str == '-')) || *str=='+') /* optional sign */ + { + if (++str == end) + goto ret_edom; + } + + beg= str; + end9= (str + 9) > end ? end : (str + 9); + /* Accumulate small number into ulong, for performance purposes */ + for (ul= 0 ; str < end9 && (ch= (uchar) (*str - '0')) < 10; str++) + { + ul= ul * 10 + ch; + } + + if (str >= end) /* Small number without dots and expanents */ + { + *endptr= (char*) str; + if (negative) + { + if (unsigned_flag) + { + *error= ul ? MY_ERRNO_ERANGE : 0; + return 0; + } + else + { + *error= 0; + return (ulonglong) (longlong) -(long) ul; + } + } + else + { + *error=0; + return (ulonglong) ul; + } + } + + digits= (int)(str - beg); + + /* Continue to accumulate into ulonglong */ + for (dot= NULL, ull= ul; str < end; str++) + { + if ((ch= (uchar) (*str - '0')) < 10) + { + if (ull < CUTOFF || (ull == CUTOFF && ch <= CUTLIM)) + { + ull= ull * 10 + ch; + digits++; + continue; + } + /* + Adding the next digit would overflow. + Remember the next digit in "addon", for rounding. + Scan all digits with an optional single dot. + */ + if (ull == CUTOFF) + { + ull= ULLONG_MAX; + addon= 1; + str++; + } + else + addon= (*str >= '5'); + if (!dot) + { + for ( ; str < end && (ch= (uchar) (*str - '0')) < 10; shift++, str++); + if (str < end && *str == '.') + { + str++; + for ( ; str < end && (ch= (uchar) (*str - '0')) < 10; str++); + } + } + else + { + shift= (int)(dot - str); + for ( ; str < end && (ch= (uchar) (*str - '0')) < 10; str++); + } + goto exp; + } + + if (*str == '.') + { + if (dot) + { + /* The second dot character */ + addon= 0; + goto exp; + } + else + { + dot= str + 1; + } + continue; + } + + /* Unknown character, exit the loop */ + break; + } + shift= dot ? (int)(dot - str) : 0; /* Right shift */ + addon= 0; + +exp: /* [ E [ ] ] */ + + if (!digits) + { + str= beg; + goto ret_edom; + } + + if (str < end && (*str == 'e' || *str == 'E')) + { + str++; + if (str < end) + { + int negative_exp, exponent; + if ((negative_exp= (*str == '-')) || *str=='+') + { + if (++str == end) + goto ret_sign; + } + for (exponent= 0 ; + str < end && (ch= (uchar) (*str - '0')) < 10; + str++) + { + exponent= exponent * 10 + ch; + } + shift+= negative_exp ? -exponent : exponent; + } + } + + if (shift == 0) /* No shift, check addon digit */ + { + if (addon) + { + if (ull == ULLONG_MAX) + goto ret_too_big; + ull++; + } + goto ret_sign; + } + + if (shift < 0) /* Right shift */ + { + ulonglong d, r; + + if (-shift >= DIGITS_IN_ULONGLONG) + goto ret_zero; /* Exponent is a big negative number, return 0 */ + + d= d10[-shift]; + r= (ull % d) * 2; + ull /= d; + if (r >= d) + ull++; + goto ret_sign; + } + + if (shift > DIGITS_IN_ULONGLONG) /* Huge left shift */ + { + if (!ull) + goto ret_sign; + goto ret_too_big; + } + + for ( ; shift > 0; shift--, ull*= 10) /* Left shift */ + { + if (ull > CUTOFF) + goto ret_too_big; /* Overflow, number too big */ + } + +ret_sign: + *endptr= (char*) str; + + if (!unsigned_flag) + { + if (negative) + { + if (ull > (ulonglong) LLONG_MIN) + { + *error= MY_ERRNO_ERANGE; + return (ulonglong) LLONG_MIN; + } + *error= 0; + return (ulonglong) -(longlong) ull; + } + else + { + if (ull > (ulonglong) LLONG_MAX) + { + *error= MY_ERRNO_ERANGE; + return (ulonglong) LLONG_MAX; + } + *error= 0; + return ull; + } + } + + /* Unsigned number */ + if (negative && ull) + { + *error= MY_ERRNO_ERANGE; + return 0; + } + *error= 0; + return ull; + +ret_zero: + *endptr= (char*) str; + *error= 0; + return 0; + +ret_edom: + *endptr= (char*) str; + *error= MY_ERRNO_EDOM; + return 0; + +ret_too_big: + *endptr= (char*) str; + *error= MY_ERRNO_ERANGE; + return unsigned_flag ? + ULLONG_MAX : + negative ? (ulonglong) LLONG_MIN : (ulonglong) LLONG_MAX; +} + + +/* + Check if a constant can be propagated + + SYNOPSIS: + my_propagate_simple() + cs Character set information + str String to convert to double + length Optional length for string. + + NOTES: + Takes the string in the given charset and check + if it can be safely propagated in the optimizer. + + create table t1 ( + s char(5) character set latin1 collate latin1_german2_ci); + insert into t1 values (0xf6); -- o-umlaut + select * from t1 where length(s)=1 and s='oe'; + + The above query should return one row. + We cannot convert this query into: + select * from t1 where length('oe')=1 and s='oe'; + + Currently we don't check the constant itself, + and decide not to propagate a constant + just if the collation itself allows tricky things + like expansions and contractions. In the future + we can write a more sophisticated functions to + check the constants. For example, 'oa' can always + be safety propagated in German2 because unlike + 'oe' it does not have any special meaning. + + RETURN + 1 if constant can be safely propagated + 0 if it is not safe to propagate the constant +*/ + + + +my_bool my_propagate_simple(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *str MY_ATTRIBUTE((unused)), + size_t length MY_ATTRIBUTE((unused))) +{ + return 1; +} + + +my_bool my_propagate_complex(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *str MY_ATTRIBUTE((unused)), + size_t length MY_ATTRIBUTE((unused))) +{ + return 0; +} + + +/* + Normalize strxfrm flags + + SYNOPSIS: + my_strxfrm_flag_normalize() + flags - non-normalized flags + nlevels - number of levels + + NOTES: + If levels are omitted, then 1-maximum is assumed. + If any level number is greater than the maximum, + it is treated as the maximum. + + RETURN + normalized flags +*/ + +uint my_strxfrm_flag_normalize(uint flags, uint maximum) +{ + DBUG_ASSERT(maximum >= 1 && maximum <= MY_STRXFRM_NLEVELS); + + /* If levels are omitted, then 1-maximum is assumed*/ + if (!(flags & MY_STRXFRM_LEVEL_ALL)) + { + static uint def_level_flags[]= {0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F }; + uint flag_pad= flags & + (MY_STRXFRM_PAD_WITH_SPACE | MY_STRXFRM_PAD_TO_MAXLEN); + flags= def_level_flags[maximum] | flag_pad; + } + else + { + uint i; + uint flag_lev= flags & MY_STRXFRM_LEVEL_ALL; + uint flag_dsc= (flags >> MY_STRXFRM_DESC_SHIFT) & MY_STRXFRM_LEVEL_ALL; + uint flag_rev= (flags >> MY_STRXFRM_REVERSE_SHIFT) & MY_STRXFRM_LEVEL_ALL; + uint flag_pad= flags & + (MY_STRXFRM_PAD_WITH_SPACE | MY_STRXFRM_PAD_TO_MAXLEN); + + /* + If any level number is greater than the maximum, + it is treated as the maximum. + */ + for (maximum--, flags= 0, i= 0; i < MY_STRXFRM_NLEVELS; i++) + { + uint src_bit= 1 << i; + if (flag_lev & src_bit) + { + uint dst_bit= 1 << MY_MIN(i, maximum); + flags|= dst_bit; + flags|= (flag_dsc & dst_bit) << MY_STRXFRM_DESC_SHIFT; + flags|= (flag_rev & dst_bit) << MY_STRXFRM_REVERSE_SHIFT; + } + } + flags|= flag_pad; + } + + return flags; +} + + +/* + Apply DESC and REVERSE collation rules. + + SYNOPSIS: + my_strxfrm_desc_and_reverse() + str - pointer to string + strend - end of string + flags - flags + level - which level, starting from 0. + + NOTES: + Apply DESC or REVERSE or both flags. + + If DESC flag is given, then the weights + come out NOTed or negated for that level. + + If REVERSE flags is given, then the weights come out in + reverse order for that level, that is, starting with + the last character and ending with the first character. + + If nether DESC nor REVERSE flags are give, + the string is not changed. + +*/ +void +my_strxfrm_desc_and_reverse(uchar *str, uchar *strend, + uint flags, uint level) +{ + if (flags & (MY_STRXFRM_DESC_LEVEL1 << level)) + { + if (flags & (MY_STRXFRM_REVERSE_LEVEL1 << level)) + { + for (strend--; str <= strend;) + { + uchar tmp= *str; + *str++= ~*strend; + *strend--= ~tmp; + } + } + else + { + for (; str < strend; str++) + *str= ~*str; + } + } + else if (flags & (MY_STRXFRM_REVERSE_LEVEL1 << level)) + { + for (strend--; str < strend;) + { + uchar tmp= *str; + *str++= *strend; + *strend--= tmp; + } + } +} + + +size_t +my_strxfrm_pad_desc_and_reverse(const CHARSET_INFO *cs, + uchar *str, uchar *frmend, uchar *strend, + uint nweights, uint flags, uint level) +{ + if (nweights && frmend < strend && (flags & MY_STRXFRM_PAD_WITH_SPACE)) + { + uint fill_length= MY_MIN((uint) (strend - frmend), nweights * cs->mbminlen); + cs->cset->fill(cs, (char*) frmend, fill_length, cs->pad_char); + frmend+= fill_length; + } + my_strxfrm_desc_and_reverse(str, frmend, flags, level); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && frmend < strend) + { + size_t fill_length= strend - frmend; + cs->cset->fill(cs, (char*) frmend, fill_length, cs->pad_char); + frmend= strend; + } + return frmend - str; +} + + +MY_CHARSET_HANDLER my_charset_8bit_handler= +{ + my_cset_init_8bit, + NULL, /* ismbchar */ + my_mbcharlen_8bit, /* mbcharlen */ + my_numchars_8bit, + my_charpos_8bit, + my_well_formed_len_8bit, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_8bit, + my_wc_mb_8bit, + my_mb_ctype_8bit, + my_caseup_str_8bit, + my_casedn_str_8bit, + my_caseup_8bit, + my_casedn_8bit, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + +MY_CHARSET_HANDLER my_charset_ascii_handler= +{ + my_cset_init_8bit, + NULL, /* ismbchar */ + my_mbcharlen_8bit, /* mbcharlen */ + my_numchars_8bit, + my_charpos_8bit, + my_well_formed_len_ascii, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_8bit, + my_wc_mb_8bit, + my_mb_ctype_8bit, + my_caseup_str_8bit, + my_casedn_str_8bit, + my_caseup_8bit, + my_casedn_8bit, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + +MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler = +{ + my_coll_init_simple, /* init */ + my_strnncoll_simple, + my_strnncollsp_simple, + my_strnxfrm_simple, + my_strnxfrmlen_simple, + my_like_range_simple, + my_wildcmp_8bit, + my_strcasecmp_8bit, + my_instr_simple, + my_hash_sort_simple, + my_propagate_simple +}; diff --git a/mysql/strings/ctype-sjis.c b/mysql/strings/ctype-sjis.c new file mode 100644 index 0000000..4307b96 --- /dev/null +++ b/mysql/strings/ctype-sjis.c @@ -0,0 +1,34247 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for Shift JIS charset, and created by tommy@valley.ne.jp. + */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_sjis + + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_sjis=1 + * .configure. mbmaxlen_sjis=2 + */ + +static const uchar ctype_sjis[257] = +{ + 0, /* For standard library */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */ + 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */ + 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */ + 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */ + 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */ + 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */ + 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */ + 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */ + 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0000, 0000, 0000 +}; + +static const uchar to_lower_sjis[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar to_upper_sjis[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar sort_order_sjis[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +#define issjishead(c) ((0x81<=(c) && (c)<=0x9f) || \ + ((0xe0<=(c)) && (c)<=0xfc)) +#define issjistail(c) ((0x40<=(c) && (c)<=0x7e) || \ + (0x80<=(c) && (c)<=0xfc)) + + +static uint ismbchar_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return (issjishead((uchar) *p) && (e-p)>1 && issjistail((uchar)p[1]) ? 2: 0); +} + +static uint mbcharlen_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (issjishead((uchar) c) ? 2 : 1); +} + + +#define sjiscode(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d)) + + +static const MY_UNICASE_CHARACTER c81[256]= +{ + /* 8100-810F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8110-811F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8120-812F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8130-813F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8140,0x8140,0x3000}, /* 8140-814F */ + {0x8141,0x8141,0x3001}, + {0x8142,0x8142,0x3002}, + {0x8143,0x8143,0xFF0C}, + {0x8144,0x8144,0xFF0E}, + {0x8145,0x8145,0x30FB}, + {0x8146,0x8146,0xFF1A}, + {0x8147,0x8147,0xFF1B}, + {0x8148,0x8148,0xFF1F}, + {0x8149,0x8149,0xFF01}, + {0x814A,0x814A,0x309B}, + {0x814B,0x814B,0x309C}, + {0x814C,0x814C,0x00B4}, + {0x814D,0x814D,0xFF40}, + {0x814E,0x814E,0x00A8}, + {0x814F,0x814F,0xFF3E}, + {0x8150,0x8150,0xFFE3}, /* 8150-815F */ + {0x8151,0x8151,0xFF3F}, + {0x8152,0x8152,0x30FD}, + {0x8153,0x8153,0x30FE}, + {0x8154,0x8154,0x309D}, + {0x8155,0x8155,0x309E}, + {0x8156,0x8156,0x3003}, + {0x8157,0x8157,0x4EDD}, + {0x8158,0x8158,0x3005}, + {0x8159,0x8159,0x3006}, + {0x815A,0x815A,0x3007}, + {0x815B,0x815B,0x30FC}, + {0x815C,0x815C,0x2015}, + {0x815D,0x815D,0x2010}, + {0x815E,0x815E,0xFF0F}, + {0x815F,0x815F,0xFF3C}, + {0x8160,0x8160,0xFF5E}, /* 8160-816F */ + {0x8161,0x8161,0x2225}, + {0x8162,0x8162,0xFF5C}, + {0x8163,0x8163,0x2026}, + {0x8164,0x8164,0x2025}, + {0x8165,0x8165,0x2018}, + {0x8166,0x8166,0x2019}, + {0x8167,0x8167,0x201C}, + {0x8168,0x8168,0x201D}, + {0x8169,0x8169,0xFF08}, + {0x816A,0x816A,0xFF09}, + {0x816B,0x816B,0x3014}, + {0x816C,0x816C,0x3015}, + {0x816D,0x816D,0xFF3B}, + {0x816E,0x816E,0xFF3D}, + {0x816F,0x816F,0xFF5B}, + {0x8170,0x8170,0xFF5D}, /* 8170-817F */ + {0x8171,0x8171,0x3008}, + {0x8172,0x8172,0x3009}, + {0x8173,0x8173,0x300A}, + {0x8174,0x8174,0x300B}, + {0x8175,0x8175,0x300C}, + {0x8176,0x8176,0x300D}, + {0x8177,0x8177,0x300E}, + {0x8178,0x8178,0x300F}, + {0x8179,0x8179,0x3010}, + {0x817A,0x817A,0x3011}, + {0x817B,0x817B,0xFF0B}, + {0x817C,0x817C,0xFF0D}, + {0x817D,0x817D,0x00B1}, + {0x817E,0x817E,0x00D7}, + {0,0,0}, + {0x8180,0x8180,0x00F7}, /* 8180-818F */ + {0x8181,0x8181,0xFF1D}, + {0x8182,0x8182,0x2260}, + {0x8183,0x8183,0xFF1C}, + {0x8184,0x8184,0xFF1E}, + {0x8185,0x8185,0x2266}, + {0x8186,0x8186,0x2267}, + {0x8187,0x8187,0x221E}, + {0x8188,0x8188,0x2234}, + {0x8189,0x8189,0x2642}, + {0x818A,0x818A,0x2640}, + {0x818B,0x818B,0x00B0}, + {0x818C,0x818C,0x2032}, + {0x818D,0x818D,0x2033}, + {0x818E,0x818E,0x2103}, + {0x818F,0x818F,0xFFE5}, + {0x8190,0x8190,0xFF04}, /* 8190-819F*/ + {0x8191,0x8191,0xFFE0}, + {0x8192,0x8192,0xFFE1}, + {0x8193,0x8193,0xFF05}, + {0x8194,0x8194,0xFF03}, + {0x8195,0x8195,0xFF06}, + {0x8196,0x8196,0xFF0A}, + {0x8197,0x8197,0xFF20}, + {0x8198,0x8198,0x00A7}, + {0x8199,0x8199,0x2606}, + {0x819A,0x819A,0x2605}, + {0x819B,0x819B,0x25CB}, + {0x819C,0x819C,0x25CF}, + {0x819D,0x819D,0x25CE}, + {0x819E,0x819E,0x25C7}, + {0x819F,0x819F,0x25C6}, + {0x81A0,0x81A0,0x25A1}, /* 81A0-81AF */ + {0x81A1,0x81A1,0x25A0}, + {0x81A2,0x81A2,0x25B3}, + {0x81A3,0x81A3,0x25B2}, + {0x81A4,0x81A4,0x25BD}, + {0x81A5,0x81A5,0x25BC}, + {0x81A6,0x81A6,0x203B}, + {0x81A7,0x81A7,0x3012}, + {0x81A8,0x81A8,0x2192}, + {0x81A9,0x81A9,0x2190}, + {0x81AA,0x81AA,0x2191}, + {0x81AB,0x81AB,0x2193}, + {0x81AC,0x81AC,0x3013}, + {0x81AD,0x81AD,0x003F}, + {0x81AE,0x81AE,0x003F}, + {0x81AF,0x81AF,0x003F}, + {0x81B0,0x81B0,0x003F}, /* 81B0-81BF */ + {0x81B1,0x81B1,0x003F}, + {0x81B2,0x81B2,0x003F}, + {0x81B3,0x81B3,0x003F}, + {0x81B4,0x81B4,0x003F}, + {0x81B5,0x81B5,0x003F}, + {0x81B6,0x81B6,0x003F}, + {0x81B7,0x81B7,0x003F}, + {0x81B8,0x81B8,0x2208}, + {0x81B9,0x81B9,0x220B}, + {0x81BA,0x81BA,0x2286}, + {0x81BB,0x81BB,0x2287}, + {0x81BC,0x81BC,0x2282}, + {0x81BD,0x81BD,0x2283}, + {0x81BE,0x81BE,0x222A}, + {0x81BF,0x81BF,0x2229}, + {0x81C0,0x81C0,0x003F}, /* 81C0-81CF */ + {0x81C1,0x81C1,0x003F}, + {0x81C2,0x81C2,0x003F}, + {0x81C3,0x81C3,0x003F}, + {0x81C4,0x81C4,0x003F}, + {0x81C5,0x81C5,0x003F}, + {0x81C6,0x81C6,0x003F}, + {0x81C7,0x81C7,0x003F}, + {0x81C8,0x81C8,0x2227}, + {0x81C9,0x81C9,0x2228}, + {0x81CA,0x81CA,0xFFE2}, + {0x81CB,0x81CB,0x21D2}, + {0x81CC,0x81CC,0x21D4}, + {0x81CD,0x81CD,0x2200}, + {0x81CE,0x81CE,0x2203}, + {0x81CF,0x81CF,0x003F}, + {0x81D0,0x81D0,0x003F}, /* 81D0-81DF */ + {0x81D1,0x81D1,0x003F}, + {0x81D2,0x81D2,0x003F}, + {0x81D3,0x81D3,0x003F}, + {0x81D4,0x81D4,0x003F}, + {0x81D5,0x81D5,0x003F}, + {0x81D6,0x81D6,0x003F}, + {0x81D7,0x81D7,0x003F}, + {0x81D8,0x81D8,0x003F}, + {0x81D9,0x81D9,0x003F}, + {0x81DA,0x81DA,0x2220}, + {0x81DB,0x81DB,0x22A5}, + {0x81DC,0x81DC,0x2312}, + {0x81DD,0x81DD,0x2202}, + {0x81DE,0x81DE,0x2207}, + {0x81DF,0x81DF,0x2261}, + {0x81E0,0x81E0,0x2252}, /* 81E0-81EF */ + {0x81E1,0x81E1,0x226A}, + {0x81E2,0x81E2,0x226B}, + {0x81E3,0x81E3,0x221A}, + {0x81E4,0x81E4,0x223D}, + {0x81E5,0x81E5,0x221D}, + {0x81E6,0x81E6,0x2235}, + {0x81E7,0x81E7,0x222B}, + {0x81E8,0x81E8,0x222C}, + {0x81E9,0x81E9,0x003F}, + {0x81EA,0x81EA,0x003F}, + {0x81EB,0x81EB,0x003F}, + {0x81EC,0x81EC,0x003F}, + {0x81ED,0x81ED,0x003F}, + {0x81EE,0x81EE,0x003F}, + {0x81EF,0x81EF,0x003F}, + {0x81F0,0x81F0,0x212B}, /* 81F0-81FF */ + {0x81F1,0x81F1,0x2030}, + {0x81F2,0x81F2,0x266F}, + {0x81F3,0x81F3,0x266D}, + {0x81F4,0x81F4,0x266A}, + {0x81F5,0x81F5,0x2020}, + {0x81F6,0x81F6,0x2021}, + {0x81F7,0x81F7,0x00B6}, + {0x81F8,0x81F8,0x003F}, + {0x81F9,0x81F9,0x003F}, + {0x81FA,0x81FA,0x003F}, + {0x81FB,0x81FB,0x003F}, + {0x81FC,0x81FC,0x25EF}, + {0,0,0}, + {0,0,0}, + {0,0,0}, +}; + + +static const MY_UNICASE_CHARACTER c82[256]= +{ + /* 8200-820F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8210-821F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8220-822F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8230-823F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8240,0x8240,0x003F}, /* 8240-824F */ + {0x8241,0x8241,0x003F}, + {0x8242,0x8242,0x003F}, + {0x8243,0x8243,0x003F}, + {0x8244,0x8244,0x003F}, + {0x8245,0x8245,0x003F}, + {0x8246,0x8246,0x003F}, + {0x8247,0x8247,0x003F}, + {0x8248,0x8248,0x003F}, + {0x8249,0x8249,0x003F}, + {0x824A,0x824A,0x003F}, + {0x824B,0x824B,0x003F}, + {0x824C,0x824C,0x003F}, + {0x824D,0x824D,0x003F}, + {0x824E,0x824E,0x003F}, + {0x824F,0x824F,0xFF10}, + {0x8250,0x8250,0xFF11}, /* 8250-825F */ + {0x8251,0x8251,0xFF12}, + {0x8252,0x8252,0xFF13}, + {0x8253,0x8253,0xFF14}, + {0x8254,0x8254,0xFF15}, + {0x8255,0x8255,0xFF16}, + {0x8256,0x8256,0xFF17}, + {0x8257,0x8257,0xFF18}, + {0x8258,0x8258,0xFF19}, + {0x8259,0x8259,0x003F}, + {0x825A,0x825A,0x003F}, + {0x825B,0x825B,0x003F}, + {0x825C,0x825C,0x003F}, + {0x825D,0x825D,0x003F}, + {0x825E,0x825E,0x003F}, + {0x825F,0x825F,0x003F}, + {0x8260,0x8281,0xFF21}, /* 8260-826F */ + {0x8261,0x8282,0xFF22}, + {0x8262,0x8283,0xFF23}, + {0x8263,0x8284,0xFF24}, + {0x8264,0x8285,0xFF25}, + {0x8265,0x8286,0xFF26}, + {0x8266,0x8287,0xFF27}, + {0x8267,0x8288,0xFF28}, + {0x8268,0x8289,0xFF29}, + {0x8269,0x828A,0xFF2A}, + {0x826A,0x828B,0xFF2B}, + {0x826B,0x828C,0xFF2C}, + {0x826C,0x828D,0xFF2D}, + {0x826D,0x828E,0xFF2E}, + {0x826E,0x828F,0xFF2F}, + {0x826F,0x8290,0xFF30}, + {0x8270,0x8291,0xFF31}, /* 8270-827F */ + {0x8271,0x8292,0xFF32}, + {0x8272,0x8293,0xFF33}, + {0x8273,0x8294,0xFF34}, + {0x8274,0x8295,0xFF35}, + {0x8275,0x8296,0xFF36}, + {0x8276,0x8297,0xFF37}, + {0x8277,0x8298,0xFF38}, + {0x8278,0x8299,0xFF39}, + {0x8279,0x829A,0xFF3A}, + {0x827A,0x827A,0x003F}, + {0x827B,0x827B,0x003F}, + {0x827C,0x827C,0x003F}, + {0x827D,0x827D,0x003F}, + {0x827E,0x827E,0x003F}, + {0,0,0}, + {0x8280,0x8280,0x003F}, /* 8280-828F */ + {0x8260,0x8281,0xFF41}, + {0x8261,0x8282,0xFF42}, + {0x8262,0x8283,0xFF43}, + {0x8263,0x8284,0xFF44}, + {0x8264,0x8285,0xFF45}, + {0x8265,0x8286,0xFF46}, + {0x8266,0x8287,0xFF47}, + {0x8267,0x8288,0xFF48}, + {0x8268,0x8289,0xFF49}, + {0x8269,0x828A,0xFF4A}, + {0x826A,0x828B,0xFF4B}, + {0x826B,0x828C,0xFF4C}, + {0x826C,0x828D,0xFF4D}, + {0x826D,0x828E,0xFF4E}, + {0x826E,0x828F,0xFF4F}, + {0x826F,0x8290,0xFF50}, /* 8290-829F */ + {0x8270,0x8291,0xFF51}, + {0x8271,0x8292,0xFF52}, + {0x8272,0x8293,0xFF53}, + {0x8273,0x8294,0xFF54}, + {0x8274,0x8295,0xFF55}, + {0x8275,0x8296,0xFF56}, + {0x8276,0x8297,0xFF57}, + {0x8277,0x8298,0xFF58}, + {0x8278,0x8299,0xFF59}, + {0x8279,0x829A,0xFF5A}, + {0x829B,0x829B,0x003F}, + {0x829C,0x829C,0x003F}, + {0x829D,0x829D,0x003F}, + {0x829E,0x829E,0x003F}, + {0x829F,0x829F,0x3041}, + {0x82A0,0x82A0,0x3042}, /* 82A0-82AF */ + {0x82A1,0x82A1,0x3043}, + {0x82A2,0x82A2,0x3044}, + {0x82A3,0x82A3,0x3045}, + {0x82A4,0x82A4,0x3046}, + {0x82A5,0x82A5,0x3047}, + {0x82A6,0x82A6,0x3048}, + {0x82A7,0x82A7,0x3049}, + {0x82A8,0x82A8,0x304A}, + {0x82A9,0x82A9,0x304B}, + {0x82AA,0x82AA,0x304C}, + {0x82AB,0x82AB,0x304D}, + {0x82AC,0x82AC,0x304E}, + {0x82AD,0x82AD,0x304F}, + {0x82AE,0x82AE,0x3050}, + {0x82AF,0x82AF,0x3051}, + {0x82B0,0x82B0,0x3052}, /* 82B0-82BF */ + {0x82B1,0x82B1,0x3053}, + {0x82B2,0x82B2,0x3054}, + {0x82B3,0x82B3,0x3055}, + {0x82B4,0x82B4,0x3056}, + {0x82B5,0x82B5,0x3057}, + {0x82B6,0x82B6,0x3058}, + {0x82B7,0x82B7,0x3059}, + {0x82B8,0x82B8,0x305A}, + {0x82B9,0x82B9,0x305B}, + {0x82BA,0x82BA,0x305C}, + {0x82BB,0x82BB,0x305D}, + {0x82BC,0x82BC,0x305E}, + {0x82BD,0x82BD,0x305F}, + {0x82BE,0x82BE,0x3060}, + {0x82BF,0x82BF,0x3061}, + {0x82C0,0x82C0,0x3062}, /* 82C0-82CF */ + {0x82C1,0x82C1,0x3063}, + {0x82C2,0x82C2,0x3064}, + {0x82C3,0x82C3,0x3065}, + {0x82C4,0x82C4,0x3066}, + {0x82C5,0x82C5,0x3067}, + {0x82C6,0x82C6,0x3068}, + {0x82C7,0x82C7,0x3069}, + {0x82C8,0x82C8,0x306A}, + {0x82C9,0x82C9,0x306B}, + {0x82CA,0x82CA,0x306C}, + {0x82CB,0x82CB,0x306D}, + {0x82CC,0x82CC,0x306E}, + {0x82CD,0x82CD,0x306F}, + {0x82CE,0x82CE,0x3070}, + {0x82CF,0x82CF,0x3071}, + {0x82D0,0x82D0,0x3072}, /* 82D0-82DF */ + {0x82D1,0x82D1,0x3073}, + {0x82D2,0x82D2,0x3074}, + {0x82D3,0x82D3,0x3075}, + {0x82D4,0x82D4,0x3076}, + {0x82D5,0x82D5,0x3077}, + {0x82D6,0x82D6,0x3078}, + {0x82D7,0x82D7,0x3079}, + {0x82D8,0x82D8,0x307A}, + {0x82D9,0x82D9,0x307B}, + {0x82DA,0x82DA,0x307C}, + {0x82DB,0x82DB,0x307D}, + {0x82DC,0x82DC,0x307E}, + {0x82DD,0x82DD,0x307F}, + {0x82DE,0x82DE,0x3080}, + {0x82DF,0x82DF,0x3081}, + {0x82E0,0x82E0,0x3082}, /* 82E0-82EF */ + {0x82E1,0x82E1,0x3083}, + {0x82E2,0x82E2,0x3084}, + {0x82E3,0x82E3,0x3085}, + {0x82E4,0x82E4,0x3086}, + {0x82E5,0x82E5,0x3087}, + {0x82E6,0x82E6,0x3088}, + {0x82E7,0x82E7,0x3089}, + {0x82E8,0x82E8,0x308A}, + {0x82E9,0x82E9,0x308B}, + {0x82EA,0x82EA,0x308C}, + {0x82EB,0x82EB,0x308D}, + {0x82EC,0x82EC,0x308E}, + {0x82ED,0x82ED,0x308F}, + {0x82EE,0x82EE,0x3090}, + {0x82EF,0x82EF,0x3091}, + {0x82F0,0x82F0,0x3092}, /* 82F0-82FF */ + {0x82F1,0x82F1,0x3093}, + {0x82F2,0x82F2,0x003F}, + {0x82F3,0x82F3,0x003F}, + {0x82F4,0x82F4,0x003F}, + {0x82F5,0x82F5,0x003F}, + {0x82F6,0x82F6,0x003F}, + {0x82F7,0x82F7,0x003F}, + {0x82F8,0x82F8,0x003F}, + {0x82F9,0x82F9,0x003F}, + {0x82FA,0x82FA,0x003F}, + {0x82FB,0x82FB,0x003F}, + {0x82FC,0x82FC,0x003F}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER c83[256]= +{ + /* 8300-830F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8310-831F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8320-832F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8330-833F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8340,0x8340,0x30A1}, /* 8340 */ + {0x8341,0x8341,0x30A2}, + {0x8342,0x8342,0x30A3}, + {0x8343,0x8343,0x30A4}, + {0x8344,0x8344,0x30A5}, + {0x8345,0x8345,0x30A6}, + {0x8346,0x8346,0x30A7}, + {0x8347,0x8347,0x30A8}, + {0x8348,0x8348,0x30A9}, + {0x8349,0x8349,0x30AA}, + {0x834A,0x834A,0x30AB}, + {0x834B,0x834B,0x30AC}, + {0x834C,0x834C,0x30AD}, + {0x834D,0x834D,0x30AE}, + {0x834E,0x834E,0x30AF}, + {0x834F,0x834F,0x30B0}, + {0x8350,0x8350,0x30B1}, /* 8350 */ + {0x8351,0x8351,0x30B2}, + {0x8352,0x8352,0x30B3}, + {0x8353,0x8353,0x30B4}, + {0x8354,0x8354,0x30B5}, + {0x8355,0x8355,0x30B6}, + {0x8356,0x8356,0x30B7}, + {0x8357,0x8357,0x30B8}, + {0x8358,0x8358,0x30B9}, + {0x8359,0x8359,0x30BA}, + {0x835A,0x835A,0x30BB}, + {0x835B,0x835B,0x30BC}, + {0x835C,0x835C,0x30BD}, + {0x835D,0x835D,0x30BE}, + {0x835E,0x835E,0x30BF}, + {0x835F,0x835F,0x30C0}, + {0x8360,0x8360,0x30C1}, /* 8360 */ + {0x8361,0x8361,0x30C2}, + {0x8362,0x8362,0x30C3}, + {0x8363,0x8363,0x30C4}, + {0x8364,0x8364,0x30C5}, + {0x8365,0x8365,0x30C6}, + {0x8366,0x8366,0x30C7}, + {0x8367,0x8367,0x30C8}, + {0x8368,0x8368,0x30C9}, + {0x8369,0x8369,0x30CA}, + {0x836A,0x836A,0x30CB}, + {0x836B,0x836B,0x30CC}, + {0x836C,0x836C,0x30CD}, + {0x836D,0x836D,0x30CE}, + {0x836E,0x836E,0x30CF}, + {0x836F,0x836F,0x30D0}, + {0x8370,0x8370,0x30D1}, /* 8370 */ + {0x8371,0x8371,0x30D2}, + {0x8372,0x8372,0x30D3}, + {0x8373,0x8373,0x30D4}, + {0x8374,0x8374,0x30D5}, + {0x8375,0x8375,0x30D6}, + {0x8376,0x8376,0x30D7}, + {0x8377,0x8377,0x30D8}, + {0x8378,0x8378,0x30D9}, + {0x8379,0x8379,0x30DA}, + {0x837A,0x837A,0x30DB}, + {0x837B,0x837B,0x30DC}, + {0x837C,0x837C,0x30DD}, + {0x837D,0x837D,0x30DE}, + {0x837E,0x837E,0x30DF}, + {0,0,0}, + {0x8380,0x8380,0x30E0}, /* 8380 */ + {0x8381,0x8381,0x30E1}, + {0x8382,0x8382,0x30E2}, + {0x8383,0x8383,0x30E3}, + {0x8384,0x8384,0x30E4}, + {0x8385,0x8385,0x30E5}, + {0x8386,0x8386,0x30E6}, + {0x8387,0x8387,0x30E7}, + {0x8388,0x8388,0x30E8}, + {0x8389,0x8389,0x30E9}, + {0x838A,0x838A,0x30EA}, + {0x838B,0x838B,0x30EB}, + {0x838C,0x838C,0x30EC}, + {0x838D,0x838D,0x30ED}, + {0x838E,0x838E,0x30EE}, + {0x838F,0x838F,0x30EF}, + {0x8390,0x8390,0x30F0}, /* 8390 */ + {0x8391,0x8391,0x30F1}, + {0x8392,0x8392,0x30F2}, + {0x8393,0x8393,0x30F3}, + {0x8394,0x8394,0x30F4}, + {0x8395,0x8395,0x30F5}, + {0x8396,0x8396,0x30F6}, + {0x8397,0x8397,0x003F}, + {0x8398,0x8398,0x003F}, + {0x8399,0x8399,0x003F}, + {0x839A,0x839A,0x003F}, + {0x839B,0x839B,0x003F}, + {0x839C,0x839C,0x003F}, + {0x839D,0x839D,0x003F}, + {0x839E,0x839E,0x003F}, + {0x839F,0x83BF,0x0391}, + {0x83A0,0x83C0,0x0392}, /* 83A0 */ + {0x83A1,0x83C1,0x0393}, + {0x83A2,0x83C2,0x0394}, + {0x83A3,0x83C3,0x0395}, + {0x83A4,0x83C4,0x0396}, + {0x83A5,0x83C5,0x0397}, + {0x83A6,0x83C6,0x0398}, + {0x83A7,0x83C7,0x0399}, + {0x83A8,0x83C8,0x039A}, + {0x83A9,0x83C9,0x039B}, + {0x83AA,0x83CA,0x039C}, + {0x83AB,0x83CB,0x039D}, + {0x83AC,0x83CC,0x039E}, + {0x83AD,0x83CD,0x039F}, + {0x83AE,0x83CE,0x03A0}, + {0x83AF,0x83CF,0x03A1}, + {0x83B0,0x83D0,0x03A3}, /* 83B0 */ + {0x83B1,0x83D1,0x03A4}, + {0x83B2,0x83D2,0x03A5}, + {0x83B3,0x83D3,0x03A6}, + {0x83B4,0x83D4,0x03A7}, + {0x83B5,0x83D5,0x03A8}, + {0x83B6,0x83D6,0x03A9}, + {0x83B7,0x83B7,0x003F}, + {0x83B8,0x83B8,0x003F}, + {0x83B9,0x83B9,0x003F}, + {0x83BA,0x83BA,0x003F}, + {0x83BB,0x83BB,0x003F}, + {0x83BC,0x83BC,0x003F}, + {0x83BD,0x83BD,0x003F}, + {0x83BE,0x83BE,0x003F}, + {0x839F,0x83BF,0x03B1}, + {0x83A0,0x83C0,0x03B2}, /* 83C0 */ + {0x83A1,0x83C1,0x03B3}, + {0x83A2,0x83C2,0x03B4}, + {0x83A3,0x83C3,0x03B5}, + {0x83A4,0x83C4,0x03B6}, + {0x83A5,0x83C5,0x03B7}, + {0x83A6,0x83C6,0x03B8}, + {0x83A7,0x83C7,0x03B9}, + {0x83A8,0x83C8,0x03BA}, + {0x83A9,0x83C9,0x03BB}, + {0x83AA,0x83CA,0x03BC}, + {0x83AB,0x83CB,0x03BD}, + {0x83AC,0x83CC,0x03BE}, + {0x83AD,0x83CD,0x03BF}, + {0x83AE,0x83CE,0x03C0}, + {0x83AF,0x83CF,0x03C1}, + {0x83B0,0x83D0,0x03C3}, /* 83D0 */ + {0x83B1,0x83D1,0x03C4}, + {0x83B2,0x83D2,0x03C5}, + {0x83B3,0x83D3,0x03C6}, + {0x83B4,0x83D4,0x03C7}, + {0x83B5,0x83D5,0x03C8}, + {0x83B6,0x83D6,0x03C9}, + {0x83D7,0x83D7,0x003F}, + {0x83D8,0x83D8,0x003F}, + {0x83D9,0x83D9,0x003F}, + {0x83DA,0x83DA,0x003F}, + {0x83DB,0x83DB,0x003F}, + {0x83DC,0x83DC,0x003F}, + {0x83DD,0x83DD,0x003F}, + {0x83DE,0x83DE,0x003F}, + {0x83DF,0x83DF,0x003F}, + {0x83E0,0x83E0,0x003F}, /* 83E0 */ + {0x83E1,0x83E1,0x003F}, + {0x83E2,0x83E2,0x003F}, + {0x83E3,0x83E3,0x003F}, + {0x83E4,0x83E4,0x003F}, + {0x83E5,0x83E5,0x003F}, + {0x83E6,0x83E6,0x003F}, + {0x83E7,0x83E7,0x003F}, + {0x83E8,0x83E8,0x003F}, + {0x83E9,0x83E9,0x003F}, + {0x83EA,0x83EA,0x003F}, + {0x83EB,0x83EB,0x003F}, + {0x83EC,0x83EC,0x003F}, + {0x83ED,0x83ED,0x003F}, + {0x83EE,0x83EE,0x003F}, + {0x83EF,0x83EF,0x003F}, + {0x83F0,0x83F0,0x003F}, /* 83F0 */ + {0x83F1,0x83F1,0x003F}, + {0x83F2,0x83F2,0x003F}, + {0x83F3,0x83F3,0x003F}, + {0x83F4,0x83F4,0x003F}, + {0x83F5,0x83F5,0x003F}, + {0x83F6,0x83F6,0x003F}, + {0x83F7,0x83F7,0x003F}, + {0x83F8,0x83F8,0x003F}, + {0x83F9,0x83F9,0x003F}, + {0x83FA,0x83FA,0x003F}, + {0x83FB,0x83FB,0x003F}, + {0x83FC,0x83FC,0x003F}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER c84[256]= +{ + /* 8400-840F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8410-841F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8420-842F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + /* 8430-843F */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + + {0x8440,0x8470,0x0410}, /* 8440 */ + {0x8441,0x8471,0x0411}, + {0x8442,0x8472,0x0412}, + {0x8443,0x8473,0x0413}, + {0x8444,0x8474,0x0414}, + {0x8445,0x8475,0x0415}, + {0x8446,0x8476,0x0401}, + {0x8447,0x8477,0x0416}, + {0x8448,0x8478,0x0417}, + {0x8449,0x8479,0x0418}, + {0x844A,0x847A,0x0419}, + {0x844B,0x847B,0x041A}, + {0x844C,0x847C,0x041B}, + {0x844D,0x847D,0x041C}, + {0x844E,0x847E,0x041D}, + {0x844F,0x8480,0x041E}, + {0x8450,0x8481,0x041F}, /* 8450 */ + {0x8451,0x8482,0x0420}, + {0x8452,0x8483,0x0421}, + {0x8453,0x8484,0x0422}, + {0x8454,0x8485,0x0423}, + {0x8455,0x8486,0x0424}, + {0x8456,0x8487,0x0425}, + {0x8457,0x8488,0x0426}, + {0x8458,0x8489,0x0427}, + {0x8459,0x848A,0x0428}, + {0x845A,0x848B,0x0429}, + {0x845B,0x848C,0x042A}, + {0x845C,0x848D,0x042B}, + {0x845D,0x848E,0x042C}, + {0x845E,0x848F,0x042D}, + {0x845F,0x8490,0x042E}, + {0x8460,0x8491,0x042F}, /* 8460 */ + {0x8461,0x8461,0x003F}, + {0x8462,0x8462,0x003F}, + {0x8463,0x8463,0x003F}, + {0x8464,0x8464,0x003F}, + {0x8465,0x8465,0x003F}, + {0x8466,0x8466,0x003F}, + {0x8467,0x8467,0x003F}, + {0x8468,0x8468,0x003F}, + {0x8469,0x8469,0x003F}, + {0x846A,0x846A,0x003F}, + {0x846B,0x846B,0x003F}, + {0x846C,0x846C,0x003F}, + {0x846D,0x846D,0x003F}, + {0x846E,0x846E,0x003F}, + {0x846F,0x846F,0x003F}, + {0x8440,0x8470,0x0430}, /* 8470 */ + {0x8441,0x8471,0x0431}, + {0x8442,0x8472,0x0432}, + {0x8443,0x8473,0x0433}, + {0x8444,0x8474,0x0434}, + {0x8445,0x8475,0x0435}, + {0x8446,0x8476,0x0451}, + {0x8447,0x8477,0x0436}, + {0x8448,0x8478,0x0437}, + {0x8449,0x8479,0x0438}, + {0x844A,0x847A,0x0439}, + {0x844B,0x847B,0x043A}, + {0x844C,0x847C,0x043B}, + {0x844D,0x847D,0x043C}, + {0x844E,0x847E,0x043D}, + {0,0,0}, + {0x844F,0x8480,0x043E}, /* 8480 */ + {0x8450,0x8481,0x043F}, + {0x8451,0x8482,0x0440}, + {0x8452,0x8483,0x0441}, + {0x8453,0x8484,0x0442}, + {0x8454,0x8485,0x0443}, + {0x8455,0x8486,0x0444}, + {0x8456,0x8487,0x0445}, + {0x8457,0x8488,0x0446}, + {0x8458,0x8489,0x0447}, + {0x8459,0x848A,0x0448}, + {0x845A,0x848B,0x0449}, + {0x845B,0x848C,0x044A}, + {0x845C,0x848D,0x044B}, + {0x845D,0x848E,0x044C}, + {0x845E,0x848F,0x044D}, + {0x845F,0x8490,0x044E}, /* 8490 */ + {0x8460,0x8491,0x044F}, + {0x8492,0x8492,0x003F}, + {0x8493,0x8493,0x003F}, + {0x8494,0x8494,0x003F}, + {0x8495,0x8495,0x003F}, + {0x8496,0x8496,0x003F}, + {0x8497,0x8497,0x003F}, + {0x8498,0x8498,0x003F}, + {0x8499,0x8499,0x003F}, + {0x849A,0x849A,0x003F}, + {0x849B,0x849B,0x003F}, + {0x849C,0x849C,0x003F}, + {0x849D,0x849D,0x003F}, + {0x849E,0x849E,0x003F}, + {0x849F,0x849F,0x2500}, + {0x84A0,0x84A0,0x2502}, /* 84A0 */ + {0x84A1,0x84A1,0x250C}, + {0x84A2,0x84A2,0x2510}, + {0x84A3,0x84A3,0x2518}, + {0x84A4,0x84A4,0x2514}, + {0x84A5,0x84A5,0x251C}, + {0x84A6,0x84A6,0x252C}, + {0x84A7,0x84A7,0x2524}, + {0x84A8,0x84A8,0x2534}, + {0x84A9,0x84A9,0x253C}, + {0x84AA,0x84AA,0x2501}, + {0x84AB,0x84AB,0x2503}, + {0x84AC,0x84AC,0x250F}, + {0x84AD,0x84AD,0x2513}, + {0x84AE,0x84AE,0x251B}, + {0x84AF,0x84AF,0x2517}, + {0x84B0,0x84B0,0x2523}, /* 84B0 */ + {0x84B1,0x84B1,0x2533}, + {0x84B2,0x84B2,0x252B}, + {0x84B3,0x84B3,0x253B}, + {0x84B4,0x84B4,0x254B}, + {0x84B5,0x84B5,0x2520}, + {0x84B6,0x84B6,0x252F}, + {0x84B7,0x84B7,0x2528}, + {0x84B8,0x84B8,0x2537}, + {0x84B9,0x84B9,0x253F}, + {0x84BA,0x84BA,0x251D}, + {0x84BB,0x84BB,0x2530}, + {0x84BC,0x84BC,0x2525}, + {0x84BD,0x84BD,0x2538}, + {0x84BE,0x84BE,0x2542}, + {0x84BF,0x84BF,0x003F}, + {0x84C0,0x84C0,0x003F}, /* 84C0 */ + {0x84C1,0x84C1,0x003F}, + {0x84C2,0x84C2,0x003F}, + {0x84C3,0x84C3,0x003F}, + {0x84C4,0x84C4,0x003F}, + {0x84C5,0x84C5,0x003F}, + {0x84C6,0x84C6,0x003F}, + {0x84C7,0x84C7,0x003F}, + {0x84C8,0x84C8,0x003F}, + {0x84C9,0x84C9,0x003F}, + {0x84CA,0x84CA,0x003F}, + {0x84CB,0x84CB,0x003F}, + {0x84CC,0x84CC,0x003F}, + {0x84CD,0x84CD,0x003F}, + {0x84CE,0x84CE,0x003F}, + {0x84CF,0x84CF,0x003F}, + {0x84D0,0x84D0,0x003F}, /* 84D0 */ + {0x84D1,0x84D1,0x003F}, + {0x84D2,0x84D2,0x003F}, + {0x84D3,0x84D3,0x003F}, + {0x84D4,0x84D4,0x003F}, + {0x84D5,0x84D5,0x003F}, + {0x84D6,0x84D6,0x003F}, + {0x84D7,0x84D7,0x003F}, + {0x84D8,0x84D8,0x003F}, + {0x84D9,0x84D9,0x003F}, + {0x84DA,0x84DA,0x003F}, + {0x84DB,0x84DB,0x003F}, + {0x84DC,0x84DC,0x003F}, + {0x84DD,0x84DD,0x003F}, + {0x84DE,0x84DE,0x003F}, + {0x84DF,0x84DF,0x003F}, + {0x84E0,0x84E0,0x003F}, /* 84E0 */ + {0x84E1,0x84E1,0x003F}, + {0x84E2,0x84E2,0x003F}, + {0x84E3,0x84E3,0x003F}, + {0x84E4,0x84E4,0x003F}, + {0x84E5,0x84E5,0x003F}, + {0x84E6,0x84E6,0x003F}, + {0x84E7,0x84E7,0x003F}, + {0x84E8,0x84E8,0x003F}, + {0x84E9,0x84E9,0x003F}, + {0x84EA,0x84EA,0x003F}, + {0x84EB,0x84EB,0x003F}, + {0x84EC,0x84EC,0x003F}, + {0x84ED,0x84ED,0x003F}, + {0x84EE,0x84EE,0x003F}, + {0x84EF,0x84EF,0x003F}, + {0x84F0,0x84F0,0x003F}, /* 84F0 */ + {0x84F1,0x84F1,0x003F}, + {0x84F2,0x84F2,0x003F}, + {0x84F3,0x84F3,0x003F}, + {0x84F4,0x84F4,0x003F}, + {0x84F5,0x84F5,0x003F}, + {0x84F6,0x84F6,0x003F}, + {0x84F7,0x84F7,0x003F}, + {0x84F8,0x84F8,0x003F}, + {0x84F9,0x84F9,0x003F}, + {0x84FA,0x84FA,0x003F}, + {0x84FB,0x84FB,0x003F}, + {0x84FC,0x84FC,0x003F}, + {0,0,0}, + {0,0,0}, + {0,0,0} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_sjis[256]= +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, c81, c82, c83, c84, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + + +static MY_UNICASE_INFO my_caseinfo_sjis= +{ + 0xFFFF, + my_caseinfo_pages_sjis +}; + + +static int my_strnncoll_sjis_internal(const CHARSET_INFO *cs, + const uchar **a_res, size_t a_length, + const uchar **b_res, size_t b_length) +{ + const uchar *a= *a_res, *b= *b_res; + const uchar *a_end= a + a_length; + const uchar *b_end= b + b_length; + while (a < a_end && b < b_end) + { + if (ismbchar_sjis(cs,(char*) a, (char*) a_end) && + ismbchar_sjis(cs,(char*) b, (char*) b_end)) + { + uint a_char= sjiscode(*a, *(a+1)); + uint b_char= sjiscode(*b, *(b+1)); + if (a_char != b_char) + return (int) a_char - (int) b_char; + a += 2; + b += 2; + } else + { + if (sort_order_sjis[(uchar)*a] != sort_order_sjis[(uchar)*b]) + return sort_order_sjis[(uchar)*a] - sort_order_sjis[(uchar)*b]; + a++; + b++; + } + } + *a_res= a; + *b_res= b; + return 0; +} + + +static int my_strnncoll_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool b_is_prefix) +{ + int res= my_strnncoll_sjis_internal(cs, &a, a_length, &b, b_length); + if (b_is_prefix && a_length > b_length) + a_length= b_length; + return res ? res : (int) (a_length - b_length); +} + + +static int my_strnncollsp_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + const uchar *a_end= a + a_length, *b_end= b + b_length; + int res= my_strnncoll_sjis_internal(cs, &a, a_length, &b, b_length); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + if (!res && (a != a_end || b != b_end)) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a == a_end) + { + /* put shorter key in a */ + a_end= b_end; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (; a < a_end ; a++) + { + if (*a != ' ') + return (*a < ' ') ? -swap : swap; + } + } + return res; +} + + +/* SJIS->Unicode conversion table */ +static const uint16 sjis_to_unicode[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF61, 0xFF62, 0xFF63, /* 00A0 */ + 0xFF64, 0xFF65, 0xFF66, 0xFF67, + 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, + 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, + 0xFF70, 0xFF71, 0xFF72, 0xFF73, + 0xFF74, 0xFF75, 0xFF76, 0xFF77, + 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, + 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, + 0xFF80, 0xFF81, 0xFF82, 0xFF83, /* 00C0 */ + 0xFF84, 0xFF85, 0xFF86, 0xFF87, + 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, + 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, + 0xFF90, 0xFF91, 0xFF92, 0xFF93, + 0xFF94, 0xFF95, 0xFF96, 0xFF97, + 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, + 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x3000, 0x3001, 0x3002, 0xFF0C, /* 8140 */ + 0xFF0E, 0x30FB, 0xFF1A, 0xFF1B, + 0xFF1F, 0xFF01, 0x309B, 0x309C, + 0x00B4, 0xFF40, 0x00A8, 0xFF3E, + 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, + 0x309D, 0x309E, 0x3003, 0x4EDD, + 0x3005, 0x3006, 0x3007, 0x30FC, + 0x2015, 0x2010, 0xFF0F, 0x005C, + 0x301C, 0x2016, 0xFF5C, 0x2026, /* 8160 */ + 0x2025, 0x2018, 0x2019, 0x201C, + 0x201D, 0xFF08, 0xFF09, 0x3014, + 0x3015, 0xFF3B, 0xFF3D, 0xFF5B, + 0xFF5D, 0x3008, 0x3009, 0x300A, + 0x300B, 0x300C, 0x300D, 0x300E, + 0x300F, 0x3010, 0x3011, 0xFF0B, + 0x2212, 0x00B1, 0x00D7, 0x0000, + 0x00F7, 0xFF1D, 0x2260, 0xFF1C, /* 8180 */ + 0xFF1E, 0x2266, 0x2267, 0x221E, + 0x2234, 0x2642, 0x2640, 0x00B0, + 0x2032, 0x2033, 0x2103, 0xFFE5, + 0xFF04, 0x00A2, 0x00A3, 0xFF05, + 0xFF03, 0xFF06, 0xFF0A, 0xFF20, + 0x00A7, 0x2606, 0x2605, 0x25CB, + 0x25CF, 0x25CE, 0x25C7, 0x25C6, + 0x25A1, 0x25A0, 0x25B3, 0x25B2, /* 81A0 */ + 0x25BD, 0x25BC, 0x203B, 0x3012, + 0x2192, 0x2190, 0x2191, 0x2193, + 0x3013, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2208, 0x220B, 0x2286, 0x2287, + 0x2282, 0x2283, 0x222A, 0x2229, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2227, 0x2228, 0x00AC, 0x21D2, + 0x21D4, 0x2200, 0x2203, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2220, 0x22A5, + 0x2312, 0x2202, 0x2207, 0x2261, + 0x2252, 0x226A, 0x226B, 0x221A, /* 81E0 */ + 0x223D, 0x221D, 0x2235, 0x222B, + 0x222C, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x212B, 0x2030, 0x266F, 0x266D, + 0x266A, 0x2020, 0x2021, 0x00B6, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x25EF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xFF10, + 0xFF11, 0xFF12, 0xFF13, 0xFF14, + 0xFF15, 0xFF16, 0xFF17, 0xFF18, + 0xFF19, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xFF21, 0xFF22, 0xFF23, 0xFF24, /* 8260 */ + 0xFF25, 0xFF26, 0xFF27, 0xFF28, + 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, + 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, + 0xFF31, 0xFF32, 0xFF33, 0xFF34, + 0xFF35, 0xFF36, 0xFF37, 0xFF38, + 0xFF39, 0xFF3A, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF41, 0xFF42, 0xFF43, /* 8280 */ + 0xFF44, 0xFF45, 0xFF46, 0xFF47, + 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, + 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, + 0xFF50, 0xFF51, 0xFF52, 0xFF53, + 0xFF54, 0xFF55, 0xFF56, 0xFF57, + 0xFF58, 0xFF59, 0xFF5A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3041, + 0x3042, 0x3043, 0x3044, 0x3045, /* 82A0 */ + 0x3046, 0x3047, 0x3048, 0x3049, + 0x304A, 0x304B, 0x304C, 0x304D, + 0x304E, 0x304F, 0x3050, 0x3051, + 0x3052, 0x3053, 0x3054, 0x3055, + 0x3056, 0x3057, 0x3058, 0x3059, + 0x305A, 0x305B, 0x305C, 0x305D, + 0x305E, 0x305F, 0x3060, 0x3061, + 0x3062, 0x3063, 0x3064, 0x3065, /* 82C0 */ + 0x3066, 0x3067, 0x3068, 0x3069, + 0x306A, 0x306B, 0x306C, 0x306D, + 0x306E, 0x306F, 0x3070, 0x3071, + 0x3072, 0x3073, 0x3074, 0x3075, + 0x3076, 0x3077, 0x3078, 0x3079, + 0x307A, 0x307B, 0x307C, 0x307D, + 0x307E, 0x307F, 0x3080, 0x3081, + 0x3082, 0x3083, 0x3084, 0x3085, /* 82E0 */ + 0x3086, 0x3087, 0x3088, 0x3089, + 0x308A, 0x308B, 0x308C, 0x308D, + 0x308E, 0x308F, 0x3090, 0x3091, + 0x3092, 0x3093, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x30A1, 0x30A2, 0x30A3, 0x30A4, /* 8340 */ + 0x30A5, 0x30A6, 0x30A7, 0x30A8, + 0x30A9, 0x30AA, 0x30AB, 0x30AC, + 0x30AD, 0x30AE, 0x30AF, 0x30B0, + 0x30B1, 0x30B2, 0x30B3, 0x30B4, + 0x30B5, 0x30B6, 0x30B7, 0x30B8, + 0x30B9, 0x30BA, 0x30BB, 0x30BC, + 0x30BD, 0x30BE, 0x30BF, 0x30C0, + 0x30C1, 0x30C2, 0x30C3, 0x30C4, /* 8360 */ + 0x30C5, 0x30C6, 0x30C7, 0x30C8, + 0x30C9, 0x30CA, 0x30CB, 0x30CC, + 0x30CD, 0x30CE, 0x30CF, 0x30D0, + 0x30D1, 0x30D2, 0x30D3, 0x30D4, + 0x30D5, 0x30D6, 0x30D7, 0x30D8, + 0x30D9, 0x30DA, 0x30DB, 0x30DC, + 0x30DD, 0x30DE, 0x30DF, 0x0000, + 0x30E0, 0x30E1, 0x30E2, 0x30E3, /* 8380 */ + 0x30E4, 0x30E5, 0x30E6, 0x30E7, + 0x30E8, 0x30E9, 0x30EA, 0x30EB, + 0x30EC, 0x30ED, 0x30EE, 0x30EF, + 0x30F0, 0x30F1, 0x30F2, 0x30F3, + 0x30F4, 0x30F5, 0x30F6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0391, + 0x0392, 0x0393, 0x0394, 0x0395, /* 83A0 */ + 0x0396, 0x0397, 0x0398, 0x0399, + 0x039A, 0x039B, 0x039C, 0x039D, + 0x039E, 0x039F, 0x03A0, 0x03A1, + 0x03A3, 0x03A4, 0x03A5, 0x03A6, + 0x03A7, 0x03A8, 0x03A9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x03B1, + 0x03B2, 0x03B3, 0x03B4, 0x03B5, /* 83C0 */ + 0x03B6, 0x03B7, 0x03B8, 0x03B9, + 0x03BA, 0x03BB, 0x03BC, 0x03BD, + 0x03BE, 0x03BF, 0x03C0, 0x03C1, + 0x03C3, 0x03C4, 0x03C5, 0x03C6, + 0x03C7, 0x03C8, 0x03C9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0410, 0x0411, 0x0412, 0x0413, /* 8440 */ + 0x0414, 0x0415, 0x0401, 0x0416, + 0x0417, 0x0418, 0x0419, 0x041A, + 0x041B, 0x041C, 0x041D, 0x041E, + 0x041F, 0x0420, 0x0421, 0x0422, + 0x0423, 0x0424, 0x0425, 0x0426, + 0x0427, 0x0428, 0x0429, 0x042A, + 0x042B, 0x042C, 0x042D, 0x042E, + 0x042F, 0x0000, 0x0000, 0x0000, /* 8460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0430, 0x0431, 0x0432, 0x0433, + 0x0434, 0x0435, 0x0451, 0x0436, + 0x0437, 0x0438, 0x0439, 0x043A, + 0x043B, 0x043C, 0x043D, 0x0000, + 0x043E, 0x043F, 0x0440, 0x0441, /* 8480 */ + 0x0442, 0x0443, 0x0444, 0x0445, + 0x0446, 0x0447, 0x0448, 0x0449, + 0x044A, 0x044B, 0x044C, 0x044D, + 0x044E, 0x044F, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2500, + 0x2502, 0x250C, 0x2510, 0x2518, /* 84A0 */ + 0x2514, 0x251C, 0x252C, 0x2524, + 0x2534, 0x253C, 0x2501, 0x2503, + 0x250F, 0x2513, 0x251B, 0x2517, + 0x2523, 0x2533, 0x252B, 0x253B, + 0x254B, 0x2520, 0x252F, 0x2528, + 0x2537, 0x253F, 0x251D, 0x2530, + 0x2525, 0x2538, 0x2542, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4E9C, + 0x5516, 0x5A03, 0x963F, 0x54C0, /* 88A0 */ + 0x611B, 0x6328, 0x59F6, 0x9022, + 0x8475, 0x831C, 0x7A50, 0x60AA, + 0x63E1, 0x6E25, 0x65ED, 0x8466, + 0x82A6, 0x9BF5, 0x6893, 0x5727, + 0x65A1, 0x6271, 0x5B9B, 0x59D0, + 0x867B, 0x98F4, 0x7D62, 0x7DBE, + 0x9B8E, 0x6216, 0x7C9F, 0x88B7, + 0x5B89, 0x5EB5, 0x6309, 0x6697, /* 88C0 */ + 0x6848, 0x95C7, 0x978D, 0x674F, + 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D, + 0x5049, 0x56F2, 0x5937, 0x59D4, + 0x5A01, 0x5C09, 0x60DF, 0x610F, + 0x6170, 0x6613, 0x6905, 0x70BA, + 0x754F, 0x7570, 0x79FB, 0x7DAD, + 0x7DEF, 0x80C3, 0x840E, 0x8863, + 0x8B02, 0x9055, 0x907A, 0x533B, /* 88E0 */ + 0x4E95, 0x4EA5, 0x57DF, 0x80B2, + 0x90C1, 0x78EF, 0x4E00, 0x58F1, + 0x6EA2, 0x9038, 0x7A32, 0x8328, + 0x828B, 0x9C2F, 0x5141, 0x5370, + 0x54BD, 0x54E1, 0x56E0, 0x59FB, + 0x5F15, 0x98F2, 0x6DEB, 0x80E4, + 0x852D, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9662, 0x9670, 0x96A0, 0x97FB, /* 8940 */ + 0x540B, 0x53F3, 0x5B87, 0x70CF, + 0x7FBD, 0x8FC2, 0x96E8, 0x536F, + 0x9D5C, 0x7ABA, 0x4E11, 0x7893, + 0x81FC, 0x6E26, 0x5618, 0x5504, + 0x6B1D, 0x851A, 0x9C3B, 0x59E5, + 0x53A9, 0x6D66, 0x74DC, 0x958F, + 0x5642, 0x4E91, 0x904B, 0x96F2, + 0x834F, 0x990C, 0x53E1, 0x55B6, /* 8960 */ + 0x5B30, 0x5F71, 0x6620, 0x66F3, + 0x6804, 0x6C38, 0x6CF3, 0x6D29, + 0x745B, 0x76C8, 0x7A4E, 0x9834, + 0x82F1, 0x885B, 0x8A60, 0x92ED, + 0x6DB2, 0x75AB, 0x76CA, 0x99C5, + 0x60A6, 0x8B01, 0x8D8A, 0x95B2, + 0x698E, 0x53AD, 0x5186, 0x0000, + 0x5712, 0x5830, 0x5944, 0x5BB4, /* 8980 */ + 0x5EF6, 0x6028, 0x63A9, 0x63F4, + 0x6CBF, 0x6F14, 0x708E, 0x7114, + 0x7159, 0x71D5, 0x733F, 0x7E01, + 0x8276, 0x82D1, 0x8597, 0x9060, + 0x925B, 0x9D1B, 0x5869, 0x65BC, + 0x6C5A, 0x7525, 0x51F9, 0x592E, + 0x5965, 0x5F80, 0x5FDC, 0x62BC, + 0x65FA, 0x6A2A, 0x6B27, 0x6BB4, /* 89A0 */ + 0x738B, 0x7FC1, 0x8956, 0x9D2C, + 0x9D0E, 0x9EC4, 0x5CA1, 0x6C96, + 0x837B, 0x5104, 0x5C4B, 0x61B6, + 0x81C6, 0x6876, 0x7261, 0x4E59, + 0x4FFA, 0x5378, 0x6069, 0x6E29, + 0x7A4F, 0x97F3, 0x4E0B, 0x5316, + 0x4EEE, 0x4F55, 0x4F3D, 0x4FA1, + 0x4F73, 0x52A0, 0x53EF, 0x5609, /* 89C0 */ + 0x590F, 0x5AC1, 0x5BB6, 0x5BE1, + 0x79D1, 0x6687, 0x679C, 0x67B6, + 0x6B4C, 0x6CB3, 0x706B, 0x73C2, + 0x798D, 0x79BE, 0x7A3C, 0x7B87, + 0x82B1, 0x82DB, 0x8304, 0x8377, + 0x83EF, 0x83D3, 0x8766, 0x8AB2, + 0x5629, 0x8CA8, 0x8FE6, 0x904E, + 0x971E, 0x868A, 0x4FC4, 0x5CE8, /* 89E0 */ + 0x6211, 0x7259, 0x753B, 0x81E5, + 0x82BD, 0x86FE, 0x8CC0, 0x96C5, + 0x9913, 0x99D5, 0x4ECB, 0x4F1A, + 0x89E3, 0x56DE, 0x584A, 0x58CA, + 0x5EFB, 0x5FEB, 0x602A, 0x6094, + 0x6062, 0x61D0, 0x6212, 0x62D0, + 0x6539, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9B41, 0x6666, 0x68B0, 0x6D77, /* 8A40 */ + 0x7070, 0x754C, 0x7686, 0x7D75, + 0x82A5, 0x87F9, 0x958B, 0x968E, + 0x8C9D, 0x51F1, 0x52BE, 0x5916, + 0x54B3, 0x5BB3, 0x5D16, 0x6168, + 0x6982, 0x6DAF, 0x788D, 0x84CB, + 0x8857, 0x8A72, 0x93A7, 0x9AB8, + 0x6D6C, 0x99A8, 0x86D9, 0x57A3, + 0x67FF, 0x86CE, 0x920E, 0x5283, /* 8A60 */ + 0x5687, 0x5404, 0x5ED3, 0x62E1, + 0x64B9, 0x683C, 0x6838, 0x6BBB, + 0x7372, 0x78BA, 0x7A6B, 0x899A, + 0x89D2, 0x8D6B, 0x8F03, 0x90ED, + 0x95A3, 0x9694, 0x9769, 0x5B66, + 0x5CB3, 0x697D, 0x984D, 0x984E, + 0x639B, 0x7B20, 0x6A2B, 0x0000, + 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, /* 8A80 */ + 0x5272, 0x559D, 0x6070, 0x62EC, + 0x6D3B, 0x6E07, 0x6ED1, 0x845B, + 0x8910, 0x8F44, 0x4E14, 0x9C39, + 0x53F6, 0x691B, 0x6A3A, 0x9784, + 0x682A, 0x515C, 0x7AC3, 0x84B2, + 0x91DC, 0x938C, 0x565B, 0x9D28, + 0x6822, 0x8305, 0x8431, 0x7CA5, + 0x5208, 0x82C5, 0x74E6, 0x4E7E, /* 8AA0 */ + 0x4F83, 0x51A0, 0x5BD2, 0x520A, + 0x52D8, 0x52E7, 0x5DFB, 0x559A, + 0x582A, 0x59E6, 0x5B8C, 0x5B98, + 0x5BDB, 0x5E72, 0x5E79, 0x60A3, + 0x611F, 0x6163, 0x61BE, 0x63DB, + 0x6562, 0x67D1, 0x6853, 0x68FA, + 0x6B3E, 0x6B53, 0x6C57, 0x6F22, + 0x6F97, 0x6F45, 0x74B0, 0x7518, /* 8AC0 */ + 0x76E3, 0x770B, 0x7AFF, 0x7BA1, + 0x7C21, 0x7DE9, 0x7F36, 0x7FF0, + 0x809D, 0x8266, 0x839E, 0x89B3, + 0x8ACC, 0x8CAB, 0x9084, 0x9451, + 0x9593, 0x9591, 0x95A2, 0x9665, + 0x97D3, 0x9928, 0x8218, 0x4E38, + 0x542B, 0x5CB8, 0x5DCC, 0x73A9, + 0x764C, 0x773C, 0x5CA9, 0x7FEB, /* 8AE0 */ + 0x8D0B, 0x96C1, 0x9811, 0x9854, + 0x9858, 0x4F01, 0x4F0E, 0x5371, + 0x559C, 0x5668, 0x57FA, 0x5947, + 0x5B09, 0x5BC4, 0x5C90, 0x5E0C, + 0x5E7E, 0x5FCC, 0x63EE, 0x673A, + 0x65D7, 0x65E2, 0x671F, 0x68CB, + 0x68C4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6A5F, 0x5E30, 0x6BC5, 0x6C17, /* 8B40 */ + 0x6C7D, 0x757F, 0x7948, 0x5B63, + 0x7A00, 0x7D00, 0x5FBD, 0x898F, + 0x8A18, 0x8CB4, 0x8D77, 0x8ECC, + 0x8F1D, 0x98E2, 0x9A0E, 0x9B3C, + 0x4E80, 0x507D, 0x5100, 0x5993, + 0x5B9C, 0x622F, 0x6280, 0x64EC, + 0x6B3A, 0x72A0, 0x7591, 0x7947, + 0x7FA9, 0x87FB, 0x8ABC, 0x8B70, /* 8B60 */ + 0x63AC, 0x83CA, 0x97A0, 0x5409, + 0x5403, 0x55AB, 0x6854, 0x6A58, + 0x8A70, 0x7827, 0x6775, 0x9ECD, + 0x5374, 0x5BA2, 0x811A, 0x8650, + 0x9006, 0x4E18, 0x4E45, 0x4EC7, + 0x4F11, 0x53CA, 0x5438, 0x5BAE, + 0x5F13, 0x6025, 0x6551, 0x0000, + 0x673D, 0x6C42, 0x6C72, 0x6CE3, /* 8B80 */ + 0x7078, 0x7403, 0x7A76, 0x7AAE, + 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, + 0x65E7, 0x725B, 0x53BB, 0x5C45, + 0x5DE8, 0x62D2, 0x62E0, 0x6319, + 0x6E20, 0x865A, 0x8A31, 0x8DDD, + 0x92F8, 0x6F01, 0x79A6, 0x9B5A, + 0x4EA8, 0x4EAB, 0x4EAC, 0x4F9B, + 0x4FA0, 0x50D1, 0x5147, 0x7AF6, /* 8BA0 */ + 0x5171, 0x51F6, 0x5354, 0x5321, + 0x537F, 0x53EB, 0x55AC, 0x5883, + 0x5CE1, 0x5F37, 0x5F4A, 0x602F, + 0x6050, 0x606D, 0x631F, 0x6559, + 0x6A4B, 0x6CC1, 0x72C2, 0x72ED, + 0x77EF, 0x80F8, 0x8105, 0x8208, + 0x854E, 0x90F7, 0x93E1, 0x97FF, + 0x9957, 0x9A5A, 0x4EF0, 0x51DD, /* 8BC0 */ + 0x5C2D, 0x6681, 0x696D, 0x5C40, + 0x66F2, 0x6975, 0x7389, 0x6850, + 0x7C81, 0x50C5, 0x52E4, 0x5747, + 0x5DFE, 0x9326, 0x65A4, 0x6B23, + 0x6B3D, 0x7434, 0x7981, 0x79BD, + 0x7B4B, 0x7DCA, 0x82B9, 0x83CC, + 0x887F, 0x895F, 0x8B39, 0x8FD1, + 0x91D1, 0x541F, 0x9280, 0x4E5D, /* 8BE0 */ + 0x5036, 0x53E5, 0x533A, 0x72D7, + 0x7396, 0x77E9, 0x82E6, 0x8EAF, + 0x99C6, 0x99C8, 0x99D2, 0x5177, + 0x611A, 0x865E, 0x55B0, 0x7A7A, + 0x5076, 0x5BD3, 0x9047, 0x9685, + 0x4E32, 0x6ADB, 0x91E7, 0x5C51, + 0x5C48, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6398, 0x7A9F, 0x6C93, 0x9774, /* 8C40 */ + 0x8F61, 0x7AAA, 0x718A, 0x9688, + 0x7C82, 0x6817, 0x7E70, 0x6851, + 0x936C, 0x52F2, 0x541B, 0x85AB, + 0x8A13, 0x7FA4, 0x8ECD, 0x90E1, + 0x5366, 0x8888, 0x7941, 0x4FC2, + 0x50BE, 0x5211, 0x5144, 0x5553, + 0x572D, 0x73EA, 0x578B, 0x5951, + 0x5F62, 0x5F84, 0x6075, 0x6176, /* 8C60 */ + 0x6167, 0x61A9, 0x63B2, 0x643A, + 0x656C, 0x666F, 0x6842, 0x6E13, + 0x7566, 0x7A3D, 0x7CFB, 0x7D4C, + 0x7D99, 0x7E4B, 0x7F6B, 0x830E, + 0x834A, 0x86CD, 0x8A08, 0x8A63, + 0x8B66, 0x8EFD, 0x981A, 0x9D8F, + 0x82B8, 0x8FCE, 0x9BE8, 0x0000, + 0x5287, 0x621F, 0x6483, 0x6FC0, /* 8C80 */ + 0x9699, 0x6841, 0x5091, 0x6B20, + 0x6C7A, 0x6F54, 0x7A74, 0x7D50, + 0x8840, 0x8A23, 0x6708, 0x4EF6, + 0x5039, 0x5026, 0x5065, 0x517C, + 0x5238, 0x5263, 0x55A7, 0x570F, + 0x5805, 0x5ACC, 0x5EFA, 0x61B2, + 0x61F8, 0x62F3, 0x6372, 0x691C, + 0x6A29, 0x727D, 0x72AC, 0x732E, /* 8CA0 */ + 0x7814, 0x786F, 0x7D79, 0x770C, + 0x80A9, 0x898B, 0x8B19, 0x8CE2, + 0x8ED2, 0x9063, 0x9375, 0x967A, + 0x9855, 0x9A13, 0x9E78, 0x5143, + 0x539F, 0x53B3, 0x5E7B, 0x5F26, + 0x6E1B, 0x6E90, 0x7384, 0x73FE, + 0x7D43, 0x8237, 0x8A00, 0x8AFA, + 0x9650, 0x4E4E, 0x500B, 0x53E4, /* 8CC0 */ + 0x547C, 0x56FA, 0x59D1, 0x5B64, + 0x5DF1, 0x5EAB, 0x5F27, 0x6238, + 0x6545, 0x67AF, 0x6E56, 0x72D0, + 0x7CCA, 0x88B4, 0x80A1, 0x80E1, + 0x83F0, 0x864E, 0x8A87, 0x8DE8, + 0x9237, 0x96C7, 0x9867, 0x9F13, + 0x4E94, 0x4E92, 0x4F0D, 0x5348, + 0x5449, 0x543E, 0x5A2F, 0x5F8C, /* 8CE0 */ + 0x5FA1, 0x609F, 0x68A7, 0x6A8E, + 0x745A, 0x7881, 0x8A9E, 0x8AA4, + 0x8B77, 0x9190, 0x4E5E, 0x9BC9, + 0x4EA4, 0x4F7C, 0x4FAF, 0x5019, + 0x5016, 0x5149, 0x516C, 0x529F, + 0x52B9, 0x52FE, 0x539A, 0x53E3, + 0x5411, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x540E, 0x5589, 0x5751, 0x57A2, /* 8D40 */ + 0x597D, 0x5B54, 0x5B5D, 0x5B8F, + 0x5DE5, 0x5DE7, 0x5DF7, 0x5E78, + 0x5E83, 0x5E9A, 0x5EB7, 0x5F18, + 0x6052, 0x614C, 0x6297, 0x62D8, + 0x63A7, 0x653B, 0x6602, 0x6643, + 0x66F4, 0x676D, 0x6821, 0x6897, + 0x69CB, 0x6C5F, 0x6D2A, 0x6D69, + 0x6E2F, 0x6E9D, 0x7532, 0x7687, /* 8D60 */ + 0x786C, 0x7A3F, 0x7CE0, 0x7D05, + 0x7D18, 0x7D5E, 0x7DB1, 0x8015, + 0x8003, 0x80AF, 0x80B1, 0x8154, + 0x818F, 0x822A, 0x8352, 0x884C, + 0x8861, 0x8B1B, 0x8CA2, 0x8CFC, + 0x90CA, 0x9175, 0x9271, 0x783F, + 0x92FC, 0x95A4, 0x964D, 0x0000, + 0x9805, 0x9999, 0x9AD8, 0x9D3B, /* 8D80 */ + 0x525B, 0x52AB, 0x53F7, 0x5408, + 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, + 0x8F5F, 0x9EB9, 0x514B, 0x523B, + 0x544A, 0x56FD, 0x7A40, 0x9177, + 0x9D60, 0x9ED2, 0x7344, 0x6F09, + 0x8170, 0x7511, 0x5FFD, 0x60DA, + 0x9AA8, 0x72DB, 0x8FBC, 0x6B64, + 0x9803, 0x4ECA, 0x56F0, 0x5764, /* 8DA0 */ + 0x58BE, 0x5A5A, 0x6068, 0x61C7, + 0x660F, 0x6606, 0x6839, 0x68B1, + 0x6DF7, 0x75D5, 0x7D3A, 0x826E, + 0x9B42, 0x4E9B, 0x4F50, 0x53C9, + 0x5506, 0x5D6F, 0x5DE6, 0x5DEE, + 0x67FB, 0x6C99, 0x7473, 0x7802, + 0x8A50, 0x9396, 0x88DF, 0x5750, + 0x5EA7, 0x632B, 0x50B5, 0x50AC, /* 8DC0 */ + 0x518D, 0x6700, 0x54C9, 0x585E, + 0x59BB, 0x5BB0, 0x5F69, 0x624D, + 0x63A1, 0x683D, 0x6B73, 0x6E08, + 0x707D, 0x91C7, 0x7280, 0x7815, + 0x7826, 0x796D, 0x658E, 0x7D30, + 0x83DC, 0x88C1, 0x8F09, 0x969B, + 0x5264, 0x5728, 0x6750, 0x7F6A, + 0x8CA1, 0x51B4, 0x5742, 0x962A, /* 8DE0 */ + 0x583A, 0x698A, 0x80B4, 0x54B2, + 0x5D0E, 0x57FC, 0x7895, 0x9DFA, + 0x4F5C, 0x524A, 0x548B, 0x643E, + 0x6628, 0x6714, 0x67F5, 0x7A84, + 0x7B56, 0x7D22, 0x932F, 0x685C, + 0x9BAD, 0x7B39, 0x5319, 0x518A, + 0x5237, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5BDF, 0x62F6, 0x64AE, 0x64E6, /* 8E40 */ + 0x672D, 0x6BBA, 0x85A9, 0x96D1, + 0x7690, 0x9BD6, 0x634C, 0x9306, + 0x9BAB, 0x76BF, 0x6652, 0x4E09, + 0x5098, 0x53C2, 0x5C71, 0x60E8, + 0x6492, 0x6563, 0x685F, 0x71E6, + 0x73CA, 0x7523, 0x7B97, 0x7E82, + 0x8695, 0x8B83, 0x8CDB, 0x9178, + 0x9910, 0x65AC, 0x66AB, 0x6B8B, /* 8E60 */ + 0x4ED5, 0x4ED4, 0x4F3A, 0x4F7F, + 0x523A, 0x53F8, 0x53F2, 0x55E3, + 0x56DB, 0x58EB, 0x59CB, 0x59C9, + 0x59FF, 0x5B50, 0x5C4D, 0x5E02, + 0x5E2B, 0x5FD7, 0x601D, 0x6307, + 0x652F, 0x5B5C, 0x65AF, 0x65BD, + 0x65E8, 0x679D, 0x6B62, 0x0000, + 0x6B7B, 0x6C0F, 0x7345, 0x7949, /* 8E80 */ + 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, + 0x80A2, 0x8102, 0x81F3, 0x8996, + 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, + 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, + 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, + 0x4F8D, 0x5150, 0x5B57, 0x5BFA, + 0x6148, 0x6301, 0x6642, 0x6B21, + 0x6ECB, 0x6CBB, 0x723E, 0x74BD, /* 8EA0 */ + 0x75D4, 0x78C1, 0x793A, 0x800C, + 0x8033, 0x81EA, 0x8494, 0x8F9E, + 0x6C50, 0x9E7F, 0x5F0F, 0x8B58, + 0x9D2B, 0x7AFA, 0x8EF8, 0x5B8D, + 0x96EB, 0x4E03, 0x53F1, 0x57F7, + 0x5931, 0x5AC9, 0x5BA4, 0x6089, + 0x6E7F, 0x6F06, 0x75BE, 0x8CEA, + 0x5B9F, 0x8500, 0x7BE0, 0x5072, /* 8EC0 */ + 0x67F4, 0x829D, 0x5C61, 0x854A, + 0x7E1E, 0x820E, 0x5199, 0x5C04, + 0x6368, 0x8D66, 0x659C, 0x716E, + 0x793E, 0x7D17, 0x8005, 0x8B1D, + 0x8ECA, 0x906E, 0x86C7, 0x90AA, + 0x501F, 0x52FA, 0x5C3A, 0x6753, + 0x707C, 0x7235, 0x914C, 0x91C8, + 0x932B, 0x82E5, 0x5BC2, 0x5F31, /* 8EE0 */ + 0x60F9, 0x4E3B, 0x53D6, 0x5B88, + 0x624B, 0x6731, 0x6B8A, 0x72E9, + 0x73E0, 0x7A2E, 0x816B, 0x8DA3, + 0x9152, 0x9996, 0x5112, 0x53D7, + 0x546A, 0x5BFF, 0x6388, 0x6A39, + 0x7DAC, 0x9700, 0x56DA, 0x53CE, + 0x5468, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5B97, 0x5C31, 0x5DDE, 0x4FEE, /* 8F40 */ + 0x6101, 0x62FE, 0x6D32, 0x79C0, + 0x79CB, 0x7D42, 0x7E4D, 0x7FD2, + 0x81ED, 0x821F, 0x8490, 0x8846, + 0x8972, 0x8B90, 0x8E74, 0x8F2F, + 0x9031, 0x914B, 0x916C, 0x96C6, + 0x919C, 0x4EC0, 0x4F4F, 0x5145, + 0x5341, 0x5F93, 0x620E, 0x67D4, + 0x6C41, 0x6E0B, 0x7363, 0x7E26, /* 8F60 */ + 0x91CD, 0x9283, 0x53D4, 0x5919, + 0x5BBF, 0x6DD1, 0x795D, 0x7E2E, + 0x7C9B, 0x587E, 0x719F, 0x51FA, + 0x8853, 0x8FF0, 0x4FCA, 0x5CFB, + 0x6625, 0x77AC, 0x7AE3, 0x821C, + 0x99FF, 0x51C6, 0x5FAA, 0x65EC, + 0x696F, 0x6B89, 0x6DF3, 0x0000, + 0x6E96, 0x6F64, 0x76FE, 0x7D14, /* 8F80 */ + 0x5DE1, 0x9075, 0x9187, 0x9806, + 0x51E6, 0x521D, 0x6240, 0x6691, + 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, + 0x7F72, 0x66F8, 0x85AF, 0x85F7, + 0x8AF8, 0x52A9, 0x53D9, 0x5973, + 0x5E8F, 0x5F90, 0x6055, 0x92E4, + 0x9664, 0x50B7, 0x511F, 0x52DD, + 0x5320, 0x5347, 0x53EC, 0x54E8, /* 8FA0 */ + 0x5546, 0x5531, 0x5617, 0x5968, + 0x59BE, 0x5A3C, 0x5BB5, 0x5C06, + 0x5C0F, 0x5C11, 0x5C1A, 0x5E84, + 0x5E8A, 0x5EE0, 0x5F70, 0x627F, + 0x6284, 0x62DB, 0x638C, 0x6377, + 0x6607, 0x660C, 0x662D, 0x6676, + 0x677E, 0x68A2, 0x6A1F, 0x6A35, + 0x6CBC, 0x6D88, 0x6E09, 0x6E58, /* 8FC0 */ + 0x713C, 0x7126, 0x7167, 0x75C7, + 0x7701, 0x785D, 0x7901, 0x7965, + 0x79F0, 0x7AE0, 0x7B11, 0x7CA7, + 0x7D39, 0x8096, 0x83D6, 0x848B, + 0x8549, 0x885D, 0x88F3, 0x8A1F, + 0x8A3C, 0x8A54, 0x8A73, 0x8C61, + 0x8CDE, 0x91A4, 0x9266, 0x937E, + 0x9418, 0x969C, 0x9798, 0x4E0A, /* 8FE0 */ + 0x4E08, 0x4E1E, 0x4E57, 0x5197, + 0x5270, 0x57CE, 0x5834, 0x58CC, + 0x5B22, 0x5E38, 0x60C5, 0x64FE, + 0x6761, 0x6756, 0x6D44, 0x72B6, + 0x7573, 0x7A63, 0x84B8, 0x8B72, + 0x91B8, 0x9320, 0x5631, 0x57F4, + 0x98FE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x62ED, 0x690D, 0x6B96, 0x71ED, /* 9040 */ + 0x7E54, 0x8077, 0x8272, 0x89E6, + 0x98DF, 0x8755, 0x8FB1, 0x5C3B, + 0x4F38, 0x4FE1, 0x4FB5, 0x5507, + 0x5A20, 0x5BDD, 0x5BE9, 0x5FC3, + 0x614E, 0x632F, 0x65B0, 0x664B, + 0x68EE, 0x699B, 0x6D78, 0x6DF1, + 0x7533, 0x75B9, 0x771F, 0x795E, + 0x79E6, 0x7D33, 0x81E3, 0x82AF, /* 9060 */ + 0x85AA, 0x89AA, 0x8A3A, 0x8EAB, + 0x8F9B, 0x9032, 0x91DD, 0x9707, + 0x4EBA, 0x4EC1, 0x5203, 0x5875, + 0x58EC, 0x5C0B, 0x751A, 0x5C3D, + 0x814E, 0x8A0A, 0x8FC5, 0x9663, + 0x976D, 0x7B25, 0x8ACF, 0x9808, + 0x9162, 0x56F3, 0x53A8, 0x0000, + 0x9017, 0x5439, 0x5782, 0x5E25, /* 9080 */ + 0x63A8, 0x6C34, 0x708A, 0x7761, + 0x7C8B, 0x7FE0, 0x8870, 0x9042, + 0x9154, 0x9310, 0x9318, 0x968F, + 0x745E, 0x9AC4, 0x5D07, 0x5D69, + 0x6570, 0x67A2, 0x8DA8, 0x96DB, + 0x636E, 0x6749, 0x6919, 0x83C5, + 0x9817, 0x96C0, 0x88FE, 0x6F84, + 0x647A, 0x5BF8, 0x4E16, 0x702C, /* 90A0 */ + 0x755D, 0x662F, 0x51C4, 0x5236, + 0x52E2, 0x59D3, 0x5F81, 0x6027, + 0x6210, 0x653F, 0x6574, 0x661F, + 0x6674, 0x68F2, 0x6816, 0x6B63, + 0x6E05, 0x7272, 0x751F, 0x76DB, + 0x7CBE, 0x8056, 0x58F0, 0x88FD, + 0x897F, 0x8AA0, 0x8A93, 0x8ACB, + 0x901D, 0x9192, 0x9752, 0x9759, /* 90C0 */ + 0x6589, 0x7A0E, 0x8106, 0x96BB, + 0x5E2D, 0x60DC, 0x621A, 0x65A5, + 0x6614, 0x6790, 0x77F3, 0x7A4D, + 0x7C4D, 0x7E3E, 0x810A, 0x8CAC, + 0x8D64, 0x8DE1, 0x8E5F, 0x78A9, + 0x5207, 0x62D9, 0x63A5, 0x6442, + 0x6298, 0x8A2D, 0x7A83, 0x7BC0, + 0x8AAC, 0x96EA, 0x7D76, 0x820C, /* 90E0 */ + 0x8749, 0x4ED9, 0x5148, 0x5343, + 0x5360, 0x5BA3, 0x5C02, 0x5C16, + 0x5DDD, 0x6226, 0x6247, 0x64B0, + 0x6813, 0x6834, 0x6CC9, 0x6D45, + 0x6D17, 0x67D3, 0x6F5C, 0x714E, + 0x717D, 0x65CB, 0x7A7F, 0x7BAD, + 0x7DDA, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x7E4A, 0x7FA8, 0x817A, 0x821B, /* 9140 */ + 0x8239, 0x85A6, 0x8A6E, 0x8CCE, + 0x8DF5, 0x9078, 0x9077, 0x92AD, + 0x9291, 0x9583, 0x9BAE, 0x524D, + 0x5584, 0x6F38, 0x7136, 0x5168, + 0x7985, 0x7E55, 0x81B3, 0x7CCE, + 0x564C, 0x5851, 0x5CA8, 0x63AA, + 0x66FE, 0x66FD, 0x695A, 0x72D9, + 0x758F, 0x758E, 0x790E, 0x7956, /* 9160 */ + 0x79DF, 0x7C97, 0x7D20, 0x7D44, + 0x8607, 0x8A34, 0x963B, 0x9061, + 0x9F20, 0x50E7, 0x5275, 0x53CC, + 0x53E2, 0x5009, 0x55AA, 0x58EE, + 0x594F, 0x723D, 0x5B8B, 0x5C64, + 0x531D, 0x60E3, 0x60F3, 0x635C, + 0x6383, 0x633F, 0x63BB, 0x0000, + 0x64CD, 0x65E9, 0x66F9, 0x5DE3, /* 9180 */ + 0x69CD, 0x69FD, 0x6F15, 0x71E5, + 0x4E89, 0x75E9, 0x76F8, 0x7A93, + 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, + 0x8349, 0x8358, 0x846C, 0x84BC, + 0x85FB, 0x88C5, 0x8D70, 0x9001, + 0x906D, 0x9397, 0x971C, 0x9A12, + 0x50CF, 0x5897, 0x618E, 0x81D3, + 0x8535, 0x8D08, 0x9020, 0x4FC3, /* 91A0 */ + 0x5074, 0x5247, 0x5373, 0x606F, + 0x6349, 0x675F, 0x6E2C, 0x8DB3, + 0x901F, 0x4FD7, 0x5C5E, 0x8CCA, + 0x65CF, 0x7D9A, 0x5352, 0x8896, + 0x5176, 0x63C3, 0x5B58, 0x5B6B, + 0x5C0A, 0x640D, 0x6751, 0x905C, + 0x4ED6, 0x591A, 0x592A, 0x6C70, + 0x8A51, 0x553E, 0x5815, 0x59A5, /* 91C0 */ + 0x60F0, 0x6253, 0x67C1, 0x8235, + 0x6955, 0x9640, 0x99C4, 0x9A28, + 0x4F53, 0x5806, 0x5BFE, 0x8010, + 0x5CB1, 0x5E2F, 0x5F85, 0x6020, + 0x614B, 0x6234, 0x66FF, 0x6CF0, + 0x6EDE, 0x80CE, 0x817F, 0x82D4, + 0x888B, 0x8CB8, 0x9000, 0x902E, + 0x968A, 0x9EDB, 0x9BDB, 0x4EE3, /* 91E0 */ + 0x53F0, 0x5927, 0x7B2C, 0x918D, + 0x984C, 0x9DF9, 0x6EDD, 0x7027, + 0x5353, 0x5544, 0x5B85, 0x6258, + 0x629E, 0x62D3, 0x6CA2, 0x6FEF, + 0x7422, 0x8A17, 0x9438, 0x6FC1, + 0x8AFE, 0x8338, 0x51E7, 0x86F8, + 0x53EA, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x53E9, 0x4F46, 0x9054, 0x8FB0, /* 9240 */ + 0x596A, 0x8131, 0x5DFD, 0x7AEA, + 0x8FBF, 0x68DA, 0x8C37, 0x72F8, + 0x9C48, 0x6A3D, 0x8AB0, 0x4E39, + 0x5358, 0x5606, 0x5766, 0x62C5, + 0x63A2, 0x65E6, 0x6B4E, 0x6DE1, + 0x6E5B, 0x70AD, 0x77ED, 0x7AEF, + 0x7BAA, 0x7DBB, 0x803D, 0x80C6, + 0x86CB, 0x8A95, 0x935B, 0x56E3, /* 9260 */ + 0x58C7, 0x5F3E, 0x65AD, 0x6696, + 0x6A80, 0x6BB5, 0x7537, 0x8AC7, + 0x5024, 0x77E5, 0x5730, 0x5F1B, + 0x6065, 0x667A, 0x6C60, 0x75F4, + 0x7A1A, 0x7F6E, 0x81F4, 0x8718, + 0x9045, 0x99B3, 0x7BC9, 0x755C, + 0x7AF9, 0x7B51, 0x84C4, 0x0000, + 0x9010, 0x79E9, 0x7A92, 0x8336, /* 9280 */ + 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, + 0x5B99, 0x5FE0, 0x62BD, 0x663C, + 0x67F1, 0x6CE8, 0x866B, 0x8877, + 0x8A3B, 0x914E, 0x92F3, 0x99D0, + 0x6A17, 0x7026, 0x732A, 0x82E7, + 0x8457, 0x8CAF, 0x4E01, 0x5146, + 0x51CB, 0x558B, 0x5BF5, 0x5E16, + 0x5E33, 0x5E81, 0x5F14, 0x5F35, /* 92A0 */ + 0x5F6B, 0x5FB4, 0x61F2, 0x6311, + 0x66A2, 0x671D, 0x6F6E, 0x7252, + 0x753A, 0x773A, 0x8074, 0x8139, + 0x8178, 0x8776, 0x8ABF, 0x8ADC, + 0x8D85, 0x8DF3, 0x929A, 0x9577, + 0x9802, 0x9CE5, 0x52C5, 0x6357, + 0x76F4, 0x6715, 0x6C88, 0x73CD, + 0x8CC3, 0x93AE, 0x9673, 0x6D25, /* 92C0 */ + 0x589C, 0x690E, 0x69CC, 0x8FFD, + 0x939A, 0x75DB, 0x901A, 0x585A, + 0x6802, 0x63B4, 0x69FB, 0x4F43, + 0x6F2C, 0x67D8, 0x8FBB, 0x8526, + 0x7DB4, 0x9354, 0x693F, 0x6F70, + 0x576A, 0x58F7, 0x5B2C, 0x7D2C, + 0x722A, 0x540A, 0x91E3, 0x9DB4, + 0x4EAD, 0x4F4E, 0x505C, 0x5075, /* 92E0 */ + 0x5243, 0x8C9E, 0x5448, 0x5824, + 0x5B9A, 0x5E1D, 0x5E95, 0x5EAD, + 0x5EF7, 0x5F1F, 0x608C, 0x62B5, + 0x633A, 0x63D0, 0x68AF, 0x6C40, + 0x7887, 0x798E, 0x7A0B, 0x7DE0, + 0x8247, 0x8A02, 0x8AE6, 0x8E44, + 0x9013, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x90B8, 0x912D, 0x91D8, 0x9F0E, /* 9340 */ + 0x6CE5, 0x6458, 0x64E2, 0x6575, + 0x6EF4, 0x7684, 0x7B1B, 0x9069, + 0x93D1, 0x6EBA, 0x54F2, 0x5FB9, + 0x64A4, 0x8F4D, 0x8FED, 0x9244, + 0x5178, 0x586B, 0x5929, 0x5C55, + 0x5E97, 0x6DFB, 0x7E8F, 0x751C, + 0x8CBC, 0x8EE2, 0x985B, 0x70B9, + 0x4F1D, 0x6BBF, 0x6FB1, 0x7530, /* 9360 */ + 0x96FB, 0x514E, 0x5410, 0x5835, + 0x5857, 0x59AC, 0x5C60, 0x5F92, + 0x6597, 0x675C, 0x6E21, 0x767B, + 0x83DF, 0x8CED, 0x9014, 0x90FD, + 0x934D, 0x7825, 0x783A, 0x52AA, + 0x5EA6, 0x571F, 0x5974, 0x6012, + 0x5012, 0x515A, 0x51AC, 0x0000, + 0x51CD, 0x5200, 0x5510, 0x5854, /* 9380 */ + 0x5858, 0x5957, 0x5B95, 0x5CF6, + 0x5D8B, 0x60BC, 0x6295, 0x642D, + 0x6771, 0x6843, 0x68BC, 0x68DF, + 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, + 0x706F, 0x71C8, 0x5F53, 0x75D8, + 0x7977, 0x7B49, 0x7B54, 0x7B52, + 0x7CD6, 0x7D71, 0x5230, 0x8463, + 0x8569, 0x85E4, 0x8A0E, 0x8B04, /* 93A0 */ + 0x8C46, 0x8E0F, 0x9003, 0x900F, + 0x9419, 0x9676, 0x982D, 0x9A30, + 0x95D8, 0x50CD, 0x52D5, 0x540C, + 0x5802, 0x5C0E, 0x61A7, 0x649E, + 0x6D1E, 0x77B3, 0x7AE5, 0x80F4, + 0x8404, 0x9053, 0x9285, 0x5CE0, + 0x9D07, 0x533F, 0x5F97, 0x5FB3, + 0x6D9C, 0x7279, 0x7763, 0x79BF, /* 93C0 */ + 0x7BE4, 0x6BD2, 0x72EC, 0x8AAD, + 0x6803, 0x6A61, 0x51F8, 0x7A81, + 0x6934, 0x5C4A, 0x9CF6, 0x82EB, + 0x5BC5, 0x9149, 0x701E, 0x5678, + 0x5C6F, 0x60C7, 0x6566, 0x6C8C, + 0x8C5A, 0x9041, 0x9813, 0x5451, + 0x66C7, 0x920D, 0x5948, 0x90A3, + 0x5185, 0x4E4D, 0x51EA, 0x8599, /* 93E0 */ + 0x8B0E, 0x7058, 0x637A, 0x934B, + 0x6962, 0x99B4, 0x7E04, 0x7577, + 0x5357, 0x6960, 0x8EDF, 0x96E3, + 0x6C5D, 0x4E8C, 0x5C3C, 0x5F10, + 0x8FE9, 0x5302, 0x8CD1, 0x8089, + 0x8679, 0x5EFF, 0x65E5, 0x4E73, + 0x5165, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5982, 0x5C3F, 0x97EE, 0x4EFB, /* 9440 */ + 0x598A, 0x5FCD, 0x8A8D, 0x6FE1, + 0x79B0, 0x7962, 0x5BE7, 0x8471, + 0x732B, 0x71B1, 0x5E74, 0x5FF5, + 0x637B, 0x649A, 0x71C3, 0x7C98, + 0x4E43, 0x5EFC, 0x4E4B, 0x57DC, + 0x56A2, 0x60A9, 0x6FC3, 0x7D0D, + 0x80FD, 0x8133, 0x81BF, 0x8FB2, + 0x8997, 0x86A4, 0x5DF4, 0x628A, /* 9460 */ + 0x64AD, 0x8987, 0x6777, 0x6CE2, + 0x6D3E, 0x7436, 0x7834, 0x5A46, + 0x7F75, 0x82AD, 0x99AC, 0x4FF3, + 0x5EC3, 0x62DD, 0x6392, 0x6557, + 0x676F, 0x76C3, 0x724C, 0x80CC, + 0x80BA, 0x8F29, 0x914D, 0x500D, + 0x57F9, 0x5A92, 0x6885, 0x0000, + 0x6973, 0x7164, 0x72FD, 0x8CB7, /* 9480 */ + 0x58F2, 0x8CE0, 0x966A, 0x9019, + 0x877F, 0x79E4, 0x77E7, 0x8429, + 0x4F2F, 0x5265, 0x535A, 0x62CD, + 0x67CF, 0x6CCA, 0x767D, 0x7B94, + 0x7C95, 0x8236, 0x8584, 0x8FEB, + 0x66DD, 0x6F20, 0x7206, 0x7E1B, + 0x83AB, 0x99C1, 0x9EA6, 0x51FD, + 0x7BB1, 0x7872, 0x7BB8, 0x8087, /* 94A0 */ + 0x7B48, 0x6AE8, 0x5E61, 0x808C, + 0x7551, 0x7560, 0x516B, 0x9262, + 0x6E8C, 0x767A, 0x9197, 0x9AEA, + 0x4F10, 0x7F70, 0x629C, 0x7B4F, + 0x95A5, 0x9CE9, 0x567A, 0x5859, + 0x86E4, 0x96BC, 0x4F34, 0x5224, + 0x534A, 0x53CD, 0x53DB, 0x5E06, + 0x642C, 0x6591, 0x677F, 0x6C3E, /* 94C0 */ + 0x6C4E, 0x7248, 0x72AF, 0x73ED, + 0x7554, 0x7E41, 0x822C, 0x85E9, + 0x8CA9, 0x7BC4, 0x91C6, 0x7169, + 0x9812, 0x98EF, 0x633D, 0x6669, + 0x756A, 0x76E4, 0x78D0, 0x8543, + 0x86EE, 0x532A, 0x5351, 0x5426, + 0x5983, 0x5E87, 0x5F7C, 0x60B2, + 0x6249, 0x6279, 0x62AB, 0x6590, /* 94E0 */ + 0x6BD4, 0x6CCC, 0x75B2, 0x76AE, + 0x7891, 0x79D8, 0x7DCB, 0x7F77, + 0x80A5, 0x88AB, 0x8AB9, 0x8CBB, + 0x907F, 0x975E, 0x98DB, 0x6A0B, + 0x7C38, 0x5099, 0x5C3E, 0x5FAE, + 0x6787, 0x6BD8, 0x7435, 0x7709, + 0x7F8E, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9F3B, 0x67CA, 0x7A17, 0x5339, /* 9540 */ + 0x758B, 0x9AED, 0x5F66, 0x819D, + 0x83F1, 0x8098, 0x5F3C, 0x5FC5, + 0x7562, 0x7B46, 0x903C, 0x6867, + 0x59EB, 0x5A9B, 0x7D10, 0x767E, + 0x8B2C, 0x4FF5, 0x5F6A, 0x6A19, + 0x6C37, 0x6F02, 0x74E2, 0x7968, + 0x8868, 0x8A55, 0x8C79, 0x5EDF, + 0x63CF, 0x75C5, 0x79D2, 0x82D7, /* 9560 */ + 0x9328, 0x92F2, 0x849C, 0x86ED, + 0x9C2D, 0x54C1, 0x5F6C, 0x658C, + 0x6D5C, 0x7015, 0x8CA7, 0x8CD3, + 0x983B, 0x654F, 0x74F6, 0x4E0D, + 0x4ED8, 0x57E0, 0x592B, 0x5A66, + 0x5BCC, 0x51A8, 0x5E03, 0x5E9C, + 0x6016, 0x6276, 0x6577, 0x0000, + 0x65A7, 0x666E, 0x6D6E, 0x7236, /* 9580 */ + 0x7B26, 0x8150, 0x819A, 0x8299, + 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, + 0x961C, 0x9644, 0x4FAE, 0x64AB, + 0x6B66, 0x821E, 0x8461, 0x856A, + 0x90E8, 0x5C01, 0x6953, 0x98A8, + 0x847A, 0x8557, 0x4F0F, 0x526F, + 0x5FA9, 0x5E45, 0x670D, 0x798F, + 0x8179, 0x8907, 0x8986, 0x6DF5, /* 95A0 */ + 0x5F17, 0x6255, 0x6CB8, 0x4ECF, + 0x7269, 0x9B92, 0x5206, 0x543B, + 0x5674, 0x58B3, 0x61A4, 0x626E, + 0x711A, 0x596E, 0x7C89, 0x7CDE, + 0x7D1B, 0x96F0, 0x6587, 0x805E, + 0x4E19, 0x4F75, 0x5175, 0x5840, + 0x5E63, 0x5E73, 0x5F0A, 0x67C4, + 0x4E26, 0x853D, 0x9589, 0x965B, /* 95C0 */ + 0x7C73, 0x9801, 0x50FB, 0x58C1, + 0x7656, 0x78A7, 0x5225, 0x77A5, + 0x8511, 0x7B86, 0x504F, 0x5909, + 0x7247, 0x7BC7, 0x7DE8, 0x8FBA, + 0x8FD4, 0x904D, 0x4FBF, 0x52C9, + 0x5A29, 0x5F01, 0x97AD, 0x4FDD, + 0x8217, 0x92EA, 0x5703, 0x6355, + 0x6B69, 0x752B, 0x88DC, 0x8F14, /* 95E0 */ + 0x7A42, 0x52DF, 0x5893, 0x6155, + 0x620A, 0x66AE, 0x6BCD, 0x7C3F, + 0x83E9, 0x5023, 0x4FF8, 0x5305, + 0x5446, 0x5831, 0x5949, 0x5B9D, + 0x5CF0, 0x5CEF, 0x5D29, 0x5E96, + 0x62B1, 0x6367, 0x653E, 0x65B9, + 0x670B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6CD5, 0x6CE1, 0x70F9, 0x7832, /* 9640 */ + 0x7E2B, 0x80DE, 0x82B3, 0x840C, + 0x84EC, 0x8702, 0x8912, 0x8A2A, + 0x8C4A, 0x90A6, 0x92D2, 0x98FD, + 0x9CF3, 0x9D6C, 0x4E4F, 0x4EA1, + 0x508D, 0x5256, 0x574A, 0x59A8, + 0x5E3D, 0x5FD8, 0x5FD9, 0x623F, + 0x66B4, 0x671B, 0x67D0, 0x68D2, + 0x5192, 0x7D21, 0x80AA, 0x81A8, /* 9660 */ + 0x8B00, 0x8C8C, 0x8CBF, 0x927E, + 0x9632, 0x5420, 0x982C, 0x5317, + 0x50D5, 0x535C, 0x58A8, 0x64B2, + 0x6734, 0x7267, 0x7766, 0x7A46, + 0x91E6, 0x52C3, 0x6CA1, 0x6B86, + 0x5800, 0x5E4C, 0x5954, 0x672C, + 0x7FFB, 0x51E1, 0x76C6, 0x0000, + 0x6469, 0x78E8, 0x9B54, 0x9EBB, /* 9680 */ + 0x57CB, 0x59B9, 0x6627, 0x679A, + 0x6BCE, 0x54E9, 0x69D9, 0x5E55, + 0x819C, 0x6795, 0x9BAA, 0x67FE, + 0x9C52, 0x685D, 0x4EA6, 0x4FE3, + 0x53C8, 0x62B9, 0x672B, 0x6CAB, + 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, + 0x4E07, 0x6162, 0x6E80, 0x6F2B, + 0x8513, 0x5473, 0x672A, 0x9B45, /* 96A0 */ + 0x5DF3, 0x7B95, 0x5CAC, 0x5BC6, + 0x871C, 0x6E4A, 0x84D1, 0x7A14, + 0x8108, 0x5999, 0x7C8D, 0x6C11, + 0x7720, 0x52D9, 0x5922, 0x7121, + 0x725F, 0x77DB, 0x9727, 0x9D61, + 0x690B, 0x5A7F, 0x5A18, 0x51A5, + 0x540D, 0x547D, 0x660E, 0x76DF, + 0x8FF7, 0x9298, 0x9CF4, 0x59EA, /* 96C0 */ + 0x725D, 0x6EC5, 0x514D, 0x68C9, + 0x7DBF, 0x7DEC, 0x9762, 0x9EBA, + 0x6478, 0x6A21, 0x8302, 0x5984, + 0x5B5F, 0x6BDB, 0x731B, 0x76F2, + 0x7DB2, 0x8017, 0x8499, 0x5132, + 0x6728, 0x9ED9, 0x76EE, 0x6762, + 0x52FF, 0x9905, 0x5C24, 0x623B, + 0x7C7E, 0x8CB0, 0x554F, 0x60B6, /* 96E0 */ + 0x7D0B, 0x9580, 0x5301, 0x4E5F, + 0x51B6, 0x591C, 0x723A, 0x8036, + 0x91CE, 0x5F25, 0x77E2, 0x5384, + 0x5F79, 0x7D04, 0x85AC, 0x8A33, + 0x8E8D, 0x9756, 0x67F3, 0x85AE, + 0x9453, 0x6109, 0x6108, 0x6CB9, + 0x7652, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8AED, 0x8F38, 0x552F, 0x4F51, /* 9740 */ + 0x512A, 0x52C7, 0x53CB, 0x5BA5, + 0x5E7D, 0x60A0, 0x6182, 0x63D6, + 0x6709, 0x67DA, 0x6E67, 0x6D8C, + 0x7336, 0x7337, 0x7531, 0x7950, + 0x88D5, 0x8A98, 0x904A, 0x9091, + 0x90F5, 0x96C4, 0x878D, 0x5915, + 0x4E88, 0x4F59, 0x4E0E, 0x8A89, + 0x8F3F, 0x9810, 0x50AD, 0x5E7C, /* 9760 */ + 0x5996, 0x5BB9, 0x5EB8, 0x63DA, + 0x63FA, 0x64C1, 0x66DC, 0x694A, + 0x69D8, 0x6D0B, 0x6EB6, 0x7194, + 0x7528, 0x7AAF, 0x7F8A, 0x8000, + 0x8449, 0x84C9, 0x8981, 0x8B21, + 0x8E0A, 0x9065, 0x967D, 0x990A, + 0x617E, 0x6291, 0x6B32, 0x0000, + 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, /* 9780 */ + 0x6DC0, 0x7F85, 0x87BA, 0x88F8, + 0x6765, 0x83B1, 0x983C, 0x96F7, + 0x6D1B, 0x7D61, 0x843D, 0x916A, + 0x4E71, 0x5375, 0x5D50, 0x6B04, + 0x6FEB, 0x85CD, 0x862D, 0x89A7, + 0x5229, 0x540F, 0x5C65, 0x674E, + 0x68A8, 0x7406, 0x7483, 0x75E2, + 0x88CF, 0x88E1, 0x91CC, 0x96E2, /* 97A0 */ + 0x9678, 0x5F8B, 0x7387, 0x7ACB, + 0x844E, 0x63A0, 0x7565, 0x5289, + 0x6D41, 0x6E9C, 0x7409, 0x7559, + 0x786B, 0x7C92, 0x9686, 0x7ADC, + 0x9F8D, 0x4FB6, 0x616E, 0x65C5, + 0x865C, 0x4E86, 0x4EAE, 0x50DA, + 0x4E21, 0x51CC, 0x5BEE, 0x6599, + 0x6881, 0x6DBC, 0x731F, 0x7642, /* 97C0 */ + 0x77AD, 0x7A1C, 0x7CE7, 0x826F, + 0x8AD2, 0x907C, 0x91CF, 0x9675, + 0x9818, 0x529B, 0x7DD1, 0x502B, + 0x5398, 0x6797, 0x6DCB, 0x71D0, + 0x7433, 0x81E8, 0x8F2A, 0x96A3, + 0x9C57, 0x9E9F, 0x7460, 0x5841, + 0x6D99, 0x7D2F, 0x985E, 0x4EE4, + 0x4F36, 0x4F8B, 0x51B7, 0x52B1, /* 97E0 */ + 0x5DBA, 0x601C, 0x73B2, 0x793C, + 0x82D3, 0x9234, 0x96B7, 0x96F6, + 0x970A, 0x9E97, 0x9F62, 0x66A6, + 0x6B74, 0x5217, 0x52A3, 0x70C8, + 0x88C2, 0x5EC9, 0x604B, 0x6190, + 0x6F23, 0x7149, 0x7C3E, 0x7DF4, + 0x806F, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x84EE, 0x9023, 0x932C, 0x5442, /* 9840 */ + 0x9B6F, 0x6AD3, 0x7089, 0x8CC2, + 0x8DEF, 0x9732, 0x52B4, 0x5A41, + 0x5ECA, 0x5F04, 0x6717, 0x697C, + 0x6994, 0x6D6A, 0x6F0F, 0x7262, + 0x72FC, 0x7BED, 0x8001, 0x807E, + 0x874B, 0x90CE, 0x516D, 0x9E93, + 0x7984, 0x808B, 0x9332, 0x8AD6, + 0x502D, 0x548C, 0x8A71, 0x6B6A, /* 9860 */ + 0x8CC4, 0x8107, 0x60D1, 0x67A0, + 0x9DF2, 0x4E99, 0x4E98, 0x9C10, + 0x8A6B, 0x85C1, 0x8568, 0x6900, + 0x6E7E, 0x7897, 0x8155, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5F0C, + 0x4E10, 0x4E15, 0x4E2A, 0x4E31, /* 98A0 */ + 0x4E36, 0x4E3C, 0x4E3F, 0x4E42, + 0x4E56, 0x4E58, 0x4E82, 0x4E85, + 0x8C6B, 0x4E8A, 0x8212, 0x5F0D, + 0x4E8E, 0x4E9E, 0x4E9F, 0x4EA0, + 0x4EA2, 0x4EB0, 0x4EB3, 0x4EB6, + 0x4ECE, 0x4ECD, 0x4EC4, 0x4EC6, + 0x4EC2, 0x4ED7, 0x4EDE, 0x4EED, + 0x4EDF, 0x4EF7, 0x4F09, 0x4F5A, /* 98C0 */ + 0x4F30, 0x4F5B, 0x4F5D, 0x4F57, + 0x4F47, 0x4F76, 0x4F88, 0x4F8F, + 0x4F98, 0x4F7B, 0x4F69, 0x4F70, + 0x4F91, 0x4F6F, 0x4F86, 0x4F96, + 0x5118, 0x4FD4, 0x4FDF, 0x4FCE, + 0x4FD8, 0x4FDB, 0x4FD1, 0x4FDA, + 0x4FD0, 0x4FE4, 0x4FE5, 0x501A, + 0x5028, 0x5014, 0x502A, 0x5025, /* 98E0 */ + 0x5005, 0x4F1C, 0x4FF6, 0x5021, + 0x5029, 0x502C, 0x4FFE, 0x4FEF, + 0x5011, 0x5006, 0x5043, 0x5047, + 0x6703, 0x5055, 0x5050, 0x5048, + 0x505A, 0x5056, 0x506C, 0x5078, + 0x5080, 0x509A, 0x5085, 0x50B4, + 0x50B2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x50C9, 0x50CA, 0x50B3, 0x50C2, /* 9940 */ + 0x50D6, 0x50DE, 0x50E5, 0x50ED, + 0x50E3, 0x50EE, 0x50F9, 0x50F5, + 0x5109, 0x5101, 0x5102, 0x5116, + 0x5115, 0x5114, 0x511A, 0x5121, + 0x513A, 0x5137, 0x513C, 0x513B, + 0x513F, 0x5140, 0x5152, 0x514C, + 0x5154, 0x5162, 0x7AF8, 0x5169, + 0x516A, 0x516E, 0x5180, 0x5182, /* 9960 */ + 0x56D8, 0x518C, 0x5189, 0x518F, + 0x5191, 0x5193, 0x5195, 0x5196, + 0x51A4, 0x51A6, 0x51A2, 0x51A9, + 0x51AA, 0x51AB, 0x51B3, 0x51B1, + 0x51B2, 0x51B0, 0x51B5, 0x51BD, + 0x51C5, 0x51C9, 0x51DB, 0x51E0, + 0x8655, 0x51E9, 0x51ED, 0x0000, + 0x51F0, 0x51F5, 0x51FE, 0x5204, /* 9980 */ + 0x520B, 0x5214, 0x520E, 0x5227, + 0x522A, 0x522E, 0x5233, 0x5239, + 0x524F, 0x5244, 0x524B, 0x524C, + 0x525E, 0x5254, 0x526A, 0x5274, + 0x5269, 0x5273, 0x527F, 0x527D, + 0x528D, 0x5294, 0x5292, 0x5271, + 0x5288, 0x5291, 0x8FA8, 0x8FA7, + 0x52AC, 0x52AD, 0x52BC, 0x52B5, /* 99A0 */ + 0x52C1, 0x52CD, 0x52D7, 0x52DE, + 0x52E3, 0x52E6, 0x98ED, 0x52E0, + 0x52F3, 0x52F5, 0x52F8, 0x52F9, + 0x5306, 0x5308, 0x7538, 0x530D, + 0x5310, 0x530F, 0x5315, 0x531A, + 0x5323, 0x532F, 0x5331, 0x5333, + 0x5338, 0x5340, 0x5346, 0x5345, + 0x4E17, 0x5349, 0x534D, 0x51D6, /* 99C0 */ + 0x535E, 0x5369, 0x536E, 0x5918, + 0x537B, 0x5377, 0x5382, 0x5396, + 0x53A0, 0x53A6, 0x53A5, 0x53AE, + 0x53B0, 0x53B6, 0x53C3, 0x7C12, + 0x96D9, 0x53DF, 0x66FC, 0x71EE, + 0x53EE, 0x53E8, 0x53ED, 0x53FA, + 0x5401, 0x543D, 0x5440, 0x542C, + 0x542D, 0x543C, 0x542E, 0x5436, /* 99E0 */ + 0x5429, 0x541D, 0x544E, 0x548F, + 0x5475, 0x548E, 0x545F, 0x5471, + 0x5477, 0x5470, 0x5492, 0x547B, + 0x5480, 0x5476, 0x5484, 0x5490, + 0x5486, 0x54C7, 0x54A2, 0x54B8, + 0x54A5, 0x54AC, 0x54C4, 0x54C8, + 0x54A8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x54AB, 0x54C2, 0x54A4, 0x54BE, /* 9A40 */ + 0x54BC, 0x54D8, 0x54E5, 0x54E6, + 0x550F, 0x5514, 0x54FD, 0x54EE, + 0x54ED, 0x54FA, 0x54E2, 0x5539, + 0x5540, 0x5563, 0x554C, 0x552E, + 0x555C, 0x5545, 0x5556, 0x5557, + 0x5538, 0x5533, 0x555D, 0x5599, + 0x5580, 0x54AF, 0x558A, 0x559F, + 0x557B, 0x557E, 0x5598, 0x559E, /* 9A60 */ + 0x55AE, 0x557C, 0x5583, 0x55A9, + 0x5587, 0x55A8, 0x55DA, 0x55C5, + 0x55DF, 0x55C4, 0x55DC, 0x55E4, + 0x55D4, 0x5614, 0x55F7, 0x5616, + 0x55FE, 0x55FD, 0x561B, 0x55F9, + 0x564E, 0x5650, 0x71DF, 0x5634, + 0x5636, 0x5632, 0x5638, 0x0000, + 0x566B, 0x5664, 0x562F, 0x566C, /* 9A80 */ + 0x566A, 0x5686, 0x5680, 0x568A, + 0x56A0, 0x5694, 0x568F, 0x56A5, + 0x56AE, 0x56B6, 0x56B4, 0x56C2, + 0x56BC, 0x56C1, 0x56C3, 0x56C0, + 0x56C8, 0x56CE, 0x56D1, 0x56D3, + 0x56D7, 0x56EE, 0x56F9, 0x5700, + 0x56FF, 0x5704, 0x5709, 0x5708, + 0x570B, 0x570D, 0x5713, 0x5718, /* 9AA0 */ + 0x5716, 0x55C7, 0x571C, 0x5726, + 0x5737, 0x5738, 0x574E, 0x573B, + 0x5740, 0x574F, 0x5769, 0x57C0, + 0x5788, 0x5761, 0x577F, 0x5789, + 0x5793, 0x57A0, 0x57B3, 0x57A4, + 0x57AA, 0x57B0, 0x57C3, 0x57C6, + 0x57D4, 0x57D2, 0x57D3, 0x580A, + 0x57D6, 0x57E3, 0x580B, 0x5819, /* 9AC0 */ + 0x581D, 0x5872, 0x5821, 0x5862, + 0x584B, 0x5870, 0x6BC0, 0x5852, + 0x583D, 0x5879, 0x5885, 0x58B9, + 0x589F, 0x58AB, 0x58BA, 0x58DE, + 0x58BB, 0x58B8, 0x58AE, 0x58C5, + 0x58D3, 0x58D1, 0x58D7, 0x58D9, + 0x58D8, 0x58E5, 0x58DC, 0x58E4, + 0x58DF, 0x58EF, 0x58FA, 0x58F9, /* 9AE0 */ + 0x58FB, 0x58FC, 0x58FD, 0x5902, + 0x590A, 0x5910, 0x591B, 0x68A6, + 0x5925, 0x592C, 0x592D, 0x5932, + 0x5938, 0x593E, 0x7AD2, 0x5955, + 0x5950, 0x594E, 0x595A, 0x5958, + 0x5962, 0x5960, 0x5967, 0x596C, + 0x5969, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5978, 0x5981, 0x599D, 0x4F5E, /* 9B40 */ + 0x4FAB, 0x59A3, 0x59B2, 0x59C6, + 0x59E8, 0x59DC, 0x598D, 0x59D9, + 0x59DA, 0x5A25, 0x5A1F, 0x5A11, + 0x5A1C, 0x5A09, 0x5A1A, 0x5A40, + 0x5A6C, 0x5A49, 0x5A35, 0x5A36, + 0x5A62, 0x5A6A, 0x5A9A, 0x5ABC, + 0x5ABE, 0x5ACB, 0x5AC2, 0x5ABD, + 0x5AE3, 0x5AD7, 0x5AE6, 0x5AE9, /* 9B60 */ + 0x5AD6, 0x5AFA, 0x5AFB, 0x5B0C, + 0x5B0B, 0x5B16, 0x5B32, 0x5AD0, + 0x5B2A, 0x5B36, 0x5B3E, 0x5B43, + 0x5B45, 0x5B40, 0x5B51, 0x5B55, + 0x5B5A, 0x5B5B, 0x5B65, 0x5B69, + 0x5B70, 0x5B73, 0x5B75, 0x5B78, + 0x6588, 0x5B7A, 0x5B80, 0x0000, + 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, /* 9B80 */ + 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, + 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, + 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, + 0x5BF3, 0x5C05, 0x5C07, 0x5C08, + 0x5C0D, 0x5C13, 0x5C20, 0x5C22, + 0x5C28, 0x5C38, 0x5C39, 0x5C41, + 0x5C46, 0x5C4E, 0x5C53, 0x5C50, + 0x5C4F, 0x5B71, 0x5C6C, 0x5C6E, /* 9BA0 */ + 0x4E62, 0x5C76, 0x5C79, 0x5C8C, + 0x5C91, 0x5C94, 0x599B, 0x5CAB, + 0x5CBB, 0x5CB6, 0x5CBC, 0x5CB7, + 0x5CC5, 0x5CBE, 0x5CC7, 0x5CD9, + 0x5CE9, 0x5CFD, 0x5CFA, 0x5CED, + 0x5D8C, 0x5CEA, 0x5D0B, 0x5D15, + 0x5D17, 0x5D5C, 0x5D1F, 0x5D1B, + 0x5D11, 0x5D14, 0x5D22, 0x5D1A, /* 9BC0 */ + 0x5D19, 0x5D18, 0x5D4C, 0x5D52, + 0x5D4E, 0x5D4B, 0x5D6C, 0x5D73, + 0x5D76, 0x5D87, 0x5D84, 0x5D82, + 0x5DA2, 0x5D9D, 0x5DAC, 0x5DAE, + 0x5DBD, 0x5D90, 0x5DB7, 0x5DBC, + 0x5DC9, 0x5DCD, 0x5DD3, 0x5DD2, + 0x5DD6, 0x5DDB, 0x5DEB, 0x5DF2, + 0x5DF5, 0x5E0B, 0x5E1A, 0x5E19, /* 9BE0 */ + 0x5E11, 0x5E1B, 0x5E36, 0x5E37, + 0x5E44, 0x5E43, 0x5E40, 0x5E4E, + 0x5E57, 0x5E54, 0x5E5F, 0x5E62, + 0x5E64, 0x5E47, 0x5E75, 0x5E76, + 0x5E7A, 0x9EBC, 0x5E7F, 0x5EA0, + 0x5EC1, 0x5EC2, 0x5EC8, 0x5ED0, + 0x5ECF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x5ED6, 0x5EE3, 0x5EDD, 0x5EDA, /* 9C40 */ + 0x5EDB, 0x5EE2, 0x5EE1, 0x5EE8, + 0x5EE9, 0x5EEC, 0x5EF1, 0x5EF3, + 0x5EF0, 0x5EF4, 0x5EF8, 0x5EFE, + 0x5F03, 0x5F09, 0x5F5D, 0x5F5C, + 0x5F0B, 0x5F11, 0x5F16, 0x5F29, + 0x5F2D, 0x5F38, 0x5F41, 0x5F48, + 0x5F4C, 0x5F4E, 0x5F2F, 0x5F51, + 0x5F56, 0x5F57, 0x5F59, 0x5F61, /* 9C60 */ + 0x5F6D, 0x5F73, 0x5F77, 0x5F83, + 0x5F82, 0x5F7F, 0x5F8A, 0x5F88, + 0x5F91, 0x5F87, 0x5F9E, 0x5F99, + 0x5F98, 0x5FA0, 0x5FA8, 0x5FAD, + 0x5FBC, 0x5FD6, 0x5FFB, 0x5FE4, + 0x5FF8, 0x5FF1, 0x5FDD, 0x60B3, + 0x5FFF, 0x6021, 0x6060, 0x0000, + 0x6019, 0x6010, 0x6029, 0x600E, /* 9C80 */ + 0x6031, 0x601B, 0x6015, 0x602B, + 0x6026, 0x600F, 0x603A, 0x605A, + 0x6041, 0x606A, 0x6077, 0x605F, + 0x604A, 0x6046, 0x604D, 0x6063, + 0x6043, 0x6064, 0x6042, 0x606C, + 0x606B, 0x6059, 0x6081, 0x608D, + 0x60E7, 0x6083, 0x609A, 0x6084, + 0x609B, 0x6096, 0x6097, 0x6092, /* 9CA0 */ + 0x60A7, 0x608B, 0x60E1, 0x60B8, + 0x60E0, 0x60D3, 0x60B4, 0x5FF0, + 0x60BD, 0x60C6, 0x60B5, 0x60D8, + 0x614D, 0x6115, 0x6106, 0x60F6, + 0x60F7, 0x6100, 0x60F4, 0x60FA, + 0x6103, 0x6121, 0x60FB, 0x60F1, + 0x610D, 0x610E, 0x6147, 0x613E, + 0x6128, 0x6127, 0x614A, 0x613F, /* 9CC0 */ + 0x613C, 0x612C, 0x6134, 0x613D, + 0x6142, 0x6144, 0x6173, 0x6177, + 0x6158, 0x6159, 0x615A, 0x616B, + 0x6174, 0x616F, 0x6165, 0x6171, + 0x615F, 0x615D, 0x6153, 0x6175, + 0x6199, 0x6196, 0x6187, 0x61AC, + 0x6194, 0x619A, 0x618A, 0x6191, + 0x61AB, 0x61AE, 0x61CC, 0x61CA, /* 9CE0 */ + 0x61C9, 0x61F7, 0x61C8, 0x61C3, + 0x61C6, 0x61BA, 0x61CB, 0x7F79, + 0x61CD, 0x61E6, 0x61E3, 0x61F6, + 0x61FA, 0x61F4, 0x61FF, 0x61FD, + 0x61FC, 0x61FE, 0x6200, 0x6208, + 0x6209, 0x620D, 0x620C, 0x6214, + 0x621B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x621E, 0x6221, 0x622A, 0x622E, /* 9D40 */ + 0x6230, 0x6232, 0x6233, 0x6241, + 0x624E, 0x625E, 0x6263, 0x625B, + 0x6260, 0x6268, 0x627C, 0x6282, + 0x6289, 0x627E, 0x6292, 0x6293, + 0x6296, 0x62D4, 0x6283, 0x6294, + 0x62D7, 0x62D1, 0x62BB, 0x62CF, + 0x62FF, 0x62C6, 0x64D4, 0x62C8, + 0x62DC, 0x62CC, 0x62CA, 0x62C2, /* 9D60 */ + 0x62C7, 0x629B, 0x62C9, 0x630C, + 0x62EE, 0x62F1, 0x6327, 0x6302, + 0x6308, 0x62EF, 0x62F5, 0x6350, + 0x633E, 0x634D, 0x641C, 0x634F, + 0x6396, 0x638E, 0x6380, 0x63AB, + 0x6376, 0x63A3, 0x638F, 0x6389, + 0x639F, 0x63B5, 0x636B, 0x0000, + 0x6369, 0x63BE, 0x63E9, 0x63C0, /* 9D80 */ + 0x63C6, 0x63E3, 0x63C9, 0x63D2, + 0x63F6, 0x63C4, 0x6416, 0x6434, + 0x6406, 0x6413, 0x6426, 0x6436, + 0x651D, 0x6417, 0x6428, 0x640F, + 0x6467, 0x646F, 0x6476, 0x644E, + 0x652A, 0x6495, 0x6493, 0x64A5, + 0x64A9, 0x6488, 0x64BC, 0x64DA, + 0x64D2, 0x64C5, 0x64C7, 0x64BB, /* 9DA0 */ + 0x64D8, 0x64C2, 0x64F1, 0x64E7, + 0x8209, 0x64E0, 0x64E1, 0x62AC, + 0x64E3, 0x64EF, 0x652C, 0x64F6, + 0x64F4, 0x64F2, 0x64FA, 0x6500, + 0x64FD, 0x6518, 0x651C, 0x6505, + 0x6524, 0x6523, 0x652B, 0x6534, + 0x6535, 0x6537, 0x6536, 0x6538, + 0x754B, 0x6548, 0x6556, 0x6555, /* 9DC0 */ + 0x654D, 0x6558, 0x655E, 0x655D, + 0x6572, 0x6578, 0x6582, 0x6583, + 0x8B8A, 0x659B, 0x659F, 0x65AB, + 0x65B7, 0x65C3, 0x65C6, 0x65C1, + 0x65C4, 0x65CC, 0x65D2, 0x65DB, + 0x65D9, 0x65E0, 0x65E1, 0x65F1, + 0x6772, 0x660A, 0x6603, 0x65FB, + 0x6773, 0x6635, 0x6636, 0x6634, /* 9DE0 */ + 0x661C, 0x664F, 0x6644, 0x6649, + 0x6641, 0x665E, 0x665D, 0x6664, + 0x6667, 0x6668, 0x665F, 0x6662, + 0x6670, 0x6683, 0x6688, 0x668E, + 0x6689, 0x6684, 0x6698, 0x669D, + 0x66C1, 0x66B9, 0x66C9, 0x66BE, + 0x66BC, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x66C4, 0x66B8, 0x66D6, 0x66DA, /* 9E40 */ + 0x66E0, 0x663F, 0x66E6, 0x66E9, + 0x66F0, 0x66F5, 0x66F7, 0x670F, + 0x6716, 0x671E, 0x6726, 0x6727, + 0x9738, 0x672E, 0x673F, 0x6736, + 0x6741, 0x6738, 0x6737, 0x6746, + 0x675E, 0x6760, 0x6759, 0x6763, + 0x6764, 0x6789, 0x6770, 0x67A9, + 0x677C, 0x676A, 0x678C, 0x678B, /* 9E60 */ + 0x67A6, 0x67A1, 0x6785, 0x67B7, + 0x67EF, 0x67B4, 0x67EC, 0x67B3, + 0x67E9, 0x67B8, 0x67E4, 0x67DE, + 0x67DD, 0x67E2, 0x67EE, 0x67B9, + 0x67CE, 0x67C6, 0x67E7, 0x6A9C, + 0x681E, 0x6846, 0x6829, 0x6840, + 0x684D, 0x6832, 0x684E, 0x0000, + 0x68B3, 0x682B, 0x6859, 0x6863, /* 9E80 */ + 0x6877, 0x687F, 0x689F, 0x688F, + 0x68AD, 0x6894, 0x689D, 0x689B, + 0x6883, 0x6AAE, 0x68B9, 0x6874, + 0x68B5, 0x68A0, 0x68BA, 0x690F, + 0x688D, 0x687E, 0x6901, 0x68CA, + 0x6908, 0x68D8, 0x6922, 0x6926, + 0x68E1, 0x690C, 0x68CD, 0x68D4, + 0x68E7, 0x68D5, 0x6936, 0x6912, /* 9EA0 */ + 0x6904, 0x68D7, 0x68E3, 0x6925, + 0x68F9, 0x68E0, 0x68EF, 0x6928, + 0x692A, 0x691A, 0x6923, 0x6921, + 0x68C6, 0x6979, 0x6977, 0x695C, + 0x6978, 0x696B, 0x6954, 0x697E, + 0x696E, 0x6939, 0x6974, 0x693D, + 0x6959, 0x6930, 0x6961, 0x695E, + 0x695D, 0x6981, 0x696A, 0x69B2, /* 9EC0 */ + 0x69AE, 0x69D0, 0x69BF, 0x69C1, + 0x69D3, 0x69BE, 0x69CE, 0x5BE8, + 0x69CA, 0x69DD, 0x69BB, 0x69C3, + 0x69A7, 0x6A2E, 0x6991, 0x69A0, + 0x699C, 0x6995, 0x69B4, 0x69DE, + 0x69E8, 0x6A02, 0x6A1B, 0x69FF, + 0x6B0A, 0x69F9, 0x69F2, 0x69E7, + 0x6A05, 0x69B1, 0x6A1E, 0x69ED, /* 9EE0 */ + 0x6A14, 0x69EB, 0x6A0A, 0x6A12, + 0x6AC1, 0x6A23, 0x6A13, 0x6A44, + 0x6A0C, 0x6A72, 0x6A36, 0x6A78, + 0x6A47, 0x6A62, 0x6A59, 0x6A66, + 0x6A48, 0x6A38, 0x6A22, 0x6A90, + 0x6A8D, 0x6AA0, 0x6A84, 0x6AA2, + 0x6AA3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6A97, 0x8617, 0x6ABB, 0x6AC3, /* 9F40 */ + 0x6AC2, 0x6AB8, 0x6AB3, 0x6AAC, + 0x6ADE, 0x6AD1, 0x6ADF, 0x6AAA, + 0x6ADA, 0x6AEA, 0x6AFB, 0x6B05, + 0x8616, 0x6AFA, 0x6B12, 0x6B16, + 0x9B31, 0x6B1F, 0x6B38, 0x6B37, + 0x76DC, 0x6B39, 0x98EE, 0x6B47, + 0x6B43, 0x6B49, 0x6B50, 0x6B59, + 0x6B54, 0x6B5B, 0x6B5F, 0x6B61, /* 9F60 */ + 0x6B78, 0x6B79, 0x6B7F, 0x6B80, + 0x6B84, 0x6B83, 0x6B8D, 0x6B98, + 0x6B95, 0x6B9E, 0x6BA4, 0x6BAA, + 0x6BAB, 0x6BAF, 0x6BB2, 0x6BB1, + 0x6BB3, 0x6BB7, 0x6BBC, 0x6BC6, + 0x6BCB, 0x6BD3, 0x6BDF, 0x6BEC, + 0x6BEB, 0x6BF3, 0x6BEF, 0x0000, + 0x9EBE, 0x6C08, 0x6C13, 0x6C14, /* 9F80 */ + 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, + 0x6C55, 0x6C62, 0x6C6A, 0x6C82, + 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, + 0x6C7E, 0x6C68, 0x6C73, 0x6C92, + 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, + 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, + 0x6CAE, 0x6CB1, 0x6CBE, 0x6CBA, + 0x6CDB, 0x6CEF, 0x6CD9, 0x6CEA, /* 9FA0 */ + 0x6D1F, 0x884D, 0x6D36, 0x6D2B, + 0x6D3D, 0x6D38, 0x6D19, 0x6D35, + 0x6D33, 0x6D12, 0x6D0C, 0x6D63, + 0x6D93, 0x6D64, 0x6D5A, 0x6D79, + 0x6D59, 0x6D8E, 0x6D95, 0x6FE4, + 0x6D85, 0x6DF9, 0x6E15, 0x6E0A, + 0x6DB5, 0x6DC7, 0x6DE6, 0x6DB8, + 0x6DC6, 0x6DEC, 0x6DDE, 0x6DCC, /* 9FC0 */ + 0x6DE8, 0x6DD2, 0x6DC5, 0x6DFA, + 0x6DD9, 0x6DE4, 0x6DD5, 0x6DEA, + 0x6DEE, 0x6E2D, 0x6E6E, 0x6E2E, + 0x6E19, 0x6E72, 0x6E5F, 0x6E3E, + 0x6E23, 0x6E6B, 0x6E2B, 0x6E76, + 0x6E4D, 0x6E1F, 0x6E43, 0x6E3A, + 0x6E4E, 0x6E24, 0x6EFF, 0x6E1D, + 0x6E38, 0x6E82, 0x6EAA, 0x6E98, /* 9FE0 */ + 0x6EC9, 0x6EB7, 0x6ED3, 0x6EBD, + 0x6EAF, 0x6EC4, 0x6EB2, 0x6ED4, + 0x6ED5, 0x6E8F, 0x6EA5, 0x6EC2, + 0x6E9F, 0x6F41, 0x6F11, 0x704C, + 0x6EEC, 0x6EF8, 0x6EFE, 0x6F3F, + 0x6EF2, 0x6F31, 0x6EEF, 0x6F32, + 0x6ECC, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x6F3E, 0x6F13, 0x6EF7, 0x6F86, /* E040 */ + 0x6F7A, 0x6F78, 0x6F81, 0x6F80, + 0x6F6F, 0x6F5B, 0x6FF3, 0x6F6D, + 0x6F82, 0x6F7C, 0x6F58, 0x6F8E, + 0x6F91, 0x6FC2, 0x6F66, 0x6FB3, + 0x6FA3, 0x6FA1, 0x6FA4, 0x6FB9, + 0x6FC6, 0x6FAA, 0x6FDF, 0x6FD5, + 0x6FEC, 0x6FD4, 0x6FD8, 0x6FF1, + 0x6FEE, 0x6FDB, 0x7009, 0x700B, /* E060 */ + 0x6FFA, 0x7011, 0x7001, 0x700F, + 0x6FFE, 0x701B, 0x701A, 0x6F74, + 0x701D, 0x7018, 0x701F, 0x7030, + 0x703E, 0x7032, 0x7051, 0x7063, + 0x7099, 0x7092, 0x70AF, 0x70F1, + 0x70AC, 0x70B8, 0x70B3, 0x70AE, + 0x70DF, 0x70CB, 0x70DD, 0x0000, + 0x70D9, 0x7109, 0x70FD, 0x711C, /* E080 */ + 0x7119, 0x7165, 0x7155, 0x7188, + 0x7166, 0x7162, 0x714C, 0x7156, + 0x716C, 0x718F, 0x71FB, 0x7184, + 0x7195, 0x71A8, 0x71AC, 0x71D7, + 0x71B9, 0x71BE, 0x71D2, 0x71C9, + 0x71D4, 0x71CE, 0x71E0, 0x71EC, + 0x71E7, 0x71F5, 0x71FC, 0x71F9, + 0x71FF, 0x720D, 0x7210, 0x721B, /* E0A0 */ + 0x7228, 0x722D, 0x722C, 0x7230, + 0x7232, 0x723B, 0x723C, 0x723F, + 0x7240, 0x7246, 0x724B, 0x7258, + 0x7274, 0x727E, 0x7282, 0x7281, + 0x7287, 0x7292, 0x7296, 0x72A2, + 0x72A7, 0x72B9, 0x72B2, 0x72C3, + 0x72C6, 0x72C4, 0x72CE, 0x72D2, + 0x72E2, 0x72E0, 0x72E1, 0x72F9, /* E0C0 */ + 0x72F7, 0x500F, 0x7317, 0x730A, + 0x731C, 0x7316, 0x731D, 0x7334, + 0x732F, 0x7329, 0x7325, 0x733E, + 0x734E, 0x734F, 0x9ED8, 0x7357, + 0x736A, 0x7368, 0x7370, 0x7378, + 0x7375, 0x737B, 0x737A, 0x73C8, + 0x73B3, 0x73CE, 0x73BB, 0x73C0, + 0x73E5, 0x73EE, 0x73DE, 0x74A2, /* E0E0 */ + 0x7405, 0x746F, 0x7425, 0x73F8, + 0x7432, 0x743A, 0x7455, 0x743F, + 0x745F, 0x7459, 0x7441, 0x745C, + 0x7469, 0x7470, 0x7463, 0x746A, + 0x7476, 0x747E, 0x748B, 0x749E, + 0x74A7, 0x74CA, 0x74CF, 0x74D4, + 0x73F1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x74E0, 0x74E3, 0x74E7, 0x74E9, /* E140 */ + 0x74EE, 0x74F2, 0x74F0, 0x74F1, + 0x74F8, 0x74F7, 0x7504, 0x7503, + 0x7505, 0x750C, 0x750E, 0x750D, + 0x7515, 0x7513, 0x751E, 0x7526, + 0x752C, 0x753C, 0x7544, 0x754D, + 0x754A, 0x7549, 0x755B, 0x7546, + 0x755A, 0x7569, 0x7564, 0x7567, + 0x756B, 0x756D, 0x7578, 0x7576, /* E160 */ + 0x7586, 0x7587, 0x7574, 0x758A, + 0x7589, 0x7582, 0x7594, 0x759A, + 0x759D, 0x75A5, 0x75A3, 0x75C2, + 0x75B3, 0x75C3, 0x75B5, 0x75BD, + 0x75B8, 0x75BC, 0x75B1, 0x75CD, + 0x75CA, 0x75D2, 0x75D9, 0x75E3, + 0x75DE, 0x75FE, 0x75FF, 0x0000, + 0x75FC, 0x7601, 0x75F0, 0x75FA, /* E180 */ + 0x75F2, 0x75F3, 0x760B, 0x760D, + 0x7609, 0x761F, 0x7627, 0x7620, + 0x7621, 0x7622, 0x7624, 0x7634, + 0x7630, 0x763B, 0x7647, 0x7648, + 0x7646, 0x765C, 0x7658, 0x7661, + 0x7662, 0x7668, 0x7669, 0x766A, + 0x7667, 0x766C, 0x7670, 0x7672, + 0x7676, 0x7678, 0x767C, 0x7680, /* E1A0 */ + 0x7683, 0x7688, 0x768B, 0x768E, + 0x7696, 0x7693, 0x7699, 0x769A, + 0x76B0, 0x76B4, 0x76B8, 0x76B9, + 0x76BA, 0x76C2, 0x76CD, 0x76D6, + 0x76D2, 0x76DE, 0x76E1, 0x76E5, + 0x76E7, 0x76EA, 0x862F, 0x76FB, + 0x7708, 0x7707, 0x7704, 0x7729, + 0x7724, 0x771E, 0x7725, 0x7726, /* E1C0 */ + 0x771B, 0x7737, 0x7738, 0x7747, + 0x775A, 0x7768, 0x776B, 0x775B, + 0x7765, 0x777F, 0x777E, 0x7779, + 0x778E, 0x778B, 0x7791, 0x77A0, + 0x779E, 0x77B0, 0x77B6, 0x77B9, + 0x77BF, 0x77BC, 0x77BD, 0x77BB, + 0x77C7, 0x77CD, 0x77D7, 0x77DA, + 0x77DC, 0x77E3, 0x77EE, 0x77FC, /* E1E0 */ + 0x780C, 0x7812, 0x7926, 0x7820, + 0x792A, 0x7845, 0x788E, 0x7874, + 0x7886, 0x787C, 0x789A, 0x788C, + 0x78A3, 0x78B5, 0x78AA, 0x78AF, + 0x78D1, 0x78C6, 0x78CB, 0x78D4, + 0x78BE, 0x78BC, 0x78C5, 0x78CA, + 0x78EC, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x78E7, 0x78DA, 0x78FD, 0x78F4, /* E240 */ + 0x7907, 0x7912, 0x7911, 0x7919, + 0x792C, 0x792B, 0x7940, 0x7960, + 0x7957, 0x795F, 0x795A, 0x7955, + 0x7953, 0x797A, 0x797F, 0x798A, + 0x799D, 0x79A7, 0x9F4B, 0x79AA, + 0x79AE, 0x79B3, 0x79B9, 0x79BA, + 0x79C9, 0x79D5, 0x79E7, 0x79EC, + 0x79E1, 0x79E3, 0x7A08, 0x7A0D, /* E260 */ + 0x7A18, 0x7A19, 0x7A20, 0x7A1F, + 0x7980, 0x7A31, 0x7A3B, 0x7A3E, + 0x7A37, 0x7A43, 0x7A57, 0x7A49, + 0x7A61, 0x7A62, 0x7A69, 0x9F9D, + 0x7A70, 0x7A79, 0x7A7D, 0x7A88, + 0x7A97, 0x7A95, 0x7A98, 0x7A96, + 0x7AA9, 0x7AC8, 0x7AB0, 0x0000, + 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, /* E280 */ + 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, + 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, + 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, + 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, + 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, + 0x7B18, 0x7B19, 0x7B1E, 0x7B35, + 0x7B28, 0x7B36, 0x7B50, 0x7B7A, + 0x7B04, 0x7B4D, 0x7B0B, 0x7B4C, /* E2A0 */ + 0x7B45, 0x7B75, 0x7B65, 0x7B74, + 0x7B67, 0x7B70, 0x7B71, 0x7B6C, + 0x7B6E, 0x7B9D, 0x7B98, 0x7B9F, + 0x7B8D, 0x7B9C, 0x7B9A, 0x7B8B, + 0x7B92, 0x7B8F, 0x7B5D, 0x7B99, + 0x7BCB, 0x7BC1, 0x7BCC, 0x7BCF, + 0x7BB4, 0x7BC6, 0x7BDD, 0x7BE9, + 0x7C11, 0x7C14, 0x7BE6, 0x7BE5, /* E2C0 */ + 0x7C60, 0x7C00, 0x7C07, 0x7C13, + 0x7BF3, 0x7BF7, 0x7C17, 0x7C0D, + 0x7BF6, 0x7C23, 0x7C27, 0x7C2A, + 0x7C1F, 0x7C37, 0x7C2B, 0x7C3D, + 0x7C4C, 0x7C43, 0x7C54, 0x7C4F, + 0x7C40, 0x7C50, 0x7C58, 0x7C5F, + 0x7C64, 0x7C56, 0x7C65, 0x7C6C, + 0x7C75, 0x7C83, 0x7C90, 0x7CA4, /* E2E0 */ + 0x7CAD, 0x7CA2, 0x7CAB, 0x7CA1, + 0x7CA8, 0x7CB3, 0x7CB2, 0x7CB1, + 0x7CAE, 0x7CB9, 0x7CBD, 0x7CC0, + 0x7CC5, 0x7CC2, 0x7CD8, 0x7CD2, + 0x7CDC, 0x7CE2, 0x9B3B, 0x7CEF, + 0x7CF2, 0x7CF4, 0x7CF6, 0x7CFA, + 0x7D06, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x7D02, 0x7D1C, 0x7D15, 0x7D0A, /* E340 */ + 0x7D45, 0x7D4B, 0x7D2E, 0x7D32, + 0x7D3F, 0x7D35, 0x7D46, 0x7D73, + 0x7D56, 0x7D4E, 0x7D72, 0x7D68, + 0x7D6E, 0x7D4F, 0x7D63, 0x7D93, + 0x7D89, 0x7D5B, 0x7D8F, 0x7D7D, + 0x7D9B, 0x7DBA, 0x7DAE, 0x7DA3, + 0x7DB5, 0x7DC7, 0x7DBD, 0x7DAB, + 0x7E3D, 0x7DA2, 0x7DAF, 0x7DDC, /* E360 */ + 0x7DB8, 0x7D9F, 0x7DB0, 0x7DD8, + 0x7DDD, 0x7DE4, 0x7DDE, 0x7DFB, + 0x7DF2, 0x7DE1, 0x7E05, 0x7E0A, + 0x7E23, 0x7E21, 0x7E12, 0x7E31, + 0x7E1F, 0x7E09, 0x7E0B, 0x7E22, + 0x7E46, 0x7E66, 0x7E3B, 0x7E35, + 0x7E39, 0x7E43, 0x7E37, 0x0000, + 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, /* E380 */ + 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, + 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, + 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, + 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, + 0x7E8C, 0x7E92, 0x7E90, 0x7E93, + 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, + 0x7E9C, 0x7F38, 0x7F3A, 0x7F45, + 0x7F4C, 0x7F4D, 0x7F4E, 0x7F50, /* E3A0 */ + 0x7F51, 0x7F55, 0x7F54, 0x7F58, + 0x7F5F, 0x7F60, 0x7F68, 0x7F69, + 0x7F67, 0x7F78, 0x7F82, 0x7F86, + 0x7F83, 0x7F88, 0x7F87, 0x7F8C, + 0x7F94, 0x7F9E, 0x7F9D, 0x7F9A, + 0x7FA3, 0x7FAF, 0x7FB2, 0x7FB9, + 0x7FAE, 0x7FB6, 0x7FB8, 0x8B71, + 0x7FC5, 0x7FC6, 0x7FCA, 0x7FD5, /* E3C0 */ + 0x7FD4, 0x7FE1, 0x7FE6, 0x7FE9, + 0x7FF3, 0x7FF9, 0x98DC, 0x8006, + 0x8004, 0x800B, 0x8012, 0x8018, + 0x8019, 0x801C, 0x8021, 0x8028, + 0x803F, 0x803B, 0x804A, 0x8046, + 0x8052, 0x8058, 0x805A, 0x805F, + 0x8062, 0x8068, 0x8073, 0x8072, + 0x8070, 0x8076, 0x8079, 0x807D, /* E3E0 */ + 0x807F, 0x8084, 0x8086, 0x8085, + 0x809B, 0x8093, 0x809A, 0x80AD, + 0x5190, 0x80AC, 0x80DB, 0x80E5, + 0x80D9, 0x80DD, 0x80C4, 0x80DA, + 0x80D6, 0x8109, 0x80EF, 0x80F1, + 0x811B, 0x8129, 0x8123, 0x812F, + 0x814B, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x968B, 0x8146, 0x813E, 0x8153, /* E440 */ + 0x8151, 0x80FC, 0x8171, 0x816E, + 0x8165, 0x8166, 0x8174, 0x8183, + 0x8188, 0x818A, 0x8180, 0x8182, + 0x81A0, 0x8195, 0x81A4, 0x81A3, + 0x815F, 0x8193, 0x81A9, 0x81B0, + 0x81B5, 0x81BE, 0x81B8, 0x81BD, + 0x81C0, 0x81C2, 0x81BA, 0x81C9, + 0x81CD, 0x81D1, 0x81D9, 0x81D8, /* E460 */ + 0x81C8, 0x81DA, 0x81DF, 0x81E0, + 0x81E7, 0x81FA, 0x81FB, 0x81FE, + 0x8201, 0x8202, 0x8205, 0x8207, + 0x820A, 0x820D, 0x8210, 0x8216, + 0x8229, 0x822B, 0x8238, 0x8233, + 0x8240, 0x8259, 0x8258, 0x825D, + 0x825A, 0x825F, 0x8264, 0x0000, + 0x8262, 0x8268, 0x826A, 0x826B, /* E480 */ + 0x822E, 0x8271, 0x8277, 0x8278, + 0x827E, 0x828D, 0x8292, 0x82AB, + 0x829F, 0x82BB, 0x82AC, 0x82E1, + 0x82E3, 0x82DF, 0x82D2, 0x82F4, + 0x82F3, 0x82FA, 0x8393, 0x8303, + 0x82FB, 0x82F9, 0x82DE, 0x8306, + 0x82DC, 0x8309, 0x82D9, 0x8335, + 0x8334, 0x8316, 0x8332, 0x8331, /* E4A0 */ + 0x8340, 0x8339, 0x8350, 0x8345, + 0x832F, 0x832B, 0x8317, 0x8318, + 0x8385, 0x839A, 0x83AA, 0x839F, + 0x83A2, 0x8396, 0x8323, 0x838E, + 0x8387, 0x838A, 0x837C, 0x83B5, + 0x8373, 0x8375, 0x83A0, 0x8389, + 0x83A8, 0x83F4, 0x8413, 0x83EB, + 0x83CE, 0x83FD, 0x8403, 0x83D8, /* E4C0 */ + 0x840B, 0x83C1, 0x83F7, 0x8407, + 0x83E0, 0x83F2, 0x840D, 0x8422, + 0x8420, 0x83BD, 0x8438, 0x8506, + 0x83FB, 0x846D, 0x842A, 0x843C, + 0x855A, 0x8484, 0x8477, 0x846B, + 0x84AD, 0x846E, 0x8482, 0x8469, + 0x8446, 0x842C, 0x846F, 0x8479, + 0x8435, 0x84CA, 0x8462, 0x84B9, /* E4E0 */ + 0x84BF, 0x849F, 0x84D9, 0x84CD, + 0x84BB, 0x84DA, 0x84D0, 0x84C1, + 0x84C6, 0x84D6, 0x84A1, 0x8521, + 0x84FF, 0x84F4, 0x8517, 0x8518, + 0x852C, 0x851F, 0x8515, 0x8514, + 0x84FC, 0x8540, 0x8563, 0x8558, + 0x8548, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8541, 0x8602, 0x854B, 0x8555, /* E540 */ + 0x8580, 0x85A4, 0x8588, 0x8591, + 0x858A, 0x85A8, 0x856D, 0x8594, + 0x859B, 0x85EA, 0x8587, 0x859C, + 0x8577, 0x857E, 0x8590, 0x85C9, + 0x85BA, 0x85CF, 0x85B9, 0x85D0, + 0x85D5, 0x85DD, 0x85E5, 0x85DC, + 0x85F9, 0x860A, 0x8613, 0x860B, + 0x85FE, 0x85FA, 0x8606, 0x8622, /* E560 */ + 0x861A, 0x8630, 0x863F, 0x864D, + 0x4E55, 0x8654, 0x865F, 0x8667, + 0x8671, 0x8693, 0x86A3, 0x86A9, + 0x86AA, 0x868B, 0x868C, 0x86B6, + 0x86AF, 0x86C4, 0x86C6, 0x86B0, + 0x86C9, 0x8823, 0x86AB, 0x86D4, + 0x86DE, 0x86E9, 0x86EC, 0x0000, + 0x86DF, 0x86DB, 0x86EF, 0x8712, /* E580 */ + 0x8706, 0x8708, 0x8700, 0x8703, + 0x86FB, 0x8711, 0x8709, 0x870D, + 0x86F9, 0x870A, 0x8734, 0x873F, + 0x8737, 0x873B, 0x8725, 0x8729, + 0x871A, 0x8760, 0x875F, 0x8778, + 0x874C, 0x874E, 0x8774, 0x8757, + 0x8768, 0x876E, 0x8759, 0x8753, + 0x8763, 0x876A, 0x8805, 0x87A2, /* E5A0 */ + 0x879F, 0x8782, 0x87AF, 0x87CB, + 0x87BD, 0x87C0, 0x87D0, 0x96D6, + 0x87AB, 0x87C4, 0x87B3, 0x87C7, + 0x87C6, 0x87BB, 0x87EF, 0x87F2, + 0x87E0, 0x880F, 0x880D, 0x87FE, + 0x87F6, 0x87F7, 0x880E, 0x87D2, + 0x8811, 0x8816, 0x8815, 0x8822, + 0x8821, 0x8831, 0x8836, 0x8839, /* E5C0 */ + 0x8827, 0x883B, 0x8844, 0x8842, + 0x8852, 0x8859, 0x885E, 0x8862, + 0x886B, 0x8881, 0x887E, 0x889E, + 0x8875, 0x887D, 0x88B5, 0x8872, + 0x8882, 0x8897, 0x8892, 0x88AE, + 0x8899, 0x88A2, 0x888D, 0x88A4, + 0x88B0, 0x88BF, 0x88B1, 0x88C3, + 0x88C4, 0x88D4, 0x88D8, 0x88D9, /* E5E0 */ + 0x88DD, 0x88F9, 0x8902, 0x88FC, + 0x88F4, 0x88E8, 0x88F2, 0x8904, + 0x890C, 0x890A, 0x8913, 0x8943, + 0x891E, 0x8925, 0x892A, 0x892B, + 0x8941, 0x8944, 0x893B, 0x8936, + 0x8938, 0x894C, 0x891D, 0x8960, + 0x895E, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8966, 0x8964, 0x896D, 0x896A, /* E640 */ + 0x896F, 0x8974, 0x8977, 0x897E, + 0x8983, 0x8988, 0x898A, 0x8993, + 0x8998, 0x89A1, 0x89A9, 0x89A6, + 0x89AC, 0x89AF, 0x89B2, 0x89BA, + 0x89BD, 0x89BF, 0x89C0, 0x89DA, + 0x89DC, 0x89DD, 0x89E7, 0x89F4, + 0x89F8, 0x8A03, 0x8A16, 0x8A10, + 0x8A0C, 0x8A1B, 0x8A1D, 0x8A25, /* E660 */ + 0x8A36, 0x8A41, 0x8A5B, 0x8A52, + 0x8A46, 0x8A48, 0x8A7C, 0x8A6D, + 0x8A6C, 0x8A62, 0x8A85, 0x8A82, + 0x8A84, 0x8AA8, 0x8AA1, 0x8A91, + 0x8AA5, 0x8AA6, 0x8A9A, 0x8AA3, + 0x8AC4, 0x8ACD, 0x8AC2, 0x8ADA, + 0x8AEB, 0x8AF3, 0x8AE7, 0x0000, + 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, /* E680 */ + 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, + 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, + 0x8B16, 0x8B10, 0x8B17, 0x8B20, + 0x8B33, 0x97AB, 0x8B26, 0x8B2B, + 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, + 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, + 0x8B5B, 0x8B5A, 0x8B6B, 0x8B5F, + 0x8B6C, 0x8B6F, 0x8B74, 0x8B7D, /* E6A0 */ + 0x8B80, 0x8B8C, 0x8B8E, 0x8B92, + 0x8B93, 0x8B96, 0x8B99, 0x8B9A, + 0x8C3A, 0x8C41, 0x8C3F, 0x8C48, + 0x8C4C, 0x8C4E, 0x8C50, 0x8C55, + 0x8C62, 0x8C6C, 0x8C78, 0x8C7A, + 0x8C82, 0x8C89, 0x8C85, 0x8C8A, + 0x8C8D, 0x8C8E, 0x8C94, 0x8C7C, + 0x8C98, 0x621D, 0x8CAD, 0x8CAA, /* E6C0 */ + 0x8CBD, 0x8CB2, 0x8CB3, 0x8CAE, + 0x8CB6, 0x8CC8, 0x8CC1, 0x8CE4, + 0x8CE3, 0x8CDA, 0x8CFD, 0x8CFA, + 0x8CFB, 0x8D04, 0x8D05, 0x8D0A, + 0x8D07, 0x8D0F, 0x8D0D, 0x8D10, + 0x9F4E, 0x8D13, 0x8CCD, 0x8D14, + 0x8D16, 0x8D67, 0x8D6D, 0x8D71, + 0x8D73, 0x8D81, 0x8D99, 0x8DC2, /* E6E0 */ + 0x8DBE, 0x8DBA, 0x8DCF, 0x8DDA, + 0x8DD6, 0x8DCC, 0x8DDB, 0x8DCB, + 0x8DEA, 0x8DEB, 0x8DDF, 0x8DE3, + 0x8DFC, 0x8E08, 0x8E09, 0x8DFF, + 0x8E1D, 0x8E1E, 0x8E10, 0x8E1F, + 0x8E42, 0x8E35, 0x8E30, 0x8E34, + 0x8E4A, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x8E47, 0x8E49, 0x8E4C, 0x8E50, /* E740 */ + 0x8E48, 0x8E59, 0x8E64, 0x8E60, + 0x8E2A, 0x8E63, 0x8E55, 0x8E76, + 0x8E72, 0x8E7C, 0x8E81, 0x8E87, + 0x8E85, 0x8E84, 0x8E8B, 0x8E8A, + 0x8E93, 0x8E91, 0x8E94, 0x8E99, + 0x8EAA, 0x8EA1, 0x8EAC, 0x8EB0, + 0x8EC6, 0x8EB1, 0x8EBE, 0x8EC5, + 0x8EC8, 0x8ECB, 0x8EDB, 0x8EE3, /* E760 */ + 0x8EFC, 0x8EFB, 0x8EEB, 0x8EFE, + 0x8F0A, 0x8F05, 0x8F15, 0x8F12, + 0x8F19, 0x8F13, 0x8F1C, 0x8F1F, + 0x8F1B, 0x8F0C, 0x8F26, 0x8F33, + 0x8F3B, 0x8F39, 0x8F45, 0x8F42, + 0x8F3E, 0x8F4C, 0x8F49, 0x8F46, + 0x8F4E, 0x8F57, 0x8F5C, 0x0000, + 0x8F62, 0x8F63, 0x8F64, 0x8F9C, /* E780 */ + 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, + 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, + 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, + 0x9005, 0x8FF9, 0x8FFA, 0x9011, + 0x9015, 0x9021, 0x900D, 0x901E, + 0x9016, 0x900B, 0x9027, 0x9036, + 0x9035, 0x9039, 0x8FF8, 0x904F, + 0x9050, 0x9051, 0x9052, 0x900E, /* E7A0 */ + 0x9049, 0x903E, 0x9056, 0x9058, + 0x905E, 0x9068, 0x906F, 0x9076, + 0x96A8, 0x9072, 0x9082, 0x907D, + 0x9081, 0x9080, 0x908A, 0x9089, + 0x908F, 0x90A8, 0x90AF, 0x90B1, + 0x90B5, 0x90E2, 0x90E4, 0x6248, + 0x90DB, 0x9102, 0x9112, 0x9119, + 0x9132, 0x9130, 0x914A, 0x9156, /* E7C0 */ + 0x9158, 0x9163, 0x9165, 0x9169, + 0x9173, 0x9172, 0x918B, 0x9189, + 0x9182, 0x91A2, 0x91AB, 0x91AF, + 0x91AA, 0x91B5, 0x91B4, 0x91BA, + 0x91C0, 0x91C1, 0x91C9, 0x91CB, + 0x91D0, 0x91D6, 0x91DF, 0x91E1, + 0x91DB, 0x91FC, 0x91F5, 0x91F6, + 0x921E, 0x91FF, 0x9214, 0x922C, /* E7E0 */ + 0x9215, 0x9211, 0x925E, 0x9257, + 0x9245, 0x9249, 0x9264, 0x9248, + 0x9295, 0x923F, 0x924B, 0x9250, + 0x929C, 0x9296, 0x9293, 0x929B, + 0x925A, 0x92CF, 0x92B9, 0x92B7, + 0x92E9, 0x930F, 0x92FA, 0x9344, + 0x932E, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9319, 0x9322, 0x931A, 0x9323, /* E840 */ + 0x933A, 0x9335, 0x933B, 0x935C, + 0x9360, 0x937C, 0x936E, 0x9356, + 0x93B0, 0x93AC, 0x93AD, 0x9394, + 0x93B9, 0x93D6, 0x93D7, 0x93E8, + 0x93E5, 0x93D8, 0x93C3, 0x93DD, + 0x93D0, 0x93C8, 0x93E4, 0x941A, + 0x9414, 0x9413, 0x9403, 0x9407, + 0x9410, 0x9436, 0x942B, 0x9435, /* E860 */ + 0x9421, 0x943A, 0x9441, 0x9452, + 0x9444, 0x945B, 0x9460, 0x9462, + 0x945E, 0x946A, 0x9229, 0x9470, + 0x9475, 0x9477, 0x947D, 0x945A, + 0x947C, 0x947E, 0x9481, 0x947F, + 0x9582, 0x9587, 0x958A, 0x9594, + 0x9596, 0x9598, 0x9599, 0x0000, + 0x95A0, 0x95A8, 0x95A7, 0x95AD, /* E880 */ + 0x95BC, 0x95BB, 0x95B9, 0x95BE, + 0x95CA, 0x6FF6, 0x95C3, 0x95CD, + 0x95CC, 0x95D5, 0x95D4, 0x95D6, + 0x95DC, 0x95E1, 0x95E5, 0x95E2, + 0x9621, 0x9628, 0x962E, 0x962F, + 0x9642, 0x964C, 0x964F, 0x964B, + 0x9677, 0x965C, 0x965E, 0x965D, + 0x965F, 0x9666, 0x9672, 0x966C, /* E8A0 */ + 0x968D, 0x9698, 0x9695, 0x9697, + 0x96AA, 0x96A7, 0x96B1, 0x96B2, + 0x96B0, 0x96B4, 0x96B6, 0x96B8, + 0x96B9, 0x96CE, 0x96CB, 0x96C9, + 0x96CD, 0x894D, 0x96DC, 0x970D, + 0x96D5, 0x96F9, 0x9704, 0x9706, + 0x9708, 0x9713, 0x970E, 0x9711, + 0x970F, 0x9716, 0x9719, 0x9724, /* E8C0 */ + 0x972A, 0x9730, 0x9739, 0x973D, + 0x973E, 0x9744, 0x9746, 0x9748, + 0x9742, 0x9749, 0x975C, 0x9760, + 0x9764, 0x9766, 0x9768, 0x52D2, + 0x976B, 0x9771, 0x9779, 0x9785, + 0x977C, 0x9781, 0x977A, 0x9786, + 0x978B, 0x978F, 0x9790, 0x979C, + 0x97A8, 0x97A6, 0x97A3, 0x97B3, /* E8E0 */ + 0x97B4, 0x97C3, 0x97C6, 0x97C8, + 0x97CB, 0x97DC, 0x97ED, 0x9F4F, + 0x97F2, 0x7ADF, 0x97F6, 0x97F5, + 0x980F, 0x980C, 0x9838, 0x9824, + 0x9821, 0x9837, 0x983D, 0x9846, + 0x984F, 0x984B, 0x986B, 0x986F, + 0x9870, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9871, 0x9874, 0x9873, 0x98AA, /* E940 */ + 0x98AF, 0x98B1, 0x98B6, 0x98C4, + 0x98C3, 0x98C6, 0x98E9, 0x98EB, + 0x9903, 0x9909, 0x9912, 0x9914, + 0x9918, 0x9921, 0x991D, 0x991E, + 0x9924, 0x9920, 0x992C, 0x992E, + 0x993D, 0x993E, 0x9942, 0x9949, + 0x9945, 0x9950, 0x994B, 0x9951, + 0x9952, 0x994C, 0x9955, 0x9997, /* E960 */ + 0x9998, 0x99A5, 0x99AD, 0x99AE, + 0x99BC, 0x99DF, 0x99DB, 0x99DD, + 0x99D8, 0x99D1, 0x99ED, 0x99EE, + 0x99F1, 0x99F2, 0x99FB, 0x99F8, + 0x9A01, 0x9A0F, 0x9A05, 0x99E2, + 0x9A19, 0x9A2B, 0x9A37, 0x9A45, + 0x9A42, 0x9A40, 0x9A43, 0x0000, + 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, /* E980 */ + 0x9A57, 0x9A5F, 0x9A62, 0x9A65, + 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, + 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, + 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, + 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, + 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, + 0x9AF4, 0x9AF1, 0x9AF7, 0x9AFB, + 0x9B06, 0x9B18, 0x9B1A, 0x9B1F, /* E9A0 */ + 0x9B22, 0x9B23, 0x9B25, 0x9B27, + 0x9B28, 0x9B29, 0x9B2A, 0x9B2E, + 0x9B2F, 0x9B32, 0x9B44, 0x9B43, + 0x9B4F, 0x9B4D, 0x9B4E, 0x9B51, + 0x9B58, 0x9B74, 0x9B93, 0x9B83, + 0x9B91, 0x9B96, 0x9B97, 0x9B9F, + 0x9BA0, 0x9BA8, 0x9BB4, 0x9BC0, + 0x9BCA, 0x9BB9, 0x9BC6, 0x9BCF, /* E9C0 */ + 0x9BD1, 0x9BD2, 0x9BE3, 0x9BE2, + 0x9BE4, 0x9BD4, 0x9BE1, 0x9C3A, + 0x9BF2, 0x9BF1, 0x9BF0, 0x9C15, + 0x9C14, 0x9C09, 0x9C13, 0x9C0C, + 0x9C06, 0x9C08, 0x9C12, 0x9C0A, + 0x9C04, 0x9C2E, 0x9C1B, 0x9C25, + 0x9C24, 0x9C21, 0x9C30, 0x9C47, + 0x9C32, 0x9C46, 0x9C3E, 0x9C5A, /* E9E0 */ + 0x9C60, 0x9C67, 0x9C76, 0x9C78, + 0x9CE7, 0x9CEC, 0x9CF0, 0x9D09, + 0x9D08, 0x9CEB, 0x9D03, 0x9D06, + 0x9D2A, 0x9D26, 0x9DAF, 0x9D23, + 0x9D1F, 0x9D44, 0x9D15, 0x9D12, + 0x9D41, 0x9D3F, 0x9D3E, 0x9D46, + 0x9D48, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x9D5D, 0x9D5E, 0x9D64, 0x9D51, /* EA40 */ + 0x9D50, 0x9D59, 0x9D72, 0x9D89, + 0x9D87, 0x9DAB, 0x9D6F, 0x9D7A, + 0x9D9A, 0x9DA4, 0x9DA9, 0x9DB2, + 0x9DC4, 0x9DC1, 0x9DBB, 0x9DB8, + 0x9DBA, 0x9DC6, 0x9DCF, 0x9DC2, + 0x9DD9, 0x9DD3, 0x9DF8, 0x9DE6, + 0x9DED, 0x9DEF, 0x9DFD, 0x9E1A, + 0x9E1B, 0x9E1E, 0x9E75, 0x9E79, /* EA60 */ + 0x9E7D, 0x9E81, 0x9E88, 0x9E8B, + 0x9E8C, 0x9E92, 0x9E95, 0x9E91, + 0x9E9D, 0x9EA5, 0x9EA9, 0x9EB8, + 0x9EAA, 0x9EAD, 0x9761, 0x9ECC, + 0x9ECE, 0x9ECF, 0x9ED0, 0x9ED4, + 0x9EDC, 0x9EDE, 0x9EDD, 0x9EE0, + 0x9EE5, 0x9EE8, 0x9EEF, 0x0000, + 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, /* EA80 */ + 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, + 0x9F08, 0x76B7, 0x9F15, 0x9F21, + 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, + 0x9F54, 0x9F63, 0x9F5F, 0x9F60, + 0x9F61, 0x9F66, 0x9F67, 0x9F6C, + 0x9F6A, 0x9F77, 0x9F72, 0x9F76, + 0x9F95, 0x9F9C, 0x9FA0, 0x582F, + 0x69C7, 0x9059, 0x7464, 0x51DC, /* EAA0 */ + 0x7199, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +/* Unicode->SJIS conversion table */ +static const uint16 unicode_to_sjis[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + MB2(0x815F), 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8191), MB2(0x8192), /* 00A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x8198), + MB2(0x814E), 0x0000, 0x0000, 0x0000, + MB2(0x81CA), 0x0000, 0x0000, 0x0000, + MB2(0x818B), MB2(0x817D), 0x0000, 0x0000, + MB2(0x814C), 0x0000, MB2(0x81F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x817E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8180), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x839F), MB2(0x83A0), MB2(0x83A1), + MB2(0x83A2), MB2(0x83A3), MB2(0x83A4), MB2(0x83A5), + MB2(0x83A6), MB2(0x83A7), MB2(0x83A8), MB2(0x83A9), + MB2(0x83AA), MB2(0x83AB), MB2(0x83AC), MB2(0x83AD), + MB2(0x83AE), MB2(0x83AF), 0x0000, MB2(0x83B0), /* 03A0 */ + MB2(0x83B1), MB2(0x83B2), MB2(0x83B3), MB2(0x83B4), + MB2(0x83B5), MB2(0x83B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x83BF), MB2(0x83C0), MB2(0x83C1), + MB2(0x83C2), MB2(0x83C3), MB2(0x83C4), MB2(0x83C5), + MB2(0x83C6), MB2(0x83C7), MB2(0x83C8), MB2(0x83C9), + MB2(0x83CA), MB2(0x83CB), MB2(0x83CC), MB2(0x83CD), + MB2(0x83CE), MB2(0x83CF), 0x0000, MB2(0x83D0), /* 03C0 */ + MB2(0x83D1), MB2(0x83D2), MB2(0x83D3), MB2(0x83D4), + MB2(0x83D5), MB2(0x83D6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8446), 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8440), MB2(0x8441), MB2(0x8442), MB2(0x8443), + MB2(0x8444), MB2(0x8445), MB2(0x8447), MB2(0x8448), + MB2(0x8449), MB2(0x844A), MB2(0x844B), MB2(0x844C), + MB2(0x844D), MB2(0x844E), MB2(0x844F), MB2(0x8450), + MB2(0x8451), MB2(0x8452), MB2(0x8453), MB2(0x8454), /* 0420 */ + MB2(0x8455), MB2(0x8456), MB2(0x8457), MB2(0x8458), + MB2(0x8459), MB2(0x845A), MB2(0x845B), MB2(0x845C), + MB2(0x845D), MB2(0x845E), MB2(0x845F), MB2(0x8460), + MB2(0x8470), MB2(0x8471), MB2(0x8472), MB2(0x8473), + MB2(0x8474), MB2(0x8475), MB2(0x8477), MB2(0x8478), + MB2(0x8479), MB2(0x847A), MB2(0x847B), MB2(0x847C), + MB2(0x847D), MB2(0x847E), MB2(0x8480), MB2(0x8481), + MB2(0x8482), MB2(0x8483), MB2(0x8484), MB2(0x8485), /* 0440 */ + MB2(0x8486), MB2(0x8487), MB2(0x8488), MB2(0x8489), + MB2(0x848A), MB2(0x848B), MB2(0x848C), MB2(0x848D), + MB2(0x848E), MB2(0x848F), MB2(0x8490), MB2(0x8491), + 0x0000, MB2(0x8476), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x815D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x815C), MB2(0x8161), 0x0000, + MB2(0x8165), MB2(0x8166), 0x0000, 0x0000, + MB2(0x8167), MB2(0x8168), 0x0000, 0x0000, + MB2(0x81F5), MB2(0x81F6), 0x0000, 0x0000, /* 2020 */ + 0x0000, MB2(0x8164), MB2(0x8163), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81F1), 0x0000, MB2(0x818C), MB2(0x818D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x81A6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x818E), /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x81F0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81A9), MB2(0x81AA), MB2(0x81A8), MB2(0x81AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81CB), 0x0000, + MB2(0x81CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81CD), 0x0000, MB2(0x81DD), MB2(0x81CE), /* 2200 */ + 0x0000, 0x0000, 0x0000, MB2(0x81DE), + MB2(0x81B8), 0x0000, 0x0000, MB2(0x81B9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x817C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81E3), 0x0000, + 0x0000, MB2(0x81E5), MB2(0x8187), 0x0000, + MB2(0x81DA), 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, MB2(0x81C8), + MB2(0x81C9), MB2(0x81BF), MB2(0x81BE), MB2(0x81E7), + MB2(0x81E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8188), MB2(0x81E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x81E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8182), MB2(0x81DF), 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, MB2(0x8185), MB2(0x8186), + 0x0000, 0x0000, MB2(0x81E1), MB2(0x81E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81BC), MB2(0x81BD), /* 2280 */ + 0x0000, 0x0000, MB2(0x81BA), MB2(0x81BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, MB2(0x81DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x849F), MB2(0x84AA), MB2(0x84A0), MB2(0x84AB), /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x84A1), 0x0000, 0x0000, MB2(0x84AC), + MB2(0x84A2), 0x0000, 0x0000, MB2(0x84AD), + MB2(0x84A4), 0x0000, 0x0000, MB2(0x84AF), + MB2(0x84A3), 0x0000, 0x0000, MB2(0x84AE), + MB2(0x84A5), MB2(0x84BA), 0x0000, 0x0000, + MB2(0x84B5), 0x0000, 0x0000, MB2(0x84B0), /* 2520 */ + MB2(0x84A7), MB2(0x84BC), 0x0000, 0x0000, + MB2(0x84B7), 0x0000, 0x0000, MB2(0x84B2), + MB2(0x84A6), 0x0000, 0x0000, MB2(0x84B6), + MB2(0x84BB), 0x0000, 0x0000, MB2(0x84B1), + MB2(0x84A8), 0x0000, 0x0000, MB2(0x84B8), + MB2(0x84BD), 0x0000, 0x0000, MB2(0x84B3), + MB2(0x84A9), 0x0000, 0x0000, MB2(0x84B9), + 0x0000, 0x0000, MB2(0x84BE), 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x84B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81A1), MB2(0x81A0), 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81A3), MB2(0x81A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x81A5), MB2(0x81A4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, MB2(0x819F), MB2(0x819E), + 0x0000, 0x0000, 0x0000, MB2(0x819B), + 0x0000, 0x0000, MB2(0x819D), MB2(0x819C), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x81FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, MB2(0x819A), MB2(0x8199), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x818A), 0x0000, MB2(0x8189), 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x81F4), 0x0000, + 0x0000, MB2(0x81F3), 0x0000, MB2(0x81F2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8140), MB2(0x8141), MB2(0x8142), MB2(0x8156), /* 3000 */ + 0x0000, MB2(0x8158), MB2(0x8159), MB2(0x815A), + MB2(0x8171), MB2(0x8172), MB2(0x8173), MB2(0x8174), + MB2(0x8175), MB2(0x8176), MB2(0x8177), MB2(0x8178), + MB2(0x8179), MB2(0x817A), MB2(0x81A7), MB2(0x81AC), + MB2(0x816B), MB2(0x816C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8160), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x829F), MB2(0x82A0), MB2(0x82A1), /* 3040 */ + MB2(0x82A2), MB2(0x82A3), MB2(0x82A4), MB2(0x82A5), + MB2(0x82A6), MB2(0x82A7), MB2(0x82A8), MB2(0x82A9), + MB2(0x82AA), MB2(0x82AB), MB2(0x82AC), MB2(0x82AD), + MB2(0x82AE), MB2(0x82AF), MB2(0x82B0), MB2(0x82B1), + MB2(0x82B2), MB2(0x82B3), MB2(0x82B4), MB2(0x82B5), + MB2(0x82B6), MB2(0x82B7), MB2(0x82B8), MB2(0x82B9), + MB2(0x82BA), MB2(0x82BB), MB2(0x82BC), MB2(0x82BD), + MB2(0x82BE), MB2(0x82BF), MB2(0x82C0), MB2(0x82C1), /* 3060 */ + MB2(0x82C2), MB2(0x82C3), MB2(0x82C4), MB2(0x82C5), + MB2(0x82C6), MB2(0x82C7), MB2(0x82C8), MB2(0x82C9), + MB2(0x82CA), MB2(0x82CB), MB2(0x82CC), MB2(0x82CD), + MB2(0x82CE), MB2(0x82CF), MB2(0x82D0), MB2(0x82D1), + MB2(0x82D2), MB2(0x82D3), MB2(0x82D4), MB2(0x82D5), + MB2(0x82D6), MB2(0x82D7), MB2(0x82D8), MB2(0x82D9), + MB2(0x82DA), MB2(0x82DB), MB2(0x82DC), MB2(0x82DD), + MB2(0x82DE), MB2(0x82DF), MB2(0x82E0), MB2(0x82E1), /* 3080 */ + MB2(0x82E2), MB2(0x82E3), MB2(0x82E4), MB2(0x82E5), + MB2(0x82E6), MB2(0x82E7), MB2(0x82E8), MB2(0x82E9), + MB2(0x82EA), MB2(0x82EB), MB2(0x82EC), MB2(0x82ED), + MB2(0x82EE), MB2(0x82EF), MB2(0x82F0), MB2(0x82F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x814A), + MB2(0x814B), MB2(0x8154), MB2(0x8155), 0x0000, + 0x0000, MB2(0x8340), MB2(0x8341), MB2(0x8342), /* 30A0 */ + MB2(0x8343), MB2(0x8344), MB2(0x8345), MB2(0x8346), + MB2(0x8347), MB2(0x8348), MB2(0x8349), MB2(0x834A), + MB2(0x834B), MB2(0x834C), MB2(0x834D), MB2(0x834E), + MB2(0x834F), MB2(0x8350), MB2(0x8351), MB2(0x8352), + MB2(0x8353), MB2(0x8354), MB2(0x8355), MB2(0x8356), + MB2(0x8357), MB2(0x8358), MB2(0x8359), MB2(0x835A), + MB2(0x835B), MB2(0x835C), MB2(0x835D), MB2(0x835E), + MB2(0x835F), MB2(0x8360), MB2(0x8361), MB2(0x8362), /* 30C0 */ + MB2(0x8363), MB2(0x8364), MB2(0x8365), MB2(0x8366), + MB2(0x8367), MB2(0x8368), MB2(0x8369), MB2(0x836A), + MB2(0x836B), MB2(0x836C), MB2(0x836D), MB2(0x836E), + MB2(0x836F), MB2(0x8370), MB2(0x8371), MB2(0x8372), + MB2(0x8373), MB2(0x8374), MB2(0x8375), MB2(0x8376), + MB2(0x8377), MB2(0x8378), MB2(0x8379), MB2(0x837A), + MB2(0x837B), MB2(0x837C), MB2(0x837D), MB2(0x837E), + MB2(0x8380), MB2(0x8381), MB2(0x8382), MB2(0x8383), /* 30E0 */ + MB2(0x8384), MB2(0x8385), MB2(0x8386), MB2(0x8387), + MB2(0x8388), MB2(0x8389), MB2(0x838A), MB2(0x838B), + MB2(0x838C), MB2(0x838D), MB2(0x838E), MB2(0x838F), + MB2(0x8390), MB2(0x8391), MB2(0x8392), MB2(0x8393), + MB2(0x8394), MB2(0x8395), MB2(0x8396), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8145), + MB2(0x815B), MB2(0x8152), MB2(0x8153), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x88EA), MB2(0x929A), 0x0000, MB2(0x8EB5), /* 4E00 */ + 0x0000, 0x0000, 0x0000, MB2(0x969C), + MB2(0x8FE4), MB2(0x8E4F), MB2(0x8FE3), MB2(0x89BA), + 0x0000, MB2(0x9573), MB2(0x975E), 0x0000, + MB2(0x98A0), MB2(0x894E), 0x0000, 0x0000, + MB2(0x8A8E), MB2(0x98A1), MB2(0x90A2), MB2(0x99C0), + MB2(0x8B75), MB2(0x95B8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8FE5), 0x0000, + 0x0000, MB2(0x97BC), 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, MB2(0x95C0), 0x0000, + 0x0000, 0x0000, MB2(0x98A2), 0x0000, + 0x0000, MB2(0x9286), 0x0000, 0x0000, + 0x0000, MB2(0x98A3), MB2(0x8BF8), 0x0000, + 0x0000, 0x0000, MB2(0x98A4), 0x0000, + MB2(0x8ADB), MB2(0x924F), 0x0000, MB2(0x8EE5), + MB2(0x98A5), 0x0000, 0x0000, MB2(0x98A6), + 0x0000, 0x0000, MB2(0x98A7), MB2(0x9454), /* 4E40 */ + 0x0000, MB2(0x8B76), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9456), + 0x0000, MB2(0x93E1), MB2(0x8CC1), MB2(0x9652), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE568), MB2(0x98A8), MB2(0x8FE6), + MB2(0x98A9), MB2(0x89B3), 0x0000, 0x0000, + 0x0000, MB2(0x8BE3), MB2(0x8CEE), MB2(0x96E7), + 0x0000, 0x0000, MB2(0x9BA4), 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9790), 0x0000, MB2(0x93FB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AA3), 0x0000, + MB2(0x8B54), 0x0000, MB2(0x98AA), 0x0000, /* 4E80 */ + 0x0000, MB2(0x98AB), MB2(0x97B9), 0x0000, + MB2(0x975C), MB2(0x9188), MB2(0x98AD), MB2(0x8E96), + MB2(0x93F1), 0x0000, MB2(0x98B0), 0x0000, + 0x0000, MB2(0x895D), MB2(0x8CDD), 0x0000, + MB2(0x8CDC), MB2(0x88E4), 0x0000, 0x0000, + MB2(0x986A), MB2(0x9869), 0x0000, MB2(0x8DB1), + MB2(0x889F), 0x0000, MB2(0x98B1), MB2(0x98B2), + MB2(0x98B3), MB2(0x9653), MB2(0x98B4), 0x0000, /* 4EA0 */ + MB2(0x8CF0), MB2(0x88E5), MB2(0x9692), 0x0000, + MB2(0x8B9C), 0x0000, 0x0000, MB2(0x8B9D), + MB2(0x8B9E), MB2(0x92E0), MB2(0x97BA), 0x0000, + MB2(0x98B5), 0x0000, 0x0000, MB2(0x98B6), + 0x0000, 0x0000, MB2(0x98B7), 0x0000, + 0x0000, 0x0000, MB2(0x906C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F59), MB2(0x906D), MB2(0x98BC), 0x0000, /* 4EC0 */ + MB2(0x98BA), 0x0000, MB2(0x98BB), MB2(0x8B77), + 0x0000, 0x0000, MB2(0x8DA1), MB2(0x89EE), + 0x0000, MB2(0x98B9), MB2(0x98B8), MB2(0x95A7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E65), MB2(0x8E64), MB2(0x91BC), MB2(0x98BD), + MB2(0x9574), MB2(0x90E5), 0x0000, 0x0000, + 0x0000, MB2(0x8157), MB2(0x98BE), MB2(0x98C0), + 0x0000, 0x0000, 0x0000, MB2(0x91E3), /* 4EE0 */ + MB2(0x97DF), MB2(0x88C8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98BF), MB2(0x89BC), 0x0000, + MB2(0x8BC2), 0x0000, MB2(0x9287), 0x0000, + 0x0000, 0x0000, MB2(0x8C8F), MB2(0x98C1), + 0x0000, 0x0000, 0x0000, MB2(0x9443), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8AE9), 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98C2), MB2(0x88C9), 0x0000, + 0x0000, MB2(0x8CDE), MB2(0x8AEA), MB2(0x959A), + MB2(0x94B0), MB2(0x8B78), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89EF), 0x0000, + MB2(0x98E5), MB2(0x9360), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x948C), + MB2(0x98C4), 0x0000, 0x0000, 0x0000, + MB2(0x94BA), 0x0000, MB2(0x97E0), 0x0000, + MB2(0x904C), 0x0000, MB2(0x8E66), 0x0000, + MB2(0x8E97), MB2(0x89BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92CF), /* 4F40 */ + 0x0000, 0x0000, MB2(0x9241), MB2(0x98C8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88CA), MB2(0x92E1), MB2(0x8F5A), + MB2(0x8DB2), MB2(0x9743), 0x0000, MB2(0x91CC), + 0x0000, MB2(0x89BD), 0x0000, MB2(0x98C7), + 0x0000, MB2(0x975D), MB2(0x98C3), MB2(0x98C5), + MB2(0x8DEC), MB2(0x98C6), MB2(0x9B43), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x98D1), + MB2(0x98CF), 0x0000, 0x0000, MB2(0x89C0), + 0x0000, MB2(0x95B9), MB2(0x98C9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x98CD), + MB2(0x8CF1), 0x0000, 0x0000, MB2(0x8E67), + 0x0000, 0x0000, 0x0000, MB2(0x8AA4), /* 4F80 */ + 0x0000, 0x0000, MB2(0x98D2), 0x0000, + MB2(0x98CA), 0x0000, 0x0000, MB2(0x97E1), + 0x0000, MB2(0x8E98), 0x0000, MB2(0x98CB), + 0x0000, MB2(0x98D0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x98D3), 0x0000, + MB2(0x98CC), 0x0000, 0x0000, MB2(0x8B9F), + 0x0000, MB2(0x88CB), 0x0000, 0x0000, + MB2(0x8BA0), MB2(0x89BF), 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9B44), + 0x0000, MB2(0x9699), MB2(0x958E), MB2(0x8CF2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x904E), MB2(0x97B5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95D6), + 0x0000, 0x0000, MB2(0x8C57), MB2(0x91A3), /* 4FC0 */ + MB2(0x89E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F72), 0x0000, + 0x0000, 0x0000, MB2(0x98D7), 0x0000, + MB2(0x98DC), MB2(0x98DA), 0x0000, 0x0000, + MB2(0x98D5), 0x0000, 0x0000, MB2(0x91AD), + MB2(0x98D8), 0x0000, MB2(0x98DB), MB2(0x98D9), + 0x0000, MB2(0x95DB), 0x0000, MB2(0x98D6), + 0x0000, MB2(0x904D), 0x0000, MB2(0x9693), /* 4FE0 */ + MB2(0x98DD), MB2(0x98DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F43), MB2(0x98EB), + 0x0000, 0x0000, 0x0000, MB2(0x946F), + 0x0000, MB2(0x9555), MB2(0x98E6), 0x0000, + MB2(0x95EE), 0x0000, MB2(0x89B4), 0x0000, + 0x0000, 0x0000, MB2(0x98EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, MB2(0x98E4), MB2(0x98ED), 0x0000, + 0x0000, MB2(0x9171), 0x0000, MB2(0x8CC2), + 0x0000, MB2(0x947B), 0x0000, MB2(0xE0C5), + 0x0000, MB2(0x98EC), MB2(0x937C), 0x0000, + MB2(0x98E1), 0x0000, MB2(0x8CF4), 0x0000, + 0x0000, MB2(0x8CF3), MB2(0x98DF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8ED8), + 0x0000, MB2(0x98E7), 0x0000, MB2(0x95ED), /* 5020 */ + MB2(0x926C), MB2(0x98E3), MB2(0x8C91), 0x0000, + MB2(0x98E0), MB2(0x98E8), MB2(0x98E2), MB2(0x97CF), + MB2(0x98E9), MB2(0x9860), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BE4), 0x0000, + 0x0000, MB2(0x8C90), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x98EE), /* 5040 */ + 0x0000, 0x0000, 0x0000, MB2(0x98EF), + MB2(0x98F3), MB2(0x88CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95CE), + MB2(0x98F2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x98F1), MB2(0x98F5), 0x0000, + 0x0000, 0x0000, MB2(0x98F4), 0x0000, + MB2(0x92E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, MB2(0x8C92), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x98F6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EC3), 0x0000, + MB2(0x91A4), MB2(0x92E3), MB2(0x8BF4), 0x0000, + MB2(0x98F7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8B55), 0x0000, 0x0000, + MB2(0x98F8), 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, MB2(0x98FA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9654), 0x0000, 0x0000, + 0x0000, MB2(0x8C86), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E50), MB2(0x94F5), MB2(0x98F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8DC3), MB2(0x9762), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x98FC), MB2(0x9942), + MB2(0x98FB), MB2(0x8DC2), 0x0000, MB2(0x8F9D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C58), 0x0000, + 0x0000, 0x0000, MB2(0x9943), 0x0000, /* 50C0 */ + 0x0000, MB2(0x8BCD), 0x0000, 0x0000, + 0x0000, MB2(0x9940), MB2(0x9941), 0x0000, + 0x0000, MB2(0x93AD), 0x0000, MB2(0x919C), + 0x0000, MB2(0x8BA1), 0x0000, 0x0000, + 0x0000, MB2(0x966C), MB2(0x9944), 0x0000, + 0x0000, 0x0000, MB2(0x97BB), 0x0000, + 0x0000, 0x0000, MB2(0x9945), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9948), /* 50E0 */ + 0x0000, MB2(0x9946), 0x0000, MB2(0x916D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9947), MB2(0x9949), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x994B), 0x0000, 0x0000, + 0x0000, MB2(0x994A), 0x0000, MB2(0x95C6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B56), MB2(0x994D), MB2(0x994E), 0x0000, /* 5100 */ + MB2(0x89AD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x994C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EF2), 0x0000, + MB2(0x9951), MB2(0x9950), MB2(0x994F), 0x0000, + MB2(0x98D4), 0x0000, MB2(0x9952), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F9E), + 0x0000, MB2(0x9953), 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9744), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96D7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9955), + 0x0000, 0x0000, MB2(0x9954), MB2(0x9957), + MB2(0x9956), 0x0000, 0x0000, MB2(0x9958), + MB2(0x9959), MB2(0x88F2), 0x0000, MB2(0x8CB3), /* 5140 */ + MB2(0x8C5A), MB2(0x8F5B), MB2(0x929B), MB2(0x8BA2), + MB2(0x90E6), MB2(0x8CF5), 0x0000, MB2(0x8D8E), + MB2(0x995B), MB2(0x96C6), MB2(0x9365), 0x0000, + MB2(0x8E99), 0x0000, MB2(0x995A), 0x0000, + MB2(0x995C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x937D), 0x0000, + MB2(0x8A95), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x995D), 0x0000, /* 5160 */ + 0x0000, MB2(0x93FC), 0x0000, 0x0000, + MB2(0x9153), MB2(0x995F), MB2(0x9960), MB2(0x94AA), + MB2(0x8CF6), MB2(0x985A), MB2(0x9961), 0x0000, + 0x0000, MB2(0x8BA4), 0x0000, 0x0000, + 0x0000, MB2(0x95BA), MB2(0x91B4), MB2(0x8BEF), + MB2(0x9354), 0x0000, 0x0000, 0x0000, + MB2(0x8C93), 0x0000, 0x0000, 0x0000, + MB2(0x9962), 0x0000, MB2(0x9963), 0x0000, /* 5180 */ + 0x0000, MB2(0x93E0), MB2(0x897E), 0x0000, + 0x0000, MB2(0x9966), MB2(0x8DFB), 0x0000, + MB2(0x9965), MB2(0x8DC4), 0x0000, MB2(0x9967), + MB2(0xE3EC), MB2(0x9968), MB2(0x9660), MB2(0x9969), + 0x0000, MB2(0x996A), MB2(0x996B), MB2(0x8FE7), + 0x0000, MB2(0x8ECA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AA5), 0x0000, MB2(0x996E), 0x0000, /* 51A0 */ + MB2(0x996C), MB2(0x96BB), MB2(0x996D), 0x0000, + MB2(0x9579), MB2(0x996F), MB2(0x9970), MB2(0x9971), + MB2(0x937E), 0x0000, 0x0000, 0x0000, + MB2(0x9975), MB2(0x9973), MB2(0x9974), MB2(0x9972), + MB2(0x8DE1), MB2(0x9976), MB2(0x96E8), MB2(0x97E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9977), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + MB2(0x90A6), MB2(0x9978), MB2(0x8F79), 0x0000, + 0x0000, MB2(0x9979), 0x0000, MB2(0x929C), + MB2(0x97BD), MB2(0x9380), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99C3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x997A), + MB2(0xEAA3), MB2(0x8BC3), 0x0000, 0x0000, + MB2(0x997B), MB2(0x967D), 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, MB2(0x8F88), MB2(0x91FA), + 0x0000, MB2(0x997D), MB2(0x93E2), 0x0000, + 0x0000, MB2(0x997E), 0x0000, 0x0000, + MB2(0x9980), MB2(0x8A4D), 0x0000, 0x0000, + 0x0000, MB2(0x9981), MB2(0x8BA5), 0x0000, + MB2(0x93CA), MB2(0x899A), MB2(0x8F6F), 0x0000, + 0x0000, MB2(0x949F), MB2(0x9982), 0x0000, + MB2(0x9381), 0x0000, 0x0000, MB2(0x906E), /* 5200 */ + MB2(0x9983), 0x0000, MB2(0x95AA), MB2(0x90D8), + MB2(0x8AA0), 0x0000, MB2(0x8AA7), MB2(0x9984), + 0x0000, 0x0000, MB2(0x9986), 0x0000, + 0x0000, MB2(0x8C59), 0x0000, 0x0000, + MB2(0x9985), 0x0000, 0x0000, MB2(0x97F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8F89), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + MB2(0x94BB), MB2(0x95CA), 0x0000, MB2(0x9987), + 0x0000, MB2(0x9798), MB2(0x9988), 0x0000, + 0x0000, 0x0000, MB2(0x9989), 0x0000, + MB2(0x939E), 0x0000, 0x0000, MB2(0x998A), + 0x0000, 0x0000, MB2(0x90A7), MB2(0x8DFC), + MB2(0x8C94), MB2(0x998B), MB2(0x8E68), MB2(0x8D8F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92E4), /* 5240 */ + MB2(0x998D), 0x0000, 0x0000, MB2(0x91A5), + 0x0000, 0x0000, MB2(0x8DED), MB2(0x998E), + MB2(0x998F), MB2(0x914F), 0x0000, MB2(0x998C), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9991), 0x0000, MB2(0x9655), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D84), + 0x0000, 0x0000, MB2(0x9990), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C95), /* 5260 */ + MB2(0x8DDC), MB2(0x948D), 0x0000, 0x0000, + 0x0000, MB2(0x9994), MB2(0x9992), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x959B), + MB2(0x8FE8), MB2(0x999B), MB2(0x8A84), MB2(0x9995), + MB2(0x9993), MB2(0x916E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9997), 0x0000, MB2(0x9996), + 0x0000, 0x0000, 0x0000, MB2(0x8A63), /* 5280 */ + 0x0000, 0x0000, 0x0000, MB2(0x8C80), + MB2(0x999C), MB2(0x97AB), 0x0000, 0x0000, + 0x0000, MB2(0x9998), 0x0000, 0x0000, + 0x0000, MB2(0x999D), MB2(0x999A), 0x0000, + MB2(0x9999), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97CD), + 0x0000, 0x0000, 0x0000, MB2(0x8CF7), + MB2(0x89C1), 0x0000, 0x0000, MB2(0x97F2), /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8F95), MB2(0x9377), MB2(0x8D85), + MB2(0x99A0), MB2(0x99A1), 0x0000, 0x0000, + 0x0000, MB2(0x97E3), 0x0000, 0x0000, + MB2(0x984A), MB2(0x99A3), 0x0000, 0x0000, + 0x0000, MB2(0x8CF8), 0x0000, 0x0000, + MB2(0x99A2), 0x0000, MB2(0x8A4E), 0x0000, + 0x0000, MB2(0x99A4), 0x0000, MB2(0x9675), /* 52C0 */ + 0x0000, MB2(0x92BA), 0x0000, MB2(0x9745), + 0x0000, MB2(0x95D7), 0x0000, 0x0000, + 0x0000, MB2(0x99A5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8D3), 0x0000, + 0x0000, MB2(0x93AE), 0x0000, MB2(0x99A6), + MB2(0x8AA8), MB2(0x96B1), 0x0000, 0x0000, + 0x0000, MB2(0x8F9F), MB2(0x99A7), MB2(0x95E5), + MB2(0x99AB), 0x0000, MB2(0x90A8), MB2(0x99A8), /* 52E0 */ + MB2(0x8BCE), 0x0000, MB2(0x99A9), MB2(0x8AA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C4D), MB2(0x99AC), + 0x0000, MB2(0x99AD), 0x0000, 0x0000, + MB2(0x99AE), MB2(0x99AF), MB2(0x8ED9), 0x0000, + 0x0000, 0x0000, MB2(0x8CF9), MB2(0x96DC), + 0x0000, MB2(0x96E6), MB2(0x93F5), 0x0000, /* 5300 */ + 0x0000, MB2(0x95EF), MB2(0x99B0), 0x0000, + MB2(0x99B1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x99B3), 0x0000, MB2(0x99B5), + MB2(0x99B4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x99B6), MB2(0x89BB), MB2(0x966B), + 0x0000, MB2(0x8DFA), MB2(0x99B7), 0x0000, + 0x0000, MB2(0x9178), 0x0000, 0x0000, + MB2(0x8FA0), MB2(0x8BA7), 0x0000, MB2(0x99B8), /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94D9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x99B9), + 0x0000, MB2(0x99BA), 0x0000, MB2(0x99BB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x99BC), MB2(0x9543), MB2(0x8BE6), MB2(0x88E3), + 0x0000, 0x0000, 0x0000, MB2(0x93BD), + MB2(0x99BD), MB2(0x8F5C), 0x0000, MB2(0x90E7), /* 5340 */ + 0x0000, MB2(0x99BF), MB2(0x99BE), MB2(0x8FA1), + MB2(0x8CDF), MB2(0x99C1), MB2(0x94BC), 0x0000, + 0x0000, MB2(0x99C2), 0x0000, 0x0000, + 0x0000, MB2(0x94DA), MB2(0x91B2), MB2(0x91EC), + MB2(0x8BA6), 0x0000, 0x0000, MB2(0x93EC), + MB2(0x9250), 0x0000, MB2(0x948E), 0x0000, + MB2(0x966D), 0x0000, MB2(0x99C4), 0x0000, + MB2(0x90E8), 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, MB2(0x8C54), 0x0000, + 0x0000, MB2(0x99C5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99C6), MB2(0x894B), + MB2(0x88F3), MB2(0x8AEB), 0x0000, MB2(0x91A6), + MB2(0x8B70), MB2(0x9791), 0x0000, MB2(0x99C9), + MB2(0x89B5), 0x0000, 0x0000, MB2(0x99C8), + 0x0000, 0x0000, 0x0000, MB2(0x8BA8), + 0x0000, 0x0000, MB2(0x99CA), 0x0000, /* 5380 */ + MB2(0x96EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99CB), 0x0000, + MB2(0x97D0), 0x0000, MB2(0x8CFA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CB4), + MB2(0x99CC), 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, MB2(0x99CE), MB2(0x99CD), 0x0000, + MB2(0x907E), MB2(0x8958), 0x0000, 0x0000, + 0x0000, MB2(0x897D), MB2(0x99CF), 0x0000, + MB2(0x99D0), 0x0000, 0x0000, MB2(0x8CB5), + 0x0000, 0x0000, MB2(0x99D1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B8E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8E51), MB2(0x99D2), /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9694), MB2(0x8DB3), MB2(0x8B79), MB2(0x9746), + MB2(0x916F), MB2(0x94BD), MB2(0x8EFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F66), 0x0000, MB2(0x8EE6), MB2(0x8EF3), + 0x0000, MB2(0x8F96), 0x0000, MB2(0x94BE), + 0x0000, 0x0000, 0x0000, MB2(0x99D5), + 0x0000, MB2(0x8962), MB2(0x9170), MB2(0x8CFB), /* 53E0 */ + MB2(0x8CC3), MB2(0x8BE5), 0x0000, 0x0000, + MB2(0x99D9), MB2(0x9240), MB2(0x91FC), MB2(0x8BA9), + MB2(0x8FA2), MB2(0x99DA), MB2(0x99D8), MB2(0x89C2), + MB2(0x91E4), MB2(0x8EB6), MB2(0x8E6A), MB2(0x8945), + 0x0000, 0x0000, MB2(0x8A90), MB2(0x8D86), + MB2(0x8E69), 0x0000, MB2(0x99DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x99DC), 0x0000, MB2(0x8B68), /* 5400 */ + MB2(0x8A65), 0x0000, 0x0000, 0x0000, + MB2(0x8D87), MB2(0x8B67), MB2(0x92DD), MB2(0x8944), + MB2(0x93AF), MB2(0x96BC), MB2(0x8D40), MB2(0x9799), + MB2(0x9366), MB2(0x8CFC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C4E), + 0x0000, MB2(0x99E5), 0x0000, MB2(0x8BE1), + MB2(0x9669), 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, MB2(0x94DB), 0x0000, + 0x0000, MB2(0x99E4), 0x0000, MB2(0x8ADC), + MB2(0x99DF), MB2(0x99E0), MB2(0x99E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99E3), 0x0000, + MB2(0x8B7A), MB2(0x9081), 0x0000, MB2(0x95AB), + MB2(0x99E1), MB2(0x99DD), MB2(0x8CE1), 0x0000, + MB2(0x99DE), 0x0000, MB2(0x9843), 0x0000, /* 5440 */ + 0x0000, 0x0000, MB2(0x95F0), 0x0000, + MB2(0x92E6), MB2(0x8CE0), MB2(0x8D90), 0x0000, + 0x0000, 0x0000, MB2(0x99E6), 0x0000, + 0x0000, MB2(0x93DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x99EA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EFC), 0x0000, MB2(0x8EF4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x99ED), MB2(0x99EB), 0x0000, MB2(0x96A1), + 0x0000, MB2(0x99E8), MB2(0x99F1), MB2(0x99EC), + 0x0000, 0x0000, 0x0000, MB2(0x99EF), + MB2(0x8CC4), MB2(0x96BD), 0x0000, 0x0000, + MB2(0x99F0), 0x0000, 0x0000, 0x0000, /* 5480 */ + MB2(0x99F2), 0x0000, MB2(0x99F4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8DEE), + MB2(0x9861), 0x0000, MB2(0x99E9), MB2(0x99E7), + MB2(0x99F3), 0x0000, MB2(0x99EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x99F6), 0x0000, /* 54A0 */ + MB2(0x9A42), MB2(0x99F8), 0x0000, 0x0000, + MB2(0x99FC), 0x0000, 0x0000, MB2(0x9A40), + MB2(0x99F9), 0x0000, 0x0000, MB2(0x9A5D), + 0x0000, 0x0000, MB2(0x8DE7), MB2(0x8A50), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x99F7), 0x0000, 0x0000, 0x0000, + MB2(0x9A44), MB2(0x88F4), MB2(0x9A43), 0x0000, + MB2(0x88A3), MB2(0x9569), MB2(0x9A41), 0x0000, /* 54C0 */ + MB2(0x99FA), 0x0000, 0x0000, MB2(0x99F5), + MB2(0x99FB), MB2(0x8DC6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A45), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88F5), MB2(0x9A4E), 0x0000, /* 54E0 */ + 0x0000, MB2(0x9A46), MB2(0x9A47), 0x0000, + MB2(0x8FA3), MB2(0x9689), 0x0000, 0x0000, + 0x0000, MB2(0x9A4C), MB2(0x9A4B), 0x0000, + 0x0000, 0x0000, MB2(0x934E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A4D), 0x0000, + 0x0000, MB2(0x9A4A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + MB2(0x8953), 0x0000, MB2(0x8DB4), MB2(0x904F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A48), + MB2(0x9382), 0x0000, 0x0000, 0x0000, + MB2(0x9A49), 0x0000, MB2(0x88A0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A53), MB2(0x9742), + 0x0000, MB2(0x8FA5), 0x0000, MB2(0x9A59), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A58), MB2(0x9A4F), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91C1), 0x0000, + MB2(0x9A50), 0x0000, 0x0000, 0x0000, /* 5540 */ + MB2(0x91ED), MB2(0x9A55), MB2(0x8FA4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A52), 0x0000, 0x0000, MB2(0x96E2), + 0x0000, 0x0000, 0x0000, MB2(0x8C5B), + 0x0000, 0x0000, MB2(0x9A56), MB2(0x9A57), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A54), MB2(0x9A5A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A51), /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A60), + MB2(0x9A65), 0x0000, MB2(0x9A61), 0x0000, + MB2(0x9A5C), 0x0000, 0x0000, MB2(0x9A66), /* 5580 */ + MB2(0x9150), 0x0000, 0x0000, MB2(0x9A68), + 0x0000, MB2(0x8D41), MB2(0x9A5E), MB2(0x929D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A62), MB2(0x9A5B), MB2(0x8AAB), 0x0000, + MB2(0x8AEC), MB2(0x8A85), MB2(0x9A63), MB2(0x9A5F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x8C96), + MB2(0x9A69), MB2(0x9A67), MB2(0x9172), MB2(0x8B69), + MB2(0x8BAA), 0x0000, MB2(0x9A64), 0x0000, + MB2(0x8BF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8963), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + MB2(0x9A6D), MB2(0x9A6B), 0x0000, MB2(0x9AA5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A70), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A6A), 0x0000, + MB2(0x9A6E), 0x0000, 0x0000, MB2(0x9A6C), + 0x0000, 0x0000, 0x0000, MB2(0x8E6B), /* 55E0 */ + MB2(0x9A6F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A72), + 0x0000, MB2(0x9A77), 0x0000, 0x0000, + 0x0000, MB2(0x9A75), MB2(0x9A74), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, MB2(0x9251), 0x0000, + 0x0000, MB2(0x89C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A71), 0x0000, MB2(0x9A73), MB2(0x8FA6), + MB2(0x8952), 0x0000, 0x0000, MB2(0x9A76), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x89DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A82), + 0x0000, MB2(0x8FFA), MB2(0x9A7D), 0x0000, + MB2(0x9A7B), 0x0000, MB2(0x9A7C), 0x0000, + MB2(0x9A7E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x895C), 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9158), 0x0000, MB2(0x9A78), 0x0000, + MB2(0x9A79), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8A9A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + MB2(0x9A81), 0x0000, 0x0000, 0x0000, + MB2(0x8AED), 0x0000, MB2(0x9A84), MB2(0x9A80), + MB2(0x9A83), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x95AC), 0x0000, 0x0000, 0x0000, + MB2(0x93D3), 0x0000, MB2(0x94B6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A86), 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, MB2(0x9A85), MB2(0x8A64), + 0x0000, 0x0000, MB2(0x9A87), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A8A), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A89), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A88), 0x0000, MB2(0x9458), 0x0000, /* 56A0 */ + 0x0000, MB2(0x9A8B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A8C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A8E), 0x0000, MB2(0x9A8D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A90), 0x0000, 0x0000, 0x0000, + MB2(0x9A93), MB2(0x9A91), MB2(0x9A8F), MB2(0x9A92), /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9A94), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A95), 0x0000, + 0x0000, MB2(0x9A96), 0x0000, MB2(0x9A97), + 0x0000, 0x0000, 0x0000, MB2(0x9A98), + MB2(0x9964), 0x0000, MB2(0x8EFA), MB2(0x8E6C), + 0x0000, 0x0000, MB2(0x89F1), 0x0000, + MB2(0x88F6), 0x0000, 0x0000, MB2(0x9263), /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9A99), 0x0000, + MB2(0x8DA2), 0x0000, MB2(0x88CD), MB2(0x907D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9A9A), MB2(0x8CC5), 0x0000, + 0x0000, MB2(0x8D91), 0x0000, MB2(0x9A9C), + MB2(0x9A9B), 0x0000, 0x0000, MB2(0x95DE), /* 5700 */ + MB2(0x9A9D), 0x0000, 0x0000, 0x0000, + MB2(0x9A9F), MB2(0x9A9E), 0x0000, MB2(0x9AA0), + 0x0000, MB2(0x9AA1), 0x0000, MB2(0x8C97), + 0x0000, 0x0000, MB2(0x8980), MB2(0x9AA2), + 0x0000, 0x0000, MB2(0x9AA4), 0x0000, + MB2(0x9AA3), 0x0000, 0x0000, 0x0000, + MB2(0x9AA6), 0x0000, 0x0000, MB2(0x9379), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, MB2(0x9AA7), MB2(0x88B3), + MB2(0x8DDD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C5C), 0x0000, 0x0000, + MB2(0x926E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9AA8), + MB2(0x9AA9), 0x0000, 0x0000, MB2(0x9AAB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AAC), 0x0000, MB2(0x8DE2), 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, MB2(0x8BCF), + 0x0000, 0x0000, MB2(0x9656), 0x0000, + 0x0000, 0x0000, MB2(0x9AAA), MB2(0x9AAD), + MB2(0x8DBF), MB2(0x8D42), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9AB1), 0x0000, 0x0000, /* 5760 */ + MB2(0x8DA3), 0x0000, MB2(0x9252), 0x0000, + 0x0000, MB2(0x9AAE), MB2(0x92D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9AB2), + 0x0000, 0x0000, MB2(0x9082), 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AB0), MB2(0x9AB3), 0x0000, MB2(0x8C5E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9AB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AB5), 0x0000, MB2(0x8D43), MB2(0x8A5F), /* 57A0 */ + MB2(0x9AB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AB8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AB9), 0x0000, 0x0000, MB2(0x9AB6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AAF), 0x0000, 0x0000, MB2(0x9ABA), /* 57C0 */ + 0x0000, 0x0000, MB2(0x9ABB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9684), + 0x0000, 0x0000, MB2(0x8FE9), 0x0000, + 0x0000, 0x0000, MB2(0x9ABD), MB2(0x9ABE), + MB2(0x9ABC), 0x0000, MB2(0x9AC0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9457), 0x0000, 0x0000, MB2(0x88E6), + MB2(0x9575), 0x0000, 0x0000, MB2(0x9AC1), /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FFB), 0x0000, 0x0000, MB2(0x8EB7), + 0x0000, MB2(0x947C), MB2(0x8AEE), 0x0000, + MB2(0x8DE9), 0x0000, 0x0000, 0x0000, + MB2(0x9678), 0x0000, MB2(0x93B0), 0x0000, /* 5800 */ + 0x0000, MB2(0x8C98), MB2(0x91CD), 0x0000, + 0x0000, 0x0000, MB2(0x9ABF), MB2(0x9AC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91C2), 0x0000, 0x0000, + 0x0000, MB2(0x9AC3), 0x0000, 0x0000, + 0x0000, MB2(0x9AC4), 0x0000, 0x0000, + 0x0000, MB2(0x9AC6), 0x0000, 0x0000, /* 5820 */ + MB2(0x92E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AAC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA9F), + MB2(0x8981), MB2(0x95F1), 0x0000, 0x0000, + MB2(0x8FEA), MB2(0x9367), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DE4), 0x0000, + 0x0000, MB2(0x9ACC), 0x0000, 0x0000, + MB2(0x95BB), MB2(0x97DB), 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89F2), MB2(0x9AC8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9159), MB2(0x9ACB), 0x0000, + MB2(0x9383), 0x0000, 0x0000, MB2(0x9368), + MB2(0x9384), MB2(0x94B7), MB2(0x92CB), 0x0000, + 0x0000, 0x0000, MB2(0x8DC7), 0x0000, + 0x0000, 0x0000, MB2(0x9AC7), 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8996), 0x0000, MB2(0x9355), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AC9), 0x0000, MB2(0x9AC5), 0x0000, + 0x0000, MB2(0x906F), 0x0000, 0x0000, + 0x0000, MB2(0x9ACD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F6D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8BAB), /* 5880 */ + 0x0000, MB2(0x9ACE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95E6), + 0x0000, 0x0000, 0x0000, MB2(0x919D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x92C4), 0x0000, 0x0000, MB2(0x9AD0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x966E), 0x0000, 0x0000, MB2(0x9AD1), + 0x0000, 0x0000, MB2(0x9AD6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95AD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AD5), MB2(0x9ACF), MB2(0x9AD2), MB2(0x9AD4), + 0x0000, 0x0000, MB2(0x8DA4), 0x0000, + 0x0000, MB2(0x95C7), 0x0000, 0x0000, /* 58C0 */ + 0x0000, MB2(0x9AD7), 0x0000, MB2(0x9264), + 0x0000, 0x0000, MB2(0x89F3), 0x0000, + MB2(0x8FEB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9AD9), 0x0000, MB2(0x9AD8), + 0x0000, MB2(0x8D88), 0x0000, MB2(0x9ADA), + MB2(0x9ADC), MB2(0x9ADB), 0x0000, 0x0000, + MB2(0x9ADE), 0x0000, MB2(0x9AD3), MB2(0x9AE0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + MB2(0x9ADF), MB2(0x9ADD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E6D), + MB2(0x9070), 0x0000, MB2(0x9173), MB2(0x9AE1), + MB2(0x90BA), MB2(0x88EB), MB2(0x9484), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92D9), + 0x0000, MB2(0x9AE3), MB2(0x9AE2), MB2(0x9AE4), + MB2(0x9AE5), MB2(0x9AE6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AE7), 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95CF), MB2(0x9AE8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89C4), + MB2(0x9AE9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x975B), MB2(0x8A4F), 0x0000, + MB2(0x99C7), MB2(0x8F67), MB2(0x91BD), MB2(0x9AEA), + MB2(0x96E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96B2), 0x0000, /* 5920 */ + 0x0000, MB2(0x9AEC), 0x0000, MB2(0x91E5), + 0x0000, MB2(0x9356), MB2(0x91BE), MB2(0x9576), + MB2(0x9AED), MB2(0x9AEE), MB2(0x899B), 0x0000, + 0x0000, MB2(0x8EB8), MB2(0x9AEF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88CE), + MB2(0x9AF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AF1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + MB2(0x8982), 0x0000, 0x0000, MB2(0x8AEF), + MB2(0x93DE), MB2(0x95F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9AF5), MB2(0x9174), + MB2(0x9AF4), MB2(0x8C5F), 0x0000, 0x0000, + MB2(0x967A), MB2(0x9AF3), 0x0000, MB2(0x9385), + MB2(0x9AF7), 0x0000, MB2(0x9AF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9AF9), 0x0000, MB2(0x9AF8), 0x0000, /* 5960 */ + 0x0000, MB2(0x899C), 0x0000, MB2(0x9AFA), + MB2(0x8FA7), MB2(0x9AFC), MB2(0x9244), 0x0000, + MB2(0x9AFB), 0x0000, MB2(0x95B1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F97), + MB2(0x937A), 0x0000, 0x0000, 0x0000, + MB2(0x9B40), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8D44), 0x0000, 0x0000, + 0x0000, MB2(0x9B41), MB2(0x9440), MB2(0x94DC), /* 5980 */ + MB2(0x96CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9444), 0x0000, + 0x0000, MB2(0x9B4A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B57), + 0x0000, 0x0000, MB2(0x9764), 0x0000, + 0x0000, MB2(0x96AD), 0x0000, MB2(0x9BAA), + 0x0000, MB2(0x9B42), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9B45), /* 59A0 */ + 0x0000, MB2(0x91C3), 0x0000, 0x0000, + MB2(0x9657), 0x0000, 0x0000, 0x0000, + MB2(0x9369), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B46), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9685), 0x0000, MB2(0x8DC8), + 0x0000, 0x0000, MB2(0x8FA8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, MB2(0x9B47), 0x0000, + 0x0000, MB2(0x8E6F), 0x0000, MB2(0x8E6E), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x88B7), MB2(0x8CC6), 0x0000, MB2(0x90A9), + MB2(0x88CF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B4B), MB2(0x9B4C), 0x0000, + MB2(0x9B49), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, MB2(0x8957), MB2(0x8AAD), 0x0000, + MB2(0x9B48), 0x0000, MB2(0x96C3), MB2(0x9550), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x88A6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88F7), + 0x0000, 0x0000, 0x0000, MB2(0x8E70), + 0x0000, MB2(0x88D0), 0x0000, MB2(0x88A1), /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B51), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B4F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x96BA), 0x0000, MB2(0x9B52), 0x0000, + MB2(0x9B50), 0x0000, 0x0000, MB2(0x9B4E), + MB2(0x9050), 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, MB2(0x9B4D), 0x0000, 0x0000, + 0x0000, MB2(0x95D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CE2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9B56), MB2(0x9B57), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FA9), 0x0000, 0x0000, 0x0000, + MB2(0x9B53), MB2(0x984B), 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, MB2(0x946B), 0x0000, + 0x0000, MB2(0x9B55), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B58), 0x0000, /* 5A60 */ + 0x0000, 0x0000, MB2(0x9577), 0x0000, + 0x0000, 0x0000, MB2(0x9B59), 0x0000, + MB2(0x9B54), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x96B9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x947D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B5A), MB2(0x9551), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B5B), MB2(0x9B5F), MB2(0x9B5C), 0x0000, + 0x0000, MB2(0x89C5), MB2(0x9B5E), 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EB9), 0x0000, MB2(0x9B5D), + MB2(0x8C99), 0x0000, 0x0000, 0x0000, + MB2(0x9B6B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B64), MB2(0x9B61), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9284), 0x0000, MB2(0x9B60), /* 5AE0 */ + 0x0000, 0x0000, MB2(0x9B62), 0x0000, + 0x0000, MB2(0x9B63), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B65), MB2(0x9B66), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8AF0), 0x0000, MB2(0x9B68), + MB2(0x9B67), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B69), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8FEC), 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B6C), 0x0000, + MB2(0x92DA), 0x0000, 0x0000, 0x0000, + MB2(0x8964), 0x0000, MB2(0x9B6A), 0x0000, + 0x0000, 0x0000, MB2(0x9B6D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9B6E), 0x0000, + MB2(0x9B71), 0x0000, 0x0000, MB2(0x9B6F), /* 5B40 */ + 0x0000, MB2(0x9B70), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E71), MB2(0x9B72), 0x0000, 0x0000, + MB2(0x8D45), MB2(0x9B73), 0x0000, MB2(0x8E9A), + MB2(0x91B6), 0x0000, MB2(0x9B74), MB2(0x9B75), + MB2(0x8E79), MB2(0x8D46), 0x0000, MB2(0x96D0), + 0x0000, 0x0000, 0x0000, MB2(0x8B47), /* 5B60 */ + MB2(0x8CC7), MB2(0x9B76), MB2(0x8A77), 0x0000, + 0x0000, MB2(0x9B77), 0x0000, MB2(0x91B7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B78), MB2(0x9BA1), 0x0000, MB2(0x9B79), + 0x0000, MB2(0x9B7A), 0x0000, 0x0000, + MB2(0x9B7B), 0x0000, MB2(0x9B7D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B7E), 0x0000, 0x0000, MB2(0x9B80), /* 5B80 */ + 0x0000, MB2(0x91EE), 0x0000, MB2(0x8946), + MB2(0x8EE7), MB2(0x88C0), 0x0000, MB2(0x9176), + MB2(0x8AAE), MB2(0x8EB3), 0x0000, MB2(0x8D47), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9386), 0x0000, MB2(0x8F40), + MB2(0x8AAF), MB2(0x9288), MB2(0x92E8), MB2(0x88B6), + MB2(0x8B58), MB2(0x95F3), 0x0000, MB2(0x8EC0), + 0x0000, 0x0000, MB2(0x8B71), MB2(0x90E9), /* 5BA0 */ + MB2(0x8EBA), MB2(0x9747), MB2(0x9B81), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B7B), 0x0000, + MB2(0x8DC9), 0x0000, 0x0000, MB2(0x8A51), + MB2(0x8983), MB2(0x8FAA), MB2(0x89C6), 0x0000, + MB2(0x9B82), MB2(0x9765), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F68), + 0x0000, 0x0000, MB2(0x8EE2), MB2(0x9B83), /* 5BC0 */ + MB2(0x8AF1), MB2(0x93D0), MB2(0x96A7), MB2(0x9B84), + 0x0000, MB2(0x9B85), 0x0000, 0x0000, + MB2(0x9578), 0x0000, 0x0000, 0x0000, + MB2(0x9B87), 0x0000, MB2(0x8AA6), MB2(0x8BF5), + MB2(0x9B86), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AB0), + 0x0000, MB2(0x9051), MB2(0x9B8B), MB2(0x8E40), + 0x0000, MB2(0x89C7), MB2(0x9B8A), 0x0000, /* 5BE0 */ + MB2(0x9B88), MB2(0x9B8C), MB2(0x9B89), MB2(0x944A), + MB2(0x9ECB), MB2(0x9052), 0x0000, MB2(0x9B8D), + 0x0000, 0x0000, MB2(0x97BE), 0x0000, + MB2(0x9B8E), 0x0000, 0x0000, MB2(0x9B90), + 0x0000, MB2(0x929E), MB2(0x9B8F), 0x0000, + MB2(0x90A1), 0x0000, MB2(0x8E9B), 0x0000, + 0x0000, 0x0000, MB2(0x91CE), MB2(0x8EF5), + 0x0000, MB2(0x9595), MB2(0x90EA), 0x0000, /* 5C00 */ + MB2(0x8ECB), MB2(0x9B91), MB2(0x8FAB), MB2(0x9B92), + MB2(0x9B93), MB2(0x88D1), MB2(0x91B8), MB2(0x9071), + 0x0000, MB2(0x9B94), MB2(0x93B1), MB2(0x8FAC), + 0x0000, MB2(0x8FAD), 0x0000, MB2(0x9B95), + 0x0000, 0x0000, MB2(0x90EB), 0x0000, + 0x0000, 0x0000, MB2(0x8FAE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B96), 0x0000, MB2(0x9B97), 0x0000, /* 5C20 */ + MB2(0x96DE), 0x0000, 0x0000, 0x0000, + MB2(0x9B98), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8BC4), 0x0000, 0x0000, + 0x0000, MB2(0x8F41), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9B99), MB2(0x9B9A), MB2(0x8EDA), MB2(0x904B), + MB2(0x93F2), MB2(0x9073), MB2(0x94F6), MB2(0x9441), + MB2(0x8BC7), MB2(0x9B9B), 0x0000, 0x0000, /* 5C40 */ + 0x0000, MB2(0x8B8F), MB2(0x9B9C), 0x0000, + MB2(0x8BFC), 0x0000, MB2(0x93CD), MB2(0x89AE), + 0x0000, MB2(0x8E72), MB2(0x9B9D), MB2(0x9BA0), + MB2(0x9B9F), MB2(0x8BFB), 0x0000, MB2(0x9B9E), + 0x0000, MB2(0x9357), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91AE), 0x0000, + MB2(0x936A), MB2(0x8EC6), 0x0000, 0x0000, /* 5C60 */ + MB2(0x9177), MB2(0x979A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BA2), 0x0000, MB2(0x9BA3), MB2(0x93D4), + 0x0000, MB2(0x8E52), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BA5), 0x0000, + 0x0000, MB2(0x9BA6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BA7), 0x0000, 0x0000, 0x0000, + MB2(0x8AF2), MB2(0x9BA8), 0x0000, 0x0000, + MB2(0x9BA9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x89AA), 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x915A), MB2(0x8AE2), 0x0000, MB2(0x9BAB), + MB2(0x96A6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91D0), 0x0000, MB2(0x8A78), + 0x0000, 0x0000, MB2(0x9BAD), MB2(0x9BAF), + MB2(0x8ADD), 0x0000, 0x0000, MB2(0x9BAC), + MB2(0x9BAE), 0x0000, MB2(0x9BB1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, MB2(0x9BB0), 0x0000, MB2(0x9BB2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BB3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x93BB), MB2(0x8BAC), 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x89E3), MB2(0x9BB4), MB2(0x9BB9), 0x0000, + 0x0000, MB2(0x9BB7), 0x0000, MB2(0x95F5), + MB2(0x95F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9387), 0x0000, + 0x0000, 0x0000, MB2(0x9BB6), MB2(0x8F73), + 0x0000, MB2(0x9BB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, MB2(0x9092), + 0x0000, 0x0000, 0x0000, MB2(0x9BBA), + 0x0000, 0x0000, MB2(0x8DE8), 0x0000, + 0x0000, MB2(0x9BC0), 0x0000, 0x0000, + MB2(0x9BC1), MB2(0x9BBB), MB2(0x8A52), MB2(0x9BBC), + MB2(0x9BC5), MB2(0x9BC4), MB2(0x9BC3), MB2(0x9BBF), + 0x0000, 0x0000, 0x0000, MB2(0x9BBE), + 0x0000, 0x0000, MB2(0x9BC2), 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BC9), + MB2(0x9BC6), 0x0000, MB2(0x9BC8), 0x0000, + MB2(0x9792), 0x0000, MB2(0x9BC7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BBD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9093), 0x0000, 0x0000, + MB2(0x9BCA), 0x0000, 0x0000, MB2(0x8DB5), + 0x0000, 0x0000, 0x0000, MB2(0x9BCB), + 0x0000, 0x0000, MB2(0x9BCC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BCF), 0x0000, /* 5D80 */ + MB2(0x9BCE), 0x0000, 0x0000, MB2(0x9BCD), + 0x0000, 0x0000, 0x0000, MB2(0x9388), + MB2(0x9BB8), 0x0000, 0x0000, 0x0000, + MB2(0x9BD5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BD1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BD0), 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BD2), 0x0000, MB2(0x9BD3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BD6), + 0x0000, 0x0000, MB2(0x97E4), 0x0000, + MB2(0x9BD7), MB2(0x9BD4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BD8), 0x0000, 0x0000, + MB2(0x8ADE), MB2(0x9BD9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9BDB), MB2(0x9BDA), + 0x0000, 0x0000, MB2(0x9BDC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BDD), + 0x0000, MB2(0x90EC), MB2(0x8F42), 0x0000, + 0x0000, MB2(0x8F84), 0x0000, MB2(0x9183), /* 5DE0 */ + 0x0000, MB2(0x8D48), MB2(0x8DB6), MB2(0x8D49), + MB2(0x8B90), 0x0000, 0x0000, MB2(0x9BDE), + 0x0000, 0x0000, MB2(0x8DB7), 0x0000, + 0x0000, MB2(0x8CC8), MB2(0x9BDF), MB2(0x96A4), + MB2(0x9462), MB2(0x9BE0), 0x0000, MB2(0x8D4A), + 0x0000, 0x0000, 0x0000, MB2(0x8AAA), + 0x0000, MB2(0x9246), MB2(0x8BD0), 0x0000, + 0x0000, 0x0000, MB2(0x8E73), MB2(0x957A), /* 5E00 */ + 0x0000, 0x0000, MB2(0x94BF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BE1), + MB2(0x8AF3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BE4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x929F), 0x0000, + 0x0000, MB2(0x9BE3), MB2(0x9BE2), MB2(0x9BE5), + 0x0000, MB2(0x92E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, MB2(0x9083), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E74), + 0x0000, MB2(0x90C8), 0x0000, MB2(0x91D1), + MB2(0x8B41), 0x0000, 0x0000, MB2(0x92A0), + 0x0000, 0x0000, MB2(0x9BE6), MB2(0x9BE7), + MB2(0x8FED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9658), 0x0000, 0x0000, + MB2(0x9BEA), 0x0000, 0x0000, MB2(0x9BE9), /* 5E40 */ + MB2(0x9BE8), MB2(0x959D), 0x0000, MB2(0x9BF1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9679), 0x0000, MB2(0x9BEB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BED), MB2(0x968B), 0x0000, MB2(0x9BEC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BEE), + 0x0000, MB2(0x94A6), MB2(0x9BEF), MB2(0x95BC), /* 5E60 */ + MB2(0x9BF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AB1), MB2(0x95BD), + MB2(0x944E), MB2(0x9BF2), MB2(0x9BF3), 0x0000, + MB2(0x8D4B), MB2(0x8AB2), MB2(0x9BF4), MB2(0x8CB6), + MB2(0x9763), MB2(0x9748), MB2(0x8AF4), MB2(0x9BF6), + 0x0000, MB2(0x92A1), 0x0000, MB2(0x8D4C), /* 5E80 */ + MB2(0x8FAF), 0x0000, 0x0000, MB2(0x94DD), + 0x0000, 0x0000, MB2(0x8FB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F98), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x92EA), MB2(0x95F7), MB2(0x9358), + 0x0000, 0x0000, MB2(0x8D4D), 0x0000, + MB2(0x957B), 0x0000, 0x0000, 0x0000, + MB2(0x9BF7), 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, MB2(0x9378), MB2(0x8DC0), + 0x0000, 0x0000, 0x0000, MB2(0x8CC9), + 0x0000, MB2(0x92EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88C1), MB2(0x8F8E), MB2(0x8D4E), + MB2(0x9766), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9BF8), MB2(0x9BF9), MB2(0x9470), /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9BFA), MB2(0x97F5), MB2(0x984C), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9BFC), + MB2(0x9BFB), 0x0000, 0x0000, MB2(0x8A66), + 0x0000, 0x0000, MB2(0x9C40), 0x0000, + 0x0000, 0x0000, MB2(0x9C43), MB2(0x9C44), + 0x0000, MB2(0x9C42), 0x0000, MB2(0x955F), + MB2(0x8FB1), MB2(0x9C46), MB2(0x9C45), MB2(0x9C41), /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9C47), MB2(0x9C48), 0x0000, 0x0000, + MB2(0x9C49), 0x0000, 0x0000, 0x0000, + MB2(0x9C4C), MB2(0x9C4A), 0x0000, MB2(0x9C4B), + MB2(0x9C4D), 0x0000, MB2(0x8984), MB2(0x92EC), + MB2(0x9C4E), 0x0000, MB2(0x8C9A), MB2(0x89F4), + MB2(0x9455), 0x0000, MB2(0x9C4F), MB2(0x93F9), + 0x0000, MB2(0x95D9), 0x0000, MB2(0x9C50), /* 5F00 */ + MB2(0x984D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9C51), MB2(0x95BE), MB2(0x9C54), + MB2(0x989F), MB2(0x98AF), 0x0000, MB2(0x8EAE), + MB2(0x93F3), MB2(0x9C55), 0x0000, MB2(0x8B7C), + MB2(0x92A2), MB2(0x88F8), MB2(0x9C56), MB2(0x95A4), + MB2(0x8D4F), 0x0000, 0x0000, MB2(0x926F), + 0x0000, 0x0000, 0x0000, MB2(0x92ED), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, MB2(0x96ED), MB2(0x8CB7), MB2(0x8CCA), + 0x0000, MB2(0x9C57), 0x0000, 0x0000, + 0x0000, MB2(0x9C58), 0x0000, MB2(0x9C5E), + 0x0000, MB2(0x8EE3), 0x0000, 0x0000, + 0x0000, MB2(0x92A3), 0x0000, MB2(0x8BAD), + MB2(0x9C59), 0x0000, 0x0000, 0x0000, + MB2(0x954A), 0x0000, MB2(0x9265), 0x0000, + 0x0000, MB2(0x9C5A), 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9C5B), 0x0000, MB2(0x8BAE), 0x0000, + MB2(0x9C5C), 0x0000, MB2(0x9C5D), 0x0000, + 0x0000, MB2(0x9C5F), 0x0000, MB2(0x9396), + 0x0000, 0x0000, MB2(0x9C60), MB2(0x9C61), + 0x0000, MB2(0x9C62), 0x0000, 0x0000, + MB2(0x9C53), MB2(0x9C52), 0x0000, 0x0000, + 0x0000, MB2(0x9C63), MB2(0x8C60), 0x0000, /* 5F60 */ + 0x0000, 0x0000, MB2(0x9546), 0x0000, + 0x0000, MB2(0x8DCA), MB2(0x9556), MB2(0x92A4), + MB2(0x956A), MB2(0x9C64), 0x0000, 0x0000, + MB2(0x8FB2), MB2(0x8965), 0x0000, MB2(0x9C65), + 0x0000, 0x0000, 0x0000, MB2(0x9C66), + 0x0000, MB2(0x96F0), 0x0000, 0x0000, + MB2(0x94DE), 0x0000, 0x0000, MB2(0x9C69), + MB2(0x899D), MB2(0x90AA), MB2(0x9C68), MB2(0x9C67), /* 5F80 */ + MB2(0x8C61), MB2(0x91D2), 0x0000, MB2(0x9C6D), + MB2(0x9C6B), 0x0000, MB2(0x9C6A), MB2(0x97A5), + MB2(0x8CE3), 0x0000, 0x0000, 0x0000, + MB2(0x8F99), MB2(0x9C6C), MB2(0x936B), MB2(0x8F5D), + 0x0000, 0x0000, 0x0000, MB2(0x93BE), + MB2(0x9C70), MB2(0x9C6F), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C6E), 0x0000, + MB2(0x9C71), MB2(0x8CE4), 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9C72), MB2(0x959C), MB2(0x8F7A), 0x0000, + 0x0000, MB2(0x9C73), MB2(0x94F7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93BF), + MB2(0x92A5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x934F), 0x0000, 0x0000, + MB2(0x9C74), MB2(0x8B4A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9053), /* 5FC0 */ + 0x0000, MB2(0x954B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AF5), MB2(0x9445), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C75), MB2(0x8E75), + MB2(0x9659), MB2(0x965A), 0x0000, 0x0000, + MB2(0x899E), MB2(0x9C7A), 0x0000, 0x0000, + MB2(0x9289), 0x0000, 0x0000, 0x0000, /* 5FE0 */ + MB2(0x9C77), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89F5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CAB), MB2(0x9C79), 0x0000, 0x0000, + 0x0000, MB2(0x944F), 0x0000, 0x0000, + MB2(0x9C78), 0x0000, 0x0000, MB2(0x9C76), + 0x0000, MB2(0x8D9A), 0x0000, MB2(0x9C7C), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C83), MB2(0x9C89), + MB2(0x9C81), 0x0000, MB2(0x937B), 0x0000, + 0x0000, MB2(0x9C86), MB2(0x957C), 0x0000, + 0x0000, MB2(0x9C80), 0x0000, MB2(0x9C85), + MB2(0x97E5), MB2(0x8E76), 0x0000, 0x0000, + MB2(0x91D3), MB2(0x9C7D), 0x0000, 0x0000, /* 6020 */ + 0x0000, MB2(0x8B7D), MB2(0x9C88), MB2(0x90AB), + MB2(0x8985), MB2(0x9C82), MB2(0x89F6), MB2(0x9C87), + 0x0000, 0x0000, 0x0000, MB2(0x8BAF), + 0x0000, MB2(0x9C84), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9C8A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9C8C), MB2(0x9C96), MB2(0x9C94), /* 6040 */ + 0x0000, 0x0000, MB2(0x9C91), 0x0000, + 0x0000, 0x0000, MB2(0x9C90), MB2(0x97F6), + 0x0000, MB2(0x9C92), 0x0000, 0x0000, + MB2(0x8BB0), 0x0000, MB2(0x8D50), 0x0000, + 0x0000, MB2(0x8F9A), 0x0000, 0x0000, + 0x0000, MB2(0x9C99), MB2(0x9C8B), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9C8F), + MB2(0x9C7E), 0x0000, MB2(0x89F8), MB2(0x9C93), /* 6060 */ + MB2(0x9C95), MB2(0x9270), 0x0000, 0x0000, + MB2(0x8DA6), MB2(0x89B6), MB2(0x9C8D), MB2(0x9C98), + MB2(0x9C97), MB2(0x8BB1), 0x0000, MB2(0x91A7), + MB2(0x8A86), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C62), 0x0000, MB2(0x9C8E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9C9A), 0x0000, MB2(0x9C9D), /* 6080 */ + MB2(0x9C9F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EBB), 0x0000, MB2(0x9CA5), + MB2(0x92EE), MB2(0x9C9B), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9CA3), 0x0000, + MB2(0x89F7), 0x0000, MB2(0x9CA1), MB2(0x9CA2), + 0x0000, 0x0000, MB2(0x9C9E), MB2(0x9CA0), + 0x0000, 0x0000, 0x0000, MB2(0x8CE5), + MB2(0x9749), 0x0000, 0x0000, MB2(0x8AB3), /* 60A0 */ + 0x0000, 0x0000, MB2(0x8978), MB2(0x9CA4), + 0x0000, MB2(0x9459), MB2(0x88AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94DF), MB2(0x9C7B), + MB2(0x9CAA), MB2(0x9CAE), MB2(0x96E3), 0x0000, + MB2(0x9CA7), 0x0000, 0x0000, 0x0000, + MB2(0x9389), MB2(0x9CAC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, MB2(0x8FEE), MB2(0x9CAD), MB2(0x93D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9866), 0x0000, MB2(0x9CA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CAF), 0x0000, MB2(0x8D9B), 0x0000, + MB2(0x90C9), 0x0000, 0x0000, MB2(0x88D2), + MB2(0x9CA8), MB2(0x9CA6), 0x0000, MB2(0x9179), /* 60E0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9C9C), + MB2(0x8E53), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91C4), MB2(0x9CBB), 0x0000, MB2(0x917A), + MB2(0x9CB6), 0x0000, MB2(0x9CB3), MB2(0x9CB4), + 0x0000, MB2(0x8EE4), MB2(0x9CB7), MB2(0x9CBA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CB5), MB2(0x8F44), 0x0000, MB2(0x9CB8), /* 6100 */ + 0x0000, 0x0000, MB2(0x9CB2), 0x0000, + MB2(0x96FA), MB2(0x96F9), 0x0000, 0x0000, + 0x0000, MB2(0x9CBC), MB2(0x9CBD), MB2(0x88D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9CB1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BF0), MB2(0x88A4), + 0x0000, 0x0000, 0x0000, MB2(0x8AB4), + 0x0000, MB2(0x9CB9), 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, MB2(0x9CC1), + MB2(0x9CC0), 0x0000, 0x0000, 0x0000, + MB2(0x9CC5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CC6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CC4), MB2(0x9CC7), MB2(0x9CBF), MB2(0x9CC3), + 0x0000, 0x0000, MB2(0x9CC8), 0x0000, /* 6140 */ + MB2(0x9CC9), 0x0000, 0x0000, MB2(0x9CBE), + MB2(0x8E9C), 0x0000, MB2(0x9CC2), MB2(0x91D4), + MB2(0x8D51), MB2(0x9CB0), MB2(0x9054), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9CD6), + 0x0000, MB2(0x95E7), 0x0000, 0x0000, + MB2(0x9CCC), MB2(0x9CCD), MB2(0x9CCE), 0x0000, + 0x0000, MB2(0x9CD5), 0x0000, MB2(0x9CD4), + 0x0000, 0x0000, MB2(0x969D), MB2(0x8AB5), /* 6160 */ + 0x0000, MB2(0x9CD2), 0x0000, MB2(0x8C64), + MB2(0x8A53), 0x0000, 0x0000, MB2(0x9CCF), + 0x0000, 0x0000, MB2(0x97B6), MB2(0x9CD1), + MB2(0x88D4), MB2(0x9CD3), 0x0000, MB2(0x9CCA), + MB2(0x9CD0), MB2(0x9CD7), MB2(0x8C63), MB2(0x9CCB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x977C), 0x0000, + 0x0000, 0x0000, MB2(0x974A), 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, MB2(0x9CDA), + 0x0000, 0x0000, MB2(0x9CDE), 0x0000, + 0x0000, 0x0000, MB2(0x919E), 0x0000, + MB2(0x97F7), MB2(0x9CDF), 0x0000, 0x0000, + MB2(0x9CDC), 0x0000, MB2(0x9CD9), 0x0000, + 0x0000, MB2(0x9CD8), MB2(0x9CDD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + MB2(0x95AE), 0x0000, 0x0000, MB2(0x93B2), + 0x0000, MB2(0x8C65), 0x0000, MB2(0x9CE0), + MB2(0x9CDB), 0x0000, MB2(0x9CE1), 0x0000, + 0x0000, 0x0000, MB2(0x8C9B), 0x0000, + 0x0000, 0x0000, MB2(0x89AF), 0x0000, + 0x0000, 0x0000, MB2(0x9CE9), 0x0000, + 0x0000, 0x0000, MB2(0x8AB6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9CE7), /* 61C0 */ + 0x0000, 0x0000, MB2(0x9CE8), MB2(0x8DA7), + MB2(0x9CE6), MB2(0x9CE4), MB2(0x9CE3), MB2(0x9CEA), + MB2(0x9CE2), MB2(0x9CEC), 0x0000, 0x0000, + MB2(0x89F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9CEE), /* 61E0 */ + 0x0000, 0x0000, MB2(0x9CED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92A6), 0x0000, + MB2(0x9CF1), 0x0000, MB2(0x9CEF), MB2(0x9CE5), + MB2(0x8C9C), 0x0000, MB2(0x9CF0), 0x0000, + MB2(0x9CF4), MB2(0x9CF3), MB2(0x9CF5), MB2(0x9CF2), + MB2(0x9CF6), 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9CF7), MB2(0x9CF8), MB2(0x95E8), 0x0000, + MB2(0x9CFA), MB2(0x9CF9), MB2(0x8F5E), 0x0000, + MB2(0x90AC), MB2(0x89E4), MB2(0x89FA), 0x0000, + MB2(0x9CFB), 0x0000, MB2(0x88BD), 0x0000, + 0x0000, 0x0000, MB2(0x90CA), MB2(0x9CFC), + 0x0000, MB2(0xE6C1), MB2(0x9D40), MB2(0x8C81), + 0x0000, MB2(0x9D41), 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, MB2(0x90ED), 0x0000, + 0x0000, 0x0000, MB2(0x9D42), 0x0000, + 0x0000, 0x0000, MB2(0x9D43), MB2(0x8B59), + MB2(0x9D44), 0x0000, MB2(0x9D45), MB2(0x9D46), + MB2(0x91D5), 0x0000, 0x0000, 0x0000, + MB2(0x8CCB), 0x0000, 0x0000, MB2(0x96DF), + 0x0000, 0x0000, 0x0000, MB2(0x965B), + MB2(0x8F8A), MB2(0x9D47), 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, MB2(0x90EE), + MB2(0xE7BB), MB2(0x94E0), 0x0000, MB2(0x8EE8), + 0x0000, MB2(0x8DCB), MB2(0x9D48), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91C5), + 0x0000, MB2(0x95A5), 0x0000, 0x0000, + MB2(0x91EF), 0x0000, 0x0000, MB2(0x9D4B), + 0x0000, 0x0000, MB2(0x9D49), 0x0000, + MB2(0x9D4C), 0x0000, 0x0000, MB2(0x9D4A), /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D4D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x95AF), 0x0000, + 0x0000, MB2(0x88B5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x957D), 0x0000, + 0x0000, MB2(0x94E1), 0x0000, 0x0000, + MB2(0x9D4E), 0x0000, MB2(0x9D51), MB2(0x8FB3), + MB2(0x8B5A), 0x0000, MB2(0x9D4F), MB2(0x9D56), /* 6280 */ + MB2(0x8FB4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9D50), MB2(0x9463), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x977D), MB2(0x9D52), MB2(0x9D53), + MB2(0x9D57), MB2(0x938A), MB2(0x9D54), MB2(0x8D52), + MB2(0x90DC), 0x0000, 0x0000, MB2(0x9D65), + MB2(0x94B2), 0x0000, MB2(0x91F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94E2), + MB2(0x9DAB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95F8), 0x0000, 0x0000, + 0x0000, MB2(0x92EF), 0x0000, 0x0000, + 0x0000, MB2(0x9695), 0x0000, MB2(0x9D5A), + MB2(0x899F), MB2(0x928A), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D63), 0x0000, /* 62C0 */ + 0x0000, MB2(0x9253), MB2(0x9D5D), MB2(0x9D64), + MB2(0x9D5F), MB2(0x9D66), MB2(0x9D62), 0x0000, + MB2(0x9D61), MB2(0x948F), 0x0000, MB2(0x9D5B), + MB2(0x89FB), MB2(0x9D59), MB2(0x8B91), MB2(0x91F1), + MB2(0x9D55), 0x0000, 0x0000, MB2(0x9D58), + MB2(0x8D53), MB2(0x90D9), 0x0000, MB2(0x8FB5), + MB2(0x9D60), MB2(0x9471), 0x0000, 0x0000, + MB2(0x8B92), MB2(0x8A67), 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A87), MB2(0x9040), MB2(0x9D68), MB2(0x9D6D), + 0x0000, MB2(0x9D69), 0x0000, MB2(0x8C9D), + 0x0000, MB2(0x9D6E), MB2(0x8E41), MB2(0x8D89), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F45), MB2(0x9D5C), + 0x0000, MB2(0x8E9D), MB2(0x9D6B), 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, MB2(0x8E77), + MB2(0x9D6C), MB2(0x88C2), 0x0000, 0x0000, + MB2(0x9D67), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x92A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8B93), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8BB2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, MB2(0x9D6A), + MB2(0x88A5), 0x0000, 0x0000, MB2(0x8DC1), + 0x0000, 0x0000, 0x0000, MB2(0x9055), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92F0), 0x0000, + 0x0000, MB2(0x94D2), MB2(0x9D70), MB2(0x917D), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91A8), 0x0000, 0x0000, + MB2(0x8E4A), MB2(0x9D71), 0x0000, MB2(0x9D73), + MB2(0x9D6F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95DF), 0x0000, MB2(0x92BB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x917B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, MB2(0x95F9), + MB2(0x8ECC), MB2(0x9D80), 0x0000, MB2(0x9D7E), + 0x0000, 0x0000, MB2(0x9098), 0x0000, + 0x0000, 0x0000, MB2(0x8C9E), 0x0000, + 0x0000, 0x0000, MB2(0x9D78), MB2(0x8FB7), + 0x0000, 0x0000, MB2(0x93E6), MB2(0x9450), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D76), 0x0000, 0x0000, MB2(0x917C), /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EF6), MB2(0x9D7B), 0x0000, 0x0000, + MB2(0x8FB6), 0x0000, MB2(0x9D75), MB2(0x9D7A), + 0x0000, 0x0000, MB2(0x9472), 0x0000, + 0x0000, 0x0000, MB2(0x9D74), 0x0000, + MB2(0x8C40), 0x0000, 0x0000, MB2(0x8A7C), + 0x0000, 0x0000, 0x0000, MB2(0x9D7C), + MB2(0x97A9), MB2(0x8DCC), MB2(0x9254), MB2(0x9D79), /* 63A0 */ + 0x0000, MB2(0x90DA), 0x0000, MB2(0x8D54), + MB2(0x9084), MB2(0x8986), MB2(0x915B), MB2(0x9D77), + MB2(0x8B64), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C66), 0x0000, + MB2(0x92CD), MB2(0x9D7D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x917E), + 0x0000, 0x0000, MB2(0x9D81), 0x0000, + MB2(0x9D83), 0x0000, 0x0000, MB2(0x91B5), /* 63C0 */ + MB2(0x9D89), 0x0000, MB2(0x9D84), 0x0000, + 0x0000, MB2(0x9D86), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9560), + MB2(0x92F1), 0x0000, MB2(0x9D87), 0x0000, + 0x0000, 0x0000, MB2(0x974B), 0x0000, + 0x0000, 0x0000, MB2(0x9767), MB2(0x8AB7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88AC), 0x0000, MB2(0x9D85), /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9D82), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8AF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8987), 0x0000, MB2(0x9D88), 0x0000, + 0x0000, 0x0000, MB2(0x9768), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, MB2(0x9D8C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91B9), 0x0000, MB2(0x9D93), + 0x0000, 0x0000, 0x0000, MB2(0x9D8D), + 0x0000, 0x0000, MB2(0x9D8A), MB2(0x9D91), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D72), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, MB2(0x9D8E), 0x0000, + MB2(0x9D92), 0x0000, 0x0000, 0x0000, + MB2(0x94C0), MB2(0x938B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D8B), 0x0000, MB2(0x9D8F), 0x0000, + 0x0000, 0x0000, MB2(0x8C67), 0x0000, + 0x0000, 0x0000, MB2(0x8DEF), 0x0000, + 0x0000, 0x0000, MB2(0x90DB), 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D97), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9345), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, MB2(0x9D94), + 0x0000, MB2(0x9680), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9D95), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D96), 0x0000, + MB2(0x96CC), 0x0000, MB2(0x90A0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C82), /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9D9D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8E54), MB2(0x9D9A), + 0x0000, MB2(0x9D99), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9451), 0x0000, + 0x0000, 0x0000, MB2(0x93B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + MB2(0x9350), MB2(0x9D9B), 0x0000, 0x0000, + 0x0000, MB2(0x9D9C), 0x0000, MB2(0x958F), + 0x0000, MB2(0x9464), MB2(0x8E42), 0x0000, + MB2(0x90EF), 0x0000, MB2(0x966F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A68), 0x0000, MB2(0x9DA3), + MB2(0x9D9E), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9769), MB2(0x9DA5), 0x0000, /* 64C0 */ + 0x0000, MB2(0x9DA1), 0x0000, MB2(0x9DA2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9180), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DA0), 0x0000, + MB2(0x9D5E), 0x0000, 0x0000, 0x0000, + MB2(0x9DA4), 0x0000, MB2(0x9D9F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DA9), MB2(0x9DAA), MB2(0x9346), MB2(0x9DAC), /* 64E0 */ + 0x0000, 0x0000, MB2(0x8E43), MB2(0x9DA7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B5B), 0x0000, 0x0000, MB2(0x9DAD), + 0x0000, MB2(0x9DA6), MB2(0x9DB1), 0x0000, + MB2(0x9DB0), 0x0000, MB2(0x9DAF), 0x0000, + 0x0000, 0x0000, MB2(0x9DB2), 0x0000, + 0x0000, MB2(0x9DB4), MB2(0x8FEF), 0x0000, + MB2(0x9DB3), 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, MB2(0x9DB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DB5), 0x0000, 0x0000, 0x0000, + MB2(0x9DB6), MB2(0x9D90), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9DB9), /* 6520 */ + MB2(0x9DB8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9D98), MB2(0x9DBA), + MB2(0x9DAE), 0x0000, 0x0000, MB2(0x8E78), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DBB), MB2(0x9DBC), MB2(0x9DBE), MB2(0x9DBD), + MB2(0x9DBF), MB2(0x89FC), 0x0000, MB2(0x8D55), + 0x0000, 0x0000, MB2(0x95FA), MB2(0x90AD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, MB2(0x8CCC), 0x0000, 0x0000, + MB2(0x9DC1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9DC4), 0x0000, MB2(0x9571), + 0x0000, MB2(0x8B7E), 0x0000, 0x0000, + 0x0000, MB2(0x9DC3), MB2(0x9DC2), MB2(0x9473), + MB2(0x9DC5), MB2(0x8BB3), 0x0000, 0x0000, + 0x0000, MB2(0x9DC7), MB2(0x9DC6), 0x0000, + 0x0000, 0x0000, MB2(0x8AB8), MB2(0x8E55), /* 6560 */ + 0x0000, 0x0000, MB2(0x93D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C68), 0x0000, 0x0000, 0x0000, + MB2(0x9094), 0x0000, MB2(0x9DC8), 0x0000, + MB2(0x90AE), MB2(0x9347), 0x0000, MB2(0x957E), + MB2(0x9DC9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DCA), MB2(0x9DCB), /* 6580 */ + 0x0000, 0x0000, 0x0000, MB2(0x95B6), + MB2(0x9B7C), MB2(0x90C4), 0x0000, 0x0000, + MB2(0x956B), 0x0000, MB2(0x8DD6), 0x0000, + MB2(0x94E3), MB2(0x94C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x936C), + 0x0000, MB2(0x97BF), 0x0000, MB2(0x9DCD), + MB2(0x8ECE), 0x0000, 0x0000, MB2(0x9DCE), + 0x0000, MB2(0x88B4), 0x0000, 0x0000, /* 65A0 */ + MB2(0x8BD2), MB2(0x90CB), 0x0000, MB2(0x9580), + 0x0000, 0x0000, 0x0000, MB2(0x9DCF), + MB2(0x8E61), MB2(0x9266), 0x0000, MB2(0x8E7A), + MB2(0x9056), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9DD0), + 0x0000, MB2(0x95FB), 0x0000, 0x0000, + MB2(0x8997), MB2(0x8E7B), 0x0000, 0x0000, + 0x0000, MB2(0x9DD3), 0x0000, MB2(0x9DD1), /* 65C0 */ + MB2(0x9DD4), MB2(0x97B7), MB2(0x9DD2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90F9), + MB2(0x9DD5), 0x0000, 0x0000, MB2(0x91B0), + 0x0000, 0x0000, MB2(0x9DD6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AF8), + 0x0000, MB2(0x9DD8), 0x0000, MB2(0x9DD7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DD9), MB2(0x9DDA), MB2(0x8AF9), 0x0000, /* 65E0 */ + 0x0000, MB2(0x93FA), MB2(0x9255), MB2(0x8B8C), + MB2(0x8E7C), MB2(0x9181), 0x0000, 0x0000, + MB2(0x8F7B), MB2(0x88AE), 0x0000, 0x0000, + 0x0000, MB2(0x9DDB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89A0), MB2(0x9DDF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8D56), MB2(0x9DDE), /* 6600 */ + 0x0000, 0x0000, MB2(0x8DA9), MB2(0x8FB8), + 0x0000, 0x0000, MB2(0x9DDD), 0x0000, + MB2(0x8FB9), 0x0000, MB2(0x96BE), MB2(0x8DA8), + 0x0000, 0x0000, 0x0000, MB2(0x88D5), + MB2(0x90CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DE4), 0x0000, 0x0000, MB2(0x90AF), + MB2(0x8966), 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, MB2(0x8F74), 0x0000, MB2(0x9686), + MB2(0x8DF0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FBA), 0x0000, MB2(0x90A5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9DE3), MB2(0x9DE1), MB2(0x9DE2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x928B), 0x0000, 0x0000, MB2(0x9E45), + 0x0000, MB2(0x9DE8), MB2(0x8E9E), MB2(0x8D57), /* 6640 */ + MB2(0x9DE6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9DE7), 0x0000, MB2(0x9057), + 0x0000, 0x0000, 0x0000, MB2(0x9DE5), + 0x0000, 0x0000, MB2(0x8E4E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9DEA), MB2(0x9DE9), MB2(0x9DEE), + 0x0000, 0x0000, MB2(0x9DEF), 0x0000, /* 6660 */ + MB2(0x9DEB), 0x0000, MB2(0x8A41), MB2(0x9DEC), + MB2(0x9DED), MB2(0x94D3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9581), MB2(0x8C69), + MB2(0x9DF0), 0x0000, 0x0000, 0x0000, + MB2(0x90B0), 0x0000, MB2(0x8FBB), 0x0000, + 0x0000, 0x0000, MB2(0x9271), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8BC5), 0x0000, MB2(0x9DF1), /* 6680 */ + MB2(0x9DF5), 0x0000, 0x0000, MB2(0x89C9), + MB2(0x9DF2), MB2(0x9DF4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DF3), 0x0000, + 0x0000, MB2(0x8F8B), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9267), MB2(0x88C3), + MB2(0x9DF6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9DF7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92A8), 0x0000, /* 66A0 */ + 0x0000, 0x0000, MB2(0x97EF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E62), + 0x0000, 0x0000, MB2(0x95E9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x965C), 0x0000, 0x0000, 0x0000, + MB2(0x9E41), MB2(0x9DF9), 0x0000, 0x0000, + MB2(0x9DFC), 0x0000, MB2(0x9DFB), 0x0000, + 0x0000, MB2(0x9DF8), 0x0000, 0x0000, /* 66C0 */ + MB2(0x9E40), 0x0000, 0x0000, MB2(0x93DC), + 0x0000, MB2(0x9DFA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E42), 0x0000, + 0x0000, MB2(0x8F8C), MB2(0x9E43), 0x0000, + MB2(0x976A), MB2(0x9498), 0x0000, 0x0000, + MB2(0x9E44), 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, MB2(0x9E46), 0x0000, + 0x0000, MB2(0x9E47), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E48), 0x0000, MB2(0x8BC8), MB2(0x8967), + MB2(0x8D58), MB2(0x9E49), 0x0000, MB2(0x9E4A), + MB2(0x8F91), MB2(0x9182), 0x0000, 0x0000, + MB2(0x99D6), MB2(0x915D), MB2(0x915C), MB2(0x91D6), + MB2(0x8DC5), 0x0000, 0x0000, MB2(0x98F0), /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C8E), MB2(0x974C), 0x0000, MB2(0x95FC), + 0x0000, MB2(0x959E), 0x0000, MB2(0x9E4B), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8DF1), MB2(0x92BD), MB2(0x9E4C), MB2(0x984E), + 0x0000, 0x0000, 0x0000, MB2(0x965D), + 0x0000, MB2(0x92A9), MB2(0x9E4D), MB2(0x8AFA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, MB2(0x9E4E), MB2(0x9E4F), + MB2(0x96D8), 0x0000, MB2(0x96A2), MB2(0x9696), + MB2(0x967B), MB2(0x8E44), MB2(0x9E51), 0x0000, + 0x0000, MB2(0x8EE9), 0x0000, 0x0000, + MB2(0x9670), 0x0000, MB2(0x9E53), MB2(0x9E56), + MB2(0x9E55), 0x0000, MB2(0x8AF7), 0x0000, + 0x0000, MB2(0x8B80), 0x0000, MB2(0x9E52), + 0x0000, MB2(0x9E54), 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, MB2(0x9E57), 0x0000, + 0x0000, MB2(0x9099), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x979B), MB2(0x88C7), + MB2(0x8DDE), MB2(0x91BA), 0x0000, MB2(0x8EDB), + 0x0000, 0x0000, MB2(0x8FF1), 0x0000, + 0x0000, MB2(0x9E5A), 0x0000, 0x0000, + MB2(0x936D), 0x0000, MB2(0x9E58), MB2(0x91A9), + MB2(0x9E59), MB2(0x8FF0), MB2(0x96DB), MB2(0x9E5B), /* 6760 */ + MB2(0x9E5C), MB2(0x9788), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E61), 0x0000, + 0x0000, MB2(0x8D59), 0x0000, MB2(0x9474), + MB2(0x9E5E), MB2(0x938C), MB2(0x9DDC), MB2(0x9DE0), + 0x0000, MB2(0x8B6E), 0x0000, MB2(0x9466), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E60), 0x0000, MB2(0x8FBC), MB2(0x94C2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, MB2(0x9E66), 0x0000, MB2(0x94F8), + 0x0000, MB2(0x9E5D), 0x0000, MB2(0x9E63), + MB2(0x9E62), 0x0000, 0x0000, 0x0000, + MB2(0x90CD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x968D), 0x0000, MB2(0x97D1), + 0x0000, 0x0000, MB2(0x9687), 0x0000, + MB2(0x89CA), MB2(0x8E7D), 0x0000, 0x0000, + MB2(0x9867), MB2(0x9E65), MB2(0x9095), 0x0000, /* 67A0 */ + 0x0000, 0x0000, MB2(0x9E64), 0x0000, + 0x0000, MB2(0x9E5F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CCD), + 0x0000, 0x0000, 0x0000, MB2(0x9E6B), + MB2(0x9E69), 0x0000, MB2(0x89CB), MB2(0x9E67), + MB2(0x9E6D), MB2(0x9E73), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91C6), 0x0000, 0x0000, /* 67C0 */ + MB2(0x95BF), 0x0000, MB2(0x9E75), 0x0000, + 0x0000, 0x0000, MB2(0x9541), 0x0000, + 0x0000, 0x0000, MB2(0x9E74), MB2(0x9490), + MB2(0x965E), MB2(0x8AB9), 0x0000, MB2(0x90F5), + MB2(0x8F5F), 0x0000, 0x0000, 0x0000, + MB2(0x92D1), 0x0000, MB2(0x974D), 0x0000, + 0x0000, MB2(0x9E70), MB2(0x9E6F), 0x0000, + 0x0000, 0x0000, MB2(0x9E71), 0x0000, /* 67E0 */ + MB2(0x9E6E), 0x0000, 0x0000, MB2(0x9E76), + 0x0000, MB2(0x9E6C), 0x0000, 0x0000, + MB2(0x9E6A), 0x0000, MB2(0x9E72), MB2(0x9E68), + 0x0000, MB2(0x928C), 0x0000, MB2(0x96F6), + MB2(0x8EC4), MB2(0x8DF2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8DB8), + 0x0000, 0x0000, MB2(0x968F), MB2(0x8A60), + 0x0000, 0x0000, MB2(0x92CC), MB2(0x93C8), /* 6800 */ + MB2(0x8968), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90F0), + 0x0000, 0x0000, MB2(0x90B2), MB2(0x8C49), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E78), 0x0000, + 0x0000, MB2(0x8D5A), MB2(0x8A9C), 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E7A), MB2(0x8A94), MB2(0x9E81), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E7D), 0x0000, + MB2(0x90F1), 0x0000, 0x0000, 0x0000, + MB2(0x8A6A), MB2(0x8DAA), 0x0000, 0x0000, + MB2(0x8A69), MB2(0x8DCD), 0x0000, 0x0000, + MB2(0x9E7B), MB2(0x8C85), MB2(0x8C6A), MB2(0x938D), /* 6840 */ + 0x0000, 0x0000, MB2(0x9E79), 0x0000, + MB2(0x88C4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E7C), MB2(0x9E7E), 0x0000, + MB2(0x8BCB), MB2(0x8C4B), 0x0000, MB2(0x8ABA), + MB2(0x8B6A), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E82), 0x0000, 0x0000, + MB2(0x8DF7), MB2(0x9691), 0x0000, MB2(0x8E56), + 0x0000, 0x0000, 0x0000, MB2(0x9E83), /* 6860 */ + 0x0000, 0x0000, 0x0000, MB2(0x954F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E8F), 0x0000, MB2(0x89B1), MB2(0x9E84), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9E95), MB2(0x9E85), + 0x0000, MB2(0x97C0), 0x0000, MB2(0x9E8C), /* 6880 */ + 0x0000, MB2(0x947E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E94), 0x0000, MB2(0x9E87), + 0x0000, 0x0000, 0x0000, MB2(0x88B2), + MB2(0x9E89), 0x0000, 0x0000, MB2(0x8D5B), + 0x0000, 0x0000, 0x0000, MB2(0x9E8B), + 0x0000, MB2(0x9E8A), 0x0000, MB2(0x9E86), + MB2(0x9E91), 0x0000, MB2(0x8FBD), 0x0000, /* 68A0 */ + 0x0000, 0x0000, MB2(0x9AEB), MB2(0x8CE6), + MB2(0x979C), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9E88), 0x0000, MB2(0x92F2), + MB2(0x8A42), MB2(0x8DAB), 0x0000, MB2(0x9E80), + 0x0000, MB2(0x9E90), MB2(0x8A81), 0x0000, + 0x0000, MB2(0x9E8E), MB2(0x9E92), 0x0000, + MB2(0x938E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + MB2(0x8AFC), 0x0000, MB2(0x9EB0), 0x0000, + 0x0000, MB2(0x96C7), MB2(0x9E97), MB2(0x8AFB), + 0x0000, MB2(0x9E9E), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x965F), 0x0000, + MB2(0x9E9F), MB2(0x9EA1), 0x0000, MB2(0x9EA5), + MB2(0x9E99), 0x0000, MB2(0x9249), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x938F), + MB2(0x9EA9), MB2(0x9E9C), 0x0000, MB2(0x9EA6), /* 68E0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9EA0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9058), MB2(0x9EAA), + 0x0000, 0x0000, MB2(0x90B1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EA8), MB2(0x8ABB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x986F), MB2(0x9E96), 0x0000, 0x0000, /* 6900 */ + MB2(0x9EA4), MB2(0x88D6), 0x0000, 0x0000, + MB2(0x9E98), 0x0000, 0x0000, MB2(0x96B8), + MB2(0x9E9D), MB2(0x9041), MB2(0x92C5), MB2(0x9E93), + 0x0000, 0x0000, MB2(0x9EA3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x909A), MB2(0x9EAD), MB2(0x8A91), + MB2(0x8C9F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EAF), MB2(0x9E9A), MB2(0x9EAE), /* 6920 */ + 0x0000, MB2(0x9EA7), MB2(0x9E9B), 0x0000, + MB2(0x9EAB), 0x0000, MB2(0x9EAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9EBD), 0x0000, 0x0000, 0x0000, + MB2(0x93CC), 0x0000, MB2(0x9EA2), 0x0000, + 0x0000, MB2(0x9EB9), 0x0000, 0x0000, + 0x0000, MB2(0x9EBB), 0x0000, MB2(0x92D6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x976B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9596), + MB2(0x9EB6), MB2(0x91C8), 0x0000, 0x0000, + 0x0000, MB2(0x9EBC), MB2(0x915E), 0x0000, + MB2(0x9EB3), MB2(0x9EC0), MB2(0x9EBF), 0x0000, + MB2(0x93ED), MB2(0x9EBE), MB2(0x93E8), 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EC2), MB2(0x9EB5), + 0x0000, MB2(0x8BC6), MB2(0x9EB8), MB2(0x8F7C), + 0x0000, 0x0000, 0x0000, MB2(0x9480), + MB2(0x9EBA), MB2(0x8BC9), 0x0000, MB2(0x9EB2), + MB2(0x9EB4), MB2(0x9EB1), 0x0000, 0x0000, + MB2(0x984F), MB2(0x8A79), MB2(0x9EB7), 0x0000, + 0x0000, MB2(0x9EC1), MB2(0x8A54), 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DE5), 0x0000, + 0x0000, 0x0000, MB2(0x897C), 0x0000, + 0x0000, MB2(0x9ED2), 0x0000, 0x0000, + MB2(0x9850), MB2(0x9ED5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9059), + MB2(0x9ED4), 0x0000, 0x0000, 0x0000, + MB2(0x9ED3), 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9ED0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EC4), 0x0000, + 0x0000, MB2(0x9EE1), MB2(0x9EC3), 0x0000, + MB2(0x9ED6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9ECE), + 0x0000, 0x0000, MB2(0x9EC9), MB2(0x9EC6), + 0x0000, MB2(0x9EC7), 0x0000, MB2(0x9ECF), /* 69C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xEAA0), + 0x0000, 0x0000, MB2(0x9ECC), MB2(0x8D5C), + MB2(0x92C6), MB2(0x9184), MB2(0x9ECA), 0x0000, + MB2(0x9EC5), 0x0000, 0x0000, MB2(0x9EC8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x976C), MB2(0x968A), 0x0000, 0x0000, + 0x0000, MB2(0x9ECD), MB2(0x9ED7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, MB2(0x9EDF), + MB2(0x9ED8), 0x0000, 0x0000, MB2(0x9EE5), + 0x0000, MB2(0x9EE3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EDD), 0x0000, MB2(0x92CE), + 0x0000, MB2(0x9185), 0x0000, MB2(0x9EDB), + 0x0000, 0x0000, MB2(0x9ED9), 0x0000, /* 6A00 */ + 0x0000, MB2(0x9EE0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EE6), MB2(0x94F3), + MB2(0x9EEC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EE7), MB2(0x9EEA), + MB2(0x9EE4), 0x0000, 0x0000, MB2(0x9294), + 0x0000, MB2(0x9557), 0x0000, MB2(0x9EDA), + 0x0000, 0x0000, MB2(0x9EE2), MB2(0x8FBE), + 0x0000, MB2(0x96CD), MB2(0x9EF6), MB2(0x9EE9), /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8CA0), MB2(0x89A1), MB2(0x8A7E), + 0x0000, 0x0000, MB2(0x9ED1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FBF), MB2(0x9EEE), 0x0000, + MB2(0x9EF5), MB2(0x8EF7), MB2(0x8A92), 0x0000, + 0x0000, MB2(0x924D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + MB2(0x9EEB), 0x0000, 0x0000, MB2(0x9EF0), + MB2(0x9EF4), 0x0000, 0x0000, MB2(0x8BB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B6B), MB2(0x9EF2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B40), + 0x0000, MB2(0x93C9), MB2(0x9EF1), 0x0000, /* 6A60 */ + 0x0000, 0x0000, MB2(0x9EF3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9EEF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8A80), + MB2(0x9268), 0x0000, 0x0000, 0x0000, /* 6A80 */ + MB2(0x9EFA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EF8), MB2(0x8CE7), 0x0000, + MB2(0x9EF7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F40), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E77), 0x0000, 0x0000, 0x0000, + MB2(0x9EF9), 0x0000, MB2(0x9EFB), MB2(0x9EFC), /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F4B), 0x0000, + MB2(0x9F47), 0x0000, MB2(0x9E8D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F46), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9F45), 0x0000, 0x0000, MB2(0x9F42), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9EE8), MB2(0x9F44), MB2(0x9F43), /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F49), 0x0000, MB2(0x9845), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F4C), MB2(0x8BF9), + 0x0000, 0x0000, MB2(0x9F48), MB2(0x9F4A), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x94A5), 0x0000, MB2(0x9F4D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F51), MB2(0x9F4E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + MB2(0x9793), MB2(0x9F4F), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9EDC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F52), 0x0000, + 0x0000, 0x0000, MB2(0x9F53), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8954), 0x0000, MB2(0x9F55), + MB2(0x8C87), MB2(0x8E9F), 0x0000, MB2(0x8BD3), /* 6B20 */ + 0x0000, 0x0000, 0x0000, MB2(0x89A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x977E), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F57), + MB2(0x9F56), MB2(0x9F59), MB2(0x8B5C), 0x0000, + 0x0000, MB2(0x8BD4), MB2(0x8ABC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F5C), /* 6B40 */ + 0x0000, 0x0000, 0x0000, MB2(0x9F5B), + 0x0000, MB2(0x9F5D), 0x0000, 0x0000, + MB2(0x89CC), 0x0000, MB2(0x9256), 0x0000, + MB2(0x9F5E), 0x0000, 0x0000, MB2(0x8ABD), + MB2(0x9F60), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F5F), 0x0000, MB2(0x9F61), + 0x0000, 0x0000, 0x0000, MB2(0x9F62), + 0x0000, MB2(0x9F63), MB2(0x8E7E), MB2(0x90B3), /* 6B60 */ + MB2(0x8D9F), 0x0000, MB2(0x9590), 0x0000, + 0x0000, MB2(0x95E0), MB2(0x9863), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E95), + 0x0000, 0x0000, 0x0000, MB2(0x8DCE), + MB2(0x97F0), 0x0000, 0x0000, 0x0000, + MB2(0x9F64), MB2(0x9F65), 0x0000, MB2(0x8E80), + 0x0000, 0x0000, 0x0000, MB2(0x9F66), + MB2(0x9F67), 0x0000, 0x0000, MB2(0x9F69), /* 6B80 */ + MB2(0x9F68), 0x0000, MB2(0x9677), 0x0000, + 0x0000, MB2(0x8F7D), MB2(0x8EEA), MB2(0x8E63), + 0x0000, MB2(0x9F6A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F6C), MB2(0x9042), 0x0000, + MB2(0x9F6B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F6D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + MB2(0x9F6E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9F6F), MB2(0x9F70), + 0x0000, 0x0000, 0x0000, MB2(0x9F71), + 0x0000, MB2(0x9F73), MB2(0x9F72), MB2(0x9F74), + MB2(0x89A3), MB2(0x9269), 0x0000, MB2(0x9F75), + 0x0000, 0x0000, MB2(0x8E45), MB2(0x8A6B), + MB2(0x9F76), 0x0000, 0x0000, MB2(0x9361), + MB2(0x9ACA), 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, MB2(0x8B42), MB2(0x9F77), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F78), + 0x0000, MB2(0x95EA), MB2(0x9688), 0x0000, + 0x0000, 0x0000, MB2(0x93C5), MB2(0x9F79), + MB2(0x94E4), 0x0000, 0x0000, 0x0000, + MB2(0x94F9), 0x0000, 0x0000, MB2(0x96D1), + 0x0000, 0x0000, 0x0000, MB2(0x9F7A), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F7C), + MB2(0x9F7B), 0x0000, 0x0000, MB2(0x9F7E), + 0x0000, 0x0000, 0x0000, MB2(0x9F7D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9F81), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E81), + 0x0000, MB2(0x96AF), 0x0000, MB2(0x9F82), + MB2(0x9F83), 0x0000, 0x0000, MB2(0x8B43), + 0x0000, 0x0000, 0x0000, MB2(0x9F84), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F86), /* 6C20 */ + MB2(0x9F85), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9085), 0x0000, 0x0000, MB2(0x9558), + MB2(0x8969), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94C3), 0x0000, + MB2(0x92F3), MB2(0x8F60), MB2(0x8B81), 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94C4), 0x0000, + MB2(0x8EAC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9F88), 0x0000, MB2(0x8ABE), + 0x0000, 0x0000, MB2(0x8998), 0x0000, + 0x0000, MB2(0x93F0), MB2(0x9F87), MB2(0x8D5D), + MB2(0x9272), 0x0000, MB2(0x9F89), 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9F91), 0x0000, MB2(0x9F8A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91BF), 0x0000, MB2(0x8B82), MB2(0x9F92), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C88), 0x0000, + 0x0000, MB2(0x8B44), MB2(0x9F90), 0x0000, + 0x0000, MB2(0x9F8E), MB2(0x9F8B), MB2(0x9780), /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x92BE), 0x0000, 0x0000, 0x0000, + MB2(0x93D7), MB2(0x9F8C), 0x0000, 0x0000, + MB2(0x9F94), 0x0000, MB2(0x9F93), MB2(0x8C42), + 0x0000, 0x0000, MB2(0x89AB), 0x0000, + 0x0000, MB2(0x8DB9), MB2(0x9F8D), MB2(0x9F8F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9676), MB2(0x91F2), 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9697), + 0x0000, 0x0000, MB2(0x9F9C), 0x0000, + 0x0000, MB2(0x9F9D), 0x0000, MB2(0x89CD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x95A6), MB2(0x96FB), MB2(0x9F9F), MB2(0x8EA1), + MB2(0x8FC0), MB2(0x9F98), MB2(0x9F9E), MB2(0x8988), + 0x0000, MB2(0x8BB5), 0x0000, 0x0000, /* 6CC0 */ + MB2(0x9F95), MB2(0x9F9A), 0x0000, 0x0000, + 0x0000, MB2(0x90F2), MB2(0x9491), 0x0000, + MB2(0x94E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9F97), + 0x0000, MB2(0x9640), 0x0000, MB2(0x9F99), + 0x0000, MB2(0x9FA2), 0x0000, MB2(0x9FA0), + 0x0000, MB2(0x9F9B), 0x0000, 0x0000, + 0x0000, MB2(0x9641), MB2(0x9467), MB2(0x8B83), /* 6CE0 */ + 0x0000, MB2(0x9344), 0x0000, 0x0000, + MB2(0x928D), 0x0000, MB2(0x9FA3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FA1), + MB2(0x91D7), MB2(0x9F96), 0x0000, MB2(0x896A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x976D), + MB2(0x9FAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FAD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90F4), + 0x0000, MB2(0x9FAA), 0x0000, MB2(0x978C), + 0x0000, 0x0000, MB2(0x93B4), MB2(0x9FA4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, MB2(0x92C3), 0x0000, 0x0000, + 0x0000, MB2(0x896B), MB2(0x8D5E), MB2(0x9FA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F46), MB2(0x9FAC), + 0x0000, MB2(0x9FAB), MB2(0x9FA6), 0x0000, + MB2(0x9FA9), 0x0000, 0x0000, MB2(0x8A88), + 0x0000, MB2(0x9FA8), MB2(0x9468), 0x0000, + 0x0000, MB2(0x97AC), 0x0000, 0x0000, /* 6D40 */ + MB2(0x8FF2), MB2(0x90F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9FB4), MB2(0x9FB2), 0x0000, + MB2(0x956C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FAF), /* 6D60 */ + MB2(0x9FB1), 0x0000, MB2(0x8959), 0x0000, + 0x0000, MB2(0x8D5F), MB2(0x9851), 0x0000, + MB2(0x8A5C), 0x0000, MB2(0x9582), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9781), 0x0000, 0x0000, MB2(0x8A43), + MB2(0x905A), MB2(0x9FB3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, MB2(0x9FB8), 0x0000, 0x0000, + MB2(0x8FC1), 0x0000, 0x0000, 0x0000, + MB2(0x974F), 0x0000, MB2(0x9FB5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FB0), + 0x0000, MB2(0x9FB6), 0x0000, 0x0000, + 0x0000, MB2(0x97DC), 0x0000, MB2(0x9393), + MB2(0x93C0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8A55), + 0x0000, 0x0000, MB2(0x8974), 0x0000, + 0x0000, MB2(0x9FBC), 0x0000, 0x0000, + MB2(0x9FBF), 0x0000, 0x0000, 0x0000, + MB2(0x97C1), 0x0000, 0x0000, 0x0000, + MB2(0x9784), 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, MB2(0x9FC6), MB2(0x9FC0), MB2(0x9FBD), + 0x0000, 0x0000, 0x0000, MB2(0x97D2), + MB2(0x9FC3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8F69), MB2(0x9FC5), 0x0000, + 0x0000, MB2(0x9FCA), 0x0000, 0x0000, + MB2(0x9391), MB2(0x9FC8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FC2), 0x0000, + 0x0000, MB2(0x9257), 0x0000, 0x0000, /* 6DE0 */ + MB2(0x9FC9), 0x0000, MB2(0x9FBE), 0x0000, + MB2(0x9FC4), 0x0000, MB2(0x9FCB), MB2(0x88FA), + MB2(0x9FC1), 0x0000, MB2(0x9FCC), 0x0000, + 0x0000, MB2(0x905B), 0x0000, MB2(0x8F7E), + 0x0000, MB2(0x95A3), 0x0000, MB2(0x8DAC), + 0x0000, MB2(0x9FB9), MB2(0x9FC7), MB2(0x9359), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, MB2(0x90B4), 0x0000, MB2(0x8A89), + MB2(0x8DCF), MB2(0x8FC2), MB2(0x9FBB), MB2(0x8F61), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C6B), + 0x0000, MB2(0x9FBA), 0x0000, 0x0000, + 0x0000, MB2(0x9FD0), MB2(0x8F8D), MB2(0x8CB8), + 0x0000, MB2(0x9FDF), 0x0000, MB2(0x9FD9), + MB2(0x8B94), MB2(0x936E), 0x0000, MB2(0x9FD4), /* 6E20 */ + MB2(0x9FDD), MB2(0x88AD), MB2(0x8951), 0x0000, + 0x0000, MB2(0x89B7), 0x0000, MB2(0x9FD6), + MB2(0x91AA), MB2(0x9FCD), MB2(0x9FCF), MB2(0x8D60), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9FE0), 0x0000, MB2(0x9FDB), 0x0000, + 0x0000, 0x0000, MB2(0x9FD3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FDA), /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96A9), 0x0000, + 0x0000, MB2(0x9FD8), MB2(0x9FDC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CCE), 0x0000, + MB2(0x8FC3), 0x0000, 0x0000, MB2(0x9258), + 0x0000, 0x0000, 0x0000, MB2(0x9FD2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, MB2(0x974E), + 0x0000, 0x0000, 0x0000, MB2(0x9FD5), + 0x0000, 0x0000, MB2(0x9FCE), MB2(0x9392), + 0x0000, 0x0000, MB2(0x9FD1), 0x0000, + 0x0000, 0x0000, MB2(0x9FD7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9870), MB2(0x8EBC), + MB2(0x969E), 0x0000, MB2(0x9FE1), 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x94AC), 0x0000, 0x0000, MB2(0x9FED), + MB2(0x8CB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F80), 0x0000, + MB2(0x9FE3), 0x0000, 0x0000, 0x0000, + MB2(0x97AD), MB2(0x8D61), 0x0000, MB2(0x9FF0), + 0x0000, 0x0000, MB2(0x88EC), 0x0000, /* 6EA0 */ + 0x0000, MB2(0x9FEE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FE2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9FE8), + 0x0000, 0x0000, MB2(0x9FEA), 0x0000, + 0x0000, 0x0000, MB2(0x976E), MB2(0x9FE5), + 0x0000, 0x0000, MB2(0x934D), 0x0000, + 0x0000, MB2(0x9FE7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FEF), 0x0000, /* 6EC0 */ + MB2(0x9FE9), MB2(0x96C5), 0x0000, 0x0000, + 0x0000, MB2(0x9FE4), 0x0000, MB2(0x8EA0), + MB2(0x9FFC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A8A), 0x0000, MB2(0x9FE6), + MB2(0x9FEB), MB2(0x9FEC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91EA), MB2(0x91D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9FF4), 0x0000, 0x0000, MB2(0x9FFA), + 0x0000, 0x0000, MB2(0x9FF8), 0x0000, + MB2(0x9348), 0x0000, 0x0000, MB2(0xE042), + MB2(0x9FF5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9FF6), MB2(0x9FDE), + 0x0000, MB2(0x8B99), MB2(0x9559), 0x0000, /* 6F00 */ + 0x0000, 0x0000, MB2(0x8EBD), 0x0000, + 0x0000, MB2(0x8D97), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9852), + 0x0000, MB2(0x9FF2), 0x0000, MB2(0xE041), + MB2(0x8989), MB2(0x9186), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9499), 0x0000, MB2(0x8ABF), MB2(0x97F8), /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x969F), + MB2(0x92D0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9FF9), MB2(0x9FFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9151), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE040), MB2(0x9FF7), + 0x0000, MB2(0x9FF1), 0x0000, 0x0000, /* 6F40 */ + 0x0000, MB2(0x8AC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C89), 0x0000, 0x0000, 0x0000, + MB2(0xE04E), 0x0000, 0x0000, MB2(0xE049), + MB2(0x90F6), 0x0000, 0x0000, MB2(0x8A83), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + MB2(0x8F81), 0x0000, MB2(0xE052), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE04B), MB2(0x92AA), MB2(0xE048), + MB2(0x92D7), 0x0000, 0x0000, 0x0000, + MB2(0xE06B), 0x0000, 0x0000, 0x0000, + MB2(0xE045), 0x0000, MB2(0xE044), 0x0000, + MB2(0xE04D), 0x0000, 0x0000, 0x0000, + MB2(0xE047), MB2(0xE046), MB2(0xE04C), 0x0000, /* 6F80 */ + MB2(0x909F), 0x0000, MB2(0xE043), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE04F), 0x0000, + 0x0000, MB2(0xE050), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE055), 0x0000, MB2(0xE054), /* 6FA0 */ + MB2(0xE056), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE059), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9362), 0x0000, MB2(0xE053), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE057), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C83), MB2(0x91F7), MB2(0xE051), MB2(0x945A), /* 6FC0 */ + 0x0000, 0x0000, MB2(0xE058), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE05D), MB2(0xE05B), 0x0000, 0x0000, + MB2(0xE05E), 0x0000, 0x0000, MB2(0xE061), + 0x0000, 0x0000, 0x0000, MB2(0xE05A), + MB2(0x8D8A), MB2(0x9447), 0x0000, 0x0000, /* 6FE0 */ + MB2(0x9FB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9794), + MB2(0xE05C), 0x0000, MB2(0xE060), MB2(0x91F3), + 0x0000, MB2(0xE05F), 0x0000, MB2(0xE04A), + 0x0000, 0x0000, MB2(0xE889), 0x0000, + 0x0000, 0x0000, MB2(0xE064), 0x0000, + 0x0000, 0x0000, MB2(0xE068), 0x0000, + 0x0000, MB2(0xE066), 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE062), 0x0000, MB2(0xE063), + 0x0000, 0x0000, 0x0000, MB2(0xE067), + 0x0000, MB2(0xE065), 0x0000, 0x0000, + 0x0000, MB2(0x956D), 0x0000, 0x0000, + MB2(0xE06D), 0x0000, MB2(0xE06A), MB2(0xE069), + 0x0000, MB2(0xE06C), MB2(0x93D2), MB2(0xE06E), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, MB2(0x9295), MB2(0x91EB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x90A3), 0x0000, 0x0000, 0x0000, + MB2(0xE06F), 0x0000, MB2(0xE071), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE070), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9FF3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE072), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x93E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE073), /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89CE), + 0x0000, 0x0000, 0x0000, MB2(0x9394), + MB2(0x8A44), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B84), 0x0000, 0x0000, 0x0000, + MB2(0x8EDC), MB2(0x8DD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9846), MB2(0x9086), 0x0000, + 0x0000, 0x0000, MB2(0x898A), 0x0000, + 0x0000, 0x0000, MB2(0xE075), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE074), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE078), MB2(0x9259), MB2(0xE07B), MB2(0xE076), + 0x0000, 0x0000, 0x0000, MB2(0xE07A), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE079), MB2(0x935F), MB2(0x88D7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x97F3), 0x0000, 0x0000, MB2(0xE07D), + 0x0000, 0x0000, 0x0000, MB2(0x8947), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE080), 0x0000, 0x0000, + 0x0000, MB2(0xE07E), 0x0000, MB2(0xE07C), + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE077), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9642), 0x0000, 0x0000, + 0x0000, MB2(0xE082), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE081), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x898B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE084), MB2(0x95B0), 0x0000, + MB2(0xE083), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x96B3), 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, MB2(0x8FC5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9152), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FC4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x97F9), 0x0000, 0x0000, + MB2(0xE08A), 0x0000, MB2(0x90F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE086), MB2(0xE08B), 0x0000, + 0x0000, MB2(0x898C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE089), 0x0000, /* 7160 */ + MB2(0x9481), MB2(0xE085), MB2(0xE088), MB2(0x8FC6), + 0x0000, MB2(0x94CF), 0x0000, 0x0000, + MB2(0xE08C), 0x0000, MB2(0x8ECF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x90F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + MB2(0xE08F), 0x0000, 0x0000, 0x0000, + MB2(0xE087), 0x0000, MB2(0x8C46), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE08D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x976F), MB2(0xE090), 0x0000, 0x0000, + 0x0000, MB2(0xEAA4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F6E), + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE091), 0x0000, 0x0000, 0x0000, + MB2(0xE092), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x944D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE094), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE095), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9452), /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9395), MB2(0xE097), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE099), 0x0000, + MB2(0x97D3), 0x0000, MB2(0xE096), 0x0000, + MB2(0xE098), MB2(0x898D), 0x0000, MB2(0xE093), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9A7A), + MB2(0xE09A), 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, MB2(0x9187), MB2(0x8E57), MB2(0xE09C), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE09B), MB2(0x9043), MB2(0x99D7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE09D), 0x0000, 0x0000, + 0x0000, MB2(0xE09F), 0x0000, MB2(0xE08E), + MB2(0xE09E), 0x0000, 0x0000, MB2(0xE0A0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, MB2(0x949A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0A1), 0x0000, 0x0000, + MB2(0xE0A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0A3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0A4), 0x0000, MB2(0x92DC), 0x0000, + MB2(0xE0A6), MB2(0xE0A5), 0x0000, 0x0000, + MB2(0xE0A7), 0x0000, MB2(0xE0A8), 0x0000, + 0x0000, MB2(0x8EDD), MB2(0x9583), 0x0000, + 0x0000, 0x0000, MB2(0x96EA), MB2(0xE0A9), + MB2(0xE0AA), MB2(0x9175), MB2(0x8EA2), MB2(0xE0AB), + MB2(0xE0AC), 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, MB2(0xE0AD), MB2(0x95D0), + MB2(0x94C5), 0x0000, 0x0000, MB2(0xE0AE), + MB2(0x9476), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x92AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0AF), MB2(0x89E5), 0x0000, MB2(0x8B8D), + 0x0000, MB2(0x96C4), 0x0000, MB2(0x96B4), + 0x0000, MB2(0x89B2), MB2(0x9853), 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, MB2(0x9671), + 0x0000, MB2(0x95A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x90B5), 0x0000, + MB2(0xE0B0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93C1), 0x0000, 0x0000, + 0x0000, MB2(0x8CA1), MB2(0xE0B1), 0x0000, + MB2(0x8DD2), MB2(0xE0B3), MB2(0xE0B2), 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0B5), 0x0000, + 0x0000, 0x0000, MB2(0xE0B6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B5D), 0x0000, MB2(0xE0B7), 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0B8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8CA2), 0x0000, 0x0000, MB2(0x94C6), + 0x0000, 0x0000, MB2(0xE0BA), 0x0000, + 0x0000, 0x0000, MB2(0x8FF3), 0x0000, + 0x0000, MB2(0xE0B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BB6), MB2(0xE0BB), /* 72C0 */ + MB2(0xE0BD), 0x0000, MB2(0xE0BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0BE), 0x0000, + MB2(0x8CCF), 0x0000, MB2(0xE0BF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8BE7), + 0x0000, MB2(0x915F), 0x0000, MB2(0x8D9D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0C1), MB2(0xE0C2), MB2(0xE0C0), 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EEB), 0x0000, 0x0000, + MB2(0x93C6), MB2(0x8BB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0C4), + MB2(0x924B), MB2(0xE0C3), 0x0000, 0x0000, + MB2(0x9854), MB2(0x9482), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C9), MB2(0xE0C6), + 0x0000, 0x0000, 0x0000, MB2(0x96D2), + MB2(0xE0C8), MB2(0xE0CA), 0x0000, MB2(0x97C2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, MB2(0xE0CE), 0x0000, 0x0000, + 0x0000, MB2(0xE0CD), MB2(0x9296), MB2(0x944C), + 0x0000, 0x0000, MB2(0x8CA3), MB2(0xE0CC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0CB), 0x0000, MB2(0x9750), MB2(0x9751), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0CF), MB2(0x898E), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + MB2(0x8D96), MB2(0x8E82), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D0), MB2(0xE0D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F62), /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D5), 0x0000, MB2(0xE0D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D6), 0x0000, MB2(0x8A6C), 0x0000, + 0x0000, MB2(0xE0D8), 0x0000, 0x0000, + MB2(0xE0D7), 0x0000, MB2(0xE0DA), MB2(0xE0D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + MB2(0x8CBA), 0x0000, 0x0000, MB2(0x97A6), + 0x0000, MB2(0x8BCA), 0x0000, MB2(0x89A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BE8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8ADF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97E6), MB2(0xE0DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0DE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DF), 0x0000, MB2(0x89CF), 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DB), 0x0000, MB2(0x8E58), 0x0000, + 0x0000, MB2(0x92BF), MB2(0xE0DD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0E2), 0x0000, + MB2(0x8EEC), 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, MB2(0xE0E0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C5D), 0x0000, + 0x0000, MB2(0x94C7), MB2(0xE0E1), 0x0000, + 0x0000, MB2(0xE0FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CBB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B85), /* 7400 */ + 0x0000, MB2(0xE0E4), MB2(0x979D), 0x0000, + 0x0000, MB2(0x97AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91F4), 0x0000, /* 7420 */ + 0x0000, MB2(0xE0E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0E8), MB2(0x97D4), + MB2(0x8BD5), MB2(0x94FA), MB2(0x9469), 0x0000, + 0x0000, 0x0000, MB2(0xE0E9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0EB), + 0x0000, MB2(0xE0EE), 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0EA), 0x0000, 0x0000, + 0x0000, MB2(0xE0ED), MB2(0x8CE8), MB2(0x896C), + MB2(0xE0EF), 0x0000, MB2(0x9090), MB2(0xE0EC), + MB2(0x97DA), 0x0000, 0x0000, MB2(0xE0F2), /* 7460 */ + MB2(0xEAA2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0F0), MB2(0xE0F3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E5), + MB2(0xE0F1), 0x0000, 0x0000, MB2(0x8DBA), + 0x0000, 0x0000, MB2(0xE0F4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x979E), /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F7), 0x0000, + 0x0000, 0x0000, MB2(0xE0E3), 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AC2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8EA3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0FA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x895A), 0x0000, 0x0000, 0x0000, + MB2(0xE140), 0x0000, MB2(0x955A), MB2(0xE141), /* 74E0 */ + 0x0000, 0x0000, MB2(0x8AA2), MB2(0xE142), + 0x0000, MB2(0xE143), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE144), 0x0000, + MB2(0xE146), MB2(0xE147), MB2(0xE145), 0x0000, + 0x0000, 0x0000, MB2(0x9572), MB2(0xE149), + MB2(0xE148), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE14B), /* 7500 */ + MB2(0xE14A), MB2(0xE14C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE14D), MB2(0xE14F), MB2(0xE14E), 0x0000, + 0x0000, MB2(0x8D99), 0x0000, MB2(0xE151), + 0x0000, MB2(0xE150), 0x0000, 0x0000, + MB2(0x8AC3), 0x0000, MB2(0x9072), 0x0000, + MB2(0x935B), 0x0000, MB2(0xE152), MB2(0x90B6), + 0x0000, 0x0000, 0x0000, MB2(0x8E59), /* 7520 */ + 0x0000, MB2(0x8999), MB2(0xE153), 0x0000, + MB2(0x9770), 0x0000, 0x0000, MB2(0x95E1), + MB2(0xE154), 0x0000, 0x0000, 0x0000, + MB2(0x9363), MB2(0x9752), MB2(0x8D62), MB2(0x905C), + 0x0000, 0x0000, 0x0000, MB2(0x926A), + MB2(0x99B2), 0x0000, MB2(0x92AC), MB2(0x89E6), + MB2(0xE155), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + MB2(0xE156), 0x0000, MB2(0xE15B), 0x0000, + 0x0000, MB2(0xE159), MB2(0xE158), MB2(0x9DC0), + MB2(0x8A45), MB2(0xE157), 0x0000, MB2(0x88D8), + 0x0000, MB2(0x94A8), 0x0000, 0x0000, + MB2(0x94C8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x97AF), MB2(0xE15C), MB2(0xE15A), + MB2(0x927B), MB2(0x90A4), 0x0000, 0x0000, + MB2(0x94A9), 0x0000, MB2(0x954C), 0x0000, /* 7560 */ + MB2(0xE15E), MB2(0x97AA), MB2(0x8C6C), MB2(0xE15F), + 0x0000, MB2(0xE15D), MB2(0x94D4), MB2(0xE160), + 0x0000, MB2(0xE161), 0x0000, 0x0000, + MB2(0x88D9), 0x0000, 0x0000, MB2(0x8FF4), + MB2(0xE166), 0x0000, MB2(0xE163), MB2(0x93EB), + MB2(0xE162), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8B45), + 0x0000, 0x0000, MB2(0xE169), 0x0000, /* 7580 */ + 0x0000, 0x0000, MB2(0xE164), MB2(0xE165), + 0x0000, MB2(0xE168), MB2(0xE167), MB2(0x9544), + 0x0000, 0x0000, MB2(0x9161), MB2(0x9160), + 0x0000, MB2(0x8B5E), 0x0000, 0x0000, + MB2(0xE16A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE16B), 0x0000, + 0x0000, MB2(0xE16C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE16E), /* 75A0 */ + 0x0000, MB2(0xE16D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8975), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE176), MB2(0x94E6), MB2(0xE170), + 0x0000, MB2(0xE172), 0x0000, 0x0000, + MB2(0xE174), MB2(0x905D), 0x0000, 0x0000, + MB2(0xE175), MB2(0xE173), MB2(0x8EBE), 0x0000, + 0x0000, 0x0000, MB2(0xE16F), MB2(0xE171), /* 75C0 */ + 0x0000, MB2(0x9561), 0x0000, MB2(0x8FC7), + 0x0000, 0x0000, MB2(0xE178), 0x0000, + 0x0000, MB2(0xE177), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE179), 0x0000, + MB2(0x8EA4), MB2(0x8DAD), 0x0000, 0x0000, + MB2(0x9397), MB2(0xE17A), 0x0000, MB2(0x92C9), + 0x0000, 0x0000, MB2(0xE17C), 0x0000, + 0x0000, 0x0000, MB2(0x979F), MB2(0xE17B), /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9189), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE182), 0x0000, MB2(0xE184), MB2(0xE185), + MB2(0x9273), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE183), 0x0000, + MB2(0xE180), 0x0000, MB2(0xE17D), MB2(0xE17E), + 0x0000, MB2(0xE181), 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE188), 0x0000, MB2(0xE186), + 0x0000, MB2(0xE187), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE189), + MB2(0xE18B), MB2(0xE18C), MB2(0xE18D), 0x0000, /* 7620 */ + MB2(0xE18E), 0x0000, 0x0000, MB2(0xE18A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE190), 0x0000, 0x0000, 0x0000, + MB2(0xE18F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE191), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97C3), 0x0000, /* 7640 */ + 0x0000, 0x0000, MB2(0xE194), MB2(0xE192), + MB2(0xE193), 0x0000, 0x0000, 0x0000, + MB2(0x8AE0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96FC), 0x0000, + 0x0000, 0x0000, MB2(0x95C8), 0x0000, + MB2(0xE196), 0x0000, 0x0000, 0x0000, + MB2(0xE195), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE197), MB2(0xE198), 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE19C), + MB2(0xE199), MB2(0xE19A), MB2(0xE19B), 0x0000, + MB2(0xE19D), 0x0000, 0x0000, 0x0000, + MB2(0xE19E), 0x0000, MB2(0xE19F), 0x0000, + 0x0000, 0x0000, MB2(0xE1A0), 0x0000, + MB2(0xE1A1), 0x0000, MB2(0x94AD), MB2(0x936F), + MB2(0xE1A2), MB2(0x9492), MB2(0x9553), 0x0000, + MB2(0xE1A3), 0x0000, 0x0000, MB2(0xE1A4), /* 7680 */ + MB2(0x9349), 0x0000, MB2(0x8A46), MB2(0x8D63), + MB2(0xE1A5), 0x0000, 0x0000, MB2(0xE1A6), + 0x0000, 0x0000, MB2(0xE1A7), 0x0000, + MB2(0x8E48), 0x0000, 0x0000, MB2(0xE1A9), + 0x0000, 0x0000, MB2(0xE1A8), 0x0000, + 0x0000, MB2(0xE1AA), MB2(0xE1AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x94E7), 0x0000, + MB2(0xE1AC), 0x0000, 0x0000, 0x0000, + MB2(0xE1AD), 0x0000, 0x0000, MB2(0xEA89), + MB2(0xE1AE), MB2(0xE1AF), MB2(0xE1B0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E4D), + 0x0000, 0x0000, MB2(0xE1B1), MB2(0x9475), /* 76C0 */ + 0x0000, 0x0000, MB2(0x967E), 0x0000, + MB2(0x896D), 0x0000, MB2(0x8976), 0x0000, + 0x0000, MB2(0xE1B2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1B4), 0x0000, + 0x0000, 0x0000, MB2(0xE1B3), MB2(0x9390), + 0x0000, 0x0000, 0x0000, MB2(0x90B7), + MB2(0x9F58), 0x0000, MB2(0xE1B5), MB2(0x96BF), + 0x0000, MB2(0xE1B6), 0x0000, MB2(0x8AC4), /* 76E0 */ + MB2(0x94D5), MB2(0xE1B7), 0x0000, MB2(0xE1B8), + 0x0000, 0x0000, MB2(0xE1B9), 0x0000, + 0x0000, 0x0000, MB2(0x96DA), 0x0000, + 0x0000, 0x0000, MB2(0x96D3), 0x0000, + MB2(0x92BC), 0x0000, 0x0000, 0x0000, + MB2(0x918A), 0x0000, 0x0000, MB2(0xE1BB), + 0x0000, 0x0000, MB2(0x8F82), 0x0000, + 0x0000, MB2(0x8FC8), 0x0000, 0x0000, /* 7700 */ + MB2(0xE1BE), 0x0000, 0x0000, MB2(0xE1BD), + MB2(0xE1BC), MB2(0x94FB), 0x0000, MB2(0x8AC5), + MB2(0x8CA7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1C4), + 0x0000, 0x0000, MB2(0xE1C1), MB2(0x905E), + MB2(0x96B0), 0x0000, 0x0000, 0x0000, /* 7720 */ + MB2(0xE1C0), MB2(0xE1C2), MB2(0xE1C3), 0x0000, + 0x0000, MB2(0xE1BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1C5), + MB2(0xE1C6), 0x0000, MB2(0x92AD), 0x0000, + MB2(0x8AE1), 0x0000, 0x0000, 0x0000, + MB2(0x9285), 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1C8), MB2(0xE1CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9087), 0x0000, MB2(0x93C2), /* 7760 */ + 0x0000, MB2(0xE1CC), MB2(0x9672), 0x0000, + MB2(0xE1C9), 0x0000, 0x0000, MB2(0xE1CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1CF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1CE), MB2(0xE1CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1D1), + 0x0000, 0x0000, MB2(0xE1D0), 0x0000, + 0x0000, MB2(0xE1D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1D4), 0x0000, + MB2(0xE1D3), 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, MB2(0x95CB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F75), MB2(0x97C4), 0x0000, 0x0000, + MB2(0xE1D5), 0x0000, 0x0000, MB2(0x93B5), + 0x0000, 0x0000, MB2(0xE1D6), 0x0000, + 0x0000, MB2(0xE1D7), 0x0000, MB2(0xE1DB), + MB2(0xE1D9), MB2(0xE1DA), 0x0000, MB2(0xE1D8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1DE), + 0x0000, 0x0000, MB2(0xE1DF), MB2(0x96B5), + MB2(0xE1E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96EE), MB2(0xE1E1), /* 77E0 */ + 0x0000, MB2(0x926D), 0x0000, MB2(0x948A), + 0x0000, MB2(0x8BE9), 0x0000, 0x0000, + 0x0000, MB2(0x925A), MB2(0xE1E2), MB2(0x8BB8), + 0x0000, 0x0000, 0x0000, MB2(0x90CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8DBB), 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1E5), 0x0000, + MB2(0x8CA4), MB2(0x8DD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E7), 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, MB2(0x9375), MB2(0x8DD4), MB2(0x8B6D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9643), 0x0000, + MB2(0x946A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9376), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D7B), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, MB2(0xE1E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FC9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97B0), + MB2(0x8D64), 0x0000, 0x0000, MB2(0x8CA5), + 0x0000, 0x0000, MB2(0x94A1), 0x0000, + MB2(0xE1EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1ED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8CE9), 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, MB2(0xE1EC), MB2(0x92F4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1EF), MB2(0x8A56), MB2(0xE1EA), 0x0000, + 0x0000, MB2(0x94E8), 0x0000, MB2(0x894F), + 0x0000, MB2(0x8DEA), 0x0000, MB2(0x9871), + 0x0000, 0x0000, MB2(0xE1EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1F0), /* 78A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x95C9), + 0x0000, MB2(0x90D7), MB2(0xE1F2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1F1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8A6D), 0x0000, + MB2(0xE1F9), 0x0000, MB2(0xE1F8), 0x0000, + 0x0000, MB2(0x8EA5), 0x0000, 0x0000, /* 78C0 */ + 0x0000, MB2(0xE1FA), MB2(0xE1F5), 0x0000, + 0x0000, 0x0000, MB2(0xE1FB), MB2(0xE1F6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x94D6), MB2(0xE1F4), 0x0000, 0x0000, + MB2(0xE1F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE241), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE240), + MB2(0x9681), 0x0000, 0x0000, 0x0000, + MB2(0xE1FC), 0x0000, 0x0000, MB2(0x88E9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE243), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE242), 0x0000, 0x0000, + 0x0000, MB2(0x8FCA), 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, MB2(0xE244), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9162), 0x0000, + 0x0000, MB2(0xE246), MB2(0xE245), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE247), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, MB2(0xE1E6), 0x0000, + 0x0000, 0x0000, MB2(0xE1E8), MB2(0xE249), + MB2(0xE248), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EA6), 0x0000, + MB2(0x97E7), 0x0000, MB2(0x8ED0), 0x0000, + MB2(0xE24A), MB2(0x8C56), 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, MB2(0x8B5F), + MB2(0x8B46), MB2(0x8E83), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9753), 0x0000, 0x0000, MB2(0xE250), + 0x0000, MB2(0xE24F), MB2(0x9163), MB2(0xE24C), + 0x0000, 0x0000, MB2(0xE24E), 0x0000, + 0x0000, MB2(0x8F6A), MB2(0x905F), MB2(0xE24D), + MB2(0xE24B), 0x0000, MB2(0x9449), 0x0000, /* 7960 */ + 0x0000, MB2(0x8FCB), 0x0000, 0x0000, + MB2(0x955B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8DD5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9398), + 0x0000, 0x0000, MB2(0xE251), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE252), + MB2(0xE268), MB2(0x8BD6), 0x0000, 0x0000, /* 7980 */ + MB2(0x985C), MB2(0x9154), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE253), 0x0000, + 0x0000, MB2(0x89D0), MB2(0x92F5), MB2(0x959F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE254), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, MB2(0x8B9A), MB2(0xE255), + 0x0000, 0x0000, MB2(0xE257), 0x0000, + 0x0000, 0x0000, MB2(0xE258), 0x0000, + MB2(0x9448), 0x0000, 0x0000, MB2(0xE259), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE25A), MB2(0xE25B), 0x0000, + 0x0000, MB2(0x8BD7), MB2(0x89D1), MB2(0x93C3), + MB2(0x8F47), MB2(0x8E84), 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE25C), 0x0000, MB2(0x8F48), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x89C8), MB2(0x9562), 0x0000, + 0x0000, MB2(0xE25D), 0x0000, 0x0000, + MB2(0x94E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9164), + 0x0000, MB2(0xE260), 0x0000, MB2(0xE261), /* 79E0 */ + MB2(0x9489), 0x0000, MB2(0x9060), MB2(0xE25E), + 0x0000, MB2(0x9281), 0x0000, 0x0000, + MB2(0xE25F), 0x0000, 0x0000, 0x0000, + MB2(0x8FCC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88DA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B48), 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE262), 0x0000, 0x0000, MB2(0x92F6), + 0x0000, MB2(0xE263), MB2(0x90C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x96AB), 0x0000, 0x0000, MB2(0x9542), + MB2(0xE264), MB2(0xE265), MB2(0x9274), 0x0000, + MB2(0x97C5), 0x0000, 0x0000, MB2(0xE267), + MB2(0xE266), 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EED), 0x0000, + 0x0000, MB2(0xE269), MB2(0x88EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE26C), + 0x0000, 0x0000, 0x0000, MB2(0xE26A), + MB2(0x89D2), MB2(0x8C6D), MB2(0xE26B), MB2(0x8D65), + MB2(0x8D92), 0x0000, MB2(0x95E4), MB2(0xE26D), /* 7A40 */ + 0x0000, 0x0000, MB2(0x9673), 0x0000, + 0x0000, MB2(0xE26F), 0x0000, 0x0000, + 0x0000, MB2(0x90CF), MB2(0x896E), MB2(0x89B8), + MB2(0x88AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE26E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE270), MB2(0xE271), MB2(0x8FF5), /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE272), 0x0000, MB2(0x8A6E), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE274), 0x0000, 0x0000, 0x0000, + MB2(0x8C8A), 0x0000, MB2(0x8B86), 0x0000, + 0x0000, MB2(0xE275), MB2(0x8BF3), 0x0000, + 0x0000, MB2(0xE276), 0x0000, MB2(0x90FA), + 0x0000, MB2(0x93CB), 0x0000, MB2(0x90DE), /* 7A80 */ + MB2(0x8DF3), 0x0000, 0x0000, 0x0000, + MB2(0xE277), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9282), MB2(0x918B), + 0x0000, MB2(0xE279), MB2(0xE27B), MB2(0xE278), + MB2(0xE27A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C41), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE27C), MB2(0x8C45), 0x0000, + 0x0000, 0x0000, MB2(0x8B87), MB2(0x9771), + MB2(0xE27E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE280), 0x0000, + 0x0000, 0x0000, MB2(0x894D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE283), + 0x0000, 0x0000, 0x0000, MB2(0x8A96), /* 7AC0 */ + MB2(0xE282), MB2(0xE281), 0x0000, MB2(0xE285), + MB2(0xE27D), 0x0000, MB2(0xE286), MB2(0x97A7), + 0x0000, MB2(0xE287), 0x0000, MB2(0xE288), + 0x0000, 0x0000, MB2(0x9AF2), MB2(0xE28A), + 0x0000, MB2(0xE289), 0x0000, 0x0000, + 0x0000, MB2(0xE28B), MB2(0xE28C), 0x0000, + MB2(0x97B3), MB2(0xE28D), 0x0000, MB2(0xE8ED), + MB2(0x8FCD), MB2(0xE28E), MB2(0xE28F), MB2(0x8F76), /* 7AE0 */ + 0x0000, MB2(0x93B6), MB2(0xE290), 0x0000, + 0x0000, 0x0000, MB2(0x9247), 0x0000, + 0x0000, MB2(0xE291), 0x0000, MB2(0x925B), + MB2(0xE292), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8BA3), 0x0000, + MB2(0x995E), MB2(0x927C), MB2(0x8EB1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AC6), + 0x0000, 0x0000, MB2(0xE293), 0x0000, /* 7B00 */ + MB2(0xE2A0), 0x0000, MB2(0xE296), 0x0000, + MB2(0x8B88), 0x0000, MB2(0xE295), MB2(0xE2A2), + 0x0000, 0x0000, 0x0000, MB2(0xE294), + 0x0000, MB2(0x8FCE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE298), MB2(0xE299), 0x0000, MB2(0x934A), + 0x0000, 0x0000, MB2(0xE29A), 0x0000, + MB2(0x8A7D), 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, MB2(0x9079), MB2(0x9584), 0x0000, + MB2(0xE29C), 0x0000, 0x0000, 0x0000, + MB2(0x91E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE297), + 0x0000, MB2(0xE29B), MB2(0xE29D), 0x0000, + 0x0000, MB2(0x8DF9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, MB2(0xE2A4), MB2(0x954D), 0x0000, + MB2(0x94A4), MB2(0x9399), 0x0000, MB2(0x8BD8), + MB2(0xE2A3), MB2(0xE2A1), 0x0000, MB2(0x94B3), + MB2(0xE29E), MB2(0x927D), MB2(0x939B), 0x0000, + MB2(0x939A), 0x0000, MB2(0x8DF4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, MB2(0xE2A6), 0x0000, MB2(0xE2A8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2AB), 0x0000, MB2(0xE2AC), 0x0000, + MB2(0xE2A9), MB2(0xE2AA), 0x0000, 0x0000, + MB2(0xE2A7), MB2(0xE2A5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE29F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, MB2(0x95CD), MB2(0x89D3), + 0x0000, 0x0000, 0x0000, MB2(0xE2B3), + 0x0000, MB2(0xE2B0), 0x0000, MB2(0xE2B5), + 0x0000, 0x0000, MB2(0xE2B4), 0x0000, + MB2(0x9493), MB2(0x96A5), 0x0000, MB2(0x8E5A), + MB2(0xE2AE), MB2(0xE2B7), MB2(0xE2B2), 0x0000, + MB2(0xE2B1), MB2(0xE2AD), 0x0000, MB2(0xE2AF), + 0x0000, MB2(0x8AC7), 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x925C), 0x0000, + 0x0000, MB2(0x90FB), 0x0000, 0x0000, + 0x0000, MB2(0x94A0), 0x0000, 0x0000, + MB2(0xE2BC), 0x0000, 0x0000, 0x0000, + MB2(0x94A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x90DF), MB2(0xE2B9), 0x0000, 0x0000, /* 7BC0 */ + MB2(0x94CD), 0x0000, MB2(0xE2BD), MB2(0x95D1), + 0x0000, MB2(0x927A), 0x0000, MB2(0xE2B8), + MB2(0xE2BA), 0x0000, 0x0000, MB2(0xE2BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2BE), 0x0000, 0x0000, + MB2(0x8EC2), 0x0000, 0x0000, 0x0000, /* 7BE0 */ + MB2(0x93C4), MB2(0xE2C3), MB2(0xE2C2), 0x0000, + 0x0000, MB2(0xE2BF), 0x0000, 0x0000, + 0x0000, MB2(0x9855), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2C8), + 0x0000, 0x0000, MB2(0xE2CC), MB2(0xE2C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2C5), 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2C6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2CB), 0x0000, 0x0000, + 0x0000, MB2(0xE2C0), MB2(0x99D3), MB2(0xE2C7), + MB2(0xE2C1), 0x0000, 0x0000, MB2(0xE2CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D0), + 0x0000, MB2(0x8AC8), 0x0000, MB2(0xE2CD), /* 7C20 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2CE), + 0x0000, 0x0000, MB2(0xE2CF), MB2(0xE2D2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D1), + MB2(0x94F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2D3), MB2(0x97FA), MB2(0x95EB), + MB2(0xE2D8), 0x0000, 0x0000, MB2(0xE2D5), /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2D4), MB2(0x90D0), 0x0000, MB2(0xE2D7), + MB2(0xE2D9), 0x0000, 0x0000, 0x0000, + MB2(0xE2D6), 0x0000, MB2(0xE2DD), 0x0000, + MB2(0xE2DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2DB), + MB2(0xE2C4), 0x0000, 0x0000, 0x0000, /* 7C60 */ + MB2(0xE2DC), MB2(0xE2DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95C4), + 0x0000, MB2(0xE2E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96E0), 0x0000, + 0x0000, MB2(0x8BCC), MB2(0x8C48), MB2(0xE2E1), /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95B2), 0x0000, MB2(0x9088), + 0x0000, MB2(0x96AE), 0x0000, 0x0000, + MB2(0xE2E2), 0x0000, MB2(0x97B1), 0x0000, + 0x0000, MB2(0x9494), 0x0000, MB2(0x9165), + MB2(0x9453), 0x0000, 0x0000, MB2(0x8F6C), + 0x0000, 0x0000, 0x0000, MB2(0x88BE), + 0x0000, MB2(0xE2E7), MB2(0xE2E5), 0x0000, /* 7CA0 */ + MB2(0xE2E3), MB2(0x8A9F), 0x0000, MB2(0x8FCF), + MB2(0xE2E8), 0x0000, 0x0000, MB2(0xE2E6), + 0x0000, MB2(0xE2E4), MB2(0xE2EC), 0x0000, + 0x0000, MB2(0xE2EB), MB2(0xE2EA), MB2(0xE2E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2ED), 0x0000, 0x0000, + 0x0000, MB2(0xE2EE), MB2(0x90B8), 0x0000, + MB2(0xE2EF), 0x0000, MB2(0xE2F1), 0x0000, /* 7CC0 */ + 0x0000, MB2(0xE2F0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CD0), 0x0000, + 0x0000, 0x0000, MB2(0x9157), 0x0000, + 0x0000, 0x0000, MB2(0xE2F3), 0x0000, + 0x0000, 0x0000, MB2(0x939C), 0x0000, + MB2(0xE2F2), 0x0000, 0x0000, 0x0000, + MB2(0xE2F4), 0x0000, MB2(0x95B3), MB2(0x918C), + MB2(0x8D66), 0x0000, MB2(0xE2F5), 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, MB2(0x97C6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F7), + 0x0000, 0x0000, MB2(0xE2F8), 0x0000, + MB2(0xE2F9), 0x0000, MB2(0xE2FA), 0x0000, + MB2(0x8E85), 0x0000, MB2(0xE2FB), MB2(0x8C6E), + 0x0000, 0x0000, MB2(0x8B8A), 0x0000, + MB2(0x8B49), 0x0000, MB2(0xE340), 0x0000, /* 7D00 */ + MB2(0x96F1), MB2(0x8D67), MB2(0xE2FC), 0x0000, + 0x0000, 0x0000, MB2(0xE343), MB2(0x96E4), + 0x0000, MB2(0x945B), 0x0000, 0x0000, + MB2(0x9552), 0x0000, 0x0000, 0x0000, + MB2(0x8F83), MB2(0xE342), 0x0000, MB2(0x8ED1), + MB2(0x8D68), MB2(0x8E86), MB2(0x8B89), MB2(0x95B4), + MB2(0xE341), 0x0000, 0x0000, 0x0000, + MB2(0x9166), MB2(0x9661), MB2(0x8DF5), 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E87), + MB2(0x92DB), 0x0000, MB2(0xE346), MB2(0x97DD), + MB2(0x8DD7), 0x0000, MB2(0xE347), MB2(0x9061), + 0x0000, MB2(0xE349), 0x0000, 0x0000, + 0x0000, MB2(0x8FD0), MB2(0x8DAE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE348), + 0x0000, 0x0000, MB2(0x8F49), MB2(0x8CBC), /* 7D40 */ + MB2(0x9167), MB2(0xE344), MB2(0xE34A), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE345), + MB2(0x8C6F), 0x0000, MB2(0xE34D), MB2(0xE351), + MB2(0x8C8B), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE34C), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE355), + 0x0000, 0x0000, MB2(0x8D69), 0x0000, + 0x0000, MB2(0x978D), MB2(0x88BA), MB2(0xE352), /* 7D60 */ + 0x0000, 0x0000, MB2(0x8B8B), 0x0000, + MB2(0xE34F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE350), 0x0000, + 0x0000, MB2(0x939D), MB2(0xE34E), MB2(0xE34B), + 0x0000, MB2(0x8A47), MB2(0x90E2), 0x0000, + 0x0000, MB2(0x8CA6), 0x0000, 0x0000, + 0x0000, MB2(0xE357), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE354), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE356), + 0x0000, 0x0000, 0x0000, MB2(0xE353), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C70), MB2(0x91B1), MB2(0xE358), + MB2(0x918E), 0x0000, 0x0000, MB2(0xE365), + 0x0000, 0x0000, MB2(0xE361), MB2(0xE35B), /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE35F), + MB2(0x8EF8), MB2(0x88DB), MB2(0xE35A), MB2(0xE362), + MB2(0xE366), MB2(0x8D6A), MB2(0x96D4), 0x0000, + MB2(0x92D4), MB2(0xE35C), 0x0000, 0x0000, + MB2(0xE364), 0x0000, MB2(0xE359), MB2(0x925D), + 0x0000, MB2(0xE35E), MB2(0x88BB), MB2(0x96C8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE35D), + 0x0000, 0x0000, MB2(0x8BD9), MB2(0x94EA), + 0x0000, 0x0000, 0x0000, MB2(0x918D), + 0x0000, MB2(0x97CE), MB2(0x8F8F), 0x0000, + 0x0000, MB2(0xE38E), 0x0000, 0x0000, + MB2(0xE367), 0x0000, MB2(0x90FC), 0x0000, + MB2(0xE363), MB2(0xE368), MB2(0xE36A), 0x0000, + MB2(0x92F7), MB2(0xE36D), 0x0000, 0x0000, /* 7DE0 */ + MB2(0xE369), 0x0000, 0x0000, 0x0000, + MB2(0x95D2), MB2(0x8AC9), 0x0000, 0x0000, + MB2(0x96C9), 0x0000, 0x0000, MB2(0x88DC), + 0x0000, 0x0000, MB2(0xE36C), 0x0000, + MB2(0x97FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE36B), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x898F), 0x0000, 0x0000, /* 7E00 */ + MB2(0x93EA), MB2(0xE36E), 0x0000, 0x0000, + 0x0000, MB2(0xE375), MB2(0xE36F), MB2(0xE376), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE372), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x949B), + 0x0000, 0x0000, MB2(0x8EC8), MB2(0xE374), + 0x0000, MB2(0xE371), MB2(0xE377), MB2(0xE370), /* 7E20 */ + 0x0000, 0x0000, MB2(0x8F63), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9644), + 0x0000, 0x0000, MB2(0x8F6B), 0x0000, + 0x0000, MB2(0xE373), MB2(0xE380), 0x0000, + 0x0000, MB2(0xE37B), 0x0000, MB2(0xE37E), + 0x0000, MB2(0xE37C), MB2(0xE381), MB2(0xE37A), + 0x0000, MB2(0xE360), MB2(0x90D1), 0x0000, + 0x0000, MB2(0x94C9), 0x0000, MB2(0xE37D), /* 7E40 */ + 0x0000, 0x0000, MB2(0xE378), 0x0000, + 0x0000, 0x0000, MB2(0x9140), MB2(0x8C71), + 0x0000, MB2(0x8F4A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9044), MB2(0x9155), MB2(0xE384), 0x0000, + 0x0000, MB2(0xE386), MB2(0xE387), 0x0000, + 0x0000, MB2(0xE383), MB2(0xE385), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, MB2(0xE379), MB2(0xE382), + 0x0000, MB2(0xE38A), MB2(0xE389), 0x0000, + 0x0000, MB2(0x969A), 0x0000, 0x0000, + MB2(0x8C4A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE388), 0x0000, MB2(0xE38C), + MB2(0xE38B), MB2(0xE38F), 0x0000, MB2(0xE391), + 0x0000, 0x0000, MB2(0x8E5B), MB2(0xE38D), /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE392), MB2(0xE393), 0x0000, 0x0000, + MB2(0xE394), 0x0000, MB2(0xE39A), MB2(0x935A), + MB2(0xE396), 0x0000, MB2(0xE395), MB2(0xE397), + MB2(0xE398), 0x0000, MB2(0xE399), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE39B), + MB2(0xE39C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8ACA), 0x0000, + MB2(0xE39D), 0x0000, MB2(0xE39E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, MB2(0xE39F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3A0), MB2(0xE3A1), MB2(0xE3A2), 0x0000, + MB2(0xE3A3), MB2(0xE3A4), 0x0000, 0x0000, + MB2(0xE3A6), MB2(0xE3A5), 0x0000, 0x0000, + MB2(0xE3A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3A8), + MB2(0xE3A9), 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, MB2(0xE3AC), + MB2(0xE3AA), MB2(0xE3AB), MB2(0x8DDF), MB2(0x8C72), + 0x0000, 0x0000, MB2(0x9275), 0x0000, + MB2(0x94B1), 0x0000, MB2(0x8F90), 0x0000, + 0x0000, MB2(0x946C), 0x0000, MB2(0x94EB), + MB2(0xE3AD), MB2(0x9CEB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3AE), MB2(0xE3B0), /* 7F80 */ + 0x0000, MB2(0x9785), MB2(0xE3AF), MB2(0xE3B2), + MB2(0xE3B1), 0x0000, MB2(0x9772), 0x0000, + MB2(0xE3B3), 0x0000, MB2(0x94FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3B4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3B7), 0x0000, + 0x0000, MB2(0xE3B6), MB2(0xE3B5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3B8), /* 7FA0 */ + MB2(0x8C51), 0x0000, 0x0000, 0x0000, + MB2(0x9141), MB2(0x8B60), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3BC), MB2(0xE3B9), + 0x0000, 0x0000, MB2(0xE3BA), 0x0000, + 0x0000, 0x0000, MB2(0xE3BD), 0x0000, + MB2(0xE3BE), MB2(0xE3BB), 0x0000, 0x0000, + 0x0000, MB2(0x8948), 0x0000, 0x0000, + 0x0000, MB2(0x89A5), 0x0000, 0x0000, /* 7FC0 */ + 0x0000, MB2(0xE3C0), MB2(0xE3C1), 0x0000, + 0x0000, 0x0000, MB2(0xE3C2), 0x0000, + MB2(0x9782), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8F4B), 0x0000, + MB2(0xE3C4), MB2(0xE3C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9089), MB2(0xE3C5), 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, MB2(0xE3C6), 0x0000, + 0x0000, MB2(0xE3C7), 0x0000, MB2(0x8AE3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8ACB), 0x0000, 0x0000, MB2(0xE3C8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3C9), 0x0000, MB2(0x967C), + MB2(0x9783), 0x0000, 0x0000, 0x0000, + MB2(0x9773), MB2(0x9856), 0x0000, MB2(0x8D6C), /* 8000 */ + MB2(0xE3CC), MB2(0x8ED2), MB2(0xE3CB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3CD), + MB2(0x8EA7), 0x0000, 0x0000, 0x0000, + MB2(0x91CF), 0x0000, MB2(0xE3CE), 0x0000, + 0x0000, MB2(0x8D6B), 0x0000, MB2(0x96D5), + MB2(0xE3CF), MB2(0xE3D0), 0x0000, 0x0000, + MB2(0xE3D1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3D2), 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8EA8), + 0x0000, 0x0000, MB2(0x96EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3D5), + 0x0000, MB2(0x925E), 0x0000, MB2(0xE3D4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, MB2(0xE3D7), 0x0000, + 0x0000, 0x0000, MB2(0xE3D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3D8), 0x0000, + 0x0000, 0x0000, MB2(0x90B9), 0x0000, + MB2(0xE3D9), 0x0000, MB2(0xE3DA), 0x0000, + 0x0000, 0x0000, MB2(0x95B7), MB2(0xE3DB), + 0x0000, MB2(0x918F), MB2(0xE3DC), 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3DD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97FC), + MB2(0xE3E0), 0x0000, MB2(0xE3DF), MB2(0xE3DE), + MB2(0x92AE), 0x0000, MB2(0xE3E1), MB2(0x9045), + 0x0000, MB2(0xE3E2), 0x0000, 0x0000, + 0x0000, MB2(0xE3E3), MB2(0x9857), MB2(0xE3E4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + MB2(0xE3E5), MB2(0xE3E7), MB2(0xE3E6), MB2(0x94A3), + 0x0000, MB2(0x93F7), 0x0000, MB2(0x985D), + MB2(0x94A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3E9), + 0x0000, 0x0000, MB2(0x8FD1), 0x0000, + MB2(0x9549), 0x0000, MB2(0xE3EA), MB2(0xE3E8), + 0x0000, MB2(0x8ACC), 0x0000, 0x0000, + 0x0000, MB2(0x8CD2), MB2(0x8E88), 0x0000, /* 80A0 */ + 0x0000, MB2(0x94EC), 0x0000, 0x0000, + 0x0000, MB2(0x8CA8), MB2(0x9662), 0x0000, + MB2(0xE3ED), MB2(0xE3EB), 0x0000, MB2(0x8D6D), + 0x0000, MB2(0x8D6E), MB2(0x88E7), 0x0000, + MB2(0x8DE6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9478), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88DD), /* 80C0 */ + MB2(0xE3F2), 0x0000, MB2(0x925F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9477), 0x0000, MB2(0x91D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3F4), 0x0000, + 0x0000, MB2(0xE3F0), MB2(0xE3F3), MB2(0xE3EE), + 0x0000, MB2(0xE3F1), MB2(0x9645), 0x0000, + 0x0000, MB2(0x8CD3), 0x0000, 0x0000, /* 80E0 */ + MB2(0x88FB), MB2(0xE3EF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3F6), + 0x0000, MB2(0xE3F7), 0x0000, 0x0000, + MB2(0x93B7), 0x0000, 0x0000, 0x0000, + MB2(0x8BB9), 0x0000, 0x0000, 0x0000, + MB2(0xE445), MB2(0x945C), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8E89), 0x0000, /* 8100 */ + 0x0000, MB2(0x8BBA), MB2(0x90C6), MB2(0x9865), + MB2(0x96AC), MB2(0xE3F5), MB2(0x90D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B72), MB2(0xE3F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FA), /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3F9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FB), + 0x0000, MB2(0x9245), 0x0000, MB2(0x945D), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x92AF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE442), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, MB2(0xE441), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FC), + 0x0000, 0x0000, MB2(0x9074), 0x0000, + MB2(0x9585), MB2(0xE444), 0x0000, MB2(0xE443), + MB2(0x8D6F), MB2(0x9872), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE454), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, MB2(0xE448), MB2(0xE449), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8EEE), + 0x0000, 0x0000, MB2(0xE447), 0x0000, + MB2(0x8D98), MB2(0xE446), 0x0000, 0x0000, + MB2(0xE44A), 0x0000, 0x0000, 0x0000, + MB2(0x92B0), MB2(0x95A0), MB2(0x9142), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91DA), + MB2(0xE44E), 0x0000, MB2(0xE44F), MB2(0xE44B), /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE44C), 0x0000, MB2(0xE44D), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D70), + 0x0000, 0x0000, 0x0000, MB2(0xE455), + 0x0000, MB2(0xE451), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9586), 0x0000, + MB2(0x968C), MB2(0x9547), 0x0000, 0x0000, + MB2(0xE450), 0x0000, 0x0000, MB2(0xE453), /* 81A0 */ + MB2(0xE452), 0x0000, 0x0000, 0x0000, + MB2(0x9663), MB2(0xE456), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE457), 0x0000, 0x0000, MB2(0x9156), + 0x0000, MB2(0xE458), 0x0000, 0x0000, + MB2(0xE45A), 0x0000, MB2(0xE45E), 0x0000, + 0x0000, MB2(0xE45B), MB2(0xE459), MB2(0x945E), + MB2(0xE45C), 0x0000, MB2(0xE45D), 0x0000, /* 81C0 */ + 0x0000, 0x0000, MB2(0x89B0), 0x0000, + MB2(0xE464), MB2(0xE45F), 0x0000, 0x0000, + 0x0000, MB2(0xE460), 0x0000, 0x0000, + 0x0000, MB2(0xE461), 0x0000, MB2(0x919F), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE463), MB2(0xE462), MB2(0xE465), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE466), + MB2(0xE467), 0x0000, 0x0000, MB2(0x9062), /* 81E0 */ + 0x0000, MB2(0x89E7), 0x0000, MB2(0xE468), + MB2(0x97D5), 0x0000, MB2(0x8EA9), 0x0000, + 0x0000, MB2(0x8F4C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8E8A), + MB2(0x9276), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE469), MB2(0xE46A), + MB2(0x8950), 0x0000, MB2(0xE46B), 0x0000, + 0x0000, MB2(0xE46C), MB2(0xE46D), 0x0000, /* 8200 */ + 0x0000, MB2(0xE46E), 0x0000, MB2(0xE46F), + MB2(0x8BBB), MB2(0x9DA8), MB2(0xE470), 0x0000, + MB2(0x90E3), MB2(0xE471), MB2(0x8EC9), 0x0000, + MB2(0xE472), 0x0000, MB2(0x98AE), 0x0000, + 0x0000, 0x0000, MB2(0xE473), MB2(0x95DC), + MB2(0x8ADA), 0x0000, 0x0000, MB2(0x9143), + MB2(0x8F77), 0x0000, MB2(0x9591), MB2(0x8F4D), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE474), MB2(0x8D71), MB2(0xE475), + MB2(0x94CA), 0x0000, MB2(0xE484), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE477), + 0x0000, MB2(0x91C7), MB2(0x9495), MB2(0x8CBD), + MB2(0xE476), MB2(0x9144), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE478), 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, MB2(0x92F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE47A), MB2(0xE479), MB2(0xE47C), 0x0000, + 0x0000, MB2(0xE47B), 0x0000, MB2(0xE47D), + 0x0000, 0x0000, MB2(0xE480), 0x0000, /* 8260 */ + MB2(0xE47E), 0x0000, MB2(0x8ACD), 0x0000, + MB2(0xE481), 0x0000, MB2(0xE482), MB2(0xE483), + 0x0000, 0x0000, MB2(0x8DAF), MB2(0x97C7), + 0x0000, MB2(0xE485), MB2(0x9046), 0x0000, + 0x0000, 0x0000, MB2(0x8990), MB2(0xE486), + MB2(0xE487), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE488), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x88F0), + 0x0000, MB2(0xE489), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE48A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9587), 0x0000, 0x0000, + 0x0000, MB2(0x8EC5), 0x0000, MB2(0xE48C), + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, MB2(0x8A48), MB2(0x88B0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE48B), + MB2(0xE48E), MB2(0x946D), 0x0000, MB2(0x9063), + 0x0000, MB2(0x89D4), 0x0000, MB2(0x9646), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C7C), MB2(0x8BDA), 0x0000, MB2(0xE48D), + 0x0000, MB2(0x89E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, MB2(0x8AA1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8991), MB2(0xE492), MB2(0x97E8), + MB2(0x91DB), 0x0000, 0x0000, MB2(0x9563), + 0x0000, MB2(0xE49E), 0x0000, MB2(0x89D5), + MB2(0xE49C), 0x0000, MB2(0xE49A), MB2(0xE491), + 0x0000, MB2(0xE48F), 0x0000, MB2(0xE490), /* 82E0 */ + 0x0000, MB2(0x8EE1), MB2(0x8BEA), MB2(0x9297), + 0x0000, 0x0000, 0x0000, MB2(0x93CF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8970), 0x0000, MB2(0xE494), + MB2(0xE493), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE499), MB2(0xE495), MB2(0xE498), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x96CE), MB2(0xE497), /* 8300 */ + MB2(0x89D6), MB2(0x8A9D), MB2(0xE49B), 0x0000, + 0x0000, MB2(0xE49D), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C73), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4A1), MB2(0xE4AA), + MB2(0xE4AB), 0x0000, 0x0000, 0x0000, + MB2(0x88A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4B2), /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x88EF), 0x0000, 0x0000, MB2(0xE4A9), + 0x0000, 0x0000, 0x0000, MB2(0xE4A8), + 0x0000, MB2(0xE4A3), MB2(0xE4A2), 0x0000, + MB2(0xE4A0), MB2(0xE49F), MB2(0x9283), 0x0000, + MB2(0x91F9), MB2(0xE4A5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4A4), 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, MB2(0xE4A7), 0x0000, 0x0000, + 0x0000, MB2(0x9190), MB2(0x8C74), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8960), + MB2(0xE4A6), 0x0000, MB2(0x8D72), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9191), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4B8), + 0x0000, MB2(0xE4B9), 0x0000, MB2(0x89D7), + 0x0000, 0x0000, 0x0000, MB2(0x89AC), + MB2(0xE4B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, MB2(0xE4AC), 0x0000, MB2(0xE4B4), + 0x0000, MB2(0xE4BB), MB2(0xE4B5), 0x0000, + 0x0000, 0x0000, MB2(0xE4B3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE496), + 0x0000, 0x0000, MB2(0xE4B1), 0x0000, + 0x0000, 0x0000, MB2(0xE4AD), 0x0000, + 0x0000, 0x0000, MB2(0x8ACE), MB2(0xE4AF), + MB2(0xE4BA), 0x0000, MB2(0xE4B0), 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4BC), 0x0000, MB2(0xE4AE), MB2(0x949C), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9789), 0x0000, 0x0000, + 0x0000, MB2(0xE4B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4CD), 0x0000, 0x0000, + 0x0000, MB2(0xE4C5), 0x0000, 0x0000, /* 83C0 */ + 0x0000, MB2(0x909B), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B65), 0x0000, + MB2(0x8BDB), 0x0000, MB2(0xE4C0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89D9), + 0x0000, 0x0000, MB2(0x8FD2), 0x0000, + MB2(0xE4C3), 0x0000, 0x0000, 0x0000, + MB2(0x8DD8), 0x0000, 0x0000, MB2(0x9370), + MB2(0xE4C8), 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95EC), 0x0000, MB2(0xE4BF), + 0x0000, 0x0000, 0x0000, MB2(0x89D8), + MB2(0x8CD4), MB2(0x9548), MB2(0xE4C9), 0x0000, + MB2(0xE4BD), 0x0000, 0x0000, MB2(0xE4C6), + 0x0000, 0x0000, 0x0000, MB2(0xE4D0), + 0x0000, MB2(0xE4C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4C2), /* 8400 */ + MB2(0x93B8), 0x0000, 0x0000, MB2(0xE4C7), + 0x0000, 0x0000, 0x0000, MB2(0xE4C4), + MB2(0x9647), MB2(0xE4CA), MB2(0x88DE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4BE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4CC), 0x0000, MB2(0xE4CB), 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x948B), MB2(0xE4D2), 0x0000, + MB2(0xE4DD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A9E), 0x0000, 0x0000, + 0x0000, MB2(0xE4E0), 0x0000, 0x0000, + MB2(0xE4CE), 0x0000, 0x0000, 0x0000, + MB2(0xE4D3), MB2(0x978E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, MB2(0xE4DC), 0x0000, + 0x0000, MB2(0x9774), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9298), + 0x0000, 0x0000, 0x0000, MB2(0x8A8B), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9592), MB2(0xE4E2), MB2(0x939F), /* 8460 */ + 0x0000, 0x0000, MB2(0x88AF), 0x0000, + 0x0000, MB2(0xE4DB), 0x0000, MB2(0xE4D7), + MB2(0x9192), MB2(0xE4D1), MB2(0xE4D9), MB2(0xE4DE), + 0x0000, MB2(0x944B), 0x0000, 0x0000, + 0x0000, MB2(0x88A8), 0x0000, MB2(0xE4D6), + 0x0000, MB2(0xE4DF), MB2(0x9598), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4DA), 0x0000, /* 8480 */ + MB2(0xE4D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8FD3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F4E), 0x0000, 0x0000, 0x0000, + MB2(0x8EAA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x96D6), 0x0000, 0x0000, + MB2(0x9566), 0x0000, 0x0000, MB2(0xE4E5), + 0x0000, MB2(0xE4EE), 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8A97), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FF6), MB2(0xE4E3), 0x0000, MB2(0xE4E8), + MB2(0x9193), 0x0000, 0x0000, MB2(0xE4E4), + 0x0000, MB2(0xE4EB), 0x0000, 0x0000, /* 84C0 */ + MB2(0x927E), 0x0000, MB2(0xE4EC), 0x0000, + 0x0000, MB2(0x9775), MB2(0xE4E1), MB2(0x8A57), + 0x0000, MB2(0xE4E7), 0x0000, 0x0000, + MB2(0xE4EA), MB2(0x96AA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4ED), 0x0000, + 0x0000, MB2(0xE4E6), MB2(0xE4E9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9648), 0x0000, MB2(0x9840), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4F8), 0x0000, 0x0000, MB2(0xE4F0), + MB2(0x8EC1), 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, MB2(0xE4CF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95CC), 0x0000, MB2(0x96A0), + MB2(0xE4F7), MB2(0xE4F6), 0x0000, MB2(0xE4F2), + MB2(0xE4F3), 0x0000, MB2(0x8955), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4F5), + 0x0000, MB2(0xE4EF), 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, MB2(0x92D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4F4), MB2(0x88FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x91A0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x95C1), 0x0000, 0x0000, + MB2(0xE4F9), MB2(0xE540), 0x0000, MB2(0x94D7), /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4FC), MB2(0x8FD4), MB2(0x8EC7), MB2(0xE542), + 0x0000, 0x0000, MB2(0x8BBC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE543), 0x0000, MB2(0x9599), + MB2(0xE4FB), 0x0000, MB2(0xE4D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4FA), /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x986E), MB2(0x93A0), MB2(0x9593), 0x0000, + 0x0000, MB2(0xE54A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE550), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE551), 0x0000, + MB2(0xE544), 0x0000, 0x0000, 0x0000, /* 8580 */ + MB2(0x9496), 0x0000, 0x0000, MB2(0xE54E), + MB2(0xE546), 0x0000, MB2(0xE548), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE552), MB2(0xE547), 0x0000, 0x0000, + MB2(0xE54B), 0x0000, 0x0000, MB2(0x8992), + 0x0000, MB2(0x93E3), 0x0000, MB2(0xE54C), + MB2(0xE54F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + MB2(0xE545), 0x0000, MB2(0x9145), 0x0000, + MB2(0xE549), MB2(0x8E46), MB2(0x9064), MB2(0x8C4F), + MB2(0x96F2), 0x0000, MB2(0x96F7), MB2(0x8F92), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE556), MB2(0xE554), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x986D), 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE553), 0x0000, 0x0000, + 0x0000, MB2(0x9795), 0x0000, MB2(0xE555), + MB2(0xE557), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE558), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE55B), MB2(0xE559), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + MB2(0x93A1), MB2(0xE55A), 0x0000, 0x0000, + 0x0000, MB2(0x94CB), MB2(0xE54D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F93), + 0x0000, MB2(0xE55C), MB2(0xE561), MB2(0x9194), + 0x0000, 0x0000, MB2(0xE560), 0x0000, + 0x0000, 0x0000, MB2(0xE541), 0x0000, /* 8600 */ + 0x0000, 0x0000, MB2(0xE562), MB2(0x9168), + 0x0000, 0x0000, MB2(0xE55D), MB2(0xE55F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE55E), + 0x0000, 0x0000, MB2(0x9F50), MB2(0x9F41), + 0x0000, 0x0000, MB2(0xE564), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE563), 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9796), 0x0000, MB2(0xE1BA), + MB2(0xE565), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE566), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE567), MB2(0x8CD5), 0x0000, + MB2(0x8B73), 0x0000, 0x0000, 0x0000, + MB2(0xE569), MB2(0x997C), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B95), 0x0000, + MB2(0x97B8), 0x0000, MB2(0x8BF1), MB2(0xE56A), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE56B), + 0x0000, 0x0000, 0x0000, MB2(0x928E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE56C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93F8), 0x0000, MB2(0x88B8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89E1), MB2(0xE571), + MB2(0xE572), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE56D), + 0x0000, MB2(0x8E5C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE56E), /* 86A0 */ + MB2(0x9461), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE56F), MB2(0xE570), MB2(0xE57A), + 0x0000, 0x0000, 0x0000, MB2(0xE574), + MB2(0xE577), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE573), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + MB2(0xE575), 0x0000, MB2(0xE576), MB2(0x8ED6), + 0x0000, MB2(0xE578), 0x0000, MB2(0x9260), + 0x0000, MB2(0x8C75), MB2(0x8A61), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE57B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A5E), 0x0000, MB2(0xE581), + 0x0000, 0x0000, MB2(0xE57C), MB2(0xE580), + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + MB2(0x94B8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE57D), 0x0000, 0x0000, + MB2(0xE57E), MB2(0x9567), MB2(0x94D8), MB2(0xE582), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91FB), MB2(0xE58C), 0x0000, MB2(0xE588), + 0x0000, 0x0000, MB2(0x89E9), 0x0000, + MB2(0xE586), 0x0000, MB2(0x9649), MB2(0xE587), /* 8700 */ + 0x0000, 0x0000, MB2(0xE584), 0x0000, + MB2(0xE585), MB2(0xE58A), MB2(0xE58D), 0x0000, + 0x0000, MB2(0xE58B), 0x0000, 0x0000, + 0x0000, MB2(0xE589), MB2(0xE583), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9277), 0x0000, MB2(0xE594), 0x0000, + MB2(0x96A8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, MB2(0xE592), 0x0000, 0x0000, + 0x0000, MB2(0xE593), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE58E), 0x0000, 0x0000, MB2(0xE590), + 0x0000, 0x0000, 0x0000, MB2(0xE591), + 0x0000, 0x0000, 0x0000, MB2(0xE58F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x90E4), 0x0000, MB2(0x9858), + MB2(0xE598), 0x0000, MB2(0xE599), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE59F), + 0x0000, MB2(0x9049), 0x0000, MB2(0xE59B), + 0x0000, MB2(0xE59E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE596), + MB2(0xE595), 0x0000, 0x0000, MB2(0xE5A0), /* 8760 */ + 0x0000, 0x0000, MB2(0x89DA), 0x0000, + MB2(0xE59C), 0x0000, MB2(0xE5A1), 0x0000, + 0x0000, 0x0000, MB2(0xE59D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE59A), 0x0000, MB2(0x92B1), 0x0000, + MB2(0xE597), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9488), + 0x0000, 0x0000, MB2(0xE5A5), 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x975A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5A4), + 0x0000, 0x0000, MB2(0xE5A3), 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5AC), + 0x0000, 0x0000, 0x0000, MB2(0xE5A6), + 0x0000, 0x0000, 0x0000, MB2(0xE5AE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9786), MB2(0xE5B1), + 0x0000, MB2(0xE5A8), 0x0000, 0x0000, + MB2(0xE5A9), 0x0000, 0x0000, 0x0000, /* 87C0 */ + MB2(0xE5AD), 0x0000, MB2(0xE5B0), MB2(0xE5AF), + 0x0000, 0x0000, 0x0000, MB2(0xE5A7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5AA), 0x0000, MB2(0xE5BB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5B4), 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5B2), + 0x0000, 0x0000, MB2(0xE5B3), 0x0000, + 0x0000, 0x0000, MB2(0xE5B8), MB2(0xE5B9), + 0x0000, MB2(0x8A49), 0x0000, MB2(0x8B61), + 0x0000, 0x0000, MB2(0xE5B7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, MB2(0xE5A2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5B6), MB2(0xE5BA), MB2(0xE5B5), + 0x0000, MB2(0xE5BC), 0x0000, 0x0000, + 0x0000, MB2(0xE5BE), MB2(0xE5BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5C0), MB2(0xE5BF), MB2(0xE579), /* 8820 */ + 0x0000, 0x0000, 0x0000, MB2(0xE5C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5C1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5C2), 0x0000, + 0x0000, MB2(0xE5C3), 0x0000, MB2(0xE5C5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C8C), 0x0000, MB2(0xE5C7), 0x0000, /* 8840 */ + MB2(0xE5C6), 0x0000, MB2(0x8F4F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8D73), MB2(0x9FA5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5C8), MB2(0x8F70), + 0x0000, 0x0000, 0x0000, MB2(0x8A58), + 0x0000, MB2(0xE5C9), 0x0000, MB2(0x8971), + 0x0000, MB2(0x8FD5), MB2(0xE5CA), 0x0000, + 0x0000, MB2(0x8D74), MB2(0xE5CB), MB2(0x88DF), /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x955C), 0x0000, 0x0000, MB2(0xE5CC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x908A), 0x0000, MB2(0xE5D3), 0x0000, + 0x0000, MB2(0xE5D0), 0x0000, MB2(0x928F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5D1), MB2(0xE5CE), MB2(0x8BDC), + 0x0000, MB2(0xE5CD), MB2(0xE5D4), 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C55), 0x0000, 0x0000, MB2(0x91DC), + 0x0000, MB2(0xE5DA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5D6), 0x0000, + 0x0000, 0x0000, MB2(0x91B3), MB2(0xE5D5), + 0x0000, MB2(0xE5D8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5CF), 0x0000, + 0x0000, 0x0000, MB2(0xE5D9), 0x0000, /* 88A0 */ + MB2(0xE5DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94ED), + 0x0000, 0x0000, MB2(0xE5D7), 0x0000, + MB2(0xE5DC), MB2(0xE5DE), 0x0000, 0x0000, + MB2(0x8CD1), MB2(0xE5D2), 0x0000, MB2(0x88BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5DD), + 0x0000, MB2(0x8DD9), MB2(0x97F4), MB2(0xE5DF), /* 88C0 */ + MB2(0xE5E0), MB2(0x9195), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97A0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5E1), MB2(0x9754), 0x0000, 0x0000, + MB2(0xE5E2), MB2(0xE5E3), 0x0000, 0x0000, + MB2(0x95E2), MB2(0xE5E4), 0x0000, MB2(0x8DBE), + 0x0000, MB2(0x97A1), 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5EA), MB2(0x8FD6), + MB2(0xE5E8), 0x0000, 0x0000, 0x0000, + MB2(0x9787), MB2(0xE5E5), 0x0000, 0x0000, + MB2(0xE5E7), MB2(0x90BB), MB2(0x909E), 0x0000, + 0x0000, 0x0000, MB2(0xE5E6), 0x0000, /* 8900 */ + MB2(0xE5EB), 0x0000, 0x0000, MB2(0x95A1), + 0x0000, 0x0000, MB2(0xE5ED), 0x0000, + MB2(0xE5EC), 0x0000, 0x0000, 0x0000, + MB2(0x8A8C), 0x0000, MB2(0x964A), MB2(0xE5EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5FA), MB2(0xE5F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, MB2(0xE5F1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5F2), MB2(0xE5F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5F7), 0x0000, + MB2(0xE5F8), 0x0000, 0x0000, MB2(0xE5F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5F4), 0x0000, MB2(0xE5EF), /* 8940 */ + MB2(0xE5F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5F9), MB2(0xE8B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5FC), MB2(0x8BDD), + MB2(0xE5FB), 0x0000, 0x0000, 0x0000, /* 8960 */ + MB2(0xE641), 0x0000, MB2(0xE640), 0x0000, + 0x0000, 0x0000, MB2(0xE643), 0x0000, + 0x0000, MB2(0xE642), 0x0000, MB2(0xE644), + 0x0000, 0x0000, MB2(0x8F50), 0x0000, + MB2(0xE645), 0x0000, 0x0000, MB2(0xE646), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE647), MB2(0x90BC), + 0x0000, MB2(0x9776), 0x0000, MB2(0xE648), /* 8980 */ + 0x0000, 0x0000, MB2(0x95A2), MB2(0x9465), + MB2(0xE649), 0x0000, MB2(0xE64A), MB2(0x8CA9), + 0x0000, 0x0000, 0x0000, MB2(0x8B4B), + 0x0000, 0x0000, 0x0000, MB2(0xE64B), + 0x0000, 0x0000, MB2(0x8E8B), MB2(0x9460), + MB2(0xE64C), 0x0000, MB2(0x8A6F), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE64D), 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, MB2(0xE64F), MB2(0x9797), + 0x0000, MB2(0xE64E), MB2(0x9065), 0x0000, + MB2(0xE650), 0x0000, 0x0000, MB2(0xE651), + 0x0000, 0x0000, MB2(0xE652), MB2(0x8ACF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE653), 0x0000, + 0x0000, MB2(0xE654), 0x0000, MB2(0xE655), + MB2(0xE656), 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8A70), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE657), 0x0000, + MB2(0xE658), MB2(0xE659), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x89F0), /* 89E0 */ + 0x0000, 0x0000, MB2(0x9047), MB2(0xE65A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE65B), 0x0000, 0x0000, 0x0000, + MB2(0xE65C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8CBE), 0x0000, MB2(0x92F9), MB2(0xE65D), /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C76), 0x0000, MB2(0x9075), 0x0000, + MB2(0xE660), 0x0000, MB2(0x93A2), 0x0000, + MB2(0xE65F), 0x0000, 0x0000, MB2(0x8C50), + 0x0000, 0x0000, MB2(0xE65E), MB2(0x91F5), + MB2(0x8B4C), 0x0000, 0x0000, MB2(0xE661), + 0x0000, MB2(0xE662), 0x0000, MB2(0x8FD7), + 0x0000, 0x0000, 0x0000, MB2(0x8C8D), /* 8A20 */ + 0x0000, MB2(0xE663), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x964B), 0x0000, + 0x0000, MB2(0x90DD), 0x0000, 0x0000, + 0x0000, MB2(0x8B96), 0x0000, MB2(0x96F3), + MB2(0x9169), 0x0000, MB2(0xE664), 0x0000, + 0x0000, 0x0000, MB2(0x9066), MB2(0x9290), + MB2(0x8FD8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE665), 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, MB2(0xE668), 0x0000, + MB2(0xE669), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8DBC), MB2(0x91C0), MB2(0xE667), 0x0000, + MB2(0x8FD9), MB2(0x955D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE666), + 0x0000, 0x0000, MB2(0x8E8C), 0x0000, + MB2(0x8972), 0x0000, MB2(0xE66D), MB2(0x8C77), /* 8A60 */ + 0x0000, 0x0000, MB2(0x8E8E), 0x0000, + 0x0000, MB2(0x8E8D), 0x0000, MB2(0x986C), + MB2(0xE66C), MB2(0xE66B), MB2(0x9146), 0x0000, + MB2(0x8B6C), MB2(0x9862), MB2(0x8A59), MB2(0x8FDA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE66A), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE66F), 0x0000, /* 8A80 */ + MB2(0xE670), MB2(0xE66E), 0x0000, MB2(0x8CD6), + 0x0000, MB2(0x975F), 0x0000, 0x0000, + MB2(0x8E8F), MB2(0x9446), 0x0000, 0x0000, + 0x0000, MB2(0xE673), 0x0000, MB2(0x90BE), + 0x0000, MB2(0x9261), 0x0000, 0x0000, + MB2(0x9755), 0x0000, MB2(0xE676), 0x0000, + 0x0000, 0x0000, MB2(0x8CEA), 0x0000, + MB2(0x90BD), MB2(0xE672), 0x0000, MB2(0xE677), /* 8AA0 */ + MB2(0x8CEB), MB2(0xE674), MB2(0xE675), 0x0000, + MB2(0xE671), 0x0000, 0x0000, 0x0000, + MB2(0x90E0), MB2(0x93C7), 0x0000, 0x0000, + MB2(0x924E), 0x0000, MB2(0x89DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x94EE), 0x0000, 0x0000, + MB2(0x8B62), 0x0000, 0x0000, MB2(0x92B2), + 0x0000, 0x0000, MB2(0xE67A), 0x0000, /* 8AC0 */ + MB2(0xE678), 0x0000, 0x0000, MB2(0x926B), + 0x0000, 0x0000, 0x0000, MB2(0x90BF), + MB2(0x8AD0), MB2(0xE679), 0x0000, MB2(0x907A), + 0x0000, 0x0000, MB2(0x97C8), 0x0000, + 0x0000, 0x0000, MB2(0x985F), 0x0000, + 0x0000, 0x0000, MB2(0xE67B), MB2(0xE687), + MB2(0x92B3), 0x0000, MB2(0xE686), 0x0000, + MB2(0xE683), MB2(0xE68B), MB2(0xE684), 0x0000, /* 8AE0 */ + MB2(0xE680), 0x0000, MB2(0x92FA), MB2(0xE67E), + 0x0000, 0x0000, 0x0000, MB2(0xE67C), + 0x0000, MB2(0x9740), MB2(0x8E90), 0x0000, + 0x0000, MB2(0xE681), 0x0000, MB2(0xE67D), + 0x0000, 0x0000, 0x0000, MB2(0xE685), + MB2(0x8F94), 0x0000, MB2(0x8CBF), 0x0000, + 0x0000, 0x0000, MB2(0x91F8), 0x0000, + MB2(0x9664), MB2(0x8979), MB2(0x88E0), 0x0000, /* 8B00 */ + MB2(0x93A3), 0x0000, 0x0000, MB2(0xE689), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE688), 0x0000, MB2(0x93E4), 0x0000, + MB2(0xE68D), 0x0000, 0x0000, 0x0000, + MB2(0xE682), 0x0000, MB2(0xE68C), MB2(0xE68E), + 0x0000, MB2(0x8CAA), MB2(0xE68A), MB2(0x8D75), + 0x0000, MB2(0x8ED3), 0x0000, 0x0000, + MB2(0xE68F), MB2(0x9777), 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, MB2(0xE692), 0x0000, + MB2(0xE695), 0x0000, 0x0000, MB2(0xE693), + MB2(0x9554), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE690), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8BDE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE694), 0x0000, + 0x0000, MB2(0xE696), 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE69A), 0x0000, 0x0000, + MB2(0xE697), 0x0000, MB2(0xE699), MB2(0xE698), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE69B), 0x0000, + MB2(0x8EAF), 0x0000, MB2(0xE69D), MB2(0xE69C), + MB2(0x9588), 0x0000, 0x0000, MB2(0xE69F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, MB2(0x8C78), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE69E), + MB2(0xE6A0), 0x0000, 0x0000, MB2(0xE6A1), + MB2(0x8B63), MB2(0xE3BF), MB2(0x8FF7), 0x0000, + MB2(0xE6A2), 0x0000, 0x0000, MB2(0x8CEC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6A3), 0x0000, 0x0000, + MB2(0xE6A4), 0x0000, 0x0000, MB2(0x8E5D), /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9DCC), 0x0000, + MB2(0xE6A5), 0x0000, MB2(0xE6A6), 0x0000, + MB2(0x8F51), 0x0000, MB2(0xE6A7), MB2(0xE6A8), + 0x0000, 0x0000, MB2(0xE6A9), 0x0000, + 0x0000, MB2(0xE6AA), MB2(0xE6AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x924A), + 0x0000, 0x0000, MB2(0xE6AC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6AE), + 0x0000, MB2(0xE6AD), 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, MB2(0x93A4), 0x0000, + MB2(0xE6AF), 0x0000, MB2(0x964C), 0x0000, + MB2(0xE6B0), 0x0000, MB2(0xE6B1), 0x0000, + MB2(0xE6B2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6B3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x93D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8FDB), MB2(0xE6B4), 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8D8B), MB2(0x98AC), + MB2(0xE6B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6B6), MB2(0x955E), MB2(0xE6B7), 0x0000, + MB2(0xE6BF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6B8), 0x0000, /* 8C80 */ + 0x0000, MB2(0xE6BA), 0x0000, 0x0000, + 0x0000, MB2(0xE6B9), MB2(0xE6BB), 0x0000, + MB2(0x9665), MB2(0xE6BC), MB2(0xE6BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6BE), 0x0000, 0x0000, 0x0000, + MB2(0xE6C0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A4C), MB2(0x92E5), 0x0000, + MB2(0x9589), MB2(0x8DE0), MB2(0x8D76), 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, MB2(0x956E), + MB2(0x89DD), MB2(0x94CC), MB2(0xE6C3), MB2(0x8AD1), + MB2(0x90D3), MB2(0xE6C2), MB2(0xE6C7), MB2(0x9299), + MB2(0x96E1), 0x0000, MB2(0xE6C5), MB2(0xE6C6), + MB2(0x8B4D), 0x0000, MB2(0xE6C8), MB2(0x9483), + MB2(0x91DD), 0x0000, 0x0000, MB2(0x94EF), + MB2(0x935C), MB2(0xE6C4), 0x0000, MB2(0x9666), + MB2(0x89EA), MB2(0xE6CA), MB2(0x9847), MB2(0x92C0), /* 8CC0 */ + MB2(0x9864), 0x0000, 0x0000, MB2(0x8E91), + MB2(0xE6C9), 0x0000, MB2(0x91AF), 0x0000, + 0x0000, MB2(0xE6DA), MB2(0x9147), 0x0000, + 0x0000, MB2(0x93F6), 0x0000, MB2(0x956F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6CD), MB2(0x8E5E), + MB2(0x8E92), 0x0000, MB2(0x8FDC), 0x0000, + MB2(0x9485), 0x0000, MB2(0x8CAB), MB2(0xE6CC), /* 8CE0 */ + MB2(0xE6CB), 0x0000, MB2(0x958A), 0x0000, + 0x0000, 0x0000, MB2(0x8EBF), 0x0000, + 0x0000, MB2(0x9371), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6CF), MB2(0xE6D0), + MB2(0x8D77), MB2(0xE6CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + MB2(0xE6D1), MB2(0xE6D2), 0x0000, MB2(0xE6D4), + MB2(0x91A1), 0x0000, MB2(0xE6D3), MB2(0x8AE4), + 0x0000, MB2(0xE6D6), 0x0000, MB2(0xE6D5), + MB2(0xE6D7), 0x0000, 0x0000, MB2(0xE6D9), + MB2(0xE6DB), 0x0000, MB2(0xE6DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + MB2(0x90D4), 0x0000, MB2(0x8ECD), MB2(0xE6DD), + 0x0000, 0x0000, 0x0000, MB2(0x8A71), + 0x0000, MB2(0xE6DE), 0x0000, 0x0000, + MB2(0x9196), MB2(0xE6DF), 0x0000, MB2(0xE6E0), + MB2(0x958B), 0x0000, 0x0000, MB2(0x8B4E), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E1), 0x0000, 0x0000, /* 8D80 */ + 0x0000, MB2(0x92B4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x897A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8EEF), /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9096), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6E5), 0x0000, + 0x0000, 0x0000, MB2(0xE6E4), 0x0000, + 0x0000, 0x0000, MB2(0xE6E3), 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6EB), + MB2(0xE6E9), 0x0000, 0x0000, MB2(0xE6E6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6E8), 0x0000, + 0x0000, 0x0000, MB2(0xE6E7), MB2(0xE6EA), + 0x0000, MB2(0x8B97), 0x0000, MB2(0xE6EE), + 0x0000, MB2(0x90D5), 0x0000, MB2(0xE6EF), /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8CD7), 0x0000, MB2(0xE6EC), MB2(0xE6ED), + 0x0000, 0x0000, 0x0000, MB2(0x9848), + 0x0000, 0x0000, 0x0000, MB2(0x92B5), + 0x0000, MB2(0x9148), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6F0), 0x0000, 0x0000, MB2(0xE6F3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6F1), MB2(0xE6F2), MB2(0x9778), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93A5), + MB2(0xE6F6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6F4), MB2(0xE6F5), MB2(0xE6F7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE748), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6FA), 0x0000, 0x0000, 0x0000, + MB2(0xE6FB), MB2(0xE6F9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F8), 0x0000, /* 8E40 */ + MB2(0x92FB), 0x0000, 0x0000, MB2(0xE740), + MB2(0xE744), MB2(0xE741), MB2(0xE6FC), 0x0000, + MB2(0xE742), 0x0000, 0x0000, 0x0000, + MB2(0xE743), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE74A), 0x0000, 0x0000, + 0x0000, MB2(0xE745), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x90D6), + MB2(0xE747), 0x0000, 0x0000, MB2(0xE749), /* 8E60 */ + MB2(0xE746), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE74C), 0x0000, + MB2(0x8F52), 0x0000, MB2(0xE74B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE74D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE74E), 0x0000, 0x0000, /* 8E80 */ + MB2(0xE751), MB2(0xE750), 0x0000, MB2(0xE74F), + 0x0000, 0x0000, MB2(0xE753), MB2(0xE752), + 0x0000, MB2(0x96F4), 0x0000, 0x0000, + 0x0000, MB2(0xE755), 0x0000, MB2(0xE754), + MB2(0xE756), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE757), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE759), 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE758), MB2(0x9067), + MB2(0xE75A), 0x0000, 0x0000, MB2(0x8BEB), + MB2(0xE75B), MB2(0xE75D), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE75E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, MB2(0xE75F), MB2(0xE75C), 0x0000, + MB2(0xE760), 0x0000, MB2(0x8ED4), MB2(0xE761), + MB2(0x8B4F), MB2(0x8C52), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8CAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE762), + 0x0000, 0x0000, 0x0000, MB2(0x93EE), + 0x0000, 0x0000, MB2(0x935D), MB2(0xE763), /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE766), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EB2), 0x0000, 0x0000, MB2(0xE765), + MB2(0xE764), MB2(0x8C79), MB2(0xE767), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8A72), /* 8F00 */ + 0x0000, MB2(0xE769), 0x0000, 0x0000, + 0x0000, MB2(0x8DDA), MB2(0xE768), 0x0000, + MB2(0xE771), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE76B), MB2(0xE76D), + MB2(0x95E3), MB2(0xE76A), 0x0000, 0x0000, + 0x0000, MB2(0xE76C), 0x0000, MB2(0xE770), + MB2(0xE76E), MB2(0x8B50), 0x0000, MB2(0xE76F), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, MB2(0xE772), 0x0000, + 0x0000, MB2(0x9479), MB2(0x97D6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8F53), + 0x0000, 0x0000, 0x0000, MB2(0xE773), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9741), MB2(0xE775), 0x0000, MB2(0xE774), + 0x0000, 0x0000, MB2(0xE778), MB2(0x9760), + 0x0000, 0x0000, MB2(0xE777), 0x0000, /* 8F40 */ + MB2(0x8A8D), MB2(0xE776), MB2(0xE77B), 0x0000, + 0x0000, MB2(0xE77A), 0x0000, 0x0000, + MB2(0xE779), MB2(0x9351), MB2(0xE77C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE77D), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE77E), 0x0000, 0x0000, MB2(0x8D8C), + 0x0000, MB2(0x8C44), MB2(0xE780), MB2(0xE781), /* 8F60 */ + MB2(0xE782), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9068), + MB2(0xE783), 0x0000, MB2(0x8EAB), MB2(0xE784), + 0x0000, 0x0000, 0x0000, MB2(0xE785), /* 8FA0 */ + 0x0000, 0x0000, 0x0000, MB2(0x999F), + MB2(0x999E), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE786), MB2(0xE390), MB2(0xE787), + MB2(0x9243), MB2(0x904A), MB2(0x945F), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE788), + 0x0000, 0x0000, MB2(0x95D3), MB2(0x92D2), + MB2(0x8D9E), 0x0000, 0x0000, MB2(0x9248), + 0x0000, 0x0000, MB2(0x8949), 0x0000, /* 8FC0 */ + MB2(0x9698), MB2(0x9076), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8C7D), 0x0000, + 0x0000, MB2(0x8BDF), 0x0000, 0x0000, + MB2(0x95D4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE789), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE78B), 0x0000, /* 8FE0 */ + 0x0000, MB2(0xE78A), MB2(0x89DE), 0x0000, + 0x0000, MB2(0x93F4), MB2(0xE78C), MB2(0x9497), + 0x0000, MB2(0x9352), 0x0000, MB2(0xE78D), + MB2(0x8F71), 0x0000, 0x0000, 0x0000, + MB2(0xE78F), 0x0000, 0x0000, MB2(0x96C0), + MB2(0xE79E), MB2(0xE791), MB2(0xE792), 0x0000, + 0x0000, MB2(0x92C7), 0x0000, 0x0000, + MB2(0x91DE), MB2(0x9197), 0x0000, MB2(0x93A6), /* 9000 */ + 0x0000, MB2(0xE790), MB2(0x8B74), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE799), + 0x0000, MB2(0xE796), MB2(0xE7A3), MB2(0x93A7), + MB2(0x9280), MB2(0xE793), 0x0000, MB2(0x92FC), + MB2(0x9372), MB2(0xE794), MB2(0xE798), MB2(0x9080), + 0x0000, MB2(0x9487), MB2(0x92CA), 0x0000, + 0x0000, MB2(0x90C0), MB2(0xE797), MB2(0x91AC), + MB2(0x91A2), MB2(0xE795), MB2(0x88A7), MB2(0x9841), /* 9020 */ + 0x0000, 0x0000, 0x0000, MB2(0xE79A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x91DF), 0x0000, + 0x0000, MB2(0x8F54), MB2(0x9069), 0x0000, + 0x0000, MB2(0xE79C), MB2(0xE79B), 0x0000, + MB2(0x88ED), MB2(0xE79D), 0x0000, 0x0000, + MB2(0x954E), 0x0000, MB2(0xE7A5), 0x0000, + 0x0000, MB2(0x93D9), MB2(0x908B), 0x0000, /* 9040 */ + 0x0000, MB2(0x9278), 0x0000, MB2(0x8BF6), + 0x0000, MB2(0xE7A4), MB2(0x9756), MB2(0x895E), + 0x0000, MB2(0x95D5), MB2(0x89DF), MB2(0xE79F), + MB2(0xE7A0), MB2(0xE7A1), MB2(0xE7A2), MB2(0x93B9), + MB2(0x9242), MB2(0x88E1), MB2(0xE7A6), 0x0000, + MB2(0xE7A7), MB2(0xEAA1), 0x0000, 0x0000, + MB2(0x91BB), 0x0000, MB2(0xE7A8), 0x0000, + MB2(0x8993), MB2(0x916B), 0x0000, MB2(0x8CAD), /* 9060 */ + 0x0000, MB2(0x9779), 0x0000, 0x0000, + MB2(0xE7A9), MB2(0x934B), 0x0000, 0x0000, + 0x0000, MB2(0x9198), MB2(0x8ED5), MB2(0xE7AA), + 0x0000, 0x0000, MB2(0xE7AD), 0x0000, + 0x0000, MB2(0x8F85), MB2(0xE7AB), MB2(0x914A), + MB2(0x9149), 0x0000, MB2(0x88E2), 0x0000, + MB2(0x97C9), MB2(0xE7AF), 0x0000, MB2(0x94F0), + MB2(0xE7B1), MB2(0xE7B0), MB2(0xE7AE), MB2(0xE284), /* 9080 */ + MB2(0x8AD2), 0x0000, 0x0000, MB2(0xE78E), + 0x0000, MB2(0xE7B3), MB2(0xE7B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B4), + 0x0000, MB2(0x9757), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93DF), /* 90A0 */ + 0x0000, 0x0000, MB2(0x964D), 0x0000, + MB2(0xE7B5), 0x0000, MB2(0x8ED7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B6), + 0x0000, MB2(0xE7B7), 0x0000, 0x0000, + 0x0000, MB2(0xE7B8), 0x0000, 0x0000, + MB2(0x9340), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x88E8), 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8D78), 0x0000, + 0x0000, 0x0000, MB2(0x9859), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8C53), MB2(0xE7B9), 0x0000, /* 90E0 */ + MB2(0xE7BA), 0x0000, 0x0000, 0x0000, + MB2(0x9594), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A73), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9758), 0x0000, MB2(0x8BBD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9373), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7BD), 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9341), 0x0000, 0x0000, + MB2(0xE7C1), 0x0000, MB2(0xE7C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93D1), MB2(0xE7C2), MB2(0x8F55), + MB2(0x8EDE), MB2(0x947A), MB2(0x9291), 0x0000, + 0x0000, 0x0000, MB2(0x8EF0), 0x0000, + MB2(0x908C), 0x0000, MB2(0xE7C3), 0x0000, + MB2(0xE7C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x907C), MB2(0xE7C5), /* 9160 */ + 0x0000, MB2(0xE7C6), 0x0000, 0x0000, + 0x0000, MB2(0xE7C7), MB2(0x978F), 0x0000, + MB2(0x8F56), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7C9), MB2(0xE7C8), + 0x0000, MB2(0x8D79), 0x0000, MB2(0x8D93), + MB2(0x8E5F), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7CC), 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, MB2(0x8F86), + 0x0000, MB2(0xE7CB), 0x0000, MB2(0xE7CA), + 0x0000, MB2(0x91E7), 0x0000, 0x0000, + MB2(0x8CED), 0x0000, MB2(0x90C1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94AE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8F58), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7CD), 0x0000, /* 91A0 */ + MB2(0x8FDD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7D0), MB2(0xE7CE), + 0x0000, 0x0000, 0x0000, MB2(0xE7CF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7D2), MB2(0xE7D1), 0x0000, 0x0000, + MB2(0x8FF8), 0x0000, MB2(0xE7D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7D4), MB2(0xE7D5), 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, MB2(0x94CE), MB2(0x8DD1), + MB2(0x8EDF), MB2(0xE7D6), 0x0000, MB2(0xE7D7), + MB2(0x97A2), MB2(0x8F64), MB2(0x96EC), MB2(0x97CA), + MB2(0xE7D8), MB2(0x8BE0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7D9), 0x0000, + MB2(0x9342), 0x0000, 0x0000, MB2(0xE7DC), + MB2(0x8A98), MB2(0x906A), 0x0000, MB2(0xE7DA), + 0x0000, MB2(0xE7DB), 0x0000, MB2(0x92DE), /* 91E0 */ + 0x0000, 0x0000, MB2(0x9674), MB2(0x8BFA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7DE), MB2(0xE7DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7DD), 0x0000, 0x0000, MB2(0xE7E1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x93DD), MB2(0x8A62), 0x0000, + 0x0000, MB2(0xE7E5), 0x0000, 0x0000, + MB2(0xE7E2), MB2(0xE7E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE86E), 0x0000, 0x0000, + MB2(0xE7E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x97E9), 0x0000, 0x0000, MB2(0x8CD8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7ED), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + MB2(0x9353), MB2(0xE7E8), 0x0000, 0x0000, + MB2(0xE7EB), MB2(0xE7E9), 0x0000, MB2(0xE7EE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7E7), + 0x0000, 0x0000, MB2(0xE7F4), MB2(0x8994), + 0x0000, 0x0000, MB2(0xE7E6), 0x0000, + 0x0000, 0x0000, MB2(0x94AB), 0x0000, /* 9260 */ + MB2(0xE7EA), 0x0000, MB2(0x8FDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8D7A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9667), 0x0000, + MB2(0x8BE2), 0x0000, 0x0000, MB2(0x8F65), /* 9280 */ + 0x0000, MB2(0x93BA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x914C), 0x0000, MB2(0xE7F2), + 0x0000, MB2(0xE7EC), MB2(0xE7F1), 0x0000, + MB2(0x96C1), 0x0000, MB2(0x92B6), MB2(0xE7F3), + MB2(0xE7F0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x914B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F7), + 0x0000, MB2(0xE7F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F5), + 0x0000, 0x0000, MB2(0x964E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + MB2(0x8F9B), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7F8), MB2(0x95DD), 0x0000, + 0x0000, MB2(0x8973), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9565), MB2(0x9292), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8B98), 0x0000, MB2(0xE7FA), 0x0000, + MB2(0x8D7C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, MB2(0x8E4B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F9), + MB2(0x908D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x908E), MB2(0xE840), MB2(0xE842), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FF9), 0x0000, MB2(0xE841), MB2(0xE843), /* 9320 */ + 0x0000, 0x0000, MB2(0x8BD1), 0x0000, + MB2(0x9564), 0x0000, 0x0000, MB2(0x8EE0), + MB2(0x9842), 0x0000, MB2(0xE7FC), MB2(0x8DF6), + 0x0000, 0x0000, MB2(0x985E), 0x0000, + 0x0000, MB2(0xE845), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE844), MB2(0xE846), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + MB2(0xE7FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x93E7), + 0x0000, MB2(0x9374), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x92D5), 0x0000, MB2(0xE84B), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9262), + MB2(0xE847), 0x0000, 0x0000, 0x0000, + MB2(0xE848), 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8C4C), 0x0000, MB2(0xE84A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8CAE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE849), 0x0000, MB2(0x8FDF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A99), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE84F), 0x0000, MB2(0x8DBD), MB2(0x9199), + 0x0000, 0x0000, MB2(0x92C8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, MB2(0x8A5A), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE84D), MB2(0xE84E), MB2(0x92C1), 0x0000, + MB2(0xE84C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE850), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE856), /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE859), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE858), MB2(0x934C), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE851), MB2(0xE852), + MB2(0xE855), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE857), 0x0000, 0x0000, + 0x0000, MB2(0x8BBE), 0x0000, 0x0000, /* 93E0 */ + MB2(0xE85A), MB2(0xE854), 0x0000, 0x0000, + MB2(0xE853), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE85E), /* 9400 */ + 0x0000, 0x0000, 0x0000, MB2(0xE85F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE860), 0x0000, 0x0000, MB2(0xE85D), + MB2(0xE85C), 0x0000, 0x0000, 0x0000, + MB2(0x8FE0), MB2(0x93A8), MB2(0xE85B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE864), 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE862), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE863), MB2(0xE861), 0x0000, + MB2(0x91F6), 0x0000, MB2(0xE865), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE866), 0x0000, 0x0000, /* 9440 */ + MB2(0xE868), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8AD3), MB2(0xE867), MB2(0x96F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE873), MB2(0xE869), + 0x0000, 0x0000, MB2(0xE86C), 0x0000, + MB2(0xE86A), 0x0000, MB2(0xE86B), 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE86D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE86F), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE870), 0x0000, MB2(0xE871), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE874), MB2(0xE872), MB2(0xE875), MB2(0xE877), + 0x0000, MB2(0xE876), 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x92B7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x96E5), 0x0000, MB2(0xE878), MB2(0x914D), /* 9580 */ + 0x0000, 0x0000, 0x0000, MB2(0xE879), + 0x0000, MB2(0x95C2), MB2(0xE87A), MB2(0x8A4A), + 0x0000, 0x0000, 0x0000, MB2(0x895B), + 0x0000, MB2(0x8AD5), 0x0000, MB2(0x8AD4), + MB2(0xE87B), 0x0000, MB2(0xE87C), 0x0000, + MB2(0xE87D), MB2(0xE87E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE880), 0x0000, MB2(0x8AD6), MB2(0x8A74), /* 95A0 */ + MB2(0x8D7D), MB2(0x94B4), 0x0000, MB2(0xE882), + MB2(0xE881), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE883), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x897B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE886), 0x0000, MB2(0xE885), + MB2(0xE884), 0x0000, MB2(0xE887), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE88A), /* 95C0 */ + 0x0000, 0x0000, 0x0000, MB2(0x88C5), + 0x0000, 0x0000, MB2(0xE888), 0x0000, + MB2(0xE88C), MB2(0xE88B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE88E), MB2(0xE88D), MB2(0xE88F), 0x0000, + MB2(0x93AC), 0x0000, 0x0000, 0x0000, + MB2(0xE890), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE891), MB2(0xE893), 0x0000, /* 95E0 */ + 0x0000, MB2(0xE892), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x958C), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE894), 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE895), 0x0000, MB2(0x8DE3), 0x0000, + 0x0000, 0x0000, MB2(0xE896), MB2(0xE897), + 0x0000, 0x0000, MB2(0x9668), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x916A), + 0x0000, 0x0000, 0x0000, MB2(0x88A2), + MB2(0x91C9), 0x0000, MB2(0xE898), 0x0000, /* 9640 */ + MB2(0x958D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE89B), + MB2(0xE899), MB2(0x8D7E), 0x0000, MB2(0xE89A), + MB2(0x8CC0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x95C3), + MB2(0xE89D), MB2(0xE89F), MB2(0xE89E), MB2(0xE8A0), + 0x0000, 0x0000, MB2(0x8940), MB2(0x9077), /* 9660 */ + MB2(0x8F9C), MB2(0x8AD7), MB2(0xE8A1), 0x0000, + 0x0000, 0x0000, MB2(0x9486), 0x0000, + MB2(0xE8A3), 0x0000, 0x0000, 0x0000, + MB2(0x8941), 0x0000, MB2(0xE8A2), MB2(0x92C2), + 0x0000, MB2(0x97CB), MB2(0x93A9), MB2(0xE89C), + MB2(0x97A4), 0x0000, MB2(0x8CAF), 0x0000, + 0x0000, MB2(0x977A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, MB2(0x8BF7), MB2(0x97B2), 0x0000, + MB2(0x8C47), 0x0000, MB2(0x91E0), MB2(0xE440), + 0x0000, MB2(0xE8A4), MB2(0x8A4B), MB2(0x908F), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A75), MB2(0xE8A6), 0x0000, MB2(0xE8A7), + MB2(0xE8A5), MB2(0x8C84), 0x0000, MB2(0x8DDB), + MB2(0x8FE1), 0x0000, 0x0000, 0x0000, + MB2(0x8942), 0x0000, 0x0000, MB2(0x97D7), /* 96A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE8A9), + MB2(0xE7AC), 0x0000, MB2(0xE8A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8AC), MB2(0xE8AA), MB2(0xE8AB), 0x0000, + MB2(0xE8AD), 0x0000, MB2(0xE8AE), MB2(0x97EA), + MB2(0xE8AF), MB2(0xE8B0), 0x0000, MB2(0x90C7), + MB2(0x94B9), 0x0000, 0x0000, 0x0000, + MB2(0x909D), MB2(0x8AE5), 0x0000, 0x0000, /* 96C0 */ + MB2(0x9759), MB2(0x89EB), MB2(0x8F57), MB2(0x8CD9), + 0x0000, MB2(0xE8B3), 0x0000, MB2(0xE8B2), + MB2(0x8E93), MB2(0xE8B4), MB2(0xE8B1), 0x0000, + 0x0000, MB2(0x8E47), 0x0000, 0x0000, + 0x0000, MB2(0xE8B8), MB2(0xE5AB), 0x0000, + 0x0000, MB2(0x99D4), 0x0000, MB2(0x9097), + MB2(0xE8B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x97A3), MB2(0x93EF), /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x894A), 0x0000, MB2(0x90E1), MB2(0x8EB4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x95B5), 0x0000, MB2(0x895F), 0x0000, + 0x0000, 0x0000, MB2(0x97EB), MB2(0x978B), + 0x0000, MB2(0xE8B9), 0x0000, MB2(0x9364), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8EF9), 0x0000, 0x0000, 0x0000, /* 9700 */ + MB2(0xE8BA), 0x0000, MB2(0xE8BB), MB2(0x906B), + MB2(0xE8BC), 0x0000, MB2(0x97EC), 0x0000, + 0x0000, MB2(0xE8B7), MB2(0xE8BE), MB2(0xE8C0), + 0x0000, MB2(0xE8BF), 0x0000, MB2(0xE8BD), + 0x0000, 0x0000, MB2(0xE8C1), 0x0000, + 0x0000, MB2(0xE8C2), 0x0000, 0x0000, + MB2(0x919A), 0x0000, MB2(0x89E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + MB2(0xE8C3), 0x0000, 0x0000, MB2(0x96B6), + 0x0000, 0x0000, MB2(0xE8C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8C5), 0x0000, MB2(0x9849), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9E50), MB2(0xE8C6), 0x0000, 0x0000, + 0x0000, MB2(0xE8C7), MB2(0xE8C8), 0x0000, + 0x0000, 0x0000, MB2(0xE8CC), 0x0000, /* 9740 */ + MB2(0xE8C9), 0x0000, MB2(0xE8CA), 0x0000, + MB2(0xE8CB), MB2(0xE8CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x90C2), 0x0000, + 0x0000, 0x0000, MB2(0x96F5), 0x0000, + 0x0000, MB2(0x90C3), 0x0000, 0x0000, + MB2(0xE8CE), 0x0000, MB2(0x94F1), 0x0000, + MB2(0xE8CF), MB2(0xEA72), MB2(0x96CA), 0x0000, /* 9760 */ + MB2(0xE8D0), 0x0000, MB2(0xE8D1), 0x0000, + MB2(0xE8D2), MB2(0x8A76), 0x0000, MB2(0xE8D4), + 0x0000, MB2(0x9078), 0x0000, 0x0000, + 0x0000, MB2(0xE8D5), 0x0000, 0x0000, + MB2(0x8C43), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8D6), MB2(0xE8DA), 0x0000, + MB2(0xE8D8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8D9), 0x0000, 0x0000, /* 9780 */ + MB2(0x8A93), MB2(0xE8D7), MB2(0xE8DB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8DC), + 0x0000, MB2(0x88C6), 0x0000, MB2(0xE8DD), + MB2(0xE8DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8FE2), 0x0000, 0x0000, 0x0000, + MB2(0xE8DF), 0x0000, 0x0000, 0x0000, + MB2(0x8B66), 0x0000, 0x0000, MB2(0xE8E2), /* 97A0 */ + 0x0000, 0x0000, MB2(0xE8E1), 0x0000, + MB2(0xE8E0), 0x0000, 0x0000, MB2(0xE691), + 0x0000, MB2(0x95DA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8E3), + MB2(0xE8E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8E5), /* 97C0 */ + 0x0000, 0x0000, MB2(0xE8E6), 0x0000, + MB2(0xE8E7), 0x0000, 0x0000, MB2(0xE8E8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8AD8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8EA), MB2(0x9442), 0x0000, + 0x0000, 0x0000, MB2(0xE8EC), MB2(0x89B9), + 0x0000, MB2(0xE8EF), MB2(0xE8EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8943), + 0x0000, 0x0000, 0x0000, MB2(0x8BBF), + 0x0000, MB2(0x95C5), MB2(0x92B8), MB2(0x8DA0), /* 9800 */ + 0x0000, MB2(0x8D80), MB2(0x8F87), 0x0000, + MB2(0x907B), 0x0000, 0x0000, 0x0000, + MB2(0xE8F1), 0x0000, 0x0000, MB2(0xE8F0), + MB2(0x9761), MB2(0x8AE6), MB2(0x94D0), MB2(0x93DA), + 0x0000, 0x0000, 0x0000, MB2(0x909C), + MB2(0x97CC), 0x0000, MB2(0x8C7A), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8F4), 0x0000, 0x0000, /* 9820 */ + MB2(0xE8F3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x966A), MB2(0x93AA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x896F), 0x0000, 0x0000, MB2(0xE8F5), + MB2(0xE8F2), 0x0000, 0x0000, MB2(0x9570), + MB2(0x978A), MB2(0xE8F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, MB2(0xE8F7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8F9), + MB2(0x91E8), MB2(0x8A7A), MB2(0x8A7B), MB2(0xE8F8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8AE7), MB2(0x8CB0), 0x0000, 0x0000, + MB2(0x8AE8), 0x0000, 0x0000, MB2(0x935E), + 0x0000, 0x0000, MB2(0x97DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, MB2(0x8CDA), + 0x0000, 0x0000, 0x0000, MB2(0xE8FA), + 0x0000, 0x0000, 0x0000, MB2(0xE8FB), + MB2(0xE8FC), MB2(0xE940), 0x0000, MB2(0xE942), + MB2(0xE941), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9597), 0x0000, MB2(0xE943), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE944), + 0x0000, MB2(0xE945), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE946), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE948), /* 98C0 */ + MB2(0xE947), 0x0000, MB2(0xE949), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x94F2), + MB2(0xE3CA), 0x0000, 0x0000, MB2(0x9048), + 0x0000, 0x0000, MB2(0x8B51), 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE94A), 0x0000, MB2(0xE94B), + 0x0000, MB2(0x99AA), MB2(0x9F5A), MB2(0x94D1), + 0x0000, 0x0000, MB2(0x88F9), 0x0000, + MB2(0x88B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8E94), MB2(0x964F), MB2(0x8FFC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE94C), /* 9900 */ + 0x0000, MB2(0x96DD), 0x0000, 0x0000, + 0x0000, MB2(0xE94D), MB2(0x977B), 0x0000, + MB2(0x8961), 0x0000, 0x0000, 0x0000, + MB2(0x8E60), 0x0000, MB2(0xE94E), MB2(0x89EC), + MB2(0xE94F), 0x0000, 0x0000, 0x0000, + MB2(0xE950), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE952), MB2(0xE953), 0x0000, + MB2(0xE955), MB2(0xE951), 0x0000, 0x0000, /* 9920 */ + MB2(0xE954), 0x0000, 0x0000, 0x0000, + MB2(0x8AD9), 0x0000, 0x0000, 0x0000, + MB2(0xE956), 0x0000, MB2(0xE957), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE958), MB2(0xE959), 0x0000, + 0x0000, 0x0000, MB2(0xE95A), 0x0000, /* 9940 */ + 0x0000, MB2(0xE95C), 0x0000, 0x0000, + 0x0000, MB2(0xE95B), 0x0000, MB2(0xE95E), + MB2(0xE961), 0x0000, 0x0000, 0x0000, + MB2(0xE95D), MB2(0xE95F), MB2(0xE960), 0x0000, + 0x0000, MB2(0xE962), 0x0000, MB2(0x8BC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8EF1), MB2(0xE963), + MB2(0xE964), MB2(0x8D81), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, MB2(0xE965), 0x0000, 0x0000, + MB2(0x8A5D), 0x0000, 0x0000, 0x0000, + MB2(0x946E), MB2(0xE966), MB2(0xE967), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9279), + MB2(0x93E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE968), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x949D), 0x0000, 0x0000, /* 99C0 */ + MB2(0x91CA), MB2(0x8977), MB2(0x8BEC), 0x0000, + MB2(0x8BED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9293), MB2(0xE96D), MB2(0x8BEE), 0x0000, + 0x0000, MB2(0x89ED), 0x0000, 0x0000, + MB2(0xE96C), 0x0000, 0x0000, MB2(0xE96A), + 0x0000, MB2(0xE96B), 0x0000, MB2(0xE969), + 0x0000, 0x0000, MB2(0xE977), 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE96E), MB2(0xE96F), 0x0000, + 0x0000, MB2(0xE970), MB2(0xE971), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE973), 0x0000, 0x0000, MB2(0xE972), + 0x0000, 0x0000, 0x0000, MB2(0x8F78), + 0x0000, MB2(0xE974), 0x0000, 0x0000, /* 9A00 */ + 0x0000, MB2(0xE976), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x8B52), MB2(0xE975), + 0x0000, 0x0000, MB2(0x919B), MB2(0x8CB1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE978), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x91CB), 0x0000, 0x0000, MB2(0xE979), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x93AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE97A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE980), 0x0000, + MB2(0xE97D), 0x0000, MB2(0xE97C), MB2(0xE97E), /* 9A40 */ + 0x0000, MB2(0xE97B), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE982), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE981), 0x0000, MB2(0xE984), + 0x0000, 0x0000, MB2(0x8BC1), MB2(0xE983), + 0x0000, 0x0000, 0x0000, MB2(0xE985), + 0x0000, 0x0000, MB2(0xE986), 0x0000, /* 9A60 */ + MB2(0xE988), MB2(0xE987), 0x0000, 0x0000, + 0x0000, MB2(0xE989), MB2(0xE98B), MB2(0xE98A), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8D9C), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE98C), 0x0000, 0x0000, + MB2(0xE98D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x8A5B), 0x0000, 0x0000, 0x0000, + MB2(0xE98E), 0x0000, 0x0000, 0x0000, + MB2(0xE98F), 0x0000, 0x0000, 0x0000, /* 9AC0 */ + MB2(0x9091), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE990), + 0x0000, MB2(0xE991), 0x0000, MB2(0xE992), + MB2(0xE993), 0x0000, 0x0000, 0x0000, + MB2(0x8D82), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE994), MB2(0xE995), + 0x0000, 0x0000, MB2(0xE996), MB2(0xE997), /* 9AE0 */ + 0x0000, 0x0000, MB2(0xE998), 0x0000, + 0x0000, 0x0000, MB2(0x94AF), MB2(0xE99A), + 0x0000, MB2(0x9545), MB2(0xE99B), MB2(0xE999), + 0x0000, MB2(0xE99D), 0x0000, 0x0000, + MB2(0xE99C), 0x0000, 0x0000, MB2(0xE99E), + 0x0000, 0x0000, 0x0000, MB2(0xE99F), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, MB2(0xE9A0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9A1), 0x0000, MB2(0xE9A2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9A3), + 0x0000, 0x0000, MB2(0xE9A4), MB2(0xE9A5), /* 9B20 */ + 0x0000, MB2(0xE9A6), 0x0000, MB2(0xE9A7), + MB2(0xE9A8), MB2(0xE9A9), MB2(0xE9AA), 0x0000, + 0x0000, 0x0000, MB2(0xE9AB), MB2(0xE9AC), + 0x0000, MB2(0x9F54), MB2(0xE9AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F6), + MB2(0x8B53), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A40), MB2(0x8DB0), MB2(0xE9AF), /* 9B40 */ + MB2(0xE9AE), MB2(0x96A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B1), MB2(0xE9B2), MB2(0xE9B0), + 0x0000, MB2(0xE9B3), 0x0000, 0x0000, + MB2(0x9682), 0x0000, 0x0000, 0x0000, + MB2(0xE9B4), 0x0000, MB2(0x8B9B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9844), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9B7), /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x88BC), 0x0000, + 0x0000, MB2(0xE9B8), MB2(0x95A9), MB2(0xE9B6), + 0x0000, 0x0000, MB2(0xE9B9), MB2(0xE9BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9BB), + MB2(0xE9BC), 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BD), 0x0000, MB2(0x968E), MB2(0x8E4C), + 0x0000, MB2(0x8DF8), MB2(0x914E), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BF), 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, MB2(0xE9C2), 0x0000, + 0x0000, MB2(0x8CEF), MB2(0xE9C0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9C3), + 0x0000, MB2(0xE9C4), MB2(0xE9C5), 0x0000, + MB2(0xE9C9), 0x0000, MB2(0x8E49), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x91E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9CA), MB2(0xE9C7), MB2(0xE9C6), /* 9BE0 */ + MB2(0xE9C8), 0x0000, 0x0000, 0x0000, + MB2(0x8C7E), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9CE), MB2(0xE9CD), MB2(0xE9CC), 0x0000, + 0x0000, MB2(0x88B1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + MB2(0xE9D8), 0x0000, MB2(0xE9D4), 0x0000, + MB2(0xE9D5), MB2(0xE9D1), MB2(0xE9D7), 0x0000, + MB2(0xE9D3), MB2(0x8A82), 0x0000, 0x0000, + MB2(0x986B), 0x0000, MB2(0xE9D6), MB2(0xE9D2), + MB2(0xE9D0), MB2(0xE9CF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9DD), 0x0000, 0x0000, /* 9C20 */ + MB2(0xE9DC), MB2(0xE9DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x9568), MB2(0xE9D9), MB2(0x88F1), + MB2(0xE9DE), 0x0000, MB2(0xE9E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8A8F), MB2(0xE9CB), MB2(0x8956), + 0x0000, 0x0000, MB2(0xE9E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, MB2(0xE9E1), MB2(0xE9DF), + MB2(0x924C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9690), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x97D8), + 0x0000, 0x0000, MB2(0xE9E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9E4), 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xE9E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9E6), 0x0000, + MB2(0xE9E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, MB2(0x92B9), 0x0000, MB2(0xE9E8), + 0x0000, MB2(0x94B5), 0x0000, MB2(0xE9ED), + MB2(0xE9E9), 0x0000, 0x0000, 0x0000, + MB2(0xE9EA), 0x0000, 0x0000, MB2(0x9650), + MB2(0x96C2), 0x0000, MB2(0x93CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9EE), /* 9D00 */ + 0x0000, 0x0000, MB2(0xE9EF), MB2(0x93BC), + MB2(0xE9EC), MB2(0xE9EB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x89A8), 0x0000, + 0x0000, 0x0000, MB2(0xE9F7), 0x0000, + 0x0000, MB2(0xE9F6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8995), + 0x0000, 0x0000, 0x0000, MB2(0xE9F4), + 0x0000, 0x0000, 0x0000, MB2(0xE9F3), /* 9D20 */ + 0x0000, 0x0000, MB2(0xE9F1), 0x0000, + MB2(0x8A9B), 0x0000, MB2(0xE9F0), MB2(0x8EB0), + MB2(0x89A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8D83), + 0x0000, 0x0000, MB2(0xE9FA), MB2(0xE9F9), + 0x0000, MB2(0xE9F8), 0x0000, 0x0000, /* 9D40 */ + MB2(0xE9F5), 0x0000, MB2(0xE9FB), 0x0000, + MB2(0xE9FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA44), MB2(0xEA43), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA45), 0x0000, 0x0000, + MB2(0x894C), MB2(0xEA40), MB2(0xEA41), 0x0000, + MB2(0x8D94), MB2(0x96B7), 0x0000, 0x0000, /* 9D60 */ + MB2(0xEA42), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x9651), 0x0000, 0x0000, MB2(0xEA4A), + 0x0000, 0x0000, MB2(0xEA46), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA4B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, MB2(0xEA48), + 0x0000, MB2(0xEA47), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8C7B), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA4C), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + MB2(0xEA4D), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA4E), 0x0000, MB2(0xEA49), + 0x0000, 0x0000, 0x0000, MB2(0xE9F2), + 0x0000, 0x0000, MB2(0xEA4F), 0x0000, + MB2(0x92DF), 0x0000, 0x0000, 0x0000, + MB2(0xEA53), 0x0000, MB2(0xEA54), MB2(0xEA52), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA51), MB2(0xEA57), 0x0000, /* 9DC0 */ + MB2(0xEA50), 0x0000, MB2(0xEA55), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA56), + 0x0000, 0x0000, 0x0000, MB2(0xEA59), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA58), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, MB2(0xEA5B), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA5C), 0x0000, MB2(0xEA5D), + 0x0000, 0x0000, MB2(0x9868), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA5A), MB2(0x91E9), MB2(0x8DEB), 0x0000, + 0x0000, MB2(0xEA5E), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA5F), MB2(0xEA60), + 0x0000, 0x0000, MB2(0xEA61), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA62), 0x0000, 0x0000, + MB2(0x8CB2), MB2(0xEA63), 0x0000, 0x0000, + 0x0000, MB2(0xEA64), 0x0000, MB2(0x8EAD), + 0x0000, MB2(0xEA65), 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA66), 0x0000, 0x0000, MB2(0xEA67), + MB2(0xEA68), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA6B), MB2(0xEA69), MB2(0x985B), + 0x0000, MB2(0xEA6A), 0x0000, MB2(0x97ED), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA6C), 0x0000, MB2(0x97D9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, MB2(0xEA6D), MB2(0x949E), 0x0000, + 0x0000, MB2(0xEA6E), MB2(0xEA70), 0x0000, + 0x0000, MB2(0xEA71), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA6F), MB2(0x8D8D), MB2(0x96CB), MB2(0x9683), + MB2(0x9BF5), 0x0000, MB2(0x9F80), MB2(0x969B), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + MB2(0x89A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA73), MB2(0x8B6F), MB2(0xEA74), MB2(0xEA75), + MB2(0xEA76), 0x0000, MB2(0x8D95), 0x0000, + MB2(0xEA77), 0x0000, 0x0000, 0x0000, + MB2(0xE0D2), MB2(0x96D9), 0x0000, MB2(0x91E1), + MB2(0xEA78), MB2(0xEA7A), MB2(0xEA79), 0x0000, + MB2(0xEA7B), 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, MB2(0xEA7C), 0x0000, 0x0000, + MB2(0xEA7D), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA7E), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA80), 0x0000, MB2(0xEA81), MB2(0xEA82), + 0x0000, MB2(0xEA83), 0x0000, MB2(0xEA84), + MB2(0xEA85), MB2(0xEA86), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, MB2(0xEA87), + MB2(0xEA88), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0x9343), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8CDB), + 0x0000, MB2(0xEA8A), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0x916C), MB2(0xEA8B), 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA8C), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x9540), + 0x0000, 0x0000, MB2(0xEA8D), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA8E), MB2(0xE256), + 0x0000, 0x0000, MB2(0xE6D8), MB2(0xE8EB), + 0x0000, 0x0000, MB2(0xEA8F), 0x0000, + MB2(0xEA90), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEA92), + MB2(0xEA93), MB2(0xEA94), MB2(0x97EE), MB2(0xEA91), /* 9F60 */ + 0x0000, 0x0000, MB2(0xEA95), MB2(0xEA96), + 0x0000, 0x0000, MB2(0xEA98), 0x0000, + MB2(0xEA97), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEA9A), 0x0000, + 0x0000, 0x0000, MB2(0xEA9B), MB2(0xEA99), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x97B4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEA9C), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEA9D), MB2(0xE273), 0x0000, 0x0000, + MB2(0xEA9E), 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0x8149), 0x0000, MB2(0x8194), /* FF00 */ + MB2(0x8190), MB2(0x8193), MB2(0x8195), 0x0000, + MB2(0x8169), MB2(0x816A), MB2(0x8196), MB2(0x817B), + MB2(0x8143), 0x0000, MB2(0x8144), MB2(0x815E), + MB2(0x824F), MB2(0x8250), MB2(0x8251), MB2(0x8252), + MB2(0x8253), MB2(0x8254), MB2(0x8255), MB2(0x8256), + MB2(0x8257), MB2(0x8258), MB2(0x8146), MB2(0x8147), + MB2(0x8183), MB2(0x8181), MB2(0x8184), MB2(0x8148), + MB2(0x8197), MB2(0x8260), MB2(0x8261), MB2(0x8262), /* FF20 */ + MB2(0x8263), MB2(0x8264), MB2(0x8265), MB2(0x8266), + MB2(0x8267), MB2(0x8268), MB2(0x8269), MB2(0x826A), + MB2(0x826B), MB2(0x826C), MB2(0x826D), MB2(0x826E), + MB2(0x826F), MB2(0x8270), MB2(0x8271), MB2(0x8272), + MB2(0x8273), MB2(0x8274), MB2(0x8275), MB2(0x8276), + MB2(0x8277), MB2(0x8278), MB2(0x8279), MB2(0x816D), + 0x0000, MB2(0x816E), MB2(0x814F), MB2(0x8151), + MB2(0x814D), MB2(0x8281), MB2(0x8282), MB2(0x8283), /* FF40 */ + MB2(0x8284), MB2(0x8285), MB2(0x8286), MB2(0x8287), + MB2(0x8288), MB2(0x8289), MB2(0x828A), MB2(0x828B), + MB2(0x828C), MB2(0x828D), MB2(0x828E), MB2(0x828F), + MB2(0x8290), MB2(0x8291), MB2(0x8292), MB2(0x8293), + MB2(0x8294), MB2(0x8295), MB2(0x8296), MB2(0x8297), + MB2(0x8298), MB2(0x8299), MB2(0x829A), MB2(0x816F), + MB2(0x8162), MB2(0x8170), 0x0000, 0x0000, + 0x0000, 0x00A1, 0x00A2, 0x00A3, /* FF60 */ + 0x00A4, 0x00A5, 0x00A6, 0x00A7, + 0x00A8, 0x00A9, 0x00AA, 0x00AB, + 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, + 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x00B9, 0x00BA, 0x00BB, + 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, /* FF80 */ + 0x00C4, 0x00C5, 0x00C6, 0x00C7, + 0x00C8, 0x00C9, 0x00CA, 0x00CB, + 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, + 0x00D4, 0x00D5, 0x00D6, 0x00D7, + 0x00D8, 0x00D9, 0x00DA, 0x00DB, + 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0x8150), /* FFE0 */ + 0x0000, MB2(0x818F), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + +/* + SJIS encoding components: + + [00..7F] = ASCII [U+0000..U+007F] + [A1..DF] = JIS-X-0201 Katakana [U+FF61..U+FF9F] + [81..9F,E0..FC][40..7E,80..FC] = JIS-X-0208 + + [80,A0,FD,FE,FF] = Invalid leading byte +*/ + + +/** + Scans an SJIS character from the input string + and converts to Unicode code point. + + @param[out] pwc Unicode code point + @param[in] s Beginning of the input string + @param[in[ e End of the input string + + @retval MY_CS_TOOSMALL If the string was too short to scan a character + @retval 1 If a 1-byte character was scanned + @retval 2 If a 2-byte character was scanned + @retval -2 If a 2-byte unassigned character was scanned + @retval MY_CS_ILSEQ If a wrong byte sequence was found +*/ +static int +my_mb_wc_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e){ + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) /* ASCII: [00..7F] -> [U+0000..U+007F] */ + { + *pwc= hi; + return 1; + } + + /* JIS-X-0201 Half width Katakana: [A1..DF] -> [U+FF61..U+FF9F] */ + if (hi >= 0xA1 && hi <= 0xDF) + { + *pwc= sjis_to_unicode[hi]; + return 1; + } + + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + /* JIS-X-0208 [81..9F,E0..FC][40..7E,80..FC] */ + if (!(pwc[0]= sjis_to_unicode[(hi << 8) + s[1]])) + return (issjishead(hi) && issjistail(s[1])) ? -2 : MY_CS_ILSEQ; + + return 2; +} + + +/** + Puts the given Unicode character into an SJIS string. + + @param[in] wc Unicode code point + @param[in] s Beginning of the out string + @param[in] e End of the out string + + @retval MY_CS_TOOSMALL If the string was too short to put a character + @retval 1 If a 1-byte character was put + @retval 2 If a 2-byte character was put + @retval MY_CS_ILUNI If the Unicode character does not exist in SJIS +*/ +static int +my_wc_mb_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int code; + + if ((int) wc < 0x80) /* ASCII: [U+0000..U+007F] -> [00-7F] */ + { + /* + This branch is for performance purposes on ASCII range, + to avoid using unicode_to_cp932[]: about 10% improvement. + */ + if (wc == 0x5c) + { + /* + Special case when converting from Unicode to SJIS: + U+005C -> [81][5F] FULL WIDTH REVERSE SOLIDUS + */ + code= MB2(0x815F); + goto mb; + } + if (s >= e) + return MY_CS_TOOSMALL; + s[0]= (uchar) wc; /* ASCII */ + return 1; + } + + if (wc > 0xFFFF || + !(code= unicode_to_sjis[wc])) /* Bad Unicode code point */ + return MY_CS_ILUNI; + + if (code <= 0xFF) + { + /* JIS-X-0201 HALF WIDTH KATAKANA [U+FF61..U+FF9F] -> [A1..DF] */ + if (s >= e) + return MY_CS_TOOSMALL; + s[0]= code; + return 1; + } + +mb: + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + MY_PUT_MB2(s, code); /* JIS-X-0208 */ + return 2; +} + + +static +size_t my_numcells_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *str, const char *str_end) +{ + size_t clen; + const uchar *b= (const uchar *) str; + const uchar *e= (const uchar *) str_end; + + for (clen= 0; b < e; ) + { + if (*b >= 0xA1 && *b <= 0xDF) + { + clen++; + b++; + } + else if (*b > 0x7F) + { + clen+= 2; + b+= 2; + } + else + { + clen++; + b++; + } + } + return clen; +} + +/* + Returns a well formed length of a SJIS string. + CP932 additional characters are also accepted. +*/ +static +size_t my_well_formed_len_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b0= b; + *error= 0; + while (pos-- && b < e) + { + if ((uchar) b[0] < 128) + { + /* Single byte ascii character */ + b++; + } + else if (issjishead((uchar)*b) && (e-b)>1 && issjistail((uchar)b[1])) + { + /* Double byte character */ + b+= 2; + } + else if (((uchar)*b) >= 0xA1 && ((uchar)*b) <= 0xDF) + { + /* Half width kana */ + b++; + } + else + { + /* Wrong byte sequence */ + *error= 1; + break; + } + } + return (size_t) (b - b0); +} + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_sjis, + my_strnncollsp_sjis, + my_strnxfrm_mb, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb, /* wildcmp */ + my_strcasecmp_8bit, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_sjis, + mbcharlen_sjis, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_sjis, + my_lengthsp_8bit, + my_numcells_sjis, + my_mb_wc_sjis, /* mb_wc */ + my_wc_mb_sjis, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_mb, + my_casedn_mb, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + +CHARSET_INFO my_charset_sjis_japanese_ci= +{ + 13,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NONASCII, /* state */ + "sjis", /* cs name */ + "sjis_japanese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_sjis, + to_lower_sjis, + to_upper_sjis, + sort_order_sjis, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_sjis, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFCFC, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + +CHARSET_INFO my_charset_sjis_bin= +{ + 88,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, /* state */ + "sjis", /* cs name */ + "sjis_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_sjis, + to_lower_sjis, + to_upper_sjis, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_sjis, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFCFC, /* max_sort_char */ + ' ', /* pad char */ + 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + +#endif diff --git a/mysql/strings/ctype-tis620.c b/mysql/strings/ctype-tis620.c new file mode 100644 index 0000000..a3a6abc --- /dev/null +++ b/mysql/strings/ctype-tis620.c @@ -0,0 +1,990 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Copyright (C) 2003 by Sathit Jittanupat + + * solving bug crash with long text field string + * sorting with different number of space or sign char. within string + + Copyright (C) 2001 by Korakot Chaovavanich and + Apisilp Trunganont + Copyright (C) 1998, 1999 by Pruet Boonma + Copyright (C) 1998 by Theppitak Karoonboonyanan + Copyright (C) 1989, 1991 by Samphan Raruenrom + + Permission to use, copy, modify, distribute and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies. + Samphan Raruenrom , Theppitak Karoonboonyanan , Pruet Boonma , + Korakot Chaovavanich and Apisilp Trunganont makes no representations + about the suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. +*/ + + +/* + This file is basicly tis620 character sets with some extra functions + for tis-620 handling +*/ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_tis620=4 + */ + +#include +#include +#include "m_string.h" +#include "m_ctype.h" +#include "t_ctype.h" + +#ifdef HAVE_CHARSET_tis620 + +#define BUFFER_MULTIPLY 4 +#define M L_MIDDLE +#define U L_UPPER +#define L L_LOWER +#define UU L_UPRUPR +#define X L_MIDDLE + + +static const int t_ctype[][TOT_LEVELS] = { + /*0x00*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x01*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x02*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x03*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x04*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x05*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x06*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x07*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x08*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x09*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x0A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x0B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x0C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x0D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x0E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x0F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x10*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x11*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x12*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x13*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x14*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x15*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x16*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x17*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x18*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x19*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x1A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x1B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x1C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x1D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x1E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x1F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x20*/ { IGNORE, IGNORE, L3_SPACE, IGNORE, M}, + /*0x21*/ { IGNORE, IGNORE, L3_EXCLAMATION, IGNORE, M }, + /*0x22*/ { IGNORE, IGNORE, L3_QUOTATION, IGNORE, M }, + /*0x23*/ { IGNORE, IGNORE, L3_NUMBER, IGNORE, M }, + /*0x24*/ { IGNORE, IGNORE, L3_DOLLAR, IGNORE, M }, + /*0x25*/ { IGNORE, IGNORE, L3_PERCENT, IGNORE, M }, + /*0x26*/ { IGNORE, IGNORE, L3_AMPERSAND, IGNORE, M }, + /*0x27*/ { IGNORE, IGNORE, L3_APOSTROPHE, IGNORE, M }, + /*0x28*/ { IGNORE, IGNORE, L3_L_PARANTHESIS, IGNORE, M }, + /*0x29*/ { IGNORE, IGNORE, L3_R_PARENTHESIS, IGNORE, M }, + /*0x2A*/ { IGNORE, IGNORE, L3_ASTERISK, IGNORE, M }, + /*0x2B*/ { IGNORE, IGNORE, L3_PLUS, IGNORE, M }, + /*0x2C*/ { IGNORE, IGNORE, L3_COMMA, IGNORE, M }, + /*0x2D*/ { IGNORE, IGNORE, L3_HYPHEN, IGNORE, M }, + /*0x2E*/ { IGNORE, IGNORE, L3_FULL_STOP, IGNORE, M }, + /*0x2F*/ { IGNORE, IGNORE, L3_SOLIDUS, IGNORE, M }, + /*0x30*/ { L1_08, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x31*/ { L1_18, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x32*/ { L1_28, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x33*/ { L1_38, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x34*/ { L1_48, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x35*/ { L1_58, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x36*/ { L1_68, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x37*/ { L1_78, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x38*/ { L1_88, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x39*/ { L1_98, L2_BLANK, L3_BLANK, L4_BLANK, M }, + /*0x3A*/ { IGNORE, IGNORE, L3_COLON, IGNORE, M }, + /*0x3B*/ { IGNORE, IGNORE, L3_SEMICOLON, IGNORE, M }, + /*0x3C*/ { IGNORE, IGNORE, L3_LESS_THAN, IGNORE, M }, + /*0x3D*/ { IGNORE, IGNORE, L3_EQUAL, IGNORE, M }, + /*0x3E*/ { IGNORE, IGNORE, L3_GREATER_THAN, IGNORE, M }, + /*0x3F*/ { IGNORE, IGNORE, L3_QUESTION, IGNORE, M }, + /*0x40*/ { IGNORE, IGNORE, L3_AT, IGNORE, M }, + /*0x41*/ { L1_A8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x42*/ { L1_B8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x43*/ { L1_C8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x44*/ { L1_D8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x45*/ { L1_E8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x46*/ { L1_F8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x47*/ { L1_G8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x48*/ { L1_H8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x49*/ { L1_I8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x4A*/ { L1_J8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x4B*/ { L1_K8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x4C*/ { L1_L8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x4D*/ { L1_M8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x4E*/ { L1_N8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x4F*/ { L1_O8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x50*/ { L1_P8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x51*/ { L1_Q8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x52*/ { L1_R8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x53*/ { L1_S8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x54*/ { L1_T8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x55*/ { L1_U8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x56*/ { L1_V8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x57*/ { L1_W8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x58*/ { L1_X8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x59*/ { L1_Y8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x5A*/ { L1_Z8, L2_BLANK, L3_BLANK, L4_CAP, M }, + /*0x5B*/ { IGNORE, IGNORE, L3_L_BRACKET, IGNORE, M }, + /*0x5C*/ { IGNORE, IGNORE, L3_BK_SOLIDUS, IGNORE, M }, + /*0x5D*/ { IGNORE, IGNORE, L3_R_BRACKET, IGNORE, M }, + /*0x5E*/ { IGNORE, IGNORE, L3_CIRCUMFLEX, IGNORE, M }, + /*0x5F*/ { IGNORE, IGNORE, L3_LOW_LINE, IGNORE, M }, + /*0x60*/ { IGNORE, IGNORE, L3_GRAVE, IGNORE, M }, + /*0x61*/ { L1_A8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x62*/ { L1_B8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x63*/ { L1_C8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x64*/ { L1_D8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x65*/ { L1_E8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x66*/ { L1_F8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x67*/ { L1_G8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x68*/ { L1_H8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x69*/ { L1_I8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x6A*/ { L1_J8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x6B*/ { L1_K8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x6C*/ { L1_L8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x6D*/ { L1_M8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x6E*/ { L1_N8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x6F*/ { L1_O8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x70*/ { L1_P8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x71*/ { L1_Q8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x72*/ { L1_R8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x73*/ { L1_S8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x74*/ { L1_T8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x75*/ { L1_U8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x76*/ { L1_V8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x77*/ { L1_W8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x78*/ { L1_X8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x79*/ { L1_Y8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x7A*/ { L1_Z8, L2_BLANK, L3_BLANK, L4_MIN, M }, + /*0x7B*/ { IGNORE, IGNORE, L3_L_BRACE, IGNORE, M }, + /*0x7C*/ { IGNORE, IGNORE, L3_V_LINE, IGNORE, M }, + /*0x7D*/ { IGNORE, IGNORE, L3_R_BRACE, IGNORE, M }, + /*0x7E*/ { IGNORE, IGNORE, L3_TILDE, IGNORE, M }, + /*0x7F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x80*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x81*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x82*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x83*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x84*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x85*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x86*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x87*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x88*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x89*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x8A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x8B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x8C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x8D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x8E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x8F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x90*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x91*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x92*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x93*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x94*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x95*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x96*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x97*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x98*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x99*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x9A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x9B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x9C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x9D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x9E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0x9F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xA0*/ { IGNORE, IGNORE, L3_NB_SACE, IGNORE, X }, + /*0xA1*/ { L1_KO_KAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA2*/ { L1_KHO_KHAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA3*/ { L1_KHO_KHUAT, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA4*/ { L1_KHO_KHWAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA5*/ { L1_KHO_KHON, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA6*/ { L1_KHO_RAKHANG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA7*/ { L1_NGO_NGU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA8*/ { L1_CHO_CHAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xA9*/ { L1_CHO_CHING, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xAA*/ { L1_CHO_CHANG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xAB*/ { L1_SO_SO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xAC*/ { L1_CHO_CHOE, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xAD*/ { L1_YO_YING, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xAE*/ { L1_DO_CHADA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xAF*/ { L1_TO_PATAK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB0*/ { L1_THO_THAN, L2_BLANK,L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB1*/ { L1_THO_NANGMONTHO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB2*/ { L1_THO_PHUTHAO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB3*/ { L1_NO_NEN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB4*/ { L1_DO_DEK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB5*/ { L1_TO_TAO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB6*/ { L1_THO_THUNG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB7*/ { L1_THO_THAHAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB8*/ { L1_THO_THONG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xB9*/ { L1_NO_NU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xBA*/ { L1_BO_BAIMAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xBB*/ { L1_PO_PLA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xBC*/ { L1_PHO_PHUNG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xBD*/ { L1_FO_FA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xBE*/ { L1_PHO_PHAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xBF*/ { L1_FO_FAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC0*/ { L1_PHO_SAMPHAO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC1*/ { L1_MO_MA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC2*/ { L1_YO_YAK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC3*/ { L1_RO_RUA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC4*/ { L1_RU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC5*/ { L1_LO_LING, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC6*/ { L1_LU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC7*/ { L1_WO_WAEN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC8*/ { L1_SO_SALA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xC9*/ { L1_SO_RUSI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xCA*/ { L1_SO_SUA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xCB*/ { L1_HO_HIP, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xCC*/ { L1_LO_CHULA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xCD*/ { L1_O_ANG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xCE*/ { L1_HO_NOKHUK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt}, + /*0xCF*/ { IGNORE, IGNORE, L3_PAIYAN_NOI, IGNORE, M}, + /*0xD0*/ { L1_SARA_A, L2_BLANK, L3_BLANK, L4_BLANK, M | _fllwvowel}, + /*0xD1*/ { L1_MAI_HAN_AKAT, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel}, + /*0xD2*/ { L1_SARA_AA, L2_BLANK, L3_BLANK, L4_BLANK, M | _fllwvowel}, + /*0xD3*/ { L1_SARA_AM, L2_BLANK, L3_BLANK, L4_BLANK, M | _fllwvowel}, + /*0xD4*/ { L1_SARA_I, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel}, + /*0xD5*/ { L1_SARA_II, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel}, + /*0xD6*/ { L1_SARA_UE, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel}, + /*0xD7*/ { L1_SARA_UEE, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel}, + /*0xD8*/ { L1_SARA_U, L2_BLANK, L3_BLANK, L4_BLANK, L | _lwrvowel}, + /*0xD9*/ { L1_SARA_UU, L2_BLANK, L3_BLANK, L4_BLANK, L | _lwrvowel}, + /*0xDA*/ { IGNORE, L2_PINTHU, L3_BLANK, L4_BLANK, L }, + /*0xDB*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xDC*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xDD*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xDE*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xDF*/ { IGNORE, IGNORE, L3_BAHT, IGNORE, M}, + /*0xE0*/ { L1_SARA_E, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel }, + /*0xE1*/ { L1_SARA_AE, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel }, + /*0xE2*/ { L1_SARA_O, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel }, + /*0xE3*/ { L1_SARA_AI_MAIMUAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel }, + /*0xE4*/ { L1_SARA_AI_MAIMALAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel }, + /*0xE5*/ { L1_SARA_AA, L2_BLANK, L3_BLANK, L4_EXT, M | _fllwvowel }, + /*0xE6*/ { IGNORE, IGNORE, L3_MAI_YAMOK, IGNORE, M | _stone }, + /*0xE7*/ { IGNORE, L2_TYKHU, L3_BLANK, L4_BLANK, U | _diacrt1 | _stone }, + /*0xE8*/ { IGNORE, L2_TONE1, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone }, + /*0xE9*/ { IGNORE, L2_TONE2, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone }, + /*0xEA*/ { IGNORE, L2_TONE3, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone }, + /*0xEB*/ { IGNORE, L2_TONE4, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone }, + /*0xEC*/ { IGNORE, L2_GARAN, L3_BLANK, L4_BLANK, UU | _diacrt2 | _combine | _stone }, + /*0xED*/ { L1_NKHIT, L2_BLANK, L3_BLANK, L4_BLANK, U | _diacrt1 }, + /*0xEE*/ { IGNORE, L2_YAMAK, L3_BLANK, L4_BLANK, U | _diacrt1 }, + /*0xEF*/ { IGNORE, IGNORE, L3_FONGMAN, IGNORE, M }, + /*0xF0*/ { L1_08, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF1*/ { L1_18, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF2*/ { L1_28, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF3*/ { L1_38, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF4*/ { L1_48, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF5*/ { L1_58, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF6*/ { L1_68, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF7*/ { L1_78, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF8*/ { L1_88, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xF9*/ { L1_98, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig }, + /*0xFA*/ { IGNORE, IGNORE, L3_ANGKHANKHU, IGNORE, X }, + /*0xFB*/ { IGNORE, IGNORE, L3_KHOMUT, IGNORE, X }, + /*0xFC*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xFD*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /*0xFE*/ { IGNORE, IGNORE, IGNORE, IGNORE, X }, + /* Utilize 0xFF for max_sort_chr in my_like_range_tis620 */ + /*0xFF*/ { 255 /*IGNORE*/, IGNORE, IGNORE, IGNORE, X }, +}; + +static const uchar ctype_tis620[257] = +{ + 0, /* For standard library */ + 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16, + 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16, + 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,32, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; + +static const uchar to_lower_tis620[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar to_upper_tis620[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + +static const uchar sort_order_tis620[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '\\', ']', '[', '^', '_', + 'E', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', +}; + + +/* + Convert thai string to "Standard C String Function" sortable string + + SYNOPSIS + thai2sortable() + tstr String to convert. Does not have to end with \0 + len Length of tstr +*/ + +static size_t thai2sortable(uchar *tstr, size_t len) +{ + uchar *p; + size_t tlen; + uchar l2bias; + + tlen= len; + l2bias= 256 - 8; + for (p= tstr; tlen > 0; p++, tlen--) + { + uchar c= *p; + + if (isthai(c)) + { + const int *t_ctype0= t_ctype[c]; + + if (isconsnt(c)) + l2bias -= 8; + if (isldvowel(c) && tlen != 1 && isconsnt(p[1])) + { + /* simply swap between leading-vowel and consonant */ + *p= p[1]; + p[1]= c; + tlen--; + p++; + continue; + } + + /* if found level 2 char (L2_GARAN,L2_TONE*,L2_TYKHU) move to last */ + if (t_ctype0[1] >= L2_GARAN) + { + /* + l2bias use to control position weight of l2char + example (*=l2char) XX*X must come before X*XX + */ + memmove((char*) p, (char*) (p+1), tlen-1); + tstr[len-1]= l2bias + t_ctype0[1]- L2_GARAN +1; + p--; + continue; + } + } + else + { + l2bias-= 8; + *p= to_lower_tis620[c]; + } + } + return len; +} + + +/* + strncoll() replacement, compare 2 string, both are converted to sortable + string + + NOTE: + We can't cut strings at end \0 as this would break comparision with + LIKE characters, where the min range is stored as end \0 + + Arg: 2 Strings and it compare length + Ret: strcmp result +*/ + +static +int my_strnncoll_tis620(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s1, size_t len1, + const uchar *s2, size_t len2, + my_bool s2_is_prefix) +{ + uchar buf[80] ; + uchar *tc1, *tc2; + int i; + + if (s2_is_prefix && len1 > len2) + len1= len2; + + tc1= buf; + if ((len1 + len2 +2) > (int) sizeof(buf)) + tc1= (uchar*) my_str_malloc(len1+len2+2); + tc2= tc1 + len1+1; + memcpy((char*) tc1, (char*) s1, len1); + tc1[len1]= 0; /* if length(s1)> len1, need to put 'end of string' */ + memcpy((char *)tc2, (char *)s2, len2); + tc2[len2]= 0; /* put end of string */ + thai2sortable(tc1, len1); + thai2sortable(tc2, len2); + i= strcmp((char*)tc1, (char*)tc2); + if (tc1 != buf) + my_str_free(tc1); + return i; +} + + +static +int my_strnncollsp_tis620(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)), + const uchar *a0, size_t a_length, + const uchar *b0, size_t b_length, + my_bool diff_if_only_endspace_difference) +{ + uchar buf[80], *end, *a, *b, *alloced= NULL; + size_t length; + int res= 0; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + a= buf; + if ((a_length + b_length +2) > (int) sizeof(buf)) + alloced= a= (uchar*) my_str_malloc(a_length+b_length+2); + + b= a + a_length+1; + memcpy((char*) a, (char*) a0, a_length); + a[a_length]= 0; /* if length(a0)> len1, need to put 'end of string' */ + memcpy((char *)b, (char *)b0, b_length); + b[b_length]= 0; /* put end of string */ + a_length= thai2sortable(a, a_length); + b_length= thai2sortable(b, b_length); + + end= a + (length= MY_MIN(a_length, b_length)); + while (a < end) + { + if (*a++ != *b++) + { + res= ((int) a[-1] - (int) b[-1]); + goto ret; + } + } + if (a_length != b_length) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + /* + Check the next not space character of the longer key. If it's < ' ', + then it's smaller than the other key. + */ + if (a_length < b_length) + { + /* put shorter key in s */ + a_length= b_length; + a= b; + swap= -1; /* swap sign of result */ + res= -res; + } + for (end= a + a_length-length; a < end ; a++) + { + if (*a != ' ') + { + res= (*a < ' ') ? -swap : swap; + goto ret; + } + } + } + +ret: + + if (alloced) + my_str_free(alloced); + return res; +} + + +/* + strnxfrm replacment, convert Thai string to sortable string + + Arg: Destination buffer, source string, dest length and source length + Ret: Conveted string size +*/ + +static size_t +my_strnxfrm_tis620(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + size_t dstlen0= dstlen; + size_t min_len= MY_MIN(dstlen, srclen); + size_t len= 0; + + /* + We don't use strmake here, since it requires one more character for + the terminating '\0', while this function itself and the following calling + functions do not require it + */ + while (len < min_len) + { + if (! (dst[len] = src[len])) + break; + len++; + } + + len= thai2sortable(dst, len); + set_if_smaller(dstlen, nweights); + set_if_smaller(len, dstlen); + len= my_strxfrm_pad_desc_and_reverse(cs, dst, dst + len, dst + dstlen, + (uint)(dstlen - len), flags, 0); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len < dstlen0) + { + size_t fill_length= dstlen0 - len; + cs->cset->fill(cs, (char*) dst + len, fill_length, cs->pad_char); + len= dstlen0; + } + return len; +} + + +static const unsigned short cs_to_uni[256]={ +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0xFFFD,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, +0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F, +0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17, +0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F, +0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27, +0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F, +0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37, +0x0E38,0x0E39,0x0E3A,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x0E3F, +0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47, +0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F, +0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57, +0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFD,0xFFFD,0xFFFD,0xFFFD +}; +static const uchar pl00[256]={ +0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, +0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, +0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, +0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; +static const uchar pl0E[256]={ +0x0000,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x0000,0x0000,0x0000,0x0000,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; +static const uchar plFF[256]={ +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000,0x00FF,0x0000,0x0000 +}; +static const uchar *uni_to_cs[256]={ +pl00,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,pl0E,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, +NULL,NULL,NULL,NULL,NULL,NULL,NULL,plFF +}; + + +static +int my_mb_wc_tis620(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *wc, + const uchar *str, + const uchar *end MY_ATTRIBUTE((unused))) +{ + if (str >= end) + return MY_CS_TOOSMALL; + + *wc=cs_to_uni[*str]; + return (!wc[0] && str[0]) ? -1 : 1; +} + +static +int my_wc_mb_tis620(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, + uchar *str, + uchar *end MY_ATTRIBUTE((unused))) +{ + const uchar *pl; + + if (str >= end) + return MY_CS_TOOSMALL; + + pl= uni_to_cs[(wc>>8) & 0xFF]; + str[0]= pl ? pl[wc & 0xFF] : '\0'; + return (!str[0] && wc) ? MY_CS_ILUNI : 1; +} + + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_tis620, + my_strnncollsp_tis620, + my_strnxfrm_tis620, + my_strnxfrmlen_simple, + my_like_range_simple, + my_wildcmp_8bit, /* wildcmp */ + my_strcasecmp_8bit, + my_instr_simple, /* QQ: To be fixed */ + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + NULL, /* ismbchar */ + my_mbcharlen_8bit, /* mbcharlen */ + my_numchars_8bit, + my_charpos_8bit, + my_well_formed_len_8bit, + my_lengthsp_8bit, + my_numcells_8bit, + my_mb_wc_tis620, /* mb_wc */ + my_wc_mb_tis620, /* wc_mb */ + my_mb_ctype_8bit, + my_caseup_str_8bit, + my_casedn_str_8bit, + my_caseup_8bit, + my_casedn_8bit, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + + +CHARSET_INFO my_charset_tis620_thai_ci= +{ + 18,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ + "tis620", /* cs name */ + "tis620_thai_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_tis620, + to_lower_tis620, + to_upper_tis620, + sort_order_tis620, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 4, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + +CHARSET_INFO my_charset_tis620_bin= +{ + 89,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "tis620", /* cs name */ + "tis620_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_tis620, + to_lower_tis620, + to_upper_tis620, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_8bit_bin_handler +}; + + +#endif diff --git a/mysql/strings/ctype-uca.c b/mysql/strings/ctype-uca.c new file mode 100644 index 0000000..aba5102 --- /dev/null +++ b/mysql/strings/ctype-uca.c @@ -0,0 +1,26490 @@ +/* Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + UCA (Unicode Collation Algorithm) support. + Written by Alexander Barkov + + Currently supports only subset of the full UCA: + - Only Primary level key comparison + - Basic Latin letters contraction is implemented + - Variable weighting is done for Non-ignorable option + + Features that are not implemented yet: + - No Normalization From D is done + + No decomposition is done + + No Thai/Lao orderding is done + - No combining marks processing is done +*/ + + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_UCA_COLLATIONS + +#define MY_UCA_NPAGES 256 +#define MY_UCA_NCHARS 256 +#define MY_UCA_CMASK 255 +#define MY_UCA_PSHIFT 8 + +uint16 page000data[]= { /* 0000 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0201,0x0000,0x0000,0x0000, +0x0202,0x0000,0x0000,0x0000, 0x0203,0x0000,0x0000,0x0000, +0x0204,0x0000,0x0000,0x0000, 0x0205,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000, 0x0251,0x0000,0x0000,0x0000, +0x027E,0x0000,0x0000,0x0000, 0x02D2,0x0000,0x0000,0x0000, +0x0E0F,0x0000,0x0000,0x0000, 0x02D3,0x0000,0x0000,0x0000, +0x02CF,0x0000,0x0000,0x0000, 0x0277,0x0000,0x0000,0x0000, +0x0288,0x0000,0x0000,0x0000, 0x0289,0x0000,0x0000,0x0000, +0x02C8,0x0000,0x0000,0x0000, 0x0428,0x0000,0x0000,0x0000, +0x022F,0x0000,0x0000,0x0000, 0x0221,0x0000,0x0000,0x0000, +0x025D,0x0000,0x0000,0x0000, 0x02CC,0x0000,0x0000,0x0000, +0x0E29,0x0000,0x0000,0x0000, 0x0E2A,0x0000,0x0000,0x0000, +0x0E2B,0x0000,0x0000,0x0000, 0x0E2C,0x0000,0x0000,0x0000, +0x0E2D,0x0000,0x0000,0x0000, 0x0E2E,0x0000,0x0000,0x0000, +0x0E2F,0x0000,0x0000,0x0000, 0x0E30,0x0000,0x0000,0x0000, +0x0E31,0x0000,0x0000,0x0000, 0x0E32,0x0000,0x0000,0x0000, +0x023D,0x0000,0x0000,0x0000, 0x023A,0x0000,0x0000,0x0000, +0x042C,0x0000,0x0000,0x0000, 0x042D,0x0000,0x0000,0x0000, +0x042E,0x0000,0x0000,0x0000, 0x0255,0x0000,0x0000,0x0000, +0x02C7,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E4A,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000, +0x0EB9,0x0000,0x0000,0x0000, 0x0EC1,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0F10,0x0000,0x0000,0x0000, 0x0F21,0x0000,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000, 0x0F5B,0x0000,0x0000,0x0000, +0x0F64,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000, +0x0FA7,0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000, 0x0FEA,0x0000,0x0000,0x0000, +0x1002,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000, 0x1051,0x0000,0x0000,0x0000, +0x105A,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000, +0x106A,0x0000,0x0000,0x0000, 0x028A,0x0000,0x0000,0x0000, +0x02CE,0x0000,0x0000,0x0000, 0x028B,0x0000,0x0000,0x0000, +0x020F,0x0000,0x0000,0x0000, 0x021B,0x0000,0x0000,0x0000, +0x020C,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E4A,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000, +0x0EB9,0x0000,0x0000,0x0000, 0x0EC1,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0F10,0x0000,0x0000,0x0000, 0x0F21,0x0000,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000, 0x0F5B,0x0000,0x0000,0x0000, +0x0F64,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000, +0x0FA7,0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000, 0x0FEA,0x0000,0x0000,0x0000, +0x1002,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000, 0x1051,0x0000,0x0000,0x0000, +0x105A,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000, +0x106A,0x0000,0x0000,0x0000, 0x028C,0x0000,0x0000,0x0000, +0x0430,0x0000,0x0000,0x0000, 0x028D,0x0000,0x0000,0x0000, +0x0433,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0206,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000, 0x0252,0x0000,0x0000,0x0000, +0x0E0E,0x0000,0x0000,0x0000, 0x0E10,0x0000,0x0000,0x0000, +0x0E0D,0x0000,0x0000,0x0000, 0x0E11,0x0000,0x0000,0x0000, +0x0431,0x0000,0x0000,0x0000, 0x02C2,0x0000,0x0000,0x0000, +0x0214,0x0000,0x0000,0x0000, 0x02C5,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0286,0x0000,0x0000,0x0000, +0x042F,0x0000,0x0000,0x0000, 0x0220,0x0000,0x0000,0x0000, +0x02C6,0x0000,0x0000,0x0000, 0x0210,0x0000,0x0000,0x0000, +0x034A,0x0000,0x0000,0x0000, 0x0429,0x0000,0x0000,0x0000, +0x0E2B,0x0000,0x0000,0x0000, 0x0E2C,0x0000,0x0000,0x0000, +0x020D,0x0000,0x0000,0x0000, 0x10F8,0x0000,0x0000,0x0000, +0x02C3,0x0000,0x0000,0x0000, 0x0267,0x0000,0x0000,0x0000, +0x0219,0x0000,0x0000,0x0000, 0x0E2A,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x0287,0x0000,0x0000,0x0000, +0x0E2A,0x02CD,0x0E2D,0x0000, 0x0E2A,0x02CD,0x0E2B,0x0000, +0x0E2C,0x02CD,0x0E2D,0x0000, 0x0256,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E38,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0E86,0x0000,0x0000,0x0000, 0x0F64,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x042B,0x0000,0x0000,0x0000, +0x0F8D,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x101F,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x101F,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000, +0x1094,0x0000,0x0000,0x0000, 0x0FEA,0x0FEA,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E38,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0E86,0x0000,0x0000,0x0000, 0x0F64,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x042A,0x0000,0x0000,0x0000, +0x0F8D,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x101F,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x101F,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000, +0x1094,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000 +}; + +uint16 page001data[]= { /* 0100 (3 weights per char) */ +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, +0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, +0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E6D,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E72,0x0000,0x0000, 0x0E72,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EED,0x0000,0x0000, +0x0EED,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFF,0x0000,0x0000, 0x0EFB,0x0F10,0x0000, +0x0EFB,0x0F10,0x0000, 0x0F10,0x0000,0x0000, 0x0F10,0x0000,0x0000, +0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0FBC,0x0000,0x0000, +0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, +0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, +0x0F2E,0x0267,0x0000, 0x0F2E,0x0267,0x0000, 0x0F36,0x0000,0x0000, +0x0F36,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x10B1,0x0F64,0x0000, 0x0F7E,0x0000,0x0000, +0x0F7E,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0E8B,0x0000, 0x0F82,0x0E8B,0x0000, +0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000, +0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, +0x1007,0x0000,0x0000, 0x1007,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1051,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x105E,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, +0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, +0x106A,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0E52,0x0000,0x0000, +0x0E58,0x0000,0x0000, 0x0E5C,0x0000,0x0000, 0x0E5C,0x0000,0x0000, +0x10A8,0x0000,0x0000, 0x10A8,0x0000,0x0000, 0x0F92,0x0000,0x0000, +0x0E65,0x0000,0x0000, 0x0E65,0x0000,0x0000, 0x0E76,0x0000,0x0000, +0x0E7A,0x0000,0x0000, 0x0E7E,0x0000,0x0000, 0x0E7E,0x0000,0x0000, +0x106A,0x1051,0x0000, 0x0E90,0x0000,0x0000, 0x0E94,0x0000,0x0000, +0x0E98,0x0000,0x0000, 0x0EBD,0x0000,0x0000, 0x0EBD,0x0000,0x0000, +0x0ED1,0x0000,0x0000, 0x0ED9,0x0000,0x0000, 0x0EE9,0x0000,0x0000, +0x0F0C,0x0000,0x0000, 0x0F08,0x0000,0x0000, 0x0F26,0x0000,0x0000, +0x0F26,0x0000,0x0000, 0x0F3B,0x0000,0x0000, 0x0F53,0x0000,0x0000, +0x1037,0x0000,0x0000, 0x0F6E,0x0000,0x0000, 0x0F72,0x0000,0x0000, +0x0F9A,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0EDD,0x0000,0x0000, 0x0EDD,0x0000,0x0000, 0x0FAC,0x0000,0x0000, +0x0FAC,0x0000,0x0000, 0x0FC4,0x0000,0x0000, 0x10A0,0x0000,0x0000, +0x10A0,0x0000,0x0000, 0x0FF2,0x0000,0x0000, 0x0FF6,0x0000,0x0000, +0x100B,0x0000,0x0000, 0x100F,0x0000,0x0000, 0x100F,0x0000,0x0000, +0x1013,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x1040,0x0000,0x0000, 0x1049,0x0000,0x0000, 0x1066,0x0000,0x0000, +0x1066,0x0000,0x0000, 0x106F,0x0000,0x0000, 0x106F,0x0000,0x0000, +0x107F,0x0000,0x0000, 0x1084,0x0000,0x0000, 0x1084,0x0000,0x0000, +0x1088,0x0000,0x0000, 0x109C,0x0000,0x0000, 0x10A4,0x0000,0x0000, +0x10A4,0x0000,0x0000, 0x1002,0x0FEA,0x0000, 0x1098,0x0000,0x0000, +0x10C8,0x0000,0x0000, 0x10CC,0x0000,0x0000, 0x10D0,0x0000,0x0000, +0x10D4,0x0000,0x0000, 0x0E6D,0x106A,0x0000, 0x0E6D,0x106A,0x0000, +0x0E6D,0x106A,0x0000, 0x0F2E,0x0F10,0x0000, 0x0F2E,0x0F10,0x0000, +0x0F2E,0x0F10,0x0000, 0x0F64,0x0F10,0x0000, 0x0F64,0x0F10,0x0000, +0x0F64,0x0F10,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x0E90,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0E38,0x0000,0x0000, +0x0ECD,0x0000,0x0000, 0x0ECD,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EC1,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x107F,0x0000,0x0000, 0x107F,0x0000,0x0000, +0x0F10,0x0000,0x0000, 0x0E6D,0x106A,0x0000, 0x0E6D,0x106A,0x0000, +0x0E6D,0x106A,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EE9,0x0000,0x0000, 0x1098,0x0000,0x0000, 0x0F64,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E38,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0F8D,0x0000,0x0000, +0x0F8D,0x0000,0x0000 }; + +uint16 page002data[]= { /* 0200 (3 weights per char) */ +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000, +0x1002,0x0000,0x0000, 0x1090,0x0000,0x0000, 0x1090,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0F72,0x0000,0x0000, +0x0E82,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA2,0x0000,0x0000, +0x1073,0x0000,0x0000, 0x1073,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x105E,0x0000,0x0000, 0x0F4B,0x0000,0x0000, 0x0F7A,0x0000,0x0000, +0x1017,0x0000,0x0000, 0xFBC0,0x8237,0x0000, 0xFBC0,0x8238,0x0000, +0xFBC0,0x8239,0x0000, 0xFBC0,0x823A,0x0000, 0xFBC0,0x823B,0x0000, +0xFBC0,0x823C,0x0000, 0xFBC0,0x823D,0x0000, 0xFBC0,0x823E,0x0000, +0xFBC0,0x823F,0x0000, 0xFBC0,0x8240,0x0000, 0xFBC0,0x8241,0x0000, +0xFBC0,0x8242,0x0000, 0xFBC0,0x8243,0x0000, 0xFBC0,0x8244,0x0000, +0xFBC0,0x8245,0x0000, 0xFBC0,0x8246,0x0000, 0xFBC0,0x8247,0x0000, +0xFBC0,0x8248,0x0000, 0xFBC0,0x8249,0x0000, 0xFBC0,0x824A,0x0000, +0xFBC0,0x824B,0x0000, 0xFBC0,0x824C,0x0000, 0xFBC0,0x824D,0x0000, +0xFBC0,0x824E,0x0000, 0xFBC0,0x824F,0x0000, 0x0E3E,0x0000,0x0000, +0x0E42,0x0000,0x0000, 0x0E46,0x0000,0x0000, 0x0E58,0x0000,0x0000, +0x0F92,0x0000,0x0000, 0x0E69,0x0000,0x0000, 0x0E76,0x0000,0x0000, +0x0E7A,0x0000,0x0000, 0x0E9C,0x0000,0x0000, 0x0E94,0x0000,0x0000, +0x0EA0,0x0000,0x0000, 0x0E98,0x0000,0x0000, 0x0EA4,0x0000,0x0000, +0x0EA9,0x0000,0x0000, 0x0EAD,0x0000,0x0000, 0x0F19,0x0000,0x0000, +0x0ED1,0x0000,0x0000, 0x0EC5,0x0000,0x0000, 0x0EC9,0x0000,0x0000, +0x0ED9,0x0000,0x0000, 0x0EB5,0x0000,0x0000, 0x102B,0x0000,0x0000, +0x0EF1,0x0000,0x0000, 0x0EF5,0x0000,0x0000, 0x0F08,0x0000,0x0000, +0x0F0C,0x0000,0x0000, 0x0F03,0x0000,0x0000, 0x0F3F,0x0000,0x0000, +0x0F43,0x0000,0x0000, 0x0F47,0x0000,0x0000, 0x0F4F,0x0000,0x0000, +0x1037,0x0000,0x0000, 0x103C,0x0000,0x0000, 0x0F60,0x0000,0x0000, +0x0F6E,0x0000,0x0000, 0x0F76,0x0000,0x0000, 0x0F68,0x0000,0x0000, +0x0F9A,0x0000,0x0000, 0x0F88,0x0000,0x0000, 0x0F9E,0x0000,0x0000, +0x0FB0,0x0000,0x0000, 0x0FC9,0x0000,0x0000, 0x0FCE,0x0000,0x0000, +0x0FD2,0x0000,0x0000, 0x0FD6,0x0000,0x0000, 0x0FDA,0x0000,0x0000, +0x0FDE,0x0000,0x0000, 0x0FE2,0x0000,0x0000, 0x0FC4,0x0000,0x0000, +0x0FE6,0x0000,0x0000, 0x0FEE,0x0000,0x0000, 0x0FF2,0x0000,0x0000, +0x0F1D,0x0000,0x0000, 0x0FFA,0x0000,0x0000, 0x0FFE,0x0000,0x0000, +0x101B,0x0000,0x0000, 0x1013,0x0000,0x0000, 0x1027,0x0000,0x0000, +0x1040,0x0000,0x0000, 0x1049,0x0000,0x0000, 0x104D,0x0000,0x0000, +0x1056,0x0000,0x0000, 0x0F57,0x0000,0x0000, 0x1062,0x0000,0x0000, +0x1077,0x0000,0x0000, 0x107B,0x0000,0x0000, 0x107F,0x0000,0x0000, +0x108C,0x0000,0x0000, 0x10AC,0x0000,0x0000, 0x10B4,0x0000,0x0000, +0x10C4,0x0000,0x0000, 0x10D8,0x0000,0x0000, 0x10DC,0x0000,0x0000, +0x0E4E,0x0000,0x0000, 0x0EB1,0x0000,0x0000, 0x0ED5,0x0000,0x0000, +0x0EE5,0x0000,0x0000, 0x0F15,0x0000,0x0000, 0x0F2A,0x0000,0x0000, +0x0F32,0x0000,0x0000, 0x0FB8,0x0000,0x0000, 0x10BC,0x0000,0x0000, +0x10C0,0x0000,0x0000, 0x0E6D,0x106A,0x0000, 0x0E6D,0x107F,0x0000, +0x0E6D,0x107B,0x0000, 0x1002,0x0FEA,0x0000, 0x1002,0x0FF2,0x0000, +0x1002,0x0E69,0x0000, 0x0EB9,0x0F7E,0x0000, 0x0F2E,0x0FEA,0x0000, +0x0F2E,0x106A,0x0000, 0x10E0,0x0000,0x0000, 0x10E4,0x0000,0x0000, +0x102F,0x0000,0x0000, 0x1033,0x0000,0x0000, 0x0EE1,0x0000,0x0000, +0x0EF1,0x0000,0x0000, 0x0F10,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FC9,0x0000,0x0000, 0x0FD2,0x0000,0x0000, 0x0FE6,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x0317,0x0000,0x0000, +0x0319,0x0000,0x0000, 0x0EF9,0x0000,0x0000, 0x10B1,0x0000,0x0000, +0x0EFA,0x0000,0x0000, 0x10B3,0x0000,0x0000, 0x10B8,0x0000,0x0000, +0x10B0,0x0000,0x0000, 0x10B9,0x0000,0x0000, 0x031A,0x0000,0x0000, +0x031B,0x0000,0x0000, 0x031C,0x0000,0x0000, 0x031D,0x0000,0x0000, +0x031E,0x0000,0x0000, 0x031F,0x0000,0x0000, 0x0320,0x0000,0x0000, +0x0321,0x0000,0x0000, 0x0322,0x0000,0x0000, 0x0323,0x0000,0x0000, +0x0324,0x0000,0x0000, 0x0325,0x0000,0x0000, 0x0326,0x0000,0x0000, +0x0327,0x0000,0x0000, 0x0E01,0x0000,0x0000, 0x0E02,0x0000,0x0000, +0x0328,0x0000,0x0000, 0x0329,0x0000,0x0000, 0x032A,0x0000,0x0000, +0x032B,0x0000,0x0000, 0x032C,0x0000,0x0000, 0x032D,0x0000,0x0000, +0x0212,0x0000,0x0000, 0x0213,0x0000,0x0000, 0x0215,0x0000,0x0000, +0x021A,0x0000,0x0000, 0x020E,0x0000,0x0000, 0x0216,0x0000,0x0000, +0x032E,0x0000,0x0000, 0x032F,0x0000,0x0000, 0x0ED9,0x0000,0x0000, +0x0F2E,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x105A,0x0000,0x0000, +0x10B4,0x0000,0x0000, 0x0330,0x0000,0x0000, 0x0331,0x0000,0x0000, +0x0332,0x0000,0x0000, 0x0333,0x0000,0x0000, 0x0334,0x0000,0x0000, +0x0335,0x0000,0x0000, 0x0336,0x0000,0x0000, 0x0337,0x0000,0x0000, +0x0338,0x0000,0x0000, 0x10B2,0x0000,0x0000, 0x0339,0x0000,0x0000, +0x033A,0x0000,0x0000, 0x033B,0x0000,0x0000, 0x033C,0x0000,0x0000, +0x033D,0x0000,0x0000, 0x033E,0x0000,0x0000, 0x033F,0x0000,0x0000, +0x0340,0x0000,0x0000, 0x0341,0x0000,0x0000, 0x0342,0x0000,0x0000, +0x0343,0x0000,0x0000, 0x0344,0x0000,0x0000, 0x0345,0x0000,0x0000, +0x0346,0x0000,0x0000, 0x0347,0x0000,0x0000, 0x0348,0x0000,0x0000, +0x0349,0x0000,0x0000 }; + +uint16 page003data[]= { /* 0300 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0xFBC0,0x8358,0x0000,0x0000, 0xFBC0,0x8359,0x0000,0x0000, +0xFBC0,0x835A,0x0000,0x0000, 0xFBC0,0x835B,0x0000,0x0000, +0xFBC0,0x835C,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000, 0x0E6D,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000, 0x0F5B,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000, 0x1002,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000, 0x105A,0x0000,0x0000,0x0000, +0xFBC0,0x8370,0x0000,0x0000, 0xFBC0,0x8371,0x0000,0x0000, +0xFBC0,0x8372,0x0000,0x0000, 0xFBC0,0x8373,0x0000,0x0000, +0x0317,0x0000,0x0000,0x0000, 0x0318,0x0000,0x0000,0x0000, +0xFBC0,0x8376,0x0000,0x0000, 0xFBC0,0x8377,0x0000,0x0000, +0xFBC0,0x8378,0x0000,0x0000, 0xFBC0,0x8379,0x0000,0x0000, +0x10F3,0x0000,0x0000,0x0000, 0xFBC0,0x837B,0x0000,0x0000, +0xFBC0,0x837C,0x0000,0x0000, 0xFBC0,0x837D,0x0000,0x0000, +0x023A,0x0000,0x0000,0x0000, 0xFBC0,0x837F,0x0000,0x0000, +0xFBC0,0x8380,0x0000,0x0000, 0xFBC0,0x8381,0x0000,0x0000, +0xFBC0,0x8382,0x0000,0x0000, 0xFBC0,0x8383,0x0000,0x0000, +0x020D,0x0000,0x0000,0x0000, 0x0214,0x0000,0x0000,0x0000, +0x10E8,0x0000,0x0000,0x0000, 0x0267,0x0000,0x0000,0x0000, +0x10ED,0x0000,0x0000,0x0000, 0x10F1,0x0000,0x0000,0x0000, +0x10F3,0x0000,0x0000,0x0000, 0xFBC0,0x838B,0x0000,0x0000, +0x10FB,0x0000,0x0000,0x0000, 0xFBC0,0x838D,0x0000,0x0000, +0x1104,0x0000,0x0000,0x0000, 0x1109,0x0000,0x0000,0x0000, +0x10F3,0x0000,0x0000,0x0000, 0x10E8,0x0000,0x0000,0x0000, +0x10E9,0x0000,0x0000,0x0000, 0x10EA,0x0000,0x0000,0x0000, +0x10EC,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000, +0x10F0,0x0000,0x0000,0x0000, 0x10F1,0x0000,0x0000,0x0000, +0x10F2,0x0000,0x0000,0x0000, 0x10F3,0x0000,0x0000,0x0000, +0x10F5,0x0000,0x0000,0x0000, 0x10F6,0x0000,0x0000,0x0000, +0x10F8,0x0000,0x0000,0x0000, 0x10F9,0x0000,0x0000,0x0000, +0x10FA,0x0000,0x0000,0x0000, 0x10FB,0x0000,0x0000,0x0000, +0x10FC,0x0000,0x0000,0x0000, 0x1100,0x0000,0x0000,0x0000, +0xFBC0,0x83A2,0x0000,0x0000, 0x1102,0x0000,0x0000,0x0000, +0x1103,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000, +0x1105,0x0000,0x0000,0x0000, 0x1106,0x0000,0x0000,0x0000, +0x1107,0x0000,0x0000,0x0000, 0x1109,0x0000,0x0000,0x0000, +0x10F3,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000, +0x10E8,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000, +0x10F1,0x0000,0x0000,0x0000, 0x10F3,0x0000,0x0000,0x0000, +0x1104,0x0000,0x0000,0x0000, 0x10E8,0x0000,0x0000,0x0000, +0x10E9,0x0000,0x0000,0x0000, 0x10EA,0x0000,0x0000,0x0000, +0x10EC,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000, +0x10F0,0x0000,0x0000,0x0000, 0x10F1,0x0000,0x0000,0x0000, +0x10F2,0x0000,0x0000,0x0000, 0x10F3,0x0000,0x0000,0x0000, +0x10F5,0x0000,0x0000,0x0000, 0x10F6,0x0000,0x0000,0x0000, +0x10F8,0x0000,0x0000,0x0000, 0x10F9,0x0000,0x0000,0x0000, +0x10FA,0x0000,0x0000,0x0000, 0x10FB,0x0000,0x0000,0x0000, +0x10FC,0x0000,0x0000,0x0000, 0x1100,0x0000,0x0000,0x0000, +0x1102,0x0000,0x0000,0x0000, 0x1102,0x0000,0x0000,0x0000, +0x1103,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000, +0x1105,0x0000,0x0000,0x0000, 0x1106,0x0000,0x0000,0x0000, +0x1107,0x0000,0x0000,0x0000, 0x1109,0x0000,0x0000,0x0000, +0x10F3,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000, +0x10FB,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000, +0x1109,0x0000,0x0000,0x0000, 0xFBC0,0x83CF,0x0000,0x0000, +0x10E9,0x0000,0x0000,0x0000, 0x10F2,0x0000,0x0000,0x0000, +0x1104,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000, +0x1104,0x0000,0x0000,0x0000, 0x1105,0x0000,0x0000,0x0000, +0x10FC,0x0000,0x0000,0x0000, 0x10F5,0x10E8,0x10F3,0x0000, +0x10FF,0x0000,0x0000,0x0000, 0x10FF,0x0000,0x0000,0x0000, +0x10EF,0x0000,0x0000,0x0000, 0x10EF,0x0000,0x0000,0x0000, +0x10EE,0x0000,0x0000,0x0000, 0x10EE,0x0000,0x0000,0x0000, +0x10FE,0x0000,0x0000,0x0000, 0x10FE,0x0000,0x0000,0x0000, +0x110A,0x0000,0x0000,0x0000, 0x110A,0x0000,0x0000,0x0000, +0x110D,0x0000,0x0000,0x0000, 0x110D,0x0000,0x0000,0x0000, +0x110E,0x0000,0x0000,0x0000, 0x110E,0x0000,0x0000,0x0000, +0x110F,0x0000,0x0000,0x0000, 0x110F,0x0000,0x0000,0x0000, +0x1110,0x0000,0x0000,0x0000, 0x1110,0x0000,0x0000,0x0000, +0x1111,0x0000,0x0000,0x0000, 0x1111,0x0000,0x0000,0x0000, +0x1112,0x0000,0x0000,0x0000, 0x1112,0x0000,0x0000,0x0000, +0x1113,0x0000,0x0000,0x0000, 0x1113,0x0000,0x0000,0x0000, +0x10F5,0x0000,0x0000,0x0000, 0x1100,0x0000,0x0000,0x0000, +0x1102,0x0000,0x0000,0x0000, 0x10F4,0x0000,0x0000,0x0000, +0x10F2,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000, +0x0423,0x0000,0x0000,0x0000, 0x110B,0x0000,0x0000,0x0000, +0x110B,0x0000,0x0000,0x0000, 0x1102,0x0000,0x0000,0x0000, +0x110C,0x0000,0x0000,0x0000, 0x110C,0x0000,0x0000,0x0000, +0xFBC0,0x83FC,0x0000,0x0000, 0xFBC0,0x83FD,0x0000,0x0000, +0xFBC0,0x83FE,0x0000,0x0000, 0xFBC0,0x83FF,0x0000,0x0000 +}; + +uint16 page004data[]= { /* 0400 (3 weights per char) */ +0x1152,0x0000,0x0000, 0x1152,0x0000,0x0000, 0x1145,0x0000,0x0000, +0x114A,0x0000,0x0000, 0x115A,0x0000,0x0000, 0x1173,0x0000,0x0000, +0x1188,0x0000,0x0000, 0x118C,0x0000,0x0000, 0x1194,0x0000,0x0000, +0x11B9,0x0000,0x0000, 0x11DA,0x0000,0x0000, 0x1215,0x0000,0x0000, +0x1219,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x1221,0x0000,0x0000, +0x127D,0x0000,0x0000, 0x1114,0x0000,0x0000, 0x112C,0x0000,0x0000, +0x1130,0x0000,0x0000, 0x1134,0x0000,0x0000, 0x1140,0x0000,0x0000, +0x1152,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x116A,0x0000,0x0000, +0x117C,0x0000,0x0000, 0x1190,0x0000,0x0000, 0x1198,0x0000,0x0000, +0x11B0,0x0000,0x0000, 0x11BE,0x0000,0x0000, 0x11C6,0x0000,0x0000, +0x11DF,0x0000,0x0000, 0x11EF,0x0000,0x0000, 0x11FB,0x0000,0x0000, +0x1203,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x121D,0x0000,0x0000, +0x1239,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1259,0x0000,0x0000, +0x1261,0x0000,0x0000, 0x1281,0x0000,0x0000, 0x1285,0x0000,0x0000, +0x1289,0x0000,0x0000, 0x128D,0x0000,0x0000, 0x1295,0x0000,0x0000, +0x12A1,0x0000,0x0000, 0x12A9,0x0000,0x0000, 0x12AD,0x0000,0x0000, +0x1114,0x0000,0x0000, 0x112C,0x0000,0x0000, 0x1130,0x0000,0x0000, +0x1134,0x0000,0x0000, 0x1140,0x0000,0x0000, 0x1152,0x0000,0x0000, +0x115E,0x0000,0x0000, 0x116A,0x0000,0x0000, 0x117C,0x0000,0x0000, +0x1190,0x0000,0x0000, 0x1198,0x0000,0x0000, 0x11B0,0x0000,0x0000, +0x11BE,0x0000,0x0000, 0x11C6,0x0000,0x0000, 0x11DF,0x0000,0x0000, +0x11EF,0x0000,0x0000, 0x11FB,0x0000,0x0000, 0x1203,0x0000,0x0000, +0x120C,0x0000,0x0000, 0x121D,0x0000,0x0000, 0x1239,0x0000,0x0000, +0x123D,0x0000,0x0000, 0x1259,0x0000,0x0000, 0x1261,0x0000,0x0000, +0x1281,0x0000,0x0000, 0x1285,0x0000,0x0000, 0x1289,0x0000,0x0000, +0x128D,0x0000,0x0000, 0x1295,0x0000,0x0000, 0x12A1,0x0000,0x0000, +0x12A9,0x0000,0x0000, 0x12AD,0x0000,0x0000, 0x1152,0x0000,0x0000, +0x1152,0x0000,0x0000, 0x1145,0x0000,0x0000, 0x114A,0x0000,0x0000, +0x115A,0x0000,0x0000, 0x1173,0x0000,0x0000, 0x1188,0x0000,0x0000, +0x118C,0x0000,0x0000, 0x1194,0x0000,0x0000, 0x11B9,0x0000,0x0000, +0x11DA,0x0000,0x0000, 0x1215,0x0000,0x0000, 0x1219,0x0000,0x0000, +0x117C,0x0000,0x0000, 0x1221,0x0000,0x0000, 0x127D,0x0000,0x0000, +0x1249,0x0000,0x0000, 0x1249,0x0000,0x0000, 0x129D,0x0000,0x0000, +0x129D,0x0000,0x0000, 0x12B1,0x0000,0x0000, 0x12B1,0x0000,0x0000, +0x12B5,0x0000,0x0000, 0x12B5,0x0000,0x0000, 0x12BD,0x0000,0x0000, +0x12BD,0x0000,0x0000, 0x12B9,0x0000,0x0000, 0x12B9,0x0000,0x0000, +0x12C1,0x0000,0x0000, 0x12C1,0x0000,0x0000, 0x12C5,0x0000,0x0000, +0x12C5,0x0000,0x0000, 0x12C9,0x0000,0x0000, 0x12C9,0x0000,0x0000, +0x12CD,0x0000,0x0000, 0x12CD,0x0000,0x0000, 0x12D1,0x0000,0x0000, +0x12D1,0x0000,0x0000, 0x12D5,0x0000,0x0000, 0x12D5,0x0000,0x0000, +0x1235,0x0000,0x0000, 0x1235,0x0000,0x0000, 0x1255,0x0000,0x0000, +0x1255,0x0000,0x0000, 0x1251,0x0000,0x0000, 0x1251,0x0000,0x0000, +0x124D,0x0000,0x0000, 0x124D,0x0000,0x0000, 0x11F7,0x0000,0x0000, +0x11F7,0x0000,0x0000, 0x034B,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x8487,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x1180,0x0000,0x0000, 0x1180,0x0000,0x0000, 0x1299,0x0000,0x0000, +0x1299,0x0000,0x0000, 0x11FF,0x0000,0x0000, 0x11FF,0x0000,0x0000, +0x1134,0x0000,0x0000, 0x1134,0x0000,0x0000, 0x1138,0x0000,0x0000, +0x1138,0x0000,0x0000, 0x113C,0x0000,0x0000, 0x113C,0x0000,0x0000, +0x1166,0x0000,0x0000, 0x1166,0x0000,0x0000, 0x114E,0x0000,0x0000, +0x114E,0x0000,0x0000, 0x119C,0x0000,0x0000, 0x119C,0x0000,0x0000, +0x11AC,0x0000,0x0000, 0x11AC,0x0000,0x0000, 0x11A8,0x0000,0x0000, +0x11A8,0x0000,0x0000, 0x11A4,0x0000,0x0000, 0x11A4,0x0000,0x0000, +0x11CE,0x0000,0x0000, 0x11CE,0x0000,0x0000, 0x11D6,0x0000,0x0000, +0x11D6,0x0000,0x0000, 0x11F3,0x0000,0x0000, 0x11F3,0x0000,0x0000, +0x12D9,0x0000,0x0000, 0x12D9,0x0000,0x0000, 0x1208,0x0000,0x0000, +0x1208,0x0000,0x0000, 0x1211,0x0000,0x0000, 0x1211,0x0000,0x0000, +0x122D,0x0000,0x0000, 0x122D,0x0000,0x0000, 0x1231,0x0000,0x0000, +0x1231,0x0000,0x0000, 0x1241,0x0000,0x0000, 0x1241,0x0000,0x0000, +0x125D,0x0000,0x0000, 0x125D,0x0000,0x0000, 0x1269,0x0000,0x0000, +0x1269,0x0000,0x0000, 0x1271,0x0000,0x0000, 0x1271,0x0000,0x0000, +0x1245,0x0000,0x0000, 0x1245,0x0000,0x0000, 0x1275,0x0000,0x0000, +0x1275,0x0000,0x0000, 0x1279,0x0000,0x0000, 0x1279,0x0000,0x0000, +0x12DD,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x115E,0x0000,0x0000, +0x11A0,0x0000,0x0000, 0x11A0,0x0000,0x0000, 0x11B5,0x0000,0x0000, +0x11B5,0x0000,0x0000, 0x11D2,0x0000,0x0000, 0x11D2,0x0000,0x0000, +0x11CA,0x0000,0x0000, 0x11CA,0x0000,0x0000, 0x126D,0x0000,0x0000, +0x126D,0x0000,0x0000, 0x11C2,0x0000,0x0000, 0x11C2,0x0000,0x0000, +0xFBC0,0x84CF,0x0000, 0x1118,0x0000,0x0000, 0x1118,0x0000,0x0000, +0x111C,0x0000,0x0000, 0x111C,0x0000,0x0000, 0x1128,0x0000,0x0000, +0x1128,0x0000,0x0000, 0x1156,0x0000,0x0000, 0x1156,0x0000,0x0000, +0x1120,0x0000,0x0000, 0x1120,0x0000,0x0000, 0x1124,0x0000,0x0000, +0x1124,0x0000,0x0000, 0x1162,0x0000,0x0000, 0x1162,0x0000,0x0000, +0x116F,0x0000,0x0000, 0x116F,0x0000,0x0000, 0x1177,0x0000,0x0000, +0x1177,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x117C,0x0000,0x0000, +0x1184,0x0000,0x0000, 0x1184,0x0000,0x0000, 0x11E3,0x0000,0x0000, +0x11E3,0x0000,0x0000, 0x11E7,0x0000,0x0000, 0x11E7,0x0000,0x0000, +0x11EB,0x0000,0x0000, 0x11EB,0x0000,0x0000, 0x12A5,0x0000,0x0000, +0x12A5,0x0000,0x0000, 0x121D,0x0000,0x0000, 0x121D,0x0000,0x0000, +0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x1229,0x0000,0x0000, +0x1229,0x0000,0x0000, 0x1265,0x0000,0x0000, 0x1265,0x0000,0x0000, +0xFBC0,0x84F6,0x0000, 0xFBC0,0x84F7,0x0000, 0x1291,0x0000,0x0000, +0x1291,0x0000,0x0000, 0xFBC0,0x84FA,0x0000, 0xFBC0,0x84FB,0x0000, +0xFBC0,0x84FC,0x0000, 0xFBC0,0x84FD,0x0000, 0xFBC0,0x84FE,0x0000, +0xFBC0,0x84FF,0x0000 }; + +uint16 page005data[]= { /* 0500 (3 weights per char) */ +0x1144,0x0000,0x0000, 0x1144,0x0000,0x0000, 0x1149,0x0000,0x0000, +0x1149,0x0000,0x0000, 0x116E,0x0000,0x0000, 0x116E,0x0000,0x0000, +0x117B,0x0000,0x0000, 0x117B,0x0000,0x0000, 0x11BD,0x0000,0x0000, +0x11BD,0x0000,0x0000, 0x11DE,0x0000,0x0000, 0x11DE,0x0000,0x0000, +0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1210,0x0000,0x0000, +0x1210,0x0000,0x0000, 0xFBC0,0x8510,0x0000, 0xFBC0,0x8511,0x0000, +0xFBC0,0x8512,0x0000, 0xFBC0,0x8513,0x0000, 0xFBC0,0x8514,0x0000, +0xFBC0,0x8515,0x0000, 0xFBC0,0x8516,0x0000, 0xFBC0,0x8517,0x0000, +0xFBC0,0x8518,0x0000, 0xFBC0,0x8519,0x0000, 0xFBC0,0x851A,0x0000, +0xFBC0,0x851B,0x0000, 0xFBC0,0x851C,0x0000, 0xFBC0,0x851D,0x0000, +0xFBC0,0x851E,0x0000, 0xFBC0,0x851F,0x0000, 0xFBC0,0x8520,0x0000, +0xFBC0,0x8521,0x0000, 0xFBC0,0x8522,0x0000, 0xFBC0,0x8523,0x0000, +0xFBC0,0x8524,0x0000, 0xFBC0,0x8525,0x0000, 0xFBC0,0x8526,0x0000, +0xFBC0,0x8527,0x0000, 0xFBC0,0x8528,0x0000, 0xFBC0,0x8529,0x0000, +0xFBC0,0x852A,0x0000, 0xFBC0,0x852B,0x0000, 0xFBC0,0x852C,0x0000, +0xFBC0,0x852D,0x0000, 0xFBC0,0x852E,0x0000, 0xFBC0,0x852F,0x0000, +0xFBC0,0x8530,0x0000, 0x130A,0x0000,0x0000, 0x130B,0x0000,0x0000, +0x130C,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x130E,0x0000,0x0000, +0x130F,0x0000,0x0000, 0x1310,0x0000,0x0000, 0x1311,0x0000,0x0000, +0x1312,0x0000,0x0000, 0x1313,0x0000,0x0000, 0x1314,0x0000,0x0000, +0x1315,0x0000,0x0000, 0x1316,0x0000,0x0000, 0x1317,0x0000,0x0000, +0x1318,0x0000,0x0000, 0x1319,0x0000,0x0000, 0x131A,0x0000,0x0000, +0x131B,0x0000,0x0000, 0x131C,0x0000,0x0000, 0x131D,0x0000,0x0000, +0x131E,0x0000,0x0000, 0x131F,0x0000,0x0000, 0x1320,0x0000,0x0000, +0x1321,0x0000,0x0000, 0x1322,0x0000,0x0000, 0x1323,0x0000,0x0000, +0x1324,0x0000,0x0000, 0x1325,0x0000,0x0000, 0x1326,0x0000,0x0000, +0x1327,0x0000,0x0000, 0x1328,0x0000,0x0000, 0x1329,0x0000,0x0000, +0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, 0x132C,0x0000,0x0000, +0x132D,0x0000,0x0000, 0x132E,0x0000,0x0000, 0x132F,0x0000,0x0000, +0xFBC0,0x8557,0x0000, 0xFBC0,0x8558,0x0000, 0x1330,0x0000,0x0000, +0x02EC,0x0000,0x0000, 0x02ED,0x0000,0x0000, 0x0253,0x0000,0x0000, +0x0230,0x0000,0x0000, 0x0257,0x0000,0x0000, 0x02EE,0x0000,0x0000, +0xFBC0,0x8560,0x0000, 0x130A,0x0000,0x0000, 0x130B,0x0000,0x0000, +0x130C,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x130E,0x0000,0x0000, +0x130F,0x0000,0x0000, 0x1310,0x0000,0x0000, 0x1311,0x0000,0x0000, +0x1312,0x0000,0x0000, 0x1313,0x0000,0x0000, 0x1314,0x0000,0x0000, +0x1315,0x0000,0x0000, 0x1316,0x0000,0x0000, 0x1317,0x0000,0x0000, +0x1318,0x0000,0x0000, 0x1319,0x0000,0x0000, 0x131A,0x0000,0x0000, +0x131B,0x0000,0x0000, 0x131C,0x0000,0x0000, 0x131D,0x0000,0x0000, +0x131E,0x0000,0x0000, 0x131F,0x0000,0x0000, 0x1320,0x0000,0x0000, +0x1321,0x0000,0x0000, 0x1322,0x0000,0x0000, 0x1323,0x0000,0x0000, +0x1324,0x0000,0x0000, 0x1325,0x0000,0x0000, 0x1326,0x0000,0x0000, +0x1327,0x0000,0x0000, 0x1328,0x0000,0x0000, 0x1329,0x0000,0x0000, +0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, 0x132C,0x0000,0x0000, +0x132D,0x0000,0x0000, 0x132E,0x0000,0x0000, 0x132F,0x0000,0x0000, +0x130E,0x132B,0x0000, 0xFBC0,0x8588,0x0000, 0x023E,0x0000,0x0000, +0x0222,0x0000,0x0000, 0xFBC0,0x858B,0x0000, 0xFBC0,0x858C,0x0000, +0xFBC0,0x858D,0x0000, 0xFBC0,0x858E,0x0000, 0xFBC0,0x858F,0x0000, +0xFBC0,0x8590,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x85A2,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x85BA,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x02EF,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x02F0,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x02F1,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x85C5,0x0000, +0xFBC0,0x85C6,0x0000, 0xFBC0,0x85C7,0x0000, 0xFBC0,0x85C8,0x0000, +0xFBC0,0x85C9,0x0000, 0xFBC0,0x85CA,0x0000, 0xFBC0,0x85CB,0x0000, +0xFBC0,0x85CC,0x0000, 0xFBC0,0x85CD,0x0000, 0xFBC0,0x85CE,0x0000, +0xFBC0,0x85CF,0x0000, 0x1331,0x0000,0x0000, 0x1332,0x0000,0x0000, +0x1333,0x0000,0x0000, 0x1334,0x0000,0x0000, 0x1335,0x0000,0x0000, +0x1336,0x0000,0x0000, 0x1337,0x0000,0x0000, 0x1338,0x0000,0x0000, +0x1339,0x0000,0x0000, 0x133A,0x0000,0x0000, 0x133B,0x0000,0x0000, +0x133B,0x0000,0x0000, 0x133C,0x0000,0x0000, 0x133D,0x0000,0x0000, +0x133D,0x0000,0x0000, 0x133E,0x0000,0x0000, 0x133E,0x0000,0x0000, +0x133F,0x0000,0x0000, 0x1340,0x0000,0x0000, 0x1341,0x0000,0x0000, +0x1341,0x0000,0x0000, 0x1342,0x0000,0x0000, 0x1342,0x0000,0x0000, +0x1343,0x0000,0x0000, 0x1344,0x0000,0x0000, 0x1345,0x0000,0x0000, +0x1346,0x0000,0x0000, 0xFBC0,0x85EB,0x0000, 0xFBC0,0x85EC,0x0000, +0xFBC0,0x85ED,0x0000, 0xFBC0,0x85EE,0x0000, 0xFBC0,0x85EF,0x0000, +0x1336,0x1336,0x0000, 0x1336,0x133A,0x0000, 0x133A,0x133A,0x0000, +0x02F2,0x0000,0x0000, 0x02F3,0x0000,0x0000, 0xFBC0,0x85F5,0x0000, +0xFBC0,0x85F6,0x0000, 0xFBC0,0x85F7,0x0000, 0xFBC0,0x85F8,0x0000, +0xFBC0,0x85F9,0x0000, 0xFBC0,0x85FA,0x0000, 0xFBC0,0x85FB,0x0000, +0xFBC0,0x85FC,0x0000, 0xFBC0,0x85FD,0x0000, 0xFBC0,0x85FE,0x0000, +0xFBC0,0x85FF,0x0000 }; + +uint16 page006data[]= { /* 0600 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8604,0x0000, 0xFBC0,0x8605,0x0000, +0xFBC0,0x8606,0x0000, 0xFBC0,0x8607,0x0000, 0xFBC0,0x8608,0x0000, +0xFBC0,0x8609,0x0000, 0xFBC0,0x860A,0x0000, 0xFBC0,0x860B,0x0000, +0x0231,0x0000,0x0000, 0x0232,0x0000,0x0000, 0x034C,0x0000,0x0000, +0x034D,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8616,0x0000, 0xFBC0,0x8617,0x0000, +0xFBC0,0x8618,0x0000, 0xFBC0,0x8619,0x0000, 0xFBC0,0x861A,0x0000, +0x023B,0x0000,0x0000, 0xFBC0,0x861C,0x0000, 0xFBC0,0x861D,0x0000, +0xFBC0,0x861E,0x0000, 0x0258,0x0000,0x0000, 0xFBC0,0x8620,0x0000, +0x1347,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1349,0x0000,0x0000, +0x134C,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x134F,0x0000,0x0000, +0x1350,0x0000,0x0000, 0x1352,0x0000,0x0000, 0x1356,0x0000,0x0000, +0x1357,0x0000,0x0000, 0x1358,0x0000,0x0000, 0x135E,0x0000,0x0000, +0x1364,0x0000,0x0000, 0x1365,0x0000,0x0000, 0x1369,0x0000,0x0000, +0x136A,0x0000,0x0000, 0x1375,0x0000,0x0000, 0x1376,0x0000,0x0000, +0x1381,0x0000,0x0000, 0x1382,0x0000,0x0000, 0x1387,0x0000,0x0000, +0x1388,0x0000,0x0000, 0x138C,0x0000,0x0000, 0x138D,0x0000,0x0000, +0x138F,0x0000,0x0000, 0x1390,0x0000,0x0000, 0xFBC0,0x863B,0x0000, +0xFBC0,0x863C,0x0000, 0xFBC0,0x863D,0x0000, 0xFBC0,0x863E,0x0000, +0xFBC0,0x863F,0x0000, 0x020B,0x0000,0x0000, 0x1393,0x0000,0x0000, +0x139B,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x13AB,0x0000,0x0000, +0x13B0,0x0000,0x0000, 0x13B1,0x0000,0x0000, 0x13B7,0x0000,0x0000, +0x13BD,0x0000,0x0000, 0x13C7,0x0000,0x0000, 0x13C8,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x8659,0x0000, +0xFBC0,0x865A,0x0000, 0xFBC0,0x865B,0x0000, 0xFBC0,0x865C,0x0000, +0xFBC0,0x865D,0x0000, 0xFBC0,0x865E,0x0000, 0xFBC0,0x865F,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0x02D4,0x0000,0x0000, 0x0233,0x0000,0x0000, +0x0234,0x0000,0x0000, 0x02CB,0x0000,0x0000, 0x1351,0x0000,0x0000, +0x139A,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x134B,0x0000,0x0000, +0x134A,0x0000,0x0000, 0x134E,0x0000,0x0000, 0x1347,0x0000,0x0000, +0x1350,0x1347,0x0000, 0x13BD,0x1347,0x0000, 0x13C1,0x1347,0x0000, +0x13C8,0x1347,0x0000, 0x1359,0x0000,0x0000, 0x135A,0x0000,0x0000, +0x1353,0x0000,0x0000, 0x135B,0x0000,0x0000, 0x135C,0x0000,0x0000, +0x1354,0x0000,0x0000, 0x135D,0x0000,0x0000, 0x1355,0x0000,0x0000, +0x1366,0x0000,0x0000, 0x1367,0x0000,0x0000, 0x135F,0x0000,0x0000, +0x1360,0x0000,0x0000, 0x1368,0x0000,0x0000, 0x1361,0x0000,0x0000, +0x1363,0x0000,0x0000, 0x136B,0x0000,0x0000, 0x136C,0x0000,0x0000, +0x136D,0x0000,0x0000, 0x136E,0x0000,0x0000, 0x136F,0x0000,0x0000, +0x1370,0x0000,0x0000, 0x1371,0x0000,0x0000, 0x1372,0x0000,0x0000, +0x1373,0x0000,0x0000, 0x1377,0x0000,0x0000, 0x1378,0x0000,0x0000, +0x1379,0x0000,0x0000, 0x137A,0x0000,0x0000, 0x137B,0x0000,0x0000, +0x137C,0x0000,0x0000, 0x137D,0x0000,0x0000, 0x137E,0x0000,0x0000, +0x137F,0x0000,0x0000, 0x1383,0x0000,0x0000, 0x1384,0x0000,0x0000, +0x1385,0x0000,0x0000, 0x1389,0x0000,0x0000, 0x138A,0x0000,0x0000, +0x138E,0x0000,0x0000, 0x1391,0x0000,0x0000, 0x1394,0x0000,0x0000, +0x1395,0x0000,0x0000, 0x1396,0x0000,0x0000, 0x1397,0x0000,0x0000, +0x1398,0x0000,0x0000, 0x1399,0x0000,0x0000, 0x139C,0x0000,0x0000, +0x139D,0x0000,0x0000, 0x139F,0x0000,0x0000, 0x13A0,0x0000,0x0000, +0x13A1,0x0000,0x0000, 0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, +0x13A4,0x0000,0x0000, 0x13A5,0x0000,0x0000, 0x13A6,0x0000,0x0000, +0x13A7,0x0000,0x0000, 0x13A8,0x0000,0x0000, 0x13A9,0x0000,0x0000, +0x13AA,0x0000,0x0000, 0x13AC,0x0000,0x0000, 0x13AD,0x0000,0x0000, +0x13AE,0x0000,0x0000, 0x13AF,0x0000,0x0000, 0x13B6,0x0000,0x0000, +0x13B2,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13B4,0x0000,0x0000, +0x13B5,0x0000,0x0000, 0x13B8,0x0000,0x0000, 0x1362,0x0000,0x0000, +0x13BC,0x0000,0x0000, 0x13B9,0x0000,0x0000, 0x13B9,0x0000,0x0000, +0x13BA,0x0000,0x0000, 0x13BE,0x0000,0x0000, 0x13BF,0x0000,0x0000, +0x13C0,0x0000,0x0000, 0x13C1,0x0000,0x0000, 0x13C2,0x0000,0x0000, +0x13C3,0x0000,0x0000, 0x13C4,0x0000,0x0000, 0x13C5,0x0000,0x0000, +0x13C9,0x0000,0x0000, 0x13CA,0x0000,0x0000, 0x13CB,0x0000,0x0000, +0x13C6,0x0000,0x0000, 0x13CC,0x0000,0x0000, 0x13CD,0x0000,0x0000, +0x13CE,0x0000,0x0000, 0x13CE,0x0000,0x0000, 0x025F,0x0000,0x0000, +0x13BC,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x13BD,0x0000,0x0000, 0x13C8,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x034E,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x1374,0x0000,0x0000, 0x1380,0x0000,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0x1386,0x0000,0x0000, 0x138B,0x0000,0x0000, +0x1392,0x0000,0x0000, 0x1347,0x0000,0x0000, 0x13B0,0x0000,0x0000, +0x13BB,0x0000,0x0000 }; + +uint16 page007data[]= { /* 0700 (3 weights per char) */ +0x0270,0x0000,0x0000, 0x0260,0x0000,0x0000, 0x0261,0x0000,0x0000, +0x023F,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0241,0x0000,0x0000, +0x0242,0x0000,0x0000, 0x0243,0x0000,0x0000, 0x0244,0x0000,0x0000, +0x0259,0x0000,0x0000, 0x02F4,0x0000,0x0000, 0x02F5,0x0000,0x0000, +0x02F6,0x0000,0x0000, 0x02F7,0x0000,0x0000, 0xFBC0,0x870E,0x0000, +0x0000,0x0000,0x0000, 0x13CF,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x13D0,0x0000,0x0000, 0x13D1,0x0000,0x0000, 0x13D1,0x0000,0x0000, +0x13D3,0x0000,0x0000, 0x13D2,0x0000,0x0000, 0x13D4,0x0000,0x0000, +0x13D5,0x0000,0x0000, 0x13D6,0x0000,0x0000, 0x13D8,0x0000,0x0000, +0x13D9,0x0000,0x0000, 0x13D9,0x0000,0x0000, 0x13DA,0x0000,0x0000, +0x13DB,0x0000,0x0000, 0x13DC,0x0000,0x0000, 0x13DE,0x0000,0x0000, +0x13DF,0x0000,0x0000, 0x13E0,0x0000,0x0000, 0x13E1,0x0000,0x0000, +0x13E1,0x0000,0x0000, 0x13E2,0x0000,0x0000, 0x13E3,0x0000,0x0000, +0x13E3,0x0000,0x0000, 0x13E5,0x0000,0x0000, 0x13E6,0x0000,0x0000, +0x13E7,0x0000,0x0000, 0x13E8,0x0000,0x0000, 0x13E9,0x0000,0x0000, +0x13D0,0x0000,0x0000, 0x13D1,0x0000,0x0000, 0x13D3,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x874B,0x0000, 0xFBC0,0x874C,0x0000, 0x13D7,0x0000,0x0000, +0x13DD,0x0000,0x0000, 0x13E4,0x0000,0x0000, 0xFBC0,0x8750,0x0000, +0xFBC0,0x8751,0x0000, 0xFBC0,0x8752,0x0000, 0xFBC0,0x8753,0x0000, +0xFBC0,0x8754,0x0000, 0xFBC0,0x8755,0x0000, 0xFBC0,0x8756,0x0000, +0xFBC0,0x8757,0x0000, 0xFBC0,0x8758,0x0000, 0xFBC0,0x8759,0x0000, +0xFBC0,0x875A,0x0000, 0xFBC0,0x875B,0x0000, 0xFBC0,0x875C,0x0000, +0xFBC0,0x875D,0x0000, 0xFBC0,0x875E,0x0000, 0xFBC0,0x875F,0x0000, +0xFBC0,0x8760,0x0000, 0xFBC0,0x8761,0x0000, 0xFBC0,0x8762,0x0000, +0xFBC0,0x8763,0x0000, 0xFBC0,0x8764,0x0000, 0xFBC0,0x8765,0x0000, +0xFBC0,0x8766,0x0000, 0xFBC0,0x8767,0x0000, 0xFBC0,0x8768,0x0000, +0xFBC0,0x8769,0x0000, 0xFBC0,0x876A,0x0000, 0xFBC0,0x876B,0x0000, +0xFBC0,0x876C,0x0000, 0xFBC0,0x876D,0x0000, 0xFBC0,0x876E,0x0000, +0xFBC0,0x876F,0x0000, 0xFBC0,0x8770,0x0000, 0xFBC0,0x8771,0x0000, +0xFBC0,0x8772,0x0000, 0xFBC0,0x8773,0x0000, 0xFBC0,0x8774,0x0000, +0xFBC0,0x8775,0x0000, 0xFBC0,0x8776,0x0000, 0xFBC0,0x8777,0x0000, +0xFBC0,0x8778,0x0000, 0xFBC0,0x8779,0x0000, 0xFBC0,0x877A,0x0000, +0xFBC0,0x877B,0x0000, 0xFBC0,0x877C,0x0000, 0xFBC0,0x877D,0x0000, +0xFBC0,0x877E,0x0000, 0xFBC0,0x877F,0x0000, 0x13EA,0x0000,0x0000, +0x13ED,0x0000,0x0000, 0x13EE,0x0000,0x0000, 0x13EF,0x0000,0x0000, +0x13F1,0x0000,0x0000, 0x13F2,0x0000,0x0000, 0x13F3,0x0000,0x0000, +0x13F4,0x0000,0x0000, 0x13F7,0x0000,0x0000, 0x13F9,0x0000,0x0000, +0x13FA,0x0000,0x0000, 0x13FB,0x0000,0x0000, 0x13FD,0x0000,0x0000, +0x1401,0x0000,0x0000, 0x1402,0x0000,0x0000, 0x1404,0x0000,0x0000, +0x1405,0x0000,0x0000, 0x1409,0x0000,0x0000, 0x140A,0x0000,0x0000, +0x140B,0x0000,0x0000, 0x140C,0x0000,0x0000, 0x140D,0x0000,0x0000, +0x140E,0x0000,0x0000, 0x140F,0x0000,0x0000, 0x13FE,0x0000,0x0000, +0x13EB,0x0000,0x0000, 0x13EC,0x0000,0x0000, 0x13FC,0x0000,0x0000, +0x13F0,0x0000,0x0000, 0x1406,0x0000,0x0000, 0x1407,0x0000,0x0000, +0x1408,0x0000,0x0000, 0x13FF,0x0000,0x0000, 0x1400,0x0000,0x0000, +0x13F5,0x0000,0x0000, 0x13F6,0x0000,0x0000, 0x1403,0x0000,0x0000, +0x13F8,0x0000,0x0000, 0x1411,0x0000,0x0000, 0x1412,0x0000,0x0000, +0x1413,0x0000,0x0000, 0x1414,0x0000,0x0000, 0x1415,0x0000,0x0000, +0x1416,0x0000,0x0000, 0x1417,0x0000,0x0000, 0x1418,0x0000,0x0000, +0x1419,0x0000,0x0000, 0x141A,0x0000,0x0000, 0x141B,0x0000,0x0000, +0x1410,0x0000,0x0000, 0xFBC0,0x87B2,0x0000, 0xFBC0,0x87B3,0x0000, +0xFBC0,0x87B4,0x0000, 0xFBC0,0x87B5,0x0000, 0xFBC0,0x87B6,0x0000, +0xFBC0,0x87B7,0x0000, 0xFBC0,0x87B8,0x0000, 0xFBC0,0x87B9,0x0000, +0xFBC0,0x87BA,0x0000, 0xFBC0,0x87BB,0x0000, 0xFBC0,0x87BC,0x0000, +0xFBC0,0x87BD,0x0000, 0xFBC0,0x87BE,0x0000, 0xFBC0,0x87BF,0x0000, +0xFBC0,0x87C0,0x0000, 0xFBC0,0x87C1,0x0000, 0xFBC0,0x87C2,0x0000, +0xFBC0,0x87C3,0x0000, 0xFBC0,0x87C4,0x0000, 0xFBC0,0x87C5,0x0000, +0xFBC0,0x87C6,0x0000, 0xFBC0,0x87C7,0x0000, 0xFBC0,0x87C8,0x0000, +0xFBC0,0x87C9,0x0000, 0xFBC0,0x87CA,0x0000, 0xFBC0,0x87CB,0x0000, +0xFBC0,0x87CC,0x0000, 0xFBC0,0x87CD,0x0000, 0xFBC0,0x87CE,0x0000, +0xFBC0,0x87CF,0x0000, 0xFBC0,0x87D0,0x0000, 0xFBC0,0x87D1,0x0000, +0xFBC0,0x87D2,0x0000, 0xFBC0,0x87D3,0x0000, 0xFBC0,0x87D4,0x0000, +0xFBC0,0x87D5,0x0000, 0xFBC0,0x87D6,0x0000, 0xFBC0,0x87D7,0x0000, +0xFBC0,0x87D8,0x0000, 0xFBC0,0x87D9,0x0000, 0xFBC0,0x87DA,0x0000, +0xFBC0,0x87DB,0x0000, 0xFBC0,0x87DC,0x0000, 0xFBC0,0x87DD,0x0000, +0xFBC0,0x87DE,0x0000, 0xFBC0,0x87DF,0x0000, 0xFBC0,0x87E0,0x0000, +0xFBC0,0x87E1,0x0000, 0xFBC0,0x87E2,0x0000, 0xFBC0,0x87E3,0x0000, +0xFBC0,0x87E4,0x0000, 0xFBC0,0x87E5,0x0000, 0xFBC0,0x87E6,0x0000, +0xFBC0,0x87E7,0x0000, 0xFBC0,0x87E8,0x0000, 0xFBC0,0x87E9,0x0000, +0xFBC0,0x87EA,0x0000, 0xFBC0,0x87EB,0x0000, 0xFBC0,0x87EC,0x0000, +0xFBC0,0x87ED,0x0000, 0xFBC0,0x87EE,0x0000, 0xFBC0,0x87EF,0x0000, +0xFBC0,0x87F0,0x0000, 0xFBC0,0x87F1,0x0000, 0xFBC0,0x87F2,0x0000, +0xFBC0,0x87F3,0x0000, 0xFBC0,0x87F4,0x0000, 0xFBC0,0x87F5,0x0000, +0xFBC0,0x87F6,0x0000, 0xFBC0,0x87F7,0x0000, 0xFBC0,0x87F8,0x0000, +0xFBC0,0x87F9,0x0000, 0xFBC0,0x87FA,0x0000, 0xFBC0,0x87FB,0x0000, +0xFBC0,0x87FC,0x0000, 0xFBC0,0x87FD,0x0000, 0xFBC0,0x87FE,0x0000, +0xFBC0,0x87FF,0x0000 }; + +uint16 page009data[]= { /* 0900 (3 weights per char) */ +0xFBC0,0x8900,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, +0x155C,0x0000,0x0000, 0x155D,0x0000,0x0000, 0x155E,0x0000,0x0000, +0x155F,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1561,0x0000,0x0000, +0x1563,0x0000,0x0000, 0x1565,0x0000,0x0000, 0x1566,0x0000,0x0000, +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156C,0x0000,0x0000, +0x156D,0x0000,0x0000, 0x156E,0x0000,0x0000, 0x156F,0x0000,0x0000, +0x1570,0x0000,0x0000, 0x1571,0x0000,0x0000, 0x1572,0x0000,0x0000, +0x1573,0x0000,0x0000, 0x1574,0x0000,0x0000, 0x1575,0x0000,0x0000, +0x1576,0x0000,0x0000, 0x1577,0x0000,0x0000, 0x1578,0x0000,0x0000, +0x1579,0x0000,0x0000, 0x157A,0x0000,0x0000, 0x157B,0x0000,0x0000, +0x157C,0x0000,0x0000, 0x157D,0x0000,0x0000, 0x157E,0x0000,0x0000, +0x157F,0x0000,0x0000, 0x1580,0x0000,0x0000, 0x1580,0x0000,0x0000, +0x1581,0x0000,0x0000, 0x1582,0x0000,0x0000, 0x1583,0x0000,0x0000, +0x1584,0x0000,0x0000, 0x1585,0x0000,0x0000, 0x1586,0x0000,0x0000, +0x1587,0x0000,0x0000, 0x1587,0x0000,0x0000, 0x1588,0x0000,0x0000, +0x1589,0x0000,0x0000, 0x1589,0x0000,0x0000, 0x158A,0x0000,0x0000, +0x158B,0x0000,0x0000, 0x158C,0x0000,0x0000, 0x158D,0x0000,0x0000, +0x158E,0x0000,0x0000, 0xFBC0,0x893A,0x0000, 0xFBC0,0x893B,0x0000, +0x0000,0x0000,0x0000, 0x158F,0x0000,0x0000, 0x1590,0x0000,0x0000, +0x1591,0x0000,0x0000, 0x1592,0x0000,0x0000, 0x1593,0x0000,0x0000, +0x1594,0x0000,0x0000, 0x1595,0x0000,0x0000, 0x1596,0x0000,0x0000, +0x1599,0x0000,0x0000, 0x159A,0x0000,0x0000, 0x159B,0x0000,0x0000, +0x159C,0x0000,0x0000, 0x159D,0x0000,0x0000, 0x159E,0x0000,0x0000, +0x159F,0x0000,0x0000, 0x15A0,0x0000,0x0000, 0x15A1,0x0000,0x0000, +0xFBC0,0x894E,0x0000, 0xFBC0,0x894F,0x0000, 0x1559,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8955,0x0000, 0xFBC0,0x8956,0x0000, +0xFBC0,0x8957,0x0000, 0x156D,0x0000,0x0000, 0x156E,0x0000,0x0000, +0x156F,0x0000,0x0000, 0x1574,0x0000,0x0000, 0x1579,0x0000,0x0000, +0x157A,0x0000,0x0000, 0x1582,0x0000,0x0000, 0x1586,0x0000,0x0000, +0x1562,0x0000,0x0000, 0x1564,0x0000,0x0000, 0x1597,0x0000,0x0000, +0x1598,0x0000,0x0000, 0x0268,0x0000,0x0000, 0x0269,0x0000,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0x02FA,0x0000,0x0000, 0xFBC0,0x8971,0x0000, +0xFBC0,0x8972,0x0000, 0xFBC0,0x8973,0x0000, 0xFBC0,0x8974,0x0000, +0xFBC0,0x8975,0x0000, 0xFBC0,0x8976,0x0000, 0xFBC0,0x8977,0x0000, +0xFBC0,0x8978,0x0000, 0xFBC0,0x8979,0x0000, 0xFBC0,0x897A,0x0000, +0xFBC0,0x897B,0x0000, 0xFBC0,0x897C,0x0000, 0xFBC0,0x897D,0x0000, +0xFBC0,0x897E,0x0000, 0xFBC0,0x897F,0x0000, 0xFBC0,0x8980,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x8984,0x0000, 0x15A2,0x0000,0x0000, 0x15A3,0x0000,0x0000, +0x15A4,0x0000,0x0000, 0x15A5,0x0000,0x0000, 0x15A6,0x0000,0x0000, +0x15A7,0x0000,0x0000, 0x15A8,0x0000,0x0000, 0x15AA,0x0000,0x0000, +0xFBC0,0x898D,0x0000, 0xFBC0,0x898E,0x0000, 0x15AC,0x0000,0x0000, +0x15AD,0x0000,0x0000, 0xFBC0,0x8991,0x0000, 0xFBC0,0x8992,0x0000, +0x15AE,0x0000,0x0000, 0x15AF,0x0000,0x0000, 0x15B0,0x0000,0x0000, +0x15B1,0x0000,0x0000, 0x15B2,0x0000,0x0000, 0x15B3,0x0000,0x0000, +0x15B4,0x0000,0x0000, 0x15B5,0x0000,0x0000, 0x15B6,0x0000,0x0000, +0x15B7,0x0000,0x0000, 0x15B8,0x0000,0x0000, 0x15B9,0x0000,0x0000, +0x15BA,0x0000,0x0000, 0x15BB,0x0000,0x0000, 0x15BC,0x0000,0x0000, +0x15BD,0x0000,0x0000, 0x15BE,0x0000,0x0000, 0x15BF,0x0000,0x0000, +0x15C0,0x0000,0x0000, 0x15C1,0x0000,0x0000, 0x15C2,0x0000,0x0000, +0x15C3,0x0000,0x0000, 0xFBC0,0x89A9,0x0000, 0x15C4,0x0000,0x0000, +0x15C5,0x0000,0x0000, 0x15C6,0x0000,0x0000, 0x15C7,0x0000,0x0000, +0x15C8,0x0000,0x0000, 0x15C9,0x0000,0x0000, 0x15CA,0x0000,0x0000, +0xFBC0,0x89B1,0x0000, 0x15CC,0x0000,0x0000, 0xFBC0,0x89B3,0x0000, +0xFBC0,0x89B4,0x0000, 0xFBC0,0x89B5,0x0000, 0x15CE,0x0000,0x0000, +0x15CF,0x0000,0x0000, 0x15D0,0x0000,0x0000, 0x15D1,0x0000,0x0000, +0xFBC0,0x89BA,0x0000, 0xFBC0,0x89BB,0x0000, 0x0000,0x0000,0x0000, +0x15D2,0x0000,0x0000, 0x15D3,0x0000,0x0000, 0x15D4,0x0000,0x0000, +0x15D5,0x0000,0x0000, 0x15D6,0x0000,0x0000, 0x15D7,0x0000,0x0000, +0x15D8,0x0000,0x0000, 0x15D9,0x0000,0x0000, 0xFBC0,0x89C5,0x0000, +0xFBC0,0x89C6,0x0000, 0x15DC,0x0000,0x0000, 0x15DD,0x0000,0x0000, +0xFBC0,0x89C9,0x0000, 0xFBC0,0x89CA,0x0000, 0x15DE,0x0000,0x0000, +0x15DF,0x0000,0x0000, 0x15E0,0x0000,0x0000, 0xFBC0,0x89CE,0x0000, +0xFBC0,0x89CF,0x0000, 0xFBC0,0x89D0,0x0000, 0xFBC0,0x89D1,0x0000, +0xFBC0,0x89D2,0x0000, 0xFBC0,0x89D3,0x0000, 0xFBC0,0x89D4,0x0000, +0xFBC0,0x89D5,0x0000, 0xFBC0,0x89D6,0x0000, 0x15E1,0x0000,0x0000, +0xFBC0,0x89D8,0x0000, 0xFBC0,0x89D9,0x0000, 0xFBC0,0x89DA,0x0000, +0xFBC0,0x89DB,0x0000, 0x15BC,0x0000,0x0000, 0x15BD,0x0000,0x0000, +0xFBC0,0x89DE,0x0000, 0x15C9,0x0000,0x0000, 0x15A9,0x0000,0x0000, +0x15AB,0x0000,0x0000, 0x15DA,0x0000,0x0000, 0x15DB,0x0000,0x0000, +0xFBC0,0x89E4,0x0000, 0xFBC0,0x89E5,0x0000, 0x0E29,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x15CB,0x0000,0x0000, 0x15CD,0x0000,0x0000, 0x0E12,0x0000,0x0000, +0x0E13,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0DC7,0x0000,0x0000, +0x0DC8,0x0000,0x0000, 0x0350,0x0000,0x0000, 0xFBC0,0x89FB,0x0000, +0xFBC0,0x89FC,0x0000, 0xFBC0,0x89FD,0x0000, 0xFBC0,0x89FE,0x0000, +0xFBC0,0x89FF,0x0000 }; + +uint16 page00Adata[]= { /* 0A00 (3 weights per char) */ +0xFBC0,0x8A00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8A04,0x0000, 0x15E7,0x0000,0x0000, +0x15E8,0x0000,0x0000, 0x15EC,0x0000,0x0000, 0x15ED,0x0000,0x0000, +0x15E4,0x0000,0x0000, 0x15E5,0x0000,0x0000, 0xFBC0,0x8A0B,0x0000, +0xFBC0,0x8A0C,0x0000, 0xFBC0,0x8A0D,0x0000, 0xFBC0,0x8A0E,0x0000, +0x15EE,0x0000,0x0000, 0x15E9,0x0000,0x0000, 0xFBC0,0x8A11,0x0000, +0xFBC0,0x8A12,0x0000, 0x15E6,0x0000,0x0000, 0x15EA,0x0000,0x0000, +0x15F1,0x0000,0x0000, 0x15F2,0x0000,0x0000, 0x15F3,0x0000,0x0000, +0x15F4,0x0000,0x0000, 0x15F5,0x0000,0x0000, 0x15F6,0x0000,0x0000, +0x15F7,0x0000,0x0000, 0x15F8,0x0000,0x0000, 0x15F9,0x0000,0x0000, +0x15FA,0x0000,0x0000, 0x15FB,0x0000,0x0000, 0x15FC,0x0000,0x0000, +0x15FD,0x0000,0x0000, 0x15FE,0x0000,0x0000, 0x15FF,0x0000,0x0000, +0x1600,0x0000,0x0000, 0x1601,0x0000,0x0000, 0x1602,0x0000,0x0000, +0x1603,0x0000,0x0000, 0x1604,0x0000,0x0000, 0xFBC0,0x8A29,0x0000, +0x1605,0x0000,0x0000, 0x1606,0x0000,0x0000, 0x1607,0x0000,0x0000, +0x1608,0x0000,0x0000, 0x1609,0x0000,0x0000, 0x160A,0x0000,0x0000, +0x160B,0x0000,0x0000, 0xFBC0,0x8A31,0x0000, 0x160C,0x0000,0x0000, +0x160C,0x0000,0x0000, 0xFBC0,0x8A34,0x0000, 0x160D,0x0000,0x0000, +0x15EF,0x0000,0x0000, 0xFBC0,0x8A37,0x0000, 0x15EF,0x0000,0x0000, +0x15F0,0x0000,0x0000, 0xFBC0,0x8A3A,0x0000, 0xFBC0,0x8A3B,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8A3D,0x0000, 0x160F,0x0000,0x0000, +0x1610,0x0000,0x0000, 0x1611,0x0000,0x0000, 0x1612,0x0000,0x0000, +0x1613,0x0000,0x0000, 0xFBC0,0x8A43,0x0000, 0xFBC0,0x8A44,0x0000, +0xFBC0,0x8A45,0x0000, 0xFBC0,0x8A46,0x0000, 0x1614,0x0000,0x0000, +0x1615,0x0000,0x0000, 0xFBC0,0x8A49,0x0000, 0xFBC0,0x8A4A,0x0000, +0x1616,0x0000,0x0000, 0x1617,0x0000,0x0000, 0x1618,0x0000,0x0000, +0xFBC0,0x8A4E,0x0000, 0xFBC0,0x8A4F,0x0000, 0xFBC0,0x8A50,0x0000, +0xFBC0,0x8A51,0x0000, 0xFBC0,0x8A52,0x0000, 0xFBC0,0x8A53,0x0000, +0xFBC0,0x8A54,0x0000, 0xFBC0,0x8A55,0x0000, 0xFBC0,0x8A56,0x0000, +0xFBC0,0x8A57,0x0000, 0xFBC0,0x8A58,0x0000, 0x15F2,0x0000,0x0000, +0x15F3,0x0000,0x0000, 0x15F8,0x0000,0x0000, 0x160E,0x0000,0x0000, +0xFBC0,0x8A5D,0x0000, 0x1606,0x0000,0x0000, 0xFBC0,0x8A5F,0x0000, +0xFBC0,0x8A60,0x0000, 0xFBC0,0x8A61,0x0000, 0xFBC0,0x8A62,0x0000, +0xFBC0,0x8A63,0x0000, 0xFBC0,0x8A64,0x0000, 0xFBC0,0x8A65,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x15EB,0x0000,0x0000, 0x15E3,0x0000,0x0000, 0x15E2,0x0000,0x0000, +0xFBC0,0x8A75,0x0000, 0xFBC0,0x8A76,0x0000, 0xFBC0,0x8A77,0x0000, +0xFBC0,0x8A78,0x0000, 0xFBC0,0x8A79,0x0000, 0xFBC0,0x8A7A,0x0000, +0xFBC0,0x8A7B,0x0000, 0xFBC0,0x8A7C,0x0000, 0xFBC0,0x8A7D,0x0000, +0xFBC0,0x8A7E,0x0000, 0xFBC0,0x8A7F,0x0000, 0xFBC0,0x8A80,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x8A84,0x0000, 0x161A,0x0000,0x0000, 0x161B,0x0000,0x0000, +0x161C,0x0000,0x0000, 0x161D,0x0000,0x0000, 0x161E,0x0000,0x0000, +0x161F,0x0000,0x0000, 0x1620,0x0000,0x0000, 0x1622,0x0000,0x0000, +0x1624,0x0000,0x0000, 0xFBC0,0x8A8E,0x0000, 0x1625,0x0000,0x0000, +0x1626,0x0000,0x0000, 0x1627,0x0000,0x0000, 0xFBC0,0x8A92,0x0000, +0x1628,0x0000,0x0000, 0x1629,0x0000,0x0000, 0x162A,0x0000,0x0000, +0x162B,0x0000,0x0000, 0x162C,0x0000,0x0000, 0x162D,0x0000,0x0000, +0x162E,0x0000,0x0000, 0x162F,0x0000,0x0000, 0x1630,0x0000,0x0000, +0x1631,0x0000,0x0000, 0x1632,0x0000,0x0000, 0x1633,0x0000,0x0000, +0x1634,0x0000,0x0000, 0x1635,0x0000,0x0000, 0x1636,0x0000,0x0000, +0x1637,0x0000,0x0000, 0x1638,0x0000,0x0000, 0x1639,0x0000,0x0000, +0x163A,0x0000,0x0000, 0x163B,0x0000,0x0000, 0x163C,0x0000,0x0000, +0x163D,0x0000,0x0000, 0xFBC0,0x8AA9,0x0000, 0x163E,0x0000,0x0000, +0x163F,0x0000,0x0000, 0x1640,0x0000,0x0000, 0x1641,0x0000,0x0000, +0x1642,0x0000,0x0000, 0x1643,0x0000,0x0000, 0x1644,0x0000,0x0000, +0xFBC0,0x8AB1,0x0000, 0x1645,0x0000,0x0000, 0x1646,0x0000,0x0000, +0xFBC0,0x8AB4,0x0000, 0x1647,0x0000,0x0000, 0x1648,0x0000,0x0000, +0x1649,0x0000,0x0000, 0x164A,0x0000,0x0000, 0x164B,0x0000,0x0000, +0xFBC0,0x8ABA,0x0000, 0xFBC0,0x8ABB,0x0000, 0x0000,0x0000,0x0000, +0x164C,0x0000,0x0000, 0x164D,0x0000,0x0000, 0x164E,0x0000,0x0000, +0x164F,0x0000,0x0000, 0x1650,0x0000,0x0000, 0x1651,0x0000,0x0000, +0x1652,0x0000,0x0000, 0x1653,0x0000,0x0000, 0x1656,0x0000,0x0000, +0xFBC0,0x8AC6,0x0000, 0x1657,0x0000,0x0000, 0x1658,0x0000,0x0000, +0x1659,0x0000,0x0000, 0xFBC0,0x8ACA,0x0000, 0x165A,0x0000,0x0000, +0x165B,0x0000,0x0000, 0x165C,0x0000,0x0000, 0xFBC0,0x8ACE,0x0000, +0xFBC0,0x8ACF,0x0000, 0x1619,0x0000,0x0000, 0xFBC0,0x8AD1,0x0000, +0xFBC0,0x8AD2,0x0000, 0xFBC0,0x8AD3,0x0000, 0xFBC0,0x8AD4,0x0000, +0xFBC0,0x8AD5,0x0000, 0xFBC0,0x8AD6,0x0000, 0xFBC0,0x8AD7,0x0000, +0xFBC0,0x8AD8,0x0000, 0xFBC0,0x8AD9,0x0000, 0xFBC0,0x8ADA,0x0000, +0xFBC0,0x8ADB,0x0000, 0xFBC0,0x8ADC,0x0000, 0xFBC0,0x8ADD,0x0000, +0xFBC0,0x8ADE,0x0000, 0xFBC0,0x8ADF,0x0000, 0x1621,0x0000,0x0000, +0x1623,0x0000,0x0000, 0x1654,0x0000,0x0000, 0x1655,0x0000,0x0000, +0xFBC0,0x8AE4,0x0000, 0xFBC0,0x8AE5,0x0000, 0x0E29,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0xFBC0,0x8AF0,0x0000, 0x0E14,0x0000,0x0000, 0xFBC0,0x8AF2,0x0000, +0xFBC0,0x8AF3,0x0000, 0xFBC0,0x8AF4,0x0000, 0xFBC0,0x8AF5,0x0000, +0xFBC0,0x8AF6,0x0000, 0xFBC0,0x8AF7,0x0000, 0xFBC0,0x8AF8,0x0000, +0xFBC0,0x8AF9,0x0000, 0xFBC0,0x8AFA,0x0000, 0xFBC0,0x8AFB,0x0000, +0xFBC0,0x8AFC,0x0000, 0xFBC0,0x8AFD,0x0000, 0xFBC0,0x8AFE,0x0000, +0xFBC0,0x8AFF,0x0000 }; + +uint16 page00Bdata[]= { /* 0B00 (3 weights per char) */ +0xFBC0,0x8B00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8B04,0x0000, 0x165D,0x0000,0x0000, +0x165E,0x0000,0x0000, 0x165F,0x0000,0x0000, 0x1660,0x0000,0x0000, +0x1661,0x0000,0x0000, 0x1662,0x0000,0x0000, 0x1663,0x0000,0x0000, +0x1665,0x0000,0x0000, 0xFBC0,0x8B0D,0x0000, 0xFBC0,0x8B0E,0x0000, +0x1667,0x0000,0x0000, 0x1668,0x0000,0x0000, 0xFBC0,0x8B11,0x0000, +0xFBC0,0x8B12,0x0000, 0x1669,0x0000,0x0000, 0x166A,0x0000,0x0000, +0x166B,0x0000,0x0000, 0x166C,0x0000,0x0000, 0x166D,0x0000,0x0000, +0x166E,0x0000,0x0000, 0x166F,0x0000,0x0000, 0x1670,0x0000,0x0000, +0x1671,0x0000,0x0000, 0x1672,0x0000,0x0000, 0x1673,0x0000,0x0000, +0x1674,0x0000,0x0000, 0x1675,0x0000,0x0000, 0x1676,0x0000,0x0000, +0x1677,0x0000,0x0000, 0x1678,0x0000,0x0000, 0x1679,0x0000,0x0000, +0x167A,0x0000,0x0000, 0x167B,0x0000,0x0000, 0x167C,0x0000,0x0000, +0x167D,0x0000,0x0000, 0x167E,0x0000,0x0000, 0xFBC0,0x8B29,0x0000, +0x167F,0x0000,0x0000, 0x1680,0x0000,0x0000, 0x1681,0x0000,0x0000, +0x1682,0x0000,0x0000, 0x1683,0x0000,0x0000, 0x1684,0x0000,0x0000, +0x1686,0x0000,0x0000, 0xFBC0,0x8B31,0x0000, 0x1687,0x0000,0x0000, +0x1688,0x0000,0x0000, 0xFBC0,0x8B34,0x0000, 0x1689,0x0000,0x0000, +0x168B,0x0000,0x0000, 0x168C,0x0000,0x0000, 0x168D,0x0000,0x0000, +0x168E,0x0000,0x0000, 0xFBC0,0x8B3A,0x0000, 0xFBC0,0x8B3B,0x0000, +0x0000,0x0000,0x0000, 0x168F,0x0000,0x0000, 0x1690,0x0000,0x0000, +0x1691,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1693,0x0000,0x0000, +0x1694,0x0000,0x0000, 0x1695,0x0000,0x0000, 0xFBC0,0x8B44,0x0000, +0xFBC0,0x8B45,0x0000, 0xFBC0,0x8B46,0x0000, 0x1696,0x0000,0x0000, +0x1697,0x0000,0x0000, 0xFBC0,0x8B49,0x0000, 0xFBC0,0x8B4A,0x0000, +0x1698,0x0000,0x0000, 0x1699,0x0000,0x0000, 0x169A,0x0000,0x0000, +0xFBC0,0x8B4E,0x0000, 0xFBC0,0x8B4F,0x0000, 0xFBC0,0x8B50,0x0000, +0xFBC0,0x8B51,0x0000, 0xFBC0,0x8B52,0x0000, 0xFBC0,0x8B53,0x0000, +0xFBC0,0x8B54,0x0000, 0xFBC0,0x8B55,0x0000, 0x169B,0x0000,0x0000, +0x169C,0x0000,0x0000, 0xFBC0,0x8B58,0x0000, 0xFBC0,0x8B59,0x0000, +0xFBC0,0x8B5A,0x0000, 0xFBC0,0x8B5B,0x0000, 0x1677,0x0000,0x0000, +0x1678,0x0000,0x0000, 0xFBC0,0x8B5E,0x0000, 0x1685,0x0000,0x0000, +0x1664,0x0000,0x0000, 0x1666,0x0000,0x0000, 0xFBC0,0x8B62,0x0000, +0xFBC0,0x8B63,0x0000, 0xFBC0,0x8B64,0x0000, 0xFBC0,0x8B65,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0x0351,0x0000,0x0000, 0x168A,0x0000,0x0000, +0xFBC0,0x8B72,0x0000, 0xFBC0,0x8B73,0x0000, 0xFBC0,0x8B74,0x0000, +0xFBC0,0x8B75,0x0000, 0xFBC0,0x8B76,0x0000, 0xFBC0,0x8B77,0x0000, +0xFBC0,0x8B78,0x0000, 0xFBC0,0x8B79,0x0000, 0xFBC0,0x8B7A,0x0000, +0xFBC0,0x8B7B,0x0000, 0xFBC0,0x8B7C,0x0000, 0xFBC0,0x8B7D,0x0000, +0xFBC0,0x8B7E,0x0000, 0xFBC0,0x8B7F,0x0000, 0xFBC0,0x8B80,0x0000, +0xFBC0,0x8B81,0x0000, 0x0000,0x0000,0x0000, 0x169D,0x0000,0x0000, +0xFBC0,0x8B84,0x0000, 0x169E,0x0000,0x0000, 0x169F,0x0000,0x0000, +0x16A0,0x0000,0x0000, 0x16A1,0x0000,0x0000, 0x16A2,0x0000,0x0000, +0x16A3,0x0000,0x0000, 0xFBC0,0x8B8B,0x0000, 0xFBC0,0x8B8C,0x0000, +0xFBC0,0x8B8D,0x0000, 0x16A4,0x0000,0x0000, 0x16A5,0x0000,0x0000, +0x16A6,0x0000,0x0000, 0xFBC0,0x8B91,0x0000, 0x16A7,0x0000,0x0000, +0x16A8,0x0000,0x0000, 0x16A9,0x0000,0x0000, 0x16AA,0x0000,0x0000, +0xFBC0,0x8B96,0x0000, 0xFBC0,0x8B97,0x0000, 0xFBC0,0x8B98,0x0000, +0x16AB,0x0000,0x0000, 0x16AC,0x0000,0x0000, 0xFBC0,0x8B9B,0x0000, +0x16AD,0x0000,0x0000, 0xFBC0,0x8B9D,0x0000, 0x16AE,0x0000,0x0000, +0x16AF,0x0000,0x0000, 0xFBC0,0x8BA0,0x0000, 0xFBC0,0x8BA1,0x0000, +0xFBC0,0x8BA2,0x0000, 0x16B0,0x0000,0x0000, 0x16B1,0x0000,0x0000, +0xFBC0,0x8BA5,0x0000, 0xFBC0,0x8BA6,0x0000, 0xFBC0,0x8BA7,0x0000, +0x16B2,0x0000,0x0000, 0x16B3,0x0000,0x0000, 0x16B4,0x0000,0x0000, +0xFBC0,0x8BAB,0x0000, 0xFBC0,0x8BAC,0x0000, 0xFBC0,0x8BAD,0x0000, +0x16B5,0x0000,0x0000, 0x16B6,0x0000,0x0000, 0x16B7,0x0000,0x0000, +0x16B8,0x0000,0x0000, 0x16B9,0x0000,0x0000, 0x16BA,0x0000,0x0000, +0x16BB,0x0000,0x0000, 0x16BC,0x0000,0x0000, 0xFBC0,0x8BB6,0x0000, +0x16BD,0x0000,0x0000, 0x16BE,0x0000,0x0000, 0x16BF,0x0000,0x0000, +0xFBC0,0x8BBA,0x0000, 0xFBC0,0x8BBB,0x0000, 0xFBC0,0x8BBC,0x0000, +0xFBC0,0x8BBD,0x0000, 0x16C0,0x0000,0x0000, 0x16C1,0x0000,0x0000, +0x16C2,0x0000,0x0000, 0x16C3,0x0000,0x0000, 0x16C4,0x0000,0x0000, +0xFBC0,0x8BC3,0x0000, 0xFBC0,0x8BC4,0x0000, 0xFBC0,0x8BC5,0x0000, +0x16C5,0x0000,0x0000, 0x16C6,0x0000,0x0000, 0x16C7,0x0000,0x0000, +0xFBC0,0x8BC9,0x0000, 0x16C8,0x0000,0x0000, 0x16C9,0x0000,0x0000, +0x16CA,0x0000,0x0000, 0x16CB,0x0000,0x0000, 0xFBC0,0x8BCE,0x0000, +0xFBC0,0x8BCF,0x0000, 0xFBC0,0x8BD0,0x0000, 0xFBC0,0x8BD1,0x0000, +0xFBC0,0x8BD2,0x0000, 0xFBC0,0x8BD3,0x0000, 0xFBC0,0x8BD4,0x0000, +0xFBC0,0x8BD5,0x0000, 0xFBC0,0x8BD6,0x0000, 0x16CC,0x0000,0x0000, +0xFBC0,0x8BD8,0x0000, 0xFBC0,0x8BD9,0x0000, 0xFBC0,0x8BDA,0x0000, +0xFBC0,0x8BDB,0x0000, 0xFBC0,0x8BDC,0x0000, 0xFBC0,0x8BDD,0x0000, +0xFBC0,0x8BDE,0x0000, 0xFBC0,0x8BDF,0x0000, 0xFBC0,0x8BE0,0x0000, +0xFBC0,0x8BE1,0x0000, 0xFBC0,0x8BE2,0x0000, 0xFBC0,0x8BE3,0x0000, +0xFBC0,0x8BE4,0x0000, 0xFBC0,0x8BE5,0x0000, 0xFBC0,0x8BE6,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x0DC9,0x0000,0x0000, 0x0DCA,0x0000,0x0000, 0x0DCB,0x0000,0x0000, +0x0352,0x0000,0x0000, 0x0353,0x0000,0x0000, 0x0354,0x0000,0x0000, +0x0355,0x0000,0x0000, 0x0356,0x0000,0x0000, 0x0357,0x0000,0x0000, +0x0E15,0x0000,0x0000, 0x0358,0x0000,0x0000, 0xFBC0,0x8BFB,0x0000, +0xFBC0,0x8BFC,0x0000, 0xFBC0,0x8BFD,0x0000, 0xFBC0,0x8BFE,0x0000, +0xFBC0,0x8BFF,0x0000 }; + +uint16 page00Cdata[]= { /* 0C00 (3 weights per char) */ +0xFBC0,0x8C00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8C04,0x0000, 0x16CD,0x0000,0x0000, +0x16CE,0x0000,0x0000, 0x16CF,0x0000,0x0000, 0x16D0,0x0000,0x0000, +0x16D1,0x0000,0x0000, 0x16D2,0x0000,0x0000, 0x16D3,0x0000,0x0000, +0x16D5,0x0000,0x0000, 0xFBC0,0x8C0D,0x0000, 0x16D7,0x0000,0x0000, +0x16D8,0x0000,0x0000, 0x16D9,0x0000,0x0000, 0xFBC0,0x8C11,0x0000, +0x16DA,0x0000,0x0000, 0x16DB,0x0000,0x0000, 0x16DC,0x0000,0x0000, +0x16DD,0x0000,0x0000, 0x16DE,0x0000,0x0000, 0x16DF,0x0000,0x0000, +0x16E0,0x0000,0x0000, 0x16E1,0x0000,0x0000, 0x16E2,0x0000,0x0000, +0x16E3,0x0000,0x0000, 0x16E4,0x0000,0x0000, 0x16E5,0x0000,0x0000, +0x16E6,0x0000,0x0000, 0x16E7,0x0000,0x0000, 0x16E8,0x0000,0x0000, +0x16E9,0x0000,0x0000, 0x16EA,0x0000,0x0000, 0x16EB,0x0000,0x0000, +0x16EC,0x0000,0x0000, 0x16ED,0x0000,0x0000, 0x16EE,0x0000,0x0000, +0x16EF,0x0000,0x0000, 0x16F0,0x0000,0x0000, 0xFBC0,0x8C29,0x0000, +0x16F1,0x0000,0x0000, 0x16F2,0x0000,0x0000, 0x16F3,0x0000,0x0000, +0x16F4,0x0000,0x0000, 0x16F5,0x0000,0x0000, 0x16F6,0x0000,0x0000, +0x16F7,0x0000,0x0000, 0x16F8,0x0000,0x0000, 0x16F9,0x0000,0x0000, +0x16FA,0x0000,0x0000, 0xFBC0,0x8C34,0x0000, 0x16FB,0x0000,0x0000, +0x16FC,0x0000,0x0000, 0x16FD,0x0000,0x0000, 0x16FE,0x0000,0x0000, +0x16FF,0x0000,0x0000, 0xFBC0,0x8C3A,0x0000, 0xFBC0,0x8C3B,0x0000, +0xFBC0,0x8C3C,0x0000, 0xFBC0,0x8C3D,0x0000, 0x1700,0x0000,0x0000, +0x1701,0x0000,0x0000, 0x1702,0x0000,0x0000, 0x1703,0x0000,0x0000, +0x1704,0x0000,0x0000, 0x1705,0x0000,0x0000, 0x1706,0x0000,0x0000, +0xFBC0,0x8C45,0x0000, 0x1707,0x0000,0x0000, 0x1708,0x0000,0x0000, +0x1709,0x0000,0x0000, 0xFBC0,0x8C49,0x0000, 0x170A,0x0000,0x0000, +0x170B,0x0000,0x0000, 0x170C,0x0000,0x0000, 0x170D,0x0000,0x0000, +0xFBC0,0x8C4E,0x0000, 0xFBC0,0x8C4F,0x0000, 0xFBC0,0x8C50,0x0000, +0xFBC0,0x8C51,0x0000, 0xFBC0,0x8C52,0x0000, 0xFBC0,0x8C53,0x0000, +0xFBC0,0x8C54,0x0000, 0x170E,0x0000,0x0000, 0x170F,0x0000,0x0000, +0xFBC0,0x8C57,0x0000, 0xFBC0,0x8C58,0x0000, 0xFBC0,0x8C59,0x0000, +0xFBC0,0x8C5A,0x0000, 0xFBC0,0x8C5B,0x0000, 0xFBC0,0x8C5C,0x0000, +0xFBC0,0x8C5D,0x0000, 0xFBC0,0x8C5E,0x0000, 0xFBC0,0x8C5F,0x0000, +0x16D4,0x0000,0x0000, 0x16D6,0x0000,0x0000, 0xFBC0,0x8C62,0x0000, +0xFBC0,0x8C63,0x0000, 0xFBC0,0x8C64,0x0000, 0xFBC0,0x8C65,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0xFBC0,0x8C70,0x0000, 0xFBC0,0x8C71,0x0000, +0xFBC0,0x8C72,0x0000, 0xFBC0,0x8C73,0x0000, 0xFBC0,0x8C74,0x0000, +0xFBC0,0x8C75,0x0000, 0xFBC0,0x8C76,0x0000, 0xFBC0,0x8C77,0x0000, +0xFBC0,0x8C78,0x0000, 0xFBC0,0x8C79,0x0000, 0xFBC0,0x8C7A,0x0000, +0xFBC0,0x8C7B,0x0000, 0xFBC0,0x8C7C,0x0000, 0xFBC0,0x8C7D,0x0000, +0xFBC0,0x8C7E,0x0000, 0xFBC0,0x8C7F,0x0000, 0xFBC0,0x8C80,0x0000, +0xFBC0,0x8C81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x8C84,0x0000, 0x1710,0x0000,0x0000, 0x1711,0x0000,0x0000, +0x1712,0x0000,0x0000, 0x1713,0x0000,0x0000, 0x1714,0x0000,0x0000, +0x1715,0x0000,0x0000, 0x1716,0x0000,0x0000, 0x1718,0x0000,0x0000, +0xFBC0,0x8C8D,0x0000, 0x171A,0x0000,0x0000, 0x171B,0x0000,0x0000, +0x171C,0x0000,0x0000, 0xFBC0,0x8C91,0x0000, 0x171D,0x0000,0x0000, +0x171E,0x0000,0x0000, 0x171F,0x0000,0x0000, 0x1720,0x0000,0x0000, +0x1721,0x0000,0x0000, 0x1722,0x0000,0x0000, 0x1723,0x0000,0x0000, +0x1724,0x0000,0x0000, 0x1725,0x0000,0x0000, 0x1726,0x0000,0x0000, +0x1727,0x0000,0x0000, 0x1728,0x0000,0x0000, 0x1729,0x0000,0x0000, +0x172A,0x0000,0x0000, 0x172B,0x0000,0x0000, 0x172C,0x0000,0x0000, +0x172D,0x0000,0x0000, 0x172E,0x0000,0x0000, 0x172F,0x0000,0x0000, +0x1730,0x0000,0x0000, 0x1731,0x0000,0x0000, 0x1732,0x0000,0x0000, +0x1733,0x0000,0x0000, 0xFBC0,0x8CA9,0x0000, 0x1734,0x0000,0x0000, +0x1735,0x0000,0x0000, 0x1736,0x0000,0x0000, 0x1737,0x0000,0x0000, +0x1738,0x0000,0x0000, 0x1739,0x0000,0x0000, 0x173A,0x0000,0x0000, +0x173B,0x0000,0x0000, 0x173C,0x0000,0x0000, 0x1743,0x0000,0x0000, +0xFBC0,0x8CB4,0x0000, 0x173D,0x0000,0x0000, 0x173E,0x0000,0x0000, +0x173F,0x0000,0x0000, 0x1740,0x0000,0x0000, 0x1741,0x0000,0x0000, +0xFBC0,0x8CBA,0x0000, 0xFBC0,0x8CBB,0x0000, 0x0000,0x0000,0x0000, +0x1742,0x0000,0x0000, 0x1745,0x0000,0x0000, 0x1746,0x0000,0x0000, +0x1747,0x0000,0x0000, 0x1748,0x0000,0x0000, 0x1749,0x0000,0x0000, +0x174A,0x0000,0x0000, 0x174B,0x0000,0x0000, 0xFBC0,0x8CC5,0x0000, +0x174C,0x0000,0x0000, 0x174D,0x0000,0x0000, 0x174E,0x0000,0x0000, +0xFBC0,0x8CC9,0x0000, 0x174F,0x0000,0x0000, 0x1750,0x0000,0x0000, +0x1751,0x0000,0x0000, 0x1752,0x0000,0x0000, 0xFBC0,0x8CCE,0x0000, +0xFBC0,0x8CCF,0x0000, 0xFBC0,0x8CD0,0x0000, 0xFBC0,0x8CD1,0x0000, +0xFBC0,0x8CD2,0x0000, 0xFBC0,0x8CD3,0x0000, 0xFBC0,0x8CD4,0x0000, +0x1753,0x0000,0x0000, 0x1754,0x0000,0x0000, 0xFBC0,0x8CD7,0x0000, +0xFBC0,0x8CD8,0x0000, 0xFBC0,0x8CD9,0x0000, 0xFBC0,0x8CDA,0x0000, +0xFBC0,0x8CDB,0x0000, 0xFBC0,0x8CDC,0x0000, 0xFBC0,0x8CDD,0x0000, +0x1744,0x0000,0x0000, 0xFBC0,0x8CDF,0x0000, 0x1717,0x0000,0x0000, +0x1719,0x0000,0x0000, 0xFBC0,0x8CE2,0x0000, 0xFBC0,0x8CE3,0x0000, +0xFBC0,0x8CE4,0x0000, 0xFBC0,0x8CE5,0x0000, 0x0E29,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0xFBC0,0x8CF0,0x0000, 0xFBC0,0x8CF1,0x0000, 0xFBC0,0x8CF2,0x0000, +0xFBC0,0x8CF3,0x0000, 0xFBC0,0x8CF4,0x0000, 0xFBC0,0x8CF5,0x0000, +0xFBC0,0x8CF6,0x0000, 0xFBC0,0x8CF7,0x0000, 0xFBC0,0x8CF8,0x0000, +0xFBC0,0x8CF9,0x0000, 0xFBC0,0x8CFA,0x0000, 0xFBC0,0x8CFB,0x0000, +0xFBC0,0x8CFC,0x0000, 0xFBC0,0x8CFD,0x0000, 0xFBC0,0x8CFE,0x0000, +0xFBC0,0x8CFF,0x0000 }; + +uint16 page00Ddata[]= { /* 0D00 (3 weights per char) */ +0xFBC0,0x8D00,0x0000, 0xFBC0,0x8D01,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC0,0x8D04,0x0000, 0x1755,0x0000,0x0000, +0x1756,0x0000,0x0000, 0x1757,0x0000,0x0000, 0x1758,0x0000,0x0000, +0x1759,0x0000,0x0000, 0x175A,0x0000,0x0000, 0x175B,0x0000,0x0000, +0x175D,0x0000,0x0000, 0xFBC0,0x8D0D,0x0000, 0x175F,0x0000,0x0000, +0x1760,0x0000,0x0000, 0x1761,0x0000,0x0000, 0xFBC0,0x8D11,0x0000, +0x1762,0x0000,0x0000, 0x1763,0x0000,0x0000, 0x1764,0x0000,0x0000, +0x1765,0x0000,0x0000, 0x1766,0x0000,0x0000, 0x1767,0x0000,0x0000, +0x1768,0x0000,0x0000, 0x1769,0x0000,0x0000, 0x176A,0x0000,0x0000, +0x176B,0x0000,0x0000, 0x176C,0x0000,0x0000, 0x176D,0x0000,0x0000, +0x176E,0x0000,0x0000, 0x176F,0x0000,0x0000, 0x1770,0x0000,0x0000, +0x1771,0x0000,0x0000, 0x1772,0x0000,0x0000, 0x1773,0x0000,0x0000, +0x1774,0x0000,0x0000, 0x1775,0x0000,0x0000, 0x1776,0x0000,0x0000, +0x1777,0x0000,0x0000, 0x1778,0x0000,0x0000, 0xFBC0,0x8D29,0x0000, +0x1779,0x0000,0x0000, 0x177A,0x0000,0x0000, 0x177B,0x0000,0x0000, +0x177C,0x0000,0x0000, 0x177D,0x0000,0x0000, 0x177E,0x0000,0x0000, +0x177F,0x0000,0x0000, 0x1780,0x0000,0x0000, 0x1781,0x0000,0x0000, +0x1782,0x0000,0x0000, 0x1783,0x0000,0x0000, 0x1784,0x0000,0x0000, +0x1785,0x0000,0x0000, 0x1786,0x0000,0x0000, 0x1787,0x0000,0x0000, +0x1788,0x0000,0x0000, 0xFBC0,0x8D3A,0x0000, 0xFBC0,0x8D3B,0x0000, +0xFBC0,0x8D3C,0x0000, 0xFBC0,0x8D3D,0x0000, 0x1789,0x0000,0x0000, +0x178A,0x0000,0x0000, 0x178B,0x0000,0x0000, 0x178C,0x0000,0x0000, +0x178D,0x0000,0x0000, 0x178E,0x0000,0x0000, 0xFBC0,0x8D44,0x0000, +0xFBC0,0x8D45,0x0000, 0x178F,0x0000,0x0000, 0x1790,0x0000,0x0000, +0x1791,0x0000,0x0000, 0xFBC0,0x8D49,0x0000, 0x1792,0x0000,0x0000, +0x1793,0x0000,0x0000, 0x1794,0x0000,0x0000, 0x1795,0x0000,0x0000, +0xFBC0,0x8D4E,0x0000, 0xFBC0,0x8D4F,0x0000, 0xFBC0,0x8D50,0x0000, +0xFBC0,0x8D51,0x0000, 0xFBC0,0x8D52,0x0000, 0xFBC0,0x8D53,0x0000, +0xFBC0,0x8D54,0x0000, 0xFBC0,0x8D55,0x0000, 0xFBC0,0x8D56,0x0000, +0x1796,0x0000,0x0000, 0xFBC0,0x8D58,0x0000, 0xFBC0,0x8D59,0x0000, +0xFBC0,0x8D5A,0x0000, 0xFBC0,0x8D5B,0x0000, 0xFBC0,0x8D5C,0x0000, +0xFBC0,0x8D5D,0x0000, 0xFBC0,0x8D5E,0x0000, 0xFBC0,0x8D5F,0x0000, +0x175C,0x0000,0x0000, 0x175E,0x0000,0x0000, 0xFBC0,0x8D62,0x0000, +0xFBC0,0x8D63,0x0000, 0xFBC0,0x8D64,0x0000, 0xFBC0,0x8D65,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0xFBC0,0x8D70,0x0000, 0xFBC0,0x8D71,0x0000, +0xFBC0,0x8D72,0x0000, 0xFBC0,0x8D73,0x0000, 0xFBC0,0x8D74,0x0000, +0xFBC0,0x8D75,0x0000, 0xFBC0,0x8D76,0x0000, 0xFBC0,0x8D77,0x0000, +0xFBC0,0x8D78,0x0000, 0xFBC0,0x8D79,0x0000, 0xFBC0,0x8D7A,0x0000, +0xFBC0,0x8D7B,0x0000, 0xFBC0,0x8D7C,0x0000, 0xFBC0,0x8D7D,0x0000, +0xFBC0,0x8D7E,0x0000, 0xFBC0,0x8D7F,0x0000, 0xFBC0,0x8D80,0x0000, +0xFBC0,0x8D81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x8D84,0x0000, 0x1797,0x0000,0x0000, 0x1798,0x0000,0x0000, +0x1799,0x0000,0x0000, 0x179A,0x0000,0x0000, 0x179B,0x0000,0x0000, +0x179C,0x0000,0x0000, 0x179D,0x0000,0x0000, 0x179E,0x0000,0x0000, +0x179F,0x0000,0x0000, 0x17A0,0x0000,0x0000, 0x17A1,0x0000,0x0000, +0x17A2,0x0000,0x0000, 0x17A3,0x0000,0x0000, 0x17A4,0x0000,0x0000, +0x17A5,0x0000,0x0000, 0x17A6,0x0000,0x0000, 0x17A7,0x0000,0x0000, +0x17A8,0x0000,0x0000, 0xFBC0,0x8D97,0x0000, 0xFBC0,0x8D98,0x0000, +0xFBC0,0x8D99,0x0000, 0x17A9,0x0000,0x0000, 0x17AA,0x0000,0x0000, +0x17AB,0x0000,0x0000, 0x17AC,0x0000,0x0000, 0x17AD,0x0000,0x0000, +0x17AE,0x0000,0x0000, 0x17AF,0x0000,0x0000, 0x17B0,0x0000,0x0000, +0x17B1,0x0000,0x0000, 0x17B2,0x0000,0x0000, 0x17B3,0x0000,0x0000, +0x17B4,0x0000,0x0000, 0x17B5,0x0000,0x0000, 0x17B6,0x0000,0x0000, +0x17B7,0x0000,0x0000, 0x17B8,0x0000,0x0000, 0x17B9,0x0000,0x0000, +0x17BA,0x0000,0x0000, 0x17BB,0x0000,0x0000, 0x17BC,0x0000,0x0000, +0x17BD,0x0000,0x0000, 0x17BE,0x0000,0x0000, 0x17BF,0x0000,0x0000, +0x17C0,0x0000,0x0000, 0xFBC0,0x8DB2,0x0000, 0x17C1,0x0000,0x0000, +0x17C2,0x0000,0x0000, 0x17C3,0x0000,0x0000, 0x17C4,0x0000,0x0000, +0x17C5,0x0000,0x0000, 0x17C6,0x0000,0x0000, 0x17C7,0x0000,0x0000, +0x17C8,0x0000,0x0000, 0x17C9,0x0000,0x0000, 0xFBC0,0x8DBC,0x0000, +0x17CA,0x0000,0x0000, 0xFBC0,0x8DBE,0x0000, 0xFBC0,0x8DBF,0x0000, +0x17CB,0x0000,0x0000, 0x17CC,0x0000,0x0000, 0x17CD,0x0000,0x0000, +0x17CE,0x0000,0x0000, 0x17CF,0x0000,0x0000, 0x17D0,0x0000,0x0000, +0x17D1,0x0000,0x0000, 0xFBC0,0x8DC7,0x0000, 0xFBC0,0x8DC8,0x0000, +0xFBC0,0x8DC9,0x0000, 0x17D2,0x0000,0x0000, 0xFBC0,0x8DCB,0x0000, +0xFBC0,0x8DCC,0x0000, 0xFBC0,0x8DCD,0x0000, 0xFBC0,0x8DCE,0x0000, +0x17D3,0x0000,0x0000, 0x17D4,0x0000,0x0000, 0x17D5,0x0000,0x0000, +0x17D6,0x0000,0x0000, 0x17D7,0x0000,0x0000, 0x17D8,0x0000,0x0000, +0xFBC0,0x8DD5,0x0000, 0x17D9,0x0000,0x0000, 0xFBC0,0x8DD7,0x0000, +0x17DA,0x0000,0x0000, 0x17DB,0x0000,0x0000, 0x17DC,0x0000,0x0000, +0x17DD,0x0000,0x0000, 0x17DE,0x0000,0x0000, 0x17DF,0x0000,0x0000, +0x17E0,0x0000,0x0000, 0x17E1,0x0000,0x0000, 0xFBC0,0x8DE0,0x0000, +0xFBC0,0x8DE1,0x0000, 0xFBC0,0x8DE2,0x0000, 0xFBC0,0x8DE3,0x0000, +0xFBC0,0x8DE4,0x0000, 0xFBC0,0x8DE5,0x0000, 0xFBC0,0x8DE6,0x0000, +0xFBC0,0x8DE7,0x0000, 0xFBC0,0x8DE8,0x0000, 0xFBC0,0x8DE9,0x0000, +0xFBC0,0x8DEA,0x0000, 0xFBC0,0x8DEB,0x0000, 0xFBC0,0x8DEC,0x0000, +0xFBC0,0x8DED,0x0000, 0xFBC0,0x8DEE,0x0000, 0xFBC0,0x8DEF,0x0000, +0xFBC0,0x8DF0,0x0000, 0xFBC0,0x8DF1,0x0000, 0x17E2,0x0000,0x0000, +0x17E3,0x0000,0x0000, 0x02FB,0x0000,0x0000, 0xFBC0,0x8DF5,0x0000, +0xFBC0,0x8DF6,0x0000, 0xFBC0,0x8DF7,0x0000, 0xFBC0,0x8DF8,0x0000, +0xFBC0,0x8DF9,0x0000, 0xFBC0,0x8DFA,0x0000, 0xFBC0,0x8DFB,0x0000, +0xFBC0,0x8DFC,0x0000, 0xFBC0,0x8DFD,0x0000, 0xFBC0,0x8DFE,0x0000, +0xFBC0,0x8DFF,0x0000 }; + +uint16 page00Edata[]= { /* 0E00 (3 weights per char) */ +0xFBC0,0x8E00,0x0000, 0x17E4,0x0000,0x0000, 0x17E5,0x0000,0x0000, +0x17E6,0x0000,0x0000, 0x17E7,0x0000,0x0000, 0x17E8,0x0000,0x0000, +0x17E9,0x0000,0x0000, 0x17EA,0x0000,0x0000, 0x17EB,0x0000,0x0000, +0x17EC,0x0000,0x0000, 0x17ED,0x0000,0x0000, 0x17EE,0x0000,0x0000, +0x17EF,0x0000,0x0000, 0x17F0,0x0000,0x0000, 0x17F1,0x0000,0x0000, +0x17F2,0x0000,0x0000, 0x17F3,0x0000,0x0000, 0x17F4,0x0000,0x0000, +0x17F5,0x0000,0x0000, 0x17F6,0x0000,0x0000, 0x17F7,0x0000,0x0000, +0x17F8,0x0000,0x0000, 0x17F9,0x0000,0x0000, 0x17FA,0x0000,0x0000, +0x17FB,0x0000,0x0000, 0x17FC,0x0000,0x0000, 0x17FD,0x0000,0x0000, +0x17FE,0x0000,0x0000, 0x17FF,0x0000,0x0000, 0x1800,0x0000,0x0000, +0x1801,0x0000,0x0000, 0x1802,0x0000,0x0000, 0x1803,0x0000,0x0000, +0x1804,0x0000,0x0000, 0x1805,0x0000,0x0000, 0x1806,0x0000,0x0000, +0x1807,0x0000,0x0000, 0x1808,0x0000,0x0000, 0x1809,0x0000,0x0000, +0x180A,0x0000,0x0000, 0x180B,0x0000,0x0000, 0x180C,0x0000,0x0000, +0x180D,0x0000,0x0000, 0x180E,0x0000,0x0000, 0x180F,0x0000,0x0000, +0x1810,0x0000,0x0000, 0x1811,0x0000,0x0000, 0x1812,0x0000,0x0000, +0x1813,0x0000,0x0000, 0x1814,0x0000,0x0000, 0x1815,0x0000,0x0000, +0x1816,0x0000,0x0000, 0x1817,0x0000,0x0000, 0x1818,0x0000,0x0000, +0x1819,0x0000,0x0000, 0x181A,0x0000,0x0000, 0x181B,0x0000,0x0000, +0x181C,0x0000,0x0000, 0x181D,0x0000,0x0000, 0xFBC0,0x8E3B,0x0000, +0xFBC0,0x8E3C,0x0000, 0xFBC0,0x8E3D,0x0000, 0xFBC0,0x8E3E,0x0000, +0x0E16,0x0000,0x0000, 0x181E,0x0000,0x0000, 0x181F,0x0000,0x0000, +0x1820,0x0000,0x0000, 0x1821,0x0000,0x0000, 0x1822,0x0000,0x0000, +0x1823,0x0000,0x0000, 0x0E03,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x1824,0x0000,0x0000, 0x1825,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0359,0x0000,0x0000, 0x0E29,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x02FC,0x0000,0x0000, 0x02FD,0x0000,0x0000, 0xFBC0,0x8E5C,0x0000, +0xFBC0,0x8E5D,0x0000, 0xFBC0,0x8E5E,0x0000, 0xFBC0,0x8E5F,0x0000, +0xFBC0,0x8E60,0x0000, 0xFBC0,0x8E61,0x0000, 0xFBC0,0x8E62,0x0000, +0xFBC0,0x8E63,0x0000, 0xFBC0,0x8E64,0x0000, 0xFBC0,0x8E65,0x0000, +0xFBC0,0x8E66,0x0000, 0xFBC0,0x8E67,0x0000, 0xFBC0,0x8E68,0x0000, +0xFBC0,0x8E69,0x0000, 0xFBC0,0x8E6A,0x0000, 0xFBC0,0x8E6B,0x0000, +0xFBC0,0x8E6C,0x0000, 0xFBC0,0x8E6D,0x0000, 0xFBC0,0x8E6E,0x0000, +0xFBC0,0x8E6F,0x0000, 0xFBC0,0x8E70,0x0000, 0xFBC0,0x8E71,0x0000, +0xFBC0,0x8E72,0x0000, 0xFBC0,0x8E73,0x0000, 0xFBC0,0x8E74,0x0000, +0xFBC0,0x8E75,0x0000, 0xFBC0,0x8E76,0x0000, 0xFBC0,0x8E77,0x0000, +0xFBC0,0x8E78,0x0000, 0xFBC0,0x8E79,0x0000, 0xFBC0,0x8E7A,0x0000, +0xFBC0,0x8E7B,0x0000, 0xFBC0,0x8E7C,0x0000, 0xFBC0,0x8E7D,0x0000, +0xFBC0,0x8E7E,0x0000, 0xFBC0,0x8E7F,0x0000, 0xFBC0,0x8E80,0x0000, +0x1826,0x0000,0x0000, 0x1827,0x0000,0x0000, 0xFBC0,0x8E83,0x0000, +0x1828,0x0000,0x0000, 0xFBC0,0x8E85,0x0000, 0xFBC0,0x8E86,0x0000, +0x1829,0x0000,0x0000, 0x182A,0x0000,0x0000, 0xFBC0,0x8E89,0x0000, +0x182B,0x0000,0x0000, 0xFBC0,0x8E8B,0x0000, 0xFBC0,0x8E8C,0x0000, +0x182C,0x0000,0x0000, 0xFBC0,0x8E8E,0x0000, 0xFBC0,0x8E8F,0x0000, +0xFBC0,0x8E90,0x0000, 0xFBC0,0x8E91,0x0000, 0xFBC0,0x8E92,0x0000, +0xFBC0,0x8E93,0x0000, 0x182D,0x0000,0x0000, 0x182E,0x0000,0x0000, +0x182F,0x0000,0x0000, 0x1830,0x0000,0x0000, 0xFBC0,0x8E98,0x0000, +0x1831,0x0000,0x0000, 0x1832,0x0000,0x0000, 0x1833,0x0000,0x0000, +0x1834,0x0000,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, +0x1837,0x0000,0x0000, 0xFBC0,0x8EA0,0x0000, 0x1838,0x0000,0x0000, +0x1839,0x0000,0x0000, 0x183A,0x0000,0x0000, 0xFBC0,0x8EA4,0x0000, +0x183B,0x0000,0x0000, 0xFBC0,0x8EA6,0x0000, 0x183C,0x0000,0x0000, +0xFBC0,0x8EA8,0x0000, 0xFBC0,0x8EA9,0x0000, 0x183D,0x0000,0x0000, +0x183E,0x0000,0x0000, 0xFBC0,0x8EAC,0x0000, 0x183F,0x0000,0x0000, +0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, +0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, +0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, +0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, +0xFBC0,0x8EBA,0x0000, 0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, +0x184E,0x0000,0x0000, 0xFBC0,0x8EBE,0x0000, 0xFBC0,0x8EBF,0x0000, +0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, +0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0xFBC0,0x8EC5,0x0000, +0x0E04,0x0000,0x0000, 0xFBC0,0x8EC7,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x1854,0x0000,0x0000, 0x1855,0x0000,0x0000, 0xFBC0,0x8ECE,0x0000, +0xFBC0,0x8ECF,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, +0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, +0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, +0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0xFBC0,0x8EDA,0x0000, +0xFBC0,0x8EDB,0x0000, 0x183E,0x1831,0x0000, 0x183E,0x1838,0x0000, +0xFBC0,0x8EDE,0x0000, 0xFBC0,0x8EDF,0x0000, 0xFBC0,0x8EE0,0x0000, +0xFBC0,0x8EE1,0x0000, 0xFBC0,0x8EE2,0x0000, 0xFBC0,0x8EE3,0x0000, +0xFBC0,0x8EE4,0x0000, 0xFBC0,0x8EE5,0x0000, 0xFBC0,0x8EE6,0x0000, +0xFBC0,0x8EE7,0x0000, 0xFBC0,0x8EE8,0x0000, 0xFBC0,0x8EE9,0x0000, +0xFBC0,0x8EEA,0x0000, 0xFBC0,0x8EEB,0x0000, 0xFBC0,0x8EEC,0x0000, +0xFBC0,0x8EED,0x0000, 0xFBC0,0x8EEE,0x0000, 0xFBC0,0x8EEF,0x0000, +0xFBC0,0x8EF0,0x0000, 0xFBC0,0x8EF1,0x0000, 0xFBC0,0x8EF2,0x0000, +0xFBC0,0x8EF3,0x0000, 0xFBC0,0x8EF4,0x0000, 0xFBC0,0x8EF5,0x0000, +0xFBC0,0x8EF6,0x0000, 0xFBC0,0x8EF7,0x0000, 0xFBC0,0x8EF8,0x0000, +0xFBC0,0x8EF9,0x0000, 0xFBC0,0x8EFA,0x0000, 0xFBC0,0x8EFB,0x0000, +0xFBC0,0x8EFC,0x0000, 0xFBC0,0x8EFD,0x0000, 0xFBC0,0x8EFE,0x0000, +0xFBC0,0x8EFF,0x0000 }; + +uint16 page00Fdata[]= { /* 0F00 (3 weights per char) */ +0x189A,0x18AD,0x0000, 0x035A,0x0000,0x0000, 0x035B,0x0000,0x0000, +0x035C,0x0000,0x0000, 0x02FE,0x0000,0x0000, 0x02FF,0x0000,0x0000, +0x0300,0x0000,0x0000, 0x0301,0x0000,0x0000, 0x0302,0x0000,0x0000, +0x0303,0x0000,0x0000, 0x0304,0x0000,0x0000, 0x0305,0x0000,0x0000, +0x0305,0x0000,0x0000, 0x0306,0x0000,0x0000, 0x0307,0x0000,0x0000, +0x0308,0x0000,0x0000, 0x0309,0x0000,0x0000, 0x030A,0x0000,0x0000, +0x030B,0x0000,0x0000, 0x035D,0x0000,0x0000, 0x024C,0x0000,0x0000, +0x035E,0x0000,0x0000, 0x035F,0x0000,0x0000, 0x0360,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0361,0x0000,0x0000, +0x0362,0x0000,0x0000, 0x0363,0x0000,0x0000, 0x0364,0x0000,0x0000, +0x0365,0x0000,0x0000, 0x0366,0x0000,0x0000, 0x0E29,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x0E29,0x0000,0x0000, 0x0367,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0368,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0369,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x028E,0x0000,0x0000, 0x028F,0x0000,0x0000, +0x0290,0x0000,0x0000, 0x0291,0x0000,0x0000, 0x036A,0x0000,0x0000, +0x036B,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1858,0x0000,0x0000, +0x185A,0x0000,0x0000, 0x185A,0x1899,0x0000, 0x185C,0x0000,0x0000, +0x185E,0x0000,0x0000, 0x1860,0x0000,0x0000, 0x1862,0x0000,0x0000, +0xFBC0,0x8F48,0x0000, 0x1864,0x0000,0x0000, 0x1866,0x0000,0x0000, +0x1868,0x0000,0x0000, 0x186A,0x0000,0x0000, 0x186A,0x1899,0x0000, +0x186C,0x0000,0x0000, 0x186E,0x0000,0x0000, 0x1870,0x0000,0x0000, +0x1872,0x0000,0x0000, 0x1872,0x1899,0x0000, 0x1874,0x0000,0x0000, +0x1876,0x0000,0x0000, 0x1878,0x0000,0x0000, 0x187A,0x0000,0x0000, +0x187A,0x1899,0x0000, 0x187C,0x0000,0x0000, 0x187E,0x0000,0x0000, +0x1880,0x0000,0x0000, 0x1882,0x0000,0x0000, 0x1882,0x1899,0x0000, +0x1884,0x0000,0x0000, 0x1886,0x0000,0x0000, 0x1888,0x0000,0x0000, +0x188A,0x0000,0x0000, 0x188C,0x0000,0x0000, 0x188E,0x0000,0x0000, +0x1890,0x0000,0x0000, 0x1892,0x0000,0x0000, 0x1894,0x0000,0x0000, +0x1896,0x0000,0x0000, 0x1898,0x0000,0x0000, 0x189A,0x0000,0x0000, +0x1856,0x1895,0x0000, 0x188E,0x0000,0x0000, 0xFBC0,0x8F6B,0x0000, +0xFBC0,0x8F6C,0x0000, 0xFBC0,0x8F6D,0x0000, 0xFBC0,0x8F6E,0x0000, +0xFBC0,0x8F6F,0x0000, 0xFBC0,0x8F70,0x0000, 0x18A0,0x0000,0x0000, +0x18A1,0x0000,0x0000, 0x18A2,0x0000,0x0000, 0x18A5,0x0000,0x0000, +0x18A6,0x0000,0x0000, 0x18A7,0x0000,0x0000, 0x18A8,0x0000,0x0000, +0x18A9,0x0000,0x0000, 0x18AA,0x0000,0x0000, 0x18AB,0x0000,0x0000, +0x18AC,0x0000,0x0000, 0x18AD,0x0000,0x0000, 0x18AE,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A3,0x0000,0x0000, +0x18A4,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x18AF,0x0000,0x0000, 0x030C,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x189C,0x0000,0x0000, 0x189D,0x0000,0x0000, +0x189E,0x0000,0x0000, 0x189F,0x0000,0x0000, 0xFBC0,0x8F8C,0x0000, +0xFBC0,0x8F8D,0x0000, 0xFBC0,0x8F8E,0x0000, 0xFBC0,0x8F8F,0x0000, +0x1857,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185B,0x0000,0x0000, +0x185B,0x1899,0x0000, 0x185D,0x0000,0x0000, 0x185F,0x0000,0x0000, +0x1861,0x0000,0x0000, 0x1863,0x0000,0x0000, 0xFBC0,0x8F98,0x0000, +0x1865,0x0000,0x0000, 0x1867,0x0000,0x0000, 0x1869,0x0000,0x0000, +0x186B,0x0000,0x0000, 0x186B,0x1899,0x0000, 0x186D,0x0000,0x0000, +0x186F,0x0000,0x0000, 0x1871,0x0000,0x0000, 0x1873,0x0000,0x0000, +0x1873,0x1899,0x0000, 0x1875,0x0000,0x0000, 0x1877,0x0000,0x0000, +0x1879,0x0000,0x0000, 0x187B,0x0000,0x0000, 0x187B,0x1899,0x0000, +0x187D,0x0000,0x0000, 0x187F,0x0000,0x0000, 0x1881,0x0000,0x0000, +0x1883,0x0000,0x0000, 0x1883,0x1899,0x0000, 0x1885,0x0000,0x0000, +0x1887,0x0000,0x0000, 0x1889,0x0000,0x0000, 0x188B,0x0000,0x0000, +0x188D,0x0000,0x0000, 0x188F,0x0000,0x0000, 0x1891,0x0000,0x0000, +0x1893,0x0000,0x0000, 0x1895,0x0000,0x0000, 0x1897,0x0000,0x0000, +0x1899,0x0000,0x0000, 0x189B,0x0000,0x0000, 0x1857,0x1895,0x0000, +0x1885,0x0000,0x0000, 0x188D,0x0000,0x0000, 0x188F,0x0000,0x0000, +0xFBC0,0x8FBD,0x0000, 0x036C,0x0000,0x0000, 0x036D,0x0000,0x0000, +0x036E,0x0000,0x0000, 0x036F,0x0000,0x0000, 0x0370,0x0000,0x0000, +0x0371,0x0000,0x0000, 0x0372,0x0000,0x0000, 0x0373,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0374,0x0000,0x0000, 0x0375,0x0000,0x0000, +0x0376,0x0000,0x0000, 0x0377,0x0000,0x0000, 0x0378,0x0000,0x0000, +0x0379,0x0000,0x0000, 0xFBC0,0x8FCD,0x0000, 0xFBC0,0x8FCE,0x0000, +0x037A,0x0000,0x0000, 0xFBC0,0x8FD0,0x0000, 0xFBC0,0x8FD1,0x0000, +0xFBC0,0x8FD2,0x0000, 0xFBC0,0x8FD3,0x0000, 0xFBC0,0x8FD4,0x0000, +0xFBC0,0x8FD5,0x0000, 0xFBC0,0x8FD6,0x0000, 0xFBC0,0x8FD7,0x0000, +0xFBC0,0x8FD8,0x0000, 0xFBC0,0x8FD9,0x0000, 0xFBC0,0x8FDA,0x0000, +0xFBC0,0x8FDB,0x0000, 0xFBC0,0x8FDC,0x0000, 0xFBC0,0x8FDD,0x0000, +0xFBC0,0x8FDE,0x0000, 0xFBC0,0x8FDF,0x0000, 0xFBC0,0x8FE0,0x0000, +0xFBC0,0x8FE1,0x0000, 0xFBC0,0x8FE2,0x0000, 0xFBC0,0x8FE3,0x0000, +0xFBC0,0x8FE4,0x0000, 0xFBC0,0x8FE5,0x0000, 0xFBC0,0x8FE6,0x0000, +0xFBC0,0x8FE7,0x0000, 0xFBC0,0x8FE8,0x0000, 0xFBC0,0x8FE9,0x0000, +0xFBC0,0x8FEA,0x0000, 0xFBC0,0x8FEB,0x0000, 0xFBC0,0x8FEC,0x0000, +0xFBC0,0x8FED,0x0000, 0xFBC0,0x8FEE,0x0000, 0xFBC0,0x8FEF,0x0000, +0xFBC0,0x8FF0,0x0000, 0xFBC0,0x8FF1,0x0000, 0xFBC0,0x8FF2,0x0000, +0xFBC0,0x8FF3,0x0000, 0xFBC0,0x8FF4,0x0000, 0xFBC0,0x8FF5,0x0000, +0xFBC0,0x8FF6,0x0000, 0xFBC0,0x8FF7,0x0000, 0xFBC0,0x8FF8,0x0000, +0xFBC0,0x8FF9,0x0000, 0xFBC0,0x8FFA,0x0000, 0xFBC0,0x8FFB,0x0000, +0xFBC0,0x8FFC,0x0000, 0xFBC0,0x8FFD,0x0000, 0xFBC0,0x8FFE,0x0000, +0xFBC0,0x8FFF,0x0000 }; + +uint16 page010data[]= { /* 1000 (3 weights per char) */ +0x1931,0x0000,0x0000, 0x1932,0x0000,0x0000, 0x1933,0x0000,0x0000, +0x1934,0x0000,0x0000, 0x1935,0x0000,0x0000, 0x1936,0x0000,0x0000, +0x1937,0x0000,0x0000, 0x1938,0x0000,0x0000, 0x1939,0x0000,0x0000, +0x193A,0x0000,0x0000, 0x193B,0x0000,0x0000, 0x193C,0x0000,0x0000, +0x193D,0x0000,0x0000, 0x193E,0x0000,0x0000, 0x193F,0x0000,0x0000, +0x1940,0x0000,0x0000, 0x1941,0x0000,0x0000, 0x1942,0x0000,0x0000, +0x1943,0x0000,0x0000, 0x1944,0x0000,0x0000, 0x1945,0x0000,0x0000, +0x1946,0x0000,0x0000, 0x1947,0x0000,0x0000, 0x1948,0x0000,0x0000, +0x1949,0x0000,0x0000, 0x194A,0x0000,0x0000, 0x194B,0x0000,0x0000, +0x194C,0x0000,0x0000, 0x194D,0x0000,0x0000, 0x194E,0x0000,0x0000, +0x1951,0x0000,0x0000, 0x1952,0x0000,0x0000, 0x1953,0x0000,0x0000, +0x1954,0x0000,0x0000, 0xFBC0,0x9022,0x0000, 0x1955,0x0000,0x0000, +0x1956,0x0000,0x0000, 0x1957,0x0000,0x0000, 0x1958,0x0000,0x0000, +0x1959,0x0000,0x0000, 0xFBC0,0x9028,0x0000, 0x195A,0x0000,0x0000, +0x195B,0x0000,0x0000, 0xFBC0,0x902B,0x0000, 0x1960,0x0000,0x0000, +0x1961,0x0000,0x0000, 0x1962,0x0000,0x0000, 0x1963,0x0000,0x0000, +0x1964,0x0000,0x0000, 0x1965,0x0000,0x0000, 0x1966,0x0000,0x0000, +0xFBC0,0x9033,0x0000, 0xFBC0,0x9034,0x0000, 0xFBC0,0x9035,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x196B,0x0000,0x0000, 0xFBC0,0x903A,0x0000, 0xFBC0,0x903B,0x0000, +0xFBC0,0x903C,0x0000, 0xFBC0,0x903D,0x0000, 0xFBC0,0x903E,0x0000, +0xFBC0,0x903F,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, +0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, +0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, +0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x026C,0x0000,0x0000, +0x026D,0x0000,0x0000, 0x030E,0x0000,0x0000, 0x030F,0x0000,0x0000, +0x0310,0x0000,0x0000, 0x0311,0x0000,0x0000, 0x194F,0x0000,0x0000, +0x1950,0x0000,0x0000, 0x195C,0x0000,0x0000, 0x195D,0x0000,0x0000, +0x195E,0x0000,0x0000, 0x195F,0x0000,0x0000, 0x1967,0x0000,0x0000, +0x1968,0x0000,0x0000, 0x1969,0x0000,0x0000, 0x196A,0x0000,0x0000, +0xFBC0,0x905A,0x0000, 0xFBC0,0x905B,0x0000, 0xFBC0,0x905C,0x0000, +0xFBC0,0x905D,0x0000, 0xFBC0,0x905E,0x0000, 0xFBC0,0x905F,0x0000, +0xFBC0,0x9060,0x0000, 0xFBC0,0x9061,0x0000, 0xFBC0,0x9062,0x0000, +0xFBC0,0x9063,0x0000, 0xFBC0,0x9064,0x0000, 0xFBC0,0x9065,0x0000, +0xFBC0,0x9066,0x0000, 0xFBC0,0x9067,0x0000, 0xFBC0,0x9068,0x0000, +0xFBC0,0x9069,0x0000, 0xFBC0,0x906A,0x0000, 0xFBC0,0x906B,0x0000, +0xFBC0,0x906C,0x0000, 0xFBC0,0x906D,0x0000, 0xFBC0,0x906E,0x0000, +0xFBC0,0x906F,0x0000, 0xFBC0,0x9070,0x0000, 0xFBC0,0x9071,0x0000, +0xFBC0,0x9072,0x0000, 0xFBC0,0x9073,0x0000, 0xFBC0,0x9074,0x0000, +0xFBC0,0x9075,0x0000, 0xFBC0,0x9076,0x0000, 0xFBC0,0x9077,0x0000, +0xFBC0,0x9078,0x0000, 0xFBC0,0x9079,0x0000, 0xFBC0,0x907A,0x0000, +0xFBC0,0x907B,0x0000, 0xFBC0,0x907C,0x0000, 0xFBC0,0x907D,0x0000, +0xFBC0,0x907E,0x0000, 0xFBC0,0x907F,0x0000, 0xFBC0,0x9080,0x0000, +0xFBC0,0x9081,0x0000, 0xFBC0,0x9082,0x0000, 0xFBC0,0x9083,0x0000, +0xFBC0,0x9084,0x0000, 0xFBC0,0x9085,0x0000, 0xFBC0,0x9086,0x0000, +0xFBC0,0x9087,0x0000, 0xFBC0,0x9088,0x0000, 0xFBC0,0x9089,0x0000, +0xFBC0,0x908A,0x0000, 0xFBC0,0x908B,0x0000, 0xFBC0,0x908C,0x0000, +0xFBC0,0x908D,0x0000, 0xFBC0,0x908E,0x0000, 0xFBC0,0x908F,0x0000, +0xFBC0,0x9090,0x0000, 0xFBC0,0x9091,0x0000, 0xFBC0,0x9092,0x0000, +0xFBC0,0x9093,0x0000, 0xFBC0,0x9094,0x0000, 0xFBC0,0x9095,0x0000, +0xFBC0,0x9096,0x0000, 0xFBC0,0x9097,0x0000, 0xFBC0,0x9098,0x0000, +0xFBC0,0x9099,0x0000, 0xFBC0,0x909A,0x0000, 0xFBC0,0x909B,0x0000, +0xFBC0,0x909C,0x0000, 0xFBC0,0x909D,0x0000, 0xFBC0,0x909E,0x0000, +0xFBC0,0x909F,0x0000, 0x12E1,0x0000,0x0000, 0x12E2,0x0000,0x0000, +0x12E3,0x0000,0x0000, 0x12E4,0x0000,0x0000, 0x12E5,0x0000,0x0000, +0x12E6,0x0000,0x0000, 0x12E7,0x0000,0x0000, 0x12E9,0x0000,0x0000, +0x12EA,0x0000,0x0000, 0x12EB,0x0000,0x0000, 0x12EC,0x0000,0x0000, +0x12ED,0x0000,0x0000, 0x12EE,0x0000,0x0000, 0x12F0,0x0000,0x0000, +0x12F1,0x0000,0x0000, 0x12F2,0x0000,0x0000, 0x12F3,0x0000,0x0000, +0x12F4,0x0000,0x0000, 0x12F5,0x0000,0x0000, 0x12F7,0x0000,0x0000, +0x12F8,0x0000,0x0000, 0x12F9,0x0000,0x0000, 0x12FA,0x0000,0x0000, +0x12FB,0x0000,0x0000, 0x12FC,0x0000,0x0000, 0x12FD,0x0000,0x0000, +0x12FE,0x0000,0x0000, 0x12FF,0x0000,0x0000, 0x1300,0x0000,0x0000, +0x1301,0x0000,0x0000, 0x1302,0x0000,0x0000, 0x1304,0x0000,0x0000, +0x1305,0x0000,0x0000, 0x12E8,0x0000,0x0000, 0x12EF,0x0000,0x0000, +0x12F6,0x0000,0x0000, 0x1303,0x0000,0x0000, 0x1306,0x0000,0x0000, +0xFBC0,0x90C6,0x0000, 0xFBC0,0x90C7,0x0000, 0xFBC0,0x90C8,0x0000, +0xFBC0,0x90C9,0x0000, 0xFBC0,0x90CA,0x0000, 0xFBC0,0x90CB,0x0000, +0xFBC0,0x90CC,0x0000, 0xFBC0,0x90CD,0x0000, 0xFBC0,0x90CE,0x0000, +0xFBC0,0x90CF,0x0000, 0x12E1,0x0000,0x0000, 0x12E2,0x0000,0x0000, +0x12E3,0x0000,0x0000, 0x12E4,0x0000,0x0000, 0x12E5,0x0000,0x0000, +0x12E6,0x0000,0x0000, 0x12E7,0x0000,0x0000, 0x12E9,0x0000,0x0000, +0x12EA,0x0000,0x0000, 0x12EB,0x0000,0x0000, 0x12EC,0x0000,0x0000, +0x12ED,0x0000,0x0000, 0x12EE,0x0000,0x0000, 0x12F0,0x0000,0x0000, +0x12F1,0x0000,0x0000, 0x12F2,0x0000,0x0000, 0x12F3,0x0000,0x0000, +0x12F4,0x0000,0x0000, 0x12F5,0x0000,0x0000, 0x12F7,0x0000,0x0000, +0x12F8,0x0000,0x0000, 0x12F9,0x0000,0x0000, 0x12FA,0x0000,0x0000, +0x12FB,0x0000,0x0000, 0x12FC,0x0000,0x0000, 0x12FD,0x0000,0x0000, +0x12FE,0x0000,0x0000, 0x12FF,0x0000,0x0000, 0x1300,0x0000,0x0000, +0x1301,0x0000,0x0000, 0x1302,0x0000,0x0000, 0x1304,0x0000,0x0000, +0x1305,0x0000,0x0000, 0x12E8,0x0000,0x0000, 0x12EF,0x0000,0x0000, +0x12F6,0x0000,0x0000, 0x1303,0x0000,0x0000, 0x1306,0x0000,0x0000, +0x1307,0x0000,0x0000, 0x1308,0x0000,0x0000, 0x1309,0x0000,0x0000, +0xFBC0,0x90F9,0x0000, 0xFBC0,0x90FA,0x0000, 0x0271,0x0000,0x0000, +0xFBC0,0x90FC,0x0000, 0xFBC0,0x90FD,0x0000, 0xFBC0,0x90FE,0x0000, +0xFBC0,0x90FF,0x0000 }; + +uint16 page011data[]= { /* 1100 (3 weights per char) */ +0x1D62,0x0000,0x0000, 0x1D63,0x0000,0x0000, 0x1D64,0x0000,0x0000, +0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000, 0x1D67,0x0000,0x0000, +0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, 0x1D6A,0x0000,0x0000, +0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, 0x1D6D,0x0000,0x0000, +0x1D6E,0x0000,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000, +0x1D71,0x0000,0x0000, 0x1D72,0x0000,0x0000, 0x1D73,0x0000,0x0000, +0x1D74,0x0000,0x0000, 0x1D75,0x0000,0x0000, 0x1D76,0x0000,0x0000, +0x1D77,0x0000,0x0000, 0x1D78,0x0000,0x0000, 0x1D79,0x0000,0x0000, +0x1D7A,0x0000,0x0000, 0x1D7B,0x0000,0x0000, 0x1D7C,0x0000,0x0000, +0x1D7D,0x0000,0x0000, 0x1D7E,0x0000,0x0000, 0x1D7F,0x0000,0x0000, +0x1D80,0x0000,0x0000, 0x1D81,0x0000,0x0000, 0x1D82,0x0000,0x0000, +0x1D83,0x0000,0x0000, 0x1D84,0x0000,0x0000, 0x1D85,0x0000,0x0000, +0x1D86,0x0000,0x0000, 0x1D87,0x0000,0x0000, 0x1D88,0x0000,0x0000, +0x1D89,0x0000,0x0000, 0x1D8A,0x0000,0x0000, 0x1D8B,0x0000,0x0000, +0x1D8C,0x0000,0x0000, 0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000, +0x1D8F,0x0000,0x0000, 0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000, +0x1D92,0x0000,0x0000, 0x1D93,0x0000,0x0000, 0x1D94,0x0000,0x0000, +0x1D95,0x0000,0x0000, 0x1D96,0x0000,0x0000, 0x1D97,0x0000,0x0000, +0x1D98,0x0000,0x0000, 0x1D99,0x0000,0x0000, 0x1D9A,0x0000,0x0000, +0x1D9B,0x0000,0x0000, 0x1D9C,0x0000,0x0000, 0x1D9D,0x0000,0x0000, +0x1D9E,0x0000,0x0000, 0x1D9F,0x0000,0x0000, 0x1DA0,0x0000,0x0000, +0x1DA1,0x0000,0x0000, 0x1DA2,0x0000,0x0000, 0x1DA3,0x0000,0x0000, +0x1DA4,0x0000,0x0000, 0x1DA5,0x0000,0x0000, 0x1DA6,0x0000,0x0000, +0x1DA7,0x0000,0x0000, 0x1DA8,0x0000,0x0000, 0x1DA9,0x0000,0x0000, +0x1DAA,0x0000,0x0000, 0x1DAB,0x0000,0x0000, 0x1DAC,0x0000,0x0000, +0x1DAD,0x0000,0x0000, 0x1DAE,0x0000,0x0000, 0x1DAF,0x0000,0x0000, +0x1DB0,0x0000,0x0000, 0x1DB1,0x0000,0x0000, 0x1DB2,0x0000,0x0000, +0x1DB3,0x0000,0x0000, 0x1DB4,0x0000,0x0000, 0x1DB5,0x0000,0x0000, +0x1DB6,0x0000,0x0000, 0x1DB7,0x0000,0x0000, 0x1DB8,0x0000,0x0000, +0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, 0x1DBB,0x0000,0x0000, +0xFBC0,0x915A,0x0000, 0xFBC0,0x915B,0x0000, 0xFBC0,0x915C,0x0000, +0xFBC0,0x915D,0x0000, 0xFBC0,0x915E,0x0000, 0x1DBC,0x0000,0x0000, +0x1DBD,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0x1DBF,0x0000,0x0000, +0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000, +0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000, +0x1DC6,0x0000,0x0000, 0x1DC7,0x0000,0x0000, 0x1DC8,0x0000,0x0000, +0x1DC9,0x0000,0x0000, 0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, +0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, +0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000, +0x1DD2,0x0000,0x0000, 0x1DD3,0x0000,0x0000, 0x1DD4,0x0000,0x0000, +0x1DD5,0x0000,0x0000, 0x1DD6,0x0000,0x0000, 0x1DD7,0x0000,0x0000, +0x1DD8,0x0000,0x0000, 0x1DD9,0x0000,0x0000, 0x1DDA,0x0000,0x0000, +0x1DDB,0x0000,0x0000, 0x1DDC,0x0000,0x0000, 0x1DDD,0x0000,0x0000, +0x1DDE,0x0000,0x0000, 0x1DDF,0x0000,0x0000, 0x1DE0,0x0000,0x0000, +0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0x1DE3,0x0000,0x0000, +0x1DE4,0x0000,0x0000, 0x1DE5,0x0000,0x0000, 0x1DE6,0x0000,0x0000, +0x1DE7,0x0000,0x0000, 0x1DE8,0x0000,0x0000, 0x1DE9,0x0000,0x0000, +0x1DEA,0x0000,0x0000, 0x1DEB,0x0000,0x0000, 0x1DEC,0x0000,0x0000, +0x1DED,0x0000,0x0000, 0x1DEE,0x0000,0x0000, 0x1DEF,0x0000,0x0000, +0x1DF0,0x0000,0x0000, 0x1DF1,0x0000,0x0000, 0x1DF2,0x0000,0x0000, +0x1DF3,0x0000,0x0000, 0x1DF4,0x0000,0x0000, 0x1DF5,0x0000,0x0000, +0x1DF6,0x0000,0x0000, 0x1DF7,0x0000,0x0000, 0x1DF8,0x0000,0x0000, +0x1DF9,0x0000,0x0000, 0x1DFA,0x0000,0x0000, 0x1DFB,0x0000,0x0000, +0x1DFC,0x0000,0x0000, 0x1DFD,0x0000,0x0000, 0x1DFE,0x0000,0x0000, +0x1DFF,0x0000,0x0000, 0xFBC0,0x91A3,0x0000, 0xFBC0,0x91A4,0x0000, +0xFBC0,0x91A5,0x0000, 0xFBC0,0x91A6,0x0000, 0xFBC0,0x91A7,0x0000, +0x1E00,0x0000,0x0000, 0x1E01,0x0000,0x0000, 0x1E02,0x0000,0x0000, +0x1E03,0x0000,0x0000, 0x1E04,0x0000,0x0000, 0x1E05,0x0000,0x0000, +0x1E06,0x0000,0x0000, 0x1E07,0x0000,0x0000, 0x1E08,0x0000,0x0000, +0x1E09,0x0000,0x0000, 0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, +0x1E0C,0x0000,0x0000, 0x1E0D,0x0000,0x0000, 0x1E0E,0x0000,0x0000, +0x1E0F,0x0000,0x0000, 0x1E10,0x0000,0x0000, 0x1E11,0x0000,0x0000, +0x1E12,0x0000,0x0000, 0x1E13,0x0000,0x0000, 0x1E14,0x0000,0x0000, +0x1E15,0x0000,0x0000, 0x1E16,0x0000,0x0000, 0x1E17,0x0000,0x0000, +0x1E18,0x0000,0x0000, 0x1E19,0x0000,0x0000, 0x1E1A,0x0000,0x0000, +0x1E1B,0x0000,0x0000, 0x1E1C,0x0000,0x0000, 0x1E1D,0x0000,0x0000, +0x1E1E,0x0000,0x0000, 0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000, +0x1E21,0x0000,0x0000, 0x1E22,0x0000,0x0000, 0x1E23,0x0000,0x0000, +0x1E24,0x0000,0x0000, 0x1E25,0x0000,0x0000, 0x1E26,0x0000,0x0000, +0x1E27,0x0000,0x0000, 0x1E28,0x0000,0x0000, 0x1E29,0x0000,0x0000, +0x1E2A,0x0000,0x0000, 0x1E2B,0x0000,0x0000, 0x1E2C,0x0000,0x0000, +0x1E2D,0x0000,0x0000, 0x1E2E,0x0000,0x0000, 0x1E2F,0x0000,0x0000, +0x1E30,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1E32,0x0000,0x0000, +0x1E33,0x0000,0x0000, 0x1E34,0x0000,0x0000, 0x1E35,0x0000,0x0000, +0x1E36,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0x1E38,0x0000,0x0000, +0x1E39,0x0000,0x0000, 0x1E3A,0x0000,0x0000, 0x1E3B,0x0000,0x0000, +0x1E3C,0x0000,0x0000, 0x1E3D,0x0000,0x0000, 0x1E3E,0x0000,0x0000, +0x1E3F,0x0000,0x0000, 0x1E40,0x0000,0x0000, 0x1E41,0x0000,0x0000, +0x1E42,0x0000,0x0000, 0x1E43,0x0000,0x0000, 0x1E44,0x0000,0x0000, +0x1E45,0x0000,0x0000, 0x1E46,0x0000,0x0000, 0x1E47,0x0000,0x0000, +0x1E48,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0x1E4A,0x0000,0x0000, +0x1E4B,0x0000,0x0000, 0x1E4C,0x0000,0x0000, 0x1E4D,0x0000,0x0000, +0x1E4E,0x0000,0x0000, 0x1E4F,0x0000,0x0000, 0x1E50,0x0000,0x0000, +0x1E51,0x0000,0x0000, 0xFBC0,0x91FA,0x0000, 0xFBC0,0x91FB,0x0000, +0xFBC0,0x91FC,0x0000, 0xFBC0,0x91FD,0x0000, 0xFBC0,0x91FE,0x0000, +0xFBC0,0x91FF,0x0000 }; + +uint16 page012data[]= { /* 1200 (3 weights per char) */ +0x141C,0x0000,0x0000, 0x141D,0x0000,0x0000, 0x141E,0x0000,0x0000, +0x141F,0x0000,0x0000, 0x1420,0x0000,0x0000, 0x1421,0x0000,0x0000, +0x1422,0x0000,0x0000, 0xFBC0,0x9207,0x0000, 0x1423,0x0000,0x0000, +0x1424,0x0000,0x0000, 0x1425,0x0000,0x0000, 0x1426,0x0000,0x0000, +0x1427,0x0000,0x0000, 0x1428,0x0000,0x0000, 0x1429,0x0000,0x0000, +0x142A,0x0000,0x0000, 0x142B,0x0000,0x0000, 0x142C,0x0000,0x0000, +0x142D,0x0000,0x0000, 0x142E,0x0000,0x0000, 0x142F,0x0000,0x0000, +0x1430,0x0000,0x0000, 0x1431,0x0000,0x0000, 0x1432,0x0000,0x0000, +0x1433,0x0000,0x0000, 0x1434,0x0000,0x0000, 0x1435,0x0000,0x0000, +0x1436,0x0000,0x0000, 0x1437,0x0000,0x0000, 0x1438,0x0000,0x0000, +0x1439,0x0000,0x0000, 0x143A,0x0000,0x0000, 0x143B,0x0000,0x0000, +0x143C,0x0000,0x0000, 0x143D,0x0000,0x0000, 0x143E,0x0000,0x0000, +0x143F,0x0000,0x0000, 0x1440,0x0000,0x0000, 0x1441,0x0000,0x0000, +0x1442,0x0000,0x0000, 0x1443,0x0000,0x0000, 0x1444,0x0000,0x0000, +0x1445,0x0000,0x0000, 0x1446,0x0000,0x0000, 0x1447,0x0000,0x0000, +0x1448,0x0000,0x0000, 0x1449,0x0000,0x0000, 0x144A,0x0000,0x0000, +0x144B,0x0000,0x0000, 0x144C,0x0000,0x0000, 0x144D,0x0000,0x0000, +0x144E,0x0000,0x0000, 0x144F,0x0000,0x0000, 0x1450,0x0000,0x0000, +0x1451,0x0000,0x0000, 0x1452,0x0000,0x0000, 0x1453,0x0000,0x0000, +0x1454,0x0000,0x0000, 0x1455,0x0000,0x0000, 0x1456,0x0000,0x0000, +0x1457,0x0000,0x0000, 0x1458,0x0000,0x0000, 0x1459,0x0000,0x0000, +0x145A,0x0000,0x0000, 0x145B,0x0000,0x0000, 0x145C,0x0000,0x0000, +0x145D,0x0000,0x0000, 0x145E,0x0000,0x0000, 0x145F,0x0000,0x0000, +0x1460,0x0000,0x0000, 0x1461,0x0000,0x0000, 0xFBC0,0x9247,0x0000, +0x1462,0x0000,0x0000, 0xFBC0,0x9249,0x0000, 0x1463,0x0000,0x0000, +0x1464,0x0000,0x0000, 0x1465,0x0000,0x0000, 0x1466,0x0000,0x0000, +0xFBC0,0x924E,0x0000, 0xFBC0,0x924F,0x0000, 0x1467,0x0000,0x0000, +0x1468,0x0000,0x0000, 0x1469,0x0000,0x0000, 0x146A,0x0000,0x0000, +0x146B,0x0000,0x0000, 0x146C,0x0000,0x0000, 0x146D,0x0000,0x0000, +0xFBC0,0x9257,0x0000, 0x146E,0x0000,0x0000, 0xFBC0,0x9259,0x0000, +0x146F,0x0000,0x0000, 0x1470,0x0000,0x0000, 0x1471,0x0000,0x0000, +0x1472,0x0000,0x0000, 0xFBC0,0x925E,0x0000, 0xFBC0,0x925F,0x0000, +0x1473,0x0000,0x0000, 0x1474,0x0000,0x0000, 0x1475,0x0000,0x0000, +0x1476,0x0000,0x0000, 0x1477,0x0000,0x0000, 0x1478,0x0000,0x0000, +0x1479,0x0000,0x0000, 0x147A,0x0000,0x0000, 0x147B,0x0000,0x0000, +0x147C,0x0000,0x0000, 0x147D,0x0000,0x0000, 0x147E,0x0000,0x0000, +0x147F,0x0000,0x0000, 0x1480,0x0000,0x0000, 0x1481,0x0000,0x0000, +0x1482,0x0000,0x0000, 0x1483,0x0000,0x0000, 0x1484,0x0000,0x0000, +0x1485,0x0000,0x0000, 0x1486,0x0000,0x0000, 0x1487,0x0000,0x0000, +0x1488,0x0000,0x0000, 0x1489,0x0000,0x0000, 0x148A,0x0000,0x0000, +0x148B,0x0000,0x0000, 0x148C,0x0000,0x0000, 0x148D,0x0000,0x0000, +0x148E,0x0000,0x0000, 0x148F,0x0000,0x0000, 0x1490,0x0000,0x0000, +0x1491,0x0000,0x0000, 0x1492,0x0000,0x0000, 0x1493,0x0000,0x0000, +0x1494,0x0000,0x0000, 0x1495,0x0000,0x0000, 0x1496,0x0000,0x0000, +0x1497,0x0000,0x0000, 0x1498,0x0000,0x0000, 0x1499,0x0000,0x0000, +0xFBC0,0x9287,0x0000, 0x149A,0x0000,0x0000, 0xFBC0,0x9289,0x0000, +0x149B,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149D,0x0000,0x0000, +0x149E,0x0000,0x0000, 0xFBC0,0x928E,0x0000, 0xFBC0,0x928F,0x0000, +0x149F,0x0000,0x0000, 0x14A0,0x0000,0x0000, 0x14A1,0x0000,0x0000, +0x14A2,0x0000,0x0000, 0x14A3,0x0000,0x0000, 0x14A4,0x0000,0x0000, +0x14A5,0x0000,0x0000, 0x14A6,0x0000,0x0000, 0x14A7,0x0000,0x0000, +0x14A8,0x0000,0x0000, 0x14A9,0x0000,0x0000, 0x14AA,0x0000,0x0000, +0x14AB,0x0000,0x0000, 0x14AC,0x0000,0x0000, 0x14AD,0x0000,0x0000, +0x14AE,0x0000,0x0000, 0x14AF,0x0000,0x0000, 0x14B0,0x0000,0x0000, +0x14B1,0x0000,0x0000, 0x14B2,0x0000,0x0000, 0x14B3,0x0000,0x0000, +0x14B4,0x0000,0x0000, 0x14B5,0x0000,0x0000, 0x14B6,0x0000,0x0000, +0x14B7,0x0000,0x0000, 0x14B8,0x0000,0x0000, 0x14B9,0x0000,0x0000, +0x14BA,0x0000,0x0000, 0x14BB,0x0000,0x0000, 0x14BC,0x0000,0x0000, +0x14BD,0x0000,0x0000, 0xFBC0,0x92AF,0x0000, 0x14BE,0x0000,0x0000, +0xFBC0,0x92B1,0x0000, 0x14BF,0x0000,0x0000, 0x14C0,0x0000,0x0000, +0x14C1,0x0000,0x0000, 0x14C2,0x0000,0x0000, 0xFBC0,0x92B6,0x0000, +0xFBC0,0x92B7,0x0000, 0x14C3,0x0000,0x0000, 0x14C4,0x0000,0x0000, +0x14C5,0x0000,0x0000, 0x14C6,0x0000,0x0000, 0x14C7,0x0000,0x0000, +0x14C8,0x0000,0x0000, 0x14C9,0x0000,0x0000, 0xFBC0,0x92BF,0x0000, +0x14CA,0x0000,0x0000, 0xFBC0,0x92C1,0x0000, 0x14CB,0x0000,0x0000, +0x14CC,0x0000,0x0000, 0x14CD,0x0000,0x0000, 0x14CE,0x0000,0x0000, +0xFBC0,0x92C6,0x0000, 0xFBC0,0x92C7,0x0000, 0x14CF,0x0000,0x0000, +0x14D0,0x0000,0x0000, 0x14D1,0x0000,0x0000, 0x14D2,0x0000,0x0000, +0x14D3,0x0000,0x0000, 0x14D4,0x0000,0x0000, 0x14D5,0x0000,0x0000, +0xFBC0,0x92CF,0x0000, 0x14D6,0x0000,0x0000, 0x14D7,0x0000,0x0000, +0x14D8,0x0000,0x0000, 0x14D9,0x0000,0x0000, 0x14DA,0x0000,0x0000, +0x14DB,0x0000,0x0000, 0x14DC,0x0000,0x0000, 0xFBC0,0x92D7,0x0000, +0x14DD,0x0000,0x0000, 0x14DE,0x0000,0x0000, 0x14DF,0x0000,0x0000, +0x14E0,0x0000,0x0000, 0x14E1,0x0000,0x0000, 0x14E2,0x0000,0x0000, +0x14E3,0x0000,0x0000, 0x14E4,0x0000,0x0000, 0x14E5,0x0000,0x0000, +0x14E6,0x0000,0x0000, 0x14E7,0x0000,0x0000, 0x14E8,0x0000,0x0000, +0x14E9,0x0000,0x0000, 0x14EA,0x0000,0x0000, 0x14EB,0x0000,0x0000, +0x14EC,0x0000,0x0000, 0x14ED,0x0000,0x0000, 0x14EE,0x0000,0x0000, +0x14EF,0x0000,0x0000, 0x14F0,0x0000,0x0000, 0x14F1,0x0000,0x0000, +0x14F2,0x0000,0x0000, 0x14F3,0x0000,0x0000, 0xFBC0,0x92EF,0x0000, +0x14F4,0x0000,0x0000, 0x14F5,0x0000,0x0000, 0x14F6,0x0000,0x0000, +0x14F7,0x0000,0x0000, 0x14F8,0x0000,0x0000, 0x14F9,0x0000,0x0000, +0x14FA,0x0000,0x0000, 0x14FB,0x0000,0x0000, 0x14FC,0x0000,0x0000, +0x14FD,0x0000,0x0000, 0x14FE,0x0000,0x0000, 0x14FF,0x0000,0x0000, +0x1500,0x0000,0x0000, 0x1501,0x0000,0x0000, 0x1502,0x0000,0x0000, +0x1503,0x0000,0x0000 }; + +uint16 page013data[]= { /* 1300 (3 weights per char) */ +0x1504,0x0000,0x0000, 0x1505,0x0000,0x0000, 0x1506,0x0000,0x0000, +0x1507,0x0000,0x0000, 0x1508,0x0000,0x0000, 0x1509,0x0000,0x0000, +0x150A,0x0000,0x0000, 0x150B,0x0000,0x0000, 0x150C,0x0000,0x0000, +0x150D,0x0000,0x0000, 0x150E,0x0000,0x0000, 0x150F,0x0000,0x0000, +0x1510,0x0000,0x0000, 0x1511,0x0000,0x0000, 0x1512,0x0000,0x0000, +0xFBC0,0x930F,0x0000, 0x1513,0x0000,0x0000, 0xFBC0,0x9311,0x0000, +0x1514,0x0000,0x0000, 0x1515,0x0000,0x0000, 0x1516,0x0000,0x0000, +0x1517,0x0000,0x0000, 0xFBC0,0x9316,0x0000, 0xFBC0,0x9317,0x0000, +0x1518,0x0000,0x0000, 0x1519,0x0000,0x0000, 0x151A,0x0000,0x0000, +0x151B,0x0000,0x0000, 0x151C,0x0000,0x0000, 0x151D,0x0000,0x0000, +0x151E,0x0000,0x0000, 0xFBC0,0x931F,0x0000, 0x151F,0x0000,0x0000, +0x1520,0x0000,0x0000, 0x1521,0x0000,0x0000, 0x1522,0x0000,0x0000, +0x1523,0x0000,0x0000, 0x1524,0x0000,0x0000, 0x1525,0x0000,0x0000, +0x1526,0x0000,0x0000, 0x1527,0x0000,0x0000, 0x1528,0x0000,0x0000, +0x1529,0x0000,0x0000, 0x152A,0x0000,0x0000, 0x152B,0x0000,0x0000, +0x152C,0x0000,0x0000, 0x152D,0x0000,0x0000, 0x152E,0x0000,0x0000, +0x152F,0x0000,0x0000, 0x1530,0x0000,0x0000, 0x1531,0x0000,0x0000, +0x1532,0x0000,0x0000, 0x1533,0x0000,0x0000, 0x1534,0x0000,0x0000, +0x1535,0x0000,0x0000, 0x1536,0x0000,0x0000, 0x1537,0x0000,0x0000, +0x1538,0x0000,0x0000, 0x1539,0x0000,0x0000, 0x153A,0x0000,0x0000, +0x153B,0x0000,0x0000, 0x153C,0x0000,0x0000, 0x153D,0x0000,0x0000, +0x153E,0x0000,0x0000, 0x153F,0x0000,0x0000, 0x1540,0x0000,0x0000, +0x1541,0x0000,0x0000, 0x1542,0x0000,0x0000, 0x1543,0x0000,0x0000, +0x1544,0x0000,0x0000, 0x1545,0x0000,0x0000, 0xFBC0,0x9347,0x0000, +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1548,0x0000,0x0000, +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154B,0x0000,0x0000, +0x154C,0x0000,0x0000, 0x154D,0x0000,0x0000, 0x154E,0x0000,0x0000, +0x154F,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, +0x1552,0x0000,0x0000, 0x1553,0x0000,0x0000, 0x1554,0x0000,0x0000, +0x1555,0x0000,0x0000, 0x1556,0x0000,0x0000, 0x1557,0x0000,0x0000, +0x1558,0x0000,0x0000, 0xFBC0,0x935B,0x0000, 0xFBC0,0x935C,0x0000, +0xFBC0,0x935D,0x0000, 0xFBC0,0x935E,0x0000, 0xFBC0,0x935F,0x0000, +0xFBC0,0x9360,0x0000, 0x0245,0x0000,0x0000, 0x0262,0x0000,0x0000, +0x0246,0x0000,0x0000, 0x0247,0x0000,0x0000, 0x0248,0x0000,0x0000, +0x0249,0x0000,0x0000, 0x025A,0x0000,0x0000, 0x0272,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x0DCC,0x0000,0x0000, 0x0DCD,0x0000,0x0000, 0x0DCE,0x0000,0x0000, +0x0DCF,0x0000,0x0000, 0x0DD0,0x0000,0x0000, 0x0DD1,0x0000,0x0000, +0x0DD2,0x0000,0x0000, 0x0DD3,0x0000,0x0000, 0x0DD4,0x0000,0x0000, +0x0DD5,0x0000,0x0000, 0x0DD6,0x0000,0x0000, 0xFBC0,0x937D,0x0000, +0xFBC0,0x937E,0x0000, 0xFBC0,0x937F,0x0000, 0xFBC0,0x9380,0x0000, +0xFBC0,0x9381,0x0000, 0xFBC0,0x9382,0x0000, 0xFBC0,0x9383,0x0000, +0xFBC0,0x9384,0x0000, 0xFBC0,0x9385,0x0000, 0xFBC0,0x9386,0x0000, +0xFBC0,0x9387,0x0000, 0xFBC0,0x9388,0x0000, 0xFBC0,0x9389,0x0000, +0xFBC0,0x938A,0x0000, 0xFBC0,0x938B,0x0000, 0xFBC0,0x938C,0x0000, +0xFBC0,0x938D,0x0000, 0xFBC0,0x938E,0x0000, 0xFBC0,0x938F,0x0000, +0xFBC0,0x9390,0x0000, 0xFBC0,0x9391,0x0000, 0xFBC0,0x9392,0x0000, +0xFBC0,0x9393,0x0000, 0xFBC0,0x9394,0x0000, 0xFBC0,0x9395,0x0000, +0xFBC0,0x9396,0x0000, 0xFBC0,0x9397,0x0000, 0xFBC0,0x9398,0x0000, +0xFBC0,0x9399,0x0000, 0xFBC0,0x939A,0x0000, 0xFBC0,0x939B,0x0000, +0xFBC0,0x939C,0x0000, 0xFBC0,0x939D,0x0000, 0xFBC0,0x939E,0x0000, +0xFBC0,0x939F,0x0000, 0x1A59,0x0000,0x0000, 0x1A5A,0x0000,0x0000, +0x1A5B,0x0000,0x0000, 0x1A5C,0x0000,0x0000, 0x1A5D,0x0000,0x0000, +0x1A5E,0x0000,0x0000, 0x1A5F,0x0000,0x0000, 0x1A60,0x0000,0x0000, +0x1A61,0x0000,0x0000, 0x1A62,0x0000,0x0000, 0x1A63,0x0000,0x0000, +0x1A64,0x0000,0x0000, 0x1A65,0x0000,0x0000, 0x1A66,0x0000,0x0000, +0x1A67,0x0000,0x0000, 0x1A68,0x0000,0x0000, 0x1A69,0x0000,0x0000, +0x1A6A,0x0000,0x0000, 0x1A6B,0x0000,0x0000, 0x1A6C,0x0000,0x0000, +0x1A6D,0x0000,0x0000, 0x1A6E,0x0000,0x0000, 0x1A6F,0x0000,0x0000, +0x1A70,0x0000,0x0000, 0x1A71,0x0000,0x0000, 0x1A72,0x0000,0x0000, +0x1A73,0x0000,0x0000, 0x1A74,0x0000,0x0000, 0x1A75,0x0000,0x0000, +0x1A76,0x0000,0x0000, 0x1A77,0x0000,0x0000, 0x1A78,0x0000,0x0000, +0x1A79,0x0000,0x0000, 0x1A7A,0x0000,0x0000, 0x1A7B,0x0000,0x0000, +0x1A7C,0x0000,0x0000, 0x1A7D,0x0000,0x0000, 0x1A7E,0x0000,0x0000, +0x1A7F,0x0000,0x0000, 0x1A80,0x0000,0x0000, 0x1A81,0x0000,0x0000, +0x1A82,0x0000,0x0000, 0x1A83,0x0000,0x0000, 0x1A84,0x0000,0x0000, +0x1A85,0x0000,0x0000, 0x1A86,0x0000,0x0000, 0x1A87,0x0000,0x0000, +0x1A88,0x0000,0x0000, 0x1A89,0x0000,0x0000, 0x1A8A,0x0000,0x0000, +0x1A8B,0x0000,0x0000, 0x1A8C,0x0000,0x0000, 0x1A8D,0x0000,0x0000, +0x1A8E,0x0000,0x0000, 0x1A8F,0x0000,0x0000, 0x1A90,0x0000,0x0000, +0x1A91,0x0000,0x0000, 0x1A92,0x0000,0x0000, 0x1A93,0x0000,0x0000, +0x1A94,0x0000,0x0000, 0x1A95,0x0000,0x0000, 0x1A96,0x0000,0x0000, +0x1A97,0x0000,0x0000, 0x1A98,0x0000,0x0000, 0x1A99,0x0000,0x0000, +0x1A9A,0x0000,0x0000, 0x1A9B,0x0000,0x0000, 0x1A9C,0x0000,0x0000, +0x1A9D,0x0000,0x0000, 0x1A9E,0x0000,0x0000, 0x1A9F,0x0000,0x0000, +0x1AA0,0x0000,0x0000, 0x1AA1,0x0000,0x0000, 0x1AA2,0x0000,0x0000, +0x1AA3,0x0000,0x0000, 0x1AA4,0x0000,0x0000, 0x1AA5,0x0000,0x0000, +0x1AA6,0x0000,0x0000, 0x1AA7,0x0000,0x0000, 0x1AA8,0x0000,0x0000, +0x1AA9,0x0000,0x0000, 0x1AAA,0x0000,0x0000, 0x1AAB,0x0000,0x0000, +0x1AAC,0x0000,0x0000, 0x1AAD,0x0000,0x0000, 0xFBC0,0x93F5,0x0000, +0xFBC0,0x93F6,0x0000, 0xFBC0,0x93F7,0x0000, 0xFBC0,0x93F8,0x0000, +0xFBC0,0x93F9,0x0000, 0xFBC0,0x93FA,0x0000, 0xFBC0,0x93FB,0x0000, +0xFBC0,0x93FC,0x0000, 0xFBC0,0x93FD,0x0000, 0xFBC0,0x93FE,0x0000, +0xFBC0,0x93FF,0x0000 }; + +uint16 page014data[]= { /* 1400 (3 weights per char) */ +0xFBC0,0x9400,0x0000, 0x1AAE,0x0000,0x0000, 0x1AAF,0x0000,0x0000, +0x1AB0,0x0000,0x0000, 0x1AB1,0x0000,0x0000, 0x1AB2,0x0000,0x0000, +0x1AB3,0x0000,0x0000, 0x1AB4,0x0000,0x0000, 0x1AB5,0x0000,0x0000, +0x1AB6,0x0000,0x0000, 0x1AB7,0x0000,0x0000, 0x1AB8,0x0000,0x0000, +0x1AB9,0x0000,0x0000, 0x1ABA,0x0000,0x0000, 0x1ABB,0x0000,0x0000, +0x1ABC,0x0000,0x0000, 0x1ABD,0x0000,0x0000, 0x1ABE,0x0000,0x0000, +0x1ABF,0x0000,0x0000, 0x1AC0,0x0000,0x0000, 0x1AC1,0x0000,0x0000, +0x1AC2,0x0000,0x0000, 0x1AC3,0x0000,0x0000, 0x1AC4,0x0000,0x0000, +0x1AC5,0x0000,0x0000, 0x1AC6,0x0000,0x0000, 0x1AC7,0x0000,0x0000, +0x1AC8,0x0000,0x0000, 0x1AC9,0x0000,0x0000, 0x1ACA,0x0000,0x0000, +0x1ACB,0x0000,0x0000, 0x1ACC,0x0000,0x0000, 0x1ACD,0x0000,0x0000, +0x1ACE,0x0000,0x0000, 0x1ACF,0x0000,0x0000, 0x1AD0,0x0000,0x0000, +0x1AD1,0x0000,0x0000, 0x1AD2,0x0000,0x0000, 0x1AD3,0x0000,0x0000, +0x1AD4,0x0000,0x0000, 0x1AD5,0x0000,0x0000, 0x1AD6,0x0000,0x0000, +0x1AD7,0x0000,0x0000, 0x1AD8,0x0000,0x0000, 0x1AD9,0x0000,0x0000, +0x1ADA,0x0000,0x0000, 0x1ADB,0x0000,0x0000, 0x1ADC,0x0000,0x0000, +0x1ADD,0x0000,0x0000, 0x1ADE,0x0000,0x0000, 0x1ADF,0x0000,0x0000, +0x1AE0,0x0000,0x0000, 0x1AE1,0x0000,0x0000, 0x1AE2,0x0000,0x0000, +0x1AE3,0x0000,0x0000, 0x1AE4,0x0000,0x0000, 0x1AE5,0x0000,0x0000, +0x1AE6,0x0000,0x0000, 0x1AE7,0x0000,0x0000, 0x1AE8,0x0000,0x0000, +0x1AE9,0x0000,0x0000, 0x1AEA,0x0000,0x0000, 0x1AEB,0x0000,0x0000, +0x1AEC,0x0000,0x0000, 0x1AED,0x0000,0x0000, 0x1AEE,0x0000,0x0000, +0x1AEF,0x0000,0x0000, 0x1AF0,0x0000,0x0000, 0x1AF1,0x0000,0x0000, +0x1AF2,0x0000,0x0000, 0x1AF3,0x0000,0x0000, 0x1AF4,0x0000,0x0000, +0x1AF5,0x0000,0x0000, 0x1AF6,0x0000,0x0000, 0x1AF7,0x0000,0x0000, +0x1AF8,0x0000,0x0000, 0x1AF9,0x0000,0x0000, 0x1AFA,0x0000,0x0000, +0x1AFB,0x0000,0x0000, 0x1AFC,0x0000,0x0000, 0x1AFD,0x0000,0x0000, +0x1AFE,0x0000,0x0000, 0x1AFF,0x0000,0x0000, 0x1B00,0x0000,0x0000, +0x1B01,0x0000,0x0000, 0x1B02,0x0000,0x0000, 0x1B03,0x0000,0x0000, +0x1B04,0x0000,0x0000, 0x1B05,0x0000,0x0000, 0x1B06,0x0000,0x0000, +0x1B07,0x0000,0x0000, 0x1B08,0x0000,0x0000, 0x1B09,0x0000,0x0000, +0x1B0A,0x0000,0x0000, 0x1B0B,0x0000,0x0000, 0x1B0C,0x0000,0x0000, +0x1B0D,0x0000,0x0000, 0x1B0E,0x0000,0x0000, 0x1B0F,0x0000,0x0000, +0x1B10,0x0000,0x0000, 0x1B11,0x0000,0x0000, 0x1B12,0x0000,0x0000, +0x1B13,0x0000,0x0000, 0x1B14,0x0000,0x0000, 0x1B15,0x0000,0x0000, +0x1B16,0x0000,0x0000, 0x1B17,0x0000,0x0000, 0x1B18,0x0000,0x0000, +0x1B19,0x0000,0x0000, 0x1B1A,0x0000,0x0000, 0x1B1B,0x0000,0x0000, +0x1B1C,0x0000,0x0000, 0x1B1D,0x0000,0x0000, 0x1B1E,0x0000,0x0000, +0x1B1F,0x0000,0x0000, 0x1B20,0x0000,0x0000, 0x1B21,0x0000,0x0000, +0x1B22,0x0000,0x0000, 0x1B23,0x0000,0x0000, 0x1B24,0x0000,0x0000, +0x1B25,0x0000,0x0000, 0x1B26,0x0000,0x0000, 0x1B27,0x0000,0x0000, +0x1B28,0x0000,0x0000, 0x1B29,0x0000,0x0000, 0x1B2A,0x0000,0x0000, +0x1B2B,0x0000,0x0000, 0x1B2C,0x0000,0x0000, 0x1B2D,0x0000,0x0000, +0x1B2E,0x0000,0x0000, 0x1B2F,0x0000,0x0000, 0x1B30,0x0000,0x0000, +0x1B31,0x0000,0x0000, 0x1B32,0x0000,0x0000, 0x1B33,0x0000,0x0000, +0x1B34,0x0000,0x0000, 0x1B35,0x0000,0x0000, 0x1B36,0x0000,0x0000, +0x1B37,0x0000,0x0000, 0x1B38,0x0000,0x0000, 0x1B39,0x0000,0x0000, +0x1B3A,0x0000,0x0000, 0x1B3B,0x0000,0x0000, 0x1B3C,0x0000,0x0000, +0x1B3D,0x0000,0x0000, 0x1B3E,0x0000,0x0000, 0x1B3F,0x0000,0x0000, +0x1B40,0x0000,0x0000, 0x1B41,0x0000,0x0000, 0x1B42,0x0000,0x0000, +0x1B43,0x0000,0x0000, 0x1B44,0x0000,0x0000, 0x1B45,0x0000,0x0000, +0x1B46,0x0000,0x0000, 0x1B47,0x0000,0x0000, 0x1B48,0x0000,0x0000, +0x1B49,0x0000,0x0000, 0x1B4A,0x0000,0x0000, 0x1B4B,0x0000,0x0000, +0x1B4C,0x0000,0x0000, 0x1B4D,0x0000,0x0000, 0x1B4E,0x0000,0x0000, +0x1B4F,0x0000,0x0000, 0x1B50,0x0000,0x0000, 0x1B51,0x0000,0x0000, +0x1B52,0x0000,0x0000, 0x1B53,0x0000,0x0000, 0x1B54,0x0000,0x0000, +0x1B55,0x0000,0x0000, 0x1B56,0x0000,0x0000, 0x1B57,0x0000,0x0000, +0x1B58,0x0000,0x0000, 0x1B59,0x0000,0x0000, 0x1B5A,0x0000,0x0000, +0x1B5B,0x0000,0x0000, 0x1B5C,0x0000,0x0000, 0x1B5D,0x0000,0x0000, +0x1B5E,0x0000,0x0000, 0x1B5F,0x0000,0x0000, 0x1B60,0x0000,0x0000, +0x1B61,0x0000,0x0000, 0x1B62,0x0000,0x0000, 0x1B63,0x0000,0x0000, +0x1B64,0x0000,0x0000, 0x1B65,0x0000,0x0000, 0x1B66,0x0000,0x0000, +0x1B67,0x0000,0x0000, 0x1B68,0x0000,0x0000, 0x1B69,0x0000,0x0000, +0x1B6A,0x0000,0x0000, 0x1B6B,0x0000,0x0000, 0x1B6C,0x0000,0x0000, +0x1B6D,0x0000,0x0000, 0x1B6E,0x0000,0x0000, 0x1B6F,0x0000,0x0000, +0x1B70,0x0000,0x0000, 0x1B71,0x0000,0x0000, 0x1B72,0x0000,0x0000, +0x1B73,0x0000,0x0000, 0x1B74,0x0000,0x0000, 0x1B75,0x0000,0x0000, +0x1B76,0x0000,0x0000, 0x1B77,0x0000,0x0000, 0x1B78,0x0000,0x0000, +0x1B79,0x0000,0x0000, 0x1B7A,0x0000,0x0000, 0x1B7B,0x0000,0x0000, +0x1B7C,0x0000,0x0000, 0x1B7D,0x0000,0x0000, 0x1B7E,0x0000,0x0000, +0x1B7F,0x0000,0x0000, 0x1B80,0x0000,0x0000, 0x1B81,0x0000,0x0000, +0x1B82,0x0000,0x0000, 0x1B83,0x0000,0x0000, 0x1B84,0x0000,0x0000, +0x1B85,0x0000,0x0000, 0x1B86,0x0000,0x0000, 0x1B87,0x0000,0x0000, +0x1B88,0x0000,0x0000, 0x1B89,0x0000,0x0000, 0x1B8A,0x0000,0x0000, +0x1B8B,0x0000,0x0000, 0x1B8C,0x0000,0x0000, 0x1B8D,0x0000,0x0000, +0x1B8E,0x0000,0x0000, 0x1B8F,0x0000,0x0000, 0x1B90,0x0000,0x0000, +0x1B91,0x0000,0x0000, 0x1B92,0x0000,0x0000, 0x1B93,0x0000,0x0000, +0x1B94,0x0000,0x0000, 0x1B95,0x0000,0x0000, 0x1B96,0x0000,0x0000, +0x1B97,0x0000,0x0000, 0x1B98,0x0000,0x0000, 0x1B99,0x0000,0x0000, +0x1B9A,0x0000,0x0000, 0x1B9B,0x0000,0x0000, 0x1B9C,0x0000,0x0000, +0x1B9D,0x0000,0x0000, 0x1B9E,0x0000,0x0000, 0x1B9F,0x0000,0x0000, +0x1BA0,0x0000,0x0000, 0x1BA1,0x0000,0x0000, 0x1BA2,0x0000,0x0000, +0x1BA3,0x0000,0x0000, 0x1BA4,0x0000,0x0000, 0x1BA5,0x0000,0x0000, +0x1BA6,0x0000,0x0000, 0x1BA7,0x0000,0x0000, 0x1BA8,0x0000,0x0000, +0x1BA9,0x0000,0x0000, 0x1BAA,0x0000,0x0000, 0x1BAB,0x0000,0x0000, +0x1BAC,0x0000,0x0000 }; + +uint16 page015data[]= { /* 1500 (2 weights per char) */ +0x1BAD,0x0000, 0x1BAE,0x0000, 0x1BAF,0x0000, 0x1BB0,0x0000, +0x1BB1,0x0000, 0x1BB2,0x0000, 0x1BB3,0x0000, 0x1BB4,0x0000, +0x1BB5,0x0000, 0x1BB6,0x0000, 0x1BB7,0x0000, 0x1BB8,0x0000, +0x1BB9,0x0000, 0x1BBA,0x0000, 0x1BBB,0x0000, 0x1BBC,0x0000, +0x1BBD,0x0000, 0x1BBE,0x0000, 0x1BBF,0x0000, 0x1BC0,0x0000, +0x1BC1,0x0000, 0x1BC2,0x0000, 0x1BC3,0x0000, 0x1BC4,0x0000, +0x1BC5,0x0000, 0x1BC6,0x0000, 0x1BC7,0x0000, 0x1BC8,0x0000, +0x1BC9,0x0000, 0x1BCA,0x0000, 0x1BCB,0x0000, 0x1BCC,0x0000, +0x1BCD,0x0000, 0x1BCE,0x0000, 0x1BCF,0x0000, 0x1BD0,0x0000, +0x1BD1,0x0000, 0x1BD2,0x0000, 0x1BD3,0x0000, 0x1BD4,0x0000, +0x1BD5,0x0000, 0x1BD6,0x0000, 0x1BD7,0x0000, 0x1BD8,0x0000, +0x1BD9,0x0000, 0x1BDA,0x0000, 0x1BDB,0x0000, 0x1BDC,0x0000, +0x1BDD,0x0000, 0x1BDE,0x0000, 0x1BDF,0x0000, 0x1BE0,0x0000, +0x1BE1,0x0000, 0x1BE2,0x0000, 0x1BE3,0x0000, 0x1BE4,0x0000, +0x1BE5,0x0000, 0x1BE6,0x0000, 0x1BE7,0x0000, 0x1BE8,0x0000, +0x1BE9,0x0000, 0x1BEA,0x0000, 0x1BEB,0x0000, 0x1BEC,0x0000, +0x1BED,0x0000, 0x1BEE,0x0000, 0x1BEF,0x0000, 0x1BF0,0x0000, +0x1BF1,0x0000, 0x1BF2,0x0000, 0x1BF3,0x0000, 0x1BF4,0x0000, +0x1BF5,0x0000, 0x1BF6,0x0000, 0x1BF7,0x0000, 0x1BF8,0x0000, +0x1BF9,0x0000, 0x1BFA,0x0000, 0x1BFB,0x0000, 0x1BFC,0x0000, +0x1BFD,0x0000, 0x1BFE,0x0000, 0x1BFF,0x0000, 0x1C00,0x0000, +0x1C01,0x0000, 0x1C02,0x0000, 0x1C03,0x0000, 0x1C04,0x0000, +0x1C05,0x0000, 0x1C06,0x0000, 0x1C07,0x0000, 0x1C08,0x0000, +0x1C09,0x0000, 0x1C0A,0x0000, 0x1C0B,0x0000, 0x1C0C,0x0000, +0x1C0D,0x0000, 0x1C0E,0x0000, 0x1C0F,0x0000, 0x1C10,0x0000, +0x1C11,0x0000, 0x1C12,0x0000, 0x1C13,0x0000, 0x1C14,0x0000, +0x1C15,0x0000, 0x1C16,0x0000, 0x1C17,0x0000, 0x1C18,0x0000, +0x1C19,0x0000, 0x1C1A,0x0000, 0x1C1B,0x0000, 0x1C1C,0x0000, +0x1C1D,0x0000, 0x1C1E,0x0000, 0x1C1F,0x0000, 0x1C20,0x0000, +0x1C21,0x0000, 0x1C22,0x0000, 0x1C23,0x0000, 0x1C24,0x0000, +0x1C25,0x0000, 0x1C26,0x0000, 0x1C27,0x0000, 0x1C28,0x0000, +0x1C5B,0x0000, 0x1C29,0x0000, 0x1C2B,0x0000, 0x1C2C,0x0000, +0x1C2D,0x0000, 0x1C2E,0x0000, 0x1C2F,0x0000, 0x1C30,0x0000, +0x1C31,0x0000, 0x1C32,0x0000, 0x1C33,0x0000, 0x1C34,0x0000, +0x1C35,0x0000, 0x1C36,0x0000, 0x1C37,0x0000, 0x1C38,0x0000, +0x1C39,0x0000, 0x1C3A,0x0000, 0x1C3C,0x0000, 0x1C3D,0x0000, +0x1C3E,0x0000, 0x1C3F,0x0000, 0x1C40,0x0000, 0x1C41,0x0000, +0x1C42,0x0000, 0x1C43,0x0000, 0x1C4A,0x0000, 0x1C4B,0x0000, +0x1C4C,0x0000, 0x1C4D,0x0000, 0x1C4E,0x0000, 0x1C4F,0x0000, +0x1C50,0x0000, 0x1C51,0x0000, 0x1C52,0x0000, 0x1C53,0x0000, +0x1C54,0x0000, 0x1C55,0x0000, 0x1C56,0x0000, 0x1C57,0x0000, +0x1C58,0x0000, 0x1C59,0x0000, 0x1C5A,0x0000, 0x1C5C,0x0000, +0x1C5D,0x0000, 0x1C5E,0x0000, 0x1C5F,0x0000, 0x1C60,0x0000, +0x1C61,0x0000, 0x1C62,0x0000, 0x1C63,0x0000, 0x1C64,0x0000, +0x1C65,0x0000, 0x1C66,0x0000, 0x1C67,0x0000, 0x1C68,0x0000, +0x1C69,0x0000, 0x1C6A,0x0000, 0x1C6B,0x0000, 0x1C6C,0x0000, +0x1C6D,0x0000, 0x1C6E,0x0000, 0x1C6F,0x0000, 0x1C70,0x0000, +0x1C71,0x0000, 0x1C72,0x0000, 0x1C73,0x0000, 0x1C74,0x0000, +0x1C75,0x0000, 0x1C76,0x0000, 0x1C77,0x0000, 0x1C78,0x0000, +0x1C79,0x0000, 0x1C7A,0x0000, 0x1C7B,0x0000, 0x1C7C,0x0000, +0x1C7D,0x0000, 0x1C7E,0x0000, 0x1C7F,0x0000, 0x1C80,0x0000, +0x1C81,0x0000, 0x1C82,0x0000, 0x1C83,0x0000, 0x1C84,0x0000, +0x1C85,0x0000, 0x1C86,0x0000, 0x1C87,0x0000, 0x1C88,0x0000, +0x1C89,0x0000, 0x1C8A,0x0000, 0x1C8B,0x0000, 0x1C8C,0x0000, +0x1C8D,0x0000, 0x1C8E,0x0000, 0x1C8F,0x0000, 0x1C90,0x0000, +0x1C91,0x0000, 0x1C92,0x0000, 0x1C93,0x0000, 0x1C94,0x0000, +0x1C95,0x0000, 0x1C96,0x0000, 0x1C97,0x0000, 0x1C98,0x0000, +0x1C99,0x0000, 0x1C9A,0x0000, 0x1C9B,0x0000, 0x1C9C,0x0000, +0x1C9D,0x0000, 0x1C9E,0x0000, 0x1C9F,0x0000, 0x1CA0,0x0000, +0x1CA1,0x0000, 0x1CA2,0x0000, 0x1CA3,0x0000, 0x1CA4,0x0000, +0x1CA5,0x0000, 0x1CA6,0x0000, 0x1CA7,0x0000, 0x1CA8,0x0000, +0x1CA9,0x0000, 0x1CAA,0x0000, 0x1CAB,0x0000, 0x1CAC,0x0000, +0x1CAD,0x0000, 0x1CAE,0x0000, 0x1CAF,0x0000, 0x1CB0,0x0000, +0x1CB1,0x0000, 0x1CB2,0x0000, 0x1CB3,0x0000, 0x1CB4,0x0000 +}; + +uint16 page016data[]= { /* 1600 (3 weights per char) */ +0x1CB5,0x0000,0x0000, 0x1CB6,0x0000,0x0000, 0x1CB7,0x0000,0x0000, +0x1CB8,0x0000,0x0000, 0x1CB9,0x0000,0x0000, 0x1CBA,0x0000,0x0000, +0x1CBB,0x0000,0x0000, 0x1CBC,0x0000,0x0000, 0x1CBD,0x0000,0x0000, +0x1CBE,0x0000,0x0000, 0x1CBF,0x0000,0x0000, 0x1CC0,0x0000,0x0000, +0x1CC1,0x0000,0x0000, 0x1CC2,0x0000,0x0000, 0x1CC3,0x0000,0x0000, +0x1CC4,0x0000,0x0000, 0x1CC5,0x0000,0x0000, 0x1CC6,0x0000,0x0000, +0x1CC7,0x0000,0x0000, 0x1CC8,0x0000,0x0000, 0x1CC9,0x0000,0x0000, +0x1CCA,0x0000,0x0000, 0x1CCB,0x0000,0x0000, 0x1CCC,0x0000,0x0000, +0x1CCD,0x0000,0x0000, 0x1CCE,0x0000,0x0000, 0x1CCF,0x0000,0x0000, +0x1CD0,0x0000,0x0000, 0x1CD1,0x0000,0x0000, 0x1CD2,0x0000,0x0000, +0x1CD3,0x0000,0x0000, 0x1CD4,0x0000,0x0000, 0x1CD5,0x0000,0x0000, +0x1CD6,0x0000,0x0000, 0x1CD7,0x0000,0x0000, 0x1CD8,0x0000,0x0000, +0x1CD9,0x0000,0x0000, 0x1CDA,0x0000,0x0000, 0x1CDB,0x0000,0x0000, +0x1CDC,0x0000,0x0000, 0x1CDD,0x0000,0x0000, 0x1CDE,0x0000,0x0000, +0x1CDF,0x0000,0x0000, 0x1CE0,0x0000,0x0000, 0x1CE1,0x0000,0x0000, +0x1CE2,0x0000,0x0000, 0x1CE3,0x0000,0x0000, 0x1CE4,0x0000,0x0000, +0x1CE5,0x0000,0x0000, 0x1CE6,0x0000,0x0000, 0x1CE7,0x0000,0x0000, +0x1CE8,0x0000,0x0000, 0x1CE9,0x0000,0x0000, 0x1CEA,0x0000,0x0000, +0x1CEB,0x0000,0x0000, 0x1CEC,0x0000,0x0000, 0x1CED,0x0000,0x0000, +0x1CEE,0x0000,0x0000, 0x1CEF,0x0000,0x0000, 0x1CF0,0x0000,0x0000, +0x1CF1,0x0000,0x0000, 0x1CF2,0x0000,0x0000, 0x1CF3,0x0000,0x0000, +0x1CF4,0x0000,0x0000, 0x1CF5,0x0000,0x0000, 0x1CF6,0x0000,0x0000, +0x1CF7,0x0000,0x0000, 0x1CF8,0x0000,0x0000, 0x1CF9,0x0000,0x0000, +0x1CFA,0x0000,0x0000, 0x1CFB,0x0000,0x0000, 0x1CFC,0x0000,0x0000, +0x1CFD,0x0000,0x0000, 0x1CFE,0x0000,0x0000, 0x1CFF,0x0000,0x0000, +0x1D00,0x0000,0x0000, 0x1D01,0x0000,0x0000, 0x1D02,0x0000,0x0000, +0x1D03,0x0000,0x0000, 0x1D04,0x0000,0x0000, 0x1D05,0x0000,0x0000, +0x1D06,0x0000,0x0000, 0x1D07,0x0000,0x0000, 0x1D08,0x0000,0x0000, +0x1D09,0x0000,0x0000, 0x1D0A,0x0000,0x0000, 0x1D0B,0x0000,0x0000, +0x1D0C,0x0000,0x0000, 0x1D0D,0x0000,0x0000, 0x1D0E,0x0000,0x0000, +0x1D0F,0x0000,0x0000, 0x1D10,0x0000,0x0000, 0x1D11,0x0000,0x0000, +0x1D12,0x0000,0x0000, 0x1D13,0x0000,0x0000, 0x1D14,0x0000,0x0000, +0x1D15,0x0000,0x0000, 0x1D16,0x0000,0x0000, 0x1D17,0x0000,0x0000, +0x1D18,0x0000,0x0000, 0x1D19,0x0000,0x0000, 0x1D1A,0x0000,0x0000, +0x1D1B,0x0000,0x0000, 0x1D1C,0x0000,0x0000, 0x1D1D,0x0000,0x0000, +0x1D1E,0x0000,0x0000, 0x1D1F,0x0000,0x0000, 0x1D20,0x0000,0x0000, +0x1D21,0x0000,0x0000, 0x0316,0x0000,0x0000, 0x0265,0x0000,0x0000, +0x1C2A,0x0000,0x0000, 0x1C3B,0x0000,0x0000, 0x1C44,0x0000,0x0000, +0x1C45,0x0000,0x0000, 0x1C46,0x0000,0x0000, 0x1C47,0x0000,0x0000, +0x1C48,0x0000,0x0000, 0x1C49,0x0000,0x0000, 0xFBC0,0x9677,0x0000, +0xFBC0,0x9678,0x0000, 0xFBC0,0x9679,0x0000, 0xFBC0,0x967A,0x0000, +0xFBC0,0x967B,0x0000, 0xFBC0,0x967C,0x0000, 0xFBC0,0x967D,0x0000, +0xFBC0,0x967E,0x0000, 0xFBC0,0x967F,0x0000, 0x020A,0x0000,0x0000, +0x1D22,0x0000,0x0000, 0x1D23,0x0000,0x0000, 0x1D24,0x0000,0x0000, +0x1D25,0x0000,0x0000, 0x1D26,0x0000,0x0000, 0x1D27,0x0000,0x0000, +0x1D28,0x0000,0x0000, 0x1D29,0x0000,0x0000, 0x1D2A,0x0000,0x0000, +0x1D2B,0x0000,0x0000, 0x1D2C,0x0000,0x0000, 0x1D2D,0x0000,0x0000, +0x1D2E,0x0000,0x0000, 0x1D2F,0x0000,0x0000, 0x1D30,0x0000,0x0000, +0x1D31,0x0000,0x0000, 0x1D32,0x0000,0x0000, 0x1D33,0x0000,0x0000, +0x1D34,0x0000,0x0000, 0x1D35,0x0000,0x0000, 0x1D36,0x0000,0x0000, +0x1D37,0x0000,0x0000, 0x1D38,0x0000,0x0000, 0x1D39,0x0000,0x0000, +0x1D3A,0x0000,0x0000, 0x1D3B,0x0000,0x0000, 0x0292,0x0000,0x0000, +0x0293,0x0000,0x0000, 0xFBC0,0x969D,0x0000, 0xFBC0,0x969E,0x0000, +0xFBC0,0x969F,0x0000, 0x1D3C,0x0000,0x0000, 0x1D3C,0x0000,0x0000, +0x1D3D,0x0000,0x0000, 0x1D59,0x0000,0x0000, 0x1D3D,0x0000,0x0000, +0x1D3D,0x0000,0x0000, 0x1D3E,0x0000,0x0000, 0x1D3E,0x0000,0x0000, +0x1D3F,0x0000,0x0000, 0x1D3F,0x0000,0x0000, 0x1D57,0x0000,0x0000, +0x1D58,0x0000,0x0000, 0x1D3F,0x0000,0x0000, 0x1D3F,0x0000,0x0000, +0x1D3F,0x0000,0x0000, 0x1D40,0x0000,0x0000, 0x1D41,0x0000,0x0000, +0x1D42,0x0000,0x0000, 0x1D43,0x0000,0x0000, 0x1D43,0x0000,0x0000, +0x1D43,0x0000,0x0000, 0x1D43,0x0000,0x0000, 0x1D43,0x0000,0x0000, +0x1D44,0x0000,0x0000, 0x1D5C,0x0000,0x0000, 0x1D45,0x0000,0x0000, +0x1D46,0x0000,0x0000, 0x1D46,0x0000,0x0000, 0x1D46,0x0000,0x0000, +0x1D46,0x0000,0x0000, 0x1D47,0x0000,0x0000, 0x1D47,0x0000,0x0000, +0x1D47,0x0000,0x0000, 0x1D48,0x0000,0x0000, 0x1D48,0x0000,0x0000, +0x1D49,0x0000,0x0000, 0x1D49,0x0000,0x0000, 0x1D4A,0x0000,0x0000, +0x1D4A,0x0000,0x0000, 0x1D4B,0x0000,0x0000, 0x1D4C,0x0000,0x0000, +0x1D4D,0x0000,0x0000, 0x1D4E,0x0000,0x0000, 0x1D4E,0x0000,0x0000, +0x1D4E,0x0000,0x0000, 0x1D4E,0x0000,0x0000, 0x1D4E,0x0000,0x0000, +0x1D4F,0x0000,0x0000, 0x1D4F,0x0000,0x0000, 0x1D4F,0x0000,0x0000, +0x1D50,0x0000,0x0000, 0x1D50,0x0000,0x0000, 0x1D50,0x0000,0x0000, +0x1D4C,0x0000,0x0000, 0x1D51,0x0000,0x0000, 0x1D52,0x0000,0x0000, +0x1D52,0x0000,0x0000, 0x1D52,0x0000,0x0000, 0x1D53,0x0000,0x0000, +0x1D53,0x0000,0x0000, 0x1D54,0x0000,0x0000, 0x1D54,0x0000,0x0000, +0x1D55,0x0000,0x0000, 0x1D56,0x0000,0x0000, 0x1D5A,0x0000,0x0000, +0x1D5E,0x0000,0x0000, 0x1D5F,0x0000,0x0000, 0x1D5B,0x0000,0x0000, +0x1D5D,0x0000,0x0000, 0x1D60,0x0000,0x0000, 0x1D61,0x0000,0x0000, +0x1D61,0x0000,0x0000, 0x1D61,0x0000,0x0000, 0x1D45,0x0000,0x0000, +0x1D4E,0x0000,0x0000, 0x024E,0x0000,0x0000, 0x024F,0x0000,0x0000, +0x0250,0x0000,0x0000, 0x1D4A,0x1D53,0x0000, 0x1D52,0x1D52,0x0000, +0x1D3E,0x1D3E,0x0000, 0xFBC0,0x96F1,0x0000, 0xFBC0,0x96F2,0x0000, +0xFBC0,0x96F3,0x0000, 0xFBC0,0x96F4,0x0000, 0xFBC0,0x96F5,0x0000, +0xFBC0,0x96F6,0x0000, 0xFBC0,0x96F7,0x0000, 0xFBC0,0x96F8,0x0000, +0xFBC0,0x96F9,0x0000, 0xFBC0,0x96FA,0x0000, 0xFBC0,0x96FB,0x0000, +0xFBC0,0x96FC,0x0000, 0xFBC0,0x96FD,0x0000, 0xFBC0,0x96FE,0x0000, +0xFBC0,0x96FF,0x0000 }; + +uint16 page017data[]= { /* 1700 (3 weights per char) */ +0x18E2,0x0000,0x0000, 0x18E3,0x0000,0x0000, 0x18E4,0x0000,0x0000, +0x18E5,0x0000,0x0000, 0x18E6,0x0000,0x0000, 0x18E7,0x0000,0x0000, +0x18E8,0x0000,0x0000, 0x18E9,0x0000,0x0000, 0x18EA,0x0000,0x0000, +0x18EB,0x0000,0x0000, 0x18EC,0x0000,0x0000, 0x18ED,0x0000,0x0000, +0x18EE,0x0000,0x0000, 0xFBC0,0x970D,0x0000, 0x18EF,0x0000,0x0000, +0x18F0,0x0000,0x0000, 0x18F1,0x0000,0x0000, 0x18F2,0x0000,0x0000, +0x18F3,0x0000,0x0000, 0x18F4,0x0000,0x0000, 0x18F5,0x0000,0x0000, +0xFBC0,0x9715,0x0000, 0xFBC0,0x9716,0x0000, 0xFBC0,0x9717,0x0000, +0xFBC0,0x9718,0x0000, 0xFBC0,0x9719,0x0000, 0xFBC0,0x971A,0x0000, +0xFBC0,0x971B,0x0000, 0xFBC0,0x971C,0x0000, 0xFBC0,0x971D,0x0000, +0xFBC0,0x971E,0x0000, 0xFBC0,0x971F,0x0000, 0x18F6,0x0000,0x0000, +0x18F7,0x0000,0x0000, 0x18F8,0x0000,0x0000, 0x18F9,0x0000,0x0000, +0x18FA,0x0000,0x0000, 0x18FB,0x0000,0x0000, 0x18FC,0x0000,0x0000, +0x18FD,0x0000,0x0000, 0x18FE,0x0000,0x0000, 0x18FF,0x0000,0x0000, +0x1900,0x0000,0x0000, 0x1901,0x0000,0x0000, 0x1902,0x0000,0x0000, +0x1903,0x0000,0x0000, 0x1904,0x0000,0x0000, 0x1905,0x0000,0x0000, +0x1906,0x0000,0x0000, 0x1907,0x0000,0x0000, 0x1908,0x0000,0x0000, +0x1909,0x0000,0x0000, 0x190A,0x0000,0x0000, 0x026A,0x0000,0x0000, +0x026B,0x0000,0x0000, 0xFBC0,0x9737,0x0000, 0xFBC0,0x9738,0x0000, +0xFBC0,0x9739,0x0000, 0xFBC0,0x973A,0x0000, 0xFBC0,0x973B,0x0000, +0xFBC0,0x973C,0x0000, 0xFBC0,0x973D,0x0000, 0xFBC0,0x973E,0x0000, +0xFBC0,0x973F,0x0000, 0x190B,0x0000,0x0000, 0x190C,0x0000,0x0000, +0x190D,0x0000,0x0000, 0x190E,0x0000,0x0000, 0x190F,0x0000,0x0000, +0x1910,0x0000,0x0000, 0x1911,0x0000,0x0000, 0x1912,0x0000,0x0000, +0x1913,0x0000,0x0000, 0x1914,0x0000,0x0000, 0x1915,0x0000,0x0000, +0x1916,0x0000,0x0000, 0x1917,0x0000,0x0000, 0x1918,0x0000,0x0000, +0x1919,0x0000,0x0000, 0x191A,0x0000,0x0000, 0x191B,0x0000,0x0000, +0x191C,0x0000,0x0000, 0x191D,0x0000,0x0000, 0x191E,0x0000,0x0000, +0xFBC0,0x9754,0x0000, 0xFBC0,0x9755,0x0000, 0xFBC0,0x9756,0x0000, +0xFBC0,0x9757,0x0000, 0xFBC0,0x9758,0x0000, 0xFBC0,0x9759,0x0000, +0xFBC0,0x975A,0x0000, 0xFBC0,0x975B,0x0000, 0xFBC0,0x975C,0x0000, +0xFBC0,0x975D,0x0000, 0xFBC0,0x975E,0x0000, 0xFBC0,0x975F,0x0000, +0x191F,0x0000,0x0000, 0x1920,0x0000,0x0000, 0x1921,0x0000,0x0000, +0x1922,0x0000,0x0000, 0x1923,0x0000,0x0000, 0x1924,0x0000,0x0000, +0x1925,0x0000,0x0000, 0x1926,0x0000,0x0000, 0x1927,0x0000,0x0000, +0x1928,0x0000,0x0000, 0x1929,0x0000,0x0000, 0x192A,0x0000,0x0000, +0x192B,0x0000,0x0000, 0xFBC0,0x976D,0x0000, 0x192C,0x0000,0x0000, +0x192D,0x0000,0x0000, 0x192E,0x0000,0x0000, 0xFBC0,0x9771,0x0000, +0x192F,0x0000,0x0000, 0x1930,0x0000,0x0000, 0xFBC0,0x9774,0x0000, +0xFBC0,0x9775,0x0000, 0xFBC0,0x9776,0x0000, 0xFBC0,0x9777,0x0000, +0xFBC0,0x9778,0x0000, 0xFBC0,0x9779,0x0000, 0xFBC0,0x977A,0x0000, +0xFBC0,0x977B,0x0000, 0xFBC0,0x977C,0x0000, 0xFBC0,0x977D,0x0000, +0xFBC0,0x977E,0x0000, 0xFBC0,0x977F,0x0000, 0x196C,0x0000,0x0000, +0x196D,0x0000,0x0000, 0x196E,0x0000,0x0000, 0x196F,0x0000,0x0000, +0x1970,0x0000,0x0000, 0x1971,0x0000,0x0000, 0x1972,0x0000,0x0000, +0x1973,0x0000,0x0000, 0x1974,0x0000,0x0000, 0x1975,0x0000,0x0000, +0x1976,0x0000,0x0000, 0x1977,0x0000,0x0000, 0x1978,0x0000,0x0000, +0x1979,0x0000,0x0000, 0x197A,0x0000,0x0000, 0x197B,0x0000,0x0000, +0x197C,0x0000,0x0000, 0x197D,0x0000,0x0000, 0x197E,0x0000,0x0000, +0x197F,0x0000,0x0000, 0x1980,0x0000,0x0000, 0x1981,0x0000,0x0000, +0x1982,0x0000,0x0000, 0x1983,0x0000,0x0000, 0x1984,0x0000,0x0000, +0x1985,0x0000,0x0000, 0x1986,0x0000,0x0000, 0x1987,0x0000,0x0000, +0x1988,0x0000,0x0000, 0x1989,0x0000,0x0000, 0x198A,0x0000,0x0000, +0x198B,0x0000,0x0000, 0x198C,0x0000,0x0000, 0x198D,0x0000,0x0000, +0x198E,0x0000,0x0000, 0x1990,0x0000,0x0000, 0x1991,0x0000,0x0000, +0x1992,0x0000,0x0000, 0x1993,0x0000,0x0000, 0x1994,0x0000,0x0000, +0x1995,0x0000,0x0000, 0x1996,0x0000,0x0000, 0x1997,0x0000,0x0000, +0x1998,0x0000,0x0000, 0x1999,0x0000,0x0000, 0x199A,0x0000,0x0000, +0x199B,0x0000,0x0000, 0x199C,0x0000,0x0000, 0x199D,0x0000,0x0000, +0x199E,0x0000,0x0000, 0x199F,0x0000,0x0000, 0x19A0,0x0000,0x0000, +0x19A1,0x0000,0x0000, 0x19A2,0x0000,0x0000, 0x19A3,0x0000,0x0000, +0x19A4,0x0000,0x0000, 0x19A5,0x0000,0x0000, 0x19A6,0x0000,0x0000, +0x19A7,0x0000,0x0000, 0x19A8,0x0000,0x0000, 0x19A9,0x0000,0x0000, +0x19AA,0x0000,0x0000, 0x19AB,0x0000,0x0000, 0x19AC,0x0000,0x0000, +0x19AD,0x0000,0x0000, 0x19AE,0x0000,0x0000, 0x19AF,0x0000,0x0000, +0x19B0,0x0000,0x0000, 0x19B1,0x0000,0x0000, 0x19B2,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x19B3,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000, +0x026F,0x0000,0x0000, 0x024D,0x0000,0x0000, 0x0312,0x0000,0x0000, +0x0313,0x0000,0x0000, 0x0314,0x0000,0x0000, 0x0315,0x0000,0x0000, +0x0E17,0x0000,0x0000, 0x198F,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x97DE,0x0000, 0xFBC0,0x97DF,0x0000, 0x0E29,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0xFBC0,0x97EA,0x0000, 0xFBC0,0x97EB,0x0000, 0xFBC0,0x97EC,0x0000, +0xFBC0,0x97ED,0x0000, 0xFBC0,0x97EE,0x0000, 0xFBC0,0x97EF,0x0000, +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0xFBC0,0x97FA,0x0000, 0xFBC0,0x97FB,0x0000, +0xFBC0,0x97FC,0x0000, 0xFBC0,0x97FD,0x0000, 0xFBC0,0x97FE,0x0000, +0xFBC0,0x97FF,0x0000 }; + +uint16 page018data[]= { /* 1800 (3 weights per char) */ +0x02F8,0x0000,0x0000, 0x025E,0x0000,0x0000, 0x0235,0x0000,0x0000, +0x0263,0x0000,0x0000, 0x024A,0x0000,0x0000, 0x024B,0x0000,0x0000, +0x0223,0x0000,0x0000, 0x0224,0x0000,0x0000, 0x0236,0x0000,0x0000, +0x0264,0x0000,0x0000, 0x02F9,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x980F,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, +0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, +0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, +0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0xFBC0,0x981A,0x0000, +0xFBC0,0x981B,0x0000, 0xFBC0,0x981C,0x0000, 0xFBC0,0x981D,0x0000, +0xFBC0,0x981E,0x0000, 0xFBC0,0x981F,0x0000, 0x19DF,0x0000,0x0000, +0x19E1,0x0000,0x0000, 0x19E4,0x0000,0x0000, 0x19EA,0x0000,0x0000, +0x19EC,0x0000,0x0000, 0x19EF,0x0000,0x0000, 0x19F1,0x0000,0x0000, +0x19F4,0x0000,0x0000, 0x19F5,0x0000,0x0000, 0x19F6,0x0000,0x0000, +0x19FB,0x0000,0x0000, 0x19FD,0x0000,0x0000, 0x1A00,0x0000,0x0000, +0x1A02,0x0000,0x0000, 0x1A07,0x0000,0x0000, 0x1A09,0x0000,0x0000, +0x1A0A,0x0000,0x0000, 0x1A0B,0x0000,0x0000, 0x1A12,0x0000,0x0000, +0x1A15,0x0000,0x0000, 0x1A18,0x0000,0x0000, 0x1A1D,0x0000,0x0000, +0x1A21,0x0000,0x0000, 0x1A24,0x0000,0x0000, 0x1A26,0x0000,0x0000, +0x1A28,0x0000,0x0000, 0x1A2B,0x0000,0x0000, 0x1A30,0x0000,0x0000, +0x1A31,0x0000,0x0000, 0x1A34,0x0000,0x0000, 0x1A38,0x0000,0x0000, +0x1A3B,0x0000,0x0000, 0x1A3C,0x0000,0x0000, 0x1A3D,0x0000,0x0000, +0x1A3E,0x0000,0x0000, 0x19DE,0x0000,0x0000, 0x19E2,0x0000,0x0000, +0x19E5,0x0000,0x0000, 0x19EB,0x0000,0x0000, 0x19ED,0x0000,0x0000, +0x19F0,0x0000,0x0000, 0x19F2,0x0000,0x0000, 0x19F7,0x0000,0x0000, +0x19FC,0x0000,0x0000, 0x19FE,0x0000,0x0000, 0x1A01,0x0000,0x0000, +0x1A03,0x0000,0x0000, 0x1A08,0x0000,0x0000, 0x1A13,0x0000,0x0000, +0x1A16,0x0000,0x0000, 0x1A19,0x0000,0x0000, 0x1A1E,0x0000,0x0000, +0x1A32,0x0000,0x0000, 0x1A22,0x0000,0x0000, 0x1A27,0x0000,0x0000, +0x1A2C,0x0000,0x0000, 0x1A36,0x0000,0x0000, 0x1A39,0x0000,0x0000, +0x1A3F,0x0000,0x0000, 0x1A40,0x0000,0x0000, 0x1A1B,0x0000,0x0000, +0x19E3,0x0000,0x0000, 0x19E6,0x0000,0x0000, 0x19E9,0x0000,0x0000, +0x19F3,0x0000,0x0000, 0x19EE,0x0000,0x0000, 0x19F8,0x0000,0x0000, +0x1A2D,0x0000,0x0000, 0x1A04,0x0000,0x0000, 0x1A06,0x0000,0x0000, +0x19FF,0x0000,0x0000, 0x1A0C,0x0000,0x0000, 0x1A14,0x0000,0x0000, +0x1A17,0x0000,0x0000, 0x1A1F,0x0000,0x0000, 0x1A29,0x0000,0x0000, +0x1A37,0x0000,0x0000, 0x1A3A,0x0000,0x0000, 0x1A33,0x0000,0x0000, +0x1A35,0x0000,0x0000, 0x1A41,0x0000,0x0000, 0x1A1A,0x0000,0x0000, +0x1A23,0x0000,0x0000, 0x19E7,0x0000,0x0000, 0x1A2E,0x0000,0x0000, +0x1A25,0x0000,0x0000, 0x1A2A,0x0000,0x0000, 0x1A20,0x0000,0x0000, +0xFBC0,0x9878,0x0000, 0xFBC0,0x9879,0x0000, 0xFBC0,0x987A,0x0000, +0xFBC0,0x987B,0x0000, 0xFBC0,0x987C,0x0000, 0xFBC0,0x987D,0x0000, +0xFBC0,0x987E,0x0000, 0xFBC0,0x987F,0x0000, 0x19D7,0x0000,0x0000, +0x19D8,0x0000,0x0000, 0x19D9,0x0000,0x0000, 0x19DA,0x0000,0x0000, +0x19DB,0x0000,0x0000, 0x19DC,0x0000,0x0000, 0x19DD,0x0000,0x0000, +0x19E0,0x0000,0x0000, 0x19E8,0x0000,0x0000, 0x1A2F,0x0000,0x0000, +0x19F9,0x0000,0x0000, 0x1A1C,0x0000,0x0000, 0x1A42,0x0000,0x0000, +0x1A44,0x0000,0x0000, 0x1A45,0x0000,0x0000, 0x1A47,0x0000,0x0000, +0x1A48,0x0000,0x0000, 0x1A4B,0x0000,0x0000, 0x1A4D,0x0000,0x0000, +0x1A4E,0x0000,0x0000, 0x1A50,0x0000,0x0000, 0x1A52,0x0000,0x0000, +0x1A54,0x0000,0x0000, 0x1A55,0x0000,0x0000, 0x1A49,0x0000,0x0000, +0x1A53,0x0000,0x0000, 0x1A05,0x0000,0x0000, 0x19FA,0x0000,0x0000, +0x1A0D,0x0000,0x0000, 0x1A0E,0x0000,0x0000, 0x1A43,0x0000,0x0000, +0x1A46,0x0000,0x0000, 0x1A4A,0x0000,0x0000, 0x1A4C,0x0000,0x0000, +0x1A0F,0x0000,0x0000, 0x1A51,0x0000,0x0000, 0x1A10,0x0000,0x0000, +0x1A11,0x0000,0x0000, 0x1A56,0x0000,0x0000, 0x1A57,0x0000,0x0000, +0x1A4F,0x0000,0x0000, 0x1A58,0x0000,0x0000, 0xFBC0,0x98AA,0x0000, +0xFBC0,0x98AB,0x0000, 0xFBC0,0x98AC,0x0000, 0xFBC0,0x98AD,0x0000, +0xFBC0,0x98AE,0x0000, 0xFBC0,0x98AF,0x0000, 0xFBC0,0x98B0,0x0000, +0xFBC0,0x98B1,0x0000, 0xFBC0,0x98B2,0x0000, 0xFBC0,0x98B3,0x0000, +0xFBC0,0x98B4,0x0000, 0xFBC0,0x98B5,0x0000, 0xFBC0,0x98B6,0x0000, +0xFBC0,0x98B7,0x0000, 0xFBC0,0x98B8,0x0000, 0xFBC0,0x98B9,0x0000, +0xFBC0,0x98BA,0x0000, 0xFBC0,0x98BB,0x0000, 0xFBC0,0x98BC,0x0000, +0xFBC0,0x98BD,0x0000, 0xFBC0,0x98BE,0x0000, 0xFBC0,0x98BF,0x0000, +0xFBC0,0x98C0,0x0000, 0xFBC0,0x98C1,0x0000, 0xFBC0,0x98C2,0x0000, +0xFBC0,0x98C3,0x0000, 0xFBC0,0x98C4,0x0000, 0xFBC0,0x98C5,0x0000, +0xFBC0,0x98C6,0x0000, 0xFBC0,0x98C7,0x0000, 0xFBC0,0x98C8,0x0000, +0xFBC0,0x98C9,0x0000, 0xFBC0,0x98CA,0x0000, 0xFBC0,0x98CB,0x0000, +0xFBC0,0x98CC,0x0000, 0xFBC0,0x98CD,0x0000, 0xFBC0,0x98CE,0x0000, +0xFBC0,0x98CF,0x0000, 0xFBC0,0x98D0,0x0000, 0xFBC0,0x98D1,0x0000, +0xFBC0,0x98D2,0x0000, 0xFBC0,0x98D3,0x0000, 0xFBC0,0x98D4,0x0000, +0xFBC0,0x98D5,0x0000, 0xFBC0,0x98D6,0x0000, 0xFBC0,0x98D7,0x0000, +0xFBC0,0x98D8,0x0000, 0xFBC0,0x98D9,0x0000, 0xFBC0,0x98DA,0x0000, +0xFBC0,0x98DB,0x0000, 0xFBC0,0x98DC,0x0000, 0xFBC0,0x98DD,0x0000, +0xFBC0,0x98DE,0x0000, 0xFBC0,0x98DF,0x0000, 0xFBC0,0x98E0,0x0000, +0xFBC0,0x98E1,0x0000, 0xFBC0,0x98E2,0x0000, 0xFBC0,0x98E3,0x0000, +0xFBC0,0x98E4,0x0000, 0xFBC0,0x98E5,0x0000, 0xFBC0,0x98E6,0x0000, +0xFBC0,0x98E7,0x0000, 0xFBC0,0x98E8,0x0000, 0xFBC0,0x98E9,0x0000, +0xFBC0,0x98EA,0x0000, 0xFBC0,0x98EB,0x0000, 0xFBC0,0x98EC,0x0000, +0xFBC0,0x98ED,0x0000, 0xFBC0,0x98EE,0x0000, 0xFBC0,0x98EF,0x0000, +0xFBC0,0x98F0,0x0000, 0xFBC0,0x98F1,0x0000, 0xFBC0,0x98F2,0x0000, +0xFBC0,0x98F3,0x0000, 0xFBC0,0x98F4,0x0000, 0xFBC0,0x98F5,0x0000, +0xFBC0,0x98F6,0x0000, 0xFBC0,0x98F7,0x0000, 0xFBC0,0x98F8,0x0000, +0xFBC0,0x98F9,0x0000, 0xFBC0,0x98FA,0x0000, 0xFBC0,0x98FB,0x0000, +0xFBC0,0x98FC,0x0000, 0xFBC0,0x98FD,0x0000, 0xFBC0,0x98FE,0x0000, +0xFBC0,0x98FF,0x0000 }; + +uint16 page019data[]= { /* 1900 (3 weights per char) */ +0x18B0,0x0000,0x0000, 0x18B1,0x0000,0x0000, 0x18B2,0x0000,0x0000, +0x18B3,0x0000,0x0000, 0x18B4,0x0000,0x0000, 0x18B5,0x0000,0x0000, +0x18B6,0x0000,0x0000, 0x18B7,0x0000,0x0000, 0x18B8,0x0000,0x0000, +0x18B9,0x0000,0x0000, 0x18BA,0x0000,0x0000, 0x18BB,0x0000,0x0000, +0x18BC,0x0000,0x0000, 0x18BD,0x0000,0x0000, 0x18BE,0x0000,0x0000, +0x18BF,0x0000,0x0000, 0x18C0,0x0000,0x0000, 0x18C1,0x0000,0x0000, +0x18C2,0x0000,0x0000, 0x18C3,0x0000,0x0000, 0x18C4,0x0000,0x0000, +0x18C5,0x0000,0x0000, 0x18C6,0x0000,0x0000, 0x18C7,0x0000,0x0000, +0x18C8,0x0000,0x0000, 0x18C9,0x0000,0x0000, 0x18CA,0x0000,0x0000, +0x18CB,0x0000,0x0000, 0x18CC,0x0000,0x0000, 0xFBC0,0x991D,0x0000, +0xFBC0,0x991E,0x0000, 0xFBC0,0x991F,0x0000, 0x18CD,0x0000,0x0000, +0x18CE,0x0000,0x0000, 0x18CF,0x0000,0x0000, 0x18D0,0x0000,0x0000, +0x18D1,0x0000,0x0000, 0x18D2,0x0000,0x0000, 0x18D3,0x0000,0x0000, +0x18D4,0x0000,0x0000, 0x18D5,0x0000,0x0000, 0x18D6,0x0000,0x0000, +0x18D7,0x0000,0x0000, 0x18D8,0x0000,0x0000, 0xFBC0,0x992C,0x0000, +0xFBC0,0x992D,0x0000, 0xFBC0,0x992E,0x0000, 0xFBC0,0x992F,0x0000, +0x18D9,0x0000,0x0000, 0x18DA,0x0000,0x0000, 0x18DB,0x0000,0x0000, +0x18DC,0x0000,0x0000, 0x18DD,0x0000,0x0000, 0x18DE,0x0000,0x0000, +0x18DF,0x0000,0x0000, 0x18E0,0x0000,0x0000, 0x18E1,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC0,0x993C,0x0000, 0xFBC0,0x993D,0x0000, 0xFBC0,0x993E,0x0000, +0xFBC0,0x993F,0x0000, 0x030D,0x0000,0x0000, 0xFBC0,0x9941,0x0000, +0xFBC0,0x9942,0x0000, 0xFBC0,0x9943,0x0000, 0x0254,0x0000,0x0000, +0x025B,0x0000,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, +0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, +0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, +0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x19B4,0x0000,0x0000, +0x19B5,0x0000,0x0000, 0x19B6,0x0000,0x0000, 0x19B7,0x0000,0x0000, +0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, 0x19BA,0x0000,0x0000, +0x19BB,0x0000,0x0000, 0x19BC,0x0000,0x0000, 0x19BD,0x0000,0x0000, +0x19BE,0x0000,0x0000, 0x19BF,0x0000,0x0000, 0x19C0,0x0000,0x0000, +0x19C1,0x0000,0x0000, 0x19C2,0x0000,0x0000, 0x19C3,0x0000,0x0000, +0x19C4,0x0000,0x0000, 0x19C5,0x0000,0x0000, 0x19C6,0x0000,0x0000, +0x19C7,0x0000,0x0000, 0x19C8,0x0000,0x0000, 0x19C9,0x0000,0x0000, +0x19CA,0x0000,0x0000, 0x19CB,0x0000,0x0000, 0x19CC,0x0000,0x0000, +0x19CD,0x0000,0x0000, 0x19CE,0x0000,0x0000, 0x19CF,0x0000,0x0000, +0x19D0,0x0000,0x0000, 0x19D1,0x0000,0x0000, 0xFBC0,0x996E,0x0000, +0xFBC0,0x996F,0x0000, 0x19D2,0x0000,0x0000, 0x19D3,0x0000,0x0000, +0x19D4,0x0000,0x0000, 0x19D5,0x0000,0x0000, 0x19D6,0x0000,0x0000, +0xFBC0,0x9975,0x0000, 0xFBC0,0x9976,0x0000, 0xFBC0,0x9977,0x0000, +0xFBC0,0x9978,0x0000, 0xFBC0,0x9979,0x0000, 0xFBC0,0x997A,0x0000, +0xFBC0,0x997B,0x0000, 0xFBC0,0x997C,0x0000, 0xFBC0,0x997D,0x0000, +0xFBC0,0x997E,0x0000, 0xFBC0,0x997F,0x0000, 0xFBC0,0x9980,0x0000, +0xFBC0,0x9981,0x0000, 0xFBC0,0x9982,0x0000, 0xFBC0,0x9983,0x0000, +0xFBC0,0x9984,0x0000, 0xFBC0,0x9985,0x0000, 0xFBC0,0x9986,0x0000, +0xFBC0,0x9987,0x0000, 0xFBC0,0x9988,0x0000, 0xFBC0,0x9989,0x0000, +0xFBC0,0x998A,0x0000, 0xFBC0,0x998B,0x0000, 0xFBC0,0x998C,0x0000, +0xFBC0,0x998D,0x0000, 0xFBC0,0x998E,0x0000, 0xFBC0,0x998F,0x0000, +0xFBC0,0x9990,0x0000, 0xFBC0,0x9991,0x0000, 0xFBC0,0x9992,0x0000, +0xFBC0,0x9993,0x0000, 0xFBC0,0x9994,0x0000, 0xFBC0,0x9995,0x0000, +0xFBC0,0x9996,0x0000, 0xFBC0,0x9997,0x0000, 0xFBC0,0x9998,0x0000, +0xFBC0,0x9999,0x0000, 0xFBC0,0x999A,0x0000, 0xFBC0,0x999B,0x0000, +0xFBC0,0x999C,0x0000, 0xFBC0,0x999D,0x0000, 0xFBC0,0x999E,0x0000, +0xFBC0,0x999F,0x0000, 0xFBC0,0x99A0,0x0000, 0xFBC0,0x99A1,0x0000, +0xFBC0,0x99A2,0x0000, 0xFBC0,0x99A3,0x0000, 0xFBC0,0x99A4,0x0000, +0xFBC0,0x99A5,0x0000, 0xFBC0,0x99A6,0x0000, 0xFBC0,0x99A7,0x0000, +0xFBC0,0x99A8,0x0000, 0xFBC0,0x99A9,0x0000, 0xFBC0,0x99AA,0x0000, +0xFBC0,0x99AB,0x0000, 0xFBC0,0x99AC,0x0000, 0xFBC0,0x99AD,0x0000, +0xFBC0,0x99AE,0x0000, 0xFBC0,0x99AF,0x0000, 0xFBC0,0x99B0,0x0000, +0xFBC0,0x99B1,0x0000, 0xFBC0,0x99B2,0x0000, 0xFBC0,0x99B3,0x0000, +0xFBC0,0x99B4,0x0000, 0xFBC0,0x99B5,0x0000, 0xFBC0,0x99B6,0x0000, +0xFBC0,0x99B7,0x0000, 0xFBC0,0x99B8,0x0000, 0xFBC0,0x99B9,0x0000, +0xFBC0,0x99BA,0x0000, 0xFBC0,0x99BB,0x0000, 0xFBC0,0x99BC,0x0000, +0xFBC0,0x99BD,0x0000, 0xFBC0,0x99BE,0x0000, 0xFBC0,0x99BF,0x0000, +0xFBC0,0x99C0,0x0000, 0xFBC0,0x99C1,0x0000, 0xFBC0,0x99C2,0x0000, +0xFBC0,0x99C3,0x0000, 0xFBC0,0x99C4,0x0000, 0xFBC0,0x99C5,0x0000, +0xFBC0,0x99C6,0x0000, 0xFBC0,0x99C7,0x0000, 0xFBC0,0x99C8,0x0000, +0xFBC0,0x99C9,0x0000, 0xFBC0,0x99CA,0x0000, 0xFBC0,0x99CB,0x0000, +0xFBC0,0x99CC,0x0000, 0xFBC0,0x99CD,0x0000, 0xFBC0,0x99CE,0x0000, +0xFBC0,0x99CF,0x0000, 0xFBC0,0x99D0,0x0000, 0xFBC0,0x99D1,0x0000, +0xFBC0,0x99D2,0x0000, 0xFBC0,0x99D3,0x0000, 0xFBC0,0x99D4,0x0000, +0xFBC0,0x99D5,0x0000, 0xFBC0,0x99D6,0x0000, 0xFBC0,0x99D7,0x0000, +0xFBC0,0x99D8,0x0000, 0xFBC0,0x99D9,0x0000, 0xFBC0,0x99DA,0x0000, +0xFBC0,0x99DB,0x0000, 0xFBC0,0x99DC,0x0000, 0xFBC0,0x99DD,0x0000, +0xFBC0,0x99DE,0x0000, 0xFBC0,0x99DF,0x0000, 0x037B,0x0000,0x0000, +0x037C,0x0000,0x0000, 0x037D,0x0000,0x0000, 0x037E,0x0000,0x0000, +0x037F,0x0000,0x0000, 0x0380,0x0000,0x0000, 0x0381,0x0000,0x0000, +0x0382,0x0000,0x0000, 0x0383,0x0000,0x0000, 0x0384,0x0000,0x0000, +0x0385,0x0000,0x0000, 0x0386,0x0000,0x0000, 0x0387,0x0000,0x0000, +0x0388,0x0000,0x0000, 0x0389,0x0000,0x0000, 0x038A,0x0000,0x0000, +0x038B,0x0000,0x0000, 0x038C,0x0000,0x0000, 0x038D,0x0000,0x0000, +0x038E,0x0000,0x0000, 0x038F,0x0000,0x0000, 0x0390,0x0000,0x0000, +0x0391,0x0000,0x0000, 0x0392,0x0000,0x0000, 0x0393,0x0000,0x0000, +0x0394,0x0000,0x0000, 0x0395,0x0000,0x0000, 0x0396,0x0000,0x0000, +0x0397,0x0000,0x0000, 0x0398,0x0000,0x0000, 0x0399,0x0000,0x0000, +0x039A,0x0000,0x0000 }; + +uint16 page01Ddata[]= { /* 1D00 (3 weights per char) */ +0x0E37,0x0000,0x0000, 0x0E3C,0x0000,0x0000, 0x0E3D,0x0000,0x0000, +0x0E57,0x0000,0x0000, 0x0E64,0x0000,0x0000, 0x0E71,0x0000,0x0000, +0x0E8A,0x0000,0x0000, 0x0E8F,0x0000,0x0000, 0x0EA8,0x0000,0x0000, +0x0F07,0x0000,0x0000, 0x0F14,0x0000,0x0000, 0x0F25,0x0000,0x0000, +0x0F3A,0x0000,0x0000, 0x0F5F,0x0000,0x0000, 0x0F6D,0x0000,0x0000, +0x0F86,0x0000,0x0000, 0x0F96,0x0000,0x0000, 0x0F87,0x0000,0x0000, +0x0F97,0x0000,0x0000, 0x0F91,0x0000,0x0000, 0x0F8C,0x0000,0x0000, +0x0FA6,0x0000,0x0000, 0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000, +0x0FAB,0x0000,0x0000, 0x0FC8,0x0000,0x0000, 0x0FCD,0x0000,0x0000, +0x1006,0x0000,0x0000, 0x1023,0x0000,0x0000, 0x1024,0x0000,0x0000, +0x1025,0x0000,0x0000, 0x103B,0x0000,0x0000, 0x1048,0x0000,0x0000, +0x1055,0x0000,0x0000, 0x106E,0x0000,0x0000, 0x1083,0x0000,0x0000, +0x10BA,0x0000,0x0000, 0x10BB,0x0000,0x0000, 0x10EB,0x0000,0x0000, +0x10F7,0x0000,0x0000, 0x10FD,0x0000,0x0000, 0x1101,0x0000,0x0000, +0x1108,0x0000,0x0000, 0x11B4,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E38,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E56,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E90,0x0000,0x0000, +0x0EC1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0F10,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F2E,0x0000,0x0000, +0x0F5B,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F6C,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA7,0x0000,0x0000, +0x0FC0,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E3E,0x0000,0x0000, +0x0E42,0x0000,0x0000, 0x0E3D,0x0000,0x0000, 0x0E4A,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E94,0x0000,0x0000, +0x0E98,0x0000,0x0000, 0x0EA8,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0F07,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F5B,0x0000,0x0000, +0x0F7E,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F92,0x0000,0x0000, +0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000, 0x0FA7,0x0000,0x0000, +0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1024,0x0000,0x0000, +0x1037,0x0000,0x0000, 0x1044,0x0000,0x0000, 0x10BB,0x0000,0x0000, +0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x10EC,0x0000,0x0000, +0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0FC0,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1044,0x0000,0x0000, +0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x1100,0x0000,0x0000, +0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x1026,0x0000,0x0000, +0xFBC0,0x9D6C,0x0000, 0xFBC0,0x9D6D,0x0000, 0xFBC0,0x9D6E,0x0000, +0xFBC0,0x9D6F,0x0000, 0xFBC0,0x9D70,0x0000, 0xFBC0,0x9D71,0x0000, +0xFBC0,0x9D72,0x0000, 0xFBC0,0x9D73,0x0000, 0xFBC0,0x9D74,0x0000, +0xFBC0,0x9D75,0x0000, 0xFBC0,0x9D76,0x0000, 0xFBC0,0x9D77,0x0000, +0xFBC0,0x9D78,0x0000, 0xFBC0,0x9D79,0x0000, 0xFBC0,0x9D7A,0x0000, +0xFBC0,0x9D7B,0x0000, 0xFBC0,0x9D7C,0x0000, 0xFBC0,0x9D7D,0x0000, +0xFBC0,0x9D7E,0x0000, 0xFBC0,0x9D7F,0x0000, 0xFBC0,0x9D80,0x0000, +0xFBC0,0x9D81,0x0000, 0xFBC0,0x9D82,0x0000, 0xFBC0,0x9D83,0x0000, +0xFBC0,0x9D84,0x0000, 0xFBC0,0x9D85,0x0000, 0xFBC0,0x9D86,0x0000, +0xFBC0,0x9D87,0x0000, 0xFBC0,0x9D88,0x0000, 0xFBC0,0x9D89,0x0000, +0xFBC0,0x9D8A,0x0000, 0xFBC0,0x9D8B,0x0000, 0xFBC0,0x9D8C,0x0000, +0xFBC0,0x9D8D,0x0000, 0xFBC0,0x9D8E,0x0000, 0xFBC0,0x9D8F,0x0000, +0xFBC0,0x9D90,0x0000, 0xFBC0,0x9D91,0x0000, 0xFBC0,0x9D92,0x0000, +0xFBC0,0x9D93,0x0000, 0xFBC0,0x9D94,0x0000, 0xFBC0,0x9D95,0x0000, +0xFBC0,0x9D96,0x0000, 0xFBC0,0x9D97,0x0000, 0xFBC0,0x9D98,0x0000, +0xFBC0,0x9D99,0x0000, 0xFBC0,0x9D9A,0x0000, 0xFBC0,0x9D9B,0x0000, +0xFBC0,0x9D9C,0x0000, 0xFBC0,0x9D9D,0x0000, 0xFBC0,0x9D9E,0x0000, +0xFBC0,0x9D9F,0x0000, 0xFBC0,0x9DA0,0x0000, 0xFBC0,0x9DA1,0x0000, +0xFBC0,0x9DA2,0x0000, 0xFBC0,0x9DA3,0x0000, 0xFBC0,0x9DA4,0x0000, +0xFBC0,0x9DA5,0x0000, 0xFBC0,0x9DA6,0x0000, 0xFBC0,0x9DA7,0x0000, +0xFBC0,0x9DA8,0x0000, 0xFBC0,0x9DA9,0x0000, 0xFBC0,0x9DAA,0x0000, +0xFBC0,0x9DAB,0x0000, 0xFBC0,0x9DAC,0x0000, 0xFBC0,0x9DAD,0x0000, +0xFBC0,0x9DAE,0x0000, 0xFBC0,0x9DAF,0x0000, 0xFBC0,0x9DB0,0x0000, +0xFBC0,0x9DB1,0x0000, 0xFBC0,0x9DB2,0x0000, 0xFBC0,0x9DB3,0x0000, +0xFBC0,0x9DB4,0x0000, 0xFBC0,0x9DB5,0x0000, 0xFBC0,0x9DB6,0x0000, +0xFBC0,0x9DB7,0x0000, 0xFBC0,0x9DB8,0x0000, 0xFBC0,0x9DB9,0x0000, +0xFBC0,0x9DBA,0x0000, 0xFBC0,0x9DBB,0x0000, 0xFBC0,0x9DBC,0x0000, +0xFBC0,0x9DBD,0x0000, 0xFBC0,0x9DBE,0x0000, 0xFBC0,0x9DBF,0x0000, +0xFBC0,0x9DC0,0x0000, 0xFBC0,0x9DC1,0x0000, 0xFBC0,0x9DC2,0x0000, +0xFBC0,0x9DC3,0x0000, 0xFBC0,0x9DC4,0x0000, 0xFBC0,0x9DC5,0x0000, +0xFBC0,0x9DC6,0x0000, 0xFBC0,0x9DC7,0x0000, 0xFBC0,0x9DC8,0x0000, +0xFBC0,0x9DC9,0x0000, 0xFBC0,0x9DCA,0x0000, 0xFBC0,0x9DCB,0x0000, +0xFBC0,0x9DCC,0x0000, 0xFBC0,0x9DCD,0x0000, 0xFBC0,0x9DCE,0x0000, +0xFBC0,0x9DCF,0x0000, 0xFBC0,0x9DD0,0x0000, 0xFBC0,0x9DD1,0x0000, +0xFBC0,0x9DD2,0x0000, 0xFBC0,0x9DD3,0x0000, 0xFBC0,0x9DD4,0x0000, +0xFBC0,0x9DD5,0x0000, 0xFBC0,0x9DD6,0x0000, 0xFBC0,0x9DD7,0x0000, +0xFBC0,0x9DD8,0x0000, 0xFBC0,0x9DD9,0x0000, 0xFBC0,0x9DDA,0x0000, +0xFBC0,0x9DDB,0x0000, 0xFBC0,0x9DDC,0x0000, 0xFBC0,0x9DDD,0x0000, +0xFBC0,0x9DDE,0x0000, 0xFBC0,0x9DDF,0x0000, 0xFBC0,0x9DE0,0x0000, +0xFBC0,0x9DE1,0x0000, 0xFBC0,0x9DE2,0x0000, 0xFBC0,0x9DE3,0x0000, +0xFBC0,0x9DE4,0x0000, 0xFBC0,0x9DE5,0x0000, 0xFBC0,0x9DE6,0x0000, +0xFBC0,0x9DE7,0x0000, 0xFBC0,0x9DE8,0x0000, 0xFBC0,0x9DE9,0x0000, +0xFBC0,0x9DEA,0x0000, 0xFBC0,0x9DEB,0x0000, 0xFBC0,0x9DEC,0x0000, +0xFBC0,0x9DED,0x0000, 0xFBC0,0x9DEE,0x0000, 0xFBC0,0x9DEF,0x0000, +0xFBC0,0x9DF0,0x0000, 0xFBC0,0x9DF1,0x0000, 0xFBC0,0x9DF2,0x0000, +0xFBC0,0x9DF3,0x0000, 0xFBC0,0x9DF4,0x0000, 0xFBC0,0x9DF5,0x0000, +0xFBC0,0x9DF6,0x0000, 0xFBC0,0x9DF7,0x0000, 0xFBC0,0x9DF8,0x0000, +0xFBC0,0x9DF9,0x0000, 0xFBC0,0x9DFA,0x0000, 0xFBC0,0x9DFB,0x0000, +0xFBC0,0x9DFC,0x0000, 0xFBC0,0x9DFD,0x0000, 0xFBC0,0x9DFE,0x0000, +0xFBC0,0x9DFF,0x0000 }; + +uint16 page01Edata[]= { /* 1E00 (3 weights per char) */ +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E4A,0x0000,0x0000, +0x0E4A,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E4A,0x0000,0x0000, +0x0E4A,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E60,0x0000,0x0000, +0x0E60,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0EB9,0x0000,0x0000, 0x0EB9,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EC1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, +0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, +0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, +0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, +0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F5B,0x0000,0x0000, +0x0F5B,0x0000,0x0000, 0x0F5B,0x0000,0x0000, 0x0F5B,0x0000,0x0000, +0x0F5B,0x0000,0x0000, 0x0F5B,0x0000,0x0000, 0x0F64,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0FA7,0x0000,0x0000, 0x0FA7,0x0000,0x0000, 0x0FA7,0x0000,0x0000, +0x0FA7,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, +0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, +0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x1044,0x0000,0x0000, 0x1044,0x0000,0x0000, +0x1044,0x0000,0x0000, 0x1044,0x0000,0x0000, 0x1051,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, +0x105A,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105A,0x0000,0x0000, +0x105A,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, +0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1051,0x0000,0x0000, +0x105E,0x0000,0x0000, 0x0E33,0x10B3,0x0000, 0x0FEA,0x0000,0x0000, +0xFBC0,0x9E9C,0x0000, 0xFBC0,0x9E9D,0x0000, 0xFBC0,0x9E9E,0x0000, +0xFBC0,0x9E9F,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x105E,0x0000,0x0000, 0xFBC0,0x9EFA,0x0000, 0xFBC0,0x9EFB,0x0000, +0xFBC0,0x9EFC,0x0000, 0xFBC0,0x9EFD,0x0000, 0xFBC0,0x9EFE,0x0000, +0xFBC0,0x9EFF,0x0000 }; + +uint16 page01Fdata[]= { /* 1F00 (3 weights per char) */ +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, +0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, +0x10ED,0x0000,0x0000, 0xFBC0,0x9F16,0x0000, 0xFBC0,0x9F17,0x0000, +0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, +0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, +0xFBC0,0x9F1E,0x0000, 0xFBC0,0x9F1F,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, +0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, +0x10FB,0x0000,0x0000, 0xFBC0,0x9F46,0x0000, 0xFBC0,0x9F47,0x0000, +0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, +0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, +0xFBC0,0x9F4E,0x0000, 0xFBC0,0x9F4F,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0xFBC0,0x9F58,0x0000, 0x1104,0x0000,0x0000, +0xFBC0,0x9F5A,0x0000, 0x1104,0x0000,0x0000, 0xFBC0,0x9F5C,0x0000, +0x1104,0x0000,0x0000, 0xFBC0,0x9F5E,0x0000, 0x1104,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0xFBC0,0x9F7E,0x0000, 0xFBC0,0x9F7F,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0xFBC0,0x9FB5,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, +0x0217,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x0217,0x0000,0x0000, +0x021D,0x0000,0x0000, 0x0214,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0xFBC0,0x9FC5,0x0000, +0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10ED,0x0000,0x0000, +0x10ED,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, +0x10F1,0x0000,0x0000, 0x0217,0x0000,0x0000, 0x0217,0x0000,0x0000, +0x0217,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0xFBC0,0x9FD4,0x0000, +0xFBC0,0x9FD5,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, +0x10F3,0x0000,0x0000, 0xFBC0,0x9FDC,0x0000, 0x0218,0x0000,0x0000, +0x0218,0x0000,0x0000, 0x0218,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1100,0x0000,0x0000, 0x1100,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, +0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1100,0x0000,0x0000, +0x0214,0x0000,0x0000, 0x0214,0x0000,0x0000, 0x020C,0x0000,0x0000, +0xFBC0,0x9FF0,0x0000, 0xFBC0,0x9FF1,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0xFBC0,0x9FF5,0x0000, +0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x10FB,0x0000,0x0000, +0x10FB,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, +0x1109,0x0000,0x0000, 0x020D,0x0000,0x0000, 0x0218,0x0000,0x0000, +0xFBC0,0x9FFF,0x0000 }; + +uint16 page020data[]= { /* 2000 (5 weights per char) */ +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0225,0x0000,0x0000,0x0000,0x0000, +0x0225,0x0000,0x0000,0x0000,0x0000, +0x0226,0x0000,0x0000,0x0000,0x0000, +0x0227,0x0000,0x0000,0x0000,0x0000, +0x0228,0x0000,0x0000,0x0000,0x0000, +0x0229,0x0000,0x0000,0x0000,0x0000, +0x0432,0x0000,0x0000,0x0000,0x0000, +0x021C,0x0000,0x0000,0x0000,0x0000, +0x0278,0x0000,0x0000,0x0000,0x0000, +0x0279,0x0000,0x0000,0x0000,0x0000, +0x027A,0x0000,0x0000,0x0000,0x0000, +0x027B,0x0000,0x0000,0x0000,0x0000, +0x027F,0x0000,0x0000,0x0000,0x0000, +0x0280,0x0000,0x0000,0x0000,0x0000, +0x0281,0x0000,0x0000,0x0000,0x0000, +0x0282,0x0000,0x0000,0x0000,0x0000, +0x02D8,0x0000,0x0000,0x0000,0x0000, +0x02D9,0x0000,0x0000,0x0000,0x0000, +0x02DA,0x0000,0x0000,0x0000,0x0000, +0x02DB,0x0000,0x0000,0x0000,0x0000, +0x025D,0x0000,0x0000,0x0000,0x0000, +0x025D,0x025D,0x0000,0x0000,0x0000, +0x025D,0x025D,0x025D,0x0000,0x0000, +0x02DC,0x0000,0x0000,0x0000,0x0000, +0x0207,0x0000,0x0000,0x0000,0x0000, +0x0208,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x02D5,0x0000,0x0000,0x0000,0x0000, +0x02D6,0x0000,0x0000,0x0000,0x0000, +0x02E0,0x0000,0x0000,0x0000,0x0000, +0x02E0,0x02E0,0x0000,0x0000,0x0000, +0x02E0,0x02E0,0x02E0,0x0000,0x0000, +0x02E1,0x0000,0x0000,0x0000,0x0000, +0x02E1,0x02E1,0x0000,0x0000,0x0000, +0x02E1,0x02E1,0x02E1,0x0000,0x0000, +0x02E4,0x0000,0x0000,0x0000,0x0000, +0x027C,0x0000,0x0000,0x0000,0x0000, +0x027D,0x0000,0x0000,0x0000,0x0000, +0x02E5,0x0000,0x0000,0x0000,0x0000, +0x0251,0x0251,0x0000,0x0000,0x0000, +0x025C,0x0000,0x0000,0x0000,0x0000, +0x0211,0x0000,0x0000,0x0000,0x0000, +0x02E6,0x0000,0x0000,0x0000,0x0000, +0x02E8,0x0000,0x0000,0x0000,0x0000, +0x02EA,0x0000,0x0000,0x0000,0x0000, +0x02EB,0x0000,0x0000,0x0000,0x0000, +0x02DD,0x0000,0x0000,0x0000,0x0000, +0x02CD,0x0000,0x0000,0x0000,0x0000, +0x0294,0x0000,0x0000,0x0000,0x0000, +0x0295,0x0000,0x0000,0x0000,0x0000, +0x0255,0x0255,0x0000,0x0000,0x0000, +0x0255,0x0251,0x0000,0x0000,0x0000, +0x0251,0x0255,0x0000,0x0000,0x0000, +0x02D1,0x0000,0x0000,0x0000,0x0000, +0x02C4,0x0000,0x0000,0x0000,0x0000, +0x02DE,0x0000,0x0000,0x0000,0x0000, +0x02DF,0x0000,0x0000,0x0000,0x0000, +0x02C9,0x0000,0x0000,0x0000,0x0000, +0x023C,0x0000,0x0000,0x0000,0x0000, +0x02E9,0x0000,0x0000,0x0000,0x0000, +0x02CA,0x0000,0x0000,0x0000,0x0000, +0x02D7,0x0000,0x0000,0x0000,0x0000, +0x022A,0x0000,0x0000,0x0000,0x0000, +0x02E7,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA055,0x0000,0x0000,0x0000, +0xFBC0,0xA056,0x0000,0x0000,0x0000, +0x02E0,0x02E0,0x02E0,0x02E0,0x0000, +0xFBC0,0xA058,0x0000,0x0000,0x0000, +0xFBC0,0xA059,0x0000,0x0000,0x0000, +0xFBC0,0xA05A,0x0000,0x0000,0x0000, +0xFBC0,0xA05B,0x0000,0x0000,0x0000, +0xFBC0,0xA05C,0x0000,0x0000,0x0000, +0xFBC0,0xA05D,0x0000,0x0000,0x0000, +0xFBC0,0xA05E,0x0000,0x0000,0x0000, +0x0209,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA064,0x0000,0x0000,0x0000, +0xFBC0,0xA065,0x0000,0x0000,0x0000, +0xFBC0,0xA066,0x0000,0x0000,0x0000, +0xFBC0,0xA067,0x0000,0x0000,0x0000, +0xFBC0,0xA068,0x0000,0x0000,0x0000, +0xFBC0,0xA069,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E29,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA072,0x0000,0x0000,0x0000, +0xFBC0,0xA073,0x0000,0x0000,0x0000, +0x0E2D,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0x0000,0x0000,0x0000,0x0000, +0x0E30,0x0000,0x0000,0x0000,0x0000, +0x0E31,0x0000,0x0000,0x0000,0x0000, +0x0E32,0x0000,0x0000,0x0000,0x0000, +0x0428,0x0000,0x0000,0x0000,0x0000, +0x0434,0x0000,0x0000,0x0000,0x0000, +0x042D,0x0000,0x0000,0x0000,0x0000, +0x0288,0x0000,0x0000,0x0000,0x0000, +0x0289,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0000,0x0000,0x0000,0x0000, +0x0E29,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0x0000,0x0000,0x0000,0x0000, +0x0E30,0x0000,0x0000,0x0000,0x0000, +0x0E31,0x0000,0x0000,0x0000,0x0000, +0x0E32,0x0000,0x0000,0x0000,0x0000, +0x0428,0x0000,0x0000,0x0000,0x0000, +0x0434,0x0000,0x0000,0x0000,0x0000, +0x042D,0x0000,0x0000,0x0000,0x0000, +0x0288,0x0000,0x0000,0x0000,0x0000, +0x0289,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA08F,0x0000,0x0000,0x0000, +0xFBC0,0xA090,0x0000,0x0000,0x0000, +0xFBC0,0xA091,0x0000,0x0000,0x0000, +0xFBC0,0xA092,0x0000,0x0000,0x0000, +0xFBC0,0xA093,0x0000,0x0000,0x0000, +0xFBC0,0xA094,0x0000,0x0000,0x0000, +0xFBC0,0xA095,0x0000,0x0000,0x0000, +0xFBC0,0xA096,0x0000,0x0000,0x0000, +0xFBC0,0xA097,0x0000,0x0000,0x0000, +0xFBC0,0xA098,0x0000,0x0000,0x0000, +0xFBC0,0xA099,0x0000,0x0000,0x0000, +0xFBC0,0xA09A,0x0000,0x0000,0x0000, +0xFBC0,0xA09B,0x0000,0x0000,0x0000, +0xFBC0,0xA09C,0x0000,0x0000,0x0000, +0xFBC0,0xA09D,0x0000,0x0000,0x0000, +0xFBC0,0xA09E,0x0000,0x0000,0x0000, +0xFBC0,0xA09F,0x0000,0x0000,0x0000, +0x0E18,0x0000,0x0000,0x0000,0x0000, +0x0E19,0x0000,0x0000,0x0000,0x0000, +0x0E1A,0x0000,0x0000,0x0000,0x0000, +0x0E1B,0x0000,0x0000,0x0000,0x0000, +0x0E1C,0x0000,0x0000,0x0000,0x0000, +0x0E1D,0x0000,0x0000,0x0000,0x0000, +0x0E1E,0x0000,0x0000,0x0000,0x0000, +0x0E1F,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0FEA,0x0000,0x0000,0x0000, +0x0E20,0x0000,0x0000,0x0000,0x0000, +0x0E21,0x0000,0x0000,0x0000,0x0000, +0x0E22,0x0000,0x0000,0x0000,0x0000, +0x0E23,0x0000,0x0000,0x0000,0x0000, +0x0E24,0x0000,0x0000,0x0000,0x0000, +0x0E25,0x0000,0x0000,0x0000,0x0000, +0x0E26,0x0000,0x0000,0x0000,0x0000, +0x0E27,0x0000,0x0000,0x0000,0x0000, +0x0E28,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA0B2,0x0000,0x0000,0x0000, +0xFBC0,0xA0B3,0x0000,0x0000,0x0000, +0xFBC0,0xA0B4,0x0000,0x0000,0x0000, +0xFBC0,0xA0B5,0x0000,0x0000,0x0000, +0xFBC0,0xA0B6,0x0000,0x0000,0x0000, +0xFBC0,0xA0B7,0x0000,0x0000,0x0000, +0xFBC0,0xA0B8,0x0000,0x0000,0x0000, +0xFBC0,0xA0B9,0x0000,0x0000,0x0000, +0xFBC0,0xA0BA,0x0000,0x0000,0x0000, +0xFBC0,0xA0BB,0x0000,0x0000,0x0000, +0xFBC0,0xA0BC,0x0000,0x0000,0x0000, +0xFBC0,0xA0BD,0x0000,0x0000,0x0000, +0xFBC0,0xA0BE,0x0000,0x0000,0x0000, +0xFBC0,0xA0BF,0x0000,0x0000,0x0000, +0xFBC0,0xA0C0,0x0000,0x0000,0x0000, +0xFBC0,0xA0C1,0x0000,0x0000,0x0000, +0xFBC0,0xA0C2,0x0000,0x0000,0x0000, +0xFBC0,0xA0C3,0x0000,0x0000,0x0000, +0xFBC0,0xA0C4,0x0000,0x0000,0x0000, +0xFBC0,0xA0C5,0x0000,0x0000,0x0000, +0xFBC0,0xA0C6,0x0000,0x0000,0x0000, +0xFBC0,0xA0C7,0x0000,0x0000,0x0000, +0xFBC0,0xA0C8,0x0000,0x0000,0x0000, +0xFBC0,0xA0C9,0x0000,0x0000,0x0000, +0xFBC0,0xA0CA,0x0000,0x0000,0x0000, +0xFBC0,0xA0CB,0x0000,0x0000,0x0000, +0xFBC0,0xA0CC,0x0000,0x0000,0x0000, +0xFBC0,0xA0CD,0x0000,0x0000,0x0000, +0xFBC0,0xA0CE,0x0000,0x0000,0x0000, +0xFBC0,0xA0CF,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA0EB,0x0000,0x0000,0x0000, +0xFBC0,0xA0EC,0x0000,0x0000,0x0000, +0xFBC0,0xA0ED,0x0000,0x0000,0x0000, +0xFBC0,0xA0EE,0x0000,0x0000,0x0000, +0xFBC0,0xA0EF,0x0000,0x0000,0x0000, +0xFBC0,0xA0F0,0x0000,0x0000,0x0000, +0xFBC0,0xA0F1,0x0000,0x0000,0x0000, +0xFBC0,0xA0F2,0x0000,0x0000,0x0000, +0xFBC0,0xA0F3,0x0000,0x0000,0x0000, +0xFBC0,0xA0F4,0x0000,0x0000,0x0000, +0xFBC0,0xA0F5,0x0000,0x0000,0x0000, +0xFBC0,0xA0F6,0x0000,0x0000,0x0000, +0xFBC0,0xA0F7,0x0000,0x0000,0x0000, +0xFBC0,0xA0F8,0x0000,0x0000,0x0000, +0xFBC0,0xA0F9,0x0000,0x0000,0x0000, +0xFBC0,0xA0FA,0x0000,0x0000,0x0000, +0xFBC0,0xA0FB,0x0000,0x0000,0x0000, +0xFBC0,0xA0FC,0x0000,0x0000,0x0000, +0xFBC0,0xA0FD,0x0000,0x0000,0x0000, +0xFBC0,0xA0FE,0x0000,0x0000,0x0000, +0xFBC0,0xA0FF,0x0000,0x0000,0x0000 +}; + +uint16 page021data[]= { /* 2100 (5 weights per char) */ +0x0E33,0x02CC,0x0E60,0x0000,0x0000, +0x0E33,0x02CC,0x0FEA,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000,0x0000, +0x034A,0x0E60,0x0000,0x0000,0x0000, +0x039B,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x02CC,0x0F82,0x0000,0x0000, +0x0E60,0x02CC,0x101F,0x0000,0x0000, +0x0E98,0x0000,0x0000,0x0000,0x0000, +0x039C,0x0000,0x0000,0x0000,0x0000, +0x034A,0x0EB9,0x0000,0x0000,0x0000, +0x0EC1,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000,0x0000, +0x0EED,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000,0x0000, +0x039D,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0F82,0x0000,0x0000,0x0000, +0x039E,0x0000,0x0000,0x0000,0x0000, +0x039F,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0000,0x0000,0x0000,0x0000, +0x0FB4,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000,0x0000, +0x03A0,0x0000,0x0000,0x0000,0x0000, +0x03A1,0x0000,0x0000,0x0000,0x0000, +0x0FEA,0x0F5B,0x0000,0x0000,0x0000, +0x1002,0x0E8B,0x0F2E,0x0000,0x0000, +0x1002,0x0F5B,0x0000,0x0000,0x0000, +0x03A2,0x0000,0x0000,0x0000,0x0000, +0x106A,0x0000,0x0000,0x0000,0x0000, +0x03A3,0x0000,0x0000,0x0000,0x0000, +0x1109,0x0000,0x0000,0x0000,0x0000, +0x03A4,0x0000,0x0000,0x0000,0x0000, +0x106A,0x0000,0x0000,0x0000,0x0000, +0x03A5,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0000,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000,0x0000, +0x0E4A,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000,0x0000, +0x03A6,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000,0x0000, +0x0EB9,0x0000,0x0000,0x0000,0x0000, +0x03A7,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0000,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000,0x0000, +0x1331,0x0000,0x0000,0x0000,0x0000, +0x1332,0x0000,0x0000,0x0000,0x0000, +0x1333,0x0000,0x0000,0x0000,0x0000, +0x1334,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x03A8,0x0000,0x0000,0x0000,0x0000, +0x0EB9,0x0E33,0x105A,0x0000,0x0000, +0xFBC0,0xA13C,0x0000,0x0000,0x0000, +0x10EA,0x0000,0x0000,0x0000,0x0000, +0x10EA,0x0000,0x0000,0x0000,0x0000, +0x10FC,0x0000,0x0000,0x0000,0x0000, +0x0427,0x0000,0x0000,0x0000,0x0000, +0x03A9,0x0000,0x0000,0x0000,0x0000, +0x03AA,0x0000,0x0000,0x0000,0x0000, +0x03AB,0x0000,0x0000,0x0000,0x0000, +0x03AC,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0F10,0x0000,0x0000,0x0000,0x0000, +0x03AD,0x0000,0x0000,0x0000,0x0000, +0x02D0,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA14C,0x0000,0x0000,0x0000, +0xFBC0,0xA14D,0x0000,0x0000,0x0000, +0xFBC0,0xA14E,0x0000,0x0000,0x0000, +0xFBC0,0xA14F,0x0000,0x0000,0x0000, +0xFBC0,0xA150,0x0000,0x0000,0x0000, +0xFBC0,0xA151,0x0000,0x0000,0x0000, +0xFBC0,0xA152,0x0000,0x0000,0x0000, +0x0E2A,0x02CD,0x0E2C,0x0000,0x0000, +0x0E2B,0x02CD,0x0E2C,0x0000,0x0000, +0x0E2A,0x02CD,0x0E2E,0x0000,0x0000, +0x0E2B,0x02CD,0x0E2E,0x0000,0x0000, +0x0E2C,0x02CD,0x0E2E,0x0000,0x0000, +0x0E2D,0x02CD,0x0E2E,0x0000,0x0000, +0x0E2A,0x02CD,0x0E2F,0x0000,0x0000, +0x0E2E,0x02CD,0x0E2F,0x0000,0x0000, +0x0E2A,0x02CD,0x0E31,0x0000,0x0000, +0x0E2C,0x02CD,0x0E31,0x0000,0x0000, +0x0E2E,0x02CD,0x0E31,0x0000,0x0000, +0x0E30,0x02CD,0x0E31,0x0000,0x0000, +0x0E2A,0x02CD,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0EFB,0x0000,0x0000,0x0000, +0x0EFB,0x0EFB,0x0EFB,0x0000,0x0000, +0x0EFB,0x1044,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000,0x0000, +0x1044,0x0EFB,0x0000,0x0000,0x0000, +0x1044,0x0EFB,0x0EFB,0x0000,0x0000, +0x1044,0x0EFB,0x0EFB,0x0EFB,0x0000, +0x0EFB,0x105A,0x0000,0x0000,0x0000, +0x105A,0x0000,0x0000,0x0000,0x0000, +0x105A,0x0EFB,0x0000,0x0000,0x0000, +0x105A,0x0EFB,0x0EFB,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0EFB,0x0000,0x0000,0x0000, +0x0EFB,0x0EFB,0x0EFB,0x0000,0x0000, +0x0EFB,0x1044,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000,0x0000, +0x1044,0x0EFB,0x0000,0x0000,0x0000, +0x1044,0x0EFB,0x0EFB,0x0000,0x0000, +0x1044,0x0EFB,0x0EFB,0x0EFB,0x0000, +0x0EFB,0x105A,0x0000,0x0000,0x0000, +0x105A,0x0000,0x0000,0x0000,0x0000, +0x105A,0x0EFB,0x0000,0x0000,0x0000, +0x105A,0x0EFB,0x0EFB,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0000,0x0000,0x0000,0x0000, +0x0DD7,0x0000,0x0000,0x0000,0x0000, +0x0DD8,0x0000,0x0000,0x0000,0x0000, +0x0DD9,0x0000,0x0000,0x0000,0x0000, +0x0DDA,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA184,0x0000,0x0000,0x0000, +0xFBC0,0xA185,0x0000,0x0000,0x0000, +0xFBC0,0xA186,0x0000,0x0000,0x0000, +0xFBC0,0xA187,0x0000,0x0000,0x0000, +0xFBC0,0xA188,0x0000,0x0000,0x0000, +0xFBC0,0xA189,0x0000,0x0000,0x0000, +0xFBC0,0xA18A,0x0000,0x0000,0x0000, +0xFBC0,0xA18B,0x0000,0x0000,0x0000, +0xFBC0,0xA18C,0x0000,0x0000,0x0000, +0xFBC0,0xA18D,0x0000,0x0000,0x0000, +0xFBC0,0xA18E,0x0000,0x0000,0x0000, +0xFBC0,0xA18F,0x0000,0x0000,0x0000, +0x03AE,0x0000,0x0000,0x0000,0x0000, +0x03B0,0x0000,0x0000,0x0000,0x0000, +0x03AF,0x0000,0x0000,0x0000,0x0000, +0x03B1,0x0000,0x0000,0x0000,0x0000, +0x03B2,0x0000,0x0000,0x0000,0x0000, +0x03B3,0x0000,0x0000,0x0000,0x0000, +0x03B4,0x0000,0x0000,0x0000,0x0000, +0x03B5,0x0000,0x0000,0x0000,0x0000, +0x03B6,0x0000,0x0000,0x0000,0x0000, +0x03B7,0x0000,0x0000,0x0000,0x0000, +0x03AE,0x0000,0x0000,0x0000,0x0000, +0x03AF,0x0000,0x0000,0x0000,0x0000, +0x03B8,0x0000,0x0000,0x0000,0x0000, +0x03B9,0x0000,0x0000,0x0000,0x0000, +0x03BA,0x0000,0x0000,0x0000,0x0000, +0x03BB,0x0000,0x0000,0x0000,0x0000, +0x03BC,0x0000,0x0000,0x0000,0x0000, +0x03BD,0x0000,0x0000,0x0000,0x0000, +0x03BE,0x0000,0x0000,0x0000,0x0000, +0x03BF,0x0000,0x0000,0x0000,0x0000, +0x03C0,0x0000,0x0000,0x0000,0x0000, +0x03C1,0x0000,0x0000,0x0000,0x0000, +0x03C2,0x0000,0x0000,0x0000,0x0000, +0x03C3,0x0000,0x0000,0x0000,0x0000, +0x03C4,0x0000,0x0000,0x0000,0x0000, +0x03C5,0x0000,0x0000,0x0000,0x0000, +0x03C6,0x0000,0x0000,0x0000,0x0000, +0x03C7,0x0000,0x0000,0x0000,0x0000, +0x03C8,0x0000,0x0000,0x0000,0x0000, +0x03C9,0x0000,0x0000,0x0000,0x0000, +0x03B2,0x0000,0x0000,0x0000,0x0000, +0x03CA,0x0000,0x0000,0x0000,0x0000, +0x03CB,0x0000,0x0000,0x0000,0x0000, +0x03CC,0x0000,0x0000,0x0000,0x0000, +0x03CD,0x0000,0x0000,0x0000,0x0000, +0x03CE,0x0000,0x0000,0x0000,0x0000, +0x03CF,0x0000,0x0000,0x0000,0x0000, +0x03D0,0x0000,0x0000,0x0000,0x0000, +0x03D1,0x0000,0x0000,0x0000,0x0000, +0x03D2,0x0000,0x0000,0x0000,0x0000, +0x03D3,0x0000,0x0000,0x0000,0x0000, +0x03D4,0x0000,0x0000,0x0000,0x0000, +0x03D5,0x0000,0x0000,0x0000,0x0000, +0x03D6,0x0000,0x0000,0x0000,0x0000, +0x03D7,0x0000,0x0000,0x0000,0x0000, +0x03D8,0x0000,0x0000,0x0000,0x0000, +0x03D9,0x0000,0x0000,0x0000,0x0000, +0x03DA,0x0000,0x0000,0x0000,0x0000, +0x03DB,0x0000,0x0000,0x0000,0x0000, +0x03DC,0x0000,0x0000,0x0000,0x0000, +0x03DD,0x0000,0x0000,0x0000,0x0000, +0x03DE,0x0000,0x0000,0x0000,0x0000, +0x03DF,0x0000,0x0000,0x0000,0x0000, +0x03E0,0x0000,0x0000,0x0000,0x0000, +0x03E1,0x0000,0x0000,0x0000,0x0000, +0x03E2,0x0000,0x0000,0x0000,0x0000, +0x03E3,0x0000,0x0000,0x0000,0x0000, +0x03E4,0x0000,0x0000,0x0000,0x0000, +0x03E5,0x0000,0x0000,0x0000,0x0000, +0x03E6,0x0000,0x0000,0x0000,0x0000, +0x03E7,0x0000,0x0000,0x0000,0x0000, +0x03E8,0x0000,0x0000,0x0000,0x0000, +0x03EC,0x0000,0x0000,0x0000,0x0000, +0x03EA,0x0000,0x0000,0x0000,0x0000, +0x03E8,0x0000,0x0000,0x0000,0x0000, +0x03E9,0x0000,0x0000,0x0000,0x0000, +0x03EA,0x0000,0x0000,0x0000,0x0000, +0x03EB,0x0000,0x0000,0x0000,0x0000, +0x03EC,0x0000,0x0000,0x0000,0x0000, +0x03ED,0x0000,0x0000,0x0000,0x0000, +0x03EE,0x0000,0x0000,0x0000,0x0000, +0x03EF,0x0000,0x0000,0x0000,0x0000, +0x03F0,0x0000,0x0000,0x0000,0x0000, +0x03F1,0x0000,0x0000,0x0000,0x0000, +0x03F2,0x0000,0x0000,0x0000,0x0000, +0x03F3,0x0000,0x0000,0x0000,0x0000, +0x03F4,0x0000,0x0000,0x0000,0x0000, +0x03F5,0x0000,0x0000,0x0000,0x0000, +0x03F6,0x0000,0x0000,0x0000,0x0000, +0x03F7,0x0000,0x0000,0x0000,0x0000, +0x03F8,0x0000,0x0000,0x0000,0x0000, +0x03F9,0x0000,0x0000,0x0000,0x0000, +0x03FA,0x0000,0x0000,0x0000,0x0000, +0x03FB,0x0000,0x0000,0x0000,0x0000, +0x03FC,0x0000,0x0000,0x0000,0x0000, +0x03FD,0x0000,0x0000,0x0000,0x0000, +0x03FE,0x0000,0x0000,0x0000,0x0000, +0x03FF,0x0000,0x0000,0x0000,0x0000, +0x0400,0x0000,0x0000,0x0000,0x0000, +0x0401,0x0000,0x0000,0x0000,0x0000, +0x0402,0x0000,0x0000,0x0000,0x0000, +0x0403,0x0000,0x0000,0x0000,0x0000, +0x0404,0x0000,0x0000,0x0000,0x0000, +0x0405,0x0000,0x0000,0x0000,0x0000, +0x0406,0x0000,0x0000,0x0000,0x0000, +0x0407,0x0000,0x0000,0x0000,0x0000, +0x0408,0x0000,0x0000,0x0000,0x0000, +0x0409,0x0000,0x0000,0x0000,0x0000, +0x040A,0x0000,0x0000,0x0000,0x0000, +0x040B,0x0000,0x0000,0x0000,0x0000, +0x040C,0x0000,0x0000,0x0000,0x0000, +0x040D,0x0000,0x0000,0x0000,0x0000, +0x040E,0x0000,0x0000,0x0000,0x0000, +0x040F,0x0000,0x0000,0x0000,0x0000, +0x0410,0x0000,0x0000,0x0000,0x0000, +0x0411,0x0000,0x0000,0x0000,0x0000, +0x0412,0x0000,0x0000,0x0000,0x0000, +0x0413,0x0000,0x0000,0x0000,0x0000, +0x0414,0x0000,0x0000,0x0000,0x0000, +0x0415,0x0000,0x0000,0x0000,0x0000, +0x0416,0x0000,0x0000,0x0000,0x0000, +0x0417,0x0000,0x0000,0x0000,0x0000 +}; + +uint16 page022data[]= { /* 2200 (4 weights per char) */ +0x0418,0x0000,0x0000,0x0000, 0x0419,0x0000,0x0000,0x0000, +0x041A,0x0000,0x0000,0x0000, 0x041B,0x0000,0x0000,0x0000, +0x041B,0x0000,0x0000,0x0000, 0x041C,0x0000,0x0000,0x0000, +0x041D,0x0000,0x0000,0x0000, 0x041E,0x0000,0x0000,0x0000, +0x041F,0x0000,0x0000,0x0000, 0x041F,0x0000,0x0000,0x0000, +0x0420,0x0000,0x0000,0x0000, 0x0421,0x0000,0x0000,0x0000, +0x0421,0x0000,0x0000,0x0000, 0x0422,0x0000,0x0000,0x0000, +0x0424,0x0000,0x0000,0x0000, 0x0425,0x0000,0x0000,0x0000, +0x0426,0x0000,0x0000,0x0000, 0x0427,0x0000,0x0000,0x0000, +0x0434,0x0000,0x0000,0x0000, 0x0435,0x0000,0x0000,0x0000, +0x0436,0x0000,0x0000,0x0000, 0x0437,0x0000,0x0000,0x0000, +0x0438,0x0000,0x0000,0x0000, 0x0439,0x0000,0x0000,0x0000, +0x043A,0x0000,0x0000,0x0000, 0x043B,0x0000,0x0000,0x0000, +0x043C,0x0000,0x0000,0x0000, 0x043D,0x0000,0x0000,0x0000, +0x043E,0x0000,0x0000,0x0000, 0x043F,0x0000,0x0000,0x0000, +0x0440,0x0000,0x0000,0x0000, 0x0441,0x0000,0x0000,0x0000, +0x0442,0x0000,0x0000,0x0000, 0x0443,0x0000,0x0000,0x0000, +0x0444,0x0000,0x0000,0x0000, 0x0445,0x0000,0x0000,0x0000, +0x0445,0x0000,0x0000,0x0000, 0x0446,0x0000,0x0000,0x0000, +0x0446,0x0000,0x0000,0x0000, 0x0447,0x0000,0x0000,0x0000, +0x0448,0x0000,0x0000,0x0000, 0x0449,0x0000,0x0000,0x0000, +0x044A,0x0000,0x0000,0x0000, 0x044B,0x0000,0x0000,0x0000, +0x044B,0x044B,0x0000,0x0000, 0x044B,0x044B,0x044B,0x0000, +0x044C,0x0000,0x0000,0x0000, 0x044C,0x044C,0x0000,0x0000, +0x044C,0x044C,0x044C,0x0000, 0x044D,0x0000,0x0000,0x0000, +0x044E,0x0000,0x0000,0x0000, 0x044F,0x0000,0x0000,0x0000, +0x0450,0x0000,0x0000,0x0000, 0x0451,0x0000,0x0000,0x0000, +0x0452,0x0000,0x0000,0x0000, 0x0453,0x0000,0x0000,0x0000, +0x0454,0x0000,0x0000,0x0000, 0x0455,0x0000,0x0000,0x0000, +0x0456,0x0000,0x0000,0x0000, 0x0457,0x0000,0x0000,0x0000, +0x0458,0x0000,0x0000,0x0000, 0x0459,0x0000,0x0000,0x0000, +0x045A,0x0000,0x0000,0x0000, 0x045B,0x0000,0x0000,0x0000, +0x045C,0x0000,0x0000,0x0000, 0x0458,0x0000,0x0000,0x0000, +0x045D,0x0000,0x0000,0x0000, 0x045E,0x0000,0x0000,0x0000, +0x045E,0x0000,0x0000,0x0000, 0x045F,0x0000,0x0000,0x0000, +0x0460,0x0000,0x0000,0x0000, 0x045F,0x0000,0x0000,0x0000, +0x0461,0x0000,0x0000,0x0000, 0x0461,0x0000,0x0000,0x0000, +0x0462,0x0000,0x0000,0x0000, 0x0463,0x0000,0x0000,0x0000, +0x0464,0x0000,0x0000,0x0000, 0x0465,0x0000,0x0000,0x0000, +0x0466,0x0000,0x0000,0x0000, 0x0467,0x0000,0x0000,0x0000, +0x0468,0x0000,0x0000,0x0000, 0x0469,0x0000,0x0000,0x0000, +0x046A,0x0000,0x0000,0x0000, 0x046B,0x0000,0x0000,0x0000, +0x046C,0x0000,0x0000,0x0000, 0x046D,0x0000,0x0000,0x0000, +0x046E,0x0000,0x0000,0x0000, 0x046F,0x0000,0x0000,0x0000, +0x0470,0x0000,0x0000,0x0000, 0x0471,0x0000,0x0000,0x0000, +0x0472,0x0000,0x0000,0x0000, 0x0473,0x0000,0x0000,0x0000, +0x0474,0x0000,0x0000,0x0000, 0x0475,0x0000,0x0000,0x0000, +0x0476,0x0000,0x0000,0x0000, 0x0477,0x0000,0x0000,0x0000, +0x042D,0x0000,0x0000,0x0000, 0x0478,0x0000,0x0000,0x0000, +0x0478,0x0000,0x0000,0x0000, 0x0479,0x0000,0x0000,0x0000, +0x047A,0x0000,0x0000,0x0000, 0x047B,0x0000,0x0000,0x0000, +0x047C,0x0000,0x0000,0x0000, 0x047D,0x0000,0x0000,0x0000, +0x047E,0x0000,0x0000,0x0000, 0x047F,0x0000,0x0000,0x0000, +0x0480,0x0000,0x0000,0x0000, 0x0481,0x0000,0x0000,0x0000, +0x0482,0x0000,0x0000,0x0000, 0x0465,0x0000,0x0000,0x0000, +0x042C,0x0000,0x0000,0x0000, 0x042E,0x0000,0x0000,0x0000, +0x047A,0x0000,0x0000,0x0000, 0x047B,0x0000,0x0000,0x0000, +0x0483,0x0000,0x0000,0x0000, 0x0484,0x0000,0x0000,0x0000, +0x0483,0x0000,0x0000,0x0000, 0x0484,0x0000,0x0000,0x0000, +0x0485,0x0000,0x0000,0x0000, 0x0486,0x0000,0x0000,0x0000, +0x0485,0x0000,0x0000,0x0000, 0x0486,0x0000,0x0000,0x0000, +0x0487,0x0000,0x0000,0x0000, 0x0488,0x0000,0x0000,0x0000, +0x0489,0x0000,0x0000,0x0000, 0x048A,0x0000,0x0000,0x0000, +0x048B,0x0000,0x0000,0x0000, 0x048C,0x0000,0x0000,0x0000, +0x0487,0x0000,0x0000,0x0000, 0x0488,0x0000,0x0000,0x0000, +0x048D,0x0000,0x0000,0x0000, 0x048E,0x0000,0x0000,0x0000, +0x048D,0x0000,0x0000,0x0000, 0x048E,0x0000,0x0000,0x0000, +0x048F,0x0000,0x0000,0x0000, 0x0490,0x0000,0x0000,0x0000, +0x048F,0x0000,0x0000,0x0000, 0x0490,0x0000,0x0000,0x0000, +0x0491,0x0000,0x0000,0x0000, 0x0492,0x0000,0x0000,0x0000, +0x0493,0x0000,0x0000,0x0000, 0x0494,0x0000,0x0000,0x0000, +0x0495,0x0000,0x0000,0x0000, 0x0496,0x0000,0x0000,0x0000, +0x0497,0x0000,0x0000,0x0000, 0x0498,0x0000,0x0000,0x0000, +0x0499,0x0000,0x0000,0x0000, 0x049A,0x0000,0x0000,0x0000, +0x049B,0x0000,0x0000,0x0000, 0x049C,0x0000,0x0000,0x0000, +0x049D,0x0000,0x0000,0x0000, 0x049E,0x0000,0x0000,0x0000, +0x049F,0x0000,0x0000,0x0000, 0x04A0,0x0000,0x0000,0x0000, +0x04A1,0x0000,0x0000,0x0000, 0x04A2,0x0000,0x0000,0x0000, +0x04A3,0x0000,0x0000,0x0000, 0x04A4,0x0000,0x0000,0x0000, +0x04A5,0x0000,0x0000,0x0000, 0x04A6,0x0000,0x0000,0x0000, +0x04A7,0x0000,0x0000,0x0000, 0x04A8,0x0000,0x0000,0x0000, +0x04A9,0x0000,0x0000,0x0000, 0x04AA,0x0000,0x0000,0x0000, +0x04AB,0x0000,0x0000,0x0000, 0x04AC,0x0000,0x0000,0x0000, +0x04AD,0x0000,0x0000,0x0000, 0x04AE,0x0000,0x0000,0x0000, +0x04AF,0x0000,0x0000,0x0000, 0x04B0,0x0000,0x0000,0x0000, +0x04B1,0x0000,0x0000,0x0000, 0x04B2,0x0000,0x0000,0x0000, +0x04A9,0x0000,0x0000,0x0000, 0x04AF,0x0000,0x0000,0x0000, +0x04B0,0x0000,0x0000,0x0000, 0x04B2,0x0000,0x0000,0x0000, +0x04B3,0x0000,0x0000,0x0000, 0x04B4,0x0000,0x0000,0x0000, +0x04B5,0x0000,0x0000,0x0000, 0x04B6,0x0000,0x0000,0x0000, +0x04B7,0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000,0x0000, +0x04B9,0x0000,0x0000,0x0000, 0x04BA,0x0000,0x0000,0x0000, +0x04BB,0x0000,0x0000,0x0000, 0x04BC,0x0000,0x0000,0x0000, +0x04BD,0x0000,0x0000,0x0000, 0x04BE,0x0000,0x0000,0x0000, +0x04BF,0x0000,0x0000,0x0000, 0x04C0,0x0000,0x0000,0x0000, +0x04C1,0x0000,0x0000,0x0000, 0x04C2,0x0000,0x0000,0x0000, +0x04C3,0x0000,0x0000,0x0000, 0x04C4,0x0000,0x0000,0x0000, +0x04C5,0x0000,0x0000,0x0000, 0x04C6,0x0000,0x0000,0x0000, +0x04C7,0x0000,0x0000,0x0000, 0x04C8,0x0000,0x0000,0x0000, +0x04C9,0x0000,0x0000,0x0000, 0x04CA,0x0000,0x0000,0x0000, +0x04CB,0x0000,0x0000,0x0000, 0x04CC,0x0000,0x0000,0x0000, +0x04CD,0x0000,0x0000,0x0000, 0x04CE,0x0000,0x0000,0x0000, +0x04CF,0x0000,0x0000,0x0000, 0x04D0,0x0000,0x0000,0x0000, +0x04D1,0x0000,0x0000,0x0000, 0x04D2,0x0000,0x0000,0x0000, +0x04D3,0x0000,0x0000,0x0000, 0x04D4,0x0000,0x0000,0x0000, +0x04D5,0x0000,0x0000,0x0000, 0x04D6,0x0000,0x0000,0x0000, +0x04D7,0x0000,0x0000,0x0000, 0x04D8,0x0000,0x0000,0x0000, +0x04D9,0x0000,0x0000,0x0000, 0x04DA,0x0000,0x0000,0x0000, +0x04DB,0x0000,0x0000,0x0000, 0x04DC,0x0000,0x0000,0x0000, +0x04DD,0x0000,0x0000,0x0000, 0x04DE,0x0000,0x0000,0x0000, +0x04DF,0x0000,0x0000,0x0000, 0x04E0,0x0000,0x0000,0x0000, +0x04E1,0x0000,0x0000,0x0000, 0x04E2,0x0000,0x0000,0x0000, +0x0489,0x0000,0x0000,0x0000, 0x048A,0x0000,0x0000,0x0000, +0x0498,0x0000,0x0000,0x0000, 0x0499,0x0000,0x0000,0x0000, +0x04E3,0x0000,0x0000,0x0000, 0x04E4,0x0000,0x0000,0x0000, +0x04E5,0x0000,0x0000,0x0000, 0x04E6,0x0000,0x0000,0x0000, +0x04E7,0x0000,0x0000,0x0000, 0x04E8,0x0000,0x0000,0x0000, +0x04B5,0x0000,0x0000,0x0000, 0x04B6,0x0000,0x0000,0x0000, +0x04B7,0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000,0x0000, +0x04E9,0x0000,0x0000,0x0000, 0x04EA,0x0000,0x0000,0x0000, +0x04EB,0x0000,0x0000,0x0000, 0x04EC,0x0000,0x0000,0x0000, +0x04ED,0x0000,0x0000,0x0000, 0x04EE,0x0000,0x0000,0x0000, +0x04EF,0x0000,0x0000,0x0000, 0x04F0,0x0000,0x0000,0x0000, +0x04F1,0x0000,0x0000,0x0000, 0x04F2,0x0000,0x0000,0x0000, +0x04F3,0x0000,0x0000,0x0000, 0x04F4,0x0000,0x0000,0x0000, +0x04F5,0x0000,0x0000,0x0000, 0x04F6,0x0000,0x0000,0x0000, +0x04F7,0x0000,0x0000,0x0000, 0x04F8,0x0000,0x0000,0x0000, +0x04F9,0x0000,0x0000,0x0000, 0x04FA,0x0000,0x0000,0x0000 +}; + +uint16 page023data[]= { /* 2300 (3 weights per char) */ +0x04FB,0x0000,0x0000, 0x04FC,0x0000,0x0000, 0x04FD,0x0000,0x0000, +0x04FE,0x0000,0x0000, 0x04FF,0x0000,0x0000, 0x0500,0x0000,0x0000, +0x0501,0x0000,0x0000, 0x0502,0x0000,0x0000, 0x0503,0x0000,0x0000, +0x0504,0x0000,0x0000, 0x0505,0x0000,0x0000, 0x0506,0x0000,0x0000, +0x0507,0x0000,0x0000, 0x0508,0x0000,0x0000, 0x0509,0x0000,0x0000, +0x050A,0x0000,0x0000, 0x050B,0x0000,0x0000, 0x050C,0x0000,0x0000, +0x050D,0x0000,0x0000, 0x050E,0x0000,0x0000, 0x050F,0x0000,0x0000, +0x0510,0x0000,0x0000, 0x0511,0x0000,0x0000, 0x0512,0x0000,0x0000, +0x0513,0x0000,0x0000, 0x0514,0x0000,0x0000, 0x0515,0x0000,0x0000, +0x0516,0x0000,0x0000, 0x0517,0x0000,0x0000, 0x0518,0x0000,0x0000, +0x0519,0x0000,0x0000, 0x051A,0x0000,0x0000, 0x051B,0x0000,0x0000, +0x051C,0x0000,0x0000, 0x051D,0x0000,0x0000, 0x051E,0x0000,0x0000, +0x051F,0x0000,0x0000, 0x0520,0x0000,0x0000, 0x0521,0x0000,0x0000, +0x0522,0x0000,0x0000, 0x0523,0x0000,0x0000, 0x02AE,0x0000,0x0000, +0x02AF,0x0000,0x0000, 0x0524,0x0000,0x0000, 0x0525,0x0000,0x0000, +0x0526,0x0000,0x0000, 0x0527,0x0000,0x0000, 0x0528,0x0000,0x0000, +0x0529,0x0000,0x0000, 0x052A,0x0000,0x0000, 0x052B,0x0000,0x0000, +0x052C,0x0000,0x0000, 0x052D,0x0000,0x0000, 0x052E,0x0000,0x0000, +0x052F,0x0000,0x0000, 0x0530,0x0000,0x0000, 0x0531,0x0000,0x0000, +0x0532,0x0000,0x0000, 0x0533,0x0000,0x0000, 0x0534,0x0000,0x0000, +0x0535,0x0000,0x0000, 0x0536,0x0000,0x0000, 0x0537,0x0000,0x0000, +0x0538,0x0000,0x0000, 0x0539,0x0000,0x0000, 0x053A,0x0000,0x0000, +0x053B,0x0000,0x0000, 0x053C,0x0000,0x0000, 0x053D,0x0000,0x0000, +0x053E,0x0000,0x0000, 0x053F,0x0000,0x0000, 0x0540,0x0000,0x0000, +0x0541,0x0000,0x0000, 0x0542,0x0000,0x0000, 0x0543,0x0000,0x0000, +0x0544,0x0000,0x0000, 0x0545,0x0000,0x0000, 0x0546,0x0000,0x0000, +0x0547,0x0000,0x0000, 0x0548,0x0000,0x0000, 0x0549,0x0000,0x0000, +0x054A,0x0000,0x0000, 0x054B,0x0000,0x0000, 0x054C,0x0000,0x0000, +0x054D,0x0000,0x0000, 0x054E,0x0000,0x0000, 0x054F,0x0000,0x0000, +0x0550,0x0000,0x0000, 0x0551,0x0000,0x0000, 0x0552,0x0000,0x0000, +0x0553,0x0000,0x0000, 0x0554,0x0000,0x0000, 0x0555,0x0000,0x0000, +0x0556,0x0000,0x0000, 0x0557,0x0000,0x0000, 0x0558,0x0000,0x0000, +0x0559,0x0000,0x0000, 0x055A,0x0000,0x0000, 0x055B,0x0000,0x0000, +0x055C,0x0000,0x0000, 0x055D,0x0000,0x0000, 0x055E,0x0000,0x0000, +0x055F,0x0000,0x0000, 0x0560,0x0000,0x0000, 0x0561,0x0000,0x0000, +0x0562,0x0000,0x0000, 0x0563,0x0000,0x0000, 0x0564,0x0000,0x0000, +0x0565,0x0000,0x0000, 0x0566,0x0000,0x0000, 0x0567,0x0000,0x0000, +0x0568,0x0000,0x0000, 0x0569,0x0000,0x0000, 0x056A,0x0000,0x0000, +0x056B,0x0000,0x0000, 0x056C,0x0000,0x0000, 0x056D,0x0000,0x0000, +0x056E,0x0000,0x0000, 0x056F,0x0000,0x0000, 0x0570,0x0000,0x0000, +0x0571,0x0000,0x0000, 0x0572,0x0000,0x0000, 0x0573,0x0000,0x0000, +0x0574,0x0000,0x0000, 0x0575,0x0000,0x0000, 0x0576,0x0000,0x0000, +0x0577,0x0000,0x0000, 0x0578,0x0000,0x0000, 0x0579,0x0000,0x0000, +0x057A,0x0000,0x0000, 0x057B,0x0000,0x0000, 0x057C,0x0000,0x0000, +0x057D,0x0000,0x0000, 0x057E,0x0000,0x0000, 0x057F,0x0000,0x0000, +0x0580,0x0000,0x0000, 0x0581,0x0000,0x0000, 0x0582,0x0000,0x0000, +0x0583,0x0000,0x0000, 0x0584,0x0000,0x0000, 0x0585,0x0000,0x0000, +0x0586,0x0000,0x0000, 0x0587,0x0000,0x0000, 0x0588,0x0000,0x0000, +0x0589,0x0000,0x0000, 0x058A,0x0000,0x0000, 0x058B,0x0000,0x0000, +0x058C,0x0000,0x0000, 0x058D,0x0000,0x0000, 0x058E,0x0000,0x0000, +0x058F,0x0000,0x0000, 0x0590,0x0000,0x0000, 0x0591,0x0000,0x0000, +0x0592,0x0000,0x0000, 0x0593,0x0000,0x0000, 0x0594,0x0000,0x0000, +0x0595,0x0000,0x0000, 0x0596,0x0000,0x0000, 0x0597,0x0000,0x0000, +0x0598,0x0000,0x0000, 0x0599,0x0000,0x0000, 0x059A,0x0000,0x0000, +0x059B,0x0000,0x0000, 0x059C,0x0000,0x0000, 0x059D,0x0000,0x0000, +0x059E,0x0000,0x0000, 0x059F,0x0000,0x0000, 0x05A0,0x0000,0x0000, +0x05A1,0x0000,0x0000, 0x05A2,0x0000,0x0000, 0x05A3,0x0000,0x0000, +0x05A4,0x0000,0x0000, 0x05A5,0x0000,0x0000, 0x05A6,0x0000,0x0000, +0x05A7,0x0000,0x0000, 0x05A8,0x0000,0x0000, 0x05A9,0x0000,0x0000, +0x05AA,0x0000,0x0000, 0x05AB,0x0000,0x0000, 0x05AC,0x0000,0x0000, +0x05AD,0x0000,0x0000, 0x05AE,0x0000,0x0000, 0x05AF,0x0000,0x0000, +0x05B0,0x0000,0x0000, 0x05B1,0x0000,0x0000, 0x05B2,0x0000,0x0000, +0x05B3,0x0000,0x0000, 0x05B4,0x0000,0x0000, 0x05B5,0x0000,0x0000, +0x05B6,0x0000,0x0000, 0x05B7,0x0000,0x0000, 0x05B8,0x0000,0x0000, +0x05B9,0x0000,0x0000, 0x05BA,0x0000,0x0000, 0x05BB,0x0000,0x0000, +0x05BC,0x0000,0x0000, 0x05BD,0x0000,0x0000, 0x05BE,0x0000,0x0000, +0x05BF,0x0000,0x0000, 0x05C0,0x0000,0x0000, 0x05C1,0x0000,0x0000, +0x05C2,0x0000,0x0000, 0x05C3,0x0000,0x0000, 0x05C4,0x0000,0x0000, +0x05C5,0x0000,0x0000, 0x05C6,0x0000,0x0000, 0x05C7,0x0000,0x0000, +0x05C8,0x0000,0x0000, 0x05C9,0x0000,0x0000, 0xFBC0,0xA3D1,0x0000, +0xFBC0,0xA3D2,0x0000, 0xFBC0,0xA3D3,0x0000, 0xFBC0,0xA3D4,0x0000, +0xFBC0,0xA3D5,0x0000, 0xFBC0,0xA3D6,0x0000, 0xFBC0,0xA3D7,0x0000, +0xFBC0,0xA3D8,0x0000, 0xFBC0,0xA3D9,0x0000, 0xFBC0,0xA3DA,0x0000, +0xFBC0,0xA3DB,0x0000, 0xFBC0,0xA3DC,0x0000, 0xFBC0,0xA3DD,0x0000, +0xFBC0,0xA3DE,0x0000, 0xFBC0,0xA3DF,0x0000, 0xFBC0,0xA3E0,0x0000, +0xFBC0,0xA3E1,0x0000, 0xFBC0,0xA3E2,0x0000, 0xFBC0,0xA3E3,0x0000, +0xFBC0,0xA3E4,0x0000, 0xFBC0,0xA3E5,0x0000, 0xFBC0,0xA3E6,0x0000, +0xFBC0,0xA3E7,0x0000, 0xFBC0,0xA3E8,0x0000, 0xFBC0,0xA3E9,0x0000, +0xFBC0,0xA3EA,0x0000, 0xFBC0,0xA3EB,0x0000, 0xFBC0,0xA3EC,0x0000, +0xFBC0,0xA3ED,0x0000, 0xFBC0,0xA3EE,0x0000, 0xFBC0,0xA3EF,0x0000, +0xFBC0,0xA3F0,0x0000, 0xFBC0,0xA3F1,0x0000, 0xFBC0,0xA3F2,0x0000, +0xFBC0,0xA3F3,0x0000, 0xFBC0,0xA3F4,0x0000, 0xFBC0,0xA3F5,0x0000, +0xFBC0,0xA3F6,0x0000, 0xFBC0,0xA3F7,0x0000, 0xFBC0,0xA3F8,0x0000, +0xFBC0,0xA3F9,0x0000, 0xFBC0,0xA3FA,0x0000, 0xFBC0,0xA3FB,0x0000, +0xFBC0,0xA3FC,0x0000, 0xFBC0,0xA3FD,0x0000, 0xFBC0,0xA3FE,0x0000, +0xFBC0,0xA3FF,0x0000 }; + +uint16 page024data[]= { /* 2400 (5 weights per char) */ +0x05CA,0x0000,0x0000,0x0000,0x0000, +0x05CB,0x0000,0x0000,0x0000,0x0000, +0x05CC,0x0000,0x0000,0x0000,0x0000, +0x05CD,0x0000,0x0000,0x0000,0x0000, +0x05CE,0x0000,0x0000,0x0000,0x0000, +0x05CF,0x0000,0x0000,0x0000,0x0000, +0x05D0,0x0000,0x0000,0x0000,0x0000, +0x05D1,0x0000,0x0000,0x0000,0x0000, +0x05D2,0x0000,0x0000,0x0000,0x0000, +0x05D3,0x0000,0x0000,0x0000,0x0000, +0x05D4,0x0000,0x0000,0x0000,0x0000, +0x05D5,0x0000,0x0000,0x0000,0x0000, +0x05D6,0x0000,0x0000,0x0000,0x0000, +0x05D7,0x0000,0x0000,0x0000,0x0000, +0x05D8,0x0000,0x0000,0x0000,0x0000, +0x05D9,0x0000,0x0000,0x0000,0x0000, +0x05DA,0x0000,0x0000,0x0000,0x0000, +0x05DB,0x0000,0x0000,0x0000,0x0000, +0x05DC,0x0000,0x0000,0x0000,0x0000, +0x05DD,0x0000,0x0000,0x0000,0x0000, +0x05DE,0x0000,0x0000,0x0000,0x0000, +0x05DF,0x0000,0x0000,0x0000,0x0000, +0x05E0,0x0000,0x0000,0x0000,0x0000, +0x05E1,0x0000,0x0000,0x0000,0x0000, +0x05E2,0x0000,0x0000,0x0000,0x0000, +0x05E3,0x0000,0x0000,0x0000,0x0000, +0x05E4,0x0000,0x0000,0x0000,0x0000, +0x05E5,0x0000,0x0000,0x0000,0x0000, +0x05E6,0x0000,0x0000,0x0000,0x0000, +0x05E7,0x0000,0x0000,0x0000,0x0000, +0x05E8,0x0000,0x0000,0x0000,0x0000, +0x05E9,0x0000,0x0000,0x0000,0x0000, +0x05EA,0x0000,0x0000,0x0000,0x0000, +0x05EB,0x0000,0x0000,0x0000,0x0000, +0x05EC,0x0000,0x0000,0x0000,0x0000, +0x05ED,0x0000,0x0000,0x0000,0x0000, +0x05EE,0x0000,0x0000,0x0000,0x0000, +0x05EF,0x0000,0x0000,0x0000,0x0000, +0x05F0,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA427,0x0000,0x0000,0x0000, +0xFBC0,0xA428,0x0000,0x0000,0x0000, +0xFBC0,0xA429,0x0000,0x0000,0x0000, +0xFBC0,0xA42A,0x0000,0x0000,0x0000, +0xFBC0,0xA42B,0x0000,0x0000,0x0000, +0xFBC0,0xA42C,0x0000,0x0000,0x0000, +0xFBC0,0xA42D,0x0000,0x0000,0x0000, +0xFBC0,0xA42E,0x0000,0x0000,0x0000, +0xFBC0,0xA42F,0x0000,0x0000,0x0000, +0xFBC0,0xA430,0x0000,0x0000,0x0000, +0xFBC0,0xA431,0x0000,0x0000,0x0000, +0xFBC0,0xA432,0x0000,0x0000,0x0000, +0xFBC0,0xA433,0x0000,0x0000,0x0000, +0xFBC0,0xA434,0x0000,0x0000,0x0000, +0xFBC0,0xA435,0x0000,0x0000,0x0000, +0xFBC0,0xA436,0x0000,0x0000,0x0000, +0xFBC0,0xA437,0x0000,0x0000,0x0000, +0xFBC0,0xA438,0x0000,0x0000,0x0000, +0xFBC0,0xA439,0x0000,0x0000,0x0000, +0xFBC0,0xA43A,0x0000,0x0000,0x0000, +0xFBC0,0xA43B,0x0000,0x0000,0x0000, +0xFBC0,0xA43C,0x0000,0x0000,0x0000, +0xFBC0,0xA43D,0x0000,0x0000,0x0000, +0xFBC0,0xA43E,0x0000,0x0000,0x0000, +0xFBC0,0xA43F,0x0000,0x0000,0x0000, +0x05F1,0x0000,0x0000,0x0000,0x0000, +0x05F2,0x0000,0x0000,0x0000,0x0000, +0x05F3,0x0000,0x0000,0x0000,0x0000, +0x05F4,0x0000,0x0000,0x0000,0x0000, +0x05F5,0x0000,0x0000,0x0000,0x0000, +0x05F6,0x0000,0x0000,0x0000,0x0000, +0x05F7,0x0000,0x0000,0x0000,0x0000, +0x05F8,0x0000,0x0000,0x0000,0x0000, +0x05F9,0x0000,0x0000,0x0000,0x0000, +0x05FA,0x0000,0x0000,0x0000,0x0000, +0x05FB,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xA44B,0x0000,0x0000,0x0000, +0xFBC0,0xA44C,0x0000,0x0000,0x0000, +0xFBC0,0xA44D,0x0000,0x0000,0x0000, +0xFBC0,0xA44E,0x0000,0x0000,0x0000, +0xFBC0,0xA44F,0x0000,0x0000,0x0000, +0xFBC0,0xA450,0x0000,0x0000,0x0000, +0xFBC0,0xA451,0x0000,0x0000,0x0000, +0xFBC0,0xA452,0x0000,0x0000,0x0000, +0xFBC0,0xA453,0x0000,0x0000,0x0000, +0xFBC0,0xA454,0x0000,0x0000,0x0000, +0xFBC0,0xA455,0x0000,0x0000,0x0000, +0xFBC0,0xA456,0x0000,0x0000,0x0000, +0xFBC0,0xA457,0x0000,0x0000,0x0000, +0xFBC0,0xA458,0x0000,0x0000,0x0000, +0xFBC0,0xA459,0x0000,0x0000,0x0000, +0xFBC0,0xA45A,0x0000,0x0000,0x0000, +0xFBC0,0xA45B,0x0000,0x0000,0x0000, +0xFBC0,0xA45C,0x0000,0x0000,0x0000, +0xFBC0,0xA45D,0x0000,0x0000,0x0000, +0xFBC0,0xA45E,0x0000,0x0000,0x0000, +0xFBC0,0xA45F,0x0000,0x0000,0x0000, +0x0E2A,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0x0000,0x0000,0x0000,0x0000, +0x0E30,0x0000,0x0000,0x0000,0x0000, +0x0E31,0x0000,0x0000,0x0000,0x0000, +0x0E32,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E29,0x0000,0x0000,0x0000, +0x0E2A,0x0E2A,0x0000,0x0000,0x0000, +0x0E2A,0x0E2B,0x0000,0x0000,0x0000, +0x0E2A,0x0E2C,0x0000,0x0000,0x0000, +0x0E2A,0x0E2D,0x0000,0x0000,0x0000, +0x0E2A,0x0E2E,0x0000,0x0000,0x0000, +0x0E2A,0x0E2F,0x0000,0x0000,0x0000, +0x0E2A,0x0E30,0x0000,0x0000,0x0000, +0x0E2A,0x0E31,0x0000,0x0000,0x0000, +0x0E2A,0x0E32,0x0000,0x0000,0x0000, +0x0E2B,0x0E29,0x0000,0x0000,0x0000, +0x0288,0x0E2A,0x0289,0x0000,0x0000, +0x0288,0x0E2B,0x0289,0x0000,0x0000, +0x0288,0x0E2C,0x0289,0x0000,0x0000, +0x0288,0x0E2D,0x0289,0x0000,0x0000, +0x0288,0x0E2E,0x0289,0x0000,0x0000, +0x0288,0x0E2F,0x0289,0x0000,0x0000, +0x0288,0x0E30,0x0289,0x0000,0x0000, +0x0288,0x0E31,0x0289,0x0000,0x0000, +0x0288,0x0E32,0x0289,0x0000,0x0000, +0x0288,0x0E2A,0x0E29,0x0289,0x0000, +0x0288,0x0E2A,0x0E2A,0x0289,0x0000, +0x0288,0x0E2A,0x0E2B,0x0289,0x0000, +0x0288,0x0E2A,0x0E2C,0x0289,0x0000, +0x0288,0x0E2A,0x0E2D,0x0289,0x0000, +0x0288,0x0E2A,0x0E2E,0x0289,0x0000, +0x0288,0x0E2A,0x0E2F,0x0289,0x0000, +0x0288,0x0E2A,0x0E30,0x0289,0x0000, +0x0288,0x0E2A,0x0E31,0x0289,0x0000, +0x0288,0x0E2A,0x0E32,0x0289,0x0000, +0x0288,0x0E2B,0x0E29,0x0289,0x0000, +0x0E2A,0x025D,0x0000,0x0000,0x0000, +0x0E2B,0x025D,0x0000,0x0000,0x0000, +0x0E2C,0x025D,0x0000,0x0000,0x0000, +0x0E2D,0x025D,0x0000,0x0000,0x0000, +0x0E2E,0x025D,0x0000,0x0000,0x0000, +0x0E2F,0x025D,0x0000,0x0000,0x0000, +0x0E30,0x025D,0x0000,0x0000,0x0000, +0x0E31,0x025D,0x0000,0x0000,0x0000, +0x0E32,0x025D,0x0000,0x0000,0x0000, +0x0E2A,0x0E29,0x025D,0x0000,0x0000, +0x0E2A,0x0E2A,0x025D,0x0000,0x0000, +0x0E2A,0x0E2B,0x025D,0x0000,0x0000, +0x0E2A,0x0E2C,0x025D,0x0000,0x0000, +0x0E2A,0x0E2D,0x025D,0x0000,0x0000, +0x0E2A,0x0E2E,0x025D,0x0000,0x0000, +0x0E2A,0x0E2F,0x025D,0x0000,0x0000, +0x0E2A,0x0E30,0x025D,0x0000,0x0000, +0x0E2A,0x0E31,0x025D,0x0000,0x0000, +0x0E2A,0x0E32,0x025D,0x0000,0x0000, +0x0E2B,0x0E29,0x025D,0x0000,0x0000, +0x0288,0x0E33,0x0289,0x0000,0x0000, +0x0288,0x0E4A,0x0289,0x0000,0x0000, +0x0288,0x0E60,0x0289,0x0000,0x0000, +0x0288,0x0E6D,0x0289,0x0000,0x0000, +0x0288,0x0E8B,0x0289,0x0000,0x0000, +0x0288,0x0EB9,0x0289,0x0000,0x0000, +0x0288,0x0EC1,0x0289,0x0000,0x0000, +0x0288,0x0EE1,0x0289,0x0000,0x0000, +0x0288,0x0EFB,0x0289,0x0000,0x0000, +0x0288,0x0F10,0x0289,0x0000,0x0000, +0x0288,0x0F21,0x0289,0x0000,0x0000, +0x0288,0x0F2E,0x0289,0x0000,0x0000, +0x0288,0x0F5B,0x0289,0x0000,0x0000, +0x0288,0x0F64,0x0289,0x0000,0x0000, +0x0288,0x0F82,0x0289,0x0000,0x0000, +0x0288,0x0FA7,0x0289,0x0000,0x0000, +0x0288,0x0FB4,0x0289,0x0000,0x0000, +0x0288,0x0FC0,0x0289,0x0000,0x0000, +0x0288,0x0FEA,0x0289,0x0000,0x0000, +0x0288,0x1002,0x0289,0x0000,0x0000, +0x0288,0x101F,0x0289,0x0000,0x0000, +0x0288,0x1044,0x0289,0x0000,0x0000, +0x0288,0x1051,0x0289,0x0000,0x0000, +0x0288,0x105A,0x0289,0x0000,0x0000, +0x0288,0x105E,0x0289,0x0000,0x0000, +0x0288,0x106A,0x0289,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000,0x0000, +0x0E4A,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000,0x0000, +0x0EB9,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0F10,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0000,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0000,0x0000,0x0000,0x0000, +0x0FB4,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000,0x0000, +0x0FEA,0x0000,0x0000,0x0000,0x0000, +0x1002,0x0000,0x0000,0x0000,0x0000, +0x101F,0x0000,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000,0x0000, +0x1051,0x0000,0x0000,0x0000,0x0000, +0x105A,0x0000,0x0000,0x0000,0x0000, +0x105E,0x0000,0x0000,0x0000,0x0000, +0x106A,0x0000,0x0000,0x0000,0x0000, +0x0E33,0x0000,0x0000,0x0000,0x0000, +0x0E4A,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x0000,0x0000,0x0000,0x0000, +0x0EB9,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0000,0x0000,0x0000,0x0000, +0x0F10,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0000,0x0000,0x0000,0x0000, +0x0F82,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0000,0x0000,0x0000,0x0000, +0x0FB4,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0000,0x0000,0x0000,0x0000, +0x0FEA,0x0000,0x0000,0x0000,0x0000, +0x1002,0x0000,0x0000,0x0000,0x0000, +0x101F,0x0000,0x0000,0x0000,0x0000, +0x1044,0x0000,0x0000,0x0000,0x0000, +0x1051,0x0000,0x0000,0x0000,0x0000, +0x105A,0x0000,0x0000,0x0000,0x0000, +0x105E,0x0000,0x0000,0x0000,0x0000, +0x106A,0x0000,0x0000,0x0000,0x0000, +0x0E29,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2A,0x0000,0x0000,0x0000, +0x0E2A,0x0E2B,0x0000,0x0000,0x0000, +0x0E2A,0x0E2C,0x0000,0x0000,0x0000, +0x0E2A,0x0E2D,0x0000,0x0000,0x0000, +0x0E2A,0x0E2E,0x0000,0x0000,0x0000, +0x0E2A,0x0E2F,0x0000,0x0000,0x0000, +0x0E2A,0x0E30,0x0000,0x0000,0x0000, +0x0E2A,0x0E31,0x0000,0x0000,0x0000, +0x0E2A,0x0E32,0x0000,0x0000,0x0000, +0x0E2B,0x0E29,0x0000,0x0000,0x0000, +0x0E2A,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0x0000,0x0000,0x0000,0x0000, +0x0E30,0x0000,0x0000,0x0000,0x0000, +0x0E31,0x0000,0x0000,0x0000,0x0000, +0x0E32,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E29,0x0000,0x0000,0x0000, +0x0E29,0x0000,0x0000,0x0000,0x0000 +}; + +uint16 page025data[]= { /* 2500 (2 weights per char) */ +0x05FC,0x0000, 0x05FD,0x0000, 0x05FE,0x0000, 0x05FF,0x0000, +0x0600,0x0000, 0x0601,0x0000, 0x0602,0x0000, 0x0603,0x0000, +0x0604,0x0000, 0x0605,0x0000, 0x0606,0x0000, 0x0607,0x0000, +0x0608,0x0000, 0x0609,0x0000, 0x060A,0x0000, 0x060B,0x0000, +0x060C,0x0000, 0x060D,0x0000, 0x060E,0x0000, 0x060F,0x0000, +0x0610,0x0000, 0x0611,0x0000, 0x0612,0x0000, 0x0613,0x0000, +0x0614,0x0000, 0x0615,0x0000, 0x0616,0x0000, 0x0617,0x0000, +0x0618,0x0000, 0x0619,0x0000, 0x061A,0x0000, 0x061B,0x0000, +0x061C,0x0000, 0x061D,0x0000, 0x061E,0x0000, 0x061F,0x0000, +0x0620,0x0000, 0x0621,0x0000, 0x0622,0x0000, 0x0623,0x0000, +0x0624,0x0000, 0x0625,0x0000, 0x0626,0x0000, 0x0627,0x0000, +0x0628,0x0000, 0x0629,0x0000, 0x062A,0x0000, 0x062B,0x0000, +0x062C,0x0000, 0x062D,0x0000, 0x062E,0x0000, 0x062F,0x0000, +0x0630,0x0000, 0x0631,0x0000, 0x0632,0x0000, 0x0633,0x0000, +0x0634,0x0000, 0x0635,0x0000, 0x0636,0x0000, 0x0637,0x0000, +0x0638,0x0000, 0x0639,0x0000, 0x063A,0x0000, 0x063B,0x0000, +0x063C,0x0000, 0x063D,0x0000, 0x063E,0x0000, 0x063F,0x0000, +0x0640,0x0000, 0x0641,0x0000, 0x0642,0x0000, 0x0643,0x0000, +0x0644,0x0000, 0x0645,0x0000, 0x0646,0x0000, 0x0647,0x0000, +0x0648,0x0000, 0x0649,0x0000, 0x064A,0x0000, 0x064B,0x0000, +0x064C,0x0000, 0x064D,0x0000, 0x064E,0x0000, 0x064F,0x0000, +0x0650,0x0000, 0x0651,0x0000, 0x0652,0x0000, 0x0653,0x0000, +0x0654,0x0000, 0x0655,0x0000, 0x0656,0x0000, 0x0657,0x0000, +0x0658,0x0000, 0x0659,0x0000, 0x065A,0x0000, 0x065B,0x0000, +0x065C,0x0000, 0x065D,0x0000, 0x065E,0x0000, 0x065F,0x0000, +0x0660,0x0000, 0x0661,0x0000, 0x0662,0x0000, 0x0663,0x0000, +0x0664,0x0000, 0x0665,0x0000, 0x0666,0x0000, 0x0667,0x0000, +0x0668,0x0000, 0x0669,0x0000, 0x066A,0x0000, 0x066B,0x0000, +0x066C,0x0000, 0x066D,0x0000, 0x066E,0x0000, 0x066F,0x0000, +0x0670,0x0000, 0x0671,0x0000, 0x0672,0x0000, 0x0673,0x0000, +0x0674,0x0000, 0x0675,0x0000, 0x0676,0x0000, 0x0677,0x0000, +0x0678,0x0000, 0x0679,0x0000, 0x067A,0x0000, 0x067B,0x0000, +0x067C,0x0000, 0x067D,0x0000, 0x067E,0x0000, 0x067F,0x0000, +0x0680,0x0000, 0x0681,0x0000, 0x0682,0x0000, 0x0683,0x0000, +0x0684,0x0000, 0x0685,0x0000, 0x0686,0x0000, 0x0687,0x0000, +0x0688,0x0000, 0x0689,0x0000, 0x068A,0x0000, 0x068B,0x0000, +0x068C,0x0000, 0x068D,0x0000, 0x068E,0x0000, 0x068F,0x0000, +0x0690,0x0000, 0x0691,0x0000, 0x0692,0x0000, 0x0693,0x0000, +0x0694,0x0000, 0x0695,0x0000, 0x0696,0x0000, 0x0697,0x0000, +0x0698,0x0000, 0x0699,0x0000, 0x069A,0x0000, 0x069B,0x0000, +0x069C,0x0000, 0x069D,0x0000, 0x069E,0x0000, 0x069F,0x0000, +0x06A0,0x0000, 0x06A1,0x0000, 0x06A2,0x0000, 0x06A3,0x0000, +0x06A4,0x0000, 0x06A5,0x0000, 0x06A6,0x0000, 0x06A7,0x0000, +0x06A8,0x0000, 0x06A9,0x0000, 0x06AA,0x0000, 0x06AB,0x0000, +0x06AC,0x0000, 0x06AD,0x0000, 0x06AE,0x0000, 0x06AF,0x0000, +0x06B0,0x0000, 0x06B1,0x0000, 0x06B2,0x0000, 0x06B3,0x0000, +0x06B4,0x0000, 0x06B5,0x0000, 0x06B6,0x0000, 0x06B7,0x0000, +0x06B8,0x0000, 0x06B9,0x0000, 0x06BA,0x0000, 0x06BB,0x0000, +0x06BC,0x0000, 0x06BD,0x0000, 0x06BE,0x0000, 0x06BF,0x0000, +0x06C0,0x0000, 0x06C1,0x0000, 0x06C2,0x0000, 0x06C3,0x0000, +0x06C4,0x0000, 0x06C5,0x0000, 0x06C6,0x0000, 0x06C7,0x0000, +0x06C8,0x0000, 0x06C9,0x0000, 0x06CA,0x0000, 0x06CB,0x0000, +0x06CC,0x0000, 0x06CD,0x0000, 0x06CE,0x0000, 0x06CF,0x0000, +0x06D0,0x0000, 0x06D1,0x0000, 0x06D2,0x0000, 0x06D3,0x0000, +0x06D4,0x0000, 0x06D5,0x0000, 0x06D6,0x0000, 0x06D7,0x0000, +0x06D8,0x0000, 0x06D9,0x0000, 0x06DA,0x0000, 0x06DB,0x0000, +0x06DC,0x0000, 0x06DD,0x0000, 0x06DE,0x0000, 0x06DF,0x0000, +0x06E0,0x0000, 0x06E1,0x0000, 0x06E2,0x0000, 0x06E3,0x0000, +0x06E4,0x0000, 0x06E5,0x0000, 0x06E6,0x0000, 0x06E7,0x0000, +0x06E8,0x0000, 0x06E9,0x0000, 0x06EA,0x0000, 0x06EB,0x0000, +0x06EC,0x0000, 0x06ED,0x0000, 0x06EE,0x0000, 0x06EF,0x0000, +0x06F0,0x0000, 0x06F1,0x0000, 0x06F2,0x0000, 0x06F3,0x0000, +0x06F4,0x0000, 0x06F5,0x0000, 0x06F6,0x0000, 0x06F7,0x0000, +0x06F8,0x0000, 0x06F9,0x0000, 0x06FA,0x0000, 0x06FB,0x0000 +}; + +uint16 page026data[]= { /* 2600 (3 weights per char) */ +0x06FC,0x0000,0x0000, 0x06FD,0x0000,0x0000, 0x06FE,0x0000,0x0000, +0x06FF,0x0000,0x0000, 0x0700,0x0000,0x0000, 0x0701,0x0000,0x0000, +0x0702,0x0000,0x0000, 0x0703,0x0000,0x0000, 0x0704,0x0000,0x0000, +0x0705,0x0000,0x0000, 0x0706,0x0000,0x0000, 0x0707,0x0000,0x0000, +0x0708,0x0000,0x0000, 0x0709,0x0000,0x0000, 0x070A,0x0000,0x0000, +0x070B,0x0000,0x0000, 0x070C,0x0000,0x0000, 0x070D,0x0000,0x0000, +0x070E,0x0000,0x0000, 0x070F,0x0000,0x0000, 0x0710,0x0000,0x0000, +0x0711,0x0000,0x0000, 0x0712,0x0000,0x0000, 0x0713,0x0000,0x0000, +0xFBC0,0xA618,0x0000, 0x0714,0x0000,0x0000, 0x0715,0x0000,0x0000, +0x0716,0x0000,0x0000, 0x0717,0x0000,0x0000, 0x0718,0x0000,0x0000, +0x0719,0x0000,0x0000, 0x071A,0x0000,0x0000, 0x071B,0x0000,0x0000, +0x071C,0x0000,0x0000, 0x071D,0x0000,0x0000, 0x071E,0x0000,0x0000, +0x071F,0x0000,0x0000, 0x0720,0x0000,0x0000, 0x0721,0x0000,0x0000, +0x0722,0x0000,0x0000, 0x0723,0x0000,0x0000, 0x0724,0x0000,0x0000, +0x0725,0x0000,0x0000, 0x0726,0x0000,0x0000, 0x0727,0x0000,0x0000, +0x0728,0x0000,0x0000, 0x0729,0x0000,0x0000, 0x072A,0x0000,0x0000, +0x0B2F,0x0000,0x0000, 0x0B30,0x0000,0x0000, 0x0B31,0x0000,0x0000, +0x0B32,0x0000,0x0000, 0x0B33,0x0000,0x0000, 0x0B34,0x0000,0x0000, +0x0B35,0x0000,0x0000, 0x0B36,0x0000,0x0000, 0x072B,0x0000,0x0000, +0x072C,0x0000,0x0000, 0x072D,0x0000,0x0000, 0x072E,0x0000,0x0000, +0x072F,0x0000,0x0000, 0x0730,0x0000,0x0000, 0x0731,0x0000,0x0000, +0x0732,0x0000,0x0000, 0x0733,0x0000,0x0000, 0x0734,0x0000,0x0000, +0x0735,0x0000,0x0000, 0x0736,0x0000,0x0000, 0x0737,0x0000,0x0000, +0x0738,0x0000,0x0000, 0x0739,0x0000,0x0000, 0x073A,0x0000,0x0000, +0x073B,0x0000,0x0000, 0x073C,0x0000,0x0000, 0x073D,0x0000,0x0000, +0x073E,0x0000,0x0000, 0x073F,0x0000,0x0000, 0x0740,0x0000,0x0000, +0x0741,0x0000,0x0000, 0x0742,0x0000,0x0000, 0x0743,0x0000,0x0000, +0x0744,0x0000,0x0000, 0x0745,0x0000,0x0000, 0x0746,0x0000,0x0000, +0x0747,0x0000,0x0000, 0x0748,0x0000,0x0000, 0x0749,0x0000,0x0000, +0x074A,0x0000,0x0000, 0x074B,0x0000,0x0000, 0x074C,0x0000,0x0000, +0x074D,0x0000,0x0000, 0x074E,0x0000,0x0000, 0x074F,0x0000,0x0000, +0x0750,0x0000,0x0000, 0x0751,0x0000,0x0000, 0x0752,0x0000,0x0000, +0x0753,0x0000,0x0000, 0x0754,0x0000,0x0000, 0x0755,0x0000,0x0000, +0x0756,0x0000,0x0000, 0x0757,0x0000,0x0000, 0x0758,0x0000,0x0000, +0x0759,0x0000,0x0000, 0x075A,0x0000,0x0000, 0x075B,0x0000,0x0000, +0x075C,0x0000,0x0000, 0x075D,0x0000,0x0000, 0x075E,0x0000,0x0000, +0x075F,0x0000,0x0000, 0x0D2B,0x0000,0x0000, 0x0D2C,0x0000,0x0000, +0x0D2D,0x0000,0x0000, 0x0760,0x0000,0x0000, 0x0761,0x0000,0x0000, +0x0762,0x0000,0x0000, 0x0763,0x0000,0x0000, 0x0764,0x0000,0x0000, +0x0765,0x0000,0x0000, 0x0766,0x0000,0x0000, 0x0767,0x0000,0x0000, +0x0768,0x0000,0x0000, 0x0769,0x0000,0x0000, 0x076A,0x0000,0x0000, +0x076B,0x0000,0x0000, 0x076C,0x0000,0x0000, 0x076D,0x0000,0x0000, +0xFBC0,0xA67E,0x0000, 0xFBC0,0xA67F,0x0000, 0x076E,0x0000,0x0000, +0x076F,0x0000,0x0000, 0x0770,0x0000,0x0000, 0x0771,0x0000,0x0000, +0x0772,0x0000,0x0000, 0x0773,0x0000,0x0000, 0x0774,0x0000,0x0000, +0x0775,0x0000,0x0000, 0x0776,0x0000,0x0000, 0x0777,0x0000,0x0000, +0x0B29,0x0000,0x0000, 0x0B2A,0x0000,0x0000, 0x0B2B,0x0000,0x0000, +0x0B2C,0x0000,0x0000, 0x0B2D,0x0000,0x0000, 0x0B2E,0x0000,0x0000, +0x0778,0x0000,0x0000, 0x0779,0x0000,0x0000, 0xFBC0,0xA692,0x0000, +0xFBC0,0xA693,0x0000, 0xFBC0,0xA694,0x0000, 0xFBC0,0xA695,0x0000, +0xFBC0,0xA696,0x0000, 0xFBC0,0xA697,0x0000, 0xFBC0,0xA698,0x0000, +0xFBC0,0xA699,0x0000, 0xFBC0,0xA69A,0x0000, 0xFBC0,0xA69B,0x0000, +0xFBC0,0xA69C,0x0000, 0xFBC0,0xA69D,0x0000, 0xFBC0,0xA69E,0x0000, +0xFBC0,0xA69F,0x0000, 0x077A,0x0000,0x0000, 0x077B,0x0000,0x0000, +0xFBC0,0xA6A2,0x0000, 0xFBC0,0xA6A3,0x0000, 0xFBC0,0xA6A4,0x0000, +0xFBC0,0xA6A5,0x0000, 0xFBC0,0xA6A6,0x0000, 0xFBC0,0xA6A7,0x0000, +0xFBC0,0xA6A8,0x0000, 0xFBC0,0xA6A9,0x0000, 0xFBC0,0xA6AA,0x0000, +0xFBC0,0xA6AB,0x0000, 0xFBC0,0xA6AC,0x0000, 0xFBC0,0xA6AD,0x0000, +0xFBC0,0xA6AE,0x0000, 0xFBC0,0xA6AF,0x0000, 0xFBC0,0xA6B0,0x0000, +0xFBC0,0xA6B1,0x0000, 0xFBC0,0xA6B2,0x0000, 0xFBC0,0xA6B3,0x0000, +0xFBC0,0xA6B4,0x0000, 0xFBC0,0xA6B5,0x0000, 0xFBC0,0xA6B6,0x0000, +0xFBC0,0xA6B7,0x0000, 0xFBC0,0xA6B8,0x0000, 0xFBC0,0xA6B9,0x0000, +0xFBC0,0xA6BA,0x0000, 0xFBC0,0xA6BB,0x0000, 0xFBC0,0xA6BC,0x0000, +0xFBC0,0xA6BD,0x0000, 0xFBC0,0xA6BE,0x0000, 0xFBC0,0xA6BF,0x0000, +0xFBC0,0xA6C0,0x0000, 0xFBC0,0xA6C1,0x0000, 0xFBC0,0xA6C2,0x0000, +0xFBC0,0xA6C3,0x0000, 0xFBC0,0xA6C4,0x0000, 0xFBC0,0xA6C5,0x0000, +0xFBC0,0xA6C6,0x0000, 0xFBC0,0xA6C7,0x0000, 0xFBC0,0xA6C8,0x0000, +0xFBC0,0xA6C9,0x0000, 0xFBC0,0xA6CA,0x0000, 0xFBC0,0xA6CB,0x0000, +0xFBC0,0xA6CC,0x0000, 0xFBC0,0xA6CD,0x0000, 0xFBC0,0xA6CE,0x0000, +0xFBC0,0xA6CF,0x0000, 0xFBC0,0xA6D0,0x0000, 0xFBC0,0xA6D1,0x0000, +0xFBC0,0xA6D2,0x0000, 0xFBC0,0xA6D3,0x0000, 0xFBC0,0xA6D4,0x0000, +0xFBC0,0xA6D5,0x0000, 0xFBC0,0xA6D6,0x0000, 0xFBC0,0xA6D7,0x0000, +0xFBC0,0xA6D8,0x0000, 0xFBC0,0xA6D9,0x0000, 0xFBC0,0xA6DA,0x0000, +0xFBC0,0xA6DB,0x0000, 0xFBC0,0xA6DC,0x0000, 0xFBC0,0xA6DD,0x0000, +0xFBC0,0xA6DE,0x0000, 0xFBC0,0xA6DF,0x0000, 0xFBC0,0xA6E0,0x0000, +0xFBC0,0xA6E1,0x0000, 0xFBC0,0xA6E2,0x0000, 0xFBC0,0xA6E3,0x0000, +0xFBC0,0xA6E4,0x0000, 0xFBC0,0xA6E5,0x0000, 0xFBC0,0xA6E6,0x0000, +0xFBC0,0xA6E7,0x0000, 0xFBC0,0xA6E8,0x0000, 0xFBC0,0xA6E9,0x0000, +0xFBC0,0xA6EA,0x0000, 0xFBC0,0xA6EB,0x0000, 0xFBC0,0xA6EC,0x0000, +0xFBC0,0xA6ED,0x0000, 0xFBC0,0xA6EE,0x0000, 0xFBC0,0xA6EF,0x0000, +0xFBC0,0xA6F0,0x0000, 0xFBC0,0xA6F1,0x0000, 0xFBC0,0xA6F2,0x0000, +0xFBC0,0xA6F3,0x0000, 0xFBC0,0xA6F4,0x0000, 0xFBC0,0xA6F5,0x0000, +0xFBC0,0xA6F6,0x0000, 0xFBC0,0xA6F7,0x0000, 0xFBC0,0xA6F8,0x0000, +0xFBC0,0xA6F9,0x0000, 0xFBC0,0xA6FA,0x0000, 0xFBC0,0xA6FB,0x0000, +0xFBC0,0xA6FC,0x0000, 0xFBC0,0xA6FD,0x0000, 0xFBC0,0xA6FE,0x0000, +0xFBC0,0xA6FF,0x0000 }; + +uint16 page027data[]= { /* 2700 (3 weights per char) */ +0xFBC0,0xA700,0x0000, 0x077C,0x0000,0x0000, 0x077D,0x0000,0x0000, +0x077E,0x0000,0x0000, 0x077F,0x0000,0x0000, 0xFBC0,0xA705,0x0000, +0x0780,0x0000,0x0000, 0x0781,0x0000,0x0000, 0x0782,0x0000,0x0000, +0x0783,0x0000,0x0000, 0xFBC0,0xA70A,0x0000, 0xFBC0,0xA70B,0x0000, +0x0784,0x0000,0x0000, 0x0785,0x0000,0x0000, 0x0786,0x0000,0x0000, +0x0787,0x0000,0x0000, 0x0788,0x0000,0x0000, 0x0789,0x0000,0x0000, +0x078A,0x0000,0x0000, 0x078B,0x0000,0x0000, 0x078C,0x0000,0x0000, +0x078D,0x0000,0x0000, 0x078E,0x0000,0x0000, 0x078F,0x0000,0x0000, +0x0790,0x0000,0x0000, 0x0791,0x0000,0x0000, 0x0792,0x0000,0x0000, +0x0793,0x0000,0x0000, 0x0794,0x0000,0x0000, 0x0795,0x0000,0x0000, +0x0796,0x0000,0x0000, 0x0797,0x0000,0x0000, 0x0798,0x0000,0x0000, +0x0799,0x0000,0x0000, 0x079A,0x0000,0x0000, 0x079B,0x0000,0x0000, +0x079C,0x0000,0x0000, 0x079D,0x0000,0x0000, 0x079E,0x0000,0x0000, +0x079F,0x0000,0x0000, 0xFBC0,0xA728,0x0000, 0x07A0,0x0000,0x0000, +0x07A1,0x0000,0x0000, 0x07A2,0x0000,0x0000, 0x07A3,0x0000,0x0000, +0x07A4,0x0000,0x0000, 0x07A5,0x0000,0x0000, 0x07A6,0x0000,0x0000, +0x07A7,0x0000,0x0000, 0x07A8,0x0000,0x0000, 0x07A9,0x0000,0x0000, +0x07AA,0x0000,0x0000, 0x07AB,0x0000,0x0000, 0x07AC,0x0000,0x0000, +0x07AD,0x0000,0x0000, 0x07AE,0x0000,0x0000, 0x07AF,0x0000,0x0000, +0x07B0,0x0000,0x0000, 0x07B1,0x0000,0x0000, 0x07B2,0x0000,0x0000, +0x07B3,0x0000,0x0000, 0x07B4,0x0000,0x0000, 0x07B5,0x0000,0x0000, +0x07B6,0x0000,0x0000, 0x07B7,0x0000,0x0000, 0x07B8,0x0000,0x0000, +0x07B9,0x0000,0x0000, 0x07BA,0x0000,0x0000, 0x07BB,0x0000,0x0000, +0x07BC,0x0000,0x0000, 0x07BD,0x0000,0x0000, 0x07BE,0x0000,0x0000, +0x07BF,0x0000,0x0000, 0x07C0,0x0000,0x0000, 0x07C1,0x0000,0x0000, +0x07C2,0x0000,0x0000, 0xFBC0,0xA74C,0x0000, 0x07C3,0x0000,0x0000, +0xFBC0,0xA74E,0x0000, 0x07C4,0x0000,0x0000, 0x07C5,0x0000,0x0000, +0x07C6,0x0000,0x0000, 0x07C7,0x0000,0x0000, 0xFBC0,0xA753,0x0000, +0xFBC0,0xA754,0x0000, 0xFBC0,0xA755,0x0000, 0x07C8,0x0000,0x0000, +0xFBC0,0xA757,0x0000, 0x07C9,0x0000,0x0000, 0x07CA,0x0000,0x0000, +0x07CB,0x0000,0x0000, 0x07CC,0x0000,0x0000, 0x07CD,0x0000,0x0000, +0x07CE,0x0000,0x0000, 0x07CF,0x0000,0x0000, 0xFBC0,0xA75F,0x0000, +0xFBC0,0xA760,0x0000, 0x07D0,0x0000,0x0000, 0x07D1,0x0000,0x0000, +0x07D2,0x0000,0x0000, 0x07D3,0x0000,0x0000, 0x07D4,0x0000,0x0000, +0x07D5,0x0000,0x0000, 0x07D6,0x0000,0x0000, 0x07D7,0x0000,0x0000, +0x07D8,0x0000,0x0000, 0x07D9,0x0000,0x0000, 0x07DA,0x0000,0x0000, +0x07DB,0x0000,0x0000, 0x07DC,0x0000,0x0000, 0x07DD,0x0000,0x0000, +0x07DE,0x0000,0x0000, 0x07DF,0x0000,0x0000, 0x07E0,0x0000,0x0000, +0x07E1,0x0000,0x0000, 0x07E2,0x0000,0x0000, 0x07E3,0x0000,0x0000, +0x07E4,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, +0x0E32,0x0000,0x0000, 0x0E2A,0x0E29,0x0000, 0x0E2A,0x0000,0x0000, +0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, +0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, +0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x0E2A,0x0E29,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x0E2A,0x0E29,0x0000, 0x07E5,0x0000,0x0000, 0xFBC0,0xA795,0x0000, +0xFBC0,0xA796,0x0000, 0xFBC0,0xA797,0x0000, 0x07E6,0x0000,0x0000, +0x07E7,0x0000,0x0000, 0x07E8,0x0000,0x0000, 0x07E9,0x0000,0x0000, +0x07EA,0x0000,0x0000, 0x07EB,0x0000,0x0000, 0x07EC,0x0000,0x0000, +0x07ED,0x0000,0x0000, 0x07EE,0x0000,0x0000, 0x07EF,0x0000,0x0000, +0x07F0,0x0000,0x0000, 0x07F1,0x0000,0x0000, 0x07F2,0x0000,0x0000, +0x07F3,0x0000,0x0000, 0x07F4,0x0000,0x0000, 0x07F5,0x0000,0x0000, +0x07F6,0x0000,0x0000, 0x07F7,0x0000,0x0000, 0x07F8,0x0000,0x0000, +0x07F9,0x0000,0x0000, 0x07FA,0x0000,0x0000, 0x07FB,0x0000,0x0000, +0x07FC,0x0000,0x0000, 0x07FD,0x0000,0x0000, 0xFBC0,0xA7B0,0x0000, +0x07FE,0x0000,0x0000, 0x07FF,0x0000,0x0000, 0x0800,0x0000,0x0000, +0x0801,0x0000,0x0000, 0x0802,0x0000,0x0000, 0x0803,0x0000,0x0000, +0x0804,0x0000,0x0000, 0x0805,0x0000,0x0000, 0x0806,0x0000,0x0000, +0x0807,0x0000,0x0000, 0x0808,0x0000,0x0000, 0x0809,0x0000,0x0000, +0x080A,0x0000,0x0000, 0x080B,0x0000,0x0000, 0xFBC0,0xA7BF,0x0000, +0xFBC0,0xA7C0,0x0000, 0xFBC0,0xA7C1,0x0000, 0xFBC0,0xA7C2,0x0000, +0xFBC0,0xA7C3,0x0000, 0xFBC0,0xA7C4,0x0000, 0xFBC0,0xA7C5,0x0000, +0xFBC0,0xA7C6,0x0000, 0xFBC0,0xA7C7,0x0000, 0xFBC0,0xA7C8,0x0000, +0xFBC0,0xA7C9,0x0000, 0xFBC0,0xA7CA,0x0000, 0xFBC0,0xA7CB,0x0000, +0xFBC0,0xA7CC,0x0000, 0xFBC0,0xA7CD,0x0000, 0xFBC0,0xA7CE,0x0000, +0xFBC0,0xA7CF,0x0000, 0x080C,0x0000,0x0000, 0x080D,0x0000,0x0000, +0x080E,0x0000,0x0000, 0x080F,0x0000,0x0000, 0x0810,0x0000,0x0000, +0x0811,0x0000,0x0000, 0x0812,0x0000,0x0000, 0x0813,0x0000,0x0000, +0x0814,0x0000,0x0000, 0x0815,0x0000,0x0000, 0x0816,0x0000,0x0000, +0x0817,0x0000,0x0000, 0x0818,0x0000,0x0000, 0x0819,0x0000,0x0000, +0x081A,0x0000,0x0000, 0x081B,0x0000,0x0000, 0x081C,0x0000,0x0000, +0x081D,0x0000,0x0000, 0x081E,0x0000,0x0000, 0x081F,0x0000,0x0000, +0x0820,0x0000,0x0000, 0x0821,0x0000,0x0000, 0x0822,0x0000,0x0000, +0x0823,0x0000,0x0000, 0x0824,0x0000,0x0000, 0x0825,0x0000,0x0000, +0x0826,0x0000,0x0000, 0x0827,0x0000,0x0000, 0xFBC0,0xA7EC,0x0000, +0xFBC0,0xA7ED,0x0000, 0xFBC0,0xA7EE,0x0000, 0xFBC0,0xA7EF,0x0000, +0x0828,0x0000,0x0000, 0x0829,0x0000,0x0000, 0x082A,0x0000,0x0000, +0x082B,0x0000,0x0000, 0x082C,0x0000,0x0000, 0x082D,0x0000,0x0000, +0x082E,0x0000,0x0000, 0x082F,0x0000,0x0000, 0x0830,0x0000,0x0000, +0x0831,0x0000,0x0000, 0x0832,0x0000,0x0000, 0x0833,0x0000,0x0000, +0x0834,0x0000,0x0000, 0x0835,0x0000,0x0000, 0x0836,0x0000,0x0000, +0x0837,0x0000,0x0000 }; + +uint16 page028data[]= { /* 2800 (2 weights per char) */ +0x0A29,0x0000, 0x0A2A,0x0000, 0x0A2B,0x0000, 0x0A2C,0x0000, +0x0A2D,0x0000, 0x0A2E,0x0000, 0x0A2F,0x0000, 0x0A30,0x0000, +0x0A31,0x0000, 0x0A32,0x0000, 0x0A33,0x0000, 0x0A34,0x0000, +0x0A35,0x0000, 0x0A36,0x0000, 0x0A37,0x0000, 0x0A38,0x0000, +0x0A39,0x0000, 0x0A3A,0x0000, 0x0A3B,0x0000, 0x0A3C,0x0000, +0x0A3D,0x0000, 0x0A3E,0x0000, 0x0A3F,0x0000, 0x0A40,0x0000, +0x0A41,0x0000, 0x0A42,0x0000, 0x0A43,0x0000, 0x0A44,0x0000, +0x0A45,0x0000, 0x0A46,0x0000, 0x0A47,0x0000, 0x0A48,0x0000, +0x0A49,0x0000, 0x0A4A,0x0000, 0x0A4B,0x0000, 0x0A4C,0x0000, +0x0A4D,0x0000, 0x0A4E,0x0000, 0x0A4F,0x0000, 0x0A50,0x0000, +0x0A51,0x0000, 0x0A52,0x0000, 0x0A53,0x0000, 0x0A54,0x0000, +0x0A55,0x0000, 0x0A56,0x0000, 0x0A57,0x0000, 0x0A58,0x0000, +0x0A59,0x0000, 0x0A5A,0x0000, 0x0A5B,0x0000, 0x0A5C,0x0000, +0x0A5D,0x0000, 0x0A5E,0x0000, 0x0A5F,0x0000, 0x0A60,0x0000, +0x0A61,0x0000, 0x0A62,0x0000, 0x0A63,0x0000, 0x0A64,0x0000, +0x0A65,0x0000, 0x0A66,0x0000, 0x0A67,0x0000, 0x0A68,0x0000, +0x0A69,0x0000, 0x0A6A,0x0000, 0x0A6B,0x0000, 0x0A6C,0x0000, +0x0A6D,0x0000, 0x0A6E,0x0000, 0x0A6F,0x0000, 0x0A70,0x0000, +0x0A71,0x0000, 0x0A72,0x0000, 0x0A73,0x0000, 0x0A74,0x0000, +0x0A75,0x0000, 0x0A76,0x0000, 0x0A77,0x0000, 0x0A78,0x0000, +0x0A79,0x0000, 0x0A7A,0x0000, 0x0A7B,0x0000, 0x0A7C,0x0000, +0x0A7D,0x0000, 0x0A7E,0x0000, 0x0A7F,0x0000, 0x0A80,0x0000, +0x0A81,0x0000, 0x0A82,0x0000, 0x0A83,0x0000, 0x0A84,0x0000, +0x0A85,0x0000, 0x0A86,0x0000, 0x0A87,0x0000, 0x0A88,0x0000, +0x0A89,0x0000, 0x0A8A,0x0000, 0x0A8B,0x0000, 0x0A8C,0x0000, +0x0A8D,0x0000, 0x0A8E,0x0000, 0x0A8F,0x0000, 0x0A90,0x0000, +0x0A91,0x0000, 0x0A92,0x0000, 0x0A93,0x0000, 0x0A94,0x0000, +0x0A95,0x0000, 0x0A96,0x0000, 0x0A97,0x0000, 0x0A98,0x0000, +0x0A99,0x0000, 0x0A9A,0x0000, 0x0A9B,0x0000, 0x0A9C,0x0000, +0x0A9D,0x0000, 0x0A9E,0x0000, 0x0A9F,0x0000, 0x0AA0,0x0000, +0x0AA1,0x0000, 0x0AA2,0x0000, 0x0AA3,0x0000, 0x0AA4,0x0000, +0x0AA5,0x0000, 0x0AA6,0x0000, 0x0AA7,0x0000, 0x0AA8,0x0000, +0x0AA9,0x0000, 0x0AAA,0x0000, 0x0AAB,0x0000, 0x0AAC,0x0000, +0x0AAD,0x0000, 0x0AAE,0x0000, 0x0AAF,0x0000, 0x0AB0,0x0000, +0x0AB1,0x0000, 0x0AB2,0x0000, 0x0AB3,0x0000, 0x0AB4,0x0000, +0x0AB5,0x0000, 0x0AB6,0x0000, 0x0AB7,0x0000, 0x0AB8,0x0000, +0x0AB9,0x0000, 0x0ABA,0x0000, 0x0ABB,0x0000, 0x0ABC,0x0000, +0x0ABD,0x0000, 0x0ABE,0x0000, 0x0ABF,0x0000, 0x0AC0,0x0000, +0x0AC1,0x0000, 0x0AC2,0x0000, 0x0AC3,0x0000, 0x0AC4,0x0000, +0x0AC5,0x0000, 0x0AC6,0x0000, 0x0AC7,0x0000, 0x0AC8,0x0000, +0x0AC9,0x0000, 0x0ACA,0x0000, 0x0ACB,0x0000, 0x0ACC,0x0000, +0x0ACD,0x0000, 0x0ACE,0x0000, 0x0ACF,0x0000, 0x0AD0,0x0000, +0x0AD1,0x0000, 0x0AD2,0x0000, 0x0AD3,0x0000, 0x0AD4,0x0000, +0x0AD5,0x0000, 0x0AD6,0x0000, 0x0AD7,0x0000, 0x0AD8,0x0000, +0x0AD9,0x0000, 0x0ADA,0x0000, 0x0ADB,0x0000, 0x0ADC,0x0000, +0x0ADD,0x0000, 0x0ADE,0x0000, 0x0ADF,0x0000, 0x0AE0,0x0000, +0x0AE1,0x0000, 0x0AE2,0x0000, 0x0AE3,0x0000, 0x0AE4,0x0000, +0x0AE5,0x0000, 0x0AE6,0x0000, 0x0AE7,0x0000, 0x0AE8,0x0000, +0x0AE9,0x0000, 0x0AEA,0x0000, 0x0AEB,0x0000, 0x0AEC,0x0000, +0x0AED,0x0000, 0x0AEE,0x0000, 0x0AEF,0x0000, 0x0AF0,0x0000, +0x0AF1,0x0000, 0x0AF2,0x0000, 0x0AF3,0x0000, 0x0AF4,0x0000, +0x0AF5,0x0000, 0x0AF6,0x0000, 0x0AF7,0x0000, 0x0AF8,0x0000, +0x0AF9,0x0000, 0x0AFA,0x0000, 0x0AFB,0x0000, 0x0AFC,0x0000, +0x0AFD,0x0000, 0x0AFE,0x0000, 0x0AFF,0x0000, 0x0B00,0x0000, +0x0B01,0x0000, 0x0B02,0x0000, 0x0B03,0x0000, 0x0B04,0x0000, +0x0B05,0x0000, 0x0B06,0x0000, 0x0B07,0x0000, 0x0B08,0x0000, +0x0B09,0x0000, 0x0B0A,0x0000, 0x0B0B,0x0000, 0x0B0C,0x0000, +0x0B0D,0x0000, 0x0B0E,0x0000, 0x0B0F,0x0000, 0x0B10,0x0000, +0x0B11,0x0000, 0x0B12,0x0000, 0x0B13,0x0000, 0x0B14,0x0000, +0x0B15,0x0000, 0x0B16,0x0000, 0x0B17,0x0000, 0x0B18,0x0000, +0x0B19,0x0000, 0x0B1A,0x0000, 0x0B1B,0x0000, 0x0B1C,0x0000, +0x0B1D,0x0000, 0x0B1E,0x0000, 0x0B1F,0x0000, 0x0B20,0x0000, +0x0B21,0x0000, 0x0B22,0x0000, 0x0B23,0x0000, 0x0B24,0x0000, +0x0B25,0x0000, 0x0B26,0x0000, 0x0B27,0x0000, 0x0B28,0x0000 +}; + +uint16 page029data[]= { /* 2900 (2 weights per char) */ +0x0838,0x0000, 0x0839,0x0000, 0x083A,0x0000, 0x083B,0x0000, +0x083C,0x0000, 0x083D,0x0000, 0x083E,0x0000, 0x083F,0x0000, +0x0840,0x0000, 0x0841,0x0000, 0x0842,0x0000, 0x0843,0x0000, +0x0844,0x0000, 0x0845,0x0000, 0x0846,0x0000, 0x0847,0x0000, +0x0848,0x0000, 0x0849,0x0000, 0x084A,0x0000, 0x084B,0x0000, +0x084C,0x0000, 0x084D,0x0000, 0x084E,0x0000, 0x084F,0x0000, +0x0850,0x0000, 0x0851,0x0000, 0x0852,0x0000, 0x0853,0x0000, +0x0854,0x0000, 0x0855,0x0000, 0x0856,0x0000, 0x0857,0x0000, +0x0858,0x0000, 0x0859,0x0000, 0x085A,0x0000, 0x085B,0x0000, +0x085C,0x0000, 0x085D,0x0000, 0x085E,0x0000, 0x085F,0x0000, +0x0860,0x0000, 0x0861,0x0000, 0x0862,0x0000, 0x0863,0x0000, +0x0864,0x0000, 0x0865,0x0000, 0x0866,0x0000, 0x0867,0x0000, +0x0868,0x0000, 0x0869,0x0000, 0x086A,0x0000, 0x086B,0x0000, +0x086C,0x0000, 0x086D,0x0000, 0x086E,0x0000, 0x086F,0x0000, +0x0870,0x0000, 0x0871,0x0000, 0x0872,0x0000, 0x0873,0x0000, +0x0874,0x0000, 0x0875,0x0000, 0x0876,0x0000, 0x0877,0x0000, +0x0878,0x0000, 0x0879,0x0000, 0x087A,0x0000, 0x087B,0x0000, +0x087C,0x0000, 0x087D,0x0000, 0x087E,0x0000, 0x087F,0x0000, +0x0880,0x0000, 0x0881,0x0000, 0x0882,0x0000, 0x0883,0x0000, +0x0884,0x0000, 0x0885,0x0000, 0x0886,0x0000, 0x0887,0x0000, +0x0888,0x0000, 0x0889,0x0000, 0x088A,0x0000, 0x088B,0x0000, +0x088C,0x0000, 0x088D,0x0000, 0x088E,0x0000, 0x088F,0x0000, +0x0890,0x0000, 0x0891,0x0000, 0x0892,0x0000, 0x0893,0x0000, +0x0894,0x0000, 0x0895,0x0000, 0x0896,0x0000, 0x0897,0x0000, +0x0898,0x0000, 0x0899,0x0000, 0x089A,0x0000, 0x089B,0x0000, +0x089C,0x0000, 0x089D,0x0000, 0x089E,0x0000, 0x089F,0x0000, +0x08A0,0x0000, 0x08A1,0x0000, 0x08A2,0x0000, 0x08A3,0x0000, +0x08A4,0x0000, 0x08A5,0x0000, 0x08A6,0x0000, 0x08A7,0x0000, +0x08A8,0x0000, 0x08A9,0x0000, 0x08AA,0x0000, 0x08AB,0x0000, +0x08AC,0x0000, 0x08AD,0x0000, 0x08AE,0x0000, 0x08AF,0x0000, +0x08B0,0x0000, 0x08B1,0x0000, 0x08B2,0x0000, 0x08B3,0x0000, +0x08B4,0x0000, 0x08B5,0x0000, 0x08B6,0x0000, 0x08B7,0x0000, +0x08B8,0x0000, 0x08B9,0x0000, 0x08BA,0x0000, 0x0298,0x0000, +0x0299,0x0000, 0x029A,0x0000, 0x029B,0x0000, 0x029C,0x0000, +0x029D,0x0000, 0x029E,0x0000, 0x029F,0x0000, 0x02A0,0x0000, +0x02A1,0x0000, 0x02A2,0x0000, 0x02A3,0x0000, 0x02A4,0x0000, +0x02A5,0x0000, 0x02A6,0x0000, 0x02A7,0x0000, 0x02A8,0x0000, +0x02A9,0x0000, 0x02AA,0x0000, 0x02AB,0x0000, 0x02AC,0x0000, +0x02AD,0x0000, 0x08BB,0x0000, 0x08BC,0x0000, 0x08BD,0x0000, +0x08BE,0x0000, 0x08BF,0x0000, 0x08C0,0x0000, 0x08C1,0x0000, +0x08C2,0x0000, 0x08C3,0x0000, 0x08C4,0x0000, 0x08C5,0x0000, +0x08C6,0x0000, 0x08C7,0x0000, 0x08C8,0x0000, 0x08C9,0x0000, +0x08CA,0x0000, 0x08CB,0x0000, 0x08CC,0x0000, 0x08CD,0x0000, +0x08CE,0x0000, 0x08CF,0x0000, 0x08D0,0x0000, 0x08D1,0x0000, +0x08D2,0x0000, 0x08D3,0x0000, 0x08D4,0x0000, 0x08D5,0x0000, +0x08D6,0x0000, 0x08D7,0x0000, 0x08D8,0x0000, 0x08D9,0x0000, +0x08DA,0x0000, 0x08DB,0x0000, 0x08DC,0x0000, 0x08DD,0x0000, +0x08DE,0x0000, 0x08DF,0x0000, 0x08E0,0x0000, 0x08E1,0x0000, +0x08E2,0x0000, 0x08E3,0x0000, 0x08E4,0x0000, 0x08E5,0x0000, +0x08E6,0x0000, 0x08E7,0x0000, 0x08E8,0x0000, 0x08E9,0x0000, +0x08EA,0x0000, 0x08EB,0x0000, 0x08EC,0x0000, 0x08ED,0x0000, +0x08EE,0x0000, 0x08EF,0x0000, 0x08F0,0x0000, 0x08F1,0x0000, +0x08F2,0x0000, 0x08F3,0x0000, 0x08F4,0x0000, 0x08F5,0x0000, +0x08F6,0x0000, 0x08F7,0x0000, 0x08F8,0x0000, 0x08F9,0x0000, +0x08FA,0x0000, 0x08FB,0x0000, 0x08FC,0x0000, 0x08FD,0x0000, +0x08FE,0x0000, 0x08FF,0x0000, 0x0900,0x0000, 0x0901,0x0000, +0x0902,0x0000, 0x0903,0x0000, 0x0904,0x0000, 0x0905,0x0000, +0x0906,0x0000, 0x0907,0x0000, 0x0908,0x0000, 0x0909,0x0000, +0x090A,0x0000, 0x090B,0x0000, 0x090C,0x0000, 0x090D,0x0000, +0x090E,0x0000, 0x090F,0x0000, 0x0910,0x0000, 0x0911,0x0000, +0x0912,0x0000, 0x0913,0x0000, 0x0914,0x0000, 0x0915,0x0000, +0x0916,0x0000, 0x0917,0x0000, 0x0918,0x0000, 0x0919,0x0000, +0x091A,0x0000, 0x091B,0x0000, 0x091C,0x0000, 0x091D,0x0000, +0x0296,0x0000, 0x0297,0x0000, 0x091E,0x0000, 0x091F,0x0000 +}; + +uint16 page02Adata[]= { /* 2A00 (5 weights per char) */ +0x0920,0x0000,0x0000,0x0000,0x0000, +0x0921,0x0000,0x0000,0x0000,0x0000, +0x0922,0x0000,0x0000,0x0000,0x0000, +0x0923,0x0000,0x0000,0x0000,0x0000, +0x0924,0x0000,0x0000,0x0000,0x0000, +0x0925,0x0000,0x0000,0x0000,0x0000, +0x0926,0x0000,0x0000,0x0000,0x0000, +0x0927,0x0000,0x0000,0x0000,0x0000, +0x0928,0x0000,0x0000,0x0000,0x0000, +0x0929,0x0000,0x0000,0x0000,0x0000, +0x092A,0x0000,0x0000,0x0000,0x0000, +0x092B,0x0000,0x0000,0x0000,0x0000, +0x044B,0x044B,0x044B,0x044B,0x0000, +0x092C,0x0000,0x0000,0x0000,0x0000, +0x092D,0x0000,0x0000,0x0000,0x0000, +0x092E,0x0000,0x0000,0x0000,0x0000, +0x092F,0x0000,0x0000,0x0000,0x0000, +0x0930,0x0000,0x0000,0x0000,0x0000, +0x0931,0x0000,0x0000,0x0000,0x0000, +0x0932,0x0000,0x0000,0x0000,0x0000, +0x0933,0x0000,0x0000,0x0000,0x0000, +0x0934,0x0000,0x0000,0x0000,0x0000, +0x0935,0x0000,0x0000,0x0000,0x0000, +0x0936,0x0000,0x0000,0x0000,0x0000, +0x0937,0x0000,0x0000,0x0000,0x0000, +0x0938,0x0000,0x0000,0x0000,0x0000, +0x0939,0x0000,0x0000,0x0000,0x0000, +0x093A,0x0000,0x0000,0x0000,0x0000, +0x093B,0x0000,0x0000,0x0000,0x0000, +0x093C,0x0000,0x0000,0x0000,0x0000, +0x093D,0x0000,0x0000,0x0000,0x0000, +0x093E,0x0000,0x0000,0x0000,0x0000, +0x093F,0x0000,0x0000,0x0000,0x0000, +0x0940,0x0000,0x0000,0x0000,0x0000, +0x0941,0x0000,0x0000,0x0000,0x0000, +0x0942,0x0000,0x0000,0x0000,0x0000, +0x0943,0x0000,0x0000,0x0000,0x0000, +0x0944,0x0000,0x0000,0x0000,0x0000, +0x0945,0x0000,0x0000,0x0000,0x0000, +0x0946,0x0000,0x0000,0x0000,0x0000, +0x0947,0x0000,0x0000,0x0000,0x0000, +0x0948,0x0000,0x0000,0x0000,0x0000, +0x0949,0x0000,0x0000,0x0000,0x0000, +0x094A,0x0000,0x0000,0x0000,0x0000, +0x094B,0x0000,0x0000,0x0000,0x0000, +0x094C,0x0000,0x0000,0x0000,0x0000, +0x094D,0x0000,0x0000,0x0000,0x0000, +0x094E,0x0000,0x0000,0x0000,0x0000, +0x094F,0x0000,0x0000,0x0000,0x0000, +0x0950,0x0000,0x0000,0x0000,0x0000, +0x0951,0x0000,0x0000,0x0000,0x0000, +0x0952,0x0000,0x0000,0x0000,0x0000, +0x0953,0x0000,0x0000,0x0000,0x0000, +0x0954,0x0000,0x0000,0x0000,0x0000, +0x0955,0x0000,0x0000,0x0000,0x0000, +0x0956,0x0000,0x0000,0x0000,0x0000, +0x0957,0x0000,0x0000,0x0000,0x0000, +0x0958,0x0000,0x0000,0x0000,0x0000, +0x0959,0x0000,0x0000,0x0000,0x0000, +0x095A,0x0000,0x0000,0x0000,0x0000, +0x095B,0x0000,0x0000,0x0000,0x0000, +0x095C,0x0000,0x0000,0x0000,0x0000, +0x095D,0x0000,0x0000,0x0000,0x0000, +0x095E,0x0000,0x0000,0x0000,0x0000, +0x095F,0x0000,0x0000,0x0000,0x0000, +0x0960,0x0000,0x0000,0x0000,0x0000, +0x0961,0x0000,0x0000,0x0000,0x0000, +0x0962,0x0000,0x0000,0x0000,0x0000, +0x0963,0x0000,0x0000,0x0000,0x0000, +0x0964,0x0000,0x0000,0x0000,0x0000, +0x0965,0x0000,0x0000,0x0000,0x0000, +0x0966,0x0000,0x0000,0x0000,0x0000, +0x0967,0x0000,0x0000,0x0000,0x0000, +0x0968,0x0000,0x0000,0x0000,0x0000, +0x0969,0x0000,0x0000,0x0000,0x0000, +0x096A,0x0000,0x0000,0x0000,0x0000, +0x096B,0x0000,0x0000,0x0000,0x0000, +0x096C,0x0000,0x0000,0x0000,0x0000, +0x096D,0x0000,0x0000,0x0000,0x0000, +0x096E,0x0000,0x0000,0x0000,0x0000, +0x096F,0x0000,0x0000,0x0000,0x0000, +0x0970,0x0000,0x0000,0x0000,0x0000, +0x0971,0x0000,0x0000,0x0000,0x0000, +0x0972,0x0000,0x0000,0x0000,0x0000, +0x0973,0x0000,0x0000,0x0000,0x0000, +0x0974,0x0000,0x0000,0x0000,0x0000, +0x0975,0x0000,0x0000,0x0000,0x0000, +0x0976,0x0000,0x0000,0x0000,0x0000, +0x0977,0x0000,0x0000,0x0000,0x0000, +0x0978,0x0000,0x0000,0x0000,0x0000, +0x0979,0x0000,0x0000,0x0000,0x0000, +0x097A,0x0000,0x0000,0x0000,0x0000, +0x097B,0x0000,0x0000,0x0000,0x0000, +0x097C,0x0000,0x0000,0x0000,0x0000, +0x097D,0x0000,0x0000,0x0000,0x0000, +0x097E,0x0000,0x0000,0x0000,0x0000, +0x097F,0x0000,0x0000,0x0000,0x0000, +0x0980,0x0000,0x0000,0x0000,0x0000, +0x0981,0x0000,0x0000,0x0000,0x0000, +0x0982,0x0000,0x0000,0x0000,0x0000, +0x0983,0x0000,0x0000,0x0000,0x0000, +0x0984,0x0000,0x0000,0x0000,0x0000, +0x0985,0x0000,0x0000,0x0000,0x0000, +0x0986,0x0000,0x0000,0x0000,0x0000, +0x0987,0x0000,0x0000,0x0000,0x0000, +0x0988,0x0000,0x0000,0x0000,0x0000, +0x0989,0x0000,0x0000,0x0000,0x0000, +0x098A,0x0000,0x0000,0x0000,0x0000, +0x098B,0x0000,0x0000,0x0000,0x0000, +0x098C,0x0000,0x0000,0x0000,0x0000, +0x098D,0x0000,0x0000,0x0000,0x0000, +0x098E,0x0000,0x0000,0x0000,0x0000, +0x098F,0x0000,0x0000,0x0000,0x0000, +0x0990,0x0000,0x0000,0x0000,0x0000, +0x0991,0x0000,0x0000,0x0000,0x0000, +0x0992,0x0000,0x0000,0x0000,0x0000, +0x023D,0x023D,0x042D,0x0000,0x0000, +0x042D,0x042D,0x0000,0x0000,0x0000, +0x042D,0x042D,0x042D,0x0000,0x0000, +0x0993,0x0000,0x0000,0x0000,0x0000, +0x0994,0x0000,0x0000,0x0000,0x0000, +0x0995,0x0000,0x0000,0x0000,0x0000, +0x0996,0x0000,0x0000,0x0000,0x0000, +0x0997,0x0000,0x0000,0x0000,0x0000, +0x0998,0x0000,0x0000,0x0000,0x0000, +0x0999,0x0000,0x0000,0x0000,0x0000, +0x099A,0x0000,0x0000,0x0000,0x0000, +0x099B,0x0000,0x0000,0x0000,0x0000, +0x099C,0x0000,0x0000,0x0000,0x0000, +0x099D,0x0000,0x0000,0x0000,0x0000, +0x099E,0x0000,0x0000,0x0000,0x0000, +0x099F,0x0000,0x0000,0x0000,0x0000, +0x09A0,0x0000,0x0000,0x0000,0x0000, +0x09A1,0x0000,0x0000,0x0000,0x0000, +0x09A2,0x0000,0x0000,0x0000,0x0000, +0x09A3,0x0000,0x0000,0x0000,0x0000, +0x09A4,0x0000,0x0000,0x0000,0x0000, +0x09A5,0x0000,0x0000,0x0000,0x0000, +0x09A6,0x0000,0x0000,0x0000,0x0000, +0x09A7,0x0000,0x0000,0x0000,0x0000, +0x09A8,0x0000,0x0000,0x0000,0x0000, +0x09A9,0x0000,0x0000,0x0000,0x0000, +0x09AA,0x0000,0x0000,0x0000,0x0000, +0x09AB,0x0000,0x0000,0x0000,0x0000, +0x09AC,0x0000,0x0000,0x0000,0x0000, +0x09AD,0x0000,0x0000,0x0000,0x0000, +0x09AE,0x0000,0x0000,0x0000,0x0000, +0x09AF,0x0000,0x0000,0x0000,0x0000, +0x09B0,0x0000,0x0000,0x0000,0x0000, +0x09B1,0x0000,0x0000,0x0000,0x0000, +0x09B2,0x0000,0x0000,0x0000,0x0000, +0x09B3,0x0000,0x0000,0x0000,0x0000, +0x09B4,0x0000,0x0000,0x0000,0x0000, +0x09B5,0x0000,0x0000,0x0000,0x0000, +0x09B6,0x0000,0x0000,0x0000,0x0000, +0x09B7,0x0000,0x0000,0x0000,0x0000, +0x09B8,0x0000,0x0000,0x0000,0x0000, +0x09B9,0x0000,0x0000,0x0000,0x0000, +0x09BA,0x0000,0x0000,0x0000,0x0000, +0x09BB,0x0000,0x0000,0x0000,0x0000, +0x09BC,0x0000,0x0000,0x0000,0x0000, +0x09BD,0x0000,0x0000,0x0000,0x0000, +0x09BE,0x0000,0x0000,0x0000,0x0000, +0x09BF,0x0000,0x0000,0x0000,0x0000, +0x09C0,0x0000,0x0000,0x0000,0x0000, +0x09C1,0x0000,0x0000,0x0000,0x0000, +0x09C2,0x0000,0x0000,0x0000,0x0000, +0x09C3,0x0000,0x0000,0x0000,0x0000, +0x09C4,0x0000,0x0000,0x0000,0x0000, +0x09C5,0x0000,0x0000,0x0000,0x0000, +0x09C6,0x0000,0x0000,0x0000,0x0000, +0x09C7,0x0000,0x0000,0x0000,0x0000, +0x09C8,0x0000,0x0000,0x0000,0x0000, +0x09C9,0x0000,0x0000,0x0000,0x0000, +0x09CA,0x0000,0x0000,0x0000,0x0000, +0x09CB,0x0000,0x0000,0x0000,0x0000, +0x09CC,0x0000,0x0000,0x0000,0x0000, +0x09CD,0x0000,0x0000,0x0000,0x0000, +0x09CE,0x0000,0x0000,0x0000,0x0000, +0x09CF,0x0000,0x0000,0x0000,0x0000, +0x09D0,0x0000,0x0000,0x0000,0x0000, +0x09D1,0x0000,0x0000,0x0000,0x0000, +0x09D2,0x0000,0x0000,0x0000,0x0000, +0x09D3,0x0000,0x0000,0x0000,0x0000, +0x09D4,0x0000,0x0000,0x0000,0x0000, +0x09D5,0x0000,0x0000,0x0000,0x0000, +0x09D6,0x0000,0x0000,0x0000,0x0000, +0x09D7,0x0000,0x0000,0x0000,0x0000, +0x09D8,0x0000,0x0000,0x0000,0x0000, +0x09D9,0x0000,0x0000,0x0000,0x0000, +0x09DA,0x0000,0x0000,0x0000,0x0000, +0x09DB,0x0000,0x0000,0x0000,0x0000, +0x09DC,0x0000,0x0000,0x0000,0x0000, +0x09DD,0x0000,0x0000,0x0000,0x0000, +0x09DE,0x0000,0x0000,0x0000,0x0000, +0x09DF,0x0000,0x0000,0x0000,0x0000, +0x09E0,0x0000,0x0000,0x0000,0x0000, +0x09E1,0x0000,0x0000,0x0000,0x0000, +0x09E2,0x0000,0x0000,0x0000,0x0000, +0x09E3,0x0000,0x0000,0x0000,0x0000, +0x09E4,0x0000,0x0000,0x0000,0x0000, +0x09E5,0x0000,0x0000,0x0000,0x0000, +0x09E6,0x0000,0x0000,0x0000,0x0000, +0x09E7,0x0000,0x0000,0x0000,0x0000, +0x09E8,0x0000,0x0000,0x0000,0x0000, +0x09E9,0x0000,0x0000,0x0000,0x0000, +0x09EA,0x0000,0x0000,0x0000,0x0000, +0x09EB,0x0000,0x0000,0x0000,0x0000, +0x09EC,0x0000,0x0000,0x0000,0x0000, +0x09ED,0x0000,0x0000,0x0000,0x0000, +0x09EE,0x0000,0x0000,0x0000,0x0000, +0x09EF,0x0000,0x0000,0x0000,0x0000, +0x09F0,0x0000,0x0000,0x0000,0x0000, +0x09F1,0x0000,0x0000,0x0000,0x0000, +0x09F2,0x0000,0x0000,0x0000,0x0000, +0x09F3,0x0000,0x0000,0x0000,0x0000, +0x09F4,0x0000,0x0000,0x0000,0x0000, +0x09F5,0x0000,0x0000,0x0000,0x0000, +0x09F6,0x0000,0x0000,0x0000,0x0000, +0x09F7,0x0000,0x0000,0x0000,0x0000, +0x09F8,0x0000,0x0000,0x0000,0x0000, +0x09F8,0x0000,0x0000,0x0000,0x0000, +0x09F9,0x0000,0x0000,0x0000,0x0000, +0x09FA,0x0000,0x0000,0x0000,0x0000, +0x09FB,0x0000,0x0000,0x0000,0x0000, +0x09FC,0x0000,0x0000,0x0000,0x0000, +0x09FD,0x0000,0x0000,0x0000,0x0000, +0x09FE,0x0000,0x0000,0x0000,0x0000, +0x09FF,0x0000,0x0000,0x0000,0x0000, +0x0A00,0x0000,0x0000,0x0000,0x0000, +0x0A01,0x0000,0x0000,0x0000,0x0000, +0x0A02,0x0000,0x0000,0x0000,0x0000, +0x0A03,0x0000,0x0000,0x0000,0x0000, +0x0A04,0x0000,0x0000,0x0000,0x0000, +0x0A05,0x0000,0x0000,0x0000,0x0000, +0x0A06,0x0000,0x0000,0x0000,0x0000, +0x0A07,0x0000,0x0000,0x0000,0x0000, +0x0A08,0x0000,0x0000,0x0000,0x0000, +0x0A09,0x0000,0x0000,0x0000,0x0000, +0x0A0A,0x0000,0x0000,0x0000,0x0000, +0x0A0B,0x0000,0x0000,0x0000,0x0000, +0x0A0C,0x0000,0x0000,0x0000,0x0000, +0x0A0D,0x0000,0x0000,0x0000,0x0000, +0x0A0E,0x0000,0x0000,0x0000,0x0000, +0x0A0F,0x0000,0x0000,0x0000,0x0000, +0x0A10,0x0000,0x0000,0x0000,0x0000, +0x0A11,0x0000,0x0000,0x0000,0x0000, +0x0A12,0x0000,0x0000,0x0000,0x0000, +0x0A13,0x0000,0x0000,0x0000,0x0000, +0x0A14,0x0000,0x0000,0x0000,0x0000, +0x0A15,0x0000,0x0000,0x0000,0x0000, +0x0A16,0x0000,0x0000,0x0000,0x0000, +0x0A17,0x0000,0x0000,0x0000,0x0000, +0x0A18,0x0000,0x0000,0x0000,0x0000, +0x0A19,0x0000,0x0000,0x0000,0x0000, +0x0A1A,0x0000,0x0000,0x0000,0x0000 +}; + +uint16 page02Bdata[]= { /* 2B00 (3 weights per char) */ +0x0A1B,0x0000,0x0000, 0x0A1C,0x0000,0x0000, 0x0A1D,0x0000,0x0000, +0x0A1E,0x0000,0x0000, 0x0A1F,0x0000,0x0000, 0x0A20,0x0000,0x0000, +0x0A21,0x0000,0x0000, 0x0A22,0x0000,0x0000, 0x0A23,0x0000,0x0000, +0x0A24,0x0000,0x0000, 0x0A25,0x0000,0x0000, 0x0A26,0x0000,0x0000, +0x0A27,0x0000,0x0000, 0x0A28,0x0000,0x0000, 0xFBC0,0xAB0E,0x0000, +0xFBC0,0xAB0F,0x0000, 0xFBC0,0xAB10,0x0000, 0xFBC0,0xAB11,0x0000, +0xFBC0,0xAB12,0x0000, 0xFBC0,0xAB13,0x0000, 0xFBC0,0xAB14,0x0000, +0xFBC0,0xAB15,0x0000, 0xFBC0,0xAB16,0x0000, 0xFBC0,0xAB17,0x0000, +0xFBC0,0xAB18,0x0000, 0xFBC0,0xAB19,0x0000, 0xFBC0,0xAB1A,0x0000, +0xFBC0,0xAB1B,0x0000, 0xFBC0,0xAB1C,0x0000, 0xFBC0,0xAB1D,0x0000, +0xFBC0,0xAB1E,0x0000, 0xFBC0,0xAB1F,0x0000, 0xFBC0,0xAB20,0x0000, +0xFBC0,0xAB21,0x0000, 0xFBC0,0xAB22,0x0000, 0xFBC0,0xAB23,0x0000, +0xFBC0,0xAB24,0x0000, 0xFBC0,0xAB25,0x0000, 0xFBC0,0xAB26,0x0000, +0xFBC0,0xAB27,0x0000, 0xFBC0,0xAB28,0x0000, 0xFBC0,0xAB29,0x0000, +0xFBC0,0xAB2A,0x0000, 0xFBC0,0xAB2B,0x0000, 0xFBC0,0xAB2C,0x0000, +0xFBC0,0xAB2D,0x0000, 0xFBC0,0xAB2E,0x0000, 0xFBC0,0xAB2F,0x0000, +0xFBC0,0xAB30,0x0000, 0xFBC0,0xAB31,0x0000, 0xFBC0,0xAB32,0x0000, +0xFBC0,0xAB33,0x0000, 0xFBC0,0xAB34,0x0000, 0xFBC0,0xAB35,0x0000, +0xFBC0,0xAB36,0x0000, 0xFBC0,0xAB37,0x0000, 0xFBC0,0xAB38,0x0000, +0xFBC0,0xAB39,0x0000, 0xFBC0,0xAB3A,0x0000, 0xFBC0,0xAB3B,0x0000, +0xFBC0,0xAB3C,0x0000, 0xFBC0,0xAB3D,0x0000, 0xFBC0,0xAB3E,0x0000, +0xFBC0,0xAB3F,0x0000, 0xFBC0,0xAB40,0x0000, 0xFBC0,0xAB41,0x0000, +0xFBC0,0xAB42,0x0000, 0xFBC0,0xAB43,0x0000, 0xFBC0,0xAB44,0x0000, +0xFBC0,0xAB45,0x0000, 0xFBC0,0xAB46,0x0000, 0xFBC0,0xAB47,0x0000, +0xFBC0,0xAB48,0x0000, 0xFBC0,0xAB49,0x0000, 0xFBC0,0xAB4A,0x0000, +0xFBC0,0xAB4B,0x0000, 0xFBC0,0xAB4C,0x0000, 0xFBC0,0xAB4D,0x0000, +0xFBC0,0xAB4E,0x0000, 0xFBC0,0xAB4F,0x0000, 0xFBC0,0xAB50,0x0000, +0xFBC0,0xAB51,0x0000, 0xFBC0,0xAB52,0x0000, 0xFBC0,0xAB53,0x0000, +0xFBC0,0xAB54,0x0000, 0xFBC0,0xAB55,0x0000, 0xFBC0,0xAB56,0x0000, +0xFBC0,0xAB57,0x0000, 0xFBC0,0xAB58,0x0000, 0xFBC0,0xAB59,0x0000, +0xFBC0,0xAB5A,0x0000, 0xFBC0,0xAB5B,0x0000, 0xFBC0,0xAB5C,0x0000, +0xFBC0,0xAB5D,0x0000, 0xFBC0,0xAB5E,0x0000, 0xFBC0,0xAB5F,0x0000, +0xFBC0,0xAB60,0x0000, 0xFBC0,0xAB61,0x0000, 0xFBC0,0xAB62,0x0000, +0xFBC0,0xAB63,0x0000, 0xFBC0,0xAB64,0x0000, 0xFBC0,0xAB65,0x0000, +0xFBC0,0xAB66,0x0000, 0xFBC0,0xAB67,0x0000, 0xFBC0,0xAB68,0x0000, +0xFBC0,0xAB69,0x0000, 0xFBC0,0xAB6A,0x0000, 0xFBC0,0xAB6B,0x0000, +0xFBC0,0xAB6C,0x0000, 0xFBC0,0xAB6D,0x0000, 0xFBC0,0xAB6E,0x0000, +0xFBC0,0xAB6F,0x0000, 0xFBC0,0xAB70,0x0000, 0xFBC0,0xAB71,0x0000, +0xFBC0,0xAB72,0x0000, 0xFBC0,0xAB73,0x0000, 0xFBC0,0xAB74,0x0000, +0xFBC0,0xAB75,0x0000, 0xFBC0,0xAB76,0x0000, 0xFBC0,0xAB77,0x0000, +0xFBC0,0xAB78,0x0000, 0xFBC0,0xAB79,0x0000, 0xFBC0,0xAB7A,0x0000, +0xFBC0,0xAB7B,0x0000, 0xFBC0,0xAB7C,0x0000, 0xFBC0,0xAB7D,0x0000, +0xFBC0,0xAB7E,0x0000, 0xFBC0,0xAB7F,0x0000, 0xFBC0,0xAB80,0x0000, +0xFBC0,0xAB81,0x0000, 0xFBC0,0xAB82,0x0000, 0xFBC0,0xAB83,0x0000, +0xFBC0,0xAB84,0x0000, 0xFBC0,0xAB85,0x0000, 0xFBC0,0xAB86,0x0000, +0xFBC0,0xAB87,0x0000, 0xFBC0,0xAB88,0x0000, 0xFBC0,0xAB89,0x0000, +0xFBC0,0xAB8A,0x0000, 0xFBC0,0xAB8B,0x0000, 0xFBC0,0xAB8C,0x0000, +0xFBC0,0xAB8D,0x0000, 0xFBC0,0xAB8E,0x0000, 0xFBC0,0xAB8F,0x0000, +0xFBC0,0xAB90,0x0000, 0xFBC0,0xAB91,0x0000, 0xFBC0,0xAB92,0x0000, +0xFBC0,0xAB93,0x0000, 0xFBC0,0xAB94,0x0000, 0xFBC0,0xAB95,0x0000, +0xFBC0,0xAB96,0x0000, 0xFBC0,0xAB97,0x0000, 0xFBC0,0xAB98,0x0000, +0xFBC0,0xAB99,0x0000, 0xFBC0,0xAB9A,0x0000, 0xFBC0,0xAB9B,0x0000, +0xFBC0,0xAB9C,0x0000, 0xFBC0,0xAB9D,0x0000, 0xFBC0,0xAB9E,0x0000, +0xFBC0,0xAB9F,0x0000, 0xFBC0,0xABA0,0x0000, 0xFBC0,0xABA1,0x0000, +0xFBC0,0xABA2,0x0000, 0xFBC0,0xABA3,0x0000, 0xFBC0,0xABA4,0x0000, +0xFBC0,0xABA5,0x0000, 0xFBC0,0xABA6,0x0000, 0xFBC0,0xABA7,0x0000, +0xFBC0,0xABA8,0x0000, 0xFBC0,0xABA9,0x0000, 0xFBC0,0xABAA,0x0000, +0xFBC0,0xABAB,0x0000, 0xFBC0,0xABAC,0x0000, 0xFBC0,0xABAD,0x0000, +0xFBC0,0xABAE,0x0000, 0xFBC0,0xABAF,0x0000, 0xFBC0,0xABB0,0x0000, +0xFBC0,0xABB1,0x0000, 0xFBC0,0xABB2,0x0000, 0xFBC0,0xABB3,0x0000, +0xFBC0,0xABB4,0x0000, 0xFBC0,0xABB5,0x0000, 0xFBC0,0xABB6,0x0000, +0xFBC0,0xABB7,0x0000, 0xFBC0,0xABB8,0x0000, 0xFBC0,0xABB9,0x0000, +0xFBC0,0xABBA,0x0000, 0xFBC0,0xABBB,0x0000, 0xFBC0,0xABBC,0x0000, +0xFBC0,0xABBD,0x0000, 0xFBC0,0xABBE,0x0000, 0xFBC0,0xABBF,0x0000, +0xFBC0,0xABC0,0x0000, 0xFBC0,0xABC1,0x0000, 0xFBC0,0xABC2,0x0000, +0xFBC0,0xABC3,0x0000, 0xFBC0,0xABC4,0x0000, 0xFBC0,0xABC5,0x0000, +0xFBC0,0xABC6,0x0000, 0xFBC0,0xABC7,0x0000, 0xFBC0,0xABC8,0x0000, +0xFBC0,0xABC9,0x0000, 0xFBC0,0xABCA,0x0000, 0xFBC0,0xABCB,0x0000, +0xFBC0,0xABCC,0x0000, 0xFBC0,0xABCD,0x0000, 0xFBC0,0xABCE,0x0000, +0xFBC0,0xABCF,0x0000, 0xFBC0,0xABD0,0x0000, 0xFBC0,0xABD1,0x0000, +0xFBC0,0xABD2,0x0000, 0xFBC0,0xABD3,0x0000, 0xFBC0,0xABD4,0x0000, +0xFBC0,0xABD5,0x0000, 0xFBC0,0xABD6,0x0000, 0xFBC0,0xABD7,0x0000, +0xFBC0,0xABD8,0x0000, 0xFBC0,0xABD9,0x0000, 0xFBC0,0xABDA,0x0000, +0xFBC0,0xABDB,0x0000, 0xFBC0,0xABDC,0x0000, 0xFBC0,0xABDD,0x0000, +0xFBC0,0xABDE,0x0000, 0xFBC0,0xABDF,0x0000, 0xFBC0,0xABE0,0x0000, +0xFBC0,0xABE1,0x0000, 0xFBC0,0xABE2,0x0000, 0xFBC0,0xABE3,0x0000, +0xFBC0,0xABE4,0x0000, 0xFBC0,0xABE5,0x0000, 0xFBC0,0xABE6,0x0000, +0xFBC0,0xABE7,0x0000, 0xFBC0,0xABE8,0x0000, 0xFBC0,0xABE9,0x0000, +0xFBC0,0xABEA,0x0000, 0xFBC0,0xABEB,0x0000, 0xFBC0,0xABEC,0x0000, +0xFBC0,0xABED,0x0000, 0xFBC0,0xABEE,0x0000, 0xFBC0,0xABEF,0x0000, +0xFBC0,0xABF0,0x0000, 0xFBC0,0xABF1,0x0000, 0xFBC0,0xABF2,0x0000, +0xFBC0,0xABF3,0x0000, 0xFBC0,0xABF4,0x0000, 0xFBC0,0xABF5,0x0000, +0xFBC0,0xABF6,0x0000, 0xFBC0,0xABF7,0x0000, 0xFBC0,0xABF8,0x0000, +0xFBC0,0xABF9,0x0000, 0xFBC0,0xABFA,0x0000, 0xFBC0,0xABFB,0x0000, +0xFBC0,0xABFC,0x0000, 0xFBC0,0xABFD,0x0000, 0xFBC0,0xABFE,0x0000, +0xFBC0,0xABFF,0x0000 }; + +uint16 page02Edata[]= { /* 2E00 (3 weights per char) */ +0xFBC0,0xAE00,0x0000, 0xFBC0,0xAE01,0x0000, 0xFBC0,0xAE02,0x0000, +0xFBC0,0xAE03,0x0000, 0xFBC0,0xAE04,0x0000, 0xFBC0,0xAE05,0x0000, +0xFBC0,0xAE06,0x0000, 0xFBC0,0xAE07,0x0000, 0xFBC0,0xAE08,0x0000, +0xFBC0,0xAE09,0x0000, 0xFBC0,0xAE0A,0x0000, 0xFBC0,0xAE0B,0x0000, +0xFBC0,0xAE0C,0x0000, 0xFBC0,0xAE0D,0x0000, 0xFBC0,0xAE0E,0x0000, +0xFBC0,0xAE0F,0x0000, 0xFBC0,0xAE10,0x0000, 0xFBC0,0xAE11,0x0000, +0xFBC0,0xAE12,0x0000, 0xFBC0,0xAE13,0x0000, 0xFBC0,0xAE14,0x0000, +0xFBC0,0xAE15,0x0000, 0xFBC0,0xAE16,0x0000, 0xFBC0,0xAE17,0x0000, +0xFBC0,0xAE18,0x0000, 0xFBC0,0xAE19,0x0000, 0xFBC0,0xAE1A,0x0000, +0xFBC0,0xAE1B,0x0000, 0xFBC0,0xAE1C,0x0000, 0xFBC0,0xAE1D,0x0000, +0xFBC0,0xAE1E,0x0000, 0xFBC0,0xAE1F,0x0000, 0xFBC0,0xAE20,0x0000, +0xFBC0,0xAE21,0x0000, 0xFBC0,0xAE22,0x0000, 0xFBC0,0xAE23,0x0000, +0xFBC0,0xAE24,0x0000, 0xFBC0,0xAE25,0x0000, 0xFBC0,0xAE26,0x0000, +0xFBC0,0xAE27,0x0000, 0xFBC0,0xAE28,0x0000, 0xFBC0,0xAE29,0x0000, +0xFBC0,0xAE2A,0x0000, 0xFBC0,0xAE2B,0x0000, 0xFBC0,0xAE2C,0x0000, +0xFBC0,0xAE2D,0x0000, 0xFBC0,0xAE2E,0x0000, 0xFBC0,0xAE2F,0x0000, +0xFBC0,0xAE30,0x0000, 0xFBC0,0xAE31,0x0000, 0xFBC0,0xAE32,0x0000, +0xFBC0,0xAE33,0x0000, 0xFBC0,0xAE34,0x0000, 0xFBC0,0xAE35,0x0000, +0xFBC0,0xAE36,0x0000, 0xFBC0,0xAE37,0x0000, 0xFBC0,0xAE38,0x0000, +0xFBC0,0xAE39,0x0000, 0xFBC0,0xAE3A,0x0000, 0xFBC0,0xAE3B,0x0000, +0xFBC0,0xAE3C,0x0000, 0xFBC0,0xAE3D,0x0000, 0xFBC0,0xAE3E,0x0000, +0xFBC0,0xAE3F,0x0000, 0xFBC0,0xAE40,0x0000, 0xFBC0,0xAE41,0x0000, +0xFBC0,0xAE42,0x0000, 0xFBC0,0xAE43,0x0000, 0xFBC0,0xAE44,0x0000, +0xFBC0,0xAE45,0x0000, 0xFBC0,0xAE46,0x0000, 0xFBC0,0xAE47,0x0000, +0xFBC0,0xAE48,0x0000, 0xFBC0,0xAE49,0x0000, 0xFBC0,0xAE4A,0x0000, +0xFBC0,0xAE4B,0x0000, 0xFBC0,0xAE4C,0x0000, 0xFBC0,0xAE4D,0x0000, +0xFBC0,0xAE4E,0x0000, 0xFBC0,0xAE4F,0x0000, 0xFBC0,0xAE50,0x0000, +0xFBC0,0xAE51,0x0000, 0xFBC0,0xAE52,0x0000, 0xFBC0,0xAE53,0x0000, +0xFBC0,0xAE54,0x0000, 0xFBC0,0xAE55,0x0000, 0xFBC0,0xAE56,0x0000, +0xFBC0,0xAE57,0x0000, 0xFBC0,0xAE58,0x0000, 0xFBC0,0xAE59,0x0000, +0xFBC0,0xAE5A,0x0000, 0xFBC0,0xAE5B,0x0000, 0xFBC0,0xAE5C,0x0000, +0xFBC0,0xAE5D,0x0000, 0xFBC0,0xAE5E,0x0000, 0xFBC0,0xAE5F,0x0000, +0xFBC0,0xAE60,0x0000, 0xFBC0,0xAE61,0x0000, 0xFBC0,0xAE62,0x0000, +0xFBC0,0xAE63,0x0000, 0xFBC0,0xAE64,0x0000, 0xFBC0,0xAE65,0x0000, +0xFBC0,0xAE66,0x0000, 0xFBC0,0xAE67,0x0000, 0xFBC0,0xAE68,0x0000, +0xFBC0,0xAE69,0x0000, 0xFBC0,0xAE6A,0x0000, 0xFBC0,0xAE6B,0x0000, +0xFBC0,0xAE6C,0x0000, 0xFBC0,0xAE6D,0x0000, 0xFBC0,0xAE6E,0x0000, +0xFBC0,0xAE6F,0x0000, 0xFBC0,0xAE70,0x0000, 0xFBC0,0xAE71,0x0000, +0xFBC0,0xAE72,0x0000, 0xFBC0,0xAE73,0x0000, 0xFBC0,0xAE74,0x0000, +0xFBC0,0xAE75,0x0000, 0xFBC0,0xAE76,0x0000, 0xFBC0,0xAE77,0x0000, +0xFBC0,0xAE78,0x0000, 0xFBC0,0xAE79,0x0000, 0xFBC0,0xAE7A,0x0000, +0xFBC0,0xAE7B,0x0000, 0xFBC0,0xAE7C,0x0000, 0xFBC0,0xAE7D,0x0000, +0xFBC0,0xAE7E,0x0000, 0xFBC0,0xAE7F,0x0000, 0xFB40,0xCE36,0x0000, +0xFB40,0xD382,0x0000, 0xFB40,0xCE5B,0x0000, 0xFB40,0xCE5A,0x0000, +0xFB40,0xCE59,0x0000, 0xFB40,0xCEBB,0x0000, 0xFB40,0xD182,0x0000, +0xFB40,0xD1E0,0x0000, 0xFB40,0xD200,0x0000, 0xFB40,0xD202,0x0000, +0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xDC0F,0x0000, +0xFB40,0xDC0F,0x0000, 0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, +0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, 0xFB40,0xDDF3,0x0000, +0xFB40,0xDE7A,0x0000, 0xFB40,0xDF51,0x0000, 0xFB40,0xDF50,0x0000, +0xFB40,0xDFC4,0x0000, 0xFB40,0xDFC3,0x0000, 0xFB40,0xE24C,0x0000, +0xFB40,0xE535,0x0000, 0xFBC0,0xAE9A,0x0000, 0xFB40,0xE5E1,0x0000, +0xFB40,0xE5E5,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xEB7A,0x0000, +0xFB40,0xEBCD,0x0000, 0xFB40,0xEC11,0x0000, 0xFB40,0xEC35,0x0000, +0xFB40,0xEC3A,0x0000, 0xFB40,0xF06C,0x0000, 0xFB40,0xF22B,0x0000, +0xFB40,0xF22B,0x0000, 0xFB40,0xCE2C,0x0000, 0xFB40,0xF25B,0x0000, +0xFB40,0xF2AD,0x0000, 0xFB40,0xF38B,0x0000, 0xFB40,0xF58B,0x0000, +0xFB40,0xF6EE,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF93B,0x0000, +0xFB40,0xFAF9,0x0000, 0xFB40,0xFCF9,0x0000, 0xFB40,0xFE9F,0x0000, +0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF53,0x0000, +0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF8A,0x0000, +0xFB40,0xFF8A,0x0000, 0xFB40,0xFF8B,0x0000, 0xFB41,0x8002,0x0000, +0xFB41,0x8080,0x0000, 0xFB41,0x807F,0x0000, 0xFB41,0x8089,0x0000, +0xFB41,0x81FC,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, +0xFB41,0x8279,0x0000, 0xFB41,0x864E,0x0000, 0xFB41,0x8864,0x0000, +0xFB41,0x8980,0x0000, 0xFB41,0x897F,0x0000, 0xFB41,0x89C1,0x0000, +0xFB41,0x89D2,0x0000, 0xFB41,0x89D2,0x0000, 0xFB41,0x8BA0,0x0000, +0xFB41,0x8D1D,0x0000, 0xFB41,0x8DB3,0x0000, 0xFB41,0x8F66,0x0000, +0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, +0xFB41,0x9091,0x0000, 0xFB41,0x9485,0x0000, 0xFB41,0x9577,0x0000, +0xFB41,0x9578,0x0000, 0xFB41,0x957F,0x0000, 0xFB41,0x95E8,0x0000, +0xFB41,0x961C,0x0000, 0xFB41,0x961D,0x0000, 0xFB41,0x96E8,0x0000, +0xFB41,0x9752,0x0000, 0xFB41,0x97E6,0x0000, 0xFB41,0x9875,0x0000, +0xFB41,0x98CE,0x0000, 0xFB41,0x98DE,0x0000, 0xFB41,0x98DF,0x0000, +0xFB41,0x98E0,0x0000, 0xFB41,0x98E0,0x0000, 0xFB41,0x9963,0x0000, +0xFB41,0x9996,0x0000, 0xFB41,0x9A6C,0x0000, 0xFB41,0x9AA8,0x0000, +0xFB41,0x9B3C,0x0000, 0xFB41,0x9C7C,0x0000, 0xFB41,0x9E1F,0x0000, +0xFB41,0x9E75,0x0000, 0xFB41,0x9EA6,0x0000, 0xFB41,0x9EC4,0x0000, +0xFB41,0x9EFE,0x0000, 0xFB41,0x9F4A,0x0000, 0xFB41,0x9F50,0x0000, +0xFB41,0x9F52,0x0000, 0xFB41,0x9F7F,0x0000, 0xFB41,0x9F8D,0x0000, +0xFB41,0x9F99,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, +0xFB41,0x9F9F,0x0000, 0xFBC0,0xAEF4,0x0000, 0xFBC0,0xAEF5,0x0000, +0xFBC0,0xAEF6,0x0000, 0xFBC0,0xAEF7,0x0000, 0xFBC0,0xAEF8,0x0000, +0xFBC0,0xAEF9,0x0000, 0xFBC0,0xAEFA,0x0000, 0xFBC0,0xAEFB,0x0000, +0xFBC0,0xAEFC,0x0000, 0xFBC0,0xAEFD,0x0000, 0xFBC0,0xAEFE,0x0000, +0xFBC0,0xAEFF,0x0000 }; + +uint16 page02Fdata[]= { /* 2F00 (3 weights per char) */ +0xFB40,0xCE00,0x0000, 0xFB40,0xCE28,0x0000, 0xFB40,0xCE36,0x0000, +0xFB40,0xCE3F,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE85,0x0000, +0xFB40,0xCE8C,0x0000, 0xFB40,0xCEA0,0x0000, 0xFB40,0xCEBA,0x0000, +0xFB40,0xD13F,0x0000, 0xFB40,0xD165,0x0000, 0xFB40,0xD16B,0x0000, +0xFB40,0xD182,0x0000, 0xFB40,0xD196,0x0000, 0xFB40,0xD1AB,0x0000, +0xFB40,0xD1E0,0x0000, 0xFB40,0xD1F5,0x0000, 0xFB40,0xD200,0x0000, +0xFB40,0xD29B,0x0000, 0xFB40,0xD2F9,0x0000, 0xFB40,0xD315,0x0000, +0xFB40,0xD31A,0x0000, 0xFB40,0xD338,0x0000, 0xFB40,0xD341,0x0000, +0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xD382,0x0000, +0xFB40,0xD3B6,0x0000, 0xFB40,0xD3C8,0x0000, 0xFB40,0xD3E3,0x0000, +0xFB40,0xD6D7,0x0000, 0xFB40,0xD71F,0x0000, 0xFB40,0xD8EB,0x0000, +0xFB40,0xD902,0x0000, 0xFB40,0xD90A,0x0000, 0xFB40,0xD915,0x0000, +0xFB40,0xD927,0x0000, 0xFB40,0xD973,0x0000, 0xFB40,0xDB50,0x0000, +0xFB40,0xDB80,0x0000, 0xFB40,0xDBF8,0x0000, 0xFB40,0xDC0F,0x0000, +0xFB40,0xDC22,0x0000, 0xFB40,0xDC38,0x0000, 0xFB40,0xDC6E,0x0000, +0xFB40,0xDC71,0x0000, 0xFB40,0xDDDB,0x0000, 0xFB40,0xDDE5,0x0000, +0xFB40,0xDDF1,0x0000, 0xFB40,0xDDFE,0x0000, 0xFB40,0xDE72,0x0000, +0xFB40,0xDE7A,0x0000, 0xFB40,0xDE7F,0x0000, 0xFB40,0xDEF4,0x0000, +0xFB40,0xDEFE,0x0000, 0xFB40,0xDF0B,0x0000, 0xFB40,0xDF13,0x0000, +0xFB40,0xDF50,0x0000, 0xFB40,0xDF61,0x0000, 0xFB40,0xDF73,0x0000, +0xFB40,0xDFC3,0x0000, 0xFB40,0xE208,0x0000, 0xFB40,0xE236,0x0000, +0xFB40,0xE24B,0x0000, 0xFB40,0xE52F,0x0000, 0xFB40,0xE534,0x0000, +0xFB40,0xE587,0x0000, 0xFB40,0xE597,0x0000, 0xFB40,0xE5A4,0x0000, +0xFB40,0xE5B9,0x0000, 0xFB40,0xE5E0,0x0000, 0xFB40,0xE5E5,0x0000, +0xFB40,0xE6F0,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xE728,0x0000, +0xFB40,0xEB20,0x0000, 0xFB40,0xEB62,0x0000, 0xFB40,0xEB79,0x0000, +0xFB40,0xEBB3,0x0000, 0xFB40,0xEBCB,0x0000, 0xFB40,0xEBD4,0x0000, +0xFB40,0xEBDB,0x0000, 0xFB40,0xEC0F,0x0000, 0xFB40,0xEC14,0x0000, +0xFB40,0xEC34,0x0000, 0xFB40,0xF06B,0x0000, 0xFB40,0xF22A,0x0000, +0xFB40,0xF236,0x0000, 0xFB40,0xF23B,0x0000, 0xFB40,0xF23F,0x0000, +0xFB40,0xF247,0x0000, 0xFB40,0xF259,0x0000, 0xFB40,0xF25B,0x0000, +0xFB40,0xF2AC,0x0000, 0xFB40,0xF384,0x0000, 0xFB40,0xF389,0x0000, +0xFB40,0xF4DC,0x0000, 0xFB40,0xF4E6,0x0000, 0xFB40,0xF518,0x0000, +0xFB40,0xF51F,0x0000, 0xFB40,0xF528,0x0000, 0xFB40,0xF530,0x0000, +0xFB40,0xF58B,0x0000, 0xFB40,0xF592,0x0000, 0xFB40,0xF676,0x0000, +0xFB40,0xF67D,0x0000, 0xFB40,0xF6AE,0x0000, 0xFB40,0xF6BF,0x0000, +0xFB40,0xF6EE,0x0000, 0xFB40,0xF7DB,0x0000, 0xFB40,0xF7E2,0x0000, +0xFB40,0xF7F3,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF9B8,0x0000, +0xFB40,0xF9BE,0x0000, 0xFB40,0xFA74,0x0000, 0xFB40,0xFACB,0x0000, +0xFB40,0xFAF9,0x0000, 0xFB40,0xFC73,0x0000, 0xFB40,0xFCF8,0x0000, +0xFB40,0xFF36,0x0000, 0xFB40,0xFF51,0x0000, 0xFB40,0xFF8A,0x0000, +0xFB40,0xFFBD,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x800C,0x0000, +0xFB41,0x8012,0x0000, 0xFB41,0x8033,0x0000, 0xFB41,0x807F,0x0000, +0xFB41,0x8089,0x0000, 0xFB41,0x81E3,0x0000, 0xFB41,0x81EA,0x0000, +0xFB41,0x81F3,0x0000, 0xFB41,0x81FC,0x0000, 0xFB41,0x820C,0x0000, +0xFB41,0x821B,0x0000, 0xFB41,0x821F,0x0000, 0xFB41,0x826E,0x0000, +0xFB41,0x8272,0x0000, 0xFB41,0x8278,0x0000, 0xFB41,0x864D,0x0000, +0xFB41,0x866B,0x0000, 0xFB41,0x8840,0x0000, 0xFB41,0x884C,0x0000, +0xFB41,0x8863,0x0000, 0xFB41,0x897E,0x0000, 0xFB41,0x898B,0x0000, +0xFB41,0x89D2,0x0000, 0xFB41,0x8A00,0x0000, 0xFB41,0x8C37,0x0000, +0xFB41,0x8C46,0x0000, 0xFB41,0x8C55,0x0000, 0xFB41,0x8C78,0x0000, +0xFB41,0x8C9D,0x0000, 0xFB41,0x8D64,0x0000, 0xFB41,0x8D70,0x0000, +0xFB41,0x8DB3,0x0000, 0xFB41,0x8EAB,0x0000, 0xFB41,0x8ECA,0x0000, +0xFB41,0x8F9B,0x0000, 0xFB41,0x8FB0,0x0000, 0xFB41,0x8FB5,0x0000, +0xFB41,0x9091,0x0000, 0xFB41,0x9149,0x0000, 0xFB41,0x91C6,0x0000, +0xFB41,0x91CC,0x0000, 0xFB41,0x91D1,0x0000, 0xFB41,0x9577,0x0000, +0xFB41,0x9580,0x0000, 0xFB41,0x961C,0x0000, 0xFB41,0x96B6,0x0000, +0xFB41,0x96B9,0x0000, 0xFB41,0x96E8,0x0000, 0xFB41,0x9751,0x0000, +0xFB41,0x975E,0x0000, 0xFB41,0x9762,0x0000, 0xFB41,0x9769,0x0000, +0xFB41,0x97CB,0x0000, 0xFB41,0x97ED,0x0000, 0xFB41,0x97F3,0x0000, +0xFB41,0x9801,0x0000, 0xFB41,0x98A8,0x0000, 0xFB41,0x98DB,0x0000, +0xFB41,0x98DF,0x0000, 0xFB41,0x9996,0x0000, 0xFB41,0x9999,0x0000, +0xFB41,0x99AC,0x0000, 0xFB41,0x9AA8,0x0000, 0xFB41,0x9AD8,0x0000, +0xFB41,0x9ADF,0x0000, 0xFB41,0x9B25,0x0000, 0xFB41,0x9B2F,0x0000, +0xFB41,0x9B32,0x0000, 0xFB41,0x9B3C,0x0000, 0xFB41,0x9B5A,0x0000, +0xFB41,0x9CE5,0x0000, 0xFB41,0x9E75,0x0000, 0xFB41,0x9E7F,0x0000, +0xFB41,0x9EA5,0x0000, 0xFB41,0x9EBB,0x0000, 0xFB41,0x9EC3,0x0000, +0xFB41,0x9ECD,0x0000, 0xFB41,0x9ED1,0x0000, 0xFB41,0x9EF9,0x0000, +0xFB41,0x9EFD,0x0000, 0xFB41,0x9F0E,0x0000, 0xFB41,0x9F13,0x0000, +0xFB41,0x9F20,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB41,0x9F4A,0x0000, +0xFB41,0x9F52,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB41,0x9F9C,0x0000, +0xFB41,0x9FA0,0x0000, 0xFBC0,0xAFD6,0x0000, 0xFBC0,0xAFD7,0x0000, +0xFBC0,0xAFD8,0x0000, 0xFBC0,0xAFD9,0x0000, 0xFBC0,0xAFDA,0x0000, +0xFBC0,0xAFDB,0x0000, 0xFBC0,0xAFDC,0x0000, 0xFBC0,0xAFDD,0x0000, +0xFBC0,0xAFDE,0x0000, 0xFBC0,0xAFDF,0x0000, 0xFBC0,0xAFE0,0x0000, +0xFBC0,0xAFE1,0x0000, 0xFBC0,0xAFE2,0x0000, 0xFBC0,0xAFE3,0x0000, +0xFBC0,0xAFE4,0x0000, 0xFBC0,0xAFE5,0x0000, 0xFBC0,0xAFE6,0x0000, +0xFBC0,0xAFE7,0x0000, 0xFBC0,0xAFE8,0x0000, 0xFBC0,0xAFE9,0x0000, +0xFBC0,0xAFEA,0x0000, 0xFBC0,0xAFEB,0x0000, 0xFBC0,0xAFEC,0x0000, +0xFBC0,0xAFED,0x0000, 0xFBC0,0xAFEE,0x0000, 0xFBC0,0xAFEF,0x0000, +0x0DAF,0x0000,0x0000, 0x0DB0,0x0000,0x0000, 0x0DB1,0x0000,0x0000, +0x0DB2,0x0000,0x0000, 0x0DB3,0x0000,0x0000, 0x0DB4,0x0000,0x0000, +0x0DB5,0x0000,0x0000, 0x0DB6,0x0000,0x0000, 0x0DB7,0x0000,0x0000, +0x0DB8,0x0000,0x0000, 0x0DB9,0x0000,0x0000, 0x0DBA,0x0000,0x0000, +0xFBC0,0xAFFC,0x0000, 0xFBC0,0xAFFD,0x0000, 0xFBC0,0xAFFE,0x0000, +0xFBC0,0xAFFF,0x0000 }; + +uint16 page030data[]= { /* 3000 (3 weights per char) */ +0x0209,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x0266,0x0000,0x0000, +0x02E2,0x0000,0x0000, 0x0DBB,0x0000,0x0000, 0x0E05,0x0000,0x0000, +0x1E5D,0x1E73,0x0000, 0x0E29,0x0000,0x0000, 0x02AE,0x0000,0x0000, +0x02AF,0x0000,0x0000, 0x02B0,0x0000,0x0000, 0x02B1,0x0000,0x0000, +0x02B2,0x0000,0x0000, 0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000, +0x02B5,0x0000,0x0000, 0x02B6,0x0000,0x0000, 0x02B7,0x0000,0x0000, +0x0DBC,0x0000,0x0000, 0x0DBD,0x0000,0x0000, 0x02B8,0x0000,0x0000, +0x02B9,0x0000,0x0000, 0x02BA,0x0000,0x0000, 0x02BB,0x0000,0x0000, +0x02BC,0x0000,0x0000, 0x02BD,0x0000,0x0000, 0x02BE,0x0000,0x0000, +0x02BF,0x0000,0x0000, 0x022B,0x0000,0x0000, 0x0283,0x0000,0x0000, +0x0284,0x0000,0x0000, 0x0285,0x0000,0x0000, 0x0DBE,0x0000,0x0000, +0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, +0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, +0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x022C,0x0000,0x0000, 0x0E07,0x0000,0x0000, 0x0E07,0x0000,0x0000, +0x0E08,0x0000,0x0000, 0x0E08,0x0000,0x0000, 0x0E09,0x0000,0x0000, +0x0DBC,0x0000,0x0000, 0x0DBF,0x0000,0x0000, 0xFB40,0xD341,0x0000, +0xFB40,0xD344,0x0000, 0xFB40,0xD345,0x0000, 0x0E06,0x0000,0x0000, +0x1E70,0x1E5E,0x0000, 0x02E3,0x0000,0x0000, 0x0DC0,0x0000,0x0000, +0x0DC1,0x0000,0x0000, 0xFBC0,0xB040,0x0000, 0x1E52,0x0000,0x0000, +0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E53,0x0000,0x0000, +0x1E54,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000, +0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E56,0x0000,0x0000, +0x1E57,0x0000,0x0000, 0x1E57,0x0000,0x0000, 0x1E58,0x0000,0x0000, +0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E59,0x0000,0x0000, +0x1E5A,0x0000,0x0000, 0x1E5A,0x0000,0x0000, 0x1E5B,0x0000,0x0000, +0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5C,0x0000,0x0000, +0x1E5D,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000, +0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E5F,0x0000,0x0000, +0x1E60,0x0000,0x0000, 0x1E60,0x0000,0x0000, 0x1E61,0x0000,0x0000, +0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E62,0x0000,0x0000, +0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000, +0x1E64,0x0000,0x0000, 0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000, +0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, 0x1E67,0x0000,0x0000, +0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, 0x1E6A,0x0000,0x0000, +0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000, +0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000, +0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000, +0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000, +0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000, +0x1E70,0x0000,0x0000, 0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, +0x1E73,0x0000,0x0000, 0x1E74,0x0000,0x0000, 0x1E75,0x0000,0x0000, +0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E76,0x0000,0x0000, +0x1E77,0x0000,0x0000, 0x1E77,0x0000,0x0000, 0x1E78,0x0000,0x0000, +0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000, +0x1E7C,0x0000,0x0000, 0x1E7D,0x0000,0x0000, 0x1E7D,0x0000,0x0000, +0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, +0x1E81,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E57,0x0000,0x0000, +0x1E5A,0x0000,0x0000, 0xFBC0,0xB097,0x0000, 0xFBC0,0xB098,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x021E,0x0000,0x0000, +0x021F,0x0000,0x0000, 0x0E0A,0x0000,0x0000, 0x0E0A,0x0000,0x0000, +0x1E77,0x1E79,0x0000, 0x022D,0x0000,0x0000, 0x1E52,0x0000,0x0000, +0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E53,0x0000,0x0000, +0x1E54,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000, +0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E56,0x0000,0x0000, +0x1E57,0x0000,0x0000, 0x1E57,0x0000,0x0000, 0x1E58,0x0000,0x0000, +0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E59,0x0000,0x0000, +0x1E5A,0x0000,0x0000, 0x1E5A,0x0000,0x0000, 0x1E5B,0x0000,0x0000, +0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5C,0x0000,0x0000, +0x1E5D,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000, +0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E5F,0x0000,0x0000, +0x1E60,0x0000,0x0000, 0x1E60,0x0000,0x0000, 0x1E61,0x0000,0x0000, +0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E62,0x0000,0x0000, +0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000, +0x1E64,0x0000,0x0000, 0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000, +0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, 0x1E67,0x0000,0x0000, +0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, 0x1E6A,0x0000,0x0000, +0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000, +0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000, +0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000, +0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000, +0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000, +0x1E70,0x0000,0x0000, 0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, +0x1E73,0x0000,0x0000, 0x1E74,0x0000,0x0000, 0x1E75,0x0000,0x0000, +0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E76,0x0000,0x0000, +0x1E77,0x0000,0x0000, 0x1E77,0x0000,0x0000, 0x1E78,0x0000,0x0000, +0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000, +0x1E7C,0x0000,0x0000, 0x1E7D,0x0000,0x0000, 0x1E7D,0x0000,0x0000, +0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, +0x1E81,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E57,0x0000,0x0000, +0x1E5A,0x0000,0x0000, 0x1E7D,0x0000,0x0000, 0x1E7E,0x0000,0x0000, +0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, 0x022E,0x0000,0x0000, +0x0E0B,0x0000,0x0000, 0x0E0C,0x0000,0x0000, 0x0E0C,0x0000,0x0000, +0x1E5B,0x1E65,0x0000 }; + +uint16 page031data[]= { /* 3100 (3 weights per char) */ +0xFBC0,0xB100,0x0000, 0xFBC0,0xB101,0x0000, 0xFBC0,0xB102,0x0000, +0xFBC0,0xB103,0x0000, 0xFBC0,0xB104,0x0000, 0x1E82,0x0000,0x0000, +0x1E83,0x0000,0x0000, 0x1E84,0x0000,0x0000, 0x1E85,0x0000,0x0000, +0x1E87,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x1E89,0x0000,0x0000, +0x1E8A,0x0000,0x0000, 0x1E8B,0x0000,0x0000, 0x1E8C,0x0000,0x0000, +0x1E8F,0x0000,0x0000, 0x1E90,0x0000,0x0000, 0x1E91,0x0000,0x0000, +0x1E92,0x0000,0x0000, 0x1E94,0x0000,0x0000, 0x1E95,0x0000,0x0000, +0x1E96,0x0000,0x0000, 0x1E97,0x0000,0x0000, 0x1E98,0x0000,0x0000, +0x1E99,0x0000,0x0000, 0x1E9A,0x0000,0x0000, 0x1E9B,0x0000,0x0000, +0x1E9C,0x0000,0x0000, 0x1E9E,0x0000,0x0000, 0x1E9F,0x0000,0x0000, +0x1EA1,0x0000,0x0000, 0x1EA2,0x0000,0x0000, 0x1EA3,0x0000,0x0000, +0x1EA4,0x0000,0x0000, 0x1EA5,0x0000,0x0000, 0x1EA6,0x0000,0x0000, +0x1EA7,0x0000,0x0000, 0x1EA9,0x0000,0x0000, 0x1EAD,0x0000,0x0000, +0x1EAE,0x0000,0x0000, 0x1EAF,0x0000,0x0000, 0x1EB0,0x0000,0x0000, +0x1E86,0x0000,0x0000, 0x1E8D,0x0000,0x0000, 0x1E93,0x0000,0x0000, +0xFBC0,0xB12D,0x0000, 0xFBC0,0xB12E,0x0000, 0xFBC0,0xB12F,0x0000, +0xFBC0,0xB130,0x0000, 0x1D62,0x0000,0x0000, 0x1D63,0x0000,0x0000, +0x1E02,0x0000,0x0000, 0x1D64,0x0000,0x0000, 0x1E04,0x0000,0x0000, +0x1E05,0x0000,0x0000, 0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000, +0x1D67,0x0000,0x0000, 0x1E08,0x0000,0x0000, 0x1E09,0x0000,0x0000, +0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, 0x1E0C,0x0000,0x0000, +0x1E0D,0x0000,0x0000, 0x1D7C,0x0000,0x0000, 0x1D68,0x0000,0x0000, +0x1D69,0x0000,0x0000, 0x1D6A,0x0000,0x0000, 0x1D83,0x0000,0x0000, +0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, 0x1D6D,0x0000,0x0000, +0x1D6E,0x0000,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000, +0x1D71,0x0000,0x0000, 0x1D72,0x0000,0x0000, 0x1D73,0x0000,0x0000, +0x1D74,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0x1DBF,0x0000,0x0000, +0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000, +0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000, +0x1DC6,0x0000,0x0000, 0x1DC7,0x0000,0x0000, 0x1DC8,0x0000,0x0000, +0x1DC9,0x0000,0x0000, 0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, +0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, +0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000, +0x1DD2,0x0000,0x0000, 0x1DBD,0x0000,0x0000, 0x1D76,0x0000,0x0000, +0x1D77,0x0000,0x0000, 0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000, +0x1E24,0x0000,0x0000, 0x1E26,0x0000,0x0000, 0x1E2B,0x0000,0x0000, +0x1E2F,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1D7E,0x0000,0x0000, +0x1E35,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0x1D7F,0x0000,0x0000, +0x1D80,0x0000,0x0000, 0x1D82,0x0000,0x0000, 0x1D84,0x0000,0x0000, +0x1D85,0x0000,0x0000, 0x1D89,0x0000,0x0000, 0x1D8B,0x0000,0x0000, +0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000, 0x1D8F,0x0000,0x0000, +0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000, 0x1D94,0x0000,0x0000, +0x1D98,0x0000,0x0000, 0x1DA2,0x0000,0x0000, 0x1DA9,0x0000,0x0000, +0x1DAE,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0x1E4A,0x0000,0x0000, +0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, 0x1DBB,0x0000,0x0000, +0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0x1DE5,0x0000,0x0000, +0x1DEE,0x0000,0x0000, 0x1DEF,0x0000,0x0000, 0x1DF1,0x0000,0x0000, +0x1DFB,0x0000,0x0000, 0x1DFE,0x0000,0x0000, 0xFBC0,0xB18F,0x0000, +0x0DC2,0x0000,0x0000, 0x0DC3,0x0000,0x0000, 0xFB40,0xCE00,0x0000, +0xFB40,0xCE8C,0x0000, 0xFB40,0xCE09,0x0000, 0xFB40,0xD6DB,0x0000, +0xFB40,0xCE0A,0x0000, 0xFB40,0xCE2D,0x0000, 0xFB40,0xCE0B,0x0000, +0xFB40,0xF532,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE19,0x0000, +0xFB40,0xCE01,0x0000, 0xFB40,0xD929,0x0000, 0xFB40,0xD730,0x0000, +0xFB40,0xCEBA,0x0000, 0x1E82,0x0000,0x0000, 0x1E98,0x0000,0x0000, +0x1E90,0x0000,0x0000, 0x1E8B,0x0000,0x0000, 0x1EA0,0x0000,0x0000, +0x1EA0,0x0000,0x0000, 0x1E9D,0x0000,0x0000, 0x1E9C,0x0000,0x0000, +0x1EAF,0x0000,0x0000, 0x1E9B,0x0000,0x0000, 0x1EAE,0x0000,0x0000, +0x1EAF,0x0000,0x0000, 0x1EAC,0x0000,0x0000, 0x1E8E,0x0000,0x0000, +0x1EA1,0x0000,0x0000, 0x1EA3,0x0000,0x0000, 0x1EAA,0x0000,0x0000, +0x1EAB,0x0000,0x0000, 0x1EA8,0x0000,0x0000, 0x1EAE,0x0000,0x0000, +0x1E83,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x1E8C,0x0000,0x0000, +0x1E8F,0x0000,0x0000, 0xFBC0,0xB1B8,0x0000, 0xFBC0,0xB1B9,0x0000, +0xFBC0,0xB1BA,0x0000, 0xFBC0,0xB1BB,0x0000, 0xFBC0,0xB1BC,0x0000, +0xFBC0,0xB1BD,0x0000, 0xFBC0,0xB1BE,0x0000, 0xFBC0,0xB1BF,0x0000, +0xFBC0,0xB1C0,0x0000, 0xFBC0,0xB1C1,0x0000, 0xFBC0,0xB1C2,0x0000, +0xFBC0,0xB1C3,0x0000, 0xFBC0,0xB1C4,0x0000, 0xFBC0,0xB1C5,0x0000, +0xFBC0,0xB1C6,0x0000, 0xFBC0,0xB1C7,0x0000, 0xFBC0,0xB1C8,0x0000, +0xFBC0,0xB1C9,0x0000, 0xFBC0,0xB1CA,0x0000, 0xFBC0,0xB1CB,0x0000, +0xFBC0,0xB1CC,0x0000, 0xFBC0,0xB1CD,0x0000, 0xFBC0,0xB1CE,0x0000, +0xFBC0,0xB1CF,0x0000, 0xFBC0,0xB1D0,0x0000, 0xFBC0,0xB1D1,0x0000, +0xFBC0,0xB1D2,0x0000, 0xFBC0,0xB1D3,0x0000, 0xFBC0,0xB1D4,0x0000, +0xFBC0,0xB1D5,0x0000, 0xFBC0,0xB1D6,0x0000, 0xFBC0,0xB1D7,0x0000, +0xFBC0,0xB1D8,0x0000, 0xFBC0,0xB1D9,0x0000, 0xFBC0,0xB1DA,0x0000, +0xFBC0,0xB1DB,0x0000, 0xFBC0,0xB1DC,0x0000, 0xFBC0,0xB1DD,0x0000, +0xFBC0,0xB1DE,0x0000, 0xFBC0,0xB1DF,0x0000, 0xFBC0,0xB1E0,0x0000, +0xFBC0,0xB1E1,0x0000, 0xFBC0,0xB1E2,0x0000, 0xFBC0,0xB1E3,0x0000, +0xFBC0,0xB1E4,0x0000, 0xFBC0,0xB1E5,0x0000, 0xFBC0,0xB1E6,0x0000, +0xFBC0,0xB1E7,0x0000, 0xFBC0,0xB1E8,0x0000, 0xFBC0,0xB1E9,0x0000, +0xFBC0,0xB1EA,0x0000, 0xFBC0,0xB1EB,0x0000, 0xFBC0,0xB1EC,0x0000, +0xFBC0,0xB1ED,0x0000, 0xFBC0,0xB1EE,0x0000, 0xFBC0,0xB1EF,0x0000, +0x1E59,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000, +0x1E65,0x0000,0x0000, 0x1E68,0x0000,0x0000, 0x1E6B,0x0000,0x0000, +0x1E6C,0x0000,0x0000, 0x1E6D,0x0000,0x0000, 0x1E6E,0x0000,0x0000, +0x1E6F,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E78,0x0000,0x0000, +0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000, +0x1E7C,0x0000,0x0000 }; + +uint16 page032data[]= { /* 3200 (8 weights per char) */ +0x0288,0x1D62,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D64,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D65,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D67,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D68,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D69,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6B,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6D,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6E,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D70,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D71,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D72,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D73,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D74,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D62,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D64,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D65,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D67,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D68,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D69,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6B,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6D,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6E,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D70,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D71,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D72,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D73,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D74,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6E,0x1DCB,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0x1D6D,0x1DC6,0x1D6E,0x1DC2,0x1E03,0x0289,0x0000, +0x0288,0x1D6D,0x1DC6,0x1D74,0x1DCB,0x0289,0x0000,0x0000, +0xFBC0,0xB21F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCE00,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCE8C,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCE09,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD6DB,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCE94,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD16D,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCE03,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD16B,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCE5D,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD341,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xE708,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xF06B,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xEC34,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xE728,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB41,0x91D1,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD71F,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xE5E5,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xE82A,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xE709,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xF93E,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD40D,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xF279,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB41,0x8CA1,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xF95D,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD2B4,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCEE3,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD47C,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xDB66,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xF6E3,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCF01,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB41,0x8CC7,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xD354,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xF96D,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB40,0xCF11,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB41,0x81EA,0x0289,0x0000,0x0000,0x0000,0x0000, +0x0288,0xFB41,0x81F3,0x0289,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB244,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB245,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB246,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB247,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB248,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB249,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB24A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB24B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB24C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB24D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB24E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB24F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x1002,0x0E8B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D67,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D68,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D69,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D6E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D70,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D71,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D73,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D74,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D62,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D64,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D65,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D67,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D68,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D69,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D6B,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D6D,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D6E,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D70,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D71,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D72,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D73,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D74,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1D70,0x1DBE,0x1E0F,0x1D62,0x1DC6,0x0000,0x0000,0x0000, +0x1D6E,0x1DCB,0x1D6D,0x1DD1,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB27E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0DC4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE8C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE09,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD6DB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE94,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD16D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE03,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD16B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD341,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF06B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xEC34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE728,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB41,0x91D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD71F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE82A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE709,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF93E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD40D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF279,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB41,0x8CA1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF95D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD2B4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF9D8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF537,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD973,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB41,0x9069,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD12A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD370,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xECE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB41,0x9805,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCF11,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD199,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE0A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCE0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xDDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD3F3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD33B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xDB97,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xDB66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xF6E3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xCF01,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB41,0x8CC7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD354,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD91C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0x0E32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0x0E29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E30,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E31,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E32,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E29,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x0FC0,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E8B,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x1002,0x0E6D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E53,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E54,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E61,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E67,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E68,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E69,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E70,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E71,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E73,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E74,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E75,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E76,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E77,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E78,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E79,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E80,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC0,0xB2FF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +uint16 page033data[]= { /* 3300 (9 weights per char) */ +0x1E52,0x1E6B,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E52,0x1E7A,0x1E6D,0x1E52,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E52,0x1E81,0x1E6E,0x1E52,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E52,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E53,0x1E67,0x1E81,0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E53,0x1E81,0x1E62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E54,0x1E56,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E55,0x1E5E,0x1E59,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000, +0x1E55,0x0E0B,0x1E57,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E56,0x1E81,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E56,0x0E0B,0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E57,0x1E53,0x1E79,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E57,0x1E78,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E57,0x1E7C,0x1E79,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E57,0x1E7C,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E57,0x1E81,0x1E70,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E67,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E76,0x1E79,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E7A,0x1E61,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E7C,0x1E59,0x1E78,0x1E72,0x0000,0x0000,0x0000,0x0000, +0x1E58,0x1E7C,0x1E73,0x0E0B,0x1E65,0x1E7A,0x0000,0x0000,0x0000, +0x1E58,0x1E7C,0x1E7D,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000, +0x1E59,0x1E78,0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E59,0x1E78,0x1E72,0x1E65,0x1E81,0x0000,0x0000,0x0000,0x0000, +0x1E59,0x1E7A,0x1E5F,0x1E53,0x1E7C,0x0000,0x0000,0x0000,0x0000, +0x1E59,0x1E7C,0x0E0B,0x1E69,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5A,0x0E0B,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5B,0x1E7A,0x1E66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5B,0x0E0B,0x1E6F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5C,0x1E53,0x1E59,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5C,0x1E81,0x1E62,0x0E0B,0x1E72,0x0000,0x0000,0x0000,0x0000, +0x1E5D,0x1E79,0x1E81,0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5F,0x1E81,0x1E62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E5F,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E61,0x0E0B,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E64,0x1E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E65,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E66,0x1E6A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6A,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6B,0x1E53,0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6B,0x0E0B,0x1E5F,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000, +0x1E6B,0x0E0B,0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6B,0x0E0B,0x1E7B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6C,0x1E52,0x1E5E,0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000, +0x1E6C,0x1E59,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6C,0x1E5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6C,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6D,0x1E52,0x1E78,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000, +0x1E6D,0x1E53,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6D,0x1E63,0x1E5D,0x1E55,0x1E7A,0x0000,0x0000,0x0000,0x0000, +0x1E6D,0x1E78,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x1E59,0x1E61,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x1E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x1E67,0x1E6C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x1E7A,0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x1E81,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x0E0B,0x1E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6E,0x0E0B,0x1E61,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x1E53,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x1E7A,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E6F,0x0E0B,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E70,0x1E53,0x1E59,0x1E7C,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E70,0x1E53,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E70,0x1E63,0x1E6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E70,0x1E7A,0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E70,0x1E81,0x1E5D,0x1E77,0x1E81,0x0000,0x0000,0x0000,0x0000, +0x1E71,0x1E59,0x1E7C,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E71,0x1E79,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E71,0x1E79,0x1E6B,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000, +0x1E73,0x1E57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E73,0x1E57,0x1E65,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E73,0x0E0B,0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E75,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E75,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E76,0x1E52,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E79,0x1E63,0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E79,0x1E78,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7A,0x1E6C,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7A,0x0E0B,0x1E6D,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7B,0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1E7B,0x1E81,0x1E65,0x1E5A,0x1E81,0x0000,0x0000,0x0000,0x0000, +0x1E7D,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E29,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E30,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E31,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E32,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E29,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2F,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E30,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E31,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E32,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E29,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E33,0x101F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E4A,0x0E33,0x0FC0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F82,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x101F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xDE73,0xFB40,0xE210,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE62D,0xFB40,0xD48C,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xD927,0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE60E,0xFB40,0xECBB,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFB40,0xE82A,0xFB40,0xDF0F,0xFB40,0xCF1A,0xFB40,0xF93E,0x0000, +0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0E33,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0E60,0x0E33,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0EB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0EB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x0EB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1002,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EB9,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0437,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0437,0x0FEA,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0E33,0x0E6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0E33,0x0E6D,0x0437,0x0FEA,0x0000,0x0000,0x0000,0x0000, +0x0FC0,0x0E33,0x0E6D,0x0437,0x0FEA,0x0E2B,0x0000,0x0000,0x0000, +0x0FA7,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F64,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x10F8,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x1109,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x1109,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E33,0x025D,0x0F5B,0x025D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E4A,0x0FB4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0E6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0437,0x0F21,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E60,0x0F82,0x025D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E6D,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x105E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EE1,0x0FA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EFB,0x0F64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0F21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F21,0x1002,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0F64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x0F82,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F2E,0x105A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0EFB,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0F5B,0x0F82,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0EE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x025D,0x0F5B,0x025D,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0FA7,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FA7,0x0FC0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FEA,0x0FC0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0FEA,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1051,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1044,0x0437,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E33,0x0437,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2F,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E30,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E31,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E32,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E29,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E2F,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E30,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E31,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2A,0x0E32,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E29,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E2F,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E30,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E31,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2B,0x0E32,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E29,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0E2C,0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, +0x0EC1,0x0E33,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +uint16 page04Ddata[]= { /* 4D00 (3 weights per char) */ +0xFB80,0xCD00,0x0000, 0xFB80,0xCD01,0x0000, 0xFB80,0xCD02,0x0000, +0xFB80,0xCD03,0x0000, 0xFB80,0xCD04,0x0000, 0xFB80,0xCD05,0x0000, +0xFB80,0xCD06,0x0000, 0xFB80,0xCD07,0x0000, 0xFB80,0xCD08,0x0000, +0xFB80,0xCD09,0x0000, 0xFB80,0xCD0A,0x0000, 0xFB80,0xCD0B,0x0000, +0xFB80,0xCD0C,0x0000, 0xFB80,0xCD0D,0x0000, 0xFB80,0xCD0E,0x0000, +0xFB80,0xCD0F,0x0000, 0xFB80,0xCD10,0x0000, 0xFB80,0xCD11,0x0000, +0xFB80,0xCD12,0x0000, 0xFB80,0xCD13,0x0000, 0xFB80,0xCD14,0x0000, +0xFB80,0xCD15,0x0000, 0xFB80,0xCD16,0x0000, 0xFB80,0xCD17,0x0000, +0xFB80,0xCD18,0x0000, 0xFB80,0xCD19,0x0000, 0xFB80,0xCD1A,0x0000, +0xFB80,0xCD1B,0x0000, 0xFB80,0xCD1C,0x0000, 0xFB80,0xCD1D,0x0000, +0xFB80,0xCD1E,0x0000, 0xFB80,0xCD1F,0x0000, 0xFB80,0xCD20,0x0000, +0xFB80,0xCD21,0x0000, 0xFB80,0xCD22,0x0000, 0xFB80,0xCD23,0x0000, +0xFB80,0xCD24,0x0000, 0xFB80,0xCD25,0x0000, 0xFB80,0xCD26,0x0000, +0xFB80,0xCD27,0x0000, 0xFB80,0xCD28,0x0000, 0xFB80,0xCD29,0x0000, +0xFB80,0xCD2A,0x0000, 0xFB80,0xCD2B,0x0000, 0xFB80,0xCD2C,0x0000, +0xFB80,0xCD2D,0x0000, 0xFB80,0xCD2E,0x0000, 0xFB80,0xCD2F,0x0000, +0xFB80,0xCD30,0x0000, 0xFB80,0xCD31,0x0000, 0xFB80,0xCD32,0x0000, +0xFB80,0xCD33,0x0000, 0xFB80,0xCD34,0x0000, 0xFB80,0xCD35,0x0000, +0xFB80,0xCD36,0x0000, 0xFB80,0xCD37,0x0000, 0xFB80,0xCD38,0x0000, +0xFB80,0xCD39,0x0000, 0xFB80,0xCD3A,0x0000, 0xFB80,0xCD3B,0x0000, +0xFB80,0xCD3C,0x0000, 0xFB80,0xCD3D,0x0000, 0xFB80,0xCD3E,0x0000, +0xFB80,0xCD3F,0x0000, 0xFB80,0xCD40,0x0000, 0xFB80,0xCD41,0x0000, +0xFB80,0xCD42,0x0000, 0xFB80,0xCD43,0x0000, 0xFB80,0xCD44,0x0000, +0xFB80,0xCD45,0x0000, 0xFB80,0xCD46,0x0000, 0xFB80,0xCD47,0x0000, +0xFB80,0xCD48,0x0000, 0xFB80,0xCD49,0x0000, 0xFB80,0xCD4A,0x0000, +0xFB80,0xCD4B,0x0000, 0xFB80,0xCD4C,0x0000, 0xFB80,0xCD4D,0x0000, +0xFB80,0xCD4E,0x0000, 0xFB80,0xCD4F,0x0000, 0xFB80,0xCD50,0x0000, +0xFB80,0xCD51,0x0000, 0xFB80,0xCD52,0x0000, 0xFB80,0xCD53,0x0000, +0xFB80,0xCD54,0x0000, 0xFB80,0xCD55,0x0000, 0xFB80,0xCD56,0x0000, +0xFB80,0xCD57,0x0000, 0xFB80,0xCD58,0x0000, 0xFB80,0xCD59,0x0000, +0xFB80,0xCD5A,0x0000, 0xFB80,0xCD5B,0x0000, 0xFB80,0xCD5C,0x0000, +0xFB80,0xCD5D,0x0000, 0xFB80,0xCD5E,0x0000, 0xFB80,0xCD5F,0x0000, +0xFB80,0xCD60,0x0000, 0xFB80,0xCD61,0x0000, 0xFB80,0xCD62,0x0000, +0xFB80,0xCD63,0x0000, 0xFB80,0xCD64,0x0000, 0xFB80,0xCD65,0x0000, +0xFB80,0xCD66,0x0000, 0xFB80,0xCD67,0x0000, 0xFB80,0xCD68,0x0000, +0xFB80,0xCD69,0x0000, 0xFB80,0xCD6A,0x0000, 0xFB80,0xCD6B,0x0000, +0xFB80,0xCD6C,0x0000, 0xFB80,0xCD6D,0x0000, 0xFB80,0xCD6E,0x0000, +0xFB80,0xCD6F,0x0000, 0xFB80,0xCD70,0x0000, 0xFB80,0xCD71,0x0000, +0xFB80,0xCD72,0x0000, 0xFB80,0xCD73,0x0000, 0xFB80,0xCD74,0x0000, +0xFB80,0xCD75,0x0000, 0xFB80,0xCD76,0x0000, 0xFB80,0xCD77,0x0000, +0xFB80,0xCD78,0x0000, 0xFB80,0xCD79,0x0000, 0xFB80,0xCD7A,0x0000, +0xFB80,0xCD7B,0x0000, 0xFB80,0xCD7C,0x0000, 0xFB80,0xCD7D,0x0000, +0xFB80,0xCD7E,0x0000, 0xFB80,0xCD7F,0x0000, 0xFB80,0xCD80,0x0000, +0xFB80,0xCD81,0x0000, 0xFB80,0xCD82,0x0000, 0xFB80,0xCD83,0x0000, +0xFB80,0xCD84,0x0000, 0xFB80,0xCD85,0x0000, 0xFB80,0xCD86,0x0000, +0xFB80,0xCD87,0x0000, 0xFB80,0xCD88,0x0000, 0xFB80,0xCD89,0x0000, +0xFB80,0xCD8A,0x0000, 0xFB80,0xCD8B,0x0000, 0xFB80,0xCD8C,0x0000, +0xFB80,0xCD8D,0x0000, 0xFB80,0xCD8E,0x0000, 0xFB80,0xCD8F,0x0000, +0xFB80,0xCD90,0x0000, 0xFB80,0xCD91,0x0000, 0xFB80,0xCD92,0x0000, +0xFB80,0xCD93,0x0000, 0xFB80,0xCD94,0x0000, 0xFB80,0xCD95,0x0000, +0xFB80,0xCD96,0x0000, 0xFB80,0xCD97,0x0000, 0xFB80,0xCD98,0x0000, +0xFB80,0xCD99,0x0000, 0xFB80,0xCD9A,0x0000, 0xFB80,0xCD9B,0x0000, +0xFB80,0xCD9C,0x0000, 0xFB80,0xCD9D,0x0000, 0xFB80,0xCD9E,0x0000, +0xFB80,0xCD9F,0x0000, 0xFB80,0xCDA0,0x0000, 0xFB80,0xCDA1,0x0000, +0xFB80,0xCDA2,0x0000, 0xFB80,0xCDA3,0x0000, 0xFB80,0xCDA4,0x0000, +0xFB80,0xCDA5,0x0000, 0xFB80,0xCDA6,0x0000, 0xFB80,0xCDA7,0x0000, +0xFB80,0xCDA8,0x0000, 0xFB80,0xCDA9,0x0000, 0xFB80,0xCDAA,0x0000, +0xFB80,0xCDAB,0x0000, 0xFB80,0xCDAC,0x0000, 0xFB80,0xCDAD,0x0000, +0xFB80,0xCDAE,0x0000, 0xFB80,0xCDAF,0x0000, 0xFB80,0xCDB0,0x0000, +0xFB80,0xCDB1,0x0000, 0xFB80,0xCDB2,0x0000, 0xFB80,0xCDB3,0x0000, +0xFB80,0xCDB4,0x0000, 0xFB80,0xCDB5,0x0000, 0xFBC0,0xCDB6,0x0000, +0xFBC0,0xCDB7,0x0000, 0xFBC0,0xCDB8,0x0000, 0xFBC0,0xCDB9,0x0000, +0xFBC0,0xCDBA,0x0000, 0xFBC0,0xCDBB,0x0000, 0xFBC0,0xCDBC,0x0000, +0xFBC0,0xCDBD,0x0000, 0xFBC0,0xCDBE,0x0000, 0xFBC0,0xCDBF,0x0000, +0x0B37,0x0000,0x0000, 0x0B38,0x0000,0x0000, 0x0B39,0x0000,0x0000, +0x0B3A,0x0000,0x0000, 0x0B3B,0x0000,0x0000, 0x0B3C,0x0000,0x0000, +0x0B3D,0x0000,0x0000, 0x0B3E,0x0000,0x0000, 0x0B3F,0x0000,0x0000, +0x0B40,0x0000,0x0000, 0x0B41,0x0000,0x0000, 0x0B42,0x0000,0x0000, +0x0B43,0x0000,0x0000, 0x0B44,0x0000,0x0000, 0x0B45,0x0000,0x0000, +0x0B46,0x0000,0x0000, 0x0B47,0x0000,0x0000, 0x0B48,0x0000,0x0000, +0x0B49,0x0000,0x0000, 0x0B4A,0x0000,0x0000, 0x0B4B,0x0000,0x0000, +0x0B4C,0x0000,0x0000, 0x0B4D,0x0000,0x0000, 0x0B4E,0x0000,0x0000, +0x0B4F,0x0000,0x0000, 0x0B50,0x0000,0x0000, 0x0B51,0x0000,0x0000, +0x0B52,0x0000,0x0000, 0x0B53,0x0000,0x0000, 0x0B54,0x0000,0x0000, +0x0B55,0x0000,0x0000, 0x0B56,0x0000,0x0000, 0x0B57,0x0000,0x0000, +0x0B58,0x0000,0x0000, 0x0B59,0x0000,0x0000, 0x0B5A,0x0000,0x0000, +0x0B5B,0x0000,0x0000, 0x0B5C,0x0000,0x0000, 0x0B5D,0x0000,0x0000, +0x0B5E,0x0000,0x0000, 0x0B5F,0x0000,0x0000, 0x0B60,0x0000,0x0000, +0x0B61,0x0000,0x0000, 0x0B62,0x0000,0x0000, 0x0B63,0x0000,0x0000, +0x0B64,0x0000,0x0000, 0x0B65,0x0000,0x0000, 0x0B66,0x0000,0x0000, +0x0B67,0x0000,0x0000, 0x0B68,0x0000,0x0000, 0x0B69,0x0000,0x0000, +0x0B6A,0x0000,0x0000, 0x0B6B,0x0000,0x0000, 0x0B6C,0x0000,0x0000, +0x0B6D,0x0000,0x0000, 0x0B6E,0x0000,0x0000, 0x0B6F,0x0000,0x0000, +0x0B70,0x0000,0x0000, 0x0B71,0x0000,0x0000, 0x0B72,0x0000,0x0000, +0x0B73,0x0000,0x0000, 0x0B74,0x0000,0x0000, 0x0B75,0x0000,0x0000, +0x0B76,0x0000,0x0000 }; + +uint16 page0A0data[]= { /* A000 (2 weights per char) */ +0x1EB1,0x0000, 0x1EB2,0x0000, 0x1EB3,0x0000, 0x1EB4,0x0000, +0x1EB5,0x0000, 0x1EB6,0x0000, 0x1EB7,0x0000, 0x1EB8,0x0000, +0x1EB9,0x0000, 0x1EBA,0x0000, 0x1EBB,0x0000, 0x1EBC,0x0000, +0x1EBD,0x0000, 0x1EBE,0x0000, 0x1EBF,0x0000, 0x1EC0,0x0000, +0x1EC1,0x0000, 0x1EC2,0x0000, 0x1EC3,0x0000, 0x1EC4,0x0000, +0x1EC5,0x0000, 0x1EC6,0x0000, 0x1EC7,0x0000, 0x1EC8,0x0000, +0x1EC9,0x0000, 0x1ECA,0x0000, 0x1ECB,0x0000, 0x1ECC,0x0000, +0x1ECD,0x0000, 0x1ECE,0x0000, 0x1ECF,0x0000, 0x1ED0,0x0000, +0x1ED1,0x0000, 0x1ED2,0x0000, 0x1ED3,0x0000, 0x1ED4,0x0000, +0x1ED5,0x0000, 0x1ED6,0x0000, 0x1ED7,0x0000, 0x1ED8,0x0000, +0x1ED9,0x0000, 0x1EDA,0x0000, 0x1EDB,0x0000, 0x1EDC,0x0000, +0x1EDD,0x0000, 0x1EDE,0x0000, 0x1EDF,0x0000, 0x1EE0,0x0000, +0x1EE1,0x0000, 0x1EE2,0x0000, 0x1EE3,0x0000, 0x1EE4,0x0000, +0x1EE5,0x0000, 0x1EE6,0x0000, 0x1EE7,0x0000, 0x1EE8,0x0000, +0x1EE9,0x0000, 0x1EEA,0x0000, 0x1EEB,0x0000, 0x1EEC,0x0000, +0x1EED,0x0000, 0x1EEE,0x0000, 0x1EEF,0x0000, 0x1EF0,0x0000, +0x1EF1,0x0000, 0x1EF2,0x0000, 0x1EF3,0x0000, 0x1EF4,0x0000, +0x1EF5,0x0000, 0x1EF6,0x0000, 0x1EF7,0x0000, 0x1EF8,0x0000, +0x1EF9,0x0000, 0x1EFA,0x0000, 0x1EFB,0x0000, 0x1EFC,0x0000, +0x1EFD,0x0000, 0x1EFE,0x0000, 0x1EFF,0x0000, 0x1F00,0x0000, +0x1F01,0x0000, 0x1F02,0x0000, 0x1F03,0x0000, 0x1F04,0x0000, +0x1F05,0x0000, 0x1F06,0x0000, 0x1F07,0x0000, 0x1F08,0x0000, +0x1F09,0x0000, 0x1F0A,0x0000, 0x1F0B,0x0000, 0x1F0C,0x0000, +0x1F0D,0x0000, 0x1F0E,0x0000, 0x1F0F,0x0000, 0x1F10,0x0000, +0x1F11,0x0000, 0x1F12,0x0000, 0x1F13,0x0000, 0x1F14,0x0000, +0x1F15,0x0000, 0x1F16,0x0000, 0x1F17,0x0000, 0x1F18,0x0000, +0x1F19,0x0000, 0x1F1A,0x0000, 0x1F1B,0x0000, 0x1F1C,0x0000, +0x1F1D,0x0000, 0x1F1E,0x0000, 0x1F1F,0x0000, 0x1F20,0x0000, +0x1F21,0x0000, 0x1F22,0x0000, 0x1F23,0x0000, 0x1F24,0x0000, +0x1F25,0x0000, 0x1F26,0x0000, 0x1F27,0x0000, 0x1F28,0x0000, +0x1F29,0x0000, 0x1F2A,0x0000, 0x1F2B,0x0000, 0x1F2C,0x0000, +0x1F2D,0x0000, 0x1F2E,0x0000, 0x1F2F,0x0000, 0x1F30,0x0000, +0x1F31,0x0000, 0x1F32,0x0000, 0x1F33,0x0000, 0x1F34,0x0000, +0x1F35,0x0000, 0x1F36,0x0000, 0x1F37,0x0000, 0x1F38,0x0000, +0x1F39,0x0000, 0x1F3A,0x0000, 0x1F3B,0x0000, 0x1F3C,0x0000, +0x1F3D,0x0000, 0x1F3E,0x0000, 0x1F3F,0x0000, 0x1F40,0x0000, +0x1F41,0x0000, 0x1F42,0x0000, 0x1F43,0x0000, 0x1F44,0x0000, +0x1F45,0x0000, 0x1F46,0x0000, 0x1F47,0x0000, 0x1F48,0x0000, +0x1F49,0x0000, 0x1F4A,0x0000, 0x1F4B,0x0000, 0x1F4C,0x0000, +0x1F4D,0x0000, 0x1F4E,0x0000, 0x1F4F,0x0000, 0x1F50,0x0000, +0x1F51,0x0000, 0x1F52,0x0000, 0x1F53,0x0000, 0x1F54,0x0000, +0x1F55,0x0000, 0x1F56,0x0000, 0x1F57,0x0000, 0x1F58,0x0000, +0x1F59,0x0000, 0x1F5A,0x0000, 0x1F5B,0x0000, 0x1F5C,0x0000, +0x1F5D,0x0000, 0x1F5E,0x0000, 0x1F5F,0x0000, 0x1F60,0x0000, +0x1F61,0x0000, 0x1F62,0x0000, 0x1F63,0x0000, 0x1F64,0x0000, +0x1F65,0x0000, 0x1F66,0x0000, 0x1F67,0x0000, 0x1F68,0x0000, +0x1F69,0x0000, 0x1F6A,0x0000, 0x1F6B,0x0000, 0x1F6C,0x0000, +0x1F6D,0x0000, 0x1F6E,0x0000, 0x1F6F,0x0000, 0x1F70,0x0000, +0x1F71,0x0000, 0x1F72,0x0000, 0x1F73,0x0000, 0x1F74,0x0000, +0x1F75,0x0000, 0x1F76,0x0000, 0x1F77,0x0000, 0x1F78,0x0000, +0x1F79,0x0000, 0x1F7A,0x0000, 0x1F7B,0x0000, 0x1F7C,0x0000, +0x1F7D,0x0000, 0x1F7E,0x0000, 0x1F7F,0x0000, 0x1F80,0x0000, +0x1F81,0x0000, 0x1F82,0x0000, 0x1F83,0x0000, 0x1F84,0x0000, +0x1F85,0x0000, 0x1F86,0x0000, 0x1F87,0x0000, 0x1F88,0x0000, +0x1F89,0x0000, 0x1F8A,0x0000, 0x1F8B,0x0000, 0x1F8C,0x0000, +0x1F8D,0x0000, 0x1F8E,0x0000, 0x1F8F,0x0000, 0x1F90,0x0000, +0x1F91,0x0000, 0x1F92,0x0000, 0x1F93,0x0000, 0x1F94,0x0000, +0x1F95,0x0000, 0x1F96,0x0000, 0x1F97,0x0000, 0x1F98,0x0000, +0x1F99,0x0000, 0x1F9A,0x0000, 0x1F9B,0x0000, 0x1F9C,0x0000, +0x1F9D,0x0000, 0x1F9E,0x0000, 0x1F9F,0x0000, 0x1FA0,0x0000, +0x1FA1,0x0000, 0x1FA2,0x0000, 0x1FA3,0x0000, 0x1FA4,0x0000, +0x1FA5,0x0000, 0x1FA6,0x0000, 0x1FA7,0x0000, 0x1FA8,0x0000, +0x1FA9,0x0000, 0x1FAA,0x0000, 0x1FAB,0x0000, 0x1FAC,0x0000, +0x1FAD,0x0000, 0x1FAE,0x0000, 0x1FAF,0x0000, 0x1FB0,0x0000 +}; + +uint16 page0A1data[]= { /* A100 (2 weights per char) */ +0x1FB1,0x0000, 0x1FB2,0x0000, 0x1FB3,0x0000, 0x1FB4,0x0000, +0x1FB5,0x0000, 0x1FB6,0x0000, 0x1FB7,0x0000, 0x1FB8,0x0000, +0x1FB9,0x0000, 0x1FBA,0x0000, 0x1FBB,0x0000, 0x1FBC,0x0000, +0x1FBD,0x0000, 0x1FBE,0x0000, 0x1FBF,0x0000, 0x1FC0,0x0000, +0x1FC1,0x0000, 0x1FC2,0x0000, 0x1FC3,0x0000, 0x1FC4,0x0000, +0x1FC5,0x0000, 0x1FC6,0x0000, 0x1FC7,0x0000, 0x1FC8,0x0000, +0x1FC9,0x0000, 0x1FCA,0x0000, 0x1FCB,0x0000, 0x1FCC,0x0000, +0x1FCD,0x0000, 0x1FCE,0x0000, 0x1FCF,0x0000, 0x1FD0,0x0000, +0x1FD1,0x0000, 0x1FD2,0x0000, 0x1FD3,0x0000, 0x1FD4,0x0000, +0x1FD5,0x0000, 0x1FD6,0x0000, 0x1FD7,0x0000, 0x1FD8,0x0000, +0x1FD9,0x0000, 0x1FDA,0x0000, 0x1FDB,0x0000, 0x1FDC,0x0000, +0x1FDD,0x0000, 0x1FDE,0x0000, 0x1FDF,0x0000, 0x1FE0,0x0000, +0x1FE1,0x0000, 0x1FE2,0x0000, 0x1FE3,0x0000, 0x1FE4,0x0000, +0x1FE5,0x0000, 0x1FE6,0x0000, 0x1FE7,0x0000, 0x1FE8,0x0000, +0x1FE9,0x0000, 0x1FEA,0x0000, 0x1FEB,0x0000, 0x1FEC,0x0000, +0x1FED,0x0000, 0x1FEE,0x0000, 0x1FEF,0x0000, 0x1FF0,0x0000, +0x1FF1,0x0000, 0x1FF2,0x0000, 0x1FF3,0x0000, 0x1FF4,0x0000, +0x1FF5,0x0000, 0x1FF6,0x0000, 0x1FF7,0x0000, 0x1FF8,0x0000, +0x1FF9,0x0000, 0x1FFA,0x0000, 0x1FFB,0x0000, 0x1FFC,0x0000, +0x1FFD,0x0000, 0x1FFE,0x0000, 0x1FFF,0x0000, 0x2000,0x0000, +0x2001,0x0000, 0x2002,0x0000, 0x2003,0x0000, 0x2004,0x0000, +0x2005,0x0000, 0x2006,0x0000, 0x2007,0x0000, 0x2008,0x0000, +0x2009,0x0000, 0x200A,0x0000, 0x200B,0x0000, 0x200C,0x0000, +0x200D,0x0000, 0x200E,0x0000, 0x200F,0x0000, 0x2010,0x0000, +0x2011,0x0000, 0x2012,0x0000, 0x2013,0x0000, 0x2014,0x0000, +0x2015,0x0000, 0x2016,0x0000, 0x2017,0x0000, 0x2018,0x0000, +0x2019,0x0000, 0x201A,0x0000, 0x201B,0x0000, 0x201C,0x0000, +0x201D,0x0000, 0x201E,0x0000, 0x201F,0x0000, 0x2020,0x0000, +0x2021,0x0000, 0x2022,0x0000, 0x2023,0x0000, 0x2024,0x0000, +0x2025,0x0000, 0x2026,0x0000, 0x2027,0x0000, 0x2028,0x0000, +0x2029,0x0000, 0x202A,0x0000, 0x202B,0x0000, 0x202C,0x0000, +0x202D,0x0000, 0x202E,0x0000, 0x202F,0x0000, 0x2030,0x0000, +0x2031,0x0000, 0x2032,0x0000, 0x2033,0x0000, 0x2034,0x0000, +0x2035,0x0000, 0x2036,0x0000, 0x2037,0x0000, 0x2038,0x0000, +0x2039,0x0000, 0x203A,0x0000, 0x203B,0x0000, 0x203C,0x0000, +0x203D,0x0000, 0x203E,0x0000, 0x203F,0x0000, 0x2040,0x0000, +0x2041,0x0000, 0x2042,0x0000, 0x2043,0x0000, 0x2044,0x0000, +0x2045,0x0000, 0x2046,0x0000, 0x2047,0x0000, 0x2048,0x0000, +0x2049,0x0000, 0x204A,0x0000, 0x204B,0x0000, 0x204C,0x0000, +0x204D,0x0000, 0x204E,0x0000, 0x204F,0x0000, 0x2050,0x0000, +0x2051,0x0000, 0x2052,0x0000, 0x2053,0x0000, 0x2054,0x0000, +0x2055,0x0000, 0x2056,0x0000, 0x2057,0x0000, 0x2058,0x0000, +0x2059,0x0000, 0x205A,0x0000, 0x205B,0x0000, 0x205C,0x0000, +0x205D,0x0000, 0x205E,0x0000, 0x205F,0x0000, 0x2060,0x0000, +0x2061,0x0000, 0x2062,0x0000, 0x2063,0x0000, 0x2064,0x0000, +0x2065,0x0000, 0x2066,0x0000, 0x2067,0x0000, 0x2068,0x0000, +0x2069,0x0000, 0x206A,0x0000, 0x206B,0x0000, 0x206C,0x0000, +0x206D,0x0000, 0x206E,0x0000, 0x206F,0x0000, 0x2070,0x0000, +0x2071,0x0000, 0x2072,0x0000, 0x2073,0x0000, 0x2074,0x0000, +0x2075,0x0000, 0x2076,0x0000, 0x2077,0x0000, 0x2078,0x0000, +0x2079,0x0000, 0x207A,0x0000, 0x207B,0x0000, 0x207C,0x0000, +0x207D,0x0000, 0x207E,0x0000, 0x207F,0x0000, 0x2080,0x0000, +0x2081,0x0000, 0x2082,0x0000, 0x2083,0x0000, 0x2084,0x0000, +0x2085,0x0000, 0x2086,0x0000, 0x2087,0x0000, 0x2088,0x0000, +0x2089,0x0000, 0x208A,0x0000, 0x208B,0x0000, 0x208C,0x0000, +0x208D,0x0000, 0x208E,0x0000, 0x208F,0x0000, 0x2090,0x0000, +0x2091,0x0000, 0x2092,0x0000, 0x2093,0x0000, 0x2094,0x0000, +0x2095,0x0000, 0x2096,0x0000, 0x2097,0x0000, 0x2098,0x0000, +0x2099,0x0000, 0x209A,0x0000, 0x209B,0x0000, 0x209C,0x0000, +0x209D,0x0000, 0x209E,0x0000, 0x209F,0x0000, 0x20A0,0x0000, +0x20A1,0x0000, 0x20A2,0x0000, 0x20A3,0x0000, 0x20A4,0x0000, +0x20A5,0x0000, 0x20A6,0x0000, 0x20A7,0x0000, 0x20A8,0x0000, +0x20A9,0x0000, 0x20AA,0x0000, 0x20AB,0x0000, 0x20AC,0x0000, +0x20AD,0x0000, 0x20AE,0x0000, 0x20AF,0x0000, 0x20B0,0x0000 +}; + +uint16 page0A2data[]= { /* A200 (2 weights per char) */ +0x20B1,0x0000, 0x20B2,0x0000, 0x20B3,0x0000, 0x20B4,0x0000, +0x20B5,0x0000, 0x20B6,0x0000, 0x20B7,0x0000, 0x20B8,0x0000, +0x20B9,0x0000, 0x20BA,0x0000, 0x20BB,0x0000, 0x20BC,0x0000, +0x20BD,0x0000, 0x20BE,0x0000, 0x20BF,0x0000, 0x20C0,0x0000, +0x20C1,0x0000, 0x20C2,0x0000, 0x20C3,0x0000, 0x20C4,0x0000, +0x20C5,0x0000, 0x20C6,0x0000, 0x20C7,0x0000, 0x20C8,0x0000, +0x20C9,0x0000, 0x20CA,0x0000, 0x20CB,0x0000, 0x20CC,0x0000, +0x20CD,0x0000, 0x20CE,0x0000, 0x20CF,0x0000, 0x20D0,0x0000, +0x20D1,0x0000, 0x20D2,0x0000, 0x20D3,0x0000, 0x20D4,0x0000, +0x20D5,0x0000, 0x20D6,0x0000, 0x20D7,0x0000, 0x20D8,0x0000, +0x20D9,0x0000, 0x20DA,0x0000, 0x20DB,0x0000, 0x20DC,0x0000, +0x20DD,0x0000, 0x20DE,0x0000, 0x20DF,0x0000, 0x20E0,0x0000, +0x20E1,0x0000, 0x20E2,0x0000, 0x20E3,0x0000, 0x20E4,0x0000, +0x20E5,0x0000, 0x20E6,0x0000, 0x20E7,0x0000, 0x20E8,0x0000, +0x20E9,0x0000, 0x20EA,0x0000, 0x20EB,0x0000, 0x20EC,0x0000, +0x20ED,0x0000, 0x20EE,0x0000, 0x20EF,0x0000, 0x20F0,0x0000, +0x20F1,0x0000, 0x20F2,0x0000, 0x20F3,0x0000, 0x20F4,0x0000, +0x20F5,0x0000, 0x20F6,0x0000, 0x20F7,0x0000, 0x20F8,0x0000, +0x20F9,0x0000, 0x20FA,0x0000, 0x20FB,0x0000, 0x20FC,0x0000, +0x20FD,0x0000, 0x20FE,0x0000, 0x20FF,0x0000, 0x2100,0x0000, +0x2101,0x0000, 0x2102,0x0000, 0x2103,0x0000, 0x2104,0x0000, +0x2105,0x0000, 0x2106,0x0000, 0x2107,0x0000, 0x2108,0x0000, +0x2109,0x0000, 0x210A,0x0000, 0x210B,0x0000, 0x210C,0x0000, +0x210D,0x0000, 0x210E,0x0000, 0x210F,0x0000, 0x2110,0x0000, +0x2111,0x0000, 0x2112,0x0000, 0x2113,0x0000, 0x2114,0x0000, +0x2115,0x0000, 0x2116,0x0000, 0x2117,0x0000, 0x2118,0x0000, +0x2119,0x0000, 0x211A,0x0000, 0x211B,0x0000, 0x211C,0x0000, +0x211D,0x0000, 0x211E,0x0000, 0x211F,0x0000, 0x2120,0x0000, +0x2121,0x0000, 0x2122,0x0000, 0x2123,0x0000, 0x2124,0x0000, +0x2125,0x0000, 0x2126,0x0000, 0x2127,0x0000, 0x2128,0x0000, +0x2129,0x0000, 0x212A,0x0000, 0x212B,0x0000, 0x212C,0x0000, +0x212D,0x0000, 0x212E,0x0000, 0x212F,0x0000, 0x2130,0x0000, +0x2131,0x0000, 0x2132,0x0000, 0x2133,0x0000, 0x2134,0x0000, +0x2135,0x0000, 0x2136,0x0000, 0x2137,0x0000, 0x2138,0x0000, +0x2139,0x0000, 0x213A,0x0000, 0x213B,0x0000, 0x213C,0x0000, +0x213D,0x0000, 0x213E,0x0000, 0x213F,0x0000, 0x2140,0x0000, +0x2141,0x0000, 0x2142,0x0000, 0x2143,0x0000, 0x2144,0x0000, +0x2145,0x0000, 0x2146,0x0000, 0x2147,0x0000, 0x2148,0x0000, +0x2149,0x0000, 0x214A,0x0000, 0x214B,0x0000, 0x214C,0x0000, +0x214D,0x0000, 0x214E,0x0000, 0x214F,0x0000, 0x2150,0x0000, +0x2151,0x0000, 0x2152,0x0000, 0x2153,0x0000, 0x2154,0x0000, +0x2155,0x0000, 0x2156,0x0000, 0x2157,0x0000, 0x2158,0x0000, +0x2159,0x0000, 0x215A,0x0000, 0x215B,0x0000, 0x215C,0x0000, +0x215D,0x0000, 0x215E,0x0000, 0x215F,0x0000, 0x2160,0x0000, +0x2161,0x0000, 0x2162,0x0000, 0x2163,0x0000, 0x2164,0x0000, +0x2165,0x0000, 0x2166,0x0000, 0x2167,0x0000, 0x2168,0x0000, +0x2169,0x0000, 0x216A,0x0000, 0x216B,0x0000, 0x216C,0x0000, +0x216D,0x0000, 0x216E,0x0000, 0x216F,0x0000, 0x2170,0x0000, +0x2171,0x0000, 0x2172,0x0000, 0x2173,0x0000, 0x2174,0x0000, +0x2175,0x0000, 0x2176,0x0000, 0x2177,0x0000, 0x2178,0x0000, +0x2179,0x0000, 0x217A,0x0000, 0x217B,0x0000, 0x217C,0x0000, +0x217D,0x0000, 0x217E,0x0000, 0x217F,0x0000, 0x2180,0x0000, +0x2181,0x0000, 0x2182,0x0000, 0x2183,0x0000, 0x2184,0x0000, +0x2185,0x0000, 0x2186,0x0000, 0x2187,0x0000, 0x2188,0x0000, +0x2189,0x0000, 0x218A,0x0000, 0x218B,0x0000, 0x218C,0x0000, +0x218D,0x0000, 0x218E,0x0000, 0x218F,0x0000, 0x2190,0x0000, +0x2191,0x0000, 0x2192,0x0000, 0x2193,0x0000, 0x2194,0x0000, +0x2195,0x0000, 0x2196,0x0000, 0x2197,0x0000, 0x2198,0x0000, +0x2199,0x0000, 0x219A,0x0000, 0x219B,0x0000, 0x219C,0x0000, +0x219D,0x0000, 0x219E,0x0000, 0x219F,0x0000, 0x21A0,0x0000, +0x21A1,0x0000, 0x21A2,0x0000, 0x21A3,0x0000, 0x21A4,0x0000, +0x21A5,0x0000, 0x21A6,0x0000, 0x21A7,0x0000, 0x21A8,0x0000, +0x21A9,0x0000, 0x21AA,0x0000, 0x21AB,0x0000, 0x21AC,0x0000, +0x21AD,0x0000, 0x21AE,0x0000, 0x21AF,0x0000, 0x21B0,0x0000 +}; + +uint16 page0A3data[]= { /* A300 (2 weights per char) */ +0x21B1,0x0000, 0x21B2,0x0000, 0x21B3,0x0000, 0x21B4,0x0000, +0x21B5,0x0000, 0x21B6,0x0000, 0x21B7,0x0000, 0x21B8,0x0000, +0x21B9,0x0000, 0x21BA,0x0000, 0x21BB,0x0000, 0x21BC,0x0000, +0x21BD,0x0000, 0x21BE,0x0000, 0x21BF,0x0000, 0x21C0,0x0000, +0x21C1,0x0000, 0x21C2,0x0000, 0x21C3,0x0000, 0x21C4,0x0000, +0x21C5,0x0000, 0x21C6,0x0000, 0x21C7,0x0000, 0x21C8,0x0000, +0x21C9,0x0000, 0x21CA,0x0000, 0x21CB,0x0000, 0x21CC,0x0000, +0x21CD,0x0000, 0x21CE,0x0000, 0x21CF,0x0000, 0x21D0,0x0000, +0x21D1,0x0000, 0x21D2,0x0000, 0x21D3,0x0000, 0x21D4,0x0000, +0x21D5,0x0000, 0x21D6,0x0000, 0x21D7,0x0000, 0x21D8,0x0000, +0x21D9,0x0000, 0x21DA,0x0000, 0x21DB,0x0000, 0x21DC,0x0000, +0x21DD,0x0000, 0x21DE,0x0000, 0x21DF,0x0000, 0x21E0,0x0000, +0x21E1,0x0000, 0x21E2,0x0000, 0x21E3,0x0000, 0x21E4,0x0000, +0x21E5,0x0000, 0x21E6,0x0000, 0x21E7,0x0000, 0x21E8,0x0000, +0x21E9,0x0000, 0x21EA,0x0000, 0x21EB,0x0000, 0x21EC,0x0000, +0x21ED,0x0000, 0x21EE,0x0000, 0x21EF,0x0000, 0x21F0,0x0000, +0x21F1,0x0000, 0x21F2,0x0000, 0x21F3,0x0000, 0x21F4,0x0000, +0x21F5,0x0000, 0x21F6,0x0000, 0x21F7,0x0000, 0x21F8,0x0000, +0x21F9,0x0000, 0x21FA,0x0000, 0x21FB,0x0000, 0x21FC,0x0000, +0x21FD,0x0000, 0x21FE,0x0000, 0x21FF,0x0000, 0x2200,0x0000, +0x2201,0x0000, 0x2202,0x0000, 0x2203,0x0000, 0x2204,0x0000, +0x2205,0x0000, 0x2206,0x0000, 0x2207,0x0000, 0x2208,0x0000, +0x2209,0x0000, 0x220A,0x0000, 0x220B,0x0000, 0x220C,0x0000, +0x220D,0x0000, 0x220E,0x0000, 0x220F,0x0000, 0x2210,0x0000, +0x2211,0x0000, 0x2212,0x0000, 0x2213,0x0000, 0x2214,0x0000, +0x2215,0x0000, 0x2216,0x0000, 0x2217,0x0000, 0x2218,0x0000, +0x2219,0x0000, 0x221A,0x0000, 0x221B,0x0000, 0x221C,0x0000, +0x221D,0x0000, 0x221E,0x0000, 0x221F,0x0000, 0x2220,0x0000, +0x2221,0x0000, 0x2222,0x0000, 0x2223,0x0000, 0x2224,0x0000, +0x2225,0x0000, 0x2226,0x0000, 0x2227,0x0000, 0x2228,0x0000, +0x2229,0x0000, 0x222A,0x0000, 0x222B,0x0000, 0x222C,0x0000, +0x222D,0x0000, 0x222E,0x0000, 0x222F,0x0000, 0x2230,0x0000, +0x2231,0x0000, 0x2232,0x0000, 0x2233,0x0000, 0x2234,0x0000, +0x2235,0x0000, 0x2236,0x0000, 0x2237,0x0000, 0x2238,0x0000, +0x2239,0x0000, 0x223A,0x0000, 0x223B,0x0000, 0x223C,0x0000, +0x223D,0x0000, 0x223E,0x0000, 0x223F,0x0000, 0x2240,0x0000, +0x2241,0x0000, 0x2242,0x0000, 0x2243,0x0000, 0x2244,0x0000, +0x2245,0x0000, 0x2246,0x0000, 0x2247,0x0000, 0x2248,0x0000, +0x2249,0x0000, 0x224A,0x0000, 0x224B,0x0000, 0x224C,0x0000, +0x224D,0x0000, 0x224E,0x0000, 0x224F,0x0000, 0x2250,0x0000, +0x2251,0x0000, 0x2252,0x0000, 0x2253,0x0000, 0x2254,0x0000, +0x2255,0x0000, 0x2256,0x0000, 0x2257,0x0000, 0x2258,0x0000, +0x2259,0x0000, 0x225A,0x0000, 0x225B,0x0000, 0x225C,0x0000, +0x225D,0x0000, 0x225E,0x0000, 0x225F,0x0000, 0x2260,0x0000, +0x2261,0x0000, 0x2262,0x0000, 0x2263,0x0000, 0x2264,0x0000, +0x2265,0x0000, 0x2266,0x0000, 0x2267,0x0000, 0x2268,0x0000, +0x2269,0x0000, 0x226A,0x0000, 0x226B,0x0000, 0x226C,0x0000, +0x226D,0x0000, 0x226E,0x0000, 0x226F,0x0000, 0x2270,0x0000, +0x2271,0x0000, 0x2272,0x0000, 0x2273,0x0000, 0x2274,0x0000, +0x2275,0x0000, 0x2276,0x0000, 0x2277,0x0000, 0x2278,0x0000, +0x2279,0x0000, 0x227A,0x0000, 0x227B,0x0000, 0x227C,0x0000, +0x227D,0x0000, 0x227E,0x0000, 0x227F,0x0000, 0x2280,0x0000, +0x2281,0x0000, 0x2282,0x0000, 0x2283,0x0000, 0x2284,0x0000, +0x2285,0x0000, 0x2286,0x0000, 0x2287,0x0000, 0x2288,0x0000, +0x2289,0x0000, 0x228A,0x0000, 0x228B,0x0000, 0x228C,0x0000, +0x228D,0x0000, 0x228E,0x0000, 0x228F,0x0000, 0x2290,0x0000, +0x2291,0x0000, 0x2292,0x0000, 0x2293,0x0000, 0x2294,0x0000, +0x2295,0x0000, 0x2296,0x0000, 0x2297,0x0000, 0x2298,0x0000, +0x2299,0x0000, 0x229A,0x0000, 0x229B,0x0000, 0x229C,0x0000, +0x229D,0x0000, 0x229E,0x0000, 0x229F,0x0000, 0x22A0,0x0000, +0x22A1,0x0000, 0x22A2,0x0000, 0x22A3,0x0000, 0x22A4,0x0000, +0x22A5,0x0000, 0x22A6,0x0000, 0x22A7,0x0000, 0x22A8,0x0000, +0x22A9,0x0000, 0x22AA,0x0000, 0x22AB,0x0000, 0x22AC,0x0000, +0x22AD,0x0000, 0x22AE,0x0000, 0x22AF,0x0000, 0x22B0,0x0000 +}; + +uint16 page0A4data[]= { /* A400 (3 weights per char) */ +0x22B1,0x0000,0x0000, 0x22B2,0x0000,0x0000, 0x22B3,0x0000,0x0000, +0x22B4,0x0000,0x0000, 0x22B5,0x0000,0x0000, 0x22B6,0x0000,0x0000, +0x22B7,0x0000,0x0000, 0x22B8,0x0000,0x0000, 0x22B9,0x0000,0x0000, +0x22BA,0x0000,0x0000, 0x22BB,0x0000,0x0000, 0x22BC,0x0000,0x0000, +0x22BD,0x0000,0x0000, 0x22BE,0x0000,0x0000, 0x22BF,0x0000,0x0000, +0x22C0,0x0000,0x0000, 0x22C1,0x0000,0x0000, 0x22C2,0x0000,0x0000, +0x22C3,0x0000,0x0000, 0x22C4,0x0000,0x0000, 0x22C5,0x0000,0x0000, +0x22C6,0x0000,0x0000, 0x22C7,0x0000,0x0000, 0x22C8,0x0000,0x0000, +0x22C9,0x0000,0x0000, 0x22CA,0x0000,0x0000, 0x22CB,0x0000,0x0000, +0x22CC,0x0000,0x0000, 0x22CD,0x0000,0x0000, 0x22CE,0x0000,0x0000, +0x22CF,0x0000,0x0000, 0x22D0,0x0000,0x0000, 0x22D1,0x0000,0x0000, +0x22D2,0x0000,0x0000, 0x22D3,0x0000,0x0000, 0x22D4,0x0000,0x0000, +0x22D5,0x0000,0x0000, 0x22D6,0x0000,0x0000, 0x22D7,0x0000,0x0000, +0x22D8,0x0000,0x0000, 0x22D9,0x0000,0x0000, 0x22DA,0x0000,0x0000, +0x22DB,0x0000,0x0000, 0x22DC,0x0000,0x0000, 0x22DD,0x0000,0x0000, +0x22DE,0x0000,0x0000, 0x22DF,0x0000,0x0000, 0x22E0,0x0000,0x0000, +0x22E1,0x0000,0x0000, 0x22E2,0x0000,0x0000, 0x22E3,0x0000,0x0000, +0x22E4,0x0000,0x0000, 0x22E5,0x0000,0x0000, 0x22E6,0x0000,0x0000, +0x22E7,0x0000,0x0000, 0x22E8,0x0000,0x0000, 0x22E9,0x0000,0x0000, +0x22EA,0x0000,0x0000, 0x22EB,0x0000,0x0000, 0x22EC,0x0000,0x0000, +0x22ED,0x0000,0x0000, 0x22EE,0x0000,0x0000, 0x22EF,0x0000,0x0000, +0x22F0,0x0000,0x0000, 0x22F1,0x0000,0x0000, 0x22F2,0x0000,0x0000, +0x22F3,0x0000,0x0000, 0x22F4,0x0000,0x0000, 0x22F5,0x0000,0x0000, +0x22F6,0x0000,0x0000, 0x22F7,0x0000,0x0000, 0x22F8,0x0000,0x0000, +0x22F9,0x0000,0x0000, 0x22FA,0x0000,0x0000, 0x22FB,0x0000,0x0000, +0x22FC,0x0000,0x0000, 0x22FD,0x0000,0x0000, 0x22FE,0x0000,0x0000, +0x22FF,0x0000,0x0000, 0x2300,0x0000,0x0000, 0x2301,0x0000,0x0000, +0x2302,0x0000,0x0000, 0x2303,0x0000,0x0000, 0x2304,0x0000,0x0000, +0x2305,0x0000,0x0000, 0x2306,0x0000,0x0000, 0x2307,0x0000,0x0000, +0x2308,0x0000,0x0000, 0x2309,0x0000,0x0000, 0x230A,0x0000,0x0000, +0x230B,0x0000,0x0000, 0x230C,0x0000,0x0000, 0x230D,0x0000,0x0000, +0x230E,0x0000,0x0000, 0x230F,0x0000,0x0000, 0x2310,0x0000,0x0000, +0x2311,0x0000,0x0000, 0x2312,0x0000,0x0000, 0x2313,0x0000,0x0000, +0x2314,0x0000,0x0000, 0x2315,0x0000,0x0000, 0x2316,0x0000,0x0000, +0x2317,0x0000,0x0000, 0x2318,0x0000,0x0000, 0x2319,0x0000,0x0000, +0x231A,0x0000,0x0000, 0x231B,0x0000,0x0000, 0x231C,0x0000,0x0000, +0x231D,0x0000,0x0000, 0x231E,0x0000,0x0000, 0x231F,0x0000,0x0000, +0x2320,0x0000,0x0000, 0x2321,0x0000,0x0000, 0x2322,0x0000,0x0000, +0x2323,0x0000,0x0000, 0x2324,0x0000,0x0000, 0x2325,0x0000,0x0000, +0x2326,0x0000,0x0000, 0x2327,0x0000,0x0000, 0x2328,0x0000,0x0000, +0x2329,0x0000,0x0000, 0x232A,0x0000,0x0000, 0x232B,0x0000,0x0000, +0x232C,0x0000,0x0000, 0x232D,0x0000,0x0000, 0x232E,0x0000,0x0000, +0x232F,0x0000,0x0000, 0x2330,0x0000,0x0000, 0x2331,0x0000,0x0000, +0x2332,0x0000,0x0000, 0x2333,0x0000,0x0000, 0x2334,0x0000,0x0000, +0x2335,0x0000,0x0000, 0x2336,0x0000,0x0000, 0x2337,0x0000,0x0000, +0x2338,0x0000,0x0000, 0x2339,0x0000,0x0000, 0x233A,0x0000,0x0000, +0x233B,0x0000,0x0000, 0x233C,0x0000,0x0000, 0x233D,0x0000,0x0000, +0xFBC1,0xA48D,0x0000, 0xFBC1,0xA48E,0x0000, 0xFBC1,0xA48F,0x0000, +0x0BCE,0x0000,0x0000, 0x0BCF,0x0000,0x0000, 0x0BD0,0x0000,0x0000, +0x0BD1,0x0000,0x0000, 0x0BD2,0x0000,0x0000, 0x0BD3,0x0000,0x0000, +0x0BD4,0x0000,0x0000, 0x0BD5,0x0000,0x0000, 0x0BD6,0x0000,0x0000, +0x0BD7,0x0000,0x0000, 0x0BD8,0x0000,0x0000, 0x0BD9,0x0000,0x0000, +0x0BDA,0x0000,0x0000, 0x0BDB,0x0000,0x0000, 0x0BDC,0x0000,0x0000, +0x0BDD,0x0000,0x0000, 0x0BDE,0x0000,0x0000, 0x0BDF,0x0000,0x0000, +0x0BE0,0x0000,0x0000, 0x0BE1,0x0000,0x0000, 0x0BE2,0x0000,0x0000, +0x0BE3,0x0000,0x0000, 0x0BE4,0x0000,0x0000, 0x0BE5,0x0000,0x0000, +0x0BE6,0x0000,0x0000, 0x0BE7,0x0000,0x0000, 0x0BE8,0x0000,0x0000, +0x0BE9,0x0000,0x0000, 0x0BEA,0x0000,0x0000, 0x0BEB,0x0000,0x0000, +0x0BEC,0x0000,0x0000, 0x0BED,0x0000,0x0000, 0x0BEE,0x0000,0x0000, +0x0BEF,0x0000,0x0000, 0x0BF0,0x0000,0x0000, 0x0BF1,0x0000,0x0000, +0x0BF2,0x0000,0x0000, 0x0BF3,0x0000,0x0000, 0x0BF4,0x0000,0x0000, +0x0BF5,0x0000,0x0000, 0x0BF6,0x0000,0x0000, 0x0BF7,0x0000,0x0000, +0x0BF8,0x0000,0x0000, 0x0BF9,0x0000,0x0000, 0x0BFA,0x0000,0x0000, +0x0BFB,0x0000,0x0000, 0x0BFC,0x0000,0x0000, 0x0BFD,0x0000,0x0000, +0x0BFE,0x0000,0x0000, 0x0BFF,0x0000,0x0000, 0x0C00,0x0000,0x0000, +0x0C01,0x0000,0x0000, 0x0C02,0x0000,0x0000, 0x0C03,0x0000,0x0000, +0x0C04,0x0000,0x0000, 0xFBC1,0xA4C7,0x0000, 0xFBC1,0xA4C8,0x0000, +0xFBC1,0xA4C9,0x0000, 0xFBC1,0xA4CA,0x0000, 0xFBC1,0xA4CB,0x0000, +0xFBC1,0xA4CC,0x0000, 0xFBC1,0xA4CD,0x0000, 0xFBC1,0xA4CE,0x0000, +0xFBC1,0xA4CF,0x0000, 0xFBC1,0xA4D0,0x0000, 0xFBC1,0xA4D1,0x0000, +0xFBC1,0xA4D2,0x0000, 0xFBC1,0xA4D3,0x0000, 0xFBC1,0xA4D4,0x0000, +0xFBC1,0xA4D5,0x0000, 0xFBC1,0xA4D6,0x0000, 0xFBC1,0xA4D7,0x0000, +0xFBC1,0xA4D8,0x0000, 0xFBC1,0xA4D9,0x0000, 0xFBC1,0xA4DA,0x0000, +0xFBC1,0xA4DB,0x0000, 0xFBC1,0xA4DC,0x0000, 0xFBC1,0xA4DD,0x0000, +0xFBC1,0xA4DE,0x0000, 0xFBC1,0xA4DF,0x0000, 0xFBC1,0xA4E0,0x0000, +0xFBC1,0xA4E1,0x0000, 0xFBC1,0xA4E2,0x0000, 0xFBC1,0xA4E3,0x0000, +0xFBC1,0xA4E4,0x0000, 0xFBC1,0xA4E5,0x0000, 0xFBC1,0xA4E6,0x0000, +0xFBC1,0xA4E7,0x0000, 0xFBC1,0xA4E8,0x0000, 0xFBC1,0xA4E9,0x0000, +0xFBC1,0xA4EA,0x0000, 0xFBC1,0xA4EB,0x0000, 0xFBC1,0xA4EC,0x0000, +0xFBC1,0xA4ED,0x0000, 0xFBC1,0xA4EE,0x0000, 0xFBC1,0xA4EF,0x0000, +0xFBC1,0xA4F0,0x0000, 0xFBC1,0xA4F1,0x0000, 0xFBC1,0xA4F2,0x0000, +0xFBC1,0xA4F3,0x0000, 0xFBC1,0xA4F4,0x0000, 0xFBC1,0xA4F5,0x0000, +0xFBC1,0xA4F6,0x0000, 0xFBC1,0xA4F7,0x0000, 0xFBC1,0xA4F8,0x0000, +0xFBC1,0xA4F9,0x0000, 0xFBC1,0xA4FA,0x0000, 0xFBC1,0xA4FB,0x0000, +0xFBC1,0xA4FC,0x0000, 0xFBC1,0xA4FD,0x0000, 0xFBC1,0xA4FE,0x0000, +0xFBC1,0xA4FF,0x0000 }; + +uint16 page0F9data[]= { /* F900 (3 weights per char) */ +0xFB41,0x8C48,0x0000, 0xFB40,0xE6F4,0x0000, 0xFB41,0x8ECA,0x0000, +0xFB41,0x8CC8,0x0000, 0xFB40,0xEED1,0x0000, 0xFB40,0xCE32,0x0000, +0xFB40,0xD3E5,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, +0xFB40,0xD951,0x0000, 0xFB41,0x91D1,0x0000, 0xFB40,0xD587,0x0000, +0xFB40,0xD948,0x0000, 0xFB40,0xE1F6,0x0000, 0xFB40,0xF669,0x0000, +0xFB40,0xFF85,0x0000, 0xFB41,0x863F,0x0000, 0xFB41,0x87BA,0x0000, +0xFB41,0x88F8,0x0000, 0xFB41,0x908F,0x0000, 0xFB40,0xEA02,0x0000, +0xFB40,0xED1B,0x0000, 0xFB40,0xF0D9,0x0000, 0xFB40,0xF3DE,0x0000, +0xFB41,0x843D,0x0000, 0xFB41,0x916A,0x0000, 0xFB41,0x99F1,0x0000, +0xFB40,0xCE82,0x0000, 0xFB40,0xD375,0x0000, 0xFB40,0xEB04,0x0000, +0xFB40,0xF21B,0x0000, 0xFB41,0x862D,0x0000, 0xFB41,0x9E1E,0x0000, +0xFB40,0xDD50,0x0000, 0xFB40,0xEFEB,0x0000, 0xFB41,0x85CD,0x0000, +0xFB41,0x8964,0x0000, 0xFB40,0xE2C9,0x0000, 0xFB41,0x81D8,0x0000, +0xFB41,0x881F,0x0000, 0xFB40,0xDECA,0x0000, 0xFB40,0xE717,0x0000, +0xFB40,0xED6A,0x0000, 0xFB40,0xF2FC,0x0000, 0xFB41,0x90CE,0x0000, +0xFB40,0xCF86,0x0000, 0xFB40,0xD1B7,0x0000, 0xFB40,0xD2DE,0x0000, +0xFB40,0xE4C4,0x0000, 0xFB40,0xEAD3,0x0000, 0xFB40,0xF210,0x0000, +0xFB40,0xF6E7,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x8606,0x0000, +0xFB41,0x865C,0x0000, 0xFB41,0x8DEF,0x0000, 0xFB41,0x9732,0x0000, +0xFB41,0x9B6F,0x0000, 0xFB41,0x9DFA,0x0000, 0xFB40,0xF88C,0x0000, +0xFB40,0xF97F,0x0000, 0xFB40,0xFDA0,0x0000, 0xFB41,0x83C9,0x0000, +0xFB41,0x9304,0x0000, 0xFB41,0x9E7F,0x0000, 0xFB41,0x8AD6,0x0000, +0xFB40,0xD8DF,0x0000, 0xFB40,0xDF04,0x0000, 0xFB40,0xFC60,0x0000, +0xFB41,0x807E,0x0000, 0xFB40,0xF262,0x0000, 0xFB40,0xF8CA,0x0000, +0xFB41,0x8CC2,0x0000, 0xFB41,0x96F7,0x0000, 0xFB40,0xD8D8,0x0000, +0xFB40,0xDC62,0x0000, 0xFB40,0xEA13,0x0000, 0xFB40,0xEDDA,0x0000, +0xFB40,0xEF0F,0x0000, 0xFB40,0xFD2F,0x0000, 0xFB40,0xFE37,0x0000, +0xFB41,0x964B,0x0000, 0xFB40,0xD2D2,0x0000, 0xFB41,0x808B,0x0000, +0xFB40,0xD1DC,0x0000, 0xFB40,0xD1CC,0x0000, 0xFB40,0xFA1C,0x0000, +0xFB40,0xFDBE,0x0000, 0xFB41,0x83F1,0x0000, 0xFB41,0x9675,0x0000, +0xFB41,0x8B80,0x0000, 0xFB40,0xE2CF,0x0000, 0xFB40,0xEA02,0x0000, +0xFB41,0x8AFE,0x0000, 0xFB40,0xCE39,0x0000, 0xFB40,0xDBE7,0x0000, +0xFB40,0xE012,0x0000, 0xFB40,0xF387,0x0000, 0xFB40,0xF570,0x0000, +0xFB40,0xD317,0x0000, 0xFB40,0xF8FB,0x0000, 0xFB40,0xCFBF,0x0000, +0xFB40,0xDFA9,0x0000, 0xFB40,0xCE0D,0x0000, 0xFB40,0xECCC,0x0000, +0xFB40,0xE578,0x0000, 0xFB40,0xFD22,0x0000, 0xFB40,0xD3C3,0x0000, +0xFB40,0xD85E,0x0000, 0xFB40,0xF701,0x0000, 0xFB41,0x8449,0x0000, +0xFB41,0x8AAA,0x0000, 0xFB40,0xEBBA,0x0000, 0xFB41,0x8FB0,0x0000, +0xFB40,0xEC88,0x0000, 0xFB40,0xE2FE,0x0000, 0xFB41,0x82E5,0x0000, +0xFB40,0xE3A0,0x0000, 0xFB40,0xF565,0x0000, 0xFB40,0xCEAE,0x0000, +0xFB40,0xD169,0x0000, 0xFB40,0xD1C9,0x0000, 0xFB40,0xE881,0x0000, +0xFB40,0xFCE7,0x0000, 0xFB41,0x826F,0x0000, 0xFB41,0x8AD2,0x0000, +0xFB41,0x91CF,0x0000, 0xFB40,0xD2F5,0x0000, 0xFB40,0xD442,0x0000, +0xFB40,0xD973,0x0000, 0xFB40,0xDEEC,0x0000, 0xFB40,0xE5C5,0x0000, +0xFB40,0xEFFE,0x0000, 0xFB40,0xF92A,0x0000, 0xFB41,0x95AD,0x0000, +0xFB41,0x9A6A,0x0000, 0xFB41,0x9E97,0x0000, 0xFB41,0x9ECE,0x0000, +0xFB40,0xD29B,0x0000, 0xFB40,0xE6C6,0x0000, 0xFB40,0xEB77,0x0000, +0xFB41,0x8F62,0x0000, 0xFB40,0xDE74,0x0000, 0xFB40,0xE190,0x0000, +0xFB40,0xE200,0x0000, 0xFB40,0xE49A,0x0000, 0xFB40,0xEF23,0x0000, +0xFB40,0xF149,0x0000, 0xFB40,0xF489,0x0000, 0xFB40,0xF9CA,0x0000, +0xFB40,0xFDF4,0x0000, 0xFB41,0x806F,0x0000, 0xFB41,0x8F26,0x0000, +0xFB41,0x84EE,0x0000, 0xFB41,0x9023,0x0000, 0xFB41,0x934A,0x0000, +0xFB40,0xD217,0x0000, 0xFB40,0xD2A3,0x0000, 0xFB40,0xD4BD,0x0000, +0xFB40,0xF0C8,0x0000, 0xFB41,0x88C2,0x0000, 0xFB41,0x8AAA,0x0000, +0xFB40,0xDEC9,0x0000, 0xFB40,0xDFF5,0x0000, 0xFB40,0xE37B,0x0000, +0xFB40,0xEBAE,0x0000, 0xFB40,0xFC3E,0x0000, 0xFB40,0xF375,0x0000, +0xFB40,0xCEE4,0x0000, 0xFB40,0xD6F9,0x0000, 0xFB40,0xDBE7,0x0000, +0xFB40,0xDDBA,0x0000, 0xFB40,0xE01C,0x0000, 0xFB40,0xF3B2,0x0000, +0xFB40,0xF469,0x0000, 0xFB40,0xFF9A,0x0000, 0xFB41,0x8046,0x0000, +0xFB41,0x9234,0x0000, 0xFB41,0x96F6,0x0000, 0xFB41,0x9748,0x0000, +0xFB41,0x9818,0x0000, 0xFB40,0xCF8B,0x0000, 0xFB40,0xF9AE,0x0000, +0xFB41,0x91B4,0x0000, 0xFB41,0x96B8,0x0000, 0xFB40,0xE0E1,0x0000, +0xFB40,0xCE86,0x0000, 0xFB40,0xD0DA,0x0000, 0xFB40,0xDBEE,0x0000, +0xFB40,0xDC3F,0x0000, 0xFB40,0xE599,0x0000, 0xFB40,0xEA02,0x0000, +0xFB40,0xF1CE,0x0000, 0xFB40,0xF642,0x0000, 0xFB41,0x84FC,0x0000, +0xFB41,0x907C,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB40,0xE688,0x0000, +0xFB41,0x962E,0x0000, 0xFB40,0xD289,0x0000, 0xFB40,0xE77B,0x0000, +0xFB40,0xE7F3,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEE9C,0x0000, +0xFB40,0xF409,0x0000, 0xFB40,0xF559,0x0000, 0xFB40,0xF86B,0x0000, +0xFB40,0xFD10,0x0000, 0xFB41,0x985E,0x0000, 0xFB40,0xD16D,0x0000, +0xFB40,0xE22E,0x0000, 0xFB41,0x9678,0x0000, 0xFB40,0xD02B,0x0000, +0xFB40,0xDD19,0x0000, 0xFB40,0xEDEA,0x0000, 0xFB41,0x8F2A,0x0000, +0xFB40,0xDF8B,0x0000, 0xFB40,0xE144,0x0000, 0xFB40,0xE817,0x0000, +0xFB40,0xF387,0x0000, 0xFB41,0x9686,0x0000, 0xFB40,0xD229,0x0000, +0xFB40,0xD40F,0x0000, 0xFB40,0xDC65,0x0000, 0xFB40,0xE613,0x0000, +0xFB40,0xE74E,0x0000, 0xFB40,0xE8A8,0x0000, 0xFB40,0xECE5,0x0000, +0xFB40,0xF406,0x0000, 0xFB40,0xF5E2,0x0000, 0xFB40,0xFF79,0x0000, +0xFB41,0x88CF,0x0000, 0xFB41,0x88E1,0x0000, 0xFB41,0x91CC,0x0000, +0xFB41,0x96E2,0x0000, 0xFB40,0xD33F,0x0000, 0xFB40,0xEEBA,0x0000, +0xFB40,0xD41D,0x0000, 0xFB40,0xF1D0,0x0000, 0xFB40,0xF498,0x0000, +0xFB41,0x85FA,0x0000, 0xFB41,0x96A3,0x0000, 0xFB41,0x9C57,0x0000, +0xFB41,0x9E9F,0x0000, 0xFB40,0xE797,0x0000, 0xFB40,0xEDCB,0x0000, +0xFB41,0x81E8,0x0000, 0xFB40,0xFACB,0x0000, 0xFB40,0xFB20,0x0000, +0xFB40,0xFC92,0x0000, 0xFB40,0xF2C0,0x0000, 0xFB40,0xF099,0x0000, +0xFB41,0x8B58,0x0000, 0xFB40,0xCEC0,0x0000, 0xFB41,0x8336,0x0000, +0xFB40,0xD23A,0x0000 }; + +uint16 page0FAdata[]= { /* FA00 (3 weights per char) */ +0xFB40,0xD207,0x0000, 0xFB40,0xDEA6,0x0000, 0xFB40,0xE2D3,0x0000, +0xFB40,0xFCD6,0x0000, 0xFB40,0xDB85,0x0000, 0xFB40,0xED1E,0x0000, +0xFB40,0xE6B4,0x0000, 0xFB41,0x8F3B,0x0000, 0xFB41,0x884C,0x0000, +0xFB41,0x964D,0x0000, 0xFB41,0x898B,0x0000, 0xFB40,0xDED3,0x0000, +0xFB40,0xD140,0x0000, 0xFB40,0xD5C0,0x0000, 0xFB41,0xFA0E,0x0000, +0xFB41,0xFA0F,0x0000, 0xFB40,0xD85A,0x0000, 0xFB41,0xFA11,0x0000, +0xFB40,0xE674,0x0000, 0xFB41,0xFA13,0x0000, 0xFB41,0xFA14,0x0000, +0xFB40,0xD1DE,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF6CA,0x0000, +0xFB40,0xF93C,0x0000, 0xFB40,0xF95E,0x0000, 0xFB40,0xF965,0x0000, +0xFB40,0xF98F,0x0000, 0xFB41,0x9756,0x0000, 0xFB40,0xFCBE,0x0000, +0xFB40,0xFFBD,0x0000, 0xFB41,0xFA1F,0x0000, 0xFB41,0x8612,0x0000, +0xFB41,0xFA21,0x0000, 0xFB41,0x8AF8,0x0000, 0xFB41,0xFA23,0x0000, +0xFB41,0xFA24,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x90FD,0x0000, +0xFB41,0xFA27,0x0000, 0xFB41,0xFA28,0x0000, 0xFB41,0xFA29,0x0000, +0xFB41,0x98EF,0x0000, 0xFB41,0x98FC,0x0000, 0xFB41,0x9928,0x0000, +0xFB41,0x9DB4,0x0000, 0xFBC1,0xFA2E,0x0000, 0xFBC1,0xFA2F,0x0000, +0xFB40,0xCFAE,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD14D,0x0000, +0xFB40,0xD2C9,0x0000, 0xFB40,0xD2E4,0x0000, 0xFB40,0xD351,0x0000, +0xFB40,0xD59D,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD668,0x0000, +0xFB40,0xD840,0x0000, 0xFB40,0xD8A8,0x0000, 0xFB40,0xDC64,0x0000, +0xFB40,0xDC6E,0x0000, 0xFB40,0xE094,0x0000, 0xFB40,0xE168,0x0000, +0xFB40,0xE18E,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE54F,0x0000, +0xFB40,0xE5E2,0x0000, 0xFB40,0xE691,0x0000, 0xFB40,0xE885,0x0000, +0xFB40,0xED77,0x0000, 0xFB40,0xEE1A,0x0000, 0xFB40,0xEF22,0x0000, +0xFB40,0xF16E,0x0000, 0xFB40,0xF22B,0x0000, 0xFB40,0xF422,0x0000, +0xFB40,0xF891,0x0000, 0xFB40,0xF93E,0x0000, 0xFB40,0xF949,0x0000, +0xFB40,0xF948,0x0000, 0xFB40,0xF950,0x0000, 0xFB40,0xF956,0x0000, +0xFB40,0xF95D,0x0000, 0xFB40,0xF98D,0x0000, 0xFB40,0xF98E,0x0000, +0xFB40,0xFA40,0x0000, 0xFB40,0xFA81,0x0000, 0xFB40,0xFBC0,0x0000, +0xFB40,0xFDF4,0x0000, 0xFB40,0xFE09,0x0000, 0xFB40,0xFE41,0x0000, +0xFB40,0xFF72,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x81ED,0x0000, +0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8457,0x0000, +0xFB41,0x8910,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8B01,0x0000, +0xFB41,0x8B39,0x0000, 0xFB41,0x8CD3,0x0000, 0xFB41,0x8D08,0x0000, +0xFB41,0x8FB6,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x96E3,0x0000, +0xFB41,0x97FF,0x0000, 0xFB41,0x983B,0x0000, 0xFBC1,0xFA6B,0x0000, +0xFBC1,0xFA6C,0x0000, 0xFBC1,0xFA6D,0x0000, 0xFBC1,0xFA6E,0x0000, +0xFBC1,0xFA6F,0x0000, 0xFBC1,0xFA70,0x0000, 0xFBC1,0xFA71,0x0000, +0xFBC1,0xFA72,0x0000, 0xFBC1,0xFA73,0x0000, 0xFBC1,0xFA74,0x0000, +0xFBC1,0xFA75,0x0000, 0xFBC1,0xFA76,0x0000, 0xFBC1,0xFA77,0x0000, +0xFBC1,0xFA78,0x0000, 0xFBC1,0xFA79,0x0000, 0xFBC1,0xFA7A,0x0000, +0xFBC1,0xFA7B,0x0000, 0xFBC1,0xFA7C,0x0000, 0xFBC1,0xFA7D,0x0000, +0xFBC1,0xFA7E,0x0000, 0xFBC1,0xFA7F,0x0000, 0xFBC1,0xFA80,0x0000, +0xFBC1,0xFA81,0x0000, 0xFBC1,0xFA82,0x0000, 0xFBC1,0xFA83,0x0000, +0xFBC1,0xFA84,0x0000, 0xFBC1,0xFA85,0x0000, 0xFBC1,0xFA86,0x0000, +0xFBC1,0xFA87,0x0000, 0xFBC1,0xFA88,0x0000, 0xFBC1,0xFA89,0x0000, +0xFBC1,0xFA8A,0x0000, 0xFBC1,0xFA8B,0x0000, 0xFBC1,0xFA8C,0x0000, +0xFBC1,0xFA8D,0x0000, 0xFBC1,0xFA8E,0x0000, 0xFBC1,0xFA8F,0x0000, +0xFBC1,0xFA90,0x0000, 0xFBC1,0xFA91,0x0000, 0xFBC1,0xFA92,0x0000, +0xFBC1,0xFA93,0x0000, 0xFBC1,0xFA94,0x0000, 0xFBC1,0xFA95,0x0000, +0xFBC1,0xFA96,0x0000, 0xFBC1,0xFA97,0x0000, 0xFBC1,0xFA98,0x0000, +0xFBC1,0xFA99,0x0000, 0xFBC1,0xFA9A,0x0000, 0xFBC1,0xFA9B,0x0000, +0xFBC1,0xFA9C,0x0000, 0xFBC1,0xFA9D,0x0000, 0xFBC1,0xFA9E,0x0000, +0xFBC1,0xFA9F,0x0000, 0xFBC1,0xFAA0,0x0000, 0xFBC1,0xFAA1,0x0000, +0xFBC1,0xFAA2,0x0000, 0xFBC1,0xFAA3,0x0000, 0xFBC1,0xFAA4,0x0000, +0xFBC1,0xFAA5,0x0000, 0xFBC1,0xFAA6,0x0000, 0xFBC1,0xFAA7,0x0000, +0xFBC1,0xFAA8,0x0000, 0xFBC1,0xFAA9,0x0000, 0xFBC1,0xFAAA,0x0000, +0xFBC1,0xFAAB,0x0000, 0xFBC1,0xFAAC,0x0000, 0xFBC1,0xFAAD,0x0000, +0xFBC1,0xFAAE,0x0000, 0xFBC1,0xFAAF,0x0000, 0xFBC1,0xFAB0,0x0000, +0xFBC1,0xFAB1,0x0000, 0xFBC1,0xFAB2,0x0000, 0xFBC1,0xFAB3,0x0000, +0xFBC1,0xFAB4,0x0000, 0xFBC1,0xFAB5,0x0000, 0xFBC1,0xFAB6,0x0000, +0xFBC1,0xFAB7,0x0000, 0xFBC1,0xFAB8,0x0000, 0xFBC1,0xFAB9,0x0000, +0xFBC1,0xFABA,0x0000, 0xFBC1,0xFABB,0x0000, 0xFBC1,0xFABC,0x0000, +0xFBC1,0xFABD,0x0000, 0xFBC1,0xFABE,0x0000, 0xFBC1,0xFABF,0x0000, +0xFBC1,0xFAC0,0x0000, 0xFBC1,0xFAC1,0x0000, 0xFBC1,0xFAC2,0x0000, +0xFBC1,0xFAC3,0x0000, 0xFBC1,0xFAC4,0x0000, 0xFBC1,0xFAC5,0x0000, +0xFBC1,0xFAC6,0x0000, 0xFBC1,0xFAC7,0x0000, 0xFBC1,0xFAC8,0x0000, +0xFBC1,0xFAC9,0x0000, 0xFBC1,0xFACA,0x0000, 0xFBC1,0xFACB,0x0000, +0xFBC1,0xFACC,0x0000, 0xFBC1,0xFACD,0x0000, 0xFBC1,0xFACE,0x0000, +0xFBC1,0xFACF,0x0000, 0xFBC1,0xFAD0,0x0000, 0xFBC1,0xFAD1,0x0000, +0xFBC1,0xFAD2,0x0000, 0xFBC1,0xFAD3,0x0000, 0xFBC1,0xFAD4,0x0000, +0xFBC1,0xFAD5,0x0000, 0xFBC1,0xFAD6,0x0000, 0xFBC1,0xFAD7,0x0000, +0xFBC1,0xFAD8,0x0000, 0xFBC1,0xFAD9,0x0000, 0xFBC1,0xFADA,0x0000, +0xFBC1,0xFADB,0x0000, 0xFBC1,0xFADC,0x0000, 0xFBC1,0xFADD,0x0000, +0xFBC1,0xFADE,0x0000, 0xFBC1,0xFADF,0x0000, 0xFBC1,0xFAE0,0x0000, +0xFBC1,0xFAE1,0x0000, 0xFBC1,0xFAE2,0x0000, 0xFBC1,0xFAE3,0x0000, +0xFBC1,0xFAE4,0x0000, 0xFBC1,0xFAE5,0x0000, 0xFBC1,0xFAE6,0x0000, +0xFBC1,0xFAE7,0x0000, 0xFBC1,0xFAE8,0x0000, 0xFBC1,0xFAE9,0x0000, +0xFBC1,0xFAEA,0x0000, 0xFBC1,0xFAEB,0x0000, 0xFBC1,0xFAEC,0x0000, +0xFBC1,0xFAED,0x0000, 0xFBC1,0xFAEE,0x0000, 0xFBC1,0xFAEF,0x0000, +0xFBC1,0xFAF0,0x0000, 0xFBC1,0xFAF1,0x0000, 0xFBC1,0xFAF2,0x0000, +0xFBC1,0xFAF3,0x0000, 0xFBC1,0xFAF4,0x0000, 0xFBC1,0xFAF5,0x0000, +0xFBC1,0xFAF6,0x0000, 0xFBC1,0xFAF7,0x0000, 0xFBC1,0xFAF8,0x0000, +0xFBC1,0xFAF9,0x0000, 0xFBC1,0xFAFA,0x0000, 0xFBC1,0xFAFB,0x0000, +0xFBC1,0xFAFC,0x0000, 0xFBC1,0xFAFD,0x0000, 0xFBC1,0xFAFE,0x0000, +0xFBC1,0xFAFF,0x0000 }; + +uint16 page0FBdata[]= { /* FB00 (4 weights per char) */ +0x0EB9,0x0EB9,0x0000,0x0000, 0x0EB9,0x0EFB,0x0000,0x0000, +0x0EB9,0x0F2E,0x0000,0x0000, 0x0EB9,0x0EB9,0x0EFB,0x0000, +0x0EB9,0x0EB9,0x0F2E,0x0000, 0x0FEA,0x1002,0x0000,0x0000, +0x0FEA,0x1002,0x0000,0x0000, 0xFBC1,0xFB07,0x0000,0x0000, +0xFBC1,0xFB08,0x0000,0x0000, 0xFBC1,0xFB09,0x0000,0x0000, +0xFBC1,0xFB0A,0x0000,0x0000, 0xFBC1,0xFB0B,0x0000,0x0000, +0xFBC1,0xFB0C,0x0000,0x0000, 0xFBC1,0xFB0D,0x0000,0x0000, +0xFBC1,0xFB0E,0x0000,0x0000, 0xFBC1,0xFB0F,0x0000,0x0000, +0xFBC1,0xFB10,0x0000,0x0000, 0xFBC1,0xFB11,0x0000,0x0000, +0xFBC1,0xFB12,0x0000,0x0000, 0x131D,0x131F,0x0000,0x0000, +0x131D,0x130E,0x0000,0x0000, 0x131D,0x1314,0x0000,0x0000, +0x1327,0x131F,0x0000,0x0000, 0x131D,0x1316,0x0000,0x0000, +0xFBC1,0xFB18,0x0000,0x0000, 0xFBC1,0xFB19,0x0000,0x0000, +0xFBC1,0xFB1A,0x0000,0x0000, 0xFBC1,0xFB1B,0x0000,0x0000, +0xFBC1,0xFB1C,0x0000,0x0000, 0x133A,0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000,0x0000, 0x133A,0x133A,0x0000,0x0000, +0x1340,0x0000,0x0000,0x0000, 0x1331,0x0000,0x0000,0x0000, +0x1334,0x0000,0x0000,0x0000, 0x1335,0x0000,0x0000,0x0000, +0x133B,0x0000,0x0000,0x0000, 0x133C,0x0000,0x0000,0x0000, +0x133D,0x0000,0x0000,0x0000, 0x1344,0x0000,0x0000,0x0000, +0x1346,0x0000,0x0000,0x0000, 0x0428,0x0000,0x0000,0x0000, +0x1345,0x0000,0x0000,0x0000, 0x1345,0x0000,0x0000,0x0000, +0x1345,0x0000,0x0000,0x0000, 0x1345,0x0000,0x0000,0x0000, +0x1331,0x0000,0x0000,0x0000, 0x1331,0x0000,0x0000,0x0000, +0x1331,0x0000,0x0000,0x0000, 0x1332,0x0000,0x0000,0x0000, +0x1333,0x0000,0x0000,0x0000, 0x1334,0x0000,0x0000,0x0000, +0x1335,0x0000,0x0000,0x0000, 0x1336,0x0000,0x0000,0x0000, +0x1337,0x0000,0x0000,0x0000, 0xFBC1,0xFB37,0x0000,0x0000, +0x1339,0x0000,0x0000,0x0000, 0x133A,0x0000,0x0000,0x0000, +0x133B,0x0000,0x0000,0x0000, 0x133B,0x0000,0x0000,0x0000, +0x133C,0x0000,0x0000,0x0000, 0xFBC1,0xFB3D,0x0000,0x0000, +0x133D,0x0000,0x0000,0x0000, 0xFBC1,0xFB3F,0x0000,0x0000, +0x133E,0x0000,0x0000,0x0000, 0x133F,0x0000,0x0000,0x0000, +0xFBC1,0xFB42,0x0000,0x0000, 0x1341,0x0000,0x0000,0x0000, +0x1341,0x0000,0x0000,0x0000, 0xFBC1,0xFB45,0x0000,0x0000, +0x1342,0x0000,0x0000,0x0000, 0x1343,0x0000,0x0000,0x0000, +0x1344,0x0000,0x0000,0x0000, 0x1345,0x0000,0x0000,0x0000, +0x1346,0x0000,0x0000,0x0000, 0x1336,0x0000,0x0000,0x0000, +0x1332,0x0000,0x0000,0x0000, 0x133B,0x0000,0x0000,0x0000, +0x1341,0x0000,0x0000,0x0000, 0x1331,0x133C,0x0000,0x0000, +0x134B,0x0000,0x0000,0x0000, 0x134B,0x0000,0x0000,0x0000, +0x1353,0x0000,0x0000,0x0000, 0x1353,0x0000,0x0000,0x0000, +0x1353,0x0000,0x0000,0x0000, 0x1353,0x0000,0x0000,0x0000, +0x1354,0x0000,0x0000,0x0000, 0x1354,0x0000,0x0000,0x0000, +0x1354,0x0000,0x0000,0x0000, 0x1354,0x0000,0x0000,0x0000, +0x1355,0x0000,0x0000,0x0000, 0x1355,0x0000,0x0000,0x0000, +0x1355,0x0000,0x0000,0x0000, 0x1355,0x0000,0x0000,0x0000, +0x135A,0x0000,0x0000,0x0000, 0x135A,0x0000,0x0000,0x0000, +0x135A,0x0000,0x0000,0x0000, 0x135A,0x0000,0x0000,0x0000, +0x135D,0x0000,0x0000,0x0000, 0x135D,0x0000,0x0000,0x0000, +0x135D,0x0000,0x0000,0x0000, 0x135D,0x0000,0x0000,0x0000, +0x1359,0x0000,0x0000,0x0000, 0x1359,0x0000,0x0000,0x0000, +0x1359,0x0000,0x0000,0x0000, 0x1359,0x0000,0x0000,0x0000, +0x1397,0x0000,0x0000,0x0000, 0x1397,0x0000,0x0000,0x0000, +0x1397,0x0000,0x0000,0x0000, 0x1397,0x0000,0x0000,0x0000, +0x1399,0x0000,0x0000,0x0000, 0x1399,0x0000,0x0000,0x0000, +0x1399,0x0000,0x0000,0x0000, 0x1399,0x0000,0x0000,0x0000, +0x1360,0x0000,0x0000,0x0000, 0x1360,0x0000,0x0000,0x0000, +0x1360,0x0000,0x0000,0x0000, 0x1360,0x0000,0x0000,0x0000, +0x135F,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, +0x135F,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, +0x1361,0x0000,0x0000,0x0000, 0x1361,0x0000,0x0000,0x0000, +0x1361,0x0000,0x0000,0x0000, 0x1361,0x0000,0x0000,0x0000, +0x1363,0x0000,0x0000,0x0000, 0x1363,0x0000,0x0000,0x0000, +0x1363,0x0000,0x0000,0x0000, 0x1363,0x0000,0x0000,0x0000, +0x1370,0x0000,0x0000,0x0000, 0x1370,0x0000,0x0000,0x0000, +0x136F,0x0000,0x0000,0x0000, 0x136F,0x0000,0x0000,0x0000, +0x1371,0x0000,0x0000,0x0000, 0x1371,0x0000,0x0000,0x0000, +0x136B,0x0000,0x0000,0x0000, 0x136B,0x0000,0x0000,0x0000, +0x137E,0x0000,0x0000,0x0000, 0x137E,0x0000,0x0000,0x0000, +0x1377,0x0000,0x0000,0x0000, 0x1377,0x0000,0x0000,0x0000, +0x139F,0x0000,0x0000,0x0000, 0x139F,0x0000,0x0000,0x0000, +0x139F,0x0000,0x0000,0x0000, 0x139F,0x0000,0x0000,0x0000, +0x13A5,0x0000,0x0000,0x0000, 0x13A5,0x0000,0x0000,0x0000, +0x13A5,0x0000,0x0000,0x0000, 0x13A5,0x0000,0x0000,0x0000, +0x13A9,0x0000,0x0000,0x0000, 0x13A9,0x0000,0x0000,0x0000, +0x13A9,0x0000,0x0000,0x0000, 0x13A9,0x0000,0x0000,0x0000, +0x13A7,0x0000,0x0000,0x0000, 0x13A7,0x0000,0x0000,0x0000, +0x13A7,0x0000,0x0000,0x0000, 0x13A7,0x0000,0x0000,0x0000, +0x13B2,0x0000,0x0000,0x0000, 0x13B2,0x0000,0x0000,0x0000, +0x13B3,0x0000,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, +0x13B3,0x0000,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, +0x13BC,0x0000,0x0000,0x0000, 0x13BC,0x0000,0x0000,0x0000, +0x13B9,0x0000,0x0000,0x0000, 0x13B9,0x0000,0x0000,0x0000, +0x13B9,0x0000,0x0000,0x0000, 0x13B9,0x0000,0x0000,0x0000, +0x13B8,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000, +0x13B8,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000, +0x13CE,0x0000,0x0000,0x0000, 0x13CE,0x0000,0x0000,0x0000, +0x13CE,0x0000,0x0000,0x0000, 0x13CE,0x0000,0x0000,0x0000, +0xFBC1,0xFBB2,0x0000,0x0000, 0xFBC1,0xFBB3,0x0000,0x0000, +0xFBC1,0xFBB4,0x0000,0x0000, 0xFBC1,0xFBB5,0x0000,0x0000, +0xFBC1,0xFBB6,0x0000,0x0000, 0xFBC1,0xFBB7,0x0000,0x0000, +0xFBC1,0xFBB8,0x0000,0x0000, 0xFBC1,0xFBB9,0x0000,0x0000, +0xFBC1,0xFBBA,0x0000,0x0000, 0xFBC1,0xFBBB,0x0000,0x0000, +0xFBC1,0xFBBC,0x0000,0x0000, 0xFBC1,0xFBBD,0x0000,0x0000, +0xFBC1,0xFBBE,0x0000,0x0000, 0xFBC1,0xFBBF,0x0000,0x0000, +0xFBC1,0xFBC0,0x0000,0x0000, 0xFBC1,0xFBC1,0x0000,0x0000, +0xFBC1,0xFBC2,0x0000,0x0000, 0xFBC1,0xFBC3,0x0000,0x0000, +0xFBC1,0xFBC4,0x0000,0x0000, 0xFBC1,0xFBC5,0x0000,0x0000, +0xFBC1,0xFBC6,0x0000,0x0000, 0xFBC1,0xFBC7,0x0000,0x0000, +0xFBC1,0xFBC8,0x0000,0x0000, 0xFBC1,0xFBC9,0x0000,0x0000, +0xFBC1,0xFBCA,0x0000,0x0000, 0xFBC1,0xFBCB,0x0000,0x0000, +0xFBC1,0xFBCC,0x0000,0x0000, 0xFBC1,0xFBCD,0x0000,0x0000, +0xFBC1,0xFBCE,0x0000,0x0000, 0xFBC1,0xFBCF,0x0000,0x0000, +0xFBC1,0xFBD0,0x0000,0x0000, 0xFBC1,0xFBD1,0x0000,0x0000, +0xFBC1,0xFBD2,0x0000,0x0000, 0x13A3,0x0000,0x0000,0x0000, +0x13A3,0x0000,0x0000,0x0000, 0x13A3,0x0000,0x0000,0x0000, +0x13A3,0x0000,0x0000,0x0000, 0x13C1,0x0000,0x0000,0x0000, +0x13C1,0x0000,0x0000,0x0000, 0x13C0,0x0000,0x0000,0x0000, +0x13C0,0x0000,0x0000,0x0000, 0x13C2,0x0000,0x0000,0x0000, +0x13C2,0x0000,0x0000,0x0000, 0x13C1,0x1347,0x0000,0x0000, +0x13C5,0x0000,0x0000,0x0000, 0x13C5,0x0000,0x0000,0x0000, +0x13BF,0x0000,0x0000,0x0000, 0x13BF,0x0000,0x0000,0x0000, +0x13C3,0x0000,0x0000,0x0000, 0x13C3,0x0000,0x0000,0x0000, +0x13CC,0x0000,0x0000,0x0000, 0x13CC,0x0000,0x0000,0x0000, +0x13CC,0x0000,0x0000,0x0000, 0x13CC,0x0000,0x0000,0x0000, +0x13C7,0x0000,0x0000,0x0000, 0x13C7,0x0000,0x0000,0x0000, +0x134F,0x1350,0x0000,0x0000, 0x134F,0x1350,0x0000,0x0000, +0x134F,0x13BC,0x0000,0x0000, 0x134F,0x13BC,0x0000,0x0000, +0x134F,0x13BD,0x0000,0x0000, 0x134F,0x13BD,0x0000,0x0000, +0x134F,0x13C1,0x0000,0x0000, 0x134F,0x13C1,0x0000,0x0000, +0x134F,0x13C0,0x0000,0x0000, 0x134F,0x13C0,0x0000,0x0000, +0x134F,0x13C2,0x0000,0x0000, 0x134F,0x13C2,0x0000,0x0000, +0x134F,0x13CC,0x0000,0x0000, 0x134F,0x13CC,0x0000,0x0000, +0x134F,0x13CC,0x0000,0x0000, 0x134F,0x13C7,0x0000,0x0000, +0x134F,0x13C7,0x0000,0x0000, 0x134F,0x13C7,0x0000,0x0000, +0x13C9,0x0000,0x0000,0x0000, 0x13C9,0x0000,0x0000,0x0000, +0x13C9,0x0000,0x0000,0x0000, 0x13C9,0x0000,0x0000,0x0000 +}; + +uint16 page0FCdata[]= { /* FC00 (3 weights per char) */ +0x134F,0x135E,0x0000, 0x134F,0x1364,0x0000, 0x134F,0x13B0,0x0000, +0x134F,0x13C7,0x0000, 0x134F,0x13C8,0x0000, 0x1352,0x135E,0x0000, +0x1352,0x1364,0x0000, 0x1352,0x1365,0x0000, 0x1352,0x13B0,0x0000, +0x1352,0x13C7,0x0000, 0x1352,0x13C8,0x0000, 0x1357,0x135E,0x0000, +0x1357,0x1364,0x0000, 0x1357,0x1365,0x0000, 0x1357,0x13B0,0x0000, +0x1357,0x13C7,0x0000, 0x1357,0x13C8,0x0000, 0x1358,0x135E,0x0000, +0x1358,0x13B0,0x0000, 0x1358,0x13C7,0x0000, 0x1358,0x13C8,0x0000, +0x135E,0x1364,0x0000, 0x135E,0x13B0,0x0000, 0x1364,0x135E,0x0000, +0x1364,0x13B0,0x0000, 0x1365,0x135E,0x0000, 0x1365,0x1364,0x0000, +0x1365,0x13B0,0x0000, 0x1381,0x135E,0x0000, 0x1381,0x1364,0x0000, +0x1381,0x1365,0x0000, 0x1381,0x13B0,0x0000, 0x1387,0x1364,0x0000, +0x1387,0x13B0,0x0000, 0x1388,0x135E,0x0000, 0x1388,0x1364,0x0000, +0x1388,0x1365,0x0000, 0x1388,0x13B0,0x0000, 0x138C,0x1364,0x0000, +0x138C,0x13B0,0x0000, 0x138D,0x13B0,0x0000, 0x138F,0x135E,0x0000, +0x138F,0x13B0,0x0000, 0x1390,0x135E,0x0000, 0x1390,0x13B0,0x0000, +0x1393,0x135E,0x0000, 0x1393,0x1364,0x0000, 0x1393,0x1365,0x0000, +0x1393,0x13B0,0x0000, 0x1393,0x13C7,0x0000, 0x1393,0x13C8,0x0000, +0x139B,0x1364,0x0000, 0x139B,0x13B0,0x0000, 0x139B,0x13C7,0x0000, +0x139B,0x13C8,0x0000, 0x139E,0x1350,0x0000, 0x139E,0x135E,0x0000, +0x139E,0x1364,0x0000, 0x139E,0x1365,0x0000, 0x139E,0x13AB,0x0000, +0x139E,0x13B0,0x0000, 0x139E,0x13C7,0x0000, 0x139E,0x13C8,0x0000, +0x13AB,0x135E,0x0000, 0x13AB,0x1364,0x0000, 0x13AB,0x1365,0x0000, +0x13AB,0x13B0,0x0000, 0x13AB,0x13C7,0x0000, 0x13AB,0x13C8,0x0000, +0x13B0,0x135E,0x0000, 0x13B0,0x1364,0x0000, 0x13B0,0x1365,0x0000, +0x13B0,0x13B0,0x0000, 0x13B0,0x13C7,0x0000, 0x13B0,0x13C8,0x0000, +0x13B1,0x135E,0x0000, 0x13B1,0x1364,0x0000, 0x13B1,0x1365,0x0000, +0x13B1,0x13B0,0x0000, 0x13B1,0x13C7,0x0000, 0x13B1,0x13C8,0x0000, +0x13B7,0x135E,0x0000, 0x13B7,0x13B0,0x0000, 0x13B7,0x13C7,0x0000, +0x13B7,0x13C8,0x0000, 0x13C8,0x135E,0x0000, 0x13C8,0x1364,0x0000, +0x13C8,0x1365,0x0000, 0x13C8,0x13B0,0x0000, 0x13C8,0x13C7,0x0000, +0x13C8,0x13C8,0x0000, 0x136A,0x0000,0x0000, 0x1375,0x0000,0x0000, +0x13C7,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x134F,0x1375,0x0000, 0x134F,0x1376,0x0000, +0x134F,0x13B0,0x0000, 0x134F,0x13B1,0x0000, 0x134F,0x13C7,0x0000, +0x134F,0x13C8,0x0000, 0x1352,0x1375,0x0000, 0x1352,0x1376,0x0000, +0x1352,0x13B0,0x0000, 0x1352,0x13B1,0x0000, 0x1352,0x13C7,0x0000, +0x1352,0x13C8,0x0000, 0x1357,0x1375,0x0000, 0x1357,0x1376,0x0000, +0x1357,0x13B0,0x0000, 0x1357,0x13B1,0x0000, 0x1357,0x13C7,0x0000, +0x1357,0x13C8,0x0000, 0x1358,0x1375,0x0000, 0x1358,0x1376,0x0000, +0x1358,0x13B0,0x0000, 0x1358,0x13B1,0x0000, 0x1358,0x13C7,0x0000, +0x1358,0x13C8,0x0000, 0x1393,0x13C7,0x0000, 0x1393,0x13C8,0x0000, +0x139B,0x13C7,0x0000, 0x139B,0x13C8,0x0000, 0x139E,0x1350,0x0000, +0x139E,0x13AB,0x0000, 0x139E,0x13B0,0x0000, 0x139E,0x13C7,0x0000, +0x139E,0x13C8,0x0000, 0x13AB,0x13B0,0x0000, 0x13AB,0x13C7,0x0000, +0x13AB,0x13C8,0x0000, 0x13B0,0x1350,0x0000, 0x13B0,0x13B0,0x0000, +0x13B1,0x1375,0x0000, 0x13B1,0x1376,0x0000, 0x13B1,0x13B0,0x0000, +0x13B1,0x13B1,0x0000, 0x13B1,0x13C7,0x0000, 0x13B1,0x13C8,0x0000, +0x13C7,0x0000,0x0000, 0x13C8,0x1375,0x0000, 0x13C8,0x1376,0x0000, +0x13C8,0x13B0,0x0000, 0x13C8,0x13B1,0x0000, 0x13C8,0x13C7,0x0000, +0x13C8,0x13C8,0x0000, 0x134F,0x135E,0x0000, 0x134F,0x1364,0x0000, +0x134F,0x1365,0x0000, 0x134F,0x13B0,0x0000, 0x134F,0x13B7,0x0000, +0x1352,0x135E,0x0000, 0x1352,0x1364,0x0000, 0x1352,0x1365,0x0000, +0x1352,0x13B0,0x0000, 0x1352,0x13B7,0x0000, 0x1357,0x135E,0x0000, +0x1357,0x1364,0x0000, 0x1357,0x1365,0x0000, 0x1357,0x13B0,0x0000, +0x1357,0x13B7,0x0000, 0x1358,0x13B0,0x0000, 0x135E,0x1364,0x0000, +0x135E,0x13B0,0x0000, 0x1364,0x135E,0x0000, 0x1364,0x13B0,0x0000, +0x1365,0x135E,0x0000, 0x1365,0x13B0,0x0000, 0x1381,0x135E,0x0000, +0x1381,0x1364,0x0000, 0x1381,0x1365,0x0000, 0x1381,0x13B0,0x0000, +0x1387,0x1364,0x0000, 0x1387,0x1365,0x0000, 0x1387,0x13B0,0x0000, +0x1388,0x135E,0x0000, 0x1388,0x1364,0x0000, 0x1388,0x1365,0x0000, +0x1388,0x13B0,0x0000, 0x138C,0x1364,0x0000, 0x138D,0x13B0,0x0000, +0x138F,0x135E,0x0000, 0x138F,0x13B0,0x0000, 0x1390,0x135E,0x0000, +0x1390,0x13B0,0x0000, 0x1393,0x135E,0x0000, 0x1393,0x1364,0x0000, +0x1393,0x1365,0x0000, 0x1393,0x13B0,0x0000, 0x139B,0x1364,0x0000, +0x139B,0x13B0,0x0000, 0x139E,0x135E,0x0000, 0x139E,0x1364,0x0000, +0x139E,0x1365,0x0000, 0x139E,0x13AB,0x0000, 0x139E,0x13B0,0x0000, +0x13AB,0x135E,0x0000, 0x13AB,0x1364,0x0000, 0x13AB,0x1365,0x0000, +0x13AB,0x13B0,0x0000, 0x13AB,0x13B7,0x0000, 0x13B0,0x135E,0x0000, +0x13B0,0x1364,0x0000, 0x13B0,0x1365,0x0000, 0x13B0,0x13B0,0x0000, +0x13B1,0x135E,0x0000, 0x13B1,0x1364,0x0000, 0x13B1,0x1365,0x0000, +0x13B1,0x13B0,0x0000, 0x13B1,0x13B7,0x0000, 0x13B7,0x135E,0x0000, +0x13B7,0x13B0,0x0000, 0x13B7,0x0000,0x0000, 0x13C8,0x135E,0x0000, +0x13C8,0x1364,0x0000, 0x13C8,0x1365,0x0000, 0x13C8,0x13B0,0x0000, +0x13C8,0x13B7,0x0000, 0x134F,0x13B0,0x0000, 0x134F,0x13B7,0x0000, +0x1352,0x13B0,0x0000, 0x1352,0x13B7,0x0000, 0x1357,0x13B0,0x0000, +0x1357,0x13B7,0x0000, 0x1358,0x13B0,0x0000, 0x1358,0x13B7,0x0000, +0x1381,0x13B0,0x0000, 0x1381,0x13B7,0x0000, 0x1382,0x13B0,0x0000, +0x1382,0x13B7,0x0000, 0x139E,0x13AB,0x0000, 0x139E,0x13B0,0x0000, +0x13AB,0x13B0,0x0000, 0x13B1,0x13B0,0x0000, 0x13B1,0x13B7,0x0000, +0x13C8,0x13B0,0x0000, 0x13C8,0x13B7,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x138C,0x13C7,0x0000, +0x138C,0x13C8,0x0000, 0x138F,0x13C7,0x0000, 0x138F,0x13C8,0x0000, +0x1390,0x13C7,0x0000, 0x1390,0x13C8,0x0000, 0x1381,0x13C7,0x0000, +0x1381,0x13C8,0x0000, 0x1382,0x13C7,0x0000, 0x1382,0x13C8,0x0000, +0x1364,0x13C7,0x0000 }; + +uint16 page0FDdata[]= { /* FD00 (9 weights per char) */ +0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1390,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1390,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138D,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x02C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x02C1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x13B0,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x13B0,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1364,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1364,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13B0,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x1364,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x1364,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138C,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1390,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1390,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1390,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1393,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1393,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139B,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139B,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x135E,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x135E,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1365,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD90,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFD91,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x135E,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B7,0x13B0,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B7,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13C8,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13C8,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1352,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1357,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1382,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1388,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13C8,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13C8,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13C8,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139B,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139B,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139E,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139E,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13AB,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1364,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1393,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1352,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139E,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1381,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B1,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDC8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDC9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDCA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDCB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDCD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDCE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDCF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDDA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDDB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDDC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDDD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDDE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDDF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDEB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDED,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDEE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDEF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13AB,0x13CE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x139B,0x13AB,0x13CE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1350,0x13AB,0x13AB,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1350,0x139E,0x1352,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13B0,0x1364,0x13B0,0x1369,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13AB,0x138F,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1375,0x1381,0x13BD,0x13AB,0x0000,0x0000,0x0000,0x0000,0x0000, +0x138F,0x13AB,0x13C8,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000, +0x13BD,0x1381,0x13AB,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000, +0x1387,0x13AB,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDFA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0x135E,0x13AB,0x0209,0x135E,0x13AB,0x1350,0x13AB,0x13B7,0x0000, +0x1375,0x13C9,0x1350,0x13AB,0x0000,0x0000,0x0000,0x0000,0x0000, +0x034F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, +0xFBC1,0xFDFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +uint16 page0FEdata[]= { /* FE00 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0xFBC1,0xFE10,0x0000, 0xFBC1,0xFE11,0x0000, +0xFBC1,0xFE12,0x0000, 0xFBC1,0xFE13,0x0000, 0xFBC1,0xFE14,0x0000, +0xFBC1,0xFE15,0x0000, 0xFBC1,0xFE16,0x0000, 0xFBC1,0xFE17,0x0000, +0xFBC1,0xFE18,0x0000, 0xFBC1,0xFE19,0x0000, 0xFBC1,0xFE1A,0x0000, +0xFBC1,0xFE1B,0x0000, 0xFBC1,0xFE1C,0x0000, 0xFBC1,0xFE1D,0x0000, +0xFBC1,0xFE1E,0x0000, 0xFBC1,0xFE1F,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC1,0xFE24,0x0000, 0xFBC1,0xFE25,0x0000, 0xFBC1,0xFE26,0x0000, +0xFBC1,0xFE27,0x0000, 0xFBC1,0xFE28,0x0000, 0xFBC1,0xFE29,0x0000, +0xFBC1,0xFE2A,0x0000, 0xFBC1,0xFE2B,0x0000, 0xFBC1,0xFE2C,0x0000, +0xFBC1,0xFE2D,0x0000, 0xFBC1,0xFE2E,0x0000, 0xFBC1,0xFE2F,0x0000, +0x025D,0x025D,0x0000, 0x0228,0x0000,0x0000, 0x0227,0x0000,0x0000, +0x021B,0x0000,0x0000, 0x021B,0x0000,0x0000, 0x0288,0x0000,0x0000, +0x0289,0x0000,0x0000, 0x028C,0x0000,0x0000, 0x028D,0x0000,0x0000, +0x02B8,0x0000,0x0000, 0x02B9,0x0000,0x0000, 0x02B6,0x0000,0x0000, +0x02B7,0x0000,0x0000, 0x02B0,0x0000,0x0000, 0x02B1,0x0000,0x0000, +0x02AE,0x0000,0x0000, 0x02AF,0x0000,0x0000, 0x02B2,0x0000,0x0000, +0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000, 0x02B5,0x0000,0x0000, +0x0238,0x0000,0x0000, 0x0239,0x0000,0x0000, 0x028A,0x0000,0x0000, +0x028B,0x0000,0x0000, 0x0211,0x0000,0x0000, 0x0211,0x0000,0x0000, +0x0211,0x0000,0x0000, 0x0211,0x0000,0x0000, 0x021B,0x0000,0x0000, +0x021B,0x0000,0x0000, 0x021B,0x0000,0x0000, 0x022F,0x0000,0x0000, +0x0237,0x0000,0x0000, 0x025D,0x0000,0x0000, 0xFBC1,0xFE53,0x0000, +0x023A,0x0000,0x0000, 0x023D,0x0000,0x0000, 0x0255,0x0000,0x0000, +0x0251,0x0000,0x0000, 0x0228,0x0000,0x0000, 0x0288,0x0000,0x0000, +0x0289,0x0000,0x0000, 0x028C,0x0000,0x0000, 0x028D,0x0000,0x0000, +0x02B8,0x0000,0x0000, 0x02B9,0x0000,0x0000, 0x02D2,0x0000,0x0000, +0x02CF,0x0000,0x0000, 0x02C8,0x0000,0x0000, 0x0428,0x0000,0x0000, +0x0221,0x0000,0x0000, 0x042C,0x0000,0x0000, 0x042E,0x0000,0x0000, +0x042D,0x0000,0x0000, 0xFBC1,0xFE67,0x0000, 0x02CE,0x0000,0x0000, +0x0E0F,0x0000,0x0000, 0x02D3,0x0000,0x0000, 0x02C7,0x0000,0x0000, +0xFBC1,0xFE6C,0x0000, 0xFBC1,0xFE6D,0x0000, 0xFBC1,0xFE6E,0x0000, +0xFBC1,0xFE6F,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0xFBC1,0xFE75,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1347,0x0000,0x0000, +0x1348,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1349,0x0000,0x0000, +0x1349,0x0000,0x0000, 0x134C,0x0000,0x0000, 0x134C,0x0000,0x0000, +0x134D,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x134F,0x0000,0x0000, +0x134F,0x0000,0x0000, 0x134F,0x0000,0x0000, 0x134F,0x0000,0x0000, +0x1350,0x0000,0x0000, 0x1350,0x0000,0x0000, 0x1352,0x0000,0x0000, +0x1352,0x0000,0x0000, 0x1352,0x0000,0x0000, 0x1352,0x0000,0x0000, +0x1356,0x0000,0x0000, 0x1356,0x0000,0x0000, 0x1357,0x0000,0x0000, +0x1357,0x0000,0x0000, 0x1357,0x0000,0x0000, 0x1357,0x0000,0x0000, +0x1358,0x0000,0x0000, 0x1358,0x0000,0x0000, 0x1358,0x0000,0x0000, +0x1358,0x0000,0x0000, 0x135E,0x0000,0x0000, 0x135E,0x0000,0x0000, +0x135E,0x0000,0x0000, 0x135E,0x0000,0x0000, 0x1364,0x0000,0x0000, +0x1364,0x0000,0x0000, 0x1364,0x0000,0x0000, 0x1364,0x0000,0x0000, +0x1365,0x0000,0x0000, 0x1365,0x0000,0x0000, 0x1365,0x0000,0x0000, +0x1365,0x0000,0x0000, 0x1369,0x0000,0x0000, 0x1369,0x0000,0x0000, +0x136A,0x0000,0x0000, 0x136A,0x0000,0x0000, 0x1375,0x0000,0x0000, +0x1375,0x0000,0x0000, 0x1376,0x0000,0x0000, 0x1376,0x0000,0x0000, +0x1381,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1381,0x0000,0x0000, +0x1381,0x0000,0x0000, 0x1382,0x0000,0x0000, 0x1382,0x0000,0x0000, +0x1382,0x0000,0x0000, 0x1382,0x0000,0x0000, 0x1387,0x0000,0x0000, +0x1387,0x0000,0x0000, 0x1387,0x0000,0x0000, 0x1387,0x0000,0x0000, +0x1388,0x0000,0x0000, 0x1388,0x0000,0x0000, 0x1388,0x0000,0x0000, +0x1388,0x0000,0x0000, 0x138C,0x0000,0x0000, 0x138C,0x0000,0x0000, +0x138C,0x0000,0x0000, 0x138C,0x0000,0x0000, 0x138D,0x0000,0x0000, +0x138D,0x0000,0x0000, 0x138D,0x0000,0x0000, 0x138D,0x0000,0x0000, +0x138F,0x0000,0x0000, 0x138F,0x0000,0x0000, 0x138F,0x0000,0x0000, +0x138F,0x0000,0x0000, 0x1390,0x0000,0x0000, 0x1390,0x0000,0x0000, +0x1390,0x0000,0x0000, 0x1390,0x0000,0x0000, 0x1393,0x0000,0x0000, +0x1393,0x0000,0x0000, 0x1393,0x0000,0x0000, 0x1393,0x0000,0x0000, +0x139B,0x0000,0x0000, 0x139B,0x0000,0x0000, 0x139B,0x0000,0x0000, +0x139B,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x139E,0x0000,0x0000, +0x139E,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x13AB,0x0000,0x0000, +0x13AB,0x0000,0x0000, 0x13AB,0x0000,0x0000, 0x13AB,0x0000,0x0000, +0x13B0,0x0000,0x0000, 0x13B0,0x0000,0x0000, 0x13B0,0x0000,0x0000, +0x13B0,0x0000,0x0000, 0x13B1,0x0000,0x0000, 0x13B1,0x0000,0x0000, +0x13B1,0x0000,0x0000, 0x13B1,0x0000,0x0000, 0x13B7,0x0000,0x0000, +0x13B7,0x0000,0x0000, 0x13B7,0x0000,0x0000, 0x13B7,0x0000,0x0000, +0x13BD,0x0000,0x0000, 0x13BD,0x0000,0x0000, 0x13C7,0x0000,0x0000, +0x13C7,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13C8,0x0000,0x0000, +0x13C8,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13AB,0x1348,0x0000, +0x13AB,0x1348,0x0000, 0x13AB,0x1349,0x0000, 0x13AB,0x1349,0x0000, +0x13AB,0x134D,0x0000, 0x13AB,0x134D,0x0000, 0x13AB,0x1350,0x0000, +0x13AB,0x1350,0x0000, 0xFBC1,0xFEFD,0x0000, 0xFBC1,0xFEFE,0x0000, +0x0000,0x0000,0x0000 }; + +uint16 page0FFdata[]= { /* FF00 (3 weights per char) */ +0xFBC1,0xFF00,0x0000, 0x0251,0x0000,0x0000, 0x027E,0x0000,0x0000, +0x02D2,0x0000,0x0000, 0x0E0F,0x0000,0x0000, 0x02D3,0x0000,0x0000, +0x02CF,0x0000,0x0000, 0x0277,0x0000,0x0000, 0x0288,0x0000,0x0000, +0x0289,0x0000,0x0000, 0x02C8,0x0000,0x0000, 0x0428,0x0000,0x0000, +0x022F,0x0000,0x0000, 0x0221,0x0000,0x0000, 0x025D,0x0000,0x0000, +0x02CC,0x0000,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, +0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, +0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, +0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x023D,0x0000,0x0000, +0x023A,0x0000,0x0000, 0x042C,0x0000,0x0000, 0x042D,0x0000,0x0000, +0x042E,0x0000,0x0000, 0x0255,0x0000,0x0000, 0x02C7,0x0000,0x0000, +0x0E33,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E60,0x0000,0x0000, +0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0EB9,0x0000,0x0000, +0x0EC1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000, +0x0F10,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F2E,0x0000,0x0000, +0x0F5B,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F82,0x0000,0x0000, +0x0FA7,0x0000,0x0000, 0x0FB4,0x0000,0x0000, 0x0FC0,0x0000,0x0000, +0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000, +0x1044,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x105A,0x0000,0x0000, +0x105E,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x028A,0x0000,0x0000, +0x02CE,0x0000,0x0000, 0x028B,0x0000,0x0000, 0x020F,0x0000,0x0000, +0x021B,0x0000,0x0000, 0x020C,0x0000,0x0000, 0x0E33,0x0000,0x0000, +0x0E4A,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E6D,0x0000,0x0000, +0x0E8B,0x0000,0x0000, 0x0EB9,0x0000,0x0000, 0x0EC1,0x0000,0x0000, +0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0F10,0x0000,0x0000, +0x0F21,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F5B,0x0000,0x0000, +0x0F64,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0FA7,0x0000,0x0000, +0x0FB4,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FEA,0x0000,0x0000, +0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1044,0x0000,0x0000, +0x1051,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105E,0x0000,0x0000, +0x106A,0x0000,0x0000, 0x028C,0x0000,0x0000, 0x0430,0x0000,0x0000, +0x028D,0x0000,0x0000, 0x0433,0x0000,0x0000, 0x029A,0x0000,0x0000, +0x029B,0x0000,0x0000, 0x0266,0x0000,0x0000, 0x02B2,0x0000,0x0000, +0x02B3,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x022E,0x0000,0x0000, +0x1E80,0x0000,0x0000, 0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, +0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, +0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E77,0x0000,0x0000, +0x1E63,0x0000,0x0000, 0x0E0B,0x0000,0x0000, 0x1E52,0x0000,0x0000, +0x1E53,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000, +0x1E56,0x0000,0x0000, 0x1E57,0x0000,0x0000, 0x1E58,0x0000,0x0000, +0x1E59,0x0000,0x0000, 0x1E5A,0x0000,0x0000, 0x1E5B,0x0000,0x0000, +0x1E5C,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000, +0x1E5F,0x0000,0x0000, 0x1E60,0x0000,0x0000, 0x1E61,0x0000,0x0000, +0x1E62,0x0000,0x0000, 0x1E63,0x0000,0x0000, 0x1E64,0x0000,0x0000, +0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, 0x1E67,0x0000,0x0000, +0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, 0x1E6A,0x0000,0x0000, +0x1E6B,0x0000,0x0000, 0x1E6C,0x0000,0x0000, 0x1E6D,0x0000,0x0000, +0x1E6E,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E70,0x0000,0x0000, +0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E73,0x0000,0x0000, +0x1E74,0x0000,0x0000, 0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, +0x1E77,0x0000,0x0000, 0x1E78,0x0000,0x0000, 0x1E79,0x0000,0x0000, +0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000, 0x1E7C,0x0000,0x0000, +0x1E7D,0x0000,0x0000, 0x1E81,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0000,0x0000,0x0000, 0x1DBD,0x0000,0x0000, 0x1D62,0x0000,0x0000, +0x1D63,0x0000,0x0000, 0x1E02,0x0000,0x0000, 0x1D64,0x0000,0x0000, +0x1E04,0x0000,0x0000, 0x1E05,0x0000,0x0000, 0x1D65,0x0000,0x0000, +0x1D66,0x0000,0x0000, 0x1D67,0x0000,0x0000, 0x1E08,0x0000,0x0000, +0x1E09,0x0000,0x0000, 0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, +0x1E0C,0x0000,0x0000, 0x1E0D,0x0000,0x0000, 0x1D7C,0x0000,0x0000, +0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, 0x1D6A,0x0000,0x0000, +0x1D83,0x0000,0x0000, 0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, +0x1D6D,0x0000,0x0000, 0x1D6E,0x0000,0x0000, 0x1D6F,0x0000,0x0000, +0x1D70,0x0000,0x0000, 0x1D71,0x0000,0x0000, 0x1D72,0x0000,0x0000, +0x1D73,0x0000,0x0000, 0x1D74,0x0000,0x0000, 0xFBC1,0xFFBF,0x0000, +0xFBC1,0xFFC0,0x0000, 0xFBC1,0xFFC1,0x0000, 0x1DBE,0x0000,0x0000, +0x1DBF,0x0000,0x0000, 0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, +0x1DC2,0x0000,0x0000, 0x1DC3,0x0000,0x0000, 0xFBC1,0xFFC8,0x0000, +0xFBC1,0xFFC9,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000, +0x1DC6,0x0000,0x0000, 0x1DC7,0x0000,0x0000, 0x1DC8,0x0000,0x0000, +0x1DC9,0x0000,0x0000, 0xFBC1,0xFFD0,0x0000, 0xFBC1,0xFFD1,0x0000, +0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, 0x1DCC,0x0000,0x0000, +0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, 0x1DCF,0x0000,0x0000, +0xFBC1,0xFFD8,0x0000, 0xFBC1,0xFFD9,0x0000, 0x1DD0,0x0000,0x0000, +0x1DD1,0x0000,0x0000, 0x1DD2,0x0000,0x0000, 0xFBC1,0xFFDD,0x0000, +0xFBC1,0xFFDE,0x0000, 0xFBC1,0xFFDF,0x0000, 0x0E0E,0x0000,0x0000, +0x0E10,0x0000,0x0000, 0x042F,0x0000,0x0000, 0x0210,0x0000,0x0000, +0x0431,0x0000,0x0000, 0x0E11,0x0000,0x0000, 0x0E20,0x0000,0x0000, +0xFBC1,0xFFE7,0x0000, 0x05FE,0x0000,0x0000, 0x03AE,0x0000,0x0000, +0x03B0,0x0000,0x0000, 0x03AF,0x0000,0x0000, 0x03B1,0x0000,0x0000, +0x069C,0x0000,0x0000, 0x06C7,0x0000,0x0000, 0xFBC1,0xFFEF,0x0000, +0xFBC1,0xFFF0,0x0000, 0xFBC1,0xFFF1,0x0000, 0xFBC1,0xFFF2,0x0000, +0xFBC1,0xFFF3,0x0000, 0xFBC1,0xFFF4,0x0000, 0xFBC1,0xFFF5,0x0000, +0xFBC1,0xFFF6,0x0000, 0xFBC1,0xFFF7,0x0000, 0xFBC1,0xFFF8,0x0000, +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, +0x0DC5,0x0000,0x0000, 0x0DC6,0x0000,0x0000, 0xFBC1,0xFFFE,0x0000, +0xFBC1,0xFFFF,0x0000 }; + +uchar uca_length[256]={ +4,3,3,4,3,3,3,3,0,3,3,3,3,3,3,3, +3,3,3,3,3,2,3,3,3,3,0,0,0,3,3,3, +5,5,4,3,5,2,3,3,2,2,5,3,0,0,3,3, +3,3,8,9,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3,3,4,3,9,3,3 +}; +uint16 *uca_weight[256]={ +page000data,page001data,page002data,page003data, +page004data,page005data,page006data,page007data, +NULL ,page009data,page00Adata,page00Bdata, +page00Cdata,page00Ddata,page00Edata,page00Fdata, +page010data,page011data,page012data,page013data, +page014data,page015data,page016data,page017data, +page018data,page019data,NULL ,NULL , +NULL ,page01Ddata,page01Edata,page01Fdata, +page020data,page021data,page022data,page023data, +page024data,page025data,page026data,page027data, +page028data,page029data,page02Adata,page02Bdata, +NULL ,NULL ,page02Edata,page02Fdata, +page030data,page031data,page032data,page033data, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,page04Ddata,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +page0A0data,page0A1data,page0A2data,page0A3data, +page0A4data,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,page0F9data,page0FAdata,page0FBdata, +page0FCdata,page0FDdata,page0FEdata,page0FFdata +}; + + +MY_UCA_INFO my_uca_v400= +{ + { + { + 0xFFFF, /* maxchar */ + uca_length, + uca_weight, + { /* Contractions: */ + 0, /* nitems */ + NULL, /* item */ + NULL /* flags */ + } + }, + }, + + /* Logical positions */ + 0x0009, /* first_non_ignorable p != ignore */ + 0xA48C, /* last_non_ignorable Not a CJK and not UNASSIGNED */ + + 0x0332, /* first_primary_ignorable p == 0 */ + 0x20EA, /* last_primary_ignorable */ + + 0x0000, /* first_secondary_ignorable p,s == 0 */ + 0xFE73, /* last_secondary_ignorable p,s == 0 */ + + 0x0000, /* first_tertiary_ignorable p,s,t == 0 */ + 0xFE73, /* last_tertiary_ignorable p,s,t == 0 */ + + 0x0000, /* first_trailing */ + 0x0000, /* last_trailing */ + + 0x0009, /* first_variable */ + 0x2183, /* last_variable */ +}; + +/******************************************************/ + +#define MY_UCA_CMASK 255 +#define MY_UCA_PSHIFT 8 + + +/* Created from allkeys.txt. Unicode version '5.2.0'. */ + +uint16 uca520_p000[]= { /* 0000 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0000 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0002 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0004 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0006 */ +0x0000,0x0000,0x0000,0x0000, 0x0201,0x0000,0x0000,0x0000, /* 0008 */ +0x0202,0x0000,0x0000,0x0000, 0x0203,0x0000,0x0000,0x0000, /* 000A */ +0x0204,0x0000,0x0000,0x0000, 0x0205,0x0000,0x0000,0x0000, /* 000C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 000E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0010 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0012 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0014 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0016 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0018 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001E */ +0x020A,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* 0020 */ +0x02F5,0x0000,0x0000,0x0000, 0x0362,0x0000,0x0000,0x0000, /* 0022 */ +0x11E1,0x0000,0x0000,0x0000, 0x0363,0x0000,0x0000,0x0000, /* 0024 */ +0x035F,0x0000,0x0000,0x0000, 0x02EE,0x0000,0x0000,0x0000, /* 0026 */ +0x02FF,0x0000,0x0000,0x0000, 0x0300,0x0000,0x0000,0x0000, /* 0028 */ +0x0357,0x0000,0x0000,0x0000, 0x0550,0x0000,0x0000,0x0000, /* 002A */ +0x0234,0x0000,0x0000,0x0000, 0x0223,0x0000,0x0000,0x0000, /* 002C */ +0x0281,0x0000,0x0000,0x0000, 0x035C,0x0000,0x0000,0x0000, /* 002E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 0030 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 0032 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 0034 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 0036 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 0038 */ +0x0247,0x0000,0x0000,0x0000, 0x0243,0x0000,0x0000,0x0000, /* 003A */ +0x0554,0x0000,0x0000,0x0000, 0x0555,0x0000,0x0000,0x0000, /* 003C */ +0x0556,0x0000,0x0000,0x0000, 0x0273,0x0000,0x0000,0x0000, /* 003E */ +0x0356,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0040 */ +0x1225,0x0000,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 0042 */ +0x1250,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 0044 */ +0x12A3,0x0000,0x0000,0x0000, 0x12B0,0x0000,0x0000,0x0000, /* 0046 */ +0x12D3,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0048 */ +0x1305,0x0000,0x0000,0x0000, 0x131E,0x0000,0x0000,0x0000, /* 004A */ +0x1330,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 004C */ +0x136D,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 004E */ +0x13B3,0x0000,0x0000,0x0000, 0x13C8,0x0000,0x0000,0x0000, /* 0050 */ +0x13DA,0x0000,0x0000,0x0000, 0x1410,0x0000,0x0000,0x0000, /* 0052 */ +0x1433,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0054 */ +0x147B,0x0000,0x0000,0x0000, 0x148D,0x0000,0x0000,0x0000, /* 0056 */ +0x1497,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 0058 */ +0x14AD,0x0000,0x0000,0x0000, 0x0301,0x0000,0x0000,0x0000, /* 005A */ +0x035E,0x0000,0x0000,0x0000, 0x0302,0x0000,0x0000,0x0000, /* 005C */ +0x0211,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* 005E */ +0x020E,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0060 */ +0x1225,0x0000,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 0062 */ +0x1250,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 0064 */ +0x12A3,0x0000,0x0000,0x0000, 0x12B0,0x0000,0x0000,0x0000, /* 0066 */ +0x12D3,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0068 */ +0x1305,0x0000,0x0000,0x0000, 0x131E,0x0000,0x0000,0x0000, /* 006A */ +0x1330,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 006C */ +0x136D,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 006E */ +0x13B3,0x0000,0x0000,0x0000, 0x13C8,0x0000,0x0000,0x0000, /* 0070 */ +0x13DA,0x0000,0x0000,0x0000, 0x1410,0x0000,0x0000,0x0000, /* 0072 */ +0x1433,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0074 */ +0x147B,0x0000,0x0000,0x0000, 0x148D,0x0000,0x0000,0x0000, /* 0076 */ +0x1497,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 0078 */ +0x14AD,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* 007A */ +0x0558,0x0000,0x0000,0x0000, 0x0304,0x0000,0x0000,0x0000, /* 007C */ +0x055B,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 007E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0080 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0082 */ +0x0000,0x0000,0x0000,0x0000, 0x0206,0x0000,0x0000,0x0000, /* 0084 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0086 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0088 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0090 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0092 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0094 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0096 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0098 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009E */ +0x020A,0x0000,0x0000,0x0000, 0x026F,0x0000,0x0000,0x0000, /* 00A0 */ +0x11E0,0x0000,0x0000,0x0000, 0x11E2,0x0000,0x0000,0x0000, /* 00A2 */ +0x11DF,0x0000,0x0000,0x0000, 0x11E3,0x0000,0x0000,0x0000, /* 00A4 */ +0x0559,0x0000,0x0000,0x0000, 0x0351,0x0000,0x0000,0x0000, /* 00A6 */ +0x0216,0x0000,0x0000,0x0000, 0x0354,0x0000,0x0000,0x0000, /* 00A8 */ +0x120F,0x0000,0x0000,0x0000, 0x02FD,0x0000,0x0000,0x0000, /* 00AA */ +0x0557,0x0000,0x0000,0x0000, 0x0222,0x0000,0x0000,0x0000, /* 00AC */ +0x0355,0x0000,0x0000,0x0000, 0x0212,0x0000,0x0000,0x0000, /* 00AE */ +0x044B,0x0000,0x0000,0x0000, 0x0551,0x0000,0x0000,0x0000, /* 00B0 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 00B2 */ +0x020F,0x0000,0x0000,0x0000, 0x1557,0x0000,0x0000,0x0000, /* 00B4 */ +0x0352,0x0000,0x0000,0x0000, 0x0292,0x0000,0x0000,0x0000, /* 00B6 */ +0x021B,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 00B8 */ +0x138E,0x0000,0x0000,0x0000, 0x02FE,0x0000,0x0000,0x0000, /* 00BA */ +0x1206,0x035D,0x1209,0x0000, 0x1206,0x035D,0x1207,0x0000, /* 00BC */ +0x1208,0x035D,0x1209,0x0000, 0x0274,0x0000,0x0000,0x0000, /* 00BE */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C0 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C2 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C4 */ +0x120F,0x126B,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 00C6 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00C8 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00CA */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00CC */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00CE */ +0x1250,0x0000,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 00D0 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00D2 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00D4 */ +0x138E,0x0000,0x0000,0x0000, 0x0553,0x0000,0x0000,0x0000, /* 00D6 */ +0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00D8 */ +0x1453,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00DA */ +0x1453,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 00DC */ +0x14E0,0x0000,0x0000,0x0000, 0x1410,0x1410,0x0000,0x0000, /* 00DE */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E0 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E2 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E4 */ +0x120F,0x126B,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 00E6 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00E8 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00EA */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00EC */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00EE */ +0x1250,0x0000,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 00F0 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00F2 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00F4 */ +0x138E,0x0000,0x0000,0x0000, 0x0552,0x0000,0x0000,0x0000, /* 00F6 */ +0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00F8 */ +0x1453,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00FA */ +0x1453,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 00FC */ +0x14E0,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000 /* 00FE */ +}; + +uint16 uca520_p001[]= { /* 0100 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0100 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0103 */ +0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 0106 */ +0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 0109 */ +0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 010C */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 010F */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0112 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0115 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0118 */ +0x126B,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 011B */ +0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 011E */ +0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 0121 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 0124 */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0127 */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 012A */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 012D */ +0x12EC,0x0000,0x0000, 0x12F0,0x0000,0x0000, 0x12EC,0x1305,0x0000, /* 0130 */ +0x12EC,0x1305,0x0000, 0x1305,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 0133 */ +0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x13D6,0x0000,0x0000, /* 0136 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 0139 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 013C */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 013F */ +0x1330,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 0142 */ +0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 0145 */ +0x136D,0x0000,0x0000, 0x150B,0x136D,0x0000, 0x138A,0x0000,0x0000, /* 0148 */ +0x138A,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 014B */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 014E */ +0x138E,0x0000,0x0000, 0x138E,0x126B,0x0000, 0x138E,0x126B,0x0000, /* 0151 */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 0154 */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 0157 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 015A */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 015D */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0160 */ +0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0163 */ +0x1438,0x0000,0x0000, 0x1438,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0166 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0169 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 016C */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 016F */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 0172 */ +0x148D,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 0175 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 0178 */ +0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 017B */ +0x14AD,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x122D,0x0000,0x0000, /* 017E */ +0x1235,0x0000,0x0000, 0x1239,0x0000,0x0000, 0x1239,0x0000,0x0000, /* 0181 */ +0x14FE,0x0000,0x0000, 0x14FE,0x0000,0x0000, 0x139A,0x0000,0x0000, /* 0184 */ +0x1246,0x0000,0x0000, 0x1246,0x0000,0x0000, 0x1258,0x0000,0x0000, /* 0187 */ +0x125C,0x0000,0x0000, 0x1261,0x0000,0x0000, 0x1261,0x0000,0x0000, /* 018A */ +0x14AD,0x148D,0x0000, 0x1276,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 018D */ +0x1280,0x0000,0x0000, 0x12AA,0x0000,0x0000, 0x12AA,0x0000,0x0000, /* 0190 */ +0x12C1,0x0000,0x0000, 0x12CB,0x0000,0x0000, 0x12DB,0x0000,0x0000, /* 0193 */ +0x1300,0x0000,0x0000, 0x12FA,0x0000,0x0000, 0x1324,0x0000,0x0000, /* 0196 */ +0x1324,0x0000,0x0000, 0x133B,0x0000,0x0000, 0x1357,0x0000,0x0000, /* 0199 */ +0x146D,0x0000,0x0000, 0x1378,0x0000,0x0000, 0x137C,0x0000,0x0000, /* 019C */ +0x13A5,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 019F */ +0x12CF,0x0000,0x0000, 0x12CF,0x0000,0x0000, 0x13BC,0x0000,0x0000, /* 01A2 */ +0x13BC,0x0000,0x0000, 0x13DE,0x0000,0x0000, 0x14F6,0x0000,0x0000, /* 01A5 */ +0x14F6,0x0000,0x0000, 0x1421,0x0000,0x0000, 0x1426,0x0000,0x0000, /* 01A8 */ +0x143E,0x0000,0x0000, 0x1442,0x0000,0x0000, 0x1442,0x0000,0x0000, /* 01AB */ +0x1446,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01AE */ +0x1476,0x0000,0x0000, 0x1482,0x0000,0x0000, 0x14A8,0x0000,0x0000, /* 01B1 */ +0x14A8,0x0000,0x0000, 0x14B2,0x0000,0x0000, 0x14B2,0x0000,0x0000, /* 01B4 */ +0x14CA,0x0000,0x0000, 0x14CF,0x0000,0x0000, 0x14CF,0x0000,0x0000, /* 01B7 */ +0x14D4,0x0000,0x0000, 0x14EF,0x0000,0x0000, 0x14FA,0x0000,0x0000, /* 01BA */ +0x14FA,0x0000,0x0000, 0x1433,0x1410,0x0000, 0x14E6,0x0000,0x0000, /* 01BD */ +0x1525,0x0000,0x0000, 0x1529,0x0000,0x0000, 0x152D,0x0000,0x0000, /* 01C0 */ +0x1531,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14AD,0x0000, /* 01C3 */ +0x1250,0x14AD,0x0000, 0x1330,0x1305,0x0000, 0x1330,0x1305,0x0000, /* 01C6 */ +0x1330,0x1305,0x0000, 0x136D,0x1305,0x0000, 0x136D,0x1305,0x0000, /* 01C9 */ +0x136D,0x1305,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01CC */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 01CF */ +0x138E,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D2 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D5 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D8 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1276,0x0000,0x0000, /* 01DB */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01DE */ +0x120F,0x0000,0x0000, 0x120F,0x126B,0x0000, 0x120F,0x126B,0x0000, /* 01E1 */ +0x12BC,0x0000,0x0000, 0x12BC,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 01E4 */ +0x12B0,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 01E7 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 01EA */ +0x138E,0x0000,0x0000, 0x14CA,0x0000,0x0000, 0x14CA,0x0000,0x0000, /* 01ED */ +0x1305,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14AD,0x0000, /* 01F0 */ +0x1250,0x14AD,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 01F3 */ +0x12DB,0x0000,0x0000, 0x14E6,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 01F6 */ +0x136D,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01F9 */ +0x120F,0x126B,0x0000, 0x120F,0x126B,0x0000, 0x138E,0x0000,0x0000, /* 01FC */ +0x138E,0x0000,0x0000 }; + +uint16 uca520_p002[]= { /* 0200 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0200 */ +0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0203 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0206 */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0209 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 020C */ +0x138E,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 020F */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0212 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0215 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0218 */ +0x1433,0x0000,0x0000, 0x14DC,0x0000,0x0000, 0x14DC,0x0000,0x0000, /* 021B */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x137C,0x0000,0x0000, /* 021E */ +0x1265,0x0000,0x0000, 0x13AE,0x0000,0x0000, 0x13AE,0x0000,0x0000, /* 0221 */ +0x14B8,0x0000,0x0000, 0x14B8,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0224 */ +0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0227 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 022A */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 022D */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 0230 */ +0x149C,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x1385,0x0000,0x0000, /* 0233 */ +0x144A,0x0000,0x0000, 0x1309,0x0000,0x0000, 0x1250,0x1225,0x0000, /* 0236 */ +0x13C8,0x13B3,0x0000, 0x1214,0x0000,0x0000, 0x1242,0x0000,0x0000, /* 0239 */ +0x1242,0x0000,0x0000, 0x133B,0x0000,0x0000, 0x143C,0x0000,0x0000, /* 023C */ +0x141B,0x0000,0x0000, 0x14C4,0x0000,0x0000, 0x1506,0x0000,0x0000, /* 023F */ +0x1506,0x0000,0x0000, 0x122D,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 0242 */ +0x1489,0x0000,0x0000, 0x1270,0x0000,0x0000, 0x1270,0x0000,0x0000, /* 0245 */ +0x130E,0x0000,0x0000, 0x130E,0x0000,0x0000, 0x13D2,0x0000,0x0000, /* 0248 */ +0x13D2,0x0000,0x0000, 0x13E4,0x0000,0x0000, 0x13E4,0x0000,0x0000, /* 024B */ +0x14A4,0x0000,0x0000, 0x14A4,0x0000,0x0000, 0x1218,0x0000,0x0000, /* 024E */ +0x121C,0x0000,0x0000, 0x1221,0x0000,0x0000, 0x1235,0x0000,0x0000, /* 0251 */ +0x139A,0x0000,0x0000, 0x124A,0x0000,0x0000, 0x1258,0x0000,0x0000, /* 0254 */ +0x125C,0x0000,0x0000, 0x1285,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 0257 */ +0x1289,0x0000,0x0000, 0x1280,0x0000,0x0000, 0x128D,0x0000,0x0000, /* 025A */ +0x1293,0x0000,0x0000, 0x1297,0x0000,0x0000, 0x1316,0x0000,0x0000, /* 025D */ +0x12C1,0x0000,0x0000, 0x12B4,0x0000,0x0000, 0x12B8,0x0000,0x0000, /* 0260 */ +0x12CB,0x0000,0x0000, 0x129F,0x0000,0x0000, 0x1461,0x0000,0x0000, /* 0263 */ +0x12DF,0x0000,0x0000, 0x12E6,0x0000,0x0000, 0x12FA,0x0000,0x0000, /* 0266 */ +0x1300,0x0000,0x0000, 0x12F4,0x0000,0x0000, 0x1340,0x0000,0x0000, /* 0269 */ +0x1344,0x0000,0x0000, 0x1349,0x0000,0x0000, 0x1352,0x0000,0x0000, /* 026C */ +0x146D,0x0000,0x0000, 0x1472,0x0000,0x0000, 0x1366,0x0000,0x0000, /* 026F */ +0x1378,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1371,0x0000,0x0000, /* 0272 */ +0x13A5,0x0000,0x0000, 0x1394,0x0000,0x0000, 0x13AA,0x0000,0x0000, /* 0275 */ +0x13C3,0x0000,0x0000, 0x13E9,0x0000,0x0000, 0x13EE,0x0000,0x0000, /* 0278 */ +0x13F3,0x0000,0x0000, 0x13F8,0x0000,0x0000, 0x13FC,0x0000,0x0000, /* 027B */ +0x1400,0x0000,0x0000, 0x1405,0x0000,0x0000, 0x13DE,0x0000,0x0000, /* 027E */ +0x1409,0x0000,0x0000, 0x1417,0x0000,0x0000, 0x1421,0x0000,0x0000, /* 0281 */ +0x131A,0x0000,0x0000, 0x142A,0x0000,0x0000, 0x142F,0x0000,0x0000, /* 0284 */ +0x144F,0x0000,0x0000, 0x1446,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 0287 */ +0x1476,0x0000,0x0000, 0x1482,0x0000,0x0000, 0x1489,0x0000,0x0000, /* 028A */ +0x1493,0x0000,0x0000, 0x135B,0x0000,0x0000, 0x14A0,0x0000,0x0000, /* 028D */ +0x14BC,0x0000,0x0000, 0x14C0,0x0000,0x0000, 0x14CA,0x0000,0x0000, /* 0290 */ +0x14D8,0x0000,0x0000, 0x1502,0x0000,0x0000, 0x1510,0x0000,0x0000, /* 0293 */ +0x1521,0x0000,0x0000, 0x1535,0x0000,0x0000, 0x1539,0x0000,0x0000, /* 0296 */ +0x1229,0x0000,0x0000, 0x129B,0x0000,0x0000, 0x12C5,0x0000,0x0000, /* 0299 */ +0x12D7,0x0000,0x0000, 0x1312,0x0000,0x0000, 0x132C,0x0000,0x0000, /* 029C */ +0x1334,0x0000,0x0000, 0x13CE,0x0000,0x0000, 0x1519,0x0000,0x0000, /* 029F */ +0x151D,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14CA,0x0000, /* 02A2 */ +0x1250,0x14C0,0x0000, 0x1433,0x1410,0x0000, 0x1433,0x1421,0x0000, /* 02A5 */ +0x1433,0x124A,0x0000, 0x12A3,0x138A,0x0000, 0x1330,0x1410,0x0000, /* 02A8 */ +0x1330,0x14AD,0x0000, 0x153D,0x0000,0x0000, 0x1541,0x0000,0x0000, /* 02AB */ +0x1465,0x0000,0x0000, 0x1469,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 02AE */ +0x12DF,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 02B1 */ +0x13E9,0x0000,0x0000, 0x13F3,0x0000,0x0000, 0x1409,0x0000,0x0000, /* 02B4 */ +0x148D,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x03E9,0x0000,0x0000, /* 02B7 */ +0x03EB,0x0000,0x0000, 0x12EA,0x0000,0x0000, 0x150B,0x0000,0x0000, /* 02BA */ +0x12EB,0x0000,0x0000, 0x150D,0x0000,0x0000, 0x1514,0x0000,0x0000, /* 02BD */ +0x150A,0x0000,0x0000, 0x1515,0x0000,0x0000, 0x03EC,0x0000,0x0000, /* 02C0 */ +0x03ED,0x0000,0x0000, 0x03EE,0x0000,0x0000, 0x03EF,0x0000,0x0000, /* 02C3 */ +0x03F0,0x0000,0x0000, 0x03F1,0x0000,0x0000, 0x03F2,0x0000,0x0000, /* 02C6 */ +0x03F3,0x0000,0x0000, 0x03F4,0x0000,0x0000, 0x03F5,0x0000,0x0000, /* 02C9 */ +0x03F6,0x0000,0x0000, 0x03F7,0x0000,0x0000, 0x03F8,0x0000,0x0000, /* 02CC */ +0x03F9,0x0000,0x0000, 0x11CE,0x0000,0x0000, 0x11CF,0x0000,0x0000, /* 02CF */ +0x03FA,0x0000,0x0000, 0x03FB,0x0000,0x0000, 0x03FC,0x0000,0x0000, /* 02D2 */ +0x03FD,0x0000,0x0000, 0x03FE,0x0000,0x0000, 0x03FF,0x0000,0x0000, /* 02D5 */ +0x0214,0x0000,0x0000, 0x0215,0x0000,0x0000, 0x0217,0x0000,0x0000, /* 02D8 */ +0x021C,0x0000,0x0000, 0x0210,0x0000,0x0000, 0x0218,0x0000,0x0000, /* 02DB */ +0x0400,0x0000,0x0000, 0x0401,0x0000,0x0000, 0x12CB,0x0000,0x0000, /* 02DE */ +0x1330,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 02E1 */ +0x1510,0x0000,0x0000, 0x0402,0x0000,0x0000, 0x0403,0x0000,0x0000, /* 02E4 */ +0x0404,0x0000,0x0000, 0x0405,0x0000,0x0000, 0x0406,0x0000,0x0000, /* 02E7 */ +0x0407,0x0000,0x0000, 0x0408,0x0000,0x0000, 0x0409,0x0000,0x0000, /* 02EA */ +0x040A,0x0000,0x0000, 0x150C,0x0000,0x0000, 0x040B,0x0000,0x0000, /* 02ED */ +0x040C,0x0000,0x0000, 0x040D,0x0000,0x0000, 0x040E,0x0000,0x0000, /* 02F0 */ +0x040F,0x0000,0x0000, 0x0410,0x0000,0x0000, 0x0411,0x0000,0x0000, /* 02F3 */ +0x0412,0x0000,0x0000, 0x0413,0x0000,0x0000, 0x0414,0x0000,0x0000, /* 02F6 */ +0x0415,0x0000,0x0000, 0x0416,0x0000,0x0000, 0x0417,0x0000,0x0000, /* 02F9 */ +0x0418,0x0000,0x0000, 0x0419,0x0000,0x0000, 0x041A,0x0000,0x0000, /* 02FC */ +0x041B,0x0000,0x0000 }; + +uint16 uca520_p003[]= { /* 0300 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0300 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0302 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0304 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0306 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0308 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0310 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0312 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0314 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0316 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0318 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0320 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0322 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0324 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0326 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0328 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0330 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0332 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0334 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0336 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0338 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0340 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0342 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0344 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0346 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0348 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0350 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0352 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0354 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0356 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0358 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0360 */ +0x0000,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0362 */ +0x126B,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0364 */ +0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0366 */ +0x123D,0x0000,0x0000,0x0000, 0x1250,0x0000,0x0000,0x0000, /* 0368 */ +0x12D3,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 036A */ +0x13DA,0x0000,0x0000,0x0000, 0x1433,0x0000,0x0000,0x0000, /* 036C */ +0x147B,0x0000,0x0000,0x0000, 0x1497,0x0000,0x0000,0x0000, /* 036E */ +0x154F,0x0000,0x0000,0x0000, 0x154F,0x0000,0x0000,0x0000, /* 0370 */ +0x156F,0x0000,0x0000,0x0000, 0x156F,0x0000,0x0000,0x0000, /* 0372 */ +0x03E9,0x0000,0x0000,0x0000, 0x03EA,0x0000,0x0000,0x0000, /* 0374 */ +0x154C,0x0000,0x0000,0x0000, 0x154C,0x0000,0x0000,0x0000, /* 0376 */ +0xFBC0,0x8378,0x0000,0x0000, 0xFBC0,0x8379,0x0000,0x0000, /* 0378 */ +0x1552,0x0000,0x0000,0x0000, 0x1565,0x0000,0x0000,0x0000, /* 037A */ +0x1564,0x0000,0x0000,0x0000, 0x1566,0x0000,0x0000,0x0000, /* 037C */ +0x0243,0x0000,0x0000,0x0000, 0xFBC0,0x837F,0x0000,0x0000, /* 037E */ +0xFBC0,0x8380,0x0000,0x0000, 0xFBC0,0x8381,0x0000,0x0000, /* 0380 */ +0xFBC0,0x8382,0x0000,0x0000, 0xFBC0,0x8383,0x0000,0x0000, /* 0382 */ +0x020F,0x0000,0x0000,0x0000, 0x0216,0x0000,0x0000,0x0000, /* 0384 */ +0x1545,0x0000,0x0000,0x0000, 0x0292,0x0000,0x0000,0x0000, /* 0386 */ +0x154A,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 0388 */ +0x1552,0x0000,0x0000,0x0000, 0xFBC0,0x838B,0x0000,0x0000, /* 038A */ +0x155A,0x0000,0x0000,0x0000, 0xFBC0,0x838D,0x0000,0x0000, /* 038C */ +0x1568,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 038E */ +0x1552,0x0000,0x0000,0x0000, 0x1545,0x0000,0x0000,0x0000, /* 0390 */ +0x1546,0x0000,0x0000,0x0000, 0x1547,0x0000,0x0000,0x0000, /* 0392 */ +0x1549,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 0394 */ +0x154E,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 0396 */ +0x1551,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 0398 */ +0x1554,0x0000,0x0000,0x0000, 0x1555,0x0000,0x0000,0x0000, /* 039A */ +0x1557,0x0000,0x0000,0x0000, 0x1558,0x0000,0x0000,0x0000, /* 039C */ +0x1559,0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000,0x0000, /* 039E */ +0x155B,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03A0 */ +0xFBC0,0x83A2,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03A2 */ +0x1567,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03A4 */ +0x1569,0x0000,0x0000,0x0000, 0x156A,0x0000,0x0000,0x0000, /* 03A6 */ +0x156B,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 03A8 */ +0x1552,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03AA */ +0x1545,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03AC */ +0x1550,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 03AE */ +0x1568,0x0000,0x0000,0x0000, 0x1545,0x0000,0x0000,0x0000, /* 03B0 */ +0x1546,0x0000,0x0000,0x0000, 0x1547,0x0000,0x0000,0x0000, /* 03B2 */ +0x1549,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03B4 */ +0x154E,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 03B6 */ +0x1551,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 03B8 */ +0x1554,0x0000,0x0000,0x0000, 0x1555,0x0000,0x0000,0x0000, /* 03BA */ +0x1557,0x0000,0x0000,0x0000, 0x1558,0x0000,0x0000,0x0000, /* 03BC */ +0x1559,0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000,0x0000, /* 03BE */ +0x155B,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03C0 */ +0x1563,0x0000,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03C2 */ +0x1567,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03C4 */ +0x1569,0x0000,0x0000,0x0000, 0x156A,0x0000,0x0000,0x0000, /* 03C6 */ +0x156B,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 03C8 */ +0x1552,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03CA */ +0x155A,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03CC */ +0x156D,0x0000,0x0000,0x0000, 0x1554,0x1545,0x1552,0x0000, /* 03CE */ +0x1546,0x0000,0x0000,0x0000, 0x1551,0x0000,0x0000,0x0000, /* 03D0 */ +0x1568,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03D2 */ +0x1568,0x0000,0x0000,0x0000, 0x1569,0x0000,0x0000,0x0000, /* 03D4 */ +0x155B,0x0000,0x0000,0x0000, 0x1554,0x1545,0x1552,0x0000, /* 03D6 */ +0x155F,0x0000,0x0000,0x0000, 0x155F,0x0000,0x0000,0x0000, /* 03D8 */ +0x154D,0x0000,0x0000,0x0000, 0x154D,0x0000,0x0000,0x0000, /* 03DA */ +0x154B,0x0000,0x0000,0x0000, 0x154B,0x0000,0x0000,0x0000, /* 03DC */ +0x155E,0x0000,0x0000,0x0000, 0x155E,0x0000,0x0000,0x0000, /* 03DE */ +0x156E,0x0000,0x0000,0x0000, 0x156E,0x0000,0x0000,0x0000, /* 03E0 */ +0x1590,0x0000,0x0000,0x0000, 0x1590,0x0000,0x0000,0x0000, /* 03E2 */ +0x1595,0x0000,0x0000,0x0000, 0x1595,0x0000,0x0000,0x0000, /* 03E4 */ +0x1596,0x0000,0x0000,0x0000, 0x1596,0x0000,0x0000,0x0000, /* 03E6 */ +0x1598,0x0000,0x0000,0x0000, 0x1598,0x0000,0x0000,0x0000, /* 03E8 */ +0x159F,0x0000,0x0000,0x0000, 0x159F,0x0000,0x0000,0x0000, /* 03EA */ +0x15A2,0x0000,0x0000,0x0000, 0x15A2,0x0000,0x0000,0x0000, /* 03EC */ +0x15A6,0x0000,0x0000,0x0000, 0x15A6,0x0000,0x0000,0x0000, /* 03EE */ +0x1554,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03F0 */ +0x1563,0x0000,0x0000,0x0000, 0x1553,0x0000,0x0000,0x0000, /* 03F2 */ +0x1551,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03F4 */ +0x054B,0x0000,0x0000,0x0000, 0x1570,0x0000,0x0000,0x0000, /* 03F6 */ +0x1570,0x0000,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03F8 */ +0x155D,0x0000,0x0000,0x0000, 0x155D,0x0000,0x0000,0x0000, /* 03FA */ +0x1562,0x0000,0x0000,0x0000, 0x1565,0x0000,0x0000,0x0000, /* 03FC */ +0x1564,0x0000,0x0000,0x0000, 0x1566,0x0000,0x0000,0x0000 /* 03FE */ +}; + +uint16 uca520_p004[]= { /* 0400 (2 weights per char) */ +0x15F4,0x0000, 0x15F4,0x0000, 0x15E6,0x0000, 0x15EC,0x0000, /* 0400 */ +0x15FC,0x0000, 0x1619,0x0000, 0x1631,0x0000, 0x1636,0x0000, /* 0404 */ +0x163E,0x0000, 0x1668,0x0000, 0x168D,0x0000, 0x16CC,0x0000, /* 0408 */ +0x16D0,0x0000, 0x1625,0x0000, 0x16D8,0x0000, 0x1743,0x0000, /* 040C */ +0x15AC,0x0000, 0x15C4,0x0000, 0x15C8,0x0000, 0x15CC,0x0000, /* 0410 */ +0x15E0,0x0000, 0x15F4,0x0000, 0x1600,0x0000, 0x160D,0x0000, /* 0414 */ +0x1625,0x0000, 0x163A,0x0000, 0x1643,0x0000, 0x165D,0x0000, /* 0418 */ +0x166F,0x0000, 0x1678,0x0000, 0x1692,0x0000, 0x16A2,0x0000, /* 041C */ +0x16AF,0x0000, 0x16B8,0x0000, 0x16C1,0x0000, 0x16D4,0x0000, /* 0420 */ +0x16F1,0x0000, 0x16F5,0x0000, 0x171B,0x0000, 0x1725,0x0000, /* 0424 */ +0x1747,0x0000, 0x174C,0x0000, 0x1753,0x0000, 0x1758,0x0000, /* 0428 */ +0x1760,0x0000, 0x176D,0x0000, 0x1775,0x0000, 0x177B,0x0000, /* 042C */ +0x15AC,0x0000, 0x15C4,0x0000, 0x15C8,0x0000, 0x15CC,0x0000, /* 0430 */ +0x15E0,0x0000, 0x15F4,0x0000, 0x1600,0x0000, 0x160D,0x0000, /* 0434 */ +0x1625,0x0000, 0x163A,0x0000, 0x1643,0x0000, 0x165D,0x0000, /* 0438 */ +0x166F,0x0000, 0x1678,0x0000, 0x1692,0x0000, 0x16A2,0x0000, /* 043C */ +0x16AF,0x0000, 0x16B8,0x0000, 0x16C1,0x0000, 0x16D4,0x0000, /* 0440 */ +0x16F1,0x0000, 0x16F5,0x0000, 0x171B,0x0000, 0x1725,0x0000, /* 0444 */ +0x1747,0x0000, 0x174C,0x0000, 0x1753,0x0000, 0x1758,0x0000, /* 0448 */ +0x1760,0x0000, 0x176D,0x0000, 0x1775,0x0000, 0x177B,0x0000, /* 044C */ +0x15F4,0x0000, 0x15F4,0x0000, 0x15E6,0x0000, 0x15EC,0x0000, /* 0450 */ +0x15FC,0x0000, 0x1619,0x0000, 0x1631,0x0000, 0x1636,0x0000, /* 0454 */ +0x163E,0x0000, 0x1668,0x0000, 0x168D,0x0000, 0x16CC,0x0000, /* 0458 */ +0x16D0,0x0000, 0x1625,0x0000, 0x16D8,0x0000, 0x1743,0x0000, /* 045C */ +0x170A,0x0000, 0x170A,0x0000, 0x1768,0x0000, 0x1768,0x0000, /* 0460 */ +0x1780,0x0000, 0x1780,0x0000, 0x1784,0x0000, 0x1784,0x0000, /* 0464 */ +0x178E,0x0000, 0x178E,0x0000, 0x1789,0x0000, 0x1789,0x0000, /* 0468 */ +0x1793,0x0000, 0x1793,0x0000, 0x1797,0x0000, 0x1797,0x0000, /* 046C */ +0x179B,0x0000, 0x179B,0x0000, 0x179F,0x0000, 0x179F,0x0000, /* 0470 */ +0x17A3,0x0000, 0x17A3,0x0000, 0x17A7,0x0000, 0x17A7,0x0000, /* 0474 */ +0x16ED,0x0000, 0x16ED,0x0000, 0x1717,0x0000, 0x1717,0x0000, /* 0478 */ +0x1713,0x0000, 0x1713,0x0000, 0x170E,0x0000, 0x170E,0x0000, /* 047C */ +0x16AB,0x0000, 0x16AB,0x0000, 0x044C,0x0000, 0x0000,0x0000, /* 0480 */ +0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 0484 */ +0x0000,0x0000, 0x0000,0x0000, 0x1629,0x0000, 0x1629,0x0000, /* 0488 */ +0x1764,0x0000, 0x1764,0x0000, 0x16B3,0x0000, 0x16B3,0x0000, /* 048C */ +0x15CC,0x0000, 0x15CC,0x0000, 0x15D0,0x0000, 0x15D0,0x0000, /* 0490 */ +0x15D8,0x0000, 0x15D8,0x0000, 0x1609,0x0000, 0x1609,0x0000, /* 0494 */ +0x15F0,0x0000, 0x15F0,0x0000, 0x1647,0x0000, 0x1647,0x0000, /* 0498 */ +0x1657,0x0000, 0x1657,0x0000, 0x1653,0x0000, 0x1653,0x0000, /* 049C */ +0x164F,0x0000, 0x164F,0x0000, 0x1680,0x0000, 0x1680,0x0000, /* 04A0 */ +0x1689,0x0000, 0x1689,0x0000, 0x16A7,0x0000, 0x16A7,0x0000, /* 04A4 */ +0x17AC,0x0000, 0x17AC,0x0000, 0x16BD,0x0000, 0x16BD,0x0000, /* 04A8 */ +0x16C7,0x0000, 0x16C7,0x0000, 0x16E4,0x0000, 0x16E4,0x0000, /* 04AC */ +0x16E8,0x0000, 0x16E8,0x0000, 0x1701,0x0000, 0x1701,0x0000, /* 04B0 */ +0x1720,0x0000, 0x1720,0x0000, 0x172E,0x0000, 0x172E,0x0000, /* 04B4 */ +0x1736,0x0000, 0x1736,0x0000, 0x1705,0x0000, 0x1705,0x0000, /* 04B8 */ +0x173B,0x0000, 0x173B,0x0000, 0x173F,0x0000, 0x173F,0x0000, /* 04BC */ +0x17B1,0x0000, 0x1600,0x0000, 0x1600,0x0000, 0x164B,0x0000, /* 04C0 */ +0x164B,0x0000, 0x1662,0x0000, 0x1662,0x0000, 0x1684,0x0000, /* 04C4 */ +0x1684,0x0000, 0x167C,0x0000, 0x167C,0x0000, 0x1732,0x0000, /* 04C8 */ +0x1732,0x0000, 0x1673,0x0000, 0x1673,0x0000, 0x17B1,0x0000, /* 04CC */ +0x15B0,0x0000, 0x15B0,0x0000, 0x15B4,0x0000, 0x15B4,0x0000, /* 04D0 */ +0x15C0,0x0000, 0x15C0,0x0000, 0x15F8,0x0000, 0x15F8,0x0000, /* 04D4 */ +0x15B8,0x0000, 0x15B8,0x0000, 0x15BC,0x0000, 0x15BC,0x0000, /* 04D8 */ +0x1605,0x0000, 0x1605,0x0000, 0x1614,0x0000, 0x1614,0x0000, /* 04DC */ +0x161E,0x0000, 0x161E,0x0000, 0x1625,0x0000, 0x1625,0x0000, /* 04E0 */ +0x162D,0x0000, 0x162D,0x0000, 0x1696,0x0000, 0x1696,0x0000, /* 04E4 */ +0x169A,0x0000, 0x169A,0x0000, 0x169E,0x0000, 0x169E,0x0000, /* 04E8 */ +0x1771,0x0000, 0x1771,0x0000, 0x16D4,0x0000, 0x16D4,0x0000, /* 04EC */ +0x16DC,0x0000, 0x16DC,0x0000, 0x16E0,0x0000, 0x16E0,0x0000, /* 04F0 */ +0x172A,0x0000, 0x172A,0x0000, 0x15DC,0x0000, 0x15DC,0x0000, /* 04F4 */ +0x175C,0x0000, 0x175C,0x0000, 0x15D4,0x0000, 0x15D4,0x0000, /* 04F8 */ +0x16F9,0x0000, 0x16F9,0x0000, 0x16FD,0x0000, 0x16FD,0x0000 /* 04FC */ +}; + +uint16 uca520_p005[]= { /* 0500 (3 weights per char) */ +0x15E4,0x0000,0x0000, 0x15E4,0x0000,0x0000, 0x15EB,0x0000,0x0000, /* 0500 */ +0x15EB,0x0000,0x0000, 0x1612,0x0000,0x0000, 0x1612,0x0000,0x0000, /* 0503 */ +0x1623,0x0000,0x0000, 0x1623,0x0000,0x0000, 0x166D,0x0000,0x0000, /* 0506 */ +0x166D,0x0000,0x0000, 0x1691,0x0000,0x0000, 0x1691,0x0000,0x0000, /* 0509 */ +0x16BC,0x0000,0x0000, 0x16BC,0x0000,0x0000, 0x16C6,0x0000,0x0000, /* 050C */ +0x16C6,0x0000,0x0000, 0x1613,0x0000,0x0000, 0x1613,0x0000,0x0000, /* 050F */ +0x1666,0x0000,0x0000, 0x1666,0x0000,0x0000, 0x166E,0x0000,0x0000, /* 0512 */ +0x166E,0x0000,0x0000, 0x16B7,0x0000,0x0000, 0x16B7,0x0000,0x0000, /* 0515 */ +0x177F,0x0000,0x0000, 0x177F,0x0000,0x0000, 0x165C,0x0000,0x0000, /* 0518 */ +0x165C,0x0000,0x0000, 0x17B0,0x0000,0x0000, 0x17B0,0x0000,0x0000, /* 051B */ +0x165B,0x0000,0x0000, 0x165B,0x0000,0x0000, 0x1667,0x0000,0x0000, /* 051E */ +0x1667,0x0000,0x0000, 0x1688,0x0000,0x0000, 0x1688,0x0000,0x0000, /* 0521 */ +0x16A6,0x0000,0x0000, 0x16A6,0x0000,0x0000, 0xFBC0,0x8526,0x0000, /* 0524 */ +0xFBC0,0x8527,0x0000, 0xFBC0,0x8528,0x0000, 0xFBC0,0x8529,0x0000, /* 0527 */ +0xFBC0,0x852A,0x0000, 0xFBC0,0x852B,0x0000, 0xFBC0,0x852C,0x0000, /* 052A */ +0xFBC0,0x852D,0x0000, 0xFBC0,0x852E,0x0000, 0xFBC0,0x852F,0x0000, /* 052D */ +0xFBC0,0x8530,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, /* 0530 */ +0x1837,0x0000,0x0000, 0x1838,0x0000,0x0000, 0x1839,0x0000,0x0000, /* 0533 */ +0x183A,0x0000,0x0000, 0x183B,0x0000,0x0000, 0x183C,0x0000,0x0000, /* 0536 */ +0x183D,0x0000,0x0000, 0x183E,0x0000,0x0000, 0x183F,0x0000,0x0000, /* 0539 */ +0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, /* 053C */ +0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, /* 053F */ +0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, /* 0542 */ +0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, /* 0545 */ +0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, 0x184E,0x0000,0x0000, /* 0548 */ +0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, /* 054B */ +0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0x1854,0x0000,0x0000, /* 054E */ +0x1855,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1857,0x0000,0x0000, /* 0551 */ +0x1858,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185A,0x0000,0x0000, /* 0554 */ +0xFBC0,0x8557,0x0000, 0xFBC0,0x8558,0x0000, 0x185B,0x0000,0x0000, /* 0557 */ +0x0392,0x0000,0x0000, 0x0393,0x0000,0x0000, 0x0270,0x0000,0x0000, /* 055A */ +0x0235,0x0000,0x0000, 0x0276,0x0000,0x0000, 0x0394,0x0000,0x0000, /* 055D */ +0xFBC0,0x8560,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, /* 0560 */ +0x1837,0x0000,0x0000, 0x1838,0x0000,0x0000, 0x1839,0x0000,0x0000, /* 0563 */ +0x183A,0x0000,0x0000, 0x183B,0x0000,0x0000, 0x183C,0x0000,0x0000, /* 0566 */ +0x183D,0x0000,0x0000, 0x183E,0x0000,0x0000, 0x183F,0x0000,0x0000, /* 0569 */ +0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, /* 056C */ +0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, /* 056F */ +0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, /* 0572 */ +0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, /* 0575 */ +0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, 0x184E,0x0000,0x0000, /* 0578 */ +0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, /* 057B */ +0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0x1854,0x0000,0x0000, /* 057E */ +0x1855,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1857,0x0000,0x0000, /* 0581 */ +0x1858,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185A,0x0000,0x0000, /* 0584 */ +0x1839,0x1856,0x0000, 0xFBC0,0x8588,0x0000, 0x0248,0x0000,0x0000, /* 0587 */ +0x0224,0x0000,0x0000, 0xFBC0,0x858B,0x0000, 0xFBC0,0x858C,0x0000, /* 058A */ +0xFBC0,0x858D,0x0000, 0xFBC0,0x858E,0x0000, 0xFBC0,0x858F,0x0000, /* 058D */ +0xFBC0,0x8590,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0590 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0593 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0596 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0599 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05BA */ +0x0000,0x0000,0x0000, 0x0395,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05BD */ +0x0396,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C0 */ +0x0397,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C3 */ +0x0398,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x85C8,0x0000, /* 05C6 */ +0xFBC0,0x85C9,0x0000, 0xFBC0,0x85CA,0x0000, 0xFBC0,0x85CB,0x0000, /* 05C9 */ +0xFBC0,0x85CC,0x0000, 0xFBC0,0x85CD,0x0000, 0xFBC0,0x85CE,0x0000, /* 05CC */ +0xFBC0,0x85CF,0x0000, 0x185C,0x0000,0x0000, 0x185D,0x0000,0x0000, /* 05CF */ +0x185E,0x0000,0x0000, 0x185F,0x0000,0x0000, 0x1860,0x0000,0x0000, /* 05D2 */ +0x1861,0x0000,0x0000, 0x1862,0x0000,0x0000, 0x1863,0x0000,0x0000, /* 05D5 */ +0x1864,0x0000,0x0000, 0x1865,0x0000,0x0000, 0x1866,0x0000,0x0000, /* 05D8 */ +0x1866,0x0000,0x0000, 0x1867,0x0000,0x0000, 0x1868,0x0000,0x0000, /* 05DB */ +0x1868,0x0000,0x0000, 0x1869,0x0000,0x0000, 0x1869,0x0000,0x0000, /* 05DE */ +0x186A,0x0000,0x0000, 0x186B,0x0000,0x0000, 0x186C,0x0000,0x0000, /* 05E1 */ +0x186C,0x0000,0x0000, 0x186D,0x0000,0x0000, 0x186D,0x0000,0x0000, /* 05E4 */ +0x186E,0x0000,0x0000, 0x186F,0x0000,0x0000, 0x1870,0x0000,0x0000, /* 05E7 */ +0x1871,0x0000,0x0000, 0xFBC0,0x85EB,0x0000, 0xFBC0,0x85EC,0x0000, /* 05EA */ +0xFBC0,0x85ED,0x0000, 0xFBC0,0x85EE,0x0000, 0xFBC0,0x85EF,0x0000, /* 05ED */ +0x1861,0x1861,0x0000, 0x1861,0x1865,0x0000, 0x1865,0x1865,0x0000, /* 05F0 */ +0x0399,0x0000,0x0000, 0x039A,0x0000,0x0000, 0xFBC0,0x85F5,0x0000, /* 05F3 */ +0xFBC0,0x85F6,0x0000, 0xFBC0,0x85F7,0x0000, 0xFBC0,0x85F8,0x0000, /* 05F6 */ +0xFBC0,0x85F9,0x0000, 0xFBC0,0x85FA,0x0000, 0xFBC0,0x85FB,0x0000, /* 05F9 */ +0xFBC0,0x85FC,0x0000, 0xFBC0,0x85FD,0x0000, 0xFBC0,0x85FE,0x0000, /* 05FC */ +0xFBC0,0x85FF,0x0000 }; + +uint16 uca520_p006[]= { /* 0600 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0600 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8604,0x0000, 0xFBC0,0x8605,0x0000, /* 0603 */ +0x0566,0x0000,0x0000, 0x0568,0x0000,0x0000, 0x044D,0x0000,0x0000, /* 0606 */ +0x0366,0x0000,0x0000, 0x0368,0x0000,0x0000, 0x11E4,0x0000,0x0000, /* 0609 */ +0x0236,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x044E,0x0000,0x0000, /* 060C */ +0x044F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 060F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0612 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0615 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0618 */ +0x0244,0x0000,0x0000, 0xFBC0,0x861C,0x0000, 0xFBC0,0x861D,0x0000, /* 061B */ +0x0249,0x0000,0x0000, 0x0277,0x0000,0x0000, 0xFBC0,0x8620,0x0000, /* 061E */ +0x18A2,0x0000,0x0000, 0x18A3,0x0000,0x0000, 0x18A4,0x0000,0x0000, /* 0621 */ +0x18A7,0x0000,0x0000, 0x18A8,0x0000,0x0000, 0x18AC,0x0000,0x0000, /* 0624 */ +0x18AD,0x0000,0x0000, 0x18AF,0x0000,0x0000, 0x18BA,0x0000,0x0000, /* 0627 */ +0x18BB,0x0000,0x0000, 0x18BC,0x0000,0x0000, 0x18C2,0x0000,0x0000, /* 062A */ +0x18C8,0x0000,0x0000, 0x18C9,0x0000,0x0000, 0x18D3,0x0000,0x0000, /* 062D */ +0x18D4,0x0000,0x0000, 0x18E1,0x0000,0x0000, 0x18E2,0x0000,0x0000, /* 0630 */ +0x18F1,0x0000,0x0000, 0x18F2,0x0000,0x0000, 0x18FC,0x0000,0x0000, /* 0633 */ +0x18FD,0x0000,0x0000, 0x1901,0x0000,0x0000, 0x1902,0x0000,0x0000, /* 0636 */ +0x1904,0x0000,0x0000, 0x1905,0x0000,0x0000, 0x1927,0x0000,0x0000, /* 0639 */ +0x1928,0x0000,0x0000, 0x1956,0x0000,0x0000, 0x1957,0x0000,0x0000, /* 063C */ +0x1958,0x0000,0x0000, 0x020C,0x0000,0x0000, 0x190B,0x0000,0x0000, /* 063F */ +0x1915,0x0000,0x0000, 0x1918,0x0000,0x0000, 0x192B,0x0000,0x0000, /* 0642 */ +0x1931,0x0000,0x0000, 0x1934,0x0000,0x0000, 0x193D,0x0000,0x0000, /* 0645 */ +0x1943,0x0000,0x0000, 0x194F,0x0000,0x0000, 0x1950,0x0000,0x0000, /* 0648 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 064B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 064E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0651 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0654 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0657 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 065A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x865F,0x0000, /* 065D */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0660 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0663 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0666 */ +0x120E,0x0000,0x0000, 0x0364,0x0000,0x0000, 0x0238,0x0000,0x0000, /* 0669 */ +0x0239,0x0000,0x0000, 0x035A,0x0000,0x0000, 0x18AE,0x0000,0x0000, /* 066C */ +0x1914,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A6,0x0000,0x0000, /* 066F */ +0x18A5,0x0000,0x0000, 0x18A9,0x0000,0x0000, 0x18A2,0x0000,0x0000, /* 0672 */ +0x18AD,0x18A2,0x0000, 0x1943,0x18A2,0x0000, 0x1947,0x18A2,0x0000, /* 0675 */ +0x1950,0x18A2,0x0000, 0x18BD,0x0000,0x0000, 0x18BE,0x0000,0x0000, /* 0678 */ +0x18B0,0x0000,0x0000, 0x18BF,0x0000,0x0000, 0x18C0,0x0000,0x0000, /* 067B */ +0x18B1,0x0000,0x0000, 0x18C1,0x0000,0x0000, 0x18B2,0x0000,0x0000, /* 067E */ +0x18CA,0x0000,0x0000, 0x18CB,0x0000,0x0000, 0x18C3,0x0000,0x0000, /* 0681 */ +0x18C4,0x0000,0x0000, 0x18CC,0x0000,0x0000, 0x18C5,0x0000,0x0000, /* 0684 */ +0x18C7,0x0000,0x0000, 0x18D5,0x0000,0x0000, 0x18D6,0x0000,0x0000, /* 0687 */ +0x18D7,0x0000,0x0000, 0x18D8,0x0000,0x0000, 0x18D9,0x0000,0x0000, /* 068A */ +0x18DA,0x0000,0x0000, 0x18DB,0x0000,0x0000, 0x18DC,0x0000,0x0000, /* 068D */ +0x18DD,0x0000,0x0000, 0x18E3,0x0000,0x0000, 0x18E4,0x0000,0x0000, /* 0690 */ +0x18E5,0x0000,0x0000, 0x18E6,0x0000,0x0000, 0x18E7,0x0000,0x0000, /* 0693 */ +0x18E8,0x0000,0x0000, 0x18E9,0x0000,0x0000, 0x18EA,0x0000,0x0000, /* 0696 */ +0x18EB,0x0000,0x0000, 0x18F3,0x0000,0x0000, 0x18F4,0x0000,0x0000, /* 0699 */ +0x18F5,0x0000,0x0000, 0x18FE,0x0000,0x0000, 0x18FF,0x0000,0x0000, /* 069C */ +0x1903,0x0000,0x0000, 0x1906,0x0000,0x0000, 0x190C,0x0000,0x0000, /* 069F */ +0x190D,0x0000,0x0000, 0x190E,0x0000,0x0000, 0x190F,0x0000,0x0000, /* 06A2 */ +0x1910,0x0000,0x0000, 0x1911,0x0000,0x0000, 0x1916,0x0000,0x0000, /* 06A5 */ +0x1917,0x0000,0x0000, 0x1919,0x0000,0x0000, 0x191A,0x0000,0x0000, /* 06A8 */ +0x191B,0x0000,0x0000, 0x191C,0x0000,0x0000, 0x191E,0x0000,0x0000, /* 06AB */ +0x191F,0x0000,0x0000, 0x1920,0x0000,0x0000, 0x1921,0x0000,0x0000, /* 06AE */ +0x1922,0x0000,0x0000, 0x1923,0x0000,0x0000, 0x1924,0x0000,0x0000, /* 06B1 */ +0x1925,0x0000,0x0000, 0x192C,0x0000,0x0000, 0x192D,0x0000,0x0000, /* 06B4 */ +0x192E,0x0000,0x0000, 0x192F,0x0000,0x0000, 0x1939,0x0000,0x0000, /* 06B7 */ +0x1935,0x0000,0x0000, 0x1936,0x0000,0x0000, 0x1937,0x0000,0x0000, /* 06BA */ +0x1938,0x0000,0x0000, 0x193E,0x0000,0x0000, 0x18C6,0x0000,0x0000, /* 06BD */ +0x1942,0x0000,0x0000, 0x193F,0x0000,0x0000, 0x193F,0x0000,0x0000, /* 06C0 */ +0x1940,0x0000,0x0000, 0x1944,0x0000,0x0000, 0x1945,0x0000,0x0000, /* 06C3 */ +0x1946,0x0000,0x0000, 0x1947,0x0000,0x0000, 0x1948,0x0000,0x0000, /* 06C6 */ +0x1949,0x0000,0x0000, 0x194A,0x0000,0x0000, 0x194B,0x0000,0x0000, /* 06C9 */ +0x1951,0x0000,0x0000, 0x1952,0x0000,0x0000, 0x1953,0x0000,0x0000, /* 06CC */ +0x194C,0x0000,0x0000, 0x1954,0x0000,0x0000, 0x1955,0x0000,0x0000, /* 06CF */ +0x195C,0x0000,0x0000, 0x195C,0x0000,0x0000, 0x0283,0x0000,0x0000, /* 06D2 */ +0x1942,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06E1 */ +0x0000,0x0000,0x0000, 0x1943,0x0000,0x0000, 0x1950,0x0000,0x0000, /* 06E4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0450,0x0000,0x0000, /* 06E7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06EA */ +0x0000,0x0000,0x0000, 0x18DE,0x0000,0x0000, 0x18EC,0x0000,0x0000, /* 06ED */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 06F0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 06F3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 06F6 */ +0x120E,0x0000,0x0000, 0x18F6,0x0000,0x0000, 0x1900,0x0000,0x0000, /* 06F9 */ +0x1907,0x0000,0x0000, 0x18A2,0x0000,0x0000, 0x1931,0x0000,0x0000, /* 06FC */ +0x1941,0x0000,0x0000 }; + +uint16 uca520_p007[]= { /* 0700 (3 weights per char) */ +0x02B5,0x0000,0x0000, 0x0284,0x0000,0x0000, 0x0285,0x0000,0x0000, /* 0700 */ +0x024A,0x0000,0x0000, 0x024B,0x0000,0x0000, 0x024C,0x0000,0x0000, /* 0703 */ +0x024D,0x0000,0x0000, 0x024E,0x0000,0x0000, 0x024F,0x0000,0x0000, /* 0706 */ +0x0278,0x0000,0x0000, 0x039B,0x0000,0x0000, 0x039C,0x0000,0x0000, /* 0709 */ +0x039D,0x0000,0x0000, 0x039E,0x0000,0x0000, 0xFBC0,0x870E,0x0000, /* 070C */ +0x0000,0x0000,0x0000, 0x195F,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 070F */ +0x1960,0x0000,0x0000, 0x1961,0x0000,0x0000, 0x1961,0x0000,0x0000, /* 0712 */ +0x1963,0x0000,0x0000, 0x1962,0x0000,0x0000, 0x1964,0x0000,0x0000, /* 0715 */ +0x1965,0x0000,0x0000, 0x1966,0x0000,0x0000, 0x1968,0x0000,0x0000, /* 0718 */ +0x1969,0x0000,0x0000, 0x1969,0x0000,0x0000, 0x196A,0x0000,0x0000, /* 071B */ +0x196B,0x0000,0x0000, 0x196C,0x0000,0x0000, 0x196E,0x0000,0x0000, /* 071E */ +0x196F,0x0000,0x0000, 0x1970,0x0000,0x0000, 0x1971,0x0000,0x0000, /* 0721 */ +0x1971,0x0000,0x0000, 0x1972,0x0000,0x0000, 0x1973,0x0000,0x0000, /* 0724 */ +0x1973,0x0000,0x0000, 0x1975,0x0000,0x0000, 0x1976,0x0000,0x0000, /* 0727 */ +0x1977,0x0000,0x0000, 0x1978,0x0000,0x0000, 0x1979,0x0000,0x0000, /* 072A */ +0x1960,0x0000,0x0000, 0x1961,0x0000,0x0000, 0x1963,0x0000,0x0000, /* 072D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0730 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0733 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0736 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0739 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 073C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 073F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0742 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0745 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0748 */ +0xFBC0,0x874B,0x0000, 0xFBC0,0x874C,0x0000, 0x1967,0x0000,0x0000, /* 074B */ +0x196D,0x0000,0x0000, 0x1974,0x0000,0x0000, 0x18B3,0x0000,0x0000, /* 074E */ +0x18B4,0x0000,0x0000, 0x18B5,0x0000,0x0000, 0x18B6,0x0000,0x0000, /* 0751 */ +0x18B7,0x0000,0x0000, 0x18B8,0x0000,0x0000, 0x18B9,0x0000,0x0000, /* 0754 */ +0x18CD,0x0000,0x0000, 0x18CE,0x0000,0x0000, 0x18DF,0x0000,0x0000, /* 0757 */ +0x18E0,0x0000,0x0000, 0x18ED,0x0000,0x0000, 0x18F7,0x0000,0x0000, /* 075A */ +0x1908,0x0000,0x0000, 0x1909,0x0000,0x0000, 0x190A,0x0000,0x0000, /* 075D */ +0x1912,0x0000,0x0000, 0x1913,0x0000,0x0000, 0x1926,0x0000,0x0000, /* 0760 */ +0x1929,0x0000,0x0000, 0x192A,0x0000,0x0000, 0x1932,0x0000,0x0000, /* 0763 */ +0x1933,0x0000,0x0000, 0x193A,0x0000,0x0000, 0x193B,0x0000,0x0000, /* 0766 */ +0x193C,0x0000,0x0000, 0x1930,0x0000,0x0000, 0x18EE,0x0000,0x0000, /* 0769 */ +0x18EF,0x0000,0x0000, 0x18F8,0x0000,0x0000, 0x18CF,0x0000,0x0000, /* 076C */ +0x18D0,0x0000,0x0000, 0x18F9,0x0000,0x0000, 0x18F0,0x0000,0x0000, /* 076F */ +0x18D1,0x0000,0x0000, 0x18AA,0x0000,0x0000, 0x18AB,0x0000,0x0000, /* 0772 */ +0x1959,0x0000,0x0000, 0x195A,0x0000,0x0000, 0x195B,0x0000,0x0000, /* 0775 */ +0x194D,0x0000,0x0000, 0x194E,0x0000,0x0000, 0x195D,0x0000,0x0000, /* 0778 */ +0x195E,0x0000,0x0000, 0x18D2,0x0000,0x0000, 0x18FA,0x0000,0x0000, /* 077B */ +0x18FB,0x0000,0x0000, 0x191D,0x0000,0x0000, 0x197A,0x0000,0x0000, /* 077E */ +0x197D,0x0000,0x0000, 0x197E,0x0000,0x0000, 0x197F,0x0000,0x0000, /* 0781 */ +0x1981,0x0000,0x0000, 0x1982,0x0000,0x0000, 0x1983,0x0000,0x0000, /* 0784 */ +0x1984,0x0000,0x0000, 0x1987,0x0000,0x0000, 0x1989,0x0000,0x0000, /* 0787 */ +0x198A,0x0000,0x0000, 0x198B,0x0000,0x0000, 0x198D,0x0000,0x0000, /* 078A */ +0x1991,0x0000,0x0000, 0x1992,0x0000,0x0000, 0x1994,0x0000,0x0000, /* 078D */ +0x1995,0x0000,0x0000, 0x1999,0x0000,0x0000, 0x199A,0x0000,0x0000, /* 0790 */ +0x199B,0x0000,0x0000, 0x199C,0x0000,0x0000, 0x199D,0x0000,0x0000, /* 0793 */ +0x199E,0x0000,0x0000, 0x199F,0x0000,0x0000, 0x198E,0x0000,0x0000, /* 0796 */ +0x197B,0x0000,0x0000, 0x197C,0x0000,0x0000, 0x198C,0x0000,0x0000, /* 0799 */ +0x1980,0x0000,0x0000, 0x1996,0x0000,0x0000, 0x1997,0x0000,0x0000, /* 079C */ +0x1998,0x0000,0x0000, 0x198F,0x0000,0x0000, 0x1990,0x0000,0x0000, /* 079F */ +0x1985,0x0000,0x0000, 0x1986,0x0000,0x0000, 0x1993,0x0000,0x0000, /* 07A2 */ +0x1988,0x0000,0x0000, 0x19A1,0x0000,0x0000, 0x19A2,0x0000,0x0000, /* 07A5 */ +0x19A3,0x0000,0x0000, 0x19A4,0x0000,0x0000, 0x19A5,0x0000,0x0000, /* 07A8 */ +0x19A6,0x0000,0x0000, 0x19A7,0x0000,0x0000, 0x19A8,0x0000,0x0000, /* 07AB */ +0x19A9,0x0000,0x0000, 0x19AA,0x0000,0x0000, 0x19AB,0x0000,0x0000, /* 07AE */ +0x19A0,0x0000,0x0000, 0xFBC0,0x87B2,0x0000, 0xFBC0,0x87B3,0x0000, /* 07B1 */ +0xFBC0,0x87B4,0x0000, 0xFBC0,0x87B5,0x0000, 0xFBC0,0x87B6,0x0000, /* 07B4 */ +0xFBC0,0x87B7,0x0000, 0xFBC0,0x87B8,0x0000, 0xFBC0,0x87B9,0x0000, /* 07B7 */ +0xFBC0,0x87BA,0x0000, 0xFBC0,0x87BB,0x0000, 0xFBC0,0x87BC,0x0000, /* 07BA */ +0xFBC0,0x87BD,0x0000, 0xFBC0,0x87BE,0x0000, 0xFBC0,0x87BF,0x0000, /* 07BD */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 07C0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 07C3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 07C6 */ +0x120E,0x0000,0x0000, 0x19AC,0x0000,0x0000, 0x19AD,0x0000,0x0000, /* 07C9 */ +0x19AE,0x0000,0x0000, 0x19AF,0x0000,0x0000, 0x19B0,0x0000,0x0000, /* 07CC */ +0x19B1,0x0000,0x0000, 0x19B2,0x0000,0x0000, 0x19B3,0x0000,0x0000, /* 07CF */ +0x19B4,0x0000,0x0000, 0x19B5,0x0000,0x0000, 0x19B6,0x0000,0x0000, /* 07D2 */ +0x19B7,0x0000,0x0000, 0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, /* 07D5 */ +0x19BA,0x0000,0x0000, 0x19BB,0x0000,0x0000, 0x19BC,0x0000,0x0000, /* 07D8 */ +0x19BD,0x0000,0x0000, 0x19BE,0x0000,0x0000, 0x19BF,0x0000,0x0000, /* 07DB */ +0x19C0,0x0000,0x0000, 0x19C1,0x0000,0x0000, 0x19C2,0x0000,0x0000, /* 07DE */ +0x19C3,0x0000,0x0000, 0x19C4,0x0000,0x0000, 0x19C5,0x0000,0x0000, /* 07E1 */ +0x19C6,0x0000,0x0000, 0x19C7,0x0000,0x0000, 0x19C8,0x0000,0x0000, /* 07E4 */ +0x19C9,0x0000,0x0000, 0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, /* 07E7 */ +0x19BB,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07EA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07ED */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07F0 */ +0x0000,0x0000,0x0000, 0x19CA,0x0000,0x0000, 0x19CB,0x0000,0x0000, /* 07F3 */ +0x0452,0x0000,0x0000, 0x02B6,0x0000,0x0000, 0x023A,0x0000,0x0000, /* 07F6 */ +0x0271,0x0000,0x0000, 0x020D,0x0000,0x0000, 0xFBC0,0x87FB,0x0000, /* 07F9 */ +0xFBC0,0x87FC,0x0000, 0xFBC0,0x87FD,0x0000, 0xFBC0,0x87FE,0x0000, /* 07FC */ +0xFBC0,0x87FF,0x0000 }; + +uint16 uca520_p008[]= { /* 0800 (3 weights per char) */ +0x1888,0x0000,0x0000, 0x1889,0x0000,0x0000, 0x188A,0x0000,0x0000, /* 0800 */ +0x188B,0x0000,0x0000, 0x188C,0x0000,0x0000, 0x188D,0x0000,0x0000, /* 0803 */ +0x188E,0x0000,0x0000, 0x188F,0x0000,0x0000, 0x1890,0x0000,0x0000, /* 0806 */ +0x1891,0x0000,0x0000, 0x1892,0x0000,0x0000, 0x1893,0x0000,0x0000, /* 0809 */ +0x1894,0x0000,0x0000, 0x1895,0x0000,0x0000, 0x1896,0x0000,0x0000, /* 080C */ +0x1897,0x0000,0x0000, 0x1898,0x0000,0x0000, 0x1899,0x0000,0x0000, /* 080F */ +0x189A,0x0000,0x0000, 0x189B,0x0000,0x0000, 0x189C,0x0000,0x0000, /* 0812 */ +0x189D,0x0000,0x0000, 0x189E,0x0000,0x0000, 0x189F,0x0000,0x0000, /* 0815 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A0,0x0000,0x0000, /* 0818 */ +0x18A1,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 081B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 081E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0821 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0824 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0827 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 082A */ +0x0000,0x0000,0x0000, 0xFBC0,0x882E,0x0000, 0xFBC0,0x882F,0x0000, /* 082D */ +0x0250,0x0000,0x0000, 0x0251,0x0000,0x0000, 0x0252,0x0000,0x0000, /* 0830 */ +0x0253,0x0000,0x0000, 0x0254,0x0000,0x0000, 0x0255,0x0000,0x0000, /* 0833 */ +0x0256,0x0000,0x0000, 0x0257,0x0000,0x0000, 0x0258,0x0000,0x0000, /* 0836 */ +0x0259,0x0000,0x0000, 0x025A,0x0000,0x0000, 0x025B,0x0000,0x0000, /* 0839 */ +0x025C,0x0000,0x0000, 0x025D,0x0000,0x0000, 0x025E,0x0000,0x0000, /* 083C */ +0xFBC0,0x883F,0x0000, 0xFBC0,0x8840,0x0000, 0xFBC0,0x8841,0x0000, /* 083F */ +0xFBC0,0x8842,0x0000, 0xFBC0,0x8843,0x0000, 0xFBC0,0x8844,0x0000, /* 0842 */ +0xFBC0,0x8845,0x0000, 0xFBC0,0x8846,0x0000, 0xFBC0,0x8847,0x0000, /* 0845 */ +0xFBC0,0x8848,0x0000, 0xFBC0,0x8849,0x0000, 0xFBC0,0x884A,0x0000, /* 0848 */ +0xFBC0,0x884B,0x0000, 0xFBC0,0x884C,0x0000, 0xFBC0,0x884D,0x0000, /* 084B */ +0xFBC0,0x884E,0x0000, 0xFBC0,0x884F,0x0000, 0xFBC0,0x8850,0x0000, /* 084E */ +0xFBC0,0x8851,0x0000, 0xFBC0,0x8852,0x0000, 0xFBC0,0x8853,0x0000, /* 0851 */ +0xFBC0,0x8854,0x0000, 0xFBC0,0x8855,0x0000, 0xFBC0,0x8856,0x0000, /* 0854 */ +0xFBC0,0x8857,0x0000, 0xFBC0,0x8858,0x0000, 0xFBC0,0x8859,0x0000, /* 0857 */ +0xFBC0,0x885A,0x0000, 0xFBC0,0x885B,0x0000, 0xFBC0,0x885C,0x0000, /* 085A */ +0xFBC0,0x885D,0x0000, 0xFBC0,0x885E,0x0000, 0xFBC0,0x885F,0x0000, /* 085D */ +0xFBC0,0x8860,0x0000, 0xFBC0,0x8861,0x0000, 0xFBC0,0x8862,0x0000, /* 0860 */ +0xFBC0,0x8863,0x0000, 0xFBC0,0x8864,0x0000, 0xFBC0,0x8865,0x0000, /* 0863 */ +0xFBC0,0x8866,0x0000, 0xFBC0,0x8867,0x0000, 0xFBC0,0x8868,0x0000, /* 0866 */ +0xFBC0,0x8869,0x0000, 0xFBC0,0x886A,0x0000, 0xFBC0,0x886B,0x0000, /* 0869 */ +0xFBC0,0x886C,0x0000, 0xFBC0,0x886D,0x0000, 0xFBC0,0x886E,0x0000, /* 086C */ +0xFBC0,0x886F,0x0000, 0xFBC0,0x8870,0x0000, 0xFBC0,0x8871,0x0000, /* 086F */ +0xFBC0,0x8872,0x0000, 0xFBC0,0x8873,0x0000, 0xFBC0,0x8874,0x0000, /* 0872 */ +0xFBC0,0x8875,0x0000, 0xFBC0,0x8876,0x0000, 0xFBC0,0x8877,0x0000, /* 0875 */ +0xFBC0,0x8878,0x0000, 0xFBC0,0x8879,0x0000, 0xFBC0,0x887A,0x0000, /* 0878 */ +0xFBC0,0x887B,0x0000, 0xFBC0,0x887C,0x0000, 0xFBC0,0x887D,0x0000, /* 087B */ +0xFBC0,0x887E,0x0000, 0xFBC0,0x887F,0x0000, 0xFBC0,0x8880,0x0000, /* 087E */ +0xFBC0,0x8881,0x0000, 0xFBC0,0x8882,0x0000, 0xFBC0,0x8883,0x0000, /* 0881 */ +0xFBC0,0x8884,0x0000, 0xFBC0,0x8885,0x0000, 0xFBC0,0x8886,0x0000, /* 0884 */ +0xFBC0,0x8887,0x0000, 0xFBC0,0x8888,0x0000, 0xFBC0,0x8889,0x0000, /* 0887 */ +0xFBC0,0x888A,0x0000, 0xFBC0,0x888B,0x0000, 0xFBC0,0x888C,0x0000, /* 088A */ +0xFBC0,0x888D,0x0000, 0xFBC0,0x888E,0x0000, 0xFBC0,0x888F,0x0000, /* 088D */ +0xFBC0,0x8890,0x0000, 0xFBC0,0x8891,0x0000, 0xFBC0,0x8892,0x0000, /* 0890 */ +0xFBC0,0x8893,0x0000, 0xFBC0,0x8894,0x0000, 0xFBC0,0x8895,0x0000, /* 0893 */ +0xFBC0,0x8896,0x0000, 0xFBC0,0x8897,0x0000, 0xFBC0,0x8898,0x0000, /* 0896 */ +0xFBC0,0x8899,0x0000, 0xFBC0,0x889A,0x0000, 0xFBC0,0x889B,0x0000, /* 0899 */ +0xFBC0,0x889C,0x0000, 0xFBC0,0x889D,0x0000, 0xFBC0,0x889E,0x0000, /* 089C */ +0xFBC0,0x889F,0x0000, 0xFBC0,0x88A0,0x0000, 0xFBC0,0x88A1,0x0000, /* 089F */ +0xFBC0,0x88A2,0x0000, 0xFBC0,0x88A3,0x0000, 0xFBC0,0x88A4,0x0000, /* 08A2 */ +0xFBC0,0x88A5,0x0000, 0xFBC0,0x88A6,0x0000, 0xFBC0,0x88A7,0x0000, /* 08A5 */ +0xFBC0,0x88A8,0x0000, 0xFBC0,0x88A9,0x0000, 0xFBC0,0x88AA,0x0000, /* 08A8 */ +0xFBC0,0x88AB,0x0000, 0xFBC0,0x88AC,0x0000, 0xFBC0,0x88AD,0x0000, /* 08AB */ +0xFBC0,0x88AE,0x0000, 0xFBC0,0x88AF,0x0000, 0xFBC0,0x88B0,0x0000, /* 08AE */ +0xFBC0,0x88B1,0x0000, 0xFBC0,0x88B2,0x0000, 0xFBC0,0x88B3,0x0000, /* 08B1 */ +0xFBC0,0x88B4,0x0000, 0xFBC0,0x88B5,0x0000, 0xFBC0,0x88B6,0x0000, /* 08B4 */ +0xFBC0,0x88B7,0x0000, 0xFBC0,0x88B8,0x0000, 0xFBC0,0x88B9,0x0000, /* 08B7 */ +0xFBC0,0x88BA,0x0000, 0xFBC0,0x88BB,0x0000, 0xFBC0,0x88BC,0x0000, /* 08BA */ +0xFBC0,0x88BD,0x0000, 0xFBC0,0x88BE,0x0000, 0xFBC0,0x88BF,0x0000, /* 08BD */ +0xFBC0,0x88C0,0x0000, 0xFBC0,0x88C1,0x0000, 0xFBC0,0x88C2,0x0000, /* 08C0 */ +0xFBC0,0x88C3,0x0000, 0xFBC0,0x88C4,0x0000, 0xFBC0,0x88C5,0x0000, /* 08C3 */ +0xFBC0,0x88C6,0x0000, 0xFBC0,0x88C7,0x0000, 0xFBC0,0x88C8,0x0000, /* 08C6 */ +0xFBC0,0x88C9,0x0000, 0xFBC0,0x88CA,0x0000, 0xFBC0,0x88CB,0x0000, /* 08C9 */ +0xFBC0,0x88CC,0x0000, 0xFBC0,0x88CD,0x0000, 0xFBC0,0x88CE,0x0000, /* 08CC */ +0xFBC0,0x88CF,0x0000, 0xFBC0,0x88D0,0x0000, 0xFBC0,0x88D1,0x0000, /* 08CF */ +0xFBC0,0x88D2,0x0000, 0xFBC0,0x88D3,0x0000, 0xFBC0,0x88D4,0x0000, /* 08D2 */ +0xFBC0,0x88D5,0x0000, 0xFBC0,0x88D6,0x0000, 0xFBC0,0x88D7,0x0000, /* 08D5 */ +0xFBC0,0x88D8,0x0000, 0xFBC0,0x88D9,0x0000, 0xFBC0,0x88DA,0x0000, /* 08D8 */ +0xFBC0,0x88DB,0x0000, 0xFBC0,0x88DC,0x0000, 0xFBC0,0x88DD,0x0000, /* 08DB */ +0xFBC0,0x88DE,0x0000, 0xFBC0,0x88DF,0x0000, 0xFBC0,0x88E0,0x0000, /* 08DE */ +0xFBC0,0x88E1,0x0000, 0xFBC0,0x88E2,0x0000, 0xFBC0,0x88E3,0x0000, /* 08E1 */ +0xFBC0,0x88E4,0x0000, 0xFBC0,0x88E5,0x0000, 0xFBC0,0x88E6,0x0000, /* 08E4 */ +0xFBC0,0x88E7,0x0000, 0xFBC0,0x88E8,0x0000, 0xFBC0,0x88E9,0x0000, /* 08E7 */ +0xFBC0,0x88EA,0x0000, 0xFBC0,0x88EB,0x0000, 0xFBC0,0x88EC,0x0000, /* 08EA */ +0xFBC0,0x88ED,0x0000, 0xFBC0,0x88EE,0x0000, 0xFBC0,0x88EF,0x0000, /* 08ED */ +0xFBC0,0x88F0,0x0000, 0xFBC0,0x88F1,0x0000, 0xFBC0,0x88F2,0x0000, /* 08F0 */ +0xFBC0,0x88F3,0x0000, 0xFBC0,0x88F4,0x0000, 0xFBC0,0x88F5,0x0000, /* 08F3 */ +0xFBC0,0x88F6,0x0000, 0xFBC0,0x88F7,0x0000, 0xFBC0,0x88F8,0x0000, /* 08F6 */ +0xFBC0,0x88F9,0x0000, 0xFBC0,0x88FA,0x0000, 0xFBC0,0x88FB,0x0000, /* 08F9 */ +0xFBC0,0x88FC,0x0000, 0xFBC0,0x88FD,0x0000, 0xFBC0,0x88FE,0x0000, /* 08FC */ +0xFBC0,0x88FF,0x0000 }; + +uint16 uca520_p009[]= { /* 0900 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0900 */ +0x0000,0x0000,0x0000, 0x1BAA,0x0000,0x0000, 0x1BAB,0x0000,0x0000, /* 0903 */ +0x1BAC,0x0000,0x0000, 0x1BAD,0x0000,0x0000, 0x1BAE,0x0000,0x0000, /* 0906 */ +0x1BAF,0x0000,0x0000, 0x1BB0,0x0000,0x0000, 0x1BB1,0x0000,0x0000, /* 0909 */ +0x1BB3,0x0000,0x0000, 0x1BB5,0x0000,0x0000, 0x1BB6,0x0000,0x0000, /* 090C */ +0x1BB7,0x0000,0x0000, 0x1BB8,0x0000,0x0000, 0x1BB9,0x0000,0x0000, /* 090F */ +0x1BBA,0x0000,0x0000, 0x1BBB,0x0000,0x0000, 0x1BBC,0x0000,0x0000, /* 0912 */ +0x1BBD,0x0000,0x0000, 0x1BBE,0x0000,0x0000, 0x1BBF,0x0000,0x0000, /* 0915 */ +0x1BC1,0x0000,0x0000, 0x1BC2,0x0000,0x0000, 0x1BC3,0x0000,0x0000, /* 0918 */ +0x1BC4,0x0000,0x0000, 0x1BC5,0x0000,0x0000, 0x1BC8,0x0000,0x0000, /* 091B */ +0x1BC9,0x0000,0x0000, 0x1BCA,0x0000,0x0000, 0x1BCB,0x0000,0x0000, /* 091E */ +0x1BCC,0x0000,0x0000, 0x1BCE,0x0000,0x0000, 0x1BCF,0x0000,0x0000, /* 0921 */ +0x1BD0,0x0000,0x0000, 0x1BD1,0x0000,0x0000, 0x1BD2,0x0000,0x0000, /* 0924 */ +0x1BD3,0x0000,0x0000, 0x1BD4,0x0000,0x0000, 0x1BD4,0x0000,0x0000, /* 0927 */ +0x1BD5,0x0000,0x0000, 0x1BD6,0x0000,0x0000, 0x1BD7,0x0000,0x0000, /* 092A */ +0x1BD9,0x0000,0x0000, 0x1BDA,0x0000,0x0000, 0x1BDB,0x0000,0x0000, /* 092D */ +0x1BDD,0x0000,0x0000, 0x1BDD,0x0000,0x0000, 0x1BDE,0x0000,0x0000, /* 0930 */ +0x1BDF,0x0000,0x0000, 0x1BDF,0x0000,0x0000, 0x1BE0,0x0000,0x0000, /* 0933 */ +0x1BE1,0x0000,0x0000, 0x1BE2,0x0000,0x0000, 0x1BE3,0x0000,0x0000, /* 0936 */ +0x1BE4,0x0000,0x0000, 0xFBC0,0x893A,0x0000, 0xFBC0,0x893B,0x0000, /* 0939 */ +0x0000,0x0000,0x0000, 0x1BE5,0x0000,0x0000, 0x1BEA,0x0000,0x0000, /* 093C */ +0x1BEB,0x0000,0x0000, 0x1BEC,0x0000,0x0000, 0x1BED,0x0000,0x0000, /* 093F */ +0x1BEE,0x0000,0x0000, 0x1BEF,0x0000,0x0000, 0x1BF0,0x0000,0x0000, /* 0942 */ +0x1BF3,0x0000,0x0000, 0x1BF5,0x0000,0x0000, 0x1BF6,0x0000,0x0000, /* 0945 */ +0x1BF8,0x0000,0x0000, 0x1BF9,0x0000,0x0000, 0x1BFA,0x0000,0x0000, /* 0948 */ +0x1BFB,0x0000,0x0000, 0x1BFC,0x0000,0x0000, 0x1BFD,0x0000,0x0000, /* 094B */ +0x1BF7,0x0000,0x0000, 0xFBC0,0x894F,0x0000, 0x1BA8,0x0000,0x0000, /* 094E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0951 */ +0x0000,0x0000,0x0000, 0x1BF4,0x0000,0x0000, 0xFBC0,0x8956,0x0000, /* 0954 */ +0xFBC0,0x8957,0x0000, 0x1BBD,0x0000,0x0000, 0x1BBE,0x0000,0x0000, /* 0957 */ +0x1BBF,0x0000,0x0000, 0x1BC5,0x0000,0x0000, 0x1BCC,0x0000,0x0000, /* 095A */ +0x1BCE,0x0000,0x0000, 0x1BD6,0x0000,0x0000, 0x1BDB,0x0000,0x0000, /* 095D */ +0x1BB2,0x0000,0x0000, 0x1BB4,0x0000,0x0000, 0x1BF1,0x0000,0x0000, /* 0960 */ +0x1BF2,0x0000,0x0000, 0x0294,0x0000,0x0000, 0x0295,0x0000,0x0000, /* 0963 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0966 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0969 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 096C */ +0x120E,0x0000,0x0000, 0x03A1,0x0000,0x0000, 0x11D0,0x0000,0x0000, /* 096F */ +0x1BA9,0x0000,0x0000, 0xFBC0,0x8973,0x0000, 0xFBC0,0x8974,0x0000, /* 0972 */ +0xFBC0,0x8975,0x0000, 0xFBC0,0x8976,0x0000, 0xFBC0,0x8977,0x0000, /* 0975 */ +0xFBC0,0x8978,0x0000, 0x1BC6,0x0000,0x0000, 0x1BDC,0x0000,0x0000, /* 0978 */ +0x1BC0,0x0000,0x0000, 0x1BC7,0x0000,0x0000, 0x1BE6,0x0000,0x0000, /* 097B */ +0x1BCD,0x0000,0x0000, 0x1BD8,0x0000,0x0000, 0xFBC0,0x8980,0x0000, /* 097E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0981 */ +0xFBC0,0x8984,0x0000, 0x1BFE,0x0000,0x0000, 0x1BFF,0x0000,0x0000, /* 0984 */ +0x1C00,0x0000,0x0000, 0x1C01,0x0000,0x0000, 0x1C02,0x0000,0x0000, /* 0987 */ +0x1C03,0x0000,0x0000, 0x1C04,0x0000,0x0000, 0x1C06,0x0000,0x0000, /* 098A */ +0xFBC0,0x898D,0x0000, 0xFBC0,0x898E,0x0000, 0x1C08,0x0000,0x0000, /* 098D */ +0x1C09,0x0000,0x0000, 0xFBC0,0x8991,0x0000, 0xFBC0,0x8992,0x0000, /* 0990 */ +0x1C0A,0x0000,0x0000, 0x1C0B,0x0000,0x0000, 0x1C0C,0x0000,0x0000, /* 0993 */ +0x1C0D,0x0000,0x0000, 0x1C0E,0x0000,0x0000, 0x1C0F,0x0000,0x0000, /* 0996 */ +0x1C10,0x0000,0x0000, 0x1C11,0x0000,0x0000, 0x1C12,0x0000,0x0000, /* 0999 */ +0x1C13,0x0000,0x0000, 0x1C14,0x0000,0x0000, 0x1C15,0x0000,0x0000, /* 099C */ +0x1C16,0x0000,0x0000, 0x1C17,0x0000,0x0000, 0x1C18,0x0000,0x0000, /* 099F */ +0x1C19,0x0000,0x0000, 0x1C1A,0x0000,0x0000, 0x1C1B,0x0000,0x0000, /* 09A2 */ +0x1C1C,0x0000,0x0000, 0x1C1D,0x0000,0x0000, 0x1C1E,0x0000,0x0000, /* 09A5 */ +0x1C1F,0x0000,0x0000, 0xFBC0,0x89A9,0x0000, 0x1C20,0x0000,0x0000, /* 09A8 */ +0x1C21,0x0000,0x0000, 0x1C22,0x0000,0x0000, 0x1C23,0x0000,0x0000, /* 09AB */ +0x1C24,0x0000,0x0000, 0x1C25,0x0000,0x0000, 0x1C26,0x0000,0x0000, /* 09AE */ +0xFBC0,0x89B1,0x0000, 0x1C28,0x0000,0x0000, 0xFBC0,0x89B3,0x0000, /* 09B1 */ +0xFBC0,0x89B4,0x0000, 0xFBC0,0x89B5,0x0000, 0x1C2A,0x0000,0x0000, /* 09B4 */ +0x1C2B,0x0000,0x0000, 0x1C2C,0x0000,0x0000, 0x1C2D,0x0000,0x0000, /* 09B7 */ +0xFBC0,0x89BA,0x0000, 0xFBC0,0x89BB,0x0000, 0x0000,0x0000,0x0000, /* 09BA */ +0x1C2E,0x0000,0x0000, 0x1C2F,0x0000,0x0000, 0x1C30,0x0000,0x0000, /* 09BD */ +0x1C31,0x0000,0x0000, 0x1C32,0x0000,0x0000, 0x1C33,0x0000,0x0000, /* 09C0 */ +0x1C34,0x0000,0x0000, 0x1C35,0x0000,0x0000, 0xFBC0,0x89C5,0x0000, /* 09C3 */ +0xFBC0,0x89C6,0x0000, 0x1C38,0x0000,0x0000, 0x1C39,0x0000,0x0000, /* 09C6 */ +0xFBC0,0x89C9,0x0000, 0xFBC0,0x89CA,0x0000, 0x1C3A,0x0000,0x0000, /* 09C9 */ +0x1C3B,0x0000,0x0000, 0x1C3C,0x0000,0x0000, 0x1C1B,0x1C3C,0x0000, /* 09CC */ +0xFBC0,0x89CF,0x0000, 0xFBC0,0x89D0,0x0000, 0xFBC0,0x89D1,0x0000, /* 09CF */ +0xFBC0,0x89D2,0x0000, 0xFBC0,0x89D3,0x0000, 0xFBC0,0x89D4,0x0000, /* 09D2 */ +0xFBC0,0x89D5,0x0000, 0xFBC0,0x89D6,0x0000, 0x1C3D,0x0000,0x0000, /* 09D5 */ +0xFBC0,0x89D8,0x0000, 0xFBC0,0x89D9,0x0000, 0xFBC0,0x89DA,0x0000, /* 09D8 */ +0xFBC0,0x89DB,0x0000, 0x1C18,0x0000,0x0000, 0x1C19,0x0000,0x0000, /* 09DB */ +0xFBC0,0x89DE,0x0000, 0x1C25,0x0000,0x0000, 0x1C05,0x0000,0x0000, /* 09DE */ +0x1C07,0x0000,0x0000, 0x1C36,0x0000,0x0000, 0x1C37,0x0000,0x0000, /* 09E1 */ +0xFBC0,0x89E4,0x0000, 0xFBC0,0x89E5,0x0000, 0x1205,0x0000,0x0000, /* 09E4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 09E7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 09EA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 09ED */ +0x1C27,0x0000,0x0000, 0x1C29,0x0000,0x0000, 0x11E5,0x0000,0x0000, /* 09F0 */ +0x11E6,0x0000,0x0000, 0x1110,0x0000,0x0000, 0x1111,0x0000,0x0000, /* 09F3 */ +0x1112,0x0000,0x0000, 0x1113,0x0000,0x0000, 0x1114,0x0000,0x0000, /* 09F6 */ +0x1115,0x0000,0x0000, 0x0453,0x0000,0x0000, 0x11E7,0x0000,0x0000, /* 09F9 */ +0xFBC0,0x89FC,0x0000, 0xFBC0,0x89FD,0x0000, 0xFBC0,0x89FE,0x0000, /* 09FC */ +0xFBC0,0x89FF,0x0000 }; + +uint16 uca520_p00A[]= { /* 0A00 (3 weights per char) */ +0xFBC0,0x8A00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8A04,0x0000, 0x1C43,0x0000,0x0000, /* 0A03 */ +0x1C44,0x0000,0x0000, 0x1C48,0x0000,0x0000, 0x1C49,0x0000,0x0000, /* 0A06 */ +0x1C40,0x0000,0x0000, 0x1C41,0x0000,0x0000, 0xFBC0,0x8A0B,0x0000, /* 0A09 */ +0xFBC0,0x8A0C,0x0000, 0xFBC0,0x8A0D,0x0000, 0xFBC0,0x8A0E,0x0000, /* 0A0C */ +0x1C4A,0x0000,0x0000, 0x1C45,0x0000,0x0000, 0xFBC0,0x8A11,0x0000, /* 0A0F */ +0xFBC0,0x8A12,0x0000, 0x1C42,0x0000,0x0000, 0x1C46,0x0000,0x0000, /* 0A12 */ +0x1C4E,0x0000,0x0000, 0x1C4F,0x0000,0x0000, 0x1C50,0x0000,0x0000, /* 0A15 */ +0x1C51,0x0000,0x0000, 0x1C52,0x0000,0x0000, 0x1C53,0x0000,0x0000, /* 0A18 */ +0x1C54,0x0000,0x0000, 0x1C55,0x0000,0x0000, 0x1C56,0x0000,0x0000, /* 0A1B */ +0x1C57,0x0000,0x0000, 0x1C58,0x0000,0x0000, 0x1C59,0x0000,0x0000, /* 0A1E */ +0x1C5A,0x0000,0x0000, 0x1C5B,0x0000,0x0000, 0x1C5C,0x0000,0x0000, /* 0A21 */ +0x1C5D,0x0000,0x0000, 0x1C5E,0x0000,0x0000, 0x1C5F,0x0000,0x0000, /* 0A24 */ +0x1C60,0x0000,0x0000, 0x1C61,0x0000,0x0000, 0xFBC0,0x8A29,0x0000, /* 0A27 */ +0x1C62,0x0000,0x0000, 0x1C63,0x0000,0x0000, 0x1C64,0x0000,0x0000, /* 0A2A */ +0x1C65,0x0000,0x0000, 0x1C66,0x0000,0x0000, 0x1C67,0x0000,0x0000, /* 0A2D */ +0x1C69,0x0000,0x0000, 0xFBC0,0x8A31,0x0000, 0x1C6A,0x0000,0x0000, /* 0A30 */ +0x1C6A,0x0000,0x0000, 0xFBC0,0x8A34,0x0000, 0x1C6B,0x0000,0x0000, /* 0A33 */ +0x1C4B,0x0000,0x0000, 0xFBC0,0x8A37,0x0000, 0x1C4B,0x0000,0x0000, /* 0A36 */ +0x1C4C,0x0000,0x0000, 0xFBC0,0x8A3A,0x0000, 0xFBC0,0x8A3B,0x0000, /* 0A39 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8A3D,0x0000, 0x1C6D,0x0000,0x0000, /* 0A3C */ +0x1C6E,0x0000,0x0000, 0x1C6F,0x0000,0x0000, 0x1C70,0x0000,0x0000, /* 0A3F */ +0x1C71,0x0000,0x0000, 0xFBC0,0x8A43,0x0000, 0xFBC0,0x8A44,0x0000, /* 0A42 */ +0xFBC0,0x8A45,0x0000, 0xFBC0,0x8A46,0x0000, 0x1C72,0x0000,0x0000, /* 0A45 */ +0x1C73,0x0000,0x0000, 0xFBC0,0x8A49,0x0000, 0xFBC0,0x8A4A,0x0000, /* 0A48 */ +0x1C74,0x0000,0x0000, 0x1C75,0x0000,0x0000, 0x1C76,0x0000,0x0000, /* 0A4B */ +0xFBC0,0x8A4E,0x0000, 0xFBC0,0x8A4F,0x0000, 0xFBC0,0x8A50,0x0000, /* 0A4E */ +0x1C4D,0x0000,0x0000, 0xFBC0,0x8A52,0x0000, 0xFBC0,0x8A53,0x0000, /* 0A51 */ +0xFBC0,0x8A54,0x0000, 0xFBC0,0x8A55,0x0000, 0xFBC0,0x8A56,0x0000, /* 0A54 */ +0xFBC0,0x8A57,0x0000, 0xFBC0,0x8A58,0x0000, 0x1C4F,0x0000,0x0000, /* 0A57 */ +0x1C50,0x0000,0x0000, 0x1C55,0x0000,0x0000, 0x1C6C,0x0000,0x0000, /* 0A5A */ +0xFBC0,0x8A5D,0x0000, 0x1C63,0x0000,0x0000, 0xFBC0,0x8A5F,0x0000, /* 0A5D */ +0xFBC0,0x8A60,0x0000, 0xFBC0,0x8A61,0x0000, 0xFBC0,0x8A62,0x0000, /* 0A60 */ +0xFBC0,0x8A63,0x0000, 0xFBC0,0x8A64,0x0000, 0xFBC0,0x8A65,0x0000, /* 0A63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0A66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0A69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0A6C */ +0x120E,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A6F */ +0x1C47,0x0000,0x0000, 0x1C3F,0x0000,0x0000, 0x1C3E,0x0000,0x0000, /* 0A72 */ +0x1C68,0x0000,0x0000, 0xFBC0,0x8A76,0x0000, 0xFBC0,0x8A77,0x0000, /* 0A75 */ +0xFBC0,0x8A78,0x0000, 0xFBC0,0x8A79,0x0000, 0xFBC0,0x8A7A,0x0000, /* 0A78 */ +0xFBC0,0x8A7B,0x0000, 0xFBC0,0x8A7C,0x0000, 0xFBC0,0x8A7D,0x0000, /* 0A7B */ +0xFBC0,0x8A7E,0x0000, 0xFBC0,0x8A7F,0x0000, 0xFBC0,0x8A80,0x0000, /* 0A7E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A81 */ +0xFBC0,0x8A84,0x0000, 0x1C78,0x0000,0x0000, 0x1C79,0x0000,0x0000, /* 0A84 */ +0x1C7A,0x0000,0x0000, 0x1C7B,0x0000,0x0000, 0x1C7C,0x0000,0x0000, /* 0A87 */ +0x1C7D,0x0000,0x0000, 0x1C7E,0x0000,0x0000, 0x1C80,0x0000,0x0000, /* 0A8A */ +0x1C82,0x0000,0x0000, 0xFBC0,0x8A8E,0x0000, 0x1C83,0x0000,0x0000, /* 0A8D */ +0x1C84,0x0000,0x0000, 0x1C85,0x0000,0x0000, 0xFBC0,0x8A92,0x0000, /* 0A90 */ +0x1C86,0x0000,0x0000, 0x1C87,0x0000,0x0000, 0x1C88,0x0000,0x0000, /* 0A93 */ +0x1C89,0x0000,0x0000, 0x1C8A,0x0000,0x0000, 0x1C8B,0x0000,0x0000, /* 0A96 */ +0x1C8C,0x0000,0x0000, 0x1C8D,0x0000,0x0000, 0x1C8E,0x0000,0x0000, /* 0A99 */ +0x1C8F,0x0000,0x0000, 0x1C90,0x0000,0x0000, 0x1C91,0x0000,0x0000, /* 0A9C */ +0x1C92,0x0000,0x0000, 0x1C93,0x0000,0x0000, 0x1C94,0x0000,0x0000, /* 0A9F */ +0x1C95,0x0000,0x0000, 0x1C96,0x0000,0x0000, 0x1C97,0x0000,0x0000, /* 0AA2 */ +0x1C98,0x0000,0x0000, 0x1C99,0x0000,0x0000, 0x1C9A,0x0000,0x0000, /* 0AA5 */ +0x1C9B,0x0000,0x0000, 0xFBC0,0x8AA9,0x0000, 0x1C9C,0x0000,0x0000, /* 0AA8 */ +0x1C9D,0x0000,0x0000, 0x1C9E,0x0000,0x0000, 0x1C9F,0x0000,0x0000, /* 0AAB */ +0x1CA0,0x0000,0x0000, 0x1CA1,0x0000,0x0000, 0x1CA2,0x0000,0x0000, /* 0AAE */ +0xFBC0,0x8AB1,0x0000, 0x1CA3,0x0000,0x0000, 0x1CA9,0x0000,0x0000, /* 0AB1 */ +0xFBC0,0x8AB4,0x0000, 0x1CA4,0x0000,0x0000, 0x1CA5,0x0000,0x0000, /* 0AB4 */ +0x1CA6,0x0000,0x0000, 0x1CA7,0x0000,0x0000, 0x1CA8,0x0000,0x0000, /* 0AB7 */ +0xFBC0,0x8ABA,0x0000, 0xFBC0,0x8ABB,0x0000, 0x0000,0x0000,0x0000, /* 0ABA */ +0x1CAA,0x0000,0x0000, 0x1CAB,0x0000,0x0000, 0x1CAC,0x0000,0x0000, /* 0ABD */ +0x1CAD,0x0000,0x0000, 0x1CAE,0x0000,0x0000, 0x1CAF,0x0000,0x0000, /* 0AC0 */ +0x1CB0,0x0000,0x0000, 0x1CB1,0x0000,0x0000, 0x1CB4,0x0000,0x0000, /* 0AC3 */ +0xFBC0,0x8AC6,0x0000, 0x1CB5,0x0000,0x0000, 0x1CB6,0x0000,0x0000, /* 0AC6 */ +0x1CB7,0x0000,0x0000, 0xFBC0,0x8ACA,0x0000, 0x1CB8,0x0000,0x0000, /* 0AC9 */ +0x1CB9,0x0000,0x0000, 0x1CBA,0x0000,0x0000, 0xFBC0,0x8ACE,0x0000, /* 0ACC */ +0xFBC0,0x8ACF,0x0000, 0x1C77,0x0000,0x0000, 0xFBC0,0x8AD1,0x0000, /* 0ACF */ +0xFBC0,0x8AD2,0x0000, 0xFBC0,0x8AD3,0x0000, 0xFBC0,0x8AD4,0x0000, /* 0AD2 */ +0xFBC0,0x8AD5,0x0000, 0xFBC0,0x8AD6,0x0000, 0xFBC0,0x8AD7,0x0000, /* 0AD5 */ +0xFBC0,0x8AD8,0x0000, 0xFBC0,0x8AD9,0x0000, 0xFBC0,0x8ADA,0x0000, /* 0AD8 */ +0xFBC0,0x8ADB,0x0000, 0xFBC0,0x8ADC,0x0000, 0xFBC0,0x8ADD,0x0000, /* 0ADB */ +0xFBC0,0x8ADE,0x0000, 0xFBC0,0x8ADF,0x0000, 0x1C7F,0x0000,0x0000, /* 0ADE */ +0x1C81,0x0000,0x0000, 0x1CB2,0x0000,0x0000, 0x1CB3,0x0000,0x0000, /* 0AE1 */ +0xFBC0,0x8AE4,0x0000, 0xFBC0,0x8AE5,0x0000, 0x1205,0x0000,0x0000, /* 0AE4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0AE7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0AEA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0AED */ +0xFBC0,0x8AF0,0x0000, 0x11E8,0x0000,0x0000, 0xFBC0,0x8AF2,0x0000, /* 0AF0 */ +0xFBC0,0x8AF3,0x0000, 0xFBC0,0x8AF4,0x0000, 0xFBC0,0x8AF5,0x0000, /* 0AF3 */ +0xFBC0,0x8AF6,0x0000, 0xFBC0,0x8AF7,0x0000, 0xFBC0,0x8AF8,0x0000, /* 0AF6 */ +0xFBC0,0x8AF9,0x0000, 0xFBC0,0x8AFA,0x0000, 0xFBC0,0x8AFB,0x0000, /* 0AF9 */ +0xFBC0,0x8AFC,0x0000, 0xFBC0,0x8AFD,0x0000, 0xFBC0,0x8AFE,0x0000, /* 0AFC */ +0xFBC0,0x8AFF,0x0000 }; + +uint16 uca520_p00B[]= { /* 0B00 (3 weights per char) */ +0xFBC0,0x8B00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0B00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8B04,0x0000, 0x1CBB,0x0000,0x0000, /* 0B03 */ +0x1CBC,0x0000,0x0000, 0x1CBD,0x0000,0x0000, 0x1CBE,0x0000,0x0000, /* 0B06 */ +0x1CBF,0x0000,0x0000, 0x1CC0,0x0000,0x0000, 0x1CC1,0x0000,0x0000, /* 0B09 */ +0x1CC3,0x0000,0x0000, 0xFBC0,0x8B0D,0x0000, 0xFBC0,0x8B0E,0x0000, /* 0B0C */ +0x1CC5,0x0000,0x0000, 0x1CC6,0x0000,0x0000, 0xFBC0,0x8B11,0x0000, /* 0B0F */ +0xFBC0,0x8B12,0x0000, 0x1CC7,0x0000,0x0000, 0x1CC8,0x0000,0x0000, /* 0B12 */ +0x1CC9,0x0000,0x0000, 0x1CCA,0x0000,0x0000, 0x1CCB,0x0000,0x0000, /* 0B15 */ +0x1CCC,0x0000,0x0000, 0x1CCD,0x0000,0x0000, 0x1CCE,0x0000,0x0000, /* 0B18 */ +0x1CCF,0x0000,0x0000, 0x1CD0,0x0000,0x0000, 0x1CD1,0x0000,0x0000, /* 0B1B */ +0x1CD2,0x0000,0x0000, 0x1CD3,0x0000,0x0000, 0x1CD4,0x0000,0x0000, /* 0B1E */ +0x1CD5,0x0000,0x0000, 0x1CD6,0x0000,0x0000, 0x1CD7,0x0000,0x0000, /* 0B21 */ +0x1CD8,0x0000,0x0000, 0x1CD9,0x0000,0x0000, 0x1CDA,0x0000,0x0000, /* 0B24 */ +0x1CDB,0x0000,0x0000, 0x1CDC,0x0000,0x0000, 0xFBC0,0x8B29,0x0000, /* 0B27 */ +0x1CDD,0x0000,0x0000, 0x1CDE,0x0000,0x0000, 0x1CDF,0x0000,0x0000, /* 0B2A */ +0x1CE0,0x0000,0x0000, 0x1CE1,0x0000,0x0000, 0x1CE2,0x0000,0x0000, /* 0B2D */ +0x1CE4,0x0000,0x0000, 0xFBC0,0x8B31,0x0000, 0x1CE5,0x0000,0x0000, /* 0B30 */ +0x1CE6,0x0000,0x0000, 0xFBC0,0x8B34,0x0000, 0x1CE7,0x0000,0x0000, /* 0B33 */ +0x1CE9,0x0000,0x0000, 0x1CEA,0x0000,0x0000, 0x1CEB,0x0000,0x0000, /* 0B36 */ +0x1CEC,0x0000,0x0000, 0xFBC0,0x8B3A,0x0000, 0xFBC0,0x8B3B,0x0000, /* 0B39 */ +0x0000,0x0000,0x0000, 0x1CED,0x0000,0x0000, 0x1CEE,0x0000,0x0000, /* 0B3C */ +0x1CEF,0x0000,0x0000, 0x1CF0,0x0000,0x0000, 0x1CF1,0x0000,0x0000, /* 0B3F */ +0x1CF2,0x0000,0x0000, 0x1CF3,0x0000,0x0000, 0x1CF4,0x0000,0x0000, /* 0B42 */ +0xFBC0,0x8B45,0x0000, 0xFBC0,0x8B46,0x0000, 0x1CF7,0x0000,0x0000, /* 0B45 */ +0x1CF8,0x0000,0x0000, 0xFBC0,0x8B49,0x0000, 0xFBC0,0x8B4A,0x0000, /* 0B48 */ +0x1CF9,0x0000,0x0000, 0x1CFA,0x0000,0x0000, 0x1CFB,0x0000,0x0000, /* 0B4B */ +0xFBC0,0x8B4E,0x0000, 0xFBC0,0x8B4F,0x0000, 0xFBC0,0x8B50,0x0000, /* 0B4E */ +0xFBC0,0x8B51,0x0000, 0xFBC0,0x8B52,0x0000, 0xFBC0,0x8B53,0x0000, /* 0B51 */ +0xFBC0,0x8B54,0x0000, 0xFBC0,0x8B55,0x0000, 0x1CFC,0x0000,0x0000, /* 0B54 */ +0x1CFD,0x0000,0x0000, 0xFBC0,0x8B58,0x0000, 0xFBC0,0x8B59,0x0000, /* 0B57 */ +0xFBC0,0x8B5A,0x0000, 0xFBC0,0x8B5B,0x0000, 0x1CD5,0x0000,0x0000, /* 0B5A */ +0x1CD6,0x0000,0x0000, 0xFBC0,0x8B5E,0x0000, 0x1CE3,0x0000,0x0000, /* 0B5D */ +0x1CC2,0x0000,0x0000, 0x1CC4,0x0000,0x0000, 0x1CF5,0x0000,0x0000, /* 0B60 */ +0x1CF6,0x0000,0x0000, 0xFBC0,0x8B64,0x0000, 0xFBC0,0x8B65,0x0000, /* 0B63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0B66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0B69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0B6C */ +0x120E,0x0000,0x0000, 0x0454,0x0000,0x0000, 0x1CE8,0x0000,0x0000, /* 0B6F */ +0xFBC0,0x8B72,0x0000, 0xFBC0,0x8B73,0x0000, 0xFBC0,0x8B74,0x0000, /* 0B72 */ +0xFBC0,0x8B75,0x0000, 0xFBC0,0x8B76,0x0000, 0xFBC0,0x8B77,0x0000, /* 0B75 */ +0xFBC0,0x8B78,0x0000, 0xFBC0,0x8B79,0x0000, 0xFBC0,0x8B7A,0x0000, /* 0B78 */ +0xFBC0,0x8B7B,0x0000, 0xFBC0,0x8B7C,0x0000, 0xFBC0,0x8B7D,0x0000, /* 0B7B */ +0xFBC0,0x8B7E,0x0000, 0xFBC0,0x8B7F,0x0000, 0xFBC0,0x8B80,0x0000, /* 0B7E */ +0xFBC0,0x8B81,0x0000, 0x0000,0x0000,0x0000, 0x1D0B,0x0000,0x0000, /* 0B81 */ +0xFBC0,0x8B84,0x0000, 0x1CFF,0x0000,0x0000, 0x1D00,0x0000,0x0000, /* 0B84 */ +0x1D01,0x0000,0x0000, 0x1D02,0x0000,0x0000, 0x1D03,0x0000,0x0000, /* 0B87 */ +0x1D04,0x0000,0x0000, 0xFBC0,0x8B8B,0x0000, 0xFBC0,0x8B8C,0x0000, /* 0B8A */ +0xFBC0,0x8B8D,0x0000, 0x1D05,0x0000,0x0000, 0x1D06,0x0000,0x0000, /* 0B8D */ +0x1D07,0x0000,0x0000, 0xFBC0,0x8B91,0x0000, 0x1D08,0x0000,0x0000, /* 0B90 */ +0x1D09,0x0000,0x0000, 0x1D0A,0x0000,0x0000, 0x1D0C,0x0000,0x0000, /* 0B93 */ +0xFBC0,0x8B96,0x0000, 0xFBC0,0x8B97,0x0000, 0xFBC0,0x8B98,0x0000, /* 0B96 */ +0x1D0D,0x0000,0x0000, 0x1D0E,0x0000,0x0000, 0xFBC0,0x8B9B,0x0000, /* 0B99 */ +0x1D1E,0x0000,0x0000, 0xFBC0,0x8B9D,0x0000, 0x1D0F,0x0000,0x0000, /* 0B9C */ +0x1D10,0x0000,0x0000, 0xFBC0,0x8BA0,0x0000, 0xFBC0,0x8BA1,0x0000, /* 0B9F */ +0xFBC0,0x8BA2,0x0000, 0x1D11,0x0000,0x0000, 0x1D12,0x0000,0x0000, /* 0BA2 */ +0xFBC0,0x8BA5,0x0000, 0xFBC0,0x8BA6,0x0000, 0xFBC0,0x8BA7,0x0000, /* 0BA5 */ +0x1D13,0x0000,0x0000, 0x1D1D,0x0000,0x0000, 0x1D14,0x0000,0x0000, /* 0BA8 */ +0xFBC0,0x8BAB,0x0000, 0xFBC0,0x8BAC,0x0000, 0xFBC0,0x8BAD,0x0000, /* 0BAB */ +0x1D15,0x0000,0x0000, 0x1D16,0x0000,0x0000, 0x1D17,0x0000,0x0000, /* 0BAE */ +0x1D1C,0x0000,0x0000, 0x1D18,0x0000,0x0000, 0x1D1B,0x0000,0x0000, /* 0BB1 */ +0x1D1A,0x0000,0x0000, 0x1D19,0x0000,0x0000, 0x1D1F,0x0000,0x0000, /* 0BB4 */ +0x1D20,0x0000,0x0000, 0x1D21,0x0000,0x0000, 0x1D22,0x0000,0x0000, /* 0BB7 */ +0xFBC0,0x8BBA,0x0000, 0xFBC0,0x8BBB,0x0000, 0xFBC0,0x8BBC,0x0000, /* 0BBA */ +0xFBC0,0x8BBD,0x0000, 0x1D23,0x0000,0x0000, 0x1D24,0x0000,0x0000, /* 0BBD */ +0x1D25,0x0000,0x0000, 0x1D26,0x0000,0x0000, 0x1D27,0x0000,0x0000, /* 0BC0 */ +0xFBC0,0x8BC3,0x0000, 0xFBC0,0x8BC4,0x0000, 0xFBC0,0x8BC5,0x0000, /* 0BC3 */ +0x1D28,0x0000,0x0000, 0x1D29,0x0000,0x0000, 0x1D2A,0x0000,0x0000, /* 0BC6 */ +0xFBC0,0x8BC9,0x0000, 0x1D2B,0x0000,0x0000, 0x1D2C,0x0000,0x0000, /* 0BC9 */ +0x1D2D,0x0000,0x0000, 0x1D2E,0x0000,0x0000, 0xFBC0,0x8BCE,0x0000, /* 0BCC */ +0xFBC0,0x8BCF,0x0000, 0x1CFE,0x0000,0x0000, 0xFBC0,0x8BD1,0x0000, /* 0BCF */ +0xFBC0,0x8BD2,0x0000, 0xFBC0,0x8BD3,0x0000, 0xFBC0,0x8BD4,0x0000, /* 0BD2 */ +0xFBC0,0x8BD5,0x0000, 0xFBC0,0x8BD6,0x0000, 0x1D2F,0x0000,0x0000, /* 0BD5 */ +0xFBC0,0x8BD8,0x0000, 0xFBC0,0x8BD9,0x0000, 0xFBC0,0x8BDA,0x0000, /* 0BD8 */ +0xFBC0,0x8BDB,0x0000, 0xFBC0,0x8BDC,0x0000, 0xFBC0,0x8BDD,0x0000, /* 0BDB */ +0xFBC0,0x8BDE,0x0000, 0xFBC0,0x8BDF,0x0000, 0xFBC0,0x8BE0,0x0000, /* 0BDE */ +0xFBC0,0x8BE1,0x0000, 0xFBC0,0x8BE2,0x0000, 0xFBC0,0x8BE3,0x0000, /* 0BE1 */ +0xFBC0,0x8BE4,0x0000, 0xFBC0,0x8BE5,0x0000, 0x1205,0x0000,0x0000, /* 0BE4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0BE7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0BEA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0BED */ +0x111C,0x0000,0x0000, 0x111D,0x0000,0x0000, 0x111E,0x0000,0x0000, /* 0BF0 */ +0x0455,0x0000,0x0000, 0x0456,0x0000,0x0000, 0x0457,0x0000,0x0000, /* 0BF3 */ +0x0458,0x0000,0x0000, 0x0459,0x0000,0x0000, 0x045A,0x0000,0x0000, /* 0BF6 */ +0x11EA,0x0000,0x0000, 0x045B,0x0000,0x0000, 0xFBC0,0x8BFB,0x0000, /* 0BF9 */ +0xFBC0,0x8BFC,0x0000, 0xFBC0,0x8BFD,0x0000, 0xFBC0,0x8BFE,0x0000, /* 0BFC */ +0xFBC0,0x8BFF,0x0000 }; + +uint16 uca520_p00C[]= { /* 0C00 (3 weights per char) */ +0xFBC0,0x8C00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0C00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8C04,0x0000, 0x1D30,0x0000,0x0000, /* 0C03 */ +0x1D31,0x0000,0x0000, 0x1D32,0x0000,0x0000, 0x1D33,0x0000,0x0000, /* 0C06 */ +0x1D34,0x0000,0x0000, 0x1D35,0x0000,0x0000, 0x1D36,0x0000,0x0000, /* 0C09 */ +0x1D38,0x0000,0x0000, 0xFBC0,0x8C0D,0x0000, 0x1D3A,0x0000,0x0000, /* 0C0C */ +0x1D3B,0x0000,0x0000, 0x1D3C,0x0000,0x0000, 0xFBC0,0x8C11,0x0000, /* 0C0F */ +0x1D3D,0x0000,0x0000, 0x1D3E,0x0000,0x0000, 0x1D3F,0x0000,0x0000, /* 0C12 */ +0x1D40,0x0000,0x0000, 0x1D41,0x0000,0x0000, 0x1D42,0x0000,0x0000, /* 0C15 */ +0x1D43,0x0000,0x0000, 0x1D44,0x0000,0x0000, 0x1D45,0x0000,0x0000, /* 0C18 */ +0x1D47,0x0000,0x0000, 0x1D48,0x0000,0x0000, 0x1D4A,0x0000,0x0000, /* 0C1B */ +0x1D4B,0x0000,0x0000, 0x1D4C,0x0000,0x0000, 0x1D4D,0x0000,0x0000, /* 0C1E */ +0x1D4E,0x0000,0x0000, 0x1D4F,0x0000,0x0000, 0x1D50,0x0000,0x0000, /* 0C21 */ +0x1D51,0x0000,0x0000, 0x1D52,0x0000,0x0000, 0x1D53,0x0000,0x0000, /* 0C24 */ +0x1D54,0x0000,0x0000, 0x1D55,0x0000,0x0000, 0xFBC0,0x8C29,0x0000, /* 0C27 */ +0x1D56,0x0000,0x0000, 0x1D57,0x0000,0x0000, 0x1D58,0x0000,0x0000, /* 0C2A */ +0x1D59,0x0000,0x0000, 0x1D5A,0x0000,0x0000, 0x1D5B,0x0000,0x0000, /* 0C2D */ +0x1D5C,0x0000,0x0000, 0x1D5D,0x0000,0x0000, 0x1D5E,0x0000,0x0000, /* 0C30 */ +0x1D64,0x0000,0x0000, 0xFBC0,0x8C34,0x0000, 0x1D5F,0x0000,0x0000, /* 0C33 */ +0x1D60,0x0000,0x0000, 0x1D61,0x0000,0x0000, 0x1D62,0x0000,0x0000, /* 0C36 */ +0x1D63,0x0000,0x0000, 0xFBC0,0x8C3A,0x0000, 0xFBC0,0x8C3B,0x0000, /* 0C39 */ +0xFBC0,0x8C3C,0x0000, 0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000, /* 0C3C */ +0x1D67,0x0000,0x0000, 0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, /* 0C3F */ +0x1D6A,0x0000,0x0000, 0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, /* 0C42 */ +0xFBC0,0x8C45,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000, /* 0C45 */ +0x1D71,0x0000,0x0000, 0xFBC0,0x8C49,0x0000, 0x1D72,0x0000,0x0000, /* 0C48 */ +0x1D73,0x0000,0x0000, 0x1D74,0x0000,0x0000, 0x1D75,0x0000,0x0000, /* 0C4B */ +0xFBC0,0x8C4E,0x0000, 0xFBC0,0x8C4F,0x0000, 0xFBC0,0x8C50,0x0000, /* 0C4E */ +0xFBC0,0x8C51,0x0000, 0xFBC0,0x8C52,0x0000, 0xFBC0,0x8C53,0x0000, /* 0C51 */ +0xFBC0,0x8C54,0x0000, 0x1D76,0x0000,0x0000, 0x1D77,0x0000,0x0000, /* 0C54 */ +0xFBC0,0x8C57,0x0000, 0x1D46,0x0000,0x0000, 0x1D49,0x0000,0x0000, /* 0C57 */ +0xFBC0,0x8C5A,0x0000, 0xFBC0,0x8C5B,0x0000, 0xFBC0,0x8C5C,0x0000, /* 0C5A */ +0xFBC0,0x8C5D,0x0000, 0xFBC0,0x8C5E,0x0000, 0xFBC0,0x8C5F,0x0000, /* 0C5D */ +0x1D37,0x0000,0x0000, 0x1D39,0x0000,0x0000, 0x1D6D,0x0000,0x0000, /* 0C60 */ +0x1D6E,0x0000,0x0000, 0xFBC0,0x8C64,0x0000, 0xFBC0,0x8C65,0x0000, /* 0C63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0C69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0C6C */ +0x120E,0x0000,0x0000, 0xFBC0,0x8C70,0x0000, 0xFBC0,0x8C71,0x0000, /* 0C6F */ +0xFBC0,0x8C72,0x0000, 0xFBC0,0x8C73,0x0000, 0xFBC0,0x8C74,0x0000, /* 0C72 */ +0xFBC0,0x8C75,0x0000, 0xFBC0,0x8C76,0x0000, 0xFBC0,0x8C77,0x0000, /* 0C75 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C78 */ +0x1208,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C7B */ +0x1208,0x0000,0x0000, 0x045C,0x0000,0x0000, 0xFBC0,0x8C80,0x0000, /* 0C7E */ +0xFBC0,0x8C81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0C81 */ +0xFBC0,0x8C84,0x0000, 0x1D78,0x0000,0x0000, 0x1D79,0x0000,0x0000, /* 0C84 */ +0x1D7A,0x0000,0x0000, 0x1D7B,0x0000,0x0000, 0x1D7C,0x0000,0x0000, /* 0C87 */ +0x1D7D,0x0000,0x0000, 0x1D7E,0x0000,0x0000, 0x1D80,0x0000,0x0000, /* 0C8A */ +0xFBC0,0x8C8D,0x0000, 0x1D82,0x0000,0x0000, 0x1D83,0x0000,0x0000, /* 0C8D */ +0x1D84,0x0000,0x0000, 0xFBC0,0x8C91,0x0000, 0x1D85,0x0000,0x0000, /* 0C90 */ +0x1D86,0x0000,0x0000, 0x1D87,0x0000,0x0000, 0x1D88,0x0000,0x0000, /* 0C93 */ +0x1D89,0x0000,0x0000, 0x1D8A,0x0000,0x0000, 0x1D8B,0x0000,0x0000, /* 0C96 */ +0x1D8C,0x0000,0x0000, 0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000, /* 0C99 */ +0x1D8F,0x0000,0x0000, 0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000, /* 0C9C */ +0x1D92,0x0000,0x0000, 0x1D93,0x0000,0x0000, 0x1D94,0x0000,0x0000, /* 0C9F */ +0x1D95,0x0000,0x0000, 0x1D96,0x0000,0x0000, 0x1D97,0x0000,0x0000, /* 0CA2 */ +0x1D98,0x0000,0x0000, 0x1D99,0x0000,0x0000, 0x1D9A,0x0000,0x0000, /* 0CA5 */ +0x1D9B,0x0000,0x0000, 0xFBC0,0x8CA9,0x0000, 0x1D9C,0x0000,0x0000, /* 0CA8 */ +0x1D9D,0x0000,0x0000, 0x1D9E,0x0000,0x0000, 0x1D9F,0x0000,0x0000, /* 0CAB */ +0x1DA0,0x0000,0x0000, 0x1DA1,0x0000,0x0000, 0x1DA2,0x0000,0x0000, /* 0CAE */ +0x1DA3,0x0000,0x0000, 0x1DA4,0x0000,0x0000, 0x1DAA,0x0000,0x0000, /* 0CB1 */ +0xFBC0,0x8CB4,0x0000, 0x1DA5,0x0000,0x0000, 0x1DA6,0x0000,0x0000, /* 0CB4 */ +0x1DA7,0x0000,0x0000, 0x1DA8,0x0000,0x0000, 0x1DA9,0x0000,0x0000, /* 0CB7 */ +0xFBC0,0x8CBA,0x0000, 0xFBC0,0x8CBB,0x0000, 0x0000,0x0000,0x0000, /* 0CBA */ +0x1DAC,0x0000,0x0000, 0x1DAD,0x0000,0x0000, 0x1DAE,0x0000,0x0000, /* 0CBD */ +0x1DAF,0x0000,0x0000, 0x1DB0,0x0000,0x0000, 0x1DB1,0x0000,0x0000, /* 0CC0 */ +0x1DB2,0x0000,0x0000, 0x1DB3,0x0000,0x0000, 0xFBC0,0x8CC5,0x0000, /* 0CC3 */ +0x1DB6,0x0000,0x0000, 0x1DB7,0x0000,0x0000, 0x1DB8,0x0000,0x0000, /* 0CC6 */ +0xFBC0,0x8CC9,0x0000, 0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, /* 0CC9 */ +0x1DBB,0x0000,0x0000, 0x1DBC,0x0000,0x0000, 0xFBC0,0x8CCE,0x0000, /* 0CCC */ +0xFBC0,0x8CCF,0x0000, 0xFBC0,0x8CD0,0x0000, 0xFBC0,0x8CD1,0x0000, /* 0CCF */ +0xFBC0,0x8CD2,0x0000, 0xFBC0,0x8CD3,0x0000, 0xFBC0,0x8CD4,0x0000, /* 0CD2 */ +0x1DBD,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0xFBC0,0x8CD7,0x0000, /* 0CD5 */ +0xFBC0,0x8CD8,0x0000, 0xFBC0,0x8CD9,0x0000, 0xFBC0,0x8CDA,0x0000, /* 0CD8 */ +0xFBC0,0x8CDB,0x0000, 0xFBC0,0x8CDC,0x0000, 0xFBC0,0x8CDD,0x0000, /* 0CDB */ +0x1DAB,0x0000,0x0000, 0xFBC0,0x8CDF,0x0000, 0x1D7F,0x0000,0x0000, /* 0CDE */ +0x1D81,0x0000,0x0000, 0x1DB4,0x0000,0x0000, 0x1DB5,0x0000,0x0000, /* 0CE1 */ +0xFBC0,0x8CE4,0x0000, 0xFBC0,0x8CE5,0x0000, 0x1205,0x0000,0x0000, /* 0CE4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0CE7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0CEA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0CED */ +0xFBC0,0x8CF0,0x0000, 0x045D,0x0000,0x0000, 0x045E,0x0000,0x0000, /* 0CF0 */ +0xFBC0,0x8CF3,0x0000, 0xFBC0,0x8CF4,0x0000, 0xFBC0,0x8CF5,0x0000, /* 0CF3 */ +0xFBC0,0x8CF6,0x0000, 0xFBC0,0x8CF7,0x0000, 0xFBC0,0x8CF8,0x0000, /* 0CF6 */ +0xFBC0,0x8CF9,0x0000, 0xFBC0,0x8CFA,0x0000, 0xFBC0,0x8CFB,0x0000, /* 0CF9 */ +0xFBC0,0x8CFC,0x0000, 0xFBC0,0x8CFD,0x0000, 0xFBC0,0x8CFE,0x0000, /* 0CFC */ +0xFBC0,0x8CFF,0x0000 }; + +uint16 uca520_p00D[]= { /* 0D00 (3 weights per char) */ +0xFBC0,0x8D00,0x0000, 0xFBC0,0x8D01,0x0000, 0x0000,0x0000,0x0000, /* 0D00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8D04,0x0000, 0x1DBF,0x0000,0x0000, /* 0D03 */ +0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000, /* 0D06 */ +0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000, /* 0D09 */ +0x1DC7,0x0000,0x0000, 0xFBC0,0x8D0D,0x0000, 0x1DC9,0x0000,0x0000, /* 0D0C */ +0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, 0xFBC0,0x8D11,0x0000, /* 0D0F */ +0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, /* 0D12 */ +0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000, /* 0D15 */ +0x1DD2,0x0000,0x0000, 0x1DD3,0x0000,0x0000, 0x1DD4,0x0000,0x0000, /* 0D18 */ +0x1DD5,0x0000,0x0000, 0x1DD6,0x0000,0x0000, 0x1DD7,0x0000,0x0000, /* 0D1B */ +0x1DD8,0x0000,0x0000, 0x1DD9,0x0000,0x0000, 0x1DDA,0x0000,0x0000, /* 0D1E */ +0x1DDB,0x0000,0x0000, 0x1DDC,0x0000,0x0000, 0x1DDD,0x0000,0x0000, /* 0D21 */ +0x1DDE,0x0000,0x0000, 0x1DDF,0x0000,0x0000, 0x1DE0,0x0000,0x0000, /* 0D24 */ +0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0xFBC0,0x8D29,0x0000, /* 0D27 */ +0x1DE3,0x0000,0x0000, 0x1DE4,0x0000,0x0000, 0x1DE5,0x0000,0x0000, /* 0D2A */ +0x1DE6,0x0000,0x0000, 0x1DE7,0x0000,0x0000, 0x1DE8,0x0000,0x0000, /* 0D2D */ +0x1DE9,0x0000,0x0000, 0x1DF2,0x0000,0x0000, 0x1DEA,0x0000,0x0000, /* 0D30 */ +0x1DF0,0x0000,0x0000, 0x1DF1,0x0000,0x0000, 0x1DEB,0x0000,0x0000, /* 0D33 */ +0x1DEC,0x0000,0x0000, 0x1DED,0x0000,0x0000, 0x1DEE,0x0000,0x0000, /* 0D36 */ +0x1DEF,0x0000,0x0000, 0xFBC0,0x8D3A,0x0000, 0xFBC0,0x8D3B,0x0000, /* 0D39 */ +0xFBC0,0x8D3C,0x0000, 0x1DF3,0x0000,0x0000, 0x1DF4,0x0000,0x0000, /* 0D3C */ +0x1DF5,0x0000,0x0000, 0x1DF6,0x0000,0x0000, 0x1DF7,0x0000,0x0000, /* 0D3F */ +0x1DF8,0x0000,0x0000, 0x1DF9,0x0000,0x0000, 0x1DFA,0x0000,0x0000, /* 0D42 */ +0xFBC0,0x8D45,0x0000, 0x1DFD,0x0000,0x0000, 0x1DFE,0x0000,0x0000, /* 0D45 */ +0x1DFF,0x0000,0x0000, 0xFBC0,0x8D49,0x0000, 0x1E00,0x0000,0x0000, /* 0D48 */ +0x1E01,0x0000,0x0000, 0x1E02,0x0000,0x0000, 0x1E04,0x0000,0x0000, /* 0D4B */ +0xFBC0,0x8D4E,0x0000, 0xFBC0,0x8D4F,0x0000, 0xFBC0,0x8D50,0x0000, /* 0D4E */ +0xFBC0,0x8D51,0x0000, 0xFBC0,0x8D52,0x0000, 0xFBC0,0x8D53,0x0000, /* 0D51 */ +0xFBC0,0x8D54,0x0000, 0xFBC0,0x8D55,0x0000, 0xFBC0,0x8D56,0x0000, /* 0D54 */ +0x1E03,0x0000,0x0000, 0xFBC0,0x8D58,0x0000, 0xFBC0,0x8D59,0x0000, /* 0D57 */ +0xFBC0,0x8D5A,0x0000, 0xFBC0,0x8D5B,0x0000, 0xFBC0,0x8D5C,0x0000, /* 0D5A */ +0xFBC0,0x8D5D,0x0000, 0xFBC0,0x8D5E,0x0000, 0xFBC0,0x8D5F,0x0000, /* 0D5D */ +0x1DC6,0x0000,0x0000, 0x1DC8,0x0000,0x0000, 0x1DFB,0x0000,0x0000, /* 0D60 */ +0x1DFC,0x0000,0x0000, 0xFBC0,0x8D64,0x0000, 0xFBC0,0x8D65,0x0000, /* 0D63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0D66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0D69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0D6C */ +0x120E,0x0000,0x0000, 0x111F,0x0000,0x0000, 0x1120,0x0000,0x0000, /* 0D6F */ +0x1121,0x0000,0x0000, 0x1122,0x0000,0x0000, 0x1123,0x0000,0x0000, /* 0D72 */ +0x1124,0x0000,0x0000, 0xFBC0,0x8D76,0x0000, 0xFBC0,0x8D77,0x0000, /* 0D75 */ +0xFBC0,0x8D78,0x0000, 0x045F,0x0000,0x0000, 0x1DDD,0x1E04,0x0000, /* 0D78 */ +0x1DE2,0x1E04,0x0000, 0x1DE9,0x1E04,0x0000, 0x1DEA,0x1E04,0x0000, /* 0D7B */ +0x1DF0,0x1E04,0x0000, 0x1DCF,0x1E04,0x0000, 0xFBC0,0x8D80,0x0000, /* 0D7E */ +0xFBC0,0x8D81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0D81 */ +0xFBC0,0x8D84,0x0000, 0x1E05,0x0000,0x0000, 0x1E06,0x0000,0x0000, /* 0D84 */ +0x1E07,0x0000,0x0000, 0x1E08,0x0000,0x0000, 0x1E09,0x0000,0x0000, /* 0D87 */ +0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, 0x1E0C,0x0000,0x0000, /* 0D8A */ +0x1E0D,0x0000,0x0000, 0x1E0E,0x0000,0x0000, 0x1E0F,0x0000,0x0000, /* 0D8D */ +0x1E10,0x0000,0x0000, 0x1E11,0x0000,0x0000, 0x1E12,0x0000,0x0000, /* 0D90 */ +0x1E13,0x0000,0x0000, 0x1E14,0x0000,0x0000, 0x1E15,0x0000,0x0000, /* 0D93 */ +0x1E16,0x0000,0x0000, 0xFBC0,0x8D97,0x0000, 0xFBC0,0x8D98,0x0000, /* 0D96 */ +0xFBC0,0x8D99,0x0000, 0x1E17,0x0000,0x0000, 0x1E18,0x0000,0x0000, /* 0D99 */ +0x1E19,0x0000,0x0000, 0x1E1A,0x0000,0x0000, 0x1E1B,0x0000,0x0000, /* 0D9C */ +0x1E1C,0x0000,0x0000, 0x1E1D,0x0000,0x0000, 0x1E1E,0x0000,0x0000, /* 0D9F */ +0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000, 0x1E21,0x0000,0x0000, /* 0DA2 */ +0x1E22,0x0000,0x0000, 0x1E23,0x0000,0x0000, 0x1E24,0x0000,0x0000, /* 0DA5 */ +0x1E25,0x0000,0x0000, 0x1E26,0x0000,0x0000, 0x1E27,0x0000,0x0000, /* 0DA8 */ +0x1E28,0x0000,0x0000, 0x1E29,0x0000,0x0000, 0x1E2A,0x0000,0x0000, /* 0DAB */ +0x1E2B,0x0000,0x0000, 0x1E2C,0x0000,0x0000, 0x1E2D,0x0000,0x0000, /* 0DAE */ +0x1E2E,0x0000,0x0000, 0xFBC0,0x8DB2,0x0000, 0x1E2F,0x0000,0x0000, /* 0DB1 */ +0x1E30,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1E32,0x0000,0x0000, /* 0DB4 */ +0x1E33,0x0000,0x0000, 0x1E34,0x0000,0x0000, 0x1E35,0x0000,0x0000, /* 0DB7 */ +0x1E36,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0xFBC0,0x8DBC,0x0000, /* 0DBA */ +0x1E38,0x0000,0x0000, 0xFBC0,0x8DBE,0x0000, 0xFBC0,0x8DBF,0x0000, /* 0DBD */ +0x1E39,0x0000,0x0000, 0x1E3A,0x0000,0x0000, 0x1E3B,0x0000,0x0000, /* 0DC0 */ +0x1E3C,0x0000,0x0000, 0x1E3D,0x0000,0x0000, 0x1E3E,0x0000,0x0000, /* 0DC3 */ +0x1E3F,0x0000,0x0000, 0xFBC0,0x8DC7,0x0000, 0xFBC0,0x8DC8,0x0000, /* 0DC6 */ +0xFBC0,0x8DC9,0x0000, 0x1E51,0x0000,0x0000, 0xFBC0,0x8DCB,0x0000, /* 0DC9 */ +0xFBC0,0x8DCC,0x0000, 0xFBC0,0x8DCD,0x0000, 0xFBC0,0x8DCE,0x0000, /* 0DCC */ +0x1E40,0x0000,0x0000, 0x1E41,0x0000,0x0000, 0x1E42,0x0000,0x0000, /* 0DCF */ +0x1E43,0x0000,0x0000, 0x1E44,0x0000,0x0000, 0x1E45,0x0000,0x0000, /* 0DD2 */ +0xFBC0,0x8DD5,0x0000, 0x1E46,0x0000,0x0000, 0xFBC0,0x8DD7,0x0000, /* 0DD5 */ +0x1E47,0x0000,0x0000, 0x1E4B,0x0000,0x0000, 0x1E4C,0x0000,0x0000, /* 0DD8 */ +0x1E4D,0x0000,0x0000, 0x1E4E,0x0000,0x0000, 0x1E4F,0x0000,0x0000, /* 0DDB */ +0x1E50,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0xFBC0,0x8DE0,0x0000, /* 0DDE */ +0xFBC0,0x8DE1,0x0000, 0xFBC0,0x8DE2,0x0000, 0xFBC0,0x8DE3,0x0000, /* 0DE1 */ +0xFBC0,0x8DE4,0x0000, 0xFBC0,0x8DE5,0x0000, 0xFBC0,0x8DE6,0x0000, /* 0DE4 */ +0xFBC0,0x8DE7,0x0000, 0xFBC0,0x8DE8,0x0000, 0xFBC0,0x8DE9,0x0000, /* 0DE7 */ +0xFBC0,0x8DEA,0x0000, 0xFBC0,0x8DEB,0x0000, 0xFBC0,0x8DEC,0x0000, /* 0DEA */ +0xFBC0,0x8DED,0x0000, 0xFBC0,0x8DEE,0x0000, 0xFBC0,0x8DEF,0x0000, /* 0DED */ +0xFBC0,0x8DF0,0x0000, 0xFBC0,0x8DF1,0x0000, 0x1E48,0x0000,0x0000, /* 0DF0 */ +0x1E4A,0x0000,0x0000, 0x03A5,0x0000,0x0000, 0xFBC0,0x8DF5,0x0000, /* 0DF3 */ +0xFBC0,0x8DF6,0x0000, 0xFBC0,0x8DF7,0x0000, 0xFBC0,0x8DF8,0x0000, /* 0DF6 */ +0xFBC0,0x8DF9,0x0000, 0xFBC0,0x8DFA,0x0000, 0xFBC0,0x8DFB,0x0000, /* 0DF9 */ +0xFBC0,0x8DFC,0x0000, 0xFBC0,0x8DFD,0x0000, 0xFBC0,0x8DFE,0x0000, /* 0DFC */ +0xFBC0,0x8DFF,0x0000 }; + +uint16 uca520_p00E[]= { /* 0E00 (3 weights per char) */ +0xFBC0,0x8E00,0x0000, 0x1F70,0x0000,0x0000, 0x1F71,0x0000,0x0000, /* 0E00 */ +0x1F72,0x0000,0x0000, 0x1F73,0x0000,0x0000, 0x1F74,0x0000,0x0000, /* 0E03 */ +0x1F75,0x0000,0x0000, 0x1F76,0x0000,0x0000, 0x1F77,0x0000,0x0000, /* 0E06 */ +0x1F78,0x0000,0x0000, 0x1F79,0x0000,0x0000, 0x1F7A,0x0000,0x0000, /* 0E09 */ +0x1F7B,0x0000,0x0000, 0x1F7C,0x0000,0x0000, 0x1F7D,0x0000,0x0000, /* 0E0C */ +0x1F7E,0x0000,0x0000, 0x1F7F,0x0000,0x0000, 0x1F80,0x0000,0x0000, /* 0E0F */ +0x1F81,0x0000,0x0000, 0x1F82,0x0000,0x0000, 0x1F83,0x0000,0x0000, /* 0E12 */ +0x1F84,0x0000,0x0000, 0x1F85,0x0000,0x0000, 0x1F86,0x0000,0x0000, /* 0E15 */ +0x1F87,0x0000,0x0000, 0x1F88,0x0000,0x0000, 0x1F89,0x0000,0x0000, /* 0E18 */ +0x1F8A,0x0000,0x0000, 0x1F8B,0x0000,0x0000, 0x1F8C,0x0000,0x0000, /* 0E1B */ +0x1F8D,0x0000,0x0000, 0x1F8E,0x0000,0x0000, 0x1F8F,0x0000,0x0000, /* 0E1E */ +0x1F90,0x0000,0x0000, 0x1F91,0x0000,0x0000, 0x1F92,0x0000,0x0000, /* 0E21 */ +0x1F93,0x0000,0x0000, 0x1F94,0x0000,0x0000, 0x1F95,0x0000,0x0000, /* 0E24 */ +0x1F96,0x0000,0x0000, 0x1F97,0x0000,0x0000, 0x1F98,0x0000,0x0000, /* 0E27 */ +0x1F99,0x0000,0x0000, 0x1F9A,0x0000,0x0000, 0x1F9B,0x0000,0x0000, /* 0E2A */ +0x1F9C,0x0000,0x0000, 0x1F9D,0x0000,0x0000, 0x1F9E,0x0000,0x0000, /* 0E2D */ +0x1F9F,0x0000,0x0000, 0x1FA0,0x0000,0x0000, 0x1FA1,0x0000,0x0000, /* 0E30 */ +0x1FA2,0x0000,0x0000, 0x1FA3,0x0000,0x0000, 0x1FA4,0x0000,0x0000, /* 0E33 */ +0x1FA5,0x0000,0x0000, 0x1FA6,0x0000,0x0000, 0x1FA7,0x0000,0x0000, /* 0E36 */ +0x1FA8,0x0000,0x0000, 0x1FA9,0x0000,0x0000, 0xFBC0,0x8E3B,0x0000, /* 0E39 */ +0xFBC0,0x8E3C,0x0000, 0xFBC0,0x8E3D,0x0000, 0xFBC0,0x8E3E,0x0000, /* 0E3C */ +0x11EB,0x0000,0x0000, 0x1FAA,0x0000,0x0000, 0x1FAB,0x0000,0x0000, /* 0E3F */ +0x1FAC,0x0000,0x0000, 0x1FAD,0x0000,0x0000, 0x1FAE,0x0000,0x0000, /* 0E42 */ +0x1FAF,0x0000,0x0000, 0x11D1,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E45 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E48 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E4B */ +0x0000,0x0000,0x0000, 0x0467,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 0E4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0E51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0E54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0E57 */ +0x03A6,0x0000,0x0000, 0x03A7,0x0000,0x0000, 0xFBC0,0x8E5C,0x0000, /* 0E5A */ +0xFBC0,0x8E5D,0x0000, 0xFBC0,0x8E5E,0x0000, 0xFBC0,0x8E5F,0x0000, /* 0E5D */ +0xFBC0,0x8E60,0x0000, 0xFBC0,0x8E61,0x0000, 0xFBC0,0x8E62,0x0000, /* 0E60 */ +0xFBC0,0x8E63,0x0000, 0xFBC0,0x8E64,0x0000, 0xFBC0,0x8E65,0x0000, /* 0E63 */ +0xFBC0,0x8E66,0x0000, 0xFBC0,0x8E67,0x0000, 0xFBC0,0x8E68,0x0000, /* 0E66 */ +0xFBC0,0x8E69,0x0000, 0xFBC0,0x8E6A,0x0000, 0xFBC0,0x8E6B,0x0000, /* 0E69 */ +0xFBC0,0x8E6C,0x0000, 0xFBC0,0x8E6D,0x0000, 0xFBC0,0x8E6E,0x0000, /* 0E6C */ +0xFBC0,0x8E6F,0x0000, 0xFBC0,0x8E70,0x0000, 0xFBC0,0x8E71,0x0000, /* 0E6F */ +0xFBC0,0x8E72,0x0000, 0xFBC0,0x8E73,0x0000, 0xFBC0,0x8E74,0x0000, /* 0E72 */ +0xFBC0,0x8E75,0x0000, 0xFBC0,0x8E76,0x0000, 0xFBC0,0x8E77,0x0000, /* 0E75 */ +0xFBC0,0x8E78,0x0000, 0xFBC0,0x8E79,0x0000, 0xFBC0,0x8E7A,0x0000, /* 0E78 */ +0xFBC0,0x8E7B,0x0000, 0xFBC0,0x8E7C,0x0000, 0xFBC0,0x8E7D,0x0000, /* 0E7B */ +0xFBC0,0x8E7E,0x0000, 0xFBC0,0x8E7F,0x0000, 0xFBC0,0x8E80,0x0000, /* 0E7E */ +0x1FB0,0x0000,0x0000, 0x1FB1,0x0000,0x0000, 0xFBC0,0x8E83,0x0000, /* 0E81 */ +0x1FB2,0x0000,0x0000, 0xFBC0,0x8E85,0x0000, 0xFBC0,0x8E86,0x0000, /* 0E84 */ +0x1FB3,0x0000,0x0000, 0x1FB4,0x0000,0x0000, 0xFBC0,0x8E89,0x0000, /* 0E87 */ +0x1FB6,0x0000,0x0000, 0xFBC0,0x8E8B,0x0000, 0xFBC0,0x8E8C,0x0000, /* 0E8A */ +0x1FB7,0x0000,0x0000, 0xFBC0,0x8E8E,0x0000, 0xFBC0,0x8E8F,0x0000, /* 0E8D */ +0xFBC0,0x8E90,0x0000, 0xFBC0,0x8E91,0x0000, 0xFBC0,0x8E92,0x0000, /* 0E90 */ +0xFBC0,0x8E93,0x0000, 0x1FB8,0x0000,0x0000, 0x1FB9,0x0000,0x0000, /* 0E93 */ +0x1FBA,0x0000,0x0000, 0x1FBB,0x0000,0x0000, 0xFBC0,0x8E98,0x0000, /* 0E96 */ +0x1FBC,0x0000,0x0000, 0x1FBD,0x0000,0x0000, 0x1FBE,0x0000,0x0000, /* 0E99 */ +0x1FBF,0x0000,0x0000, 0x1FC0,0x0000,0x0000, 0x1FC1,0x0000,0x0000, /* 0E9C */ +0x1FC2,0x0000,0x0000, 0xFBC0,0x8EA0,0x0000, 0x1FC3,0x0000,0x0000, /* 0E9F */ +0x1FC4,0x0000,0x0000, 0x1FC5,0x0000,0x0000, 0xFBC0,0x8EA4,0x0000, /* 0EA2 */ +0x1FC6,0x0000,0x0000, 0xFBC0,0x8EA6,0x0000, 0x1FC7,0x0000,0x0000, /* 0EA5 */ +0xFBC0,0x8EA8,0x0000, 0xFBC0,0x8EA9,0x0000, 0x1FB5,0x0000,0x0000, /* 0EA8 */ +0x1FC8,0x0000,0x0000, 0xFBC0,0x8EAC,0x0000, 0x1FC9,0x0000,0x0000, /* 0EAB */ +0x1FCA,0x0000,0x0000, 0x1FCB,0x0000,0x0000, 0x1FCC,0x0000,0x0000, /* 0EAE */ +0x1FCD,0x0000,0x0000, 0x1FCE,0x0000,0x0000, 0x1FCF,0x0000,0x0000, /* 0EB1 */ +0x1FD0,0x0000,0x0000, 0x1FD1,0x0000,0x0000, 0x1FD2,0x0000,0x0000, /* 0EB4 */ +0x1FD3,0x0000,0x0000, 0x1FD4,0x0000,0x0000, 0x1FD5,0x0000,0x0000, /* 0EB7 */ +0xFBC0,0x8EBA,0x0000, 0x1FD6,0x0000,0x0000, 0x1FD7,0x0000,0x0000, /* 0EBA */ +0x1FD8,0x0000,0x0000, 0xFBC0,0x8EBE,0x0000, 0xFBC0,0x8EBF,0x0000, /* 0EBD */ +0x1FD9,0x0000,0x0000, 0x1FDA,0x0000,0x0000, 0x1FDB,0x0000,0x0000, /* 0EC0 */ +0x1FDC,0x0000,0x0000, 0x1FDD,0x0000,0x0000, 0xFBC0,0x8EC5,0x0000, /* 0EC3 */ +0x11D2,0x0000,0x0000, 0xFBC0,0x8EC7,0x0000, 0x0000,0x0000,0x0000, /* 0EC6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0EC9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x8ECE,0x0000, /* 0ECC */ +0xFBC0,0x8ECF,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 0ECF */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 0ED2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 0ED5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x8EDA,0x0000, /* 0ED8 */ +0xFBC0,0x8EDB,0x0000, 0x1FC8,0x1FBC,0x0000, 0x1FC8,0x1FC3,0x0000, /* 0EDB */ +0xFBC0,0x8EDE,0x0000, 0xFBC0,0x8EDF,0x0000, 0xFBC0,0x8EE0,0x0000, /* 0EDE */ +0xFBC0,0x8EE1,0x0000, 0xFBC0,0x8EE2,0x0000, 0xFBC0,0x8EE3,0x0000, /* 0EE1 */ +0xFBC0,0x8EE4,0x0000, 0xFBC0,0x8EE5,0x0000, 0xFBC0,0x8EE6,0x0000, /* 0EE4 */ +0xFBC0,0x8EE7,0x0000, 0xFBC0,0x8EE8,0x0000, 0xFBC0,0x8EE9,0x0000, /* 0EE7 */ +0xFBC0,0x8EEA,0x0000, 0xFBC0,0x8EEB,0x0000, 0xFBC0,0x8EEC,0x0000, /* 0EEA */ +0xFBC0,0x8EED,0x0000, 0xFBC0,0x8EEE,0x0000, 0xFBC0,0x8EEF,0x0000, /* 0EED */ +0xFBC0,0x8EF0,0x0000, 0xFBC0,0x8EF1,0x0000, 0xFBC0,0x8EF2,0x0000, /* 0EF0 */ +0xFBC0,0x8EF3,0x0000, 0xFBC0,0x8EF4,0x0000, 0xFBC0,0x8EF5,0x0000, /* 0EF3 */ +0xFBC0,0x8EF6,0x0000, 0xFBC0,0x8EF7,0x0000, 0xFBC0,0x8EF8,0x0000, /* 0EF6 */ +0xFBC0,0x8EF9,0x0000, 0xFBC0,0x8EFA,0x0000, 0xFBC0,0x8EFB,0x0000, /* 0EF9 */ +0xFBC0,0x8EFC,0x0000, 0xFBC0,0x8EFD,0x0000, 0xFBC0,0x8EFE,0x0000, /* 0EFC */ +0xFBC0,0x8EFF,0x0000 }; + +uint16 uca520_p00F[]= { /* 0F00 (3 weights per char) */ +0x2067,0x207A,0x0000, 0x0468,0x0000,0x0000, 0x0469,0x0000,0x0000, /* 0F00 */ +0x046A,0x0000,0x0000, 0x03AA,0x0000,0x0000, 0x03AB,0x0000,0x0000, /* 0F03 */ +0x03AC,0x0000,0x0000, 0x03AD,0x0000,0x0000, 0x03AE,0x0000,0x0000, /* 0F06 */ +0x03AF,0x0000,0x0000, 0x03B0,0x0000,0x0000, 0x03B3,0x0000,0x0000, /* 0F09 */ +0x03B3,0x0000,0x0000, 0x03B4,0x0000,0x0000, 0x03B5,0x0000,0x0000, /* 0F0C */ +0x03B6,0x0000,0x0000, 0x03B7,0x0000,0x0000, 0x03B8,0x0000,0x0000, /* 0F0F */ +0x03B9,0x0000,0x0000, 0x046B,0x0000,0x0000, 0x0266,0x0000,0x0000, /* 0F12 */ +0x046C,0x0000,0x0000, 0x046D,0x0000,0x0000, 0x046E,0x0000,0x0000, /* 0F15 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x046F,0x0000,0x0000, /* 0F18 */ +0x0470,0x0000,0x0000, 0x0471,0x0000,0x0000, 0x0472,0x0000,0x0000, /* 0F1B */ +0x0473,0x0000,0x0000, 0x0474,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 0F1E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0F21 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0F24 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0F27 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0F2A */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0F2D */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0F30 */ +0x1205,0x0000,0x0000, 0x0475,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F33 */ +0x0476,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0477,0x0000,0x0000, /* 0F36 */ +0x0000,0x0000,0x0000, 0x0305,0x0000,0x0000, 0x0306,0x0000,0x0000, /* 0F39 */ +0x0307,0x0000,0x0000, 0x0308,0x0000,0x0000, 0x0478,0x0000,0x0000, /* 0F3C */ +0x0479,0x0000,0x0000, 0x2021,0x0000,0x0000, 0x2024,0x0000,0x0000, /* 0F3F */ +0x2026,0x0000,0x0000, 0x2026,0x2066,0x0000, 0x2028,0x0000,0x0000, /* 0F42 */ +0x202A,0x0000,0x0000, 0x202C,0x0000,0x0000, 0x202E,0x0000,0x0000, /* 0F45 */ +0xFBC0,0x8F48,0x0000, 0x2030,0x0000,0x0000, 0x2032,0x0000,0x0000, /* 0F48 */ +0x2034,0x0000,0x0000, 0x2036,0x0000,0x0000, 0x2036,0x2066,0x0000, /* 0F4B */ +0x2038,0x0000,0x0000, 0x203A,0x0000,0x0000, 0x203C,0x0000,0x0000, /* 0F4E */ +0x203E,0x0000,0x0000, 0x203E,0x2066,0x0000, 0x2040,0x0000,0x0000, /* 0F51 */ +0x2042,0x0000,0x0000, 0x2044,0x0000,0x0000, 0x2046,0x0000,0x0000, /* 0F54 */ +0x2046,0x2066,0x0000, 0x2048,0x0000,0x0000, 0x204A,0x0000,0x0000, /* 0F57 */ +0x204C,0x0000,0x0000, 0x204E,0x0000,0x0000, 0x204E,0x2066,0x0000, /* 0F5A */ +0x2050,0x0000,0x0000, 0x2052,0x0000,0x0000, 0x2054,0x0000,0x0000, /* 0F5D */ +0x2056,0x0000,0x0000, 0x2058,0x0000,0x0000, 0x205A,0x0000,0x0000, /* 0F60 */ +0x205D,0x0000,0x0000, 0x205F,0x0000,0x0000, 0x2061,0x0000,0x0000, /* 0F63 */ +0x2063,0x0000,0x0000, 0x2065,0x0000,0x0000, 0x2067,0x0000,0x0000, /* 0F66 */ +0x2021,0x2062,0x0000, 0x205A,0x0000,0x0000, 0x2023,0x0000,0x0000, /* 0F69 */ +0x205C,0x0000,0x0000, 0xFBC0,0x8F6D,0x0000, 0xFBC0,0x8F6E,0x0000, /* 0F6C */ +0xFBC0,0x8F6F,0x0000, 0xFBC0,0x8F70,0x0000, 0x206D,0x0000,0x0000, /* 0F6F */ +0x206E,0x0000,0x0000, 0x206F,0x0000,0x0000, 0x2072,0x0000,0x0000, /* 0F72 */ +0x2073,0x0000,0x0000, 0x2074,0x0000,0x0000, 0x2075,0x0000,0x0000, /* 0F75 */ +0x2076,0x0000,0x0000, 0x2077,0x0000,0x0000, 0x2078,0x0000,0x0000, /* 0F78 */ +0x2079,0x0000,0x0000, 0x207A,0x0000,0x0000, 0x207B,0x0000,0x0000, /* 0F7B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x2070,0x0000,0x0000, /* 0F7E */ +0x2071,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F81 */ +0x207C,0x0000,0x0000, 0x03BA,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F84 */ +0x0000,0x0000,0x0000, 0x2069,0x0000,0x0000, 0x206A,0x0000,0x0000, /* 0F87 */ +0x206B,0x0000,0x0000, 0x206C,0x0000,0x0000, 0xFBC0,0x8F8C,0x0000, /* 0F8A */ +0xFBC0,0x8F8D,0x0000, 0xFBC0,0x8F8E,0x0000, 0xFBC0,0x8F8F,0x0000, /* 0F8D */ +0x2022,0x0000,0x0000, 0x2025,0x0000,0x0000, 0x2027,0x0000,0x0000, /* 0F90 */ +0x2027,0x2066,0x0000, 0x2029,0x0000,0x0000, 0x202B,0x0000,0x0000, /* 0F93 */ +0x202D,0x0000,0x0000, 0x202F,0x0000,0x0000, 0xFBC0,0x8F98,0x0000, /* 0F96 */ +0x2031,0x0000,0x0000, 0x2033,0x0000,0x0000, 0x2035,0x0000,0x0000, /* 0F99 */ +0x2037,0x0000,0x0000, 0x2037,0x2066,0x0000, 0x2039,0x0000,0x0000, /* 0F9C */ +0x203B,0x0000,0x0000, 0x203D,0x0000,0x0000, 0x203F,0x0000,0x0000, /* 0F9F */ +0x203F,0x2066,0x0000, 0x2041,0x0000,0x0000, 0x2043,0x0000,0x0000, /* 0FA2 */ +0x2045,0x0000,0x0000, 0x2047,0x0000,0x0000, 0x2047,0x2066,0x0000, /* 0FA5 */ +0x2049,0x0000,0x0000, 0x204B,0x0000,0x0000, 0x204D,0x0000,0x0000, /* 0FA8 */ +0x204F,0x0000,0x0000, 0x204F,0x2066,0x0000, 0x2051,0x0000,0x0000, /* 0FAB */ +0x2053,0x0000,0x0000, 0x2055,0x0000,0x0000, 0x2057,0x0000,0x0000, /* 0FAE */ +0x2059,0x0000,0x0000, 0x205B,0x0000,0x0000, 0x205E,0x0000,0x0000, /* 0FB1 */ +0x2060,0x0000,0x0000, 0x2062,0x0000,0x0000, 0x2064,0x0000,0x0000, /* 0FB4 */ +0x2066,0x0000,0x0000, 0x2068,0x0000,0x0000, 0x2022,0x2062,0x0000, /* 0FB7 */ +0x2051,0x0000,0x0000, 0x2059,0x0000,0x0000, 0x205B,0x0000,0x0000, /* 0FBA */ +0xFBC0,0x8FBD,0x0000, 0x047A,0x0000,0x0000, 0x047B,0x0000,0x0000, /* 0FBD */ +0x047C,0x0000,0x0000, 0x047D,0x0000,0x0000, 0x047E,0x0000,0x0000, /* 0FC0 */ +0x047F,0x0000,0x0000, 0x0480,0x0000,0x0000, 0x0481,0x0000,0x0000, /* 0FC3 */ +0x0000,0x0000,0x0000, 0x0482,0x0000,0x0000, 0x0483,0x0000,0x0000, /* 0FC6 */ +0x0484,0x0000,0x0000, 0x0485,0x0000,0x0000, 0x0486,0x0000,0x0000, /* 0FC9 */ +0x0487,0x0000,0x0000, 0xFBC0,0x8FCD,0x0000, 0x0488,0x0000,0x0000, /* 0FCC */ +0x0489,0x0000,0x0000, 0x03B1,0x0000,0x0000, 0x03B2,0x0000,0x0000, /* 0FCF */ +0x03BB,0x0000,0x0000, 0x03BC,0x0000,0x0000, 0x03BD,0x0000,0x0000, /* 0FD2 */ +0x048A,0x0000,0x0000, 0x048B,0x0000,0x0000, 0x048C,0x0000,0x0000, /* 0FD5 */ +0x048D,0x0000,0x0000, 0xFBC0,0x8FD9,0x0000, 0xFBC0,0x8FDA,0x0000, /* 0FD8 */ +0xFBC0,0x8FDB,0x0000, 0xFBC0,0x8FDC,0x0000, 0xFBC0,0x8FDD,0x0000, /* 0FDB */ +0xFBC0,0x8FDE,0x0000, 0xFBC0,0x8FDF,0x0000, 0xFBC0,0x8FE0,0x0000, /* 0FDE */ +0xFBC0,0x8FE1,0x0000, 0xFBC0,0x8FE2,0x0000, 0xFBC0,0x8FE3,0x0000, /* 0FE1 */ +0xFBC0,0x8FE4,0x0000, 0xFBC0,0x8FE5,0x0000, 0xFBC0,0x8FE6,0x0000, /* 0FE4 */ +0xFBC0,0x8FE7,0x0000, 0xFBC0,0x8FE8,0x0000, 0xFBC0,0x8FE9,0x0000, /* 0FE7 */ +0xFBC0,0x8FEA,0x0000, 0xFBC0,0x8FEB,0x0000, 0xFBC0,0x8FEC,0x0000, /* 0FEA */ +0xFBC0,0x8FED,0x0000, 0xFBC0,0x8FEE,0x0000, 0xFBC0,0x8FEF,0x0000, /* 0FED */ +0xFBC0,0x8FF0,0x0000, 0xFBC0,0x8FF1,0x0000, 0xFBC0,0x8FF2,0x0000, /* 0FF0 */ +0xFBC0,0x8FF3,0x0000, 0xFBC0,0x8FF4,0x0000, 0xFBC0,0x8FF5,0x0000, /* 0FF3 */ +0xFBC0,0x8FF6,0x0000, 0xFBC0,0x8FF7,0x0000, 0xFBC0,0x8FF8,0x0000, /* 0FF6 */ +0xFBC0,0x8FF9,0x0000, 0xFBC0,0x8FFA,0x0000, 0xFBC0,0x8FFB,0x0000, /* 0FF9 */ +0xFBC0,0x8FFC,0x0000, 0xFBC0,0x8FFD,0x0000, 0xFBC0,0x8FFE,0x0000, /* 0FFC */ +0xFBC0,0x8FFF,0x0000 }; + +uint16 uca520_p010[]= { /* 1000 (4 weights per char) */ +0x21CD,0x0000,0x0000,0x0000, 0x21CF,0x0000,0x0000,0x0000, /* 1000 */ +0x21D1,0x0000,0x0000,0x0000, 0x21D4,0x0000,0x0000,0x0000, /* 1002 */ +0x21D5,0x0000,0x0000,0x0000, 0x21D7,0x0000,0x0000,0x0000, /* 1004 */ +0x21DA,0x0000,0x0000,0x0000, 0x21DC,0x0000,0x0000,0x0000, /* 1006 */ +0x21E0,0x0000,0x0000,0x0000, 0x21E4,0x0000,0x0000,0x0000, /* 1008 */ +0x21E7,0x0000,0x0000,0x0000, 0x21E8,0x0000,0x0000,0x0000, /* 100A */ +0x21EA,0x0000,0x0000,0x0000, 0x21EC,0x0000,0x0000,0x0000, /* 100C */ +0x21EE,0x0000,0x0000,0x0000, 0x21F0,0x0000,0x0000,0x0000, /* 100E */ +0x21F2,0x0000,0x0000,0x0000, 0x21F3,0x0000,0x0000,0x0000, /* 1010 */ +0x21F4,0x0000,0x0000,0x0000, 0x21F6,0x0000,0x0000,0x0000, /* 1012 */ +0x21F8,0x0000,0x0000,0x0000, 0x21FC,0x0000,0x0000,0x0000, /* 1014 */ +0x21FD,0x0000,0x0000,0x0000, 0x2202,0x0000,0x0000,0x0000, /* 1016 */ +0x2204,0x0000,0x0000,0x0000, 0x2205,0x0000,0x0000,0x0000, /* 1018 */ +0x2207,0x0000,0x0000,0x0000, 0x2209,0x0000,0x0000,0x0000, /* 101A */ +0x220D,0x0000,0x0000,0x0000, 0x220F,0x0000,0x0000,0x0000, /* 101C */ +0x2216,0x0000,0x0000,0x0000, 0x2218,0x0000,0x0000,0x0000, /* 101E */ +0x221E,0x0000,0x0000,0x0000, 0x2224,0x0000,0x0000,0x0000, /* 1020 */ +0x2225,0x0000,0x0000,0x0000, 0x2226,0x0000,0x0000,0x0000, /* 1022 */ +0x2227,0x0000,0x0000,0x0000, 0x2228,0x0000,0x0000,0x0000, /* 1024 */ +0x2229,0x0000,0x0000,0x0000, 0x222E,0x0000,0x0000,0x0000, /* 1026 */ +0x222F,0x0000,0x0000,0x0000, 0x2230,0x0000,0x0000,0x0000, /* 1028 */ +0x2231,0x0000,0x0000,0x0000, 0x2232,0x0000,0x0000,0x0000, /* 102A */ +0x2232,0x0000,0x0000,0x0000, 0x2236,0x0000,0x0000,0x0000, /* 102C */ +0x2238,0x0000,0x0000,0x0000, 0x223A,0x0000,0x0000,0x0000, /* 102E */ +0x223D,0x0000,0x0000,0x0000, 0x2242,0x0000,0x0000,0x0000, /* 1030 */ +0x2246,0x0000,0x0000,0x0000, 0x2239,0x0000,0x0000,0x0000, /* 1032 */ +0x2248,0x0000,0x0000,0x0000, 0x2244,0x0000,0x0000,0x0000, /* 1034 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1036 */ +0x0000,0x0000,0x0000,0x0000, 0x224D,0x0000,0x0000,0x0000, /* 1038 */ +0x224E,0x0000,0x0000,0x0000, 0x2208,0x0000,0x0000,0x0000, /* 103A */ +0x220C,0x0000,0x0000,0x0000, 0x2210,0x0000,0x0000,0x0000, /* 103C */ +0x221B,0x0000,0x0000,0x0000, 0x2216,0x224D,0x2216,0x0000, /* 103E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1040 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1042 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1044 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1046 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1048 */ +0x029F,0x0000,0x0000,0x0000, 0x02A0,0x0000,0x0000,0x0000, /* 104A */ +0x03C2,0x0000,0x0000,0x0000, 0x03C3,0x0000,0x0000,0x0000, /* 104C */ +0x03C4,0x0000,0x0000,0x0000, 0x03C5,0x0000,0x0000,0x0000, /* 104E */ +0x2213,0x0000,0x0000,0x0000, 0x2214,0x0000,0x0000,0x0000, /* 1050 */ +0x222A,0x0000,0x0000,0x0000, 0x222B,0x0000,0x0000,0x0000, /* 1052 */ +0x222C,0x0000,0x0000,0x0000, 0x222D,0x0000,0x0000,0x0000, /* 1054 */ +0x223E,0x0000,0x0000,0x0000, 0x223F,0x0000,0x0000,0x0000, /* 1056 */ +0x2240,0x0000,0x0000,0x0000, 0x2241,0x0000,0x0000,0x0000, /* 1058 */ +0x21D6,0x0000,0x0000,0x0000, 0x21E1,0x0000,0x0000,0x0000, /* 105A */ +0x221F,0x0000,0x0000,0x0000, 0x2220,0x0000,0x0000,0x0000, /* 105C */ +0x21FB,0x0000,0x0000,0x0000, 0x2206,0x0000,0x0000,0x0000, /* 105E */ +0x220E,0x0000,0x0000,0x0000, 0x21E3,0x0000,0x0000,0x0000, /* 1060 */ +0x2249,0x0000,0x0000,0x0000, 0x224F,0x0000,0x0000,0x0000, /* 1062 */ +0x2250,0x0000,0x0000,0x0000, 0x2215,0x0000,0x0000,0x0000, /* 1064 */ +0x2223,0x0000,0x0000,0x0000, 0x224A,0x0000,0x0000,0x0000, /* 1066 */ +0x224B,0x0000,0x0000,0x0000, 0x2251,0x0000,0x0000,0x0000, /* 1068 */ +0x2252,0x0000,0x0000,0x0000, 0x2253,0x0000,0x0000,0x0000, /* 106A */ +0x2254,0x0000,0x0000,0x0000, 0x2255,0x0000,0x0000,0x0000, /* 106C */ +0x21F1,0x0000,0x0000,0x0000, 0x2221,0x0000,0x0000,0x0000, /* 106E */ +0x2222,0x0000,0x0000,0x0000, 0x2237,0x0000,0x0000,0x0000, /* 1070 */ +0x2234,0x0000,0x0000,0x0000, 0x223B,0x0000,0x0000,0x0000, /* 1072 */ +0x223C,0x0000,0x0000,0x0000, 0x21CE,0x0000,0x0000,0x0000, /* 1074 */ +0x21D0,0x0000,0x0000,0x0000, 0x21D2,0x0000,0x0000,0x0000, /* 1076 */ +0x21D8,0x0000,0x0000,0x0000, 0x21DE,0x0000,0x0000,0x0000, /* 1078 */ +0x21E5,0x0000,0x0000,0x0000, 0x21F5,0x0000,0x0000,0x0000, /* 107A */ +0x21F9,0x0000,0x0000,0x0000, 0x21FE,0x0000,0x0000,0x0000, /* 107C */ +0x21FF,0x0000,0x0000,0x0000, 0x2203,0x0000,0x0000,0x0000, /* 107E */ +0x2212,0x0000,0x0000,0x0000, 0x2219,0x0000,0x0000,0x0000, /* 1080 */ +0x2211,0x0000,0x0000,0x0000, 0x2233,0x0000,0x0000,0x0000, /* 1082 */ +0x2243,0x0000,0x0000,0x0000, 0x2245,0x0000,0x0000,0x0000, /* 1084 */ +0x224C,0x0000,0x0000,0x0000, 0x2256,0x0000,0x0000,0x0000, /* 1086 */ +0x2258,0x0000,0x0000,0x0000, 0x225A,0x0000,0x0000,0x0000, /* 1088 */ +0x225B,0x0000,0x0000,0x0000, 0x2257,0x0000,0x0000,0x0000, /* 108A */ +0x2259,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 108C */ +0x2201,0x0000,0x0000,0x0000, 0x225C,0x0000,0x0000,0x0000, /* 108E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1090 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1092 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1094 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1096 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1098 */ +0x225D,0x0000,0x0000,0x0000, 0x225E,0x0000,0x0000,0x0000, /* 109A */ +0x2235,0x0000,0x0000,0x0000, 0x2247,0x0000,0x0000,0x0000, /* 109C */ +0x03C6,0x0000,0x0000,0x0000, 0x03C7,0x0000,0x0000,0x0000, /* 109E */ +0x17E5,0x0000,0x0000,0x0000, 0x17E7,0x0000,0x0000,0x0000, /* 10A0 */ +0x17E9,0x0000,0x0000,0x0000, 0x17EB,0x0000,0x0000,0x0000, /* 10A2 */ +0x17ED,0x0000,0x0000,0x0000, 0x17EF,0x0000,0x0000,0x0000, /* 10A4 */ +0x17F1,0x0000,0x0000,0x0000, 0x17F5,0x0000,0x0000,0x0000, /* 10A6 */ +0x17F7,0x0000,0x0000,0x0000, 0x17F9,0x0000,0x0000,0x0000, /* 10A8 */ +0x17FB,0x0000,0x0000,0x0000, 0x17FD,0x0000,0x0000,0x0000, /* 10AA */ +0x17FF,0x0000,0x0000,0x0000, 0x1803,0x0000,0x0000,0x0000, /* 10AC */ +0x1805,0x0000,0x0000,0x0000, 0x1807,0x0000,0x0000,0x0000, /* 10AE */ +0x1809,0x0000,0x0000,0x0000, 0x180B,0x0000,0x0000,0x0000, /* 10B0 */ +0x180D,0x0000,0x0000,0x0000, 0x1811,0x0000,0x0000,0x0000, /* 10B2 */ +0x1813,0x0000,0x0000,0x0000, 0x1815,0x0000,0x0000,0x0000, /* 10B4 */ +0x1817,0x0000,0x0000,0x0000, 0x1819,0x0000,0x0000,0x0000, /* 10B6 */ +0x181B,0x0000,0x0000,0x0000, 0x181D,0x0000,0x0000,0x0000, /* 10B8 */ +0x181F,0x0000,0x0000,0x0000, 0x1821,0x0000,0x0000,0x0000, /* 10BA */ +0x1823,0x0000,0x0000,0x0000, 0x1825,0x0000,0x0000,0x0000, /* 10BC */ +0x1827,0x0000,0x0000,0x0000, 0x182B,0x0000,0x0000,0x0000, /* 10BE */ +0x182D,0x0000,0x0000,0x0000, 0x17F3,0x0000,0x0000,0x0000, /* 10C0 */ +0x1801,0x0000,0x0000,0x0000, 0x180F,0x0000,0x0000,0x0000, /* 10C2 */ +0x1829,0x0000,0x0000,0x0000, 0x182F,0x0000,0x0000,0x0000, /* 10C4 */ +0xFBC0,0x90C6,0x0000,0x0000, 0xFBC0,0x90C7,0x0000,0x0000, /* 10C6 */ +0xFBC0,0x90C8,0x0000,0x0000, 0xFBC0,0x90C9,0x0000,0x0000, /* 10C8 */ +0xFBC0,0x90CA,0x0000,0x0000, 0xFBC0,0x90CB,0x0000,0x0000, /* 10CA */ +0xFBC0,0x90CC,0x0000,0x0000, 0xFBC0,0x90CD,0x0000,0x0000, /* 10CC */ +0xFBC0,0x90CE,0x0000,0x0000, 0xFBC0,0x90CF,0x0000,0x0000, /* 10CE */ +0x17E4,0x0000,0x0000,0x0000, 0x17E6,0x0000,0x0000,0x0000, /* 10D0 */ +0x17E8,0x0000,0x0000,0x0000, 0x17EA,0x0000,0x0000,0x0000, /* 10D2 */ +0x17EC,0x0000,0x0000,0x0000, 0x17EE,0x0000,0x0000,0x0000, /* 10D4 */ +0x17F0,0x0000,0x0000,0x0000, 0x17F4,0x0000,0x0000,0x0000, /* 10D6 */ +0x17F6,0x0000,0x0000,0x0000, 0x17F8,0x0000,0x0000,0x0000, /* 10D8 */ +0x17FA,0x0000,0x0000,0x0000, 0x17FC,0x0000,0x0000,0x0000, /* 10DA */ +0x17FE,0x0000,0x0000,0x0000, 0x1802,0x0000,0x0000,0x0000, /* 10DC */ +0x1804,0x0000,0x0000,0x0000, 0x1806,0x0000,0x0000,0x0000, /* 10DE */ +0x1808,0x0000,0x0000,0x0000, 0x180A,0x0000,0x0000,0x0000, /* 10E0 */ +0x180C,0x0000,0x0000,0x0000, 0x1810,0x0000,0x0000,0x0000, /* 10E2 */ +0x1812,0x0000,0x0000,0x0000, 0x1814,0x0000,0x0000,0x0000, /* 10E4 */ +0x1816,0x0000,0x0000,0x0000, 0x1818,0x0000,0x0000,0x0000, /* 10E6 */ +0x181A,0x0000,0x0000,0x0000, 0x181C,0x0000,0x0000,0x0000, /* 10E8 */ +0x181E,0x0000,0x0000,0x0000, 0x1820,0x0000,0x0000,0x0000, /* 10EA */ +0x1822,0x0000,0x0000,0x0000, 0x1824,0x0000,0x0000,0x0000, /* 10EC */ +0x1826,0x0000,0x0000,0x0000, 0x182A,0x0000,0x0000,0x0000, /* 10EE */ +0x182C,0x0000,0x0000,0x0000, 0x17F2,0x0000,0x0000,0x0000, /* 10F0 */ +0x1800,0x0000,0x0000,0x0000, 0x180E,0x0000,0x0000,0x0000, /* 10F2 */ +0x1828,0x0000,0x0000,0x0000, 0x182E,0x0000,0x0000,0x0000, /* 10F4 */ +0x1830,0x0000,0x0000,0x0000, 0x1831,0x0000,0x0000,0x0000, /* 10F6 */ +0x1832,0x0000,0x0000,0x0000, 0x1833,0x0000,0x0000,0x0000, /* 10F8 */ +0x1834,0x0000,0x0000,0x0000, 0x02B7,0x0000,0x0000,0x0000, /* 10FA */ +0x17FE,0x0000,0x0000,0x0000, 0xFBC0,0x90FD,0x0000,0x0000, /* 10FC */ +0xFBC0,0x90FE,0x0000,0x0000, 0xFBC0,0x90FF,0x0000,0x0000 /* 10FE */ +}; + +uint16 uca520_p011[]= { /* 1100 (2 weights per char) */ +0x29B0,0x0000, 0x29B1,0x0000, 0x29B2,0x0000, 0x29B3,0x0000, /* 1100 */ +0x29B4,0x0000, 0x29B5,0x0000, 0x29B6,0x0000, 0x29B7,0x0000, /* 1104 */ +0x29B8,0x0000, 0x29B9,0x0000, 0x29BA,0x0000, 0x29BB,0x0000, /* 1108 */ +0x29BC,0x0000, 0x29BD,0x0000, 0x29BE,0x0000, 0x29BF,0x0000, /* 110C */ +0x29C0,0x0000, 0x29C1,0x0000, 0x29C2,0x0000, 0x29C3,0x0000, /* 1110 */ +0x29C4,0x0000, 0x29C5,0x0000, 0x29C6,0x0000, 0x29C7,0x0000, /* 1114 */ +0x29C8,0x0000, 0x29C9,0x0000, 0x29CA,0x0000, 0x29CB,0x0000, /* 1118 */ +0x29CC,0x0000, 0x29CD,0x0000, 0x29CE,0x0000, 0x29CF,0x0000, /* 111C */ +0x29D0,0x0000, 0x29D1,0x0000, 0x29D2,0x0000, 0x29D3,0x0000, /* 1120 */ +0x29D4,0x0000, 0x29D5,0x0000, 0x29D6,0x0000, 0x29D7,0x0000, /* 1124 */ +0x29D8,0x0000, 0x29D9,0x0000, 0x29DA,0x0000, 0x29DB,0x0000, /* 1128 */ +0x29DC,0x0000, 0x29DD,0x0000, 0x29DE,0x0000, 0x29DF,0x0000, /* 112C */ +0x29E0,0x0000, 0x29E1,0x0000, 0x29E2,0x0000, 0x29E3,0x0000, /* 1130 */ +0x29E4,0x0000, 0x29E5,0x0000, 0x29E6,0x0000, 0x29E7,0x0000, /* 1134 */ +0x29E8,0x0000, 0x29E9,0x0000, 0x29EA,0x0000, 0x29EB,0x0000, /* 1138 */ +0x29EC,0x0000, 0x29ED,0x0000, 0x29EE,0x0000, 0x29EF,0x0000, /* 113C */ +0x29F0,0x0000, 0x29F1,0x0000, 0x29F2,0x0000, 0x29F3,0x0000, /* 1140 */ +0x29F4,0x0000, 0x29F5,0x0000, 0x29F6,0x0000, 0x29F7,0x0000, /* 1144 */ +0x29F8,0x0000, 0x29F9,0x0000, 0x29FA,0x0000, 0x29FB,0x0000, /* 1148 */ +0x29FC,0x0000, 0x29FD,0x0000, 0x29FE,0x0000, 0x29FF,0x0000, /* 114C */ +0x2A00,0x0000, 0x2A01,0x0000, 0x2A02,0x0000, 0x2A03,0x0000, /* 1150 */ +0x2A04,0x0000, 0x2A05,0x0000, 0x2A06,0x0000, 0x2A07,0x0000, /* 1154 */ +0x2A08,0x0000, 0x2A09,0x0000, 0x2A0A,0x0000, 0x2A0B,0x0000, /* 1158 */ +0x2A0C,0x0000, 0x2A0D,0x0000, 0x2A0E,0x0000, 0x2A2C,0x0000, /* 115C */ +0x2A2D,0x0000, 0x2A2E,0x0000, 0x2A2F,0x0000, 0x2A30,0x0000, /* 1160 */ +0x2A31,0x0000, 0x2A32,0x0000, 0x2A33,0x0000, 0x2A34,0x0000, /* 1164 */ +0x2A35,0x0000, 0x2A36,0x0000, 0x2A37,0x0000, 0x2A38,0x0000, /* 1168 */ +0x2A39,0x0000, 0x2A3A,0x0000, 0x2A3B,0x0000, 0x2A3C,0x0000, /* 116C */ +0x2A3D,0x0000, 0x2A3E,0x0000, 0x2A3F,0x0000, 0x2A40,0x0000, /* 1170 */ +0x2A41,0x0000, 0x2A42,0x0000, 0x2A43,0x0000, 0x2A44,0x0000, /* 1174 */ +0x2A45,0x0000, 0x2A46,0x0000, 0x2A47,0x0000, 0x2A48,0x0000, /* 1178 */ +0x2A49,0x0000, 0x2A4A,0x0000, 0x2A4B,0x0000, 0x2A4C,0x0000, /* 117C */ +0x2A4D,0x0000, 0x2A4E,0x0000, 0x2A4F,0x0000, 0x2A50,0x0000, /* 1180 */ +0x2A51,0x0000, 0x2A52,0x0000, 0x2A53,0x0000, 0x2A54,0x0000, /* 1184 */ +0x2A55,0x0000, 0x2A56,0x0000, 0x2A57,0x0000, 0x2A58,0x0000, /* 1188 */ +0x2A59,0x0000, 0x2A5A,0x0000, 0x2A5B,0x0000, 0x2A5C,0x0000, /* 118C */ +0x2A5D,0x0000, 0x2A5E,0x0000, 0x2A5F,0x0000, 0x2A60,0x0000, /* 1190 */ +0x2A61,0x0000, 0x2A62,0x0000, 0x2A63,0x0000, 0x2A64,0x0000, /* 1194 */ +0x2A65,0x0000, 0x2A66,0x0000, 0x2A67,0x0000, 0x2A68,0x0000, /* 1198 */ +0x2A69,0x0000, 0x2A6A,0x0000, 0x2A6B,0x0000, 0x2A6C,0x0000, /* 119C */ +0x2A6D,0x0000, 0x2A6E,0x0000, 0x2A6F,0x0000, 0x2A70,0x0000, /* 11A0 */ +0x2A71,0x0000, 0x2A72,0x0000, 0x2A73,0x0000, 0x2A74,0x0000, /* 11A4 */ +0x2A8C,0x0000, 0x2A8D,0x0000, 0x2A8E,0x0000, 0x2A8F,0x0000, /* 11A8 */ +0x2A90,0x0000, 0x2A91,0x0000, 0x2A92,0x0000, 0x2A93,0x0000, /* 11AC */ +0x2A94,0x0000, 0x2A95,0x0000, 0x2A96,0x0000, 0x2A97,0x0000, /* 11B0 */ +0x2A98,0x0000, 0x2A99,0x0000, 0x2A9A,0x0000, 0x2A9B,0x0000, /* 11B4 */ +0x2A9C,0x0000, 0x2A9D,0x0000, 0x2A9E,0x0000, 0x2A9F,0x0000, /* 11B8 */ +0x2AA0,0x0000, 0x2AA1,0x0000, 0x2AA2,0x0000, 0x2AA3,0x0000, /* 11BC */ +0x2AA4,0x0000, 0x2AA5,0x0000, 0x2AA6,0x0000, 0x2AA7,0x0000, /* 11C0 */ +0x2AA8,0x0000, 0x2AA9,0x0000, 0x2AAA,0x0000, 0x2AAB,0x0000, /* 11C4 */ +0x2AAC,0x0000, 0x2AAD,0x0000, 0x2AAE,0x0000, 0x2AAF,0x0000, /* 11C8 */ +0x2AB0,0x0000, 0x2AB1,0x0000, 0x2AB2,0x0000, 0x2AB3,0x0000, /* 11CC */ +0x2AB4,0x0000, 0x2AB5,0x0000, 0x2AB6,0x0000, 0x2AB7,0x0000, /* 11D0 */ +0x2AB8,0x0000, 0x2AB9,0x0000, 0x2ABA,0x0000, 0x2ABB,0x0000, /* 11D4 */ +0x2ABC,0x0000, 0x2ABD,0x0000, 0x2ABE,0x0000, 0x2ABF,0x0000, /* 11D8 */ +0x2AC0,0x0000, 0x2AC1,0x0000, 0x2AC2,0x0000, 0x2AC3,0x0000, /* 11DC */ +0x2AC4,0x0000, 0x2AC5,0x0000, 0x2AC6,0x0000, 0x2AC7,0x0000, /* 11E0 */ +0x2AC8,0x0000, 0x2AC9,0x0000, 0x2ACA,0x0000, 0x2ACB,0x0000, /* 11E4 */ +0x2ACC,0x0000, 0x2ACD,0x0000, 0x2ACE,0x0000, 0x2ACF,0x0000, /* 11E8 */ +0x2AD0,0x0000, 0x2AD1,0x0000, 0x2AD2,0x0000, 0x2AD3,0x0000, /* 11EC */ +0x2AD4,0x0000, 0x2AD5,0x0000, 0x2AD6,0x0000, 0x2AD7,0x0000, /* 11F0 */ +0x2AD8,0x0000, 0x2AD9,0x0000, 0x2ADA,0x0000, 0x2ADB,0x0000, /* 11F4 */ +0x2ADC,0x0000, 0x2ADD,0x0000, 0x2ADE,0x0000, 0x2ADF,0x0000, /* 11F8 */ +0x2AE0,0x0000, 0x2AE1,0x0000, 0x2AE2,0x0000, 0x2AE3,0x0000 /* 11FC */ +}; + +uint16 uca520_p012[]= { /* 1200 (3 weights per char) */ +0x1A03,0x0000,0x0000, 0x1A04,0x0000,0x0000, 0x1A05,0x0000,0x0000, /* 1200 */ +0x1A06,0x0000,0x0000, 0x1A07,0x0000,0x0000, 0x1A08,0x0000,0x0000, /* 1203 */ +0x1A09,0x0000,0x0000, 0x1A0A,0x0000,0x0000, 0x1A0B,0x0000,0x0000, /* 1206 */ +0x1A0C,0x0000,0x0000, 0x1A0D,0x0000,0x0000, 0x1A0E,0x0000,0x0000, /* 1209 */ +0x1A0F,0x0000,0x0000, 0x1A10,0x0000,0x0000, 0x1A11,0x0000,0x0000, /* 120C */ +0x1A12,0x0000,0x0000, 0x1A14,0x0000,0x0000, 0x1A15,0x0000,0x0000, /* 120F */ +0x1A16,0x0000,0x0000, 0x1A17,0x0000,0x0000, 0x1A18,0x0000,0x0000, /* 1212 */ +0x1A19,0x0000,0x0000, 0x1A1A,0x0000,0x0000, 0x1A1B,0x0000,0x0000, /* 1215 */ +0x1A1C,0x0000,0x0000, 0x1A1D,0x0000,0x0000, 0x1A1E,0x0000,0x0000, /* 1218 */ +0x1A1F,0x0000,0x0000, 0x1A20,0x0000,0x0000, 0x1A21,0x0000,0x0000, /* 121B */ +0x1A22,0x0000,0x0000, 0x1A23,0x0000,0x0000, 0x1A29,0x0000,0x0000, /* 121E */ +0x1A2A,0x0000,0x0000, 0x1A2B,0x0000,0x0000, 0x1A2C,0x0000,0x0000, /* 1221 */ +0x1A2D,0x0000,0x0000, 0x1A2E,0x0000,0x0000, 0x1A2F,0x0000,0x0000, /* 1224 */ +0x1A30,0x0000,0x0000, 0x1A31,0x0000,0x0000, 0x1A32,0x0000,0x0000, /* 1227 */ +0x1A33,0x0000,0x0000, 0x1A34,0x0000,0x0000, 0x1A35,0x0000,0x0000, /* 122A */ +0x1A36,0x0000,0x0000, 0x1A37,0x0000,0x0000, 0x1A38,0x0000,0x0000, /* 122D */ +0x1A3A,0x0000,0x0000, 0x1A3B,0x0000,0x0000, 0x1A3C,0x0000,0x0000, /* 1230 */ +0x1A3D,0x0000,0x0000, 0x1A3E,0x0000,0x0000, 0x1A3F,0x0000,0x0000, /* 1233 */ +0x1A40,0x0000,0x0000, 0x1A41,0x0000,0x0000, 0x1A43,0x0000,0x0000, /* 1236 */ +0x1A44,0x0000,0x0000, 0x1A45,0x0000,0x0000, 0x1A46,0x0000,0x0000, /* 1239 */ +0x1A47,0x0000,0x0000, 0x1A48,0x0000,0x0000, 0x1A49,0x0000,0x0000, /* 123C */ +0x1A4A,0x0000,0x0000, 0x1A4C,0x0000,0x0000, 0x1A4D,0x0000,0x0000, /* 123F */ +0x1A4E,0x0000,0x0000, 0x1A4F,0x0000,0x0000, 0x1A50,0x0000,0x0000, /* 1242 */ +0x1A51,0x0000,0x0000, 0x1A52,0x0000,0x0000, 0x1A53,0x0000,0x0000, /* 1245 */ +0x1A54,0x0000,0x0000, 0xFBC0,0x9249,0x0000, 0x1A55,0x0000,0x0000, /* 1248 */ +0x1A56,0x0000,0x0000, 0x1A57,0x0000,0x0000, 0x1A58,0x0000,0x0000, /* 124B */ +0xFBC0,0x924E,0x0000, 0xFBC0,0x924F,0x0000, 0x1A59,0x0000,0x0000, /* 124E */ +0x1A5A,0x0000,0x0000, 0x1A5B,0x0000,0x0000, 0x1A5C,0x0000,0x0000, /* 1251 */ +0x1A5D,0x0000,0x0000, 0x1A5E,0x0000,0x0000, 0x1A5F,0x0000,0x0000, /* 1254 */ +0xFBC0,0x9257,0x0000, 0x1A60,0x0000,0x0000, 0xFBC0,0x9259,0x0000, /* 1257 */ +0x1A61,0x0000,0x0000, 0x1A62,0x0000,0x0000, 0x1A63,0x0000,0x0000, /* 125A */ +0x1A64,0x0000,0x0000, 0xFBC0,0x925E,0x0000, 0xFBC0,0x925F,0x0000, /* 125D */ +0x1A65,0x0000,0x0000, 0x1A66,0x0000,0x0000, 0x1A67,0x0000,0x0000, /* 1260 */ +0x1A68,0x0000,0x0000, 0x1A69,0x0000,0x0000, 0x1A6A,0x0000,0x0000, /* 1263 */ +0x1A6B,0x0000,0x0000, 0x1A6C,0x0000,0x0000, 0x1A72,0x0000,0x0000, /* 1266 */ +0x1A73,0x0000,0x0000, 0x1A74,0x0000,0x0000, 0x1A75,0x0000,0x0000, /* 1269 */ +0x1A76,0x0000,0x0000, 0x1A77,0x0000,0x0000, 0x1A78,0x0000,0x0000, /* 126C */ +0x1A79,0x0000,0x0000, 0x1A7A,0x0000,0x0000, 0x1A7B,0x0000,0x0000, /* 126F */ +0x1A7C,0x0000,0x0000, 0x1A7D,0x0000,0x0000, 0x1A7E,0x0000,0x0000, /* 1272 */ +0x1A7F,0x0000,0x0000, 0x1A80,0x0000,0x0000, 0x1A81,0x0000,0x0000, /* 1275 */ +0x1A83,0x0000,0x0000, 0x1A84,0x0000,0x0000, 0x1A85,0x0000,0x0000, /* 1278 */ +0x1A86,0x0000,0x0000, 0x1A87,0x0000,0x0000, 0x1A88,0x0000,0x0000, /* 127B */ +0x1A89,0x0000,0x0000, 0x1A8A,0x0000,0x0000, 0x1A8C,0x0000,0x0000, /* 127E */ +0x1A8D,0x0000,0x0000, 0x1A8E,0x0000,0x0000, 0x1A8F,0x0000,0x0000, /* 1281 */ +0x1A90,0x0000,0x0000, 0x1A91,0x0000,0x0000, 0x1A92,0x0000,0x0000, /* 1284 */ +0x1A93,0x0000,0x0000, 0x1A94,0x0000,0x0000, 0xFBC0,0x9289,0x0000, /* 1287 */ +0x1A95,0x0000,0x0000, 0x1A96,0x0000,0x0000, 0x1A97,0x0000,0x0000, /* 128A */ +0x1A98,0x0000,0x0000, 0xFBC0,0x928E,0x0000, 0xFBC0,0x928F,0x0000, /* 128D */ +0x1A99,0x0000,0x0000, 0x1A9A,0x0000,0x0000, 0x1A9B,0x0000,0x0000, /* 1290 */ +0x1A9C,0x0000,0x0000, 0x1A9D,0x0000,0x0000, 0x1A9E,0x0000,0x0000, /* 1293 */ +0x1A9F,0x0000,0x0000, 0x1AA0,0x0000,0x0000, 0x1AA2,0x0000,0x0000, /* 1296 */ +0x1AA3,0x0000,0x0000, 0x1AA4,0x0000,0x0000, 0x1AA5,0x0000,0x0000, /* 1299 */ +0x1AA6,0x0000,0x0000, 0x1AA7,0x0000,0x0000, 0x1AA8,0x0000,0x0000, /* 129C */ +0x1AA9,0x0000,0x0000, 0x1AAB,0x0000,0x0000, 0x1AAC,0x0000,0x0000, /* 129F */ +0x1AAD,0x0000,0x0000, 0x1AAE,0x0000,0x0000, 0x1AAF,0x0000,0x0000, /* 12A2 */ +0x1AB0,0x0000,0x0000, 0x1AB1,0x0000,0x0000, 0x1AB2,0x0000,0x0000, /* 12A5 */ +0x1AB4,0x0000,0x0000, 0x1AB5,0x0000,0x0000, 0x1AB6,0x0000,0x0000, /* 12A8 */ +0x1AB7,0x0000,0x0000, 0x1AB8,0x0000,0x0000, 0x1AB9,0x0000,0x0000, /* 12AB */ +0x1ABA,0x0000,0x0000, 0x1ABB,0x0000,0x0000, 0x1ABC,0x0000,0x0000, /* 12AE */ +0xFBC0,0x92B1,0x0000, 0x1ABD,0x0000,0x0000, 0x1ABE,0x0000,0x0000, /* 12B1 */ +0x1ABF,0x0000,0x0000, 0x1AC0,0x0000,0x0000, 0xFBC0,0x92B6,0x0000, /* 12B4 */ +0xFBC0,0x92B7,0x0000, 0x1AC1,0x0000,0x0000, 0x1AC2,0x0000,0x0000, /* 12B7 */ +0x1AC3,0x0000,0x0000, 0x1AC4,0x0000,0x0000, 0x1AC5,0x0000,0x0000, /* 12BA */ +0x1AC6,0x0000,0x0000, 0x1AC7,0x0000,0x0000, 0xFBC0,0x92BF,0x0000, /* 12BD */ +0x1AC8,0x0000,0x0000, 0xFBC0,0x92C1,0x0000, 0x1AC9,0x0000,0x0000, /* 12C0 */ +0x1ACA,0x0000,0x0000, 0x1ACB,0x0000,0x0000, 0x1ACC,0x0000,0x0000, /* 12C3 */ +0xFBC0,0x92C6,0x0000, 0xFBC0,0x92C7,0x0000, 0x1ACD,0x0000,0x0000, /* 12C6 */ +0x1ACE,0x0000,0x0000, 0x1ACF,0x0000,0x0000, 0x1AD0,0x0000,0x0000, /* 12C9 */ +0x1AD1,0x0000,0x0000, 0x1AD2,0x0000,0x0000, 0x1AD3,0x0000,0x0000, /* 12CC */ +0x1AD4,0x0000,0x0000, 0x1AD5,0x0000,0x0000, 0x1AD6,0x0000,0x0000, /* 12CF */ +0x1AD7,0x0000,0x0000, 0x1AD8,0x0000,0x0000, 0x1AD9,0x0000,0x0000, /* 12D2 */ +0x1ADA,0x0000,0x0000, 0x1ADB,0x0000,0x0000, 0xFBC0,0x92D7,0x0000, /* 12D5 */ +0x1ADC,0x0000,0x0000, 0x1ADD,0x0000,0x0000, 0x1ADE,0x0000,0x0000, /* 12D8 */ +0x1ADF,0x0000,0x0000, 0x1AE0,0x0000,0x0000, 0x1AE1,0x0000,0x0000, /* 12DB */ +0x1AE2,0x0000,0x0000, 0x1AE3,0x0000,0x0000, 0x1AE5,0x0000,0x0000, /* 12DE */ +0x1AE6,0x0000,0x0000, 0x1AE7,0x0000,0x0000, 0x1AE8,0x0000,0x0000, /* 12E1 */ +0x1AE9,0x0000,0x0000, 0x1AEA,0x0000,0x0000, 0x1AEB,0x0000,0x0000, /* 12E4 */ +0x1AEC,0x0000,0x0000, 0x1AED,0x0000,0x0000, 0x1AEE,0x0000,0x0000, /* 12E7 */ +0x1AEF,0x0000,0x0000, 0x1AF0,0x0000,0x0000, 0x1AF1,0x0000,0x0000, /* 12EA */ +0x1AF2,0x0000,0x0000, 0x1AF3,0x0000,0x0000, 0x1AF4,0x0000,0x0000, /* 12ED */ +0x1AF5,0x0000,0x0000, 0x1AF6,0x0000,0x0000, 0x1AF7,0x0000,0x0000, /* 12F0 */ +0x1AF8,0x0000,0x0000, 0x1AF9,0x0000,0x0000, 0x1AFA,0x0000,0x0000, /* 12F3 */ +0x1AFB,0x0000,0x0000, 0x1AFC,0x0000,0x0000, 0x1AFE,0x0000,0x0000, /* 12F6 */ +0x1AFF,0x0000,0x0000, 0x1B00,0x0000,0x0000, 0x1B01,0x0000,0x0000, /* 12F9 */ +0x1B02,0x0000,0x0000, 0x1B03,0x0000,0x0000, 0x1B04,0x0000,0x0000, /* 12FC */ +0x1B05,0x0000,0x0000 }; + +uint16 uca520_p013[]= { /* 1300 (3 weights per char) */ +0x1B07,0x0000,0x0000, 0x1B08,0x0000,0x0000, 0x1B09,0x0000,0x0000, /* 1300 */ +0x1B0A,0x0000,0x0000, 0x1B0B,0x0000,0x0000, 0x1B0C,0x0000,0x0000, /* 1303 */ +0x1B0D,0x0000,0x0000, 0x1B0E,0x0000,0x0000, 0x1B10,0x0000,0x0000, /* 1306 */ +0x1B11,0x0000,0x0000, 0x1B12,0x0000,0x0000, 0x1B13,0x0000,0x0000, /* 1309 */ +0x1B14,0x0000,0x0000, 0x1B15,0x0000,0x0000, 0x1B16,0x0000,0x0000, /* 130C */ +0x1B17,0x0000,0x0000, 0x1B18,0x0000,0x0000, 0xFBC0,0x9311,0x0000, /* 130F */ +0x1B19,0x0000,0x0000, 0x1B1A,0x0000,0x0000, 0x1B1B,0x0000,0x0000, /* 1312 */ +0x1B1C,0x0000,0x0000, 0xFBC0,0x9316,0x0000, 0xFBC0,0x9317,0x0000, /* 1315 */ +0x1B1D,0x0000,0x0000, 0x1B1E,0x0000,0x0000, 0x1B1F,0x0000,0x0000, /* 1318 */ +0x1B20,0x0000,0x0000, 0x1B21,0x0000,0x0000, 0x1B22,0x0000,0x0000, /* 131B */ +0x1B23,0x0000,0x0000, 0x1B24,0x0000,0x0000, 0x1B29,0x0000,0x0000, /* 131E */ +0x1B2A,0x0000,0x0000, 0x1B2B,0x0000,0x0000, 0x1B2C,0x0000,0x0000, /* 1321 */ +0x1B2D,0x0000,0x0000, 0x1B2E,0x0000,0x0000, 0x1B2F,0x0000,0x0000, /* 1324 */ +0x1B30,0x0000,0x0000, 0x1B32,0x0000,0x0000, 0x1B33,0x0000,0x0000, /* 1327 */ +0x1B34,0x0000,0x0000, 0x1B35,0x0000,0x0000, 0x1B36,0x0000,0x0000, /* 132A */ +0x1B37,0x0000,0x0000, 0x1B38,0x0000,0x0000, 0x1B39,0x0000,0x0000, /* 132D */ +0x1B3B,0x0000,0x0000, 0x1B3C,0x0000,0x0000, 0x1B3D,0x0000,0x0000, /* 1330 */ +0x1B3E,0x0000,0x0000, 0x1B3F,0x0000,0x0000, 0x1B40,0x0000,0x0000, /* 1333 */ +0x1B41,0x0000,0x0000, 0x1B42,0x0000,0x0000, 0x1B44,0x0000,0x0000, /* 1336 */ +0x1B45,0x0000,0x0000, 0x1B46,0x0000,0x0000, 0x1B47,0x0000,0x0000, /* 1339 */ +0x1B48,0x0000,0x0000, 0x1B49,0x0000,0x0000, 0x1B4A,0x0000,0x0000, /* 133C */ +0x1B4B,0x0000,0x0000, 0x1B4C,0x0000,0x0000, 0x1B4D,0x0000,0x0000, /* 133F */ +0x1B4E,0x0000,0x0000, 0x1B4F,0x0000,0x0000, 0x1B50,0x0000,0x0000, /* 1342 */ +0x1B51,0x0000,0x0000, 0x1B52,0x0000,0x0000, 0x1B53,0x0000,0x0000, /* 1345 */ +0x1B54,0x0000,0x0000, 0x1B55,0x0000,0x0000, 0x1B56,0x0000,0x0000, /* 1348 */ +0x1B57,0x0000,0x0000, 0x1B58,0x0000,0x0000, 0x1B59,0x0000,0x0000, /* 134B */ +0x1B5A,0x0000,0x0000, 0x1B5B,0x0000,0x0000, 0x1B60,0x0000,0x0000, /* 134E */ +0x1B61,0x0000,0x0000, 0x1B62,0x0000,0x0000, 0x1B63,0x0000,0x0000, /* 1351 */ +0x1B64,0x0000,0x0000, 0x1B65,0x0000,0x0000, 0x1B66,0x0000,0x0000, /* 1354 */ +0x1B67,0x0000,0x0000, 0x1B6D,0x0000,0x0000, 0x1B6E,0x0000,0x0000, /* 1357 */ +0x1B6F,0x0000,0x0000, 0xFBC0,0x935B,0x0000, 0xFBC0,0x935C,0x0000, /* 135A */ +0xFBC0,0x935D,0x0000, 0xFBC0,0x935E,0x0000, 0x0000,0x0000,0x0000, /* 135D */ +0x02B8,0x0000,0x0000, 0x025F,0x0000,0x0000, 0x0286,0x0000,0x0000, /* 1360 */ +0x0260,0x0000,0x0000, 0x0261,0x0000,0x0000, 0x0262,0x0000,0x0000, /* 1363 */ +0x0263,0x0000,0x0000, 0x0279,0x0000,0x0000, 0x02B9,0x0000,0x0000, /* 1366 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1369 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 136C */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 136F */ +0x1125,0x0000,0x0000, 0x1126,0x0000,0x0000, 0x1127,0x0000,0x0000, /* 1372 */ +0x1128,0x0000,0x0000, 0x1129,0x0000,0x0000, 0x112A,0x0000,0x0000, /* 1375 */ +0x112B,0x0000,0x0000, 0x112C,0x0000,0x0000, 0x112D,0x0000,0x0000, /* 1378 */ +0x112E,0x0000,0x0000, 0x112F,0x0000,0x0000, 0xFBC0,0x937D,0x0000, /* 137B */ +0xFBC0,0x937E,0x0000, 0xFBC0,0x937F,0x0000, 0x1A24,0x0000,0x0000, /* 137E */ +0x1A25,0x0000,0x0000, 0x1A26,0x0000,0x0000, 0x1A27,0x0000,0x0000, /* 1381 */ +0x1A6D,0x0000,0x0000, 0x1A6E,0x0000,0x0000, 0x1A6F,0x0000,0x0000, /* 1384 */ +0x1A70,0x0000,0x0000, 0x1B5C,0x0000,0x0000, 0x1B5D,0x0000,0x0000, /* 1387 */ +0x1B5E,0x0000,0x0000, 0x1B5F,0x0000,0x0000, 0x1B68,0x0000,0x0000, /* 138A */ +0x1B69,0x0000,0x0000, 0x1B6A,0x0000,0x0000, 0x1B6B,0x0000,0x0000, /* 138D */ +0x041C,0x0000,0x0000, 0x041D,0x0000,0x0000, 0x041E,0x0000,0x0000, /* 1390 */ +0x041F,0x0000,0x0000, 0x0420,0x0000,0x0000, 0x0421,0x0000,0x0000, /* 1393 */ +0x0422,0x0000,0x0000, 0x0423,0x0000,0x0000, 0x0424,0x0000,0x0000, /* 1396 */ +0x0425,0x0000,0x0000, 0xFBC0,0x939A,0x0000, 0xFBC0,0x939B,0x0000, /* 1399 */ +0xFBC0,0x939C,0x0000, 0xFBC0,0x939D,0x0000, 0xFBC0,0x939E,0x0000, /* 139C */ +0xFBC0,0x939F,0x0000, 0x24CE,0x0000,0x0000, 0x24CF,0x0000,0x0000, /* 139F */ +0x24D0,0x0000,0x0000, 0x24D1,0x0000,0x0000, 0x24D2,0x0000,0x0000, /* 13A2 */ +0x24D3,0x0000,0x0000, 0x24D4,0x0000,0x0000, 0x24D5,0x0000,0x0000, /* 13A5 */ +0x24D6,0x0000,0x0000, 0x24D7,0x0000,0x0000, 0x24D8,0x0000,0x0000, /* 13A8 */ +0x24D9,0x0000,0x0000, 0x24DA,0x0000,0x0000, 0x24DB,0x0000,0x0000, /* 13AB */ +0x24DC,0x0000,0x0000, 0x24DD,0x0000,0x0000, 0x24DE,0x0000,0x0000, /* 13AE */ +0x24DF,0x0000,0x0000, 0x24E0,0x0000,0x0000, 0x24E1,0x0000,0x0000, /* 13B1 */ +0x24E2,0x0000,0x0000, 0x24E3,0x0000,0x0000, 0x24E4,0x0000,0x0000, /* 13B4 */ +0x24E5,0x0000,0x0000, 0x24E6,0x0000,0x0000, 0x24E7,0x0000,0x0000, /* 13B7 */ +0x24E8,0x0000,0x0000, 0x24E9,0x0000,0x0000, 0x24EA,0x0000,0x0000, /* 13BA */ +0x24EB,0x0000,0x0000, 0x24EC,0x0000,0x0000, 0x24ED,0x0000,0x0000, /* 13BD */ +0x24EE,0x0000,0x0000, 0x24EF,0x0000,0x0000, 0x24F0,0x0000,0x0000, /* 13C0 */ +0x24F1,0x0000,0x0000, 0x24F2,0x0000,0x0000, 0x24F3,0x0000,0x0000, /* 13C3 */ +0x24F4,0x0000,0x0000, 0x24F5,0x0000,0x0000, 0x24F6,0x0000,0x0000, /* 13C6 */ +0x24F7,0x0000,0x0000, 0x24F8,0x0000,0x0000, 0x24F9,0x0000,0x0000, /* 13C9 */ +0x24FA,0x0000,0x0000, 0x24FB,0x0000,0x0000, 0x24FC,0x0000,0x0000, /* 13CC */ +0x24FD,0x0000,0x0000, 0x24FE,0x0000,0x0000, 0x24FF,0x0000,0x0000, /* 13CF */ +0x2500,0x0000,0x0000, 0x2501,0x0000,0x0000, 0x2502,0x0000,0x0000, /* 13D2 */ +0x2503,0x0000,0x0000, 0x2504,0x0000,0x0000, 0x2505,0x0000,0x0000, /* 13D5 */ +0x2506,0x0000,0x0000, 0x2507,0x0000,0x0000, 0x2508,0x0000,0x0000, /* 13D8 */ +0x2509,0x0000,0x0000, 0x250A,0x0000,0x0000, 0x250B,0x0000,0x0000, /* 13DB */ +0x250C,0x0000,0x0000, 0x250D,0x0000,0x0000, 0x250E,0x0000,0x0000, /* 13DE */ +0x250F,0x0000,0x0000, 0x2510,0x0000,0x0000, 0x2511,0x0000,0x0000, /* 13E1 */ +0x2512,0x0000,0x0000, 0x2513,0x0000,0x0000, 0x2514,0x0000,0x0000, /* 13E4 */ +0x2515,0x0000,0x0000, 0x2516,0x0000,0x0000, 0x2517,0x0000,0x0000, /* 13E7 */ +0x2518,0x0000,0x0000, 0x2519,0x0000,0x0000, 0x251A,0x0000,0x0000, /* 13EA */ +0x251B,0x0000,0x0000, 0x251C,0x0000,0x0000, 0x251D,0x0000,0x0000, /* 13ED */ +0x251E,0x0000,0x0000, 0x251F,0x0000,0x0000, 0x2520,0x0000,0x0000, /* 13F0 */ +0x2521,0x0000,0x0000, 0x2522,0x0000,0x0000, 0xFBC0,0x93F5,0x0000, /* 13F3 */ +0xFBC0,0x93F6,0x0000, 0xFBC0,0x93F7,0x0000, 0xFBC0,0x93F8,0x0000, /* 13F6 */ +0xFBC0,0x93F9,0x0000, 0xFBC0,0x93FA,0x0000, 0xFBC0,0x93FB,0x0000, /* 13F9 */ +0xFBC0,0x93FC,0x0000, 0xFBC0,0x93FD,0x0000, 0xFBC0,0x93FE,0x0000, /* 13FC */ +0xFBC0,0x93FF,0x0000 }; + +uint16 uca520_p014[]= { /* 1400 (2 weights per char) */ +0x0225,0x0000, 0x2523,0x0000, 0x2524,0x0000, 0x2525,0x0000, /* 1400 */ +0x2526,0x0000, 0x2527,0x0000, 0x2528,0x0000, 0x2529,0x0000, /* 1404 */ +0x252A,0x0000, 0x252B,0x0000, 0x252C,0x0000, 0x252D,0x0000, /* 1408 */ +0x252E,0x0000, 0x252F,0x0000, 0x2530,0x0000, 0x2531,0x0000, /* 140C */ +0x2532,0x0000, 0x2533,0x0000, 0x2534,0x0000, 0x2535,0x0000, /* 1410 */ +0x2536,0x0000, 0x2537,0x0000, 0x2538,0x0000, 0x2539,0x0000, /* 1414 */ +0x253A,0x0000, 0x253B,0x0000, 0x253C,0x0000, 0x253D,0x0000, /* 1418 */ +0x253E,0x0000, 0x253F,0x0000, 0x2540,0x0000, 0x2541,0x0000, /* 141C */ +0x2542,0x0000, 0x2543,0x0000, 0x2544,0x0000, 0x2545,0x0000, /* 1420 */ +0x2546,0x0000, 0x2547,0x0000, 0x2548,0x0000, 0x2549,0x0000, /* 1424 */ +0x254A,0x0000, 0x254B,0x0000, 0x254C,0x0000, 0x254D,0x0000, /* 1428 */ +0x254E,0x0000, 0x254F,0x0000, 0x2550,0x0000, 0x2551,0x0000, /* 142C */ +0x2552,0x0000, 0x2553,0x0000, 0x2554,0x0000, 0x2555,0x0000, /* 1430 */ +0x2556,0x0000, 0x2557,0x0000, 0x2558,0x0000, 0x2559,0x0000, /* 1434 */ +0x255A,0x0000, 0x255B,0x0000, 0x255C,0x0000, 0x255D,0x0000, /* 1438 */ +0x255E,0x0000, 0x255F,0x0000, 0x2560,0x0000, 0x2561,0x0000, /* 143C */ +0x2562,0x0000, 0x2563,0x0000, 0x2564,0x0000, 0x2565,0x0000, /* 1440 */ +0x2566,0x0000, 0x2567,0x0000, 0x2568,0x0000, 0x2569,0x0000, /* 1444 */ +0x256A,0x0000, 0x256B,0x0000, 0x256C,0x0000, 0x256D,0x0000, /* 1448 */ +0x256E,0x0000, 0x256F,0x0000, 0x2570,0x0000, 0x2571,0x0000, /* 144C */ +0x2572,0x0000, 0x2573,0x0000, 0x2574,0x0000, 0x2575,0x0000, /* 1450 */ +0x2576,0x0000, 0x2577,0x0000, 0x2578,0x0000, 0x2579,0x0000, /* 1454 */ +0x257A,0x0000, 0x257B,0x0000, 0x257C,0x0000, 0x257D,0x0000, /* 1458 */ +0x257E,0x0000, 0x257F,0x0000, 0x2580,0x0000, 0x2581,0x0000, /* 145C */ +0x2582,0x0000, 0x2583,0x0000, 0x2584,0x0000, 0x2585,0x0000, /* 1460 */ +0x2586,0x0000, 0x2587,0x0000, 0x2588,0x0000, 0x2589,0x0000, /* 1464 */ +0x258A,0x0000, 0x258B,0x0000, 0x258C,0x0000, 0x258D,0x0000, /* 1468 */ +0x258E,0x0000, 0x258F,0x0000, 0x2590,0x0000, 0x2591,0x0000, /* 146C */ +0x2592,0x0000, 0x2593,0x0000, 0x2594,0x0000, 0x2595,0x0000, /* 1470 */ +0x2596,0x0000, 0x2597,0x0000, 0x2598,0x0000, 0x2599,0x0000, /* 1474 */ +0x259A,0x0000, 0x259B,0x0000, 0x259C,0x0000, 0x259D,0x0000, /* 1478 */ +0x259E,0x0000, 0x259F,0x0000, 0x25A0,0x0000, 0x25A1,0x0000, /* 147C */ +0x25A2,0x0000, 0x25A3,0x0000, 0x25A4,0x0000, 0x25A5,0x0000, /* 1480 */ +0x25A6,0x0000, 0x25A7,0x0000, 0x25A8,0x0000, 0x25A9,0x0000, /* 1484 */ +0x25AA,0x0000, 0x25AB,0x0000, 0x25AC,0x0000, 0x25AD,0x0000, /* 1488 */ +0x25AE,0x0000, 0x25AF,0x0000, 0x25B0,0x0000, 0x25B1,0x0000, /* 148C */ +0x25B2,0x0000, 0x25B3,0x0000, 0x25B4,0x0000, 0x25B5,0x0000, /* 1490 */ +0x25B6,0x0000, 0x25B7,0x0000, 0x25B8,0x0000, 0x25B9,0x0000, /* 1494 */ +0x25BA,0x0000, 0x25BB,0x0000, 0x25BC,0x0000, 0x25BD,0x0000, /* 1498 */ +0x25BE,0x0000, 0x25BF,0x0000, 0x25C0,0x0000, 0x25C1,0x0000, /* 149C */ +0x25C2,0x0000, 0x25C3,0x0000, 0x25C4,0x0000, 0x25C5,0x0000, /* 14A0 */ +0x25C6,0x0000, 0x25C7,0x0000, 0x25C8,0x0000, 0x25C9,0x0000, /* 14A4 */ +0x25CA,0x0000, 0x25CB,0x0000, 0x25CC,0x0000, 0x25CD,0x0000, /* 14A8 */ +0x25CE,0x0000, 0x25CF,0x0000, 0x25D0,0x0000, 0x25D1,0x0000, /* 14AC */ +0x25D2,0x0000, 0x25D3,0x0000, 0x25D4,0x0000, 0x25D5,0x0000, /* 14B0 */ +0x25D6,0x0000, 0x25D7,0x0000, 0x25D8,0x0000, 0x25D9,0x0000, /* 14B4 */ +0x25DA,0x0000, 0x25DB,0x0000, 0x25DC,0x0000, 0x25DD,0x0000, /* 14B8 */ +0x25DE,0x0000, 0x25DF,0x0000, 0x25E0,0x0000, 0x25E1,0x0000, /* 14BC */ +0x25E2,0x0000, 0x25E3,0x0000, 0x25E4,0x0000, 0x25E5,0x0000, /* 14C0 */ +0x25E6,0x0000, 0x25E7,0x0000, 0x25E8,0x0000, 0x25E9,0x0000, /* 14C4 */ +0x25EA,0x0000, 0x25EB,0x0000, 0x25EC,0x0000, 0x25ED,0x0000, /* 14C8 */ +0x25EE,0x0000, 0x25EF,0x0000, 0x25F0,0x0000, 0x25F1,0x0000, /* 14CC */ +0x25F2,0x0000, 0x25F3,0x0000, 0x25F4,0x0000, 0x25F5,0x0000, /* 14D0 */ +0x25F6,0x0000, 0x25F7,0x0000, 0x25F8,0x0000, 0x25F9,0x0000, /* 14D4 */ +0x25FA,0x0000, 0x25FB,0x0000, 0x25FC,0x0000, 0x25FD,0x0000, /* 14D8 */ +0x25FE,0x0000, 0x25FF,0x0000, 0x2600,0x0000, 0x2601,0x0000, /* 14DC */ +0x2602,0x0000, 0x2603,0x0000, 0x2604,0x0000, 0x2605,0x0000, /* 14E0 */ +0x2606,0x0000, 0x2607,0x0000, 0x2608,0x0000, 0x2609,0x0000, /* 14E4 */ +0x260A,0x0000, 0x260B,0x0000, 0x260C,0x0000, 0x260D,0x0000, /* 14E8 */ +0x260E,0x0000, 0x260F,0x0000, 0x2610,0x0000, 0x2611,0x0000, /* 14EC */ +0x2612,0x0000, 0x2613,0x0000, 0x2614,0x0000, 0x2615,0x0000, /* 14F0 */ +0x2616,0x0000, 0x2617,0x0000, 0x2618,0x0000, 0x2619,0x0000, /* 14F4 */ +0x261A,0x0000, 0x261B,0x0000, 0x261C,0x0000, 0x261D,0x0000, /* 14F8 */ +0x261E,0x0000, 0x261F,0x0000, 0x2620,0x0000, 0x2621,0x0000 /* 14FC */ +}; + +uint16 uca520_p015[]= { /* 1500 (2 weights per char) */ +0x2622,0x0000, 0x2623,0x0000, 0x2624,0x0000, 0x2625,0x0000, /* 1500 */ +0x2626,0x0000, 0x2627,0x0000, 0x2628,0x0000, 0x2629,0x0000, /* 1504 */ +0x262A,0x0000, 0x262B,0x0000, 0x262C,0x0000, 0x262D,0x0000, /* 1508 */ +0x262E,0x0000, 0x262F,0x0000, 0x2630,0x0000, 0x2631,0x0000, /* 150C */ +0x2632,0x0000, 0x2633,0x0000, 0x2634,0x0000, 0x2635,0x0000, /* 1510 */ +0x2636,0x0000, 0x2637,0x0000, 0x2638,0x0000, 0x2639,0x0000, /* 1514 */ +0x263A,0x0000, 0x263B,0x0000, 0x263C,0x0000, 0x263D,0x0000, /* 1518 */ +0x263E,0x0000, 0x263F,0x0000, 0x2640,0x0000, 0x2641,0x0000, /* 151C */ +0x2642,0x0000, 0x2643,0x0000, 0x2644,0x0000, 0x2645,0x0000, /* 1520 */ +0x2646,0x0000, 0x2647,0x0000, 0x2648,0x0000, 0x2649,0x0000, /* 1524 */ +0x264A,0x0000, 0x264B,0x0000, 0x264C,0x0000, 0x264D,0x0000, /* 1528 */ +0x264E,0x0000, 0x264F,0x0000, 0x2650,0x0000, 0x2651,0x0000, /* 152C */ +0x2652,0x0000, 0x2653,0x0000, 0x2654,0x0000, 0x2655,0x0000, /* 1530 */ +0x2656,0x0000, 0x2657,0x0000, 0x2658,0x0000, 0x2659,0x0000, /* 1534 */ +0x265A,0x0000, 0x265B,0x0000, 0x265C,0x0000, 0x265D,0x0000, /* 1538 */ +0x265E,0x0000, 0x265F,0x0000, 0x2660,0x0000, 0x2661,0x0000, /* 153C */ +0x2662,0x0000, 0x2663,0x0000, 0x2664,0x0000, 0x2665,0x0000, /* 1540 */ +0x2666,0x0000, 0x2667,0x0000, 0x2668,0x0000, 0x2669,0x0000, /* 1544 */ +0x266A,0x0000, 0x266B,0x0000, 0x266C,0x0000, 0x266D,0x0000, /* 1548 */ +0x266E,0x0000, 0x266F,0x0000, 0x2670,0x0000, 0x2671,0x0000, /* 154C */ +0x2672,0x0000, 0x2673,0x0000, 0x2674,0x0000, 0x2675,0x0000, /* 1550 */ +0x2676,0x0000, 0x2677,0x0000, 0x2678,0x0000, 0x2679,0x0000, /* 1554 */ +0x267A,0x0000, 0x267B,0x0000, 0x267C,0x0000, 0x267D,0x0000, /* 1558 */ +0x267E,0x0000, 0x267F,0x0000, 0x2680,0x0000, 0x2681,0x0000, /* 155C */ +0x2682,0x0000, 0x2683,0x0000, 0x2684,0x0000, 0x2685,0x0000, /* 1560 */ +0x2686,0x0000, 0x2687,0x0000, 0x2688,0x0000, 0x2689,0x0000, /* 1564 */ +0x268A,0x0000, 0x268B,0x0000, 0x268C,0x0000, 0x268D,0x0000, /* 1568 */ +0x268E,0x0000, 0x268F,0x0000, 0x2690,0x0000, 0x2691,0x0000, /* 156C */ +0x2692,0x0000, 0x2693,0x0000, 0x2694,0x0000, 0x2695,0x0000, /* 1570 */ +0x2696,0x0000, 0x2697,0x0000, 0x2698,0x0000, 0x2699,0x0000, /* 1574 */ +0x269A,0x0000, 0x269B,0x0000, 0x269C,0x0000, 0x269D,0x0000, /* 1578 */ +0x26D0,0x0000, 0x269E,0x0000, 0x26A0,0x0000, 0x26A1,0x0000, /* 157C */ +0x26A2,0x0000, 0x26A3,0x0000, 0x26A4,0x0000, 0x26A5,0x0000, /* 1580 */ +0x26A6,0x0000, 0x26A7,0x0000, 0x26A8,0x0000, 0x26A9,0x0000, /* 1584 */ +0x26AA,0x0000, 0x26AB,0x0000, 0x26AC,0x0000, 0x26AD,0x0000, /* 1588 */ +0x26AE,0x0000, 0x26AF,0x0000, 0x26B1,0x0000, 0x26B2,0x0000, /* 158C */ +0x26B3,0x0000, 0x26B4,0x0000, 0x26B5,0x0000, 0x26B6,0x0000, /* 1590 */ +0x26B7,0x0000, 0x26B8,0x0000, 0x26BF,0x0000, 0x26C0,0x0000, /* 1594 */ +0x26C1,0x0000, 0x26C2,0x0000, 0x26C3,0x0000, 0x26C4,0x0000, /* 1598 */ +0x26C5,0x0000, 0x26C6,0x0000, 0x26C7,0x0000, 0x26C8,0x0000, /* 159C */ +0x26C9,0x0000, 0x26CA,0x0000, 0x26CB,0x0000, 0x26CC,0x0000, /* 15A0 */ +0x26CD,0x0000, 0x26CE,0x0000, 0x26CF,0x0000, 0x26D1,0x0000, /* 15A4 */ +0x26D2,0x0000, 0x26D3,0x0000, 0x26D4,0x0000, 0x26D5,0x0000, /* 15A8 */ +0x26D6,0x0000, 0x26D7,0x0000, 0x26D8,0x0000, 0x26D9,0x0000, /* 15AC */ +0x26DA,0x0000, 0x26DB,0x0000, 0x26DC,0x0000, 0x26DD,0x0000, /* 15B0 */ +0x26DE,0x0000, 0x26DF,0x0000, 0x26E0,0x0000, 0x26E1,0x0000, /* 15B4 */ +0x26E2,0x0000, 0x26E3,0x0000, 0x26E4,0x0000, 0x26E5,0x0000, /* 15B8 */ +0x26E6,0x0000, 0x26E7,0x0000, 0x26E8,0x0000, 0x26E9,0x0000, /* 15BC */ +0x26EA,0x0000, 0x26EB,0x0000, 0x26EC,0x0000, 0x26ED,0x0000, /* 15C0 */ +0x26EE,0x0000, 0x26EF,0x0000, 0x26F0,0x0000, 0x26F1,0x0000, /* 15C4 */ +0x26F2,0x0000, 0x26F3,0x0000, 0x26F4,0x0000, 0x26F5,0x0000, /* 15C8 */ +0x26F6,0x0000, 0x26F7,0x0000, 0x26F8,0x0000, 0x26F9,0x0000, /* 15CC */ +0x26FA,0x0000, 0x26FB,0x0000, 0x26FC,0x0000, 0x26FD,0x0000, /* 15D0 */ +0x26FE,0x0000, 0x26FF,0x0000, 0x2700,0x0000, 0x2701,0x0000, /* 15D4 */ +0x2702,0x0000, 0x2703,0x0000, 0x2704,0x0000, 0x2705,0x0000, /* 15D8 */ +0x2706,0x0000, 0x2707,0x0000, 0x2708,0x0000, 0x2709,0x0000, /* 15DC */ +0x270A,0x0000, 0x270B,0x0000, 0x270C,0x0000, 0x270D,0x0000, /* 15E0 */ +0x270E,0x0000, 0x270F,0x0000, 0x2710,0x0000, 0x2711,0x0000, /* 15E4 */ +0x2712,0x0000, 0x2713,0x0000, 0x2714,0x0000, 0x2715,0x0000, /* 15E8 */ +0x2716,0x0000, 0x2717,0x0000, 0x2718,0x0000, 0x2719,0x0000, /* 15EC */ +0x271A,0x0000, 0x271B,0x0000, 0x271C,0x0000, 0x271D,0x0000, /* 15F0 */ +0x271E,0x0000, 0x271F,0x0000, 0x2720,0x0000, 0x2721,0x0000, /* 15F4 */ +0x2722,0x0000, 0x2723,0x0000, 0x2724,0x0000, 0x2725,0x0000, /* 15F8 */ +0x2726,0x0000, 0x2727,0x0000, 0x2728,0x0000, 0x2729,0x0000 /* 15FC */ +}; + +uint16 uca520_p016[]= { /* 1600 (3 weights per char) */ +0x272A,0x0000,0x0000, 0x272B,0x0000,0x0000, 0x272C,0x0000,0x0000, /* 1600 */ +0x272D,0x0000,0x0000, 0x272E,0x0000,0x0000, 0x272F,0x0000,0x0000, /* 1603 */ +0x2730,0x0000,0x0000, 0x2731,0x0000,0x0000, 0x2732,0x0000,0x0000, /* 1606 */ +0x2733,0x0000,0x0000, 0x2734,0x0000,0x0000, 0x2735,0x0000,0x0000, /* 1609 */ +0x2736,0x0000,0x0000, 0x2737,0x0000,0x0000, 0x2738,0x0000,0x0000, /* 160C */ +0x2739,0x0000,0x0000, 0x273A,0x0000,0x0000, 0x273B,0x0000,0x0000, /* 160F */ +0x273C,0x0000,0x0000, 0x273D,0x0000,0x0000, 0x273E,0x0000,0x0000, /* 1612 */ +0x273F,0x0000,0x0000, 0x2740,0x0000,0x0000, 0x2741,0x0000,0x0000, /* 1615 */ +0x2742,0x0000,0x0000, 0x2743,0x0000,0x0000, 0x2744,0x0000,0x0000, /* 1618 */ +0x2745,0x0000,0x0000, 0x2746,0x0000,0x0000, 0x2747,0x0000,0x0000, /* 161B */ +0x2748,0x0000,0x0000, 0x2749,0x0000,0x0000, 0x274A,0x0000,0x0000, /* 161E */ +0x274B,0x0000,0x0000, 0x274C,0x0000,0x0000, 0x274D,0x0000,0x0000, /* 1621 */ +0x274E,0x0000,0x0000, 0x274F,0x0000,0x0000, 0x2750,0x0000,0x0000, /* 1624 */ +0x2751,0x0000,0x0000, 0x2752,0x0000,0x0000, 0x2753,0x0000,0x0000, /* 1627 */ +0x2754,0x0000,0x0000, 0x2755,0x0000,0x0000, 0x2756,0x0000,0x0000, /* 162A */ +0x2757,0x0000,0x0000, 0x2758,0x0000,0x0000, 0x2759,0x0000,0x0000, /* 162D */ +0x275A,0x0000,0x0000, 0x275B,0x0000,0x0000, 0x275C,0x0000,0x0000, /* 1630 */ +0x275D,0x0000,0x0000, 0x275E,0x0000,0x0000, 0x275F,0x0000,0x0000, /* 1633 */ +0x2760,0x0000,0x0000, 0x2761,0x0000,0x0000, 0x2762,0x0000,0x0000, /* 1636 */ +0x2763,0x0000,0x0000, 0x2764,0x0000,0x0000, 0x2765,0x0000,0x0000, /* 1639 */ +0x2766,0x0000,0x0000, 0x2767,0x0000,0x0000, 0x2768,0x0000,0x0000, /* 163C */ +0x2769,0x0000,0x0000, 0x276A,0x0000,0x0000, 0x276B,0x0000,0x0000, /* 163F */ +0x276C,0x0000,0x0000, 0x276D,0x0000,0x0000, 0x276E,0x0000,0x0000, /* 1642 */ +0x276F,0x0000,0x0000, 0x2770,0x0000,0x0000, 0x2771,0x0000,0x0000, /* 1645 */ +0x2772,0x0000,0x0000, 0x2773,0x0000,0x0000, 0x2774,0x0000,0x0000, /* 1648 */ +0x2775,0x0000,0x0000, 0x2776,0x0000,0x0000, 0x2777,0x0000,0x0000, /* 164B */ +0x2778,0x0000,0x0000, 0x2779,0x0000,0x0000, 0x277A,0x0000,0x0000, /* 164E */ +0x277B,0x0000,0x0000, 0x277C,0x0000,0x0000, 0x277D,0x0000,0x0000, /* 1651 */ +0x277E,0x0000,0x0000, 0x277F,0x0000,0x0000, 0x2780,0x0000,0x0000, /* 1654 */ +0x2781,0x0000,0x0000, 0x2782,0x0000,0x0000, 0x2783,0x0000,0x0000, /* 1657 */ +0x2784,0x0000,0x0000, 0x2785,0x0000,0x0000, 0x2786,0x0000,0x0000, /* 165A */ +0x2787,0x0000,0x0000, 0x2788,0x0000,0x0000, 0x2789,0x0000,0x0000, /* 165D */ +0x278A,0x0000,0x0000, 0x278B,0x0000,0x0000, 0x278C,0x0000,0x0000, /* 1660 */ +0x278D,0x0000,0x0000, 0x278E,0x0000,0x0000, 0x278F,0x0000,0x0000, /* 1663 */ +0x2790,0x0000,0x0000, 0x2791,0x0000,0x0000, 0x2792,0x0000,0x0000, /* 1666 */ +0x2793,0x0000,0x0000, 0x2794,0x0000,0x0000, 0x2795,0x0000,0x0000, /* 1669 */ +0x2796,0x0000,0x0000, 0x03D8,0x0000,0x0000, 0x0289,0x0000,0x0000, /* 166C */ +0x269F,0x0000,0x0000, 0x26B0,0x0000,0x0000, 0x26B9,0x0000,0x0000, /* 166F */ +0x26BA,0x0000,0x0000, 0x26BB,0x0000,0x0000, 0x26BC,0x0000,0x0000, /* 1672 */ +0x26BD,0x0000,0x0000, 0x26BE,0x0000,0x0000, 0x2797,0x0000,0x0000, /* 1675 */ +0x2798,0x0000,0x0000, 0x2799,0x0000,0x0000, 0x279A,0x0000,0x0000, /* 1678 */ +0x279B,0x0000,0x0000, 0x279C,0x0000,0x0000, 0x279D,0x0000,0x0000, /* 167B */ +0x279E,0x0000,0x0000, 0x279F,0x0000,0x0000, 0x020B,0x0000,0x0000, /* 167E */ +0x27E6,0x0000,0x0000, 0x27E7,0x0000,0x0000, 0x27E8,0x0000,0x0000, /* 1681 */ +0x27E9,0x0000,0x0000, 0x27EA,0x0000,0x0000, 0x27EB,0x0000,0x0000, /* 1684 */ +0x27EC,0x0000,0x0000, 0x27ED,0x0000,0x0000, 0x27EE,0x0000,0x0000, /* 1687 */ +0x27EF,0x0000,0x0000, 0x27F0,0x0000,0x0000, 0x27F1,0x0000,0x0000, /* 168A */ +0x27F2,0x0000,0x0000, 0x27F3,0x0000,0x0000, 0x27F4,0x0000,0x0000, /* 168D */ +0x27F5,0x0000,0x0000, 0x27F6,0x0000,0x0000, 0x27F7,0x0000,0x0000, /* 1690 */ +0x27F8,0x0000,0x0000, 0x27F9,0x0000,0x0000, 0x27FA,0x0000,0x0000, /* 1693 */ +0x27FB,0x0000,0x0000, 0x27FC,0x0000,0x0000, 0x27FD,0x0000,0x0000, /* 1696 */ +0x27FE,0x0000,0x0000, 0x27FF,0x0000,0x0000, 0x0309,0x0000,0x0000, /* 1699 */ +0x030A,0x0000,0x0000, 0xFBC0,0x969D,0x0000, 0xFBC0,0x969E,0x0000, /* 169C */ +0xFBC0,0x969F,0x0000, 0x2800,0x0000,0x0000, 0x2800,0x0000,0x0000, /* 169F */ +0x2801,0x0000,0x0000, 0x281D,0x0000,0x0000, 0x2801,0x0000,0x0000, /* 16A2 */ +0x2801,0x0000,0x0000, 0x2802,0x0000,0x0000, 0x2802,0x0000,0x0000, /* 16A5 */ +0x2803,0x0000,0x0000, 0x2803,0x0000,0x0000, 0x281B,0x0000,0x0000, /* 16A8 */ +0x281C,0x0000,0x0000, 0x2803,0x0000,0x0000, 0x2803,0x0000,0x0000, /* 16AB */ +0x2803,0x0000,0x0000, 0x2804,0x0000,0x0000, 0x2805,0x0000,0x0000, /* 16AE */ +0x2806,0x0000,0x0000, 0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, /* 16B1 */ +0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, /* 16B4 */ +0x2808,0x0000,0x0000, 0x2820,0x0000,0x0000, 0x2809,0x0000,0x0000, /* 16B7 */ +0x280A,0x0000,0x0000, 0x280A,0x0000,0x0000, 0x280A,0x0000,0x0000, /* 16BA */ +0x280A,0x0000,0x0000, 0x280B,0x0000,0x0000, 0x280B,0x0000,0x0000, /* 16BD */ +0x280B,0x0000,0x0000, 0x280C,0x0000,0x0000, 0x280C,0x0000,0x0000, /* 16C0 */ +0x280D,0x0000,0x0000, 0x280D,0x0000,0x0000, 0x280E,0x0000,0x0000, /* 16C3 */ +0x280E,0x0000,0x0000, 0x280F,0x0000,0x0000, 0x2810,0x0000,0x0000, /* 16C6 */ +0x2811,0x0000,0x0000, 0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, /* 16C9 */ +0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, /* 16CC */ +0x2813,0x0000,0x0000, 0x2813,0x0000,0x0000, 0x2813,0x0000,0x0000, /* 16CF */ +0x2814,0x0000,0x0000, 0x2814,0x0000,0x0000, 0x2814,0x0000,0x0000, /* 16D2 */ +0x2810,0x0000,0x0000, 0x2815,0x0000,0x0000, 0x2816,0x0000,0x0000, /* 16D5 */ +0x2816,0x0000,0x0000, 0x2816,0x0000,0x0000, 0x2817,0x0000,0x0000, /* 16D8 */ +0x2817,0x0000,0x0000, 0x2818,0x0000,0x0000, 0x2818,0x0000,0x0000, /* 16DB */ +0x2819,0x0000,0x0000, 0x281A,0x0000,0x0000, 0x281E,0x0000,0x0000, /* 16DE */ +0x2822,0x0000,0x0000, 0x2823,0x0000,0x0000, 0x281F,0x0000,0x0000, /* 16E1 */ +0x2821,0x0000,0x0000, 0x2824,0x0000,0x0000, 0x2825,0x0000,0x0000, /* 16E4 */ +0x2825,0x0000,0x0000, 0x2825,0x0000,0x0000, 0x2809,0x0000,0x0000, /* 16E7 */ +0x2812,0x0000,0x0000, 0x026A,0x0000,0x0000, 0x026B,0x0000,0x0000, /* 16EA */ +0x026C,0x0000,0x0000, 0x280E,0x2817,0x0000, 0x2816,0x2816,0x0000, /* 16ED */ +0x2802,0x2802,0x0000, 0xFBC0,0x96F1,0x0000, 0xFBC0,0x96F2,0x0000, /* 16F0 */ +0xFBC0,0x96F3,0x0000, 0xFBC0,0x96F4,0x0000, 0xFBC0,0x96F5,0x0000, /* 16F3 */ +0xFBC0,0x96F6,0x0000, 0xFBC0,0x96F7,0x0000, 0xFBC0,0x96F8,0x0000, /* 16F6 */ +0xFBC0,0x96F9,0x0000, 0xFBC0,0x96FA,0x0000, 0xFBC0,0x96FB,0x0000, /* 16F9 */ +0xFBC0,0x96FC,0x0000, 0xFBC0,0x96FD,0x0000, 0xFBC0,0x96FE,0x0000, /* 16FC */ +0xFBC0,0x96FF,0x0000 }; + +uint16 uca520_p017[]= { /* 1700 (3 weights per char) */ +0x211D,0x0000,0x0000, 0x211E,0x0000,0x0000, 0x211F,0x0000,0x0000, /* 1700 */ +0x2120,0x0000,0x0000, 0x2121,0x0000,0x0000, 0x2122,0x0000,0x0000, /* 1703 */ +0x2123,0x0000,0x0000, 0x2124,0x0000,0x0000, 0x2125,0x0000,0x0000, /* 1706 */ +0x2126,0x0000,0x0000, 0x2127,0x0000,0x0000, 0x2128,0x0000,0x0000, /* 1709 */ +0x2129,0x0000,0x0000, 0xFBC0,0x970D,0x0000, 0x212A,0x0000,0x0000, /* 170C */ +0x212B,0x0000,0x0000, 0x212C,0x0000,0x0000, 0x212D,0x0000,0x0000, /* 170F */ +0x212E,0x0000,0x0000, 0x212F,0x0000,0x0000, 0x2130,0x0000,0x0000, /* 1712 */ +0xFBC0,0x9715,0x0000, 0xFBC0,0x9716,0x0000, 0xFBC0,0x9717,0x0000, /* 1715 */ +0xFBC0,0x9718,0x0000, 0xFBC0,0x9719,0x0000, 0xFBC0,0x971A,0x0000, /* 1718 */ +0xFBC0,0x971B,0x0000, 0xFBC0,0x971C,0x0000, 0xFBC0,0x971D,0x0000, /* 171B */ +0xFBC0,0x971E,0x0000, 0xFBC0,0x971F,0x0000, 0x2131,0x0000,0x0000, /* 171E */ +0x2132,0x0000,0x0000, 0x2133,0x0000,0x0000, 0x2134,0x0000,0x0000, /* 1721 */ +0x2135,0x0000,0x0000, 0x2136,0x0000,0x0000, 0x2137,0x0000,0x0000, /* 1724 */ +0x2138,0x0000,0x0000, 0x2139,0x0000,0x0000, 0x213A,0x0000,0x0000, /* 1727 */ +0x213B,0x0000,0x0000, 0x213C,0x0000,0x0000, 0x213D,0x0000,0x0000, /* 172A */ +0x213E,0x0000,0x0000, 0x213F,0x0000,0x0000, 0x2140,0x0000,0x0000, /* 172D */ +0x2141,0x0000,0x0000, 0x2142,0x0000,0x0000, 0x2143,0x0000,0x0000, /* 1730 */ +0x2144,0x0000,0x0000, 0x2145,0x0000,0x0000, 0x029C,0x0000,0x0000, /* 1733 */ +0x029D,0x0000,0x0000, 0xFBC0,0x9737,0x0000, 0xFBC0,0x9738,0x0000, /* 1736 */ +0xFBC0,0x9739,0x0000, 0xFBC0,0x973A,0x0000, 0xFBC0,0x973B,0x0000, /* 1739 */ +0xFBC0,0x973C,0x0000, 0xFBC0,0x973D,0x0000, 0xFBC0,0x973E,0x0000, /* 173C */ +0xFBC0,0x973F,0x0000, 0x2146,0x0000,0x0000, 0x2147,0x0000,0x0000, /* 173F */ +0x2148,0x0000,0x0000, 0x2149,0x0000,0x0000, 0x214A,0x0000,0x0000, /* 1742 */ +0x214B,0x0000,0x0000, 0x214C,0x0000,0x0000, 0x214D,0x0000,0x0000, /* 1745 */ +0x214E,0x0000,0x0000, 0x214F,0x0000,0x0000, 0x2150,0x0000,0x0000, /* 1748 */ +0x2151,0x0000,0x0000, 0x2152,0x0000,0x0000, 0x2153,0x0000,0x0000, /* 174B */ +0x2154,0x0000,0x0000, 0x2155,0x0000,0x0000, 0x2156,0x0000,0x0000, /* 174E */ +0x2157,0x0000,0x0000, 0x2158,0x0000,0x0000, 0x2159,0x0000,0x0000, /* 1751 */ +0xFBC0,0x9754,0x0000, 0xFBC0,0x9755,0x0000, 0xFBC0,0x9756,0x0000, /* 1754 */ +0xFBC0,0x9757,0x0000, 0xFBC0,0x9758,0x0000, 0xFBC0,0x9759,0x0000, /* 1757 */ +0xFBC0,0x975A,0x0000, 0xFBC0,0x975B,0x0000, 0xFBC0,0x975C,0x0000, /* 175A */ +0xFBC0,0x975D,0x0000, 0xFBC0,0x975E,0x0000, 0xFBC0,0x975F,0x0000, /* 175D */ +0x215A,0x0000,0x0000, 0x215B,0x0000,0x0000, 0x215C,0x0000,0x0000, /* 1760 */ +0x215D,0x0000,0x0000, 0x215E,0x0000,0x0000, 0x215F,0x0000,0x0000, /* 1763 */ +0x2160,0x0000,0x0000, 0x2161,0x0000,0x0000, 0x2162,0x0000,0x0000, /* 1766 */ +0x2163,0x0000,0x0000, 0x2164,0x0000,0x0000, 0x2165,0x0000,0x0000, /* 1769 */ +0x2166,0x0000,0x0000, 0xFBC0,0x976D,0x0000, 0x2167,0x0000,0x0000, /* 176C */ +0x2168,0x0000,0x0000, 0x2169,0x0000,0x0000, 0xFBC0,0x9771,0x0000, /* 176F */ +0x216A,0x0000,0x0000, 0x216B,0x0000,0x0000, 0xFBC0,0x9774,0x0000, /* 1772 */ +0xFBC0,0x9775,0x0000, 0xFBC0,0x9776,0x0000, 0xFBC0,0x9777,0x0000, /* 1775 */ +0xFBC0,0x9778,0x0000, 0xFBC0,0x9779,0x0000, 0xFBC0,0x977A,0x0000, /* 1778 */ +0xFBC0,0x977B,0x0000, 0xFBC0,0x977C,0x0000, 0xFBC0,0x977D,0x0000, /* 177B */ +0xFBC0,0x977E,0x0000, 0xFBC0,0x977F,0x0000, 0x2263,0x0000,0x0000, /* 177E */ +0x2264,0x0000,0x0000, 0x2265,0x0000,0x0000, 0x2266,0x0000,0x0000, /* 1781 */ +0x2267,0x0000,0x0000, 0x2268,0x0000,0x0000, 0x2269,0x0000,0x0000, /* 1784 */ +0x226A,0x0000,0x0000, 0x226B,0x0000,0x0000, 0x226C,0x0000,0x0000, /* 1787 */ +0x226D,0x0000,0x0000, 0x226E,0x0000,0x0000, 0x226F,0x0000,0x0000, /* 178A */ +0x2270,0x0000,0x0000, 0x2271,0x0000,0x0000, 0x2272,0x0000,0x0000, /* 178D */ +0x2273,0x0000,0x0000, 0x2274,0x0000,0x0000, 0x2275,0x0000,0x0000, /* 1790 */ +0x2276,0x0000,0x0000, 0x2277,0x0000,0x0000, 0x2278,0x0000,0x0000, /* 1793 */ +0x2279,0x0000,0x0000, 0x227A,0x0000,0x0000, 0x227B,0x0000,0x0000, /* 1796 */ +0x227C,0x0000,0x0000, 0x227D,0x0000,0x0000, 0x227E,0x0000,0x0000, /* 1799 */ +0x227F,0x0000,0x0000, 0x2280,0x0000,0x0000, 0x2281,0x0000,0x0000, /* 179C */ +0x2282,0x0000,0x0000, 0x2283,0x0000,0x0000, 0x2284,0x0000,0x0000, /* 179F */ +0x2285,0x0000,0x0000, 0x2287,0x0000,0x0000, 0x2288,0x0000,0x0000, /* 17A2 */ +0x2289,0x0000,0x0000, 0x228A,0x0000,0x0000, 0x228B,0x0000,0x0000, /* 17A5 */ +0x228C,0x0000,0x0000, 0x228D,0x0000,0x0000, 0x228E,0x0000,0x0000, /* 17A8 */ +0x228F,0x0000,0x0000, 0x2290,0x0000,0x0000, 0x2291,0x0000,0x0000, /* 17AB */ +0x2292,0x0000,0x0000, 0x2293,0x0000,0x0000, 0x2294,0x0000,0x0000, /* 17AE */ +0x2295,0x0000,0x0000, 0x2296,0x0000,0x0000, 0x2297,0x0000,0x0000, /* 17B1 */ +0x2298,0x0000,0x0000, 0x2299,0x0000,0x0000, 0x229A,0x0000,0x0000, /* 17B4 */ +0x229B,0x0000,0x0000, 0x229C,0x0000,0x0000, 0x229D,0x0000,0x0000, /* 17B7 */ +0x229E,0x0000,0x0000, 0x229F,0x0000,0x0000, 0x22A0,0x0000,0x0000, /* 17BA */ +0x22A1,0x0000,0x0000, 0x22A2,0x0000,0x0000, 0x22A3,0x0000,0x0000, /* 17BD */ +0x22A4,0x0000,0x0000, 0x22A5,0x0000,0x0000, 0x22A6,0x0000,0x0000, /* 17C0 */ +0x22A7,0x0000,0x0000, 0x22A8,0x0000,0x0000, 0x22A9,0x0000,0x0000, /* 17C3 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17C6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17C9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17CC */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17CF */ +0x22AA,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x02A1,0x0000,0x0000, /* 17D2 */ +0x02A2,0x0000,0x0000, 0x0267,0x0000,0x0000, 0x03CB,0x0000,0x0000, /* 17D5 */ +0x03CC,0x0000,0x0000, 0x03CD,0x0000,0x0000, 0x03CE,0x0000,0x0000, /* 17D8 */ +0x11EC,0x0000,0x0000, 0x2286,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17DB */ +0xFBC0,0x97DE,0x0000, 0xFBC0,0x97DF,0x0000, 0x1205,0x0000,0x0000, /* 17DE */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 17E1 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 17E4 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 17E7 */ +0xFBC0,0x97EA,0x0000, 0xFBC0,0x97EB,0x0000, 0xFBC0,0x97EC,0x0000, /* 17EA */ +0xFBC0,0x97ED,0x0000, 0xFBC0,0x97EE,0x0000, 0xFBC0,0x97EF,0x0000, /* 17ED */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 17F0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 17F3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 17F6 */ +0x120E,0x0000,0x0000, 0xFBC0,0x97FA,0x0000, 0xFBC0,0x97FB,0x0000, /* 17F9 */ +0xFBC0,0x97FC,0x0000, 0xFBC0,0x97FD,0x0000, 0xFBC0,0x97FE,0x0000, /* 17FC */ +0xFBC0,0x97FF,0x0000 }; + +uint16 uca520_p018[]= { /* 1800 (3 weights per char) */ +0x039F,0x0000,0x0000, 0x0282,0x0000,0x0000, 0x023B,0x0000,0x0000, /* 1800 */ +0x0287,0x0000,0x0000, 0x0264,0x0000,0x0000, 0x0265,0x0000,0x0000, /* 1803 */ +0x0227,0x0000,0x0000, 0x0228,0x0000,0x0000, 0x023C,0x0000,0x0000, /* 1806 */ +0x0288,0x0000,0x0000, 0x03A0,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1809 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0207,0x0000,0x0000, /* 180C */ +0xFBC0,0x980F,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 180F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1812 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1815 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x981A,0x0000, /* 1818 */ +0xFBC0,0x981B,0x0000, 0xFBC0,0x981C,0x0000, 0xFBC0,0x981D,0x0000, /* 181B */ +0xFBC0,0x981E,0x0000, 0xFBC0,0x981F,0x0000, 0x242F,0x0000,0x0000, /* 181E */ +0x2431,0x0000,0x0000, 0x2434,0x0000,0x0000, 0x243A,0x0000,0x0000, /* 1821 */ +0x243C,0x0000,0x0000, 0x243F,0x0000,0x0000, 0x2441,0x0000,0x0000, /* 1824 */ +0x2444,0x0000,0x0000, 0x2445,0x0000,0x0000, 0x2446,0x0000,0x0000, /* 1827 */ +0x244B,0x0000,0x0000, 0x244D,0x0000,0x0000, 0x2450,0x0000,0x0000, /* 182A */ +0x2452,0x0000,0x0000, 0x2457,0x0000,0x0000, 0x2459,0x0000,0x0000, /* 182D */ +0x245A,0x0000,0x0000, 0x245B,0x0000,0x0000, 0x2462,0x0000,0x0000, /* 1830 */ +0x2465,0x0000,0x0000, 0x2468,0x0000,0x0000, 0x246D,0x0000,0x0000, /* 1833 */ +0x2471,0x0000,0x0000, 0x2474,0x0000,0x0000, 0x2476,0x0000,0x0000, /* 1836 */ +0x2478,0x0000,0x0000, 0x247B,0x0000,0x0000, 0x2480,0x0000,0x0000, /* 1839 */ +0x2481,0x0000,0x0000, 0x2484,0x0000,0x0000, 0x2488,0x0000,0x0000, /* 183C */ +0x248B,0x0000,0x0000, 0x248C,0x0000,0x0000, 0x248D,0x0000,0x0000, /* 183F */ +0x248E,0x0000,0x0000, 0x242E,0x0000,0x0000, 0x2432,0x0000,0x0000, /* 1842 */ +0x2435,0x0000,0x0000, 0x243B,0x0000,0x0000, 0x243D,0x0000,0x0000, /* 1845 */ +0x2440,0x0000,0x0000, 0x2442,0x0000,0x0000, 0x2447,0x0000,0x0000, /* 1848 */ +0x244C,0x0000,0x0000, 0x244E,0x0000,0x0000, 0x2451,0x0000,0x0000, /* 184B */ +0x2453,0x0000,0x0000, 0x2458,0x0000,0x0000, 0x2463,0x0000,0x0000, /* 184E */ +0x2466,0x0000,0x0000, 0x2469,0x0000,0x0000, 0x246E,0x0000,0x0000, /* 1851 */ +0x2482,0x0000,0x0000, 0x2472,0x0000,0x0000, 0x2477,0x0000,0x0000, /* 1854 */ +0x247C,0x0000,0x0000, 0x2486,0x0000,0x0000, 0x2489,0x0000,0x0000, /* 1857 */ +0x248F,0x0000,0x0000, 0x2490,0x0000,0x0000, 0x246B,0x0000,0x0000, /* 185A */ +0x2433,0x0000,0x0000, 0x2436,0x0000,0x0000, 0x2439,0x0000,0x0000, /* 185D */ +0x2443,0x0000,0x0000, 0x243E,0x0000,0x0000, 0x2448,0x0000,0x0000, /* 1860 */ +0x247D,0x0000,0x0000, 0x2454,0x0000,0x0000, 0x2456,0x0000,0x0000, /* 1863 */ +0x244F,0x0000,0x0000, 0x245C,0x0000,0x0000, 0x2464,0x0000,0x0000, /* 1866 */ +0x2467,0x0000,0x0000, 0x246F,0x0000,0x0000, 0x2479,0x0000,0x0000, /* 1869 */ +0x2487,0x0000,0x0000, 0x248A,0x0000,0x0000, 0x2483,0x0000,0x0000, /* 186C */ +0x2485,0x0000,0x0000, 0x2491,0x0000,0x0000, 0x246A,0x0000,0x0000, /* 186F */ +0x2473,0x0000,0x0000, 0x2437,0x0000,0x0000, 0x247E,0x0000,0x0000, /* 1872 */ +0x2475,0x0000,0x0000, 0x247A,0x0000,0x0000, 0x2470,0x0000,0x0000, /* 1875 */ +0xFBC0,0x9878,0x0000, 0xFBC0,0x9879,0x0000, 0xFBC0,0x987A,0x0000, /* 1878 */ +0xFBC0,0x987B,0x0000, 0xFBC0,0x987C,0x0000, 0xFBC0,0x987D,0x0000, /* 187B */ +0xFBC0,0x987E,0x0000, 0xFBC0,0x987F,0x0000, 0x2427,0x0000,0x0000, /* 187E */ +0x2428,0x0000,0x0000, 0x2429,0x0000,0x0000, 0x242A,0x0000,0x0000, /* 1881 */ +0x242B,0x0000,0x0000, 0x242C,0x0000,0x0000, 0x242D,0x0000,0x0000, /* 1884 */ +0x2430,0x0000,0x0000, 0x2438,0x0000,0x0000, 0x247F,0x0000,0x0000, /* 1887 */ +0x2449,0x0000,0x0000, 0x246C,0x0000,0x0000, 0x2492,0x0000,0x0000, /* 188A */ +0x2494,0x0000,0x0000, 0x2495,0x0000,0x0000, 0x2497,0x0000,0x0000, /* 188D */ +0x2498,0x0000,0x0000, 0x249B,0x0000,0x0000, 0x249D,0x0000,0x0000, /* 1890 */ +0x249E,0x0000,0x0000, 0x24A0,0x0000,0x0000, 0x24A2,0x0000,0x0000, /* 1893 */ +0x24A4,0x0000,0x0000, 0x24A5,0x0000,0x0000, 0x2499,0x0000,0x0000, /* 1896 */ +0x24A3,0x0000,0x0000, 0x2455,0x0000,0x0000, 0x244A,0x0000,0x0000, /* 1899 */ +0x245D,0x0000,0x0000, 0x245E,0x0000,0x0000, 0x2493,0x0000,0x0000, /* 189C */ +0x2496,0x0000,0x0000, 0x249A,0x0000,0x0000, 0x249C,0x0000,0x0000, /* 189F */ +0x245F,0x0000,0x0000, 0x24A1,0x0000,0x0000, 0x2460,0x0000,0x0000, /* 18A2 */ +0x2461,0x0000,0x0000, 0x24A6,0x0000,0x0000, 0x24A7,0x0000,0x0000, /* 18A5 */ +0x249F,0x0000,0x0000, 0x24A9,0x0000,0x0000, 0x24A8,0x0000,0x0000, /* 18A8 */ +0xFBC0,0x98AB,0x0000, 0xFBC0,0x98AC,0x0000, 0xFBC0,0x98AD,0x0000, /* 18AB */ +0xFBC0,0x98AE,0x0000, 0xFBC0,0x98AF,0x0000, 0x27A0,0x0000,0x0000, /* 18AE */ +0x27A1,0x0000,0x0000, 0x27A2,0x0000,0x0000, 0x27A3,0x0000,0x0000, /* 18B1 */ +0x27A4,0x0000,0x0000, 0x27A5,0x0000,0x0000, 0x27A6,0x0000,0x0000, /* 18B4 */ +0x27A7,0x0000,0x0000, 0x27A8,0x0000,0x0000, 0x27A9,0x0000,0x0000, /* 18B7 */ +0x27AA,0x0000,0x0000, 0x27AB,0x0000,0x0000, 0x27AC,0x0000,0x0000, /* 18BA */ +0x27AD,0x0000,0x0000, 0x27AE,0x0000,0x0000, 0x27AF,0x0000,0x0000, /* 18BD */ +0x27B0,0x0000,0x0000, 0x27B1,0x0000,0x0000, 0x27B2,0x0000,0x0000, /* 18C0 */ +0x27B3,0x0000,0x0000, 0x27B4,0x0000,0x0000, 0x27B5,0x0000,0x0000, /* 18C3 */ +0x27B6,0x0000,0x0000, 0x27B7,0x0000,0x0000, 0x27B8,0x0000,0x0000, /* 18C6 */ +0x27B9,0x0000,0x0000, 0x27BA,0x0000,0x0000, 0x27BB,0x0000,0x0000, /* 18C9 */ +0x27BC,0x0000,0x0000, 0x27BD,0x0000,0x0000, 0x27BE,0x0000,0x0000, /* 18CC */ +0x27BF,0x0000,0x0000, 0x27C0,0x0000,0x0000, 0x27C1,0x0000,0x0000, /* 18CF */ +0x27C2,0x0000,0x0000, 0x27C3,0x0000,0x0000, 0x27C4,0x0000,0x0000, /* 18D2 */ +0x27C5,0x0000,0x0000, 0x27C6,0x0000,0x0000, 0x27C7,0x0000,0x0000, /* 18D5 */ +0x27C8,0x0000,0x0000, 0x27C9,0x0000,0x0000, 0x27CA,0x0000,0x0000, /* 18D8 */ +0x27CB,0x0000,0x0000, 0x27CC,0x0000,0x0000, 0x27CD,0x0000,0x0000, /* 18DB */ +0x27CE,0x0000,0x0000, 0x27CF,0x0000,0x0000, 0x27D0,0x0000,0x0000, /* 18DE */ +0x27D1,0x0000,0x0000, 0x27D2,0x0000,0x0000, 0x27D3,0x0000,0x0000, /* 18E1 */ +0x27D4,0x0000,0x0000, 0x27D5,0x0000,0x0000, 0x27D6,0x0000,0x0000, /* 18E4 */ +0x27D7,0x0000,0x0000, 0x27D8,0x0000,0x0000, 0x27D9,0x0000,0x0000, /* 18E7 */ +0x27DA,0x0000,0x0000, 0x27DB,0x0000,0x0000, 0x27DC,0x0000,0x0000, /* 18EA */ +0x27DD,0x0000,0x0000, 0x27DE,0x0000,0x0000, 0x27DF,0x0000,0x0000, /* 18ED */ +0x27E0,0x0000,0x0000, 0x27E1,0x0000,0x0000, 0x27E2,0x0000,0x0000, /* 18F0 */ +0x27E3,0x0000,0x0000, 0x27E4,0x0000,0x0000, 0x27E5,0x0000,0x0000, /* 18F3 */ +0xFBC0,0x98F6,0x0000, 0xFBC0,0x98F7,0x0000, 0xFBC0,0x98F8,0x0000, /* 18F6 */ +0xFBC0,0x98F9,0x0000, 0xFBC0,0x98FA,0x0000, 0xFBC0,0x98FB,0x0000, /* 18F9 */ +0xFBC0,0x98FC,0x0000, 0xFBC0,0x98FD,0x0000, 0xFBC0,0x98FE,0x0000, /* 18FC */ +0xFBC0,0x98FF,0x0000 }; + +uint16 uca520_p019[]= { /* 1900 (4 weights per char) */ +0x20EB,0x0000,0x0000,0x0000, 0x20EC,0x0000,0x0000,0x0000, /* 1900 */ +0x20ED,0x0000,0x0000,0x0000, 0x20EE,0x0000,0x0000,0x0000, /* 1902 */ +0x20EF,0x0000,0x0000,0x0000, 0x20F0,0x0000,0x0000,0x0000, /* 1904 */ +0x20F1,0x0000,0x0000,0x0000, 0x20F2,0x0000,0x0000,0x0000, /* 1906 */ +0x20F3,0x0000,0x0000,0x0000, 0x20F4,0x0000,0x0000,0x0000, /* 1908 */ +0x20F5,0x0000,0x0000,0x0000, 0x20F6,0x0000,0x0000,0x0000, /* 190A */ +0x20F7,0x0000,0x0000,0x0000, 0x20F8,0x0000,0x0000,0x0000, /* 190C */ +0x20F9,0x0000,0x0000,0x0000, 0x20FA,0x0000,0x0000,0x0000, /* 190E */ +0x20FB,0x0000,0x0000,0x0000, 0x20FC,0x0000,0x0000,0x0000, /* 1910 */ +0x20FD,0x0000,0x0000,0x0000, 0x20FE,0x0000,0x0000,0x0000, /* 1912 */ +0x20FF,0x0000,0x0000,0x0000, 0x2100,0x0000,0x0000,0x0000, /* 1914 */ +0x2101,0x0000,0x0000,0x0000, 0x2102,0x0000,0x0000,0x0000, /* 1916 */ +0x2103,0x0000,0x0000,0x0000, 0x2104,0x0000,0x0000,0x0000, /* 1918 */ +0x2105,0x0000,0x0000,0x0000, 0x2106,0x0000,0x0000,0x0000, /* 191A */ +0x2107,0x0000,0x0000,0x0000, 0xFBC0,0x991D,0x0000,0x0000, /* 191C */ +0xFBC0,0x991E,0x0000,0x0000, 0xFBC0,0x991F,0x0000,0x0000, /* 191E */ +0x2108,0x0000,0x0000,0x0000, 0x2109,0x0000,0x0000,0x0000, /* 1920 */ +0x210A,0x0000,0x0000,0x0000, 0x210B,0x0000,0x0000,0x0000, /* 1922 */ +0x210C,0x0000,0x0000,0x0000, 0x210D,0x0000,0x0000,0x0000, /* 1924 */ +0x210E,0x0000,0x0000,0x0000, 0x210F,0x0000,0x0000,0x0000, /* 1926 */ +0x2110,0x0000,0x0000,0x0000, 0x2111,0x0000,0x0000,0x0000, /* 1928 */ +0x2112,0x0000,0x0000,0x0000, 0x2113,0x0000,0x0000,0x0000, /* 192A */ +0xFBC0,0x992C,0x0000,0x0000, 0xFBC0,0x992D,0x0000,0x0000, /* 192C */ +0xFBC0,0x992E,0x0000,0x0000, 0xFBC0,0x992F,0x0000,0x0000, /* 192E */ +0x2114,0x0000,0x0000,0x0000, 0x2115,0x0000,0x0000,0x0000, /* 1930 */ +0x2116,0x0000,0x0000,0x0000, 0x2117,0x0000,0x0000,0x0000, /* 1932 */ +0x2118,0x0000,0x0000,0x0000, 0x2119,0x0000,0x0000,0x0000, /* 1934 */ +0x211A,0x0000,0x0000,0x0000, 0x211B,0x0000,0x0000,0x0000, /* 1936 */ +0x211C,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1938 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 193A */ +0xFBC0,0x993C,0x0000,0x0000, 0xFBC0,0x993D,0x0000,0x0000, /* 193C */ +0xFBC0,0x993E,0x0000,0x0000, 0xFBC0,0x993F,0x0000,0x0000, /* 193E */ +0x03C1,0x0000,0x0000,0x0000, 0xFBC0,0x9941,0x0000,0x0000, /* 1940 */ +0xFBC0,0x9942,0x0000,0x0000, 0xFBC0,0x9943,0x0000,0x0000, /* 1942 */ +0x0272,0x0000,0x0000,0x0000, 0x027A,0x0000,0x0000,0x0000, /* 1944 */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1946 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1948 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 194A */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 194C */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 194E */ +0x22AB,0x0000,0x0000,0x0000, 0x22AC,0x0000,0x0000,0x0000, /* 1950 */ +0x22AD,0x0000,0x0000,0x0000, 0x22AE,0x0000,0x0000,0x0000, /* 1952 */ +0x22AF,0x0000,0x0000,0x0000, 0x22B0,0x0000,0x0000,0x0000, /* 1954 */ +0x22B1,0x0000,0x0000,0x0000, 0x22B2,0x0000,0x0000,0x0000, /* 1956 */ +0x22B3,0x0000,0x0000,0x0000, 0x22B4,0x0000,0x0000,0x0000, /* 1958 */ +0x22B5,0x0000,0x0000,0x0000, 0x22B6,0x0000,0x0000,0x0000, /* 195A */ +0x22B7,0x0000,0x0000,0x0000, 0x22B8,0x0000,0x0000,0x0000, /* 195C */ +0x22B9,0x0000,0x0000,0x0000, 0x22BA,0x0000,0x0000,0x0000, /* 195E */ +0x22BB,0x0000,0x0000,0x0000, 0x22BC,0x0000,0x0000,0x0000, /* 1960 */ +0x22BD,0x0000,0x0000,0x0000, 0x22BE,0x0000,0x0000,0x0000, /* 1962 */ +0x22BF,0x0000,0x0000,0x0000, 0x22C0,0x0000,0x0000,0x0000, /* 1964 */ +0x22C1,0x0000,0x0000,0x0000, 0x22C2,0x0000,0x0000,0x0000, /* 1966 */ +0x22C3,0x0000,0x0000,0x0000, 0x22C4,0x0000,0x0000,0x0000, /* 1968 */ +0x22C5,0x0000,0x0000,0x0000, 0x22C6,0x0000,0x0000,0x0000, /* 196A */ +0x22C7,0x0000,0x0000,0x0000, 0x22C8,0x0000,0x0000,0x0000, /* 196C */ +0xFBC0,0x996E,0x0000,0x0000, 0xFBC0,0x996F,0x0000,0x0000, /* 196E */ +0x22C9,0x0000,0x0000,0x0000, 0x22CA,0x0000,0x0000,0x0000, /* 1970 */ +0x22CB,0x0000,0x0000,0x0000, 0x22CC,0x0000,0x0000,0x0000, /* 1972 */ +0x22CD,0x0000,0x0000,0x0000, 0xFBC0,0x9975,0x0000,0x0000, /* 1974 */ +0xFBC0,0x9976,0x0000,0x0000, 0xFBC0,0x9977,0x0000,0x0000, /* 1976 */ +0xFBC0,0x9978,0x0000,0x0000, 0xFBC0,0x9979,0x0000,0x0000, /* 1978 */ +0xFBC0,0x997A,0x0000,0x0000, 0xFBC0,0x997B,0x0000,0x0000, /* 197A */ +0xFBC0,0x997C,0x0000,0x0000, 0xFBC0,0x997D,0x0000,0x0000, /* 197C */ +0xFBC0,0x997E,0x0000,0x0000, 0xFBC0,0x997F,0x0000,0x0000, /* 197E */ +0x22CE,0x0000,0x0000,0x0000, 0x22CF,0x0000,0x0000,0x0000, /* 1980 */ +0x22D0,0x0000,0x0000,0x0000, 0x22D1,0x0000,0x0000,0x0000, /* 1982 */ +0x22D2,0x0000,0x0000,0x0000, 0x22D3,0x0000,0x0000,0x0000, /* 1984 */ +0x22D4,0x0000,0x0000,0x0000, 0x22D5,0x0000,0x0000,0x0000, /* 1986 */ +0x22D6,0x0000,0x0000,0x0000, 0x22D7,0x0000,0x0000,0x0000, /* 1988 */ +0x22D8,0x0000,0x0000,0x0000, 0x22D9,0x0000,0x0000,0x0000, /* 198A */ +0x22DA,0x0000,0x0000,0x0000, 0x22DB,0x0000,0x0000,0x0000, /* 198C */ +0x22DC,0x0000,0x0000,0x0000, 0x22DD,0x0000,0x0000,0x0000, /* 198E */ +0x22DE,0x0000,0x0000,0x0000, 0x22DF,0x0000,0x0000,0x0000, /* 1990 */ +0x22E0,0x0000,0x0000,0x0000, 0x22E1,0x0000,0x0000,0x0000, /* 1992 */ +0x22E2,0x0000,0x0000,0x0000, 0x22E3,0x0000,0x0000,0x0000, /* 1994 */ +0x22E4,0x0000,0x0000,0x0000, 0x22E5,0x0000,0x0000,0x0000, /* 1996 */ +0x22E6,0x0000,0x0000,0x0000, 0x22E7,0x0000,0x0000,0x0000, /* 1998 */ +0x22E8,0x0000,0x0000,0x0000, 0x22E9,0x0000,0x0000,0x0000, /* 199A */ +0x22EA,0x0000,0x0000,0x0000, 0x22EB,0x0000,0x0000,0x0000, /* 199C */ +0x22EC,0x0000,0x0000,0x0000, 0x22ED,0x0000,0x0000,0x0000, /* 199E */ +0x22EE,0x0000,0x0000,0x0000, 0x22EF,0x0000,0x0000,0x0000, /* 19A0 */ +0x22F0,0x0000,0x0000,0x0000, 0x22F1,0x0000,0x0000,0x0000, /* 19A2 */ +0x22F2,0x0000,0x0000,0x0000, 0x22F3,0x0000,0x0000,0x0000, /* 19A4 */ +0x22F4,0x0000,0x0000,0x0000, 0x22F5,0x0000,0x0000,0x0000, /* 19A6 */ +0x22F6,0x0000,0x0000,0x0000, 0x22F7,0x0000,0x0000,0x0000, /* 19A8 */ +0x22F8,0x0000,0x0000,0x0000, 0x22F9,0x0000,0x0000,0x0000, /* 19AA */ +0xFBC0,0x99AC,0x0000,0x0000, 0xFBC0,0x99AD,0x0000,0x0000, /* 19AC */ +0xFBC0,0x99AE,0x0000,0x0000, 0xFBC0,0x99AF,0x0000,0x0000, /* 19AE */ +0x22FA,0x0000,0x0000,0x0000, 0x22FB,0x0000,0x0000,0x0000, /* 19B0 */ +0x22FC,0x0000,0x0000,0x0000, 0x22FD,0x0000,0x0000,0x0000, /* 19B2 */ +0x22FE,0x0000,0x0000,0x0000, 0x22FF,0x0000,0x0000,0x0000, /* 19B4 */ +0x2300,0x0000,0x0000,0x0000, 0x2301,0x0000,0x0000,0x0000, /* 19B6 */ +0x2302,0x0000,0x0000,0x0000, 0x2303,0x0000,0x0000,0x0000, /* 19B8 */ +0x2304,0x0000,0x0000,0x0000, 0x2305,0x0000,0x0000,0x0000, /* 19BA */ +0x2306,0x0000,0x0000,0x0000, 0x2307,0x0000,0x0000,0x0000, /* 19BC */ +0x2308,0x0000,0x0000,0x0000, 0x2309,0x0000,0x0000,0x0000, /* 19BE */ +0x230A,0x0000,0x0000,0x0000, 0x230B,0x0000,0x0000,0x0000, /* 19C0 */ +0x230C,0x0000,0x0000,0x0000, 0x230D,0x0000,0x0000,0x0000, /* 19C2 */ +0x230E,0x0000,0x0000,0x0000, 0x230F,0x0000,0x0000,0x0000, /* 19C4 */ +0x2310,0x0000,0x0000,0x0000, 0x2311,0x0000,0x0000,0x0000, /* 19C6 */ +0x2312,0x0000,0x0000,0x0000, 0x2313,0x0000,0x0000,0x0000, /* 19C8 */ +0xFBC0,0x99CA,0x0000,0x0000, 0xFBC0,0x99CB,0x0000,0x0000, /* 19CA */ +0xFBC0,0x99CC,0x0000,0x0000, 0xFBC0,0x99CD,0x0000,0x0000, /* 19CC */ +0xFBC0,0x99CE,0x0000,0x0000, 0xFBC0,0x99CF,0x0000,0x0000, /* 19CE */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 19D0 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 19D2 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 19D4 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 19D6 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 19D8 */ +0x1206,0x0000,0x0000,0x0000, 0xFBC0,0x99DB,0x0000,0x0000, /* 19DA */ +0xFBC0,0x99DC,0x0000,0x0000, 0xFBC0,0x99DD,0x0000,0x0000, /* 19DC */ +0x22EA,0x2300,0x0000,0x0000, 0x22EA,0x2300,0x230B,0x0000, /* 19DE */ +0x048E,0x0000,0x0000,0x0000, 0x048F,0x0000,0x0000,0x0000, /* 19E0 */ +0x0490,0x0000,0x0000,0x0000, 0x0491,0x0000,0x0000,0x0000, /* 19E2 */ +0x0492,0x0000,0x0000,0x0000, 0x0493,0x0000,0x0000,0x0000, /* 19E4 */ +0x0494,0x0000,0x0000,0x0000, 0x0495,0x0000,0x0000,0x0000, /* 19E6 */ +0x0496,0x0000,0x0000,0x0000, 0x0497,0x0000,0x0000,0x0000, /* 19E8 */ +0x0498,0x0000,0x0000,0x0000, 0x0499,0x0000,0x0000,0x0000, /* 19EA */ +0x049A,0x0000,0x0000,0x0000, 0x049B,0x0000,0x0000,0x0000, /* 19EC */ +0x049C,0x0000,0x0000,0x0000, 0x049D,0x0000,0x0000,0x0000, /* 19EE */ +0x049E,0x0000,0x0000,0x0000, 0x049F,0x0000,0x0000,0x0000, /* 19F0 */ +0x04A0,0x0000,0x0000,0x0000, 0x04A1,0x0000,0x0000,0x0000, /* 19F2 */ +0x04A2,0x0000,0x0000,0x0000, 0x04A3,0x0000,0x0000,0x0000, /* 19F4 */ +0x04A4,0x0000,0x0000,0x0000, 0x04A5,0x0000,0x0000,0x0000, /* 19F6 */ +0x04A6,0x0000,0x0000,0x0000, 0x04A7,0x0000,0x0000,0x0000, /* 19F8 */ +0x04A8,0x0000,0x0000,0x0000, 0x04A9,0x0000,0x0000,0x0000, /* 19FA */ +0x04AA,0x0000,0x0000,0x0000, 0x04AB,0x0000,0x0000,0x0000, /* 19FC */ +0x04AC,0x0000,0x0000,0x0000, 0x04AD,0x0000,0x0000,0x0000 /* 19FE */ +}; + +uint16 uca520_p01A[]= { /* 1A00 (4 weights per char) */ +0x216C,0x0000,0x0000,0x0000, 0x216D,0x0000,0x0000,0x0000, /* 1A00 */ +0x216E,0x0000,0x0000,0x0000, 0x216F,0x0000,0x0000,0x0000, /* 1A02 */ +0x2170,0x0000,0x0000,0x0000, 0x2171,0x0000,0x0000,0x0000, /* 1A04 */ +0x2172,0x0000,0x0000,0x0000, 0x2173,0x0000,0x0000,0x0000, /* 1A06 */ +0x2174,0x0000,0x0000,0x0000, 0x2175,0x0000,0x0000,0x0000, /* 1A08 */ +0x2176,0x0000,0x0000,0x0000, 0x2177,0x0000,0x0000,0x0000, /* 1A0A */ +0x2178,0x0000,0x0000,0x0000, 0x2179,0x0000,0x0000,0x0000, /* 1A0C */ +0x217A,0x0000,0x0000,0x0000, 0x217B,0x0000,0x0000,0x0000, /* 1A0E */ +0x217C,0x0000,0x0000,0x0000, 0x217D,0x0000,0x0000,0x0000, /* 1A10 */ +0x217E,0x0000,0x0000,0x0000, 0x217F,0x0000,0x0000,0x0000, /* 1A12 */ +0x2180,0x0000,0x0000,0x0000, 0x2181,0x0000,0x0000,0x0000, /* 1A14 */ +0x2182,0x0000,0x0000,0x0000, 0x2183,0x0000,0x0000,0x0000, /* 1A16 */ +0x2184,0x0000,0x0000,0x0000, 0x2185,0x0000,0x0000,0x0000, /* 1A18 */ +0x2186,0x0000,0x0000,0x0000, 0x2187,0x0000,0x0000,0x0000, /* 1A1A */ +0xFBC0,0x9A1C,0x0000,0x0000, 0xFBC0,0x9A1D,0x0000,0x0000, /* 1A1C */ +0x02BA,0x0000,0x0000,0x0000, 0x02BB,0x0000,0x0000,0x0000, /* 1A1E */ +0x2314,0x0000,0x0000,0x0000, 0x2315,0x0000,0x0000,0x0000, /* 1A20 */ +0x2316,0x0000,0x0000,0x0000, 0x2317,0x0000,0x0000,0x0000, /* 1A22 */ +0x2318,0x0000,0x0000,0x0000, 0x2319,0x0000,0x0000,0x0000, /* 1A24 */ +0x231A,0x0000,0x0000,0x0000, 0x231B,0x0000,0x0000,0x0000, /* 1A26 */ +0x231C,0x0000,0x0000,0x0000, 0x231D,0x0000,0x0000,0x0000, /* 1A28 */ +0x231E,0x0000,0x0000,0x0000, 0x231F,0x0000,0x0000,0x0000, /* 1A2A */ +0x2320,0x0000,0x0000,0x0000, 0x2321,0x0000,0x0000,0x0000, /* 1A2C */ +0x2322,0x0000,0x0000,0x0000, 0x2323,0x0000,0x0000,0x0000, /* 1A2E */ +0x2324,0x0000,0x0000,0x0000, 0x2325,0x0000,0x0000,0x0000, /* 1A30 */ +0x2326,0x0000,0x0000,0x0000, 0x2327,0x0000,0x0000,0x0000, /* 1A32 */ +0x2328,0x0000,0x0000,0x0000, 0x2329,0x0000,0x0000,0x0000, /* 1A34 */ +0x232A,0x0000,0x0000,0x0000, 0x232B,0x0000,0x0000,0x0000, /* 1A36 */ +0x232C,0x0000,0x0000,0x0000, 0x232D,0x0000,0x0000,0x0000, /* 1A38 */ +0x232E,0x0000,0x0000,0x0000, 0x232F,0x0000,0x0000,0x0000, /* 1A3A */ +0x2330,0x0000,0x0000,0x0000, 0x2331,0x0000,0x0000,0x0000, /* 1A3C */ +0x2332,0x0000,0x0000,0x0000, 0x2333,0x0000,0x0000,0x0000, /* 1A3E */ +0x2334,0x0000,0x0000,0x0000, 0x2335,0x0000,0x0000,0x0000, /* 1A40 */ +0x2336,0x0000,0x0000,0x0000, 0x2337,0x0000,0x0000,0x0000, /* 1A42 */ +0x2338,0x0000,0x0000,0x0000, 0x2339,0x0000,0x0000,0x0000, /* 1A44 */ +0x233A,0x0000,0x0000,0x0000, 0x233B,0x0000,0x0000,0x0000, /* 1A46 */ +0x233C,0x0000,0x0000,0x0000, 0x233D,0x0000,0x0000,0x0000, /* 1A48 */ +0x233E,0x0000,0x0000,0x0000, 0x233F,0x0000,0x0000,0x0000, /* 1A4A */ +0x2340,0x0000,0x0000,0x0000, 0x2349,0x0000,0x0000,0x0000, /* 1A4C */ +0x234A,0x0000,0x0000,0x0000, 0x234B,0x0000,0x0000,0x0000, /* 1A4E */ +0x234C,0x0000,0x0000,0x0000, 0x234D,0x0000,0x0000,0x0000, /* 1A50 */ +0x234E,0x0000,0x0000,0x0000, 0x2341,0x0000,0x0000,0x0000, /* 1A52 */ +0x233A,0x2360,0x233A,0x0000, 0x2343,0x0000,0x0000,0x0000, /* 1A54 */ +0x2344,0x0000,0x0000,0x0000, 0x2345,0x0000,0x0000,0x0000, /* 1A56 */ +0x231A,0x0000,0x0000,0x0000, 0x231A,0x0000,0x0000,0x0000, /* 1A58 */ +0x232F,0x0000,0x0000,0x0000, 0x232F,0x0000,0x0000,0x0000, /* 1A5A */ +0x2346,0x0000,0x0000,0x0000, 0x2347,0x0000,0x0000,0x0000, /* 1A5C */ +0x2348,0x0000,0x0000,0x0000, 0xFBC0,0x9A5F,0x0000,0x0000, /* 1A5E */ +0x2360,0x0000,0x0000,0x0000, 0x234F,0x0000,0x0000,0x0000, /* 1A60 */ +0x2351,0x0000,0x0000,0x0000, 0x2352,0x0000,0x0000,0x0000, /* 1A62 */ +0x2352,0x0000,0x0000,0x0000, 0x2353,0x0000,0x0000,0x0000, /* 1A64 */ +0x2354,0x0000,0x0000,0x0000, 0x2355,0x0000,0x0000,0x0000, /* 1A66 */ +0x2356,0x0000,0x0000,0x0000, 0x2357,0x0000,0x0000,0x0000, /* 1A68 */ +0x2358,0x0000,0x0000,0x0000, 0x2342,0x0000,0x0000,0x0000, /* 1A6A */ +0x2350,0x0000,0x0000,0x0000, 0x235F,0x0000,0x0000,0x0000, /* 1A6C */ +0x2359,0x0000,0x0000,0x0000, 0x235A,0x0000,0x0000,0x0000, /* 1A6E */ +0x235C,0x0000,0x0000,0x0000, 0x235D,0x0000,0x0000,0x0000, /* 1A70 */ +0x235E,0x0000,0x0000,0x0000, 0x235B,0x0000,0x0000,0x0000, /* 1A72 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A74 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A76 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A78 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7A */ +0x0000,0x0000,0x0000,0x0000, 0xFBC0,0x9A7D,0x0000,0x0000, /* 1A7C */ +0xFBC0,0x9A7E,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1A80 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1A82 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1A84 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1A86 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1A88 */ +0xFBC0,0x9A8A,0x0000,0x0000, 0xFBC0,0x9A8B,0x0000,0x0000, /* 1A8A */ +0xFBC0,0x9A8C,0x0000,0x0000, 0xFBC0,0x9A8D,0x0000,0x0000, /* 1A8C */ +0xFBC0,0x9A8E,0x0000,0x0000, 0xFBC0,0x9A8F,0x0000,0x0000, /* 1A8E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1A90 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1A92 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1A94 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1A96 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1A98 */ +0xFBC0,0x9A9A,0x0000,0x0000, 0xFBC0,0x9A9B,0x0000,0x0000, /* 1A9A */ +0xFBC0,0x9A9C,0x0000,0x0000, 0xFBC0,0x9A9D,0x0000,0x0000, /* 1A9C */ +0xFBC0,0x9A9E,0x0000,0x0000, 0xFBC0,0x9A9F,0x0000,0x0000, /* 1A9E */ +0x03CF,0x0000,0x0000,0x0000, 0x03D0,0x0000,0x0000,0x0000, /* 1AA0 */ +0x03D1,0x0000,0x0000,0x0000, 0x03D2,0x0000,0x0000,0x0000, /* 1AA2 */ +0x03D3,0x0000,0x0000,0x0000, 0x03D4,0x0000,0x0000,0x0000, /* 1AA4 */ +0x03D5,0x0000,0x0000,0x0000, 0x11D3,0x0000,0x0000,0x0000, /* 1AA6 */ +0x02A3,0x0000,0x0000,0x0000, 0x02A4,0x0000,0x0000,0x0000, /* 1AA8 */ +0x02A5,0x0000,0x0000,0x0000, 0x02A6,0x0000,0x0000,0x0000, /* 1AAA */ +0x03D6,0x0000,0x0000,0x0000, 0x03D7,0x0000,0x0000,0x0000, /* 1AAC */ +0xFBC0,0x9AAE,0x0000,0x0000, 0xFBC0,0x9AAF,0x0000,0x0000, /* 1AAE */ +0xFBC0,0x9AB0,0x0000,0x0000, 0xFBC0,0x9AB1,0x0000,0x0000, /* 1AB0 */ +0xFBC0,0x9AB2,0x0000,0x0000, 0xFBC0,0x9AB3,0x0000,0x0000, /* 1AB2 */ +0xFBC0,0x9AB4,0x0000,0x0000, 0xFBC0,0x9AB5,0x0000,0x0000, /* 1AB4 */ +0xFBC0,0x9AB6,0x0000,0x0000, 0xFBC0,0x9AB7,0x0000,0x0000, /* 1AB6 */ +0xFBC0,0x9AB8,0x0000,0x0000, 0xFBC0,0x9AB9,0x0000,0x0000, /* 1AB8 */ +0xFBC0,0x9ABA,0x0000,0x0000, 0xFBC0,0x9ABB,0x0000,0x0000, /* 1ABA */ +0xFBC0,0x9ABC,0x0000,0x0000, 0xFBC0,0x9ABD,0x0000,0x0000, /* 1ABC */ +0xFBC0,0x9ABE,0x0000,0x0000, 0xFBC0,0x9ABF,0x0000,0x0000, /* 1ABE */ +0xFBC0,0x9AC0,0x0000,0x0000, 0xFBC0,0x9AC1,0x0000,0x0000, /* 1AC0 */ +0xFBC0,0x9AC2,0x0000,0x0000, 0xFBC0,0x9AC3,0x0000,0x0000, /* 1AC2 */ +0xFBC0,0x9AC4,0x0000,0x0000, 0xFBC0,0x9AC5,0x0000,0x0000, /* 1AC4 */ +0xFBC0,0x9AC6,0x0000,0x0000, 0xFBC0,0x9AC7,0x0000,0x0000, /* 1AC6 */ +0xFBC0,0x9AC8,0x0000,0x0000, 0xFBC0,0x9AC9,0x0000,0x0000, /* 1AC8 */ +0xFBC0,0x9ACA,0x0000,0x0000, 0xFBC0,0x9ACB,0x0000,0x0000, /* 1ACA */ +0xFBC0,0x9ACC,0x0000,0x0000, 0xFBC0,0x9ACD,0x0000,0x0000, /* 1ACC */ +0xFBC0,0x9ACE,0x0000,0x0000, 0xFBC0,0x9ACF,0x0000,0x0000, /* 1ACE */ +0xFBC0,0x9AD0,0x0000,0x0000, 0xFBC0,0x9AD1,0x0000,0x0000, /* 1AD0 */ +0xFBC0,0x9AD2,0x0000,0x0000, 0xFBC0,0x9AD3,0x0000,0x0000, /* 1AD2 */ +0xFBC0,0x9AD4,0x0000,0x0000, 0xFBC0,0x9AD5,0x0000,0x0000, /* 1AD4 */ +0xFBC0,0x9AD6,0x0000,0x0000, 0xFBC0,0x9AD7,0x0000,0x0000, /* 1AD6 */ +0xFBC0,0x9AD8,0x0000,0x0000, 0xFBC0,0x9AD9,0x0000,0x0000, /* 1AD8 */ +0xFBC0,0x9ADA,0x0000,0x0000, 0xFBC0,0x9ADB,0x0000,0x0000, /* 1ADA */ +0xFBC0,0x9ADC,0x0000,0x0000, 0xFBC0,0x9ADD,0x0000,0x0000, /* 1ADC */ +0xFBC0,0x9ADE,0x0000,0x0000, 0xFBC0,0x9ADF,0x0000,0x0000, /* 1ADE */ +0xFBC0,0x9AE0,0x0000,0x0000, 0xFBC0,0x9AE1,0x0000,0x0000, /* 1AE0 */ +0xFBC0,0x9AE2,0x0000,0x0000, 0xFBC0,0x9AE3,0x0000,0x0000, /* 1AE2 */ +0xFBC0,0x9AE4,0x0000,0x0000, 0xFBC0,0x9AE5,0x0000,0x0000, /* 1AE4 */ +0xFBC0,0x9AE6,0x0000,0x0000, 0xFBC0,0x9AE7,0x0000,0x0000, /* 1AE6 */ +0xFBC0,0x9AE8,0x0000,0x0000, 0xFBC0,0x9AE9,0x0000,0x0000, /* 1AE8 */ +0xFBC0,0x9AEA,0x0000,0x0000, 0xFBC0,0x9AEB,0x0000,0x0000, /* 1AEA */ +0xFBC0,0x9AEC,0x0000,0x0000, 0xFBC0,0x9AED,0x0000,0x0000, /* 1AEC */ +0xFBC0,0x9AEE,0x0000,0x0000, 0xFBC0,0x9AEF,0x0000,0x0000, /* 1AEE */ +0xFBC0,0x9AF0,0x0000,0x0000, 0xFBC0,0x9AF1,0x0000,0x0000, /* 1AF0 */ +0xFBC0,0x9AF2,0x0000,0x0000, 0xFBC0,0x9AF3,0x0000,0x0000, /* 1AF2 */ +0xFBC0,0x9AF4,0x0000,0x0000, 0xFBC0,0x9AF5,0x0000,0x0000, /* 1AF4 */ +0xFBC0,0x9AF6,0x0000,0x0000, 0xFBC0,0x9AF7,0x0000,0x0000, /* 1AF6 */ +0xFBC0,0x9AF8,0x0000,0x0000, 0xFBC0,0x9AF9,0x0000,0x0000, /* 1AF8 */ +0xFBC0,0x9AFA,0x0000,0x0000, 0xFBC0,0x9AFB,0x0000,0x0000, /* 1AFA */ +0xFBC0,0x9AFC,0x0000,0x0000, 0xFBC0,0x9AFD,0x0000,0x0000, /* 1AFC */ +0xFBC0,0x9AFE,0x0000,0x0000, 0xFBC0,0x9AFF,0x0000,0x0000 /* 1AFE */ +}; + +uint16 uca520_p01B[]= { /* 1B00 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B00 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x23A6,0x0000,0x0000, /* 1B03 */ +0x23A7,0x0000,0x0000, 0x23A8,0x0000,0x0000, 0x23A9,0x0000,0x0000, /* 1B06 */ +0x23AA,0x0000,0x0000, 0x23AB,0x0000,0x0000, 0x23AC,0x0000,0x0000, /* 1B09 */ +0x23AD,0x0000,0x0000, 0x23AE,0x0000,0x0000, 0x23AF,0x0000,0x0000, /* 1B0C */ +0x23B0,0x0000,0x0000, 0x23B1,0x0000,0x0000, 0x23B2,0x0000,0x0000, /* 1B0F */ +0x23B3,0x0000,0x0000, 0x23B4,0x0000,0x0000, 0x23B7,0x0000,0x0000, /* 1B12 */ +0x23B8,0x0000,0x0000, 0x23B9,0x0000,0x0000, 0x23BA,0x0000,0x0000, /* 1B15 */ +0x23BB,0x0000,0x0000, 0x23BC,0x0000,0x0000, 0x23BD,0x0000,0x0000, /* 1B18 */ +0x23BE,0x0000,0x0000, 0x23BF,0x0000,0x0000, 0x23C0,0x0000,0x0000, /* 1B1B */ +0x23C1,0x0000,0x0000, 0x23C2,0x0000,0x0000, 0x23C3,0x0000,0x0000, /* 1B1E */ +0x23C4,0x0000,0x0000, 0x23C5,0x0000,0x0000, 0x23C7,0x0000,0x0000, /* 1B21 */ +0x23C8,0x0000,0x0000, 0x23C9,0x0000,0x0000, 0x23CA,0x0000,0x0000, /* 1B24 */ +0x23CB,0x0000,0x0000, 0x23CD,0x0000,0x0000, 0x23CE,0x0000,0x0000, /* 1B27 */ +0x23CF,0x0000,0x0000, 0x23D0,0x0000,0x0000, 0x23D1,0x0000,0x0000, /* 1B2A */ +0x23D2,0x0000,0x0000, 0x23D3,0x0000,0x0000, 0x23D4,0x0000,0x0000, /* 1B2D */ +0x23D6,0x0000,0x0000, 0x23D7,0x0000,0x0000, 0x23D8,0x0000,0x0000, /* 1B30 */ +0x23DB,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x23DC,0x0000,0x0000, /* 1B33 */ +0x23DD,0x0000,0x0000, 0x23DE,0x0000,0x0000, 0x23DF,0x0000,0x0000, /* 1B36 */ +0x23E0,0x0000,0x0000, 0x23E1,0x0000,0x0000, 0x23E2,0x0000,0x0000, /* 1B39 */ +0x23E3,0x0000,0x0000, 0x23E4,0x0000,0x0000, 0x23E5,0x0000,0x0000, /* 1B3C */ +0x23E6,0x0000,0x0000, 0x23E7,0x0000,0x0000, 0x23E8,0x0000,0x0000, /* 1B3F */ +0x23E9,0x0000,0x0000, 0x23EA,0x0000,0x0000, 0x23EB,0x0000,0x0000, /* 1B42 */ +0x23B5,0x0000,0x0000, 0x23B6,0x0000,0x0000, 0x23C6,0x0000,0x0000, /* 1B45 */ +0x23CC,0x0000,0x0000, 0x23D5,0x0000,0x0000, 0x23D9,0x0000,0x0000, /* 1B48 */ +0x23DA,0x0000,0x0000, 0xFBC0,0x9B4C,0x0000, 0xFBC0,0x9B4D,0x0000, /* 1B4B */ +0xFBC0,0x9B4E,0x0000, 0xFBC0,0x9B4F,0x0000, 0x1205,0x0000,0x0000, /* 1B4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1B51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1B54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1B57 */ +0x02BC,0x0000,0x0000, 0x02BD,0x0000,0x0000, 0x028A,0x0000,0x0000, /* 1B5A */ +0x0268,0x0000,0x0000, 0x02A7,0x0000,0x0000, 0x02A8,0x0000,0x0000, /* 1B5D */ +0x0226,0x0000,0x0000, 0x04AE,0x0000,0x0000, 0x04AF,0x0000,0x0000, /* 1B60 */ +0x04B0,0x0000,0x0000, 0x04B1,0x0000,0x0000, 0x04B2,0x0000,0x0000, /* 1B63 */ +0x04B3,0x0000,0x0000, 0x04B4,0x0000,0x0000, 0x04B5,0x0000,0x0000, /* 1B66 */ +0x04B6,0x0000,0x0000, 0x04B7,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B69 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000, /* 1B72 */ +0x04B9,0x0000,0x0000, 0x04BA,0x0000,0x0000, 0x04BB,0x0000,0x0000, /* 1B75 */ +0x04BC,0x0000,0x0000, 0x04BD,0x0000,0x0000, 0x04BE,0x0000,0x0000, /* 1B78 */ +0x04BF,0x0000,0x0000, 0x04C0,0x0000,0x0000, 0xFBC0,0x9B7D,0x0000, /* 1B7B */ +0xFBC0,0x9B7E,0x0000, 0xFBC0,0x9B7F,0x0000, 0x0000,0x0000,0x0000, /* 1B7E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1F1C,0x0000,0x0000, /* 1B81 */ +0x1F1D,0x0000,0x0000, 0x1F1E,0x0000,0x0000, 0x1F1F,0x0000,0x0000, /* 1B84 */ +0x1F20,0x0000,0x0000, 0x1F21,0x0000,0x0000, 0x1F22,0x0000,0x0000, /* 1B87 */ +0x1F23,0x0000,0x0000, 0x1F25,0x0000,0x0000, 0x1F26,0x0000,0x0000, /* 1B8A */ +0x1F27,0x0000,0x0000, 0x1F28,0x0000,0x0000, 0x1F29,0x0000,0x0000, /* 1B8D */ +0x1F2A,0x0000,0x0000, 0x1F2B,0x0000,0x0000, 0x1F2C,0x0000,0x0000, /* 1B90 */ +0x1F2D,0x0000,0x0000, 0x1F2E,0x0000,0x0000, 0x1F2F,0x0000,0x0000, /* 1B93 */ +0x1F30,0x0000,0x0000, 0x1F31,0x0000,0x0000, 0x1F32,0x0000,0x0000, /* 1B96 */ +0x1F33,0x0000,0x0000, 0x1F34,0x0000,0x0000, 0x1F36,0x0000,0x0000, /* 1B99 */ +0x1F38,0x0000,0x0000, 0x1F3A,0x0000,0x0000, 0x1F3B,0x0000,0x0000, /* 1B9C */ +0x1F3C,0x0000,0x0000, 0x1F3E,0x0000,0x0000, 0x1F35,0x0000,0x0000, /* 1B9F */ +0x1F37,0x0000,0x0000, 0x1F39,0x0000,0x0000, 0x1F3F,0x0000,0x0000, /* 1BA2 */ +0x1F40,0x0000,0x0000, 0x1F41,0x0000,0x0000, 0x1F42,0x0000,0x0000, /* 1BA5 */ +0x1F43,0x0000,0x0000, 0x1F44,0x0000,0x0000, 0x1F45,0x0000,0x0000, /* 1BA8 */ +0xFBC0,0x9BAB,0x0000, 0xFBC0,0x9BAC,0x0000, 0xFBC0,0x9BAD,0x0000, /* 1BAB */ +0x1F24,0x0000,0x0000, 0x1F3D,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1BAE */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1BB1 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1BB4 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1BB7 */ +0xFBC0,0x9BBA,0x0000, 0xFBC0,0x9BBB,0x0000, 0xFBC0,0x9BBC,0x0000, /* 1BBA */ +0xFBC0,0x9BBD,0x0000, 0xFBC0,0x9BBE,0x0000, 0xFBC0,0x9BBF,0x0000, /* 1BBD */ +0xFBC0,0x9BC0,0x0000, 0xFBC0,0x9BC1,0x0000, 0xFBC0,0x9BC2,0x0000, /* 1BC0 */ +0xFBC0,0x9BC3,0x0000, 0xFBC0,0x9BC4,0x0000, 0xFBC0,0x9BC5,0x0000, /* 1BC3 */ +0xFBC0,0x9BC6,0x0000, 0xFBC0,0x9BC7,0x0000, 0xFBC0,0x9BC8,0x0000, /* 1BC6 */ +0xFBC0,0x9BC9,0x0000, 0xFBC0,0x9BCA,0x0000, 0xFBC0,0x9BCB,0x0000, /* 1BC9 */ +0xFBC0,0x9BCC,0x0000, 0xFBC0,0x9BCD,0x0000, 0xFBC0,0x9BCE,0x0000, /* 1BCC */ +0xFBC0,0x9BCF,0x0000, 0xFBC0,0x9BD0,0x0000, 0xFBC0,0x9BD1,0x0000, /* 1BCF */ +0xFBC0,0x9BD2,0x0000, 0xFBC0,0x9BD3,0x0000, 0xFBC0,0x9BD4,0x0000, /* 1BD2 */ +0xFBC0,0x9BD5,0x0000, 0xFBC0,0x9BD6,0x0000, 0xFBC0,0x9BD7,0x0000, /* 1BD5 */ +0xFBC0,0x9BD8,0x0000, 0xFBC0,0x9BD9,0x0000, 0xFBC0,0x9BDA,0x0000, /* 1BD8 */ +0xFBC0,0x9BDB,0x0000, 0xFBC0,0x9BDC,0x0000, 0xFBC0,0x9BDD,0x0000, /* 1BDB */ +0xFBC0,0x9BDE,0x0000, 0xFBC0,0x9BDF,0x0000, 0xFBC0,0x9BE0,0x0000, /* 1BDE */ +0xFBC0,0x9BE1,0x0000, 0xFBC0,0x9BE2,0x0000, 0xFBC0,0x9BE3,0x0000, /* 1BE1 */ +0xFBC0,0x9BE4,0x0000, 0xFBC0,0x9BE5,0x0000, 0xFBC0,0x9BE6,0x0000, /* 1BE4 */ +0xFBC0,0x9BE7,0x0000, 0xFBC0,0x9BE8,0x0000, 0xFBC0,0x9BE9,0x0000, /* 1BE7 */ +0xFBC0,0x9BEA,0x0000, 0xFBC0,0x9BEB,0x0000, 0xFBC0,0x9BEC,0x0000, /* 1BEA */ +0xFBC0,0x9BED,0x0000, 0xFBC0,0x9BEE,0x0000, 0xFBC0,0x9BEF,0x0000, /* 1BED */ +0xFBC0,0x9BF0,0x0000, 0xFBC0,0x9BF1,0x0000, 0xFBC0,0x9BF2,0x0000, /* 1BF0 */ +0xFBC0,0x9BF3,0x0000, 0xFBC0,0x9BF4,0x0000, 0xFBC0,0x9BF5,0x0000, /* 1BF3 */ +0xFBC0,0x9BF6,0x0000, 0xFBC0,0x9BF7,0x0000, 0xFBC0,0x9BF8,0x0000, /* 1BF6 */ +0xFBC0,0x9BF9,0x0000, 0xFBC0,0x9BFA,0x0000, 0xFBC0,0x9BFB,0x0000, /* 1BF9 */ +0xFBC0,0x9BFC,0x0000, 0xFBC0,0x9BFD,0x0000, 0xFBC0,0x9BFE,0x0000, /* 1BFC */ +0xFBC0,0x9BFF,0x0000 }; + +uint16 uca520_p01C[]= { /* 1C00 (3 weights per char) */ +0x207D,0x0000,0x0000, 0x207E,0x0000,0x0000, 0x207F,0x0000,0x0000, /* 1C00 */ +0x2080,0x0000,0x0000, 0x2081,0x0000,0x0000, 0x2082,0x0000,0x0000, /* 1C03 */ +0x2083,0x0000,0x0000, 0x2084,0x0000,0x0000, 0x2085,0x0000,0x0000, /* 1C06 */ +0x2086,0x0000,0x0000, 0x208A,0x0000,0x0000, 0x208B,0x0000,0x0000, /* 1C09 */ +0x208C,0x0000,0x0000, 0x208D,0x0000,0x0000, 0x208E,0x0000,0x0000, /* 1C0C */ +0x208F,0x0000,0x0000, 0x2090,0x0000,0x0000, 0x2091,0x0000,0x0000, /* 1C0F */ +0x2092,0x0000,0x0000, 0x2093,0x0000,0x0000, 0x2094,0x0000,0x0000, /* 1C12 */ +0x2095,0x0000,0x0000, 0x2096,0x0000,0x0000, 0x2097,0x0000,0x0000, /* 1C15 */ +0x2098,0x0000,0x0000, 0x2099,0x0000,0x0000, 0x209A,0x0000,0x0000, /* 1C18 */ +0x209C,0x0000,0x0000, 0x209E,0x0000,0x0000, 0x209F,0x0000,0x0000, /* 1C1B */ +0x20A0,0x0000,0x0000, 0x20A1,0x0000,0x0000, 0x20A2,0x0000,0x0000, /* 1C1E */ +0x20A3,0x0000,0x0000, 0x20A4,0x0000,0x0000, 0x20A5,0x0000,0x0000, /* 1C21 */ +0x209B,0x0000,0x0000, 0x209D,0x0000,0x0000, 0x20A7,0x0000,0x0000, /* 1C24 */ +0x20A8,0x0000,0x0000, 0x20A9,0x0000,0x0000, 0x20AA,0x0000,0x0000, /* 1C27 */ +0x20AB,0x0000,0x0000, 0x20AC,0x0000,0x0000, 0x20AD,0x0000,0x0000, /* 1C2A */ +0x20AE,0x0000,0x0000, 0x20AF,0x0000,0x0000, 0x20B0,0x0000,0x0000, /* 1C2D */ +0x20B1,0x0000,0x0000, 0x20B2,0x0000,0x0000, 0x20B3,0x0000,0x0000, /* 1C30 */ +0x20B4,0x0000,0x0000, 0x20B5,0x0000,0x0000, 0x20B6,0x0000,0x0000, /* 1C33 */ +0x20A6,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x9C38,0x0000, /* 1C36 */ +0xFBC0,0x9C39,0x0000, 0xFBC0,0x9C3A,0x0000, 0x0298,0x0000,0x0000, /* 1C39 */ +0x0299,0x0000,0x0000, 0x03BE,0x0000,0x0000, 0x03BF,0x0000,0x0000, /* 1C3C */ +0x03C0,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1C3F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1C42 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1C45 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x9C4A,0x0000, /* 1C48 */ +0xFBC0,0x9C4B,0x0000, 0xFBC0,0x9C4C,0x0000, 0x2087,0x0000,0x0000, /* 1C4B */ +0x2088,0x0000,0x0000, 0x2089,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1C4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1C51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1C54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1C57 */ +0x24AA,0x0000,0x0000, 0x24AB,0x0000,0x0000, 0x24AC,0x0000,0x0000, /* 1C5A */ +0x24AD,0x0000,0x0000, 0x24AE,0x0000,0x0000, 0x24AF,0x0000,0x0000, /* 1C5D */ +0x24B0,0x0000,0x0000, 0x24B1,0x0000,0x0000, 0x24B2,0x0000,0x0000, /* 1C60 */ +0x24B3,0x0000,0x0000, 0x24B4,0x0000,0x0000, 0x24B5,0x0000,0x0000, /* 1C63 */ +0x24B6,0x0000,0x0000, 0x24B7,0x0000,0x0000, 0x24B8,0x0000,0x0000, /* 1C66 */ +0x24B9,0x0000,0x0000, 0x24BA,0x0000,0x0000, 0x24BB,0x0000,0x0000, /* 1C69 */ +0x24BC,0x0000,0x0000, 0x24BD,0x0000,0x0000, 0x24BE,0x0000,0x0000, /* 1C6C */ +0x24BF,0x0000,0x0000, 0x24C0,0x0000,0x0000, 0x24C1,0x0000,0x0000, /* 1C6F */ +0x24C2,0x0000,0x0000, 0x24C3,0x0000,0x0000, 0x24C4,0x0000,0x0000, /* 1C72 */ +0x24C5,0x0000,0x0000, 0x24C6,0x0000,0x0000, 0x24C7,0x0000,0x0000, /* 1C75 */ +0x24C8,0x0000,0x0000, 0x24C9,0x0000,0x0000, 0x24CA,0x0000,0x0000, /* 1C78 */ +0x24CB,0x0000,0x0000, 0x24CC,0x0000,0x0000, 0x24CD,0x0000,0x0000, /* 1C7B */ +0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000, 0xFBC0,0x9C80,0x0000, /* 1C7E */ +0xFBC0,0x9C81,0x0000, 0xFBC0,0x9C82,0x0000, 0xFBC0,0x9C83,0x0000, /* 1C81 */ +0xFBC0,0x9C84,0x0000, 0xFBC0,0x9C85,0x0000, 0xFBC0,0x9C86,0x0000, /* 1C84 */ +0xFBC0,0x9C87,0x0000, 0xFBC0,0x9C88,0x0000, 0xFBC0,0x9C89,0x0000, /* 1C87 */ +0xFBC0,0x9C8A,0x0000, 0xFBC0,0x9C8B,0x0000, 0xFBC0,0x9C8C,0x0000, /* 1C8A */ +0xFBC0,0x9C8D,0x0000, 0xFBC0,0x9C8E,0x0000, 0xFBC0,0x9C8F,0x0000, /* 1C8D */ +0xFBC0,0x9C90,0x0000, 0xFBC0,0x9C91,0x0000, 0xFBC0,0x9C92,0x0000, /* 1C90 */ +0xFBC0,0x9C93,0x0000, 0xFBC0,0x9C94,0x0000, 0xFBC0,0x9C95,0x0000, /* 1C93 */ +0xFBC0,0x9C96,0x0000, 0xFBC0,0x9C97,0x0000, 0xFBC0,0x9C98,0x0000, /* 1C96 */ +0xFBC0,0x9C99,0x0000, 0xFBC0,0x9C9A,0x0000, 0xFBC0,0x9C9B,0x0000, /* 1C99 */ +0xFBC0,0x9C9C,0x0000, 0xFBC0,0x9C9D,0x0000, 0xFBC0,0x9C9E,0x0000, /* 1C9C */ +0xFBC0,0x9C9F,0x0000, 0xFBC0,0x9CA0,0x0000, 0xFBC0,0x9CA1,0x0000, /* 1C9F */ +0xFBC0,0x9CA2,0x0000, 0xFBC0,0x9CA3,0x0000, 0xFBC0,0x9CA4,0x0000, /* 1CA2 */ +0xFBC0,0x9CA5,0x0000, 0xFBC0,0x9CA6,0x0000, 0xFBC0,0x9CA7,0x0000, /* 1CA5 */ +0xFBC0,0x9CA8,0x0000, 0xFBC0,0x9CA9,0x0000, 0xFBC0,0x9CAA,0x0000, /* 1CA8 */ +0xFBC0,0x9CAB,0x0000, 0xFBC0,0x9CAC,0x0000, 0xFBC0,0x9CAD,0x0000, /* 1CAB */ +0xFBC0,0x9CAE,0x0000, 0xFBC0,0x9CAF,0x0000, 0xFBC0,0x9CB0,0x0000, /* 1CAE */ +0xFBC0,0x9CB1,0x0000, 0xFBC0,0x9CB2,0x0000, 0xFBC0,0x9CB3,0x0000, /* 1CB1 */ +0xFBC0,0x9CB4,0x0000, 0xFBC0,0x9CB5,0x0000, 0xFBC0,0x9CB6,0x0000, /* 1CB4 */ +0xFBC0,0x9CB7,0x0000, 0xFBC0,0x9CB8,0x0000, 0xFBC0,0x9CB9,0x0000, /* 1CB7 */ +0xFBC0,0x9CBA,0x0000, 0xFBC0,0x9CBB,0x0000, 0xFBC0,0x9CBC,0x0000, /* 1CBA */ +0xFBC0,0x9CBD,0x0000, 0xFBC0,0x9CBE,0x0000, 0xFBC0,0x9CBF,0x0000, /* 1CBD */ +0xFBC0,0x9CC0,0x0000, 0xFBC0,0x9CC1,0x0000, 0xFBC0,0x9CC2,0x0000, /* 1CC0 */ +0xFBC0,0x9CC3,0x0000, 0xFBC0,0x9CC4,0x0000, 0xFBC0,0x9CC5,0x0000, /* 1CC3 */ +0xFBC0,0x9CC6,0x0000, 0xFBC0,0x9CC7,0x0000, 0xFBC0,0x9CC8,0x0000, /* 1CC6 */ +0xFBC0,0x9CC9,0x0000, 0xFBC0,0x9CCA,0x0000, 0xFBC0,0x9CCB,0x0000, /* 1CC9 */ +0xFBC0,0x9CCC,0x0000, 0xFBC0,0x9CCD,0x0000, 0xFBC0,0x9CCE,0x0000, /* 1CCC */ +0xFBC0,0x9CCF,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CCF */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CE7 */ +0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CEA */ +0x0000,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CED */ +0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CF0 */ +0xFBC0,0x9CF3,0x0000, 0xFBC0,0x9CF4,0x0000, 0xFBC0,0x9CF5,0x0000, /* 1CF3 */ +0xFBC0,0x9CF6,0x0000, 0xFBC0,0x9CF7,0x0000, 0xFBC0,0x9CF8,0x0000, /* 1CF6 */ +0xFBC0,0x9CF9,0x0000, 0xFBC0,0x9CFA,0x0000, 0xFBC0,0x9CFB,0x0000, /* 1CF9 */ +0xFBC0,0x9CFC,0x0000, 0xFBC0,0x9CFD,0x0000, 0xFBC0,0x9CFE,0x0000, /* 1CFC */ +0xFBC0,0x9CFF,0x0000 }; + +uint16 uca520_p01D[]= { /* 1D00 (3 weights per char) */ +0x1213,0x0000,0x0000, 0x1216,0x0000,0x0000, 0x1217,0x0000,0x0000, /* 1D00 */ +0x1232,0x0000,0x0000, 0x1241,0x0000,0x0000, 0x1254,0x0000,0x0000, /* 1D03 */ +0x1255,0x0000,0x0000, 0x126F,0x0000,0x0000, 0x1292,0x0000,0x0000, /* 1D06 */ +0x12F9,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x1322,0x0000,0x0000, /* 1D09 */ +0x1339,0x0000,0x0000, 0x1363,0x0000,0x0000, 0x1376,0x0000,0x0000, /* 1D0C */ +0x1392,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x1393,0x0000,0x0000, /* 1D0F */ +0x139F,0x0000,0x0000, 0x1399,0x0000,0x0000, 0x1398,0x0000,0x0000, /* 1D12 */ +0x13B2,0x0000,0x0000, 0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, /* 1D15 */ +0x13B7,0x0000,0x0000, 0x13E3,0x0000,0x0000, 0x13ED,0x0000,0x0000, /* 1D18 */ +0x1437,0x0000,0x0000, 0x1457,0x0000,0x0000, 0x1458,0x0000,0x0000, /* 1D1B */ +0x1459,0x0000,0x0000, 0x1471,0x0000,0x0000, 0x147F,0x0000,0x0000, /* 1D1E */ +0x1491,0x0000,0x0000, 0x14B1,0x0000,0x0000, 0x14CE,0x0000,0x0000, /* 1D21 */ +0x1516,0x0000,0x0000, 0x1517,0x0000,0x0000, 0x1548,0x0000,0x0000, /* 1D24 */ +0x1556,0x0000,0x0000, 0x155C,0x0000,0x0000, 0x1561,0x0000,0x0000, /* 1D27 */ +0x156C,0x0000,0x0000, 0x1661,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D2A */ +0x120F,0x126B,0x0000, 0x1225,0x0000,0x0000, 0x1231,0x0000,0x0000, /* 1D2D */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x1276,0x0000,0x0000, /* 1D30 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D33 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D36 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x1375,0x0000,0x0000, /* 1D39 */ +0x138E,0x0000,0x0000, 0x13AE,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D3C */ +0x13DA,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D3F */ +0x148D,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1218,0x0000,0x0000, /* 1D42 */ +0x121C,0x0000,0x0000, 0x1217,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D45 */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 1D48 */ +0x1280,0x0000,0x0000, 0x1292,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D4B */ +0x12F9,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D4E */ +0x138A,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x139A,0x0000,0x0000, /* 1D51 */ +0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D54 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1458,0x0000,0x0000, /* 1D57 */ +0x146D,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x1517,0x0000,0x0000, /* 1D5A */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D5D */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D60 */ +0x13DA,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D63 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D66 */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x145A,0x0000,0x0000, /* 1D69 */ +0x1233,0x0000,0x0000, 0x1256,0x0000,0x0000, 0x12A8,0x0000,0x0000, /* 1D6C */ +0x1364,0x0000,0x0000, 0x1377,0x0000,0x0000, 0x13BA,0x0000,0x0000, /* 1D6F */ +0x13E8,0x0000,0x0000, 0x1404,0x0000,0x0000, 0x1415,0x0000,0x0000, /* 1D72 */ +0x143D,0x0000,0x0000, 0x14B6,0x0000,0x0000, 0x12C9,0x0000,0x0000, /* 1D75 */ +0x1678,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x1433,0x12D3,0x0000, /* 1D78 */ +0x12FE,0x0000,0x0000, 0x1304,0x0000,0x0000, 0x13B8,0x0000,0x0000, /* 1D7B */ +0x145F,0x0000,0x0000, 0x147A,0x0000,0x0000, 0x1234,0x0000,0x0000, /* 1D7E */ +0x1257,0x0000,0x0000, 0x12A9,0x0000,0x0000, 0x12C0,0x0000,0x0000, /* 1D81 */ +0x1323,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1365,0x0000,0x0000, /* 1D84 */ +0x1380,0x0000,0x0000, 0x13BB,0x0000,0x0000, 0x13F2,0x0000,0x0000, /* 1D87 */ +0x1416,0x0000,0x0000, 0x1425,0x0000,0x0000, 0x1481,0x0000,0x0000, /* 1D8A */ +0x149B,0x0000,0x0000, 0x14B7,0x0000,0x0000, 0x1215,0x0000,0x0000, /* 1D8D */ +0x1220,0x0000,0x0000, 0x1260,0x0000,0x0000, 0x1274,0x0000,0x0000, /* 1D90 */ +0x1284,0x0000,0x0000, 0x1291,0x0000,0x0000, 0x127F,0x0000,0x0000, /* 1D93 */ +0x12FF,0x0000,0x0000, 0x13A0,0x0000,0x0000, 0x142E,0x0000,0x0000, /* 1D96 */ +0x1460,0x0000,0x0000, 0x14D3,0x0000,0x0000, 0x1221,0x0000,0x0000, /* 1D99 */ +0x123D,0x0000,0x0000, 0x124A,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D9C */ +0x128D,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x1316,0x0000,0x0000, /* 1D9F */ +0x12B4,0x0000,0x0000, 0x1461,0x0000,0x0000, 0x12FA,0x0000,0x0000, /* 1DA2 */ +0x1300,0x0000,0x0000, 0x12F4,0x0000,0x0000, 0x12FE,0x0000,0x0000, /* 1DA5 */ +0x1312,0x0000,0x0000, 0x1349,0x0000,0x0000, 0x1348,0x0000,0x0000, /* 1DA8 */ +0x1334,0x0000,0x0000, 0x1366,0x0000,0x0000, 0x1472,0x0000,0x0000, /* 1DAB */ +0x1378,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1371,0x0000,0x0000, /* 1DAE */ +0x13A5,0x0000,0x0000, 0x13C3,0x0000,0x0000, 0x1417,0x0000,0x0000, /* 1DB1 */ +0x1421,0x0000,0x0000, 0x143E,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 1DB4 */ +0x1476,0x0000,0x0000, 0x1457,0x0000,0x0000, 0x1482,0x0000,0x0000, /* 1DB7 */ +0x1489,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14BC,0x0000,0x0000, /* 1DBA */ +0x14C0,0x0000,0x0000, 0x14CA,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1DBD */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC0 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC3 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC6 */ +0x0000,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DCC */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DCF */ +0x14ED,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x126B,0x0000, /* 1DD2 */ +0x120F,0x138E,0x0000, 0x120F,0x147B,0x0000, 0x123D,0x0000,0x0000, /* 1DD5 */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1DD8 */ +0x12B8,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1DDB */ +0x1334,0x0000,0x0000, 0x1363,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1DDE */ +0x1371,0x0000,0x0000, 0x13DE,0x0000,0x0000, 0x13E2,0x0000,0x0000, /* 1DE1 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1DE4 */ +0xFBC0,0x9DE7,0x0000, 0xFBC0,0x9DE8,0x0000, 0xFBC0,0x9DE9,0x0000, /* 1DE7 */ +0xFBC0,0x9DEA,0x0000, 0xFBC0,0x9DEB,0x0000, 0xFBC0,0x9DEC,0x0000, /* 1DEA */ +0xFBC0,0x9DED,0x0000, 0xFBC0,0x9DEE,0x0000, 0xFBC0,0x9DEF,0x0000, /* 1DED */ +0xFBC0,0x9DF0,0x0000, 0xFBC0,0x9DF1,0x0000, 0xFBC0,0x9DF2,0x0000, /* 1DF0 */ +0xFBC0,0x9DF3,0x0000, 0xFBC0,0x9DF4,0x0000, 0xFBC0,0x9DF5,0x0000, /* 1DF3 */ +0xFBC0,0x9DF6,0x0000, 0xFBC0,0x9DF7,0x0000, 0xFBC0,0x9DF8,0x0000, /* 1DF6 */ +0xFBC0,0x9DF9,0x0000, 0xFBC0,0x9DFA,0x0000, 0xFBC0,0x9DFB,0x0000, /* 1DF9 */ +0xFBC0,0x9DFC,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DFC */ +0x0000,0x0000,0x0000 }; + +uint16 uca520_p01E[]= { /* 1E00 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1E00 */ +0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1E03 */ +0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1E06 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E09 */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E0C */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E0F */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E12 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E15 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E18 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E1B */ +0x12A3,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1E1E */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E21 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E24 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E27 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1E2A */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1E2D */ +0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1E30 */ +0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1E33 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1E36 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1E39 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1E3C */ +0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1E3F */ +0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E42 */ +0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E45 */ +0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E48 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E4B */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E4E */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E51 */ +0x13B3,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1E54 */ +0x13B3,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E57 */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E5A */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E5D */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E60 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E63 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E66 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E69 */ +0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E6C */ +0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E6F */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E72 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E75 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E78 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1E7B */ +0x147B,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E7E */ +0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E81 */ +0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E84 */ +0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E87 */ +0x1497,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1E8A */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1E8D */ +0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1E90 */ +0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1E93 */ +0x12D3,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E96 */ +0x149C,0x0000,0x0000, 0x120F,0x150D,0x0000, 0x1410,0x0000,0x0000, /* 1E99 */ +0x141F,0x0000,0x0000, 0x1420,0x0000,0x0000, 0x1410,0x1410,0x0000, /* 1E9C */ +0x126A,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1E9F */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA2 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA5 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA8 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EAB */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EAE */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EB1 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EB4 */ +0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EB7 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EBA */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EBD */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EC0 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EC3 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1EC6 */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1EC9 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ECC */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ECF */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED2 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED5 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED8 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EDB */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EDE */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EE1 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EE4 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EE7 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EEA */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EED */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF0 */ +0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF3 */ +0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF6 */ +0x149C,0x0000,0x0000, 0x1330,0x1330,0x0000, 0x1330,0x1330,0x0000, /* 1EF9 */ +0x1488,0x0000,0x0000, 0x1488,0x0000,0x0000, 0x14AC,0x0000,0x0000, /* 1EFC */ +0x14AC,0x0000,0x0000 }; + +uint16 uca520_p01F[]= { /* 1F00 (3 weights per char) */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F00 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F03 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F06 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F09 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F0C */ +0x1545,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F0F */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F12 */ +0x154A,0x0000,0x0000, 0xFBC0,0x9F16,0x0000, 0xFBC0,0x9F17,0x0000, /* 1F15 */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F18 */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F1B */ +0xFBC0,0x9F1E,0x0000, 0xFBC0,0x9F1F,0x0000, 0x1550,0x0000,0x0000, /* 1F1E */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F21 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F24 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F27 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F2A */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F2D */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F30 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F33 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F36 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F39 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F3C */ +0x1552,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F3F */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F42 */ +0x155A,0x0000,0x0000, 0xFBC0,0x9F46,0x0000, 0xFBC0,0x9F47,0x0000, /* 1F45 */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F48 */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F4B */ +0xFBC0,0x9F4E,0x0000, 0xFBC0,0x9F4F,0x0000, 0x1568,0x0000,0x0000, /* 1F4E */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F51 */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F54 */ +0x1568,0x0000,0x0000, 0xFBC0,0x9F58,0x0000, 0x1568,0x0000,0x0000, /* 1F57 */ +0xFBC0,0x9F5A,0x0000, 0x1568,0x0000,0x0000, 0xFBC0,0x9F5C,0x0000, /* 1F5A */ +0x1568,0x0000,0x0000, 0xFBC0,0x9F5E,0x0000, 0x1568,0x0000,0x0000, /* 1F5D */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F60 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F63 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F66 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F69 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F6C */ +0x156D,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F6F */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F72 */ +0x1550,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F75 */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F78 */ +0x1568,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F7B */ +0xFBC0,0x9F7E,0x0000, 0xFBC0,0x9F7F,0x0000, 0x1545,0x0000,0x0000, /* 1F7E */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F81 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F84 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F87 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F8A */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F8D */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F90 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F93 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F96 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F99 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F9C */ +0x1550,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F9F */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA2 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA5 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA8 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FAB */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FAE */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FB1 */ +0x1545,0x0000,0x0000, 0xFBC0,0x9FB5,0x0000, 0x1545,0x0000,0x0000, /* 1FB4 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FB7 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FBA */ +0x0219,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x0219,0x0000,0x0000, /* 1FBD */ +0x021F,0x0000,0x0000, 0x0216,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1FC0 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0xFBC0,0x9FC5,0x0000, /* 1FC3 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1FC6 */ +0x154A,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1FC9 */ +0x1550,0x0000,0x0000, 0x0219,0x0000,0x0000, 0x0219,0x0000,0x0000, /* 1FCC */ +0x0219,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FCF */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0xFBC0,0x9FD4,0x0000, /* 1FD2 */ +0xFBC0,0x9FD5,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FD5 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FD8 */ +0x1552,0x0000,0x0000, 0xFBC0,0x9FDC,0x0000, 0x021A,0x0000,0x0000, /* 1FDB */ +0x021A,0x0000,0x0000, 0x021A,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FDE */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE1 */ +0x1560,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE4 */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE7 */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1FEA */ +0x0216,0x0000,0x0000, 0x0216,0x0000,0x0000, 0x020E,0x0000,0x0000, /* 1FED */ +0xFBC0,0x9FF0,0x0000, 0xFBC0,0x9FF1,0x0000, 0x156D,0x0000,0x0000, /* 1FF0 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0xFBC0,0x9FF5,0x0000, /* 1FF3 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1FF6 */ +0x155A,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FF9 */ +0x156D,0x0000,0x0000, 0x020F,0x0000,0x0000, 0x021A,0x0000,0x0000, /* 1FFC */ +0xFBC0,0x9FFF,0x0000 }; + +uint16 uca520_p020[]= { /* 2000 (5 weights per char) */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2000 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2001 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2002 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2003 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2004 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2005 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2006 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2007 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2008 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2009 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 200A */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200B */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200C */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200D */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200E */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200F */ +0x0229,0x0000,0x0000,0x0000,0x0000, /* 2010 */ +0x0229,0x0000,0x0000,0x0000,0x0000, /* 2011 */ +0x022A,0x0000,0x0000,0x0000,0x0000, /* 2012 */ +0x022B,0x0000,0x0000,0x0000,0x0000, /* 2013 */ +0x022C,0x0000,0x0000,0x0000,0x0000, /* 2014 */ +0x022D,0x0000,0x0000,0x0000,0x0000, /* 2015 */ +0x055A,0x0000,0x0000,0x0000,0x0000, /* 2016 */ +0x021E,0x0000,0x0000,0x0000,0x0000, /* 2017 */ +0x02EF,0x0000,0x0000,0x0000,0x0000, /* 2018 */ +0x02F0,0x0000,0x0000,0x0000,0x0000, /* 2019 */ +0x02F1,0x0000,0x0000,0x0000,0x0000, /* 201A */ +0x02F2,0x0000,0x0000,0x0000,0x0000, /* 201B */ +0x02F6,0x0000,0x0000,0x0000,0x0000, /* 201C */ +0x02F7,0x0000,0x0000,0x0000,0x0000, /* 201D */ +0x02F8,0x0000,0x0000,0x0000,0x0000, /* 201E */ +0x02F9,0x0000,0x0000,0x0000,0x0000, /* 201F */ +0x036A,0x0000,0x0000,0x0000,0x0000, /* 2020 */ +0x036B,0x0000,0x0000,0x0000,0x0000, /* 2021 */ +0x036C,0x0000,0x0000,0x0000,0x0000, /* 2022 */ +0x036D,0x0000,0x0000,0x0000,0x0000, /* 2023 */ +0x0281,0x0000,0x0000,0x0000,0x0000, /* 2024 */ +0x0281,0x0281,0x0000,0x0000,0x0000, /* 2025 */ +0x0281,0x0281,0x0281,0x0000,0x0000, /* 2026 */ +0x036E,0x0000,0x0000,0x0000,0x0000, /* 2027 */ +0x0208,0x0000,0x0000,0x0000,0x0000, /* 2028 */ +0x0209,0x0000,0x0000,0x0000,0x0000, /* 2029 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202A */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202B */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202C */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202D */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202E */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 202F */ +0x0365,0x0000,0x0000,0x0000,0x0000, /* 2030 */ +0x0367,0x0000,0x0000,0x0000,0x0000, /* 2031 */ +0x0372,0x0000,0x0000,0x0000,0x0000, /* 2032 */ +0x0372,0x0372,0x0000,0x0000,0x0000, /* 2033 */ +0x0372,0x0372,0x0372,0x0000,0x0000, /* 2034 */ +0x0373,0x0000,0x0000,0x0000,0x0000, /* 2035 */ +0x0373,0x0373,0x0000,0x0000,0x0000, /* 2036 */ +0x0373,0x0373,0x0373,0x0000,0x0000, /* 2037 */ +0x0376,0x0000,0x0000,0x0000,0x0000, /* 2038 */ +0x02F3,0x0000,0x0000,0x0000,0x0000, /* 2039 */ +0x02F4,0x0000,0x0000,0x0000,0x0000, /* 203A */ +0x0377,0x0000,0x0000,0x0000,0x0000, /* 203B */ +0x026E,0x026E,0x0000,0x0000,0x0000, /* 203C */ +0x027F,0x0000,0x0000,0x0000,0x0000, /* 203D */ +0x0213,0x0000,0x0000,0x0000,0x0000, /* 203E */ +0x0378,0x0000,0x0000,0x0000,0x0000, /* 203F */ +0x037A,0x0000,0x0000,0x0000,0x0000, /* 2040 */ +0x037C,0x0000,0x0000,0x0000,0x0000, /* 2041 */ +0x037D,0x0000,0x0000,0x0000,0x0000, /* 2042 */ +0x036F,0x0000,0x0000,0x0000,0x0000, /* 2043 */ +0x035D,0x0000,0x0000,0x0000,0x0000, /* 2044 */ +0x030B,0x0000,0x0000,0x0000,0x0000, /* 2045 */ +0x030C,0x0000,0x0000,0x0000,0x0000, /* 2046 */ +0x0273,0x0273,0x0000,0x0000,0x0000, /* 2047 */ +0x0273,0x026E,0x0000,0x0000,0x0000, /* 2048 */ +0x026E,0x0273,0x0000,0x0000,0x0000, /* 2049 */ +0x0361,0x0000,0x0000,0x0000,0x0000, /* 204A */ +0x0353,0x0000,0x0000,0x0000,0x0000, /* 204B */ +0x0370,0x0000,0x0000,0x0000,0x0000, /* 204C */ +0x0371,0x0000,0x0000,0x0000,0x0000, /* 204D */ +0x0358,0x0000,0x0000,0x0000,0x0000, /* 204E */ +0x0245,0x0000,0x0000,0x0000,0x0000, /* 204F */ +0x037B,0x0000,0x0000,0x0000,0x0000, /* 2050 */ +0x0359,0x0000,0x0000,0x0000,0x0000, /* 2051 */ +0x0369,0x0000,0x0000,0x0000,0x0000, /* 2052 */ +0x022E,0x0000,0x0000,0x0000,0x0000, /* 2053 */ +0x0379,0x0000,0x0000,0x0000,0x0000, /* 2054 */ +0x02D3,0x0000,0x0000,0x0000,0x0000, /* 2055 */ +0x02D4,0x0000,0x0000,0x0000,0x0000, /* 2056 */ +0x0372,0x0372,0x0372,0x0372,0x0000, /* 2057 */ +0x02D5,0x0000,0x0000,0x0000,0x0000, /* 2058 */ +0x02D6,0x0000,0x0000,0x0000,0x0000, /* 2059 */ +0x02D7,0x0000,0x0000,0x0000,0x0000, /* 205A */ +0x02D8,0x0000,0x0000,0x0000,0x0000, /* 205B */ +0x02D9,0x0000,0x0000,0x0000,0x0000, /* 205C */ +0x02DA,0x0000,0x0000,0x0000,0x0000, /* 205D */ +0x02DB,0x0000,0x0000,0x0000,0x0000, /* 205E */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 205F */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2060 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2061 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2062 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2063 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2064 */ +0xFBC0,0xA065,0x0000,0x0000,0x0000, /* 2065 */ +0xFBC0,0xA066,0x0000,0x0000,0x0000, /* 2066 */ +0xFBC0,0xA067,0x0000,0x0000,0x0000, /* 2067 */ +0xFBC0,0xA068,0x0000,0x0000,0x0000, /* 2068 */ +0xFBC0,0xA069,0x0000,0x0000,0x0000, /* 2069 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206A */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206B */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206C */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206D */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206E */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206F */ +0x1205,0x0000,0x0000,0x0000,0x0000, /* 2070 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2071 */ +0xFBC0,0xA072,0x0000,0x0000,0x0000, /* 2072 */ +0xFBC0,0xA073,0x0000,0x0000,0x0000, /* 2073 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 2074 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 2075 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2076 */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 2077 */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 2078 */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 2079 */ +0x0550,0x0000,0x0000,0x0000,0x0000, /* 207A */ +0x055C,0x0000,0x0000,0x0000,0x0000, /* 207B */ +0x0555,0x0000,0x0000,0x0000,0x0000, /* 207C */ +0x02FF,0x0000,0x0000,0x0000,0x0000, /* 207D */ +0x0300,0x0000,0x0000,0x0000,0x0000, /* 207E */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 207F */ +0x1205,0x0000,0x0000,0x0000,0x0000, /* 2080 */ +0x1206,0x0000,0x0000,0x0000,0x0000, /* 2081 */ +0x1207,0x0000,0x0000,0x0000,0x0000, /* 2082 */ +0x1208,0x0000,0x0000,0x0000,0x0000, /* 2083 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 2084 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 2085 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2086 */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 2087 */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 2088 */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 2089 */ +0x0550,0x0000,0x0000,0x0000,0x0000, /* 208A */ +0x055C,0x0000,0x0000,0x0000,0x0000, /* 208B */ +0x0555,0x0000,0x0000,0x0000,0x0000, /* 208C */ +0x02FF,0x0000,0x0000,0x0000,0x0000, /* 208D */ +0x0300,0x0000,0x0000,0x0000,0x0000, /* 208E */ +0xFBC0,0xA08F,0x0000,0x0000,0x0000, /* 208F */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 2090 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 2091 */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 2092 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 2093 */ +0x127B,0x0000,0x0000,0x0000,0x0000, /* 2094 */ +0xFBC0,0xA095,0x0000,0x0000,0x0000, /* 2095 */ +0xFBC0,0xA096,0x0000,0x0000,0x0000, /* 2096 */ +0xFBC0,0xA097,0x0000,0x0000,0x0000, /* 2097 */ +0xFBC0,0xA098,0x0000,0x0000,0x0000, /* 2098 */ +0xFBC0,0xA099,0x0000,0x0000,0x0000, /* 2099 */ +0xFBC0,0xA09A,0x0000,0x0000,0x0000, /* 209A */ +0xFBC0,0xA09B,0x0000,0x0000,0x0000, /* 209B */ +0xFBC0,0xA09C,0x0000,0x0000,0x0000, /* 209C */ +0xFBC0,0xA09D,0x0000,0x0000,0x0000, /* 209D */ +0xFBC0,0xA09E,0x0000,0x0000,0x0000, /* 209E */ +0xFBC0,0xA09F,0x0000,0x0000,0x0000, /* 209F */ +0x11ED,0x0000,0x0000,0x0000,0x0000, /* 20A0 */ +0x11EE,0x0000,0x0000,0x0000,0x0000, /* 20A1 */ +0x11EF,0x0000,0x0000,0x0000,0x0000, /* 20A2 */ +0x11F0,0x0000,0x0000,0x0000,0x0000, /* 20A3 */ +0x11F1,0x0000,0x0000,0x0000,0x0000, /* 20A4 */ +0x11F2,0x0000,0x0000,0x0000,0x0000, /* 20A5 */ +0x11F3,0x0000,0x0000,0x0000,0x0000, /* 20A6 */ +0x11F4,0x0000,0x0000,0x0000,0x0000, /* 20A7 */ +0x13DA,0x1410,0x0000,0x0000,0x0000, /* 20A8 */ +0x11F5,0x0000,0x0000,0x0000,0x0000, /* 20A9 */ +0x11F6,0x0000,0x0000,0x0000,0x0000, /* 20AA */ +0x11F7,0x0000,0x0000,0x0000,0x0000, /* 20AB */ +0x11F8,0x0000,0x0000,0x0000,0x0000, /* 20AC */ +0x11F9,0x0000,0x0000,0x0000,0x0000, /* 20AD */ +0x11FA,0x0000,0x0000,0x0000,0x0000, /* 20AE */ +0x11FB,0x0000,0x0000,0x0000,0x0000, /* 20AF */ +0x11FC,0x0000,0x0000,0x0000,0x0000, /* 20B0 */ +0x11FD,0x0000,0x0000,0x0000,0x0000, /* 20B1 */ +0x11FE,0x0000,0x0000,0x0000,0x0000, /* 20B2 */ +0x11FF,0x0000,0x0000,0x0000,0x0000, /* 20B3 */ +0x1200,0x0000,0x0000,0x0000,0x0000, /* 20B4 */ +0x1201,0x0000,0x0000,0x0000,0x0000, /* 20B5 */ +0x1202,0x0000,0x0000,0x0000,0x0000, /* 20B6 */ +0x1203,0x0000,0x0000,0x0000,0x0000, /* 20B7 */ +0x1204,0x0000,0x0000,0x0000,0x0000, /* 20B8 */ +0xFBC0,0xA0B9,0x0000,0x0000,0x0000, /* 20B9 */ +0xFBC0,0xA0BA,0x0000,0x0000,0x0000, /* 20BA */ +0xFBC0,0xA0BB,0x0000,0x0000,0x0000, /* 20BB */ +0xFBC0,0xA0BC,0x0000,0x0000,0x0000, /* 20BC */ +0xFBC0,0xA0BD,0x0000,0x0000,0x0000, /* 20BD */ +0xFBC0,0xA0BE,0x0000,0x0000,0x0000, /* 20BE */ +0xFBC0,0xA0BF,0x0000,0x0000,0x0000, /* 20BF */ +0xFBC0,0xA0C0,0x0000,0x0000,0x0000, /* 20C0 */ +0xFBC0,0xA0C1,0x0000,0x0000,0x0000, /* 20C1 */ +0xFBC0,0xA0C2,0x0000,0x0000,0x0000, /* 20C2 */ +0xFBC0,0xA0C3,0x0000,0x0000,0x0000, /* 20C3 */ +0xFBC0,0xA0C4,0x0000,0x0000,0x0000, /* 20C4 */ +0xFBC0,0xA0C5,0x0000,0x0000,0x0000, /* 20C5 */ +0xFBC0,0xA0C6,0x0000,0x0000,0x0000, /* 20C6 */ +0xFBC0,0xA0C7,0x0000,0x0000,0x0000, /* 20C7 */ +0xFBC0,0xA0C8,0x0000,0x0000,0x0000, /* 20C8 */ +0xFBC0,0xA0C9,0x0000,0x0000,0x0000, /* 20C9 */ +0xFBC0,0xA0CA,0x0000,0x0000,0x0000, /* 20CA */ +0xFBC0,0xA0CB,0x0000,0x0000,0x0000, /* 20CB */ +0xFBC0,0xA0CC,0x0000,0x0000,0x0000, /* 20CC */ +0xFBC0,0xA0CD,0x0000,0x0000,0x0000, /* 20CD */ +0xFBC0,0xA0CE,0x0000,0x0000,0x0000, /* 20CE */ +0xFBC0,0xA0CF,0x0000,0x0000,0x0000, /* 20CF */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D0 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D1 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D2 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D3 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D4 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D5 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D6 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D7 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D8 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D9 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DA */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DB */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DC */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DD */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DE */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DF */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E0 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E1 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E2 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E3 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E4 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E5 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E6 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E7 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E8 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E9 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EA */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EB */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EC */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20ED */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EE */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EF */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20F0 */ +0xFBC0,0xA0F1,0x0000,0x0000,0x0000, /* 20F1 */ +0xFBC0,0xA0F2,0x0000,0x0000,0x0000, /* 20F2 */ +0xFBC0,0xA0F3,0x0000,0x0000,0x0000, /* 20F3 */ +0xFBC0,0xA0F4,0x0000,0x0000,0x0000, /* 20F4 */ +0xFBC0,0xA0F5,0x0000,0x0000,0x0000, /* 20F5 */ +0xFBC0,0xA0F6,0x0000,0x0000,0x0000, /* 20F6 */ +0xFBC0,0xA0F7,0x0000,0x0000,0x0000, /* 20F7 */ +0xFBC0,0xA0F8,0x0000,0x0000,0x0000, /* 20F8 */ +0xFBC0,0xA0F9,0x0000,0x0000,0x0000, /* 20F9 */ +0xFBC0,0xA0FA,0x0000,0x0000,0x0000, /* 20FA */ +0xFBC0,0xA0FB,0x0000,0x0000,0x0000, /* 20FB */ +0xFBC0,0xA0FC,0x0000,0x0000,0x0000, /* 20FC */ +0xFBC0,0xA0FD,0x0000,0x0000,0x0000, /* 20FD */ +0xFBC0,0xA0FE,0x0000,0x0000,0x0000, /* 20FE */ +0xFBC0,0xA0FF,0x0000,0x0000,0x0000 /* 20FF */ +}; + +uint16 uca520_p021[]= { /* 2100 (5 weights per char) */ +0x120F,0x035C,0x123D,0x0000,0x0000, /* 2100 */ +0x120F,0x035C,0x1410,0x0000,0x0000, /* 2101 */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 2102 */ +0x044B,0x123D,0x0000,0x0000,0x0000, /* 2103 */ +0x04C1,0x0000,0x0000,0x0000,0x0000, /* 2104 */ +0x123D,0x035C,0x138E,0x0000,0x0000, /* 2105 */ +0x123D,0x035C,0x1453,0x0000,0x0000, /* 2106 */ +0x1280,0x0000,0x0000,0x0000,0x0000, /* 2107 */ +0x04C2,0x0000,0x0000,0x0000,0x0000, /* 2108 */ +0x044B,0x12A3,0x0000,0x0000,0x0000, /* 2109 */ +0x12B0,0x0000,0x0000,0x0000,0x0000, /* 210A */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210B */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210C */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210D */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210E */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210F */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2110 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2111 */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 2112 */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 2113 */ +0x04C3,0x0000,0x0000,0x0000,0x0000, /* 2114 */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 2115 */ +0x136D,0x138E,0x0000,0x0000,0x0000, /* 2116 */ +0x04C4,0x0000,0x0000,0x0000,0x0000, /* 2117 */ +0x04C5,0x0000,0x0000,0x0000,0x0000, /* 2118 */ +0x13B3,0x0000,0x0000,0x0000,0x0000, /* 2119 */ +0x13C8,0x0000,0x0000,0x0000,0x0000, /* 211A */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211B */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211C */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211D */ +0x04C6,0x0000,0x0000,0x0000,0x0000, /* 211E */ +0x04C7,0x0000,0x0000,0x0000,0x0000, /* 211F */ +0x1410,0x135F,0x0000,0x0000,0x0000, /* 2120 */ +0x1433,0x126B,0x1330,0x0000,0x0000, /* 2121 */ +0x1433,0x135F,0x0000,0x0000,0x0000, /* 2122 */ +0x04C8,0x0000,0x0000,0x0000,0x0000, /* 2123 */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 2124 */ +0x04C9,0x0000,0x0000,0x0000,0x0000, /* 2125 */ +0x156D,0x0000,0x0000,0x0000,0x0000, /* 2126 */ +0x04CA,0x0000,0x0000,0x0000,0x0000, /* 2127 */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 2128 */ +0x04CB,0x0000,0x0000,0x0000,0x0000, /* 2129 */ +0x131E,0x0000,0x0000,0x0000,0x0000, /* 212A */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 212B */ +0x1225,0x0000,0x0000,0x0000,0x0000, /* 212C */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 212D */ +0x04CC,0x0000,0x0000,0x0000,0x0000, /* 212E */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 212F */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 2130 */ +0x12A3,0x0000,0x0000,0x0000,0x0000, /* 2131 */ +0x12AE,0x0000,0x0000,0x0000,0x0000, /* 2132 */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 2133 */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 2134 */ +0x185C,0x0000,0x0000,0x0000,0x0000, /* 2135 */ +0x185D,0x0000,0x0000,0x0000,0x0000, /* 2136 */ +0x185E,0x0000,0x0000,0x0000,0x0000, /* 2137 */ +0x185F,0x0000,0x0000,0x0000,0x0000, /* 2138 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2139 */ +0x04CD,0x0000,0x0000,0x0000,0x0000, /* 213A */ +0x12A3,0x120F,0x1497,0x0000,0x0000, /* 213B */ +0x155B,0x0000,0x0000,0x0000,0x0000, /* 213C */ +0x1547,0x0000,0x0000,0x0000,0x0000, /* 213D */ +0x1547,0x0000,0x0000,0x0000,0x0000, /* 213E */ +0x155B,0x0000,0x0000,0x0000,0x0000, /* 213F */ +0x054F,0x0000,0x0000,0x0000,0x0000, /* 2140 */ +0x04CE,0x0000,0x0000,0x0000,0x0000, /* 2141 */ +0x04CF,0x0000,0x0000,0x0000,0x0000, /* 2142 */ +0x04D0,0x0000,0x0000,0x0000,0x0000, /* 2143 */ +0x04D1,0x0000,0x0000,0x0000,0x0000, /* 2144 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 2145 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 2146 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 2147 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2148 */ +0x1305,0x0000,0x0000,0x0000,0x0000, /* 2149 */ +0x04D2,0x0000,0x0000,0x0000,0x0000, /* 214A */ +0x0360,0x0000,0x0000,0x0000,0x0000, /* 214B */ +0x04D3,0x0000,0x0000,0x0000,0x0000, /* 214C */ +0x04D4,0x0000,0x0000,0x0000,0x0000, /* 214D */ +0x12AE,0x0000,0x0000,0x0000,0x0000, /* 214E */ +0x04D5,0x0000,0x0000,0x0000,0x0000, /* 214F */ +0x1206,0x035D,0x120C,0x0000,0x0000, /* 2150 */ +0x1206,0x035D,0x120E,0x0000,0x0000, /* 2151 */ +0x1206,0x035D,0x1206,0x1205,0x0000, /* 2152 */ +0x1206,0x035D,0x1208,0x0000,0x0000, /* 2153 */ +0x1207,0x035D,0x1208,0x0000,0x0000, /* 2154 */ +0x1206,0x035D,0x120A,0x0000,0x0000, /* 2155 */ +0x1207,0x035D,0x120A,0x0000,0x0000, /* 2156 */ +0x1208,0x035D,0x120A,0x0000,0x0000, /* 2157 */ +0x1209,0x035D,0x120A,0x0000,0x0000, /* 2158 */ +0x1206,0x035D,0x120B,0x0000,0x0000, /* 2159 */ +0x120A,0x035D,0x120B,0x0000,0x0000, /* 215A */ +0x1206,0x035D,0x120D,0x0000,0x0000, /* 215B */ +0x1208,0x035D,0x120D,0x0000,0x0000, /* 215C */ +0x120A,0x035D,0x120D,0x0000,0x0000, /* 215D */ +0x120C,0x035D,0x120D,0x0000,0x0000, /* 215E */ +0x1206,0x035D,0x0000,0x0000,0x0000, /* 215F */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2160 */ +0x12EC,0x12EC,0x0000,0x0000,0x0000, /* 2161 */ +0x12EC,0x12EC,0x12EC,0x0000,0x0000, /* 2162 */ +0x12EC,0x147B,0x0000,0x0000,0x0000, /* 2163 */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 2164 */ +0x147B,0x12EC,0x0000,0x0000,0x0000, /* 2165 */ +0x147B,0x12EC,0x12EC,0x0000,0x0000, /* 2166 */ +0x147B,0x12EC,0x12EC,0x12EC,0x0000, /* 2167 */ +0x12EC,0x1497,0x0000,0x0000,0x0000, /* 2168 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 2169 */ +0x1497,0x12EC,0x0000,0x0000,0x0000, /* 216A */ +0x1497,0x12EC,0x12EC,0x0000,0x0000, /* 216B */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 216C */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 216D */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 216E */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 216F */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2170 */ +0x12EC,0x12EC,0x0000,0x0000,0x0000, /* 2171 */ +0x12EC,0x12EC,0x12EC,0x0000,0x0000, /* 2172 */ +0x12EC,0x147B,0x0000,0x0000,0x0000, /* 2173 */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 2174 */ +0x147B,0x12EC,0x0000,0x0000,0x0000, /* 2175 */ +0x147B,0x12EC,0x12EC,0x0000,0x0000, /* 2176 */ +0x147B,0x12EC,0x12EC,0x12EC,0x0000, /* 2177 */ +0x12EC,0x1497,0x0000,0x0000,0x0000, /* 2178 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 2179 */ +0x1497,0x12EC,0x0000,0x0000,0x0000, /* 217A */ +0x1497,0x12EC,0x12EC,0x0000,0x0000, /* 217B */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 217C */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 217D */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 217E */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 217F */ +0x1130,0x0000,0x0000,0x0000,0x0000, /* 2180 */ +0x1131,0x0000,0x0000,0x0000,0x0000, /* 2181 */ +0x1132,0x0000,0x0000,0x0000,0x0000, /* 2182 */ +0x124E,0x0000,0x0000,0x0000,0x0000, /* 2183 */ +0x124E,0x0000,0x0000,0x0000,0x0000, /* 2184 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2185 */ +0x1133,0x0000,0x0000,0x0000,0x0000, /* 2186 */ +0x1134,0x0000,0x0000,0x0000,0x0000, /* 2187 */ +0x1135,0x0000,0x0000,0x0000,0x0000, /* 2188 */ +0x1205,0x035D,0x1208,0x0000,0x0000, /* 2189 */ +0xFBC0,0xA18A,0x0000,0x0000,0x0000, /* 218A */ +0xFBC0,0xA18B,0x0000,0x0000,0x0000, /* 218B */ +0xFBC0,0xA18C,0x0000,0x0000,0x0000, /* 218C */ +0xFBC0,0xA18D,0x0000,0x0000,0x0000, /* 218D */ +0xFBC0,0xA18E,0x0000,0x0000,0x0000, /* 218E */ +0xFBC0,0xA18F,0x0000,0x0000,0x0000, /* 218F */ +0x04D6,0x0000,0x0000,0x0000,0x0000, /* 2190 */ +0x04D8,0x0000,0x0000,0x0000,0x0000, /* 2191 */ +0x04D7,0x0000,0x0000,0x0000,0x0000, /* 2192 */ +0x04D9,0x0000,0x0000,0x0000,0x0000, /* 2193 */ +0x04DA,0x0000,0x0000,0x0000,0x0000, /* 2194 */ +0x04DB,0x0000,0x0000,0x0000,0x0000, /* 2195 */ +0x04DC,0x0000,0x0000,0x0000,0x0000, /* 2196 */ +0x04DD,0x0000,0x0000,0x0000,0x0000, /* 2197 */ +0x04DE,0x0000,0x0000,0x0000,0x0000, /* 2198 */ +0x04DF,0x0000,0x0000,0x0000,0x0000, /* 2199 */ +0x04D6,0x0000,0x0000,0x0000,0x0000, /* 219A */ +0x04D7,0x0000,0x0000,0x0000,0x0000, /* 219B */ +0x04E0,0x0000,0x0000,0x0000,0x0000, /* 219C */ +0x04E1,0x0000,0x0000,0x0000,0x0000, /* 219D */ +0x04E2,0x0000,0x0000,0x0000,0x0000, /* 219E */ +0x04E3,0x0000,0x0000,0x0000,0x0000, /* 219F */ +0x04E4,0x0000,0x0000,0x0000,0x0000, /* 21A0 */ +0x04E5,0x0000,0x0000,0x0000,0x0000, /* 21A1 */ +0x04E6,0x0000,0x0000,0x0000,0x0000, /* 21A2 */ +0x04E7,0x0000,0x0000,0x0000,0x0000, /* 21A3 */ +0x04E8,0x0000,0x0000,0x0000,0x0000, /* 21A4 */ +0x04E9,0x0000,0x0000,0x0000,0x0000, /* 21A5 */ +0x04EA,0x0000,0x0000,0x0000,0x0000, /* 21A6 */ +0x04EB,0x0000,0x0000,0x0000,0x0000, /* 21A7 */ +0x04EC,0x0000,0x0000,0x0000,0x0000, /* 21A8 */ +0x04ED,0x0000,0x0000,0x0000,0x0000, /* 21A9 */ +0x04EE,0x0000,0x0000,0x0000,0x0000, /* 21AA */ +0x04EF,0x0000,0x0000,0x0000,0x0000, /* 21AB */ +0x04F0,0x0000,0x0000,0x0000,0x0000, /* 21AC */ +0x04F1,0x0000,0x0000,0x0000,0x0000, /* 21AD */ +0x04DA,0x0000,0x0000,0x0000,0x0000, /* 21AE */ +0x04F2,0x0000,0x0000,0x0000,0x0000, /* 21AF */ +0x04F3,0x0000,0x0000,0x0000,0x0000, /* 21B0 */ +0x04F4,0x0000,0x0000,0x0000,0x0000, /* 21B1 */ +0x04F5,0x0000,0x0000,0x0000,0x0000, /* 21B2 */ +0x04F6,0x0000,0x0000,0x0000,0x0000, /* 21B3 */ +0x04F7,0x0000,0x0000,0x0000,0x0000, /* 21B4 */ +0x04F8,0x0000,0x0000,0x0000,0x0000, /* 21B5 */ +0x04F9,0x0000,0x0000,0x0000,0x0000, /* 21B6 */ +0x04FA,0x0000,0x0000,0x0000,0x0000, /* 21B7 */ +0x04FB,0x0000,0x0000,0x0000,0x0000, /* 21B8 */ +0x04FC,0x0000,0x0000,0x0000,0x0000, /* 21B9 */ +0x04FD,0x0000,0x0000,0x0000,0x0000, /* 21BA */ +0x04FE,0x0000,0x0000,0x0000,0x0000, /* 21BB */ +0x04FF,0x0000,0x0000,0x0000,0x0000, /* 21BC */ +0x0500,0x0000,0x0000,0x0000,0x0000, /* 21BD */ +0x0501,0x0000,0x0000,0x0000,0x0000, /* 21BE */ +0x0502,0x0000,0x0000,0x0000,0x0000, /* 21BF */ +0x0503,0x0000,0x0000,0x0000,0x0000, /* 21C0 */ +0x0504,0x0000,0x0000,0x0000,0x0000, /* 21C1 */ +0x0505,0x0000,0x0000,0x0000,0x0000, /* 21C2 */ +0x0506,0x0000,0x0000,0x0000,0x0000, /* 21C3 */ +0x0507,0x0000,0x0000,0x0000,0x0000, /* 21C4 */ +0x0508,0x0000,0x0000,0x0000,0x0000, /* 21C5 */ +0x0509,0x0000,0x0000,0x0000,0x0000, /* 21C6 */ +0x050A,0x0000,0x0000,0x0000,0x0000, /* 21C7 */ +0x050B,0x0000,0x0000,0x0000,0x0000, /* 21C8 */ +0x050C,0x0000,0x0000,0x0000,0x0000, /* 21C9 */ +0x050D,0x0000,0x0000,0x0000,0x0000, /* 21CA */ +0x050E,0x0000,0x0000,0x0000,0x0000, /* 21CB */ +0x050F,0x0000,0x0000,0x0000,0x0000, /* 21CC */ +0x0510,0x0000,0x0000,0x0000,0x0000, /* 21CD */ +0x0514,0x0000,0x0000,0x0000,0x0000, /* 21CE */ +0x0512,0x0000,0x0000,0x0000,0x0000, /* 21CF */ +0x0510,0x0000,0x0000,0x0000,0x0000, /* 21D0 */ +0x0511,0x0000,0x0000,0x0000,0x0000, /* 21D1 */ +0x0512,0x0000,0x0000,0x0000,0x0000, /* 21D2 */ +0x0513,0x0000,0x0000,0x0000,0x0000, /* 21D3 */ +0x0514,0x0000,0x0000,0x0000,0x0000, /* 21D4 */ +0x0515,0x0000,0x0000,0x0000,0x0000, /* 21D5 */ +0x0516,0x0000,0x0000,0x0000,0x0000, /* 21D6 */ +0x0517,0x0000,0x0000,0x0000,0x0000, /* 21D7 */ +0x0518,0x0000,0x0000,0x0000,0x0000, /* 21D8 */ +0x0519,0x0000,0x0000,0x0000,0x0000, /* 21D9 */ +0x051A,0x0000,0x0000,0x0000,0x0000, /* 21DA */ +0x051B,0x0000,0x0000,0x0000,0x0000, /* 21DB */ +0x051C,0x0000,0x0000,0x0000,0x0000, /* 21DC */ +0x051D,0x0000,0x0000,0x0000,0x0000, /* 21DD */ +0x051E,0x0000,0x0000,0x0000,0x0000, /* 21DE */ +0x051F,0x0000,0x0000,0x0000,0x0000, /* 21DF */ +0x0520,0x0000,0x0000,0x0000,0x0000, /* 21E0 */ +0x0521,0x0000,0x0000,0x0000,0x0000, /* 21E1 */ +0x0522,0x0000,0x0000,0x0000,0x0000, /* 21E2 */ +0x0523,0x0000,0x0000,0x0000,0x0000, /* 21E3 */ +0x0524,0x0000,0x0000,0x0000,0x0000, /* 21E4 */ +0x0525,0x0000,0x0000,0x0000,0x0000, /* 21E5 */ +0x0526,0x0000,0x0000,0x0000,0x0000, /* 21E6 */ +0x0527,0x0000,0x0000,0x0000,0x0000, /* 21E7 */ +0x0528,0x0000,0x0000,0x0000,0x0000, /* 21E8 */ +0x0529,0x0000,0x0000,0x0000,0x0000, /* 21E9 */ +0x052A,0x0000,0x0000,0x0000,0x0000, /* 21EA */ +0x052B,0x0000,0x0000,0x0000,0x0000, /* 21EB */ +0x052C,0x0000,0x0000,0x0000,0x0000, /* 21EC */ +0x052D,0x0000,0x0000,0x0000,0x0000, /* 21ED */ +0x052E,0x0000,0x0000,0x0000,0x0000, /* 21EE */ +0x052F,0x0000,0x0000,0x0000,0x0000, /* 21EF */ +0x0530,0x0000,0x0000,0x0000,0x0000, /* 21F0 */ +0x0531,0x0000,0x0000,0x0000,0x0000, /* 21F1 */ +0x0532,0x0000,0x0000,0x0000,0x0000, /* 21F2 */ +0x0533,0x0000,0x0000,0x0000,0x0000, /* 21F3 */ +0x0534,0x0000,0x0000,0x0000,0x0000, /* 21F4 */ +0x0535,0x0000,0x0000,0x0000,0x0000, /* 21F5 */ +0x0536,0x0000,0x0000,0x0000,0x0000, /* 21F6 */ +0x0537,0x0000,0x0000,0x0000,0x0000, /* 21F7 */ +0x0538,0x0000,0x0000,0x0000,0x0000, /* 21F8 */ +0x0539,0x0000,0x0000,0x0000,0x0000, /* 21F9 */ +0x053A,0x0000,0x0000,0x0000,0x0000, /* 21FA */ +0x053B,0x0000,0x0000,0x0000,0x0000, /* 21FB */ +0x053C,0x0000,0x0000,0x0000,0x0000, /* 21FC */ +0x053D,0x0000,0x0000,0x0000,0x0000, /* 21FD */ +0x053E,0x0000,0x0000,0x0000,0x0000, /* 21FE */ +0x053F,0x0000,0x0000,0x0000,0x0000 /* 21FF */ +}; + +uint16 uca520_p022[]= { /* 2200 (4 weights per char) */ +0x0540,0x0000,0x0000,0x0000, 0x0541,0x0000,0x0000,0x0000, /* 2200 */ +0x0542,0x0000,0x0000,0x0000, 0x0543,0x0000,0x0000,0x0000, /* 2202 */ +0x0543,0x0000,0x0000,0x0000, 0x0544,0x0000,0x0000,0x0000, /* 2204 */ +0x0545,0x0000,0x0000,0x0000, 0x0546,0x0000,0x0000,0x0000, /* 2206 */ +0x0547,0x0000,0x0000,0x0000, 0x0547,0x0000,0x0000,0x0000, /* 2208 */ +0x0548,0x0000,0x0000,0x0000, 0x0549,0x0000,0x0000,0x0000, /* 220A */ +0x0549,0x0000,0x0000,0x0000, 0x054A,0x0000,0x0000,0x0000, /* 220C */ +0x054C,0x0000,0x0000,0x0000, 0x054D,0x0000,0x0000,0x0000, /* 220E */ +0x054E,0x0000,0x0000,0x0000, 0x054F,0x0000,0x0000,0x0000, /* 2210 */ +0x055C,0x0000,0x0000,0x0000, 0x055D,0x0000,0x0000,0x0000, /* 2212 */ +0x055E,0x0000,0x0000,0x0000, 0x055F,0x0000,0x0000,0x0000, /* 2214 */ +0x0560,0x0000,0x0000,0x0000, 0x0561,0x0000,0x0000,0x0000, /* 2216 */ +0x0562,0x0000,0x0000,0x0000, 0x0563,0x0000,0x0000,0x0000, /* 2218 */ +0x0564,0x0000,0x0000,0x0000, 0x0565,0x0000,0x0000,0x0000, /* 221A */ +0x0567,0x0000,0x0000,0x0000, 0x0569,0x0000,0x0000,0x0000, /* 221C */ +0x056A,0x0000,0x0000,0x0000, 0x056B,0x0000,0x0000,0x0000, /* 221E */ +0x056C,0x0000,0x0000,0x0000, 0x056D,0x0000,0x0000,0x0000, /* 2220 */ +0x056E,0x0000,0x0000,0x0000, 0x056F,0x0000,0x0000,0x0000, /* 2222 */ +0x056F,0x0000,0x0000,0x0000, 0x0570,0x0000,0x0000,0x0000, /* 2224 */ +0x0570,0x0000,0x0000,0x0000, 0x0571,0x0000,0x0000,0x0000, /* 2226 */ +0x0572,0x0000,0x0000,0x0000, 0x0573,0x0000,0x0000,0x0000, /* 2228 */ +0x0574,0x0000,0x0000,0x0000, 0x0575,0x0000,0x0000,0x0000, /* 222A */ +0x0575,0x0575,0x0000,0x0000, 0x0575,0x0575,0x0575,0x0000, /* 222C */ +0x0576,0x0000,0x0000,0x0000, 0x0576,0x0576,0x0000,0x0000, /* 222E */ +0x0576,0x0576,0x0576,0x0000, 0x0577,0x0000,0x0000,0x0000, /* 2230 */ +0x0578,0x0000,0x0000,0x0000, 0x0579,0x0000,0x0000,0x0000, /* 2232 */ +0x057A,0x0000,0x0000,0x0000, 0x057B,0x0000,0x0000,0x0000, /* 2234 */ +0x057C,0x0000,0x0000,0x0000, 0x057D,0x0000,0x0000,0x0000, /* 2236 */ +0x057E,0x0000,0x0000,0x0000, 0x057F,0x0000,0x0000,0x0000, /* 2238 */ +0x0580,0x0000,0x0000,0x0000, 0x0581,0x0000,0x0000,0x0000, /* 223A */ +0x0582,0x0000,0x0000,0x0000, 0x0583,0x0000,0x0000,0x0000, /* 223C */ +0x0584,0x0000,0x0000,0x0000, 0x0585,0x0000,0x0000,0x0000, /* 223E */ +0x0586,0x0000,0x0000,0x0000, 0x0582,0x0000,0x0000,0x0000, /* 2240 */ +0x0587,0x0000,0x0000,0x0000, 0x0588,0x0000,0x0000,0x0000, /* 2242 */ +0x0588,0x0000,0x0000,0x0000, 0x0589,0x0000,0x0000,0x0000, /* 2244 */ +0x058A,0x0000,0x0000,0x0000, 0x0589,0x0000,0x0000,0x0000, /* 2246 */ +0x058B,0x0000,0x0000,0x0000, 0x058B,0x0000,0x0000,0x0000, /* 2248 */ +0x058C,0x0000,0x0000,0x0000, 0x058D,0x0000,0x0000,0x0000, /* 224A */ +0x058E,0x0000,0x0000,0x0000, 0x058F,0x0000,0x0000,0x0000, /* 224C */ +0x0590,0x0000,0x0000,0x0000, 0x0591,0x0000,0x0000,0x0000, /* 224E */ +0x0592,0x0000,0x0000,0x0000, 0x0593,0x0000,0x0000,0x0000, /* 2250 */ +0x0594,0x0000,0x0000,0x0000, 0x0595,0x0000,0x0000,0x0000, /* 2252 */ +0x0596,0x0000,0x0000,0x0000, 0x0597,0x0000,0x0000,0x0000, /* 2254 */ +0x0598,0x0000,0x0000,0x0000, 0x0599,0x0000,0x0000,0x0000, /* 2256 */ +0x059A,0x0000,0x0000,0x0000, 0x059B,0x0000,0x0000,0x0000, /* 2258 */ +0x059C,0x0000,0x0000,0x0000, 0x059D,0x0000,0x0000,0x0000, /* 225A */ +0x059E,0x0000,0x0000,0x0000, 0x059F,0x0000,0x0000,0x0000, /* 225C */ +0x05A0,0x0000,0x0000,0x0000, 0x05A1,0x0000,0x0000,0x0000, /* 225E */ +0x0555,0x0000,0x0000,0x0000, 0x05A2,0x0000,0x0000,0x0000, /* 2260 */ +0x05A2,0x0000,0x0000,0x0000, 0x05A3,0x0000,0x0000,0x0000, /* 2262 */ +0x05A4,0x0000,0x0000,0x0000, 0x05A5,0x0000,0x0000,0x0000, /* 2264 */ +0x05A6,0x0000,0x0000,0x0000, 0x05A7,0x0000,0x0000,0x0000, /* 2266 */ +0x05A8,0x0000,0x0000,0x0000, 0x05A9,0x0000,0x0000,0x0000, /* 2268 */ +0x05AA,0x0000,0x0000,0x0000, 0x05AB,0x0000,0x0000,0x0000, /* 226A */ +0x05AC,0x0000,0x0000,0x0000, 0x058F,0x0000,0x0000,0x0000, /* 226C */ +0x0554,0x0000,0x0000,0x0000, 0x0556,0x0000,0x0000,0x0000, /* 226E */ +0x05A4,0x0000,0x0000,0x0000, 0x05A5,0x0000,0x0000,0x0000, /* 2270 */ +0x05AD,0x0000,0x0000,0x0000, 0x05AE,0x0000,0x0000,0x0000, /* 2272 */ +0x05AD,0x0000,0x0000,0x0000, 0x05AE,0x0000,0x0000,0x0000, /* 2274 */ +0x05AF,0x0000,0x0000,0x0000, 0x05B0,0x0000,0x0000,0x0000, /* 2276 */ +0x05AF,0x0000,0x0000,0x0000, 0x05B0,0x0000,0x0000,0x0000, /* 2278 */ +0x05B1,0x0000,0x0000,0x0000, 0x05B2,0x0000,0x0000,0x0000, /* 227A */ +0x05B3,0x0000,0x0000,0x0000, 0x05B4,0x0000,0x0000,0x0000, /* 227C */ +0x05B5,0x0000,0x0000,0x0000, 0x05B6,0x0000,0x0000,0x0000, /* 227E */ +0x05B1,0x0000,0x0000,0x0000, 0x05B2,0x0000,0x0000,0x0000, /* 2280 */ +0x05B7,0x0000,0x0000,0x0000, 0x05B8,0x0000,0x0000,0x0000, /* 2282 */ +0x05B7,0x0000,0x0000,0x0000, 0x05B8,0x0000,0x0000,0x0000, /* 2284 */ +0x05B9,0x0000,0x0000,0x0000, 0x05BA,0x0000,0x0000,0x0000, /* 2286 */ +0x05B9,0x0000,0x0000,0x0000, 0x05BA,0x0000,0x0000,0x0000, /* 2288 */ +0x05BB,0x0000,0x0000,0x0000, 0x05BC,0x0000,0x0000,0x0000, /* 228A */ +0x05BD,0x0000,0x0000,0x0000, 0x05BE,0x0000,0x0000,0x0000, /* 228C */ +0x05BF,0x0000,0x0000,0x0000, 0x05C0,0x0000,0x0000,0x0000, /* 228E */ +0x05C1,0x0000,0x0000,0x0000, 0x05C2,0x0000,0x0000,0x0000, /* 2290 */ +0x05C3,0x0000,0x0000,0x0000, 0x05C4,0x0000,0x0000,0x0000, /* 2292 */ +0x05C5,0x0000,0x0000,0x0000, 0x05C6,0x0000,0x0000,0x0000, /* 2294 */ +0x05C7,0x0000,0x0000,0x0000, 0x05C8,0x0000,0x0000,0x0000, /* 2296 */ +0x05C9,0x0000,0x0000,0x0000, 0x05CA,0x0000,0x0000,0x0000, /* 2298 */ +0x05CB,0x0000,0x0000,0x0000, 0x05CC,0x0000,0x0000,0x0000, /* 229A */ +0x05CD,0x0000,0x0000,0x0000, 0x05CE,0x0000,0x0000,0x0000, /* 229C */ +0x05CF,0x0000,0x0000,0x0000, 0x05D0,0x0000,0x0000,0x0000, /* 229E */ +0x05D1,0x0000,0x0000,0x0000, 0x05D2,0x0000,0x0000,0x0000, /* 22A0 */ +0x05D3,0x0000,0x0000,0x0000, 0x05D4,0x0000,0x0000,0x0000, /* 22A2 */ +0x05D5,0x0000,0x0000,0x0000, 0x05D6,0x0000,0x0000,0x0000, /* 22A4 */ +0x05D7,0x0000,0x0000,0x0000, 0x05D8,0x0000,0x0000,0x0000, /* 22A6 */ +0x05D9,0x0000,0x0000,0x0000, 0x05DA,0x0000,0x0000,0x0000, /* 22A8 */ +0x05DB,0x0000,0x0000,0x0000, 0x05DC,0x0000,0x0000,0x0000, /* 22AA */ +0x05D3,0x0000,0x0000,0x0000, 0x05D9,0x0000,0x0000,0x0000, /* 22AC */ +0x05DA,0x0000,0x0000,0x0000, 0x05DC,0x0000,0x0000,0x0000, /* 22AE */ +0x05DD,0x0000,0x0000,0x0000, 0x05DE,0x0000,0x0000,0x0000, /* 22B0 */ +0x05DF,0x0000,0x0000,0x0000, 0x05E0,0x0000,0x0000,0x0000, /* 22B2 */ +0x05E1,0x0000,0x0000,0x0000, 0x05E2,0x0000,0x0000,0x0000, /* 22B4 */ +0x05E3,0x0000,0x0000,0x0000, 0x05E4,0x0000,0x0000,0x0000, /* 22B6 */ +0x05E5,0x0000,0x0000,0x0000, 0x05E6,0x0000,0x0000,0x0000, /* 22B8 */ +0x05E7,0x0000,0x0000,0x0000, 0x05E8,0x0000,0x0000,0x0000, /* 22BA */ +0x05E9,0x0000,0x0000,0x0000, 0x05EA,0x0000,0x0000,0x0000, /* 22BC */ +0x05EB,0x0000,0x0000,0x0000, 0x05EC,0x0000,0x0000,0x0000, /* 22BE */ +0x05ED,0x0000,0x0000,0x0000, 0x05EE,0x0000,0x0000,0x0000, /* 22C0 */ +0x05EF,0x0000,0x0000,0x0000, 0x05F0,0x0000,0x0000,0x0000, /* 22C2 */ +0x05F1,0x0000,0x0000,0x0000, 0x05F2,0x0000,0x0000,0x0000, /* 22C4 */ +0x05F3,0x0000,0x0000,0x0000, 0x05F4,0x0000,0x0000,0x0000, /* 22C6 */ +0x05F5,0x0000,0x0000,0x0000, 0x05F6,0x0000,0x0000,0x0000, /* 22C8 */ +0x05F7,0x0000,0x0000,0x0000, 0x05F8,0x0000,0x0000,0x0000, /* 22CA */ +0x05F9,0x0000,0x0000,0x0000, 0x05FA,0x0000,0x0000,0x0000, /* 22CC */ +0x05FB,0x0000,0x0000,0x0000, 0x05FC,0x0000,0x0000,0x0000, /* 22CE */ +0x05FD,0x0000,0x0000,0x0000, 0x05FE,0x0000,0x0000,0x0000, /* 22D0 */ +0x05FF,0x0000,0x0000,0x0000, 0x0600,0x0000,0x0000,0x0000, /* 22D2 */ +0x0601,0x0000,0x0000,0x0000, 0x0602,0x0000,0x0000,0x0000, /* 22D4 */ +0x0603,0x0000,0x0000,0x0000, 0x0604,0x0000,0x0000,0x0000, /* 22D6 */ +0x0605,0x0000,0x0000,0x0000, 0x0606,0x0000,0x0000,0x0000, /* 22D8 */ +0x0607,0x0000,0x0000,0x0000, 0x0608,0x0000,0x0000,0x0000, /* 22DA */ +0x0609,0x0000,0x0000,0x0000, 0x060A,0x0000,0x0000,0x0000, /* 22DC */ +0x060B,0x0000,0x0000,0x0000, 0x060C,0x0000,0x0000,0x0000, /* 22DE */ +0x05B3,0x0000,0x0000,0x0000, 0x05B4,0x0000,0x0000,0x0000, /* 22E0 */ +0x05C2,0x0000,0x0000,0x0000, 0x05C3,0x0000,0x0000,0x0000, /* 22E2 */ +0x060D,0x0000,0x0000,0x0000, 0x060E,0x0000,0x0000,0x0000, /* 22E4 */ +0x060F,0x0000,0x0000,0x0000, 0x0610,0x0000,0x0000,0x0000, /* 22E6 */ +0x0611,0x0000,0x0000,0x0000, 0x0612,0x0000,0x0000,0x0000, /* 22E8 */ +0x05DF,0x0000,0x0000,0x0000, 0x05E0,0x0000,0x0000,0x0000, /* 22EA */ +0x05E1,0x0000,0x0000,0x0000, 0x05E2,0x0000,0x0000,0x0000, /* 22EC */ +0x0613,0x0000,0x0000,0x0000, 0x0614,0x0000,0x0000,0x0000, /* 22EE */ +0x0615,0x0000,0x0000,0x0000, 0x0616,0x0000,0x0000,0x0000, /* 22F0 */ +0x0617,0x0000,0x0000,0x0000, 0x0618,0x0000,0x0000,0x0000, /* 22F2 */ +0x0619,0x0000,0x0000,0x0000, 0x061A,0x0000,0x0000,0x0000, /* 22F4 */ +0x061B,0x0000,0x0000,0x0000, 0x061C,0x0000,0x0000,0x0000, /* 22F6 */ +0x061D,0x0000,0x0000,0x0000, 0x061E,0x0000,0x0000,0x0000, /* 22F8 */ +0x061F,0x0000,0x0000,0x0000, 0x0620,0x0000,0x0000,0x0000, /* 22FA */ +0x0621,0x0000,0x0000,0x0000, 0x0622,0x0000,0x0000,0x0000, /* 22FC */ +0x0623,0x0000,0x0000,0x0000, 0x0624,0x0000,0x0000,0x0000 /* 22FE */ +}; + +uint16 uca520_p023[]= { /* 2300 (3 weights per char) */ +0x0625,0x0000,0x0000, 0x0626,0x0000,0x0000, 0x0627,0x0000,0x0000, /* 2300 */ +0x0628,0x0000,0x0000, 0x0629,0x0000,0x0000, 0x062A,0x0000,0x0000, /* 2303 */ +0x062B,0x0000,0x0000, 0x062C,0x0000,0x0000, 0x062D,0x0000,0x0000, /* 2306 */ +0x062E,0x0000,0x0000, 0x062F,0x0000,0x0000, 0x0630,0x0000,0x0000, /* 2309 */ +0x0631,0x0000,0x0000, 0x0632,0x0000,0x0000, 0x0633,0x0000,0x0000, /* 230C */ +0x0634,0x0000,0x0000, 0x0635,0x0000,0x0000, 0x0636,0x0000,0x0000, /* 230F */ +0x0637,0x0000,0x0000, 0x0638,0x0000,0x0000, 0x0639,0x0000,0x0000, /* 2312 */ +0x063A,0x0000,0x0000, 0x063B,0x0000,0x0000, 0x063C,0x0000,0x0000, /* 2315 */ +0x063D,0x0000,0x0000, 0x063E,0x0000,0x0000, 0x063F,0x0000,0x0000, /* 2318 */ +0x0640,0x0000,0x0000, 0x0641,0x0000,0x0000, 0x0642,0x0000,0x0000, /* 231B */ +0x0643,0x0000,0x0000, 0x0644,0x0000,0x0000, 0x0645,0x0000,0x0000, /* 231E */ +0x0646,0x0000,0x0000, 0x0647,0x0000,0x0000, 0x0648,0x0000,0x0000, /* 2321 */ +0x0649,0x0000,0x0000, 0x064A,0x0000,0x0000, 0x064B,0x0000,0x0000, /* 2324 */ +0x064C,0x0000,0x0000, 0x064D,0x0000,0x0000, 0x033D,0x0000,0x0000, /* 2327 */ +0x033E,0x0000,0x0000, 0x064E,0x0000,0x0000, 0x064F,0x0000,0x0000, /* 232A */ +0x0650,0x0000,0x0000, 0x0651,0x0000,0x0000, 0x0652,0x0000,0x0000, /* 232D */ +0x0653,0x0000,0x0000, 0x0654,0x0000,0x0000, 0x0655,0x0000,0x0000, /* 2330 */ +0x0656,0x0000,0x0000, 0x0657,0x0000,0x0000, 0x0658,0x0000,0x0000, /* 2333 */ +0x0659,0x0000,0x0000, 0x065A,0x0000,0x0000, 0x065B,0x0000,0x0000, /* 2336 */ +0x065C,0x0000,0x0000, 0x065D,0x0000,0x0000, 0x065E,0x0000,0x0000, /* 2339 */ +0x065F,0x0000,0x0000, 0x0660,0x0000,0x0000, 0x0661,0x0000,0x0000, /* 233C */ +0x0662,0x0000,0x0000, 0x0663,0x0000,0x0000, 0x0664,0x0000,0x0000, /* 233F */ +0x0665,0x0000,0x0000, 0x0666,0x0000,0x0000, 0x0667,0x0000,0x0000, /* 2342 */ +0x0668,0x0000,0x0000, 0x0669,0x0000,0x0000, 0x066A,0x0000,0x0000, /* 2345 */ +0x066B,0x0000,0x0000, 0x066C,0x0000,0x0000, 0x066D,0x0000,0x0000, /* 2348 */ +0x066E,0x0000,0x0000, 0x066F,0x0000,0x0000, 0x0670,0x0000,0x0000, /* 234B */ +0x0671,0x0000,0x0000, 0x0672,0x0000,0x0000, 0x0673,0x0000,0x0000, /* 234E */ +0x0674,0x0000,0x0000, 0x0675,0x0000,0x0000, 0x0676,0x0000,0x0000, /* 2351 */ +0x0677,0x0000,0x0000, 0x0678,0x0000,0x0000, 0x0679,0x0000,0x0000, /* 2354 */ +0x067A,0x0000,0x0000, 0x067B,0x0000,0x0000, 0x067C,0x0000,0x0000, /* 2357 */ +0x067D,0x0000,0x0000, 0x067E,0x0000,0x0000, 0x067F,0x0000,0x0000, /* 235A */ +0x0680,0x0000,0x0000, 0x0681,0x0000,0x0000, 0x0682,0x0000,0x0000, /* 235D */ +0x0683,0x0000,0x0000, 0x0684,0x0000,0x0000, 0x0685,0x0000,0x0000, /* 2360 */ +0x0686,0x0000,0x0000, 0x0687,0x0000,0x0000, 0x0688,0x0000,0x0000, /* 2363 */ +0x0689,0x0000,0x0000, 0x068A,0x0000,0x0000, 0x068B,0x0000,0x0000, /* 2366 */ +0x068C,0x0000,0x0000, 0x068D,0x0000,0x0000, 0x068E,0x0000,0x0000, /* 2369 */ +0x068F,0x0000,0x0000, 0x0690,0x0000,0x0000, 0x0691,0x0000,0x0000, /* 236C */ +0x0692,0x0000,0x0000, 0x0693,0x0000,0x0000, 0x0694,0x0000,0x0000, /* 236F */ +0x0695,0x0000,0x0000, 0x0696,0x0000,0x0000, 0x0697,0x0000,0x0000, /* 2372 */ +0x0698,0x0000,0x0000, 0x0699,0x0000,0x0000, 0x069A,0x0000,0x0000, /* 2375 */ +0x069B,0x0000,0x0000, 0x069C,0x0000,0x0000, 0x069D,0x0000,0x0000, /* 2378 */ +0x069E,0x0000,0x0000, 0x069F,0x0000,0x0000, 0x06A0,0x0000,0x0000, /* 237B */ +0x06A1,0x0000,0x0000, 0x06A2,0x0000,0x0000, 0x06A3,0x0000,0x0000, /* 237E */ +0x06A4,0x0000,0x0000, 0x06A5,0x0000,0x0000, 0x06A6,0x0000,0x0000, /* 2381 */ +0x06A7,0x0000,0x0000, 0x06A8,0x0000,0x0000, 0x06A9,0x0000,0x0000, /* 2384 */ +0x06AA,0x0000,0x0000, 0x06AB,0x0000,0x0000, 0x06AC,0x0000,0x0000, /* 2387 */ +0x06AD,0x0000,0x0000, 0x06AE,0x0000,0x0000, 0x06AF,0x0000,0x0000, /* 238A */ +0x06B0,0x0000,0x0000, 0x06B1,0x0000,0x0000, 0x06B2,0x0000,0x0000, /* 238D */ +0x06B3,0x0000,0x0000, 0x06B4,0x0000,0x0000, 0x06B5,0x0000,0x0000, /* 2390 */ +0x06B6,0x0000,0x0000, 0x06B7,0x0000,0x0000, 0x06B8,0x0000,0x0000, /* 2393 */ +0x06B9,0x0000,0x0000, 0x06BA,0x0000,0x0000, 0x06BB,0x0000,0x0000, /* 2396 */ +0x06BC,0x0000,0x0000, 0x06BD,0x0000,0x0000, 0x06BE,0x0000,0x0000, /* 2399 */ +0x06BF,0x0000,0x0000, 0x06C0,0x0000,0x0000, 0x06C1,0x0000,0x0000, /* 239C */ +0x06C2,0x0000,0x0000, 0x06C3,0x0000,0x0000, 0x06C4,0x0000,0x0000, /* 239F */ +0x06C5,0x0000,0x0000, 0x06C6,0x0000,0x0000, 0x06C7,0x0000,0x0000, /* 23A2 */ +0x06C8,0x0000,0x0000, 0x06C9,0x0000,0x0000, 0x06CA,0x0000,0x0000, /* 23A5 */ +0x06CB,0x0000,0x0000, 0x06CC,0x0000,0x0000, 0x06CD,0x0000,0x0000, /* 23A8 */ +0x06CE,0x0000,0x0000, 0x06CF,0x0000,0x0000, 0x06D0,0x0000,0x0000, /* 23AB */ +0x06D1,0x0000,0x0000, 0x06D2,0x0000,0x0000, 0x06D3,0x0000,0x0000, /* 23AE */ +0x06D4,0x0000,0x0000, 0x06D5,0x0000,0x0000, 0x06D6,0x0000,0x0000, /* 23B1 */ +0x06D7,0x0000,0x0000, 0x06D8,0x0000,0x0000, 0x06D9,0x0000,0x0000, /* 23B4 */ +0x06DA,0x0000,0x0000, 0x06DB,0x0000,0x0000, 0x06DC,0x0000,0x0000, /* 23B7 */ +0x06DD,0x0000,0x0000, 0x06DE,0x0000,0x0000, 0x06DF,0x0000,0x0000, /* 23BA */ +0x06E0,0x0000,0x0000, 0x06E1,0x0000,0x0000, 0x06E2,0x0000,0x0000, /* 23BD */ +0x06E3,0x0000,0x0000, 0x06E4,0x0000,0x0000, 0x06E5,0x0000,0x0000, /* 23C0 */ +0x06E6,0x0000,0x0000, 0x06E7,0x0000,0x0000, 0x06E8,0x0000,0x0000, /* 23C3 */ +0x06E9,0x0000,0x0000, 0x06EA,0x0000,0x0000, 0x06EB,0x0000,0x0000, /* 23C6 */ +0x06EC,0x0000,0x0000, 0x06ED,0x0000,0x0000, 0x06EE,0x0000,0x0000, /* 23C9 */ +0x06EF,0x0000,0x0000, 0x06F0,0x0000,0x0000, 0x06F1,0x0000,0x0000, /* 23CC */ +0x06F2,0x0000,0x0000, 0x06F3,0x0000,0x0000, 0x06F4,0x0000,0x0000, /* 23CF */ +0x06F5,0x0000,0x0000, 0x06F6,0x0000,0x0000, 0x06F7,0x0000,0x0000, /* 23D2 */ +0x06F8,0x0000,0x0000, 0x06F9,0x0000,0x0000, 0x06FA,0x0000,0x0000, /* 23D5 */ +0x06FB,0x0000,0x0000, 0x06FC,0x0000,0x0000, 0x06FD,0x0000,0x0000, /* 23D8 */ +0x06FE,0x0000,0x0000, 0x06FF,0x0000,0x0000, 0x0700,0x0000,0x0000, /* 23DB */ +0x0701,0x0000,0x0000, 0x0702,0x0000,0x0000, 0x0703,0x0000,0x0000, /* 23DE */ +0x0704,0x0000,0x0000, 0x0705,0x0000,0x0000, 0x0706,0x0000,0x0000, /* 23E1 */ +0x0707,0x0000,0x0000, 0x0708,0x0000,0x0000, 0x0709,0x0000,0x0000, /* 23E4 */ +0x070A,0x0000,0x0000, 0x070B,0x0000,0x0000, 0xFBC0,0xA3E9,0x0000, /* 23E7 */ +0xFBC0,0xA3EA,0x0000, 0xFBC0,0xA3EB,0x0000, 0xFBC0,0xA3EC,0x0000, /* 23EA */ +0xFBC0,0xA3ED,0x0000, 0xFBC0,0xA3EE,0x0000, 0xFBC0,0xA3EF,0x0000, /* 23ED */ +0xFBC0,0xA3F0,0x0000, 0xFBC0,0xA3F1,0x0000, 0xFBC0,0xA3F2,0x0000, /* 23F0 */ +0xFBC0,0xA3F3,0x0000, 0xFBC0,0xA3F4,0x0000, 0xFBC0,0xA3F5,0x0000, /* 23F3 */ +0xFBC0,0xA3F6,0x0000, 0xFBC0,0xA3F7,0x0000, 0xFBC0,0xA3F8,0x0000, /* 23F6 */ +0xFBC0,0xA3F9,0x0000, 0xFBC0,0xA3FA,0x0000, 0xFBC0,0xA3FB,0x0000, /* 23F9 */ +0xFBC0,0xA3FC,0x0000, 0xFBC0,0xA3FD,0x0000, 0xFBC0,0xA3FE,0x0000, /* 23FC */ +0xFBC0,0xA3FF,0x0000 }; + +uint16 uca520_p024[]= { /* 2400 (5 weights per char) */ +0x070C,0x0000,0x0000,0x0000,0x0000, /* 2400 */ +0x070D,0x0000,0x0000,0x0000,0x0000, /* 2401 */ +0x070E,0x0000,0x0000,0x0000,0x0000, /* 2402 */ +0x070F,0x0000,0x0000,0x0000,0x0000, /* 2403 */ +0x0710,0x0000,0x0000,0x0000,0x0000, /* 2404 */ +0x0711,0x0000,0x0000,0x0000,0x0000, /* 2405 */ +0x0712,0x0000,0x0000,0x0000,0x0000, /* 2406 */ +0x0713,0x0000,0x0000,0x0000,0x0000, /* 2407 */ +0x0714,0x0000,0x0000,0x0000,0x0000, /* 2408 */ +0x0715,0x0000,0x0000,0x0000,0x0000, /* 2409 */ +0x0716,0x0000,0x0000,0x0000,0x0000, /* 240A */ +0x0717,0x0000,0x0000,0x0000,0x0000, /* 240B */ +0x0718,0x0000,0x0000,0x0000,0x0000, /* 240C */ +0x0719,0x0000,0x0000,0x0000,0x0000, /* 240D */ +0x071A,0x0000,0x0000,0x0000,0x0000, /* 240E */ +0x071B,0x0000,0x0000,0x0000,0x0000, /* 240F */ +0x071C,0x0000,0x0000,0x0000,0x0000, /* 2410 */ +0x071D,0x0000,0x0000,0x0000,0x0000, /* 2411 */ +0x071E,0x0000,0x0000,0x0000,0x0000, /* 2412 */ +0x071F,0x0000,0x0000,0x0000,0x0000, /* 2413 */ +0x0720,0x0000,0x0000,0x0000,0x0000, /* 2414 */ +0x0721,0x0000,0x0000,0x0000,0x0000, /* 2415 */ +0x0722,0x0000,0x0000,0x0000,0x0000, /* 2416 */ +0x0723,0x0000,0x0000,0x0000,0x0000, /* 2417 */ +0x0724,0x0000,0x0000,0x0000,0x0000, /* 2418 */ +0x0725,0x0000,0x0000,0x0000,0x0000, /* 2419 */ +0x0726,0x0000,0x0000,0x0000,0x0000, /* 241A */ +0x0727,0x0000,0x0000,0x0000,0x0000, /* 241B */ +0x0728,0x0000,0x0000,0x0000,0x0000, /* 241C */ +0x0729,0x0000,0x0000,0x0000,0x0000, /* 241D */ +0x072A,0x0000,0x0000,0x0000,0x0000, /* 241E */ +0x072B,0x0000,0x0000,0x0000,0x0000, /* 241F */ +0x072C,0x0000,0x0000,0x0000,0x0000, /* 2420 */ +0x072D,0x0000,0x0000,0x0000,0x0000, /* 2421 */ +0x072E,0x0000,0x0000,0x0000,0x0000, /* 2422 */ +0x072F,0x0000,0x0000,0x0000,0x0000, /* 2423 */ +0x0730,0x0000,0x0000,0x0000,0x0000, /* 2424 */ +0x0731,0x0000,0x0000,0x0000,0x0000, /* 2425 */ +0x0732,0x0000,0x0000,0x0000,0x0000, /* 2426 */ +0xFBC0,0xA427,0x0000,0x0000,0x0000, /* 2427 */ +0xFBC0,0xA428,0x0000,0x0000,0x0000, /* 2428 */ +0xFBC0,0xA429,0x0000,0x0000,0x0000, /* 2429 */ +0xFBC0,0xA42A,0x0000,0x0000,0x0000, /* 242A */ +0xFBC0,0xA42B,0x0000,0x0000,0x0000, /* 242B */ +0xFBC0,0xA42C,0x0000,0x0000,0x0000, /* 242C */ +0xFBC0,0xA42D,0x0000,0x0000,0x0000, /* 242D */ +0xFBC0,0xA42E,0x0000,0x0000,0x0000, /* 242E */ +0xFBC0,0xA42F,0x0000,0x0000,0x0000, /* 242F */ +0xFBC0,0xA430,0x0000,0x0000,0x0000, /* 2430 */ +0xFBC0,0xA431,0x0000,0x0000,0x0000, /* 2431 */ +0xFBC0,0xA432,0x0000,0x0000,0x0000, /* 2432 */ +0xFBC0,0xA433,0x0000,0x0000,0x0000, /* 2433 */ +0xFBC0,0xA434,0x0000,0x0000,0x0000, /* 2434 */ +0xFBC0,0xA435,0x0000,0x0000,0x0000, /* 2435 */ +0xFBC0,0xA436,0x0000,0x0000,0x0000, /* 2436 */ +0xFBC0,0xA437,0x0000,0x0000,0x0000, /* 2437 */ +0xFBC0,0xA438,0x0000,0x0000,0x0000, /* 2438 */ +0xFBC0,0xA439,0x0000,0x0000,0x0000, /* 2439 */ +0xFBC0,0xA43A,0x0000,0x0000,0x0000, /* 243A */ +0xFBC0,0xA43B,0x0000,0x0000,0x0000, /* 243B */ +0xFBC0,0xA43C,0x0000,0x0000,0x0000, /* 243C */ +0xFBC0,0xA43D,0x0000,0x0000,0x0000, /* 243D */ +0xFBC0,0xA43E,0x0000,0x0000,0x0000, /* 243E */ +0xFBC0,0xA43F,0x0000,0x0000,0x0000, /* 243F */ +0x0733,0x0000,0x0000,0x0000,0x0000, /* 2440 */ +0x0734,0x0000,0x0000,0x0000,0x0000, /* 2441 */ +0x0735,0x0000,0x0000,0x0000,0x0000, /* 2442 */ +0x0736,0x0000,0x0000,0x0000,0x0000, /* 2443 */ +0x0737,0x0000,0x0000,0x0000,0x0000, /* 2444 */ +0x0738,0x0000,0x0000,0x0000,0x0000, /* 2445 */ +0x0739,0x0000,0x0000,0x0000,0x0000, /* 2446 */ +0x073A,0x0000,0x0000,0x0000,0x0000, /* 2447 */ +0x073B,0x0000,0x0000,0x0000,0x0000, /* 2448 */ +0x073C,0x0000,0x0000,0x0000,0x0000, /* 2449 */ +0x073D,0x0000,0x0000,0x0000,0x0000, /* 244A */ +0xFBC0,0xA44B,0x0000,0x0000,0x0000, /* 244B */ +0xFBC0,0xA44C,0x0000,0x0000,0x0000, /* 244C */ +0xFBC0,0xA44D,0x0000,0x0000,0x0000, /* 244D */ +0xFBC0,0xA44E,0x0000,0x0000,0x0000, /* 244E */ +0xFBC0,0xA44F,0x0000,0x0000,0x0000, /* 244F */ +0xFBC0,0xA450,0x0000,0x0000,0x0000, /* 2450 */ +0xFBC0,0xA451,0x0000,0x0000,0x0000, /* 2451 */ +0xFBC0,0xA452,0x0000,0x0000,0x0000, /* 2452 */ +0xFBC0,0xA453,0x0000,0x0000,0x0000, /* 2453 */ +0xFBC0,0xA454,0x0000,0x0000,0x0000, /* 2454 */ +0xFBC0,0xA455,0x0000,0x0000,0x0000, /* 2455 */ +0xFBC0,0xA456,0x0000,0x0000,0x0000, /* 2456 */ +0xFBC0,0xA457,0x0000,0x0000,0x0000, /* 2457 */ +0xFBC0,0xA458,0x0000,0x0000,0x0000, /* 2458 */ +0xFBC0,0xA459,0x0000,0x0000,0x0000, /* 2459 */ +0xFBC0,0xA45A,0x0000,0x0000,0x0000, /* 245A */ +0xFBC0,0xA45B,0x0000,0x0000,0x0000, /* 245B */ +0xFBC0,0xA45C,0x0000,0x0000,0x0000, /* 245C */ +0xFBC0,0xA45D,0x0000,0x0000,0x0000, /* 245D */ +0xFBC0,0xA45E,0x0000,0x0000,0x0000, /* 245E */ +0xFBC0,0xA45F,0x0000,0x0000,0x0000, /* 245F */ +0x1206,0x0000,0x0000,0x0000,0x0000, /* 2460 */ +0x1207,0x0000,0x0000,0x0000,0x0000, /* 2461 */ +0x1208,0x0000,0x0000,0x0000,0x0000, /* 2462 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 2463 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 2464 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2465 */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 2466 */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 2467 */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 2468 */ +0x1206,0x1205,0x0000,0x0000,0x0000, /* 2469 */ +0x1206,0x1206,0x0000,0x0000,0x0000, /* 246A */ +0x1206,0x1207,0x0000,0x0000,0x0000, /* 246B */ +0x1206,0x1208,0x0000,0x0000,0x0000, /* 246C */ +0x1206,0x1209,0x0000,0x0000,0x0000, /* 246D */ +0x1206,0x120A,0x0000,0x0000,0x0000, /* 246E */ +0x1206,0x120B,0x0000,0x0000,0x0000, /* 246F */ +0x1206,0x120C,0x0000,0x0000,0x0000, /* 2470 */ +0x1206,0x120D,0x0000,0x0000,0x0000, /* 2471 */ +0x1206,0x120E,0x0000,0x0000,0x0000, /* 2472 */ +0x1207,0x1205,0x0000,0x0000,0x0000, /* 2473 */ +0x02FF,0x1206,0x0300,0x0000,0x0000, /* 2474 */ +0x02FF,0x1207,0x0300,0x0000,0x0000, /* 2475 */ +0x02FF,0x1208,0x0300,0x0000,0x0000, /* 2476 */ +0x02FF,0x1209,0x0300,0x0000,0x0000, /* 2477 */ +0x02FF,0x120A,0x0300,0x0000,0x0000, /* 2478 */ +0x02FF,0x120B,0x0300,0x0000,0x0000, /* 2479 */ +0x02FF,0x120C,0x0300,0x0000,0x0000, /* 247A */ +0x02FF,0x120D,0x0300,0x0000,0x0000, /* 247B */ +0x02FF,0x120E,0x0300,0x0000,0x0000, /* 247C */ +0x02FF,0x1206,0x1205,0x0300,0x0000, /* 247D */ +0x02FF,0x1206,0x1206,0x0300,0x0000, /* 247E */ +0x02FF,0x1206,0x1207,0x0300,0x0000, /* 247F */ +0x02FF,0x1206,0x1208,0x0300,0x0000, /* 2480 */ +0x02FF,0x1206,0x1209,0x0300,0x0000, /* 2481 */ +0x02FF,0x1206,0x120A,0x0300,0x0000, /* 2482 */ +0x02FF,0x1206,0x120B,0x0300,0x0000, /* 2483 */ +0x02FF,0x1206,0x120C,0x0300,0x0000, /* 2484 */ +0x02FF,0x1206,0x120D,0x0300,0x0000, /* 2485 */ +0x02FF,0x1206,0x120E,0x0300,0x0000, /* 2486 */ +0x02FF,0x1207,0x1205,0x0300,0x0000, /* 2487 */ +0x1206,0x0281,0x0000,0x0000,0x0000, /* 2488 */ +0x1207,0x0281,0x0000,0x0000,0x0000, /* 2489 */ +0x1208,0x0281,0x0000,0x0000,0x0000, /* 248A */ +0x1209,0x0281,0x0000,0x0000,0x0000, /* 248B */ +0x120A,0x0281,0x0000,0x0000,0x0000, /* 248C */ +0x120B,0x0281,0x0000,0x0000,0x0000, /* 248D */ +0x120C,0x0281,0x0000,0x0000,0x0000, /* 248E */ +0x120D,0x0281,0x0000,0x0000,0x0000, /* 248F */ +0x120E,0x0281,0x0000,0x0000,0x0000, /* 2490 */ +0x1206,0x1205,0x0281,0x0000,0x0000, /* 2491 */ +0x1206,0x1206,0x0281,0x0000,0x0000, /* 2492 */ +0x1206,0x1207,0x0281,0x0000,0x0000, /* 2493 */ +0x1206,0x1208,0x0281,0x0000,0x0000, /* 2494 */ +0x1206,0x1209,0x0281,0x0000,0x0000, /* 2495 */ +0x1206,0x120A,0x0281,0x0000,0x0000, /* 2496 */ +0x1206,0x120B,0x0281,0x0000,0x0000, /* 2497 */ +0x1206,0x120C,0x0281,0x0000,0x0000, /* 2498 */ +0x1206,0x120D,0x0281,0x0000,0x0000, /* 2499 */ +0x1206,0x120E,0x0281,0x0000,0x0000, /* 249A */ +0x1207,0x1205,0x0281,0x0000,0x0000, /* 249B */ +0x02FF,0x120F,0x0300,0x0000,0x0000, /* 249C */ +0x02FF,0x1225,0x0300,0x0000,0x0000, /* 249D */ +0x02FF,0x123D,0x0300,0x0000,0x0000, /* 249E */ +0x02FF,0x1250,0x0300,0x0000,0x0000, /* 249F */ +0x02FF,0x126B,0x0300,0x0000,0x0000, /* 24A0 */ +0x02FF,0x12A3,0x0300,0x0000,0x0000, /* 24A1 */ +0x02FF,0x12B0,0x0300,0x0000,0x0000, /* 24A2 */ +0x02FF,0x12D3,0x0300,0x0000,0x0000, /* 24A3 */ +0x02FF,0x12EC,0x0300,0x0000,0x0000, /* 24A4 */ +0x02FF,0x1305,0x0300,0x0000,0x0000, /* 24A5 */ +0x02FF,0x131E,0x0300,0x0000,0x0000, /* 24A6 */ +0x02FF,0x1330,0x0300,0x0000,0x0000, /* 24A7 */ +0x02FF,0x135F,0x0300,0x0000,0x0000, /* 24A8 */ +0x02FF,0x136D,0x0300,0x0000,0x0000, /* 24A9 */ +0x02FF,0x138E,0x0300,0x0000,0x0000, /* 24AA */ +0x02FF,0x13B3,0x0300,0x0000,0x0000, /* 24AB */ +0x02FF,0x13C8,0x0300,0x0000,0x0000, /* 24AC */ +0x02FF,0x13DA,0x0300,0x0000,0x0000, /* 24AD */ +0x02FF,0x1410,0x0300,0x0000,0x0000, /* 24AE */ +0x02FF,0x1433,0x0300,0x0000,0x0000, /* 24AF */ +0x02FF,0x1453,0x0300,0x0000,0x0000, /* 24B0 */ +0x02FF,0x147B,0x0300,0x0000,0x0000, /* 24B1 */ +0x02FF,0x148D,0x0300,0x0000,0x0000, /* 24B2 */ +0x02FF,0x1497,0x0300,0x0000,0x0000, /* 24B3 */ +0x02FF,0x149C,0x0300,0x0000,0x0000, /* 24B4 */ +0x02FF,0x14AD,0x0300,0x0000,0x0000, /* 24B5 */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 24B6 */ +0x1225,0x0000,0x0000,0x0000,0x0000, /* 24B7 */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 24B8 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 24B9 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 24BA */ +0x12A3,0x0000,0x0000,0x0000,0x0000, /* 24BB */ +0x12B0,0x0000,0x0000,0x0000,0x0000, /* 24BC */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 24BD */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 24BE */ +0x1305,0x0000,0x0000,0x0000,0x0000, /* 24BF */ +0x131E,0x0000,0x0000,0x0000,0x0000, /* 24C0 */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 24C1 */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 24C2 */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 24C3 */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 24C4 */ +0x13B3,0x0000,0x0000,0x0000,0x0000, /* 24C5 */ +0x13C8,0x0000,0x0000,0x0000,0x0000, /* 24C6 */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 24C7 */ +0x1410,0x0000,0x0000,0x0000,0x0000, /* 24C8 */ +0x1433,0x0000,0x0000,0x0000,0x0000, /* 24C9 */ +0x1453,0x0000,0x0000,0x0000,0x0000, /* 24CA */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 24CB */ +0x148D,0x0000,0x0000,0x0000,0x0000, /* 24CC */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 24CD */ +0x149C,0x0000,0x0000,0x0000,0x0000, /* 24CE */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 24CF */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 24D0 */ +0x1225,0x0000,0x0000,0x0000,0x0000, /* 24D1 */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 24D2 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 24D3 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 24D4 */ +0x12A3,0x0000,0x0000,0x0000,0x0000, /* 24D5 */ +0x12B0,0x0000,0x0000,0x0000,0x0000, /* 24D6 */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 24D7 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 24D8 */ +0x1305,0x0000,0x0000,0x0000,0x0000, /* 24D9 */ +0x131E,0x0000,0x0000,0x0000,0x0000, /* 24DA */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 24DB */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 24DC */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 24DD */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 24DE */ +0x13B3,0x0000,0x0000,0x0000,0x0000, /* 24DF */ +0x13C8,0x0000,0x0000,0x0000,0x0000, /* 24E0 */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 24E1 */ +0x1410,0x0000,0x0000,0x0000,0x0000, /* 24E2 */ +0x1433,0x0000,0x0000,0x0000,0x0000, /* 24E3 */ +0x1453,0x0000,0x0000,0x0000,0x0000, /* 24E4 */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 24E5 */ +0x148D,0x0000,0x0000,0x0000,0x0000, /* 24E6 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 24E7 */ +0x149C,0x0000,0x0000,0x0000,0x0000, /* 24E8 */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 24E9 */ +0x1205,0x0000,0x0000,0x0000,0x0000, /* 24EA */ +0x1206,0x1206,0x0000,0x0000,0x0000, /* 24EB */ +0x1206,0x1207,0x0000,0x0000,0x0000, /* 24EC */ +0x1206,0x1208,0x0000,0x0000,0x0000, /* 24ED */ +0x1206,0x1209,0x0000,0x0000,0x0000, /* 24EE */ +0x1206,0x120A,0x0000,0x0000,0x0000, /* 24EF */ +0x1206,0x120B,0x0000,0x0000,0x0000, /* 24F0 */ +0x1206,0x120C,0x0000,0x0000,0x0000, /* 24F1 */ +0x1206,0x120D,0x0000,0x0000,0x0000, /* 24F2 */ +0x1206,0x120E,0x0000,0x0000,0x0000, /* 24F3 */ +0x1207,0x1205,0x0000,0x0000,0x0000, /* 24F4 */ +0x1206,0x0000,0x0000,0x0000,0x0000, /* 24F5 */ +0x1207,0x0000,0x0000,0x0000,0x0000, /* 24F6 */ +0x1208,0x0000,0x0000,0x0000,0x0000, /* 24F7 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 24F8 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 24F9 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 24FA */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 24FB */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 24FC */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 24FD */ +0x1206,0x1205,0x0000,0x0000,0x0000, /* 24FE */ +0x1205,0x0000,0x0000,0x0000,0x0000 /* 24FF */ +}; + +uint16 uca520_p025[]= { /* 2500 (2 weights per char) */ +0x073E,0x0000, 0x073F,0x0000, 0x0740,0x0000, 0x0741,0x0000, /* 2500 */ +0x0742,0x0000, 0x0743,0x0000, 0x0744,0x0000, 0x0745,0x0000, /* 2504 */ +0x0746,0x0000, 0x0747,0x0000, 0x0748,0x0000, 0x0749,0x0000, /* 2508 */ +0x074A,0x0000, 0x074B,0x0000, 0x074C,0x0000, 0x074D,0x0000, /* 250C */ +0x074E,0x0000, 0x074F,0x0000, 0x0750,0x0000, 0x0751,0x0000, /* 2510 */ +0x0752,0x0000, 0x0753,0x0000, 0x0754,0x0000, 0x0755,0x0000, /* 2514 */ +0x0756,0x0000, 0x0757,0x0000, 0x0758,0x0000, 0x0759,0x0000, /* 2518 */ +0x075A,0x0000, 0x075B,0x0000, 0x075C,0x0000, 0x075D,0x0000, /* 251C */ +0x075E,0x0000, 0x075F,0x0000, 0x0760,0x0000, 0x0761,0x0000, /* 2520 */ +0x0762,0x0000, 0x0763,0x0000, 0x0764,0x0000, 0x0765,0x0000, /* 2524 */ +0x0766,0x0000, 0x0767,0x0000, 0x0768,0x0000, 0x0769,0x0000, /* 2528 */ +0x076A,0x0000, 0x076B,0x0000, 0x076C,0x0000, 0x076D,0x0000, /* 252C */ +0x076E,0x0000, 0x076F,0x0000, 0x0770,0x0000, 0x0771,0x0000, /* 2530 */ +0x0772,0x0000, 0x0773,0x0000, 0x0774,0x0000, 0x0775,0x0000, /* 2534 */ +0x0776,0x0000, 0x0777,0x0000, 0x0778,0x0000, 0x0779,0x0000, /* 2538 */ +0x077A,0x0000, 0x077B,0x0000, 0x077C,0x0000, 0x077D,0x0000, /* 253C */ +0x077E,0x0000, 0x077F,0x0000, 0x0780,0x0000, 0x0781,0x0000, /* 2540 */ +0x0782,0x0000, 0x0783,0x0000, 0x0784,0x0000, 0x0785,0x0000, /* 2544 */ +0x0786,0x0000, 0x0787,0x0000, 0x0788,0x0000, 0x0789,0x0000, /* 2548 */ +0x078A,0x0000, 0x078B,0x0000, 0x078C,0x0000, 0x078D,0x0000, /* 254C */ +0x078E,0x0000, 0x078F,0x0000, 0x0790,0x0000, 0x0791,0x0000, /* 2550 */ +0x0792,0x0000, 0x0793,0x0000, 0x0794,0x0000, 0x0795,0x0000, /* 2554 */ +0x0796,0x0000, 0x0797,0x0000, 0x0798,0x0000, 0x0799,0x0000, /* 2558 */ +0x079A,0x0000, 0x079B,0x0000, 0x079C,0x0000, 0x079D,0x0000, /* 255C */ +0x079E,0x0000, 0x079F,0x0000, 0x07A0,0x0000, 0x07A1,0x0000, /* 2560 */ +0x07A2,0x0000, 0x07A3,0x0000, 0x07A4,0x0000, 0x07A5,0x0000, /* 2564 */ +0x07A6,0x0000, 0x07A7,0x0000, 0x07A8,0x0000, 0x07A9,0x0000, /* 2568 */ +0x07AA,0x0000, 0x07AB,0x0000, 0x07AC,0x0000, 0x07AD,0x0000, /* 256C */ +0x07AE,0x0000, 0x07AF,0x0000, 0x07B0,0x0000, 0x07B1,0x0000, /* 2570 */ +0x07B2,0x0000, 0x07B3,0x0000, 0x07B4,0x0000, 0x07B5,0x0000, /* 2574 */ +0x07B6,0x0000, 0x07B7,0x0000, 0x07B8,0x0000, 0x07B9,0x0000, /* 2578 */ +0x07BA,0x0000, 0x07BB,0x0000, 0x07BC,0x0000, 0x07BD,0x0000, /* 257C */ +0x07BE,0x0000, 0x07BF,0x0000, 0x07C0,0x0000, 0x07C1,0x0000, /* 2580 */ +0x07C2,0x0000, 0x07C3,0x0000, 0x07C4,0x0000, 0x07C5,0x0000, /* 2584 */ +0x07C6,0x0000, 0x07C7,0x0000, 0x07C8,0x0000, 0x07C9,0x0000, /* 2588 */ +0x07CA,0x0000, 0x07CB,0x0000, 0x07CC,0x0000, 0x07CD,0x0000, /* 258C */ +0x07CE,0x0000, 0x07CF,0x0000, 0x07D0,0x0000, 0x07D1,0x0000, /* 2590 */ +0x07D2,0x0000, 0x07D3,0x0000, 0x07D4,0x0000, 0x07D5,0x0000, /* 2594 */ +0x07D6,0x0000, 0x07D7,0x0000, 0x07D8,0x0000, 0x07D9,0x0000, /* 2598 */ +0x07DA,0x0000, 0x07DB,0x0000, 0x07DC,0x0000, 0x07DD,0x0000, /* 259C */ +0x07DE,0x0000, 0x07DF,0x0000, 0x07E0,0x0000, 0x07E1,0x0000, /* 25A0 */ +0x07E2,0x0000, 0x07E3,0x0000, 0x07E4,0x0000, 0x07E5,0x0000, /* 25A4 */ +0x07E6,0x0000, 0x07E7,0x0000, 0x07E8,0x0000, 0x07E9,0x0000, /* 25A8 */ +0x07EA,0x0000, 0x07EB,0x0000, 0x07EC,0x0000, 0x07ED,0x0000, /* 25AC */ +0x07EE,0x0000, 0x07EF,0x0000, 0x07F0,0x0000, 0x07F1,0x0000, /* 25B0 */ +0x07F2,0x0000, 0x07F3,0x0000, 0x07F4,0x0000, 0x07F5,0x0000, /* 25B4 */ +0x07F6,0x0000, 0x07F7,0x0000, 0x07F8,0x0000, 0x07F9,0x0000, /* 25B8 */ +0x07FA,0x0000, 0x07FB,0x0000, 0x07FC,0x0000, 0x07FD,0x0000, /* 25BC */ +0x07FE,0x0000, 0x07FF,0x0000, 0x0800,0x0000, 0x0801,0x0000, /* 25C0 */ +0x0802,0x0000, 0x0803,0x0000, 0x0804,0x0000, 0x0805,0x0000, /* 25C4 */ +0x0806,0x0000, 0x0807,0x0000, 0x0808,0x0000, 0x0809,0x0000, /* 25C8 */ +0x080A,0x0000, 0x080B,0x0000, 0x080C,0x0000, 0x080D,0x0000, /* 25CC */ +0x080E,0x0000, 0x080F,0x0000, 0x0810,0x0000, 0x0811,0x0000, /* 25D0 */ +0x0812,0x0000, 0x0813,0x0000, 0x0814,0x0000, 0x0815,0x0000, /* 25D4 */ +0x0816,0x0000, 0x0817,0x0000, 0x0818,0x0000, 0x0819,0x0000, /* 25D8 */ +0x081A,0x0000, 0x081B,0x0000, 0x081C,0x0000, 0x081D,0x0000, /* 25DC */ +0x081E,0x0000, 0x081F,0x0000, 0x0820,0x0000, 0x0821,0x0000, /* 25E0 */ +0x0822,0x0000, 0x0823,0x0000, 0x0824,0x0000, 0x0825,0x0000, /* 25E4 */ +0x0826,0x0000, 0x0827,0x0000, 0x0828,0x0000, 0x0829,0x0000, /* 25E8 */ +0x082A,0x0000, 0x082B,0x0000, 0x082C,0x0000, 0x082D,0x0000, /* 25EC */ +0x082E,0x0000, 0x082F,0x0000, 0x0830,0x0000, 0x0831,0x0000, /* 25F0 */ +0x0832,0x0000, 0x0833,0x0000, 0x0834,0x0000, 0x0835,0x0000, /* 25F4 */ +0x0836,0x0000, 0x0837,0x0000, 0x0838,0x0000, 0x0839,0x0000, /* 25F8 */ +0x083A,0x0000, 0x083B,0x0000, 0x083C,0x0000, 0x083D,0x0000 /* 25FC */ +}; + +uint16 uca520_p026[]= { /* 2600 (3 weights per char) */ +0x083E,0x0000,0x0000, 0x083F,0x0000,0x0000, 0x0840,0x0000,0x0000, /* 2600 */ +0x0841,0x0000,0x0000, 0x0842,0x0000,0x0000, 0x0843,0x0000,0x0000, /* 2603 */ +0x0844,0x0000,0x0000, 0x0845,0x0000,0x0000, 0x0846,0x0000,0x0000, /* 2606 */ +0x0847,0x0000,0x0000, 0x0848,0x0000,0x0000, 0x0849,0x0000,0x0000, /* 2609 */ +0x084A,0x0000,0x0000, 0x084B,0x0000,0x0000, 0x084C,0x0000,0x0000, /* 260C */ +0x084D,0x0000,0x0000, 0x084E,0x0000,0x0000, 0x084F,0x0000,0x0000, /* 260F */ +0x0850,0x0000,0x0000, 0x0851,0x0000,0x0000, 0x0852,0x0000,0x0000, /* 2612 */ +0x0853,0x0000,0x0000, 0x0854,0x0000,0x0000, 0x0855,0x0000,0x0000, /* 2615 */ +0x0856,0x0000,0x0000, 0x0857,0x0000,0x0000, 0x0858,0x0000,0x0000, /* 2618 */ +0x0859,0x0000,0x0000, 0x085A,0x0000,0x0000, 0x085B,0x0000,0x0000, /* 261B */ +0x085C,0x0000,0x0000, 0x085D,0x0000,0x0000, 0x085E,0x0000,0x0000, /* 261E */ +0x085F,0x0000,0x0000, 0x0860,0x0000,0x0000, 0x0861,0x0000,0x0000, /* 2621 */ +0x0862,0x0000,0x0000, 0x0863,0x0000,0x0000, 0x0864,0x0000,0x0000, /* 2624 */ +0x0865,0x0000,0x0000, 0x0866,0x0000,0x0000, 0x0867,0x0000,0x0000, /* 2627 */ +0x0868,0x0000,0x0000, 0x0869,0x0000,0x0000, 0x086A,0x0000,0x0000, /* 262A */ +0x086B,0x0000,0x0000, 0x086C,0x0000,0x0000, 0x086D,0x0000,0x0000, /* 262D */ +0x0D36,0x0000,0x0000, 0x0D37,0x0000,0x0000, 0x0D38,0x0000,0x0000, /* 2630 */ +0x0D39,0x0000,0x0000, 0x0D3A,0x0000,0x0000, 0x0D3B,0x0000,0x0000, /* 2633 */ +0x0D3C,0x0000,0x0000, 0x0D3D,0x0000,0x0000, 0x086E,0x0000,0x0000, /* 2636 */ +0x086F,0x0000,0x0000, 0x0870,0x0000,0x0000, 0x0871,0x0000,0x0000, /* 2639 */ +0x0872,0x0000,0x0000, 0x0873,0x0000,0x0000, 0x0874,0x0000,0x0000, /* 263C */ +0x0875,0x0000,0x0000, 0x0876,0x0000,0x0000, 0x0877,0x0000,0x0000, /* 263F */ +0x0878,0x0000,0x0000, 0x0879,0x0000,0x0000, 0x087A,0x0000,0x0000, /* 2642 */ +0x087B,0x0000,0x0000, 0x087C,0x0000,0x0000, 0x087D,0x0000,0x0000, /* 2645 */ +0x087E,0x0000,0x0000, 0x087F,0x0000,0x0000, 0x0880,0x0000,0x0000, /* 2648 */ +0x0881,0x0000,0x0000, 0x0882,0x0000,0x0000, 0x0883,0x0000,0x0000, /* 264B */ +0x0884,0x0000,0x0000, 0x0885,0x0000,0x0000, 0x0886,0x0000,0x0000, /* 264E */ +0x0887,0x0000,0x0000, 0x0888,0x0000,0x0000, 0x0889,0x0000,0x0000, /* 2651 */ +0x088A,0x0000,0x0000, 0x088B,0x0000,0x0000, 0x088C,0x0000,0x0000, /* 2654 */ +0x088D,0x0000,0x0000, 0x088E,0x0000,0x0000, 0x088F,0x0000,0x0000, /* 2657 */ +0x0890,0x0000,0x0000, 0x0891,0x0000,0x0000, 0x0892,0x0000,0x0000, /* 265A */ +0x0893,0x0000,0x0000, 0x0894,0x0000,0x0000, 0x0895,0x0000,0x0000, /* 265D */ +0x0896,0x0000,0x0000, 0x0897,0x0000,0x0000, 0x0898,0x0000,0x0000, /* 2660 */ +0x0899,0x0000,0x0000, 0x089A,0x0000,0x0000, 0x089B,0x0000,0x0000, /* 2663 */ +0x089C,0x0000,0x0000, 0x089D,0x0000,0x0000, 0x089E,0x0000,0x0000, /* 2666 */ +0x089F,0x0000,0x0000, 0x08A0,0x0000,0x0000, 0x08A1,0x0000,0x0000, /* 2669 */ +0x08A2,0x0000,0x0000, 0x0F7C,0x0000,0x0000, 0x0F7D,0x0000,0x0000, /* 266C */ +0x0F7E,0x0000,0x0000, 0x08A3,0x0000,0x0000, 0x08A4,0x0000,0x0000, /* 266F */ +0x08A5,0x0000,0x0000, 0x08A6,0x0000,0x0000, 0x08A7,0x0000,0x0000, /* 2672 */ +0x08A8,0x0000,0x0000, 0x08A9,0x0000,0x0000, 0x08AA,0x0000,0x0000, /* 2675 */ +0x08AB,0x0000,0x0000, 0x08AC,0x0000,0x0000, 0x08AD,0x0000,0x0000, /* 2678 */ +0x08AE,0x0000,0x0000, 0x08AF,0x0000,0x0000, 0x08B0,0x0000,0x0000, /* 267B */ +0x08B1,0x0000,0x0000, 0x08B2,0x0000,0x0000, 0x08B3,0x0000,0x0000, /* 267E */ +0x08B4,0x0000,0x0000, 0x08B5,0x0000,0x0000, 0x08B6,0x0000,0x0000, /* 2681 */ +0x08B7,0x0000,0x0000, 0x08B8,0x0000,0x0000, 0x08B9,0x0000,0x0000, /* 2684 */ +0x08BA,0x0000,0x0000, 0x08BB,0x0000,0x0000, 0x08BC,0x0000,0x0000, /* 2687 */ +0x0D30,0x0000,0x0000, 0x0D31,0x0000,0x0000, 0x0D32,0x0000,0x0000, /* 268A */ +0x0D33,0x0000,0x0000, 0x0D34,0x0000,0x0000, 0x0D35,0x0000,0x0000, /* 268D */ +0x08BD,0x0000,0x0000, 0x08BE,0x0000,0x0000, 0x08BF,0x0000,0x0000, /* 2690 */ +0x08C0,0x0000,0x0000, 0x08C1,0x0000,0x0000, 0x08C2,0x0000,0x0000, /* 2693 */ +0x08C3,0x0000,0x0000, 0x08C4,0x0000,0x0000, 0x08C5,0x0000,0x0000, /* 2696 */ +0x08C6,0x0000,0x0000, 0x08C7,0x0000,0x0000, 0x08C8,0x0000,0x0000, /* 2699 */ +0x08C9,0x0000,0x0000, 0x08CA,0x0000,0x0000, 0x08CB,0x0000,0x0000, /* 269C */ +0x08CC,0x0000,0x0000, 0x08CD,0x0000,0x0000, 0x08CE,0x0000,0x0000, /* 269F */ +0x08CF,0x0000,0x0000, 0x08D0,0x0000,0x0000, 0x08D1,0x0000,0x0000, /* 26A2 */ +0x08D2,0x0000,0x0000, 0x08D3,0x0000,0x0000, 0x08D4,0x0000,0x0000, /* 26A5 */ +0x08D5,0x0000,0x0000, 0x08D6,0x0000,0x0000, 0x08D7,0x0000,0x0000, /* 26A8 */ +0x08D8,0x0000,0x0000, 0x08D9,0x0000,0x0000, 0x08DA,0x0000,0x0000, /* 26AB */ +0x08DB,0x0000,0x0000, 0x08DC,0x0000,0x0000, 0x08DD,0x0000,0x0000, /* 26AE */ +0x08DE,0x0000,0x0000, 0x08DF,0x0000,0x0000, 0x08E0,0x0000,0x0000, /* 26B1 */ +0x08E1,0x0000,0x0000, 0x08E2,0x0000,0x0000, 0x08E3,0x0000,0x0000, /* 26B4 */ +0x08E4,0x0000,0x0000, 0x08E5,0x0000,0x0000, 0x08E6,0x0000,0x0000, /* 26B7 */ +0x08E7,0x0000,0x0000, 0x08E8,0x0000,0x0000, 0x08E9,0x0000,0x0000, /* 26BA */ +0x08EA,0x0000,0x0000, 0x08EB,0x0000,0x0000, 0x08EC,0x0000,0x0000, /* 26BD */ +0x08ED,0x0000,0x0000, 0x08EE,0x0000,0x0000, 0x08EF,0x0000,0x0000, /* 26C0 */ +0x08F0,0x0000,0x0000, 0x08F1,0x0000,0x0000, 0x08F2,0x0000,0x0000, /* 26C3 */ +0x08F3,0x0000,0x0000, 0x08F4,0x0000,0x0000, 0x08F5,0x0000,0x0000, /* 26C6 */ +0x08F6,0x0000,0x0000, 0x08F7,0x0000,0x0000, 0x08F8,0x0000,0x0000, /* 26C9 */ +0x08F9,0x0000,0x0000, 0x08FA,0x0000,0x0000, 0xFBC0,0xA6CE,0x0000, /* 26CC */ +0x08FB,0x0000,0x0000, 0x08FC,0x0000,0x0000, 0x08FD,0x0000,0x0000, /* 26CF */ +0x08FE,0x0000,0x0000, 0x08FF,0x0000,0x0000, 0x0900,0x0000,0x0000, /* 26D2 */ +0x0901,0x0000,0x0000, 0x0902,0x0000,0x0000, 0x0903,0x0000,0x0000, /* 26D5 */ +0x0904,0x0000,0x0000, 0x0905,0x0000,0x0000, 0x0906,0x0000,0x0000, /* 26D8 */ +0x0907,0x0000,0x0000, 0x0908,0x0000,0x0000, 0x0909,0x0000,0x0000, /* 26DB */ +0x090A,0x0000,0x0000, 0x090B,0x0000,0x0000, 0x090C,0x0000,0x0000, /* 26DE */ +0x090D,0x0000,0x0000, 0xFBC0,0xA6E2,0x0000, 0x090E,0x0000,0x0000, /* 26E1 */ +0xFBC0,0xA6E4,0x0000, 0xFBC0,0xA6E5,0x0000, 0xFBC0,0xA6E6,0x0000, /* 26E4 */ +0xFBC0,0xA6E7,0x0000, 0x090F,0x0000,0x0000, 0x0910,0x0000,0x0000, /* 26E7 */ +0x0911,0x0000,0x0000, 0x0912,0x0000,0x0000, 0x0913,0x0000,0x0000, /* 26EA */ +0x0914,0x0000,0x0000, 0x0915,0x0000,0x0000, 0x0916,0x0000,0x0000, /* 26ED */ +0x0917,0x0000,0x0000, 0x0918,0x0000,0x0000, 0x0919,0x0000,0x0000, /* 26F0 */ +0x091A,0x0000,0x0000, 0x091B,0x0000,0x0000, 0x091C,0x0000,0x0000, /* 26F3 */ +0x091D,0x0000,0x0000, 0x091E,0x0000,0x0000, 0x091F,0x0000,0x0000, /* 26F6 */ +0x0920,0x0000,0x0000, 0x0921,0x0000,0x0000, 0x0922,0x0000,0x0000, /* 26F9 */ +0x0923,0x0000,0x0000, 0x0924,0x0000,0x0000, 0x0925,0x0000,0x0000, /* 26FC */ +0x0926,0x0000,0x0000 }; + +uint16 uca520_p027[]= { /* 2700 (3 weights per char) */ +0xFBC0,0xA700,0x0000, 0x0927,0x0000,0x0000, 0x0928,0x0000,0x0000, /* 2700 */ +0x0929,0x0000,0x0000, 0x092A,0x0000,0x0000, 0xFBC0,0xA705,0x0000, /* 2703 */ +0x092B,0x0000,0x0000, 0x092C,0x0000,0x0000, 0x092D,0x0000,0x0000, /* 2706 */ +0x092E,0x0000,0x0000, 0xFBC0,0xA70A,0x0000, 0xFBC0,0xA70B,0x0000, /* 2709 */ +0x092F,0x0000,0x0000, 0x0930,0x0000,0x0000, 0x0931,0x0000,0x0000, /* 270C */ +0x0932,0x0000,0x0000, 0x0933,0x0000,0x0000, 0x0934,0x0000,0x0000, /* 270F */ +0x0935,0x0000,0x0000, 0x0936,0x0000,0x0000, 0x0937,0x0000,0x0000, /* 2712 */ +0x0938,0x0000,0x0000, 0x0939,0x0000,0x0000, 0x093A,0x0000,0x0000, /* 2715 */ +0x093B,0x0000,0x0000, 0x093C,0x0000,0x0000, 0x093D,0x0000,0x0000, /* 2718 */ +0x093E,0x0000,0x0000, 0x093F,0x0000,0x0000, 0x0940,0x0000,0x0000, /* 271B */ +0x0941,0x0000,0x0000, 0x0942,0x0000,0x0000, 0x0943,0x0000,0x0000, /* 271E */ +0x0944,0x0000,0x0000, 0x0945,0x0000,0x0000, 0x0946,0x0000,0x0000, /* 2721 */ +0x0947,0x0000,0x0000, 0x0948,0x0000,0x0000, 0x0949,0x0000,0x0000, /* 2724 */ +0x094A,0x0000,0x0000, 0xFBC0,0xA728,0x0000, 0x094B,0x0000,0x0000, /* 2727 */ +0x094C,0x0000,0x0000, 0x094D,0x0000,0x0000, 0x094E,0x0000,0x0000, /* 272A */ +0x094F,0x0000,0x0000, 0x0950,0x0000,0x0000, 0x0951,0x0000,0x0000, /* 272D */ +0x0952,0x0000,0x0000, 0x0953,0x0000,0x0000, 0x0954,0x0000,0x0000, /* 2730 */ +0x0955,0x0000,0x0000, 0x0956,0x0000,0x0000, 0x0957,0x0000,0x0000, /* 2733 */ +0x0958,0x0000,0x0000, 0x0959,0x0000,0x0000, 0x095A,0x0000,0x0000, /* 2736 */ +0x095B,0x0000,0x0000, 0x095C,0x0000,0x0000, 0x095D,0x0000,0x0000, /* 2739 */ +0x095E,0x0000,0x0000, 0x095F,0x0000,0x0000, 0x0960,0x0000,0x0000, /* 273C */ +0x0961,0x0000,0x0000, 0x0962,0x0000,0x0000, 0x0963,0x0000,0x0000, /* 273F */ +0x0964,0x0000,0x0000, 0x0965,0x0000,0x0000, 0x0966,0x0000,0x0000, /* 2742 */ +0x0967,0x0000,0x0000, 0x0968,0x0000,0x0000, 0x0969,0x0000,0x0000, /* 2745 */ +0x096A,0x0000,0x0000, 0x096B,0x0000,0x0000, 0x096C,0x0000,0x0000, /* 2748 */ +0x096D,0x0000,0x0000, 0xFBC0,0xA74C,0x0000, 0x096E,0x0000,0x0000, /* 274B */ +0xFBC0,0xA74E,0x0000, 0x096F,0x0000,0x0000, 0x0970,0x0000,0x0000, /* 274E */ +0x0971,0x0000,0x0000, 0x0972,0x0000,0x0000, 0xFBC0,0xA753,0x0000, /* 2751 */ +0xFBC0,0xA754,0x0000, 0xFBC0,0xA755,0x0000, 0x0973,0x0000,0x0000, /* 2754 */ +0x0974,0x0000,0x0000, 0x0975,0x0000,0x0000, 0x0976,0x0000,0x0000, /* 2757 */ +0x0977,0x0000,0x0000, 0x0978,0x0000,0x0000, 0x0979,0x0000,0x0000, /* 275A */ +0x097A,0x0000,0x0000, 0x097B,0x0000,0x0000, 0xFBC0,0xA75F,0x0000, /* 275D */ +0xFBC0,0xA760,0x0000, 0x097C,0x0000,0x0000, 0x097D,0x0000,0x0000, /* 2760 */ +0x097E,0x0000,0x0000, 0x097F,0x0000,0x0000, 0x0980,0x0000,0x0000, /* 2763 */ +0x0981,0x0000,0x0000, 0x0982,0x0000,0x0000, 0x0983,0x0000,0x0000, /* 2766 */ +0x0984,0x0000,0x0000, 0x0985,0x0000,0x0000, 0x0986,0x0000,0x0000, /* 2769 */ +0x0987,0x0000,0x0000, 0x0988,0x0000,0x0000, 0x0989,0x0000,0x0000, /* 276C */ +0x098A,0x0000,0x0000, 0x098B,0x0000,0x0000, 0x098C,0x0000,0x0000, /* 276F */ +0x098D,0x0000,0x0000, 0x098E,0x0000,0x0000, 0x098F,0x0000,0x0000, /* 2772 */ +0x0990,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 2775 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 2778 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 277B */ +0x120E,0x0000,0x0000, 0x1206,0x1205,0x0000, 0x1206,0x0000,0x0000, /* 277E */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 2781 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 2784 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1206,0x1205,0x0000, /* 2787 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 278A */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 278D */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 2790 */ +0x1206,0x1205,0x0000, 0x0991,0x0000,0x0000, 0xFBC0,0xA795,0x0000, /* 2793 */ +0xFBC0,0xA796,0x0000, 0xFBC0,0xA797,0x0000, 0x0992,0x0000,0x0000, /* 2796 */ +0x0993,0x0000,0x0000, 0x0994,0x0000,0x0000, 0x0995,0x0000,0x0000, /* 2799 */ +0x0996,0x0000,0x0000, 0x0997,0x0000,0x0000, 0x0998,0x0000,0x0000, /* 279C */ +0x0999,0x0000,0x0000, 0x099A,0x0000,0x0000, 0x099B,0x0000,0x0000, /* 279F */ +0x099C,0x0000,0x0000, 0x099D,0x0000,0x0000, 0x099E,0x0000,0x0000, /* 27A2 */ +0x099F,0x0000,0x0000, 0x09A0,0x0000,0x0000, 0x09A1,0x0000,0x0000, /* 27A5 */ +0x09A2,0x0000,0x0000, 0x09A3,0x0000,0x0000, 0x09A4,0x0000,0x0000, /* 27A8 */ +0x09A5,0x0000,0x0000, 0x09A6,0x0000,0x0000, 0x09A7,0x0000,0x0000, /* 27AB */ +0x09A8,0x0000,0x0000, 0x09A9,0x0000,0x0000, 0xFBC0,0xA7B0,0x0000, /* 27AE */ +0x09AA,0x0000,0x0000, 0x09AB,0x0000,0x0000, 0x09AC,0x0000,0x0000, /* 27B1 */ +0x09AD,0x0000,0x0000, 0x09AE,0x0000,0x0000, 0x09AF,0x0000,0x0000, /* 27B4 */ +0x09B0,0x0000,0x0000, 0x09B1,0x0000,0x0000, 0x09B2,0x0000,0x0000, /* 27B7 */ +0x09B3,0x0000,0x0000, 0x09B4,0x0000,0x0000, 0x09B5,0x0000,0x0000, /* 27BA */ +0x09B6,0x0000,0x0000, 0x09B7,0x0000,0x0000, 0xFBC0,0xA7BF,0x0000, /* 27BD */ +0x09B8,0x0000,0x0000, 0x09B9,0x0000,0x0000, 0x09BA,0x0000,0x0000, /* 27C0 */ +0x09BB,0x0000,0x0000, 0x09BC,0x0000,0x0000, 0x09BD,0x0000,0x0000, /* 27C3 */ +0x09BE,0x0000,0x0000, 0x09BF,0x0000,0x0000, 0x09C0,0x0000,0x0000, /* 27C6 */ +0x09C1,0x0000,0x0000, 0x09C2,0x0000,0x0000, 0xFBC0,0xA7CB,0x0000, /* 27C9 */ +0x09C3,0x0000,0x0000, 0xFBC0,0xA7CD,0x0000, 0xFBC0,0xA7CE,0x0000, /* 27CC */ +0xFBC0,0xA7CF,0x0000, 0x09C4,0x0000,0x0000, 0x09C5,0x0000,0x0000, /* 27CF */ +0x09C6,0x0000,0x0000, 0x09C7,0x0000,0x0000, 0x09C8,0x0000,0x0000, /* 27D2 */ +0x09C9,0x0000,0x0000, 0x09CA,0x0000,0x0000, 0x09CB,0x0000,0x0000, /* 27D5 */ +0x09CC,0x0000,0x0000, 0x09CD,0x0000,0x0000, 0x09CE,0x0000,0x0000, /* 27D8 */ +0x09CF,0x0000,0x0000, 0x09D0,0x0000,0x0000, 0x09D1,0x0000,0x0000, /* 27DB */ +0x09D2,0x0000,0x0000, 0x09D3,0x0000,0x0000, 0x09D4,0x0000,0x0000, /* 27DE */ +0x09D5,0x0000,0x0000, 0x09D6,0x0000,0x0000, 0x09D7,0x0000,0x0000, /* 27E1 */ +0x09D8,0x0000,0x0000, 0x09D9,0x0000,0x0000, 0x09DA,0x0000,0x0000, /* 27E4 */ +0x09DB,0x0000,0x0000, 0x09DC,0x0000,0x0000, 0x09DD,0x0000,0x0000, /* 27E7 */ +0x09DE,0x0000,0x0000, 0x09DF,0x0000,0x0000, 0x0325,0x0000,0x0000, /* 27EA */ +0x0326,0x0000,0x0000, 0x0327,0x0000,0x0000, 0x0328,0x0000,0x0000, /* 27ED */ +0x09E0,0x0000,0x0000, 0x09E1,0x0000,0x0000, 0x09E2,0x0000,0x0000, /* 27F0 */ +0x09E3,0x0000,0x0000, 0x09E4,0x0000,0x0000, 0x09E5,0x0000,0x0000, /* 27F3 */ +0x09E6,0x0000,0x0000, 0x09E7,0x0000,0x0000, 0x09E8,0x0000,0x0000, /* 27F6 */ +0x09E9,0x0000,0x0000, 0x09EA,0x0000,0x0000, 0x09EB,0x0000,0x0000, /* 27F9 */ +0x09EC,0x0000,0x0000, 0x09ED,0x0000,0x0000, 0x09EE,0x0000,0x0000, /* 27FC */ +0x09EF,0x0000,0x0000 }; + +uint16 uca520_p028[]= { /* 2800 (2 weights per char) */ +0x0C30,0x0000, 0x0C31,0x0000, 0x0C32,0x0000, 0x0C33,0x0000, /* 2800 */ +0x0C34,0x0000, 0x0C35,0x0000, 0x0C36,0x0000, 0x0C37,0x0000, /* 2804 */ +0x0C38,0x0000, 0x0C39,0x0000, 0x0C3A,0x0000, 0x0C3B,0x0000, /* 2808 */ +0x0C3C,0x0000, 0x0C3D,0x0000, 0x0C3E,0x0000, 0x0C3F,0x0000, /* 280C */ +0x0C40,0x0000, 0x0C41,0x0000, 0x0C42,0x0000, 0x0C43,0x0000, /* 2810 */ +0x0C44,0x0000, 0x0C45,0x0000, 0x0C46,0x0000, 0x0C47,0x0000, /* 2814 */ +0x0C48,0x0000, 0x0C49,0x0000, 0x0C4A,0x0000, 0x0C4B,0x0000, /* 2818 */ +0x0C4C,0x0000, 0x0C4D,0x0000, 0x0C4E,0x0000, 0x0C4F,0x0000, /* 281C */ +0x0C50,0x0000, 0x0C51,0x0000, 0x0C52,0x0000, 0x0C53,0x0000, /* 2820 */ +0x0C54,0x0000, 0x0C55,0x0000, 0x0C56,0x0000, 0x0C57,0x0000, /* 2824 */ +0x0C58,0x0000, 0x0C59,0x0000, 0x0C5A,0x0000, 0x0C5B,0x0000, /* 2828 */ +0x0C5C,0x0000, 0x0C5D,0x0000, 0x0C5E,0x0000, 0x0C5F,0x0000, /* 282C */ +0x0C60,0x0000, 0x0C61,0x0000, 0x0C62,0x0000, 0x0C63,0x0000, /* 2830 */ +0x0C64,0x0000, 0x0C65,0x0000, 0x0C66,0x0000, 0x0C67,0x0000, /* 2834 */ +0x0C68,0x0000, 0x0C69,0x0000, 0x0C6A,0x0000, 0x0C6B,0x0000, /* 2838 */ +0x0C6C,0x0000, 0x0C6D,0x0000, 0x0C6E,0x0000, 0x0C6F,0x0000, /* 283C */ +0x0C70,0x0000, 0x0C71,0x0000, 0x0C72,0x0000, 0x0C73,0x0000, /* 2840 */ +0x0C74,0x0000, 0x0C75,0x0000, 0x0C76,0x0000, 0x0C77,0x0000, /* 2844 */ +0x0C78,0x0000, 0x0C79,0x0000, 0x0C7A,0x0000, 0x0C7B,0x0000, /* 2848 */ +0x0C7C,0x0000, 0x0C7D,0x0000, 0x0C7E,0x0000, 0x0C7F,0x0000, /* 284C */ +0x0C80,0x0000, 0x0C81,0x0000, 0x0C82,0x0000, 0x0C83,0x0000, /* 2850 */ +0x0C84,0x0000, 0x0C85,0x0000, 0x0C86,0x0000, 0x0C87,0x0000, /* 2854 */ +0x0C88,0x0000, 0x0C89,0x0000, 0x0C8A,0x0000, 0x0C8B,0x0000, /* 2858 */ +0x0C8C,0x0000, 0x0C8D,0x0000, 0x0C8E,0x0000, 0x0C8F,0x0000, /* 285C */ +0x0C90,0x0000, 0x0C91,0x0000, 0x0C92,0x0000, 0x0C93,0x0000, /* 2860 */ +0x0C94,0x0000, 0x0C95,0x0000, 0x0C96,0x0000, 0x0C97,0x0000, /* 2864 */ +0x0C98,0x0000, 0x0C99,0x0000, 0x0C9A,0x0000, 0x0C9B,0x0000, /* 2868 */ +0x0C9C,0x0000, 0x0C9D,0x0000, 0x0C9E,0x0000, 0x0C9F,0x0000, /* 286C */ +0x0CA0,0x0000, 0x0CA1,0x0000, 0x0CA2,0x0000, 0x0CA3,0x0000, /* 2870 */ +0x0CA4,0x0000, 0x0CA5,0x0000, 0x0CA6,0x0000, 0x0CA7,0x0000, /* 2874 */ +0x0CA8,0x0000, 0x0CA9,0x0000, 0x0CAA,0x0000, 0x0CAB,0x0000, /* 2878 */ +0x0CAC,0x0000, 0x0CAD,0x0000, 0x0CAE,0x0000, 0x0CAF,0x0000, /* 287C */ +0x0CB0,0x0000, 0x0CB1,0x0000, 0x0CB2,0x0000, 0x0CB3,0x0000, /* 2880 */ +0x0CB4,0x0000, 0x0CB5,0x0000, 0x0CB6,0x0000, 0x0CB7,0x0000, /* 2884 */ +0x0CB8,0x0000, 0x0CB9,0x0000, 0x0CBA,0x0000, 0x0CBB,0x0000, /* 2888 */ +0x0CBC,0x0000, 0x0CBD,0x0000, 0x0CBE,0x0000, 0x0CBF,0x0000, /* 288C */ +0x0CC0,0x0000, 0x0CC1,0x0000, 0x0CC2,0x0000, 0x0CC3,0x0000, /* 2890 */ +0x0CC4,0x0000, 0x0CC5,0x0000, 0x0CC6,0x0000, 0x0CC7,0x0000, /* 2894 */ +0x0CC8,0x0000, 0x0CC9,0x0000, 0x0CCA,0x0000, 0x0CCB,0x0000, /* 2898 */ +0x0CCC,0x0000, 0x0CCD,0x0000, 0x0CCE,0x0000, 0x0CCF,0x0000, /* 289C */ +0x0CD0,0x0000, 0x0CD1,0x0000, 0x0CD2,0x0000, 0x0CD3,0x0000, /* 28A0 */ +0x0CD4,0x0000, 0x0CD5,0x0000, 0x0CD6,0x0000, 0x0CD7,0x0000, /* 28A4 */ +0x0CD8,0x0000, 0x0CD9,0x0000, 0x0CDA,0x0000, 0x0CDB,0x0000, /* 28A8 */ +0x0CDC,0x0000, 0x0CDD,0x0000, 0x0CDE,0x0000, 0x0CDF,0x0000, /* 28AC */ +0x0CE0,0x0000, 0x0CE1,0x0000, 0x0CE2,0x0000, 0x0CE3,0x0000, /* 28B0 */ +0x0CE4,0x0000, 0x0CE5,0x0000, 0x0CE6,0x0000, 0x0CE7,0x0000, /* 28B4 */ +0x0CE8,0x0000, 0x0CE9,0x0000, 0x0CEA,0x0000, 0x0CEB,0x0000, /* 28B8 */ +0x0CEC,0x0000, 0x0CED,0x0000, 0x0CEE,0x0000, 0x0CEF,0x0000, /* 28BC */ +0x0CF0,0x0000, 0x0CF1,0x0000, 0x0CF2,0x0000, 0x0CF3,0x0000, /* 28C0 */ +0x0CF4,0x0000, 0x0CF5,0x0000, 0x0CF6,0x0000, 0x0CF7,0x0000, /* 28C4 */ +0x0CF8,0x0000, 0x0CF9,0x0000, 0x0CFA,0x0000, 0x0CFB,0x0000, /* 28C8 */ +0x0CFC,0x0000, 0x0CFD,0x0000, 0x0CFE,0x0000, 0x0CFF,0x0000, /* 28CC */ +0x0D00,0x0000, 0x0D01,0x0000, 0x0D02,0x0000, 0x0D03,0x0000, /* 28D0 */ +0x0D04,0x0000, 0x0D05,0x0000, 0x0D06,0x0000, 0x0D07,0x0000, /* 28D4 */ +0x0D08,0x0000, 0x0D09,0x0000, 0x0D0A,0x0000, 0x0D0B,0x0000, /* 28D8 */ +0x0D0C,0x0000, 0x0D0D,0x0000, 0x0D0E,0x0000, 0x0D0F,0x0000, /* 28DC */ +0x0D10,0x0000, 0x0D11,0x0000, 0x0D12,0x0000, 0x0D13,0x0000, /* 28E0 */ +0x0D14,0x0000, 0x0D15,0x0000, 0x0D16,0x0000, 0x0D17,0x0000, /* 28E4 */ +0x0D18,0x0000, 0x0D19,0x0000, 0x0D1A,0x0000, 0x0D1B,0x0000, /* 28E8 */ +0x0D1C,0x0000, 0x0D1D,0x0000, 0x0D1E,0x0000, 0x0D1F,0x0000, /* 28EC */ +0x0D20,0x0000, 0x0D21,0x0000, 0x0D22,0x0000, 0x0D23,0x0000, /* 28F0 */ +0x0D24,0x0000, 0x0D25,0x0000, 0x0D26,0x0000, 0x0D27,0x0000, /* 28F4 */ +0x0D28,0x0000, 0x0D29,0x0000, 0x0D2A,0x0000, 0x0D2B,0x0000, /* 28F8 */ +0x0D2C,0x0000, 0x0D2D,0x0000, 0x0D2E,0x0000, 0x0D2F,0x0000 /* 28FC */ +}; + +uint16 uca520_p029[]= { /* 2900 (2 weights per char) */ +0x09F0,0x0000, 0x09F1,0x0000, 0x09F2,0x0000, 0x09F3,0x0000, /* 2900 */ +0x09F4,0x0000, 0x09F5,0x0000, 0x09F6,0x0000, 0x09F7,0x0000, /* 2904 */ +0x09F8,0x0000, 0x09F9,0x0000, 0x09FA,0x0000, 0x09FB,0x0000, /* 2908 */ +0x09FC,0x0000, 0x09FD,0x0000, 0x09FE,0x0000, 0x09FF,0x0000, /* 290C */ +0x0A00,0x0000, 0x0A01,0x0000, 0x0A02,0x0000, 0x0A03,0x0000, /* 2910 */ +0x0A04,0x0000, 0x0A05,0x0000, 0x0A06,0x0000, 0x0A07,0x0000, /* 2914 */ +0x0A08,0x0000, 0x0A09,0x0000, 0x0A0A,0x0000, 0x0A0B,0x0000, /* 2918 */ +0x0A0C,0x0000, 0x0A0D,0x0000, 0x0A0E,0x0000, 0x0A0F,0x0000, /* 291C */ +0x0A10,0x0000, 0x0A11,0x0000, 0x0A12,0x0000, 0x0A13,0x0000, /* 2920 */ +0x0A14,0x0000, 0x0A15,0x0000, 0x0A16,0x0000, 0x0A17,0x0000, /* 2924 */ +0x0A18,0x0000, 0x0A19,0x0000, 0x0A1A,0x0000, 0x0A1B,0x0000, /* 2928 */ +0x0A1C,0x0000, 0x0A1D,0x0000, 0x0A1E,0x0000, 0x0A1F,0x0000, /* 292C */ +0x0A20,0x0000, 0x0A21,0x0000, 0x0A22,0x0000, 0x0A23,0x0000, /* 2930 */ +0x0A24,0x0000, 0x0A25,0x0000, 0x0A26,0x0000, 0x0A27,0x0000, /* 2934 */ +0x0A28,0x0000, 0x0A29,0x0000, 0x0A2A,0x0000, 0x0A2B,0x0000, /* 2938 */ +0x0A2C,0x0000, 0x0A2D,0x0000, 0x0A2E,0x0000, 0x0A2F,0x0000, /* 293C */ +0x0A30,0x0000, 0x0A31,0x0000, 0x0A32,0x0000, 0x0A33,0x0000, /* 2940 */ +0x0A34,0x0000, 0x0A35,0x0000, 0x0A36,0x0000, 0x0A37,0x0000, /* 2944 */ +0x0A38,0x0000, 0x0A39,0x0000, 0x0A3A,0x0000, 0x0A3B,0x0000, /* 2948 */ +0x0A3C,0x0000, 0x0A3D,0x0000, 0x0A3E,0x0000, 0x0A3F,0x0000, /* 294C */ +0x0A40,0x0000, 0x0A41,0x0000, 0x0A42,0x0000, 0x0A43,0x0000, /* 2950 */ +0x0A44,0x0000, 0x0A45,0x0000, 0x0A46,0x0000, 0x0A47,0x0000, /* 2954 */ +0x0A48,0x0000, 0x0A49,0x0000, 0x0A4A,0x0000, 0x0A4B,0x0000, /* 2958 */ +0x0A4C,0x0000, 0x0A4D,0x0000, 0x0A4E,0x0000, 0x0A4F,0x0000, /* 295C */ +0x0A50,0x0000, 0x0A51,0x0000, 0x0A52,0x0000, 0x0A53,0x0000, /* 2960 */ +0x0A54,0x0000, 0x0A55,0x0000, 0x0A56,0x0000, 0x0A57,0x0000, /* 2964 */ +0x0A58,0x0000, 0x0A59,0x0000, 0x0A5A,0x0000, 0x0A5B,0x0000, /* 2968 */ +0x0A5C,0x0000, 0x0A5D,0x0000, 0x0A5E,0x0000, 0x0A5F,0x0000, /* 296C */ +0x0A60,0x0000, 0x0A61,0x0000, 0x0A62,0x0000, 0x0A63,0x0000, /* 2970 */ +0x0A64,0x0000, 0x0A65,0x0000, 0x0A66,0x0000, 0x0A67,0x0000, /* 2974 */ +0x0A68,0x0000, 0x0A69,0x0000, 0x0A6A,0x0000, 0x0A6B,0x0000, /* 2978 */ +0x0A6C,0x0000, 0x0A6D,0x0000, 0x0A6E,0x0000, 0x0A6F,0x0000, /* 297C */ +0x0A70,0x0000, 0x0A71,0x0000, 0x0A72,0x0000, 0x030F,0x0000, /* 2980 */ +0x0310,0x0000, 0x0311,0x0000, 0x0312,0x0000, 0x0313,0x0000, /* 2984 */ +0x0314,0x0000, 0x0315,0x0000, 0x0316,0x0000, 0x0317,0x0000, /* 2988 */ +0x0318,0x0000, 0x0319,0x0000, 0x031A,0x0000, 0x031B,0x0000, /* 298C */ +0x031C,0x0000, 0x031D,0x0000, 0x031E,0x0000, 0x031F,0x0000, /* 2990 */ +0x0320,0x0000, 0x0321,0x0000, 0x0322,0x0000, 0x0323,0x0000, /* 2994 */ +0x0324,0x0000, 0x0A73,0x0000, 0x0A74,0x0000, 0x0A75,0x0000, /* 2998 */ +0x0A76,0x0000, 0x0A77,0x0000, 0x0A78,0x0000, 0x0A79,0x0000, /* 299C */ +0x0A7A,0x0000, 0x0A7B,0x0000, 0x0A7C,0x0000, 0x0A7D,0x0000, /* 29A0 */ +0x0A7E,0x0000, 0x0A7F,0x0000, 0x0A80,0x0000, 0x0A81,0x0000, /* 29A4 */ +0x0A82,0x0000, 0x0A83,0x0000, 0x0A84,0x0000, 0x0A85,0x0000, /* 29A8 */ +0x0A86,0x0000, 0x0A87,0x0000, 0x0A88,0x0000, 0x0A89,0x0000, /* 29AC */ +0x0A8A,0x0000, 0x0A8B,0x0000, 0x0A8C,0x0000, 0x0A8D,0x0000, /* 29B0 */ +0x0A8E,0x0000, 0x0A8F,0x0000, 0x0A90,0x0000, 0x0A91,0x0000, /* 29B4 */ +0x0A92,0x0000, 0x0A93,0x0000, 0x0A94,0x0000, 0x0A95,0x0000, /* 29B8 */ +0x0A96,0x0000, 0x0A97,0x0000, 0x0A98,0x0000, 0x0A99,0x0000, /* 29BC */ +0x0A9A,0x0000, 0x0A9B,0x0000, 0x0A9C,0x0000, 0x0A9D,0x0000, /* 29C0 */ +0x0A9E,0x0000, 0x0A9F,0x0000, 0x0AA0,0x0000, 0x0AA1,0x0000, /* 29C4 */ +0x0AA2,0x0000, 0x0AA3,0x0000, 0x0AA4,0x0000, 0x0AA5,0x0000, /* 29C8 */ +0x0AA6,0x0000, 0x0AA7,0x0000, 0x0AA8,0x0000, 0x0AA9,0x0000, /* 29CC */ +0x0AAA,0x0000, 0x0AAB,0x0000, 0x0AAC,0x0000, 0x0AAD,0x0000, /* 29D0 */ +0x0AAE,0x0000, 0x0AAF,0x0000, 0x0AB0,0x0000, 0x0AB1,0x0000, /* 29D4 */ +0x0AB2,0x0000, 0x0AB3,0x0000, 0x0AB4,0x0000, 0x0AB5,0x0000, /* 29D8 */ +0x0AB6,0x0000, 0x0AB7,0x0000, 0x0AB8,0x0000, 0x0AB9,0x0000, /* 29DC */ +0x0ABA,0x0000, 0x0ABB,0x0000, 0x0ABC,0x0000, 0x0ABD,0x0000, /* 29E0 */ +0x0ABE,0x0000, 0x0ABF,0x0000, 0x0AC0,0x0000, 0x0AC1,0x0000, /* 29E4 */ +0x0AC2,0x0000, 0x0AC3,0x0000, 0x0AC4,0x0000, 0x0AC5,0x0000, /* 29E8 */ +0x0AC6,0x0000, 0x0AC7,0x0000, 0x0AC8,0x0000, 0x0AC9,0x0000, /* 29EC */ +0x0ACA,0x0000, 0x0ACB,0x0000, 0x0ACC,0x0000, 0x0ACD,0x0000, /* 29F0 */ +0x0ACE,0x0000, 0x0ACF,0x0000, 0x0AD0,0x0000, 0x0AD1,0x0000, /* 29F4 */ +0x0AD2,0x0000, 0x0AD3,0x0000, 0x0AD4,0x0000, 0x0AD5,0x0000, /* 29F8 */ +0x030D,0x0000, 0x030E,0x0000, 0x0AD6,0x0000, 0x0AD7,0x0000 /* 29FC */ +}; + +uint16 uca520_p02A[]= { /* 2A00 (5 weights per char) */ +0x0AD8,0x0000,0x0000,0x0000,0x0000, /* 2A00 */ +0x0AD9,0x0000,0x0000,0x0000,0x0000, /* 2A01 */ +0x0ADA,0x0000,0x0000,0x0000,0x0000, /* 2A02 */ +0x0ADB,0x0000,0x0000,0x0000,0x0000, /* 2A03 */ +0x0ADC,0x0000,0x0000,0x0000,0x0000, /* 2A04 */ +0x0ADD,0x0000,0x0000,0x0000,0x0000, /* 2A05 */ +0x0ADE,0x0000,0x0000,0x0000,0x0000, /* 2A06 */ +0x0ADF,0x0000,0x0000,0x0000,0x0000, /* 2A07 */ +0x0AE0,0x0000,0x0000,0x0000,0x0000, /* 2A08 */ +0x0AE1,0x0000,0x0000,0x0000,0x0000, /* 2A09 */ +0x0AE2,0x0000,0x0000,0x0000,0x0000, /* 2A0A */ +0x0AE3,0x0000,0x0000,0x0000,0x0000, /* 2A0B */ +0x0575,0x0575,0x0575,0x0575,0x0000, /* 2A0C */ +0x0AE4,0x0000,0x0000,0x0000,0x0000, /* 2A0D */ +0x0AE5,0x0000,0x0000,0x0000,0x0000, /* 2A0E */ +0x0AE6,0x0000,0x0000,0x0000,0x0000, /* 2A0F */ +0x0AE7,0x0000,0x0000,0x0000,0x0000, /* 2A10 */ +0x0AE8,0x0000,0x0000,0x0000,0x0000, /* 2A11 */ +0x0AE9,0x0000,0x0000,0x0000,0x0000, /* 2A12 */ +0x0AEA,0x0000,0x0000,0x0000,0x0000, /* 2A13 */ +0x0AEB,0x0000,0x0000,0x0000,0x0000, /* 2A14 */ +0x0AEC,0x0000,0x0000,0x0000,0x0000, /* 2A15 */ +0x0AED,0x0000,0x0000,0x0000,0x0000, /* 2A16 */ +0x0AEE,0x0000,0x0000,0x0000,0x0000, /* 2A17 */ +0x0AEF,0x0000,0x0000,0x0000,0x0000, /* 2A18 */ +0x0AF0,0x0000,0x0000,0x0000,0x0000, /* 2A19 */ +0x0AF1,0x0000,0x0000,0x0000,0x0000, /* 2A1A */ +0x0AF2,0x0000,0x0000,0x0000,0x0000, /* 2A1B */ +0x0AF3,0x0000,0x0000,0x0000,0x0000, /* 2A1C */ +0x0AF4,0x0000,0x0000,0x0000,0x0000, /* 2A1D */ +0x0AF5,0x0000,0x0000,0x0000,0x0000, /* 2A1E */ +0x0AF6,0x0000,0x0000,0x0000,0x0000, /* 2A1F */ +0x0AF7,0x0000,0x0000,0x0000,0x0000, /* 2A20 */ +0x0AF8,0x0000,0x0000,0x0000,0x0000, /* 2A21 */ +0x0AF9,0x0000,0x0000,0x0000,0x0000, /* 2A22 */ +0x0AFA,0x0000,0x0000,0x0000,0x0000, /* 2A23 */ +0x0AFB,0x0000,0x0000,0x0000,0x0000, /* 2A24 */ +0x0AFC,0x0000,0x0000,0x0000,0x0000, /* 2A25 */ +0x0AFD,0x0000,0x0000,0x0000,0x0000, /* 2A26 */ +0x0AFE,0x0000,0x0000,0x0000,0x0000, /* 2A27 */ +0x0AFF,0x0000,0x0000,0x0000,0x0000, /* 2A28 */ +0x0B00,0x0000,0x0000,0x0000,0x0000, /* 2A29 */ +0x0B01,0x0000,0x0000,0x0000,0x0000, /* 2A2A */ +0x0B02,0x0000,0x0000,0x0000,0x0000, /* 2A2B */ +0x0B03,0x0000,0x0000,0x0000,0x0000, /* 2A2C */ +0x0B04,0x0000,0x0000,0x0000,0x0000, /* 2A2D */ +0x0B05,0x0000,0x0000,0x0000,0x0000, /* 2A2E */ +0x0B06,0x0000,0x0000,0x0000,0x0000, /* 2A2F */ +0x0B07,0x0000,0x0000,0x0000,0x0000, /* 2A30 */ +0x0B08,0x0000,0x0000,0x0000,0x0000, /* 2A31 */ +0x0B09,0x0000,0x0000,0x0000,0x0000, /* 2A32 */ +0x0B0A,0x0000,0x0000,0x0000,0x0000, /* 2A33 */ +0x0B0B,0x0000,0x0000,0x0000,0x0000, /* 2A34 */ +0x0B0C,0x0000,0x0000,0x0000,0x0000, /* 2A35 */ +0x0B0D,0x0000,0x0000,0x0000,0x0000, /* 2A36 */ +0x0B0E,0x0000,0x0000,0x0000,0x0000, /* 2A37 */ +0x0B0F,0x0000,0x0000,0x0000,0x0000, /* 2A38 */ +0x0B10,0x0000,0x0000,0x0000,0x0000, /* 2A39 */ +0x0B11,0x0000,0x0000,0x0000,0x0000, /* 2A3A */ +0x0B12,0x0000,0x0000,0x0000,0x0000, /* 2A3B */ +0x0B13,0x0000,0x0000,0x0000,0x0000, /* 2A3C */ +0x0B14,0x0000,0x0000,0x0000,0x0000, /* 2A3D */ +0x0B15,0x0000,0x0000,0x0000,0x0000, /* 2A3E */ +0x0B16,0x0000,0x0000,0x0000,0x0000, /* 2A3F */ +0x0B17,0x0000,0x0000,0x0000,0x0000, /* 2A40 */ +0x0B18,0x0000,0x0000,0x0000,0x0000, /* 2A41 */ +0x0B19,0x0000,0x0000,0x0000,0x0000, /* 2A42 */ +0x0B1A,0x0000,0x0000,0x0000,0x0000, /* 2A43 */ +0x0B1B,0x0000,0x0000,0x0000,0x0000, /* 2A44 */ +0x0B1C,0x0000,0x0000,0x0000,0x0000, /* 2A45 */ +0x0B1D,0x0000,0x0000,0x0000,0x0000, /* 2A46 */ +0x0B1E,0x0000,0x0000,0x0000,0x0000, /* 2A47 */ +0x0B1F,0x0000,0x0000,0x0000,0x0000, /* 2A48 */ +0x0B20,0x0000,0x0000,0x0000,0x0000, /* 2A49 */ +0x0B21,0x0000,0x0000,0x0000,0x0000, /* 2A4A */ +0x0B22,0x0000,0x0000,0x0000,0x0000, /* 2A4B */ +0x0B23,0x0000,0x0000,0x0000,0x0000, /* 2A4C */ +0x0B24,0x0000,0x0000,0x0000,0x0000, /* 2A4D */ +0x0B25,0x0000,0x0000,0x0000,0x0000, /* 2A4E */ +0x0B26,0x0000,0x0000,0x0000,0x0000, /* 2A4F */ +0x0B27,0x0000,0x0000,0x0000,0x0000, /* 2A50 */ +0x0B28,0x0000,0x0000,0x0000,0x0000, /* 2A51 */ +0x0B29,0x0000,0x0000,0x0000,0x0000, /* 2A52 */ +0x0B2A,0x0000,0x0000,0x0000,0x0000, /* 2A53 */ +0x0B2B,0x0000,0x0000,0x0000,0x0000, /* 2A54 */ +0x0B2C,0x0000,0x0000,0x0000,0x0000, /* 2A55 */ +0x0B2D,0x0000,0x0000,0x0000,0x0000, /* 2A56 */ +0x0B2E,0x0000,0x0000,0x0000,0x0000, /* 2A57 */ +0x0B2F,0x0000,0x0000,0x0000,0x0000, /* 2A58 */ +0x0B30,0x0000,0x0000,0x0000,0x0000, /* 2A59 */ +0x0B31,0x0000,0x0000,0x0000,0x0000, /* 2A5A */ +0x0B32,0x0000,0x0000,0x0000,0x0000, /* 2A5B */ +0x0B33,0x0000,0x0000,0x0000,0x0000, /* 2A5C */ +0x0B34,0x0000,0x0000,0x0000,0x0000, /* 2A5D */ +0x0B35,0x0000,0x0000,0x0000,0x0000, /* 2A5E */ +0x0B36,0x0000,0x0000,0x0000,0x0000, /* 2A5F */ +0x0B37,0x0000,0x0000,0x0000,0x0000, /* 2A60 */ +0x0B38,0x0000,0x0000,0x0000,0x0000, /* 2A61 */ +0x0B39,0x0000,0x0000,0x0000,0x0000, /* 2A62 */ +0x0B3A,0x0000,0x0000,0x0000,0x0000, /* 2A63 */ +0x0B3B,0x0000,0x0000,0x0000,0x0000, /* 2A64 */ +0x0B3C,0x0000,0x0000,0x0000,0x0000, /* 2A65 */ +0x0B3D,0x0000,0x0000,0x0000,0x0000, /* 2A66 */ +0x0B3E,0x0000,0x0000,0x0000,0x0000, /* 2A67 */ +0x0B3F,0x0000,0x0000,0x0000,0x0000, /* 2A68 */ +0x0B40,0x0000,0x0000,0x0000,0x0000, /* 2A69 */ +0x0B41,0x0000,0x0000,0x0000,0x0000, /* 2A6A */ +0x0B42,0x0000,0x0000,0x0000,0x0000, /* 2A6B */ +0x0B43,0x0000,0x0000,0x0000,0x0000, /* 2A6C */ +0x0B44,0x0000,0x0000,0x0000,0x0000, /* 2A6D */ +0x0B45,0x0000,0x0000,0x0000,0x0000, /* 2A6E */ +0x0B46,0x0000,0x0000,0x0000,0x0000, /* 2A6F */ +0x0B47,0x0000,0x0000,0x0000,0x0000, /* 2A70 */ +0x0B48,0x0000,0x0000,0x0000,0x0000, /* 2A71 */ +0x0B49,0x0000,0x0000,0x0000,0x0000, /* 2A72 */ +0x0B4A,0x0000,0x0000,0x0000,0x0000, /* 2A73 */ +0x0247,0x0247,0x0555,0x0000,0x0000, /* 2A74 */ +0x0555,0x0555,0x0000,0x0000,0x0000, /* 2A75 */ +0x0555,0x0555,0x0555,0x0000,0x0000, /* 2A76 */ +0x0B4B,0x0000,0x0000,0x0000,0x0000, /* 2A77 */ +0x0B4C,0x0000,0x0000,0x0000,0x0000, /* 2A78 */ +0x0B4D,0x0000,0x0000,0x0000,0x0000, /* 2A79 */ +0x0B4E,0x0000,0x0000,0x0000,0x0000, /* 2A7A */ +0x0B4F,0x0000,0x0000,0x0000,0x0000, /* 2A7B */ +0x0B50,0x0000,0x0000,0x0000,0x0000, /* 2A7C */ +0x0B51,0x0000,0x0000,0x0000,0x0000, /* 2A7D */ +0x0B52,0x0000,0x0000,0x0000,0x0000, /* 2A7E */ +0x0B53,0x0000,0x0000,0x0000,0x0000, /* 2A7F */ +0x0B54,0x0000,0x0000,0x0000,0x0000, /* 2A80 */ +0x0B55,0x0000,0x0000,0x0000,0x0000, /* 2A81 */ +0x0B56,0x0000,0x0000,0x0000,0x0000, /* 2A82 */ +0x0B57,0x0000,0x0000,0x0000,0x0000, /* 2A83 */ +0x0B58,0x0000,0x0000,0x0000,0x0000, /* 2A84 */ +0x0B59,0x0000,0x0000,0x0000,0x0000, /* 2A85 */ +0x0B5A,0x0000,0x0000,0x0000,0x0000, /* 2A86 */ +0x0B5B,0x0000,0x0000,0x0000,0x0000, /* 2A87 */ +0x0B5C,0x0000,0x0000,0x0000,0x0000, /* 2A88 */ +0x0B5D,0x0000,0x0000,0x0000,0x0000, /* 2A89 */ +0x0B5E,0x0000,0x0000,0x0000,0x0000, /* 2A8A */ +0x0B5F,0x0000,0x0000,0x0000,0x0000, /* 2A8B */ +0x0B60,0x0000,0x0000,0x0000,0x0000, /* 2A8C */ +0x0B61,0x0000,0x0000,0x0000,0x0000, /* 2A8D */ +0x0B62,0x0000,0x0000,0x0000,0x0000, /* 2A8E */ +0x0B63,0x0000,0x0000,0x0000,0x0000, /* 2A8F */ +0x0B64,0x0000,0x0000,0x0000,0x0000, /* 2A90 */ +0x0B65,0x0000,0x0000,0x0000,0x0000, /* 2A91 */ +0x0B66,0x0000,0x0000,0x0000,0x0000, /* 2A92 */ +0x0B67,0x0000,0x0000,0x0000,0x0000, /* 2A93 */ +0x0B68,0x0000,0x0000,0x0000,0x0000, /* 2A94 */ +0x0B69,0x0000,0x0000,0x0000,0x0000, /* 2A95 */ +0x0B6A,0x0000,0x0000,0x0000,0x0000, /* 2A96 */ +0x0B6B,0x0000,0x0000,0x0000,0x0000, /* 2A97 */ +0x0B6C,0x0000,0x0000,0x0000,0x0000, /* 2A98 */ +0x0B6D,0x0000,0x0000,0x0000,0x0000, /* 2A99 */ +0x0B6E,0x0000,0x0000,0x0000,0x0000, /* 2A9A */ +0x0B6F,0x0000,0x0000,0x0000,0x0000, /* 2A9B */ +0x0B70,0x0000,0x0000,0x0000,0x0000, /* 2A9C */ +0x0B71,0x0000,0x0000,0x0000,0x0000, /* 2A9D */ +0x0B72,0x0000,0x0000,0x0000,0x0000, /* 2A9E */ +0x0B73,0x0000,0x0000,0x0000,0x0000, /* 2A9F */ +0x0B74,0x0000,0x0000,0x0000,0x0000, /* 2AA0 */ +0x0B75,0x0000,0x0000,0x0000,0x0000, /* 2AA1 */ +0x0B76,0x0000,0x0000,0x0000,0x0000, /* 2AA2 */ +0x0B77,0x0000,0x0000,0x0000,0x0000, /* 2AA3 */ +0x0B78,0x0000,0x0000,0x0000,0x0000, /* 2AA4 */ +0x0B79,0x0000,0x0000,0x0000,0x0000, /* 2AA5 */ +0x0B7A,0x0000,0x0000,0x0000,0x0000, /* 2AA6 */ +0x0B7B,0x0000,0x0000,0x0000,0x0000, /* 2AA7 */ +0x0B7C,0x0000,0x0000,0x0000,0x0000, /* 2AA8 */ +0x0B7D,0x0000,0x0000,0x0000,0x0000, /* 2AA9 */ +0x0B7E,0x0000,0x0000,0x0000,0x0000, /* 2AAA */ +0x0B7F,0x0000,0x0000,0x0000,0x0000, /* 2AAB */ +0x0B80,0x0000,0x0000,0x0000,0x0000, /* 2AAC */ +0x0B81,0x0000,0x0000,0x0000,0x0000, /* 2AAD */ +0x0B82,0x0000,0x0000,0x0000,0x0000, /* 2AAE */ +0x0B83,0x0000,0x0000,0x0000,0x0000, /* 2AAF */ +0x0B84,0x0000,0x0000,0x0000,0x0000, /* 2AB0 */ +0x0B85,0x0000,0x0000,0x0000,0x0000, /* 2AB1 */ +0x0B86,0x0000,0x0000,0x0000,0x0000, /* 2AB2 */ +0x0B87,0x0000,0x0000,0x0000,0x0000, /* 2AB3 */ +0x0B88,0x0000,0x0000,0x0000,0x0000, /* 2AB4 */ +0x0B89,0x0000,0x0000,0x0000,0x0000, /* 2AB5 */ +0x0B8A,0x0000,0x0000,0x0000,0x0000, /* 2AB6 */ +0x0B8B,0x0000,0x0000,0x0000,0x0000, /* 2AB7 */ +0x0B8C,0x0000,0x0000,0x0000,0x0000, /* 2AB8 */ +0x0B8D,0x0000,0x0000,0x0000,0x0000, /* 2AB9 */ +0x0B8E,0x0000,0x0000,0x0000,0x0000, /* 2ABA */ +0x0B8F,0x0000,0x0000,0x0000,0x0000, /* 2ABB */ +0x0B90,0x0000,0x0000,0x0000,0x0000, /* 2ABC */ +0x0B91,0x0000,0x0000,0x0000,0x0000, /* 2ABD */ +0x0B92,0x0000,0x0000,0x0000,0x0000, /* 2ABE */ +0x0B93,0x0000,0x0000,0x0000,0x0000, /* 2ABF */ +0x0B94,0x0000,0x0000,0x0000,0x0000, /* 2AC0 */ +0x0B95,0x0000,0x0000,0x0000,0x0000, /* 2AC1 */ +0x0B96,0x0000,0x0000,0x0000,0x0000, /* 2AC2 */ +0x0B97,0x0000,0x0000,0x0000,0x0000, /* 2AC3 */ +0x0B98,0x0000,0x0000,0x0000,0x0000, /* 2AC4 */ +0x0B99,0x0000,0x0000,0x0000,0x0000, /* 2AC5 */ +0x0B9A,0x0000,0x0000,0x0000,0x0000, /* 2AC6 */ +0x0B9B,0x0000,0x0000,0x0000,0x0000, /* 2AC7 */ +0x0B9C,0x0000,0x0000,0x0000,0x0000, /* 2AC8 */ +0x0B9D,0x0000,0x0000,0x0000,0x0000, /* 2AC9 */ +0x0B9E,0x0000,0x0000,0x0000,0x0000, /* 2ACA */ +0x0B9F,0x0000,0x0000,0x0000,0x0000, /* 2ACB */ +0x0BA0,0x0000,0x0000,0x0000,0x0000, /* 2ACC */ +0x0BA1,0x0000,0x0000,0x0000,0x0000, /* 2ACD */ +0x0BA2,0x0000,0x0000,0x0000,0x0000, /* 2ACE */ +0x0BA3,0x0000,0x0000,0x0000,0x0000, /* 2ACF */ +0x0BA4,0x0000,0x0000,0x0000,0x0000, /* 2AD0 */ +0x0BA5,0x0000,0x0000,0x0000,0x0000, /* 2AD1 */ +0x0BA6,0x0000,0x0000,0x0000,0x0000, /* 2AD2 */ +0x0BA7,0x0000,0x0000,0x0000,0x0000, /* 2AD3 */ +0x0BA8,0x0000,0x0000,0x0000,0x0000, /* 2AD4 */ +0x0BA9,0x0000,0x0000,0x0000,0x0000, /* 2AD5 */ +0x0BAA,0x0000,0x0000,0x0000,0x0000, /* 2AD6 */ +0x0BAB,0x0000,0x0000,0x0000,0x0000, /* 2AD7 */ +0x0BAC,0x0000,0x0000,0x0000,0x0000, /* 2AD8 */ +0x0BAD,0x0000,0x0000,0x0000,0x0000, /* 2AD9 */ +0x0BAE,0x0000,0x0000,0x0000,0x0000, /* 2ADA */ +0x0BAF,0x0000,0x0000,0x0000,0x0000, /* 2ADB */ +0x0BB0,0x0000,0x0000,0x0000,0x0000, /* 2ADC */ +0x0BB0,0x0000,0x0000,0x0000,0x0000, /* 2ADD */ +0x0BB1,0x0000,0x0000,0x0000,0x0000, /* 2ADE */ +0x0BB2,0x0000,0x0000,0x0000,0x0000, /* 2ADF */ +0x0BB3,0x0000,0x0000,0x0000,0x0000, /* 2AE0 */ +0x0BB4,0x0000,0x0000,0x0000,0x0000, /* 2AE1 */ +0x0BB5,0x0000,0x0000,0x0000,0x0000, /* 2AE2 */ +0x0BB6,0x0000,0x0000,0x0000,0x0000, /* 2AE3 */ +0x0BB7,0x0000,0x0000,0x0000,0x0000, /* 2AE4 */ +0x0BB8,0x0000,0x0000,0x0000,0x0000, /* 2AE5 */ +0x0BB9,0x0000,0x0000,0x0000,0x0000, /* 2AE6 */ +0x0BBA,0x0000,0x0000,0x0000,0x0000, /* 2AE7 */ +0x0BBB,0x0000,0x0000,0x0000,0x0000, /* 2AE8 */ +0x0BBC,0x0000,0x0000,0x0000,0x0000, /* 2AE9 */ +0x0BBD,0x0000,0x0000,0x0000,0x0000, /* 2AEA */ +0x0BBE,0x0000,0x0000,0x0000,0x0000, /* 2AEB */ +0x0BBF,0x0000,0x0000,0x0000,0x0000, /* 2AEC */ +0x0BC0,0x0000,0x0000,0x0000,0x0000, /* 2AED */ +0x0BC1,0x0000,0x0000,0x0000,0x0000, /* 2AEE */ +0x0BC2,0x0000,0x0000,0x0000,0x0000, /* 2AEF */ +0x0BC3,0x0000,0x0000,0x0000,0x0000, /* 2AF0 */ +0x0BC4,0x0000,0x0000,0x0000,0x0000, /* 2AF1 */ +0x0BC5,0x0000,0x0000,0x0000,0x0000, /* 2AF2 */ +0x0BC6,0x0000,0x0000,0x0000,0x0000, /* 2AF3 */ +0x0BC7,0x0000,0x0000,0x0000,0x0000, /* 2AF4 */ +0x0BC8,0x0000,0x0000,0x0000,0x0000, /* 2AF5 */ +0x0BC9,0x0000,0x0000,0x0000,0x0000, /* 2AF6 */ +0x0BCA,0x0000,0x0000,0x0000,0x0000, /* 2AF7 */ +0x0BCB,0x0000,0x0000,0x0000,0x0000, /* 2AF8 */ +0x0BCC,0x0000,0x0000,0x0000,0x0000, /* 2AF9 */ +0x0BCD,0x0000,0x0000,0x0000,0x0000, /* 2AFA */ +0x0BCE,0x0000,0x0000,0x0000,0x0000, /* 2AFB */ +0x0BCF,0x0000,0x0000,0x0000,0x0000, /* 2AFC */ +0x0BD0,0x0000,0x0000,0x0000,0x0000, /* 2AFD */ +0x0BD1,0x0000,0x0000,0x0000,0x0000, /* 2AFE */ +0x0BD2,0x0000,0x0000,0x0000,0x0000 /* 2AFF */ +}; + +uint16 uca520_p02B[]= { /* 2B00 (3 weights per char) */ +0x0BD3,0x0000,0x0000, 0x0BD4,0x0000,0x0000, 0x0BD5,0x0000,0x0000, /* 2B00 */ +0x0BD6,0x0000,0x0000, 0x0BD7,0x0000,0x0000, 0x0BD8,0x0000,0x0000, /* 2B03 */ +0x0BD9,0x0000,0x0000, 0x0BDA,0x0000,0x0000, 0x0BDB,0x0000,0x0000, /* 2B06 */ +0x0BDC,0x0000,0x0000, 0x0BDD,0x0000,0x0000, 0x0BDE,0x0000,0x0000, /* 2B09 */ +0x0BDF,0x0000,0x0000, 0x0BE0,0x0000,0x0000, 0x0BE1,0x0000,0x0000, /* 2B0C */ +0x0BE2,0x0000,0x0000, 0x0BE3,0x0000,0x0000, 0x0BE4,0x0000,0x0000, /* 2B0F */ +0x0BE5,0x0000,0x0000, 0x0BE6,0x0000,0x0000, 0x0BE7,0x0000,0x0000, /* 2B12 */ +0x0BE8,0x0000,0x0000, 0x0BE9,0x0000,0x0000, 0x0BEA,0x0000,0x0000, /* 2B15 */ +0x0BEB,0x0000,0x0000, 0x0BEC,0x0000,0x0000, 0x0BED,0x0000,0x0000, /* 2B18 */ +0x0BEE,0x0000,0x0000, 0x0BEF,0x0000,0x0000, 0x0BF0,0x0000,0x0000, /* 2B1B */ +0x0BF1,0x0000,0x0000, 0x0BF2,0x0000,0x0000, 0x0BF3,0x0000,0x0000, /* 2B1E */ +0x0BF4,0x0000,0x0000, 0x0BF5,0x0000,0x0000, 0x0BF6,0x0000,0x0000, /* 2B21 */ +0x0BF7,0x0000,0x0000, 0x0BF8,0x0000,0x0000, 0x0BF9,0x0000,0x0000, /* 2B24 */ +0x0BFA,0x0000,0x0000, 0x0BFB,0x0000,0x0000, 0x0BFC,0x0000,0x0000, /* 2B27 */ +0x0BFD,0x0000,0x0000, 0x0BFE,0x0000,0x0000, 0x0BFF,0x0000,0x0000, /* 2B2A */ +0x0C00,0x0000,0x0000, 0x0C01,0x0000,0x0000, 0x0C02,0x0000,0x0000, /* 2B2D */ +0x0C03,0x0000,0x0000, 0x0C04,0x0000,0x0000, 0x0C05,0x0000,0x0000, /* 2B30 */ +0x0C06,0x0000,0x0000, 0x0C07,0x0000,0x0000, 0x0C08,0x0000,0x0000, /* 2B33 */ +0x0C09,0x0000,0x0000, 0x0C0A,0x0000,0x0000, 0x0C0B,0x0000,0x0000, /* 2B36 */ +0x0C0C,0x0000,0x0000, 0x0C0D,0x0000,0x0000, 0x0C0E,0x0000,0x0000, /* 2B39 */ +0x0C0F,0x0000,0x0000, 0x0C10,0x0000,0x0000, 0x0C11,0x0000,0x0000, /* 2B3C */ +0x0C12,0x0000,0x0000, 0x0C13,0x0000,0x0000, 0x0C14,0x0000,0x0000, /* 2B3F */ +0x0C15,0x0000,0x0000, 0x0C16,0x0000,0x0000, 0x0C17,0x0000,0x0000, /* 2B42 */ +0x0C18,0x0000,0x0000, 0x0C19,0x0000,0x0000, 0x0C1A,0x0000,0x0000, /* 2B45 */ +0x0C1B,0x0000,0x0000, 0x0C1C,0x0000,0x0000, 0x0C1D,0x0000,0x0000, /* 2B48 */ +0x0C1E,0x0000,0x0000, 0x0C1F,0x0000,0x0000, 0xFBC0,0xAB4D,0x0000, /* 2B4B */ +0xFBC0,0xAB4E,0x0000, 0xFBC0,0xAB4F,0x0000, 0x0C20,0x0000,0x0000, /* 2B4E */ +0x0C21,0x0000,0x0000, 0x0C22,0x0000,0x0000, 0x0C23,0x0000,0x0000, /* 2B51 */ +0x0C24,0x0000,0x0000, 0x0C25,0x0000,0x0000, 0x0C26,0x0000,0x0000, /* 2B54 */ +0x0C27,0x0000,0x0000, 0x0C28,0x0000,0x0000, 0x0C29,0x0000,0x0000, /* 2B57 */ +0xFBC0,0xAB5A,0x0000, 0xFBC0,0xAB5B,0x0000, 0xFBC0,0xAB5C,0x0000, /* 2B5A */ +0xFBC0,0xAB5D,0x0000, 0xFBC0,0xAB5E,0x0000, 0xFBC0,0xAB5F,0x0000, /* 2B5D */ +0xFBC0,0xAB60,0x0000, 0xFBC0,0xAB61,0x0000, 0xFBC0,0xAB62,0x0000, /* 2B60 */ +0xFBC0,0xAB63,0x0000, 0xFBC0,0xAB64,0x0000, 0xFBC0,0xAB65,0x0000, /* 2B63 */ +0xFBC0,0xAB66,0x0000, 0xFBC0,0xAB67,0x0000, 0xFBC0,0xAB68,0x0000, /* 2B66 */ +0xFBC0,0xAB69,0x0000, 0xFBC0,0xAB6A,0x0000, 0xFBC0,0xAB6B,0x0000, /* 2B69 */ +0xFBC0,0xAB6C,0x0000, 0xFBC0,0xAB6D,0x0000, 0xFBC0,0xAB6E,0x0000, /* 2B6C */ +0xFBC0,0xAB6F,0x0000, 0xFBC0,0xAB70,0x0000, 0xFBC0,0xAB71,0x0000, /* 2B6F */ +0xFBC0,0xAB72,0x0000, 0xFBC0,0xAB73,0x0000, 0xFBC0,0xAB74,0x0000, /* 2B72 */ +0xFBC0,0xAB75,0x0000, 0xFBC0,0xAB76,0x0000, 0xFBC0,0xAB77,0x0000, /* 2B75 */ +0xFBC0,0xAB78,0x0000, 0xFBC0,0xAB79,0x0000, 0xFBC0,0xAB7A,0x0000, /* 2B78 */ +0xFBC0,0xAB7B,0x0000, 0xFBC0,0xAB7C,0x0000, 0xFBC0,0xAB7D,0x0000, /* 2B7B */ +0xFBC0,0xAB7E,0x0000, 0xFBC0,0xAB7F,0x0000, 0xFBC0,0xAB80,0x0000, /* 2B7E */ +0xFBC0,0xAB81,0x0000, 0xFBC0,0xAB82,0x0000, 0xFBC0,0xAB83,0x0000, /* 2B81 */ +0xFBC0,0xAB84,0x0000, 0xFBC0,0xAB85,0x0000, 0xFBC0,0xAB86,0x0000, /* 2B84 */ +0xFBC0,0xAB87,0x0000, 0xFBC0,0xAB88,0x0000, 0xFBC0,0xAB89,0x0000, /* 2B87 */ +0xFBC0,0xAB8A,0x0000, 0xFBC0,0xAB8B,0x0000, 0xFBC0,0xAB8C,0x0000, /* 2B8A */ +0xFBC0,0xAB8D,0x0000, 0xFBC0,0xAB8E,0x0000, 0xFBC0,0xAB8F,0x0000, /* 2B8D */ +0xFBC0,0xAB90,0x0000, 0xFBC0,0xAB91,0x0000, 0xFBC0,0xAB92,0x0000, /* 2B90 */ +0xFBC0,0xAB93,0x0000, 0xFBC0,0xAB94,0x0000, 0xFBC0,0xAB95,0x0000, /* 2B93 */ +0xFBC0,0xAB96,0x0000, 0xFBC0,0xAB97,0x0000, 0xFBC0,0xAB98,0x0000, /* 2B96 */ +0xFBC0,0xAB99,0x0000, 0xFBC0,0xAB9A,0x0000, 0xFBC0,0xAB9B,0x0000, /* 2B99 */ +0xFBC0,0xAB9C,0x0000, 0xFBC0,0xAB9D,0x0000, 0xFBC0,0xAB9E,0x0000, /* 2B9C */ +0xFBC0,0xAB9F,0x0000, 0xFBC0,0xABA0,0x0000, 0xFBC0,0xABA1,0x0000, /* 2B9F */ +0xFBC0,0xABA2,0x0000, 0xFBC0,0xABA3,0x0000, 0xFBC0,0xABA4,0x0000, /* 2BA2 */ +0xFBC0,0xABA5,0x0000, 0xFBC0,0xABA6,0x0000, 0xFBC0,0xABA7,0x0000, /* 2BA5 */ +0xFBC0,0xABA8,0x0000, 0xFBC0,0xABA9,0x0000, 0xFBC0,0xABAA,0x0000, /* 2BA8 */ +0xFBC0,0xABAB,0x0000, 0xFBC0,0xABAC,0x0000, 0xFBC0,0xABAD,0x0000, /* 2BAB */ +0xFBC0,0xABAE,0x0000, 0xFBC0,0xABAF,0x0000, 0xFBC0,0xABB0,0x0000, /* 2BAE */ +0xFBC0,0xABB1,0x0000, 0xFBC0,0xABB2,0x0000, 0xFBC0,0xABB3,0x0000, /* 2BB1 */ +0xFBC0,0xABB4,0x0000, 0xFBC0,0xABB5,0x0000, 0xFBC0,0xABB6,0x0000, /* 2BB4 */ +0xFBC0,0xABB7,0x0000, 0xFBC0,0xABB8,0x0000, 0xFBC0,0xABB9,0x0000, /* 2BB7 */ +0xFBC0,0xABBA,0x0000, 0xFBC0,0xABBB,0x0000, 0xFBC0,0xABBC,0x0000, /* 2BBA */ +0xFBC0,0xABBD,0x0000, 0xFBC0,0xABBE,0x0000, 0xFBC0,0xABBF,0x0000, /* 2BBD */ +0xFBC0,0xABC0,0x0000, 0xFBC0,0xABC1,0x0000, 0xFBC0,0xABC2,0x0000, /* 2BC0 */ +0xFBC0,0xABC3,0x0000, 0xFBC0,0xABC4,0x0000, 0xFBC0,0xABC5,0x0000, /* 2BC3 */ +0xFBC0,0xABC6,0x0000, 0xFBC0,0xABC7,0x0000, 0xFBC0,0xABC8,0x0000, /* 2BC6 */ +0xFBC0,0xABC9,0x0000, 0xFBC0,0xABCA,0x0000, 0xFBC0,0xABCB,0x0000, /* 2BC9 */ +0xFBC0,0xABCC,0x0000, 0xFBC0,0xABCD,0x0000, 0xFBC0,0xABCE,0x0000, /* 2BCC */ +0xFBC0,0xABCF,0x0000, 0xFBC0,0xABD0,0x0000, 0xFBC0,0xABD1,0x0000, /* 2BCF */ +0xFBC0,0xABD2,0x0000, 0xFBC0,0xABD3,0x0000, 0xFBC0,0xABD4,0x0000, /* 2BD2 */ +0xFBC0,0xABD5,0x0000, 0xFBC0,0xABD6,0x0000, 0xFBC0,0xABD7,0x0000, /* 2BD5 */ +0xFBC0,0xABD8,0x0000, 0xFBC0,0xABD9,0x0000, 0xFBC0,0xABDA,0x0000, /* 2BD8 */ +0xFBC0,0xABDB,0x0000, 0xFBC0,0xABDC,0x0000, 0xFBC0,0xABDD,0x0000, /* 2BDB */ +0xFBC0,0xABDE,0x0000, 0xFBC0,0xABDF,0x0000, 0xFBC0,0xABE0,0x0000, /* 2BDE */ +0xFBC0,0xABE1,0x0000, 0xFBC0,0xABE2,0x0000, 0xFBC0,0xABE3,0x0000, /* 2BE1 */ +0xFBC0,0xABE4,0x0000, 0xFBC0,0xABE5,0x0000, 0xFBC0,0xABE6,0x0000, /* 2BE4 */ +0xFBC0,0xABE7,0x0000, 0xFBC0,0xABE8,0x0000, 0xFBC0,0xABE9,0x0000, /* 2BE7 */ +0xFBC0,0xABEA,0x0000, 0xFBC0,0xABEB,0x0000, 0xFBC0,0xABEC,0x0000, /* 2BEA */ +0xFBC0,0xABED,0x0000, 0xFBC0,0xABEE,0x0000, 0xFBC0,0xABEF,0x0000, /* 2BED */ +0xFBC0,0xABF0,0x0000, 0xFBC0,0xABF1,0x0000, 0xFBC0,0xABF2,0x0000, /* 2BF0 */ +0xFBC0,0xABF3,0x0000, 0xFBC0,0xABF4,0x0000, 0xFBC0,0xABF5,0x0000, /* 2BF3 */ +0xFBC0,0xABF6,0x0000, 0xFBC0,0xABF7,0x0000, 0xFBC0,0xABF8,0x0000, /* 2BF6 */ +0xFBC0,0xABF9,0x0000, 0xFBC0,0xABFA,0x0000, 0xFBC0,0xABFB,0x0000, /* 2BF9 */ +0xFBC0,0xABFC,0x0000, 0xFBC0,0xABFD,0x0000, 0xFBC0,0xABFE,0x0000, /* 2BFC */ +0xFBC0,0xABFF,0x0000 }; + +uint16 uca520_p02C[]= { /* 2C00 (4 weights per char) */ +0x17B5,0x0000,0x0000,0x0000, 0x17B6,0x0000,0x0000,0x0000, /* 2C00 */ +0x17B7,0x0000,0x0000,0x0000, 0x17B8,0x0000,0x0000,0x0000, /* 2C02 */ +0x17B9,0x0000,0x0000,0x0000, 0x17BA,0x0000,0x0000,0x0000, /* 2C04 */ +0x17BB,0x0000,0x0000,0x0000, 0x17BC,0x0000,0x0000,0x0000, /* 2C06 */ +0x17BD,0x0000,0x0000,0x0000, 0x17BE,0x0000,0x0000,0x0000, /* 2C08 */ +0x17BF,0x0000,0x0000,0x0000, 0x17C0,0x0000,0x0000,0x0000, /* 2C0A */ +0x17C1,0x0000,0x0000,0x0000, 0x17C2,0x0000,0x0000,0x0000, /* 2C0C */ +0x17C3,0x0000,0x0000,0x0000, 0x17C4,0x0000,0x0000,0x0000, /* 2C0E */ +0x17C5,0x0000,0x0000,0x0000, 0x17C6,0x0000,0x0000,0x0000, /* 2C10 */ +0x17C7,0x0000,0x0000,0x0000, 0x17C8,0x0000,0x0000,0x0000, /* 2C12 */ +0x17C9,0x0000,0x0000,0x0000, 0x17CA,0x0000,0x0000,0x0000, /* 2C14 */ +0x17CB,0x0000,0x0000,0x0000, 0x17CC,0x0000,0x0000,0x0000, /* 2C16 */ +0x17CD,0x0000,0x0000,0x0000, 0x17CE,0x0000,0x0000,0x0000, /* 2C18 */ +0x17CF,0x0000,0x0000,0x0000, 0x17D0,0x0000,0x0000,0x0000, /* 2C1A */ +0x17D1,0x0000,0x0000,0x0000, 0x17D2,0x0000,0x0000,0x0000, /* 2C1C */ +0x17D3,0x0000,0x0000,0x0000, 0x17D4,0x0000,0x0000,0x0000, /* 2C1E */ +0x17D5,0x0000,0x0000,0x0000, 0x17D6,0x0000,0x0000,0x0000, /* 2C20 */ +0x17D7,0x0000,0x0000,0x0000, 0x17D8,0x0000,0x0000,0x0000, /* 2C22 */ +0x17D9,0x0000,0x0000,0x0000, 0x17DA,0x0000,0x0000,0x0000, /* 2C24 */ +0x17DB,0x0000,0x0000,0x0000, 0x17DC,0x0000,0x0000,0x0000, /* 2C26 */ +0x17DD,0x0000,0x0000,0x0000, 0x17DE,0x0000,0x0000,0x0000, /* 2C28 */ +0x17DF,0x0000,0x0000,0x0000, 0x17E0,0x0000,0x0000,0x0000, /* 2C2A */ +0x17E1,0x0000,0x0000,0x0000, 0x17E2,0x0000,0x0000,0x0000, /* 2C2C */ +0x17E3,0x0000,0x0000,0x0000, 0xFBC0,0xAC2F,0x0000,0x0000, /* 2C2E */ +0x17B5,0x0000,0x0000,0x0000, 0x17B6,0x0000,0x0000,0x0000, /* 2C30 */ +0x17B7,0x0000,0x0000,0x0000, 0x17B8,0x0000,0x0000,0x0000, /* 2C32 */ +0x17B9,0x0000,0x0000,0x0000, 0x17BA,0x0000,0x0000,0x0000, /* 2C34 */ +0x17BB,0x0000,0x0000,0x0000, 0x17BC,0x0000,0x0000,0x0000, /* 2C36 */ +0x17BD,0x0000,0x0000,0x0000, 0x17BE,0x0000,0x0000,0x0000, /* 2C38 */ +0x17BF,0x0000,0x0000,0x0000, 0x17C0,0x0000,0x0000,0x0000, /* 2C3A */ +0x17C1,0x0000,0x0000,0x0000, 0x17C2,0x0000,0x0000,0x0000, /* 2C3C */ +0x17C3,0x0000,0x0000,0x0000, 0x17C4,0x0000,0x0000,0x0000, /* 2C3E */ +0x17C5,0x0000,0x0000,0x0000, 0x17C6,0x0000,0x0000,0x0000, /* 2C40 */ +0x17C7,0x0000,0x0000,0x0000, 0x17C8,0x0000,0x0000,0x0000, /* 2C42 */ +0x17C9,0x0000,0x0000,0x0000, 0x17CA,0x0000,0x0000,0x0000, /* 2C44 */ +0x17CB,0x0000,0x0000,0x0000, 0x17CC,0x0000,0x0000,0x0000, /* 2C46 */ +0x17CD,0x0000,0x0000,0x0000, 0x17CE,0x0000,0x0000,0x0000, /* 2C48 */ +0x17CF,0x0000,0x0000,0x0000, 0x17D0,0x0000,0x0000,0x0000, /* 2C4A */ +0x17D1,0x0000,0x0000,0x0000, 0x17D2,0x0000,0x0000,0x0000, /* 2C4C */ +0x17D3,0x0000,0x0000,0x0000, 0x17D4,0x0000,0x0000,0x0000, /* 2C4E */ +0x17D5,0x0000,0x0000,0x0000, 0x17D6,0x0000,0x0000,0x0000, /* 2C50 */ +0x17D7,0x0000,0x0000,0x0000, 0x17D8,0x0000,0x0000,0x0000, /* 2C52 */ +0x17D9,0x0000,0x0000,0x0000, 0x17DA,0x0000,0x0000,0x0000, /* 2C54 */ +0x17DB,0x0000,0x0000,0x0000, 0x17DC,0x0000,0x0000,0x0000, /* 2C56 */ +0x17DD,0x0000,0x0000,0x0000, 0x17DE,0x0000,0x0000,0x0000, /* 2C58 */ +0x17DF,0x0000,0x0000,0x0000, 0x17E0,0x0000,0x0000,0x0000, /* 2C5A */ +0x17E1,0x0000,0x0000,0x0000, 0x17E2,0x0000,0x0000,0x0000, /* 2C5C */ +0x17E3,0x0000,0x0000,0x0000, 0xFBC0,0xAC5F,0x0000,0x0000, /* 2C5E */ +0x133F,0x0000,0x0000,0x0000, 0x133F,0x0000,0x0000,0x0000, /* 2C60 */ +0x1340,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000, /* 2C62 */ +0x13FC,0x0000,0x0000,0x0000, 0x1214,0x0000,0x0000,0x0000, /* 2C64 */ +0x143C,0x0000,0x0000,0x0000, 0x12E3,0x0000,0x0000,0x0000, /* 2C66 */ +0x12E3,0x0000,0x0000,0x0000, 0x1328,0x0000,0x0000,0x0000, /* 2C68 */ +0x1328,0x0000,0x0000,0x0000, 0x14C8,0x0000,0x0000,0x0000, /* 2C6A */ +0x14C8,0x0000,0x0000,0x0000, 0x121C,0x0000,0x0000,0x0000, /* 2C6C */ +0x1366,0x0000,0x0000,0x0000, 0x1218,0x0000,0x0000,0x0000, /* 2C6E */ +0x1221,0x0000,0x0000,0x0000, 0x1486,0x0000,0x0000,0x0000, /* 2C70 */ +0x1492,0x0000,0x0000,0x0000, 0x1492,0x0000,0x0000,0x0000, /* 2C72 */ +0x1487,0x0000,0x0000,0x0000, 0x12E4,0x0000,0x0000,0x0000, /* 2C74 */ +0x12E4,0x0000,0x0000,0x0000, 0x13C7,0x0000,0x0000,0x0000, /* 2C76 */ +0x1275,0x0000,0x0000,0x0000, 0x13F7,0x0000,0x0000,0x0000, /* 2C78 */ +0x13A4,0x0000,0x0000,0x0000, 0x127A,0x0000,0x0000,0x0000, /* 2C7A */ +0x1305,0x0000,0x0000,0x0000, 0x147B,0x0000,0x0000,0x0000, /* 2C7C */ +0x141B,0x0000,0x0000,0x0000, 0x14C4,0x0000,0x0000,0x0000, /* 2C7E */ +0x1571,0x0000,0x0000,0x0000, 0x1571,0x0000,0x0000,0x0000, /* 2C80 */ +0x1572,0x0000,0x0000,0x0000, 0x1572,0x0000,0x0000,0x0000, /* 2C82 */ +0x1573,0x0000,0x0000,0x0000, 0x1573,0x0000,0x0000,0x0000, /* 2C84 */ +0x1574,0x0000,0x0000,0x0000, 0x1574,0x0000,0x0000,0x0000, /* 2C86 */ +0x1575,0x0000,0x0000,0x0000, 0x1575,0x0000,0x0000,0x0000, /* 2C88 */ +0x1577,0x0000,0x0000,0x0000, 0x1577,0x0000,0x0000,0x0000, /* 2C8A */ +0x1578,0x0000,0x0000,0x0000, 0x1578,0x0000,0x0000,0x0000, /* 2C8C */ +0x1579,0x0000,0x0000,0x0000, 0x1579,0x0000,0x0000,0x0000, /* 2C8E */ +0x157A,0x0000,0x0000,0x0000, 0x157A,0x0000,0x0000,0x0000, /* 2C90 */ +0x157B,0x0000,0x0000,0x0000, 0x157B,0x0000,0x0000,0x0000, /* 2C92 */ +0x157C,0x0000,0x0000,0x0000, 0x157C,0x0000,0x0000,0x0000, /* 2C94 */ +0x157E,0x0000,0x0000,0x0000, 0x157E,0x0000,0x0000,0x0000, /* 2C96 */ +0x157F,0x0000,0x0000,0x0000, 0x157F,0x0000,0x0000,0x0000, /* 2C98 */ +0x1580,0x0000,0x0000,0x0000, 0x1580,0x0000,0x0000,0x0000, /* 2C9A */ +0x1583,0x0000,0x0000,0x0000, 0x1583,0x0000,0x0000,0x0000, /* 2C9C */ +0x1584,0x0000,0x0000,0x0000, 0x1584,0x0000,0x0000,0x0000, /* 2C9E */ +0x1585,0x0000,0x0000,0x0000, 0x1585,0x0000,0x0000,0x0000, /* 2CA0 */ +0x1586,0x0000,0x0000,0x0000, 0x1586,0x0000,0x0000,0x0000, /* 2CA2 */ +0x1587,0x0000,0x0000,0x0000, 0x1587,0x0000,0x0000,0x0000, /* 2CA4 */ +0x1588,0x0000,0x0000,0x0000, 0x1588,0x0000,0x0000,0x0000, /* 2CA6 */ +0x1589,0x0000,0x0000,0x0000, 0x1589,0x0000,0x0000,0x0000, /* 2CA8 */ +0x158A,0x0000,0x0000,0x0000, 0x158A,0x0000,0x0000,0x0000, /* 2CAA */ +0x158B,0x0000,0x0000,0x0000, 0x158B,0x0000,0x0000,0x0000, /* 2CAC */ +0x158C,0x0000,0x0000,0x0000, 0x158C,0x0000,0x0000,0x0000, /* 2CAE */ +0x158D,0x0000,0x0000,0x0000, 0x158D,0x0000,0x0000,0x0000, /* 2CB0 */ +0x15A7,0x0000,0x0000,0x0000, 0x15A7,0x0000,0x0000,0x0000, /* 2CB2 */ +0x15A8,0x0000,0x0000,0x0000, 0x15A8,0x0000,0x0000,0x0000, /* 2CB4 */ +0x1576,0x0000,0x0000,0x0000, 0x1576,0x0000,0x0000,0x0000, /* 2CB6 */ +0x157D,0x0000,0x0000,0x0000, 0x157D,0x0000,0x0000,0x0000, /* 2CB8 */ +0x1581,0x0000,0x0000,0x0000, 0x1581,0x0000,0x0000,0x0000, /* 2CBA */ +0x1582,0x0000,0x0000,0x0000, 0x1582,0x0000,0x0000,0x0000, /* 2CBC */ +0x158E,0x0000,0x0000,0x0000, 0x158E,0x0000,0x0000,0x0000, /* 2CBE */ +0x158F,0x0000,0x0000,0x0000, 0x158F,0x0000,0x0000,0x0000, /* 2CC0 */ +0x1592,0x0000,0x0000,0x0000, 0x1592,0x0000,0x0000,0x0000, /* 2CC2 */ +0x1593,0x0000,0x0000,0x0000, 0x1593,0x0000,0x0000,0x0000, /* 2CC4 */ +0x1594,0x0000,0x0000,0x0000, 0x1594,0x0000,0x0000,0x0000, /* 2CC6 */ +0x1597,0x0000,0x0000,0x0000, 0x1597,0x0000,0x0000,0x0000, /* 2CC8 */ +0x1599,0x0000,0x0000,0x0000, 0x1599,0x0000,0x0000,0x0000, /* 2CCA */ +0x159A,0x0000,0x0000,0x0000, 0x159A,0x0000,0x0000,0x0000, /* 2CCC */ +0x159B,0x0000,0x0000,0x0000, 0x159B,0x0000,0x0000,0x0000, /* 2CCE */ +0x159C,0x0000,0x0000,0x0000, 0x159C,0x0000,0x0000,0x0000, /* 2CD0 */ +0x159D,0x0000,0x0000,0x0000, 0x159D,0x0000,0x0000,0x0000, /* 2CD2 */ +0x159E,0x0000,0x0000,0x0000, 0x159E,0x0000,0x0000,0x0000, /* 2CD4 */ +0x15A1,0x0000,0x0000,0x0000, 0x15A1,0x0000,0x0000,0x0000, /* 2CD6 */ +0x15A3,0x0000,0x0000,0x0000, 0x15A3,0x0000,0x0000,0x0000, /* 2CD8 */ +0x15A4,0x0000,0x0000,0x0000, 0x15A4,0x0000,0x0000,0x0000, /* 2CDA */ +0x15A5,0x0000,0x0000,0x0000, 0x15A5,0x0000,0x0000,0x0000, /* 2CDC */ +0x15A9,0x0000,0x0000,0x0000, 0x15A9,0x0000,0x0000,0x0000, /* 2CDE */ +0x15AA,0x0000,0x0000,0x0000, 0x15AA,0x0000,0x0000,0x0000, /* 2CE0 */ +0x15AB,0x0000,0x0000,0x0000, 0x15AB,0x0000,0x0000,0x0000, /* 2CE2 */ +0x157C,0x1571,0x157B,0x0000, 0x0C2A,0x0000,0x0000,0x0000, /* 2CE4 */ +0x0C2B,0x0000,0x0000,0x0000, 0x0C2C,0x0000,0x0000,0x0000, /* 2CE6 */ +0x0C2D,0x0000,0x0000,0x0000, 0x0C2E,0x0000,0x0000,0x0000, /* 2CE8 */ +0x0C2F,0x0000,0x0000,0x0000, 0x1591,0x0000,0x0000,0x0000, /* 2CEA */ +0x1591,0x0000,0x0000,0x0000, 0x15A0,0x0000,0x0000,0x0000, /* 2CEC */ +0x15A0,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 2CEE */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 2CF0 */ +0xFBC0,0xACF2,0x0000,0x0000, 0xFBC0,0xACF3,0x0000,0x0000, /* 2CF2 */ +0xFBC0,0xACF4,0x0000,0x0000, 0xFBC0,0xACF5,0x0000,0x0000, /* 2CF4 */ +0xFBC0,0xACF6,0x0000,0x0000, 0xFBC0,0xACF7,0x0000,0x0000, /* 2CF6 */ +0xFBC0,0xACF8,0x0000,0x0000, 0x028B,0x0000,0x0000,0x0000, /* 2CF8 */ +0x027B,0x0000,0x0000,0x0000, 0x027C,0x0000,0x0000,0x0000, /* 2CFA */ +0x02E0,0x0000,0x0000,0x0000, 0x114C,0x0000,0x0000,0x0000, /* 2CFC */ +0x028C,0x0000,0x0000,0x0000, 0x02E1,0x0000,0x0000,0x0000 /* 2CFE */ +}; + +uint16 uca520_p02D[]= { /* 2D00 (3 weights per char) */ +0x17E5,0x0000,0x0000, 0x17E7,0x0000,0x0000, 0x17E9,0x0000,0x0000, /* 2D00 */ +0x17EB,0x0000,0x0000, 0x17ED,0x0000,0x0000, 0x17EF,0x0000,0x0000, /* 2D03 */ +0x17F1,0x0000,0x0000, 0x17F5,0x0000,0x0000, 0x17F7,0x0000,0x0000, /* 2D06 */ +0x17F9,0x0000,0x0000, 0x17FB,0x0000,0x0000, 0x17FD,0x0000,0x0000, /* 2D09 */ +0x17FF,0x0000,0x0000, 0x1803,0x0000,0x0000, 0x1805,0x0000,0x0000, /* 2D0C */ +0x1807,0x0000,0x0000, 0x1809,0x0000,0x0000, 0x180B,0x0000,0x0000, /* 2D0F */ +0x180D,0x0000,0x0000, 0x1811,0x0000,0x0000, 0x1813,0x0000,0x0000, /* 2D12 */ +0x1815,0x0000,0x0000, 0x1817,0x0000,0x0000, 0x1819,0x0000,0x0000, /* 2D15 */ +0x181B,0x0000,0x0000, 0x181D,0x0000,0x0000, 0x181F,0x0000,0x0000, /* 2D18 */ +0x1821,0x0000,0x0000, 0x1823,0x0000,0x0000, 0x1825,0x0000,0x0000, /* 2D1B */ +0x1827,0x0000,0x0000, 0x182B,0x0000,0x0000, 0x182D,0x0000,0x0000, /* 2D1E */ +0x17F3,0x0000,0x0000, 0x1801,0x0000,0x0000, 0x180F,0x0000,0x0000, /* 2D21 */ +0x1829,0x0000,0x0000, 0x182F,0x0000,0x0000, 0xFBC0,0xAD26,0x0000, /* 2D24 */ +0xFBC0,0xAD27,0x0000, 0xFBC0,0xAD28,0x0000, 0xFBC0,0xAD29,0x0000, /* 2D27 */ +0xFBC0,0xAD2A,0x0000, 0xFBC0,0xAD2B,0x0000, 0xFBC0,0xAD2C,0x0000, /* 2D2A */ +0xFBC0,0xAD2D,0x0000, 0xFBC0,0xAD2E,0x0000, 0xFBC0,0xAD2F,0x0000, /* 2D2D */ +0x19CC,0x0000,0x0000, 0x19CD,0x0000,0x0000, 0x19CE,0x0000,0x0000, /* 2D30 */ +0x19CF,0x0000,0x0000, 0x19D0,0x0000,0x0000, 0x19D1,0x0000,0x0000, /* 2D33 */ +0x19D2,0x0000,0x0000, 0x19D3,0x0000,0x0000, 0x19D4,0x0000,0x0000, /* 2D36 */ +0x19D5,0x0000,0x0000, 0x19D6,0x0000,0x0000, 0x19D7,0x0000,0x0000, /* 2D39 */ +0x19D8,0x0000,0x0000, 0x19D9,0x0000,0x0000, 0x19DA,0x0000,0x0000, /* 2D3C */ +0x19DB,0x0000,0x0000, 0x19DC,0x0000,0x0000, 0x19DD,0x0000,0x0000, /* 2D3F */ +0x19DE,0x0000,0x0000, 0x19DF,0x0000,0x0000, 0x19E0,0x0000,0x0000, /* 2D42 */ +0x19E1,0x0000,0x0000, 0x19E2,0x0000,0x0000, 0x19E3,0x0000,0x0000, /* 2D45 */ +0x19E4,0x0000,0x0000, 0x19E5,0x0000,0x0000, 0x19E6,0x0000,0x0000, /* 2D48 */ +0x19E7,0x0000,0x0000, 0x19E8,0x0000,0x0000, 0x19E9,0x0000,0x0000, /* 2D4B */ +0x19EA,0x0000,0x0000, 0x19EB,0x0000,0x0000, 0x19EC,0x0000,0x0000, /* 2D4E */ +0x19ED,0x0000,0x0000, 0x19EE,0x0000,0x0000, 0x19EF,0x0000,0x0000, /* 2D51 */ +0x19F0,0x0000,0x0000, 0x19F1,0x0000,0x0000, 0x19F2,0x0000,0x0000, /* 2D54 */ +0x19F3,0x0000,0x0000, 0x19F4,0x0000,0x0000, 0x19F5,0x0000,0x0000, /* 2D57 */ +0x19F6,0x0000,0x0000, 0x19F7,0x0000,0x0000, 0x19F8,0x0000,0x0000, /* 2D5A */ +0x19F9,0x0000,0x0000, 0x19FA,0x0000,0x0000, 0x19FB,0x0000,0x0000, /* 2D5D */ +0x19FC,0x0000,0x0000, 0x19FD,0x0000,0x0000, 0x19FE,0x0000,0x0000, /* 2D60 */ +0x19FF,0x0000,0x0000, 0x1A00,0x0000,0x0000, 0x1A01,0x0000,0x0000, /* 2D63 */ +0xFBC0,0xAD66,0x0000, 0xFBC0,0xAD67,0x0000, 0xFBC0,0xAD68,0x0000, /* 2D66 */ +0xFBC0,0xAD69,0x0000, 0xFBC0,0xAD6A,0x0000, 0xFBC0,0xAD6B,0x0000, /* 2D69 */ +0xFBC0,0xAD6C,0x0000, 0xFBC0,0xAD6D,0x0000, 0xFBC0,0xAD6E,0x0000, /* 2D6C */ +0x1A02,0x0000,0x0000, 0xFBC0,0xAD70,0x0000, 0xFBC0,0xAD71,0x0000, /* 2D6F */ +0xFBC0,0xAD72,0x0000, 0xFBC0,0xAD73,0x0000, 0xFBC0,0xAD74,0x0000, /* 2D72 */ +0xFBC0,0xAD75,0x0000, 0xFBC0,0xAD76,0x0000, 0xFBC0,0xAD77,0x0000, /* 2D75 */ +0xFBC0,0xAD78,0x0000, 0xFBC0,0xAD79,0x0000, 0xFBC0,0xAD7A,0x0000, /* 2D78 */ +0xFBC0,0xAD7B,0x0000, 0xFBC0,0xAD7C,0x0000, 0xFBC0,0xAD7D,0x0000, /* 2D7B */ +0xFBC0,0xAD7E,0x0000, 0xFBC0,0xAD7F,0x0000, 0x1A13,0x0000,0x0000, /* 2D7E */ +0x1A28,0x0000,0x0000, 0x1A39,0x0000,0x0000, 0x1A42,0x0000,0x0000, /* 2D81 */ +0x1A4B,0x0000,0x0000, 0x1A71,0x0000,0x0000, 0x1A82,0x0000,0x0000, /* 2D84 */ +0x1A8B,0x0000,0x0000, 0x1AA1,0x0000,0x0000, 0x1AAA,0x0000,0x0000, /* 2D87 */ +0x1AB3,0x0000,0x0000, 0x1AE4,0x0000,0x0000, 0x1AFD,0x0000,0x0000, /* 2D8A */ +0x1B06,0x0000,0x0000, 0x1B0F,0x0000,0x0000, 0x1B31,0x0000,0x0000, /* 2D8D */ +0x1B3A,0x0000,0x0000, 0x1B43,0x0000,0x0000, 0x1B6C,0x0000,0x0000, /* 2D90 */ +0x1B25,0x0000,0x0000, 0x1B26,0x0000,0x0000, 0x1B27,0x0000,0x0000, /* 2D93 */ +0x1B28,0x0000,0x0000, 0xFBC0,0xAD97,0x0000, 0xFBC0,0xAD98,0x0000, /* 2D96 */ +0xFBC0,0xAD99,0x0000, 0xFBC0,0xAD9A,0x0000, 0xFBC0,0xAD9B,0x0000, /* 2D99 */ +0xFBC0,0xAD9C,0x0000, 0xFBC0,0xAD9D,0x0000, 0xFBC0,0xAD9E,0x0000, /* 2D9C */ +0xFBC0,0xAD9F,0x0000, 0x1B70,0x0000,0x0000, 0x1B71,0x0000,0x0000, /* 2D9F */ +0x1B72,0x0000,0x0000, 0x1B73,0x0000,0x0000, 0x1B74,0x0000,0x0000, /* 2DA2 */ +0x1B75,0x0000,0x0000, 0x1B76,0x0000,0x0000, 0xFBC0,0xADA7,0x0000, /* 2DA5 */ +0x1B77,0x0000,0x0000, 0x1B78,0x0000,0x0000, 0x1B79,0x0000,0x0000, /* 2DA8 */ +0x1B7A,0x0000,0x0000, 0x1B7B,0x0000,0x0000, 0x1B7C,0x0000,0x0000, /* 2DAB */ +0x1B7D,0x0000,0x0000, 0xFBC0,0xADAF,0x0000, 0x1B7E,0x0000,0x0000, /* 2DAE */ +0x1B7F,0x0000,0x0000, 0x1B80,0x0000,0x0000, 0x1B81,0x0000,0x0000, /* 2DB1 */ +0x1B82,0x0000,0x0000, 0x1B83,0x0000,0x0000, 0x1B84,0x0000,0x0000, /* 2DB4 */ +0xFBC0,0xADB7,0x0000, 0x1B85,0x0000,0x0000, 0x1B86,0x0000,0x0000, /* 2DB7 */ +0x1B87,0x0000,0x0000, 0x1B88,0x0000,0x0000, 0x1B89,0x0000,0x0000, /* 2DBA */ +0x1B8A,0x0000,0x0000, 0x1B8B,0x0000,0x0000, 0xFBC0,0xADBF,0x0000, /* 2DBD */ +0x1B8C,0x0000,0x0000, 0x1B8D,0x0000,0x0000, 0x1B8E,0x0000,0x0000, /* 2DC0 */ +0x1B8F,0x0000,0x0000, 0x1B90,0x0000,0x0000, 0x1B91,0x0000,0x0000, /* 2DC3 */ +0x1B92,0x0000,0x0000, 0xFBC0,0xADC7,0x0000, 0x1B93,0x0000,0x0000, /* 2DC6 */ +0x1B94,0x0000,0x0000, 0x1B95,0x0000,0x0000, 0x1B96,0x0000,0x0000, /* 2DC9 */ +0x1B97,0x0000,0x0000, 0x1B98,0x0000,0x0000, 0x1B99,0x0000,0x0000, /* 2DCC */ +0xFBC0,0xADCF,0x0000, 0x1B9A,0x0000,0x0000, 0x1B9B,0x0000,0x0000, /* 2DCF */ +0x1B9C,0x0000,0x0000, 0x1B9D,0x0000,0x0000, 0x1B9E,0x0000,0x0000, /* 2DD2 */ +0x1B9F,0x0000,0x0000, 0x1BA0,0x0000,0x0000, 0xFBC0,0xADD7,0x0000, /* 2DD5 */ +0x1BA1,0x0000,0x0000, 0x1BA2,0x0000,0x0000, 0x1BA3,0x0000,0x0000, /* 2DD8 */ +0x1BA4,0x0000,0x0000, 0x1BA5,0x0000,0x0000, 0x1BA6,0x0000,0x0000, /* 2DDB */ +0x1BA7,0x0000,0x0000, 0xFBC0,0xADDF,0x0000, 0x15C4,0x0000,0x0000, /* 2DDE */ +0x15C8,0x0000,0x0000, 0x15CC,0x0000,0x0000, 0x15E0,0x0000,0x0000, /* 2DE1 */ +0x1600,0x0000,0x0000, 0x160D,0x0000,0x0000, 0x1643,0x0000,0x0000, /* 2DE4 */ +0x165D,0x0000,0x0000, 0x166F,0x0000,0x0000, 0x1678,0x0000,0x0000, /* 2DE7 */ +0x1692,0x0000,0x0000, 0x16A2,0x0000,0x0000, 0x16AF,0x0000,0x0000, /* 2DEA */ +0x16B8,0x0000,0x0000, 0x16C1,0x0000,0x0000, 0x16F5,0x0000,0x0000, /* 2DED */ +0x171B,0x0000,0x0000, 0x1725,0x0000,0x0000, 0x1747,0x0000,0x0000, /* 2DF0 */ +0x174C,0x0000,0x0000, 0x179F,0x0000,0x0000, 0x16B8,0x16C1,0x0000, /* 2DF3 */ +0x15AC,0x0000,0x0000, 0x15F4,0x0000,0x0000, 0x1642,0x0000,0x0000, /* 2DF6 */ +0x16EC,0x0000,0x0000, 0x1768,0x0000,0x0000, 0x1775,0x0000,0x0000, /* 2DF9 */ +0x177A,0x0000,0x0000, 0x1784,0x0000,0x0000, 0x1789,0x0000,0x0000, /* 2DFC */ +0x1793,0x0000,0x0000 }; + +uint16 uca520_p02E[]= { /* 2E00 (3 weights per char) */ +0x037E,0x0000,0x0000, 0x037F,0x0000,0x0000, 0x0329,0x0000,0x0000, /* 2E00 */ +0x032A,0x0000,0x0000, 0x032B,0x0000,0x0000, 0x032C,0x0000,0x0000, /* 2E03 */ +0x0380,0x0000,0x0000, 0x0381,0x0000,0x0000, 0x0382,0x0000,0x0000, /* 2E06 */ +0x032D,0x0000,0x0000, 0x032E,0x0000,0x0000, 0x0383,0x0000,0x0000, /* 2E09 */ +0x032F,0x0000,0x0000, 0x0330,0x0000,0x0000, 0x0384,0x0000,0x0000, /* 2E0C */ +0x0385,0x0000,0x0000, 0x0386,0x0000,0x0000, 0x0387,0x0000,0x0000, /* 2E0F */ +0x0388,0x0000,0x0000, 0x0389,0x0000,0x0000, 0x038A,0x0000,0x0000, /* 2E12 */ +0x038B,0x0000,0x0000, 0x038C,0x0000,0x0000, 0x022F,0x0000,0x0000, /* 2E15 */ +0x0280,0x0000,0x0000, 0x02E2,0x0000,0x0000, 0x038D,0x0000,0x0000, /* 2E18 */ +0x038E,0x0000,0x0000, 0x0331,0x0000,0x0000, 0x0332,0x0000,0x0000, /* 2E1B */ +0x038F,0x0000,0x0000, 0x0390,0x0000,0x0000, 0x0333,0x0000,0x0000, /* 2E1E */ +0x0334,0x0000,0x0000, 0x0335,0x0000,0x0000, 0x0336,0x0000,0x0000, /* 2E21 */ +0x0337,0x0000,0x0000, 0x0338,0x0000,0x0000, 0x0339,0x0000,0x0000, /* 2E24 */ +0x033A,0x0000,0x0000, 0x033B,0x0000,0x0000, 0x033C,0x0000,0x0000, /* 2E27 */ +0x02DC,0x0000,0x0000, 0x02DD,0x0000,0x0000, 0x02DE,0x0000,0x0000, /* 2E2A */ +0x02DF,0x0000,0x0000, 0x0275,0x0000,0x0000, 0x1751,0x0000,0x0000, /* 2E2D */ +0x028D,0x0000,0x0000, 0x0293,0x0000,0x0000, 0xFBC0,0xAE32,0x0000, /* 2E30 */ +0xFBC0,0xAE33,0x0000, 0xFBC0,0xAE34,0x0000, 0xFBC0,0xAE35,0x0000, /* 2E33 */ +0xFBC0,0xAE36,0x0000, 0xFBC0,0xAE37,0x0000, 0xFBC0,0xAE38,0x0000, /* 2E36 */ +0xFBC0,0xAE39,0x0000, 0xFBC0,0xAE3A,0x0000, 0xFBC0,0xAE3B,0x0000, /* 2E39 */ +0xFBC0,0xAE3C,0x0000, 0xFBC0,0xAE3D,0x0000, 0xFBC0,0xAE3E,0x0000, /* 2E3C */ +0xFBC0,0xAE3F,0x0000, 0xFBC0,0xAE40,0x0000, 0xFBC0,0xAE41,0x0000, /* 2E3F */ +0xFBC0,0xAE42,0x0000, 0xFBC0,0xAE43,0x0000, 0xFBC0,0xAE44,0x0000, /* 2E42 */ +0xFBC0,0xAE45,0x0000, 0xFBC0,0xAE46,0x0000, 0xFBC0,0xAE47,0x0000, /* 2E45 */ +0xFBC0,0xAE48,0x0000, 0xFBC0,0xAE49,0x0000, 0xFBC0,0xAE4A,0x0000, /* 2E48 */ +0xFBC0,0xAE4B,0x0000, 0xFBC0,0xAE4C,0x0000, 0xFBC0,0xAE4D,0x0000, /* 2E4B */ +0xFBC0,0xAE4E,0x0000, 0xFBC0,0xAE4F,0x0000, 0xFBC0,0xAE50,0x0000, /* 2E4E */ +0xFBC0,0xAE51,0x0000, 0xFBC0,0xAE52,0x0000, 0xFBC0,0xAE53,0x0000, /* 2E51 */ +0xFBC0,0xAE54,0x0000, 0xFBC0,0xAE55,0x0000, 0xFBC0,0xAE56,0x0000, /* 2E54 */ +0xFBC0,0xAE57,0x0000, 0xFBC0,0xAE58,0x0000, 0xFBC0,0xAE59,0x0000, /* 2E57 */ +0xFBC0,0xAE5A,0x0000, 0xFBC0,0xAE5B,0x0000, 0xFBC0,0xAE5C,0x0000, /* 2E5A */ +0xFBC0,0xAE5D,0x0000, 0xFBC0,0xAE5E,0x0000, 0xFBC0,0xAE5F,0x0000, /* 2E5D */ +0xFBC0,0xAE60,0x0000, 0xFBC0,0xAE61,0x0000, 0xFBC0,0xAE62,0x0000, /* 2E60 */ +0xFBC0,0xAE63,0x0000, 0xFBC0,0xAE64,0x0000, 0xFBC0,0xAE65,0x0000, /* 2E63 */ +0xFBC0,0xAE66,0x0000, 0xFBC0,0xAE67,0x0000, 0xFBC0,0xAE68,0x0000, /* 2E66 */ +0xFBC0,0xAE69,0x0000, 0xFBC0,0xAE6A,0x0000, 0xFBC0,0xAE6B,0x0000, /* 2E69 */ +0xFBC0,0xAE6C,0x0000, 0xFBC0,0xAE6D,0x0000, 0xFBC0,0xAE6E,0x0000, /* 2E6C */ +0xFBC0,0xAE6F,0x0000, 0xFBC0,0xAE70,0x0000, 0xFBC0,0xAE71,0x0000, /* 2E6F */ +0xFBC0,0xAE72,0x0000, 0xFBC0,0xAE73,0x0000, 0xFBC0,0xAE74,0x0000, /* 2E72 */ +0xFBC0,0xAE75,0x0000, 0xFBC0,0xAE76,0x0000, 0xFBC0,0xAE77,0x0000, /* 2E75 */ +0xFBC0,0xAE78,0x0000, 0xFBC0,0xAE79,0x0000, 0xFBC0,0xAE7A,0x0000, /* 2E78 */ +0xFBC0,0xAE7B,0x0000, 0xFBC0,0xAE7C,0x0000, 0xFBC0,0xAE7D,0x0000, /* 2E7B */ +0xFBC0,0xAE7E,0x0000, 0xFBC0,0xAE7F,0x0000, 0xFB40,0xCE36,0x0000, /* 2E7E */ +0xFB40,0xD382,0x0000, 0xFB40,0xCE5B,0x0000, 0xFB40,0xCE5A,0x0000, /* 2E81 */ +0xFB40,0xCE59,0x0000, 0xFB40,0xCEBB,0x0000, 0xFB40,0xD182,0x0000, /* 2E84 */ +0xFB40,0xD1E0,0x0000, 0xFB40,0xD200,0x0000, 0xFB40,0xD202,0x0000, /* 2E87 */ +0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xDC0F,0x0000, /* 2E8A */ +0xFB40,0xDC0F,0x0000, 0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, /* 2E8D */ +0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, 0xFB40,0xDDF3,0x0000, /* 2E90 */ +0xFB40,0xDE7A,0x0000, 0xFB40,0xDF51,0x0000, 0xFB40,0xDF50,0x0000, /* 2E93 */ +0xFB40,0xDFC4,0x0000, 0xFB40,0xDFC3,0x0000, 0xFB40,0xE24C,0x0000, /* 2E96 */ +0xFB40,0xE535,0x0000, 0xFBC0,0xAE9A,0x0000, 0xFB40,0xE5E1,0x0000, /* 2E99 */ +0xFB40,0xE5E5,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xEB7A,0x0000, /* 2E9C */ +0xFB40,0xEBCD,0x0000, 0xFB40,0xEC11,0x0000, 0xFB40,0xEC35,0x0000, /* 2E9F */ +0xFB40,0xEC3A,0x0000, 0xFB40,0xF06C,0x0000, 0xFB40,0xF22B,0x0000, /* 2EA2 */ +0xFB40,0xF22B,0x0000, 0xFB40,0xCE2C,0x0000, 0xFB40,0xF25B,0x0000, /* 2EA5 */ +0xFB40,0xF2AD,0x0000, 0xFB40,0xF38B,0x0000, 0xFB40,0xF58B,0x0000, /* 2EA8 */ +0xFB40,0xF6EE,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF93B,0x0000, /* 2EAB */ +0xFB40,0xFAF9,0x0000, 0xFB40,0xFCF9,0x0000, 0xFB40,0xFE9F,0x0000, /* 2EAE */ +0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF53,0x0000, /* 2EB1 */ +0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF8A,0x0000, /* 2EB4 */ +0xFB40,0xFF8A,0x0000, 0xFB40,0xFF8B,0x0000, 0xFB41,0x8002,0x0000, /* 2EB7 */ +0xFB41,0x8080,0x0000, 0xFB41,0x807F,0x0000, 0xFB41,0x8089,0x0000, /* 2EBA */ +0xFB41,0x81FC,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, /* 2EBD */ +0xFB41,0x8279,0x0000, 0xFB41,0x864E,0x0000, 0xFB41,0x8864,0x0000, /* 2EC0 */ +0xFB41,0x8980,0x0000, 0xFB41,0x897F,0x0000, 0xFB41,0x89C1,0x0000, /* 2EC3 */ +0xFB41,0x89D2,0x0000, 0xFB41,0x89D2,0x0000, 0xFB41,0x8BA0,0x0000, /* 2EC6 */ +0xFB41,0x8D1D,0x0000, 0xFB41,0x8DB3,0x0000, 0xFB41,0x8F66,0x0000, /* 2EC9 */ +0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, /* 2ECC */ +0xFB41,0x9091,0x0000, 0xFB41,0x9485,0x0000, 0xFB41,0x9577,0x0000, /* 2ECF */ +0xFB41,0x9578,0x0000, 0xFB41,0x957F,0x0000, 0xFB41,0x95E8,0x0000, /* 2ED2 */ +0xFB41,0x961C,0x0000, 0xFB41,0x961D,0x0000, 0xFB41,0x96E8,0x0000, /* 2ED5 */ +0xFB41,0x9752,0x0000, 0xFB41,0x97E6,0x0000, 0xFB41,0x9875,0x0000, /* 2ED8 */ +0xFB41,0x98CE,0x0000, 0xFB41,0x98DE,0x0000, 0xFB41,0x98DF,0x0000, /* 2EDB */ +0xFB41,0x98E0,0x0000, 0xFB41,0x98E0,0x0000, 0xFB41,0x9963,0x0000, /* 2EDE */ +0xFB41,0x9996,0x0000, 0xFB41,0x9A6C,0x0000, 0xFB41,0x9AA8,0x0000, /* 2EE1 */ +0xFB41,0x9B3C,0x0000, 0xFB41,0x9C7C,0x0000, 0xFB41,0x9E1F,0x0000, /* 2EE4 */ +0xFB41,0x9E75,0x0000, 0xFB41,0x9EA6,0x0000, 0xFB41,0x9EC4,0x0000, /* 2EE7 */ +0xFB41,0x9EFE,0x0000, 0xFB41,0x9F4A,0x0000, 0xFB41,0x9F50,0x0000, /* 2EEA */ +0xFB41,0x9F52,0x0000, 0xFB41,0x9F7F,0x0000, 0xFB41,0x9F8D,0x0000, /* 2EED */ +0xFB41,0x9F99,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, /* 2EF0 */ +0xFB41,0x9F9F,0x0000, 0xFBC0,0xAEF4,0x0000, 0xFBC0,0xAEF5,0x0000, /* 2EF3 */ +0xFBC0,0xAEF6,0x0000, 0xFBC0,0xAEF7,0x0000, 0xFBC0,0xAEF8,0x0000, /* 2EF6 */ +0xFBC0,0xAEF9,0x0000, 0xFBC0,0xAEFA,0x0000, 0xFBC0,0xAEFB,0x0000, /* 2EF9 */ +0xFBC0,0xAEFC,0x0000, 0xFBC0,0xAEFD,0x0000, 0xFBC0,0xAEFE,0x0000, /* 2EFC */ +0xFBC0,0xAEFF,0x0000 }; + +uint16 uca520_p02F[]= { /* 2F00 (3 weights per char) */ +0xFB40,0xCE00,0x0000, 0xFB40,0xCE28,0x0000, 0xFB40,0xCE36,0x0000, /* 2F00 */ +0xFB40,0xCE3F,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE85,0x0000, /* 2F03 */ +0xFB40,0xCE8C,0x0000, 0xFB40,0xCEA0,0x0000, 0xFB40,0xCEBA,0x0000, /* 2F06 */ +0xFB40,0xD13F,0x0000, 0xFB40,0xD165,0x0000, 0xFB40,0xD16B,0x0000, /* 2F09 */ +0xFB40,0xD182,0x0000, 0xFB40,0xD196,0x0000, 0xFB40,0xD1AB,0x0000, /* 2F0C */ +0xFB40,0xD1E0,0x0000, 0xFB40,0xD1F5,0x0000, 0xFB40,0xD200,0x0000, /* 2F0F */ +0xFB40,0xD29B,0x0000, 0xFB40,0xD2F9,0x0000, 0xFB40,0xD315,0x0000, /* 2F12 */ +0xFB40,0xD31A,0x0000, 0xFB40,0xD338,0x0000, 0xFB40,0xD341,0x0000, /* 2F15 */ +0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xD382,0x0000, /* 2F18 */ +0xFB40,0xD3B6,0x0000, 0xFB40,0xD3C8,0x0000, 0xFB40,0xD3E3,0x0000, /* 2F1B */ +0xFB40,0xD6D7,0x0000, 0xFB40,0xD71F,0x0000, 0xFB40,0xD8EB,0x0000, /* 2F1E */ +0xFB40,0xD902,0x0000, 0xFB40,0xD90A,0x0000, 0xFB40,0xD915,0x0000, /* 2F21 */ +0xFB40,0xD927,0x0000, 0xFB40,0xD973,0x0000, 0xFB40,0xDB50,0x0000, /* 2F24 */ +0xFB40,0xDB80,0x0000, 0xFB40,0xDBF8,0x0000, 0xFB40,0xDC0F,0x0000, /* 2F27 */ +0xFB40,0xDC22,0x0000, 0xFB40,0xDC38,0x0000, 0xFB40,0xDC6E,0x0000, /* 2F2A */ +0xFB40,0xDC71,0x0000, 0xFB40,0xDDDB,0x0000, 0xFB40,0xDDE5,0x0000, /* 2F2D */ +0xFB40,0xDDF1,0x0000, 0xFB40,0xDDFE,0x0000, 0xFB40,0xDE72,0x0000, /* 2F30 */ +0xFB40,0xDE7A,0x0000, 0xFB40,0xDE7F,0x0000, 0xFB40,0xDEF4,0x0000, /* 2F33 */ +0xFB40,0xDEFE,0x0000, 0xFB40,0xDF0B,0x0000, 0xFB40,0xDF13,0x0000, /* 2F36 */ +0xFB40,0xDF50,0x0000, 0xFB40,0xDF61,0x0000, 0xFB40,0xDF73,0x0000, /* 2F39 */ +0xFB40,0xDFC3,0x0000, 0xFB40,0xE208,0x0000, 0xFB40,0xE236,0x0000, /* 2F3C */ +0xFB40,0xE24B,0x0000, 0xFB40,0xE52F,0x0000, 0xFB40,0xE534,0x0000, /* 2F3F */ +0xFB40,0xE587,0x0000, 0xFB40,0xE597,0x0000, 0xFB40,0xE5A4,0x0000, /* 2F42 */ +0xFB40,0xE5B9,0x0000, 0xFB40,0xE5E0,0x0000, 0xFB40,0xE5E5,0x0000, /* 2F45 */ +0xFB40,0xE6F0,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xE728,0x0000, /* 2F48 */ +0xFB40,0xEB20,0x0000, 0xFB40,0xEB62,0x0000, 0xFB40,0xEB79,0x0000, /* 2F4B */ +0xFB40,0xEBB3,0x0000, 0xFB40,0xEBCB,0x0000, 0xFB40,0xEBD4,0x0000, /* 2F4E */ +0xFB40,0xEBDB,0x0000, 0xFB40,0xEC0F,0x0000, 0xFB40,0xEC14,0x0000, /* 2F51 */ +0xFB40,0xEC34,0x0000, 0xFB40,0xF06B,0x0000, 0xFB40,0xF22A,0x0000, /* 2F54 */ +0xFB40,0xF236,0x0000, 0xFB40,0xF23B,0x0000, 0xFB40,0xF23F,0x0000, /* 2F57 */ +0xFB40,0xF247,0x0000, 0xFB40,0xF259,0x0000, 0xFB40,0xF25B,0x0000, /* 2F5A */ +0xFB40,0xF2AC,0x0000, 0xFB40,0xF384,0x0000, 0xFB40,0xF389,0x0000, /* 2F5D */ +0xFB40,0xF4DC,0x0000, 0xFB40,0xF4E6,0x0000, 0xFB40,0xF518,0x0000, /* 2F60 */ +0xFB40,0xF51F,0x0000, 0xFB40,0xF528,0x0000, 0xFB40,0xF530,0x0000, /* 2F63 */ +0xFB40,0xF58B,0x0000, 0xFB40,0xF592,0x0000, 0xFB40,0xF676,0x0000, /* 2F66 */ +0xFB40,0xF67D,0x0000, 0xFB40,0xF6AE,0x0000, 0xFB40,0xF6BF,0x0000, /* 2F69 */ +0xFB40,0xF6EE,0x0000, 0xFB40,0xF7DB,0x0000, 0xFB40,0xF7E2,0x0000, /* 2F6C */ +0xFB40,0xF7F3,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF9B8,0x0000, /* 2F6F */ +0xFB40,0xF9BE,0x0000, 0xFB40,0xFA74,0x0000, 0xFB40,0xFACB,0x0000, /* 2F72 */ +0xFB40,0xFAF9,0x0000, 0xFB40,0xFC73,0x0000, 0xFB40,0xFCF8,0x0000, /* 2F75 */ +0xFB40,0xFF36,0x0000, 0xFB40,0xFF51,0x0000, 0xFB40,0xFF8A,0x0000, /* 2F78 */ +0xFB40,0xFFBD,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x800C,0x0000, /* 2F7B */ +0xFB41,0x8012,0x0000, 0xFB41,0x8033,0x0000, 0xFB41,0x807F,0x0000, /* 2F7E */ +0xFB41,0x8089,0x0000, 0xFB41,0x81E3,0x0000, 0xFB41,0x81EA,0x0000, /* 2F81 */ +0xFB41,0x81F3,0x0000, 0xFB41,0x81FC,0x0000, 0xFB41,0x820C,0x0000, /* 2F84 */ +0xFB41,0x821B,0x0000, 0xFB41,0x821F,0x0000, 0xFB41,0x826E,0x0000, /* 2F87 */ +0xFB41,0x8272,0x0000, 0xFB41,0x8278,0x0000, 0xFB41,0x864D,0x0000, /* 2F8A */ +0xFB41,0x866B,0x0000, 0xFB41,0x8840,0x0000, 0xFB41,0x884C,0x0000, /* 2F8D */ +0xFB41,0x8863,0x0000, 0xFB41,0x897E,0x0000, 0xFB41,0x898B,0x0000, /* 2F90 */ +0xFB41,0x89D2,0x0000, 0xFB41,0x8A00,0x0000, 0xFB41,0x8C37,0x0000, /* 2F93 */ +0xFB41,0x8C46,0x0000, 0xFB41,0x8C55,0x0000, 0xFB41,0x8C78,0x0000, /* 2F96 */ +0xFB41,0x8C9D,0x0000, 0xFB41,0x8D64,0x0000, 0xFB41,0x8D70,0x0000, /* 2F99 */ +0xFB41,0x8DB3,0x0000, 0xFB41,0x8EAB,0x0000, 0xFB41,0x8ECA,0x0000, /* 2F9C */ +0xFB41,0x8F9B,0x0000, 0xFB41,0x8FB0,0x0000, 0xFB41,0x8FB5,0x0000, /* 2F9F */ +0xFB41,0x9091,0x0000, 0xFB41,0x9149,0x0000, 0xFB41,0x91C6,0x0000, /* 2FA2 */ +0xFB41,0x91CC,0x0000, 0xFB41,0x91D1,0x0000, 0xFB41,0x9577,0x0000, /* 2FA5 */ +0xFB41,0x9580,0x0000, 0xFB41,0x961C,0x0000, 0xFB41,0x96B6,0x0000, /* 2FA8 */ +0xFB41,0x96B9,0x0000, 0xFB41,0x96E8,0x0000, 0xFB41,0x9751,0x0000, /* 2FAB */ +0xFB41,0x975E,0x0000, 0xFB41,0x9762,0x0000, 0xFB41,0x9769,0x0000, /* 2FAE */ +0xFB41,0x97CB,0x0000, 0xFB41,0x97ED,0x0000, 0xFB41,0x97F3,0x0000, /* 2FB1 */ +0xFB41,0x9801,0x0000, 0xFB41,0x98A8,0x0000, 0xFB41,0x98DB,0x0000, /* 2FB4 */ +0xFB41,0x98DF,0x0000, 0xFB41,0x9996,0x0000, 0xFB41,0x9999,0x0000, /* 2FB7 */ +0xFB41,0x99AC,0x0000, 0xFB41,0x9AA8,0x0000, 0xFB41,0x9AD8,0x0000, /* 2FBA */ +0xFB41,0x9ADF,0x0000, 0xFB41,0x9B25,0x0000, 0xFB41,0x9B2F,0x0000, /* 2FBD */ +0xFB41,0x9B32,0x0000, 0xFB41,0x9B3C,0x0000, 0xFB41,0x9B5A,0x0000, /* 2FC0 */ +0xFB41,0x9CE5,0x0000, 0xFB41,0x9E75,0x0000, 0xFB41,0x9E7F,0x0000, /* 2FC3 */ +0xFB41,0x9EA5,0x0000, 0xFB41,0x9EBB,0x0000, 0xFB41,0x9EC3,0x0000, /* 2FC6 */ +0xFB41,0x9ECD,0x0000, 0xFB41,0x9ED1,0x0000, 0xFB41,0x9EF9,0x0000, /* 2FC9 */ +0xFB41,0x9EFD,0x0000, 0xFB41,0x9F0E,0x0000, 0xFB41,0x9F13,0x0000, /* 2FCC */ +0xFB41,0x9F20,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB41,0x9F4A,0x0000, /* 2FCF */ +0xFB41,0x9F52,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB41,0x9F9C,0x0000, /* 2FD2 */ +0xFB41,0x9FA0,0x0000, 0xFBC0,0xAFD6,0x0000, 0xFBC0,0xAFD7,0x0000, /* 2FD5 */ +0xFBC0,0xAFD8,0x0000, 0xFBC0,0xAFD9,0x0000, 0xFBC0,0xAFDA,0x0000, /* 2FD8 */ +0xFBC0,0xAFDB,0x0000, 0xFBC0,0xAFDC,0x0000, 0xFBC0,0xAFDD,0x0000, /* 2FDB */ +0xFBC0,0xAFDE,0x0000, 0xFBC0,0xAFDF,0x0000, 0xFBC0,0xAFE0,0x0000, /* 2FDE */ +0xFBC0,0xAFE1,0x0000, 0xFBC0,0xAFE2,0x0000, 0xFBC0,0xAFE3,0x0000, /* 2FE1 */ +0xFBC0,0xAFE4,0x0000, 0xFBC0,0xAFE5,0x0000, 0xFBC0,0xAFE6,0x0000, /* 2FE4 */ +0xFBC0,0xAFE7,0x0000, 0xFBC0,0xAFE8,0x0000, 0xFBC0,0xAFE9,0x0000, /* 2FE7 */ +0xFBC0,0xAFEA,0x0000, 0xFBC0,0xAFEB,0x0000, 0xFBC0,0xAFEC,0x0000, /* 2FEA */ +0xFBC0,0xAFED,0x0000, 0xFBC0,0xAFEE,0x0000, 0xFBC0,0xAFEF,0x0000, /* 2FED */ +0x10D4,0x0000,0x0000, 0x10D5,0x0000,0x0000, 0x10D6,0x0000,0x0000, /* 2FF0 */ +0x10D7,0x0000,0x0000, 0x10D8,0x0000,0x0000, 0x10D9,0x0000,0x0000, /* 2FF3 */ +0x10DA,0x0000,0x0000, 0x10DB,0x0000,0x0000, 0x10DC,0x0000,0x0000, /* 2FF6 */ +0x10DD,0x0000,0x0000, 0x10DE,0x0000,0x0000, 0x10DF,0x0000,0x0000, /* 2FF9 */ +0xFBC0,0xAFFC,0x0000, 0xFBC0,0xAFFD,0x0000, 0xFBC0,0xAFFE,0x0000, /* 2FFC */ +0xFBC0,0xAFFF,0x0000 }; + +uint16 uca520_p030[]= { /* 3000 (3 weights per char) */ +0x020A,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0291,0x0000,0x0000, /* 3000 */ +0x0374,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x11D7,0x0000,0x0000, /* 3003 */ +0x2B20,0x2B36,0x0000, 0x1205,0x0000,0x0000, 0x033D,0x0000,0x0000, /* 3006 */ +0x033E,0x0000,0x0000, 0x033F,0x0000,0x0000, 0x0340,0x0000,0x0000, /* 3009 */ +0x0341,0x0000,0x0000, 0x0342,0x0000,0x0000, 0x0343,0x0000,0x0000, /* 300C */ +0x0344,0x0000,0x0000, 0x0345,0x0000,0x0000, 0x0346,0x0000,0x0000, /* 300F */ +0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x0347,0x0000,0x0000, /* 3012 */ +0x0348,0x0000,0x0000, 0x0349,0x0000,0x0000, 0x034A,0x0000,0x0000, /* 3015 */ +0x034B,0x0000,0x0000, 0x034C,0x0000,0x0000, 0x034D,0x0000,0x0000, /* 3018 */ +0x034E,0x0000,0x0000, 0x0230,0x0000,0x0000, 0x02FA,0x0000,0x0000, /* 301B */ +0x02FB,0x0000,0x0000, 0x02FC,0x0000,0x0000, 0x1107,0x0000,0x0000, /* 301E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 3021 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 3024 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 3027 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 302A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 302D */ +0x0231,0x0000,0x0000, 0x11D9,0x0000,0x0000, 0x11D9,0x0000,0x0000, /* 3030 */ +0x11DA,0x0000,0x0000, 0x11DA,0x0000,0x0000, 0x11DB,0x0000,0x0000, /* 3033 */ +0x1105,0x0000,0x0000, 0x1108,0x0000,0x0000, 0xFB40,0xD341,0x0000, /* 3036 */ +0xFB40,0xD344,0x0000, 0xFB40,0xD345,0x0000, 0x11D8,0x0000,0x0000, /* 3039 */ +0x2B33,0x2B21,0x0000, 0x0375,0x0000,0x0000, 0x1109,0x0000,0x0000, /* 303C */ +0x110A,0x0000,0x0000, 0xFBC0,0xB040,0x0000, 0x2B15,0x0000,0x0000, /* 303F */ +0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* 3042 */ +0x2B17,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* 3045 */ +0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* 3048 */ +0x2B1A,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* 304B */ +0x2B1B,0x0000,0x0000, 0x2B1C,0x0000,0x0000, 0x2B1C,0x0000,0x0000, /* 304E */ +0x2B1D,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* 3051 */ +0x2B1E,0x0000,0x0000, 0x2B1F,0x0000,0x0000, 0x2B1F,0x0000,0x0000, /* 3054 */ +0x2B20,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 3057 */ +0x2B21,0x0000,0x0000, 0x2B22,0x0000,0x0000, 0x2B22,0x0000,0x0000, /* 305A */ +0x2B23,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* 305D */ +0x2B24,0x0000,0x0000, 0x2B25,0x0000,0x0000, 0x2B25,0x0000,0x0000, /* 3060 */ +0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, /* 3063 */ +0x2B27,0x0000,0x0000, 0x2B27,0x0000,0x0000, 0x2B28,0x0000,0x0000, /* 3066 */ +0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* 3069 */ +0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* 306C */ +0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 306F */ +0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, /* 3072 */ +0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* 3075 */ +0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 3078 */ +0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, /* 307B */ +0x2B33,0x0000,0x0000, 0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, /* 307E */ +0x2B36,0x0000,0x0000, 0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, /* 3081 */ +0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* 3084 */ +0x2B3A,0x0000,0x0000, 0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 3087 */ +0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 308A */ +0x2B3F,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B40,0x0000,0x0000, /* 308D */ +0x2B41,0x0000,0x0000, 0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, /* 3090 */ +0x2B44,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B1A,0x0000,0x0000, /* 3093 */ +0x2B1D,0x0000,0x0000, 0xFBC0,0xB097,0x0000, 0xFBC0,0xB098,0x0000, /* 3096 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0220,0x0000,0x0000, /* 3099 */ +0x0221,0x0000,0x0000, 0x11DC,0x0000,0x0000, 0x11DC,0x0000,0x0000, /* 309C */ +0x2B3A,0x2B3C,0x0000, 0x0232,0x0000,0x0000, 0x2B15,0x0000,0x0000, /* 309F */ +0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* 30A2 */ +0x2B17,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* 30A5 */ +0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* 30A8 */ +0x2B1A,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* 30AB */ +0x2B1B,0x0000,0x0000, 0x2B1C,0x0000,0x0000, 0x2B1C,0x0000,0x0000, /* 30AE */ +0x2B1D,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* 30B1 */ +0x2B1E,0x0000,0x0000, 0x2B1F,0x0000,0x0000, 0x2B1F,0x0000,0x0000, /* 30B4 */ +0x2B20,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 30B7 */ +0x2B21,0x0000,0x0000, 0x2B22,0x0000,0x0000, 0x2B22,0x0000,0x0000, /* 30BA */ +0x2B23,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* 30BD */ +0x2B24,0x0000,0x0000, 0x2B25,0x0000,0x0000, 0x2B25,0x0000,0x0000, /* 30C0 */ +0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, /* 30C3 */ +0x2B27,0x0000,0x0000, 0x2B27,0x0000,0x0000, 0x2B28,0x0000,0x0000, /* 30C6 */ +0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* 30C9 */ +0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* 30CC */ +0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 30CF */ +0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, /* 30D2 */ +0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* 30D5 */ +0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 30D8 */ +0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, /* 30DB */ +0x2B33,0x0000,0x0000, 0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, /* 30DE */ +0x2B36,0x0000,0x0000, 0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, /* 30E1 */ +0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* 30E4 */ +0x2B3A,0x0000,0x0000, 0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 30E7 */ +0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 30EA */ +0x2B3F,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B40,0x0000,0x0000, /* 30ED */ +0x2B41,0x0000,0x0000, 0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, /* 30F0 */ +0x2B44,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B1A,0x0000,0x0000, /* 30F3 */ +0x2B1D,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B41,0x0000,0x0000, /* 30F6 */ +0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, 0x0233,0x0000,0x0000, /* 30F9 */ +0x11DD,0x0000,0x0000, 0x11DE,0x0000,0x0000, 0x11DE,0x0000,0x0000, /* 30FC */ +0x2B1E,0x2B28,0x0000 }; + +uint16 uca520_p031[]= { /* 3100 (3 weights per char) */ +0xFBC0,0xB100,0x0000, 0xFBC0,0xB101,0x0000, 0xFBC0,0xB102,0x0000, /* 3100 */ +0xFBC0,0xB103,0x0000, 0xFBC0,0xB104,0x0000, 0x2B45,0x0000,0x0000, /* 3103 */ +0x2B46,0x0000,0x0000, 0x2B47,0x0000,0x0000, 0x2B48,0x0000,0x0000, /* 3106 */ +0x2B4A,0x0000,0x0000, 0x2B4B,0x0000,0x0000, 0x2B4C,0x0000,0x0000, /* 3109 */ +0x2B4D,0x0000,0x0000, 0x2B4E,0x0000,0x0000, 0x2B4F,0x0000,0x0000, /* 310C */ +0x2B52,0x0000,0x0000, 0x2B53,0x0000,0x0000, 0x2B54,0x0000,0x0000, /* 310F */ +0x2B55,0x0000,0x0000, 0x2B57,0x0000,0x0000, 0x2B58,0x0000,0x0000, /* 3112 */ +0x2B59,0x0000,0x0000, 0x2B5A,0x0000,0x0000, 0x2B5B,0x0000,0x0000, /* 3115 */ +0x2B5C,0x0000,0x0000, 0x2B5D,0x0000,0x0000, 0x2B5E,0x0000,0x0000, /* 3118 */ +0x2B5F,0x0000,0x0000, 0x2B61,0x0000,0x0000, 0x2B62,0x0000,0x0000, /* 311B */ +0x2B64,0x0000,0x0000, 0x2B65,0x0000,0x0000, 0x2B66,0x0000,0x0000, /* 311E */ +0x2B67,0x0000,0x0000, 0x2B68,0x0000,0x0000, 0x2B69,0x0000,0x0000, /* 3121 */ +0x2B6A,0x0000,0x0000, 0x2B6C,0x0000,0x0000, 0x2B70,0x0000,0x0000, /* 3124 */ +0x2B71,0x0000,0x0000, 0x2B72,0x0000,0x0000, 0x2B73,0x0000,0x0000, /* 3127 */ +0x2B49,0x0000,0x0000, 0x2B50,0x0000,0x0000, 0x2B56,0x0000,0x0000, /* 312A */ +0x2B74,0x0000,0x0000, 0xFBC0,0xB12E,0x0000, 0xFBC0,0xB12F,0x0000, /* 312D */ +0xFBC0,0xB130,0x0000, 0x29B0,0x0000,0x0000, 0x29B1,0x0000,0x0000, /* 3130 */ +0x2A8E,0x0000,0x0000, 0x29B2,0x0000,0x0000, 0x2A90,0x0000,0x0000, /* 3133 */ +0x2A91,0x0000,0x0000, 0x29B3,0x0000,0x0000, 0x29B4,0x0000,0x0000, /* 3136 */ +0x29B5,0x0000,0x0000, 0x2A94,0x0000,0x0000, 0x2A95,0x0000,0x0000, /* 3139 */ +0x2A96,0x0000,0x0000, 0x2A97,0x0000,0x0000, 0x2A98,0x0000,0x0000, /* 313C */ +0x2A99,0x0000,0x0000, 0x29CA,0x0000,0x0000, 0x29B6,0x0000,0x0000, /* 313F */ +0x29B7,0x0000,0x0000, 0x29B8,0x0000,0x0000, 0x29D1,0x0000,0x0000, /* 3142 */ +0x29B9,0x0000,0x0000, 0x29BA,0x0000,0x0000, 0x29BB,0x0000,0x0000, /* 3145 */ +0x29BC,0x0000,0x0000, 0x29BD,0x0000,0x0000, 0x29BE,0x0000,0x0000, /* 3148 */ +0x29BF,0x0000,0x0000, 0x29C0,0x0000,0x0000, 0x29C1,0x0000,0x0000, /* 314B */ +0x29C2,0x0000,0x0000, 0x2A2E,0x0000,0x0000, 0x2A2F,0x0000,0x0000, /* 314E */ +0x2A30,0x0000,0x0000, 0x2A31,0x0000,0x0000, 0x2A32,0x0000,0x0000, /* 3151 */ +0x2A33,0x0000,0x0000, 0x2A34,0x0000,0x0000, 0x2A35,0x0000,0x0000, /* 3154 */ +0x2A36,0x0000,0x0000, 0x2A37,0x0000,0x0000, 0x2A38,0x0000,0x0000, /* 3157 */ +0x2A39,0x0000,0x0000, 0x2A3A,0x0000,0x0000, 0x2A3B,0x0000,0x0000, /* 315A */ +0x2A3C,0x0000,0x0000, 0x2A3D,0x0000,0x0000, 0x2A3E,0x0000,0x0000, /* 315D */ +0x2A3F,0x0000,0x0000, 0x2A40,0x0000,0x0000, 0x2A41,0x0000,0x0000, /* 3160 */ +0x2A42,0x0000,0x0000, 0x2A2D,0x0000,0x0000, 0x29C4,0x0000,0x0000, /* 3163 */ +0x29C5,0x0000,0x0000, 0x2AAB,0x0000,0x0000, 0x2AAC,0x0000,0x0000, /* 3166 */ +0x2AB0,0x0000,0x0000, 0x2AB2,0x0000,0x0000, 0x2AB7,0x0000,0x0000, /* 3169 */ +0x2ABB,0x0000,0x0000, 0x2ABD,0x0000,0x0000, 0x29CC,0x0000,0x0000, /* 316C */ +0x2AC1,0x0000,0x0000, 0x2AC3,0x0000,0x0000, 0x29CD,0x0000,0x0000, /* 316F */ +0x29CE,0x0000,0x0000, 0x29D0,0x0000,0x0000, 0x29D2,0x0000,0x0000, /* 3172 */ +0x29D3,0x0000,0x0000, 0x29D7,0x0000,0x0000, 0x29D9,0x0000,0x0000, /* 3175 */ +0x29DB,0x0000,0x0000, 0x29DC,0x0000,0x0000, 0x29DD,0x0000,0x0000, /* 3178 */ +0x29DE,0x0000,0x0000, 0x29DF,0x0000,0x0000, 0x29E2,0x0000,0x0000, /* 317B */ +0x29E6,0x0000,0x0000, 0x29F0,0x0000,0x0000, 0x29F7,0x0000,0x0000, /* 317E */ +0x29FC,0x0000,0x0000, 0x2AD5,0x0000,0x0000, 0x2AD6,0x0000,0x0000, /* 3181 */ +0x2A07,0x0000,0x0000, 0x2A08,0x0000,0x0000, 0x2A09,0x0000,0x0000, /* 3184 */ +0x2A51,0x0000,0x0000, 0x2A52,0x0000,0x0000, 0x2A55,0x0000,0x0000, /* 3187 */ +0x2A5E,0x0000,0x0000, 0x2A5F,0x0000,0x0000, 0x2A61,0x0000,0x0000, /* 318A */ +0x2A6B,0x0000,0x0000, 0x2A6E,0x0000,0x0000, 0xFBC0,0xB18F,0x0000, /* 318D */ +0x110B,0x0000,0x0000, 0x110C,0x0000,0x0000, 0xFB40,0xCE00,0x0000, /* 3190 */ +0xFB40,0xCE8C,0x0000, 0xFB40,0xCE09,0x0000, 0xFB40,0xD6DB,0x0000, /* 3193 */ +0xFB40,0xCE0A,0x0000, 0xFB40,0xCE2D,0x0000, 0xFB40,0xCE0B,0x0000, /* 3196 */ +0xFB40,0xF532,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE19,0x0000, /* 3199 */ +0xFB40,0xCE01,0x0000, 0xFB40,0xD929,0x0000, 0xFB40,0xD730,0x0000, /* 319C */ +0xFB40,0xCEBA,0x0000, 0x2B45,0x0000,0x0000, 0x2B5B,0x0000,0x0000, /* 319F */ +0x2B53,0x0000,0x0000, 0x2B4E,0x0000,0x0000, 0x2B63,0x0000,0x0000, /* 31A2 */ +0x2B63,0x0000,0x0000, 0x2B60,0x0000,0x0000, 0x2B5F,0x0000,0x0000, /* 31A5 */ +0x2B72,0x0000,0x0000, 0x2B5E,0x0000,0x0000, 0x2B71,0x0000,0x0000, /* 31A8 */ +0x2B72,0x0000,0x0000, 0x2B6F,0x0000,0x0000, 0x2B51,0x0000,0x0000, /* 31AB */ +0x2B64,0x0000,0x0000, 0x2B66,0x0000,0x0000, 0x2B6D,0x0000,0x0000, /* 31AE */ +0x2B6E,0x0000,0x0000, 0x2B6B,0x0000,0x0000, 0x2B71,0x0000,0x0000, /* 31B1 */ +0x2B46,0x0000,0x0000, 0x2B4B,0x0000,0x0000, 0x2B4F,0x0000,0x0000, /* 31B4 */ +0x2B52,0x0000,0x0000, 0xFBC0,0xB1B8,0x0000, 0xFBC0,0xB1B9,0x0000, /* 31B7 */ +0xFBC0,0xB1BA,0x0000, 0xFBC0,0xB1BB,0x0000, 0xFBC0,0xB1BC,0x0000, /* 31BA */ +0xFBC0,0xB1BD,0x0000, 0xFBC0,0xB1BE,0x0000, 0xFBC0,0xB1BF,0x0000, /* 31BD */ +0x10E0,0x0000,0x0000, 0x10E1,0x0000,0x0000, 0x10E2,0x0000,0x0000, /* 31C0 */ +0x10E3,0x0000,0x0000, 0x10E4,0x0000,0x0000, 0x10E5,0x0000,0x0000, /* 31C3 */ +0x10E6,0x0000,0x0000, 0x10E7,0x0000,0x0000, 0x10E8,0x0000,0x0000, /* 31C6 */ +0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x10EB,0x0000,0x0000, /* 31C9 */ +0x10EC,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10EE,0x0000,0x0000, /* 31CC */ +0x10EF,0x0000,0x0000, 0x10F0,0x0000,0x0000, 0x10F1,0x0000,0x0000, /* 31CF */ +0x10F2,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F4,0x0000,0x0000, /* 31D2 */ +0x10F5,0x0000,0x0000, 0x10F6,0x0000,0x0000, 0x10F7,0x0000,0x0000, /* 31D5 */ +0x10F8,0x0000,0x0000, 0x10F9,0x0000,0x0000, 0x10FA,0x0000,0x0000, /* 31D8 */ +0x10FB,0x0000,0x0000, 0x10FC,0x0000,0x0000, 0x10FD,0x0000,0x0000, /* 31DB */ +0x10FE,0x0000,0x0000, 0x10FF,0x0000,0x0000, 0x1100,0x0000,0x0000, /* 31DE */ +0x1101,0x0000,0x0000, 0x1102,0x0000,0x0000, 0x1103,0x0000,0x0000, /* 31E1 */ +0xFBC0,0xB1E4,0x0000, 0xFBC0,0xB1E5,0x0000, 0xFBC0,0xB1E6,0x0000, /* 31E4 */ +0xFBC0,0xB1E7,0x0000, 0xFBC0,0xB1E8,0x0000, 0xFBC0,0xB1E9,0x0000, /* 31E7 */ +0xFBC0,0xB1EA,0x0000, 0xFBC0,0xB1EB,0x0000, 0xFBC0,0xB1EC,0x0000, /* 31EA */ +0xFBC0,0xB1ED,0x0000, 0xFBC0,0xB1EE,0x0000, 0xFBC0,0xB1EF,0x0000, /* 31ED */ +0x2B1C,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 31F0 */ +0x2B28,0x0000,0x0000, 0x2B2B,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 31F3 */ +0x2B2F,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 31F6 */ +0x2B32,0x0000,0x0000, 0x2B35,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 31F9 */ +0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 31FC */ +0x2B3F,0x0000,0x0000 }; + +uint16 uca520_p032[]= { /* 3200 (8 weights per char) */ +0x02FF,0x29B0,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3200 */ +0x02FF,0x29B2,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3201 */ +0x02FF,0x29B3,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3202 */ +0x02FF,0x29B5,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3203 */ +0x02FF,0x29B6,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3204 */ +0x02FF,0x29B7,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3205 */ +0x02FF,0x29B9,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3206 */ +0x02FF,0x29BB,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3207 */ +0x02FF,0x29BC,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3208 */ +0x02FF,0x29BE,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3209 */ +0x02FF,0x29BF,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320A */ +0x02FF,0x29C0,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320B */ +0x02FF,0x29C1,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320C */ +0x02FF,0x29C2,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320D */ +0x02FF,0x29B0,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 320E */ +0x02FF,0x29B2,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 320F */ +0x02FF,0x29B3,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3210 */ +0x02FF,0x29B5,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3211 */ +0x02FF,0x29B6,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3212 */ +0x02FF,0x29B7,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3213 */ +0x02FF,0x29B9,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3214 */ +0x02FF,0x29BB,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3215 */ +0x02FF,0x29BC,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3216 */ +0x02FF,0x29BE,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3217 */ +0x02FF,0x29BF,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3218 */ +0x02FF,0x29C0,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3219 */ +0x02FF,0x29C1,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321A */ +0x02FF,0x29C2,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321B */ +0x02FF,0x29BC,0x2A3B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321C */ +0x02FF,0x29BB,0x2A36,0x29BC,0x2A32,0x2A8F,0x0300,0x0000, /* 321D */ +0x02FF,0x29BB,0x2A36,0x29C2,0x2A3B,0x0300,0x0000,0x0000, /* 321E */ +0xFBC0,0xB21F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 321F */ +0x02FF,0xFB40,0xCE00,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3220 */ +0x02FF,0xFB40,0xCE8C,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3221 */ +0x02FF,0xFB40,0xCE09,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3222 */ +0x02FF,0xFB40,0xD6DB,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3223 */ +0x02FF,0xFB40,0xCE94,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3224 */ +0x02FF,0xFB40,0xD16D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3225 */ +0x02FF,0xFB40,0xCE03,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3226 */ +0x02FF,0xFB40,0xD16B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3227 */ +0x02FF,0xFB40,0xCE5D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3228 */ +0x02FF,0xFB40,0xD341,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3229 */ +0x02FF,0xFB40,0xE708,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322A */ +0x02FF,0xFB40,0xF06B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322B */ +0x02FF,0xFB40,0xEC34,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322C */ +0x02FF,0xFB40,0xE728,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322D */ +0x02FF,0xFB41,0x91D1,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322E */ +0x02FF,0xFB40,0xD71F,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322F */ +0x02FF,0xFB40,0xE5E5,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3230 */ +0x02FF,0xFB40,0xE82A,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3231 */ +0x02FF,0xFB40,0xE709,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3232 */ +0x02FF,0xFB40,0xF93E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3233 */ +0x02FF,0xFB40,0xD40D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3234 */ +0x02FF,0xFB40,0xF279,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3235 */ +0x02FF,0xFB41,0x8CA1,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3236 */ +0x02FF,0xFB40,0xF95D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3237 */ +0x02FF,0xFB40,0xD2B4,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3238 */ +0x02FF,0xFB40,0xCEE3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3239 */ +0x02FF,0xFB40,0xD47C,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323A */ +0x02FF,0xFB40,0xDB66,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323B */ +0x02FF,0xFB40,0xF6E3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323C */ +0x02FF,0xFB40,0xCF01,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323D */ +0x02FF,0xFB41,0x8CC7,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323E */ +0x02FF,0xFB40,0xD354,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323F */ +0x02FF,0xFB40,0xF96D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3240 */ +0x02FF,0xFB40,0xCF11,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3241 */ +0x02FF,0xFB41,0x81EA,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3242 */ +0x02FF,0xFB41,0x81F3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3243 */ +0xFB40,0xD54F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3244 */ +0xFB40,0xDE7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3245 */ +0xFB40,0xE587,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3246 */ +0xFB40,0xFB8F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3247 */ +0x1206,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3248 */ +0x1207,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3249 */ +0x1208,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324A */ +0x1209,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324B */ +0x120A,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324C */ +0x120B,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324D */ +0x120C,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324E */ +0x120D,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324F */ +0x13B3,0x1433,0x126B,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3250 */ +0x1207,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3251 */ +0x1207,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3252 */ +0x1207,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3253 */ +0x1207,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3254 */ +0x1207,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3255 */ +0x1207,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3256 */ +0x1207,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3257 */ +0x1207,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3258 */ +0x1207,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3259 */ +0x1208,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325A */ +0x1208,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325B */ +0x1208,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325C */ +0x1208,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325D */ +0x1208,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325E */ +0x1208,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325F */ +0x29B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3260 */ +0x29B2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3261 */ +0x29B3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3262 */ +0x29B5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3263 */ +0x29B6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3264 */ +0x29B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3265 */ +0x29B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3266 */ +0x29BB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3267 */ +0x29BC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3268 */ +0x29BE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3269 */ +0x29BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326A */ +0x29C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326B */ +0x29C1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326C */ +0x29C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326D */ +0x29B0,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326E */ +0x29B2,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326F */ +0x29B3,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3270 */ +0x29B5,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3271 */ +0x29B6,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3272 */ +0x29B7,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3273 */ +0x29B9,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3274 */ +0x29BB,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3275 */ +0x29BC,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3276 */ +0x29BE,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3277 */ +0x29BF,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3278 */ +0x29C0,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3279 */ +0x29C1,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327A */ +0x29C2,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327B */ +0x29BE,0x2A2E,0x2A9B,0x29B0,0x2A36,0x0000,0x0000,0x0000, /* 327C */ +0x29BC,0x2A3B,0x29BB,0x2A41,0x0000,0x0000,0x0000,0x0000, /* 327D */ +0x29BB,0x2A3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327E */ +0x110D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327F */ +0xFB40,0xCE00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3280 */ +0xFB40,0xCE8C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3281 */ +0xFB40,0xCE09,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3282 */ +0xFB40,0xD6DB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3283 */ +0xFB40,0xCE94,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3284 */ +0xFB40,0xD16D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3285 */ +0xFB40,0xCE03,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3286 */ +0xFB40,0xD16B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3287 */ +0xFB40,0xCE5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3288 */ +0xFB40,0xD341,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3289 */ +0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328A */ +0xFB40,0xF06B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328B */ +0xFB40,0xEC34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328C */ +0xFB40,0xE728,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328D */ +0xFB41,0x91D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328E */ +0xFB40,0xD71F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328F */ +0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3290 */ +0xFB40,0xE82A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3291 */ +0xFB40,0xE709,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3292 */ +0xFB40,0xF93E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3293 */ +0xFB40,0xD40D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3294 */ +0xFB40,0xF279,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3295 */ +0xFB41,0x8CA1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3296 */ +0xFB40,0xF95D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3297 */ +0xFB40,0xD2B4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3298 */ +0xFB40,0xF9D8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3299 */ +0xFB40,0xF537,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329A */ +0xFB40,0xD973,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329B */ +0xFB41,0x9069,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329C */ +0xFB40,0xD12A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329D */ +0xFB40,0xD370,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329E */ +0xFB40,0xECE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329F */ +0xFB41,0x9805,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A0 */ +0xFB40,0xCF11,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A1 */ +0xFB40,0xD199,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A2 */ +0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A3 */ +0xFB40,0xCE0A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A4 */ +0xFB40,0xCE2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A5 */ +0xFB40,0xCE0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A6 */ +0xFB40,0xDDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A7 */ +0xFB40,0xD3F3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A8 */ +0xFB40,0xD33B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A9 */ +0xFB40,0xDB97,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AA */ +0xFB40,0xDB66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AB */ +0xFB40,0xF6E3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AC */ +0xFB40,0xCF01,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AD */ +0xFB41,0x8CC7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AE */ +0xFB40,0xD354,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AF */ +0xFB40,0xD91C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B0 */ +0x1208,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B1 */ +0x1208,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B2 */ +0x1208,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B3 */ +0x1208,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B4 */ +0x1209,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B5 */ +0x1209,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B6 */ +0x1209,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B7 */ +0x1209,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B8 */ +0x1209,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B9 */ +0x1209,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BA */ +0x1209,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BB */ +0x1209,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BC */ +0x1209,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BD */ +0x1209,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BE */ +0x120A,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BF */ +0x1206,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C0 */ +0x1207,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C1 */ +0x1208,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C2 */ +0x1209,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C3 */ +0x120A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C4 */ +0x120B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C5 */ +0x120C,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C6 */ +0x120D,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C7 */ +0x120E,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C8 */ +0x1206,0x1205,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32C9 */ +0x1206,0x1206,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32CA */ +0x1206,0x1207,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32CB */ +0x12D3,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CC */ +0x126B,0x13DA,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CD */ +0x126B,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CE */ +0x1330,0x1433,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CF */ +0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D0 */ +0x2B16,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D1 */ +0x2B17,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D2 */ +0x2B18,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D3 */ +0x2B19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D4 */ +0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D5 */ +0x2B1B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D6 */ +0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D7 */ +0x2B1D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D8 */ +0x2B1E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D9 */ +0x2B1F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DA */ +0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DB */ +0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DC */ +0x2B22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DD */ +0x2B23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DE */ +0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DF */ +0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E0 */ +0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E1 */ +0x2B27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E2 */ +0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E3 */ +0x2B29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E4 */ +0x2B2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E5 */ +0x2B2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E6 */ +0x2B2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E7 */ +0x2B2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E8 */ +0x2B2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E9 */ +0x2B2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EA */ +0x2B30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EB */ +0x2B31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EC */ +0x2B32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32ED */ +0x2B33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EE */ +0x2B34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EF */ +0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F0 */ +0x2B36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F1 */ +0x2B37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F2 */ +0x2B38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F3 */ +0x2B39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F4 */ +0x2B3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F5 */ +0x2B3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F6 */ +0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F7 */ +0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F8 */ +0x2B3E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F9 */ +0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FA */ +0x2B40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FB */ +0x2B41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FC */ +0x2B42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FD */ +0x2B43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FE */ +0xFBC0,0xB2FF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 32FF */ +}; + +uint16 uca520_p033[]= { /* 3300 (9 weights per char) */ +0x2B15,0x2B2E,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3300 */ +0x2B15,0x2B3D,0x2B30,0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3301 */ +0x2B15,0x2B44,0x2B31,0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3302 */ +0x2B15,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3303 */ +0x2B16,0x2B2A,0x2B44,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3304 */ +0x2B16,0x2B44,0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3305 */ +0x2B17,0x2B19,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3306 */ +0x2B18,0x2B21,0x2B1C,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3307 */ +0x2B18,0x11DD,0x2B1A,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3308 */ +0x2B19,0x2B44,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3309 */ +0x2B19,0x11DD,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330A */ +0x2B1A,0x2B16,0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330B */ +0x2B1A,0x2B3B,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330C */ +0x2B1A,0x2B3F,0x2B3C,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330D */ +0x2B1A,0x2B3F,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330E */ +0x2B1A,0x2B44,0x2B33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330F */ +0x2B1B,0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3310 */ +0x2B1B,0x2B2A,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3311 */ +0x2B1B,0x2B39,0x2B3C,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3312 */ +0x2B1B,0x2B3D,0x2B24,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3313 */ +0x2B1B,0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3314 */ +0x2B1B,0x2B3F,0x2B1C,0x2B3B,0x2B35,0x0000,0x0000,0x0000,0x0000, /* 3315 */ +0x2B1B,0x2B3F,0x2B36,0x11DD,0x2B28,0x2B3D,0x0000,0x0000,0x0000, /* 3316 */ +0x2B1B,0x2B3F,0x2B40,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3317 */ +0x2B1C,0x2B3B,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3318 */ +0x2B1C,0x2B3B,0x2B35,0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3319 */ +0x2B1C,0x2B3D,0x2B22,0x2B16,0x2B3F,0x0000,0x0000,0x0000,0x0000, /* 331A */ +0x2B1C,0x2B3F,0x11DD,0x2B2C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331B */ +0x2B1D,0x11DD,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331C */ +0x2B1E,0x2B3D,0x2B29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331D */ +0x2B1E,0x11DD,0x2B32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331E */ +0x2B1F,0x2B16,0x2B1C,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331F */ +0x2B1F,0x2B44,0x2B25,0x11DD,0x2B35,0x0000,0x0000,0x0000,0x0000, /* 3320 */ +0x2B20,0x2B3C,0x2B44,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3321 */ +0x2B22,0x2B44,0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3322 */ +0x2B22,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3323 */ +0x2B24,0x11DD,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3324 */ +0x2B27,0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3325 */ +0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3326 */ +0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3327 */ +0x2B29,0x2B2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3328 */ +0x2B2D,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3329 */ +0x2B2E,0x2B16,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332A */ +0x2B2E,0x11DD,0x2B22,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 332B */ +0x2B2E,0x11DD,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332C */ +0x2B2E,0x11DD,0x2B3E,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332D */ +0x2B2F,0x2B15,0x2B21,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 332E */ +0x2B2F,0x2B1C,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332F */ +0x2B2F,0x2B1E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3330 */ +0x2B2F,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3331 */ +0x2B30,0x2B15,0x2B3B,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3332 */ +0x2B30,0x2B16,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3333 */ +0x2B30,0x2B26,0x2B20,0x2B18,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 3334 */ +0x2B30,0x2B3B,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3335 */ +0x2B31,0x2B1C,0x2B24,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 3336 */ +0x2B31,0x2B23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3337 */ +0x2B31,0x2B2A,0x2B2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3338 */ +0x2B31,0x2B3D,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3339 */ +0x2B31,0x2B44,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333A */ +0x2B31,0x11DD,0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333B */ +0x2B31,0x11DD,0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333C */ +0x2B32,0x2B16,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333D */ +0x2B32,0x2B3D,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333E */ +0x2B32,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333F */ +0x2B32,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3340 */ +0x2B32,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3341 */ +0x2B32,0x11DD,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3342 */ +0x2B33,0x2B16,0x2B1C,0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3343 */ +0x2B33,0x2B16,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3344 */ +0x2B33,0x2B26,0x2B2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3345 */ +0x2B33,0x2B3D,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3346 */ +0x2B33,0x2B44,0x2B20,0x2B3A,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3347 */ +0x2B34,0x2B1C,0x2B3F,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3348 */ +0x2B34,0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3349 */ +0x2B34,0x2B3C,0x2B2E,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 334A */ +0x2B36,0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334B */ +0x2B36,0x2B1A,0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334C */ +0x2B36,0x11DD,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334D */ +0x2B38,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334E */ +0x2B38,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334F */ +0x2B39,0x2B15,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3350 */ +0x2B3C,0x2B26,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3351 */ +0x2B3C,0x2B3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3352 */ +0x2B3D,0x2B2F,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3353 */ +0x2B3D,0x11DD,0x2B30,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3354 */ +0x2B3E,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3355 */ +0x2B3E,0x2B44,0x2B28,0x2B1D,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3356 */ +0x2B40,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3357 */ +0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3358 */ +0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3359 */ +0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335A */ +0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335B */ +0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335C */ +0x120A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335D */ +0x120B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335E */ +0x120C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335F */ +0x120D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3360 */ +0x120E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3361 */ +0x1206,0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3362 */ +0x1206,0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3363 */ +0x1206,0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3364 */ +0x1206,0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3365 */ +0x1206,0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3366 */ +0x1206,0x120A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3367 */ +0x1206,0x120B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3368 */ +0x1206,0x120C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3369 */ +0x1206,0x120D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336A */ +0x1206,0x120E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336B */ +0x1207,0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336C */ +0x1207,0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336D */ +0x1207,0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336E */ +0x1207,0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336F */ +0x1207,0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3370 */ +0x12D3,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3371 */ +0x1250,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3372 */ +0x120F,0x1453,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3373 */ +0x1225,0x120F,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3374 */ +0x138E,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3375 */ +0x13B3,0x123D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3376 */ +0x1250,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3377 */ +0x1250,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3378 */ +0x1250,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3379 */ +0x12EC,0x1453,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337A */ +0xFB40,0xDE73,0xFB40,0xE210,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337B */ +0xFB40,0xE62D,0xFB40,0xD48C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337C */ +0xFB40,0xD927,0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337D */ +0xFB40,0xE60E,0xFB40,0xECBB,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337E */ +0xFB40,0xE82A,0xFB40,0xDF0F,0xFB40,0xCF1A,0xFB40,0xF93E,0x0000, /* 337F */ +0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3380 */ +0x136D,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3381 */ +0x1557,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3382 */ +0x135F,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3383 */ +0x131E,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3384 */ +0x131E,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3385 */ +0x135F,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3386 */ +0x12B0,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3387 */ +0x123D,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3388 */ +0x131E,0x123D,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3389 */ +0x13B3,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338A */ +0x136D,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338B */ +0x1557,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338C */ +0x1557,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338D */ +0x135F,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338E */ +0x131E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338F */ +0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3390 */ +0x131E,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3391 */ +0x135F,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3392 */ +0x12B0,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3393 */ +0x1433,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3394 */ +0x1557,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3395 */ +0x135F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3396 */ +0x1250,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3397 */ +0x131E,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3398 */ +0x12A3,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3399 */ +0x136D,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339A */ +0x1557,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339B */ +0x135F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339C */ +0x123D,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339D */ +0x131E,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339E */ +0x135F,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339F */ +0x123D,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A0 */ +0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A1 */ +0x131E,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A2 */ +0x135F,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A3 */ +0x123D,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A4 */ +0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A5 */ +0x131E,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A6 */ +0x135F,0x055F,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A7 */ +0x135F,0x055F,0x1410,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A8 */ +0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A9 */ +0x131E,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AA */ +0x135F,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AB */ +0x12B0,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AC */ +0x13DA,0x120F,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AD */ +0x13DA,0x120F,0x1250,0x055F,0x1410,0x0000,0x0000,0x0000,0x0000, /* 33AE */ +0x13DA,0x120F,0x1250,0x055F,0x1410,0x1207,0x0000,0x0000,0x0000, /* 33AF */ +0x13B3,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B0 */ +0x136D,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B1 */ +0x1557,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B2 */ +0x135F,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B3 */ +0x13B3,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B4 */ +0x136D,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B5 */ +0x1557,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B6 */ +0x135F,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B7 */ +0x131E,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B8 */ +0x135F,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B9 */ +0x13B3,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BA */ +0x136D,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BB */ +0x1557,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BC */ +0x135F,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BD */ +0x131E,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BE */ +0x135F,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BF */ +0x131E,0x156D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C0 */ +0x135F,0x156D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C1 */ +0x120F,0x0281,0x135F,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C2 */ +0x1225,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C3 */ +0x123D,0x123D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C4 */ +0x123D,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C5 */ +0x123D,0x055F,0x131E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C6 */ +0x123D,0x138E,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C7 */ +0x1250,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C8 */ +0x12B0,0x149C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C9 */ +0x12D3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CA */ +0x12D3,0x13B3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CB */ +0x12EC,0x136D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CC */ +0x131E,0x131E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CD */ +0x131E,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CE */ +0x131E,0x1433,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CF */ +0x1330,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D0 */ +0x1330,0x136D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D1 */ +0x1330,0x138E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D2 */ +0x1330,0x1497,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D3 */ +0x135F,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D4 */ +0x135F,0x12EC,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D5 */ +0x135F,0x138E,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D6 */ +0x13B3,0x12D3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D7 */ +0x13B3,0x0281,0x135F,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D8 */ +0x13B3,0x13B3,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D9 */ +0x13B3,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DA */ +0x1410,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DB */ +0x1410,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DC */ +0x148D,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DD */ +0x147B,0x055F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DE */ +0x120F,0x055F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DF */ +0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E0 */ +0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E1 */ +0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E2 */ +0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E3 */ +0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E4 */ +0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E5 */ +0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E6 */ +0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E7 */ +0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E8 */ +0x1206,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E9 */ +0x1206,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EA */ +0x1206,0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EB */ +0x1206,0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EC */ +0x1206,0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33ED */ +0x1206,0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EE */ +0x1206,0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EF */ +0x1206,0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F0 */ +0x1206,0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F1 */ +0x1206,0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F2 */ +0x1207,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F3 */ +0x1207,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F4 */ +0x1207,0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F5 */ +0x1207,0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F6 */ +0x1207,0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F7 */ +0x1207,0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F8 */ +0x1207,0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F9 */ +0x1207,0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FA */ +0x1207,0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FB */ +0x1207,0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FC */ +0x1208,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FD */ +0x1208,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FE */ +0x12B0,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 33FF */ +}; + +uint16 uca520_p04D[]= { /* 4D00 (3 weights per char) */ +0xFB80,0xCD00,0x0000, 0xFB80,0xCD01,0x0000, 0xFB80,0xCD02,0x0000, /* 4D00 */ +0xFB80,0xCD03,0x0000, 0xFB80,0xCD04,0x0000, 0xFB80,0xCD05,0x0000, /* 4D03 */ +0xFB80,0xCD06,0x0000, 0xFB80,0xCD07,0x0000, 0xFB80,0xCD08,0x0000, /* 4D06 */ +0xFB80,0xCD09,0x0000, 0xFB80,0xCD0A,0x0000, 0xFB80,0xCD0B,0x0000, /* 4D09 */ +0xFB80,0xCD0C,0x0000, 0xFB80,0xCD0D,0x0000, 0xFB80,0xCD0E,0x0000, /* 4D0C */ +0xFB80,0xCD0F,0x0000, 0xFB80,0xCD10,0x0000, 0xFB80,0xCD11,0x0000, /* 4D0F */ +0xFB80,0xCD12,0x0000, 0xFB80,0xCD13,0x0000, 0xFB80,0xCD14,0x0000, /* 4D12 */ +0xFB80,0xCD15,0x0000, 0xFB80,0xCD16,0x0000, 0xFB80,0xCD17,0x0000, /* 4D15 */ +0xFB80,0xCD18,0x0000, 0xFB80,0xCD19,0x0000, 0xFB80,0xCD1A,0x0000, /* 4D18 */ +0xFB80,0xCD1B,0x0000, 0xFB80,0xCD1C,0x0000, 0xFB80,0xCD1D,0x0000, /* 4D1B */ +0xFB80,0xCD1E,0x0000, 0xFB80,0xCD1F,0x0000, 0xFB80,0xCD20,0x0000, /* 4D1E */ +0xFB80,0xCD21,0x0000, 0xFB80,0xCD22,0x0000, 0xFB80,0xCD23,0x0000, /* 4D21 */ +0xFB80,0xCD24,0x0000, 0xFB80,0xCD25,0x0000, 0xFB80,0xCD26,0x0000, /* 4D24 */ +0xFB80,0xCD27,0x0000, 0xFB80,0xCD28,0x0000, 0xFB80,0xCD29,0x0000, /* 4D27 */ +0xFB80,0xCD2A,0x0000, 0xFB80,0xCD2B,0x0000, 0xFB80,0xCD2C,0x0000, /* 4D2A */ +0xFB80,0xCD2D,0x0000, 0xFB80,0xCD2E,0x0000, 0xFB80,0xCD2F,0x0000, /* 4D2D */ +0xFB80,0xCD30,0x0000, 0xFB80,0xCD31,0x0000, 0xFB80,0xCD32,0x0000, /* 4D30 */ +0xFB80,0xCD33,0x0000, 0xFB80,0xCD34,0x0000, 0xFB80,0xCD35,0x0000, /* 4D33 */ +0xFB80,0xCD36,0x0000, 0xFB80,0xCD37,0x0000, 0xFB80,0xCD38,0x0000, /* 4D36 */ +0xFB80,0xCD39,0x0000, 0xFB80,0xCD3A,0x0000, 0xFB80,0xCD3B,0x0000, /* 4D39 */ +0xFB80,0xCD3C,0x0000, 0xFB80,0xCD3D,0x0000, 0xFB80,0xCD3E,0x0000, /* 4D3C */ +0xFB80,0xCD3F,0x0000, 0xFB80,0xCD40,0x0000, 0xFB80,0xCD41,0x0000, /* 4D3F */ +0xFB80,0xCD42,0x0000, 0xFB80,0xCD43,0x0000, 0xFB80,0xCD44,0x0000, /* 4D42 */ +0xFB80,0xCD45,0x0000, 0xFB80,0xCD46,0x0000, 0xFB80,0xCD47,0x0000, /* 4D45 */ +0xFB80,0xCD48,0x0000, 0xFB80,0xCD49,0x0000, 0xFB80,0xCD4A,0x0000, /* 4D48 */ +0xFB80,0xCD4B,0x0000, 0xFB80,0xCD4C,0x0000, 0xFB80,0xCD4D,0x0000, /* 4D4B */ +0xFB80,0xCD4E,0x0000, 0xFB80,0xCD4F,0x0000, 0xFB80,0xCD50,0x0000, /* 4D4E */ +0xFB80,0xCD51,0x0000, 0xFB80,0xCD52,0x0000, 0xFB80,0xCD53,0x0000, /* 4D51 */ +0xFB80,0xCD54,0x0000, 0xFB80,0xCD55,0x0000, 0xFB80,0xCD56,0x0000, /* 4D54 */ +0xFB80,0xCD57,0x0000, 0xFB80,0xCD58,0x0000, 0xFB80,0xCD59,0x0000, /* 4D57 */ +0xFB80,0xCD5A,0x0000, 0xFB80,0xCD5B,0x0000, 0xFB80,0xCD5C,0x0000, /* 4D5A */ +0xFB80,0xCD5D,0x0000, 0xFB80,0xCD5E,0x0000, 0xFB80,0xCD5F,0x0000, /* 4D5D */ +0xFB80,0xCD60,0x0000, 0xFB80,0xCD61,0x0000, 0xFB80,0xCD62,0x0000, /* 4D60 */ +0xFB80,0xCD63,0x0000, 0xFB80,0xCD64,0x0000, 0xFB80,0xCD65,0x0000, /* 4D63 */ +0xFB80,0xCD66,0x0000, 0xFB80,0xCD67,0x0000, 0xFB80,0xCD68,0x0000, /* 4D66 */ +0xFB80,0xCD69,0x0000, 0xFB80,0xCD6A,0x0000, 0xFB80,0xCD6B,0x0000, /* 4D69 */ +0xFB80,0xCD6C,0x0000, 0xFB80,0xCD6D,0x0000, 0xFB80,0xCD6E,0x0000, /* 4D6C */ +0xFB80,0xCD6F,0x0000, 0xFB80,0xCD70,0x0000, 0xFB80,0xCD71,0x0000, /* 4D6F */ +0xFB80,0xCD72,0x0000, 0xFB80,0xCD73,0x0000, 0xFB80,0xCD74,0x0000, /* 4D72 */ +0xFB80,0xCD75,0x0000, 0xFB80,0xCD76,0x0000, 0xFB80,0xCD77,0x0000, /* 4D75 */ +0xFB80,0xCD78,0x0000, 0xFB80,0xCD79,0x0000, 0xFB80,0xCD7A,0x0000, /* 4D78 */ +0xFB80,0xCD7B,0x0000, 0xFB80,0xCD7C,0x0000, 0xFB80,0xCD7D,0x0000, /* 4D7B */ +0xFB80,0xCD7E,0x0000, 0xFB80,0xCD7F,0x0000, 0xFB80,0xCD80,0x0000, /* 4D7E */ +0xFB80,0xCD81,0x0000, 0xFB80,0xCD82,0x0000, 0xFB80,0xCD83,0x0000, /* 4D81 */ +0xFB80,0xCD84,0x0000, 0xFB80,0xCD85,0x0000, 0xFB80,0xCD86,0x0000, /* 4D84 */ +0xFB80,0xCD87,0x0000, 0xFB80,0xCD88,0x0000, 0xFB80,0xCD89,0x0000, /* 4D87 */ +0xFB80,0xCD8A,0x0000, 0xFB80,0xCD8B,0x0000, 0xFB80,0xCD8C,0x0000, /* 4D8A */ +0xFB80,0xCD8D,0x0000, 0xFB80,0xCD8E,0x0000, 0xFB80,0xCD8F,0x0000, /* 4D8D */ +0xFB80,0xCD90,0x0000, 0xFB80,0xCD91,0x0000, 0xFB80,0xCD92,0x0000, /* 4D90 */ +0xFB80,0xCD93,0x0000, 0xFB80,0xCD94,0x0000, 0xFB80,0xCD95,0x0000, /* 4D93 */ +0xFB80,0xCD96,0x0000, 0xFB80,0xCD97,0x0000, 0xFB80,0xCD98,0x0000, /* 4D96 */ +0xFB80,0xCD99,0x0000, 0xFB80,0xCD9A,0x0000, 0xFB80,0xCD9B,0x0000, /* 4D99 */ +0xFB80,0xCD9C,0x0000, 0xFB80,0xCD9D,0x0000, 0xFB80,0xCD9E,0x0000, /* 4D9C */ +0xFB80,0xCD9F,0x0000, 0xFB80,0xCDA0,0x0000, 0xFB80,0xCDA1,0x0000, /* 4D9F */ +0xFB80,0xCDA2,0x0000, 0xFB80,0xCDA3,0x0000, 0xFB80,0xCDA4,0x0000, /* 4DA2 */ +0xFB80,0xCDA5,0x0000, 0xFB80,0xCDA6,0x0000, 0xFB80,0xCDA7,0x0000, /* 4DA5 */ +0xFB80,0xCDA8,0x0000, 0xFB80,0xCDA9,0x0000, 0xFB80,0xCDAA,0x0000, /* 4DA8 */ +0xFB80,0xCDAB,0x0000, 0xFB80,0xCDAC,0x0000, 0xFB80,0xCDAD,0x0000, /* 4DAB */ +0xFB80,0xCDAE,0x0000, 0xFB80,0xCDAF,0x0000, 0xFB80,0xCDB0,0x0000, /* 4DAE */ +0xFB80,0xCDB1,0x0000, 0xFB80,0xCDB2,0x0000, 0xFB80,0xCDB3,0x0000, /* 4DB1 */ +0xFB80,0xCDB4,0x0000, 0xFB80,0xCDB5,0x0000, 0xFBC0,0xCDB6,0x0000, /* 4DB4 */ +0xFBC0,0xCDB7,0x0000, 0xFBC0,0xCDB8,0x0000, 0xFBC0,0xCDB9,0x0000, /* 4DB7 */ +0xFBC0,0xCDBA,0x0000, 0xFBC0,0xCDBB,0x0000, 0xFBC0,0xCDBC,0x0000, /* 4DBA */ +0xFBC0,0xCDBD,0x0000, 0xFBC0,0xCDBE,0x0000, 0xFBC0,0xCDBF,0x0000, /* 4DBD */ +0x0D3E,0x0000,0x0000, 0x0D3F,0x0000,0x0000, 0x0D40,0x0000,0x0000, /* 4DC0 */ +0x0D41,0x0000,0x0000, 0x0D42,0x0000,0x0000, 0x0D43,0x0000,0x0000, /* 4DC3 */ +0x0D44,0x0000,0x0000, 0x0D45,0x0000,0x0000, 0x0D46,0x0000,0x0000, /* 4DC6 */ +0x0D47,0x0000,0x0000, 0x0D48,0x0000,0x0000, 0x0D49,0x0000,0x0000, /* 4DC9 */ +0x0D4A,0x0000,0x0000, 0x0D4B,0x0000,0x0000, 0x0D4C,0x0000,0x0000, /* 4DCC */ +0x0D4D,0x0000,0x0000, 0x0D4E,0x0000,0x0000, 0x0D4F,0x0000,0x0000, /* 4DCF */ +0x0D50,0x0000,0x0000, 0x0D51,0x0000,0x0000, 0x0D52,0x0000,0x0000, /* 4DD2 */ +0x0D53,0x0000,0x0000, 0x0D54,0x0000,0x0000, 0x0D55,0x0000,0x0000, /* 4DD5 */ +0x0D56,0x0000,0x0000, 0x0D57,0x0000,0x0000, 0x0D58,0x0000,0x0000, /* 4DD8 */ +0x0D59,0x0000,0x0000, 0x0D5A,0x0000,0x0000, 0x0D5B,0x0000,0x0000, /* 4DDB */ +0x0D5C,0x0000,0x0000, 0x0D5D,0x0000,0x0000, 0x0D5E,0x0000,0x0000, /* 4DDE */ +0x0D5F,0x0000,0x0000, 0x0D60,0x0000,0x0000, 0x0D61,0x0000,0x0000, /* 4DE1 */ +0x0D62,0x0000,0x0000, 0x0D63,0x0000,0x0000, 0x0D64,0x0000,0x0000, /* 4DE4 */ +0x0D65,0x0000,0x0000, 0x0D66,0x0000,0x0000, 0x0D67,0x0000,0x0000, /* 4DE7 */ +0x0D68,0x0000,0x0000, 0x0D69,0x0000,0x0000, 0x0D6A,0x0000,0x0000, /* 4DEA */ +0x0D6B,0x0000,0x0000, 0x0D6C,0x0000,0x0000, 0x0D6D,0x0000,0x0000, /* 4DED */ +0x0D6E,0x0000,0x0000, 0x0D6F,0x0000,0x0000, 0x0D70,0x0000,0x0000, /* 4DF0 */ +0x0D71,0x0000,0x0000, 0x0D72,0x0000,0x0000, 0x0D73,0x0000,0x0000, /* 4DF3 */ +0x0D74,0x0000,0x0000, 0x0D75,0x0000,0x0000, 0x0D76,0x0000,0x0000, /* 4DF6 */ +0x0D77,0x0000,0x0000, 0x0D78,0x0000,0x0000, 0x0D79,0x0000,0x0000, /* 4DF9 */ +0x0D7A,0x0000,0x0000, 0x0D7B,0x0000,0x0000, 0x0D7C,0x0000,0x0000, /* 4DFC */ +0x0D7D,0x0000,0x0000 }; + +uint16 uca520_p0A0[]= { /* A000 (2 weights per char) */ +0x2B75,0x0000, 0x2B76,0x0000, 0x2B77,0x0000, 0x2B78,0x0000, /* A000 */ +0x2B79,0x0000, 0x2B7A,0x0000, 0x2B7B,0x0000, 0x2B7C,0x0000, /* A004 */ +0x2B7D,0x0000, 0x2B7E,0x0000, 0x2B7F,0x0000, 0x2B80,0x0000, /* A008 */ +0x2B81,0x0000, 0x2B82,0x0000, 0x2B83,0x0000, 0x2B84,0x0000, /* A00C */ +0x2B85,0x0000, 0x2B86,0x0000, 0x2B87,0x0000, 0x2B88,0x0000, /* A010 */ +0x2B89,0x0000, 0x2B8A,0x0000, 0x2B8B,0x0000, 0x2B8C,0x0000, /* A014 */ +0x2B8D,0x0000, 0x2B8E,0x0000, 0x2B8F,0x0000, 0x2B90,0x0000, /* A018 */ +0x2B91,0x0000, 0x2B92,0x0000, 0x2B93,0x0000, 0x2B94,0x0000, /* A01C */ +0x2B95,0x0000, 0x2B96,0x0000, 0x2B97,0x0000, 0x2B98,0x0000, /* A020 */ +0x2B99,0x0000, 0x2B9A,0x0000, 0x2B9B,0x0000, 0x2B9C,0x0000, /* A024 */ +0x2B9D,0x0000, 0x2B9E,0x0000, 0x2B9F,0x0000, 0x2BA0,0x0000, /* A028 */ +0x2BA1,0x0000, 0x2BA2,0x0000, 0x2BA3,0x0000, 0x2BA4,0x0000, /* A02C */ +0x2BA5,0x0000, 0x2BA6,0x0000, 0x2BA7,0x0000, 0x2BA8,0x0000, /* A030 */ +0x2BA9,0x0000, 0x2BAA,0x0000, 0x2BAB,0x0000, 0x2BAC,0x0000, /* A034 */ +0x2BAD,0x0000, 0x2BAE,0x0000, 0x2BAF,0x0000, 0x2BB0,0x0000, /* A038 */ +0x2BB1,0x0000, 0x2BB2,0x0000, 0x2BB3,0x0000, 0x2BB4,0x0000, /* A03C */ +0x2BB5,0x0000, 0x2BB6,0x0000, 0x2BB7,0x0000, 0x2BB8,0x0000, /* A040 */ +0x2BB9,0x0000, 0x2BBA,0x0000, 0x2BBB,0x0000, 0x2BBC,0x0000, /* A044 */ +0x2BBD,0x0000, 0x2BBE,0x0000, 0x2BBF,0x0000, 0x2BC0,0x0000, /* A048 */ +0x2BC1,0x0000, 0x2BC2,0x0000, 0x2BC3,0x0000, 0x2BC4,0x0000, /* A04C */ +0x2BC5,0x0000, 0x2BC6,0x0000, 0x2BC7,0x0000, 0x2BC8,0x0000, /* A050 */ +0x2BC9,0x0000, 0x2BCA,0x0000, 0x2BCB,0x0000, 0x2BCC,0x0000, /* A054 */ +0x2BCD,0x0000, 0x2BCE,0x0000, 0x2BCF,0x0000, 0x2BD0,0x0000, /* A058 */ +0x2BD1,0x0000, 0x2BD2,0x0000, 0x2BD3,0x0000, 0x2BD4,0x0000, /* A05C */ +0x2BD5,0x0000, 0x2BD6,0x0000, 0x2BD7,0x0000, 0x2BD8,0x0000, /* A060 */ +0x2BD9,0x0000, 0x2BDA,0x0000, 0x2BDB,0x0000, 0x2BDC,0x0000, /* A064 */ +0x2BDD,0x0000, 0x2BDE,0x0000, 0x2BDF,0x0000, 0x2BE0,0x0000, /* A068 */ +0x2BE1,0x0000, 0x2BE2,0x0000, 0x2BE3,0x0000, 0x2BE4,0x0000, /* A06C */ +0x2BE5,0x0000, 0x2BE6,0x0000, 0x2BE7,0x0000, 0x2BE8,0x0000, /* A070 */ +0x2BE9,0x0000, 0x2BEA,0x0000, 0x2BEB,0x0000, 0x2BEC,0x0000, /* A074 */ +0x2BED,0x0000, 0x2BEE,0x0000, 0x2BEF,0x0000, 0x2BF0,0x0000, /* A078 */ +0x2BF1,0x0000, 0x2BF2,0x0000, 0x2BF3,0x0000, 0x2BF4,0x0000, /* A07C */ +0x2BF5,0x0000, 0x2BF6,0x0000, 0x2BF7,0x0000, 0x2BF8,0x0000, /* A080 */ +0x2BF9,0x0000, 0x2BFA,0x0000, 0x2BFB,0x0000, 0x2BFC,0x0000, /* A084 */ +0x2BFD,0x0000, 0x2BFE,0x0000, 0x2BFF,0x0000, 0x2C00,0x0000, /* A088 */ +0x2C01,0x0000, 0x2C02,0x0000, 0x2C03,0x0000, 0x2C04,0x0000, /* A08C */ +0x2C05,0x0000, 0x2C06,0x0000, 0x2C07,0x0000, 0x2C08,0x0000, /* A090 */ +0x2C09,0x0000, 0x2C0A,0x0000, 0x2C0B,0x0000, 0x2C0C,0x0000, /* A094 */ +0x2C0D,0x0000, 0x2C0E,0x0000, 0x2C0F,0x0000, 0x2C10,0x0000, /* A098 */ +0x2C11,0x0000, 0x2C12,0x0000, 0x2C13,0x0000, 0x2C14,0x0000, /* A09C */ +0x2C15,0x0000, 0x2C16,0x0000, 0x2C17,0x0000, 0x2C18,0x0000, /* A0A0 */ +0x2C19,0x0000, 0x2C1A,0x0000, 0x2C1B,0x0000, 0x2C1C,0x0000, /* A0A4 */ +0x2C1D,0x0000, 0x2C1E,0x0000, 0x2C1F,0x0000, 0x2C20,0x0000, /* A0A8 */ +0x2C21,0x0000, 0x2C22,0x0000, 0x2C23,0x0000, 0x2C24,0x0000, /* A0AC */ +0x2C25,0x0000, 0x2C26,0x0000, 0x2C27,0x0000, 0x2C28,0x0000, /* A0B0 */ +0x2C29,0x0000, 0x2C2A,0x0000, 0x2C2B,0x0000, 0x2C2C,0x0000, /* A0B4 */ +0x2C2D,0x0000, 0x2C2E,0x0000, 0x2C2F,0x0000, 0x2C30,0x0000, /* A0B8 */ +0x2C31,0x0000, 0x2C32,0x0000, 0x2C33,0x0000, 0x2C34,0x0000, /* A0BC */ +0x2C35,0x0000, 0x2C36,0x0000, 0x2C37,0x0000, 0x2C38,0x0000, /* A0C0 */ +0x2C39,0x0000, 0x2C3A,0x0000, 0x2C3B,0x0000, 0x2C3C,0x0000, /* A0C4 */ +0x2C3D,0x0000, 0x2C3E,0x0000, 0x2C3F,0x0000, 0x2C40,0x0000, /* A0C8 */ +0x2C41,0x0000, 0x2C42,0x0000, 0x2C43,0x0000, 0x2C44,0x0000, /* A0CC */ +0x2C45,0x0000, 0x2C46,0x0000, 0x2C47,0x0000, 0x2C48,0x0000, /* A0D0 */ +0x2C49,0x0000, 0x2C4A,0x0000, 0x2C4B,0x0000, 0x2C4C,0x0000, /* A0D4 */ +0x2C4D,0x0000, 0x2C4E,0x0000, 0x2C4F,0x0000, 0x2C50,0x0000, /* A0D8 */ +0x2C51,0x0000, 0x2C52,0x0000, 0x2C53,0x0000, 0x2C54,0x0000, /* A0DC */ +0x2C55,0x0000, 0x2C56,0x0000, 0x2C57,0x0000, 0x2C58,0x0000, /* A0E0 */ +0x2C59,0x0000, 0x2C5A,0x0000, 0x2C5B,0x0000, 0x2C5C,0x0000, /* A0E4 */ +0x2C5D,0x0000, 0x2C5E,0x0000, 0x2C5F,0x0000, 0x2C60,0x0000, /* A0E8 */ +0x2C61,0x0000, 0x2C62,0x0000, 0x2C63,0x0000, 0x2C64,0x0000, /* A0EC */ +0x2C65,0x0000, 0x2C66,0x0000, 0x2C67,0x0000, 0x2C68,0x0000, /* A0F0 */ +0x2C69,0x0000, 0x2C6A,0x0000, 0x2C6B,0x0000, 0x2C6C,0x0000, /* A0F4 */ +0x2C6D,0x0000, 0x2C6E,0x0000, 0x2C6F,0x0000, 0x2C70,0x0000, /* A0F8 */ +0x2C71,0x0000, 0x2C72,0x0000, 0x2C73,0x0000, 0x2C74,0x0000 /* A0FC */ +}; + +uint16 uca520_p0A1[]= { /* A100 (2 weights per char) */ +0x2C75,0x0000, 0x2C76,0x0000, 0x2C77,0x0000, 0x2C78,0x0000, /* A100 */ +0x2C79,0x0000, 0x2C7A,0x0000, 0x2C7B,0x0000, 0x2C7C,0x0000, /* A104 */ +0x2C7D,0x0000, 0x2C7E,0x0000, 0x2C7F,0x0000, 0x2C80,0x0000, /* A108 */ +0x2C81,0x0000, 0x2C82,0x0000, 0x2C83,0x0000, 0x2C84,0x0000, /* A10C */ +0x2C85,0x0000, 0x2C86,0x0000, 0x2C87,0x0000, 0x2C88,0x0000, /* A110 */ +0x2C89,0x0000, 0x2C8A,0x0000, 0x2C8B,0x0000, 0x2C8C,0x0000, /* A114 */ +0x2C8D,0x0000, 0x2C8E,0x0000, 0x2C8F,0x0000, 0x2C90,0x0000, /* A118 */ +0x2C91,0x0000, 0x2C92,0x0000, 0x2C93,0x0000, 0x2C94,0x0000, /* A11C */ +0x2C95,0x0000, 0x2C96,0x0000, 0x2C97,0x0000, 0x2C98,0x0000, /* A120 */ +0x2C99,0x0000, 0x2C9A,0x0000, 0x2C9B,0x0000, 0x2C9C,0x0000, /* A124 */ +0x2C9D,0x0000, 0x2C9E,0x0000, 0x2C9F,0x0000, 0x2CA0,0x0000, /* A128 */ +0x2CA1,0x0000, 0x2CA2,0x0000, 0x2CA3,0x0000, 0x2CA4,0x0000, /* A12C */ +0x2CA5,0x0000, 0x2CA6,0x0000, 0x2CA7,0x0000, 0x2CA8,0x0000, /* A130 */ +0x2CA9,0x0000, 0x2CAA,0x0000, 0x2CAB,0x0000, 0x2CAC,0x0000, /* A134 */ +0x2CAD,0x0000, 0x2CAE,0x0000, 0x2CAF,0x0000, 0x2CB0,0x0000, /* A138 */ +0x2CB1,0x0000, 0x2CB2,0x0000, 0x2CB3,0x0000, 0x2CB4,0x0000, /* A13C */ +0x2CB5,0x0000, 0x2CB6,0x0000, 0x2CB7,0x0000, 0x2CB8,0x0000, /* A140 */ +0x2CB9,0x0000, 0x2CBA,0x0000, 0x2CBB,0x0000, 0x2CBC,0x0000, /* A144 */ +0x2CBD,0x0000, 0x2CBE,0x0000, 0x2CBF,0x0000, 0x2CC0,0x0000, /* A148 */ +0x2CC1,0x0000, 0x2CC2,0x0000, 0x2CC3,0x0000, 0x2CC4,0x0000, /* A14C */ +0x2CC5,0x0000, 0x2CC6,0x0000, 0x2CC7,0x0000, 0x2CC8,0x0000, /* A150 */ +0x2CC9,0x0000, 0x2CCA,0x0000, 0x2CCB,0x0000, 0x2CCC,0x0000, /* A154 */ +0x2CCD,0x0000, 0x2CCE,0x0000, 0x2CCF,0x0000, 0x2CD0,0x0000, /* A158 */ +0x2CD1,0x0000, 0x2CD2,0x0000, 0x2CD3,0x0000, 0x2CD4,0x0000, /* A15C */ +0x2CD5,0x0000, 0x2CD6,0x0000, 0x2CD7,0x0000, 0x2CD8,0x0000, /* A160 */ +0x2CD9,0x0000, 0x2CDA,0x0000, 0x2CDB,0x0000, 0x2CDC,0x0000, /* A164 */ +0x2CDD,0x0000, 0x2CDE,0x0000, 0x2CDF,0x0000, 0x2CE0,0x0000, /* A168 */ +0x2CE1,0x0000, 0x2CE2,0x0000, 0x2CE3,0x0000, 0x2CE4,0x0000, /* A16C */ +0x2CE5,0x0000, 0x2CE6,0x0000, 0x2CE7,0x0000, 0x2CE8,0x0000, /* A170 */ +0x2CE9,0x0000, 0x2CEA,0x0000, 0x2CEB,0x0000, 0x2CEC,0x0000, /* A174 */ +0x2CED,0x0000, 0x2CEE,0x0000, 0x2CEF,0x0000, 0x2CF0,0x0000, /* A178 */ +0x2CF1,0x0000, 0x2CF2,0x0000, 0x2CF3,0x0000, 0x2CF4,0x0000, /* A17C */ +0x2CF5,0x0000, 0x2CF6,0x0000, 0x2CF7,0x0000, 0x2CF8,0x0000, /* A180 */ +0x2CF9,0x0000, 0x2CFA,0x0000, 0x2CFB,0x0000, 0x2CFC,0x0000, /* A184 */ +0x2CFD,0x0000, 0x2CFE,0x0000, 0x2CFF,0x0000, 0x2D00,0x0000, /* A188 */ +0x2D01,0x0000, 0x2D02,0x0000, 0x2D03,0x0000, 0x2D04,0x0000, /* A18C */ +0x2D05,0x0000, 0x2D06,0x0000, 0x2D07,0x0000, 0x2D08,0x0000, /* A190 */ +0x2D09,0x0000, 0x2D0A,0x0000, 0x2D0B,0x0000, 0x2D0C,0x0000, /* A194 */ +0x2D0D,0x0000, 0x2D0E,0x0000, 0x2D0F,0x0000, 0x2D10,0x0000, /* A198 */ +0x2D11,0x0000, 0x2D12,0x0000, 0x2D13,0x0000, 0x2D14,0x0000, /* A19C */ +0x2D15,0x0000, 0x2D16,0x0000, 0x2D17,0x0000, 0x2D18,0x0000, /* A1A0 */ +0x2D19,0x0000, 0x2D1A,0x0000, 0x2D1B,0x0000, 0x2D1C,0x0000, /* A1A4 */ +0x2D1D,0x0000, 0x2D1E,0x0000, 0x2D1F,0x0000, 0x2D20,0x0000, /* A1A8 */ +0x2D21,0x0000, 0x2D22,0x0000, 0x2D23,0x0000, 0x2D24,0x0000, /* A1AC */ +0x2D25,0x0000, 0x2D26,0x0000, 0x2D27,0x0000, 0x2D28,0x0000, /* A1B0 */ +0x2D29,0x0000, 0x2D2A,0x0000, 0x2D2B,0x0000, 0x2D2C,0x0000, /* A1B4 */ +0x2D2D,0x0000, 0x2D2E,0x0000, 0x2D2F,0x0000, 0x2D30,0x0000, /* A1B8 */ +0x2D31,0x0000, 0x2D32,0x0000, 0x2D33,0x0000, 0x2D34,0x0000, /* A1BC */ +0x2D35,0x0000, 0x2D36,0x0000, 0x2D37,0x0000, 0x2D38,0x0000, /* A1C0 */ +0x2D39,0x0000, 0x2D3A,0x0000, 0x2D3B,0x0000, 0x2D3C,0x0000, /* A1C4 */ +0x2D3D,0x0000, 0x2D3E,0x0000, 0x2D3F,0x0000, 0x2D40,0x0000, /* A1C8 */ +0x2D41,0x0000, 0x2D42,0x0000, 0x2D43,0x0000, 0x2D44,0x0000, /* A1CC */ +0x2D45,0x0000, 0x2D46,0x0000, 0x2D47,0x0000, 0x2D48,0x0000, /* A1D0 */ +0x2D49,0x0000, 0x2D4A,0x0000, 0x2D4B,0x0000, 0x2D4C,0x0000, /* A1D4 */ +0x2D4D,0x0000, 0x2D4E,0x0000, 0x2D4F,0x0000, 0x2D50,0x0000, /* A1D8 */ +0x2D51,0x0000, 0x2D52,0x0000, 0x2D53,0x0000, 0x2D54,0x0000, /* A1DC */ +0x2D55,0x0000, 0x2D56,0x0000, 0x2D57,0x0000, 0x2D58,0x0000, /* A1E0 */ +0x2D59,0x0000, 0x2D5A,0x0000, 0x2D5B,0x0000, 0x2D5C,0x0000, /* A1E4 */ +0x2D5D,0x0000, 0x2D5E,0x0000, 0x2D5F,0x0000, 0x2D60,0x0000, /* A1E8 */ +0x2D61,0x0000, 0x2D62,0x0000, 0x2D63,0x0000, 0x2D64,0x0000, /* A1EC */ +0x2D65,0x0000, 0x2D66,0x0000, 0x2D67,0x0000, 0x2D68,0x0000, /* A1F0 */ +0x2D69,0x0000, 0x2D6A,0x0000, 0x2D6B,0x0000, 0x2D6C,0x0000, /* A1F4 */ +0x2D6D,0x0000, 0x2D6E,0x0000, 0x2D6F,0x0000, 0x2D70,0x0000, /* A1F8 */ +0x2D71,0x0000, 0x2D72,0x0000, 0x2D73,0x0000, 0x2D74,0x0000 /* A1FC */ +}; + +uint16 uca520_p0A2[]= { /* A200 (2 weights per char) */ +0x2D75,0x0000, 0x2D76,0x0000, 0x2D77,0x0000, 0x2D78,0x0000, /* A200 */ +0x2D79,0x0000, 0x2D7A,0x0000, 0x2D7B,0x0000, 0x2D7C,0x0000, /* A204 */ +0x2D7D,0x0000, 0x2D7E,0x0000, 0x2D7F,0x0000, 0x2D80,0x0000, /* A208 */ +0x2D81,0x0000, 0x2D82,0x0000, 0x2D83,0x0000, 0x2D84,0x0000, /* A20C */ +0x2D85,0x0000, 0x2D86,0x0000, 0x2D87,0x0000, 0x2D88,0x0000, /* A210 */ +0x2D89,0x0000, 0x2D8A,0x0000, 0x2D8B,0x0000, 0x2D8C,0x0000, /* A214 */ +0x2D8D,0x0000, 0x2D8E,0x0000, 0x2D8F,0x0000, 0x2D90,0x0000, /* A218 */ +0x2D91,0x0000, 0x2D92,0x0000, 0x2D93,0x0000, 0x2D94,0x0000, /* A21C */ +0x2D95,0x0000, 0x2D96,0x0000, 0x2D97,0x0000, 0x2D98,0x0000, /* A220 */ +0x2D99,0x0000, 0x2D9A,0x0000, 0x2D9B,0x0000, 0x2D9C,0x0000, /* A224 */ +0x2D9D,0x0000, 0x2D9E,0x0000, 0x2D9F,0x0000, 0x2DA0,0x0000, /* A228 */ +0x2DA1,0x0000, 0x2DA2,0x0000, 0x2DA3,0x0000, 0x2DA4,0x0000, /* A22C */ +0x2DA5,0x0000, 0x2DA6,0x0000, 0x2DA7,0x0000, 0x2DA8,0x0000, /* A230 */ +0x2DA9,0x0000, 0x2DAA,0x0000, 0x2DAB,0x0000, 0x2DAC,0x0000, /* A234 */ +0x2DAD,0x0000, 0x2DAE,0x0000, 0x2DAF,0x0000, 0x2DB0,0x0000, /* A238 */ +0x2DB1,0x0000, 0x2DB2,0x0000, 0x2DB3,0x0000, 0x2DB4,0x0000, /* A23C */ +0x2DB5,0x0000, 0x2DB6,0x0000, 0x2DB7,0x0000, 0x2DB8,0x0000, /* A240 */ +0x2DB9,0x0000, 0x2DBA,0x0000, 0x2DBB,0x0000, 0x2DBC,0x0000, /* A244 */ +0x2DBD,0x0000, 0x2DBE,0x0000, 0x2DBF,0x0000, 0x2DC0,0x0000, /* A248 */ +0x2DC1,0x0000, 0x2DC2,0x0000, 0x2DC3,0x0000, 0x2DC4,0x0000, /* A24C */ +0x2DC5,0x0000, 0x2DC6,0x0000, 0x2DC7,0x0000, 0x2DC8,0x0000, /* A250 */ +0x2DC9,0x0000, 0x2DCA,0x0000, 0x2DCB,0x0000, 0x2DCC,0x0000, /* A254 */ +0x2DCD,0x0000, 0x2DCE,0x0000, 0x2DCF,0x0000, 0x2DD0,0x0000, /* A258 */ +0x2DD1,0x0000, 0x2DD2,0x0000, 0x2DD3,0x0000, 0x2DD4,0x0000, /* A25C */ +0x2DD5,0x0000, 0x2DD6,0x0000, 0x2DD7,0x0000, 0x2DD8,0x0000, /* A260 */ +0x2DD9,0x0000, 0x2DDA,0x0000, 0x2DDB,0x0000, 0x2DDC,0x0000, /* A264 */ +0x2DDD,0x0000, 0x2DDE,0x0000, 0x2DDF,0x0000, 0x2DE0,0x0000, /* A268 */ +0x2DE1,0x0000, 0x2DE2,0x0000, 0x2DE3,0x0000, 0x2DE4,0x0000, /* A26C */ +0x2DE5,0x0000, 0x2DE6,0x0000, 0x2DE7,0x0000, 0x2DE8,0x0000, /* A270 */ +0x2DE9,0x0000, 0x2DEA,0x0000, 0x2DEB,0x0000, 0x2DEC,0x0000, /* A274 */ +0x2DED,0x0000, 0x2DEE,0x0000, 0x2DEF,0x0000, 0x2DF0,0x0000, /* A278 */ +0x2DF1,0x0000, 0x2DF2,0x0000, 0x2DF3,0x0000, 0x2DF4,0x0000, /* A27C */ +0x2DF5,0x0000, 0x2DF6,0x0000, 0x2DF7,0x0000, 0x2DF8,0x0000, /* A280 */ +0x2DF9,0x0000, 0x2DFA,0x0000, 0x2DFB,0x0000, 0x2DFC,0x0000, /* A284 */ +0x2DFD,0x0000, 0x2DFE,0x0000, 0x2DFF,0x0000, 0x2E00,0x0000, /* A288 */ +0x2E01,0x0000, 0x2E02,0x0000, 0x2E03,0x0000, 0x2E04,0x0000, /* A28C */ +0x2E05,0x0000, 0x2E06,0x0000, 0x2E07,0x0000, 0x2E08,0x0000, /* A290 */ +0x2E09,0x0000, 0x2E0A,0x0000, 0x2E0B,0x0000, 0x2E0C,0x0000, /* A294 */ +0x2E0D,0x0000, 0x2E0E,0x0000, 0x2E0F,0x0000, 0x2E10,0x0000, /* A298 */ +0x2E11,0x0000, 0x2E12,0x0000, 0x2E13,0x0000, 0x2E14,0x0000, /* A29C */ +0x2E15,0x0000, 0x2E16,0x0000, 0x2E17,0x0000, 0x2E18,0x0000, /* A2A0 */ +0x2E19,0x0000, 0x2E1A,0x0000, 0x2E1B,0x0000, 0x2E1C,0x0000, /* A2A4 */ +0x2E1D,0x0000, 0x2E1E,0x0000, 0x2E1F,0x0000, 0x2E20,0x0000, /* A2A8 */ +0x2E21,0x0000, 0x2E22,0x0000, 0x2E23,0x0000, 0x2E24,0x0000, /* A2AC */ +0x2E25,0x0000, 0x2E26,0x0000, 0x2E27,0x0000, 0x2E28,0x0000, /* A2B0 */ +0x2E29,0x0000, 0x2E2A,0x0000, 0x2E2B,0x0000, 0x2E2C,0x0000, /* A2B4 */ +0x2E2D,0x0000, 0x2E2E,0x0000, 0x2E2F,0x0000, 0x2E30,0x0000, /* A2B8 */ +0x2E31,0x0000, 0x2E32,0x0000, 0x2E33,0x0000, 0x2E34,0x0000, /* A2BC */ +0x2E35,0x0000, 0x2E36,0x0000, 0x2E37,0x0000, 0x2E38,0x0000, /* A2C0 */ +0x2E39,0x0000, 0x2E3A,0x0000, 0x2E3B,0x0000, 0x2E3C,0x0000, /* A2C4 */ +0x2E3D,0x0000, 0x2E3E,0x0000, 0x2E3F,0x0000, 0x2E40,0x0000, /* A2C8 */ +0x2E41,0x0000, 0x2E42,0x0000, 0x2E43,0x0000, 0x2E44,0x0000, /* A2CC */ +0x2E45,0x0000, 0x2E46,0x0000, 0x2E47,0x0000, 0x2E48,0x0000, /* A2D0 */ +0x2E49,0x0000, 0x2E4A,0x0000, 0x2E4B,0x0000, 0x2E4C,0x0000, /* A2D4 */ +0x2E4D,0x0000, 0x2E4E,0x0000, 0x2E4F,0x0000, 0x2E50,0x0000, /* A2D8 */ +0x2E51,0x0000, 0x2E52,0x0000, 0x2E53,0x0000, 0x2E54,0x0000, /* A2DC */ +0x2E55,0x0000, 0x2E56,0x0000, 0x2E57,0x0000, 0x2E58,0x0000, /* A2E0 */ +0x2E59,0x0000, 0x2E5A,0x0000, 0x2E5B,0x0000, 0x2E5C,0x0000, /* A2E4 */ +0x2E5D,0x0000, 0x2E5E,0x0000, 0x2E5F,0x0000, 0x2E60,0x0000, /* A2E8 */ +0x2E61,0x0000, 0x2E62,0x0000, 0x2E63,0x0000, 0x2E64,0x0000, /* A2EC */ +0x2E65,0x0000, 0x2E66,0x0000, 0x2E67,0x0000, 0x2E68,0x0000, /* A2F0 */ +0x2E69,0x0000, 0x2E6A,0x0000, 0x2E6B,0x0000, 0x2E6C,0x0000, /* A2F4 */ +0x2E6D,0x0000, 0x2E6E,0x0000, 0x2E6F,0x0000, 0x2E70,0x0000, /* A2F8 */ +0x2E71,0x0000, 0x2E72,0x0000, 0x2E73,0x0000, 0x2E74,0x0000 /* A2FC */ +}; + +uint16 uca520_p0A3[]= { /* A300 (2 weights per char) */ +0x2E75,0x0000, 0x2E76,0x0000, 0x2E77,0x0000, 0x2E78,0x0000, /* A300 */ +0x2E79,0x0000, 0x2E7A,0x0000, 0x2E7B,0x0000, 0x2E7C,0x0000, /* A304 */ +0x2E7D,0x0000, 0x2E7E,0x0000, 0x2E7F,0x0000, 0x2E80,0x0000, /* A308 */ +0x2E81,0x0000, 0x2E82,0x0000, 0x2E83,0x0000, 0x2E84,0x0000, /* A30C */ +0x2E85,0x0000, 0x2E86,0x0000, 0x2E87,0x0000, 0x2E88,0x0000, /* A310 */ +0x2E89,0x0000, 0x2E8A,0x0000, 0x2E8B,0x0000, 0x2E8C,0x0000, /* A314 */ +0x2E8D,0x0000, 0x2E8E,0x0000, 0x2E8F,0x0000, 0x2E90,0x0000, /* A318 */ +0x2E91,0x0000, 0x2E92,0x0000, 0x2E93,0x0000, 0x2E94,0x0000, /* A31C */ +0x2E95,0x0000, 0x2E96,0x0000, 0x2E97,0x0000, 0x2E98,0x0000, /* A320 */ +0x2E99,0x0000, 0x2E9A,0x0000, 0x2E9B,0x0000, 0x2E9C,0x0000, /* A324 */ +0x2E9D,0x0000, 0x2E9E,0x0000, 0x2E9F,0x0000, 0x2EA0,0x0000, /* A328 */ +0x2EA1,0x0000, 0x2EA2,0x0000, 0x2EA3,0x0000, 0x2EA4,0x0000, /* A32C */ +0x2EA5,0x0000, 0x2EA6,0x0000, 0x2EA7,0x0000, 0x2EA8,0x0000, /* A330 */ +0x2EA9,0x0000, 0x2EAA,0x0000, 0x2EAB,0x0000, 0x2EAC,0x0000, /* A334 */ +0x2EAD,0x0000, 0x2EAE,0x0000, 0x2EAF,0x0000, 0x2EB0,0x0000, /* A338 */ +0x2EB1,0x0000, 0x2EB2,0x0000, 0x2EB3,0x0000, 0x2EB4,0x0000, /* A33C */ +0x2EB5,0x0000, 0x2EB6,0x0000, 0x2EB7,0x0000, 0x2EB8,0x0000, /* A340 */ +0x2EB9,0x0000, 0x2EBA,0x0000, 0x2EBB,0x0000, 0x2EBC,0x0000, /* A344 */ +0x2EBD,0x0000, 0x2EBE,0x0000, 0x2EBF,0x0000, 0x2EC0,0x0000, /* A348 */ +0x2EC1,0x0000, 0x2EC2,0x0000, 0x2EC3,0x0000, 0x2EC4,0x0000, /* A34C */ +0x2EC5,0x0000, 0x2EC6,0x0000, 0x2EC7,0x0000, 0x2EC8,0x0000, /* A350 */ +0x2EC9,0x0000, 0x2ECA,0x0000, 0x2ECB,0x0000, 0x2ECC,0x0000, /* A354 */ +0x2ECD,0x0000, 0x2ECE,0x0000, 0x2ECF,0x0000, 0x2ED0,0x0000, /* A358 */ +0x2ED1,0x0000, 0x2ED2,0x0000, 0x2ED3,0x0000, 0x2ED4,0x0000, /* A35C */ +0x2ED5,0x0000, 0x2ED6,0x0000, 0x2ED7,0x0000, 0x2ED8,0x0000, /* A360 */ +0x2ED9,0x0000, 0x2EDA,0x0000, 0x2EDB,0x0000, 0x2EDC,0x0000, /* A364 */ +0x2EDD,0x0000, 0x2EDE,0x0000, 0x2EDF,0x0000, 0x2EE0,0x0000, /* A368 */ +0x2EE1,0x0000, 0x2EE2,0x0000, 0x2EE3,0x0000, 0x2EE4,0x0000, /* A36C */ +0x2EE5,0x0000, 0x2EE6,0x0000, 0x2EE7,0x0000, 0x2EE8,0x0000, /* A370 */ +0x2EE9,0x0000, 0x2EEA,0x0000, 0x2EEB,0x0000, 0x2EEC,0x0000, /* A374 */ +0x2EED,0x0000, 0x2EEE,0x0000, 0x2EEF,0x0000, 0x2EF0,0x0000, /* A378 */ +0x2EF1,0x0000, 0x2EF2,0x0000, 0x2EF3,0x0000, 0x2EF4,0x0000, /* A37C */ +0x2EF5,0x0000, 0x2EF6,0x0000, 0x2EF7,0x0000, 0x2EF8,0x0000, /* A380 */ +0x2EF9,0x0000, 0x2EFA,0x0000, 0x2EFB,0x0000, 0x2EFC,0x0000, /* A384 */ +0x2EFD,0x0000, 0x2EFE,0x0000, 0x2EFF,0x0000, 0x2F00,0x0000, /* A388 */ +0x2F01,0x0000, 0x2F02,0x0000, 0x2F03,0x0000, 0x2F04,0x0000, /* A38C */ +0x2F05,0x0000, 0x2F06,0x0000, 0x2F07,0x0000, 0x2F08,0x0000, /* A390 */ +0x2F09,0x0000, 0x2F0A,0x0000, 0x2F0B,0x0000, 0x2F0C,0x0000, /* A394 */ +0x2F0D,0x0000, 0x2F0E,0x0000, 0x2F0F,0x0000, 0x2F10,0x0000, /* A398 */ +0x2F11,0x0000, 0x2F12,0x0000, 0x2F13,0x0000, 0x2F14,0x0000, /* A39C */ +0x2F15,0x0000, 0x2F16,0x0000, 0x2F17,0x0000, 0x2F18,0x0000, /* A3A0 */ +0x2F19,0x0000, 0x2F1A,0x0000, 0x2F1B,0x0000, 0x2F1C,0x0000, /* A3A4 */ +0x2F1D,0x0000, 0x2F1E,0x0000, 0x2F1F,0x0000, 0x2F20,0x0000, /* A3A8 */ +0x2F21,0x0000, 0x2F22,0x0000, 0x2F23,0x0000, 0x2F24,0x0000, /* A3AC */ +0x2F25,0x0000, 0x2F26,0x0000, 0x2F27,0x0000, 0x2F28,0x0000, /* A3B0 */ +0x2F29,0x0000, 0x2F2A,0x0000, 0x2F2B,0x0000, 0x2F2C,0x0000, /* A3B4 */ +0x2F2D,0x0000, 0x2F2E,0x0000, 0x2F2F,0x0000, 0x2F30,0x0000, /* A3B8 */ +0x2F31,0x0000, 0x2F32,0x0000, 0x2F33,0x0000, 0x2F34,0x0000, /* A3BC */ +0x2F35,0x0000, 0x2F36,0x0000, 0x2F37,0x0000, 0x2F38,0x0000, /* A3C0 */ +0x2F39,0x0000, 0x2F3A,0x0000, 0x2F3B,0x0000, 0x2F3C,0x0000, /* A3C4 */ +0x2F3D,0x0000, 0x2F3E,0x0000, 0x2F3F,0x0000, 0x2F40,0x0000, /* A3C8 */ +0x2F41,0x0000, 0x2F42,0x0000, 0x2F43,0x0000, 0x2F44,0x0000, /* A3CC */ +0x2F45,0x0000, 0x2F46,0x0000, 0x2F47,0x0000, 0x2F48,0x0000, /* A3D0 */ +0x2F49,0x0000, 0x2F4A,0x0000, 0x2F4B,0x0000, 0x2F4C,0x0000, /* A3D4 */ +0x2F4D,0x0000, 0x2F4E,0x0000, 0x2F4F,0x0000, 0x2F50,0x0000, /* A3D8 */ +0x2F51,0x0000, 0x2F52,0x0000, 0x2F53,0x0000, 0x2F54,0x0000, /* A3DC */ +0x2F55,0x0000, 0x2F56,0x0000, 0x2F57,0x0000, 0x2F58,0x0000, /* A3E0 */ +0x2F59,0x0000, 0x2F5A,0x0000, 0x2F5B,0x0000, 0x2F5C,0x0000, /* A3E4 */ +0x2F5D,0x0000, 0x2F5E,0x0000, 0x2F5F,0x0000, 0x2F60,0x0000, /* A3E8 */ +0x2F61,0x0000, 0x2F62,0x0000, 0x2F63,0x0000, 0x2F64,0x0000, /* A3EC */ +0x2F65,0x0000, 0x2F66,0x0000, 0x2F67,0x0000, 0x2F68,0x0000, /* A3F0 */ +0x2F69,0x0000, 0x2F6A,0x0000, 0x2F6B,0x0000, 0x2F6C,0x0000, /* A3F4 */ +0x2F6D,0x0000, 0x2F6E,0x0000, 0x2F6F,0x0000, 0x2F70,0x0000, /* A3F8 */ +0x2F71,0x0000, 0x2F72,0x0000, 0x2F73,0x0000, 0x2F74,0x0000 /* A3FC */ +}; + +uint16 uca520_p0A4[]= { /* A400 (3 weights per char) */ +0x2F75,0x0000,0x0000, 0x2F76,0x0000,0x0000, 0x2F77,0x0000,0x0000, /* A400 */ +0x2F78,0x0000,0x0000, 0x2F79,0x0000,0x0000, 0x2F7A,0x0000,0x0000, /* A403 */ +0x2F7B,0x0000,0x0000, 0x2F7C,0x0000,0x0000, 0x2F7D,0x0000,0x0000, /* A406 */ +0x2F7E,0x0000,0x0000, 0x2F7F,0x0000,0x0000, 0x2F80,0x0000,0x0000, /* A409 */ +0x2F81,0x0000,0x0000, 0x2F82,0x0000,0x0000, 0x2F83,0x0000,0x0000, /* A40C */ +0x2F84,0x0000,0x0000, 0x2F85,0x0000,0x0000, 0x2F86,0x0000,0x0000, /* A40F */ +0x2F87,0x0000,0x0000, 0x2F88,0x0000,0x0000, 0x2F89,0x0000,0x0000, /* A412 */ +0x2F8A,0x0000,0x0000, 0x2F8B,0x0000,0x0000, 0x2F8C,0x0000,0x0000, /* A415 */ +0x2F8D,0x0000,0x0000, 0x2F8E,0x0000,0x0000, 0x2F8F,0x0000,0x0000, /* A418 */ +0x2F90,0x0000,0x0000, 0x2F91,0x0000,0x0000, 0x2F92,0x0000,0x0000, /* A41B */ +0x2F93,0x0000,0x0000, 0x2F94,0x0000,0x0000, 0x2F95,0x0000,0x0000, /* A41E */ +0x2F96,0x0000,0x0000, 0x2F97,0x0000,0x0000, 0x2F98,0x0000,0x0000, /* A421 */ +0x2F99,0x0000,0x0000, 0x2F9A,0x0000,0x0000, 0x2F9B,0x0000,0x0000, /* A424 */ +0x2F9C,0x0000,0x0000, 0x2F9D,0x0000,0x0000, 0x2F9E,0x0000,0x0000, /* A427 */ +0x2F9F,0x0000,0x0000, 0x2FA0,0x0000,0x0000, 0x2FA1,0x0000,0x0000, /* A42A */ +0x2FA2,0x0000,0x0000, 0x2FA3,0x0000,0x0000, 0x2FA4,0x0000,0x0000, /* A42D */ +0x2FA5,0x0000,0x0000, 0x2FA6,0x0000,0x0000, 0x2FA7,0x0000,0x0000, /* A430 */ +0x2FA8,0x0000,0x0000, 0x2FA9,0x0000,0x0000, 0x2FAA,0x0000,0x0000, /* A433 */ +0x2FAB,0x0000,0x0000, 0x2FAC,0x0000,0x0000, 0x2FAD,0x0000,0x0000, /* A436 */ +0x2FAE,0x0000,0x0000, 0x2FAF,0x0000,0x0000, 0x2FB0,0x0000,0x0000, /* A439 */ +0x2FB1,0x0000,0x0000, 0x2FB2,0x0000,0x0000, 0x2FB3,0x0000,0x0000, /* A43C */ +0x2FB4,0x0000,0x0000, 0x2FB5,0x0000,0x0000, 0x2FB6,0x0000,0x0000, /* A43F */ +0x2FB7,0x0000,0x0000, 0x2FB8,0x0000,0x0000, 0x2FB9,0x0000,0x0000, /* A442 */ +0x2FBA,0x0000,0x0000, 0x2FBB,0x0000,0x0000, 0x2FBC,0x0000,0x0000, /* A445 */ +0x2FBD,0x0000,0x0000, 0x2FBE,0x0000,0x0000, 0x2FBF,0x0000,0x0000, /* A448 */ +0x2FC0,0x0000,0x0000, 0x2FC1,0x0000,0x0000, 0x2FC2,0x0000,0x0000, /* A44B */ +0x2FC3,0x0000,0x0000, 0x2FC4,0x0000,0x0000, 0x2FC5,0x0000,0x0000, /* A44E */ +0x2FC6,0x0000,0x0000, 0x2FC7,0x0000,0x0000, 0x2FC8,0x0000,0x0000, /* A451 */ +0x2FC9,0x0000,0x0000, 0x2FCA,0x0000,0x0000, 0x2FCB,0x0000,0x0000, /* A454 */ +0x2FCC,0x0000,0x0000, 0x2FCD,0x0000,0x0000, 0x2FCE,0x0000,0x0000, /* A457 */ +0x2FCF,0x0000,0x0000, 0x2FD0,0x0000,0x0000, 0x2FD1,0x0000,0x0000, /* A45A */ +0x2FD2,0x0000,0x0000, 0x2FD3,0x0000,0x0000, 0x2FD4,0x0000,0x0000, /* A45D */ +0x2FD5,0x0000,0x0000, 0x2FD6,0x0000,0x0000, 0x2FD7,0x0000,0x0000, /* A460 */ +0x2FD8,0x0000,0x0000, 0x2FD9,0x0000,0x0000, 0x2FDA,0x0000,0x0000, /* A463 */ +0x2FDB,0x0000,0x0000, 0x2FDC,0x0000,0x0000, 0x2FDD,0x0000,0x0000, /* A466 */ +0x2FDE,0x0000,0x0000, 0x2FDF,0x0000,0x0000, 0x2FE0,0x0000,0x0000, /* A469 */ +0x2FE1,0x0000,0x0000, 0x2FE2,0x0000,0x0000, 0x2FE3,0x0000,0x0000, /* A46C */ +0x2FE4,0x0000,0x0000, 0x2FE5,0x0000,0x0000, 0x2FE6,0x0000,0x0000, /* A46F */ +0x2FE7,0x0000,0x0000, 0x2FE8,0x0000,0x0000, 0x2FE9,0x0000,0x0000, /* A472 */ +0x2FEA,0x0000,0x0000, 0x2FEB,0x0000,0x0000, 0x2FEC,0x0000,0x0000, /* A475 */ +0x2FED,0x0000,0x0000, 0x2FEE,0x0000,0x0000, 0x2FEF,0x0000,0x0000, /* A478 */ +0x2FF0,0x0000,0x0000, 0x2FF1,0x0000,0x0000, 0x2FF2,0x0000,0x0000, /* A47B */ +0x2FF3,0x0000,0x0000, 0x2FF4,0x0000,0x0000, 0x2FF5,0x0000,0x0000, /* A47E */ +0x2FF6,0x0000,0x0000, 0x2FF7,0x0000,0x0000, 0x2FF8,0x0000,0x0000, /* A481 */ +0x2FF9,0x0000,0x0000, 0x2FFA,0x0000,0x0000, 0x2FFB,0x0000,0x0000, /* A484 */ +0x2FFC,0x0000,0x0000, 0x2FFD,0x0000,0x0000, 0x2FFE,0x0000,0x0000, /* A487 */ +0x2FFF,0x0000,0x0000, 0x3000,0x0000,0x0000, 0x3001,0x0000,0x0000, /* A48A */ +0xFBC1,0xA48D,0x0000, 0xFBC1,0xA48E,0x0000, 0xFBC1,0xA48F,0x0000, /* A48D */ +0x0DD5,0x0000,0x0000, 0x0DD6,0x0000,0x0000, 0x0DD7,0x0000,0x0000, /* A490 */ +0x0DD8,0x0000,0x0000, 0x0DD9,0x0000,0x0000, 0x0DDA,0x0000,0x0000, /* A493 */ +0x0DDB,0x0000,0x0000, 0x0DDC,0x0000,0x0000, 0x0DDD,0x0000,0x0000, /* A496 */ +0x0DDE,0x0000,0x0000, 0x0DDF,0x0000,0x0000, 0x0DE0,0x0000,0x0000, /* A499 */ +0x0DE1,0x0000,0x0000, 0x0DE2,0x0000,0x0000, 0x0DE3,0x0000,0x0000, /* A49C */ +0x0DE4,0x0000,0x0000, 0x0DE5,0x0000,0x0000, 0x0DE6,0x0000,0x0000, /* A49F */ +0x0DE7,0x0000,0x0000, 0x0DE8,0x0000,0x0000, 0x0DE9,0x0000,0x0000, /* A4A2 */ +0x0DEA,0x0000,0x0000, 0x0DEB,0x0000,0x0000, 0x0DEC,0x0000,0x0000, /* A4A5 */ +0x0DED,0x0000,0x0000, 0x0DEE,0x0000,0x0000, 0x0DEF,0x0000,0x0000, /* A4A8 */ +0x0DF0,0x0000,0x0000, 0x0DF1,0x0000,0x0000, 0x0DF2,0x0000,0x0000, /* A4AB */ +0x0DF3,0x0000,0x0000, 0x0DF4,0x0000,0x0000, 0x0DF5,0x0000,0x0000, /* A4AE */ +0x0DF6,0x0000,0x0000, 0x0DF7,0x0000,0x0000, 0x0DF8,0x0000,0x0000, /* A4B1 */ +0x0DF9,0x0000,0x0000, 0x0DFA,0x0000,0x0000, 0x0DFB,0x0000,0x0000, /* A4B4 */ +0x0DFC,0x0000,0x0000, 0x0DFD,0x0000,0x0000, 0x0DFE,0x0000,0x0000, /* A4B7 */ +0x0DFF,0x0000,0x0000, 0x0E00,0x0000,0x0000, 0x0E01,0x0000,0x0000, /* A4BA */ +0x0E02,0x0000,0x0000, 0x0E03,0x0000,0x0000, 0x0E04,0x0000,0x0000, /* A4BD */ +0x0E05,0x0000,0x0000, 0x0E06,0x0000,0x0000, 0x0E07,0x0000,0x0000, /* A4C0 */ +0x0E08,0x0000,0x0000, 0x0E09,0x0000,0x0000, 0x0E0A,0x0000,0x0000, /* A4C3 */ +0x0E0B,0x0000,0x0000, 0xFBC1,0xA4C7,0x0000, 0xFBC1,0xA4C8,0x0000, /* A4C6 */ +0xFBC1,0xA4C9,0x0000, 0xFBC1,0xA4CA,0x0000, 0xFBC1,0xA4CB,0x0000, /* A4C9 */ +0xFBC1,0xA4CC,0x0000, 0xFBC1,0xA4CD,0x0000, 0xFBC1,0xA4CE,0x0000, /* A4CC */ +0xFBC1,0xA4CF,0x0000, 0x3008,0x0000,0x0000, 0x3009,0x0000,0x0000, /* A4CF */ +0x300A,0x0000,0x0000, 0x300B,0x0000,0x0000, 0x300C,0x0000,0x0000, /* A4D2 */ +0x300D,0x0000,0x0000, 0x300E,0x0000,0x0000, 0x300F,0x0000,0x0000, /* A4D5 */ +0x3010,0x0000,0x0000, 0x3011,0x0000,0x0000, 0x3012,0x0000,0x0000, /* A4D8 */ +0x3013,0x0000,0x0000, 0x3014,0x0000,0x0000, 0x3015,0x0000,0x0000, /* A4DB */ +0x3016,0x0000,0x0000, 0x3017,0x0000,0x0000, 0x3018,0x0000,0x0000, /* A4DE */ +0x3019,0x0000,0x0000, 0x301A,0x0000,0x0000, 0x301B,0x0000,0x0000, /* A4E1 */ +0x301C,0x0000,0x0000, 0x301D,0x0000,0x0000, 0x301E,0x0000,0x0000, /* A4E4 */ +0x301F,0x0000,0x0000, 0x3020,0x0000,0x0000, 0x3021,0x0000,0x0000, /* A4E7 */ +0x3024,0x0000,0x0000, 0x3022,0x0000,0x0000, 0x3025,0x0000,0x0000, /* A4EA */ +0x3023,0x0000,0x0000, 0x3026,0x0000,0x0000, 0x3027,0x0000,0x0000, /* A4ED */ +0x3028,0x0000,0x0000, 0x3029,0x0000,0x0000, 0x302A,0x0000,0x0000, /* A4F0 */ +0x302B,0x0000,0x0000, 0x302C,0x0000,0x0000, 0x302D,0x0000,0x0000, /* A4F3 */ +0x302E,0x0000,0x0000, 0x302F,0x0000,0x0000, 0x3002,0x0000,0x0000, /* A4F6 */ +0x3003,0x0000,0x0000, 0x3004,0x0000,0x0000, 0x3005,0x0000,0x0000, /* A4F9 */ +0x3007,0x0000,0x0000, 0x3006,0x0000,0x0000, 0x023D,0x0000,0x0000, /* A4FC */ +0x028E,0x0000,0x0000 }; + +uint16 uca520_p0A5[]= { /* A500 (2 weights per char) */ +0x2853,0x0000, 0x2854,0x0000, 0x2855,0x0000, 0x2856,0x0000, /* A500 */ +0x2857,0x0000, 0x2858,0x0000, 0x2859,0x0000, 0x285A,0x0000, /* A504 */ +0x285B,0x0000, 0x285C,0x0000, 0x285D,0x0000, 0x285E,0x0000, /* A508 */ +0x285F,0x0000, 0x2860,0x0000, 0x2861,0x0000, 0x2862,0x0000, /* A50C */ +0x2863,0x0000, 0x2864,0x0000, 0x2865,0x0000, 0x2866,0x0000, /* A510 */ +0x2867,0x0000, 0x2868,0x0000, 0x2869,0x0000, 0x286A,0x0000, /* A514 */ +0x286B,0x0000, 0x286C,0x0000, 0x286D,0x0000, 0x286E,0x0000, /* A518 */ +0x286F,0x0000, 0x2870,0x0000, 0x2871,0x0000, 0x2872,0x0000, /* A51C */ +0x2873,0x0000, 0x2874,0x0000, 0x2875,0x0000, 0x2876,0x0000, /* A520 */ +0x2877,0x0000, 0x2878,0x0000, 0x2879,0x0000, 0x287A,0x0000, /* A524 */ +0x287B,0x0000, 0x287C,0x0000, 0x287D,0x0000, 0x287E,0x0000, /* A528 */ +0x287F,0x0000, 0x2880,0x0000, 0x2881,0x0000, 0x2882,0x0000, /* A52C */ +0x2883,0x0000, 0x2884,0x0000, 0x2885,0x0000, 0x2886,0x0000, /* A530 */ +0x2887,0x0000, 0x2888,0x0000, 0x2889,0x0000, 0x288A,0x0000, /* A534 */ +0x288B,0x0000, 0x288C,0x0000, 0x288D,0x0000, 0x288E,0x0000, /* A538 */ +0x288F,0x0000, 0x2890,0x0000, 0x2891,0x0000, 0x2892,0x0000, /* A53C */ +0x2893,0x0000, 0x2894,0x0000, 0x2895,0x0000, 0x2896,0x0000, /* A540 */ +0x2897,0x0000, 0x2898,0x0000, 0x2899,0x0000, 0x289A,0x0000, /* A544 */ +0x289B,0x0000, 0x289C,0x0000, 0x289D,0x0000, 0x289E,0x0000, /* A548 */ +0x289F,0x0000, 0x28A0,0x0000, 0x28A1,0x0000, 0x28A2,0x0000, /* A54C */ +0x28A3,0x0000, 0x28A4,0x0000, 0x28A5,0x0000, 0x28A6,0x0000, /* A550 */ +0x28A7,0x0000, 0x28A8,0x0000, 0x28A9,0x0000, 0x28AA,0x0000, /* A554 */ +0x28AB,0x0000, 0x28AC,0x0000, 0x28AD,0x0000, 0x28AE,0x0000, /* A558 */ +0x28AF,0x0000, 0x28B0,0x0000, 0x28B1,0x0000, 0x28B2,0x0000, /* A55C */ +0x28B3,0x0000, 0x28B4,0x0000, 0x28B5,0x0000, 0x28B6,0x0000, /* A560 */ +0x28B7,0x0000, 0x28B8,0x0000, 0x28B9,0x0000, 0x28BA,0x0000, /* A564 */ +0x28BB,0x0000, 0x28BC,0x0000, 0x28BD,0x0000, 0x28BE,0x0000, /* A568 */ +0x28BF,0x0000, 0x28C0,0x0000, 0x28C1,0x0000, 0x28C2,0x0000, /* A56C */ +0x28C3,0x0000, 0x28C4,0x0000, 0x28C5,0x0000, 0x28C6,0x0000, /* A570 */ +0x28C7,0x0000, 0x28C8,0x0000, 0x28C9,0x0000, 0x28CA,0x0000, /* A574 */ +0x28CB,0x0000, 0x28CC,0x0000, 0x28CD,0x0000, 0x28CE,0x0000, /* A578 */ +0x28CF,0x0000, 0x28D0,0x0000, 0x28D1,0x0000, 0x28D2,0x0000, /* A57C */ +0x28D3,0x0000, 0x28D4,0x0000, 0x28D5,0x0000, 0x28D6,0x0000, /* A580 */ +0x28D7,0x0000, 0x28D8,0x0000, 0x28D9,0x0000, 0x28DA,0x0000, /* A584 */ +0x28DB,0x0000, 0x28DC,0x0000, 0x28DD,0x0000, 0x28DE,0x0000, /* A588 */ +0x28DF,0x0000, 0x28E0,0x0000, 0x28E1,0x0000, 0x28E2,0x0000, /* A58C */ +0x28E3,0x0000, 0x28E4,0x0000, 0x28E5,0x0000, 0x28E6,0x0000, /* A590 */ +0x28E7,0x0000, 0x28E8,0x0000, 0x28E9,0x0000, 0x28EA,0x0000, /* A594 */ +0x28EB,0x0000, 0x28EC,0x0000, 0x28ED,0x0000, 0x28EE,0x0000, /* A598 */ +0x28EF,0x0000, 0x28F0,0x0000, 0x28F1,0x0000, 0x28F2,0x0000, /* A59C */ +0x28F3,0x0000, 0x28F4,0x0000, 0x28F5,0x0000, 0x28F6,0x0000, /* A5A0 */ +0x28F7,0x0000, 0x28F8,0x0000, 0x28F9,0x0000, 0x28FA,0x0000, /* A5A4 */ +0x28FB,0x0000, 0x28FC,0x0000, 0x28FD,0x0000, 0x28FE,0x0000, /* A5A8 */ +0x28FF,0x0000, 0x2900,0x0000, 0x2901,0x0000, 0x2902,0x0000, /* A5AC */ +0x2903,0x0000, 0x2904,0x0000, 0x2905,0x0000, 0x2906,0x0000, /* A5B0 */ +0x2907,0x0000, 0x2908,0x0000, 0x2909,0x0000, 0x290A,0x0000, /* A5B4 */ +0x290B,0x0000, 0x290C,0x0000, 0x290D,0x0000, 0x290E,0x0000, /* A5B8 */ +0x290F,0x0000, 0x2910,0x0000, 0x2911,0x0000, 0x2912,0x0000, /* A5BC */ +0x2913,0x0000, 0x2914,0x0000, 0x2915,0x0000, 0x2916,0x0000, /* A5C0 */ +0x2917,0x0000, 0x2918,0x0000, 0x2919,0x0000, 0x291A,0x0000, /* A5C4 */ +0x291B,0x0000, 0x291C,0x0000, 0x291D,0x0000, 0x291E,0x0000, /* A5C8 */ +0x291F,0x0000, 0x2920,0x0000, 0x2921,0x0000, 0x2922,0x0000, /* A5CC */ +0x2923,0x0000, 0x2924,0x0000, 0x2925,0x0000, 0x2926,0x0000, /* A5D0 */ +0x2927,0x0000, 0x2928,0x0000, 0x2929,0x0000, 0x292A,0x0000, /* A5D4 */ +0x292B,0x0000, 0x292C,0x0000, 0x292D,0x0000, 0x292E,0x0000, /* A5D8 */ +0x292F,0x0000, 0x2930,0x0000, 0x2931,0x0000, 0x2932,0x0000, /* A5DC */ +0x2933,0x0000, 0x2934,0x0000, 0x2935,0x0000, 0x2936,0x0000, /* A5E0 */ +0x2937,0x0000, 0x2938,0x0000, 0x2939,0x0000, 0x293A,0x0000, /* A5E4 */ +0x293B,0x0000, 0x293C,0x0000, 0x293D,0x0000, 0x293E,0x0000, /* A5E8 */ +0x293F,0x0000, 0x2940,0x0000, 0x2941,0x0000, 0x2942,0x0000, /* A5EC */ +0x2943,0x0000, 0x2944,0x0000, 0x2945,0x0000, 0x2946,0x0000, /* A5F0 */ +0x2947,0x0000, 0x2948,0x0000, 0x2949,0x0000, 0x294A,0x0000, /* A5F4 */ +0x294B,0x0000, 0x294C,0x0000, 0x294D,0x0000, 0x294E,0x0000, /* A5F8 */ +0x294F,0x0000, 0x2950,0x0000, 0x2951,0x0000, 0x2952,0x0000 /* A5FC */ +}; + +uint16 uca520_p0A6[]= { /* A600 (3 weights per char) */ +0x2953,0x0000,0x0000, 0x2954,0x0000,0x0000, 0x2955,0x0000,0x0000, /* A600 */ +0x2956,0x0000,0x0000, 0x2957,0x0000,0x0000, 0x2958,0x0000,0x0000, /* A603 */ +0x2959,0x0000,0x0000, 0x295A,0x0000,0x0000, 0x295B,0x0000,0x0000, /* A606 */ +0x295C,0x0000,0x0000, 0x295D,0x0000,0x0000, 0x295E,0x0000,0x0000, /* A609 */ +0x295F,0x0000,0x0000, 0x023E,0x0000,0x0000, 0x028F,0x0000,0x0000, /* A60C */ +0x027D,0x0000,0x0000, 0x28AB,0x0000,0x0000, 0x28BD,0x0000,0x0000, /* A60F */ +0x28DA,0x0000,0x0000, 0x285F,0x295E,0x0000, 0x2871,0x295E,0x0000, /* A612 */ +0x2886,0x295E,0x0000, 0x289A,0x295F,0x0000, 0x28A5,0x295E,0x0000, /* A615 */ +0x28AB,0x295F,0x0000, 0x28AD,0x295F,0x0000, 0x28B3,0x295E,0x0000, /* A618 */ +0x28D8,0x295E,0x0000, 0x2907,0x295E,0x0000, 0x291E,0x295E,0x0000, /* A61B */ +0x2924,0x295F,0x0000, 0x292B,0x295E,0x0000, 0x1205,0x0000,0x0000, /* A61E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* A621 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* A624 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* A627 */ +0x28C1,0x0000,0x0000, 0x2924,0x0000,0x0000, 0xFBC1,0xA62C,0x0000, /* A62A */ +0xFBC1,0xA62D,0x0000, 0xFBC1,0xA62E,0x0000, 0xFBC1,0xA62F,0x0000, /* A62D */ +0xFBC1,0xA630,0x0000, 0xFBC1,0xA631,0x0000, 0xFBC1,0xA632,0x0000, /* A630 */ +0xFBC1,0xA633,0x0000, 0xFBC1,0xA634,0x0000, 0xFBC1,0xA635,0x0000, /* A633 */ +0xFBC1,0xA636,0x0000, 0xFBC1,0xA637,0x0000, 0xFBC1,0xA638,0x0000, /* A636 */ +0xFBC1,0xA639,0x0000, 0xFBC1,0xA63A,0x0000, 0xFBC1,0xA63B,0x0000, /* A639 */ +0xFBC1,0xA63C,0x0000, 0xFBC1,0xA63D,0x0000, 0xFBC1,0xA63E,0x0000, /* A63C */ +0xFBC1,0xA63F,0x0000, 0x1611,0x0000,0x0000, 0x1611,0x0000,0x0000, /* A63F */ +0x1618,0x0000,0x0000, 0x1618,0x0000,0x0000, 0x161D,0x0000,0x0000, /* A642 */ +0x161D,0x0000,0x0000, 0x1635,0x0000,0x0000, 0x1635,0x0000,0x0000, /* A645 */ +0x1642,0x0000,0x0000, 0x1642,0x0000,0x0000, 0x16EC,0x0000,0x0000, /* A648 */ +0x16EC,0x0000,0x0000, 0x1712,0x0000,0x0000, 0x1712,0x0000,0x0000, /* A64B */ +0x1750,0x0000,0x0000, 0x1750,0x0000,0x0000, 0x1757,0x0000,0x0000, /* A64E */ +0x1757,0x0000,0x0000, 0x176C,0x0000,0x0000, 0x176C,0x0000,0x0000, /* A651 */ +0x1779,0x0000,0x0000, 0x1779,0x0000,0x0000, 0x177A,0x0000,0x0000, /* A654 */ +0x177A,0x0000,0x0000, 0x1788,0x0000,0x0000, 0x1788,0x0000,0x0000, /* A657 */ +0x178D,0x0000,0x0000, 0x178D,0x0000,0x0000, 0x1792,0x0000,0x0000, /* A65A */ +0x1792,0x0000,0x0000, 0x17AB,0x0000,0x0000, 0x17AB,0x0000,0x0000, /* A65D */ +0xFBC1,0xA660,0x0000, 0xFBC1,0xA661,0x0000, 0x15EA,0x0000,0x0000, /* A660 */ +0x15EA,0x0000,0x0000, 0x166C,0x0000,0x0000, 0x166C,0x0000,0x0000, /* A663 */ +0x1677,0x0000,0x0000, 0x1677,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A666 */ +0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A669 */ +0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A66C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A66F */ +0x0000,0x0000,0x0000, 0x035B,0x0000,0x0000, 0xFBC1,0xA674,0x0000, /* A672 */ +0xFBC1,0xA675,0x0000, 0xFBC1,0xA676,0x0000, 0xFBC1,0xA677,0x0000, /* A675 */ +0xFBC1,0xA678,0x0000, 0xFBC1,0xA679,0x0000, 0xFBC1,0xA67A,0x0000, /* A678 */ +0xFBC1,0xA67B,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A67B */ +0x0391,0x0000,0x0000, 0x1752,0x0000,0x0000, 0x15E5,0x0000,0x0000, /* A67E */ +0x15E5,0x0000,0x0000, 0x1624,0x0000,0x0000, 0x1624,0x0000,0x0000, /* A681 */ +0x1604,0x0000,0x0000, 0x1604,0x0000,0x0000, 0x173A,0x0000,0x0000, /* A684 */ +0x173A,0x0000,0x0000, 0x1622,0x0000,0x0000, 0x1622,0x0000,0x0000, /* A687 */ +0x16CB,0x0000,0x0000, 0x16CB,0x0000,0x0000, 0x16C5,0x0000,0x0000, /* A68A */ +0x16C5,0x0000,0x0000, 0x171F,0x0000,0x0000, 0x171F,0x0000,0x0000, /* A68D */ +0x1724,0x0000,0x0000, 0x1724,0x0000,0x0000, 0x1729,0x0000,0x0000, /* A690 */ +0x1729,0x0000,0x0000, 0x1709,0x0000,0x0000, 0x1709,0x0000,0x0000, /* A693 */ +0x174B,0x0000,0x0000, 0x174B,0x0000,0x0000, 0xFBC1,0xA698,0x0000, /* A696 */ +0xFBC1,0xA699,0x0000, 0xFBC1,0xA69A,0x0000, 0xFBC1,0xA69B,0x0000, /* A699 */ +0xFBC1,0xA69C,0x0000, 0xFBC1,0xA69D,0x0000, 0xFBC1,0xA69E,0x0000, /* A69C */ +0xFBC1,0xA69F,0x0000, 0x2960,0x0000,0x0000, 0x2961,0x0000,0x0000, /* A69F */ +0x2962,0x0000,0x0000, 0x2963,0x0000,0x0000, 0x2964,0x0000,0x0000, /* A6A2 */ +0x2965,0x0000,0x0000, 0x2966,0x0000,0x0000, 0x2967,0x0000,0x0000, /* A6A5 */ +0x2968,0x0000,0x0000, 0x2969,0x0000,0x0000, 0x296A,0x0000,0x0000, /* A6A8 */ +0x296B,0x0000,0x0000, 0x296C,0x0000,0x0000, 0x296D,0x0000,0x0000, /* A6AB */ +0x296E,0x0000,0x0000, 0x296F,0x0000,0x0000, 0x2970,0x0000,0x0000, /* A6AE */ +0x2971,0x0000,0x0000, 0x2972,0x0000,0x0000, 0x2973,0x0000,0x0000, /* A6B1 */ +0x2974,0x0000,0x0000, 0x2975,0x0000,0x0000, 0x2976,0x0000,0x0000, /* A6B4 */ +0x2977,0x0000,0x0000, 0x2978,0x0000,0x0000, 0x2979,0x0000,0x0000, /* A6B7 */ +0x297A,0x0000,0x0000, 0x297B,0x0000,0x0000, 0x297C,0x0000,0x0000, /* A6BA */ +0x297D,0x0000,0x0000, 0x297E,0x0000,0x0000, 0x297F,0x0000,0x0000, /* A6BD */ +0x2980,0x0000,0x0000, 0x2981,0x0000,0x0000, 0x2982,0x0000,0x0000, /* A6C0 */ +0x2983,0x0000,0x0000, 0x2984,0x0000,0x0000, 0x2985,0x0000,0x0000, /* A6C3 */ +0x2986,0x0000,0x0000, 0x2987,0x0000,0x0000, 0x2988,0x0000,0x0000, /* A6C6 */ +0x2989,0x0000,0x0000, 0x298A,0x0000,0x0000, 0x298B,0x0000,0x0000, /* A6C9 */ +0x298C,0x0000,0x0000, 0x298D,0x0000,0x0000, 0x298E,0x0000,0x0000, /* A6CC */ +0x298F,0x0000,0x0000, 0x2990,0x0000,0x0000, 0x2991,0x0000,0x0000, /* A6CF */ +0x2992,0x0000,0x0000, 0x2993,0x0000,0x0000, 0x2994,0x0000,0x0000, /* A6D2 */ +0x2995,0x0000,0x0000, 0x2996,0x0000,0x0000, 0x2997,0x0000,0x0000, /* A6D5 */ +0x2998,0x0000,0x0000, 0x2999,0x0000,0x0000, 0x299A,0x0000,0x0000, /* A6D8 */ +0x299B,0x0000,0x0000, 0x299C,0x0000,0x0000, 0x299D,0x0000,0x0000, /* A6DB */ +0x299E,0x0000,0x0000, 0x299F,0x0000,0x0000, 0x29A0,0x0000,0x0000, /* A6DE */ +0x29A1,0x0000,0x0000, 0x29A2,0x0000,0x0000, 0x29A3,0x0000,0x0000, /* A6E1 */ +0x29A4,0x0000,0x0000, 0x29A5,0x0000,0x0000, 0x29A6,0x0000,0x0000, /* A6E4 */ +0x29A7,0x0000,0x0000, 0x29A8,0x0000,0x0000, 0x29A9,0x0000,0x0000, /* A6E7 */ +0x29AA,0x0000,0x0000, 0x29AB,0x0000,0x0000, 0x29AC,0x0000,0x0000, /* A6EA */ +0x29AD,0x0000,0x0000, 0x29AE,0x0000,0x0000, 0x29AF,0x0000,0x0000, /* A6ED */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x02C8,0x0000,0x0000, /* A6F0 */ +0x0290,0x0000,0x0000, 0x026D,0x0000,0x0000, 0x023F,0x0000,0x0000, /* A6F3 */ +0x0246,0x0000,0x0000, 0x027E,0x0000,0x0000, 0xFBC1,0xA6F8,0x0000, /* A6F6 */ +0xFBC1,0xA6F9,0x0000, 0xFBC1,0xA6FA,0x0000, 0xFBC1,0xA6FB,0x0000, /* A6F9 */ +0xFBC1,0xA6FC,0x0000, 0xFBC1,0xA6FD,0x0000, 0xFBC1,0xA6FE,0x0000, /* A6FC */ +0xFBC1,0xA6FF,0x0000 }; + +uint16 uca520_p0A7[]= { /* A700 (3 weights per char) */ +0x0426,0x0000,0x0000, 0x0427,0x0000,0x0000, 0x0428,0x0000,0x0000, /* A700 */ +0x0429,0x0000,0x0000, 0x042A,0x0000,0x0000, 0x042B,0x0000,0x0000, /* A703 */ +0x042C,0x0000,0x0000, 0x042D,0x0000,0x0000, 0x042E,0x0000,0x0000, /* A706 */ +0x042F,0x0000,0x0000, 0x0430,0x0000,0x0000, 0x0431,0x0000,0x0000, /* A709 */ +0x0432,0x0000,0x0000, 0x0433,0x0000,0x0000, 0x0434,0x0000,0x0000, /* A70C */ +0x0435,0x0000,0x0000, 0x0436,0x0000,0x0000, 0x0437,0x0000,0x0000, /* A70F */ +0x0438,0x0000,0x0000, 0x0439,0x0000,0x0000, 0x043A,0x0000,0x0000, /* A712 */ +0x043B,0x0000,0x0000, 0x043C,0x0000,0x0000, 0x043D,0x0000,0x0000, /* A715 */ +0x043E,0x0000,0x0000, 0x043F,0x0000,0x0000, 0x0440,0x0000,0x0000, /* A718 */ +0x0441,0x0000,0x0000, 0x0442,0x0000,0x0000, 0x0443,0x0000,0x0000, /* A71B */ +0x0444,0x0000,0x0000, 0x0445,0x0000,0x0000, 0x0446,0x0000,0x0000, /* A71E */ +0x0447,0x0000,0x0000, 0x150E,0x0000,0x0000, 0x150E,0x0000,0x0000, /* A721 */ +0x1518,0x0000,0x0000, 0x1518,0x0000,0x0000, 0x12E5,0x0000,0x0000, /* A724 */ +0x12E5,0x0000,0x0000, 0x1433,0x14AD,0x0000, 0x1433,0x14AD,0x0000, /* A727 */ +0x14F3,0x0000,0x0000, 0x14F3,0x0000,0x0000, 0x14F4,0x0000,0x0000, /* A72A */ +0x14F4,0x0000,0x0000, 0x14F5,0x0000,0x0000, 0x14F5,0x0000,0x0000, /* A72D */ +0x12A7,0x0000,0x0000, 0x1414,0x0000,0x0000, 0x120F,0x120F,0x0000, /* A730 */ +0x120F,0x120F,0x0000, 0x120F,0x138E,0x0000, 0x120F,0x138E,0x0000, /* A733 */ +0x120F,0x1453,0x0000, 0x120F,0x1453,0x0000, 0x120F,0x147B,0x0000, /* A736 */ +0x120F,0x147B,0x0000, 0x120F,0x147B,0x0000, 0x120F,0x147B,0x0000, /* A739 */ +0x120F,0x149C,0x0000, 0x120F,0x149C,0x0000, 0x124F,0x0000,0x0000, /* A73C */ +0x124F,0x0000,0x0000, 0x1329,0x0000,0x0000, 0x1329,0x0000,0x0000, /* A73F */ +0x132A,0x0000,0x0000, 0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, /* A742 */ +0x132B,0x0000,0x0000, 0x1338,0x0000,0x0000, 0x1338,0x0000,0x0000, /* A745 */ +0x133A,0x0000,0x0000, 0x133A,0x0000,0x0000, 0x13A9,0x0000,0x0000, /* A748 */ +0x13A9,0x0000,0x0000, 0x13A1,0x0000,0x0000, 0x13A1,0x0000,0x0000, /* A74B */ +0x138E,0x138E,0x0000, 0x138E,0x138E,0x0000, 0x13B9,0x0000,0x0000, /* A74E */ +0x13B9,0x0000,0x0000, 0x13C0,0x0000,0x0000, 0x13C0,0x0000,0x0000, /* A751 */ +0x13C1,0x0000,0x0000, 0x13C1,0x0000,0x0000, 0x13CC,0x0000,0x0000, /* A754 */ +0x13CC,0x0000,0x0000, 0x13CD,0x0000,0x0000, 0x13CD,0x0000,0x0000, /* A757 */ +0x13E2,0x0000,0x0000, 0x13E2,0x0000,0x0000, 0x140F,0x0000,0x0000, /* A75A */ +0x140F,0x0000,0x0000, 0x1480,0x0000,0x0000, 0x1480,0x0000,0x0000, /* A75D */ +0x147B,0x149C,0x0000, 0x147B,0x149C,0x0000, 0x14C9,0x0000,0x0000, /* A760 */ +0x14C9,0x0000,0x0000, 0x14E4,0x0000,0x0000, 0x14E4,0x0000,0x0000, /* A763 */ +0x14E5,0x0000,0x0000, 0x14E5,0x0000,0x0000, 0x14EA,0x0000,0x0000, /* A766 */ +0x14EA,0x0000,0x0000, 0x14EB,0x0000,0x0000, 0x14EB,0x0000,0x0000, /* A769 */ +0x14EC,0x0000,0x0000, 0x14EC,0x0000,0x0000, 0x14ED,0x0000,0x0000, /* A76C */ +0x14ED,0x0000,0x0000, 0x14ED,0x0000,0x0000, 0x1269,0x0000,0x0000, /* A76F */ +0x1351,0x0000,0x0000, 0x136C,0x0000,0x0000, 0x1389,0x0000,0x0000, /* A772 */ +0x140D,0x0000,0x0000, 0x140E,0x0000,0x0000, 0x144E,0x0000,0x0000, /* A775 */ +0x14EE,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* A778 */ +0x12A3,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* A77B */ +0x12CA,0x0000,0x0000, 0x12CA,0x0000,0x0000, 0x1356,0x0000,0x0000, /* A77E */ +0x1356,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* A781 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* A784 */ +0x1433,0x0000,0x0000, 0x0448,0x0000,0x0000, 0x0449,0x0000,0x0000, /* A787 */ +0x044A,0x0000,0x0000, 0x150F,0x0000,0x0000, 0x150F,0x0000,0x0000, /* A78A */ +0xFBC1,0xA78D,0x0000, 0xFBC1,0xA78E,0x0000, 0xFBC1,0xA78F,0x0000, /* A78D */ +0xFBC1,0xA790,0x0000, 0xFBC1,0xA791,0x0000, 0xFBC1,0xA792,0x0000, /* A790 */ +0xFBC1,0xA793,0x0000, 0xFBC1,0xA794,0x0000, 0xFBC1,0xA795,0x0000, /* A793 */ +0xFBC1,0xA796,0x0000, 0xFBC1,0xA797,0x0000, 0xFBC1,0xA798,0x0000, /* A796 */ +0xFBC1,0xA799,0x0000, 0xFBC1,0xA79A,0x0000, 0xFBC1,0xA79B,0x0000, /* A799 */ +0xFBC1,0xA79C,0x0000, 0xFBC1,0xA79D,0x0000, 0xFBC1,0xA79E,0x0000, /* A79C */ +0xFBC1,0xA79F,0x0000, 0xFBC1,0xA7A0,0x0000, 0xFBC1,0xA7A1,0x0000, /* A79F */ +0xFBC1,0xA7A2,0x0000, 0xFBC1,0xA7A3,0x0000, 0xFBC1,0xA7A4,0x0000, /* A7A2 */ +0xFBC1,0xA7A5,0x0000, 0xFBC1,0xA7A6,0x0000, 0xFBC1,0xA7A7,0x0000, /* A7A5 */ +0xFBC1,0xA7A8,0x0000, 0xFBC1,0xA7A9,0x0000, 0xFBC1,0xA7AA,0x0000, /* A7A8 */ +0xFBC1,0xA7AB,0x0000, 0xFBC1,0xA7AC,0x0000, 0xFBC1,0xA7AD,0x0000, /* A7AB */ +0xFBC1,0xA7AE,0x0000, 0xFBC1,0xA7AF,0x0000, 0xFBC1,0xA7B0,0x0000, /* A7AE */ +0xFBC1,0xA7B1,0x0000, 0xFBC1,0xA7B2,0x0000, 0xFBC1,0xA7B3,0x0000, /* A7B1 */ +0xFBC1,0xA7B4,0x0000, 0xFBC1,0xA7B5,0x0000, 0xFBC1,0xA7B6,0x0000, /* A7B4 */ +0xFBC1,0xA7B7,0x0000, 0xFBC1,0xA7B8,0x0000, 0xFBC1,0xA7B9,0x0000, /* A7B7 */ +0xFBC1,0xA7BA,0x0000, 0xFBC1,0xA7BB,0x0000, 0xFBC1,0xA7BC,0x0000, /* A7BA */ +0xFBC1,0xA7BD,0x0000, 0xFBC1,0xA7BE,0x0000, 0xFBC1,0xA7BF,0x0000, /* A7BD */ +0xFBC1,0xA7C0,0x0000, 0xFBC1,0xA7C1,0x0000, 0xFBC1,0xA7C2,0x0000, /* A7C0 */ +0xFBC1,0xA7C3,0x0000, 0xFBC1,0xA7C4,0x0000, 0xFBC1,0xA7C5,0x0000, /* A7C3 */ +0xFBC1,0xA7C6,0x0000, 0xFBC1,0xA7C7,0x0000, 0xFBC1,0xA7C8,0x0000, /* A7C6 */ +0xFBC1,0xA7C9,0x0000, 0xFBC1,0xA7CA,0x0000, 0xFBC1,0xA7CB,0x0000, /* A7C9 */ +0xFBC1,0xA7CC,0x0000, 0xFBC1,0xA7CD,0x0000, 0xFBC1,0xA7CE,0x0000, /* A7CC */ +0xFBC1,0xA7CF,0x0000, 0xFBC1,0xA7D0,0x0000, 0xFBC1,0xA7D1,0x0000, /* A7CF */ +0xFBC1,0xA7D2,0x0000, 0xFBC1,0xA7D3,0x0000, 0xFBC1,0xA7D4,0x0000, /* A7D2 */ +0xFBC1,0xA7D5,0x0000, 0xFBC1,0xA7D6,0x0000, 0xFBC1,0xA7D7,0x0000, /* A7D5 */ +0xFBC1,0xA7D8,0x0000, 0xFBC1,0xA7D9,0x0000, 0xFBC1,0xA7DA,0x0000, /* A7D8 */ +0xFBC1,0xA7DB,0x0000, 0xFBC1,0xA7DC,0x0000, 0xFBC1,0xA7DD,0x0000, /* A7DB */ +0xFBC1,0xA7DE,0x0000, 0xFBC1,0xA7DF,0x0000, 0xFBC1,0xA7E0,0x0000, /* A7DE */ +0xFBC1,0xA7E1,0x0000, 0xFBC1,0xA7E2,0x0000, 0xFBC1,0xA7E3,0x0000, /* A7E1 */ +0xFBC1,0xA7E4,0x0000, 0xFBC1,0xA7E5,0x0000, 0xFBC1,0xA7E6,0x0000, /* A7E4 */ +0xFBC1,0xA7E7,0x0000, 0xFBC1,0xA7E8,0x0000, 0xFBC1,0xA7E9,0x0000, /* A7E7 */ +0xFBC1,0xA7EA,0x0000, 0xFBC1,0xA7EB,0x0000, 0xFBC1,0xA7EC,0x0000, /* A7EA */ +0xFBC1,0xA7ED,0x0000, 0xFBC1,0xA7EE,0x0000, 0xFBC1,0xA7EF,0x0000, /* A7ED */ +0xFBC1,0xA7F0,0x0000, 0xFBC1,0xA7F1,0x0000, 0xFBC1,0xA7F2,0x0000, /* A7F0 */ +0xFBC1,0xA7F3,0x0000, 0xFBC1,0xA7F4,0x0000, 0xFBC1,0xA7F5,0x0000, /* A7F3 */ +0xFBC1,0xA7F6,0x0000, 0xFBC1,0xA7F7,0x0000, 0xFBC1,0xA7F8,0x0000, /* A7F6 */ +0xFBC1,0xA7F9,0x0000, 0xFBC1,0xA7FA,0x0000, 0x12AF,0x0000,0x0000, /* A7F9 */ +0x13C2,0x0000,0x0000, 0x136A,0x0000,0x0000, 0x12F8,0x0000,0x0000, /* A7FC */ +0x136B,0x0000,0x0000 }; + +uint16 uca520_p0A8[]= { /* A800 (3 weights per char) */ +0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, /* A800 */ +0x1E81,0x0000,0x0000, 0x1E82,0x0000,0x0000, 0x1E83,0x0000,0x0000, /* A803 */ +0x1E84,0x0000,0x0000, 0x1E85,0x0000,0x0000, 0x1E86,0x0000,0x0000, /* A806 */ +0x1E87,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A809 */ +0x1E89,0x0000,0x0000, 0x1E8A,0x0000,0x0000, 0x1E8B,0x0000,0x0000, /* A80C */ +0x1E8C,0x0000,0x0000, 0x1E8D,0x0000,0x0000, 0x1E8E,0x0000,0x0000, /* A80F */ +0x1E8F,0x0000,0x0000, 0x1E90,0x0000,0x0000, 0x1E91,0x0000,0x0000, /* A812 */ +0x1E92,0x0000,0x0000, 0x1E93,0x0000,0x0000, 0x1E94,0x0000,0x0000, /* A815 */ +0x1E95,0x0000,0x0000, 0x1E96,0x0000,0x0000, 0x1E97,0x0000,0x0000, /* A818 */ +0x1E98,0x0000,0x0000, 0x1E99,0x0000,0x0000, 0x1E9A,0x0000,0x0000, /* A81B */ +0x1E9B,0x0000,0x0000, 0x1E9C,0x0000,0x0000, 0x1E9D,0x0000,0x0000, /* A81E */ +0x1E9E,0x0000,0x0000, 0x1E9F,0x0000,0x0000, 0x1EA0,0x0000,0x0000, /* A821 */ +0x1EA1,0x0000,0x0000, 0x1EA2,0x0000,0x0000, 0x1EA3,0x0000,0x0000, /* A824 */ +0x1EA4,0x0000,0x0000, 0x0460,0x0000,0x0000, 0x0461,0x0000,0x0000, /* A827 */ +0x0462,0x0000,0x0000, 0x0463,0x0000,0x0000, 0xFBC1,0xA82C,0x0000, /* A82A */ +0xFBC1,0xA82D,0x0000, 0xFBC1,0xA82E,0x0000, 0xFBC1,0xA82F,0x0000, /* A82D */ +0x1116,0x0000,0x0000, 0x1117,0x0000,0x0000, 0x1118,0x0000,0x0000, /* A830 */ +0x1119,0x0000,0x0000, 0x111A,0x0000,0x0000, 0x111B,0x0000,0x0000, /* A833 */ +0x0464,0x0000,0x0000, 0x0465,0x0000,0x0000, 0x11E9,0x0000,0x0000, /* A836 */ +0x0466,0x0000,0x0000, 0xFBC1,0xA83A,0x0000, 0xFBC1,0xA83B,0x0000, /* A839 */ +0xFBC1,0xA83C,0x0000, 0xFBC1,0xA83D,0x0000, 0xFBC1,0xA83E,0x0000, /* A83C */ +0xFBC1,0xA83F,0x0000, 0x20B7,0x0000,0x0000, 0x20B8,0x0000,0x0000, /* A83F */ +0x20B9,0x0000,0x0000, 0x20BA,0x0000,0x0000, 0x20BB,0x0000,0x0000, /* A842 */ +0x20BC,0x0000,0x0000, 0x20BD,0x0000,0x0000, 0x20BE,0x0000,0x0000, /* A845 */ +0x20C3,0x0000,0x0000, 0x20C4,0x0000,0x0000, 0x20C5,0x0000,0x0000, /* A848 */ +0x20C6,0x0000,0x0000, 0x20C7,0x0000,0x0000, 0x20C8,0x0000,0x0000, /* A84B */ +0x20C9,0x0000,0x0000, 0x20CA,0x0000,0x0000, 0x20CB,0x0000,0x0000, /* A84E */ +0x20CC,0x0000,0x0000, 0x20CD,0x0000,0x0000, 0x20CE,0x0000,0x0000, /* A851 */ +0x20D0,0x0000,0x0000, 0x20D1,0x0000,0x0000, 0x20D2,0x0000,0x0000, /* A854 */ +0x20D3,0x0000,0x0000, 0x20D6,0x0000,0x0000, 0x20D9,0x0000,0x0000, /* A857 */ +0x20DA,0x0000,0x0000, 0x20DC,0x0000,0x0000, 0x20DD,0x0000,0x0000, /* A85A */ +0x20E0,0x0000,0x0000, 0x20E5,0x0000,0x0000, 0x20E6,0x0000,0x0000, /* A85D */ +0x20E7,0x0000,0x0000, 0x20E8,0x0000,0x0000, 0x20E1,0x0000,0x0000, /* A860 */ +0x20E2,0x0000,0x0000, 0x20E3,0x0000,0x0000, 0x20E4,0x0000,0x0000, /* A863 */ +0x20E9,0x0000,0x0000, 0x20CF,0x0000,0x0000, 0x20D4,0x0000,0x0000, /* A866 */ +0x20BF,0x0000,0x0000, 0x20C0,0x0000,0x0000, 0x20C1,0x0000,0x0000, /* A869 */ +0x20C2,0x0000,0x0000, 0x20D5,0x0000,0x0000, 0x20DB,0x0000,0x0000, /* A86C */ +0x20DE,0x0000,0x0000, 0x20DF,0x0000,0x0000, 0x20D7,0x0000,0x0000, /* A86F */ +0x20D8,0x0000,0x0000, 0x20EA,0x0000,0x0000, 0x03D9,0x0000,0x0000, /* A872 */ +0x03DA,0x0000,0x0000, 0x029A,0x0000,0x0000, 0x029B,0x0000,0x0000, /* A875 */ +0xFBC1,0xA878,0x0000, 0xFBC1,0xA879,0x0000, 0xFBC1,0xA87A,0x0000, /* A878 */ +0xFBC1,0xA87B,0x0000, 0xFBC1,0xA87C,0x0000, 0xFBC1,0xA87D,0x0000, /* A87B */ +0xFBC1,0xA87E,0x0000, 0xFBC1,0xA87F,0x0000, 0x0000,0x0000,0x0000, /* A87E */ +0x0000,0x0000,0x0000, 0x1EA5,0x0000,0x0000, 0x1EA6,0x0000,0x0000, /* A881 */ +0x1EA7,0x0000,0x0000, 0x1EA8,0x0000,0x0000, 0x1EA9,0x0000,0x0000, /* A884 */ +0x1EAA,0x0000,0x0000, 0x1EAB,0x0000,0x0000, 0x1EAC,0x0000,0x0000, /* A887 */ +0x1EAD,0x0000,0x0000, 0x1EAE,0x0000,0x0000, 0x1EAF,0x0000,0x0000, /* A88A */ +0x1EB0,0x0000,0x0000, 0x1EB1,0x0000,0x0000, 0x1EB2,0x0000,0x0000, /* A88D */ +0x1EB3,0x0000,0x0000, 0x1EB4,0x0000,0x0000, 0x1EB5,0x0000,0x0000, /* A890 */ +0x1EB6,0x0000,0x0000, 0x1EB7,0x0000,0x0000, 0x1EB8,0x0000,0x0000, /* A893 */ +0x1EB9,0x0000,0x0000, 0x1EBA,0x0000,0x0000, 0x1EBB,0x0000,0x0000, /* A896 */ +0x1EBC,0x0000,0x0000, 0x1EBD,0x0000,0x0000, 0x1EBE,0x0000,0x0000, /* A899 */ +0x1EBF,0x0000,0x0000, 0x1EC0,0x0000,0x0000, 0x1EC1,0x0000,0x0000, /* A89C */ +0x1EC2,0x0000,0x0000, 0x1EC3,0x0000,0x0000, 0x1EC4,0x0000,0x0000, /* A89F */ +0x1EC5,0x0000,0x0000, 0x1EC6,0x0000,0x0000, 0x1EC7,0x0000,0x0000, /* A8A2 */ +0x1EC8,0x0000,0x0000, 0x1EC9,0x0000,0x0000, 0x1ECA,0x0000,0x0000, /* A8A5 */ +0x1ECB,0x0000,0x0000, 0x1ECC,0x0000,0x0000, 0x1ECD,0x0000,0x0000, /* A8A8 */ +0x1ECE,0x0000,0x0000, 0x1ECF,0x0000,0x0000, 0x1ED0,0x0000,0x0000, /* A8AB */ +0x1ED1,0x0000,0x0000, 0x1ED2,0x0000,0x0000, 0x1ED3,0x0000,0x0000, /* A8AE */ +0x1ED4,0x0000,0x0000, 0x1ED5,0x0000,0x0000, 0x1ED6,0x0000,0x0000, /* A8B1 */ +0x1ED7,0x0000,0x0000, 0x1ED8,0x0000,0x0000, 0x1ED9,0x0000,0x0000, /* A8B4 */ +0x1EDA,0x0000,0x0000, 0x1EDB,0x0000,0x0000, 0x1EDC,0x0000,0x0000, /* A8B7 */ +0x1EDD,0x0000,0x0000, 0x1EDE,0x0000,0x0000, 0x1EDF,0x0000,0x0000, /* A8BA */ +0x1EE0,0x0000,0x0000, 0x1EE1,0x0000,0x0000, 0x1EE2,0x0000,0x0000, /* A8BD */ +0x1EE3,0x0000,0x0000, 0x1EE4,0x0000,0x0000, 0x1EE5,0x0000,0x0000, /* A8C0 */ +0x1EE6,0x0000,0x0000, 0x1EE7,0x0000,0x0000, 0xFBC1,0xA8C5,0x0000, /* A8C3 */ +0xFBC1,0xA8C6,0x0000, 0xFBC1,0xA8C7,0x0000, 0xFBC1,0xA8C8,0x0000, /* A8C6 */ +0xFBC1,0xA8C9,0x0000, 0xFBC1,0xA8CA,0x0000, 0xFBC1,0xA8CB,0x0000, /* A8C9 */ +0xFBC1,0xA8CC,0x0000, 0xFBC1,0xA8CD,0x0000, 0x0296,0x0000,0x0000, /* A8CC */ +0x0297,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* A8CF */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* A8D2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* A8D5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC1,0xA8DA,0x0000, /* A8D8 */ +0xFBC1,0xA8DB,0x0000, 0xFBC1,0xA8DC,0x0000, 0xFBC1,0xA8DD,0x0000, /* A8DB */ +0xFBC1,0xA8DE,0x0000, 0xFBC1,0xA8DF,0x0000, 0x0000,0x0000,0x0000, /* A8DE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8EA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8ED */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1BE8,0x0000,0x0000, /* A8F0 */ +0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, /* A8F3 */ +0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, 0x03A2,0x0000,0x0000, /* A8F6 */ +0x03A3,0x0000,0x0000, 0x03A4,0x0000,0x0000, 0x1BE9,0x0000,0x0000, /* A8F9 */ +0xFBC1,0xA8FC,0x0000, 0xFBC1,0xA8FD,0x0000, 0xFBC1,0xA8FE,0x0000, /* A8FC */ +0xFBC1,0xA8FF,0x0000 }; + +uint16 uca520_p0A9[]= { /* A900 (3 weights per char) */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* A900 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* A903 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* A906 */ +0x120E,0x0000,0x0000, 0x21AC,0x0000,0x0000, 0x21AD,0x0000,0x0000, /* A909 */ +0x21AE,0x0000,0x0000, 0x21AF,0x0000,0x0000, 0x21B0,0x0000,0x0000, /* A90C */ +0x21B1,0x0000,0x0000, 0x21B2,0x0000,0x0000, 0x21B3,0x0000,0x0000, /* A90F */ +0x21B4,0x0000,0x0000, 0x21B5,0x0000,0x0000, 0x21B6,0x0000,0x0000, /* A912 */ +0x21B7,0x0000,0x0000, 0x21B8,0x0000,0x0000, 0x21B9,0x0000,0x0000, /* A915 */ +0x21BA,0x0000,0x0000, 0x21BB,0x0000,0x0000, 0x21BC,0x0000,0x0000, /* A918 */ +0x21BD,0x0000,0x0000, 0x21BE,0x0000,0x0000, 0x21BF,0x0000,0x0000, /* A91B */ +0x21C0,0x0000,0x0000, 0x21C1,0x0000,0x0000, 0x21C2,0x0000,0x0000, /* A91E */ +0x21C3,0x0000,0x0000, 0x21C4,0x0000,0x0000, 0x21C5,0x0000,0x0000, /* A921 */ +0x21C6,0x0000,0x0000, 0x21C7,0x0000,0x0000, 0x21C8,0x0000,0x0000, /* A924 */ +0x21C9,0x0000,0x0000, 0x21CA,0x0000,0x0000, 0x21CB,0x0000,0x0000, /* A927 */ +0x21CC,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A92A */ +0x0000,0x0000,0x0000, 0x03DB,0x0000,0x0000, 0x029E,0x0000,0x0000, /* A92D */ +0x2188,0x0000,0x0000, 0x2189,0x0000,0x0000, 0x218A,0x0000,0x0000, /* A930 */ +0x218B,0x0000,0x0000, 0x218C,0x0000,0x0000, 0x218D,0x0000,0x0000, /* A933 */ +0x218E,0x0000,0x0000, 0x218F,0x0000,0x0000, 0x2190,0x0000,0x0000, /* A936 */ +0x2191,0x0000,0x0000, 0x2192,0x0000,0x0000, 0x2193,0x0000,0x0000, /* A939 */ +0x2194,0x0000,0x0000, 0x2195,0x0000,0x0000, 0x2196,0x0000,0x0000, /* A93C */ +0x2197,0x0000,0x0000, 0x2198,0x0000,0x0000, 0x2199,0x0000,0x0000, /* A93F */ +0x219A,0x0000,0x0000, 0x219B,0x0000,0x0000, 0x219C,0x0000,0x0000, /* A942 */ +0x219D,0x0000,0x0000, 0x219E,0x0000,0x0000, 0x219F,0x0000,0x0000, /* A945 */ +0x21A0,0x0000,0x0000, 0x21A1,0x0000,0x0000, 0x21A2,0x0000,0x0000, /* A948 */ +0x21A3,0x0000,0x0000, 0x21A4,0x0000,0x0000, 0x21A5,0x0000,0x0000, /* A94B */ +0x21A6,0x0000,0x0000, 0x21A7,0x0000,0x0000, 0x21A8,0x0000,0x0000, /* A94E */ +0x21A9,0x0000,0x0000, 0x21AA,0x0000,0x0000, 0x21AB,0x0000,0x0000, /* A951 */ +0xFBC1,0xA954,0x0000, 0xFBC1,0xA955,0x0000, 0xFBC1,0xA956,0x0000, /* A954 */ +0xFBC1,0xA957,0x0000, 0xFBC1,0xA958,0x0000, 0xFBC1,0xA959,0x0000, /* A957 */ +0xFBC1,0xA95A,0x0000, 0xFBC1,0xA95B,0x0000, 0xFBC1,0xA95C,0x0000, /* A95A */ +0xFBC1,0xA95D,0x0000, 0xFBC1,0xA95E,0x0000, 0x02C9,0x0000,0x0000, /* A95D */ +0x2A0F,0x0000,0x0000, 0x2A10,0x0000,0x0000, 0x2A11,0x0000,0x0000, /* A960 */ +0x2A12,0x0000,0x0000, 0x2A13,0x0000,0x0000, 0x2A14,0x0000,0x0000, /* A963 */ +0x2A15,0x0000,0x0000, 0x2A16,0x0000,0x0000, 0x2A17,0x0000,0x0000, /* A966 */ +0x2A18,0x0000,0x0000, 0x2A19,0x0000,0x0000, 0x2A1A,0x0000,0x0000, /* A969 */ +0x2A1B,0x0000,0x0000, 0x2A1C,0x0000,0x0000, 0x2A1D,0x0000,0x0000, /* A96C */ +0x2A1E,0x0000,0x0000, 0x2A1F,0x0000,0x0000, 0x2A20,0x0000,0x0000, /* A96F */ +0x2A21,0x0000,0x0000, 0x2A22,0x0000,0x0000, 0x2A23,0x0000,0x0000, /* A972 */ +0x2A24,0x0000,0x0000, 0x2A25,0x0000,0x0000, 0x2A26,0x0000,0x0000, /* A975 */ +0x2A27,0x0000,0x0000, 0x2A28,0x0000,0x0000, 0x2A29,0x0000,0x0000, /* A978 */ +0x2A2A,0x0000,0x0000, 0x2A2B,0x0000,0x0000, 0xFBC1,0xA97D,0x0000, /* A97B */ +0xFBC1,0xA97E,0x0000, 0xFBC1,0xA97F,0x0000, 0x0000,0x0000,0x0000, /* A97E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A981 */ +0x23EC,0x0000,0x0000, 0x23ED,0x0000,0x0000, 0x23EE,0x0000,0x0000, /* A984 */ +0x23EF,0x0000,0x0000, 0x23F0,0x0000,0x0000, 0x23F1,0x0000,0x0000, /* A987 */ +0x23F2,0x0000,0x0000, 0x23F3,0x0000,0x0000, 0x23F4,0x0000,0x0000, /* A98A */ +0x23F5,0x0000,0x0000, 0x23F6,0x0000,0x0000, 0x23F7,0x0000,0x0000, /* A98D */ +0x23F8,0x0000,0x0000, 0x23F9,0x0000,0x0000, 0x23FA,0x0000,0x0000, /* A990 */ +0x23FB,0x0000,0x0000, 0x23FC,0x0000,0x0000, 0x23FD,0x0000,0x0000, /* A993 */ +0x23FE,0x0000,0x0000, 0x23FF,0x0000,0x0000, 0x2400,0x0000,0x0000, /* A996 */ +0x2401,0x0000,0x0000, 0x2402,0x0000,0x0000, 0x2403,0x0000,0x0000, /* A999 */ +0x2404,0x0000,0x0000, 0x2405,0x0000,0x0000, 0x2406,0x0000,0x0000, /* A99C */ +0x2407,0x0000,0x0000, 0x2408,0x0000,0x0000, 0x2409,0x0000,0x0000, /* A99F */ +0x240A,0x0000,0x0000, 0x240B,0x0000,0x0000, 0x240C,0x0000,0x0000, /* A9A2 */ +0x240D,0x0000,0x0000, 0x240E,0x0000,0x0000, 0x240F,0x0000,0x0000, /* A9A5 */ +0x2410,0x0000,0x0000, 0x2411,0x0000,0x0000, 0x2412,0x0000,0x0000, /* A9A8 */ +0x2414,0x0000,0x0000, 0x2414,0x0000,0x0000, 0x2416,0x0000,0x0000, /* A9AB */ +0x2417,0x0000,0x0000, 0x2418,0x0000,0x0000, 0x2419,0x0000,0x0000, /* A9AE */ +0x241A,0x0000,0x0000, 0x241B,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A9B1 */ +0x241C,0x0000,0x0000, 0x2425,0x0000,0x0000, 0x241E,0x0000,0x0000, /* A9B4 */ +0x241F,0x0000,0x0000, 0x2420,0x0000,0x0000, 0x2421,0x0000,0x0000, /* A9B7 */ +0x2423,0x0000,0x0000, 0x2424,0x0000,0x0000, 0x241D,0x0000,0x0000, /* A9BA */ +0x2422,0x0000,0x0000, 0x2413,0x0000,0x0000, 0x2415,0x0000,0x0000, /* A9BD */ +0x2426,0x0000,0x0000, 0x02BE,0x0000,0x0000, 0x02BF,0x0000,0x0000, /* A9C0 */ +0x02C0,0x0000,0x0000, 0x02C1,0x0000,0x0000, 0x02C2,0x0000,0x0000, /* A9C3 */ +0x02C3,0x0000,0x0000, 0x0269,0x0000,0x0000, 0x02A9,0x0000,0x0000, /* A9C6 */ +0x02AA,0x0000,0x0000, 0x02C4,0x0000,0x0000, 0x02C5,0x0000,0x0000, /* A9C9 */ +0x02C6,0x0000,0x0000, 0x02C7,0x0000,0x0000, 0xFBC1,0xA9CE,0x0000, /* A9CC */ +0x11D4,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* A9CF */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* A9D2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* A9D5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC1,0xA9DA,0x0000, /* A9D8 */ +0xFBC1,0xA9DB,0x0000, 0xFBC1,0xA9DC,0x0000, 0xFBC1,0xA9DD,0x0000, /* A9DB */ +0x03DC,0x0000,0x0000, 0x03DD,0x0000,0x0000, 0xFBC1,0xA9E0,0x0000, /* A9DE */ +0xFBC1,0xA9E1,0x0000, 0xFBC1,0xA9E2,0x0000, 0xFBC1,0xA9E3,0x0000, /* A9E1 */ +0xFBC1,0xA9E4,0x0000, 0xFBC1,0xA9E5,0x0000, 0xFBC1,0xA9E6,0x0000, /* A9E4 */ +0xFBC1,0xA9E7,0x0000, 0xFBC1,0xA9E8,0x0000, 0xFBC1,0xA9E9,0x0000, /* A9E7 */ +0xFBC1,0xA9EA,0x0000, 0xFBC1,0xA9EB,0x0000, 0xFBC1,0xA9EC,0x0000, /* A9EA */ +0xFBC1,0xA9ED,0x0000, 0xFBC1,0xA9EE,0x0000, 0xFBC1,0xA9EF,0x0000, /* A9ED */ +0xFBC1,0xA9F0,0x0000, 0xFBC1,0xA9F1,0x0000, 0xFBC1,0xA9F2,0x0000, /* A9F0 */ +0xFBC1,0xA9F3,0x0000, 0xFBC1,0xA9F4,0x0000, 0xFBC1,0xA9F5,0x0000, /* A9F3 */ +0xFBC1,0xA9F6,0x0000, 0xFBC1,0xA9F7,0x0000, 0xFBC1,0xA9F8,0x0000, /* A9F6 */ +0xFBC1,0xA9F9,0x0000, 0xFBC1,0xA9FA,0x0000, 0xFBC1,0xA9FB,0x0000, /* A9F9 */ +0xFBC1,0xA9FC,0x0000, 0xFBC1,0xA9FD,0x0000, 0xFBC1,0xA9FE,0x0000, /* A9FC */ +0xFBC1,0xA9FF,0x0000 }; + +uint16 uca520_p0AA[]= { /* AA00 (3 weights per char) */ +0x2361,0x0000,0x0000, 0x2362,0x0000,0x0000, 0x2363,0x0000,0x0000, /* AA00 */ +0x2364,0x0000,0x0000, 0x2365,0x0000,0x0000, 0x2366,0x0000,0x0000, /* AA03 */ +0x2367,0x0000,0x0000, 0x2368,0x0000,0x0000, 0x2369,0x0000,0x0000, /* AA06 */ +0x236A,0x0000,0x0000, 0x236B,0x0000,0x0000, 0x236C,0x0000,0x0000, /* AA09 */ +0x236D,0x0000,0x0000, 0x236E,0x0000,0x0000, 0x236F,0x0000,0x0000, /* AA0C */ +0x2370,0x0000,0x0000, 0x2371,0x0000,0x0000, 0x2372,0x0000,0x0000, /* AA0F */ +0x2373,0x0000,0x0000, 0x2374,0x0000,0x0000, 0x2375,0x0000,0x0000, /* AA12 */ +0x2376,0x0000,0x0000, 0x2377,0x0000,0x0000, 0x2378,0x0000,0x0000, /* AA15 */ +0x2379,0x0000,0x0000, 0x237A,0x0000,0x0000, 0x237B,0x0000,0x0000, /* AA18 */ +0x237C,0x0000,0x0000, 0x237D,0x0000,0x0000, 0x237E,0x0000,0x0000, /* AA1B */ +0x237F,0x0000,0x0000, 0x2380,0x0000,0x0000, 0x2381,0x0000,0x0000, /* AA1E */ +0x2382,0x0000,0x0000, 0x2383,0x0000,0x0000, 0x2384,0x0000,0x0000, /* AA21 */ +0x2385,0x0000,0x0000, 0x2386,0x0000,0x0000, 0x2387,0x0000,0x0000, /* AA24 */ +0x2388,0x0000,0x0000, 0x2389,0x0000,0x0000, 0x238E,0x0000,0x0000, /* AA27 */ +0x238F,0x0000,0x0000, 0x2390,0x0000,0x0000, 0x2391,0x0000,0x0000, /* AA2A */ +0x2392,0x0000,0x0000, 0x2393,0x0000,0x0000, 0x2394,0x0000,0x0000, /* AA2D */ +0x2395,0x0000,0x0000, 0x2396,0x0000,0x0000, 0x2397,0x0000,0x0000, /* AA30 */ +0x238A,0x0000,0x0000, 0x238B,0x0000,0x0000, 0x238C,0x0000,0x0000, /* AA33 */ +0x238D,0x0000,0x0000, 0xFBC1,0xAA37,0x0000, 0xFBC1,0xAA38,0x0000, /* AA36 */ +0xFBC1,0xAA39,0x0000, 0xFBC1,0xAA3A,0x0000, 0xFBC1,0xAA3B,0x0000, /* AA39 */ +0xFBC1,0xAA3C,0x0000, 0xFBC1,0xAA3D,0x0000, 0xFBC1,0xAA3E,0x0000, /* AA3C */ +0xFBC1,0xAA3F,0x0000, 0x2398,0x0000,0x0000, 0x2399,0x0000,0x0000, /* AA3F */ +0x239A,0x0000,0x0000, 0x239B,0x0000,0x0000, 0x239C,0x0000,0x0000, /* AA42 */ +0x239D,0x0000,0x0000, 0x239E,0x0000,0x0000, 0x239F,0x0000,0x0000, /* AA45 */ +0x23A0,0x0000,0x0000, 0x23A1,0x0000,0x0000, 0x23A2,0x0000,0x0000, /* AA48 */ +0x23A3,0x0000,0x0000, 0x23A4,0x0000,0x0000, 0x23A5,0x0000,0x0000, /* AA4B */ +0xFBC1,0xAA4E,0x0000, 0xFBC1,0xAA4F,0x0000, 0x1205,0x0000,0x0000, /* AA4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* AA51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* AA54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* AA57 */ +0xFBC1,0xAA5A,0x0000, 0xFBC1,0xAA5B,0x0000, 0x03DE,0x0000,0x0000, /* AA5A */ +0x02AB,0x0000,0x0000, 0x02AC,0x0000,0x0000, 0x02AD,0x0000,0x0000, /* AA5D */ +0x21D3,0x0000,0x0000, 0x21D9,0x0000,0x0000, 0x21DB,0x0000,0x0000, /* AA60 */ +0x21DD,0x0000,0x0000, 0x21E2,0x0000,0x0000, 0x21E6,0x0000,0x0000, /* AA63 */ +0x21E9,0x0000,0x0000, 0x21EB,0x0000,0x0000, 0x21ED,0x0000,0x0000, /* AA66 */ +0x21EF,0x0000,0x0000, 0x21F7,0x0000,0x0000, 0x21FA,0x0000,0x0000, /* AA69 */ +0x2217,0x0000,0x0000, 0x221A,0x0000,0x0000, 0x221C,0x0000,0x0000, /* AA6C */ +0x2200,0x0000,0x0000, 0x11D5,0x0000,0x0000, 0x221D,0x0000,0x0000, /* AA6F */ +0x21DF,0x0000,0x0000, 0x220A,0x0000,0x0000, 0x2260,0x0000,0x0000, /* AA72 */ +0x2261,0x0000,0x0000, 0x2262,0x0000,0x0000, 0x03C8,0x0000,0x0000, /* AA75 */ +0x03C9,0x0000,0x0000, 0x03CA,0x0000,0x0000, 0x220B,0x0000,0x0000, /* AA78 */ +0x225F,0x0000,0x0000, 0xFBC1,0xAA7C,0x0000, 0xFBC1,0xAA7D,0x0000, /* AA7B */ +0xFBC1,0xAA7E,0x0000, 0xFBC1,0xAA7F,0x0000, 0x1FDE,0x0000,0x0000, /* AA7E */ +0x1FDF,0x0000,0x0000, 0x1FE0,0x0000,0x0000, 0x1FE1,0x0000,0x0000, /* AA81 */ +0x1FE2,0x0000,0x0000, 0x1FE3,0x0000,0x0000, 0x1FE4,0x0000,0x0000, /* AA84 */ +0x1FE5,0x0000,0x0000, 0x1FE6,0x0000,0x0000, 0x1FE7,0x0000,0x0000, /* AA87 */ +0x1FE8,0x0000,0x0000, 0x1FE9,0x0000,0x0000, 0x1FEA,0x0000,0x0000, /* AA8A */ +0x1FEB,0x0000,0x0000, 0x1FEC,0x0000,0x0000, 0x1FED,0x0000,0x0000, /* AA8D */ +0x1FEE,0x0000,0x0000, 0x1FEF,0x0000,0x0000, 0x1FF0,0x0000,0x0000, /* AA90 */ +0x1FF1,0x0000,0x0000, 0x1FF2,0x0000,0x0000, 0x1FF3,0x0000,0x0000, /* AA93 */ +0x1FF4,0x0000,0x0000, 0x1FF5,0x0000,0x0000, 0x1FF6,0x0000,0x0000, /* AA96 */ +0x1FF7,0x0000,0x0000, 0x1FF8,0x0000,0x0000, 0x1FF9,0x0000,0x0000, /* AA99 */ +0x1FFA,0x0000,0x0000, 0x1FFB,0x0000,0x0000, 0x1FFC,0x0000,0x0000, /* AA9C */ +0x1FFD,0x0000,0x0000, 0x1FFE,0x0000,0x0000, 0x1FFF,0x0000,0x0000, /* AA9F */ +0x2000,0x0000,0x0000, 0x2001,0x0000,0x0000, 0x2002,0x0000,0x0000, /* AAA2 */ +0x2003,0x0000,0x0000, 0x2004,0x0000,0x0000, 0x2005,0x0000,0x0000, /* AAA5 */ +0x2006,0x0000,0x0000, 0x2007,0x0000,0x0000, 0x2008,0x0000,0x0000, /* AAA8 */ +0x2009,0x0000,0x0000, 0x200A,0x0000,0x0000, 0x200B,0x0000,0x0000, /* AAAB */ +0x200C,0x0000,0x0000, 0x200D,0x0000,0x0000, 0x200E,0x0000,0x0000, /* AAAE */ +0x200F,0x0000,0x0000, 0x2010,0x0000,0x0000, 0x2011,0x0000,0x0000, /* AAB1 */ +0x2012,0x0000,0x0000, 0x2013,0x0000,0x0000, 0x2014,0x0000,0x0000, /* AAB4 */ +0x2015,0x0000,0x0000, 0x2016,0x0000,0x0000, 0x2017,0x0000,0x0000, /* AAB7 */ +0x2018,0x0000,0x0000, 0x2019,0x0000,0x0000, 0x201A,0x0000,0x0000, /* AABA */ +0x201B,0x0000,0x0000, 0x201C,0x0000,0x0000, 0x0000,0x0000,0x0000, /* AABD */ +0x201D,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x201E,0x0000,0x0000, /* AAC0 */ +0xFBC1,0xAAC3,0x0000, 0xFBC1,0xAAC4,0x0000, 0xFBC1,0xAAC5,0x0000, /* AAC3 */ +0xFBC1,0xAAC6,0x0000, 0xFBC1,0xAAC7,0x0000, 0xFBC1,0xAAC8,0x0000, /* AAC6 */ +0xFBC1,0xAAC9,0x0000, 0xFBC1,0xAACA,0x0000, 0xFBC1,0xAACB,0x0000, /* AAC9 */ +0xFBC1,0xAACC,0x0000, 0xFBC1,0xAACD,0x0000, 0xFBC1,0xAACE,0x0000, /* AACC */ +0xFBC1,0xAACF,0x0000, 0xFBC1,0xAAD0,0x0000, 0xFBC1,0xAAD1,0x0000, /* AACF */ +0xFBC1,0xAAD2,0x0000, 0xFBC1,0xAAD3,0x0000, 0xFBC1,0xAAD4,0x0000, /* AAD2 */ +0xFBC1,0xAAD5,0x0000, 0xFBC1,0xAAD6,0x0000, 0xFBC1,0xAAD7,0x0000, /* AAD5 */ +0xFBC1,0xAAD8,0x0000, 0xFBC1,0xAAD9,0x0000, 0xFBC1,0xAADA,0x0000, /* AAD8 */ +0x201F,0x0000,0x0000, 0x2020,0x0000,0x0000, 0x11D6,0x0000,0x0000, /* AADB */ +0x03A8,0x0000,0x0000, 0x03A9,0x0000,0x0000, 0xFBC1,0xAAE0,0x0000, /* AADE */ +0xFBC1,0xAAE1,0x0000, 0xFBC1,0xAAE2,0x0000, 0xFBC1,0xAAE3,0x0000, /* AAE1 */ +0xFBC1,0xAAE4,0x0000, 0xFBC1,0xAAE5,0x0000, 0xFBC1,0xAAE6,0x0000, /* AAE4 */ +0xFBC1,0xAAE7,0x0000, 0xFBC1,0xAAE8,0x0000, 0xFBC1,0xAAE9,0x0000, /* AAE7 */ +0xFBC1,0xAAEA,0x0000, 0xFBC1,0xAAEB,0x0000, 0xFBC1,0xAAEC,0x0000, /* AAEA */ +0xFBC1,0xAAED,0x0000, 0xFBC1,0xAAEE,0x0000, 0xFBC1,0xAAEF,0x0000, /* AAED */ +0xFBC1,0xAAF0,0x0000, 0xFBC1,0xAAF1,0x0000, 0xFBC1,0xAAF2,0x0000, /* AAF0 */ +0xFBC1,0xAAF3,0x0000, 0xFBC1,0xAAF4,0x0000, 0xFBC1,0xAAF5,0x0000, /* AAF3 */ +0xFBC1,0xAAF6,0x0000, 0xFBC1,0xAAF7,0x0000, 0xFBC1,0xAAF8,0x0000, /* AAF6 */ +0xFBC1,0xAAF9,0x0000, 0xFBC1,0xAAFA,0x0000, 0xFBC1,0xAAFB,0x0000, /* AAF9 */ +0xFBC1,0xAAFC,0x0000, 0xFBC1,0xAAFD,0x0000, 0xFBC1,0xAAFE,0x0000, /* AAFC */ +0xFBC1,0xAAFF,0x0000 }; + +uint16 uca520_p0AB[]= { /* AB00 (3 weights per char) */ +0xFBC1,0xAB00,0x0000, 0xFBC1,0xAB01,0x0000, 0xFBC1,0xAB02,0x0000, /* AB00 */ +0xFBC1,0xAB03,0x0000, 0xFBC1,0xAB04,0x0000, 0xFBC1,0xAB05,0x0000, /* AB03 */ +0xFBC1,0xAB06,0x0000, 0xFBC1,0xAB07,0x0000, 0xFBC1,0xAB08,0x0000, /* AB06 */ +0xFBC1,0xAB09,0x0000, 0xFBC1,0xAB0A,0x0000, 0xFBC1,0xAB0B,0x0000, /* AB09 */ +0xFBC1,0xAB0C,0x0000, 0xFBC1,0xAB0D,0x0000, 0xFBC1,0xAB0E,0x0000, /* AB0C */ +0xFBC1,0xAB0F,0x0000, 0xFBC1,0xAB10,0x0000, 0xFBC1,0xAB11,0x0000, /* AB0F */ +0xFBC1,0xAB12,0x0000, 0xFBC1,0xAB13,0x0000, 0xFBC1,0xAB14,0x0000, /* AB12 */ +0xFBC1,0xAB15,0x0000, 0xFBC1,0xAB16,0x0000, 0xFBC1,0xAB17,0x0000, /* AB15 */ +0xFBC1,0xAB18,0x0000, 0xFBC1,0xAB19,0x0000, 0xFBC1,0xAB1A,0x0000, /* AB18 */ +0xFBC1,0xAB1B,0x0000, 0xFBC1,0xAB1C,0x0000, 0xFBC1,0xAB1D,0x0000, /* AB1B */ +0xFBC1,0xAB1E,0x0000, 0xFBC1,0xAB1F,0x0000, 0xFBC1,0xAB20,0x0000, /* AB1E */ +0xFBC1,0xAB21,0x0000, 0xFBC1,0xAB22,0x0000, 0xFBC1,0xAB23,0x0000, /* AB21 */ +0xFBC1,0xAB24,0x0000, 0xFBC1,0xAB25,0x0000, 0xFBC1,0xAB26,0x0000, /* AB24 */ +0xFBC1,0xAB27,0x0000, 0xFBC1,0xAB28,0x0000, 0xFBC1,0xAB29,0x0000, /* AB27 */ +0xFBC1,0xAB2A,0x0000, 0xFBC1,0xAB2B,0x0000, 0xFBC1,0xAB2C,0x0000, /* AB2A */ +0xFBC1,0xAB2D,0x0000, 0xFBC1,0xAB2E,0x0000, 0xFBC1,0xAB2F,0x0000, /* AB2D */ +0xFBC1,0xAB30,0x0000, 0xFBC1,0xAB31,0x0000, 0xFBC1,0xAB32,0x0000, /* AB30 */ +0xFBC1,0xAB33,0x0000, 0xFBC1,0xAB34,0x0000, 0xFBC1,0xAB35,0x0000, /* AB33 */ +0xFBC1,0xAB36,0x0000, 0xFBC1,0xAB37,0x0000, 0xFBC1,0xAB38,0x0000, /* AB36 */ +0xFBC1,0xAB39,0x0000, 0xFBC1,0xAB3A,0x0000, 0xFBC1,0xAB3B,0x0000, /* AB39 */ +0xFBC1,0xAB3C,0x0000, 0xFBC1,0xAB3D,0x0000, 0xFBC1,0xAB3E,0x0000, /* AB3C */ +0xFBC1,0xAB3F,0x0000, 0xFBC1,0xAB40,0x0000, 0xFBC1,0xAB41,0x0000, /* AB3F */ +0xFBC1,0xAB42,0x0000, 0xFBC1,0xAB43,0x0000, 0xFBC1,0xAB44,0x0000, /* AB42 */ +0xFBC1,0xAB45,0x0000, 0xFBC1,0xAB46,0x0000, 0xFBC1,0xAB47,0x0000, /* AB45 */ +0xFBC1,0xAB48,0x0000, 0xFBC1,0xAB49,0x0000, 0xFBC1,0xAB4A,0x0000, /* AB48 */ +0xFBC1,0xAB4B,0x0000, 0xFBC1,0xAB4C,0x0000, 0xFBC1,0xAB4D,0x0000, /* AB4B */ +0xFBC1,0xAB4E,0x0000, 0xFBC1,0xAB4F,0x0000, 0xFBC1,0xAB50,0x0000, /* AB4E */ +0xFBC1,0xAB51,0x0000, 0xFBC1,0xAB52,0x0000, 0xFBC1,0xAB53,0x0000, /* AB51 */ +0xFBC1,0xAB54,0x0000, 0xFBC1,0xAB55,0x0000, 0xFBC1,0xAB56,0x0000, /* AB54 */ +0xFBC1,0xAB57,0x0000, 0xFBC1,0xAB58,0x0000, 0xFBC1,0xAB59,0x0000, /* AB57 */ +0xFBC1,0xAB5A,0x0000, 0xFBC1,0xAB5B,0x0000, 0xFBC1,0xAB5C,0x0000, /* AB5A */ +0xFBC1,0xAB5D,0x0000, 0xFBC1,0xAB5E,0x0000, 0xFBC1,0xAB5F,0x0000, /* AB5D */ +0xFBC1,0xAB60,0x0000, 0xFBC1,0xAB61,0x0000, 0xFBC1,0xAB62,0x0000, /* AB60 */ +0xFBC1,0xAB63,0x0000, 0xFBC1,0xAB64,0x0000, 0xFBC1,0xAB65,0x0000, /* AB63 */ +0xFBC1,0xAB66,0x0000, 0xFBC1,0xAB67,0x0000, 0xFBC1,0xAB68,0x0000, /* AB66 */ +0xFBC1,0xAB69,0x0000, 0xFBC1,0xAB6A,0x0000, 0xFBC1,0xAB6B,0x0000, /* AB69 */ +0xFBC1,0xAB6C,0x0000, 0xFBC1,0xAB6D,0x0000, 0xFBC1,0xAB6E,0x0000, /* AB6C */ +0xFBC1,0xAB6F,0x0000, 0xFBC1,0xAB70,0x0000, 0xFBC1,0xAB71,0x0000, /* AB6F */ +0xFBC1,0xAB72,0x0000, 0xFBC1,0xAB73,0x0000, 0xFBC1,0xAB74,0x0000, /* AB72 */ +0xFBC1,0xAB75,0x0000, 0xFBC1,0xAB76,0x0000, 0xFBC1,0xAB77,0x0000, /* AB75 */ +0xFBC1,0xAB78,0x0000, 0xFBC1,0xAB79,0x0000, 0xFBC1,0xAB7A,0x0000, /* AB78 */ +0xFBC1,0xAB7B,0x0000, 0xFBC1,0xAB7C,0x0000, 0xFBC1,0xAB7D,0x0000, /* AB7B */ +0xFBC1,0xAB7E,0x0000, 0xFBC1,0xAB7F,0x0000, 0xFBC1,0xAB80,0x0000, /* AB7E */ +0xFBC1,0xAB81,0x0000, 0xFBC1,0xAB82,0x0000, 0xFBC1,0xAB83,0x0000, /* AB81 */ +0xFBC1,0xAB84,0x0000, 0xFBC1,0xAB85,0x0000, 0xFBC1,0xAB86,0x0000, /* AB84 */ +0xFBC1,0xAB87,0x0000, 0xFBC1,0xAB88,0x0000, 0xFBC1,0xAB89,0x0000, /* AB87 */ +0xFBC1,0xAB8A,0x0000, 0xFBC1,0xAB8B,0x0000, 0xFBC1,0xAB8C,0x0000, /* AB8A */ +0xFBC1,0xAB8D,0x0000, 0xFBC1,0xAB8E,0x0000, 0xFBC1,0xAB8F,0x0000, /* AB8D */ +0xFBC1,0xAB90,0x0000, 0xFBC1,0xAB91,0x0000, 0xFBC1,0xAB92,0x0000, /* AB90 */ +0xFBC1,0xAB93,0x0000, 0xFBC1,0xAB94,0x0000, 0xFBC1,0xAB95,0x0000, /* AB93 */ +0xFBC1,0xAB96,0x0000, 0xFBC1,0xAB97,0x0000, 0xFBC1,0xAB98,0x0000, /* AB96 */ +0xFBC1,0xAB99,0x0000, 0xFBC1,0xAB9A,0x0000, 0xFBC1,0xAB9B,0x0000, /* AB99 */ +0xFBC1,0xAB9C,0x0000, 0xFBC1,0xAB9D,0x0000, 0xFBC1,0xAB9E,0x0000, /* AB9C */ +0xFBC1,0xAB9F,0x0000, 0xFBC1,0xABA0,0x0000, 0xFBC1,0xABA1,0x0000, /* AB9F */ +0xFBC1,0xABA2,0x0000, 0xFBC1,0xABA3,0x0000, 0xFBC1,0xABA4,0x0000, /* ABA2 */ +0xFBC1,0xABA5,0x0000, 0xFBC1,0xABA6,0x0000, 0xFBC1,0xABA7,0x0000, /* ABA5 */ +0xFBC1,0xABA8,0x0000, 0xFBC1,0xABA9,0x0000, 0xFBC1,0xABAA,0x0000, /* ABA8 */ +0xFBC1,0xABAB,0x0000, 0xFBC1,0xABAC,0x0000, 0xFBC1,0xABAD,0x0000, /* ABAB */ +0xFBC1,0xABAE,0x0000, 0xFBC1,0xABAF,0x0000, 0xFBC1,0xABB0,0x0000, /* ABAE */ +0xFBC1,0xABB1,0x0000, 0xFBC1,0xABB2,0x0000, 0xFBC1,0xABB3,0x0000, /* ABB1 */ +0xFBC1,0xABB4,0x0000, 0xFBC1,0xABB5,0x0000, 0xFBC1,0xABB6,0x0000, /* ABB4 */ +0xFBC1,0xABB7,0x0000, 0xFBC1,0xABB8,0x0000, 0xFBC1,0xABB9,0x0000, /* ABB7 */ +0xFBC1,0xABBA,0x0000, 0xFBC1,0xABBB,0x0000, 0xFBC1,0xABBC,0x0000, /* ABBA */ +0xFBC1,0xABBD,0x0000, 0xFBC1,0xABBE,0x0000, 0xFBC1,0xABBF,0x0000, /* ABBD */ +0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E54,0x0000,0x0000, /* ABC0 */ +0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E57,0x0000,0x0000, /* ABC3 */ +0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E5A,0x0000,0x0000, /* ABC6 */ +0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5D,0x0000,0x0000, /* ABC9 */ +0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E60,0x0000,0x0000, /* ABCC */ +0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E63,0x0000,0x0000, /* ABCF */ +0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, /* ABD2 */ +0x1E67,0x0000,0x0000, 0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, /* ABD5 */ +0x1E6A,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6C,0x0000,0x0000, /* ABD8 */ +0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E77,0x0000,0x0000, /* ABDB */ +0x1E78,0x0000,0x0000, 0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, /* ABDE */ +0x1E7B,0x0000,0x0000, 0x1E7C,0x0000,0x0000, 0x1E6D,0x0000,0x0000, /* ABE1 */ +0x1E6E,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E70,0x0000,0x0000, /* ABE4 */ +0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E73,0x0000,0x0000, /* ABE7 */ +0x1E74,0x0000,0x0000, 0x02AE,0x0000,0x0000, 0x0000,0x0000,0x0000, /* ABEA */ +0x1E7D,0x0000,0x0000, 0xFBC1,0xABEE,0x0000, 0xFBC1,0xABEF,0x0000, /* ABED */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* ABF0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* ABF3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* ABF6 */ +0x120E,0x0000,0x0000, 0xFBC1,0xABFA,0x0000, 0xFBC1,0xABFB,0x0000, /* ABF9 */ +0xFBC1,0xABFC,0x0000, 0xFBC1,0xABFD,0x0000, 0xFBC1,0xABFE,0x0000, /* ABFC */ +0xFBC1,0xABFF,0x0000 }; + +uint16 uca520_p0D7[]= { /* D700 (3 weights per char) */ +0xFBC1,0xD700,0x0000, 0xFBC1,0xD701,0x0000, 0xFBC1,0xD702,0x0000, /* D700 */ +0xFBC1,0xD703,0x0000, 0xFBC1,0xD704,0x0000, 0xFBC1,0xD705,0x0000, /* D703 */ +0xFBC1,0xD706,0x0000, 0xFBC1,0xD707,0x0000, 0xFBC1,0xD708,0x0000, /* D706 */ +0xFBC1,0xD709,0x0000, 0xFBC1,0xD70A,0x0000, 0xFBC1,0xD70B,0x0000, /* D709 */ +0xFBC1,0xD70C,0x0000, 0xFBC1,0xD70D,0x0000, 0xFBC1,0xD70E,0x0000, /* D70C */ +0xFBC1,0xD70F,0x0000, 0xFBC1,0xD710,0x0000, 0xFBC1,0xD711,0x0000, /* D70F */ +0xFBC1,0xD712,0x0000, 0xFBC1,0xD713,0x0000, 0xFBC1,0xD714,0x0000, /* D712 */ +0xFBC1,0xD715,0x0000, 0xFBC1,0xD716,0x0000, 0xFBC1,0xD717,0x0000, /* D715 */ +0xFBC1,0xD718,0x0000, 0xFBC1,0xD719,0x0000, 0xFBC1,0xD71A,0x0000, /* D718 */ +0xFBC1,0xD71B,0x0000, 0xFBC1,0xD71C,0x0000, 0xFBC1,0xD71D,0x0000, /* D71B */ +0xFBC1,0xD71E,0x0000, 0xFBC1,0xD71F,0x0000, 0xFBC1,0xD720,0x0000, /* D71E */ +0xFBC1,0xD721,0x0000, 0xFBC1,0xD722,0x0000, 0xFBC1,0xD723,0x0000, /* D721 */ +0xFBC1,0xD724,0x0000, 0xFBC1,0xD725,0x0000, 0xFBC1,0xD726,0x0000, /* D724 */ +0xFBC1,0xD727,0x0000, 0xFBC1,0xD728,0x0000, 0xFBC1,0xD729,0x0000, /* D727 */ +0xFBC1,0xD72A,0x0000, 0xFBC1,0xD72B,0x0000, 0xFBC1,0xD72C,0x0000, /* D72A */ +0xFBC1,0xD72D,0x0000, 0xFBC1,0xD72E,0x0000, 0xFBC1,0xD72F,0x0000, /* D72D */ +0xFBC1,0xD730,0x0000, 0xFBC1,0xD731,0x0000, 0xFBC1,0xD732,0x0000, /* D730 */ +0xFBC1,0xD733,0x0000, 0xFBC1,0xD734,0x0000, 0xFBC1,0xD735,0x0000, /* D733 */ +0xFBC1,0xD736,0x0000, 0xFBC1,0xD737,0x0000, 0xFBC1,0xD738,0x0000, /* D736 */ +0xFBC1,0xD739,0x0000, 0xFBC1,0xD73A,0x0000, 0xFBC1,0xD73B,0x0000, /* D739 */ +0xFBC1,0xD73C,0x0000, 0xFBC1,0xD73D,0x0000, 0xFBC1,0xD73E,0x0000, /* D73C */ +0xFBC1,0xD73F,0x0000, 0xFBC1,0xD740,0x0000, 0xFBC1,0xD741,0x0000, /* D73F */ +0xFBC1,0xD742,0x0000, 0xFBC1,0xD743,0x0000, 0xFBC1,0xD744,0x0000, /* D742 */ +0xFBC1,0xD745,0x0000, 0xFBC1,0xD746,0x0000, 0xFBC1,0xD747,0x0000, /* D745 */ +0xFBC1,0xD748,0x0000, 0xFBC1,0xD749,0x0000, 0xFBC1,0xD74A,0x0000, /* D748 */ +0xFBC1,0xD74B,0x0000, 0xFBC1,0xD74C,0x0000, 0xFBC1,0xD74D,0x0000, /* D74B */ +0xFBC1,0xD74E,0x0000, 0xFBC1,0xD74F,0x0000, 0xFBC1,0xD750,0x0000, /* D74E */ +0xFBC1,0xD751,0x0000, 0xFBC1,0xD752,0x0000, 0xFBC1,0xD753,0x0000, /* D751 */ +0xFBC1,0xD754,0x0000, 0xFBC1,0xD755,0x0000, 0xFBC1,0xD756,0x0000, /* D754 */ +0xFBC1,0xD757,0x0000, 0xFBC1,0xD758,0x0000, 0xFBC1,0xD759,0x0000, /* D757 */ +0xFBC1,0xD75A,0x0000, 0xFBC1,0xD75B,0x0000, 0xFBC1,0xD75C,0x0000, /* D75A */ +0xFBC1,0xD75D,0x0000, 0xFBC1,0xD75E,0x0000, 0xFBC1,0xD75F,0x0000, /* D75D */ +0xFBC1,0xD760,0x0000, 0xFBC1,0xD761,0x0000, 0xFBC1,0xD762,0x0000, /* D760 */ +0xFBC1,0xD763,0x0000, 0xFBC1,0xD764,0x0000, 0xFBC1,0xD765,0x0000, /* D763 */ +0xFBC1,0xD766,0x0000, 0xFBC1,0xD767,0x0000, 0xFBC1,0xD768,0x0000, /* D766 */ +0xFBC1,0xD769,0x0000, 0xFBC1,0xD76A,0x0000, 0xFBC1,0xD76B,0x0000, /* D769 */ +0xFBC1,0xD76C,0x0000, 0xFBC1,0xD76D,0x0000, 0xFBC1,0xD76E,0x0000, /* D76C */ +0xFBC1,0xD76F,0x0000, 0xFBC1,0xD770,0x0000, 0xFBC1,0xD771,0x0000, /* D76F */ +0xFBC1,0xD772,0x0000, 0xFBC1,0xD773,0x0000, 0xFBC1,0xD774,0x0000, /* D772 */ +0xFBC1,0xD775,0x0000, 0xFBC1,0xD776,0x0000, 0xFBC1,0xD777,0x0000, /* D775 */ +0xFBC1,0xD778,0x0000, 0xFBC1,0xD779,0x0000, 0xFBC1,0xD77A,0x0000, /* D778 */ +0xFBC1,0xD77B,0x0000, 0xFBC1,0xD77C,0x0000, 0xFBC1,0xD77D,0x0000, /* D77B */ +0xFBC1,0xD77E,0x0000, 0xFBC1,0xD77F,0x0000, 0xFBC1,0xD780,0x0000, /* D77E */ +0xFBC1,0xD781,0x0000, 0xFBC1,0xD782,0x0000, 0xFBC1,0xD783,0x0000, /* D781 */ +0xFBC1,0xD784,0x0000, 0xFBC1,0xD785,0x0000, 0xFBC1,0xD786,0x0000, /* D784 */ +0xFBC1,0xD787,0x0000, 0xFBC1,0xD788,0x0000, 0xFBC1,0xD789,0x0000, /* D787 */ +0xFBC1,0xD78A,0x0000, 0xFBC1,0xD78B,0x0000, 0xFBC1,0xD78C,0x0000, /* D78A */ +0xFBC1,0xD78D,0x0000, 0xFBC1,0xD78E,0x0000, 0xFBC1,0xD78F,0x0000, /* D78D */ +0xFBC1,0xD790,0x0000, 0xFBC1,0xD791,0x0000, 0xFBC1,0xD792,0x0000, /* D790 */ +0xFBC1,0xD793,0x0000, 0xFBC1,0xD794,0x0000, 0xFBC1,0xD795,0x0000, /* D793 */ +0xFBC1,0xD796,0x0000, 0xFBC1,0xD797,0x0000, 0xFBC1,0xD798,0x0000, /* D796 */ +0xFBC1,0xD799,0x0000, 0xFBC1,0xD79A,0x0000, 0xFBC1,0xD79B,0x0000, /* D799 */ +0xFBC1,0xD79C,0x0000, 0xFBC1,0xD79D,0x0000, 0xFBC1,0xD79E,0x0000, /* D79C */ +0xFBC1,0xD79F,0x0000, 0xFBC1,0xD7A0,0x0000, 0xFBC1,0xD7A1,0x0000, /* D79F */ +0xFBC1,0xD7A2,0x0000, 0xFBC1,0xD7A3,0x0000, 0xFBC1,0xD7A4,0x0000, /* D7A2 */ +0xFBC1,0xD7A5,0x0000, 0xFBC1,0xD7A6,0x0000, 0xFBC1,0xD7A7,0x0000, /* D7A5 */ +0xFBC1,0xD7A8,0x0000, 0xFBC1,0xD7A9,0x0000, 0xFBC1,0xD7AA,0x0000, /* D7A8 */ +0xFBC1,0xD7AB,0x0000, 0xFBC1,0xD7AC,0x0000, 0xFBC1,0xD7AD,0x0000, /* D7AB */ +0xFBC1,0xD7AE,0x0000, 0xFBC1,0xD7AF,0x0000, 0x2A75,0x0000,0x0000, /* D7AE */ +0x2A76,0x0000,0x0000, 0x2A77,0x0000,0x0000, 0x2A78,0x0000,0x0000, /* D7B1 */ +0x2A79,0x0000,0x0000, 0x2A7A,0x0000,0x0000, 0x2A7B,0x0000,0x0000, /* D7B4 */ +0x2A7C,0x0000,0x0000, 0x2A7D,0x0000,0x0000, 0x2A7E,0x0000,0x0000, /* D7B7 */ +0x2A7F,0x0000,0x0000, 0x2A80,0x0000,0x0000, 0x2A81,0x0000,0x0000, /* D7BA */ +0x2A82,0x0000,0x0000, 0x2A83,0x0000,0x0000, 0x2A84,0x0000,0x0000, /* D7BD */ +0x2A85,0x0000,0x0000, 0x2A86,0x0000,0x0000, 0x2A87,0x0000,0x0000, /* D7C0 */ +0x2A88,0x0000,0x0000, 0x2A89,0x0000,0x0000, 0x2A8A,0x0000,0x0000, /* D7C3 */ +0x2A8B,0x0000,0x0000, 0xFBC1,0xD7C7,0x0000, 0xFBC1,0xD7C8,0x0000, /* D7C6 */ +0xFBC1,0xD7C9,0x0000, 0xFBC1,0xD7CA,0x0000, 0x2AE4,0x0000,0x0000, /* D7C9 */ +0x2AE5,0x0000,0x0000, 0x2AE6,0x0000,0x0000, 0x2AE7,0x0000,0x0000, /* D7CC */ +0x2AE8,0x0000,0x0000, 0x2AE9,0x0000,0x0000, 0x2AEA,0x0000,0x0000, /* D7CF */ +0x2AEB,0x0000,0x0000, 0x2AEC,0x0000,0x0000, 0x2AED,0x0000,0x0000, /* D7D2 */ +0x2AEE,0x0000,0x0000, 0x2AEF,0x0000,0x0000, 0x2AF0,0x0000,0x0000, /* D7D5 */ +0x2AF1,0x0000,0x0000, 0x2AF2,0x0000,0x0000, 0x2AF3,0x0000,0x0000, /* D7D8 */ +0x2AF4,0x0000,0x0000, 0x2AF5,0x0000,0x0000, 0x2AF6,0x0000,0x0000, /* D7DB */ +0x2AF7,0x0000,0x0000, 0x2AF8,0x0000,0x0000, 0x2AF9,0x0000,0x0000, /* D7DE */ +0x2AFA,0x0000,0x0000, 0x2AFB,0x0000,0x0000, 0x2AFC,0x0000,0x0000, /* D7E1 */ +0x2AFD,0x0000,0x0000, 0x2AFE,0x0000,0x0000, 0x2AFF,0x0000,0x0000, /* D7E4 */ +0x2B00,0x0000,0x0000, 0x2B01,0x0000,0x0000, 0x2B02,0x0000,0x0000, /* D7E7 */ +0x2B03,0x0000,0x0000, 0x2B04,0x0000,0x0000, 0x2B05,0x0000,0x0000, /* D7EA */ +0x2B06,0x0000,0x0000, 0x2B07,0x0000,0x0000, 0x2B08,0x0000,0x0000, /* D7ED */ +0x2B09,0x0000,0x0000, 0x2B0A,0x0000,0x0000, 0x2B0B,0x0000,0x0000, /* D7F0 */ +0x2B0C,0x0000,0x0000, 0x2B0D,0x0000,0x0000, 0x2B0E,0x0000,0x0000, /* D7F3 */ +0x2B0F,0x0000,0x0000, 0x2B10,0x0000,0x0000, 0x2B11,0x0000,0x0000, /* D7F6 */ +0x2B12,0x0000,0x0000, 0x2B13,0x0000,0x0000, 0x2B14,0x0000,0x0000, /* D7F9 */ +0xFBC1,0xD7FC,0x0000, 0xFBC1,0xD7FD,0x0000, 0xFBC1,0xD7FE,0x0000, /* D7FC */ +0xFBC1,0xD7FF,0x0000 }; + +uint16 uca520_p0F9[]= { /* F900 (3 weights per char) */ +0xFB41,0x8C48,0x0000, 0xFB40,0xE6F4,0x0000, 0xFB41,0x8ECA,0x0000, /* F900 */ +0xFB41,0x8CC8,0x0000, 0xFB40,0xEED1,0x0000, 0xFB40,0xCE32,0x0000, /* F903 */ +0xFB40,0xD3E5,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, /* F906 */ +0xFB40,0xD951,0x0000, 0xFB41,0x91D1,0x0000, 0xFB40,0xD587,0x0000, /* F909 */ +0xFB40,0xD948,0x0000, 0xFB40,0xE1F6,0x0000, 0xFB40,0xF669,0x0000, /* F90C */ +0xFB40,0xFF85,0x0000, 0xFB41,0x863F,0x0000, 0xFB41,0x87BA,0x0000, /* F90F */ +0xFB41,0x88F8,0x0000, 0xFB41,0x908F,0x0000, 0xFB40,0xEA02,0x0000, /* F912 */ +0xFB40,0xED1B,0x0000, 0xFB40,0xF0D9,0x0000, 0xFB40,0xF3DE,0x0000, /* F915 */ +0xFB41,0x843D,0x0000, 0xFB41,0x916A,0x0000, 0xFB41,0x99F1,0x0000, /* F918 */ +0xFB40,0xCE82,0x0000, 0xFB40,0xD375,0x0000, 0xFB40,0xEB04,0x0000, /* F91B */ +0xFB40,0xF21B,0x0000, 0xFB41,0x862D,0x0000, 0xFB41,0x9E1E,0x0000, /* F91E */ +0xFB40,0xDD50,0x0000, 0xFB40,0xEFEB,0x0000, 0xFB41,0x85CD,0x0000, /* F921 */ +0xFB41,0x8964,0x0000, 0xFB40,0xE2C9,0x0000, 0xFB41,0x81D8,0x0000, /* F924 */ +0xFB41,0x881F,0x0000, 0xFB40,0xDECA,0x0000, 0xFB40,0xE717,0x0000, /* F927 */ +0xFB40,0xED6A,0x0000, 0xFB40,0xF2FC,0x0000, 0xFB41,0x90CE,0x0000, /* F92A */ +0xFB40,0xCF86,0x0000, 0xFB40,0xD1B7,0x0000, 0xFB40,0xD2DE,0x0000, /* F92D */ +0xFB40,0xE4C4,0x0000, 0xFB40,0xEAD3,0x0000, 0xFB40,0xF210,0x0000, /* F930 */ +0xFB40,0xF6E7,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x8606,0x0000, /* F933 */ +0xFB41,0x865C,0x0000, 0xFB41,0x8DEF,0x0000, 0xFB41,0x9732,0x0000, /* F936 */ +0xFB41,0x9B6F,0x0000, 0xFB41,0x9DFA,0x0000, 0xFB40,0xF88C,0x0000, /* F939 */ +0xFB40,0xF97F,0x0000, 0xFB40,0xFDA0,0x0000, 0xFB41,0x83C9,0x0000, /* F93C */ +0xFB41,0x9304,0x0000, 0xFB41,0x9E7F,0x0000, 0xFB41,0x8AD6,0x0000, /* F93F */ +0xFB40,0xD8DF,0x0000, 0xFB40,0xDF04,0x0000, 0xFB40,0xFC60,0x0000, /* F942 */ +0xFB41,0x807E,0x0000, 0xFB40,0xF262,0x0000, 0xFB40,0xF8CA,0x0000, /* F945 */ +0xFB41,0x8CC2,0x0000, 0xFB41,0x96F7,0x0000, 0xFB40,0xD8D8,0x0000, /* F948 */ +0xFB40,0xDC62,0x0000, 0xFB40,0xEA13,0x0000, 0xFB40,0xEDDA,0x0000, /* F94B */ +0xFB40,0xEF0F,0x0000, 0xFB40,0xFD2F,0x0000, 0xFB40,0xFE37,0x0000, /* F94E */ +0xFB41,0x964B,0x0000, 0xFB40,0xD2D2,0x0000, 0xFB41,0x808B,0x0000, /* F951 */ +0xFB40,0xD1DC,0x0000, 0xFB40,0xD1CC,0x0000, 0xFB40,0xFA1C,0x0000, /* F954 */ +0xFB40,0xFDBE,0x0000, 0xFB41,0x83F1,0x0000, 0xFB41,0x9675,0x0000, /* F957 */ +0xFB41,0x8B80,0x0000, 0xFB40,0xE2CF,0x0000, 0xFB40,0xEA02,0x0000, /* F95A */ +0xFB41,0x8AFE,0x0000, 0xFB40,0xCE39,0x0000, 0xFB40,0xDBE7,0x0000, /* F95D */ +0xFB40,0xE012,0x0000, 0xFB40,0xF387,0x0000, 0xFB40,0xF570,0x0000, /* F960 */ +0xFB40,0xD317,0x0000, 0xFB40,0xF8FB,0x0000, 0xFB40,0xCFBF,0x0000, /* F963 */ +0xFB40,0xDFA9,0x0000, 0xFB40,0xCE0D,0x0000, 0xFB40,0xECCC,0x0000, /* F966 */ +0xFB40,0xE578,0x0000, 0xFB40,0xFD22,0x0000, 0xFB40,0xD3C3,0x0000, /* F969 */ +0xFB40,0xD85E,0x0000, 0xFB40,0xF701,0x0000, 0xFB41,0x8449,0x0000, /* F96C */ +0xFB41,0x8AAA,0x0000, 0xFB40,0xEBBA,0x0000, 0xFB41,0x8FB0,0x0000, /* F96F */ +0xFB40,0xEC88,0x0000, 0xFB40,0xE2FE,0x0000, 0xFB41,0x82E5,0x0000, /* F972 */ +0xFB40,0xE3A0,0x0000, 0xFB40,0xF565,0x0000, 0xFB40,0xCEAE,0x0000, /* F975 */ +0xFB40,0xD169,0x0000, 0xFB40,0xD1C9,0x0000, 0xFB40,0xE881,0x0000, /* F978 */ +0xFB40,0xFCE7,0x0000, 0xFB41,0x826F,0x0000, 0xFB41,0x8AD2,0x0000, /* F97B */ +0xFB41,0x91CF,0x0000, 0xFB40,0xD2F5,0x0000, 0xFB40,0xD442,0x0000, /* F97E */ +0xFB40,0xD973,0x0000, 0xFB40,0xDEEC,0x0000, 0xFB40,0xE5C5,0x0000, /* F981 */ +0xFB40,0xEFFE,0x0000, 0xFB40,0xF92A,0x0000, 0xFB41,0x95AD,0x0000, /* F984 */ +0xFB41,0x9A6A,0x0000, 0xFB41,0x9E97,0x0000, 0xFB41,0x9ECE,0x0000, /* F987 */ +0xFB40,0xD29B,0x0000, 0xFB40,0xE6C6,0x0000, 0xFB40,0xEB77,0x0000, /* F98A */ +0xFB41,0x8F62,0x0000, 0xFB40,0xDE74,0x0000, 0xFB40,0xE190,0x0000, /* F98D */ +0xFB40,0xE200,0x0000, 0xFB40,0xE49A,0x0000, 0xFB40,0xEF23,0x0000, /* F990 */ +0xFB40,0xF149,0x0000, 0xFB40,0xF489,0x0000, 0xFB40,0xF9CA,0x0000, /* F993 */ +0xFB40,0xFDF4,0x0000, 0xFB41,0x806F,0x0000, 0xFB41,0x8F26,0x0000, /* F996 */ +0xFB41,0x84EE,0x0000, 0xFB41,0x9023,0x0000, 0xFB41,0x934A,0x0000, /* F999 */ +0xFB40,0xD217,0x0000, 0xFB40,0xD2A3,0x0000, 0xFB40,0xD4BD,0x0000, /* F99C */ +0xFB40,0xF0C8,0x0000, 0xFB41,0x88C2,0x0000, 0xFB41,0x8AAA,0x0000, /* F99F */ +0xFB40,0xDEC9,0x0000, 0xFB40,0xDFF5,0x0000, 0xFB40,0xE37B,0x0000, /* F9A2 */ +0xFB40,0xEBAE,0x0000, 0xFB40,0xFC3E,0x0000, 0xFB40,0xF375,0x0000, /* F9A5 */ +0xFB40,0xCEE4,0x0000, 0xFB40,0xD6F9,0x0000, 0xFB40,0xDBE7,0x0000, /* F9A8 */ +0xFB40,0xDDBA,0x0000, 0xFB40,0xE01C,0x0000, 0xFB40,0xF3B2,0x0000, /* F9AB */ +0xFB40,0xF469,0x0000, 0xFB40,0xFF9A,0x0000, 0xFB41,0x8046,0x0000, /* F9AE */ +0xFB41,0x9234,0x0000, 0xFB41,0x96F6,0x0000, 0xFB41,0x9748,0x0000, /* F9B1 */ +0xFB41,0x9818,0x0000, 0xFB40,0xCF8B,0x0000, 0xFB40,0xF9AE,0x0000, /* F9B4 */ +0xFB41,0x91B4,0x0000, 0xFB41,0x96B8,0x0000, 0xFB40,0xE0E1,0x0000, /* F9B7 */ +0xFB40,0xCE86,0x0000, 0xFB40,0xD0DA,0x0000, 0xFB40,0xDBEE,0x0000, /* F9BA */ +0xFB40,0xDC3F,0x0000, 0xFB40,0xE599,0x0000, 0xFB40,0xEA02,0x0000, /* F9BD */ +0xFB40,0xF1CE,0x0000, 0xFB40,0xF642,0x0000, 0xFB41,0x84FC,0x0000, /* F9C0 */ +0xFB41,0x907C,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB40,0xE688,0x0000, /* F9C3 */ +0xFB41,0x962E,0x0000, 0xFB40,0xD289,0x0000, 0xFB40,0xE77B,0x0000, /* F9C6 */ +0xFB40,0xE7F3,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEE9C,0x0000, /* F9C9 */ +0xFB40,0xF409,0x0000, 0xFB40,0xF559,0x0000, 0xFB40,0xF86B,0x0000, /* F9CC */ +0xFB40,0xFD10,0x0000, 0xFB41,0x985E,0x0000, 0xFB40,0xD16D,0x0000, /* F9CF */ +0xFB40,0xE22E,0x0000, 0xFB41,0x9678,0x0000, 0xFB40,0xD02B,0x0000, /* F9D2 */ +0xFB40,0xDD19,0x0000, 0xFB40,0xEDEA,0x0000, 0xFB41,0x8F2A,0x0000, /* F9D5 */ +0xFB40,0xDF8B,0x0000, 0xFB40,0xE144,0x0000, 0xFB40,0xE817,0x0000, /* F9D8 */ +0xFB40,0xF387,0x0000, 0xFB41,0x9686,0x0000, 0xFB40,0xD229,0x0000, /* F9DB */ +0xFB40,0xD40F,0x0000, 0xFB40,0xDC65,0x0000, 0xFB40,0xE613,0x0000, /* F9DE */ +0xFB40,0xE74E,0x0000, 0xFB40,0xE8A8,0x0000, 0xFB40,0xECE5,0x0000, /* F9E1 */ +0xFB40,0xF406,0x0000, 0xFB40,0xF5E2,0x0000, 0xFB40,0xFF79,0x0000, /* F9E4 */ +0xFB41,0x88CF,0x0000, 0xFB41,0x88E1,0x0000, 0xFB41,0x91CC,0x0000, /* F9E7 */ +0xFB41,0x96E2,0x0000, 0xFB40,0xD33F,0x0000, 0xFB40,0xEEBA,0x0000, /* F9EA */ +0xFB40,0xD41D,0x0000, 0xFB40,0xF1D0,0x0000, 0xFB40,0xF498,0x0000, /* F9ED */ +0xFB41,0x85FA,0x0000, 0xFB41,0x96A3,0x0000, 0xFB41,0x9C57,0x0000, /* F9F0 */ +0xFB41,0x9E9F,0x0000, 0xFB40,0xE797,0x0000, 0xFB40,0xEDCB,0x0000, /* F9F3 */ +0xFB41,0x81E8,0x0000, 0xFB40,0xFACB,0x0000, 0xFB40,0xFB20,0x0000, /* F9F6 */ +0xFB40,0xFC92,0x0000, 0xFB40,0xF2C0,0x0000, 0xFB40,0xF099,0x0000, /* F9F9 */ +0xFB41,0x8B58,0x0000, 0xFB40,0xCEC0,0x0000, 0xFB41,0x8336,0x0000, /* F9FC */ +0xFB40,0xD23A,0x0000 }; + +uint16 uca520_p0FA[]= { /* FA00 (3 weights per char) */ +0xFB40,0xD207,0x0000, 0xFB40,0xDEA6,0x0000, 0xFB40,0xE2D3,0x0000, /* FA00 */ +0xFB40,0xFCD6,0x0000, 0xFB40,0xDB85,0x0000, 0xFB40,0xED1E,0x0000, /* FA03 */ +0xFB40,0xE6B4,0x0000, 0xFB41,0x8F3B,0x0000, 0xFB41,0x884C,0x0000, /* FA06 */ +0xFB41,0x964D,0x0000, 0xFB41,0x898B,0x0000, 0xFB40,0xDED3,0x0000, /* FA09 */ +0xFB40,0xD140,0x0000, 0xFB40,0xD5C0,0x0000, 0xFB41,0xFA0E,0x0000, /* FA0C */ +0xFB41,0xFA0F,0x0000, 0xFB40,0xD85A,0x0000, 0xFB41,0xFA11,0x0000, /* FA0F */ +0xFB40,0xE674,0x0000, 0xFB41,0xFA13,0x0000, 0xFB41,0xFA14,0x0000, /* FA12 */ +0xFB40,0xD1DE,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF6CA,0x0000, /* FA15 */ +0xFB40,0xF93C,0x0000, 0xFB40,0xF95E,0x0000, 0xFB40,0xF965,0x0000, /* FA18 */ +0xFB40,0xF98F,0x0000, 0xFB41,0x9756,0x0000, 0xFB40,0xFCBE,0x0000, /* FA1B */ +0xFB40,0xFFBD,0x0000, 0xFB41,0xFA1F,0x0000, 0xFB41,0x8612,0x0000, /* FA1E */ +0xFB41,0xFA21,0x0000, 0xFB41,0x8AF8,0x0000, 0xFB41,0xFA23,0x0000, /* FA21 */ +0xFB41,0xFA24,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x90FD,0x0000, /* FA24 */ +0xFB41,0xFA27,0x0000, 0xFB41,0xFA28,0x0000, 0xFB41,0xFA29,0x0000, /* FA27 */ +0xFB41,0x98EF,0x0000, 0xFB41,0x98FC,0x0000, 0xFB41,0x9928,0x0000, /* FA2A */ +0xFB41,0x9DB4,0x0000, 0xFBC1,0xFA2E,0x0000, 0xFBC1,0xFA2F,0x0000, /* FA2D */ +0xFB40,0xCFAE,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD14D,0x0000, /* FA30 */ +0xFB40,0xD2C9,0x0000, 0xFB40,0xD2E4,0x0000, 0xFB40,0xD351,0x0000, /* FA33 */ +0xFB40,0xD59D,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD668,0x0000, /* FA36 */ +0xFB40,0xD840,0x0000, 0xFB40,0xD8A8,0x0000, 0xFB40,0xDC64,0x0000, /* FA39 */ +0xFB40,0xDC6E,0x0000, 0xFB40,0xE094,0x0000, 0xFB40,0xE168,0x0000, /* FA3C */ +0xFB40,0xE18E,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE54F,0x0000, /* FA3F */ +0xFB40,0xE5E2,0x0000, 0xFB40,0xE691,0x0000, 0xFB40,0xE885,0x0000, /* FA42 */ +0xFB40,0xED77,0x0000, 0xFB40,0xEE1A,0x0000, 0xFB40,0xEF22,0x0000, /* FA45 */ +0xFB40,0xF16E,0x0000, 0xFB40,0xF22B,0x0000, 0xFB40,0xF422,0x0000, /* FA48 */ +0xFB40,0xF891,0x0000, 0xFB40,0xF93E,0x0000, 0xFB40,0xF949,0x0000, /* FA4B */ +0xFB40,0xF948,0x0000, 0xFB40,0xF950,0x0000, 0xFB40,0xF956,0x0000, /* FA4E */ +0xFB40,0xF95D,0x0000, 0xFB40,0xF98D,0x0000, 0xFB40,0xF98E,0x0000, /* FA51 */ +0xFB40,0xFA40,0x0000, 0xFB40,0xFA81,0x0000, 0xFB40,0xFBC0,0x0000, /* FA54 */ +0xFB40,0xFDF4,0x0000, 0xFB40,0xFE09,0x0000, 0xFB40,0xFE41,0x0000, /* FA57 */ +0xFB40,0xFF72,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x81ED,0x0000, /* FA5A */ +0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8457,0x0000, /* FA5D */ +0xFB41,0x8910,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8B01,0x0000, /* FA60 */ +0xFB41,0x8B39,0x0000, 0xFB41,0x8CD3,0x0000, 0xFB41,0x8D08,0x0000, /* FA63 */ +0xFB41,0x8FB6,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x96E3,0x0000, /* FA66 */ +0xFB41,0x97FF,0x0000, 0xFB41,0x983B,0x0000, 0xFB40,0xE075,0x0000, /* FA69 */ +0xFB84,0xC2EE,0x0000, 0xFB41,0x8218,0x0000, 0xFBC1,0xFA6E,0x0000, /* FA6C */ +0xFBC1,0xFA6F,0x0000, 0xFB40,0xCE26,0x0000, 0xFB40,0xD1B5,0x0000, /* FA6F */ +0xFB40,0xD168,0x0000, 0xFB40,0xCF80,0x0000, 0xFB40,0xD145,0x0000, /* FA72 */ +0xFB40,0xD180,0x0000, 0xFB40,0xD2C7,0x0000, 0xFB40,0xD2FA,0x0000, /* FA75 */ +0xFB40,0xD59D,0x0000, 0xFB40,0xD555,0x0000, 0xFB40,0xD599,0x0000, /* FA78 */ +0xFB40,0xD5E2,0x0000, 0xFB40,0xD85A,0x0000, 0xFB40,0xD8B3,0x0000, /* FA7B */ +0xFB40,0xD944,0x0000, 0xFB40,0xD954,0x0000, 0xFB40,0xDA62,0x0000, /* FA7E */ +0xFB40,0xDB28,0x0000, 0xFB40,0xDED2,0x0000, 0xFB40,0xDED9,0x0000, /* FA81 */ +0xFB40,0xDF69,0x0000, 0xFB40,0xDFAD,0x0000, 0xFB40,0xE0D8,0x0000, /* FA84 */ +0xFB40,0xE14E,0x0000, 0xFB40,0xE108,0x0000, 0xFB40,0xE18E,0x0000, /* FA87 */ +0xFB40,0xE160,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE234,0x0000, /* FA8A */ +0xFB40,0xE3C4,0x0000, 0xFB40,0xE41C,0x0000, 0xFB40,0xE452,0x0000, /* FA8D */ +0xFB40,0xE556,0x0000, 0xFB40,0xE674,0x0000, 0xFB40,0xE717,0x0000, /* FA90 */ +0xFB40,0xE71B,0x0000, 0xFB40,0xE756,0x0000, 0xFB40,0xEB79,0x0000, /* FA93 */ +0xFB40,0xEBBA,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEEDB,0x0000, /* FA96 */ +0xFB40,0xEECB,0x0000, 0xFB40,0xEF22,0x0000, 0xFB40,0xF01E,0x0000, /* FA99 */ +0xFB40,0xF16E,0x0000, 0xFB40,0xF7A7,0x0000, 0xFB40,0xF235,0x0000, /* FA9C */ +0xFB40,0xF2AF,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF471,0x0000, /* FA9F */ +0xFB40,0xF506,0x0000, 0xFB40,0xF53B,0x0000, 0xFB40,0xF61D,0x0000, /* FAA2 */ +0xFB40,0xF61F,0x0000, 0xFB40,0xF6CA,0x0000, 0xFB40,0xF6DB,0x0000, /* FAA5 */ +0xFB40,0xF6F4,0x0000, 0xFB40,0xF74A,0x0000, 0xFB40,0xF740,0x0000, /* FAA8 */ +0xFB40,0xF8CC,0x0000, 0xFB40,0xFAB1,0x0000, 0xFB40,0xFBC0,0x0000, /* FAAB */ +0xFB40,0xFC7B,0x0000, 0xFB40,0xFD5B,0x0000, 0xFB40,0xFDF4,0x0000, /* FAAE */ +0xFB40,0xFF3E,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x8352,0x0000, /* FAB1 */ +0xFB41,0x83EF,0x0000, 0xFB41,0x8779,0x0000, 0xFB41,0x8941,0x0000, /* FAB4 */ +0xFB41,0x8986,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8ABF,0x0000, /* FAB7 */ +0xFB41,0x8AF8,0x0000, 0xFB41,0x8ACB,0x0000, 0xFB41,0x8B01,0x0000, /* FABA */ +0xFB41,0x8AFE,0x0000, 0xFB41,0x8AED,0x0000, 0xFB41,0x8B39,0x0000, /* FABD */ +0xFB41,0x8B8A,0x0000, 0xFB41,0x8D08,0x0000, 0xFB41,0x8F38,0x0000, /* FAC0 */ +0xFB41,0x9072,0x0000, 0xFB41,0x9199,0x0000, 0xFB41,0x9276,0x0000, /* FAC3 */ +0xFB41,0x967C,0x0000, 0xFB41,0x96E3,0x0000, 0xFB41,0x9756,0x0000, /* FAC6 */ +0xFB41,0x97DB,0x0000, 0xFB41,0x97FF,0x0000, 0xFB41,0x980B,0x0000, /* FAC9 */ +0xFB41,0x983B,0x0000, 0xFB41,0x9B12,0x0000, 0xFB41,0x9F9C,0x0000, /* FACC */ +0xFB84,0xA84A,0x0000, 0xFB84,0xA844,0x0000, 0xFB84,0xB3D5,0x0000, /* FACF */ +0xFB80,0xBB9D,0x0000, 0xFB80,0xC018,0x0000, 0xFB80,0xC039,0x0000, /* FAD2 */ +0xFB84,0xD249,0x0000, 0xFB84,0xDCD0,0x0000, 0xFB84,0xFED3,0x0000, /* FAD5 */ +0xFB41,0x9F43,0x0000, 0xFB41,0x9F8E,0x0000, 0xFBC1,0xFADA,0x0000, /* FAD8 */ +0xFBC1,0xFADB,0x0000, 0xFBC1,0xFADC,0x0000, 0xFBC1,0xFADD,0x0000, /* FADB */ +0xFBC1,0xFADE,0x0000, 0xFBC1,0xFADF,0x0000, 0xFBC1,0xFAE0,0x0000, /* FADE */ +0xFBC1,0xFAE1,0x0000, 0xFBC1,0xFAE2,0x0000, 0xFBC1,0xFAE3,0x0000, /* FAE1 */ +0xFBC1,0xFAE4,0x0000, 0xFBC1,0xFAE5,0x0000, 0xFBC1,0xFAE6,0x0000, /* FAE4 */ +0xFBC1,0xFAE7,0x0000, 0xFBC1,0xFAE8,0x0000, 0xFBC1,0xFAE9,0x0000, /* FAE7 */ +0xFBC1,0xFAEA,0x0000, 0xFBC1,0xFAEB,0x0000, 0xFBC1,0xFAEC,0x0000, /* FAEA */ +0xFBC1,0xFAED,0x0000, 0xFBC1,0xFAEE,0x0000, 0xFBC1,0xFAEF,0x0000, /* FAED */ +0xFBC1,0xFAF0,0x0000, 0xFBC1,0xFAF1,0x0000, 0xFBC1,0xFAF2,0x0000, /* FAF0 */ +0xFBC1,0xFAF3,0x0000, 0xFBC1,0xFAF4,0x0000, 0xFBC1,0xFAF5,0x0000, /* FAF3 */ +0xFBC1,0xFAF6,0x0000, 0xFBC1,0xFAF7,0x0000, 0xFBC1,0xFAF8,0x0000, /* FAF6 */ +0xFBC1,0xFAF9,0x0000, 0xFBC1,0xFAFA,0x0000, 0xFBC1,0xFAFB,0x0000, /* FAF9 */ +0xFBC1,0xFAFC,0x0000, 0xFBC1,0xFAFD,0x0000, 0xFBC1,0xFAFE,0x0000, /* FAFC */ +0xFBC1,0xFAFF,0x0000 }; + +uint16 uca520_p0FB[]= { /* FB00 (4 weights per char) */ +0x12A3,0x12A3,0x0000,0x0000, 0x12A3,0x12EC,0x0000,0x0000, /* FB00 */ +0x12A3,0x1330,0x0000,0x0000, 0x12A3,0x12A3,0x12EC,0x0000, /* FB02 */ +0x12A3,0x12A3,0x1330,0x0000, 0x1410,0x1433,0x0000,0x0000, /* FB04 */ +0x1410,0x1433,0x0000,0x0000, 0xFBC1,0xFB07,0x0000,0x0000, /* FB06 */ +0xFBC1,0xFB08,0x0000,0x0000, 0xFBC1,0xFB09,0x0000,0x0000, /* FB08 */ +0xFBC1,0xFB0A,0x0000,0x0000, 0xFBC1,0xFB0B,0x0000,0x0000, /* FB0A */ +0xFBC1,0xFB0C,0x0000,0x0000, 0xFBC1,0xFB0D,0x0000,0x0000, /* FB0C */ +0xFBC1,0xFB0E,0x0000,0x0000, 0xFBC1,0xFB0F,0x0000,0x0000, /* FB0E */ +0xFBC1,0xFB10,0x0000,0x0000, 0xFBC1,0xFB11,0x0000,0x0000, /* FB10 */ +0xFBC1,0xFB12,0x0000,0x0000, 0x1848,0x184A,0x0000,0x0000, /* FB12 */ +0x1848,0x1839,0x0000,0x0000, 0x1848,0x183F,0x0000,0x0000, /* FB14 */ +0x1852,0x184A,0x0000,0x0000, 0x1848,0x1841,0x0000,0x0000, /* FB16 */ +0xFBC1,0xFB18,0x0000,0x0000, 0xFBC1,0xFB19,0x0000,0x0000, /* FB18 */ +0xFBC1,0xFB1A,0x0000,0x0000, 0xFBC1,0xFB1B,0x0000,0x0000, /* FB1A */ +0xFBC1,0xFB1C,0x0000,0x0000, 0x1865,0x0000,0x0000,0x0000, /* FB1C */ +0x0000,0x0000,0x0000,0x0000, 0x1865,0x1865,0x0000,0x0000, /* FB1E */ +0x186B,0x0000,0x0000,0x0000, 0x185C,0x0000,0x0000,0x0000, /* FB20 */ +0x185F,0x0000,0x0000,0x0000, 0x1860,0x0000,0x0000,0x0000, /* FB22 */ +0x1866,0x0000,0x0000,0x0000, 0x1867,0x0000,0x0000,0x0000, /* FB24 */ +0x1868,0x0000,0x0000,0x0000, 0x186F,0x0000,0x0000,0x0000, /* FB26 */ +0x1871,0x0000,0x0000,0x0000, 0x0550,0x0000,0x0000,0x0000, /* FB28 */ +0x1870,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB2A */ +0x1870,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB2C */ +0x185C,0x0000,0x0000,0x0000, 0x185C,0x0000,0x0000,0x0000, /* FB2E */ +0x185C,0x0000,0x0000,0x0000, 0x185D,0x0000,0x0000,0x0000, /* FB30 */ +0x185E,0x0000,0x0000,0x0000, 0x185F,0x0000,0x0000,0x0000, /* FB32 */ +0x1860,0x0000,0x0000,0x0000, 0x1861,0x0000,0x0000,0x0000, /* FB34 */ +0x1862,0x0000,0x0000,0x0000, 0xFBC1,0xFB37,0x0000,0x0000, /* FB36 */ +0x1864,0x0000,0x0000,0x0000, 0x1865,0x0000,0x0000,0x0000, /* FB38 */ +0x1866,0x0000,0x0000,0x0000, 0x1866,0x0000,0x0000,0x0000, /* FB3A */ +0x1867,0x0000,0x0000,0x0000, 0xFBC1,0xFB3D,0x0000,0x0000, /* FB3C */ +0x1868,0x0000,0x0000,0x0000, 0xFBC1,0xFB3F,0x0000,0x0000, /* FB3E */ +0x1869,0x0000,0x0000,0x0000, 0x186A,0x0000,0x0000,0x0000, /* FB40 */ +0xFBC1,0xFB42,0x0000,0x0000, 0x186C,0x0000,0x0000,0x0000, /* FB42 */ +0x186C,0x0000,0x0000,0x0000, 0xFBC1,0xFB45,0x0000,0x0000, /* FB44 */ +0x186D,0x0000,0x0000,0x0000, 0x186E,0x0000,0x0000,0x0000, /* FB46 */ +0x186F,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB48 */ +0x1871,0x0000,0x0000,0x0000, 0x1861,0x0000,0x0000,0x0000, /* FB4A */ +0x185D,0x0000,0x0000,0x0000, 0x1866,0x0000,0x0000,0x0000, /* FB4C */ +0x186C,0x0000,0x0000,0x0000, 0x185C,0x1867,0x0000,0x0000, /* FB4E */ +0x18A6,0x0000,0x0000,0x0000, 0x18A6,0x0000,0x0000,0x0000, /* FB50 */ +0x18B0,0x0000,0x0000,0x0000, 0x18B0,0x0000,0x0000,0x0000, /* FB52 */ +0x18B0,0x0000,0x0000,0x0000, 0x18B0,0x0000,0x0000,0x0000, /* FB54 */ +0x18B1,0x0000,0x0000,0x0000, 0x18B1,0x0000,0x0000,0x0000, /* FB56 */ +0x18B1,0x0000,0x0000,0x0000, 0x18B1,0x0000,0x0000,0x0000, /* FB58 */ +0x18B2,0x0000,0x0000,0x0000, 0x18B2,0x0000,0x0000,0x0000, /* FB5A */ +0x18B2,0x0000,0x0000,0x0000, 0x18B2,0x0000,0x0000,0x0000, /* FB5C */ +0x18BE,0x0000,0x0000,0x0000, 0x18BE,0x0000,0x0000,0x0000, /* FB5E */ +0x18BE,0x0000,0x0000,0x0000, 0x18BE,0x0000,0x0000,0x0000, /* FB60 */ +0x18C1,0x0000,0x0000,0x0000, 0x18C1,0x0000,0x0000,0x0000, /* FB62 */ +0x18C1,0x0000,0x0000,0x0000, 0x18C1,0x0000,0x0000,0x0000, /* FB64 */ +0x18BD,0x0000,0x0000,0x0000, 0x18BD,0x0000,0x0000,0x0000, /* FB66 */ +0x18BD,0x0000,0x0000,0x0000, 0x18BD,0x0000,0x0000,0x0000, /* FB68 */ +0x190F,0x0000,0x0000,0x0000, 0x190F,0x0000,0x0000,0x0000, /* FB6A */ +0x190F,0x0000,0x0000,0x0000, 0x190F,0x0000,0x0000,0x0000, /* FB6C */ +0x1911,0x0000,0x0000,0x0000, 0x1911,0x0000,0x0000,0x0000, /* FB6E */ +0x1911,0x0000,0x0000,0x0000, 0x1911,0x0000,0x0000,0x0000, /* FB70 */ +0x18C4,0x0000,0x0000,0x0000, 0x18C4,0x0000,0x0000,0x0000, /* FB72 */ +0x18C4,0x0000,0x0000,0x0000, 0x18C4,0x0000,0x0000,0x0000, /* FB74 */ +0x18C3,0x0000,0x0000,0x0000, 0x18C3,0x0000,0x0000,0x0000, /* FB76 */ +0x18C3,0x0000,0x0000,0x0000, 0x18C3,0x0000,0x0000,0x0000, /* FB78 */ +0x18C5,0x0000,0x0000,0x0000, 0x18C5,0x0000,0x0000,0x0000, /* FB7A */ +0x18C5,0x0000,0x0000,0x0000, 0x18C5,0x0000,0x0000,0x0000, /* FB7C */ +0x18C7,0x0000,0x0000,0x0000, 0x18C7,0x0000,0x0000,0x0000, /* FB7E */ +0x18C7,0x0000,0x0000,0x0000, 0x18C7,0x0000,0x0000,0x0000, /* FB80 */ +0x18DA,0x0000,0x0000,0x0000, 0x18DA,0x0000,0x0000,0x0000, /* FB82 */ +0x18D9,0x0000,0x0000,0x0000, 0x18D9,0x0000,0x0000,0x0000, /* FB84 */ +0x18DB,0x0000,0x0000,0x0000, 0x18DB,0x0000,0x0000,0x0000, /* FB86 */ +0x18D5,0x0000,0x0000,0x0000, 0x18D5,0x0000,0x0000,0x0000, /* FB88 */ +0x18EA,0x0000,0x0000,0x0000, 0x18EA,0x0000,0x0000,0x0000, /* FB8A */ +0x18E3,0x0000,0x0000,0x0000, 0x18E3,0x0000,0x0000,0x0000, /* FB8C */ +0x1919,0x0000,0x0000,0x0000, 0x1919,0x0000,0x0000,0x0000, /* FB8E */ +0x1919,0x0000,0x0000,0x0000, 0x1919,0x0000,0x0000,0x0000, /* FB90 */ +0x1920,0x0000,0x0000,0x0000, 0x1920,0x0000,0x0000,0x0000, /* FB92 */ +0x1920,0x0000,0x0000,0x0000, 0x1920,0x0000,0x0000,0x0000, /* FB94 */ +0x1924,0x0000,0x0000,0x0000, 0x1924,0x0000,0x0000,0x0000, /* FB96 */ +0x1924,0x0000,0x0000,0x0000, 0x1924,0x0000,0x0000,0x0000, /* FB98 */ +0x1922,0x0000,0x0000,0x0000, 0x1922,0x0000,0x0000,0x0000, /* FB9A */ +0x1922,0x0000,0x0000,0x0000, 0x1922,0x0000,0x0000,0x0000, /* FB9C */ +0x1935,0x0000,0x0000,0x0000, 0x1935,0x0000,0x0000,0x0000, /* FB9E */ +0x1936,0x0000,0x0000,0x0000, 0x1936,0x0000,0x0000,0x0000, /* FBA0 */ +0x1936,0x0000,0x0000,0x0000, 0x1936,0x0000,0x0000,0x0000, /* FBA2 */ +0x1942,0x0000,0x0000,0x0000, 0x1942,0x0000,0x0000,0x0000, /* FBA4 */ +0x193F,0x0000,0x0000,0x0000, 0x193F,0x0000,0x0000,0x0000, /* FBA6 */ +0x193F,0x0000,0x0000,0x0000, 0x193F,0x0000,0x0000,0x0000, /* FBA8 */ +0x193E,0x0000,0x0000,0x0000, 0x193E,0x0000,0x0000,0x0000, /* FBAA */ +0x193E,0x0000,0x0000,0x0000, 0x193E,0x0000,0x0000,0x0000, /* FBAC */ +0x195C,0x0000,0x0000,0x0000, 0x195C,0x0000,0x0000,0x0000, /* FBAE */ +0x195C,0x0000,0x0000,0x0000, 0x195C,0x0000,0x0000,0x0000, /* FBB0 */ +0xFBC1,0xFBB2,0x0000,0x0000, 0xFBC1,0xFBB3,0x0000,0x0000, /* FBB2 */ +0xFBC1,0xFBB4,0x0000,0x0000, 0xFBC1,0xFBB5,0x0000,0x0000, /* FBB4 */ +0xFBC1,0xFBB6,0x0000,0x0000, 0xFBC1,0xFBB7,0x0000,0x0000, /* FBB6 */ +0xFBC1,0xFBB8,0x0000,0x0000, 0xFBC1,0xFBB9,0x0000,0x0000, /* FBB8 */ +0xFBC1,0xFBBA,0x0000,0x0000, 0xFBC1,0xFBBB,0x0000,0x0000, /* FBBA */ +0xFBC1,0xFBBC,0x0000,0x0000, 0xFBC1,0xFBBD,0x0000,0x0000, /* FBBC */ +0xFBC1,0xFBBE,0x0000,0x0000, 0xFBC1,0xFBBF,0x0000,0x0000, /* FBBE */ +0xFBC1,0xFBC0,0x0000,0x0000, 0xFBC1,0xFBC1,0x0000,0x0000, /* FBC0 */ +0xFBC1,0xFBC2,0x0000,0x0000, 0xFBC1,0xFBC3,0x0000,0x0000, /* FBC2 */ +0xFBC1,0xFBC4,0x0000,0x0000, 0xFBC1,0xFBC5,0x0000,0x0000, /* FBC4 */ +0xFBC1,0xFBC6,0x0000,0x0000, 0xFBC1,0xFBC7,0x0000,0x0000, /* FBC6 */ +0xFBC1,0xFBC8,0x0000,0x0000, 0xFBC1,0xFBC9,0x0000,0x0000, /* FBC8 */ +0xFBC1,0xFBCA,0x0000,0x0000, 0xFBC1,0xFBCB,0x0000,0x0000, /* FBCA */ +0xFBC1,0xFBCC,0x0000,0x0000, 0xFBC1,0xFBCD,0x0000,0x0000, /* FBCC */ +0xFBC1,0xFBCE,0x0000,0x0000, 0xFBC1,0xFBCF,0x0000,0x0000, /* FBCE */ +0xFBC1,0xFBD0,0x0000,0x0000, 0xFBC1,0xFBD1,0x0000,0x0000, /* FBD0 */ +0xFBC1,0xFBD2,0x0000,0x0000, 0x191E,0x0000,0x0000,0x0000, /* FBD2 */ +0x191E,0x0000,0x0000,0x0000, 0x191E,0x0000,0x0000,0x0000, /* FBD4 */ +0x191E,0x0000,0x0000,0x0000, 0x1947,0x0000,0x0000,0x0000, /* FBD6 */ +0x1947,0x0000,0x0000,0x0000, 0x1946,0x0000,0x0000,0x0000, /* FBD8 */ +0x1946,0x0000,0x0000,0x0000, 0x1948,0x0000,0x0000,0x0000, /* FBDA */ +0x1948,0x0000,0x0000,0x0000, 0x1947,0x18A2,0x0000,0x0000, /* FBDC */ +0x194B,0x0000,0x0000,0x0000, 0x194B,0x0000,0x0000,0x0000, /* FBDE */ +0x1945,0x0000,0x0000,0x0000, 0x1945,0x0000,0x0000,0x0000, /* FBE0 */ +0x1949,0x0000,0x0000,0x0000, 0x1949,0x0000,0x0000,0x0000, /* FBE2 */ +0x1954,0x0000,0x0000,0x0000, 0x1954,0x0000,0x0000,0x0000, /* FBE4 */ +0x1954,0x0000,0x0000,0x0000, 0x1954,0x0000,0x0000,0x0000, /* FBE6 */ +0x194F,0x0000,0x0000,0x0000, 0x194F,0x0000,0x0000,0x0000, /* FBE8 */ +0x18AC,0x18AD,0x0000,0x0000, 0x18AC,0x18AD,0x0000,0x0000, /* FBEA */ +0x18AC,0x1942,0x0000,0x0000, 0x18AC,0x1942,0x0000,0x0000, /* FBEC */ +0x18AC,0x1943,0x0000,0x0000, 0x18AC,0x1943,0x0000,0x0000, /* FBEE */ +0x18AC,0x1947,0x0000,0x0000, 0x18AC,0x1947,0x0000,0x0000, /* FBF0 */ +0x18AC,0x1946,0x0000,0x0000, 0x18AC,0x1946,0x0000,0x0000, /* FBF2 */ +0x18AC,0x1948,0x0000,0x0000, 0x18AC,0x1948,0x0000,0x0000, /* FBF4 */ +0x18AC,0x1954,0x0000,0x0000, 0x18AC,0x1954,0x0000,0x0000, /* FBF6 */ +0x18AC,0x1954,0x0000,0x0000, 0x18AC,0x194F,0x0000,0x0000, /* FBF8 */ +0x18AC,0x194F,0x0000,0x0000, 0x18AC,0x194F,0x0000,0x0000, /* FBFA */ +0x1951,0x0000,0x0000,0x0000, 0x1951,0x0000,0x0000,0x0000, /* FBFC */ +0x1951,0x0000,0x0000,0x0000, 0x1951,0x0000,0x0000,0x0000 /* FBFE */ +}; + +uint16 uca520_p0FC[]= { /* FC00 (3 weights per char) */ +0x18AC,0x18C2,0x0000, 0x18AC,0x18C8,0x0000, 0x18AC,0x1931,0x0000, /* FC00 */ +0x18AC,0x194F,0x0000, 0x18AC,0x1950,0x0000, 0x18AF,0x18C2,0x0000, /* FC03 */ +0x18AF,0x18C8,0x0000, 0x18AF,0x18C9,0x0000, 0x18AF,0x1931,0x0000, /* FC06 */ +0x18AF,0x194F,0x0000, 0x18AF,0x1950,0x0000, 0x18BB,0x18C2,0x0000, /* FC09 */ +0x18BB,0x18C8,0x0000, 0x18BB,0x18C9,0x0000, 0x18BB,0x1931,0x0000, /* FC0C */ +0x18BB,0x194F,0x0000, 0x18BB,0x1950,0x0000, 0x18BC,0x18C2,0x0000, /* FC0F */ +0x18BC,0x1931,0x0000, 0x18BC,0x194F,0x0000, 0x18BC,0x1950,0x0000, /* FC12 */ +0x18C2,0x18C8,0x0000, 0x18C2,0x1931,0x0000, 0x18C8,0x18C2,0x0000, /* FC15 */ +0x18C8,0x1931,0x0000, 0x18C9,0x18C2,0x0000, 0x18C9,0x18C8,0x0000, /* FC18 */ +0x18C9,0x1931,0x0000, 0x18F1,0x18C2,0x0000, 0x18F1,0x18C8,0x0000, /* FC1B */ +0x18F1,0x18C9,0x0000, 0x18F1,0x1931,0x0000, 0x18FC,0x18C8,0x0000, /* FC1E */ +0x18FC,0x1931,0x0000, 0x18FD,0x18C2,0x0000, 0x18FD,0x18C8,0x0000, /* FC21 */ +0x18FD,0x18C9,0x0000, 0x18FD,0x1931,0x0000, 0x1901,0x18C8,0x0000, /* FC24 */ +0x1901,0x1931,0x0000, 0x1902,0x1931,0x0000, 0x1904,0x18C2,0x0000, /* FC27 */ +0x1904,0x1931,0x0000, 0x1905,0x18C2,0x0000, 0x1905,0x1931,0x0000, /* FC2A */ +0x190B,0x18C2,0x0000, 0x190B,0x18C8,0x0000, 0x190B,0x18C9,0x0000, /* FC2D */ +0x190B,0x1931,0x0000, 0x190B,0x194F,0x0000, 0x190B,0x1950,0x0000, /* FC30 */ +0x1915,0x18C8,0x0000, 0x1915,0x1931,0x0000, 0x1915,0x194F,0x0000, /* FC33 */ +0x1915,0x1950,0x0000, 0x1918,0x18AD,0x0000, 0x1918,0x18C2,0x0000, /* FC36 */ +0x1918,0x18C8,0x0000, 0x1918,0x18C9,0x0000, 0x1918,0x192B,0x0000, /* FC39 */ +0x1918,0x1931,0x0000, 0x1918,0x194F,0x0000, 0x1918,0x1950,0x0000, /* FC3C */ +0x192B,0x18C2,0x0000, 0x192B,0x18C8,0x0000, 0x192B,0x18C9,0x0000, /* FC3F */ +0x192B,0x1931,0x0000, 0x192B,0x194F,0x0000, 0x192B,0x1950,0x0000, /* FC42 */ +0x1931,0x18C2,0x0000, 0x1931,0x18C8,0x0000, 0x1931,0x18C9,0x0000, /* FC45 */ +0x1931,0x1931,0x0000, 0x1931,0x194F,0x0000, 0x1931,0x1950,0x0000, /* FC48 */ +0x1934,0x18C2,0x0000, 0x1934,0x18C8,0x0000, 0x1934,0x18C9,0x0000, /* FC4B */ +0x1934,0x1931,0x0000, 0x1934,0x194F,0x0000, 0x1934,0x1950,0x0000, /* FC4E */ +0x193D,0x18C2,0x0000, 0x193D,0x1931,0x0000, 0x193D,0x194F,0x0000, /* FC51 */ +0x193D,0x1950,0x0000, 0x1950,0x18C2,0x0000, 0x1950,0x18C8,0x0000, /* FC54 */ +0x1950,0x18C9,0x0000, 0x1950,0x1931,0x0000, 0x1950,0x194F,0x0000, /* FC57 */ +0x1950,0x1950,0x0000, 0x18D4,0x0000,0x0000, 0x18E1,0x0000,0x0000, /* FC5A */ +0x194F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FC5D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FC60 */ +0x0000,0x0000,0x0000, 0x18AC,0x18E1,0x0000, 0x18AC,0x18E2,0x0000, /* FC63 */ +0x18AC,0x1931,0x0000, 0x18AC,0x1934,0x0000, 0x18AC,0x194F,0x0000, /* FC66 */ +0x18AC,0x1950,0x0000, 0x18AF,0x18E1,0x0000, 0x18AF,0x18E2,0x0000, /* FC69 */ +0x18AF,0x1931,0x0000, 0x18AF,0x1934,0x0000, 0x18AF,0x194F,0x0000, /* FC6C */ +0x18AF,0x1950,0x0000, 0x18BB,0x18E1,0x0000, 0x18BB,0x18E2,0x0000, /* FC6F */ +0x18BB,0x1931,0x0000, 0x18BB,0x1934,0x0000, 0x18BB,0x194F,0x0000, /* FC72 */ +0x18BB,0x1950,0x0000, 0x18BC,0x18E1,0x0000, 0x18BC,0x18E2,0x0000, /* FC75 */ +0x18BC,0x1931,0x0000, 0x18BC,0x1934,0x0000, 0x18BC,0x194F,0x0000, /* FC78 */ +0x18BC,0x1950,0x0000, 0x190B,0x194F,0x0000, 0x190B,0x1950,0x0000, /* FC7B */ +0x1915,0x194F,0x0000, 0x1915,0x1950,0x0000, 0x1918,0x18AD,0x0000, /* FC7E */ +0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, 0x1918,0x194F,0x0000, /* FC81 */ +0x1918,0x1950,0x0000, 0x192B,0x1931,0x0000, 0x192B,0x194F,0x0000, /* FC84 */ +0x192B,0x1950,0x0000, 0x1931,0x18AD,0x0000, 0x1931,0x1931,0x0000, /* FC87 */ +0x1934,0x18E1,0x0000, 0x1934,0x18E2,0x0000, 0x1934,0x1931,0x0000, /* FC8A */ +0x1934,0x1934,0x0000, 0x1934,0x194F,0x0000, 0x1934,0x1950,0x0000, /* FC8D */ +0x194F,0x0000,0x0000, 0x1950,0x18E1,0x0000, 0x1950,0x18E2,0x0000, /* FC90 */ +0x1950,0x1931,0x0000, 0x1950,0x1934,0x0000, 0x1950,0x194F,0x0000, /* FC93 */ +0x1950,0x1950,0x0000, 0x18AC,0x18C2,0x0000, 0x18AC,0x18C8,0x0000, /* FC96 */ +0x18AC,0x18C9,0x0000, 0x18AC,0x1931,0x0000, 0x18AC,0x193D,0x0000, /* FC99 */ +0x18AF,0x18C2,0x0000, 0x18AF,0x18C8,0x0000, 0x18AF,0x18C9,0x0000, /* FC9C */ +0x18AF,0x1931,0x0000, 0x18AF,0x193D,0x0000, 0x18BB,0x18C2,0x0000, /* FC9F */ +0x18BB,0x18C8,0x0000, 0x18BB,0x18C9,0x0000, 0x18BB,0x1931,0x0000, /* FCA2 */ +0x18BB,0x193D,0x0000, 0x18BC,0x1931,0x0000, 0x18C2,0x18C8,0x0000, /* FCA5 */ +0x18C2,0x1931,0x0000, 0x18C8,0x18C2,0x0000, 0x18C8,0x1931,0x0000, /* FCA8 */ +0x18C9,0x18C2,0x0000, 0x18C9,0x1931,0x0000, 0x18F1,0x18C2,0x0000, /* FCAB */ +0x18F1,0x18C8,0x0000, 0x18F1,0x18C9,0x0000, 0x18F1,0x1931,0x0000, /* FCAE */ +0x18FC,0x18C8,0x0000, 0x18FC,0x18C9,0x0000, 0x18FC,0x1931,0x0000, /* FCB1 */ +0x18FD,0x18C2,0x0000, 0x18FD,0x18C8,0x0000, 0x18FD,0x18C9,0x0000, /* FCB4 */ +0x18FD,0x1931,0x0000, 0x1901,0x18C8,0x0000, 0x1902,0x1931,0x0000, /* FCB7 */ +0x1904,0x18C2,0x0000, 0x1904,0x1931,0x0000, 0x1905,0x18C2,0x0000, /* FCBA */ +0x1905,0x1931,0x0000, 0x190B,0x18C2,0x0000, 0x190B,0x18C8,0x0000, /* FCBD */ +0x190B,0x18C9,0x0000, 0x190B,0x1931,0x0000, 0x1915,0x18C8,0x0000, /* FCC0 */ +0x1915,0x1931,0x0000, 0x1918,0x18C2,0x0000, 0x1918,0x18C8,0x0000, /* FCC3 */ +0x1918,0x18C9,0x0000, 0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, /* FCC6 */ +0x192B,0x18C2,0x0000, 0x192B,0x18C8,0x0000, 0x192B,0x18C9,0x0000, /* FCC9 */ +0x192B,0x1931,0x0000, 0x192B,0x193D,0x0000, 0x1931,0x18C2,0x0000, /* FCCC */ +0x1931,0x18C8,0x0000, 0x1931,0x18C9,0x0000, 0x1931,0x1931,0x0000, /* FCCF */ +0x1934,0x18C2,0x0000, 0x1934,0x18C8,0x0000, 0x1934,0x18C9,0x0000, /* FCD2 */ +0x1934,0x1931,0x0000, 0x1934,0x193D,0x0000, 0x193D,0x18C2,0x0000, /* FCD5 */ +0x193D,0x1931,0x0000, 0x193D,0x0000,0x0000, 0x1950,0x18C2,0x0000, /* FCD8 */ +0x1950,0x18C8,0x0000, 0x1950,0x18C9,0x0000, 0x1950,0x1931,0x0000, /* FCDB */ +0x1950,0x193D,0x0000, 0x18AC,0x1931,0x0000, 0x18AC,0x193D,0x0000, /* FCDE */ +0x18AF,0x1931,0x0000, 0x18AF,0x193D,0x0000, 0x18BB,0x1931,0x0000, /* FCE1 */ +0x18BB,0x193D,0x0000, 0x18BC,0x1931,0x0000, 0x18BC,0x193D,0x0000, /* FCE4 */ +0x18F1,0x1931,0x0000, 0x18F1,0x193D,0x0000, 0x18F2,0x1931,0x0000, /* FCE7 */ +0x18F2,0x193D,0x0000, 0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, /* FCEA */ +0x192B,0x1931,0x0000, 0x1934,0x1931,0x0000, 0x1934,0x193D,0x0000, /* FCED */ +0x1950,0x1931,0x0000, 0x1950,0x193D,0x0000, 0x0000,0x0000,0x0000, /* FCF0 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1901,0x194F,0x0000, /* FCF3 */ +0x1901,0x1950,0x0000, 0x1904,0x194F,0x0000, 0x1904,0x1950,0x0000, /* FCF6 */ +0x1905,0x194F,0x0000, 0x1905,0x1950,0x0000, 0x18F1,0x194F,0x0000, /* FCF9 */ +0x18F1,0x1950,0x0000, 0x18F2,0x194F,0x0000, 0x18F2,0x1950,0x0000, /* FCFC */ +0x18C8,0x194F,0x0000 }; + +uint16 uca520_p0FD[]= { /* FD00 (9 weights per char) */ +0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD00 */ +0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD01 */ +0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD02 */ +0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD03 */ +0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD04 */ +0x18FC,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD05 */ +0x18FC,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD06 */ +0x18FD,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD07 */ +0x18FD,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD08 */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD09 */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0A */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0B */ +0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0C */ +0x18F2,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0D */ +0x18F1,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0E */ +0x18FC,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0F */ +0x18FD,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD10 */ +0x1901,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD11 */ +0x1901,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD12 */ +0x1904,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD13 */ +0x1904,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD14 */ +0x1905,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD15 */ +0x1905,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD16 */ +0x18F1,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD17 */ +0x18F1,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD18 */ +0x18F2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD19 */ +0x18F2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1A */ +0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1B */ +0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1C */ +0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1D */ +0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1E */ +0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1F */ +0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD20 */ +0x18FC,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD21 */ +0x18FC,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD22 */ +0x18FD,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD23 */ +0x18FD,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD24 */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD25 */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD26 */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD27 */ +0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD28 */ +0x18F2,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD29 */ +0x18F1,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2A */ +0x18FC,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2B */ +0x18FD,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2C */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2D */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2E */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2F */ +0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD30 */ +0x18F1,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD31 */ +0x18F2,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD32 */ +0x1901,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD33 */ +0x18F1,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD34 */ +0x18F1,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD35 */ +0x18F1,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD36 */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD37 */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD38 */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD39 */ +0x1901,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3A */ +0x1902,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3B */ +0x18AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3C */ +0x18AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3D */ +0x034F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3E */ +0x0350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3F */ +0xFBC1,0xFD40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD40 */ +0xFBC1,0xFD41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD41 */ +0xFBC1,0xFD42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD42 */ +0xFBC1,0xFD43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD43 */ +0xFBC1,0xFD44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD44 */ +0xFBC1,0xFD45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD45 */ +0xFBC1,0xFD46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD46 */ +0xFBC1,0xFD47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD47 */ +0xFBC1,0xFD48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD48 */ +0xFBC1,0xFD49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD49 */ +0xFBC1,0xFD4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4A */ +0xFBC1,0xFD4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4B */ +0xFBC1,0xFD4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4C */ +0xFBC1,0xFD4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4D */ +0xFBC1,0xFD4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4E */ +0xFBC1,0xFD4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4F */ +0x18BB,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD50 */ +0x18BB,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD51 */ +0x18BB,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD52 */ +0x18BB,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD53 */ +0x18BB,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD54 */ +0x18BB,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD55 */ +0x18BB,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD56 */ +0x18BB,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD57 */ +0x18C2,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD58 */ +0x18C2,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD59 */ +0x18C8,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5A */ +0x18C8,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5B */ +0x18F1,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5C */ +0x18F1,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5D */ +0x18F1,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5E */ +0x18F1,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5F */ +0x18F1,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD60 */ +0x18F1,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD61 */ +0x18F1,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD62 */ +0x18F1,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD63 */ +0x18FC,0x18C8,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD64 */ +0x18FC,0x18C8,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD65 */ +0x18FC,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD66 */ +0x18F2,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD67 */ +0x18F2,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD68 */ +0x18F2,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD69 */ +0x18F2,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6A */ +0x18F2,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6B */ +0x18F2,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6C */ +0x18F2,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6D */ +0x18FD,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6E */ +0x18FD,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6F */ +0x18FD,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD70 */ +0x1901,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD71 */ +0x1901,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD72 */ +0x1901,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD73 */ +0x1901,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD74 */ +0x1904,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD75 */ +0x1904,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD76 */ +0x1904,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD77 */ +0x1904,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD78 */ +0x1905,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD79 */ +0x1905,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7A */ +0x1905,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7B */ +0x190B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7C */ +0x190B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7D */ +0x1915,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7E */ +0x1915,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7F */ +0x192B,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD80 */ +0x192B,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD81 */ +0x192B,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD82 */ +0x192B,0x18C2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD83 */ +0x192B,0x18C2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD84 */ +0x192B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD85 */ +0x192B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD86 */ +0x192B,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD87 */ +0x192B,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD88 */ +0x1931,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD89 */ +0x1931,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8A */ +0x1931,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8B */ +0x1931,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8C */ +0x1931,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8D */ +0x1931,0x18C9,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8E */ +0x1931,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8F */ +0xFBC1,0xFD90,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD90 */ +0xFBC1,0xFD91,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD91 */ +0x1931,0x18C2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD92 */ +0x193D,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD93 */ +0x193D,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD94 */ +0x1934,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD95 */ +0x1934,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD96 */ +0x1934,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD97 */ +0x1934,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD98 */ +0x1934,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD99 */ +0x1934,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9A */ +0x1934,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9B */ +0x1950,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9C */ +0x1950,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9D */ +0x18AF,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9E */ +0x18BB,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9F */ +0x18BB,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA0 */ +0x18BB,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA1 */ +0x18BB,0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA2 */ +0x18BB,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA3 */ +0x18BB,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA4 */ +0x18C2,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA5 */ +0x18C2,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA6 */ +0x18C2,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA7 */ +0x18F1,0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA8 */ +0x18FC,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA9 */ +0x18F2,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAA */ +0x18FD,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAB */ +0x192B,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAC */ +0x192B,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAD */ +0x1950,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAE */ +0x1950,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAF */ +0x1950,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB0 */ +0x1931,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB1 */ +0x1915,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB2 */ +0x1934,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB3 */ +0x1915,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB4 */ +0x192B,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB5 */ +0x1904,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB6 */ +0x1918,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB7 */ +0x1934,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB8 */ +0x1931,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB9 */ +0x192B,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBA */ +0x1918,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBB */ +0x192B,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBC */ +0x1934,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBD */ +0x18C2,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBE */ +0x18C8,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBF */ +0x1931,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC0 */ +0x190B,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC1 */ +0x18AF,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC2 */ +0x1918,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC3 */ +0x1904,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC4 */ +0x18FC,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC5 */ +0x18F1,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC6 */ +0x1934,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC7 */ +0xFBC1,0xFDC8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC8 */ +0xFBC1,0xFDC9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC9 */ +0xFBC1,0xFDCA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCA */ +0xFBC1,0xFDCB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCB */ +0xFBC1,0xFDCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCC */ +0xFBC1,0xFDCD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCD */ +0xFBC1,0xFDCE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCE */ +0xFBC1,0xFDCF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCF */ +0xFBC1,0xFDD0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD0 */ +0xFBC1,0xFDD1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD1 */ +0xFBC1,0xFDD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD2 */ +0xFBC1,0xFDD3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD3 */ +0xFBC1,0xFDD4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD4 */ +0xFBC1,0xFDD5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD5 */ +0xFBC1,0xFDD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD6 */ +0xFBC1,0xFDD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD7 */ +0xFBC1,0xFDD8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD8 */ +0xFBC1,0xFDD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD9 */ +0xFBC1,0xFDDA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDA */ +0xFBC1,0xFDDB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDB */ +0xFBC1,0xFDDC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDC */ +0xFBC1,0xFDDD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDD */ +0xFBC1,0xFDDE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDE */ +0xFBC1,0xFDDF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDF */ +0xFBC1,0xFDE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE0 */ +0xFBC1,0xFDE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE1 */ +0xFBC1,0xFDE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE2 */ +0xFBC1,0xFDE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE3 */ +0xFBC1,0xFDE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE4 */ +0xFBC1,0xFDE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE5 */ +0xFBC1,0xFDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE6 */ +0xFBC1,0xFDE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE7 */ +0xFBC1,0xFDE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE8 */ +0xFBC1,0xFDE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE9 */ +0xFBC1,0xFDEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEA */ +0xFBC1,0xFDEB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEB */ +0xFBC1,0xFDEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEC */ +0xFBC1,0xFDED,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDED */ +0xFBC1,0xFDEE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEE */ +0xFBC1,0xFDEF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEF */ +0x18FC,0x192B,0x195C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF0 */ +0x1915,0x192B,0x195C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF1 */ +0x18AD,0x192B,0x192B,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF2 */ +0x18AD,0x1918,0x18AF,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF3 */ +0x1931,0x18C8,0x1931,0x18D3,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF4 */ +0x18FC,0x192B,0x1904,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF5 */ +0x18E1,0x18F1,0x1943,0x192B,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF6 */ +0x1904,0x192B,0x1950,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF7 */ +0x1943,0x18F1,0x192B,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF8 */ +0x18FC,0x192B,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF9 */ +0x18FC,0x192B,0x194F,0x020A,0x18AD,0x192B,0x192B,0x193D,0x0000, /* FDFA */ +0x18C2,0x192B,0x020A,0x18C2,0x192B,0x18AD,0x192B,0x193D,0x0000, /* FDFB */ +0x18E1,0x1951,0x18AD,0x192B,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFC */ +0x0451,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFD */ +0xFBC1,0xFDFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFE */ +0xFBC1,0xFDFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* FDFF */ +}; + +uint16 uca520_p0FE[]= { /* FE00 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE00 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE02 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE04 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE06 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE08 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0E */ +0x0234,0x0000,0x0000,0x0000, 0x0240,0x0000,0x0000,0x0000, /* FE10 */ +0x0291,0x0000,0x0000,0x0000, 0x0247,0x0000,0x0000,0x0000, /* FE12 */ +0x0243,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* FE14 */ +0x0273,0x0000,0x0000,0x0000, 0x0349,0x0000,0x0000,0x0000, /* FE16 */ +0x034A,0x0000,0x0000,0x0000, 0x0281,0x0281,0x0281,0x0000, /* FE18 */ +0xFBC1,0xFE1A,0x0000,0x0000, 0xFBC1,0xFE1B,0x0000,0x0000, /* FE1A */ +0xFBC1,0xFE1C,0x0000,0x0000, 0xFBC1,0xFE1D,0x0000,0x0000, /* FE1C */ +0xFBC1,0xFE1E,0x0000,0x0000, 0xFBC1,0xFE1F,0x0000,0x0000, /* FE1E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE20 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE22 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE24 */ +0x0000,0x0000,0x0000,0x0000, 0xFBC1,0xFE27,0x0000,0x0000, /* FE26 */ +0xFBC1,0xFE28,0x0000,0x0000, 0xFBC1,0xFE29,0x0000,0x0000, /* FE28 */ +0xFBC1,0xFE2A,0x0000,0x0000, 0xFBC1,0xFE2B,0x0000,0x0000, /* FE2A */ +0xFBC1,0xFE2C,0x0000,0x0000, 0xFBC1,0xFE2D,0x0000,0x0000, /* FE2C */ +0xFBC1,0xFE2E,0x0000,0x0000, 0xFBC1,0xFE2F,0x0000,0x0000, /* FE2E */ +0x0281,0x0281,0x0000,0x0000, 0x022C,0x0000,0x0000,0x0000, /* FE30 */ +0x022B,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE32 */ +0x021D,0x0000,0x0000,0x0000, 0x02FF,0x0000,0x0000,0x0000, /* FE34 */ +0x0300,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* FE36 */ +0x0304,0x0000,0x0000,0x0000, 0x0347,0x0000,0x0000,0x0000, /* FE38 */ +0x0348,0x0000,0x0000,0x0000, 0x0345,0x0000,0x0000,0x0000, /* FE3A */ +0x0346,0x0000,0x0000,0x0000, 0x033F,0x0000,0x0000,0x0000, /* FE3C */ +0x0340,0x0000,0x0000,0x0000, 0x033D,0x0000,0x0000,0x0000, /* FE3E */ +0x033E,0x0000,0x0000,0x0000, 0x0341,0x0000,0x0000,0x0000, /* FE40 */ +0x0342,0x0000,0x0000,0x0000, 0x0343,0x0000,0x0000,0x0000, /* FE42 */ +0x0344,0x0000,0x0000,0x0000, 0x0241,0x0000,0x0000,0x0000, /* FE44 */ +0x0242,0x0000,0x0000,0x0000, 0x0301,0x0000,0x0000,0x0000, /* FE46 */ +0x0302,0x0000,0x0000,0x0000, 0x0213,0x0000,0x0000,0x0000, /* FE48 */ +0x0213,0x0000,0x0000,0x0000, 0x0213,0x0000,0x0000,0x0000, /* FE4A */ +0x0213,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE4C */ +0x021D,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE4E */ +0x0234,0x0000,0x0000,0x0000, 0x0240,0x0000,0x0000,0x0000, /* FE50 */ +0x0281,0x0000,0x0000,0x0000, 0xFBC1,0xFE53,0x0000,0x0000, /* FE52 */ +0x0243,0x0000,0x0000,0x0000, 0x0247,0x0000,0x0000,0x0000, /* FE54 */ +0x0273,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* FE56 */ +0x022C,0x0000,0x0000,0x0000, 0x02FF,0x0000,0x0000,0x0000, /* FE58 */ +0x0300,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* FE5A */ +0x0304,0x0000,0x0000,0x0000, 0x0347,0x0000,0x0000,0x0000, /* FE5C */ +0x0348,0x0000,0x0000,0x0000, 0x0362,0x0000,0x0000,0x0000, /* FE5E */ +0x035F,0x0000,0x0000,0x0000, 0x0357,0x0000,0x0000,0x0000, /* FE60 */ +0x0550,0x0000,0x0000,0x0000, 0x0223,0x0000,0x0000,0x0000, /* FE62 */ +0x0554,0x0000,0x0000,0x0000, 0x0556,0x0000,0x0000,0x0000, /* FE64 */ +0x0555,0x0000,0x0000,0x0000, 0xFBC1,0xFE67,0x0000,0x0000, /* FE66 */ +0x035E,0x0000,0x0000,0x0000, 0x11E1,0x0000,0x0000,0x0000, /* FE68 */ +0x0363,0x0000,0x0000,0x0000, 0x0356,0x0000,0x0000,0x0000, /* FE6A */ +0xFBC1,0xFE6C,0x0000,0x0000, 0xFBC1,0xFE6D,0x0000,0x0000, /* FE6C */ +0xFBC1,0xFE6E,0x0000,0x0000, 0xFBC1,0xFE6F,0x0000,0x0000, /* FE6E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE70 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE72 */ +0x0000,0x0000,0x0000,0x0000, 0xFBC1,0xFE75,0x0000,0x0000, /* FE74 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE76 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE78 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7E */ +0x18A2,0x0000,0x0000,0x0000, 0x18A3,0x0000,0x0000,0x0000, /* FE80 */ +0x18A3,0x0000,0x0000,0x0000, 0x18A4,0x0000,0x0000,0x0000, /* FE82 */ +0x18A4,0x0000,0x0000,0x0000, 0x18A7,0x0000,0x0000,0x0000, /* FE84 */ +0x18A7,0x0000,0x0000,0x0000, 0x18A8,0x0000,0x0000,0x0000, /* FE86 */ +0x18A8,0x0000,0x0000,0x0000, 0x18AC,0x0000,0x0000,0x0000, /* FE88 */ +0x18AC,0x0000,0x0000,0x0000, 0x18AC,0x0000,0x0000,0x0000, /* FE8A */ +0x18AC,0x0000,0x0000,0x0000, 0x18AD,0x0000,0x0000,0x0000, /* FE8C */ +0x18AD,0x0000,0x0000,0x0000, 0x18AF,0x0000,0x0000,0x0000, /* FE8E */ +0x18AF,0x0000,0x0000,0x0000, 0x18AF,0x0000,0x0000,0x0000, /* FE90 */ +0x18AF,0x0000,0x0000,0x0000, 0x18BA,0x0000,0x0000,0x0000, /* FE92 */ +0x18BA,0x0000,0x0000,0x0000, 0x18BB,0x0000,0x0000,0x0000, /* FE94 */ +0x18BB,0x0000,0x0000,0x0000, 0x18BB,0x0000,0x0000,0x0000, /* FE96 */ +0x18BB,0x0000,0x0000,0x0000, 0x18BC,0x0000,0x0000,0x0000, /* FE98 */ +0x18BC,0x0000,0x0000,0x0000, 0x18BC,0x0000,0x0000,0x0000, /* FE9A */ +0x18BC,0x0000,0x0000,0x0000, 0x18C2,0x0000,0x0000,0x0000, /* FE9C */ +0x18C2,0x0000,0x0000,0x0000, 0x18C2,0x0000,0x0000,0x0000, /* FE9E */ +0x18C2,0x0000,0x0000,0x0000, 0x18C8,0x0000,0x0000,0x0000, /* FEA0 */ +0x18C8,0x0000,0x0000,0x0000, 0x18C8,0x0000,0x0000,0x0000, /* FEA2 */ +0x18C8,0x0000,0x0000,0x0000, 0x18C9,0x0000,0x0000,0x0000, /* FEA4 */ +0x18C9,0x0000,0x0000,0x0000, 0x18C9,0x0000,0x0000,0x0000, /* FEA6 */ +0x18C9,0x0000,0x0000,0x0000, 0x18D3,0x0000,0x0000,0x0000, /* FEA8 */ +0x18D3,0x0000,0x0000,0x0000, 0x18D4,0x0000,0x0000,0x0000, /* FEAA */ +0x18D4,0x0000,0x0000,0x0000, 0x18E1,0x0000,0x0000,0x0000, /* FEAC */ +0x18E1,0x0000,0x0000,0x0000, 0x18E2,0x0000,0x0000,0x0000, /* FEAE */ +0x18E2,0x0000,0x0000,0x0000, 0x18F1,0x0000,0x0000,0x0000, /* FEB0 */ +0x18F1,0x0000,0x0000,0x0000, 0x18F1,0x0000,0x0000,0x0000, /* FEB2 */ +0x18F1,0x0000,0x0000,0x0000, 0x18F2,0x0000,0x0000,0x0000, /* FEB4 */ +0x18F2,0x0000,0x0000,0x0000, 0x18F2,0x0000,0x0000,0x0000, /* FEB6 */ +0x18F2,0x0000,0x0000,0x0000, 0x18FC,0x0000,0x0000,0x0000, /* FEB8 */ +0x18FC,0x0000,0x0000,0x0000, 0x18FC,0x0000,0x0000,0x0000, /* FEBA */ +0x18FC,0x0000,0x0000,0x0000, 0x18FD,0x0000,0x0000,0x0000, /* FEBC */ +0x18FD,0x0000,0x0000,0x0000, 0x18FD,0x0000,0x0000,0x0000, /* FEBE */ +0x18FD,0x0000,0x0000,0x0000, 0x1901,0x0000,0x0000,0x0000, /* FEC0 */ +0x1901,0x0000,0x0000,0x0000, 0x1901,0x0000,0x0000,0x0000, /* FEC2 */ +0x1901,0x0000,0x0000,0x0000, 0x1902,0x0000,0x0000,0x0000, /* FEC4 */ +0x1902,0x0000,0x0000,0x0000, 0x1902,0x0000,0x0000,0x0000, /* FEC6 */ +0x1902,0x0000,0x0000,0x0000, 0x1904,0x0000,0x0000,0x0000, /* FEC8 */ +0x1904,0x0000,0x0000,0x0000, 0x1904,0x0000,0x0000,0x0000, /* FECA */ +0x1904,0x0000,0x0000,0x0000, 0x1905,0x0000,0x0000,0x0000, /* FECC */ +0x1905,0x0000,0x0000,0x0000, 0x1905,0x0000,0x0000,0x0000, /* FECE */ +0x1905,0x0000,0x0000,0x0000, 0x190B,0x0000,0x0000,0x0000, /* FED0 */ +0x190B,0x0000,0x0000,0x0000, 0x190B,0x0000,0x0000,0x0000, /* FED2 */ +0x190B,0x0000,0x0000,0x0000, 0x1915,0x0000,0x0000,0x0000, /* FED4 */ +0x1915,0x0000,0x0000,0x0000, 0x1915,0x0000,0x0000,0x0000, /* FED6 */ +0x1915,0x0000,0x0000,0x0000, 0x1918,0x0000,0x0000,0x0000, /* FED8 */ +0x1918,0x0000,0x0000,0x0000, 0x1918,0x0000,0x0000,0x0000, /* FEDA */ +0x1918,0x0000,0x0000,0x0000, 0x192B,0x0000,0x0000,0x0000, /* FEDC */ +0x192B,0x0000,0x0000,0x0000, 0x192B,0x0000,0x0000,0x0000, /* FEDE */ +0x192B,0x0000,0x0000,0x0000, 0x1931,0x0000,0x0000,0x0000, /* FEE0 */ +0x1931,0x0000,0x0000,0x0000, 0x1931,0x0000,0x0000,0x0000, /* FEE2 */ +0x1931,0x0000,0x0000,0x0000, 0x1934,0x0000,0x0000,0x0000, /* FEE4 */ +0x1934,0x0000,0x0000,0x0000, 0x1934,0x0000,0x0000,0x0000, /* FEE6 */ +0x1934,0x0000,0x0000,0x0000, 0x193D,0x0000,0x0000,0x0000, /* FEE8 */ +0x193D,0x0000,0x0000,0x0000, 0x193D,0x0000,0x0000,0x0000, /* FEEA */ +0x193D,0x0000,0x0000,0x0000, 0x1943,0x0000,0x0000,0x0000, /* FEEC */ +0x1943,0x0000,0x0000,0x0000, 0x194F,0x0000,0x0000,0x0000, /* FEEE */ +0x194F,0x0000,0x0000,0x0000, 0x1950,0x0000,0x0000,0x0000, /* FEF0 */ +0x1950,0x0000,0x0000,0x0000, 0x1950,0x0000,0x0000,0x0000, /* FEF2 */ +0x1950,0x0000,0x0000,0x0000, 0x192B,0x18A3,0x0000,0x0000, /* FEF4 */ +0x192B,0x18A3,0x0000,0x0000, 0x192B,0x18A4,0x0000,0x0000, /* FEF6 */ +0x192B,0x18A4,0x0000,0x0000, 0x192B,0x18A8,0x0000,0x0000, /* FEF8 */ +0x192B,0x18A8,0x0000,0x0000, 0x192B,0x18AD,0x0000,0x0000, /* FEFA */ +0x192B,0x18AD,0x0000,0x0000, 0xFBC1,0xFEFD,0x0000,0x0000, /* FEFC */ +0xFBC1,0xFEFE,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 /* FEFE */ +}; + +uint16 uca520_p0FF[]= { /* FF00 (3 weights per char) */ +0xFBC1,0xFF00,0x0000, 0x026E,0x0000,0x0000, 0x02F5,0x0000,0x0000, /* FF00 */ +0x0362,0x0000,0x0000, 0x11E1,0x0000,0x0000, 0x0363,0x0000,0x0000, /* FF03 */ +0x035F,0x0000,0x0000, 0x02EE,0x0000,0x0000, 0x02FF,0x0000,0x0000, /* FF06 */ +0x0300,0x0000,0x0000, 0x0357,0x0000,0x0000, 0x0550,0x0000,0x0000, /* FF09 */ +0x0234,0x0000,0x0000, 0x0223,0x0000,0x0000, 0x0281,0x0000,0x0000, /* FF0C */ +0x035C,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* FF0F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* FF12 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* FF15 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x0247,0x0000,0x0000, /* FF18 */ +0x0243,0x0000,0x0000, 0x0554,0x0000,0x0000, 0x0555,0x0000,0x0000, /* FF1B */ +0x0556,0x0000,0x0000, 0x0273,0x0000,0x0000, 0x0356,0x0000,0x0000, /* FF1E */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* FF21 */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* FF24 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* FF27 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* FF2A */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* FF2D */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* FF30 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* FF33 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* FF36 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x0301,0x0000,0x0000, /* FF39 */ +0x035E,0x0000,0x0000, 0x0302,0x0000,0x0000, 0x0211,0x0000,0x0000, /* FF3C */ +0x021D,0x0000,0x0000, 0x020E,0x0000,0x0000, 0x120F,0x0000,0x0000, /* FF3F */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* FF42 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* FF45 */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* FF48 */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* FF4B */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* FF4E */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* FF51 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* FF54 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* FF57 */ +0x14AD,0x0000,0x0000, 0x0303,0x0000,0x0000, 0x0558,0x0000,0x0000, /* FF5A */ +0x0304,0x0000,0x0000, 0x055B,0x0000,0x0000, 0x0311,0x0000,0x0000, /* FF5D */ +0x0312,0x0000,0x0000, 0x0291,0x0000,0x0000, 0x0341,0x0000,0x0000, /* FF60 */ +0x0342,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0233,0x0000,0x0000, /* FF63 */ +0x2B43,0x0000,0x0000, 0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* FF66 */ +0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* FF69 */ +0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B3A,0x0000,0x0000, /* FF6C */ +0x2B26,0x0000,0x0000, 0x11DD,0x0000,0x0000, 0x2B15,0x0000,0x0000, /* FF6F */ +0x2B16,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* FF72 */ +0x2B19,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* FF75 */ +0x2B1C,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* FF78 */ +0x2B1F,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* FF7B */ +0x2B22,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* FF7E */ +0x2B25,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B27,0x0000,0x0000, /* FF81 */ +0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* FF84 */ +0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* FF87 */ +0x2B2E,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* FF8A */ +0x2B31,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B33,0x0000,0x0000, /* FF8D */ +0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, 0x2B36,0x0000,0x0000, /* FF90 */ +0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* FF93 */ +0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, 0x2B3C,0x0000,0x0000, /* FF96 */ +0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, 0x2B3F,0x0000,0x0000, /* FF99 */ +0x2B40,0x0000,0x0000, 0x2B44,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FF9C */ +0x0000,0x0000,0x0000, 0x2A2D,0x0000,0x0000, 0x29B0,0x0000,0x0000, /* FF9F */ +0x29B1,0x0000,0x0000, 0x2A8E,0x0000,0x0000, 0x29B2,0x0000,0x0000, /* FFA2 */ +0x2A90,0x0000,0x0000, 0x2A91,0x0000,0x0000, 0x29B3,0x0000,0x0000, /* FFA5 */ +0x29B4,0x0000,0x0000, 0x29B5,0x0000,0x0000, 0x2A94,0x0000,0x0000, /* FFA8 */ +0x2A95,0x0000,0x0000, 0x2A96,0x0000,0x0000, 0x2A97,0x0000,0x0000, /* FFAB */ +0x2A98,0x0000,0x0000, 0x2A99,0x0000,0x0000, 0x29CA,0x0000,0x0000, /* FFAE */ +0x29B6,0x0000,0x0000, 0x29B7,0x0000,0x0000, 0x29B8,0x0000,0x0000, /* FFB1 */ +0x29D1,0x0000,0x0000, 0x29B9,0x0000,0x0000, 0x29BA,0x0000,0x0000, /* FFB4 */ +0x29BB,0x0000,0x0000, 0x29BC,0x0000,0x0000, 0x29BD,0x0000,0x0000, /* FFB7 */ +0x29BE,0x0000,0x0000, 0x29BF,0x0000,0x0000, 0x29C0,0x0000,0x0000, /* FFBA */ +0x29C1,0x0000,0x0000, 0x29C2,0x0000,0x0000, 0xFBC1,0xFFBF,0x0000, /* FFBD */ +0xFBC1,0xFFC0,0x0000, 0xFBC1,0xFFC1,0x0000, 0x2A2E,0x0000,0x0000, /* FFC0 */ +0x2A2F,0x0000,0x0000, 0x2A30,0x0000,0x0000, 0x2A31,0x0000,0x0000, /* FFC3 */ +0x2A32,0x0000,0x0000, 0x2A33,0x0000,0x0000, 0xFBC1,0xFFC8,0x0000, /* FFC6 */ +0xFBC1,0xFFC9,0x0000, 0x2A34,0x0000,0x0000, 0x2A35,0x0000,0x0000, /* FFC9 */ +0x2A36,0x0000,0x0000, 0x2A37,0x0000,0x0000, 0x2A38,0x0000,0x0000, /* FFCC */ +0x2A39,0x0000,0x0000, 0xFBC1,0xFFD0,0x0000, 0xFBC1,0xFFD1,0x0000, /* FFCF */ +0x2A3A,0x0000,0x0000, 0x2A3B,0x0000,0x0000, 0x2A3C,0x0000,0x0000, /* FFD2 */ +0x2A3D,0x0000,0x0000, 0x2A3E,0x0000,0x0000, 0x2A3F,0x0000,0x0000, /* FFD5 */ +0xFBC1,0xFFD8,0x0000, 0xFBC1,0xFFD9,0x0000, 0x2A40,0x0000,0x0000, /* FFD8 */ +0x2A41,0x0000,0x0000, 0x2A42,0x0000,0x0000, 0xFBC1,0xFFDD,0x0000, /* FFDB */ +0xFBC1,0xFFDE,0x0000, 0xFBC1,0xFFDF,0x0000, 0x11E0,0x0000,0x0000, /* FFDE */ +0x11E2,0x0000,0x0000, 0x0557,0x0000,0x0000, 0x0212,0x0000,0x0000, /* FFE1 */ +0x0559,0x0000,0x0000, 0x11E3,0x0000,0x0000, 0x11F5,0x0000,0x0000, /* FFE4 */ +0xFBC1,0xFFE7,0x0000, 0x0740,0x0000,0x0000, 0x04D6,0x0000,0x0000, /* FFE7 */ +0x04D8,0x0000,0x0000, 0x04D7,0x0000,0x0000, 0x04D9,0x0000,0x0000, /* FFEA */ +0x07DE,0x0000,0x0000, 0x0809,0x0000,0x0000, 0xFBC1,0xFFEF,0x0000, /* FFED */ +0xFBC1,0xFFF0,0x0000, 0xFBC1,0xFFF1,0x0000, 0xFBC1,0xFFF2,0x0000, /* FFF0 */ +0xFBC1,0xFFF3,0x0000, 0xFBC1,0xFFF4,0x0000, 0xFBC1,0xFFF5,0x0000, /* FFF3 */ +0xFBC1,0xFFF6,0x0000, 0xFBC1,0xFFF7,0x0000, 0xFBC1,0xFFF8,0x0000, /* FFF6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FFF9 */ +0x110E,0x0000,0x0000, 0x110F,0x0000,0x0000, 0xFBC1,0xFFFE,0x0000, /* FFFC */ +0xFBC1,0xFFFF,0x0000 }; + +uint16 uca520_p100[]= { /* 10000 (3 weights per char) */ +0x3148,0x0000,0x0000, 0x3149,0x0000,0x0000, 0x314A,0x0000,0x0000, /* 10000 */ +0x314B,0x0000,0x0000, 0x314C,0x0000,0x0000, 0x314D,0x0000,0x0000, /* 10003 */ +0x314E,0x0000,0x0000, 0x314F,0x0000,0x0000, 0x3150,0x0000,0x0000, /* 10006 */ +0x3151,0x0000,0x0000, 0x3152,0x0000,0x0000, 0x3153,0x0000,0x0000, /* 10009 */ +0xFBC2,0x800C,0x0000, 0x3154,0x0000,0x0000, 0x3155,0x0000,0x0000, /* 1000C */ +0x3156,0x0000,0x0000, 0x3157,0x0000,0x0000, 0x3158,0x0000,0x0000, /* 1000F */ +0x3159,0x0000,0x0000, 0x315A,0x0000,0x0000, 0x315B,0x0000,0x0000, /* 10012 */ +0x315C,0x0000,0x0000, 0x315D,0x0000,0x0000, 0x315E,0x0000,0x0000, /* 10015 */ +0x315F,0x0000,0x0000, 0x3160,0x0000,0x0000, 0x3161,0x0000,0x0000, /* 10018 */ +0x3162,0x0000,0x0000, 0x3163,0x0000,0x0000, 0x3164,0x0000,0x0000, /* 1001B */ +0x3165,0x0000,0x0000, 0x3166,0x0000,0x0000, 0x3167,0x0000,0x0000, /* 1001E */ +0x3168,0x0000,0x0000, 0x3169,0x0000,0x0000, 0x316A,0x0000,0x0000, /* 10021 */ +0x316B,0x0000,0x0000, 0x316C,0x0000,0x0000, 0x316D,0x0000,0x0000, /* 10024 */ +0xFBC2,0x8027,0x0000, 0x316E,0x0000,0x0000, 0x316F,0x0000,0x0000, /* 10027 */ +0x3170,0x0000,0x0000, 0x3171,0x0000,0x0000, 0x3172,0x0000,0x0000, /* 1002A */ +0x3173,0x0000,0x0000, 0x3174,0x0000,0x0000, 0x3175,0x0000,0x0000, /* 1002D */ +0x3176,0x0000,0x0000, 0x3177,0x0000,0x0000, 0x3178,0x0000,0x0000, /* 10030 */ +0x3179,0x0000,0x0000, 0x317A,0x0000,0x0000, 0x317B,0x0000,0x0000, /* 10033 */ +0x317C,0x0000,0x0000, 0x317D,0x0000,0x0000, 0x317E,0x0000,0x0000, /* 10036 */ +0x317F,0x0000,0x0000, 0x3180,0x0000,0x0000, 0xFBC2,0x803B,0x0000, /* 10039 */ +0x3181,0x0000,0x0000, 0x3182,0x0000,0x0000, 0xFBC2,0x803E,0x0000, /* 1003C */ +0x3183,0x0000,0x0000, 0x3184,0x0000,0x0000, 0x3185,0x0000,0x0000, /* 1003F */ +0x3186,0x0000,0x0000, 0x3187,0x0000,0x0000, 0x3188,0x0000,0x0000, /* 10042 */ +0x3189,0x0000,0x0000, 0x318A,0x0000,0x0000, 0x318B,0x0000,0x0000, /* 10045 */ +0x318C,0x0000,0x0000, 0x318D,0x0000,0x0000, 0x318E,0x0000,0x0000, /* 10048 */ +0x318F,0x0000,0x0000, 0x3190,0x0000,0x0000, 0x3191,0x0000,0x0000, /* 1004B */ +0xFBC2,0x804E,0x0000, 0xFBC2,0x804F,0x0000, 0x3192,0x0000,0x0000, /* 1004E */ +0x3193,0x0000,0x0000, 0x3194,0x0000,0x0000, 0x3195,0x0000,0x0000, /* 10051 */ +0x3196,0x0000,0x0000, 0x3197,0x0000,0x0000, 0x3198,0x0000,0x0000, /* 10054 */ +0x3199,0x0000,0x0000, 0x319A,0x0000,0x0000, 0x319B,0x0000,0x0000, /* 10057 */ +0x319C,0x0000,0x0000, 0x319D,0x0000,0x0000, 0x319E,0x0000,0x0000, /* 1005A */ +0x319F,0x0000,0x0000, 0xFBC2,0x805E,0x0000, 0xFBC2,0x805F,0x0000, /* 1005D */ +0xFBC2,0x8060,0x0000, 0xFBC2,0x8061,0x0000, 0xFBC2,0x8062,0x0000, /* 10060 */ +0xFBC2,0x8063,0x0000, 0xFBC2,0x8064,0x0000, 0xFBC2,0x8065,0x0000, /* 10063 */ +0xFBC2,0x8066,0x0000, 0xFBC2,0x8067,0x0000, 0xFBC2,0x8068,0x0000, /* 10066 */ +0xFBC2,0x8069,0x0000, 0xFBC2,0x806A,0x0000, 0xFBC2,0x806B,0x0000, /* 10069 */ +0xFBC2,0x806C,0x0000, 0xFBC2,0x806D,0x0000, 0xFBC2,0x806E,0x0000, /* 1006C */ +0xFBC2,0x806F,0x0000, 0xFBC2,0x8070,0x0000, 0xFBC2,0x8071,0x0000, /* 1006F */ +0xFBC2,0x8072,0x0000, 0xFBC2,0x8073,0x0000, 0xFBC2,0x8074,0x0000, /* 10072 */ +0xFBC2,0x8075,0x0000, 0xFBC2,0x8076,0x0000, 0xFBC2,0x8077,0x0000, /* 10075 */ +0xFBC2,0x8078,0x0000, 0xFBC2,0x8079,0x0000, 0xFBC2,0x807A,0x0000, /* 10078 */ +0xFBC2,0x807B,0x0000, 0xFBC2,0x807C,0x0000, 0xFBC2,0x807D,0x0000, /* 1007B */ +0xFBC2,0x807E,0x0000, 0xFBC2,0x807F,0x0000, 0x31A0,0x0000,0x0000, /* 1007E */ +0x31A1,0x0000,0x0000, 0x31A2,0x0000,0x0000, 0x31A3,0x0000,0x0000, /* 10081 */ +0x31A4,0x0000,0x0000, 0x31A5,0x0000,0x0000, 0x31A6,0x0000,0x0000, /* 10084 */ +0x31A7,0x0000,0x0000, 0x31A8,0x0000,0x0000, 0x31A9,0x0000,0x0000, /* 10087 */ +0x31AA,0x0000,0x0000, 0x31AB,0x0000,0x0000, 0x31AC,0x0000,0x0000, /* 1008A */ +0x31AD,0x0000,0x0000, 0x31AE,0x0000,0x0000, 0x31AF,0x0000,0x0000, /* 1008D */ +0x31B0,0x0000,0x0000, 0x31B1,0x0000,0x0000, 0x31B2,0x0000,0x0000, /* 10090 */ +0x31B3,0x0000,0x0000, 0x31B4,0x0000,0x0000, 0x31B5,0x0000,0x0000, /* 10093 */ +0x31B6,0x0000,0x0000, 0x31B7,0x0000,0x0000, 0x31B8,0x0000,0x0000, /* 10096 */ +0x31B9,0x0000,0x0000, 0x31BA,0x0000,0x0000, 0x31BB,0x0000,0x0000, /* 10099 */ +0x31BC,0x0000,0x0000, 0x31BD,0x0000,0x0000, 0x31BE,0x0000,0x0000, /* 1009C */ +0x31BF,0x0000,0x0000, 0x31C0,0x0000,0x0000, 0x31C1,0x0000,0x0000, /* 1009F */ +0x31C2,0x0000,0x0000, 0x31C3,0x0000,0x0000, 0x31C4,0x0000,0x0000, /* 100A2 */ +0x31C5,0x0000,0x0000, 0x31C6,0x0000,0x0000, 0x31C7,0x0000,0x0000, /* 100A5 */ +0x31C8,0x0000,0x0000, 0x31C9,0x0000,0x0000, 0x31CA,0x0000,0x0000, /* 100A8 */ +0x31CB,0x0000,0x0000, 0x31CC,0x0000,0x0000, 0x31CD,0x0000,0x0000, /* 100AB */ +0x31CE,0x0000,0x0000, 0x31CF,0x0000,0x0000, 0x31D0,0x0000,0x0000, /* 100AE */ +0x31D1,0x0000,0x0000, 0x31D2,0x0000,0x0000, 0x31D3,0x0000,0x0000, /* 100B1 */ +0x31D4,0x0000,0x0000, 0x31D5,0x0000,0x0000, 0x31D6,0x0000,0x0000, /* 100B4 */ +0x31D7,0x0000,0x0000, 0x31D8,0x0000,0x0000, 0x31D9,0x0000,0x0000, /* 100B7 */ +0x31DA,0x0000,0x0000, 0x31DB,0x0000,0x0000, 0x31DC,0x0000,0x0000, /* 100BA */ +0x31DD,0x0000,0x0000, 0x31DE,0x0000,0x0000, 0x31DF,0x0000,0x0000, /* 100BD */ +0x31E0,0x0000,0x0000, 0x31E1,0x0000,0x0000, 0x31E2,0x0000,0x0000, /* 100C0 */ +0x31E3,0x0000,0x0000, 0x31E4,0x0000,0x0000, 0x31E5,0x0000,0x0000, /* 100C3 */ +0x31E6,0x0000,0x0000, 0x31E7,0x0000,0x0000, 0x31E8,0x0000,0x0000, /* 100C6 */ +0x31E9,0x0000,0x0000, 0x31EA,0x0000,0x0000, 0x31EB,0x0000,0x0000, /* 100C9 */ +0x31EC,0x0000,0x0000, 0x31ED,0x0000,0x0000, 0x31EE,0x0000,0x0000, /* 100CC */ +0x31EF,0x0000,0x0000, 0x31F0,0x0000,0x0000, 0x31F1,0x0000,0x0000, /* 100CF */ +0x31F2,0x0000,0x0000, 0x31F3,0x0000,0x0000, 0x31F4,0x0000,0x0000, /* 100D2 */ +0x31F5,0x0000,0x0000, 0x31F6,0x0000,0x0000, 0x31F7,0x0000,0x0000, /* 100D5 */ +0x31F8,0x0000,0x0000, 0x31F9,0x0000,0x0000, 0x31FA,0x0000,0x0000, /* 100D8 */ +0x31FB,0x0000,0x0000, 0x31FC,0x0000,0x0000, 0x31FD,0x0000,0x0000, /* 100DB */ +0x31FE,0x0000,0x0000, 0x31FF,0x0000,0x0000, 0x3200,0x0000,0x0000, /* 100DE */ +0x3201,0x0000,0x0000, 0x3202,0x0000,0x0000, 0x3203,0x0000,0x0000, /* 100E1 */ +0x3204,0x0000,0x0000, 0x3205,0x0000,0x0000, 0x3206,0x0000,0x0000, /* 100E4 */ +0x3207,0x0000,0x0000, 0x3208,0x0000,0x0000, 0x3209,0x0000,0x0000, /* 100E7 */ +0x320A,0x0000,0x0000, 0x320B,0x0000,0x0000, 0x320C,0x0000,0x0000, /* 100EA */ +0x320D,0x0000,0x0000, 0x320E,0x0000,0x0000, 0x320F,0x0000,0x0000, /* 100ED */ +0x3210,0x0000,0x0000, 0x3211,0x0000,0x0000, 0x3212,0x0000,0x0000, /* 100F0 */ +0x3213,0x0000,0x0000, 0x3214,0x0000,0x0000, 0x3215,0x0000,0x0000, /* 100F3 */ +0x3216,0x0000,0x0000, 0x3217,0x0000,0x0000, 0x3218,0x0000,0x0000, /* 100F6 */ +0x3219,0x0000,0x0000, 0x321A,0x0000,0x0000, 0xFBC2,0x80FB,0x0000, /* 100F9 */ +0xFBC2,0x80FC,0x0000, 0xFBC2,0x80FD,0x0000, 0xFBC2,0x80FE,0x0000, /* 100FC */ +0xFBC2,0x80FF,0x0000 }; + +uint16 uca520_p101[]= { /* 10100 (3 weights per char) */ +0x02E4,0x0000,0x0000, 0x02E5,0x0000,0x0000, 0x02E6,0x0000,0x0000, /* 10100 */ +0xFBC2,0x8103,0x0000, 0xFBC2,0x8104,0x0000, 0xFBC2,0x8105,0x0000, /* 10103 */ +0xFBC2,0x8106,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10106 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 10109 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1010C */ +0x120E,0x0000,0x0000, 0x114F,0x0000,0x0000, 0x1150,0x0000,0x0000, /* 1010F */ +0x1151,0x0000,0x0000, 0x1152,0x0000,0x0000, 0x1153,0x0000,0x0000, /* 10112 */ +0x1154,0x0000,0x0000, 0x1155,0x0000,0x0000, 0x1156,0x0000,0x0000, /* 10115 */ +0x1157,0x0000,0x0000, 0x1158,0x0000,0x0000, 0x1159,0x0000,0x0000, /* 10118 */ +0x115A,0x0000,0x0000, 0x115B,0x0000,0x0000, 0x115C,0x0000,0x0000, /* 1011B */ +0x115D,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x115F,0x0000,0x0000, /* 1011E */ +0x1160,0x0000,0x0000, 0x1161,0x0000,0x0000, 0x1162,0x0000,0x0000, /* 10121 */ +0x1163,0x0000,0x0000, 0x1164,0x0000,0x0000, 0x1165,0x0000,0x0000, /* 10124 */ +0x1166,0x0000,0x0000, 0x1167,0x0000,0x0000, 0x1168,0x0000,0x0000, /* 10127 */ +0x1169,0x0000,0x0000, 0x116A,0x0000,0x0000, 0x116B,0x0000,0x0000, /* 1012A */ +0x116C,0x0000,0x0000, 0x116D,0x0000,0x0000, 0x116E,0x0000,0x0000, /* 1012D */ +0x116F,0x0000,0x0000, 0x1170,0x0000,0x0000, 0x1171,0x0000,0x0000, /* 10130 */ +0x1172,0x0000,0x0000, 0xFBC2,0x8134,0x0000, 0xFBC2,0x8135,0x0000, /* 10133 */ +0xFBC2,0x8136,0x0000, 0x0E0C,0x0000,0x0000, 0x0E0D,0x0000,0x0000, /* 10136 */ +0x0E0E,0x0000,0x0000, 0x0E0F,0x0000,0x0000, 0x0E10,0x0000,0x0000, /* 10139 */ +0x0E11,0x0000,0x0000, 0x0E12,0x0000,0x0000, 0x0E13,0x0000,0x0000, /* 1013C */ +0x0E14,0x0000,0x0000, 0x1173,0x0000,0x0000, 0x1174,0x0000,0x0000, /* 1013F */ +0x1206,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x1175,0x0000,0x0000, /* 10142 */ +0x1176,0x0000,0x0000, 0x1177,0x0000,0x0000, 0x1178,0x0000,0x0000, /* 10145 */ +0x120A,0x0000,0x0000, 0x1179,0x0000,0x0000, 0x117A,0x0000,0x0000, /* 10148 */ +0x117B,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x117D,0x0000,0x0000, /* 1014B */ +0x117E,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x117F,0x0000,0x0000, /* 1014E */ +0x1180,0x0000,0x0000, 0x1181,0x0000,0x0000, 0x1182,0x0000,0x0000, /* 10151 */ +0x1183,0x0000,0x0000, 0x1184,0x0000,0x0000, 0x1185,0x0000,0x0000, /* 10154 */ +0x1186,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 10157 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1015A */ +0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1015D */ +0x1187,0x0000,0x0000, 0x1188,0x0000,0x0000, 0x1189,0x0000,0x0000, /* 10160 */ +0x118A,0x0000,0x0000, 0x118B,0x0000,0x0000, 0x118C,0x0000,0x0000, /* 10163 */ +0x118D,0x0000,0x0000, 0x118E,0x0000,0x0000, 0x118F,0x0000,0x0000, /* 10166 */ +0x1190,0x0000,0x0000, 0x1191,0x0000,0x0000, 0x1192,0x0000,0x0000, /* 10169 */ +0x1193,0x0000,0x0000, 0x1194,0x0000,0x0000, 0x1195,0x0000,0x0000, /* 1016C */ +0x1196,0x0000,0x0000, 0x1197,0x0000,0x0000, 0x1198,0x0000,0x0000, /* 1016F */ +0x1199,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x119A,0x0000,0x0000, /* 10172 */ +0x119B,0x0000,0x0000, 0x119C,0x0000,0x0000, 0x119D,0x0000,0x0000, /* 10175 */ +0x119E,0x0000,0x0000, 0x0E15,0x0000,0x0000, 0x0E16,0x0000,0x0000, /* 10178 */ +0x0E17,0x0000,0x0000, 0x0E18,0x0000,0x0000, 0x0E19,0x0000,0x0000, /* 1017B */ +0x0E1A,0x0000,0x0000, 0x0E1B,0x0000,0x0000, 0x0E1C,0x0000,0x0000, /* 1017E */ +0x0E1D,0x0000,0x0000, 0x0E1E,0x0000,0x0000, 0x0E1F,0x0000,0x0000, /* 10181 */ +0x0E20,0x0000,0x0000, 0x0E21,0x0000,0x0000, 0x0E22,0x0000,0x0000, /* 10184 */ +0x0E23,0x0000,0x0000, 0x0E24,0x0000,0x0000, 0x0E25,0x0000,0x0000, /* 10187 */ +0x1205,0x0000,0x0000, 0xFBC2,0x818B,0x0000, 0xFBC2,0x818C,0x0000, /* 1018A */ +0xFBC2,0x818D,0x0000, 0xFBC2,0x818E,0x0000, 0xFBC2,0x818F,0x0000, /* 1018D */ +0x0E26,0x0000,0x0000, 0x0E27,0x0000,0x0000, 0x0E28,0x0000,0x0000, /* 10190 */ +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, /* 10193 */ +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, /* 10196 */ +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, /* 10199 */ +0xFBC2,0x819C,0x0000, 0xFBC2,0x819D,0x0000, 0xFBC2,0x819E,0x0000, /* 1019C */ +0xFBC2,0x819F,0x0000, 0xFBC2,0x81A0,0x0000, 0xFBC2,0x81A1,0x0000, /* 1019F */ +0xFBC2,0x81A2,0x0000, 0xFBC2,0x81A3,0x0000, 0xFBC2,0x81A4,0x0000, /* 101A2 */ +0xFBC2,0x81A5,0x0000, 0xFBC2,0x81A6,0x0000, 0xFBC2,0x81A7,0x0000, /* 101A5 */ +0xFBC2,0x81A8,0x0000, 0xFBC2,0x81A9,0x0000, 0xFBC2,0x81AA,0x0000, /* 101A8 */ +0xFBC2,0x81AB,0x0000, 0xFBC2,0x81AC,0x0000, 0xFBC2,0x81AD,0x0000, /* 101AB */ +0xFBC2,0x81AE,0x0000, 0xFBC2,0x81AF,0x0000, 0xFBC2,0x81B0,0x0000, /* 101AE */ +0xFBC2,0x81B1,0x0000, 0xFBC2,0x81B2,0x0000, 0xFBC2,0x81B3,0x0000, /* 101B1 */ +0xFBC2,0x81B4,0x0000, 0xFBC2,0x81B5,0x0000, 0xFBC2,0x81B6,0x0000, /* 101B4 */ +0xFBC2,0x81B7,0x0000, 0xFBC2,0x81B8,0x0000, 0xFBC2,0x81B9,0x0000, /* 101B7 */ +0xFBC2,0x81BA,0x0000, 0xFBC2,0x81BB,0x0000, 0xFBC2,0x81BC,0x0000, /* 101BA */ +0xFBC2,0x81BD,0x0000, 0xFBC2,0x81BE,0x0000, 0xFBC2,0x81BF,0x0000, /* 101BD */ +0xFBC2,0x81C0,0x0000, 0xFBC2,0x81C1,0x0000, 0xFBC2,0x81C2,0x0000, /* 101C0 */ +0xFBC2,0x81C3,0x0000, 0xFBC2,0x81C4,0x0000, 0xFBC2,0x81C5,0x0000, /* 101C3 */ +0xFBC2,0x81C6,0x0000, 0xFBC2,0x81C7,0x0000, 0xFBC2,0x81C8,0x0000, /* 101C6 */ +0xFBC2,0x81C9,0x0000, 0xFBC2,0x81CA,0x0000, 0xFBC2,0x81CB,0x0000, /* 101C9 */ +0xFBC2,0x81CC,0x0000, 0xFBC2,0x81CD,0x0000, 0xFBC2,0x81CE,0x0000, /* 101CC */ +0xFBC2,0x81CF,0x0000, 0x0E32,0x0000,0x0000, 0x0E33,0x0000,0x0000, /* 101CF */ +0x0E34,0x0000,0x0000, 0x0E35,0x0000,0x0000, 0x0E36,0x0000,0x0000, /* 101D2 */ +0x0E37,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0E39,0x0000,0x0000, /* 101D5 */ +0x0E3A,0x0000,0x0000, 0x0E3B,0x0000,0x0000, 0x0E3C,0x0000,0x0000, /* 101D8 */ +0x0E3D,0x0000,0x0000, 0x0E3E,0x0000,0x0000, 0x0E3F,0x0000,0x0000, /* 101DB */ +0x0E40,0x0000,0x0000, 0x0E41,0x0000,0x0000, 0x0E42,0x0000,0x0000, /* 101DE */ +0x0E43,0x0000,0x0000, 0x0E44,0x0000,0x0000, 0x0E45,0x0000,0x0000, /* 101E1 */ +0x0E46,0x0000,0x0000, 0x0E47,0x0000,0x0000, 0x0E48,0x0000,0x0000, /* 101E4 */ +0x0E49,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E4B,0x0000,0x0000, /* 101E7 */ +0x0E4C,0x0000,0x0000, 0x0E4D,0x0000,0x0000, 0x0E4E,0x0000,0x0000, /* 101EA */ +0x0E4F,0x0000,0x0000, 0x0E50,0x0000,0x0000, 0x0E51,0x0000,0x0000, /* 101ED */ +0x0E52,0x0000,0x0000, 0x0E53,0x0000,0x0000, 0x0E54,0x0000,0x0000, /* 101F0 */ +0x0E55,0x0000,0x0000, 0x0E56,0x0000,0x0000, 0x0E57,0x0000,0x0000, /* 101F3 */ +0x0E58,0x0000,0x0000, 0x0E59,0x0000,0x0000, 0x0E5A,0x0000,0x0000, /* 101F6 */ +0x0E5B,0x0000,0x0000, 0x0E5C,0x0000,0x0000, 0x0E5D,0x0000,0x0000, /* 101F9 */ +0x0E5E,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC2,0x81FE,0x0000, /* 101FC */ +0xFBC2,0x81FF,0x0000 }; + +uint16 uca520_p102[]= { /* 10200 (3 weights per char) */ +0xFBC2,0x8200,0x0000, 0xFBC2,0x8201,0x0000, 0xFBC2,0x8202,0x0000, /* 10200 */ +0xFBC2,0x8203,0x0000, 0xFBC2,0x8204,0x0000, 0xFBC2,0x8205,0x0000, /* 10203 */ +0xFBC2,0x8206,0x0000, 0xFBC2,0x8207,0x0000, 0xFBC2,0x8208,0x0000, /* 10206 */ +0xFBC2,0x8209,0x0000, 0xFBC2,0x820A,0x0000, 0xFBC2,0x820B,0x0000, /* 10209 */ +0xFBC2,0x820C,0x0000, 0xFBC2,0x820D,0x0000, 0xFBC2,0x820E,0x0000, /* 1020C */ +0xFBC2,0x820F,0x0000, 0xFBC2,0x8210,0x0000, 0xFBC2,0x8211,0x0000, /* 1020F */ +0xFBC2,0x8212,0x0000, 0xFBC2,0x8213,0x0000, 0xFBC2,0x8214,0x0000, /* 10212 */ +0xFBC2,0x8215,0x0000, 0xFBC2,0x8216,0x0000, 0xFBC2,0x8217,0x0000, /* 10215 */ +0xFBC2,0x8218,0x0000, 0xFBC2,0x8219,0x0000, 0xFBC2,0x821A,0x0000, /* 10218 */ +0xFBC2,0x821B,0x0000, 0xFBC2,0x821C,0x0000, 0xFBC2,0x821D,0x0000, /* 1021B */ +0xFBC2,0x821E,0x0000, 0xFBC2,0x821F,0x0000, 0xFBC2,0x8220,0x0000, /* 1021E */ +0xFBC2,0x8221,0x0000, 0xFBC2,0x8222,0x0000, 0xFBC2,0x8223,0x0000, /* 10221 */ +0xFBC2,0x8224,0x0000, 0xFBC2,0x8225,0x0000, 0xFBC2,0x8226,0x0000, /* 10224 */ +0xFBC2,0x8227,0x0000, 0xFBC2,0x8228,0x0000, 0xFBC2,0x8229,0x0000, /* 10227 */ +0xFBC2,0x822A,0x0000, 0xFBC2,0x822B,0x0000, 0xFBC2,0x822C,0x0000, /* 1022A */ +0xFBC2,0x822D,0x0000, 0xFBC2,0x822E,0x0000, 0xFBC2,0x822F,0x0000, /* 1022D */ +0xFBC2,0x8230,0x0000, 0xFBC2,0x8231,0x0000, 0xFBC2,0x8232,0x0000, /* 10230 */ +0xFBC2,0x8233,0x0000, 0xFBC2,0x8234,0x0000, 0xFBC2,0x8235,0x0000, /* 10233 */ +0xFBC2,0x8236,0x0000, 0xFBC2,0x8237,0x0000, 0xFBC2,0x8238,0x0000, /* 10236 */ +0xFBC2,0x8239,0x0000, 0xFBC2,0x823A,0x0000, 0xFBC2,0x823B,0x0000, /* 10239 */ +0xFBC2,0x823C,0x0000, 0xFBC2,0x823D,0x0000, 0xFBC2,0x823E,0x0000, /* 1023C */ +0xFBC2,0x823F,0x0000, 0xFBC2,0x8240,0x0000, 0xFBC2,0x8241,0x0000, /* 1023F */ +0xFBC2,0x8242,0x0000, 0xFBC2,0x8243,0x0000, 0xFBC2,0x8244,0x0000, /* 10242 */ +0xFBC2,0x8245,0x0000, 0xFBC2,0x8246,0x0000, 0xFBC2,0x8247,0x0000, /* 10245 */ +0xFBC2,0x8248,0x0000, 0xFBC2,0x8249,0x0000, 0xFBC2,0x824A,0x0000, /* 10248 */ +0xFBC2,0x824B,0x0000, 0xFBC2,0x824C,0x0000, 0xFBC2,0x824D,0x0000, /* 1024B */ +0xFBC2,0x824E,0x0000, 0xFBC2,0x824F,0x0000, 0xFBC2,0x8250,0x0000, /* 1024E */ +0xFBC2,0x8251,0x0000, 0xFBC2,0x8252,0x0000, 0xFBC2,0x8253,0x0000, /* 10251 */ +0xFBC2,0x8254,0x0000, 0xFBC2,0x8255,0x0000, 0xFBC2,0x8256,0x0000, /* 10254 */ +0xFBC2,0x8257,0x0000, 0xFBC2,0x8258,0x0000, 0xFBC2,0x8259,0x0000, /* 10257 */ +0xFBC2,0x825A,0x0000, 0xFBC2,0x825B,0x0000, 0xFBC2,0x825C,0x0000, /* 1025A */ +0xFBC2,0x825D,0x0000, 0xFBC2,0x825E,0x0000, 0xFBC2,0x825F,0x0000, /* 1025D */ +0xFBC2,0x8260,0x0000, 0xFBC2,0x8261,0x0000, 0xFBC2,0x8262,0x0000, /* 10260 */ +0xFBC2,0x8263,0x0000, 0xFBC2,0x8264,0x0000, 0xFBC2,0x8265,0x0000, /* 10263 */ +0xFBC2,0x8266,0x0000, 0xFBC2,0x8267,0x0000, 0xFBC2,0x8268,0x0000, /* 10266 */ +0xFBC2,0x8269,0x0000, 0xFBC2,0x826A,0x0000, 0xFBC2,0x826B,0x0000, /* 10269 */ +0xFBC2,0x826C,0x0000, 0xFBC2,0x826D,0x0000, 0xFBC2,0x826E,0x0000, /* 1026C */ +0xFBC2,0x826F,0x0000, 0xFBC2,0x8270,0x0000, 0xFBC2,0x8271,0x0000, /* 1026F */ +0xFBC2,0x8272,0x0000, 0xFBC2,0x8273,0x0000, 0xFBC2,0x8274,0x0000, /* 10272 */ +0xFBC2,0x8275,0x0000, 0xFBC2,0x8276,0x0000, 0xFBC2,0x8277,0x0000, /* 10275 */ +0xFBC2,0x8278,0x0000, 0xFBC2,0x8279,0x0000, 0xFBC2,0x827A,0x0000, /* 10278 */ +0xFBC2,0x827B,0x0000, 0xFBC2,0x827C,0x0000, 0xFBC2,0x827D,0x0000, /* 1027B */ +0xFBC2,0x827E,0x0000, 0xFBC2,0x827F,0x0000, 0x3030,0x0000,0x0000, /* 1027E */ +0x3031,0x0000,0x0000, 0x3032,0x0000,0x0000, 0x3033,0x0000,0x0000, /* 10281 */ +0x3034,0x0000,0x0000, 0x3035,0x0000,0x0000, 0x3036,0x0000,0x0000, /* 10284 */ +0x3037,0x0000,0x0000, 0x3038,0x0000,0x0000, 0x3039,0x0000,0x0000, /* 10287 */ +0x303A,0x0000,0x0000, 0x303B,0x0000,0x0000, 0x303C,0x0000,0x0000, /* 1028A */ +0x303D,0x0000,0x0000, 0x303E,0x0000,0x0000, 0x303F,0x0000,0x0000, /* 1028D */ +0x3040,0x0000,0x0000, 0x3041,0x0000,0x0000, 0x3042,0x0000,0x0000, /* 10290 */ +0x3043,0x0000,0x0000, 0x3044,0x0000,0x0000, 0x3045,0x0000,0x0000, /* 10293 */ +0x3046,0x0000,0x0000, 0x3047,0x0000,0x0000, 0x3048,0x0000,0x0000, /* 10296 */ +0x3049,0x0000,0x0000, 0x304A,0x0000,0x0000, 0x304B,0x0000,0x0000, /* 10299 */ +0x304C,0x0000,0x0000, 0xFBC2,0x829D,0x0000, 0xFBC2,0x829E,0x0000, /* 1029C */ +0xFBC2,0x829F,0x0000, 0x304D,0x0000,0x0000, 0x304E,0x0000,0x0000, /* 1029F */ +0x304F,0x0000,0x0000, 0x3050,0x0000,0x0000, 0x3051,0x0000,0x0000, /* 102A2 */ +0x3052,0x0000,0x0000, 0x3053,0x0000,0x0000, 0x3054,0x0000,0x0000, /* 102A5 */ +0x3055,0x0000,0x0000, 0x3056,0x0000,0x0000, 0x3057,0x0000,0x0000, /* 102A8 */ +0x3058,0x0000,0x0000, 0x3059,0x0000,0x0000, 0x305A,0x0000,0x0000, /* 102AB */ +0x305B,0x0000,0x0000, 0x305C,0x0000,0x0000, 0x305D,0x0000,0x0000, /* 102AE */ +0x305E,0x0000,0x0000, 0x305F,0x0000,0x0000, 0x3060,0x0000,0x0000, /* 102B1 */ +0x3061,0x0000,0x0000, 0x3062,0x0000,0x0000, 0x3063,0x0000,0x0000, /* 102B4 */ +0x3064,0x0000,0x0000, 0x3065,0x0000,0x0000, 0x3066,0x0000,0x0000, /* 102B7 */ +0x3067,0x0000,0x0000, 0x3068,0x0000,0x0000, 0x3069,0x0000,0x0000, /* 102BA */ +0x306A,0x0000,0x0000, 0x306B,0x0000,0x0000, 0x306C,0x0000,0x0000, /* 102BD */ +0x306D,0x0000,0x0000, 0x306E,0x0000,0x0000, 0x306F,0x0000,0x0000, /* 102C0 */ +0x3070,0x0000,0x0000, 0x3071,0x0000,0x0000, 0x3072,0x0000,0x0000, /* 102C3 */ +0x3073,0x0000,0x0000, 0x3074,0x0000,0x0000, 0x3075,0x0000,0x0000, /* 102C6 */ +0x3076,0x0000,0x0000, 0x3077,0x0000,0x0000, 0x3078,0x0000,0x0000, /* 102C9 */ +0x3079,0x0000,0x0000, 0x307A,0x0000,0x0000, 0x307B,0x0000,0x0000, /* 102CC */ +0x307C,0x0000,0x0000, 0x307D,0x0000,0x0000, 0xFBC2,0x82D1,0x0000, /* 102CF */ +0xFBC2,0x82D2,0x0000, 0xFBC2,0x82D3,0x0000, 0xFBC2,0x82D4,0x0000, /* 102D2 */ +0xFBC2,0x82D5,0x0000, 0xFBC2,0x82D6,0x0000, 0xFBC2,0x82D7,0x0000, /* 102D5 */ +0xFBC2,0x82D8,0x0000, 0xFBC2,0x82D9,0x0000, 0xFBC2,0x82DA,0x0000, /* 102D8 */ +0xFBC2,0x82DB,0x0000, 0xFBC2,0x82DC,0x0000, 0xFBC2,0x82DD,0x0000, /* 102DB */ +0xFBC2,0x82DE,0x0000, 0xFBC2,0x82DF,0x0000, 0xFBC2,0x82E0,0x0000, /* 102DE */ +0xFBC2,0x82E1,0x0000, 0xFBC2,0x82E2,0x0000, 0xFBC2,0x82E3,0x0000, /* 102E1 */ +0xFBC2,0x82E4,0x0000, 0xFBC2,0x82E5,0x0000, 0xFBC2,0x82E6,0x0000, /* 102E4 */ +0xFBC2,0x82E7,0x0000, 0xFBC2,0x82E8,0x0000, 0xFBC2,0x82E9,0x0000, /* 102E7 */ +0xFBC2,0x82EA,0x0000, 0xFBC2,0x82EB,0x0000, 0xFBC2,0x82EC,0x0000, /* 102EA */ +0xFBC2,0x82ED,0x0000, 0xFBC2,0x82EE,0x0000, 0xFBC2,0x82EF,0x0000, /* 102ED */ +0xFBC2,0x82F0,0x0000, 0xFBC2,0x82F1,0x0000, 0xFBC2,0x82F2,0x0000, /* 102F0 */ +0xFBC2,0x82F3,0x0000, 0xFBC2,0x82F4,0x0000, 0xFBC2,0x82F5,0x0000, /* 102F3 */ +0xFBC2,0x82F6,0x0000, 0xFBC2,0x82F7,0x0000, 0xFBC2,0x82F8,0x0000, /* 102F6 */ +0xFBC2,0x82F9,0x0000, 0xFBC2,0x82FA,0x0000, 0xFBC2,0x82FB,0x0000, /* 102F9 */ +0xFBC2,0x82FC,0x0000, 0xFBC2,0x82FD,0x0000, 0xFBC2,0x82FE,0x0000, /* 102FC */ +0xFBC2,0x82FF,0x0000 }; + +uint16 uca520_p103[]= { /* 10300 (3 weights per char) */ +0x3098,0x0000,0x0000, 0x3099,0x0000,0x0000, 0x309A,0x0000,0x0000, /* 10300 */ +0x309B,0x0000,0x0000, 0x309C,0x0000,0x0000, 0x309D,0x0000,0x0000, /* 10303 */ +0x309E,0x0000,0x0000, 0x309F,0x0000,0x0000, 0x30A0,0x0000,0x0000, /* 10306 */ +0x30A1,0x0000,0x0000, 0x30A2,0x0000,0x0000, 0x30A3,0x0000,0x0000, /* 10309 */ +0x30A4,0x0000,0x0000, 0x30A5,0x0000,0x0000, 0x30A6,0x0000,0x0000, /* 1030C */ +0x30A7,0x0000,0x0000, 0x30A8,0x0000,0x0000, 0x30A9,0x0000,0x0000, /* 1030F */ +0x30AA,0x0000,0x0000, 0x30AB,0x0000,0x0000, 0x30AC,0x0000,0x0000, /* 10312 */ +0x30AD,0x0000,0x0000, 0x30AE,0x0000,0x0000, 0x30AF,0x0000,0x0000, /* 10315 */ +0x30B0,0x0000,0x0000, 0x30B1,0x0000,0x0000, 0x30B2,0x0000,0x0000, /* 10318 */ +0x30B3,0x0000,0x0000, 0x30B4,0x0000,0x0000, 0x30B5,0x0000,0x0000, /* 1031B */ +0x30B6,0x0000,0x0000, 0xFBC2,0x831F,0x0000, 0x1206,0x0000,0x0000, /* 1031E */ +0x120A,0x0000,0x0000, 0x114D,0x0000,0x0000, 0x114E,0x0000,0x0000, /* 10321 */ +0xFBC2,0x8324,0x0000, 0xFBC2,0x8325,0x0000, 0xFBC2,0x8326,0x0000, /* 10324 */ +0xFBC2,0x8327,0x0000, 0xFBC2,0x8328,0x0000, 0xFBC2,0x8329,0x0000, /* 10327 */ +0xFBC2,0x832A,0x0000, 0xFBC2,0x832B,0x0000, 0xFBC2,0x832C,0x0000, /* 1032A */ +0xFBC2,0x832D,0x0000, 0xFBC2,0x832E,0x0000, 0xFBC2,0x832F,0x0000, /* 1032D */ +0x30B7,0x0000,0x0000, 0x30B8,0x0000,0x0000, 0x30B9,0x0000,0x0000, /* 10330 */ +0x30BA,0x0000,0x0000, 0x30BB,0x0000,0x0000, 0x30BC,0x0000,0x0000, /* 10333 */ +0x30BD,0x0000,0x0000, 0x30BE,0x0000,0x0000, 0x30BF,0x0000,0x0000, /* 10336 */ +0x30C0,0x0000,0x0000, 0x30C1,0x0000,0x0000, 0x30C2,0x0000,0x0000, /* 10339 */ +0x30C3,0x0000,0x0000, 0x30C4,0x0000,0x0000, 0x30C5,0x0000,0x0000, /* 1033C */ +0x30C6,0x0000,0x0000, 0x30C7,0x0000,0x0000, 0x30C8,0x0000,0x0000, /* 1033F */ +0x30C9,0x0000,0x0000, 0x30CA,0x0000,0x0000, 0x30CB,0x0000,0x0000, /* 10342 */ +0x30CC,0x0000,0x0000, 0x30CD,0x0000,0x0000, 0x30CE,0x0000,0x0000, /* 10345 */ +0x30CF,0x0000,0x0000, 0x30D0,0x0000,0x0000, 0x30D1,0x0000,0x0000, /* 10348 */ +0xFBC2,0x834B,0x0000, 0xFBC2,0x834C,0x0000, 0xFBC2,0x834D,0x0000, /* 1034B */ +0xFBC2,0x834E,0x0000, 0xFBC2,0x834F,0x0000, 0xFBC2,0x8350,0x0000, /* 1034E */ +0xFBC2,0x8351,0x0000, 0xFBC2,0x8352,0x0000, 0xFBC2,0x8353,0x0000, /* 10351 */ +0xFBC2,0x8354,0x0000, 0xFBC2,0x8355,0x0000, 0xFBC2,0x8356,0x0000, /* 10354 */ +0xFBC2,0x8357,0x0000, 0xFBC2,0x8358,0x0000, 0xFBC2,0x8359,0x0000, /* 10357 */ +0xFBC2,0x835A,0x0000, 0xFBC2,0x835B,0x0000, 0xFBC2,0x835C,0x0000, /* 1035A */ +0xFBC2,0x835D,0x0000, 0xFBC2,0x835E,0x0000, 0xFBC2,0x835F,0x0000, /* 1035D */ +0xFBC2,0x8360,0x0000, 0xFBC2,0x8361,0x0000, 0xFBC2,0x8362,0x0000, /* 10360 */ +0xFBC2,0x8363,0x0000, 0xFBC2,0x8364,0x0000, 0xFBC2,0x8365,0x0000, /* 10363 */ +0xFBC2,0x8366,0x0000, 0xFBC2,0x8367,0x0000, 0xFBC2,0x8368,0x0000, /* 10366 */ +0xFBC2,0x8369,0x0000, 0xFBC2,0x836A,0x0000, 0xFBC2,0x836B,0x0000, /* 10369 */ +0xFBC2,0x836C,0x0000, 0xFBC2,0x836D,0x0000, 0xFBC2,0x836E,0x0000, /* 1036C */ +0xFBC2,0x836F,0x0000, 0xFBC2,0x8370,0x0000, 0xFBC2,0x8371,0x0000, /* 1036F */ +0xFBC2,0x8372,0x0000, 0xFBC2,0x8373,0x0000, 0xFBC2,0x8374,0x0000, /* 10372 */ +0xFBC2,0x8375,0x0000, 0xFBC2,0x8376,0x0000, 0xFBC2,0x8377,0x0000, /* 10375 */ +0xFBC2,0x8378,0x0000, 0xFBC2,0x8379,0x0000, 0xFBC2,0x837A,0x0000, /* 10378 */ +0xFBC2,0x837B,0x0000, 0xFBC2,0x837C,0x0000, 0xFBC2,0x837D,0x0000, /* 1037B */ +0xFBC2,0x837E,0x0000, 0xFBC2,0x837F,0x0000, 0x32E3,0x0000,0x0000, /* 1037E */ +0x32E4,0x0000,0x0000, 0x32E5,0x0000,0x0000, 0x32E6,0x0000,0x0000, /* 10381 */ +0x32E7,0x0000,0x0000, 0x32E8,0x0000,0x0000, 0x32E9,0x0000,0x0000, /* 10384 */ +0x32EA,0x0000,0x0000, 0x32EB,0x0000,0x0000, 0x32EC,0x0000,0x0000, /* 10387 */ +0x32ED,0x0000,0x0000, 0x32EE,0x0000,0x0000, 0x32EF,0x0000,0x0000, /* 1038A */ +0x32F0,0x0000,0x0000, 0x32F1,0x0000,0x0000, 0x32F2,0x0000,0x0000, /* 1038D */ +0x32F3,0x0000,0x0000, 0x32F4,0x0000,0x0000, 0x32F5,0x0000,0x0000, /* 10390 */ +0x32F6,0x0000,0x0000, 0x32F7,0x0000,0x0000, 0x32F8,0x0000,0x0000, /* 10393 */ +0x32F9,0x0000,0x0000, 0x32FA,0x0000,0x0000, 0x32FB,0x0000,0x0000, /* 10396 */ +0x32FC,0x0000,0x0000, 0x32FD,0x0000,0x0000, 0x32FE,0x0000,0x0000, /* 10399 */ +0x32FF,0x0000,0x0000, 0x3300,0x0000,0x0000, 0xFBC2,0x839E,0x0000, /* 1039C */ +0x02E7,0x0000,0x0000, 0x3301,0x0000,0x0000, 0x3302,0x0000,0x0000, /* 1039F */ +0x3303,0x0000,0x0000, 0x3304,0x0000,0x0000, 0x3305,0x0000,0x0000, /* 103A2 */ +0x3306,0x0000,0x0000, 0x3307,0x0000,0x0000, 0x3308,0x0000,0x0000, /* 103A5 */ +0x3309,0x0000,0x0000, 0x330A,0x0000,0x0000, 0x330B,0x0000,0x0000, /* 103A8 */ +0x330C,0x0000,0x0000, 0x330D,0x0000,0x0000, 0x330E,0x0000,0x0000, /* 103AB */ +0x330F,0x0000,0x0000, 0x3310,0x0000,0x0000, 0x3311,0x0000,0x0000, /* 103AE */ +0x3312,0x0000,0x0000, 0x3313,0x0000,0x0000, 0x3314,0x0000,0x0000, /* 103B1 */ +0x3315,0x0000,0x0000, 0x3316,0x0000,0x0000, 0x3317,0x0000,0x0000, /* 103B4 */ +0x3318,0x0000,0x0000, 0x3319,0x0000,0x0000, 0x331A,0x0000,0x0000, /* 103B7 */ +0x331B,0x0000,0x0000, 0x331C,0x0000,0x0000, 0x331D,0x0000,0x0000, /* 103BA */ +0x331E,0x0000,0x0000, 0x331F,0x0000,0x0000, 0x3320,0x0000,0x0000, /* 103BD */ +0x3321,0x0000,0x0000, 0x3322,0x0000,0x0000, 0x3323,0x0000,0x0000, /* 103C0 */ +0x3324,0x0000,0x0000, 0xFBC2,0x83C4,0x0000, 0xFBC2,0x83C5,0x0000, /* 103C3 */ +0xFBC2,0x83C6,0x0000, 0xFBC2,0x83C7,0x0000, 0x3325,0x0000,0x0000, /* 103C6 */ +0x3326,0x0000,0x0000, 0x3327,0x0000,0x0000, 0x3328,0x0000,0x0000, /* 103C9 */ +0x3329,0x0000,0x0000, 0x332A,0x0000,0x0000, 0x332B,0x0000,0x0000, /* 103CC */ +0x332C,0x0000,0x0000, 0x02E8,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 103CF */ +0x1207,0x0000,0x0000, 0x119F,0x0000,0x0000, 0x11A0,0x0000,0x0000, /* 103D2 */ +0x11A1,0x0000,0x0000, 0xFBC2,0x83D6,0x0000, 0xFBC2,0x83D7,0x0000, /* 103D5 */ +0xFBC2,0x83D8,0x0000, 0xFBC2,0x83D9,0x0000, 0xFBC2,0x83DA,0x0000, /* 103D8 */ +0xFBC2,0x83DB,0x0000, 0xFBC2,0x83DC,0x0000, 0xFBC2,0x83DD,0x0000, /* 103DB */ +0xFBC2,0x83DE,0x0000, 0xFBC2,0x83DF,0x0000, 0xFBC2,0x83E0,0x0000, /* 103DE */ +0xFBC2,0x83E1,0x0000, 0xFBC2,0x83E2,0x0000, 0xFBC2,0x83E3,0x0000, /* 103E1 */ +0xFBC2,0x83E4,0x0000, 0xFBC2,0x83E5,0x0000, 0xFBC2,0x83E6,0x0000, /* 103E4 */ +0xFBC2,0x83E7,0x0000, 0xFBC2,0x83E8,0x0000, 0xFBC2,0x83E9,0x0000, /* 103E7 */ +0xFBC2,0x83EA,0x0000, 0xFBC2,0x83EB,0x0000, 0xFBC2,0x83EC,0x0000, /* 103EA */ +0xFBC2,0x83ED,0x0000, 0xFBC2,0x83EE,0x0000, 0xFBC2,0x83EF,0x0000, /* 103ED */ +0xFBC2,0x83F0,0x0000, 0xFBC2,0x83F1,0x0000, 0xFBC2,0x83F2,0x0000, /* 103F0 */ +0xFBC2,0x83F3,0x0000, 0xFBC2,0x83F4,0x0000, 0xFBC2,0x83F5,0x0000, /* 103F3 */ +0xFBC2,0x83F6,0x0000, 0xFBC2,0x83F7,0x0000, 0xFBC2,0x83F8,0x0000, /* 103F6 */ +0xFBC2,0x83F9,0x0000, 0xFBC2,0x83FA,0x0000, 0xFBC2,0x83FB,0x0000, /* 103F9 */ +0xFBC2,0x83FC,0x0000, 0xFBC2,0x83FD,0x0000, 0xFBC2,0x83FE,0x0000, /* 103FC */ +0xFBC2,0x83FF,0x0000 }; + +uint16 uca520_p104[]= { /* 10400 (3 weights per char) */ +0x30D2,0x0000,0x0000, 0x30D3,0x0000,0x0000, 0x30D4,0x0000,0x0000, /* 10400 */ +0x30D5,0x0000,0x0000, 0x30D6,0x0000,0x0000, 0x30D7,0x0000,0x0000, /* 10403 */ +0x30D8,0x0000,0x0000, 0x30D9,0x0000,0x0000, 0x30DA,0x0000,0x0000, /* 10406 */ +0x30DB,0x0000,0x0000, 0x30DC,0x0000,0x0000, 0x30DD,0x0000,0x0000, /* 10409 */ +0x30DE,0x0000,0x0000, 0x30DF,0x0000,0x0000, 0x30E0,0x0000,0x0000, /* 1040C */ +0x30E1,0x0000,0x0000, 0x30E2,0x0000,0x0000, 0x30E3,0x0000,0x0000, /* 1040F */ +0x30E4,0x0000,0x0000, 0x30E5,0x0000,0x0000, 0x30E6,0x0000,0x0000, /* 10412 */ +0x30E7,0x0000,0x0000, 0x30E8,0x0000,0x0000, 0x30E9,0x0000,0x0000, /* 10415 */ +0x30EA,0x0000,0x0000, 0x30EB,0x0000,0x0000, 0x30EC,0x0000,0x0000, /* 10418 */ +0x30ED,0x0000,0x0000, 0x30EE,0x0000,0x0000, 0x30EF,0x0000,0x0000, /* 1041B */ +0x30F0,0x0000,0x0000, 0x30F1,0x0000,0x0000, 0x30F2,0x0000,0x0000, /* 1041E */ +0x30F3,0x0000,0x0000, 0x30F4,0x0000,0x0000, 0x30F5,0x0000,0x0000, /* 10421 */ +0x30F6,0x0000,0x0000, 0x30F7,0x0000,0x0000, 0x30F8,0x0000,0x0000, /* 10424 */ +0x30F9,0x0000,0x0000, 0x30D2,0x0000,0x0000, 0x30D3,0x0000,0x0000, /* 10427 */ +0x30D4,0x0000,0x0000, 0x30D5,0x0000,0x0000, 0x30D6,0x0000,0x0000, /* 1042A */ +0x30D7,0x0000,0x0000, 0x30D8,0x0000,0x0000, 0x30D9,0x0000,0x0000, /* 1042D */ +0x30DA,0x0000,0x0000, 0x30DB,0x0000,0x0000, 0x30DC,0x0000,0x0000, /* 10430 */ +0x30DD,0x0000,0x0000, 0x30DE,0x0000,0x0000, 0x30DF,0x0000,0x0000, /* 10433 */ +0x30E0,0x0000,0x0000, 0x30E1,0x0000,0x0000, 0x30E2,0x0000,0x0000, /* 10436 */ +0x30E3,0x0000,0x0000, 0x30E4,0x0000,0x0000, 0x30E5,0x0000,0x0000, /* 10439 */ +0x30E6,0x0000,0x0000, 0x30E7,0x0000,0x0000, 0x30E8,0x0000,0x0000, /* 1043C */ +0x30E9,0x0000,0x0000, 0x30EA,0x0000,0x0000, 0x30EB,0x0000,0x0000, /* 1043F */ +0x30EC,0x0000,0x0000, 0x30ED,0x0000,0x0000, 0x30EE,0x0000,0x0000, /* 10442 */ +0x30EF,0x0000,0x0000, 0x30F0,0x0000,0x0000, 0x30F1,0x0000,0x0000, /* 10445 */ +0x30F2,0x0000,0x0000, 0x30F3,0x0000,0x0000, 0x30F4,0x0000,0x0000, /* 10448 */ +0x30F5,0x0000,0x0000, 0x30F6,0x0000,0x0000, 0x30F7,0x0000,0x0000, /* 1044B */ +0x30F8,0x0000,0x0000, 0x30F9,0x0000,0x0000, 0x30FA,0x0000,0x0000, /* 1044E */ +0x30FB,0x0000,0x0000, 0x30FC,0x0000,0x0000, 0x30FD,0x0000,0x0000, /* 10451 */ +0x30FE,0x0000,0x0000, 0x30FF,0x0000,0x0000, 0x3100,0x0000,0x0000, /* 10454 */ +0x3101,0x0000,0x0000, 0x3102,0x0000,0x0000, 0x3103,0x0000,0x0000, /* 10457 */ +0x3104,0x0000,0x0000, 0x3105,0x0000,0x0000, 0x3106,0x0000,0x0000, /* 1045A */ +0x3107,0x0000,0x0000, 0x3108,0x0000,0x0000, 0x3109,0x0000,0x0000, /* 1045D */ +0x310A,0x0000,0x0000, 0x310B,0x0000,0x0000, 0x310C,0x0000,0x0000, /* 10460 */ +0x310D,0x0000,0x0000, 0x310E,0x0000,0x0000, 0x310F,0x0000,0x0000, /* 10463 */ +0x3110,0x0000,0x0000, 0x3111,0x0000,0x0000, 0x3112,0x0000,0x0000, /* 10466 */ +0x3113,0x0000,0x0000, 0x3114,0x0000,0x0000, 0x3115,0x0000,0x0000, /* 10469 */ +0x3116,0x0000,0x0000, 0x3117,0x0000,0x0000, 0x3118,0x0000,0x0000, /* 1046C */ +0x3119,0x0000,0x0000, 0x311A,0x0000,0x0000, 0x311B,0x0000,0x0000, /* 1046F */ +0x311C,0x0000,0x0000, 0x311D,0x0000,0x0000, 0x311E,0x0000,0x0000, /* 10472 */ +0x311F,0x0000,0x0000, 0x3120,0x0000,0x0000, 0x3121,0x0000,0x0000, /* 10475 */ +0x3122,0x0000,0x0000, 0x3123,0x0000,0x0000, 0x3124,0x0000,0x0000, /* 10478 */ +0x3125,0x0000,0x0000, 0x3126,0x0000,0x0000, 0x3127,0x0000,0x0000, /* 1047B */ +0x3128,0x0000,0x0000, 0x3129,0x0000,0x0000, 0x312A,0x0000,0x0000, /* 1047E */ +0x312B,0x0000,0x0000, 0x312C,0x0000,0x0000, 0x312D,0x0000,0x0000, /* 10481 */ +0x312E,0x0000,0x0000, 0x312F,0x0000,0x0000, 0x3130,0x0000,0x0000, /* 10484 */ +0x3131,0x0000,0x0000, 0x3132,0x0000,0x0000, 0x3133,0x0000,0x0000, /* 10487 */ +0x3134,0x0000,0x0000, 0x3135,0x0000,0x0000, 0x3136,0x0000,0x0000, /* 1048A */ +0x3137,0x0000,0x0000, 0x3138,0x0000,0x0000, 0x3139,0x0000,0x0000, /* 1048D */ +0x313A,0x0000,0x0000, 0x313B,0x0000,0x0000, 0x313C,0x0000,0x0000, /* 10490 */ +0x313D,0x0000,0x0000, 0x313E,0x0000,0x0000, 0x313F,0x0000,0x0000, /* 10493 */ +0x3140,0x0000,0x0000, 0x3141,0x0000,0x0000, 0x3142,0x0000,0x0000, /* 10496 */ +0x3143,0x0000,0x0000, 0x3144,0x0000,0x0000, 0x3145,0x0000,0x0000, /* 10499 */ +0x3146,0x0000,0x0000, 0x3147,0x0000,0x0000, 0xFBC2,0x849E,0x0000, /* 1049C */ +0xFBC2,0x849F,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1049F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 104A2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 104A5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC2,0x84AA,0x0000, /* 104A8 */ +0xFBC2,0x84AB,0x0000, 0xFBC2,0x84AC,0x0000, 0xFBC2,0x84AD,0x0000, /* 104AB */ +0xFBC2,0x84AE,0x0000, 0xFBC2,0x84AF,0x0000, 0xFBC2,0x84B0,0x0000, /* 104AE */ +0xFBC2,0x84B1,0x0000, 0xFBC2,0x84B2,0x0000, 0xFBC2,0x84B3,0x0000, /* 104B1 */ +0xFBC2,0x84B4,0x0000, 0xFBC2,0x84B5,0x0000, 0xFBC2,0x84B6,0x0000, /* 104B4 */ +0xFBC2,0x84B7,0x0000, 0xFBC2,0x84B8,0x0000, 0xFBC2,0x84B9,0x0000, /* 104B7 */ +0xFBC2,0x84BA,0x0000, 0xFBC2,0x84BB,0x0000, 0xFBC2,0x84BC,0x0000, /* 104BA */ +0xFBC2,0x84BD,0x0000, 0xFBC2,0x84BE,0x0000, 0xFBC2,0x84BF,0x0000, /* 104BD */ +0xFBC2,0x84C0,0x0000, 0xFBC2,0x84C1,0x0000, 0xFBC2,0x84C2,0x0000, /* 104C0 */ +0xFBC2,0x84C3,0x0000, 0xFBC2,0x84C4,0x0000, 0xFBC2,0x84C5,0x0000, /* 104C3 */ +0xFBC2,0x84C6,0x0000, 0xFBC2,0x84C7,0x0000, 0xFBC2,0x84C8,0x0000, /* 104C6 */ +0xFBC2,0x84C9,0x0000, 0xFBC2,0x84CA,0x0000, 0xFBC2,0x84CB,0x0000, /* 104C9 */ +0xFBC2,0x84CC,0x0000, 0xFBC2,0x84CD,0x0000, 0xFBC2,0x84CE,0x0000, /* 104CC */ +0xFBC2,0x84CF,0x0000, 0xFBC2,0x84D0,0x0000, 0xFBC2,0x84D1,0x0000, /* 104CF */ +0xFBC2,0x84D2,0x0000, 0xFBC2,0x84D3,0x0000, 0xFBC2,0x84D4,0x0000, /* 104D2 */ +0xFBC2,0x84D5,0x0000, 0xFBC2,0x84D6,0x0000, 0xFBC2,0x84D7,0x0000, /* 104D5 */ +0xFBC2,0x84D8,0x0000, 0xFBC2,0x84D9,0x0000, 0xFBC2,0x84DA,0x0000, /* 104D8 */ +0xFBC2,0x84DB,0x0000, 0xFBC2,0x84DC,0x0000, 0xFBC2,0x84DD,0x0000, /* 104DB */ +0xFBC2,0x84DE,0x0000, 0xFBC2,0x84DF,0x0000, 0xFBC2,0x84E0,0x0000, /* 104DE */ +0xFBC2,0x84E1,0x0000, 0xFBC2,0x84E2,0x0000, 0xFBC2,0x84E3,0x0000, /* 104E1 */ +0xFBC2,0x84E4,0x0000, 0xFBC2,0x84E5,0x0000, 0xFBC2,0x84E6,0x0000, /* 104E4 */ +0xFBC2,0x84E7,0x0000, 0xFBC2,0x84E8,0x0000, 0xFBC2,0x84E9,0x0000, /* 104E7 */ +0xFBC2,0x84EA,0x0000, 0xFBC2,0x84EB,0x0000, 0xFBC2,0x84EC,0x0000, /* 104EA */ +0xFBC2,0x84ED,0x0000, 0xFBC2,0x84EE,0x0000, 0xFBC2,0x84EF,0x0000, /* 104ED */ +0xFBC2,0x84F0,0x0000, 0xFBC2,0x84F1,0x0000, 0xFBC2,0x84F2,0x0000, /* 104F0 */ +0xFBC2,0x84F3,0x0000, 0xFBC2,0x84F4,0x0000, 0xFBC2,0x84F5,0x0000, /* 104F3 */ +0xFBC2,0x84F6,0x0000, 0xFBC2,0x84F7,0x0000, 0xFBC2,0x84F8,0x0000, /* 104F6 */ +0xFBC2,0x84F9,0x0000, 0xFBC2,0x84FA,0x0000, 0xFBC2,0x84FB,0x0000, /* 104F9 */ +0xFBC2,0x84FC,0x0000, 0xFBC2,0x84FD,0x0000, 0xFBC2,0x84FE,0x0000, /* 104FC */ +0xFBC2,0x84FF,0x0000 }; + +uint16 uca520_p108[]= { /* 10800 (3 weights per char) */ +0x321B,0x0000,0x0000, 0x321C,0x0000,0x0000, 0x321D,0x0000,0x0000, /* 10800 */ +0x321E,0x0000,0x0000, 0x321F,0x0000,0x0000, 0x3220,0x0000,0x0000, /* 10803 */ +0xFBC2,0x8806,0x0000, 0xFBC2,0x8807,0x0000, 0x3221,0x0000,0x0000, /* 10806 */ +0xFBC2,0x8809,0x0000, 0x3222,0x0000,0x0000, 0x3223,0x0000,0x0000, /* 10809 */ +0x3224,0x0000,0x0000, 0x3225,0x0000,0x0000, 0x3226,0x0000,0x0000, /* 1080C */ +0x3227,0x0000,0x0000, 0x3228,0x0000,0x0000, 0x3229,0x0000,0x0000, /* 1080F */ +0x322A,0x0000,0x0000, 0x322B,0x0000,0x0000, 0x322C,0x0000,0x0000, /* 10812 */ +0x322D,0x0000,0x0000, 0x322E,0x0000,0x0000, 0x322F,0x0000,0x0000, /* 10815 */ +0x3230,0x0000,0x0000, 0x3231,0x0000,0x0000, 0x3232,0x0000,0x0000, /* 10818 */ +0x3233,0x0000,0x0000, 0x3234,0x0000,0x0000, 0x3235,0x0000,0x0000, /* 1081B */ +0x3236,0x0000,0x0000, 0x3237,0x0000,0x0000, 0x3238,0x0000,0x0000, /* 1081E */ +0x3239,0x0000,0x0000, 0x323A,0x0000,0x0000, 0x323B,0x0000,0x0000, /* 10821 */ +0x323C,0x0000,0x0000, 0x323D,0x0000,0x0000, 0x323E,0x0000,0x0000, /* 10824 */ +0x323F,0x0000,0x0000, 0x3240,0x0000,0x0000, 0x3241,0x0000,0x0000, /* 10827 */ +0x3242,0x0000,0x0000, 0x3243,0x0000,0x0000, 0x3244,0x0000,0x0000, /* 1082A */ +0x3245,0x0000,0x0000, 0x3246,0x0000,0x0000, 0x3247,0x0000,0x0000, /* 1082D */ +0x3248,0x0000,0x0000, 0x3249,0x0000,0x0000, 0x324A,0x0000,0x0000, /* 10830 */ +0x324B,0x0000,0x0000, 0x324C,0x0000,0x0000, 0x324D,0x0000,0x0000, /* 10833 */ +0xFBC2,0x8836,0x0000, 0x324E,0x0000,0x0000, 0x324F,0x0000,0x0000, /* 10836 */ +0xFBC2,0x8839,0x0000, 0xFBC2,0x883A,0x0000, 0xFBC2,0x883B,0x0000, /* 10839 */ +0x3250,0x0000,0x0000, 0xFBC2,0x883D,0x0000, 0xFBC2,0x883E,0x0000, /* 1083C */ +0x3251,0x0000,0x0000, 0x32A4,0x0000,0x0000, 0x32A5,0x0000,0x0000, /* 1083F */ +0x32A6,0x0000,0x0000, 0x32A7,0x0000,0x0000, 0x32A8,0x0000,0x0000, /* 10842 */ +0x32A9,0x0000,0x0000, 0x32AA,0x0000,0x0000, 0x32AB,0x0000,0x0000, /* 10845 */ +0x32AC,0x0000,0x0000, 0x32AD,0x0000,0x0000, 0x32AE,0x0000,0x0000, /* 10848 */ +0x32AF,0x0000,0x0000, 0x32B0,0x0000,0x0000, 0x32B1,0x0000,0x0000, /* 1084B */ +0x32B2,0x0000,0x0000, 0x32B3,0x0000,0x0000, 0x32B4,0x0000,0x0000, /* 1084E */ +0x32B5,0x0000,0x0000, 0x32B6,0x0000,0x0000, 0x32B7,0x0000,0x0000, /* 10851 */ +0x32B8,0x0000,0x0000, 0x32B9,0x0000,0x0000, 0xFBC2,0x8856,0x0000, /* 10854 */ +0x02CA,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10857 */ +0x1208,0x0000,0x0000, 0x11A7,0x0000,0x0000, 0x11A8,0x0000,0x0000, /* 1085A */ +0x11A9,0x0000,0x0000, 0x11AA,0x0000,0x0000, 0x11AB,0x0000,0x0000, /* 1085D */ +0xFBC2,0x8860,0x0000, 0xFBC2,0x8861,0x0000, 0xFBC2,0x8862,0x0000, /* 10860 */ +0xFBC2,0x8863,0x0000, 0xFBC2,0x8864,0x0000, 0xFBC2,0x8865,0x0000, /* 10863 */ +0xFBC2,0x8866,0x0000, 0xFBC2,0x8867,0x0000, 0xFBC2,0x8868,0x0000, /* 10866 */ +0xFBC2,0x8869,0x0000, 0xFBC2,0x886A,0x0000, 0xFBC2,0x886B,0x0000, /* 10869 */ +0xFBC2,0x886C,0x0000, 0xFBC2,0x886D,0x0000, 0xFBC2,0x886E,0x0000, /* 1086C */ +0xFBC2,0x886F,0x0000, 0xFBC2,0x8870,0x0000, 0xFBC2,0x8871,0x0000, /* 1086F */ +0xFBC2,0x8872,0x0000, 0xFBC2,0x8873,0x0000, 0xFBC2,0x8874,0x0000, /* 10872 */ +0xFBC2,0x8875,0x0000, 0xFBC2,0x8876,0x0000, 0xFBC2,0x8877,0x0000, /* 10875 */ +0xFBC2,0x8878,0x0000, 0xFBC2,0x8879,0x0000, 0xFBC2,0x887A,0x0000, /* 10878 */ +0xFBC2,0x887B,0x0000, 0xFBC2,0x887C,0x0000, 0xFBC2,0x887D,0x0000, /* 1087B */ +0xFBC2,0x887E,0x0000, 0xFBC2,0x887F,0x0000, 0xFBC2,0x8880,0x0000, /* 1087E */ +0xFBC2,0x8881,0x0000, 0xFBC2,0x8882,0x0000, 0xFBC2,0x8883,0x0000, /* 10881 */ +0xFBC2,0x8884,0x0000, 0xFBC2,0x8885,0x0000, 0xFBC2,0x8886,0x0000, /* 10884 */ +0xFBC2,0x8887,0x0000, 0xFBC2,0x8888,0x0000, 0xFBC2,0x8889,0x0000, /* 10887 */ +0xFBC2,0x888A,0x0000, 0xFBC2,0x888B,0x0000, 0xFBC2,0x888C,0x0000, /* 1088A */ +0xFBC2,0x888D,0x0000, 0xFBC2,0x888E,0x0000, 0xFBC2,0x888F,0x0000, /* 1088D */ +0xFBC2,0x8890,0x0000, 0xFBC2,0x8891,0x0000, 0xFBC2,0x8892,0x0000, /* 10890 */ +0xFBC2,0x8893,0x0000, 0xFBC2,0x8894,0x0000, 0xFBC2,0x8895,0x0000, /* 10893 */ +0xFBC2,0x8896,0x0000, 0xFBC2,0x8897,0x0000, 0xFBC2,0x8898,0x0000, /* 10896 */ +0xFBC2,0x8899,0x0000, 0xFBC2,0x889A,0x0000, 0xFBC2,0x889B,0x0000, /* 10899 */ +0xFBC2,0x889C,0x0000, 0xFBC2,0x889D,0x0000, 0xFBC2,0x889E,0x0000, /* 1089C */ +0xFBC2,0x889F,0x0000, 0xFBC2,0x88A0,0x0000, 0xFBC2,0x88A1,0x0000, /* 1089F */ +0xFBC2,0x88A2,0x0000, 0xFBC2,0x88A3,0x0000, 0xFBC2,0x88A4,0x0000, /* 108A2 */ +0xFBC2,0x88A5,0x0000, 0xFBC2,0x88A6,0x0000, 0xFBC2,0x88A7,0x0000, /* 108A5 */ +0xFBC2,0x88A8,0x0000, 0xFBC2,0x88A9,0x0000, 0xFBC2,0x88AA,0x0000, /* 108A8 */ +0xFBC2,0x88AB,0x0000, 0xFBC2,0x88AC,0x0000, 0xFBC2,0x88AD,0x0000, /* 108AB */ +0xFBC2,0x88AE,0x0000, 0xFBC2,0x88AF,0x0000, 0xFBC2,0x88B0,0x0000, /* 108AE */ +0xFBC2,0x88B1,0x0000, 0xFBC2,0x88B2,0x0000, 0xFBC2,0x88B3,0x0000, /* 108B1 */ +0xFBC2,0x88B4,0x0000, 0xFBC2,0x88B5,0x0000, 0xFBC2,0x88B6,0x0000, /* 108B4 */ +0xFBC2,0x88B7,0x0000, 0xFBC2,0x88B8,0x0000, 0xFBC2,0x88B9,0x0000, /* 108B7 */ +0xFBC2,0x88BA,0x0000, 0xFBC2,0x88BB,0x0000, 0xFBC2,0x88BC,0x0000, /* 108BA */ +0xFBC2,0x88BD,0x0000, 0xFBC2,0x88BE,0x0000, 0xFBC2,0x88BF,0x0000, /* 108BD */ +0xFBC2,0x88C0,0x0000, 0xFBC2,0x88C1,0x0000, 0xFBC2,0x88C2,0x0000, /* 108C0 */ +0xFBC2,0x88C3,0x0000, 0xFBC2,0x88C4,0x0000, 0xFBC2,0x88C5,0x0000, /* 108C3 */ +0xFBC2,0x88C6,0x0000, 0xFBC2,0x88C7,0x0000, 0xFBC2,0x88C8,0x0000, /* 108C6 */ +0xFBC2,0x88C9,0x0000, 0xFBC2,0x88CA,0x0000, 0xFBC2,0x88CB,0x0000, /* 108C9 */ +0xFBC2,0x88CC,0x0000, 0xFBC2,0x88CD,0x0000, 0xFBC2,0x88CE,0x0000, /* 108CC */ +0xFBC2,0x88CF,0x0000, 0xFBC2,0x88D0,0x0000, 0xFBC2,0x88D1,0x0000, /* 108CF */ +0xFBC2,0x88D2,0x0000, 0xFBC2,0x88D3,0x0000, 0xFBC2,0x88D4,0x0000, /* 108D2 */ +0xFBC2,0x88D5,0x0000, 0xFBC2,0x88D6,0x0000, 0xFBC2,0x88D7,0x0000, /* 108D5 */ +0xFBC2,0x88D8,0x0000, 0xFBC2,0x88D9,0x0000, 0xFBC2,0x88DA,0x0000, /* 108D8 */ +0xFBC2,0x88DB,0x0000, 0xFBC2,0x88DC,0x0000, 0xFBC2,0x88DD,0x0000, /* 108DB */ +0xFBC2,0x88DE,0x0000, 0xFBC2,0x88DF,0x0000, 0xFBC2,0x88E0,0x0000, /* 108DE */ +0xFBC2,0x88E1,0x0000, 0xFBC2,0x88E2,0x0000, 0xFBC2,0x88E3,0x0000, /* 108E1 */ +0xFBC2,0x88E4,0x0000, 0xFBC2,0x88E5,0x0000, 0xFBC2,0x88E6,0x0000, /* 108E4 */ +0xFBC2,0x88E7,0x0000, 0xFBC2,0x88E8,0x0000, 0xFBC2,0x88E9,0x0000, /* 108E7 */ +0xFBC2,0x88EA,0x0000, 0xFBC2,0x88EB,0x0000, 0xFBC2,0x88EC,0x0000, /* 108EA */ +0xFBC2,0x88ED,0x0000, 0xFBC2,0x88EE,0x0000, 0xFBC2,0x88EF,0x0000, /* 108ED */ +0xFBC2,0x88F0,0x0000, 0xFBC2,0x88F1,0x0000, 0xFBC2,0x88F2,0x0000, /* 108F0 */ +0xFBC2,0x88F3,0x0000, 0xFBC2,0x88F4,0x0000, 0xFBC2,0x88F5,0x0000, /* 108F3 */ +0xFBC2,0x88F6,0x0000, 0xFBC2,0x88F7,0x0000, 0xFBC2,0x88F8,0x0000, /* 108F6 */ +0xFBC2,0x88F9,0x0000, 0xFBC2,0x88FA,0x0000, 0xFBC2,0x88FB,0x0000, /* 108F9 */ +0xFBC2,0x88FC,0x0000, 0xFBC2,0x88FD,0x0000, 0xFBC2,0x88FE,0x0000, /* 108FC */ +0xFBC2,0x88FF,0x0000 }; + +uint16 uca520_p109[]= { /* 10900 (3 weights per char) */ +0x1872,0x0000,0x0000, 0x1873,0x0000,0x0000, 0x1874,0x0000,0x0000, /* 10900 */ +0x1875,0x0000,0x0000, 0x1876,0x0000,0x0000, 0x1877,0x0000,0x0000, /* 10903 */ +0x1878,0x0000,0x0000, 0x1879,0x0000,0x0000, 0x187A,0x0000,0x0000, /* 10906 */ +0x187B,0x0000,0x0000, 0x187C,0x0000,0x0000, 0x187D,0x0000,0x0000, /* 10909 */ +0x187E,0x0000,0x0000, 0x187F,0x0000,0x0000, 0x1880,0x0000,0x0000, /* 1090C */ +0x1881,0x0000,0x0000, 0x1882,0x0000,0x0000, 0x1883,0x0000,0x0000, /* 1090F */ +0x1884,0x0000,0x0000, 0x1885,0x0000,0x0000, 0x1886,0x0000,0x0000, /* 10912 */ +0x1887,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x11A4,0x0000,0x0000, /* 10915 */ +0x11A5,0x0000,0x0000, 0x11A6,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10918 */ +0x1208,0x0000,0x0000, 0xFBC2,0x891C,0x0000, 0xFBC2,0x891D,0x0000, /* 1091B */ +0xFBC2,0x891E,0x0000, 0x02E9,0x0000,0x0000, 0x307E,0x0000,0x0000, /* 1091E */ +0x307F,0x0000,0x0000, 0x3080,0x0000,0x0000, 0x3081,0x0000,0x0000, /* 10921 */ +0x3082,0x0000,0x0000, 0x3083,0x0000,0x0000, 0x3084,0x0000,0x0000, /* 10924 */ +0x3085,0x0000,0x0000, 0x3086,0x0000,0x0000, 0x3087,0x0000,0x0000, /* 10927 */ +0x3088,0x0000,0x0000, 0x3089,0x0000,0x0000, 0x308A,0x0000,0x0000, /* 1092A */ +0x308B,0x0000,0x0000, 0x308C,0x0000,0x0000, 0x308D,0x0000,0x0000, /* 1092D */ +0x308E,0x0000,0x0000, 0x308F,0x0000,0x0000, 0x3090,0x0000,0x0000, /* 10930 */ +0x3091,0x0000,0x0000, 0x3092,0x0000,0x0000, 0x3093,0x0000,0x0000, /* 10933 */ +0x3094,0x0000,0x0000, 0x3095,0x0000,0x0000, 0x3096,0x0000,0x0000, /* 10936 */ +0x3097,0x0000,0x0000, 0xFBC2,0x893A,0x0000, 0xFBC2,0x893B,0x0000, /* 10939 */ +0xFBC2,0x893C,0x0000, 0xFBC2,0x893D,0x0000, 0xFBC2,0x893E,0x0000, /* 1093C */ +0x02E3,0x0000,0x0000, 0xFBC2,0x8940,0x0000, 0xFBC2,0x8941,0x0000, /* 1093F */ +0xFBC2,0x8942,0x0000, 0xFBC2,0x8943,0x0000, 0xFBC2,0x8944,0x0000, /* 10942 */ +0xFBC2,0x8945,0x0000, 0xFBC2,0x8946,0x0000, 0xFBC2,0x8947,0x0000, /* 10945 */ +0xFBC2,0x8948,0x0000, 0xFBC2,0x8949,0x0000, 0xFBC2,0x894A,0x0000, /* 10948 */ +0xFBC2,0x894B,0x0000, 0xFBC2,0x894C,0x0000, 0xFBC2,0x894D,0x0000, /* 1094B */ +0xFBC2,0x894E,0x0000, 0xFBC2,0x894F,0x0000, 0xFBC2,0x8950,0x0000, /* 1094E */ +0xFBC2,0x8951,0x0000, 0xFBC2,0x8952,0x0000, 0xFBC2,0x8953,0x0000, /* 10951 */ +0xFBC2,0x8954,0x0000, 0xFBC2,0x8955,0x0000, 0xFBC2,0x8956,0x0000, /* 10954 */ +0xFBC2,0x8957,0x0000, 0xFBC2,0x8958,0x0000, 0xFBC2,0x8959,0x0000, /* 10957 */ +0xFBC2,0x895A,0x0000, 0xFBC2,0x895B,0x0000, 0xFBC2,0x895C,0x0000, /* 1095A */ +0xFBC2,0x895D,0x0000, 0xFBC2,0x895E,0x0000, 0xFBC2,0x895F,0x0000, /* 1095D */ +0xFBC2,0x8960,0x0000, 0xFBC2,0x8961,0x0000, 0xFBC2,0x8962,0x0000, /* 10960 */ +0xFBC2,0x8963,0x0000, 0xFBC2,0x8964,0x0000, 0xFBC2,0x8965,0x0000, /* 10963 */ +0xFBC2,0x8966,0x0000, 0xFBC2,0x8967,0x0000, 0xFBC2,0x8968,0x0000, /* 10966 */ +0xFBC2,0x8969,0x0000, 0xFBC2,0x896A,0x0000, 0xFBC2,0x896B,0x0000, /* 10969 */ +0xFBC2,0x896C,0x0000, 0xFBC2,0x896D,0x0000, 0xFBC2,0x896E,0x0000, /* 1096C */ +0xFBC2,0x896F,0x0000, 0xFBC2,0x8970,0x0000, 0xFBC2,0x8971,0x0000, /* 1096F */ +0xFBC2,0x8972,0x0000, 0xFBC2,0x8973,0x0000, 0xFBC2,0x8974,0x0000, /* 10972 */ +0xFBC2,0x8975,0x0000, 0xFBC2,0x8976,0x0000, 0xFBC2,0x8977,0x0000, /* 10975 */ +0xFBC2,0x8978,0x0000, 0xFBC2,0x8979,0x0000, 0xFBC2,0x897A,0x0000, /* 10978 */ +0xFBC2,0x897B,0x0000, 0xFBC2,0x897C,0x0000, 0xFBC2,0x897D,0x0000, /* 1097B */ +0xFBC2,0x897E,0x0000, 0xFBC2,0x897F,0x0000, 0xFBC2,0x8980,0x0000, /* 1097E */ +0xFBC2,0x8981,0x0000, 0xFBC2,0x8982,0x0000, 0xFBC2,0x8983,0x0000, /* 10981 */ +0xFBC2,0x8984,0x0000, 0xFBC2,0x8985,0x0000, 0xFBC2,0x8986,0x0000, /* 10984 */ +0xFBC2,0x8987,0x0000, 0xFBC2,0x8988,0x0000, 0xFBC2,0x8989,0x0000, /* 10987 */ +0xFBC2,0x898A,0x0000, 0xFBC2,0x898B,0x0000, 0xFBC2,0x898C,0x0000, /* 1098A */ +0xFBC2,0x898D,0x0000, 0xFBC2,0x898E,0x0000, 0xFBC2,0x898F,0x0000, /* 1098D */ +0xFBC2,0x8990,0x0000, 0xFBC2,0x8991,0x0000, 0xFBC2,0x8992,0x0000, /* 10990 */ +0xFBC2,0x8993,0x0000, 0xFBC2,0x8994,0x0000, 0xFBC2,0x8995,0x0000, /* 10993 */ +0xFBC2,0x8996,0x0000, 0xFBC2,0x8997,0x0000, 0xFBC2,0x8998,0x0000, /* 10996 */ +0xFBC2,0x8999,0x0000, 0xFBC2,0x899A,0x0000, 0xFBC2,0x899B,0x0000, /* 10999 */ +0xFBC2,0x899C,0x0000, 0xFBC2,0x899D,0x0000, 0xFBC2,0x899E,0x0000, /* 1099C */ +0xFBC2,0x899F,0x0000, 0xFBC2,0x89A0,0x0000, 0xFBC2,0x89A1,0x0000, /* 1099F */ +0xFBC2,0x89A2,0x0000, 0xFBC2,0x89A3,0x0000, 0xFBC2,0x89A4,0x0000, /* 109A2 */ +0xFBC2,0x89A5,0x0000, 0xFBC2,0x89A6,0x0000, 0xFBC2,0x89A7,0x0000, /* 109A5 */ +0xFBC2,0x89A8,0x0000, 0xFBC2,0x89A9,0x0000, 0xFBC2,0x89AA,0x0000, /* 109A8 */ +0xFBC2,0x89AB,0x0000, 0xFBC2,0x89AC,0x0000, 0xFBC2,0x89AD,0x0000, /* 109AB */ +0xFBC2,0x89AE,0x0000, 0xFBC2,0x89AF,0x0000, 0xFBC2,0x89B0,0x0000, /* 109AE */ +0xFBC2,0x89B1,0x0000, 0xFBC2,0x89B2,0x0000, 0xFBC2,0x89B3,0x0000, /* 109B1 */ +0xFBC2,0x89B4,0x0000, 0xFBC2,0x89B5,0x0000, 0xFBC2,0x89B6,0x0000, /* 109B4 */ +0xFBC2,0x89B7,0x0000, 0xFBC2,0x89B8,0x0000, 0xFBC2,0x89B9,0x0000, /* 109B7 */ +0xFBC2,0x89BA,0x0000, 0xFBC2,0x89BB,0x0000, 0xFBC2,0x89BC,0x0000, /* 109BA */ +0xFBC2,0x89BD,0x0000, 0xFBC2,0x89BE,0x0000, 0xFBC2,0x89BF,0x0000, /* 109BD */ +0xFBC2,0x89C0,0x0000, 0xFBC2,0x89C1,0x0000, 0xFBC2,0x89C2,0x0000, /* 109C0 */ +0xFBC2,0x89C3,0x0000, 0xFBC2,0x89C4,0x0000, 0xFBC2,0x89C5,0x0000, /* 109C3 */ +0xFBC2,0x89C6,0x0000, 0xFBC2,0x89C7,0x0000, 0xFBC2,0x89C8,0x0000, /* 109C6 */ +0xFBC2,0x89C9,0x0000, 0xFBC2,0x89CA,0x0000, 0xFBC2,0x89CB,0x0000, /* 109C9 */ +0xFBC2,0x89CC,0x0000, 0xFBC2,0x89CD,0x0000, 0xFBC2,0x89CE,0x0000, /* 109CC */ +0xFBC2,0x89CF,0x0000, 0xFBC2,0x89D0,0x0000, 0xFBC2,0x89D1,0x0000, /* 109CF */ +0xFBC2,0x89D2,0x0000, 0xFBC2,0x89D3,0x0000, 0xFBC2,0x89D4,0x0000, /* 109D2 */ +0xFBC2,0x89D5,0x0000, 0xFBC2,0x89D6,0x0000, 0xFBC2,0x89D7,0x0000, /* 109D5 */ +0xFBC2,0x89D8,0x0000, 0xFBC2,0x89D9,0x0000, 0xFBC2,0x89DA,0x0000, /* 109D8 */ +0xFBC2,0x89DB,0x0000, 0xFBC2,0x89DC,0x0000, 0xFBC2,0x89DD,0x0000, /* 109DB */ +0xFBC2,0x89DE,0x0000, 0xFBC2,0x89DF,0x0000, 0xFBC2,0x89E0,0x0000, /* 109DE */ +0xFBC2,0x89E1,0x0000, 0xFBC2,0x89E2,0x0000, 0xFBC2,0x89E3,0x0000, /* 109E1 */ +0xFBC2,0x89E4,0x0000, 0xFBC2,0x89E5,0x0000, 0xFBC2,0x89E6,0x0000, /* 109E4 */ +0xFBC2,0x89E7,0x0000, 0xFBC2,0x89E8,0x0000, 0xFBC2,0x89E9,0x0000, /* 109E7 */ +0xFBC2,0x89EA,0x0000, 0xFBC2,0x89EB,0x0000, 0xFBC2,0x89EC,0x0000, /* 109EA */ +0xFBC2,0x89ED,0x0000, 0xFBC2,0x89EE,0x0000, 0xFBC2,0x89EF,0x0000, /* 109ED */ +0xFBC2,0x89F0,0x0000, 0xFBC2,0x89F1,0x0000, 0xFBC2,0x89F2,0x0000, /* 109F0 */ +0xFBC2,0x89F3,0x0000, 0xFBC2,0x89F4,0x0000, 0xFBC2,0x89F5,0x0000, /* 109F3 */ +0xFBC2,0x89F6,0x0000, 0xFBC2,0x89F7,0x0000, 0xFBC2,0x89F8,0x0000, /* 109F6 */ +0xFBC2,0x89F9,0x0000, 0xFBC2,0x89FA,0x0000, 0xFBC2,0x89FB,0x0000, /* 109F9 */ +0xFBC2,0x89FC,0x0000, 0xFBC2,0x89FD,0x0000, 0xFBC2,0x89FE,0x0000, /* 109FC */ +0xFBC2,0x89FF,0x0000 }; + +uint16 uca520_p10A[]= { /* 10A00 (3 weights per char) */ +0x1F46,0x0000,0x0000, 0x1F47,0x0000,0x0000, 0x1F48,0x0000,0x0000, /* 10A00 */ +0x1F49,0x0000,0x0000, 0xFBC2,0x8A04,0x0000, 0x1F4A,0x0000,0x0000, /* 10A03 */ +0x1F4B,0x0000,0x0000, 0xFBC2,0x8A07,0x0000, 0xFBC2,0x8A08,0x0000, /* 10A06 */ +0xFBC2,0x8A09,0x0000, 0xFBC2,0x8A0A,0x0000, 0xFBC2,0x8A0B,0x0000, /* 10A09 */ +0x1F4C,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 10A0C */ +0x0000,0x0000,0x0000, 0x1F4D,0x0000,0x0000, 0x1F4E,0x0000,0x0000, /* 10A0F */ +0x1F4F,0x0000,0x0000, 0x1F50,0x0000,0x0000, 0xFBC2,0x8A14,0x0000, /* 10A12 */ +0x1F51,0x0000,0x0000, 0x1F52,0x0000,0x0000, 0x1F53,0x0000,0x0000, /* 10A15 */ +0xFBC2,0x8A18,0x0000, 0x1F54,0x0000,0x0000, 0x1F55,0x0000,0x0000, /* 10A18 */ +0x1F56,0x0000,0x0000, 0x1F57,0x0000,0x0000, 0x1F58,0x0000,0x0000, /* 10A1B */ +0x1F59,0x0000,0x0000, 0x1F5A,0x0000,0x0000, 0x1F5B,0x0000,0x0000, /* 10A1E */ +0x1F5C,0x0000,0x0000, 0x1F5D,0x0000,0x0000, 0x1F5E,0x0000,0x0000, /* 10A21 */ +0x1F5F,0x0000,0x0000, 0x1F60,0x0000,0x0000, 0x1F61,0x0000,0x0000, /* 10A24 */ +0x1F62,0x0000,0x0000, 0x1F63,0x0000,0x0000, 0x1F64,0x0000,0x0000, /* 10A27 */ +0x1F65,0x0000,0x0000, 0x1F66,0x0000,0x0000, 0x1F67,0x0000,0x0000, /* 10A2A */ +0x1F68,0x0000,0x0000, 0x1F69,0x0000,0x0000, 0x1F6A,0x0000,0x0000, /* 10A2D */ +0x1F6B,0x0000,0x0000, 0x1F6C,0x0000,0x0000, 0x1F6D,0x0000,0x0000, /* 10A30 */ +0x1F6E,0x0000,0x0000, 0xFBC2,0x8A34,0x0000, 0xFBC2,0x8A35,0x0000, /* 10A33 */ +0xFBC2,0x8A36,0x0000, 0xFBC2,0x8A37,0x0000, 0x0000,0x0000,0x0000, /* 10A36 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC2,0x8A3B,0x0000, /* 10A39 */ +0xFBC2,0x8A3C,0x0000, 0xFBC2,0x8A3D,0x0000, 0xFBC2,0x8A3E,0x0000, /* 10A3C */ +0x1F6F,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10A3F */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x11B4,0x0000,0x0000, /* 10A42 */ +0x11B5,0x0000,0x0000, 0x11B6,0x0000,0x0000, 0x11B7,0x0000,0x0000, /* 10A45 */ +0xFBC2,0x8A48,0x0000, 0xFBC2,0x8A49,0x0000, 0xFBC2,0x8A4A,0x0000, /* 10A48 */ +0xFBC2,0x8A4B,0x0000, 0xFBC2,0x8A4C,0x0000, 0xFBC2,0x8A4D,0x0000, /* 10A4B */ +0xFBC2,0x8A4E,0x0000, 0xFBC2,0x8A4F,0x0000, 0x03DF,0x0000,0x0000, /* 10A4E */ +0x03E0,0x0000,0x0000, 0x03E1,0x0000,0x0000, 0x03E2,0x0000,0x0000, /* 10A51 */ +0x03E3,0x0000,0x0000, 0x03E4,0x0000,0x0000, 0x02AF,0x0000,0x0000, /* 10A54 */ +0x02B0,0x0000,0x0000, 0x03E5,0x0000,0x0000, 0xFBC2,0x8A59,0x0000, /* 10A57 */ +0xFBC2,0x8A5A,0x0000, 0xFBC2,0x8A5B,0x0000, 0xFBC2,0x8A5C,0x0000, /* 10A5A */ +0xFBC2,0x8A5D,0x0000, 0xFBC2,0x8A5E,0x0000, 0xFBC2,0x8A5F,0x0000, /* 10A5D */ +0x3252,0x0000,0x0000, 0x3253,0x0000,0x0000, 0x3254,0x0000,0x0000, /* 10A60 */ +0x3255,0x0000,0x0000, 0x3256,0x0000,0x0000, 0x3257,0x0000,0x0000, /* 10A63 */ +0x3258,0x0000,0x0000, 0x3259,0x0000,0x0000, 0x325A,0x0000,0x0000, /* 10A66 */ +0x325B,0x0000,0x0000, 0x325C,0x0000,0x0000, 0x325D,0x0000,0x0000, /* 10A69 */ +0x325E,0x0000,0x0000, 0x325F,0x0000,0x0000, 0x3260,0x0000,0x0000, /* 10A6C */ +0x3261,0x0000,0x0000, 0x3262,0x0000,0x0000, 0x3263,0x0000,0x0000, /* 10A6F */ +0x3264,0x0000,0x0000, 0x3265,0x0000,0x0000, 0x3266,0x0000,0x0000, /* 10A72 */ +0x3267,0x0000,0x0000, 0x3268,0x0000,0x0000, 0x3269,0x0000,0x0000, /* 10A75 */ +0x326A,0x0000,0x0000, 0x326B,0x0000,0x0000, 0x326C,0x0000,0x0000, /* 10A78 */ +0x326D,0x0000,0x0000, 0x326E,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 10A7B */ +0x11A2,0x0000,0x0000, 0x11A3,0x0000,0x0000, 0xFBC2,0x8A80,0x0000, /* 10A7E */ +0xFBC2,0x8A81,0x0000, 0xFBC2,0x8A82,0x0000, 0xFBC2,0x8A83,0x0000, /* 10A81 */ +0xFBC2,0x8A84,0x0000, 0xFBC2,0x8A85,0x0000, 0xFBC2,0x8A86,0x0000, /* 10A84 */ +0xFBC2,0x8A87,0x0000, 0xFBC2,0x8A88,0x0000, 0xFBC2,0x8A89,0x0000, /* 10A87 */ +0xFBC2,0x8A8A,0x0000, 0xFBC2,0x8A8B,0x0000, 0xFBC2,0x8A8C,0x0000, /* 10A8A */ +0xFBC2,0x8A8D,0x0000, 0xFBC2,0x8A8E,0x0000, 0xFBC2,0x8A8F,0x0000, /* 10A8D */ +0xFBC2,0x8A90,0x0000, 0xFBC2,0x8A91,0x0000, 0xFBC2,0x8A92,0x0000, /* 10A90 */ +0xFBC2,0x8A93,0x0000, 0xFBC2,0x8A94,0x0000, 0xFBC2,0x8A95,0x0000, /* 10A93 */ +0xFBC2,0x8A96,0x0000, 0xFBC2,0x8A97,0x0000, 0xFBC2,0x8A98,0x0000, /* 10A96 */ +0xFBC2,0x8A99,0x0000, 0xFBC2,0x8A9A,0x0000, 0xFBC2,0x8A9B,0x0000, /* 10A99 */ +0xFBC2,0x8A9C,0x0000, 0xFBC2,0x8A9D,0x0000, 0xFBC2,0x8A9E,0x0000, /* 10A9C */ +0xFBC2,0x8A9F,0x0000, 0xFBC2,0x8AA0,0x0000, 0xFBC2,0x8AA1,0x0000, /* 10A9F */ +0xFBC2,0x8AA2,0x0000, 0xFBC2,0x8AA3,0x0000, 0xFBC2,0x8AA4,0x0000, /* 10AA2 */ +0xFBC2,0x8AA5,0x0000, 0xFBC2,0x8AA6,0x0000, 0xFBC2,0x8AA7,0x0000, /* 10AA5 */ +0xFBC2,0x8AA8,0x0000, 0xFBC2,0x8AA9,0x0000, 0xFBC2,0x8AAA,0x0000, /* 10AA8 */ +0xFBC2,0x8AAB,0x0000, 0xFBC2,0x8AAC,0x0000, 0xFBC2,0x8AAD,0x0000, /* 10AAB */ +0xFBC2,0x8AAE,0x0000, 0xFBC2,0x8AAF,0x0000, 0xFBC2,0x8AB0,0x0000, /* 10AAE */ +0xFBC2,0x8AB1,0x0000, 0xFBC2,0x8AB2,0x0000, 0xFBC2,0x8AB3,0x0000, /* 10AB1 */ +0xFBC2,0x8AB4,0x0000, 0xFBC2,0x8AB5,0x0000, 0xFBC2,0x8AB6,0x0000, /* 10AB4 */ +0xFBC2,0x8AB7,0x0000, 0xFBC2,0x8AB8,0x0000, 0xFBC2,0x8AB9,0x0000, /* 10AB7 */ +0xFBC2,0x8ABA,0x0000, 0xFBC2,0x8ABB,0x0000, 0xFBC2,0x8ABC,0x0000, /* 10ABA */ +0xFBC2,0x8ABD,0x0000, 0xFBC2,0x8ABE,0x0000, 0xFBC2,0x8ABF,0x0000, /* 10ABD */ +0xFBC2,0x8AC0,0x0000, 0xFBC2,0x8AC1,0x0000, 0xFBC2,0x8AC2,0x0000, /* 10AC0 */ +0xFBC2,0x8AC3,0x0000, 0xFBC2,0x8AC4,0x0000, 0xFBC2,0x8AC5,0x0000, /* 10AC3 */ +0xFBC2,0x8AC6,0x0000, 0xFBC2,0x8AC7,0x0000, 0xFBC2,0x8AC8,0x0000, /* 10AC6 */ +0xFBC2,0x8AC9,0x0000, 0xFBC2,0x8ACA,0x0000, 0xFBC2,0x8ACB,0x0000, /* 10AC9 */ +0xFBC2,0x8ACC,0x0000, 0xFBC2,0x8ACD,0x0000, 0xFBC2,0x8ACE,0x0000, /* 10ACC */ +0xFBC2,0x8ACF,0x0000, 0xFBC2,0x8AD0,0x0000, 0xFBC2,0x8AD1,0x0000, /* 10ACF */ +0xFBC2,0x8AD2,0x0000, 0xFBC2,0x8AD3,0x0000, 0xFBC2,0x8AD4,0x0000, /* 10AD2 */ +0xFBC2,0x8AD5,0x0000, 0xFBC2,0x8AD6,0x0000, 0xFBC2,0x8AD7,0x0000, /* 10AD5 */ +0xFBC2,0x8AD8,0x0000, 0xFBC2,0x8AD9,0x0000, 0xFBC2,0x8ADA,0x0000, /* 10AD8 */ +0xFBC2,0x8ADB,0x0000, 0xFBC2,0x8ADC,0x0000, 0xFBC2,0x8ADD,0x0000, /* 10ADB */ +0xFBC2,0x8ADE,0x0000, 0xFBC2,0x8ADF,0x0000, 0xFBC2,0x8AE0,0x0000, /* 10ADE */ +0xFBC2,0x8AE1,0x0000, 0xFBC2,0x8AE2,0x0000, 0xFBC2,0x8AE3,0x0000, /* 10AE1 */ +0xFBC2,0x8AE4,0x0000, 0xFBC2,0x8AE5,0x0000, 0xFBC2,0x8AE6,0x0000, /* 10AE4 */ +0xFBC2,0x8AE7,0x0000, 0xFBC2,0x8AE8,0x0000, 0xFBC2,0x8AE9,0x0000, /* 10AE7 */ +0xFBC2,0x8AEA,0x0000, 0xFBC2,0x8AEB,0x0000, 0xFBC2,0x8AEC,0x0000, /* 10AEA */ +0xFBC2,0x8AED,0x0000, 0xFBC2,0x8AEE,0x0000, 0xFBC2,0x8AEF,0x0000, /* 10AED */ +0xFBC2,0x8AF0,0x0000, 0xFBC2,0x8AF1,0x0000, 0xFBC2,0x8AF2,0x0000, /* 10AF0 */ +0xFBC2,0x8AF3,0x0000, 0xFBC2,0x8AF4,0x0000, 0xFBC2,0x8AF5,0x0000, /* 10AF3 */ +0xFBC2,0x8AF6,0x0000, 0xFBC2,0x8AF7,0x0000, 0xFBC2,0x8AF8,0x0000, /* 10AF6 */ +0xFBC2,0x8AF9,0x0000, 0xFBC2,0x8AFA,0x0000, 0xFBC2,0x8AFB,0x0000, /* 10AF9 */ +0xFBC2,0x8AFC,0x0000, 0xFBC2,0x8AFD,0x0000, 0xFBC2,0x8AFE,0x0000, /* 10AFC */ +0xFBC2,0x8AFF,0x0000 }; + +uint16 uca520_p10B[]= { /* 10B00 (3 weights per char) */ +0x326F,0x0000,0x0000, 0x3270,0x0000,0x0000, 0x3271,0x0000,0x0000, /* 10B00 */ +0x3272,0x0000,0x0000, 0x3273,0x0000,0x0000, 0x3274,0x0000,0x0000, /* 10B03 */ +0x3275,0x0000,0x0000, 0x3276,0x0000,0x0000, 0x3277,0x0000,0x0000, /* 10B06 */ +0x3278,0x0000,0x0000, 0x3279,0x0000,0x0000, 0x327A,0x0000,0x0000, /* 10B09 */ +0x327B,0x0000,0x0000, 0x327C,0x0000,0x0000, 0x327D,0x0000,0x0000, /* 10B0C */ +0x327E,0x0000,0x0000, 0x327F,0x0000,0x0000, 0x3280,0x0000,0x0000, /* 10B0F */ +0x3281,0x0000,0x0000, 0x3282,0x0000,0x0000, 0x3283,0x0000,0x0000, /* 10B12 */ +0x3284,0x0000,0x0000, 0x3285,0x0000,0x0000, 0x3286,0x0000,0x0000, /* 10B15 */ +0x3287,0x0000,0x0000, 0x3288,0x0000,0x0000, 0x3289,0x0000,0x0000, /* 10B18 */ +0x328A,0x0000,0x0000, 0x328B,0x0000,0x0000, 0x328C,0x0000,0x0000, /* 10B1B */ +0x328D,0x0000,0x0000, 0x328E,0x0000,0x0000, 0x328F,0x0000,0x0000, /* 10B1E */ +0x3290,0x0000,0x0000, 0x3291,0x0000,0x0000, 0x3292,0x0000,0x0000, /* 10B21 */ +0x3293,0x0000,0x0000, 0x3294,0x0000,0x0000, 0x3295,0x0000,0x0000, /* 10B24 */ +0x3296,0x0000,0x0000, 0x3297,0x0000,0x0000, 0x3298,0x0000,0x0000, /* 10B27 */ +0x3299,0x0000,0x0000, 0x329A,0x0000,0x0000, 0x329B,0x0000,0x0000, /* 10B2A */ +0x329C,0x0000,0x0000, 0x329C,0x0000,0x0000, 0x329D,0x0000,0x0000, /* 10B2D */ +0x329E,0x0000,0x0000, 0x329F,0x0000,0x0000, 0x32A0,0x0000,0x0000, /* 10B30 */ +0x32A1,0x0000,0x0000, 0x32A2,0x0000,0x0000, 0x32A3,0x0000,0x0000, /* 10B33 */ +0xFBC2,0x8B36,0x0000, 0xFBC2,0x8B37,0x0000, 0xFBC2,0x8B38,0x0000, /* 10B36 */ +0x03E6,0x0000,0x0000, 0x02CB,0x0000,0x0000, 0x02CC,0x0000,0x0000, /* 10B39 */ +0x02CD,0x0000,0x0000, 0x02CE,0x0000,0x0000, 0x02CF,0x0000,0x0000, /* 10B3C */ +0x02D0,0x0000,0x0000, 0x32BA,0x0000,0x0000, 0x32BB,0x0000,0x0000, /* 10B3F */ +0x32BC,0x0000,0x0000, 0x32BD,0x0000,0x0000, 0x32BE,0x0000,0x0000, /* 10B42 */ +0x32BF,0x0000,0x0000, 0x32C0,0x0000,0x0000, 0x32C1,0x0000,0x0000, /* 10B45 */ +0x32C2,0x0000,0x0000, 0x32C3,0x0000,0x0000, 0x32C4,0x0000,0x0000, /* 10B48 */ +0x32C5,0x0000,0x0000, 0x32C6,0x0000,0x0000, 0x32C7,0x0000,0x0000, /* 10B4B */ +0x32C8,0x0000,0x0000, 0x32C9,0x0000,0x0000, 0x32CA,0x0000,0x0000, /* 10B4E */ +0x32CB,0x0000,0x0000, 0x32CC,0x0000,0x0000, 0x32CD,0x0000,0x0000, /* 10B51 */ +0x32CE,0x0000,0x0000, 0x32CF,0x0000,0x0000, 0xFBC2,0x8B56,0x0000, /* 10B54 */ +0xFBC2,0x8B57,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10B57 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x11AC,0x0000,0x0000, /* 10B5A */ +0x11AD,0x0000,0x0000, 0x11AE,0x0000,0x0000, 0x11AF,0x0000,0x0000, /* 10B5D */ +0x32D0,0x0000,0x0000, 0x32D1,0x0000,0x0000, 0x32D2,0x0000,0x0000, /* 10B60 */ +0x32D3,0x0000,0x0000, 0x32D4,0x0000,0x0000, 0x32D5,0x0000,0x0000, /* 10B63 */ +0x32D6,0x0000,0x0000, 0x32D7,0x0000,0x0000, 0x32D8,0x0000,0x0000, /* 10B66 */ +0x32D9,0x0000,0x0000, 0x32DA,0x0000,0x0000, 0x32DB,0x0000,0x0000, /* 10B69 */ +0x32DC,0x0000,0x0000, 0x32DD,0x0000,0x0000, 0x32DE,0x0000,0x0000, /* 10B6C */ +0x32DF,0x0000,0x0000, 0x32E0,0x0000,0x0000, 0x32E1,0x0000,0x0000, /* 10B6F */ +0x32E2,0x0000,0x0000, 0xFBC2,0x8B73,0x0000, 0xFBC2,0x8B74,0x0000, /* 10B72 */ +0xFBC2,0x8B75,0x0000, 0xFBC2,0x8B76,0x0000, 0xFBC2,0x8B77,0x0000, /* 10B75 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 10B78 */ +0x1209,0x0000,0x0000, 0x11B0,0x0000,0x0000, 0x11B1,0x0000,0x0000, /* 10B7B */ +0x11B2,0x0000,0x0000, 0x11B3,0x0000,0x0000, 0xFBC2,0x8B80,0x0000, /* 10B7E */ +0xFBC2,0x8B81,0x0000, 0xFBC2,0x8B82,0x0000, 0xFBC2,0x8B83,0x0000, /* 10B81 */ +0xFBC2,0x8B84,0x0000, 0xFBC2,0x8B85,0x0000, 0xFBC2,0x8B86,0x0000, /* 10B84 */ +0xFBC2,0x8B87,0x0000, 0xFBC2,0x8B88,0x0000, 0xFBC2,0x8B89,0x0000, /* 10B87 */ +0xFBC2,0x8B8A,0x0000, 0xFBC2,0x8B8B,0x0000, 0xFBC2,0x8B8C,0x0000, /* 10B8A */ +0xFBC2,0x8B8D,0x0000, 0xFBC2,0x8B8E,0x0000, 0xFBC2,0x8B8F,0x0000, /* 10B8D */ +0xFBC2,0x8B90,0x0000, 0xFBC2,0x8B91,0x0000, 0xFBC2,0x8B92,0x0000, /* 10B90 */ +0xFBC2,0x8B93,0x0000, 0xFBC2,0x8B94,0x0000, 0xFBC2,0x8B95,0x0000, /* 10B93 */ +0xFBC2,0x8B96,0x0000, 0xFBC2,0x8B97,0x0000, 0xFBC2,0x8B98,0x0000, /* 10B96 */ +0xFBC2,0x8B99,0x0000, 0xFBC2,0x8B9A,0x0000, 0xFBC2,0x8B9B,0x0000, /* 10B99 */ +0xFBC2,0x8B9C,0x0000, 0xFBC2,0x8B9D,0x0000, 0xFBC2,0x8B9E,0x0000, /* 10B9C */ +0xFBC2,0x8B9F,0x0000, 0xFBC2,0x8BA0,0x0000, 0xFBC2,0x8BA1,0x0000, /* 10B9F */ +0xFBC2,0x8BA2,0x0000, 0xFBC2,0x8BA3,0x0000, 0xFBC2,0x8BA4,0x0000, /* 10BA2 */ +0xFBC2,0x8BA5,0x0000, 0xFBC2,0x8BA6,0x0000, 0xFBC2,0x8BA7,0x0000, /* 10BA5 */ +0xFBC2,0x8BA8,0x0000, 0xFBC2,0x8BA9,0x0000, 0xFBC2,0x8BAA,0x0000, /* 10BA8 */ +0xFBC2,0x8BAB,0x0000, 0xFBC2,0x8BAC,0x0000, 0xFBC2,0x8BAD,0x0000, /* 10BAB */ +0xFBC2,0x8BAE,0x0000, 0xFBC2,0x8BAF,0x0000, 0xFBC2,0x8BB0,0x0000, /* 10BAE */ +0xFBC2,0x8BB1,0x0000, 0xFBC2,0x8BB2,0x0000, 0xFBC2,0x8BB3,0x0000, /* 10BB1 */ +0xFBC2,0x8BB4,0x0000, 0xFBC2,0x8BB5,0x0000, 0xFBC2,0x8BB6,0x0000, /* 10BB4 */ +0xFBC2,0x8BB7,0x0000, 0xFBC2,0x8BB8,0x0000, 0xFBC2,0x8BB9,0x0000, /* 10BB7 */ +0xFBC2,0x8BBA,0x0000, 0xFBC2,0x8BBB,0x0000, 0xFBC2,0x8BBC,0x0000, /* 10BBA */ +0xFBC2,0x8BBD,0x0000, 0xFBC2,0x8BBE,0x0000, 0xFBC2,0x8BBF,0x0000, /* 10BBD */ +0xFBC2,0x8BC0,0x0000, 0xFBC2,0x8BC1,0x0000, 0xFBC2,0x8BC2,0x0000, /* 10BC0 */ +0xFBC2,0x8BC3,0x0000, 0xFBC2,0x8BC4,0x0000, 0xFBC2,0x8BC5,0x0000, /* 10BC3 */ +0xFBC2,0x8BC6,0x0000, 0xFBC2,0x8BC7,0x0000, 0xFBC2,0x8BC8,0x0000, /* 10BC6 */ +0xFBC2,0x8BC9,0x0000, 0xFBC2,0x8BCA,0x0000, 0xFBC2,0x8BCB,0x0000, /* 10BC9 */ +0xFBC2,0x8BCC,0x0000, 0xFBC2,0x8BCD,0x0000, 0xFBC2,0x8BCE,0x0000, /* 10BCC */ +0xFBC2,0x8BCF,0x0000, 0xFBC2,0x8BD0,0x0000, 0xFBC2,0x8BD1,0x0000, /* 10BCF */ +0xFBC2,0x8BD2,0x0000, 0xFBC2,0x8BD3,0x0000, 0xFBC2,0x8BD4,0x0000, /* 10BD2 */ +0xFBC2,0x8BD5,0x0000, 0xFBC2,0x8BD6,0x0000, 0xFBC2,0x8BD7,0x0000, /* 10BD5 */ +0xFBC2,0x8BD8,0x0000, 0xFBC2,0x8BD9,0x0000, 0xFBC2,0x8BDA,0x0000, /* 10BD8 */ +0xFBC2,0x8BDB,0x0000, 0xFBC2,0x8BDC,0x0000, 0xFBC2,0x8BDD,0x0000, /* 10BDB */ +0xFBC2,0x8BDE,0x0000, 0xFBC2,0x8BDF,0x0000, 0xFBC2,0x8BE0,0x0000, /* 10BDE */ +0xFBC2,0x8BE1,0x0000, 0xFBC2,0x8BE2,0x0000, 0xFBC2,0x8BE3,0x0000, /* 10BE1 */ +0xFBC2,0x8BE4,0x0000, 0xFBC2,0x8BE5,0x0000, 0xFBC2,0x8BE6,0x0000, /* 10BE4 */ +0xFBC2,0x8BE7,0x0000, 0xFBC2,0x8BE8,0x0000, 0xFBC2,0x8BE9,0x0000, /* 10BE7 */ +0xFBC2,0x8BEA,0x0000, 0xFBC2,0x8BEB,0x0000, 0xFBC2,0x8BEC,0x0000, /* 10BEA */ +0xFBC2,0x8BED,0x0000, 0xFBC2,0x8BEE,0x0000, 0xFBC2,0x8BEF,0x0000, /* 10BED */ +0xFBC2,0x8BF0,0x0000, 0xFBC2,0x8BF1,0x0000, 0xFBC2,0x8BF2,0x0000, /* 10BF0 */ +0xFBC2,0x8BF3,0x0000, 0xFBC2,0x8BF4,0x0000, 0xFBC2,0x8BF5,0x0000, /* 10BF3 */ +0xFBC2,0x8BF6,0x0000, 0xFBC2,0x8BF7,0x0000, 0xFBC2,0x8BF8,0x0000, /* 10BF6 */ +0xFBC2,0x8BF9,0x0000, 0xFBC2,0x8BFA,0x0000, 0xFBC2,0x8BFB,0x0000, /* 10BF9 */ +0xFBC2,0x8BFC,0x0000, 0xFBC2,0x8BFD,0x0000, 0xFBC2,0x8BFE,0x0000, /* 10BFC */ +0xFBC2,0x8BFF,0x0000 }; + +uint16 uca520_p10C[]= { /* 10C00 (3 weights per char) */ +0x2826,0x0000,0x0000, 0x2826,0x0000,0x0000, 0x2827,0x0000,0x0000, /* 10C00 */ +0x2828,0x0000,0x0000, 0x2828,0x0000,0x0000, 0x2829,0x0000,0x0000, /* 10C03 */ +0x282A,0x0000,0x0000, 0x282B,0x0000,0x0000, 0x282B,0x0000,0x0000, /* 10C06 */ +0x282C,0x0000,0x0000, 0x282C,0x0000,0x0000, 0x282D,0x0000,0x0000, /* 10C09 */ +0x282D,0x0000,0x0000, 0x282E,0x0000,0x0000, 0x282E,0x0000,0x0000, /* 10C0C */ +0x282F,0x0000,0x0000, 0x282F,0x0000,0x0000, 0x2830,0x0000,0x0000, /* 10C0F */ +0x2830,0x0000,0x0000, 0x2831,0x0000,0x0000, 0x2832,0x0000,0x0000, /* 10C12 */ +0x2832,0x0000,0x0000, 0x2833,0x0000,0x0000, 0x2833,0x0000,0x0000, /* 10C15 */ +0x2834,0x0000,0x0000, 0x2834,0x0000,0x0000, 0x2835,0x0000,0x0000, /* 10C18 */ +0x2835,0x0000,0x0000, 0x2836,0x0000,0x0000, 0x2836,0x0000,0x0000, /* 10C1B */ +0x2837,0x0000,0x0000, 0x2837,0x0000,0x0000, 0x2838,0x0000,0x0000, /* 10C1E */ +0x2839,0x0000,0x0000, 0x283A,0x0000,0x0000, 0x283B,0x0000,0x0000, /* 10C21 */ +0x283C,0x0000,0x0000, 0x283C,0x0000,0x0000, 0x283D,0x0000,0x0000, /* 10C24 */ +0x283D,0x0000,0x0000, 0x283E,0x0000,0x0000, 0x283E,0x0000,0x0000, /* 10C27 */ +0x283F,0x0000,0x0000, 0x283F,0x0000,0x0000, 0x2840,0x0000,0x0000, /* 10C2A */ +0x2841,0x0000,0x0000, 0x2841,0x0000,0x0000, 0x2842,0x0000,0x0000, /* 10C2D */ +0x2843,0x0000,0x0000, 0x2844,0x0000,0x0000, 0x2845,0x0000,0x0000, /* 10C30 */ +0x2845,0x0000,0x0000, 0x2846,0x0000,0x0000, 0x2846,0x0000,0x0000, /* 10C33 */ +0x2847,0x0000,0x0000, 0x2847,0x0000,0x0000, 0x2848,0x0000,0x0000, /* 10C36 */ +0x2848,0x0000,0x0000, 0x2849,0x0000,0x0000, 0x2849,0x0000,0x0000, /* 10C39 */ +0x284A,0x0000,0x0000, 0x284B,0x0000,0x0000, 0x284C,0x0000,0x0000, /* 10C3C */ +0x284D,0x0000,0x0000, 0x284D,0x0000,0x0000, 0x284E,0x0000,0x0000, /* 10C3F */ +0x284E,0x0000,0x0000, 0x284F,0x0000,0x0000, 0x284F,0x0000,0x0000, /* 10C42 */ +0x2850,0x0000,0x0000, 0x2850,0x0000,0x0000, 0x2851,0x0000,0x0000, /* 10C45 */ +0x2852,0x0000,0x0000, 0xFBC2,0x8C49,0x0000, 0xFBC2,0x8C4A,0x0000, /* 10C48 */ +0xFBC2,0x8C4B,0x0000, 0xFBC2,0x8C4C,0x0000, 0xFBC2,0x8C4D,0x0000, /* 10C4B */ +0xFBC2,0x8C4E,0x0000, 0xFBC2,0x8C4F,0x0000, 0xFBC2,0x8C50,0x0000, /* 10C4E */ +0xFBC2,0x8C51,0x0000, 0xFBC2,0x8C52,0x0000, 0xFBC2,0x8C53,0x0000, /* 10C51 */ +0xFBC2,0x8C54,0x0000, 0xFBC2,0x8C55,0x0000, 0xFBC2,0x8C56,0x0000, /* 10C54 */ +0xFBC2,0x8C57,0x0000, 0xFBC2,0x8C58,0x0000, 0xFBC2,0x8C59,0x0000, /* 10C57 */ +0xFBC2,0x8C5A,0x0000, 0xFBC2,0x8C5B,0x0000, 0xFBC2,0x8C5C,0x0000, /* 10C5A */ +0xFBC2,0x8C5D,0x0000, 0xFBC2,0x8C5E,0x0000, 0xFBC2,0x8C5F,0x0000, /* 10C5D */ +0xFBC2,0x8C60,0x0000, 0xFBC2,0x8C61,0x0000, 0xFBC2,0x8C62,0x0000, /* 10C60 */ +0xFBC2,0x8C63,0x0000, 0xFBC2,0x8C64,0x0000, 0xFBC2,0x8C65,0x0000, /* 10C63 */ +0xFBC2,0x8C66,0x0000, 0xFBC2,0x8C67,0x0000, 0xFBC2,0x8C68,0x0000, /* 10C66 */ +0xFBC2,0x8C69,0x0000, 0xFBC2,0x8C6A,0x0000, 0xFBC2,0x8C6B,0x0000, /* 10C69 */ +0xFBC2,0x8C6C,0x0000, 0xFBC2,0x8C6D,0x0000, 0xFBC2,0x8C6E,0x0000, /* 10C6C */ +0xFBC2,0x8C6F,0x0000, 0xFBC2,0x8C70,0x0000, 0xFBC2,0x8C71,0x0000, /* 10C6F */ +0xFBC2,0x8C72,0x0000, 0xFBC2,0x8C73,0x0000, 0xFBC2,0x8C74,0x0000, /* 10C72 */ +0xFBC2,0x8C75,0x0000, 0xFBC2,0x8C76,0x0000, 0xFBC2,0x8C77,0x0000, /* 10C75 */ +0xFBC2,0x8C78,0x0000, 0xFBC2,0x8C79,0x0000, 0xFBC2,0x8C7A,0x0000, /* 10C78 */ +0xFBC2,0x8C7B,0x0000, 0xFBC2,0x8C7C,0x0000, 0xFBC2,0x8C7D,0x0000, /* 10C7B */ +0xFBC2,0x8C7E,0x0000, 0xFBC2,0x8C7F,0x0000, 0xFBC2,0x8C80,0x0000, /* 10C7E */ +0xFBC2,0x8C81,0x0000, 0xFBC2,0x8C82,0x0000, 0xFBC2,0x8C83,0x0000, /* 10C81 */ +0xFBC2,0x8C84,0x0000, 0xFBC2,0x8C85,0x0000, 0xFBC2,0x8C86,0x0000, /* 10C84 */ +0xFBC2,0x8C87,0x0000, 0xFBC2,0x8C88,0x0000, 0xFBC2,0x8C89,0x0000, /* 10C87 */ +0xFBC2,0x8C8A,0x0000, 0xFBC2,0x8C8B,0x0000, 0xFBC2,0x8C8C,0x0000, /* 10C8A */ +0xFBC2,0x8C8D,0x0000, 0xFBC2,0x8C8E,0x0000, 0xFBC2,0x8C8F,0x0000, /* 10C8D */ +0xFBC2,0x8C90,0x0000, 0xFBC2,0x8C91,0x0000, 0xFBC2,0x8C92,0x0000, /* 10C90 */ +0xFBC2,0x8C93,0x0000, 0xFBC2,0x8C94,0x0000, 0xFBC2,0x8C95,0x0000, /* 10C93 */ +0xFBC2,0x8C96,0x0000, 0xFBC2,0x8C97,0x0000, 0xFBC2,0x8C98,0x0000, /* 10C96 */ +0xFBC2,0x8C99,0x0000, 0xFBC2,0x8C9A,0x0000, 0xFBC2,0x8C9B,0x0000, /* 10C99 */ +0xFBC2,0x8C9C,0x0000, 0xFBC2,0x8C9D,0x0000, 0xFBC2,0x8C9E,0x0000, /* 10C9C */ +0xFBC2,0x8C9F,0x0000, 0xFBC2,0x8CA0,0x0000, 0xFBC2,0x8CA1,0x0000, /* 10C9F */ +0xFBC2,0x8CA2,0x0000, 0xFBC2,0x8CA3,0x0000, 0xFBC2,0x8CA4,0x0000, /* 10CA2 */ +0xFBC2,0x8CA5,0x0000, 0xFBC2,0x8CA6,0x0000, 0xFBC2,0x8CA7,0x0000, /* 10CA5 */ +0xFBC2,0x8CA8,0x0000, 0xFBC2,0x8CA9,0x0000, 0xFBC2,0x8CAA,0x0000, /* 10CA8 */ +0xFBC2,0x8CAB,0x0000, 0xFBC2,0x8CAC,0x0000, 0xFBC2,0x8CAD,0x0000, /* 10CAB */ +0xFBC2,0x8CAE,0x0000, 0xFBC2,0x8CAF,0x0000, 0xFBC2,0x8CB0,0x0000, /* 10CAE */ +0xFBC2,0x8CB1,0x0000, 0xFBC2,0x8CB2,0x0000, 0xFBC2,0x8CB3,0x0000, /* 10CB1 */ +0xFBC2,0x8CB4,0x0000, 0xFBC2,0x8CB5,0x0000, 0xFBC2,0x8CB6,0x0000, /* 10CB4 */ +0xFBC2,0x8CB7,0x0000, 0xFBC2,0x8CB8,0x0000, 0xFBC2,0x8CB9,0x0000, /* 10CB7 */ +0xFBC2,0x8CBA,0x0000, 0xFBC2,0x8CBB,0x0000, 0xFBC2,0x8CBC,0x0000, /* 10CBA */ +0xFBC2,0x8CBD,0x0000, 0xFBC2,0x8CBE,0x0000, 0xFBC2,0x8CBF,0x0000, /* 10CBD */ +0xFBC2,0x8CC0,0x0000, 0xFBC2,0x8CC1,0x0000, 0xFBC2,0x8CC2,0x0000, /* 10CC0 */ +0xFBC2,0x8CC3,0x0000, 0xFBC2,0x8CC4,0x0000, 0xFBC2,0x8CC5,0x0000, /* 10CC3 */ +0xFBC2,0x8CC6,0x0000, 0xFBC2,0x8CC7,0x0000, 0xFBC2,0x8CC8,0x0000, /* 10CC6 */ +0xFBC2,0x8CC9,0x0000, 0xFBC2,0x8CCA,0x0000, 0xFBC2,0x8CCB,0x0000, /* 10CC9 */ +0xFBC2,0x8CCC,0x0000, 0xFBC2,0x8CCD,0x0000, 0xFBC2,0x8CCE,0x0000, /* 10CCC */ +0xFBC2,0x8CCF,0x0000, 0xFBC2,0x8CD0,0x0000, 0xFBC2,0x8CD1,0x0000, /* 10CCF */ +0xFBC2,0x8CD2,0x0000, 0xFBC2,0x8CD3,0x0000, 0xFBC2,0x8CD4,0x0000, /* 10CD2 */ +0xFBC2,0x8CD5,0x0000, 0xFBC2,0x8CD6,0x0000, 0xFBC2,0x8CD7,0x0000, /* 10CD5 */ +0xFBC2,0x8CD8,0x0000, 0xFBC2,0x8CD9,0x0000, 0xFBC2,0x8CDA,0x0000, /* 10CD8 */ +0xFBC2,0x8CDB,0x0000, 0xFBC2,0x8CDC,0x0000, 0xFBC2,0x8CDD,0x0000, /* 10CDB */ +0xFBC2,0x8CDE,0x0000, 0xFBC2,0x8CDF,0x0000, 0xFBC2,0x8CE0,0x0000, /* 10CDE */ +0xFBC2,0x8CE1,0x0000, 0xFBC2,0x8CE2,0x0000, 0xFBC2,0x8CE3,0x0000, /* 10CE1 */ +0xFBC2,0x8CE4,0x0000, 0xFBC2,0x8CE5,0x0000, 0xFBC2,0x8CE6,0x0000, /* 10CE4 */ +0xFBC2,0x8CE7,0x0000, 0xFBC2,0x8CE8,0x0000, 0xFBC2,0x8CE9,0x0000, /* 10CE7 */ +0xFBC2,0x8CEA,0x0000, 0xFBC2,0x8CEB,0x0000, 0xFBC2,0x8CEC,0x0000, /* 10CEA */ +0xFBC2,0x8CED,0x0000, 0xFBC2,0x8CEE,0x0000, 0xFBC2,0x8CEF,0x0000, /* 10CED */ +0xFBC2,0x8CF0,0x0000, 0xFBC2,0x8CF1,0x0000, 0xFBC2,0x8CF2,0x0000, /* 10CF0 */ +0xFBC2,0x8CF3,0x0000, 0xFBC2,0x8CF4,0x0000, 0xFBC2,0x8CF5,0x0000, /* 10CF3 */ +0xFBC2,0x8CF6,0x0000, 0xFBC2,0x8CF7,0x0000, 0xFBC2,0x8CF8,0x0000, /* 10CF6 */ +0xFBC2,0x8CF9,0x0000, 0xFBC2,0x8CFA,0x0000, 0xFBC2,0x8CFB,0x0000, /* 10CF9 */ +0xFBC2,0x8CFC,0x0000, 0xFBC2,0x8CFD,0x0000, 0xFBC2,0x8CFE,0x0000, /* 10CFC */ +0xFBC2,0x8CFF,0x0000 }; + +uint16 uca520_p10E[]= { /* 10E00 (3 weights per char) */ +0xFBC2,0x8E00,0x0000, 0xFBC2,0x8E01,0x0000, 0xFBC2,0x8E02,0x0000, /* 10E00 */ +0xFBC2,0x8E03,0x0000, 0xFBC2,0x8E04,0x0000, 0xFBC2,0x8E05,0x0000, /* 10E03 */ +0xFBC2,0x8E06,0x0000, 0xFBC2,0x8E07,0x0000, 0xFBC2,0x8E08,0x0000, /* 10E06 */ +0xFBC2,0x8E09,0x0000, 0xFBC2,0x8E0A,0x0000, 0xFBC2,0x8E0B,0x0000, /* 10E09 */ +0xFBC2,0x8E0C,0x0000, 0xFBC2,0x8E0D,0x0000, 0xFBC2,0x8E0E,0x0000, /* 10E0C */ +0xFBC2,0x8E0F,0x0000, 0xFBC2,0x8E10,0x0000, 0xFBC2,0x8E11,0x0000, /* 10E0F */ +0xFBC2,0x8E12,0x0000, 0xFBC2,0x8E13,0x0000, 0xFBC2,0x8E14,0x0000, /* 10E12 */ +0xFBC2,0x8E15,0x0000, 0xFBC2,0x8E16,0x0000, 0xFBC2,0x8E17,0x0000, /* 10E15 */ +0xFBC2,0x8E18,0x0000, 0xFBC2,0x8E19,0x0000, 0xFBC2,0x8E1A,0x0000, /* 10E18 */ +0xFBC2,0x8E1B,0x0000, 0xFBC2,0x8E1C,0x0000, 0xFBC2,0x8E1D,0x0000, /* 10E1B */ +0xFBC2,0x8E1E,0x0000, 0xFBC2,0x8E1F,0x0000, 0xFBC2,0x8E20,0x0000, /* 10E1E */ +0xFBC2,0x8E21,0x0000, 0xFBC2,0x8E22,0x0000, 0xFBC2,0x8E23,0x0000, /* 10E21 */ +0xFBC2,0x8E24,0x0000, 0xFBC2,0x8E25,0x0000, 0xFBC2,0x8E26,0x0000, /* 10E24 */ +0xFBC2,0x8E27,0x0000, 0xFBC2,0x8E28,0x0000, 0xFBC2,0x8E29,0x0000, /* 10E27 */ +0xFBC2,0x8E2A,0x0000, 0xFBC2,0x8E2B,0x0000, 0xFBC2,0x8E2C,0x0000, /* 10E2A */ +0xFBC2,0x8E2D,0x0000, 0xFBC2,0x8E2E,0x0000, 0xFBC2,0x8E2F,0x0000, /* 10E2D */ +0xFBC2,0x8E30,0x0000, 0xFBC2,0x8E31,0x0000, 0xFBC2,0x8E32,0x0000, /* 10E30 */ +0xFBC2,0x8E33,0x0000, 0xFBC2,0x8E34,0x0000, 0xFBC2,0x8E35,0x0000, /* 10E33 */ +0xFBC2,0x8E36,0x0000, 0xFBC2,0x8E37,0x0000, 0xFBC2,0x8E38,0x0000, /* 10E36 */ +0xFBC2,0x8E39,0x0000, 0xFBC2,0x8E3A,0x0000, 0xFBC2,0x8E3B,0x0000, /* 10E39 */ +0xFBC2,0x8E3C,0x0000, 0xFBC2,0x8E3D,0x0000, 0xFBC2,0x8E3E,0x0000, /* 10E3C */ +0xFBC2,0x8E3F,0x0000, 0xFBC2,0x8E40,0x0000, 0xFBC2,0x8E41,0x0000, /* 10E3F */ +0xFBC2,0x8E42,0x0000, 0xFBC2,0x8E43,0x0000, 0xFBC2,0x8E44,0x0000, /* 10E42 */ +0xFBC2,0x8E45,0x0000, 0xFBC2,0x8E46,0x0000, 0xFBC2,0x8E47,0x0000, /* 10E45 */ +0xFBC2,0x8E48,0x0000, 0xFBC2,0x8E49,0x0000, 0xFBC2,0x8E4A,0x0000, /* 10E48 */ +0xFBC2,0x8E4B,0x0000, 0xFBC2,0x8E4C,0x0000, 0xFBC2,0x8E4D,0x0000, /* 10E4B */ +0xFBC2,0x8E4E,0x0000, 0xFBC2,0x8E4F,0x0000, 0xFBC2,0x8E50,0x0000, /* 10E4E */ +0xFBC2,0x8E51,0x0000, 0xFBC2,0x8E52,0x0000, 0xFBC2,0x8E53,0x0000, /* 10E51 */ +0xFBC2,0x8E54,0x0000, 0xFBC2,0x8E55,0x0000, 0xFBC2,0x8E56,0x0000, /* 10E54 */ +0xFBC2,0x8E57,0x0000, 0xFBC2,0x8E58,0x0000, 0xFBC2,0x8E59,0x0000, /* 10E57 */ +0xFBC2,0x8E5A,0x0000, 0xFBC2,0x8E5B,0x0000, 0xFBC2,0x8E5C,0x0000, /* 10E5A */ +0xFBC2,0x8E5D,0x0000, 0xFBC2,0x8E5E,0x0000, 0xFBC2,0x8E5F,0x0000, /* 10E5D */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 10E60 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 10E63 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 10E66 */ +0x1136,0x0000,0x0000, 0x1137,0x0000,0x0000, 0x1138,0x0000,0x0000, /* 10E69 */ +0x1139,0x0000,0x0000, 0x113A,0x0000,0x0000, 0x113B,0x0000,0x0000, /* 10E6C */ +0x113C,0x0000,0x0000, 0x113D,0x0000,0x0000, 0x113E,0x0000,0x0000, /* 10E6F */ +0x113F,0x0000,0x0000, 0x1140,0x0000,0x0000, 0x1141,0x0000,0x0000, /* 10E72 */ +0x1142,0x0000,0x0000, 0x1143,0x0000,0x0000, 0x1144,0x0000,0x0000, /* 10E75 */ +0x1145,0x0000,0x0000, 0x1146,0x0000,0x0000, 0x1147,0x0000,0x0000, /* 10E78 */ +0x1148,0x0000,0x0000, 0x1149,0x0000,0x0000, 0x114A,0x0000,0x0000, /* 10E7B */ +0x114B,0x0000,0x0000, 0xFBC2,0x8E7F,0x0000, 0xFBC2,0x8E80,0x0000, /* 10E7E */ +0xFBC2,0x8E81,0x0000, 0xFBC2,0x8E82,0x0000, 0xFBC2,0x8E83,0x0000, /* 10E81 */ +0xFBC2,0x8E84,0x0000, 0xFBC2,0x8E85,0x0000, 0xFBC2,0x8E86,0x0000, /* 10E84 */ +0xFBC2,0x8E87,0x0000, 0xFBC2,0x8E88,0x0000, 0xFBC2,0x8E89,0x0000, /* 10E87 */ +0xFBC2,0x8E8A,0x0000, 0xFBC2,0x8E8B,0x0000, 0xFBC2,0x8E8C,0x0000, /* 10E8A */ +0xFBC2,0x8E8D,0x0000, 0xFBC2,0x8E8E,0x0000, 0xFBC2,0x8E8F,0x0000, /* 10E8D */ +0xFBC2,0x8E90,0x0000, 0xFBC2,0x8E91,0x0000, 0xFBC2,0x8E92,0x0000, /* 10E90 */ +0xFBC2,0x8E93,0x0000, 0xFBC2,0x8E94,0x0000, 0xFBC2,0x8E95,0x0000, /* 10E93 */ +0xFBC2,0x8E96,0x0000, 0xFBC2,0x8E97,0x0000, 0xFBC2,0x8E98,0x0000, /* 10E96 */ +0xFBC2,0x8E99,0x0000, 0xFBC2,0x8E9A,0x0000, 0xFBC2,0x8E9B,0x0000, /* 10E99 */ +0xFBC2,0x8E9C,0x0000, 0xFBC2,0x8E9D,0x0000, 0xFBC2,0x8E9E,0x0000, /* 10E9C */ +0xFBC2,0x8E9F,0x0000, 0xFBC2,0x8EA0,0x0000, 0xFBC2,0x8EA1,0x0000, /* 10E9F */ +0xFBC2,0x8EA2,0x0000, 0xFBC2,0x8EA3,0x0000, 0xFBC2,0x8EA4,0x0000, /* 10EA2 */ +0xFBC2,0x8EA5,0x0000, 0xFBC2,0x8EA6,0x0000, 0xFBC2,0x8EA7,0x0000, /* 10EA5 */ +0xFBC2,0x8EA8,0x0000, 0xFBC2,0x8EA9,0x0000, 0xFBC2,0x8EAA,0x0000, /* 10EA8 */ +0xFBC2,0x8EAB,0x0000, 0xFBC2,0x8EAC,0x0000, 0xFBC2,0x8EAD,0x0000, /* 10EAB */ +0xFBC2,0x8EAE,0x0000, 0xFBC2,0x8EAF,0x0000, 0xFBC2,0x8EB0,0x0000, /* 10EAE */ +0xFBC2,0x8EB1,0x0000, 0xFBC2,0x8EB2,0x0000, 0xFBC2,0x8EB3,0x0000, /* 10EB1 */ +0xFBC2,0x8EB4,0x0000, 0xFBC2,0x8EB5,0x0000, 0xFBC2,0x8EB6,0x0000, /* 10EB4 */ +0xFBC2,0x8EB7,0x0000, 0xFBC2,0x8EB8,0x0000, 0xFBC2,0x8EB9,0x0000, /* 10EB7 */ +0xFBC2,0x8EBA,0x0000, 0xFBC2,0x8EBB,0x0000, 0xFBC2,0x8EBC,0x0000, /* 10EBA */ +0xFBC2,0x8EBD,0x0000, 0xFBC2,0x8EBE,0x0000, 0xFBC2,0x8EBF,0x0000, /* 10EBD */ +0xFBC2,0x8EC0,0x0000, 0xFBC2,0x8EC1,0x0000, 0xFBC2,0x8EC2,0x0000, /* 10EC0 */ +0xFBC2,0x8EC3,0x0000, 0xFBC2,0x8EC4,0x0000, 0xFBC2,0x8EC5,0x0000, /* 10EC3 */ +0xFBC2,0x8EC6,0x0000, 0xFBC2,0x8EC7,0x0000, 0xFBC2,0x8EC8,0x0000, /* 10EC6 */ +0xFBC2,0x8EC9,0x0000, 0xFBC2,0x8ECA,0x0000, 0xFBC2,0x8ECB,0x0000, /* 10EC9 */ +0xFBC2,0x8ECC,0x0000, 0xFBC2,0x8ECD,0x0000, 0xFBC2,0x8ECE,0x0000, /* 10ECC */ +0xFBC2,0x8ECF,0x0000, 0xFBC2,0x8ED0,0x0000, 0xFBC2,0x8ED1,0x0000, /* 10ECF */ +0xFBC2,0x8ED2,0x0000, 0xFBC2,0x8ED3,0x0000, 0xFBC2,0x8ED4,0x0000, /* 10ED2 */ +0xFBC2,0x8ED5,0x0000, 0xFBC2,0x8ED6,0x0000, 0xFBC2,0x8ED7,0x0000, /* 10ED5 */ +0xFBC2,0x8ED8,0x0000, 0xFBC2,0x8ED9,0x0000, 0xFBC2,0x8EDA,0x0000, /* 10ED8 */ +0xFBC2,0x8EDB,0x0000, 0xFBC2,0x8EDC,0x0000, 0xFBC2,0x8EDD,0x0000, /* 10EDB */ +0xFBC2,0x8EDE,0x0000, 0xFBC2,0x8EDF,0x0000, 0xFBC2,0x8EE0,0x0000, /* 10EDE */ +0xFBC2,0x8EE1,0x0000, 0xFBC2,0x8EE2,0x0000, 0xFBC2,0x8EE3,0x0000, /* 10EE1 */ +0xFBC2,0x8EE4,0x0000, 0xFBC2,0x8EE5,0x0000, 0xFBC2,0x8EE6,0x0000, /* 10EE4 */ +0xFBC2,0x8EE7,0x0000, 0xFBC2,0x8EE8,0x0000, 0xFBC2,0x8EE9,0x0000, /* 10EE7 */ +0xFBC2,0x8EEA,0x0000, 0xFBC2,0x8EEB,0x0000, 0xFBC2,0x8EEC,0x0000, /* 10EEA */ +0xFBC2,0x8EED,0x0000, 0xFBC2,0x8EEE,0x0000, 0xFBC2,0x8EEF,0x0000, /* 10EED */ +0xFBC2,0x8EF0,0x0000, 0xFBC2,0x8EF1,0x0000, 0xFBC2,0x8EF2,0x0000, /* 10EF0 */ +0xFBC2,0x8EF3,0x0000, 0xFBC2,0x8EF4,0x0000, 0xFBC2,0x8EF5,0x0000, /* 10EF3 */ +0xFBC2,0x8EF6,0x0000, 0xFBC2,0x8EF7,0x0000, 0xFBC2,0x8EF8,0x0000, /* 10EF6 */ +0xFBC2,0x8EF9,0x0000, 0xFBC2,0x8EFA,0x0000, 0xFBC2,0x8EFB,0x0000, /* 10EF9 */ +0xFBC2,0x8EFC,0x0000, 0xFBC2,0x8EFD,0x0000, 0xFBC2,0x8EFE,0x0000, /* 10EFC */ +0xFBC2,0x8EFF,0x0000 }; + +uint16 uca520_p110[]= { /* 11000 (3 weights per char) */ +0xFBC2,0x9000,0x0000, 0xFBC2,0x9001,0x0000, 0xFBC2,0x9002,0x0000, /* 11000 */ +0xFBC2,0x9003,0x0000, 0xFBC2,0x9004,0x0000, 0xFBC2,0x9005,0x0000, /* 11003 */ +0xFBC2,0x9006,0x0000, 0xFBC2,0x9007,0x0000, 0xFBC2,0x9008,0x0000, /* 11006 */ +0xFBC2,0x9009,0x0000, 0xFBC2,0x900A,0x0000, 0xFBC2,0x900B,0x0000, /* 11009 */ +0xFBC2,0x900C,0x0000, 0xFBC2,0x900D,0x0000, 0xFBC2,0x900E,0x0000, /* 1100C */ +0xFBC2,0x900F,0x0000, 0xFBC2,0x9010,0x0000, 0xFBC2,0x9011,0x0000, /* 1100F */ +0xFBC2,0x9012,0x0000, 0xFBC2,0x9013,0x0000, 0xFBC2,0x9014,0x0000, /* 11012 */ +0xFBC2,0x9015,0x0000, 0xFBC2,0x9016,0x0000, 0xFBC2,0x9017,0x0000, /* 11015 */ +0xFBC2,0x9018,0x0000, 0xFBC2,0x9019,0x0000, 0xFBC2,0x901A,0x0000, /* 11018 */ +0xFBC2,0x901B,0x0000, 0xFBC2,0x901C,0x0000, 0xFBC2,0x901D,0x0000, /* 1101B */ +0xFBC2,0x901E,0x0000, 0xFBC2,0x901F,0x0000, 0xFBC2,0x9020,0x0000, /* 1101E */ +0xFBC2,0x9021,0x0000, 0xFBC2,0x9022,0x0000, 0xFBC2,0x9023,0x0000, /* 11021 */ +0xFBC2,0x9024,0x0000, 0xFBC2,0x9025,0x0000, 0xFBC2,0x9026,0x0000, /* 11024 */ +0xFBC2,0x9027,0x0000, 0xFBC2,0x9028,0x0000, 0xFBC2,0x9029,0x0000, /* 11027 */ +0xFBC2,0x902A,0x0000, 0xFBC2,0x902B,0x0000, 0xFBC2,0x902C,0x0000, /* 1102A */ +0xFBC2,0x902D,0x0000, 0xFBC2,0x902E,0x0000, 0xFBC2,0x902F,0x0000, /* 1102D */ +0xFBC2,0x9030,0x0000, 0xFBC2,0x9031,0x0000, 0xFBC2,0x9032,0x0000, /* 11030 */ +0xFBC2,0x9033,0x0000, 0xFBC2,0x9034,0x0000, 0xFBC2,0x9035,0x0000, /* 11033 */ +0xFBC2,0x9036,0x0000, 0xFBC2,0x9037,0x0000, 0xFBC2,0x9038,0x0000, /* 11036 */ +0xFBC2,0x9039,0x0000, 0xFBC2,0x903A,0x0000, 0xFBC2,0x903B,0x0000, /* 11039 */ +0xFBC2,0x903C,0x0000, 0xFBC2,0x903D,0x0000, 0xFBC2,0x903E,0x0000, /* 1103C */ +0xFBC2,0x903F,0x0000, 0xFBC2,0x9040,0x0000, 0xFBC2,0x9041,0x0000, /* 1103F */ +0xFBC2,0x9042,0x0000, 0xFBC2,0x9043,0x0000, 0xFBC2,0x9044,0x0000, /* 11042 */ +0xFBC2,0x9045,0x0000, 0xFBC2,0x9046,0x0000, 0xFBC2,0x9047,0x0000, /* 11045 */ +0xFBC2,0x9048,0x0000, 0xFBC2,0x9049,0x0000, 0xFBC2,0x904A,0x0000, /* 11048 */ +0xFBC2,0x904B,0x0000, 0xFBC2,0x904C,0x0000, 0xFBC2,0x904D,0x0000, /* 1104B */ +0xFBC2,0x904E,0x0000, 0xFBC2,0x904F,0x0000, 0xFBC2,0x9050,0x0000, /* 1104E */ +0xFBC2,0x9051,0x0000, 0xFBC2,0x9052,0x0000, 0xFBC2,0x9053,0x0000, /* 11051 */ +0xFBC2,0x9054,0x0000, 0xFBC2,0x9055,0x0000, 0xFBC2,0x9056,0x0000, /* 11054 */ +0xFBC2,0x9057,0x0000, 0xFBC2,0x9058,0x0000, 0xFBC2,0x9059,0x0000, /* 11057 */ +0xFBC2,0x905A,0x0000, 0xFBC2,0x905B,0x0000, 0xFBC2,0x905C,0x0000, /* 1105A */ +0xFBC2,0x905D,0x0000, 0xFBC2,0x905E,0x0000, 0xFBC2,0x905F,0x0000, /* 1105D */ +0xFBC2,0x9060,0x0000, 0xFBC2,0x9061,0x0000, 0xFBC2,0x9062,0x0000, /* 11060 */ +0xFBC2,0x9063,0x0000, 0xFBC2,0x9064,0x0000, 0xFBC2,0x9065,0x0000, /* 11063 */ +0xFBC2,0x9066,0x0000, 0xFBC2,0x9067,0x0000, 0xFBC2,0x9068,0x0000, /* 11066 */ +0xFBC2,0x9069,0x0000, 0xFBC2,0x906A,0x0000, 0xFBC2,0x906B,0x0000, /* 11069 */ +0xFBC2,0x906C,0x0000, 0xFBC2,0x906D,0x0000, 0xFBC2,0x906E,0x0000, /* 1106C */ +0xFBC2,0x906F,0x0000, 0xFBC2,0x9070,0x0000, 0xFBC2,0x9071,0x0000, /* 1106F */ +0xFBC2,0x9072,0x0000, 0xFBC2,0x9073,0x0000, 0xFBC2,0x9074,0x0000, /* 11072 */ +0xFBC2,0x9075,0x0000, 0xFBC2,0x9076,0x0000, 0xFBC2,0x9077,0x0000, /* 11075 */ +0xFBC2,0x9078,0x0000, 0xFBC2,0x9079,0x0000, 0xFBC2,0x907A,0x0000, /* 11078 */ +0xFBC2,0x907B,0x0000, 0xFBC2,0x907C,0x0000, 0xFBC2,0x907D,0x0000, /* 1107B */ +0xFBC2,0x907E,0x0000, 0xFBC2,0x907F,0x0000, 0x0000,0x0000,0x0000, /* 1107E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1EE8,0x0000,0x0000, /* 11081 */ +0x1EE9,0x0000,0x0000, 0x1EEA,0x0000,0x0000, 0x1EEB,0x0000,0x0000, /* 11084 */ +0x1EEC,0x0000,0x0000, 0x1EED,0x0000,0x0000, 0x1EEE,0x0000,0x0000, /* 11087 */ +0x1EEF,0x0000,0x0000, 0x1EF0,0x0000,0x0000, 0x1EF1,0x0000,0x0000, /* 1108A */ +0x1EF2,0x0000,0x0000, 0x1EF3,0x0000,0x0000, 0x1EF4,0x0000,0x0000, /* 1108D */ +0x1EF5,0x0000,0x0000, 0x1EF6,0x0000,0x0000, 0x1EF7,0x0000,0x0000, /* 11090 */ +0x1EF8,0x0000,0x0000, 0x1EF9,0x0000,0x0000, 0x1EFA,0x0000,0x0000, /* 11093 */ +0x1EFB,0x0000,0x0000, 0x1EFC,0x0000,0x0000, 0x1EFD,0x0000,0x0000, /* 11096 */ +0x1EFE,0x0000,0x0000, 0x1EFE,0x0000,0x0000, 0x1EFF,0x0000,0x0000, /* 11099 */ +0x1EFF,0x0000,0x0000, 0x1F00,0x0000,0x0000, 0x1F01,0x0000,0x0000, /* 1109C */ +0x1F02,0x0000,0x0000, 0x1F03,0x0000,0x0000, 0x1F04,0x0000,0x0000, /* 1109F */ +0x1F05,0x0000,0x0000, 0x1F06,0x0000,0x0000, 0x1F07,0x0000,0x0000, /* 110A2 */ +0x1F08,0x0000,0x0000, 0x1F09,0x0000,0x0000, 0x1F0A,0x0000,0x0000, /* 110A5 */ +0x1F0B,0x0000,0x0000, 0x1F0C,0x0000,0x0000, 0x1F0D,0x0000,0x0000, /* 110A8 */ +0x1F08,0x0000,0x0000, 0x1F0E,0x0000,0x0000, 0x1F0F,0x0000,0x0000, /* 110AB */ +0x1F10,0x0000,0x0000, 0x1F11,0x0000,0x0000, 0x1F12,0x0000,0x0000, /* 110AE */ +0x1F13,0x0000,0x0000, 0x1F14,0x0000,0x0000, 0x1F15,0x0000,0x0000, /* 110B1 */ +0x1F16,0x0000,0x0000, 0x1F17,0x0000,0x0000, 0x1F18,0x0000,0x0000, /* 110B4 */ +0x1F19,0x0000,0x0000, 0x1F1A,0x0000,0x0000, 0x1F1B,0x0000,0x0000, /* 110B7 */ +0x0000,0x0000,0x0000, 0x03E7,0x0000,0x0000, 0x03E8,0x0000,0x0000, /* 110BA */ +0x0000,0x0000,0x0000, 0x02D1,0x0000,0x0000, 0x02D2,0x0000,0x0000, /* 110BD */ +0x02B1,0x0000,0x0000, 0x02B2,0x0000,0x0000, 0xFBC2,0x90C2,0x0000, /* 110C0 */ +0xFBC2,0x90C3,0x0000, 0xFBC2,0x90C4,0x0000, 0xFBC2,0x90C5,0x0000, /* 110C3 */ +0xFBC2,0x90C6,0x0000, 0xFBC2,0x90C7,0x0000, 0xFBC2,0x90C8,0x0000, /* 110C6 */ +0xFBC2,0x90C9,0x0000, 0xFBC2,0x90CA,0x0000, 0xFBC2,0x90CB,0x0000, /* 110C9 */ +0xFBC2,0x90CC,0x0000, 0xFBC2,0x90CD,0x0000, 0xFBC2,0x90CE,0x0000, /* 110CC */ +0xFBC2,0x90CF,0x0000, 0xFBC2,0x90D0,0x0000, 0xFBC2,0x90D1,0x0000, /* 110CF */ +0xFBC2,0x90D2,0x0000, 0xFBC2,0x90D3,0x0000, 0xFBC2,0x90D4,0x0000, /* 110D2 */ +0xFBC2,0x90D5,0x0000, 0xFBC2,0x90D6,0x0000, 0xFBC2,0x90D7,0x0000, /* 110D5 */ +0xFBC2,0x90D8,0x0000, 0xFBC2,0x90D9,0x0000, 0xFBC2,0x90DA,0x0000, /* 110D8 */ +0xFBC2,0x90DB,0x0000, 0xFBC2,0x90DC,0x0000, 0xFBC2,0x90DD,0x0000, /* 110DB */ +0xFBC2,0x90DE,0x0000, 0xFBC2,0x90DF,0x0000, 0xFBC2,0x90E0,0x0000, /* 110DE */ +0xFBC2,0x90E1,0x0000, 0xFBC2,0x90E2,0x0000, 0xFBC2,0x90E3,0x0000, /* 110E1 */ +0xFBC2,0x90E4,0x0000, 0xFBC2,0x90E5,0x0000, 0xFBC2,0x90E6,0x0000, /* 110E4 */ +0xFBC2,0x90E7,0x0000, 0xFBC2,0x90E8,0x0000, 0xFBC2,0x90E9,0x0000, /* 110E7 */ +0xFBC2,0x90EA,0x0000, 0xFBC2,0x90EB,0x0000, 0xFBC2,0x90EC,0x0000, /* 110EA */ +0xFBC2,0x90ED,0x0000, 0xFBC2,0x90EE,0x0000, 0xFBC2,0x90EF,0x0000, /* 110ED */ +0xFBC2,0x90F0,0x0000, 0xFBC2,0x90F1,0x0000, 0xFBC2,0x90F2,0x0000, /* 110F0 */ +0xFBC2,0x90F3,0x0000, 0xFBC2,0x90F4,0x0000, 0xFBC2,0x90F5,0x0000, /* 110F3 */ +0xFBC2,0x90F6,0x0000, 0xFBC2,0x90F7,0x0000, 0xFBC2,0x90F8,0x0000, /* 110F6 */ +0xFBC2,0x90F9,0x0000, 0xFBC2,0x90FA,0x0000, 0xFBC2,0x90FB,0x0000, /* 110F9 */ +0xFBC2,0x90FC,0x0000, 0xFBC2,0x90FD,0x0000, 0xFBC2,0x90FE,0x0000, /* 110FC */ +0xFBC2,0x90FF,0x0000 }; + +uint16 uca520_p120[]= { /* 12000 (2 weights per char) */ +0x332D,0x0000, 0x332E,0x0000, 0x332F,0x0000, 0x3330,0x0000, /* 12000 */ +0x3331,0x0000, 0x3332,0x0000, 0x3333,0x0000, 0x3334,0x0000, /* 12004 */ +0x3335,0x0000, 0x3336,0x0000, 0x3337,0x0000, 0x3338,0x0000, /* 12008 */ +0x3339,0x0000, 0x333A,0x0000, 0x333B,0x0000, 0x333C,0x0000, /* 1200C */ +0x333D,0x0000, 0x333E,0x0000, 0x333F,0x0000, 0x3340,0x0000, /* 12010 */ +0x3341,0x0000, 0x3342,0x0000, 0x3343,0x0000, 0x3344,0x0000, /* 12014 */ +0x3345,0x0000, 0x3346,0x0000, 0x3347,0x0000, 0x3348,0x0000, /* 12018 */ +0x3349,0x0000, 0x334A,0x0000, 0x334B,0x0000, 0x334C,0x0000, /* 1201C */ +0x334D,0x0000, 0x334E,0x0000, 0x334F,0x0000, 0x3350,0x0000, /* 12020 */ +0x3351,0x0000, 0x3352,0x0000, 0x3353,0x0000, 0x3354,0x0000, /* 12024 */ +0x3355,0x0000, 0x3356,0x0000, 0x3357,0x0000, 0x3358,0x0000, /* 12028 */ +0x3359,0x0000, 0x335A,0x0000, 0x335B,0x0000, 0x335C,0x0000, /* 1202C */ +0x335D,0x0000, 0x335E,0x0000, 0x335F,0x0000, 0x3360,0x0000, /* 12030 */ +0x3361,0x0000, 0x3362,0x0000, 0x3363,0x0000, 0x3364,0x0000, /* 12034 */ +0x3365,0x0000, 0x3366,0x0000, 0x3367,0x0000, 0x3368,0x0000, /* 12038 */ +0x3369,0x0000, 0x336A,0x0000, 0x336B,0x0000, 0x336C,0x0000, /* 1203C */ +0x336D,0x0000, 0x336E,0x0000, 0x336F,0x0000, 0x3370,0x0000, /* 12040 */ +0x3371,0x0000, 0x3372,0x0000, 0x3373,0x0000, 0x3374,0x0000, /* 12044 */ +0x3375,0x0000, 0x3376,0x0000, 0x3377,0x0000, 0x3378,0x0000, /* 12048 */ +0x3379,0x0000, 0x337A,0x0000, 0x337B,0x0000, 0x337C,0x0000, /* 1204C */ +0x337D,0x0000, 0x337E,0x0000, 0x337F,0x0000, 0x3380,0x0000, /* 12050 */ +0x3381,0x0000, 0x3382,0x0000, 0x3383,0x0000, 0x3384,0x0000, /* 12054 */ +0x3385,0x0000, 0x3386,0x0000, 0x3387,0x0000, 0x3388,0x0000, /* 12058 */ +0x3389,0x0000, 0x338A,0x0000, 0x338B,0x0000, 0x338C,0x0000, /* 1205C */ +0x338D,0x0000, 0x338E,0x0000, 0x338F,0x0000, 0x3390,0x0000, /* 12060 */ +0x3391,0x0000, 0x3392,0x0000, 0x3393,0x0000, 0x3394,0x0000, /* 12064 */ +0x3395,0x0000, 0x3396,0x0000, 0x3397,0x0000, 0x3398,0x0000, /* 12068 */ +0x3399,0x0000, 0x339A,0x0000, 0x339B,0x0000, 0x339C,0x0000, /* 1206C */ +0x339D,0x0000, 0x339E,0x0000, 0x339F,0x0000, 0x33A0,0x0000, /* 12070 */ +0x33A1,0x0000, 0x33A2,0x0000, 0x33A3,0x0000, 0x33A4,0x0000, /* 12074 */ +0x33A5,0x0000, 0x33A6,0x0000, 0x33A7,0x0000, 0x33A8,0x0000, /* 12078 */ +0x33A9,0x0000, 0x33AA,0x0000, 0x33AB,0x0000, 0x33AC,0x0000, /* 1207C */ +0x33AD,0x0000, 0x33AE,0x0000, 0x33AF,0x0000, 0x33B0,0x0000, /* 12080 */ +0x33B1,0x0000, 0x33B2,0x0000, 0x33B3,0x0000, 0x33B4,0x0000, /* 12084 */ +0x33B5,0x0000, 0x33B6,0x0000, 0x33B7,0x0000, 0x33B8,0x0000, /* 12088 */ +0x33B9,0x0000, 0x33BA,0x0000, 0x33BB,0x0000, 0x33BC,0x0000, /* 1208C */ +0x33BD,0x0000, 0x33BE,0x0000, 0x33BF,0x0000, 0x33C0,0x0000, /* 12090 */ +0x33C1,0x0000, 0x33C2,0x0000, 0x33C3,0x0000, 0x33C4,0x0000, /* 12094 */ +0x33C5,0x0000, 0x33C6,0x0000, 0x33C7,0x0000, 0x33C8,0x0000, /* 12098 */ +0x33C9,0x0000, 0x33CA,0x0000, 0x33CB,0x0000, 0x33CC,0x0000, /* 1209C */ +0x33CD,0x0000, 0x33CE,0x0000, 0x33CF,0x0000, 0x33D0,0x0000, /* 120A0 */ +0x33D1,0x0000, 0x33D2,0x0000, 0x33D3,0x0000, 0x33D4,0x0000, /* 120A4 */ +0x33D5,0x0000, 0x33D6,0x0000, 0x33D7,0x0000, 0x33D8,0x0000, /* 120A8 */ +0x33D9,0x0000, 0x33DA,0x0000, 0x33DB,0x0000, 0x33DC,0x0000, /* 120AC */ +0x33DD,0x0000, 0x33DE,0x0000, 0x33DF,0x0000, 0x33E0,0x0000, /* 120B0 */ +0x33E1,0x0000, 0x33E2,0x0000, 0x33E3,0x0000, 0x33E4,0x0000, /* 120B4 */ +0x33E5,0x0000, 0x33E6,0x0000, 0x33E7,0x0000, 0x33E8,0x0000, /* 120B8 */ +0x33E9,0x0000, 0x33EA,0x0000, 0x33EB,0x0000, 0x33EC,0x0000, /* 120BC */ +0x33ED,0x0000, 0x33EE,0x0000, 0x33EF,0x0000, 0x33F0,0x0000, /* 120C0 */ +0x33F1,0x0000, 0x33F2,0x0000, 0x33F3,0x0000, 0x33F4,0x0000, /* 120C4 */ +0x33F5,0x0000, 0x33F6,0x0000, 0x33F7,0x0000, 0x33F8,0x0000, /* 120C8 */ +0x33F9,0x0000, 0x33FA,0x0000, 0x33FB,0x0000, 0x33FC,0x0000, /* 120CC */ +0x33FD,0x0000, 0x33FE,0x0000, 0x33FF,0x0000, 0x3400,0x0000, /* 120D0 */ +0x3401,0x0000, 0x3402,0x0000, 0x3403,0x0000, 0x3404,0x0000, /* 120D4 */ +0x3405,0x0000, 0x3406,0x0000, 0x3407,0x0000, 0x3408,0x0000, /* 120D8 */ +0x3409,0x0000, 0x340A,0x0000, 0x340B,0x0000, 0x340C,0x0000, /* 120DC */ +0x340D,0x0000, 0x340E,0x0000, 0x340F,0x0000, 0x3410,0x0000, /* 120E0 */ +0x3411,0x0000, 0x3412,0x0000, 0x3413,0x0000, 0x3414,0x0000, /* 120E4 */ +0x3415,0x0000, 0x3416,0x0000, 0x3417,0x0000, 0x3418,0x0000, /* 120E8 */ +0x3419,0x0000, 0x341A,0x0000, 0x341B,0x0000, 0x341C,0x0000, /* 120EC */ +0x341D,0x0000, 0x341E,0x0000, 0x341F,0x0000, 0x3420,0x0000, /* 120F0 */ +0x3421,0x0000, 0x3422,0x0000, 0x3423,0x0000, 0x3424,0x0000, /* 120F4 */ +0x3425,0x0000, 0x3426,0x0000, 0x3427,0x0000, 0x3428,0x0000, /* 120F8 */ +0x3429,0x0000, 0x342A,0x0000, 0x342B,0x0000, 0x342C,0x0000 /* 120FC */ +}; + +uint16 uca520_p121[]= { /* 12100 (2 weights per char) */ +0x342D,0x0000, 0x342E,0x0000, 0x342F,0x0000, 0x3430,0x0000, /* 12100 */ +0x3431,0x0000, 0x3432,0x0000, 0x3433,0x0000, 0x3434,0x0000, /* 12104 */ +0x3435,0x0000, 0x3436,0x0000, 0x3437,0x0000, 0x3438,0x0000, /* 12108 */ +0x3439,0x0000, 0x343A,0x0000, 0x343B,0x0000, 0x343C,0x0000, /* 1210C */ +0x343D,0x0000, 0x343E,0x0000, 0x343F,0x0000, 0x3440,0x0000, /* 12110 */ +0x3441,0x0000, 0x3442,0x0000, 0x3443,0x0000, 0x3444,0x0000, /* 12114 */ +0x3445,0x0000, 0x3446,0x0000, 0x3447,0x0000, 0x3448,0x0000, /* 12118 */ +0x3449,0x0000, 0x344A,0x0000, 0x344B,0x0000, 0x344C,0x0000, /* 1211C */ +0x344D,0x0000, 0x344E,0x0000, 0x344F,0x0000, 0x3450,0x0000, /* 12120 */ +0x3451,0x0000, 0x3452,0x0000, 0x3453,0x0000, 0x3454,0x0000, /* 12124 */ +0x3455,0x0000, 0x3456,0x0000, 0x3457,0x0000, 0x3458,0x0000, /* 12128 */ +0x3459,0x0000, 0x345A,0x0000, 0x345B,0x0000, 0x345C,0x0000, /* 1212C */ +0x345D,0x0000, 0x345E,0x0000, 0x345F,0x0000, 0x3460,0x0000, /* 12130 */ +0x3461,0x0000, 0x3462,0x0000, 0x3463,0x0000, 0x3464,0x0000, /* 12134 */ +0x3465,0x0000, 0x3466,0x0000, 0x3467,0x0000, 0x3468,0x0000, /* 12138 */ +0x3469,0x0000, 0x346A,0x0000, 0x346B,0x0000, 0x346C,0x0000, /* 1213C */ +0x346D,0x0000, 0x346E,0x0000, 0x346F,0x0000, 0x3470,0x0000, /* 12140 */ +0x3471,0x0000, 0x3472,0x0000, 0x3473,0x0000, 0x3474,0x0000, /* 12144 */ +0x3475,0x0000, 0x3476,0x0000, 0x3477,0x0000, 0x3478,0x0000, /* 12148 */ +0x3479,0x0000, 0x347A,0x0000, 0x347B,0x0000, 0x347C,0x0000, /* 1214C */ +0x347D,0x0000, 0x347E,0x0000, 0x347F,0x0000, 0x3480,0x0000, /* 12150 */ +0x3481,0x0000, 0x3482,0x0000, 0x3483,0x0000, 0x3484,0x0000, /* 12154 */ +0x3485,0x0000, 0x3486,0x0000, 0x3487,0x0000, 0x3488,0x0000, /* 12158 */ +0x3489,0x0000, 0x348A,0x0000, 0x348B,0x0000, 0x348C,0x0000, /* 1215C */ +0x348D,0x0000, 0x348E,0x0000, 0x348F,0x0000, 0x3490,0x0000, /* 12160 */ +0x3491,0x0000, 0x3492,0x0000, 0x3493,0x0000, 0x3494,0x0000, /* 12164 */ +0x3495,0x0000, 0x3496,0x0000, 0x3497,0x0000, 0x3498,0x0000, /* 12168 */ +0x3499,0x0000, 0x349A,0x0000, 0x349B,0x0000, 0x349C,0x0000, /* 1216C */ +0x349D,0x0000, 0x349E,0x0000, 0x349F,0x0000, 0x34A0,0x0000, /* 12170 */ +0x34A1,0x0000, 0x34A2,0x0000, 0x34A3,0x0000, 0x34A4,0x0000, /* 12174 */ +0x34A5,0x0000, 0x34A6,0x0000, 0x34A7,0x0000, 0x34A8,0x0000, /* 12178 */ +0x34A9,0x0000, 0x34AA,0x0000, 0x34AB,0x0000, 0x34AC,0x0000, /* 1217C */ +0x34AD,0x0000, 0x34AE,0x0000, 0x34AF,0x0000, 0x34B0,0x0000, /* 12180 */ +0x34B1,0x0000, 0x34B2,0x0000, 0x34B3,0x0000, 0x34B4,0x0000, /* 12184 */ +0x34B5,0x0000, 0x34B6,0x0000, 0x34B7,0x0000, 0x34B8,0x0000, /* 12188 */ +0x34B9,0x0000, 0x34BA,0x0000, 0x34BB,0x0000, 0x34BC,0x0000, /* 1218C */ +0x34BD,0x0000, 0x34BE,0x0000, 0x34BF,0x0000, 0x34C0,0x0000, /* 12190 */ +0x34C1,0x0000, 0x34C2,0x0000, 0x34C3,0x0000, 0x34C4,0x0000, /* 12194 */ +0x34C5,0x0000, 0x34C6,0x0000, 0x34C7,0x0000, 0x34C8,0x0000, /* 12198 */ +0x34C9,0x0000, 0x34CA,0x0000, 0x34CB,0x0000, 0x34CC,0x0000, /* 1219C */ +0x34CD,0x0000, 0x34CE,0x0000, 0x34CF,0x0000, 0x34D0,0x0000, /* 121A0 */ +0x34D1,0x0000, 0x34D2,0x0000, 0x34D3,0x0000, 0x34D4,0x0000, /* 121A4 */ +0x34D5,0x0000, 0x34D6,0x0000, 0x34D7,0x0000, 0x34D8,0x0000, /* 121A8 */ +0x34D9,0x0000, 0x34DA,0x0000, 0x34DB,0x0000, 0x34DC,0x0000, /* 121AC */ +0x34DD,0x0000, 0x34DE,0x0000, 0x34DF,0x0000, 0x34E0,0x0000, /* 121B0 */ +0x34E1,0x0000, 0x34E2,0x0000, 0x34E3,0x0000, 0x34E4,0x0000, /* 121B4 */ +0x34E5,0x0000, 0x34E6,0x0000, 0x34E7,0x0000, 0x34E8,0x0000, /* 121B8 */ +0x34E9,0x0000, 0x34EA,0x0000, 0x34EB,0x0000, 0x34EC,0x0000, /* 121BC */ +0x34ED,0x0000, 0x34EE,0x0000, 0x34EF,0x0000, 0x34F0,0x0000, /* 121C0 */ +0x34F1,0x0000, 0x34F2,0x0000, 0x34F3,0x0000, 0x34F4,0x0000, /* 121C4 */ +0x34F5,0x0000, 0x34F6,0x0000, 0x34F7,0x0000, 0x34F8,0x0000, /* 121C8 */ +0x34F9,0x0000, 0x34FA,0x0000, 0x34FB,0x0000, 0x34FC,0x0000, /* 121CC */ +0x34FD,0x0000, 0x34FE,0x0000, 0x34FF,0x0000, 0x3500,0x0000, /* 121D0 */ +0x3501,0x0000, 0x3502,0x0000, 0x3503,0x0000, 0x3504,0x0000, /* 121D4 */ +0x3505,0x0000, 0x3506,0x0000, 0x3507,0x0000, 0x3508,0x0000, /* 121D8 */ +0x3509,0x0000, 0x350A,0x0000, 0x350B,0x0000, 0x350C,0x0000, /* 121DC */ +0x350D,0x0000, 0x350E,0x0000, 0x350F,0x0000, 0x3510,0x0000, /* 121E0 */ +0x3511,0x0000, 0x3512,0x0000, 0x3513,0x0000, 0x3514,0x0000, /* 121E4 */ +0x3515,0x0000, 0x3516,0x0000, 0x3517,0x0000, 0x3518,0x0000, /* 121E8 */ +0x3519,0x0000, 0x351A,0x0000, 0x351B,0x0000, 0x351C,0x0000, /* 121EC */ +0x351D,0x0000, 0x351E,0x0000, 0x351F,0x0000, 0x3520,0x0000, /* 121F0 */ +0x3521,0x0000, 0x3522,0x0000, 0x3523,0x0000, 0x3524,0x0000, /* 121F4 */ +0x3525,0x0000, 0x3526,0x0000, 0x3527,0x0000, 0x3528,0x0000, /* 121F8 */ +0x3529,0x0000, 0x352A,0x0000, 0x352B,0x0000, 0x352C,0x0000 /* 121FC */ +}; + +uint16 uca520_p122[]= { /* 12200 (2 weights per char) */ +0x352D,0x0000, 0x352E,0x0000, 0x352F,0x0000, 0x3530,0x0000, /* 12200 */ +0x3531,0x0000, 0x3532,0x0000, 0x3533,0x0000, 0x3534,0x0000, /* 12204 */ +0x3535,0x0000, 0x3536,0x0000, 0x3537,0x0000, 0x3538,0x0000, /* 12208 */ +0x3539,0x0000, 0x353A,0x0000, 0x353B,0x0000, 0x353C,0x0000, /* 1220C */ +0x353D,0x0000, 0x353E,0x0000, 0x353F,0x0000, 0x3540,0x0000, /* 12210 */ +0x3541,0x0000, 0x3542,0x0000, 0x3543,0x0000, 0x3544,0x0000, /* 12214 */ +0x3545,0x0000, 0x3546,0x0000, 0x3547,0x0000, 0x3548,0x0000, /* 12218 */ +0x3549,0x0000, 0x354A,0x0000, 0x354B,0x0000, 0x354C,0x0000, /* 1221C */ +0x354D,0x0000, 0x354E,0x0000, 0x354F,0x0000, 0x3550,0x0000, /* 12220 */ +0x3551,0x0000, 0x3552,0x0000, 0x3553,0x0000, 0x3554,0x0000, /* 12224 */ +0x3555,0x0000, 0x3556,0x0000, 0x3557,0x0000, 0x3558,0x0000, /* 12228 */ +0x3559,0x0000, 0x355A,0x0000, 0x355B,0x0000, 0x355C,0x0000, /* 1222C */ +0x355D,0x0000, 0x355E,0x0000, 0x355F,0x0000, 0x3560,0x0000, /* 12230 */ +0x3561,0x0000, 0x3562,0x0000, 0x3563,0x0000, 0x3564,0x0000, /* 12234 */ +0x3565,0x0000, 0x3566,0x0000, 0x3567,0x0000, 0x3568,0x0000, /* 12238 */ +0x3569,0x0000, 0x356A,0x0000, 0x356B,0x0000, 0x356C,0x0000, /* 1223C */ +0x356D,0x0000, 0x356E,0x0000, 0x356F,0x0000, 0x3570,0x0000, /* 12240 */ +0x3571,0x0000, 0x3572,0x0000, 0x3573,0x0000, 0x3574,0x0000, /* 12244 */ +0x3575,0x0000, 0x3576,0x0000, 0x3577,0x0000, 0x3578,0x0000, /* 12248 */ +0x3579,0x0000, 0x357A,0x0000, 0x357B,0x0000, 0x357C,0x0000, /* 1224C */ +0x357D,0x0000, 0x357E,0x0000, 0x357F,0x0000, 0x3580,0x0000, /* 12250 */ +0x3581,0x0000, 0x3582,0x0000, 0x3583,0x0000, 0x3584,0x0000, /* 12254 */ +0x3585,0x0000, 0x3586,0x0000, 0x3587,0x0000, 0x3588,0x0000, /* 12258 */ +0x3589,0x0000, 0x358A,0x0000, 0x358B,0x0000, 0x358C,0x0000, /* 1225C */ +0x358D,0x0000, 0x358E,0x0000, 0x358F,0x0000, 0x3590,0x0000, /* 12260 */ +0x3591,0x0000, 0x3592,0x0000, 0x3593,0x0000, 0x3594,0x0000, /* 12264 */ +0x3595,0x0000, 0x3596,0x0000, 0x3597,0x0000, 0x3598,0x0000, /* 12268 */ +0x3599,0x0000, 0x359A,0x0000, 0x359B,0x0000, 0x359C,0x0000, /* 1226C */ +0x359D,0x0000, 0x359E,0x0000, 0x359F,0x0000, 0x35A0,0x0000, /* 12270 */ +0x35A1,0x0000, 0x35A2,0x0000, 0x35A3,0x0000, 0x35A4,0x0000, /* 12274 */ +0x35A5,0x0000, 0x35A6,0x0000, 0x35A7,0x0000, 0x35A8,0x0000, /* 12278 */ +0x35A9,0x0000, 0x35AA,0x0000, 0x35AB,0x0000, 0x35AC,0x0000, /* 1227C */ +0x35AD,0x0000, 0x35AE,0x0000, 0x35AF,0x0000, 0x35B0,0x0000, /* 12280 */ +0x35B1,0x0000, 0x35B2,0x0000, 0x35B3,0x0000, 0x35B4,0x0000, /* 12284 */ +0x35B5,0x0000, 0x35B6,0x0000, 0x35B7,0x0000, 0x35B8,0x0000, /* 12288 */ +0x35B9,0x0000, 0x35BA,0x0000, 0x35BB,0x0000, 0x35BC,0x0000, /* 1228C */ +0x35BD,0x0000, 0x35BE,0x0000, 0x35BF,0x0000, 0x35C0,0x0000, /* 12290 */ +0x35C1,0x0000, 0x35C2,0x0000, 0x35C3,0x0000, 0x35C4,0x0000, /* 12294 */ +0x35C5,0x0000, 0x35C6,0x0000, 0x35C7,0x0000, 0x35C8,0x0000, /* 12298 */ +0x35C9,0x0000, 0x35CA,0x0000, 0x35CB,0x0000, 0x35CC,0x0000, /* 1229C */ +0x35CD,0x0000, 0x35CE,0x0000, 0x35CF,0x0000, 0x35D0,0x0000, /* 122A0 */ +0x35D1,0x0000, 0x35D2,0x0000, 0x35D3,0x0000, 0x35D4,0x0000, /* 122A4 */ +0x35D5,0x0000, 0x35D6,0x0000, 0x35D7,0x0000, 0x35D8,0x0000, /* 122A8 */ +0x35D9,0x0000, 0x35DA,0x0000, 0x35DB,0x0000, 0x35DC,0x0000, /* 122AC */ +0x35DD,0x0000, 0x35DE,0x0000, 0x35DF,0x0000, 0x35E0,0x0000, /* 122B0 */ +0x35E1,0x0000, 0x35E2,0x0000, 0x35E3,0x0000, 0x35E4,0x0000, /* 122B4 */ +0x35E5,0x0000, 0x35E6,0x0000, 0x35E7,0x0000, 0x35E8,0x0000, /* 122B8 */ +0x35E9,0x0000, 0x35EA,0x0000, 0x35EB,0x0000, 0x35EC,0x0000, /* 122BC */ +0x35ED,0x0000, 0x35EE,0x0000, 0x35EF,0x0000, 0x35F0,0x0000, /* 122C0 */ +0x35F1,0x0000, 0x35F2,0x0000, 0x35F3,0x0000, 0x35F4,0x0000, /* 122C4 */ +0x35F5,0x0000, 0x35F6,0x0000, 0x35F7,0x0000, 0x35F8,0x0000, /* 122C8 */ +0x35F9,0x0000, 0x35FA,0x0000, 0x35FB,0x0000, 0x35FC,0x0000, /* 122CC */ +0x35FD,0x0000, 0x35FE,0x0000, 0x35FF,0x0000, 0x3600,0x0000, /* 122D0 */ +0x3601,0x0000, 0x3602,0x0000, 0x3603,0x0000, 0x3604,0x0000, /* 122D4 */ +0x3605,0x0000, 0x3606,0x0000, 0x3607,0x0000, 0x3608,0x0000, /* 122D8 */ +0x3609,0x0000, 0x360A,0x0000, 0x360B,0x0000, 0x360C,0x0000, /* 122DC */ +0x360D,0x0000, 0x360E,0x0000, 0x360F,0x0000, 0x3610,0x0000, /* 122E0 */ +0x3611,0x0000, 0x3612,0x0000, 0x3613,0x0000, 0x3614,0x0000, /* 122E4 */ +0x3615,0x0000, 0x3616,0x0000, 0x3617,0x0000, 0x3618,0x0000, /* 122E8 */ +0x3619,0x0000, 0x361A,0x0000, 0x361B,0x0000, 0x361C,0x0000, /* 122EC */ +0x361D,0x0000, 0x361E,0x0000, 0x361F,0x0000, 0x3620,0x0000, /* 122F0 */ +0x3621,0x0000, 0x3622,0x0000, 0x3623,0x0000, 0x3624,0x0000, /* 122F4 */ +0x3625,0x0000, 0x3626,0x0000, 0x3627,0x0000, 0x3628,0x0000, /* 122F8 */ +0x3629,0x0000, 0x362A,0x0000, 0x362B,0x0000, 0x362C,0x0000 /* 122FC */ +}; + +uint16 uca520_p123[]= { /* 12300 (3 weights per char) */ +0x362D,0x0000,0x0000, 0x362E,0x0000,0x0000, 0x362F,0x0000,0x0000, /* 12300 */ +0x3630,0x0000,0x0000, 0x3631,0x0000,0x0000, 0x3632,0x0000,0x0000, /* 12303 */ +0x3633,0x0000,0x0000, 0x3634,0x0000,0x0000, 0x3635,0x0000,0x0000, /* 12306 */ +0x3636,0x0000,0x0000, 0x3637,0x0000,0x0000, 0x3638,0x0000,0x0000, /* 12309 */ +0x3639,0x0000,0x0000, 0x363A,0x0000,0x0000, 0x363B,0x0000,0x0000, /* 1230C */ +0x363C,0x0000,0x0000, 0x363D,0x0000,0x0000, 0x363E,0x0000,0x0000, /* 1230F */ +0x363F,0x0000,0x0000, 0x3640,0x0000,0x0000, 0x3641,0x0000,0x0000, /* 12312 */ +0x3642,0x0000,0x0000, 0x3643,0x0000,0x0000, 0x3644,0x0000,0x0000, /* 12315 */ +0x3645,0x0000,0x0000, 0x3646,0x0000,0x0000, 0x3647,0x0000,0x0000, /* 12318 */ +0x3648,0x0000,0x0000, 0x3649,0x0000,0x0000, 0x364A,0x0000,0x0000, /* 1231B */ +0x364B,0x0000,0x0000, 0x364C,0x0000,0x0000, 0x364D,0x0000,0x0000, /* 1231E */ +0x364E,0x0000,0x0000, 0x364F,0x0000,0x0000, 0x3650,0x0000,0x0000, /* 12321 */ +0x3651,0x0000,0x0000, 0x3652,0x0000,0x0000, 0x3653,0x0000,0x0000, /* 12324 */ +0x3654,0x0000,0x0000, 0x3655,0x0000,0x0000, 0x3656,0x0000,0x0000, /* 12327 */ +0x3657,0x0000,0x0000, 0x3658,0x0000,0x0000, 0x3659,0x0000,0x0000, /* 1232A */ +0x365A,0x0000,0x0000, 0x365B,0x0000,0x0000, 0x365C,0x0000,0x0000, /* 1232D */ +0x365D,0x0000,0x0000, 0x365E,0x0000,0x0000, 0x365F,0x0000,0x0000, /* 12330 */ +0x3660,0x0000,0x0000, 0x3661,0x0000,0x0000, 0x3662,0x0000,0x0000, /* 12333 */ +0x3663,0x0000,0x0000, 0x3664,0x0000,0x0000, 0x3665,0x0000,0x0000, /* 12336 */ +0x3666,0x0000,0x0000, 0x3667,0x0000,0x0000, 0x3668,0x0000,0x0000, /* 12339 */ +0x3669,0x0000,0x0000, 0x366A,0x0000,0x0000, 0x366B,0x0000,0x0000, /* 1233C */ +0x366C,0x0000,0x0000, 0x366D,0x0000,0x0000, 0x366E,0x0000,0x0000, /* 1233F */ +0x366F,0x0000,0x0000, 0x3670,0x0000,0x0000, 0x3671,0x0000,0x0000, /* 12342 */ +0x3672,0x0000,0x0000, 0x3673,0x0000,0x0000, 0x3674,0x0000,0x0000, /* 12345 */ +0x3675,0x0000,0x0000, 0x3676,0x0000,0x0000, 0x3677,0x0000,0x0000, /* 12348 */ +0x3678,0x0000,0x0000, 0x3679,0x0000,0x0000, 0x367A,0x0000,0x0000, /* 1234B */ +0x367B,0x0000,0x0000, 0x367C,0x0000,0x0000, 0x367D,0x0000,0x0000, /* 1234E */ +0x367E,0x0000,0x0000, 0x367F,0x0000,0x0000, 0x3680,0x0000,0x0000, /* 12351 */ +0x3681,0x0000,0x0000, 0x3682,0x0000,0x0000, 0x3683,0x0000,0x0000, /* 12354 */ +0x3684,0x0000,0x0000, 0x3685,0x0000,0x0000, 0x3686,0x0000,0x0000, /* 12357 */ +0x3687,0x0000,0x0000, 0x3688,0x0000,0x0000, 0x3689,0x0000,0x0000, /* 1235A */ +0x368A,0x0000,0x0000, 0x368B,0x0000,0x0000, 0x368C,0x0000,0x0000, /* 1235D */ +0x368D,0x0000,0x0000, 0x368E,0x0000,0x0000, 0x368F,0x0000,0x0000, /* 12360 */ +0x3690,0x0000,0x0000, 0x3691,0x0000,0x0000, 0x3692,0x0000,0x0000, /* 12363 */ +0x3693,0x0000,0x0000, 0x3694,0x0000,0x0000, 0x3695,0x0000,0x0000, /* 12366 */ +0x3696,0x0000,0x0000, 0x3697,0x0000,0x0000, 0x3698,0x0000,0x0000, /* 12369 */ +0x3699,0x0000,0x0000, 0x369A,0x0000,0x0000, 0x369B,0x0000,0x0000, /* 1236C */ +0xFBC2,0xA36F,0x0000, 0xFBC2,0xA370,0x0000, 0xFBC2,0xA371,0x0000, /* 1236F */ +0xFBC2,0xA372,0x0000, 0xFBC2,0xA373,0x0000, 0xFBC2,0xA374,0x0000, /* 12372 */ +0xFBC2,0xA375,0x0000, 0xFBC2,0xA376,0x0000, 0xFBC2,0xA377,0x0000, /* 12375 */ +0xFBC2,0xA378,0x0000, 0xFBC2,0xA379,0x0000, 0xFBC2,0xA37A,0x0000, /* 12378 */ +0xFBC2,0xA37B,0x0000, 0xFBC2,0xA37C,0x0000, 0xFBC2,0xA37D,0x0000, /* 1237B */ +0xFBC2,0xA37E,0x0000, 0xFBC2,0xA37F,0x0000, 0xFBC2,0xA380,0x0000, /* 1237E */ +0xFBC2,0xA381,0x0000, 0xFBC2,0xA382,0x0000, 0xFBC2,0xA383,0x0000, /* 12381 */ +0xFBC2,0xA384,0x0000, 0xFBC2,0xA385,0x0000, 0xFBC2,0xA386,0x0000, /* 12384 */ +0xFBC2,0xA387,0x0000, 0xFBC2,0xA388,0x0000, 0xFBC2,0xA389,0x0000, /* 12387 */ +0xFBC2,0xA38A,0x0000, 0xFBC2,0xA38B,0x0000, 0xFBC2,0xA38C,0x0000, /* 1238A */ +0xFBC2,0xA38D,0x0000, 0xFBC2,0xA38E,0x0000, 0xFBC2,0xA38F,0x0000, /* 1238D */ +0xFBC2,0xA390,0x0000, 0xFBC2,0xA391,0x0000, 0xFBC2,0xA392,0x0000, /* 12390 */ +0xFBC2,0xA393,0x0000, 0xFBC2,0xA394,0x0000, 0xFBC2,0xA395,0x0000, /* 12393 */ +0xFBC2,0xA396,0x0000, 0xFBC2,0xA397,0x0000, 0xFBC2,0xA398,0x0000, /* 12396 */ +0xFBC2,0xA399,0x0000, 0xFBC2,0xA39A,0x0000, 0xFBC2,0xA39B,0x0000, /* 12399 */ +0xFBC2,0xA39C,0x0000, 0xFBC2,0xA39D,0x0000, 0xFBC2,0xA39E,0x0000, /* 1239C */ +0xFBC2,0xA39F,0x0000, 0xFBC2,0xA3A0,0x0000, 0xFBC2,0xA3A1,0x0000, /* 1239F */ +0xFBC2,0xA3A2,0x0000, 0xFBC2,0xA3A3,0x0000, 0xFBC2,0xA3A4,0x0000, /* 123A2 */ +0xFBC2,0xA3A5,0x0000, 0xFBC2,0xA3A6,0x0000, 0xFBC2,0xA3A7,0x0000, /* 123A5 */ +0xFBC2,0xA3A8,0x0000, 0xFBC2,0xA3A9,0x0000, 0xFBC2,0xA3AA,0x0000, /* 123A8 */ +0xFBC2,0xA3AB,0x0000, 0xFBC2,0xA3AC,0x0000, 0xFBC2,0xA3AD,0x0000, /* 123AB */ +0xFBC2,0xA3AE,0x0000, 0xFBC2,0xA3AF,0x0000, 0xFBC2,0xA3B0,0x0000, /* 123AE */ +0xFBC2,0xA3B1,0x0000, 0xFBC2,0xA3B2,0x0000, 0xFBC2,0xA3B3,0x0000, /* 123B1 */ +0xFBC2,0xA3B4,0x0000, 0xFBC2,0xA3B5,0x0000, 0xFBC2,0xA3B6,0x0000, /* 123B4 */ +0xFBC2,0xA3B7,0x0000, 0xFBC2,0xA3B8,0x0000, 0xFBC2,0xA3B9,0x0000, /* 123B7 */ +0xFBC2,0xA3BA,0x0000, 0xFBC2,0xA3BB,0x0000, 0xFBC2,0xA3BC,0x0000, /* 123BA */ +0xFBC2,0xA3BD,0x0000, 0xFBC2,0xA3BE,0x0000, 0xFBC2,0xA3BF,0x0000, /* 123BD */ +0xFBC2,0xA3C0,0x0000, 0xFBC2,0xA3C1,0x0000, 0xFBC2,0xA3C2,0x0000, /* 123C0 */ +0xFBC2,0xA3C3,0x0000, 0xFBC2,0xA3C4,0x0000, 0xFBC2,0xA3C5,0x0000, /* 123C3 */ +0xFBC2,0xA3C6,0x0000, 0xFBC2,0xA3C7,0x0000, 0xFBC2,0xA3C8,0x0000, /* 123C6 */ +0xFBC2,0xA3C9,0x0000, 0xFBC2,0xA3CA,0x0000, 0xFBC2,0xA3CB,0x0000, /* 123C9 */ +0xFBC2,0xA3CC,0x0000, 0xFBC2,0xA3CD,0x0000, 0xFBC2,0xA3CE,0x0000, /* 123CC */ +0xFBC2,0xA3CF,0x0000, 0xFBC2,0xA3D0,0x0000, 0xFBC2,0xA3D1,0x0000, /* 123CF */ +0xFBC2,0xA3D2,0x0000, 0xFBC2,0xA3D3,0x0000, 0xFBC2,0xA3D4,0x0000, /* 123D2 */ +0xFBC2,0xA3D5,0x0000, 0xFBC2,0xA3D6,0x0000, 0xFBC2,0xA3D7,0x0000, /* 123D5 */ +0xFBC2,0xA3D8,0x0000, 0xFBC2,0xA3D9,0x0000, 0xFBC2,0xA3DA,0x0000, /* 123D8 */ +0xFBC2,0xA3DB,0x0000, 0xFBC2,0xA3DC,0x0000, 0xFBC2,0xA3DD,0x0000, /* 123DB */ +0xFBC2,0xA3DE,0x0000, 0xFBC2,0xA3DF,0x0000, 0xFBC2,0xA3E0,0x0000, /* 123DE */ +0xFBC2,0xA3E1,0x0000, 0xFBC2,0xA3E2,0x0000, 0xFBC2,0xA3E3,0x0000, /* 123E1 */ +0xFBC2,0xA3E4,0x0000, 0xFBC2,0xA3E5,0x0000, 0xFBC2,0xA3E6,0x0000, /* 123E4 */ +0xFBC2,0xA3E7,0x0000, 0xFBC2,0xA3E8,0x0000, 0xFBC2,0xA3E9,0x0000, /* 123E7 */ +0xFBC2,0xA3EA,0x0000, 0xFBC2,0xA3EB,0x0000, 0xFBC2,0xA3EC,0x0000, /* 123EA */ +0xFBC2,0xA3ED,0x0000, 0xFBC2,0xA3EE,0x0000, 0xFBC2,0xA3EF,0x0000, /* 123ED */ +0xFBC2,0xA3F0,0x0000, 0xFBC2,0xA3F1,0x0000, 0xFBC2,0xA3F2,0x0000, /* 123F0 */ +0xFBC2,0xA3F3,0x0000, 0xFBC2,0xA3F4,0x0000, 0xFBC2,0xA3F5,0x0000, /* 123F3 */ +0xFBC2,0xA3F6,0x0000, 0xFBC2,0xA3F7,0x0000, 0xFBC2,0xA3F8,0x0000, /* 123F6 */ +0xFBC2,0xA3F9,0x0000, 0xFBC2,0xA3FA,0x0000, 0xFBC2,0xA3FB,0x0000, /* 123F9 */ +0xFBC2,0xA3FC,0x0000, 0xFBC2,0xA3FD,0x0000, 0xFBC2,0xA3FE,0x0000, /* 123FC */ +0xFBC2,0xA3FF,0x0000 }; + +uint16 uca520_p124[]= { /* 12400 (3 weights per char) */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12400 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 12403 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12406 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 12409 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1240C */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1240F */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 12412 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12415 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 12418 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1241B */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1241E */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12421 */ +0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12424 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 12427 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1242A */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1242D */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x11B8,0x0000,0x0000, /* 12430 */ +0x11B9,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12433 */ +0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12436 */ +0x120A,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12439 */ +0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1243C */ +0x1209,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1243F */ +0x120C,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 12442 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 12445 */ +0x120E,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12448 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1244B */ +0x120B,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1244E */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12451 */ +0x120A,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x11BA,0x0000,0x0000, /* 12454 */ +0x11BB,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12457 */ +0x11BC,0x0000,0x0000, 0x11BD,0x0000,0x0000, 0x11BE,0x0000,0x0000, /* 1245A */ +0x11BF,0x0000,0x0000, 0x11C0,0x0000,0x0000, 0x11C1,0x0000,0x0000, /* 1245D */ +0x11C2,0x0000,0x0000, 0x11C3,0x0000,0x0000, 0x11C4,0x0000,0x0000, /* 12460 */ +0xFBC2,0xA463,0x0000, 0xFBC2,0xA464,0x0000, 0xFBC2,0xA465,0x0000, /* 12463 */ +0xFBC2,0xA466,0x0000, 0xFBC2,0xA467,0x0000, 0xFBC2,0xA468,0x0000, /* 12466 */ +0xFBC2,0xA469,0x0000, 0xFBC2,0xA46A,0x0000, 0xFBC2,0xA46B,0x0000, /* 12469 */ +0xFBC2,0xA46C,0x0000, 0xFBC2,0xA46D,0x0000, 0xFBC2,0xA46E,0x0000, /* 1246C */ +0xFBC2,0xA46F,0x0000, 0x02EA,0x0000,0x0000, 0x02EB,0x0000,0x0000, /* 1246F */ +0x02EC,0x0000,0x0000, 0x02ED,0x0000,0x0000, 0xFBC2,0xA474,0x0000, /* 12472 */ +0xFBC2,0xA475,0x0000, 0xFBC2,0xA476,0x0000, 0xFBC2,0xA477,0x0000, /* 12475 */ +0xFBC2,0xA478,0x0000, 0xFBC2,0xA479,0x0000, 0xFBC2,0xA47A,0x0000, /* 12478 */ +0xFBC2,0xA47B,0x0000, 0xFBC2,0xA47C,0x0000, 0xFBC2,0xA47D,0x0000, /* 1247B */ +0xFBC2,0xA47E,0x0000, 0xFBC2,0xA47F,0x0000, 0xFBC2,0xA480,0x0000, /* 1247E */ +0xFBC2,0xA481,0x0000, 0xFBC2,0xA482,0x0000, 0xFBC2,0xA483,0x0000, /* 12481 */ +0xFBC2,0xA484,0x0000, 0xFBC2,0xA485,0x0000, 0xFBC2,0xA486,0x0000, /* 12484 */ +0xFBC2,0xA487,0x0000, 0xFBC2,0xA488,0x0000, 0xFBC2,0xA489,0x0000, /* 12487 */ +0xFBC2,0xA48A,0x0000, 0xFBC2,0xA48B,0x0000, 0xFBC2,0xA48C,0x0000, /* 1248A */ +0xFBC2,0xA48D,0x0000, 0xFBC2,0xA48E,0x0000, 0xFBC2,0xA48F,0x0000, /* 1248D */ +0xFBC2,0xA490,0x0000, 0xFBC2,0xA491,0x0000, 0xFBC2,0xA492,0x0000, /* 12490 */ +0xFBC2,0xA493,0x0000, 0xFBC2,0xA494,0x0000, 0xFBC2,0xA495,0x0000, /* 12493 */ +0xFBC2,0xA496,0x0000, 0xFBC2,0xA497,0x0000, 0xFBC2,0xA498,0x0000, /* 12496 */ +0xFBC2,0xA499,0x0000, 0xFBC2,0xA49A,0x0000, 0xFBC2,0xA49B,0x0000, /* 12499 */ +0xFBC2,0xA49C,0x0000, 0xFBC2,0xA49D,0x0000, 0xFBC2,0xA49E,0x0000, /* 1249C */ +0xFBC2,0xA49F,0x0000, 0xFBC2,0xA4A0,0x0000, 0xFBC2,0xA4A1,0x0000, /* 1249F */ +0xFBC2,0xA4A2,0x0000, 0xFBC2,0xA4A3,0x0000, 0xFBC2,0xA4A4,0x0000, /* 124A2 */ +0xFBC2,0xA4A5,0x0000, 0xFBC2,0xA4A6,0x0000, 0xFBC2,0xA4A7,0x0000, /* 124A5 */ +0xFBC2,0xA4A8,0x0000, 0xFBC2,0xA4A9,0x0000, 0xFBC2,0xA4AA,0x0000, /* 124A8 */ +0xFBC2,0xA4AB,0x0000, 0xFBC2,0xA4AC,0x0000, 0xFBC2,0xA4AD,0x0000, /* 124AB */ +0xFBC2,0xA4AE,0x0000, 0xFBC2,0xA4AF,0x0000, 0xFBC2,0xA4B0,0x0000, /* 124AE */ +0xFBC2,0xA4B1,0x0000, 0xFBC2,0xA4B2,0x0000, 0xFBC2,0xA4B3,0x0000, /* 124B1 */ +0xFBC2,0xA4B4,0x0000, 0xFBC2,0xA4B5,0x0000, 0xFBC2,0xA4B6,0x0000, /* 124B4 */ +0xFBC2,0xA4B7,0x0000, 0xFBC2,0xA4B8,0x0000, 0xFBC2,0xA4B9,0x0000, /* 124B7 */ +0xFBC2,0xA4BA,0x0000, 0xFBC2,0xA4BB,0x0000, 0xFBC2,0xA4BC,0x0000, /* 124BA */ +0xFBC2,0xA4BD,0x0000, 0xFBC2,0xA4BE,0x0000, 0xFBC2,0xA4BF,0x0000, /* 124BD */ +0xFBC2,0xA4C0,0x0000, 0xFBC2,0xA4C1,0x0000, 0xFBC2,0xA4C2,0x0000, /* 124C0 */ +0xFBC2,0xA4C3,0x0000, 0xFBC2,0xA4C4,0x0000, 0xFBC2,0xA4C5,0x0000, /* 124C3 */ +0xFBC2,0xA4C6,0x0000, 0xFBC2,0xA4C7,0x0000, 0xFBC2,0xA4C8,0x0000, /* 124C6 */ +0xFBC2,0xA4C9,0x0000, 0xFBC2,0xA4CA,0x0000, 0xFBC2,0xA4CB,0x0000, /* 124C9 */ +0xFBC2,0xA4CC,0x0000, 0xFBC2,0xA4CD,0x0000, 0xFBC2,0xA4CE,0x0000, /* 124CC */ +0xFBC2,0xA4CF,0x0000, 0xFBC2,0xA4D0,0x0000, 0xFBC2,0xA4D1,0x0000, /* 124CF */ +0xFBC2,0xA4D2,0x0000, 0xFBC2,0xA4D3,0x0000, 0xFBC2,0xA4D4,0x0000, /* 124D2 */ +0xFBC2,0xA4D5,0x0000, 0xFBC2,0xA4D6,0x0000, 0xFBC2,0xA4D7,0x0000, /* 124D5 */ +0xFBC2,0xA4D8,0x0000, 0xFBC2,0xA4D9,0x0000, 0xFBC2,0xA4DA,0x0000, /* 124D8 */ +0xFBC2,0xA4DB,0x0000, 0xFBC2,0xA4DC,0x0000, 0xFBC2,0xA4DD,0x0000, /* 124DB */ +0xFBC2,0xA4DE,0x0000, 0xFBC2,0xA4DF,0x0000, 0xFBC2,0xA4E0,0x0000, /* 124DE */ +0xFBC2,0xA4E1,0x0000, 0xFBC2,0xA4E2,0x0000, 0xFBC2,0xA4E3,0x0000, /* 124E1 */ +0xFBC2,0xA4E4,0x0000, 0xFBC2,0xA4E5,0x0000, 0xFBC2,0xA4E6,0x0000, /* 124E4 */ +0xFBC2,0xA4E7,0x0000, 0xFBC2,0xA4E8,0x0000, 0xFBC2,0xA4E9,0x0000, /* 124E7 */ +0xFBC2,0xA4EA,0x0000, 0xFBC2,0xA4EB,0x0000, 0xFBC2,0xA4EC,0x0000, /* 124EA */ +0xFBC2,0xA4ED,0x0000, 0xFBC2,0xA4EE,0x0000, 0xFBC2,0xA4EF,0x0000, /* 124ED */ +0xFBC2,0xA4F0,0x0000, 0xFBC2,0xA4F1,0x0000, 0xFBC2,0xA4F2,0x0000, /* 124F0 */ +0xFBC2,0xA4F3,0x0000, 0xFBC2,0xA4F4,0x0000, 0xFBC2,0xA4F5,0x0000, /* 124F3 */ +0xFBC2,0xA4F6,0x0000, 0xFBC2,0xA4F7,0x0000, 0xFBC2,0xA4F8,0x0000, /* 124F6 */ +0xFBC2,0xA4F9,0x0000, 0xFBC2,0xA4FA,0x0000, 0xFBC2,0xA4FB,0x0000, /* 124F9 */ +0xFBC2,0xA4FC,0x0000, 0xFBC2,0xA4FD,0x0000, 0xFBC2,0xA4FE,0x0000, /* 124FC */ +0xFBC2,0xA4FF,0x0000 }; + +uint16 uca520_p130[]= { /* 13000 (2 weights per char) */ +0x369C,0x0000, 0x369D,0x0000, 0x369E,0x0000, 0x369F,0x0000, /* 13000 */ +0x36A0,0x0000, 0x36A1,0x0000, 0x36A2,0x0000, 0x36A3,0x0000, /* 13004 */ +0x36A4,0x0000, 0x36A5,0x0000, 0x36A6,0x0000, 0x36A7,0x0000, /* 13008 */ +0x36A8,0x0000, 0x36A9,0x0000, 0x36AA,0x0000, 0x36AB,0x0000, /* 1300C */ +0x36AC,0x0000, 0x36AD,0x0000, 0x36AE,0x0000, 0x36AF,0x0000, /* 13010 */ +0x36B0,0x0000, 0x36B1,0x0000, 0x36B2,0x0000, 0x36B3,0x0000, /* 13014 */ +0x36B4,0x0000, 0x36B5,0x0000, 0x36B6,0x0000, 0x36B7,0x0000, /* 13018 */ +0x36B8,0x0000, 0x36B9,0x0000, 0x36BA,0x0000, 0x36BB,0x0000, /* 1301C */ +0x36BC,0x0000, 0x36BD,0x0000, 0x36BE,0x0000, 0x36BF,0x0000, /* 13020 */ +0x36C0,0x0000, 0x36C1,0x0000, 0x36C2,0x0000, 0x36C3,0x0000, /* 13024 */ +0x36C4,0x0000, 0x36C5,0x0000, 0x36C6,0x0000, 0x36C7,0x0000, /* 13028 */ +0x36C8,0x0000, 0x36C9,0x0000, 0x36CA,0x0000, 0x36CB,0x0000, /* 1302C */ +0x36CC,0x0000, 0x36CD,0x0000, 0x36CE,0x0000, 0x36CF,0x0000, /* 13030 */ +0x36D0,0x0000, 0x36D1,0x0000, 0x36D2,0x0000, 0x36D3,0x0000, /* 13034 */ +0x36D4,0x0000, 0x36D5,0x0000, 0x36D6,0x0000, 0x36D7,0x0000, /* 13038 */ +0x36D8,0x0000, 0x36D9,0x0000, 0x36DA,0x0000, 0x36DB,0x0000, /* 1303C */ +0x36DC,0x0000, 0x36DD,0x0000, 0x36DE,0x0000, 0x36DF,0x0000, /* 13040 */ +0x36E0,0x0000, 0x36E1,0x0000, 0x36E2,0x0000, 0x36E3,0x0000, /* 13044 */ +0x36E4,0x0000, 0x36E5,0x0000, 0x36E6,0x0000, 0x36E7,0x0000, /* 13048 */ +0x36E8,0x0000, 0x36E9,0x0000, 0x36EA,0x0000, 0x36EB,0x0000, /* 1304C */ +0x36EC,0x0000, 0x36ED,0x0000, 0x36EE,0x0000, 0x36EF,0x0000, /* 13050 */ +0x36F0,0x0000, 0x36F1,0x0000, 0x36F2,0x0000, 0x36F3,0x0000, /* 13054 */ +0x36F4,0x0000, 0x36F5,0x0000, 0x36F6,0x0000, 0x36F7,0x0000, /* 13058 */ +0x36F8,0x0000, 0x36F9,0x0000, 0x36FA,0x0000, 0x36FB,0x0000, /* 1305C */ +0x36FC,0x0000, 0x36FD,0x0000, 0x36FE,0x0000, 0x36FF,0x0000, /* 13060 */ +0x3700,0x0000, 0x3701,0x0000, 0x3702,0x0000, 0x3703,0x0000, /* 13064 */ +0x3704,0x0000, 0x3705,0x0000, 0x3706,0x0000, 0x3707,0x0000, /* 13068 */ +0x3708,0x0000, 0x3709,0x0000, 0x370A,0x0000, 0x370B,0x0000, /* 1306C */ +0x370C,0x0000, 0x370D,0x0000, 0x370E,0x0000, 0x370F,0x0000, /* 13070 */ +0x3710,0x0000, 0x3711,0x0000, 0x3712,0x0000, 0x3713,0x0000, /* 13074 */ +0x3714,0x0000, 0x3715,0x0000, 0x3716,0x0000, 0x3717,0x0000, /* 13078 */ +0x3718,0x0000, 0x3719,0x0000, 0x371A,0x0000, 0x371B,0x0000, /* 1307C */ +0x371C,0x0000, 0x371D,0x0000, 0x371E,0x0000, 0x371F,0x0000, /* 13080 */ +0x3720,0x0000, 0x3721,0x0000, 0x3722,0x0000, 0x3723,0x0000, /* 13084 */ +0x3724,0x0000, 0x3725,0x0000, 0x3726,0x0000, 0x3727,0x0000, /* 13088 */ +0x3728,0x0000, 0x3729,0x0000, 0x372A,0x0000, 0x372B,0x0000, /* 1308C */ +0x372C,0x0000, 0x372D,0x0000, 0x372E,0x0000, 0x372F,0x0000, /* 13090 */ +0x3730,0x0000, 0x3731,0x0000, 0x3732,0x0000, 0x3733,0x0000, /* 13094 */ +0x3734,0x0000, 0x3735,0x0000, 0x3736,0x0000, 0x3737,0x0000, /* 13098 */ +0x3738,0x0000, 0x3739,0x0000, 0x373A,0x0000, 0x373B,0x0000, /* 1309C */ +0x373C,0x0000, 0x373D,0x0000, 0x373E,0x0000, 0x373F,0x0000, /* 130A0 */ +0x3740,0x0000, 0x3741,0x0000, 0x3742,0x0000, 0x3743,0x0000, /* 130A4 */ +0x3744,0x0000, 0x3745,0x0000, 0x3746,0x0000, 0x3747,0x0000, /* 130A8 */ +0x3748,0x0000, 0x3749,0x0000, 0x374A,0x0000, 0x374B,0x0000, /* 130AC */ +0x374C,0x0000, 0x374D,0x0000, 0x374E,0x0000, 0x374F,0x0000, /* 130B0 */ +0x3750,0x0000, 0x3751,0x0000, 0x3752,0x0000, 0x3753,0x0000, /* 130B4 */ +0x3754,0x0000, 0x3755,0x0000, 0x3756,0x0000, 0x3757,0x0000, /* 130B8 */ +0x3758,0x0000, 0x3759,0x0000, 0x375A,0x0000, 0x375B,0x0000, /* 130BC */ +0x375C,0x0000, 0x375D,0x0000, 0x375E,0x0000, 0x375F,0x0000, /* 130C0 */ +0x3760,0x0000, 0x3761,0x0000, 0x3762,0x0000, 0x3763,0x0000, /* 130C4 */ +0x3764,0x0000, 0x3765,0x0000, 0x3766,0x0000, 0x3767,0x0000, /* 130C8 */ +0x3768,0x0000, 0x3769,0x0000, 0x376A,0x0000, 0x376B,0x0000, /* 130CC */ +0x376C,0x0000, 0x376D,0x0000, 0x376E,0x0000, 0x376F,0x0000, /* 130D0 */ +0x3770,0x0000, 0x3771,0x0000, 0x3772,0x0000, 0x3773,0x0000, /* 130D4 */ +0x3774,0x0000, 0x3775,0x0000, 0x3776,0x0000, 0x3777,0x0000, /* 130D8 */ +0x3778,0x0000, 0x3779,0x0000, 0x377A,0x0000, 0x377B,0x0000, /* 130DC */ +0x377C,0x0000, 0x377D,0x0000, 0x377E,0x0000, 0x377F,0x0000, /* 130E0 */ +0x3780,0x0000, 0x3781,0x0000, 0x3782,0x0000, 0x3783,0x0000, /* 130E4 */ +0x3784,0x0000, 0x3785,0x0000, 0x3786,0x0000, 0x3787,0x0000, /* 130E8 */ +0x3788,0x0000, 0x3789,0x0000, 0x378A,0x0000, 0x378B,0x0000, /* 130EC */ +0x378C,0x0000, 0x378D,0x0000, 0x378E,0x0000, 0x378F,0x0000, /* 130F0 */ +0x3790,0x0000, 0x3791,0x0000, 0x3792,0x0000, 0x3793,0x0000, /* 130F4 */ +0x3794,0x0000, 0x3795,0x0000, 0x3796,0x0000, 0x3797,0x0000, /* 130F8 */ +0x3798,0x0000, 0x3799,0x0000, 0x379A,0x0000, 0x379B,0x0000 /* 130FC */ +}; + +uint16 uca520_p131[]= { /* 13100 (2 weights per char) */ +0x379C,0x0000, 0x379D,0x0000, 0x379E,0x0000, 0x379F,0x0000, /* 13100 */ +0x37A0,0x0000, 0x37A1,0x0000, 0x37A2,0x0000, 0x37A3,0x0000, /* 13104 */ +0x37A4,0x0000, 0x37A5,0x0000, 0x37A6,0x0000, 0x37A7,0x0000, /* 13108 */ +0x37A8,0x0000, 0x37A9,0x0000, 0x37AA,0x0000, 0x37AB,0x0000, /* 1310C */ +0x37AC,0x0000, 0x37AD,0x0000, 0x37AE,0x0000, 0x37AF,0x0000, /* 13110 */ +0x37B0,0x0000, 0x37B1,0x0000, 0x37B2,0x0000, 0x37B3,0x0000, /* 13114 */ +0x37B4,0x0000, 0x37B5,0x0000, 0x37B6,0x0000, 0x37B7,0x0000, /* 13118 */ +0x37B8,0x0000, 0x37B9,0x0000, 0x37BA,0x0000, 0x37BB,0x0000, /* 1311C */ +0x37BC,0x0000, 0x37BD,0x0000, 0x37BE,0x0000, 0x37BF,0x0000, /* 13120 */ +0x37C0,0x0000, 0x37C1,0x0000, 0x37C2,0x0000, 0x37C3,0x0000, /* 13124 */ +0x37C4,0x0000, 0x37C5,0x0000, 0x37C6,0x0000, 0x37C7,0x0000, /* 13128 */ +0x37C8,0x0000, 0x37C9,0x0000, 0x37CA,0x0000, 0x37CB,0x0000, /* 1312C */ +0x37CC,0x0000, 0x37CD,0x0000, 0x37CE,0x0000, 0x37CF,0x0000, /* 13130 */ +0x37D0,0x0000, 0x37D1,0x0000, 0x37D2,0x0000, 0x37D3,0x0000, /* 13134 */ +0x37D4,0x0000, 0x37D5,0x0000, 0x37D6,0x0000, 0x37D7,0x0000, /* 13138 */ +0x37D8,0x0000, 0x37D9,0x0000, 0x37DA,0x0000, 0x37DB,0x0000, /* 1313C */ +0x37DC,0x0000, 0x37DD,0x0000, 0x37DE,0x0000, 0x37DF,0x0000, /* 13140 */ +0x37E0,0x0000, 0x37E1,0x0000, 0x37E2,0x0000, 0x37E3,0x0000, /* 13144 */ +0x37E4,0x0000, 0x37E5,0x0000, 0x37E6,0x0000, 0x37E7,0x0000, /* 13148 */ +0x37E8,0x0000, 0x37E9,0x0000, 0x37EA,0x0000, 0x37EB,0x0000, /* 1314C */ +0x37EC,0x0000, 0x37ED,0x0000, 0x37EE,0x0000, 0x37EF,0x0000, /* 13150 */ +0x37F0,0x0000, 0x37F1,0x0000, 0x37F2,0x0000, 0x37F3,0x0000, /* 13154 */ +0x37F4,0x0000, 0x37F5,0x0000, 0x37F6,0x0000, 0x37F7,0x0000, /* 13158 */ +0x37F8,0x0000, 0x37F9,0x0000, 0x37FA,0x0000, 0x37FB,0x0000, /* 1315C */ +0x37FC,0x0000, 0x37FD,0x0000, 0x37FE,0x0000, 0x37FF,0x0000, /* 13160 */ +0x3800,0x0000, 0x3801,0x0000, 0x3802,0x0000, 0x3803,0x0000, /* 13164 */ +0x3804,0x0000, 0x3805,0x0000, 0x3806,0x0000, 0x3807,0x0000, /* 13168 */ +0x3808,0x0000, 0x3809,0x0000, 0x380A,0x0000, 0x380B,0x0000, /* 1316C */ +0x380C,0x0000, 0x380D,0x0000, 0x380E,0x0000, 0x380F,0x0000, /* 13170 */ +0x3810,0x0000, 0x3811,0x0000, 0x3812,0x0000, 0x3813,0x0000, /* 13174 */ +0x3814,0x0000, 0x3815,0x0000, 0x3816,0x0000, 0x3817,0x0000, /* 13178 */ +0x3818,0x0000, 0x3819,0x0000, 0x381A,0x0000, 0x381B,0x0000, /* 1317C */ +0x381C,0x0000, 0x381D,0x0000, 0x381E,0x0000, 0x381F,0x0000, /* 13180 */ +0x3820,0x0000, 0x3821,0x0000, 0x3822,0x0000, 0x3823,0x0000, /* 13184 */ +0x3824,0x0000, 0x3825,0x0000, 0x3826,0x0000, 0x3827,0x0000, /* 13188 */ +0x3828,0x0000, 0x3829,0x0000, 0x382A,0x0000, 0x382B,0x0000, /* 1318C */ +0x382C,0x0000, 0x382D,0x0000, 0x382E,0x0000, 0x382F,0x0000, /* 13190 */ +0x3830,0x0000, 0x3831,0x0000, 0x3832,0x0000, 0x3833,0x0000, /* 13194 */ +0x3834,0x0000, 0x3835,0x0000, 0x3836,0x0000, 0x3837,0x0000, /* 13198 */ +0x3838,0x0000, 0x3839,0x0000, 0x383A,0x0000, 0x383B,0x0000, /* 1319C */ +0x383C,0x0000, 0x383D,0x0000, 0x383E,0x0000, 0x383F,0x0000, /* 131A0 */ +0x3840,0x0000, 0x3841,0x0000, 0x3842,0x0000, 0x3843,0x0000, /* 131A4 */ +0x3844,0x0000, 0x3845,0x0000, 0x3846,0x0000, 0x3847,0x0000, /* 131A8 */ +0x3848,0x0000, 0x3849,0x0000, 0x384A,0x0000, 0x384B,0x0000, /* 131AC */ +0x384C,0x0000, 0x384D,0x0000, 0x384E,0x0000, 0x384F,0x0000, /* 131B0 */ +0x3850,0x0000, 0x3851,0x0000, 0x3852,0x0000, 0x3853,0x0000, /* 131B4 */ +0x3854,0x0000, 0x3855,0x0000, 0x3856,0x0000, 0x3857,0x0000, /* 131B8 */ +0x3858,0x0000, 0x3859,0x0000, 0x385A,0x0000, 0x385B,0x0000, /* 131BC */ +0x385C,0x0000, 0x385D,0x0000, 0x385E,0x0000, 0x385F,0x0000, /* 131C0 */ +0x3860,0x0000, 0x3861,0x0000, 0x3862,0x0000, 0x3863,0x0000, /* 131C4 */ +0x3864,0x0000, 0x3865,0x0000, 0x3866,0x0000, 0x3867,0x0000, /* 131C8 */ +0x3868,0x0000, 0x3869,0x0000, 0x386A,0x0000, 0x386B,0x0000, /* 131CC */ +0x386C,0x0000, 0x386D,0x0000, 0x386E,0x0000, 0x386F,0x0000, /* 131D0 */ +0x3870,0x0000, 0x3871,0x0000, 0x3872,0x0000, 0x3873,0x0000, /* 131D4 */ +0x3874,0x0000, 0x3875,0x0000, 0x3876,0x0000, 0x3877,0x0000, /* 131D8 */ +0x3878,0x0000, 0x3879,0x0000, 0x387A,0x0000, 0x387B,0x0000, /* 131DC */ +0x387C,0x0000, 0x387D,0x0000, 0x387E,0x0000, 0x387F,0x0000, /* 131E0 */ +0x3880,0x0000, 0x3881,0x0000, 0x3882,0x0000, 0x3883,0x0000, /* 131E4 */ +0x3884,0x0000, 0x3885,0x0000, 0x3886,0x0000, 0x3887,0x0000, /* 131E8 */ +0x3888,0x0000, 0x3889,0x0000, 0x388A,0x0000, 0x388B,0x0000, /* 131EC */ +0x388C,0x0000, 0x388D,0x0000, 0x388E,0x0000, 0x388F,0x0000, /* 131F0 */ +0x3890,0x0000, 0x3891,0x0000, 0x3892,0x0000, 0x3893,0x0000, /* 131F4 */ +0x3894,0x0000, 0x3895,0x0000, 0x3896,0x0000, 0x3897,0x0000, /* 131F8 */ +0x3898,0x0000, 0x3899,0x0000, 0x389A,0x0000, 0x389B,0x0000 /* 131FC */ +}; + +uint16 uca520_p132[]= { /* 13200 (2 weights per char) */ +0x389C,0x0000, 0x389D,0x0000, 0x389E,0x0000, 0x389F,0x0000, /* 13200 */ +0x38A0,0x0000, 0x38A1,0x0000, 0x38A2,0x0000, 0x38A3,0x0000, /* 13204 */ +0x38A4,0x0000, 0x38A5,0x0000, 0x38A6,0x0000, 0x38A7,0x0000, /* 13208 */ +0x38A8,0x0000, 0x38A9,0x0000, 0x38AA,0x0000, 0x38AB,0x0000, /* 1320C */ +0x38AC,0x0000, 0x38AD,0x0000, 0x38AE,0x0000, 0x38AF,0x0000, /* 13210 */ +0x38B0,0x0000, 0x38B1,0x0000, 0x38B2,0x0000, 0x38B3,0x0000, /* 13214 */ +0x38B4,0x0000, 0x38B5,0x0000, 0x38B6,0x0000, 0x38B7,0x0000, /* 13218 */ +0x38B8,0x0000, 0x38B9,0x0000, 0x38BA,0x0000, 0x38BB,0x0000, /* 1321C */ +0x38BC,0x0000, 0x38BD,0x0000, 0x38BE,0x0000, 0x38BF,0x0000, /* 13220 */ +0x38C0,0x0000, 0x38C1,0x0000, 0x38C2,0x0000, 0x38C3,0x0000, /* 13224 */ +0x38C4,0x0000, 0x38C5,0x0000, 0x38C6,0x0000, 0x38C7,0x0000, /* 13228 */ +0x38C8,0x0000, 0x38C9,0x0000, 0x38CA,0x0000, 0x38CB,0x0000, /* 1322C */ +0x38CC,0x0000, 0x38CD,0x0000, 0x38CE,0x0000, 0x38CF,0x0000, /* 13230 */ +0x38D0,0x0000, 0x38D1,0x0000, 0x38D2,0x0000, 0x38D3,0x0000, /* 13234 */ +0x38D4,0x0000, 0x38D5,0x0000, 0x38D6,0x0000, 0x38D7,0x0000, /* 13238 */ +0x38D8,0x0000, 0x38D9,0x0000, 0x38DA,0x0000, 0x38DB,0x0000, /* 1323C */ +0x38DC,0x0000, 0x38DD,0x0000, 0x38DE,0x0000, 0x38DF,0x0000, /* 13240 */ +0x38E0,0x0000, 0x38E1,0x0000, 0x38E2,0x0000, 0x38E3,0x0000, /* 13244 */ +0x38E4,0x0000, 0x38E5,0x0000, 0x38E6,0x0000, 0x38E7,0x0000, /* 13248 */ +0x38E8,0x0000, 0x38E9,0x0000, 0x38EA,0x0000, 0x38EB,0x0000, /* 1324C */ +0x38EC,0x0000, 0x38ED,0x0000, 0x38EE,0x0000, 0x38EF,0x0000, /* 13250 */ +0x38F0,0x0000, 0x38F1,0x0000, 0x38F2,0x0000, 0x38F3,0x0000, /* 13254 */ +0x38F4,0x0000, 0x38F5,0x0000, 0x38F6,0x0000, 0x38F7,0x0000, /* 13258 */ +0x38F8,0x0000, 0x38F9,0x0000, 0x38FA,0x0000, 0x38FB,0x0000, /* 1325C */ +0x38FC,0x0000, 0x38FD,0x0000, 0x38FE,0x0000, 0x38FF,0x0000, /* 13260 */ +0x3900,0x0000, 0x3901,0x0000, 0x3902,0x0000, 0x3903,0x0000, /* 13264 */ +0x3904,0x0000, 0x3905,0x0000, 0x3906,0x0000, 0x3907,0x0000, /* 13268 */ +0x3908,0x0000, 0x3909,0x0000, 0x390A,0x0000, 0x390B,0x0000, /* 1326C */ +0x390C,0x0000, 0x390D,0x0000, 0x390E,0x0000, 0x390F,0x0000, /* 13270 */ +0x3910,0x0000, 0x3911,0x0000, 0x3912,0x0000, 0x3913,0x0000, /* 13274 */ +0x3914,0x0000, 0x3915,0x0000, 0x3916,0x0000, 0x3917,0x0000, /* 13278 */ +0x3918,0x0000, 0x3919,0x0000, 0x391A,0x0000, 0x391B,0x0000, /* 1327C */ +0x391C,0x0000, 0x391D,0x0000, 0x391E,0x0000, 0x391F,0x0000, /* 13280 */ +0x3920,0x0000, 0x3921,0x0000, 0x3922,0x0000, 0x3923,0x0000, /* 13284 */ +0x3924,0x0000, 0x3925,0x0000, 0x3926,0x0000, 0x3927,0x0000, /* 13288 */ +0x3928,0x0000, 0x3929,0x0000, 0x392A,0x0000, 0x392B,0x0000, /* 1328C */ +0x392C,0x0000, 0x392D,0x0000, 0x392E,0x0000, 0x392F,0x0000, /* 13290 */ +0x3930,0x0000, 0x3931,0x0000, 0x3932,0x0000, 0x3933,0x0000, /* 13294 */ +0x3934,0x0000, 0x3935,0x0000, 0x3936,0x0000, 0x3937,0x0000, /* 13298 */ +0x3938,0x0000, 0x3939,0x0000, 0x393A,0x0000, 0x393B,0x0000, /* 1329C */ +0x393C,0x0000, 0x393D,0x0000, 0x393E,0x0000, 0x393F,0x0000, /* 132A0 */ +0x3940,0x0000, 0x3941,0x0000, 0x3942,0x0000, 0x3943,0x0000, /* 132A4 */ +0x3944,0x0000, 0x3945,0x0000, 0x3946,0x0000, 0x3947,0x0000, /* 132A8 */ +0x3948,0x0000, 0x3949,0x0000, 0x394A,0x0000, 0x394B,0x0000, /* 132AC */ +0x394C,0x0000, 0x394D,0x0000, 0x394E,0x0000, 0x394F,0x0000, /* 132B0 */ +0x3950,0x0000, 0x3951,0x0000, 0x3952,0x0000, 0x3953,0x0000, /* 132B4 */ +0x3954,0x0000, 0x3955,0x0000, 0x3956,0x0000, 0x3957,0x0000, /* 132B8 */ +0x3958,0x0000, 0x3959,0x0000, 0x395A,0x0000, 0x395B,0x0000, /* 132BC */ +0x395C,0x0000, 0x395D,0x0000, 0x395E,0x0000, 0x395F,0x0000, /* 132C0 */ +0x3960,0x0000, 0x3961,0x0000, 0x3962,0x0000, 0x3963,0x0000, /* 132C4 */ +0x3964,0x0000, 0x3965,0x0000, 0x3966,0x0000, 0x3967,0x0000, /* 132C8 */ +0x3968,0x0000, 0x3969,0x0000, 0x396A,0x0000, 0x396B,0x0000, /* 132CC */ +0x396C,0x0000, 0x396D,0x0000, 0x396E,0x0000, 0x396F,0x0000, /* 132D0 */ +0x3970,0x0000, 0x3971,0x0000, 0x3972,0x0000, 0x3973,0x0000, /* 132D4 */ +0x3974,0x0000, 0x3975,0x0000, 0x3976,0x0000, 0x3977,0x0000, /* 132D8 */ +0x3978,0x0000, 0x3979,0x0000, 0x397A,0x0000, 0x397B,0x0000, /* 132DC */ +0x397C,0x0000, 0x397D,0x0000, 0x397E,0x0000, 0x397F,0x0000, /* 132E0 */ +0x3980,0x0000, 0x3981,0x0000, 0x3982,0x0000, 0x3983,0x0000, /* 132E4 */ +0x3984,0x0000, 0x3985,0x0000, 0x3986,0x0000, 0x3987,0x0000, /* 132E8 */ +0x3988,0x0000, 0x3989,0x0000, 0x398A,0x0000, 0x398B,0x0000, /* 132EC */ +0x398C,0x0000, 0x398D,0x0000, 0x398E,0x0000, 0x398F,0x0000, /* 132F0 */ +0x3990,0x0000, 0x3991,0x0000, 0x3992,0x0000, 0x3993,0x0000, /* 132F4 */ +0x3994,0x0000, 0x3995,0x0000, 0x3996,0x0000, 0x3997,0x0000, /* 132F8 */ +0x3998,0x0000, 0x3999,0x0000, 0x399A,0x0000, 0x399B,0x0000 /* 132FC */ +}; + +uint16 uca520_p133[]= { /* 13300 (2 weights per char) */ +0x399C,0x0000, 0x399D,0x0000, 0x399E,0x0000, 0x399F,0x0000, /* 13300 */ +0x39A0,0x0000, 0x39A1,0x0000, 0x39A2,0x0000, 0x39A3,0x0000, /* 13304 */ +0x39A4,0x0000, 0x39A5,0x0000, 0x39A6,0x0000, 0x39A7,0x0000, /* 13308 */ +0x39A8,0x0000, 0x39A9,0x0000, 0x39AA,0x0000, 0x39AB,0x0000, /* 1330C */ +0x39AC,0x0000, 0x39AD,0x0000, 0x39AE,0x0000, 0x39AF,0x0000, /* 13310 */ +0x39B0,0x0000, 0x39B1,0x0000, 0x39B2,0x0000, 0x39B3,0x0000, /* 13314 */ +0x39B4,0x0000, 0x39B5,0x0000, 0x39B6,0x0000, 0x39B7,0x0000, /* 13318 */ +0x39B8,0x0000, 0x39B9,0x0000, 0x39BA,0x0000, 0x39BB,0x0000, /* 1331C */ +0x39BC,0x0000, 0x39BD,0x0000, 0x39BE,0x0000, 0x39BF,0x0000, /* 13320 */ +0x39C0,0x0000, 0x39C1,0x0000, 0x39C2,0x0000, 0x39C3,0x0000, /* 13324 */ +0x39C4,0x0000, 0x39C5,0x0000, 0x39C6,0x0000, 0x39C7,0x0000, /* 13328 */ +0x39C8,0x0000, 0x39C9,0x0000, 0x39CA,0x0000, 0x39CB,0x0000, /* 1332C */ +0x39CC,0x0000, 0x39CD,0x0000, 0x39CE,0x0000, 0x39CF,0x0000, /* 13330 */ +0x39D0,0x0000, 0x39D1,0x0000, 0x39D2,0x0000, 0x39D3,0x0000, /* 13334 */ +0x39D4,0x0000, 0x39D5,0x0000, 0x39D6,0x0000, 0x39D7,0x0000, /* 13338 */ +0x39D8,0x0000, 0x39D9,0x0000, 0x39DA,0x0000, 0x39DB,0x0000, /* 1333C */ +0x39DC,0x0000, 0x39DD,0x0000, 0x39DE,0x0000, 0x39DF,0x0000, /* 13340 */ +0x39E0,0x0000, 0x39E1,0x0000, 0x39E2,0x0000, 0x39E3,0x0000, /* 13344 */ +0x39E4,0x0000, 0x39E5,0x0000, 0x39E6,0x0000, 0x39E7,0x0000, /* 13348 */ +0x39E8,0x0000, 0x39E9,0x0000, 0x39EA,0x0000, 0x39EB,0x0000, /* 1334C */ +0x39EC,0x0000, 0x39ED,0x0000, 0x39EE,0x0000, 0x39EF,0x0000, /* 13350 */ +0x39F0,0x0000, 0x39F1,0x0000, 0x39F2,0x0000, 0x39F3,0x0000, /* 13354 */ +0x39F4,0x0000, 0x39F5,0x0000, 0x39F6,0x0000, 0x39F7,0x0000, /* 13358 */ +0x39F8,0x0000, 0x39F9,0x0000, 0x39FA,0x0000, 0x39FB,0x0000, /* 1335C */ +0x39FC,0x0000, 0x39FD,0x0000, 0x39FE,0x0000, 0x39FF,0x0000, /* 13360 */ +0x3A00,0x0000, 0x3A01,0x0000, 0x3A02,0x0000, 0x3A03,0x0000, /* 13364 */ +0x3A04,0x0000, 0x3A05,0x0000, 0x3A06,0x0000, 0x3A07,0x0000, /* 13368 */ +0x3A08,0x0000, 0x3A09,0x0000, 0x3A0A,0x0000, 0x3A0B,0x0000, /* 1336C */ +0x3A0C,0x0000, 0x3A0D,0x0000, 0x3A0E,0x0000, 0x3A0F,0x0000, /* 13370 */ +0x3A10,0x0000, 0x3A11,0x0000, 0x3A12,0x0000, 0x3A13,0x0000, /* 13374 */ +0x3A14,0x0000, 0x3A15,0x0000, 0x3A16,0x0000, 0x3A17,0x0000, /* 13378 */ +0x3A18,0x0000, 0x3A19,0x0000, 0x3A1A,0x0000, 0x3A1B,0x0000, /* 1337C */ +0x3A1C,0x0000, 0x3A1D,0x0000, 0x3A1E,0x0000, 0x3A1F,0x0000, /* 13380 */ +0x3A20,0x0000, 0x3A21,0x0000, 0x3A22,0x0000, 0x3A23,0x0000, /* 13384 */ +0x3A24,0x0000, 0x3A25,0x0000, 0x3A26,0x0000, 0x3A27,0x0000, /* 13388 */ +0x3A28,0x0000, 0x3A29,0x0000, 0x3A2A,0x0000, 0x3A2B,0x0000, /* 1338C */ +0x3A2C,0x0000, 0x3A2D,0x0000, 0x3A2E,0x0000, 0x3A2F,0x0000, /* 13390 */ +0x3A30,0x0000, 0x3A31,0x0000, 0x3A32,0x0000, 0x3A33,0x0000, /* 13394 */ +0x3A34,0x0000, 0x3A35,0x0000, 0x3A36,0x0000, 0x3A37,0x0000, /* 13398 */ +0x3A38,0x0000, 0x3A39,0x0000, 0x3A3A,0x0000, 0x3A3B,0x0000, /* 1339C */ +0x3A3C,0x0000, 0x3A3D,0x0000, 0x3A3E,0x0000, 0x3A3F,0x0000, /* 133A0 */ +0x3A40,0x0000, 0x3A41,0x0000, 0x3A42,0x0000, 0x3A43,0x0000, /* 133A4 */ +0x3A44,0x0000, 0x3A45,0x0000, 0x3A46,0x0000, 0x3A47,0x0000, /* 133A8 */ +0x3A48,0x0000, 0x3A49,0x0000, 0x3A4A,0x0000, 0x3A4B,0x0000, /* 133AC */ +0x3A4C,0x0000, 0x3A4D,0x0000, 0x3A4E,0x0000, 0x3A4F,0x0000, /* 133B0 */ +0x3A50,0x0000, 0x3A51,0x0000, 0x3A52,0x0000, 0x3A53,0x0000, /* 133B4 */ +0x3A54,0x0000, 0x3A55,0x0000, 0x3A56,0x0000, 0x3A57,0x0000, /* 133B8 */ +0x3A58,0x0000, 0x3A59,0x0000, 0x3A5A,0x0000, 0x3A5B,0x0000, /* 133BC */ +0x3A5C,0x0000, 0x3A5D,0x0000, 0x3A5E,0x0000, 0x3A5F,0x0000, /* 133C0 */ +0x3A60,0x0000, 0x3A61,0x0000, 0x3A62,0x0000, 0x3A63,0x0000, /* 133C4 */ +0x3A64,0x0000, 0x3A65,0x0000, 0x3A66,0x0000, 0x3A67,0x0000, /* 133C8 */ +0x3A68,0x0000, 0x3A69,0x0000, 0x3A6A,0x0000, 0x3A6B,0x0000, /* 133CC */ +0x3A6C,0x0000, 0x3A6D,0x0000, 0x3A6E,0x0000, 0x3A6F,0x0000, /* 133D0 */ +0x3A70,0x0000, 0x3A71,0x0000, 0x3A72,0x0000, 0x3A73,0x0000, /* 133D4 */ +0x3A74,0x0000, 0x3A75,0x0000, 0x3A76,0x0000, 0x3A77,0x0000, /* 133D8 */ +0x3A78,0x0000, 0x3A79,0x0000, 0x3A7A,0x0000, 0x3A7B,0x0000, /* 133DC */ +0x3A7C,0x0000, 0x3A7D,0x0000, 0x3A7E,0x0000, 0x3A7F,0x0000, /* 133E0 */ +0x3A80,0x0000, 0x3A81,0x0000, 0x3A82,0x0000, 0x3A83,0x0000, /* 133E4 */ +0x3A84,0x0000, 0x3A85,0x0000, 0x3A86,0x0000, 0x3A87,0x0000, /* 133E8 */ +0x3A88,0x0000, 0x3A89,0x0000, 0x3A8A,0x0000, 0x3A8B,0x0000, /* 133EC */ +0x3A8C,0x0000, 0x3A8D,0x0000, 0x3A8E,0x0000, 0x3A8F,0x0000, /* 133F0 */ +0x3A90,0x0000, 0x3A91,0x0000, 0x3A92,0x0000, 0x3A93,0x0000, /* 133F4 */ +0x3A94,0x0000, 0x3A95,0x0000, 0x3A96,0x0000, 0x3A97,0x0000, /* 133F8 */ +0x3A98,0x0000, 0x3A99,0x0000, 0x3A9A,0x0000, 0x3A9B,0x0000 /* 133FC */ +}; + +uint16 uca520_p134[]= { /* 13400 (3 weights per char) */ +0x3A9C,0x0000,0x0000, 0x3A9D,0x0000,0x0000, 0x3A9E,0x0000,0x0000, /* 13400 */ +0x3A9F,0x0000,0x0000, 0x3AA0,0x0000,0x0000, 0x3AA1,0x0000,0x0000, /* 13403 */ +0x3AA2,0x0000,0x0000, 0x3AA3,0x0000,0x0000, 0x3AA4,0x0000,0x0000, /* 13406 */ +0x3AA5,0x0000,0x0000, 0x3AA6,0x0000,0x0000, 0x3AA7,0x0000,0x0000, /* 13409 */ +0x3AA8,0x0000,0x0000, 0x3AA9,0x0000,0x0000, 0x3AAA,0x0000,0x0000, /* 1340C */ +0x3AAB,0x0000,0x0000, 0x3AAC,0x0000,0x0000, 0x3AAD,0x0000,0x0000, /* 1340F */ +0x3AAE,0x0000,0x0000, 0x3AAF,0x0000,0x0000, 0x3AB0,0x0000,0x0000, /* 13412 */ +0x3AB1,0x0000,0x0000, 0x3AB2,0x0000,0x0000, 0x3AB3,0x0000,0x0000, /* 13415 */ +0x3AB4,0x0000,0x0000, 0x3AB5,0x0000,0x0000, 0x3AB6,0x0000,0x0000, /* 13418 */ +0x3AB7,0x0000,0x0000, 0x3AB8,0x0000,0x0000, 0x3AB9,0x0000,0x0000, /* 1341B */ +0x3ABA,0x0000,0x0000, 0x3ABB,0x0000,0x0000, 0x3ABC,0x0000,0x0000, /* 1341E */ +0x3ABD,0x0000,0x0000, 0x3ABE,0x0000,0x0000, 0x3ABF,0x0000,0x0000, /* 13421 */ +0x3AC0,0x0000,0x0000, 0x3AC1,0x0000,0x0000, 0x3AC2,0x0000,0x0000, /* 13424 */ +0x3AC3,0x0000,0x0000, 0x3AC4,0x0000,0x0000, 0x3AC5,0x0000,0x0000, /* 13427 */ +0x3AC6,0x0000,0x0000, 0x3AC7,0x0000,0x0000, 0x3AC8,0x0000,0x0000, /* 1342A */ +0x3AC9,0x0000,0x0000, 0x3ACA,0x0000,0x0000, 0xFBC2,0xB42F,0x0000, /* 1342D */ +0xFBC2,0xB430,0x0000, 0xFBC2,0xB431,0x0000, 0xFBC2,0xB432,0x0000, /* 13430 */ +0xFBC2,0xB433,0x0000, 0xFBC2,0xB434,0x0000, 0xFBC2,0xB435,0x0000, /* 13433 */ +0xFBC2,0xB436,0x0000, 0xFBC2,0xB437,0x0000, 0xFBC2,0xB438,0x0000, /* 13436 */ +0xFBC2,0xB439,0x0000, 0xFBC2,0xB43A,0x0000, 0xFBC2,0xB43B,0x0000, /* 13439 */ +0xFBC2,0xB43C,0x0000, 0xFBC2,0xB43D,0x0000, 0xFBC2,0xB43E,0x0000, /* 1343C */ +0xFBC2,0xB43F,0x0000, 0xFBC2,0xB440,0x0000, 0xFBC2,0xB441,0x0000, /* 1343F */ +0xFBC2,0xB442,0x0000, 0xFBC2,0xB443,0x0000, 0xFBC2,0xB444,0x0000, /* 13442 */ +0xFBC2,0xB445,0x0000, 0xFBC2,0xB446,0x0000, 0xFBC2,0xB447,0x0000, /* 13445 */ +0xFBC2,0xB448,0x0000, 0xFBC2,0xB449,0x0000, 0xFBC2,0xB44A,0x0000, /* 13448 */ +0xFBC2,0xB44B,0x0000, 0xFBC2,0xB44C,0x0000, 0xFBC2,0xB44D,0x0000, /* 1344B */ +0xFBC2,0xB44E,0x0000, 0xFBC2,0xB44F,0x0000, 0xFBC2,0xB450,0x0000, /* 1344E */ +0xFBC2,0xB451,0x0000, 0xFBC2,0xB452,0x0000, 0xFBC2,0xB453,0x0000, /* 13451 */ +0xFBC2,0xB454,0x0000, 0xFBC2,0xB455,0x0000, 0xFBC2,0xB456,0x0000, /* 13454 */ +0xFBC2,0xB457,0x0000, 0xFBC2,0xB458,0x0000, 0xFBC2,0xB459,0x0000, /* 13457 */ +0xFBC2,0xB45A,0x0000, 0xFBC2,0xB45B,0x0000, 0xFBC2,0xB45C,0x0000, /* 1345A */ +0xFBC2,0xB45D,0x0000, 0xFBC2,0xB45E,0x0000, 0xFBC2,0xB45F,0x0000, /* 1345D */ +0xFBC2,0xB460,0x0000, 0xFBC2,0xB461,0x0000, 0xFBC2,0xB462,0x0000, /* 13460 */ +0xFBC2,0xB463,0x0000, 0xFBC2,0xB464,0x0000, 0xFBC2,0xB465,0x0000, /* 13463 */ +0xFBC2,0xB466,0x0000, 0xFBC2,0xB467,0x0000, 0xFBC2,0xB468,0x0000, /* 13466 */ +0xFBC2,0xB469,0x0000, 0xFBC2,0xB46A,0x0000, 0xFBC2,0xB46B,0x0000, /* 13469 */ +0xFBC2,0xB46C,0x0000, 0xFBC2,0xB46D,0x0000, 0xFBC2,0xB46E,0x0000, /* 1346C */ +0xFBC2,0xB46F,0x0000, 0xFBC2,0xB470,0x0000, 0xFBC2,0xB471,0x0000, /* 1346F */ +0xFBC2,0xB472,0x0000, 0xFBC2,0xB473,0x0000, 0xFBC2,0xB474,0x0000, /* 13472 */ +0xFBC2,0xB475,0x0000, 0xFBC2,0xB476,0x0000, 0xFBC2,0xB477,0x0000, /* 13475 */ +0xFBC2,0xB478,0x0000, 0xFBC2,0xB479,0x0000, 0xFBC2,0xB47A,0x0000, /* 13478 */ +0xFBC2,0xB47B,0x0000, 0xFBC2,0xB47C,0x0000, 0xFBC2,0xB47D,0x0000, /* 1347B */ +0xFBC2,0xB47E,0x0000, 0xFBC2,0xB47F,0x0000, 0xFBC2,0xB480,0x0000, /* 1347E */ +0xFBC2,0xB481,0x0000, 0xFBC2,0xB482,0x0000, 0xFBC2,0xB483,0x0000, /* 13481 */ +0xFBC2,0xB484,0x0000, 0xFBC2,0xB485,0x0000, 0xFBC2,0xB486,0x0000, /* 13484 */ +0xFBC2,0xB487,0x0000, 0xFBC2,0xB488,0x0000, 0xFBC2,0xB489,0x0000, /* 13487 */ +0xFBC2,0xB48A,0x0000, 0xFBC2,0xB48B,0x0000, 0xFBC2,0xB48C,0x0000, /* 1348A */ +0xFBC2,0xB48D,0x0000, 0xFBC2,0xB48E,0x0000, 0xFBC2,0xB48F,0x0000, /* 1348D */ +0xFBC2,0xB490,0x0000, 0xFBC2,0xB491,0x0000, 0xFBC2,0xB492,0x0000, /* 13490 */ +0xFBC2,0xB493,0x0000, 0xFBC2,0xB494,0x0000, 0xFBC2,0xB495,0x0000, /* 13493 */ +0xFBC2,0xB496,0x0000, 0xFBC2,0xB497,0x0000, 0xFBC2,0xB498,0x0000, /* 13496 */ +0xFBC2,0xB499,0x0000, 0xFBC2,0xB49A,0x0000, 0xFBC2,0xB49B,0x0000, /* 13499 */ +0xFBC2,0xB49C,0x0000, 0xFBC2,0xB49D,0x0000, 0xFBC2,0xB49E,0x0000, /* 1349C */ +0xFBC2,0xB49F,0x0000, 0xFBC2,0xB4A0,0x0000, 0xFBC2,0xB4A1,0x0000, /* 1349F */ +0xFBC2,0xB4A2,0x0000, 0xFBC2,0xB4A3,0x0000, 0xFBC2,0xB4A4,0x0000, /* 134A2 */ +0xFBC2,0xB4A5,0x0000, 0xFBC2,0xB4A6,0x0000, 0xFBC2,0xB4A7,0x0000, /* 134A5 */ +0xFBC2,0xB4A8,0x0000, 0xFBC2,0xB4A9,0x0000, 0xFBC2,0xB4AA,0x0000, /* 134A8 */ +0xFBC2,0xB4AB,0x0000, 0xFBC2,0xB4AC,0x0000, 0xFBC2,0xB4AD,0x0000, /* 134AB */ +0xFBC2,0xB4AE,0x0000, 0xFBC2,0xB4AF,0x0000, 0xFBC2,0xB4B0,0x0000, /* 134AE */ +0xFBC2,0xB4B1,0x0000, 0xFBC2,0xB4B2,0x0000, 0xFBC2,0xB4B3,0x0000, /* 134B1 */ +0xFBC2,0xB4B4,0x0000, 0xFBC2,0xB4B5,0x0000, 0xFBC2,0xB4B6,0x0000, /* 134B4 */ +0xFBC2,0xB4B7,0x0000, 0xFBC2,0xB4B8,0x0000, 0xFBC2,0xB4B9,0x0000, /* 134B7 */ +0xFBC2,0xB4BA,0x0000, 0xFBC2,0xB4BB,0x0000, 0xFBC2,0xB4BC,0x0000, /* 134BA */ +0xFBC2,0xB4BD,0x0000, 0xFBC2,0xB4BE,0x0000, 0xFBC2,0xB4BF,0x0000, /* 134BD */ +0xFBC2,0xB4C0,0x0000, 0xFBC2,0xB4C1,0x0000, 0xFBC2,0xB4C2,0x0000, /* 134C0 */ +0xFBC2,0xB4C3,0x0000, 0xFBC2,0xB4C4,0x0000, 0xFBC2,0xB4C5,0x0000, /* 134C3 */ +0xFBC2,0xB4C6,0x0000, 0xFBC2,0xB4C7,0x0000, 0xFBC2,0xB4C8,0x0000, /* 134C6 */ +0xFBC2,0xB4C9,0x0000, 0xFBC2,0xB4CA,0x0000, 0xFBC2,0xB4CB,0x0000, /* 134C9 */ +0xFBC2,0xB4CC,0x0000, 0xFBC2,0xB4CD,0x0000, 0xFBC2,0xB4CE,0x0000, /* 134CC */ +0xFBC2,0xB4CF,0x0000, 0xFBC2,0xB4D0,0x0000, 0xFBC2,0xB4D1,0x0000, /* 134CF */ +0xFBC2,0xB4D2,0x0000, 0xFBC2,0xB4D3,0x0000, 0xFBC2,0xB4D4,0x0000, /* 134D2 */ +0xFBC2,0xB4D5,0x0000, 0xFBC2,0xB4D6,0x0000, 0xFBC2,0xB4D7,0x0000, /* 134D5 */ +0xFBC2,0xB4D8,0x0000, 0xFBC2,0xB4D9,0x0000, 0xFBC2,0xB4DA,0x0000, /* 134D8 */ +0xFBC2,0xB4DB,0x0000, 0xFBC2,0xB4DC,0x0000, 0xFBC2,0xB4DD,0x0000, /* 134DB */ +0xFBC2,0xB4DE,0x0000, 0xFBC2,0xB4DF,0x0000, 0xFBC2,0xB4E0,0x0000, /* 134DE */ +0xFBC2,0xB4E1,0x0000, 0xFBC2,0xB4E2,0x0000, 0xFBC2,0xB4E3,0x0000, /* 134E1 */ +0xFBC2,0xB4E4,0x0000, 0xFBC2,0xB4E5,0x0000, 0xFBC2,0xB4E6,0x0000, /* 134E4 */ +0xFBC2,0xB4E7,0x0000, 0xFBC2,0xB4E8,0x0000, 0xFBC2,0xB4E9,0x0000, /* 134E7 */ +0xFBC2,0xB4EA,0x0000, 0xFBC2,0xB4EB,0x0000, 0xFBC2,0xB4EC,0x0000, /* 134EA */ +0xFBC2,0xB4ED,0x0000, 0xFBC2,0xB4EE,0x0000, 0xFBC2,0xB4EF,0x0000, /* 134ED */ +0xFBC2,0xB4F0,0x0000, 0xFBC2,0xB4F1,0x0000, 0xFBC2,0xB4F2,0x0000, /* 134F0 */ +0xFBC2,0xB4F3,0x0000, 0xFBC2,0xB4F4,0x0000, 0xFBC2,0xB4F5,0x0000, /* 134F3 */ +0xFBC2,0xB4F6,0x0000, 0xFBC2,0xB4F7,0x0000, 0xFBC2,0xB4F8,0x0000, /* 134F6 */ +0xFBC2,0xB4F9,0x0000, 0xFBC2,0xB4FA,0x0000, 0xFBC2,0xB4FB,0x0000, /* 134F9 */ +0xFBC2,0xB4FC,0x0000, 0xFBC2,0xB4FD,0x0000, 0xFBC2,0xB4FE,0x0000, /* 134FC */ +0xFBC2,0xB4FF,0x0000 }; + +uint16 uca520_p1D0[]= { /* 1D000 (3 weights per char) */ +0x0E5F,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E61,0x0000,0x0000, /* 1D000 */ +0x0E62,0x0000,0x0000, 0x0E63,0x0000,0x0000, 0x0E64,0x0000,0x0000, /* 1D003 */ +0x0E65,0x0000,0x0000, 0x0E66,0x0000,0x0000, 0x0E67,0x0000,0x0000, /* 1D006 */ +0x0E68,0x0000,0x0000, 0x0E69,0x0000,0x0000, 0x0E6A,0x0000,0x0000, /* 1D009 */ +0x0E6B,0x0000,0x0000, 0x0E6C,0x0000,0x0000, 0x0E6D,0x0000,0x0000, /* 1D00C */ +0x0E6E,0x0000,0x0000, 0x0E6F,0x0000,0x0000, 0x0E70,0x0000,0x0000, /* 1D00F */ +0x0E71,0x0000,0x0000, 0x0E72,0x0000,0x0000, 0x0E73,0x0000,0x0000, /* 1D012 */ +0x0E74,0x0000,0x0000, 0x0E75,0x0000,0x0000, 0x0E76,0x0000,0x0000, /* 1D015 */ +0x0E77,0x0000,0x0000, 0x0E78,0x0000,0x0000, 0x0E79,0x0000,0x0000, /* 1D018 */ +0x0E7A,0x0000,0x0000, 0x0E7B,0x0000,0x0000, 0x0E7C,0x0000,0x0000, /* 1D01B */ +0x0E7D,0x0000,0x0000, 0x0E7E,0x0000,0x0000, 0x0E7F,0x0000,0x0000, /* 1D01E */ +0x0E80,0x0000,0x0000, 0x0E81,0x0000,0x0000, 0x0E82,0x0000,0x0000, /* 1D021 */ +0x0E83,0x0000,0x0000, 0x0E84,0x0000,0x0000, 0x0E85,0x0000,0x0000, /* 1D024 */ +0x0E86,0x0000,0x0000, 0x0E87,0x0000,0x0000, 0x0E88,0x0000,0x0000, /* 1D027 */ +0x0E89,0x0000,0x0000, 0x0E8A,0x0000,0x0000, 0x0E8B,0x0000,0x0000, /* 1D02A */ +0x0E8C,0x0000,0x0000, 0x0E8D,0x0000,0x0000, 0x0E8E,0x0000,0x0000, /* 1D02D */ +0x0E8F,0x0000,0x0000, 0x0E90,0x0000,0x0000, 0x0E91,0x0000,0x0000, /* 1D030 */ +0x0E92,0x0000,0x0000, 0x0E93,0x0000,0x0000, 0x0E94,0x0000,0x0000, /* 1D033 */ +0x0E95,0x0000,0x0000, 0x0E96,0x0000,0x0000, 0x0E97,0x0000,0x0000, /* 1D036 */ +0x0E98,0x0000,0x0000, 0x0E99,0x0000,0x0000, 0x0E9A,0x0000,0x0000, /* 1D039 */ +0x0E9B,0x0000,0x0000, 0x0E9C,0x0000,0x0000, 0x0E9D,0x0000,0x0000, /* 1D03C */ +0x0E9E,0x0000,0x0000, 0x0E9F,0x0000,0x0000, 0x0EA0,0x0000,0x0000, /* 1D03F */ +0x0EA1,0x0000,0x0000, 0x0EA2,0x0000,0x0000, 0x0EA3,0x0000,0x0000, /* 1D042 */ +0x0EA4,0x0000,0x0000, 0x0EA5,0x0000,0x0000, 0x0EA6,0x0000,0x0000, /* 1D045 */ +0x0EA7,0x0000,0x0000, 0x0EA8,0x0000,0x0000, 0x0EA9,0x0000,0x0000, /* 1D048 */ +0x0EAA,0x0000,0x0000, 0x0EAB,0x0000,0x0000, 0x0EAC,0x0000,0x0000, /* 1D04B */ +0x0EAD,0x0000,0x0000, 0x0EAE,0x0000,0x0000, 0x0EAF,0x0000,0x0000, /* 1D04E */ +0x0EB0,0x0000,0x0000, 0x0EB1,0x0000,0x0000, 0x0EB2,0x0000,0x0000, /* 1D051 */ +0x0EB3,0x0000,0x0000, 0x0EB4,0x0000,0x0000, 0x0EB5,0x0000,0x0000, /* 1D054 */ +0x0EB6,0x0000,0x0000, 0x0EB7,0x0000,0x0000, 0x0EB8,0x0000,0x0000, /* 1D057 */ +0x0EB9,0x0000,0x0000, 0x0EBA,0x0000,0x0000, 0x0EBB,0x0000,0x0000, /* 1D05A */ +0x0EBC,0x0000,0x0000, 0x0EBD,0x0000,0x0000, 0x0EBE,0x0000,0x0000, /* 1D05D */ +0x0EBF,0x0000,0x0000, 0x0EC0,0x0000,0x0000, 0x0EC1,0x0000,0x0000, /* 1D060 */ +0x0EC2,0x0000,0x0000, 0x0EC3,0x0000,0x0000, 0x0EC4,0x0000,0x0000, /* 1D063 */ +0x0EC5,0x0000,0x0000, 0x0EC6,0x0000,0x0000, 0x0EC7,0x0000,0x0000, /* 1D066 */ +0x0EC8,0x0000,0x0000, 0x0EC9,0x0000,0x0000, 0x0ECA,0x0000,0x0000, /* 1D069 */ +0x0ECB,0x0000,0x0000, 0x0ECC,0x0000,0x0000, 0x0ECD,0x0000,0x0000, /* 1D06C */ +0x0ECE,0x0000,0x0000, 0x0ECF,0x0000,0x0000, 0x0ED0,0x0000,0x0000, /* 1D06F */ +0x0ED1,0x0000,0x0000, 0x0ED2,0x0000,0x0000, 0x0ED3,0x0000,0x0000, /* 1D072 */ +0x0ED4,0x0000,0x0000, 0x0ED5,0x0000,0x0000, 0x0ED6,0x0000,0x0000, /* 1D075 */ +0x0ED7,0x0000,0x0000, 0x0ED8,0x0000,0x0000, 0x0ED9,0x0000,0x0000, /* 1D078 */ +0x0EDA,0x0000,0x0000, 0x0EDB,0x0000,0x0000, 0x0EDC,0x0000,0x0000, /* 1D07B */ +0x0EDD,0x0000,0x0000, 0x0EDE,0x0000,0x0000, 0x0EDF,0x0000,0x0000, /* 1D07E */ +0x0EE0,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE2,0x0000,0x0000, /* 1D081 */ +0x0EE3,0x0000,0x0000, 0x0EE4,0x0000,0x0000, 0x0EE5,0x0000,0x0000, /* 1D084 */ +0x0EE6,0x0000,0x0000, 0x0EE7,0x0000,0x0000, 0x0EE8,0x0000,0x0000, /* 1D087 */ +0x0EE9,0x0000,0x0000, 0x0EEA,0x0000,0x0000, 0x0EEB,0x0000,0x0000, /* 1D08A */ +0x0EEC,0x0000,0x0000, 0x0EED,0x0000,0x0000, 0x0EEE,0x0000,0x0000, /* 1D08D */ +0x0EEF,0x0000,0x0000, 0x0EF0,0x0000,0x0000, 0x0EF1,0x0000,0x0000, /* 1D090 */ +0x0EF2,0x0000,0x0000, 0x0EF3,0x0000,0x0000, 0x0EF4,0x0000,0x0000, /* 1D093 */ +0x0EF5,0x0000,0x0000, 0x0EF6,0x0000,0x0000, 0x0EF7,0x0000,0x0000, /* 1D096 */ +0x0EF8,0x0000,0x0000, 0x0EF9,0x0000,0x0000, 0x0EFA,0x0000,0x0000, /* 1D099 */ +0x0EFB,0x0000,0x0000, 0x0EFC,0x0000,0x0000, 0x0EFD,0x0000,0x0000, /* 1D09C */ +0x0EFE,0x0000,0x0000, 0x0EFF,0x0000,0x0000, 0x0F00,0x0000,0x0000, /* 1D09F */ +0x0F01,0x0000,0x0000, 0x0F02,0x0000,0x0000, 0x0F03,0x0000,0x0000, /* 1D0A2 */ +0x0F04,0x0000,0x0000, 0x0F05,0x0000,0x0000, 0x0F06,0x0000,0x0000, /* 1D0A5 */ +0x0F07,0x0000,0x0000, 0x0F08,0x0000,0x0000, 0x0F09,0x0000,0x0000, /* 1D0A8 */ +0x0F0A,0x0000,0x0000, 0x0F0B,0x0000,0x0000, 0x0F0C,0x0000,0x0000, /* 1D0AB */ +0x0F0D,0x0000,0x0000, 0x0F0E,0x0000,0x0000, 0x0F0F,0x0000,0x0000, /* 1D0AE */ +0x0F10,0x0000,0x0000, 0x0F11,0x0000,0x0000, 0x0F12,0x0000,0x0000, /* 1D0B1 */ +0x0F13,0x0000,0x0000, 0x0F14,0x0000,0x0000, 0x0F15,0x0000,0x0000, /* 1D0B4 */ +0x0F16,0x0000,0x0000, 0x0F17,0x0000,0x0000, 0x0F18,0x0000,0x0000, /* 1D0B7 */ +0x0F19,0x0000,0x0000, 0x0F1A,0x0000,0x0000, 0x0F1B,0x0000,0x0000, /* 1D0BA */ +0x0F1C,0x0000,0x0000, 0x0F1D,0x0000,0x0000, 0x0F1E,0x0000,0x0000, /* 1D0BD */ +0x0F1F,0x0000,0x0000, 0x0F20,0x0000,0x0000, 0x0F21,0x0000,0x0000, /* 1D0C0 */ +0x0F22,0x0000,0x0000, 0x0F23,0x0000,0x0000, 0x0F24,0x0000,0x0000, /* 1D0C3 */ +0x0F25,0x0000,0x0000, 0x0F26,0x0000,0x0000, 0x0F27,0x0000,0x0000, /* 1D0C6 */ +0x0F28,0x0000,0x0000, 0x0F29,0x0000,0x0000, 0x0F2A,0x0000,0x0000, /* 1D0C9 */ +0x0F2B,0x0000,0x0000, 0x0F2C,0x0000,0x0000, 0x0F2D,0x0000,0x0000, /* 1D0CC */ +0x0F2E,0x0000,0x0000, 0x0F2F,0x0000,0x0000, 0x0F30,0x0000,0x0000, /* 1D0CF */ +0x0F31,0x0000,0x0000, 0x0F32,0x0000,0x0000, 0x0F33,0x0000,0x0000, /* 1D0D2 */ +0x0F34,0x0000,0x0000, 0x0F35,0x0000,0x0000, 0x0F36,0x0000,0x0000, /* 1D0D5 */ +0x0F37,0x0000,0x0000, 0x0F38,0x0000,0x0000, 0x0F39,0x0000,0x0000, /* 1D0D8 */ +0x0F3A,0x0000,0x0000, 0x0F3B,0x0000,0x0000, 0x0F3C,0x0000,0x0000, /* 1D0DB */ +0x0F3D,0x0000,0x0000, 0x0F3E,0x0000,0x0000, 0x0F3F,0x0000,0x0000, /* 1D0DE */ +0x0F40,0x0000,0x0000, 0x0F41,0x0000,0x0000, 0x0F42,0x0000,0x0000, /* 1D0E1 */ +0x0F43,0x0000,0x0000, 0x0F44,0x0000,0x0000, 0x0F45,0x0000,0x0000, /* 1D0E4 */ +0x0F46,0x0000,0x0000, 0x0F47,0x0000,0x0000, 0x0F48,0x0000,0x0000, /* 1D0E7 */ +0x0F49,0x0000,0x0000, 0x0F4A,0x0000,0x0000, 0x0F4B,0x0000,0x0000, /* 1D0EA */ +0x0F4C,0x0000,0x0000, 0x0F4D,0x0000,0x0000, 0x0F4E,0x0000,0x0000, /* 1D0ED */ +0x0F4F,0x0000,0x0000, 0x0F50,0x0000,0x0000, 0x0F51,0x0000,0x0000, /* 1D0F0 */ +0x0F52,0x0000,0x0000, 0x0F53,0x0000,0x0000, 0x0F54,0x0000,0x0000, /* 1D0F3 */ +0xFBC3,0xD0F6,0x0000, 0xFBC3,0xD0F7,0x0000, 0xFBC3,0xD0F8,0x0000, /* 1D0F6 */ +0xFBC3,0xD0F9,0x0000, 0xFBC3,0xD0FA,0x0000, 0xFBC3,0xD0FB,0x0000, /* 1D0F9 */ +0xFBC3,0xD0FC,0x0000, 0xFBC3,0xD0FD,0x0000, 0xFBC3,0xD0FE,0x0000, /* 1D0FC */ +0xFBC3,0xD0FF,0x0000 }; + +uint16 uca520_p1D1[]= { /* 1D100 (3 weights per char) */ +0x0F55,0x0000,0x0000, 0x0F56,0x0000,0x0000, 0x0F57,0x0000,0x0000, /* 1D100 */ +0x0F58,0x0000,0x0000, 0x0F59,0x0000,0x0000, 0x0F5A,0x0000,0x0000, /* 1D103 */ +0x0F5B,0x0000,0x0000, 0x0F5C,0x0000,0x0000, 0x0F5D,0x0000,0x0000, /* 1D106 */ +0x0F5E,0x0000,0x0000, 0x0F5F,0x0000,0x0000, 0x0F60,0x0000,0x0000, /* 1D109 */ +0x0F61,0x0000,0x0000, 0x0F62,0x0000,0x0000, 0x0F63,0x0000,0x0000, /* 1D10C */ +0x0F64,0x0000,0x0000, 0x0F65,0x0000,0x0000, 0x0F66,0x0000,0x0000, /* 1D10F */ +0x0F67,0x0000,0x0000, 0x0F68,0x0000,0x0000, 0x0F69,0x0000,0x0000, /* 1D112 */ +0x0F6A,0x0000,0x0000, 0x0F6B,0x0000,0x0000, 0x0F6C,0x0000,0x0000, /* 1D115 */ +0x0F6D,0x0000,0x0000, 0x0F6E,0x0000,0x0000, 0x0F6F,0x0000,0x0000, /* 1D118 */ +0x0F70,0x0000,0x0000, 0x0F71,0x0000,0x0000, 0x0F72,0x0000,0x0000, /* 1D11B */ +0x0F73,0x0000,0x0000, 0x0F74,0x0000,0x0000, 0x0F75,0x0000,0x0000, /* 1D11E */ +0x0F76,0x0000,0x0000, 0x0F77,0x0000,0x0000, 0x0F78,0x0000,0x0000, /* 1D121 */ +0x0F79,0x0000,0x0000, 0x0F7A,0x0000,0x0000, 0x0F7B,0x0000,0x0000, /* 1D124 */ +0xFBC3,0xD127,0x0000, 0xFBC3,0xD128,0x0000, 0x0F8F,0x0000,0x0000, /* 1D127 */ +0x0F7F,0x0000,0x0000, 0x0F80,0x0000,0x0000, 0x0F81,0x0000,0x0000, /* 1D12A */ +0x0F82,0x0000,0x0000, 0x0F83,0x0000,0x0000, 0x0F84,0x0000,0x0000, /* 1D12D */ +0x0F85,0x0000,0x0000, 0x0F86,0x0000,0x0000, 0x0F87,0x0000,0x0000, /* 1D130 */ +0x0F88,0x0000,0x0000, 0x0F89,0x0000,0x0000, 0x0F8A,0x0000,0x0000, /* 1D133 */ +0x0F8B,0x0000,0x0000, 0x0F8C,0x0000,0x0000, 0x0F8D,0x0000,0x0000, /* 1D136 */ +0x0F8E,0x0000,0x0000, 0x0F90,0x0000,0x0000, 0x0F91,0x0000,0x0000, /* 1D139 */ +0x0F92,0x0000,0x0000, 0x0F93,0x0000,0x0000, 0x0F94,0x0000,0x0000, /* 1D13C */ +0x0F95,0x0000,0x0000, 0x0F96,0x0000,0x0000, 0x0F97,0x0000,0x0000, /* 1D13F */ +0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000, 0x0F9A,0x0000,0x0000, /* 1D142 */ +0x0F9B,0x0000,0x0000, 0x0F9C,0x0000,0x0000, 0x0F9D,0x0000,0x0000, /* 1D145 */ +0x0F9E,0x0000,0x0000, 0x0F9F,0x0000,0x0000, 0x0FA0,0x0000,0x0000, /* 1D148 */ +0x0FA1,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA3,0x0000,0x0000, /* 1D14B */ +0x0FA4,0x0000,0x0000, 0x0FA5,0x0000,0x0000, 0x0FA6,0x0000,0x0000, /* 1D14E */ +0x0FA7,0x0000,0x0000, 0x0FA8,0x0000,0x0000, 0x0FA9,0x0000,0x0000, /* 1D151 */ +0x0FAA,0x0000,0x0000, 0x0FAB,0x0000,0x0000, 0x0FAC,0x0000,0x0000, /* 1D154 */ +0x0FAD,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0FAF,0x0000,0x0000, /* 1D157 */ +0x0FB0,0x0000,0x0000, 0x0FB1,0x0000,0x0000, 0x0FB2,0x0000,0x0000, /* 1D15A */ +0x0FB3,0x0000,0x0000, 0x0FAD,0x0000,0x0000, 0x0FAE,0x0000,0x0000, /* 1D15D */ +0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, /* 1D160 */ +0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D163 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D166 */ +0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000, 0x0FB5,0x0000,0x0000, /* 1D169 */ +0x0FB6,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D16C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D16F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D172 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D175 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D178 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D17B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D17E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0FB7,0x0000,0x0000, /* 1D181 */ +0x0FB8,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D184 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D187 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0FB9,0x0000,0x0000, /* 1D18A */ +0x0FBA,0x0000,0x0000, 0x0FBB,0x0000,0x0000, 0x0FBC,0x0000,0x0000, /* 1D18D */ +0x0FBD,0x0000,0x0000, 0x0FBE,0x0000,0x0000, 0x0FBF,0x0000,0x0000, /* 1D190 */ +0x0FC0,0x0000,0x0000, 0x0FC1,0x0000,0x0000, 0x0FC2,0x0000,0x0000, /* 1D193 */ +0x0FC3,0x0000,0x0000, 0x0FC4,0x0000,0x0000, 0x0FC5,0x0000,0x0000, /* 1D196 */ +0x0FC6,0x0000,0x0000, 0x0FC7,0x0000,0x0000, 0x0FC8,0x0000,0x0000, /* 1D199 */ +0x0FC9,0x0000,0x0000, 0x0FCA,0x0000,0x0000, 0x0FCB,0x0000,0x0000, /* 1D19C */ +0x0FCC,0x0000,0x0000, 0x0FCD,0x0000,0x0000, 0x0FCE,0x0000,0x0000, /* 1D19F */ +0x0FCF,0x0000,0x0000, 0x0FD0,0x0000,0x0000, 0x0FD1,0x0000,0x0000, /* 1D1A2 */ +0x0FD2,0x0000,0x0000, 0x0FD3,0x0000,0x0000, 0x0FD4,0x0000,0x0000, /* 1D1A5 */ +0x0FD5,0x0000,0x0000, 0x0FD6,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D1A8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D1AB */ +0x0FD7,0x0000,0x0000, 0x0FD8,0x0000,0x0000, 0x0FD9,0x0000,0x0000, /* 1D1AE */ +0x0FDA,0x0000,0x0000, 0x0FDB,0x0000,0x0000, 0x0FDC,0x0000,0x0000, /* 1D1B1 */ +0x0FDD,0x0000,0x0000, 0x0FDE,0x0000,0x0000, 0x0FDF,0x0000,0x0000, /* 1D1B4 */ +0x0FE0,0x0000,0x0000, 0x0FE1,0x0000,0x0000, 0x0FE2,0x0000,0x0000, /* 1D1B7 */ +0x0FE3,0x0000,0x0000, 0x0FE2,0x0000,0x0000, 0x0FE3,0x0000,0x0000, /* 1D1BA */ +0x0FE2,0x0000,0x0000, 0x0FE3,0x0000,0x0000, 0x0FE2,0x0000,0x0000, /* 1D1BD */ +0x0FE3,0x0000,0x0000, 0x0FE4,0x0000,0x0000, 0x0FE5,0x0000,0x0000, /* 1D1C0 */ +0x0FE6,0x0000,0x0000, 0x0FE7,0x0000,0x0000, 0x0FE8,0x0000,0x0000, /* 1D1C3 */ +0x0FE9,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEB,0x0000,0x0000, /* 1D1C6 */ +0x0FEC,0x0000,0x0000, 0x0FED,0x0000,0x0000, 0x0FEE,0x0000,0x0000, /* 1D1C9 */ +0x0FEF,0x0000,0x0000, 0x0FF0,0x0000,0x0000, 0x0FF1,0x0000,0x0000, /* 1D1CC */ +0x0FF2,0x0000,0x0000, 0x0FF3,0x0000,0x0000, 0x0FF4,0x0000,0x0000, /* 1D1CF */ +0x0FF5,0x0000,0x0000, 0x0FF6,0x0000,0x0000, 0x0FF7,0x0000,0x0000, /* 1D1D2 */ +0x0FF8,0x0000,0x0000, 0x0FF9,0x0000,0x0000, 0x0FFA,0x0000,0x0000, /* 1D1D5 */ +0x0FFB,0x0000,0x0000, 0x0FFC,0x0000,0x0000, 0x0FFD,0x0000,0x0000, /* 1D1D8 */ +0x0FFE,0x0000,0x0000, 0x0FFF,0x0000,0x0000, 0x1000,0x0000,0x0000, /* 1D1DB */ +0xFBC3,0xD1DE,0x0000, 0xFBC3,0xD1DF,0x0000, 0xFBC3,0xD1E0,0x0000, /* 1D1DE */ +0xFBC3,0xD1E1,0x0000, 0xFBC3,0xD1E2,0x0000, 0xFBC3,0xD1E3,0x0000, /* 1D1E1 */ +0xFBC3,0xD1E4,0x0000, 0xFBC3,0xD1E5,0x0000, 0xFBC3,0xD1E6,0x0000, /* 1D1E4 */ +0xFBC3,0xD1E7,0x0000, 0xFBC3,0xD1E8,0x0000, 0xFBC3,0xD1E9,0x0000, /* 1D1E7 */ +0xFBC3,0xD1EA,0x0000, 0xFBC3,0xD1EB,0x0000, 0xFBC3,0xD1EC,0x0000, /* 1D1EA */ +0xFBC3,0xD1ED,0x0000, 0xFBC3,0xD1EE,0x0000, 0xFBC3,0xD1EF,0x0000, /* 1D1ED */ +0xFBC3,0xD1F0,0x0000, 0xFBC3,0xD1F1,0x0000, 0xFBC3,0xD1F2,0x0000, /* 1D1F0 */ +0xFBC3,0xD1F3,0x0000, 0xFBC3,0xD1F4,0x0000, 0xFBC3,0xD1F5,0x0000, /* 1D1F3 */ +0xFBC3,0xD1F6,0x0000, 0xFBC3,0xD1F7,0x0000, 0xFBC3,0xD1F8,0x0000, /* 1D1F6 */ +0xFBC3,0xD1F9,0x0000, 0xFBC3,0xD1FA,0x0000, 0xFBC3,0xD1FB,0x0000, /* 1D1F9 */ +0xFBC3,0xD1FC,0x0000, 0xFBC3,0xD1FD,0x0000, 0xFBC3,0xD1FE,0x0000, /* 1D1FC */ +0xFBC3,0xD1FF,0x0000 }; + +uint16 uca520_p1D2[]= { /* 1D200 (3 weights per char) */ +0x1001,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1003,0x0000,0x0000, /* 1D200 */ +0x1004,0x0000,0x0000, 0x1005,0x0000,0x0000, 0x1006,0x0000,0x0000, /* 1D203 */ +0x1007,0x0000,0x0000, 0x1008,0x0000,0x0000, 0x1009,0x0000,0x0000, /* 1D206 */ +0x100A,0x0000,0x0000, 0x100B,0x0000,0x0000, 0x100C,0x0000,0x0000, /* 1D209 */ +0x100D,0x0000,0x0000, 0x100E,0x0000,0x0000, 0x100F,0x0000,0x0000, /* 1D20C */ +0x1010,0x0000,0x0000, 0x1011,0x0000,0x0000, 0x1012,0x0000,0x0000, /* 1D20F */ +0x1013,0x0000,0x0000, 0x1014,0x0000,0x0000, 0x1015,0x0000,0x0000, /* 1D212 */ +0x1016,0x0000,0x0000, 0x1017,0x0000,0x0000, 0x1018,0x0000,0x0000, /* 1D215 */ +0x1019,0x0000,0x0000, 0x101A,0x0000,0x0000, 0x101B,0x0000,0x0000, /* 1D218 */ +0x101C,0x0000,0x0000, 0x101D,0x0000,0x0000, 0x101E,0x0000,0x0000, /* 1D21B */ +0x101F,0x0000,0x0000, 0x1020,0x0000,0x0000, 0x1021,0x0000,0x0000, /* 1D21E */ +0x1022,0x0000,0x0000, 0x1023,0x0000,0x0000, 0x1024,0x0000,0x0000, /* 1D221 */ +0x1025,0x0000,0x0000, 0x1026,0x0000,0x0000, 0x1027,0x0000,0x0000, /* 1D224 */ +0x1028,0x0000,0x0000, 0x1029,0x0000,0x0000, 0x102A,0x0000,0x0000, /* 1D227 */ +0x102B,0x0000,0x0000, 0x102C,0x0000,0x0000, 0x102D,0x0000,0x0000, /* 1D22A */ +0x102E,0x0000,0x0000, 0x102F,0x0000,0x0000, 0x1030,0x0000,0x0000, /* 1D22D */ +0x1031,0x0000,0x0000, 0x1032,0x0000,0x0000, 0x1033,0x0000,0x0000, /* 1D230 */ +0x1034,0x0000,0x0000, 0x1035,0x0000,0x0000, 0x1036,0x0000,0x0000, /* 1D233 */ +0x1037,0x0000,0x0000, 0x1038,0x0000,0x0000, 0x1039,0x0000,0x0000, /* 1D236 */ +0x103A,0x0000,0x0000, 0x103B,0x0000,0x0000, 0x103C,0x0000,0x0000, /* 1D239 */ +0x103D,0x0000,0x0000, 0x103E,0x0000,0x0000, 0x103F,0x0000,0x0000, /* 1D23C */ +0x1040,0x0000,0x0000, 0x1041,0x0000,0x0000, 0x1042,0x0000,0x0000, /* 1D23F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D242 */ +0x1043,0x0000,0x0000, 0xFBC3,0xD246,0x0000, 0xFBC3,0xD247,0x0000, /* 1D245 */ +0xFBC3,0xD248,0x0000, 0xFBC3,0xD249,0x0000, 0xFBC3,0xD24A,0x0000, /* 1D248 */ +0xFBC3,0xD24B,0x0000, 0xFBC3,0xD24C,0x0000, 0xFBC3,0xD24D,0x0000, /* 1D24B */ +0xFBC3,0xD24E,0x0000, 0xFBC3,0xD24F,0x0000, 0xFBC3,0xD250,0x0000, /* 1D24E */ +0xFBC3,0xD251,0x0000, 0xFBC3,0xD252,0x0000, 0xFBC3,0xD253,0x0000, /* 1D251 */ +0xFBC3,0xD254,0x0000, 0xFBC3,0xD255,0x0000, 0xFBC3,0xD256,0x0000, /* 1D254 */ +0xFBC3,0xD257,0x0000, 0xFBC3,0xD258,0x0000, 0xFBC3,0xD259,0x0000, /* 1D257 */ +0xFBC3,0xD25A,0x0000, 0xFBC3,0xD25B,0x0000, 0xFBC3,0xD25C,0x0000, /* 1D25A */ +0xFBC3,0xD25D,0x0000, 0xFBC3,0xD25E,0x0000, 0xFBC3,0xD25F,0x0000, /* 1D25D */ +0xFBC3,0xD260,0x0000, 0xFBC3,0xD261,0x0000, 0xFBC3,0xD262,0x0000, /* 1D260 */ +0xFBC3,0xD263,0x0000, 0xFBC3,0xD264,0x0000, 0xFBC3,0xD265,0x0000, /* 1D263 */ +0xFBC3,0xD266,0x0000, 0xFBC3,0xD267,0x0000, 0xFBC3,0xD268,0x0000, /* 1D266 */ +0xFBC3,0xD269,0x0000, 0xFBC3,0xD26A,0x0000, 0xFBC3,0xD26B,0x0000, /* 1D269 */ +0xFBC3,0xD26C,0x0000, 0xFBC3,0xD26D,0x0000, 0xFBC3,0xD26E,0x0000, /* 1D26C */ +0xFBC3,0xD26F,0x0000, 0xFBC3,0xD270,0x0000, 0xFBC3,0xD271,0x0000, /* 1D26F */ +0xFBC3,0xD272,0x0000, 0xFBC3,0xD273,0x0000, 0xFBC3,0xD274,0x0000, /* 1D272 */ +0xFBC3,0xD275,0x0000, 0xFBC3,0xD276,0x0000, 0xFBC3,0xD277,0x0000, /* 1D275 */ +0xFBC3,0xD278,0x0000, 0xFBC3,0xD279,0x0000, 0xFBC3,0xD27A,0x0000, /* 1D278 */ +0xFBC3,0xD27B,0x0000, 0xFBC3,0xD27C,0x0000, 0xFBC3,0xD27D,0x0000, /* 1D27B */ +0xFBC3,0xD27E,0x0000, 0xFBC3,0xD27F,0x0000, 0xFBC3,0xD280,0x0000, /* 1D27E */ +0xFBC3,0xD281,0x0000, 0xFBC3,0xD282,0x0000, 0xFBC3,0xD283,0x0000, /* 1D281 */ +0xFBC3,0xD284,0x0000, 0xFBC3,0xD285,0x0000, 0xFBC3,0xD286,0x0000, /* 1D284 */ +0xFBC3,0xD287,0x0000, 0xFBC3,0xD288,0x0000, 0xFBC3,0xD289,0x0000, /* 1D287 */ +0xFBC3,0xD28A,0x0000, 0xFBC3,0xD28B,0x0000, 0xFBC3,0xD28C,0x0000, /* 1D28A */ +0xFBC3,0xD28D,0x0000, 0xFBC3,0xD28E,0x0000, 0xFBC3,0xD28F,0x0000, /* 1D28D */ +0xFBC3,0xD290,0x0000, 0xFBC3,0xD291,0x0000, 0xFBC3,0xD292,0x0000, /* 1D290 */ +0xFBC3,0xD293,0x0000, 0xFBC3,0xD294,0x0000, 0xFBC3,0xD295,0x0000, /* 1D293 */ +0xFBC3,0xD296,0x0000, 0xFBC3,0xD297,0x0000, 0xFBC3,0xD298,0x0000, /* 1D296 */ +0xFBC3,0xD299,0x0000, 0xFBC3,0xD29A,0x0000, 0xFBC3,0xD29B,0x0000, /* 1D299 */ +0xFBC3,0xD29C,0x0000, 0xFBC3,0xD29D,0x0000, 0xFBC3,0xD29E,0x0000, /* 1D29C */ +0xFBC3,0xD29F,0x0000, 0xFBC3,0xD2A0,0x0000, 0xFBC3,0xD2A1,0x0000, /* 1D29F */ +0xFBC3,0xD2A2,0x0000, 0xFBC3,0xD2A3,0x0000, 0xFBC3,0xD2A4,0x0000, /* 1D2A2 */ +0xFBC3,0xD2A5,0x0000, 0xFBC3,0xD2A6,0x0000, 0xFBC3,0xD2A7,0x0000, /* 1D2A5 */ +0xFBC3,0xD2A8,0x0000, 0xFBC3,0xD2A9,0x0000, 0xFBC3,0xD2AA,0x0000, /* 1D2A8 */ +0xFBC3,0xD2AB,0x0000, 0xFBC3,0xD2AC,0x0000, 0xFBC3,0xD2AD,0x0000, /* 1D2AB */ +0xFBC3,0xD2AE,0x0000, 0xFBC3,0xD2AF,0x0000, 0xFBC3,0xD2B0,0x0000, /* 1D2AE */ +0xFBC3,0xD2B1,0x0000, 0xFBC3,0xD2B2,0x0000, 0xFBC3,0xD2B3,0x0000, /* 1D2B1 */ +0xFBC3,0xD2B4,0x0000, 0xFBC3,0xD2B5,0x0000, 0xFBC3,0xD2B6,0x0000, /* 1D2B4 */ +0xFBC3,0xD2B7,0x0000, 0xFBC3,0xD2B8,0x0000, 0xFBC3,0xD2B9,0x0000, /* 1D2B7 */ +0xFBC3,0xD2BA,0x0000, 0xFBC3,0xD2BB,0x0000, 0xFBC3,0xD2BC,0x0000, /* 1D2BA */ +0xFBC3,0xD2BD,0x0000, 0xFBC3,0xD2BE,0x0000, 0xFBC3,0xD2BF,0x0000, /* 1D2BD */ +0xFBC3,0xD2C0,0x0000, 0xFBC3,0xD2C1,0x0000, 0xFBC3,0xD2C2,0x0000, /* 1D2C0 */ +0xFBC3,0xD2C3,0x0000, 0xFBC3,0xD2C4,0x0000, 0xFBC3,0xD2C5,0x0000, /* 1D2C3 */ +0xFBC3,0xD2C6,0x0000, 0xFBC3,0xD2C7,0x0000, 0xFBC3,0xD2C8,0x0000, /* 1D2C6 */ +0xFBC3,0xD2C9,0x0000, 0xFBC3,0xD2CA,0x0000, 0xFBC3,0xD2CB,0x0000, /* 1D2C9 */ +0xFBC3,0xD2CC,0x0000, 0xFBC3,0xD2CD,0x0000, 0xFBC3,0xD2CE,0x0000, /* 1D2CC */ +0xFBC3,0xD2CF,0x0000, 0xFBC3,0xD2D0,0x0000, 0xFBC3,0xD2D1,0x0000, /* 1D2CF */ +0xFBC3,0xD2D2,0x0000, 0xFBC3,0xD2D3,0x0000, 0xFBC3,0xD2D4,0x0000, /* 1D2D2 */ +0xFBC3,0xD2D5,0x0000, 0xFBC3,0xD2D6,0x0000, 0xFBC3,0xD2D7,0x0000, /* 1D2D5 */ +0xFBC3,0xD2D8,0x0000, 0xFBC3,0xD2D9,0x0000, 0xFBC3,0xD2DA,0x0000, /* 1D2D8 */ +0xFBC3,0xD2DB,0x0000, 0xFBC3,0xD2DC,0x0000, 0xFBC3,0xD2DD,0x0000, /* 1D2DB */ +0xFBC3,0xD2DE,0x0000, 0xFBC3,0xD2DF,0x0000, 0xFBC3,0xD2E0,0x0000, /* 1D2DE */ +0xFBC3,0xD2E1,0x0000, 0xFBC3,0xD2E2,0x0000, 0xFBC3,0xD2E3,0x0000, /* 1D2E1 */ +0xFBC3,0xD2E4,0x0000, 0xFBC3,0xD2E5,0x0000, 0xFBC3,0xD2E6,0x0000, /* 1D2E4 */ +0xFBC3,0xD2E7,0x0000, 0xFBC3,0xD2E8,0x0000, 0xFBC3,0xD2E9,0x0000, /* 1D2E7 */ +0xFBC3,0xD2EA,0x0000, 0xFBC3,0xD2EB,0x0000, 0xFBC3,0xD2EC,0x0000, /* 1D2EA */ +0xFBC3,0xD2ED,0x0000, 0xFBC3,0xD2EE,0x0000, 0xFBC3,0xD2EF,0x0000, /* 1D2ED */ +0xFBC3,0xD2F0,0x0000, 0xFBC3,0xD2F1,0x0000, 0xFBC3,0xD2F2,0x0000, /* 1D2F0 */ +0xFBC3,0xD2F3,0x0000, 0xFBC3,0xD2F4,0x0000, 0xFBC3,0xD2F5,0x0000, /* 1D2F3 */ +0xFBC3,0xD2F6,0x0000, 0xFBC3,0xD2F7,0x0000, 0xFBC3,0xD2F8,0x0000, /* 1D2F6 */ +0xFBC3,0xD2F9,0x0000, 0xFBC3,0xD2FA,0x0000, 0xFBC3,0xD2FB,0x0000, /* 1D2F9 */ +0xFBC3,0xD2FC,0x0000, 0xFBC3,0xD2FD,0x0000, 0xFBC3,0xD2FE,0x0000, /* 1D2FC */ +0xFBC3,0xD2FF,0x0000 }; + +uint16 uca520_p1D3[]= { /* 1D300 (3 weights per char) */ +0x0D7E,0x0000,0x0000, 0x0D7F,0x0000,0x0000, 0x0D80,0x0000,0x0000, /* 1D300 */ +0x0D81,0x0000,0x0000, 0x0D82,0x0000,0x0000, 0x0D83,0x0000,0x0000, /* 1D303 */ +0x0D84,0x0000,0x0000, 0x0D85,0x0000,0x0000, 0x0D86,0x0000,0x0000, /* 1D306 */ +0x0D87,0x0000,0x0000, 0x0D88,0x0000,0x0000, 0x0D89,0x0000,0x0000, /* 1D309 */ +0x0D8A,0x0000,0x0000, 0x0D8B,0x0000,0x0000, 0x0D8C,0x0000,0x0000, /* 1D30C */ +0x0D8D,0x0000,0x0000, 0x0D8E,0x0000,0x0000, 0x0D8F,0x0000,0x0000, /* 1D30F */ +0x0D90,0x0000,0x0000, 0x0D91,0x0000,0x0000, 0x0D92,0x0000,0x0000, /* 1D312 */ +0x0D93,0x0000,0x0000, 0x0D94,0x0000,0x0000, 0x0D95,0x0000,0x0000, /* 1D315 */ +0x0D96,0x0000,0x0000, 0x0D97,0x0000,0x0000, 0x0D98,0x0000,0x0000, /* 1D318 */ +0x0D99,0x0000,0x0000, 0x0D9A,0x0000,0x0000, 0x0D9B,0x0000,0x0000, /* 1D31B */ +0x0D9C,0x0000,0x0000, 0x0D9D,0x0000,0x0000, 0x0D9E,0x0000,0x0000, /* 1D31E */ +0x0D9F,0x0000,0x0000, 0x0DA0,0x0000,0x0000, 0x0DA1,0x0000,0x0000, /* 1D321 */ +0x0DA2,0x0000,0x0000, 0x0DA3,0x0000,0x0000, 0x0DA4,0x0000,0x0000, /* 1D324 */ +0x0DA5,0x0000,0x0000, 0x0DA6,0x0000,0x0000, 0x0DA7,0x0000,0x0000, /* 1D327 */ +0x0DA8,0x0000,0x0000, 0x0DA9,0x0000,0x0000, 0x0DAA,0x0000,0x0000, /* 1D32A */ +0x0DAB,0x0000,0x0000, 0x0DAC,0x0000,0x0000, 0x0DAD,0x0000,0x0000, /* 1D32D */ +0x0DAE,0x0000,0x0000, 0x0DAF,0x0000,0x0000, 0x0DB0,0x0000,0x0000, /* 1D330 */ +0x0DB1,0x0000,0x0000, 0x0DB2,0x0000,0x0000, 0x0DB3,0x0000,0x0000, /* 1D333 */ +0x0DB4,0x0000,0x0000, 0x0DB5,0x0000,0x0000, 0x0DB6,0x0000,0x0000, /* 1D336 */ +0x0DB7,0x0000,0x0000, 0x0DB8,0x0000,0x0000, 0x0DB9,0x0000,0x0000, /* 1D339 */ +0x0DBA,0x0000,0x0000, 0x0DBB,0x0000,0x0000, 0x0DBC,0x0000,0x0000, /* 1D33C */ +0x0DBD,0x0000,0x0000, 0x0DBE,0x0000,0x0000, 0x0DBF,0x0000,0x0000, /* 1D33F */ +0x0DC0,0x0000,0x0000, 0x0DC1,0x0000,0x0000, 0x0DC2,0x0000,0x0000, /* 1D342 */ +0x0DC3,0x0000,0x0000, 0x0DC4,0x0000,0x0000, 0x0DC5,0x0000,0x0000, /* 1D345 */ +0x0DC6,0x0000,0x0000, 0x0DC7,0x0000,0x0000, 0x0DC8,0x0000,0x0000, /* 1D348 */ +0x0DC9,0x0000,0x0000, 0x0DCA,0x0000,0x0000, 0x0DCB,0x0000,0x0000, /* 1D34B */ +0x0DCC,0x0000,0x0000, 0x0DCD,0x0000,0x0000, 0x0DCE,0x0000,0x0000, /* 1D34E */ +0x0DCF,0x0000,0x0000, 0x0DD0,0x0000,0x0000, 0x0DD1,0x0000,0x0000, /* 1D351 */ +0x0DD2,0x0000,0x0000, 0x0DD3,0x0000,0x0000, 0x0DD4,0x0000,0x0000, /* 1D354 */ +0xFBC3,0xD357,0x0000, 0xFBC3,0xD358,0x0000, 0xFBC3,0xD359,0x0000, /* 1D357 */ +0xFBC3,0xD35A,0x0000, 0xFBC3,0xD35B,0x0000, 0xFBC3,0xD35C,0x0000, /* 1D35A */ +0xFBC3,0xD35D,0x0000, 0xFBC3,0xD35E,0x0000, 0xFBC3,0xD35F,0x0000, /* 1D35D */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D360 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D363 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D366 */ +0x11C5,0x0000,0x0000, 0x11C6,0x0000,0x0000, 0x11C7,0x0000,0x0000, /* 1D369 */ +0x11C8,0x0000,0x0000, 0x11C9,0x0000,0x0000, 0x11CA,0x0000,0x0000, /* 1D36C */ +0x11CB,0x0000,0x0000, 0x11CC,0x0000,0x0000, 0x11CD,0x0000,0x0000, /* 1D36F */ +0xFBC3,0xD372,0x0000, 0xFBC3,0xD373,0x0000, 0xFBC3,0xD374,0x0000, /* 1D372 */ +0xFBC3,0xD375,0x0000, 0xFBC3,0xD376,0x0000, 0xFBC3,0xD377,0x0000, /* 1D375 */ +0xFBC3,0xD378,0x0000, 0xFBC3,0xD379,0x0000, 0xFBC3,0xD37A,0x0000, /* 1D378 */ +0xFBC3,0xD37B,0x0000, 0xFBC3,0xD37C,0x0000, 0xFBC3,0xD37D,0x0000, /* 1D37B */ +0xFBC3,0xD37E,0x0000, 0xFBC3,0xD37F,0x0000, 0xFBC3,0xD380,0x0000, /* 1D37E */ +0xFBC3,0xD381,0x0000, 0xFBC3,0xD382,0x0000, 0xFBC3,0xD383,0x0000, /* 1D381 */ +0xFBC3,0xD384,0x0000, 0xFBC3,0xD385,0x0000, 0xFBC3,0xD386,0x0000, /* 1D384 */ +0xFBC3,0xD387,0x0000, 0xFBC3,0xD388,0x0000, 0xFBC3,0xD389,0x0000, /* 1D387 */ +0xFBC3,0xD38A,0x0000, 0xFBC3,0xD38B,0x0000, 0xFBC3,0xD38C,0x0000, /* 1D38A */ +0xFBC3,0xD38D,0x0000, 0xFBC3,0xD38E,0x0000, 0xFBC3,0xD38F,0x0000, /* 1D38D */ +0xFBC3,0xD390,0x0000, 0xFBC3,0xD391,0x0000, 0xFBC3,0xD392,0x0000, /* 1D390 */ +0xFBC3,0xD393,0x0000, 0xFBC3,0xD394,0x0000, 0xFBC3,0xD395,0x0000, /* 1D393 */ +0xFBC3,0xD396,0x0000, 0xFBC3,0xD397,0x0000, 0xFBC3,0xD398,0x0000, /* 1D396 */ +0xFBC3,0xD399,0x0000, 0xFBC3,0xD39A,0x0000, 0xFBC3,0xD39B,0x0000, /* 1D399 */ +0xFBC3,0xD39C,0x0000, 0xFBC3,0xD39D,0x0000, 0xFBC3,0xD39E,0x0000, /* 1D39C */ +0xFBC3,0xD39F,0x0000, 0xFBC3,0xD3A0,0x0000, 0xFBC3,0xD3A1,0x0000, /* 1D39F */ +0xFBC3,0xD3A2,0x0000, 0xFBC3,0xD3A3,0x0000, 0xFBC3,0xD3A4,0x0000, /* 1D3A2 */ +0xFBC3,0xD3A5,0x0000, 0xFBC3,0xD3A6,0x0000, 0xFBC3,0xD3A7,0x0000, /* 1D3A5 */ +0xFBC3,0xD3A8,0x0000, 0xFBC3,0xD3A9,0x0000, 0xFBC3,0xD3AA,0x0000, /* 1D3A8 */ +0xFBC3,0xD3AB,0x0000, 0xFBC3,0xD3AC,0x0000, 0xFBC3,0xD3AD,0x0000, /* 1D3AB */ +0xFBC3,0xD3AE,0x0000, 0xFBC3,0xD3AF,0x0000, 0xFBC3,0xD3B0,0x0000, /* 1D3AE */ +0xFBC3,0xD3B1,0x0000, 0xFBC3,0xD3B2,0x0000, 0xFBC3,0xD3B3,0x0000, /* 1D3B1 */ +0xFBC3,0xD3B4,0x0000, 0xFBC3,0xD3B5,0x0000, 0xFBC3,0xD3B6,0x0000, /* 1D3B4 */ +0xFBC3,0xD3B7,0x0000, 0xFBC3,0xD3B8,0x0000, 0xFBC3,0xD3B9,0x0000, /* 1D3B7 */ +0xFBC3,0xD3BA,0x0000, 0xFBC3,0xD3BB,0x0000, 0xFBC3,0xD3BC,0x0000, /* 1D3BA */ +0xFBC3,0xD3BD,0x0000, 0xFBC3,0xD3BE,0x0000, 0xFBC3,0xD3BF,0x0000, /* 1D3BD */ +0xFBC3,0xD3C0,0x0000, 0xFBC3,0xD3C1,0x0000, 0xFBC3,0xD3C2,0x0000, /* 1D3C0 */ +0xFBC3,0xD3C3,0x0000, 0xFBC3,0xD3C4,0x0000, 0xFBC3,0xD3C5,0x0000, /* 1D3C3 */ +0xFBC3,0xD3C6,0x0000, 0xFBC3,0xD3C7,0x0000, 0xFBC3,0xD3C8,0x0000, /* 1D3C6 */ +0xFBC3,0xD3C9,0x0000, 0xFBC3,0xD3CA,0x0000, 0xFBC3,0xD3CB,0x0000, /* 1D3C9 */ +0xFBC3,0xD3CC,0x0000, 0xFBC3,0xD3CD,0x0000, 0xFBC3,0xD3CE,0x0000, /* 1D3CC */ +0xFBC3,0xD3CF,0x0000, 0xFBC3,0xD3D0,0x0000, 0xFBC3,0xD3D1,0x0000, /* 1D3CF */ +0xFBC3,0xD3D2,0x0000, 0xFBC3,0xD3D3,0x0000, 0xFBC3,0xD3D4,0x0000, /* 1D3D2 */ +0xFBC3,0xD3D5,0x0000, 0xFBC3,0xD3D6,0x0000, 0xFBC3,0xD3D7,0x0000, /* 1D3D5 */ +0xFBC3,0xD3D8,0x0000, 0xFBC3,0xD3D9,0x0000, 0xFBC3,0xD3DA,0x0000, /* 1D3D8 */ +0xFBC3,0xD3DB,0x0000, 0xFBC3,0xD3DC,0x0000, 0xFBC3,0xD3DD,0x0000, /* 1D3DB */ +0xFBC3,0xD3DE,0x0000, 0xFBC3,0xD3DF,0x0000, 0xFBC3,0xD3E0,0x0000, /* 1D3DE */ +0xFBC3,0xD3E1,0x0000, 0xFBC3,0xD3E2,0x0000, 0xFBC3,0xD3E3,0x0000, /* 1D3E1 */ +0xFBC3,0xD3E4,0x0000, 0xFBC3,0xD3E5,0x0000, 0xFBC3,0xD3E6,0x0000, /* 1D3E4 */ +0xFBC3,0xD3E7,0x0000, 0xFBC3,0xD3E8,0x0000, 0xFBC3,0xD3E9,0x0000, /* 1D3E7 */ +0xFBC3,0xD3EA,0x0000, 0xFBC3,0xD3EB,0x0000, 0xFBC3,0xD3EC,0x0000, /* 1D3EA */ +0xFBC3,0xD3ED,0x0000, 0xFBC3,0xD3EE,0x0000, 0xFBC3,0xD3EF,0x0000, /* 1D3ED */ +0xFBC3,0xD3F0,0x0000, 0xFBC3,0xD3F1,0x0000, 0xFBC3,0xD3F2,0x0000, /* 1D3F0 */ +0xFBC3,0xD3F3,0x0000, 0xFBC3,0xD3F4,0x0000, 0xFBC3,0xD3F5,0x0000, /* 1D3F3 */ +0xFBC3,0xD3F6,0x0000, 0xFBC3,0xD3F7,0x0000, 0xFBC3,0xD3F8,0x0000, /* 1D3F6 */ +0xFBC3,0xD3F9,0x0000, 0xFBC3,0xD3FA,0x0000, 0xFBC3,0xD3FB,0x0000, /* 1D3F9 */ +0xFBC3,0xD3FC,0x0000, 0xFBC3,0xD3FD,0x0000, 0xFBC3,0xD3FE,0x0000, /* 1D3FC */ +0xFBC3,0xD3FF,0x0000 }; + +uint16 uca520_p1D4[]= { /* 1D400 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D400 */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D403 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D406 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D409 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D40C */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D40F */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D412 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D415 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D418 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D41B */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D41E */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D421 */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D424 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D427 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D42A */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D42D */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D430 */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D433 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D436 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D439 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D43C */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D43F */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D442 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D445 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D448 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D44B */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D44E */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D451 */ +0x12B0,0x0000,0x0000, 0xFBC3,0xD455,0x0000, 0x12EC,0x0000,0x0000, /* 1D454 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D457 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D45A */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D45D */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D460 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D463 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D466 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D469 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D46C */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D46F */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D472 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D475 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D478 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D47B */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D47E */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D481 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D484 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D487 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D48A */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D48D */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D490 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D493 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D496 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D499 */ +0x120F,0x0000,0x0000, 0xFBC3,0xD49D,0x0000, 0x123D,0x0000,0x0000, /* 1D49C */ +0x1250,0x0000,0x0000, 0xFBC3,0xD4A0,0x0000, 0xFBC3,0xD4A1,0x0000, /* 1D49F */ +0x12B0,0x0000,0x0000, 0xFBC3,0xD4A3,0x0000, 0xFBC3,0xD4A4,0x0000, /* 1D4A2 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0xFBC3,0xD4A7,0x0000, /* 1D4A5 */ +0xFBC3,0xD4A8,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D4A8 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0xFBC3,0xD4AD,0x0000, /* 1D4AB */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D4AE */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D4B1 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D4B4 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D4B7 */ +0xFBC3,0xD4BA,0x0000, 0x12A3,0x0000,0x0000, 0xFBC3,0xD4BC,0x0000, /* 1D4BA */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D4BD */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D4C0 */ +0x136D,0x0000,0x0000, 0xFBC3,0xD4C4,0x0000, 0x13B3,0x0000,0x0000, /* 1D4C3 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D4C6 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D4C9 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D4CC */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D4CF */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D4D2 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D4D5 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D4D8 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D4DB */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D4DE */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D4E1 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D4E4 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D4E7 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D4EA */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D4ED */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D4F0 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D4F3 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D4F6 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D4F9 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D4FC */ +0x147B,0x0000,0x0000 }; + +uint16 uca520_p1D5[]= { /* 1D500 (3 weights per char) */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D500 */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D503 */ +0xFBC3,0xD506,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D506 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0xFBC3,0xD50B,0x0000, /* 1D509 */ +0xFBC3,0xD50C,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D50C */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D50F */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D512 */ +0xFBC3,0xD515,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D515 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D518 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0xFBC3,0xD51D,0x0000, /* 1D51B */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D51E */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D521 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D524 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D527 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D52A */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D52D */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D530 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D533 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D536 */ +0x1225,0x0000,0x0000, 0xFBC3,0xD53A,0x0000, 0x1250,0x0000,0x0000, /* 1D539 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D53C */ +0xFBC3,0xD53F,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D53F */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D542 */ +0xFBC3,0xD545,0x0000, 0x138E,0x0000,0x0000, 0xFBC3,0xD547,0x0000, /* 1D545 */ +0xFBC3,0xD548,0x0000, 0xFBC3,0xD549,0x0000, 0x1410,0x0000,0x0000, /* 1D548 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D54B */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D54E */ +0xFBC3,0xD551,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D551 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D554 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D557 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D55A */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D55D */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D560 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D563 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D566 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D569 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D56C */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D56F */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D572 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D575 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D578 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D57B */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D57E */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D581 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D584 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D587 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D58A */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D58D */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D590 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D593 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D596 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D599 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D59C */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D59F */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D5A2 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D5A5 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D5A8 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D5AB */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D5AE */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D5B1 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D5B4 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D5B7 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D5BA */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D5BD */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D5C0 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D5C3 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D5C6 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D5C9 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D5CC */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D5CF */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D5D2 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D5D5 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D5D8 */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D5DB */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D5DE */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D5E1 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D5E4 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D5E7 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D5EA */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D5ED */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D5F0 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D5F3 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D5F6 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D5F9 */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D5FC */ +0x13DA,0x0000,0x0000 }; + +uint16 uca520_p1D6[]= { /* 1D600 (3 weights per char) */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D600 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D603 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D606 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D609 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D60C */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D60F */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D612 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D615 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D618 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D61B */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D61E */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D621 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D624 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D627 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D62A */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D62D */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D630 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D633 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D636 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D639 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D63C */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D63F */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D642 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D645 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D648 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D64B */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D64E */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D651 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D654 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D657 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D65A */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D65D */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D660 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D663 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D666 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D669 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D66C */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D66F */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D672 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D675 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D678 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D67B */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D67E */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D681 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D684 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D687 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D68A */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D68D */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D690 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D693 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D696 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D699 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D69C */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D69F */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x12F0,0x0000,0x0000, /* 1D6A2 */ +0x1309,0x0000,0x0000, 0xFBC3,0xD6A6,0x0000, 0xFBC3,0xD6A7,0x0000, /* 1D6A5 */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D6A8 */ +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D6AB */ +0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D6AE */ +0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D6B1 */ +0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D6B4 */ +0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6B7 */ +0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D6BA */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D6BD */ +0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D6C0 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D6C3 */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D6C6 */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D6C9 */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D6CC */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D6CF */ +0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D6D2 */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D6D5 */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D6D8 */ +0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6DB */ +0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D6DE */ +0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D6E1 */ +0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D6E4 */ +0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6E7 */ +0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D6EA */ +0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D6ED */ +0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D6F0 */ +0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D6F3 */ +0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D6F6 */ +0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, /* 1D6F9 */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D6FC */ +0x1549,0x0000,0x0000 }; + +uint16 uca520_p1D7[]= { /* 1D700 (3 weights per char) */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D700 */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D703 */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D706 */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D709 */ +0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D70C */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D70F */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D712 */ +0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D715 */ +0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D718 */ +0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D71B */ +0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D71E */ +0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D721 */ +0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D724 */ +0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D727 */ +0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D72A */ +0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D72D */ +0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D730 */ +0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, /* 1D733 */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D736 */ +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D739 */ +0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D73C */ +0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D73F */ +0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D742 */ +0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D745 */ +0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D748 */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D74B */ +0x156D,0x0000,0x0000, 0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D74E */ +0x1551,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D751 */ +0x1560,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D754 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D757 */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D75A */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D75D */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D760 */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D763 */ +0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D766 */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D769 */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D76C */ +0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D76F */ +0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D772 */ +0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D775 */ +0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D778 */ +0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D77B */ +0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D77E */ +0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D781 */ +0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D784 */ +0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0542,0x0000,0x0000, /* 1D787 */ +0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D78A */ +0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D78D */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D790 */ +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D793 */ +0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D796 */ +0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D799 */ +0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D79C */ +0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D79F */ +0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D7A2 */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D7A5 */ +0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D7A8 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D7AB */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D7AE */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D7B1 */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D7B4 */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D7B7 */ +0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D7BA */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D7BD */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D7C0 */ +0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D7C3 */ +0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D7C6 */ +0x155B,0x0000,0x0000, 0x154B,0x0000,0x0000, 0x154B,0x0000,0x0000, /* 1D7C9 */ +0xFBC3,0xD7CC,0x0000, 0xFBC3,0xD7CD,0x0000, 0x1205,0x0000,0x0000, /* 1D7CC */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D7CF */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D7D2 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D7D5 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1D7D8 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1D7DB */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1D7DE */ +0x120E,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1D7E1 */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1D7E4 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1D7E7 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1D7EA */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D7ED */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D7F0 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D7F3 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1D7F6 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1D7F9 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1D7FC */ +0x120E,0x0000,0x0000 }; + +uint16 uca520_p1F0[]= { /* 1F000 (3 weights per char) */ +0x1044,0x0000,0x0000, 0x1045,0x0000,0x0000, 0x1046,0x0000,0x0000, /* 1F000 */ +0x1047,0x0000,0x0000, 0x1048,0x0000,0x0000, 0x1049,0x0000,0x0000, /* 1F003 */ +0x104A,0x0000,0x0000, 0x104B,0x0000,0x0000, 0x104C,0x0000,0x0000, /* 1F006 */ +0x104D,0x0000,0x0000, 0x104E,0x0000,0x0000, 0x104F,0x0000,0x0000, /* 1F009 */ +0x1050,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1052,0x0000,0x0000, /* 1F00C */ +0x1053,0x0000,0x0000, 0x1054,0x0000,0x0000, 0x1055,0x0000,0x0000, /* 1F00F */ +0x1056,0x0000,0x0000, 0x1057,0x0000,0x0000, 0x1058,0x0000,0x0000, /* 1F012 */ +0x1059,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105B,0x0000,0x0000, /* 1F015 */ +0x105C,0x0000,0x0000, 0x105D,0x0000,0x0000, 0x105E,0x0000,0x0000, /* 1F018 */ +0x105F,0x0000,0x0000, 0x1060,0x0000,0x0000, 0x1061,0x0000,0x0000, /* 1F01B */ +0x1062,0x0000,0x0000, 0x1063,0x0000,0x0000, 0x1064,0x0000,0x0000, /* 1F01E */ +0x1065,0x0000,0x0000, 0x1066,0x0000,0x0000, 0x1067,0x0000,0x0000, /* 1F021 */ +0x1068,0x0000,0x0000, 0x1069,0x0000,0x0000, 0x106A,0x0000,0x0000, /* 1F024 */ +0x106B,0x0000,0x0000, 0x106C,0x0000,0x0000, 0x106D,0x0000,0x0000, /* 1F027 */ +0x106E,0x0000,0x0000, 0x106F,0x0000,0x0000, 0xFBC3,0xF02C,0x0000, /* 1F02A */ +0xFBC3,0xF02D,0x0000, 0xFBC3,0xF02E,0x0000, 0xFBC3,0xF02F,0x0000, /* 1F02D */ +0x1070,0x0000,0x0000, 0x1071,0x0000,0x0000, 0x1072,0x0000,0x0000, /* 1F030 */ +0x1073,0x0000,0x0000, 0x1074,0x0000,0x0000, 0x1075,0x0000,0x0000, /* 1F033 */ +0x1076,0x0000,0x0000, 0x1077,0x0000,0x0000, 0x1078,0x0000,0x0000, /* 1F036 */ +0x1079,0x0000,0x0000, 0x107A,0x0000,0x0000, 0x107B,0x0000,0x0000, /* 1F039 */ +0x107C,0x0000,0x0000, 0x107D,0x0000,0x0000, 0x107E,0x0000,0x0000, /* 1F03C */ +0x107F,0x0000,0x0000, 0x1080,0x0000,0x0000, 0x1081,0x0000,0x0000, /* 1F03F */ +0x1082,0x0000,0x0000, 0x1083,0x0000,0x0000, 0x1084,0x0000,0x0000, /* 1F042 */ +0x1085,0x0000,0x0000, 0x1086,0x0000,0x0000, 0x1087,0x0000,0x0000, /* 1F045 */ +0x1088,0x0000,0x0000, 0x1089,0x0000,0x0000, 0x108A,0x0000,0x0000, /* 1F048 */ +0x108B,0x0000,0x0000, 0x108C,0x0000,0x0000, 0x108D,0x0000,0x0000, /* 1F04B */ +0x108E,0x0000,0x0000, 0x108F,0x0000,0x0000, 0x1090,0x0000,0x0000, /* 1F04E */ +0x1091,0x0000,0x0000, 0x1092,0x0000,0x0000, 0x1093,0x0000,0x0000, /* 1F051 */ +0x1094,0x0000,0x0000, 0x1095,0x0000,0x0000, 0x1096,0x0000,0x0000, /* 1F054 */ +0x1097,0x0000,0x0000, 0x1098,0x0000,0x0000, 0x1099,0x0000,0x0000, /* 1F057 */ +0x109A,0x0000,0x0000, 0x109B,0x0000,0x0000, 0x109C,0x0000,0x0000, /* 1F05A */ +0x109D,0x0000,0x0000, 0x109E,0x0000,0x0000, 0x109F,0x0000,0x0000, /* 1F05D */ +0x10A0,0x0000,0x0000, 0x10A1,0x0000,0x0000, 0x10A2,0x0000,0x0000, /* 1F060 */ +0x10A3,0x0000,0x0000, 0x10A4,0x0000,0x0000, 0x10A5,0x0000,0x0000, /* 1F063 */ +0x10A6,0x0000,0x0000, 0x10A7,0x0000,0x0000, 0x10A8,0x0000,0x0000, /* 1F066 */ +0x10A9,0x0000,0x0000, 0x10AA,0x0000,0x0000, 0x10AB,0x0000,0x0000, /* 1F069 */ +0x10AC,0x0000,0x0000, 0x10AD,0x0000,0x0000, 0x10AE,0x0000,0x0000, /* 1F06C */ +0x10AF,0x0000,0x0000, 0x10B0,0x0000,0x0000, 0x10B1,0x0000,0x0000, /* 1F06F */ +0x10B2,0x0000,0x0000, 0x10B3,0x0000,0x0000, 0x10B4,0x0000,0x0000, /* 1F072 */ +0x10B5,0x0000,0x0000, 0x10B6,0x0000,0x0000, 0x10B7,0x0000,0x0000, /* 1F075 */ +0x10B8,0x0000,0x0000, 0x10B9,0x0000,0x0000, 0x10BA,0x0000,0x0000, /* 1F078 */ +0x10BB,0x0000,0x0000, 0x10BC,0x0000,0x0000, 0x10BD,0x0000,0x0000, /* 1F07B */ +0x10BE,0x0000,0x0000, 0x10BF,0x0000,0x0000, 0x10C0,0x0000,0x0000, /* 1F07E */ +0x10C1,0x0000,0x0000, 0x10C2,0x0000,0x0000, 0x10C3,0x0000,0x0000, /* 1F081 */ +0x10C4,0x0000,0x0000, 0x10C5,0x0000,0x0000, 0x10C6,0x0000,0x0000, /* 1F084 */ +0x10C7,0x0000,0x0000, 0x10C8,0x0000,0x0000, 0x10C9,0x0000,0x0000, /* 1F087 */ +0x10CA,0x0000,0x0000, 0x10CB,0x0000,0x0000, 0x10CC,0x0000,0x0000, /* 1F08A */ +0x10CD,0x0000,0x0000, 0x10CE,0x0000,0x0000, 0x10CF,0x0000,0x0000, /* 1F08D */ +0x10D0,0x0000,0x0000, 0x10D1,0x0000,0x0000, 0x10D2,0x0000,0x0000, /* 1F090 */ +0x10D3,0x0000,0x0000, 0xFBC3,0xF094,0x0000, 0xFBC3,0xF095,0x0000, /* 1F093 */ +0xFBC3,0xF096,0x0000, 0xFBC3,0xF097,0x0000, 0xFBC3,0xF098,0x0000, /* 1F096 */ +0xFBC3,0xF099,0x0000, 0xFBC3,0xF09A,0x0000, 0xFBC3,0xF09B,0x0000, /* 1F099 */ +0xFBC3,0xF09C,0x0000, 0xFBC3,0xF09D,0x0000, 0xFBC3,0xF09E,0x0000, /* 1F09C */ +0xFBC3,0xF09F,0x0000, 0xFBC3,0xF0A0,0x0000, 0xFBC3,0xF0A1,0x0000, /* 1F09F */ +0xFBC3,0xF0A2,0x0000, 0xFBC3,0xF0A3,0x0000, 0xFBC3,0xF0A4,0x0000, /* 1F0A2 */ +0xFBC3,0xF0A5,0x0000, 0xFBC3,0xF0A6,0x0000, 0xFBC3,0xF0A7,0x0000, /* 1F0A5 */ +0xFBC3,0xF0A8,0x0000, 0xFBC3,0xF0A9,0x0000, 0xFBC3,0xF0AA,0x0000, /* 1F0A8 */ +0xFBC3,0xF0AB,0x0000, 0xFBC3,0xF0AC,0x0000, 0xFBC3,0xF0AD,0x0000, /* 1F0AB */ +0xFBC3,0xF0AE,0x0000, 0xFBC3,0xF0AF,0x0000, 0xFBC3,0xF0B0,0x0000, /* 1F0AE */ +0xFBC3,0xF0B1,0x0000, 0xFBC3,0xF0B2,0x0000, 0xFBC3,0xF0B3,0x0000, /* 1F0B1 */ +0xFBC3,0xF0B4,0x0000, 0xFBC3,0xF0B5,0x0000, 0xFBC3,0xF0B6,0x0000, /* 1F0B4 */ +0xFBC3,0xF0B7,0x0000, 0xFBC3,0xF0B8,0x0000, 0xFBC3,0xF0B9,0x0000, /* 1F0B7 */ +0xFBC3,0xF0BA,0x0000, 0xFBC3,0xF0BB,0x0000, 0xFBC3,0xF0BC,0x0000, /* 1F0BA */ +0xFBC3,0xF0BD,0x0000, 0xFBC3,0xF0BE,0x0000, 0xFBC3,0xF0BF,0x0000, /* 1F0BD */ +0xFBC3,0xF0C0,0x0000, 0xFBC3,0xF0C1,0x0000, 0xFBC3,0xF0C2,0x0000, /* 1F0C0 */ +0xFBC3,0xF0C3,0x0000, 0xFBC3,0xF0C4,0x0000, 0xFBC3,0xF0C5,0x0000, /* 1F0C3 */ +0xFBC3,0xF0C6,0x0000, 0xFBC3,0xF0C7,0x0000, 0xFBC3,0xF0C8,0x0000, /* 1F0C6 */ +0xFBC3,0xF0C9,0x0000, 0xFBC3,0xF0CA,0x0000, 0xFBC3,0xF0CB,0x0000, /* 1F0C9 */ +0xFBC3,0xF0CC,0x0000, 0xFBC3,0xF0CD,0x0000, 0xFBC3,0xF0CE,0x0000, /* 1F0CC */ +0xFBC3,0xF0CF,0x0000, 0xFBC3,0xF0D0,0x0000, 0xFBC3,0xF0D1,0x0000, /* 1F0CF */ +0xFBC3,0xF0D2,0x0000, 0xFBC3,0xF0D3,0x0000, 0xFBC3,0xF0D4,0x0000, /* 1F0D2 */ +0xFBC3,0xF0D5,0x0000, 0xFBC3,0xF0D6,0x0000, 0xFBC3,0xF0D7,0x0000, /* 1F0D5 */ +0xFBC3,0xF0D8,0x0000, 0xFBC3,0xF0D9,0x0000, 0xFBC3,0xF0DA,0x0000, /* 1F0D8 */ +0xFBC3,0xF0DB,0x0000, 0xFBC3,0xF0DC,0x0000, 0xFBC3,0xF0DD,0x0000, /* 1F0DB */ +0xFBC3,0xF0DE,0x0000, 0xFBC3,0xF0DF,0x0000, 0xFBC3,0xF0E0,0x0000, /* 1F0DE */ +0xFBC3,0xF0E1,0x0000, 0xFBC3,0xF0E2,0x0000, 0xFBC3,0xF0E3,0x0000, /* 1F0E1 */ +0xFBC3,0xF0E4,0x0000, 0xFBC3,0xF0E5,0x0000, 0xFBC3,0xF0E6,0x0000, /* 1F0E4 */ +0xFBC3,0xF0E7,0x0000, 0xFBC3,0xF0E8,0x0000, 0xFBC3,0xF0E9,0x0000, /* 1F0E7 */ +0xFBC3,0xF0EA,0x0000, 0xFBC3,0xF0EB,0x0000, 0xFBC3,0xF0EC,0x0000, /* 1F0EA */ +0xFBC3,0xF0ED,0x0000, 0xFBC3,0xF0EE,0x0000, 0xFBC3,0xF0EF,0x0000, /* 1F0ED */ +0xFBC3,0xF0F0,0x0000, 0xFBC3,0xF0F1,0x0000, 0xFBC3,0xF0F2,0x0000, /* 1F0F0 */ +0xFBC3,0xF0F3,0x0000, 0xFBC3,0xF0F4,0x0000, 0xFBC3,0xF0F5,0x0000, /* 1F0F3 */ +0xFBC3,0xF0F6,0x0000, 0xFBC3,0xF0F7,0x0000, 0xFBC3,0xF0F8,0x0000, /* 1F0F6 */ +0xFBC3,0xF0F9,0x0000, 0xFBC3,0xF0FA,0x0000, 0xFBC3,0xF0FB,0x0000, /* 1F0F9 */ +0xFBC3,0xF0FC,0x0000, 0xFBC3,0xF0FD,0x0000, 0xFBC3,0xF0FE,0x0000, /* 1F0FC */ +0xFBC3,0xF0FF,0x0000 }; + +uint16 uca520_p1F1[]= { /* 1F100 (4 weights per char) */ +0x1205,0x0281,0x0000,0x0000, 0x1205,0x0234,0x0000,0x0000, /* 1F100 */ +0x1206,0x0234,0x0000,0x0000, 0x1207,0x0234,0x0000,0x0000, /* 1F102 */ +0x1208,0x0234,0x0000,0x0000, 0x1209,0x0234,0x0000,0x0000, /* 1F104 */ +0x120A,0x0234,0x0000,0x0000, 0x120B,0x0234,0x0000,0x0000, /* 1F106 */ +0x120C,0x0234,0x0000,0x0000, 0x120D,0x0234,0x0000,0x0000, /* 1F108 */ +0x120E,0x0234,0x0000,0x0000, 0xFBC3,0xF10B,0x0000,0x0000, /* 1F10A */ +0xFBC3,0xF10C,0x0000,0x0000, 0xFBC3,0xF10D,0x0000,0x0000, /* 1F10C */ +0xFBC3,0xF10E,0x0000,0x0000, 0xFBC3,0xF10F,0x0000,0x0000, /* 1F10E */ +0x02FF,0x120F,0x0300,0x0000, 0x02FF,0x1225,0x0300,0x0000, /* 1F110 */ +0x02FF,0x123D,0x0300,0x0000, 0x02FF,0x1250,0x0300,0x0000, /* 1F112 */ +0x02FF,0x126B,0x0300,0x0000, 0x02FF,0x12A3,0x0300,0x0000, /* 1F114 */ +0x02FF,0x12B0,0x0300,0x0000, 0x02FF,0x12D3,0x0300,0x0000, /* 1F116 */ +0x02FF,0x12EC,0x0300,0x0000, 0x02FF,0x1305,0x0300,0x0000, /* 1F118 */ +0x02FF,0x131E,0x0300,0x0000, 0x02FF,0x1330,0x0300,0x0000, /* 1F11A */ +0x02FF,0x135F,0x0300,0x0000, 0x02FF,0x136D,0x0300,0x0000, /* 1F11C */ +0x02FF,0x138E,0x0300,0x0000, 0x02FF,0x13B3,0x0300,0x0000, /* 1F11E */ +0x02FF,0x13C8,0x0300,0x0000, 0x02FF,0x13DA,0x0300,0x0000, /* 1F120 */ +0x02FF,0x1410,0x0300,0x0000, 0x02FF,0x1433,0x0300,0x0000, /* 1F122 */ +0x02FF,0x1453,0x0300,0x0000, 0x02FF,0x147B,0x0300,0x0000, /* 1F124 */ +0x02FF,0x148D,0x0300,0x0000, 0x02FF,0x1497,0x0300,0x0000, /* 1F126 */ +0x02FF,0x149C,0x0300,0x0000, 0x02FF,0x14AD,0x0300,0x0000, /* 1F128 */ +0x0347,0x1410,0x0348,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 1F12A */ +0x13DA,0x0000,0x0000,0x0000, 0x123D,0x1250,0x0000,0x0000, /* 1F12C */ +0x148D,0x14AD,0x0000,0x0000, 0xFBC3,0xF12F,0x0000,0x0000, /* 1F12E */ +0xFBC3,0xF130,0x0000,0x0000, 0x1225,0x0000,0x0000,0x0000, /* 1F130 */ +0xFBC3,0xF132,0x0000,0x0000, 0xFBC3,0xF133,0x0000,0x0000, /* 1F132 */ +0xFBC3,0xF134,0x0000,0x0000, 0xFBC3,0xF135,0x0000,0x0000, /* 1F134 */ +0xFBC3,0xF136,0x0000,0x0000, 0xFBC3,0xF137,0x0000,0x0000, /* 1F136 */ +0xFBC3,0xF138,0x0000,0x0000, 0xFBC3,0xF139,0x0000,0x0000, /* 1F138 */ +0xFBC3,0xF13A,0x0000,0x0000, 0xFBC3,0xF13B,0x0000,0x0000, /* 1F13A */ +0xFBC3,0xF13C,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 1F13C */ +0xFBC3,0xF13E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F13E */ +0xFBC3,0xF140,0x0000,0x0000, 0xFBC3,0xF141,0x0000,0x0000, /* 1F140 */ +0x1410,0x0000,0x0000,0x0000, 0xFBC3,0xF143,0x0000,0x0000, /* 1F142 */ +0xFBC3,0xF144,0x0000,0x0000, 0xFBC3,0xF145,0x0000,0x0000, /* 1F144 */ +0x148D,0x0000,0x0000,0x0000, 0xFBC3,0xF147,0x0000,0x0000, /* 1F146 */ +0xFBC3,0xF148,0x0000,0x0000, 0xFBC3,0xF149,0x0000,0x0000, /* 1F148 */ +0x12D3,0x147B,0x0000,0x0000, 0x135F,0x147B,0x0000,0x0000, /* 1F14A */ +0x1410,0x1250,0x0000,0x0000, 0x1410,0x1410,0x0000,0x0000, /* 1F14C */ +0x13B3,0x13B3,0x147B,0x0000, 0xFBC3,0xF14F,0x0000,0x0000, /* 1F14E */ +0xFBC3,0xF150,0x0000,0x0000, 0xFBC3,0xF151,0x0000,0x0000, /* 1F150 */ +0xFBC3,0xF152,0x0000,0x0000, 0xFBC3,0xF153,0x0000,0x0000, /* 1F152 */ +0xFBC3,0xF154,0x0000,0x0000, 0xFBC3,0xF155,0x0000,0x0000, /* 1F154 */ +0xFBC3,0xF156,0x0000,0x0000, 0x12D3,0x0000,0x0000,0x0000, /* 1F156 */ +0xFBC3,0xF158,0x0000,0x0000, 0xFBC3,0xF159,0x0000,0x0000, /* 1F158 */ +0xFBC3,0xF15A,0x0000,0x0000, 0xFBC3,0xF15B,0x0000,0x0000, /* 1F15A */ +0xFBC3,0xF15C,0x0000,0x0000, 0xFBC3,0xF15D,0x0000,0x0000, /* 1F15C */ +0xFBC3,0xF15E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F15E */ +0xFBC3,0xF160,0x0000,0x0000, 0xFBC3,0xF161,0x0000,0x0000, /* 1F160 */ +0xFBC3,0xF162,0x0000,0x0000, 0xFBC3,0xF163,0x0000,0x0000, /* 1F162 */ +0xFBC3,0xF164,0x0000,0x0000, 0xFBC3,0xF165,0x0000,0x0000, /* 1F164 */ +0xFBC3,0xF166,0x0000,0x0000, 0xFBC3,0xF167,0x0000,0x0000, /* 1F166 */ +0xFBC3,0xF168,0x0000,0x0000, 0xFBC3,0xF169,0x0000,0x0000, /* 1F168 */ +0xFBC3,0xF16A,0x0000,0x0000, 0xFBC3,0xF16B,0x0000,0x0000, /* 1F16A */ +0xFBC3,0xF16C,0x0000,0x0000, 0xFBC3,0xF16D,0x0000,0x0000, /* 1F16C */ +0xFBC3,0xF16E,0x0000,0x0000, 0xFBC3,0xF16F,0x0000,0x0000, /* 1F16E */ +0xFBC3,0xF170,0x0000,0x0000, 0xFBC3,0xF171,0x0000,0x0000, /* 1F170 */ +0xFBC3,0xF172,0x0000,0x0000, 0xFBC3,0xF173,0x0000,0x0000, /* 1F172 */ +0xFBC3,0xF174,0x0000,0x0000, 0xFBC3,0xF175,0x0000,0x0000, /* 1F174 */ +0xFBC3,0xF176,0x0000,0x0000, 0xFBC3,0xF177,0x0000,0x0000, /* 1F176 */ +0xFBC3,0xF178,0x0000,0x0000, 0x1305,0x0000,0x0000,0x0000, /* 1F178 */ +0xFBC3,0xF17A,0x0000,0x0000, 0x1330,0x0000,0x0000,0x0000, /* 1F17A */ +0x135F,0x0000,0x0000,0x0000, 0xFBC3,0xF17D,0x0000,0x0000, /* 1F17C */ +0xFBC3,0xF17E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F17E */ +0xFBC3,0xF180,0x0000,0x0000, 0xFBC3,0xF181,0x0000,0x0000, /* 1F180 */ +0xFBC3,0xF182,0x0000,0x0000, 0xFBC3,0xF183,0x0000,0x0000, /* 1F182 */ +0xFBC3,0xF184,0x0000,0x0000, 0xFBC3,0xF185,0x0000,0x0000, /* 1F184 */ +0xFBC3,0xF186,0x0000,0x0000, 0xFBC3,0xF187,0x0000,0x0000, /* 1F186 */ +0xFBC3,0xF188,0x0000,0x0000, 0xFBC3,0xF189,0x0000,0x0000, /* 1F188 */ +0x13B3,0x0000,0x0000,0x0000, 0x12EC,0x123D,0x0000,0x0000, /* 1F18A */ +0x13B3,0x120F,0x0000,0x0000, 0x1410,0x120F,0x0000,0x0000, /* 1F18C */ +0xFBC3,0xF18E,0x0000,0x0000, 0xFBC3,0xF18F,0x0000,0x0000, /* 1F18E */ +0x1250,0x1305,0x0000,0x0000, 0xFBC3,0xF191,0x0000,0x0000, /* 1F190 */ +0xFBC3,0xF192,0x0000,0x0000, 0xFBC3,0xF193,0x0000,0x0000, /* 1F192 */ +0xFBC3,0xF194,0x0000,0x0000, 0xFBC3,0xF195,0x0000,0x0000, /* 1F194 */ +0xFBC3,0xF196,0x0000,0x0000, 0xFBC3,0xF197,0x0000,0x0000, /* 1F196 */ +0xFBC3,0xF198,0x0000,0x0000, 0xFBC3,0xF199,0x0000,0x0000, /* 1F198 */ +0xFBC3,0xF19A,0x0000,0x0000, 0xFBC3,0xF19B,0x0000,0x0000, /* 1F19A */ +0xFBC3,0xF19C,0x0000,0x0000, 0xFBC3,0xF19D,0x0000,0x0000, /* 1F19C */ +0xFBC3,0xF19E,0x0000,0x0000, 0xFBC3,0xF19F,0x0000,0x0000, /* 1F19E */ +0xFBC3,0xF1A0,0x0000,0x0000, 0xFBC3,0xF1A1,0x0000,0x0000, /* 1F1A0 */ +0xFBC3,0xF1A2,0x0000,0x0000, 0xFBC3,0xF1A3,0x0000,0x0000, /* 1F1A2 */ +0xFBC3,0xF1A4,0x0000,0x0000, 0xFBC3,0xF1A5,0x0000,0x0000, /* 1F1A4 */ +0xFBC3,0xF1A6,0x0000,0x0000, 0xFBC3,0xF1A7,0x0000,0x0000, /* 1F1A6 */ +0xFBC3,0xF1A8,0x0000,0x0000, 0xFBC3,0xF1A9,0x0000,0x0000, /* 1F1A8 */ +0xFBC3,0xF1AA,0x0000,0x0000, 0xFBC3,0xF1AB,0x0000,0x0000, /* 1F1AA */ +0xFBC3,0xF1AC,0x0000,0x0000, 0xFBC3,0xF1AD,0x0000,0x0000, /* 1F1AC */ +0xFBC3,0xF1AE,0x0000,0x0000, 0xFBC3,0xF1AF,0x0000,0x0000, /* 1F1AE */ +0xFBC3,0xF1B0,0x0000,0x0000, 0xFBC3,0xF1B1,0x0000,0x0000, /* 1F1B0 */ +0xFBC3,0xF1B2,0x0000,0x0000, 0xFBC3,0xF1B3,0x0000,0x0000, /* 1F1B2 */ +0xFBC3,0xF1B4,0x0000,0x0000, 0xFBC3,0xF1B5,0x0000,0x0000, /* 1F1B4 */ +0xFBC3,0xF1B6,0x0000,0x0000, 0xFBC3,0xF1B7,0x0000,0x0000, /* 1F1B6 */ +0xFBC3,0xF1B8,0x0000,0x0000, 0xFBC3,0xF1B9,0x0000,0x0000, /* 1F1B8 */ +0xFBC3,0xF1BA,0x0000,0x0000, 0xFBC3,0xF1BB,0x0000,0x0000, /* 1F1BA */ +0xFBC3,0xF1BC,0x0000,0x0000, 0xFBC3,0xF1BD,0x0000,0x0000, /* 1F1BC */ +0xFBC3,0xF1BE,0x0000,0x0000, 0xFBC3,0xF1BF,0x0000,0x0000, /* 1F1BE */ +0xFBC3,0xF1C0,0x0000,0x0000, 0xFBC3,0xF1C1,0x0000,0x0000, /* 1F1C0 */ +0xFBC3,0xF1C2,0x0000,0x0000, 0xFBC3,0xF1C3,0x0000,0x0000, /* 1F1C2 */ +0xFBC3,0xF1C4,0x0000,0x0000, 0xFBC3,0xF1C5,0x0000,0x0000, /* 1F1C4 */ +0xFBC3,0xF1C6,0x0000,0x0000, 0xFBC3,0xF1C7,0x0000,0x0000, /* 1F1C6 */ +0xFBC3,0xF1C8,0x0000,0x0000, 0xFBC3,0xF1C9,0x0000,0x0000, /* 1F1C8 */ +0xFBC3,0xF1CA,0x0000,0x0000, 0xFBC3,0xF1CB,0x0000,0x0000, /* 1F1CA */ +0xFBC3,0xF1CC,0x0000,0x0000, 0xFBC3,0xF1CD,0x0000,0x0000, /* 1F1CC */ +0xFBC3,0xF1CE,0x0000,0x0000, 0xFBC3,0xF1CF,0x0000,0x0000, /* 1F1CE */ +0xFBC3,0xF1D0,0x0000,0x0000, 0xFBC3,0xF1D1,0x0000,0x0000, /* 1F1D0 */ +0xFBC3,0xF1D2,0x0000,0x0000, 0xFBC3,0xF1D3,0x0000,0x0000, /* 1F1D2 */ +0xFBC3,0xF1D4,0x0000,0x0000, 0xFBC3,0xF1D5,0x0000,0x0000, /* 1F1D4 */ +0xFBC3,0xF1D6,0x0000,0x0000, 0xFBC3,0xF1D7,0x0000,0x0000, /* 1F1D6 */ +0xFBC3,0xF1D8,0x0000,0x0000, 0xFBC3,0xF1D9,0x0000,0x0000, /* 1F1D8 */ +0xFBC3,0xF1DA,0x0000,0x0000, 0xFBC3,0xF1DB,0x0000,0x0000, /* 1F1DA */ +0xFBC3,0xF1DC,0x0000,0x0000, 0xFBC3,0xF1DD,0x0000,0x0000, /* 1F1DC */ +0xFBC3,0xF1DE,0x0000,0x0000, 0xFBC3,0xF1DF,0x0000,0x0000, /* 1F1DE */ +0xFBC3,0xF1E0,0x0000,0x0000, 0xFBC3,0xF1E1,0x0000,0x0000, /* 1F1E0 */ +0xFBC3,0xF1E2,0x0000,0x0000, 0xFBC3,0xF1E3,0x0000,0x0000, /* 1F1E2 */ +0xFBC3,0xF1E4,0x0000,0x0000, 0xFBC3,0xF1E5,0x0000,0x0000, /* 1F1E4 */ +0xFBC3,0xF1E6,0x0000,0x0000, 0xFBC3,0xF1E7,0x0000,0x0000, /* 1F1E6 */ +0xFBC3,0xF1E8,0x0000,0x0000, 0xFBC3,0xF1E9,0x0000,0x0000, /* 1F1E8 */ +0xFBC3,0xF1EA,0x0000,0x0000, 0xFBC3,0xF1EB,0x0000,0x0000, /* 1F1EA */ +0xFBC3,0xF1EC,0x0000,0x0000, 0xFBC3,0xF1ED,0x0000,0x0000, /* 1F1EC */ +0xFBC3,0xF1EE,0x0000,0x0000, 0xFBC3,0xF1EF,0x0000,0x0000, /* 1F1EE */ +0xFBC3,0xF1F0,0x0000,0x0000, 0xFBC3,0xF1F1,0x0000,0x0000, /* 1F1F0 */ +0xFBC3,0xF1F2,0x0000,0x0000, 0xFBC3,0xF1F3,0x0000,0x0000, /* 1F1F2 */ +0xFBC3,0xF1F4,0x0000,0x0000, 0xFBC3,0xF1F5,0x0000,0x0000, /* 1F1F4 */ +0xFBC3,0xF1F6,0x0000,0x0000, 0xFBC3,0xF1F7,0x0000,0x0000, /* 1F1F6 */ +0xFBC3,0xF1F8,0x0000,0x0000, 0xFBC3,0xF1F9,0x0000,0x0000, /* 1F1F8 */ +0xFBC3,0xF1FA,0x0000,0x0000, 0xFBC3,0xF1FB,0x0000,0x0000, /* 1F1FA */ +0xFBC3,0xF1FC,0x0000,0x0000, 0xFBC3,0xF1FD,0x0000,0x0000, /* 1F1FC */ +0xFBC3,0xF1FE,0x0000,0x0000, 0xFBC3,0xF1FF,0x0000,0x0000 /* 1F1FE */ +}; + +uint16 uca520_p1F2[]= { /* 1F200 (5 weights per char) */ +0x2B32,0x2B1A,0x0000,0x0000,0x0000, /* 1F200 */ +0xFBC3,0xF201,0x0000,0x0000,0x0000, /* 1F201 */ +0xFBC3,0xF202,0x0000,0x0000,0x0000, /* 1F202 */ +0xFBC3,0xF203,0x0000,0x0000,0x0000, /* 1F203 */ +0xFBC3,0xF204,0x0000,0x0000,0x0000, /* 1F204 */ +0xFBC3,0xF205,0x0000,0x0000,0x0000, /* 1F205 */ +0xFBC3,0xF206,0x0000,0x0000,0x0000, /* 1F206 */ +0xFBC3,0xF207,0x0000,0x0000,0x0000, /* 1F207 */ +0xFBC3,0xF208,0x0000,0x0000,0x0000, /* 1F208 */ +0xFBC3,0xF209,0x0000,0x0000,0x0000, /* 1F209 */ +0xFBC3,0xF20A,0x0000,0x0000,0x0000, /* 1F20A */ +0xFBC3,0xF20B,0x0000,0x0000,0x0000, /* 1F20B */ +0xFBC3,0xF20C,0x0000,0x0000,0x0000, /* 1F20C */ +0xFBC3,0xF20D,0x0000,0x0000,0x0000, /* 1F20D */ +0xFBC3,0xF20E,0x0000,0x0000,0x0000, /* 1F20E */ +0xFBC3,0xF20F,0x0000,0x0000,0x0000, /* 1F20F */ +0xFB40,0xE24B,0x0000,0x0000,0x0000, /* 1F210 */ +0xFB40,0xDB57,0x0000,0x0000,0x0000, /* 1F211 */ +0xFB40,0xD3CC,0x0000,0x0000,0x0000, /* 1F212 */ +0x2B27,0x0000,0x0000,0x0000,0x0000, /* 1F213 */ +0xFB40,0xCE8C,0x0000,0x0000,0x0000, /* 1F214 */ +0xFB40,0xD91A,0x0000,0x0000,0x0000, /* 1F215 */ +0xFB41,0x89E3,0x0000,0x0000,0x0000, /* 1F216 */ +0xFB40,0xD929,0x0000,0x0000,0x0000, /* 1F217 */ +0xFB40,0xCEA4,0x0000,0x0000,0x0000, /* 1F218 */ +0xFB40,0xE620,0x0000,0x0000,0x0000, /* 1F219 */ +0xFB40,0xF121,0x0000,0x0000,0x0000, /* 1F21A */ +0xFB40,0xE599,0x0000,0x0000,0x0000, /* 1F21B */ +0xFB40,0xD24D,0x0000,0x0000,0x0000, /* 1F21C */ +0xFB40,0xDF8C,0x0000,0x0000,0x0000, /* 1F21D */ +0xFB40,0xD18D,0x0000,0x0000,0x0000, /* 1F21E */ +0xFB40,0xE5B0,0x0000,0x0000,0x0000, /* 1F21F */ +0xFB40,0xD21D,0x0000,0x0000,0x0000, /* 1F220 */ +0xFB40,0xFD42,0x0000,0x0000,0x0000, /* 1F221 */ +0xFB40,0xF51F,0x0000,0x0000,0x0000, /* 1F222 */ +0xFB41,0x8CA9,0x0000,0x0000,0x0000, /* 1F223 */ +0xFB40,0xD8F0,0x0000,0x0000,0x0000, /* 1F224 */ +0xFB40,0xD439,0x0000,0x0000,0x0000, /* 1F225 */ +0xFB40,0xEF14,0x0000,0x0000,0x0000, /* 1F226 */ +0xFB40,0xE295,0x0000,0x0000,0x0000, /* 1F227 */ +0xFB40,0xE355,0x0000,0x0000,0x0000, /* 1F228 */ +0xFB40,0xCE00,0x0000,0x0000,0x0000, /* 1F229 */ +0xFB40,0xCE09,0x0000,0x0000,0x0000, /* 1F22A */ +0xFB41,0x904A,0x0000,0x0000,0x0000, /* 1F22B */ +0xFB40,0xDDE6,0x0000,0x0000,0x0000, /* 1F22C */ +0xFB40,0xCE2D,0x0000,0x0000,0x0000, /* 1F22D */ +0xFB40,0xD3F3,0x0000,0x0000,0x0000, /* 1F22E */ +0xFB40,0xE307,0x0000,0x0000,0x0000, /* 1F22F */ +0xFB41,0x8D70,0x0000,0x0000,0x0000, /* 1F230 */ +0xFB40,0xE253,0x0000,0x0000,0x0000, /* 1F231 */ +0xFBC3,0xF232,0x0000,0x0000,0x0000, /* 1F232 */ +0xFBC3,0xF233,0x0000,0x0000,0x0000, /* 1F233 */ +0xFBC3,0xF234,0x0000,0x0000,0x0000, /* 1F234 */ +0xFBC3,0xF235,0x0000,0x0000,0x0000, /* 1F235 */ +0xFBC3,0xF236,0x0000,0x0000,0x0000, /* 1F236 */ +0xFBC3,0xF237,0x0000,0x0000,0x0000, /* 1F237 */ +0xFBC3,0xF238,0x0000,0x0000,0x0000, /* 1F238 */ +0xFBC3,0xF239,0x0000,0x0000,0x0000, /* 1F239 */ +0xFBC3,0xF23A,0x0000,0x0000,0x0000, /* 1F23A */ +0xFBC3,0xF23B,0x0000,0x0000,0x0000, /* 1F23B */ +0xFBC3,0xF23C,0x0000,0x0000,0x0000, /* 1F23C */ +0xFBC3,0xF23D,0x0000,0x0000,0x0000, /* 1F23D */ +0xFBC3,0xF23E,0x0000,0x0000,0x0000, /* 1F23E */ +0xFBC3,0xF23F,0x0000,0x0000,0x0000, /* 1F23F */ +0x0347,0xFB40,0xE72C,0x0348,0x0000, /* 1F240 */ +0x0347,0xFB40,0xCE09,0x0348,0x0000, /* 1F241 */ +0x0347,0xFB40,0xCE8C,0x0348,0x0000, /* 1F242 */ +0x0347,0xFB40,0xDB89,0x0348,0x0000, /* 1F243 */ +0x0347,0xFB40,0xF0B9,0x0348,0x0000, /* 1F244 */ +0x0347,0xFB40,0xE253,0x0348,0x0000, /* 1F245 */ +0x0347,0xFB40,0xF6D7,0x0348,0x0000, /* 1F246 */ +0x0347,0xFB40,0xD2DD,0x0348,0x0000, /* 1F247 */ +0x0347,0xFB40,0xE557,0x0348,0x0000, /* 1F248 */ +0xFBC3,0xF249,0x0000,0x0000,0x0000, /* 1F249 */ +0xFBC3,0xF24A,0x0000,0x0000,0x0000, /* 1F24A */ +0xFBC3,0xF24B,0x0000,0x0000,0x0000, /* 1F24B */ +0xFBC3,0xF24C,0x0000,0x0000,0x0000, /* 1F24C */ +0xFBC3,0xF24D,0x0000,0x0000,0x0000, /* 1F24D */ +0xFBC3,0xF24E,0x0000,0x0000,0x0000, /* 1F24E */ +0xFBC3,0xF24F,0x0000,0x0000,0x0000, /* 1F24F */ +0xFBC3,0xF250,0x0000,0x0000,0x0000, /* 1F250 */ +0xFBC3,0xF251,0x0000,0x0000,0x0000, /* 1F251 */ +0xFBC3,0xF252,0x0000,0x0000,0x0000, /* 1F252 */ +0xFBC3,0xF253,0x0000,0x0000,0x0000, /* 1F253 */ +0xFBC3,0xF254,0x0000,0x0000,0x0000, /* 1F254 */ +0xFBC3,0xF255,0x0000,0x0000,0x0000, /* 1F255 */ +0xFBC3,0xF256,0x0000,0x0000,0x0000, /* 1F256 */ +0xFBC3,0xF257,0x0000,0x0000,0x0000, /* 1F257 */ +0xFBC3,0xF258,0x0000,0x0000,0x0000, /* 1F258 */ +0xFBC3,0xF259,0x0000,0x0000,0x0000, /* 1F259 */ +0xFBC3,0xF25A,0x0000,0x0000,0x0000, /* 1F25A */ +0xFBC3,0xF25B,0x0000,0x0000,0x0000, /* 1F25B */ +0xFBC3,0xF25C,0x0000,0x0000,0x0000, /* 1F25C */ +0xFBC3,0xF25D,0x0000,0x0000,0x0000, /* 1F25D */ +0xFBC3,0xF25E,0x0000,0x0000,0x0000, /* 1F25E */ +0xFBC3,0xF25F,0x0000,0x0000,0x0000, /* 1F25F */ +0xFBC3,0xF260,0x0000,0x0000,0x0000, /* 1F260 */ +0xFBC3,0xF261,0x0000,0x0000,0x0000, /* 1F261 */ +0xFBC3,0xF262,0x0000,0x0000,0x0000, /* 1F262 */ +0xFBC3,0xF263,0x0000,0x0000,0x0000, /* 1F263 */ +0xFBC3,0xF264,0x0000,0x0000,0x0000, /* 1F264 */ +0xFBC3,0xF265,0x0000,0x0000,0x0000, /* 1F265 */ +0xFBC3,0xF266,0x0000,0x0000,0x0000, /* 1F266 */ +0xFBC3,0xF267,0x0000,0x0000,0x0000, /* 1F267 */ +0xFBC3,0xF268,0x0000,0x0000,0x0000, /* 1F268 */ +0xFBC3,0xF269,0x0000,0x0000,0x0000, /* 1F269 */ +0xFBC3,0xF26A,0x0000,0x0000,0x0000, /* 1F26A */ +0xFBC3,0xF26B,0x0000,0x0000,0x0000, /* 1F26B */ +0xFBC3,0xF26C,0x0000,0x0000,0x0000, /* 1F26C */ +0xFBC3,0xF26D,0x0000,0x0000,0x0000, /* 1F26D */ +0xFBC3,0xF26E,0x0000,0x0000,0x0000, /* 1F26E */ +0xFBC3,0xF26F,0x0000,0x0000,0x0000, /* 1F26F */ +0xFBC3,0xF270,0x0000,0x0000,0x0000, /* 1F270 */ +0xFBC3,0xF271,0x0000,0x0000,0x0000, /* 1F271 */ +0xFBC3,0xF272,0x0000,0x0000,0x0000, /* 1F272 */ +0xFBC3,0xF273,0x0000,0x0000,0x0000, /* 1F273 */ +0xFBC3,0xF274,0x0000,0x0000,0x0000, /* 1F274 */ +0xFBC3,0xF275,0x0000,0x0000,0x0000, /* 1F275 */ +0xFBC3,0xF276,0x0000,0x0000,0x0000, /* 1F276 */ +0xFBC3,0xF277,0x0000,0x0000,0x0000, /* 1F277 */ +0xFBC3,0xF278,0x0000,0x0000,0x0000, /* 1F278 */ +0xFBC3,0xF279,0x0000,0x0000,0x0000, /* 1F279 */ +0xFBC3,0xF27A,0x0000,0x0000,0x0000, /* 1F27A */ +0xFBC3,0xF27B,0x0000,0x0000,0x0000, /* 1F27B */ +0xFBC3,0xF27C,0x0000,0x0000,0x0000, /* 1F27C */ +0xFBC3,0xF27D,0x0000,0x0000,0x0000, /* 1F27D */ +0xFBC3,0xF27E,0x0000,0x0000,0x0000, /* 1F27E */ +0xFBC3,0xF27F,0x0000,0x0000,0x0000, /* 1F27F */ +0xFBC3,0xF280,0x0000,0x0000,0x0000, /* 1F280 */ +0xFBC3,0xF281,0x0000,0x0000,0x0000, /* 1F281 */ +0xFBC3,0xF282,0x0000,0x0000,0x0000, /* 1F282 */ +0xFBC3,0xF283,0x0000,0x0000,0x0000, /* 1F283 */ +0xFBC3,0xF284,0x0000,0x0000,0x0000, /* 1F284 */ +0xFBC3,0xF285,0x0000,0x0000,0x0000, /* 1F285 */ +0xFBC3,0xF286,0x0000,0x0000,0x0000, /* 1F286 */ +0xFBC3,0xF287,0x0000,0x0000,0x0000, /* 1F287 */ +0xFBC3,0xF288,0x0000,0x0000,0x0000, /* 1F288 */ +0xFBC3,0xF289,0x0000,0x0000,0x0000, /* 1F289 */ +0xFBC3,0xF28A,0x0000,0x0000,0x0000, /* 1F28A */ +0xFBC3,0xF28B,0x0000,0x0000,0x0000, /* 1F28B */ +0xFBC3,0xF28C,0x0000,0x0000,0x0000, /* 1F28C */ +0xFBC3,0xF28D,0x0000,0x0000,0x0000, /* 1F28D */ +0xFBC3,0xF28E,0x0000,0x0000,0x0000, /* 1F28E */ +0xFBC3,0xF28F,0x0000,0x0000,0x0000, /* 1F28F */ +0xFBC3,0xF290,0x0000,0x0000,0x0000, /* 1F290 */ +0xFBC3,0xF291,0x0000,0x0000,0x0000, /* 1F291 */ +0xFBC3,0xF292,0x0000,0x0000,0x0000, /* 1F292 */ +0xFBC3,0xF293,0x0000,0x0000,0x0000, /* 1F293 */ +0xFBC3,0xF294,0x0000,0x0000,0x0000, /* 1F294 */ +0xFBC3,0xF295,0x0000,0x0000,0x0000, /* 1F295 */ +0xFBC3,0xF296,0x0000,0x0000,0x0000, /* 1F296 */ +0xFBC3,0xF297,0x0000,0x0000,0x0000, /* 1F297 */ +0xFBC3,0xF298,0x0000,0x0000,0x0000, /* 1F298 */ +0xFBC3,0xF299,0x0000,0x0000,0x0000, /* 1F299 */ +0xFBC3,0xF29A,0x0000,0x0000,0x0000, /* 1F29A */ +0xFBC3,0xF29B,0x0000,0x0000,0x0000, /* 1F29B */ +0xFBC3,0xF29C,0x0000,0x0000,0x0000, /* 1F29C */ +0xFBC3,0xF29D,0x0000,0x0000,0x0000, /* 1F29D */ +0xFBC3,0xF29E,0x0000,0x0000,0x0000, /* 1F29E */ +0xFBC3,0xF29F,0x0000,0x0000,0x0000, /* 1F29F */ +0xFBC3,0xF2A0,0x0000,0x0000,0x0000, /* 1F2A0 */ +0xFBC3,0xF2A1,0x0000,0x0000,0x0000, /* 1F2A1 */ +0xFBC3,0xF2A2,0x0000,0x0000,0x0000, /* 1F2A2 */ +0xFBC3,0xF2A3,0x0000,0x0000,0x0000, /* 1F2A3 */ +0xFBC3,0xF2A4,0x0000,0x0000,0x0000, /* 1F2A4 */ +0xFBC3,0xF2A5,0x0000,0x0000,0x0000, /* 1F2A5 */ +0xFBC3,0xF2A6,0x0000,0x0000,0x0000, /* 1F2A6 */ +0xFBC3,0xF2A7,0x0000,0x0000,0x0000, /* 1F2A7 */ +0xFBC3,0xF2A8,0x0000,0x0000,0x0000, /* 1F2A8 */ +0xFBC3,0xF2A9,0x0000,0x0000,0x0000, /* 1F2A9 */ +0xFBC3,0xF2AA,0x0000,0x0000,0x0000, /* 1F2AA */ +0xFBC3,0xF2AB,0x0000,0x0000,0x0000, /* 1F2AB */ +0xFBC3,0xF2AC,0x0000,0x0000,0x0000, /* 1F2AC */ +0xFBC3,0xF2AD,0x0000,0x0000,0x0000, /* 1F2AD */ +0xFBC3,0xF2AE,0x0000,0x0000,0x0000, /* 1F2AE */ +0xFBC3,0xF2AF,0x0000,0x0000,0x0000, /* 1F2AF */ +0xFBC3,0xF2B0,0x0000,0x0000,0x0000, /* 1F2B0 */ +0xFBC3,0xF2B1,0x0000,0x0000,0x0000, /* 1F2B1 */ +0xFBC3,0xF2B2,0x0000,0x0000,0x0000, /* 1F2B2 */ +0xFBC3,0xF2B3,0x0000,0x0000,0x0000, /* 1F2B3 */ +0xFBC3,0xF2B4,0x0000,0x0000,0x0000, /* 1F2B4 */ +0xFBC3,0xF2B5,0x0000,0x0000,0x0000, /* 1F2B5 */ +0xFBC3,0xF2B6,0x0000,0x0000,0x0000, /* 1F2B6 */ +0xFBC3,0xF2B7,0x0000,0x0000,0x0000, /* 1F2B7 */ +0xFBC3,0xF2B8,0x0000,0x0000,0x0000, /* 1F2B8 */ +0xFBC3,0xF2B9,0x0000,0x0000,0x0000, /* 1F2B9 */ +0xFBC3,0xF2BA,0x0000,0x0000,0x0000, /* 1F2BA */ +0xFBC3,0xF2BB,0x0000,0x0000,0x0000, /* 1F2BB */ +0xFBC3,0xF2BC,0x0000,0x0000,0x0000, /* 1F2BC */ +0xFBC3,0xF2BD,0x0000,0x0000,0x0000, /* 1F2BD */ +0xFBC3,0xF2BE,0x0000,0x0000,0x0000, /* 1F2BE */ +0xFBC3,0xF2BF,0x0000,0x0000,0x0000, /* 1F2BF */ +0xFBC3,0xF2C0,0x0000,0x0000,0x0000, /* 1F2C0 */ +0xFBC3,0xF2C1,0x0000,0x0000,0x0000, /* 1F2C1 */ +0xFBC3,0xF2C2,0x0000,0x0000,0x0000, /* 1F2C2 */ +0xFBC3,0xF2C3,0x0000,0x0000,0x0000, /* 1F2C3 */ +0xFBC3,0xF2C4,0x0000,0x0000,0x0000, /* 1F2C4 */ +0xFBC3,0xF2C5,0x0000,0x0000,0x0000, /* 1F2C5 */ +0xFBC3,0xF2C6,0x0000,0x0000,0x0000, /* 1F2C6 */ +0xFBC3,0xF2C7,0x0000,0x0000,0x0000, /* 1F2C7 */ +0xFBC3,0xF2C8,0x0000,0x0000,0x0000, /* 1F2C8 */ +0xFBC3,0xF2C9,0x0000,0x0000,0x0000, /* 1F2C9 */ +0xFBC3,0xF2CA,0x0000,0x0000,0x0000, /* 1F2CA */ +0xFBC3,0xF2CB,0x0000,0x0000,0x0000, /* 1F2CB */ +0xFBC3,0xF2CC,0x0000,0x0000,0x0000, /* 1F2CC */ +0xFBC3,0xF2CD,0x0000,0x0000,0x0000, /* 1F2CD */ +0xFBC3,0xF2CE,0x0000,0x0000,0x0000, /* 1F2CE */ +0xFBC3,0xF2CF,0x0000,0x0000,0x0000, /* 1F2CF */ +0xFBC3,0xF2D0,0x0000,0x0000,0x0000, /* 1F2D0 */ +0xFBC3,0xF2D1,0x0000,0x0000,0x0000, /* 1F2D1 */ +0xFBC3,0xF2D2,0x0000,0x0000,0x0000, /* 1F2D2 */ +0xFBC3,0xF2D3,0x0000,0x0000,0x0000, /* 1F2D3 */ +0xFBC3,0xF2D4,0x0000,0x0000,0x0000, /* 1F2D4 */ +0xFBC3,0xF2D5,0x0000,0x0000,0x0000, /* 1F2D5 */ +0xFBC3,0xF2D6,0x0000,0x0000,0x0000, /* 1F2D6 */ +0xFBC3,0xF2D7,0x0000,0x0000,0x0000, /* 1F2D7 */ +0xFBC3,0xF2D8,0x0000,0x0000,0x0000, /* 1F2D8 */ +0xFBC3,0xF2D9,0x0000,0x0000,0x0000, /* 1F2D9 */ +0xFBC3,0xF2DA,0x0000,0x0000,0x0000, /* 1F2DA */ +0xFBC3,0xF2DB,0x0000,0x0000,0x0000, /* 1F2DB */ +0xFBC3,0xF2DC,0x0000,0x0000,0x0000, /* 1F2DC */ +0xFBC3,0xF2DD,0x0000,0x0000,0x0000, /* 1F2DD */ +0xFBC3,0xF2DE,0x0000,0x0000,0x0000, /* 1F2DE */ +0xFBC3,0xF2DF,0x0000,0x0000,0x0000, /* 1F2DF */ +0xFBC3,0xF2E0,0x0000,0x0000,0x0000, /* 1F2E0 */ +0xFBC3,0xF2E1,0x0000,0x0000,0x0000, /* 1F2E1 */ +0xFBC3,0xF2E2,0x0000,0x0000,0x0000, /* 1F2E2 */ +0xFBC3,0xF2E3,0x0000,0x0000,0x0000, /* 1F2E3 */ +0xFBC3,0xF2E4,0x0000,0x0000,0x0000, /* 1F2E4 */ +0xFBC3,0xF2E5,0x0000,0x0000,0x0000, /* 1F2E5 */ +0xFBC3,0xF2E6,0x0000,0x0000,0x0000, /* 1F2E6 */ +0xFBC3,0xF2E7,0x0000,0x0000,0x0000, /* 1F2E7 */ +0xFBC3,0xF2E8,0x0000,0x0000,0x0000, /* 1F2E8 */ +0xFBC3,0xF2E9,0x0000,0x0000,0x0000, /* 1F2E9 */ +0xFBC3,0xF2EA,0x0000,0x0000,0x0000, /* 1F2EA */ +0xFBC3,0xF2EB,0x0000,0x0000,0x0000, /* 1F2EB */ +0xFBC3,0xF2EC,0x0000,0x0000,0x0000, /* 1F2EC */ +0xFBC3,0xF2ED,0x0000,0x0000,0x0000, /* 1F2ED */ +0xFBC3,0xF2EE,0x0000,0x0000,0x0000, /* 1F2EE */ +0xFBC3,0xF2EF,0x0000,0x0000,0x0000, /* 1F2EF */ +0xFBC3,0xF2F0,0x0000,0x0000,0x0000, /* 1F2F0 */ +0xFBC3,0xF2F1,0x0000,0x0000,0x0000, /* 1F2F1 */ +0xFBC3,0xF2F2,0x0000,0x0000,0x0000, /* 1F2F2 */ +0xFBC3,0xF2F3,0x0000,0x0000,0x0000, /* 1F2F3 */ +0xFBC3,0xF2F4,0x0000,0x0000,0x0000, /* 1F2F4 */ +0xFBC3,0xF2F5,0x0000,0x0000,0x0000, /* 1F2F5 */ +0xFBC3,0xF2F6,0x0000,0x0000,0x0000, /* 1F2F6 */ +0xFBC3,0xF2F7,0x0000,0x0000,0x0000, /* 1F2F7 */ +0xFBC3,0xF2F8,0x0000,0x0000,0x0000, /* 1F2F8 */ +0xFBC3,0xF2F9,0x0000,0x0000,0x0000, /* 1F2F9 */ +0xFBC3,0xF2FA,0x0000,0x0000,0x0000, /* 1F2FA */ +0xFBC3,0xF2FB,0x0000,0x0000,0x0000, /* 1F2FB */ +0xFBC3,0xF2FC,0x0000,0x0000,0x0000, /* 1F2FC */ +0xFBC3,0xF2FD,0x0000,0x0000,0x0000, /* 1F2FD */ +0xFBC3,0xF2FE,0x0000,0x0000,0x0000, /* 1F2FE */ +0xFBC3,0xF2FF,0x0000,0x0000,0x0000 /* 1F2FF */ +}; + +uint16 uca520_p2F8[]= { /* 2F800 (3 weights per char) */ +0xFB40,0xCE3D,0x0000, 0xFB40,0xCE38,0x0000, 0xFB40,0xCE41,0x0000, /* 2F800 */ +0xFB84,0x8122,0x0000, 0xFB40,0xCF60,0x0000, 0xFB40,0xCFAE,0x0000, /* 2F803 */ +0xFB40,0xCFBB,0x0000, 0xFB40,0xD002,0x0000, 0xFB40,0xD07A,0x0000, /* 2F806 */ +0xFB40,0xD099,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD0CF,0x0000, /* 2F809 */ +0xFB80,0xB49E,0x0000, 0xFB84,0x863A,0x0000, 0xFB40,0xD14D,0x0000, /* 2F80C */ +0xFB40,0xD154,0x0000, 0xFB40,0xD164,0x0000, 0xFB40,0xD177,0x0000, /* 2F80F */ +0xFB84,0x851C,0x0000, 0xFB80,0xB4B9,0x0000, 0xFB40,0xD167,0x0000, /* 2F812 */ +0xFB40,0xD18D,0x0000, 0xFB84,0x854B,0x0000, 0xFB40,0xD197,0x0000, /* 2F815 */ +0xFB40,0xD1A4,0x0000, 0xFB40,0xCECC,0x0000, 0xFB40,0xD1AC,0x0000, /* 2F818 */ +0xFB40,0xD1B5,0x0000, 0xFB85,0x91DF,0x0000, 0xFB40,0xD1F5,0x0000, /* 2F81B */ +0xFB40,0xD203,0x0000, 0xFB80,0xB4DF,0x0000, 0xFB40,0xD23B,0x0000, /* 2F81E */ +0xFB40,0xD246,0x0000, 0xFB40,0xD272,0x0000, 0xFB40,0xD277,0x0000, /* 2F821 */ +0xFB80,0xB515,0x0000, 0xFB40,0xD2C7,0x0000, 0xFB40,0xD2C9,0x0000, /* 2F824 */ +0xFB40,0xD2E4,0x0000, 0xFB40,0xD2FA,0x0000, 0xFB40,0xD305,0x0000, /* 2F827 */ +0xFB40,0xD306,0x0000, 0xFB40,0xD317,0x0000, 0xFB40,0xD349,0x0000, /* 2F82A */ +0xFB40,0xD351,0x0000, 0xFB40,0xD35A,0x0000, 0xFB40,0xD373,0x0000, /* 2F82D */ +0xFB40,0xD37D,0x0000, 0xFB40,0xD37F,0x0000, 0xFB40,0xD37F,0x0000, /* 2F830 */ +0xFB40,0xD37F,0x0000, 0xFB84,0x8A2C,0x0000, 0xFB40,0xF070,0x0000, /* 2F833 */ +0xFB40,0xD3CA,0x0000, 0xFB40,0xD3DF,0x0000, 0xFB84,0x8B63,0x0000, /* 2F836 */ +0xFB40,0xD3EB,0x0000, 0xFB40,0xD3F1,0x0000, 0xFB40,0xD406,0x0000, /* 2F839 */ +0xFB40,0xD49E,0x0000, 0xFB40,0xD438,0x0000, 0xFB40,0xD448,0x0000, /* 2F83C */ +0xFB40,0xD468,0x0000, 0xFB40,0xD4A2,0x0000, 0xFB40,0xD4F6,0x0000, /* 2F83F */ +0xFB40,0xD510,0x0000, 0xFB40,0xD553,0x0000, 0xFB40,0xD563,0x0000, /* 2F842 */ +0xFB40,0xD584,0x0000, 0xFB40,0xD584,0x0000, 0xFB40,0xD599,0x0000, /* 2F845 */ +0xFB40,0xD5AB,0x0000, 0xFB40,0xD5B3,0x0000, 0xFB40,0xD5C2,0x0000, /* 2F848 */ +0xFB40,0xD716,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD717,0x0000, /* 2F84B */ +0xFB40,0xD651,0x0000, 0xFB40,0xD674,0x0000, 0xFB40,0xD207,0x0000, /* 2F84E */ +0xFB40,0xD8EE,0x0000, 0xFB40,0xD7CE,0x0000, 0xFB40,0xD7F4,0x0000, /* 2F851 */ +0xFB40,0xD80D,0x0000, 0xFB40,0xD78B,0x0000, 0xFB40,0xD832,0x0000, /* 2F854 */ +0xFB40,0xD831,0x0000, 0xFB40,0xD8AC,0x0000, 0xFB84,0x94E4,0x0000, /* 2F857 */ +0xFB40,0xD8F2,0x0000, 0xFB40,0xD8F7,0x0000, 0xFB40,0xD906,0x0000, /* 2F85A */ +0xFB40,0xD91A,0x0000, 0xFB40,0xD922,0x0000, 0xFB40,0xD962,0x0000, /* 2F85D */ +0xFB84,0x96A8,0x0000, 0xFB84,0x96EA,0x0000, 0xFB40,0xD9EC,0x0000, /* 2F860 */ +0xFB40,0xDA1B,0x0000, 0xFB40,0xDA27,0x0000, 0xFB40,0xD9D8,0x0000, /* 2F863 */ +0xFB40,0xDA66,0x0000, 0xFB80,0xB6EE,0x0000, 0xFB80,0xB6FC,0x0000, /* 2F866 */ +0xFB40,0xDB08,0x0000, 0xFB40,0xDB3E,0x0000, 0xFB40,0xDB3E,0x0000, /* 2F869 */ +0xFB84,0x99C8,0x0000, 0xFB40,0xDBC3,0x0000, 0xFB40,0xDBD8,0x0000, /* 2F86C */ +0xFB40,0xDBE7,0x0000, 0xFB40,0xDBF3,0x0000, 0xFB84,0x9B18,0x0000, /* 2F86F */ +0xFB40,0xDBFF,0x0000, 0xFB40,0xDC06,0x0000, 0xFB40,0xDF53,0x0000, /* 2F872 */ +0xFB40,0xDC22,0x0000, 0xFB80,0xB781,0x0000, 0xFB40,0xDC60,0x0000, /* 2F875 */ +0xFB40,0xDC6E,0x0000, 0xFB40,0xDCC0,0x0000, 0xFB40,0xDC8D,0x0000, /* 2F878 */ +0xFB84,0x9DE4,0x0000, 0xFB40,0xDD43,0x0000, 0xFB84,0x9DE6,0x0000, /* 2F87B */ +0xFB40,0xDD6E,0x0000, 0xFB40,0xDD6B,0x0000, 0xFB40,0xDD7C,0x0000, /* 2F87E */ +0xFB40,0xDDE1,0x0000, 0xFB40,0xDDE2,0x0000, 0xFB80,0xB82F,0x0000, /* 2F881 */ +0xFB40,0xDDFD,0x0000, 0xFB40,0xDE28,0x0000, 0xFB40,0xDE3D,0x0000, /* 2F884 */ +0xFB40,0xDE69,0x0000, 0xFB80,0xB862,0x0000, 0xFB84,0xA183,0x0000, /* 2F887 */ +0xFB80,0xB87C,0x0000, 0xFB40,0xDEB0,0x0000, 0xFB40,0xDEB3,0x0000, /* 2F88A */ +0xFB40,0xDEB6,0x0000, 0xFB40,0xDECA,0x0000, 0xFB85,0xA392,0x0000, /* 2F88D */ +0xFB40,0xDEFE,0x0000, 0xFB84,0xA331,0x0000, 0xFB84,0xA331,0x0000, /* 2F890 */ +0xFB41,0x8201,0x0000, 0xFB40,0xDF22,0x0000, 0xFB40,0xDF22,0x0000, /* 2F893 */ +0xFB80,0xB8C7,0x0000, 0xFB84,0xB2B8,0x0000, 0xFB84,0xE1DA,0x0000, /* 2F896 */ +0xFB40,0xDF62,0x0000, 0xFB40,0xDF6B,0x0000, 0xFB80,0xB8E3,0x0000, /* 2F899 */ +0xFB40,0xDF9A,0x0000, 0xFB40,0xDFCD,0x0000, 0xFB40,0xDFD7,0x0000, /* 2F89C */ +0xFB40,0xDFF9,0x0000, 0xFB40,0xE081,0x0000, 0xFB80,0xB93A,0x0000, /* 2F89F */ +0xFB80,0xB91C,0x0000, 0xFB40,0xE094,0x0000, 0xFB84,0xA6D4,0x0000, /* 2F8A2 */ +0xFB40,0xE0C7,0x0000, 0xFB40,0xE148,0x0000, 0xFB40,0xE14C,0x0000, /* 2F8A5 */ +0xFB40,0xE14E,0x0000, 0xFB40,0xE14C,0x0000, 0xFB40,0xE17A,0x0000, /* 2F8A8 */ +0xFB40,0xE18E,0x0000, 0xFB40,0xE1B2,0x0000, 0xFB40,0xE1A4,0x0000, /* 2F8AB */ +0xFB40,0xE1AF,0x0000, 0xFB40,0xE1DE,0x0000, 0xFB40,0xE1F2,0x0000, /* 2F8AE */ +0xFB40,0xE1F6,0x0000, 0xFB40,0xE210,0x0000, 0xFB40,0xE21B,0x0000, /* 2F8B1 */ +0xFB40,0xE25D,0x0000, 0xFB40,0xE2B1,0x0000, 0xFB40,0xE2D4,0x0000, /* 2F8B4 */ +0xFB40,0xE350,0x0000, 0xFB84,0xAB0C,0x0000, 0xFB40,0xE33D,0x0000, /* 2F8B7 */ +0xFB40,0xE2FC,0x0000, 0xFB40,0xE368,0x0000, 0xFB40,0xE383,0x0000, /* 2F8BA */ +0xFB40,0xE3E4,0x0000, 0xFB84,0xABF1,0x0000, 0xFB40,0xE422,0x0000, /* 2F8BD */ +0xFB40,0xE3C5,0x0000, 0xFB40,0xE3A9,0x0000, 0xFB80,0xBA2E,0x0000, /* 2F8C0 */ +0xFB40,0xE469,0x0000, 0xFB40,0xE47E,0x0000, 0xFB40,0xE49D,0x0000, /* 2F8C3 */ +0xFB40,0xE477,0x0000, 0xFB80,0xBA6C,0x0000, 0xFB40,0xE54F,0x0000, /* 2F8C6 */ +0xFB40,0xE56C,0x0000, 0xFB84,0xB00A,0x0000, 0xFB40,0xE5E3,0x0000, /* 2F8C9 */ +0xFB40,0xE6F8,0x0000, 0xFB40,0xE649,0x0000, 0xFB80,0xBB19,0x0000, /* 2F8CC */ +0xFB40,0xE691,0x0000, 0xFB80,0xBB08,0x0000, 0xFB80,0xBAE4,0x0000, /* 2F8CF */ +0xFB40,0xD192,0x0000, 0xFB40,0xD195,0x0000, 0xFB40,0xE700,0x0000, /* 2F8D2 */ +0xFB40,0xE69C,0x0000, 0xFB41,0x80AD,0x0000, 0xFB80,0xC3D9,0x0000, /* 2F8D5 */ +0xFB40,0xE717,0x0000, 0xFB40,0xE71B,0x0000, 0xFB40,0xE721,0x0000, /* 2F8D8 */ +0xFB40,0xE75E,0x0000, 0xFB40,0xE753,0x0000, 0xFB84,0xB3C3,0x0000, /* 2F8DB */ +0xFB80,0xBB49,0x0000, 0xFB40,0xE7FA,0x0000, 0xFB40,0xE785,0x0000, /* 2F8DE */ +0xFB40,0xE852,0x0000, 0xFB40,0xE885,0x0000, 0xFB84,0xB46D,0x0000, /* 2F8E1 */ +0xFB40,0xE88E,0x0000, 0xFB40,0xE81F,0x0000, 0xFB40,0xE914,0x0000, /* 2F8E4 */ +0xFB80,0xBB9D,0x0000, 0xFB40,0xE942,0x0000, 0xFB40,0xE9A3,0x0000, /* 2F8E7 */ +0xFB40,0xE9EA,0x0000, 0xFB40,0xEAA8,0x0000, 0xFB84,0xB6A3,0x0000, /* 2F8EA */ +0xFB40,0xEADB,0x0000, 0xFB80,0xBC18,0x0000, 0xFB40,0xEB21,0x0000, /* 2F8ED */ +0xFB84,0xB8A7,0x0000, 0xFB40,0xEB54,0x0000, 0xFB80,0xBC4E,0x0000, /* 2F8F0 */ +0xFB40,0xEB72,0x0000, 0xFB40,0xEB9F,0x0000, 0xFB40,0xEBBA,0x0000, /* 2F8F3 */ +0xFB40,0xEBBB,0x0000, 0xFB84,0xBA8D,0x0000, 0xFB84,0x9D0B,0x0000, /* 2F8F6 */ +0xFB84,0xBAFA,0x0000, 0xFB40,0xEC4E,0x0000, 0xFB84,0xBCBC,0x0000, /* 2F8F9 */ +0xFB40,0xECBF,0x0000, 0xFB40,0xECCD,0x0000, 0xFB40,0xEC67,0x0000, /* 2F8FC */ +0xFB40,0xED16,0x0000 }; + +uint16 uca520_p2F9[]= { /* 2F900 (3 weights per char) */ +0xFB40,0xED3E,0x0000, 0xFB40,0xED77,0x0000, 0xFB40,0xED41,0x0000, /* 2F900 */ +0xFB40,0xED69,0x0000, 0xFB40,0xED78,0x0000, 0xFB40,0xED85,0x0000, /* 2F903 */ +0xFB84,0xBD1E,0x0000, 0xFB40,0xED34,0x0000, 0xFB40,0xEE2F,0x0000, /* 2F906 */ +0xFB40,0xEE6E,0x0000, 0xFB80,0xBD33,0x0000, 0xFB40,0xEECB,0x0000, /* 2F909 */ +0xFB40,0xEEC7,0x0000, 0xFB84,0xBED1,0x0000, 0xFB40,0xEDF9,0x0000, /* 2F90C */ +0xFB40,0xEF6E,0x0000, 0xFB84,0xBF5E,0x0000, 0xFB84,0xBF8E,0x0000, /* 2F90F */ +0xFB40,0xEFC6,0x0000, 0xFB40,0xF039,0x0000, 0xFB40,0xF01E,0x0000, /* 2F912 */ +0xFB40,0xF01B,0x0000, 0xFB80,0xBD96,0x0000, 0xFB40,0xF04A,0x0000, /* 2F915 */ +0xFB40,0xF07D,0x0000, 0xFB40,0xF077,0x0000, 0xFB40,0xF0AD,0x0000, /* 2F918 */ +0xFB84,0x8525,0x0000, 0xFB40,0xF145,0x0000, 0xFB84,0xC263,0x0000, /* 2F91B */ +0xFB40,0xF19C,0x0000, 0xFB84,0xC3AB,0x0000, 0xFB40,0xF228,0x0000, /* 2F91E */ +0xFB40,0xF235,0x0000, 0xFB40,0xF250,0x0000, 0xFB84,0xC608,0x0000, /* 2F921 */ +0xFB40,0xF280,0x0000, 0xFB40,0xF295,0x0000, 0xFB84,0xC735,0x0000, /* 2F924 */ +0xFB84,0xC814,0x0000, 0xFB40,0xF37A,0x0000, 0xFB40,0xF38B,0x0000, /* 2F927 */ +0xFB80,0xBEAC,0x0000, 0xFB40,0xF3A5,0x0000, 0xFB80,0xBEB8,0x0000, /* 2F92A */ +0xFB80,0xBEB8,0x0000, 0xFB40,0xF447,0x0000, 0xFB40,0xF45C,0x0000, /* 2F92D */ +0xFB40,0xF471,0x0000, 0xFB40,0xF485,0x0000, 0xFB40,0xF4CA,0x0000, /* 2F930 */ +0xFB80,0xBF1B,0x0000, 0xFB40,0xF524,0x0000, 0xFB84,0xCC36,0x0000, /* 2F933 */ +0xFB40,0xF53E,0x0000, 0xFB84,0xCC92,0x0000, 0xFB40,0xF570,0x0000, /* 2F936 */ +0xFB84,0xA19F,0x0000, 0xFB40,0xF610,0x0000, 0xFB84,0xCFA1,0x0000, /* 2F939 */ +0xFB84,0xCFB8,0x0000, 0xFB84,0xD044,0x0000, 0xFB80,0xBFFC,0x0000, /* 2F93C */ +0xFB80,0xC008,0x0000, 0xFB40,0xF6F4,0x0000, 0xFB84,0xD0F3,0x0000, /* 2F93F */ +0xFB84,0xD0F2,0x0000, 0xFB84,0xD119,0x0000, 0xFB84,0xD133,0x0000, /* 2F942 */ +0xFB40,0xF71E,0x0000, 0xFB40,0xF71F,0x0000, 0xFB40,0xF71F,0x0000, /* 2F945 */ +0xFB40,0xF74A,0x0000, 0xFB80,0xC039,0x0000, 0xFB40,0xF78B,0x0000, /* 2F948 */ +0xFB80,0xC046,0x0000, 0xFB80,0xC096,0x0000, 0xFB84,0xD41D,0x0000, /* 2F94B */ +0xFB40,0xF84E,0x0000, 0xFB40,0xF88C,0x0000, 0xFB40,0xF8CC,0x0000, /* 2F94E */ +0xFB80,0xC0E3,0x0000, 0xFB84,0xD626,0x0000, 0xFB40,0xF956,0x0000, /* 2F951 */ +0xFB84,0xD69A,0x0000, 0xFB84,0xD6C5,0x0000, 0xFB40,0xF98F,0x0000, /* 2F954 */ +0xFB40,0xF9EB,0x0000, 0xFB80,0xC12F,0x0000, 0xFB40,0xFA40,0x0000, /* 2F957 */ +0xFB40,0xFA4A,0x0000, 0xFB40,0xFA4F,0x0000, 0xFB84,0xD97C,0x0000, /* 2F95A */ +0xFB84,0xDAA7,0x0000, 0xFB84,0xDAA7,0x0000, 0xFB40,0xFAEE,0x0000, /* 2F95D */ +0xFB80,0xC202,0x0000, 0xFB84,0xDBAB,0x0000, 0xFB40,0xFBC6,0x0000, /* 2F960 */ +0xFB40,0xFBC9,0x0000, 0xFB80,0xC227,0x0000, 0xFB84,0xDC80,0x0000, /* 2F963 */ +0xFB40,0xFCD2,0x0000, 0xFB80,0xC2A0,0x0000, 0xFB40,0xFCE8,0x0000, /* 2F966 */ +0xFB40,0xFCE3,0x0000, 0xFB40,0xFD00,0x0000, 0xFB84,0xDF86,0x0000, /* 2F969 */ +0xFB40,0xFD63,0x0000, 0xFB80,0xC301,0x0000, 0xFB40,0xFDC7,0x0000, /* 2F96C */ +0xFB40,0xFE02,0x0000, 0xFB40,0xFE45,0x0000, 0xFB80,0xC334,0x0000, /* 2F96F */ +0xFB84,0xE228,0x0000, 0xFB84,0xE247,0x0000, 0xFB80,0xC359,0x0000, /* 2F972 */ +0xFB84,0xE2D9,0x0000, 0xFB40,0xFF7A,0x0000, 0xFB84,0xE33E,0x0000, /* 2F975 */ +0xFB40,0xFF95,0x0000, 0xFB40,0xFFFA,0x0000, 0xFB41,0x8005,0x0000, /* 2F978 */ +0xFB84,0xE4DA,0x0000, 0xFB84,0xE523,0x0000, 0xFB41,0x8060,0x0000, /* 2F97B */ +0xFB84,0xE5A8,0x0000, 0xFB41,0x8070,0x0000, 0xFB84,0xB35F,0x0000, /* 2F97E */ +0xFB80,0xC3D5,0x0000, 0xFB41,0x80B2,0x0000, 0xFB41,0x8103,0x0000, /* 2F981 */ +0xFB80,0xC40B,0x0000, 0xFB41,0x813E,0x0000, 0xFB40,0xDAB5,0x0000, /* 2F984 */ +0xFB84,0xE7A7,0x0000, 0xFB84,0xE7B5,0x0000, 0xFB84,0xB393,0x0000, /* 2F987 */ +0xFB84,0xB39C,0x0000, 0xFB41,0x8201,0x0000, 0xFB41,0x8204,0x0000, /* 2F98A */ +0xFB41,0x8F9E,0x0000, 0xFB80,0xC46B,0x0000, 0xFB41,0x8291,0x0000, /* 2F98D */ +0xFB41,0x828B,0x0000, 0xFB41,0x829D,0x0000, 0xFB40,0xD2B3,0x0000, /* 2F990 */ +0xFB41,0x82B1,0x0000, 0xFB41,0x82B3,0x0000, 0xFB41,0x82BD,0x0000, /* 2F993 */ +0xFB41,0x82E6,0x0000, 0xFB84,0xEB3C,0x0000, 0xFB41,0x82E5,0x0000, /* 2F996 */ +0xFB41,0x831D,0x0000, 0xFB41,0x8363,0x0000, 0xFB41,0x83AD,0x0000, /* 2F999 */ +0xFB41,0x8323,0x0000, 0xFB41,0x83BD,0x0000, 0xFB41,0x83E7,0x0000, /* 2F99C */ +0xFB41,0x8457,0x0000, 0xFB41,0x8353,0x0000, 0xFB41,0x83CA,0x0000, /* 2F99F */ +0xFB41,0x83CC,0x0000, 0xFB41,0x83DC,0x0000, 0xFB84,0xEC36,0x0000, /* 2F9A2 */ +0xFB84,0xED6B,0x0000, 0xFB84,0xECD5,0x0000, 0xFB80,0xC52B,0x0000, /* 2F9A5 */ +0xFB41,0x84F1,0x0000, 0xFB41,0x84F3,0x0000, 0xFB41,0x8516,0x0000, /* 2F9A8 */ +0xFB84,0xF3CA,0x0000, 0xFB41,0x8564,0x0000, 0xFB84,0xEF2C,0x0000, /* 2F9AB */ +0xFB80,0xC55D,0x0000, 0xFB80,0xC561,0x0000, 0xFB84,0xEFB1,0x0000, /* 2F9AE */ +0xFB84,0xF0D2,0x0000, 0xFB80,0xC56B,0x0000, 0xFB41,0x8650,0x0000, /* 2F9B1 */ +0xFB41,0x865C,0x0000, 0xFB41,0x8667,0x0000, 0xFB41,0x8669,0x0000, /* 2F9B4 */ +0xFB41,0x86A9,0x0000, 0xFB41,0x8688,0x0000, 0xFB41,0x870E,0x0000, /* 2F9B7 */ +0xFB41,0x86E2,0x0000, 0xFB41,0x8779,0x0000, 0xFB41,0x8728,0x0000, /* 2F9BA */ +0xFB41,0x876B,0x0000, 0xFB41,0x8786,0x0000, 0xFB80,0xC5D7,0x0000, /* 2F9BD */ +0xFB41,0x87E1,0x0000, 0xFB41,0x8801,0x0000, 0xFB80,0xC5F9,0x0000, /* 2F9C0 */ +0xFB41,0x8860,0x0000, 0xFB41,0x8863,0x0000, 0xFB84,0xF667,0x0000, /* 2F9C3 */ +0xFB41,0x88D7,0x0000, 0xFB41,0x88DE,0x0000, 0xFB80,0xC635,0x0000, /* 2F9C6 */ +0xFB41,0x88FA,0x0000, 0xFB80,0xB4BB,0x0000, 0xFB84,0xF8AE,0x0000, /* 2F9C9 */ +0xFB84,0xF966,0x0000, 0xFB80,0xC6BE,0x0000, 0xFB80,0xC6C7,0x0000, /* 2F9CC */ +0xFB41,0x8AA0,0x0000, 0xFB41,0x8AED,0x0000, 0xFB41,0x8B8A,0x0000, /* 2F9CF */ +0xFB41,0x8C55,0x0000, 0xFB84,0xFCA8,0x0000, 0xFB41,0x8CAB,0x0000, /* 2F9D2 */ +0xFB41,0x8CC1,0x0000, 0xFB41,0x8D1B,0x0000, 0xFB41,0x8D77,0x0000, /* 2F9D5 */ +0xFB84,0xFF2F,0x0000, 0xFB84,0x8804,0x0000, 0xFB41,0x8DCB,0x0000, /* 2F9D8 */ +0xFB41,0x8DBC,0x0000, 0xFB41,0x8DF0,0x0000, 0xFB84,0x88DE,0x0000, /* 2F9DB */ +0xFB41,0x8ED4,0x0000, 0xFB41,0x8F38,0x0000, 0xFB85,0x85D2,0x0000, /* 2F9DE */ +0xFB85,0x85ED,0x0000, 0xFB41,0x9094,0x0000, 0xFB41,0x90F1,0x0000, /* 2F9E1 */ +0xFB41,0x9111,0x0000, 0xFB85,0x872E,0x0000, 0xFB41,0x911B,0x0000, /* 2F9E4 */ +0xFB41,0x9238,0x0000, 0xFB41,0x92D7,0x0000, 0xFB41,0x92D8,0x0000, /* 2F9E7 */ +0xFB41,0x927C,0x0000, 0xFB41,0x93F9,0x0000, 0xFB41,0x9415,0x0000, /* 2F9EA */ +0xFB85,0x8BFA,0x0000, 0xFB41,0x958B,0x0000, 0xFB80,0xC995,0x0000, /* 2F9ED */ +0xFB41,0x95B7,0x0000, 0xFB85,0x8D77,0x0000, 0xFB80,0xC9E6,0x0000, /* 2F9F0 */ +0xFB41,0x96C3,0x0000, 0xFB40,0xDDB2,0x0000, 0xFB41,0x9723,0x0000, /* 2F9F3 */ +0xFB85,0x9145,0x0000, 0xFB85,0x921A,0x0000, 0xFB80,0xCA6E,0x0000, /* 2F9F6 */ +0xFB80,0xCA76,0x0000, 0xFB41,0x97E0,0x0000, 0xFB85,0x940A,0x0000, /* 2F9F9 */ +0xFB80,0xCAB2,0x0000, 0xFB85,0x9496,0x0000, 0xFB41,0x980B,0x0000, /* 2F9FC */ +0xFB41,0x980B,0x0000 }; + +uint16 uca520_p2FA[]= { /* 2FA00 (3 weights per char) */ +0xFB41,0x9829,0x0000, 0xFB85,0x95B6,0x0000, 0xFB41,0x98E2,0x0000, /* 2FA00 */ +0xFB80,0xCB33,0x0000, 0xFB41,0x9929,0x0000, 0xFB41,0x99A7,0x0000, /* 2FA03 */ +0xFB41,0x99C2,0x0000, 0xFB41,0x99FE,0x0000, 0xFB80,0xCBCE,0x0000, /* 2FA06 */ +0xFB85,0x9B30,0x0000, 0xFB41,0x9B12,0x0000, 0xFB41,0x9C40,0x0000, /* 2FA09 */ +0xFB41,0x9CFD,0x0000, 0xFB80,0xCCCE,0x0000, 0xFB80,0xCCED,0x0000, /* 2FA0C */ +0xFB41,0x9D67,0x0000, 0xFB85,0xA0CE,0x0000, 0xFB80,0xCCF8,0x0000, /* 2FA0F */ +0xFB85,0xA105,0x0000, 0xFB85,0xA20E,0x0000, 0xFB85,0xA291,0x0000, /* 2FA12 */ +0xFB41,0x9EBB,0x0000, 0xFB80,0xCD56,0x0000, 0xFB41,0x9EF9,0x0000, /* 2FA15 */ +0xFB41,0x9EFE,0x0000, 0xFB41,0x9F05,0x0000, 0xFB41,0x9F0F,0x0000, /* 2FA18 */ +0xFB41,0x9F16,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB85,0xA600,0x0000, /* 2FA1B */ +0xFBC5,0xFA1E,0x0000, 0xFBC5,0xFA1F,0x0000, 0xFBC5,0xFA20,0x0000, /* 2FA1E */ +0xFBC5,0xFA21,0x0000, 0xFBC5,0xFA22,0x0000, 0xFBC5,0xFA23,0x0000, /* 2FA21 */ +0xFBC5,0xFA24,0x0000, 0xFBC5,0xFA25,0x0000, 0xFBC5,0xFA26,0x0000, /* 2FA24 */ +0xFBC5,0xFA27,0x0000, 0xFBC5,0xFA28,0x0000, 0xFBC5,0xFA29,0x0000, /* 2FA27 */ +0xFBC5,0xFA2A,0x0000, 0xFBC5,0xFA2B,0x0000, 0xFBC5,0xFA2C,0x0000, /* 2FA2A */ +0xFBC5,0xFA2D,0x0000, 0xFBC5,0xFA2E,0x0000, 0xFBC5,0xFA2F,0x0000, /* 2FA2D */ +0xFBC5,0xFA30,0x0000, 0xFBC5,0xFA31,0x0000, 0xFBC5,0xFA32,0x0000, /* 2FA30 */ +0xFBC5,0xFA33,0x0000, 0xFBC5,0xFA34,0x0000, 0xFBC5,0xFA35,0x0000, /* 2FA33 */ +0xFBC5,0xFA36,0x0000, 0xFBC5,0xFA37,0x0000, 0xFBC5,0xFA38,0x0000, /* 2FA36 */ +0xFBC5,0xFA39,0x0000, 0xFBC5,0xFA3A,0x0000, 0xFBC5,0xFA3B,0x0000, /* 2FA39 */ +0xFBC5,0xFA3C,0x0000, 0xFBC5,0xFA3D,0x0000, 0xFBC5,0xFA3E,0x0000, /* 2FA3C */ +0xFBC5,0xFA3F,0x0000, 0xFBC5,0xFA40,0x0000, 0xFBC5,0xFA41,0x0000, /* 2FA3F */ +0xFBC5,0xFA42,0x0000, 0xFBC5,0xFA43,0x0000, 0xFBC5,0xFA44,0x0000, /* 2FA42 */ +0xFBC5,0xFA45,0x0000, 0xFBC5,0xFA46,0x0000, 0xFBC5,0xFA47,0x0000, /* 2FA45 */ +0xFBC5,0xFA48,0x0000, 0xFBC5,0xFA49,0x0000, 0xFBC5,0xFA4A,0x0000, /* 2FA48 */ +0xFBC5,0xFA4B,0x0000, 0xFBC5,0xFA4C,0x0000, 0xFBC5,0xFA4D,0x0000, /* 2FA4B */ +0xFBC5,0xFA4E,0x0000, 0xFBC5,0xFA4F,0x0000, 0xFBC5,0xFA50,0x0000, /* 2FA4E */ +0xFBC5,0xFA51,0x0000, 0xFBC5,0xFA52,0x0000, 0xFBC5,0xFA53,0x0000, /* 2FA51 */ +0xFBC5,0xFA54,0x0000, 0xFBC5,0xFA55,0x0000, 0xFBC5,0xFA56,0x0000, /* 2FA54 */ +0xFBC5,0xFA57,0x0000, 0xFBC5,0xFA58,0x0000, 0xFBC5,0xFA59,0x0000, /* 2FA57 */ +0xFBC5,0xFA5A,0x0000, 0xFBC5,0xFA5B,0x0000, 0xFBC5,0xFA5C,0x0000, /* 2FA5A */ +0xFBC5,0xFA5D,0x0000, 0xFBC5,0xFA5E,0x0000, 0xFBC5,0xFA5F,0x0000, /* 2FA5D */ +0xFBC5,0xFA60,0x0000, 0xFBC5,0xFA61,0x0000, 0xFBC5,0xFA62,0x0000, /* 2FA60 */ +0xFBC5,0xFA63,0x0000, 0xFBC5,0xFA64,0x0000, 0xFBC5,0xFA65,0x0000, /* 2FA63 */ +0xFBC5,0xFA66,0x0000, 0xFBC5,0xFA67,0x0000, 0xFBC5,0xFA68,0x0000, /* 2FA66 */ +0xFBC5,0xFA69,0x0000, 0xFBC5,0xFA6A,0x0000, 0xFBC5,0xFA6B,0x0000, /* 2FA69 */ +0xFBC5,0xFA6C,0x0000, 0xFBC5,0xFA6D,0x0000, 0xFBC5,0xFA6E,0x0000, /* 2FA6C */ +0xFBC5,0xFA6F,0x0000, 0xFBC5,0xFA70,0x0000, 0xFBC5,0xFA71,0x0000, /* 2FA6F */ +0xFBC5,0xFA72,0x0000, 0xFBC5,0xFA73,0x0000, 0xFBC5,0xFA74,0x0000, /* 2FA72 */ +0xFBC5,0xFA75,0x0000, 0xFBC5,0xFA76,0x0000, 0xFBC5,0xFA77,0x0000, /* 2FA75 */ +0xFBC5,0xFA78,0x0000, 0xFBC5,0xFA79,0x0000, 0xFBC5,0xFA7A,0x0000, /* 2FA78 */ +0xFBC5,0xFA7B,0x0000, 0xFBC5,0xFA7C,0x0000, 0xFBC5,0xFA7D,0x0000, /* 2FA7B */ +0xFBC5,0xFA7E,0x0000, 0xFBC5,0xFA7F,0x0000, 0xFBC5,0xFA80,0x0000, /* 2FA7E */ +0xFBC5,0xFA81,0x0000, 0xFBC5,0xFA82,0x0000, 0xFBC5,0xFA83,0x0000, /* 2FA81 */ +0xFBC5,0xFA84,0x0000, 0xFBC5,0xFA85,0x0000, 0xFBC5,0xFA86,0x0000, /* 2FA84 */ +0xFBC5,0xFA87,0x0000, 0xFBC5,0xFA88,0x0000, 0xFBC5,0xFA89,0x0000, /* 2FA87 */ +0xFBC5,0xFA8A,0x0000, 0xFBC5,0xFA8B,0x0000, 0xFBC5,0xFA8C,0x0000, /* 2FA8A */ +0xFBC5,0xFA8D,0x0000, 0xFBC5,0xFA8E,0x0000, 0xFBC5,0xFA8F,0x0000, /* 2FA8D */ +0xFBC5,0xFA90,0x0000, 0xFBC5,0xFA91,0x0000, 0xFBC5,0xFA92,0x0000, /* 2FA90 */ +0xFBC5,0xFA93,0x0000, 0xFBC5,0xFA94,0x0000, 0xFBC5,0xFA95,0x0000, /* 2FA93 */ +0xFBC5,0xFA96,0x0000, 0xFBC5,0xFA97,0x0000, 0xFBC5,0xFA98,0x0000, /* 2FA96 */ +0xFBC5,0xFA99,0x0000, 0xFBC5,0xFA9A,0x0000, 0xFBC5,0xFA9B,0x0000, /* 2FA99 */ +0xFBC5,0xFA9C,0x0000, 0xFBC5,0xFA9D,0x0000, 0xFBC5,0xFA9E,0x0000, /* 2FA9C */ +0xFBC5,0xFA9F,0x0000, 0xFBC5,0xFAA0,0x0000, 0xFBC5,0xFAA1,0x0000, /* 2FA9F */ +0xFBC5,0xFAA2,0x0000, 0xFBC5,0xFAA3,0x0000, 0xFBC5,0xFAA4,0x0000, /* 2FAA2 */ +0xFBC5,0xFAA5,0x0000, 0xFBC5,0xFAA6,0x0000, 0xFBC5,0xFAA7,0x0000, /* 2FAA5 */ +0xFBC5,0xFAA8,0x0000, 0xFBC5,0xFAA9,0x0000, 0xFBC5,0xFAAA,0x0000, /* 2FAA8 */ +0xFBC5,0xFAAB,0x0000, 0xFBC5,0xFAAC,0x0000, 0xFBC5,0xFAAD,0x0000, /* 2FAAB */ +0xFBC5,0xFAAE,0x0000, 0xFBC5,0xFAAF,0x0000, 0xFBC5,0xFAB0,0x0000, /* 2FAAE */ +0xFBC5,0xFAB1,0x0000, 0xFBC5,0xFAB2,0x0000, 0xFBC5,0xFAB3,0x0000, /* 2FAB1 */ +0xFBC5,0xFAB4,0x0000, 0xFBC5,0xFAB5,0x0000, 0xFBC5,0xFAB6,0x0000, /* 2FAB4 */ +0xFBC5,0xFAB7,0x0000, 0xFBC5,0xFAB8,0x0000, 0xFBC5,0xFAB9,0x0000, /* 2FAB7 */ +0xFBC5,0xFABA,0x0000, 0xFBC5,0xFABB,0x0000, 0xFBC5,0xFABC,0x0000, /* 2FABA */ +0xFBC5,0xFABD,0x0000, 0xFBC5,0xFABE,0x0000, 0xFBC5,0xFABF,0x0000, /* 2FABD */ +0xFBC5,0xFAC0,0x0000, 0xFBC5,0xFAC1,0x0000, 0xFBC5,0xFAC2,0x0000, /* 2FAC0 */ +0xFBC5,0xFAC3,0x0000, 0xFBC5,0xFAC4,0x0000, 0xFBC5,0xFAC5,0x0000, /* 2FAC3 */ +0xFBC5,0xFAC6,0x0000, 0xFBC5,0xFAC7,0x0000, 0xFBC5,0xFAC8,0x0000, /* 2FAC6 */ +0xFBC5,0xFAC9,0x0000, 0xFBC5,0xFACA,0x0000, 0xFBC5,0xFACB,0x0000, /* 2FAC9 */ +0xFBC5,0xFACC,0x0000, 0xFBC5,0xFACD,0x0000, 0xFBC5,0xFACE,0x0000, /* 2FACC */ +0xFBC5,0xFACF,0x0000, 0xFBC5,0xFAD0,0x0000, 0xFBC5,0xFAD1,0x0000, /* 2FACF */ +0xFBC5,0xFAD2,0x0000, 0xFBC5,0xFAD3,0x0000, 0xFBC5,0xFAD4,0x0000, /* 2FAD2 */ +0xFBC5,0xFAD5,0x0000, 0xFBC5,0xFAD6,0x0000, 0xFBC5,0xFAD7,0x0000, /* 2FAD5 */ +0xFBC5,0xFAD8,0x0000, 0xFBC5,0xFAD9,0x0000, 0xFBC5,0xFADA,0x0000, /* 2FAD8 */ +0xFBC5,0xFADB,0x0000, 0xFBC5,0xFADC,0x0000, 0xFBC5,0xFADD,0x0000, /* 2FADB */ +0xFBC5,0xFADE,0x0000, 0xFBC5,0xFADF,0x0000, 0xFBC5,0xFAE0,0x0000, /* 2FADE */ +0xFBC5,0xFAE1,0x0000, 0xFBC5,0xFAE2,0x0000, 0xFBC5,0xFAE3,0x0000, /* 2FAE1 */ +0xFBC5,0xFAE4,0x0000, 0xFBC5,0xFAE5,0x0000, 0xFBC5,0xFAE6,0x0000, /* 2FAE4 */ +0xFBC5,0xFAE7,0x0000, 0xFBC5,0xFAE8,0x0000, 0xFBC5,0xFAE9,0x0000, /* 2FAE7 */ +0xFBC5,0xFAEA,0x0000, 0xFBC5,0xFAEB,0x0000, 0xFBC5,0xFAEC,0x0000, /* 2FAEA */ +0xFBC5,0xFAED,0x0000, 0xFBC5,0xFAEE,0x0000, 0xFBC5,0xFAEF,0x0000, /* 2FAED */ +0xFBC5,0xFAF0,0x0000, 0xFBC5,0xFAF1,0x0000, 0xFBC5,0xFAF2,0x0000, /* 2FAF0 */ +0xFBC5,0xFAF3,0x0000, 0xFBC5,0xFAF4,0x0000, 0xFBC5,0xFAF5,0x0000, /* 2FAF3 */ +0xFBC5,0xFAF6,0x0000, 0xFBC5,0xFAF7,0x0000, 0xFBC5,0xFAF8,0x0000, /* 2FAF6 */ +0xFBC5,0xFAF9,0x0000, 0xFBC5,0xFAFA,0x0000, 0xFBC5,0xFAFB,0x0000, /* 2FAF9 */ +0xFBC5,0xFAFC,0x0000, 0xFBC5,0xFAFD,0x0000, 0xFBC5,0xFAFE,0x0000, /* 2FAFC */ +0xFBC5,0xFAFF,0x0000 }; + +uint16 uca520_pE00[]= { /* E0000 (3 weights per char) */ +0xFBDC,0x8000,0x0000, 0x0000,0x0000,0x0000, 0xFBDC,0x8002,0x0000, /* E0000 */ +0xFBDC,0x8003,0x0000, 0xFBDC,0x8004,0x0000, 0xFBDC,0x8005,0x0000, /* E0003 */ +0xFBDC,0x8006,0x0000, 0xFBDC,0x8007,0x0000, 0xFBDC,0x8008,0x0000, /* E0006 */ +0xFBDC,0x8009,0x0000, 0xFBDC,0x800A,0x0000, 0xFBDC,0x800B,0x0000, /* E0009 */ +0xFBDC,0x800C,0x0000, 0xFBDC,0x800D,0x0000, 0xFBDC,0x800E,0x0000, /* E000C */ +0xFBDC,0x800F,0x0000, 0xFBDC,0x8010,0x0000, 0xFBDC,0x8011,0x0000, /* E000F */ +0xFBDC,0x8012,0x0000, 0xFBDC,0x8013,0x0000, 0xFBDC,0x8014,0x0000, /* E0012 */ +0xFBDC,0x8015,0x0000, 0xFBDC,0x8016,0x0000, 0xFBDC,0x8017,0x0000, /* E0015 */ +0xFBDC,0x8018,0x0000, 0xFBDC,0x8019,0x0000, 0xFBDC,0x801A,0x0000, /* E0018 */ +0xFBDC,0x801B,0x0000, 0xFBDC,0x801C,0x0000, 0xFBDC,0x801D,0x0000, /* E001B */ +0xFBDC,0x801E,0x0000, 0xFBDC,0x801F,0x0000, 0x0000,0x0000,0x0000, /* E001E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0021 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0024 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0027 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E002A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E002D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0030 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0033 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0036 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0039 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E003C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E003F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0042 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0045 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0048 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E004B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E004E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0051 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0054 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0057 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E005A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E005D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0060 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0063 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0066 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0069 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E006C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E006F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0072 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0075 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0078 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E007B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBDC,0x8080,0x0000, /* E007E */ +0xFBDC,0x8081,0x0000, 0xFBDC,0x8082,0x0000, 0xFBDC,0x8083,0x0000, /* E0081 */ +0xFBDC,0x8084,0x0000, 0xFBDC,0x8085,0x0000, 0xFBDC,0x8086,0x0000, /* E0084 */ +0xFBDC,0x8087,0x0000, 0xFBDC,0x8088,0x0000, 0xFBDC,0x8089,0x0000, /* E0087 */ +0xFBDC,0x808A,0x0000, 0xFBDC,0x808B,0x0000, 0xFBDC,0x808C,0x0000, /* E008A */ +0xFBDC,0x808D,0x0000, 0xFBDC,0x808E,0x0000, 0xFBDC,0x808F,0x0000, /* E008D */ +0xFBDC,0x8090,0x0000, 0xFBDC,0x8091,0x0000, 0xFBDC,0x8092,0x0000, /* E0090 */ +0xFBDC,0x8093,0x0000, 0xFBDC,0x8094,0x0000, 0xFBDC,0x8095,0x0000, /* E0093 */ +0xFBDC,0x8096,0x0000, 0xFBDC,0x8097,0x0000, 0xFBDC,0x8098,0x0000, /* E0096 */ +0xFBDC,0x8099,0x0000, 0xFBDC,0x809A,0x0000, 0xFBDC,0x809B,0x0000, /* E0099 */ +0xFBDC,0x809C,0x0000, 0xFBDC,0x809D,0x0000, 0xFBDC,0x809E,0x0000, /* E009C */ +0xFBDC,0x809F,0x0000, 0xFBDC,0x80A0,0x0000, 0xFBDC,0x80A1,0x0000, /* E009F */ +0xFBDC,0x80A2,0x0000, 0xFBDC,0x80A3,0x0000, 0xFBDC,0x80A4,0x0000, /* E00A2 */ +0xFBDC,0x80A5,0x0000, 0xFBDC,0x80A6,0x0000, 0xFBDC,0x80A7,0x0000, /* E00A5 */ +0xFBDC,0x80A8,0x0000, 0xFBDC,0x80A9,0x0000, 0xFBDC,0x80AA,0x0000, /* E00A8 */ +0xFBDC,0x80AB,0x0000, 0xFBDC,0x80AC,0x0000, 0xFBDC,0x80AD,0x0000, /* E00AB */ +0xFBDC,0x80AE,0x0000, 0xFBDC,0x80AF,0x0000, 0xFBDC,0x80B0,0x0000, /* E00AE */ +0xFBDC,0x80B1,0x0000, 0xFBDC,0x80B2,0x0000, 0xFBDC,0x80B3,0x0000, /* E00B1 */ +0xFBDC,0x80B4,0x0000, 0xFBDC,0x80B5,0x0000, 0xFBDC,0x80B6,0x0000, /* E00B4 */ +0xFBDC,0x80B7,0x0000, 0xFBDC,0x80B8,0x0000, 0xFBDC,0x80B9,0x0000, /* E00B7 */ +0xFBDC,0x80BA,0x0000, 0xFBDC,0x80BB,0x0000, 0xFBDC,0x80BC,0x0000, /* E00BA */ +0xFBDC,0x80BD,0x0000, 0xFBDC,0x80BE,0x0000, 0xFBDC,0x80BF,0x0000, /* E00BD */ +0xFBDC,0x80C0,0x0000, 0xFBDC,0x80C1,0x0000, 0xFBDC,0x80C2,0x0000, /* E00C0 */ +0xFBDC,0x80C3,0x0000, 0xFBDC,0x80C4,0x0000, 0xFBDC,0x80C5,0x0000, /* E00C3 */ +0xFBDC,0x80C6,0x0000, 0xFBDC,0x80C7,0x0000, 0xFBDC,0x80C8,0x0000, /* E00C6 */ +0xFBDC,0x80C9,0x0000, 0xFBDC,0x80CA,0x0000, 0xFBDC,0x80CB,0x0000, /* E00C9 */ +0xFBDC,0x80CC,0x0000, 0xFBDC,0x80CD,0x0000, 0xFBDC,0x80CE,0x0000, /* E00CC */ +0xFBDC,0x80CF,0x0000, 0xFBDC,0x80D0,0x0000, 0xFBDC,0x80D1,0x0000, /* E00CF */ +0xFBDC,0x80D2,0x0000, 0xFBDC,0x80D3,0x0000, 0xFBDC,0x80D4,0x0000, /* E00D2 */ +0xFBDC,0x80D5,0x0000, 0xFBDC,0x80D6,0x0000, 0xFBDC,0x80D7,0x0000, /* E00D5 */ +0xFBDC,0x80D8,0x0000, 0xFBDC,0x80D9,0x0000, 0xFBDC,0x80DA,0x0000, /* E00D8 */ +0xFBDC,0x80DB,0x0000, 0xFBDC,0x80DC,0x0000, 0xFBDC,0x80DD,0x0000, /* E00DB */ +0xFBDC,0x80DE,0x0000, 0xFBDC,0x80DF,0x0000, 0xFBDC,0x80E0,0x0000, /* E00DE */ +0xFBDC,0x80E1,0x0000, 0xFBDC,0x80E2,0x0000, 0xFBDC,0x80E3,0x0000, /* E00E1 */ +0xFBDC,0x80E4,0x0000, 0xFBDC,0x80E5,0x0000, 0xFBDC,0x80E6,0x0000, /* E00E4 */ +0xFBDC,0x80E7,0x0000, 0xFBDC,0x80E8,0x0000, 0xFBDC,0x80E9,0x0000, /* E00E7 */ +0xFBDC,0x80EA,0x0000, 0xFBDC,0x80EB,0x0000, 0xFBDC,0x80EC,0x0000, /* E00EA */ +0xFBDC,0x80ED,0x0000, 0xFBDC,0x80EE,0x0000, 0xFBDC,0x80EF,0x0000, /* E00ED */ +0xFBDC,0x80F0,0x0000, 0xFBDC,0x80F1,0x0000, 0xFBDC,0x80F2,0x0000, /* E00F0 */ +0xFBDC,0x80F3,0x0000, 0xFBDC,0x80F4,0x0000, 0xFBDC,0x80F5,0x0000, /* E00F3 */ +0xFBDC,0x80F6,0x0000, 0xFBDC,0x80F7,0x0000, 0xFBDC,0x80F8,0x0000, /* E00F6 */ +0xFBDC,0x80F9,0x0000, 0xFBDC,0x80FA,0x0000, 0xFBDC,0x80FB,0x0000, /* E00F9 */ +0xFBDC,0x80FC,0x0000, 0xFBDC,0x80FD,0x0000, 0xFBDC,0x80FE,0x0000, /* E00FC */ +0xFBDC,0x80FF,0x0000 }; + +uint16 uca520_pE01[]= { /* E0100 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0100 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0103 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0106 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0109 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E010C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E010F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0112 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0115 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0118 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E011B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E011E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0121 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0124 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0127 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E012A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E012D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0130 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0133 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0136 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0139 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E013C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E013F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0142 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0145 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0148 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E014B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E014E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0151 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0154 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0157 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E015A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E015D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0160 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0163 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0166 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0169 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E016C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E016F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0172 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0175 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0178 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E017B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E017E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0181 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0184 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0187 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E018A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E018D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0190 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0193 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0196 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0199 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E019C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E019F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01AB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01AE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01BA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01BD */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C0 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C3 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01CC */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01CF */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01DB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01DE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01EA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01ED */ +0xFBDC,0x81F0,0x0000, 0xFBDC,0x81F1,0x0000, 0xFBDC,0x81F2,0x0000, /* E01F0 */ +0xFBDC,0x81F3,0x0000, 0xFBDC,0x81F4,0x0000, 0xFBDC,0x81F5,0x0000, /* E01F3 */ +0xFBDC,0x81F6,0x0000, 0xFBDC,0x81F7,0x0000, 0xFBDC,0x81F8,0x0000, /* E01F6 */ +0xFBDC,0x81F9,0x0000, 0xFBDC,0x81FA,0x0000, 0xFBDC,0x81FB,0x0000, /* E01F9 */ +0xFBDC,0x81FC,0x0000, 0xFBDC,0x81FD,0x0000, 0xFBDC,0x81FE,0x0000, /* E01FC */ +0xFBDC,0x81FF,0x0000 }; + +uchar uca520_length[4352]={ +4,3,3,4,2,3,3,3,3,3,3,3,3,3,3,3, +4,2,3,3,2,2,3,3,3,4,4,3,3,3,3,3, +5,5,4,3,5,2,3,3,2,2,5,3,4,3,3,3, +3,3,8,9,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,3,2,3,3,3,3,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3,3,4,3,9,4,3, +3,3,3,3,3,0,0,0,3,3,3,3,3,0,3,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; +uint16 *uca520_weight[4352]={ +uca520_p000,uca520_p001,uca520_p002,uca520_p003, +uca520_p004,uca520_p005,uca520_p006,uca520_p007, +uca520_p008,uca520_p009,uca520_p00A,uca520_p00B, +uca520_p00C,uca520_p00D,uca520_p00E,uca520_p00F, +uca520_p010,uca520_p011,uca520_p012,uca520_p013, +uca520_p014,uca520_p015,uca520_p016,uca520_p017, +uca520_p018,uca520_p019,uca520_p01A,uca520_p01B, +uca520_p01C,uca520_p01D,uca520_p01E,uca520_p01F, +uca520_p020,uca520_p021,uca520_p022,uca520_p023, +uca520_p024,uca520_p025,uca520_p026,uca520_p027, +uca520_p028,uca520_p029,uca520_p02A,uca520_p02B, +uca520_p02C,uca520_p02D,uca520_p02E,uca520_p02F, +uca520_p030,uca520_p031,uca520_p032,uca520_p033, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,uca520_p04D,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p0A0,uca520_p0A1,uca520_p0A2,uca520_p0A3, +uca520_p0A4,uca520_p0A5,uca520_p0A6,uca520_p0A7, +uca520_p0A8,uca520_p0A9,uca520_p0AA,uca520_p0AB, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,uca520_p0D7, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,uca520_p0F9,uca520_p0FA,uca520_p0FB, +uca520_p0FC,uca520_p0FD,uca520_p0FE,uca520_p0FF, +uca520_p100,uca520_p101,uca520_p102,uca520_p103, +uca520_p104,NULL ,NULL ,NULL , +uca520_p108,uca520_p109,uca520_p10A,uca520_p10B, +uca520_p10C,NULL ,uca520_p10E,NULL , +uca520_p110,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p120,uca520_p121,uca520_p122,uca520_p123, +uca520_p124,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p130,uca520_p131,uca520_p132,uca520_p133, +uca520_p134,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p1D0,uca520_p1D1,uca520_p1D2,uca520_p1D3, +uca520_p1D4,uca520_p1D5,uca520_p1D6,uca520_p1D7, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p1F0,uca520_p1F1,uca520_p1F2,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p2F8,uca520_p2F9,uca520_p2FA,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_pE00,uca520_pE01,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL +}; + + +MY_UCA_INFO my_uca_v520= +{ + { + { + 0x10FFFF, /* maxchar */ + uca520_length, + uca520_weight, + { /* Contractions: */ + 0, /* nitems */ + NULL, /* item */ + NULL /* flags */ + } + }, + }, + + 0x0009, /* first_non_ignorable p != ignore */ + 0x1342E, /* last_non_ignorable Not a CJK and not UASSIGNED */ + + 0x0332, /* first_primary_ignorable p == ignore */ + 0x101FD, /* last_primary_ignorable */ + + 0x0000, /* first_secondary_ignorable p,s= ignore */ + 0xFE73, /* last_secondary_ignorable */ + + 0x0000, /* first_tertiary_ignorable p,s,t == ignore */ + 0xFE73, /* last_tertiary_ignorable */ + + 0x0000, /* first_trailing */ + 0x0000, /* last_trailing */ + + 0x0009, /* first_variable if alt=non-ignorable: p != ignore */ + 0x1D371, /* last_variable if alt=shifter: p,s,t == ignore */ +}; + + +/******************************************************/ + +/* + German Phonebook +*/ +static const char german2[]= + "&AE << \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 " + "&OE << \\u0153 <<< \\u0152 << \\u00F6 <<< \\u00D6 " + "&UE << \\u00FC <<< \\u00DC "; + + +/* + Some sources treat LETTER A WITH DIARESIS (00E4,00C4) + secondary greater than LETTER AE (00E6,00C6). + http://www.evertype.com/alphabets/icelandic.pdf + http://developer.mimer.com/collations/charts/icelandic.htm + + Other sources do not provide any special rules + for LETTER A WITH DIARESIS: + http://www.omniglot.com/writing/icelandic.htm + http://en.wikipedia.org/wiki/Icelandic_alphabet + http://oss.software.ibm.com/icu/charts/collation/is.html + + Let's go the first way. +*/ + +static const char icelandic[]= + "& A < \\u00E1 <<< \\u00C1 " + "& D < \\u00F0 <<< \\u00D0 " + "& E < \\u00E9 <<< \\u00C9 " + "& I < \\u00ED <<< \\u00CD " + "& O < \\u00F3 <<< \\u00D3 " + "& U < \\u00FA <<< \\u00DA " + "& Y < \\u00FD <<< \\u00DD " + "& Z < \\u00FE <<< \\u00DE " + "< \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 " + "< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 " + "< \\u00E5 <<< \\u00C5 "; + +/* + Some sources treat I and Y primary different. + Other sources treat I and Y the same on primary level. + We'll go the first way. +*/ + +static const char latvian[]= + "& C < \\u010D <<< \\u010C " + "& G < \\u0123 <<< \\u0122 " + "& I < \\u0079 <<< \\u0059 " + "& K < \\u0137 <<< \\u0136 " + "& L < \\u013C <<< \\u013B " + "& N < \\u0146 <<< \\u0145 " + "& R < \\u0157 <<< \\u0156 " + "& S < \\u0161 <<< \\u0160 " + "& Z < \\u017E <<< \\u017D "; + + +static const char romanian[]= + "& A < \\u0103 <<< \\u0102 < \\u00E2 <<< \\u00C2 " + "& I < \\u00EE <<< \\u00CE " + "& S < \\u0219 <<< \\u0218 << \\u015F <<< \\u015E " + "& T < \\u021B <<< \\u021A << \\u0163 <<< \\u0162 "; + +static const char slovenian[]= + "& C < \\u010D <<< \\u010C " + "& S < \\u0161 <<< \\u0160 " + "& Z < \\u017E <<< \\u017D "; + + +static const char polish[]= + "& A < \\u0105 <<< \\u0104 " + "& C < \\u0107 <<< \\u0106 " + "& E < \\u0119 <<< \\u0118 " + "& L < \\u0142 <<< \\u0141 " + "& N < \\u0144 <<< \\u0143 " + "& O < \\u00F3 <<< \\u00D3 " + "& S < \\u015B <<< \\u015A " + "& Z < \\u017A <<< \\u0179 < \\u017C <<< \\u017B"; + +static const char estonian[]= + "& S < \\u0161 <<< \\u0160 " + " < \\u007A <<< \\u005A " + " < \\u017E <<< \\u017D " + "& W < \\u00F5 <<< \\u00D5 " + "< \\u00E4 <<< \\u00C4 " + "< \\u00F6 <<< \\u00D6 " + "< \\u00FC <<< \\u00DC "; + +static const char spanish[]= "& N < \\u00F1 <<< \\u00D1 "; + +/* + Some sources treat V and W as similar on primary level. + We'll treat V and W as different on primary level. +*/ + +static const char swedish[]= + "& Y <<\\u00FC <<< \\u00DC " + "& Z < \\u00E5 <<< \\u00C5 " + "< \\u00E4 <<< \\u00C4 << \\u00E6 <<< \\u00C6 " + "< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 "; + +static const char turkish[]= + "& C < \\u00E7 <<< \\u00C7 " + "& G < \\u011F <<< \\u011E " + "& H < \\u0131 <<< \\u0049 " + "& O < \\u00F6 <<< \\u00D6 " + "& S < \\u015F <<< \\u015E " + "& U < \\u00FC <<< \\u00DC "; + + +static const char czech[]= + "& C < \\u010D <<< \\u010C " + "& H < ch <<< Ch <<< CH" + "& R < \\u0159 <<< \\u0158" + "& S < \\u0161 <<< \\u0160" + "& Z < \\u017E <<< \\u017D"; + +static const char danish[]= /* Also good for Norwegian */ + "& Y << \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170" + "& Z < \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4" + " < \\u00F8 <<< \\u00D8 << \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150" + " < \\u00E5 <<< \\u00C5 << aa <<< Aa <<< AA"; + +static const char lithuanian[]= + "& C << ch <<< Ch <<< CH< \\u010D <<< \\u010C" + "& E << \\u0119 <<< \\u0118 << \\u0117 <<< \\u0116" + "& I << y <<< Y" + "& S < \\u0161 <<< \\u0160" + "& Z < \\u017E <<< \\u017D"; + +static const char slovak[]= + "& A < \\u00E4 <<< \\u00C4" + "& C < \\u010D <<< \\u010C" + "& H < ch <<< Ch <<< CH" + "& O < \\u00F4 <<< \\u00D4" + "& S < \\u0161 <<< \\u0160" + "& Z < \\u017E <<< \\u017D"; + +static const char spanish2[]= /* Also good for Asturian and Galician */ + "&C < ch <<< Ch <<< CH" + "&L < ll <<< Ll <<< LL" + "&N < \\u00F1 <<< \\u00D1"; + +static const char roman[]= /* i.e. Classical Latin */ + "& I << j <<< J " + "& V << u <<< U "; + +/* + Persian collation support was provided by + Jody McIntyre + + To: internals@lists.mysql.com + Subject: Persian UTF8 collation support + Date: 17.08.2004 + + Contraction is not implemented. Some implementations do perform + contraction but others do not, and it is able to sort all my test + strings correctly. + + Jody. +*/ +static const char persian[]= + "& \\u066D < \\u064E < \\uFE76 < \\uFE77 < \\u0650 < \\uFE7A < \\uFE7B" + " < \\u064F < \\uFE78 < \\uFE79 < \\u064B < \\uFE70 < \\uFE71" + " < \\u064D < \\uFE74 < \\u064C < \\uFE72" + "& \\uFE7F < \\u0653 < \\u0654 < \\u0655 < \\u0670" + "& \\u0669 < \\u0622 < \\u0627 < \\u0671 < \\u0621 < \\u0623 < \\u0625" + " < \\u0624 < \\u0626" + "& \\u0642 < \\u06A9 < \\u0643" + "& \\u0648 < \\u0647 < \\u0629 < \\u06C0 < \\u06CC < \\u0649 < \\u064A" + "& \\uFE80 < \\uFE81 < \\uFE82 < \\uFE8D < \\uFE8E < \\uFB50 < \\uFB51" + " < \\uFE80 " + /* + FE80 appears both in reset and shift. + We need to break the rule here and reset to *new* FE80 again, + so weight for FE83 is calculated as P[FE80]+1, not as P[FE80]+8. + */ + " & \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85" + " < \\uFE86 < \\u0689 < \\u068A" + "& \\uFEAE < \\uFDFC" + "& \\uFED8 < \\uFB8E < \\uFB8F < \\uFB90 < \\uFB91 < \\uFED9 < \\uFEDA" + " < \\uFEDB < \\uFEDC" + "& \\uFEEE < \\uFEE9 < \\uFEEA < \\uFEEB < \\uFEEC < \\uFE93 < \\uFE94" + " < \\uFBA4 < \\uFBA5 < \\uFBFC < \\uFBFD < \\uFBFE < \\uFBFF" + " < \\uFEEF < \\uFEF0 < \\uFEF1 < \\uFEF2 < \\uFEF3 < \\uFEF4" + " < \\uFEF5 < \\uFEF6 < \\uFEF7 < \\uFEF8 < \\uFEF9 < \\uFEFA" + " < \\uFEFB < \\uFEFC"; + +/* + Esperanto tailoring. + Contributed by Bertilo Wennergren + September 1, 2005 +*/ +static const char esperanto[]= + "& C < \\u0109 <<< \\u0108" + "& G < \\u011D <<< \\u011C" + "& H < \\u0125 <<< \\u0124" + "& J < \\u0135 <<< \\u0134" + "& S < \\u015d <<< \\u015c" + "& U < \\u016d <<< \\u016c"; + +/* + A simplified version of Hungarian, without consonant contractions. +*/ +static const char hungarian[]= + "&O < \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150" + "&U < \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170"; + + +static const char croatian[]= + "&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106" + "&D < d\\u017E = \\u01C6 <<< d\\u017D <<< D\\u017E = \\u01C5 <<< D\\u017D = \\u01C4" + " < \\u0111 <<< \\u0110" + "&L < lj = \\u01C9 <<< lJ <<< Lj = \\u01C8 <<< LJ = \\u01C7" + "&N < nj = \\u01CC <<< nJ <<< Nj = \\u01CB <<< NJ = \\u01CA" + "&S < \\u0161 <<< \\u0160" + "&Z < \\u017E <<< \\u017D"; + + +/* + SCCII Part 1 : Collation Sequence (SLS1134) + 2006/11/24 + Harshula Jayasuriya + Language Technology Research Lab, University of Colombo / ICTA +*/ +#if 0 +static const char sinhala[]= + "& \\u0D96 < \\u0D82 < \\u0D83" + "& \\u0DA5 < \\u0DA4" + "& \\u0DD8 < \\u0DF2 < \\u0DDF < \\u0DF3" + "& \\u0DDE < \\u0DCA"; +#else +static const char sinhala[]= + "& \\u0D96 < \\u0D82 < \\u0D83 < \\u0D9A < \\u0D9B < \\u0D9C < \\u0D9D" + "< \\u0D9E < \\u0D9F < \\u0DA0 < \\u0DA1 < \\u0DA2 < \\u0DA3" + "< \\u0DA5 < \\u0DA4 < \\u0DA6" + "< \\u0DA7 < \\u0DA8 < \\u0DA9 < \\u0DAA < \\u0DAB < \\u0DAC" + "< \\u0DAD < \\u0DAE < \\u0DAF < \\u0DB0 < \\u0DB1" + "< \\u0DB3 < \\u0DB4 < \\u0DB5 < \\u0DB6 < \\u0DB7 < \\u0DB8" + "< \\u0DB9 < \\u0DBA < \\u0DBB < \\u0DBD < \\u0DC0 < \\u0DC1" + "< \\u0DC2 < \\u0DC3 < \\u0DC4 < \\u0DC5 < \\u0DC6" + "< \\u0DCF" + "< \\u0DD0 < \\u0DD1 < \\u0DD2 < \\u0DD3 < \\u0DD4 < \\u0DD6" + "< \\u0DD8 < \\u0DF2 < \\u0DDF < \\u0DF3 < \\u0DD9 < \\u0DDA" + "< \\u0DDB < \\u0DDC < \\u0DDD < \\u0DDE < \\u0DCA"; +#endif + + +static const char vietnamese[]= +" &A << \\u00E0 <<< \\u00C0" /* A */ + " << \\u1EA3 <<< \\u1EA2" + " << \\u00E3 <<< \\u00C3" + " << \\u00E1 <<< \\u00C1" + " << \\u1EA1 <<< \\u1EA0" + " < \\u0103 <<< \\u0102" /* A WITH BREVE */ + " << \\u1EB1 <<< \\u1EB0" + " << \\u1EB3 <<< \\u1EB2" + " << \\u1EB5 <<< \\u1EB4" + " << \\u1EAF <<< \\u1EAE" + " << \\u1EB7 <<< \\u1EB6" + " < \\u00E2 <<< \\u00C2" /* A WITH CIRCUMFLEX */ + " << \\u1EA7 <<< \\u1EA6" + " << \\u1EA9 <<< \\u1EA8" + " << \\u1EAB <<< \\u1EAA" + " << \\u1EA5 <<< \\u1EA4" + " << \\u1EAD <<< \\u1EAC" +" &D < \\u0111 <<< \\u0110" /* D WITH STROKE */ +" &E << \\u00E8 <<< \\u00C8" /* E */ + " << \\u1EBB <<< \\u1EBA" + " << \\u1EBD <<< \\u1EBC" + " << \\u00E9 <<< \\u00C9" + " << \\u1EB9 <<< \\u1EB8" + " < \\u00EA <<< \\u00CA" /* E WITH CIRCUMFLEX */ + " << \\u1EC1 <<< \\u1EC0" + " << \\u1EC3 <<< \\u1EC2" + " << \\u1EC5 <<< \\u1EC4" + " << \\u1EBF <<< \\u1EBE" + " << \\u1EC7 <<< \\u1EC6" +" &I << \\u00EC <<< \\u00CC" /* I */ + " << \\u1EC9 <<< \\u1EC8" + " << \\u0129 <<< \\u0128" + " << \\u00ED <<< \\u00CD" + " << \\u1ECB <<< \\u1ECA" +" &O << \\u00F2 <<< \\u00D2" /* O */ + " << \\u1ECF <<< \\u1ECE" + " << \\u00F5 <<< \\u00D5" + " << \\u00F3 <<< \\u00D3" + " << \\u1ECD <<< \\u1ECC" + " < \\u00F4 <<< \\u00D4" /* O WITH CIRCUMFLEX */ + " << \\u1ED3 <<< \\u1ED2" + " << \\u1ED5 <<< \\u1ED4" + " << \\u1ED7 <<< \\u1ED6" + " << \\u1ED1 <<< \\u1ED0" + " << \\u1ED9 <<< \\u1ED8" + " < \\u01A1 <<< \\u01A0" /* O WITH HORN */ + " << \\u1EDD <<< \\u1EDC" + " << \\u1EDF <<< \\u1EDE" + " << \\u1EE1 <<< \\u1EE0" + " << \\u1EDB <<< \\u1EDA" + " << \\u1EE3 <<< \\u1EE2" +" &U << \\u00F9 <<< \\u00D9" /* U */ + " << \\u1EE7 <<< \\u1EE6" + " << \\u0169 <<< \\u0168" + " << \\u00FA <<< \\u00DA" + " << \\u1EE5 <<< \\u1EE4" + " < \\u01B0 <<< \\u01AF" /* U WITH HORN */ + " << \\u1EEB <<< \\u1EEA" + " << \\u1EED <<< \\u1EEC" + " << \\u1EEF <<< \\u1EEE" + " << \\u1EE9 <<< \\u1EE8" + " << \\u1EF1 <<< \\u1EF0" +" &Y << \\u1EF3 <<< \\u1EF2" /* Y */ + " << \\u1EF7 <<< \\u1EF6" + " << \\u1EF9 <<< \\u1EF8" + " << \\u00FD <<< \\u00DD" + " << \\u1EF5 <<< \\u1EF4"; + + +/* + Unicode Collation Algorithm: + Collation element (weight) scanner, + for consequent scan of collations + weights from a string. +*/ +typedef struct my_uca_scanner_st +{ + const uint16 *wbeg; /* Beginning of the current weight string */ + const uchar *sbeg; /* Beginning of the input string */ + const uchar *send; /* End of the input string */ + const MY_UCA_WEIGHT_LEVEL *level; + uint16 implicit[2]; + int page; + int code; + const CHARSET_INFO *cs; +} my_uca_scanner; + +/* + Charset dependent scanner part, to optimize + some character sets. +*/ +typedef struct my_uca_scanner_handler_st +{ + void (*init)(my_uca_scanner *scanner, const CHARSET_INFO *cs, + const MY_UCA_WEIGHT_LEVEL *level, + const uchar *str, size_t length); + int (*next)(my_uca_scanner *scanner); +} my_uca_scanner_handler; + +static uint16 nochar[]= {0,0}; + + +#define MY_UCA_CNT_FLAG_SIZE 4096 +#define MY_UCA_CNT_FLAG_MASK 4095 + +#define MY_UCA_CNT_HEAD 1 +#define MY_UCA_CNT_TAIL 2 +#define MY_UCA_CNT_MID1 4 +#define MY_UCA_CNT_MID2 8 +#define MY_UCA_CNT_MID3 16 +#define MY_UCA_CNT_MID4 32 + +#define MY_UCA_PREVIOUS_CONTEXT_HEAD 64 +#define MY_UCA_PREVIOUS_CONTEXT_TAIL 128 + +/********** Helper functions to handle contraction ************/ + + +/** + Mark a character as a contraction part + + @param uca Pointer to UCA data + @param wc Unicode code point + @param flag flag: "is contraction head", "is contraction tail" +*/ + +static inline void +my_uca_add_contraction_flag(MY_CONTRACTIONS *list, my_wc_t wc, int flag) +{ + list->flags[wc & MY_UCA_CNT_FLAG_MASK]|= flag; +} + + +/** + Add a new contraction into contraction list + + @param uca Pointer to UCA data + @param wc Unicode code points of the characters + @param len Number of characters + + @return New contraction + @retval Pointer to a newly added contraction +*/ + +static MY_CONTRACTION * +my_uca_add_contraction(MY_CONTRACTIONS *list, my_wc_t *wc, size_t len, + my_bool with_context) +{ + MY_CONTRACTION *next= &list->item[list->nitems]; + size_t i; + /* + Contraction is always at least 2 characters. + Contraction is never longer than MY_UCA_MAX_CONTRACTION, + which is guaranteed by using my_coll_rule_expand() with proper limit. + */ + DBUG_ASSERT(len > 1 && len <= MY_UCA_MAX_CONTRACTION); + for (i= 0; i < len; i++) + { + /* + We don't support contractions with U+0000. + my_coll_rule_expand() guarantees there're no U+0000 in a contraction. + */ + DBUG_ASSERT(wc[i] != 0); + next->ch[i]= wc[i]; + } + if (i < MY_UCA_MAX_CONTRACTION) + next->ch[i]= 0; /* Add end-of-line marker */ + next->with_context= with_context; + list->nitems++; + return next; +} + + +/** + Allocate and initialize memory for contraction list and flags + + @param uca Pointer to UCA data + @param alloc Memory allocation function (typically points to my_alloc_once) + @param n Number of contractions + + @return Error code + @retval 0 - memory allocated successfully + @retval 1 - not enough memory +*/ + +static my_bool +my_uca_alloc_contractions(MY_CONTRACTIONS *contractions, + MY_CHARSET_LOADER *loader, size_t n) +{ + size_t size= n * sizeof(MY_CONTRACTION); + if (!(contractions->item= (loader->once_alloc)(size)) || + !(contractions->flags= (char *) (loader->once_alloc)(MY_UCA_CNT_FLAG_SIZE))) + return 1; + memset(contractions->item, 0, size); + memset(contractions->flags, 0, MY_UCA_CNT_FLAG_SIZE); + return 0; +} + + +/** + Return UCA contraction data for a CHARSET_INFO structure. + + @param cs Pointer to CHARSET_INFO structure + @retval Pointer to contraction data + @retval NULL, if this collation does not have UCA contraction +*/ + +const MY_CONTRACTIONS * +my_charset_get_contractions(const CHARSET_INFO *cs, int level) +{ + return (cs->uca != NULL) && (cs->uca->level[level].contractions.nitems > 0) ? + &cs->uca->level[level].contractions : NULL; +} + + +/** + Check if UCA level data has contractions (static version) + Static quick version of my_uca_have_contractions(), + optimized for performance purposes, also marked as "inline". + + @param level Pointer to UCA level data + + @return Flags indicating if UCA with contractions + @retval 0 - no contractions + @retval 1 - there are some contractions +*/ + +static inline my_bool +my_uca_have_contractions_quick(const MY_UCA_WEIGHT_LEVEL *level) +{ + return (level->contractions.nitems > 0); +} + + + +/** + Check if a character can be contraction head + + @param c Pointer to UCA contraction data + @param wc Code point + + @retval 0 - cannot be contraction head + @retval 1 - can be contraction head +*/ + +my_bool +my_uca_can_be_contraction_head(const MY_CONTRACTIONS *c, my_wc_t wc) +{ + return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD; +} + + +/** + Check if a character can be contraction tail + + @param c Pointer to UCA contraction data + @param wc Code point + + @retval 0 - cannot be contraction tail + @retval 1 - can be contraction tail +*/ + +my_bool +my_uca_can_be_contraction_tail(const MY_CONTRACTIONS *c, my_wc_t wc) +{ + return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL; +} + + +/** + Check if a character can be contraction part + + @param c Pointer to UCA contraction data + @param wc Code point + + @retval 0 - cannot be contraction part + @retval 1 - can be contraction part +*/ + +static inline my_bool +my_uca_can_be_contraction_part(const MY_CONTRACTIONS *c, my_wc_t wc, int flag) +{ + return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & flag; +} + + +/** + Find a contraction consisting of two characters and return its weight array + + @param list Pointer to UCA contraction data + @param wc1 First character + @param wc2 Second character + + @return Weight array + @retval NULL - no contraction found + @retval ptr - contraction weight array +*/ + +uint16 * +my_uca_contraction2_weight(const MY_CONTRACTIONS *list, my_wc_t wc1, my_wc_t wc2) +{ + MY_CONTRACTION *c, *last; + for (c= list->item, last= c + list->nitems; c < last; c++) + { + if (c->ch[0] == wc1 && c->ch[1] == wc2 && c->ch[2] == 0) + { + return c->weight; + } + } + return NULL; +} + + +/** + Check if a character can be previous context head + + @param list Pointer to UCA contraction data + @param wc Code point + + @return + @retval FALSE - cannot be previous context head + @retval TRUE - can be previous context head +*/ + +my_bool +my_uca_can_be_previous_context_head(const MY_CONTRACTIONS *list, my_wc_t wc) +{ + return list->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_HEAD; +} + + +/** + Check if a character can be previois context tail + + @param uca Pointer to UCA contraction data + @param wc Code point + + @return + @retval FALSE - cannot be contraction tail + @retval TRUE - can be contraction tail +*/ + +my_bool +my_uca_can_be_previous_context_tail(const MY_CONTRACTIONS *list, my_wc_t wc) +{ + return list->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_TAIL; +} + + +/** + Compare two wide character strings, wide analog to strncmp(). + + @param a Pointer to the first string + @param b Pointer to the second string + @param len Length of the strings + + @return + @retval 0 - strings are equal + @retval non-zero - strings are different +*/ + +static int +my_wmemcmp(my_wc_t *a, my_wc_t *b, size_t len) +{ + return memcmp(a, b, len * sizeof(my_wc_t)); +} + + +/** + Check if a string is a contraction, + and return its weight array on success. + + @param list Pointer to UCA contraction data + @param wc Pointer to wide string + @param len String length + + @return Weight array + @retval NULL - Input string is not a known contraction + @retval ptr - contraction weight array +*/ + +static inline uint16 * +my_uca_contraction_weight(const MY_CONTRACTIONS *list, my_wc_t *wc, size_t len) +{ + MY_CONTRACTION *c, *last; + for (c= list->item, last= c + list->nitems; c < last; c++) + { + if ((len == MY_UCA_MAX_CONTRACTION || c->ch[len] == 0) && + !c->with_context && + !my_wmemcmp(c->ch, wc, len)) + return c->weight; + } + return NULL; +} + + +/** + Find a contraction in the input stream and return its weight array + + Scan input characters while their flags tell that they can be + a contraction part. Then try to find real contraction among the + candidates, starting from the longest. + + @param scanner Pointer to UCA scanner + @param[OUT] *wc Where to store the scanned string + + @return Weight array + @retval NULL - no contraction found + @retval ptr - contraction weight array +*/ + +static uint16 * +my_uca_scanner_contraction_find(my_uca_scanner *scanner, my_wc_t *wc) +{ + size_t clen= 1; + int flag; + uchar *s, *beg[MY_UCA_MAX_CONTRACTION]; + memset(beg, 0, sizeof(beg)); + + /* Scan all contraction candidates */ + for (s= (uchar*)scanner->sbeg, flag= MY_UCA_CNT_MID1; + clen < MY_UCA_MAX_CONTRACTION; + flag<<= 1) + { + int mblen; + if ((mblen= scanner->cs->cset->mb_wc(scanner->cs, &wc[clen], + s, scanner->send)) <= 0) + break; + beg[clen]= s= s + mblen; + if (!my_uca_can_be_contraction_part(&scanner->level->contractions, + wc[clen++], flag)) + break; + } + + /* Find among candidates the longest real contraction */ + for ( ; clen > 1; clen--) + { + uint16 *cweight; + if (my_uca_can_be_contraction_tail(&scanner->level->contractions, + wc[clen - 1]) && + (cweight= my_uca_contraction_weight(&scanner->level->contractions, + wc, clen))) + { + scanner->wbeg= cweight + 1; + scanner->sbeg= beg[clen - 1]; + return cweight; + } + } + + return NULL; /* No contractions were found */ +} + + +/** + Find weight for contraction with previous context + and return its weight array. + + @param scanner Pointer to UCA scanner + @param wc0 Previous character + @param wc1 Current character + + @return Weight array + @retval NULL - no contraction with context found + @retval ptr - contraction weight array +*/ + +uint16 * +my_uca_previous_context_find(my_uca_scanner *scanner, + my_wc_t wc0, my_wc_t wc1) +{ + const MY_CONTRACTIONS *list= &scanner->level->contractions; + MY_CONTRACTION *c, *last; + for (c= list->item, last= c + list->nitems; c < last; c++) + { + if (c->with_context && wc0 == c->ch[0] && wc1 == c->ch[1]) + { + scanner->wbeg= c->weight + 1; + return c->weight; + } + } + return NULL; +} + +/****************************************************************/ + + +/** + Return implicit UCA weight + Used for characters that do not have assigned UCA weights. + + @param scanner UCA weight scanner + + @return The leading implicit weight. +*/ + +static inline int +my_uca_scanner_next_implicit(my_uca_scanner *scanner) +{ + scanner->code= (scanner->page << 8) + scanner->code; + scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000; + scanner->implicit[1]= 0; + scanner->wbeg= scanner->implicit; + + scanner->page= scanner->page >> 7; + + if (scanner->code >= 0x3400 && scanner->code <= 0x4DB5) + scanner->page+= 0xFB80; + else if (scanner->code >= 0x4E00 && scanner->code <= 0x9FA5) + scanner->page+= 0xFB40; + else + scanner->page+= 0xFBC0; + + return scanner->page; +} + + +/* + The same two functions for any character set +*/ +static void +my_uca_scanner_init_any(my_uca_scanner *scanner, + const CHARSET_INFO *cs, + const MY_UCA_WEIGHT_LEVEL *level, + const uchar *str, size_t length) +{ + /* Note, no needs to initialize scanner->wbeg */ + scanner->sbeg= str; + scanner->send= str + length; + scanner->wbeg= nochar; + scanner->level= level; + scanner->cs= cs; +} + +static int my_uca_scanner_next_any(my_uca_scanner *scanner) +{ + /* + Check if the weights for the previous character have been + already fully scanned. If yes, then get the next character and + initialize wbeg and wlength to its weight string. + */ + + if (scanner->wbeg[0]) /* More weights left from the previous step: */ + return *scanner->wbeg++; /* return the next weight from expansion */ + + do + { + uint16 *wpage; + my_wc_t wc[MY_UCA_MAX_CONTRACTION]; + int mblen; + + /* Get next character */ + if (((mblen= scanner->cs->cset->mb_wc(scanner->cs, wc, + scanner->sbeg, + scanner->send)) <= 0)) + return -1; + + scanner->sbeg+= mblen; + if (wc[0] > scanner->level->maxchar) + { + /* Return 0xFFFD as weight for all characters outside BMP */ + scanner->wbeg= nochar; + return 0xFFFD; + } + + if (my_uca_have_contractions_quick(scanner->level)) + { + uint16 *cweight; + /* + If we have scanned a character which can have previous context, + and there were some more characters already before, + then reconstruct codepoint of the previous character + from "page" and "code" into w[1], and verify that {wc[1], wc[0]} + together form a real previous context pair. + Note, we support only 2-character long sequences with previous + context at the moment. CLDR does not have longer sequences. + */ + if (my_uca_can_be_previous_context_tail(&scanner->level->contractions, + wc[0]) && + scanner->wbeg != nochar && /* if not the very first character */ + my_uca_can_be_previous_context_head(&scanner->level->contractions, + (wc[1]= ((scanner->page << 8) + + scanner->code))) && + (cweight= my_uca_previous_context_find(scanner, wc[1], wc[0]))) + { + scanner->page= scanner->code= 0; /* Clear for the next character */ + return *cweight; + } + else if (my_uca_can_be_contraction_head(&scanner->level->contractions, + wc[0])) + { + /* Check if w[0] starts a contraction */ + if ((cweight= my_uca_scanner_contraction_find(scanner, wc))) + return *cweight; + } + } + + /* Process single character */ + scanner->page= wc[0] >> 8; + scanner->code= wc[0] & 0xFF; + + /* If weight page for w[0] does not exist, then calculate algoritmically */ + if (!(wpage= scanner->level->weights[scanner->page])) + return my_uca_scanner_next_implicit(scanner); + + /* Calculate pointer to w[0]'s weight, using page and offset */ + scanner->wbeg= wpage + + scanner->code * scanner->level->lengths[scanner->page]; + } while (!scanner->wbeg[0]); /* Skip ignorable characters */ + + return *scanner->wbeg++; +} + + +static my_uca_scanner_handler my_any_uca_scanner_handler= +{ + my_uca_scanner_init_any, + my_uca_scanner_next_any +}; + +/* + Compares two strings according to the collation + + SYNOPSIS: + my_strnncoll_uca() + cs Character set information + s First string + slen First string length + t Second string + tlen Seconf string length + + NOTES: + Initializes two weight scanners and gets weights + corresponding to two strings in a loop. If weights are not + the same at some step then returns their difference. + + In the while() comparison these situations are possible: + 1. (s_res>0) and (t_res>0) and (s_res == t_res) + Weights are the same so far, continue comparison + 2. (s_res>0) and (t_res>0) and (s_res!=t_res) + A difference has been found, return. + 3. (s_res>0) and (t_res<0) + We have reached the end of the second string, or found + an illegal multibyte sequence in the second string. + Return a positive number, i.e. the first string is bigger. + 4. (s_res<0) and (t_res>0) + We have reached the end of the first string, or found + an illegal multibyte sequence in the first string. + Return a negative number, i.e. the second string is bigger. + 5. (s_res<0) and (t_res<0) + Both scanners returned -1. It means we have riched + the end-of-string of illegal-sequence in both strings + at the same time. Return 0, strings are equal. + + RETURN + Difference between two strings, according to the collation: + 0 - means strings are equal + negative number - means the first string is smaller + positive number - means the first string is bigger +*/ + +static int my_strnncoll_uca(const CHARSET_INFO *cs, + my_uca_scanner_handler *scanner_handler, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + my_uca_scanner sscanner; + my_uca_scanner tscanner; + int s_res; + int t_res; + + scanner_handler->init(&sscanner, cs, &cs->uca->level[0], s, slen); + scanner_handler->init(&tscanner, cs, &cs->uca->level[0], t, tlen); + + do + { + s_res= scanner_handler->next(&sscanner); + t_res= scanner_handler->next(&tscanner); + } while ( s_res == t_res && s_res >0); + + return (t_is_prefix && t_res < 0) ? 0 : (s_res - t_res); +} + + +static inline int +my_space_weight(const CHARSET_INFO *cs) /* W3-TODO */ +{ + return cs->uca->level[0].weights[0][0x20 * cs->uca->level[0].lengths[0]]; +} + + +/** + Helper function: + Find address of weights of the given character. + + @param weights UCA weight array + @param lengths UCA length array + @param ch character Unicode code point + + @return Weight array + @retval pointer to weight array for the given character, + or NULL if this page does not have implicit weights. +*/ + +static inline uint16 * +my_char_weight_addr(MY_UCA_WEIGHT_LEVEL *level, uint wc) +{ + uint page, ofst; + return wc > level->maxchar ? NULL : + (level->weights[page= (wc >> 8)] ? + level->weights[page] + (ofst= (wc & 0xFF)) * level->lengths[page] : + NULL); +} + + +/* + Compares two strings according to the collation, + ignoring trailing spaces. + + SYNOPSIS: + my_strnncollsp_uca() + cs Character set information + s First string + slen First string length + t Second string + tlen Seconf string length + diff_if_only_endspace_difference + Set to 1 if the strings should be regarded as different + if they only difference in end space + + NOTES: + Works exactly the same with my_strnncoll_uca(), + but ignores trailing spaces. + + In the while() comparison these situations are possible: + 1. (s_res>0) and (t_res>0) and (s_res == t_res) + Weights are the same so far, continue comparison + 2. (s_res>0) and (t_res>0) and (s_res!=t_res) + A difference has been found, return. + 3. (s_res>0) and (t_res<0) + We have reached the end of the second string, or found + an illegal multibyte sequence in the second string. + Compare the first string to an infinite array of + space characters until difference is found, or until + the end of the first string. + 4. (s_res<0) and (t_res>0) + We have reached the end of the first string, or found + an illegal multibyte sequence in the first string. + Compare the second string to an infinite array of + space characters until difference is found or until + the end of the second steing. + 5. (s_res<0) and (t_res<0) + Both scanners returned -1. It means we have riched + the end-of-string of illegal-sequence in both strings + at the same time. Return 0, strings are equal. + + RETURN + Difference between two strings, according to the collation: + 0 - means strings are equal + negative number - means the first string is smaller + positive number - means the first string is bigger +*/ + +static int my_strnncollsp_uca(const CHARSET_INFO *cs, + my_uca_scanner_handler *scanner_handler, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + my_uca_scanner sscanner, tscanner; + int s_res, t_res; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + scanner_handler->init(&sscanner, cs, &cs->uca->level[0], s, slen); + scanner_handler->init(&tscanner, cs, &cs->uca->level[0], t, tlen); + + do + { + s_res= scanner_handler->next(&sscanner); + t_res= scanner_handler->next(&tscanner); + } while ( s_res == t_res && s_res >0); + + if (s_res > 0 && t_res < 0) + { + /* Calculate weight for SPACE character */ + t_res= my_space_weight(cs); + + /* compare the first string to spaces */ + do + { + if (s_res != t_res) + return (s_res - t_res); + s_res= scanner_handler->next(&sscanner); + } while (s_res > 0); + return diff_if_only_endspace_difference ? 1 : 0; + } + + if (s_res < 0 && t_res > 0) + { + /* Calculate weight for SPACE character */ + s_res= my_space_weight(cs); + + /* compare the second string to spaces */ + do + { + if (s_res != t_res) + return (s_res - t_res); + t_res= scanner_handler->next(&tscanner); + } while (t_res > 0); + return diff_if_only_endspace_difference ? -1 : 0; + } + + return ( s_res - t_res ); +} + +/* + Calculates hash value for the given string, + according to the collation, and ignoring trailing spaces. + + SYNOPSIS: + my_hash_sort_uca() + cs Character set information + s String + slen String's length + n1 First hash parameter + n2 Second hash parameter + + NOTES: + Scans consequently weights and updates + hash parameters n1 and n2. In a case insensitive collation, + upper and lower case of the same letter will return the same + weight sequence, and thus will produce the same hash values + in n1 and n2. + + RETURN + N/A +*/ + +static void my_hash_sort_uca(const CHARSET_INFO *cs, + my_uca_scanner_handler *scanner_handler, + const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + int s_res; + my_uca_scanner scanner; + ulong tmp1; + ulong tmp2; + + slen= cs->cset->lengthsp(cs, (char*) s, slen); + scanner_handler->init(&scanner, cs, &cs->uca->level[0], s, slen); + + tmp1= *n1; + tmp2= *n2; + + while ((s_res= scanner_handler->next(&scanner)) >0) + { + tmp1^= (((tmp1 & 63) + tmp2) * (s_res >> 8))+ (tmp1 << 8); + tmp2+=3; + tmp1^= (((tmp1 & 63) + tmp2) * (s_res & 0xFF))+ (tmp1 << 8); + tmp2+=3; + } + + *n1= tmp1; + *n2= tmp2; +} + + +/* + For the given string creates its "binary image", suitable + to be used in binary comparison, i.e. in memcmp(). + + SYNOPSIS: + my_strnxfrm_uca() + cs Character set information + dst Where to write the image + dstlen Space available for the image, in bytes + src The source string + srclen Length of the source string, in bytes + + NOTES: + In a loop, scans weights from the source string and writes + them into the binary image. In a case insensitive collation, + upper and lower cases of the same letter will produce the + same image subsequences. When we have reached the end-of-string + or found an illegal multibyte sequence, the loop stops. + + It is impossible to restore the original string using its + binary image. + + Binary images are used for bulk comparison purposes, + e.g. in ORDER BY, when it is more efficient to create + a binary image and use it instead of weight scanner + for the original strings for every comparison. + + RETURN + Number of bytes that have been written into the binary image. +*/ + + +static size_t +my_strnxfrm_uca(const CHARSET_INFO *cs, + my_uca_scanner_handler *scanner_handler, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + uchar *d0= dst; + uchar *de= dst + dstlen; + int s_res; + my_uca_scanner scanner; + scanner_handler->init(&scanner, cs, &cs->uca->level[0], src, srclen); + + for (; dst < de && nweights && + (s_res= scanner_handler->next(&scanner)) > 0 ; nweights--) + { + *dst++= s_res >> 8; + if (dst < de) + *dst++= s_res & 0xFF; + } + + if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE)) + { + uint space_count= MY_MIN((uint) (de - dst) / 2, nweights); + s_res= my_space_weight(cs); + for (; space_count ; space_count--) + { + *dst++= s_res >> 8; + *dst++= s_res & 0xFF; + } + } + my_strxfrm_desc_and_reverse(d0, dst, flags, 0); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de) + { + s_res= my_space_weight(cs); + for ( ; dst < de; ) + { + *dst++= s_res >> 8; + if (dst < de) + *dst++= s_res & 0xFF; + } + } + return dst - d0; +} + + + +/* + This function compares if two characters are the same. + The sign +1 or -1 does not matter. The only + important thing is that the result is 0 or not 0. + This fact allows us to use memcmp() safely, on both + little-endian and big-endian machines. +*/ + +static int my_uca_charcmp(const CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2) +{ + size_t length1, length2; + uint16 *weight1= my_char_weight_addr(&cs->uca->level[0], wc1); /* W3-TODO */ + uint16 *weight2= my_char_weight_addr(&cs->uca->level[0], wc2); + + /* Check if some of the characters does not have implicit weights */ + if (!weight1 || !weight2) + return wc1 != wc2; + + /* Quickly compare first weights */ + if (weight1[0] != weight2[0]) + return 1; + + /* Thoroughly compare all weights */ + length1= cs->uca->level[0].lengths[wc1 >> MY_UCA_PSHIFT]; /* W3-TODO */ + length2= cs->uca->level[0].lengths[wc2 >> MY_UCA_PSHIFT]; + + if (length1 > length2) + return memcmp((const void*)weight1, (const void*)weight2, length2*2) ? + 1: weight1[length2]; + + if (length1 < length2) + return memcmp((const void*)weight1, (const void*)weight2, length1*2) ? + 1 : weight2[length1]; + + return memcmp((const void*)weight1, (const void*)weight2, length1*2); +} + +/*** Compare string against string with wildcard +** 0 if matched +** -1 if not matched with wildcard +** 1 if matched with wildcard +*/ + +static +int my_wildcmp_uca_impl(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + my_wc_t s_wc, w_wc; + int scan; + int (*mb_wc)(const struct charset_info_st *, my_wc_t *, + const uchar *, const uchar *); + mb_wc= cs->cset->mb_wc; + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + while (wildstr != wildend) + { + while (1) + { + my_bool escaped= 0; + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + + if (w_wc == (my_wc_t)w_many) + { + result= 1; /* Found an anchor char */ + break; + } + + wildstr+= scan; + if (w_wc == (my_wc_t)escape) + { + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + wildstr+= scan; + escaped= 1; + } + + if ((scan= mb_wc(cs, &s_wc, (const uchar*)str, + (const uchar*)str_end)) <= 0) + return 1; + str+= scan; + + if (!escaped && w_wc == (my_wc_t)w_one) + { + result= 1; /* Found an anchor char */ + } + else + { + if (my_uca_charcmp(cs,s_wc,w_wc)) + return 1; + } + if (wildstr == wildend) + return (str != str_end); /* Match if both are at end */ + } + + + if (w_wc == (my_wc_t)w_many) + { /* Found w_many */ + + /* Remove any '%' and '_' from the wild search string */ + for ( ; wildstr != wildend ; ) + { + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + + if (w_wc == (my_wc_t)w_many) + { + wildstr+= scan; + continue; + } + + if (w_wc == (my_wc_t)w_one) + { + wildstr+= scan; + if ((scan= mb_wc(cs, &s_wc, (const uchar*)str, + (const uchar*)str_end)) <= 0) + return 1; + str+= scan; + continue; + } + break; /* Not a wild character */ + } + + if (wildstr == wildend) + return 0; /* Ok if w_many is last */ + + if (str == str_end) + return -1; + + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + + if (w_wc == (my_wc_t)escape) + { + wildstr+= scan; + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + } + + while (1) + { + /* Skip until the first character from wildstr is found */ + while (str != str_end) + { + if ((scan= mb_wc(cs, &s_wc, (const uchar*)str, + (const uchar*)str_end)) <= 0) + return 1; + + if (!my_uca_charcmp(cs,s_wc,w_wc)) + break; + str+= scan; + } + if (str == str_end) + return -1; + + result= my_wildcmp_uca_impl(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, recurse_level + 1); + + if (result <= 0) + return result; + + str+= scan; + } + } + } + return (str != str_end ? 1 : 0); +} + +int my_wildcmp_uca(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_uca_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + + +/* + Collation language is implemented according to + subset of ICU Collation Customization (tailorings): + http://icu.sourceforge.net/userguide/Collate_Customization.html + + Collation language elements: + Delimiters: + space - skipped + + := A-Z | a-z | \uXXXX + + Shift command: + := & - reset at this letter. + + Diff command: + := < - Identifies a primary difference. + := << - Identifies a secondary difference. + := <<< - Idenfifies a tertiary difference. + + + Collation rules: + := { } + + := + | + | + | + + := [ ] + + An example, Polish collation: + + &A < \u0105 <<< \u0104 + &C < \u0107 <<< \u0106 + &E < \u0119 <<< \u0118 + &L < \u0142 <<< \u0141 + &N < \u0144 <<< \u0143 + &O < \u00F3 <<< \u00D3 + &S < \u015B <<< \u015A + &Z < \u017A <<< \u017B +*/ + + +typedef enum my_coll_lexem_num_en +{ + MY_COLL_LEXEM_EOF = 0, + MY_COLL_LEXEM_SHIFT = 1, + MY_COLL_LEXEM_RESET = 4, + MY_COLL_LEXEM_CHAR = 5, + MY_COLL_LEXEM_ERROR = 6, + MY_COLL_LEXEM_OPTION = 7, + MY_COLL_LEXEM_EXTEND = 8, + MY_COLL_LEXEM_CONTEXT = 9, +} my_coll_lexem_num; + + +/** + Convert collation customization lexem to string, + for nice error reporting + + @param term lexem code + + @return lexem name +*/ + +static const char * +my_coll_lexem_num_to_str(my_coll_lexem_num term) +{ + switch (term) + { + case MY_COLL_LEXEM_EOF: return "EOF"; + case MY_COLL_LEXEM_SHIFT: return "Shift"; + case MY_COLL_LEXEM_RESET: return "&"; + case MY_COLL_LEXEM_CHAR: return "Character"; + case MY_COLL_LEXEM_OPTION: return "Bracket option"; + case MY_COLL_LEXEM_EXTEND: return "/"; + case MY_COLL_LEXEM_CONTEXT:return "|"; + case MY_COLL_LEXEM_ERROR: return "ERROR"; + } + return NULL; +} + + +typedef struct my_coll_lexem_st +{ + my_coll_lexem_num term; + const char *beg; + const char *end; + const char *prev; + int diff; + int code; +} MY_COLL_LEXEM; + + +/* + Initialize collation rule lexical anilizer + + SYNOPSIS + my_coll_lexem_init + lexem Lex analizer to init + str Const string to parse + str_end End of the string + USAGE + + RETURN VALUES + N/A +*/ + +static void my_coll_lexem_init(MY_COLL_LEXEM *lexem, + const char *str, const char *str_end) +{ + lexem->beg= str; + lexem->prev= str; + lexem->end= str_end; + lexem->diff= 0; + lexem->code= 0; +} + + +/** + Compare lexem to string with length + + @param lexem lexem + @param pattern string + @param patternlen string length + + @return + @retval 0 if lexem is equal to string, non-0 otherwise. +*/ + +static int +lex_cmp(MY_COLL_LEXEM *lexem, const char *pattern, size_t patternlen) +{ + size_t lexemlen= lexem->beg - lexem->prev; + if (lexemlen < patternlen) + return 1; /* Not a prefix */ + return native_strncasecmp(lexem->prev, pattern, patternlen); +} + + +/* + Print collation customization expression parse error, with context. + + SYNOPSIS + my_coll_lexem_print_error + lexem Lex analizer to take context from + errstr sting to write error to + errsize errstr size + txt error message + col_name collation name + USAGE + + RETURN VALUES + N/A +*/ + +static void my_coll_lexem_print_error(MY_COLL_LEXEM *lexem, + char *errstr, size_t errsize, + const char *txt, const char *col_name) +{ + char tail[30]; + size_t len= lexem->end - lexem->prev; + strmake (tail, lexem->prev, (size_t) MY_MIN(len, sizeof(tail)-1)); + errstr[errsize-1]= '\0'; + my_snprintf(errstr, errsize - 1, + "%s at '%s' for COLLATION : %s", txt[0] ? txt : "Syntax error", + tail, col_name); +} + + +/* + Convert a hex digit into its numeric value + + SYNOPSIS + ch2x + ch hex digit to convert + USAGE + + RETURN VALUES + an integer value in the range 0..15 + -1 on error +*/ + +static int ch2x(int ch) +{ + if (ch >= '0' && ch <= '9') + return ch - '0'; + + if (ch >= 'a' && ch <= 'f') + return 10 + ch - 'a'; + + if (ch >= 'A' && ch <= 'F') + return 10 + ch - 'A'; + + return -1; +} + + +/* + Collation language lexical parser: + Scans the next lexem. + + SYNOPSIS + my_coll_lexem_next + lexem Lex analizer, previously initialized by + my_coll_lexem_init. + USAGE + Call this function in a loop + + RETURN VALUES + Lexem number: eof, diff, shift, char or error. +*/ + +static my_coll_lexem_num my_coll_lexem_next(MY_COLL_LEXEM *lexem) +{ + const char *beg; + my_coll_lexem_num rc; + + for (beg= lexem->beg ; beg < lexem->end ; beg++) + { + switch (*beg) + { + case ' ': + case '\t': + case '\r': + case '\n': + continue; + + case '[': /* Bracket expression, e.g. "[optimize [a-z]]" */ + { + size_t nbrackets; /* Indicates nested recursion level */ + for (beg++, nbrackets= 1 ; beg < lexem->end; beg++) + { + if (*beg == '[') /* Enter nested bracket expression */ + nbrackets++; + else if (*beg == ']') + { + if (--nbrackets == 0) + { + rc= MY_COLL_LEXEM_OPTION; + beg++; + goto ex; + } + } + } + rc= MY_COLL_LEXEM_ERROR; + goto ex; + } + + case '&': + beg++; + rc= MY_COLL_LEXEM_RESET; + goto ex; + + case '=': + beg++; + lexem->diff= 0; + rc= MY_COLL_LEXEM_SHIFT; + goto ex; + + case '/': + beg++; + rc= MY_COLL_LEXEM_EXTEND; + goto ex; + + case '|': + beg++; + rc= MY_COLL_LEXEM_CONTEXT; + goto ex; + + case '<': /* Shift: '<' or '<<' or '<<<' or '<<<<' */ + { + /* Scan up to 3 additional '<' characters */ + for (beg++, lexem->diff= 1; + (beg < lexem->end) && (*beg == '<') && (lexem->diff <= 3); + beg++, lexem->diff++); + rc= MY_COLL_LEXEM_SHIFT; + goto ex; + } + default: + break; + } + + /* Escaped character, e.g. \u1234 */ + if ((*beg == '\\') && (beg + 2 < lexem->end) && + (beg[1] == 'u') && my_isxdigit(&my_charset_utf8_general_ci, beg[2])) + { + int ch; + + beg+= 2; + lexem->code= 0; + while ((beg < lexem->end) && ((ch= ch2x(beg[0])) >= 0)) + { + lexem->code= (lexem->code << 4) + ch; + beg++; + } + rc= MY_COLL_LEXEM_CHAR; + goto ex; + } + + /* + Unescaped single byte character: + allow printable ASCII range except SPACE and + special characters parsed above []<&/|= + */ + if (*beg >= 0x21 && *beg <= 0x7E) + { + lexem->code= *beg++; + rc= MY_COLL_LEXEM_CHAR; + goto ex; + } + + if (((uchar) *beg) > 0x7F) /* Unescaped multibyte character */ + { + CHARSET_INFO *cs= &my_charset_utf8_general_ci; + my_wc_t wc; + int nbytes= cs->cset->mb_wc(cs, &wc, + (uchar *) beg, (uchar *) lexem->end); + if (nbytes > 0) + { + rc= MY_COLL_LEXEM_CHAR; + beg+= nbytes; + lexem->code= (int) wc; + goto ex; + } + } + + rc= MY_COLL_LEXEM_ERROR; + goto ex; + } + rc= MY_COLL_LEXEM_EOF; + +ex: + lexem->prev= lexem->beg; + lexem->beg= beg; + lexem->term= rc; + return rc; +} + + +/* + Collation rule item +*/ + +#define MY_UCA_MAX_EXPANSION 6 /* Maximum expansion length */ + +typedef struct my_coll_rule_item_st +{ + my_wc_t base[MY_UCA_MAX_EXPANSION]; /* Base character */ + my_wc_t curr[MY_UCA_MAX_CONTRACTION]; /* Current character */ + int diff[4]; /* Primary, Secondary, Tertiary, Quaternary difference */ + size_t before_level; /* "reset before" indicator */ + my_bool with_context; +} MY_COLL_RULE; + + +/** + Return length of a 0-terminated wide string, analog to strnlen(). + + @param s Pointer to wide string + @param maxlen Mamixum string length + + @return string length, or maxlen if no '\0' is met. +*/ +static size_t +my_wstrnlen(my_wc_t *s, size_t maxlen) +{ + size_t i; + for (i= 0; i < maxlen; i++) + { + if (s[i] == 0) + return i; + } + return maxlen; +} + + +/** + Return length of the "reset" string of a rule. + + @param r Collation customization rule + + @return Length of r->base +*/ + +static inline size_t +my_coll_rule_reset_length(MY_COLL_RULE *r) +{ + return my_wstrnlen(r->base, MY_UCA_MAX_EXPANSION); +} + + +/** + Return length of the "shift" string of a rule. + + @param r Collation customization rule + + @return Length of r->base +*/ + +static inline size_t +my_coll_rule_shift_length(MY_COLL_RULE *r) +{ + return my_wstrnlen(r->curr, MY_UCA_MAX_CONTRACTION); +} + + +/** + Append new character to the end of a 0-terminated wide string. + + @param wc Wide string + @param limit Maximum possible result length + @param code Character to add + + @return 1 if character was added, 0 if string was too long +*/ + +static int +my_coll_rule_expand(my_wc_t *wc, size_t limit, my_wc_t code) +{ + size_t i; + for (i= 0; i < limit; i++) + { + if (wc[i] == 0) + { + wc[i]= code; + return 1; + } + } + return 0; +} + + +/** + Initialize collation customization rule + + @param wc Rule +*/ + +static void +my_coll_rule_reset(MY_COLL_RULE *r) +{ + memset(r, 0, sizeof(*r)); +} + + +/* + Shift methods: + Simple: "&B < C" : weight('C') = weight('B') + 1 + Expand: weght('C') = { weight('B'), weight(last_non_ignorable) + 1 } +*/ +typedef enum +{ + my_shift_method_simple= 0, + my_shift_method_expand +} my_coll_shift_method; + + +typedef struct my_coll_rules_st +{ + uint version; /* Unicode version, e.g. 400 or 520 */ + MY_UCA_INFO *uca; /* Unicode weight data */ + size_t nrules; /* Number of rules in the rule array */ + size_t mrules; /* Number of allocated rules */ + MY_COLL_RULE *rule; /* Rule array */ + MY_CHARSET_LOADER *loader; + my_coll_shift_method shift_after_method; +} MY_COLL_RULES; + + +/** + Realloc rule array to a new size. + Reallocate memory for 128 additional rules at once, + to reduce the number of reallocs, which is important + for long tailorings (e.g. for East Asian collations). + + @param rules Rule container + @param n new number of rules + + @return 0 on success, -1 on error. +*/ + +static int +my_coll_rules_realloc(MY_COLL_RULES *rules, size_t n) +{ + if (rules->nrules < rules->mrules || + (rules->rule= rules->loader->mem_realloc(rules->rule, + sizeof(MY_COLL_RULE) * + (rules->mrules= n + 128)))) + return 0; + return -1; +} + + +/** + Append one new rule to a rule array + + @param rules Rule container + @param rule New rule to add + + @return 0 on success, -1 on error. +*/ + +static int +my_coll_rules_add(MY_COLL_RULES *rules, MY_COLL_RULE *rule) +{ + if (my_coll_rules_realloc(rules, rules->nrules + 1)) + return -1; + rules->rule[rules->nrules++]= rule[0]; + return 0; +} + + +/** + Apply difference at level + + @param r Rule + @param level Level (0,1,2,3,4) +*/ + +static void +my_coll_rule_shift_at_level(MY_COLL_RULE *r, int level) +{ + switch (level) + { + case 4: /* Quaternary difference */ + r->diff[3]++; + break; + case 3: /* Tertiary difference */ + r->diff[2]++; + r->diff[3]= 0; + break; + case 2: /* Secondary difference */ + r->diff[1]++; + r->diff[2]= r->diff[3]= 0; + break; + case 1: /* Primary difference */ + r->diff[0]++; + r->diff[1]= r->diff[2]= r->diff[3]= 0; + break; + case 0: + /* Do nothing for '=': use the previous offsets for all levels */ + break; + default: + DBUG_ASSERT(0); + } +} + + +typedef struct my_coll_rule_parser_st +{ + MY_COLL_LEXEM tok[2]; /* Current token and next token for look-ahead */ + MY_COLL_RULE rule; /* Currently parsed rule */ + MY_COLL_RULES *rules; /* Rule list pointer */ + char errstr[128]; /* Error message */ +} MY_COLL_RULE_PARSER; + + +/** + Current parser token + + @param p Collation customization parser + + @return Pointer to the current token +*/ + +static MY_COLL_LEXEM * +my_coll_parser_curr(MY_COLL_RULE_PARSER *p) +{ + return &p->tok[0]; +} + + +/** + Next parser token, to look ahead. + + @param p Collation customization parser + + @return Pointer to the next token +*/ + +static MY_COLL_LEXEM * +my_coll_parser_next(MY_COLL_RULE_PARSER *p) +{ + return &p->tok[1]; +} + + +/** + Scan one token from the input stream + + @param p Collation customization parser + + @return 1, for convenience, to use in logical expressions easier. +*/ +static int +my_coll_parser_scan(MY_COLL_RULE_PARSER *p) +{ + my_coll_parser_curr(p)[0]= my_coll_parser_next(p)[0]; + my_coll_lexem_next(my_coll_parser_next(p)); + return 1; +} + + +/** + Initialize collation customization parser + + @param p Collation customization parser + @param rules Where to store rules + @param str Beginning of a collation customization sting + @param str_end End of the collation customizations string +*/ + +static void +my_coll_parser_init(MY_COLL_RULE_PARSER *p, + MY_COLL_RULES *rules, + const char *str, const char *str_end) +{ + /* + Initialize parser to the input buffer and scan two tokens, + to make the current token and the next token known. + */ + memset(p, 0, sizeof(*p)); + p->rules= rules; + p->errstr[0]= '\0'; + my_coll_lexem_init(my_coll_parser_curr(p), str, str_end); + my_coll_lexem_next(my_coll_parser_curr(p)); + my_coll_parser_next(p)[0]= my_coll_parser_curr(p)[0]; + my_coll_lexem_next(my_coll_parser_next(p)); +} + + +/** + Display error when an unexpected token found + + @param p Collation customization parser + @param term Which lexem was expected + + @return 0, to use in "return" and boolean expressions. +*/ + +static int +my_coll_parser_expected_error(MY_COLL_RULE_PARSER *p, my_coll_lexem_num term) +{ + my_snprintf(p->errstr, sizeof(p->errstr), + "%s expected", my_coll_lexem_num_to_str(term)); + return 0; +} + + +/** + Display error when a too long character sequence is met + + @param p Collation customization parser + @param name Which kind of sequence: contraction, expansion, etc. + + @return 0, to use in "return" and boolean expressions. +*/ + +static int +my_coll_parser_too_long_error(MY_COLL_RULE_PARSER *p, const char *name) +{ + my_snprintf(p->errstr, sizeof(p->errstr), "%s is too long", name); + return 0; +} + + +/** + Scan the given lexem from input stream, or display "expected" error. + + @param p Collation customization parser + @param term Which lexem is expected. + + @return + @retval 0 if the required term was not found. + @retval 1 if the required term was found. +*/ +static int +my_coll_parser_scan_term(MY_COLL_RULE_PARSER *p, my_coll_lexem_num term) +{ + if (my_coll_parser_curr(p)->term != term) + return my_coll_parser_expected_error(p, term); + return my_coll_parser_scan(p); +} + + +/* + In the following code we have a few functions to parse + various collation customization non-terminal symbols. + Unlike our usual coding convension, they return + - 0 on "error" (when the rule was not scanned) and + - 1 on "success"(when the rule was scanned). + This is done intentionally to make body of the functions look easier + and repeat the grammar of the rules in straightforward manner. + For example: + + // ::= | + int parse_x() { return parse_y() || parser_z(); } + + // ::= + int parse_x() { return parse_y() && parser_z(); } + + Using 1 on "not found" and 0 on "found" in the parser code would + make the code more error prone and harder to read because + of having to use inverse boolean logic. +*/ + + +/** + Scan a collation setting in brakets, for example UCA version. + + @param p Collation customization parser + + @return + @retval 0 if setting was scanned. + @retval 1 if setting was not scanned. +*/ + +static int +my_coll_parser_scan_setting(MY_COLL_RULE_PARSER *p) +{ + MY_COLL_RULES *rules= p->rules; + MY_COLL_LEXEM *lexem= my_coll_parser_curr(p); + + if (!lex_cmp(lexem, C_STRING_WITH_LEN("[version 4.0.0]"))) + { + rules->version= 400; + rules->uca= &my_uca_v400; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[version 5.2.0]"))) + { + rules->version= 520; + rules->uca= &my_uca_v520; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[shift-after-method expand]"))) + { + rules->shift_after_method= my_shift_method_expand; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[shift-after-method simple]"))) + { + rules->shift_after_method= my_shift_method_simple; + } + else + { + return 0; + } + return my_coll_parser_scan(p); +} + + +/** + Scan multiple collation settings + + @param p Collation customization parser + + @return + @retval 0 if no settings were scanned. + @retval 1 if one or more settings were scanned. +*/ + +static int +my_coll_parser_scan_settings(MY_COLL_RULE_PARSER *p) +{ + /* Scan collation setting or special purpose command */ + while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION) + { + if (!my_coll_parser_scan_setting(p)) + return 0; + } + return 1; +} + + +/** + Scan [before xxx] reset option + + @param p Collation customization parser + + @return + @retval 0 if reset option was not scanned. + @retval 1 if reset option was scanned. +*/ + +static int +my_coll_parser_scan_reset_before(MY_COLL_RULE_PARSER *p) +{ + MY_COLL_LEXEM *lexem= my_coll_parser_curr(p); + if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before primary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 1]"))) + { + p->rule.before_level= 1; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before secondary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 2]"))) + { + p->rule.before_level= 2; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before tertiary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 3]"))) + { + p->rule.before_level= 3; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before quaternary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 4]"))) + { + p->rule.before_level= 4; + } + else + { + p->rule.before_level= 0; + return 0; /* Don't scan thr next character */ + } + return my_coll_parser_scan(p); +} + + +/** + Scan logical position and add to the wide string. + + @param p Collation customization parser + @param pwc Wide string to add code to + @param limit The result string cannot be longer than 'limit' characters + + @return + @retval 0 if logical position was not scanned. + @retval 1 if logical position was scanned. +*/ + +static int +my_coll_parser_scan_logical_position(MY_COLL_RULE_PARSER *p, + my_wc_t *pwc, size_t limit) +{ + MY_COLL_RULES *rules= p->rules; + MY_COLL_LEXEM *lexem= my_coll_parser_curr(p); + + if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first non-ignorable]"))) + lexem->code= rules->uca->first_non_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last non-ignorable]"))) + lexem->code= rules->uca->last_non_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first primary ignorable]"))) + lexem->code= rules->uca->first_primary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last primary ignorable]"))) + lexem->code= rules->uca->last_primary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first secondary ignorable]"))) + lexem->code= rules->uca->first_secondary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last secondary ignorable]"))) + lexem->code= rules->uca->last_secondary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first tertiary ignorable]"))) + lexem->code= rules->uca->first_tertiary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last tertiary ignorable]"))) + lexem->code= rules->uca->last_tertiary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first trailing]"))) + lexem->code= rules->uca->first_trailing; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last trailing]"))) + lexem->code= rules->uca->last_trailing; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first variable]"))) + lexem->code= rules->uca->first_variable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last variable]"))) + lexem->code= rules->uca->last_variable; + else + return 0; /* Don't scan the next token */ + + if (!my_coll_rule_expand(pwc, limit, lexem->code)) + { + /* + Logical position can not be in a contraction, + so the above call should never fail. + Let's assert in debug version and print + a nice error message in production version. + */ + DBUG_ASSERT(0); + return my_coll_parser_too_long_error(p, "Logical position"); + } + return my_coll_parser_scan(p); +} + + +/** + Scan character list + + ::= CHAR [ CHAR... ] + + @param p Collation customization parser + @param pwc Character string to add code to + @param limit The result string cannot be longer than 'limit' characters + @param name E.g. "contraction", "expansion" + + @return + @retval 0 if character sequence was not scanned. + @retval 1 if character sequence was scanned. +*/ + +static int +my_coll_parser_scan_character_list(MY_COLL_RULE_PARSER *p, + my_wc_t *pwc, size_t limit, + const char *name) +{ + if (my_coll_parser_curr(p)->term != MY_COLL_LEXEM_CHAR) + return my_coll_parser_expected_error(p, MY_COLL_LEXEM_CHAR); + + if (!my_coll_rule_expand(pwc, limit, my_coll_parser_curr(p)->code)) + return my_coll_parser_too_long_error(p, name); + + if (!my_coll_parser_scan_term(p, MY_COLL_LEXEM_CHAR)) + return 0; + + while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_CHAR) + { + if (!my_coll_rule_expand(pwc, limit, my_coll_parser_curr(p)->code)) + return my_coll_parser_too_long_error(p, name); + my_coll_parser_scan(p); + } + return 1; +} + + +/** + Scan reset sequence + + ::= + [ ] + | [ ] + + @param p Collation customization parser + + @return + @retval 0 if reset sequence was not scanned. + @retval 1 if reset sequence was scanned. +*/ + +static int +my_coll_parser_scan_reset_sequence(MY_COLL_RULE_PARSER *p) +{ + my_coll_rule_reset(&p->rule); + + /* Scan "[before x]" option, if exists */ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION) + my_coll_parser_scan_reset_before(p); + + /* Try logical reset position */ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION) + { + if (!my_coll_parser_scan_logical_position(p, p->rule.base, 1)) + return 0; + } + else + { + /* Scan single reset character or expansion */ + if (!my_coll_parser_scan_character_list(p, p->rule.base, + MY_UCA_MAX_EXPANSION, "Expansion")) + return 0; + } + + if (p->rules->shift_after_method == my_shift_method_expand || + p->rule.before_level == 1) /* Apply "before primary" option */ + { + /* + Suppose we have this rule: &B[before primary] < C + i.e. we need to put C before B, but after A, so + the result order is: A < C < B. + + Let primary weight of B be [BBBB]. + + We cannot just use [BBBB-1] as weight for C: + DUCET does not have enough unused weights between any two characters, + so using [BBBB-1] will likely make C equal to the previous character, + which is A, so we'll get this order instead of the desired: A = C < B. + + To guarantee that that C is sorted after A, we'll use expansion + with a kind of "biggest possible character". + As "biggest possible character" we'll use "last_non_ignorable": + + We'll compose weight for C as: [BBBB-1][MMMM+1] + where [MMMM] is weight for "last_non_ignorable". + + We also do the same trick for "reset after" if the collation + option says so. E.g. for the rules "&B < C", weight for + C will be calculated as: [BBBB][MMMM+1] + + At this point we only need to store codepoints + 'B' and 'last_non_ignorable'. Actual weights for 'C' + will be calculated according to the above formula later, + in create_tailoring(). + */ + if (!my_coll_rule_expand(p->rule.base, MY_UCA_MAX_EXPANSION, + p->rules->uca->last_non_ignorable)) + return my_coll_parser_too_long_error(p, "Expansion"); + } + return 1; +} + + +/** + Scan shift sequence + + ::= + [ / ] + | [ | ] + + @param p Collation customization parser + + @return + @retval 0 if shift sequence was not scanned. + @retval 1 if shift sequence was scanned. +*/ + +static int +my_coll_parser_scan_shift_sequence(MY_COLL_RULE_PARSER *p) +{ + MY_COLL_RULE before_extend; + + memset(&p->rule.curr, 0, sizeof(p->rule.curr)); + + /* Scan single shift character or contraction */ + if (!my_coll_parser_scan_character_list(p, p->rule.curr, + MY_UCA_MAX_CONTRACTION, + "Contraction")) + return 0; + + before_extend= p->rule; /* Remember the part before "/" */ + + /* Append the part after "/" as expansion */ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_EXTEND) + { + my_coll_parser_scan(p); + if (!my_coll_parser_scan_character_list(p, p->rule.base, + MY_UCA_MAX_EXPANSION, + "Expansion")) + return 0; + } + else if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_CONTEXT) + { + /* + We support 2-character long context sequences only: + one character is the previous context, plus the current character. + It's OK as Unicode's CLDR does not have longer examples. + */ + my_coll_parser_scan(p); + p->rule.with_context= TRUE; + if (!my_coll_parser_scan_character_list(p, p->rule.curr + 1, 1, "context")) + return 0; + } + + /* Add rule to the rule list */ + if (my_coll_rules_add(p->rules, &p->rule)) + return 0; + + p->rule= before_extend; /* Restore to the state before "/" */ + + return 1; +} + + +/** + Scan shift operator + + ::= < | << | <<< | <<<< | = + + @param p Collation customization parser + + @return + @retval 0 if shift operator was not scanned. + @retval 1 if shift operator was scanned. +*/ +static int +my_coll_parser_scan_shift(MY_COLL_RULE_PARSER *p) +{ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_SHIFT) + { + my_coll_rule_shift_at_level(&p->rule, my_coll_parser_curr(p)->diff); + return my_coll_parser_scan(p); + } + return 0; +} + + +/** + Scan one rule: reset followed by a number of shifts + + ::= + & + + [ { }... ] + + @param p Collation customization parser + + @return + @retval 0 if rule was not scanned. + @retval 1 if rule was scanned. +*/ +static int +my_coll_parser_scan_rule(MY_COLL_RULE_PARSER *p) +{ + if (!my_coll_parser_scan_term(p, MY_COLL_LEXEM_RESET) || + !my_coll_parser_scan_reset_sequence(p)) + return 0; + + /* Scan the first required shift command */ + if (!my_coll_parser_scan_shift(p)) + return my_coll_parser_expected_error(p, MY_COLL_LEXEM_SHIFT); + + /* Scan the first shift sequence */ + if (!my_coll_parser_scan_shift_sequence(p)) + return 0; + + /* Scan subsequent shift rules */ + while (my_coll_parser_scan_shift(p)) + { + if (!my_coll_parser_scan_shift_sequence(p)) + return 0; + } + return 1; +} + + +/** + Scan collation customization: settings followed by rules + + ::= + [ ... ] + [ ... ] + + @param p Collation customization parser + + @return + @retval 0 if collation customozation expression was not scanned. + @retval 1 if collation customization expression was scanned. +*/ + +static int +my_coll_parser_exec(MY_COLL_RULE_PARSER *p) +{ + if (!my_coll_parser_scan_settings(p)) + return 0; + + while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_RESET) + { + if (!my_coll_parser_scan_rule(p)) + return 0; + } + /* Make sure no unparsed input data left */ + return my_coll_parser_scan_term(p, MY_COLL_LEXEM_EOF); +} + + +/* + Collation language syntax parser. + Uses lexical parser. + + @param rules Collation rule list to load to. + @param str A string with collation customization. + @param str_end End of the string. + @param col_name Collation name + + @return + @retval 0 on success + @retval 1 on error +*/ + +static int +my_coll_rule_parse(MY_COLL_RULES *rules, + const char *str, const char *str_end, const char *col_name) +{ + MY_COLL_RULE_PARSER p; + + my_coll_parser_init(&p, rules, str, str_end); + + if (!my_coll_parser_exec(&p)) + { + my_coll_lexem_print_error(my_coll_parser_curr(&p), + rules->loader->error, + sizeof(rules->loader->error) - 1, + p.errstr, col_name); + return 1; + } + return 0; +} + + +/** + Helper function: + Copies UCA weights for a given "uint" string + to the given location. + + @src_uca source UCA weight data + @dst_uca destination UCA weight data + @to destination address + @to_length size of destination + @str qide string + @len string length + + @return number of weights put +*/ + +static size_t +my_char_weight_put(MY_UCA_WEIGHT_LEVEL *dst, + uint16 *to, size_t to_length, + my_wc_t *str, size_t len) +{ + size_t count; + if (!to_length) + return 0; + to_length--; /* Without trailing zero */ + + for (count= 0; len; ) + { + size_t chlen; + uint16 *from= NULL; + + for (chlen= len; chlen > 1; chlen--) + { + if ((from= my_uca_contraction_weight(&dst->contractions, str, chlen))) + { + str+= chlen; + len-= chlen; + break; + } + } + + if (!from) + { + from= my_char_weight_addr(dst, *str); + str++; + len--; + } + + for ( ; from && *from && count < to_length; ) + { + *to++= *from++; + count++; + } + } + + *to= 0; + return count; +} + + +/** + Alloc new page and copy the default UCA weights + @param loader - Character set loader + @param src_uca - Default UCA data to copy from + @param dst_uca - UCA data to copy weights to + @param page - page number + + @return + @retval FALSE on success + @retval TRUE on error +*/ +static my_bool +my_uca_copy_page(MY_CHARSET_LOADER *loader, + const MY_UCA_WEIGHT_LEVEL *src, + MY_UCA_WEIGHT_LEVEL *dst, + size_t page) +{ + uint chc, size= 256 * dst->lengths[page] * sizeof(uint16); + if (!(dst->weights[page]= (uint16 *) (loader->once_alloc)(size))) + return TRUE; + + DBUG_ASSERT(src->lengths[page] <= dst->lengths[page]); + memset(dst->weights[page], 0, size); + for (chc=0 ; chc < 256; chc++) + { + memcpy(dst->weights[page] + chc * dst->lengths[page], + src->weights[page] + chc * src->lengths[page], + src->lengths[page] * sizeof(uint16)); + } + return FALSE; +} + + +static my_bool +apply_shift(MY_CHARSET_LOADER *loader, + MY_COLL_RULES *rules, MY_COLL_RULE *r, int level, + uint16 *to, size_t nweights) +{ + /* Apply level difference. */ + if (nweights) + { + to[nweights - 1]+= r->diff[level]; + if (r->before_level == 1) /* Apply "&[before primary]" */ + { + if (nweights >= 2) + { + to[nweights - 2]--; /* Reset before */ + if (rules->shift_after_method == my_shift_method_expand) + { + /* + Special case. Don't let characters shifted after X + and before next(X) intermix to each other. + + For example: + "[shift-after-method expand] &0 < a &[before primary]1 < A". + I.e. we reorder 'a' after '0', and then 'A' before '1'. + 'a' must be sorted before 'A'. + + Note, there are no real collations in CLDR which shift + after and before two neighbourgh characters. We need this + just in case. Reserving 4096 (0x1000) weights for such + cases is perfectly enough. + */ + to[nweights - 1]+= 0x1000; /* W3-TODO: const may vary on levels 2,3*/ + } + } + else + { + my_snprintf(loader->error, sizeof(loader->error), + "Can't reset before " + "a primary ignorable character U+%04lX", r->base[0]); + return TRUE; + } + } + } + else + { + /* Shift to an ignorable character, e.g.: & \u0000 < \u0001 */ + DBUG_ASSERT(to[0] == 0); + to[0]= r->diff[level]; + } + return FALSE; +} + + +static my_bool +apply_one_rule(MY_CHARSET_LOADER *loader, + MY_COLL_RULES *rules, MY_COLL_RULE *r, int level, + MY_UCA_WEIGHT_LEVEL *dst) +{ + size_t nweights; + size_t nreset= my_coll_rule_reset_length(r); /* Length of reset sequence */ + size_t nshift= my_coll_rule_shift_length(r); /* Length of shift sequence */ + uint16 *to; + + if (nshift >= 2) /* Contraction */ + { + size_t i; + int flag; + MY_CONTRACTIONS *contractions= &dst->contractions; + /* Add HEAD, MID and TAIL flags for the contraction parts */ + my_uca_add_contraction_flag(contractions, r->curr[0], + r->with_context ? + MY_UCA_PREVIOUS_CONTEXT_HEAD : + MY_UCA_CNT_HEAD); + for (i= 1, flag= MY_UCA_CNT_MID1; i < nshift - 1; i++, flag<<= 1) + my_uca_add_contraction_flag(contractions, r->curr[i], flag); + my_uca_add_contraction_flag(contractions, r->curr[i], + r->with_context ? + MY_UCA_PREVIOUS_CONTEXT_TAIL : + MY_UCA_CNT_TAIL); + /* Add new contraction to the contraction list */ + to= my_uca_add_contraction(contractions, r->curr, nshift, + r->with_context)->weight; + /* Store weights of the "reset to" character */ + dst->contractions.nitems--; /* Temporarily hide - it's incomplete */ + nweights= my_char_weight_put(dst, to, MY_UCA_MAX_WEIGHT_SIZE, + r->base, nreset); + dst->contractions.nitems++; /* Activate, now it's complete */ + } + else + { + my_wc_t pagec= (r->curr[0] >> 8); + DBUG_ASSERT(dst->weights[pagec]); + to= my_char_weight_addr(dst, r->curr[0]); + /* Store weights of the "reset to" character */ + nweights= my_char_weight_put(dst, to, dst->lengths[pagec], r->base, nreset); + } + + /* Apply level difference. */ + return apply_shift(loader, rules, r, level, to, nweights); +} + + +/** + Check if collation rules are valid, + i.e. characters are not outside of the collation suported range. +*/ +static int +check_rules(MY_CHARSET_LOADER *loader, + const MY_COLL_RULES *rules, + const MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src) +{ + const MY_COLL_RULE *r, *rlast; + for (r= rules->rule, rlast= rules->rule + rules->nrules; r < rlast; r++) + { + if (r->curr[0] > dst->maxchar) + { + my_snprintf(loader->error, sizeof(loader->error), + "Shift character out of range: u%04X", (uint) r->curr[0]); + return TRUE; + } + else if (r->base[0] > src->maxchar) + { + my_snprintf(loader->error, sizeof(loader->error), + "Reset character out of range: u%04X", (uint) r->base[0]); + return TRUE; + } + } + return FALSE; +} + + +static my_bool +init_weight_level(MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, int level, + MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src) +{ + MY_COLL_RULE *r, *rlast; + int ncontractions= 0; + size_t i, npages= (src->maxchar + 1) / 256; + + dst->maxchar= src->maxchar; + + if (check_rules(loader, rules, dst, src)) + return TRUE; + + /* Allocate memory for pages and their lengths */ + if (!(dst->lengths= (uchar *) (loader->once_alloc)(npages)) || + !(dst->weights= (uint16 **) (loader->once_alloc)(npages * + sizeof(uint16 *)))) + return TRUE; + + /* Copy pages lengths and page pointers from the default UCA weights */ + memcpy(dst->lengths, src->lengths, npages); + memcpy(dst->weights, src->weights, npages * sizeof(uint16 *)); + + /* + Calculate maximum lenghts for the pages which will be overwritten. + Mark pages that will be otherwriten as NULL. + We'll allocate their own memory. + */ + for (r= rules->rule, rlast= rules->rule + rules->nrules; r < rlast; r++) + { + if (!r->curr[1]) /* If not a contraction */ + { + uint pagec= (r->curr[0] >> 8); + if (r->base[1]) /* Expansion */ + { + /* Reserve space for maximum possible length */ + dst->lengths[pagec]= MY_UCA_MAX_WEIGHT_SIZE; + } + else + { + uint pageb= (r->base[0] >> 8); + if (dst->lengths[pagec] < src->lengths[pageb]) + dst->lengths[pagec]= src->lengths[pageb]; + } + dst->weights[pagec]= NULL; /* Mark that we'll overwrite this page */ + } + else + ncontractions++; + } + + /* Allocate pages that we'll overwrite and copy default weights */ + for (i= 0; i < npages; i++) + { + my_bool rc; + /* + Don't touch pages with lengths[i]==0, they have implicit weights + calculated algorithmically. + */ + if (!dst->weights[i] && dst->lengths[i] && + (rc= my_uca_copy_page(loader, src, dst, i))) + return rc; + } + + if (ncontractions) + { + if (my_uca_alloc_contractions(&dst->contractions, loader, ncontractions)) + return TRUE; + } + + /* + Preparatory step is done at this point. + Now we have memory allocated for the pages that we'll overwrite, + and for contractions, including previous context contractions. + Also, for the pages that we'll overwrite, we have copied default weights. + Now iterate through the rules, overwrite weights for the characters + that appear in the rules, and put all contractions into contraction list. + */ + for (r= rules->rule; r < rlast; r++) + { + if (apply_one_rule(loader, rules, r, level, dst)) + return TRUE; + } + return FALSE; +} + + +/* + This function copies an UCS2 collation from + the default Unicode Collation Algorithm (UCA) + weights applying tailorings, i.e. a set of + alternative weights for some characters. + + The default UCA weights are stored in uca_weight/uca_length. + They consist of 256 pages, 256 character each. + + If a page is not overwritten by tailoring rules, + it is copies as is from UCA as is. + + If a page contains some overwritten characters, it is + allocated. Untouched characters are copied from the + default weights. +*/ + +static my_bool +create_tailoring(CHARSET_INFO *cs, MY_CHARSET_LOADER *loader) +{ + MY_COLL_RULES rules; + MY_UCA_INFO new_uca, *src_uca= NULL; + int rc= 0; + + *loader->error= '\0'; + + if (!cs->tailoring) + return 0; /* Ok to add a collation without tailoring */ + + memset(&rules, 0, sizeof(rules)); + rules.loader= loader; + rules.uca= cs->uca ? cs->uca : &my_uca_v400; /* For logical positions, etc */ + memset(&new_uca, 0, sizeof(new_uca)); + + /* Parse ICU Collation Customization expression */ + if ((rc= my_coll_rule_parse(&rules, + cs->tailoring, + cs->tailoring + strlen(cs->tailoring), + cs->name))) + goto ex; + + if (rules.version == 520) /* Unicode-5.2.0 requested */ + { + src_uca= &my_uca_v520; + cs->caseinfo= &my_unicase_unicode520; + } + else if (rules.version == 400) /* Unicode-4.0.0 requested */ + { + src_uca= &my_uca_v400; + cs->caseinfo= &my_unicase_default; + } + else /* No Unicode version specified */ + { + src_uca= cs->uca ? cs->uca : &my_uca_v400; + if (!cs->caseinfo) + cs->caseinfo= &my_unicase_default; + } + + if ((rc= init_weight_level(loader, &rules, 0, + &new_uca.level[0], &src_uca->level[0]))) + goto ex; + + if (!(cs->uca= (MY_UCA_INFO *) (loader->once_alloc)(sizeof(MY_UCA_INFO)))) + { + rc= 1; + goto ex; + } + cs->uca[0]= new_uca; + +ex: + (loader->mem_free)(rules.rule); + if (rc != 0 && loader->error[0]) + loader->reporter(ERROR_LEVEL, "%s", loader->error); + return rc; +} + + +/* + Universal CHARSET_INFO compatible wrappers + for the above internal functions. + Should work for any character set. +*/ + +static my_bool +my_coll_init_uca(CHARSET_INFO *cs, MY_CHARSET_LOADER *loader) +{ + cs->pad_char= ' '; + cs->ctype= my_charset_utf8_unicode_ci.ctype; + if (!cs->caseinfo) + cs->caseinfo= &my_unicase_default; + return create_tailoring(cs, loader); +} + +static int my_strnncoll_any_uca(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + return my_strnncoll_uca(cs, &my_any_uca_scanner_handler, + s, slen, t, tlen, t_is_prefix); +} + +static int my_strnncollsp_any_uca(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + return my_strnncollsp_uca(cs, &my_any_uca_scanner_handler, + s, slen, t, tlen, + diff_if_only_endspace_difference); +} + +static void my_hash_sort_any_uca(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2); +} + +static size_t my_strnxfrm_any_uca(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler, + dst, dstlen, nweights, src, srclen, flags); +} + + +#ifdef HAVE_CHARSET_ucs2 +/* + UCS2 optimized CHARSET_INFO compatible wrappers. +*/ +static int my_strnncoll_ucs2_uca(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + return my_strnncoll_uca(cs, &my_any_uca_scanner_handler, + s, slen, t, tlen, t_is_prefix); +} + +static int my_strnncollsp_ucs2_uca(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + return my_strnncollsp_uca(cs, &my_any_uca_scanner_handler, + s, slen, t, tlen, + diff_if_only_endspace_difference); +} + +static void my_hash_sort_ucs2_uca(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2); +} + +static size_t my_strnxfrm_ucs2_uca(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler, + dst, dstlen, nweights, src, srclen, flags); +} + +MY_COLLATION_HANDLER my_collation_ucs2_uca_handler = +{ + my_coll_init_uca, /* init */ + my_strnncoll_ucs2_uca, + my_strnncollsp_ucs2_uca, + my_strnxfrm_ucs2_uca, + my_strnxfrmlen_simple, + my_like_range_generic, + my_wildcmp_uca, + NULL, + my_instr_mb, + my_hash_sort_ucs2_uca, + my_propagate_complex +}; + +CHARSET_INFO my_charset_ucs2_unicode_ci= +{ + 128,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_unicode_ci", /* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_icelandic_uca_ci= +{ + 129,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_icelandic_ci",/* name */ + "", /* comment */ + icelandic, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_latvian_uca_ci= +{ + 130,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_latvian_ci", /* name */ + "", /* comment */ + latvian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_romanian_uca_ci= +{ + 131,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_romanian_ci", /* name */ + "", /* comment */ + romanian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_slovenian_uca_ci= +{ + 132,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_slovenian_ci",/* name */ + "", /* comment */ + slovenian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_polish_uca_ci= +{ + 133,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_polish_ci", /* name */ + "", /* comment */ + polish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_estonian_uca_ci= +{ + 134,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_estonian_ci", /* name */ + "", /* comment */ + estonian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_spanish_uca_ci= +{ + 135,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_spanish_ci", /* name */ + "", /* comment */ + spanish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_swedish_uca_ci= +{ + 136,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_swedish_ci", /* name */ + "", /* comment */ + swedish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_turkish_uca_ci= +{ + 137,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_turkish_ci", /* name */ + "", /* comment */ + turkish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_turkish,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_czech_uca_ci= +{ + 138,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_czech_ci", /* name */ + "", /* comment */ + czech, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_danish_uca_ci= +{ + 139,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_danish_ci", /* name */ + "", /* comment */ + danish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_lithuanian_uca_ci= +{ + 140,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_lithuanian_ci",/* name */ + "", /* comment */ + lithuanian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_slovak_uca_ci= +{ + 141,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_slovak_ci", /* name */ + "", /* comment */ + slovak, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +CHARSET_INFO my_charset_ucs2_spanish2_uca_ci= +{ + 142,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_spanish2_ci", /* name */ + "", /* comment */ + spanish2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_roman_uca_ci= +{ + 143,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_roman_ci", /* name */ + "", /* comment */ + roman, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_persian_uca_ci= +{ + 144,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_persian_ci", /* name */ + "", /* comment */ + persian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_esperanto_uca_ci= +{ + 145,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_esperanto_ci",/* name */ + "", /* comment */ + esperanto, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_hungarian_uca_ci= +{ + 146,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_hungarian_ci",/* name */ + "", /* comment */ + hungarian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_sinhala_uca_ci= +{ + 147,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* csname */ + "ucs2_sinhala_ci", /* name */ + "", /* comment */ + sinhala, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_german2_uca_ci= +{ + 148,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* csname */ + "ucs2_german2_ci", /* name */ + "", /* comment */ + german2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_croatian_uca_ci= +{ + 149,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* csname */ + "ucs2_croatian_ci", /* name */ + "", /* comment */ + croatian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_unicode_520_ci= +{ + 150,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +CHARSET_INFO my_charset_ucs2_vietnamese_ci= +{ + 151,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* csname */ + "ucs2_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +#endif + + +#ifdef HAVE_CHARSET_utf8 +MY_COLLATION_HANDLER my_collation_any_uca_handler = +{ + my_coll_init_uca, /* init */ + my_strnncoll_any_uca, + my_strnncollsp_any_uca, + my_strnxfrm_any_uca, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_uca, + NULL, + my_instr_mb, + my_hash_sort_any_uca, + my_propagate_complex +}; + +/* + We consider bytes with code more than 127 as a letter. + This garantees that word boundaries work fine with regular + expressions. Note, there is no need to mark byte 255 as a + letter, it is illegal byte in UTF8. +*/ +static const uchar ctype_utf8[] = { + 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 +}; + +extern MY_CHARSET_HANDLER my_charset_utf8_handler; + +#define MY_CS_UTF8MB3_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE) + +CHARSET_INFO my_charset_utf8_unicode_ci= +{ + 192,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_unicode_ci", /* name */ + "", /* comment */ + "", /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8_icelandic_uca_ci= +{ + 193,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_icelandic_ci",/* name */ + "", /* comment */ + icelandic, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_latvian_uca_ci= +{ + 194,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_latvian_ci", /* name */ + "", /* comment */ + latvian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_romanian_uca_ci= +{ + 195,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_romanian_ci", /* name */ + "", /* comment */ + romanian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_slovenian_uca_ci= +{ + 196,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_slovenian_ci",/* name */ + "", /* comment */ + slovenian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_polish_uca_ci= +{ + 197,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_polish_ci", /* name */ + "", /* comment */ + polish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_estonian_uca_ci= +{ + 198,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_estonian_ci", /* name */ + "", /* comment */ + estonian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_spanish_uca_ci= +{ + 199,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_spanish_ci", /* name */ + "", /* comment */ + spanish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_swedish_uca_ci= +{ + 200,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_swedish_ci", /* name */ + "", /* comment */ + swedish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_turkish_uca_ci= +{ + 201,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_turkish_ci", /* name */ + "", /* comment */ + turkish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_turkish,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 2, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_czech_uca_ci= +{ + 202,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_czech_ci", /* name */ + "", /* comment */ + czech, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8_danish_uca_ci= +{ + 203,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_danish_ci", /* name */ + "", /* comment */ + danish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_lithuanian_uca_ci= +{ + 204,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_lithuanian_ci",/* name */ + "", /* comment */ + lithuanian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_slovak_uca_ci= +{ + 205,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_slovak_ci", /* name */ + "", /* comment */ + slovak, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_spanish2_uca_ci= +{ + 206,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_spanish2_ci", /* name */ + "", /* comment */ + spanish2, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_roman_uca_ci= +{ + 207,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_roman_ci", /* name */ + "", /* comment */ + roman, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_persian_uca_ci= +{ + 208,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_persian_ci", /* name */ + "", /* comment */ + persian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_esperanto_uca_ci= +{ + 209,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_esperanto_ci",/* name */ + "", /* comment */ + esperanto, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_hungarian_uca_ci= +{ + 210,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_hungarian_ci",/* name */ + "", /* comment */ + hungarian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8_sinhala_uca_ci= +{ + 211,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + "utf8", /* cs name */ + "utf8_sinhala_ci", /* name */ + "", /* comment */ + sinhala, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8_german2_uca_ci= +{ + 212,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_german2_ci",/* name */ + "", /* comment */ + german2, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8_croatian_uca_ci= +{ + 213,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_croatian_ci",/* name */ + "", /* comment */ + croatian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8_unicode_520_ci= +{ + 214,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* csname */ + MY_UTF8MB3 "_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8_vietnamese_ci= +{ + 215,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +#endif /* HAVE_CHARSET_utf8 */ + + +#ifdef HAVE_CHARSET_utf8mb4 + +extern MY_CHARSET_HANDLER my_charset_utf8mb4_handler; + +#define MY_CS_UTF8MB4_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT) + +CHARSET_INFO my_charset_utf8mb4_unicode_ci= +{ + 224,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_unicode_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8mb4_icelandic_uca_ci= +{ + 225,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_icelandic_ci",/* name */ + "", /* comment */ + icelandic, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_latvian_uca_ci= +{ + 226,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_latvian_ci", /* name */ + "", /* comment */ + latvian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_romanian_uca_ci= +{ + 227,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_romanian_ci", /* name */ + "", /* comment */ + romanian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_slovenian_uca_ci= +{ + 228,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_slovenian_ci",/* name */ + "", /* comment */ + slovenian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_polish_uca_ci= +{ + 229,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_polish_ci", /* name */ + "", /* comment */ + polish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_estonian_uca_ci= +{ + 230,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_estonian_ci", /* name */ + "", /* comment */ + estonian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_spanish_uca_ci= +{ + 231,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_spanish_ci", /* name */ + "", /* comment */ + spanish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_swedish_uca_ci= +{ + 232,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_swedish_ci", /* name */ + "", /* comment */ + swedish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_turkish_uca_ci= +{ + 233,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_turkish_ci", /* name */ + "", /* comment */ + turkish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_turkish, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 2, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_czech_uca_ci= +{ + 234,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_czech_ci", /* name */ + "", /* comment */ + czech, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8mb4_danish_uca_ci= +{ + 235,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_danish_ci", /* name */ + "", /* comment */ + danish, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_lithuanian_uca_ci= +{ + 236,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_lithuanian_ci",/* name */ + "", /* comment */ + lithuanian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_slovak_uca_ci= +{ + 237,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_slovak_ci", /* name */ + "", /* comment */ + slovak, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_spanish2_uca_ci= +{ + 238,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_spanish2_ci", /* name */ + "", /* comment */ + spanish2, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_roman_uca_ci= +{ + 239,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_roman_ci", /* name */ + "", /* comment */ + roman, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_persian_uca_ci= +{ + 240,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_persian_ci", /* name */ + "", /* comment */ + persian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_esperanto_uca_ci= +{ + 241,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_esperanto_ci",/* name */ + "", /* comment */ + esperanto, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_hungarian_uca_ci= +{ + 242,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_hungarian_ci",/* name */ + "", /* comment */ + hungarian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_sinhala_uca_ci= +{ + 243,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_sinhala_ci",/* name */ + "", /* comment */ + sinhala, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_german2_uca_ci= +{ + 244,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_german2_ci",/* name */ + "", /* comment */ + german2, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_croatian_uca_ci= +{ + 245,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_croatian_ci",/* name */ + "", /* comment */ + croatian, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +CHARSET_INFO my_charset_utf8mb4_unicode_520_ci= +{ + 246,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* flags */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0x10FFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +CHARSET_INFO my_charset_utf8mb4_vietnamese_ci= +{ + 247,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +#endif /* HAVE_CHARSET_utf8mb4 */ + + +#ifdef HAVE_CHARSET_utf32 + +MY_COLLATION_HANDLER my_collation_utf32_uca_handler = +{ + my_coll_init_uca, /* init */ + my_strnncoll_any_uca, + my_strnncollsp_any_uca, + my_strnxfrm_any_uca, + my_strnxfrmlen_simple, + my_like_range_generic, + my_wildcmp_uca, + NULL, + my_instr_mb, + my_hash_sort_any_uca, + my_propagate_complex +}; + +extern MY_CHARSET_HANDLER my_charset_utf32_handler; + +#define MY_CS_UTF32_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII) + +CHARSET_INFO my_charset_utf32_unicode_ci= +{ + 160,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_unicode_ci", /* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + +CHARSET_INFO my_charset_utf32_icelandic_uca_ci= +{ + 161,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_icelandic_ci",/* name */ + "", /* comment */ + icelandic, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_latvian_uca_ci= +{ + 162,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_latvian_ci", /* name */ + "", /* comment */ + latvian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_romanian_uca_ci= +{ + 163,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_romanian_ci", /* name */ + "", /* comment */ + romanian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_slovenian_uca_ci= +{ + 164,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_slovenian_ci",/* name */ + "", /* comment */ + slovenian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_polish_uca_ci= +{ + 165,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_polish_ci", /* name */ + "", /* comment */ + polish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_estonian_uca_ci= +{ + 166,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_estonian_ci", /* name */ + "", /* comment */ + estonian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_spanish_uca_ci= +{ + 167,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_spanish_ci", /* name */ + "", /* comment */ + spanish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_swedish_uca_ci= +{ + 168,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_swedish_ci", /* name */ + "", /* comment */ + swedish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_turkish_uca_ci= +{ + 169,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_turkish_ci", /* name */ + "", /* comment */ + turkish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_turkish, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_czech_uca_ci= +{ + 170,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_czech_ci", /* name */ + "", /* comment */ + czech, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + +CHARSET_INFO my_charset_utf32_danish_uca_ci= +{ + 171,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_danish_ci", /* name */ + "", /* comment */ + danish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_lithuanian_uca_ci= +{ + 172,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_lithuanian_ci",/* name */ + "", /* comment */ + lithuanian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_slovak_uca_ci= +{ + 173,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_slovak_ci", /* name */ + "", /* comment */ + slovak, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_spanish2_uca_ci= +{ + 174,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_spanish2_ci", /* name */ + "", /* comment */ + spanish2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_roman_uca_ci= +{ + 175,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_roman_ci", /* name */ + "", /* comment */ + roman, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_persian_uca_ci= +{ + 176,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_persian_ci", /* name */ + "", /* comment */ + persian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_esperanto_uca_ci= +{ + 177,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_esperanto_ci",/* name */ + "", /* comment */ + esperanto, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_hungarian_uca_ci= +{ + 178,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_hungarian_ci",/* name */ + "", /* comment */ + hungarian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_sinhala_uca_ci= +{ + 179,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_sinhala_ci", /* name */ + "", /* comment */ + sinhala, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_german2_uca_ci= +{ + 180,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_german2_ci", /* name */ + "", /* comment */ + german2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_croatian_uca_ci= +{ + 181,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_croatian_ci", /* name */ + "", /* comment */ + croatian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +CHARSET_INFO my_charset_utf32_unicode_520_ci= +{ + 182,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* stat e */ + "utf32", /* csname */ + "utf32_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0x10FFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + +CHARSET_INFO my_charset_utf32_vietnamese_ci= +{ + 183,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + +#endif /* HAVE_CHARSET_utf32 */ + + +#ifdef HAVE_CHARSET_utf16 + + +MY_COLLATION_HANDLER my_collation_utf16_uca_handler = +{ + my_coll_init_uca, /* init */ + my_strnncoll_any_uca, + my_strnncollsp_any_uca, + my_strnxfrm_any_uca, + my_strnxfrmlen_simple, + my_like_range_generic, + my_wildcmp_uca, + NULL, + my_instr_mb, + my_hash_sort_any_uca, + my_propagate_complex +}; + +extern MY_CHARSET_HANDLER my_charset_utf16_handler; + +#define MY_CS_UTF16_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII) + +CHARSET_INFO my_charset_utf16_unicode_ci= +{ + 101,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* csname */ + "utf16_unicode_ci", /* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + + +CHARSET_INFO my_charset_utf16_icelandic_uca_ci= +{ + 102,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* csname */ + "utf16_icelandic_ci",/* name */ + "", /* comment */ + icelandic, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_latvian_uca_ci= +{ + 103,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_latvian_ci", /* name */ + "", /* comment */ + latvian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_romanian_uca_ci= +{ + 104,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_romanian_ci", /* name */ + "", /* comment */ + romanian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_slovenian_uca_ci= +{ + 105,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_slovenian_ci",/* name */ + "", /* comment */ + slovenian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_polish_uca_ci= +{ + 106,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_polish_ci", /* name */ + "", /* comment */ + polish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_estonian_uca_ci= +{ + 107,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_estonian_ci", /* name */ + "", /* comment */ + estonian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_spanish_uca_ci= +{ + 108,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_spanish_ci", /* name */ + "", /* comment */ + spanish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_swedish_uca_ci= +{ + 109,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_swedish_ci", /* name */ + "", /* comment */ + swedish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_turkish_uca_ci= +{ + 110,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_turkish_ci", /* name */ + "", /* comment */ + turkish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_turkish, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_czech_uca_ci= +{ + 111,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_czech_ci", /* name */ + "", /* comment */ + czech, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + + +CHARSET_INFO my_charset_utf16_danish_uca_ci= +{ + 112,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_danish_ci", /* name */ + "", /* comment */ + danish, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_lithuanian_uca_ci= +{ + 113,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_lithuanian_ci",/* name */ + "", /* comment */ + lithuanian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_slovak_uca_ci= +{ + 114,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_slovak_ci", /* name */ + "", /* comment */ + slovak, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_spanish2_uca_ci= +{ + 115,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_spanish2_ci",/* name */ + "", /* comment */ + spanish2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_roman_uca_ci= +{ + 116,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_roman_ci", /* name */ + "", /* comment */ + roman, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_persian_uca_ci= +{ + 117,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_persian_ci", /* name */ + "", /* comment */ + persian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_esperanto_uca_ci= +{ + 118,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_esperanto_ci",/* name */ + "", /* comment */ + esperanto, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_hungarian_uca_ci= +{ + 119,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_hungarian_ci",/* name */ + "", /* comment */ + hungarian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_sinhala_uca_ci= +{ + 120,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_sinhala_ci",/* name */ + "", /* comment */ + sinhala, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + +CHARSET_INFO my_charset_utf16_german2_uca_ci= +{ + 121,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_german2_ci",/* name */ + "", /* comment */ + german2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + + +CHARSET_INFO my_charset_utf16_croatian_uca_ci= +{ + 122,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_croatian_ci",/* name */ + "", /* comment */ + croatian, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + + +CHARSET_INFO my_charset_utf16_unicode_520_ci= +{ + 123,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16", /* csname */ + "utf16_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0x10FFFF, /* max_sort_char */ + 0x20, /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + + +CHARSET_INFO my_charset_utf16_vietnamese_ci= +{ + 124,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; + + +#endif /* HAVE_CHARSET_utf16 */ + +#ifdef HAVE_CHARSET_gb18030 + +MY_COLLATION_HANDLER my_collation_gb18030_uca_handler = +{ + my_coll_init_uca, /* init */ + my_strnncoll_any_uca, + my_strnncollsp_any_uca, + my_strnxfrm_any_uca, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_uca, + NULL, + my_instr_mb, + my_hash_sort_any_uca, + my_propagate_complex +}; + +/** + The array used for "type of characters" bit mask for each + character. The ctype[0] is reserved for EOF(-1), so we use + ctype[(char)+1]. Also refer to strings/CHARSET_INFO.txt +*/ +static const uchar ctype_gb18030[257]= +{ + 0, /* For standard library */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 +}; + +extern MY_CHARSET_HANDLER my_charset_gb18030_uca_handler; + +CHARSET_INFO my_charset_gb18030_unicode_520_ci= +{ + 250, 0, 0, /* number */ + MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_NONASCII, /* state */ + "gb18030", /* cs name */ + "gb18030_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + ctype_gb18030, /* ctype */ + NULL, /* lower */ + NULL, /* UPPER */ + NULL, /* sort order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 2, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 2, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xE3329A35, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_gb18030_uca_handler, + &my_collation_gb18030_uca_handler +}; + +#endif /* HAVE_CHARSET_gb18030 */ + +#endif /* HAVE_UCA_COLLATIONS */ diff --git a/mysql/strings/ctype-ucs2.c b/mysql/strings/ctype-ucs2.c new file mode 100644 index 0000000..16d39d4 --- /dev/null +++ b/mysql/strings/ctype-ucs2.c @@ -0,0 +1,3542 @@ +/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* UCS2 support. Written by Alexander Barkov */ + +#include +#include +#include "m_string.h" +#include "m_ctype.h" +#include +#include + + +#if defined(HAVE_CHARSET_utf16) || defined(HAVE_CHARSET_ucs2) +#define HAVE_CHARSET_mb2 +#endif + + +#if defined(HAVE_CHARSET_mb2) || defined(HAVE_CHARSET_utf32) +#define HAVE_CHARSET_mb2_or_mb4 +#endif + + +#ifndef EILSEQ +#define EILSEQ ENOENT +#endif + +#define ULONGLONG_MAX (~(ulonglong) 0) +#define MAX_NEGATIVE_NUMBER ((ulonglong) 0x8000000000000000LL) +#define INIT_CNT 9 +#define LFACTOR 1000000000ULL +#define LFACTOR1 10000000000ULL +#define LFACTOR2 100000000000ULL + +#ifdef HAVE_CHARSET_mb2_or_mb4 +static unsigned long lfactor[9]= +{ 1L, 10L, 100L, 1000L, 10000L, 100000L, 1000000L, 10000000L, 100000000L }; + +static inline int +my_bincmp(const uchar *s, const uchar *se, + const uchar *t, const uchar *te) +{ + int slen= (int) (se - s), tlen= (int) (te - t); + int len= MY_MIN(slen, tlen); + int cmp= memcmp(s, t, len); + return cmp ? cmp : slen - tlen; +} + + +static size_t +my_caseup_str_mb2_or_mb4(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)), + char * s MY_ATTRIBUTE((unused))) +{ + DBUG_ASSERT(0); + return 0; +} + + +static size_t +my_casedn_str_mb2_or_mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char * s MY_ATTRIBUTE((unused))) +{ + DBUG_ASSERT(0); + return 0; +} + + +static int +my_strcasecmp_mb2_or_mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *s MY_ATTRIBUTE((unused)), + const char *t MY_ATTRIBUTE((unused))) +{ + DBUG_ASSERT(0); + return 0; +} + + +static long +my_strntol_mb2_or_mb4(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative= 0; + int overflow; + int cnv; + my_wc_t wc; + unsigned int cutlim; + uint32 cutoff; + uint32 res; + const uchar *s= (const uchar*) nptr; + const uchar *e= (const uchar*) nptr+l; + const uchar *save; + + *err= 0; + do + { + if ((cnv= cs->cset->mb_wc(cs, &wc, s, e))>0) + { + switch (wc) + { + case ' ' : break; + case '\t': break; + case '-' : negative= !negative; break; + case '+' : break; + default : goto bs; + } + } + else /* No more characters or bad multibyte sequence */ + { + if (endptr != NULL ) + *endptr= (char*) s; + err[0]= (cnv==MY_CS_ILSEQ) ? EILSEQ : EDOM; + return 0; + } + s+= cnv; + } while (1); + +bs: + + overflow= 0; + res= 0; + save= s; + cutoff= ((uint32)~0L) / (uint32) base; + cutlim= (uint) (((uint32)~0L) % (uint32) base); + + do { + if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0) + { + s+= cnv; + if (wc >= '0' && wc <= '9') + wc-= '0'; + else if (wc >= 'A' && wc <= 'Z') + wc= wc - 'A' + 10; + else if (wc >= 'a' && wc <= 'z') + wc= wc - 'a' + 10; + else + break; + if ((int)wc >= base) + break; + if (res > cutoff || (res == cutoff && wc > cutlim)) + overflow= 1; + else + { + res*= (uint32) base; + res+= wc; + } + } + else if (cnv == MY_CS_ILSEQ) + { + if (endptr !=NULL ) + *endptr = (char*) s; + err[0]= EILSEQ; + return 0; + } + else + { + /* No more characters */ + break; + } + } while(1); + + if (endptr != NULL) + *endptr = (char *) s; + + if (s == save) + { + err[0]= EDOM; + return 0L; + } + + if (negative) + { + if (res > (uint32) INT_MIN32) + overflow= 1; + } + else if (res > INT_MAX32) + overflow= 1; + + if (overflow) + { + err[0]= ERANGE; + return negative ? INT_MIN32 : INT_MAX32; + } + + return (negative ? -((long) res) : (long) res); +} + + +static ulong +my_strntoul_mb2_or_mb4(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative= 0; + int overflow; + int cnv; + my_wc_t wc; + unsigned int cutlim; + uint32 cutoff; + uint32 res; + const uchar *s= (const uchar*) nptr; + const uchar *e= (const uchar*) nptr + l; + const uchar *save; + + *err= 0; + do + { + if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0) + { + switch (wc) + { + case ' ' : break; + case '\t': break; + case '-' : negative= !negative; break; + case '+' : break; + default : goto bs; + } + } + else /* No more characters or bad multibyte sequence */ + { + if (endptr !=NULL ) + *endptr= (char*)s; + err[0]= (cnv == MY_CS_ILSEQ) ? EILSEQ : EDOM; + return 0; + } + s+= cnv; + } while (1); + +bs: + + overflow= 0; + res= 0; + save= s; + cutoff= ((uint32)~0L) / (uint32) base; + cutlim= (uint) (((uint32)~0L) % (uint32) base); + + do + { + if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0) + { + s+= cnv; + if (wc >= '0' && wc <= '9') + wc-= '0'; + else if (wc >= 'A' && wc <= 'Z') + wc= wc - 'A' + 10; + else if (wc >= 'a' && wc <= 'z') + wc= wc - 'a' + 10; + else + break; + if ((int) wc >= base) + break; + if (res > cutoff || (res == cutoff && wc > cutlim)) + overflow = 1; + else + { + res*= (uint32) base; + res+= wc; + } + } + else if (cnv == MY_CS_ILSEQ) + { + if (endptr != NULL ) + *endptr= (char*)s; + err[0]= EILSEQ; + return 0; + } + else + { + /* No more characters */ + break; + } + } while(1); + + if (endptr != NULL) + *endptr= (char *) s; + + if (s == save) + { + err[0]= EDOM; + return 0L; + } + + if (overflow) + { + err[0]= (ERANGE); + return (~(uint32) 0); + } + + return (negative ? -((long) res) : (long) res); +} + + +static longlong +my_strntoll_mb2_or_mb4(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative=0; + int overflow; + int cnv; + my_wc_t wc; + ulonglong cutoff; + unsigned int cutlim; + ulonglong res; + const uchar *s= (const uchar*) nptr; + const uchar *e= (const uchar*) nptr+l; + const uchar *save; + + *err= 0; + do + { + if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0) + { + switch (wc) + { + case ' ' : break; + case '\t': break; + case '-' : negative= !negative; break; + case '+' : break; + default : goto bs; + } + } + else /* No more characters or bad multibyte sequence */ + { + if (endptr !=NULL ) + *endptr = (char*)s; + err[0] = (cnv==MY_CS_ILSEQ) ? EILSEQ : EDOM; + return 0; + } + s+=cnv; + } while (1); + +bs: + + overflow = 0; + res = 0; + save = s; + cutoff = (~(ulonglong) 0) / (unsigned long int) base; + cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base); + + do { + if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0) + { + s+=cnv; + if ( wc>='0' && wc<='9') + wc -= '0'; + else if ( wc>='A' && wc<='Z') + wc = wc - 'A' + 10; + else if ( wc>='a' && wc<='z') + wc = wc - 'a' + 10; + else + break; + if ((int)wc >= base) + break; + if (res > cutoff || (res == cutoff && wc > cutlim)) + overflow = 1; + else + { + res *= (ulonglong) base; + res += wc; + } + } + else if (cnv==MY_CS_ILSEQ) + { + if (endptr !=NULL ) + *endptr = (char*)s; + err[0]=EILSEQ; + return 0; + } + else + { + /* No more characters */ + break; + } + } while(1); + + if (endptr != NULL) + *endptr = (char *) s; + + if (s == save) + { + err[0]=EDOM; + return 0L; + } + + if (negative) + { + if (res > (ulonglong) LLONG_MIN) + overflow = 1; + } + else if (res > (ulonglong) LLONG_MAX) + overflow = 1; + + if (overflow) + { + err[0]=ERANGE; + return negative ? LLONG_MIN : LLONG_MAX; + } + + return (negative ? -((longlong)res) : (longlong)res); +} + + +static ulonglong +my_strntoull_mb2_or_mb4(const CHARSET_INFO *cs, + const char *nptr, size_t l, int base, + char **endptr, int *err) +{ + int negative= 0; + int overflow; + int cnv; + my_wc_t wc; + ulonglong cutoff; + unsigned int cutlim; + ulonglong res; + const uchar *s= (const uchar*) nptr; + const uchar *e= (const uchar*) nptr + l; + const uchar *save; + + *err= 0; + do + { + if ((cnv= cs->cset->mb_wc(cs,&wc,s,e)) > 0) + { + switch (wc) + { + case ' ' : break; + case '\t': break; + case '-' : negative= !negative; break; + case '+' : break; + default : goto bs; + } + } + else /* No more characters or bad multibyte sequence */ + { + if (endptr !=NULL ) + *endptr = (char*)s; + err[0]= (cnv==MY_CS_ILSEQ) ? EILSEQ : EDOM; + return 0; + } + s+=cnv; + } while (1); + +bs: + + overflow = 0; + res = 0; + save = s; + cutoff = (~(ulonglong) 0) / (unsigned long int) base; + cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base); + + do + { + if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0) + { + s+=cnv; + if ( wc>='0' && wc<='9') + wc -= '0'; + else if ( wc>='A' && wc<='Z') + wc = wc - 'A' + 10; + else if ( wc>='a' && wc<='z') + wc = wc - 'a' + 10; + else + break; + if ((int)wc >= base) + break; + if (res > cutoff || (res == cutoff && wc > cutlim)) + overflow = 1; + else + { + res *= (ulonglong) base; + res += wc; + } + } + else if (cnv==MY_CS_ILSEQ) + { + if (endptr !=NULL ) + *endptr = (char*)s; + err[0]= EILSEQ; + return 0; + } + else + { + /* No more characters */ + break; + } + } while(1); + + if (endptr != NULL) + *endptr = (char *) s; + + if (s == save) + { + err[0]= EDOM; + return 0L; + } + + if (overflow) + { + err[0]= ERANGE; + return (~(ulonglong) 0); + } + + return (negative ? -((longlong) res) : (longlong) res); +} + + +static double +my_strntod_mb2_or_mb4(const CHARSET_INFO *cs, + char *nptr, size_t length, + char **endptr, int *err) +{ + char buf[256]; + double res; + char *b= buf; + const uchar *s= (const uchar*) nptr; + const uchar *end; + my_wc_t wc; + int cnv; + + *err= 0; + /* Cut too long strings */ + if (length >= sizeof(buf)) + length= sizeof(buf) - 1; + end= s + length; + + while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0) + { + s+= cnv; + if (wc > (int) (uchar) 'e' || !wc) + break; /* Can't be part of double */ + *b++= (char) wc; + } + + *endptr= b; + res= my_strtod(buf, endptr, err); + *endptr= nptr + cs->mbminlen * (size_t) (*endptr - buf); + return res; +} + + +static ulonglong +my_strntoull10rnd_mb2_or_mb4(const CHARSET_INFO *cs, + const char *nptr, size_t length, + int unsign_fl, + char **endptr, int *err) +{ + char buf[256], *b= buf; + ulonglong res; + const uchar *end, *s= (const uchar*) nptr; + my_wc_t wc; + int cnv; + + /* Cut too long strings */ + if (length >= sizeof(buf)) + length= sizeof(buf)-1; + end= s + length; + + while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0) + { + s+= cnv; + if (wc > (int) (uchar) 'e' || !wc) + break; /* Can't be a number part */ + *b++= (char) wc; + } + + res= my_strntoull10rnd_8bit(cs, buf, b - buf, unsign_fl, endptr, err); + *endptr= (char*) nptr + cs->mbminlen * (size_t) (*endptr - buf); + return res; +} + + +/* + This is a fast version optimized for the case of radix 10 / -10 +*/ + +static size_t +my_l10tostr_mb2_or_mb4(const CHARSET_INFO *cs, + char *dst, size_t len, int radix, long int val) +{ + char buffer[66]; + char *p, *db, *de; + long int new_val; + int sl= 0; + unsigned long int uval = (unsigned long int) val; + + p= &buffer[sizeof(buffer) - 1]; + *p= '\0'; + + if (radix < 0) + { + if (val < 0) + { + sl= 1; + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (unsigned long int)0 - uval; + } + } + + new_val = (long) (uval / 10); + *--p = '0'+ (char) (uval - (unsigned long) new_val * 10); + val= new_val; + + while (val != 0) + { + new_val= val / 10; + *--p= '0' + (char) (val - new_val * 10); + val= new_val; + } + + if (sl) + { + *--p= '-'; + } + + for ( db= dst, de= dst + len ; (dst < de) && *p ; p++) + { + int cnvres= cs->cset->wc_mb(cs,(my_wc_t)p[0],(uchar*) dst, (uchar*) de); + if (cnvres > 0) + dst+= cnvres; + else + break; + } + return (int) (dst - db); +} + + +static size_t +my_ll10tostr_mb2_or_mb4(const CHARSET_INFO *cs, + char *dst, size_t len, int radix, longlong val) +{ + char buffer[65]; + char *p, *db, *de; + long long_val; + int sl= 0; + ulonglong uval= (ulonglong) val; + + if (radix < 0) + { + if (val < 0) + { + sl= 1; + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (ulonglong)0 - uval; + } + } + + p= &buffer[sizeof(buffer)-1]; + *p='\0'; + + if (uval == 0) + { + *--p= '0'; + goto cnv; + } + + while (uval > (ulonglong) LONG_MAX) + { + ulonglong quo= uval/(uint) 10; + uint rem= (uint) (uval- quo* (uint) 10); + *--p= '0' + rem; + uval= quo; + } + + long_val= (long) uval; + while (long_val != 0) + { + long quo= long_val/10; + *--p= (char) ('0' + (long_val - quo*10)); + long_val= quo; + } + +cnv: + if (sl) + { + *--p= '-'; + } + + for ( db= dst, de= dst + len ; (dst < de) && *p ; p++) + { + int cnvres= cs->cset->wc_mb(cs, (my_wc_t) p[0], (uchar*) dst, (uchar*) de); + if (cnvres > 0) + dst+= cnvres; + else + break; + } + return (int) (dst -db); +} + +#endif /* HAVE_CHARSET_mb2_or_mb4 */ + + +#ifdef HAVE_CHARSET_mb2 +static longlong +my_strtoll10_mb2(const CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error) +{ + const char *s, *end, *start, *n_end, *true_end; + uchar c; + unsigned long i, j, k; + ulonglong li; + int negative; + ulong cutoff, cutoff2, cutoff3; + my_wc_t wc; + int res; + + s= nptr; + /* If fixed length string */ + if (endptr) + { + /* + Make sure string length is even. + Odd length indicates a bug in the caller. + Assert in debug, round in production. + */ + DBUG_ASSERT((*endptr - s) % 2 == 0); + end= s + ((*endptr - s) / 2) * 2; + + for ( ; ; ) /* Skip leading spaces and tabs */ + { + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + s+= res; + if (wc != ' ' && wc != '\t') + break; + } + } + else + { + /* We don't support null terminated strings in UCS2 */ + goto no_conv; + } + + /* Check for a sign. */ + negative= 0; + if (wc == '-') + { + *error= -1; /* Mark as negative number */ + negative= 1; + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + s+= res; + cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2; + cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100; + cutoff3= MAX_NEGATIVE_NUMBER % 100; + } + else + { + *error= 0; + if (wc == '+') + { + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + s+= res; + } + cutoff= ULONGLONG_MAX / LFACTOR2; + cutoff2= ULONGLONG_MAX % LFACTOR2 / 100; + cutoff3= ULONGLONG_MAX % 100; + } + + + /* Handle case where we have a lot of pre-zero */ + if (wc == '0') + { + i= 0; + for ( ; ; s+= res) + { + if (s == end) + goto end_i; /* Return 0 */ + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + if (wc != '0') + break; + } + while (wc == '0'); + n_end= s + 2 * INIT_CNT; + } + else + { + /* Read first digit to check that it's a valid number */ + if ((c= (wc - '0')) > 9) + goto no_conv; + i= c; + n_end= s + 2 * (INIT_CNT-1); + } + + /* Handle first 9 digits and store them in i */ + if (n_end > end) + n_end= end; + for ( ; ; ) + { + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) n_end); + if (res <= 0) + break; + s+= res; + if ((c= (wc - '0')) > 9) + goto end_i; + i= i*10+c; + } + if (s == end) + goto end_i; + + /* Handle next 9 digits and store them in j */ + j= 0; + start= s; /* Used to know how much to shift i */ + n_end= true_end= s + 2 * INIT_CNT; + if (n_end > end) + n_end= end; + do + { + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + s+= res; + if ((c= (wc - '0')) > 9) + goto end_i_and_j; + j= j*10+c; + } while (s != n_end); + if (s == end) + { + if (s != true_end) + goto end_i_and_j; + goto end3; + } + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + s+= res; + if ((c= (wc - '0')) > 9) + goto end3; + + /* Handle the next 1 or 2 digits and store them in k */ + k=c; + if (s == end) + goto end4; + res= cs->cset->mb_wc(cs, &wc, (const uchar *) s, (const uchar *) end); + if (res <= 0) + goto no_conv; + s+= res; + if ((c= (wc - '0')) > 9) + goto end4; + k= k*10+c; + *endptr= (char*) s; + + /* number string should have ended here */ + if (s != end && (c= (wc - '0')) <= 9) + goto overflow; + + /* Check that we didn't get an overflow with the last digit */ + if (i > cutoff || (i == cutoff && ((j > cutoff2 || j == cutoff2) && + k > cutoff3))) + goto overflow; + li=i*LFACTOR2+ (ulonglong) j*100 + k; + return (longlong) li; + +overflow: /* *endptr is set here */ + *error= MY_ERRNO_ERANGE; + return negative ? LLONG_MIN : (longlong) ULONGLONG_MAX; + +end_i: + *endptr= (char*) s; + return (negative ? ((longlong) -(long) i) : (longlong) i); + +end_i_and_j: + li= (ulonglong) i * lfactor[(size_t) (s-start) / 2] + j; + *endptr= (char*) s; + return (negative ? -((longlong) li) : (longlong) li); + +end3: + li=(ulonglong) i*LFACTOR+ (ulonglong) j; + *endptr= (char*) s; + return (negative ? -((longlong) li) : (longlong) li); + +end4: + li=(ulonglong) i*LFACTOR1+ (ulonglong) j * 10 + k; + *endptr= (char*) s; + if (negative) + { + if (li > MAX_NEGATIVE_NUMBER) + goto overflow; + return -((longlong) li); + } + return (longlong) li; + +no_conv: + /* There was no number to convert. */ + *error= MY_ERRNO_EDOM; + *endptr= (char *) nptr; + return 0; +} + + +static size_t +my_scan_mb2(const CHARSET_INFO *cs, + const char *str, const char *end, int sequence_type) +{ + const char *str0= str; + my_wc_t wc; + int res; + + switch (sequence_type) + { + case MY_SEQ_SPACES: + for (res= cs->cset->mb_wc(cs, &wc, + (const uchar *) str, (const uchar *) end); + res > 0 && wc == ' '; + str+= res, + res= cs->cset->mb_wc(cs, &wc, + (const uchar *) str, (const uchar *) end)) + { + } + return (size_t) (str - str0); + default: + return 0; + } +} + + +static void +my_fill_mb2(const CHARSET_INFO *cs, char *s, size_t slen, int fill) +{ + char buf[10]; + int buflen; + + DBUG_ASSERT((slen % 2) == 0); + + buflen= cs->cset->wc_mb(cs, (my_wc_t) fill, (uchar*) buf, + (uchar*) buf + sizeof(buf)); + + DBUG_ASSERT(buflen > 0); + + while (slen >= (size_t) buflen) + { + /* Enough space for the characer */ + memcpy(s, buf, (size_t) buflen); + s+= buflen; + slen-= buflen; + } + + /* + If there are some more space which is not enough + for the whole multibyte character, then add trailing zeros. + */ + for ( ; slen; slen--) + { + *s++= 0x00; + } +} + + +static size_t +my_vsnprintf_mb2(char *dst, size_t n, const char* fmt, va_list ap) +{ + char *start=dst, *end= dst + n - 1; + for (; *fmt ; fmt++) + { + if (fmt[0] != '%') + { + if (dst == end) /* End of buffer */ + break; + + *dst++='\0'; + *dst++= *fmt; /* Copy ordinary char */ + continue; + } + + fmt++; + + /* Skip if max size is used (to be compatible with printf) */ + while ( (*fmt >= '0' && *fmt <= '9') || *fmt == '.' || *fmt == '-') + fmt++; + + if (*fmt == 'l') + fmt++; + + if (*fmt == 's') /* String parameter */ + { + char *par= va_arg(ap, char *); + size_t plen; + size_t left_len= (size_t)(end-dst); + if (!par) + par= (char*) "(null)"; + plen= strlen(par); + if (left_len <= plen * 2) + plen = left_len / 2 - 1; + + for ( ; plen ; plen--, dst+=2, par++) + { + dst[0]= '\0'; + dst[1]= par[0]; + } + continue; + } + else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */ + { + int iarg; + char nbuf[16]; + char *pbuf= nbuf; + + if ((size_t) (end - dst) < 32) + break; + iarg= va_arg(ap, int); + if (*fmt == 'd') + int10_to_str((long) iarg, nbuf, -10); + else + int10_to_str((long) (uint) iarg, nbuf,10); + + for (; pbuf[0]; pbuf++) + { + *dst++= '\0'; + *dst++= *pbuf; + } + continue; + } + + /* We come here on '%%', unknown code or too long parameter */ + if (dst == end) + break; + *dst++= '\0'; + *dst++= '%'; /* % used as % or unknown code */ + } + + DBUG_ASSERT(dst <= end); + *dst='\0'; /* End of errmessage */ + return (size_t) (dst - start); +} + + +static size_t +my_snprintf_mb2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char* to, size_t n, const char* fmt, ...) +{ + size_t retval; + va_list args; + va_start(args,fmt); + retval= my_vsnprintf_mb2(to, n, fmt, args); + va_end(args); + return retval; +} + + +static size_t +my_lengthsp_mb2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *ptr, size_t length) +{ + const char *end= ptr + length; + while (end > ptr + 1 && end[-1] == ' ' && end[-2] == '\0') + end-= 2; + return (size_t) (end - ptr); +} + +#endif /* HAVE_CHARSET_mb2*/ + + + + +#ifdef HAVE_CHARSET_utf16 + +/* + D800..DB7F - Non-provate surrogate high (896 pages) + DB80..DBFF - Private surrogate high (128 pages) + DC00..DFFF - Surrogate low (1024 codes in a page) +*/ +#define MY_UTF16_SURROGATE_HIGH_FIRST 0xD800 +#define MY_UTF16_SURROGATE_HIGH_LAST 0xDBFF +#define MY_UTF16_SURROGATE_LOW_FIRST 0xDC00 +#define MY_UTF16_SURROGATE_LOW_LAST 0xDFFF + +#define MY_UTF16_HIGH_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xD8) +#define MY_UTF16_LOW_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xDC) +#define MY_UTF16_SURROGATE(x) (((x) & 0xF800) == 0xD800) + +#define MY_UTF16_WC2(a, b) ((a << 8) + b) + +/* + a= 110110?? (<< 18) + b= ???????? (<< 10) + c= 110111?? (<< 8) + d= ???????? (<< 0) +*/ +#define MY_UTF16_WC4(a, b, c, d) (((a & 3) << 18) + (b << 10) + \ + ((c & 3) << 8) + d + 0x10000) + +static int +my_utf16_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + /* + High bytes: 0xD[89AB] = B'110110??' + Low bytes: 0xD[CDEF] = B'110111??' + Surrogate mask: 0xFC = B'11111100' + */ + + if (MY_UTF16_HIGH_HEAD(*s)) /* Surrogate head */ + { + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + if (!MY_UTF16_LOW_HEAD(s[2])) /* Broken surrigate pair */ + return MY_CS_ILSEQ; + + *pwc= MY_UTF16_WC4(s[0], s[1], s[2], s[3]); + return 4; + } + + if (MY_UTF16_LOW_HEAD(*s)) /* Low surrogate part without high part */ + return MY_CS_ILSEQ; + + *pwc= MY_UTF16_WC2(s[0], s[1]); + return 2; +} + + +static int +my_uni_utf16(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + if (wc <= 0xFFFF) + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + if (MY_UTF16_SURROGATE(wc)) + return MY_CS_ILUNI; + *s++= (uchar) (wc >> 8); + *s= (uchar) (wc & 0xFF); + return 2; + } + + if (wc <= 0x10FFFF) + { + if (s + 4 > e) + return MY_CS_TOOSMALL4; + *s++= (uchar) ((wc-= 0x10000) >> 18) | 0xD8; + *s++= (uchar) (wc >> 10) & 0xFF; + *s++= (uchar) ((wc >> 8) & 3) | 0xDC; + *s= (uchar) wc & 0xFF; + return 4; + } + + return MY_CS_ILUNI; +} + + +static inline void +my_tolower_utf16(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].tolower; +} + + +static inline void +my_toupper_utf16(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].toupper; +} + + +static inline void +my_tosort_utf16(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + if (*wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].sort; + } + else + { + *wc= MY_CS_REPLACEMENT_CHARACTER; + } +} + + + +static size_t +my_caseup_utf16(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + my_wc_t wc; + int res; + char *srcend= src + srclen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src == dst && srclen == dstlen); + + while ((src < srcend) && + (res= cs->cset->mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0) + { + my_toupper_utf16(uni_plane, &wc); + if (res != cs->cset->wc_mb(cs, wc, (uchar *) src, (uchar *) srcend)) + break; + src+= res; + } + return srclen; +} + + +static void +my_hash_sort_utf16(const CHARSET_INFO *cs, const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + my_wc_t wc; + int res; + const uchar *e= s + cs->cset->lengthsp(cs, (const char *) s, slen); + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + ulong tmp1; + ulong tmp2; + + tmp1= *n1; + tmp2= *n2; + + while ((s < e) && (res= cs->cset->mb_wc(cs, &wc, + (uchar *) s, (uchar *) e)) > 0) + { + my_tosort_utf16(uni_plane, &wc); + tmp1^= (((tmp1 & 63) + tmp2) * (wc & 0xFF)) + (tmp1 << 8); + tmp2+= 3; + tmp1^= (((tmp1 & 63) + tmp2) * (wc >> 8)) + (tmp1 << 8); + tmp2+= 3; + s+= res; + } + + *n1= tmp1; + *n2= tmp2; +} + + +static size_t +my_casedn_utf16(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + my_wc_t wc; + int res; + char *srcend= src + srclen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src == dst && srclen == dstlen); + + while ((src < srcend) && + (res= cs->cset->mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0) + { + my_tolower_utf16(uni_plane, &wc); + if (res != cs->cset->wc_mb(cs, wc, (uchar *) src, (uchar *) srcend)) + break; + src+= res; + } + return srclen; +} + + +static int +my_strnncoll_utf16(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + int s_res, t_res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s + slen; + const uchar *te= t + tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + while (s < se && t < te) + { + s_res= cs->cset->mb_wc(cs, &s_wc, s, se); + t_res= cs->cset->mb_wc(cs, &t_wc, t, te); + + if (s_res <= 0 || t_res <= 0) + { + /* Incorrect string, compare by char value */ + return my_bincmp(s, se, t, te); + } + + my_tosort_utf16(uni_plane, &s_wc); + my_tosort_utf16(uni_plane, &t_wc); + + if (s_wc != t_wc) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t))); +} + + +/** + Compare strings, discarding end space + + If one string is shorter as the other, then we space extend the other + so that the strings have equal length. + + This will ensure that the following things hold: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + @param cs Character set pinter. + @param a First string to compare. + @param a_length Length of 'a'. + @param b Second string to compare. + @param b_length Length of 'b'. + + IMPLEMENTATION + + @return Comparison result. + @retval Negative number, if a less than b. + @retval 0, if a is equal to b + @retval Positive number, if a > b +*/ + +static int +my_strnncollsp_utf16(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + int res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s + slen, *te= t + tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + DBUG_ASSERT((slen % 2) == 0); + DBUG_ASSERT((tlen % 2) == 0); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= FALSE; +#endif + + while (s < se && t < te) + { + int s_res= cs->cset->mb_wc(cs, &s_wc, s, se); + int t_res= cs->cset->mb_wc(cs, &t_wc, t, te); + + if (s_res <= 0 || t_res <= 0) + { + /* Incorrect string, compare bytewise */ + return my_bincmp(s, se, t, te); + } + + my_tosort_utf16(uni_plane, &s_wc); + my_tosort_utf16(uni_plane, &t_wc); + + if (s_wc != t_wc) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + + slen= (size_t) (se - s); + tlen= (size_t) (te - t); + res= 0; + + if (slen != tlen) + { + int s_res, swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 's' is bigger */ + if (slen < tlen) + { + slen= tlen; + s= t; + se= te; + swap= -1; + res= -res; + } + + for ( ; s < se; s+= s_res) + { + if ((s_res= cs->cset->mb_wc(cs, &s_wc, s, se)) <= 0) + { + return 0; + } + if (s_wc != ' ') + return (s_wc < ' ') ? -swap : swap; + } + } + return res; +} + + +static uint +my_ismbchar_utf16(const CHARSET_INFO *cs, const char *b, const char *e) +{ + my_wc_t wc; + int res= cs->cset->mb_wc(cs, &wc, (const uchar *) b, (const uchar *) e); + return (uint) (res > 0 ? res : 0); +} + + +static uint +my_mbcharlen_utf16(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c MY_ATTRIBUTE((unused))) +{ + DBUG_ASSERT(0); + return MY_UTF16_HIGH_HEAD(c) ? 4 : 2; +} + + +static size_t +my_numchars_utf16(const CHARSET_INFO *cs, + const char *b, const char *e) +{ + size_t nchars= 0; + for ( ; ; nchars++) + { + size_t charlen= my_ismbchar_utf16(cs, b, e); + if (!charlen) + break; + b+= charlen; + } + return nchars; +} + + +static size_t +my_charpos_utf16(const CHARSET_INFO *cs, + const char *b, const char *e, size_t pos) +{ + const char *b0= b; + uint charlen; + + for ( ; pos; b+= charlen, pos--) + { + if (!(charlen= my_ismbchar(cs, b, e))) + return (e + 2 - b0); /* Error, return pos outside the string */ + } + return (size_t) (pos ? (e + 2 - b0) : (b - b0)); +} + + +static size_t +my_well_formed_len_utf16(const CHARSET_INFO *cs, + const char *b, const char *e, + size_t nchars, int *error) +{ + const char *b0= b; + uint charlen; + *error= 0; + + for ( ; nchars; b+= charlen, nchars--) + { + if (!(charlen= my_ismbchar(cs, b, e))) + { + *error= b < e ? 1 : 0; + break; + } + } + return (size_t) (b - b0); +} + + +static int +my_wildcmp_utf16_ci(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, uni_plane); +} + + +static int +my_wildcmp_utf16_bin(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, NULL); +} + + +static int +my_strnncoll_utf16_bin(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + int s_res,t_res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se=s+slen; + const uchar *te=t+tlen; + + while ( s < se && t < te ) + { + s_res= cs->cset->mb_wc(cs, &s_wc, s, se); + t_res= cs->cset->mb_wc(cs, &t_wc, t, te); + + if (s_res <= 0 || t_res <= 0) + { + /* Incorrect string, compare by char value */ + return my_bincmp(s, se, t, te); + } + if (s_wc != t_wc) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t))); +} + + +static int +my_strnncollsp_utf16_bin(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + int res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s + slen, *te= t + tlen; + + DBUG_ASSERT((slen % 2) == 0); + DBUG_ASSERT((tlen % 2) == 0); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= FALSE; +#endif + + while (s < se && t < te) + { + int s_res= cs->cset->mb_wc(cs, &s_wc, s, se); + int t_res= cs->cset->mb_wc(cs, &t_wc, t, te); + + if (s_res <= 0 || t_res <= 0) + { + /* Incorrect string, compare bytewise */ + return my_bincmp(s, se, t, te); + } + + if (s_wc != t_wc) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + + slen= (size_t) (se - s); + tlen= (size_t) (te - t); + res= 0; + + if (slen != tlen) + { + int s_res, swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 's' is bigger */ + if (slen < tlen) + { + slen= tlen; + s= t; + se= te; + swap= -1; + res= -res; + } + + for ( ; s < se; s+= s_res) + { + if ((s_res= cs->cset->mb_wc(cs, &s_wc, s, se)) <= 0) + { + return 0; + } + if (s_wc != ' ') + return (s_wc < ' ') ? -swap : swap; + } + } + return res; +} + + +static void +my_hash_sort_utf16_bin(const CHARSET_INFO *cs, + const uchar *pos, size_t len, ulong *nr1, ulong *nr2) +{ + const uchar *end= pos + cs->cset->lengthsp(cs, (const char *) pos, len); + ulong tmp1; + ulong tmp2; + + tmp1= *nr1; + tmp2= *nr2; + + for ( ; pos < end ; pos++) + { + tmp1^= (ulong) ((((uint) tmp1 & 63) + tmp2) * + ((uint)*pos)) + (tmp1 << 8); + tmp2+= 3; + } + + *nr1= tmp1; + *nr2= tmp2; +} + + +static MY_COLLATION_HANDLER my_collation_utf16_general_ci_handler = +{ + NULL, /* init */ + my_strnncoll_utf16, + my_strnncollsp_utf16, + my_strnxfrm_unicode, + my_strnxfrmlen_simple, + my_like_range_generic, + my_wildcmp_utf16_ci, + my_strcasecmp_mb2_or_mb4, + my_instr_mb, + my_hash_sort_utf16, + my_propagate_simple +}; + + +static MY_COLLATION_HANDLER my_collation_utf16_bin_handler = +{ + NULL, /* init */ + my_strnncoll_utf16_bin, + my_strnncollsp_utf16_bin, + my_strnxfrm_unicode_full_bin, + my_strnxfrmlen_unicode_full_bin, + my_like_range_generic, + my_wildcmp_utf16_bin, + my_strcasecmp_mb2_or_mb4, + my_instr_mb, + my_hash_sort_utf16_bin, + my_propagate_simple +}; + + +MY_CHARSET_HANDLER my_charset_utf16_handler= +{ + NULL, /* init */ + my_ismbchar_utf16, /* ismbchar */ + my_mbcharlen_utf16, /* mbcharlen */ + my_numchars_utf16, + my_charpos_utf16, + my_well_formed_len_utf16, + my_lengthsp_mb2, + my_numcells_mb, + my_utf16_uni, /* mb_wc */ + my_uni_utf16, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb2_or_mb4, + my_casedn_str_mb2_or_mb4, + my_caseup_utf16, + my_casedn_utf16, + my_snprintf_mb2, + my_l10tostr_mb2_or_mb4, + my_ll10tostr_mb2_or_mb4, + my_fill_mb2, + my_strntol_mb2_or_mb4, + my_strntoul_mb2_or_mb4, + my_strntoll_mb2_or_mb4, + my_strntoull_mb2_or_mb4, + my_strntod_mb2_or_mb4, + my_strtoll10_mb2, + my_strntoull10rnd_mb2_or_mb4, + my_scan_mb2 +}; + + +CHARSET_INFO my_charset_utf16_general_ci= +{ + 54,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16", /* cs name */ + "utf16_general_ci", /* name */ + "UTF-16 Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf16_bin= +{ + 55,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16", /* cs name */ + "utf16_bin", /* name */ + "UTF-16 Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_bin_handler +}; + + +static int +my_utf16le_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + my_wc_t lo; + + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + if ((*pwc= uint2korr(s)) < MY_UTF16_SURROGATE_HIGH_FIRST || + (*pwc > MY_UTF16_SURROGATE_LOW_LAST)) + return 2; /* [0000-D7FF,E000-FFFF] */ + + if (*pwc >= MY_UTF16_SURROGATE_LOW_FIRST) + return MY_CS_ILSEQ; /* [DC00-DFFF] Low surrogate part without high part */ + + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + s+= 2; + + if ((lo= uint2korr(s)) < MY_UTF16_SURROGATE_LOW_FIRST || + lo > MY_UTF16_SURROGATE_LOW_LAST) + return MY_CS_ILSEQ; /* Expected low surrogate part, got something else */ + + *pwc= 0x10000 + (((*pwc & 0x3FF) << 10) | (lo & 0x3FF)); + return 4; +} + + +static int +my_uni_utf16le(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + if (wc < MY_UTF16_SURROGATE_HIGH_FIRST || + (wc > MY_UTF16_SURROGATE_LOW_LAST && + wc <= 0xFFFF)) + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + int2store(s, (uint16)wc); + return 2; /* [0000-D7FF,E000-FFFF] */ + } + + if (wc < 0xFFFF || wc > 0x10FFFF) + return MY_CS_ILUNI; /* [D800-DFFF,10FFFF+] */ + + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + wc-= 0x10000; + int2store(s, (0xD800 | ((wc >> 10) & 0x3FF))); s+= 2; + int2store(s, (0xDC00 | (wc & 0x3FF))); + return 4; /* [010000-10FFFF] */ +} + + +static size_t +my_lengthsp_utf16le(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *ptr, size_t length) +{ + const char *end= ptr + length; + while (end > ptr + 1 && uint2korr((uchar*) end - 2) == 0x20) + end-= 2; + return (size_t) (end - ptr); +} + + +static MY_CHARSET_HANDLER my_charset_utf16le_handler= +{ + NULL, /* init */ + my_ismbchar_utf16, + my_mbcharlen_utf16, + my_numchars_utf16, + my_charpos_utf16, + my_well_formed_len_utf16, + my_lengthsp_utf16le, + my_numcells_mb, + my_utf16le_uni, /* mb_wc */ + my_uni_utf16le, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb2_or_mb4, + my_casedn_str_mb2_or_mb4, + my_caseup_utf16, + my_casedn_utf16, + my_snprintf_mb2, + my_l10tostr_mb2_or_mb4, + my_ll10tostr_mb2_or_mb4, + my_fill_mb2, + my_strntol_mb2_or_mb4, + my_strntoul_mb2_or_mb4, + my_strntoll_mb2_or_mb4, + my_strntoull_mb2_or_mb4, + my_strntod_mb2_or_mb4, + my_strtoll10_mb2, + my_strntoull10rnd_mb2_or_mb4, + my_scan_mb2 +}; + + +CHARSET_INFO my_charset_utf16le_general_ci= +{ + 56,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16le", /* cs name */ + "utf16le_general_ci",/* name */ + "UTF-16LE Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16le_handler, + &my_collation_utf16_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf16le_bin= +{ + 62,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16le", /* cs name */ + "utf16le_bin", /* name */ + "UTF-16LE Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf16le_handler, + &my_collation_utf16_bin_handler +}; + + +#endif /* HAVE_CHARSET_utf16 */ + + +#ifdef HAVE_CHARSET_utf32 + +static int +my_utf32_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + if (s + 4 > e) + return MY_CS_TOOSMALL4; + *pwc= (((my_wc_t)s[0]) << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]); + return 4; +} + + +static int +my_uni_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + s[0]= (uchar) (wc >> 24); + s[1]= (uchar) (wc >> 16) & 0xFF; + s[2]= (uchar) (wc >> 8) & 0xFF; + s[3]= (uchar) wc & 0xFF; + return 4; +} + + +static inline void +my_tolower_utf32(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].tolower; +} + + +static inline void +my_toupper_utf32(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].toupper; +} + + +static inline void +my_tosort_utf32(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + if (*wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].sort; + } + else + { + *wc= MY_CS_REPLACEMENT_CHARACTER; + } +} + + +static size_t +my_caseup_utf32(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + my_wc_t wc; + int res; + char *srcend= src + srclen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src == dst && srclen == dstlen); + + while ((src < srcend) && + (res= my_utf32_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0) + { + my_toupper_utf32(uni_plane, &wc); + if (res != my_uni_utf32(cs, wc, (uchar*) src, (uchar*) srcend)) + break; + src+= res; + } + return srclen; +} + + +static void +my_hash_sort_utf32(const CHARSET_INFO *cs, const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + my_wc_t wc; + int res; + const uchar *e= s + slen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + ulong tmp1; + ulong tmp2; + uint ch; + + /* Skip trailing spaces */ + while (e > s + 3 && e[-1] == ' ' && !e[-2] && !e[-3] && !e[-4]) + e-= 4; + + tmp1= *n1; + tmp2= *n2; + + while ((res= my_utf32_uni(cs, &wc, (uchar*) s, (uchar*) e)) > 0) + { + my_tosort_utf32(uni_plane, &wc); + + ch= (wc >> 24); + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (wc >> 16) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (wc >> 8) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (wc & 0xFF); + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + s+= res; + } + + *n1= tmp1; + *n2= tmp2; +} + + +static size_t +my_casedn_utf32(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + my_wc_t wc; + int res; + char *srcend= src + srclen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src == dst && srclen == dstlen); + + while ((res= my_utf32_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) + { + my_tolower_utf32(uni_plane,&wc); + if (res != my_uni_utf32(cs, wc, (uchar*) src, (uchar*) srcend)) + break; + src+= res; + } + return srclen; +} + + +static int +my_strnncoll_utf32(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s + slen; + const uchar *te= t + tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + while (s < se && t < te) + { + int s_res= my_utf32_uni(cs, &s_wc, s, se); + int t_res= my_utf32_uni(cs, &t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0) + { + /* Incorrect string, compare by char value */ + return my_bincmp(s, se, t, te); + } + + my_tosort_utf32(uni_plane, &s_wc); + my_tosort_utf32(uni_plane, &t_wc); + + if (s_wc != t_wc) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t))); +} + + +/** + Compare strings, discarding end space + + If one string is shorter as the other, then we space extend the other + so that the strings have equal length. + + This will ensure that the following things hold: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + @param cs Character set pinter. + @param a First string to compare. + @param a_length Length of 'a'. + @param b Second string to compare. + @param b_length Length of 'b'. + + IMPLEMENTATION + + @return Comparison result. + @retval Negative number, if a less than b. + @retval 0, if a is equal to b + @retval Positive number, if a > b +*/ + + +static int +my_strnncollsp_utf32(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + int res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s + slen, *te= t + tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + DBUG_ASSERT((slen % 4) == 0); + DBUG_ASSERT((tlen % 4) == 0); + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= FALSE; +#endif + + while ( s < se && t < te ) + { + int s_res= my_utf32_uni(cs, &s_wc, s, se); + int t_res= my_utf32_uni(cs, &t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare bytewise */ + return my_bincmp(s, se, t, te); + } + + my_tosort_utf32(uni_plane, &s_wc); + my_tosort_utf32(uni_plane, &t_wc); + + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + + slen= (size_t) (se - s); + tlen= (size_t) (te - t); + res= 0; + + if (slen != tlen) + { + int s_res, swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 's' is bigger */ + if (slen < tlen) + { + slen= tlen; + s= t; + se= te; + swap= -1; + res= -res; + } + + for ( ; s < se; s+= s_res) + { + if ((s_res= my_utf32_uni(cs, &s_wc, s, se)) < 0) + { + DBUG_ASSERT(0); + return 0; + } + if (s_wc != ' ') + return (s_wc < ' ') ? -swap : swap; + } + } + return res; +} + + +static size_t +my_strnxfrmlen_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + size_t len) +{ + return len / 2; +} + + +static uint +my_ismbchar_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b MY_ATTRIBUTE((unused)), + const char *e MY_ATTRIBUTE((unused))) +{ + return 4; +} + + +static uint +my_mbcharlen_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)) , + uint c MY_ATTRIBUTE((unused))) +{ + return 4; +} + + +static size_t +my_vsnprintf_utf32(char *dst, size_t n, const char* fmt, va_list ap) +{ + char *start= dst, *end= dst + n; + DBUG_ASSERT((n % 4) == 0); + for (; *fmt ; fmt++) + { + if (fmt[0] != '%') + { + if (dst >= end) /* End of buffer */ + break; + + *dst++= '\0'; + *dst++= '\0'; + *dst++= '\0'; + *dst++= *fmt; /* Copy ordinary char */ + continue; + } + + fmt++; + + /* Skip if max size is used (to be compatible with printf) */ + while ( (*fmt>='0' && *fmt<='9') || *fmt == '.' || *fmt == '-') + fmt++; + + if (*fmt == 'l') + fmt++; + + if (*fmt == 's') /* String parameter */ + { + char *par= va_arg(ap, char *); + size_t plen; + size_t left_len= (size_t)(end - dst); + if (!par) par= (char*)"(null)"; + plen= strlen(par); + if (left_len <= plen*4) + plen= left_len / 4 - 1; + + for ( ; plen ; plen--, dst+= 4, par++) + { + dst[0]= '\0'; + dst[1]= '\0'; + dst[2]= '\0'; + dst[3]= par[0]; + } + continue; + } + else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */ + { + int iarg; + char nbuf[16]; + char *pbuf= nbuf; + + if ((size_t) (end - dst) < 64) + break; + iarg= va_arg(ap, int); + if (*fmt == 'd') + int10_to_str((long) iarg, nbuf, -10); + else + int10_to_str((long) (uint) iarg,nbuf,10); + + for (; pbuf[0]; pbuf++) + { + *dst++= '\0'; + *dst++= '\0'; + *dst++= '\0'; + *dst++= *pbuf; + } + continue; + } + + /* We come here on '%%', unknown code or too long parameter */ + if (dst == end) + break; + *dst++= '\0'; + *dst++= '\0'; + *dst++= '\0'; + *dst++= '%'; /* % used as % or unknown code */ + } + + DBUG_ASSERT(dst < end); + *dst++= '\0'; + *dst++= '\0'; + *dst++= '\0'; + *dst++= '\0'; /* End of errmessage */ + return (size_t) (dst - start - 4); +} + + +static size_t +my_snprintf_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char* to, size_t n, const char* fmt, ...) +{ + size_t retval; + va_list args; + va_start(args,fmt); + retval= my_vsnprintf_utf32(to, n, fmt, args); + va_end(args); + return retval; +} + + +static longlong +my_strtoll10_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *nptr, char **endptr, int *error) +{ + const char *s, *end, *start, *n_end, *true_end; + uchar c; + unsigned long i, j, k; + ulonglong li; + int negative; + ulong cutoff, cutoff2, cutoff3; + + s= nptr; + /* If fixed length string */ + if (endptr) + { + /* Make sure string length is even */ + end= s + ((*endptr - s) / 4) * 4; + while (s < end && !s[0] && !s[1] && !s[2] && + (s[3] == ' ' || s[3] == '\t')) + s+= 4; + if (s == end) + goto no_conv; + } + else + { + /* We don't support null terminated strings in UCS2 */ + goto no_conv; + } + + /* Check for a sign. */ + negative= 0; + if (!s[0] && !s[1] && !s[2] && s[3] == '-') + { + *error= -1; /* Mark as negative number */ + negative= 1; + s+= 4; + if (s == end) + goto no_conv; + cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2; + cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100; + cutoff3= MAX_NEGATIVE_NUMBER % 100; + } + else + { + *error= 0; + if (!s[0] && !s[1] && !s[2] && s[3] == '+') + { + s+= 4; + if (s == end) + goto no_conv; + } + cutoff= ULONGLONG_MAX / LFACTOR2; + cutoff2= ULONGLONG_MAX % LFACTOR2 / 100; + cutoff3= ULONGLONG_MAX % 100; + } + + /* Handle case where we have a lot of pre-zero */ + if (!s[0] && !s[1] && !s[2] && s[3] == '0') + { + i= 0; + do + { + s+= 4; + if (s == end) + goto end_i; /* Return 0 */ + } + while (!s[0] && !s[1] && !s[2] && s[3] == '0'); + n_end= s + 4 * INIT_CNT; + } + else + { + /* Read first digit to check that it's a valid number */ + if (s[0] || s[1] || s[2] || (c= (s[3]-'0')) > 9) + goto no_conv; + i= c; + s+= 4; + n_end= s + 4 * (INIT_CNT-1); + } + + /* Handle first 9 digits and store them in i */ + if (n_end > end) + n_end= end; + for (; s != n_end ; s+= 4) + { + if (s[0] || s[1] || s[2] || (c= (s[3] - '0')) > 9) + goto end_i; + i= i * 10 + c; + } + if (s == end) + goto end_i; + + /* Handle next 9 digits and store them in j */ + j= 0; + start= s; /* Used to know how much to shift i */ + n_end= true_end= s + 4 * INIT_CNT; + if (n_end > end) + n_end= end; + do + { + if (s[0] || s[1] || s[2] || (c= (s[3] - '0')) > 9) + goto end_i_and_j; + j= j * 10 + c; + s+= 4; + } while (s != n_end); + if (s == end) + { + if (s != true_end) + goto end_i_and_j; + goto end3; + } + if (s[0] || s[1] || s[2] || (c= (s[3] - '0')) > 9) + goto end3; + + /* Handle the next 1 or 2 digits and store them in k */ + k=c; + s+= 4; + if (s == end || s[0] || s[1] || s[2] || (c= (s[3]-'0')) > 9) + goto end4; + k= k * 10 + c; + s+= 2; + *endptr= (char*) s; + + /* number string should have ended here */ + if (s != end && !s[0] && !s[1] && !s[2] && (c= (s[3] - '0')) <= 9) + goto overflow; + + /* Check that we didn't get an overflow with the last digit */ + if (i > cutoff || (i == cutoff && ((j > cutoff2 || j == cutoff2) && + k > cutoff3))) + goto overflow; + li= i * LFACTOR2+ (ulonglong) j * 100 + k; + return (longlong) li; + +overflow: /* *endptr is set here */ + *error= MY_ERRNO_ERANGE; + return negative ? LLONG_MIN : (longlong) ULONGLONG_MAX; + +end_i: + *endptr= (char*) s; + return (negative ? ((longlong) -(long) i) : (longlong) i); + +end_i_and_j: + li= (ulonglong) i * lfactor[(size_t) (s-start) / 4] + j; + *endptr= (char*) s; + return (negative ? -((longlong) li) : (longlong) li); + +end3: + li= (ulonglong) i*LFACTOR+ (ulonglong) j; + *endptr= (char*) s; + return (negative ? -((longlong) li) : (longlong) li); + +end4: + li= (ulonglong) i*LFACTOR1+ (ulonglong) j * 10 + k; + *endptr= (char*) s; + if (negative) + { + if (li > MAX_NEGATIVE_NUMBER) + goto overflow; + return -((longlong) li); + } + return (longlong) li; + +no_conv: + /* There was no number to convert. */ + *error= MY_ERRNO_EDOM; + *endptr= (char *) nptr; + return 0; +} + + +static size_t +my_numchars_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e) +{ + return (size_t) (e - b) / 4; +} + + +static size_t +my_charpos_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, size_t pos) +{ + size_t string_length= (size_t) (e - b); + return pos * 4 > string_length ? string_length + 4 : pos * 4; +} + + +static size_t +my_well_formed_len_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t nchars, int *error) +{ + /* Ensure string length is divisible by 4 */ + const char *b0= b; + size_t length= e - b; + DBUG_ASSERT((length % 4) == 0); + *error= 0; + nchars*= 4; + if (length > nchars) + { + length= nchars; + e= b + nchars; + } + for (; b < e; b+= 4) + { + /* Don't accept characters greater than U+10FFFF */ + if (b[0] || (uchar) b[1] > 0x10) + { + *error= 1; + return b - b0; + } + } + return length; +} + + +static +void my_fill_utf32(const CHARSET_INFO *cs, + char *s, size_t slen, int fill) +{ + char buf[10]; + char *e= s + slen; + + DBUG_ASSERT((slen % 4) == 0); + { +#ifndef DBUG_OFF + uint buflen= +#endif + cs->cset->wc_mb(cs, (my_wc_t) fill, (uchar*) buf, + (uchar*) buf + sizeof(buf)); + DBUG_ASSERT(buflen == 4); + } + while (s < e) + { + memcpy(s, buf, 4); + s+= 4; + } +} + + +static size_t +my_lengthsp_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *ptr, size_t length) +{ + const char *end= ptr + length; + DBUG_ASSERT((length % 4) == 0); + while (end > ptr + 3 && end[-1] == ' ' && !end[-2] && !end[-3] && !end[-4]) + end-= 4; + return (size_t) (end - ptr); +} + + +static int +my_wildcmp_utf32_ci(const CHARSET_INFO *cs, + const char *str, const char *str_end, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many) +{ + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, uni_plane); +} + + +static int +my_wildcmp_utf32_bin(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, NULL); +} + + +static int +my_strnncoll_utf32_bin(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s + slen; + const uchar *te= t + tlen; + + while (s < se && t < te) + { + int s_res= my_utf32_uni(cs, &s_wc, s, se); + int t_res= my_utf32_uni(cs, &t_wc, t, te); + + if (s_res <= 0 || t_res <= 0) + { + /* Incorrect string, compare by char value */ + return my_bincmp(s, se, t, te); + } + if (s_wc != t_wc) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + return (int) (t_is_prefix ? (t-te) : ((se - s) - (te - t))); +} + + +static inline my_wc_t +my_utf32_get(const uchar *s) +{ + return + ((my_wc_t) s[0] << 24) + + ((my_wc_t) s[1] << 16) + + ((my_wc_t) s[2] << 8) + + s[3]; +} + + +static int +my_strnncollsp_utf32_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + const uchar *se, *te; + size_t minlen; + + DBUG_ASSERT((slen % 4) == 0); + DBUG_ASSERT((tlen % 4) == 0); + + se= s + slen; + te= t + tlen; + + for (minlen= MY_MIN(slen, tlen); minlen; minlen-= 4) + { + my_wc_t s_wc= my_utf32_get(s); + my_wc_t t_wc= my_utf32_get(t); + if (s_wc != t_wc) + return s_wc > t_wc ? 1 : -1; + + s+= 4; + t+= 4; + } + + if (slen != tlen) + { + int swap= 1; + if (slen < tlen) + { + s= t; + se= te; + swap= -1; + } + + for ( ; s < se ; s+= 4) + { + my_wc_t s_wc= my_utf32_get(s); + if (s_wc != ' ') + return (s_wc < ' ') ? -swap : swap; + } + } + return 0; +} + + +static size_t +my_scan_utf32(const CHARSET_INFO *cs, + const char *str, const char *end, int sequence_type) +{ + const char *str0= str; + + switch (sequence_type) + { + case MY_SEQ_SPACES: + for ( ; str < end; ) + { + my_wc_t wc; + int res= my_utf32_uni(cs, &wc, (uchar*) str, (uchar*) end); + if (res < 0 || wc != ' ') + break; + str+= res; + } + return (size_t) (str - str0); + default: + return 0; + } +} + + +static MY_COLLATION_HANDLER my_collation_utf32_general_ci_handler = +{ + NULL, /* init */ + my_strnncoll_utf32, + my_strnncollsp_utf32, + my_strnxfrm_unicode, + my_strnxfrmlen_utf32, + my_like_range_generic, + my_wildcmp_utf32_ci, + my_strcasecmp_mb2_or_mb4, + my_instr_mb, + my_hash_sort_utf32, + my_propagate_simple +}; + + +static MY_COLLATION_HANDLER my_collation_utf32_bin_handler = +{ + NULL, /* init */ + my_strnncoll_utf32_bin, + my_strnncollsp_utf32_bin, + my_strnxfrm_unicode_full_bin, + my_strnxfrmlen_unicode_full_bin, + my_like_range_generic, + my_wildcmp_utf32_bin, + my_strcasecmp_mb2_or_mb4, + my_instr_mb, + my_hash_sort_utf32, + my_propagate_simple +}; + + +MY_CHARSET_HANDLER my_charset_utf32_handler= +{ + NULL, /* init */ + my_ismbchar_utf32, + my_mbcharlen_utf32, + my_numchars_utf32, + my_charpos_utf32, + my_well_formed_len_utf32, + my_lengthsp_utf32, + my_numcells_mb, + my_utf32_uni, + my_uni_utf32, + my_mb_ctype_mb, + my_caseup_str_mb2_or_mb4, + my_casedn_str_mb2_or_mb4, + my_caseup_utf32, + my_casedn_utf32, + my_snprintf_utf32, + my_l10tostr_mb2_or_mb4, + my_ll10tostr_mb2_or_mb4, + my_fill_utf32, + my_strntol_mb2_or_mb4, + my_strntoul_mb2_or_mb4, + my_strntoll_mb2_or_mb4, + my_strntoull_mb2_or_mb4, + my_strntod_mb2_or_mb4, + my_strtoll10_utf32, + my_strntoull10rnd_mb2_or_mb4, + my_scan_utf32 +}; + + +CHARSET_INFO my_charset_utf32_general_ci= +{ + 60,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf32", /* cs name */ + "utf32_general_ci", /* name */ + "UTF-32 Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf32_bin= +{ + 61,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf32", /* cs name */ + "utf32_bin", /* name */ + "UTF-32 Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_bin_handler +}; + + +#endif /* HAVE_CHARSET_utf32 */ + + +#ifdef HAVE_CHARSET_ucs2 + +static const uchar ctype_ucs2[] = { + 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const uchar to_lower_ucs2[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + +static const uchar to_upper_ucs2[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + + +static int my_ucs2_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t * pwc, const uchar *s, const uchar *e) +{ + if (s+2 > e) /* Need 2 characters */ + return MY_CS_TOOSMALL2; + + *pwc= ((uchar)s[0]) * 256 + ((uchar)s[1]); + return 2; +} + +static int my_uni_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)) , + my_wc_t wc, uchar *r, uchar *e) +{ + if ( r+2 > e ) + return MY_CS_TOOSMALL2; + + if (wc > 0xFFFF) /* UCS2 does not support characters outside BMP */ + return MY_CS_ILUNI; + + r[0]= (uchar) (wc >> 8); + r[1]= (uchar) (wc & 0xFF); + return 2; +} + + +static inline void +my_tolower_ucs2(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].tolower; +} + + +static inline void +my_toupper_ucs2(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].toupper; +} + + +static inline void +my_tosort_ucs2(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].sort; +} + + +static size_t my_caseup_ucs2(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + my_wc_t wc; + int res; + char *srcend= src + srclen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src == dst && srclen == dstlen); + + while ((src < srcend) && + (res= my_ucs2_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0) + { + my_toupper_ucs2(uni_plane, &wc); + if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend)) + break; + src+= res; + } + return srclen; +} + + +static void my_hash_sort_ucs2(const CHARSET_INFO *cs, const uchar *s, + size_t slen, ulong *n1, ulong *n2) +{ + my_wc_t wc; + int res; + const uchar *e=s+slen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + ulong tmp1; + ulong tmp2; + + while (e > s+1 && e[-1] == ' ' && e[-2] == '\0') + e-= 2; + + tmp1= *n1; + tmp2= *n2; + + while ((s < e) && (res=my_ucs2_uni(cs,&wc, (uchar *)s, (uchar*)e)) >0) + { + my_tosort_ucs2(uni_plane, &wc); + tmp1^= (((tmp1 & 63) + tmp2) * (wc & 0xFF)) + (tmp1 << 8); + tmp2+=3; + tmp1^= (((tmp1 & 63) + tmp2) * (wc >> 8)) + (tmp1 << 8); + tmp2+=3; + s+=res; + } + + *n1= tmp1; + *n2= tmp2; +} + + +static size_t my_casedn_ucs2(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst MY_ATTRIBUTE((unused)), + size_t dstlen MY_ATTRIBUTE((unused))) +{ + my_wc_t wc; + int res; + char *srcend= src + srclen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src == dst && srclen == dstlen); + + while ((src < srcend) && + (res= my_ucs2_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) + { + my_tolower_ucs2(uni_plane, &wc); + if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend)) + break; + src+= res; + } + return srclen; +} + + +static void +my_fill_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + char *s, size_t l, int fill) +{ + DBUG_ASSERT(fill <= 0xFFFF); + for ( ; l >= 2; s[0]= (fill >> 8), s[1]= (fill & 0xFF), s+= 2, l-= 2); +} + + +static int my_strnncoll_ucs2(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + int s_res,t_res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se=s+slen; + const uchar *te=t+tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + while ( s < se && t < te ) + { + s_res=my_ucs2_uni(cs,&s_wc, s, se); + t_res=my_ucs2_uni(cs,&t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare by char value */ + return ((int)s[0]-(int)t[0]); + } + + my_tosort_ucs2(uni_plane, &s_wc); + my_tosort_ucs2(uni_plane, &t_wc); + + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+=s_res; + t+=t_res; + } + return (int) (t_is_prefix ? t-te : ((se-s) - (te-t))); +} + +/* + Compare strings, discarding end space + + SYNOPSIS + my_strnncollsp_ucs2() + cs character set handler + a First string to compare + a_length Length of 'a' + b Second string to compare + b_length Length of 'b' + + IMPLEMENTATION + If one string is shorter as the other, then we space extend the other + so that the strings have equal length. + + This will ensure that the following things hold: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + RETURN + < 0 a < b + = 0 a == b + > 0 a > b +*/ + +static int my_strnncollsp_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + const uchar *se, *te; + size_t minlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + /* extra safety to make sure the lengths are even numbers */ + slen&= ~1; + tlen&= ~1; + + se= s + slen; + te= t + tlen; + + for (minlen= MY_MIN(slen, tlen); minlen; minlen-= 2) + { + int s_wc = uni_plane->page[s[0]] ? (int) uni_plane->page[s[0]][s[1]].sort : + (((int) s[0]) << 8) + (int) s[1]; + + int t_wc = uni_plane->page[t[0]] ? (int) uni_plane->page[t[0]][t[1]].sort : + (((int) t[0]) << 8) + (int) t[1]; + if ( s_wc != t_wc ) + return s_wc > t_wc ? 1 : -1; + + s+= 2; + t+= 2; + } + + if (slen != tlen) + { + int swap= 1; + if (slen < tlen) + { + s= t; + se= te; + swap= -1; + } + + for ( ; s < se ; s+= 2) + { + if (s[0] || s[1] != ' ') + return (s[0] == 0 && s[1] < ' ') ? -swap : swap; + } + } + return 0; +} + + +static uint my_ismbchar_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b MY_ATTRIBUTE((unused)), + const char *e MY_ATTRIBUTE((unused))) +{ + return 2; +} + + +static uint my_mbcharlen_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)) , + uint c MY_ATTRIBUTE((unused))) +{ + return 2; +} + + +static +size_t my_numchars_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e) +{ + return (size_t) (e-b)/2; +} + + +static +size_t my_charpos_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b MY_ATTRIBUTE((unused)), + const char *e MY_ATTRIBUTE((unused)), + size_t pos) +{ + size_t string_length= (size_t) (e - b); + return pos > string_length ? string_length + 2 : pos * 2; +} + + +static +size_t my_well_formed_len_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *b, const char *e, + size_t nchars, int *error) +{ + /* Ensure string length is dividable with 2 */ + size_t nbytes= ((size_t) (e-b)) & ~(size_t) 1; + *error= 0; + nchars*= 2; + return MY_MIN(nbytes, nchars); +} + + +static +int my_wildcmp_ucs2_ci(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend, + escape,w_one,w_many,uni_plane); +} + + +static +int my_wildcmp_ucs2_bin(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend, + escape,w_one,w_many,NULL); +} + + +static +int my_strnncoll_ucs2_bin(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + int s_res,t_res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se=s+slen; + const uchar *te=t+tlen; + + while ( s < se && t < te ) + { + s_res=my_ucs2_uni(cs,&s_wc, s, se); + t_res=my_ucs2_uni(cs,&t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare by char value */ + return ((int)s[0]-(int)t[0]); + } + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+=s_res; + t+=t_res; + } + return (int) (t_is_prefix ? t-te : ((se-s) - (te-t))); +} + +static int my_strnncollsp_ucs2_bin(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + const uchar *se, *te; + size_t minlen; + + /* extra safety to make sure the lengths are even numbers */ + slen= (slen >> 1) << 1; + tlen= (tlen >> 1) << 1; + + se= s + slen; + te= t + tlen; + + for (minlen= MY_MIN(slen, tlen); minlen; minlen-= 2) + { + int s_wc= s[0] * 256 + s[1]; + int t_wc= t[0] * 256 + t[1]; + if ( s_wc != t_wc ) + return s_wc > t_wc ? 1 : -1; + + s+= 2; + t+= 2; + } + + if (slen != tlen) + { + int swap= 1; + if (slen < tlen) + { + s= t; + se= te; + swap= -1; + } + + for ( ; s < se ; s+= 2) + { + if (s[0] || s[1] != ' ') + return (s[0] == 0 && s[1] < ' ') ? -swap : swap; + } + } + return 0; +} + + +static +void my_hash_sort_ucs2_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *key, size_t len,ulong *nr1, ulong *nr2) +{ + const uchar *pos = key; + ulong tmp1; + ulong tmp2; + + key+= len; + + while (key > pos+1 && key[-1] == ' ' && key[-2] == '\0') + key-= 2; + + tmp1= *nr1; + tmp2= *nr2; + + for (; pos < (uchar*) key ; pos++) + { + tmp1^=(ulong) ((((uint) tmp1 & 63) + tmp2) * + ((uint)*pos)) + (tmp1 << 8); + tmp2+=3; + } + + *nr1= tmp1; + *nr2= tmp2; +} + + +static MY_COLLATION_HANDLER my_collation_ucs2_general_ci_handler = +{ + NULL, /* init */ + my_strnncoll_ucs2, + my_strnncollsp_ucs2, + my_strnxfrm_unicode, + my_strnxfrmlen_simple, + my_like_range_generic, + my_wildcmp_ucs2_ci, + my_strcasecmp_mb2_or_mb4, + my_instr_mb, + my_hash_sort_ucs2, + my_propagate_simple +}; + + +static MY_COLLATION_HANDLER my_collation_ucs2_bin_handler = +{ + NULL, /* init */ + my_strnncoll_ucs2_bin, + my_strnncollsp_ucs2_bin, + my_strnxfrm_unicode, + my_strnxfrmlen_simple, + my_like_range_generic, + my_wildcmp_ucs2_bin, + my_strcasecmp_mb2_or_mb4, + my_instr_mb, + my_hash_sort_ucs2_bin, + my_propagate_simple +}; + + +MY_CHARSET_HANDLER my_charset_ucs2_handler= +{ + NULL, /* init */ + my_ismbchar_ucs2, /* ismbchar */ + my_mbcharlen_ucs2, /* mbcharlen */ + my_numchars_ucs2, + my_charpos_ucs2, + my_well_formed_len_ucs2, + my_lengthsp_mb2, + my_numcells_mb, + my_ucs2_uni, /* mb_wc */ + my_uni_ucs2, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb2_or_mb4, + my_casedn_str_mb2_or_mb4, + my_caseup_ucs2, + my_casedn_ucs2, + my_snprintf_mb2, + my_l10tostr_mb2_or_mb4, + my_ll10tostr_mb2_or_mb4, + my_fill_ucs2, + my_strntol_mb2_or_mb4, + my_strntoul_mb2_or_mb4, + my_strntoll_mb2_or_mb4, + my_strntoull_mb2_or_mb4, + my_strntod_mb2_or_mb4, + my_strtoll10_mb2, + my_strntoull10rnd_mb2_or_mb4, + my_scan_mb2 +}; + + +CHARSET_INFO my_charset_ucs2_general_ci= +{ + 35,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_general_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ucs2, /* ctype */ + to_lower_ucs2, /* to_lower */ + to_upper_ucs2, /* to_upper */ + to_upper_ucs2, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_general_ci_handler +}; + + +CHARSET_INFO my_charset_ucs2_general_mysql500_ci= +{ + 159, 0, 0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, /* state */ + "ucs2", /* cs name */ + "ucs2_general_mysql500_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ucs2, /* ctype */ + to_lower_ucs2, /* to_lower */ + to_upper_ucs2, /* to_upper */ + to_upper_ucs2, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_mysql500, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_general_ci_handler +}; + + +CHARSET_INFO my_charset_ucs2_bin= +{ + 90,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ucs2, /* ctype */ + to_lower_ucs2, /* to_lower */ + to_upper_ucs2, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_bin_handler +}; + + +#endif /* HAVE_CHARSET_ucs2 */ diff --git a/mysql/strings/ctype-ujis.c b/mysql/strings/ctype-ujis.c new file mode 100644 index 0000000..a4e6877 --- /dev/null +++ b/mysql/strings/ctype-ujis.c @@ -0,0 +1,67374 @@ +/* Copyright (c) 2002 MySQL AB & tommy@valley.ne.jp + Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* This file is for Japanese EUC charset, and created by tommy@valley.ne.jp. + */ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. mbmaxlen_ujis=3 + */ + +#include +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_ujis + + +static const uchar ctype_ujis[257] = +{ + 0, /* For standard library */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */ + 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */ + 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */ + 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */ + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */ + 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */ + 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */ + 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */ + 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */ + 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */ + 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */ + 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */ + 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */ + 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, + 0000, 0000, 0000, 0000, 0000, 0000, 0020, 0020, + 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, + 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, + 0000, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, + 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0000, +}; + +static const uchar to_lower_ujis[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar to_upper_ujis[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' +}; + +static const uchar sort_order_ujis[]= +{ + '\000','\001','\002','\003','\004','\005','\006','\007', + '\010','\011','\012','\013','\014','\015','\016','\017', + '\020','\021','\022','\023','\024','\025','\026','\027', + '\030','\031','\032','\033','\034','\035','\036','\037', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375', (uchar) (uchar) '\376', (uchar) '\377' +}; + + +#define isujis(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xfe)) +#define iskata(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xdf)) +#define isujis_ss2(c) (((c)&0xff) == 0x8e) +#define isujis_ss3(c) (((c)&0xff) == 0x8f) + + +static uint ismbchar_ujis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char* p, const char *e) +{ + return ((*(uchar*)(p)<0x80)? 0:\ + isujis(*(p)) && (e)-(p)>1 && isujis(*((p)+1))? 2:\ + isujis_ss2(*(p)) && (e)-(p)>1 && iskata(*((p)+1))? 2:\ + isujis_ss3(*(p)) && (e)-(p)>2 && isujis(*((p)+1)) && isujis(*((p)+2))? 3:\ + 0); +} + +static uint mbcharlen_ujis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + return (isujis(c)? 2: isujis_ss2(c)? 2: isujis_ss3(c)? 3: 1); +} + + +/* + EUC-JP encoding subcomponents: + [x00-x7F] # ASCII/JIS-Roman (one-byte/character) + [x8E][xA0-xDF] # half-width katakana (two bytes/char) + [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char) + [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char) +*/ + +static +size_t my_well_formed_len_ujis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *beg, const char *end, + size_t pos, int *error) +{ + const uchar *b= (uchar *) beg; + + for ( *error= 0 ; pos && b < (uchar*) end; pos--, b++) + { + char *chbeg; + uint ch= *b; + + if (ch <= 0x7F) /* one byte */ + continue; + + chbeg= (char *) b++; + if (b >= (uchar *) end) /* need more bytes */ + { + *error= 1; + return (size_t) (chbeg - beg); /* unexpected EOL */ + } + + if (ch == 0x8E) /* [x8E][xA0-xDF] */ + { + if (*b >= 0xA0 && *b <= 0xDF) + continue; + *error= 1; + return (size_t) (chbeg - beg); /* invalid sequence */ + } + + if (ch == 0x8F) /* [x8F][xA1-xFE][xA1-xFE] */ + { + ch= *b++; + if (b >= (uchar*) end) + { + *error= 1; + return (size_t) (chbeg - beg); /* unexpected EOL */ + } + } + + if (ch >= 0xA1 && ch <= 0xFE && + *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */ + continue; + *error= 1; + return (size_t) (chbeg - beg); /* invalid sequence */ + } + return (size_t) (b - (uchar *) beg); +} + + +static +size_t my_numcells_eucjp(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *str, const char *str_end) +{ + size_t clen; + const uchar *b= (const uchar *) str; + const uchar *e= (const uchar *) str_end; + + for (clen= 0; b < e; ) + { + if (*b == 0x8E) + { + clen++; + b+= 2; + } + else if (*b == 0x8F) + { + clen+= 2; + b+= 3; + } + else if (*b & 0x80) + { + clen+= 2; + b+= 2; + } + else + { + clen++; + b++; + } + } + return clen; +} + + +static const uint16 jisx0208_eucjp_to_unicode[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3000, 0x3001, 0x3002, /* A1A0 */ + 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, + 0xFF1B, 0xFF1F, 0xFF01, 0x309B, + 0x309C, 0x00B4, 0xFF40, 0x00A8, + 0xFF3E, 0xFFE3, 0xFF3F, 0x30FD, + 0x30FE, 0x309D, 0x309E, 0x3003, + 0x4EDD, 0x3005, 0x3006, 0x3007, + 0x30FC, 0x2015, 0x2010, 0xFF0F, + 0x005C, 0x301C, 0x2016, 0xFF5C, /* A1C0 */ + 0x2026, 0x2025, 0x2018, 0x2019, + 0x201C, 0x201D, 0xFF08, 0xFF09, + 0x3014, 0x3015, 0xFF3B, 0xFF3D, + 0xFF5B, 0xFF5D, 0x3008, 0x3009, + 0x300A, 0x300B, 0x300C, 0x300D, + 0x300E, 0x300F, 0x3010, 0x3011, + 0xFF0B, 0x2212, 0x00B1, 0x00D7, + 0x00F7, 0xFF1D, 0x2260, 0xFF1C, /* A1E0 */ + 0xFF1E, 0x2266, 0x2267, 0x221E, + 0x2234, 0x2642, 0x2640, 0x00B0, + 0x2032, 0x2033, 0x2103, 0xFFE5, + 0xFF04, 0x00A2, 0x00A3, 0xFF05, + 0xFF03, 0xFF06, 0xFF0A, 0xFF20, + 0x00A7, 0x2606, 0x2605, 0x25CB, + 0x25CF, 0x25CE, 0x25C7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x25C6, 0x25A1, 0x25A0, /* A2A0 */ + 0x25B3, 0x25B2, 0x25BD, 0x25BC, + 0x203B, 0x3012, 0x2192, 0x2190, + 0x2191, 0x2193, 0x3013, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2208, 0x220B, + 0x2286, 0x2287, 0x2282, 0x2283, + 0x222A, 0x2229, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2227, 0x2228, + 0x00AC, 0x21D2, 0x21D4, 0x2200, + 0x2203, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x2220, 0x22A5, 0x2312, 0x2202, + 0x2207, 0x2261, 0x2252, 0x226A, /* A2E0 */ + 0x226B, 0x221A, 0x223D, 0x221D, + 0x2235, 0x222B, 0x222C, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x212B, 0x2030, + 0x266F, 0x266D, 0x266A, 0x2020, + 0x2021, 0x00B6, 0x0000, 0x0000, + 0x0000, 0x0000, 0x25EF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0xFF10, 0xFF11, 0xFF12, 0xFF13, + 0xFF14, 0xFF15, 0xFF16, 0xFF17, + 0xFF18, 0xFF19, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF21, 0xFF22, 0xFF23, /* A3C0 */ + 0xFF24, 0xFF25, 0xFF26, 0xFF27, + 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, + 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, + 0xFF30, 0xFF31, 0xFF32, 0xFF33, + 0xFF34, 0xFF35, 0xFF36, 0xFF37, + 0xFF38, 0xFF39, 0xFF3A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xFF41, 0xFF42, 0xFF43, /* A3E0 */ + 0xFF44, 0xFF45, 0xFF46, 0xFF47, + 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, + 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, + 0xFF50, 0xFF51, 0xFF52, 0xFF53, + 0xFF54, 0xFF55, 0xFF56, 0xFF57, + 0xFF58, 0xFF59, 0xFF5A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3041, 0x3042, 0x3043, /* A4A0 */ + 0x3044, 0x3045, 0x3046, 0x3047, + 0x3048, 0x3049, 0x304A, 0x304B, + 0x304C, 0x304D, 0x304E, 0x304F, + 0x3050, 0x3051, 0x3052, 0x3053, + 0x3054, 0x3055, 0x3056, 0x3057, + 0x3058, 0x3059, 0x305A, 0x305B, + 0x305C, 0x305D, 0x305E, 0x305F, + 0x3060, 0x3061, 0x3062, 0x3063, /* A4C0 */ + 0x3064, 0x3065, 0x3066, 0x3067, + 0x3068, 0x3069, 0x306A, 0x306B, + 0x306C, 0x306D, 0x306E, 0x306F, + 0x3070, 0x3071, 0x3072, 0x3073, + 0x3074, 0x3075, 0x3076, 0x3077, + 0x3078, 0x3079, 0x307A, 0x307B, + 0x307C, 0x307D, 0x307E, 0x307F, + 0x3080, 0x3081, 0x3082, 0x3083, /* A4E0 */ + 0x3084, 0x3085, 0x3086, 0x3087, + 0x3088, 0x3089, 0x308A, 0x308B, + 0x308C, 0x308D, 0x308E, 0x308F, + 0x3090, 0x3091, 0x3092, 0x3093, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x30A1, 0x30A2, 0x30A3, /* A5A0 */ + 0x30A4, 0x30A5, 0x30A6, 0x30A7, + 0x30A8, 0x30A9, 0x30AA, 0x30AB, + 0x30AC, 0x30AD, 0x30AE, 0x30AF, + 0x30B0, 0x30B1, 0x30B2, 0x30B3, + 0x30B4, 0x30B5, 0x30B6, 0x30B7, + 0x30B8, 0x30B9, 0x30BA, 0x30BB, + 0x30BC, 0x30BD, 0x30BE, 0x30BF, + 0x30C0, 0x30C1, 0x30C2, 0x30C3, /* A5C0 */ + 0x30C4, 0x30C5, 0x30C6, 0x30C7, + 0x30C8, 0x30C9, 0x30CA, 0x30CB, + 0x30CC, 0x30CD, 0x30CE, 0x30CF, + 0x30D0, 0x30D1, 0x30D2, 0x30D3, + 0x30D4, 0x30D5, 0x30D6, 0x30D7, + 0x30D8, 0x30D9, 0x30DA, 0x30DB, + 0x30DC, 0x30DD, 0x30DE, 0x30DF, + 0x30E0, 0x30E1, 0x30E2, 0x30E3, /* A5E0 */ + 0x30E4, 0x30E5, 0x30E6, 0x30E7, + 0x30E8, 0x30E9, 0x30EA, 0x30EB, + 0x30EC, 0x30ED, 0x30EE, 0x30EF, + 0x30F0, 0x30F1, 0x30F2, 0x30F3, + 0x30F4, 0x30F5, 0x30F6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0391, 0x0392, 0x0393, /* A6A0 */ + 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, + 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x03A3, 0x03A4, + 0x03A5, 0x03A6, 0x03A7, 0x03A8, + 0x03A9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x03B1, 0x03B2, 0x03B3, /* A6C0 */ + 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, + 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C3, 0x03C4, + 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x03C9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0410, 0x0411, 0x0412, /* A7A0 */ + 0x0413, 0x0414, 0x0415, 0x0401, + 0x0416, 0x0417, 0x0418, 0x0419, + 0x041A, 0x041B, 0x041C, 0x041D, + 0x041E, 0x041F, 0x0420, 0x0421, + 0x0422, 0x0423, 0x0424, 0x0425, + 0x0426, 0x0427, 0x0428, 0x0429, + 0x042A, 0x042B, 0x042C, 0x042D, + 0x042E, 0x042F, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0430, 0x0431, 0x0432, + 0x0433, 0x0434, 0x0435, 0x0451, + 0x0436, 0x0437, 0x0438, 0x0439, + 0x043A, 0x043B, 0x043C, 0x043D, + 0x043E, 0x043F, 0x0440, 0x0441, /* A7E0 */ + 0x0442, 0x0443, 0x0444, 0x0445, + 0x0446, 0x0447, 0x0448, 0x0449, + 0x044A, 0x044B, 0x044C, 0x044D, + 0x044E, 0x044F, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2500, 0x2502, 0x250C, /* A8A0 */ + 0x2510, 0x2518, 0x2514, 0x251C, + 0x252C, 0x2524, 0x2534, 0x253C, + 0x2501, 0x2503, 0x250F, 0x2513, + 0x251B, 0x2517, 0x2523, 0x2533, + 0x252B, 0x253B, 0x254B, 0x2520, + 0x252F, 0x2528, 0x2537, 0x253F, + 0x251D, 0x2530, 0x2525, 0x2538, + 0x2542, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4E9C, 0x5516, 0x5A03, /* B0A0 */ + 0x963F, 0x54C0, 0x611B, 0x6328, + 0x59F6, 0x9022, 0x8475, 0x831C, + 0x7A50, 0x60AA, 0x63E1, 0x6E25, + 0x65ED, 0x8466, 0x82A6, 0x9BF5, + 0x6893, 0x5727, 0x65A1, 0x6271, + 0x5B9B, 0x59D0, 0x867B, 0x98F4, + 0x7D62, 0x7DBE, 0x9B8E, 0x6216, + 0x7C9F, 0x88B7, 0x5B89, 0x5EB5, /* B0C0 */ + 0x6309, 0x6697, 0x6848, 0x95C7, + 0x978D, 0x674F, 0x4EE5, 0x4F0A, + 0x4F4D, 0x4F9D, 0x5049, 0x56F2, + 0x5937, 0x59D4, 0x5A01, 0x5C09, + 0x60DF, 0x610F, 0x6170, 0x6613, + 0x6905, 0x70BA, 0x754F, 0x7570, + 0x79FB, 0x7DAD, 0x7DEF, 0x80C3, + 0x840E, 0x8863, 0x8B02, 0x9055, /* B0E0 */ + 0x907A, 0x533B, 0x4E95, 0x4EA5, + 0x57DF, 0x80B2, 0x90C1, 0x78EF, + 0x4E00, 0x58F1, 0x6EA2, 0x9038, + 0x7A32, 0x8328, 0x828B, 0x9C2F, + 0x5141, 0x5370, 0x54BD, 0x54E1, + 0x56E0, 0x59FB, 0x5F15, 0x98F2, + 0x6DEB, 0x80E4, 0x852D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9662, 0x9670, 0x96A0, /* B1A0 */ + 0x97FB, 0x540B, 0x53F3, 0x5B87, + 0x70CF, 0x7FBD, 0x8FC2, 0x96E8, + 0x536F, 0x9D5C, 0x7ABA, 0x4E11, + 0x7893, 0x81FC, 0x6E26, 0x5618, + 0x5504, 0x6B1D, 0x851A, 0x9C3B, + 0x59E5, 0x53A9, 0x6D66, 0x74DC, + 0x958F, 0x5642, 0x4E91, 0x904B, + 0x96F2, 0x834F, 0x990C, 0x53E1, /* B1C0 */ + 0x55B6, 0x5B30, 0x5F71, 0x6620, + 0x66F3, 0x6804, 0x6C38, 0x6CF3, + 0x6D29, 0x745B, 0x76C8, 0x7A4E, + 0x9834, 0x82F1, 0x885B, 0x8A60, + 0x92ED, 0x6DB2, 0x75AB, 0x76CA, + 0x99C5, 0x60A6, 0x8B01, 0x8D8A, + 0x95B2, 0x698E, 0x53AD, 0x5186, + 0x5712, 0x5830, 0x5944, 0x5BB4, /* B1E0 */ + 0x5EF6, 0x6028, 0x63A9, 0x63F4, + 0x6CBF, 0x6F14, 0x708E, 0x7114, + 0x7159, 0x71D5, 0x733F, 0x7E01, + 0x8276, 0x82D1, 0x8597, 0x9060, + 0x925B, 0x9D1B, 0x5869, 0x65BC, + 0x6C5A, 0x7525, 0x51F9, 0x592E, + 0x5965, 0x5F80, 0x5FDC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x62BC, 0x65FA, 0x6A2A, /* B2A0 */ + 0x6B27, 0x6BB4, 0x738B, 0x7FC1, + 0x8956, 0x9D2C, 0x9D0E, 0x9EC4, + 0x5CA1, 0x6C96, 0x837B, 0x5104, + 0x5C4B, 0x61B6, 0x81C6, 0x6876, + 0x7261, 0x4E59, 0x4FFA, 0x5378, + 0x6069, 0x6E29, 0x7A4F, 0x97F3, + 0x4E0B, 0x5316, 0x4EEE, 0x4F55, + 0x4F3D, 0x4FA1, 0x4F73, 0x52A0, /* B2C0 */ + 0x53EF, 0x5609, 0x590F, 0x5AC1, + 0x5BB6, 0x5BE1, 0x79D1, 0x6687, + 0x679C, 0x67B6, 0x6B4C, 0x6CB3, + 0x706B, 0x73C2, 0x798D, 0x79BE, + 0x7A3C, 0x7B87, 0x82B1, 0x82DB, + 0x8304, 0x8377, 0x83EF, 0x83D3, + 0x8766, 0x8AB2, 0x5629, 0x8CA8, + 0x8FE6, 0x904E, 0x971E, 0x868A, /* B2E0 */ + 0x4FC4, 0x5CE8, 0x6211, 0x7259, + 0x753B, 0x81E5, 0x82BD, 0x86FE, + 0x8CC0, 0x96C5, 0x9913, 0x99D5, + 0x4ECB, 0x4F1A, 0x89E3, 0x56DE, + 0x584A, 0x58CA, 0x5EFB, 0x5FEB, + 0x602A, 0x6094, 0x6062, 0x61D0, + 0x6212, 0x62D0, 0x6539, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9B41, 0x6666, 0x68B0, /* B3A0 */ + 0x6D77, 0x7070, 0x754C, 0x7686, + 0x7D75, 0x82A5, 0x87F9, 0x958B, + 0x968E, 0x8C9D, 0x51F1, 0x52BE, + 0x5916, 0x54B3, 0x5BB3, 0x5D16, + 0x6168, 0x6982, 0x6DAF, 0x788D, + 0x84CB, 0x8857, 0x8A72, 0x93A7, + 0x9AB8, 0x6D6C, 0x99A8, 0x86D9, + 0x57A3, 0x67FF, 0x86CE, 0x920E, /* B3C0 */ + 0x5283, 0x5687, 0x5404, 0x5ED3, + 0x62E1, 0x64B9, 0x683C, 0x6838, + 0x6BBB, 0x7372, 0x78BA, 0x7A6B, + 0x899A, 0x89D2, 0x8D6B, 0x8F03, + 0x90ED, 0x95A3, 0x9694, 0x9769, + 0x5B66, 0x5CB3, 0x697D, 0x984D, + 0x984E, 0x639B, 0x7B20, 0x6A2B, + 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, /* B3E0 */ + 0x5272, 0x559D, 0x6070, 0x62EC, + 0x6D3B, 0x6E07, 0x6ED1, 0x845B, + 0x8910, 0x8F44, 0x4E14, 0x9C39, + 0x53F6, 0x691B, 0x6A3A, 0x9784, + 0x682A, 0x515C, 0x7AC3, 0x84B2, + 0x91DC, 0x938C, 0x565B, 0x9D28, + 0x6822, 0x8305, 0x8431, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7CA5, 0x5208, 0x82C5, /* B4A0 */ + 0x74E6, 0x4E7E, 0x4F83, 0x51A0, + 0x5BD2, 0x520A, 0x52D8, 0x52E7, + 0x5DFB, 0x559A, 0x582A, 0x59E6, + 0x5B8C, 0x5B98, 0x5BDB, 0x5E72, + 0x5E79, 0x60A3, 0x611F, 0x6163, + 0x61BE, 0x63DB, 0x6562, 0x67D1, + 0x6853, 0x68FA, 0x6B3E, 0x6B53, + 0x6C57, 0x6F22, 0x6F97, 0x6F45, /* B4C0 */ + 0x74B0, 0x7518, 0x76E3, 0x770B, + 0x7AFF, 0x7BA1, 0x7C21, 0x7DE9, + 0x7F36, 0x7FF0, 0x809D, 0x8266, + 0x839E, 0x89B3, 0x8ACC, 0x8CAB, + 0x9084, 0x9451, 0x9593, 0x9591, + 0x95A2, 0x9665, 0x97D3, 0x9928, + 0x8218, 0x4E38, 0x542B, 0x5CB8, + 0x5DCC, 0x73A9, 0x764C, 0x773C, /* B4E0 */ + 0x5CA9, 0x7FEB, 0x8D0B, 0x96C1, + 0x9811, 0x9854, 0x9858, 0x4F01, + 0x4F0E, 0x5371, 0x559C, 0x5668, + 0x57FA, 0x5947, 0x5B09, 0x5BC4, + 0x5C90, 0x5E0C, 0x5E7E, 0x5FCC, + 0x63EE, 0x673A, 0x65D7, 0x65E2, + 0x671F, 0x68CB, 0x68C4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6A5F, 0x5E30, 0x6BC5, /* B5A0 */ + 0x6C17, 0x6C7D, 0x757F, 0x7948, + 0x5B63, 0x7A00, 0x7D00, 0x5FBD, + 0x898F, 0x8A18, 0x8CB4, 0x8D77, + 0x8ECC, 0x8F1D, 0x98E2, 0x9A0E, + 0x9B3C, 0x4E80, 0x507D, 0x5100, + 0x5993, 0x5B9C, 0x622F, 0x6280, + 0x64EC, 0x6B3A, 0x72A0, 0x7591, + 0x7947, 0x7FA9, 0x87FB, 0x8ABC, /* B5C0 */ + 0x8B70, 0x63AC, 0x83CA, 0x97A0, + 0x5409, 0x5403, 0x55AB, 0x6854, + 0x6A58, 0x8A70, 0x7827, 0x6775, + 0x9ECD, 0x5374, 0x5BA2, 0x811A, + 0x8650, 0x9006, 0x4E18, 0x4E45, + 0x4EC7, 0x4F11, 0x53CA, 0x5438, + 0x5BAE, 0x5F13, 0x6025, 0x6551, + 0x673D, 0x6C42, 0x6C72, 0x6CE3, /* B5E0 */ + 0x7078, 0x7403, 0x7A76, 0x7AAE, + 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, + 0x65E7, 0x725B, 0x53BB, 0x5C45, + 0x5DE8, 0x62D2, 0x62E0, 0x6319, + 0x6E20, 0x865A, 0x8A31, 0x8DDD, + 0x92F8, 0x6F01, 0x79A6, 0x9B5A, + 0x4EA8, 0x4EAB, 0x4EAC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4F9B, 0x4FA0, 0x50D1, /* B6A0 */ + 0x5147, 0x7AF6, 0x5171, 0x51F6, + 0x5354, 0x5321, 0x537F, 0x53EB, + 0x55AC, 0x5883, 0x5CE1, 0x5F37, + 0x5F4A, 0x602F, 0x6050, 0x606D, + 0x631F, 0x6559, 0x6A4B, 0x6CC1, + 0x72C2, 0x72ED, 0x77EF, 0x80F8, + 0x8105, 0x8208, 0x854E, 0x90F7, + 0x93E1, 0x97FF, 0x9957, 0x9A5A, /* B6C0 */ + 0x4EF0, 0x51DD, 0x5C2D, 0x6681, + 0x696D, 0x5C40, 0x66F2, 0x6975, + 0x7389, 0x6850, 0x7C81, 0x50C5, + 0x52E4, 0x5747, 0x5DFE, 0x9326, + 0x65A4, 0x6B23, 0x6B3D, 0x7434, + 0x7981, 0x79BD, 0x7B4B, 0x7DCA, + 0x82B9, 0x83CC, 0x887F, 0x895F, + 0x8B39, 0x8FD1, 0x91D1, 0x541F, /* B6E0 */ + 0x9280, 0x4E5D, 0x5036, 0x53E5, + 0x533A, 0x72D7, 0x7396, 0x77E9, + 0x82E6, 0x8EAF, 0x99C6, 0x99C8, + 0x99D2, 0x5177, 0x611A, 0x865E, + 0x55B0, 0x7A7A, 0x5076, 0x5BD3, + 0x9047, 0x9685, 0x4E32, 0x6ADB, + 0x91E7, 0x5C51, 0x5C48, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6398, 0x7A9F, 0x6C93, /* B7A0 */ + 0x9774, 0x8F61, 0x7AAA, 0x718A, + 0x9688, 0x7C82, 0x6817, 0x7E70, + 0x6851, 0x936C, 0x52F2, 0x541B, + 0x85AB, 0x8A13, 0x7FA4, 0x8ECD, + 0x90E1, 0x5366, 0x8888, 0x7941, + 0x4FC2, 0x50BE, 0x5211, 0x5144, + 0x5553, 0x572D, 0x73EA, 0x578B, + 0x5951, 0x5F62, 0x5F84, 0x6075, /* B7C0 */ + 0x6176, 0x6167, 0x61A9, 0x63B2, + 0x643A, 0x656C, 0x666F, 0x6842, + 0x6E13, 0x7566, 0x7A3D, 0x7CFB, + 0x7D4C, 0x7D99, 0x7E4B, 0x7F6B, + 0x830E, 0x834A, 0x86CD, 0x8A08, + 0x8A63, 0x8B66, 0x8EFD, 0x981A, + 0x9D8F, 0x82B8, 0x8FCE, 0x9BE8, + 0x5287, 0x621F, 0x6483, 0x6FC0, /* B7E0 */ + 0x9699, 0x6841, 0x5091, 0x6B20, + 0x6C7A, 0x6F54, 0x7A74, 0x7D50, + 0x8840, 0x8A23, 0x6708, 0x4EF6, + 0x5039, 0x5026, 0x5065, 0x517C, + 0x5238, 0x5263, 0x55A7, 0x570F, + 0x5805, 0x5ACC, 0x5EFA, 0x61B2, + 0x61F8, 0x62F3, 0x6372, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x691C, 0x6A29, 0x727D, /* B8A0 */ + 0x72AC, 0x732E, 0x7814, 0x786F, + 0x7D79, 0x770C, 0x80A9, 0x898B, + 0x8B19, 0x8CE2, 0x8ED2, 0x9063, + 0x9375, 0x967A, 0x9855, 0x9A13, + 0x9E78, 0x5143, 0x539F, 0x53B3, + 0x5E7B, 0x5F26, 0x6E1B, 0x6E90, + 0x7384, 0x73FE, 0x7D43, 0x8237, + 0x8A00, 0x8AFA, 0x9650, 0x4E4E, /* B8C0 */ + 0x500B, 0x53E4, 0x547C, 0x56FA, + 0x59D1, 0x5B64, 0x5DF1, 0x5EAB, + 0x5F27, 0x6238, 0x6545, 0x67AF, + 0x6E56, 0x72D0, 0x7CCA, 0x88B4, + 0x80A1, 0x80E1, 0x83F0, 0x864E, + 0x8A87, 0x8DE8, 0x9237, 0x96C7, + 0x9867, 0x9F13, 0x4E94, 0x4E92, + 0x4F0D, 0x5348, 0x5449, 0x543E, /* B8E0 */ + 0x5A2F, 0x5F8C, 0x5FA1, 0x609F, + 0x68A7, 0x6A8E, 0x745A, 0x7881, + 0x8A9E, 0x8AA4, 0x8B77, 0x9190, + 0x4E5E, 0x9BC9, 0x4EA4, 0x4F7C, + 0x4FAF, 0x5019, 0x5016, 0x5149, + 0x516C, 0x529F, 0x52B9, 0x52FE, + 0x539A, 0x53E3, 0x5411, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x540E, 0x5589, 0x5751, /* B9A0 */ + 0x57A2, 0x597D, 0x5B54, 0x5B5D, + 0x5B8F, 0x5DE5, 0x5DE7, 0x5DF7, + 0x5E78, 0x5E83, 0x5E9A, 0x5EB7, + 0x5F18, 0x6052, 0x614C, 0x6297, + 0x62D8, 0x63A7, 0x653B, 0x6602, + 0x6643, 0x66F4, 0x676D, 0x6821, + 0x6897, 0x69CB, 0x6C5F, 0x6D2A, + 0x6D69, 0x6E2F, 0x6E9D, 0x7532, /* B9C0 */ + 0x7687, 0x786C, 0x7A3F, 0x7CE0, + 0x7D05, 0x7D18, 0x7D5E, 0x7DB1, + 0x8015, 0x8003, 0x80AF, 0x80B1, + 0x8154, 0x818F, 0x822A, 0x8352, + 0x884C, 0x8861, 0x8B1B, 0x8CA2, + 0x8CFC, 0x90CA, 0x9175, 0x9271, + 0x783F, 0x92FC, 0x95A4, 0x964D, + 0x9805, 0x9999, 0x9AD8, 0x9D3B, /* B9E0 */ + 0x525B, 0x52AB, 0x53F7, 0x5408, + 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, + 0x8F5F, 0x9EB9, 0x514B, 0x523B, + 0x544A, 0x56FD, 0x7A40, 0x9177, + 0x9D60, 0x9ED2, 0x7344, 0x6F09, + 0x8170, 0x7511, 0x5FFD, 0x60DA, + 0x9AA8, 0x72DB, 0x8FBC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6B64, 0x9803, 0x4ECA, /* BAA0 */ + 0x56F0, 0x5764, 0x58BE, 0x5A5A, + 0x6068, 0x61C7, 0x660F, 0x6606, + 0x6839, 0x68B1, 0x6DF7, 0x75D5, + 0x7D3A, 0x826E, 0x9B42, 0x4E9B, + 0x4F50, 0x53C9, 0x5506, 0x5D6F, + 0x5DE6, 0x5DEE, 0x67FB, 0x6C99, + 0x7473, 0x7802, 0x8A50, 0x9396, + 0x88DF, 0x5750, 0x5EA7, 0x632B, /* BAC0 */ + 0x50B5, 0x50AC, 0x518D, 0x6700, + 0x54C9, 0x585E, 0x59BB, 0x5BB0, + 0x5F69, 0x624D, 0x63A1, 0x683D, + 0x6B73, 0x6E08, 0x707D, 0x91C7, + 0x7280, 0x7815, 0x7826, 0x796D, + 0x658E, 0x7D30, 0x83DC, 0x88C1, + 0x8F09, 0x969B, 0x5264, 0x5728, + 0x6750, 0x7F6A, 0x8CA1, 0x51B4, /* BAE0 */ + 0x5742, 0x962A, 0x583A, 0x698A, + 0x80B4, 0x54B2, 0x5D0E, 0x57FC, + 0x7895, 0x9DFA, 0x4F5C, 0x524A, + 0x548B, 0x643E, 0x6628, 0x6714, + 0x67F5, 0x7A84, 0x7B56, 0x7D22, + 0x932F, 0x685C, 0x9BAD, 0x7B39, + 0x5319, 0x518A, 0x5237, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5BDF, 0x62F6, 0x64AE, /* BBA0 */ + 0x64E6, 0x672D, 0x6BBA, 0x85A9, + 0x96D1, 0x7690, 0x9BD6, 0x634C, + 0x9306, 0x9BAB, 0x76BF, 0x6652, + 0x4E09, 0x5098, 0x53C2, 0x5C71, + 0x60E8, 0x6492, 0x6563, 0x685F, + 0x71E6, 0x73CA, 0x7523, 0x7B97, + 0x7E82, 0x8695, 0x8B83, 0x8CDB, + 0x9178, 0x9910, 0x65AC, 0x66AB, /* BBC0 */ + 0x6B8B, 0x4ED5, 0x4ED4, 0x4F3A, + 0x4F7F, 0x523A, 0x53F8, 0x53F2, + 0x55E3, 0x56DB, 0x58EB, 0x59CB, + 0x59C9, 0x59FF, 0x5B50, 0x5C4D, + 0x5E02, 0x5E2B, 0x5FD7, 0x601D, + 0x6307, 0x652F, 0x5B5C, 0x65AF, + 0x65BD, 0x65E8, 0x679D, 0x6B62, + 0x6B7B, 0x6C0F, 0x7345, 0x7949, /* BBE0 */ + 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, + 0x80A2, 0x8102, 0x81F3, 0x8996, + 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, + 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, + 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, + 0x4F8D, 0x5150, 0x5B57, 0x5BFA, + 0x6148, 0x6301, 0x6642, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6B21, 0x6ECB, 0x6CBB, /* BCA0 */ + 0x723E, 0x74BD, 0x75D4, 0x78C1, + 0x793A, 0x800C, 0x8033, 0x81EA, + 0x8494, 0x8F9E, 0x6C50, 0x9E7F, + 0x5F0F, 0x8B58, 0x9D2B, 0x7AFA, + 0x8EF8, 0x5B8D, 0x96EB, 0x4E03, + 0x53F1, 0x57F7, 0x5931, 0x5AC9, + 0x5BA4, 0x6089, 0x6E7F, 0x6F06, + 0x75BE, 0x8CEA, 0x5B9F, 0x8500, /* BCC0 */ + 0x7BE0, 0x5072, 0x67F4, 0x829D, + 0x5C61, 0x854A, 0x7E1E, 0x820E, + 0x5199, 0x5C04, 0x6368, 0x8D66, + 0x659C, 0x716E, 0x793E, 0x7D17, + 0x8005, 0x8B1D, 0x8ECA, 0x906E, + 0x86C7, 0x90AA, 0x501F, 0x52FA, + 0x5C3A, 0x6753, 0x707C, 0x7235, + 0x914C, 0x91C8, 0x932B, 0x82E5, /* BCE0 */ + 0x5BC2, 0x5F31, 0x60F9, 0x4E3B, + 0x53D6, 0x5B88, 0x624B, 0x6731, + 0x6B8A, 0x72E9, 0x73E0, 0x7A2E, + 0x816B, 0x8DA3, 0x9152, 0x9996, + 0x5112, 0x53D7, 0x546A, 0x5BFF, + 0x6388, 0x6A39, 0x7DAC, 0x9700, + 0x56DA, 0x53CE, 0x5468, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5B97, 0x5C31, 0x5DDE, /* BDA0 */ + 0x4FEE, 0x6101, 0x62FE, 0x6D32, + 0x79C0, 0x79CB, 0x7D42, 0x7E4D, + 0x7FD2, 0x81ED, 0x821F, 0x8490, + 0x8846, 0x8972, 0x8B90, 0x8E74, + 0x8F2F, 0x9031, 0x914B, 0x916C, + 0x96C6, 0x919C, 0x4EC0, 0x4F4F, + 0x5145, 0x5341, 0x5F93, 0x620E, + 0x67D4, 0x6C41, 0x6E0B, 0x7363, /* BDC0 */ + 0x7E26, 0x91CD, 0x9283, 0x53D4, + 0x5919, 0x5BBF, 0x6DD1, 0x795D, + 0x7E2E, 0x7C9B, 0x587E, 0x719F, + 0x51FA, 0x8853, 0x8FF0, 0x4FCA, + 0x5CFB, 0x6625, 0x77AC, 0x7AE3, + 0x821C, 0x99FF, 0x51C6, 0x5FAA, + 0x65EC, 0x696F, 0x6B89, 0x6DF3, + 0x6E96, 0x6F64, 0x76FE, 0x7D14, /* BDE0 */ + 0x5DE1, 0x9075, 0x9187, 0x9806, + 0x51E6, 0x521D, 0x6240, 0x6691, + 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, + 0x7F72, 0x66F8, 0x85AF, 0x85F7, + 0x8AF8, 0x52A9, 0x53D9, 0x5973, + 0x5E8F, 0x5F90, 0x6055, 0x92E4, + 0x9664, 0x50B7, 0x511F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x52DD, 0x5320, 0x5347, /* BEA0 */ + 0x53EC, 0x54E8, 0x5546, 0x5531, + 0x5617, 0x5968, 0x59BE, 0x5A3C, + 0x5BB5, 0x5C06, 0x5C0F, 0x5C11, + 0x5C1A, 0x5E84, 0x5E8A, 0x5EE0, + 0x5F70, 0x627F, 0x6284, 0x62DB, + 0x638C, 0x6377, 0x6607, 0x660C, + 0x662D, 0x6676, 0x677E, 0x68A2, + 0x6A1F, 0x6A35, 0x6CBC, 0x6D88, /* BEC0 */ + 0x6E09, 0x6E58, 0x713C, 0x7126, + 0x7167, 0x75C7, 0x7701, 0x785D, + 0x7901, 0x7965, 0x79F0, 0x7AE0, + 0x7B11, 0x7CA7, 0x7D39, 0x8096, + 0x83D6, 0x848B, 0x8549, 0x885D, + 0x88F3, 0x8A1F, 0x8A3C, 0x8A54, + 0x8A73, 0x8C61, 0x8CDE, 0x91A4, + 0x9266, 0x937E, 0x9418, 0x969C, /* BEE0 */ + 0x9798, 0x4E0A, 0x4E08, 0x4E1E, + 0x4E57, 0x5197, 0x5270, 0x57CE, + 0x5834, 0x58CC, 0x5B22, 0x5E38, + 0x60C5, 0x64FE, 0x6761, 0x6756, + 0x6D44, 0x72B6, 0x7573, 0x7A63, + 0x84B8, 0x8B72, 0x91B8, 0x9320, + 0x5631, 0x57F4, 0x98FE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x62ED, 0x690D, 0x6B96, /* BFA0 */ + 0x71ED, 0x7E54, 0x8077, 0x8272, + 0x89E6, 0x98DF, 0x8755, 0x8FB1, + 0x5C3B, 0x4F38, 0x4FE1, 0x4FB5, + 0x5507, 0x5A20, 0x5BDD, 0x5BE9, + 0x5FC3, 0x614E, 0x632F, 0x65B0, + 0x664B, 0x68EE, 0x699B, 0x6D78, + 0x6DF1, 0x7533, 0x75B9, 0x771F, + 0x795E, 0x79E6, 0x7D33, 0x81E3, /* BFC0 */ + 0x82AF, 0x85AA, 0x89AA, 0x8A3A, + 0x8EAB, 0x8F9B, 0x9032, 0x91DD, + 0x9707, 0x4EBA, 0x4EC1, 0x5203, + 0x5875, 0x58EC, 0x5C0B, 0x751A, + 0x5C3D, 0x814E, 0x8A0A, 0x8FC5, + 0x9663, 0x976D, 0x7B25, 0x8ACF, + 0x9808, 0x9162, 0x56F3, 0x53A8, + 0x9017, 0x5439, 0x5782, 0x5E25, /* BFE0 */ + 0x63A8, 0x6C34, 0x708A, 0x7761, + 0x7C8B, 0x7FE0, 0x8870, 0x9042, + 0x9154, 0x9310, 0x9318, 0x968F, + 0x745E, 0x9AC4, 0x5D07, 0x5D69, + 0x6570, 0x67A2, 0x8DA8, 0x96DB, + 0x636E, 0x6749, 0x6919, 0x83C5, + 0x9817, 0x96C0, 0x88FE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6F84, 0x647A, 0x5BF8, /* C0A0 */ + 0x4E16, 0x702C, 0x755D, 0x662F, + 0x51C4, 0x5236, 0x52E2, 0x59D3, + 0x5F81, 0x6027, 0x6210, 0x653F, + 0x6574, 0x661F, 0x6674, 0x68F2, + 0x6816, 0x6B63, 0x6E05, 0x7272, + 0x751F, 0x76DB, 0x7CBE, 0x8056, + 0x58F0, 0x88FD, 0x897F, 0x8AA0, + 0x8A93, 0x8ACB, 0x901D, 0x9192, /* C0C0 */ + 0x9752, 0x9759, 0x6589, 0x7A0E, + 0x8106, 0x96BB, 0x5E2D, 0x60DC, + 0x621A, 0x65A5, 0x6614, 0x6790, + 0x77F3, 0x7A4D, 0x7C4D, 0x7E3E, + 0x810A, 0x8CAC, 0x8D64, 0x8DE1, + 0x8E5F, 0x78A9, 0x5207, 0x62D9, + 0x63A5, 0x6442, 0x6298, 0x8A2D, + 0x7A83, 0x7BC0, 0x8AAC, 0x96EA, /* C0E0 */ + 0x7D76, 0x820C, 0x8749, 0x4ED9, + 0x5148, 0x5343, 0x5360, 0x5BA3, + 0x5C02, 0x5C16, 0x5DDD, 0x6226, + 0x6247, 0x64B0, 0x6813, 0x6834, + 0x6CC9, 0x6D45, 0x6D17, 0x67D3, + 0x6F5C, 0x714E, 0x717D, 0x65CB, + 0x7A7F, 0x7BAD, 0x7DDA, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7E4A, 0x7FA8, 0x817A, /* C1A0 */ + 0x821B, 0x8239, 0x85A6, 0x8A6E, + 0x8CCE, 0x8DF5, 0x9078, 0x9077, + 0x92AD, 0x9291, 0x9583, 0x9BAE, + 0x524D, 0x5584, 0x6F38, 0x7136, + 0x5168, 0x7985, 0x7E55, 0x81B3, + 0x7CCE, 0x564C, 0x5851, 0x5CA8, + 0x63AA, 0x66FE, 0x66FD, 0x695A, + 0x72D9, 0x758F, 0x758E, 0x790E, /* C1C0 */ + 0x7956, 0x79DF, 0x7C97, 0x7D20, + 0x7D44, 0x8607, 0x8A34, 0x963B, + 0x9061, 0x9F20, 0x50E7, 0x5275, + 0x53CC, 0x53E2, 0x5009, 0x55AA, + 0x58EE, 0x594F, 0x723D, 0x5B8B, + 0x5C64, 0x531D, 0x60E3, 0x60F3, + 0x635C, 0x6383, 0x633F, 0x63BB, + 0x64CD, 0x65E9, 0x66F9, 0x5DE3, /* C1E0 */ + 0x69CD, 0x69FD, 0x6F15, 0x71E5, + 0x4E89, 0x75E9, 0x76F8, 0x7A93, + 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, + 0x8349, 0x8358, 0x846C, 0x84BC, + 0x85FB, 0x88C5, 0x8D70, 0x9001, + 0x906D, 0x9397, 0x971C, 0x9A12, + 0x50CF, 0x5897, 0x618E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x81D3, 0x8535, 0x8D08, /* C2A0 */ + 0x9020, 0x4FC3, 0x5074, 0x5247, + 0x5373, 0x606F, 0x6349, 0x675F, + 0x6E2C, 0x8DB3, 0x901F, 0x4FD7, + 0x5C5E, 0x8CCA, 0x65CF, 0x7D9A, + 0x5352, 0x8896, 0x5176, 0x63C3, + 0x5B58, 0x5B6B, 0x5C0A, 0x640D, + 0x6751, 0x905C, 0x4ED6, 0x591A, + 0x592A, 0x6C70, 0x8A51, 0x553E, /* C2C0 */ + 0x5815, 0x59A5, 0x60F0, 0x6253, + 0x67C1, 0x8235, 0x6955, 0x9640, + 0x99C4, 0x9A28, 0x4F53, 0x5806, + 0x5BFE, 0x8010, 0x5CB1, 0x5E2F, + 0x5F85, 0x6020, 0x614B, 0x6234, + 0x66FF, 0x6CF0, 0x6EDE, 0x80CE, + 0x817F, 0x82D4, 0x888B, 0x8CB8, + 0x9000, 0x902E, 0x968A, 0x9EDB, /* C2E0 */ + 0x9BDB, 0x4EE3, 0x53F0, 0x5927, + 0x7B2C, 0x918D, 0x984C, 0x9DF9, + 0x6EDD, 0x7027, 0x5353, 0x5544, + 0x5B85, 0x6258, 0x629E, 0x62D3, + 0x6CA2, 0x6FEF, 0x7422, 0x8A17, + 0x9438, 0x6FC1, 0x8AFE, 0x8338, + 0x51E7, 0x86F8, 0x53EA, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x53E9, 0x4F46, 0x9054, /* C3A0 */ + 0x8FB0, 0x596A, 0x8131, 0x5DFD, + 0x7AEA, 0x8FBF, 0x68DA, 0x8C37, + 0x72F8, 0x9C48, 0x6A3D, 0x8AB0, + 0x4E39, 0x5358, 0x5606, 0x5766, + 0x62C5, 0x63A2, 0x65E6, 0x6B4E, + 0x6DE1, 0x6E5B, 0x70AD, 0x77ED, + 0x7AEF, 0x7BAA, 0x7DBB, 0x803D, + 0x80C6, 0x86CB, 0x8A95, 0x935B, /* C3C0 */ + 0x56E3, 0x58C7, 0x5F3E, 0x65AD, + 0x6696, 0x6A80, 0x6BB5, 0x7537, + 0x8AC7, 0x5024, 0x77E5, 0x5730, + 0x5F1B, 0x6065, 0x667A, 0x6C60, + 0x75F4, 0x7A1A, 0x7F6E, 0x81F4, + 0x8718, 0x9045, 0x99B3, 0x7BC9, + 0x755C, 0x7AF9, 0x7B51, 0x84C4, + 0x9010, 0x79E9, 0x7A92, 0x8336, /* C3E0 */ + 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, + 0x5B99, 0x5FE0, 0x62BD, 0x663C, + 0x67F1, 0x6CE8, 0x866B, 0x8877, + 0x8A3B, 0x914E, 0x92F3, 0x99D0, + 0x6A17, 0x7026, 0x732A, 0x82E7, + 0x8457, 0x8CAF, 0x4E01, 0x5146, + 0x51CB, 0x558B, 0x5BF5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5E16, 0x5E33, 0x5E81, /* C4A0 */ + 0x5F14, 0x5F35, 0x5F6B, 0x5FB4, + 0x61F2, 0x6311, 0x66A2, 0x671D, + 0x6F6E, 0x7252, 0x753A, 0x773A, + 0x8074, 0x8139, 0x8178, 0x8776, + 0x8ABF, 0x8ADC, 0x8D85, 0x8DF3, + 0x929A, 0x9577, 0x9802, 0x9CE5, + 0x52C5, 0x6357, 0x76F4, 0x6715, + 0x6C88, 0x73CD, 0x8CC3, 0x93AE, /* C4C0 */ + 0x9673, 0x6D25, 0x589C, 0x690E, + 0x69CC, 0x8FFD, 0x939A, 0x75DB, + 0x901A, 0x585A, 0x6802, 0x63B4, + 0x69FB, 0x4F43, 0x6F2C, 0x67D8, + 0x8FBB, 0x8526, 0x7DB4, 0x9354, + 0x693F, 0x6F70, 0x576A, 0x58F7, + 0x5B2C, 0x7D2C, 0x722A, 0x540A, + 0x91E3, 0x9DB4, 0x4EAD, 0x4F4E, /* C4E0 */ + 0x505C, 0x5075, 0x5243, 0x8C9E, + 0x5448, 0x5824, 0x5B9A, 0x5E1D, + 0x5E95, 0x5EAD, 0x5EF7, 0x5F1F, + 0x608C, 0x62B5, 0x633A, 0x63D0, + 0x68AF, 0x6C40, 0x7887, 0x798E, + 0x7A0B, 0x7DE0, 0x8247, 0x8A02, + 0x8AE6, 0x8E44, 0x9013, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x90B8, 0x912D, 0x91D8, /* C5A0 */ + 0x9F0E, 0x6CE5, 0x6458, 0x64E2, + 0x6575, 0x6EF4, 0x7684, 0x7B1B, + 0x9069, 0x93D1, 0x6EBA, 0x54F2, + 0x5FB9, 0x64A4, 0x8F4D, 0x8FED, + 0x9244, 0x5178, 0x586B, 0x5929, + 0x5C55, 0x5E97, 0x6DFB, 0x7E8F, + 0x751C, 0x8CBC, 0x8EE2, 0x985B, + 0x70B9, 0x4F1D, 0x6BBF, 0x6FB1, /* C5C0 */ + 0x7530, 0x96FB, 0x514E, 0x5410, + 0x5835, 0x5857, 0x59AC, 0x5C60, + 0x5F92, 0x6597, 0x675C, 0x6E21, + 0x767B, 0x83DF, 0x8CED, 0x9014, + 0x90FD, 0x934D, 0x7825, 0x783A, + 0x52AA, 0x5EA6, 0x571F, 0x5974, + 0x6012, 0x5012, 0x515A, 0x51AC, + 0x51CD, 0x5200, 0x5510, 0x5854, /* C5E0 */ + 0x5858, 0x5957, 0x5B95, 0x5CF6, + 0x5D8B, 0x60BC, 0x6295, 0x642D, + 0x6771, 0x6843, 0x68BC, 0x68DF, + 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, + 0x706F, 0x71C8, 0x5F53, 0x75D8, + 0x7977, 0x7B49, 0x7B54, 0x7B52, + 0x7CD6, 0x7D71, 0x5230, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8463, 0x8569, 0x85E4, /* C6A0 */ + 0x8A0E, 0x8B04, 0x8C46, 0x8E0F, + 0x9003, 0x900F, 0x9419, 0x9676, + 0x982D, 0x9A30, 0x95D8, 0x50CD, + 0x52D5, 0x540C, 0x5802, 0x5C0E, + 0x61A7, 0x649E, 0x6D1E, 0x77B3, + 0x7AE5, 0x80F4, 0x8404, 0x9053, + 0x9285, 0x5CE0, 0x9D07, 0x533F, + 0x5F97, 0x5FB3, 0x6D9C, 0x7279, /* C6C0 */ + 0x7763, 0x79BF, 0x7BE4, 0x6BD2, + 0x72EC, 0x8AAD, 0x6803, 0x6A61, + 0x51F8, 0x7A81, 0x6934, 0x5C4A, + 0x9CF6, 0x82EB, 0x5BC5, 0x9149, + 0x701E, 0x5678, 0x5C6F, 0x60C7, + 0x6566, 0x6C8C, 0x8C5A, 0x9041, + 0x9813, 0x5451, 0x66C7, 0x920D, + 0x5948, 0x90A3, 0x5185, 0x4E4D, /* C6E0 */ + 0x51EA, 0x8599, 0x8B0E, 0x7058, + 0x637A, 0x934B, 0x6962, 0x99B4, + 0x7E04, 0x7577, 0x5357, 0x6960, + 0x8EDF, 0x96E3, 0x6C5D, 0x4E8C, + 0x5C3C, 0x5F10, 0x8FE9, 0x5302, + 0x8CD1, 0x8089, 0x8679, 0x5EFF, + 0x65E5, 0x4E73, 0x5165, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5982, 0x5C3F, 0x97EE, /* C7A0 */ + 0x4EFB, 0x598A, 0x5FCD, 0x8A8D, + 0x6FE1, 0x79B0, 0x7962, 0x5BE7, + 0x8471, 0x732B, 0x71B1, 0x5E74, + 0x5FF5, 0x637B, 0x649A, 0x71C3, + 0x7C98, 0x4E43, 0x5EFC, 0x4E4B, + 0x57DC, 0x56A2, 0x60A9, 0x6FC3, + 0x7D0D, 0x80FD, 0x8133, 0x81BF, + 0x8FB2, 0x8997, 0x86A4, 0x5DF4, /* C7C0 */ + 0x628A, 0x64AD, 0x8987, 0x6777, + 0x6CE2, 0x6D3E, 0x7436, 0x7834, + 0x5A46, 0x7F75, 0x82AD, 0x99AC, + 0x4FF3, 0x5EC3, 0x62DD, 0x6392, + 0x6557, 0x676F, 0x76C3, 0x724C, + 0x80CC, 0x80BA, 0x8F29, 0x914D, + 0x500D, 0x57F9, 0x5A92, 0x6885, + 0x6973, 0x7164, 0x72FD, 0x8CB7, /* C7E0 */ + 0x58F2, 0x8CE0, 0x966A, 0x9019, + 0x877F, 0x79E4, 0x77E7, 0x8429, + 0x4F2F, 0x5265, 0x535A, 0x62CD, + 0x67CF, 0x6CCA, 0x767D, 0x7B94, + 0x7C95, 0x8236, 0x8584, 0x8FEB, + 0x66DD, 0x6F20, 0x7206, 0x7E1B, + 0x83AB, 0x99C1, 0x9EA6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x51FD, 0x7BB1, 0x7872, /* C8A0 */ + 0x7BB8, 0x8087, 0x7B48, 0x6AE8, + 0x5E61, 0x808C, 0x7551, 0x7560, + 0x516B, 0x9262, 0x6E8C, 0x767A, + 0x9197, 0x9AEA, 0x4F10, 0x7F70, + 0x629C, 0x7B4F, 0x95A5, 0x9CE9, + 0x567A, 0x5859, 0x86E4, 0x96BC, + 0x4F34, 0x5224, 0x534A, 0x53CD, + 0x53DB, 0x5E06, 0x642C, 0x6591, /* C8C0 */ + 0x677F, 0x6C3E, 0x6C4E, 0x7248, + 0x72AF, 0x73ED, 0x7554, 0x7E41, + 0x822C, 0x85E9, 0x8CA9, 0x7BC4, + 0x91C6, 0x7169, 0x9812, 0x98EF, + 0x633D, 0x6669, 0x756A, 0x76E4, + 0x78D0, 0x8543, 0x86EE, 0x532A, + 0x5351, 0x5426, 0x5983, 0x5E87, + 0x5F7C, 0x60B2, 0x6249, 0x6279, /* C8E0 */ + 0x62AB, 0x6590, 0x6BD4, 0x6CCC, + 0x75B2, 0x76AE, 0x7891, 0x79D8, + 0x7DCB, 0x7F77, 0x80A5, 0x88AB, + 0x8AB9, 0x8CBB, 0x907F, 0x975E, + 0x98DB, 0x6A0B, 0x7C38, 0x5099, + 0x5C3E, 0x5FAE, 0x6787, 0x6BD8, + 0x7435, 0x7709, 0x7F8E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9F3B, 0x67CA, 0x7A17, /* C9A0 */ + 0x5339, 0x758B, 0x9AED, 0x5F66, + 0x819D, 0x83F1, 0x8098, 0x5F3C, + 0x5FC5, 0x7562, 0x7B46, 0x903C, + 0x6867, 0x59EB, 0x5A9B, 0x7D10, + 0x767E, 0x8B2C, 0x4FF5, 0x5F6A, + 0x6A19, 0x6C37, 0x6F02, 0x74E2, + 0x7968, 0x8868, 0x8A55, 0x8C79, + 0x5EDF, 0x63CF, 0x75C5, 0x79D2, /* C9C0 */ + 0x82D7, 0x9328, 0x92F2, 0x849C, + 0x86ED, 0x9C2D, 0x54C1, 0x5F6C, + 0x658C, 0x6D5C, 0x7015, 0x8CA7, + 0x8CD3, 0x983B, 0x654F, 0x74F6, + 0x4E0D, 0x4ED8, 0x57E0, 0x592B, + 0x5A66, 0x5BCC, 0x51A8, 0x5E03, + 0x5E9C, 0x6016, 0x6276, 0x6577, + 0x65A7, 0x666E, 0x6D6E, 0x7236, /* C9E0 */ + 0x7B26, 0x8150, 0x819A, 0x8299, + 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, + 0x961C, 0x9644, 0x4FAE, 0x64AB, + 0x6B66, 0x821E, 0x8461, 0x856A, + 0x90E8, 0x5C01, 0x6953, 0x98A8, + 0x847A, 0x8557, 0x4F0F, 0x526F, + 0x5FA9, 0x5E45, 0x670D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x798F, 0x8179, 0x8907, /* CAA0 */ + 0x8986, 0x6DF5, 0x5F17, 0x6255, + 0x6CB8, 0x4ECF, 0x7269, 0x9B92, + 0x5206, 0x543B, 0x5674, 0x58B3, + 0x61A4, 0x626E, 0x711A, 0x596E, + 0x7C89, 0x7CDE, 0x7D1B, 0x96F0, + 0x6587, 0x805E, 0x4E19, 0x4F75, + 0x5175, 0x5840, 0x5E63, 0x5E73, + 0x5F0A, 0x67C4, 0x4E26, 0x853D, /* CAC0 */ + 0x9589, 0x965B, 0x7C73, 0x9801, + 0x50FB, 0x58C1, 0x7656, 0x78A7, + 0x5225, 0x77A5, 0x8511, 0x7B86, + 0x504F, 0x5909, 0x7247, 0x7BC7, + 0x7DE8, 0x8FBA, 0x8FD4, 0x904D, + 0x4FBF, 0x52C9, 0x5A29, 0x5F01, + 0x97AD, 0x4FDD, 0x8217, 0x92EA, + 0x5703, 0x6355, 0x6B69, 0x752B, /* CAE0 */ + 0x88DC, 0x8F14, 0x7A42, 0x52DF, + 0x5893, 0x6155, 0x620A, 0x66AE, + 0x6BCD, 0x7C3F, 0x83E9, 0x5023, + 0x4FF8, 0x5305, 0x5446, 0x5831, + 0x5949, 0x5B9D, 0x5CF0, 0x5CEF, + 0x5D29, 0x5E96, 0x62B1, 0x6367, + 0x653E, 0x65B9, 0x670B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6CD5, 0x6CE1, 0x70F9, /* CBA0 */ + 0x7832, 0x7E2B, 0x80DE, 0x82B3, + 0x840C, 0x84EC, 0x8702, 0x8912, + 0x8A2A, 0x8C4A, 0x90A6, 0x92D2, + 0x98FD, 0x9CF3, 0x9D6C, 0x4E4F, + 0x4EA1, 0x508D, 0x5256, 0x574A, + 0x59A8, 0x5E3D, 0x5FD8, 0x5FD9, + 0x623F, 0x66B4, 0x671B, 0x67D0, + 0x68D2, 0x5192, 0x7D21, 0x80AA, /* CBC0 */ + 0x81A8, 0x8B00, 0x8C8C, 0x8CBF, + 0x927E, 0x9632, 0x5420, 0x982C, + 0x5317, 0x50D5, 0x535C, 0x58A8, + 0x64B2, 0x6734, 0x7267, 0x7766, + 0x7A46, 0x91E6, 0x52C3, 0x6CA1, + 0x6B86, 0x5800, 0x5E4C, 0x5954, + 0x672C, 0x7FFB, 0x51E1, 0x76C6, + 0x6469, 0x78E8, 0x9B54, 0x9EBB, /* CBE0 */ + 0x57CB, 0x59B9, 0x6627, 0x679A, + 0x6BCE, 0x54E9, 0x69D9, 0x5E55, + 0x819C, 0x6795, 0x9BAA, 0x67FE, + 0x9C52, 0x685D, 0x4EA6, 0x4FE3, + 0x53C8, 0x62B9, 0x672B, 0x6CAB, + 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, + 0x4E07, 0x6162, 0x6E80, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6F2B, 0x8513, 0x5473, /* CCA0 */ + 0x672A, 0x9B45, 0x5DF3, 0x7B95, + 0x5CAC, 0x5BC6, 0x871C, 0x6E4A, + 0x84D1, 0x7A14, 0x8108, 0x5999, + 0x7C8D, 0x6C11, 0x7720, 0x52D9, + 0x5922, 0x7121, 0x725F, 0x77DB, + 0x9727, 0x9D61, 0x690B, 0x5A7F, + 0x5A18, 0x51A5, 0x540D, 0x547D, + 0x660E, 0x76DF, 0x8FF7, 0x9298, /* CCC0 */ + 0x9CF4, 0x59EA, 0x725D, 0x6EC5, + 0x514D, 0x68C9, 0x7DBF, 0x7DEC, + 0x9762, 0x9EBA, 0x6478, 0x6A21, + 0x8302, 0x5984, 0x5B5F, 0x6BDB, + 0x731B, 0x76F2, 0x7DB2, 0x8017, + 0x8499, 0x5132, 0x6728, 0x9ED9, + 0x76EE, 0x6762, 0x52FF, 0x9905, + 0x5C24, 0x623B, 0x7C7E, 0x8CB0, /* CCE0 */ + 0x554F, 0x60B6, 0x7D0B, 0x9580, + 0x5301, 0x4E5F, 0x51B6, 0x591C, + 0x723A, 0x8036, 0x91CE, 0x5F25, + 0x77E2, 0x5384, 0x5F79, 0x7D04, + 0x85AC, 0x8A33, 0x8E8D, 0x9756, + 0x67F3, 0x85AE, 0x9453, 0x6109, + 0x6108, 0x6CB9, 0x7652, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8AED, 0x8F38, 0x552F, /* CDA0 */ + 0x4F51, 0x512A, 0x52C7, 0x53CB, + 0x5BA5, 0x5E7D, 0x60A0, 0x6182, + 0x63D6, 0x6709, 0x67DA, 0x6E67, + 0x6D8C, 0x7336, 0x7337, 0x7531, + 0x7950, 0x88D5, 0x8A98, 0x904A, + 0x9091, 0x90F5, 0x96C4, 0x878D, + 0x5915, 0x4E88, 0x4F59, 0x4E0E, + 0x8A89, 0x8F3F, 0x9810, 0x50AD, /* CDC0 */ + 0x5E7C, 0x5996, 0x5BB9, 0x5EB8, + 0x63DA, 0x63FA, 0x64C1, 0x66DC, + 0x694A, 0x69D8, 0x6D0B, 0x6EB6, + 0x7194, 0x7528, 0x7AAF, 0x7F8A, + 0x8000, 0x8449, 0x84C9, 0x8981, + 0x8B21, 0x8E0A, 0x9065, 0x967D, + 0x990A, 0x617E, 0x6291, 0x6B32, + 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, /* CDE0 */ + 0x6DC0, 0x7F85, 0x87BA, 0x88F8, + 0x6765, 0x83B1, 0x983C, 0x96F7, + 0x6D1B, 0x7D61, 0x843D, 0x916A, + 0x4E71, 0x5375, 0x5D50, 0x6B04, + 0x6FEB, 0x85CD, 0x862D, 0x89A7, + 0x5229, 0x540F, 0x5C65, 0x674E, + 0x68A8, 0x7406, 0x7483, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x75E2, 0x88CF, 0x88E1, /* CEA0 */ + 0x91CC, 0x96E2, 0x9678, 0x5F8B, + 0x7387, 0x7ACB, 0x844E, 0x63A0, + 0x7565, 0x5289, 0x6D41, 0x6E9C, + 0x7409, 0x7559, 0x786B, 0x7C92, + 0x9686, 0x7ADC, 0x9F8D, 0x4FB6, + 0x616E, 0x65C5, 0x865C, 0x4E86, + 0x4EAE, 0x50DA, 0x4E21, 0x51CC, + 0x5BEE, 0x6599, 0x6881, 0x6DBC, /* CEC0 */ + 0x731F, 0x7642, 0x77AD, 0x7A1C, + 0x7CE7, 0x826F, 0x8AD2, 0x907C, + 0x91CF, 0x9675, 0x9818, 0x529B, + 0x7DD1, 0x502B, 0x5398, 0x6797, + 0x6DCB, 0x71D0, 0x7433, 0x81E8, + 0x8F2A, 0x96A3, 0x9C57, 0x9E9F, + 0x7460, 0x5841, 0x6D99, 0x7D2F, + 0x985E, 0x4EE4, 0x4F36, 0x4F8B, /* CEE0 */ + 0x51B7, 0x52B1, 0x5DBA, 0x601C, + 0x73B2, 0x793C, 0x82D3, 0x9234, + 0x96B7, 0x96F6, 0x970A, 0x9E97, + 0x9F62, 0x66A6, 0x6B74, 0x5217, + 0x52A3, 0x70C8, 0x88C2, 0x5EC9, + 0x604B, 0x6190, 0x6F23, 0x7149, + 0x7C3E, 0x7DF4, 0x806F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x84EE, 0x9023, 0x932C, /* CFA0 */ + 0x5442, 0x9B6F, 0x6AD3, 0x7089, + 0x8CC2, 0x8DEF, 0x9732, 0x52B4, + 0x5A41, 0x5ECA, 0x5F04, 0x6717, + 0x697C, 0x6994, 0x6D6A, 0x6F0F, + 0x7262, 0x72FC, 0x7BED, 0x8001, + 0x807E, 0x874B, 0x90CE, 0x516D, + 0x9E93, 0x7984, 0x808B, 0x9332, + 0x8AD6, 0x502D, 0x548C, 0x8A71, /* CFC0 */ + 0x6B6A, 0x8CC4, 0x8107, 0x60D1, + 0x67A0, 0x9DF2, 0x4E99, 0x4E98, + 0x9C10, 0x8A6B, 0x85C1, 0x8568, + 0x6900, 0x6E7E, 0x7897, 0x8155, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5F0C, 0x4E10, 0x4E15, /* D0A0 */ + 0x4E2A, 0x4E31, 0x4E36, 0x4E3C, + 0x4E3F, 0x4E42, 0x4E56, 0x4E58, + 0x4E82, 0x4E85, 0x8C6B, 0x4E8A, + 0x8212, 0x5F0D, 0x4E8E, 0x4E9E, + 0x4E9F, 0x4EA0, 0x4EA2, 0x4EB0, + 0x4EB3, 0x4EB6, 0x4ECE, 0x4ECD, + 0x4EC4, 0x4EC6, 0x4EC2, 0x4ED7, + 0x4EDE, 0x4EED, 0x4EDF, 0x4EF7, /* D0C0 */ + 0x4F09, 0x4F5A, 0x4F30, 0x4F5B, + 0x4F5D, 0x4F57, 0x4F47, 0x4F76, + 0x4F88, 0x4F8F, 0x4F98, 0x4F7B, + 0x4F69, 0x4F70, 0x4F91, 0x4F6F, + 0x4F86, 0x4F96, 0x5118, 0x4FD4, + 0x4FDF, 0x4FCE, 0x4FD8, 0x4FDB, + 0x4FD1, 0x4FDA, 0x4FD0, 0x4FE4, + 0x4FE5, 0x501A, 0x5028, 0x5014, /* D0E0 */ + 0x502A, 0x5025, 0x5005, 0x4F1C, + 0x4FF6, 0x5021, 0x5029, 0x502C, + 0x4FFE, 0x4FEF, 0x5011, 0x5006, + 0x5043, 0x5047, 0x6703, 0x5055, + 0x5050, 0x5048, 0x505A, 0x5056, + 0x506C, 0x5078, 0x5080, 0x509A, + 0x5085, 0x50B4, 0x50B2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x50C9, 0x50CA, 0x50B3, /* D1A0 */ + 0x50C2, 0x50D6, 0x50DE, 0x50E5, + 0x50ED, 0x50E3, 0x50EE, 0x50F9, + 0x50F5, 0x5109, 0x5101, 0x5102, + 0x5116, 0x5115, 0x5114, 0x511A, + 0x5121, 0x513A, 0x5137, 0x513C, + 0x513B, 0x513F, 0x5140, 0x5152, + 0x514C, 0x5154, 0x5162, 0x7AF8, + 0x5169, 0x516A, 0x516E, 0x5180, /* D1C0 */ + 0x5182, 0x56D8, 0x518C, 0x5189, + 0x518F, 0x5191, 0x5193, 0x5195, + 0x5196, 0x51A4, 0x51A6, 0x51A2, + 0x51A9, 0x51AA, 0x51AB, 0x51B3, + 0x51B1, 0x51B2, 0x51B0, 0x51B5, + 0x51BD, 0x51C5, 0x51C9, 0x51DB, + 0x51E0, 0x8655, 0x51E9, 0x51ED, + 0x51F0, 0x51F5, 0x51FE, 0x5204, /* D1E0 */ + 0x520B, 0x5214, 0x520E, 0x5227, + 0x522A, 0x522E, 0x5233, 0x5239, + 0x524F, 0x5244, 0x524B, 0x524C, + 0x525E, 0x5254, 0x526A, 0x5274, + 0x5269, 0x5273, 0x527F, 0x527D, + 0x528D, 0x5294, 0x5292, 0x5271, + 0x5288, 0x5291, 0x8FA8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8FA7, 0x52AC, 0x52AD, /* D2A0 */ + 0x52BC, 0x52B5, 0x52C1, 0x52CD, + 0x52D7, 0x52DE, 0x52E3, 0x52E6, + 0x98ED, 0x52E0, 0x52F3, 0x52F5, + 0x52F8, 0x52F9, 0x5306, 0x5308, + 0x7538, 0x530D, 0x5310, 0x530F, + 0x5315, 0x531A, 0x5323, 0x532F, + 0x5331, 0x5333, 0x5338, 0x5340, + 0x5346, 0x5345, 0x4E17, 0x5349, /* D2C0 */ + 0x534D, 0x51D6, 0x535E, 0x5369, + 0x536E, 0x5918, 0x537B, 0x5377, + 0x5382, 0x5396, 0x53A0, 0x53A6, + 0x53A5, 0x53AE, 0x53B0, 0x53B6, + 0x53C3, 0x7C12, 0x96D9, 0x53DF, + 0x66FC, 0x71EE, 0x53EE, 0x53E8, + 0x53ED, 0x53FA, 0x5401, 0x543D, + 0x5440, 0x542C, 0x542D, 0x543C, /* D2E0 */ + 0x542E, 0x5436, 0x5429, 0x541D, + 0x544E, 0x548F, 0x5475, 0x548E, + 0x545F, 0x5471, 0x5477, 0x5470, + 0x5492, 0x547B, 0x5480, 0x5476, + 0x5484, 0x5490, 0x5486, 0x54C7, + 0x54A2, 0x54B8, 0x54A5, 0x54AC, + 0x54C4, 0x54C8, 0x54A8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x54AB, 0x54C2, 0x54A4, /* D3A0 */ + 0x54BE, 0x54BC, 0x54D8, 0x54E5, + 0x54E6, 0x550F, 0x5514, 0x54FD, + 0x54EE, 0x54ED, 0x54FA, 0x54E2, + 0x5539, 0x5540, 0x5563, 0x554C, + 0x552E, 0x555C, 0x5545, 0x5556, + 0x5557, 0x5538, 0x5533, 0x555D, + 0x5599, 0x5580, 0x54AF, 0x558A, + 0x559F, 0x557B, 0x557E, 0x5598, /* D3C0 */ + 0x559E, 0x55AE, 0x557C, 0x5583, + 0x55A9, 0x5587, 0x55A8, 0x55DA, + 0x55C5, 0x55DF, 0x55C4, 0x55DC, + 0x55E4, 0x55D4, 0x5614, 0x55F7, + 0x5616, 0x55FE, 0x55FD, 0x561B, + 0x55F9, 0x564E, 0x5650, 0x71DF, + 0x5634, 0x5636, 0x5632, 0x5638, + 0x566B, 0x5664, 0x562F, 0x566C, /* D3E0 */ + 0x566A, 0x5686, 0x5680, 0x568A, + 0x56A0, 0x5694, 0x568F, 0x56A5, + 0x56AE, 0x56B6, 0x56B4, 0x56C2, + 0x56BC, 0x56C1, 0x56C3, 0x56C0, + 0x56C8, 0x56CE, 0x56D1, 0x56D3, + 0x56D7, 0x56EE, 0x56F9, 0x5700, + 0x56FF, 0x5704, 0x5709, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5708, 0x570B, 0x570D, /* D4A0 */ + 0x5713, 0x5718, 0x5716, 0x55C7, + 0x571C, 0x5726, 0x5737, 0x5738, + 0x574E, 0x573B, 0x5740, 0x574F, + 0x5769, 0x57C0, 0x5788, 0x5761, + 0x577F, 0x5789, 0x5793, 0x57A0, + 0x57B3, 0x57A4, 0x57AA, 0x57B0, + 0x57C3, 0x57C6, 0x57D4, 0x57D2, + 0x57D3, 0x580A, 0x57D6, 0x57E3, /* D4C0 */ + 0x580B, 0x5819, 0x581D, 0x5872, + 0x5821, 0x5862, 0x584B, 0x5870, + 0x6BC0, 0x5852, 0x583D, 0x5879, + 0x5885, 0x58B9, 0x589F, 0x58AB, + 0x58BA, 0x58DE, 0x58BB, 0x58B8, + 0x58AE, 0x58C5, 0x58D3, 0x58D1, + 0x58D7, 0x58D9, 0x58D8, 0x58E5, + 0x58DC, 0x58E4, 0x58DF, 0x58EF, /* D4E0 */ + 0x58FA, 0x58F9, 0x58FB, 0x58FC, + 0x58FD, 0x5902, 0x590A, 0x5910, + 0x591B, 0x68A6, 0x5925, 0x592C, + 0x592D, 0x5932, 0x5938, 0x593E, + 0x7AD2, 0x5955, 0x5950, 0x594E, + 0x595A, 0x5958, 0x5962, 0x5960, + 0x5967, 0x596C, 0x5969, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5978, 0x5981, 0x599D, /* D5A0 */ + 0x4F5E, 0x4FAB, 0x59A3, 0x59B2, + 0x59C6, 0x59E8, 0x59DC, 0x598D, + 0x59D9, 0x59DA, 0x5A25, 0x5A1F, + 0x5A11, 0x5A1C, 0x5A09, 0x5A1A, + 0x5A40, 0x5A6C, 0x5A49, 0x5A35, + 0x5A36, 0x5A62, 0x5A6A, 0x5A9A, + 0x5ABC, 0x5ABE, 0x5ACB, 0x5AC2, + 0x5ABD, 0x5AE3, 0x5AD7, 0x5AE6, /* D5C0 */ + 0x5AE9, 0x5AD6, 0x5AFA, 0x5AFB, + 0x5B0C, 0x5B0B, 0x5B16, 0x5B32, + 0x5AD0, 0x5B2A, 0x5B36, 0x5B3E, + 0x5B43, 0x5B45, 0x5B40, 0x5B51, + 0x5B55, 0x5B5A, 0x5B5B, 0x5B65, + 0x5B69, 0x5B70, 0x5B73, 0x5B75, + 0x5B78, 0x6588, 0x5B7A, 0x5B80, + 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, /* D5E0 */ + 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, + 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, + 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, + 0x5BF3, 0x5C05, 0x5C07, 0x5C08, + 0x5C0D, 0x5C13, 0x5C20, 0x5C22, + 0x5C28, 0x5C38, 0x5C39, 0x5C41, + 0x5C46, 0x5C4E, 0x5C53, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5C50, 0x5C4F, 0x5B71, /* D6A0 */ + 0x5C6C, 0x5C6E, 0x4E62, 0x5C76, + 0x5C79, 0x5C8C, 0x5C91, 0x5C94, + 0x599B, 0x5CAB, 0x5CBB, 0x5CB6, + 0x5CBC, 0x5CB7, 0x5CC5, 0x5CBE, + 0x5CC7, 0x5CD9, 0x5CE9, 0x5CFD, + 0x5CFA, 0x5CED, 0x5D8C, 0x5CEA, + 0x5D0B, 0x5D15, 0x5D17, 0x5D5C, + 0x5D1F, 0x5D1B, 0x5D11, 0x5D14, /* D6C0 */ + 0x5D22, 0x5D1A, 0x5D19, 0x5D18, + 0x5D4C, 0x5D52, 0x5D4E, 0x5D4B, + 0x5D6C, 0x5D73, 0x5D76, 0x5D87, + 0x5D84, 0x5D82, 0x5DA2, 0x5D9D, + 0x5DAC, 0x5DAE, 0x5DBD, 0x5D90, + 0x5DB7, 0x5DBC, 0x5DC9, 0x5DCD, + 0x5DD3, 0x5DD2, 0x5DD6, 0x5DDB, + 0x5DEB, 0x5DF2, 0x5DF5, 0x5E0B, /* D6E0 */ + 0x5E1A, 0x5E19, 0x5E11, 0x5E1B, + 0x5E36, 0x5E37, 0x5E44, 0x5E43, + 0x5E40, 0x5E4E, 0x5E57, 0x5E54, + 0x5E5F, 0x5E62, 0x5E64, 0x5E47, + 0x5E75, 0x5E76, 0x5E7A, 0x9EBC, + 0x5E7F, 0x5EA0, 0x5EC1, 0x5EC2, + 0x5EC8, 0x5ED0, 0x5ECF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5ED6, 0x5EE3, 0x5EDD, /* D7A0 */ + 0x5EDA, 0x5EDB, 0x5EE2, 0x5EE1, + 0x5EE8, 0x5EE9, 0x5EEC, 0x5EF1, + 0x5EF3, 0x5EF0, 0x5EF4, 0x5EF8, + 0x5EFE, 0x5F03, 0x5F09, 0x5F5D, + 0x5F5C, 0x5F0B, 0x5F11, 0x5F16, + 0x5F29, 0x5F2D, 0x5F38, 0x5F41, + 0x5F48, 0x5F4C, 0x5F4E, 0x5F2F, + 0x5F51, 0x5F56, 0x5F57, 0x5F59, /* D7C0 */ + 0x5F61, 0x5F6D, 0x5F73, 0x5F77, + 0x5F83, 0x5F82, 0x5F7F, 0x5F8A, + 0x5F88, 0x5F91, 0x5F87, 0x5F9E, + 0x5F99, 0x5F98, 0x5FA0, 0x5FA8, + 0x5FAD, 0x5FBC, 0x5FD6, 0x5FFB, + 0x5FE4, 0x5FF8, 0x5FF1, 0x5FDD, + 0x60B3, 0x5FFF, 0x6021, 0x6060, + 0x6019, 0x6010, 0x6029, 0x600E, /* D7E0 */ + 0x6031, 0x601B, 0x6015, 0x602B, + 0x6026, 0x600F, 0x603A, 0x605A, + 0x6041, 0x606A, 0x6077, 0x605F, + 0x604A, 0x6046, 0x604D, 0x6063, + 0x6043, 0x6064, 0x6042, 0x606C, + 0x606B, 0x6059, 0x6081, 0x608D, + 0x60E7, 0x6083, 0x609A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6084, 0x609B, 0x6096, /* D8A0 */ + 0x6097, 0x6092, 0x60A7, 0x608B, + 0x60E1, 0x60B8, 0x60E0, 0x60D3, + 0x60B4, 0x5FF0, 0x60BD, 0x60C6, + 0x60B5, 0x60D8, 0x614D, 0x6115, + 0x6106, 0x60F6, 0x60F7, 0x6100, + 0x60F4, 0x60FA, 0x6103, 0x6121, + 0x60FB, 0x60F1, 0x610D, 0x610E, + 0x6147, 0x613E, 0x6128, 0x6127, /* D8C0 */ + 0x614A, 0x613F, 0x613C, 0x612C, + 0x6134, 0x613D, 0x6142, 0x6144, + 0x6173, 0x6177, 0x6158, 0x6159, + 0x615A, 0x616B, 0x6174, 0x616F, + 0x6165, 0x6171, 0x615F, 0x615D, + 0x6153, 0x6175, 0x6199, 0x6196, + 0x6187, 0x61AC, 0x6194, 0x619A, + 0x618A, 0x6191, 0x61AB, 0x61AE, /* D8E0 */ + 0x61CC, 0x61CA, 0x61C9, 0x61F7, + 0x61C8, 0x61C3, 0x61C6, 0x61BA, + 0x61CB, 0x7F79, 0x61CD, 0x61E6, + 0x61E3, 0x61F6, 0x61FA, 0x61F4, + 0x61FF, 0x61FD, 0x61FC, 0x61FE, + 0x6200, 0x6208, 0x6209, 0x620D, + 0x620C, 0x6214, 0x621B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x621E, 0x6221, 0x622A, /* D9A0 */ + 0x622E, 0x6230, 0x6232, 0x6233, + 0x6241, 0x624E, 0x625E, 0x6263, + 0x625B, 0x6260, 0x6268, 0x627C, + 0x6282, 0x6289, 0x627E, 0x6292, + 0x6293, 0x6296, 0x62D4, 0x6283, + 0x6294, 0x62D7, 0x62D1, 0x62BB, + 0x62CF, 0x62FF, 0x62C6, 0x64D4, + 0x62C8, 0x62DC, 0x62CC, 0x62CA, /* D9C0 */ + 0x62C2, 0x62C7, 0x629B, 0x62C9, + 0x630C, 0x62EE, 0x62F1, 0x6327, + 0x6302, 0x6308, 0x62EF, 0x62F5, + 0x6350, 0x633E, 0x634D, 0x641C, + 0x634F, 0x6396, 0x638E, 0x6380, + 0x63AB, 0x6376, 0x63A3, 0x638F, + 0x6389, 0x639F, 0x63B5, 0x636B, + 0x6369, 0x63BE, 0x63E9, 0x63C0, /* D9E0 */ + 0x63C6, 0x63E3, 0x63C9, 0x63D2, + 0x63F6, 0x63C4, 0x6416, 0x6434, + 0x6406, 0x6413, 0x6426, 0x6436, + 0x651D, 0x6417, 0x6428, 0x640F, + 0x6467, 0x646F, 0x6476, 0x644E, + 0x652A, 0x6495, 0x6493, 0x64A5, + 0x64A9, 0x6488, 0x64BC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x64DA, 0x64D2, 0x64C5, /* DAA0 */ + 0x64C7, 0x64BB, 0x64D8, 0x64C2, + 0x64F1, 0x64E7, 0x8209, 0x64E0, + 0x64E1, 0x62AC, 0x64E3, 0x64EF, + 0x652C, 0x64F6, 0x64F4, 0x64F2, + 0x64FA, 0x6500, 0x64FD, 0x6518, + 0x651C, 0x6505, 0x6524, 0x6523, + 0x652B, 0x6534, 0x6535, 0x6537, + 0x6536, 0x6538, 0x754B, 0x6548, /* DAC0 */ + 0x6556, 0x6555, 0x654D, 0x6558, + 0x655E, 0x655D, 0x6572, 0x6578, + 0x6582, 0x6583, 0x8B8A, 0x659B, + 0x659F, 0x65AB, 0x65B7, 0x65C3, + 0x65C6, 0x65C1, 0x65C4, 0x65CC, + 0x65D2, 0x65DB, 0x65D9, 0x65E0, + 0x65E1, 0x65F1, 0x6772, 0x660A, + 0x6603, 0x65FB, 0x6773, 0x6635, /* DAE0 */ + 0x6636, 0x6634, 0x661C, 0x664F, + 0x6644, 0x6649, 0x6641, 0x665E, + 0x665D, 0x6664, 0x6667, 0x6668, + 0x665F, 0x6662, 0x6670, 0x6683, + 0x6688, 0x668E, 0x6689, 0x6684, + 0x6698, 0x669D, 0x66C1, 0x66B9, + 0x66C9, 0x66BE, 0x66BC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x66C4, 0x66B8, 0x66D6, /* DBA0 */ + 0x66DA, 0x66E0, 0x663F, 0x66E6, + 0x66E9, 0x66F0, 0x66F5, 0x66F7, + 0x670F, 0x6716, 0x671E, 0x6726, + 0x6727, 0x9738, 0x672E, 0x673F, + 0x6736, 0x6741, 0x6738, 0x6737, + 0x6746, 0x675E, 0x6760, 0x6759, + 0x6763, 0x6764, 0x6789, 0x6770, + 0x67A9, 0x677C, 0x676A, 0x678C, /* DBC0 */ + 0x678B, 0x67A6, 0x67A1, 0x6785, + 0x67B7, 0x67EF, 0x67B4, 0x67EC, + 0x67B3, 0x67E9, 0x67B8, 0x67E4, + 0x67DE, 0x67DD, 0x67E2, 0x67EE, + 0x67B9, 0x67CE, 0x67C6, 0x67E7, + 0x6A9C, 0x681E, 0x6846, 0x6829, + 0x6840, 0x684D, 0x6832, 0x684E, + 0x68B3, 0x682B, 0x6859, 0x6863, /* DBE0 */ + 0x6877, 0x687F, 0x689F, 0x688F, + 0x68AD, 0x6894, 0x689D, 0x689B, + 0x6883, 0x6AAE, 0x68B9, 0x6874, + 0x68B5, 0x68A0, 0x68BA, 0x690F, + 0x688D, 0x687E, 0x6901, 0x68CA, + 0x6908, 0x68D8, 0x6922, 0x6926, + 0x68E1, 0x690C, 0x68CD, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x68D4, 0x68E7, 0x68D5, /* DCA0 */ + 0x6936, 0x6912, 0x6904, 0x68D7, + 0x68E3, 0x6925, 0x68F9, 0x68E0, + 0x68EF, 0x6928, 0x692A, 0x691A, + 0x6923, 0x6921, 0x68C6, 0x6979, + 0x6977, 0x695C, 0x6978, 0x696B, + 0x6954, 0x697E, 0x696E, 0x6939, + 0x6974, 0x693D, 0x6959, 0x6930, + 0x6961, 0x695E, 0x695D, 0x6981, /* DCC0 */ + 0x696A, 0x69B2, 0x69AE, 0x69D0, + 0x69BF, 0x69C1, 0x69D3, 0x69BE, + 0x69CE, 0x5BE8, 0x69CA, 0x69DD, + 0x69BB, 0x69C3, 0x69A7, 0x6A2E, + 0x6991, 0x69A0, 0x699C, 0x6995, + 0x69B4, 0x69DE, 0x69E8, 0x6A02, + 0x6A1B, 0x69FF, 0x6B0A, 0x69F9, + 0x69F2, 0x69E7, 0x6A05, 0x69B1, /* DCE0 */ + 0x6A1E, 0x69ED, 0x6A14, 0x69EB, + 0x6A0A, 0x6A12, 0x6AC1, 0x6A23, + 0x6A13, 0x6A44, 0x6A0C, 0x6A72, + 0x6A36, 0x6A78, 0x6A47, 0x6A62, + 0x6A59, 0x6A66, 0x6A48, 0x6A38, + 0x6A22, 0x6A90, 0x6A8D, 0x6AA0, + 0x6A84, 0x6AA2, 0x6AA3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6A97, 0x8617, 0x6ABB, /* DDA0 */ + 0x6AC3, 0x6AC2, 0x6AB8, 0x6AB3, + 0x6AAC, 0x6ADE, 0x6AD1, 0x6ADF, + 0x6AAA, 0x6ADA, 0x6AEA, 0x6AFB, + 0x6B05, 0x8616, 0x6AFA, 0x6B12, + 0x6B16, 0x9B31, 0x6B1F, 0x6B38, + 0x6B37, 0x76DC, 0x6B39, 0x98EE, + 0x6B47, 0x6B43, 0x6B49, 0x6B50, + 0x6B59, 0x6B54, 0x6B5B, 0x6B5F, /* DDC0 */ + 0x6B61, 0x6B78, 0x6B79, 0x6B7F, + 0x6B80, 0x6B84, 0x6B83, 0x6B8D, + 0x6B98, 0x6B95, 0x6B9E, 0x6BA4, + 0x6BAA, 0x6BAB, 0x6BAF, 0x6BB2, + 0x6BB1, 0x6BB3, 0x6BB7, 0x6BBC, + 0x6BC6, 0x6BCB, 0x6BD3, 0x6BDF, + 0x6BEC, 0x6BEB, 0x6BF3, 0x6BEF, + 0x9EBE, 0x6C08, 0x6C13, 0x6C14, /* DDE0 */ + 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, + 0x6C55, 0x6C62, 0x6C6A, 0x6C82, + 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, + 0x6C7E, 0x6C68, 0x6C73, 0x6C92, + 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, + 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, + 0x6CAE, 0x6CB1, 0x6CBE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6CBA, 0x6CDB, 0x6CEF, /* DEA0 */ + 0x6CD9, 0x6CEA, 0x6D1F, 0x884D, + 0x6D36, 0x6D2B, 0x6D3D, 0x6D38, + 0x6D19, 0x6D35, 0x6D33, 0x6D12, + 0x6D0C, 0x6D63, 0x6D93, 0x6D64, + 0x6D5A, 0x6D79, 0x6D59, 0x6D8E, + 0x6D95, 0x6FE4, 0x6D85, 0x6DF9, + 0x6E15, 0x6E0A, 0x6DB5, 0x6DC7, + 0x6DE6, 0x6DB8, 0x6DC6, 0x6DEC, /* DEC0 */ + 0x6DDE, 0x6DCC, 0x6DE8, 0x6DD2, + 0x6DC5, 0x6DFA, 0x6DD9, 0x6DE4, + 0x6DD5, 0x6DEA, 0x6DEE, 0x6E2D, + 0x6E6E, 0x6E2E, 0x6E19, 0x6E72, + 0x6E5F, 0x6E3E, 0x6E23, 0x6E6B, + 0x6E2B, 0x6E76, 0x6E4D, 0x6E1F, + 0x6E43, 0x6E3A, 0x6E4E, 0x6E24, + 0x6EFF, 0x6E1D, 0x6E38, 0x6E82, /* DEE0 */ + 0x6EAA, 0x6E98, 0x6EC9, 0x6EB7, + 0x6ED3, 0x6EBD, 0x6EAF, 0x6EC4, + 0x6EB2, 0x6ED4, 0x6ED5, 0x6E8F, + 0x6EA5, 0x6EC2, 0x6E9F, 0x6F41, + 0x6F11, 0x704C, 0x6EEC, 0x6EF8, + 0x6EFE, 0x6F3F, 0x6EF2, 0x6F31, + 0x6EEF, 0x6F32, 0x6ECC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6F3E, 0x6F13, 0x6EF7, /* DFA0 */ + 0x6F86, 0x6F7A, 0x6F78, 0x6F81, + 0x6F80, 0x6F6F, 0x6F5B, 0x6FF3, + 0x6F6D, 0x6F82, 0x6F7C, 0x6F58, + 0x6F8E, 0x6F91, 0x6FC2, 0x6F66, + 0x6FB3, 0x6FA3, 0x6FA1, 0x6FA4, + 0x6FB9, 0x6FC6, 0x6FAA, 0x6FDF, + 0x6FD5, 0x6FEC, 0x6FD4, 0x6FD8, + 0x6FF1, 0x6FEE, 0x6FDB, 0x7009, /* DFC0 */ + 0x700B, 0x6FFA, 0x7011, 0x7001, + 0x700F, 0x6FFE, 0x701B, 0x701A, + 0x6F74, 0x701D, 0x7018, 0x701F, + 0x7030, 0x703E, 0x7032, 0x7051, + 0x7063, 0x7099, 0x7092, 0x70AF, + 0x70F1, 0x70AC, 0x70B8, 0x70B3, + 0x70AE, 0x70DF, 0x70CB, 0x70DD, + 0x70D9, 0x7109, 0x70FD, 0x711C, /* DFE0 */ + 0x7119, 0x7165, 0x7155, 0x7188, + 0x7166, 0x7162, 0x714C, 0x7156, + 0x716C, 0x718F, 0x71FB, 0x7184, + 0x7195, 0x71A8, 0x71AC, 0x71D7, + 0x71B9, 0x71BE, 0x71D2, 0x71C9, + 0x71D4, 0x71CE, 0x71E0, 0x71EC, + 0x71E7, 0x71F5, 0x71FC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x71F9, 0x71FF, 0x720D, /* E0A0 */ + 0x7210, 0x721B, 0x7228, 0x722D, + 0x722C, 0x7230, 0x7232, 0x723B, + 0x723C, 0x723F, 0x7240, 0x7246, + 0x724B, 0x7258, 0x7274, 0x727E, + 0x7282, 0x7281, 0x7287, 0x7292, + 0x7296, 0x72A2, 0x72A7, 0x72B9, + 0x72B2, 0x72C3, 0x72C6, 0x72C4, + 0x72CE, 0x72D2, 0x72E2, 0x72E0, /* E0C0 */ + 0x72E1, 0x72F9, 0x72F7, 0x500F, + 0x7317, 0x730A, 0x731C, 0x7316, + 0x731D, 0x7334, 0x732F, 0x7329, + 0x7325, 0x733E, 0x734E, 0x734F, + 0x9ED8, 0x7357, 0x736A, 0x7368, + 0x7370, 0x7378, 0x7375, 0x737B, + 0x737A, 0x73C8, 0x73B3, 0x73CE, + 0x73BB, 0x73C0, 0x73E5, 0x73EE, /* E0E0 */ + 0x73DE, 0x74A2, 0x7405, 0x746F, + 0x7425, 0x73F8, 0x7432, 0x743A, + 0x7455, 0x743F, 0x745F, 0x7459, + 0x7441, 0x745C, 0x7469, 0x7470, + 0x7463, 0x746A, 0x7476, 0x747E, + 0x748B, 0x749E, 0x74A7, 0x74CA, + 0x74CF, 0x74D4, 0x73F1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x74E0, 0x74E3, 0x74E7, /* E1A0 */ + 0x74E9, 0x74EE, 0x74F2, 0x74F0, + 0x74F1, 0x74F8, 0x74F7, 0x7504, + 0x7503, 0x7505, 0x750C, 0x750E, + 0x750D, 0x7515, 0x7513, 0x751E, + 0x7526, 0x752C, 0x753C, 0x7544, + 0x754D, 0x754A, 0x7549, 0x755B, + 0x7546, 0x755A, 0x7569, 0x7564, + 0x7567, 0x756B, 0x756D, 0x7578, /* E1C0 */ + 0x7576, 0x7586, 0x7587, 0x7574, + 0x758A, 0x7589, 0x7582, 0x7594, + 0x759A, 0x759D, 0x75A5, 0x75A3, + 0x75C2, 0x75B3, 0x75C3, 0x75B5, + 0x75BD, 0x75B8, 0x75BC, 0x75B1, + 0x75CD, 0x75CA, 0x75D2, 0x75D9, + 0x75E3, 0x75DE, 0x75FE, 0x75FF, + 0x75FC, 0x7601, 0x75F0, 0x75FA, /* E1E0 */ + 0x75F2, 0x75F3, 0x760B, 0x760D, + 0x7609, 0x761F, 0x7627, 0x7620, + 0x7621, 0x7622, 0x7624, 0x7634, + 0x7630, 0x763B, 0x7647, 0x7648, + 0x7646, 0x765C, 0x7658, 0x7661, + 0x7662, 0x7668, 0x7669, 0x766A, + 0x7667, 0x766C, 0x7670, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7672, 0x7676, 0x7678, /* E2A0 */ + 0x767C, 0x7680, 0x7683, 0x7688, + 0x768B, 0x768E, 0x7696, 0x7693, + 0x7699, 0x769A, 0x76B0, 0x76B4, + 0x76B8, 0x76B9, 0x76BA, 0x76C2, + 0x76CD, 0x76D6, 0x76D2, 0x76DE, + 0x76E1, 0x76E5, 0x76E7, 0x76EA, + 0x862F, 0x76FB, 0x7708, 0x7707, + 0x7704, 0x7729, 0x7724, 0x771E, /* E2C0 */ + 0x7725, 0x7726, 0x771B, 0x7737, + 0x7738, 0x7747, 0x775A, 0x7768, + 0x776B, 0x775B, 0x7765, 0x777F, + 0x777E, 0x7779, 0x778E, 0x778B, + 0x7791, 0x77A0, 0x779E, 0x77B0, + 0x77B6, 0x77B9, 0x77BF, 0x77BC, + 0x77BD, 0x77BB, 0x77C7, 0x77CD, + 0x77D7, 0x77DA, 0x77DC, 0x77E3, /* E2E0 */ + 0x77EE, 0x77FC, 0x780C, 0x7812, + 0x7926, 0x7820, 0x792A, 0x7845, + 0x788E, 0x7874, 0x7886, 0x787C, + 0x789A, 0x788C, 0x78A3, 0x78B5, + 0x78AA, 0x78AF, 0x78D1, 0x78C6, + 0x78CB, 0x78D4, 0x78BE, 0x78BC, + 0x78C5, 0x78CA, 0x78EC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x78E7, 0x78DA, 0x78FD, /* E3A0 */ + 0x78F4, 0x7907, 0x7912, 0x7911, + 0x7919, 0x792C, 0x792B, 0x7940, + 0x7960, 0x7957, 0x795F, 0x795A, + 0x7955, 0x7953, 0x797A, 0x797F, + 0x798A, 0x799D, 0x79A7, 0x9F4B, + 0x79AA, 0x79AE, 0x79B3, 0x79B9, + 0x79BA, 0x79C9, 0x79D5, 0x79E7, + 0x79EC, 0x79E1, 0x79E3, 0x7A08, /* E3C0 */ + 0x7A0D, 0x7A18, 0x7A19, 0x7A20, + 0x7A1F, 0x7980, 0x7A31, 0x7A3B, + 0x7A3E, 0x7A37, 0x7A43, 0x7A57, + 0x7A49, 0x7A61, 0x7A62, 0x7A69, + 0x9F9D, 0x7A70, 0x7A79, 0x7A7D, + 0x7A88, 0x7A97, 0x7A95, 0x7A98, + 0x7A96, 0x7AA9, 0x7AC8, 0x7AB0, + 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, /* E3E0 */ + 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, + 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, + 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, + 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, + 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, + 0x7B18, 0x7B19, 0x7B1E, 0x7B35, + 0x7B28, 0x7B36, 0x7B50, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7B7A, 0x7B04, 0x7B4D, /* E4A0 */ + 0x7B0B, 0x7B4C, 0x7B45, 0x7B75, + 0x7B65, 0x7B74, 0x7B67, 0x7B70, + 0x7B71, 0x7B6C, 0x7B6E, 0x7B9D, + 0x7B98, 0x7B9F, 0x7B8D, 0x7B9C, + 0x7B9A, 0x7B8B, 0x7B92, 0x7B8F, + 0x7B5D, 0x7B99, 0x7BCB, 0x7BC1, + 0x7BCC, 0x7BCF, 0x7BB4, 0x7BC6, + 0x7BDD, 0x7BE9, 0x7C11, 0x7C14, /* E4C0 */ + 0x7BE6, 0x7BE5, 0x7C60, 0x7C00, + 0x7C07, 0x7C13, 0x7BF3, 0x7BF7, + 0x7C17, 0x7C0D, 0x7BF6, 0x7C23, + 0x7C27, 0x7C2A, 0x7C1F, 0x7C37, + 0x7C2B, 0x7C3D, 0x7C4C, 0x7C43, + 0x7C54, 0x7C4F, 0x7C40, 0x7C50, + 0x7C58, 0x7C5F, 0x7C64, 0x7C56, + 0x7C65, 0x7C6C, 0x7C75, 0x7C83, /* E4E0 */ + 0x7C90, 0x7CA4, 0x7CAD, 0x7CA2, + 0x7CAB, 0x7CA1, 0x7CA8, 0x7CB3, + 0x7CB2, 0x7CB1, 0x7CAE, 0x7CB9, + 0x7CBD, 0x7CC0, 0x7CC5, 0x7CC2, + 0x7CD8, 0x7CD2, 0x7CDC, 0x7CE2, + 0x9B3B, 0x7CEF, 0x7CF2, 0x7CF4, + 0x7CF6, 0x7CFA, 0x7D06, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7D02, 0x7D1C, 0x7D15, /* E5A0 */ + 0x7D0A, 0x7D45, 0x7D4B, 0x7D2E, + 0x7D32, 0x7D3F, 0x7D35, 0x7D46, + 0x7D73, 0x7D56, 0x7D4E, 0x7D72, + 0x7D68, 0x7D6E, 0x7D4F, 0x7D63, + 0x7D93, 0x7D89, 0x7D5B, 0x7D8F, + 0x7D7D, 0x7D9B, 0x7DBA, 0x7DAE, + 0x7DA3, 0x7DB5, 0x7DC7, 0x7DBD, + 0x7DAB, 0x7E3D, 0x7DA2, 0x7DAF, /* E5C0 */ + 0x7DDC, 0x7DB8, 0x7D9F, 0x7DB0, + 0x7DD8, 0x7DDD, 0x7DE4, 0x7DDE, + 0x7DFB, 0x7DF2, 0x7DE1, 0x7E05, + 0x7E0A, 0x7E23, 0x7E21, 0x7E12, + 0x7E31, 0x7E1F, 0x7E09, 0x7E0B, + 0x7E22, 0x7E46, 0x7E66, 0x7E3B, + 0x7E35, 0x7E39, 0x7E43, 0x7E37, + 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, /* E5E0 */ + 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, + 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, + 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, + 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, + 0x7E8C, 0x7E92, 0x7E90, 0x7E93, + 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, + 0x7E9C, 0x7F38, 0x7F3A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7F45, 0x7F4C, 0x7F4D, /* E6A0 */ + 0x7F4E, 0x7F50, 0x7F51, 0x7F55, + 0x7F54, 0x7F58, 0x7F5F, 0x7F60, + 0x7F68, 0x7F69, 0x7F67, 0x7F78, + 0x7F82, 0x7F86, 0x7F83, 0x7F88, + 0x7F87, 0x7F8C, 0x7F94, 0x7F9E, + 0x7F9D, 0x7F9A, 0x7FA3, 0x7FAF, + 0x7FB2, 0x7FB9, 0x7FAE, 0x7FB6, + 0x7FB8, 0x8B71, 0x7FC5, 0x7FC6, /* E6C0 */ + 0x7FCA, 0x7FD5, 0x7FD4, 0x7FE1, + 0x7FE6, 0x7FE9, 0x7FF3, 0x7FF9, + 0x98DC, 0x8006, 0x8004, 0x800B, + 0x8012, 0x8018, 0x8019, 0x801C, + 0x8021, 0x8028, 0x803F, 0x803B, + 0x804A, 0x8046, 0x8052, 0x8058, + 0x805A, 0x805F, 0x8062, 0x8068, + 0x8073, 0x8072, 0x8070, 0x8076, /* E6E0 */ + 0x8079, 0x807D, 0x807F, 0x8084, + 0x8086, 0x8085, 0x809B, 0x8093, + 0x809A, 0x80AD, 0x5190, 0x80AC, + 0x80DB, 0x80E5, 0x80D9, 0x80DD, + 0x80C4, 0x80DA, 0x80D6, 0x8109, + 0x80EF, 0x80F1, 0x811B, 0x8129, + 0x8123, 0x812F, 0x814B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x968B, 0x8146, 0x813E, /* E7A0 */ + 0x8153, 0x8151, 0x80FC, 0x8171, + 0x816E, 0x8165, 0x8166, 0x8174, + 0x8183, 0x8188, 0x818A, 0x8180, + 0x8182, 0x81A0, 0x8195, 0x81A4, + 0x81A3, 0x815F, 0x8193, 0x81A9, + 0x81B0, 0x81B5, 0x81BE, 0x81B8, + 0x81BD, 0x81C0, 0x81C2, 0x81BA, + 0x81C9, 0x81CD, 0x81D1, 0x81D9, /* E7C0 */ + 0x81D8, 0x81C8, 0x81DA, 0x81DF, + 0x81E0, 0x81E7, 0x81FA, 0x81FB, + 0x81FE, 0x8201, 0x8202, 0x8205, + 0x8207, 0x820A, 0x820D, 0x8210, + 0x8216, 0x8229, 0x822B, 0x8238, + 0x8233, 0x8240, 0x8259, 0x8258, + 0x825D, 0x825A, 0x825F, 0x8264, + 0x8262, 0x8268, 0x826A, 0x826B, /* E7E0 */ + 0x822E, 0x8271, 0x8277, 0x8278, + 0x827E, 0x828D, 0x8292, 0x82AB, + 0x829F, 0x82BB, 0x82AC, 0x82E1, + 0x82E3, 0x82DF, 0x82D2, 0x82F4, + 0x82F3, 0x82FA, 0x8393, 0x8303, + 0x82FB, 0x82F9, 0x82DE, 0x8306, + 0x82DC, 0x8309, 0x82D9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8335, 0x8334, 0x8316, /* E8A0 */ + 0x8332, 0x8331, 0x8340, 0x8339, + 0x8350, 0x8345, 0x832F, 0x832B, + 0x8317, 0x8318, 0x8385, 0x839A, + 0x83AA, 0x839F, 0x83A2, 0x8396, + 0x8323, 0x838E, 0x8387, 0x838A, + 0x837C, 0x83B5, 0x8373, 0x8375, + 0x83A0, 0x8389, 0x83A8, 0x83F4, + 0x8413, 0x83EB, 0x83CE, 0x83FD, /* E8C0 */ + 0x8403, 0x83D8, 0x840B, 0x83C1, + 0x83F7, 0x8407, 0x83E0, 0x83F2, + 0x840D, 0x8422, 0x8420, 0x83BD, + 0x8438, 0x8506, 0x83FB, 0x846D, + 0x842A, 0x843C, 0x855A, 0x8484, + 0x8477, 0x846B, 0x84AD, 0x846E, + 0x8482, 0x8469, 0x8446, 0x842C, + 0x846F, 0x8479, 0x8435, 0x84CA, /* E8E0 */ + 0x8462, 0x84B9, 0x84BF, 0x849F, + 0x84D9, 0x84CD, 0x84BB, 0x84DA, + 0x84D0, 0x84C1, 0x84C6, 0x84D6, + 0x84A1, 0x8521, 0x84FF, 0x84F4, + 0x8517, 0x8518, 0x852C, 0x851F, + 0x8515, 0x8514, 0x84FC, 0x8540, + 0x8563, 0x8558, 0x8548, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8541, 0x8602, 0x854B, /* E9A0 */ + 0x8555, 0x8580, 0x85A4, 0x8588, + 0x8591, 0x858A, 0x85A8, 0x856D, + 0x8594, 0x859B, 0x85EA, 0x8587, + 0x859C, 0x8577, 0x857E, 0x8590, + 0x85C9, 0x85BA, 0x85CF, 0x85B9, + 0x85D0, 0x85D5, 0x85DD, 0x85E5, + 0x85DC, 0x85F9, 0x860A, 0x8613, + 0x860B, 0x85FE, 0x85FA, 0x8606, /* E9C0 */ + 0x8622, 0x861A, 0x8630, 0x863F, + 0x864D, 0x4E55, 0x8654, 0x865F, + 0x8667, 0x8671, 0x8693, 0x86A3, + 0x86A9, 0x86AA, 0x868B, 0x868C, + 0x86B6, 0x86AF, 0x86C4, 0x86C6, + 0x86B0, 0x86C9, 0x8823, 0x86AB, + 0x86D4, 0x86DE, 0x86E9, 0x86EC, + 0x86DF, 0x86DB, 0x86EF, 0x8712, /* E9E0 */ + 0x8706, 0x8708, 0x8700, 0x8703, + 0x86FB, 0x8711, 0x8709, 0x870D, + 0x86F9, 0x870A, 0x8734, 0x873F, + 0x8737, 0x873B, 0x8725, 0x8729, + 0x871A, 0x8760, 0x875F, 0x8778, + 0x874C, 0x874E, 0x8774, 0x8757, + 0x8768, 0x876E, 0x8759, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8753, 0x8763, 0x876A, /* EAA0 */ + 0x8805, 0x87A2, 0x879F, 0x8782, + 0x87AF, 0x87CB, 0x87BD, 0x87C0, + 0x87D0, 0x96D6, 0x87AB, 0x87C4, + 0x87B3, 0x87C7, 0x87C6, 0x87BB, + 0x87EF, 0x87F2, 0x87E0, 0x880F, + 0x880D, 0x87FE, 0x87F6, 0x87F7, + 0x880E, 0x87D2, 0x8811, 0x8816, + 0x8815, 0x8822, 0x8821, 0x8831, /* EAC0 */ + 0x8836, 0x8839, 0x8827, 0x883B, + 0x8844, 0x8842, 0x8852, 0x8859, + 0x885E, 0x8862, 0x886B, 0x8881, + 0x887E, 0x889E, 0x8875, 0x887D, + 0x88B5, 0x8872, 0x8882, 0x8897, + 0x8892, 0x88AE, 0x8899, 0x88A2, + 0x888D, 0x88A4, 0x88B0, 0x88BF, + 0x88B1, 0x88C3, 0x88C4, 0x88D4, /* EAE0 */ + 0x88D8, 0x88D9, 0x88DD, 0x88F9, + 0x8902, 0x88FC, 0x88F4, 0x88E8, + 0x88F2, 0x8904, 0x890C, 0x890A, + 0x8913, 0x8943, 0x891E, 0x8925, + 0x892A, 0x892B, 0x8941, 0x8944, + 0x893B, 0x8936, 0x8938, 0x894C, + 0x891D, 0x8960, 0x895E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8966, 0x8964, 0x896D, /* EBA0 */ + 0x896A, 0x896F, 0x8974, 0x8977, + 0x897E, 0x8983, 0x8988, 0x898A, + 0x8993, 0x8998, 0x89A1, 0x89A9, + 0x89A6, 0x89AC, 0x89AF, 0x89B2, + 0x89BA, 0x89BD, 0x89BF, 0x89C0, + 0x89DA, 0x89DC, 0x89DD, 0x89E7, + 0x89F4, 0x89F8, 0x8A03, 0x8A16, + 0x8A10, 0x8A0C, 0x8A1B, 0x8A1D, /* EBC0 */ + 0x8A25, 0x8A36, 0x8A41, 0x8A5B, + 0x8A52, 0x8A46, 0x8A48, 0x8A7C, + 0x8A6D, 0x8A6C, 0x8A62, 0x8A85, + 0x8A82, 0x8A84, 0x8AA8, 0x8AA1, + 0x8A91, 0x8AA5, 0x8AA6, 0x8A9A, + 0x8AA3, 0x8AC4, 0x8ACD, 0x8AC2, + 0x8ADA, 0x8AEB, 0x8AF3, 0x8AE7, + 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, /* EBE0 */ + 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, + 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, + 0x8B16, 0x8B10, 0x8B17, 0x8B20, + 0x8B33, 0x97AB, 0x8B26, 0x8B2B, + 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, + 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, + 0x8B5B, 0x8B5A, 0x8B6B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8B5F, 0x8B6C, 0x8B6F, /* ECA0 */ + 0x8B74, 0x8B7D, 0x8B80, 0x8B8C, + 0x8B8E, 0x8B92, 0x8B93, 0x8B96, + 0x8B99, 0x8B9A, 0x8C3A, 0x8C41, + 0x8C3F, 0x8C48, 0x8C4C, 0x8C4E, + 0x8C50, 0x8C55, 0x8C62, 0x8C6C, + 0x8C78, 0x8C7A, 0x8C82, 0x8C89, + 0x8C85, 0x8C8A, 0x8C8D, 0x8C8E, + 0x8C94, 0x8C7C, 0x8C98, 0x621D, /* ECC0 */ + 0x8CAD, 0x8CAA, 0x8CBD, 0x8CB2, + 0x8CB3, 0x8CAE, 0x8CB6, 0x8CC8, + 0x8CC1, 0x8CE4, 0x8CE3, 0x8CDA, + 0x8CFD, 0x8CFA, 0x8CFB, 0x8D04, + 0x8D05, 0x8D0A, 0x8D07, 0x8D0F, + 0x8D0D, 0x8D10, 0x9F4E, 0x8D13, + 0x8CCD, 0x8D14, 0x8D16, 0x8D67, + 0x8D6D, 0x8D71, 0x8D73, 0x8D81, /* ECE0 */ + 0x8D99, 0x8DC2, 0x8DBE, 0x8DBA, + 0x8DCF, 0x8DDA, 0x8DD6, 0x8DCC, + 0x8DDB, 0x8DCB, 0x8DEA, 0x8DEB, + 0x8DDF, 0x8DE3, 0x8DFC, 0x8E08, + 0x8E09, 0x8DFF, 0x8E1D, 0x8E1E, + 0x8E10, 0x8E1F, 0x8E42, 0x8E35, + 0x8E30, 0x8E34, 0x8E4A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8E47, 0x8E49, 0x8E4C, /* EDA0 */ + 0x8E50, 0x8E48, 0x8E59, 0x8E64, + 0x8E60, 0x8E2A, 0x8E63, 0x8E55, + 0x8E76, 0x8E72, 0x8E7C, 0x8E81, + 0x8E87, 0x8E85, 0x8E84, 0x8E8B, + 0x8E8A, 0x8E93, 0x8E91, 0x8E94, + 0x8E99, 0x8EAA, 0x8EA1, 0x8EAC, + 0x8EB0, 0x8EC6, 0x8EB1, 0x8EBE, + 0x8EC5, 0x8EC8, 0x8ECB, 0x8EDB, /* EDC0 */ + 0x8EE3, 0x8EFC, 0x8EFB, 0x8EEB, + 0x8EFE, 0x8F0A, 0x8F05, 0x8F15, + 0x8F12, 0x8F19, 0x8F13, 0x8F1C, + 0x8F1F, 0x8F1B, 0x8F0C, 0x8F26, + 0x8F33, 0x8F3B, 0x8F39, 0x8F45, + 0x8F42, 0x8F3E, 0x8F4C, 0x8F49, + 0x8F46, 0x8F4E, 0x8F57, 0x8F5C, + 0x8F62, 0x8F63, 0x8F64, 0x8F9C, /* EDE0 */ + 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, + 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, + 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, + 0x9005, 0x8FF9, 0x8FFA, 0x9011, + 0x9015, 0x9021, 0x900D, 0x901E, + 0x9016, 0x900B, 0x9027, 0x9036, + 0x9035, 0x9039, 0x8FF8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x904F, 0x9050, 0x9051, /* EEA0 */ + 0x9052, 0x900E, 0x9049, 0x903E, + 0x9056, 0x9058, 0x905E, 0x9068, + 0x906F, 0x9076, 0x96A8, 0x9072, + 0x9082, 0x907D, 0x9081, 0x9080, + 0x908A, 0x9089, 0x908F, 0x90A8, + 0x90AF, 0x90B1, 0x90B5, 0x90E2, + 0x90E4, 0x6248, 0x90DB, 0x9102, + 0x9112, 0x9119, 0x9132, 0x9130, /* EEC0 */ + 0x914A, 0x9156, 0x9158, 0x9163, + 0x9165, 0x9169, 0x9173, 0x9172, + 0x918B, 0x9189, 0x9182, 0x91A2, + 0x91AB, 0x91AF, 0x91AA, 0x91B5, + 0x91B4, 0x91BA, 0x91C0, 0x91C1, + 0x91C9, 0x91CB, 0x91D0, 0x91D6, + 0x91DF, 0x91E1, 0x91DB, 0x91FC, + 0x91F5, 0x91F6, 0x921E, 0x91FF, /* EEE0 */ + 0x9214, 0x922C, 0x9215, 0x9211, + 0x925E, 0x9257, 0x9245, 0x9249, + 0x9264, 0x9248, 0x9295, 0x923F, + 0x924B, 0x9250, 0x929C, 0x9296, + 0x9293, 0x929B, 0x925A, 0x92CF, + 0x92B9, 0x92B7, 0x92E9, 0x930F, + 0x92FA, 0x9344, 0x932E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9319, 0x9322, 0x931A, /* EFA0 */ + 0x9323, 0x933A, 0x9335, 0x933B, + 0x935C, 0x9360, 0x937C, 0x936E, + 0x9356, 0x93B0, 0x93AC, 0x93AD, + 0x9394, 0x93B9, 0x93D6, 0x93D7, + 0x93E8, 0x93E5, 0x93D8, 0x93C3, + 0x93DD, 0x93D0, 0x93C8, 0x93E4, + 0x941A, 0x9414, 0x9413, 0x9403, + 0x9407, 0x9410, 0x9436, 0x942B, /* EFC0 */ + 0x9435, 0x9421, 0x943A, 0x9441, + 0x9452, 0x9444, 0x945B, 0x9460, + 0x9462, 0x945E, 0x946A, 0x9229, + 0x9470, 0x9475, 0x9477, 0x947D, + 0x945A, 0x947C, 0x947E, 0x9481, + 0x947F, 0x9582, 0x9587, 0x958A, + 0x9594, 0x9596, 0x9598, 0x9599, + 0x95A0, 0x95A8, 0x95A7, 0x95AD, /* EFE0 */ + 0x95BC, 0x95BB, 0x95B9, 0x95BE, + 0x95CA, 0x6FF6, 0x95C3, 0x95CD, + 0x95CC, 0x95D5, 0x95D4, 0x95D6, + 0x95DC, 0x95E1, 0x95E5, 0x95E2, + 0x9621, 0x9628, 0x962E, 0x962F, + 0x9642, 0x964C, 0x964F, 0x964B, + 0x9677, 0x965C, 0x965E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x965D, 0x965F, 0x9666, /* F0A0 */ + 0x9672, 0x966C, 0x968D, 0x9698, + 0x9695, 0x9697, 0x96AA, 0x96A7, + 0x96B1, 0x96B2, 0x96B0, 0x96B4, + 0x96B6, 0x96B8, 0x96B9, 0x96CE, + 0x96CB, 0x96C9, 0x96CD, 0x894D, + 0x96DC, 0x970D, 0x96D5, 0x96F9, + 0x9704, 0x9706, 0x9708, 0x9713, + 0x970E, 0x9711, 0x970F, 0x9716, /* F0C0 */ + 0x9719, 0x9724, 0x972A, 0x9730, + 0x9739, 0x973D, 0x973E, 0x9744, + 0x9746, 0x9748, 0x9742, 0x9749, + 0x975C, 0x9760, 0x9764, 0x9766, + 0x9768, 0x52D2, 0x976B, 0x9771, + 0x9779, 0x9785, 0x977C, 0x9781, + 0x977A, 0x9786, 0x978B, 0x978F, + 0x9790, 0x979C, 0x97A8, 0x97A6, /* F0E0 */ + 0x97A3, 0x97B3, 0x97B4, 0x97C3, + 0x97C6, 0x97C8, 0x97CB, 0x97DC, + 0x97ED, 0x9F4F, 0x97F2, 0x7ADF, + 0x97F6, 0x97F5, 0x980F, 0x980C, + 0x9838, 0x9824, 0x9821, 0x9837, + 0x983D, 0x9846, 0x984F, 0x984B, + 0x986B, 0x986F, 0x9870, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9871, 0x9874, 0x9873, /* F1A0 */ + 0x98AA, 0x98AF, 0x98B1, 0x98B6, + 0x98C4, 0x98C3, 0x98C6, 0x98E9, + 0x98EB, 0x9903, 0x9909, 0x9912, + 0x9914, 0x9918, 0x9921, 0x991D, + 0x991E, 0x9924, 0x9920, 0x992C, + 0x992E, 0x993D, 0x993E, 0x9942, + 0x9949, 0x9945, 0x9950, 0x994B, + 0x9951, 0x9952, 0x994C, 0x9955, /* F1C0 */ + 0x9997, 0x9998, 0x99A5, 0x99AD, + 0x99AE, 0x99BC, 0x99DF, 0x99DB, + 0x99DD, 0x99D8, 0x99D1, 0x99ED, + 0x99EE, 0x99F1, 0x99F2, 0x99FB, + 0x99F8, 0x9A01, 0x9A0F, 0x9A05, + 0x99E2, 0x9A19, 0x9A2B, 0x9A37, + 0x9A45, 0x9A42, 0x9A40, 0x9A43, + 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, /* F1E0 */ + 0x9A57, 0x9A5F, 0x9A62, 0x9A65, + 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, + 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, + 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, + 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, + 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, + 0x9AF4, 0x9AF1, 0x9AF7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9AFB, 0x9B06, 0x9B18, /* F2A0 */ + 0x9B1A, 0x9B1F, 0x9B22, 0x9B23, + 0x9B25, 0x9B27, 0x9B28, 0x9B29, + 0x9B2A, 0x9B2E, 0x9B2F, 0x9B32, + 0x9B44, 0x9B43, 0x9B4F, 0x9B4D, + 0x9B4E, 0x9B51, 0x9B58, 0x9B74, + 0x9B93, 0x9B83, 0x9B91, 0x9B96, + 0x9B97, 0x9B9F, 0x9BA0, 0x9BA8, + 0x9BB4, 0x9BC0, 0x9BCA, 0x9BB9, /* F2C0 */ + 0x9BC6, 0x9BCF, 0x9BD1, 0x9BD2, + 0x9BE3, 0x9BE2, 0x9BE4, 0x9BD4, + 0x9BE1, 0x9C3A, 0x9BF2, 0x9BF1, + 0x9BF0, 0x9C15, 0x9C14, 0x9C09, + 0x9C13, 0x9C0C, 0x9C06, 0x9C08, + 0x9C12, 0x9C0A, 0x9C04, 0x9C2E, + 0x9C1B, 0x9C25, 0x9C24, 0x9C21, + 0x9C30, 0x9C47, 0x9C32, 0x9C46, /* F2E0 */ + 0x9C3E, 0x9C5A, 0x9C60, 0x9C67, + 0x9C76, 0x9C78, 0x9CE7, 0x9CEC, + 0x9CF0, 0x9D09, 0x9D08, 0x9CEB, + 0x9D03, 0x9D06, 0x9D2A, 0x9D26, + 0x9DAF, 0x9D23, 0x9D1F, 0x9D44, + 0x9D15, 0x9D12, 0x9D41, 0x9D3F, + 0x9D3E, 0x9D46, 0x9D48, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9D5D, 0x9D5E, 0x9D64, /* F3A0 */ + 0x9D51, 0x9D50, 0x9D59, 0x9D72, + 0x9D89, 0x9D87, 0x9DAB, 0x9D6F, + 0x9D7A, 0x9D9A, 0x9DA4, 0x9DA9, + 0x9DB2, 0x9DC4, 0x9DC1, 0x9DBB, + 0x9DB8, 0x9DBA, 0x9DC6, 0x9DCF, + 0x9DC2, 0x9DD9, 0x9DD3, 0x9DF8, + 0x9DE6, 0x9DED, 0x9DEF, 0x9DFD, + 0x9E1A, 0x9E1B, 0x9E1E, 0x9E75, /* F3C0 */ + 0x9E79, 0x9E7D, 0x9E81, 0x9E88, + 0x9E8B, 0x9E8C, 0x9E92, 0x9E95, + 0x9E91, 0x9E9D, 0x9EA5, 0x9EA9, + 0x9EB8, 0x9EAA, 0x9EAD, 0x9761, + 0x9ECC, 0x9ECE, 0x9ECF, 0x9ED0, + 0x9ED4, 0x9EDC, 0x9EDE, 0x9EDD, + 0x9EE0, 0x9EE5, 0x9EE8, 0x9EEF, + 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, /* F3E0 */ + 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, + 0x9F08, 0x76B7, 0x9F15, 0x9F21, + 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, + 0x9F54, 0x9F63, 0x9F5F, 0x9F60, + 0x9F61, 0x9F66, 0x9F67, 0x9F6C, + 0x9F6A, 0x9F77, 0x9F72, 0x9F76, + 0x9F95, 0x9F9C, 0x9FA0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x582F, 0x69C7, 0x9059, /* F4A0 */ + 0x7464, 0x51DC, 0x7199, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE000, 0xE001, 0xE002, /* F5A0 */ + 0xE003, 0xE004, 0xE005, 0xE006, + 0xE007, 0xE008, 0xE009, 0xE00A, + 0xE00B, 0xE00C, 0xE00D, 0xE00E, + 0xE00F, 0xE010, 0xE011, 0xE012, + 0xE013, 0xE014, 0xE015, 0xE016, + 0xE017, 0xE018, 0xE019, 0xE01A, + 0xE01B, 0xE01C, 0xE01D, 0xE01E, + 0xE01F, 0xE020, 0xE021, 0xE022, /* F5C0 */ + 0xE023, 0xE024, 0xE025, 0xE026, + 0xE027, 0xE028, 0xE029, 0xE02A, + 0xE02B, 0xE02C, 0xE02D, 0xE02E, + 0xE02F, 0xE030, 0xE031, 0xE032, + 0xE033, 0xE034, 0xE035, 0xE036, + 0xE037, 0xE038, 0xE039, 0xE03A, + 0xE03B, 0xE03C, 0xE03D, 0xE03E, + 0xE03F, 0xE040, 0xE041, 0xE042, /* F5E0 */ + 0xE043, 0xE044, 0xE045, 0xE046, + 0xE047, 0xE048, 0xE049, 0xE04A, + 0xE04B, 0xE04C, 0xE04D, 0xE04E, + 0xE04F, 0xE050, 0xE051, 0xE052, + 0xE053, 0xE054, 0xE055, 0xE056, + 0xE057, 0xE058, 0xE059, 0xE05A, + 0xE05B, 0xE05C, 0xE05D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE05E, 0xE05F, 0xE060, /* F6A0 */ + 0xE061, 0xE062, 0xE063, 0xE064, + 0xE065, 0xE066, 0xE067, 0xE068, + 0xE069, 0xE06A, 0xE06B, 0xE06C, + 0xE06D, 0xE06E, 0xE06F, 0xE070, + 0xE071, 0xE072, 0xE073, 0xE074, + 0xE075, 0xE076, 0xE077, 0xE078, + 0xE079, 0xE07A, 0xE07B, 0xE07C, + 0xE07D, 0xE07E, 0xE07F, 0xE080, /* F6C0 */ + 0xE081, 0xE082, 0xE083, 0xE084, + 0xE085, 0xE086, 0xE087, 0xE088, + 0xE089, 0xE08A, 0xE08B, 0xE08C, + 0xE08D, 0xE08E, 0xE08F, 0xE090, + 0xE091, 0xE092, 0xE093, 0xE094, + 0xE095, 0xE096, 0xE097, 0xE098, + 0xE099, 0xE09A, 0xE09B, 0xE09C, + 0xE09D, 0xE09E, 0xE09F, 0xE0A0, /* F6E0 */ + 0xE0A1, 0xE0A2, 0xE0A3, 0xE0A4, + 0xE0A5, 0xE0A6, 0xE0A7, 0xE0A8, + 0xE0A9, 0xE0AA, 0xE0AB, 0xE0AC, + 0xE0AD, 0xE0AE, 0xE0AF, 0xE0B0, + 0xE0B1, 0xE0B2, 0xE0B3, 0xE0B4, + 0xE0B5, 0xE0B6, 0xE0B7, 0xE0B8, + 0xE0B9, 0xE0BA, 0xE0BB, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE0BC, 0xE0BD, 0xE0BE, /* F7A0 */ + 0xE0BF, 0xE0C0, 0xE0C1, 0xE0C2, + 0xE0C3, 0xE0C4, 0xE0C5, 0xE0C6, + 0xE0C7, 0xE0C8, 0xE0C9, 0xE0CA, + 0xE0CB, 0xE0CC, 0xE0CD, 0xE0CE, + 0xE0CF, 0xE0D0, 0xE0D1, 0xE0D2, + 0xE0D3, 0xE0D4, 0xE0D5, 0xE0D6, + 0xE0D7, 0xE0D8, 0xE0D9, 0xE0DA, + 0xE0DB, 0xE0DC, 0xE0DD, 0xE0DE, /* F7C0 */ + 0xE0DF, 0xE0E0, 0xE0E1, 0xE0E2, + 0xE0E3, 0xE0E4, 0xE0E5, 0xE0E6, + 0xE0E7, 0xE0E8, 0xE0E9, 0xE0EA, + 0xE0EB, 0xE0EC, 0xE0ED, 0xE0EE, + 0xE0EF, 0xE0F0, 0xE0F1, 0xE0F2, + 0xE0F3, 0xE0F4, 0xE0F5, 0xE0F6, + 0xE0F7, 0xE0F8, 0xE0F9, 0xE0FA, + 0xE0FB, 0xE0FC, 0xE0FD, 0xE0FE, /* F7E0 */ + 0xE0FF, 0xE100, 0xE101, 0xE102, + 0xE103, 0xE104, 0xE105, 0xE106, + 0xE107, 0xE108, 0xE109, 0xE10A, + 0xE10B, 0xE10C, 0xE10D, 0xE10E, + 0xE10F, 0xE110, 0xE111, 0xE112, + 0xE113, 0xE114, 0xE115, 0xE116, + 0xE117, 0xE118, 0xE119, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE11A, 0xE11B, 0xE11C, /* F8A0 */ + 0xE11D, 0xE11E, 0xE11F, 0xE120, + 0xE121, 0xE122, 0xE123, 0xE124, + 0xE125, 0xE126, 0xE127, 0xE128, + 0xE129, 0xE12A, 0xE12B, 0xE12C, + 0xE12D, 0xE12E, 0xE12F, 0xE130, + 0xE131, 0xE132, 0xE133, 0xE134, + 0xE135, 0xE136, 0xE137, 0xE138, + 0xE139, 0xE13A, 0xE13B, 0xE13C, /* F8C0 */ + 0xE13D, 0xE13E, 0xE13F, 0xE140, + 0xE141, 0xE142, 0xE143, 0xE144, + 0xE145, 0xE146, 0xE147, 0xE148, + 0xE149, 0xE14A, 0xE14B, 0xE14C, + 0xE14D, 0xE14E, 0xE14F, 0xE150, + 0xE151, 0xE152, 0xE153, 0xE154, + 0xE155, 0xE156, 0xE157, 0xE158, + 0xE159, 0xE15A, 0xE15B, 0xE15C, /* F8E0 */ + 0xE15D, 0xE15E, 0xE15F, 0xE160, + 0xE161, 0xE162, 0xE163, 0xE164, + 0xE165, 0xE166, 0xE167, 0xE168, + 0xE169, 0xE16A, 0xE16B, 0xE16C, + 0xE16D, 0xE16E, 0xE16F, 0xE170, + 0xE171, 0xE172, 0xE173, 0xE174, + 0xE175, 0xE176, 0xE177, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE178, 0xE179, 0xE17A, /* F9A0 */ + 0xE17B, 0xE17C, 0xE17D, 0xE17E, + 0xE17F, 0xE180, 0xE181, 0xE182, + 0xE183, 0xE184, 0xE185, 0xE186, + 0xE187, 0xE188, 0xE189, 0xE18A, + 0xE18B, 0xE18C, 0xE18D, 0xE18E, + 0xE18F, 0xE190, 0xE191, 0xE192, + 0xE193, 0xE194, 0xE195, 0xE196, + 0xE197, 0xE198, 0xE199, 0xE19A, /* F9C0 */ + 0xE19B, 0xE19C, 0xE19D, 0xE19E, + 0xE19F, 0xE1A0, 0xE1A1, 0xE1A2, + 0xE1A3, 0xE1A4, 0xE1A5, 0xE1A6, + 0xE1A7, 0xE1A8, 0xE1A9, 0xE1AA, + 0xE1AB, 0xE1AC, 0xE1AD, 0xE1AE, + 0xE1AF, 0xE1B0, 0xE1B1, 0xE1B2, + 0xE1B3, 0xE1B4, 0xE1B5, 0xE1B6, + 0xE1B7, 0xE1B8, 0xE1B9, 0xE1BA, /* F9E0 */ + 0xE1BB, 0xE1BC, 0xE1BD, 0xE1BE, + 0xE1BF, 0xE1C0, 0xE1C1, 0xE1C2, + 0xE1C3, 0xE1C4, 0xE1C5, 0xE1C6, + 0xE1C7, 0xE1C8, 0xE1C9, 0xE1CA, + 0xE1CB, 0xE1CC, 0xE1CD, 0xE1CE, + 0xE1CF, 0xE1D0, 0xE1D1, 0xE1D2, + 0xE1D3, 0xE1D4, 0xE1D5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE1D6, 0xE1D7, 0xE1D8, /* FAA0 */ + 0xE1D9, 0xE1DA, 0xE1DB, 0xE1DC, + 0xE1DD, 0xE1DE, 0xE1DF, 0xE1E0, + 0xE1E1, 0xE1E2, 0xE1E3, 0xE1E4, + 0xE1E5, 0xE1E6, 0xE1E7, 0xE1E8, + 0xE1E9, 0xE1EA, 0xE1EB, 0xE1EC, + 0xE1ED, 0xE1EE, 0xE1EF, 0xE1F0, + 0xE1F1, 0xE1F2, 0xE1F3, 0xE1F4, + 0xE1F5, 0xE1F6, 0xE1F7, 0xE1F8, /* FAC0 */ + 0xE1F9, 0xE1FA, 0xE1FB, 0xE1FC, + 0xE1FD, 0xE1FE, 0xE1FF, 0xE200, + 0xE201, 0xE202, 0xE203, 0xE204, + 0xE205, 0xE206, 0xE207, 0xE208, + 0xE209, 0xE20A, 0xE20B, 0xE20C, + 0xE20D, 0xE20E, 0xE20F, 0xE210, + 0xE211, 0xE212, 0xE213, 0xE214, + 0xE215, 0xE216, 0xE217, 0xE218, /* FAE0 */ + 0xE219, 0xE21A, 0xE21B, 0xE21C, + 0xE21D, 0xE21E, 0xE21F, 0xE220, + 0xE221, 0xE222, 0xE223, 0xE224, + 0xE225, 0xE226, 0xE227, 0xE228, + 0xE229, 0xE22A, 0xE22B, 0xE22C, + 0xE22D, 0xE22E, 0xE22F, 0xE230, + 0xE231, 0xE232, 0xE233, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE234, 0xE235, 0xE236, /* FBA0 */ + 0xE237, 0xE238, 0xE239, 0xE23A, + 0xE23B, 0xE23C, 0xE23D, 0xE23E, + 0xE23F, 0xE240, 0xE241, 0xE242, + 0xE243, 0xE244, 0xE245, 0xE246, + 0xE247, 0xE248, 0xE249, 0xE24A, + 0xE24B, 0xE24C, 0xE24D, 0xE24E, + 0xE24F, 0xE250, 0xE251, 0xE252, + 0xE253, 0xE254, 0xE255, 0xE256, /* FBC0 */ + 0xE257, 0xE258, 0xE259, 0xE25A, + 0xE25B, 0xE25C, 0xE25D, 0xE25E, + 0xE25F, 0xE260, 0xE261, 0xE262, + 0xE263, 0xE264, 0xE265, 0xE266, + 0xE267, 0xE268, 0xE269, 0xE26A, + 0xE26B, 0xE26C, 0xE26D, 0xE26E, + 0xE26F, 0xE270, 0xE271, 0xE272, + 0xE273, 0xE274, 0xE275, 0xE276, /* FBE0 */ + 0xE277, 0xE278, 0xE279, 0xE27A, + 0xE27B, 0xE27C, 0xE27D, 0xE27E, + 0xE27F, 0xE280, 0xE281, 0xE282, + 0xE283, 0xE284, 0xE285, 0xE286, + 0xE287, 0xE288, 0xE289, 0xE28A, + 0xE28B, 0xE28C, 0xE28D, 0xE28E, + 0xE28F, 0xE290, 0xE291, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE292, 0xE293, 0xE294, /* FCA0 */ + 0xE295, 0xE296, 0xE297, 0xE298, + 0xE299, 0xE29A, 0xE29B, 0xE29C, + 0xE29D, 0xE29E, 0xE29F, 0xE2A0, + 0xE2A1, 0xE2A2, 0xE2A3, 0xE2A4, + 0xE2A5, 0xE2A6, 0xE2A7, 0xE2A8, + 0xE2A9, 0xE2AA, 0xE2AB, 0xE2AC, + 0xE2AD, 0xE2AE, 0xE2AF, 0xE2B0, + 0xE2B1, 0xE2B2, 0xE2B3, 0xE2B4, /* FCC0 */ + 0xE2B5, 0xE2B6, 0xE2B7, 0xE2B8, + 0xE2B9, 0xE2BA, 0xE2BB, 0xE2BC, + 0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, + 0xE2C1, 0xE2C2, 0xE2C3, 0xE2C4, + 0xE2C5, 0xE2C6, 0xE2C7, 0xE2C8, + 0xE2C9, 0xE2CA, 0xE2CB, 0xE2CC, + 0xE2CD, 0xE2CE, 0xE2CF, 0xE2D0, + 0xE2D1, 0xE2D2, 0xE2D3, 0xE2D4, /* FCE0 */ + 0xE2D5, 0xE2D6, 0xE2D7, 0xE2D8, + 0xE2D9, 0xE2DA, 0xE2DB, 0xE2DC, + 0xE2DD, 0xE2DE, 0xE2DF, 0xE2E0, + 0xE2E1, 0xE2E2, 0xE2E3, 0xE2E4, + 0xE2E5, 0xE2E6, 0xE2E7, 0xE2E8, + 0xE2E9, 0xE2EA, 0xE2EB, 0xE2EC, + 0xE2ED, 0xE2EE, 0xE2EF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE2F0, 0xE2F1, 0xE2F2, /* FDA0 */ + 0xE2F3, 0xE2F4, 0xE2F5, 0xE2F6, + 0xE2F7, 0xE2F8, 0xE2F9, 0xE2FA, + 0xE2FB, 0xE2FC, 0xE2FD, 0xE2FE, + 0xE2FF, 0xE300, 0xE301, 0xE302, + 0xE303, 0xE304, 0xE305, 0xE306, + 0xE307, 0xE308, 0xE309, 0xE30A, + 0xE30B, 0xE30C, 0xE30D, 0xE30E, + 0xE30F, 0xE310, 0xE311, 0xE312, /* FDC0 */ + 0xE313, 0xE314, 0xE315, 0xE316, + 0xE317, 0xE318, 0xE319, 0xE31A, + 0xE31B, 0xE31C, 0xE31D, 0xE31E, + 0xE31F, 0xE320, 0xE321, 0xE322, + 0xE323, 0xE324, 0xE325, 0xE326, + 0xE327, 0xE328, 0xE329, 0xE32A, + 0xE32B, 0xE32C, 0xE32D, 0xE32E, + 0xE32F, 0xE330, 0xE331, 0xE332, /* FDE0 */ + 0xE333, 0xE334, 0xE335, 0xE336, + 0xE337, 0xE338, 0xE339, 0xE33A, + 0xE33B, 0xE33C, 0xE33D, 0xE33E, + 0xE33F, 0xE340, 0xE341, 0xE342, + 0xE343, 0xE344, 0xE345, 0xE346, + 0xE347, 0xE348, 0xE349, 0xE34A, + 0xE34B, 0xE34C, 0xE34D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE34E, 0xE34F, 0xE350, /* FEA0 */ + 0xE351, 0xE352, 0xE353, 0xE354, + 0xE355, 0xE356, 0xE357, 0xE358, + 0xE359, 0xE35A, 0xE35B, 0xE35C, + 0xE35D, 0xE35E, 0xE35F, 0xE360, + 0xE361, 0xE362, 0xE363, 0xE364, + 0xE365, 0xE366, 0xE367, 0xE368, + 0xE369, 0xE36A, 0xE36B, 0xE36C, + 0xE36D, 0xE36E, 0xE36F, 0xE370, /* FEC0 */ + 0xE371, 0xE372, 0xE373, 0xE374, + 0xE375, 0xE376, 0xE377, 0xE378, + 0xE379, 0xE37A, 0xE37B, 0xE37C, + 0xE37D, 0xE37E, 0xE37F, 0xE380, + 0xE381, 0xE382, 0xE383, 0xE384, + 0xE385, 0xE386, 0xE387, 0xE388, + 0xE389, 0xE38A, 0xE38B, 0xE38C, + 0xE38D, 0xE38E, 0xE38F, 0xE390, /* FEE0 */ + 0xE391, 0xE392, 0xE393, 0xE394, + 0xE395, 0xE396, 0xE397, 0xE398, + 0xE399, 0xE39A, 0xE39B, 0xE39C, + 0xE39D, 0xE39E, 0xE39F, 0xE3A0, + 0xE3A1, 0xE3A2, 0xE3A3, 0xE3A4, + 0xE3A5, 0xE3A6, 0xE3A7, 0xE3A8, + 0xE3A9, 0xE3AA, 0xE3AB, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 unicode_to_jisx0208_eucjp[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA1F1), MB2(0xA1F2), /* 00A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xA1F8), + MB2(0xA1AF), 0x0000, 0x0000, 0x0000, + MB2(0xA2CC), 0x0000, 0x0000, 0x0000, + MB2(0xA1EB), MB2(0xA1DE), 0x0000, 0x0000, + MB2(0xA1AD), 0x0000, MB2(0xA2F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1DF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1E0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA6A1), MB2(0xA6A2), MB2(0xA6A3), + MB2(0xA6A4), MB2(0xA6A5), MB2(0xA6A6), MB2(0xA6A7), + MB2(0xA6A8), MB2(0xA6A9), MB2(0xA6AA), MB2(0xA6AB), + MB2(0xA6AC), MB2(0xA6AD), MB2(0xA6AE), MB2(0xA6AF), + MB2(0xA6B0), MB2(0xA6B1), 0x0000, MB2(0xA6B2), /* 03A0 */ + MB2(0xA6B3), MB2(0xA6B4), MB2(0xA6B5), MB2(0xA6B6), + MB2(0xA6B7), MB2(0xA6B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA6C1), MB2(0xA6C2), MB2(0xA6C3), + MB2(0xA6C4), MB2(0xA6C5), MB2(0xA6C6), MB2(0xA6C7), + MB2(0xA6C8), MB2(0xA6C9), MB2(0xA6CA), MB2(0xA6CB), + MB2(0xA6CC), MB2(0xA6CD), MB2(0xA6CE), MB2(0xA6CF), + MB2(0xA6D0), MB2(0xA6D1), 0x0000, MB2(0xA6D2), /* 03C0 */ + MB2(0xA6D3), MB2(0xA6D4), MB2(0xA6D5), MB2(0xA6D6), + MB2(0xA6D7), MB2(0xA6D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA7A7), 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA7A1), MB2(0xA7A2), MB2(0xA7A3), MB2(0xA7A4), + MB2(0xA7A5), MB2(0xA7A6), MB2(0xA7A8), MB2(0xA7A9), + MB2(0xA7AA), MB2(0xA7AB), MB2(0xA7AC), MB2(0xA7AD), + MB2(0xA7AE), MB2(0xA7AF), MB2(0xA7B0), MB2(0xA7B1), + MB2(0xA7B2), MB2(0xA7B3), MB2(0xA7B4), MB2(0xA7B5), /* 0420 */ + MB2(0xA7B6), MB2(0xA7B7), MB2(0xA7B8), MB2(0xA7B9), + MB2(0xA7BA), MB2(0xA7BB), MB2(0xA7BC), MB2(0xA7BD), + MB2(0xA7BE), MB2(0xA7BF), MB2(0xA7C0), MB2(0xA7C1), + MB2(0xA7D1), MB2(0xA7D2), MB2(0xA7D3), MB2(0xA7D4), + MB2(0xA7D5), MB2(0xA7D6), MB2(0xA7D8), MB2(0xA7D9), + MB2(0xA7DA), MB2(0xA7DB), MB2(0xA7DC), MB2(0xA7DD), + MB2(0xA7DE), MB2(0xA7DF), MB2(0xA7E0), MB2(0xA7E1), + MB2(0xA7E2), MB2(0xA7E3), MB2(0xA7E4), MB2(0xA7E5), /* 0440 */ + MB2(0xA7E6), MB2(0xA7E7), MB2(0xA7E8), MB2(0xA7E9), + MB2(0xA7EA), MB2(0xA7EB), MB2(0xA7EC), MB2(0xA7ED), + MB2(0xA7EE), MB2(0xA7EF), MB2(0xA7F0), MB2(0xA7F1), + 0x0000, MB2(0xA7D7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1BE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA1BD), MB2(0xA1C2), 0x0000, + MB2(0xA1C6), MB2(0xA1C7), 0x0000, 0x0000, + MB2(0xA1C8), MB2(0xA1C9), 0x0000, 0x0000, + MB2(0xA2F7), MB2(0xA2F8), 0x0000, 0x0000, /* 2020 */ + 0x0000, MB2(0xA1C5), MB2(0xA1C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2F3), 0x0000, MB2(0xA1EC), MB2(0xA1ED), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1EE), /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2F2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2AB), MB2(0xA2AC), MB2(0xA2AA), MB2(0xA2AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2CD), 0x0000, + MB2(0xA2CE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2CF), 0x0000, MB2(0xA2DF), MB2(0xA2D0), /* 2200 */ + 0x0000, 0x0000, 0x0000, MB2(0xA2E0), + MB2(0xA2BA), 0x0000, 0x0000, MB2(0xA2BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA1DD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2E5), 0x0000, + 0x0000, MB2(0xA2E7), MB2(0xA1E7), 0x0000, + MB2(0xA2DC), 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, MB2(0xA2CA), + MB2(0xA2CB), MB2(0xA2C1), MB2(0xA2C0), MB2(0xA2E9), + MB2(0xA2EA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1E8), MB2(0xA2E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA2E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1E2), MB2(0xA2E1), 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, MB2(0xA1E5), MB2(0xA1E6), + 0x0000, 0x0000, MB2(0xA2E3), MB2(0xA2E4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2BE), MB2(0xA2BF), /* 2280 */ + 0x0000, 0x0000, MB2(0xA2BC), MB2(0xA2BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, MB2(0xA2DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA8A1), MB2(0xA8AC), MB2(0xA8A2), MB2(0xA8AD), /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA8A3), 0x0000, 0x0000, MB2(0xA8AE), + MB2(0xA8A4), 0x0000, 0x0000, MB2(0xA8AF), + MB2(0xA8A6), 0x0000, 0x0000, MB2(0xA8B1), + MB2(0xA8A5), 0x0000, 0x0000, MB2(0xA8B0), + MB2(0xA8A7), MB2(0xA8BC), 0x0000, 0x0000, + MB2(0xA8B7), 0x0000, 0x0000, MB2(0xA8B2), /* 2520 */ + MB2(0xA8A9), MB2(0xA8BE), 0x0000, 0x0000, + MB2(0xA8B9), 0x0000, 0x0000, MB2(0xA8B4), + MB2(0xA8A8), 0x0000, 0x0000, MB2(0xA8B8), + MB2(0xA8BD), 0x0000, 0x0000, MB2(0xA8B3), + MB2(0xA8AA), 0x0000, 0x0000, MB2(0xA8BA), + MB2(0xA8BF), 0x0000, 0x0000, MB2(0xA8B5), + MB2(0xA8AB), 0x0000, 0x0000, MB2(0xA8BB), + 0x0000, 0x0000, MB2(0xA8C0), 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA8B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2A3), MB2(0xA2A2), 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2A5), MB2(0xA2A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2A7), MB2(0xA2A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, MB2(0xA2A1), MB2(0xA1FE), + 0x0000, 0x0000, 0x0000, MB2(0xA1FB), + 0x0000, 0x0000, MB2(0xA1FD), MB2(0xA1FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2FE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, MB2(0xA1FA), MB2(0xA1F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1EA), 0x0000, MB2(0xA1E9), 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2F6), 0x0000, + 0x0000, MB2(0xA2F5), 0x0000, MB2(0xA2F4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1A1), MB2(0xA1A2), MB2(0xA1A3), MB2(0xA1B7), /* 3000 */ + 0x0000, MB2(0xA1B9), MB2(0xA1BA), MB2(0xA1BB), + MB2(0xA1D2), MB2(0xA1D3), MB2(0xA1D4), MB2(0xA1D5), + MB2(0xA1D6), MB2(0xA1D7), MB2(0xA1D8), MB2(0xA1D9), + MB2(0xA1DA), MB2(0xA1DB), MB2(0xA2A9), MB2(0xA2AE), + MB2(0xA1CC), MB2(0xA1CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA1C1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA4A1), MB2(0xA4A2), MB2(0xA4A3), /* 3040 */ + MB2(0xA4A4), MB2(0xA4A5), MB2(0xA4A6), MB2(0xA4A7), + MB2(0xA4A8), MB2(0xA4A9), MB2(0xA4AA), MB2(0xA4AB), + MB2(0xA4AC), MB2(0xA4AD), MB2(0xA4AE), MB2(0xA4AF), + MB2(0xA4B0), MB2(0xA4B1), MB2(0xA4B2), MB2(0xA4B3), + MB2(0xA4B4), MB2(0xA4B5), MB2(0xA4B6), MB2(0xA4B7), + MB2(0xA4B8), MB2(0xA4B9), MB2(0xA4BA), MB2(0xA4BB), + MB2(0xA4BC), MB2(0xA4BD), MB2(0xA4BE), MB2(0xA4BF), + MB2(0xA4C0), MB2(0xA4C1), MB2(0xA4C2), MB2(0xA4C3), /* 3060 */ + MB2(0xA4C4), MB2(0xA4C5), MB2(0xA4C6), MB2(0xA4C7), + MB2(0xA4C8), MB2(0xA4C9), MB2(0xA4CA), MB2(0xA4CB), + MB2(0xA4CC), MB2(0xA4CD), MB2(0xA4CE), MB2(0xA4CF), + MB2(0xA4D0), MB2(0xA4D1), MB2(0xA4D2), MB2(0xA4D3), + MB2(0xA4D4), MB2(0xA4D5), MB2(0xA4D6), MB2(0xA4D7), + MB2(0xA4D8), MB2(0xA4D9), MB2(0xA4DA), MB2(0xA4DB), + MB2(0xA4DC), MB2(0xA4DD), MB2(0xA4DE), MB2(0xA4DF), + MB2(0xA4E0), MB2(0xA4E1), MB2(0xA4E2), MB2(0xA4E3), /* 3080 */ + MB2(0xA4E4), MB2(0xA4E5), MB2(0xA4E6), MB2(0xA4E7), + MB2(0xA4E8), MB2(0xA4E9), MB2(0xA4EA), MB2(0xA4EB), + MB2(0xA4EC), MB2(0xA4ED), MB2(0xA4EE), MB2(0xA4EF), + MB2(0xA4F0), MB2(0xA4F1), MB2(0xA4F2), MB2(0xA4F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1AB), + MB2(0xA1AC), MB2(0xA1B5), MB2(0xA1B6), 0x0000, + 0x0000, MB2(0xA5A1), MB2(0xA5A2), MB2(0xA5A3), /* 30A0 */ + MB2(0xA5A4), MB2(0xA5A5), MB2(0xA5A6), MB2(0xA5A7), + MB2(0xA5A8), MB2(0xA5A9), MB2(0xA5AA), MB2(0xA5AB), + MB2(0xA5AC), MB2(0xA5AD), MB2(0xA5AE), MB2(0xA5AF), + MB2(0xA5B0), MB2(0xA5B1), MB2(0xA5B2), MB2(0xA5B3), + MB2(0xA5B4), MB2(0xA5B5), MB2(0xA5B6), MB2(0xA5B7), + MB2(0xA5B8), MB2(0xA5B9), MB2(0xA5BA), MB2(0xA5BB), + MB2(0xA5BC), MB2(0xA5BD), MB2(0xA5BE), MB2(0xA5BF), + MB2(0xA5C0), MB2(0xA5C1), MB2(0xA5C2), MB2(0xA5C3), /* 30C0 */ + MB2(0xA5C4), MB2(0xA5C5), MB2(0xA5C6), MB2(0xA5C7), + MB2(0xA5C8), MB2(0xA5C9), MB2(0xA5CA), MB2(0xA5CB), + MB2(0xA5CC), MB2(0xA5CD), MB2(0xA5CE), MB2(0xA5CF), + MB2(0xA5D0), MB2(0xA5D1), MB2(0xA5D2), MB2(0xA5D3), + MB2(0xA5D4), MB2(0xA5D5), MB2(0xA5D6), MB2(0xA5D7), + MB2(0xA5D8), MB2(0xA5D9), MB2(0xA5DA), MB2(0xA5DB), + MB2(0xA5DC), MB2(0xA5DD), MB2(0xA5DE), MB2(0xA5DF), + MB2(0xA5E0), MB2(0xA5E1), MB2(0xA5E2), MB2(0xA5E3), /* 30E0 */ + MB2(0xA5E4), MB2(0xA5E5), MB2(0xA5E6), MB2(0xA5E7), + MB2(0xA5E8), MB2(0xA5E9), MB2(0xA5EA), MB2(0xA5EB), + MB2(0xA5EC), MB2(0xA5ED), MB2(0xA5EE), MB2(0xA5EF), + MB2(0xA5F0), MB2(0xA5F1), MB2(0xA5F2), MB2(0xA5F3), + MB2(0xA5F4), MB2(0xA5F5), MB2(0xA5F6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1A6), + MB2(0xA1BC), MB2(0xA1B3), MB2(0xA1B4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0EC), MB2(0xC3FA), 0x0000, MB2(0xBCB7), /* 4E00 */ + 0x0000, 0x0000, 0x0000, MB2(0xCBFC), + MB2(0xBEE6), MB2(0xBBB0), MB2(0xBEE5), MB2(0xB2BC), + 0x0000, MB2(0xC9D4), MB2(0xCDBF), 0x0000, + MB2(0xD0A2), MB2(0xB1AF), 0x0000, 0x0000, + MB2(0xB3EE), MB2(0xD0A3), MB2(0xC0A4), MB2(0xD2C2), + MB2(0xB5D6), MB2(0xCABA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEE7), 0x0000, + 0x0000, MB2(0xCEBE), 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, MB2(0xCAC2), 0x0000, + 0x0000, 0x0000, MB2(0xD0A4), 0x0000, + 0x0000, MB2(0xC3E6), 0x0000, 0x0000, + 0x0000, MB2(0xD0A5), MB2(0xB6FA), 0x0000, + 0x0000, 0x0000, MB2(0xD0A6), 0x0000, + MB2(0xB4DD), MB2(0xC3B0), 0x0000, MB2(0xBCE7), + MB2(0xD0A7), 0x0000, 0x0000, MB2(0xD0A8), + 0x0000, 0x0000, MB2(0xD0A9), MB2(0xC7B5), /* 4E40 */ + 0x0000, MB2(0xB5D7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7B7), + 0x0000, MB2(0xC6E3), MB2(0xB8C3), MB2(0xCBB3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C9), MB2(0xD0AA), MB2(0xBEE8), + MB2(0xD0AB), MB2(0xB2B5), 0x0000, 0x0000, + 0x0000, MB2(0xB6E5), MB2(0xB8F0), MB2(0xCCE9), + 0x0000, 0x0000, MB2(0xD6A6), 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDF0), 0x0000, MB2(0xC6FD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4A5), 0x0000, + MB2(0xB5B5), 0x0000, MB2(0xD0AC), 0x0000, /* 4E80 */ + 0x0000, MB2(0xD0AD), MB2(0xCEBB), 0x0000, + MB2(0xCDBD), MB2(0xC1E8), MB2(0xD0AF), MB2(0xBBF6), + MB2(0xC6F3), 0x0000, MB2(0xD0B2), 0x0000, + 0x0000, MB2(0xB1BE), MB2(0xB8DF), 0x0000, + MB2(0xB8DE), MB2(0xB0E6), 0x0000, 0x0000, + MB2(0xCFCB), MB2(0xCFCA), 0x0000, MB2(0xBAB3), + MB2(0xB0A1), 0x0000, MB2(0xD0B3), MB2(0xD0B4), + MB2(0xD0B5), MB2(0xCBB4), MB2(0xD0B6), 0x0000, /* 4EA0 */ + MB2(0xB8F2), MB2(0xB0E7), MB2(0xCBF2), 0x0000, + MB2(0xB5FC), 0x0000, 0x0000, MB2(0xB5FD), + MB2(0xB5FE), MB2(0xC4E2), MB2(0xCEBC), 0x0000, + MB2(0xD0B7), 0x0000, 0x0000, MB2(0xD0B8), + 0x0000, 0x0000, MB2(0xD0B9), 0x0000, + 0x0000, 0x0000, MB2(0xBFCD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDBA), MB2(0xBFCE), MB2(0xD0BE), 0x0000, /* 4EC0 */ + MB2(0xD0BC), 0x0000, MB2(0xD0BD), MB2(0xB5D8), + 0x0000, 0x0000, MB2(0xBAA3), MB2(0xB2F0), + 0x0000, MB2(0xD0BB), MB2(0xD0BA), MB2(0xCAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBC6), MB2(0xBBC5), MB2(0xC2BE), MB2(0xD0BF), + MB2(0xC9D5), MB2(0xC0E7), 0x0000, 0x0000, + 0x0000, MB2(0xA1B8), MB2(0xD0C0), MB2(0xD0C2), + 0x0000, 0x0000, 0x0000, MB2(0xC2E5), /* 4EE0 */ + MB2(0xCEE1), MB2(0xB0CA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0C1), MB2(0xB2BE), 0x0000, + MB2(0xB6C4), 0x0000, MB2(0xC3E7), 0x0000, + 0x0000, 0x0000, MB2(0xB7EF), MB2(0xD0C3), + 0x0000, 0x0000, 0x0000, MB2(0xC7A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4EB), 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0C4), MB2(0xB0CB), 0x0000, + 0x0000, MB2(0xB8E0), MB2(0xB4EC), MB2(0xC9FA), + MB2(0xC8B2), MB2(0xB5D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2F1), 0x0000, + MB2(0xD0E7), MB2(0xC5C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7EC), + MB2(0xD0C6), 0x0000, 0x0000, 0x0000, + MB2(0xC8BC), 0x0000, MB2(0xCEE2), 0x0000, + MB2(0xBFAD), 0x0000, MB2(0xBBC7), 0x0000, + MB2(0xBBF7), MB2(0xB2C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4D1), /* 4F40 */ + 0x0000, 0x0000, MB2(0xC3A2), MB2(0xD0CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0CC), MB2(0xC4E3), MB2(0xBDBB), + MB2(0xBAB4), MB2(0xCDA4), 0x0000, MB2(0xC2CE), + 0x0000, MB2(0xB2BF), 0x0000, MB2(0xD0C9), + 0x0000, MB2(0xCDBE), MB2(0xD0C5), MB2(0xD0C7), + MB2(0xBAEE), MB2(0xD0C8), MB2(0xD5A4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0D0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0D3), + MB2(0xD0D1), 0x0000, 0x0000, MB2(0xB2C2), + 0x0000, MB2(0xCABB), MB2(0xD0CB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0CF), + MB2(0xB8F3), 0x0000, 0x0000, MB2(0xBBC8), + 0x0000, 0x0000, 0x0000, MB2(0xB4A6), /* 4F80 */ + 0x0000, 0x0000, MB2(0xD0D4), 0x0000, + MB2(0xD0CC), 0x0000, 0x0000, MB2(0xCEE3), + 0x0000, MB2(0xBBF8), 0x0000, MB2(0xD0CD), + 0x0000, MB2(0xD0D2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0D5), 0x0000, + MB2(0xD0CE), 0x0000, 0x0000, MB2(0xB6A1), + 0x0000, MB2(0xB0CD), 0x0000, 0x0000, + MB2(0xB6A2), MB2(0xB2C1), 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5A5), + 0x0000, MB2(0xCBF9), MB2(0xC9EE), MB2(0xB8F4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFAF), MB2(0xCEB7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAD8), + 0x0000, 0x0000, MB2(0xB7B8), MB2(0xC2A5), /* 4FC0 */ + MB2(0xB2E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDD3), 0x0000, + 0x0000, 0x0000, MB2(0xD0D9), 0x0000, + MB2(0xD0DE), MB2(0xD0DC), 0x0000, 0x0000, + MB2(0xD0D7), 0x0000, 0x0000, MB2(0xC2AF), + MB2(0xD0DA), 0x0000, MB2(0xD0DD), MB2(0xD0DB), + 0x0000, MB2(0xCADD), 0x0000, MB2(0xD0D8), + 0x0000, MB2(0xBFAE), 0x0000, MB2(0xCBF3), /* 4FE0 */ + MB2(0xD0DF), MB2(0xD0E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDA4), MB2(0xD0ED), + 0x0000, 0x0000, 0x0000, MB2(0xC7D0), + 0x0000, MB2(0xC9B6), MB2(0xD0E8), 0x0000, + MB2(0xCAF0), 0x0000, MB2(0xB2B6), 0x0000, + 0x0000, 0x0000, MB2(0xD0EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, MB2(0xD0E6), MB2(0xD0EF), 0x0000, + 0x0000, MB2(0xC1D2), 0x0000, MB2(0xB8C4), + 0x0000, MB2(0xC7DC), 0x0000, MB2(0xE0C7), + 0x0000, MB2(0xD0EE), MB2(0xC5DD), 0x0000, + MB2(0xD0E3), 0x0000, MB2(0xB8F6), 0x0000, + 0x0000, MB2(0xB8F5), MB2(0xD0E1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCDA), + 0x0000, MB2(0xD0E9), 0x0000, MB2(0xCAEF), /* 5020 */ + MB2(0xC3CD), MB2(0xD0E5), MB2(0xB7F1), 0x0000, + MB2(0xD0E2), MB2(0xD0EA), MB2(0xD0E4), MB2(0xCED1), + MB2(0xD0EB), MB2(0xCFC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6E6), 0x0000, + 0x0000, MB2(0xB7F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0F0), /* 5040 */ + 0x0000, 0x0000, 0x0000, MB2(0xD0F1), + MB2(0xD0F5), MB2(0xB0CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAD0), + MB2(0xD0F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0F3), MB2(0xD0F7), 0x0000, + 0x0000, 0x0000, MB2(0xD0F6), 0x0000, + MB2(0xC4E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, MB2(0xB7F2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0F8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCC5), 0x0000, + MB2(0xC2A6), MB2(0xC4E5), MB2(0xB6F6), 0x0000, + MB2(0xD0F9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5B6), 0x0000, 0x0000, + MB2(0xD0FA), 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, MB2(0xD0FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB5), 0x0000, 0x0000, + 0x0000, MB2(0xB7E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBB1), MB2(0xC8F7), MB2(0xD0FB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAC5), MB2(0xCDC3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0FE), MB2(0xD1A3), + MB2(0xD0FD), MB2(0xBAC4), 0x0000, MB2(0xBDFD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7B9), 0x0000, + 0x0000, 0x0000, MB2(0xD1A4), 0x0000, /* 50C0 */ + 0x0000, MB2(0xB6CF), 0x0000, 0x0000, + 0x0000, MB2(0xD1A1), MB2(0xD1A2), 0x0000, + 0x0000, MB2(0xC6AF), 0x0000, MB2(0xC1FC), + 0x0000, MB2(0xB6A3), 0x0000, 0x0000, + 0x0000, MB2(0xCBCD), MB2(0xD1A5), 0x0000, + 0x0000, 0x0000, MB2(0xCEBD), 0x0000, + 0x0000, 0x0000, MB2(0xD1A6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1A9), /* 50E0 */ + 0x0000, MB2(0xD1A7), 0x0000, MB2(0xC1CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1A8), MB2(0xD1AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1AC), 0x0000, 0x0000, + 0x0000, MB2(0xD1AB), 0x0000, MB2(0xCAC8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5B7), MB2(0xD1AE), MB2(0xD1AF), 0x0000, /* 5100 */ + MB2(0xB2AF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1AD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCF4), 0x0000, + MB2(0xD1B2), MB2(0xD1B1), MB2(0xD1B0), 0x0000, + MB2(0xD0D6), 0x0000, MB2(0xD1B3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDFE), + 0x0000, MB2(0xD1B4), 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCD9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1B6), + 0x0000, 0x0000, MB2(0xD1B5), MB2(0xD1B8), + MB2(0xD1B7), 0x0000, 0x0000, MB2(0xD1B9), + MB2(0xD1BA), MB2(0xB0F4), 0x0000, MB2(0xB8B5), /* 5140 */ + MB2(0xB7BB), MB2(0xBDBC), MB2(0xC3FB), MB2(0xB6A4), + MB2(0xC0E8), MB2(0xB8F7), 0x0000, MB2(0xB9EE), + MB2(0xD1BC), MB2(0xCCC8), MB2(0xC5C6), 0x0000, + MB2(0xBBF9), 0x0000, MB2(0xD1BB), 0x0000, + MB2(0xD1BD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5DE), 0x0000, + MB2(0xB3F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1BE), 0x0000, /* 5160 */ + 0x0000, MB2(0xC6FE), 0x0000, 0x0000, + MB2(0xC1B4), MB2(0xD1C0), MB2(0xD1C1), MB2(0xC8AC), + MB2(0xB8F8), MB2(0xCFBB), MB2(0xD1C2), 0x0000, + 0x0000, MB2(0xB6A6), 0x0000, 0x0000, + 0x0000, MB2(0xCABC), MB2(0xC2B6), MB2(0xB6F1), + MB2(0xC5B5), 0x0000, 0x0000, 0x0000, + MB2(0xB7F3), 0x0000, 0x0000, 0x0000, + MB2(0xD1C3), 0x0000, MB2(0xD1C4), 0x0000, /* 5180 */ + 0x0000, MB2(0xC6E2), MB2(0xB1DF), 0x0000, + 0x0000, MB2(0xD1C7), MB2(0xBAFD), 0x0000, + MB2(0xD1C6), MB2(0xBAC6), 0x0000, MB2(0xD1C8), + MB2(0xE6EE), MB2(0xD1C9), MB2(0xCBC1), MB2(0xD1CA), + 0x0000, MB2(0xD1CB), MB2(0xD1CC), MB2(0xBEE9), + 0x0000, MB2(0xBCCC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4A7), 0x0000, MB2(0xD1CF), 0x0000, /* 51A0 */ + MB2(0xD1CD), MB2(0xCCBD), MB2(0xD1CE), 0x0000, + MB2(0xC9DA), MB2(0xD1D0), MB2(0xD1D1), MB2(0xD1D2), + MB2(0xC5DF), 0x0000, 0x0000, 0x0000, + MB2(0xD1D6), MB2(0xD1D4), MB2(0xD1D5), MB2(0xD1D3), + MB2(0xBAE3), MB2(0xD1D7), MB2(0xCCEA), MB2(0xCEE4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + MB2(0xC0A8), MB2(0xD1D9), MB2(0xBDDA), 0x0000, + 0x0000, MB2(0xD1DA), 0x0000, MB2(0xC3FC), + MB2(0xCEBF), MB2(0xC5E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2C5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1DB), + MB2(0xF4A5), MB2(0xB6C5), 0x0000, 0x0000, + MB2(0xD1DC), MB2(0xCBDE), 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, MB2(0xBDE8), MB2(0xC2FC), + 0x0000, MB2(0xD1DE), MB2(0xC6E4), 0x0000, + 0x0000, MB2(0xD1DF), 0x0000, 0x0000, + MB2(0xD1E0), MB2(0xB3AE), 0x0000, 0x0000, + 0x0000, MB2(0xD1E1), MB2(0xB6A7), 0x0000, + MB2(0xC6CC), MB2(0xB1FA), MB2(0xBDD0), 0x0000, + 0x0000, MB2(0xC8A1), MB2(0xD1E2), 0x0000, + MB2(0xC5E1), 0x0000, 0x0000, MB2(0xBFCF), /* 5200 */ + MB2(0xD1E3), 0x0000, MB2(0xCAAC), MB2(0xC0DA), + MB2(0xB4A2), 0x0000, MB2(0xB4A9), MB2(0xD1E4), + 0x0000, 0x0000, MB2(0xD1E6), 0x0000, + 0x0000, MB2(0xB7BA), 0x0000, 0x0000, + MB2(0xD1E5), 0x0000, 0x0000, MB2(0xCEF3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDE9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + MB2(0xC8BD), MB2(0xCACC), 0x0000, MB2(0xD1E7), + 0x0000, MB2(0xCDF8), MB2(0xD1E8), 0x0000, + 0x0000, 0x0000, MB2(0xD1E9), 0x0000, + MB2(0xC5FE), 0x0000, 0x0000, MB2(0xD1EA), + 0x0000, 0x0000, MB2(0xC0A9), MB2(0xBAFE), + MB2(0xB7F4), MB2(0xD1EB), MB2(0xBBC9), MB2(0xB9EF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4E6), /* 5240 */ + MB2(0xD1ED), 0x0000, 0x0000, MB2(0xC2A7), + 0x0000, 0x0000, MB2(0xBAEF), MB2(0xD1EE), + MB2(0xD1EF), MB2(0xC1B0), 0x0000, MB2(0xD1EC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1F1), 0x0000, MB2(0xCBB6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E4), + 0x0000, 0x0000, MB2(0xD1F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7F5), /* 5260 */ + MB2(0xBADE), MB2(0xC7ED), 0x0000, 0x0000, + 0x0000, MB2(0xD1F4), MB2(0xD1F2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9FB), + MB2(0xBEEA), MB2(0xD1FB), MB2(0xB3E4), MB2(0xD1F5), + MB2(0xD1F3), MB2(0xC1CF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1F7), 0x0000, MB2(0xD1F6), + 0x0000, 0x0000, 0x0000, MB2(0xB3C4), /* 5280 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7E0), + MB2(0xD1FC), MB2(0xCEAD), 0x0000, 0x0000, + 0x0000, MB2(0xD1F8), 0x0000, 0x0000, + 0x0000, MB2(0xD1FD), MB2(0xD1FA), 0x0000, + MB2(0xD1F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCECF), + 0x0000, 0x0000, 0x0000, MB2(0xB8F9), + MB2(0xB2C3), 0x0000, 0x0000, MB2(0xCEF4), /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDF5), MB2(0xC5D8), MB2(0xB9E5), + MB2(0xD2A2), MB2(0xD2A3), 0x0000, 0x0000, + 0x0000, MB2(0xCEE5), 0x0000, 0x0000, + MB2(0xCFAB), MB2(0xD2A5), 0x0000, 0x0000, + 0x0000, MB2(0xB8FA), 0x0000, 0x0000, + MB2(0xD2A4), 0x0000, MB2(0xB3AF), 0x0000, + 0x0000, MB2(0xD2A6), 0x0000, MB2(0xCBD6), /* 52C0 */ + 0x0000, MB2(0xC4BC), 0x0000, MB2(0xCDA6), + 0x0000, MB2(0xCAD9), 0x0000, 0x0000, + 0x0000, MB2(0xD2A7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF0D5), 0x0000, + 0x0000, MB2(0xC6B0), 0x0000, MB2(0xD2A8), + MB2(0xB4AA), MB2(0xCCB3), 0x0000, 0x0000, + 0x0000, MB2(0xBEA1), MB2(0xD2A9), MB2(0xCAE7), + MB2(0xD2AD), 0x0000, MB2(0xC0AA), MB2(0xD2AA), /* 52E0 */ + MB2(0xB6D0), 0x0000, MB2(0xD2AB), MB2(0xB4AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7AE), MB2(0xD2AE), + 0x0000, MB2(0xD2AF), 0x0000, 0x0000, + MB2(0xD2B0), MB2(0xD2B1), MB2(0xBCDB), 0x0000, + 0x0000, 0x0000, MB2(0xB8FB), MB2(0xCCDE), + 0x0000, MB2(0xCCE8), MB2(0xC6F7), 0x0000, /* 5300 */ + 0x0000, MB2(0xCAF1), MB2(0xD2B2), 0x0000, + MB2(0xD2B3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2B5), 0x0000, MB2(0xD2B7), + MB2(0xD2B6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2B8), MB2(0xB2BD), MB2(0xCBCC), + 0x0000, MB2(0xBAFC), MB2(0xD2B9), 0x0000, + 0x0000, MB2(0xC1D9), 0x0000, 0x0000, + MB2(0xBEA2), MB2(0xB6A9), 0x0000, MB2(0xD2BA), /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8DB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD2BB), + 0x0000, MB2(0xD2BC), 0x0000, MB2(0xD2BD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2BE), MB2(0xC9A4), MB2(0xB6E8), MB2(0xB0E5), + 0x0000, 0x0000, 0x0000, MB2(0xC6BF), + MB2(0xD2BF), MB2(0xBDBD), 0x0000, MB2(0xC0E9), /* 5340 */ + 0x0000, MB2(0xD2C1), MB2(0xD2C0), MB2(0xBEA3), + MB2(0xB8E1), MB2(0xD2C3), MB2(0xC8BE), 0x0000, + 0x0000, MB2(0xD2C4), 0x0000, 0x0000, + 0x0000, MB2(0xC8DC), MB2(0xC2B4), MB2(0xC2EE), + MB2(0xB6A8), 0x0000, 0x0000, MB2(0xC6EE), + MB2(0xC3B1), 0x0000, MB2(0xC7EE), 0x0000, + MB2(0xCBCE), 0x0000, MB2(0xD2C6), 0x0000, + MB2(0xC0EA), 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, MB2(0xB7B5), 0x0000, + 0x0000, MB2(0xD2C7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2C8), MB2(0xB1AC), + MB2(0xB0F5), MB2(0xB4ED), 0x0000, MB2(0xC2A8), + MB2(0xB5D1), MB2(0xCDF1), 0x0000, MB2(0xD2CB), + MB2(0xB2B7), 0x0000, 0x0000, MB2(0xD2CA), + 0x0000, 0x0000, 0x0000, MB2(0xB6AA), + 0x0000, 0x0000, MB2(0xD2CC), 0x0000, /* 5380 */ + MB2(0xCCF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2CD), 0x0000, + MB2(0xCED2), 0x0000, MB2(0xB8FC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8B6), + MB2(0xD2CE), 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, MB2(0xD2D0), MB2(0xD2CF), 0x0000, + MB2(0xBFDF), MB2(0xB1B9), 0x0000, 0x0000, + 0x0000, MB2(0xB1DE), MB2(0xD2D1), 0x0000, + MB2(0xD2D2), 0x0000, 0x0000, MB2(0xB8B7), + 0x0000, 0x0000, MB2(0xD2D3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB2), MB2(0xD2D4), /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBF4), MB2(0xBAB5), MB2(0xB5DA), MB2(0xCDA7), + MB2(0xC1D0), MB2(0xC8BF), MB2(0xBCFD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDC7), 0x0000, MB2(0xBCE8), MB2(0xBCF5), + 0x0000, MB2(0xBDF6), 0x0000, MB2(0xC8C0), + 0x0000, 0x0000, 0x0000, MB2(0xD2D7), + 0x0000, MB2(0xB1C3), MB2(0xC1D1), MB2(0xB8FD), /* 53E0 */ + MB2(0xB8C5), MB2(0xB6E7), 0x0000, 0x0000, + MB2(0xD2DB), MB2(0xC3A1), MB2(0xC2FE), MB2(0xB6AB), + MB2(0xBEA4), MB2(0xD2DC), MB2(0xD2DA), MB2(0xB2C4), + MB2(0xC2E6), MB2(0xBCB8), MB2(0xBBCB), MB2(0xB1A6), + 0x0000, 0x0000, MB2(0xB3F0), MB2(0xB9E6), + MB2(0xBBCA), 0x0000, MB2(0xD2DD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2DE), 0x0000, MB2(0xB5C9), /* 5400 */ + MB2(0xB3C6), 0x0000, 0x0000, 0x0000, + MB2(0xB9E7), MB2(0xB5C8), MB2(0xC4DF), MB2(0xB1A5), + MB2(0xC6B1), MB2(0xCCBE), MB2(0xB9A1), MB2(0xCDF9), + MB2(0xC5C7), MB2(0xB8FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7AF), + 0x0000, MB2(0xD2E7), 0x0000, MB2(0xB6E3), + MB2(0xCBCA), 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, MB2(0xC8DD), 0x0000, + 0x0000, MB2(0xD2E6), 0x0000, MB2(0xB4DE), + MB2(0xD2E1), MB2(0xD2E2), MB2(0xD2E4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2E5), 0x0000, + MB2(0xB5DB), MB2(0xBFE1), 0x0000, MB2(0xCAAD), + MB2(0xD2E3), MB2(0xD2DF), MB2(0xB8E3), 0x0000, + MB2(0xD2E0), 0x0000, MB2(0xCFA4), 0x0000, /* 5440 */ + 0x0000, 0x0000, MB2(0xCAF2), 0x0000, + MB2(0xC4E8), MB2(0xB8E2), MB2(0xB9F0), 0x0000, + 0x0000, 0x0000, MB2(0xD2E8), 0x0000, + 0x0000, MB2(0xC6DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD2EC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCFE), 0x0000, MB2(0xBCF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2EF), MB2(0xD2ED), 0x0000, MB2(0xCCA3), + 0x0000, MB2(0xD2EA), MB2(0xD2F3), MB2(0xD2EE), + 0x0000, 0x0000, 0x0000, MB2(0xD2F1), + MB2(0xB8C6), MB2(0xCCBF), 0x0000, 0x0000, + MB2(0xD2F2), 0x0000, 0x0000, 0x0000, /* 5480 */ + MB2(0xD2F4), 0x0000, MB2(0xD2F6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAF0), + MB2(0xCFC2), 0x0000, MB2(0xD2EB), MB2(0xD2E9), + MB2(0xD2F5), 0x0000, MB2(0xD2F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2F8), 0x0000, /* 54A0 */ + MB2(0xD3A3), MB2(0xD2FA), 0x0000, 0x0000, + MB2(0xD2FE), 0x0000, 0x0000, MB2(0xD3A1), + MB2(0xD2FB), 0x0000, 0x0000, MB2(0xD3BE), + 0x0000, 0x0000, MB2(0xBAE9), MB2(0xB3B1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2F9), 0x0000, 0x0000, 0x0000, + MB2(0xD3A5), MB2(0xB0F6), MB2(0xD3A4), 0x0000, + MB2(0xB0A5), MB2(0xC9CA), MB2(0xD3A2), 0x0000, /* 54C0 */ + MB2(0xD2FC), 0x0000, 0x0000, MB2(0xD2F7), + MB2(0xD2FD), MB2(0xBAC8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3A6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0F7), MB2(0xD3AF), 0x0000, /* 54E0 */ + 0x0000, MB2(0xD3A7), MB2(0xD3A8), 0x0000, + MB2(0xBEA5), MB2(0xCBE9), 0x0000, 0x0000, + 0x0000, MB2(0xD3AD), MB2(0xD3AC), 0x0000, + 0x0000, 0x0000, MB2(0xC5AF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3AE), 0x0000, + 0x0000, MB2(0xD3AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + MB2(0xB1B4), 0x0000, MB2(0xBAB6), MB2(0xBFB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3A9), + MB2(0xC5E2), 0x0000, 0x0000, 0x0000, + MB2(0xD3AA), 0x0000, MB2(0xB0A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3B4), MB2(0xCDA3), + 0x0000, MB2(0xBEA7), 0x0000, MB2(0xD3BA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B9), MB2(0xD3B0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2C3), 0x0000, + MB2(0xD3B1), 0x0000, 0x0000, 0x0000, /* 5540 */ + MB2(0xC2EF), MB2(0xD3B6), MB2(0xBEA6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B3), 0x0000, 0x0000, MB2(0xCCE4), + 0x0000, 0x0000, 0x0000, MB2(0xB7BC), + 0x0000, 0x0000, MB2(0xD3B7), MB2(0xD3B8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B5), MB2(0xD3BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3B2), /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3C1), + MB2(0xD3C6), 0x0000, MB2(0xD3C2), 0x0000, + MB2(0xD3BD), 0x0000, 0x0000, MB2(0xD3C7), /* 5580 */ + MB2(0xC1B1), 0x0000, 0x0000, MB2(0xD3C9), + 0x0000, MB2(0xB9A2), MB2(0xD3BF), MB2(0xC3FD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3C3), MB2(0xD3BC), MB2(0xB4AD), 0x0000, + MB2(0xB4EE), MB2(0xB3E5), MB2(0xD3C4), MB2(0xD3C0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7F6), + MB2(0xD3CA), MB2(0xD3C8), MB2(0xC1D3), MB2(0xB5CA), + MB2(0xB6AC), 0x0000, MB2(0xD3C5), 0x0000, + MB2(0xB6F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + MB2(0xD3CE), MB2(0xD3CC), 0x0000, MB2(0xD4A7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3D1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3CB), 0x0000, + MB2(0xD3CF), 0x0000, 0x0000, MB2(0xD3CD), + 0x0000, 0x0000, 0x0000, MB2(0xBBCC), /* 55E0 */ + MB2(0xD3D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3D3), + 0x0000, MB2(0xD3D8), 0x0000, 0x0000, + 0x0000, MB2(0xD3D6), MB2(0xD3D5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, MB2(0xC3B2), 0x0000, + 0x0000, MB2(0xB2C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3D2), 0x0000, MB2(0xD3D4), MB2(0xBEA8), + MB2(0xB1B3), 0x0000, 0x0000, MB2(0xD3D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3E2), + 0x0000, MB2(0xBEFC), MB2(0xD3DE), 0x0000, + MB2(0xD3DC), 0x0000, MB2(0xD3DD), 0x0000, + MB2(0xD3DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1BD), 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1B9), 0x0000, MB2(0xD3D9), 0x0000, + MB2(0xD3DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + MB2(0xD3E1), 0x0000, 0x0000, 0x0000, + MB2(0xB4EF), 0x0000, MB2(0xD3E4), MB2(0xD3E0), + MB2(0xD3E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAAE), 0x0000, 0x0000, 0x0000, + MB2(0xC6D5), 0x0000, MB2(0xC8B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3E6), 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, MB2(0xD3E5), MB2(0xB3C5), + 0x0000, 0x0000, MB2(0xD3E7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3EA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3E8), 0x0000, MB2(0xC7B9), 0x0000, /* 56A0 */ + 0x0000, MB2(0xD3EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3EE), 0x0000, MB2(0xD3ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3F0), 0x0000, 0x0000, 0x0000, + MB2(0xD3F3), MB2(0xD3F1), MB2(0xD3EF), MB2(0xD3F2), /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3F5), 0x0000, + 0x0000, MB2(0xD3F6), 0x0000, MB2(0xD3F7), + 0x0000, 0x0000, 0x0000, MB2(0xD3F8), + MB2(0xD1C5), 0x0000, MB2(0xBCFC), MB2(0xBBCD), + 0x0000, 0x0000, MB2(0xB2F3), 0x0000, + MB2(0xB0F8), 0x0000, 0x0000, MB2(0xC3C4), /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3F9), 0x0000, + MB2(0xBAA4), 0x0000, MB2(0xB0CF), MB2(0xBFDE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3FA), MB2(0xB8C7), 0x0000, + 0x0000, MB2(0xB9F1), 0x0000, MB2(0xD3FC), + MB2(0xD3FB), 0x0000, 0x0000, MB2(0xCAE0), /* 5700 */ + MB2(0xD3FD), 0x0000, 0x0000, 0x0000, + MB2(0xD4A1), MB2(0xD3FE), 0x0000, MB2(0xD4A2), + 0x0000, MB2(0xD4A3), 0x0000, MB2(0xB7F7), + 0x0000, 0x0000, MB2(0xB1E0), MB2(0xD4A4), + 0x0000, 0x0000, MB2(0xD4A6), 0x0000, + MB2(0xD4A5), 0x0000, 0x0000, 0x0000, + MB2(0xD4A8), 0x0000, 0x0000, MB2(0xC5DA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, MB2(0xD4A9), MB2(0xB0B5), + MB2(0xBADF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7BD), 0x0000, 0x0000, + MB2(0xC3CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4AA), + MB2(0xD4AB), 0x0000, 0x0000, MB2(0xD4AD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4AE), 0x0000, MB2(0xBAE4), 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, MB2(0xB6D1), + 0x0000, 0x0000, MB2(0xCBB7), 0x0000, + 0x0000, 0x0000, MB2(0xD4AC), MB2(0xD4AF), + MB2(0xBAC1), MB2(0xB9A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD4B3), 0x0000, 0x0000, /* 5760 */ + MB2(0xBAA5), 0x0000, MB2(0xC3B3), 0x0000, + 0x0000, MB2(0xD4B0), MB2(0xC4DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4B4), + 0x0000, 0x0000, MB2(0xBFE2), 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B2), MB2(0xD4B5), 0x0000, MB2(0xB7BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B7), 0x0000, MB2(0xB9A4), MB2(0xB3C0), /* 57A0 */ + MB2(0xD4B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4BA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4BB), 0x0000, 0x0000, MB2(0xD4B8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B1), 0x0000, 0x0000, MB2(0xD4BC), /* 57C0 */ + 0x0000, 0x0000, MB2(0xD4BD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBE4), + 0x0000, 0x0000, MB2(0xBEEB), 0x0000, + 0x0000, 0x0000, MB2(0xD4BF), MB2(0xD4C0), + MB2(0xD4BE), 0x0000, MB2(0xD4C2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7B8), 0x0000, 0x0000, MB2(0xB0E8), + MB2(0xC9D6), 0x0000, 0x0000, MB2(0xD4C3), /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEFD), 0x0000, 0x0000, MB2(0xBCB9), + 0x0000, MB2(0xC7DD), MB2(0xB4F0), 0x0000, + MB2(0xBAEB), 0x0000, 0x0000, 0x0000, + MB2(0xCBD9), 0x0000, MB2(0xC6B2), 0x0000, /* 5800 */ + 0x0000, MB2(0xB7F8), MB2(0xC2CF), 0x0000, + 0x0000, 0x0000, MB2(0xD4C1), MB2(0xD4C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2C4), 0x0000, 0x0000, + 0x0000, MB2(0xD4C5), 0x0000, 0x0000, + 0x0000, MB2(0xD4C6), 0x0000, 0x0000, + 0x0000, MB2(0xD4C8), 0x0000, 0x0000, /* 5820 */ + MB2(0xC4E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4AE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF4A1), + MB2(0xB1E1), MB2(0xCAF3), 0x0000, 0x0000, + MB2(0xBEEC), MB2(0xC5C8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAE6), 0x0000, + 0x0000, MB2(0xD4CE), 0x0000, 0x0000, + MB2(0xCABD), MB2(0xCEDD), 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2F4), MB2(0xD4CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1BA), MB2(0xD4CD), 0x0000, + MB2(0xC5E3), 0x0000, 0x0000, MB2(0xC5C9), + MB2(0xC5E4), MB2(0xC8B9), MB2(0xC4CD), 0x0000, + 0x0000, 0x0000, MB2(0xBAC9), 0x0000, + 0x0000, 0x0000, MB2(0xD4C9), 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1F6), 0x0000, MB2(0xC5B6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4CB), 0x0000, MB2(0xD4C7), 0x0000, + 0x0000, MB2(0xBFD0), 0x0000, 0x0000, + 0x0000, MB2(0xD4CF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDCE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6AD), /* 5880 */ + 0x0000, MB2(0xD4D0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAE8), + 0x0000, 0x0000, 0x0000, MB2(0xC1FD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4C6), 0x0000, 0x0000, MB2(0xD4D2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBCF), 0x0000, 0x0000, MB2(0xD4D3), + 0x0000, 0x0000, MB2(0xD4D8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAAF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4D7), MB2(0xD4D1), MB2(0xD4D4), MB2(0xD4D6), + 0x0000, 0x0000, MB2(0xBAA6), 0x0000, + 0x0000, MB2(0xCAC9), 0x0000, 0x0000, /* 58C0 */ + 0x0000, MB2(0xD4D9), 0x0000, MB2(0xC3C5), + 0x0000, 0x0000, MB2(0xB2F5), 0x0000, + MB2(0xBEED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD4DB), 0x0000, MB2(0xD4DA), + 0x0000, MB2(0xB9E8), 0x0000, MB2(0xD4DC), + MB2(0xD4DE), MB2(0xD4DD), 0x0000, 0x0000, + MB2(0xD4E0), 0x0000, MB2(0xD4D5), MB2(0xD4E2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + MB2(0xD4E1), MB2(0xD4DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBCE), + MB2(0xBFD1), 0x0000, MB2(0xC1D4), MB2(0xD4E3), + MB2(0xC0BC), MB2(0xB0ED), MB2(0xC7E4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4DB), + 0x0000, MB2(0xD4E5), MB2(0xD4E4), MB2(0xD4E6), + MB2(0xD4E7), MB2(0xD4E8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4E9), 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAD1), MB2(0xD4EA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2C6), + MB2(0xD4EB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDBC), MB2(0xB3B0), 0x0000, + MB2(0xD2C9), MB2(0xBDC8), MB2(0xC2BF), MB2(0xD4EC), + MB2(0xCCEB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCB4), 0x0000, /* 5920 */ + 0x0000, MB2(0xD4EE), 0x0000, MB2(0xC2E7), + 0x0000, MB2(0xC5B7), MB2(0xC2C0), MB2(0xC9D7), + MB2(0xD4EF), MB2(0xD4F0), MB2(0xB1FB), 0x0000, + 0x0000, MB2(0xBCBA), MB2(0xD4F1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0D0), + MB2(0xD4F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + MB2(0xB1E2), 0x0000, 0x0000, MB2(0xB4F1), + MB2(0xC6E0), MB2(0xCAF4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4F7), MB2(0xC1D5), + MB2(0xD4F6), MB2(0xB7C0), 0x0000, 0x0000, + MB2(0xCBDB), MB2(0xD4F5), 0x0000, MB2(0xC5E5), + MB2(0xD4F9), 0x0000, MB2(0xD4F8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4FB), 0x0000, MB2(0xD4FA), 0x0000, /* 5960 */ + 0x0000, MB2(0xB1FC), 0x0000, MB2(0xD4FC), + MB2(0xBEA9), MB2(0xD4FE), MB2(0xC3A5), 0x0000, + MB2(0xD4FD), 0x0000, MB2(0xCAB3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDF7), + MB2(0xC5DB), 0x0000, 0x0000, 0x0000, + MB2(0xD5A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9A5), 0x0000, 0x0000, + 0x0000, MB2(0xD5A2), MB2(0xC7A1), MB2(0xC8DE), /* 5980 */ + MB2(0xCCD1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7A5), 0x0000, + 0x0000, MB2(0xD5AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5B8), + 0x0000, 0x0000, MB2(0xCDC5), 0x0000, + 0x0000, MB2(0xCCAF), 0x0000, MB2(0xD6AC), + 0x0000, MB2(0xD5A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5A6), /* 59A0 */ + 0x0000, MB2(0xC2C5), 0x0000, 0x0000, + MB2(0xCBB8), 0x0000, 0x0000, 0x0000, + MB2(0xC5CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5A7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBE5), 0x0000, MB2(0xBACA), + 0x0000, 0x0000, MB2(0xBEAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, MB2(0xD5A8), 0x0000, + 0x0000, MB2(0xBBD0), 0x0000, MB2(0xBBCF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0B9), MB2(0xB8C8), 0x0000, MB2(0xC0AB), + MB2(0xB0D1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5AC), MB2(0xD5AD), 0x0000, + MB2(0xD5AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, MB2(0xB1B8), MB2(0xB4AF), 0x0000, + MB2(0xD5A9), 0x0000, MB2(0xCCC5), MB2(0xC9B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0A8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F9), + 0x0000, 0x0000, 0x0000, MB2(0xBBD1), + 0x0000, MB2(0xB0D2), 0x0000, MB2(0xB0A3), /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5B0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCBC), 0x0000, MB2(0xD5B3), 0x0000, + MB2(0xD5B1), 0x0000, 0x0000, MB2(0xD5AF), + MB2(0xBFB1), 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, MB2(0xD5AE), 0x0000, 0x0000, + 0x0000, MB2(0xCADA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8E4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5B7), MB2(0xD5B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEAB), 0x0000, 0x0000, 0x0000, + MB2(0xD5B4), MB2(0xCFAC), 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, MB2(0xC7CC), 0x0000, + 0x0000, MB2(0xD5B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAA7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5B9), 0x0000, /* 5A60 */ + 0x0000, 0x0000, MB2(0xC9D8), 0x0000, + 0x0000, 0x0000, MB2(0xD5BA), 0x0000, + MB2(0xD5B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCBB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5BB), MB2(0xC9B2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5BC), MB2(0xD5C0), MB2(0xD5BD), 0x0000, + 0x0000, MB2(0xB2C7), MB2(0xD5BF), 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCBB), 0x0000, MB2(0xD5BE), + MB2(0xB7F9), 0x0000, 0x0000, 0x0000, + MB2(0xD5CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5C5), MB2(0xD5C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3E4), 0x0000, MB2(0xD5C1), /* 5AE0 */ + 0x0000, 0x0000, MB2(0xD5C3), 0x0000, + 0x0000, MB2(0xD5C4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5C6), MB2(0xD5C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4F2), 0x0000, MB2(0xD5C9), + MB2(0xD5C8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5CA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEEE), 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5CD), 0x0000, + MB2(0xC4DC), 0x0000, 0x0000, 0x0000, + MB2(0xB1C5), 0x0000, MB2(0xD5CB), 0x0000, + 0x0000, 0x0000, MB2(0xD5CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5CF), 0x0000, + MB2(0xD5D2), 0x0000, 0x0000, MB2(0xD5D0), /* 5B40 */ + 0x0000, MB2(0xD5D1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBD2), MB2(0xD5D3), 0x0000, 0x0000, + MB2(0xB9A6), MB2(0xD5D4), 0x0000, MB2(0xBBFA), + MB2(0xC2B8), 0x0000, MB2(0xD5D5), MB2(0xD5D6), + MB2(0xBBDA), MB2(0xB9A7), 0x0000, MB2(0xCCD2), + 0x0000, 0x0000, 0x0000, MB2(0xB5A8), /* 5B60 */ + MB2(0xB8C9), MB2(0xD5D7), MB2(0xB3D8), 0x0000, + 0x0000, MB2(0xD5D8), 0x0000, MB2(0xC2B9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5D9), MB2(0xD6A3), 0x0000, MB2(0xD5DA), + 0x0000, MB2(0xD5DB), 0x0000, 0x0000, + MB2(0xD5DC), 0x0000, MB2(0xD5DE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5DF), 0x0000, 0x0000, MB2(0xD5E0), /* 5B80 */ + 0x0000, MB2(0xC2F0), 0x0000, MB2(0xB1A7), + MB2(0xBCE9), MB2(0xB0C2), 0x0000, MB2(0xC1D7), + MB2(0xB4B0), MB2(0xBCB5), 0x0000, MB2(0xB9A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5E6), 0x0000, MB2(0xBDA1), + MB2(0xB4B1), MB2(0xC3E8), MB2(0xC4EA), MB2(0xB0B8), + MB2(0xB5B9), MB2(0xCAF5), 0x0000, MB2(0xBCC2), + 0x0000, 0x0000, MB2(0xB5D2), MB2(0xC0EB), /* 5BA0 */ + MB2(0xBCBC), MB2(0xCDA8), MB2(0xD5E1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5DC), 0x0000, + MB2(0xBACB), 0x0000, 0x0000, MB2(0xB3B2), + MB2(0xB1E3), MB2(0xBEAC), MB2(0xB2C8), 0x0000, + MB2(0xD5E2), MB2(0xCDC6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDC9), + 0x0000, 0x0000, MB2(0xBCE4), MB2(0xD5E3), /* 5BC0 */ + MB2(0xB4F3), MB2(0xC6D2), MB2(0xCCA9), MB2(0xD5E4), + 0x0000, MB2(0xD5E5), 0x0000, 0x0000, + MB2(0xC9D9), 0x0000, 0x0000, 0x0000, + MB2(0xD5E7), 0x0000, MB2(0xB4A8), MB2(0xB6F7), + MB2(0xD5E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4B2), + 0x0000, MB2(0xBFB2), MB2(0xD5EB), MB2(0xBBA1), + 0x0000, MB2(0xB2C9), MB2(0xD5EA), 0x0000, /* 5BE0 */ + MB2(0xD5E8), MB2(0xD5EC), MB2(0xD5E9), MB2(0xC7AB), + MB2(0xDCCD), MB2(0xBFB3), 0x0000, MB2(0xD5ED), + 0x0000, 0x0000, MB2(0xCEC0), 0x0000, + MB2(0xD5EE), 0x0000, 0x0000, MB2(0xD5F0), + 0x0000, MB2(0xC3FE), MB2(0xD5EF), 0x0000, + MB2(0xC0A3), 0x0000, MB2(0xBBFB), 0x0000, + 0x0000, 0x0000, MB2(0xC2D0), MB2(0xBCF7), + 0x0000, MB2(0xC9F5), MB2(0xC0EC), 0x0000, /* 5C00 */ + MB2(0xBCCD), MB2(0xD5F1), MB2(0xBEAD), MB2(0xD5F2), + MB2(0xD5F3), MB2(0xB0D3), MB2(0xC2BA), MB2(0xBFD2), + 0x0000, MB2(0xD5F4), MB2(0xC6B3), MB2(0xBEAE), + 0x0000, MB2(0xBEAF), 0x0000, MB2(0xD5F5), + 0x0000, 0x0000, MB2(0xC0ED), 0x0000, + 0x0000, 0x0000, MB2(0xBEB0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F6), 0x0000, MB2(0xD5F7), 0x0000, /* 5C20 */ + MB2(0xCCE0), 0x0000, 0x0000, 0x0000, + MB2(0xD5F8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6C6), 0x0000, 0x0000, + 0x0000, MB2(0xBDA2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F9), MB2(0xD5FA), MB2(0xBCDC), MB2(0xBFAC), + MB2(0xC6F4), MB2(0xBFD4), MB2(0xC8F8), MB2(0xC7A2), + MB2(0xB6C9), MB2(0xD5FB), 0x0000, 0x0000, /* 5C40 */ + 0x0000, MB2(0xB5EF), MB2(0xD5FC), 0x0000, + MB2(0xB6FE), 0x0000, MB2(0xC6CF), MB2(0xB2B0), + 0x0000, MB2(0xBBD3), MB2(0xD5FD), MB2(0xD6A2), + MB2(0xD6A1), MB2(0xB6FD), 0x0000, MB2(0xD5FE), + 0x0000, MB2(0xC5B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2B0), 0x0000, + MB2(0xC5CB), MB2(0xBCC8), 0x0000, 0x0000, /* 5C60 */ + MB2(0xC1D8), MB2(0xCDFA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6A4), 0x0000, MB2(0xD6A5), MB2(0xC6D6), + 0x0000, MB2(0xBBB3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6A7), 0x0000, + 0x0000, MB2(0xD6A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6A9), 0x0000, 0x0000, 0x0000, + MB2(0xB4F4), MB2(0xD6AA), 0x0000, 0x0000, + MB2(0xD6AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2AC), 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1BB), MB2(0xB4E4), 0x0000, MB2(0xD6AD), + MB2(0xCCA8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2D2), 0x0000, MB2(0xB3D9), + 0x0000, 0x0000, MB2(0xD6AF), MB2(0xD6B1), + MB2(0xB4DF), 0x0000, 0x0000, MB2(0xD6AE), + MB2(0xD6B0), 0x0000, MB2(0xD6B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, MB2(0xD6B2), 0x0000, MB2(0xD6B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6BD), MB2(0xB6AE), 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2E5), MB2(0xD6B6), MB2(0xD6BB), 0x0000, + 0x0000, MB2(0xD6B9), 0x0000, MB2(0xCAF7), + MB2(0xCAF6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5E7), 0x0000, + 0x0000, 0x0000, MB2(0xD6B8), MB2(0xBDD4), + 0x0000, MB2(0xD6B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, MB2(0xBFF2), + 0x0000, 0x0000, 0x0000, MB2(0xD6BC), + 0x0000, 0x0000, MB2(0xBAEA), 0x0000, + 0x0000, MB2(0xD6C2), 0x0000, 0x0000, + MB2(0xD6C3), MB2(0xD6BD), MB2(0xB3B3), MB2(0xD6BE), + MB2(0xD6C7), MB2(0xD6C6), MB2(0xD6C5), MB2(0xD6C1), + 0x0000, 0x0000, 0x0000, MB2(0xD6C0), + 0x0000, 0x0000, MB2(0xD6C4), 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6CB), + MB2(0xD6C8), 0x0000, MB2(0xD6CA), 0x0000, + MB2(0xCDF2), 0x0000, MB2(0xD6C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6BF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFF3), 0x0000, 0x0000, + MB2(0xD6CC), 0x0000, 0x0000, MB2(0xBAB7), + 0x0000, 0x0000, 0x0000, MB2(0xD6CD), + 0x0000, 0x0000, MB2(0xD6CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D1), 0x0000, /* 5D80 */ + MB2(0xD6D0), 0x0000, 0x0000, MB2(0xD6CF), + 0x0000, 0x0000, 0x0000, MB2(0xC5E8), + MB2(0xD6BA), 0x0000, 0x0000, 0x0000, + MB2(0xD6D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6D3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D2), 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6D4), 0x0000, MB2(0xD6D5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6D8), + 0x0000, 0x0000, MB2(0xCEE6), 0x0000, + MB2(0xD6D9), MB2(0xD6D6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6DA), 0x0000, 0x0000, + MB2(0xB4E0), MB2(0xD6DB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6DD), MB2(0xD6DC), + 0x0000, 0x0000, MB2(0xD6DE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6DF), + 0x0000, MB2(0xC0EE), MB2(0xBDA3), 0x0000, + 0x0000, MB2(0xBDE4), 0x0000, MB2(0xC1E3), /* 5DE0 */ + 0x0000, MB2(0xB9A9), MB2(0xBAB8), MB2(0xB9AA), + MB2(0xB5F0), 0x0000, 0x0000, MB2(0xD6E0), + 0x0000, 0x0000, MB2(0xBAB9), 0x0000, + 0x0000, MB2(0xB8CA), MB2(0xD6E1), MB2(0xCCA6), + MB2(0xC7C3), MB2(0xD6E2), 0x0000, MB2(0xB9AB), + 0x0000, 0x0000, 0x0000, MB2(0xB4AC), + 0x0000, MB2(0xC3A7), MB2(0xB6D2), 0x0000, + 0x0000, 0x0000, MB2(0xBBD4), MB2(0xC9DB), /* 5E00 */ + 0x0000, 0x0000, MB2(0xC8C1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6E3), + MB2(0xB4F5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6E6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4A1), 0x0000, + 0x0000, MB2(0xD6E5), MB2(0xD6E4), MB2(0xD6E7), + 0x0000, MB2(0xC4EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, MB2(0xBFE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBD5), + 0x0000, MB2(0xC0CA), 0x0000, MB2(0xC2D3), + MB2(0xB5A2), 0x0000, 0x0000, MB2(0xC4A2), + 0x0000, 0x0000, MB2(0xD6E8), MB2(0xD6E9), + MB2(0xBEEF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB9), 0x0000, 0x0000, + MB2(0xD6EC), 0x0000, 0x0000, MB2(0xD6EB), /* 5E40 */ + MB2(0xD6EA), MB2(0xC9FD), 0x0000, MB2(0xD6F3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBDA), 0x0000, MB2(0xD6ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6EF), MB2(0xCBEB), 0x0000, MB2(0xD6EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6F0), + 0x0000, MB2(0xC8A8), MB2(0xD6F1), MB2(0xCABE), /* 5E60 */ + MB2(0xD6F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4B3), MB2(0xCABF), + MB2(0xC7AF), MB2(0xD6F4), MB2(0xD6F5), 0x0000, + MB2(0xB9AC), MB2(0xB4B4), MB2(0xD6F6), MB2(0xB8B8), + MB2(0xCDC4), MB2(0xCDA9), MB2(0xB4F6), MB2(0xD6F8), + 0x0000, MB2(0xC4A3), 0x0000, MB2(0xB9AD), /* 5E80 */ + MB2(0xBEB1), 0x0000, 0x0000, MB2(0xC8DF), + 0x0000, 0x0000, MB2(0xBEB2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4EC), MB2(0xCAF9), MB2(0xC5B9), + 0x0000, 0x0000, MB2(0xB9AE), 0x0000, + MB2(0xC9DC), 0x0000, 0x0000, 0x0000, + MB2(0xD6F9), 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, MB2(0xC5D9), MB2(0xBAC2), + 0x0000, 0x0000, 0x0000, MB2(0xB8CB), + 0x0000, MB2(0xC4ED), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0C3), MB2(0xBDEE), MB2(0xB9AF), + MB2(0xCDC7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6FA), MB2(0xD6FB), MB2(0xC7D1), /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6FC), MB2(0xCEF7), MB2(0xCFAD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6FE), + MB2(0xD6FD), 0x0000, 0x0000, MB2(0xB3C7), + 0x0000, 0x0000, MB2(0xD7A1), 0x0000, + 0x0000, 0x0000, MB2(0xD7A4), MB2(0xD7A5), + 0x0000, MB2(0xD7A3), 0x0000, MB2(0xC9C0), + MB2(0xBEB3), MB2(0xD7A7), MB2(0xD7A6), MB2(0xD7A2), /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7A8), MB2(0xD7A9), 0x0000, 0x0000, + MB2(0xD7AA), 0x0000, 0x0000, 0x0000, + MB2(0xD7AD), MB2(0xD7AB), 0x0000, MB2(0xD7AC), + MB2(0xD7AE), 0x0000, MB2(0xB1E4), MB2(0xC4EE), + MB2(0xD7AF), 0x0000, MB2(0xB7FA), MB2(0xB2F6), + MB2(0xC7B6), 0x0000, MB2(0xD7B0), MB2(0xC6FB), + 0x0000, MB2(0xCADB), 0x0000, MB2(0xD7B1), /* 5F00 */ + MB2(0xCFAE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7B2), MB2(0xCAC0), MB2(0xD7B5), + MB2(0xD0A1), MB2(0xD0B1), 0x0000, MB2(0xBCB0), + MB2(0xC6F5), MB2(0xD7B6), 0x0000, MB2(0xB5DD), + MB2(0xC4A4), MB2(0xB0FA), MB2(0xD7B7), MB2(0xCAA6), + MB2(0xB9B0), 0x0000, 0x0000, MB2(0xC3D0), + 0x0000, 0x0000, 0x0000, MB2(0xC4EF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, MB2(0xCCEF), MB2(0xB8B9), MB2(0xB8CC), + 0x0000, MB2(0xD7B8), 0x0000, 0x0000, + 0x0000, MB2(0xD7B9), 0x0000, MB2(0xD7BF), + 0x0000, MB2(0xBCE5), 0x0000, 0x0000, + 0x0000, MB2(0xC4A5), 0x0000, MB2(0xB6AF), + MB2(0xD7BA), 0x0000, 0x0000, 0x0000, + MB2(0xC9AB), 0x0000, MB2(0xC3C6), 0x0000, + 0x0000, MB2(0xD7BB), 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7BC), 0x0000, MB2(0xB6B0), 0x0000, + MB2(0xD7BD), 0x0000, MB2(0xD7BE), 0x0000, + 0x0000, MB2(0xD7C0), 0x0000, MB2(0xC5F6), + 0x0000, 0x0000, MB2(0xD7C1), MB2(0xD7C2), + 0x0000, MB2(0xD7C3), 0x0000, 0x0000, + MB2(0xD7B4), MB2(0xD7B3), 0x0000, 0x0000, + 0x0000, MB2(0xD7C4), MB2(0xB7C1), 0x0000, /* 5F60 */ + 0x0000, 0x0000, MB2(0xC9A7), 0x0000, + 0x0000, MB2(0xBACC), MB2(0xC9B7), MB2(0xC4A6), + MB2(0xC9CB), MB2(0xD7C5), 0x0000, 0x0000, + MB2(0xBEB4), MB2(0xB1C6), 0x0000, MB2(0xD7C6), + 0x0000, 0x0000, 0x0000, MB2(0xD7C7), + 0x0000, MB2(0xCCF2), 0x0000, 0x0000, + MB2(0xC8E0), 0x0000, 0x0000, MB2(0xD7CA), + MB2(0xB1FD), MB2(0xC0AC), MB2(0xD7C9), MB2(0xD7C8), /* 5F80 */ + MB2(0xB7C2), MB2(0xC2D4), 0x0000, MB2(0xD7CE), + MB2(0xD7CC), 0x0000, MB2(0xD7CB), MB2(0xCEA7), + MB2(0xB8E5), 0x0000, 0x0000, 0x0000, + MB2(0xBDF9), MB2(0xD7CD), MB2(0xC5CC), MB2(0xBDBE), + 0x0000, 0x0000, 0x0000, MB2(0xC6C0), + MB2(0xD7D1), MB2(0xD7D0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7CF), 0x0000, + MB2(0xD7D2), MB2(0xB8E6), 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7D3), MB2(0xC9FC), MB2(0xBDDB), 0x0000, + 0x0000, MB2(0xD7D4), MB2(0xC8F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6C1), + MB2(0xC4A7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5B0), 0x0000, 0x0000, + MB2(0xD7D5), MB2(0xB5AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFB4), /* 5FC0 */ + 0x0000, MB2(0xC9AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4F7), MB2(0xC7A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7D6), MB2(0xBBD6), + MB2(0xCBBA), MB2(0xCBBB), 0x0000, 0x0000, + MB2(0xB1FE), MB2(0xD7DB), 0x0000, 0x0000, + MB2(0xC3E9), 0x0000, 0x0000, 0x0000, /* 5FE0 */ + MB2(0xD7D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8AD), MB2(0xD7DA), 0x0000, 0x0000, + 0x0000, MB2(0xC7B0), 0x0000, 0x0000, + MB2(0xD7D9), 0x0000, 0x0000, MB2(0xD7D7), + 0x0000, MB2(0xB9FA), 0x0000, MB2(0xD7DD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7E3), MB2(0xD7E9), + MB2(0xD7E1), 0x0000, MB2(0xC5DC), 0x0000, + 0x0000, MB2(0xD7E6), MB2(0xC9DD), 0x0000, + 0x0000, MB2(0xD7E0), 0x0000, MB2(0xD7E5), + MB2(0xCEE7), MB2(0xBBD7), 0x0000, 0x0000, + MB2(0xC2D5), MB2(0xD7DE), 0x0000, 0x0000, /* 6020 */ + 0x0000, MB2(0xB5DE), MB2(0xD7E8), MB2(0xC0AD), + MB2(0xB1E5), MB2(0xD7E2), MB2(0xB2F8), MB2(0xD7E7), + 0x0000, 0x0000, 0x0000, MB2(0xB6B1), + 0x0000, MB2(0xD7E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7EC), MB2(0xD7F6), MB2(0xD7F4), /* 6040 */ + 0x0000, 0x0000, MB2(0xD7F1), 0x0000, + 0x0000, 0x0000, MB2(0xD7F0), MB2(0xCEF8), + 0x0000, MB2(0xD7F2), 0x0000, 0x0000, + MB2(0xB6B2), 0x0000, MB2(0xB9B1), 0x0000, + 0x0000, MB2(0xBDFA), 0x0000, 0x0000, + 0x0000, MB2(0xD7F9), MB2(0xD7EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7EF), + MB2(0xD7DF), 0x0000, MB2(0xB2FA), MB2(0xD7F3), /* 6060 */ + MB2(0xD7F5), MB2(0xC3D1), 0x0000, 0x0000, + MB2(0xBAA8), MB2(0xB2B8), MB2(0xD7ED), MB2(0xD7F8), + MB2(0xD7F7), MB2(0xB6B3), 0x0000, MB2(0xC2A9), + MB2(0xB3E6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7C3), 0x0000, MB2(0xD7EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7FA), 0x0000, MB2(0xD7FD), /* 6080 */ + MB2(0xD8A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCBD), 0x0000, MB2(0xD8A7), + MB2(0xC4F0), MB2(0xD7FB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8A5), 0x0000, + MB2(0xB2F9), 0x0000, MB2(0xD8A3), MB2(0xD8A4), + 0x0000, 0x0000, MB2(0xD7FE), MB2(0xD8A2), + 0x0000, 0x0000, 0x0000, MB2(0xB8E7), + MB2(0xCDAA), 0x0000, 0x0000, MB2(0xB4B5), /* 60A0 */ + 0x0000, 0x0000, MB2(0xB1D9), MB2(0xD8A6), + 0x0000, MB2(0xC7BA), MB2(0xB0AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8E1), MB2(0xD7DC), + MB2(0xD8AC), MB2(0xD8B0), MB2(0xCCE5), 0x0000, + MB2(0xD8A9), 0x0000, 0x0000, 0x0000, + MB2(0xC5E9), MB2(0xD8AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, MB2(0xBEF0), MB2(0xD8AF), MB2(0xC6D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFC7), 0x0000, MB2(0xD8AB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8B1), 0x0000, MB2(0xB9FB), 0x0000, + MB2(0xC0CB), 0x0000, 0x0000, MB2(0xB0D4), + MB2(0xD8AA), MB2(0xD8A8), 0x0000, MB2(0xC1DA), /* 60E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD7FC), + MB2(0xBBB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2C6), MB2(0xD8BD), 0x0000, MB2(0xC1DB), + MB2(0xD8B8), 0x0000, MB2(0xD8B5), MB2(0xD8B6), + 0x0000, MB2(0xBCE6), MB2(0xD8B9), MB2(0xD8BC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8B7), MB2(0xBDA5), 0x0000, MB2(0xD8BA), /* 6100 */ + 0x0000, 0x0000, MB2(0xD8B4), 0x0000, + MB2(0xCCFC), MB2(0xCCFB), 0x0000, 0x0000, + 0x0000, MB2(0xD8BE), MB2(0xD8BF), MB2(0xB0D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8B3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6F2), MB2(0xB0A6), + 0x0000, 0x0000, 0x0000, MB2(0xB4B6), + 0x0000, MB2(0xD8BB), 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8C3), + MB2(0xD8C2), 0x0000, 0x0000, 0x0000, + MB2(0xD8C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8C8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8C6), MB2(0xD8C9), MB2(0xD8C1), MB2(0xD8C5), + 0x0000, 0x0000, MB2(0xD8CA), 0x0000, /* 6140 */ + MB2(0xD8CB), 0x0000, 0x0000, MB2(0xD8C0), + MB2(0xBBFC), 0x0000, MB2(0xD8C4), MB2(0xC2D6), + MB2(0xB9B2), MB2(0xD8B2), MB2(0xBFB5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8D8), + 0x0000, MB2(0xCAE9), 0x0000, 0x0000, + MB2(0xD8CE), MB2(0xD8CF), MB2(0xD8D0), 0x0000, + 0x0000, MB2(0xD8D7), 0x0000, MB2(0xD8D6), + 0x0000, 0x0000, MB2(0xCBFD), MB2(0xB4B7), /* 6160 */ + 0x0000, MB2(0xD8D4), 0x0000, MB2(0xB7C5), + MB2(0xB3B4), 0x0000, 0x0000, MB2(0xD8D1), + 0x0000, 0x0000, MB2(0xCEB8), MB2(0xD8D3), + MB2(0xB0D6), MB2(0xD8D5), 0x0000, MB2(0xD8CC), + MB2(0xD8D2), MB2(0xD8D9), MB2(0xB7C4), MB2(0xD8CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDDD), 0x0000, + 0x0000, 0x0000, MB2(0xCDAB), 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8DC), + 0x0000, 0x0000, MB2(0xD8E0), 0x0000, + 0x0000, 0x0000, MB2(0xC1FE), 0x0000, + MB2(0xCEF9), MB2(0xD8E1), 0x0000, 0x0000, + MB2(0xD8DE), 0x0000, MB2(0xD8DB), 0x0000, + 0x0000, MB2(0xD8DA), MB2(0xD8DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + MB2(0xCAB0), 0x0000, 0x0000, MB2(0xC6B4), + 0x0000, MB2(0xB7C6), 0x0000, MB2(0xD8E2), + MB2(0xD8DD), 0x0000, MB2(0xD8E3), 0x0000, + 0x0000, 0x0000, MB2(0xB7FB), 0x0000, + 0x0000, 0x0000, MB2(0xB2B1), 0x0000, + 0x0000, 0x0000, MB2(0xD8EB), 0x0000, + 0x0000, 0x0000, MB2(0xB4B8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8E9), /* 61C0 */ + 0x0000, 0x0000, MB2(0xD8EA), MB2(0xBAA9), + MB2(0xD8E8), MB2(0xD8E6), MB2(0xD8E5), MB2(0xD8EC), + MB2(0xD8E4), MB2(0xD8EE), 0x0000, 0x0000, + MB2(0xB2FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8F0), /* 61E0 */ + 0x0000, 0x0000, MB2(0xD8EF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4A8), 0x0000, + MB2(0xD8F3), 0x0000, MB2(0xD8F1), MB2(0xD8E7), + MB2(0xB7FC), 0x0000, MB2(0xD8F2), 0x0000, + MB2(0xD8F6), MB2(0xD8F5), MB2(0xD8F7), MB2(0xD8F4), + MB2(0xD8F8), 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8F9), MB2(0xD8FA), MB2(0xCAEA), 0x0000, + MB2(0xD8FC), MB2(0xD8FB), MB2(0xBDBF), 0x0000, + MB2(0xC0AE), MB2(0xB2E6), MB2(0xB2FC), 0x0000, + MB2(0xD8FD), 0x0000, MB2(0xB0BF), 0x0000, + 0x0000, 0x0000, MB2(0xC0CC), MB2(0xD8FE), + 0x0000, MB2(0xECC3), MB2(0xD9A1), MB2(0xB7E1), + 0x0000, MB2(0xD9A2), 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, MB2(0xC0EF), 0x0000, + 0x0000, 0x0000, MB2(0xD9A3), 0x0000, + 0x0000, 0x0000, MB2(0xD9A4), MB2(0xB5BA), + MB2(0xD9A5), 0x0000, MB2(0xD9A6), MB2(0xD9A7), + MB2(0xC2D7), 0x0000, 0x0000, 0x0000, + MB2(0xB8CD), 0x0000, 0x0000, MB2(0xCCE1), + 0x0000, 0x0000, 0x0000, MB2(0xCBBC), + MB2(0xBDEA), MB2(0xD9A8), 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, MB2(0xC0F0), + MB2(0xEEBD), MB2(0xC8E2), 0x0000, MB2(0xBCEA), + 0x0000, MB2(0xBACD), MB2(0xD9A9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2C7), + 0x0000, MB2(0xCAA7), 0x0000, 0x0000, + MB2(0xC2F1), 0x0000, 0x0000, MB2(0xD9AC), + 0x0000, 0x0000, MB2(0xD9AA), 0x0000, + MB2(0xD9AD), 0x0000, 0x0000, MB2(0xD9AB), /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9AE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAB1), 0x0000, + 0x0000, MB2(0xB0B7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9DE), 0x0000, + 0x0000, MB2(0xC8E3), 0x0000, 0x0000, + MB2(0xD9AF), 0x0000, MB2(0xD9B2), MB2(0xBEB5), + MB2(0xB5BB), 0x0000, MB2(0xD9B0), MB2(0xD9B7), /* 6280 */ + MB2(0xBEB6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9B1), MB2(0xC7C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDDE), MB2(0xD9B3), MB2(0xD9B4), + MB2(0xD9B8), MB2(0xC5EA), MB2(0xD9B5), MB2(0xB9B3), + MB2(0xC0DE), 0x0000, 0x0000, MB2(0xD9C6), + MB2(0xC8B4), 0x0000, MB2(0xC2F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8E4), + MB2(0xDAAD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAFA), 0x0000, 0x0000, + 0x0000, MB2(0xC4F1), 0x0000, 0x0000, + 0x0000, MB2(0xCBF5), 0x0000, MB2(0xD9BB), + MB2(0xB2A1), MB2(0xC3EA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9C4), 0x0000, /* 62C0 */ + 0x0000, MB2(0xC3B4), MB2(0xD9BE), MB2(0xD9C5), + MB2(0xD9C0), MB2(0xD9C7), MB2(0xD9C3), 0x0000, + MB2(0xD9C2), MB2(0xC7EF), 0x0000, MB2(0xD9BC), + MB2(0xB2FD), MB2(0xD9BA), MB2(0xB5F1), MB2(0xC2F3), + MB2(0xD9B6), 0x0000, 0x0000, MB2(0xD9B9), + MB2(0xB9B4), MB2(0xC0DB), 0x0000, MB2(0xBEB7), + MB2(0xD9C1), MB2(0xC7D2), 0x0000, 0x0000, + MB2(0xB5F2), MB2(0xB3C8), 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3E7), MB2(0xBFA1), MB2(0xD9C9), MB2(0xD9CE), + 0x0000, MB2(0xD9CA), 0x0000, MB2(0xB7FD), + 0x0000, MB2(0xD9CF), MB2(0xBBA2), MB2(0xB9E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDA6), MB2(0xD9BD), + 0x0000, MB2(0xBBFD), MB2(0xD9CC), 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBD8), + MB2(0xD9CD), MB2(0xB0C4), 0x0000, 0x0000, + MB2(0xD9C8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6B4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9CB), + MB2(0xB0A7), 0x0000, 0x0000, MB2(0xBAC3), + 0x0000, 0x0000, 0x0000, MB2(0xBFB6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4F2), 0x0000, + 0x0000, MB2(0xC8D4), MB2(0xD9D1), MB2(0xC1DE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2AA), 0x0000, 0x0000, + MB2(0xBBAB), MB2(0xD9D2), 0x0000, MB2(0xD9D4), + MB2(0xD9D0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAE1), 0x0000, MB2(0xC4BD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, MB2(0xCAFB), + MB2(0xBCCE), MB2(0xD9E0), 0x0000, MB2(0xD9DF), + 0x0000, 0x0000, MB2(0xBFF8), 0x0000, + 0x0000, 0x0000, MB2(0xB7FE), 0x0000, + 0x0000, 0x0000, MB2(0xD9D9), MB2(0xBEB9), + 0x0000, 0x0000, MB2(0xC6E8), MB2(0xC7B1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9D7), 0x0000, 0x0000, MB2(0xC1DD), /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCF8), MB2(0xD9DC), 0x0000, 0x0000, + MB2(0xBEB8), 0x0000, MB2(0xD9D6), MB2(0xD9DB), + 0x0000, 0x0000, MB2(0xC7D3), 0x0000, + 0x0000, 0x0000, MB2(0xD9D5), 0x0000, + MB2(0xB7A1), 0x0000, 0x0000, MB2(0xB3DD), + 0x0000, 0x0000, 0x0000, MB2(0xD9DD), + MB2(0xCEAB), MB2(0xBACE), MB2(0xC3B5), MB2(0xD9DA), /* 63A0 */ + 0x0000, MB2(0xC0DC), 0x0000, MB2(0xB9B5), + MB2(0xBFE4), MB2(0xB1E6), MB2(0xC1BC), MB2(0xD9D8), + MB2(0xB5C5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7C7), 0x0000, + MB2(0xC4CF), MB2(0xD9DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1DF), + 0x0000, 0x0000, MB2(0xD9E1), 0x0000, + MB2(0xD9E3), 0x0000, 0x0000, MB2(0xC2B7), /* 63C0 */ + MB2(0xD9E9), 0x0000, MB2(0xD9E4), 0x0000, + 0x0000, MB2(0xD9E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9C1), + MB2(0xC4F3), 0x0000, MB2(0xD9E7), 0x0000, + 0x0000, 0x0000, MB2(0xCDAC), 0x0000, + 0x0000, 0x0000, MB2(0xCDC8), MB2(0xB4B9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0AE), 0x0000, MB2(0xD9E5), /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9E2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4F8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1E7), 0x0000, MB2(0xD9E8), 0x0000, + 0x0000, 0x0000, MB2(0xCDC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, MB2(0xD9EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2BB), 0x0000, MB2(0xD9F3), + 0x0000, 0x0000, 0x0000, MB2(0xD9ED), + 0x0000, 0x0000, MB2(0xD9EA), MB2(0xD9F1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, MB2(0xD9EE), 0x0000, + MB2(0xD9F2), 0x0000, 0x0000, 0x0000, + MB2(0xC8C2), MB2(0xC5EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9EB), 0x0000, MB2(0xD9EF), 0x0000, + 0x0000, 0x0000, MB2(0xB7C8), 0x0000, + 0x0000, 0x0000, MB2(0xBAF1), 0x0000, + 0x0000, 0x0000, MB2(0xC0DD), 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5A6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9F4), + 0x0000, MB2(0xCBE0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9F6), 0x0000, + MB2(0xCCCE), 0x0000, MB2(0xC0A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7E2), /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB5), MB2(0xD9FA), + 0x0000, MB2(0xD9F9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7B2), 0x0000, + 0x0000, 0x0000, MB2(0xC6B5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + MB2(0xC5B1), MB2(0xD9FB), 0x0000, 0x0000, + 0x0000, MB2(0xD9FC), 0x0000, MB2(0xC9EF), + 0x0000, MB2(0xC7C5), MB2(0xBBA3), 0x0000, + MB2(0xC0F1), 0x0000, MB2(0xCBD0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3C9), 0x0000, MB2(0xDAA5), + MB2(0xD9FE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDCA), MB2(0xDAA7), 0x0000, /* 64C0 */ + 0x0000, MB2(0xDAA3), 0x0000, MB2(0xDAA4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1E0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAA2), 0x0000, + MB2(0xD9BF), 0x0000, 0x0000, 0x0000, + MB2(0xDAA6), 0x0000, MB2(0xDAA1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAAB), MB2(0xDAAC), MB2(0xC5A7), MB2(0xDAAE), /* 64E0 */ + 0x0000, 0x0000, MB2(0xBBA4), MB2(0xDAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5BC), 0x0000, 0x0000, MB2(0xDAAF), + 0x0000, MB2(0xDAA8), MB2(0xDAB3), 0x0000, + MB2(0xDAB2), 0x0000, MB2(0xDAB1), 0x0000, + 0x0000, 0x0000, MB2(0xDAB4), 0x0000, + 0x0000, MB2(0xDAB6), MB2(0xBEF1), 0x0000, + MB2(0xDAB5), 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, MB2(0xDAB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAB7), 0x0000, 0x0000, 0x0000, + MB2(0xDAB8), MB2(0xD9F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDABB), /* 6520 */ + MB2(0xDABA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9F8), MB2(0xDABC), + MB2(0xDAB0), 0x0000, 0x0000, MB2(0xBBD9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDABD), MB2(0xDABE), MB2(0xDAC0), MB2(0xDABF), + MB2(0xDAC1), MB2(0xB2FE), 0x0000, MB2(0xB9B6), + 0x0000, 0x0000, MB2(0xCAFC), MB2(0xC0AF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, MB2(0xB8CE), 0x0000, 0x0000, + MB2(0xDAC3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAC6), 0x0000, MB2(0xC9D2), + 0x0000, MB2(0xB5DF), 0x0000, 0x0000, + 0x0000, MB2(0xDAC5), MB2(0xDAC4), MB2(0xC7D4), + MB2(0xDAC7), MB2(0xB6B5), 0x0000, 0x0000, + 0x0000, MB2(0xDAC9), MB2(0xDAC8), 0x0000, + 0x0000, 0x0000, MB2(0xB4BA), MB2(0xBBB6), /* 6560 */ + 0x0000, 0x0000, MB2(0xC6D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7C9), 0x0000, 0x0000, 0x0000, + MB2(0xBFF4), 0x0000, MB2(0xDACA), 0x0000, + MB2(0xC0B0), MB2(0xC5A8), 0x0000, MB2(0xC9DF), + MB2(0xDACB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDACC), MB2(0xDACD), /* 6580 */ + 0x0000, 0x0000, 0x0000, MB2(0xCAB8), + MB2(0xD5DD), MB2(0xC0C6), 0x0000, 0x0000, + MB2(0xC9CC), 0x0000, MB2(0xBAD8), 0x0000, + MB2(0xC8E5), MB2(0xC8C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5CD), + 0x0000, MB2(0xCEC1), 0x0000, MB2(0xDACF), + MB2(0xBCD0), 0x0000, 0x0000, MB2(0xDAD0), + 0x0000, MB2(0xB0B6), 0x0000, 0x0000, /* 65A0 */ + MB2(0xB6D4), MB2(0xC0CD), 0x0000, MB2(0xC9E0), + 0x0000, 0x0000, 0x0000, MB2(0xDAD1), + MB2(0xBBC2), MB2(0xC3C7), 0x0000, MB2(0xBBDB), + MB2(0xBFB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDAD2), + 0x0000, MB2(0xCAFD), 0x0000, 0x0000, + MB2(0xB1F7), MB2(0xBBDC), 0x0000, 0x0000, + 0x0000, MB2(0xDAD5), 0x0000, MB2(0xDAD3), /* 65C0 */ + MB2(0xDAD6), MB2(0xCEB9), MB2(0xDAD4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0FB), + MB2(0xDAD7), 0x0000, 0x0000, MB2(0xC2B2), + 0x0000, 0x0000, MB2(0xDAD8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4FA), + 0x0000, MB2(0xDADA), 0x0000, MB2(0xDAD9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDADB), MB2(0xDADC), MB2(0xB4FB), 0x0000, /* 65E0 */ + 0x0000, MB2(0xC6FC), MB2(0xC3B6), MB2(0xB5EC), + MB2(0xBBDD), MB2(0xC1E1), 0x0000, 0x0000, + MB2(0xBDDC), MB2(0xB0B0), 0x0000, 0x0000, + 0x0000, MB2(0xDADD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2A2), MB2(0xDAE1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9B7), MB2(0xDAE0), /* 6600 */ + 0x0000, 0x0000, MB2(0xBAAB), MB2(0xBEBA), + 0x0000, 0x0000, MB2(0xDADF), 0x0000, + MB2(0xBEBB), 0x0000, MB2(0xCCC0), MB2(0xBAAA), + 0x0000, 0x0000, 0x0000, MB2(0xB0D7), + MB2(0xC0CE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAE6), 0x0000, 0x0000, MB2(0xC0B1), + MB2(0xB1C7), 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, MB2(0xBDD5), 0x0000, MB2(0xCBE6), + MB2(0xBAF2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEBC), 0x0000, MB2(0xC0A7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAE5), MB2(0xDAE3), MB2(0xDAE4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3EB), 0x0000, 0x0000, MB2(0xDBA6), + 0x0000, MB2(0xDAEA), MB2(0xBBFE), MB2(0xB9B8), /* 6640 */ + MB2(0xDAE8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAE9), 0x0000, MB2(0xBFB8), + 0x0000, 0x0000, 0x0000, MB2(0xDAE7), + 0x0000, 0x0000, MB2(0xBBAF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAEC), MB2(0xDAEB), MB2(0xDAF0), + 0x0000, 0x0000, MB2(0xDAF1), 0x0000, /* 6660 */ + MB2(0xDAED), 0x0000, MB2(0xB3A2), MB2(0xDAEE), + MB2(0xDAEF), MB2(0xC8D5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9E1), MB2(0xB7CA), + MB2(0xDAF2), 0x0000, 0x0000, 0x0000, + MB2(0xC0B2), 0x0000, MB2(0xBEBD), 0x0000, + 0x0000, 0x0000, MB2(0xC3D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6C7), 0x0000, MB2(0xDAF3), /* 6680 */ + MB2(0xDAF7), 0x0000, 0x0000, MB2(0xB2CB), + MB2(0xDAF4), MB2(0xDAF6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAF5), 0x0000, + 0x0000, MB2(0xBDEB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3C8), MB2(0xB0C5), + MB2(0xDAF8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAF9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4AA), 0x0000, /* 66A0 */ + 0x0000, 0x0000, MB2(0xCEF1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBC3), + 0x0000, 0x0000, MB2(0xCAEB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBBD), 0x0000, 0x0000, 0x0000, + MB2(0xDBA2), MB2(0xDAFB), 0x0000, 0x0000, + MB2(0xDAFE), 0x0000, MB2(0xDAFD), 0x0000, + 0x0000, MB2(0xDAFA), 0x0000, 0x0000, /* 66C0 */ + MB2(0xDBA1), 0x0000, 0x0000, MB2(0xC6DE), + 0x0000, MB2(0xDAFC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBA3), 0x0000, + 0x0000, MB2(0xBDEC), MB2(0xDBA4), 0x0000, + MB2(0xCDCB), MB2(0xC7F8), 0x0000, 0x0000, + MB2(0xDBA5), 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, MB2(0xDBA7), 0x0000, + 0x0000, MB2(0xDBA8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBA9), 0x0000, MB2(0xB6CA), MB2(0xB1C8), + MB2(0xB9B9), MB2(0xDBAA), 0x0000, MB2(0xDBAB), + MB2(0xBDF1), MB2(0xC1E2), 0x0000, 0x0000, + MB2(0xD2D8), MB2(0xC1BE), MB2(0xC1BD), MB2(0xC2D8), + MB2(0xBAC7), 0x0000, 0x0000, MB2(0xD0F2), /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7EE), MB2(0xCDAD), 0x0000, MB2(0xCAFE), + 0x0000, MB2(0xC9FE), 0x0000, MB2(0xDBAC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAF3), MB2(0xC4BF), MB2(0xDBAD), MB2(0xCFAF), + 0x0000, 0x0000, 0x0000, MB2(0xCBBE), + 0x0000, MB2(0xC4AB), MB2(0xDBAE), MB2(0xB4FC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, MB2(0xDBAF), MB2(0xDBB0), + MB2(0xCCDA), 0x0000, MB2(0xCCA4), MB2(0xCBF6), + MB2(0xCBDC), MB2(0xBBA5), MB2(0xDBB2), 0x0000, + 0x0000, MB2(0xBCEB), 0x0000, 0x0000, + MB2(0xCBD1), 0x0000, MB2(0xDBB4), MB2(0xDBB7), + MB2(0xDBB6), 0x0000, MB2(0xB4F9), 0x0000, + 0x0000, MB2(0xB5E0), 0x0000, MB2(0xDBB3), + 0x0000, MB2(0xDBB5), 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, MB2(0xDBB8), 0x0000, + 0x0000, MB2(0xBFF9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDFB), MB2(0xB0C9), + MB2(0xBAE0), MB2(0xC2BC), 0x0000, MB2(0xBCDD), + 0x0000, 0x0000, MB2(0xBEF3), 0x0000, + 0x0000, MB2(0xDBBB), 0x0000, 0x0000, + MB2(0xC5CE), 0x0000, MB2(0xDBB9), MB2(0xC2AB), + MB2(0xDBBA), MB2(0xBEF2), MB2(0xCCDD), MB2(0xDBBC), /* 6760 */ + MB2(0xDBBD), MB2(0xCDE8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBC2), 0x0000, + 0x0000, MB2(0xB9BA), 0x0000, MB2(0xC7D5), + MB2(0xDBBF), MB2(0xC5EC), MB2(0xDADE), MB2(0xDAE2), + 0x0000, MB2(0xB5CF), 0x0000, MB2(0xC7C7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBC1), 0x0000, MB2(0xBEBE), MB2(0xC8C4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, MB2(0xDBC7), 0x0000, MB2(0xC8FA), + 0x0000, MB2(0xDBBE), 0x0000, MB2(0xDBC4), + MB2(0xDBC3), 0x0000, 0x0000, 0x0000, + MB2(0xC0CF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBED), 0x0000, MB2(0xCED3), + 0x0000, 0x0000, MB2(0xCBE7), 0x0000, + MB2(0xB2CC), MB2(0xBBDE), 0x0000, 0x0000, + MB2(0xCFC8), MB2(0xDBC6), MB2(0xBFF5), 0x0000, /* 67A0 */ + 0x0000, 0x0000, MB2(0xDBC5), 0x0000, + 0x0000, MB2(0xDBC0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8CF), + 0x0000, 0x0000, 0x0000, MB2(0xDBCC), + MB2(0xDBCA), 0x0000, MB2(0xB2CD), MB2(0xDBC8), + MB2(0xDBCE), MB2(0xDBD4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2C8), 0x0000, 0x0000, /* 67C0 */ + MB2(0xCAC1), 0x0000, MB2(0xDBD6), 0x0000, + 0x0000, 0x0000, MB2(0xC9A2), 0x0000, + 0x0000, 0x0000, MB2(0xDBD5), MB2(0xC7F0), + MB2(0xCBBF), MB2(0xB4BB), 0x0000, MB2(0xC0F7), + MB2(0xBDC0), 0x0000, 0x0000, 0x0000, + MB2(0xC4D3), 0x0000, MB2(0xCDAE), 0x0000, + 0x0000, MB2(0xDBD1), MB2(0xDBD0), 0x0000, + 0x0000, 0x0000, MB2(0xDBD2), 0x0000, /* 67E0 */ + MB2(0xDBCF), 0x0000, 0x0000, MB2(0xDBD7), + 0x0000, MB2(0xDBCD), 0x0000, 0x0000, + MB2(0xDBCB), 0x0000, MB2(0xDBD3), MB2(0xDBC9), + 0x0000, MB2(0xC3EC), 0x0000, MB2(0xCCF8), + MB2(0xBCC6), MB2(0xBAF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBABA), + 0x0000, 0x0000, MB2(0xCBEF), MB2(0xB3C1), + 0x0000, 0x0000, MB2(0xC4CE), MB2(0xC6CA), /* 6800 */ + MB2(0xB1C9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0F2), + 0x0000, 0x0000, MB2(0xC0B4), MB2(0xB7AA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBD9), 0x0000, + 0x0000, MB2(0xB9BB), MB2(0xB3FC), 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBDB), MB2(0xB3F4), MB2(0xDBE1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBDE), 0x0000, + MB2(0xC0F3), 0x0000, 0x0000, 0x0000, + MB2(0xB3CB), MB2(0xBAAC), 0x0000, 0x0000, + MB2(0xB3CA), MB2(0xBACF), 0x0000, 0x0000, + MB2(0xDBDC), MB2(0xB7E5), MB2(0xB7CB), MB2(0xC5ED), /* 6840 */ + 0x0000, 0x0000, MB2(0xDBDA), 0x0000, + MB2(0xB0C6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBDD), MB2(0xDBDF), 0x0000, + MB2(0xB6CD), MB2(0xB7AC), 0x0000, MB2(0xB4BC), + MB2(0xB5CB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBE2), 0x0000, 0x0000, + MB2(0xBAF9), MB2(0xCBF1), 0x0000, MB2(0xBBB7), + 0x0000, 0x0000, 0x0000, MB2(0xDBE3), /* 6860 */ + 0x0000, 0x0000, 0x0000, MB2(0xC9B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBEF), 0x0000, MB2(0xB2B3), MB2(0xDBE4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBF5), MB2(0xDBE5), + 0x0000, MB2(0xCEC2), 0x0000, MB2(0xDBEC), /* 6880 */ + 0x0000, MB2(0xC7DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBF4), 0x0000, MB2(0xDBE7), + 0x0000, 0x0000, 0x0000, MB2(0xB0B4), + MB2(0xDBE9), 0x0000, 0x0000, MB2(0xB9BC), + 0x0000, 0x0000, 0x0000, MB2(0xDBEB), + 0x0000, MB2(0xDBEA), 0x0000, MB2(0xDBE6), + MB2(0xDBF1), 0x0000, MB2(0xBEBF), 0x0000, /* 68A0 */ + 0x0000, 0x0000, MB2(0xD4ED), MB2(0xB8E8), + MB2(0xCDFC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBE8), 0x0000, MB2(0xC4F4), + MB2(0xB3A3), MB2(0xBAAD), 0x0000, MB2(0xDBE0), + 0x0000, MB2(0xDBF0), MB2(0xB3E1), 0x0000, + 0x0000, MB2(0xDBEE), MB2(0xDBF2), 0x0000, + MB2(0xC5EE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + MB2(0xB4FE), 0x0000, MB2(0xDCB2), 0x0000, + 0x0000, MB2(0xCCC9), MB2(0xDBF7), MB2(0xB4FD), + 0x0000, MB2(0xDBFE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBC0), 0x0000, + MB2(0xDCA1), MB2(0xDCA3), 0x0000, MB2(0xDCA7), + MB2(0xDBF9), 0x0000, MB2(0xC3AA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5EF), + MB2(0xDCAB), MB2(0xDBFC), 0x0000, MB2(0xDCA8), /* 68E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCA2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFB9), MB2(0xDCAC), + 0x0000, 0x0000, MB2(0xC0B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCAA), MB2(0xB4BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFD0), MB2(0xDBF6), 0x0000, 0x0000, /* 6900 */ + MB2(0xDCA6), MB2(0xB0D8), 0x0000, 0x0000, + MB2(0xDBF8), 0x0000, 0x0000, MB2(0xCCBA), + MB2(0xDBFD), MB2(0xBFA2), MB2(0xC4C7), MB2(0xDBF3), + 0x0000, 0x0000, MB2(0xDCA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFFA), MB2(0xDCAF), MB2(0xB3F1), + MB2(0xB8A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB1), MB2(0xDBFA), MB2(0xDCB0), /* 6920 */ + 0x0000, MB2(0xDCA9), MB2(0xDBFB), 0x0000, + MB2(0xDCAD), 0x0000, MB2(0xDCAE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCBF), 0x0000, 0x0000, 0x0000, + MB2(0xC6CE), 0x0000, MB2(0xDCA4), 0x0000, + 0x0000, MB2(0xDCBB), 0x0000, 0x0000, + 0x0000, MB2(0xDCBD), 0x0000, MB2(0xC4D8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDCC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9F6), + MB2(0xDCB8), MB2(0xC2CA), 0x0000, 0x0000, + 0x0000, MB2(0xDCBE), MB2(0xC1BF), 0x0000, + MB2(0xDCB5), MB2(0xDCC2), MB2(0xDCC1), 0x0000, + MB2(0xC6EF), MB2(0xDCC0), MB2(0xC6EA), 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC4), MB2(0xDCB7), + 0x0000, MB2(0xB6C8), MB2(0xDCBA), MB2(0xBDDD), + 0x0000, 0x0000, 0x0000, MB2(0xC7E0), + MB2(0xDCBC), MB2(0xB6CB), 0x0000, MB2(0xDCB4), + MB2(0xDCB6), MB2(0xDCB3), 0x0000, 0x0000, + MB2(0xCFB0), MB2(0xB3DA), MB2(0xDCB9), 0x0000, + 0x0000, MB2(0xDCC3), MB2(0xB3B5), 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAE7), 0x0000, + 0x0000, 0x0000, MB2(0xB1DD), 0x0000, + 0x0000, MB2(0xDCD4), 0x0000, 0x0000, + MB2(0xCFB1), MB2(0xDCD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFBA), + MB2(0xDCD6), 0x0000, 0x0000, 0x0000, + MB2(0xDCD5), 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCD2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC6), 0x0000, + 0x0000, MB2(0xDCE3), MB2(0xDCC5), 0x0000, + MB2(0xDCD8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCD0), + 0x0000, 0x0000, MB2(0xDCCB), MB2(0xDCC8), + 0x0000, MB2(0xDCC9), 0x0000, MB2(0xDCD1), /* 69C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xF4A2), + 0x0000, 0x0000, MB2(0xDCCE), MB2(0xB9BD), + MB2(0xC4C8), MB2(0xC1E4), MB2(0xDCCC), 0x0000, + MB2(0xDCC7), 0x0000, 0x0000, MB2(0xDCCA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDCD), MB2(0xCBEA), 0x0000, 0x0000, + 0x0000, MB2(0xDCCF), MB2(0xDCD9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCE1), + MB2(0xDCDA), 0x0000, 0x0000, MB2(0xDCE7), + 0x0000, MB2(0xDCE5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCDF), 0x0000, MB2(0xC4D0), + 0x0000, MB2(0xC1E5), 0x0000, MB2(0xDCDD), + 0x0000, 0x0000, MB2(0xDCDB), 0x0000, /* 6A00 */ + 0x0000, MB2(0xDCE2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCE8), MB2(0xC8F5), + MB2(0xDCEE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCE9), MB2(0xDCEC), + MB2(0xDCE6), 0x0000, 0x0000, MB2(0xC3F4), + 0x0000, MB2(0xC9B8), 0x0000, MB2(0xDCDC), + 0x0000, 0x0000, MB2(0xDCE4), MB2(0xBEC0), + 0x0000, MB2(0xCCCF), MB2(0xDCF8), MB2(0xDCEB), /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8A2), MB2(0xB2A3), MB2(0xB3DF), + 0x0000, 0x0000, MB2(0xDCD3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEC1), MB2(0xDCF0), 0x0000, + MB2(0xDCF7), MB2(0xBCF9), MB2(0xB3F2), 0x0000, + 0x0000, MB2(0xC3AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + MB2(0xDCED), 0x0000, 0x0000, MB2(0xDCF2), + MB2(0xDCF6), 0x0000, 0x0000, MB2(0xB6B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5CC), MB2(0xDCF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5A1), + 0x0000, MB2(0xC6CB), MB2(0xDCF3), 0x0000, /* 6A60 */ + 0x0000, 0x0000, MB2(0xDCF5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCEF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3E0), + MB2(0xC3C9), 0x0000, 0x0000, 0x0000, /* 6A80 */ + MB2(0xDCFC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCFA), MB2(0xB8E9), 0x0000, + MB2(0xDCF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDA1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBD8), 0x0000, 0x0000, 0x0000, + MB2(0xDCFB), 0x0000, MB2(0xDCFD), MB2(0xDCFE), /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDAC), 0x0000, + MB2(0xDDA8), 0x0000, MB2(0xDBED), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDA7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDA6), 0x0000, 0x0000, MB2(0xDDA3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCEA), MB2(0xDDA5), MB2(0xDDA4), /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDAA), 0x0000, MB2(0xCFA6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDAD), MB2(0xB6FB), + 0x0000, 0x0000, MB2(0xDDA9), MB2(0xDDAB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8A7), 0x0000, MB2(0xDDAE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDB2), MB2(0xDDAF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + MB2(0xCDF3), MB2(0xDDB0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDB3), 0x0000, + 0x0000, 0x0000, MB2(0xDDB4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1B5), 0x0000, MB2(0xDDB6), + MB2(0xB7E7), MB2(0xBCA1), 0x0000, MB2(0xB6D5), /* 6B20 */ + 0x0000, 0x0000, 0x0000, MB2(0xB2A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDDF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDB8), + MB2(0xDDB7), MB2(0xDDBA), MB2(0xB5BD), 0x0000, + 0x0000, MB2(0xB6D6), MB2(0xB4BE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDBD), /* 6B40 */ + 0x0000, 0x0000, 0x0000, MB2(0xDDBC), + 0x0000, MB2(0xDDBE), 0x0000, 0x0000, + MB2(0xB2CE), 0x0000, MB2(0xC3B7), 0x0000, + MB2(0xDDBF), 0x0000, 0x0000, MB2(0xB4BF), + MB2(0xDDC1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDC0), 0x0000, MB2(0xDDC2), + 0x0000, 0x0000, 0x0000, MB2(0xDDC3), + 0x0000, MB2(0xDDC4), MB2(0xBBDF), MB2(0xC0B5), /* 6B60 */ + MB2(0xBAA1), 0x0000, MB2(0xC9F0), 0x0000, + 0x0000, MB2(0xCAE2), MB2(0xCFC4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBF5), + 0x0000, 0x0000, 0x0000, MB2(0xBAD0), + MB2(0xCEF2), 0x0000, 0x0000, 0x0000, + MB2(0xDDC5), MB2(0xDDC6), 0x0000, MB2(0xBBE0), + 0x0000, 0x0000, 0x0000, MB2(0xDDC7), + MB2(0xDDC8), 0x0000, 0x0000, MB2(0xDDCA), /* 6B80 */ + MB2(0xDDC9), 0x0000, MB2(0xCBD8), 0x0000, + 0x0000, MB2(0xBDDE), MB2(0xBCEC), MB2(0xBBC4), + 0x0000, MB2(0xDDCB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDCD), MB2(0xBFA3), 0x0000, + MB2(0xDDCC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDCE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + MB2(0xDDCF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDD0), MB2(0xDDD1), + 0x0000, 0x0000, 0x0000, MB2(0xDDD2), + 0x0000, MB2(0xDDD4), MB2(0xDDD3), MB2(0xDDD5), + MB2(0xB2A5), MB2(0xC3CA), 0x0000, MB2(0xDDD6), + 0x0000, 0x0000, MB2(0xBBA6), MB2(0xB3CC), + MB2(0xDDD7), 0x0000, 0x0000, MB2(0xC5C2), + MB2(0xD4CC), 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, MB2(0xB5A3), MB2(0xDDD8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDD9), + 0x0000, MB2(0xCAEC), MB2(0xCBE8), 0x0000, + 0x0000, 0x0000, MB2(0xC6C7), MB2(0xDDDA), + MB2(0xC8E6), 0x0000, 0x0000, 0x0000, + MB2(0xC8FB), 0x0000, 0x0000, MB2(0xCCD3), + 0x0000, 0x0000, 0x0000, MB2(0xDDDB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDDD), + MB2(0xDDDC), 0x0000, 0x0000, MB2(0xDDDF), + 0x0000, 0x0000, 0x0000, MB2(0xDDDE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDE1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBE1), + 0x0000, MB2(0xCCB1), 0x0000, MB2(0xDDE2), + MB2(0xDDE3), 0x0000, 0x0000, MB2(0xB5A4), + 0x0000, 0x0000, 0x0000, MB2(0xDDE4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDE6), /* 6C20 */ + MB2(0xDDE5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFE5), 0x0000, 0x0000, MB2(0xC9B9), + MB2(0xB1CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8C5), 0x0000, + MB2(0xC4F5), MB2(0xBDC1), MB2(0xB5E1), 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8C6), 0x0000, + MB2(0xBCAE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDE8), 0x0000, MB2(0xB4C0), + 0x0000, 0x0000, MB2(0xB1F8), 0x0000, + 0x0000, MB2(0xC6F2), MB2(0xDDE7), MB2(0xB9BE), + MB2(0xC3D3), 0x0000, MB2(0xDDE9), 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDF1), 0x0000, MB2(0xDDEA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2C1), 0x0000, MB2(0xB5E2), MB2(0xDDF2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7E8), 0x0000, + 0x0000, MB2(0xB5A5), MB2(0xDDF0), 0x0000, + 0x0000, MB2(0xDDEE), MB2(0xDDEB), MB2(0xCDE0), /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4C0), 0x0000, 0x0000, 0x0000, + MB2(0xC6D9), MB2(0xDDEC), 0x0000, 0x0000, + MB2(0xDDF4), 0x0000, MB2(0xDDF3), MB2(0xB7A3), + 0x0000, 0x0000, MB2(0xB2AD), 0x0000, + 0x0000, MB2(0xBABB), MB2(0xDDED), MB2(0xDDEF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBD7), MB2(0xC2F4), 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBF7), + 0x0000, 0x0000, MB2(0xDDFC), 0x0000, + 0x0000, MB2(0xDDFD), 0x0000, MB2(0xB2CF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA8), MB2(0xCCFD), MB2(0xDEA1), MB2(0xBCA3), + MB2(0xBEC2), MB2(0xDDF8), MB2(0xDDFE), MB2(0xB1E8), + 0x0000, MB2(0xB6B7), 0x0000, 0x0000, /* 6CC0 */ + MB2(0xDDF5), MB2(0xDDFA), 0x0000, 0x0000, + 0x0000, MB2(0xC0F4), MB2(0xC7F1), 0x0000, + MB2(0xC8E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDF7), + 0x0000, MB2(0xCBA1), 0x0000, MB2(0xDDF9), + 0x0000, MB2(0xDEA4), 0x0000, MB2(0xDEA2), + 0x0000, MB2(0xDDFB), 0x0000, 0x0000, + 0x0000, MB2(0xCBA2), MB2(0xC7C8), MB2(0xB5E3), /* 6CE0 */ + 0x0000, MB2(0xC5A5), 0x0000, 0x0000, + MB2(0xC3ED), 0x0000, MB2(0xDEA5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEA3), + MB2(0xC2D9), MB2(0xDDF6), 0x0000, MB2(0xB1CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDCE), + MB2(0xDEB0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEAF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0F6), + 0x0000, MB2(0xDEAC), 0x0000, MB2(0xCDEC), + 0x0000, 0x0000, MB2(0xC6B6), MB2(0xDEA6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, MB2(0xC4C5), 0x0000, 0x0000, + 0x0000, MB2(0xB1CC), MB2(0xB9BF), MB2(0xDEA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDA7), MB2(0xDEAE), + 0x0000, MB2(0xDEAD), MB2(0xDEA8), 0x0000, + MB2(0xDEAB), 0x0000, 0x0000, MB2(0xB3E8), + 0x0000, MB2(0xDEAA), MB2(0xC7C9), 0x0000, + 0x0000, MB2(0xCEAE), 0x0000, 0x0000, /* 6D40 */ + MB2(0xBEF4), MB2(0xC0F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEB6), MB2(0xDEB4), 0x0000, + MB2(0xC9CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEB1), /* 6D60 */ + MB2(0xDEB3), 0x0000, MB2(0xB1BA), 0x0000, + 0x0000, MB2(0xB9C0), MB2(0xCFB2), 0x0000, + MB2(0xB3BD), 0x0000, MB2(0xC9E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDE1), 0x0000, 0x0000, MB2(0xB3A4), + MB2(0xBFBB), MB2(0xDEB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, MB2(0xDEBA), 0x0000, 0x0000, + MB2(0xBEC3), 0x0000, 0x0000, 0x0000, + MB2(0xCDB0), 0x0000, MB2(0xDEB7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEB2), + 0x0000, MB2(0xDEB8), 0x0000, 0x0000, + 0x0000, MB2(0xCEDE), 0x0000, MB2(0xC5F3), + MB2(0xC6C2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3B6), + 0x0000, 0x0000, MB2(0xB1D5), 0x0000, + 0x0000, MB2(0xDEBE), 0x0000, 0x0000, + MB2(0xDEC1), 0x0000, 0x0000, 0x0000, + MB2(0xCEC3), 0x0000, 0x0000, 0x0000, + MB2(0xCDE4), 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, MB2(0xDEC8), MB2(0xDEC2), MB2(0xDEBF), + 0x0000, 0x0000, 0x0000, MB2(0xCED4), + MB2(0xDEC5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDCA), MB2(0xDEC7), 0x0000, + 0x0000, MB2(0xDECC), 0x0000, 0x0000, + MB2(0xC5F1), MB2(0xDECA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEC4), 0x0000, + 0x0000, MB2(0xC3B8), 0x0000, 0x0000, /* 6DE0 */ + MB2(0xDECB), 0x0000, MB2(0xDEC0), 0x0000, + MB2(0xDEC6), 0x0000, MB2(0xDECD), MB2(0xB0FC), + MB2(0xDEC3), 0x0000, MB2(0xDECE), 0x0000, + 0x0000, MB2(0xBFBC), 0x0000, MB2(0xBDDF), + 0x0000, MB2(0xCAA5), 0x0000, MB2(0xBAAE), + 0x0000, MB2(0xDEBB), MB2(0xDEC9), MB2(0xC5BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, MB2(0xC0B6), 0x0000, MB2(0xB3E9), + MB2(0xBAD1), MB2(0xBEC4), MB2(0xDEBD), MB2(0xBDC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7CC), + 0x0000, MB2(0xDEBC), 0x0000, 0x0000, + 0x0000, MB2(0xDED2), MB2(0xBDED), MB2(0xB8BA), + 0x0000, MB2(0xDEE1), 0x0000, MB2(0xDEDB), + MB2(0xB5F4), MB2(0xC5CF), 0x0000, MB2(0xDED6), /* 6E20 */ + MB2(0xDEDF), MB2(0xB0AF), MB2(0xB1B2), 0x0000, + 0x0000, MB2(0xB2B9), 0x0000, MB2(0xDED8), + MB2(0xC2AC), MB2(0xDECF), MB2(0xDED1), MB2(0xB9C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEE2), 0x0000, MB2(0xDEDD), 0x0000, + 0x0000, 0x0000, MB2(0xDED5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEDC), /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCAB), 0x0000, + 0x0000, MB2(0xDEDA), MB2(0xDEDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8D0), 0x0000, + MB2(0xBEC5), 0x0000, 0x0000, MB2(0xC3B9), + 0x0000, 0x0000, 0x0000, MB2(0xDED4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, MB2(0xCDAF), + 0x0000, 0x0000, 0x0000, MB2(0xDED7), + 0x0000, 0x0000, MB2(0xDED0), MB2(0xC5F2), + 0x0000, 0x0000, MB2(0xDED3), 0x0000, + 0x0000, 0x0000, MB2(0xDED9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFD1), MB2(0xBCBE), + MB2(0xCBFE), 0x0000, MB2(0xDEE3), 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8AE), 0x0000, 0x0000, MB2(0xDEEF), + MB2(0xB8BB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDE0), 0x0000, + MB2(0xDEE5), 0x0000, 0x0000, 0x0000, + MB2(0xCEAF), MB2(0xB9C2), 0x0000, MB2(0xDEF2), + 0x0000, 0x0000, MB2(0xB0EE), 0x0000, /* 6EA0 */ + 0x0000, MB2(0xDEF0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEE4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEEA), + 0x0000, 0x0000, MB2(0xDEEC), 0x0000, + 0x0000, 0x0000, MB2(0xCDCF), MB2(0xDEE7), + 0x0000, 0x0000, MB2(0xC5AE), 0x0000, + 0x0000, MB2(0xDEE9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEF1), 0x0000, /* 6EC0 */ + MB2(0xDEEB), MB2(0xCCC7), 0x0000, 0x0000, + 0x0000, MB2(0xDEE6), 0x0000, MB2(0xBCA2), + MB2(0xDEFE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3EA), 0x0000, MB2(0xDEE8), + MB2(0xDEED), MB2(0xDEEE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2EC), MB2(0xC2DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEF6), 0x0000, 0x0000, MB2(0xDEFC), + 0x0000, 0x0000, MB2(0xDEFA), 0x0000, + MB2(0xC5A9), 0x0000, 0x0000, MB2(0xDFA3), + MB2(0xDEF7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEF8), MB2(0xDEE0), + 0x0000, MB2(0xB5F9), MB2(0xC9BA), 0x0000, /* 6F00 */ + 0x0000, 0x0000, MB2(0xBCBF), 0x0000, + 0x0000, MB2(0xB9F7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFB3), + 0x0000, MB2(0xDEF4), 0x0000, MB2(0xDFA2), + MB2(0xB1E9), MB2(0xC1E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7F9), 0x0000, MB2(0xB4C1), MB2(0xCEFA), /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCA1), + MB2(0xC4D2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEFB), MB2(0xDEFD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1B2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFA1), MB2(0xDEF9), + 0x0000, MB2(0xDEF3), 0x0000, 0x0000, /* 6F40 */ + 0x0000, MB2(0xB4C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7E9), 0x0000, 0x0000, 0x0000, + MB2(0xDFAF), 0x0000, 0x0000, MB2(0xDFAA), + MB2(0xC0F8), 0x0000, 0x0000, MB2(0xB3E3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + MB2(0xBDE1), 0x0000, MB2(0xDFB3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFAC), MB2(0xC4AC), MB2(0xDFA9), + MB2(0xC4D9), 0x0000, 0x0000, 0x0000, + MB2(0xDFCC), 0x0000, 0x0000, 0x0000, + MB2(0xDFA6), 0x0000, MB2(0xDFA5), 0x0000, + MB2(0xDFAE), 0x0000, 0x0000, 0x0000, + MB2(0xDFA8), MB2(0xDFA7), MB2(0xDFAD), 0x0000, /* 6F80 */ + MB2(0xC0A1), 0x0000, MB2(0xDFA4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFB0), 0x0000, + 0x0000, MB2(0xDFB1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFB6), 0x0000, MB2(0xDFB5), /* 6FA0 */ + MB2(0xDFB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFBA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5C3), 0x0000, MB2(0xDFB4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7E3), MB2(0xC2F9), MB2(0xDFB2), MB2(0xC7BB), /* 6FC0 */ + 0x0000, 0x0000, MB2(0xDFB9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFBE), MB2(0xDFBC), 0x0000, 0x0000, + MB2(0xDFBF), 0x0000, 0x0000, MB2(0xDFC2), + 0x0000, 0x0000, 0x0000, MB2(0xDFBB), + MB2(0xB9EA), MB2(0xC7A8), 0x0000, 0x0000, /* 6FE0 */ + MB2(0xDEB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDF4), + MB2(0xDFBD), 0x0000, MB2(0xDFC1), MB2(0xC2F5), + 0x0000, MB2(0xDFC0), 0x0000, MB2(0xDFAB), + 0x0000, 0x0000, MB2(0xEFE9), 0x0000, + 0x0000, 0x0000, MB2(0xDFC5), 0x0000, + 0x0000, 0x0000, MB2(0xDFC9), 0x0000, + 0x0000, MB2(0xDFC7), 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFC3), 0x0000, MB2(0xDFC4), + 0x0000, 0x0000, 0x0000, MB2(0xDFC8), + 0x0000, MB2(0xDFC6), 0x0000, 0x0000, + 0x0000, MB2(0xC9CE), 0x0000, 0x0000, + MB2(0xDFCE), 0x0000, MB2(0xDFCB), MB2(0xDFCA), + 0x0000, MB2(0xDFCD), MB2(0xC6D4), MB2(0xDFCF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, MB2(0xC3F5), MB2(0xC2ED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0A5), 0x0000, 0x0000, 0x0000, + MB2(0xDFD0), 0x0000, MB2(0xDFD2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFD1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEF5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFD4), /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2D0), + 0x0000, 0x0000, 0x0000, MB2(0xC5F4), + MB2(0xB3A5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5E4), 0x0000, 0x0000, 0x0000, + MB2(0xBCDE), MB2(0xBAD2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFA7), MB2(0xBFE6), 0x0000, + 0x0000, 0x0000, MB2(0xB1EA), 0x0000, + 0x0000, 0x0000, MB2(0xDFD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFD5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFD9), MB2(0xC3BA), MB2(0xDFDC), MB2(0xDFD7), + 0x0000, 0x0000, 0x0000, MB2(0xDFDB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFDA), MB2(0xC5C0), MB2(0xB0D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEF5), 0x0000, 0x0000, MB2(0xDFDE), + 0x0000, 0x0000, 0x0000, MB2(0xB1A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE0), 0x0000, 0x0000, + 0x0000, MB2(0xDFDF), 0x0000, MB2(0xDFDD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFD8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBA3), 0x0000, 0x0000, + 0x0000, MB2(0xDFE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1EB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE4), MB2(0xCAB2), 0x0000, + MB2(0xDFE3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCB5), 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, MB2(0xBEC7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEC6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEFB), 0x0000, 0x0000, + MB2(0xDFEA), 0x0000, MB2(0xC0F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFE6), MB2(0xDFEB), 0x0000, + 0x0000, MB2(0xB1EC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFE9), 0x0000, /* 7160 */ + MB2(0xC7E1), MB2(0xDFE5), MB2(0xDFE8), MB2(0xBEC8), + 0x0000, MB2(0xC8D1), 0x0000, 0x0000, + MB2(0xDFEC), 0x0000, MB2(0xBCD1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0FA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + MB2(0xDFEF), 0x0000, 0x0000, 0x0000, + MB2(0xDFE7), 0x0000, MB2(0xB7A7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDD0), MB2(0xDFF0), 0x0000, 0x0000, + 0x0000, MB2(0xF4A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDCF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFF1), 0x0000, 0x0000, 0x0000, + MB2(0xDFF2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFF4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFF5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7B3), /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5F5), MB2(0xDFF7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFF9), 0x0000, + MB2(0xCED5), 0x0000, MB2(0xDFF6), 0x0000, + MB2(0xDFF8), MB2(0xB1ED), 0x0000, MB2(0xDFF3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3DB), + MB2(0xDFFA), 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, MB2(0xC1E7), MB2(0xBBB8), MB2(0xDFFC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFFB), MB2(0xBFA4), MB2(0xD2D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFFD), 0x0000, 0x0000, + 0x0000, MB2(0xE0A1), 0x0000, MB2(0xDFEE), + MB2(0xDFFE), 0x0000, 0x0000, MB2(0xE0A2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, MB2(0xC7FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0A3), 0x0000, 0x0000, + MB2(0xE0A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0A5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0A6), 0x0000, MB2(0xC4DE), 0x0000, + MB2(0xE0A8), MB2(0xE0A7), 0x0000, 0x0000, + MB2(0xE0A9), 0x0000, MB2(0xE0AA), 0x0000, + 0x0000, MB2(0xBCDF), MB2(0xC9E3), 0x0000, + 0x0000, 0x0000, MB2(0xCCEC), MB2(0xE0AB), + MB2(0xE0AC), MB2(0xC1D6), MB2(0xBCA4), MB2(0xE0AD), + MB2(0xE0AE), 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, MB2(0xE0AF), MB2(0xCAD2), + MB2(0xC8C7), 0x0000, 0x0000, MB2(0xE0B0), + MB2(0xC7D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0B1), MB2(0xB2E7), 0x0000, MB2(0xB5ED), + 0x0000, MB2(0xCCC6), 0x0000, MB2(0xCCB6), + 0x0000, MB2(0xB2B4), MB2(0xCFB4), 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, MB2(0xCBD2), + 0x0000, MB2(0xCAAA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0B7), 0x0000, + MB2(0xE0B2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6C3), 0x0000, 0x0000, + 0x0000, MB2(0xB8A3), MB2(0xE0B3), 0x0000, + MB2(0xBAD4), MB2(0xE0B5), MB2(0xE0B4), 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0B7), 0x0000, + 0x0000, 0x0000, MB2(0xE0B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5BE), 0x0000, MB2(0xE0B9), 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0BA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8A4), 0x0000, 0x0000, MB2(0xC8C8), + 0x0000, 0x0000, MB2(0xE0BC), 0x0000, + 0x0000, 0x0000, MB2(0xBEF5), 0x0000, + 0x0000, MB2(0xE0BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6B8), MB2(0xE0BD), /* 72C0 */ + MB2(0xE0BF), 0x0000, MB2(0xE0BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C0), 0x0000, + MB2(0xB8D1), 0x0000, MB2(0xE0C1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6E9), + 0x0000, MB2(0xC1C0), 0x0000, MB2(0xB9FD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0C3), MB2(0xE0C4), MB2(0xE0C2), 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCED), 0x0000, 0x0000, + MB2(0xC6C8), MB2(0xB6B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0C6), + MB2(0xC3AC), MB2(0xE0C5), 0x0000, 0x0000, + MB2(0xCFB5), MB2(0xC7E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0CB), MB2(0xE0C8), + 0x0000, 0x0000, 0x0000, MB2(0xCCD4), + MB2(0xE0CA), MB2(0xE0CC), 0x0000, MB2(0xCEC4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, MB2(0xE0D0), 0x0000, 0x0000, + 0x0000, MB2(0xE0CF), MB2(0xC3F6), MB2(0xC7AD), + 0x0000, 0x0000, MB2(0xB8A5), MB2(0xE0CE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0CD), 0x0000, MB2(0xCDB1), MB2(0xCDB2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D1), MB2(0xB1EE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + MB2(0xB9F6), MB2(0xBBE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D2), MB2(0xE0D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDC3), /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D7), 0x0000, MB2(0xE0D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D8), 0x0000, MB2(0xB3CD), 0x0000, + 0x0000, MB2(0xE0DA), 0x0000, 0x0000, + MB2(0xE0D9), 0x0000, MB2(0xE0DC), MB2(0xE0DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + MB2(0xB8BC), 0x0000, 0x0000, MB2(0xCEA8), + 0x0000, MB2(0xB6CC), 0x0000, MB2(0xB2A6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEE8), MB2(0xE0DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E1), 0x0000, MB2(0xB2D1), 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DD), 0x0000, MB2(0xBBB9), 0x0000, + 0x0000, MB2(0xC4C1), MB2(0xE0DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0E4), 0x0000, + MB2(0xBCEE), 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, MB2(0xE0E2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7BE), 0x0000, + 0x0000, MB2(0xC8C9), MB2(0xE0E3), 0x0000, + 0x0000, MB2(0xE0FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8BD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5E5), /* 7400 */ + 0x0000, MB2(0xE0E6), MB2(0xCDFD), 0x0000, + 0x0000, MB2(0xCEB0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2F6), 0x0000, /* 7420 */ + 0x0000, MB2(0xE0E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0EA), MB2(0xCED6), + MB2(0xB6D7), MB2(0xC8FC), MB2(0xC7CA), 0x0000, + 0x0000, 0x0000, MB2(0xE0EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0ED), + 0x0000, MB2(0xE0F0), 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0EC), 0x0000, 0x0000, + 0x0000, MB2(0xE0EF), MB2(0xB8EA), MB2(0xB1CD), + MB2(0xE0F1), 0x0000, MB2(0xBFF0), MB2(0xE0EE), + MB2(0xCEDC), 0x0000, 0x0000, MB2(0xE0F4), /* 7460 */ + MB2(0xF4A4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0F2), MB2(0xE0F5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E7), + MB2(0xE0F3), 0x0000, 0x0000, MB2(0xBABC), + 0x0000, 0x0000, MB2(0xE0F6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDFE), /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0F9), 0x0000, + 0x0000, 0x0000, MB2(0xE0E5), 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCA5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0FB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0FC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1BB), 0x0000, 0x0000, 0x0000, + MB2(0xE1A1), 0x0000, MB2(0xC9BB), MB2(0xE1A2), /* 74E0 */ + 0x0000, 0x0000, MB2(0xB4A4), MB2(0xE1A3), + 0x0000, MB2(0xE1A4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1A5), 0x0000, + MB2(0xE1A7), MB2(0xE1A8), MB2(0xE1A6), 0x0000, + 0x0000, 0x0000, MB2(0xC9D3), MB2(0xE1AA), + MB2(0xE1A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1AC), /* 7500 */ + MB2(0xE1AB), MB2(0xE1AD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1AE), MB2(0xE1B0), MB2(0xE1AF), 0x0000, + 0x0000, MB2(0xB9F9), 0x0000, MB2(0xE1B2), + 0x0000, MB2(0xE1B1), 0x0000, 0x0000, + MB2(0xB4C5), 0x0000, MB2(0xBFD3), 0x0000, + MB2(0xC5BC), 0x0000, MB2(0xE1B3), MB2(0xC0B8), + 0x0000, 0x0000, 0x0000, MB2(0xBBBA), /* 7520 */ + 0x0000, MB2(0xB1F9), MB2(0xE1B4), 0x0000, + MB2(0xCDD1), 0x0000, 0x0000, MB2(0xCAE3), + MB2(0xE1B5), 0x0000, 0x0000, 0x0000, + MB2(0xC5C4), MB2(0xCDB3), MB2(0xB9C3), MB2(0xBFBD), + 0x0000, 0x0000, 0x0000, MB2(0xC3CB), + MB2(0xD2B4), 0x0000, MB2(0xC4AE), MB2(0xB2E8), + MB2(0xE1B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + MB2(0xE1B7), 0x0000, MB2(0xE1BC), 0x0000, + 0x0000, MB2(0xE1BA), MB2(0xE1B9), MB2(0xDAC2), + MB2(0xB3A6), MB2(0xE1B8), 0x0000, MB2(0xB0DA), + 0x0000, MB2(0xC8AA), 0x0000, 0x0000, + MB2(0xC8CA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB1), MB2(0xE1BD), MB2(0xE1BB), + MB2(0xC3DC), MB2(0xC0A6), 0x0000, 0x0000, + MB2(0xC8AB), 0x0000, MB2(0xC9AD), 0x0000, /* 7560 */ + MB2(0xE1BF), MB2(0xCEAC), MB2(0xB7CD), MB2(0xE1C0), + 0x0000, MB2(0xE1BE), MB2(0xC8D6), MB2(0xE1C1), + 0x0000, MB2(0xE1C2), 0x0000, 0x0000, + MB2(0xB0DB), 0x0000, 0x0000, MB2(0xBEF6), + MB2(0xE1C7), 0x0000, MB2(0xE1C4), MB2(0xC6ED), + MB2(0xE1C3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5A6), + 0x0000, 0x0000, MB2(0xE1CA), 0x0000, /* 7580 */ + 0x0000, 0x0000, MB2(0xE1C5), MB2(0xE1C6), + 0x0000, MB2(0xE1C9), MB2(0xE1C8), MB2(0xC9A5), + 0x0000, 0x0000, MB2(0xC1C2), MB2(0xC1C1), + 0x0000, MB2(0xB5BF), 0x0000, 0x0000, + MB2(0xE1CB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1CC), 0x0000, + 0x0000, MB2(0xE1CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1CF), /* 75A0 */ + 0x0000, MB2(0xE1CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1D6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1D7), MB2(0xC8E8), MB2(0xE1D1), + 0x0000, MB2(0xE1D3), 0x0000, 0x0000, + MB2(0xE1D5), MB2(0xBFBE), 0x0000, 0x0000, + MB2(0xE1D6), MB2(0xE1D4), MB2(0xBCC0), 0x0000, + 0x0000, 0x0000, MB2(0xE1D0), MB2(0xE1D2), /* 75C0 */ + 0x0000, MB2(0xC9C2), 0x0000, MB2(0xBEC9), + 0x0000, 0x0000, MB2(0xE1D9), 0x0000, + 0x0000, MB2(0xE1D8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1DA), 0x0000, + MB2(0xBCA6), MB2(0xBAAF), 0x0000, 0x0000, + MB2(0xC5F7), MB2(0xE1DB), 0x0000, MB2(0xC4CB), + 0x0000, 0x0000, MB2(0xE1DD), 0x0000, + 0x0000, 0x0000, MB2(0xCEA1), MB2(0xE1DC), /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E2), 0x0000, MB2(0xE1E4), MB2(0xE1E5), + MB2(0xC3D4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1E3), 0x0000, + MB2(0xE1E0), 0x0000, MB2(0xE1DE), MB2(0xE1DF), + 0x0000, MB2(0xE1E1), 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1E8), 0x0000, MB2(0xE1E6), + 0x0000, MB2(0xE1E7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1E9), + MB2(0xE1EB), MB2(0xE1EC), MB2(0xE1ED), 0x0000, /* 7620 */ + MB2(0xE1EE), 0x0000, 0x0000, MB2(0xE1EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1F0), 0x0000, 0x0000, 0x0000, + MB2(0xE1EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEC5), 0x0000, /* 7640 */ + 0x0000, 0x0000, MB2(0xE1F4), MB2(0xE1F2), + MB2(0xE1F3), 0x0000, 0x0000, 0x0000, + MB2(0xB4E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCFE), 0x0000, + 0x0000, 0x0000, MB2(0xCACA), 0x0000, + MB2(0xE1F6), 0x0000, 0x0000, 0x0000, + MB2(0xE1F5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1F7), MB2(0xE1F8), 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1FC), + MB2(0xE1F9), MB2(0xE1FA), MB2(0xE1FB), 0x0000, + MB2(0xE1FD), 0x0000, 0x0000, 0x0000, + MB2(0xE1FE), 0x0000, MB2(0xE2A1), 0x0000, + 0x0000, 0x0000, MB2(0xE2A2), 0x0000, + MB2(0xE2A3), 0x0000, MB2(0xC8AF), MB2(0xC5D0), + MB2(0xE2A4), MB2(0xC7F2), MB2(0xC9B4), 0x0000, + MB2(0xE2A5), 0x0000, 0x0000, MB2(0xE2A6), /* 7680 */ + MB2(0xC5AA), 0x0000, MB2(0xB3A7), MB2(0xB9C4), + MB2(0xE2A7), 0x0000, 0x0000, MB2(0xE2A8), + 0x0000, 0x0000, MB2(0xE2A9), 0x0000, + MB2(0xBBA9), 0x0000, 0x0000, MB2(0xE2AB), + 0x0000, 0x0000, MB2(0xE2AA), 0x0000, + 0x0000, MB2(0xE2AC), MB2(0xE2AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8E9), 0x0000, + MB2(0xE2AE), 0x0000, 0x0000, 0x0000, + MB2(0xE2AF), 0x0000, 0x0000, MB2(0xF3E9), + MB2(0xE2B0), MB2(0xE2B1), MB2(0xE2B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBAE), + 0x0000, 0x0000, MB2(0xE2B3), MB2(0xC7D6), /* 76C0 */ + 0x0000, 0x0000, MB2(0xCBDF), 0x0000, + MB2(0xB1CE), 0x0000, MB2(0xB1D7), 0x0000, + 0x0000, MB2(0xE2B4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2B6), 0x0000, + 0x0000, 0x0000, MB2(0xE2B5), MB2(0xC5F0), + 0x0000, 0x0000, 0x0000, MB2(0xC0B9), + MB2(0xDDB9), 0x0000, MB2(0xE2B7), MB2(0xCCC1), + 0x0000, MB2(0xE2B8), 0x0000, MB2(0xB4C6), /* 76E0 */ + MB2(0xC8D7), MB2(0xE2B9), 0x0000, MB2(0xE2BA), + 0x0000, 0x0000, MB2(0xE2BB), 0x0000, + 0x0000, 0x0000, MB2(0xCCDC), 0x0000, + 0x0000, 0x0000, MB2(0xCCD5), 0x0000, + MB2(0xC4BE), 0x0000, 0x0000, 0x0000, + MB2(0xC1EA), 0x0000, 0x0000, MB2(0xE2BD), + 0x0000, 0x0000, MB2(0xBDE2), 0x0000, + 0x0000, MB2(0xBECA), 0x0000, 0x0000, /* 7700 */ + MB2(0xE2C0), 0x0000, 0x0000, MB2(0xE2BF), + MB2(0xE2BE), MB2(0xC8FD), 0x0000, MB2(0xB4C7), + MB2(0xB8A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2C6), + 0x0000, 0x0000, MB2(0xE2C3), MB2(0xBFBF), + MB2(0xCCB2), 0x0000, 0x0000, 0x0000, /* 7720 */ + MB2(0xE2C2), MB2(0xE2C4), MB2(0xE2C5), 0x0000, + 0x0000, MB2(0xE2C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2C7), + MB2(0xE2C8), 0x0000, MB2(0xC4AF), 0x0000, + MB2(0xB4E3), 0x0000, 0x0000, 0x0000, + MB2(0xC3E5), 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2CA), MB2(0xE2CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFE7), 0x0000, MB2(0xC6C4), /* 7760 */ + 0x0000, MB2(0xE2CE), MB2(0xCBD3), 0x0000, + MB2(0xE2CB), 0x0000, 0x0000, MB2(0xE2CC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2D1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2D0), MB2(0xE2CF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D3), + 0x0000, 0x0000, MB2(0xE2D2), 0x0000, + 0x0000, MB2(0xE2D4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2D6), 0x0000, + MB2(0xE2D5), 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, MB2(0xCACD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDD6), MB2(0xCEC6), 0x0000, 0x0000, + MB2(0xE2D7), 0x0000, 0x0000, MB2(0xC6B7), + 0x0000, 0x0000, MB2(0xE2D8), 0x0000, + 0x0000, MB2(0xE2D9), 0x0000, MB2(0xE2DD), + MB2(0xE2DB), MB2(0xE2DC), 0x0000, MB2(0xE2DA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2E0), + 0x0000, 0x0000, MB2(0xE2E1), MB2(0xCCB7), + MB2(0xE2E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCF0), MB2(0xE2E3), /* 77E0 */ + 0x0000, MB2(0xC3CE), 0x0000, MB2(0xC7EA), + 0x0000, MB2(0xB6EB), 0x0000, 0x0000, + 0x0000, MB2(0xC3BB), MB2(0xE2E4), MB2(0xB6BA), + 0x0000, 0x0000, 0x0000, MB2(0xC0D0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBABD), 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2E7), 0x0000, + MB2(0xB8A6), MB2(0xBAD5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E9), 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, MB2(0xC5D6), MB2(0xBAD6), MB2(0xB5CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBA4), 0x0000, + MB2(0xC7CB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5D7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9DC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, MB2(0xE2EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBECB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEB2), + MB2(0xB9C5), 0x0000, 0x0000, MB2(0xB8A7), + 0x0000, 0x0000, MB2(0xC8A3), 0x0000, + MB2(0xE2ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2EF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8EB), 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, MB2(0xE2EE), MB2(0xC4F6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2F1), MB2(0xB3B7), MB2(0xE2EC), 0x0000, + 0x0000, MB2(0xC8EA), 0x0000, MB2(0xB1B0), + 0x0000, MB2(0xBAEC), 0x0000, MB2(0xCFD2), + 0x0000, 0x0000, MB2(0xE2F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F2), /* 78A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCACB), + 0x0000, MB2(0xC0D9), MB2(0xE2F4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2F3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3CE), 0x0000, + MB2(0xE2FB), 0x0000, MB2(0xE2FA), 0x0000, + 0x0000, MB2(0xBCA7), 0x0000, 0x0000, /* 78C0 */ + 0x0000, MB2(0xE2FC), MB2(0xE2F7), 0x0000, + 0x0000, 0x0000, MB2(0xE2FD), MB2(0xE2F8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8D8), MB2(0xE2F6), 0x0000, 0x0000, + MB2(0xE2F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE3A1), + MB2(0xCBE1), 0x0000, 0x0000, 0x0000, + MB2(0xE2FE), 0x0000, 0x0000, MB2(0xB0EB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3A3), 0x0000, 0x0000, + 0x0000, MB2(0xBECC), 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, MB2(0xE3A5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1C3), 0x0000, + 0x0000, MB2(0xE3A7), MB2(0xE3A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, MB2(0xE2E8), 0x0000, + 0x0000, 0x0000, MB2(0xE2EA), MB2(0xE3AA), + MB2(0xE3A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCA8), 0x0000, + MB2(0xCEE9), 0x0000, MB2(0xBCD2), 0x0000, + MB2(0xE3AB), MB2(0xB7B7), 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, MB2(0xB5C0), + MB2(0xB5A7), MB2(0xBBE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDB4), 0x0000, 0x0000, MB2(0xE3B1), + 0x0000, MB2(0xE3B0), MB2(0xC1C4), MB2(0xE3AD), + 0x0000, 0x0000, MB2(0xE3AF), 0x0000, + 0x0000, MB2(0xBDCB), MB2(0xBFC0), MB2(0xE3AE), + MB2(0xE3AC), 0x0000, MB2(0xC7AA), 0x0000, /* 7960 */ + 0x0000, MB2(0xBECD), 0x0000, 0x0000, + MB2(0xC9BC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5F8), + 0x0000, 0x0000, MB2(0xE3B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3B3), + MB2(0xE3C9), MB2(0xB6D8), 0x0000, 0x0000, /* 7980 */ + MB2(0xCFBD), MB2(0xC1B5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3B4), 0x0000, + 0x0000, MB2(0xB2D2), MB2(0xC4F7), MB2(0xCAA1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, MB2(0xB5FA), MB2(0xE3B6), + 0x0000, 0x0000, MB2(0xE3B8), 0x0000, + 0x0000, 0x0000, MB2(0xE3B9), 0x0000, + MB2(0xC7A9), 0x0000, 0x0000, MB2(0xE3BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3BB), MB2(0xE3BC), 0x0000, + 0x0000, MB2(0xB6D9), MB2(0xB2D3), MB2(0xC6C5), + MB2(0xBDA8), MB2(0xBBE4), 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3BD), 0x0000, MB2(0xBDA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2CA), MB2(0xC9C3), 0x0000, + 0x0000, MB2(0xE3BE), 0x0000, 0x0000, + MB2(0xC8EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1C5), + 0x0000, MB2(0xE3C1), 0x0000, MB2(0xE3C2), /* 79E0 */ + MB2(0xC7E9), 0x0000, MB2(0xBFC1), MB2(0xE3BF), + 0x0000, MB2(0xC3E1), 0x0000, 0x0000, + MB2(0xE3C0), 0x0000, 0x0000, 0x0000, + MB2(0xBECE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0DC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5A9), 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3C3), 0x0000, 0x0000, MB2(0xC4F8), + 0x0000, MB2(0xE3C4), MB2(0xC0C7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCAD), 0x0000, 0x0000, MB2(0xC9A3), + MB2(0xE3C5), MB2(0xE3C6), MB2(0xC3D5), 0x0000, + MB2(0xCEC7), 0x0000, 0x0000, MB2(0xE3C8), + MB2(0xE3C7), 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCEF), 0x0000, + 0x0000, MB2(0xE3CA), MB2(0xB0F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3CD), + 0x0000, 0x0000, 0x0000, MB2(0xE3CB), + MB2(0xB2D4), MB2(0xB7CE), MB2(0xE3CC), MB2(0xB9C6), + MB2(0xB9F2), 0x0000, MB2(0xCAE6), MB2(0xE3CE), /* 7A40 */ + 0x0000, 0x0000, MB2(0xCBD4), 0x0000, + 0x0000, MB2(0xE3D0), 0x0000, 0x0000, + 0x0000, MB2(0xC0D1), MB2(0xB1CF), MB2(0xB2BA), + MB2(0xB0AC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3CF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3D1), MB2(0xE3D2), MB2(0xBEF7), /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3D3), 0x0000, MB2(0xB3CF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3D5), 0x0000, 0x0000, 0x0000, + MB2(0xB7EA), 0x0000, MB2(0xB5E6), 0x0000, + 0x0000, MB2(0xE3D6), MB2(0xB6F5), 0x0000, + 0x0000, MB2(0xE3D7), 0x0000, MB2(0xC0FC), + 0x0000, MB2(0xC6CD), 0x0000, MB2(0xC0E0), /* 7A80 */ + MB2(0xBAF5), 0x0000, 0x0000, 0x0000, + MB2(0xE3D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3E2), MB2(0xC1EB), + 0x0000, MB2(0xE3DA), MB2(0xE3DC), MB2(0xE3D9), + MB2(0xE3DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7A2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3DD), MB2(0xB7A6), 0x0000, + 0x0000, 0x0000, MB2(0xB5E7), MB2(0xCDD2), + MB2(0xE3DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3E0), 0x0000, + 0x0000, 0x0000, MB2(0xB1AE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3E3), + 0x0000, 0x0000, 0x0000, MB2(0xB3F6), /* 7AC0 */ + MB2(0xE3E2), MB2(0xE3E1), 0x0000, MB2(0xE3E5), + MB2(0xE3DE), 0x0000, MB2(0xE3E6), MB2(0xCEA9), + 0x0000, MB2(0xE3E7), 0x0000, MB2(0xE3E8), + 0x0000, 0x0000, MB2(0xD4F4), MB2(0xE3EA), + 0x0000, MB2(0xE3E9), 0x0000, 0x0000, + 0x0000, MB2(0xE3EB), MB2(0xE3EC), 0x0000, + MB2(0xCEB5), MB2(0xE3ED), 0x0000, MB2(0xF0EF), + MB2(0xBECF), MB2(0xE3EE), MB2(0xE3EF), MB2(0xBDD7), /* 7AE0 */ + 0x0000, MB2(0xC6B8), MB2(0xE3F0), 0x0000, + 0x0000, 0x0000, MB2(0xC3A8), 0x0000, + 0x0000, MB2(0xE3F1), 0x0000, MB2(0xC3BC), + MB2(0xE3F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6A5), 0x0000, + MB2(0xD1BF), MB2(0xC3DD), MB2(0xBCB3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C8), + 0x0000, 0x0000, MB2(0xE3F3), 0x0000, /* 7B00 */ + MB2(0xE4A2), 0x0000, MB2(0xE3F6), 0x0000, + MB2(0xB5E8), 0x0000, MB2(0xE3F5), MB2(0xE4A4), + 0x0000, 0x0000, 0x0000, MB2(0xE3F4), + 0x0000, MB2(0xBED0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3F8), MB2(0xE3F9), 0x0000, MB2(0xC5AB), + 0x0000, 0x0000, MB2(0xE3FA), 0x0000, + MB2(0xB3DE), 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, MB2(0xBFDA), MB2(0xC9E4), 0x0000, + MB2(0xE3FC), 0x0000, 0x0000, 0x0000, + MB2(0xC2E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3F7), + 0x0000, MB2(0xE3FB), MB2(0xE3FD), 0x0000, + 0x0000, MB2(0xBAFB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, MB2(0xE4A6), MB2(0xC9AE), 0x0000, + MB2(0xC8A6), MB2(0xC5F9), 0x0000, MB2(0xB6DA), + MB2(0xE4A5), MB2(0xE4A3), 0x0000, MB2(0xC8B5), + MB2(0xE3FE), MB2(0xC3DE), MB2(0xC5FB), 0x0000, + MB2(0xC5FA), 0x0000, MB2(0xBAF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, MB2(0xE4A8), 0x0000, MB2(0xE4AA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4AD), 0x0000, MB2(0xE4AE), 0x0000, + MB2(0xE4AB), MB2(0xE4AC), 0x0000, 0x0000, + MB2(0xE4A9), MB2(0xE4A7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE4A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, MB2(0xCACF), MB2(0xB2D5), + 0x0000, 0x0000, 0x0000, MB2(0xE4B5), + 0x0000, MB2(0xE4B2), 0x0000, MB2(0xE4B7), + 0x0000, 0x0000, MB2(0xE4B6), 0x0000, + MB2(0xC7F3), MB2(0xCCA7), 0x0000, MB2(0xBBBB), + MB2(0xE4B0), MB2(0xE4B9), MB2(0xE4B4), 0x0000, + MB2(0xE4B3), MB2(0xE4AF), 0x0000, MB2(0xE4B1), + 0x0000, MB2(0xB4C9), 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3BD), 0x0000, + 0x0000, MB2(0xC0FD), 0x0000, 0x0000, + 0x0000, MB2(0xC8A2), 0x0000, 0x0000, + MB2(0xE4BE), 0x0000, 0x0000, 0x0000, + MB2(0xC8A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0E1), MB2(0xE4BB), 0x0000, 0x0000, /* 7BC0 */ + MB2(0xC8CF), 0x0000, MB2(0xE4BF), MB2(0xCAD3), + 0x0000, MB2(0xC3DB), 0x0000, MB2(0xE4BA), + MB2(0xE4BC), 0x0000, 0x0000, MB2(0xE4BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4C0), 0x0000, 0x0000, + MB2(0xBCC4), 0x0000, 0x0000, 0x0000, /* 7BE0 */ + MB2(0xC6C6), MB2(0xE4C5), MB2(0xE4C4), 0x0000, + 0x0000, MB2(0xE4C1), 0x0000, 0x0000, + 0x0000, MB2(0xCFB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4CA), + 0x0000, 0x0000, MB2(0xE4CE), MB2(0xE4CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4C7), 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, MB2(0xE4C8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4CD), 0x0000, 0x0000, + 0x0000, MB2(0xE4C2), MB2(0xD2D5), MB2(0xE4C9), + MB2(0xE4C3), 0x0000, 0x0000, MB2(0xE4CC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4D2), + 0x0000, MB2(0xB4CA), 0x0000, MB2(0xE4CF), /* 7C20 */ + 0x0000, 0x0000, 0x0000, MB2(0xE4D0), + 0x0000, 0x0000, MB2(0xE4D1), MB2(0xE4D4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4D3), + MB2(0xC8F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D5), MB2(0xCEFC), MB2(0xCAED), + MB2(0xE4DA), 0x0000, 0x0000, MB2(0xE4D7), /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4D6), MB2(0xC0D2), 0x0000, MB2(0xE4D9), + MB2(0xE4DB), 0x0000, 0x0000, 0x0000, + MB2(0xE4D8), 0x0000, MB2(0xE4DF), 0x0000, + MB2(0xE4DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4DD), + MB2(0xE4C6), 0x0000, 0x0000, 0x0000, /* 7C60 */ + MB2(0xE4DE), MB2(0xE4E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4E1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC6), + 0x0000, MB2(0xE4E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCE2), 0x0000, + 0x0000, MB2(0xB6CE), MB2(0xB7A9), MB2(0xE4E3), /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAB4), 0x0000, MB2(0xBFE8), + 0x0000, MB2(0xCCB0), 0x0000, 0x0000, + MB2(0xE4E4), 0x0000, MB2(0xCEB3), 0x0000, + 0x0000, MB2(0xC7F4), 0x0000, MB2(0xC1C6), + MB2(0xC7B4), 0x0000, 0x0000, MB2(0xBDCD), + 0x0000, 0x0000, 0x0000, MB2(0xB0C0), + 0x0000, MB2(0xE4E9), MB2(0xE4E7), 0x0000, /* 7CA0 */ + MB2(0xE4E5), MB2(0xB4A1), 0x0000, MB2(0xBED1), + MB2(0xE4EA), 0x0000, 0x0000, MB2(0xE4E8), + 0x0000, MB2(0xE4E6), MB2(0xE4EE), 0x0000, + 0x0000, MB2(0xE4ED), MB2(0xE4EC), MB2(0xE4EB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4EF), 0x0000, 0x0000, + 0x0000, MB2(0xE4F0), MB2(0xC0BA), 0x0000, + MB2(0xE4F1), 0x0000, MB2(0xE4F3), 0x0000, /* 7CC0 */ + 0x0000, MB2(0xE4F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8D2), 0x0000, + 0x0000, 0x0000, MB2(0xC1B8), 0x0000, + 0x0000, 0x0000, MB2(0xE4F5), 0x0000, + 0x0000, 0x0000, MB2(0xC5FC), 0x0000, + MB2(0xE4F4), 0x0000, 0x0000, 0x0000, + MB2(0xE4F6), 0x0000, MB2(0xCAB5), MB2(0xC1EC), + MB2(0xB9C7), 0x0000, MB2(0xE4F7), 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCEC8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4F9), + 0x0000, 0x0000, MB2(0xE4FA), 0x0000, + MB2(0xE4FB), 0x0000, MB2(0xE4FC), 0x0000, + MB2(0xBBE5), 0x0000, MB2(0xE4FD), MB2(0xB7CF), + 0x0000, 0x0000, MB2(0xB5EA), 0x0000, + MB2(0xB5AA), 0x0000, MB2(0xE5A1), 0x0000, /* 7D00 */ + MB2(0xCCF3), MB2(0xB9C8), MB2(0xE4FE), 0x0000, + 0x0000, 0x0000, MB2(0xE5A4), MB2(0xCCE6), + 0x0000, MB2(0xC7BC), 0x0000, 0x0000, + MB2(0xC9B3), 0x0000, 0x0000, 0x0000, + MB2(0xBDE3), MB2(0xE5A3), 0x0000, MB2(0xBCD3), + MB2(0xB9C9), MB2(0xBBE6), MB2(0xB5E9), MB2(0xCAB6), + MB2(0xE5A2), 0x0000, 0x0000, 0x0000, + MB2(0xC1C7), MB2(0xCBC2), MB2(0xBAF7), 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBE7), + MB2(0xC4DD), 0x0000, MB2(0xE5A7), MB2(0xCEDF), + MB2(0xBAD9), 0x0000, MB2(0xE5A8), MB2(0xBFC2), + 0x0000, MB2(0xE5AA), 0x0000, 0x0000, + 0x0000, MB2(0xBED2), MB2(0xBAB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5A9), + 0x0000, 0x0000, MB2(0xBDAA), MB2(0xB8BE), /* 7D40 */ + MB2(0xC1C8), MB2(0xE5A5), MB2(0xE5AB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5A6), + MB2(0xB7D0), 0x0000, MB2(0xE5AE), MB2(0xE5B2), + MB2(0xB7EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5AD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5B6), + 0x0000, 0x0000, MB2(0xB9CA), 0x0000, + 0x0000, MB2(0xCDED), MB2(0xB0BC), MB2(0xE5B3), /* 7D60 */ + 0x0000, 0x0000, MB2(0xB5EB), 0x0000, + MB2(0xE5B0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5B1), 0x0000, + 0x0000, MB2(0xC5FD), MB2(0xE5AF), MB2(0xE5AC), + 0x0000, MB2(0xB3A8), MB2(0xC0E4), 0x0000, + 0x0000, MB2(0xB8A8), 0x0000, 0x0000, + 0x0000, MB2(0xE5B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5B5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5B7), + 0x0000, 0x0000, 0x0000, MB2(0xE5B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7D1), MB2(0xC2B3), MB2(0xE5B9), + MB2(0xC1EE), 0x0000, 0x0000, MB2(0xE5C6), + 0x0000, 0x0000, MB2(0xE5C2), MB2(0xE5BC), /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5C0), + MB2(0xBCFA), MB2(0xB0DD), MB2(0xE5BB), MB2(0xE5C3), + MB2(0xE5C7), MB2(0xB9CB), MB2(0xCCD6), 0x0000, + MB2(0xC4D6), MB2(0xE5BD), 0x0000, 0x0000, + MB2(0xE5C5), 0x0000, MB2(0xE5BA), MB2(0xC3BE), + 0x0000, MB2(0xE5BF), MB2(0xB0BD), MB2(0xCCCA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE5BE), + 0x0000, 0x0000, MB2(0xB6DB), MB2(0xC8EC), + 0x0000, 0x0000, 0x0000, MB2(0xC1ED), + 0x0000, MB2(0xCED0), MB2(0xBDEF), 0x0000, + 0x0000, MB2(0xE5EE), 0x0000, 0x0000, + MB2(0xE5C8), 0x0000, MB2(0xC0FE), 0x0000, + MB2(0xE5C4), MB2(0xE5C9), MB2(0xE5CB), 0x0000, + MB2(0xC4F9), MB2(0xE5CE), 0x0000, 0x0000, /* 7DE0 */ + MB2(0xE5CA), 0x0000, 0x0000, 0x0000, + MB2(0xCAD4), MB2(0xB4CB), 0x0000, 0x0000, + MB2(0xCCCB), 0x0000, 0x0000, MB2(0xB0DE), + 0x0000, 0x0000, MB2(0xE5CD), 0x0000, + MB2(0xCEFD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5CC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1EF), 0x0000, 0x0000, /* 7E00 */ + MB2(0xC6EC), MB2(0xE5CF), 0x0000, 0x0000, + 0x0000, MB2(0xE5D6), MB2(0xE5D0), MB2(0xE5D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7FB), + 0x0000, 0x0000, MB2(0xBCCA), MB2(0xE5D5), + 0x0000, MB2(0xE5D2), MB2(0xE5D8), MB2(0xE5D1), /* 7E20 */ + 0x0000, 0x0000, MB2(0xBDC4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBA5), + 0x0000, 0x0000, MB2(0xBDCC), 0x0000, + 0x0000, MB2(0xE5D4), MB2(0xE5E0), 0x0000, + 0x0000, MB2(0xE5DC), 0x0000, MB2(0xE5DF), + 0x0000, MB2(0xE5DD), MB2(0xE5E1), MB2(0xE5DB), + 0x0000, MB2(0xE5C1), MB2(0xC0D3), 0x0000, + 0x0000, MB2(0xC8CB), 0x0000, MB2(0xE5DE), /* 7E40 */ + 0x0000, 0x0000, MB2(0xE5D9), 0x0000, + 0x0000, 0x0000, MB2(0xC1A1), MB2(0xB7D2), + 0x0000, MB2(0xBDAB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFA5), MB2(0xC1B6), MB2(0xE5E4), 0x0000, + 0x0000, MB2(0xE5E6), MB2(0xE5E7), 0x0000, + 0x0000, MB2(0xE5E3), MB2(0xE5E5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, MB2(0xE5DA), MB2(0xE5E2), + 0x0000, MB2(0xE5EA), MB2(0xE5E9), 0x0000, + 0x0000, MB2(0xCBFA), 0x0000, 0x0000, + MB2(0xB7AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5E8), 0x0000, MB2(0xE5EC), + MB2(0xE5EB), MB2(0xE5EF), 0x0000, MB2(0xE5F1), + 0x0000, 0x0000, MB2(0xBBBC), MB2(0xE5ED), /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5F2), MB2(0xE5F3), 0x0000, 0x0000, + MB2(0xE5F4), 0x0000, MB2(0xE5FA), MB2(0xC5BB), + MB2(0xE5F6), 0x0000, MB2(0xE5F5), MB2(0xE5F7), + MB2(0xE5F8), 0x0000, MB2(0xE5F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5FB), + MB2(0xE5FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4CC), 0x0000, + MB2(0xE5FD), 0x0000, MB2(0xE5FE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, MB2(0xE6A1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6A2), MB2(0xE6A3), MB2(0xE6A4), 0x0000, + MB2(0xE6A5), MB2(0xE6A6), 0x0000, 0x0000, + MB2(0xE6A8), MB2(0xE6A7), 0x0000, 0x0000, + MB2(0xE6A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6AA), + MB2(0xE6AB), 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, MB2(0xE6AE), + MB2(0xE6AC), MB2(0xE6AD), MB2(0xBAE1), MB2(0xB7D3), + 0x0000, 0x0000, MB2(0xC3D6), 0x0000, + MB2(0xC8B3), 0x0000, MB2(0xBDF0), 0x0000, + 0x0000, MB2(0xC7CD), 0x0000, MB2(0xC8ED), + MB2(0xE6AF), MB2(0xD8ED), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6B0), MB2(0xE6B2), /* 7F80 */ + 0x0000, MB2(0xCDE5), MB2(0xE6B1), MB2(0xE6B4), + MB2(0xE6B3), 0x0000, MB2(0xCDD3), 0x0000, + MB2(0xE6B5), 0x0000, MB2(0xC8FE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6B9), 0x0000, + 0x0000, MB2(0xE6B8), MB2(0xE6B7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6BA), /* 7FA0 */ + MB2(0xB7B2), 0x0000, 0x0000, 0x0000, + MB2(0xC1A2), MB2(0xB5C1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6BE), MB2(0xE6BB), + 0x0000, 0x0000, MB2(0xE6BC), 0x0000, + 0x0000, 0x0000, MB2(0xE6BF), 0x0000, + MB2(0xE6C0), MB2(0xE6BD), 0x0000, 0x0000, + 0x0000, MB2(0xB1A9), 0x0000, 0x0000, + 0x0000, MB2(0xB2A7), 0x0000, 0x0000, /* 7FC0 */ + 0x0000, MB2(0xE6C2), MB2(0xE6C3), 0x0000, + 0x0000, 0x0000, MB2(0xE6C4), 0x0000, + MB2(0xCDE2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDAC), 0x0000, + MB2(0xE6C6), MB2(0xE6C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFE9), MB2(0xE6C7), 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, MB2(0xE6C8), 0x0000, + 0x0000, MB2(0xE6C9), 0x0000, MB2(0xB4E5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4CD), 0x0000, 0x0000, MB2(0xE6CA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6CB), 0x0000, MB2(0xCBDD), + MB2(0xCDE3), 0x0000, 0x0000, 0x0000, + MB2(0xCDD4), MB2(0xCFB7), 0x0000, MB2(0xB9CD), /* 8000 */ + MB2(0xE6CE), MB2(0xBCD4), MB2(0xE6CD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6CF), + MB2(0xBCA9), 0x0000, 0x0000, 0x0000, + MB2(0xC2D1), 0x0000, MB2(0xE6D0), 0x0000, + 0x0000, MB2(0xB9CC), 0x0000, MB2(0xCCD7), + MB2(0xE6D1), MB2(0xE6D2), 0x0000, 0x0000, + MB2(0xE6D3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6D4), 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCAA), + 0x0000, 0x0000, MB2(0xCCED), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6D7), + 0x0000, MB2(0xC3BF), 0x0000, MB2(0xE6D6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, MB2(0xE6D9), 0x0000, + 0x0000, 0x0000, MB2(0xE6D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6DA), 0x0000, + 0x0000, 0x0000, MB2(0xC0BB), 0x0000, + MB2(0xE6DB), 0x0000, MB2(0xE6DC), 0x0000, + 0x0000, 0x0000, MB2(0xCAB9), MB2(0xE6DD), + 0x0000, MB2(0xC1EF), MB2(0xE6DE), 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEFE), + MB2(0xE6E2), 0x0000, MB2(0xE6E1), MB2(0xE6E0), + MB2(0xC4B0), 0x0000, MB2(0xE6E3), MB2(0xBFA6), + 0x0000, MB2(0xE6E4), 0x0000, 0x0000, + 0x0000, MB2(0xE6E5), MB2(0xCFB8), MB2(0xE6E6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + MB2(0xE6E7), MB2(0xE6E9), MB2(0xE6E8), MB2(0xC8A5), + 0x0000, MB2(0xC6F9), 0x0000, MB2(0xCFBE), + MB2(0xC8A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6EB), + 0x0000, 0x0000, MB2(0xBED3), 0x0000, + MB2(0xC9AA), 0x0000, MB2(0xE6EC), MB2(0xE6EA), + 0x0000, MB2(0xB4CE), 0x0000, 0x0000, + 0x0000, MB2(0xB8D4), MB2(0xBBE8), 0x0000, /* 80A0 */ + 0x0000, MB2(0xC8EE), 0x0000, 0x0000, + 0x0000, MB2(0xB8AA), MB2(0xCBC3), 0x0000, + MB2(0xE6EF), MB2(0xE6ED), 0x0000, MB2(0xB9CE), + 0x0000, MB2(0xB9CF), MB2(0xB0E9), 0x0000, + MB2(0xBAE8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7D9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0DF), /* 80C0 */ + MB2(0xE6F4), 0x0000, MB2(0xC3C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7D8), 0x0000, MB2(0xC2DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F6), 0x0000, + 0x0000, MB2(0xE6F2), MB2(0xE6F5), MB2(0xE6F0), + 0x0000, MB2(0xE6F3), MB2(0xCBA6), 0x0000, + 0x0000, MB2(0xB8D5), 0x0000, 0x0000, /* 80E0 */ + MB2(0xB0FD), MB2(0xE6F1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6F8), + 0x0000, MB2(0xE6F9), 0x0000, 0x0000, + MB2(0xC6B9), 0x0000, 0x0000, 0x0000, + MB2(0xB6BB), 0x0000, 0x0000, 0x0000, + MB2(0xE7A6), MB2(0xC7BD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBE9), 0x0000, /* 8100 */ + 0x0000, MB2(0xB6BC), MB2(0xC0C8), MB2(0xCFC6), + MB2(0xCCAE), MB2(0xE6F7), MB2(0xC0D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5D3), MB2(0xE6FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FC), /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6FB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FD), + 0x0000, MB2(0xC3A6), 0x0000, MB2(0xC7BE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4B1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7A3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, MB2(0xE7A2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FE), + 0x0000, 0x0000, MB2(0xBFD5), 0x0000, + MB2(0xC9E5), MB2(0xE7A5), 0x0000, MB2(0xE7A4), + MB2(0xB9D0), MB2(0xCFD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, MB2(0xE7A9), MB2(0xE7AA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCF0), + 0x0000, 0x0000, MB2(0xE7A8), 0x0000, + MB2(0xB9F8), MB2(0xE7A7), 0x0000, 0x0000, + MB2(0xE7AB), 0x0000, 0x0000, 0x0000, + MB2(0xC4B2), MB2(0xCAA2), MB2(0xC1A3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2DC), + MB2(0xE7AF), 0x0000, MB2(0xE7B0), MB2(0xE7AC), /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7AD), 0x0000, MB2(0xE7AE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9D1), + 0x0000, 0x0000, 0x0000, MB2(0xE7B6), + 0x0000, MB2(0xE7B2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9E6), 0x0000, + MB2(0xCBEC), MB2(0xC9A8), 0x0000, 0x0000, + MB2(0xE7B1), 0x0000, 0x0000, MB2(0xE7B4), /* 81A0 */ + MB2(0xE7B3), 0x0000, 0x0000, 0x0000, + MB2(0xCBC4), MB2(0xE7B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7B8), 0x0000, 0x0000, MB2(0xC1B7), + 0x0000, MB2(0xE7B9), 0x0000, 0x0000, + MB2(0xE7BB), 0x0000, MB2(0xE7BF), 0x0000, + 0x0000, MB2(0xE7BC), MB2(0xE7BA), MB2(0xC7BF), + MB2(0xE7BD), 0x0000, MB2(0xE7BE), 0x0000, /* 81C0 */ + 0x0000, 0x0000, MB2(0xB2B2), 0x0000, + MB2(0xE7C5), MB2(0xE7C0), 0x0000, 0x0000, + 0x0000, MB2(0xE7C1), 0x0000, 0x0000, + 0x0000, MB2(0xE7C2), 0x0000, MB2(0xC2A1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7C4), MB2(0xE7C3), MB2(0xE7C6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7C7), + MB2(0xE7C8), 0x0000, 0x0000, MB2(0xBFC3), /* 81E0 */ + 0x0000, MB2(0xB2E9), 0x0000, MB2(0xE7C9), + MB2(0xCED7), 0x0000, MB2(0xBCAB), 0x0000, + 0x0000, MB2(0xBDAD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBEA), + MB2(0xC3D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7CA), MB2(0xE7CB), + MB2(0xB1B1), 0x0000, MB2(0xE7CC), 0x0000, + 0x0000, MB2(0xE7CD), MB2(0xE7CE), 0x0000, /* 8200 */ + 0x0000, MB2(0xE7CF), 0x0000, MB2(0xE7D0), + MB2(0xB6BD), MB2(0xDAAA), MB2(0xE7D1), 0x0000, + MB2(0xC0E5), MB2(0xE7D2), MB2(0xBCCB), 0x0000, + MB2(0xE7D3), 0x0000, MB2(0xD0B0), 0x0000, + 0x0000, 0x0000, MB2(0xE7D4), MB2(0xCADE), + MB2(0xB4DC), 0x0000, 0x0000, MB2(0xC1A4), + MB2(0xBDD8), 0x0000, MB2(0xC9F1), MB2(0xBDAE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7D5), MB2(0xB9D2), MB2(0xE7D6), + MB2(0xC8CC), 0x0000, MB2(0xE7E4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7D8), + 0x0000, MB2(0xC2C9), MB2(0xC7F5), MB2(0xB8BF), + MB2(0xE7D7), MB2(0xC1A5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7D9), 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, MB2(0xC4FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7DB), MB2(0xE7DA), MB2(0xE7DD), 0x0000, + 0x0000, MB2(0xE7DC), 0x0000, MB2(0xE7DE), + 0x0000, 0x0000, MB2(0xE7E0), 0x0000, /* 8260 */ + MB2(0xE7DF), 0x0000, MB2(0xB4CF), 0x0000, + MB2(0xE7E1), 0x0000, MB2(0xE7E2), MB2(0xE7E3), + 0x0000, 0x0000, MB2(0xBAB1), MB2(0xCEC9), + 0x0000, MB2(0xE7E5), MB2(0xBFA7), 0x0000, + 0x0000, 0x0000, MB2(0xB1F0), MB2(0xE7E6), + MB2(0xE7E7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7E8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F2), + 0x0000, MB2(0xE7E9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9E7), 0x0000, 0x0000, + 0x0000, MB2(0xBCC7), 0x0000, MB2(0xE7EC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, MB2(0xB3A9), MB2(0xB0B2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7EB), + MB2(0xE7EE), MB2(0xC7CE), 0x0000, MB2(0xBFC4), + 0x0000, MB2(0xB2D6), 0x0000, MB2(0xCBA7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7DD), MB2(0xB6DC), 0x0000, MB2(0xE7ED), + 0x0000, MB2(0xB2EA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, MB2(0xB4A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1F1), MB2(0xE7F2), MB2(0xCEEA), + MB2(0xC2DD), 0x0000, 0x0000, MB2(0xC9C4), + 0x0000, MB2(0xE7FE), 0x0000, MB2(0xB2D7), + MB2(0xE7FC), 0x0000, MB2(0xE7FA), MB2(0xE7F1), + 0x0000, MB2(0xE7EF), 0x0000, MB2(0xE7F0), /* 82E0 */ + 0x0000, MB2(0xBCE3), MB2(0xB6EC), MB2(0xC3F7), + 0x0000, 0x0000, 0x0000, MB2(0xC6D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1D1), 0x0000, MB2(0xE7F4), + MB2(0xE7F3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7F9), MB2(0xE7F5), MB2(0xE7F8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCD0), MB2(0xE7F7), /* 8300 */ + MB2(0xB2D8), MB2(0xB3FD), MB2(0xE7FB), 0x0000, + 0x0000, MB2(0xE7FD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8A3), MB2(0xE8AC), + MB2(0xE8AD), 0x0000, 0x0000, 0x0000, + MB2(0xB0AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8B4), /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0F1), 0x0000, 0x0000, MB2(0xE8AB), + 0x0000, 0x0000, 0x0000, MB2(0xE8AA), + 0x0000, MB2(0xE8A5), MB2(0xE8A4), 0x0000, + MB2(0xE8A2), MB2(0xE8A1), MB2(0xC3E3), 0x0000, + MB2(0xC2FB), MB2(0xE8A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8A6), 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, MB2(0xE8A9), 0x0000, 0x0000, + 0x0000, MB2(0xC1F0), MB2(0xB7D5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1C1), + MB2(0xE8A8), 0x0000, MB2(0xB9D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8BA), + 0x0000, MB2(0xE8BB), 0x0000, MB2(0xB2D9), + 0x0000, 0x0000, 0x0000, MB2(0xB2AE), + MB2(0xE8B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, MB2(0xE8AE), 0x0000, MB2(0xE8B6), + 0x0000, MB2(0xE8BD), MB2(0xE8B7), 0x0000, + 0x0000, 0x0000, MB2(0xE8B5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7F6), + 0x0000, 0x0000, MB2(0xE8B3), 0x0000, + 0x0000, 0x0000, MB2(0xE8AF), 0x0000, + 0x0000, 0x0000, MB2(0xB4D0), MB2(0xE8B1), + MB2(0xE8BC), 0x0000, MB2(0xE8B2), 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8BE), 0x0000, MB2(0xE8B0), MB2(0xC7FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDE9), 0x0000, 0x0000, + 0x0000, MB2(0xE8B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8CF), 0x0000, 0x0000, + 0x0000, MB2(0xE8C7), 0x0000, 0x0000, /* 83C0 */ + 0x0000, MB2(0xBFFB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5C6), 0x0000, + MB2(0xB6DD), 0x0000, MB2(0xE8C2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2DB), + 0x0000, 0x0000, MB2(0xBED4), 0x0000, + MB2(0xE8C5), 0x0000, 0x0000, 0x0000, + MB2(0xBADA), 0x0000, 0x0000, MB2(0xC5D1), + MB2(0xE8CA), 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAEE), 0x0000, MB2(0xE8C1), + 0x0000, 0x0000, 0x0000, MB2(0xB2DA), + MB2(0xB8D6), MB2(0xC9A9), MB2(0xE8CB), 0x0000, + MB2(0xE8BF), 0x0000, 0x0000, MB2(0xE8C8), + 0x0000, 0x0000, 0x0000, MB2(0xE8D2), + 0x0000, MB2(0xE8C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8C4), /* 8400 */ + MB2(0xC6BA), 0x0000, 0x0000, MB2(0xE8C9), + 0x0000, 0x0000, 0x0000, MB2(0xE8C6), + MB2(0xCBA8), MB2(0xE8CC), MB2(0xB0E0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8CE), 0x0000, MB2(0xE8CD), 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7EB), MB2(0xE8D4), 0x0000, + MB2(0xE8DF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3FE), 0x0000, 0x0000, + 0x0000, MB2(0xE8E2), 0x0000, 0x0000, + MB2(0xE8D0), 0x0000, 0x0000, 0x0000, + MB2(0xE8D5), MB2(0xCDEE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, MB2(0xE8DE), 0x0000, + 0x0000, MB2(0xCDD5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3F8), + 0x0000, 0x0000, 0x0000, MB2(0xB3EB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9F2), MB2(0xE8E4), MB2(0xC6A1), /* 8460 */ + 0x0000, 0x0000, MB2(0xB0B1), 0x0000, + 0x0000, MB2(0xE8DD), 0x0000, MB2(0xE8D9), + MB2(0xC1F2), MB2(0xE8D3), MB2(0xE8DB), MB2(0xE8E0), + 0x0000, MB2(0xC7AC), 0x0000, 0x0000, + 0x0000, MB2(0xB0AA), 0x0000, MB2(0xE8D8), + 0x0000, MB2(0xE8E1), MB2(0xC9F8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8DC), 0x0000, /* 8480 */ + MB2(0xE8D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBED5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDAF), 0x0000, 0x0000, 0x0000, + MB2(0xBCAC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCD8), 0x0000, 0x0000, + MB2(0xC9C7), 0x0000, 0x0000, MB2(0xE8E7), + 0x0000, MB2(0xE8F0), 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8DA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEF8), MB2(0xE8E5), 0x0000, MB2(0xE8EA), + MB2(0xC1F3), 0x0000, 0x0000, MB2(0xE8E6), + 0x0000, MB2(0xE8ED), 0x0000, 0x0000, /* 84C0 */ + MB2(0xC3DF), 0x0000, MB2(0xE8EE), 0x0000, + 0x0000, MB2(0xCDD6), MB2(0xE8E3), MB2(0xB3B8), + 0x0000, MB2(0xE8E9), 0x0000, 0x0000, + MB2(0xE8EC), MB2(0xCCAC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8EF), 0x0000, + 0x0000, MB2(0xE8E8), MB2(0xE8EB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBA9), 0x0000, MB2(0xCFA1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8F3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8FA), 0x0000, 0x0000, MB2(0xE8F2), + MB2(0xBCC3), 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, MB2(0xE8D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCACE), 0x0000, MB2(0xCCA2), + MB2(0xE8F9), MB2(0xE8F8), 0x0000, MB2(0xE8F4), + MB2(0xE8F5), 0x0000, MB2(0xB1B6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8F7), + 0x0000, MB2(0xE8F1), 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, MB2(0xC4D5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8F6), MB2(0xB0FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2A2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAC3), 0x0000, 0x0000, + MB2(0xE8FB), MB2(0xE9A1), 0x0000, MB2(0xC8D9), /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8FE), MB2(0xBED6), MB2(0xBCC9), MB2(0xE9A3), + 0x0000, 0x0000, MB2(0xB6BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9A4), 0x0000, MB2(0xC9F9), + MB2(0xE8FD), 0x0000, MB2(0xE8D6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8FC), /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFCF), MB2(0xC6A2), MB2(0xC9F3), 0x0000, + 0x0000, MB2(0xE9AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9B2), 0x0000, + MB2(0xE9A5), 0x0000, 0x0000, 0x0000, /* 8580 */ + MB2(0xC7F6), 0x0000, 0x0000, MB2(0xE9AF), + MB2(0xE9A7), 0x0000, MB2(0xE9A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9B3), MB2(0xE9A8), 0x0000, 0x0000, + MB2(0xE9AC), 0x0000, 0x0000, MB2(0xB1F2), + 0x0000, MB2(0xC6E5), 0x0000, MB2(0xE9AD), + MB2(0xE9B0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + MB2(0xE9A6), 0x0000, MB2(0xC1A6), 0x0000, + MB2(0xE9AA), MB2(0xBBA7), MB2(0xBFC5), MB2(0xB7B0), + MB2(0xCCF4), 0x0000, MB2(0xCCF9), MB2(0xBDF2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B7), MB2(0xE9B5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFCE), 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B4), 0x0000, 0x0000, + 0x0000, MB2(0xCDF5), 0x0000, MB2(0xE9B6), + MB2(0xE9B8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9BC), MB2(0xE9BA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + MB2(0xC6A3), MB2(0xE9BB), 0x0000, 0x0000, + 0x0000, MB2(0xC8CD), MB2(0xE9AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDF3), + 0x0000, MB2(0xE9BD), MB2(0xE9C2), MB2(0xC1F4), + 0x0000, 0x0000, MB2(0xE9C1), 0x0000, + 0x0000, 0x0000, MB2(0xE9A2), 0x0000, /* 8600 */ + 0x0000, 0x0000, MB2(0xE9C3), MB2(0xC1C9), + 0x0000, 0x0000, MB2(0xE9BE), MB2(0xE9C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9BF), + 0x0000, 0x0000, MB2(0xDDB1), MB2(0xDDA2), + 0x0000, 0x0000, MB2(0xE9C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9C4), 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDF6), 0x0000, MB2(0xE2BC), + MB2(0xE9C6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9C7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C8), MB2(0xB8D7), 0x0000, + MB2(0xB5D4), 0x0000, 0x0000, 0x0000, + MB2(0xE9CA), MB2(0xD1DD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5F5), 0x0000, + MB2(0xCEBA), 0x0000, MB2(0xB6F3), MB2(0xE9CB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, MB2(0xE9CC), + 0x0000, 0x0000, 0x0000, MB2(0xC3EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6FA), 0x0000, MB2(0xB0BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2E3), MB2(0xE9D2), + MB2(0xE9D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9CE), + 0x0000, MB2(0xBBBD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9CF), /* 86A0 */ + MB2(0xC7C2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9D0), MB2(0xE9D1), MB2(0xE9DB), + 0x0000, 0x0000, 0x0000, MB2(0xE9D5), + MB2(0xE9D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + MB2(0xE9D6), 0x0000, MB2(0xE9D7), MB2(0xBCD8), + 0x0000, MB2(0xE9D9), 0x0000, MB2(0xC3C1), + 0x0000, MB2(0xB7D6), MB2(0xB3C2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9DC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3BF), 0x0000, MB2(0xE9E1), + 0x0000, 0x0000, MB2(0xE9DD), MB2(0xE9E0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + MB2(0xC8BA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9DE), 0x0000, 0x0000, + MB2(0xE9DF), MB2(0xC9C8), MB2(0xC8DA), MB2(0xE9E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2FD), MB2(0xE9EC), 0x0000, MB2(0xE9E8), + 0x0000, 0x0000, MB2(0xB2EB), 0x0000, + MB2(0xE9E6), 0x0000, MB2(0xCBAA), MB2(0xE9E7), /* 8700 */ + 0x0000, 0x0000, MB2(0xE9E4), 0x0000, + MB2(0xE9E5), MB2(0xE9EA), MB2(0xE9ED), 0x0000, + 0x0000, MB2(0xE9EB), 0x0000, 0x0000, + 0x0000, MB2(0xE9E9), MB2(0xE9E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3D8), 0x0000, MB2(0xE9F4), 0x0000, + MB2(0xCCAA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, MB2(0xE9F2), 0x0000, 0x0000, + 0x0000, MB2(0xE9F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9EE), 0x0000, 0x0000, MB2(0xE9F0), + 0x0000, 0x0000, 0x0000, MB2(0xE9F1), + 0x0000, 0x0000, 0x0000, MB2(0xE9EF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0E6), 0x0000, MB2(0xCFB9), + MB2(0xE9F8), 0x0000, MB2(0xE9F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAA1), + 0x0000, MB2(0xBFAA), 0x0000, MB2(0xE9FB), + 0x0000, MB2(0xE9FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9F6), + MB2(0xE9F5), 0x0000, 0x0000, MB2(0xEAA2), /* 8760 */ + 0x0000, 0x0000, MB2(0xB2DC), 0x0000, + MB2(0xE9FC), 0x0000, MB2(0xEAA3), 0x0000, + 0x0000, 0x0000, MB2(0xE9FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE9FA), 0x0000, MB2(0xC4B3), 0x0000, + MB2(0xE9F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7E8), + 0x0000, 0x0000, MB2(0xEAA7), 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDBB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAA6), + 0x0000, 0x0000, MB2(0xEAA5), 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAAE), + 0x0000, 0x0000, 0x0000, MB2(0xEAA8), + 0x0000, 0x0000, 0x0000, MB2(0xEAB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDE6), MB2(0xEAB3), + 0x0000, MB2(0xEAAA), 0x0000, 0x0000, + MB2(0xEAAB), 0x0000, 0x0000, 0x0000, /* 87C0 */ + MB2(0xEAAF), 0x0000, MB2(0xEAB2), MB2(0xEAB1), + 0x0000, 0x0000, 0x0000, MB2(0xEAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAAC), 0x0000, MB2(0xEABD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAB6), 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAB4), + 0x0000, 0x0000, MB2(0xEAB5), 0x0000, + 0x0000, 0x0000, MB2(0xEABA), MB2(0xEABB), + 0x0000, MB2(0xB3AA), 0x0000, MB2(0xB5C2), + 0x0000, 0x0000, MB2(0xEAB9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, MB2(0xEAA4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAB8), MB2(0xEABC), MB2(0xEAB7), + 0x0000, MB2(0xEABE), 0x0000, 0x0000, + 0x0000, MB2(0xEAC0), MB2(0xEABF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAC2), MB2(0xEAC1), MB2(0xE9DA), /* 8820 */ + 0x0000, 0x0000, 0x0000, MB2(0xEAC6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAC3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAC4), 0x0000, + 0x0000, MB2(0xEAC5), 0x0000, MB2(0xEAC7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7EC), 0x0000, MB2(0xEAC9), 0x0000, /* 8840 */ + MB2(0xEAC8), 0x0000, MB2(0xBDB0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9D4), MB2(0xDEA7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEACA), MB2(0xBDD1), + 0x0000, 0x0000, 0x0000, MB2(0xB3B9), + 0x0000, MB2(0xEACB), 0x0000, MB2(0xB1D2), + 0x0000, MB2(0xBED7), MB2(0xEACC), 0x0000, + 0x0000, MB2(0xB9D5), MB2(0xEACD), MB2(0xB0E1), /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9BD), 0x0000, 0x0000, MB2(0xEACE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFEA), 0x0000, MB2(0xEAD5), 0x0000, + 0x0000, MB2(0xEAD2), 0x0000, MB2(0xC3EF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAD3), MB2(0xEAD0), MB2(0xB6DE), + 0x0000, MB2(0xEACF), MB2(0xEAD6), 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7B6), 0x0000, 0x0000, MB2(0xC2DE), + 0x0000, MB2(0xEADC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAD8), 0x0000, + 0x0000, 0x0000, MB2(0xC2B5), MB2(0xEAD7), + 0x0000, MB2(0xEADA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAD1), 0x0000, + 0x0000, 0x0000, MB2(0xEADB), 0x0000, /* 88A0 */ + MB2(0xEADD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8EF), + 0x0000, 0x0000, MB2(0xEAD9), 0x0000, + MB2(0xEADE), MB2(0xEAE0), 0x0000, 0x0000, + MB2(0xB8D3), MB2(0xEAD4), 0x0000, MB2(0xB0C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEADF), + 0x0000, MB2(0xBADB), MB2(0xCEF6), MB2(0xEAE1), /* 88C0 */ + MB2(0xEAE2), MB2(0xC1F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEA2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAE3), MB2(0xCDB5), 0x0000, 0x0000, + MB2(0xEAE4), MB2(0xEAE5), 0x0000, 0x0000, + MB2(0xCAE4), MB2(0xEAE6), 0x0000, MB2(0xBAC0), + 0x0000, MB2(0xCEA3), 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAEB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAEC), MB2(0xBED8), + MB2(0xEAEA), 0x0000, 0x0000, 0x0000, + MB2(0xCDE7), MB2(0xEAE7), 0x0000, 0x0000, + MB2(0xEAE9), MB2(0xC0BD), MB2(0xBFFE), 0x0000, + 0x0000, 0x0000, MB2(0xEAE8), 0x0000, /* 8900 */ + MB2(0xEAED), 0x0000, 0x0000, MB2(0xCAA3), + 0x0000, 0x0000, MB2(0xEAEF), 0x0000, + MB2(0xEAEE), 0x0000, 0x0000, 0x0000, + MB2(0xB3EC), 0x0000, MB2(0xCBAB), MB2(0xEAF0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAFC), MB2(0xEAF2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, MB2(0xEAF3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAF4), MB2(0xEAF5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAF9), 0x0000, + MB2(0xEAFA), 0x0000, 0x0000, MB2(0xEAF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAF6), 0x0000, MB2(0xEAF1), /* 8940 */ + MB2(0xEAF7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEAFB), MB2(0xF0B7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAFE), MB2(0xB6DF), + MB2(0xEAFD), 0x0000, 0x0000, 0x0000, /* 8960 */ + MB2(0xEBA2), 0x0000, MB2(0xEBA1), 0x0000, + 0x0000, 0x0000, MB2(0xEBA4), 0x0000, + 0x0000, MB2(0xEBA3), 0x0000, MB2(0xEBA5), + 0x0000, 0x0000, MB2(0xBDB1), 0x0000, + MB2(0xEBA6), 0x0000, 0x0000, MB2(0xEBA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBA8), MB2(0xC0BE), + 0x0000, MB2(0xCDD7), 0x0000, MB2(0xEBA9), /* 8980 */ + 0x0000, 0x0000, MB2(0xCAA4), MB2(0xC7C6), + MB2(0xEBAA), 0x0000, MB2(0xEBAB), MB2(0xB8AB), + 0x0000, 0x0000, 0x0000, MB2(0xB5AC), + 0x0000, 0x0000, 0x0000, MB2(0xEBAC), + 0x0000, 0x0000, MB2(0xBBEB), MB2(0xC7C1), + MB2(0xEBAD), 0x0000, MB2(0xB3D0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBAE), 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, MB2(0xEBB0), MB2(0xCDF7), + 0x0000, MB2(0xEBAF), MB2(0xBFC6), 0x0000, + MB2(0xEBB1), 0x0000, 0x0000, MB2(0xEBB2), + 0x0000, 0x0000, MB2(0xEBB3), MB2(0xB4D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBB4), 0x0000, + 0x0000, MB2(0xEBB5), 0x0000, MB2(0xEBB6), + MB2(0xEBB7), 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBB8), 0x0000, + MB2(0xEBB9), MB2(0xEBBA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F2), /* 89E0 */ + 0x0000, 0x0000, MB2(0xBFA8), MB2(0xEBBB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBBC), 0x0000, 0x0000, 0x0000, + MB2(0xEBBD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8C0), 0x0000, MB2(0xC4FB), MB2(0xEBBE), /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7D7), 0x0000, MB2(0xBFD6), 0x0000, + MB2(0xEBC1), 0x0000, MB2(0xC6A4), 0x0000, + MB2(0xEBC0), 0x0000, 0x0000, MB2(0xB7B1), + 0x0000, 0x0000, MB2(0xEBBF), MB2(0xC2F7), + MB2(0xB5AD), 0x0000, 0x0000, MB2(0xEBC2), + 0x0000, MB2(0xEBC3), 0x0000, MB2(0xBED9), + 0x0000, 0x0000, 0x0000, MB2(0xB7ED), /* 8A20 */ + 0x0000, MB2(0xEBC4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBAC), 0x0000, + 0x0000, MB2(0xC0DF), 0x0000, 0x0000, + 0x0000, MB2(0xB5F6), 0x0000, MB2(0xCCF5), + MB2(0xC1CA), 0x0000, MB2(0xEBC5), 0x0000, + 0x0000, 0x0000, MB2(0xBFC7), MB2(0xC3F0), + MB2(0xBEDA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBC6), 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, MB2(0xEBC9), 0x0000, + MB2(0xEBCA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBABE), MB2(0xC2C2), MB2(0xEBC8), 0x0000, + MB2(0xBEDB), MB2(0xC9BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBC7), + 0x0000, 0x0000, MB2(0xBBEC), 0x0000, + MB2(0xB1D3), 0x0000, MB2(0xEBCE), MB2(0xB7D8), /* 8A60 */ + 0x0000, 0x0000, MB2(0xBBEE), 0x0000, + 0x0000, MB2(0xBBED), 0x0000, MB2(0xCFCD), + MB2(0xEBCD), MB2(0xEBCC), MB2(0xC1A7), 0x0000, + MB2(0xB5CD), MB2(0xCFC3), MB2(0xB3BA), MB2(0xBEDC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBCB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBD0), 0x0000, /* 8A80 */ + MB2(0xEBD1), MB2(0xEBCF), 0x0000, MB2(0xB8D8), + 0x0000, MB2(0xCDC0), 0x0000, 0x0000, + MB2(0xBBEF), MB2(0xC7A7), 0x0000, 0x0000, + 0x0000, MB2(0xEBD4), 0x0000, MB2(0xC0C0), + 0x0000, MB2(0xC3C2), 0x0000, 0x0000, + MB2(0xCDB6), 0x0000, MB2(0xEBD7), 0x0000, + 0x0000, 0x0000, MB2(0xB8EC), 0x0000, + MB2(0xC0BF), MB2(0xEBD3), 0x0000, MB2(0xEBD8), /* 8AA0 */ + MB2(0xB8ED), MB2(0xEBD5), MB2(0xEBD6), 0x0000, + MB2(0xEBD2), 0x0000, 0x0000, 0x0000, + MB2(0xC0E2), MB2(0xC6C9), 0x0000, 0x0000, + MB2(0xC3AF), 0x0000, MB2(0xB2DD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8F0), 0x0000, 0x0000, + MB2(0xB5C3), 0x0000, 0x0000, MB2(0xC4B4), + 0x0000, 0x0000, MB2(0xEBDB), 0x0000, /* 8AC0 */ + MB2(0xEBD9), 0x0000, 0x0000, MB2(0xC3CC), + 0x0000, 0x0000, 0x0000, MB2(0xC0C1), + MB2(0xB4D2), MB2(0xEBDA), 0x0000, MB2(0xBFDB), + 0x0000, 0x0000, MB2(0xCECA), 0x0000, + 0x0000, 0x0000, MB2(0xCFC0), 0x0000, + 0x0000, 0x0000, MB2(0xEBDC), MB2(0xEBE7), + MB2(0xC4B5), 0x0000, MB2(0xEBE6), 0x0000, + MB2(0xEBE3), MB2(0xEBEB), MB2(0xEBE4), 0x0000, /* 8AE0 */ + MB2(0xEBE0), 0x0000, MB2(0xC4FC), MB2(0xEBDF), + 0x0000, 0x0000, 0x0000, MB2(0xEBDD), + 0x0000, MB2(0xCDA1), MB2(0xBBF0), 0x0000, + 0x0000, MB2(0xEBE1), 0x0000, MB2(0xEBDE), + 0x0000, 0x0000, 0x0000, MB2(0xEBE5), + MB2(0xBDF4), 0x0000, MB2(0xB8C1), 0x0000, + 0x0000, 0x0000, MB2(0xC2FA), 0x0000, + MB2(0xCBC5), MB2(0xB1DA), MB2(0xB0E2), 0x0000, /* 8B00 */ + MB2(0xC6A5), 0x0000, 0x0000, MB2(0xEBE9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBE8), 0x0000, MB2(0xC6E6), 0x0000, + MB2(0xEBED), 0x0000, 0x0000, 0x0000, + MB2(0xEBE2), 0x0000, MB2(0xEBEC), MB2(0xEBEE), + 0x0000, MB2(0xB8AC), MB2(0xEBEA), MB2(0xB9D6), + 0x0000, MB2(0xBCD5), 0x0000, 0x0000, + MB2(0xEBEF), MB2(0xCDD8), 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, MB2(0xEBF2), 0x0000, + MB2(0xEBF5), 0x0000, 0x0000, MB2(0xEBF3), + MB2(0xC9B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBF0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6E0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBF4), 0x0000, + 0x0000, MB2(0xEBF6), 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBFA), 0x0000, 0x0000, + MB2(0xEBF7), 0x0000, MB2(0xEBF9), MB2(0xEBF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBFB), 0x0000, + MB2(0xBCB1), 0x0000, MB2(0xEBFD), MB2(0xEBFC), + MB2(0xC9E8), 0x0000, 0x0000, MB2(0xECA1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, MB2(0xB7D9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBFE), + MB2(0xECA2), 0x0000, 0x0000, MB2(0xECA3), + MB2(0xB5C4), MB2(0xE6C1), MB2(0xBEF9), 0x0000, + MB2(0xECA4), 0x0000, 0x0000, MB2(0xB8EE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECA5), 0x0000, 0x0000, + MB2(0xECA6), 0x0000, 0x0000, MB2(0xBBBE), /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDACE), 0x0000, + MB2(0xECA7), 0x0000, MB2(0xECA8), 0x0000, + MB2(0xBDB2), 0x0000, MB2(0xECA9), MB2(0xECAA), + 0x0000, 0x0000, MB2(0xECAB), 0x0000, + 0x0000, MB2(0xECAC), MB2(0xECAD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3AB), + 0x0000, 0x0000, MB2(0xECAE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECB0), + 0x0000, MB2(0xECAF), 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, MB2(0xC6A6), 0x0000, + MB2(0xECB1), 0x0000, MB2(0xCBAD), 0x0000, + MB2(0xECB2), 0x0000, MB2(0xECB3), 0x0000, + MB2(0xECB4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECB5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEDD), MB2(0xECB6), 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9EB), MB2(0xD0AE), + MB2(0xECB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECB8), MB2(0xC9BF), MB2(0xECB9), 0x0000, + MB2(0xECC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECBA), 0x0000, /* 8C80 */ + 0x0000, MB2(0xECBC), 0x0000, 0x0000, + 0x0000, MB2(0xECBB), MB2(0xECBD), 0x0000, + MB2(0xCBC6), MB2(0xECBE), MB2(0xECBF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECC0), 0x0000, 0x0000, 0x0000, + MB2(0xECC2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3AD), MB2(0xC4E7), 0x0000, + MB2(0xC9E9), MB2(0xBAE2), MB2(0xB9D7), 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC9CF), + MB2(0xB2DF), MB2(0xC8CE), MB2(0xECC5), MB2(0xB4D3), + MB2(0xC0D5), MB2(0xECC4), MB2(0xECC9), MB2(0xC3F9), + MB2(0xCCE3), 0x0000, MB2(0xECC7), MB2(0xECC8), + MB2(0xB5AE), 0x0000, MB2(0xECCA), MB2(0xC7E3), + MB2(0xC2DF), 0x0000, 0x0000, MB2(0xC8F1), + MB2(0xC5BD), MB2(0xECC6), 0x0000, MB2(0xCBC7), + MB2(0xB2EC), MB2(0xECCC), MB2(0xCFA8), MB2(0xC4C2), /* 8CC0 */ + MB2(0xCFC5), 0x0000, 0x0000, MB2(0xBBF1), + MB2(0xECCB), 0x0000, MB2(0xC2B1), 0x0000, + 0x0000, MB2(0xECDC), MB2(0xC1A8), 0x0000, + 0x0000, MB2(0xC6F8), 0x0000, MB2(0xC9D0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECCF), MB2(0xBBBF), + MB2(0xBBF2), 0x0000, MB2(0xBEDE), 0x0000, + MB2(0xC7E5), 0x0000, MB2(0xB8AD), MB2(0xECCE), /* 8CE0 */ + MB2(0xECCD), 0x0000, MB2(0xC9EA), 0x0000, + 0x0000, 0x0000, MB2(0xBCC1), 0x0000, + 0x0000, MB2(0xC5D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECD1), MB2(0xECD2), + MB2(0xB9D8), MB2(0xECD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + MB2(0xECD3), MB2(0xECD4), 0x0000, MB2(0xECD6), + MB2(0xC2A3), 0x0000, MB2(0xECD5), MB2(0xB4E6), + 0x0000, MB2(0xECD8), 0x0000, MB2(0xECD7), + MB2(0xECD9), 0x0000, 0x0000, MB2(0xECDB), + MB2(0xECDD), 0x0000, MB2(0xECDE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + MB2(0xC0D6), 0x0000, MB2(0xBCCF), MB2(0xECDF), + 0x0000, 0x0000, 0x0000, MB2(0xB3D2), + 0x0000, MB2(0xECE0), 0x0000, 0x0000, + MB2(0xC1F6), MB2(0xECE1), 0x0000, MB2(0xECE2), + MB2(0xC9EB), 0x0000, 0x0000, MB2(0xB5AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECE3), 0x0000, 0x0000, /* 8D80 */ + 0x0000, MB2(0xC4B6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECE4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCF1), /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFF6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECE7), 0x0000, + 0x0000, 0x0000, MB2(0xECE6), 0x0000, + 0x0000, 0x0000, MB2(0xECE5), 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECED), + MB2(0xECEB), 0x0000, 0x0000, MB2(0xECE8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECEA), 0x0000, + 0x0000, 0x0000, MB2(0xECE9), MB2(0xECEC), + 0x0000, MB2(0xB5F7), 0x0000, MB2(0xECF0), + 0x0000, MB2(0xC0D7), 0x0000, MB2(0xECF1), /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8D9), 0x0000, MB2(0xECEE), MB2(0xECEF), + 0x0000, 0x0000, 0x0000, MB2(0xCFA9), + 0x0000, 0x0000, 0x0000, MB2(0xC4B7), + 0x0000, MB2(0xC1A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECF2), 0x0000, 0x0000, MB2(0xECF5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECF3), MB2(0xECF4), MB2(0xCDD9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6A7), + MB2(0xECF8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECF6), MB2(0xECF7), MB2(0xECF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDA9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECFC), 0x0000, 0x0000, 0x0000, + MB2(0xECFD), MB2(0xECFB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECFA), 0x0000, /* 8E40 */ + MB2(0xC4FD), 0x0000, 0x0000, MB2(0xEDA1), + MB2(0xEDA5), MB2(0xEDA2), MB2(0xECFE), 0x0000, + MB2(0xEDA3), 0x0000, 0x0000, 0x0000, + MB2(0xEDA4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDAB), 0x0000, 0x0000, + 0x0000, MB2(0xEDA6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0D8), + MB2(0xEDA8), 0x0000, 0x0000, MB2(0xEDAA), /* 8E60 */ + MB2(0xEDA7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDAD), 0x0000, + MB2(0xBDB3), 0x0000, MB2(0xEDAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEDAE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDAF), 0x0000, 0x0000, /* 8E80 */ + MB2(0xEDB2), MB2(0xEDB1), 0x0000, MB2(0xEDB0), + 0x0000, 0x0000, MB2(0xEDB4), MB2(0xEDB3), + 0x0000, MB2(0xCCF6), 0x0000, 0x0000, + 0x0000, MB2(0xEDB6), 0x0000, MB2(0xEDB5), + MB2(0xEDB7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDBA), 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDB9), MB2(0xBFC8), + MB2(0xEDBB), 0x0000, 0x0000, MB2(0xB6ED), + MB2(0xEDBC), MB2(0xEDBE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDBF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, MB2(0xEDC0), MB2(0xEDBD), 0x0000, + MB2(0xEDC1), 0x0000, MB2(0xBCD6), MB2(0xEDC2), + MB2(0xB5B0), MB2(0xB7B3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDC3), + 0x0000, 0x0000, 0x0000, MB2(0xC6F0), + 0x0000, 0x0000, MB2(0xC5BE), MB2(0xEDC4), /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDC7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCB4), 0x0000, 0x0000, MB2(0xEDC6), + MB2(0xEDC5), MB2(0xB7DA), MB2(0xEDC8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3D3), /* 8F00 */ + 0x0000, MB2(0xEDCA), 0x0000, 0x0000, + 0x0000, MB2(0xBADC), MB2(0xEDC9), 0x0000, + MB2(0xEDD2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDCC), MB2(0xEDCE), + MB2(0xCAE5), MB2(0xEDCB), 0x0000, 0x0000, + 0x0000, MB2(0xEDCD), 0x0000, MB2(0xEDD1), + MB2(0xEDCF), MB2(0xB5B1), 0x0000, MB2(0xEDD0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, MB2(0xEDD3), 0x0000, + 0x0000, MB2(0xC7DA), MB2(0xCED8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDB4), + 0x0000, 0x0000, 0x0000, MB2(0xEDD4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDA2), MB2(0xEDD6), 0x0000, MB2(0xEDD5), + 0x0000, 0x0000, MB2(0xEDD9), MB2(0xCDC1), + 0x0000, 0x0000, MB2(0xEDD8), 0x0000, /* 8F40 */ + MB2(0xB3ED), MB2(0xEDD7), MB2(0xEDDC), 0x0000, + 0x0000, MB2(0xEDDB), 0x0000, 0x0000, + MB2(0xEDDA), MB2(0xC5B2), MB2(0xEDDD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDDE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEDDF), 0x0000, 0x0000, MB2(0xB9EC), + 0x0000, MB2(0xB7A5), MB2(0xEDE0), MB2(0xEDE1), /* 8F60 */ + MB2(0xEDE2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFC9), + MB2(0xEDE3), 0x0000, MB2(0xBCAD), MB2(0xEDE4), + 0x0000, 0x0000, 0x0000, MB2(0xEDE5), /* 8FA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD2A1), + MB2(0xD1FE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDE6), MB2(0xE5F0), MB2(0xEDE7), + MB2(0xC3A4), MB2(0xBFAB), MB2(0xC7C0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDE8), + 0x0000, 0x0000, MB2(0xCAD5), MB2(0xC4D4), + MB2(0xB9FE), 0x0000, 0x0000, MB2(0xC3A9), + 0x0000, 0x0000, MB2(0xB1AA), 0x0000, /* 8FC0 */ + MB2(0xCBF8), MB2(0xBFD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7DE), 0x0000, + 0x0000, MB2(0xB6E1), 0x0000, 0x0000, + MB2(0xCAD6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDE9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDEB), 0x0000, /* 8FE0 */ + 0x0000, MB2(0xEDEA), MB2(0xB2E0), 0x0000, + 0x0000, MB2(0xC6F6), MB2(0xEDEC), MB2(0xC7F7), + 0x0000, MB2(0xC5B3), 0x0000, MB2(0xEDED), + MB2(0xBDD2), 0x0000, 0x0000, 0x0000, + MB2(0xEDEF), 0x0000, 0x0000, MB2(0xCCC2), + MB2(0xEDFE), MB2(0xEDF1), MB2(0xEDF2), 0x0000, + 0x0000, MB2(0xC4C9), 0x0000, 0x0000, + MB2(0xC2E0), MB2(0xC1F7), 0x0000, MB2(0xC6A8), /* 9000 */ + 0x0000, MB2(0xEDF0), MB2(0xB5D5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDF9), + 0x0000, MB2(0xEDF6), MB2(0xEEA5), MB2(0xC6A9), + MB2(0xC3E0), MB2(0xEDF3), 0x0000, MB2(0xC4FE), + MB2(0xC5D3), MB2(0xEDF4), MB2(0xEDF8), MB2(0xBFE0), + 0x0000, MB2(0xC7E7), MB2(0xC4CC), 0x0000, + 0x0000, MB2(0xC0C2), MB2(0xEDF7), MB2(0xC2AE), + MB2(0xC2A4), MB2(0xEDF5), MB2(0xB0A9), MB2(0xCFA2), /* 9020 */ + 0x0000, 0x0000, 0x0000, MB2(0xEDFA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2E1), 0x0000, + 0x0000, MB2(0xBDB5), MB2(0xBFCA), 0x0000, + 0x0000, MB2(0xEDFC), MB2(0xEDFB), 0x0000, + MB2(0xB0EF), MB2(0xEDFD), 0x0000, 0x0000, + MB2(0xC9AF), 0x0000, MB2(0xEEA7), 0x0000, + 0x0000, MB2(0xC6DB), MB2(0xBFEB), 0x0000, /* 9040 */ + 0x0000, MB2(0xC3D9), 0x0000, MB2(0xB6F8), + 0x0000, MB2(0xEEA6), MB2(0xCDB7), MB2(0xB1BF), + 0x0000, MB2(0xCAD7), MB2(0xB2E1), MB2(0xEEA1), + MB2(0xEEA2), MB2(0xEEA3), MB2(0xEEA4), MB2(0xC6BB), + MB2(0xC3A3), MB2(0xB0E3), MB2(0xEEA8), 0x0000, + MB2(0xEEA9), MB2(0xF4A3), 0x0000, 0x0000, + MB2(0xC2BD), 0x0000, MB2(0xEEAA), 0x0000, + MB2(0xB1F3), MB2(0xC1CC), 0x0000, MB2(0xB8AF), /* 9060 */ + 0x0000, MB2(0xCDDA), 0x0000, 0x0000, + MB2(0xEEAB), MB2(0xC5AC), 0x0000, 0x0000, + 0x0000, MB2(0xC1F8), MB2(0xBCD7), MB2(0xEEAC), + 0x0000, 0x0000, MB2(0xEEAF), 0x0000, + 0x0000, MB2(0xBDE5), MB2(0xEEAD), MB2(0xC1AB), + MB2(0xC1AA), 0x0000, MB2(0xB0E4), 0x0000, + MB2(0xCECB), MB2(0xEEB1), 0x0000, MB2(0xC8F2), + MB2(0xEEB3), MB2(0xEEB2), MB2(0xEEB0), MB2(0xE3E4), /* 9080 */ + MB2(0xB4D4), 0x0000, 0x0000, MB2(0xEDEE), + 0x0000, MB2(0xEEB5), MB2(0xEEB4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEB6), + 0x0000, MB2(0xCDB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6E1), /* 90A0 */ + 0x0000, 0x0000, MB2(0xCBAE), 0x0000, + MB2(0xEEB7), 0x0000, MB2(0xBCD9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEB8), + 0x0000, MB2(0xEEB9), 0x0000, 0x0000, + 0x0000, MB2(0xEEBA), 0x0000, 0x0000, + MB2(0xC5A1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0EA), 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9D9), 0x0000, + 0x0000, 0x0000, MB2(0xCFBA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEBE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7B4), MB2(0xEEBB), 0x0000, /* 90E0 */ + MB2(0xEEBC), 0x0000, 0x0000, 0x0000, + MB2(0xC9F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3D4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDB9), 0x0000, MB2(0xB6BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5D4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEBF), 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEC0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEEC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5A2), 0x0000, 0x0000, + MB2(0xEEC3), 0x0000, MB2(0xEEC2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6D3), MB2(0xEEC4), MB2(0xBDB6), + MB2(0xBCE0), MB2(0xC7DB), MB2(0xC3F1), 0x0000, + 0x0000, 0x0000, MB2(0xBCF2), 0x0000, + MB2(0xBFEC), 0x0000, MB2(0xEEC5), 0x0000, + MB2(0xEEC6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFDD), MB2(0xEEC7), /* 9160 */ + 0x0000, MB2(0xEEC8), 0x0000, 0x0000, + 0x0000, MB2(0xEEC9), MB2(0xCDEF), 0x0000, + MB2(0xBDB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEECB), MB2(0xEECA), + 0x0000, MB2(0xB9DA), 0x0000, MB2(0xB9F3), + MB2(0xBBC0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEECE), 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDE6), + 0x0000, MB2(0xEECD), 0x0000, MB2(0xEECC), + 0x0000, MB2(0xC2E9), 0x0000, 0x0000, + MB2(0xB8EF), 0x0000, MB2(0xC0C3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8B0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEECF), 0x0000, /* 91A0 */ + MB2(0xBEDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEED2), MB2(0xEED0), + 0x0000, 0x0000, 0x0000, MB2(0xEED1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEED4), MB2(0xEED3), 0x0000, 0x0000, + MB2(0xBEFA), 0x0000, MB2(0xEED5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEED6), MB2(0xEED7), 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, MB2(0xC8D0), MB2(0xBAD3), + MB2(0xBCE1), MB2(0xEED8), 0x0000, MB2(0xEED9), + MB2(0xCEA4), MB2(0xBDC5), MB2(0xCCEE), MB2(0xCECC), + MB2(0xEEDA), MB2(0xB6E2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEDB), 0x0000, + MB2(0xC5A3), 0x0000, 0x0000, MB2(0xEEDE), + MB2(0xB3F8), MB2(0xBFCB), 0x0000, MB2(0xEEDC), + 0x0000, MB2(0xEEDD), 0x0000, MB2(0xC4E0), /* 91E0 */ + 0x0000, 0x0000, MB2(0xCBD5), MB2(0xB6FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEEE0), MB2(0xEEE1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEEDF), 0x0000, 0x0000, MB2(0xEEE3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6DF), MB2(0xB3C3), 0x0000, + 0x0000, MB2(0xEEE7), 0x0000, 0x0000, + MB2(0xEEE4), MB2(0xEEE6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEEE2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFCF), 0x0000, 0x0000, + MB2(0xEEE5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEEB), 0x0000, 0x0000, MB2(0xB8DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEEF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + MB2(0xC5B4), MB2(0xEEEA), 0x0000, 0x0000, + MB2(0xEEED), MB2(0xEEEB), 0x0000, MB2(0xEEF0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEEF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEE9), + 0x0000, 0x0000, MB2(0xEEF6), MB2(0xB1F4), + 0x0000, 0x0000, MB2(0xEEE8), 0x0000, + 0x0000, 0x0000, MB2(0xC8AD), 0x0000, /* 9260 */ + MB2(0xEEEC), 0x0000, MB2(0xBEE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9DB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBC8), 0x0000, + MB2(0xB6E4), 0x0000, 0x0000, MB2(0xBDC6), /* 9280 */ + 0x0000, MB2(0xC6BC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1AD), 0x0000, MB2(0xEEF4), + 0x0000, MB2(0xEEEE), MB2(0xEEF3), 0x0000, + MB2(0xCCC3), 0x0000, MB2(0xC4B8), MB2(0xEEF5), + MB2(0xEEF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEF9), + 0x0000, MB2(0xEEF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEF7), + 0x0000, 0x0000, MB2(0xCBAF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + MB2(0xBDFB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEEFA), MB2(0xCADF), 0x0000, + 0x0000, MB2(0xB1D4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9C6), MB2(0xC3F2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5F8), 0x0000, MB2(0xEEFC), 0x0000, + MB2(0xB9DD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, MB2(0xBBAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEEFB), + MB2(0xBFED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFEE), MB2(0xEFA1), MB2(0xEFA3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEFB), 0x0000, MB2(0xEFA2), MB2(0xEFA4), /* 9320 */ + 0x0000, 0x0000, MB2(0xB6D3), 0x0000, + MB2(0xC9C5), 0x0000, 0x0000, MB2(0xBCE2), + MB2(0xCFA3), 0x0000, MB2(0xEEFE), MB2(0xBAF8), + 0x0000, 0x0000, MB2(0xCFBF), 0x0000, + 0x0000, MB2(0xEFA6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFA5), MB2(0xEFA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + MB2(0xEEFD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6E9), + 0x0000, MB2(0xC5D5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4D7), 0x0000, MB2(0xEFAC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3C3), + MB2(0xEFA8), 0x0000, 0x0000, 0x0000, + MB2(0xEFA9), 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7AD), 0x0000, MB2(0xEFAB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8B0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFAA), 0x0000, MB2(0xBEE1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFB0), 0x0000, MB2(0xBABF), MB2(0xC1F9), + 0x0000, 0x0000, MB2(0xC4CA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB3BB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFAE), MB2(0xEFAF), MB2(0xC4C3), 0x0000, + MB2(0xEFAD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFB1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFB7), /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFBA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFB9), MB2(0xC5AD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFB2), MB2(0xEFB3), + MB2(0xEFB6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFB8), 0x0000, 0x0000, + 0x0000, MB2(0xB6C0), 0x0000, 0x0000, /* 93E0 */ + MB2(0xEFBB), MB2(0xEFB5), 0x0000, 0x0000, + MB2(0xEFB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFBF), /* 9400 */ + 0x0000, 0x0000, 0x0000, MB2(0xEFC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFC1), 0x0000, 0x0000, MB2(0xEFBE), + MB2(0xEFBD), 0x0000, 0x0000, 0x0000, + MB2(0xBEE2), MB2(0xC6AA), MB2(0xEFBC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFC5), 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFC3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFC4), MB2(0xEFC2), 0x0000, + MB2(0xC2F8), 0x0000, MB2(0xEFC6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFC7), 0x0000, 0x0000, /* 9440 */ + MB2(0xEFC9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4D5), MB2(0xEFC8), MB2(0xCCFA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFD4), MB2(0xEFCA), + 0x0000, 0x0000, MB2(0xEFCD), 0x0000, + MB2(0xEFCB), 0x0000, MB2(0xEFCC), 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEFCE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFD0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFD1), 0x0000, MB2(0xEFD2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFD5), MB2(0xEFD3), MB2(0xEFD6), MB2(0xEFD8), + 0x0000, MB2(0xEFD7), 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4B9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCE7), 0x0000, MB2(0xEFD9), MB2(0xC1AE), /* 9580 */ + 0x0000, 0x0000, 0x0000, MB2(0xEFDA), + 0x0000, MB2(0xCAC4), MB2(0xEFDB), MB2(0xB3AB), + 0x0000, 0x0000, 0x0000, MB2(0xB1BC), + 0x0000, MB2(0xB4D7), 0x0000, MB2(0xB4D6), + MB2(0xEFDC), 0x0000, MB2(0xEFDD), 0x0000, + MB2(0xEFDE), MB2(0xEFDF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFE0), 0x0000, MB2(0xB4D8), MB2(0xB3D5), /* 95A0 */ + MB2(0xB9DE), MB2(0xC8B6), 0x0000, MB2(0xEFE2), + MB2(0xEFE1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFE3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFE6), 0x0000, MB2(0xEFE5), + MB2(0xEFE4), 0x0000, MB2(0xEFE7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFEA), /* 95C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB0C7), + 0x0000, 0x0000, MB2(0xEFE8), 0x0000, + MB2(0xEFEC), MB2(0xEFEB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFEE), MB2(0xEFED), MB2(0xEFEF), 0x0000, + MB2(0xC6AE), 0x0000, 0x0000, 0x0000, + MB2(0xEFF0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFF1), MB2(0xEFF3), 0x0000, /* 95E0 */ + 0x0000, MB2(0xEFF2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEFF4), 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEFF5), 0x0000, MB2(0xBAE5), 0x0000, + 0x0000, 0x0000, MB2(0xEFF6), MB2(0xEFF7), + 0x0000, 0x0000, MB2(0xCBC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1CB), + 0x0000, 0x0000, 0x0000, MB2(0xB0A4), + MB2(0xC2CB), 0x0000, MB2(0xEFF8), 0x0000, /* 9640 */ + MB2(0xC9ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEFFB), + MB2(0xEFF9), MB2(0xB9DF), 0x0000, MB2(0xEFFA), + MB2(0xB8C2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC5), + MB2(0xEFFD), MB2(0xF0A1), MB2(0xEFFE), MB2(0xF0A2), + 0x0000, 0x0000, MB2(0xB1A1), MB2(0xBFD8), /* 9660 */ + MB2(0xBDFC), MB2(0xB4D9), MB2(0xF0A3), 0x0000, + 0x0000, 0x0000, MB2(0xC7E6), 0x0000, + MB2(0xF0A5), 0x0000, 0x0000, 0x0000, + MB2(0xB1A2), 0x0000, MB2(0xF0A4), MB2(0xC4C4), + 0x0000, MB2(0xCECD), MB2(0xC6AB), MB2(0xEFFC), + MB2(0xCEA6), 0x0000, MB2(0xB8B1), 0x0000, + 0x0000, MB2(0xCDDB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, MB2(0xB6F9), MB2(0xCEB4), 0x0000, + MB2(0xB7A8), 0x0000, MB2(0xC2E2), MB2(0xE7A1), + 0x0000, MB2(0xF0A6), MB2(0xB3AC), MB2(0xBFEF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3D6), MB2(0xF0A8), 0x0000, MB2(0xF0A9), + MB2(0xF0A7), MB2(0xB7E4), 0x0000, MB2(0xBADD), + MB2(0xBEE3), 0x0000, 0x0000, 0x0000, + MB2(0xB1A3), 0x0000, 0x0000, MB2(0xCED9), /* 96A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xF0AB), + MB2(0xEEAE), 0x0000, MB2(0xF0AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF0AE), MB2(0xF0AC), MB2(0xF0AD), 0x0000, + MB2(0xF0AF), 0x0000, MB2(0xF0B0), MB2(0xCEEC), + MB2(0xF0B1), MB2(0xF0B2), 0x0000, MB2(0xC0C9), + MB2(0xC8BB), 0x0000, 0x0000, 0x0000, + MB2(0xBFFD), MB2(0xB4E7), 0x0000, 0x0000, /* 96C0 */ + MB2(0xCDBA), MB2(0xB2ED), MB2(0xBDB8), MB2(0xB8DB), + 0x0000, MB2(0xF0B5), 0x0000, MB2(0xF0B4), + MB2(0xBBF3), MB2(0xF0B6), MB2(0xF0B3), 0x0000, + 0x0000, MB2(0xBBA8), 0x0000, 0x0000, + 0x0000, MB2(0xF0BA), MB2(0xEAAD), 0x0000, + 0x0000, MB2(0xD2D6), 0x0000, MB2(0xBFF7), + MB2(0xF0B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEA5), MB2(0xC6F1), /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1AB), 0x0000, MB2(0xC0E3), MB2(0xBCB6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAB7), 0x0000, MB2(0xB1C0), 0x0000, + 0x0000, 0x0000, MB2(0xCEED), MB2(0xCDEB), + 0x0000, MB2(0xF0BB), 0x0000, MB2(0xC5C5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCFB), 0x0000, 0x0000, 0x0000, /* 9700 */ + MB2(0xF0BC), 0x0000, MB2(0xF0BD), MB2(0xBFCC), + MB2(0xF0BE), 0x0000, MB2(0xCEEE), 0x0000, + 0x0000, MB2(0xF0B9), MB2(0xF0C0), MB2(0xF0C2), + 0x0000, MB2(0xF0C1), 0x0000, MB2(0xF0BF), + 0x0000, 0x0000, MB2(0xF0C3), 0x0000, + 0x0000, MB2(0xF0C4), 0x0000, 0x0000, + MB2(0xC1FA), 0x0000, MB2(0xB2E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + MB2(0xF0C5), 0x0000, 0x0000, MB2(0xCCB8), + 0x0000, 0x0000, MB2(0xF0C6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF0C7), 0x0000, MB2(0xCFAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBB1), MB2(0xF0C8), 0x0000, 0x0000, + 0x0000, MB2(0xF0C9), MB2(0xF0CA), 0x0000, + 0x0000, 0x0000, MB2(0xF0CE), 0x0000, /* 9740 */ + MB2(0xF0CB), 0x0000, MB2(0xF0CC), 0x0000, + MB2(0xF0CD), MB2(0xF0CF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0C4), 0x0000, + 0x0000, 0x0000, MB2(0xCCF7), 0x0000, + 0x0000, MB2(0xC0C5), 0x0000, 0x0000, + MB2(0xF0D0), 0x0000, MB2(0xC8F3), 0x0000, + MB2(0xF0D1), MB2(0xF3D3), MB2(0xCCCC), 0x0000, /* 9760 */ + MB2(0xF0D2), 0x0000, MB2(0xF0D3), 0x0000, + MB2(0xF0D4), MB2(0xB3D7), 0x0000, MB2(0xF0D6), + 0x0000, MB2(0xBFD9), 0x0000, 0x0000, + 0x0000, MB2(0xF0D7), 0x0000, 0x0000, + MB2(0xB7A4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0D8), MB2(0xF0DC), 0x0000, + MB2(0xF0DA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0DB), 0x0000, 0x0000, /* 9780 */ + MB2(0xB3F3), MB2(0xF0D9), MB2(0xF0DD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0DE), + 0x0000, MB2(0xB0C8), 0x0000, MB2(0xF0DF), + MB2(0xF0E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEE4), 0x0000, 0x0000, 0x0000, + MB2(0xF0E1), 0x0000, 0x0000, 0x0000, + MB2(0xB5C7), 0x0000, 0x0000, MB2(0xF0E4), /* 97A0 */ + 0x0000, 0x0000, MB2(0xF0E3), 0x0000, + MB2(0xF0E2), 0x0000, 0x0000, MB2(0xEBF1), + 0x0000, MB2(0xCADC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0E5), + MB2(0xF0E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0E7), /* 97C0 */ + 0x0000, 0x0000, MB2(0xF0E8), 0x0000, + MB2(0xF0E9), 0x0000, 0x0000, MB2(0xF0EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF0EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0EC), MB2(0xC7A3), 0x0000, + 0x0000, 0x0000, MB2(0xF0EE), MB2(0xB2BB), + 0x0000, MB2(0xF0F1), MB2(0xF0F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1A4), + 0x0000, 0x0000, 0x0000, MB2(0xB6C1), + 0x0000, MB2(0xCAC7), MB2(0xC4BA), MB2(0xBAA2), /* 9800 */ + 0x0000, MB2(0xB9E0), MB2(0xBDE7), 0x0000, + MB2(0xBFDC), 0x0000, 0x0000, 0x0000, + MB2(0xF0F3), 0x0000, 0x0000, MB2(0xF0F2), + MB2(0xCDC2), MB2(0xB4E8), MB2(0xC8D2), MB2(0xC6DC), + 0x0000, 0x0000, 0x0000, MB2(0xBFFC), + MB2(0xCECE), 0x0000, MB2(0xB7DB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF0F6), 0x0000, 0x0000, /* 9820 */ + MB2(0xF0F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBCB), MB2(0xC6AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1D0), 0x0000, 0x0000, MB2(0xF0F7), + MB2(0xF0F4), 0x0000, 0x0000, MB2(0xC9D1), + MB2(0xCDEA), MB2(0xF0F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, MB2(0xF0F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF0FB), + MB2(0xC2EA), MB2(0xB3DB), MB2(0xB3DC), MB2(0xF0FA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4E9), MB2(0xB8B2), 0x0000, 0x0000, + MB2(0xB4EA), 0x0000, 0x0000, MB2(0xC5BF), + 0x0000, 0x0000, MB2(0xCEE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, MB2(0xB8DC), + 0x0000, 0x0000, 0x0000, MB2(0xF0FC), + 0x0000, 0x0000, 0x0000, MB2(0xF0FD), + MB2(0xF0FE), MB2(0xF1A1), 0x0000, MB2(0xF1A3), + MB2(0xF1A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9F7), 0x0000, MB2(0xF1A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1A5), + 0x0000, MB2(0xF1A6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF1A7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1A9), /* 98C0 */ + MB2(0xF1A8), 0x0000, MB2(0xF1AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8F4), + MB2(0xE6CC), 0x0000, 0x0000, MB2(0xBFA9), + 0x0000, 0x0000, MB2(0xB5B2), 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1AB), 0x0000, MB2(0xF1AC), + 0x0000, MB2(0xD2AC), MB2(0xDDBB), MB2(0xC8D3), + 0x0000, 0x0000, MB2(0xB0FB), 0x0000, + MB2(0xB0BB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBF4), MB2(0xCBB0), MB2(0xBEFE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1AD), /* 9900 */ + 0x0000, MB2(0xCCDF), 0x0000, 0x0000, + 0x0000, MB2(0xF1AE), MB2(0xCDDC), 0x0000, + MB2(0xB1C2), 0x0000, 0x0000, 0x0000, + MB2(0xBBC1), 0x0000, MB2(0xF1AF), MB2(0xB2EE), + MB2(0xF1B0), 0x0000, 0x0000, 0x0000, + MB2(0xF1B1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1B3), MB2(0xF1B4), 0x0000, + MB2(0xF1B6), MB2(0xF1B2), 0x0000, 0x0000, /* 9920 */ + MB2(0xF1B5), 0x0000, 0x0000, 0x0000, + MB2(0xB4DB), 0x0000, 0x0000, 0x0000, + MB2(0xF1B7), 0x0000, MB2(0xF1B8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1B9), MB2(0xF1BA), 0x0000, + 0x0000, 0x0000, MB2(0xF1BB), 0x0000, /* 9940 */ + 0x0000, MB2(0xF1BD), 0x0000, 0x0000, + 0x0000, MB2(0xF1BC), 0x0000, MB2(0xF1BF), + MB2(0xF1C2), 0x0000, 0x0000, 0x0000, + MB2(0xF1BE), MB2(0xF1C0), MB2(0xF1C1), 0x0000, + 0x0000, MB2(0xF1C3), 0x0000, MB2(0xB6C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCF3), MB2(0xF1C4), + MB2(0xF1C5), MB2(0xB9E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, MB2(0xF1C6), 0x0000, 0x0000, + MB2(0xB3BE), 0x0000, 0x0000, 0x0000, + MB2(0xC7CF), MB2(0xF1C7), MB2(0xF1C8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3DA), + MB2(0xC6EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF1C9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7FD), 0x0000, 0x0000, /* 99C0 */ + MB2(0xC2CC), MB2(0xB1D8), MB2(0xB6EE), 0x0000, + MB2(0xB6EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3F3), MB2(0xF1CE), MB2(0xB6F0), 0x0000, + 0x0000, MB2(0xB2EF), 0x0000, 0x0000, + MB2(0xF1CD), 0x0000, 0x0000, MB2(0xF1CB), + 0x0000, MB2(0xF1CC), 0x0000, MB2(0xF1CA), + 0x0000, 0x0000, MB2(0xF1D8), 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1CF), MB2(0xF1D0), 0x0000, + 0x0000, MB2(0xF1D1), MB2(0xF1D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF1D4), 0x0000, 0x0000, MB2(0xF1D3), + 0x0000, 0x0000, 0x0000, MB2(0xBDD9), + 0x0000, MB2(0xF1D5), 0x0000, 0x0000, /* 9A00 */ + 0x0000, MB2(0xF1D7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5B3), MB2(0xF1D6), + 0x0000, 0x0000, MB2(0xC1FB), MB2(0xB8B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2CD), 0x0000, 0x0000, MB2(0xF1DA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6AD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF1E0), 0x0000, + MB2(0xF1DE), 0x0000, MB2(0xF1DD), MB2(0xF1DF), /* 9A40 */ + 0x0000, MB2(0xF1DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1E2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1E1), 0x0000, MB2(0xF1E4), + 0x0000, 0x0000, MB2(0xB6C3), MB2(0xF1E3), + 0x0000, 0x0000, 0x0000, MB2(0xF1E5), + 0x0000, 0x0000, MB2(0xF1E6), 0x0000, /* 9A60 */ + MB2(0xF1E8), MB2(0xF1E7), 0x0000, 0x0000, + 0x0000, MB2(0xF1E9), MB2(0xF1EB), MB2(0xF1EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9FC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF1EC), 0x0000, 0x0000, + MB2(0xF1ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3BC), 0x0000, 0x0000, 0x0000, + MB2(0xF1EE), 0x0000, 0x0000, 0x0000, + MB2(0xF1EF), 0x0000, 0x0000, 0x0000, /* 9AC0 */ + MB2(0xBFF1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF1F0), + 0x0000, MB2(0xF1F1), 0x0000, MB2(0xF1F2), + MB2(0xF1F3), 0x0000, 0x0000, 0x0000, + MB2(0xB9E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF1F4), MB2(0xF1F5), + 0x0000, 0x0000, MB2(0xF1F6), MB2(0xF1F7), /* 9AE0 */ + 0x0000, 0x0000, MB2(0xF1F8), 0x0000, + 0x0000, 0x0000, MB2(0xC8B1), MB2(0xF1FA), + 0x0000, MB2(0xC9A6), MB2(0xF1FB), MB2(0xF1F9), + 0x0000, MB2(0xF1FD), 0x0000, 0x0000, + MB2(0xF1FC), 0x0000, 0x0000, MB2(0xF1FE), + 0x0000, 0x0000, 0x0000, MB2(0xF2A1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, MB2(0xF2A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2A3), 0x0000, MB2(0xF2A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2A5), + 0x0000, 0x0000, MB2(0xF2A6), MB2(0xF2A7), /* 9B20 */ + 0x0000, MB2(0xF2A8), 0x0000, MB2(0xF2A9), + MB2(0xF2AA), MB2(0xF2AB), MB2(0xF2AC), 0x0000, + 0x0000, 0x0000, MB2(0xF2AD), MB2(0xF2AE), + 0x0000, MB2(0xDDB5), MB2(0xF2AF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4F8), + MB2(0xB5B4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3A1), MB2(0xBAB2), MB2(0xF2B1), /* 9B40 */ + MB2(0xF2B0), MB2(0xCCA5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2B3), MB2(0xF2B4), MB2(0xF2B2), + 0x0000, MB2(0xF2B5), 0x0000, 0x0000, + MB2(0xCBE2), 0x0000, 0x0000, 0x0000, + MB2(0xF2B6), 0x0000, MB2(0xB5FB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFA5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2B9), /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0BE), 0x0000, + 0x0000, MB2(0xF2BA), MB2(0xCAAB), MB2(0xF2B8), + 0x0000, 0x0000, MB2(0xF2BB), MB2(0xF2BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2BD), + MB2(0xF2BE), 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2BF), 0x0000, MB2(0xCBEE), MB2(0xBBAD), + 0x0000, MB2(0xBAFA), MB2(0xC1AF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2C0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2C1), 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, MB2(0xF2C4), 0x0000, + 0x0000, MB2(0xB8F1), MB2(0xF2C2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2C5), + 0x0000, MB2(0xF2C6), MB2(0xF2C7), 0x0000, + MB2(0xF2CB), 0x0000, MB2(0xBBAA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2E4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2CC), MB2(0xF2C9), MB2(0xF2C8), /* 9BE0 */ + MB2(0xF2CA), 0x0000, 0x0000, 0x0000, + MB2(0xB7DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2D0), MB2(0xF2CF), MB2(0xF2CE), 0x0000, + 0x0000, MB2(0xB0B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + MB2(0xF2DA), 0x0000, MB2(0xF2D6), 0x0000, + MB2(0xF2D7), MB2(0xF2D3), MB2(0xF2D9), 0x0000, + MB2(0xF2D5), MB2(0xB3E2), 0x0000, 0x0000, + MB2(0xCFCC), 0x0000, MB2(0xF2D8), MB2(0xF2D4), + MB2(0xF2D2), MB2(0xF2D1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF2DF), 0x0000, 0x0000, /* 9C20 */ + MB2(0xF2DE), MB2(0xF2DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9C9), MB2(0xF2DB), MB2(0xB0F3), + MB2(0xF2E0), 0x0000, MB2(0xF2E2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3EF), MB2(0xF2CD), MB2(0xB1B7), + 0x0000, 0x0000, MB2(0xF2E4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, MB2(0xF2E3), MB2(0xF2E1), + MB2(0xC3AD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBF0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEDA), + 0x0000, 0x0000, MB2(0xF2E5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF2E6), 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xF2E7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF2E8), 0x0000, + MB2(0xF2E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, MB2(0xC4BB), 0x0000, MB2(0xF2EA), + 0x0000, MB2(0xC8B7), 0x0000, MB2(0xF2EF), + MB2(0xF2EB), 0x0000, 0x0000, 0x0000, + MB2(0xF2EC), 0x0000, 0x0000, MB2(0xCBB1), + MB2(0xCCC4), 0x0000, MB2(0xC6D0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF2F0), /* 9D00 */ + 0x0000, 0x0000, MB2(0xF2F1), MB2(0xC6BE), + MB2(0xF2EE), MB2(0xF2ED), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2AA), 0x0000, + 0x0000, 0x0000, MB2(0xF2F9), 0x0000, + 0x0000, MB2(0xF2F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1F5), + 0x0000, 0x0000, 0x0000, MB2(0xF2F6), + 0x0000, 0x0000, 0x0000, MB2(0xF2F5), /* 9D20 */ + 0x0000, 0x0000, MB2(0xF2F3), 0x0000, + MB2(0xB3FB), 0x0000, MB2(0xF2F2), MB2(0xBCB2), + MB2(0xB2A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E3), + 0x0000, 0x0000, MB2(0xF2FC), MB2(0xF2FB), + 0x0000, MB2(0xF2FA), 0x0000, 0x0000, /* 9D40 */ + MB2(0xF2F7), 0x0000, MB2(0xF2FD), 0x0000, + MB2(0xF2FE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3A5), MB2(0xF3A4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3A6), 0x0000, 0x0000, + MB2(0xB1AD), MB2(0xF3A1), MB2(0xF3A2), 0x0000, + MB2(0xB9F4), MB2(0xCCB9), 0x0000, 0x0000, /* 9D60 */ + MB2(0xF3A3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBB2), 0x0000, 0x0000, MB2(0xF3AB), + 0x0000, 0x0000, MB2(0xF3A7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3AC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, MB2(0xF3A9), + 0x0000, MB2(0xF3A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB7DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + MB2(0xF3AE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3AF), 0x0000, MB2(0xF3AA), + 0x0000, 0x0000, 0x0000, MB2(0xF2F4), + 0x0000, 0x0000, MB2(0xF3B0), 0x0000, + MB2(0xC4E1), 0x0000, 0x0000, 0x0000, + MB2(0xF3B4), 0x0000, MB2(0xF3B5), MB2(0xF3B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3B2), MB2(0xF3B8), 0x0000, /* 9DC0 */ + MB2(0xF3B1), 0x0000, MB2(0xF3B6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF3B7), + 0x0000, 0x0000, 0x0000, MB2(0xF3BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, MB2(0xF3BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3BD), 0x0000, MB2(0xF3BE), + 0x0000, 0x0000, MB2(0xCFC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3BB), MB2(0xC2EB), MB2(0xBAED), 0x0000, + 0x0000, MB2(0xF3BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3C0), MB2(0xF3C1), + 0x0000, 0x0000, MB2(0xF3C2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3C3), 0x0000, 0x0000, + MB2(0xB8B4), MB2(0xF3C4), 0x0000, 0x0000, + 0x0000, MB2(0xF3C5), 0x0000, MB2(0xBCAF), + 0x0000, MB2(0xF3C6), 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3C7), 0x0000, 0x0000, MB2(0xF3C8), + MB2(0xF3C9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3CC), MB2(0xF3CA), MB2(0xCFBC), + 0x0000, MB2(0xF3CB), 0x0000, MB2(0xCEEF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3CD), 0x0000, MB2(0xCEDB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, MB2(0xF3CE), MB2(0xC7FE), 0x0000, + 0x0000, MB2(0xF3CF), MB2(0xF3D1), 0x0000, + 0x0000, MB2(0xF3D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3D0), MB2(0xB9ED), MB2(0xCCCD), MB2(0xCBE3), + MB2(0xD6F7), 0x0000, MB2(0xDDE0), MB2(0xCBFB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + MB2(0xB2AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3D4), MB2(0xB5D0), MB2(0xF3D5), MB2(0xF3D6), + MB2(0xF3D7), 0x0000, MB2(0xB9F5), 0x0000, + MB2(0xF3D8), 0x0000, 0x0000, 0x0000, + MB2(0xE0D4), MB2(0xCCDB), 0x0000, MB2(0xC2E3), + MB2(0xF3D9), MB2(0xF3DB), MB2(0xF3DA), 0x0000, + MB2(0xF3DC), 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, MB2(0xF3DD), 0x0000, 0x0000, + MB2(0xF3DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF3DF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3E0), 0x0000, MB2(0xF3E1), MB2(0xF3E2), + 0x0000, MB2(0xF3E3), 0x0000, MB2(0xF3E4), + MB2(0xF3E5), MB2(0xF3E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, MB2(0xF3E7), + MB2(0xF3E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8DD), + 0x0000, MB2(0xF3EA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1CD), MB2(0xF3EB), 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3EC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9A1), + 0x0000, 0x0000, MB2(0xF3ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3EE), MB2(0xE3B7), + 0x0000, 0x0000, MB2(0xECDA), MB2(0xF0ED), + 0x0000, 0x0000, MB2(0xF3EF), 0x0000, + MB2(0xF3F0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xF3F2), + MB2(0xF3F3), MB2(0xF3F4), MB2(0xCEF0), MB2(0xF3F1), /* 9F60 */ + 0x0000, 0x0000, MB2(0xF3F5), MB2(0xF3F6), + 0x0000, 0x0000, MB2(0xF3F8), 0x0000, + MB2(0xF3F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xF3FA), 0x0000, + 0x0000, 0x0000, MB2(0xF3FB), MB2(0xF3F9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xF3FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF3FD), MB2(0xE3D4), 0x0000, 0x0000, + MB2(0xF3FE), 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF5A1), MB2(0xF5A2), MB2(0xF5A3), MB2(0xF5A4), /* E000 */ + MB2(0xF5A5), MB2(0xF5A6), MB2(0xF5A7), MB2(0xF5A8), + MB2(0xF5A9), MB2(0xF5AA), MB2(0xF5AB), MB2(0xF5AC), + MB2(0xF5AD), MB2(0xF5AE), MB2(0xF5AF), MB2(0xF5B0), + MB2(0xF5B1), MB2(0xF5B2), MB2(0xF5B3), MB2(0xF5B4), + MB2(0xF5B5), MB2(0xF5B6), MB2(0xF5B7), MB2(0xF5B8), + MB2(0xF5B9), MB2(0xF5BA), MB2(0xF5BB), MB2(0xF5BC), + MB2(0xF5BD), MB2(0xF5BE), MB2(0xF5BF), MB2(0xF5C0), + MB2(0xF5C1), MB2(0xF5C2), MB2(0xF5C3), MB2(0xF5C4), /* E020 */ + MB2(0xF5C5), MB2(0xF5C6), MB2(0xF5C7), MB2(0xF5C8), + MB2(0xF5C9), MB2(0xF5CA), MB2(0xF5CB), MB2(0xF5CC), + MB2(0xF5CD), MB2(0xF5CE), MB2(0xF5CF), MB2(0xF5D0), + MB2(0xF5D1), MB2(0xF5D2), MB2(0xF5D3), MB2(0xF5D4), + MB2(0xF5D5), MB2(0xF5D6), MB2(0xF5D7), MB2(0xF5D8), + MB2(0xF5D9), MB2(0xF5DA), MB2(0xF5DB), MB2(0xF5DC), + MB2(0xF5DD), MB2(0xF5DE), MB2(0xF5DF), MB2(0xF5E0), + MB2(0xF5E1), MB2(0xF5E2), MB2(0xF5E3), MB2(0xF5E4), /* E040 */ + MB2(0xF5E5), MB2(0xF5E6), MB2(0xF5E7), MB2(0xF5E8), + MB2(0xF5E9), MB2(0xF5EA), MB2(0xF5EB), MB2(0xF5EC), + MB2(0xF5ED), MB2(0xF5EE), MB2(0xF5EF), MB2(0xF5F0), + MB2(0xF5F1), MB2(0xF5F2), MB2(0xF5F3), MB2(0xF5F4), + MB2(0xF5F5), MB2(0xF5F6), MB2(0xF5F7), MB2(0xF5F8), + MB2(0xF5F9), MB2(0xF5FA), MB2(0xF5FB), MB2(0xF5FC), + MB2(0xF5FD), MB2(0xF5FE), MB2(0xF6A1), MB2(0xF6A2), + MB2(0xF6A3), MB2(0xF6A4), MB2(0xF6A5), MB2(0xF6A6), /* E060 */ + MB2(0xF6A7), MB2(0xF6A8), MB2(0xF6A9), MB2(0xF6AA), + MB2(0xF6AB), MB2(0xF6AC), MB2(0xF6AD), MB2(0xF6AE), + MB2(0xF6AF), MB2(0xF6B0), MB2(0xF6B1), MB2(0xF6B2), + MB2(0xF6B3), MB2(0xF6B4), MB2(0xF6B5), MB2(0xF6B6), + MB2(0xF6B7), MB2(0xF6B8), MB2(0xF6B9), MB2(0xF6BA), + MB2(0xF6BB), MB2(0xF6BC), MB2(0xF6BD), MB2(0xF6BE), + MB2(0xF6BF), MB2(0xF6C0), MB2(0xF6C1), MB2(0xF6C2), + MB2(0xF6C3), MB2(0xF6C4), MB2(0xF6C5), MB2(0xF6C6), /* E080 */ + MB2(0xF6C7), MB2(0xF6C8), MB2(0xF6C9), MB2(0xF6CA), + MB2(0xF6CB), MB2(0xF6CC), MB2(0xF6CD), MB2(0xF6CE), + MB2(0xF6CF), MB2(0xF6D0), MB2(0xF6D1), MB2(0xF6D2), + MB2(0xF6D3), MB2(0xF6D4), MB2(0xF6D5), MB2(0xF6D6), + MB2(0xF6D7), MB2(0xF6D8), MB2(0xF6D9), MB2(0xF6DA), + MB2(0xF6DB), MB2(0xF6DC), MB2(0xF6DD), MB2(0xF6DE), + MB2(0xF6DF), MB2(0xF6E0), MB2(0xF6E1), MB2(0xF6E2), + MB2(0xF6E3), MB2(0xF6E4), MB2(0xF6E5), MB2(0xF6E6), /* E0A0 */ + MB2(0xF6E7), MB2(0xF6E8), MB2(0xF6E9), MB2(0xF6EA), + MB2(0xF6EB), MB2(0xF6EC), MB2(0xF6ED), MB2(0xF6EE), + MB2(0xF6EF), MB2(0xF6F0), MB2(0xF6F1), MB2(0xF6F2), + MB2(0xF6F3), MB2(0xF6F4), MB2(0xF6F5), MB2(0xF6F6), + MB2(0xF6F7), MB2(0xF6F8), MB2(0xF6F9), MB2(0xF6FA), + MB2(0xF6FB), MB2(0xF6FC), MB2(0xF6FD), MB2(0xF6FE), + MB2(0xF7A1), MB2(0xF7A2), MB2(0xF7A3), MB2(0xF7A4), + MB2(0xF7A5), MB2(0xF7A6), MB2(0xF7A7), MB2(0xF7A8), /* E0C0 */ + MB2(0xF7A9), MB2(0xF7AA), MB2(0xF7AB), MB2(0xF7AC), + MB2(0xF7AD), MB2(0xF7AE), MB2(0xF7AF), MB2(0xF7B0), + MB2(0xF7B1), MB2(0xF7B2), MB2(0xF7B3), MB2(0xF7B4), + MB2(0xF7B5), MB2(0xF7B6), MB2(0xF7B7), MB2(0xF7B8), + MB2(0xF7B9), MB2(0xF7BA), MB2(0xF7BB), MB2(0xF7BC), + MB2(0xF7BD), MB2(0xF7BE), MB2(0xF7BF), MB2(0xF7C0), + MB2(0xF7C1), MB2(0xF7C2), MB2(0xF7C3), MB2(0xF7C4), + MB2(0xF7C5), MB2(0xF7C6), MB2(0xF7C7), MB2(0xF7C8), /* E0E0 */ + MB2(0xF7C9), MB2(0xF7CA), MB2(0xF7CB), MB2(0xF7CC), + MB2(0xF7CD), MB2(0xF7CE), MB2(0xF7CF), MB2(0xF7D0), + MB2(0xF7D1), MB2(0xF7D2), MB2(0xF7D3), MB2(0xF7D4), + MB2(0xF7D5), MB2(0xF7D6), MB2(0xF7D7), MB2(0xF7D8), + MB2(0xF7D9), MB2(0xF7DA), MB2(0xF7DB), MB2(0xF7DC), + MB2(0xF7DD), MB2(0xF7DE), MB2(0xF7DF), MB2(0xF7E0), + MB2(0xF7E1), MB2(0xF7E2), MB2(0xF7E3), MB2(0xF7E4), + MB2(0xF7E5), MB2(0xF7E6), MB2(0xF7E7), MB2(0xF7E8), /* E100 */ + MB2(0xF7E9), MB2(0xF7EA), MB2(0xF7EB), MB2(0xF7EC), + MB2(0xF7ED), MB2(0xF7EE), MB2(0xF7EF), MB2(0xF7F0), + MB2(0xF7F1), MB2(0xF7F2), MB2(0xF7F3), MB2(0xF7F4), + MB2(0xF7F5), MB2(0xF7F6), MB2(0xF7F7), MB2(0xF7F8), + MB2(0xF7F9), MB2(0xF7FA), MB2(0xF7FB), MB2(0xF7FC), + MB2(0xF7FD), MB2(0xF7FE), MB2(0xF8A1), MB2(0xF8A2), + MB2(0xF8A3), MB2(0xF8A4), MB2(0xF8A5), MB2(0xF8A6), + MB2(0xF8A7), MB2(0xF8A8), MB2(0xF8A9), MB2(0xF8AA), /* E120 */ + MB2(0xF8AB), MB2(0xF8AC), MB2(0xF8AD), MB2(0xF8AE), + MB2(0xF8AF), MB2(0xF8B0), MB2(0xF8B1), MB2(0xF8B2), + MB2(0xF8B3), MB2(0xF8B4), MB2(0xF8B5), MB2(0xF8B6), + MB2(0xF8B7), MB2(0xF8B8), MB2(0xF8B9), MB2(0xF8BA), + MB2(0xF8BB), MB2(0xF8BC), MB2(0xF8BD), MB2(0xF8BE), + MB2(0xF8BF), MB2(0xF8C0), MB2(0xF8C1), MB2(0xF8C2), + MB2(0xF8C3), MB2(0xF8C4), MB2(0xF8C5), MB2(0xF8C6), + MB2(0xF8C7), MB2(0xF8C8), MB2(0xF8C9), MB2(0xF8CA), /* E140 */ + MB2(0xF8CB), MB2(0xF8CC), MB2(0xF8CD), MB2(0xF8CE), + MB2(0xF8CF), MB2(0xF8D0), MB2(0xF8D1), MB2(0xF8D2), + MB2(0xF8D3), MB2(0xF8D4), MB2(0xF8D5), MB2(0xF8D6), + MB2(0xF8D7), MB2(0xF8D8), MB2(0xF8D9), MB2(0xF8DA), + MB2(0xF8DB), MB2(0xF8DC), MB2(0xF8DD), MB2(0xF8DE), + MB2(0xF8DF), MB2(0xF8E0), MB2(0xF8E1), MB2(0xF8E2), + MB2(0xF8E3), MB2(0xF8E4), MB2(0xF8E5), MB2(0xF8E6), + MB2(0xF8E7), MB2(0xF8E8), MB2(0xF8E9), MB2(0xF8EA), /* E160 */ + MB2(0xF8EB), MB2(0xF8EC), MB2(0xF8ED), MB2(0xF8EE), + MB2(0xF8EF), MB2(0xF8F0), MB2(0xF8F1), MB2(0xF8F2), + MB2(0xF8F3), MB2(0xF8F4), MB2(0xF8F5), MB2(0xF8F6), + MB2(0xF8F7), MB2(0xF8F8), MB2(0xF8F9), MB2(0xF8FA), + MB2(0xF8FB), MB2(0xF8FC), MB2(0xF8FD), MB2(0xF8FE), + MB2(0xF9A1), MB2(0xF9A2), MB2(0xF9A3), MB2(0xF9A4), + MB2(0xF9A5), MB2(0xF9A6), MB2(0xF9A7), MB2(0xF9A8), + MB2(0xF9A9), MB2(0xF9AA), MB2(0xF9AB), MB2(0xF9AC), /* E180 */ + MB2(0xF9AD), MB2(0xF9AE), MB2(0xF9AF), MB2(0xF9B0), + MB2(0xF9B1), MB2(0xF9B2), MB2(0xF9B3), MB2(0xF9B4), + MB2(0xF9B5), MB2(0xF9B6), MB2(0xF9B7), MB2(0xF9B8), + MB2(0xF9B9), MB2(0xF9BA), MB2(0xF9BB), MB2(0xF9BC), + MB2(0xF9BD), MB2(0xF9BE), MB2(0xF9BF), MB2(0xF9C0), + MB2(0xF9C1), MB2(0xF9C2), MB2(0xF9C3), MB2(0xF9C4), + MB2(0xF9C5), MB2(0xF9C6), MB2(0xF9C7), MB2(0xF9C8), + MB2(0xF9C9), MB2(0xF9CA), MB2(0xF9CB), MB2(0xF9CC), /* E1A0 */ + MB2(0xF9CD), MB2(0xF9CE), MB2(0xF9CF), MB2(0xF9D0), + MB2(0xF9D1), MB2(0xF9D2), MB2(0xF9D3), MB2(0xF9D4), + MB2(0xF9D5), MB2(0xF9D6), MB2(0xF9D7), MB2(0xF9D8), + MB2(0xF9D9), MB2(0xF9DA), MB2(0xF9DB), MB2(0xF9DC), + MB2(0xF9DD), MB2(0xF9DE), MB2(0xF9DF), MB2(0xF9E0), + MB2(0xF9E1), MB2(0xF9E2), MB2(0xF9E3), MB2(0xF9E4), + MB2(0xF9E5), MB2(0xF9E6), MB2(0xF9E7), MB2(0xF9E8), + MB2(0xF9E9), MB2(0xF9EA), MB2(0xF9EB), MB2(0xF9EC), /* E1C0 */ + MB2(0xF9ED), MB2(0xF9EE), MB2(0xF9EF), MB2(0xF9F0), + MB2(0xF9F1), MB2(0xF9F2), MB2(0xF9F3), MB2(0xF9F4), + MB2(0xF9F5), MB2(0xF9F6), MB2(0xF9F7), MB2(0xF9F8), + MB2(0xF9F9), MB2(0xF9FA), MB2(0xF9FB), MB2(0xF9FC), + MB2(0xF9FD), MB2(0xF9FE), MB2(0xFAA1), MB2(0xFAA2), + MB2(0xFAA3), MB2(0xFAA4), MB2(0xFAA5), MB2(0xFAA6), + MB2(0xFAA7), MB2(0xFAA8), MB2(0xFAA9), MB2(0xFAAA), + MB2(0xFAAB), MB2(0xFAAC), MB2(0xFAAD), MB2(0xFAAE), /* E1E0 */ + MB2(0xFAAF), MB2(0xFAB0), MB2(0xFAB1), MB2(0xFAB2), + MB2(0xFAB3), MB2(0xFAB4), MB2(0xFAB5), MB2(0xFAB6), + MB2(0xFAB7), MB2(0xFAB8), MB2(0xFAB9), MB2(0xFABA), + MB2(0xFABB), MB2(0xFABC), MB2(0xFABD), MB2(0xFABE), + MB2(0xFABF), MB2(0xFAC0), MB2(0xFAC1), MB2(0xFAC2), + MB2(0xFAC3), MB2(0xFAC4), MB2(0xFAC5), MB2(0xFAC6), + MB2(0xFAC7), MB2(0xFAC8), MB2(0xFAC9), MB2(0xFACA), + MB2(0xFACB), MB2(0xFACC), MB2(0xFACD), MB2(0xFACE), /* E200 */ + MB2(0xFACF), MB2(0xFAD0), MB2(0xFAD1), MB2(0xFAD2), + MB2(0xFAD3), MB2(0xFAD4), MB2(0xFAD5), MB2(0xFAD6), + MB2(0xFAD7), MB2(0xFAD8), MB2(0xFAD9), MB2(0xFADA), + MB2(0xFADB), MB2(0xFADC), MB2(0xFADD), MB2(0xFADE), + MB2(0xFADF), MB2(0xFAE0), MB2(0xFAE1), MB2(0xFAE2), + MB2(0xFAE3), MB2(0xFAE4), MB2(0xFAE5), MB2(0xFAE6), + MB2(0xFAE7), MB2(0xFAE8), MB2(0xFAE9), MB2(0xFAEA), + MB2(0xFAEB), MB2(0xFAEC), MB2(0xFAED), MB2(0xFAEE), /* E220 */ + MB2(0xFAEF), MB2(0xFAF0), MB2(0xFAF1), MB2(0xFAF2), + MB2(0xFAF3), MB2(0xFAF4), MB2(0xFAF5), MB2(0xFAF6), + MB2(0xFAF7), MB2(0xFAF8), MB2(0xFAF9), MB2(0xFAFA), + MB2(0xFAFB), MB2(0xFAFC), MB2(0xFAFD), MB2(0xFAFE), + MB2(0xFBA1), MB2(0xFBA2), MB2(0xFBA3), MB2(0xFBA4), + MB2(0xFBA5), MB2(0xFBA6), MB2(0xFBA7), MB2(0xFBA8), + MB2(0xFBA9), MB2(0xFBAA), MB2(0xFBAB), MB2(0xFBAC), + MB2(0xFBAD), MB2(0xFBAE), MB2(0xFBAF), MB2(0xFBB0), /* E240 */ + MB2(0xFBB1), MB2(0xFBB2), MB2(0xFBB3), MB2(0xFBB4), + MB2(0xFBB5), MB2(0xFBB6), MB2(0xFBB7), MB2(0xFBB8), + MB2(0xFBB9), MB2(0xFBBA), MB2(0xFBBB), MB2(0xFBBC), + MB2(0xFBBD), MB2(0xFBBE), MB2(0xFBBF), MB2(0xFBC0), + MB2(0xFBC1), MB2(0xFBC2), MB2(0xFBC3), MB2(0xFBC4), + MB2(0xFBC5), MB2(0xFBC6), MB2(0xFBC7), MB2(0xFBC8), + MB2(0xFBC9), MB2(0xFBCA), MB2(0xFBCB), MB2(0xFBCC), + MB2(0xFBCD), MB2(0xFBCE), MB2(0xFBCF), MB2(0xFBD0), /* E260 */ + MB2(0xFBD1), MB2(0xFBD2), MB2(0xFBD3), MB2(0xFBD4), + MB2(0xFBD5), MB2(0xFBD6), MB2(0xFBD7), MB2(0xFBD8), + MB2(0xFBD9), MB2(0xFBDA), MB2(0xFBDB), MB2(0xFBDC), + MB2(0xFBDD), MB2(0xFBDE), MB2(0xFBDF), MB2(0xFBE0), + MB2(0xFBE1), MB2(0xFBE2), MB2(0xFBE3), MB2(0xFBE4), + MB2(0xFBE5), MB2(0xFBE6), MB2(0xFBE7), MB2(0xFBE8), + MB2(0xFBE9), MB2(0xFBEA), MB2(0xFBEB), MB2(0xFBEC), + MB2(0xFBED), MB2(0xFBEE), MB2(0xFBEF), MB2(0xFBF0), /* E280 */ + MB2(0xFBF1), MB2(0xFBF2), MB2(0xFBF3), MB2(0xFBF4), + MB2(0xFBF5), MB2(0xFBF6), MB2(0xFBF7), MB2(0xFBF8), + MB2(0xFBF9), MB2(0xFBFA), MB2(0xFBFB), MB2(0xFBFC), + MB2(0xFBFD), MB2(0xFBFE), MB2(0xFCA1), MB2(0xFCA2), + MB2(0xFCA3), MB2(0xFCA4), MB2(0xFCA5), MB2(0xFCA6), + MB2(0xFCA7), MB2(0xFCA8), MB2(0xFCA9), MB2(0xFCAA), + MB2(0xFCAB), MB2(0xFCAC), MB2(0xFCAD), MB2(0xFCAE), + MB2(0xFCAF), MB2(0xFCB0), MB2(0xFCB1), MB2(0xFCB2), /* E2A0 */ + MB2(0xFCB3), MB2(0xFCB4), MB2(0xFCB5), MB2(0xFCB6), + MB2(0xFCB7), MB2(0xFCB8), MB2(0xFCB9), MB2(0xFCBA), + MB2(0xFCBB), MB2(0xFCBC), MB2(0xFCBD), MB2(0xFCBE), + MB2(0xFCBF), MB2(0xFCC0), MB2(0xFCC1), MB2(0xFCC2), + MB2(0xFCC3), MB2(0xFCC4), MB2(0xFCC5), MB2(0xFCC6), + MB2(0xFCC7), MB2(0xFCC8), MB2(0xFCC9), MB2(0xFCCA), + MB2(0xFCCB), MB2(0xFCCC), MB2(0xFCCD), MB2(0xFCCE), + MB2(0xFCCF), MB2(0xFCD0), MB2(0xFCD1), MB2(0xFCD2), /* E2C0 */ + MB2(0xFCD3), MB2(0xFCD4), MB2(0xFCD5), MB2(0xFCD6), + MB2(0xFCD7), MB2(0xFCD8), MB2(0xFCD9), MB2(0xFCDA), + MB2(0xFCDB), MB2(0xFCDC), MB2(0xFCDD), MB2(0xFCDE), + MB2(0xFCDF), MB2(0xFCE0), MB2(0xFCE1), MB2(0xFCE2), + MB2(0xFCE3), MB2(0xFCE4), MB2(0xFCE5), MB2(0xFCE6), + MB2(0xFCE7), MB2(0xFCE8), MB2(0xFCE9), MB2(0xFCEA), + MB2(0xFCEB), MB2(0xFCEC), MB2(0xFCED), MB2(0xFCEE), + MB2(0xFCEF), MB2(0xFCF0), MB2(0xFCF1), MB2(0xFCF2), /* E2E0 */ + MB2(0xFCF3), MB2(0xFCF4), MB2(0xFCF5), MB2(0xFCF6), + MB2(0xFCF7), MB2(0xFCF8), MB2(0xFCF9), MB2(0xFCFA), + MB2(0xFCFB), MB2(0xFCFC), MB2(0xFCFD), MB2(0xFCFE), + MB2(0xFDA1), MB2(0xFDA2), MB2(0xFDA3), MB2(0xFDA4), + MB2(0xFDA5), MB2(0xFDA6), MB2(0xFDA7), MB2(0xFDA8), + MB2(0xFDA9), MB2(0xFDAA), MB2(0xFDAB), MB2(0xFDAC), + MB2(0xFDAD), MB2(0xFDAE), MB2(0xFDAF), MB2(0xFDB0), + MB2(0xFDB1), MB2(0xFDB2), MB2(0xFDB3), MB2(0xFDB4), /* E300 */ + MB2(0xFDB5), MB2(0xFDB6), MB2(0xFDB7), MB2(0xFDB8), + MB2(0xFDB9), MB2(0xFDBA), MB2(0xFDBB), MB2(0xFDBC), + MB2(0xFDBD), MB2(0xFDBE), MB2(0xFDBF), MB2(0xFDC0), + MB2(0xFDC1), MB2(0xFDC2), MB2(0xFDC3), MB2(0xFDC4), + MB2(0xFDC5), MB2(0xFDC6), MB2(0xFDC7), MB2(0xFDC8), + MB2(0xFDC9), MB2(0xFDCA), MB2(0xFDCB), MB2(0xFDCC), + MB2(0xFDCD), MB2(0xFDCE), MB2(0xFDCF), MB2(0xFDD0), + MB2(0xFDD1), MB2(0xFDD2), MB2(0xFDD3), MB2(0xFDD4), /* E320 */ + MB2(0xFDD5), MB2(0xFDD6), MB2(0xFDD7), MB2(0xFDD8), + MB2(0xFDD9), MB2(0xFDDA), MB2(0xFDDB), MB2(0xFDDC), + MB2(0xFDDD), MB2(0xFDDE), MB2(0xFDDF), MB2(0xFDE0), + MB2(0xFDE1), MB2(0xFDE2), MB2(0xFDE3), MB2(0xFDE4), + MB2(0xFDE5), MB2(0xFDE6), MB2(0xFDE7), MB2(0xFDE8), + MB2(0xFDE9), MB2(0xFDEA), MB2(0xFDEB), MB2(0xFDEC), + MB2(0xFDED), MB2(0xFDEE), MB2(0xFDEF), MB2(0xFDF0), + MB2(0xFDF1), MB2(0xFDF2), MB2(0xFDF3), MB2(0xFDF4), /* E340 */ + MB2(0xFDF5), MB2(0xFDF6), MB2(0xFDF7), MB2(0xFDF8), + MB2(0xFDF9), MB2(0xFDFA), MB2(0xFDFB), MB2(0xFDFC), + MB2(0xFDFD), MB2(0xFDFE), MB2(0xFEA1), MB2(0xFEA2), + MB2(0xFEA3), MB2(0xFEA4), MB2(0xFEA5), MB2(0xFEA6), + MB2(0xFEA7), MB2(0xFEA8), MB2(0xFEA9), MB2(0xFEAA), + MB2(0xFEAB), MB2(0xFEAC), MB2(0xFEAD), MB2(0xFEAE), + MB2(0xFEAF), MB2(0xFEB0), MB2(0xFEB1), MB2(0xFEB2), + MB2(0xFEB3), MB2(0xFEB4), MB2(0xFEB5), MB2(0xFEB6), /* E360 */ + MB2(0xFEB7), MB2(0xFEB8), MB2(0xFEB9), MB2(0xFEBA), + MB2(0xFEBB), MB2(0xFEBC), MB2(0xFEBD), MB2(0xFEBE), + MB2(0xFEBF), MB2(0xFEC0), MB2(0xFEC1), MB2(0xFEC2), + MB2(0xFEC3), MB2(0xFEC4), MB2(0xFEC5), MB2(0xFEC6), + MB2(0xFEC7), MB2(0xFEC8), MB2(0xFEC9), MB2(0xFECA), + MB2(0xFECB), MB2(0xFECC), MB2(0xFECD), MB2(0xFECE), + MB2(0xFECF), MB2(0xFED0), MB2(0xFED1), MB2(0xFED2), + MB2(0xFED3), MB2(0xFED4), MB2(0xFED5), MB2(0xFED6), /* E380 */ + MB2(0xFED7), MB2(0xFED8), MB2(0xFED9), MB2(0xFEDA), + MB2(0xFEDB), MB2(0xFEDC), MB2(0xFEDD), MB2(0xFEDE), + MB2(0xFEDF), MB2(0xFEE0), MB2(0xFEE1), MB2(0xFEE2), + MB2(0xFEE3), MB2(0xFEE4), MB2(0xFEE5), MB2(0xFEE6), + MB2(0xFEE7), MB2(0xFEE8), MB2(0xFEE9), MB2(0xFEEA), + MB2(0xFEEB), MB2(0xFEEC), MB2(0xFEED), MB2(0xFEEE), + MB2(0xFEEF), MB2(0xFEF0), MB2(0xFEF1), MB2(0xFEF2), + MB2(0xFEF3), MB2(0xFEF4), MB2(0xFEF5), MB2(0xFEF6), /* E3A0 */ + MB2(0xFEF7), MB2(0xFEF8), MB2(0xFEF9), MB2(0xFEFA), + MB2(0xFEFB), MB2(0xFEFC), MB2(0xFEFD), MB2(0xFEFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA1AA), 0x0000, MB2(0xA1F4), /* FF00 */ + MB2(0xA1F0), MB2(0xA1F3), MB2(0xA1F5), 0x0000, + MB2(0xA1CA), MB2(0xA1CB), MB2(0xA1F6), MB2(0xA1DC), + MB2(0xA1A4), 0x0000, MB2(0xA1A5), MB2(0xA1BF), + MB2(0xA3B0), MB2(0xA3B1), MB2(0xA3B2), MB2(0xA3B3), + MB2(0xA3B4), MB2(0xA3B5), MB2(0xA3B6), MB2(0xA3B7), + MB2(0xA3B8), MB2(0xA3B9), MB2(0xA1A7), MB2(0xA1A8), + MB2(0xA1E3), MB2(0xA1E1), MB2(0xA1E4), MB2(0xA1A9), + MB2(0xA1F7), MB2(0xA3C1), MB2(0xA3C2), MB2(0xA3C3), /* FF20 */ + MB2(0xA3C4), MB2(0xA3C5), MB2(0xA3C6), MB2(0xA3C7), + MB2(0xA3C8), MB2(0xA3C9), MB2(0xA3CA), MB2(0xA3CB), + MB2(0xA3CC), MB2(0xA3CD), MB2(0xA3CE), MB2(0xA3CF), + MB2(0xA3D0), MB2(0xA3D1), MB2(0xA3D2), MB2(0xA3D3), + MB2(0xA3D4), MB2(0xA3D5), MB2(0xA3D6), MB2(0xA3D7), + MB2(0xA3D8), MB2(0xA3D9), MB2(0xA3DA), MB2(0xA1CE), + 0x0000, MB2(0xA1CF), MB2(0xA1B0), MB2(0xA1B2), + MB2(0xA1AE), MB2(0xA3E1), MB2(0xA3E2), MB2(0xA3E3), /* FF40 */ + MB2(0xA3E4), MB2(0xA3E5), MB2(0xA3E6), MB2(0xA3E7), + MB2(0xA3E8), MB2(0xA3E9), MB2(0xA3EA), MB2(0xA3EB), + MB2(0xA3EC), MB2(0xA3ED), MB2(0xA3EE), MB2(0xA3EF), + MB2(0xA3F0), MB2(0xA3F1), MB2(0xA3F2), MB2(0xA3F3), + MB2(0xA3F4), MB2(0xA3F5), MB2(0xA3F6), MB2(0xA3F7), + MB2(0xA3F8), MB2(0xA3F9), MB2(0xA3FA), MB2(0xA1D0), + MB2(0xA1C3), MB2(0xA1D1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA1B1), /* FFE0 */ + 0x0000, MB2(0xA1EF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 jisx0212_eucjp_to_unicode[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 81E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 82E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 90E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 92E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 93E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 95E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x02D8, + 0x02C7, 0x00B8, 0x02D9, 0x02DD, + 0x00AF, 0x02DB, 0x02DA, 0x007E, + 0x0384, 0x0385, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x00A1, 0x00A6, /* A2C0 */ + 0x00BF, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00BA, + 0x00AA, 0x00A9, 0x00AE, 0x2122, + 0x00A4, 0x2116, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0386, 0x0388, 0x0389, /* A6E0 */ + 0x038A, 0x03AA, 0x0000, 0x038C, + 0x0000, 0x038E, 0x03AB, 0x0000, + 0x038F, 0x0000, 0x0000, 0x0000, + 0x0000, 0x03AC, 0x03AD, 0x03AE, + 0x03AF, 0x03CA, 0x0390, 0x03CC, + 0x03C2, 0x03CD, 0x03CB, 0x03B0, + 0x03CE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0402, 0x0403, /* A7C0 */ + 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x040A, 0x040B, + 0x040C, 0x040E, 0x040F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0452, 0x0453, + 0x0454, 0x0455, 0x0456, 0x0457, + 0x0458, 0x0459, 0x045A, 0x045B, + 0x045C, 0x045E, 0x045F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00C6, 0x0110, 0x0000, /* A9A0 */ + 0x0126, 0x0000, 0x0132, 0x0000, + 0x0141, 0x013F, 0x0000, 0x014A, + 0x00D8, 0x0152, 0x0000, 0x0166, + 0x00DE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00E6, 0x0111, 0x00F0, /* A9C0 */ + 0x0127, 0x0131, 0x0133, 0x0138, + 0x0142, 0x0140, 0x0149, 0x014B, + 0x00F8, 0x0153, 0x00DF, 0x0167, + 0x00FE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00C1, 0x00C0, 0x00C4, /* AAA0 */ + 0x00C2, 0x0102, 0x01CD, 0x0100, + 0x0104, 0x00C5, 0x00C3, 0x0106, + 0x0108, 0x010C, 0x00C7, 0x010A, + 0x010E, 0x00C9, 0x00C8, 0x00CB, + 0x00CA, 0x011A, 0x0116, 0x0112, + 0x0118, 0x0000, 0x011C, 0x011E, + 0x0122, 0x0120, 0x0124, 0x00CD, + 0x00CC, 0x00CF, 0x00CE, 0x01CF, /* AAC0 */ + 0x0130, 0x012A, 0x012E, 0x0128, + 0x0134, 0x0136, 0x0139, 0x013D, + 0x013B, 0x0143, 0x0147, 0x0145, + 0x00D1, 0x00D3, 0x00D2, 0x00D6, + 0x00D4, 0x01D1, 0x0150, 0x014C, + 0x00D5, 0x0154, 0x0158, 0x0156, + 0x015A, 0x015C, 0x0160, 0x015E, + 0x0164, 0x0162, 0x00DA, 0x00D9, /* AAE0 */ + 0x00DC, 0x00DB, 0x016C, 0x01D3, + 0x0170, 0x016A, 0x0172, 0x016E, + 0x0168, 0x01D7, 0x01DB, 0x01D9, + 0x01D5, 0x0174, 0x00DD, 0x0178, + 0x0176, 0x0179, 0x017D, 0x017B, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x00E1, 0x00E0, 0x00E4, /* ABA0 */ + 0x00E2, 0x0103, 0x01CE, 0x0101, + 0x0105, 0x00E5, 0x00E3, 0x0107, + 0x0109, 0x010D, 0x00E7, 0x010B, + 0x010F, 0x00E9, 0x00E8, 0x00EB, + 0x00EA, 0x011B, 0x0117, 0x0113, + 0x0119, 0x01F5, 0x011D, 0x011F, + 0x0000, 0x0121, 0x0125, 0x00ED, + 0x00EC, 0x00EF, 0x00EE, 0x01D0, /* ABC0 */ + 0x0000, 0x012B, 0x012F, 0x0129, + 0x0135, 0x0137, 0x013A, 0x013E, + 0x013C, 0x0144, 0x0148, 0x0146, + 0x00F1, 0x00F3, 0x00F2, 0x00F6, + 0x00F4, 0x01D2, 0x0151, 0x014D, + 0x00F5, 0x0155, 0x0159, 0x0157, + 0x015B, 0x015D, 0x0161, 0x015F, + 0x0165, 0x0163, 0x00FA, 0x00F9, /* ABE0 */ + 0x00FC, 0x00FB, 0x016D, 0x01D4, + 0x0171, 0x016B, 0x0173, 0x016F, + 0x0169, 0x01D8, 0x01DC, 0x01DA, + 0x01D6, 0x0175, 0x00FD, 0x00FF, + 0x0177, 0x017A, 0x017E, 0x017C, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4E02, 0x4E04, 0x4E05, /* B0A0 */ + 0x4E0C, 0x4E12, 0x4E1F, 0x4E23, + 0x4E24, 0x4E28, 0x4E2B, 0x4E2E, + 0x4E2F, 0x4E30, 0x4E35, 0x4E40, + 0x4E41, 0x4E44, 0x4E47, 0x4E51, + 0x4E5A, 0x4E5C, 0x4E63, 0x4E68, + 0x4E69, 0x4E74, 0x4E75, 0x4E79, + 0x4E7F, 0x4E8D, 0x4E96, 0x4E97, + 0x4E9D, 0x4EAF, 0x4EB9, 0x4EC3, /* B0C0 */ + 0x4ED0, 0x4EDA, 0x4EDB, 0x4EE0, + 0x4EE1, 0x4EE2, 0x4EE8, 0x4EEF, + 0x4EF1, 0x4EF3, 0x4EF5, 0x4EFD, + 0x4EFE, 0x4EFF, 0x4F00, 0x4F02, + 0x4F03, 0x4F08, 0x4F0B, 0x4F0C, + 0x4F12, 0x4F15, 0x4F16, 0x4F17, + 0x4F19, 0x4F2E, 0x4F31, 0x4F60, + 0x4F33, 0x4F35, 0x4F37, 0x4F39, /* B0E0 */ + 0x4F3B, 0x4F3E, 0x4F40, 0x4F42, + 0x4F48, 0x4F49, 0x4F4B, 0x4F4C, + 0x4F52, 0x4F54, 0x4F56, 0x4F58, + 0x4F5F, 0x4F63, 0x4F6A, 0x4F6C, + 0x4F6E, 0x4F71, 0x4F77, 0x4F78, + 0x4F79, 0x4F7A, 0x4F7D, 0x4F7E, + 0x4F81, 0x4F82, 0x4F84, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4F85, 0x4F89, 0x4F8A, /* B1A0 */ + 0x4F8C, 0x4F8E, 0x4F90, 0x4F92, + 0x4F93, 0x4F94, 0x4F97, 0x4F99, + 0x4F9A, 0x4F9E, 0x4F9F, 0x4FB2, + 0x4FB7, 0x4FB9, 0x4FBB, 0x4FBC, + 0x4FBD, 0x4FBE, 0x4FC0, 0x4FC1, + 0x4FC5, 0x4FC6, 0x4FC8, 0x4FC9, + 0x4FCB, 0x4FCC, 0x4FCD, 0x4FCF, + 0x4FD2, 0x4FDC, 0x4FE0, 0x4FE2, /* B1C0 */ + 0x4FF0, 0x4FF2, 0x4FFC, 0x4FFD, + 0x4FFF, 0x5000, 0x5001, 0x5004, + 0x5007, 0x500A, 0x500C, 0x500E, + 0x5010, 0x5013, 0x5017, 0x5018, + 0x501B, 0x501C, 0x501D, 0x501E, + 0x5022, 0x5027, 0x502E, 0x5030, + 0x5032, 0x5033, 0x5035, 0x5040, + 0x5041, 0x5042, 0x5045, 0x5046, /* B1E0 */ + 0x504A, 0x504C, 0x504E, 0x5051, + 0x5052, 0x5053, 0x5057, 0x5059, + 0x505F, 0x5060, 0x5062, 0x5063, + 0x5066, 0x5067, 0x506A, 0x506D, + 0x5070, 0x5071, 0x503B, 0x5081, + 0x5083, 0x5084, 0x5086, 0x508A, + 0x508E, 0x508F, 0x5090, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5092, 0x5093, 0x5094, /* B2A0 */ + 0x5096, 0x509B, 0x509C, 0x509E, + 0x509F, 0x50A0, 0x50A1, 0x50A2, + 0x50AA, 0x50AF, 0x50B0, 0x50B9, + 0x50BA, 0x50BD, 0x50C0, 0x50C3, + 0x50C4, 0x50C7, 0x50CC, 0x50CE, + 0x50D0, 0x50D3, 0x50D4, 0x50D8, + 0x50DC, 0x50DD, 0x50DF, 0x50E2, + 0x50E4, 0x50E6, 0x50E8, 0x50E9, /* B2C0 */ + 0x50EF, 0x50F1, 0x50F6, 0x50FA, + 0x50FE, 0x5103, 0x5106, 0x5107, + 0x5108, 0x510B, 0x510C, 0x510D, + 0x510E, 0x50F2, 0x5110, 0x5117, + 0x5119, 0x511B, 0x511C, 0x511D, + 0x511E, 0x5123, 0x5127, 0x5128, + 0x512C, 0x512D, 0x512F, 0x5131, + 0x5133, 0x5134, 0x5135, 0x5138, /* B2E0 */ + 0x5139, 0x5142, 0x514A, 0x514F, + 0x5153, 0x5155, 0x5157, 0x5158, + 0x515F, 0x5164, 0x5166, 0x517E, + 0x5183, 0x5184, 0x518B, 0x518E, + 0x5198, 0x519D, 0x51A1, 0x51A3, + 0x51AD, 0x51B8, 0x51BA, 0x51BC, + 0x51BE, 0x51BF, 0x51C2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x51C8, 0x51CF, 0x51D1, /* B3A0 */ + 0x51D2, 0x51D3, 0x51D5, 0x51D8, + 0x51DE, 0x51E2, 0x51E5, 0x51EE, + 0x51F2, 0x51F3, 0x51F4, 0x51F7, + 0x5201, 0x5202, 0x5205, 0x5212, + 0x5213, 0x5215, 0x5216, 0x5218, + 0x5222, 0x5228, 0x5231, 0x5232, + 0x5235, 0x523C, 0x5245, 0x5249, + 0x5255, 0x5257, 0x5258, 0x525A, /* B3C0 */ + 0x525C, 0x525F, 0x5260, 0x5261, + 0x5266, 0x526E, 0x5277, 0x5278, + 0x5279, 0x5280, 0x5282, 0x5285, + 0x528A, 0x528C, 0x5293, 0x5295, + 0x5296, 0x5297, 0x5298, 0x529A, + 0x529C, 0x52A4, 0x52A5, 0x52A6, + 0x52A7, 0x52AF, 0x52B0, 0x52B6, + 0x52B7, 0x52B8, 0x52BA, 0x52BB, /* B3E0 */ + 0x52BD, 0x52C0, 0x52C4, 0x52C6, + 0x52C8, 0x52CC, 0x52CF, 0x52D1, + 0x52D4, 0x52D6, 0x52DB, 0x52DC, + 0x52E1, 0x52E5, 0x52E8, 0x52E9, + 0x52EA, 0x52EC, 0x52F0, 0x52F1, + 0x52F4, 0x52F6, 0x52F7, 0x5300, + 0x5303, 0x530A, 0x530B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x530C, 0x5311, 0x5313, /* B4A0 */ + 0x5318, 0x531B, 0x531C, 0x531E, + 0x531F, 0x5325, 0x5327, 0x5328, + 0x5329, 0x532B, 0x532C, 0x532D, + 0x5330, 0x5332, 0x5335, 0x533C, + 0x533D, 0x533E, 0x5342, 0x534C, + 0x534B, 0x5359, 0x535B, 0x5361, + 0x5363, 0x5365, 0x536C, 0x536D, + 0x5372, 0x5379, 0x537E, 0x5383, /* B4C0 */ + 0x5387, 0x5388, 0x538E, 0x5393, + 0x5394, 0x5399, 0x539D, 0x53A1, + 0x53A4, 0x53AA, 0x53AB, 0x53AF, + 0x53B2, 0x53B4, 0x53B5, 0x53B7, + 0x53B8, 0x53BA, 0x53BD, 0x53C0, + 0x53C5, 0x53CF, 0x53D2, 0x53D3, + 0x53D5, 0x53DA, 0x53DD, 0x53DE, + 0x53E0, 0x53E6, 0x53E7, 0x53F5, /* B4E0 */ + 0x5402, 0x5413, 0x541A, 0x5421, + 0x5427, 0x5428, 0x542A, 0x542F, + 0x5431, 0x5434, 0x5435, 0x5443, + 0x5444, 0x5447, 0x544D, 0x544F, + 0x545E, 0x5462, 0x5464, 0x5466, + 0x5467, 0x5469, 0x546B, 0x546D, + 0x546E, 0x5474, 0x547F, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5481, 0x5483, 0x5485, /* B5A0 */ + 0x5488, 0x5489, 0x548D, 0x5491, + 0x5495, 0x5496, 0x549C, 0x549F, + 0x54A1, 0x54A6, 0x54A7, 0x54A9, + 0x54AA, 0x54AD, 0x54AE, 0x54B1, + 0x54B7, 0x54B9, 0x54BA, 0x54BB, + 0x54BF, 0x54C6, 0x54CA, 0x54CD, + 0x54CE, 0x54E0, 0x54EA, 0x54EC, + 0x54EF, 0x54F6, 0x54FC, 0x54FE, /* B5C0 */ + 0x54FF, 0x5500, 0x5501, 0x5505, + 0x5508, 0x5509, 0x550C, 0x550D, + 0x550E, 0x5515, 0x552A, 0x552B, + 0x5532, 0x5535, 0x5536, 0x553B, + 0x553C, 0x553D, 0x5541, 0x5547, + 0x5549, 0x554A, 0x554D, 0x5550, + 0x5551, 0x5558, 0x555A, 0x555B, + 0x555E, 0x5560, 0x5561, 0x5564, /* B5E0 */ + 0x5566, 0x557F, 0x5581, 0x5582, + 0x5586, 0x5588, 0x558E, 0x558F, + 0x5591, 0x5592, 0x5593, 0x5594, + 0x5597, 0x55A3, 0x55A4, 0x55AD, + 0x55B2, 0x55BF, 0x55C1, 0x55C3, + 0x55C6, 0x55C9, 0x55CB, 0x55CC, + 0x55CE, 0x55D1, 0x55D2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x55D3, 0x55D7, 0x55D8, /* B6A0 */ + 0x55DB, 0x55DE, 0x55E2, 0x55E9, + 0x55F6, 0x55FF, 0x5605, 0x5608, + 0x560A, 0x560D, 0x560E, 0x560F, + 0x5610, 0x5611, 0x5612, 0x5619, + 0x562C, 0x5630, 0x5633, 0x5635, + 0x5637, 0x5639, 0x563B, 0x563C, + 0x563D, 0x563F, 0x5640, 0x5641, + 0x5643, 0x5644, 0x5646, 0x5649, /* B6C0 */ + 0x564B, 0x564D, 0x564F, 0x5654, + 0x565E, 0x5660, 0x5661, 0x5662, + 0x5663, 0x5666, 0x5669, 0x566D, + 0x566F, 0x5671, 0x5672, 0x5675, + 0x5684, 0x5685, 0x5688, 0x568B, + 0x568C, 0x5695, 0x5699, 0x569A, + 0x569D, 0x569E, 0x569F, 0x56A6, + 0x56A7, 0x56A8, 0x56A9, 0x56AB, /* B6E0 */ + 0x56AC, 0x56AD, 0x56B1, 0x56B3, + 0x56B7, 0x56BE, 0x56C5, 0x56C9, + 0x56CA, 0x56CB, 0x56CF, 0x56D0, + 0x56CC, 0x56CD, 0x56D9, 0x56DC, + 0x56DD, 0x56DF, 0x56E1, 0x56E4, + 0x56E5, 0x56E6, 0x56E7, 0x56E8, + 0x56F1, 0x56EB, 0x56ED, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x56F6, 0x56F7, 0x5701, /* B7A0 */ + 0x5702, 0x5707, 0x570A, 0x570C, + 0x5711, 0x5715, 0x571A, 0x571B, + 0x571D, 0x5720, 0x5722, 0x5723, + 0x5724, 0x5725, 0x5729, 0x572A, + 0x572C, 0x572E, 0x572F, 0x5733, + 0x5734, 0x573D, 0x573E, 0x573F, + 0x5745, 0x5746, 0x574C, 0x574D, + 0x5752, 0x5762, 0x5765, 0x5767, /* B7C0 */ + 0x5768, 0x576B, 0x576D, 0x576E, + 0x576F, 0x5770, 0x5771, 0x5773, + 0x5774, 0x5775, 0x5777, 0x5779, + 0x577A, 0x577B, 0x577C, 0x577E, + 0x5781, 0x5783, 0x578C, 0x5794, + 0x5797, 0x5799, 0x579A, 0x579C, + 0x579D, 0x579E, 0x579F, 0x57A1, + 0x5795, 0x57A7, 0x57A8, 0x57A9, /* B7E0 */ + 0x57AC, 0x57B8, 0x57BD, 0x57C7, + 0x57C8, 0x57CC, 0x57CF, 0x57D5, + 0x57DD, 0x57DE, 0x57E4, 0x57E6, + 0x57E7, 0x57E9, 0x57ED, 0x57F0, + 0x57F5, 0x57F6, 0x57F8, 0x57FD, + 0x57FE, 0x57FF, 0x5803, 0x5804, + 0x5808, 0x5809, 0x57E1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x580C, 0x580D, 0x581B, /* B8A0 */ + 0x581E, 0x581F, 0x5820, 0x5826, + 0x5827, 0x582D, 0x5832, 0x5839, + 0x583F, 0x5849, 0x584C, 0x584D, + 0x584F, 0x5850, 0x5855, 0x585F, + 0x5861, 0x5864, 0x5867, 0x5868, + 0x5878, 0x587C, 0x587F, 0x5880, + 0x5881, 0x5887, 0x5888, 0x5889, + 0x588A, 0x588C, 0x588D, 0x588F, /* B8C0 */ + 0x5890, 0x5894, 0x5896, 0x589D, + 0x58A0, 0x58A1, 0x58A2, 0x58A6, + 0x58A9, 0x58B1, 0x58B2, 0x58C4, + 0x58BC, 0x58C2, 0x58C8, 0x58CD, + 0x58CE, 0x58D0, 0x58D2, 0x58D4, + 0x58D6, 0x58DA, 0x58DD, 0x58E1, + 0x58E2, 0x58E9, 0x58F3, 0x5905, + 0x5906, 0x590B, 0x590C, 0x5912, /* B8E0 */ + 0x5913, 0x5914, 0x8641, 0x591D, + 0x5921, 0x5923, 0x5924, 0x5928, + 0x592F, 0x5930, 0x5933, 0x5935, + 0x5936, 0x593F, 0x5943, 0x5946, + 0x5952, 0x5953, 0x5959, 0x595B, + 0x595D, 0x595E, 0x595F, 0x5961, + 0x5963, 0x596B, 0x596D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x596F, 0x5972, 0x5975, /* B9A0 */ + 0x5976, 0x5979, 0x597B, 0x597C, + 0x598B, 0x598C, 0x598E, 0x5992, + 0x5995, 0x5997, 0x599F, 0x59A4, + 0x59A7, 0x59AD, 0x59AE, 0x59AF, + 0x59B0, 0x59B3, 0x59B7, 0x59BA, + 0x59BC, 0x59C1, 0x59C3, 0x59C4, + 0x59C8, 0x59CA, 0x59CD, 0x59D2, + 0x59DD, 0x59DE, 0x59DF, 0x59E3, /* B9C0 */ + 0x59E4, 0x59E7, 0x59EE, 0x59EF, + 0x59F1, 0x59F2, 0x59F4, 0x59F7, + 0x5A00, 0x5A04, 0x5A0C, 0x5A0D, + 0x5A0E, 0x5A12, 0x5A13, 0x5A1E, + 0x5A23, 0x5A24, 0x5A27, 0x5A28, + 0x5A2A, 0x5A2D, 0x5A30, 0x5A44, + 0x5A45, 0x5A47, 0x5A48, 0x5A4C, + 0x5A50, 0x5A55, 0x5A5E, 0x5A63, /* B9E0 */ + 0x5A65, 0x5A67, 0x5A6D, 0x5A77, + 0x5A7A, 0x5A7B, 0x5A7E, 0x5A8B, + 0x5A90, 0x5A93, 0x5A96, 0x5A99, + 0x5A9C, 0x5A9E, 0x5A9F, 0x5AA0, + 0x5AA2, 0x5AA7, 0x5AAC, 0x5AB1, + 0x5AB2, 0x5AB3, 0x5AB5, 0x5AB8, + 0x5ABA, 0x5ABB, 0x5ABF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5AC4, 0x5AC6, 0x5AC8, /* BAA0 */ + 0x5ACF, 0x5ADA, 0x5ADC, 0x5AE0, + 0x5AE5, 0x5AEA, 0x5AEE, 0x5AF5, + 0x5AF6, 0x5AFD, 0x5B00, 0x5B01, + 0x5B08, 0x5B17, 0x5B34, 0x5B19, + 0x5B1B, 0x5B1D, 0x5B21, 0x5B25, + 0x5B2D, 0x5B38, 0x5B41, 0x5B4B, + 0x5B4C, 0x5B52, 0x5B56, 0x5B5E, + 0x5B68, 0x5B6E, 0x5B6F, 0x5B7C, /* BAC0 */ + 0x5B7D, 0x5B7E, 0x5B7F, 0x5B81, + 0x5B84, 0x5B86, 0x5B8A, 0x5B8E, + 0x5B90, 0x5B91, 0x5B93, 0x5B94, + 0x5B96, 0x5BA8, 0x5BA9, 0x5BAC, + 0x5BAD, 0x5BAF, 0x5BB1, 0x5BB2, + 0x5BB7, 0x5BBA, 0x5BBC, 0x5BC0, + 0x5BC1, 0x5BCD, 0x5BCF, 0x5BD6, + 0x5BD7, 0x5BD8, 0x5BD9, 0x5BDA, /* BAE0 */ + 0x5BE0, 0x5BEF, 0x5BF1, 0x5BF4, + 0x5BFD, 0x5C0C, 0x5C17, 0x5C1E, + 0x5C1F, 0x5C23, 0x5C26, 0x5C29, + 0x5C2B, 0x5C2C, 0x5C2E, 0x5C30, + 0x5C32, 0x5C35, 0x5C36, 0x5C59, + 0x5C5A, 0x5C5C, 0x5C62, 0x5C63, + 0x5C67, 0x5C68, 0x5C69, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5C6D, 0x5C70, 0x5C74, /* BBA0 */ + 0x5C75, 0x5C7A, 0x5C7B, 0x5C7C, + 0x5C7D, 0x5C87, 0x5C88, 0x5C8A, + 0x5C8F, 0x5C92, 0x5C9D, 0x5C9F, + 0x5CA0, 0x5CA2, 0x5CA3, 0x5CA6, + 0x5CAA, 0x5CB2, 0x5CB4, 0x5CB5, + 0x5CBA, 0x5CC9, 0x5CCB, 0x5CD2, + 0x5CDD, 0x5CD7, 0x5CEE, 0x5CF1, + 0x5CF2, 0x5CF4, 0x5D01, 0x5D06, /* BBC0 */ + 0x5D0D, 0x5D12, 0x5D2B, 0x5D23, + 0x5D24, 0x5D26, 0x5D27, 0x5D31, + 0x5D34, 0x5D39, 0x5D3D, 0x5D3F, + 0x5D42, 0x5D43, 0x5D46, 0x5D48, + 0x5D55, 0x5D51, 0x5D59, 0x5D4A, + 0x5D5F, 0x5D60, 0x5D61, 0x5D62, + 0x5D64, 0x5D6A, 0x5D6D, 0x5D70, + 0x5D79, 0x5D7A, 0x5D7E, 0x5D7F, /* BBE0 */ + 0x5D81, 0x5D83, 0x5D88, 0x5D8A, + 0x5D92, 0x5D93, 0x5D94, 0x5D95, + 0x5D99, 0x5D9B, 0x5D9F, 0x5DA0, + 0x5DA7, 0x5DAB, 0x5DB0, 0x5DB4, + 0x5DB8, 0x5DB9, 0x5DC3, 0x5DC7, + 0x5DCB, 0x5DD0, 0x5DCE, 0x5DD8, + 0x5DD9, 0x5DE0, 0x5DE4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5DE9, 0x5DF8, 0x5DF9, /* BCA0 */ + 0x5E00, 0x5E07, 0x5E0D, 0x5E12, + 0x5E14, 0x5E15, 0x5E18, 0x5E1F, + 0x5E20, 0x5E2E, 0x5E28, 0x5E32, + 0x5E35, 0x5E3E, 0x5E4B, 0x5E50, + 0x5E49, 0x5E51, 0x5E56, 0x5E58, + 0x5E5B, 0x5E5C, 0x5E5E, 0x5E68, + 0x5E6A, 0x5E6B, 0x5E6C, 0x5E6D, + 0x5E6E, 0x5E70, 0x5E80, 0x5E8B, /* BCC0 */ + 0x5E8E, 0x5EA2, 0x5EA4, 0x5EA5, + 0x5EA8, 0x5EAA, 0x5EAC, 0x5EB1, + 0x5EB3, 0x5EBD, 0x5EBE, 0x5EBF, + 0x5EC6, 0x5ECC, 0x5ECB, 0x5ECE, + 0x5ED1, 0x5ED2, 0x5ED4, 0x5ED5, + 0x5EDC, 0x5EDE, 0x5EE5, 0x5EEB, + 0x5F02, 0x5F06, 0x5F07, 0x5F08, + 0x5F0E, 0x5F19, 0x5F1C, 0x5F1D, /* BCE0 */ + 0x5F21, 0x5F22, 0x5F23, 0x5F24, + 0x5F28, 0x5F2B, 0x5F2C, 0x5F2E, + 0x5F30, 0x5F34, 0x5F36, 0x5F3B, + 0x5F3D, 0x5F3F, 0x5F40, 0x5F44, + 0x5F45, 0x5F47, 0x5F4D, 0x5F50, + 0x5F54, 0x5F58, 0x5F5B, 0x5F60, + 0x5F63, 0x5F64, 0x5F67, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5F6F, 0x5F72, 0x5F74, /* BDA0 */ + 0x5F75, 0x5F78, 0x5F7A, 0x5F7D, + 0x5F7E, 0x5F89, 0x5F8D, 0x5F8F, + 0x5F96, 0x5F9C, 0x5F9D, 0x5FA2, + 0x5FA7, 0x5FAB, 0x5FA4, 0x5FAC, + 0x5FAF, 0x5FB0, 0x5FB1, 0x5FB8, + 0x5FC4, 0x5FC7, 0x5FC8, 0x5FC9, + 0x5FCB, 0x5FD0, 0x5FD1, 0x5FD2, + 0x5FD3, 0x5FD4, 0x5FDE, 0x5FE1, /* BDC0 */ + 0x5FE2, 0x5FE8, 0x5FE9, 0x5FEA, + 0x5FEC, 0x5FED, 0x5FEE, 0x5FEF, + 0x5FF2, 0x5FF3, 0x5FF6, 0x5FFA, + 0x5FFC, 0x6007, 0x600A, 0x600D, + 0x6013, 0x6014, 0x6017, 0x6018, + 0x601A, 0x601F, 0x6024, 0x602D, + 0x6033, 0x6035, 0x6040, 0x6047, + 0x6048, 0x6049, 0x604C, 0x6051, /* BDE0 */ + 0x6054, 0x6056, 0x6057, 0x605D, + 0x6061, 0x6067, 0x6071, 0x607E, + 0x607F, 0x6082, 0x6086, 0x6088, + 0x608A, 0x608E, 0x6091, 0x6093, + 0x6095, 0x6098, 0x609D, 0x609E, + 0x60A2, 0x60A4, 0x60A5, 0x60A8, + 0x60B0, 0x60B1, 0x60B7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x60BB, 0x60BE, 0x60C2, /* BEA0 */ + 0x60C4, 0x60C8, 0x60C9, 0x60CA, + 0x60CB, 0x60CE, 0x60CF, 0x60D4, + 0x60D5, 0x60D9, 0x60DB, 0x60DD, + 0x60DE, 0x60E2, 0x60E5, 0x60F2, + 0x60F5, 0x60F8, 0x60FC, 0x60FD, + 0x6102, 0x6107, 0x610A, 0x610C, + 0x6110, 0x6111, 0x6112, 0x6113, + 0x6114, 0x6116, 0x6117, 0x6119, /* BEC0 */ + 0x611C, 0x611E, 0x6122, 0x612A, + 0x612B, 0x6130, 0x6131, 0x6135, + 0x6136, 0x6137, 0x6139, 0x6141, + 0x6145, 0x6146, 0x6149, 0x615E, + 0x6160, 0x616C, 0x6172, 0x6178, + 0x617B, 0x617C, 0x617F, 0x6180, + 0x6181, 0x6183, 0x6184, 0x618B, + 0x618D, 0x6192, 0x6193, 0x6197, /* BEE0 */ + 0x6198, 0x619C, 0x619D, 0x619F, + 0x61A0, 0x61A5, 0x61A8, 0x61AA, + 0x61AD, 0x61B8, 0x61B9, 0x61BC, + 0x61C0, 0x61C1, 0x61C2, 0x61CE, + 0x61CF, 0x61D5, 0x61DC, 0x61DD, + 0x61DE, 0x61DF, 0x61E1, 0x61E2, + 0x61E7, 0x61E9, 0x61E5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x61EC, 0x61ED, 0x61EF, /* BFA0 */ + 0x6201, 0x6203, 0x6204, 0x6207, + 0x6213, 0x6215, 0x621C, 0x6220, + 0x6222, 0x6223, 0x6227, 0x6229, + 0x622B, 0x6239, 0x623D, 0x6242, + 0x6243, 0x6244, 0x6246, 0x624C, + 0x6250, 0x6251, 0x6252, 0x6254, + 0x6256, 0x625A, 0x625C, 0x6264, + 0x626D, 0x626F, 0x6273, 0x627A, /* BFC0 */ + 0x627D, 0x628D, 0x628E, 0x628F, + 0x6290, 0x62A6, 0x62A8, 0x62B3, + 0x62B6, 0x62B7, 0x62BA, 0x62BE, + 0x62BF, 0x62C4, 0x62CE, 0x62D5, + 0x62D6, 0x62DA, 0x62EA, 0x62F2, + 0x62F4, 0x62FC, 0x62FD, 0x6303, + 0x6304, 0x630A, 0x630B, 0x630D, + 0x6310, 0x6313, 0x6316, 0x6318, /* BFE0 */ + 0x6329, 0x632A, 0x632D, 0x6335, + 0x6336, 0x6339, 0x633C, 0x6341, + 0x6342, 0x6343, 0x6344, 0x6346, + 0x634A, 0x634B, 0x634E, 0x6352, + 0x6353, 0x6354, 0x6358, 0x635B, + 0x6365, 0x6366, 0x636C, 0x636D, + 0x6371, 0x6374, 0x6375, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6378, 0x637C, 0x637D, /* C0A0 */ + 0x637F, 0x6382, 0x6384, 0x6387, + 0x638A, 0x6390, 0x6394, 0x6395, + 0x6399, 0x639A, 0x639E, 0x63A4, + 0x63A6, 0x63AD, 0x63AE, 0x63AF, + 0x63BD, 0x63C1, 0x63C5, 0x63C8, + 0x63CE, 0x63D1, 0x63D3, 0x63D4, + 0x63D5, 0x63DC, 0x63E0, 0x63E5, + 0x63EA, 0x63EC, 0x63F2, 0x63F3, /* C0C0 */ + 0x63F5, 0x63F8, 0x63F9, 0x6409, + 0x640A, 0x6410, 0x6412, 0x6414, + 0x6418, 0x641E, 0x6420, 0x6422, + 0x6424, 0x6425, 0x6429, 0x642A, + 0x642F, 0x6430, 0x6435, 0x643D, + 0x643F, 0x644B, 0x644F, 0x6451, + 0x6452, 0x6453, 0x6454, 0x645A, + 0x645B, 0x645C, 0x645D, 0x645F, /* C0E0 */ + 0x6460, 0x6461, 0x6463, 0x646D, + 0x6473, 0x6474, 0x647B, 0x647D, + 0x6485, 0x6487, 0x648F, 0x6490, + 0x6491, 0x6498, 0x6499, 0x649B, + 0x649D, 0x649F, 0x64A1, 0x64A3, + 0x64A6, 0x64A8, 0x64AC, 0x64B3, + 0x64BD, 0x64BE, 0x64BF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x64C4, 0x64C9, 0x64CA, /* C1A0 */ + 0x64CB, 0x64CC, 0x64CE, 0x64D0, + 0x64D1, 0x64D5, 0x64D7, 0x64E4, + 0x64E5, 0x64E9, 0x64EA, 0x64ED, + 0x64F0, 0x64F5, 0x64F7, 0x64FB, + 0x64FF, 0x6501, 0x6504, 0x6508, + 0x6509, 0x650A, 0x650F, 0x6513, + 0x6514, 0x6516, 0x6519, 0x651B, + 0x651E, 0x651F, 0x6522, 0x6526, /* C1C0 */ + 0x6529, 0x652E, 0x6531, 0x653A, + 0x653C, 0x653D, 0x6543, 0x6547, + 0x6549, 0x6550, 0x6552, 0x6554, + 0x655F, 0x6560, 0x6567, 0x656B, + 0x657A, 0x657D, 0x6581, 0x6585, + 0x658A, 0x6592, 0x6595, 0x6598, + 0x659D, 0x65A0, 0x65A3, 0x65A6, + 0x65AE, 0x65B2, 0x65B3, 0x65B4, /* C1E0 */ + 0x65BF, 0x65C2, 0x65C8, 0x65C9, + 0x65CE, 0x65D0, 0x65D4, 0x65D6, + 0x65D8, 0x65DF, 0x65F0, 0x65F2, + 0x65F4, 0x65F5, 0x65F9, 0x65FE, + 0x65FF, 0x6600, 0x6604, 0x6608, + 0x6609, 0x660D, 0x6611, 0x6612, + 0x6615, 0x6616, 0x661D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x661E, 0x6621, 0x6622, /* C2A0 */ + 0x6623, 0x6624, 0x6626, 0x6629, + 0x662A, 0x662B, 0x662C, 0x662E, + 0x6630, 0x6631, 0x6633, 0x6639, + 0x6637, 0x6640, 0x6645, 0x6646, + 0x664A, 0x664C, 0x6651, 0x664E, + 0x6657, 0x6658, 0x6659, 0x665B, + 0x665C, 0x6660, 0x6661, 0x66FB, + 0x666A, 0x666B, 0x666C, 0x667E, /* C2C0 */ + 0x6673, 0x6675, 0x667F, 0x6677, + 0x6678, 0x6679, 0x667B, 0x6680, + 0x667C, 0x668B, 0x668C, 0x668D, + 0x6690, 0x6692, 0x6699, 0x669A, + 0x669B, 0x669C, 0x669F, 0x66A0, + 0x66A4, 0x66AD, 0x66B1, 0x66B2, + 0x66B5, 0x66BB, 0x66BF, 0x66C0, + 0x66C2, 0x66C3, 0x66C8, 0x66CC, /* C2E0 */ + 0x66CE, 0x66CF, 0x66D4, 0x66DB, + 0x66DF, 0x66E8, 0x66EB, 0x66EC, + 0x66EE, 0x66FA, 0x6705, 0x6707, + 0x670E, 0x6713, 0x6719, 0x671C, + 0x6720, 0x6722, 0x6733, 0x673E, + 0x6745, 0x6747, 0x6748, 0x674C, + 0x6754, 0x6755, 0x675D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6766, 0x676C, 0x676E, /* C3A0 */ + 0x6774, 0x6776, 0x677B, 0x6781, + 0x6784, 0x678E, 0x678F, 0x6791, + 0x6793, 0x6796, 0x6798, 0x6799, + 0x679B, 0x67B0, 0x67B1, 0x67B2, + 0x67B5, 0x67BB, 0x67BC, 0x67BD, + 0x67F9, 0x67C0, 0x67C2, 0x67C3, + 0x67C5, 0x67C8, 0x67C9, 0x67D2, + 0x67D7, 0x67D9, 0x67DC, 0x67E1, /* C3C0 */ + 0x67E6, 0x67F0, 0x67F2, 0x67F6, + 0x67F7, 0x6852, 0x6814, 0x6819, + 0x681D, 0x681F, 0x6828, 0x6827, + 0x682C, 0x682D, 0x682F, 0x6830, + 0x6831, 0x6833, 0x683B, 0x683F, + 0x6844, 0x6845, 0x684A, 0x684C, + 0x6855, 0x6857, 0x6858, 0x685B, + 0x686B, 0x686E, 0x686F, 0x6870, /* C3E0 */ + 0x6871, 0x6872, 0x6875, 0x6879, + 0x687A, 0x687B, 0x687C, 0x6882, + 0x6884, 0x6886, 0x6888, 0x6896, + 0x6898, 0x689A, 0x689C, 0x68A1, + 0x68A3, 0x68A5, 0x68A9, 0x68AA, + 0x68AE, 0x68B2, 0x68BB, 0x68C5, + 0x68C8, 0x68CC, 0x68CF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x68D0, 0x68D1, 0x68D3, /* C4A0 */ + 0x68D6, 0x68D9, 0x68DC, 0x68DD, + 0x68E5, 0x68E8, 0x68EA, 0x68EB, + 0x68EC, 0x68ED, 0x68F0, 0x68F1, + 0x68F5, 0x68F6, 0x68FB, 0x68FC, + 0x68FD, 0x6906, 0x6909, 0x690A, + 0x6910, 0x6911, 0x6913, 0x6916, + 0x6917, 0x6931, 0x6933, 0x6935, + 0x6938, 0x693B, 0x6942, 0x6945, /* C4C0 */ + 0x6949, 0x694E, 0x6957, 0x695B, + 0x6963, 0x6964, 0x6965, 0x6966, + 0x6968, 0x6969, 0x696C, 0x6970, + 0x6971, 0x6972, 0x697A, 0x697B, + 0x697F, 0x6980, 0x698D, 0x6992, + 0x6996, 0x6998, 0x69A1, 0x69A5, + 0x69A6, 0x69A8, 0x69AB, 0x69AD, + 0x69AF, 0x69B7, 0x69B8, 0x69BA, /* C4E0 */ + 0x69BC, 0x69C5, 0x69C8, 0x69D1, + 0x69D6, 0x69D7, 0x69E2, 0x69E5, + 0x69EE, 0x69EF, 0x69F1, 0x69F3, + 0x69F5, 0x69FE, 0x6A00, 0x6A01, + 0x6A03, 0x6A0F, 0x6A11, 0x6A15, + 0x6A1A, 0x6A1D, 0x6A20, 0x6A24, + 0x6A28, 0x6A30, 0x6A32, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6A34, 0x6A37, 0x6A3B, /* C5A0 */ + 0x6A3E, 0x6A3F, 0x6A45, 0x6A46, + 0x6A49, 0x6A4A, 0x6A4E, 0x6A50, + 0x6A51, 0x6A52, 0x6A55, 0x6A56, + 0x6A5B, 0x6A64, 0x6A67, 0x6A6A, + 0x6A71, 0x6A73, 0x6A7E, 0x6A81, + 0x6A83, 0x6A86, 0x6A87, 0x6A89, + 0x6A8B, 0x6A91, 0x6A9B, 0x6A9D, + 0x6A9E, 0x6A9F, 0x6AA5, 0x6AAB, /* C5C0 */ + 0x6AAF, 0x6AB0, 0x6AB1, 0x6AB4, + 0x6ABD, 0x6ABE, 0x6ABF, 0x6AC6, + 0x6AC9, 0x6AC8, 0x6ACC, 0x6AD0, + 0x6AD4, 0x6AD5, 0x6AD6, 0x6ADC, + 0x6ADD, 0x6AE4, 0x6AE7, 0x6AEC, + 0x6AF0, 0x6AF1, 0x6AF2, 0x6AFC, + 0x6AFD, 0x6B02, 0x6B03, 0x6B06, + 0x6B07, 0x6B09, 0x6B0F, 0x6B10, /* C5E0 */ + 0x6B11, 0x6B17, 0x6B1B, 0x6B1E, + 0x6B24, 0x6B28, 0x6B2B, 0x6B2C, + 0x6B2F, 0x6B35, 0x6B36, 0x6B3B, + 0x6B3F, 0x6B46, 0x6B4A, 0x6B4D, + 0x6B52, 0x6B56, 0x6B58, 0x6B5D, + 0x6B60, 0x6B67, 0x6B6B, 0x6B6E, + 0x6B70, 0x6B75, 0x6B7D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6B7E, 0x6B82, 0x6B85, /* C6A0 */ + 0x6B97, 0x6B9B, 0x6B9F, 0x6BA0, + 0x6BA2, 0x6BA3, 0x6BA8, 0x6BA9, + 0x6BAC, 0x6BAD, 0x6BAE, 0x6BB0, + 0x6BB8, 0x6BB9, 0x6BBD, 0x6BBE, + 0x6BC3, 0x6BC4, 0x6BC9, 0x6BCC, + 0x6BD6, 0x6BDA, 0x6BE1, 0x6BE3, + 0x6BE6, 0x6BE7, 0x6BEE, 0x6BF1, + 0x6BF7, 0x6BF9, 0x6BFF, 0x6C02, /* C6C0 */ + 0x6C04, 0x6C05, 0x6C09, 0x6C0D, + 0x6C0E, 0x6C10, 0x6C12, 0x6C19, + 0x6C1F, 0x6C26, 0x6C27, 0x6C28, + 0x6C2C, 0x6C2E, 0x6C33, 0x6C35, + 0x6C36, 0x6C3A, 0x6C3B, 0x6C3F, + 0x6C4A, 0x6C4B, 0x6C4D, 0x6C4F, + 0x6C52, 0x6C54, 0x6C59, 0x6C5B, + 0x6C5C, 0x6C6B, 0x6C6D, 0x6C6F, /* C6E0 */ + 0x6C74, 0x6C76, 0x6C78, 0x6C79, + 0x6C7B, 0x6C85, 0x6C86, 0x6C87, + 0x6C89, 0x6C94, 0x6C95, 0x6C97, + 0x6C98, 0x6C9C, 0x6C9F, 0x6CB0, + 0x6CB2, 0x6CB4, 0x6CC2, 0x6CC6, + 0x6CCD, 0x6CCF, 0x6CD0, 0x6CD1, + 0x6CD2, 0x6CD4, 0x6CD6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6CDA, 0x6CDC, 0x6CE0, /* C7A0 */ + 0x6CE7, 0x6CE9, 0x6CEB, 0x6CEC, + 0x6CEE, 0x6CF2, 0x6CF4, 0x6D04, + 0x6D07, 0x6D0A, 0x6D0E, 0x6D0F, + 0x6D11, 0x6D13, 0x6D1A, 0x6D26, + 0x6D27, 0x6D28, 0x6C67, 0x6D2E, + 0x6D2F, 0x6D31, 0x6D39, 0x6D3C, + 0x6D3F, 0x6D57, 0x6D5E, 0x6D5F, + 0x6D61, 0x6D65, 0x6D67, 0x6D6F, /* C7C0 */ + 0x6D70, 0x6D7C, 0x6D82, 0x6D87, + 0x6D91, 0x6D92, 0x6D94, 0x6D96, + 0x6D97, 0x6D98, 0x6DAA, 0x6DAC, + 0x6DB4, 0x6DB7, 0x6DB9, 0x6DBD, + 0x6DBF, 0x6DC4, 0x6DC8, 0x6DCA, + 0x6DCE, 0x6DCF, 0x6DD6, 0x6DDB, + 0x6DDD, 0x6DDF, 0x6DE0, 0x6DE2, + 0x6DE5, 0x6DE9, 0x6DEF, 0x6DF0, /* C7E0 */ + 0x6DF4, 0x6DF6, 0x6DFC, 0x6E00, + 0x6E04, 0x6E1E, 0x6E22, 0x6E27, + 0x6E32, 0x6E36, 0x6E39, 0x6E3B, + 0x6E3C, 0x6E44, 0x6E45, 0x6E48, + 0x6E49, 0x6E4B, 0x6E4F, 0x6E51, + 0x6E52, 0x6E53, 0x6E54, 0x6E57, + 0x6E5C, 0x6E5D, 0x6E5E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6E62, 0x6E63, 0x6E68, /* C8A0 */ + 0x6E73, 0x6E7B, 0x6E7D, 0x6E8D, + 0x6E93, 0x6E99, 0x6EA0, 0x6EA7, + 0x6EAD, 0x6EAE, 0x6EB1, 0x6EB3, + 0x6EBB, 0x6EBF, 0x6EC0, 0x6EC1, + 0x6EC3, 0x6EC7, 0x6EC8, 0x6ECA, + 0x6ECD, 0x6ECE, 0x6ECF, 0x6EEB, + 0x6EED, 0x6EEE, 0x6EF9, 0x6EFB, + 0x6EFD, 0x6F04, 0x6F08, 0x6F0A, /* C8C0 */ + 0x6F0C, 0x6F0D, 0x6F16, 0x6F18, + 0x6F1A, 0x6F1B, 0x6F26, 0x6F29, + 0x6F2A, 0x6F2F, 0x6F30, 0x6F33, + 0x6F36, 0x6F3B, 0x6F3C, 0x6F2D, + 0x6F4F, 0x6F51, 0x6F52, 0x6F53, + 0x6F57, 0x6F59, 0x6F5A, 0x6F5D, + 0x6F5E, 0x6F61, 0x6F62, 0x6F68, + 0x6F6C, 0x6F7D, 0x6F7E, 0x6F83, /* C8E0 */ + 0x6F87, 0x6F88, 0x6F8B, 0x6F8C, + 0x6F8D, 0x6F90, 0x6F92, 0x6F93, + 0x6F94, 0x6F96, 0x6F9A, 0x6F9F, + 0x6FA0, 0x6FA5, 0x6FA6, 0x6FA7, + 0x6FA8, 0x6FAE, 0x6FAF, 0x6FB0, + 0x6FB5, 0x6FB6, 0x6FBC, 0x6FC5, + 0x6FC7, 0x6FC8, 0x6FCA, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6FDA, 0x6FDE, 0x6FE8, /* C9A0 */ + 0x6FE9, 0x6FF0, 0x6FF5, 0x6FF9, + 0x6FFC, 0x6FFD, 0x7000, 0x7005, + 0x7006, 0x7007, 0x700D, 0x7017, + 0x7020, 0x7023, 0x702F, 0x7034, + 0x7037, 0x7039, 0x703C, 0x7043, + 0x7044, 0x7048, 0x7049, 0x704A, + 0x704B, 0x7054, 0x7055, 0x705D, + 0x705E, 0x704E, 0x7064, 0x7065, /* C9C0 */ + 0x706C, 0x706E, 0x7075, 0x7076, + 0x707E, 0x7081, 0x7085, 0x7086, + 0x7094, 0x7095, 0x7096, 0x7097, + 0x7098, 0x709B, 0x70A4, 0x70AB, + 0x70B0, 0x70B1, 0x70B4, 0x70B7, + 0x70CA, 0x70D1, 0x70D3, 0x70D4, + 0x70D5, 0x70D6, 0x70D8, 0x70DC, + 0x70E4, 0x70FA, 0x7103, 0x7104, /* C9E0 */ + 0x7105, 0x7106, 0x7107, 0x710B, + 0x710C, 0x710F, 0x711E, 0x7120, + 0x712B, 0x712D, 0x712F, 0x7130, + 0x7131, 0x7138, 0x7141, 0x7145, + 0x7146, 0x7147, 0x714A, 0x714B, + 0x7150, 0x7152, 0x7157, 0x715A, + 0x715C, 0x715E, 0x7160, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7168, 0x7179, 0x7180, /* CAA0 */ + 0x7185, 0x7187, 0x718C, 0x7192, + 0x719A, 0x719B, 0x71A0, 0x71A2, + 0x71AF, 0x71B0, 0x71B2, 0x71B3, + 0x71BA, 0x71BF, 0x71C0, 0x71C1, + 0x71C4, 0x71CB, 0x71CC, 0x71D3, + 0x71D6, 0x71D9, 0x71DA, 0x71DC, + 0x71F8, 0x71FE, 0x7200, 0x7207, + 0x7208, 0x7209, 0x7213, 0x7217, /* CAC0 */ + 0x721A, 0x721D, 0x721F, 0x7224, + 0x722B, 0x722F, 0x7234, 0x7238, + 0x7239, 0x7241, 0x7242, 0x7243, + 0x7245, 0x724E, 0x724F, 0x7250, + 0x7253, 0x7255, 0x7256, 0x725A, + 0x725C, 0x725E, 0x7260, 0x7263, + 0x7268, 0x726B, 0x726E, 0x726F, + 0x7271, 0x7277, 0x7278, 0x727B, /* CAE0 */ + 0x727C, 0x727F, 0x7284, 0x7289, + 0x728D, 0x728E, 0x7293, 0x729B, + 0x72A8, 0x72AD, 0x72AE, 0x72B1, + 0x72B4, 0x72BE, 0x72C1, 0x72C7, + 0x72C9, 0x72CC, 0x72D5, 0x72D6, + 0x72D8, 0x72DF, 0x72E5, 0x72F3, + 0x72F4, 0x72FA, 0x72FB, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x72FE, 0x7302, 0x7304, /* CBA0 */ + 0x7305, 0x7307, 0x730B, 0x730D, + 0x7312, 0x7313, 0x7318, 0x7319, + 0x731E, 0x7322, 0x7324, 0x7327, + 0x7328, 0x732C, 0x7331, 0x7332, + 0x7335, 0x733A, 0x733B, 0x733D, + 0x7343, 0x734D, 0x7350, 0x7352, + 0x7356, 0x7358, 0x735D, 0x735E, + 0x735F, 0x7360, 0x7366, 0x7367, /* CBC0 */ + 0x7369, 0x736B, 0x736C, 0x736E, + 0x736F, 0x7371, 0x7377, 0x7379, + 0x737C, 0x7380, 0x7381, 0x7383, + 0x7385, 0x7386, 0x738E, 0x7390, + 0x7393, 0x7395, 0x7397, 0x7398, + 0x739C, 0x739E, 0x739F, 0x73A0, + 0x73A2, 0x73A5, 0x73A6, 0x73AA, + 0x73AB, 0x73AD, 0x73B5, 0x73B7, /* CBE0 */ + 0x73B9, 0x73BC, 0x73BD, 0x73BF, + 0x73C5, 0x73C6, 0x73C9, 0x73CB, + 0x73CC, 0x73CF, 0x73D2, 0x73D3, + 0x73D6, 0x73D9, 0x73DD, 0x73E1, + 0x73E3, 0x73E6, 0x73E7, 0x73E9, + 0x73F4, 0x73F5, 0x73F7, 0x73F9, + 0x73FA, 0x73FB, 0x73FD, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x73FF, 0x7400, 0x7401, /* CCA0 */ + 0x7404, 0x7407, 0x740A, 0x7411, + 0x741A, 0x741B, 0x7424, 0x7426, + 0x7428, 0x7429, 0x742A, 0x742B, + 0x742C, 0x742D, 0x742E, 0x742F, + 0x7430, 0x7431, 0x7439, 0x7440, + 0x7443, 0x7444, 0x7446, 0x7447, + 0x744B, 0x744D, 0x7451, 0x7452, + 0x7457, 0x745D, 0x7462, 0x7466, /* CCC0 */ + 0x7467, 0x7468, 0x746B, 0x746D, + 0x746E, 0x7471, 0x7472, 0x7480, + 0x7481, 0x7485, 0x7486, 0x7487, + 0x7489, 0x748F, 0x7490, 0x7491, + 0x7492, 0x7498, 0x7499, 0x749A, + 0x749C, 0x749F, 0x74A0, 0x74A1, + 0x74A3, 0x74A6, 0x74A8, 0x74A9, + 0x74AA, 0x74AB, 0x74AE, 0x74AF, /* CCE0 */ + 0x74B1, 0x74B2, 0x74B5, 0x74B9, + 0x74BB, 0x74BF, 0x74C8, 0x74C9, + 0x74CC, 0x74D0, 0x74D3, 0x74D8, + 0x74DA, 0x74DB, 0x74DE, 0x74DF, + 0x74E4, 0x74E8, 0x74EA, 0x74EB, + 0x74EF, 0x74F4, 0x74FA, 0x74FB, + 0x74FC, 0x74FF, 0x7506, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7512, 0x7516, 0x7517, /* CDA0 */ + 0x7520, 0x7521, 0x7524, 0x7527, + 0x7529, 0x752A, 0x752F, 0x7536, + 0x7539, 0x753D, 0x753E, 0x753F, + 0x7540, 0x7543, 0x7547, 0x7548, + 0x754E, 0x7550, 0x7552, 0x7557, + 0x755E, 0x755F, 0x7561, 0x756F, + 0x7571, 0x7579, 0x757A, 0x757B, + 0x757C, 0x757D, 0x757E, 0x7581, /* CDC0 */ + 0x7585, 0x7590, 0x7592, 0x7593, + 0x7595, 0x7599, 0x759C, 0x75A2, + 0x75A4, 0x75B4, 0x75BA, 0x75BF, + 0x75C0, 0x75C1, 0x75C4, 0x75C6, + 0x75CC, 0x75CE, 0x75CF, 0x75D7, + 0x75DC, 0x75DF, 0x75E0, 0x75E1, + 0x75E4, 0x75E7, 0x75EC, 0x75EE, + 0x75EF, 0x75F1, 0x75F9, 0x7600, /* CDE0 */ + 0x7602, 0x7603, 0x7604, 0x7607, + 0x7608, 0x760A, 0x760C, 0x760F, + 0x7612, 0x7613, 0x7615, 0x7616, + 0x7619, 0x761B, 0x761C, 0x761D, + 0x761E, 0x7623, 0x7625, 0x7626, + 0x7629, 0x762D, 0x7632, 0x7633, + 0x7635, 0x7638, 0x7639, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x763A, 0x763C, 0x764A, /* CEA0 */ + 0x7640, 0x7641, 0x7643, 0x7644, + 0x7645, 0x7649, 0x764B, 0x7655, + 0x7659, 0x765F, 0x7664, 0x7665, + 0x766D, 0x766E, 0x766F, 0x7671, + 0x7674, 0x7681, 0x7685, 0x768C, + 0x768D, 0x7695, 0x769B, 0x769C, + 0x769D, 0x769F, 0x76A0, 0x76A2, + 0x76A3, 0x76A4, 0x76A5, 0x76A6, /* CEC0 */ + 0x76A7, 0x76A8, 0x76AA, 0x76AD, + 0x76BD, 0x76C1, 0x76C5, 0x76C9, + 0x76CB, 0x76CC, 0x76CE, 0x76D4, + 0x76D9, 0x76E0, 0x76E6, 0x76E8, + 0x76EC, 0x76F0, 0x76F1, 0x76F6, + 0x76F9, 0x76FC, 0x7700, 0x7706, + 0x770A, 0x770E, 0x7712, 0x7714, + 0x7715, 0x7717, 0x7719, 0x771A, /* CEE0 */ + 0x771C, 0x7722, 0x7728, 0x772D, + 0x772E, 0x772F, 0x7734, 0x7735, + 0x7736, 0x7739, 0x773D, 0x773E, + 0x7742, 0x7745, 0x7746, 0x774A, + 0x774D, 0x774E, 0x774F, 0x7752, + 0x7756, 0x7757, 0x775C, 0x775E, + 0x775F, 0x7760, 0x7762, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7764, 0x7767, 0x776A, /* CFA0 */ + 0x776C, 0x7770, 0x7772, 0x7773, + 0x7774, 0x777A, 0x777D, 0x7780, + 0x7784, 0x778C, 0x778D, 0x7794, + 0x7795, 0x7796, 0x779A, 0x779F, + 0x77A2, 0x77A7, 0x77AA, 0x77AE, + 0x77AF, 0x77B1, 0x77B5, 0x77BE, + 0x77C3, 0x77C9, 0x77D1, 0x77D2, + 0x77D5, 0x77D9, 0x77DE, 0x77DF, /* CFC0 */ + 0x77E0, 0x77E4, 0x77E6, 0x77EA, + 0x77EC, 0x77F0, 0x77F1, 0x77F4, + 0x77F8, 0x77FB, 0x7805, 0x7806, + 0x7809, 0x780D, 0x780E, 0x7811, + 0x781D, 0x7821, 0x7822, 0x7823, + 0x782D, 0x782E, 0x7830, 0x7835, + 0x7837, 0x7843, 0x7844, 0x7847, + 0x7848, 0x784C, 0x784E, 0x7852, /* CFE0 */ + 0x785C, 0x785E, 0x7860, 0x7861, + 0x7863, 0x7864, 0x7868, 0x786A, + 0x786E, 0x787A, 0x787E, 0x788A, + 0x788F, 0x7894, 0x7898, 0x78A1, + 0x789D, 0x789E, 0x789F, 0x78A4, + 0x78A8, 0x78AC, 0x78AD, 0x78B0, + 0x78B1, 0x78B2, 0x78B3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x78BB, 0x78BD, 0x78BF, /* D0A0 */ + 0x78C7, 0x78C8, 0x78C9, 0x78CC, + 0x78CE, 0x78D2, 0x78D3, 0x78D5, + 0x78D6, 0x78E4, 0x78DB, 0x78DF, + 0x78E0, 0x78E1, 0x78E6, 0x78EA, + 0x78F2, 0x78F3, 0x7900, 0x78F6, + 0x78F7, 0x78FA, 0x78FB, 0x78FF, + 0x7906, 0x790C, 0x7910, 0x791A, + 0x791C, 0x791E, 0x791F, 0x7920, /* D0C0 */ + 0x7925, 0x7927, 0x7929, 0x792D, + 0x7931, 0x7934, 0x7935, 0x793B, + 0x793D, 0x793F, 0x7944, 0x7945, + 0x7946, 0x794A, 0x794B, 0x794F, + 0x7951, 0x7954, 0x7958, 0x795B, + 0x795C, 0x7967, 0x7969, 0x796B, + 0x7972, 0x7979, 0x797B, 0x797C, + 0x797E, 0x798B, 0x798C, 0x7991, /* D0E0 */ + 0x7993, 0x7994, 0x7995, 0x7996, + 0x7998, 0x799B, 0x799C, 0x79A1, + 0x79A8, 0x79A9, 0x79AB, 0x79AF, + 0x79B1, 0x79B4, 0x79B8, 0x79BB, + 0x79C2, 0x79C4, 0x79C7, 0x79C8, + 0x79CA, 0x79CF, 0x79D4, 0x79D6, + 0x79DA, 0x79DD, 0x79DE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x79E0, 0x79E2, 0x79E5, /* D1A0 */ + 0x79EA, 0x79EB, 0x79ED, 0x79F1, + 0x79F8, 0x79FC, 0x7A02, 0x7A03, + 0x7A07, 0x7A09, 0x7A0A, 0x7A0C, + 0x7A11, 0x7A15, 0x7A1B, 0x7A1E, + 0x7A21, 0x7A27, 0x7A2B, 0x7A2D, + 0x7A2F, 0x7A30, 0x7A34, 0x7A35, + 0x7A38, 0x7A39, 0x7A3A, 0x7A44, + 0x7A45, 0x7A47, 0x7A48, 0x7A4C, /* D1C0 */ + 0x7A55, 0x7A56, 0x7A59, 0x7A5C, + 0x7A5D, 0x7A5F, 0x7A60, 0x7A65, + 0x7A67, 0x7A6A, 0x7A6D, 0x7A75, + 0x7A78, 0x7A7E, 0x7A80, 0x7A82, + 0x7A85, 0x7A86, 0x7A8A, 0x7A8B, + 0x7A90, 0x7A91, 0x7A94, 0x7A9E, + 0x7AA0, 0x7AA3, 0x7AAC, 0x7AB3, + 0x7AB5, 0x7AB9, 0x7ABB, 0x7ABC, /* D1E0 */ + 0x7AC6, 0x7AC9, 0x7ACC, 0x7ACE, + 0x7AD1, 0x7ADB, 0x7AE8, 0x7AE9, + 0x7AEB, 0x7AEC, 0x7AF1, 0x7AF4, + 0x7AFB, 0x7AFD, 0x7AFE, 0x7B07, + 0x7B14, 0x7B1F, 0x7B23, 0x7B27, + 0x7B29, 0x7B2A, 0x7B2B, 0x7B2D, + 0x7B2E, 0x7B2F, 0x7B30, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7B31, 0x7B34, 0x7B3D, /* D2A0 */ + 0x7B3F, 0x7B40, 0x7B41, 0x7B47, + 0x7B4E, 0x7B55, 0x7B60, 0x7B64, + 0x7B66, 0x7B69, 0x7B6A, 0x7B6D, + 0x7B6F, 0x7B72, 0x7B73, 0x7B77, + 0x7B84, 0x7B89, 0x7B8E, 0x7B90, + 0x7B91, 0x7B96, 0x7B9B, 0x7B9E, + 0x7BA0, 0x7BA5, 0x7BAC, 0x7BAF, + 0x7BB0, 0x7BB2, 0x7BB5, 0x7BB6, /* D2C0 */ + 0x7BBA, 0x7BBB, 0x7BBC, 0x7BBD, + 0x7BC2, 0x7BC5, 0x7BC8, 0x7BCA, + 0x7BD4, 0x7BD6, 0x7BD7, 0x7BD9, + 0x7BDA, 0x7BDB, 0x7BE8, 0x7BEA, + 0x7BF2, 0x7BF4, 0x7BF5, 0x7BF8, + 0x7BF9, 0x7BFA, 0x7BFC, 0x7BFE, + 0x7C01, 0x7C02, 0x7C03, 0x7C04, + 0x7C06, 0x7C09, 0x7C0B, 0x7C0C, /* D2E0 */ + 0x7C0E, 0x7C0F, 0x7C19, 0x7C1B, + 0x7C20, 0x7C25, 0x7C26, 0x7C28, + 0x7C2C, 0x7C31, 0x7C33, 0x7C34, + 0x7C36, 0x7C39, 0x7C3A, 0x7C46, + 0x7C4A, 0x7C55, 0x7C51, 0x7C52, + 0x7C53, 0x7C59, 0x7C5A, 0x7C5B, + 0x7C5C, 0x7C5D, 0x7C5E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7C61, 0x7C63, 0x7C67, /* D3A0 */ + 0x7C69, 0x7C6D, 0x7C6E, 0x7C70, + 0x7C72, 0x7C79, 0x7C7C, 0x7C7D, + 0x7C86, 0x7C87, 0x7C8F, 0x7C94, + 0x7C9E, 0x7CA0, 0x7CA6, 0x7CB0, + 0x7CB6, 0x7CB7, 0x7CBA, 0x7CBB, + 0x7CBC, 0x7CBF, 0x7CC4, 0x7CC7, + 0x7CC8, 0x7CC9, 0x7CCD, 0x7CCF, + 0x7CD3, 0x7CD4, 0x7CD5, 0x7CD7, /* D3C0 */ + 0x7CD9, 0x7CDA, 0x7CDD, 0x7CE6, + 0x7CE9, 0x7CEB, 0x7CF5, 0x7D03, + 0x7D07, 0x7D08, 0x7D09, 0x7D0F, + 0x7D11, 0x7D12, 0x7D13, 0x7D16, + 0x7D1D, 0x7D1E, 0x7D23, 0x7D26, + 0x7D2A, 0x7D2D, 0x7D31, 0x7D3C, + 0x7D3D, 0x7D3E, 0x7D40, 0x7D41, + 0x7D47, 0x7D48, 0x7D4D, 0x7D51, /* D3E0 */ + 0x7D53, 0x7D57, 0x7D59, 0x7D5A, + 0x7D5C, 0x7D5D, 0x7D65, 0x7D67, + 0x7D6A, 0x7D70, 0x7D78, 0x7D7A, + 0x7D7B, 0x7D7F, 0x7D81, 0x7D82, + 0x7D83, 0x7D85, 0x7D86, 0x7D88, + 0x7D8B, 0x7D8C, 0x7D8D, 0x7D91, + 0x7D96, 0x7D97, 0x7D9D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7D9E, 0x7DA6, 0x7DA7, /* D4A0 */ + 0x7DAA, 0x7DB3, 0x7DB6, 0x7DB7, + 0x7DB9, 0x7DC2, 0x7DC3, 0x7DC4, + 0x7DC5, 0x7DC6, 0x7DCC, 0x7DCD, + 0x7DCE, 0x7DD7, 0x7DD9, 0x7E00, + 0x7DE2, 0x7DE5, 0x7DE6, 0x7DEA, + 0x7DEB, 0x7DED, 0x7DF1, 0x7DF5, + 0x7DF6, 0x7DF9, 0x7DFA, 0x7E08, + 0x7E10, 0x7E11, 0x7E15, 0x7E17, /* D4C0 */ + 0x7E1C, 0x7E1D, 0x7E20, 0x7E27, + 0x7E28, 0x7E2C, 0x7E2D, 0x7E2F, + 0x7E33, 0x7E36, 0x7E3F, 0x7E44, + 0x7E45, 0x7E47, 0x7E4E, 0x7E50, + 0x7E52, 0x7E58, 0x7E5F, 0x7E61, + 0x7E62, 0x7E65, 0x7E6B, 0x7E6E, + 0x7E6F, 0x7E73, 0x7E78, 0x7E7E, + 0x7E81, 0x7E86, 0x7E87, 0x7E8A, /* D4E0 */ + 0x7E8D, 0x7E91, 0x7E95, 0x7E98, + 0x7E9A, 0x7E9D, 0x7E9E, 0x7F3C, + 0x7F3B, 0x7F3D, 0x7F3E, 0x7F3F, + 0x7F43, 0x7F44, 0x7F47, 0x7F4F, + 0x7F52, 0x7F53, 0x7F5B, 0x7F5C, + 0x7F5D, 0x7F61, 0x7F63, 0x7F64, + 0x7F65, 0x7F66, 0x7F6D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7F71, 0x7F7D, 0x7F7E, /* D5A0 */ + 0x7F7F, 0x7F80, 0x7F8B, 0x7F8D, + 0x7F8F, 0x7F90, 0x7F91, 0x7F96, + 0x7F97, 0x7F9C, 0x7FA1, 0x7FA2, + 0x7FA6, 0x7FAA, 0x7FAD, 0x7FB4, + 0x7FBC, 0x7FBF, 0x7FC0, 0x7FC3, + 0x7FC8, 0x7FCE, 0x7FCF, 0x7FDB, + 0x7FDF, 0x7FE3, 0x7FE5, 0x7FE8, + 0x7FEC, 0x7FEE, 0x7FEF, 0x7FF2, /* D5C0 */ + 0x7FFA, 0x7FFD, 0x7FFE, 0x7FFF, + 0x8007, 0x8008, 0x800A, 0x800D, + 0x800E, 0x800F, 0x8011, 0x8013, + 0x8014, 0x8016, 0x801D, 0x801E, + 0x801F, 0x8020, 0x8024, 0x8026, + 0x802C, 0x802E, 0x8030, 0x8034, + 0x8035, 0x8037, 0x8039, 0x803A, + 0x803C, 0x803E, 0x8040, 0x8044, /* D5E0 */ + 0x8060, 0x8064, 0x8066, 0x806D, + 0x8071, 0x8075, 0x8081, 0x8088, + 0x808E, 0x809C, 0x809E, 0x80A6, + 0x80A7, 0x80AB, 0x80B8, 0x80B9, + 0x80C8, 0x80CD, 0x80CF, 0x80D2, + 0x80D4, 0x80D5, 0x80D7, 0x80D8, + 0x80E0, 0x80ED, 0x80EE, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x80F0, 0x80F2, 0x80F3, /* D6A0 */ + 0x80F6, 0x80F9, 0x80FA, 0x80FE, + 0x8103, 0x810B, 0x8116, 0x8117, + 0x8118, 0x811C, 0x811E, 0x8120, + 0x8124, 0x8127, 0x812C, 0x8130, + 0x8135, 0x813A, 0x813C, 0x8145, + 0x8147, 0x814A, 0x814C, 0x8152, + 0x8157, 0x8160, 0x8161, 0x8167, + 0x8168, 0x8169, 0x816D, 0x816F, /* D6C0 */ + 0x8177, 0x8181, 0x8190, 0x8184, + 0x8185, 0x8186, 0x818B, 0x818E, + 0x8196, 0x8198, 0x819B, 0x819E, + 0x81A2, 0x81AE, 0x81B2, 0x81B4, + 0x81BB, 0x81CB, 0x81C3, 0x81C5, + 0x81CA, 0x81CE, 0x81CF, 0x81D5, + 0x81D7, 0x81DB, 0x81DD, 0x81DE, + 0x81E1, 0x81E4, 0x81EB, 0x81EC, /* D6E0 */ + 0x81F0, 0x81F1, 0x81F2, 0x81F5, + 0x81F6, 0x81F8, 0x81F9, 0x81FD, + 0x81FF, 0x8200, 0x8203, 0x820F, + 0x8213, 0x8214, 0x8219, 0x821A, + 0x821D, 0x8221, 0x8222, 0x8228, + 0x8232, 0x8234, 0x823A, 0x8243, + 0x8244, 0x8245, 0x8246, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x824B, 0x824E, 0x824F, /* D7A0 */ + 0x8251, 0x8256, 0x825C, 0x8260, + 0x8263, 0x8267, 0x826D, 0x8274, + 0x827B, 0x827D, 0x827F, 0x8280, + 0x8281, 0x8283, 0x8284, 0x8287, + 0x8289, 0x828A, 0x828E, 0x8291, + 0x8294, 0x8296, 0x8298, 0x829A, + 0x829B, 0x82A0, 0x82A1, 0x82A3, + 0x82A4, 0x82A7, 0x82A8, 0x82A9, /* D7C0 */ + 0x82AA, 0x82AE, 0x82B0, 0x82B2, + 0x82B4, 0x82B7, 0x82BA, 0x82BC, + 0x82BE, 0x82BF, 0x82C6, 0x82D0, + 0x82D5, 0x82DA, 0x82E0, 0x82E2, + 0x82E4, 0x82E8, 0x82EA, 0x82ED, + 0x82EF, 0x82F6, 0x82F7, 0x82FD, + 0x82FE, 0x8300, 0x8301, 0x8307, + 0x8308, 0x830A, 0x830B, 0x8354, /* D7E0 */ + 0x831B, 0x831D, 0x831E, 0x831F, + 0x8321, 0x8322, 0x832C, 0x832D, + 0x832E, 0x8330, 0x8333, 0x8337, + 0x833A, 0x833C, 0x833D, 0x8342, + 0x8343, 0x8344, 0x8347, 0x834D, + 0x834E, 0x8351, 0x8355, 0x8356, + 0x8357, 0x8370, 0x8378, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x837D, 0x837F, 0x8380, /* D8A0 */ + 0x8382, 0x8384, 0x8386, 0x838D, + 0x8392, 0x8394, 0x8395, 0x8398, + 0x8399, 0x839B, 0x839C, 0x839D, + 0x83A6, 0x83A7, 0x83A9, 0x83AC, + 0x83BE, 0x83BF, 0x83C0, 0x83C7, + 0x83C9, 0x83CF, 0x83D0, 0x83D1, + 0x83D4, 0x83DD, 0x8353, 0x83E8, + 0x83EA, 0x83F6, 0x83F8, 0x83F9, /* D8C0 */ + 0x83FC, 0x8401, 0x8406, 0x840A, + 0x840F, 0x8411, 0x8415, 0x8419, + 0x83AD, 0x842F, 0x8439, 0x8445, + 0x8447, 0x8448, 0x844A, 0x844D, + 0x844F, 0x8451, 0x8452, 0x8456, + 0x8458, 0x8459, 0x845A, 0x845C, + 0x8460, 0x8464, 0x8465, 0x8467, + 0x846A, 0x8470, 0x8473, 0x8474, /* D8E0 */ + 0x8476, 0x8478, 0x847C, 0x847D, + 0x8481, 0x8485, 0x8492, 0x8493, + 0x8495, 0x849E, 0x84A6, 0x84A8, + 0x84A9, 0x84AA, 0x84AF, 0x84B1, + 0x84B4, 0x84BA, 0x84BD, 0x84BE, + 0x84C0, 0x84C2, 0x84C7, 0x84C8, + 0x84CC, 0x84CF, 0x84D3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x84DC, 0x84E7, 0x84EA, /* D9A0 */ + 0x84EF, 0x84F0, 0x84F1, 0x84F2, + 0x84F7, 0x8532, 0x84FA, 0x84FB, + 0x84FD, 0x8502, 0x8503, 0x8507, + 0x850C, 0x850E, 0x8510, 0x851C, + 0x851E, 0x8522, 0x8523, 0x8524, + 0x8525, 0x8527, 0x852A, 0x852B, + 0x852F, 0x8533, 0x8534, 0x8536, + 0x853F, 0x8546, 0x854F, 0x8550, /* D9C0 */ + 0x8551, 0x8552, 0x8553, 0x8556, + 0x8559, 0x855C, 0x855D, 0x855E, + 0x855F, 0x8560, 0x8561, 0x8562, + 0x8564, 0x856B, 0x856F, 0x8579, + 0x857A, 0x857B, 0x857D, 0x857F, + 0x8581, 0x8585, 0x8586, 0x8589, + 0x858B, 0x858C, 0x858F, 0x8593, + 0x8598, 0x859D, 0x859F, 0x85A0, /* D9E0 */ + 0x85A2, 0x85A5, 0x85A7, 0x85B4, + 0x85B6, 0x85B7, 0x85B8, 0x85BC, + 0x85BD, 0x85BE, 0x85BF, 0x85C2, + 0x85C7, 0x85CA, 0x85CB, 0x85CE, + 0x85AD, 0x85D8, 0x85DA, 0x85DF, + 0x85E0, 0x85E6, 0x85E8, 0x85ED, + 0x85F3, 0x85F6, 0x85FC, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x85FF, 0x8600, 0x8604, /* DAA0 */ + 0x8605, 0x860D, 0x860E, 0x8610, + 0x8611, 0x8612, 0x8618, 0x8619, + 0x861B, 0x861E, 0x8621, 0x8627, + 0x8629, 0x8636, 0x8638, 0x863A, + 0x863C, 0x863D, 0x8640, 0x8642, + 0x8646, 0x8652, 0x8653, 0x8656, + 0x8657, 0x8658, 0x8659, 0x865D, + 0x8660, 0x8661, 0x8662, 0x8663, /* DAC0 */ + 0x8664, 0x8669, 0x866C, 0x866F, + 0x8675, 0x8676, 0x8677, 0x867A, + 0x868D, 0x8691, 0x8696, 0x8698, + 0x869A, 0x869C, 0x86A1, 0x86A6, + 0x86A7, 0x86A8, 0x86AD, 0x86B1, + 0x86B3, 0x86B4, 0x86B5, 0x86B7, + 0x86B8, 0x86B9, 0x86BF, 0x86C0, + 0x86C1, 0x86C3, 0x86C5, 0x86D1, /* DAE0 */ + 0x86D2, 0x86D5, 0x86D7, 0x86DA, + 0x86DC, 0x86E0, 0x86E3, 0x86E5, + 0x86E7, 0x8688, 0x86FA, 0x86FC, + 0x86FD, 0x8704, 0x8705, 0x8707, + 0x870B, 0x870E, 0x870F, 0x8710, + 0x8713, 0x8714, 0x8719, 0x871E, + 0x871F, 0x8721, 0x8723, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8728, 0x872E, 0x872F, /* DBA0 */ + 0x8731, 0x8732, 0x8739, 0x873A, + 0x873C, 0x873D, 0x873E, 0x8740, + 0x8743, 0x8745, 0x874D, 0x8758, + 0x875D, 0x8761, 0x8764, 0x8765, + 0x876F, 0x8771, 0x8772, 0x877B, + 0x8783, 0x8784, 0x8785, 0x8786, + 0x8787, 0x8788, 0x8789, 0x878B, + 0x878C, 0x8790, 0x8793, 0x8795, /* DBC0 */ + 0x8797, 0x8798, 0x8799, 0x879E, + 0x87A0, 0x87A3, 0x87A7, 0x87AC, + 0x87AD, 0x87AE, 0x87B1, 0x87B5, + 0x87BE, 0x87BF, 0x87C1, 0x87C8, + 0x87C9, 0x87CA, 0x87CE, 0x87D5, + 0x87D6, 0x87D9, 0x87DA, 0x87DC, + 0x87DF, 0x87E2, 0x87E3, 0x87E4, + 0x87EA, 0x87EB, 0x87ED, 0x87F1, /* DBE0 */ + 0x87F3, 0x87F8, 0x87FA, 0x87FF, + 0x8801, 0x8803, 0x8806, 0x8809, + 0x880A, 0x880B, 0x8810, 0x8819, + 0x8812, 0x8813, 0x8814, 0x8818, + 0x881A, 0x881B, 0x881C, 0x881E, + 0x881F, 0x8828, 0x882D, 0x882E, + 0x8830, 0x8832, 0x8835, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x883A, 0x883C, 0x8841, /* DCA0 */ + 0x8843, 0x8845, 0x8848, 0x8849, + 0x884A, 0x884B, 0x884E, 0x8851, + 0x8855, 0x8856, 0x8858, 0x885A, + 0x885C, 0x885F, 0x8860, 0x8864, + 0x8869, 0x8871, 0x8879, 0x887B, + 0x8880, 0x8898, 0x889A, 0x889B, + 0x889C, 0x889F, 0x88A0, 0x88A8, + 0x88AA, 0x88BA, 0x88BD, 0x88BE, /* DCC0 */ + 0x88C0, 0x88CA, 0x88CB, 0x88CC, + 0x88CD, 0x88CE, 0x88D1, 0x88D2, + 0x88D3, 0x88DB, 0x88DE, 0x88E7, + 0x88EF, 0x88F0, 0x88F1, 0x88F5, + 0x88F7, 0x8901, 0x8906, 0x890D, + 0x890E, 0x890F, 0x8915, 0x8916, + 0x8918, 0x8919, 0x891A, 0x891C, + 0x8920, 0x8926, 0x8927, 0x8928, /* DCE0 */ + 0x8930, 0x8931, 0x8932, 0x8935, + 0x8939, 0x893A, 0x893E, 0x8940, + 0x8942, 0x8945, 0x8946, 0x8949, + 0x894F, 0x8952, 0x8957, 0x895A, + 0x895B, 0x895C, 0x8961, 0x8962, + 0x8963, 0x896B, 0x896E, 0x8970, + 0x8973, 0x8975, 0x897A, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x897B, 0x897C, 0x897D, /* DDA0 */ + 0x8989, 0x898D, 0x8990, 0x8994, + 0x8995, 0x899B, 0x899C, 0x899F, + 0x89A0, 0x89A5, 0x89B0, 0x89B4, + 0x89B5, 0x89B6, 0x89B7, 0x89BC, + 0x89D4, 0x89D5, 0x89D6, 0x89D7, + 0x89D8, 0x89E5, 0x89E9, 0x89EB, + 0x89ED, 0x89F1, 0x89F3, 0x89F6, + 0x89F9, 0x89FD, 0x89FF, 0x8A04, /* DDC0 */ + 0x8A05, 0x8A07, 0x8A0F, 0x8A11, + 0x8A12, 0x8A14, 0x8A15, 0x8A1E, + 0x8A20, 0x8A22, 0x8A24, 0x8A26, + 0x8A2B, 0x8A2C, 0x8A2F, 0x8A35, + 0x8A37, 0x8A3D, 0x8A3E, 0x8A40, + 0x8A43, 0x8A45, 0x8A47, 0x8A49, + 0x8A4D, 0x8A4E, 0x8A53, 0x8A56, + 0x8A57, 0x8A58, 0x8A5C, 0x8A5D, /* DDE0 */ + 0x8A61, 0x8A65, 0x8A67, 0x8A75, + 0x8A76, 0x8A77, 0x8A79, 0x8A7A, + 0x8A7B, 0x8A7E, 0x8A7F, 0x8A80, + 0x8A83, 0x8A86, 0x8A8B, 0x8A8F, + 0x8A90, 0x8A92, 0x8A96, 0x8A97, + 0x8A99, 0x8A9F, 0x8AA7, 0x8AA9, + 0x8AAE, 0x8AAF, 0x8AB3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8AB6, 0x8AB7, 0x8ABB, /* DEA0 */ + 0x8ABE, 0x8AC3, 0x8AC6, 0x8AC8, + 0x8AC9, 0x8ACA, 0x8AD1, 0x8AD3, + 0x8AD4, 0x8AD5, 0x8AD7, 0x8ADD, + 0x8ADF, 0x8AEC, 0x8AF0, 0x8AF4, + 0x8AF5, 0x8AF6, 0x8AFC, 0x8AFF, + 0x8B05, 0x8B06, 0x8B0B, 0x8B11, + 0x8B1C, 0x8B1E, 0x8B1F, 0x8B0A, + 0x8B2D, 0x8B30, 0x8B37, 0x8B3C, /* DEC0 */ + 0x8B42, 0x8B43, 0x8B44, 0x8B45, + 0x8B46, 0x8B48, 0x8B52, 0x8B53, + 0x8B54, 0x8B59, 0x8B4D, 0x8B5E, + 0x8B63, 0x8B6D, 0x8B76, 0x8B78, + 0x8B79, 0x8B7C, 0x8B7E, 0x8B81, + 0x8B84, 0x8B85, 0x8B8B, 0x8B8D, + 0x8B8F, 0x8B94, 0x8B95, 0x8B9C, + 0x8B9E, 0x8B9F, 0x8C38, 0x8C39, /* DEE0 */ + 0x8C3D, 0x8C3E, 0x8C45, 0x8C47, + 0x8C49, 0x8C4B, 0x8C4F, 0x8C51, + 0x8C53, 0x8C54, 0x8C57, 0x8C58, + 0x8C5B, 0x8C5D, 0x8C59, 0x8C63, + 0x8C64, 0x8C66, 0x8C68, 0x8C69, + 0x8C6D, 0x8C73, 0x8C75, 0x8C76, + 0x8C7B, 0x8C7E, 0x8C86, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8C87, 0x8C8B, 0x8C90, /* DFA0 */ + 0x8C92, 0x8C93, 0x8C99, 0x8C9B, + 0x8C9C, 0x8CA4, 0x8CB9, 0x8CBA, + 0x8CC5, 0x8CC6, 0x8CC9, 0x8CCB, + 0x8CCF, 0x8CD6, 0x8CD5, 0x8CD9, + 0x8CDD, 0x8CE1, 0x8CE8, 0x8CEC, + 0x8CEF, 0x8CF0, 0x8CF2, 0x8CF5, + 0x8CF7, 0x8CF8, 0x8CFE, 0x8CFF, + 0x8D01, 0x8D03, 0x8D09, 0x8D12, /* DFC0 */ + 0x8D17, 0x8D1B, 0x8D65, 0x8D69, + 0x8D6C, 0x8D6E, 0x8D7F, 0x8D82, + 0x8D84, 0x8D88, 0x8D8D, 0x8D90, + 0x8D91, 0x8D95, 0x8D9E, 0x8D9F, + 0x8DA0, 0x8DA6, 0x8DAB, 0x8DAC, + 0x8DAF, 0x8DB2, 0x8DB5, 0x8DB7, + 0x8DB9, 0x8DBB, 0x8DC0, 0x8DC5, + 0x8DC6, 0x8DC7, 0x8DC8, 0x8DCA, /* DFE0 */ + 0x8DCE, 0x8DD1, 0x8DD4, 0x8DD5, + 0x8DD7, 0x8DD9, 0x8DE4, 0x8DE5, + 0x8DE7, 0x8DEC, 0x8DF0, 0x8DBC, + 0x8DF1, 0x8DF2, 0x8DF4, 0x8DFD, + 0x8E01, 0x8E04, 0x8E05, 0x8E06, + 0x8E0B, 0x8E11, 0x8E14, 0x8E16, + 0x8E20, 0x8E21, 0x8E22, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8E23, 0x8E26, 0x8E27, /* E0A0 */ + 0x8E31, 0x8E33, 0x8E36, 0x8E37, + 0x8E38, 0x8E39, 0x8E3D, 0x8E40, + 0x8E41, 0x8E4B, 0x8E4D, 0x8E4E, + 0x8E4F, 0x8E54, 0x8E5B, 0x8E5C, + 0x8E5D, 0x8E5E, 0x8E61, 0x8E62, + 0x8E69, 0x8E6C, 0x8E6D, 0x8E6F, + 0x8E70, 0x8E71, 0x8E79, 0x8E7A, + 0x8E7B, 0x8E82, 0x8E83, 0x8E89, /* E0C0 */ + 0x8E90, 0x8E92, 0x8E95, 0x8E9A, + 0x8E9B, 0x8E9D, 0x8E9E, 0x8EA2, + 0x8EA7, 0x8EA9, 0x8EAD, 0x8EAE, + 0x8EB3, 0x8EB5, 0x8EBA, 0x8EBB, + 0x8EC0, 0x8EC1, 0x8EC3, 0x8EC4, + 0x8EC7, 0x8ECF, 0x8ED1, 0x8ED4, + 0x8EDC, 0x8EE8, 0x8EEE, 0x8EF0, + 0x8EF1, 0x8EF7, 0x8EF9, 0x8EFA, /* E0E0 */ + 0x8EED, 0x8F00, 0x8F02, 0x8F07, + 0x8F08, 0x8F0F, 0x8F10, 0x8F16, + 0x8F17, 0x8F18, 0x8F1E, 0x8F20, + 0x8F21, 0x8F23, 0x8F25, 0x8F27, + 0x8F28, 0x8F2C, 0x8F2D, 0x8F2E, + 0x8F34, 0x8F35, 0x8F36, 0x8F37, + 0x8F3A, 0x8F40, 0x8F41, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8F43, 0x8F47, 0x8F4F, /* E1A0 */ + 0x8F51, 0x8F52, 0x8F53, 0x8F54, + 0x8F55, 0x8F58, 0x8F5D, 0x8F5E, + 0x8F65, 0x8F9D, 0x8FA0, 0x8FA1, + 0x8FA4, 0x8FA5, 0x8FA6, 0x8FB5, + 0x8FB6, 0x8FB8, 0x8FBE, 0x8FC0, + 0x8FC1, 0x8FC6, 0x8FCA, 0x8FCB, + 0x8FCD, 0x8FD0, 0x8FD2, 0x8FD3, + 0x8FD5, 0x8FE0, 0x8FE3, 0x8FE4, /* E1C0 */ + 0x8FE8, 0x8FEE, 0x8FF1, 0x8FF5, + 0x8FF6, 0x8FFB, 0x8FFE, 0x9002, + 0x9004, 0x9008, 0x900C, 0x9018, + 0x901B, 0x9028, 0x9029, 0x902F, + 0x902A, 0x902C, 0x902D, 0x9033, + 0x9034, 0x9037, 0x903F, 0x9043, + 0x9044, 0x904C, 0x905B, 0x905D, + 0x9062, 0x9066, 0x9067, 0x906C, /* E1E0 */ + 0x9070, 0x9074, 0x9079, 0x9085, + 0x9088, 0x908B, 0x908C, 0x908E, + 0x9090, 0x9095, 0x9097, 0x9098, + 0x9099, 0x909B, 0x90A0, 0x90A1, + 0x90A2, 0x90A5, 0x90B0, 0x90B2, + 0x90B3, 0x90B4, 0x90B6, 0x90BD, + 0x90CC, 0x90BE, 0x90C3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x90C4, 0x90C5, 0x90C7, /* E2A0 */ + 0x90C8, 0x90D5, 0x90D7, 0x90D8, + 0x90D9, 0x90DC, 0x90DD, 0x90DF, + 0x90E5, 0x90D2, 0x90F6, 0x90EB, + 0x90EF, 0x90F0, 0x90F4, 0x90FE, + 0x90FF, 0x9100, 0x9104, 0x9105, + 0x9106, 0x9108, 0x910D, 0x9110, + 0x9114, 0x9116, 0x9117, 0x9118, + 0x911A, 0x911C, 0x911E, 0x9120, /* E2C0 */ + 0x9125, 0x9122, 0x9123, 0x9127, + 0x9129, 0x912E, 0x912F, 0x9131, + 0x9134, 0x9136, 0x9137, 0x9139, + 0x913A, 0x913C, 0x913D, 0x9143, + 0x9147, 0x9148, 0x914F, 0x9153, + 0x9157, 0x9159, 0x915A, 0x915B, + 0x9161, 0x9164, 0x9167, 0x916D, + 0x9174, 0x9179, 0x917A, 0x917B, /* E2E0 */ + 0x9181, 0x9183, 0x9185, 0x9186, + 0x918A, 0x918E, 0x9191, 0x9193, + 0x9194, 0x9195, 0x9198, 0x919E, + 0x91A1, 0x91A6, 0x91A8, 0x91AC, + 0x91AD, 0x91AE, 0x91B0, 0x91B1, + 0x91B2, 0x91B3, 0x91B6, 0x91BB, + 0x91BC, 0x91BD, 0x91BF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x91C2, 0x91C3, 0x91C5, /* E3A0 */ + 0x91D3, 0x91D4, 0x91D7, 0x91D9, + 0x91DA, 0x91DE, 0x91E4, 0x91E5, + 0x91E9, 0x91EA, 0x91EC, 0x91ED, + 0x91EE, 0x91EF, 0x91F0, 0x91F1, + 0x91F7, 0x91F9, 0x91FB, 0x91FD, + 0x9200, 0x9201, 0x9204, 0x9205, + 0x9206, 0x9207, 0x9209, 0x920A, + 0x920C, 0x9210, 0x9212, 0x9213, /* E3C0 */ + 0x9216, 0x9218, 0x921C, 0x921D, + 0x9223, 0x9224, 0x9225, 0x9226, + 0x9228, 0x922E, 0x922F, 0x9230, + 0x9233, 0x9235, 0x9236, 0x9238, + 0x9239, 0x923A, 0x923C, 0x923E, + 0x9240, 0x9242, 0x9243, 0x9246, + 0x9247, 0x924A, 0x924D, 0x924E, + 0x924F, 0x9251, 0x9258, 0x9259, /* E3E0 */ + 0x925C, 0x925D, 0x9260, 0x9261, + 0x9265, 0x9267, 0x9268, 0x9269, + 0x926E, 0x926F, 0x9270, 0x9275, + 0x9276, 0x9277, 0x9278, 0x9279, + 0x927B, 0x927C, 0x927D, 0x927F, + 0x9288, 0x9289, 0x928A, 0x928D, + 0x928E, 0x9292, 0x9297, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9299, 0x929F, 0x92A0, /* E4A0 */ + 0x92A4, 0x92A5, 0x92A7, 0x92A8, + 0x92AB, 0x92AF, 0x92B2, 0x92B6, + 0x92B8, 0x92BA, 0x92BB, 0x92BC, + 0x92BD, 0x92BF, 0x92C0, 0x92C1, + 0x92C2, 0x92C3, 0x92C5, 0x92C6, + 0x92C7, 0x92C8, 0x92CB, 0x92CC, + 0x92CD, 0x92CE, 0x92D0, 0x92D3, + 0x92D5, 0x92D7, 0x92D8, 0x92D9, /* E4C0 */ + 0x92DC, 0x92DD, 0x92DF, 0x92E0, + 0x92E1, 0x92E3, 0x92E5, 0x92E7, + 0x92E8, 0x92EC, 0x92EE, 0x92F0, + 0x92F9, 0x92FB, 0x92FF, 0x9300, + 0x9302, 0x9308, 0x930D, 0x9311, + 0x9314, 0x9315, 0x931C, 0x931D, + 0x931E, 0x931F, 0x9321, 0x9324, + 0x9325, 0x9327, 0x9329, 0x932A, /* E4E0 */ + 0x9333, 0x9334, 0x9336, 0x9337, + 0x9347, 0x9348, 0x9349, 0x9350, + 0x9351, 0x9352, 0x9355, 0x9357, + 0x9358, 0x935A, 0x935E, 0x9364, + 0x9365, 0x9367, 0x9369, 0x936A, + 0x936D, 0x936F, 0x9370, 0x9371, + 0x9373, 0x9374, 0x9376, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x937A, 0x937D, 0x937F, /* E5A0 */ + 0x9380, 0x9381, 0x9382, 0x9388, + 0x938A, 0x938B, 0x938D, 0x938F, + 0x9392, 0x9395, 0x9398, 0x939B, + 0x939E, 0x93A1, 0x93A3, 0x93A4, + 0x93A6, 0x93A8, 0x93AB, 0x93B4, + 0x93B5, 0x93B6, 0x93BA, 0x93A9, + 0x93C1, 0x93C4, 0x93C5, 0x93C6, + 0x93C7, 0x93C9, 0x93CA, 0x93CB, /* E5C0 */ + 0x93CC, 0x93CD, 0x93D3, 0x93D9, + 0x93DC, 0x93DE, 0x93DF, 0x93E2, + 0x93E6, 0x93E7, 0x93F9, 0x93F7, + 0x93F8, 0x93FA, 0x93FB, 0x93FD, + 0x9401, 0x9402, 0x9404, 0x9408, + 0x9409, 0x940D, 0x940E, 0x940F, + 0x9415, 0x9416, 0x9417, 0x941F, + 0x942E, 0x942F, 0x9431, 0x9432, /* E5E0 */ + 0x9433, 0x9434, 0x943B, 0x943F, + 0x943D, 0x9443, 0x9445, 0x9448, + 0x944A, 0x944C, 0x9455, 0x9459, + 0x945C, 0x945F, 0x9461, 0x9463, + 0x9468, 0x946B, 0x946D, 0x946E, + 0x946F, 0x9471, 0x9472, 0x9484, + 0x9483, 0x9578, 0x9579, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x957E, 0x9584, 0x9588, /* E6A0 */ + 0x958C, 0x958D, 0x958E, 0x959D, + 0x959E, 0x959F, 0x95A1, 0x95A6, + 0x95A9, 0x95AB, 0x95AC, 0x95B4, + 0x95B6, 0x95BA, 0x95BD, 0x95BF, + 0x95C6, 0x95C8, 0x95C9, 0x95CB, + 0x95D0, 0x95D1, 0x95D2, 0x95D3, + 0x95D9, 0x95DA, 0x95DD, 0x95DE, + 0x95DF, 0x95E0, 0x95E4, 0x95E6, /* E6C0 */ + 0x961D, 0x961E, 0x9622, 0x9624, + 0x9625, 0x9626, 0x962C, 0x9631, + 0x9633, 0x9637, 0x9638, 0x9639, + 0x963A, 0x963C, 0x963D, 0x9641, + 0x9652, 0x9654, 0x9656, 0x9657, + 0x9658, 0x9661, 0x966E, 0x9674, + 0x967B, 0x967C, 0x967E, 0x967F, + 0x9681, 0x9682, 0x9683, 0x9684, /* E6E0 */ + 0x9689, 0x9691, 0x9696, 0x969A, + 0x969D, 0x969F, 0x96A4, 0x96A5, + 0x96A6, 0x96A9, 0x96AE, 0x96AF, + 0x96B3, 0x96BA, 0x96CA, 0x96D2, + 0x5DB2, 0x96D8, 0x96DA, 0x96DD, + 0x96DE, 0x96DF, 0x96E9, 0x96EF, + 0x96F1, 0x96FA, 0x9702, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9703, 0x9705, 0x9709, /* E7A0 */ + 0x971A, 0x971B, 0x971D, 0x9721, + 0x9722, 0x9723, 0x9728, 0x9731, + 0x9733, 0x9741, 0x9743, 0x974A, + 0x974E, 0x974F, 0x9755, 0x9757, + 0x9758, 0x975A, 0x975B, 0x9763, + 0x9767, 0x976A, 0x976E, 0x9773, + 0x9776, 0x9777, 0x9778, 0x977B, + 0x977D, 0x977F, 0x9780, 0x9789, /* E7C0 */ + 0x9795, 0x9796, 0x9797, 0x9799, + 0x979A, 0x979E, 0x979F, 0x97A2, + 0x97AC, 0x97AE, 0x97B1, 0x97B2, + 0x97B5, 0x97B6, 0x97B8, 0x97B9, + 0x97BA, 0x97BC, 0x97BE, 0x97BF, + 0x97C1, 0x97C4, 0x97C5, 0x97C7, + 0x97C9, 0x97CA, 0x97CC, 0x97CD, + 0x97CE, 0x97D0, 0x97D1, 0x97D4, /* E7E0 */ + 0x97D7, 0x97D8, 0x97D9, 0x97DD, + 0x97DE, 0x97E0, 0x97DB, 0x97E1, + 0x97E4, 0x97EF, 0x97F1, 0x97F4, + 0x97F7, 0x97F8, 0x97FA, 0x9807, + 0x980A, 0x9819, 0x980D, 0x980E, + 0x9814, 0x9816, 0x981C, 0x981E, + 0x9820, 0x9823, 0x9826, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x982B, 0x982E, 0x982F, /* E8A0 */ + 0x9830, 0x9832, 0x9833, 0x9835, + 0x9825, 0x983E, 0x9844, 0x9847, + 0x984A, 0x9851, 0x9852, 0x9853, + 0x9856, 0x9857, 0x9859, 0x985A, + 0x9862, 0x9863, 0x9865, 0x9866, + 0x986A, 0x986C, 0x98AB, 0x98AD, + 0x98AE, 0x98B0, 0x98B4, 0x98B7, + 0x98B8, 0x98BA, 0x98BB, 0x98BF, /* E8C0 */ + 0x98C2, 0x98C5, 0x98C8, 0x98CC, + 0x98E1, 0x98E3, 0x98E5, 0x98E6, + 0x98E7, 0x98EA, 0x98F3, 0x98F6, + 0x9902, 0x9907, 0x9908, 0x9911, + 0x9915, 0x9916, 0x9917, 0x991A, + 0x991B, 0x991C, 0x991F, 0x9922, + 0x9926, 0x9927, 0x992B, 0x9931, + 0x9932, 0x9933, 0x9934, 0x9935, /* E8E0 */ + 0x9939, 0x993A, 0x993B, 0x993C, + 0x9940, 0x9941, 0x9946, 0x9947, + 0x9948, 0x994D, 0x994E, 0x9954, + 0x9958, 0x9959, 0x995B, 0x995C, + 0x995E, 0x995F, 0x9960, 0x999B, + 0x999D, 0x999F, 0x99A6, 0x99B0, + 0x99B1, 0x99B2, 0x99B5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x99B9, 0x99BA, 0x99BD, /* E9A0 */ + 0x99BF, 0x99C3, 0x99C9, 0x99D3, + 0x99D4, 0x99D9, 0x99DA, 0x99DC, + 0x99DE, 0x99E7, 0x99EA, 0x99EB, + 0x99EC, 0x99F0, 0x99F4, 0x99F5, + 0x99F9, 0x99FD, 0x99FE, 0x9A02, + 0x9A03, 0x9A04, 0x9A0B, 0x9A0C, + 0x9A10, 0x9A11, 0x9A16, 0x9A1E, + 0x9A20, 0x9A22, 0x9A23, 0x9A24, /* E9C0 */ + 0x9A27, 0x9A2D, 0x9A2E, 0x9A33, + 0x9A35, 0x9A36, 0x9A38, 0x9A47, + 0x9A41, 0x9A44, 0x9A4A, 0x9A4B, + 0x9A4C, 0x9A4E, 0x9A51, 0x9A54, + 0x9A56, 0x9A5D, 0x9AAA, 0x9AAC, + 0x9AAE, 0x9AAF, 0x9AB2, 0x9AB4, + 0x9AB5, 0x9AB6, 0x9AB9, 0x9ABB, + 0x9ABE, 0x9ABF, 0x9AC1, 0x9AC3, /* E9E0 */ + 0x9AC6, 0x9AC8, 0x9ACE, 0x9AD0, + 0x9AD2, 0x9AD5, 0x9AD6, 0x9AD7, + 0x9ADB, 0x9ADC, 0x9AE0, 0x9AE4, + 0x9AE5, 0x9AE7, 0x9AE9, 0x9AEC, + 0x9AF2, 0x9AF3, 0x9AF5, 0x9AF9, + 0x9AFA, 0x9AFD, 0x9AFF, 0x9B00, + 0x9B01, 0x9B02, 0x9B03, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9B04, 0x9B05, 0x9B08, /* EAA0 */ + 0x9B09, 0x9B0B, 0x9B0C, 0x9B0D, + 0x9B0E, 0x9B10, 0x9B12, 0x9B16, + 0x9B19, 0x9B1B, 0x9B1C, 0x9B20, + 0x9B26, 0x9B2B, 0x9B2D, 0x9B33, + 0x9B34, 0x9B35, 0x9B37, 0x9B39, + 0x9B3A, 0x9B3D, 0x9B48, 0x9B4B, + 0x9B4C, 0x9B55, 0x9B56, 0x9B57, + 0x9B5B, 0x9B5E, 0x9B61, 0x9B63, /* EAC0 */ + 0x9B65, 0x9B66, 0x9B68, 0x9B6A, + 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, + 0x9B73, 0x9B75, 0x9B77, 0x9B78, + 0x9B79, 0x9B7F, 0x9B80, 0x9B84, + 0x9B85, 0x9B86, 0x9B87, 0x9B89, + 0x9B8A, 0x9B8B, 0x9B8D, 0x9B8F, + 0x9B90, 0x9B94, 0x9B9A, 0x9B9D, + 0x9B9E, 0x9BA6, 0x9BA7, 0x9BA9, /* EAE0 */ + 0x9BAC, 0x9BB0, 0x9BB1, 0x9BB2, + 0x9BB7, 0x9BB8, 0x9BBB, 0x9BBC, + 0x9BBE, 0x9BBF, 0x9BC1, 0x9BC7, + 0x9BC8, 0x9BCE, 0x9BD0, 0x9BD7, + 0x9BD8, 0x9BDD, 0x9BDF, 0x9BE5, + 0x9BE7, 0x9BEA, 0x9BEB, 0x9BEF, + 0x9BF3, 0x9BF7, 0x9BF8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9BF9, 0x9BFA, 0x9BFD, /* EBA0 */ + 0x9BFF, 0x9C00, 0x9C02, 0x9C0B, + 0x9C0F, 0x9C11, 0x9C16, 0x9C18, + 0x9C19, 0x9C1A, 0x9C1C, 0x9C1E, + 0x9C22, 0x9C23, 0x9C26, 0x9C27, + 0x9C28, 0x9C29, 0x9C2A, 0x9C31, + 0x9C35, 0x9C36, 0x9C37, 0x9C3D, + 0x9C41, 0x9C43, 0x9C44, 0x9C45, + 0x9C49, 0x9C4A, 0x9C4E, 0x9C4F, /* EBC0 */ + 0x9C50, 0x9C53, 0x9C54, 0x9C56, + 0x9C58, 0x9C5B, 0x9C5D, 0x9C5E, + 0x9C5F, 0x9C63, 0x9C69, 0x9C6A, + 0x9C5C, 0x9C6B, 0x9C68, 0x9C6E, + 0x9C70, 0x9C72, 0x9C75, 0x9C77, + 0x9C7B, 0x9CE6, 0x9CF2, 0x9CF7, + 0x9CF9, 0x9D0B, 0x9D02, 0x9D11, + 0x9D17, 0x9D18, 0x9D1C, 0x9D1D, /* EBE0 */ + 0x9D1E, 0x9D2F, 0x9D30, 0x9D32, + 0x9D33, 0x9D34, 0x9D3A, 0x9D3C, + 0x9D45, 0x9D3D, 0x9D42, 0x9D43, + 0x9D47, 0x9D4A, 0x9D53, 0x9D54, + 0x9D5F, 0x9D63, 0x9D62, 0x9D65, + 0x9D69, 0x9D6A, 0x9D6B, 0x9D70, + 0x9D76, 0x9D77, 0x9D7B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9D7C, 0x9D7E, 0x9D83, /* ECA0 */ + 0x9D84, 0x9D86, 0x9D8A, 0x9D8D, + 0x9D8E, 0x9D92, 0x9D93, 0x9D95, + 0x9D96, 0x9D97, 0x9D98, 0x9DA1, + 0x9DAA, 0x9DAC, 0x9DAE, 0x9DB1, + 0x9DB5, 0x9DB9, 0x9DBC, 0x9DBF, + 0x9DC3, 0x9DC7, 0x9DC9, 0x9DCA, + 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, + 0x9DDA, 0x9DDE, 0x9DDF, 0x9DE0, /* ECC0 */ + 0x9DE5, 0x9DE7, 0x9DE9, 0x9DEB, + 0x9DEE, 0x9DF0, 0x9DF3, 0x9DF4, + 0x9DFE, 0x9E0A, 0x9E02, 0x9E07, + 0x9E0E, 0x9E10, 0x9E11, 0x9E12, + 0x9E15, 0x9E16, 0x9E19, 0x9E1C, + 0x9E1D, 0x9E7A, 0x9E7B, 0x9E7C, + 0x9E80, 0x9E82, 0x9E83, 0x9E84, + 0x9E85, 0x9E87, 0x9E8E, 0x9E8F, /* ECE0 */ + 0x9E96, 0x9E98, 0x9E9B, 0x9E9E, + 0x9EA4, 0x9EA8, 0x9EAC, 0x9EAE, + 0x9EAF, 0x9EB0, 0x9EB3, 0x9EB4, + 0x9EB5, 0x9EC6, 0x9EC8, 0x9ECB, + 0x9ED5, 0x9EDF, 0x9EE4, 0x9EE7, + 0x9EEC, 0x9EED, 0x9EEE, 0x9EF0, + 0x9EF1, 0x9EF2, 0x9EF5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x9EF8, 0x9EFF, 0x9F02, /* EDA0 */ + 0x9F03, 0x9F09, 0x9F0F, 0x9F10, + 0x9F11, 0x9F12, 0x9F14, 0x9F16, + 0x9F17, 0x9F19, 0x9F1A, 0x9F1B, + 0x9F1F, 0x9F22, 0x9F26, 0x9F2A, + 0x9F2B, 0x9F2F, 0x9F31, 0x9F32, + 0x9F34, 0x9F37, 0x9F39, 0x9F3A, + 0x9F3C, 0x9F3D, 0x9F3F, 0x9F41, + 0x9F43, 0x9F44, 0x9F45, 0x9F46, /* EDC0 */ + 0x9F47, 0x9F53, 0x9F55, 0x9F56, + 0x9F57, 0x9F58, 0x9F5A, 0x9F5D, + 0x9F5E, 0x9F68, 0x9F69, 0x9F6D, + 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, + 0x9F73, 0x9F75, 0x9F7A, 0x9F7D, + 0x9F8F, 0x9F90, 0x9F91, 0x9F92, + 0x9F94, 0x9F96, 0x9F97, 0x9F9E, + 0x9FA1, 0x9FA2, 0x9FA3, 0x9FA5, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE3AC, 0xE3AD, 0xE3AE, /* F5A0 */ + 0xE3AF, 0xE3B0, 0xE3B1, 0xE3B2, + 0xE3B3, 0xE3B4, 0xE3B5, 0xE3B6, + 0xE3B7, 0xE3B8, 0xE3B9, 0xE3BA, + 0xE3BB, 0xE3BC, 0xE3BD, 0xE3BE, + 0xE3BF, 0xE3C0, 0xE3C1, 0xE3C2, + 0xE3C3, 0xE3C4, 0xE3C5, 0xE3C6, + 0xE3C7, 0xE3C8, 0xE3C9, 0xE3CA, + 0xE3CB, 0xE3CC, 0xE3CD, 0xE3CE, /* F5C0 */ + 0xE3CF, 0xE3D0, 0xE3D1, 0xE3D2, + 0xE3D3, 0xE3D4, 0xE3D5, 0xE3D6, + 0xE3D7, 0xE3D8, 0xE3D9, 0xE3DA, + 0xE3DB, 0xE3DC, 0xE3DD, 0xE3DE, + 0xE3DF, 0xE3E0, 0xE3E1, 0xE3E2, + 0xE3E3, 0xE3E4, 0xE3E5, 0xE3E6, + 0xE3E7, 0xE3E8, 0xE3E9, 0xE3EA, + 0xE3EB, 0xE3EC, 0xE3ED, 0xE3EE, /* F5E0 */ + 0xE3EF, 0xE3F0, 0xE3F1, 0xE3F2, + 0xE3F3, 0xE3F4, 0xE3F5, 0xE3F6, + 0xE3F7, 0xE3F8, 0xE3F9, 0xE3FA, + 0xE3FB, 0xE3FC, 0xE3FD, 0xE3FE, + 0xE3FF, 0xE400, 0xE401, 0xE402, + 0xE403, 0xE404, 0xE405, 0xE406, + 0xE407, 0xE408, 0xE409, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE40A, 0xE40B, 0xE40C, /* F6A0 */ + 0xE40D, 0xE40E, 0xE40F, 0xE410, + 0xE411, 0xE412, 0xE413, 0xE414, + 0xE415, 0xE416, 0xE417, 0xE418, + 0xE419, 0xE41A, 0xE41B, 0xE41C, + 0xE41D, 0xE41E, 0xE41F, 0xE420, + 0xE421, 0xE422, 0xE423, 0xE424, + 0xE425, 0xE426, 0xE427, 0xE428, + 0xE429, 0xE42A, 0xE42B, 0xE42C, /* F6C0 */ + 0xE42D, 0xE42E, 0xE42F, 0xE430, + 0xE431, 0xE432, 0xE433, 0xE434, + 0xE435, 0xE436, 0xE437, 0xE438, + 0xE439, 0xE43A, 0xE43B, 0xE43C, + 0xE43D, 0xE43E, 0xE43F, 0xE440, + 0xE441, 0xE442, 0xE443, 0xE444, + 0xE445, 0xE446, 0xE447, 0xE448, + 0xE449, 0xE44A, 0xE44B, 0xE44C, /* F6E0 */ + 0xE44D, 0xE44E, 0xE44F, 0xE450, + 0xE451, 0xE452, 0xE453, 0xE454, + 0xE455, 0xE456, 0xE457, 0xE458, + 0xE459, 0xE45A, 0xE45B, 0xE45C, + 0xE45D, 0xE45E, 0xE45F, 0xE460, + 0xE461, 0xE462, 0xE463, 0xE464, + 0xE465, 0xE466, 0xE467, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE468, 0xE469, 0xE46A, /* F7A0 */ + 0xE46B, 0xE46C, 0xE46D, 0xE46E, + 0xE46F, 0xE470, 0xE471, 0xE472, + 0xE473, 0xE474, 0xE475, 0xE476, + 0xE477, 0xE478, 0xE479, 0xE47A, + 0xE47B, 0xE47C, 0xE47D, 0xE47E, + 0xE47F, 0xE480, 0xE481, 0xE482, + 0xE483, 0xE484, 0xE485, 0xE486, + 0xE487, 0xE488, 0xE489, 0xE48A, /* F7C0 */ + 0xE48B, 0xE48C, 0xE48D, 0xE48E, + 0xE48F, 0xE490, 0xE491, 0xE492, + 0xE493, 0xE494, 0xE495, 0xE496, + 0xE497, 0xE498, 0xE499, 0xE49A, + 0xE49B, 0xE49C, 0xE49D, 0xE49E, + 0xE49F, 0xE4A0, 0xE4A1, 0xE4A2, + 0xE4A3, 0xE4A4, 0xE4A5, 0xE4A6, + 0xE4A7, 0xE4A8, 0xE4A9, 0xE4AA, /* F7E0 */ + 0xE4AB, 0xE4AC, 0xE4AD, 0xE4AE, + 0xE4AF, 0xE4B0, 0xE4B1, 0xE4B2, + 0xE4B3, 0xE4B4, 0xE4B5, 0xE4B6, + 0xE4B7, 0xE4B8, 0xE4B9, 0xE4BA, + 0xE4BB, 0xE4BC, 0xE4BD, 0xE4BE, + 0xE4BF, 0xE4C0, 0xE4C1, 0xE4C2, + 0xE4C3, 0xE4C4, 0xE4C5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE4C6, 0xE4C7, 0xE4C8, /* F8A0 */ + 0xE4C9, 0xE4CA, 0xE4CB, 0xE4CC, + 0xE4CD, 0xE4CE, 0xE4CF, 0xE4D0, + 0xE4D1, 0xE4D2, 0xE4D3, 0xE4D4, + 0xE4D5, 0xE4D6, 0xE4D7, 0xE4D8, + 0xE4D9, 0xE4DA, 0xE4DB, 0xE4DC, + 0xE4DD, 0xE4DE, 0xE4DF, 0xE4E0, + 0xE4E1, 0xE4E2, 0xE4E3, 0xE4E4, + 0xE4E5, 0xE4E6, 0xE4E7, 0xE4E8, /* F8C0 */ + 0xE4E9, 0xE4EA, 0xE4EB, 0xE4EC, + 0xE4ED, 0xE4EE, 0xE4EF, 0xE4F0, + 0xE4F1, 0xE4F2, 0xE4F3, 0xE4F4, + 0xE4F5, 0xE4F6, 0xE4F7, 0xE4F8, + 0xE4F9, 0xE4FA, 0xE4FB, 0xE4FC, + 0xE4FD, 0xE4FE, 0xE4FF, 0xE500, + 0xE501, 0xE502, 0xE503, 0xE504, + 0xE505, 0xE506, 0xE507, 0xE508, /* F8E0 */ + 0xE509, 0xE50A, 0xE50B, 0xE50C, + 0xE50D, 0xE50E, 0xE50F, 0xE510, + 0xE511, 0xE512, 0xE513, 0xE514, + 0xE515, 0xE516, 0xE517, 0xE518, + 0xE519, 0xE51A, 0xE51B, 0xE51C, + 0xE51D, 0xE51E, 0xE51F, 0xE520, + 0xE521, 0xE522, 0xE523, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE524, 0xE525, 0xE526, /* F9A0 */ + 0xE527, 0xE528, 0xE529, 0xE52A, + 0xE52B, 0xE52C, 0xE52D, 0xE52E, + 0xE52F, 0xE530, 0xE531, 0xE532, + 0xE533, 0xE534, 0xE535, 0xE536, + 0xE537, 0xE538, 0xE539, 0xE53A, + 0xE53B, 0xE53C, 0xE53D, 0xE53E, + 0xE53F, 0xE540, 0xE541, 0xE542, + 0xE543, 0xE544, 0xE545, 0xE546, /* F9C0 */ + 0xE547, 0xE548, 0xE549, 0xE54A, + 0xE54B, 0xE54C, 0xE54D, 0xE54E, + 0xE54F, 0xE550, 0xE551, 0xE552, + 0xE553, 0xE554, 0xE555, 0xE556, + 0xE557, 0xE558, 0xE559, 0xE55A, + 0xE55B, 0xE55C, 0xE55D, 0xE55E, + 0xE55F, 0xE560, 0xE561, 0xE562, + 0xE563, 0xE564, 0xE565, 0xE566, /* F9E0 */ + 0xE567, 0xE568, 0xE569, 0xE56A, + 0xE56B, 0xE56C, 0xE56D, 0xE56E, + 0xE56F, 0xE570, 0xE571, 0xE572, + 0xE573, 0xE574, 0xE575, 0xE576, + 0xE577, 0xE578, 0xE579, 0xE57A, + 0xE57B, 0xE57C, 0xE57D, 0xE57E, + 0xE57F, 0xE580, 0xE581, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE582, 0xE583, 0xE584, /* FAA0 */ + 0xE585, 0xE586, 0xE587, 0xE588, + 0xE589, 0xE58A, 0xE58B, 0xE58C, + 0xE58D, 0xE58E, 0xE58F, 0xE590, + 0xE591, 0xE592, 0xE593, 0xE594, + 0xE595, 0xE596, 0xE597, 0xE598, + 0xE599, 0xE59A, 0xE59B, 0xE59C, + 0xE59D, 0xE59E, 0xE59F, 0xE5A0, + 0xE5A1, 0xE5A2, 0xE5A3, 0xE5A4, /* FAC0 */ + 0xE5A5, 0xE5A6, 0xE5A7, 0xE5A8, + 0xE5A9, 0xE5AA, 0xE5AB, 0xE5AC, + 0xE5AD, 0xE5AE, 0xE5AF, 0xE5B0, + 0xE5B1, 0xE5B2, 0xE5B3, 0xE5B4, + 0xE5B5, 0xE5B6, 0xE5B7, 0xE5B8, + 0xE5B9, 0xE5BA, 0xE5BB, 0xE5BC, + 0xE5BD, 0xE5BE, 0xE5BF, 0xE5C0, + 0xE5C1, 0xE5C2, 0xE5C3, 0xE5C4, /* FAE0 */ + 0xE5C5, 0xE5C6, 0xE5C7, 0xE5C8, + 0xE5C9, 0xE5CA, 0xE5CB, 0xE5CC, + 0xE5CD, 0xE5CE, 0xE5CF, 0xE5D0, + 0xE5D1, 0xE5D2, 0xE5D3, 0xE5D4, + 0xE5D5, 0xE5D6, 0xE5D7, 0xE5D8, + 0xE5D9, 0xE5DA, 0xE5DB, 0xE5DC, + 0xE5DD, 0xE5DE, 0xE5DF, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE5E0, 0xE5E1, 0xE5E2, /* FBA0 */ + 0xE5E3, 0xE5E4, 0xE5E5, 0xE5E6, + 0xE5E7, 0xE5E8, 0xE5E9, 0xE5EA, + 0xE5EB, 0xE5EC, 0xE5ED, 0xE5EE, + 0xE5EF, 0xE5F0, 0xE5F1, 0xE5F2, + 0xE5F3, 0xE5F4, 0xE5F5, 0xE5F6, + 0xE5F7, 0xE5F8, 0xE5F9, 0xE5FA, + 0xE5FB, 0xE5FC, 0xE5FD, 0xE5FE, + 0xE5FF, 0xE600, 0xE601, 0xE602, /* FBC0 */ + 0xE603, 0xE604, 0xE605, 0xE606, + 0xE607, 0xE608, 0xE609, 0xE60A, + 0xE60B, 0xE60C, 0xE60D, 0xE60E, + 0xE60F, 0xE610, 0xE611, 0xE612, + 0xE613, 0xE614, 0xE615, 0xE616, + 0xE617, 0xE618, 0xE619, 0xE61A, + 0xE61B, 0xE61C, 0xE61D, 0xE61E, + 0xE61F, 0xE620, 0xE621, 0xE622, /* FBE0 */ + 0xE623, 0xE624, 0xE625, 0xE626, + 0xE627, 0xE628, 0xE629, 0xE62A, + 0xE62B, 0xE62C, 0xE62D, 0xE62E, + 0xE62F, 0xE630, 0xE631, 0xE632, + 0xE633, 0xE634, 0xE635, 0xE636, + 0xE637, 0xE638, 0xE639, 0xE63A, + 0xE63B, 0xE63C, 0xE63D, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE63E, 0xE63F, 0xE640, /* FCA0 */ + 0xE641, 0xE642, 0xE643, 0xE644, + 0xE645, 0xE646, 0xE647, 0xE648, + 0xE649, 0xE64A, 0xE64B, 0xE64C, + 0xE64D, 0xE64E, 0xE64F, 0xE650, + 0xE651, 0xE652, 0xE653, 0xE654, + 0xE655, 0xE656, 0xE657, 0xE658, + 0xE659, 0xE65A, 0xE65B, 0xE65C, + 0xE65D, 0xE65E, 0xE65F, 0xE660, /* FCC0 */ + 0xE661, 0xE662, 0xE663, 0xE664, + 0xE665, 0xE666, 0xE667, 0xE668, + 0xE669, 0xE66A, 0xE66B, 0xE66C, + 0xE66D, 0xE66E, 0xE66F, 0xE670, + 0xE671, 0xE672, 0xE673, 0xE674, + 0xE675, 0xE676, 0xE677, 0xE678, + 0xE679, 0xE67A, 0xE67B, 0xE67C, + 0xE67D, 0xE67E, 0xE67F, 0xE680, /* FCE0 */ + 0xE681, 0xE682, 0xE683, 0xE684, + 0xE685, 0xE686, 0xE687, 0xE688, + 0xE689, 0xE68A, 0xE68B, 0xE68C, + 0xE68D, 0xE68E, 0xE68F, 0xE690, + 0xE691, 0xE692, 0xE693, 0xE694, + 0xE695, 0xE696, 0xE697, 0xE698, + 0xE699, 0xE69A, 0xE69B, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE69C, 0xE69D, 0xE69E, /* FDA0 */ + 0xE69F, 0xE6A0, 0xE6A1, 0xE6A2, + 0xE6A3, 0xE6A4, 0xE6A5, 0xE6A6, + 0xE6A7, 0xE6A8, 0xE6A9, 0xE6AA, + 0xE6AB, 0xE6AC, 0xE6AD, 0xE6AE, + 0xE6AF, 0xE6B0, 0xE6B1, 0xE6B2, + 0xE6B3, 0xE6B4, 0xE6B5, 0xE6B6, + 0xE6B7, 0xE6B8, 0xE6B9, 0xE6BA, + 0xE6BB, 0xE6BC, 0xE6BD, 0xE6BE, /* FDC0 */ + 0xE6BF, 0xE6C0, 0xE6C1, 0xE6C2, + 0xE6C3, 0xE6C4, 0xE6C5, 0xE6C6, + 0xE6C7, 0xE6C8, 0xE6C9, 0xE6CA, + 0xE6CB, 0xE6CC, 0xE6CD, 0xE6CE, + 0xE6CF, 0xE6D0, 0xE6D1, 0xE6D2, + 0xE6D3, 0xE6D4, 0xE6D5, 0xE6D6, + 0xE6D7, 0xE6D8, 0xE6D9, 0xE6DA, + 0xE6DB, 0xE6DC, 0xE6DD, 0xE6DE, /* FDE0 */ + 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2, + 0xE6E3, 0xE6E4, 0xE6E5, 0xE6E6, + 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA, + 0xE6EB, 0xE6EC, 0xE6ED, 0xE6EE, + 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2, + 0xE6F3, 0xE6F4, 0xE6F5, 0xE6F6, + 0xE6F7, 0xE6F8, 0xE6F9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xE6FA, 0xE6FB, 0xE6FC, /* FEA0 */ + 0xE6FD, 0xE6FE, 0xE6FF, 0xE700, + 0xE701, 0xE702, 0xE703, 0xE704, + 0xE705, 0xE706, 0xE707, 0xE708, + 0xE709, 0xE70A, 0xE70B, 0xE70C, + 0xE70D, 0xE70E, 0xE70F, 0xE710, + 0xE711, 0xE712, 0xE713, 0xE714, + 0xE715, 0xE716, 0xE717, 0xE718, + 0xE719, 0xE71A, 0xE71B, 0xE71C, /* FEC0 */ + 0xE71D, 0xE71E, 0xE71F, 0xE720, + 0xE721, 0xE722, 0xE723, 0xE724, + 0xE725, 0xE726, 0xE727, 0xE728, + 0xE729, 0xE72A, 0xE72B, 0xE72C, + 0xE72D, 0xE72E, 0xE72F, 0xE730, + 0xE731, 0xE732, 0xE733, 0xE734, + 0xE735, 0xE736, 0xE737, 0xE738, + 0xE739, 0xE73A, 0xE73B, 0xE73C, /* FEE0 */ + 0xE73D, 0xE73E, 0xE73F, 0xE740, + 0xE741, 0xE742, 0xE743, 0xE744, + 0xE745, 0xE746, 0xE747, 0xE748, + 0xE749, 0xE74A, 0xE74B, 0xE74C, + 0xE74D, 0xE74E, 0xE74F, 0xE750, + 0xE751, 0xE752, 0xE753, 0xE754, + 0xE755, 0xE756, 0xE757, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +static const uint16 unicode_to_jisx0212_eucjp[65536]= +{ + 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ + 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, + 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, + 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, + 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */ + 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x002B, + 0x002C, 0x002D, 0x002E, 0x002F, + 0x0030, 0x0031, 0x0032, 0x0033, + 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, + 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */ + 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, + 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, + 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, + 0x005C, 0x005D, 0x005E, 0x005F, + 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */ + 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006A, 0x006B, + 0x006C, 0x006D, 0x006E, 0x006F, + 0x0070, 0x0071, 0x0072, 0x0073, + 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007A, 0x007B, + 0x007C, 0x007D, 0x007E, 0x007F, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xA2C2), 0x0000, 0x0000, /* 00A0 */ + MB2(0xA2F0), 0x0000, MB2(0xA2C3), 0x0000, + 0x0000, MB2(0xA2ED), MB2(0xA2EC), 0x0000, + 0x0000, 0x0000, MB2(0xA2EE), MB2(0xA2B4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2B1), 0x0000, MB2(0xA2EB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xA2C4), + MB2(0xAAA2), MB2(0xAAA1), MB2(0xAAA4), MB2(0xAAAA), /* 00C0 */ + MB2(0xAAA3), MB2(0xAAA9), MB2(0xA9A1), MB2(0xAAAE), + MB2(0xAAB2), MB2(0xAAB1), MB2(0xAAB4), MB2(0xAAB3), + MB2(0xAAC0), MB2(0xAABF), MB2(0xAAC2), MB2(0xAAC1), + 0x0000, MB2(0xAAD0), MB2(0xAAD2), MB2(0xAAD1), + MB2(0xAAD4), MB2(0xAAD8), MB2(0xAAD3), 0x0000, + MB2(0xA9AC), MB2(0xAAE3), MB2(0xAAE2), MB2(0xAAE5), + MB2(0xAAE4), MB2(0xAAF2), MB2(0xA9B0), MB2(0xA9CE), + MB2(0xABA2), MB2(0xABA1), MB2(0xABA4), MB2(0xABAA), /* 00E0 */ + MB2(0xABA3), MB2(0xABA9), MB2(0xA9C1), MB2(0xABAE), + MB2(0xABB2), MB2(0xABB1), MB2(0xABB4), MB2(0xABB3), + MB2(0xABC0), MB2(0xABBF), MB2(0xABC2), MB2(0xABC1), + MB2(0xA9C3), MB2(0xABD0), MB2(0xABD2), MB2(0xABD1), + MB2(0xABD4), MB2(0xABD8), MB2(0xABD3), 0x0000, + MB2(0xA9CC), MB2(0xABE3), MB2(0xABE2), MB2(0xABE5), + MB2(0xABE4), MB2(0xABF2), MB2(0xA9D0), MB2(0xABF3), + MB2(0xAAA7), MB2(0xABA7), MB2(0xAAA5), MB2(0xABA5), /* 0100 */ + MB2(0xAAA8), MB2(0xABA8), MB2(0xAAAB), MB2(0xABAB), + MB2(0xAAAC), MB2(0xABAC), MB2(0xAAAF), MB2(0xABAF), + MB2(0xAAAD), MB2(0xABAD), MB2(0xAAB0), MB2(0xABB0), + MB2(0xA9A2), MB2(0xA9C2), MB2(0xAAB7), MB2(0xABB7), + 0x0000, 0x0000, MB2(0xAAB6), MB2(0xABB6), + MB2(0xAAB8), MB2(0xABB8), MB2(0xAAB5), MB2(0xABB5), + MB2(0xAABA), MB2(0xABBA), MB2(0xAABB), MB2(0xABBB), + MB2(0xAABD), MB2(0xABBD), MB2(0xAABC), 0x0000, /* 0120 */ + MB2(0xAABE), MB2(0xABBE), MB2(0xA9A4), MB2(0xA9C4), + MB2(0xAAC7), MB2(0xABC7), MB2(0xAAC5), MB2(0xABC5), + 0x0000, 0x0000, MB2(0xAAC6), MB2(0xABC6), + MB2(0xAAC4), MB2(0xA9C5), MB2(0xA9A6), MB2(0xA9C6), + MB2(0xAAC8), MB2(0xABC8), MB2(0xAAC9), MB2(0xABC9), + MB2(0xA9C7), MB2(0xAACA), MB2(0xABCA), MB2(0xAACC), + MB2(0xABCC), MB2(0xAACB), MB2(0xABCB), MB2(0xA9A9), + MB2(0xA9C9), MB2(0xA9A8), MB2(0xA9C8), MB2(0xAACD), /* 0140 */ + MB2(0xABCD), MB2(0xAACF), MB2(0xABCF), MB2(0xAACE), + MB2(0xABCE), MB2(0xA9CA), MB2(0xA9AB), MB2(0xA9CB), + MB2(0xAAD7), MB2(0xABD7), 0x0000, 0x0000, + MB2(0xAAD6), MB2(0xABD6), MB2(0xA9AD), MB2(0xA9CD), + MB2(0xAAD9), MB2(0xABD9), MB2(0xAADB), MB2(0xABDB), + MB2(0xAADA), MB2(0xABDA), MB2(0xAADC), MB2(0xABDC), + MB2(0xAADD), MB2(0xABDD), MB2(0xAADF), MB2(0xABDF), + MB2(0xAADE), MB2(0xABDE), MB2(0xAAE1), MB2(0xABE1), /* 0160 */ + MB2(0xAAE0), MB2(0xABE0), MB2(0xA9AF), MB2(0xA9CF), + MB2(0xAAEC), MB2(0xABEC), MB2(0xAAE9), MB2(0xABE9), + MB2(0xAAE6), MB2(0xABE6), MB2(0xAAEB), MB2(0xABEB), + MB2(0xAAE8), MB2(0xABE8), MB2(0xAAEA), MB2(0xABEA), + MB2(0xAAF1), MB2(0xABF1), MB2(0xAAF4), MB2(0xABF4), + MB2(0xAAF3), MB2(0xAAF5), MB2(0xABF5), MB2(0xAAF7), + MB2(0xABF7), MB2(0xAAF6), MB2(0xABF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xAAA6), MB2(0xABA6), MB2(0xAAC3), + MB2(0xABC3), MB2(0xAAD5), MB2(0xABD5), MB2(0xAAE7), + MB2(0xABE7), MB2(0xAAF0), MB2(0xABF0), MB2(0xAAED), + MB2(0xABED), MB2(0xAAEF), MB2(0xABEF), MB2(0xAAEE), + MB2(0xABEE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xABB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xA2B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xA2AF), MB2(0xA2B2), MB2(0xA2B6), MB2(0xA2B5), + 0x0000, MB2(0xA2B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */ + MB2(0xA2B8), MB2(0xA2B9), MB2(0xA6E1), 0x0000, + MB2(0xA6E2), MB2(0xA6E3), MB2(0xA6E4), 0x0000, + MB2(0xA6E7), 0x0000, MB2(0xA6E9), MB2(0xA6EC), + MB2(0xA6F6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA6E5), MB2(0xA6EA), + MB2(0xA6F1), MB2(0xA6F2), MB2(0xA6F3), MB2(0xA6F4), + MB2(0xA6FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA6F8), 0x0000, /* 03C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA6F5), MB2(0xA6FA), + MB2(0xA6F7), MB2(0xA6F9), MB2(0xA6FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA7C2), MB2(0xA7C3), /* 0400 */ + MB2(0xA7C4), MB2(0xA7C5), MB2(0xA7C6), MB2(0xA7C7), + MB2(0xA7C8), MB2(0xA7C9), MB2(0xA7CA), MB2(0xA7CB), + MB2(0xA7CC), 0x0000, MB2(0xA7CD), MB2(0xA7CE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA7F2), MB2(0xA7F3), + MB2(0xA7F4), MB2(0xA7F5), MB2(0xA7F6), MB2(0xA7F7), + MB2(0xA7F8), MB2(0xA7F9), MB2(0xA7FA), MB2(0xA7FB), + MB2(0xA7FC), 0x0000, MB2(0xA7FD), MB2(0xA7FE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2F1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xA2EF), 0x0000, /* 2120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0A1), 0x0000, /* 4E00 */ + MB2(0xB0A2), MB2(0xB0A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0A4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0A5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0A6), + 0x0000, 0x0000, 0x0000, MB2(0xB0A7), /* 4E20 */ + MB2(0xB0A8), 0x0000, 0x0000, 0x0000, + MB2(0xB0A9), 0x0000, 0x0000, MB2(0xB0AA), + 0x0000, 0x0000, MB2(0xB0AB), MB2(0xB0AC), + MB2(0xB0AD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0AF), MB2(0xB0B0), 0x0000, 0x0000, /* 4E40 */ + MB2(0xB0B1), 0x0000, 0x0000, MB2(0xB0B2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0B4), 0x0000, + MB2(0xB0B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0B6), /* 4E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0B7), MB2(0xB0B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0B9), MB2(0xB0BA), 0x0000, 0x0000, + 0x0000, MB2(0xB0BB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0BC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0BE), MB2(0xB0BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0C2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0C3), /* 4EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0C5), MB2(0xB0C6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0C7), MB2(0xB0C8), MB2(0xB0C9), 0x0000, /* 4EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0CB), + 0x0000, MB2(0xB0CC), 0x0000, MB2(0xB0CD), + 0x0000, MB2(0xB0CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB0CF), MB2(0xB0D0), MB2(0xB0D1), + MB2(0xB0D2), 0x0000, MB2(0xB0D3), MB2(0xB0D4), /* 4F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0D5), 0x0000, 0x0000, MB2(0xB0D6), + MB2(0xB0D7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0D8), 0x0000, + 0x0000, MB2(0xB0D9), MB2(0xB0DA), MB2(0xB0DB), + 0x0000, MB2(0xB0DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0DD), 0x0000, + 0x0000, MB2(0xB0DE), 0x0000, MB2(0xB0E0), + 0x0000, MB2(0xB0E1), 0x0000, MB2(0xB0E2), + 0x0000, MB2(0xB0E3), 0x0000, MB2(0xB0E4), + 0x0000, 0x0000, MB2(0xB0E5), 0x0000, + MB2(0xB0E6), 0x0000, MB2(0xB0E7), 0x0000, /* 4F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB0E8), MB2(0xB0E9), 0x0000, MB2(0xB0EA), + MB2(0xB0EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0EC), 0x0000, + MB2(0xB0ED), 0x0000, MB2(0xB0EE), 0x0000, + MB2(0xB0EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F0), + MB2(0xB0DF), 0x0000, 0x0000, MB2(0xB0F1), /* 4F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB0F2), 0x0000, + MB2(0xB0F3), 0x0000, MB2(0xB0F4), 0x0000, + 0x0000, MB2(0xB0F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB0F6), + MB2(0xB0F7), MB2(0xB0F8), MB2(0xB0F9), 0x0000, + 0x0000, MB2(0xB0FA), MB2(0xB0FB), 0x0000, + 0x0000, MB2(0xB0FC), MB2(0xB0FD), 0x0000, /* 4F80 */ + MB2(0xB0FE), MB2(0xB1A1), 0x0000, 0x0000, + 0x0000, MB2(0xB1A2), MB2(0xB1A3), 0x0000, + MB2(0xB1A4), 0x0000, MB2(0xB1A5), 0x0000, + MB2(0xB1A6), 0x0000, MB2(0xB1A7), MB2(0xB1A8), + MB2(0xB1A9), 0x0000, 0x0000, MB2(0xB1AA), + 0x0000, MB2(0xB1AB), MB2(0xB1AC), 0x0000, + 0x0000, 0x0000, MB2(0xB1AD), MB2(0xB1AE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1AF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1B0), + 0x0000, MB2(0xB1B1), 0x0000, MB2(0xB1B2), + MB2(0xB1B3), MB2(0xB1B4), MB2(0xB1B5), 0x0000, + MB2(0xB1B6), MB2(0xB1B7), 0x0000, 0x0000, /* 4FC0 */ + 0x0000, MB2(0xB1B8), MB2(0xB1B9), 0x0000, + MB2(0xB1BA), MB2(0xB1BB), 0x0000, MB2(0xB1BC), + MB2(0xB1BD), MB2(0xB1BE), 0x0000, MB2(0xB1BF), + 0x0000, 0x0000, MB2(0xB1C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1C1), 0x0000, 0x0000, 0x0000, + MB2(0xB1C2), 0x0000, MB2(0xB1C3), 0x0000, /* 4FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1C4), 0x0000, MB2(0xB1C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1C6), MB2(0xB1C7), 0x0000, MB2(0xB1C8), + MB2(0xB1C9), MB2(0xB1CA), 0x0000, 0x0000, /* 5000 */ + MB2(0xB1CB), 0x0000, 0x0000, MB2(0xB1CC), + 0x0000, 0x0000, MB2(0xB1CD), 0x0000, + MB2(0xB1CE), 0x0000, MB2(0xB1CF), 0x0000, + MB2(0xB1D0), 0x0000, 0x0000, MB2(0xB1D1), + 0x0000, 0x0000, 0x0000, MB2(0xB1D2), + MB2(0xB1D3), 0x0000, 0x0000, MB2(0xB1D4), + MB2(0xB1D5), MB2(0xB1D6), MB2(0xB1D7), 0x0000, + 0x0000, 0x0000, MB2(0xB1D8), 0x0000, /* 5020 */ + 0x0000, 0x0000, 0x0000, MB2(0xB1D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB1DA), 0x0000, + MB2(0xB1DB), 0x0000, MB2(0xB1DC), MB2(0xB1DD), + 0x0000, MB2(0xB1DE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1F6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB1DF), MB2(0xB1E0), MB2(0xB1E1), 0x0000, /* 5040 */ + 0x0000, MB2(0xB1E2), MB2(0xB1E3), 0x0000, + 0x0000, 0x0000, MB2(0xB1E4), 0x0000, + MB2(0xB1E5), 0x0000, MB2(0xB1E6), 0x0000, + 0x0000, MB2(0xB1E7), MB2(0xB1E8), MB2(0xB1E9), + 0x0000, 0x0000, 0x0000, MB2(0xB1EA), + 0x0000, MB2(0xB1EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB1EC), + MB2(0xB1ED), 0x0000, MB2(0xB1EE), MB2(0xB1EF), /* 5060 */ + 0x0000, 0x0000, MB2(0xB1F0), MB2(0xB1F1), + 0x0000, 0x0000, MB2(0xB1F2), 0x0000, + 0x0000, MB2(0xB1F3), 0x0000, 0x0000, + MB2(0xB1F4), MB2(0xB1F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB1F7), 0x0000, MB2(0xB1F8), /* 5080 */ + MB2(0xB1F9), 0x0000, MB2(0xB1FA), 0x0000, + 0x0000, 0x0000, MB2(0xB1FB), 0x0000, + 0x0000, 0x0000, MB2(0xB1FC), MB2(0xB1FD), + MB2(0xB1FE), 0x0000, MB2(0xB2A1), MB2(0xB2A2), + MB2(0xB2A3), 0x0000, MB2(0xB2A4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2A5), + MB2(0xB2A6), 0x0000, MB2(0xB2A7), MB2(0xB2A8), + MB2(0xB2A9), MB2(0xB2AA), MB2(0xB2AB), 0x0000, /* 50A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2AC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2AD), + MB2(0xB2AE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2AF), MB2(0xB2B0), 0x0000, + 0x0000, MB2(0xB2B1), 0x0000, 0x0000, + MB2(0xB2B2), 0x0000, 0x0000, MB2(0xB2B3), /* 50C0 */ + MB2(0xB2B4), 0x0000, 0x0000, MB2(0xB2B5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2B6), 0x0000, MB2(0xB2B7), 0x0000, + MB2(0xB2B8), 0x0000, 0x0000, MB2(0xB2B9), + MB2(0xB2BA), 0x0000, 0x0000, 0x0000, + MB2(0xB2BB), 0x0000, 0x0000, 0x0000, + MB2(0xB2BC), MB2(0xB2BD), 0x0000, MB2(0xB2BE), + 0x0000, 0x0000, MB2(0xB2BF), 0x0000, /* 50E0 */ + MB2(0xB2C0), 0x0000, MB2(0xB2C1), 0x0000, + MB2(0xB2C2), MB2(0xB2C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2C4), + 0x0000, MB2(0xB2C5), MB2(0xB2D1), 0x0000, + 0x0000, 0x0000, MB2(0xB2C6), 0x0000, + 0x0000, 0x0000, MB2(0xB2C7), 0x0000, + 0x0000, 0x0000, MB2(0xB2C8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2C9), /* 5100 */ + 0x0000, 0x0000, MB2(0xB2CA), MB2(0xB2CB), + MB2(0xB2CC), 0x0000, 0x0000, MB2(0xB2CD), + MB2(0xB2CE), MB2(0xB2CF), MB2(0xB2D0), 0x0000, + MB2(0xB2D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2D3), + 0x0000, MB2(0xB2D4), 0x0000, MB2(0xB2D5), + MB2(0xB2D6), MB2(0xB2D7), MB2(0xB2D8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2D9), /* 5120 */ + 0x0000, 0x0000, 0x0000, MB2(0xB2DA), + MB2(0xB2DB), 0x0000, 0x0000, 0x0000, + MB2(0xB2DC), MB2(0xB2DD), 0x0000, MB2(0xB2DE), + 0x0000, MB2(0xB2DF), 0x0000, MB2(0xB2E0), + MB2(0xB2E1), MB2(0xB2E2), 0x0000, 0x0000, + MB2(0xB2E3), MB2(0xB2E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2E5), 0x0000, /* 5140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2E6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2E7), + 0x0000, 0x0000, 0x0000, MB2(0xB2E8), + 0x0000, MB2(0xB2E9), 0x0000, MB2(0xB2EA), + MB2(0xB2EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2EC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */ + MB2(0xB2ED), 0x0000, MB2(0xB2EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB2EF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F0), /* 5180 */ + MB2(0xB2F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB2F2), + 0x0000, 0x0000, MB2(0xB2F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2F5), 0x0000, 0x0000, + 0x0000, MB2(0xB2F6), 0x0000, MB2(0xB2F7), /* 51A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB2F8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB2F9), 0x0000, MB2(0xB2FA), 0x0000, + MB2(0xB2FB), 0x0000, MB2(0xB2FC), MB2(0xB2FD), + 0x0000, 0x0000, MB2(0xB2FE), 0x0000, /* 51C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3A1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3A2), + 0x0000, MB2(0xB3A3), MB2(0xB3A4), MB2(0xB3A5), + 0x0000, MB2(0xB3A6), 0x0000, 0x0000, + MB2(0xB3A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3A8), 0x0000, + 0x0000, 0x0000, MB2(0xB3A9), 0x0000, /* 51E0 */ + 0x0000, MB2(0xB3AA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3AB), 0x0000, + 0x0000, 0x0000, MB2(0xB3AC), MB2(0xB3AD), + MB2(0xB3AE), 0x0000, 0x0000, MB2(0xB3AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3B0), MB2(0xB3B1), 0x0000, /* 5200 */ + 0x0000, MB2(0xB3B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3B3), MB2(0xB3B4), + 0x0000, MB2(0xB3B5), MB2(0xB3B6), 0x0000, + MB2(0xB3B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3B8), 0x0000, /* 5220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3BA), MB2(0xB3BB), 0x0000, + 0x0000, MB2(0xB3BC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3BD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */ + 0x0000, MB2(0xB3BE), 0x0000, 0x0000, + 0x0000, MB2(0xB3BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3C0), 0x0000, MB2(0xB3C1), + MB2(0xB3C2), 0x0000, MB2(0xB3C3), 0x0000, + MB2(0xB3C4), 0x0000, 0x0000, MB2(0xB3C5), + MB2(0xB3C6), MB2(0xB3C7), 0x0000, 0x0000, /* 5260 */ + 0x0000, 0x0000, MB2(0xB3C8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3CA), + MB2(0xB3CB), MB2(0xB3CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3CD), 0x0000, MB2(0xB3CE), 0x0000, /* 5280 */ + 0x0000, MB2(0xB3CF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3D0), 0x0000, + MB2(0xB3D1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3D2), + 0x0000, MB2(0xB3D3), MB2(0xB3D4), MB2(0xB3D5), + MB2(0xB3D6), 0x0000, MB2(0xB3D7), 0x0000, + MB2(0xB3D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */ + MB2(0xB3D9), MB2(0xB3DA), MB2(0xB3DB), MB2(0xB3DC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3DD), + MB2(0xB3DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3DF), MB2(0xB3E0), + MB2(0xB3E1), 0x0000, MB2(0xB3E2), MB2(0xB3E3), + 0x0000, MB2(0xB3E4), 0x0000, 0x0000, + MB2(0xB3E5), 0x0000, 0x0000, 0x0000, /* 52C0 */ + MB2(0xB3E6), 0x0000, MB2(0xB3E7), 0x0000, + MB2(0xB3E8), 0x0000, 0x0000, 0x0000, + MB2(0xB3E9), 0x0000, 0x0000, MB2(0xB3EA), + 0x0000, MB2(0xB3EB), 0x0000, 0x0000, + MB2(0xB3EC), 0x0000, MB2(0xB3ED), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB3EE), + MB2(0xB3EF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB3F0), 0x0000, 0x0000, /* 52E0 */ + 0x0000, MB2(0xB3F1), 0x0000, 0x0000, + MB2(0xB3F2), MB2(0xB3F3), MB2(0xB3F4), 0x0000, + MB2(0xB3F5), 0x0000, 0x0000, 0x0000, + MB2(0xB3F6), MB2(0xB3F7), 0x0000, 0x0000, + MB2(0xB3F8), 0x0000, MB2(0xB3F9), MB2(0xB3FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB3FB), 0x0000, 0x0000, MB2(0xB3FC), /* 5300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB3FD), MB2(0xB3FE), + MB2(0xB4A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4A2), 0x0000, MB2(0xB4A3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4A4), 0x0000, 0x0000, MB2(0xB4A5), + MB2(0xB4A6), 0x0000, MB2(0xB4A7), MB2(0xB4A8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */ + 0x0000, MB2(0xB4A9), 0x0000, MB2(0xB4AA), + MB2(0xB4AB), MB2(0xB4AC), 0x0000, MB2(0xB4AD), + MB2(0xB4AE), MB2(0xB4AF), 0x0000, 0x0000, + MB2(0xB4B0), 0x0000, MB2(0xB4B1), 0x0000, + 0x0000, MB2(0xB4B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4B3), MB2(0xB4B4), MB2(0xB4B5), 0x0000, + 0x0000, 0x0000, MB2(0xB4B6), 0x0000, /* 5340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4B8), + MB2(0xB4B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4B9), 0x0000, MB2(0xB4BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4BB), 0x0000, MB2(0xB4BC), /* 5360 */ + 0x0000, MB2(0xB4BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4BE), MB2(0xB4BF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4C1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4C2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C3), /* 5380 */ + 0x0000, 0x0000, 0x0000, MB2(0xB4C4), + MB2(0xB4C5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4C6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4C7), + MB2(0xB4C8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4C9), 0x0000, 0x0000, + 0x0000, MB2(0xB4CA), 0x0000, 0x0000, + 0x0000, MB2(0xB4CB), 0x0000, 0x0000, /* 53A0 */ + MB2(0xB4CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4CD), MB2(0xB4CE), + 0x0000, 0x0000, 0x0000, MB2(0xB4CF), + 0x0000, 0x0000, MB2(0xB4D0), 0x0000, + MB2(0xB4D1), MB2(0xB4D2), 0x0000, MB2(0xB4D3), + MB2(0xB4D4), 0x0000, MB2(0xB4D5), 0x0000, + 0x0000, MB2(0xB4D6), 0x0000, 0x0000, + MB2(0xB4D7), 0x0000, 0x0000, 0x0000, /* 53C0 */ + 0x0000, MB2(0xB4D8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4D9), + 0x0000, 0x0000, MB2(0xB4DA), MB2(0xB4DB), + 0x0000, MB2(0xB4DC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4DD), 0x0000, + 0x0000, MB2(0xB4DE), MB2(0xB4DF), 0x0000, + MB2(0xB4E0), 0x0000, 0x0000, 0x0000, /* 53E0 */ + 0x0000, 0x0000, MB2(0xB4E1), MB2(0xB4E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4E3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4E4), 0x0000, /* 5400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4E6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4E7), 0x0000, 0x0000, /* 5420 */ + 0x0000, 0x0000, 0x0000, MB2(0xB4E8), + MB2(0xB4E9), 0x0000, MB2(0xB4EA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4EB), + 0x0000, MB2(0xB4EC), 0x0000, 0x0000, + MB2(0xB4ED), MB2(0xB4EE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4EF), /* 5440 */ + MB2(0xB4F0), 0x0000, 0x0000, MB2(0xB4F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB4F2), 0x0000, MB2(0xB4F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB4F4), 0x0000, + 0x0000, 0x0000, MB2(0xB4F5), 0x0000, /* 5460 */ + MB2(0xB4F6), 0x0000, MB2(0xB4F7), MB2(0xB4F8), + 0x0000, MB2(0xB4F9), 0x0000, MB2(0xB4FA), + 0x0000, MB2(0xB4FB), MB2(0xB4FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB4FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB4FE), + 0x0000, MB2(0xB5A1), 0x0000, MB2(0xB5A2), /* 5480 */ + 0x0000, MB2(0xB5A3), 0x0000, 0x0000, + MB2(0xB5A4), MB2(0xB5A5), 0x0000, 0x0000, + 0x0000, MB2(0xB5A6), 0x0000, 0x0000, + 0x0000, MB2(0xB5A7), 0x0000, 0x0000, + 0x0000, MB2(0xB5A8), MB2(0xB5A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5AA), 0x0000, 0x0000, MB2(0xB5AB), + 0x0000, MB2(0xB5AC), 0x0000, 0x0000, /* 54A0 */ + 0x0000, 0x0000, MB2(0xB5AD), MB2(0xB5AE), + 0x0000, MB2(0xB5AF), MB2(0xB5B0), 0x0000, + 0x0000, MB2(0xB5B1), MB2(0xB5B2), 0x0000, + 0x0000, MB2(0xB5B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5B4), + 0x0000, MB2(0xB5B5), MB2(0xB5B6), MB2(0xB5B7), + 0x0000, 0x0000, 0x0000, MB2(0xB5B8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */ + 0x0000, 0x0000, MB2(0xB5B9), 0x0000, + 0x0000, 0x0000, MB2(0xB5BA), 0x0000, + 0x0000, MB2(0xB5BB), MB2(0xB5BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5BD), 0x0000, 0x0000, 0x0000, /* 54E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5BE), 0x0000, + MB2(0xB5BF), 0x0000, 0x0000, MB2(0xB5C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5C2), 0x0000, MB2(0xB5C3), MB2(0xB5C4), + MB2(0xB5C5), MB2(0xB5C6), 0x0000, 0x0000, /* 5500 */ + 0x0000, MB2(0xB5C7), 0x0000, 0x0000, + MB2(0xB5C8), MB2(0xB5C9), 0x0000, 0x0000, + MB2(0xB5CA), MB2(0xB5CB), MB2(0xB5CC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5CD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5CE), MB2(0xB5CF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5D0), 0x0000, + 0x0000, MB2(0xB5D1), MB2(0xB5D2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5D3), + MB2(0xB5D4), MB2(0xB5D5), 0x0000, 0x0000, + 0x0000, MB2(0xB5D6), 0x0000, 0x0000, /* 5540 */ + 0x0000, 0x0000, 0x0000, MB2(0xB5D7), + 0x0000, MB2(0xB5D8), MB2(0xB5D9), 0x0000, + 0x0000, MB2(0xB5DA), 0x0000, 0x0000, + MB2(0xB5DB), MB2(0xB5DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB5DD), 0x0000, MB2(0xB5DE), MB2(0xB5DF), + 0x0000, 0x0000, MB2(0xB5E0), 0x0000, + MB2(0xB5E1), MB2(0xB5E2), 0x0000, 0x0000, /* 5560 */ + MB2(0xB5E3), 0x0000, MB2(0xB5E4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5E5), + 0x0000, MB2(0xB5E6), MB2(0xB5E7), 0x0000, /* 5580 */ + 0x0000, 0x0000, MB2(0xB5E8), 0x0000, + MB2(0xB5E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5EA), MB2(0xB5EB), + 0x0000, MB2(0xB5EC), MB2(0xB5ED), MB2(0xB5EE), + MB2(0xB5EF), 0x0000, 0x0000, MB2(0xB5F0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5F1), /* 55A0 */ + MB2(0xB5F2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB5F3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB5F4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB5F5), + 0x0000, MB2(0xB5F6), 0x0000, MB2(0xB5F7), /* 55C0 */ + 0x0000, 0x0000, MB2(0xB5F8), 0x0000, + 0x0000, MB2(0xB5F9), 0x0000, MB2(0xB5FA), + MB2(0xB5FB), 0x0000, MB2(0xB5FC), 0x0000, + 0x0000, MB2(0xB5FD), MB2(0xB5FE), MB2(0xB6A1), + 0x0000, 0x0000, 0x0000, MB2(0xB6A2), + MB2(0xB6A3), 0x0000, 0x0000, MB2(0xB6A4), + 0x0000, 0x0000, MB2(0xB6A5), 0x0000, + 0x0000, 0x0000, MB2(0xB6A6), 0x0000, /* 55E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB6A9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */ + 0x0000, MB2(0xB6AA), 0x0000, 0x0000, + MB2(0xB6AB), 0x0000, MB2(0xB6AC), 0x0000, + 0x0000, MB2(0xB6AD), MB2(0xB6AE), MB2(0xB6AF), + MB2(0xB6B0), MB2(0xB6B1), MB2(0xB6B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB6B4), 0x0000, 0x0000, 0x0000, + MB2(0xB6B5), 0x0000, 0x0000, MB2(0xB6B6), + 0x0000, MB2(0xB6B7), 0x0000, MB2(0xB6B8), + 0x0000, MB2(0xB6B9), 0x0000, MB2(0xB6BA), + MB2(0xB6BB), MB2(0xB6BC), 0x0000, MB2(0xB6BD), + MB2(0xB6BE), MB2(0xB6BF), 0x0000, MB2(0xB6C0), /* 5640 */ + MB2(0xB6C1), 0x0000, MB2(0xB6C2), 0x0000, + 0x0000, MB2(0xB6C3), 0x0000, MB2(0xB6C4), + 0x0000, MB2(0xB6C5), 0x0000, MB2(0xB6C6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB6C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6C8), 0x0000, + MB2(0xB6C9), MB2(0xB6CA), MB2(0xB6CB), MB2(0xB6CC), /* 5660 */ + 0x0000, 0x0000, MB2(0xB6CD), 0x0000, + 0x0000, MB2(0xB6CE), 0x0000, 0x0000, + 0x0000, MB2(0xB6CF), 0x0000, MB2(0xB6D0), + 0x0000, MB2(0xB6D1), MB2(0xB6D2), 0x0000, + 0x0000, MB2(0xB6D3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */ + MB2(0xB6D4), MB2(0xB6D5), 0x0000, 0x0000, + MB2(0xB6D6), 0x0000, 0x0000, MB2(0xB6D7), + MB2(0xB6D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6D9), 0x0000, 0x0000, + 0x0000, MB2(0xB6DA), MB2(0xB6DB), 0x0000, + 0x0000, MB2(0xB6DC), MB2(0xB6DD), MB2(0xB6DE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */ + 0x0000, 0x0000, MB2(0xB6DF), MB2(0xB6E0), + MB2(0xB6E1), MB2(0xB6E2), 0x0000, MB2(0xB6E3), + MB2(0xB6E4), MB2(0xB6E5), 0x0000, 0x0000, + 0x0000, MB2(0xB6E6), 0x0000, MB2(0xB6E7), + 0x0000, 0x0000, 0x0000, MB2(0xB6E8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB6E9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */ + 0x0000, MB2(0xB6EA), 0x0000, 0x0000, + 0x0000, MB2(0xB6EB), MB2(0xB6EC), MB2(0xB6ED), + MB2(0xB6F0), MB2(0xB6F1), 0x0000, MB2(0xB6EE), + MB2(0xB6EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB6F2), 0x0000, 0x0000, + MB2(0xB6F3), MB2(0xB6F4), 0x0000, MB2(0xB6F5), + 0x0000, MB2(0xB6F6), 0x0000, 0x0000, /* 56E0 */ + MB2(0xB6F7), MB2(0xB6F8), MB2(0xB6F9), MB2(0xB6FA), + MB2(0xB6FB), 0x0000, 0x0000, MB2(0xB6FD), + 0x0000, MB2(0xB6FE), 0x0000, 0x0000, + 0x0000, MB2(0xB6FC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7A1), MB2(0xB7A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7A3), MB2(0xB7A4), 0x0000, /* 5700 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7A5), + 0x0000, 0x0000, MB2(0xB7A6), 0x0000, + MB2(0xB7A7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7A8), 0x0000, 0x0000, + 0x0000, MB2(0xB7A9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7AA), MB2(0xB7AB), + 0x0000, MB2(0xB7AC), 0x0000, 0x0000, + MB2(0xB7AD), 0x0000, MB2(0xB7AE), MB2(0xB7AF), /* 5720 */ + MB2(0xB7B0), MB2(0xB7B1), 0x0000, 0x0000, + 0x0000, MB2(0xB7B2), MB2(0xB7B3), 0x0000, + MB2(0xB7B4), 0x0000, MB2(0xB7B5), MB2(0xB7B6), + 0x0000, 0x0000, 0x0000, MB2(0xB7B7), + MB2(0xB7B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7B9), MB2(0xB7BA), MB2(0xB7BB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */ + 0x0000, MB2(0xB7BC), MB2(0xB7BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7BE), MB2(0xB7BF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB7C1), 0x0000, /* 5760 */ + 0x0000, MB2(0xB7C2), 0x0000, MB2(0xB7C3), + MB2(0xB7C4), 0x0000, 0x0000, MB2(0xB7C5), + 0x0000, MB2(0xB7C6), MB2(0xB7C7), MB2(0xB7C8), + MB2(0xB7C9), MB2(0xB7CA), 0x0000, MB2(0xB7CB), + MB2(0xB7CC), MB2(0xB7CD), 0x0000, MB2(0xB7CE), + 0x0000, MB2(0xB7CF), MB2(0xB7D0), MB2(0xB7D1), + MB2(0xB7D2), 0x0000, MB2(0xB7D3), 0x0000, + 0x0000, MB2(0xB7D4), 0x0000, MB2(0xB7D5), /* 5780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7D6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7D7), MB2(0xB7E0), 0x0000, MB2(0xB7D8), + 0x0000, MB2(0xB7D9), MB2(0xB7DA), 0x0000, + MB2(0xB7DB), MB2(0xB7DC), MB2(0xB7DD), MB2(0xB7DE), + 0x0000, MB2(0xB7DF), 0x0000, 0x0000, /* 57A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7E1), + MB2(0xB7E2), MB2(0xB7E3), 0x0000, 0x0000, + MB2(0xB7E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB7E5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB7E7), + MB2(0xB7E8), 0x0000, 0x0000, 0x0000, + MB2(0xB7E9), 0x0000, 0x0000, MB2(0xB7EA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7EC), MB2(0xB7ED), 0x0000, + 0x0000, MB2(0xB7FE), 0x0000, 0x0000, /* 57E0 */ + MB2(0xB7EE), 0x0000, MB2(0xB7EF), MB2(0xB7F0), + 0x0000, MB2(0xB7F1), 0x0000, 0x0000, + 0x0000, MB2(0xB7F2), 0x0000, 0x0000, + MB2(0xB7F3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7F4), MB2(0xB7F5), 0x0000, + MB2(0xB7F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB7F7), MB2(0xB7F8), MB2(0xB7F9), + 0x0000, 0x0000, 0x0000, MB2(0xB7FA), /* 5800 */ + MB2(0xB7FB), 0x0000, 0x0000, 0x0000, + MB2(0xB7FC), MB2(0xB7FD), 0x0000, 0x0000, + MB2(0xB8A1), MB2(0xB8A2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8A3), + 0x0000, 0x0000, MB2(0xB8A4), MB2(0xB8A5), + MB2(0xB8A6), 0x0000, 0x0000, 0x0000, /* 5820 */ + 0x0000, 0x0000, MB2(0xB8A7), MB2(0xB8A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8A9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8AA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8AC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8AD), 0x0000, 0x0000, + MB2(0xB8AE), MB2(0xB8AF), 0x0000, MB2(0xB8B0), + MB2(0xB8B1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8B3), + 0x0000, MB2(0xB8B4), 0x0000, 0x0000, /* 5860 */ + MB2(0xB8B5), 0x0000, 0x0000, MB2(0xB8B6), + MB2(0xB8B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8B8), 0x0000, 0x0000, 0x0000, + MB2(0xB8B9), 0x0000, 0x0000, MB2(0xB8BA), + MB2(0xB8BB), MB2(0xB8BC), 0x0000, 0x0000, /* 5880 */ + 0x0000, 0x0000, 0x0000, MB2(0xB8BD), + MB2(0xB8BE), MB2(0xB8BF), MB2(0xB8C0), 0x0000, + MB2(0xB8C1), MB2(0xB8C2), 0x0000, MB2(0xB8C3), + MB2(0xB8C4), 0x0000, 0x0000, 0x0000, + MB2(0xB8C5), 0x0000, MB2(0xB8C6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8C7), 0x0000, 0x0000, + MB2(0xB8C8), MB2(0xB8C9), MB2(0xB8CA), 0x0000, /* 58A0 */ + 0x0000, 0x0000, MB2(0xB8CB), 0x0000, + 0x0000, MB2(0xB8CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8CD), MB2(0xB8CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB8D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8D1), 0x0000, /* 58C0 */ + MB2(0xB8CF), 0x0000, 0x0000, 0x0000, + MB2(0xB8D2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8D3), MB2(0xB8D4), 0x0000, + MB2(0xB8D5), 0x0000, MB2(0xB8D6), 0x0000, + MB2(0xB8D7), 0x0000, MB2(0xB8D8), 0x0000, + 0x0000, 0x0000, MB2(0xB8D9), 0x0000, + 0x0000, MB2(0xB8DA), 0x0000, 0x0000, + 0x0000, MB2(0xB8DB), MB2(0xB8DC), 0x0000, /* 58E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8DD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */ + 0x0000, MB2(0xB8DF), MB2(0xB8E0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8E1), + MB2(0xB8E2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8E3), MB2(0xB8E4), + MB2(0xB8E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8E7), 0x0000, 0x0000, + 0x0000, MB2(0xB8E8), 0x0000, MB2(0xB8E9), /* 5920 */ + MB2(0xB8EA), 0x0000, 0x0000, 0x0000, + MB2(0xB8EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8EC), + MB2(0xB8ED), 0x0000, 0x0000, MB2(0xB8EE), + 0x0000, MB2(0xB8EF), MB2(0xB8F0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8F1), + 0x0000, 0x0000, 0x0000, MB2(0xB8F2), /* 5940 */ + 0x0000, 0x0000, MB2(0xB8F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB8F4), MB2(0xB8F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB8F6), 0x0000, MB2(0xB8F7), + 0x0000, MB2(0xB8F8), MB2(0xB8F9), MB2(0xB8FA), + 0x0000, MB2(0xB8FB), 0x0000, MB2(0xB8FC), /* 5960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB8FD), + 0x0000, MB2(0xB8FE), 0x0000, MB2(0xB9A1), + 0x0000, 0x0000, MB2(0xB9A2), 0x0000, + 0x0000, MB2(0xB9A3), MB2(0xB9A4), 0x0000, + 0x0000, MB2(0xB9A5), 0x0000, MB2(0xB9A6), + MB2(0xB9A7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9A8), + MB2(0xB9A9), 0x0000, MB2(0xB9AA), 0x0000, + 0x0000, 0x0000, MB2(0xB9AB), 0x0000, + 0x0000, MB2(0xB9AC), 0x0000, MB2(0xB9AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9AE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */ + MB2(0xB9AF), 0x0000, 0x0000, MB2(0xB9B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9B1), MB2(0xB9B2), MB2(0xB9B3), + MB2(0xB9B4), 0x0000, 0x0000, MB2(0xB9B5), + 0x0000, 0x0000, 0x0000, MB2(0xB9B6), + 0x0000, 0x0000, MB2(0xB9B7), 0x0000, + MB2(0xB9B8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9B9), 0x0000, MB2(0xB9BA), /* 59C0 */ + MB2(0xB9BB), 0x0000, 0x0000, 0x0000, + MB2(0xB9BC), 0x0000, MB2(0xB9BD), 0x0000, + 0x0000, MB2(0xB9BE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9BF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9C0), MB2(0xB9C1), MB2(0xB9C2), + 0x0000, 0x0000, 0x0000, MB2(0xB9C3), /* 59E0 */ + MB2(0xB9C4), 0x0000, 0x0000, MB2(0xB9C5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9C6), MB2(0xB9C7), + 0x0000, MB2(0xB9C8), MB2(0xB9C9), 0x0000, + MB2(0xB9CA), 0x0000, 0x0000, MB2(0xB9CB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9CC), 0x0000, 0x0000, 0x0000, /* 5A00 */ + MB2(0xB9CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9CE), MB2(0xB9CF), MB2(0xB9D0), 0x0000, + 0x0000, 0x0000, MB2(0xB9D1), MB2(0xB9D2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9D3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9D4), /* 5A20 */ + MB2(0xB9D5), 0x0000, 0x0000, MB2(0xB9D6), + MB2(0xB9D7), 0x0000, MB2(0xB9D8), 0x0000, + 0x0000, MB2(0xB9D9), 0x0000, 0x0000, + MB2(0xB9DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */ + MB2(0xB9DB), MB2(0xB9DC), 0x0000, MB2(0xB9DD), + MB2(0xB9DE), 0x0000, 0x0000, 0x0000, + MB2(0xB9DF), 0x0000, 0x0000, 0x0000, + MB2(0xB9E0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xB9E2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E3), /* 5A60 */ + 0x0000, MB2(0xB9E4), 0x0000, MB2(0xB9E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9E7), + 0x0000, 0x0000, MB2(0xB9E8), MB2(0xB9E9), + 0x0000, 0x0000, MB2(0xB9EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xB9EB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9EC), 0x0000, 0x0000, MB2(0xB9ED), + 0x0000, 0x0000, MB2(0xB9EE), 0x0000, + 0x0000, MB2(0xB9EF), 0x0000, 0x0000, + MB2(0xB9F0), 0x0000, MB2(0xB9F1), MB2(0xB9F2), + MB2(0xB9F3), 0x0000, MB2(0xB9F4), 0x0000, /* 5AA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xB9F5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xB9F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xB9F7), MB2(0xB9F8), MB2(0xB9F9), + 0x0000, MB2(0xB9FA), 0x0000, 0x0000, + MB2(0xB9FB), 0x0000, MB2(0xB9FC), MB2(0xB9FD), + 0x0000, 0x0000, 0x0000, MB2(0xB9FE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */ + MB2(0xBAA1), 0x0000, MB2(0xBAA2), 0x0000, + MB2(0xBAA3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAA4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAA5), 0x0000, + MB2(0xBAA6), 0x0000, 0x0000, 0x0000, + MB2(0xBAA7), 0x0000, 0x0000, 0x0000, /* 5AE0 */ + 0x0000, MB2(0xBAA8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAA9), 0x0000, + 0x0000, 0x0000, MB2(0xBAAA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAAB), MB2(0xBAAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAAD), 0x0000, 0x0000, + MB2(0xBAAE), MB2(0xBAAF), 0x0000, 0x0000, /* 5B00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAB0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAB1), + 0x0000, MB2(0xBAB3), 0x0000, MB2(0xBAB4), + 0x0000, MB2(0xBAB5), 0x0000, 0x0000, + 0x0000, MB2(0xBAB6), 0x0000, 0x0000, /* 5B20 */ + 0x0000, MB2(0xBAB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAB2), 0x0000, 0x0000, 0x0000, + MB2(0xBAB9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBABA), 0x0000, 0x0000, /* 5B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBABB), + MB2(0xBABC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBABD), 0x0000, + 0x0000, 0x0000, MB2(0xBABE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBABF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAC0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAC1), MB2(0xBAC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAC3), MB2(0xBAC4), MB2(0xBAC5), MB2(0xBAC6), + 0x0000, MB2(0xBAC7), 0x0000, 0x0000, /* 5B80 */ + MB2(0xBAC8), 0x0000, MB2(0xBAC9), 0x0000, + 0x0000, 0x0000, MB2(0xBACA), 0x0000, + 0x0000, 0x0000, MB2(0xBACB), 0x0000, + MB2(0xBACC), MB2(0xBACD), 0x0000, MB2(0xBACE), + MB2(0xBACF), 0x0000, MB2(0xBAD0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAD1), MB2(0xBAD2), 0x0000, 0x0000, + MB2(0xBAD3), MB2(0xBAD4), 0x0000, MB2(0xBAD5), + 0x0000, MB2(0xBAD6), MB2(0xBAD7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAD8), + 0x0000, 0x0000, MB2(0xBAD9), 0x0000, + MB2(0xBADA), 0x0000, 0x0000, 0x0000, + MB2(0xBADB), MB2(0xBADC), 0x0000, 0x0000, /* 5BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBADD), 0x0000, MB2(0xBADE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBADF), MB2(0xBAE0), + MB2(0xBAE1), MB2(0xBAE2), MB2(0xBAE3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAE4), 0x0000, 0x0000, 0x0000, /* 5BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAE5), + 0x0000, MB2(0xBAE6), 0x0000, 0x0000, + MB2(0xBAE7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAE8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBAE9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBAEA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAEB), MB2(0xBAEC), + 0x0000, 0x0000, 0x0000, MB2(0xBAED), /* 5C20 */ + 0x0000, 0x0000, MB2(0xBAEE), 0x0000, + 0x0000, MB2(0xBAEF), 0x0000, MB2(0xBAF0), + MB2(0xBAF1), 0x0000, MB2(0xBAF2), 0x0000, + MB2(0xBAF3), 0x0000, MB2(0xBAF4), 0x0000, + 0x0000, MB2(0xBAF5), MB2(0xBAF6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBAF7), MB2(0xBAF8), 0x0000, + MB2(0xBAF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBAFA), MB2(0xBAFB), /* 5C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xBAFC), + MB2(0xBAFD), MB2(0xBAFE), 0x0000, 0x0000, + 0x0000, MB2(0xBBA1), 0x0000, 0x0000, + MB2(0xBBA2), 0x0000, 0x0000, 0x0000, + MB2(0xBBA3), MB2(0xBBA4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBA5), MB2(0xBBA6), + MB2(0xBBA7), MB2(0xBBA8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBA9), + MB2(0xBBAA), 0x0000, MB2(0xBBAB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBAC), + 0x0000, 0x0000, MB2(0xBBAD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBAE), 0x0000, MB2(0xBBAF), + MB2(0xBBB0), 0x0000, MB2(0xBBB1), MB2(0xBBB2), /* 5CA0 */ + 0x0000, 0x0000, MB2(0xBBB3), 0x0000, + 0x0000, 0x0000, MB2(0xBBB4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB5), 0x0000, + MB2(0xBBB6), MB2(0xBBB7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBB8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBB9), 0x0000, MB2(0xBBBA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBBB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBBD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBBC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBBE), 0x0000, + 0x0000, MB2(0xBBBF), MB2(0xBBC0), 0x0000, + MB2(0xBBC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBC2), 0x0000, 0x0000, /* 5D00 */ + 0x0000, 0x0000, MB2(0xBBC3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBC4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBC5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBC7), /* 5D20 */ + MB2(0xBBC8), 0x0000, MB2(0xBBC9), MB2(0xBBCA), + 0x0000, 0x0000, 0x0000, MB2(0xBBC6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBCB), 0x0000, 0x0000, + MB2(0xBBCC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBCD), 0x0000, 0x0000, + 0x0000, MB2(0xBBCE), 0x0000, MB2(0xBBCF), + 0x0000, 0x0000, MB2(0xBBD0), MB2(0xBBD1), /* 5D40 */ + 0x0000, 0x0000, MB2(0xBBD2), 0x0000, + MB2(0xBBD3), 0x0000, MB2(0xBBD7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBD5), 0x0000, 0x0000, + 0x0000, MB2(0xBBD4), 0x0000, 0x0000, + 0x0000, MB2(0xBBD6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBD8), + MB2(0xBBD9), MB2(0xBBDA), MB2(0xBBDB), 0x0000, /* 5D60 */ + MB2(0xBBDC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBDD), 0x0000, + 0x0000, MB2(0xBBDE), 0x0000, 0x0000, + MB2(0xBBDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBBE0), MB2(0xBBE1), 0x0000, + 0x0000, 0x0000, MB2(0xBBE2), MB2(0xBBE3), + 0x0000, MB2(0xBBE4), 0x0000, MB2(0xBBE5), /* 5D80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBE6), 0x0000, MB2(0xBBE7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBBE8), MB2(0xBBE9), + MB2(0xBBEA), MB2(0xBBEB), 0x0000, 0x0000, + 0x0000, MB2(0xBBEC), 0x0000, MB2(0xBBED), + 0x0000, 0x0000, 0x0000, MB2(0xBBEE), + MB2(0xBBEF), 0x0000, 0x0000, 0x0000, /* 5DA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBF0), + 0x0000, 0x0000, 0x0000, MB2(0xBBF1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBF2), 0x0000, MB2(0xE6F4), 0x0000, + MB2(0xBBF3), 0x0000, 0x0000, 0x0000, + MB2(0xBBF4), MB2(0xBBF5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBBF6), /* 5DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xBBF7), + 0x0000, 0x0000, 0x0000, MB2(0xBBF8), + 0x0000, 0x0000, MB2(0xBBFA), 0x0000, + MB2(0xBBF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBFB), MB2(0xBBFC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBBFD), 0x0000, 0x0000, 0x0000, /* 5DE0 */ + MB2(0xBBFE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCA1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCA2), MB2(0xBCA3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCA4), 0x0000, 0x0000, 0x0000, /* 5E00 */ + 0x0000, 0x0000, 0x0000, MB2(0xBCA5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCA6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCA7), 0x0000, + MB2(0xBCA8), MB2(0xBCA9), 0x0000, 0x0000, + MB2(0xBCAA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCAB), + MB2(0xBCAC), 0x0000, 0x0000, 0x0000, /* 5E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCAD), 0x0000, + 0x0000, 0x0000, MB2(0xBCAF), 0x0000, + 0x0000, MB2(0xBCB0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCB1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCB4), 0x0000, MB2(0xBCB2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCB3), MB2(0xBCB5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCB6), 0x0000, + MB2(0xBCB7), 0x0000, 0x0000, MB2(0xBCB8), + MB2(0xBCB9), 0x0000, MB2(0xBCBA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCBB), 0x0000, MB2(0xBCBC), MB2(0xBCBD), + MB2(0xBCBE), MB2(0xBCBF), MB2(0xBCC0), 0x0000, + MB2(0xBCC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCC2), 0x0000, 0x0000, 0x0000, /* 5E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCC3), + 0x0000, 0x0000, MB2(0xBCC4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCC5), 0x0000, /* 5EA0 */ + MB2(0xBCC6), MB2(0xBCC7), 0x0000, 0x0000, + MB2(0xBCC8), 0x0000, MB2(0xBCC9), 0x0000, + MB2(0xBCCA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCCB), 0x0000, MB2(0xBCCC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCCD), MB2(0xBCCE), MB2(0xBCCF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */ + 0x0000, 0x0000, MB2(0xBCD0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCD2), + MB2(0xBCD1), 0x0000, MB2(0xBCD3), 0x0000, + 0x0000, MB2(0xBCD4), MB2(0xBCD5), 0x0000, + MB2(0xBCD6), MB2(0xBCD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCD8), 0x0000, MB2(0xBCD9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */ + 0x0000, MB2(0xBCDA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCDB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCDC), 0x0000, /* 5F00 */ + 0x0000, 0x0000, MB2(0xBCDD), MB2(0xBCDE), + MB2(0xBCDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBCE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCE1), 0x0000, 0x0000, + MB2(0xBCE2), MB2(0xBCE3), 0x0000, 0x0000, + 0x0000, MB2(0xBCE4), MB2(0xBCE5), MB2(0xBCE6), /* 5F20 */ + MB2(0xBCE7), 0x0000, 0x0000, 0x0000, + MB2(0xBCE8), 0x0000, 0x0000, MB2(0xBCE9), + MB2(0xBCEA), 0x0000, MB2(0xBCEB), 0x0000, + MB2(0xBCEC), 0x0000, 0x0000, 0x0000, + MB2(0xBCED), 0x0000, MB2(0xBCEE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBCEF), + 0x0000, MB2(0xBCF0), 0x0000, MB2(0xBCF1), + MB2(0xBCF2), 0x0000, 0x0000, 0x0000, /* 5F40 */ + MB2(0xBCF3), MB2(0xBCF4), 0x0000, MB2(0xBCF5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBCF6), 0x0000, 0x0000, + MB2(0xBCF7), 0x0000, 0x0000, 0x0000, + MB2(0xBCF8), 0x0000, 0x0000, 0x0000, + MB2(0xBCF9), 0x0000, 0x0000, MB2(0xBCFA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBCFB), 0x0000, 0x0000, MB2(0xBCFC), /* 5F60 */ + MB2(0xBCFD), 0x0000, 0x0000, MB2(0xBCFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDA1), + 0x0000, 0x0000, MB2(0xBDA2), 0x0000, + MB2(0xBDA3), MB2(0xBDA4), 0x0000, 0x0000, + MB2(0xBDA5), 0x0000, MB2(0xBDA6), 0x0000, + 0x0000, MB2(0xBDA7), MB2(0xBDA8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDA9), 0x0000, 0x0000, + 0x0000, MB2(0xBDAA), 0x0000, MB2(0xBDAB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDAC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDAD), MB2(0xBDAE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDAF), 0x0000, /* 5FA0 */ + MB2(0xBDB2), 0x0000, 0x0000, MB2(0xBDB0), + 0x0000, 0x0000, 0x0000, MB2(0xBDB1), + MB2(0xBDB3), 0x0000, 0x0000, MB2(0xBDB4), + MB2(0xBDB5), MB2(0xBDB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDB7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */ + MB2(0xBDB8), 0x0000, 0x0000, MB2(0xBDB9), + MB2(0xBDBA), MB2(0xBDBB), 0x0000, MB2(0xBDBC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDBD), MB2(0xBDBE), MB2(0xBDBF), MB2(0xBDC0), + MB2(0xBDC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDC2), 0x0000, + 0x0000, MB2(0xBDC3), MB2(0xBDC4), 0x0000, /* 5FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDC5), MB2(0xBDC6), MB2(0xBDC7), 0x0000, + MB2(0xBDC8), MB2(0xBDC9), MB2(0xBDCA), MB2(0xBDCB), + 0x0000, 0x0000, MB2(0xBDCC), MB2(0xBDCD), + 0x0000, 0x0000, MB2(0xBDCE), 0x0000, + 0x0000, 0x0000, MB2(0xBDCF), 0x0000, + MB2(0xBDD0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDD1), + 0x0000, 0x0000, MB2(0xBDD2), 0x0000, + 0x0000, MB2(0xBDD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDD4), + MB2(0xBDD5), 0x0000, 0x0000, MB2(0xBDD6), + MB2(0xBDD7), 0x0000, MB2(0xBDD8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDD9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */ + MB2(0xBDDA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDDB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDDC), + 0x0000, MB2(0xBDDD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDDE), 0x0000, 0x0000, 0x0000, /* 6040 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDDF), + MB2(0xBDE0), MB2(0xBDE1), 0x0000, 0x0000, + MB2(0xBDE2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDE3), 0x0000, 0x0000, + MB2(0xBDE4), 0x0000, MB2(0xBDE5), MB2(0xBDE6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDE7), 0x0000, 0x0000, + 0x0000, MB2(0xBDE8), 0x0000, 0x0000, /* 6060 */ + 0x0000, 0x0000, 0x0000, MB2(0xBDE9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDEA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBDEB), MB2(0xBDEC), + 0x0000, 0x0000, MB2(0xBDED), 0x0000, /* 6080 */ + 0x0000, 0x0000, MB2(0xBDEE), 0x0000, + MB2(0xBDEF), 0x0000, MB2(0xBDF0), 0x0000, + 0x0000, 0x0000, MB2(0xBDF1), 0x0000, + 0x0000, MB2(0xBDF2), 0x0000, MB2(0xBDF3), + 0x0000, MB2(0xBDF4), 0x0000, 0x0000, + MB2(0xBDF5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBDF6), MB2(0xBDF7), 0x0000, + 0x0000, 0x0000, MB2(0xBDF8), 0x0000, /* 60A0 */ + MB2(0xBDF9), MB2(0xBDFA), 0x0000, 0x0000, + MB2(0xBDFB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBDFC), MB2(0xBDFD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBDFE), + 0x0000, 0x0000, 0x0000, MB2(0xBEA1), + 0x0000, 0x0000, MB2(0xBEA2), 0x0000, + 0x0000, 0x0000, MB2(0xBEA3), 0x0000, /* 60C0 */ + MB2(0xBEA4), 0x0000, 0x0000, 0x0000, + MB2(0xBEA5), MB2(0xBEA6), MB2(0xBEA7), MB2(0xBEA8), + 0x0000, 0x0000, MB2(0xBEA9), MB2(0xBEAA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEAB), MB2(0xBEAC), 0x0000, 0x0000, + 0x0000, MB2(0xBEAD), 0x0000, MB2(0xBEAE), + 0x0000, MB2(0xBEAF), MB2(0xBEB0), 0x0000, + 0x0000, 0x0000, MB2(0xBEB1), 0x0000, /* 60E0 */ + 0x0000, MB2(0xBEB2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEB3), 0x0000, + 0x0000, MB2(0xBEB4), 0x0000, 0x0000, + MB2(0xBEB5), 0x0000, 0x0000, 0x0000, + MB2(0xBEB6), MB2(0xBEB7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEB8), 0x0000, /* 6100 */ + 0x0000, 0x0000, 0x0000, MB2(0xBEB9), + 0x0000, 0x0000, MB2(0xBEBA), 0x0000, + MB2(0xBEBB), 0x0000, 0x0000, 0x0000, + MB2(0xBEBC), MB2(0xBEBD), MB2(0xBEBE), MB2(0xBEBF), + MB2(0xBEC0), 0x0000, MB2(0xBEC1), MB2(0xBEC2), + 0x0000, MB2(0xBEC3), 0x0000, 0x0000, + MB2(0xBEC4), 0x0000, MB2(0xBEC5), 0x0000, + 0x0000, 0x0000, MB2(0xBEC6), 0x0000, /* 6120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEC7), MB2(0xBEC8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEC9), MB2(0xBECA), 0x0000, 0x0000, + 0x0000, MB2(0xBECB), MB2(0xBECC), MB2(0xBECD), + 0x0000, MB2(0xBECE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBECF), 0x0000, 0x0000, /* 6140 */ + 0x0000, MB2(0xBED0), MB2(0xBED1), 0x0000, + 0x0000, MB2(0xBED2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBED3), 0x0000, + MB2(0xBED4), 0x0000, 0x0000, 0x0000, /* 6160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBED5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBED6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBED7), 0x0000, 0x0000, MB2(0xBED8), + MB2(0xBED9), 0x0000, 0x0000, MB2(0xBEDA), + MB2(0xBEDB), MB2(0xBEDC), 0x0000, MB2(0xBEDD), /* 6180 */ + MB2(0xBEDE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBEDF), + 0x0000, MB2(0xBEE0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEE1), MB2(0xBEE2), + 0x0000, 0x0000, 0x0000, MB2(0xBEE3), + MB2(0xBEE4), 0x0000, 0x0000, 0x0000, + MB2(0xBEE5), MB2(0xBEE6), 0x0000, MB2(0xBEE7), + MB2(0xBEE8), 0x0000, 0x0000, 0x0000, /* 61A0 */ + 0x0000, MB2(0xBEE9), 0x0000, 0x0000, + MB2(0xBEEA), 0x0000, MB2(0xBEEB), 0x0000, + 0x0000, MB2(0xBEEC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEED), MB2(0xBEEE), 0x0000, 0x0000, + MB2(0xBEEF), 0x0000, 0x0000, 0x0000, + MB2(0xBEF0), MB2(0xBEF1), MB2(0xBEF2), 0x0000, /* 61C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBEF3), MB2(0xBEF4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBEF5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBEF6), MB2(0xBEF7), MB2(0xBEF8), MB2(0xBEF9), + 0x0000, MB2(0xBEFA), MB2(0xBEFB), 0x0000, /* 61E0 */ + 0x0000, MB2(0xBEFE), 0x0000, MB2(0xBEFC), + 0x0000, MB2(0xBEFD), 0x0000, 0x0000, + MB2(0xBFA1), MB2(0xBFA2), 0x0000, MB2(0xBFA3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFA4), 0x0000, MB2(0xBFA5), /* 6200 */ + MB2(0xBFA6), 0x0000, 0x0000, MB2(0xBFA7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFA8), + 0x0000, MB2(0xBFA9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFAA), 0x0000, 0x0000, 0x0000, + MB2(0xBFAB), 0x0000, MB2(0xBFAC), MB2(0xBFAD), /* 6220 */ + 0x0000, 0x0000, 0x0000, MB2(0xBFAE), + 0x0000, MB2(0xBFAF), 0x0000, MB2(0xBFB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFB1), 0x0000, 0x0000, + 0x0000, MB2(0xBFB2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFB3), MB2(0xBFB4), /* 6240 */ + MB2(0xBFB5), 0x0000, MB2(0xBFB6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFB7), 0x0000, 0x0000, 0x0000, + MB2(0xBFB8), MB2(0xBFB9), MB2(0xBFBA), 0x0000, + MB2(0xBFBB), 0x0000, MB2(0xBFBC), 0x0000, + 0x0000, 0x0000, MB2(0xBFBD), 0x0000, + MB2(0xBFBE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */ + MB2(0xBFBF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFC0), 0x0000, MB2(0xBFC1), + 0x0000, 0x0000, 0x0000, MB2(0xBFC2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFC3), 0x0000, + 0x0000, MB2(0xBFC4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFC5), MB2(0xBFC6), MB2(0xBFC7), + MB2(0xBFC8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */ + 0x0000, 0x0000, MB2(0xBFC9), 0x0000, + MB2(0xBFCA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFCB), + 0x0000, 0x0000, MB2(0xBFCC), MB2(0xBFCD), + 0x0000, 0x0000, MB2(0xBFCE), 0x0000, + 0x0000, 0x0000, MB2(0xBFCF), MB2(0xBFD0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */ + MB2(0xBFD1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFD2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFD3), MB2(0xBFD4), 0x0000, + 0x0000, 0x0000, MB2(0xBFD5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFD7), 0x0000, + MB2(0xBFD8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFD9), MB2(0xBFDA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xBFDB), /* 6300 */ + MB2(0xBFDC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xBFDD), MB2(0xBFDE), + 0x0000, MB2(0xBFDF), 0x0000, 0x0000, + MB2(0xBFE0), 0x0000, 0x0000, MB2(0xBFE1), + 0x0000, 0x0000, MB2(0xBFE2), 0x0000, + MB2(0xBFE3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFE4), MB2(0xBFE5), 0x0000, + 0x0000, MB2(0xBFE6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFE7), MB2(0xBFE8), 0x0000, + 0x0000, MB2(0xBFE9), 0x0000, 0x0000, + MB2(0xBFEA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xBFEB), MB2(0xBFEC), MB2(0xBFED), /* 6340 */ + MB2(0xBFEE), 0x0000, MB2(0xBFEF), 0x0000, + 0x0000, 0x0000, MB2(0xBFF0), MB2(0xBFF1), + 0x0000, 0x0000, MB2(0xBFF2), 0x0000, + 0x0000, 0x0000, MB2(0xBFF3), MB2(0xBFF4), + MB2(0xBFF5), 0x0000, 0x0000, 0x0000, + MB2(0xBFF6), 0x0000, 0x0000, MB2(0xBFF7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */ + 0x0000, MB2(0xBFF8), MB2(0xBFF9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xBFFA), MB2(0xBFFB), 0x0000, 0x0000, + 0x0000, MB2(0xBFFC), 0x0000, 0x0000, + MB2(0xBFFD), MB2(0xBFFE), 0x0000, 0x0000, + MB2(0xC0A1), 0x0000, 0x0000, 0x0000, + MB2(0xC0A2), MB2(0xC0A3), 0x0000, MB2(0xC0A4), + 0x0000, 0x0000, MB2(0xC0A5), 0x0000, /* 6380 */ + MB2(0xC0A6), 0x0000, 0x0000, MB2(0xC0A7), + 0x0000, 0x0000, MB2(0xC0A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0A9), 0x0000, 0x0000, 0x0000, + MB2(0xC0AA), MB2(0xC0AB), 0x0000, 0x0000, + 0x0000, MB2(0xC0AC), MB2(0xC0AD), 0x0000, + 0x0000, 0x0000, MB2(0xC0AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */ + MB2(0xC0AF), 0x0000, MB2(0xC0B0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0B1), MB2(0xC0B2), MB2(0xC0B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0B4), 0x0000, 0x0000, + 0x0000, MB2(0xC0B5), 0x0000, 0x0000, /* 63C0 */ + 0x0000, MB2(0xC0B6), 0x0000, 0x0000, + MB2(0xC0B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0B8), 0x0000, + 0x0000, MB2(0xC0B9), 0x0000, MB2(0xC0BA), + MB2(0xC0BB), MB2(0xC0BC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0BD), 0x0000, 0x0000, 0x0000, + MB2(0xC0BE), 0x0000, 0x0000, 0x0000, /* 63E0 */ + 0x0000, MB2(0xC0BF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0C0), 0x0000, + MB2(0xC0C1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0C2), MB2(0xC0C3), + 0x0000, MB2(0xC0C4), 0x0000, 0x0000, + MB2(0xC0C5), MB2(0xC0C6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0C7), MB2(0xC0C8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0C9), 0x0000, MB2(0xC0CA), 0x0000, + MB2(0xC0CB), 0x0000, 0x0000, 0x0000, + MB2(0xC0CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0CD), 0x0000, + MB2(0xC0CE), 0x0000, MB2(0xC0CF), 0x0000, /* 6420 */ + MB2(0xC0D0), MB2(0xC0D1), 0x0000, 0x0000, + 0x0000, MB2(0xC0D2), MB2(0xC0D3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0D4), + MB2(0xC0D5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0D6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0D7), 0x0000, MB2(0xC0D8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0D9), + 0x0000, 0x0000, 0x0000, MB2(0xC0DA), + 0x0000, MB2(0xC0DB), MB2(0xC0DC), MB2(0xC0DD), + MB2(0xC0DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC0DF), MB2(0xC0E0), + MB2(0xC0E1), MB2(0xC0E2), 0x0000, MB2(0xC0E3), + MB2(0xC0E4), MB2(0xC0E5), 0x0000, MB2(0xC0E6), /* 6460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0E7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0E8), + MB2(0xC0E9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0EA), + 0x0000, MB2(0xC0EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */ + 0x0000, MB2(0xC0EC), 0x0000, MB2(0xC0ED), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0EE), + MB2(0xC0EF), MB2(0xC0F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC0F1), MB2(0xC0F2), 0x0000, MB2(0xC0F3), + 0x0000, MB2(0xC0F4), 0x0000, MB2(0xC0F5), + 0x0000, MB2(0xC0F6), 0x0000, MB2(0xC0F7), /* 64A0 */ + 0x0000, 0x0000, MB2(0xC0F8), 0x0000, + MB2(0xC0F9), 0x0000, 0x0000, 0x0000, + MB2(0xC0FA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC0FB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC0FC), MB2(0xC0FD), MB2(0xC0FE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */ + MB2(0xC1A1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1A2), MB2(0xC1A3), MB2(0xC1A4), + MB2(0xC1A5), 0x0000, MB2(0xC1A6), 0x0000, + MB2(0xC1A7), MB2(0xC1A8), 0x0000, 0x0000, + 0x0000, MB2(0xC1A9), 0x0000, MB2(0xC1AA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */ + MB2(0xC1AB), MB2(0xC1AC), 0x0000, 0x0000, + 0x0000, MB2(0xC1AD), MB2(0xC1AE), 0x0000, + 0x0000, MB2(0xC1AF), 0x0000, 0x0000, + MB2(0xC1B0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1B1), 0x0000, MB2(0xC1B2), + 0x0000, 0x0000, 0x0000, MB2(0xC1B3), + 0x0000, 0x0000, 0x0000, MB2(0xC1B4), + 0x0000, MB2(0xC1B5), 0x0000, 0x0000, /* 6500 */ + MB2(0xC1B6), 0x0000, 0x0000, 0x0000, + MB2(0xC1B7), MB2(0xC1B8), MB2(0xC1B9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1BA), + 0x0000, 0x0000, 0x0000, MB2(0xC1BB), + MB2(0xC1BC), 0x0000, MB2(0xC1BD), 0x0000, + 0x0000, MB2(0xC1BE), 0x0000, MB2(0xC1BF), + 0x0000, 0x0000, MB2(0xC1C0), MB2(0xC1C1), + 0x0000, 0x0000, MB2(0xC1C2), 0x0000, /* 6520 */ + 0x0000, 0x0000, MB2(0xC1C3), 0x0000, + 0x0000, MB2(0xC1C4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1C5), 0x0000, + 0x0000, MB2(0xC1C6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1C7), 0x0000, + MB2(0xC1C8), MB2(0xC1C9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1CA), /* 6540 */ + 0x0000, 0x0000, 0x0000, MB2(0xC1CB), + 0x0000, MB2(0xC1CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1CD), 0x0000, MB2(0xC1CE), 0x0000, + MB2(0xC1CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1D0), + MB2(0xC1D1), 0x0000, 0x0000, 0x0000, /* 6560 */ + 0x0000, 0x0000, 0x0000, MB2(0xC1D2), + 0x0000, 0x0000, 0x0000, MB2(0xC1D3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1D4), 0x0000, + 0x0000, MB2(0xC1D5), 0x0000, 0x0000, + 0x0000, MB2(0xC1D6), 0x0000, 0x0000, /* 6580 */ + 0x0000, MB2(0xC1D7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1D9), 0x0000, + 0x0000, MB2(0xC1DA), 0x0000, 0x0000, + MB2(0xC1DB), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1DC), 0x0000, 0x0000, + MB2(0xC1DD), 0x0000, 0x0000, MB2(0xC1DE), /* 65A0 */ + 0x0000, 0x0000, MB2(0xC1DF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1E0), 0x0000, + 0x0000, 0x0000, MB2(0xC1E1), MB2(0xC1E2), + MB2(0xC1E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1E4), + 0x0000, 0x0000, MB2(0xC1E5), 0x0000, /* 65C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1E6), MB2(0xC1E7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1E8), 0x0000, + MB2(0xC1E9), 0x0000, 0x0000, 0x0000, + MB2(0xC1EA), 0x0000, MB2(0xC1EB), 0x0000, + MB2(0xC1EC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC1ED), + 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC1EE), 0x0000, MB2(0xC1EF), 0x0000, + MB2(0xC1F0), MB2(0xC1F1), 0x0000, 0x0000, + 0x0000, MB2(0xC1F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC1F3), MB2(0xC1F4), + MB2(0xC1F5), 0x0000, 0x0000, 0x0000, /* 6600 */ + MB2(0xC1F6), 0x0000, 0x0000, 0x0000, + MB2(0xC1F7), MB2(0xC1F8), 0x0000, 0x0000, + 0x0000, MB2(0xC1F9), 0x0000, 0x0000, + 0x0000, MB2(0xC1FA), MB2(0xC1FB), 0x0000, + 0x0000, MB2(0xC1FC), MB2(0xC1FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC1FE), MB2(0xC2A1), 0x0000, + 0x0000, MB2(0xC2A2), MB2(0xC2A3), MB2(0xC2A4), /* 6620 */ + MB2(0xC2A5), 0x0000, MB2(0xC2A6), 0x0000, + 0x0000, MB2(0xC2A7), MB2(0xC2A8), MB2(0xC2A9), + MB2(0xC2AA), 0x0000, MB2(0xC2AB), 0x0000, + MB2(0xC2AC), MB2(0xC2AD), 0x0000, MB2(0xC2AE), + 0x0000, 0x0000, 0x0000, MB2(0xC2B0), + 0x0000, MB2(0xC2AF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2B1), 0x0000, 0x0000, 0x0000, /* 6640 */ + 0x0000, MB2(0xC2B2), MB2(0xC2B3), 0x0000, + 0x0000, 0x0000, MB2(0xC2B4), 0x0000, + MB2(0xC2B5), 0x0000, MB2(0xC2B7), 0x0000, + 0x0000, MB2(0xC2B6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2B8), + MB2(0xC2B9), MB2(0xC2BA), 0x0000, MB2(0xC2BB), + MB2(0xC2BC), 0x0000, 0x0000, 0x0000, + MB2(0xC2BD), MB2(0xC2BE), 0x0000, 0x0000, /* 6660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2C0), MB2(0xC2C1), + MB2(0xC2C2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2C4), + 0x0000, MB2(0xC2C5), 0x0000, MB2(0xC2C7), + MB2(0xC2C8), MB2(0xC2C9), 0x0000, MB2(0xC2CA), + MB2(0xC2CC), 0x0000, MB2(0xC2C3), MB2(0xC2C6), + MB2(0xC2CB), 0x0000, 0x0000, 0x0000, /* 6680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2CD), + MB2(0xC2CE), MB2(0xC2CF), 0x0000, 0x0000, + MB2(0xC2D0), 0x0000, MB2(0xC2D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2D2), MB2(0xC2D3), MB2(0xC2D4), + MB2(0xC2D5), 0x0000, 0x0000, MB2(0xC2D6), + MB2(0xC2D7), 0x0000, 0x0000, 0x0000, /* 66A0 */ + MB2(0xC2D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2D9), 0x0000, 0x0000, + 0x0000, MB2(0xC2DA), MB2(0xC2DB), 0x0000, + 0x0000, MB2(0xC2DC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2DD), + 0x0000, 0x0000, 0x0000, MB2(0xC2DE), + MB2(0xC2DF), 0x0000, MB2(0xC2E0), MB2(0xC2E1), /* 66C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2E2), 0x0000, 0x0000, 0x0000, + MB2(0xC2E3), 0x0000, MB2(0xC2E4), MB2(0xC2E5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2E7), + 0x0000, 0x0000, 0x0000, MB2(0xC2E8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2E9), 0x0000, 0x0000, MB2(0xC2EA), + MB2(0xC2EB), 0x0000, MB2(0xC2EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2ED), MB2(0xC2BF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */ + 0x0000, MB2(0xC2EE), 0x0000, MB2(0xC2EF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2F0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2F2), 0x0000, 0x0000, + MB2(0xC2F3), 0x0000, 0x0000, 0x0000, + MB2(0xC2F4), 0x0000, MB2(0xC2F5), 0x0000, /* 6720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC2F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC2F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */ + 0x0000, MB2(0xC2F8), 0x0000, MB2(0xC2F9), + MB2(0xC2FA), 0x0000, 0x0000, 0x0000, + MB2(0xC2FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC2FC), MB2(0xC2FD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC2FE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */ + 0x0000, 0x0000, MB2(0xC3A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3A2), 0x0000, MB2(0xC3A3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3A4), 0x0000, MB2(0xC3A5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3A6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3A7), 0x0000, 0x0000, /* 6780 */ + MB2(0xC3A8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3A9), MB2(0xC3AA), + 0x0000, MB2(0xC3AB), 0x0000, MB2(0xC3AC), + 0x0000, 0x0000, MB2(0xC3AD), 0x0000, + MB2(0xC3AE), MB2(0xC3AF), 0x0000, MB2(0xC3B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3B1), MB2(0xC3B2), MB2(0xC3B3), 0x0000, + 0x0000, MB2(0xC3B4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3B5), + MB2(0xC3B6), MB2(0xC3B7), 0x0000, 0x0000, + MB2(0xC3B9), 0x0000, MB2(0xC3BA), MB2(0xC3BB), /* 67C0 */ + 0x0000, MB2(0xC3BC), 0x0000, 0x0000, + MB2(0xC3BD), MB2(0xC3BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3BF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3C0), + 0x0000, MB2(0xC3C1), 0x0000, 0x0000, + MB2(0xC3C2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3C3), 0x0000, 0x0000, /* 67E0 */ + 0x0000, 0x0000, MB2(0xC3C4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3C5), 0x0000, MB2(0xC3C6), 0x0000, + 0x0000, 0x0000, MB2(0xC3C7), MB2(0xC3C8), + 0x0000, MB2(0xC3B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC3CA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3CB), 0x0000, 0x0000, + 0x0000, MB2(0xC3CC), 0x0000, MB2(0xC3CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */ + 0x0000, 0x0000, 0x0000, MB2(0xC3CF), + MB2(0xC3CE), 0x0000, 0x0000, 0x0000, + MB2(0xC3D0), MB2(0xC3D1), 0x0000, MB2(0xC3D2), + MB2(0xC3D3), MB2(0xC3D4), 0x0000, MB2(0xC3D5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3D6), + 0x0000, 0x0000, 0x0000, MB2(0xC3D7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */ + MB2(0xC3D8), MB2(0xC3D9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3DA), 0x0000, + MB2(0xC3DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3C9), 0x0000, + 0x0000, MB2(0xC3DC), 0x0000, MB2(0xC3DD), + MB2(0xC3DE), 0x0000, 0x0000, MB2(0xC3DF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3E0), + 0x0000, 0x0000, MB2(0xC3E1), MB2(0xC3E2), + MB2(0xC3E3), MB2(0xC3E4), MB2(0xC3E5), 0x0000, + 0x0000, MB2(0xC3E6), 0x0000, 0x0000, + 0x0000, MB2(0xC3E7), MB2(0xC3E8), MB2(0xC3E9), + MB2(0xC3EA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3EB), 0x0000, /* 6880 */ + MB2(0xC3EC), 0x0000, MB2(0xC3ED), 0x0000, + MB2(0xC3EE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC3EF), 0x0000, + MB2(0xC3F0), 0x0000, MB2(0xC3F1), 0x0000, + MB2(0xC3F2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC3F3), 0x0000, MB2(0xC3F4), /* 68A0 */ + 0x0000, MB2(0xC3F5), 0x0000, 0x0000, + 0x0000, MB2(0xC3F6), MB2(0xC3F7), 0x0000, + 0x0000, 0x0000, MB2(0xC3F8), 0x0000, + 0x0000, 0x0000, MB2(0xC3F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC3FA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */ + 0x0000, MB2(0xC3FB), 0x0000, 0x0000, + MB2(0xC3FC), 0x0000, 0x0000, 0x0000, + MB2(0xC3FD), 0x0000, 0x0000, MB2(0xC3FE), + MB2(0xC4A1), MB2(0xC4A2), 0x0000, MB2(0xC4A3), + 0x0000, 0x0000, MB2(0xC4A4), 0x0000, + 0x0000, MB2(0xC4A5), 0x0000, 0x0000, + MB2(0xC4A6), MB2(0xC4A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */ + 0x0000, MB2(0xC4A8), 0x0000, 0x0000, + MB2(0xC4A9), 0x0000, MB2(0xC4AA), MB2(0xC4AB), + MB2(0xC4AC), MB2(0xC4AD), 0x0000, 0x0000, + MB2(0xC4AE), MB2(0xC4AF), 0x0000, 0x0000, + 0x0000, MB2(0xC4B0), MB2(0xC4B1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4B2), + MB2(0xC4B3), MB2(0xC4B4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */ + 0x0000, 0x0000, MB2(0xC4B5), 0x0000, + 0x0000, MB2(0xC4B6), MB2(0xC4B7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4B8), MB2(0xC4B9), 0x0000, MB2(0xC4BA), + 0x0000, 0x0000, MB2(0xC4BB), MB2(0xC4BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4BD), 0x0000, MB2(0xC4BE), + 0x0000, MB2(0xC4BF), 0x0000, 0x0000, + MB2(0xC4C0), 0x0000, 0x0000, MB2(0xC4C1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4C2), 0x0000, /* 6940 */ + 0x0000, MB2(0xC4C3), 0x0000, 0x0000, + 0x0000, MB2(0xC4C4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4C6), + 0x0000, 0x0000, 0x0000, MB2(0xC4C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4C8), /* 6960 */ + MB2(0xC4C9), MB2(0xC4CA), MB2(0xC4CB), 0x0000, + MB2(0xC4CC), MB2(0xC4CD), 0x0000, 0x0000, + MB2(0xC4CE), 0x0000, 0x0000, 0x0000, + MB2(0xC4CF), MB2(0xC4D0), MB2(0xC4D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4D2), MB2(0xC4D3), + 0x0000, 0x0000, 0x0000, MB2(0xC4D4), + MB2(0xC4D5), 0x0000, 0x0000, 0x0000, /* 6980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4D6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4D7), 0x0000, + 0x0000, 0x0000, MB2(0xC4D8), 0x0000, + MB2(0xC4D9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4DA), 0x0000, 0x0000, /* 69A0 */ + 0x0000, MB2(0xC4DB), MB2(0xC4DC), 0x0000, + MB2(0xC4DD), 0x0000, 0x0000, MB2(0xC4DE), + 0x0000, MB2(0xC4DF), 0x0000, MB2(0xC4E0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4E1), + MB2(0xC4E2), 0x0000, MB2(0xC4E3), 0x0000, + MB2(0xC4E4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */ + 0x0000, MB2(0xC4E5), 0x0000, 0x0000, + MB2(0xC4E6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC4E7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4E8), MB2(0xC4E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4EA), 0x0000, /* 69E0 */ + 0x0000, MB2(0xC4EB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4EC), MB2(0xC4ED), + 0x0000, MB2(0xC4EE), 0x0000, MB2(0xC4EF), + 0x0000, MB2(0xC4F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4F1), 0x0000, + MB2(0xC4F2), MB2(0xC4F3), 0x0000, MB2(0xC4F4), /* 6A00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC4F5), + 0x0000, MB2(0xC4F6), 0x0000, 0x0000, + 0x0000, MB2(0xC4F7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC4F8), 0x0000, + 0x0000, MB2(0xC4F9), 0x0000, 0x0000, + MB2(0xC4FA), 0x0000, 0x0000, 0x0000, /* 6A20 */ + MB2(0xC4FB), 0x0000, 0x0000, 0x0000, + MB2(0xC4FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC4FD), 0x0000, MB2(0xC4FE), 0x0000, + MB2(0xC5A1), 0x0000, 0x0000, MB2(0xC5A2), + 0x0000, 0x0000, 0x0000, MB2(0xC5A3), + 0x0000, 0x0000, MB2(0xC5A4), MB2(0xC5A5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */ + 0x0000, MB2(0xC5A6), MB2(0xC5A7), 0x0000, + 0x0000, MB2(0xC5A8), MB2(0xC5A9), 0x0000, + 0x0000, 0x0000, MB2(0xC5AA), 0x0000, + MB2(0xC5AB), MB2(0xC5AC), MB2(0xC5AD), 0x0000, + 0x0000, MB2(0xC5AE), MB2(0xC5AF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5B0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */ + MB2(0xC5B1), 0x0000, 0x0000, MB2(0xC5B2), + 0x0000, 0x0000, MB2(0xC5B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5B4), 0x0000, MB2(0xC5B5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5B6), 0x0000, + 0x0000, MB2(0xC5B7), 0x0000, MB2(0xC5B8), /* 6A80 */ + 0x0000, 0x0000, MB2(0xC5B9), MB2(0xC5BA), + 0x0000, MB2(0xC5BB), 0x0000, MB2(0xC5BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5BE), + 0x0000, MB2(0xC5BF), MB2(0xC5C0), MB2(0xC5C1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */ + 0x0000, MB2(0xC5C2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5C3), + 0x0000, 0x0000, 0x0000, MB2(0xC5C4), + MB2(0xC5C5), MB2(0xC5C6), 0x0000, 0x0000, + MB2(0xC5C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5C8), MB2(0xC5C9), MB2(0xC5CA), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */ + 0x0000, 0x0000, MB2(0xC5CB), 0x0000, + MB2(0xC5CD), MB2(0xC5CC), 0x0000, 0x0000, + MB2(0xC5CE), 0x0000, 0x0000, 0x0000, + MB2(0xC5CF), 0x0000, 0x0000, 0x0000, + MB2(0xC5D0), MB2(0xC5D1), MB2(0xC5D2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5D3), MB2(0xC5D4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */ + MB2(0xC5D5), 0x0000, 0x0000, MB2(0xC5D6), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5D7), 0x0000, 0x0000, 0x0000, + MB2(0xC5D8), MB2(0xC5D9), MB2(0xC5DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC5DB), MB2(0xC5DC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5DD), MB2(0xC5DE), /* 6B00 */ + 0x0000, 0x0000, MB2(0xC5DF), MB2(0xC5E0), + 0x0000, MB2(0xC5E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5E2), + MB2(0xC5E3), MB2(0xC5E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5E5), + 0x0000, 0x0000, 0x0000, MB2(0xC5E6), + 0x0000, 0x0000, MB2(0xC5E7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */ + MB2(0xC5E8), 0x0000, 0x0000, 0x0000, + MB2(0xC5E9), 0x0000, 0x0000, MB2(0xC5EA), + MB2(0xC5EB), 0x0000, 0x0000, MB2(0xC5EC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5ED), MB2(0xC5EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC5EF), + 0x0000, 0x0000, 0x0000, MB2(0xC5F0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */ + 0x0000, 0x0000, MB2(0xC5F1), 0x0000, + 0x0000, 0x0000, MB2(0xC5F2), 0x0000, + 0x0000, MB2(0xC5F3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC5F4), 0x0000, + 0x0000, 0x0000, MB2(0xC5F5), 0x0000, + MB2(0xC5F6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5F7), 0x0000, 0x0000, + MB2(0xC5F8), 0x0000, 0x0000, 0x0000, /* 6B60 */ + 0x0000, 0x0000, 0x0000, MB2(0xC5F9), + 0x0000, 0x0000, 0x0000, MB2(0xC5FA), + 0x0000, 0x0000, MB2(0xC5FB), 0x0000, + MB2(0xC5FC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5FD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC5FE), MB2(0xC6A1), 0x0000, + 0x0000, 0x0000, MB2(0xC6A2), 0x0000, /* 6B80 */ + 0x0000, MB2(0xC6A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6A4), + 0x0000, 0x0000, 0x0000, MB2(0xC6A5), + 0x0000, 0x0000, 0x0000, MB2(0xC6A6), + MB2(0xC6A7), 0x0000, MB2(0xC6A8), MB2(0xC6A9), /* 6BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6AA), MB2(0xC6AB), 0x0000, 0x0000, + MB2(0xC6AC), MB2(0xC6AD), MB2(0xC6AE), 0x0000, + MB2(0xC6AF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6B0), MB2(0xC6B1), 0x0000, 0x0000, + 0x0000, MB2(0xC6B2), MB2(0xC6B3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6B4), /* 6BC0 */ + MB2(0xC6B5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6B6), 0x0000, 0x0000, + MB2(0xC6B7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6B8), 0x0000, + 0x0000, 0x0000, MB2(0xC6B9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6BA), 0x0000, MB2(0xC6BB), /* 6BE0 */ + 0x0000, 0x0000, MB2(0xC6BC), MB2(0xC6BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6BE), 0x0000, + 0x0000, MB2(0xC6BF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6C0), + 0x0000, MB2(0xC6C1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6C2), + 0x0000, 0x0000, MB2(0xC6C3), 0x0000, /* 6C00 */ + MB2(0xC6C4), MB2(0xC6C5), 0x0000, 0x0000, + 0x0000, MB2(0xC6C6), 0x0000, 0x0000, + 0x0000, MB2(0xC6C7), MB2(0xC6C8), 0x0000, + MB2(0xC6C9), 0x0000, MB2(0xC6CA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6CB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6CC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */ + 0x0000, 0x0000, MB2(0xC6CD), MB2(0xC6CE), + MB2(0xC6CF), 0x0000, 0x0000, 0x0000, + MB2(0xC6D0), 0x0000, MB2(0xC6D1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC6D2), + 0x0000, MB2(0xC6D3), MB2(0xC6D4), 0x0000, + 0x0000, 0x0000, MB2(0xC6D5), MB2(0xC6D6), + 0x0000, 0x0000, 0x0000, MB2(0xC6D7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6D8), MB2(0xC6D9), + 0x0000, MB2(0xC6DA), 0x0000, MB2(0xC6DB), + 0x0000, 0x0000, MB2(0xC6DC), 0x0000, + MB2(0xC6DD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6DE), 0x0000, MB2(0xC6DF), + MB2(0xC6E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7B6), + 0x0000, 0x0000, 0x0000, MB2(0xC6E1), + 0x0000, MB2(0xC6E2), 0x0000, MB2(0xC6E3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6E4), 0x0000, MB2(0xC6E5), 0x0000, + MB2(0xC6E6), MB2(0xC6E7), 0x0000, MB2(0xC6E8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */ + 0x0000, MB2(0xC6E9), MB2(0xC6EA), MB2(0xC6EB), + 0x0000, MB2(0xC6EC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6ED), MB2(0xC6EE), 0x0000, MB2(0xC6EF), + MB2(0xC6F0), 0x0000, 0x0000, 0x0000, + MB2(0xC6F1), 0x0000, 0x0000, MB2(0xC6F2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC6F3), 0x0000, MB2(0xC6F4), 0x0000, + MB2(0xC6F5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC6F6), 0x0000, /* 6CC0 */ + 0x0000, 0x0000, MB2(0xC6F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC6F8), 0x0000, MB2(0xC6F9), + MB2(0xC6FA), MB2(0xC6FB), MB2(0xC6FC), 0x0000, + MB2(0xC6FD), 0x0000, MB2(0xC6FE), 0x0000, + 0x0000, 0x0000, MB2(0xC7A1), 0x0000, + MB2(0xC7A2), 0x0000, 0x0000, 0x0000, + MB2(0xC7A3), 0x0000, 0x0000, 0x0000, /* 6CE0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7A4), + 0x0000, MB2(0xC7A5), 0x0000, MB2(0xC7A6), + MB2(0xC7A7), 0x0000, MB2(0xC7A8), 0x0000, + 0x0000, 0x0000, MB2(0xC7A9), 0x0000, + MB2(0xC7AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */ + MB2(0xC7AB), 0x0000, 0x0000, MB2(0xC7AC), + 0x0000, 0x0000, MB2(0xC7AD), 0x0000, + 0x0000, 0x0000, MB2(0xC7AE), MB2(0xC7AF), + 0x0000, MB2(0xC7B0), 0x0000, MB2(0xC7B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */ + 0x0000, 0x0000, MB2(0xC7B3), MB2(0xC7B4), + MB2(0xC7B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7B7), MB2(0xC7B8), + 0x0000, MB2(0xC7B9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7BA), 0x0000, 0x0000, + MB2(0xC7BB), 0x0000, 0x0000, MB2(0xC7BC), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7BD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7BE), MB2(0xC7BF), + 0x0000, MB2(0xC7C0), 0x0000, 0x0000, /* 6D60 */ + 0x0000, MB2(0xC7C1), 0x0000, MB2(0xC7C2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7C3), + MB2(0xC7C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7C5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7C6), 0x0000, /* 6D80 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7C7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC7C8), MB2(0xC7C9), 0x0000, + MB2(0xC7CA), 0x0000, MB2(0xC7CB), MB2(0xC7CC), + MB2(0xC7CD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7CE), 0x0000, + MB2(0xC7CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7D0), 0x0000, 0x0000, MB2(0xC7D1), + 0x0000, MB2(0xC7D2), 0x0000, 0x0000, + 0x0000, MB2(0xC7D3), 0x0000, MB2(0xC7D4), + 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */ + MB2(0xC7D5), 0x0000, 0x0000, 0x0000, + MB2(0xC7D6), 0x0000, MB2(0xC7D7), 0x0000, + 0x0000, 0x0000, MB2(0xC7D8), MB2(0xC7D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7DA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7DB), + 0x0000, MB2(0xC7DC), 0x0000, MB2(0xC7DD), + MB2(0xC7DE), 0x0000, MB2(0xC7DF), 0x0000, /* 6DE0 */ + 0x0000, MB2(0xC7E0), 0x0000, 0x0000, + 0x0000, MB2(0xC7E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC7E2), + MB2(0xC7E3), 0x0000, 0x0000, 0x0000, + MB2(0xC7E4), 0x0000, MB2(0xC7E5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7E6), 0x0000, 0x0000, 0x0000, + MB2(0xC7E7), 0x0000, 0x0000, 0x0000, /* 6E00 */ + MB2(0xC7E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7E9), 0x0000, + 0x0000, 0x0000, MB2(0xC7EA), 0x0000, /* 6E20 */ + 0x0000, 0x0000, 0x0000, MB2(0xC7EB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC7EC), 0x0000, + 0x0000, 0x0000, MB2(0xC7ED), 0x0000, + 0x0000, MB2(0xC7EE), 0x0000, MB2(0xC7EF), + MB2(0xC7F0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */ + MB2(0xC7F1), MB2(0xC7F2), 0x0000, 0x0000, + MB2(0xC7F3), MB2(0xC7F4), 0x0000, MB2(0xC7F5), + 0x0000, 0x0000, 0x0000, MB2(0xC7F6), + 0x0000, MB2(0xC7F7), MB2(0xC7F8), MB2(0xC7F9), + MB2(0xC7FA), 0x0000, 0x0000, MB2(0xC7FB), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC7FC), MB2(0xC7FD), MB2(0xC7FE), 0x0000, + 0x0000, 0x0000, MB2(0xC8A1), MB2(0xC8A2), /* 6E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8A3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8A4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8A5), + 0x0000, MB2(0xC8A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8A8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8AA), 0x0000, 0x0000, 0x0000, /* 6EA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC8AB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8AC), MB2(0xC8AD), 0x0000, + 0x0000, MB2(0xC8AE), 0x0000, MB2(0xC8AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8B0), + 0x0000, 0x0000, 0x0000, MB2(0xC8B1), + MB2(0xC8B2), MB2(0xC8B3), 0x0000, MB2(0xC8B4), /* 6EC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xC8B5), + MB2(0xC8B6), 0x0000, MB2(0xC8B7), 0x0000, + 0x0000, MB2(0xC8B8), MB2(0xC8B9), MB2(0xC8BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8BB), + 0x0000, MB2(0xC8BC), MB2(0xC8BD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8BE), 0x0000, MB2(0xC8BF), + 0x0000, MB2(0xC8C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */ + MB2(0xC8C1), 0x0000, 0x0000, 0x0000, + MB2(0xC8C2), 0x0000, MB2(0xC8C3), 0x0000, + MB2(0xC8C4), MB2(0xC8C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8C6), 0x0000, + MB2(0xC8C7), 0x0000, MB2(0xC8C8), MB2(0xC8C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */ + 0x0000, 0x0000, MB2(0xC8CA), 0x0000, + 0x0000, MB2(0xC8CB), MB2(0xC8CC), 0x0000, + 0x0000, MB2(0xC8D3), 0x0000, MB2(0xC8CD), + MB2(0xC8CE), 0x0000, 0x0000, MB2(0xC8CF), + 0x0000, 0x0000, MB2(0xC8D0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8D1), + MB2(0xC8D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8D4), + 0x0000, MB2(0xC8D5), MB2(0xC8D6), MB2(0xC8D7), + 0x0000, 0x0000, 0x0000, MB2(0xC8D8), + 0x0000, MB2(0xC8D9), MB2(0xC8DA), 0x0000, + 0x0000, MB2(0xC8DB), MB2(0xC8DC), 0x0000, + 0x0000, MB2(0xC8DD), MB2(0xC8DE), 0x0000, /* 6F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8DF), 0x0000, 0x0000, 0x0000, + MB2(0xC8E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8E1), MB2(0xC8E2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8E3), /* 6F80 */ + 0x0000, 0x0000, 0x0000, MB2(0xC8E4), + MB2(0xC8E5), 0x0000, 0x0000, MB2(0xC8E6), + MB2(0xC8E7), MB2(0xC8E8), 0x0000, 0x0000, + MB2(0xC8E9), 0x0000, MB2(0xC8EA), MB2(0xC8EB), + MB2(0xC8EC), 0x0000, MB2(0xC8ED), 0x0000, + 0x0000, 0x0000, MB2(0xC8EE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC8EF), + MB2(0xC8F0), 0x0000, 0x0000, 0x0000, /* 6FA0 */ + 0x0000, MB2(0xC8F1), MB2(0xC8F2), MB2(0xC8F3), + MB2(0xC8F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC8F5), MB2(0xC8F6), + MB2(0xC8F7), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC8F8), MB2(0xC8F9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC8FA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */ + 0x0000, MB2(0xC8FB), 0x0000, MB2(0xC8FC), + MB2(0xC8FD), 0x0000, MB2(0xC8FE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9A1), 0x0000, + 0x0000, 0x0000, MB2(0xC9A2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9A3), MB2(0xC9A4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9A5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9A6), 0x0000, 0x0000, + 0x0000, MB2(0xC9A7), 0x0000, 0x0000, + MB2(0xC9A8), MB2(0xC9A9), 0x0000, 0x0000, + MB2(0xC9AA), 0x0000, 0x0000, 0x0000, /* 7000 */ + 0x0000, MB2(0xC9AB), MB2(0xC9AC), MB2(0xC9AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9AE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9AF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9B0), 0x0000, 0x0000, MB2(0xC9B1), /* 7020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9B2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9B3), 0x0000, 0x0000, MB2(0xC9B4), + 0x0000, MB2(0xC9B5), 0x0000, 0x0000, + MB2(0xC9B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9B7), /* 7040 */ + MB2(0xC9B8), 0x0000, 0x0000, 0x0000, + MB2(0xC9B9), MB2(0xC9BA), MB2(0xC9BB), MB2(0xC9BC), + 0x0000, 0x0000, MB2(0xC9C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9BD), MB2(0xC9BE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9BF), MB2(0xC9C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */ + MB2(0xC9C2), MB2(0xC9C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9C4), 0x0000, MB2(0xC9C5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9C6), MB2(0xC9C7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9C8), 0x0000, + 0x0000, MB2(0xC9C9), 0x0000, 0x0000, /* 7080 */ + 0x0000, MB2(0xC9CA), MB2(0xC9CB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9CC), MB2(0xC9CD), MB2(0xC9CE), MB2(0xC9CF), + MB2(0xC9D0), 0x0000, 0x0000, MB2(0xC9D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */ + MB2(0xC9D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9D3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9D4), MB2(0xC9D5), 0x0000, 0x0000, + MB2(0xC9D6), 0x0000, 0x0000, MB2(0xC9D7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9D8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9D9), 0x0000, MB2(0xC9DA), + MB2(0xC9DB), MB2(0xC9DC), MB2(0xC9DD), 0x0000, + MB2(0xC9DE), 0x0000, 0x0000, 0x0000, + MB2(0xC9DF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */ + MB2(0xC9E0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9E1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9E2), /* 7100 */ + MB2(0xC9E3), MB2(0xC9E4), MB2(0xC9E5), MB2(0xC9E6), + 0x0000, 0x0000, 0x0000, MB2(0xC9E7), + MB2(0xC9E8), 0x0000, 0x0000, MB2(0xC9E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xC9EA), 0x0000, + MB2(0xC9EB), 0x0000, 0x0000, 0x0000, /* 7120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9EC), + 0x0000, MB2(0xC9ED), 0x0000, MB2(0xC9EE), + MB2(0xC9EF), MB2(0xC9F0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9F1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xC9F2), 0x0000, 0x0000, /* 7140 */ + 0x0000, MB2(0xC9F3), MB2(0xC9F4), MB2(0xC9F5), + 0x0000, 0x0000, MB2(0xC9F6), MB2(0xC9F7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xC9F8), 0x0000, MB2(0xC9F9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xC9FA), + 0x0000, 0x0000, MB2(0xC9FB), 0x0000, + MB2(0xC9FC), 0x0000, MB2(0xC9FD), 0x0000, + MB2(0xC9FE), 0x0000, 0x0000, 0x0000, /* 7160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAA2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA3), 0x0000, 0x0000, 0x0000, /* 7180 */ + 0x0000, MB2(0xCAA4), 0x0000, MB2(0xCAA5), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAA6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAA7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAA8), MB2(0xCAA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAAA), 0x0000, MB2(0xCAAB), 0x0000, /* 71A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAAC), + MB2(0xCAAD), 0x0000, MB2(0xCAAE), MB2(0xCAAF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAB1), + MB2(0xCAB2), MB2(0xCAB3), 0x0000, 0x0000, /* 71C0 */ + MB2(0xCAB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAB5), + MB2(0xCAB6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAB7), + 0x0000, 0x0000, MB2(0xCAB8), 0x0000, + 0x0000, MB2(0xCAB9), MB2(0xCABA), 0x0000, + MB2(0xCABB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCABC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCABD), 0x0000, + MB2(0xCABE), 0x0000, 0x0000, 0x0000, /* 7200 */ + 0x0000, 0x0000, 0x0000, MB2(0xCABF), + MB2(0xCAC0), MB2(0xCAC1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC2), + 0x0000, 0x0000, 0x0000, MB2(0xCAC3), + 0x0000, 0x0000, MB2(0xCAC4), 0x0000, + 0x0000, MB2(0xCAC5), 0x0000, MB2(0xCAC6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */ + MB2(0xCAC7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAC8), + 0x0000, 0x0000, 0x0000, MB2(0xCAC9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCACA), 0x0000, 0x0000, 0x0000, + MB2(0xCACB), MB2(0xCACC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCACD), MB2(0xCACE), MB2(0xCACF), /* 7240 */ + 0x0000, MB2(0xCAD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAD1), MB2(0xCAD2), + MB2(0xCAD3), 0x0000, 0x0000, MB2(0xCAD4), + 0x0000, MB2(0xCAD5), MB2(0xCAD6), 0x0000, + 0x0000, 0x0000, MB2(0xCAD7), 0x0000, + MB2(0xCAD8), 0x0000, MB2(0xCAD9), 0x0000, + MB2(0xCADA), 0x0000, 0x0000, MB2(0xCADB), /* 7260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCADC), 0x0000, 0x0000, MB2(0xCADD), + 0x0000, 0x0000, MB2(0xCADE), MB2(0xCADF), + 0x0000, MB2(0xCAE0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAE1), + MB2(0xCAE2), 0x0000, 0x0000, MB2(0xCAE3), + MB2(0xCAE4), 0x0000, 0x0000, MB2(0xCAE5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */ + MB2(0xCAE6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAE7), 0x0000, 0x0000, + 0x0000, MB2(0xCAE8), MB2(0xCAE9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAEA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAEB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCAEC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAED), MB2(0xCAEE), 0x0000, + 0x0000, MB2(0xCAEF), 0x0000, 0x0000, + MB2(0xCAF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAF1), 0x0000, + 0x0000, MB2(0xCAF2), 0x0000, 0x0000, /* 72C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCAF3), + 0x0000, MB2(0xCAF4), 0x0000, 0x0000, + MB2(0xCAF5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCAF6), MB2(0xCAF7), 0x0000, + MB2(0xCAF8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */ + 0x0000, MB2(0xCAFA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCAFB), + MB2(0xCAFC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCAFD), MB2(0xCAFE), + 0x0000, 0x0000, MB2(0xCBA1), 0x0000, + 0x0000, 0x0000, MB2(0xCBA2), 0x0000, /* 7300 */ + MB2(0xCBA3), MB2(0xCBA4), 0x0000, MB2(0xCBA5), + 0x0000, 0x0000, 0x0000, MB2(0xCBA6), + 0x0000, MB2(0xCBA7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBA8), MB2(0xCBA9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBAA), MB2(0xCBAB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBAC), 0x0000, + 0x0000, 0x0000, MB2(0xCBAD), 0x0000, /* 7320 */ + MB2(0xCBAE), 0x0000, 0x0000, MB2(0xCBAF), + MB2(0xCBB0), 0x0000, 0x0000, 0x0000, + MB2(0xCBB1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB2), MB2(0xCBB3), 0x0000, + 0x0000, MB2(0xCBB4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBB5), MB2(0xCBB6), + 0x0000, MB2(0xCBB7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBB8), /* 7340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBB9), 0x0000, 0x0000, + MB2(0xCBBA), 0x0000, MB2(0xCBBB), 0x0000, + 0x0000, 0x0000, MB2(0xCBBC), 0x0000, + MB2(0xCBBD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBBE), MB2(0xCBBF), MB2(0xCBC0), + MB2(0xCBC1), 0x0000, 0x0000, 0x0000, /* 7360 */ + 0x0000, 0x0000, MB2(0xCBC2), MB2(0xCBC3), + 0x0000, MB2(0xCBC4), 0x0000, MB2(0xCBC5), + MB2(0xCBC6), 0x0000, MB2(0xCBC7), MB2(0xCBC8), + 0x0000, MB2(0xCBC9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCBCA), + 0x0000, MB2(0xCBCB), 0x0000, 0x0000, + MB2(0xCBCC), 0x0000, 0x0000, 0x0000, + MB2(0xCBCD), MB2(0xCBCE), 0x0000, MB2(0xCBCF), /* 7380 */ + 0x0000, MB2(0xCBD0), MB2(0xCBD1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCBD2), 0x0000, + MB2(0xCBD3), 0x0000, 0x0000, MB2(0xCBD4), + 0x0000, MB2(0xCBD5), 0x0000, MB2(0xCBD6), + MB2(0xCBD7), 0x0000, 0x0000, 0x0000, + MB2(0xCBD8), 0x0000, MB2(0xCBD9), MB2(0xCBDA), + MB2(0xCBDB), 0x0000, MB2(0xCBDC), 0x0000, /* 73A0 */ + 0x0000, MB2(0xCBDD), MB2(0xCBDE), 0x0000, + 0x0000, 0x0000, MB2(0xCBDF), MB2(0xCBE0), + 0x0000, MB2(0xCBE1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCBE2), 0x0000, MB2(0xCBE3), + 0x0000, MB2(0xCBE4), 0x0000, 0x0000, + MB2(0xCBE5), MB2(0xCBE6), 0x0000, MB2(0xCBE7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */ + 0x0000, MB2(0xCBE8), MB2(0xCBE9), 0x0000, + 0x0000, MB2(0xCBEA), 0x0000, MB2(0xCBEB), + MB2(0xCBEC), 0x0000, 0x0000, MB2(0xCBED), + 0x0000, 0x0000, MB2(0xCBEE), MB2(0xCBEF), + 0x0000, 0x0000, MB2(0xCBF0), 0x0000, + 0x0000, MB2(0xCBF1), 0x0000, 0x0000, + 0x0000, MB2(0xCBF2), 0x0000, 0x0000, + 0x0000, MB2(0xCBF3), 0x0000, MB2(0xCBF4), /* 73E0 */ + 0x0000, 0x0000, MB2(0xCBF5), MB2(0xCBF6), + 0x0000, MB2(0xCBF7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCBF8), MB2(0xCBF9), 0x0000, MB2(0xCBFA), + 0x0000, MB2(0xCBFB), MB2(0xCBFC), MB2(0xCBFD), + 0x0000, MB2(0xCBFE), 0x0000, MB2(0xCCA1), + MB2(0xCCA2), MB2(0xCCA3), 0x0000, 0x0000, /* 7400 */ + MB2(0xCCA4), 0x0000, 0x0000, MB2(0xCCA5), + 0x0000, 0x0000, MB2(0xCCA6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCA7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCA8), MB2(0xCCA9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */ + MB2(0xCCAA), 0x0000, MB2(0xCCAB), 0x0000, + MB2(0xCCAC), MB2(0xCCAD), MB2(0xCCAE), MB2(0xCCAF), + MB2(0xCCB0), MB2(0xCCB1), MB2(0xCCB2), MB2(0xCCB3), + MB2(0xCCB4), MB2(0xCCB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCB7), 0x0000, 0x0000, MB2(0xCCB8), /* 7440 */ + MB2(0xCCB9), 0x0000, MB2(0xCCBA), MB2(0xCCBB), + 0x0000, 0x0000, 0x0000, MB2(0xCCBC), + 0x0000, MB2(0xCCBD), 0x0000, 0x0000, + 0x0000, MB2(0xCCBE), MB2(0xCCBF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCC0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCCC1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCC2), 0x0000, /* 7460 */ + 0x0000, 0x0000, MB2(0xCCC3), MB2(0xCCC4), + MB2(0xCCC5), 0x0000, 0x0000, MB2(0xCCC6), + 0x0000, MB2(0xCCC7), MB2(0xCCC8), 0x0000, + 0x0000, MB2(0xCCC9), MB2(0xCCCA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCCB), MB2(0xCCCC), 0x0000, 0x0000, /* 7480 */ + 0x0000, MB2(0xCCCD), MB2(0xCCCE), MB2(0xCCCF), + 0x0000, MB2(0xCCD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCCD1), + MB2(0xCCD2), MB2(0xCCD3), MB2(0xCCD4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCD5), MB2(0xCCD6), MB2(0xCCD7), 0x0000, + MB2(0xCCD8), 0x0000, 0x0000, MB2(0xCCD9), + MB2(0xCCDA), MB2(0xCCDB), 0x0000, MB2(0xCCDC), /* 74A0 */ + 0x0000, 0x0000, MB2(0xCCDD), 0x0000, + MB2(0xCCDE), MB2(0xCCDF), MB2(0xCCE0), MB2(0xCCE1), + 0x0000, 0x0000, MB2(0xCCE2), MB2(0xCCE3), + 0x0000, MB2(0xCCE4), MB2(0xCCE5), 0x0000, + 0x0000, MB2(0xCCE6), 0x0000, 0x0000, + 0x0000, MB2(0xCCE7), 0x0000, MB2(0xCCE8), + 0x0000, 0x0000, 0x0000, MB2(0xCCE9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCEA), MB2(0xCCEB), 0x0000, 0x0000, + MB2(0xCCEC), 0x0000, 0x0000, 0x0000, + MB2(0xCCED), 0x0000, 0x0000, MB2(0xCCEE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCEF), 0x0000, MB2(0xCCF0), MB2(0xCCF1), + 0x0000, 0x0000, MB2(0xCCF2), MB2(0xCCF3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */ + MB2(0xCCF4), 0x0000, 0x0000, 0x0000, + MB2(0xCCF5), 0x0000, MB2(0xCCF6), MB2(0xCCF7), + 0x0000, 0x0000, 0x0000, MB2(0xCCF8), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCCF9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCCFA), MB2(0xCCFB), + MB2(0xCCFC), 0x0000, 0x0000, MB2(0xCCFD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */ + 0x0000, 0x0000, MB2(0xCCFE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDA1), 0x0000, + 0x0000, 0x0000, MB2(0xCDA2), MB2(0xCDA3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDA4), MB2(0xCDA5), 0x0000, 0x0000, /* 7520 */ + MB2(0xCDA6), 0x0000, 0x0000, MB2(0xCDA7), + 0x0000, MB2(0xCDA8), MB2(0xCDA9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDAA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDAB), 0x0000, + 0x0000, MB2(0xCDAC), 0x0000, 0x0000, + 0x0000, MB2(0xCDAD), MB2(0xCDAE), MB2(0xCDAF), + MB2(0xCDB0), 0x0000, 0x0000, MB2(0xCDB1), /* 7540 */ + 0x0000, 0x0000, 0x0000, MB2(0xCDB2), + MB2(0xCDB3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDB4), 0x0000, + MB2(0xCDB5), 0x0000, MB2(0xCDB6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDB7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDB8), MB2(0xCDB9), + 0x0000, MB2(0xCDBA), 0x0000, 0x0000, /* 7560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDBB), + 0x0000, MB2(0xCDBC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDBD), MB2(0xCDBE), MB2(0xCDBF), + MB2(0xCDC0), MB2(0xCDC1), MB2(0xCDC2), 0x0000, + 0x0000, MB2(0xCDC3), 0x0000, 0x0000, /* 7580 */ + 0x0000, MB2(0xCDC4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDC5), 0x0000, MB2(0xCDC6), MB2(0xCDC7), + 0x0000, MB2(0xCDC8), 0x0000, 0x0000, + 0x0000, MB2(0xCDC9), 0x0000, 0x0000, + MB2(0xCDCA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDCB), 0x0000, /* 75A0 */ + MB2(0xCDCC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDCD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDCE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDCF), + MB2(0xCDD0), MB2(0xCDD1), 0x0000, 0x0000, /* 75C0 */ + MB2(0xCDD2), 0x0000, MB2(0xCDD3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDD4), 0x0000, MB2(0xCDD5), MB2(0xCDD6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDD7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDD8), 0x0000, 0x0000, MB2(0xCDD9), + MB2(0xCDDA), MB2(0xCDDB), 0x0000, 0x0000, /* 75E0 */ + MB2(0xCDDC), 0x0000, 0x0000, MB2(0xCDDD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDDE), 0x0000, MB2(0xCDDF), MB2(0xCDE0), + 0x0000, MB2(0xCDE1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCDE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCDE3), 0x0000, MB2(0xCDE4), MB2(0xCDE5), /* 7600 */ + MB2(0xCDE6), 0x0000, 0x0000, MB2(0xCDE7), + MB2(0xCDE8), 0x0000, MB2(0xCDE9), 0x0000, + MB2(0xCDEA), 0x0000, 0x0000, MB2(0xCDEB), + 0x0000, 0x0000, MB2(0xCDEC), MB2(0xCDED), + 0x0000, MB2(0xCDEE), MB2(0xCDEF), 0x0000, + 0x0000, MB2(0xCDF0), 0x0000, MB2(0xCDF1), + MB2(0xCDF2), MB2(0xCDF3), MB2(0xCDF4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCDF5), /* 7620 */ + 0x0000, MB2(0xCDF6), MB2(0xCDF7), 0x0000, + 0x0000, MB2(0xCDF8), 0x0000, 0x0000, + 0x0000, MB2(0xCDF9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCDFA), MB2(0xCDFB), + 0x0000, MB2(0xCDFC), 0x0000, 0x0000, + MB2(0xCDFD), MB2(0xCDFE), MB2(0xCEA1), 0x0000, + MB2(0xCEA2), 0x0000, 0x0000, 0x0000, + MB2(0xCEA4), MB2(0xCEA5), 0x0000, MB2(0xCEA6), /* 7640 */ + MB2(0xCEA7), MB2(0xCEA8), 0x0000, 0x0000, + 0x0000, MB2(0xCEA9), MB2(0xCEA3), MB2(0xCEAA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEAB), 0x0000, 0x0000, + 0x0000, MB2(0xCEAC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEAD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */ + MB2(0xCEAE), MB2(0xCEAF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB0), MB2(0xCEB1), MB2(0xCEB2), + 0x0000, MB2(0xCEB3), 0x0000, 0x0000, + MB2(0xCEB4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB5), 0x0000, 0x0000, /* 7680 */ + 0x0000, MB2(0xCEB6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEB7), MB2(0xCEB8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCEBA), + MB2(0xCEBB), MB2(0xCEBC), 0x0000, MB2(0xCEBD), + MB2(0xCEBE), 0x0000, MB2(0xCEBF), MB2(0xCEC0), /* 76A0 */ + MB2(0xCEC1), MB2(0xCEC2), MB2(0xCEC3), MB2(0xCEC4), + MB2(0xCEC5), 0x0000, MB2(0xCEC6), 0x0000, + 0x0000, MB2(0xCEC7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEC8), 0x0000, 0x0000, + 0x0000, MB2(0xCEC9), 0x0000, 0x0000, /* 76C0 */ + 0x0000, MB2(0xCECA), 0x0000, 0x0000, + 0x0000, MB2(0xCECB), 0x0000, MB2(0xCECC), + MB2(0xCECD), 0x0000, MB2(0xCECE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCECF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCED0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCED1), 0x0000, 0x0000, 0x0000, /* 76E0 */ + 0x0000, 0x0000, MB2(0xCED2), 0x0000, + MB2(0xCED3), 0x0000, 0x0000, 0x0000, + MB2(0xCED4), 0x0000, 0x0000, 0x0000, + MB2(0xCED5), MB2(0xCED6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCED7), 0x0000, + 0x0000, MB2(0xCED8), 0x0000, 0x0000, + MB2(0xCED9), 0x0000, 0x0000, 0x0000, + MB2(0xCEDA), 0x0000, 0x0000, 0x0000, /* 7700 */ + 0x0000, 0x0000, MB2(0xCEDB), 0x0000, + 0x0000, 0x0000, MB2(0xCEDC), 0x0000, + 0x0000, 0x0000, MB2(0xCEDD), 0x0000, + 0x0000, 0x0000, MB2(0xCEDE), 0x0000, + MB2(0xCEDF), MB2(0xCEE0), 0x0000, MB2(0xCEE1), + 0x0000, MB2(0xCEE2), MB2(0xCEE3), 0x0000, + MB2(0xCEE4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCEE5), 0x0000, /* 7720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEE6), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCEE7), MB2(0xCEE8), MB2(0xCEE9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEEA), MB2(0xCEEB), MB2(0xCEEC), 0x0000, + 0x0000, MB2(0xCEED), 0x0000, 0x0000, + 0x0000, MB2(0xCEEE), MB2(0xCEEF), 0x0000, + 0x0000, 0x0000, MB2(0xCEF0), 0x0000, /* 7740 */ + 0x0000, MB2(0xCEF1), MB2(0xCEF2), 0x0000, + 0x0000, 0x0000, MB2(0xCEF3), 0x0000, + 0x0000, MB2(0xCEF4), MB2(0xCEF5), MB2(0xCEF6), + 0x0000, 0x0000, MB2(0xCEF7), 0x0000, + 0x0000, 0x0000, MB2(0xCEF8), MB2(0xCEF9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCEFA), 0x0000, MB2(0xCEFB), MB2(0xCEFC), + MB2(0xCEFD), 0x0000, MB2(0xCEFE), 0x0000, /* 7760 */ + MB2(0xCFA1), 0x0000, 0x0000, MB2(0xCFA2), + 0x0000, 0x0000, MB2(0xCFA3), 0x0000, + MB2(0xCFA4), 0x0000, 0x0000, 0x0000, + MB2(0xCFA5), 0x0000, MB2(0xCFA6), MB2(0xCFA7), + MB2(0xCFA8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFA9), 0x0000, + 0x0000, MB2(0xCFAA), 0x0000, 0x0000, + MB2(0xCFAB), 0x0000, 0x0000, 0x0000, /* 7780 */ + MB2(0xCFAC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFAD), MB2(0xCFAE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFAF), MB2(0xCFB0), MB2(0xCFB1), 0x0000, + 0x0000, 0x0000, MB2(0xCFB2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFB3), + 0x0000, 0x0000, MB2(0xCFB4), 0x0000, /* 77A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xCFB5), + 0x0000, 0x0000, MB2(0xCFB6), 0x0000, + 0x0000, 0x0000, MB2(0xCFB7), MB2(0xCFB8), + 0x0000, MB2(0xCFB9), 0x0000, 0x0000, + 0x0000, MB2(0xCFBA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFBB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFBC), /* 77C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFBD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFBE), MB2(0xCFBF), 0x0000, + 0x0000, MB2(0xCFC0), 0x0000, 0x0000, + 0x0000, MB2(0xCFC1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFC2), MB2(0xCFC3), + MB2(0xCFC4), 0x0000, 0x0000, 0x0000, /* 77E0 */ + MB2(0xCFC5), 0x0000, MB2(0xCFC6), 0x0000, + 0x0000, 0x0000, MB2(0xCFC7), 0x0000, + MB2(0xCFC8), 0x0000, 0x0000, 0x0000, + MB2(0xCFC9), MB2(0xCFCA), 0x0000, 0x0000, + MB2(0xCFCB), 0x0000, 0x0000, 0x0000, + MB2(0xCFCC), 0x0000, 0x0000, MB2(0xCFCD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */ + 0x0000, MB2(0xCFCE), MB2(0xCFCF), 0x0000, + 0x0000, MB2(0xCFD0), 0x0000, 0x0000, + 0x0000, MB2(0xCFD1), MB2(0xCFD2), 0x0000, + 0x0000, MB2(0xCFD3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFD4), 0x0000, 0x0000, + 0x0000, MB2(0xCFD5), MB2(0xCFD6), MB2(0xCFD7), /* 7820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFD8), MB2(0xCFD9), 0x0000, + MB2(0xCFDA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFDB), 0x0000, MB2(0xCFDC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFDD), /* 7840 */ + MB2(0xCFDE), 0x0000, 0x0000, MB2(0xCFDF), + MB2(0xCFE0), 0x0000, 0x0000, 0x0000, + MB2(0xCFE1), 0x0000, MB2(0xCFE2), 0x0000, + 0x0000, 0x0000, MB2(0xCFE3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFE4), 0x0000, MB2(0xCFE5), 0x0000, + MB2(0xCFE6), MB2(0xCFE7), 0x0000, MB2(0xCFE8), /* 7860 */ + MB2(0xCFE9), 0x0000, 0x0000, 0x0000, + MB2(0xCFEA), 0x0000, MB2(0xCFEB), 0x0000, + 0x0000, 0x0000, MB2(0xCFEC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFED), 0x0000, + 0x0000, 0x0000, MB2(0xCFEE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xCFEF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xCFF0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xCFF1), 0x0000, 0x0000, 0x0000, + MB2(0xCFF2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xCFF4), MB2(0xCFF5), MB2(0xCFF6), + 0x0000, MB2(0xCFF3), 0x0000, 0x0000, /* 78A0 */ + MB2(0xCFF7), 0x0000, 0x0000, 0x0000, + MB2(0xCFF8), 0x0000, 0x0000, 0x0000, + MB2(0xCFF9), MB2(0xCFFA), 0x0000, 0x0000, + MB2(0xCFFB), MB2(0xCFFC), MB2(0xCFFD), MB2(0xCFFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0A1), + 0x0000, MB2(0xD0A2), 0x0000, MB2(0xD0A3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD0A4), + MB2(0xD0A5), MB2(0xD0A6), 0x0000, 0x0000, + MB2(0xD0A7), 0x0000, MB2(0xD0A8), 0x0000, + 0x0000, 0x0000, MB2(0xD0A9), MB2(0xD0AA), + 0x0000, MB2(0xD0AB), MB2(0xD0AC), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0AE), + 0x0000, 0x0000, 0x0000, MB2(0xD0AF), + MB2(0xD0B0), MB2(0xD0B1), 0x0000, 0x0000, /* 78E0 */ + MB2(0xD0AD), 0x0000, MB2(0xD0B2), 0x0000, + 0x0000, 0x0000, MB2(0xD0B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0B4), MB2(0xD0B5), + 0x0000, 0x0000, MB2(0xD0B7), MB2(0xD0B8), + 0x0000, 0x0000, MB2(0xD0B9), MB2(0xD0BA), + 0x0000, 0x0000, 0x0000, MB2(0xD0BB), + MB2(0xD0B6), 0x0000, 0x0000, 0x0000, /* 7900 */ + 0x0000, 0x0000, MB2(0xD0BC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0BD), 0x0000, 0x0000, 0x0000, + MB2(0xD0BE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0BF), 0x0000, + MB2(0xD0C0), 0x0000, MB2(0xD0C1), MB2(0xD0C2), + MB2(0xD0C3), 0x0000, 0x0000, 0x0000, /* 7920 */ + 0x0000, MB2(0xD0C4), 0x0000, MB2(0xD0C5), + 0x0000, MB2(0xD0C6), 0x0000, 0x0000, + 0x0000, MB2(0xD0C7), 0x0000, 0x0000, + 0x0000, MB2(0xD0C8), 0x0000, 0x0000, + MB2(0xD0C9), MB2(0xD0CA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0CB), + 0x0000, MB2(0xD0CC), 0x0000, MB2(0xD0CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */ + MB2(0xD0CE), MB2(0xD0CF), MB2(0xD0D0), 0x0000, + 0x0000, 0x0000, MB2(0xD0D1), MB2(0xD0D2), + 0x0000, 0x0000, 0x0000, MB2(0xD0D3), + 0x0000, MB2(0xD0D4), 0x0000, 0x0000, + MB2(0xD0D5), 0x0000, 0x0000, 0x0000, + MB2(0xD0D6), 0x0000, 0x0000, MB2(0xD0D7), + MB2(0xD0D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */ + 0x0000, 0x0000, 0x0000, MB2(0xD0D9), + 0x0000, MB2(0xD0DA), 0x0000, MB2(0xD0DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0DC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0DD), 0x0000, MB2(0xD0DE), + MB2(0xD0DF), 0x0000, MB2(0xD0E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0E1), + MB2(0xD0E2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0E3), 0x0000, MB2(0xD0E4), + MB2(0xD0E5), MB2(0xD0E6), MB2(0xD0E7), 0x0000, + MB2(0xD0E8), 0x0000, 0x0000, MB2(0xD0E9), + MB2(0xD0EA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD0EB), 0x0000, 0x0000, /* 79A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0EC), MB2(0xD0ED), 0x0000, MB2(0xD0EE), + 0x0000, 0x0000, 0x0000, MB2(0xD0EF), + 0x0000, MB2(0xD0F0), 0x0000, 0x0000, + MB2(0xD0F1), 0x0000, 0x0000, 0x0000, + MB2(0xD0F2), 0x0000, 0x0000, MB2(0xD0F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD0F4), 0x0000, /* 79C0 */ + MB2(0xD0F5), 0x0000, 0x0000, MB2(0xD0F6), + MB2(0xD0F7), 0x0000, MB2(0xD0F8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD0F9), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD0FA), 0x0000, MB2(0xD0FB), 0x0000, + 0x0000, 0x0000, MB2(0xD0FC), 0x0000, + 0x0000, MB2(0xD0FD), MB2(0xD0FE), 0x0000, + MB2(0xD1A1), 0x0000, MB2(0xD1A2), 0x0000, /* 79E0 */ + 0x0000, MB2(0xD1A3), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1A4), MB2(0xD1A5), + 0x0000, MB2(0xD1A6), 0x0000, 0x0000, + 0x0000, MB2(0xD1A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1A8), 0x0000, 0x0000, 0x0000, + MB2(0xD1A9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1AA), MB2(0xD1AB), /* 7A00 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1AC), + 0x0000, MB2(0xD1AD), MB2(0xD1AE), 0x0000, + MB2(0xD1AF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1B0), 0x0000, 0x0000, + 0x0000, MB2(0xD1B1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1B2), + 0x0000, 0x0000, MB2(0xD1B3), 0x0000, + 0x0000, MB2(0xD1B4), 0x0000, 0x0000, /* 7A20 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1B5), + 0x0000, 0x0000, 0x0000, MB2(0xD1B6), + 0x0000, MB2(0xD1B7), 0x0000, MB2(0xD1B8), + MB2(0xD1B9), 0x0000, 0x0000, 0x0000, + MB2(0xD1BA), MB2(0xD1BB), 0x0000, 0x0000, + MB2(0xD1BC), MB2(0xD1BD), MB2(0xD1BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */ + MB2(0xD1BF), MB2(0xD1C0), 0x0000, MB2(0xD1C1), + MB2(0xD1C2), 0x0000, 0x0000, 0x0000, + MB2(0xD1C3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1C4), MB2(0xD1C5), 0x0000, + 0x0000, MB2(0xD1C6), 0x0000, 0x0000, + MB2(0xD1C7), MB2(0xD1C8), 0x0000, MB2(0xD1C9), + MB2(0xD1CA), 0x0000, 0x0000, 0x0000, /* 7A60 */ + 0x0000, MB2(0xD1CB), 0x0000, MB2(0xD1CC), + 0x0000, 0x0000, MB2(0xD1CD), 0x0000, + 0x0000, MB2(0xD1CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1CF), 0x0000, 0x0000, + MB2(0xD1D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1D1), 0x0000, + MB2(0xD1D2), 0x0000, MB2(0xD1D3), 0x0000, /* 7A80 */ + 0x0000, MB2(0xD1D4), MB2(0xD1D5), 0x0000, + 0x0000, 0x0000, MB2(0xD1D6), MB2(0xD1D7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1D8), MB2(0xD1D9), 0x0000, 0x0000, + MB2(0xD1DA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD1DB), 0x0000, + MB2(0xD1DC), 0x0000, 0x0000, MB2(0xD1DD), /* 7AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1DF), + 0x0000, MB2(0xD1E0), 0x0000, 0x0000, + 0x0000, MB2(0xD1E1), 0x0000, MB2(0xD1E2), + MB2(0xD1E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */ + 0x0000, 0x0000, MB2(0xD1E4), 0x0000, + 0x0000, MB2(0xD1E5), 0x0000, 0x0000, + MB2(0xD1E6), 0x0000, MB2(0xD1E7), 0x0000, + 0x0000, MB2(0xD1E8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1E9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1EA), MB2(0xD1EB), 0x0000, MB2(0xD1EC), + MB2(0xD1ED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD1EE), 0x0000, 0x0000, + MB2(0xD1EF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1F0), + 0x0000, MB2(0xD1F1), MB2(0xD1F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1F3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD1F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD1F5), + 0x0000, 0x0000, 0x0000, MB2(0xD1F6), /* 7B20 */ + 0x0000, 0x0000, 0x0000, MB2(0xD1F7), + 0x0000, MB2(0xD1F8), MB2(0xD1F9), MB2(0xD1FA), + 0x0000, MB2(0xD1FB), MB2(0xD1FC), MB2(0xD1FD), + MB2(0xD1FE), MB2(0xD2A1), 0x0000, 0x0000, + MB2(0xD2A2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2A3), 0x0000, MB2(0xD2A4), + MB2(0xD2A5), MB2(0xD2A6), 0x0000, 0x0000, /* 7B40 */ + 0x0000, 0x0000, 0x0000, MB2(0xD2A7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2A9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2AA), 0x0000, 0x0000, 0x0000, /* 7B60 */ + MB2(0xD2AB), 0x0000, MB2(0xD2AC), 0x0000, + 0x0000, MB2(0xD2AD), MB2(0xD2AE), 0x0000, + 0x0000, MB2(0xD2AF), 0x0000, MB2(0xD2B0), + 0x0000, 0x0000, MB2(0xD2B1), MB2(0xD2B2), + 0x0000, 0x0000, 0x0000, MB2(0xD2B3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */ + MB2(0xD2B4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2B5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2B6), 0x0000, + MB2(0xD2B7), MB2(0xD2B8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2B9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD2BA), + 0x0000, 0x0000, MB2(0xD2BB), 0x0000, + MB2(0xD2BC), 0x0000, 0x0000, 0x0000, /* 7BA0 */ + 0x0000, MB2(0xD2BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2BE), 0x0000, 0x0000, MB2(0xD2BF), + MB2(0xD2C0), 0x0000, MB2(0xD2C1), 0x0000, + 0x0000, MB2(0xD2C2), MB2(0xD2C3), 0x0000, + 0x0000, 0x0000, MB2(0xD2C4), MB2(0xD2C5), + MB2(0xD2C6), MB2(0xD2C7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2C8), 0x0000, /* 7BC0 */ + 0x0000, MB2(0xD2C9), 0x0000, 0x0000, + MB2(0xD2CA), 0x0000, MB2(0xD2CB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2CC), 0x0000, MB2(0xD2CD), MB2(0xD2CE), + 0x0000, MB2(0xD2CF), MB2(0xD2D0), MB2(0xD2D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2D2), 0x0000, MB2(0xD2D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD2D4), 0x0000, + MB2(0xD2D5), MB2(0xD2D6), 0x0000, 0x0000, + MB2(0xD2D7), MB2(0xD2D8), MB2(0xD2D9), 0x0000, + MB2(0xD2DA), 0x0000, MB2(0xD2DB), 0x0000, + 0x0000, MB2(0xD2DC), MB2(0xD2DD), MB2(0xD2DE), /* 7C00 */ + MB2(0xD2DF), 0x0000, MB2(0xD2E0), 0x0000, + 0x0000, MB2(0xD2E1), 0x0000, MB2(0xD2E2), + MB2(0xD2E3), 0x0000, MB2(0xD2E4), MB2(0xD2E5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2E6), 0x0000, MB2(0xD2E7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD2E8), 0x0000, 0x0000, 0x0000, /* 7C20 */ + 0x0000, MB2(0xD2E9), MB2(0xD2EA), 0x0000, + MB2(0xD2EB), 0x0000, 0x0000, 0x0000, + MB2(0xD2EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2ED), 0x0000, MB2(0xD2EE), + MB2(0xD2EF), 0x0000, MB2(0xD2F0), 0x0000, + 0x0000, MB2(0xD2F1), MB2(0xD2F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */ + 0x0000, 0x0000, MB2(0xD2F3), 0x0000, + 0x0000, 0x0000, MB2(0xD2F4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD2F6), MB2(0xD2F7), MB2(0xD2F8), + 0x0000, MB2(0xD2F5), 0x0000, 0x0000, + 0x0000, MB2(0xD2F9), MB2(0xD2FA), MB2(0xD2FB), + MB2(0xD2FC), MB2(0xD2FD), MB2(0xD2FE), 0x0000, + 0x0000, MB2(0xD3A1), 0x0000, MB2(0xD3A2), /* 7C60 */ + 0x0000, 0x0000, 0x0000, MB2(0xD3A3), + 0x0000, MB2(0xD3A4), 0x0000, 0x0000, + 0x0000, MB2(0xD3A5), MB2(0xD3A6), 0x0000, + MB2(0xD3A7), 0x0000, MB2(0xD3A8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3A9), 0x0000, 0x0000, + MB2(0xD3AA), MB2(0xD3AB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */ + 0x0000, 0x0000, MB2(0xD3AC), MB2(0xD3AD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3AE), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3AF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3B0), 0x0000, + MB2(0xD3B1), 0x0000, 0x0000, 0x0000, /* 7CA0 */ + 0x0000, 0x0000, MB2(0xD3B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3B3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3B4), MB2(0xD3B5), + 0x0000, 0x0000, MB2(0xD3B6), MB2(0xD3B7), + MB2(0xD3B8), 0x0000, 0x0000, MB2(0xD3B9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */ + MB2(0xD3BA), 0x0000, 0x0000, MB2(0xD3BB), + MB2(0xD3BC), MB2(0xD3BD), 0x0000, 0x0000, + 0x0000, MB2(0xD3BE), 0x0000, MB2(0xD3BF), + 0x0000, 0x0000, 0x0000, MB2(0xD3C0), + MB2(0xD3C1), MB2(0xD3C2), 0x0000, MB2(0xD3C3), + 0x0000, MB2(0xD3C4), MB2(0xD3C5), 0x0000, + 0x0000, MB2(0xD3C6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */ + 0x0000, 0x0000, MB2(0xD3C7), 0x0000, + 0x0000, MB2(0xD3C8), 0x0000, MB2(0xD3C9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3CA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3CB), /* 7D00 */ + 0x0000, 0x0000, 0x0000, MB2(0xD3CC), + MB2(0xD3CD), MB2(0xD3CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3CF), + 0x0000, MB2(0xD3D0), MB2(0xD3D1), MB2(0xD3D2), + 0x0000, 0x0000, MB2(0xD3D3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3D4), MB2(0xD3D5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD3D6), /* 7D20 */ + 0x0000, 0x0000, MB2(0xD3D7), 0x0000, + 0x0000, 0x0000, MB2(0xD3D8), 0x0000, + 0x0000, MB2(0xD3D9), 0x0000, 0x0000, + 0x0000, MB2(0xD3DA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3DB), MB2(0xD3DC), MB2(0xD3DD), 0x0000, + MB2(0xD3DE), MB2(0xD3DF), 0x0000, 0x0000, /* 7D40 */ + 0x0000, 0x0000, 0x0000, MB2(0xD3E0), + MB2(0xD3E1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3E2), 0x0000, 0x0000, + 0x0000, MB2(0xD3E3), 0x0000, MB2(0xD3E4), + 0x0000, 0x0000, 0x0000, MB2(0xD3E5), + 0x0000, MB2(0xD3E6), MB2(0xD3E7), 0x0000, + MB2(0xD3E8), MB2(0xD3E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */ + 0x0000, MB2(0xD3EA), 0x0000, MB2(0xD3EB), + 0x0000, 0x0000, MB2(0xD3EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD3EE), 0x0000, MB2(0xD3EF), MB2(0xD3F0), + 0x0000, 0x0000, 0x0000, MB2(0xD3F1), + 0x0000, MB2(0xD3F2), MB2(0xD3F3), MB2(0xD3F4), /* 7D80 */ + 0x0000, MB2(0xD3F5), MB2(0xD3F6), 0x0000, + MB2(0xD3F7), 0x0000, 0x0000, MB2(0xD3F8), + MB2(0xD3F9), MB2(0xD3FA), 0x0000, 0x0000, + 0x0000, MB2(0xD3FB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD3FC), MB2(0xD3FD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD3FE), MB2(0xD4A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */ + 0x0000, 0x0000, MB2(0xD4A2), MB2(0xD4A3), + 0x0000, 0x0000, MB2(0xD4A4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4A5), + 0x0000, 0x0000, MB2(0xD4A6), MB2(0xD4A7), + 0x0000, MB2(0xD4A8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4A9), MB2(0xD4AA), /* 7DC0 */ + MB2(0xD4AB), MB2(0xD4AC), MB2(0xD4AD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4AE), MB2(0xD4AF), MB2(0xD4B0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4B1), + 0x0000, MB2(0xD4B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4B4), 0x0000, /* 7DE0 */ + 0x0000, MB2(0xD4B5), MB2(0xD4B6), 0x0000, + 0x0000, 0x0000, MB2(0xD4B7), MB2(0xD4B8), + 0x0000, MB2(0xD4B9), 0x0000, 0x0000, + 0x0000, MB2(0xD4BA), 0x0000, 0x0000, + 0x0000, MB2(0xD4BB), MB2(0xD4BC), 0x0000, + 0x0000, MB2(0xD4BD), MB2(0xD4BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4B3), 0x0000, 0x0000, 0x0000, /* 7E00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4BF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4C0), MB2(0xD4C1), 0x0000, 0x0000, + 0x0000, MB2(0xD4C2), 0x0000, MB2(0xD4C3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4C4), MB2(0xD4C5), 0x0000, 0x0000, + MB2(0xD4C6), 0x0000, 0x0000, 0x0000, /* 7E20 */ + 0x0000, 0x0000, 0x0000, MB2(0xD4C7), + MB2(0xD4C8), 0x0000, 0x0000, 0x0000, + MB2(0xD4C9), MB2(0xD4CA), 0x0000, MB2(0xD4CB), + 0x0000, 0x0000, 0x0000, MB2(0xD4CC), + 0x0000, 0x0000, MB2(0xD4CD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4CE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */ + MB2(0xD4CF), MB2(0xD4D0), 0x0000, MB2(0xD4D1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4D2), 0x0000, + MB2(0xD4D3), 0x0000, MB2(0xD4D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4D6), + 0x0000, MB2(0xD4D7), MB2(0xD4D8), 0x0000, /* 7E60 */ + 0x0000, MB2(0xD4D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4DA), + 0x0000, 0x0000, MB2(0xD4DB), MB2(0xD4DC), + 0x0000, 0x0000, 0x0000, MB2(0xD4DD), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD4DE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD4DF), 0x0000, + 0x0000, MB2(0xD4E0), 0x0000, 0x0000, /* 7E80 */ + 0x0000, 0x0000, MB2(0xD4E1), MB2(0xD4E2), + 0x0000, 0x0000, MB2(0xD4E3), 0x0000, + 0x0000, MB2(0xD4E4), 0x0000, 0x0000, + 0x0000, MB2(0xD4E5), 0x0000, 0x0000, + 0x0000, MB2(0xD4E6), 0x0000, 0x0000, + MB2(0xD4E7), 0x0000, MB2(0xD4E8), 0x0000, + 0x0000, MB2(0xD4E9), MB2(0xD4EA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4EC), + MB2(0xD4EB), MB2(0xD4ED), MB2(0xD4EE), MB2(0xD4EF), + 0x0000, 0x0000, 0x0000, MB2(0xD4F0), /* 7F40 */ + MB2(0xD4F1), 0x0000, 0x0000, MB2(0xD4F2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4F3), + 0x0000, 0x0000, MB2(0xD4F4), MB2(0xD4F5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD4F6), + MB2(0xD4F7), MB2(0xD4F8), 0x0000, 0x0000, + 0x0000, MB2(0xD4F9), 0x0000, MB2(0xD4FA), /* 7F60 */ + MB2(0xD4FB), MB2(0xD4FC), MB2(0xD4FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD4FE), 0x0000, 0x0000, + 0x0000, MB2(0xD5A1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5A2), MB2(0xD5A3), MB2(0xD5A4), + MB2(0xD5A5), 0x0000, 0x0000, 0x0000, /* 7F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5A6), + 0x0000, MB2(0xD5A7), 0x0000, MB2(0xD5A8), + MB2(0xD5A9), MB2(0xD5AA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5AB), MB2(0xD5AC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5AD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5AE), MB2(0xD5AF), 0x0000, /* 7FA0 */ + 0x0000, 0x0000, MB2(0xD5B0), 0x0000, + 0x0000, 0x0000, MB2(0xD5B1), 0x0000, + 0x0000, MB2(0xD5B2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5B3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5B4), 0x0000, 0x0000, MB2(0xD5B5), + MB2(0xD5B6), 0x0000, 0x0000, MB2(0xD5B7), /* 7FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5B8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5B9), MB2(0xD5BA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD5BB), + 0x0000, 0x0000, 0x0000, MB2(0xD5BC), + 0x0000, 0x0000, 0x0000, MB2(0xD5BD), /* 7FE0 */ + 0x0000, MB2(0xD5BE), 0x0000, 0x0000, + MB2(0xD5BF), 0x0000, 0x0000, 0x0000, + MB2(0xD5C0), 0x0000, MB2(0xD5C1), MB2(0xD5C2), + 0x0000, 0x0000, MB2(0xD5C3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5C4), 0x0000, + 0x0000, MB2(0xD5C5), MB2(0xD5C6), MB2(0xD5C7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */ + 0x0000, 0x0000, 0x0000, MB2(0xD5C8), + MB2(0xD5C9), 0x0000, MB2(0xD5CA), 0x0000, + 0x0000, MB2(0xD5CB), MB2(0xD5CC), MB2(0xD5CD), + 0x0000, MB2(0xD5CE), 0x0000, MB2(0xD5CF), + MB2(0xD5D0), 0x0000, MB2(0xD5D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5D2), MB2(0xD5D3), MB2(0xD5D4), + MB2(0xD5D5), 0x0000, 0x0000, 0x0000, /* 8020 */ + MB2(0xD5D6), 0x0000, MB2(0xD5D7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5D8), 0x0000, MB2(0xD5D9), 0x0000, + MB2(0xD5DA), 0x0000, 0x0000, 0x0000, + MB2(0xD5DB), MB2(0xD5DC), 0x0000, MB2(0xD5DD), + 0x0000, MB2(0xD5DE), MB2(0xD5DF), 0x0000, + MB2(0xD5E0), 0x0000, MB2(0xD5E1), 0x0000, + MB2(0xD5E2), 0x0000, 0x0000, 0x0000, /* 8040 */ + MB2(0xD5E3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5E4), 0x0000, 0x0000, 0x0000, /* 8060 */ + MB2(0xD5E5), 0x0000, MB2(0xD5E6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5E7), 0x0000, 0x0000, + 0x0000, MB2(0xD5E8), 0x0000, 0x0000, + 0x0000, MB2(0xD5E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5EA), 0x0000, 0x0000, /* 8080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5EB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD5EC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5ED), 0x0000, MB2(0xD5EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */ + 0x0000, 0x0000, MB2(0xD5EF), MB2(0xD5F0), + 0x0000, 0x0000, 0x0000, MB2(0xD5F1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F2), MB2(0xD5F3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5F4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5F5), 0x0000, MB2(0xD5F6), + 0x0000, 0x0000, MB2(0xD5F7), 0x0000, + MB2(0xD5F8), MB2(0xD5F9), 0x0000, MB2(0xD5FA), + MB2(0xD5FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD5FC), 0x0000, 0x0000, 0x0000, /* 80E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD5FD), MB2(0xD5FE), 0x0000, + MB2(0xD6A1), 0x0000, MB2(0xD6A2), MB2(0xD6A3), + 0x0000, 0x0000, MB2(0xD6A4), 0x0000, + 0x0000, MB2(0xD6A5), MB2(0xD6A6), 0x0000, + 0x0000, 0x0000, MB2(0xD6A7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6A8), /* 8100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6A9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6AA), MB2(0xD6AB), + MB2(0xD6AC), 0x0000, 0x0000, 0x0000, + MB2(0xD6AD), 0x0000, MB2(0xD6AE), 0x0000, + MB2(0xD6AF), 0x0000, 0x0000, 0x0000, /* 8120 */ + MB2(0xD6B0), 0x0000, 0x0000, MB2(0xD6B1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6B2), 0x0000, 0x0000, 0x0000, + MB2(0xD6B3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6B4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6B5), 0x0000, + MB2(0xD6B6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */ + 0x0000, MB2(0xD6B7), 0x0000, MB2(0xD6B8), + 0x0000, 0x0000, MB2(0xD6B9), 0x0000, + MB2(0xD6BA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6BB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6BC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6BD), MB2(0xD6BE), 0x0000, 0x0000, /* 8160 */ + 0x0000, 0x0000, 0x0000, MB2(0xD6BF), + MB2(0xD6C0), MB2(0xD6C1), 0x0000, 0x0000, + 0x0000, MB2(0xD6C2), 0x0000, MB2(0xD6C3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6C5), 0x0000, 0x0000, /* 8180 */ + MB2(0xD6C7), MB2(0xD6C8), MB2(0xD6C9), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6CA), + 0x0000, 0x0000, MB2(0xD6CB), 0x0000, + MB2(0xD6C6), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6CC), 0x0000, + MB2(0xD6CD), 0x0000, 0x0000, MB2(0xD6CE), + 0x0000, 0x0000, MB2(0xD6CF), 0x0000, + 0x0000, 0x0000, MB2(0xD6D0), 0x0000, /* 81A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D1), 0x0000, + 0x0000, 0x0000, MB2(0xD6D2), 0x0000, + MB2(0xD6D3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6D4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6D6), /* 81C0 */ + 0x0000, MB2(0xD6D7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6D8), MB2(0xD6D5), + 0x0000, 0x0000, MB2(0xD6D9), MB2(0xD6DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6DB), 0x0000, MB2(0xD6DC), + 0x0000, 0x0000, 0x0000, MB2(0xD6DD), + 0x0000, MB2(0xD6DE), MB2(0xD6DF), 0x0000, + 0x0000, MB2(0xD6E0), 0x0000, 0x0000, /* 81E0 */ + MB2(0xD6E1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6E2), + MB2(0xD6E3), 0x0000, 0x0000, 0x0000, + MB2(0xD6E4), MB2(0xD6E5), MB2(0xD6E6), 0x0000, + 0x0000, MB2(0xD6E7), MB2(0xD6E8), 0x0000, + MB2(0xD6E9), MB2(0xD6EA), 0x0000, 0x0000, + 0x0000, MB2(0xD6EB), 0x0000, MB2(0xD6EC), + MB2(0xD6ED), 0x0000, 0x0000, MB2(0xD6EE), /* 8200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6EF), + 0x0000, 0x0000, 0x0000, MB2(0xD6F0), + MB2(0xD6F1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD6F2), MB2(0xD6F3), 0x0000, + 0x0000, MB2(0xD6F4), 0x0000, 0x0000, + 0x0000, MB2(0xD6F5), MB2(0xD6F6), 0x0000, /* 8220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD6F7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6F8), 0x0000, + MB2(0xD6F9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD6FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD6FB), /* 8240 */ + MB2(0xD6FC), MB2(0xD6FD), MB2(0xD6FE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7A1), + 0x0000, 0x0000, MB2(0xD7A2), MB2(0xD7A3), + 0x0000, MB2(0xD7A4), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7A5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7A6), 0x0000, 0x0000, 0x0000, + MB2(0xD7A7), 0x0000, 0x0000, MB2(0xD7A8), /* 8260 */ + 0x0000, 0x0000, 0x0000, MB2(0xD7A9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7AA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7AB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7AC), + 0x0000, MB2(0xD7AD), 0x0000, MB2(0xD7AE), + MB2(0xD7AF), MB2(0xD7B0), 0x0000, MB2(0xD7B1), /* 8280 */ + MB2(0xD7B2), 0x0000, 0x0000, MB2(0xD7B3), + 0x0000, MB2(0xD7B4), MB2(0xD7B5), 0x0000, + 0x0000, 0x0000, MB2(0xD7B6), 0x0000, + 0x0000, MB2(0xD7B7), 0x0000, 0x0000, + MB2(0xD7B8), 0x0000, MB2(0xD7B9), 0x0000, + MB2(0xD7BA), 0x0000, MB2(0xD7BB), MB2(0xD7BC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7BD), MB2(0xD7BE), 0x0000, MB2(0xD7BF), /* 82A0 */ + MB2(0xD7C0), 0x0000, 0x0000, MB2(0xD7C1), + MB2(0xD7C2), MB2(0xD7C3), MB2(0xD7C4), 0x0000, + 0x0000, 0x0000, MB2(0xD7C5), 0x0000, + MB2(0xD7C6), 0x0000, MB2(0xD7C7), 0x0000, + MB2(0xD7C8), 0x0000, 0x0000, MB2(0xD7C9), + 0x0000, 0x0000, MB2(0xD7CA), 0x0000, + MB2(0xD7CB), 0x0000, MB2(0xD7CC), MB2(0xD7CD), + 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */ + 0x0000, 0x0000, MB2(0xD7CE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7CF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7D0), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7D1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7D2), 0x0000, MB2(0xD7D3), 0x0000, /* 82E0 */ + MB2(0xD7D4), 0x0000, 0x0000, 0x0000, + MB2(0xD7D5), 0x0000, MB2(0xD7D6), 0x0000, + 0x0000, MB2(0xD7D7), 0x0000, MB2(0xD7D8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7D9), MB2(0xD7DA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7DB), MB2(0xD7DC), 0x0000, + MB2(0xD7DD), MB2(0xD7DE), 0x0000, 0x0000, /* 8300 */ + 0x0000, 0x0000, 0x0000, MB2(0xD7DF), + MB2(0xD7E0), 0x0000, MB2(0xD7E1), MB2(0xD7E2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD7E4), + 0x0000, MB2(0xD7E5), MB2(0xD7E6), MB2(0xD7E7), + 0x0000, MB2(0xD7E8), MB2(0xD7E9), 0x0000, /* 8320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7EA), MB2(0xD7EB), MB2(0xD7EC), 0x0000, + MB2(0xD7ED), 0x0000, 0x0000, MB2(0xD7EE), + 0x0000, 0x0000, 0x0000, MB2(0xD7EF), + 0x0000, 0x0000, MB2(0xD7F0), 0x0000, + MB2(0xD7F1), MB2(0xD7F2), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD7F3), MB2(0xD7F4), /* 8340 */ + MB2(0xD7F5), 0x0000, 0x0000, MB2(0xD7F6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD7F7), MB2(0xD7F8), 0x0000, + 0x0000, MB2(0xD7F9), 0x0000, MB2(0xD8BE), + MB2(0xD7E3), MB2(0xD7FA), MB2(0xD7FB), MB2(0xD7FC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7FD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD7FE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8A1), 0x0000, MB2(0xD8A2), + MB2(0xD8A3), 0x0000, MB2(0xD8A4), 0x0000, /* 8380 */ + MB2(0xD8A5), 0x0000, MB2(0xD8A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8A7), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8A8), 0x0000, + MB2(0xD8A9), MB2(0xD8AA), 0x0000, 0x0000, + MB2(0xD8AB), MB2(0xD8AC), 0x0000, MB2(0xD8AD), + MB2(0xD8AE), MB2(0xD8AF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83A0 */ + 0x0000, 0x0000, MB2(0xD8B0), MB2(0xD8B1), + 0x0000, MB2(0xD8B2), 0x0000, 0x0000, + MB2(0xD8B3), MB2(0xD8CC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8B4), MB2(0xD8B5), + MB2(0xD8B6), 0x0000, 0x0000, 0x0000, /* 83C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8B7), + 0x0000, MB2(0xD8B8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8B9), + MB2(0xD8BA), MB2(0xD8BB), 0x0000, 0x0000, + MB2(0xD8BC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8BF), 0x0000, MB2(0xD8C0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8C1), 0x0000, + MB2(0xD8C2), MB2(0xD8C3), 0x0000, 0x0000, + MB2(0xD8C4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8C5), 0x0000, 0x0000, /* 8400 */ + 0x0000, 0x0000, MB2(0xD8C6), 0x0000, + 0x0000, 0x0000, MB2(0xD8C7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8C8), + 0x0000, MB2(0xD8C9), 0x0000, 0x0000, + 0x0000, MB2(0xD8CA), 0x0000, 0x0000, + 0x0000, MB2(0xD8CB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD8CE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */ + 0x0000, MB2(0xD8CF), 0x0000, MB2(0xD8D0), + MB2(0xD8D1), 0x0000, MB2(0xD8D2), 0x0000, + 0x0000, MB2(0xD8D3), 0x0000, MB2(0xD8D4), + 0x0000, MB2(0xD8D5), MB2(0xD8D6), 0x0000, + 0x0000, 0x0000, MB2(0xD8D7), 0x0000, + MB2(0xD8D8), MB2(0xD8D9), MB2(0xD8DA), 0x0000, + MB2(0xD8DB), 0x0000, 0x0000, 0x0000, + MB2(0xD8DC), 0x0000, 0x0000, 0x0000, /* 8460 */ + MB2(0xD8DD), MB2(0xD8DE), 0x0000, MB2(0xD8DF), + 0x0000, 0x0000, MB2(0xD8E0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD8E1), 0x0000, 0x0000, MB2(0xD8E2), + MB2(0xD8E3), 0x0000, MB2(0xD8E4), 0x0000, + MB2(0xD8E5), 0x0000, 0x0000, 0x0000, + MB2(0xD8E6), MB2(0xD8E7), 0x0000, 0x0000, + 0x0000, MB2(0xD8E8), 0x0000, 0x0000, /* 8480 */ + 0x0000, MB2(0xD8E9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8EA), MB2(0xD8EB), + 0x0000, MB2(0xD8EC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8ED), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84A0 */ + 0x0000, 0x0000, MB2(0xD8EE), 0x0000, + MB2(0xD8EF), MB2(0xD8F0), MB2(0xD8F1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD8F2), + 0x0000, MB2(0xD8F3), 0x0000, 0x0000, + MB2(0xD8F4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD8F5), 0x0000, + 0x0000, MB2(0xD8F6), MB2(0xD8F7), 0x0000, + MB2(0xD8F8), 0x0000, MB2(0xD8F9), 0x0000, /* 84C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD8FA), + MB2(0xD8FB), 0x0000, 0x0000, 0x0000, + MB2(0xD8FC), 0x0000, 0x0000, MB2(0xD8FD), + 0x0000, 0x0000, 0x0000, MB2(0xD8FE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9A1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9A2), + 0x0000, 0x0000, MB2(0xD9A3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9A4), + MB2(0xD9A5), MB2(0xD9A6), MB2(0xD9A7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9A8), + 0x0000, 0x0000, MB2(0xD9AA), MB2(0xD9AB), + 0x0000, MB2(0xD9AC), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xD9AD), MB2(0xD9AE), /* 8500 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9AF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9B0), 0x0000, MB2(0xD9B1), 0x0000, + MB2(0xD9B2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9B3), 0x0000, MB2(0xD9B4), 0x0000, + 0x0000, 0x0000, MB2(0xD9B5), MB2(0xD9B6), /* 8520 */ + MB2(0xD9B7), MB2(0xD9B8), 0x0000, MB2(0xD9B9), + 0x0000, 0x0000, MB2(0xD9BA), MB2(0xD9BB), + 0x0000, 0x0000, 0x0000, MB2(0xD9BC), + 0x0000, 0x0000, MB2(0xD9A9), MB2(0xD9BD), + MB2(0xD9BE), 0x0000, MB2(0xD9BF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9C0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */ + 0x0000, 0x0000, MB2(0xD9C1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9C2), + MB2(0xD9C3), MB2(0xD9C4), MB2(0xD9C5), MB2(0xD9C6), + 0x0000, 0x0000, MB2(0xD9C7), 0x0000, + 0x0000, MB2(0xD9C8), 0x0000, 0x0000, + MB2(0xD9C9), MB2(0xD9CA), MB2(0xD9CB), MB2(0xD9CC), + MB2(0xD9CD), MB2(0xD9CE), MB2(0xD9CF), 0x0000, /* 8560 */ + MB2(0xD9D0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9D1), + 0x0000, 0x0000, 0x0000, MB2(0xD9D2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9D3), MB2(0xD9D4), MB2(0xD9D5), + 0x0000, MB2(0xD9D6), 0x0000, MB2(0xD9D7), + 0x0000, MB2(0xD9D8), 0x0000, 0x0000, /* 8580 */ + 0x0000, MB2(0xD9D9), MB2(0xD9DA), 0x0000, + 0x0000, MB2(0xD9DB), 0x0000, MB2(0xD9DC), + MB2(0xD9DD), 0x0000, 0x0000, MB2(0xD9DE), + 0x0000, 0x0000, 0x0000, MB2(0xD9DF), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9E0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9E1), 0x0000, MB2(0xD9E2), + MB2(0xD9E3), 0x0000, MB2(0xD9E4), 0x0000, /* 85A0 */ + 0x0000, MB2(0xD9E5), 0x0000, MB2(0xD9E6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9F4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9E7), 0x0000, MB2(0xD9E8), MB2(0xD9E9), + MB2(0xD9EA), 0x0000, 0x0000, 0x0000, + MB2(0xD9EB), MB2(0xD9EC), MB2(0xD9ED), MB2(0xD9EE), + 0x0000, 0x0000, MB2(0xD9EF), 0x0000, /* 85C0 */ + 0x0000, 0x0000, 0x0000, MB2(0xD9F0), + 0x0000, 0x0000, MB2(0xD9F1), MB2(0xD9F2), + 0x0000, 0x0000, MB2(0xD9F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9F5), 0x0000, MB2(0xD9F6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9F7), + MB2(0xD9F8), 0x0000, 0x0000, 0x0000, /* 85E0 */ + 0x0000, 0x0000, MB2(0xD9F9), 0x0000, + MB2(0xD9FA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xD9FB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xD9FC), + 0x0000, 0x0000, MB2(0xD9FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xD9FE), 0x0000, 0x0000, MB2(0xDAA1), + MB2(0xDAA2), 0x0000, 0x0000, 0x0000, /* 8600 */ + MB2(0xDAA3), MB2(0xDAA4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAA5), MB2(0xDAA6), 0x0000, + MB2(0xDAA7), MB2(0xDAA8), MB2(0xDAA9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAAA), MB2(0xDAAB), 0x0000, MB2(0xDAAC), + 0x0000, 0x0000, MB2(0xDAAD), 0x0000, + 0x0000, MB2(0xDAAE), 0x0000, 0x0000, /* 8620 */ + 0x0000, 0x0000, 0x0000, MB2(0xDAAF), + 0x0000, MB2(0xDAB0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAB1), 0x0000, + MB2(0xDAB2), 0x0000, MB2(0xDAB3), 0x0000, + MB2(0xDAB4), MB2(0xDAB5), 0x0000, 0x0000, + MB2(0xDAB6), MB2(0xB8E6), MB2(0xDAB7), 0x0000, /* 8640 */ + 0x0000, 0x0000, MB2(0xDAB8), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAB9), MB2(0xDABA), + 0x0000, 0x0000, MB2(0xDABB), MB2(0xDABC), + MB2(0xDABD), MB2(0xDABE), 0x0000, 0x0000, + 0x0000, MB2(0xDABF), 0x0000, 0x0000, + MB2(0xDAC0), MB2(0xDAC1), MB2(0xDAC2), MB2(0xDAC3), /* 8660 */ + MB2(0xDAC4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAC5), 0x0000, 0x0000, + MB2(0xDAC6), 0x0000, 0x0000, MB2(0xDAC7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAC8), MB2(0xDAC9), MB2(0xDACA), + 0x0000, 0x0000, MB2(0xDACB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDAED), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDACC), 0x0000, 0x0000, + 0x0000, MB2(0xDACD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDACE), 0x0000, + MB2(0xDACF), 0x0000, MB2(0xDAD0), 0x0000, + MB2(0xDAD1), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAD2), 0x0000, 0x0000, /* 86A0 */ + 0x0000, 0x0000, MB2(0xDAD3), MB2(0xDAD4), + MB2(0xDAD5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAD6), 0x0000, 0x0000, + 0x0000, MB2(0xDAD7), 0x0000, MB2(0xDAD8), + MB2(0xDAD9), MB2(0xDADA), 0x0000, MB2(0xDADB), + MB2(0xDADC), MB2(0xDADD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDADE), + MB2(0xDADF), MB2(0xDAE0), 0x0000, MB2(0xDAE1), /* 86C0 */ + 0x0000, MB2(0xDAE2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAE3), MB2(0xDAE4), 0x0000, + 0x0000, MB2(0xDAE5), 0x0000, MB2(0xDAE6), + 0x0000, 0x0000, MB2(0xDAE7), 0x0000, + MB2(0xDAE8), 0x0000, 0x0000, 0x0000, + MB2(0xDAE9), 0x0000, 0x0000, MB2(0xDAEA), /* 86E0 */ + 0x0000, MB2(0xDAEB), 0x0000, MB2(0xDAEC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAEE), 0x0000, + MB2(0xDAEF), MB2(0xDAF0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */ + MB2(0xDAF1), MB2(0xDAF2), 0x0000, MB2(0xDAF3), + 0x0000, 0x0000, 0x0000, MB2(0xDAF4), + 0x0000, 0x0000, MB2(0xDAF5), MB2(0xDAF6), + MB2(0xDAF7), 0x0000, 0x0000, MB2(0xDAF8), + MB2(0xDAF9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDAFA), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDAFB), MB2(0xDAFC), + 0x0000, MB2(0xDAFD), 0x0000, MB2(0xDAFE), /* 8720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBA1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBA2), MB2(0xDBA3), + 0x0000, MB2(0xDBA4), MB2(0xDBA5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBA6), MB2(0xDBA7), 0x0000, + MB2(0xDBA8), MB2(0xDBA9), MB2(0xDBAA), 0x0000, + MB2(0xDBAB), 0x0000, 0x0000, MB2(0xDBAC), /* 8740 */ + 0x0000, MB2(0xDBAD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBAE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBAF), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBB0), 0x0000, 0x0000, + 0x0000, MB2(0xDBB1), 0x0000, 0x0000, /* 8760 */ + MB2(0xDBB2), MB2(0xDBB3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBB4), + 0x0000, MB2(0xDBB5), MB2(0xDBB6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBB7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBB8), /* 8780 */ + MB2(0xDBB9), MB2(0xDBBA), MB2(0xDBBB), MB2(0xDBBC), + MB2(0xDBBD), MB2(0xDBBE), 0x0000, MB2(0xDBBF), + MB2(0xDBC0), 0x0000, 0x0000, 0x0000, + MB2(0xDBC1), 0x0000, 0x0000, MB2(0xDBC2), + 0x0000, MB2(0xDBC3), 0x0000, MB2(0xDBC4), + MB2(0xDBC5), MB2(0xDBC6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBC7), 0x0000, + MB2(0xDBC8), 0x0000, 0x0000, MB2(0xDBC9), /* 87A0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDBCA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBCB), MB2(0xDBCC), MB2(0xDBCD), 0x0000, + 0x0000, MB2(0xDBCE), 0x0000, 0x0000, + 0x0000, MB2(0xDBCF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBD0), MB2(0xDBD1), + 0x0000, MB2(0xDBD2), 0x0000, 0x0000, /* 87C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBD3), MB2(0xDBD4), MB2(0xDBD5), 0x0000, + 0x0000, 0x0000, MB2(0xDBD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBD7), MB2(0xDBD8), 0x0000, + 0x0000, MB2(0xDBD9), MB2(0xDBDA), 0x0000, + MB2(0xDBDB), 0x0000, 0x0000, MB2(0xDBDC), + 0x0000, 0x0000, MB2(0xDBDD), MB2(0xDBDE), /* 87E0 */ + MB2(0xDBDF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDBE0), MB2(0xDBE1), + 0x0000, MB2(0xDBE2), 0x0000, 0x0000, + 0x0000, MB2(0xDBE3), 0x0000, MB2(0xDBE4), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBE5), 0x0000, MB2(0xDBE6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDBE7), + 0x0000, MB2(0xDBE8), 0x0000, MB2(0xDBE9), /* 8800 */ + 0x0000, 0x0000, MB2(0xDBEA), 0x0000, + 0x0000, MB2(0xDBEB), MB2(0xDBEC), MB2(0xDBED), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBEE), 0x0000, MB2(0xDBF0), MB2(0xDBF1), + MB2(0xDBF2), 0x0000, 0x0000, 0x0000, + MB2(0xDBF3), MB2(0xDBEF), MB2(0xDBF4), MB2(0xDBF5), + MB2(0xDBF6), 0x0000, MB2(0xDBF7), MB2(0xDBF8), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDBF9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDBFA), MB2(0xDBFB), 0x0000, + MB2(0xDBFC), 0x0000, MB2(0xDBFD), 0x0000, + 0x0000, MB2(0xDBFE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCA1), 0x0000, + MB2(0xDCA2), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCA3), 0x0000, MB2(0xDCA4), /* 8840 */ + 0x0000, MB2(0xDCA5), 0x0000, 0x0000, + MB2(0xDCA6), MB2(0xDCA7), MB2(0xDCA8), MB2(0xDCA9), + 0x0000, 0x0000, MB2(0xDCAA), 0x0000, + 0x0000, MB2(0xDCAB), 0x0000, 0x0000, + 0x0000, MB2(0xDCAC), MB2(0xDCAD), 0x0000, + MB2(0xDCAE), 0x0000, MB2(0xDCAF), 0x0000, + MB2(0xDCB0), 0x0000, 0x0000, MB2(0xDCB1), + MB2(0xDCB2), 0x0000, 0x0000, 0x0000, /* 8860 */ + MB2(0xDCB3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCB6), 0x0000, MB2(0xDCB7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCB8), 0x0000, 0x0000, 0x0000, /* 8880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCB9), 0x0000, MB2(0xDCBA), MB2(0xDCBB), + MB2(0xDCBC), 0x0000, 0x0000, MB2(0xDCBD), + MB2(0xDCBE), 0x0000, 0x0000, 0x0000, /* 88A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCBF), 0x0000, MB2(0xDCC0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC1), 0x0000, + 0x0000, MB2(0xDCC2), MB2(0xDCC3), 0x0000, + MB2(0xDCC4), 0x0000, 0x0000, 0x0000, /* 88C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCC5), MB2(0xDCC6), + MB2(0xDCC7), MB2(0xDCC8), MB2(0xDCC9), 0x0000, + 0x0000, MB2(0xDCCA), MB2(0xDCCB), MB2(0xDCCC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCCD), + 0x0000, 0x0000, MB2(0xDCCE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 88E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDCCF), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCD0), + MB2(0xDCD1), MB2(0xDCD2), 0x0000, 0x0000, + 0x0000, MB2(0xDCD3), 0x0000, MB2(0xDCD4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCD5), 0x0000, 0x0000, /* 8900 */ + 0x0000, 0x0000, MB2(0xDCD6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCD7), MB2(0xDCD8), MB2(0xDCD9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCDA), MB2(0xDCDB), 0x0000, + MB2(0xDCDC), MB2(0xDCDD), MB2(0xDCDE), 0x0000, + MB2(0xDCDF), 0x0000, 0x0000, 0x0000, + MB2(0xDCE0), 0x0000, 0x0000, 0x0000, /* 8920 */ + 0x0000, 0x0000, MB2(0xDCE1), MB2(0xDCE2), + MB2(0xDCE3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDCE4), MB2(0xDCE5), MB2(0xDCE6), 0x0000, + 0x0000, MB2(0xDCE7), 0x0000, 0x0000, + 0x0000, MB2(0xDCE8), MB2(0xDCE9), 0x0000, + 0x0000, 0x0000, MB2(0xDCEA), 0x0000, + MB2(0xDCEB), 0x0000, MB2(0xDCEC), 0x0000, /* 8940 */ + 0x0000, MB2(0xDCED), MB2(0xDCEE), 0x0000, + 0x0000, MB2(0xDCEF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCF0), + 0x0000, 0x0000, MB2(0xDCF1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCF2), + 0x0000, 0x0000, MB2(0xDCF3), MB2(0xDCF4), + MB2(0xDCF5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDCF6), MB2(0xDCF7), MB2(0xDCF8), /* 8960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDCF9), + 0x0000, 0x0000, MB2(0xDCFA), 0x0000, + MB2(0xDCFB), 0x0000, 0x0000, MB2(0xDCFC), + 0x0000, MB2(0xDCFD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDCFE), MB2(0xDDA1), + MB2(0xDDA2), MB2(0xDDA3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDA4), 0x0000, 0x0000, + 0x0000, MB2(0xDDA5), 0x0000, 0x0000, + MB2(0xDDA6), 0x0000, 0x0000, 0x0000, + MB2(0xDDA7), MB2(0xDDA8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDA9), + MB2(0xDDAA), 0x0000, 0x0000, MB2(0xDDAB), + MB2(0xDDAC), 0x0000, 0x0000, 0x0000, /* 89A0 */ + 0x0000, MB2(0xDDAD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDAE), 0x0000, 0x0000, 0x0000, + MB2(0xDDAF), MB2(0xDDB0), MB2(0xDDB1), MB2(0xDDB2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDB3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDDB4), MB2(0xDDB5), MB2(0xDDB6), MB2(0xDDB7), + MB2(0xDDB8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 89E0 */ + 0x0000, MB2(0xDDB9), 0x0000, 0x0000, + 0x0000, MB2(0xDDBA), 0x0000, MB2(0xDDBB), + 0x0000, MB2(0xDDBC), 0x0000, 0x0000, + 0x0000, MB2(0xDDBD), 0x0000, MB2(0xDDBE), + 0x0000, 0x0000, MB2(0xDDBF), 0x0000, + 0x0000, MB2(0xDDC0), 0x0000, 0x0000, + 0x0000, MB2(0xDDC1), 0x0000, MB2(0xDDC2), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */ + MB2(0xDDC3), MB2(0xDDC4), 0x0000, MB2(0xDDC5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDC6), + 0x0000, MB2(0xDDC7), MB2(0xDDC8), 0x0000, + MB2(0xDDC9), MB2(0xDDCA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDCB), 0x0000, + MB2(0xDDCC), 0x0000, MB2(0xDDCD), 0x0000, /* 8A20 */ + MB2(0xDDCE), 0x0000, MB2(0xDDCF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDD0), + MB2(0xDDD1), 0x0000, 0x0000, MB2(0xDDD2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDD3), 0x0000, MB2(0xDDD4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDD5), MB2(0xDDD6), 0x0000, + MB2(0xDDD7), 0x0000, 0x0000, MB2(0xDDD8), /* 8A40 */ + 0x0000, MB2(0xDDD9), 0x0000, MB2(0xDDDA), + 0x0000, MB2(0xDDDB), 0x0000, 0x0000, + 0x0000, MB2(0xDDDC), MB2(0xDDDD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDDE), + 0x0000, 0x0000, MB2(0xDDDF), MB2(0xDDE0), + MB2(0xDDE1), 0x0000, 0x0000, 0x0000, + MB2(0xDDE2), MB2(0xDDE3), 0x0000, 0x0000, + 0x0000, MB2(0xDDE4), 0x0000, 0x0000, /* 8A60 */ + 0x0000, MB2(0xDDE5), 0x0000, MB2(0xDDE6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDDE7), MB2(0xDDE8), MB2(0xDDE9), + 0x0000, MB2(0xDDEA), MB2(0xDDEB), MB2(0xDDEC), + 0x0000, 0x0000, MB2(0xDDED), MB2(0xDDEE), + MB2(0xDDEF), 0x0000, 0x0000, MB2(0xDDF0), /* 8A80 */ + 0x0000, 0x0000, MB2(0xDDF1), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDF2), + 0x0000, 0x0000, 0x0000, MB2(0xDDF3), + MB2(0xDDF4), 0x0000, MB2(0xDDF5), 0x0000, + 0x0000, 0x0000, MB2(0xDDF6), MB2(0xDDF7), + 0x0000, MB2(0xDDF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDDF9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xDDFA), + 0x0000, MB2(0xDDFB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDDFC), MB2(0xDDFD), + 0x0000, 0x0000, 0x0000, MB2(0xDDFE), + 0x0000, 0x0000, MB2(0xDEA1), MB2(0xDEA2), + 0x0000, 0x0000, 0x0000, MB2(0xDEA3), + 0x0000, 0x0000, MB2(0xDEA4), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEA5), /* 8AC0 */ + 0x0000, 0x0000, MB2(0xDEA6), 0x0000, + MB2(0xDEA7), MB2(0xDEA8), MB2(0xDEA9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEAA), 0x0000, MB2(0xDEAB), + MB2(0xDEAC), MB2(0xDEAD), 0x0000, MB2(0xDEAE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEAF), 0x0000, MB2(0xDEB0), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8AE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEB1), 0x0000, 0x0000, 0x0000, + MB2(0xDEB2), 0x0000, 0x0000, 0x0000, + MB2(0xDEB3), MB2(0xDEB4), MB2(0xDEB5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEB6), 0x0000, 0x0000, MB2(0xDEB7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */ + 0x0000, MB2(0xDEB8), MB2(0xDEB9), 0x0000, + 0x0000, 0x0000, MB2(0xDEBF), MB2(0xDEBA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEBB), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEBC), 0x0000, MB2(0xDEBD), MB2(0xDEBE), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDEC0), 0x0000, 0x0000, + MB2(0xDEC1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEC2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEC3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDEC4), MB2(0xDEC5), /* 8B40 */ + MB2(0xDEC6), MB2(0xDEC7), MB2(0xDEC8), 0x0000, + MB2(0xDEC9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDECE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDECA), MB2(0xDECB), + MB2(0xDECC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDECD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDECF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDED0), /* 8B60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDED1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDED2), 0x0000, + MB2(0xDED3), MB2(0xDED4), 0x0000, 0x0000, + MB2(0xDED5), 0x0000, MB2(0xDED6), 0x0000, + 0x0000, MB2(0xDED7), 0x0000, 0x0000, /* 8B80 */ + MB2(0xDED8), MB2(0xDED9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEDA), + 0x0000, MB2(0xDEDB), 0x0000, MB2(0xDEDC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEDD), MB2(0xDEDE), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEDF), 0x0000, MB2(0xDEE0), MB2(0xDEE1), + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDEE2), MB2(0xDEE3), 0x0000, 0x0000, + 0x0000, MB2(0xDEE4), MB2(0xDEE5), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C40 */ + 0x0000, MB2(0xDEE6), 0x0000, MB2(0xDEE7), + 0x0000, MB2(0xDEE8), 0x0000, MB2(0xDEE9), + 0x0000, 0x0000, 0x0000, MB2(0xDEEA), + 0x0000, MB2(0xDEEB), 0x0000, MB2(0xDEEC), + MB2(0xDEED), 0x0000, 0x0000, MB2(0xDEEE), + MB2(0xDEEF), MB2(0xDEF2), 0x0000, MB2(0xDEF0), + 0x0000, MB2(0xDEF1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEF3), /* 8C60 */ + MB2(0xDEF4), 0x0000, MB2(0xDEF5), 0x0000, + MB2(0xDEF6), MB2(0xDEF7), 0x0000, 0x0000, + 0x0000, MB2(0xDEF8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEF9), + 0x0000, MB2(0xDEFA), MB2(0xDEFB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDEFC), + 0x0000, 0x0000, MB2(0xDEFD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8C80 */ + 0x0000, 0x0000, MB2(0xDEFE), MB2(0xDFA1), + 0x0000, 0x0000, 0x0000, MB2(0xDFA2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFA3), 0x0000, MB2(0xDFA4), MB2(0xDFA5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFA6), 0x0000, MB2(0xDFA7), + MB2(0xDFA8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CA0 */ + MB2(0xDFA9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFAA), MB2(0xDFAB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8CC0 */ + 0x0000, MB2(0xDFAC), MB2(0xDFAD), 0x0000, + 0x0000, MB2(0xDFAE), 0x0000, MB2(0xDFAF), + 0x0000, 0x0000, 0x0000, MB2(0xDFB0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFB2), MB2(0xDFB1), 0x0000, + 0x0000, MB2(0xDFB3), 0x0000, 0x0000, + 0x0000, MB2(0xDFB4), 0x0000, 0x0000, + 0x0000, MB2(0xDFB5), 0x0000, 0x0000, /* 8CE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFB6), 0x0000, 0x0000, 0x0000, + MB2(0xDFB7), 0x0000, 0x0000, MB2(0xDFB8), + MB2(0xDFB9), 0x0000, MB2(0xDFBA), 0x0000, + 0x0000, MB2(0xDFBB), 0x0000, MB2(0xDFBC), + MB2(0xDFBD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFBE), MB2(0xDFBF), + 0x0000, MB2(0xDFC0), 0x0000, MB2(0xDFC1), /* 8D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFC2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFC3), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFC4), + 0x0000, 0x0000, 0x0000, MB2(0xDFC5), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */ + 0x0000, MB2(0xDFC6), 0x0000, 0x0000, + 0x0000, MB2(0xDFC7), 0x0000, 0x0000, + MB2(0xDFC8), 0x0000, MB2(0xDFC9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFCA), + 0x0000, 0x0000, MB2(0xDFCB), 0x0000, /* 8D80 */ + MB2(0xDFCC), 0x0000, 0x0000, 0x0000, + MB2(0xDFCD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFCE), 0x0000, 0x0000, + MB2(0xDFCF), MB2(0xDFD0), 0x0000, 0x0000, + 0x0000, MB2(0xDFD1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xDFD2), MB2(0xDFD3), + MB2(0xDFD4), 0x0000, 0x0000, 0x0000, /* 8DA0 */ + 0x0000, 0x0000, MB2(0xDFD5), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFD6), + MB2(0xDFD7), 0x0000, 0x0000, MB2(0xDFD8), + 0x0000, 0x0000, MB2(0xDFD9), 0x0000, + 0x0000, MB2(0xDFDA), 0x0000, MB2(0xDFDB), + 0x0000, MB2(0xDFDC), 0x0000, MB2(0xDFDD), + MB2(0xDFEF), 0x0000, 0x0000, 0x0000, + MB2(0xDFDE), 0x0000, 0x0000, 0x0000, /* 8DC0 */ + 0x0000, MB2(0xDFDF), MB2(0xDFE0), MB2(0xDFE1), + MB2(0xDFE2), 0x0000, MB2(0xDFE3), 0x0000, + 0x0000, 0x0000, MB2(0xDFE4), 0x0000, + 0x0000, MB2(0xDFE5), 0x0000, 0x0000, + MB2(0xDFE6), MB2(0xDFE7), 0x0000, MB2(0xDFE8), + 0x0000, MB2(0xDFE9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8DE0 */ + MB2(0xDFEA), MB2(0xDFEB), 0x0000, MB2(0xDFEC), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFED), 0x0000, 0x0000, 0x0000, + MB2(0xDFEE), MB2(0xDFF0), MB2(0xDFF1), 0x0000, + MB2(0xDFF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFF3), 0x0000, 0x0000, + 0x0000, MB2(0xDFF4), 0x0000, 0x0000, /* 8E00 */ + MB2(0xDFF5), MB2(0xDFF6), MB2(0xDFF7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xDFF8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xDFF9), 0x0000, 0x0000, + MB2(0xDFFA), 0x0000, MB2(0xDFFB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xDFFC), MB2(0xDFFD), MB2(0xDFFE), MB2(0xE0A1), /* 8E20 */ + 0x0000, 0x0000, MB2(0xE0A2), MB2(0xE0A3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0A4), 0x0000, MB2(0xE0A5), + 0x0000, 0x0000, MB2(0xE0A6), MB2(0xE0A7), + MB2(0xE0A8), MB2(0xE0A9), 0x0000, 0x0000, + 0x0000, MB2(0xE0AA), 0x0000, 0x0000, + MB2(0xE0AB), MB2(0xE0AC), 0x0000, 0x0000, /* 8E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0AD), + 0x0000, MB2(0xE0AE), MB2(0xE0AF), MB2(0xE0B0), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0B1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0B2), + MB2(0xE0B3), MB2(0xE0B4), MB2(0xE0B5), 0x0000, + 0x0000, MB2(0xE0B6), MB2(0xE0B7), 0x0000, /* 8E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0B8), 0x0000, 0x0000, + MB2(0xE0B9), MB2(0xE0BA), 0x0000, MB2(0xE0BB), + MB2(0xE0BC), MB2(0xE0BD), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0BE), MB2(0xE0BF), MB2(0xE0C0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C1), MB2(0xE0C2), /* 8E80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0C4), 0x0000, MB2(0xE0C5), 0x0000, + 0x0000, MB2(0xE0C6), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0C7), MB2(0xE0C8), + 0x0000, MB2(0xE0C9), MB2(0xE0CA), 0x0000, + 0x0000, 0x0000, MB2(0xE0CB), 0x0000, /* 8EA0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0CC), + 0x0000, MB2(0xE0CD), 0x0000, 0x0000, + 0x0000, MB2(0xE0CE), MB2(0xE0CF), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D0), + 0x0000, MB2(0xE0D1), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0D2), MB2(0xE0D3), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0D4), MB2(0xE0D5), 0x0000, MB2(0xE0D6), /* 8EC0 */ + MB2(0xE0D7), 0x0000, 0x0000, MB2(0xE0D8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0D9), + 0x0000, MB2(0xE0DA), 0x0000, 0x0000, + MB2(0xE0DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8EE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0DD), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE0E4), MB2(0xE0DE), 0x0000, + MB2(0xE0DF), MB2(0xE0E0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E1), + 0x0000, MB2(0xE0E2), MB2(0xE0E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0E5), 0x0000, MB2(0xE0E6), 0x0000, /* 8F00 */ + 0x0000, 0x0000, 0x0000, MB2(0xE0E7), + MB2(0xE0E8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE0E9), + MB2(0xE0EA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0EB), MB2(0xE0EC), + MB2(0xE0ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE0EE), 0x0000, + MB2(0xE0EF), MB2(0xE0F0), 0x0000, MB2(0xE0F1), /* 8F20 */ + 0x0000, MB2(0xE0F2), 0x0000, MB2(0xE0F3), + MB2(0xE0F4), 0x0000, 0x0000, 0x0000, + MB2(0xE0F5), MB2(0xE0F6), MB2(0xE0F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0F8), MB2(0xE0F9), MB2(0xE0FA), MB2(0xE0FB), + 0x0000, 0x0000, MB2(0xE0FC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE0FD), MB2(0xE0FE), 0x0000, MB2(0xE1A1), /* 8F40 */ + 0x0000, 0x0000, 0x0000, MB2(0xE1A2), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1A3), + 0x0000, MB2(0xE1A4), MB2(0xE1A5), MB2(0xE1A6), + MB2(0xE1A7), MB2(0xE1A8), 0x0000, 0x0000, + MB2(0xE1A9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1AA), MB2(0xE1AB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F60 */ + 0x0000, MB2(0xE1AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1AD), 0x0000, 0x0000, + MB2(0xE1AE), MB2(0xE1AF), 0x0000, 0x0000, /* 8FA0 */ + MB2(0xE1B0), MB2(0xE1B1), MB2(0xE1B2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1B3), MB2(0xE1B4), 0x0000, + MB2(0xE1B5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1B6), 0x0000, + MB2(0xE1B7), MB2(0xE1B8), 0x0000, 0x0000, /* 8FC0 */ + 0x0000, 0x0000, MB2(0xE1B9), 0x0000, + 0x0000, 0x0000, MB2(0xE1BA), MB2(0xE1BB), + 0x0000, MB2(0xE1BC), 0x0000, 0x0000, + MB2(0xE1BD), 0x0000, MB2(0xE1BE), MB2(0xE1BF), + 0x0000, MB2(0xE1C0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1C1), 0x0000, 0x0000, MB2(0xE1C2), /* 8FE0 */ + MB2(0xE1C3), 0x0000, 0x0000, 0x0000, + MB2(0xE1C4), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1C5), 0x0000, + 0x0000, MB2(0xE1C6), 0x0000, 0x0000, + 0x0000, MB2(0xE1C7), MB2(0xE1C8), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1C9), + 0x0000, 0x0000, MB2(0xE1CA), 0x0000, + 0x0000, 0x0000, MB2(0xE1CB), 0x0000, /* 9000 */ + MB2(0xE1CC), 0x0000, 0x0000, 0x0000, + MB2(0xE1CD), 0x0000, 0x0000, 0x0000, + MB2(0xE1CE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1CF), 0x0000, 0x0000, MB2(0xE1D0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1D1), MB2(0xE1D2), MB2(0xE1D4), 0x0000, + MB2(0xE1D5), MB2(0xE1D6), 0x0000, MB2(0xE1D3), + 0x0000, 0x0000, 0x0000, MB2(0xE1D7), + MB2(0xE1D8), 0x0000, 0x0000, MB2(0xE1D9), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1DA), + 0x0000, 0x0000, 0x0000, MB2(0xE1DB), /* 9040 */ + MB2(0xE1DC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1DD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1DE), + 0x0000, MB2(0xE1DF), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE1E0), 0x0000, /* 9060 */ + 0x0000, 0x0000, MB2(0xE1E1), MB2(0xE1E2), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1E3), 0x0000, 0x0000, 0x0000, + MB2(0xE1E4), 0x0000, 0x0000, 0x0000, + MB2(0xE1E5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1E6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9080 */ + 0x0000, MB2(0xE1E7), 0x0000, 0x0000, + MB2(0xE1E8), 0x0000, 0x0000, MB2(0xE1E9), + MB2(0xE1EA), 0x0000, MB2(0xE1EB), 0x0000, + MB2(0xE1EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1ED), 0x0000, MB2(0xE1EE), + MB2(0xE1EF), MB2(0xE1F0), 0x0000, MB2(0xE1F1), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1F2), MB2(0xE1F3), MB2(0xE1F4), 0x0000, /* 90A0 */ + 0x0000, MB2(0xE1F5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE1F6), 0x0000, MB2(0xE1F7), MB2(0xE1F8), + MB2(0xE1F9), 0x0000, MB2(0xE1FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE1FB), MB2(0xE1FD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE1FE), /* 90C0 */ + MB2(0xE2A1), MB2(0xE2A2), 0x0000, MB2(0xE2A3), + MB2(0xE2A4), 0x0000, 0x0000, 0x0000, + MB2(0xE1FC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2AD), 0x0000, + 0x0000, MB2(0xE2A5), 0x0000, MB2(0xE2A6), + MB2(0xE2A7), MB2(0xE2A8), 0x0000, 0x0000, + MB2(0xE2A9), MB2(0xE2AA), 0x0000, MB2(0xE2AB), + 0x0000, 0x0000, 0x0000, 0x0000, /* 90E0 */ + 0x0000, MB2(0xE2AC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2AF), + 0x0000, 0x0000, 0x0000, MB2(0xE2B0), + MB2(0xE2B1), 0x0000, 0x0000, 0x0000, + MB2(0xE2B2), 0x0000, MB2(0xE2AE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2B3), MB2(0xE2B4), + MB2(0xE2B5), 0x0000, 0x0000, 0x0000, /* 9100 */ + MB2(0xE2B6), MB2(0xE2B7), MB2(0xE2B8), 0x0000, + MB2(0xE2B9), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2BA), 0x0000, 0x0000, + MB2(0xE2BB), 0x0000, 0x0000, 0x0000, + MB2(0xE2BC), 0x0000, MB2(0xE2BD), MB2(0xE2BE), + MB2(0xE2BF), 0x0000, MB2(0xE2C0), 0x0000, + MB2(0xE2C1), 0x0000, MB2(0xE2C2), 0x0000, + MB2(0xE2C3), 0x0000, MB2(0xE2C5), MB2(0xE2C6), /* 9120 */ + 0x0000, MB2(0xE2C4), 0x0000, MB2(0xE2C7), + 0x0000, MB2(0xE2C8), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2C9), MB2(0xE2CA), + 0x0000, MB2(0xE2CB), 0x0000, 0x0000, + MB2(0xE2CC), 0x0000, MB2(0xE2CD), MB2(0xE2CE), + 0x0000, MB2(0xE2CF), MB2(0xE2D0), 0x0000, + MB2(0xE2D1), MB2(0xE2D2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D3), /* 9140 */ + 0x0000, 0x0000, 0x0000, MB2(0xE2D4), + MB2(0xE2D5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2D6), + 0x0000, 0x0000, 0x0000, MB2(0xE2D7), + 0x0000, 0x0000, 0x0000, MB2(0xE2D8), + 0x0000, MB2(0xE2D9), MB2(0xE2DA), MB2(0xE2DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2DC), 0x0000, 0x0000, /* 9160 */ + MB2(0xE2DD), 0x0000, 0x0000, MB2(0xE2DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2DF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE2E0), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2E1), MB2(0xE2E2), MB2(0xE2E3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE2E4), 0x0000, MB2(0xE2E5), /* 9180 */ + 0x0000, MB2(0xE2E6), MB2(0xE2E7), 0x0000, + 0x0000, 0x0000, MB2(0xE2E8), 0x0000, + 0x0000, 0x0000, MB2(0xE2E9), 0x0000, + 0x0000, MB2(0xE2EA), 0x0000, MB2(0xE2EB), + MB2(0xE2EC), MB2(0xE2ED), 0x0000, 0x0000, + MB2(0xE2EE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE2EF), 0x0000, + 0x0000, MB2(0xE2F0), 0x0000, 0x0000, /* 91A0 */ + 0x0000, 0x0000, MB2(0xE2F1), 0x0000, + MB2(0xE2F2), 0x0000, 0x0000, 0x0000, + MB2(0xE2F3), MB2(0xE2F4), MB2(0xE2F5), 0x0000, + MB2(0xE2F6), MB2(0xE2F7), MB2(0xE2F8), MB2(0xE2F9), + 0x0000, 0x0000, MB2(0xE2FA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE2FB), + MB2(0xE2FC), MB2(0xE2FD), 0x0000, MB2(0xE2FE), + 0x0000, 0x0000, MB2(0xE3A1), MB2(0xE3A2), /* 91C0 */ + 0x0000, MB2(0xE3A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3A4), + MB2(0xE3A5), 0x0000, 0x0000, MB2(0xE3A6), + 0x0000, MB2(0xE3A7), MB2(0xE3A8), 0x0000, + 0x0000, 0x0000, MB2(0xE3A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 91E0 */ + MB2(0xE3AA), MB2(0xE3AB), 0x0000, 0x0000, + 0x0000, MB2(0xE3AC), MB2(0xE3AD), 0x0000, + MB2(0xE3AE), MB2(0xE3AF), MB2(0xE3B0), MB2(0xE3B1), + MB2(0xE3B2), MB2(0xE3B3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3B4), + 0x0000, MB2(0xE3B5), 0x0000, MB2(0xE3B6), + 0x0000, MB2(0xE3B7), 0x0000, 0x0000, + MB2(0xE3B8), MB2(0xE3B9), 0x0000, 0x0000, /* 9200 */ + MB2(0xE3BA), MB2(0xE3BB), MB2(0xE3BC), MB2(0xE3BD), + 0x0000, MB2(0xE3BE), MB2(0xE3BF), 0x0000, + MB2(0xE3C0), 0x0000, 0x0000, 0x0000, + MB2(0xE3C1), 0x0000, MB2(0xE3C2), MB2(0xE3C3), + 0x0000, 0x0000, MB2(0xE3C4), 0x0000, + MB2(0xE3C5), 0x0000, 0x0000, 0x0000, + MB2(0xE3C6), MB2(0xE3C7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3C8), /* 9220 */ + MB2(0xE3C9), MB2(0xE3CA), MB2(0xE3CB), 0x0000, + MB2(0xE3CC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3CD), MB2(0xE3CE), + MB2(0xE3CF), 0x0000, 0x0000, MB2(0xE3D0), + 0x0000, MB2(0xE3D1), MB2(0xE3D2), 0x0000, + MB2(0xE3D3), MB2(0xE3D4), MB2(0xE3D5), 0x0000, + MB2(0xE3D6), 0x0000, MB2(0xE3D7), 0x0000, + MB2(0xE3D8), 0x0000, MB2(0xE3D9), MB2(0xE3DA), /* 9240 */ + 0x0000, 0x0000, MB2(0xE3DB), MB2(0xE3DC), + 0x0000, 0x0000, MB2(0xE3DD), 0x0000, + 0x0000, MB2(0xE3DE), MB2(0xE3DF), MB2(0xE3E0), + 0x0000, MB2(0xE3E1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3E2), MB2(0xE3E3), 0x0000, 0x0000, + MB2(0xE3E4), MB2(0xE3E5), 0x0000, 0x0000, + MB2(0xE3E6), MB2(0xE3E7), 0x0000, 0x0000, /* 9260 */ + 0x0000, MB2(0xE3E8), 0x0000, MB2(0xE3E9), + MB2(0xE3EA), MB2(0xE3EB), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE3EC), MB2(0xE3ED), + MB2(0xE3EE), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE3EF), MB2(0xE3F0), MB2(0xE3F1), + MB2(0xE3F2), MB2(0xE3F3), 0x0000, MB2(0xE3F4), + MB2(0xE3F5), MB2(0xE3F6), 0x0000, MB2(0xE3F7), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE3F8), MB2(0xE3F9), MB2(0xE3FA), 0x0000, + 0x0000, MB2(0xE3FB), MB2(0xE3FC), 0x0000, + 0x0000, 0x0000, MB2(0xE3FD), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE3FE), + 0x0000, MB2(0xE4A1), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4A2), + MB2(0xE4A3), 0x0000, 0x0000, 0x0000, /* 92A0 */ + MB2(0xE4A4), MB2(0xE4A5), 0x0000, MB2(0xE4A6), + MB2(0xE4A7), 0x0000, 0x0000, MB2(0xE4A8), + 0x0000, 0x0000, 0x0000, MB2(0xE4A9), + 0x0000, 0x0000, MB2(0xE4AA), 0x0000, + 0x0000, 0x0000, MB2(0xE4AB), 0x0000, + MB2(0xE4AC), 0x0000, MB2(0xE4AD), MB2(0xE4AE), + MB2(0xE4AF), MB2(0xE4B0), 0x0000, MB2(0xE4B1), + MB2(0xE4B2), MB2(0xE4B3), MB2(0xE4B4), MB2(0xE4B5), /* 92C0 */ + 0x0000, MB2(0xE4B6), MB2(0xE4B7), MB2(0xE4B8), + MB2(0xE4B9), 0x0000, 0x0000, MB2(0xE4BA), + MB2(0xE4BB), MB2(0xE4BC), MB2(0xE4BD), 0x0000, + MB2(0xE4BE), 0x0000, 0x0000, MB2(0xE4BF), + 0x0000, MB2(0xE4C0), 0x0000, MB2(0xE4C1), + MB2(0xE4C2), MB2(0xE4C3), 0x0000, 0x0000, + MB2(0xE4C4), MB2(0xE4C5), 0x0000, MB2(0xE4C6), + MB2(0xE4C7), MB2(0xE4C8), 0x0000, MB2(0xE4C9), /* 92E0 */ + 0x0000, MB2(0xE4CA), 0x0000, MB2(0xE4CB), + MB2(0xE4CC), 0x0000, 0x0000, 0x0000, + MB2(0xE4CD), 0x0000, MB2(0xE4CE), 0x0000, + MB2(0xE4CF), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D0), 0x0000, MB2(0xE4D1), + 0x0000, 0x0000, 0x0000, MB2(0xE4D2), + MB2(0xE4D3), 0x0000, MB2(0xE4D4), 0x0000, /* 9300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4D5), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE4D6), 0x0000, 0x0000, + 0x0000, MB2(0xE4D7), 0x0000, 0x0000, + MB2(0xE4D8), MB2(0xE4D9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4DA), MB2(0xE4DB), MB2(0xE4DC), MB2(0xE4DD), + 0x0000, MB2(0xE4DE), 0x0000, 0x0000, /* 9320 */ + MB2(0xE4DF), MB2(0xE4E0), 0x0000, MB2(0xE4E1), + 0x0000, MB2(0xE4E2), MB2(0xE4E3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE4E4), + MB2(0xE4E5), 0x0000, MB2(0xE4E6), MB2(0xE4E7), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */ + 0x0000, 0x0000, 0x0000, MB2(0xE4E8), + MB2(0xE4E9), MB2(0xE4EA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE4EB), MB2(0xE4EC), MB2(0xE4ED), 0x0000, + 0x0000, MB2(0xE4EE), 0x0000, MB2(0xE4EF), + MB2(0xE4F0), 0x0000, MB2(0xE4F1), 0x0000, + 0x0000, 0x0000, MB2(0xE4F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9360 */ + MB2(0xE4F3), MB2(0xE4F4), 0x0000, MB2(0xE4F5), + 0x0000, MB2(0xE4F6), MB2(0xE4F7), 0x0000, + 0x0000, MB2(0xE4F8), 0x0000, MB2(0xE4F9), + MB2(0xE4FA), MB2(0xE4FB), 0x0000, MB2(0xE4FC), + MB2(0xE4FD), 0x0000, MB2(0xE4FE), 0x0000, + 0x0000, 0x0000, MB2(0xE5A1), 0x0000, + 0x0000, MB2(0xE5A2), 0x0000, MB2(0xE5A3), + MB2(0xE5A4), MB2(0xE5A5), MB2(0xE5A6), 0x0000, /* 9380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5A7), 0x0000, MB2(0xE5A8), MB2(0xE5A9), + 0x0000, MB2(0xE5AA), 0x0000, MB2(0xE5AB), + 0x0000, 0x0000, MB2(0xE5AC), 0x0000, + 0x0000, MB2(0xE5AD), 0x0000, 0x0000, + MB2(0xE5AE), 0x0000, 0x0000, MB2(0xE5AF), + 0x0000, 0x0000, MB2(0xE5B0), 0x0000, + 0x0000, MB2(0xE5B1), 0x0000, MB2(0xE5B2), /* 93A0 */ + MB2(0xE5B3), 0x0000, MB2(0xE5B4), 0x0000, + MB2(0xE5B5), MB2(0xE5BB), 0x0000, MB2(0xE5B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5B7), MB2(0xE5B8), MB2(0xE5B9), 0x0000, + 0x0000, 0x0000, MB2(0xE5BA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5BC), 0x0000, 0x0000, /* 93C0 */ + MB2(0xE5BD), MB2(0xE5BE), MB2(0xE5BF), MB2(0xE5C0), + 0x0000, MB2(0xE5C1), MB2(0xE5C2), MB2(0xE5C3), + MB2(0xE5C4), MB2(0xE5C5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5C6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5C7), 0x0000, 0x0000, + MB2(0xE5C8), 0x0000, MB2(0xE5C9), MB2(0xE5CA), + 0x0000, 0x0000, MB2(0xE5CB), 0x0000, /* 93E0 */ + 0x0000, 0x0000, MB2(0xE5CC), MB2(0xE5CD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5CF), + MB2(0xE5D0), MB2(0xE5CE), MB2(0xE5D1), MB2(0xE5D2), + 0x0000, MB2(0xE5D3), 0x0000, 0x0000, + 0x0000, MB2(0xE5D4), MB2(0xE5D5), 0x0000, /* 9400 */ + MB2(0xE5D6), 0x0000, 0x0000, 0x0000, + MB2(0xE5D7), MB2(0xE5D8), 0x0000, 0x0000, + 0x0000, MB2(0xE5D9), MB2(0xE5DA), MB2(0xE5DB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5DC), MB2(0xE5DD), MB2(0xE5DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5DF), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE5E0), MB2(0xE5E1), + 0x0000, MB2(0xE5E2), MB2(0xE5E3), MB2(0xE5E4), + MB2(0xE5E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5E6), + 0x0000, MB2(0xE5E8), 0x0000, MB2(0xE5E7), + 0x0000, 0x0000, 0x0000, MB2(0xE5E9), /* 9440 */ + 0x0000, MB2(0xE5EA), 0x0000, 0x0000, + MB2(0xE5EB), 0x0000, MB2(0xE5EC), 0x0000, + MB2(0xE5ED), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE5EE), 0x0000, 0x0000, + 0x0000, MB2(0xE5EF), 0x0000, 0x0000, + MB2(0xE5F0), 0x0000, 0x0000, MB2(0xE5F1), + 0x0000, MB2(0xE5F2), 0x0000, MB2(0xE5F3), /* 9460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5F4), 0x0000, 0x0000, MB2(0xE5F5), + 0x0000, MB2(0xE5F6), MB2(0xE5F7), MB2(0xE5F8), + 0x0000, MB2(0xE5F9), MB2(0xE5FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE5FC), /* 9480 */ + MB2(0xE5FB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE5FD), MB2(0xE5FE), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6A1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9580 */ + MB2(0xE6A2), 0x0000, 0x0000, 0x0000, + MB2(0xE6A3), 0x0000, 0x0000, 0x0000, + MB2(0xE6A4), MB2(0xE6A5), MB2(0xE6A6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6A7), MB2(0xE6A8), MB2(0xE6A9), + 0x0000, MB2(0xE6AA), 0x0000, 0x0000, /* 95A0 */ + 0x0000, 0x0000, MB2(0xE6AB), 0x0000, + 0x0000, MB2(0xE6AC), 0x0000, MB2(0xE6AD), + MB2(0xE6AE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6AF), 0x0000, MB2(0xE6B0), 0x0000, + 0x0000, 0x0000, MB2(0xE6B1), 0x0000, + 0x0000, MB2(0xE6B2), 0x0000, MB2(0xE6B3), + 0x0000, 0x0000, 0x0000, 0x0000, /* 95C0 */ + 0x0000, 0x0000, MB2(0xE6B4), 0x0000, + MB2(0xE6B5), MB2(0xE6B6), 0x0000, MB2(0xE6B7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6B8), MB2(0xE6B9), MB2(0xE6BA), MB2(0xE6BB), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6BC), MB2(0xE6BD), 0x0000, + 0x0000, MB2(0xE6BE), MB2(0xE6BF), MB2(0xE6C0), + MB2(0xE6C1), 0x0000, 0x0000, 0x0000, /* 95E0 */ + MB2(0xE6C2), 0x0000, MB2(0xE6C3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6C4), MB2(0xE6C5), 0x0000, + 0x0000, 0x0000, MB2(0xE6C6), 0x0000, /* 9620 */ + MB2(0xE6C7), MB2(0xE6C8), MB2(0xE6C9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6CA), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6CB), 0x0000, MB2(0xE6CC), + 0x0000, 0x0000, 0x0000, MB2(0xE6CD), + MB2(0xE6CE), MB2(0xE6CF), MB2(0xE6D0), 0x0000, + MB2(0xE6D1), MB2(0xE6D2), 0x0000, 0x0000, + 0x0000, MB2(0xE6D3), 0x0000, 0x0000, /* 9640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6D4), 0x0000, + MB2(0xE6D5), 0x0000, MB2(0xE6D6), MB2(0xE6D7), + MB2(0xE6D8), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6D9), 0x0000, 0x0000, /* 9660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6DA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6DB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6DC), + MB2(0xE6DD), 0x0000, MB2(0xE6DE), MB2(0xE6DF), + 0x0000, MB2(0xE6E0), MB2(0xE6E1), MB2(0xE6E2), /* 9680 */ + MB2(0xE6E3), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6E5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6E6), 0x0000, + 0x0000, 0x0000, MB2(0xE6E7), 0x0000, + 0x0000, MB2(0xE6E8), 0x0000, MB2(0xE6E9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 96A0 */ + MB2(0xE6EA), MB2(0xE6EB), MB2(0xE6EC), 0x0000, + 0x0000, MB2(0xE6ED), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6EE), MB2(0xE6EF), + 0x0000, 0x0000, 0x0000, MB2(0xE6F0), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 96C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6F3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE6F5), 0x0000, MB2(0xE6F6), 0x0000, + 0x0000, MB2(0xE6F7), MB2(0xE6F8), MB2(0xE6F9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 96E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE6FA), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE6FB), + 0x0000, MB2(0xE6FC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6FD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE6FE), MB2(0xE7A1), /* 9700 */ + 0x0000, MB2(0xE7A2), 0x0000, 0x0000, + 0x0000, MB2(0xE7A3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7A4), MB2(0xE7A5), + 0x0000, MB2(0xE7A6), 0x0000, 0x0000, + 0x0000, MB2(0xE7A7), MB2(0xE7A8), MB2(0xE7A9), /* 9720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7AA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7AB), 0x0000, MB2(0xE7AC), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7AD), 0x0000, MB2(0xE7AE), /* 9740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE7AF), 0x0000, + 0x0000, 0x0000, MB2(0xE7B0), MB2(0xE7B1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7B2), 0x0000, MB2(0xE7B3), + MB2(0xE7B4), 0x0000, MB2(0xE7B5), MB2(0xE7B6), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7B7), /* 9760 */ + 0x0000, 0x0000, 0x0000, MB2(0xE7B8), + 0x0000, 0x0000, MB2(0xE7B9), 0x0000, + 0x0000, 0x0000, MB2(0xE7BA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7BB), + 0x0000, 0x0000, MB2(0xE7BC), MB2(0xE7BD), + MB2(0xE7BE), 0x0000, 0x0000, MB2(0xE7BF), + 0x0000, MB2(0xE7C0), 0x0000, MB2(0xE7C1), + MB2(0xE7C2), 0x0000, 0x0000, 0x0000, /* 9780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7C3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE7C4), MB2(0xE7C5), MB2(0xE7C6), + 0x0000, MB2(0xE7C7), MB2(0xE7C8), 0x0000, + 0x0000, 0x0000, MB2(0xE7C9), MB2(0xE7CA), + 0x0000, 0x0000, MB2(0xE7CB), 0x0000, /* 97A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7CC), 0x0000, MB2(0xE7CD), 0x0000, + 0x0000, MB2(0xE7CE), MB2(0xE7CF), 0x0000, + 0x0000, MB2(0xE7D0), MB2(0xE7D1), 0x0000, + MB2(0xE7D2), MB2(0xE7D3), MB2(0xE7D4), 0x0000, + MB2(0xE7D5), 0x0000, MB2(0xE7D6), MB2(0xE7D7), + 0x0000, MB2(0xE7D8), 0x0000, 0x0000, /* 97C0 */ + MB2(0xE7D9), MB2(0xE7DA), 0x0000, MB2(0xE7DB), + 0x0000, MB2(0xE7DC), MB2(0xE7DD), 0x0000, + MB2(0xE7DE), MB2(0xE7DF), MB2(0xE7E0), 0x0000, + MB2(0xE7E1), MB2(0xE7E2), 0x0000, 0x0000, + MB2(0xE7E3), 0x0000, 0x0000, MB2(0xE7E4), + MB2(0xE7E5), MB2(0xE7E6), 0x0000, MB2(0xE7EA), + 0x0000, MB2(0xE7E7), MB2(0xE7E8), 0x0000, + MB2(0xE7E9), MB2(0xE7EB), 0x0000, 0x0000, /* 97E0 */ + MB2(0xE7EC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE7ED), + 0x0000, MB2(0xE7EE), 0x0000, 0x0000, + MB2(0xE7EF), 0x0000, 0x0000, MB2(0xE7F0), + MB2(0xE7F1), 0x0000, MB2(0xE7F2), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */ + 0x0000, 0x0000, 0x0000, MB2(0xE7F3), + 0x0000, 0x0000, MB2(0xE7F4), 0x0000, + 0x0000, MB2(0xE7F6), MB2(0xE7F7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE7F8), 0x0000, MB2(0xE7F9), 0x0000, + 0x0000, MB2(0xE7F5), 0x0000, 0x0000, + MB2(0xE7FA), 0x0000, MB2(0xE7FB), 0x0000, + MB2(0xE7FC), 0x0000, 0x0000, MB2(0xE7FD), /* 9820 */ + 0x0000, MB2(0xE8A8), MB2(0xE7FE), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8A1), + 0x0000, 0x0000, MB2(0xE8A2), MB2(0xE8A3), + MB2(0xE8A4), 0x0000, MB2(0xE8A5), MB2(0xE8A6), + 0x0000, MB2(0xE8A7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8A9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */ + MB2(0xE8AA), 0x0000, 0x0000, MB2(0xE8AB), + 0x0000, 0x0000, MB2(0xE8AC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8AD), MB2(0xE8AE), MB2(0xE8AF), + 0x0000, 0x0000, MB2(0xE8B0), MB2(0xE8B1), + 0x0000, MB2(0xE8B2), MB2(0xE8B3), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8B4), MB2(0xE8B5), /* 9860 */ + 0x0000, MB2(0xE8B6), MB2(0xE8B7), 0x0000, + 0x0000, 0x0000, MB2(0xE8B8), 0x0000, + MB2(0xE8B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8BA), + 0x0000, MB2(0xE8BB), MB2(0xE8BC), 0x0000, + MB2(0xE8BD), 0x0000, 0x0000, 0x0000, + MB2(0xE8BE), 0x0000, 0x0000, MB2(0xE8BF), + MB2(0xE8C0), 0x0000, MB2(0xE8C1), MB2(0xE8C2), + 0x0000, 0x0000, 0x0000, MB2(0xE8C3), + 0x0000, 0x0000, MB2(0xE8C4), 0x0000, /* 98C0 */ + 0x0000, MB2(0xE8C5), 0x0000, 0x0000, + MB2(0xE8C6), 0x0000, 0x0000, 0x0000, + MB2(0xE8C7), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8C8), 0x0000, MB2(0xE8C9), /* 98E0 */ + 0x0000, MB2(0xE8CA), MB2(0xE8CB), MB2(0xE8CC), + 0x0000, 0x0000, MB2(0xE8CD), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8CE), + 0x0000, 0x0000, MB2(0xE8CF), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE8D0), 0x0000, /* 9900 */ + 0x0000, 0x0000, 0x0000, MB2(0xE8D1), + MB2(0xE8D2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8D3), 0x0000, 0x0000, + 0x0000, MB2(0xE8D4), MB2(0xE8D5), MB2(0xE8D6), + 0x0000, 0x0000, MB2(0xE8D7), MB2(0xE8D8), + MB2(0xE8D9), 0x0000, 0x0000, MB2(0xE8DA), + 0x0000, 0x0000, MB2(0xE8DB), 0x0000, /* 9920 */ + 0x0000, 0x0000, MB2(0xE8DC), MB2(0xE8DD), + 0x0000, 0x0000, 0x0000, MB2(0xE8DE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8DF), MB2(0xE8E0), MB2(0xE8E1), + MB2(0xE8E2), MB2(0xE8E3), 0x0000, 0x0000, + 0x0000, MB2(0xE8E4), MB2(0xE8E5), MB2(0xE8E6), + MB2(0xE8E7), 0x0000, 0x0000, 0x0000, + MB2(0xE8E8), MB2(0xE8E9), 0x0000, 0x0000, /* 9940 */ + 0x0000, 0x0000, MB2(0xE8EA), MB2(0xE8EB), + MB2(0xE8EC), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE8ED), MB2(0xE8EE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8EF), 0x0000, 0x0000, 0x0000, + MB2(0xE8F0), MB2(0xE8F1), 0x0000, MB2(0xE8F2), + MB2(0xE8F3), 0x0000, MB2(0xE8F4), MB2(0xE8F5), + MB2(0xE8F6), 0x0000, 0x0000, 0x0000, /* 9960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE8F7), + 0x0000, MB2(0xE8F8), 0x0000, MB2(0xE8F9), + 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */ + 0x0000, 0x0000, MB2(0xE8FA), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xE8FB), MB2(0xE8FC), MB2(0xE8FD), 0x0000, + 0x0000, MB2(0xE8FE), 0x0000, 0x0000, + 0x0000, MB2(0xE9A1), MB2(0xE9A2), 0x0000, + 0x0000, MB2(0xE9A3), 0x0000, MB2(0xE9A4), + 0x0000, 0x0000, 0x0000, MB2(0xE9A5), /* 99C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9A6), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9A7), + MB2(0xE9A8), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9A9), MB2(0xE9AA), 0x0000, + MB2(0xE9AB), 0x0000, MB2(0xE9AC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 99E0 */ + 0x0000, 0x0000, 0x0000, MB2(0xE9AD), + 0x0000, 0x0000, MB2(0xE9AE), MB2(0xE9AF), + MB2(0xE9B0), 0x0000, 0x0000, 0x0000, + MB2(0xE9B1), 0x0000, 0x0000, 0x0000, + MB2(0xE9B2), MB2(0xE9B3), 0x0000, 0x0000, + 0x0000, MB2(0xE9B4), 0x0000, 0x0000, + 0x0000, MB2(0xE9B5), MB2(0xE9B6), 0x0000, + 0x0000, 0x0000, MB2(0xE9B7), MB2(0xE9B8), /* 9A00 */ + MB2(0xE9B9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9BA), + MB2(0xE9BB), 0x0000, 0x0000, 0x0000, + MB2(0xE9BC), MB2(0xE9BD), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9BE), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9BF), 0x0000, + MB2(0xE9C0), 0x0000, MB2(0xE9C1), MB2(0xE9C2), /* 9A20 */ + MB2(0xE9C3), 0x0000, 0x0000, MB2(0xE9C4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9C5), MB2(0xE9C6), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xE9C7), + 0x0000, MB2(0xE9C8), MB2(0xE9C9), 0x0000, + MB2(0xE9CA), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9CC), 0x0000, 0x0000, /* 9A40 */ + MB2(0xE9CD), 0x0000, 0x0000, MB2(0xE9CB), + 0x0000, 0x0000, MB2(0xE9CE), MB2(0xE9CF), + MB2(0xE9D0), 0x0000, MB2(0xE9D1), 0x0000, + 0x0000, MB2(0xE9D2), 0x0000, 0x0000, + MB2(0xE9D3), 0x0000, MB2(0xE9D4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xE9D5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9D6), 0x0000, + MB2(0xE9D7), 0x0000, MB2(0xE9D8), MB2(0xE9D9), + 0x0000, 0x0000, MB2(0xE9DA), 0x0000, + MB2(0xE9DB), MB2(0xE9DC), MB2(0xE9DD), 0x0000, + 0x0000, MB2(0xE9DE), 0x0000, MB2(0xE9DF), + 0x0000, 0x0000, MB2(0xE9E0), MB2(0xE9E1), + 0x0000, MB2(0xE9E2), 0x0000, MB2(0xE9E3), /* 9AC0 */ + 0x0000, 0x0000, MB2(0xE9E4), 0x0000, + MB2(0xE9E5), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9E6), 0x0000, + MB2(0xE9E7), 0x0000, MB2(0xE9E8), 0x0000, + 0x0000, MB2(0xE9E9), MB2(0xE9EA), MB2(0xE9EB), + 0x0000, 0x0000, 0x0000, MB2(0xE9EC), + MB2(0xE9ED), 0x0000, 0x0000, 0x0000, + MB2(0xE9EE), 0x0000, 0x0000, 0x0000, /* 9AE0 */ + MB2(0xE9EF), MB2(0xE9F0), 0x0000, MB2(0xE9F1), + 0x0000, MB2(0xE9F2), 0x0000, 0x0000, + MB2(0xE9F3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xE9F4), MB2(0xE9F5), + 0x0000, MB2(0xE9F6), 0x0000, 0x0000, + 0x0000, MB2(0xE9F7), MB2(0xE9F8), 0x0000, + 0x0000, MB2(0xE9F9), 0x0000, MB2(0xE9FA), + MB2(0xE9FB), MB2(0xE9FC), MB2(0xE9FD), MB2(0xE9FE), /* 9B00 */ + MB2(0xEAA1), MB2(0xEAA2), 0x0000, 0x0000, + MB2(0xEAA3), MB2(0xEAA4), 0x0000, MB2(0xEAA5), + MB2(0xEAA6), MB2(0xEAA7), MB2(0xEAA8), 0x0000, + MB2(0xEAA9), 0x0000, MB2(0xEAAA), 0x0000, + 0x0000, 0x0000, MB2(0xEAAB), 0x0000, + 0x0000, MB2(0xEAAC), 0x0000, MB2(0xEAAD), + MB2(0xEAAE), 0x0000, 0x0000, 0x0000, + MB2(0xEAAF), 0x0000, 0x0000, 0x0000, /* 9B20 */ + 0x0000, 0x0000, MB2(0xEAB0), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAB1), + 0x0000, MB2(0xEAB2), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAB3), + MB2(0xEAB4), MB2(0xEAB5), 0x0000, MB2(0xEAB6), + 0x0000, MB2(0xEAB7), MB2(0xEAB8), 0x0000, + 0x0000, MB2(0xEAB9), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9B40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEABA), 0x0000, 0x0000, MB2(0xEABB), + MB2(0xEABC), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEABD), MB2(0xEABE), MB2(0xEABF), + 0x0000, 0x0000, 0x0000, MB2(0xEAC0), + 0x0000, 0x0000, MB2(0xEAC1), 0x0000, + 0x0000, MB2(0xEAC2), 0x0000, MB2(0xEAC3), /* 9B60 */ + 0x0000, MB2(0xEAC4), MB2(0xEAC5), 0x0000, + MB2(0xEAC6), 0x0000, MB2(0xEAC7), MB2(0xEAC8), + MB2(0xEAC9), MB2(0xEACA), MB2(0xEACB), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEACC), + 0x0000, MB2(0xEACD), 0x0000, MB2(0xEACE), + MB2(0xEACF), MB2(0xEAD0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAD1), + MB2(0xEAD2), 0x0000, 0x0000, 0x0000, /* 9B80 */ + MB2(0xEAD3), MB2(0xEAD4), MB2(0xEAD5), MB2(0xEAD6), + 0x0000, MB2(0xEAD7), MB2(0xEAD8), MB2(0xEAD9), + 0x0000, MB2(0xEADA), 0x0000, MB2(0xEADB), + MB2(0xEADC), 0x0000, 0x0000, 0x0000, + MB2(0xEADD), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEADE), 0x0000, + 0x0000, MB2(0xEADF), MB2(0xEAE0), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BA0 */ + 0x0000, 0x0000, MB2(0xEAE1), MB2(0xEAE2), + 0x0000, MB2(0xEAE3), 0x0000, 0x0000, + MB2(0xEAE4), 0x0000, 0x0000, 0x0000, + MB2(0xEAE5), MB2(0xEAE6), MB2(0xEAE7), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAE8), + MB2(0xEAE9), 0x0000, 0x0000, MB2(0xEAEA), + MB2(0xEAEB), 0x0000, MB2(0xEAEC), MB2(0xEAED), + 0x0000, MB2(0xEAEE), 0x0000, 0x0000, /* 9BC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xEAEF), + MB2(0xEAF0), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEAF1), 0x0000, + MB2(0xEAF2), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEAF3), + MB2(0xEAF4), 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEAF5), 0x0000, MB2(0xEAF6), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9BE0 */ + 0x0000, MB2(0xEAF7), 0x0000, MB2(0xEAF8), + 0x0000, 0x0000, MB2(0xEAF9), MB2(0xEAFA), + 0x0000, 0x0000, 0x0000, MB2(0xEAFB), + 0x0000, 0x0000, 0x0000, MB2(0xEAFC), + 0x0000, 0x0000, 0x0000, MB2(0xEAFD), + MB2(0xEAFE), MB2(0xEBA1), MB2(0xEBA2), 0x0000, + 0x0000, MB2(0xEBA3), 0x0000, MB2(0xEBA4), + MB2(0xEBA5), 0x0000, MB2(0xEBA6), 0x0000, /* 9C00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBA7), + 0x0000, 0x0000, 0x0000, MB2(0xEBA8), + 0x0000, MB2(0xEBA9), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBAA), 0x0000, + MB2(0xEBAB), MB2(0xEBAC), MB2(0xEBAD), 0x0000, + MB2(0xEBAE), 0x0000, MB2(0xEBAF), 0x0000, + 0x0000, 0x0000, MB2(0xEBB0), MB2(0xEBB1), /* 9C20 */ + 0x0000, 0x0000, MB2(0xEBB2), MB2(0xEBB3), + MB2(0xEBB4), MB2(0xEBB5), MB2(0xEBB6), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBB7), 0x0000, 0x0000, + 0x0000, MB2(0xEBB8), MB2(0xEBB9), MB2(0xEBBA), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBBB), 0x0000, 0x0000, + 0x0000, MB2(0xEBBC), 0x0000, MB2(0xEBBD), /* 9C40 */ + MB2(0xEBBE), MB2(0xEBBF), 0x0000, 0x0000, + 0x0000, MB2(0xEBC0), MB2(0xEBC1), 0x0000, + 0x0000, 0x0000, MB2(0xEBC2), MB2(0xEBC3), + MB2(0xEBC4), 0x0000, 0x0000, MB2(0xEBC5), + MB2(0xEBC6), 0x0000, MB2(0xEBC7), 0x0000, + MB2(0xEBC8), 0x0000, 0x0000, MB2(0xEBC9), + MB2(0xEBD0), MB2(0xEBCA), MB2(0xEBCB), MB2(0xEBCC), + 0x0000, 0x0000, 0x0000, MB2(0xEBCD), /* 9C60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBD2), MB2(0xEBCE), MB2(0xEBCF), MB2(0xEBD1), + 0x0000, 0x0000, MB2(0xEBD3), 0x0000, + MB2(0xEBD4), 0x0000, MB2(0xEBD5), 0x0000, + 0x0000, MB2(0xEBD6), 0x0000, MB2(0xEBD7), + 0x0000, 0x0000, 0x0000, MB2(0xEBD8), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */ + 0x0000, 0x0000, MB2(0xEBD9), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBDA), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBDB), + 0x0000, MB2(0xEBDC), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBDE), 0x0000, /* 9D00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBDD), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEBDF), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBE0), + MB2(0xEBE1), 0x0000, 0x0000, 0x0000, + MB2(0xEBE2), MB2(0xEBE3), MB2(0xEBE4), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBE5), + MB2(0xEBE6), 0x0000, MB2(0xEBE7), MB2(0xEBE8), + MB2(0xEBE9), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBEA), 0x0000, + MB2(0xEBEB), MB2(0xEBED), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBEE), MB2(0xEBEF), /* 9D40 */ + 0x0000, MB2(0xEBEC), 0x0000, MB2(0xEBF0), + 0x0000, 0x0000, MB2(0xEBF1), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBF2), + MB2(0xEBF3), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEBF4), + 0x0000, 0x0000, MB2(0xEBF6), MB2(0xEBF5), /* 9D60 */ + 0x0000, MB2(0xEBF7), 0x0000, 0x0000, + 0x0000, MB2(0xEBF8), MB2(0xEBF9), MB2(0xEBFA), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEBFB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEBFC), MB2(0xEBFD), + 0x0000, 0x0000, 0x0000, MB2(0xEBFE), + MB2(0xECA1), 0x0000, MB2(0xECA2), 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECA3), /* 9D80 */ + MB2(0xECA4), 0x0000, MB2(0xECA5), 0x0000, + 0x0000, 0x0000, MB2(0xECA6), 0x0000, + 0x0000, MB2(0xECA7), MB2(0xECA8), 0x0000, + 0x0000, 0x0000, MB2(0xECA9), MB2(0xECAA), + 0x0000, MB2(0xECAB), MB2(0xECAC), MB2(0xECAD), + MB2(0xECAE), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECAF), 0x0000, 0x0000, /* 9DA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECB0), 0x0000, + MB2(0xECB1), 0x0000, MB2(0xECB2), 0x0000, + 0x0000, MB2(0xECB3), 0x0000, 0x0000, + 0x0000, MB2(0xECB4), 0x0000, 0x0000, + 0x0000, MB2(0xECB5), 0x0000, 0x0000, + MB2(0xECB6), 0x0000, 0x0000, MB2(0xECB7), + 0x0000, 0x0000, 0x0000, MB2(0xECB8), /* 9DC0 */ + 0x0000, 0x0000, 0x0000, MB2(0xECB9), + 0x0000, MB2(0xECBA), MB2(0xECBB), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECBC), MB2(0xECBD), MB2(0xECBE), MB2(0xECBF), + 0x0000, 0x0000, MB2(0xECC0), 0x0000, + 0x0000, 0x0000, MB2(0xECC1), MB2(0xECC2), + MB2(0xECC3), 0x0000, 0x0000, 0x0000, /* 9DE0 */ + 0x0000, MB2(0xECC4), 0x0000, MB2(0xECC5), + 0x0000, MB2(0xECC6), 0x0000, MB2(0xECC7), + 0x0000, 0x0000, MB2(0xECC8), 0x0000, + MB2(0xECC9), 0x0000, 0x0000, MB2(0xECCA), + MB2(0xECCB), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECCC), 0x0000, + 0x0000, 0x0000, MB2(0xECCE), 0x0000, /* 9E00 */ + 0x0000, 0x0000, 0x0000, MB2(0xECCF), + 0x0000, 0x0000, MB2(0xECCD), 0x0000, + 0x0000, 0x0000, MB2(0xECD0), 0x0000, + MB2(0xECD1), MB2(0xECD2), MB2(0xECD3), 0x0000, + 0x0000, MB2(0xECD4), MB2(0xECD5), 0x0000, + 0x0000, MB2(0xECD6), 0x0000, 0x0000, + MB2(0xECD7), MB2(0xECD8), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECD9), MB2(0xECDA), + MB2(0xECDB), 0x0000, 0x0000, 0x0000, + MB2(0xECDC), 0x0000, MB2(0xECDD), MB2(0xECDE), /* 9E80 */ + MB2(0xECDF), MB2(0xECE0), 0x0000, MB2(0xECE1), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECE2), MB2(0xECE3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xECE4), 0x0000, + MB2(0xECE5), 0x0000, 0x0000, MB2(0xECE6), + 0x0000, 0x0000, MB2(0xECE7), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */ + MB2(0xECE8), 0x0000, 0x0000, 0x0000, + MB2(0xECE9), 0x0000, 0x0000, 0x0000, + MB2(0xECEA), 0x0000, MB2(0xECEB), MB2(0xECEC), + MB2(0xECED), 0x0000, 0x0000, MB2(0xECEE), + MB2(0xECEF), MB2(0xECF0), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */ + 0x0000, 0x0000, MB2(0xECF1), 0x0000, + MB2(0xECF2), 0x0000, 0x0000, MB2(0xECF3), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xECF4), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xECF5), + 0x0000, 0x0000, 0x0000, 0x0000, /* 9EE0 */ + MB2(0xECF6), 0x0000, 0x0000, MB2(0xECF7), + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xECF8), MB2(0xECF9), MB2(0xECFA), 0x0000, + MB2(0xECFB), MB2(0xECFC), MB2(0xECFD), 0x0000, + 0x0000, MB2(0xECFE), 0x0000, 0x0000, + MB2(0xEDA1), 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDA2), + 0x0000, 0x0000, MB2(0xEDA3), MB2(0xEDA4), /* 9F00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, MB2(0xEDA5), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDA6), + MB2(0xEDA7), MB2(0xEDA8), MB2(0xEDA9), 0x0000, + MB2(0xEDAA), 0x0000, MB2(0xEDAB), MB2(0xEDAC), + 0x0000, MB2(0xEDAD), MB2(0xEDAE), MB2(0xEDAF), + 0x0000, 0x0000, 0x0000, MB2(0xEDB0), + 0x0000, 0x0000, MB2(0xEDB1), 0x0000, /* 9F20 */ + 0x0000, 0x0000, MB2(0xEDB2), 0x0000, + 0x0000, 0x0000, MB2(0xEDB3), MB2(0xEDB4), + 0x0000, 0x0000, 0x0000, MB2(0xEDB5), + 0x0000, MB2(0xEDB6), MB2(0xEDB7), 0x0000, + MB2(0xEDB8), 0x0000, 0x0000, MB2(0xEDB9), + 0x0000, MB2(0xEDBA), MB2(0xEDBB), 0x0000, + MB2(0xEDBC), MB2(0xEDBD), 0x0000, MB2(0xEDBE), + 0x0000, MB2(0xEDBF), 0x0000, MB2(0xEDC0), /* 9F40 */ + MB2(0xEDC1), MB2(0xEDC2), MB2(0xEDC3), MB2(0xEDC4), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDC5), + 0x0000, MB2(0xEDC6), MB2(0xEDC7), MB2(0xEDC8), + MB2(0xEDC9), 0x0000, MB2(0xEDCA), 0x0000, + 0x0000, MB2(0xEDCB), MB2(0xEDCC), 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xEDCD), MB2(0xEDCE), 0x0000, 0x0000, + 0x0000, MB2(0xEDCF), MB2(0xEDD0), MB2(0xEDD1), + MB2(0xEDD2), MB2(0xEDD3), 0x0000, MB2(0xEDD4), + 0x0000, MB2(0xEDD5), 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDD6), 0x0000, + 0x0000, MB2(0xEDD7), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, MB2(0xEDD8), + MB2(0xEDD9), MB2(0xEDDA), MB2(0xEDDB), 0x0000, + MB2(0xEDDC), 0x0000, MB2(0xEDDD), MB2(0xEDDE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, MB2(0xEDDF), 0x0000, + 0x0000, MB2(0xEDE0), MB2(0xEDE1), MB2(0xEDE2), /* 9FA0 */ + 0x0000, MB2(0xEDE3), 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + MB2(0xF5A1), MB2(0xF5A2), MB2(0xF5A3), MB2(0xF5A4), + MB2(0xF5A5), MB2(0xF5A6), MB2(0xF5A7), MB2(0xF5A8), + MB2(0xF5A9), MB2(0xF5AA), MB2(0xF5AB), MB2(0xF5AC), + MB2(0xF5AD), MB2(0xF5AE), MB2(0xF5AF), MB2(0xF5B0), + MB2(0xF5B1), MB2(0xF5B2), MB2(0xF5B3), MB2(0xF5B4), + MB2(0xF5B5), MB2(0xF5B6), MB2(0xF5B7), MB2(0xF5B8), /* E3C0 */ + MB2(0xF5B9), MB2(0xF5BA), MB2(0xF5BB), MB2(0xF5BC), + MB2(0xF5BD), MB2(0xF5BE), MB2(0xF5BF), MB2(0xF5C0), + MB2(0xF5C1), MB2(0xF5C2), MB2(0xF5C3), MB2(0xF5C4), + MB2(0xF5C5), MB2(0xF5C6), MB2(0xF5C7), MB2(0xF5C8), + MB2(0xF5C9), MB2(0xF5CA), MB2(0xF5CB), MB2(0xF5CC), + MB2(0xF5CD), MB2(0xF5CE), MB2(0xF5CF), MB2(0xF5D0), + MB2(0xF5D1), MB2(0xF5D2), MB2(0xF5D3), MB2(0xF5D4), + MB2(0xF5D5), MB2(0xF5D6), MB2(0xF5D7), MB2(0xF5D8), /* E3E0 */ + MB2(0xF5D9), MB2(0xF5DA), MB2(0xF5DB), MB2(0xF5DC), + MB2(0xF5DD), MB2(0xF5DE), MB2(0xF5DF), MB2(0xF5E0), + MB2(0xF5E1), MB2(0xF5E2), MB2(0xF5E3), MB2(0xF5E4), + MB2(0xF5E5), MB2(0xF5E6), MB2(0xF5E7), MB2(0xF5E8), + MB2(0xF5E9), MB2(0xF5EA), MB2(0xF5EB), MB2(0xF5EC), + MB2(0xF5ED), MB2(0xF5EE), MB2(0xF5EF), MB2(0xF5F0), + MB2(0xF5F1), MB2(0xF5F2), MB2(0xF5F3), MB2(0xF5F4), + MB2(0xF5F5), MB2(0xF5F6), MB2(0xF5F7), MB2(0xF5F8), /* E400 */ + MB2(0xF5F9), MB2(0xF5FA), MB2(0xF5FB), MB2(0xF5FC), + MB2(0xF5FD), MB2(0xF5FE), MB2(0xF6A1), MB2(0xF6A2), + MB2(0xF6A3), MB2(0xF6A4), MB2(0xF6A5), MB2(0xF6A6), + MB2(0xF6A7), MB2(0xF6A8), MB2(0xF6A9), MB2(0xF6AA), + MB2(0xF6AB), MB2(0xF6AC), MB2(0xF6AD), MB2(0xF6AE), + MB2(0xF6AF), MB2(0xF6B0), MB2(0xF6B1), MB2(0xF6B2), + MB2(0xF6B3), MB2(0xF6B4), MB2(0xF6B5), MB2(0xF6B6), + MB2(0xF6B7), MB2(0xF6B8), MB2(0xF6B9), MB2(0xF6BA), /* E420 */ + MB2(0xF6BB), MB2(0xF6BC), MB2(0xF6BD), MB2(0xF6BE), + MB2(0xF6BF), MB2(0xF6C0), MB2(0xF6C1), MB2(0xF6C2), + MB2(0xF6C3), MB2(0xF6C4), MB2(0xF6C5), MB2(0xF6C6), + MB2(0xF6C7), MB2(0xF6C8), MB2(0xF6C9), MB2(0xF6CA), + MB2(0xF6CB), MB2(0xF6CC), MB2(0xF6CD), MB2(0xF6CE), + MB2(0xF6CF), MB2(0xF6D0), MB2(0xF6D1), MB2(0xF6D2), + MB2(0xF6D3), MB2(0xF6D4), MB2(0xF6D5), MB2(0xF6D6), + MB2(0xF6D7), MB2(0xF6D8), MB2(0xF6D9), MB2(0xF6DA), /* E440 */ + MB2(0xF6DB), MB2(0xF6DC), MB2(0xF6DD), MB2(0xF6DE), + MB2(0xF6DF), MB2(0xF6E0), MB2(0xF6E1), MB2(0xF6E2), + MB2(0xF6E3), MB2(0xF6E4), MB2(0xF6E5), MB2(0xF6E6), + MB2(0xF6E7), MB2(0xF6E8), MB2(0xF6E9), MB2(0xF6EA), + MB2(0xF6EB), MB2(0xF6EC), MB2(0xF6ED), MB2(0xF6EE), + MB2(0xF6EF), MB2(0xF6F0), MB2(0xF6F1), MB2(0xF6F2), + MB2(0xF6F3), MB2(0xF6F4), MB2(0xF6F5), MB2(0xF6F6), + MB2(0xF6F7), MB2(0xF6F8), MB2(0xF6F9), MB2(0xF6FA), /* E460 */ + MB2(0xF6FB), MB2(0xF6FC), MB2(0xF6FD), MB2(0xF6FE), + MB2(0xF7A1), MB2(0xF7A2), MB2(0xF7A3), MB2(0xF7A4), + MB2(0xF7A5), MB2(0xF7A6), MB2(0xF7A7), MB2(0xF7A8), + MB2(0xF7A9), MB2(0xF7AA), MB2(0xF7AB), MB2(0xF7AC), + MB2(0xF7AD), MB2(0xF7AE), MB2(0xF7AF), MB2(0xF7B0), + MB2(0xF7B1), MB2(0xF7B2), MB2(0xF7B3), MB2(0xF7B4), + MB2(0xF7B5), MB2(0xF7B6), MB2(0xF7B7), MB2(0xF7B8), + MB2(0xF7B9), MB2(0xF7BA), MB2(0xF7BB), MB2(0xF7BC), /* E480 */ + MB2(0xF7BD), MB2(0xF7BE), MB2(0xF7BF), MB2(0xF7C0), + MB2(0xF7C1), MB2(0xF7C2), MB2(0xF7C3), MB2(0xF7C4), + MB2(0xF7C5), MB2(0xF7C6), MB2(0xF7C7), MB2(0xF7C8), + MB2(0xF7C9), MB2(0xF7CA), MB2(0xF7CB), MB2(0xF7CC), + MB2(0xF7CD), MB2(0xF7CE), MB2(0xF7CF), MB2(0xF7D0), + MB2(0xF7D1), MB2(0xF7D2), MB2(0xF7D3), MB2(0xF7D4), + MB2(0xF7D5), MB2(0xF7D6), MB2(0xF7D7), MB2(0xF7D8), + MB2(0xF7D9), MB2(0xF7DA), MB2(0xF7DB), MB2(0xF7DC), /* E4A0 */ + MB2(0xF7DD), MB2(0xF7DE), MB2(0xF7DF), MB2(0xF7E0), + MB2(0xF7E1), MB2(0xF7E2), MB2(0xF7E3), MB2(0xF7E4), + MB2(0xF7E5), MB2(0xF7E6), MB2(0xF7E7), MB2(0xF7E8), + MB2(0xF7E9), MB2(0xF7EA), MB2(0xF7EB), MB2(0xF7EC), + MB2(0xF7ED), MB2(0xF7EE), MB2(0xF7EF), MB2(0xF7F0), + MB2(0xF7F1), MB2(0xF7F2), MB2(0xF7F3), MB2(0xF7F4), + MB2(0xF7F5), MB2(0xF7F6), MB2(0xF7F7), MB2(0xF7F8), + MB2(0xF7F9), MB2(0xF7FA), MB2(0xF7FB), MB2(0xF7FC), /* E4C0 */ + MB2(0xF7FD), MB2(0xF7FE), MB2(0xF8A1), MB2(0xF8A2), + MB2(0xF8A3), MB2(0xF8A4), MB2(0xF8A5), MB2(0xF8A6), + MB2(0xF8A7), MB2(0xF8A8), MB2(0xF8A9), MB2(0xF8AA), + MB2(0xF8AB), MB2(0xF8AC), MB2(0xF8AD), MB2(0xF8AE), + MB2(0xF8AF), MB2(0xF8B0), MB2(0xF8B1), MB2(0xF8B2), + MB2(0xF8B3), MB2(0xF8B4), MB2(0xF8B5), MB2(0xF8B6), + MB2(0xF8B7), MB2(0xF8B8), MB2(0xF8B9), MB2(0xF8BA), + MB2(0xF8BB), MB2(0xF8BC), MB2(0xF8BD), MB2(0xF8BE), /* E4E0 */ + MB2(0xF8BF), MB2(0xF8C0), MB2(0xF8C1), MB2(0xF8C2), + MB2(0xF8C3), MB2(0xF8C4), MB2(0xF8C5), MB2(0xF8C6), + MB2(0xF8C7), MB2(0xF8C8), MB2(0xF8C9), MB2(0xF8CA), + MB2(0xF8CB), MB2(0xF8CC), MB2(0xF8CD), MB2(0xF8CE), + MB2(0xF8CF), MB2(0xF8D0), MB2(0xF8D1), MB2(0xF8D2), + MB2(0xF8D3), MB2(0xF8D4), MB2(0xF8D5), MB2(0xF8D6), + MB2(0xF8D7), MB2(0xF8D8), MB2(0xF8D9), MB2(0xF8DA), + MB2(0xF8DB), MB2(0xF8DC), MB2(0xF8DD), MB2(0xF8DE), /* E500 */ + MB2(0xF8DF), MB2(0xF8E0), MB2(0xF8E1), MB2(0xF8E2), + MB2(0xF8E3), MB2(0xF8E4), MB2(0xF8E5), MB2(0xF8E6), + MB2(0xF8E7), MB2(0xF8E8), MB2(0xF8E9), MB2(0xF8EA), + MB2(0xF8EB), MB2(0xF8EC), MB2(0xF8ED), MB2(0xF8EE), + MB2(0xF8EF), MB2(0xF8F0), MB2(0xF8F1), MB2(0xF8F2), + MB2(0xF8F3), MB2(0xF8F4), MB2(0xF8F5), MB2(0xF8F6), + MB2(0xF8F7), MB2(0xF8F8), MB2(0xF8F9), MB2(0xF8FA), + MB2(0xF8FB), MB2(0xF8FC), MB2(0xF8FD), MB2(0xF8FE), /* E520 */ + MB2(0xF9A1), MB2(0xF9A2), MB2(0xF9A3), MB2(0xF9A4), + MB2(0xF9A5), MB2(0xF9A6), MB2(0xF9A7), MB2(0xF9A8), + MB2(0xF9A9), MB2(0xF9AA), MB2(0xF9AB), MB2(0xF9AC), + MB2(0xF9AD), MB2(0xF9AE), MB2(0xF9AF), MB2(0xF9B0), + MB2(0xF9B1), MB2(0xF9B2), MB2(0xF9B3), MB2(0xF9B4), + MB2(0xF9B5), MB2(0xF9B6), MB2(0xF9B7), MB2(0xF9B8), + MB2(0xF9B9), MB2(0xF9BA), MB2(0xF9BB), MB2(0xF9BC), + MB2(0xF9BD), MB2(0xF9BE), MB2(0xF9BF), MB2(0xF9C0), /* E540 */ + MB2(0xF9C1), MB2(0xF9C2), MB2(0xF9C3), MB2(0xF9C4), + MB2(0xF9C5), MB2(0xF9C6), MB2(0xF9C7), MB2(0xF9C8), + MB2(0xF9C9), MB2(0xF9CA), MB2(0xF9CB), MB2(0xF9CC), + MB2(0xF9CD), MB2(0xF9CE), MB2(0xF9CF), MB2(0xF9D0), + MB2(0xF9D1), MB2(0xF9D2), MB2(0xF9D3), MB2(0xF9D4), + MB2(0xF9D5), MB2(0xF9D6), MB2(0xF9D7), MB2(0xF9D8), + MB2(0xF9D9), MB2(0xF9DA), MB2(0xF9DB), MB2(0xF9DC), + MB2(0xF9DD), MB2(0xF9DE), MB2(0xF9DF), MB2(0xF9E0), /* E560 */ + MB2(0xF9E1), MB2(0xF9E2), MB2(0xF9E3), MB2(0xF9E4), + MB2(0xF9E5), MB2(0xF9E6), MB2(0xF9E7), MB2(0xF9E8), + MB2(0xF9E9), MB2(0xF9EA), MB2(0xF9EB), MB2(0xF9EC), + MB2(0xF9ED), MB2(0xF9EE), MB2(0xF9EF), MB2(0xF9F0), + MB2(0xF9F1), MB2(0xF9F2), MB2(0xF9F3), MB2(0xF9F4), + MB2(0xF9F5), MB2(0xF9F6), MB2(0xF9F7), MB2(0xF9F8), + MB2(0xF9F9), MB2(0xF9FA), MB2(0xF9FB), MB2(0xF9FC), + MB2(0xF9FD), MB2(0xF9FE), MB2(0xFAA1), MB2(0xFAA2), /* E580 */ + MB2(0xFAA3), MB2(0xFAA4), MB2(0xFAA5), MB2(0xFAA6), + MB2(0xFAA7), MB2(0xFAA8), MB2(0xFAA9), MB2(0xFAAA), + MB2(0xFAAB), MB2(0xFAAC), MB2(0xFAAD), MB2(0xFAAE), + MB2(0xFAAF), MB2(0xFAB0), MB2(0xFAB1), MB2(0xFAB2), + MB2(0xFAB3), MB2(0xFAB4), MB2(0xFAB5), MB2(0xFAB6), + MB2(0xFAB7), MB2(0xFAB8), MB2(0xFAB9), MB2(0xFABA), + MB2(0xFABB), MB2(0xFABC), MB2(0xFABD), MB2(0xFABE), + MB2(0xFABF), MB2(0xFAC0), MB2(0xFAC1), MB2(0xFAC2), /* E5A0 */ + MB2(0xFAC3), MB2(0xFAC4), MB2(0xFAC5), MB2(0xFAC6), + MB2(0xFAC7), MB2(0xFAC8), MB2(0xFAC9), MB2(0xFACA), + MB2(0xFACB), MB2(0xFACC), MB2(0xFACD), MB2(0xFACE), + MB2(0xFACF), MB2(0xFAD0), MB2(0xFAD1), MB2(0xFAD2), + MB2(0xFAD3), MB2(0xFAD4), MB2(0xFAD5), MB2(0xFAD6), + MB2(0xFAD7), MB2(0xFAD8), MB2(0xFAD9), MB2(0xFADA), + MB2(0xFADB), MB2(0xFADC), MB2(0xFADD), MB2(0xFADE), + MB2(0xFADF), MB2(0xFAE0), MB2(0xFAE1), MB2(0xFAE2), /* E5C0 */ + MB2(0xFAE3), MB2(0xFAE4), MB2(0xFAE5), MB2(0xFAE6), + MB2(0xFAE7), MB2(0xFAE8), MB2(0xFAE9), MB2(0xFAEA), + MB2(0xFAEB), MB2(0xFAEC), MB2(0xFAED), MB2(0xFAEE), + MB2(0xFAEF), MB2(0xFAF0), MB2(0xFAF1), MB2(0xFAF2), + MB2(0xFAF3), MB2(0xFAF4), MB2(0xFAF5), MB2(0xFAF6), + MB2(0xFAF7), MB2(0xFAF8), MB2(0xFAF9), MB2(0xFAFA), + MB2(0xFAFB), MB2(0xFAFC), MB2(0xFAFD), MB2(0xFAFE), + MB2(0xFBA1), MB2(0xFBA2), MB2(0xFBA3), MB2(0xFBA4), /* E5E0 */ + MB2(0xFBA5), MB2(0xFBA6), MB2(0xFBA7), MB2(0xFBA8), + MB2(0xFBA9), MB2(0xFBAA), MB2(0xFBAB), MB2(0xFBAC), + MB2(0xFBAD), MB2(0xFBAE), MB2(0xFBAF), MB2(0xFBB0), + MB2(0xFBB1), MB2(0xFBB2), MB2(0xFBB3), MB2(0xFBB4), + MB2(0xFBB5), MB2(0xFBB6), MB2(0xFBB7), MB2(0xFBB8), + MB2(0xFBB9), MB2(0xFBBA), MB2(0xFBBB), MB2(0xFBBC), + MB2(0xFBBD), MB2(0xFBBE), MB2(0xFBBF), MB2(0xFBC0), + MB2(0xFBC1), MB2(0xFBC2), MB2(0xFBC3), MB2(0xFBC4), /* E600 */ + MB2(0xFBC5), MB2(0xFBC6), MB2(0xFBC7), MB2(0xFBC8), + MB2(0xFBC9), MB2(0xFBCA), MB2(0xFBCB), MB2(0xFBCC), + MB2(0xFBCD), MB2(0xFBCE), MB2(0xFBCF), MB2(0xFBD0), + MB2(0xFBD1), MB2(0xFBD2), MB2(0xFBD3), MB2(0xFBD4), + MB2(0xFBD5), MB2(0xFBD6), MB2(0xFBD7), MB2(0xFBD8), + MB2(0xFBD9), MB2(0xFBDA), MB2(0xFBDB), MB2(0xFBDC), + MB2(0xFBDD), MB2(0xFBDE), MB2(0xFBDF), MB2(0xFBE0), + MB2(0xFBE1), MB2(0xFBE2), MB2(0xFBE3), MB2(0xFBE4), /* E620 */ + MB2(0xFBE5), MB2(0xFBE6), MB2(0xFBE7), MB2(0xFBE8), + MB2(0xFBE9), MB2(0xFBEA), MB2(0xFBEB), MB2(0xFBEC), + MB2(0xFBED), MB2(0xFBEE), MB2(0xFBEF), MB2(0xFBF0), + MB2(0xFBF1), MB2(0xFBF2), MB2(0xFBF3), MB2(0xFBF4), + MB2(0xFBF5), MB2(0xFBF6), MB2(0xFBF7), MB2(0xFBF8), + MB2(0xFBF9), MB2(0xFBFA), MB2(0xFBFB), MB2(0xFBFC), + MB2(0xFBFD), MB2(0xFBFE), MB2(0xFCA1), MB2(0xFCA2), + MB2(0xFCA3), MB2(0xFCA4), MB2(0xFCA5), MB2(0xFCA6), /* E640 */ + MB2(0xFCA7), MB2(0xFCA8), MB2(0xFCA9), MB2(0xFCAA), + MB2(0xFCAB), MB2(0xFCAC), MB2(0xFCAD), MB2(0xFCAE), + MB2(0xFCAF), MB2(0xFCB0), MB2(0xFCB1), MB2(0xFCB2), + MB2(0xFCB3), MB2(0xFCB4), MB2(0xFCB5), MB2(0xFCB6), + MB2(0xFCB7), MB2(0xFCB8), MB2(0xFCB9), MB2(0xFCBA), + MB2(0xFCBB), MB2(0xFCBC), MB2(0xFCBD), MB2(0xFCBE), + MB2(0xFCBF), MB2(0xFCC0), MB2(0xFCC1), MB2(0xFCC2), + MB2(0xFCC3), MB2(0xFCC4), MB2(0xFCC5), MB2(0xFCC6), /* E660 */ + MB2(0xFCC7), MB2(0xFCC8), MB2(0xFCC9), MB2(0xFCCA), + MB2(0xFCCB), MB2(0xFCCC), MB2(0xFCCD), MB2(0xFCCE), + MB2(0xFCCF), MB2(0xFCD0), MB2(0xFCD1), MB2(0xFCD2), + MB2(0xFCD3), MB2(0xFCD4), MB2(0xFCD5), MB2(0xFCD6), + MB2(0xFCD7), MB2(0xFCD8), MB2(0xFCD9), MB2(0xFCDA), + MB2(0xFCDB), MB2(0xFCDC), MB2(0xFCDD), MB2(0xFCDE), + MB2(0xFCDF), MB2(0xFCE0), MB2(0xFCE1), MB2(0xFCE2), + MB2(0xFCE3), MB2(0xFCE4), MB2(0xFCE5), MB2(0xFCE6), /* E680 */ + MB2(0xFCE7), MB2(0xFCE8), MB2(0xFCE9), MB2(0xFCEA), + MB2(0xFCEB), MB2(0xFCEC), MB2(0xFCED), MB2(0xFCEE), + MB2(0xFCEF), MB2(0xFCF0), MB2(0xFCF1), MB2(0xFCF2), + MB2(0xFCF3), MB2(0xFCF4), MB2(0xFCF5), MB2(0xFCF6), + MB2(0xFCF7), MB2(0xFCF8), MB2(0xFCF9), MB2(0xFCFA), + MB2(0xFCFB), MB2(0xFCFC), MB2(0xFCFD), MB2(0xFCFE), + MB2(0xFDA1), MB2(0xFDA2), MB2(0xFDA3), MB2(0xFDA4), + MB2(0xFDA5), MB2(0xFDA6), MB2(0xFDA7), MB2(0xFDA8), /* E6A0 */ + MB2(0xFDA9), MB2(0xFDAA), MB2(0xFDAB), MB2(0xFDAC), + MB2(0xFDAD), MB2(0xFDAE), MB2(0xFDAF), MB2(0xFDB0), + MB2(0xFDB1), MB2(0xFDB2), MB2(0xFDB3), MB2(0xFDB4), + MB2(0xFDB5), MB2(0xFDB6), MB2(0xFDB7), MB2(0xFDB8), + MB2(0xFDB9), MB2(0xFDBA), MB2(0xFDBB), MB2(0xFDBC), + MB2(0xFDBD), MB2(0xFDBE), MB2(0xFDBF), MB2(0xFDC0), + MB2(0xFDC1), MB2(0xFDC2), MB2(0xFDC3), MB2(0xFDC4), + MB2(0xFDC5), MB2(0xFDC6), MB2(0xFDC7), MB2(0xFDC8), /* E6C0 */ + MB2(0xFDC9), MB2(0xFDCA), MB2(0xFDCB), MB2(0xFDCC), + MB2(0xFDCD), MB2(0xFDCE), MB2(0xFDCF), MB2(0xFDD0), + MB2(0xFDD1), MB2(0xFDD2), MB2(0xFDD3), MB2(0xFDD4), + MB2(0xFDD5), MB2(0xFDD6), MB2(0xFDD7), MB2(0xFDD8), + MB2(0xFDD9), MB2(0xFDDA), MB2(0xFDDB), MB2(0xFDDC), + MB2(0xFDDD), MB2(0xFDDE), MB2(0xFDDF), MB2(0xFDE0), + MB2(0xFDE1), MB2(0xFDE2), MB2(0xFDE3), MB2(0xFDE4), + MB2(0xFDE5), MB2(0xFDE6), MB2(0xFDE7), MB2(0xFDE8), /* E6E0 */ + MB2(0xFDE9), MB2(0xFDEA), MB2(0xFDEB), MB2(0xFDEC), + MB2(0xFDED), MB2(0xFDEE), MB2(0xFDEF), MB2(0xFDF0), + MB2(0xFDF1), MB2(0xFDF2), MB2(0xFDF3), MB2(0xFDF4), + MB2(0xFDF5), MB2(0xFDF6), MB2(0xFDF7), MB2(0xFDF8), + MB2(0xFDF9), MB2(0xFDFA), MB2(0xFDFB), MB2(0xFDFC), + MB2(0xFDFD), MB2(0xFDFE), MB2(0xFEA1), MB2(0xFEA2), + MB2(0xFEA3), MB2(0xFEA4), MB2(0xFEA5), MB2(0xFEA6), + MB2(0xFEA7), MB2(0xFEA8), MB2(0xFEA9), MB2(0xFEAA), /* E700 */ + MB2(0xFEAB), MB2(0xFEAC), MB2(0xFEAD), MB2(0xFEAE), + MB2(0xFEAF), MB2(0xFEB0), MB2(0xFEB1), MB2(0xFEB2), + MB2(0xFEB3), MB2(0xFEB4), MB2(0xFEB5), MB2(0xFEB6), + MB2(0xFEB7), MB2(0xFEB8), MB2(0xFEB9), MB2(0xFEBA), + MB2(0xFEBB), MB2(0xFEBC), MB2(0xFEBD), MB2(0xFEBE), + MB2(0xFEBF), MB2(0xFEC0), MB2(0xFEC1), MB2(0xFEC2), + MB2(0xFEC3), MB2(0xFEC4), MB2(0xFEC5), MB2(0xFEC6), + MB2(0xFEC7), MB2(0xFEC8), MB2(0xFEC9), MB2(0xFECA), /* E720 */ + MB2(0xFECB), MB2(0xFECC), MB2(0xFECD), MB2(0xFECE), + MB2(0xFECF), MB2(0xFED0), MB2(0xFED1), MB2(0xFED2), + MB2(0xFED3), MB2(0xFED4), MB2(0xFED5), MB2(0xFED6), + MB2(0xFED7), MB2(0xFED8), MB2(0xFED9), MB2(0xFEDA), + MB2(0xFEDB), MB2(0xFEDC), MB2(0xFEDD), MB2(0xFEDE), + MB2(0xFEDF), MB2(0xFEE0), MB2(0xFEE1), MB2(0xFEE2), + MB2(0xFEE3), MB2(0xFEE4), MB2(0xFEE5), MB2(0xFEE6), + MB2(0xFEE7), MB2(0xFEE8), MB2(0xFEE9), MB2(0xFEEA), /* E740 */ + MB2(0xFEEB), MB2(0xFEEC), MB2(0xFEED), MB2(0xFEEE), + MB2(0xFEEF), MB2(0xFEF0), MB2(0xFEF1), MB2(0xFEF2), + MB2(0xFEF3), MB2(0xFEF4), MB2(0xFEF5), MB2(0xFEF6), + MB2(0xFEF7), MB2(0xFEF8), MB2(0xFEF9), MB2(0xFEFA), + MB2(0xFEFB), MB2(0xFEFC), MB2(0xFEFD), MB2(0xFEFE), + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */ + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + + + +/* + UJIS (EUC-JP) encoding components: + + [00..7F] = ASCII [U+0000..U+007F] + [8E][A1..DF] = JIS-X-0201 Katakana [U+FF61..U+FF9F] + [A1..FE][A1..FE] = JIS-X-0208 + [8F][A1-FE][A1-FE] = JIS-X-0212 + + [80-8D,90-A0,FF] = Invalid leading byte +*/ + + +/** + Scans an UJIS character from the input string + and converts to Unicode code point. + + @param[out] pwc Unicode code point + @param[in] s Beginning of the input string + @param[in[ e End of the input string + + @retval MY_CS_TOOSMALL If the string was too short to scan a character + @retval 1 If a 1-byte character was scanned + @retval 2 If a 2-byte character was scanned + @retval 3 If a 3-byte character was scanned + @retval -2 If a 2-byte unassigned character was scanned + @retval -3 If a 3-byte unassigned character was scanned + @retval MY_CS_ILSEQ If a wrong byte sequence was found +*/ +static int +my_mb_wc_euc_jp(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + int hi; + + if (s >= e) + return MY_CS_TOOSMALL; + + if ((hi= s[0]) < 0x80) /* ASCII code set: [00..7F] -> [U+0000..U+007F] */ + { + *pwc= hi; + return 1; + } + + if (hi >= 0xA1 && hi <= 0xFE) /* JIS-X-0208 code set: [A1..FE][A1..FE] */ + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + return (*pwc= jisx0208_eucjp_to_unicode[(hi << 8) + s[1]]) ? 2 : + (s[1] < 0xA1 || s[1] > 0xFE) ? MY_CS_ILSEQ : -2; + } + + /* JIS-X-0201 HALF WIDTH KATAKANA: [8E][A1..DF] -> [U+FF61..U+FF9F] */ + if (hi == 0x8E) + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + if (s[1] < 0xA1 || s[1] > 0xDF) + return MY_CS_ILSEQ; + *pwc= 0xFEC0 + s[1]; /* 0xFFC0 = 0xFF61 - 0xA1 */ + return 2; + } + + if (hi == 0x8F) /* JIS X 0212 code set: [8F][A1..FE][A1..FE] */ + { + if (s + 3 > e) + return MY_CS_TOOSMALL3; + return (*pwc= jisx0212_eucjp_to_unicode[(((int) s[1]) << 8) + s[2]]) ? + 3 : + (s[1] < 0xA1 || s[1] > 0xFE || s[2] < 0xA1 || s[2] > 0xFE) ? + MY_CS_ILSEQ : -3; + } + + return MY_CS_ILSEQ; +} + + +/** + Puts the given Unicode character into an UJIS string. + + @param[in] wc Unicode code point + @param[in] s Beginning of the out string + @param[in] e End of the out string + + @retval MY_CS_TOOSMALL If the string was too short to put a character + @retval 1 If a 1-byte character was put + @retval 2 If a 2-byte character was put + @retval MY_CS_ILUNI If the Unicode character does not exist in UJIS +*/ +static int +my_wc_mb_euc_jp(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int jp; + + if ((int) wc < 0x80) /* ASCII [00-7F] */ + { + if (s >= e) + return MY_CS_TOOSMALL; + *s= (uchar) wc; + return 1; + } + + if (wc > 0xFFFF) + return MY_CS_ILUNI; + + if ((jp= unicode_to_jisx0208_eucjp[wc])) /* JIS-X-0208 */ + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + MY_PUT_MB2(s, jp); + return 2; + } + + if ((jp= unicode_to_jisx0212_eucjp[wc])) /* JIS-X-0212 */ + { + if (s + 3 > e) + return MY_CS_TOOSMALL3; + s[0]= 0x8F; + MY_PUT_MB2(s + 1, jp); + return 3; + } + + if (wc >= 0xFF61 && wc <= 0xFF9F) /* Half width Katakana */ + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + s[0]= 0x8E; + s[1]= (uchar) (wc - 0xFEC0); + return 2; + } + + return MY_CS_ILUNI; +} + + + +/* Case info pages for JIS-X-0208 range */ +static const MY_UNICASE_CHARACTER cA2[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA2A0,0xA2A0,0x003F}, /* A2A0 */ + {0xA2A1,0xA2A1,0x25C6}, + {0xA2A2,0xA2A2,0x25A1}, + {0xA2A3,0xA2A3,0x25A0}, + {0xA2A4,0xA2A4,0x25B3}, + {0xA2A5,0xA2A5,0x25B2}, + {0xA2A6,0xA2A6,0x25BD}, + {0xA2A7,0xA2A7,0x25BC}, + {0xA2A8,0xA2A8,0x203B}, + {0xA2A9,0xA2A9,0x3012}, + {0xA2AA,0xA2AA,0x2192}, + {0xA2AB,0xA2AB,0x2190}, + {0xA2AC,0xA2AC,0x2191}, + {0xA2AD,0xA2AD,0x2193}, + {0xA2AE,0xA2AE,0x3013}, + {0xA2AF,0xA2AF,0x003F}, + {0xA2B0,0xA2B0,0x003F}, /* A2B0 */ + {0xA2B1,0xA2B1,0x003F}, + {0xA2B2,0xA2B2,0x003F}, + {0xA2B3,0xA2B3,0x003F}, + {0xA2B4,0xA2B4,0x003F}, + {0xA2B5,0xA2B5,0x003F}, + {0xA2B6,0xA2B6,0x003F}, + {0xA2B7,0xA2B7,0x003F}, + {0xA2B8,0xA2B8,0x003F}, + {0xA2B9,0xA2B9,0x003F}, + {0xA2BA,0xA2BA,0x2208}, + {0xA2BB,0xA2BB,0x220B}, + {0xA2BC,0xA2BC,0x2286}, + {0xA2BD,0xA2BD,0x2287}, + {0xA2BE,0xA2BE,0x2282}, + {0xA2BF,0xA2BF,0x2283}, + {0xA2C0,0xA2C0,0x222A}, /* A2C0 */ + {0xA2C1,0xA2C1,0x2229}, + {0xA2C2,0xA2C2,0x003F}, + {0xA2C3,0xA2C3,0x003F}, + {0xA2C4,0xA2C4,0x003F}, + {0xA2C5,0xA2C5,0x003F}, + {0xA2C6,0xA2C6,0x003F}, + {0xA2C7,0xA2C7,0x003F}, + {0xA2C8,0xA2C8,0x003F}, + {0xA2C9,0xA2C9,0x003F}, + {0xA2CA,0xA2CA,0x2227}, + {0xA2CB,0xA2CB,0x2228}, + {0xA2CC,0xA2CC,0x00AC}, + {0xA2CD,0xA2CD,0x21D2}, + {0xA2CE,0xA2CE,0x21D4}, + {0xA2CF,0xA2CF,0x2200}, + {0xA2D0,0xA2D0,0x2203}, /* A2D0 */ + {0xA2D1,0xA2D1,0x003F}, + {0xA2D2,0xA2D2,0x003F}, + {0xA2D3,0xA2D3,0x003F}, + {0xA2D4,0xA2D4,0x003F}, + {0xA2D5,0xA2D5,0x003F}, + {0xA2D6,0xA2D6,0x003F}, + {0xA2D7,0xA2D7,0x003F}, + {0xA2D8,0xA2D8,0x003F}, + {0xA2D9,0xA2D9,0x003F}, + {0xA2DA,0xA2DA,0x003F}, + {0xA2DB,0xA2DB,0x003F}, + {0xA2DC,0xA2DC,0x2220}, + {0xA2DD,0xA2DD,0x22A5}, + {0xA2DE,0xA2DE,0x2312}, + {0xA2DF,0xA2DF,0x2202}, + {0xA2E0,0xA2E0,0x2207}, /* A2E0 */ + {0xA2E1,0xA2E1,0x2261}, + {0xA2E2,0xA2E2,0x2252}, + {0xA2E3,0xA2E3,0x226A}, + {0xA2E4,0xA2E4,0x226B}, + {0xA2E5,0xA2E5,0x221A}, + {0xA2E6,0xA2E6,0x223D}, + {0xA2E7,0xA2E7,0x221D}, + {0xA2E8,0xA2E8,0x2235}, + {0xA2E9,0xA2E9,0x222B}, + {0xA2EA,0xA2EA,0x222C}, + {0xA2EB,0xA2EB,0x003F}, + {0xA2EC,0xA2EC,0x003F}, + {0xA2ED,0xA2ED,0x003F}, + {0xA2EE,0xA2EE,0x003F}, + {0xA2EF,0xA2EF,0x003F}, + {0xA2F0,0xA2F0,0x003F}, /* A2F0 */ + {0xA2F1,0xA2F1,0x003F}, + {0xA2F2,0x8FABA9,0x212B}, + {0xA2F3,0xA2F3,0x2030}, + {0xA2F4,0xA2F4,0x266F}, + {0xA2F5,0xA2F5,0x266D}, + {0xA2F6,0xA2F6,0x266A}, + {0xA2F7,0xA2F7,0x2020}, + {0xA2F8,0xA2F8,0x2021}, + {0xA2F9,0xA2F9,0x00B6}, + {0xA2FA,0xA2FA,0x003F}, + {0xA2FB,0xA2FB,0x003F}, + {0xA2FC,0xA2FC,0x003F}, + {0xA2FD,0xA2FD,0x003F}, + {0xA2FE,0xA2FE,0x25EF}, + {0xA2FF,0xA2FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA3[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA3A0,0xA3A0,0x003F}, /* A3A0 */ + {0xA3A1,0xA3A1,0x003F}, + {0xA3A2,0xA3A2,0x003F}, + {0xA3A3,0xA3A3,0x003F}, + {0xA3A4,0xA3A4,0x003F}, + {0xA3A5,0xA3A5,0x003F}, + {0xA3A6,0xA3A6,0x003F}, + {0xA3A7,0xA3A7,0x003F}, + {0xA3A8,0xA3A8,0x003F}, + {0xA3A9,0xA3A9,0x003F}, + {0xA3AA,0xA3AA,0x003F}, + {0xA3AB,0xA3AB,0x003F}, + {0xA3AC,0xA3AC,0x003F}, + {0xA3AD,0xA3AD,0x003F}, + {0xA3AE,0xA3AE,0x003F}, + {0xA3AF,0xA3AF,0x003F}, + {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */ + {0xA3B1,0xA3B1,0xFF11}, + {0xA3B2,0xA3B2,0xFF12}, + {0xA3B3,0xA3B3,0xFF13}, + {0xA3B4,0xA3B4,0xFF14}, + {0xA3B5,0xA3B5,0xFF15}, + {0xA3B6,0xA3B6,0xFF16}, + {0xA3B7,0xA3B7,0xFF17}, + {0xA3B8,0xA3B8,0xFF18}, + {0xA3B9,0xA3B9,0xFF19}, + {0xA3BA,0xA3BA,0x003F}, + {0xA3BB,0xA3BB,0x003F}, + {0xA3BC,0xA3BC,0x003F}, + {0xA3BD,0xA3BD,0x003F}, + {0xA3BE,0xA3BE,0x003F}, + {0xA3BF,0xA3BF,0x003F}, + {0xA3C0,0xA3C0,0x003F}, /* A3C0 */ + {0xA3C1,0xA3E1,0xFF21}, + {0xA3C2,0xA3E2,0xFF22}, + {0xA3C3,0xA3E3,0xFF23}, + {0xA3C4,0xA3E4,0xFF24}, + {0xA3C5,0xA3E5,0xFF25}, + {0xA3C6,0xA3E6,0xFF26}, + {0xA3C7,0xA3E7,0xFF27}, + {0xA3C8,0xA3E8,0xFF28}, + {0xA3C9,0xA3E9,0xFF29}, + {0xA3CA,0xA3EA,0xFF2A}, + {0xA3CB,0xA3EB,0xFF2B}, + {0xA3CC,0xA3EC,0xFF2C}, + {0xA3CD,0xA3ED,0xFF2D}, + {0xA3CE,0xA3EE,0xFF2E}, + {0xA3CF,0xA3EF,0xFF2F}, + {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */ + {0xA3D1,0xA3F1,0xFF31}, + {0xA3D2,0xA3F2,0xFF32}, + {0xA3D3,0xA3F3,0xFF33}, + {0xA3D4,0xA3F4,0xFF34}, + {0xA3D5,0xA3F5,0xFF35}, + {0xA3D6,0xA3F6,0xFF36}, + {0xA3D7,0xA3F7,0xFF37}, + {0xA3D8,0xA3F8,0xFF38}, + {0xA3D9,0xA3F9,0xFF39}, + {0xA3DA,0xA3FA,0xFF3A}, + {0xA3DB,0xA3DB,0x003F}, + {0xA3DC,0xA3DC,0x003F}, + {0xA3DD,0xA3DD,0x003F}, + {0xA3DE,0xA3DE,0x003F}, + {0xA3DF,0xA3DF,0x003F}, + {0xA3E0,0xA3E0,0x003F}, /* A3E0 */ + {0xA3C1,0xA3E1,0xFF41}, + {0xA3C2,0xA3E2,0xFF42}, + {0xA3C3,0xA3E3,0xFF43}, + {0xA3C4,0xA3E4,0xFF44}, + {0xA3C5,0xA3E5,0xFF45}, + {0xA3C6,0xA3E6,0xFF46}, + {0xA3C7,0xA3E7,0xFF47}, + {0xA3C8,0xA3E8,0xFF48}, + {0xA3C9,0xA3E9,0xFF49}, + {0xA3CA,0xA3EA,0xFF4A}, + {0xA3CB,0xA3EB,0xFF4B}, + {0xA3CC,0xA3EC,0xFF4C}, + {0xA3CD,0xA3ED,0xFF4D}, + {0xA3CE,0xA3EE,0xFF4E}, + {0xA3CF,0xA3EF,0xFF4F}, + {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */ + {0xA3D1,0xA3F1,0xFF51}, + {0xA3D2,0xA3F2,0xFF52}, + {0xA3D3,0xA3F3,0xFF53}, + {0xA3D4,0xA3F4,0xFF54}, + {0xA3D5,0xA3F5,0xFF55}, + {0xA3D6,0xA3F6,0xFF56}, + {0xA3D7,0xA3F7,0xFF57}, + {0xA3D8,0xA3F8,0xFF58}, + {0xA3D9,0xA3F9,0xFF59}, + {0xA3DA,0xA3FA,0xFF5A}, + {0xA3FB,0xA3FB,0x003F}, + {0xA3FC,0xA3FC,0x003F}, + {0xA3FD,0xA3FD,0x003F}, + {0xA3FE,0xA3FE,0x003F}, + {0xA3FF,0xA3FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA6[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA6A0,0xA6A0,0x003F}, /* A6A0 */ + {0xA6A1,0xA6C1,0x0391}, + {0xA6A2,0xA6C2,0x0392}, + {0xA6A3,0xA6C3,0x0393}, + {0xA6A4,0xA6C4,0x0394}, + {0xA6A5,0xA6C5,0x0395}, + {0xA6A6,0xA6C6,0x0396}, + {0xA6A7,0xA6C7,0x0397}, + {0xA6A8,0xA6C8,0x0398}, + {0xA6A9,0xA6C9,0x0399}, + {0xA6AA,0xA6CA,0x039A}, + {0xA6AB,0xA6CB,0x039B}, + {0xA6AC,0xA6CC,0x039C}, + {0xA6AD,0xA6CD,0x039D}, + {0xA6AE,0xA6CE,0x039E}, + {0xA6AF,0xA6CF,0x039F}, + {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */ + {0xA6B1,0xA6D1,0x03A1}, + {0xA6B2,0xA6D2,0x03A3}, + {0xA6B3,0xA6D3,0x03A4}, + {0xA6B4,0xA6D4,0x03A5}, + {0xA6B5,0xA6D5,0x03A6}, + {0xA6B6,0xA6D6,0x03A7}, + {0xA6B7,0xA6D7,0x03A8}, + {0xA6B8,0xA6D8,0x03A9}, + {0xA6B9,0xA6B9,0x003F}, + {0xA6BA,0xA6BA,0x003F}, + {0xA6BB,0xA6BB,0x003F}, + {0xA6BC,0xA6BC,0x003F}, + {0xA6BD,0xA6BD,0x003F}, + {0xA6BE,0xA6BE,0x003F}, + {0xA6BF,0xA6BF,0x003F}, + {0xA6C0,0xA6C0,0x003F}, /* A6C0 */ + {0xA6A1,0xA6C1,0x03B1}, + {0xA6A2,0xA6C2,0x03B2}, + {0xA6A3,0xA6C3,0x03B3}, + {0xA6A4,0xA6C4,0x03B4}, + {0xA6A5,0xA6C5,0x03B5}, + {0xA6A6,0xA6C6,0x03B6}, + {0xA6A7,0xA6C7,0x03B7}, + {0xA6A8,0xA6C8,0x03B8}, + {0xA6A9,0xA6C9,0x03B9}, + {0xA6AA,0xA6CA,0x03BA}, + {0xA6AB,0xA6CB,0x03BB}, + {0xA6AC,0xA6CC,0x03BC}, + {0xA6AD,0xA6CD,0x03BD}, + {0xA6AE,0xA6CE,0x03BE}, + {0xA6AF,0xA6CF,0x03BF}, + {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */ + {0xA6B1,0xA6D1,0x03C1}, + {0xA6B2,0xA6D2,0x03C3}, + {0xA6B3,0xA6D3,0x03C4}, + {0xA6B4,0xA6D4,0x03C5}, + {0xA6B5,0xA6D5,0x03C6}, + {0xA6B6,0xA6D6,0x03C7}, + {0xA6B7,0xA6D7,0x03C8}, + {0xA6B8,0xA6D8,0x03C9}, + {0xA6D9,0xA6D9,0x003F}, + {0xA6DA,0xA6DA,0x003F}, + {0xA6DB,0xA6DB,0x003F}, + {0xA6DC,0xA6DC,0x003F}, + {0xA6DD,0xA6DD,0x003F}, + {0xA6DE,0xA6DE,0x003F}, + {0xA6DF,0xA6DF,0x003F}, + {0xA6E0,0xA6E0,0x003F}, /* A6E0 */ + {0xA6E1,0xA6E1,0x003F}, + {0xA6E2,0xA6E2,0x003F}, + {0xA6E3,0xA6E3,0x003F}, + {0xA6E4,0xA6E4,0x003F}, + {0xA6E5,0xA6E5,0x003F}, + {0xA6E6,0xA6E6,0x003F}, + {0xA6E7,0xA6E7,0x003F}, + {0xA6E8,0xA6E8,0x003F}, + {0xA6E9,0xA6E9,0x003F}, + {0xA6EA,0xA6EA,0x003F}, + {0xA6EB,0xA6EB,0x003F}, + {0xA6EC,0xA6EC,0x003F}, + {0xA6ED,0xA6ED,0x003F}, + {0xA6EE,0xA6EE,0x003F}, + {0xA6EF,0xA6EF,0x003F}, + {0xA6F0,0xA6F0,0x003F}, /* A6F0 */ + {0xA6F1,0xA6F1,0x003F}, + {0xA6F2,0xA6F2,0x003F}, + {0xA6F3,0xA6F3,0x003F}, + {0xA6F4,0xA6F4,0x003F}, + {0xA6F5,0xA6F5,0x003F}, + {0xA6F6,0xA6F6,0x003F}, + {0xA6F7,0xA6F7,0x003F}, + {0xA6F8,0xA6F8,0x003F}, + {0xA6F9,0xA6F9,0x003F}, + {0xA6FA,0xA6FA,0x003F}, + {0xA6FB,0xA6FB,0x003F}, + {0xA6FC,0xA6FC,0x003F}, + {0xA6FD,0xA6FD,0x003F}, + {0xA6FE,0xA6FE,0x003F}, + {0xA6FF,0xA6FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER cA7[256]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0xA7A0,0xA7A0,0x003F}, + {0xA7A1,0xA7D1,0x0410}, + {0xA7A2,0xA7D2,0x0411}, + {0xA7A3,0xA7D3,0x0412}, + {0xA7A4,0xA7D4,0x0413}, + {0xA7A5,0xA7D5,0x0414}, + {0xA7A6,0xA7D6,0x0415}, + {0xA7A7,0xA7D7,0x0401}, + {0xA7A8,0xA7D8,0x0416}, + {0xA7A9,0xA7D9,0x0417}, + {0xA7AA,0xA7DA,0x0418}, + {0xA7AB,0xA7DB,0x0419}, + {0xA7AC,0xA7DC,0x041A}, + {0xA7AD,0xA7DD,0x041B}, + {0xA7AE,0xA7DE,0x041C}, + {0xA7AF,0xA7DF,0x041D}, + {0xA7B0,0xA7E0,0x041E}, /* A7B0 */ + {0xA7B1,0xA7E1,0x041F}, + {0xA7B2,0xA7E2,0x0420}, + {0xA7B3,0xA7E3,0x0421}, + {0xA7B4,0xA7E4,0x0422}, + {0xA7B5,0xA7E5,0x0423}, + {0xA7B6,0xA7E6,0x0424}, + {0xA7B7,0xA7E7,0x0425}, + {0xA7B8,0xA7E8,0x0426}, + {0xA7B9,0xA7E9,0x0427}, + {0xA7BA,0xA7EA,0x0428}, + {0xA7BB,0xA7EB,0x0429}, + {0xA7BC,0xA7EC,0x042A}, + {0xA7BD,0xA7ED,0x042B}, + {0xA7BE,0xA7EE,0x042C}, + {0xA7BF,0xA7EF,0x042D}, + {0xA7C0,0xA7F0,0x042E}, /* A7C0 */ + {0xA7C1,0xA7F1,0x042F}, + {0xA7C2,0xA7C2,0x003F}, + {0xA7C3,0xA7C3,0x003F}, + {0xA7C4,0xA7C4,0x003F}, + {0xA7C5,0xA7C5,0x003F}, + {0xA7C6,0xA7C6,0x003F}, + {0xA7C7,0xA7C7,0x003F}, + {0xA7C8,0xA7C8,0x003F}, + {0xA7C9,0xA7C9,0x003F}, + {0xA7CA,0xA7CA,0x003F}, + {0xA7CB,0xA7CB,0x003F}, + {0xA7CC,0xA7CC,0x003F}, + {0xA7CD,0xA7CD,0x003F}, + {0xA7CE,0xA7CE,0x003F}, + {0xA7CF,0xA7CF,0x003F}, + {0xA7D0,0xA7D0,0x003F}, /* A7D0 */ + {0xA7A1,0xA7D1,0x0430}, + {0xA7A2,0xA7D2,0x0431}, + {0xA7A3,0xA7D3,0x0432}, + {0xA7A4,0xA7D4,0x0433}, + {0xA7A5,0xA7D5,0x0434}, + {0xA7A6,0xA7D6,0x0435}, + {0xA7A7,0xA7D7,0x0451}, + {0xA7A8,0xA7D8,0x0436}, + {0xA7A9,0xA7D9,0x0437}, + {0xA7AA,0xA7DA,0x0438}, + {0xA7AB,0xA7DB,0x0439}, + {0xA7AC,0xA7DC,0x043A}, + {0xA7AD,0xA7DD,0x043B}, + {0xA7AE,0xA7DE,0x043C}, + {0xA7AF,0xA7DF,0x043D}, + {0xA7B0,0xA7E0,0x043E}, /* A7E0 */ + {0xA7B1,0xA7E1,0x043F}, + {0xA7B2,0xA7E2,0x0440}, + {0xA7B3,0xA7E3,0x0441}, + {0xA7B4,0xA7E4,0x0442}, + {0xA7B5,0xA7E5,0x0443}, + {0xA7B6,0xA7E6,0x0444}, + {0xA7B7,0xA7E7,0x0445}, + {0xA7B8,0xA7E8,0x0446}, + {0xA7B9,0xA7E9,0x0447}, + {0xA7BA,0xA7EA,0x0448}, + {0xA7BB,0xA7EB,0x0449}, + {0xA7BC,0xA7EC,0x044A}, + {0xA7BD,0xA7ED,0x044B}, + {0xA7BE,0xA7EE,0x044C}, + {0xA7BF,0xA7EF,0x044D}, + {0xA7C0,0xA7F0,0x044E}, /* A7F0 */ + {0xA7C1,0xA7F1,0x044F}, + {0xA7F2,0xA7F2,0x003F}, + {0xA7F3,0xA7F3,0x003F}, + {0xA7F4,0xA7F4,0x003F}, + {0xA7F5,0xA7F5,0x003F}, + {0xA7F6,0xA7F6,0x003F}, + {0xA7F7,0xA7F7,0x003F}, + {0xA7F8,0xA7F8,0x003F}, + {0xA7F9,0xA7F9,0x003F}, + {0xA7FA,0xA7FA,0x003F}, + {0xA7FB,0xA7FB,0x003F}, + {0xA7FC,0xA7FC,0x003F}, + {0xA7FD,0xA7FD,0x003F}, + {0xA7FE,0xA7FE,0x003F}, + {0xA7FF,0xA7FF,0x003F}, +}; + + +/* Case info pages for JIS-X-0212 range */ +static const MY_UNICASE_CHARACTER c8FA6[]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FA6A0,0x8FA6A0,0x003F}, /* 8FA6A0 */ + {0x8FA6A1,0x8FA6A1,0x003F}, + {0x8FA6A2,0x8FA6A2,0x003F}, + {0x8FA6A3,0x8FA6A3,0x003F}, + {0x8FA6A4,0x8FA6A4,0x003F}, + {0x8FA6A5,0x8FA6A5,0x003F}, + {0x8FA6A6,0x8FA6A6,0x003F}, + {0x8FA6A7,0x8FA6A7,0x003F}, + {0x8FA6A8,0x8FA6A8,0x003F}, + {0x8FA6A9,0x8FA6A9,0x003F}, + {0x8FA6AA,0x8FA6AA,0x003F}, + {0x8FA6AB,0x8FA6AB,0x003F}, + {0x8FA6AC,0x8FA6AC,0x003F}, + {0x8FA6AD,0x8FA6AD,0x003F}, + {0x8FA6AE,0x8FA6AE,0x003F}, + {0x8FA6AF,0x8FA6AF,0x003F}, + {0x8FA6B0,0x8FA6B0,0x003F}, /* 8FA6B0 */ + {0x8FA6B1,0x8FA6B1,0x003F}, + {0x8FA6B2,0x8FA6B2,0x003F}, + {0x8FA6B3,0x8FA6B3,0x003F}, + {0x8FA6B4,0x8FA6B4,0x003F}, + {0x8FA6B5,0x8FA6B5,0x003F}, + {0x8FA6B6,0x8FA6B6,0x003F}, + {0x8FA6B7,0x8FA6B7,0x003F}, + {0x8FA6B8,0x8FA6B8,0x003F}, + {0x8FA6B9,0x8FA6B9,0x003F}, + {0x8FA6BA,0x8FA6BA,0x003F}, + {0x8FA6BB,0x8FA6BB,0x003F}, + {0x8FA6BC,0x8FA6BC,0x003F}, + {0x8FA6BD,0x8FA6BD,0x003F}, + {0x8FA6BE,0x8FA6BE,0x003F}, + {0x8FA6BF,0x8FA6BF,0x003F}, + {0x8FA6C0,0x8FA6C0,0x003F}, /* 8FA6C0 */ + {0x8FA6C1,0x8FA6C1,0x003F}, + {0x8FA6C2,0x8FA6C2,0x003F}, + {0x8FA6C3,0x8FA6C3,0x003F}, + {0x8FA6C4,0x8FA6C4,0x003F}, + {0x8FA6C5,0x8FA6C5,0x003F}, + {0x8FA6C6,0x8FA6C6,0x003F}, + {0x8FA6C7,0x8FA6C7,0x003F}, + {0x8FA6C8,0x8FA6C8,0x003F}, + {0x8FA6C9,0x8FA6C9,0x003F}, + {0x8FA6CA,0x8FA6CA,0x003F}, + {0x8FA6CB,0x8FA6CB,0x003F}, + {0x8FA6CC,0x8FA6CC,0x003F}, + {0x8FA6CD,0x8FA6CD,0x003F}, + {0x8FA6CE,0x8FA6CE,0x003F}, + {0x8FA6CF,0x8FA6CF,0x003F}, + {0x8FA6D0,0x8FA6D0,0x003F}, /* 8FA6D0 */ + {0x8FA6D1,0x8FA6D1,0x003F}, + {0x8FA6D2,0x8FA6D2,0x003F}, + {0x8FA6D3,0x8FA6D3,0x003F}, + {0x8FA6D4,0x8FA6D4,0x003F}, + {0x8FA6D5,0x8FA6D5,0x003F}, + {0x8FA6D6,0x8FA6D6,0x003F}, + {0x8FA6D7,0x8FA6D7,0x003F}, + {0x8FA6D8,0x8FA6D8,0x003F}, + {0x8FA6D9,0x8FA6D9,0x003F}, + {0x8FA6DA,0x8FA6DA,0x003F}, + {0x8FA6DB,0x8FA6DB,0x003F}, + {0x8FA6DC,0x8FA6DC,0x003F}, + {0x8FA6DD,0x8FA6DD,0x003F}, + {0x8FA6DE,0x8FA6DE,0x003F}, + {0x8FA6DF,0x8FA6DF,0x003F}, + {0x8FA6E0,0x8FA6E0,0x003F}, /* 8FA6E0 */ + {0x8FA6E1,0x8FA6F1,0x0386}, + {0x8FA6E2,0x8FA6F2,0x0388}, + {0x8FA6E3,0x8FA6F3,0x0389}, + {0x8FA6E4,0x8FA6F4,0x038A}, + {0x8FA6E5,0x8FA6F5,0x03AA}, + {0x8FA6E6,0x8FA6E6,0x003F}, + {0x8FA6E7,0x8FA6F7,0x038C}, + {0x8FA6E8,0x8FA6E8,0x003F}, + {0x8FA6E9,0x8FA6F9,0x038E}, + {0x8FA6EA,0x8FA6FA,0x03AB}, + {0x8FA6EB,0x8FA6EB,0x003F}, + {0x8FA6EC,0x8FA6FC,0x038F}, + {0x8FA6ED,0x8FA6ED,0x003F}, + {0x8FA6EE,0x8FA6EE,0x003F}, + {0x8FA6EF,0x8FA6EF,0x003F}, + {0x8FA6F0,0x8FA6F0,0x003F}, /* 8FA6F0 */ + {0x8FA6E1,0x8FA6F1,0x03AC}, + {0x8FA6E2,0x8FA6F2,0x03AD}, + {0x8FA6E3,0x8FA6F3,0x03AE}, + {0x8FA6E4,0x8FA6F4,0x03AF}, + {0x8FA6E5,0x8FA6F5,0x03CA}, + {0x8FA6F6,0x8FA6F6,0x0390}, + {0x8FA6E7,0x8FA6F7,0x03CC}, + { 0xA6B2,0x8FA6F8,0x03C2}, + {0x8FA6E9,0x8FA6F9,0x03CD}, + {0x8FA6EA,0x8FA6FA,0x03CB}, + {0x8FA6FB,0x8FA6FB,0x03B0}, + {0x8FA6EC,0x8FA6FC,0x03CE}, + {0x8FA6FD,0x8FA6FD,0x003F}, + {0x8FA6FE,0x8FA6FE,0x003F}, + {0x8FA6FF,0x8FA6FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FA7[]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FA7A0,0x8FA7A0,0x003F}, /* 8FA7A0 */ + {0x8FA7A1,0x8FA7A1,0x003F}, + {0x8FA7A2,0x8FA7A2,0x003F}, + {0x8FA7A3,0x8FA7A3,0x003F}, + {0x8FA7A4,0x8FA7A4,0x003F}, + {0x8FA7A5,0x8FA7A5,0x003F}, + {0x8FA7A6,0x8FA7A6,0x003F}, + {0x8FA7A7,0x8FA7A7,0x003F}, + {0x8FA7A8,0x8FA7A8,0x003F}, + {0x8FA7A9,0x8FA7A9,0x003F}, + {0x8FA7AA,0x8FA7AA,0x003F}, + {0x8FA7AB,0x8FA7AB,0x003F}, + {0x8FA7AC,0x8FA7AC,0x003F}, + {0x8FA7AD,0x8FA7AD,0x003F}, + {0x8FA7AE,0x8FA7AE,0x003F}, + {0x8FA7AF,0x8FA7AF,0x003F}, + {0x8FA7B0,0x8FA7B0,0x003F}, /* 8FA7B0 */ + {0x8FA7B1,0x8FA7B1,0x003F}, + {0x8FA7B2,0x8FA7B2,0x003F}, + {0x8FA7B3,0x8FA7B3,0x003F}, + {0x8FA7B4,0x8FA7B4,0x003F}, + {0x8FA7B5,0x8FA7B5,0x003F}, + {0x8FA7B6,0x8FA7B6,0x003F}, + {0x8FA7B7,0x8FA7B7,0x003F}, + {0x8FA7B8,0x8FA7B8,0x003F}, + {0x8FA7B9,0x8FA7B9,0x003F}, + {0x8FA7BA,0x8FA7BA,0x003F}, + {0x8FA7BB,0x8FA7BB,0x003F}, + {0x8FA7BC,0x8FA7BC,0x003F}, + {0x8FA7BD,0x8FA7BD,0x003F}, + {0x8FA7BE,0x8FA7BE,0x003F}, + {0x8FA7BF,0x8FA7BF,0x003F}, + {0x8FA7C0,0x8FA7C0,0x003F}, /* 8FA7C0 */ + {0x8FA7C1,0x8FA7C1,0x003F}, + {0x8FA7C2,0x8FA7F2,0x0402}, + {0x8FA7C3,0x8FA7F3,0x0403}, + {0x8FA7C4,0x8FA7F4,0x0404}, + {0x8FA7C5,0x8FA7F5,0x0405}, + {0x8FA7C6,0x8FA7F6,0x0406}, + {0x8FA7C7,0x8FA7F7,0x0407}, + {0x8FA7C8,0x8FA7F8,0x0408}, + {0x8FA7C9,0x8FA7F9,0x0409}, + {0x8FA7CA,0x8FA7FA,0x040A}, + {0x8FA7CB,0x8FA7FB,0x040B}, + {0x8FA7CC,0x8FA7FC,0x040C}, + {0x8FA7CD,0x8FA7FD,0x040E}, + {0x8FA7CE,0x8FA7FE,0x040F}, + {0x8FA7CF,0x8FA7CF,0x003F}, + {0x8FA7D0,0x8FA7D0,0x003F}, /* 8FA7D0 */ + {0x8FA7D1,0x8FA7D1,0x003F}, + {0x8FA7D2,0x8FA7D2,0x003F}, + {0x8FA7D3,0x8FA7D3,0x003F}, + {0x8FA7D4,0x8FA7D4,0x003F}, + {0x8FA7D5,0x8FA7D5,0x003F}, + {0x8FA7D6,0x8FA7D6,0x003F}, + {0x8FA7D7,0x8FA7D7,0x003F}, + {0x8FA7D8,0x8FA7D8,0x003F}, + {0x8FA7D9,0x8FA7D9,0x003F}, + {0x8FA7DA,0x8FA7DA,0x003F}, + {0x8FA7DB,0x8FA7DB,0x003F}, + {0x8FA7DC,0x8FA7DC,0x003F}, + {0x8FA7DD,0x8FA7DD,0x003F}, + {0x8FA7DE,0x8FA7DE,0x003F}, + {0x8FA7DF,0x8FA7DF,0x003F}, + {0x8FA7E0,0x8FA7E0,0x003F}, /* 8FA7E0 */ + {0x8FA7E1,0x8FA7E1,0x003F}, + {0x8FA7E2,0x8FA7E2,0x003F}, + {0x8FA7E3,0x8FA7E3,0x003F}, + {0x8FA7E4,0x8FA7E4,0x003F}, + {0x8FA7E5,0x8FA7E5,0x003F}, + {0x8FA7E6,0x8FA7E6,0x003F}, + {0x8FA7E7,0x8FA7E7,0x003F}, + {0x8FA7E8,0x8FA7E8,0x003F}, + {0x8FA7E9,0x8FA7E9,0x003F}, + {0x8FA7EA,0x8FA7EA,0x003F}, + {0x8FA7EB,0x8FA7EB,0x003F}, + {0x8FA7EC,0x8FA7EC,0x003F}, + {0x8FA7ED,0x8FA7ED,0x003F}, + {0x8FA7EE,0x8FA7EE,0x003F}, + {0x8FA7EF,0x8FA7EF,0x003F}, + {0x8FA7F0,0x8FA7F0,0x003F}, /* 8FA7F0 */ + {0x8FA7F1,0x8FA7F1,0x003F}, + {0x8FA7C2,0x8FA7F2,0x0452}, + {0x8FA7C3,0x8FA7F3,0x0453}, + {0x8FA7C4,0x8FA7F4,0x0454}, + {0x8FA7C5,0x8FA7F5,0x0455}, + {0x8FA7C6,0x8FA7F6,0x0456}, + {0x8FA7C7,0x8FA7F7,0x0457}, + {0x8FA7C8,0x8FA7F8,0x0458}, + {0x8FA7C9,0x8FA7F9,0x0459}, + {0x8FA7CA,0x8FA7FA,0x045A}, + {0x8FA7CB,0x8FA7FB,0x045B}, + {0x8FA7CC,0x8FA7FC,0x045C}, + {0x8FA7CD,0x8FA7FD,0x045E}, + {0x8FA7CE,0x8FA7FE,0x045F}, + {0x8FA7FF,0x8FA7FF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER c8FA9[]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FA9A0,0x8FA9A0,0x003F}, /* 8FA9A0 */ + {0x8FA9A1,0x8FA9C1,0x00C6}, + {0x8FA9A2,0x8FA9C2,0x0110}, + {0x8FA9A3,0x8FA9A3,0x003F}, + {0x8FA9A4,0x8FA9C4,0x0126}, + {0x8FA9A5,0x8FA9A5,0x003F}, + {0x8FA9A6,0x8FA9C6,0x0132}, + {0x8FA9A7,0x8FA9A7,0x003F}, + {0x8FA9A8,0x8FA9C8,0x0141}, + {0x8FA9A9,0x8FA9C9,0x013F}, + {0x8FA9AA,0x8FA9AA,0x003F}, + {0x8FA9AB,0x8FA9CB,0x014A}, + {0x8FA9AC,0x8FA9CC,0x00D8}, + {0x8FA9AD,0x8FA9CD,0x0152}, + {0x8FA9AE,0x8FA9AE,0x003F}, + {0x8FA9AF,0x8FA9CF,0x0166}, + {0x8FA9B0,0x8FA9D0,0x00DE}, /* 8FA9B0 */ + {0x8FA9B1,0x8FA9B1,0x003F}, + {0x8FA9B2,0x8FA9B2,0x003F}, + {0x8FA9B3,0x8FA9B3,0x003F}, + {0x8FA9B4,0x8FA9B4,0x003F}, + {0x8FA9B5,0x8FA9B5,0x003F}, + {0x8FA9B6,0x8FA9B6,0x003F}, + {0x8FA9B7,0x8FA9B7,0x003F}, + {0x8FA9B8,0x8FA9B8,0x003F}, + {0x8FA9B9,0x8FA9B9,0x003F}, + {0x8FA9BA,0x8FA9BA,0x003F}, + {0x8FA9BB,0x8FA9BB,0x003F}, + {0x8FA9BC,0x8FA9BC,0x003F}, + {0x8FA9BD,0x8FA9BD,0x003F}, + {0x8FA9BE,0x8FA9BE,0x003F}, + {0x8FA9BF,0x8FA9BF,0x003F}, + {0x8FA9C0,0x8FA9C0,0x003F}, /* 8FA9C0 */ + {0x8FA9A1,0x8FA9C1,0x00E6}, + {0x8FA9A2,0x8FA9C2,0x0111}, + {0x8FA9C3,0x8FA9C3,0x00F0}, + {0x8FA9A4,0x8FA9C4,0x0127}, + { 0x49,0x8FA9C5,0x0131}, + {0x8FA9A6,0x8FA9C6,0x0133}, + {0x8FA9C7,0x8FA9C7,0x0138}, + {0x8FA9A8,0x8FA9C8,0x0142}, + {0x8FA9A9,0x8FA9C9,0x0140}, + {0x8FA9CA,0x8FA9CA,0x0149}, + {0x8FA9AB,0x8FA9CB,0x014B}, + {0x8FA9AC,0x8FA9CC,0x00F8}, + {0x8FA9AD,0x8FA9CD,0x0153}, + {0x8FA9CE,0x8FA9CE,0x00DF}, + {0x8FA9AF,0x8FA9CF,0x0167}, + {0x8FA9B0,0x8FA9D0,0x00FE}, /* 8FA9D0 */ + {0x8FA9D1,0x8FA9D1,0x003F}, + {0x8FA9D2,0x8FA9D2,0x003F}, + {0x8FA9D3,0x8FA9D3,0x003F}, + {0x8FA9D4,0x8FA9D4,0x003F}, + {0x8FA9D5,0x8FA9D5,0x003F}, + {0x8FA9D6,0x8FA9D6,0x003F}, + {0x8FA9D7,0x8FA9D7,0x003F}, + {0x8FA9D8,0x8FA9D8,0x003F}, + {0x8FA9D9,0x8FA9D9,0x003F}, + {0x8FA9DA,0x8FA9DA,0x003F}, + {0x8FA9DB,0x8FA9DB,0x003F}, + {0x8FA9DC,0x8FA9DC,0x003F}, + {0x8FA9DD,0x8FA9DD,0x003F}, + {0x8FA9DE,0x8FA9DE,0x003F}, + {0x8FA9DF,0x8FA9DF,0x003F}, + {0x8FA9E0,0x8FA9E0,0x003F}, /* 8FA9E0 */ + {0x8FA9E1,0x8FA9E1,0x003F}, + {0x8FA9E2,0x8FA9E2,0x003F}, + {0x8FA9E3,0x8FA9E3,0x003F}, + {0x8FA9E4,0x8FA9E4,0x003F}, + {0x8FA9E5,0x8FA9E5,0x003F}, + {0x8FA9E6,0x8FA9E6,0x003F}, + {0x8FA9E7,0x8FA9E7,0x003F}, + {0x8FA9E8,0x8FA9E8,0x003F}, + {0x8FA9E9,0x8FA9E9,0x003F}, + {0x8FA9EA,0x8FA9EA,0x003F}, + {0x8FA9EB,0x8FA9EB,0x003F}, + {0x8FA9EC,0x8FA9EC,0x003F}, + {0x8FA9ED,0x8FA9ED,0x003F}, + {0x8FA9EE,0x8FA9EE,0x003F}, + {0x8FA9EF,0x8FA9EF,0x003F}, + {0x8FA9F0,0x8FA9F0,0x003F}, /* 8FA9F0 */ + {0x8FA9F1,0x8FA9F1,0x003F}, + {0x8FA9F2,0x8FA9F2,0x003F}, + {0x8FA9F3,0x8FA9F3,0x003F}, + {0x8FA9F4,0x8FA9F4,0x003F}, + {0x8FA9F5,0x8FA9F5,0x003F}, + {0x8FA9F6,0x8FA9F6,0x003F}, + {0x8FA9F7,0x8FA9F7,0x003F}, + {0x8FA9F8,0x8FA9F8,0x003F}, + {0x8FA9F9,0x8FA9F9,0x003F}, + {0x8FA9FA,0x8FA9FA,0x003F}, + {0x8FA9FB,0x8FA9FB,0x003F}, + {0x8FA9FC,0x8FA9FC,0x003F}, + {0x8FA9FD,0x8FA9FD,0x003F}, + {0x8FA9FE,0x8FA9FE,0x003F}, + {0x8FA9FF,0x8FA9FF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FAA[]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FAAA0,0x8FAAA0,0x003F}, /* 8FAAA0 */ + {0x8FAAA1,0x8FABA1,0x00C1}, + {0x8FAAA2,0x8FABA2,0x00C0}, + {0x8FAAA3,0x8FABA3,0x00C4}, + {0x8FAAA4,0x8FABA4,0x00C2}, + {0x8FAAA5,0x8FABA5,0x0102}, + {0x8FAAA6,0x8FABA6,0x01CD}, + {0x8FAAA7,0x8FABA7,0x0100}, + {0x8FAAA8,0x8FABA8,0x0104}, + {0x8FAAA9,0x8FABA9,0x00C5}, + {0x8FAAAA,0x8FABAA,0x00C3}, + {0x8FAAAB,0x8FABAB,0x0106}, + {0x8FAAAC,0x8FABAC,0x0108}, + {0x8FAAAD,0x8FABAD,0x010C}, + {0x8FAAAE,0x8FABAE,0x00C7}, + {0x8FAAAF,0x8FABAF,0x010A}, + {0x8FAAB0,0x8FABB0,0x010E}, /* 8FAAB0 */ + {0x8FAAB1,0x8FABB1,0x00C9}, + {0x8FAAB2,0x8FABB2,0x00C8}, + {0x8FAAB3,0x8FABB3,0x00CB}, + {0x8FAAB4,0x8FABB4,0x00CA}, + {0x8FAAB5,0x8FABB5,0x011A}, + {0x8FAAB6,0x8FABB6,0x0116}, + {0x8FAAB7,0x8FABB7,0x0112}, + {0x8FAAB8,0x8FABB8,0x0118}, + {0x8FAAB9,0x8FAAB9,0x003F}, + {0x8FAABA,0x8FABBA,0x011C}, + {0x8FAABB,0x8FABBB,0x011E}, + {0x8FAABC,0x8FAABC,0x0122}, + {0x8FAABD,0x8FABBD,0x0120}, + {0x8FAABE,0x8FABBE,0x0124}, + {0x8FAABF,0x8FABBF,0x00CD}, + {0x8FAAC0,0x8FABC0,0x00CC}, /* 8FAAC0 */ + {0x8FAAC1,0x8FABC1,0x00CF}, + {0x8FAAC2,0x8FABC2,0x00CE}, + {0x8FAAC3,0x8FABC3,0x01CF}, + {0x8FAAC4, 0x69,0x0130}, + {0x8FAAC5,0x8FABC5,0x012A}, + {0x8FAAC6,0x8FABC6,0x012E}, + {0x8FAAC7,0x8FABC7,0x0128}, + {0x8FAAC8,0x8FABC8,0x0134}, + {0x8FAAC9,0x8FABC9,0x0136}, + {0x8FAACA,0x8FABCA,0x0139}, + {0x8FAACB,0x8FABCB,0x013D}, + {0x8FAACC,0x8FABCC,0x013B}, + {0x8FAACD,0x8FABCD,0x0143}, + {0x8FAACE,0x8FABCE,0x0147}, + {0x8FAACF,0x8FABCF,0x0145}, + {0x8FAAD0,0x8FABD0,0x00D1}, /* 8FAAD0 */ + {0x8FAAD1,0x8FABD1,0x00D3}, + {0x8FAAD2,0x8FABD2,0x00D2}, + {0x8FAAD3,0x8FABD3,0x00D6}, + {0x8FAAD4,0x8FABD4,0x00D4}, + {0x8FAAD5,0x8FABD5,0x01D1}, + {0x8FAAD6,0x8FABD6,0x0150}, + {0x8FAAD7,0x8FABD7,0x014C}, + {0x8FAAD8,0x8FABD8,0x00D5}, + {0x8FAAD9,0x8FABD9,0x0154}, + {0x8FAADA,0x8FABDA,0x0158}, + {0x8FAADB,0x8FABDB,0x0156}, + {0x8FAADC,0x8FABDC,0x015A}, + {0x8FAADD,0x8FABDD,0x015C}, + {0x8FAADE,0x8FABDE,0x0160}, + {0x8FAADF,0x8FABDF,0x015E}, + {0x8FAAE0,0x8FABE0,0x0164}, /* 8FAAE0 */ + {0x8FAAE1,0x8FABE1,0x0162}, + {0x8FAAE2,0x8FABE2,0x00DA}, + {0x8FAAE3,0x8FABE3,0x00D9}, + {0x8FAAE4,0x8FABE4,0x00DC}, + {0x8FAAE5,0x8FABE5,0x00DB}, + {0x8FAAE6,0x8FABE6,0x016C}, + {0x8FAAE7,0x8FABE7,0x01D3}, + {0x8FAAE8,0x8FABE8,0x0170}, + {0x8FAAE9,0x8FABE9,0x016A}, + {0x8FAAEA,0x8FABEA,0x0172}, + {0x8FAAEB,0x8FABEB,0x016E}, + {0x8FAAEC,0x8FABEC,0x0168}, + {0x8FAAED,0x8FABED,0x01D7}, + {0x8FAAEE,0x8FABEE,0x01DB}, + {0x8FAAEF,0x8FABEF,0x01D9}, + {0x8FAAF0,0x8FABF0,0x01D5}, /* 8FAAF0 */ + {0x8FAAF1,0x8FABF1,0x0174}, + {0x8FAAF2,0x8FABF2,0x00DD}, + {0x8FAAF3,0x8FABF3,0x0178}, + {0x8FAAF4,0x8FABF4,0x0176}, + {0x8FAAF5,0x8FABF5,0x0179}, + {0x8FAAF6,0x8FABF6,0x017D}, + {0x8FAAF7,0x8FABF7,0x017B}, + {0x8FAAF8,0x8FAAF8,0x003F}, + {0x8FAAF9,0x8FAAF9,0x003F}, + {0x8FAAFA,0x8FAAFA,0x003F}, + {0x8FAAFB,0x8FAAFB,0x003F}, + {0x8FAAFC,0x8FAAFC,0x003F}, + {0x8FAAFD,0x8FAAFD,0x003F}, + {0x8FAAFE,0x8FAAFE,0x003F}, + {0x8FAAFF,0x8FAAFF,0x003F}, +}; + + +static const MY_UNICASE_CHARACTER c8FAB[]= +{ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */ + {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, + {0x8FABA0,0x8FABA0,0x003F}, /* 8FABA0 */ + {0x8FAAA1,0x8FABA1,0x00E1}, + {0x8FAAA2,0x8FABA2,0x00E0}, + {0x8FAAA3,0x8FABA3,0x00E4}, + {0x8FAAA4,0x8FABA4,0x00E2}, + {0x8FAAA5,0x8FABA5,0x0103}, + {0x8FAAA6,0x8FABA6,0x01CE}, + {0x8FAAA7,0x8FABA7,0x0101}, + {0x8FAAA8,0x8FABA8,0x0105}, + {0x8FAAA9,0x8FABA9,0x00E5}, + {0x8FAAAA,0x8FABAA,0x00E3}, + {0x8FAAAB,0x8FABAB,0x0107}, + {0x8FAAAC,0x8FABAC,0x0109}, + {0x8FAAAD,0x8FABAD,0x010D}, + {0x8FAAAE,0x8FABAE,0x00E7}, + {0x8FAAAF,0x8FABAF,0x010B}, + {0x8FAAB0,0x8FABB0,0x010F}, /* 8FABB0 */ + {0x8FAAB1,0x8FABB1,0x00E9}, + {0x8FAAB2,0x8FABB2,0x00E8}, + {0x8FAAB3,0x8FABB3,0x00EB}, + {0x8FAAB4,0x8FABB4,0x00EA}, + {0x8FAAB5,0x8FABB5,0x011B}, + {0x8FAAB6,0x8FABB6,0x0117}, + {0x8FAAB7,0x8FABB7,0x0113}, + {0x8FAAB8,0x8FABB8,0x0119}, + {0x8FABB9,0x8FABB9,0x01F5}, + {0x8FAABA,0x8FABBA,0x011D}, + {0x8FAABB,0x8FABBB,0x011F}, + {0x8FABBC,0x8FABBC,0x003F}, + {0x8FAABD,0x8FABBD,0x0121}, + {0x8FAABE,0x8FABBE,0x0125}, + {0x8FAABF,0x8FABBF,0x00ED}, + {0x8FAAC0,0x8FABC0,0x00EC}, /* 8FABC0 */ + {0x8FAAC1,0x8FABC1,0x00EF}, + {0x8FAAC2,0x8FABC2,0x00EE}, + {0x8FAAC3,0x8FABC3,0x01D0}, + {0x8FABC4,0x8FABC4,0x003F}, + {0x8FAAC5,0x8FABC5,0x012B}, + {0x8FAAC6,0x8FABC6,0x012F}, + {0x8FAAC7,0x8FABC7,0x0129}, + {0x8FAAC8,0x8FABC8,0x0135}, + {0x8FAAC9,0x8FABC9,0x0137}, + {0x8FAACA,0x8FABCA,0x013A}, + {0x8FAACB,0x8FABCB,0x013E}, + {0x8FAACC,0x8FABCC,0x013C}, + {0x8FAACD,0x8FABCD,0x0144}, + {0x8FAACE,0x8FABCE,0x0148}, + {0x8FAACF,0x8FABCF,0x0146}, + {0x8FAAD0,0x8FABD0,0x00F1}, /* 8FABD0 */ + {0x8FAAD1,0x8FABD1,0x00F3}, + {0x8FAAD2,0x8FABD2,0x00F2}, + {0x8FAAD3,0x8FABD3,0x00F6}, + {0x8FAAD4,0x8FABD4,0x00F4}, + {0x8FAAD5,0x8FABD5,0x01D2}, + {0x8FAAD6,0x8FABD6,0x0151}, + {0x8FAAD7,0x8FABD7,0x014D}, + {0x8FAAD8,0x8FABD8,0x00F5}, + {0x8FAAD9,0x8FABD9,0x0155}, + {0x8FAADA,0x8FABDA,0x0159}, + {0x8FAADB,0x8FABDB,0x0157}, + {0x8FAADC,0x8FABDC,0x015B}, + {0x8FAADD,0x8FABDD,0x015D}, + {0x8FAADE,0x8FABDE,0x0161}, + {0x8FAADF,0x8FABDF,0x015F}, + {0x8FAAE0,0x8FABE0,0x0165}, /* 8FABE0 */ + {0x8FAAE1,0x8FABE1,0x0163}, + {0x8FAAE2,0x8FABE2,0x00FA}, + {0x8FAAE3,0x8FABE3,0x00F9}, + {0x8FAAE4,0x8FABE4,0x00FC}, + {0x8FAAE5,0x8FABE5,0x00FB}, + {0x8FAAE6,0x8FABE6,0x016D}, + {0x8FAAE7,0x8FABE7,0x01D4}, + {0x8FAAE8,0x8FABE8,0x0171}, + {0x8FAAE9,0x8FABE9,0x016B}, + {0x8FAAEA,0x8FABEA,0x0173}, + {0x8FAAEB,0x8FABEB,0x016F}, + {0x8FAAEC,0x8FABEC,0x0169}, + {0x8FAAED,0x8FABED,0x01D8}, + {0x8FAAEE,0x8FABEE,0x01DC}, + {0x8FAAEF,0x8FABEF,0x01DA}, + {0x8FAAF0,0x8FABF0,0x01D6}, /* 8FABF0 */ + {0x8FAAF1,0x8FABF1,0x0175}, + {0x8FAAF2,0x8FABF2,0x00FD}, + {0x8FAAF3,0x8FABF3,0x00FF}, + {0x8FAAF4,0x8FABF4,0x0177}, + {0x8FAAF5,0x8FABF5,0x017A}, + {0x8FAAF6,0x8FABF6,0x017E}, + {0x8FAAF7,0x8FABF7,0x017C}, + {0x8FABF8,0x8FABF8,0x003F}, + {0x8FABF9,0x8FABF9,0x003F}, + {0x8FABFA,0x8FABFA,0x003F}, + {0x8FABFB,0x8FABFB,0x003F}, + {0x8FABFC,0x8FABFC,0x003F}, + {0x8FABFD,0x8FABFD,0x003F}, + {0x8FABFE,0x8FABFE,0x003F}, + {0x8FABFF,0x8FABFF,0x003F} +}; + + +static const MY_UNICASE_CHARACTER *my_caseinfo_pages_ujis[512]= +{ + /* JIS-X-0208 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, cA2, cA3, NULL, NULL, cA6, cA7, /* A */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + + /* JIS-X-0212 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL,c8FA6,c8FA7, /* A */ + NULL, c8FA9,c8FAA,c8FAB,NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + +static MY_UNICASE_INFO my_caseinfo_ujis= +{ + 0x0FFFF, + my_caseinfo_pages_ujis +}; + + + +#endif /* HAVE_CHARSET_ujis */ + + + +#if defined(HAVE_CHARSET_ujis) || defined(HAVE_CHARSET_eucjpms) + +/* + UJIS and EUCJPMS share the same UPPER/LOWER functions. +*/ + +static const MY_UNICASE_CHARACTER* +get_case_info_for_ch(const CHARSET_INFO *cs, uint plane, uint page, uint offs) +{ + const MY_UNICASE_CHARACTER *p; + return (p= cs->caseinfo->page[page + plane * 256]) ? &p[offs & 0xFF] : NULL; +} + + +/* + Generic function to handle UPPER and LOWER translation +*/ +static size_t +my_casefold_ujis(const CHARSET_INFO *cs, + char *src, size_t srclen, + char *dst, size_t dstlen MY_ATTRIBUTE((unused)), + const uchar *map, + size_t is_upper) +{ + char *srcend= src + srclen, *dst0= dst; + + while (src < srcend) + { + size_t mblen= my_ismbchar(cs, src, srcend); + if (mblen) + { + const MY_UNICASE_CHARACTER *ch; + ch= (mblen == 2) ? + get_case_info_for_ch(cs, 0, (uchar) src[0], (uchar) src[1]) : + get_case_info_for_ch(cs, 1, (uchar) src[1], (uchar) src[2]); + if (ch) + { + int code= is_upper ? ch->toupper : ch->tolower; + src+= mblen; + if (code > 0xFFFF) + *dst++= (char) (uchar) ((code >> 16) & 0xFF); + if (code > 0xFF) + *dst++= (char) (uchar) ((code >> 8) & 0xFF); + *dst++= (char) (uchar) (code & 0xFF); + } + else + { + if (mblen == 3) + *dst++= *src++; + *dst++= *src++; + *dst++= *src++; + } + } + else + { + *dst++= (char) map[(uchar) *src++]; + } + } + return (size_t) (dst - dst0); +} + + +/* + LOWER() +*/ +size_t +my_casedn_ujis(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); + DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + return my_casefold_ujis(cs, src, srclen, dst, dstlen, cs->to_lower, 0); +} + + +/* + UPPER() +*/ +size_t +my_caseup_ujis(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply); + DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + return my_casefold_ujis(cs, src, srclen, dst, dstlen, cs->to_upper, 1); +} +#endif /* defined(HAVE_CHARSET_ujis) || defined(HAVE_CHARSET_eucjpms) */ + + + +#ifdef HAVE_CHARSET_ujis + +static MY_COLLATION_HANDLER my_collation_ci_handler = +{ + NULL, /* init */ + my_strnncoll_simple,/* strnncoll */ + my_strnncollsp_simple, + my_strnxfrm_mb, /* strnxfrm */ + my_strnxfrmlen_simple, + my_like_range_mb, /* like_range */ + my_wildcmp_mb, /* wildcmp */ + my_strcasecmp_mb, + my_instr_mb, + my_hash_sort_simple, + my_propagate_simple +}; + +static MY_CHARSET_HANDLER my_charset_handler= +{ + NULL, /* init */ + ismbchar_ujis, + mbcharlen_ujis, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_ujis, + my_lengthsp_8bit, + my_numcells_eucjp, + my_mb_wc_euc_jp, /* mb_wc */ + my_wc_mb_euc_jp, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb, + my_casedn_str_mb, + my_caseup_ujis, + my_casedn_ujis, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + + +CHARSET_INFO my_charset_ujis_japanese_ci= +{ + 12,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ + "ujis", /* cs name */ + "ujis_japanese_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ujis, + to_lower_ujis, + to_upper_ujis, + sort_order_ujis, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_ujis, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ci_handler +}; + + +CHARSET_INFO my_charset_ujis_bin= +{ + 91,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT, /* state */ + "ujis", /* cs name */ + "ujis_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ujis, + to_lower_ujis, + to_upper_ujis, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_ujis, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_mb_bin_handler +}; + + +#endif /* HAVE_CHARSET_ujis */ diff --git a/mysql/strings/ctype-utf8.c b/mysql/strings/ctype-utf8.c new file mode 100644 index 0000000..f2ba48d --- /dev/null +++ b/mysql/strings/ctype-utf8.c @@ -0,0 +1,8714 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* UTF8 according RFC 2279 */ +/* Written by Alexander Barkov */ + +#include +#include "m_string.h" +#include "m_ctype.h" +#include +#include "my_uctype.h" + +#ifndef EILSEQ +#define EILSEQ ENOENT +#endif + +#define IS_CONTINUATION_BYTE(c) (((c) ^ 0x80) < 0x40) + +#define MY_UTF8MB3_GENERAL_CI MY_UTF8MB3 "_general_ci" +#define MY_UTF8MB3_GENERAL_CS MY_UTF8MB3 "_general_cs" +#define MY_UTF8MB3_BIN MY_UTF8MB3 "_bin" +#define MY_UTF8MB4_GENERAL_CI MY_UTF8MB4 "_general_ci" +#define MY_UTF8MB4_GENERAL_CS MY_UTF8MB4 "_general_cs" +#define MY_UTF8MB4_BIN MY_UTF8MB4 "_bin" + + + +#ifndef HAVE_CHARSET_utf8 +#define HAVE_CHARSET_utf8 +#endif + + +static inline +int my_valid_mbcharlen_utf8mb3(const uchar *s, const uchar *e) +{ + uchar c; + + DBUG_ASSERT(s < e); + c= s[0]; + if (c < 0x80) + return 1; + + if (c < 0xc2) + return MY_CS_ILSEQ; + + if (c < 0xe0) + { + if (s+2 > e) /* We need 2 characters */ + return MY_CS_TOOSMALL2; + + if (!(IS_CONTINUATION_BYTE(s[1]))) + return MY_CS_ILSEQ; + + return 2; + } + + DBUG_ASSERT(c < 0xf0); + if (s+3 > e) /* We need 3 characters */ + return MY_CS_TOOSMALL3; + + if (!(IS_CONTINUATION_BYTE(s[1]) && IS_CONTINUATION_BYTE(s[2]) && + (c >= 0xe1 || s[1] >= 0xa0))) + return MY_CS_ILSEQ; + + return 3; +} + +static const MY_UNICASE_CHARACTER plane00[]={ + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, + {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, + {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, + {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, + {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, + {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, + {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, + {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, + {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, + {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, + {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, + {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, + {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, + {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, + {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, + {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, + {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, + {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, + {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, + {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, + {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, + {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, + {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, + {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, + {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, + {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, + {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, + {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, + {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, + {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, + {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, + {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, + {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, + {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, + {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, + {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, + {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, + {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, + {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, + {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, + {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, + {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, + {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, + {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, + {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, + {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, + {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, + {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, + {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, + {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, + {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, + {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, + {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, + {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, + {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, + {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, + {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, + {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, + {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, + {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, + {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, + {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, + {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, + {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, + {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, + {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, + {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, + {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, + {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, + {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, + {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, + {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, + {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053}, + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, + {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, + {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} +}; + + +/* + Almost similar to plane00, but maps sorting order + for U+00DF to 0x00DF instead of 0x0053. +*/ +static const MY_UNICASE_CHARACTER plane00_mysql500[]={ + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, + {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, + {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, + {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, + {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, + {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, + {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, + {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, + {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, + {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, + {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, + {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, + {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, + {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, + {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, + {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, + {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, + {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, + {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, + {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, + {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, + {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, + {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, + {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, + {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, + {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, + {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, + {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, + {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, + {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, + {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, + {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, + {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, + {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, + {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, + {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, + {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, + {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, + {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, + {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, + {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, + {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, + {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, + {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, + {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, + {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, + {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, + {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, + {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, + {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, + {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, + {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, + {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, + {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, + {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, + {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, + {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, + {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, + {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, + {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, + {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, + {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, + {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, + {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, + {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, + {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, + {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, + {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, + {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, + {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, + {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, + {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, + {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF}, + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, + {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, + {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} +}; + + +static const MY_UNICASE_CHARACTER plane01[]={ + {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, + {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, + {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, + {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043}, + {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043}, + {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043}, + {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043}, + {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044}, + {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110}, + {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045}, + {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045}, + {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045}, + {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045}, + {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045}, + {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047}, + {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047}, + {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047}, + {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047}, + {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048}, + {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126}, + {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049}, + {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049}, + {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049}, + {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049}, + {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049}, + {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132}, + {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A}, + {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B}, + {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C}, + {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C}, + {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C}, + {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F}, + {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141}, + {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E}, + {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E}, + {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E}, + {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149}, + {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A}, + {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F}, + {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F}, + {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F}, + {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152}, + {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052}, + {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052}, + {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052}, + {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053}, + {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053}, + {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053}, + {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053}, + {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054}, + {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054}, + {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166}, + {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055}, + {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055}, + {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055}, + {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055}, + {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055}, + {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055}, + {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057}, + {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059}, + {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A}, + {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A}, + {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A}, + {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053}, + {0x0180,0x0180,0x0180}, {0x0181,0x0253,0x0181}, + {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182}, + {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184}, + {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187}, + {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189}, + {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B}, + {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D}, + {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F}, + {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191}, + {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193}, + {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6}, + {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197}, + {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198}, + {0x019A,0x019A,0x019A}, {0x019B,0x019B,0x019B}, + {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D}, + {0x019E,0x019E,0x019E}, {0x019F,0x0275,0x019F}, + {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F}, + {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2}, + {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4}, + {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7}, + {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9}, + {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB}, + {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC}, + {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055}, + {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1}, + {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3}, + {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5}, + {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7}, + {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8}, + {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB}, + {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC}, + {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7}, + {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1}, + {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3}, + {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4}, + {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7}, + {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7}, + {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA}, + {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041}, + {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049}, + {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F}, + {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055}, + {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055}, + {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055}, + {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055}, + {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055}, + {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E}, + {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041}, + {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041}, + {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6}, + {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4}, + {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047}, + {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B}, + {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F}, + {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F}, + {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7}, + {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1}, + {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1}, + {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047}, + {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7}, + {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E}, + {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041}, + {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6}, + {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} +}; + +static const MY_UNICASE_CHARACTER plane02[]={ + {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, + {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, + {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, + {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045}, + {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049}, + {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049}, + {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F}, + {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F}, + {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052}, + {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052}, + {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055}, + {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055}, + {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053}, + {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054}, + {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C}, + {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048}, + {0x0220,0x0220,0x0220}, {0x0221,0x0221,0x0221}, + {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222}, + {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224}, + {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041}, + {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045}, + {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F}, + {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F}, + {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F}, + {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F}, + {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059}, + {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235}, + {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237}, + {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239}, + {0x023A,0x023A,0x023A}, {0x023B,0x023B,0x023B}, + {0x023C,0x023C,0x023C}, {0x023D,0x023D,0x023D}, + {0x023E,0x023E,0x023E}, {0x023F,0x023F,0x023F}, + {0x0240,0x0240,0x0240}, {0x0241,0x0241,0x0241}, + {0x0242,0x0242,0x0242}, {0x0243,0x0243,0x0243}, + {0x0244,0x0244,0x0244}, {0x0245,0x0245,0x0245}, + {0x0246,0x0246,0x0246}, {0x0247,0x0247,0x0247}, + {0x0248,0x0248,0x0248}, {0x0249,0x0249,0x0249}, + {0x024A,0x024A,0x024A}, {0x024B,0x024B,0x024B}, + {0x024C,0x024C,0x024C}, {0x024D,0x024D,0x024D}, + {0x024E,0x024E,0x024E}, {0x024F,0x024F,0x024F}, + {0x0250,0x0250,0x0250}, {0x0251,0x0251,0x0251}, + {0x0252,0x0252,0x0252}, {0x0181,0x0253,0x0181}, + {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255}, + {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A}, + {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F}, + {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190}, + {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D}, + {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F}, + {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261}, + {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194}, + {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265}, + {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267}, + {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196}, + {0x026A,0x026A,0x026A}, {0x026B,0x026B,0x026B}, + {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D}, + {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C}, + {0x0270,0x0270,0x0270}, {0x0271,0x0271,0x0271}, + {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273}, + {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F}, + {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277}, + {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279}, + {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B}, + {0x027C,0x027C,0x027C}, {0x027D,0x027D,0x027D}, + {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F}, + {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281}, + {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9}, + {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285}, + {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287}, + {0x01AE,0x0288,0x01AE}, {0x0289,0x0289,0x0289}, + {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2}, + {0x028C,0x028C,0x028C}, {0x028D,0x028D,0x028D}, + {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F}, + {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291}, + {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293}, + {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295}, + {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297}, + {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299}, + {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B}, + {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D}, + {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F}, + {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1}, + {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3}, + {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5}, + {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7}, + {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9}, + {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB}, + {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD}, + {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF}, + {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1}, + {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3}, + {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5}, + {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7}, + {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9}, + {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB}, + {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD}, + {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF}, + {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1}, + {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3}, + {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5}, + {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7}, + {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9}, + {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB}, + {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD}, + {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF}, + {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1}, + {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3}, + {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5}, + {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7}, + {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9}, + {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB}, + {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD}, + {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF}, + {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1}, + {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3}, + {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5}, + {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7}, + {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9}, + {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB}, + {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED}, + {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF}, + {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1}, + {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3}, + {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5}, + {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7}, + {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9}, + {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB}, + {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD}, + {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} +}; + +static const MY_UNICASE_CHARACTER plane03[]={ + {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, + {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, + {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, + {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307}, + {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309}, + {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B}, + {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D}, + {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F}, + {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311}, + {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313}, + {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315}, + {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317}, + {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319}, + {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B}, + {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D}, + {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F}, + {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321}, + {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323}, + {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325}, + {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327}, + {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329}, + {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B}, + {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D}, + {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F}, + {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331}, + {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333}, + {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335}, + {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337}, + {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339}, + {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B}, + {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D}, + {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F}, + {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341}, + {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343}, + {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399}, + {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347}, + {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349}, + {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B}, + {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D}, + {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F}, + {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351}, + {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353}, + {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355}, + {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357}, + {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359}, + {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B}, + {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D}, + {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F}, + {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361}, + {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363}, + {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365}, + {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367}, + {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369}, + {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B}, + {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D}, + {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F}, + {0x0370,0x0370,0x0370}, {0x0371,0x0371,0x0371}, + {0x0372,0x0372,0x0372}, {0x0373,0x0373,0x0373}, + {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375}, + {0x0376,0x0376,0x0376}, {0x0377,0x0377,0x0377}, + {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379}, + {0x037A,0x037A,0x037A}, {0x037B,0x037B,0x037B}, + {0x037C,0x037C,0x037C}, {0x037D,0x037D,0x037D}, + {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F}, + {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381}, + {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383}, + {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385}, + {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387}, + {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397}, + {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B}, + {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D}, + {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9}, + {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391}, + {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, + {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, + {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, + {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, + {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, + {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, + {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, + {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, + {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3}, + {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, + {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, + {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, + {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, + {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395}, + {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399}, + {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391}, + {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, + {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, + {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, + {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, + {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, + {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, + {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, + {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, + {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3}, + {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, + {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, + {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, + {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, + {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5}, + {0x038F,0x03CE,0x03A9}, {0x03CF,0x03CF,0x03CF}, + {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398}, + {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2}, + {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6}, + {0x03A0,0x03D6,0x03A0}, {0x03D7,0x03D7,0x03D7}, + {0x03D8,0x03D8,0x03D8}, {0x03D9,0x03D9,0x03D9}, + {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA}, + {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC}, + {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE}, + {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0}, + {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2}, + {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4}, + {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6}, + {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8}, + {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA}, + {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC}, + {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE}, + {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1}, + {0x03A3,0x03F2,0x03A3}, {0x03F3,0x03F3,0x03F3}, + {0x03F4,0x03F4,0x03F4}, {0x03F5,0x03F5,0x03F5}, + {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F7,0x03F7}, + {0x03F8,0x03F8,0x03F8}, {0x03F9,0x03F9,0x03F9}, + {0x03FA,0x03FA,0x03FA}, {0x03FB,0x03FB,0x03FB}, + {0x03FC,0x03FC,0x03FC}, {0x03FD,0x03FD,0x03FD}, + {0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF} +}; + +static const MY_UNICASE_CHARACTER plane04[]={ + {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, + {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, + {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, + {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, + {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, + {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, + {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, + {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, + {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, + {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, + {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, + {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, + {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, + {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, + {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, + {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, + {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, + {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, + {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, + {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, + {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, + {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, + {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, + {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, + {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, + {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, + {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, + {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, + {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, + {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, + {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, + {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, + {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, + {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, + {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, + {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, + {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, + {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, + {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, + {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, + {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, + {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, + {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, + {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, + {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, + {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, + {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, + {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, + {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460}, + {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462}, + {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464}, + {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466}, + {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468}, + {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A}, + {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C}, + {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E}, + {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470}, + {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472}, + {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474}, + {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474}, + {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478}, + {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A}, + {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C}, + {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E}, + {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480}, + {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483}, + {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485}, + {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487}, + {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489}, + {0x048A,0x048A,0x048A}, {0x048B,0x048B,0x048B}, + {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C}, + {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E}, + {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490}, + {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492}, + {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494}, + {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496}, + {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498}, + {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A}, + {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C}, + {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E}, + {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0}, + {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2}, + {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4}, + {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6}, + {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8}, + {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA}, + {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC}, + {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE}, + {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0}, + {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2}, + {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4}, + {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6}, + {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8}, + {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA}, + {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC}, + {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE}, + {0x04C0,0x04C0,0x04C0}, {0x04C1,0x04C2,0x0416}, + {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3}, + {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C5,0x04C5}, + {0x04C6,0x04C6,0x04C6}, {0x04C7,0x04C8,0x04C7}, + {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04C9,0x04C9}, + {0x04CA,0x04CA,0x04CA}, {0x04CB,0x04CC,0x04CB}, + {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CD,0x04CD}, + {0x04CE,0x04CE,0x04CE}, {0x04CF,0x04CF,0x04CF}, + {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410}, + {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410}, + {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4}, + {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415}, + {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8}, + {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8}, + {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416}, + {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417}, + {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0}, + {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418}, + {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418}, + {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E}, + {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8}, + {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8}, + {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D}, + {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423}, + {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423}, + {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423}, + {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427}, + {0x04F6,0x04F6,0x04F6}, {0x04F7,0x04F7,0x04F7}, + {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B}, + {0x04FA,0x04FA,0x04FA}, {0x04FB,0x04FB,0x04FB}, + {0x04FC,0x04FC,0x04FC}, {0x04FD,0x04FD,0x04FD}, + {0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF} +}; + +static const MY_UNICASE_CHARACTER plane05[]={ + {0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501}, + {0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503}, + {0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505}, + {0x0506,0x0506,0x0506}, {0x0507,0x0507,0x0507}, + {0x0508,0x0508,0x0508}, {0x0509,0x0509,0x0509}, + {0x050A,0x050A,0x050A}, {0x050B,0x050B,0x050B}, + {0x050C,0x050C,0x050C}, {0x050D,0x050D,0x050D}, + {0x050E,0x050E,0x050E}, {0x050F,0x050F,0x050F}, + {0x0510,0x0510,0x0510}, {0x0511,0x0511,0x0511}, + {0x0512,0x0512,0x0512}, {0x0513,0x0513,0x0513}, + {0x0514,0x0514,0x0514}, {0x0515,0x0515,0x0515}, + {0x0516,0x0516,0x0516}, {0x0517,0x0517,0x0517}, + {0x0518,0x0518,0x0518}, {0x0519,0x0519,0x0519}, + {0x051A,0x051A,0x051A}, {0x051B,0x051B,0x051B}, + {0x051C,0x051C,0x051C}, {0x051D,0x051D,0x051D}, + {0x051E,0x051E,0x051E}, {0x051F,0x051F,0x051F}, + {0x0520,0x0520,0x0520}, {0x0521,0x0521,0x0521}, + {0x0522,0x0522,0x0522}, {0x0523,0x0523,0x0523}, + {0x0524,0x0524,0x0524}, {0x0525,0x0525,0x0525}, + {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527}, + {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529}, + {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B}, + {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D}, + {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F}, + {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531}, + {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, + {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, + {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, + {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, + {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, + {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, + {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, + {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, + {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, + {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, + {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, + {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, + {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, + {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, + {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, + {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, + {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, + {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, + {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557}, + {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559}, + {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B}, + {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D}, + {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F}, + {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531}, + {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, + {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, + {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, + {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, + {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, + {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, + {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, + {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, + {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, + {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, + {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, + {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, + {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, + {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, + {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, + {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, + {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, + {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, + {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587}, + {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589}, + {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B}, + {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D}, + {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F}, + {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591}, + {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593}, + {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595}, + {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597}, + {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599}, + {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B}, + {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D}, + {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F}, + {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1}, + {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3}, + {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5}, + {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7}, + {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9}, + {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB}, + {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD}, + {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF}, + {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1}, + {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3}, + {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5}, + {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7}, + {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9}, + {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB}, + {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD}, + {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF}, + {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1}, + {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3}, + {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5}, + {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7}, + {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9}, + {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB}, + {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD}, + {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF}, + {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1}, + {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3}, + {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5}, + {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7}, + {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9}, + {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB}, + {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD}, + {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF}, + {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1}, + {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3}, + {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5}, + {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7}, + {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9}, + {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB}, + {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED}, + {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF}, + {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1}, + {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3}, + {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5}, + {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7}, + {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9}, + {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB}, + {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD}, + {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} +}; + +static const MY_UNICASE_CHARACTER plane1E[]={ + {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, + {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, + {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, + {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042}, + {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043}, + {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044}, + {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044}, + {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044}, + {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044}, + {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044}, + {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045}, + {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045}, + {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045}, + {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045}, + {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045}, + {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046}, + {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047}, + {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048}, + {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048}, + {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048}, + {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048}, + {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048}, + {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049}, + {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049}, + {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B}, + {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B}, + {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B}, + {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C}, + {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C}, + {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C}, + {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C}, + {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D}, + {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D}, + {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D}, + {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E}, + {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E}, + {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E}, + {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E}, + {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F}, + {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F}, + {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F}, + {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F}, + {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050}, + {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050}, + {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052}, + {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052}, + {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052}, + {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052}, + {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053}, + {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053}, + {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053}, + {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053}, + {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053}, + {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054}, + {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054}, + {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054}, + {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054}, + {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055}, + {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055}, + {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055}, + {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055}, + {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055}, + {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056}, + {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056}, + {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057}, + {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057}, + {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057}, + {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057}, + {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057}, + {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058}, + {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058}, + {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059}, + {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A}, + {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A}, + {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A}, + {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054}, + {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059}, + {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053}, + {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D}, + {0x1E9E,0x1E9E,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F}, + {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041}, + {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041}, + {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041}, + {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041}, + {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041}, + {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041}, + {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041}, + {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041}, + {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041}, + {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041}, + {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041}, + {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041}, + {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045}, + {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045}, + {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045}, + {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045}, + {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045}, + {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045}, + {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045}, + {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045}, + {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049}, + {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049}, + {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F}, + {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F}, + {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F}, + {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F}, + {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F}, + {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F}, + {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F}, + {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F}, + {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F}, + {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F}, + {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F}, + {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F}, + {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055}, + {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055}, + {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055}, + {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055}, + {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055}, + {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055}, + {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055}, + {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059}, + {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059}, + {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059}, + {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059}, + {0x1EFA,0x1EFA,0x1EFA}, {0x1EFB,0x1EFB,0x1EFB}, + {0x1EFC,0x1EFC,0x1EFC}, {0x1EFD,0x1EFD,0x1EFD}, + {0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF} +}; + +static const MY_UNICASE_CHARACTER plane1F[]={ + {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, + {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, + {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, + {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, + {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, + {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, + {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, + {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, + {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, + {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, + {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, + {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17}, + {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, + {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, + {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, + {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F}, + {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, + {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, + {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, + {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, + {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, + {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, + {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, + {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, + {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, + {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, + {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, + {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, + {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, + {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, + {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, + {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, + {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, + {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, + {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, + {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47}, + {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, + {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, + {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, + {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F}, + {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5}, + {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5}, + {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5}, + {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5}, + {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5}, + {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5}, + {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5}, + {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5}, + {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, + {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, + {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, + {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, + {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, + {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, + {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, + {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, + {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, + {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, + {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, + {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, + {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, + {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, + {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, + {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F}, + {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, + {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, + {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, + {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, + {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, + {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, + {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, + {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, + {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, + {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, + {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, + {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, + {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, + {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, + {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, + {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, + {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, + {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, + {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, + {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, + {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, + {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, + {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, + {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, + {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, + {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391}, + {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5}, + {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391}, + {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, + {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, + {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD}, + {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF}, + {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1}, + {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397}, + {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5}, + {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397}, + {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, + {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, + {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD}, + {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF}, + {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, + {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3}, + {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5}, + {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399}, + {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, + {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, + {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD}, + {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF}, + {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, + {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3}, + {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1}, + {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5}, + {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, + {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, + {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED}, + {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF}, + {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1}, + {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9}, + {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5}, + {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9}, + {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, + {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, + {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD}, + {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} +}; + +static const MY_UNICASE_CHARACTER plane21[]={ + {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, + {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, + {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, + {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107}, + {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109}, + {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B}, + {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D}, + {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F}, + {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111}, + {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113}, + {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115}, + {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117}, + {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119}, + {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B}, + {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D}, + {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F}, + {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121}, + {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123}, + {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125}, + {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127}, + {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129}, + {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B}, + {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D}, + {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F}, + {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131}, + {0x2132,0x2132,0x2132}, {0x2133,0x2133,0x2133}, + {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135}, + {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137}, + {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139}, + {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B}, + {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D}, + {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F}, + {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141}, + {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143}, + {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145}, + {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147}, + {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149}, + {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B}, + {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D}, + {0x214E,0x214E,0x214E}, {0x214F,0x214F,0x214F}, + {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151}, + {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153}, + {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155}, + {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157}, + {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159}, + {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B}, + {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D}, + {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F}, + {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, + {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, + {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, + {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, + {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, + {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, + {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, + {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, + {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, + {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, + {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, + {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, + {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, + {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, + {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, + {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, + {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181}, + {0x2182,0x2182,0x2182}, {0x2183,0x2183,0x2183}, + {0x2184,0x2184,0x2184}, {0x2185,0x2185,0x2185}, + {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187}, + {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189}, + {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B}, + {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D}, + {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F}, + {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191}, + {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193}, + {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195}, + {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197}, + {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199}, + {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B}, + {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D}, + {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F}, + {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1}, + {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3}, + {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5}, + {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7}, + {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9}, + {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB}, + {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD}, + {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF}, + {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1}, + {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3}, + {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5}, + {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7}, + {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9}, + {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB}, + {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD}, + {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF}, + {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1}, + {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3}, + {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5}, + {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7}, + {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9}, + {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB}, + {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD}, + {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF}, + {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1}, + {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3}, + {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5}, + {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7}, + {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9}, + {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB}, + {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD}, + {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF}, + {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1}, + {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3}, + {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5}, + {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7}, + {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9}, + {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB}, + {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED}, + {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF}, + {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1}, + {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3}, + {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5}, + {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7}, + {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9}, + {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB}, + {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD}, + {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} +}; + +static const MY_UNICASE_CHARACTER plane24[]={ + {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, + {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, + {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, + {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407}, + {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409}, + {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B}, + {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D}, + {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F}, + {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411}, + {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413}, + {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415}, + {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417}, + {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419}, + {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B}, + {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D}, + {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F}, + {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421}, + {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423}, + {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425}, + {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427}, + {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429}, + {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B}, + {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D}, + {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F}, + {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431}, + {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433}, + {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435}, + {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437}, + {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439}, + {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B}, + {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D}, + {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F}, + {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441}, + {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443}, + {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445}, + {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447}, + {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449}, + {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B}, + {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D}, + {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F}, + {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451}, + {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453}, + {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455}, + {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457}, + {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459}, + {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B}, + {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D}, + {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F}, + {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461}, + {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463}, + {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465}, + {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467}, + {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469}, + {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B}, + {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D}, + {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F}, + {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471}, + {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473}, + {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475}, + {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477}, + {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479}, + {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B}, + {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D}, + {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F}, + {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481}, + {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483}, + {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485}, + {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487}, + {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489}, + {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B}, + {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D}, + {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F}, + {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491}, + {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493}, + {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495}, + {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497}, + {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499}, + {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B}, + {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D}, + {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F}, + {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1}, + {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3}, + {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5}, + {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7}, + {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9}, + {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB}, + {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD}, + {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF}, + {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1}, + {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3}, + {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5}, + {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, + {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, + {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, + {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, + {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, + {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, + {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, + {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, + {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, + {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, + {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, + {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, + {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, + {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, + {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, + {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, + {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, + {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, + {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, + {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, + {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, + {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, + {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, + {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, + {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, + {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, + {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB}, + {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED}, + {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF}, + {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1}, + {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3}, + {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5}, + {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7}, + {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9}, + {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB}, + {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD}, + {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} +}; + +static const MY_UNICASE_CHARACTER planeFF[]={ + {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, + {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, + {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, + {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07}, + {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09}, + {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B}, + {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D}, + {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F}, + {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11}, + {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13}, + {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15}, + {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17}, + {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19}, + {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B}, + {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D}, + {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F}, + {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21}, + {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, + {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, + {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, + {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, + {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, + {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, + {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, + {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, + {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, + {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, + {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, + {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, + {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B}, + {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D}, + {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F}, + {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21}, + {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, + {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, + {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, + {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, + {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, + {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, + {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, + {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, + {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, + {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, + {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, + {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, + {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B}, + {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D}, + {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F}, + {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61}, + {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63}, + {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65}, + {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67}, + {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69}, + {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B}, + {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D}, + {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F}, + {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71}, + {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73}, + {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75}, + {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77}, + {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79}, + {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B}, + {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D}, + {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F}, + {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81}, + {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83}, + {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85}, + {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87}, + {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89}, + {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B}, + {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D}, + {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F}, + {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91}, + {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93}, + {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95}, + {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97}, + {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99}, + {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B}, + {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D}, + {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F}, + {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1}, + {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3}, + {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5}, + {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7}, + {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9}, + {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB}, + {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD}, + {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF}, + {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1}, + {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3}, + {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5}, + {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7}, + {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9}, + {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB}, + {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD}, + {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF}, + {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1}, + {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3}, + {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5}, + {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7}, + {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9}, + {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB}, + {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD}, + {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF}, + {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1}, + {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3}, + {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5}, + {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7}, + {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9}, + {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB}, + {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD}, + {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF}, + {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1}, + {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3}, + {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5}, + {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7}, + {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9}, + {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB}, + {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED}, + {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF}, + {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1}, + {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3}, + {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5}, + {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7}, + {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9}, + {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB}, + {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD}, + {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} +}; + + +static const MY_UNICASE_CHARACTER *my_unicase_pages_default[256]= +{ + plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, + NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF +}; + + +MY_UNICASE_INFO my_unicase_default= +{ + 0xFFFF, + my_unicase_pages_default +}; + + +/* + Reproduce old utf8_general_ci behaviour before we fixed Bug#27877. +*/ +static const MY_UNICASE_CHARACTER *my_unicase_pages_mysql500[256]={ + plane00_mysql500, + plane01, plane02, plane03, plane04, plane05, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, + NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF + +}; + + +MY_UNICASE_INFO my_unicase_mysql500= +{ + 0xFFFF, + my_unicase_pages_mysql500 +}; + + +/* + Turkish lower/upper mapping: + 1. LOWER(0x0049 LATIN CAPITAL LETTER I) -> + 0x0131 LATIN SMALL LETTER DOTLESS I + 2. UPPER(0x0069 LATIN SMALL LETTER I) -> + 0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE +*/ + +static const MY_UNICASE_CHARACTER turk00[]= +{ + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, + {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, + {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, + {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, + {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, + {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, + {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, + {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, + {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, + {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, + {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, + {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, + {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, + {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, + {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, + {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, + {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, + {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, + {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, + {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, + {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, + {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, + {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, + {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, + {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, + {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, + {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, + {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, + {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, + {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, + {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, + {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, + {0x0048,0x0068,0x0048}, {0x0049,0x0131,0x0049}, + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, + {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, + {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, + {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, + {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, + {0x0048,0x0068,0x0048}, {0x0130,0x0069,0x0049}, + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, + {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, + {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, + {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, + {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, + {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, + {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, + {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, + {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, + {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, + {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, + {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, + {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, + {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, + {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, + {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, + {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, + {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, + {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, + {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, + {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, + {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, + {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, + {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, + {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, + {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, + {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, + {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, + {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, + {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, + {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, + {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, + {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, + {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, + {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, + {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, + {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, + {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF}, + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, + {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, + {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} +}; + + + +static const MY_UNICASE_CHARACTER *my_unicase_pages_turkish[256]= +{ + turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, + NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF +}; + + +MY_UNICASE_INFO my_unicase_turkish= +{ + 0xFFFF, + my_unicase_pages_turkish +}; + + +/* Unicode-5.2.0 case folding information */ +static const MY_UNICASE_CHARACTER u520p00[]={ + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, /* 0000 */ + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, /* 0002 */ + {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, /* 0004 */ + {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, /* 0006 */ + {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, /* 0008 */ + {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, /* 000A */ + {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, /* 000C */ + {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, /* 000E */ + {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, /* 0010 */ + {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, /* 0012 */ + {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, /* 0014 */ + {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, /* 0016 */ + {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, /* 0018 */ + {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, /* 001A */ + {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, /* 001C */ + {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, /* 001E */ + {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, /* 0020 */ + {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, /* 0022 */ + {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, /* 0024 */ + {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, /* 0026 */ + {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, /* 0028 */ + {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, /* 002A */ + {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, /* 002C */ + {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, /* 002E */ + {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, /* 0030 */ + {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, /* 0032 */ + {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, /* 0034 */ + {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, /* 0036 */ + {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, /* 0038 */ + {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, /* 003A */ + {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, /* 003C */ + {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, /* 003E */ + {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, /* 0040 */ + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0042 */ + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0044 */ + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0046 */ + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0048 */ + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 004A */ + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 004C */ + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 004E */ + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0050 */ + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0052 */ + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0054 */ + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0056 */ + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0058 */ + {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, /* 005A */ + {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, /* 005C */ + {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, /* 005E */ + {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, /* 0060 */ + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0062 */ + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0064 */ + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0066 */ + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0068 */ + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 006A */ + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 006C */ + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 006E */ + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0070 */ + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0072 */ + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0074 */ + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0076 */ + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0078 */ + {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, /* 007A */ + {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, /* 007C */ + {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, /* 007E */ + {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, /* 0080 */ + {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, /* 0082 */ + {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, /* 0084 */ + {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, /* 0086 */ + {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, /* 0088 */ + {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, /* 008A */ + {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, /* 008C */ + {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, /* 008E */ + {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, /* 0090 */ + {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, /* 0092 */ + {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, /* 0094 */ + {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, /* 0096 */ + {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, /* 0098 */ + {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, /* 009A */ + {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, /* 009C */ + {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, /* 009E */ + {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, /* 00A0 */ + {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, /* 00A2 */ + {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, /* 00A4 */ + {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, /* 00A6 */ + {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, /* 00A8 */ + {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, /* 00AA */ + {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, /* 00AC */ + {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, /* 00AE */ + {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, /* 00B0 */ + {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, /* 00B2 */ + {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, /* 00B4 */ + {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, /* 00B6 */ + {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, /* 00B8 */ + {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, /* 00BA */ + {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, /* 00BC */ + {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, /* 00BE */ + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00C0 */ + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00C2 */ + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00C4 */ + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00C6 */ + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00C8 */ + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00CA */ + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00CC */ + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00CE */ + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00D0 */ + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00D2 */ + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00D4 */ + {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, /* 00D6 */ + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00D8 */ + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00DA */ + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00DC */ + {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053}, /* 00DE */ + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00E0 */ + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00E2 */ + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00E4 */ + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00E6 */ + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00E8 */ + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00EA */ + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00EC */ + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00EE */ + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00F0 */ + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00F2 */ + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00F4 */ + {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, /* 00F6 */ + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00F8 */ + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00FA */ + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00FC */ + {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} /* 00FE */ +}; + +static const MY_UNICASE_CHARACTER u520p01[]={ + {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, /* 0100 */ + {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, /* 0102 */ + {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, /* 0104 */ + {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043}, /* 0106 */ + {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043}, /* 0108 */ + {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043}, /* 010A */ + {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043}, /* 010C */ + {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044}, /* 010E */ + {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110}, /* 0110 */ + {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045}, /* 0112 */ + {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045}, /* 0114 */ + {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045}, /* 0116 */ + {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045}, /* 0118 */ + {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045}, /* 011A */ + {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047}, /* 011C */ + {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047}, /* 011E */ + {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047}, /* 0120 */ + {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047}, /* 0122 */ + {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048}, /* 0124 */ + {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126}, /* 0126 */ + {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049}, /* 0128 */ + {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049}, /* 012A */ + {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049}, /* 012C */ + {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049}, /* 012E */ + {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049}, /* 0130 */ + {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132}, /* 0132 */ + {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A}, /* 0134 */ + {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B}, /* 0136 */ + {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C}, /* 0138 */ + {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C}, /* 013A */ + {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C}, /* 013C */ + {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F}, /* 013E */ + {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141}, /* 0140 */ + {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E}, /* 0142 */ + {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E}, /* 0144 */ + {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E}, /* 0146 */ + {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149}, /* 0148 */ + {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A}, /* 014A */ + {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F}, /* 014C */ + {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F}, /* 014E */ + {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F}, /* 0150 */ + {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152}, /* 0152 */ + {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052}, /* 0154 */ + {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052}, /* 0156 */ + {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052}, /* 0158 */ + {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053}, /* 015A */ + {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053}, /* 015C */ + {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053}, /* 015E */ + {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053}, /* 0160 */ + {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054}, /* 0162 */ + {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054}, /* 0164 */ + {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166}, /* 0166 */ + {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055}, /* 0168 */ + {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055}, /* 016A */ + {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055}, /* 016C */ + {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055}, /* 016E */ + {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055}, /* 0170 */ + {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055}, /* 0172 */ + {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057}, /* 0174 */ + {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059}, /* 0176 */ + {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A}, /* 0178 */ + {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A}, /* 017A */ + {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A}, /* 017C */ + {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053}, /* 017E */ + {0x0243,0x0180,0x0243}, {0x0181,0x0253,0x0181}, /* 0180 */ + {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182}, /* 0182 */ + {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184}, /* 0184 */ + {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187}, /* 0186 */ + {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189}, /* 0188 */ + {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B}, /* 018A */ + {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D}, /* 018C */ + {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F}, /* 018E */ + {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191}, /* 0190 */ + {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193}, /* 0192 */ + {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6}, /* 0194 */ + {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197}, /* 0196 */ + {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198}, /* 0198 */ + {0x023D,0x019A,0x023D}, {0x019B,0x019B,0x019B}, /* 019A */ + {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D}, /* 019C */ + {0x0220,0x019E,0x0220}, {0x019F,0x0275,0x019F}, /* 019E */ + {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F}, /* 01A0 */ + {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2}, /* 01A2 */ + {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4}, /* 01A4 */ + {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7}, /* 01A6 */ + {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9}, /* 01A8 */ + {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB}, /* 01AA */ + {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC}, /* 01AC */ + {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055}, /* 01AE */ + {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1}, /* 01B0 */ + {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3}, /* 01B2 */ + {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5}, /* 01B4 */ + {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7}, /* 01B6 */ + {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8}, /* 01B8 */ + {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB}, /* 01BA */ + {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC}, /* 01BC */ + {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7}, /* 01BE */ + {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1}, /* 01C0 */ + {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3}, /* 01C2 */ + {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4}, /* 01C4 */ + {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7}, /* 01C6 */ + {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7}, /* 01C8 */ + {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA}, /* 01CA */ + {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041}, /* 01CC */ + {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049}, /* 01CE */ + {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F}, /* 01D0 */ + {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055}, /* 01D2 */ + {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055}, /* 01D4 */ + {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055}, /* 01D6 */ + {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055}, /* 01D8 */ + {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055}, /* 01DA */ + {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E}, /* 01DC */ + {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041}, /* 01DE */ + {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041}, /* 01E0 */ + {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6}, /* 01E2 */ + {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4}, /* 01E4 */ + {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047}, /* 01E6 */ + {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B}, /* 01E8 */ + {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F}, /* 01EA */ + {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F}, /* 01EC */ + {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7}, /* 01EE */ + {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1}, /* 01F0 */ + {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1}, /* 01F2 */ + {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047}, /* 01F4 */ + {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7}, /* 01F6 */ + {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E}, /* 01F8 */ + {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041}, /* 01FA */ + {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6}, /* 01FC */ + {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} /* 01FE */ +}; + +static const MY_UNICASE_CHARACTER u520p02[]={ + {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, /* 0200 */ + {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, /* 0202 */ + {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, /* 0204 */ + {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045}, /* 0206 */ + {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049}, /* 0208 */ + {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049}, /* 020A */ + {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F}, /* 020C */ + {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F}, /* 020E */ + {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052}, /* 0210 */ + {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052}, /* 0212 */ + {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055}, /* 0214 */ + {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055}, /* 0216 */ + {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053}, /* 0218 */ + {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054}, /* 021A */ + {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C}, /* 021C */ + {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048}, /* 021E */ + {0x0220,0x019E,0x0220}, {0x0221,0x0221,0x0221}, /* 0220 */ + {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222}, /* 0222 */ + {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224}, /* 0224 */ + {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041}, /* 0226 */ + {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045}, /* 0228 */ + {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F}, /* 022A */ + {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F}, /* 022C */ + {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F}, /* 022E */ + {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F}, /* 0230 */ + {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059}, /* 0232 */ + {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235}, /* 0234 */ + {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237}, /* 0236 */ + {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239}, /* 0238 */ + {0x023A,0x2C65,0x023A}, {0x023B,0x023C,0x023B}, /* 023A */ + {0x023B,0x023C,0x023B}, {0x023D,0x019A,0x023D}, /* 023C */ + {0x023E,0x2C66,0x023E}, {0x2C7E,0x023F,0x2C7E}, /* 023E */ + {0x2C7F,0x0240,0x2C7F}, {0x0241,0x0242,0x0241}, /* 0240 */ + {0x0241,0x0242,0x0241}, {0x0243,0x0180,0x0243}, /* 0242 */ + {0x0244,0x0289,0x0244}, {0x0245,0x028C,0x0245}, /* 0244 */ + {0x0246,0x0247,0x0246}, {0x0246,0x0247,0x0246}, /* 0246 */ + {0x0248,0x0249,0x0248}, {0x0248,0x0249,0x0248}, /* 0248 */ + {0x024A,0x024B,0x024A}, {0x024A,0x024B,0x024A}, /* 024A */ + {0x024C,0x024D,0x024C}, {0x024C,0x024D,0x024C}, /* 024C */ + {0x024E,0x024F,0x024E}, {0x024E,0x024F,0x024E}, /* 024E */ + {0x2C6F,0x0250,0x2C6F}, {0x2C6D,0x0251,0x2C6D}, /* 0250 */ + {0x2C70,0x0252,0x2C70}, {0x0181,0x0253,0x0181}, /* 0252 */ + {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255}, /* 0254 */ + {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A}, /* 0256 */ + {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F}, /* 0258 */ + {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190}, /* 025A */ + {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D}, /* 025C */ + {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F}, /* 025E */ + {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261}, /* 0260 */ + {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194}, /* 0262 */ + {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265}, /* 0264 */ + {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267}, /* 0266 */ + {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196}, /* 0268 */ + {0x026A,0x026A,0x026A}, {0x2C62,0x026B,0x2C62}, /* 026A */ + {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D}, /* 026C */ + {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C}, /* 026E */ + {0x0270,0x0270,0x0270}, {0x2C6E,0x0271,0x2C6E}, /* 0270 */ + {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273}, /* 0272 */ + {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F}, /* 0274 */ + {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277}, /* 0276 */ + {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279}, /* 0278 */ + {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B}, /* 027A */ + {0x027C,0x027C,0x027C}, {0x2C64,0x027D,0x2C64}, /* 027C */ + {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F}, /* 027E */ + {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281}, /* 0280 */ + {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9}, /* 0282 */ + {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285}, /* 0284 */ + {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287}, /* 0286 */ + {0x01AE,0x0288,0x01AE}, {0x0244,0x0289,0x0244}, /* 0288 */ + {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2}, /* 028A */ + {0x0245,0x028C,0x0245}, {0x028D,0x028D,0x028D}, /* 028C */ + {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F}, /* 028E */ + {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291}, /* 0290 */ + {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293}, /* 0292 */ + {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295}, /* 0294 */ + {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297}, /* 0296 */ + {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299}, /* 0298 */ + {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B}, /* 029A */ + {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D}, /* 029C */ + {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F}, /* 029E */ + {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1}, /* 02A0 */ + {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3}, /* 02A2 */ + {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5}, /* 02A4 */ + {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7}, /* 02A6 */ + {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9}, /* 02A8 */ + {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB}, /* 02AA */ + {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD}, /* 02AC */ + {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF}, /* 02AE */ + {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1}, /* 02B0 */ + {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3}, /* 02B2 */ + {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5}, /* 02B4 */ + {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7}, /* 02B6 */ + {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9}, /* 02B8 */ + {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB}, /* 02BA */ + {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD}, /* 02BC */ + {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF}, /* 02BE */ + {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1}, /* 02C0 */ + {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3}, /* 02C2 */ + {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5}, /* 02C4 */ + {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7}, /* 02C6 */ + {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9}, /* 02C8 */ + {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB}, /* 02CA */ + {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD}, /* 02CC */ + {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF}, /* 02CE */ + {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1}, /* 02D0 */ + {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3}, /* 02D2 */ + {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5}, /* 02D4 */ + {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7}, /* 02D6 */ + {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9}, /* 02D8 */ + {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB}, /* 02DA */ + {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD}, /* 02DC */ + {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF}, /* 02DE */ + {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1}, /* 02E0 */ + {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3}, /* 02E2 */ + {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5}, /* 02E4 */ + {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7}, /* 02E6 */ + {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9}, /* 02E8 */ + {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB}, /* 02EA */ + {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED}, /* 02EC */ + {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF}, /* 02EE */ + {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1}, /* 02F0 */ + {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3}, /* 02F2 */ + {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5}, /* 02F4 */ + {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7}, /* 02F6 */ + {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9}, /* 02F8 */ + {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB}, /* 02FA */ + {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD}, /* 02FC */ + {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} /* 02FE */ +}; + +static const MY_UNICASE_CHARACTER u520p03[]={ + {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, /* 0300 */ + {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, /* 0302 */ + {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, /* 0304 */ + {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307}, /* 0306 */ + {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309}, /* 0308 */ + {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B}, /* 030A */ + {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D}, /* 030C */ + {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F}, /* 030E */ + {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311}, /* 0310 */ + {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313}, /* 0312 */ + {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315}, /* 0314 */ + {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317}, /* 0316 */ + {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319}, /* 0318 */ + {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B}, /* 031A */ + {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D}, /* 031C */ + {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F}, /* 031E */ + {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321}, /* 0320 */ + {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323}, /* 0322 */ + {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325}, /* 0324 */ + {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327}, /* 0326 */ + {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329}, /* 0328 */ + {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B}, /* 032A */ + {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D}, /* 032C */ + {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F}, /* 032E */ + {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331}, /* 0330 */ + {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333}, /* 0332 */ + {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335}, /* 0334 */ + {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337}, /* 0336 */ + {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339}, /* 0338 */ + {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B}, /* 033A */ + {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D}, /* 033C */ + {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F}, /* 033E */ + {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341}, /* 0340 */ + {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343}, /* 0342 */ + {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399}, /* 0344 */ + {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347}, /* 0346 */ + {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349}, /* 0348 */ + {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B}, /* 034A */ + {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D}, /* 034C */ + {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F}, /* 034E */ + {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351}, /* 0350 */ + {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353}, /* 0352 */ + {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355}, /* 0354 */ + {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357}, /* 0356 */ + {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359}, /* 0358 */ + {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B}, /* 035A */ + {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D}, /* 035C */ + {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F}, /* 035E */ + {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361}, /* 0360 */ + {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363}, /* 0362 */ + {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365}, /* 0364 */ + {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367}, /* 0366 */ + {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369}, /* 0368 */ + {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B}, /* 036A */ + {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D}, /* 036C */ + {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F}, /* 036E */ + {0x0370,0x0371,0x0370}, {0x0370,0x0371,0x0370}, /* 0370 */ + {0x0372,0x0373,0x0372}, {0x0372,0x0373,0x0372}, /* 0372 */ + {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375}, /* 0374 */ + {0x0376,0x0377,0x0376}, {0x0376,0x0377,0x0376}, /* 0376 */ + {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379}, /* 0378 */ + {0x037A,0x037A,0x037A}, {0x03FD,0x037B,0x03FD}, /* 037A */ + {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF}, /* 037C */ + {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F}, /* 037E */ + {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381}, /* 0380 */ + {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383}, /* 0382 */ + {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385}, /* 0384 */ + {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387}, /* 0386 */ + {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397}, /* 0388 */ + {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B}, /* 038A */ + {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D}, /* 038C */ + {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9}, /* 038E */ + {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391}, /* 0390 */ + {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 0392 */ + {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 0394 */ + {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 0396 */ + {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 0398 */ + {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 039A */ + {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 039C */ + {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 039E */ + {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03A0 */ + {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3}, /* 03A2 */ + {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03A4 */ + {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03A6 */ + {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03A8 */ + {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03AA */ + {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395}, /* 03AC */ + {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399}, /* 03AE */ + {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391}, /* 03B0 */ + {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 03B2 */ + {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 03B4 */ + {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 03B6 */ + {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 03B8 */ + {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 03BA */ + {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 03BC */ + {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 03BE */ + {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03C0 */ + {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3}, /* 03C2 */ + {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03C4 */ + {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03C6 */ + {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03C8 */ + {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03CA */ + {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5}, /* 03CC */ + {0x038F,0x03CE,0x03A9}, {0x03CF,0x03D7,0x03CF}, /* 03CE */ + {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398}, /* 03D0 */ + {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2}, /* 03D2 */ + {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6}, /* 03D4 */ + {0x03A0,0x03D6,0x03A0}, {0x03CF,0x03D7,0x03CF}, /* 03D6 */ + {0x03D8,0x03D9,0x03D8}, {0x03D8,0x03D9,0x03D8}, /* 03D8 */ + {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA}, /* 03DA */ + {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC}, /* 03DC */ + {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE}, /* 03DE */ + {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0}, /* 03E0 */ + {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2}, /* 03E2 */ + {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4}, /* 03E4 */ + {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6}, /* 03E6 */ + {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8}, /* 03E8 */ + {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA}, /* 03EA */ + {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC}, /* 03EC */ + {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE}, /* 03EE */ + {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1}, /* 03F0 */ + {0x03F9,0x03F2,0x03F9}, {0x03F3,0x03F3,0x03F3}, /* 03F2 */ + {0x03F4,0x03B8,0x03F4}, {0x0395,0x03F5,0x0395}, /* 03F4 */ + {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F8,0x03F7}, /* 03F6 */ + {0x03F7,0x03F8,0x03F7}, {0x03F9,0x03F2,0x03F9}, /* 03F8 */ + {0x03FA,0x03FB,0x03FA}, {0x03FA,0x03FB,0x03FA}, /* 03FA */ + {0x03FC,0x03FC,0x03FC}, {0x03FD,0x037B,0x03FD}, /* 03FC */ + {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF} /* 03FE */ +}; + +static const MY_UNICASE_CHARACTER u520p04[]={ + {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0400 */ + {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0402 */ + {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0404 */ + {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0406 */ + {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0408 */ + {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 040A */ + {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 040C */ + {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 040E */ + {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0410 */ + {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0412 */ + {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0414 */ + {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0416 */ + {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0418 */ + {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 041A */ + {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 041C */ + {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 041E */ + {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0420 */ + {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0422 */ + {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0424 */ + {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0426 */ + {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0428 */ + {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 042A */ + {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 042C */ + {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 042E */ + {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0430 */ + {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0432 */ + {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0434 */ + {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0436 */ + {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0438 */ + {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 043A */ + {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 043C */ + {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 043E */ + {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0440 */ + {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0442 */ + {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0444 */ + {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0446 */ + {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0448 */ + {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 044A */ + {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 044C */ + {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 044E */ + {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0450 */ + {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0452 */ + {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0454 */ + {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0456 */ + {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0458 */ + {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 045A */ + {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 045C */ + {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 045E */ + {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460}, /* 0460 */ + {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462}, /* 0462 */ + {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464}, /* 0464 */ + {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466}, /* 0466 */ + {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468}, /* 0468 */ + {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A}, /* 046A */ + {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C}, /* 046C */ + {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E}, /* 046E */ + {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470}, /* 0470 */ + {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472}, /* 0472 */ + {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474}, /* 0474 */ + {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474}, /* 0476 */ + {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478}, /* 0478 */ + {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A}, /* 047A */ + {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C}, /* 047C */ + {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E}, /* 047E */ + {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480}, /* 0480 */ + {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483}, /* 0482 */ + {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485}, /* 0484 */ + {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487}, /* 0486 */ + {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489}, /* 0488 */ + {0x048A,0x048B,0x048A}, {0x048A,0x048B,0x048A}, /* 048A */ + {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C}, /* 048C */ + {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E}, /* 048E */ + {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490}, /* 0490 */ + {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492}, /* 0492 */ + {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494}, /* 0494 */ + {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496}, /* 0496 */ + {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498}, /* 0498 */ + {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A}, /* 049A */ + {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C}, /* 049C */ + {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E}, /* 049E */ + {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0}, /* 04A0 */ + {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2}, /* 04A2 */ + {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4}, /* 04A4 */ + {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6}, /* 04A6 */ + {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8}, /* 04A8 */ + {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA}, /* 04AA */ + {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC}, /* 04AC */ + {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE}, /* 04AE */ + {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0}, /* 04B0 */ + {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2}, /* 04B2 */ + {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4}, /* 04B4 */ + {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6}, /* 04B6 */ + {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8}, /* 04B8 */ + {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA}, /* 04BA */ + {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC}, /* 04BC */ + {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE}, /* 04BE */ + {0x04C0,0x04CF,0x04C0}, {0x04C1,0x04C2,0x0416}, /* 04C0 */ + {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3}, /* 04C2 */ + {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C6,0x04C5}, /* 04C4 */ + {0x04C5,0x04C6,0x04C5}, {0x04C7,0x04C8,0x04C7}, /* 04C6 */ + {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04CA,0x04C9}, /* 04C8 */ + {0x04C9,0x04CA,0x04C9}, {0x04CB,0x04CC,0x04CB}, /* 04CA */ + {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CE,0x04CD}, /* 04CC */ + {0x04CD,0x04CE,0x04CD}, {0x04C0,0x04CF,0x04C0}, /* 04CE */ + {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410}, /* 04D0 */ + {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410}, /* 04D2 */ + {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4}, /* 04D4 */ + {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415}, /* 04D6 */ + {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8}, /* 04D8 */ + {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8}, /* 04DA */ + {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416}, /* 04DC */ + {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417}, /* 04DE */ + {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0}, /* 04E0 */ + {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418}, /* 04E2 */ + {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418}, /* 04E4 */ + {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E}, /* 04E6 */ + {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8}, /* 04E8 */ + {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8}, /* 04EA */ + {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D}, /* 04EC */ + {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423}, /* 04EE */ + {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423}, /* 04F0 */ + {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423}, /* 04F2 */ + {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427}, /* 04F4 */ + {0x04F6,0x04F7,0x04F6}, {0x04F6,0x04F7,0x04F6}, /* 04F6 */ + {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B}, /* 04F8 */ + {0x04FA,0x04FB,0x04FA}, {0x04FA,0x04FB,0x04FA}, /* 04FA */ + {0x04FC,0x04FD,0x04FC}, {0x04FC,0x04FD,0x04FC}, /* 04FC */ + {0x04FE,0x04FF,0x04FE}, {0x04FE,0x04FF,0x04FE} /* 04FE */ +}; + +static const MY_UNICASE_CHARACTER u520p05[]={ + {0x0500,0x0501,0x0500}, {0x0500,0x0501,0x0500}, /* 0500 */ + {0x0502,0x0503,0x0502}, {0x0502,0x0503,0x0502}, /* 0502 */ + {0x0504,0x0505,0x0504}, {0x0504,0x0505,0x0504}, /* 0504 */ + {0x0506,0x0507,0x0506}, {0x0506,0x0507,0x0506}, /* 0506 */ + {0x0508,0x0509,0x0508}, {0x0508,0x0509,0x0508}, /* 0508 */ + {0x050A,0x050B,0x050A}, {0x050A,0x050B,0x050A}, /* 050A */ + {0x050C,0x050D,0x050C}, {0x050C,0x050D,0x050C}, /* 050C */ + {0x050E,0x050F,0x050E}, {0x050E,0x050F,0x050E}, /* 050E */ + {0x0510,0x0511,0x0510}, {0x0510,0x0511,0x0510}, /* 0510 */ + {0x0512,0x0513,0x0512}, {0x0512,0x0513,0x0512}, /* 0512 */ + {0x0514,0x0515,0x0514}, {0x0514,0x0515,0x0514}, /* 0514 */ + {0x0516,0x0517,0x0516}, {0x0516,0x0517,0x0516}, /* 0516 */ + {0x0518,0x0519,0x0518}, {0x0518,0x0519,0x0518}, /* 0518 */ + {0x051A,0x051B,0x051A}, {0x051A,0x051B,0x051A}, /* 051A */ + {0x051C,0x051D,0x051C}, {0x051C,0x051D,0x051C}, /* 051C */ + {0x051E,0x051F,0x051E}, {0x051E,0x051F,0x051E}, /* 051E */ + {0x0520,0x0521,0x0520}, {0x0520,0x0521,0x0520}, /* 0520 */ + {0x0522,0x0523,0x0522}, {0x0522,0x0523,0x0522}, /* 0522 */ + {0x0524,0x0525,0x0524}, {0x0524,0x0525,0x0524}, /* 0524 */ + {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527}, /* 0526 */ + {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529}, /* 0528 */ + {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B}, /* 052A */ + {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D}, /* 052C */ + {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F}, /* 052E */ + {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531}, /* 0530 */ + {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0532 */ + {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0534 */ + {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0536 */ + {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0538 */ + {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 053A */ + {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 053C */ + {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 053E */ + {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0540 */ + {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0542 */ + {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0544 */ + {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0546 */ + {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0548 */ + {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 054A */ + {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 054C */ + {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 054E */ + {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0550 */ + {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0552 */ + {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0554 */ + {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557}, /* 0556 */ + {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559}, /* 0558 */ + {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B}, /* 055A */ + {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D}, /* 055C */ + {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F}, /* 055E */ + {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531}, /* 0560 */ + {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0562 */ + {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0564 */ + {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0566 */ + {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0568 */ + {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 056A */ + {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 056C */ + {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 056E */ + {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0570 */ + {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0572 */ + {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0574 */ + {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0576 */ + {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0578 */ + {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 057A */ + {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 057C */ + {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 057E */ + {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0580 */ + {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0582 */ + {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0584 */ + {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587}, /* 0586 */ + {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589}, /* 0588 */ + {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B}, /* 058A */ + {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D}, /* 058C */ + {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F}, /* 058E */ + {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591}, /* 0590 */ + {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593}, /* 0592 */ + {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595}, /* 0594 */ + {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597}, /* 0596 */ + {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599}, /* 0598 */ + {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B}, /* 059A */ + {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D}, /* 059C */ + {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F}, /* 059E */ + {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1}, /* 05A0 */ + {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3}, /* 05A2 */ + {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5}, /* 05A4 */ + {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7}, /* 05A6 */ + {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9}, /* 05A8 */ + {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB}, /* 05AA */ + {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD}, /* 05AC */ + {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF}, /* 05AE */ + {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1}, /* 05B0 */ + {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3}, /* 05B2 */ + {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5}, /* 05B4 */ + {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7}, /* 05B6 */ + {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9}, /* 05B8 */ + {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB}, /* 05BA */ + {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD}, /* 05BC */ + {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF}, /* 05BE */ + {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1}, /* 05C0 */ + {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3}, /* 05C2 */ + {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5}, /* 05C4 */ + {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7}, /* 05C6 */ + {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9}, /* 05C8 */ + {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB}, /* 05CA */ + {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD}, /* 05CC */ + {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF}, /* 05CE */ + {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1}, /* 05D0 */ + {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3}, /* 05D2 */ + {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5}, /* 05D4 */ + {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7}, /* 05D6 */ + {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9}, /* 05D8 */ + {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB}, /* 05DA */ + {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD}, /* 05DC */ + {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF}, /* 05DE */ + {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1}, /* 05E0 */ + {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3}, /* 05E2 */ + {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5}, /* 05E4 */ + {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7}, /* 05E6 */ + {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9}, /* 05E8 */ + {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB}, /* 05EA */ + {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED}, /* 05EC */ + {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF}, /* 05EE */ + {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1}, /* 05F0 */ + {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3}, /* 05F2 */ + {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5}, /* 05F4 */ + {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7}, /* 05F6 */ + {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9}, /* 05F8 */ + {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB}, /* 05FA */ + {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD}, /* 05FC */ + {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} /* 05FE */ +}; + +static const MY_UNICASE_CHARACTER u520p10[]={ + {0x1000,0x1000,0x1000}, {0x1001,0x1001,0x1001}, /* 1000 */ + {0x1002,0x1002,0x1002}, {0x1003,0x1003,0x1003}, /* 1002 */ + {0x1004,0x1004,0x1004}, {0x1005,0x1005,0x1005}, /* 1004 */ + {0x1006,0x1006,0x1006}, {0x1007,0x1007,0x1007}, /* 1006 */ + {0x1008,0x1008,0x1008}, {0x1009,0x1009,0x1009}, /* 1008 */ + {0x100A,0x100A,0x100A}, {0x100B,0x100B,0x100B}, /* 100A */ + {0x100C,0x100C,0x100C}, {0x100D,0x100D,0x100D}, /* 100C */ + {0x100E,0x100E,0x100E}, {0x100F,0x100F,0x100F}, /* 100E */ + {0x1010,0x1010,0x1010}, {0x1011,0x1011,0x1011}, /* 1010 */ + {0x1012,0x1012,0x1012}, {0x1013,0x1013,0x1013}, /* 1012 */ + {0x1014,0x1014,0x1014}, {0x1015,0x1015,0x1015}, /* 1014 */ + {0x1016,0x1016,0x1016}, {0x1017,0x1017,0x1017}, /* 1016 */ + {0x1018,0x1018,0x1018}, {0x1019,0x1019,0x1019}, /* 1018 */ + {0x101A,0x101A,0x101A}, {0x101B,0x101B,0x101B}, /* 101A */ + {0x101C,0x101C,0x101C}, {0x101D,0x101D,0x101D}, /* 101C */ + {0x101E,0x101E,0x101E}, {0x101F,0x101F,0x101F}, /* 101E */ + {0x1020,0x1020,0x1020}, {0x1021,0x1021,0x1021}, /* 1020 */ + {0x1022,0x1022,0x1022}, {0x1023,0x1023,0x1023}, /* 1022 */ + {0x1024,0x1024,0x1024}, {0x1025,0x1025,0x1025}, /* 1024 */ + {0x1026,0x1026,0x1026}, {0x1027,0x1027,0x1027}, /* 1026 */ + {0x1028,0x1028,0x1028}, {0x1029,0x1029,0x1029}, /* 1028 */ + {0x102A,0x102A,0x102A}, {0x102B,0x102B,0x102B}, /* 102A */ + {0x102C,0x102C,0x102C}, {0x102D,0x102D,0x102D}, /* 102C */ + {0x102E,0x102E,0x102E}, {0x102F,0x102F,0x102F}, /* 102E */ + {0x1030,0x1030,0x1030}, {0x1031,0x1031,0x1031}, /* 1030 */ + {0x1032,0x1032,0x1032}, {0x1033,0x1033,0x1033}, /* 1032 */ + {0x1034,0x1034,0x1034}, {0x1035,0x1035,0x1035}, /* 1034 */ + {0x1036,0x1036,0x1036}, {0x1037,0x1037,0x1037}, /* 1036 */ + {0x1038,0x1038,0x1038}, {0x1039,0x1039,0x1039}, /* 1038 */ + {0x103A,0x103A,0x103A}, {0x103B,0x103B,0x103B}, /* 103A */ + {0x103C,0x103C,0x103C}, {0x103D,0x103D,0x103D}, /* 103C */ + {0x103E,0x103E,0x103E}, {0x103F,0x103F,0x103F}, /* 103E */ + {0x1040,0x1040,0x1040}, {0x1041,0x1041,0x1041}, /* 1040 */ + {0x1042,0x1042,0x1042}, {0x1043,0x1043,0x1043}, /* 1042 */ + {0x1044,0x1044,0x1044}, {0x1045,0x1045,0x1045}, /* 1044 */ + {0x1046,0x1046,0x1046}, {0x1047,0x1047,0x1047}, /* 1046 */ + {0x1048,0x1048,0x1048}, {0x1049,0x1049,0x1049}, /* 1048 */ + {0x104A,0x104A,0x104A}, {0x104B,0x104B,0x104B}, /* 104A */ + {0x104C,0x104C,0x104C}, {0x104D,0x104D,0x104D}, /* 104C */ + {0x104E,0x104E,0x104E}, {0x104F,0x104F,0x104F}, /* 104E */ + {0x1050,0x1050,0x1050}, {0x1051,0x1051,0x1051}, /* 1050 */ + {0x1052,0x1052,0x1052}, {0x1053,0x1053,0x1053}, /* 1052 */ + {0x1054,0x1054,0x1054}, {0x1055,0x1055,0x1055}, /* 1054 */ + {0x1056,0x1056,0x1056}, {0x1057,0x1057,0x1057}, /* 1056 */ + {0x1058,0x1058,0x1058}, {0x1059,0x1059,0x1059}, /* 1058 */ + {0x105A,0x105A,0x105A}, {0x105B,0x105B,0x105B}, /* 105A */ + {0x105C,0x105C,0x105C}, {0x105D,0x105D,0x105D}, /* 105C */ + {0x105E,0x105E,0x105E}, {0x105F,0x105F,0x105F}, /* 105E */ + {0x1060,0x1060,0x1060}, {0x1061,0x1061,0x1061}, /* 1060 */ + {0x1062,0x1062,0x1062}, {0x1063,0x1063,0x1063}, /* 1062 */ + {0x1064,0x1064,0x1064}, {0x1065,0x1065,0x1065}, /* 1064 */ + {0x1066,0x1066,0x1066}, {0x1067,0x1067,0x1067}, /* 1066 */ + {0x1068,0x1068,0x1068}, {0x1069,0x1069,0x1069}, /* 1068 */ + {0x106A,0x106A,0x106A}, {0x106B,0x106B,0x106B}, /* 106A */ + {0x106C,0x106C,0x106C}, {0x106D,0x106D,0x106D}, /* 106C */ + {0x106E,0x106E,0x106E}, {0x106F,0x106F,0x106F}, /* 106E */ + {0x1070,0x1070,0x1070}, {0x1071,0x1071,0x1071}, /* 1070 */ + {0x1072,0x1072,0x1072}, {0x1073,0x1073,0x1073}, /* 1072 */ + {0x1074,0x1074,0x1074}, {0x1075,0x1075,0x1075}, /* 1074 */ + {0x1076,0x1076,0x1076}, {0x1077,0x1077,0x1077}, /* 1076 */ + {0x1078,0x1078,0x1078}, {0x1079,0x1079,0x1079}, /* 1078 */ + {0x107A,0x107A,0x107A}, {0x107B,0x107B,0x107B}, /* 107A */ + {0x107C,0x107C,0x107C}, {0x107D,0x107D,0x107D}, /* 107C */ + {0x107E,0x107E,0x107E}, {0x107F,0x107F,0x107F}, /* 107E */ + {0x1080,0x1080,0x1080}, {0x1081,0x1081,0x1081}, /* 1080 */ + {0x1082,0x1082,0x1082}, {0x1083,0x1083,0x1083}, /* 1082 */ + {0x1084,0x1084,0x1084}, {0x1085,0x1085,0x1085}, /* 1084 */ + {0x1086,0x1086,0x1086}, {0x1087,0x1087,0x1087}, /* 1086 */ + {0x1088,0x1088,0x1088}, {0x1089,0x1089,0x1089}, /* 1088 */ + {0x108A,0x108A,0x108A}, {0x108B,0x108B,0x108B}, /* 108A */ + {0x108C,0x108C,0x108C}, {0x108D,0x108D,0x108D}, /* 108C */ + {0x108E,0x108E,0x108E}, {0x108F,0x108F,0x108F}, /* 108E */ + {0x1090,0x1090,0x1090}, {0x1091,0x1091,0x1091}, /* 1090 */ + {0x1092,0x1092,0x1092}, {0x1093,0x1093,0x1093}, /* 1092 */ + {0x1094,0x1094,0x1094}, {0x1095,0x1095,0x1095}, /* 1094 */ + {0x1096,0x1096,0x1096}, {0x1097,0x1097,0x1097}, /* 1096 */ + {0x1098,0x1098,0x1098}, {0x1099,0x1099,0x1099}, /* 1098 */ + {0x109A,0x109A,0x109A}, {0x109B,0x109B,0x109B}, /* 109A */ + {0x109C,0x109C,0x109C}, {0x109D,0x109D,0x109D}, /* 109C */ + {0x109E,0x109E,0x109E}, {0x109F,0x109F,0x109F}, /* 109E */ + {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 10A0 */ + {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 10A2 */ + {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 10A4 */ + {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 10A6 */ + {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 10A8 */ + {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 10AA */ + {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 10AC */ + {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 10AE */ + {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 10B0 */ + {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 10B2 */ + {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 10B4 */ + {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 10B6 */ + {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 10B8 */ + {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 10BA */ + {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 10BC */ + {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 10BE */ + {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 10C0 */ + {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 10C2 */ + {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 10C4 */ + {0x10C6,0x10C6,0x10C6}, {0x10C7,0x10C7,0x10C7}, /* 10C6 */ + {0x10C8,0x10C8,0x10C8}, {0x10C9,0x10C9,0x10C9}, /* 10C8 */ + {0x10CA,0x10CA,0x10CA}, {0x10CB,0x10CB,0x10CB}, /* 10CA */ + {0x10CC,0x10CC,0x10CC}, {0x10CD,0x10CD,0x10CD}, /* 10CC */ + {0x10CE,0x10CE,0x10CE}, {0x10CF,0x10CF,0x10CF}, /* 10CE */ + {0x10D0,0x10D0,0x10D0}, {0x10D1,0x10D1,0x10D1}, /* 10D0 */ + {0x10D2,0x10D2,0x10D2}, {0x10D3,0x10D3,0x10D3}, /* 10D2 */ + {0x10D4,0x10D4,0x10D4}, {0x10D5,0x10D5,0x10D5}, /* 10D4 */ + {0x10D6,0x10D6,0x10D6}, {0x10D7,0x10D7,0x10D7}, /* 10D6 */ + {0x10D8,0x10D8,0x10D8}, {0x10D9,0x10D9,0x10D9}, /* 10D8 */ + {0x10DA,0x10DA,0x10DA}, {0x10DB,0x10DB,0x10DB}, /* 10DA */ + {0x10DC,0x10DC,0x10DC}, {0x10DD,0x10DD,0x10DD}, /* 10DC */ + {0x10DE,0x10DE,0x10DE}, {0x10DF,0x10DF,0x10DF}, /* 10DE */ + {0x10E0,0x10E0,0x10E0}, {0x10E1,0x10E1,0x10E1}, /* 10E0 */ + {0x10E2,0x10E2,0x10E2}, {0x10E3,0x10E3,0x10E3}, /* 10E2 */ + {0x10E4,0x10E4,0x10E4}, {0x10E5,0x10E5,0x10E5}, /* 10E4 */ + {0x10E6,0x10E6,0x10E6}, {0x10E7,0x10E7,0x10E7}, /* 10E6 */ + {0x10E8,0x10E8,0x10E8}, {0x10E9,0x10E9,0x10E9}, /* 10E8 */ + {0x10EA,0x10EA,0x10EA}, {0x10EB,0x10EB,0x10EB}, /* 10EA */ + {0x10EC,0x10EC,0x10EC}, {0x10ED,0x10ED,0x10ED}, /* 10EC */ + {0x10EE,0x10EE,0x10EE}, {0x10EF,0x10EF,0x10EF}, /* 10EE */ + {0x10F0,0x10F0,0x10F0}, {0x10F1,0x10F1,0x10F1}, /* 10F0 */ + {0x10F2,0x10F2,0x10F2}, {0x10F3,0x10F3,0x10F3}, /* 10F2 */ + {0x10F4,0x10F4,0x10F4}, {0x10F5,0x10F5,0x10F5}, /* 10F4 */ + {0x10F6,0x10F6,0x10F6}, {0x10F7,0x10F7,0x10F7}, /* 10F6 */ + {0x10F8,0x10F8,0x10F8}, {0x10F9,0x10F9,0x10F9}, /* 10F8 */ + {0x10FA,0x10FA,0x10FA}, {0x10FB,0x10FB,0x10FB}, /* 10FA */ + {0x10FC,0x10FC,0x10FC}, {0x10FD,0x10FD,0x10FD}, /* 10FC */ + {0x10FE,0x10FE,0x10FE}, {0x10FF,0x10FF,0x10FF} /* 10FE */ +}; + +static const MY_UNICASE_CHARACTER u520p1D[]={ + {0x1D00,0x1D00,0x1D00}, {0x1D01,0x1D01,0x1D01}, /* 1D00 */ + {0x1D02,0x1D02,0x1D02}, {0x1D03,0x1D03,0x1D03}, /* 1D02 */ + {0x1D04,0x1D04,0x1D04}, {0x1D05,0x1D05,0x1D05}, /* 1D04 */ + {0x1D06,0x1D06,0x1D06}, {0x1D07,0x1D07,0x1D07}, /* 1D06 */ + {0x1D08,0x1D08,0x1D08}, {0x1D09,0x1D09,0x1D09}, /* 1D08 */ + {0x1D0A,0x1D0A,0x1D0A}, {0x1D0B,0x1D0B,0x1D0B}, /* 1D0A */ + {0x1D0C,0x1D0C,0x1D0C}, {0x1D0D,0x1D0D,0x1D0D}, /* 1D0C */ + {0x1D0E,0x1D0E,0x1D0E}, {0x1D0F,0x1D0F,0x1D0F}, /* 1D0E */ + {0x1D10,0x1D10,0x1D10}, {0x1D11,0x1D11,0x1D11}, /* 1D10 */ + {0x1D12,0x1D12,0x1D12}, {0x1D13,0x1D13,0x1D13}, /* 1D12 */ + {0x1D14,0x1D14,0x1D14}, {0x1D15,0x1D15,0x1D15}, /* 1D14 */ + {0x1D16,0x1D16,0x1D16}, {0x1D17,0x1D17,0x1D17}, /* 1D16 */ + {0x1D18,0x1D18,0x1D18}, {0x1D19,0x1D19,0x1D19}, /* 1D18 */ + {0x1D1A,0x1D1A,0x1D1A}, {0x1D1B,0x1D1B,0x1D1B}, /* 1D1A */ + {0x1D1C,0x1D1C,0x1D1C}, {0x1D1D,0x1D1D,0x1D1D}, /* 1D1C */ + {0x1D1E,0x1D1E,0x1D1E}, {0x1D1F,0x1D1F,0x1D1F}, /* 1D1E */ + {0x1D20,0x1D20,0x1D20}, {0x1D21,0x1D21,0x1D21}, /* 1D20 */ + {0x1D22,0x1D22,0x1D22}, {0x1D23,0x1D23,0x1D23}, /* 1D22 */ + {0x1D24,0x1D24,0x1D24}, {0x1D25,0x1D25,0x1D25}, /* 1D24 */ + {0x1D26,0x1D26,0x1D26}, {0x1D27,0x1D27,0x1D27}, /* 1D26 */ + {0x1D28,0x1D28,0x1D28}, {0x1D29,0x1D29,0x1D29}, /* 1D28 */ + {0x1D2A,0x1D2A,0x1D2A}, {0x1D2B,0x1D2B,0x1D2B}, /* 1D2A */ + {0x1D2C,0x1D2C,0x1D2C}, {0x1D2D,0x1D2D,0x1D2D}, /* 1D2C */ + {0x1D2E,0x1D2E,0x1D2E}, {0x1D2F,0x1D2F,0x1D2F}, /* 1D2E */ + {0x1D30,0x1D30,0x1D30}, {0x1D31,0x1D31,0x1D31}, /* 1D30 */ + {0x1D32,0x1D32,0x1D32}, {0x1D33,0x1D33,0x1D33}, /* 1D32 */ + {0x1D34,0x1D34,0x1D34}, {0x1D35,0x1D35,0x1D35}, /* 1D34 */ + {0x1D36,0x1D36,0x1D36}, {0x1D37,0x1D37,0x1D37}, /* 1D36 */ + {0x1D38,0x1D38,0x1D38}, {0x1D39,0x1D39,0x1D39}, /* 1D38 */ + {0x1D3A,0x1D3A,0x1D3A}, {0x1D3B,0x1D3B,0x1D3B}, /* 1D3A */ + {0x1D3C,0x1D3C,0x1D3C}, {0x1D3D,0x1D3D,0x1D3D}, /* 1D3C */ + {0x1D3E,0x1D3E,0x1D3E}, {0x1D3F,0x1D3F,0x1D3F}, /* 1D3E */ + {0x1D40,0x1D40,0x1D40}, {0x1D41,0x1D41,0x1D41}, /* 1D40 */ + {0x1D42,0x1D42,0x1D42}, {0x1D43,0x1D43,0x1D43}, /* 1D42 */ + {0x1D44,0x1D44,0x1D44}, {0x1D45,0x1D45,0x1D45}, /* 1D44 */ + {0x1D46,0x1D46,0x1D46}, {0x1D47,0x1D47,0x1D47}, /* 1D46 */ + {0x1D48,0x1D48,0x1D48}, {0x1D49,0x1D49,0x1D49}, /* 1D48 */ + {0x1D4A,0x1D4A,0x1D4A}, {0x1D4B,0x1D4B,0x1D4B}, /* 1D4A */ + {0x1D4C,0x1D4C,0x1D4C}, {0x1D4D,0x1D4D,0x1D4D}, /* 1D4C */ + {0x1D4E,0x1D4E,0x1D4E}, {0x1D4F,0x1D4F,0x1D4F}, /* 1D4E */ + {0x1D50,0x1D50,0x1D50}, {0x1D51,0x1D51,0x1D51}, /* 1D50 */ + {0x1D52,0x1D52,0x1D52}, {0x1D53,0x1D53,0x1D53}, /* 1D52 */ + {0x1D54,0x1D54,0x1D54}, {0x1D55,0x1D55,0x1D55}, /* 1D54 */ + {0x1D56,0x1D56,0x1D56}, {0x1D57,0x1D57,0x1D57}, /* 1D56 */ + {0x1D58,0x1D58,0x1D58}, {0x1D59,0x1D59,0x1D59}, /* 1D58 */ + {0x1D5A,0x1D5A,0x1D5A}, {0x1D5B,0x1D5B,0x1D5B}, /* 1D5A */ + {0x1D5C,0x1D5C,0x1D5C}, {0x1D5D,0x1D5D,0x1D5D}, /* 1D5C */ + {0x1D5E,0x1D5E,0x1D5E}, {0x1D5F,0x1D5F,0x1D5F}, /* 1D5E */ + {0x1D60,0x1D60,0x1D60}, {0x1D61,0x1D61,0x1D61}, /* 1D60 */ + {0x1D62,0x1D62,0x1D62}, {0x1D63,0x1D63,0x1D63}, /* 1D62 */ + {0x1D64,0x1D64,0x1D64}, {0x1D65,0x1D65,0x1D65}, /* 1D64 */ + {0x1D66,0x1D66,0x1D66}, {0x1D67,0x1D67,0x1D67}, /* 1D66 */ + {0x1D68,0x1D68,0x1D68}, {0x1D69,0x1D69,0x1D69}, /* 1D68 */ + {0x1D6A,0x1D6A,0x1D6A}, {0x1D6B,0x1D6B,0x1D6B}, /* 1D6A */ + {0x1D6C,0x1D6C,0x1D6C}, {0x1D6D,0x1D6D,0x1D6D}, /* 1D6C */ + {0x1D6E,0x1D6E,0x1D6E}, {0x1D6F,0x1D6F,0x1D6F}, /* 1D6E */ + {0x1D70,0x1D70,0x1D70}, {0x1D71,0x1D71,0x1D71}, /* 1D70 */ + {0x1D72,0x1D72,0x1D72}, {0x1D73,0x1D73,0x1D73}, /* 1D72 */ + {0x1D74,0x1D74,0x1D74}, {0x1D75,0x1D75,0x1D75}, /* 1D74 */ + {0x1D76,0x1D76,0x1D76}, {0x1D77,0x1D77,0x1D77}, /* 1D76 */ + {0x1D78,0x1D78,0x1D78}, {0xA77D,0x1D79,0xA77D}, /* 1D78 */ + {0x1D7A,0x1D7A,0x1D7A}, {0x1D7B,0x1D7B,0x1D7B}, /* 1D7A */ + {0x1D7C,0x1D7C,0x1D7C}, {0x2C63,0x1D7D,0x2C63}, /* 1D7C */ + {0x1D7E,0x1D7E,0x1D7E}, {0x1D7F,0x1D7F,0x1D7F}, /* 1D7E */ + {0x1D80,0x1D80,0x1D80}, {0x1D81,0x1D81,0x1D81}, /* 1D80 */ + {0x1D82,0x1D82,0x1D82}, {0x1D83,0x1D83,0x1D83}, /* 1D82 */ + {0x1D84,0x1D84,0x1D84}, {0x1D85,0x1D85,0x1D85}, /* 1D84 */ + {0x1D86,0x1D86,0x1D86}, {0x1D87,0x1D87,0x1D87}, /* 1D86 */ + {0x1D88,0x1D88,0x1D88}, {0x1D89,0x1D89,0x1D89}, /* 1D88 */ + {0x1D8A,0x1D8A,0x1D8A}, {0x1D8B,0x1D8B,0x1D8B}, /* 1D8A */ + {0x1D8C,0x1D8C,0x1D8C}, {0x1D8D,0x1D8D,0x1D8D}, /* 1D8C */ + {0x1D8E,0x1D8E,0x1D8E}, {0x1D8F,0x1D8F,0x1D8F}, /* 1D8E */ + {0x1D90,0x1D90,0x1D90}, {0x1D91,0x1D91,0x1D91}, /* 1D90 */ + {0x1D92,0x1D92,0x1D92}, {0x1D93,0x1D93,0x1D93}, /* 1D92 */ + {0x1D94,0x1D94,0x1D94}, {0x1D95,0x1D95,0x1D95}, /* 1D94 */ + {0x1D96,0x1D96,0x1D96}, {0x1D97,0x1D97,0x1D97}, /* 1D96 */ + {0x1D98,0x1D98,0x1D98}, {0x1D99,0x1D99,0x1D99}, /* 1D98 */ + {0x1D9A,0x1D9A,0x1D9A}, {0x1D9B,0x1D9B,0x1D9B}, /* 1D9A */ + {0x1D9C,0x1D9C,0x1D9C}, {0x1D9D,0x1D9D,0x1D9D}, /* 1D9C */ + {0x1D9E,0x1D9E,0x1D9E}, {0x1D9F,0x1D9F,0x1D9F}, /* 1D9E */ + {0x1DA0,0x1DA0,0x1DA0}, {0x1DA1,0x1DA1,0x1DA1}, /* 1DA0 */ + {0x1DA2,0x1DA2,0x1DA2}, {0x1DA3,0x1DA3,0x1DA3}, /* 1DA2 */ + {0x1DA4,0x1DA4,0x1DA4}, {0x1DA5,0x1DA5,0x1DA5}, /* 1DA4 */ + {0x1DA6,0x1DA6,0x1DA6}, {0x1DA7,0x1DA7,0x1DA7}, /* 1DA6 */ + {0x1DA8,0x1DA8,0x1DA8}, {0x1DA9,0x1DA9,0x1DA9}, /* 1DA8 */ + {0x1DAA,0x1DAA,0x1DAA}, {0x1DAB,0x1DAB,0x1DAB}, /* 1DAA */ + {0x1DAC,0x1DAC,0x1DAC}, {0x1DAD,0x1DAD,0x1DAD}, /* 1DAC */ + {0x1DAE,0x1DAE,0x1DAE}, {0x1DAF,0x1DAF,0x1DAF}, /* 1DAE */ + {0x1DB0,0x1DB0,0x1DB0}, {0x1DB1,0x1DB1,0x1DB1}, /* 1DB0 */ + {0x1DB2,0x1DB2,0x1DB2}, {0x1DB3,0x1DB3,0x1DB3}, /* 1DB2 */ + {0x1DB4,0x1DB4,0x1DB4}, {0x1DB5,0x1DB5,0x1DB5}, /* 1DB4 */ + {0x1DB6,0x1DB6,0x1DB6}, {0x1DB7,0x1DB7,0x1DB7}, /* 1DB6 */ + {0x1DB8,0x1DB8,0x1DB8}, {0x1DB9,0x1DB9,0x1DB9}, /* 1DB8 */ + {0x1DBA,0x1DBA,0x1DBA}, {0x1DBB,0x1DBB,0x1DBB}, /* 1DBA */ + {0x1DBC,0x1DBC,0x1DBC}, {0x1DBD,0x1DBD,0x1DBD}, /* 1DBC */ + {0x1DBE,0x1DBE,0x1DBE}, {0x1DBF,0x1DBF,0x1DBF}, /* 1DBE */ + {0x1DC0,0x1DC0,0x1DC0}, {0x1DC1,0x1DC1,0x1DC1}, /* 1DC0 */ + {0x1DC2,0x1DC2,0x1DC2}, {0x1DC3,0x1DC3,0x1DC3}, /* 1DC2 */ + {0x1DC4,0x1DC4,0x1DC4}, {0x1DC5,0x1DC5,0x1DC5}, /* 1DC4 */ + {0x1DC6,0x1DC6,0x1DC6}, {0x1DC7,0x1DC7,0x1DC7}, /* 1DC6 */ + {0x1DC8,0x1DC8,0x1DC8}, {0x1DC9,0x1DC9,0x1DC9}, /* 1DC8 */ + {0x1DCA,0x1DCA,0x1DCA}, {0x1DCB,0x1DCB,0x1DCB}, /* 1DCA */ + {0x1DCC,0x1DCC,0x1DCC}, {0x1DCD,0x1DCD,0x1DCD}, /* 1DCC */ + {0x1DCE,0x1DCE,0x1DCE}, {0x1DCF,0x1DCF,0x1DCF}, /* 1DCE */ + {0x1DD0,0x1DD0,0x1DD0}, {0x1DD1,0x1DD1,0x1DD1}, /* 1DD0 */ + {0x1DD2,0x1DD2,0x1DD2}, {0x1DD3,0x1DD3,0x1DD3}, /* 1DD2 */ + {0x1DD4,0x1DD4,0x1DD4}, {0x1DD5,0x1DD5,0x1DD5}, /* 1DD4 */ + {0x1DD6,0x1DD6,0x1DD6}, {0x1DD7,0x1DD7,0x1DD7}, /* 1DD6 */ + {0x1DD8,0x1DD8,0x1DD8}, {0x1DD9,0x1DD9,0x1DD9}, /* 1DD8 */ + {0x1DDA,0x1DDA,0x1DDA}, {0x1DDB,0x1DDB,0x1DDB}, /* 1DDA */ + {0x1DDC,0x1DDC,0x1DDC}, {0x1DDD,0x1DDD,0x1DDD}, /* 1DDC */ + {0x1DDE,0x1DDE,0x1DDE}, {0x1DDF,0x1DDF,0x1DDF}, /* 1DDE */ + {0x1DE0,0x1DE0,0x1DE0}, {0x1DE1,0x1DE1,0x1DE1}, /* 1DE0 */ + {0x1DE2,0x1DE2,0x1DE2}, {0x1DE3,0x1DE3,0x1DE3}, /* 1DE2 */ + {0x1DE4,0x1DE4,0x1DE4}, {0x1DE5,0x1DE5,0x1DE5}, /* 1DE4 */ + {0x1DE6,0x1DE6,0x1DE6}, {0x1DE7,0x1DE7,0x1DE7}, /* 1DE6 */ + {0x1DE8,0x1DE8,0x1DE8}, {0x1DE9,0x1DE9,0x1DE9}, /* 1DE8 */ + {0x1DEA,0x1DEA,0x1DEA}, {0x1DEB,0x1DEB,0x1DEB}, /* 1DEA */ + {0x1DEC,0x1DEC,0x1DEC}, {0x1DED,0x1DED,0x1DED}, /* 1DEC */ + {0x1DEE,0x1DEE,0x1DEE}, {0x1DEF,0x1DEF,0x1DEF}, /* 1DEE */ + {0x1DF0,0x1DF0,0x1DF0}, {0x1DF1,0x1DF1,0x1DF1}, /* 1DF0 */ + {0x1DF2,0x1DF2,0x1DF2}, {0x1DF3,0x1DF3,0x1DF3}, /* 1DF2 */ + {0x1DF4,0x1DF4,0x1DF4}, {0x1DF5,0x1DF5,0x1DF5}, /* 1DF4 */ + {0x1DF6,0x1DF6,0x1DF6}, {0x1DF7,0x1DF7,0x1DF7}, /* 1DF6 */ + {0x1DF8,0x1DF8,0x1DF8}, {0x1DF9,0x1DF9,0x1DF9}, /* 1DF8 */ + {0x1DFA,0x1DFA,0x1DFA}, {0x1DFB,0x1DFB,0x1DFB}, /* 1DFA */ + {0x1DFC,0x1DFC,0x1DFC}, {0x1DFD,0x1DFD,0x1DFD}, /* 1DFC */ + {0x1DFE,0x1DFE,0x1DFE}, {0x1DFF,0x1DFF,0x1DFF} /* 1DFE */ +}; + +static const MY_UNICASE_CHARACTER u520p1E[]={ + {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, /* 1E00 */ + {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, /* 1E02 */ + {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, /* 1E04 */ + {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042}, /* 1E06 */ + {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043}, /* 1E08 */ + {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044}, /* 1E0A */ + {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044}, /* 1E0C */ + {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044}, /* 1E0E */ + {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044}, /* 1E10 */ + {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044}, /* 1E12 */ + {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045}, /* 1E14 */ + {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045}, /* 1E16 */ + {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045}, /* 1E18 */ + {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045}, /* 1E1A */ + {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045}, /* 1E1C */ + {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046}, /* 1E1E */ + {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047}, /* 1E20 */ + {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048}, /* 1E22 */ + {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048}, /* 1E24 */ + {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048}, /* 1E26 */ + {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048}, /* 1E28 */ + {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048}, /* 1E2A */ + {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049}, /* 1E2C */ + {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049}, /* 1E2E */ + {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B}, /* 1E30 */ + {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B}, /* 1E32 */ + {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B}, /* 1E34 */ + {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C}, /* 1E36 */ + {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C}, /* 1E38 */ + {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C}, /* 1E3A */ + {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C}, /* 1E3C */ + {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D}, /* 1E3E */ + {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D}, /* 1E40 */ + {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D}, /* 1E42 */ + {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E}, /* 1E44 */ + {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E}, /* 1E46 */ + {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E}, /* 1E48 */ + {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E}, /* 1E4A */ + {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F}, /* 1E4C */ + {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F}, /* 1E4E */ + {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F}, /* 1E50 */ + {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F}, /* 1E52 */ + {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050}, /* 1E54 */ + {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050}, /* 1E56 */ + {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052}, /* 1E58 */ + {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052}, /* 1E5A */ + {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052}, /* 1E5C */ + {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052}, /* 1E5E */ + {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053}, /* 1E60 */ + {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053}, /* 1E62 */ + {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053}, /* 1E64 */ + {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053}, /* 1E66 */ + {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053}, /* 1E68 */ + {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054}, /* 1E6A */ + {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054}, /* 1E6C */ + {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054}, /* 1E6E */ + {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054}, /* 1E70 */ + {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055}, /* 1E72 */ + {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055}, /* 1E74 */ + {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055}, /* 1E76 */ + {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055}, /* 1E78 */ + {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055}, /* 1E7A */ + {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056}, /* 1E7C */ + {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056}, /* 1E7E */ + {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057}, /* 1E80 */ + {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057}, /* 1E82 */ + {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057}, /* 1E84 */ + {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057}, /* 1E86 */ + {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057}, /* 1E88 */ + {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058}, /* 1E8A */ + {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058}, /* 1E8C */ + {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059}, /* 1E8E */ + {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A}, /* 1E90 */ + {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A}, /* 1E92 */ + {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A}, /* 1E94 */ + {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054}, /* 1E96 */ + {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059}, /* 1E98 */ + {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053}, /* 1E9A */ + {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D}, /* 1E9C */ + {0x1E9E,0x00DF,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F}, /* 1E9E */ + {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041}, /* 1EA0 */ + {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041}, /* 1EA2 */ + {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041}, /* 1EA4 */ + {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041}, /* 1EA6 */ + {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041}, /* 1EA8 */ + {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041}, /* 1EAA */ + {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041}, /* 1EAC */ + {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041}, /* 1EAE */ + {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041}, /* 1EB0 */ + {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041}, /* 1EB2 */ + {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041}, /* 1EB4 */ + {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041}, /* 1EB6 */ + {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045}, /* 1EB8 */ + {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045}, /* 1EBA */ + {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045}, /* 1EBC */ + {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045}, /* 1EBE */ + {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045}, /* 1EC0 */ + {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045}, /* 1EC2 */ + {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045}, /* 1EC4 */ + {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045}, /* 1EC6 */ + {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049}, /* 1EC8 */ + {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049}, /* 1ECA */ + {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F}, /* 1ECC */ + {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F}, /* 1ECE */ + {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F}, /* 1ED0 */ + {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F}, /* 1ED2 */ + {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F}, /* 1ED4 */ + {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F}, /* 1ED6 */ + {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F}, /* 1ED8 */ + {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F}, /* 1EDA */ + {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F}, /* 1EDC */ + {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F}, /* 1EDE */ + {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F}, /* 1EE0 */ + {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F}, /* 1EE2 */ + {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055}, /* 1EE4 */ + {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055}, /* 1EE6 */ + {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055}, /* 1EE8 */ + {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055}, /* 1EEA */ + {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055}, /* 1EEC */ + {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055}, /* 1EEE */ + {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055}, /* 1EF0 */ + {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059}, /* 1EF2 */ + {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059}, /* 1EF4 */ + {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059}, /* 1EF6 */ + {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059}, /* 1EF8 */ + {0x1EFA,0x1EFB,0x1EFA}, {0x1EFA,0x1EFB,0x1EFA}, /* 1EFA */ + {0x1EFC,0x1EFD,0x1EFC}, {0x1EFC,0x1EFD,0x1EFC}, /* 1EFC */ + {0x1EFE,0x1EFF,0x1EFE}, {0x1EFE,0x1EFF,0x1EFE} /* 1EFE */ +}; + +static const MY_UNICASE_CHARACTER u520p1F[]={ + {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F00 */ + {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F02 */ + {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F04 */ + {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F06 */ + {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F08 */ + {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F0A */ + {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F0C */ + {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F0E */ + {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F10 */ + {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F12 */ + {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F14 */ + {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17}, /* 1F16 */ + {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F18 */ + {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F1A */ + {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F1C */ + {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F}, /* 1F1E */ + {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F20 */ + {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F22 */ + {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F24 */ + {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F26 */ + {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F28 */ + {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F2A */ + {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F2C */ + {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F2E */ + {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F30 */ + {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F32 */ + {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F34 */ + {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F36 */ + {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F38 */ + {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F3A */ + {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F3C */ + {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F3E */ + {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F40 */ + {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F42 */ + {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F44 */ + {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47}, /* 1F46 */ + {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F48 */ + {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F4A */ + {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F4C */ + {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F}, /* 1F4E */ + {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5}, /* 1F50 */ + {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5}, /* 1F52 */ + {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5}, /* 1F54 */ + {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5}, /* 1F56 */ + {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5}, /* 1F58 */ + {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5}, /* 1F5A */ + {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5}, /* 1F5C */ + {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5}, /* 1F5E */ + {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F60 */ + {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F62 */ + {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F64 */ + {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F66 */ + {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F68 */ + {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F6A */ + {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F6C */ + {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F6E */ + {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1F70 */ + {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1F72 */ + {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1F74 */ + {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1F76 */ + {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1F78 */ + {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1F7A */ + {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1F7C */ + {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F}, /* 1F7E */ + {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F80 */ + {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F82 */ + {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F84 */ + {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F86 */ + {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F88 */ + {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F8A */ + {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F8C */ + {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F8E */ + {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F90 */ + {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F92 */ + {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F94 */ + {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F96 */ + {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F98 */ + {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F9A */ + {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F9C */ + {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F9E */ + {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA0 */ + {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FA2 */ + {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FA4 */ + {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FA6 */ + {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA8 */ + {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FAA */ + {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FAC */ + {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FAE */ + {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB0 */ + {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391}, /* 1FB2 */ + {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5}, /* 1FB4 */ + {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391}, /* 1FB6 */ + {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB8 */ + {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1FBA */ + {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD}, /* 1FBC */ + {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF}, /* 1FBE */ + {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1}, /* 1FC0 */ + {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397}, /* 1FC2 */ + {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5}, /* 1FC4 */ + {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397}, /* 1FC6 */ + {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1FC8 */ + {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1FCA */ + {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD}, /* 1FCC */ + {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF}, /* 1FCE */ + {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD0 */ + {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3}, /* 1FD2 */ + {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5}, /* 1FD4 */ + {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399}, /* 1FD6 */ + {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD8 */ + {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1FDA */ + {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD}, /* 1FDC */ + {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF}, /* 1FDE */ + {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE0 */ + {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3}, /* 1FE2 */ + {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1}, /* 1FE4 */ + {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5}, /* 1FE6 */ + {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE8 */ + {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1FEA */ + {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED}, /* 1FEC */ + {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF}, /* 1FEE */ + {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1}, /* 1FF0 */ + {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9}, /* 1FF2 */ + {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5}, /* 1FF4 */ + {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9}, /* 1FF6 */ + {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1FF8 */ + {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1FFA */ + {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD}, /* 1FFC */ + {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} /* 1FFE */ +}; + +static const MY_UNICASE_CHARACTER u520p21[]={ + {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, /* 2100 */ + {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, /* 2102 */ + {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, /* 2104 */ + {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107}, /* 2106 */ + {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109}, /* 2108 */ + {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B}, /* 210A */ + {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D}, /* 210C */ + {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F}, /* 210E */ + {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111}, /* 2110 */ + {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113}, /* 2112 */ + {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115}, /* 2114 */ + {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117}, /* 2116 */ + {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119}, /* 2118 */ + {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B}, /* 211A */ + {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D}, /* 211C */ + {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F}, /* 211E */ + {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121}, /* 2120 */ + {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123}, /* 2122 */ + {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125}, /* 2124 */ + {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127}, /* 2126 */ + {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129}, /* 2128 */ + {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B}, /* 212A */ + {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D}, /* 212C */ + {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F}, /* 212E */ + {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131}, /* 2130 */ + {0x2132,0x214E,0x2132}, {0x2133,0x2133,0x2133}, /* 2132 */ + {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135}, /* 2134 */ + {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137}, /* 2136 */ + {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139}, /* 2138 */ + {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B}, /* 213A */ + {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D}, /* 213C */ + {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F}, /* 213E */ + {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141}, /* 2140 */ + {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143}, /* 2142 */ + {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145}, /* 2144 */ + {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147}, /* 2146 */ + {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149}, /* 2148 */ + {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B}, /* 214A */ + {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D}, /* 214C */ + {0x2132,0x214E,0x2132}, {0x214F,0x214F,0x214F}, /* 214E */ + {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151}, /* 2150 */ + {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153}, /* 2152 */ + {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155}, /* 2154 */ + {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157}, /* 2156 */ + {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159}, /* 2158 */ + {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B}, /* 215A */ + {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D}, /* 215C */ + {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F}, /* 215E */ + {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2160 */ + {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2162 */ + {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2164 */ + {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2166 */ + {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2168 */ + {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 216A */ + {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 216C */ + {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 216E */ + {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2170 */ + {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2172 */ + {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2174 */ + {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2176 */ + {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2178 */ + {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 217A */ + {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 217C */ + {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 217E */ + {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181}, /* 2180 */ + {0x2182,0x2182,0x2182}, {0x2183,0x2184,0x2183}, /* 2182 */ + {0x2183,0x2184,0x2183}, {0x2185,0x2185,0x2185}, /* 2184 */ + {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187}, /* 2186 */ + {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189}, /* 2188 */ + {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B}, /* 218A */ + {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D}, /* 218C */ + {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F}, /* 218E */ + {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191}, /* 2190 */ + {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193}, /* 2192 */ + {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195}, /* 2194 */ + {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197}, /* 2196 */ + {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199}, /* 2198 */ + {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B}, /* 219A */ + {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D}, /* 219C */ + {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F}, /* 219E */ + {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1}, /* 21A0 */ + {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3}, /* 21A2 */ + {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5}, /* 21A4 */ + {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7}, /* 21A6 */ + {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9}, /* 21A8 */ + {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB}, /* 21AA */ + {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD}, /* 21AC */ + {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF}, /* 21AE */ + {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1}, /* 21B0 */ + {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3}, /* 21B2 */ + {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5}, /* 21B4 */ + {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7}, /* 21B6 */ + {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9}, /* 21B8 */ + {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB}, /* 21BA */ + {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD}, /* 21BC */ + {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF}, /* 21BE */ + {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1}, /* 21C0 */ + {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3}, /* 21C2 */ + {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5}, /* 21C4 */ + {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7}, /* 21C6 */ + {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9}, /* 21C8 */ + {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB}, /* 21CA */ + {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD}, /* 21CC */ + {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF}, /* 21CE */ + {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1}, /* 21D0 */ + {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3}, /* 21D2 */ + {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5}, /* 21D4 */ + {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7}, /* 21D6 */ + {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9}, /* 21D8 */ + {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB}, /* 21DA */ + {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD}, /* 21DC */ + {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF}, /* 21DE */ + {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1}, /* 21E0 */ + {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3}, /* 21E2 */ + {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5}, /* 21E4 */ + {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7}, /* 21E6 */ + {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9}, /* 21E8 */ + {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB}, /* 21EA */ + {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED}, /* 21EC */ + {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF}, /* 21EE */ + {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1}, /* 21F0 */ + {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3}, /* 21F2 */ + {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5}, /* 21F4 */ + {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7}, /* 21F6 */ + {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9}, /* 21F8 */ + {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB}, /* 21FA */ + {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD}, /* 21FC */ + {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} /* 21FE */ +}; + +static const MY_UNICASE_CHARACTER u520p24[]={ + {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, /* 2400 */ + {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, /* 2402 */ + {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, /* 2404 */ + {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407}, /* 2406 */ + {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409}, /* 2408 */ + {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B}, /* 240A */ + {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D}, /* 240C */ + {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F}, /* 240E */ + {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411}, /* 2410 */ + {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413}, /* 2412 */ + {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415}, /* 2414 */ + {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417}, /* 2416 */ + {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419}, /* 2418 */ + {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B}, /* 241A */ + {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D}, /* 241C */ + {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F}, /* 241E */ + {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421}, /* 2420 */ + {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423}, /* 2422 */ + {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425}, /* 2424 */ + {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427}, /* 2426 */ + {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429}, /* 2428 */ + {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B}, /* 242A */ + {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D}, /* 242C */ + {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F}, /* 242E */ + {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431}, /* 2430 */ + {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433}, /* 2432 */ + {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435}, /* 2434 */ + {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437}, /* 2436 */ + {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439}, /* 2438 */ + {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B}, /* 243A */ + {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D}, /* 243C */ + {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F}, /* 243E */ + {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441}, /* 2440 */ + {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443}, /* 2442 */ + {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445}, /* 2444 */ + {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447}, /* 2446 */ + {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449}, /* 2448 */ + {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B}, /* 244A */ + {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D}, /* 244C */ + {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F}, /* 244E */ + {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451}, /* 2450 */ + {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453}, /* 2452 */ + {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455}, /* 2454 */ + {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457}, /* 2456 */ + {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459}, /* 2458 */ + {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B}, /* 245A */ + {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D}, /* 245C */ + {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F}, /* 245E */ + {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461}, /* 2460 */ + {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463}, /* 2462 */ + {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465}, /* 2464 */ + {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467}, /* 2466 */ + {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469}, /* 2468 */ + {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B}, /* 246A */ + {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D}, /* 246C */ + {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F}, /* 246E */ + {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471}, /* 2470 */ + {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473}, /* 2472 */ + {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475}, /* 2474 */ + {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477}, /* 2476 */ + {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479}, /* 2478 */ + {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B}, /* 247A */ + {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D}, /* 247C */ + {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F}, /* 247E */ + {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481}, /* 2480 */ + {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483}, /* 2482 */ + {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485}, /* 2484 */ + {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487}, /* 2486 */ + {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489}, /* 2488 */ + {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B}, /* 248A */ + {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D}, /* 248C */ + {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F}, /* 248E */ + {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491}, /* 2490 */ + {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493}, /* 2492 */ + {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495}, /* 2494 */ + {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497}, /* 2496 */ + {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499}, /* 2498 */ + {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B}, /* 249A */ + {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D}, /* 249C */ + {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F}, /* 249E */ + {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1}, /* 24A0 */ + {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3}, /* 24A2 */ + {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5}, /* 24A4 */ + {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7}, /* 24A6 */ + {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9}, /* 24A8 */ + {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB}, /* 24AA */ + {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD}, /* 24AC */ + {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF}, /* 24AE */ + {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1}, /* 24B0 */ + {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3}, /* 24B2 */ + {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5}, /* 24B4 */ + {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24B6 */ + {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24B8 */ + {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24BA */ + {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24BC */ + {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24BE */ + {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24C0 */ + {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24C2 */ + {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24C4 */ + {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24C6 */ + {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24C8 */ + {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24CA */ + {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24CC */ + {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24CE */ + {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24D0 */ + {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24D2 */ + {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24D4 */ + {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24D6 */ + {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24D8 */ + {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24DA */ + {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24DC */ + {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24DE */ + {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24E0 */ + {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24E2 */ + {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24E4 */ + {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24E6 */ + {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24E8 */ + {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB}, /* 24EA */ + {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED}, /* 24EC */ + {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF}, /* 24EE */ + {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1}, /* 24F0 */ + {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3}, /* 24F2 */ + {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5}, /* 24F4 */ + {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7}, /* 24F6 */ + {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9}, /* 24F8 */ + {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB}, /* 24FA */ + {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD}, /* 24FC */ + {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} /* 24FE */ +}; + +static const MY_UNICASE_CHARACTER u520p2C[]={ + {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C00 */ + {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C02 */ + {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C04 */ + {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C06 */ + {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C08 */ + {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C0A */ + {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C0C */ + {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C0E */ + {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C10 */ + {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C12 */ + {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C14 */ + {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C16 */ + {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C18 */ + {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C1A */ + {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C1C */ + {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C1E */ + {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C20 */ + {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C22 */ + {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C24 */ + {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C26 */ + {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C28 */ + {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C2A */ + {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C2C */ + {0x2C2E,0x2C5E,0x2C2E}, {0x2C2F,0x2C2F,0x2C2F}, /* 2C2E */ + {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C30 */ + {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C32 */ + {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C34 */ + {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C36 */ + {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C38 */ + {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C3A */ + {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C3C */ + {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C3E */ + {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C40 */ + {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C42 */ + {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C44 */ + {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C46 */ + {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C48 */ + {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C4A */ + {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C4C */ + {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C4E */ + {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C50 */ + {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C52 */ + {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C54 */ + {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C56 */ + {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C58 */ + {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C5A */ + {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C5C */ + {0x2C2E,0x2C5E,0x2C2E}, {0x2C5F,0x2C5F,0x2C5F}, /* 2C5E */ + {0x2C60,0x2C61,0x2C60}, {0x2C60,0x2C61,0x2C60}, /* 2C60 */ + {0x2C62,0x026B,0x2C62}, {0x2C63,0x1D7D,0x2C63}, /* 2C62 */ + {0x2C64,0x027D,0x2C64}, {0x023A,0x2C65,0x023A}, /* 2C64 */ + {0x023E,0x2C66,0x023E}, {0x2C67,0x2C68,0x2C67}, /* 2C66 */ + {0x2C67,0x2C68,0x2C67}, {0x2C69,0x2C6A,0x2C69}, /* 2C68 */ + {0x2C69,0x2C6A,0x2C69}, {0x2C6B,0x2C6C,0x2C6B}, /* 2C6A */ + {0x2C6B,0x2C6C,0x2C6B}, {0x2C6D,0x0251,0x2C6D}, /* 2C6C */ + {0x2C6E,0x0271,0x2C6E}, {0x2C6F,0x0250,0x2C6F}, /* 2C6E */ + {0x2C70,0x0252,0x2C70}, {0x2C71,0x2C71,0x2C71}, /* 2C70 */ + {0x2C72,0x2C73,0x2C72}, {0x2C72,0x2C73,0x2C72}, /* 2C72 */ + {0x2C74,0x2C74,0x2C74}, {0x2C75,0x2C76,0x2C75}, /* 2C74 */ + {0x2C75,0x2C76,0x2C75}, {0x2C77,0x2C77,0x2C77}, /* 2C76 */ + {0x2C78,0x2C78,0x2C78}, {0x2C79,0x2C79,0x2C79}, /* 2C78 */ + {0x2C7A,0x2C7A,0x2C7A}, {0x2C7B,0x2C7B,0x2C7B}, /* 2C7A */ + {0x2C7C,0x2C7C,0x2C7C}, {0x2C7D,0x2C7D,0x2C7D}, /* 2C7C */ + {0x2C7E,0x023F,0x2C7E}, {0x2C7F,0x0240,0x2C7F}, /* 2C7E */ + {0x2C80,0x2C81,0x2C80}, {0x2C80,0x2C81,0x2C80}, /* 2C80 */ + {0x2C82,0x2C83,0x2C82}, {0x2C82,0x2C83,0x2C82}, /* 2C82 */ + {0x2C84,0x2C85,0x2C84}, {0x2C84,0x2C85,0x2C84}, /* 2C84 */ + {0x2C86,0x2C87,0x2C86}, {0x2C86,0x2C87,0x2C86}, /* 2C86 */ + {0x2C88,0x2C89,0x2C88}, {0x2C88,0x2C89,0x2C88}, /* 2C88 */ + {0x2C8A,0x2C8B,0x2C8A}, {0x2C8A,0x2C8B,0x2C8A}, /* 2C8A */ + {0x2C8C,0x2C8D,0x2C8C}, {0x2C8C,0x2C8D,0x2C8C}, /* 2C8C */ + {0x2C8E,0x2C8F,0x2C8E}, {0x2C8E,0x2C8F,0x2C8E}, /* 2C8E */ + {0x2C90,0x2C91,0x2C90}, {0x2C90,0x2C91,0x2C90}, /* 2C90 */ + {0x2C92,0x2C93,0x2C92}, {0x2C92,0x2C93,0x2C92}, /* 2C92 */ + {0x2C94,0x2C95,0x2C94}, {0x2C94,0x2C95,0x2C94}, /* 2C94 */ + {0x2C96,0x2C97,0x2C96}, {0x2C96,0x2C97,0x2C96}, /* 2C96 */ + {0x2C98,0x2C99,0x2C98}, {0x2C98,0x2C99,0x2C98}, /* 2C98 */ + {0x2C9A,0x2C9B,0x2C9A}, {0x2C9A,0x2C9B,0x2C9A}, /* 2C9A */ + {0x2C9C,0x2C9D,0x2C9C}, {0x2C9C,0x2C9D,0x2C9C}, /* 2C9C */ + {0x2C9E,0x2C9F,0x2C9E}, {0x2C9E,0x2C9F,0x2C9E}, /* 2C9E */ + {0x2CA0,0x2CA1,0x2CA0}, {0x2CA0,0x2CA1,0x2CA0}, /* 2CA0 */ + {0x2CA2,0x2CA3,0x2CA2}, {0x2CA2,0x2CA3,0x2CA2}, /* 2CA2 */ + {0x2CA4,0x2CA5,0x2CA4}, {0x2CA4,0x2CA5,0x2CA4}, /* 2CA4 */ + {0x2CA6,0x2CA7,0x2CA6}, {0x2CA6,0x2CA7,0x2CA6}, /* 2CA6 */ + {0x2CA8,0x2CA9,0x2CA8}, {0x2CA8,0x2CA9,0x2CA8}, /* 2CA8 */ + {0x2CAA,0x2CAB,0x2CAA}, {0x2CAA,0x2CAB,0x2CAA}, /* 2CAA */ + {0x2CAC,0x2CAD,0x2CAC}, {0x2CAC,0x2CAD,0x2CAC}, /* 2CAC */ + {0x2CAE,0x2CAF,0x2CAE}, {0x2CAE,0x2CAF,0x2CAE}, /* 2CAE */ + {0x2CB0,0x2CB1,0x2CB0}, {0x2CB0,0x2CB1,0x2CB0}, /* 2CB0 */ + {0x2CB2,0x2CB3,0x2CB2}, {0x2CB2,0x2CB3,0x2CB2}, /* 2CB2 */ + {0x2CB4,0x2CB5,0x2CB4}, {0x2CB4,0x2CB5,0x2CB4}, /* 2CB4 */ + {0x2CB6,0x2CB7,0x2CB6}, {0x2CB6,0x2CB7,0x2CB6}, /* 2CB6 */ + {0x2CB8,0x2CB9,0x2CB8}, {0x2CB8,0x2CB9,0x2CB8}, /* 2CB8 */ + {0x2CBA,0x2CBB,0x2CBA}, {0x2CBA,0x2CBB,0x2CBA}, /* 2CBA */ + {0x2CBC,0x2CBD,0x2CBC}, {0x2CBC,0x2CBD,0x2CBC}, /* 2CBC */ + {0x2CBE,0x2CBF,0x2CBE}, {0x2CBE,0x2CBF,0x2CBE}, /* 2CBE */ + {0x2CC0,0x2CC1,0x2CC0}, {0x2CC0,0x2CC1,0x2CC0}, /* 2CC0 */ + {0x2CC2,0x2CC3,0x2CC2}, {0x2CC2,0x2CC3,0x2CC2}, /* 2CC2 */ + {0x2CC4,0x2CC5,0x2CC4}, {0x2CC4,0x2CC5,0x2CC4}, /* 2CC4 */ + {0x2CC6,0x2CC7,0x2CC6}, {0x2CC6,0x2CC7,0x2CC6}, /* 2CC6 */ + {0x2CC8,0x2CC9,0x2CC8}, {0x2CC8,0x2CC9,0x2CC8}, /* 2CC8 */ + {0x2CCA,0x2CCB,0x2CCA}, {0x2CCA,0x2CCB,0x2CCA}, /* 2CCA */ + {0x2CCC,0x2CCD,0x2CCC}, {0x2CCC,0x2CCD,0x2CCC}, /* 2CCC */ + {0x2CCE,0x2CCF,0x2CCE}, {0x2CCE,0x2CCF,0x2CCE}, /* 2CCE */ + {0x2CD0,0x2CD1,0x2CD0}, {0x2CD0,0x2CD1,0x2CD0}, /* 2CD0 */ + {0x2CD2,0x2CD3,0x2CD2}, {0x2CD2,0x2CD3,0x2CD2}, /* 2CD2 */ + {0x2CD4,0x2CD5,0x2CD4}, {0x2CD4,0x2CD5,0x2CD4}, /* 2CD4 */ + {0x2CD6,0x2CD7,0x2CD6}, {0x2CD6,0x2CD7,0x2CD6}, /* 2CD6 */ + {0x2CD8,0x2CD9,0x2CD8}, {0x2CD8,0x2CD9,0x2CD8}, /* 2CD8 */ + {0x2CDA,0x2CDB,0x2CDA}, {0x2CDA,0x2CDB,0x2CDA}, /* 2CDA */ + {0x2CDC,0x2CDD,0x2CDC}, {0x2CDC,0x2CDD,0x2CDC}, /* 2CDC */ + {0x2CDE,0x2CDF,0x2CDE}, {0x2CDE,0x2CDF,0x2CDE}, /* 2CDE */ + {0x2CE0,0x2CE1,0x2CE0}, {0x2CE0,0x2CE1,0x2CE0}, /* 2CE0 */ + {0x2CE2,0x2CE3,0x2CE2}, {0x2CE2,0x2CE3,0x2CE2}, /* 2CE2 */ + {0x2CE4,0x2CE4,0x2CE4}, {0x2CE5,0x2CE5,0x2CE5}, /* 2CE4 */ + {0x2CE6,0x2CE6,0x2CE6}, {0x2CE7,0x2CE7,0x2CE7}, /* 2CE6 */ + {0x2CE8,0x2CE8,0x2CE8}, {0x2CE9,0x2CE9,0x2CE9}, /* 2CE8 */ + {0x2CEA,0x2CEA,0x2CEA}, {0x2CEB,0x2CEC,0x2CEB}, /* 2CEA */ + {0x2CEB,0x2CEC,0x2CEB}, {0x2CED,0x2CEE,0x2CED}, /* 2CEC */ + {0x2CED,0x2CEE,0x2CED}, {0x2CEF,0x2CEF,0x2CEF}, /* 2CEE */ + {0x2CF0,0x2CF0,0x2CF0}, {0x2CF1,0x2CF1,0x2CF1}, /* 2CF0 */ + {0x2CF2,0x2CF2,0x2CF2}, {0x2CF3,0x2CF3,0x2CF3}, /* 2CF2 */ + {0x2CF4,0x2CF4,0x2CF4}, {0x2CF5,0x2CF5,0x2CF5}, /* 2CF4 */ + {0x2CF6,0x2CF6,0x2CF6}, {0x2CF7,0x2CF7,0x2CF7}, /* 2CF6 */ + {0x2CF8,0x2CF8,0x2CF8}, {0x2CF9,0x2CF9,0x2CF9}, /* 2CF8 */ + {0x2CFA,0x2CFA,0x2CFA}, {0x2CFB,0x2CFB,0x2CFB}, /* 2CFA */ + {0x2CFC,0x2CFC,0x2CFC}, {0x2CFD,0x2CFD,0x2CFD}, /* 2CFC */ + {0x2CFE,0x2CFE,0x2CFE}, {0x2CFF,0x2CFF,0x2CFF} /* 2CFE */ +}; + +static const MY_UNICASE_CHARACTER u520p2D[]={ + {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 2D00 */ + {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 2D02 */ + {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 2D04 */ + {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 2D06 */ + {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 2D08 */ + {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 2D0A */ + {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 2D0C */ + {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 2D0E */ + {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 2D10 */ + {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 2D12 */ + {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 2D14 */ + {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 2D16 */ + {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 2D18 */ + {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 2D1A */ + {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 2D1C */ + {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 2D1E */ + {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 2D20 */ + {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 2D22 */ + {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 2D24 */ + {0x2D26,0x2D26,0x2D26}, {0x2D27,0x2D27,0x2D27}, /* 2D26 */ + {0x2D28,0x2D28,0x2D28}, {0x2D29,0x2D29,0x2D29}, /* 2D28 */ + {0x2D2A,0x2D2A,0x2D2A}, {0x2D2B,0x2D2B,0x2D2B}, /* 2D2A */ + {0x2D2C,0x2D2C,0x2D2C}, {0x2D2D,0x2D2D,0x2D2D}, /* 2D2C */ + {0x2D2E,0x2D2E,0x2D2E}, {0x2D2F,0x2D2F,0x2D2F}, /* 2D2E */ + {0x2D30,0x2D30,0x2D30}, {0x2D31,0x2D31,0x2D31}, /* 2D30 */ + {0x2D32,0x2D32,0x2D32}, {0x2D33,0x2D33,0x2D33}, /* 2D32 */ + {0x2D34,0x2D34,0x2D34}, {0x2D35,0x2D35,0x2D35}, /* 2D34 */ + {0x2D36,0x2D36,0x2D36}, {0x2D37,0x2D37,0x2D37}, /* 2D36 */ + {0x2D38,0x2D38,0x2D38}, {0x2D39,0x2D39,0x2D39}, /* 2D38 */ + {0x2D3A,0x2D3A,0x2D3A}, {0x2D3B,0x2D3B,0x2D3B}, /* 2D3A */ + {0x2D3C,0x2D3C,0x2D3C}, {0x2D3D,0x2D3D,0x2D3D}, /* 2D3C */ + {0x2D3E,0x2D3E,0x2D3E}, {0x2D3F,0x2D3F,0x2D3F}, /* 2D3E */ + {0x2D40,0x2D40,0x2D40}, {0x2D41,0x2D41,0x2D41}, /* 2D40 */ + {0x2D42,0x2D42,0x2D42}, {0x2D43,0x2D43,0x2D43}, /* 2D42 */ + {0x2D44,0x2D44,0x2D44}, {0x2D45,0x2D45,0x2D45}, /* 2D44 */ + {0x2D46,0x2D46,0x2D46}, {0x2D47,0x2D47,0x2D47}, /* 2D46 */ + {0x2D48,0x2D48,0x2D48}, {0x2D49,0x2D49,0x2D49}, /* 2D48 */ + {0x2D4A,0x2D4A,0x2D4A}, {0x2D4B,0x2D4B,0x2D4B}, /* 2D4A */ + {0x2D4C,0x2D4C,0x2D4C}, {0x2D4D,0x2D4D,0x2D4D}, /* 2D4C */ + {0x2D4E,0x2D4E,0x2D4E}, {0x2D4F,0x2D4F,0x2D4F}, /* 2D4E */ + {0x2D50,0x2D50,0x2D50}, {0x2D51,0x2D51,0x2D51}, /* 2D50 */ + {0x2D52,0x2D52,0x2D52}, {0x2D53,0x2D53,0x2D53}, /* 2D52 */ + {0x2D54,0x2D54,0x2D54}, {0x2D55,0x2D55,0x2D55}, /* 2D54 */ + {0x2D56,0x2D56,0x2D56}, {0x2D57,0x2D57,0x2D57}, /* 2D56 */ + {0x2D58,0x2D58,0x2D58}, {0x2D59,0x2D59,0x2D59}, /* 2D58 */ + {0x2D5A,0x2D5A,0x2D5A}, {0x2D5B,0x2D5B,0x2D5B}, /* 2D5A */ + {0x2D5C,0x2D5C,0x2D5C}, {0x2D5D,0x2D5D,0x2D5D}, /* 2D5C */ + {0x2D5E,0x2D5E,0x2D5E}, {0x2D5F,0x2D5F,0x2D5F}, /* 2D5E */ + {0x2D60,0x2D60,0x2D60}, {0x2D61,0x2D61,0x2D61}, /* 2D60 */ + {0x2D62,0x2D62,0x2D62}, {0x2D63,0x2D63,0x2D63}, /* 2D62 */ + {0x2D64,0x2D64,0x2D64}, {0x2D65,0x2D65,0x2D65}, /* 2D64 */ + {0x2D66,0x2D66,0x2D66}, {0x2D67,0x2D67,0x2D67}, /* 2D66 */ + {0x2D68,0x2D68,0x2D68}, {0x2D69,0x2D69,0x2D69}, /* 2D68 */ + {0x2D6A,0x2D6A,0x2D6A}, {0x2D6B,0x2D6B,0x2D6B}, /* 2D6A */ + {0x2D6C,0x2D6C,0x2D6C}, {0x2D6D,0x2D6D,0x2D6D}, /* 2D6C */ + {0x2D6E,0x2D6E,0x2D6E}, {0x2D6F,0x2D6F,0x2D6F}, /* 2D6E */ + {0x2D70,0x2D70,0x2D70}, {0x2D71,0x2D71,0x2D71}, /* 2D70 */ + {0x2D72,0x2D72,0x2D72}, {0x2D73,0x2D73,0x2D73}, /* 2D72 */ + {0x2D74,0x2D74,0x2D74}, {0x2D75,0x2D75,0x2D75}, /* 2D74 */ + {0x2D76,0x2D76,0x2D76}, {0x2D77,0x2D77,0x2D77}, /* 2D76 */ + {0x2D78,0x2D78,0x2D78}, {0x2D79,0x2D79,0x2D79}, /* 2D78 */ + {0x2D7A,0x2D7A,0x2D7A}, {0x2D7B,0x2D7B,0x2D7B}, /* 2D7A */ + {0x2D7C,0x2D7C,0x2D7C}, {0x2D7D,0x2D7D,0x2D7D}, /* 2D7C */ + {0x2D7E,0x2D7E,0x2D7E}, {0x2D7F,0x2D7F,0x2D7F}, /* 2D7E */ + {0x2D80,0x2D80,0x2D80}, {0x2D81,0x2D81,0x2D81}, /* 2D80 */ + {0x2D82,0x2D82,0x2D82}, {0x2D83,0x2D83,0x2D83}, /* 2D82 */ + {0x2D84,0x2D84,0x2D84}, {0x2D85,0x2D85,0x2D85}, /* 2D84 */ + {0x2D86,0x2D86,0x2D86}, {0x2D87,0x2D87,0x2D87}, /* 2D86 */ + {0x2D88,0x2D88,0x2D88}, {0x2D89,0x2D89,0x2D89}, /* 2D88 */ + {0x2D8A,0x2D8A,0x2D8A}, {0x2D8B,0x2D8B,0x2D8B}, /* 2D8A */ + {0x2D8C,0x2D8C,0x2D8C}, {0x2D8D,0x2D8D,0x2D8D}, /* 2D8C */ + {0x2D8E,0x2D8E,0x2D8E}, {0x2D8F,0x2D8F,0x2D8F}, /* 2D8E */ + {0x2D90,0x2D90,0x2D90}, {0x2D91,0x2D91,0x2D91}, /* 2D90 */ + {0x2D92,0x2D92,0x2D92}, {0x2D93,0x2D93,0x2D93}, /* 2D92 */ + {0x2D94,0x2D94,0x2D94}, {0x2D95,0x2D95,0x2D95}, /* 2D94 */ + {0x2D96,0x2D96,0x2D96}, {0x2D97,0x2D97,0x2D97}, /* 2D96 */ + {0x2D98,0x2D98,0x2D98}, {0x2D99,0x2D99,0x2D99}, /* 2D98 */ + {0x2D9A,0x2D9A,0x2D9A}, {0x2D9B,0x2D9B,0x2D9B}, /* 2D9A */ + {0x2D9C,0x2D9C,0x2D9C}, {0x2D9D,0x2D9D,0x2D9D}, /* 2D9C */ + {0x2D9E,0x2D9E,0x2D9E}, {0x2D9F,0x2D9F,0x2D9F}, /* 2D9E */ + {0x2DA0,0x2DA0,0x2DA0}, {0x2DA1,0x2DA1,0x2DA1}, /* 2DA0 */ + {0x2DA2,0x2DA2,0x2DA2}, {0x2DA3,0x2DA3,0x2DA3}, /* 2DA2 */ + {0x2DA4,0x2DA4,0x2DA4}, {0x2DA5,0x2DA5,0x2DA5}, /* 2DA4 */ + {0x2DA6,0x2DA6,0x2DA6}, {0x2DA7,0x2DA7,0x2DA7}, /* 2DA6 */ + {0x2DA8,0x2DA8,0x2DA8}, {0x2DA9,0x2DA9,0x2DA9}, /* 2DA8 */ + {0x2DAA,0x2DAA,0x2DAA}, {0x2DAB,0x2DAB,0x2DAB}, /* 2DAA */ + {0x2DAC,0x2DAC,0x2DAC}, {0x2DAD,0x2DAD,0x2DAD}, /* 2DAC */ + {0x2DAE,0x2DAE,0x2DAE}, {0x2DAF,0x2DAF,0x2DAF}, /* 2DAE */ + {0x2DB0,0x2DB0,0x2DB0}, {0x2DB1,0x2DB1,0x2DB1}, /* 2DB0 */ + {0x2DB2,0x2DB2,0x2DB2}, {0x2DB3,0x2DB3,0x2DB3}, /* 2DB2 */ + {0x2DB4,0x2DB4,0x2DB4}, {0x2DB5,0x2DB5,0x2DB5}, /* 2DB4 */ + {0x2DB6,0x2DB6,0x2DB6}, {0x2DB7,0x2DB7,0x2DB7}, /* 2DB6 */ + {0x2DB8,0x2DB8,0x2DB8}, {0x2DB9,0x2DB9,0x2DB9}, /* 2DB8 */ + {0x2DBA,0x2DBA,0x2DBA}, {0x2DBB,0x2DBB,0x2DBB}, /* 2DBA */ + {0x2DBC,0x2DBC,0x2DBC}, {0x2DBD,0x2DBD,0x2DBD}, /* 2DBC */ + {0x2DBE,0x2DBE,0x2DBE}, {0x2DBF,0x2DBF,0x2DBF}, /* 2DBE */ + {0x2DC0,0x2DC0,0x2DC0}, {0x2DC1,0x2DC1,0x2DC1}, /* 2DC0 */ + {0x2DC2,0x2DC2,0x2DC2}, {0x2DC3,0x2DC3,0x2DC3}, /* 2DC2 */ + {0x2DC4,0x2DC4,0x2DC4}, {0x2DC5,0x2DC5,0x2DC5}, /* 2DC4 */ + {0x2DC6,0x2DC6,0x2DC6}, {0x2DC7,0x2DC7,0x2DC7}, /* 2DC6 */ + {0x2DC8,0x2DC8,0x2DC8}, {0x2DC9,0x2DC9,0x2DC9}, /* 2DC8 */ + {0x2DCA,0x2DCA,0x2DCA}, {0x2DCB,0x2DCB,0x2DCB}, /* 2DCA */ + {0x2DCC,0x2DCC,0x2DCC}, {0x2DCD,0x2DCD,0x2DCD}, /* 2DCC */ + {0x2DCE,0x2DCE,0x2DCE}, {0x2DCF,0x2DCF,0x2DCF}, /* 2DCE */ + {0x2DD0,0x2DD0,0x2DD0}, {0x2DD1,0x2DD1,0x2DD1}, /* 2DD0 */ + {0x2DD2,0x2DD2,0x2DD2}, {0x2DD3,0x2DD3,0x2DD3}, /* 2DD2 */ + {0x2DD4,0x2DD4,0x2DD4}, {0x2DD5,0x2DD5,0x2DD5}, /* 2DD4 */ + {0x2DD6,0x2DD6,0x2DD6}, {0x2DD7,0x2DD7,0x2DD7}, /* 2DD6 */ + {0x2DD8,0x2DD8,0x2DD8}, {0x2DD9,0x2DD9,0x2DD9}, /* 2DD8 */ + {0x2DDA,0x2DDA,0x2DDA}, {0x2DDB,0x2DDB,0x2DDB}, /* 2DDA */ + {0x2DDC,0x2DDC,0x2DDC}, {0x2DDD,0x2DDD,0x2DDD}, /* 2DDC */ + {0x2DDE,0x2DDE,0x2DDE}, {0x2DDF,0x2DDF,0x2DDF}, /* 2DDE */ + {0x2DE0,0x2DE0,0x2DE0}, {0x2DE1,0x2DE1,0x2DE1}, /* 2DE0 */ + {0x2DE2,0x2DE2,0x2DE2}, {0x2DE3,0x2DE3,0x2DE3}, /* 2DE2 */ + {0x2DE4,0x2DE4,0x2DE4}, {0x2DE5,0x2DE5,0x2DE5}, /* 2DE4 */ + {0x2DE6,0x2DE6,0x2DE6}, {0x2DE7,0x2DE7,0x2DE7}, /* 2DE6 */ + {0x2DE8,0x2DE8,0x2DE8}, {0x2DE9,0x2DE9,0x2DE9}, /* 2DE8 */ + {0x2DEA,0x2DEA,0x2DEA}, {0x2DEB,0x2DEB,0x2DEB}, /* 2DEA */ + {0x2DEC,0x2DEC,0x2DEC}, {0x2DED,0x2DED,0x2DED}, /* 2DEC */ + {0x2DEE,0x2DEE,0x2DEE}, {0x2DEF,0x2DEF,0x2DEF}, /* 2DEE */ + {0x2DF0,0x2DF0,0x2DF0}, {0x2DF1,0x2DF1,0x2DF1}, /* 2DF0 */ + {0x2DF2,0x2DF2,0x2DF2}, {0x2DF3,0x2DF3,0x2DF3}, /* 2DF2 */ + {0x2DF4,0x2DF4,0x2DF4}, {0x2DF5,0x2DF5,0x2DF5}, /* 2DF4 */ + {0x2DF6,0x2DF6,0x2DF6}, {0x2DF7,0x2DF7,0x2DF7}, /* 2DF6 */ + {0x2DF8,0x2DF8,0x2DF8}, {0x2DF9,0x2DF9,0x2DF9}, /* 2DF8 */ + {0x2DFA,0x2DFA,0x2DFA}, {0x2DFB,0x2DFB,0x2DFB}, /* 2DFA */ + {0x2DFC,0x2DFC,0x2DFC}, {0x2DFD,0x2DFD,0x2DFD}, /* 2DFC */ + {0x2DFE,0x2DFE,0x2DFE}, {0x2DFF,0x2DFF,0x2DFF} /* 2DFE */ +}; + +static const MY_UNICASE_CHARACTER u520pA6[]={ + {0xA600,0xA600,0xA600}, {0xA601,0xA601,0xA601}, /* A600 */ + {0xA602,0xA602,0xA602}, {0xA603,0xA603,0xA603}, /* A602 */ + {0xA604,0xA604,0xA604}, {0xA605,0xA605,0xA605}, /* A604 */ + {0xA606,0xA606,0xA606}, {0xA607,0xA607,0xA607}, /* A606 */ + {0xA608,0xA608,0xA608}, {0xA609,0xA609,0xA609}, /* A608 */ + {0xA60A,0xA60A,0xA60A}, {0xA60B,0xA60B,0xA60B}, /* A60A */ + {0xA60C,0xA60C,0xA60C}, {0xA60D,0xA60D,0xA60D}, /* A60C */ + {0xA60E,0xA60E,0xA60E}, {0xA60F,0xA60F,0xA60F}, /* A60E */ + {0xA610,0xA610,0xA610}, {0xA611,0xA611,0xA611}, /* A610 */ + {0xA612,0xA612,0xA612}, {0xA613,0xA613,0xA613}, /* A612 */ + {0xA614,0xA614,0xA614}, {0xA615,0xA615,0xA615}, /* A614 */ + {0xA616,0xA616,0xA616}, {0xA617,0xA617,0xA617}, /* A616 */ + {0xA618,0xA618,0xA618}, {0xA619,0xA619,0xA619}, /* A618 */ + {0xA61A,0xA61A,0xA61A}, {0xA61B,0xA61B,0xA61B}, /* A61A */ + {0xA61C,0xA61C,0xA61C}, {0xA61D,0xA61D,0xA61D}, /* A61C */ + {0xA61E,0xA61E,0xA61E}, {0xA61F,0xA61F,0xA61F}, /* A61E */ + {0xA620,0xA620,0xA620}, {0xA621,0xA621,0xA621}, /* A620 */ + {0xA622,0xA622,0xA622}, {0xA623,0xA623,0xA623}, /* A622 */ + {0xA624,0xA624,0xA624}, {0xA625,0xA625,0xA625}, /* A624 */ + {0xA626,0xA626,0xA626}, {0xA627,0xA627,0xA627}, /* A626 */ + {0xA628,0xA628,0xA628}, {0xA629,0xA629,0xA629}, /* A628 */ + {0xA62A,0xA62A,0xA62A}, {0xA62B,0xA62B,0xA62B}, /* A62A */ + {0xA62C,0xA62C,0xA62C}, {0xA62D,0xA62D,0xA62D}, /* A62C */ + {0xA62E,0xA62E,0xA62E}, {0xA62F,0xA62F,0xA62F}, /* A62E */ + {0xA630,0xA630,0xA630}, {0xA631,0xA631,0xA631}, /* A630 */ + {0xA632,0xA632,0xA632}, {0xA633,0xA633,0xA633}, /* A632 */ + {0xA634,0xA634,0xA634}, {0xA635,0xA635,0xA635}, /* A634 */ + {0xA636,0xA636,0xA636}, {0xA637,0xA637,0xA637}, /* A636 */ + {0xA638,0xA638,0xA638}, {0xA639,0xA639,0xA639}, /* A638 */ + {0xA63A,0xA63A,0xA63A}, {0xA63B,0xA63B,0xA63B}, /* A63A */ + {0xA63C,0xA63C,0xA63C}, {0xA63D,0xA63D,0xA63D}, /* A63C */ + {0xA63E,0xA63E,0xA63E}, {0xA63F,0xA63F,0xA63F}, /* A63E */ + {0xA640,0xA641,0xA640}, {0xA640,0xA641,0xA640}, /* A640 */ + {0xA642,0xA643,0xA642}, {0xA642,0xA643,0xA642}, /* A642 */ + {0xA644,0xA645,0xA644}, {0xA644,0xA645,0xA644}, /* A644 */ + {0xA646,0xA647,0xA646}, {0xA646,0xA647,0xA646}, /* A646 */ + {0xA648,0xA649,0xA648}, {0xA648,0xA649,0xA648}, /* A648 */ + {0xA64A,0xA64B,0xA64A}, {0xA64A,0xA64B,0xA64A}, /* A64A */ + {0xA64C,0xA64D,0xA64C}, {0xA64C,0xA64D,0xA64C}, /* A64C */ + {0xA64E,0xA64F,0xA64E}, {0xA64E,0xA64F,0xA64E}, /* A64E */ + {0xA650,0xA651,0xA650}, {0xA650,0xA651,0xA650}, /* A650 */ + {0xA652,0xA653,0xA652}, {0xA652,0xA653,0xA652}, /* A652 */ + {0xA654,0xA655,0xA654}, {0xA654,0xA655,0xA654}, /* A654 */ + {0xA656,0xA657,0xA656}, {0xA656,0xA657,0xA656}, /* A656 */ + {0xA658,0xA659,0xA658}, {0xA658,0xA659,0xA658}, /* A658 */ + {0xA65A,0xA65B,0xA65A}, {0xA65A,0xA65B,0xA65A}, /* A65A */ + {0xA65C,0xA65D,0xA65C}, {0xA65C,0xA65D,0xA65C}, /* A65C */ + {0xA65E,0xA65F,0xA65E}, {0xA65E,0xA65F,0xA65E}, /* A65E */ + {0xA660,0xA660,0xA660}, {0xA661,0xA661,0xA661}, /* A660 */ + {0xA662,0xA663,0xA662}, {0xA662,0xA663,0xA662}, /* A662 */ + {0xA664,0xA665,0xA664}, {0xA664,0xA665,0xA664}, /* A664 */ + {0xA666,0xA667,0xA666}, {0xA666,0xA667,0xA666}, /* A666 */ + {0xA668,0xA669,0xA668}, {0xA668,0xA669,0xA668}, /* A668 */ + {0xA66A,0xA66B,0xA66A}, {0xA66A,0xA66B,0xA66A}, /* A66A */ + {0xA66C,0xA66D,0xA66C}, {0xA66C,0xA66D,0xA66C}, /* A66C */ + {0xA66E,0xA66E,0xA66E}, {0xA66F,0xA66F,0xA66F}, /* A66E */ + {0xA670,0xA670,0xA670}, {0xA671,0xA671,0xA671}, /* A670 */ + {0xA672,0xA672,0xA672}, {0xA673,0xA673,0xA673}, /* A672 */ + {0xA674,0xA674,0xA674}, {0xA675,0xA675,0xA675}, /* A674 */ + {0xA676,0xA676,0xA676}, {0xA677,0xA677,0xA677}, /* A676 */ + {0xA678,0xA678,0xA678}, {0xA679,0xA679,0xA679}, /* A678 */ + {0xA67A,0xA67A,0xA67A}, {0xA67B,0xA67B,0xA67B}, /* A67A */ + {0xA67C,0xA67C,0xA67C}, {0xA67D,0xA67D,0xA67D}, /* A67C */ + {0xA67E,0xA67E,0xA67E}, {0xA67F,0xA67F,0xA67F}, /* A67E */ + {0xA680,0xA681,0xA680}, {0xA680,0xA681,0xA680}, /* A680 */ + {0xA682,0xA683,0xA682}, {0xA682,0xA683,0xA682}, /* A682 */ + {0xA684,0xA685,0xA684}, {0xA684,0xA685,0xA684}, /* A684 */ + {0xA686,0xA687,0xA686}, {0xA686,0xA687,0xA686}, /* A686 */ + {0xA688,0xA689,0xA688}, {0xA688,0xA689,0xA688}, /* A688 */ + {0xA68A,0xA68B,0xA68A}, {0xA68A,0xA68B,0xA68A}, /* A68A */ + {0xA68C,0xA68D,0xA68C}, {0xA68C,0xA68D,0xA68C}, /* A68C */ + {0xA68E,0xA68F,0xA68E}, {0xA68E,0xA68F,0xA68E}, /* A68E */ + {0xA690,0xA691,0xA690}, {0xA690,0xA691,0xA690}, /* A690 */ + {0xA692,0xA693,0xA692}, {0xA692,0xA693,0xA692}, /* A692 */ + {0xA694,0xA695,0xA694}, {0xA694,0xA695,0xA694}, /* A694 */ + {0xA696,0xA697,0xA696}, {0xA696,0xA697,0xA696}, /* A696 */ + {0xA698,0xA698,0xA698}, {0xA699,0xA699,0xA699}, /* A698 */ + {0xA69A,0xA69A,0xA69A}, {0xA69B,0xA69B,0xA69B}, /* A69A */ + {0xA69C,0xA69C,0xA69C}, {0xA69D,0xA69D,0xA69D}, /* A69C */ + {0xA69E,0xA69E,0xA69E}, {0xA69F,0xA69F,0xA69F}, /* A69E */ + {0xA6A0,0xA6A0,0xA6A0}, {0xA6A1,0xA6A1,0xA6A1}, /* A6A0 */ + {0xA6A2,0xA6A2,0xA6A2}, {0xA6A3,0xA6A3,0xA6A3}, /* A6A2 */ + {0xA6A4,0xA6A4,0xA6A4}, {0xA6A5,0xA6A5,0xA6A5}, /* A6A4 */ + {0xA6A6,0xA6A6,0xA6A6}, {0xA6A7,0xA6A7,0xA6A7}, /* A6A6 */ + {0xA6A8,0xA6A8,0xA6A8}, {0xA6A9,0xA6A9,0xA6A9}, /* A6A8 */ + {0xA6AA,0xA6AA,0xA6AA}, {0xA6AB,0xA6AB,0xA6AB}, /* A6AA */ + {0xA6AC,0xA6AC,0xA6AC}, {0xA6AD,0xA6AD,0xA6AD}, /* A6AC */ + {0xA6AE,0xA6AE,0xA6AE}, {0xA6AF,0xA6AF,0xA6AF}, /* A6AE */ + {0xA6B0,0xA6B0,0xA6B0}, {0xA6B1,0xA6B1,0xA6B1}, /* A6B0 */ + {0xA6B2,0xA6B2,0xA6B2}, {0xA6B3,0xA6B3,0xA6B3}, /* A6B2 */ + {0xA6B4,0xA6B4,0xA6B4}, {0xA6B5,0xA6B5,0xA6B5}, /* A6B4 */ + {0xA6B6,0xA6B6,0xA6B6}, {0xA6B7,0xA6B7,0xA6B7}, /* A6B6 */ + {0xA6B8,0xA6B8,0xA6B8}, {0xA6B9,0xA6B9,0xA6B9}, /* A6B8 */ + {0xA6BA,0xA6BA,0xA6BA}, {0xA6BB,0xA6BB,0xA6BB}, /* A6BA */ + {0xA6BC,0xA6BC,0xA6BC}, {0xA6BD,0xA6BD,0xA6BD}, /* A6BC */ + {0xA6BE,0xA6BE,0xA6BE}, {0xA6BF,0xA6BF,0xA6BF}, /* A6BE */ + {0xA6C0,0xA6C0,0xA6C0}, {0xA6C1,0xA6C1,0xA6C1}, /* A6C0 */ + {0xA6C2,0xA6C2,0xA6C2}, {0xA6C3,0xA6C3,0xA6C3}, /* A6C2 */ + {0xA6C4,0xA6C4,0xA6C4}, {0xA6C5,0xA6C5,0xA6C5}, /* A6C4 */ + {0xA6C6,0xA6C6,0xA6C6}, {0xA6C7,0xA6C7,0xA6C7}, /* A6C6 */ + {0xA6C8,0xA6C8,0xA6C8}, {0xA6C9,0xA6C9,0xA6C9}, /* A6C8 */ + {0xA6CA,0xA6CA,0xA6CA}, {0xA6CB,0xA6CB,0xA6CB}, /* A6CA */ + {0xA6CC,0xA6CC,0xA6CC}, {0xA6CD,0xA6CD,0xA6CD}, /* A6CC */ + {0xA6CE,0xA6CE,0xA6CE}, {0xA6CF,0xA6CF,0xA6CF}, /* A6CE */ + {0xA6D0,0xA6D0,0xA6D0}, {0xA6D1,0xA6D1,0xA6D1}, /* A6D0 */ + {0xA6D2,0xA6D2,0xA6D2}, {0xA6D3,0xA6D3,0xA6D3}, /* A6D2 */ + {0xA6D4,0xA6D4,0xA6D4}, {0xA6D5,0xA6D5,0xA6D5}, /* A6D4 */ + {0xA6D6,0xA6D6,0xA6D6}, {0xA6D7,0xA6D7,0xA6D7}, /* A6D6 */ + {0xA6D8,0xA6D8,0xA6D8}, {0xA6D9,0xA6D9,0xA6D9}, /* A6D8 */ + {0xA6DA,0xA6DA,0xA6DA}, {0xA6DB,0xA6DB,0xA6DB}, /* A6DA */ + {0xA6DC,0xA6DC,0xA6DC}, {0xA6DD,0xA6DD,0xA6DD}, /* A6DC */ + {0xA6DE,0xA6DE,0xA6DE}, {0xA6DF,0xA6DF,0xA6DF}, /* A6DE */ + {0xA6E0,0xA6E0,0xA6E0}, {0xA6E1,0xA6E1,0xA6E1}, /* A6E0 */ + {0xA6E2,0xA6E2,0xA6E2}, {0xA6E3,0xA6E3,0xA6E3}, /* A6E2 */ + {0xA6E4,0xA6E4,0xA6E4}, {0xA6E5,0xA6E5,0xA6E5}, /* A6E4 */ + {0xA6E6,0xA6E6,0xA6E6}, {0xA6E7,0xA6E7,0xA6E7}, /* A6E6 */ + {0xA6E8,0xA6E8,0xA6E8}, {0xA6E9,0xA6E9,0xA6E9}, /* A6E8 */ + {0xA6EA,0xA6EA,0xA6EA}, {0xA6EB,0xA6EB,0xA6EB}, /* A6EA */ + {0xA6EC,0xA6EC,0xA6EC}, {0xA6ED,0xA6ED,0xA6ED}, /* A6EC */ + {0xA6EE,0xA6EE,0xA6EE}, {0xA6EF,0xA6EF,0xA6EF}, /* A6EE */ + {0xA6F0,0xA6F0,0xA6F0}, {0xA6F1,0xA6F1,0xA6F1}, /* A6F0 */ + {0xA6F2,0xA6F2,0xA6F2}, {0xA6F3,0xA6F3,0xA6F3}, /* A6F2 */ + {0xA6F4,0xA6F4,0xA6F4}, {0xA6F5,0xA6F5,0xA6F5}, /* A6F4 */ + {0xA6F6,0xA6F6,0xA6F6}, {0xA6F7,0xA6F7,0xA6F7}, /* A6F6 */ + {0xA6F8,0xA6F8,0xA6F8}, {0xA6F9,0xA6F9,0xA6F9}, /* A6F8 */ + {0xA6FA,0xA6FA,0xA6FA}, {0xA6FB,0xA6FB,0xA6FB}, /* A6FA */ + {0xA6FC,0xA6FC,0xA6FC}, {0xA6FD,0xA6FD,0xA6FD}, /* A6FC */ + {0xA6FE,0xA6FE,0xA6FE}, {0xA6FF,0xA6FF,0xA6FF} /* A6FE */ +}; + +static const MY_UNICASE_CHARACTER u520pA7[]={ + {0xA700,0xA700,0xA700}, {0xA701,0xA701,0xA701}, /* A700 */ + {0xA702,0xA702,0xA702}, {0xA703,0xA703,0xA703}, /* A702 */ + {0xA704,0xA704,0xA704}, {0xA705,0xA705,0xA705}, /* A704 */ + {0xA706,0xA706,0xA706}, {0xA707,0xA707,0xA707}, /* A706 */ + {0xA708,0xA708,0xA708}, {0xA709,0xA709,0xA709}, /* A708 */ + {0xA70A,0xA70A,0xA70A}, {0xA70B,0xA70B,0xA70B}, /* A70A */ + {0xA70C,0xA70C,0xA70C}, {0xA70D,0xA70D,0xA70D}, /* A70C */ + {0xA70E,0xA70E,0xA70E}, {0xA70F,0xA70F,0xA70F}, /* A70E */ + {0xA710,0xA710,0xA710}, {0xA711,0xA711,0xA711}, /* A710 */ + {0xA712,0xA712,0xA712}, {0xA713,0xA713,0xA713}, /* A712 */ + {0xA714,0xA714,0xA714}, {0xA715,0xA715,0xA715}, /* A714 */ + {0xA716,0xA716,0xA716}, {0xA717,0xA717,0xA717}, /* A716 */ + {0xA718,0xA718,0xA718}, {0xA719,0xA719,0xA719}, /* A718 */ + {0xA71A,0xA71A,0xA71A}, {0xA71B,0xA71B,0xA71B}, /* A71A */ + {0xA71C,0xA71C,0xA71C}, {0xA71D,0xA71D,0xA71D}, /* A71C */ + {0xA71E,0xA71E,0xA71E}, {0xA71F,0xA71F,0xA71F}, /* A71E */ + {0xA720,0xA720,0xA720}, {0xA721,0xA721,0xA721}, /* A720 */ + {0xA722,0xA723,0xA722}, {0xA722,0xA723,0xA722}, /* A722 */ + {0xA724,0xA725,0xA724}, {0xA724,0xA725,0xA724}, /* A724 */ + {0xA726,0xA727,0xA726}, {0xA726,0xA727,0xA726}, /* A726 */ + {0xA728,0xA729,0xA728}, {0xA728,0xA729,0xA728}, /* A728 */ + {0xA72A,0xA72B,0xA72A}, {0xA72A,0xA72B,0xA72A}, /* A72A */ + {0xA72C,0xA72D,0xA72C}, {0xA72C,0xA72D,0xA72C}, /* A72C */ + {0xA72E,0xA72F,0xA72E}, {0xA72E,0xA72F,0xA72E}, /* A72E */ + {0xA730,0xA730,0xA730}, {0xA731,0xA731,0xA731}, /* A730 */ + {0xA732,0xA733,0xA732}, {0xA732,0xA733,0xA732}, /* A732 */ + {0xA734,0xA735,0xA734}, {0xA734,0xA735,0xA734}, /* A734 */ + {0xA736,0xA737,0xA736}, {0xA736,0xA737,0xA736}, /* A736 */ + {0xA738,0xA739,0xA738}, {0xA738,0xA739,0xA738}, /* A738 */ + {0xA73A,0xA73B,0xA73A}, {0xA73A,0xA73B,0xA73A}, /* A73A */ + {0xA73C,0xA73D,0xA73C}, {0xA73C,0xA73D,0xA73C}, /* A73C */ + {0xA73E,0xA73F,0xA73E}, {0xA73E,0xA73F,0xA73E}, /* A73E */ + {0xA740,0xA741,0xA740}, {0xA740,0xA741,0xA740}, /* A740 */ + {0xA742,0xA743,0xA742}, {0xA742,0xA743,0xA742}, /* A742 */ + {0xA744,0xA745,0xA744}, {0xA744,0xA745,0xA744}, /* A744 */ + {0xA746,0xA747,0xA746}, {0xA746,0xA747,0xA746}, /* A746 */ + {0xA748,0xA749,0xA748}, {0xA748,0xA749,0xA748}, /* A748 */ + {0xA74A,0xA74B,0xA74A}, {0xA74A,0xA74B,0xA74A}, /* A74A */ + {0xA74C,0xA74D,0xA74C}, {0xA74C,0xA74D,0xA74C}, /* A74C */ + {0xA74E,0xA74F,0xA74E}, {0xA74E,0xA74F,0xA74E}, /* A74E */ + {0xA750,0xA751,0xA750}, {0xA750,0xA751,0xA750}, /* A750 */ + {0xA752,0xA753,0xA752}, {0xA752,0xA753,0xA752}, /* A752 */ + {0xA754,0xA755,0xA754}, {0xA754,0xA755,0xA754}, /* A754 */ + {0xA756,0xA757,0xA756}, {0xA756,0xA757,0xA756}, /* A756 */ + {0xA758,0xA759,0xA758}, {0xA758,0xA759,0xA758}, /* A758 */ + {0xA75A,0xA75B,0xA75A}, {0xA75A,0xA75B,0xA75A}, /* A75A */ + {0xA75C,0xA75D,0xA75C}, {0xA75C,0xA75D,0xA75C}, /* A75C */ + {0xA75E,0xA75F,0xA75E}, {0xA75E,0xA75F,0xA75E}, /* A75E */ + {0xA760,0xA761,0xA760}, {0xA760,0xA761,0xA760}, /* A760 */ + {0xA762,0xA763,0xA762}, {0xA762,0xA763,0xA762}, /* A762 */ + {0xA764,0xA765,0xA764}, {0xA764,0xA765,0xA764}, /* A764 */ + {0xA766,0xA767,0xA766}, {0xA766,0xA767,0xA766}, /* A766 */ + {0xA768,0xA769,0xA768}, {0xA768,0xA769,0xA768}, /* A768 */ + {0xA76A,0xA76B,0xA76A}, {0xA76A,0xA76B,0xA76A}, /* A76A */ + {0xA76C,0xA76D,0xA76C}, {0xA76C,0xA76D,0xA76C}, /* A76C */ + {0xA76E,0xA76F,0xA76E}, {0xA76E,0xA76F,0xA76E}, /* A76E */ + {0xA770,0xA770,0xA770}, {0xA771,0xA771,0xA771}, /* A770 */ + {0xA772,0xA772,0xA772}, {0xA773,0xA773,0xA773}, /* A772 */ + {0xA774,0xA774,0xA774}, {0xA775,0xA775,0xA775}, /* A774 */ + {0xA776,0xA776,0xA776}, {0xA777,0xA777,0xA777}, /* A776 */ + {0xA778,0xA778,0xA778}, {0xA779,0xA77A,0xA779}, /* A778 */ + {0xA779,0xA77A,0xA779}, {0xA77B,0xA77C,0xA77B}, /* A77A */ + {0xA77B,0xA77C,0xA77B}, {0xA77D,0x1D79,0xA77D}, /* A77C */ + {0xA77E,0xA77F,0xA77E}, {0xA77E,0xA77F,0xA77E}, /* A77E */ + {0xA780,0xA781,0xA780}, {0xA780,0xA781,0xA780}, /* A780 */ + {0xA782,0xA783,0xA782}, {0xA782,0xA783,0xA782}, /* A782 */ + {0xA784,0xA785,0xA784}, {0xA784,0xA785,0xA784}, /* A784 */ + {0xA786,0xA787,0xA786}, {0xA786,0xA787,0xA786}, /* A786 */ + {0xA788,0xA788,0xA788}, {0xA789,0xA789,0xA789}, /* A788 */ + {0xA78A,0xA78A,0xA78A}, {0xA78B,0xA78C,0xA78B}, /* A78A */ + {0xA78B,0xA78C,0xA78B}, {0xA78D,0xA78D,0xA78D}, /* A78C */ + {0xA78E,0xA78E,0xA78E}, {0xA78F,0xA78F,0xA78F}, /* A78E */ + {0xA790,0xA790,0xA790}, {0xA791,0xA791,0xA791}, /* A790 */ + {0xA792,0xA792,0xA792}, {0xA793,0xA793,0xA793}, /* A792 */ + {0xA794,0xA794,0xA794}, {0xA795,0xA795,0xA795}, /* A794 */ + {0xA796,0xA796,0xA796}, {0xA797,0xA797,0xA797}, /* A796 */ + {0xA798,0xA798,0xA798}, {0xA799,0xA799,0xA799}, /* A798 */ + {0xA79A,0xA79A,0xA79A}, {0xA79B,0xA79B,0xA79B}, /* A79A */ + {0xA79C,0xA79C,0xA79C}, {0xA79D,0xA79D,0xA79D}, /* A79C */ + {0xA79E,0xA79E,0xA79E}, {0xA79F,0xA79F,0xA79F}, /* A79E */ + {0xA7A0,0xA7A0,0xA7A0}, {0xA7A1,0xA7A1,0xA7A1}, /* A7A0 */ + {0xA7A2,0xA7A2,0xA7A2}, {0xA7A3,0xA7A3,0xA7A3}, /* A7A2 */ + {0xA7A4,0xA7A4,0xA7A4}, {0xA7A5,0xA7A5,0xA7A5}, /* A7A4 */ + {0xA7A6,0xA7A6,0xA7A6}, {0xA7A7,0xA7A7,0xA7A7}, /* A7A6 */ + {0xA7A8,0xA7A8,0xA7A8}, {0xA7A9,0xA7A9,0xA7A9}, /* A7A8 */ + {0xA7AA,0xA7AA,0xA7AA}, {0xA7AB,0xA7AB,0xA7AB}, /* A7AA */ + {0xA7AC,0xA7AC,0xA7AC}, {0xA7AD,0xA7AD,0xA7AD}, /* A7AC */ + {0xA7AE,0xA7AE,0xA7AE}, {0xA7AF,0xA7AF,0xA7AF}, /* A7AE */ + {0xA7B0,0xA7B0,0xA7B0}, {0xA7B1,0xA7B1,0xA7B1}, /* A7B0 */ + {0xA7B2,0xA7B2,0xA7B2}, {0xA7B3,0xA7B3,0xA7B3}, /* A7B2 */ + {0xA7B4,0xA7B4,0xA7B4}, {0xA7B5,0xA7B5,0xA7B5}, /* A7B4 */ + {0xA7B6,0xA7B6,0xA7B6}, {0xA7B7,0xA7B7,0xA7B7}, /* A7B6 */ + {0xA7B8,0xA7B8,0xA7B8}, {0xA7B9,0xA7B9,0xA7B9}, /* A7B8 */ + {0xA7BA,0xA7BA,0xA7BA}, {0xA7BB,0xA7BB,0xA7BB}, /* A7BA */ + {0xA7BC,0xA7BC,0xA7BC}, {0xA7BD,0xA7BD,0xA7BD}, /* A7BC */ + {0xA7BE,0xA7BE,0xA7BE}, {0xA7BF,0xA7BF,0xA7BF}, /* A7BE */ + {0xA7C0,0xA7C0,0xA7C0}, {0xA7C1,0xA7C1,0xA7C1}, /* A7C0 */ + {0xA7C2,0xA7C2,0xA7C2}, {0xA7C3,0xA7C3,0xA7C3}, /* A7C2 */ + {0xA7C4,0xA7C4,0xA7C4}, {0xA7C5,0xA7C5,0xA7C5}, /* A7C4 */ + {0xA7C6,0xA7C6,0xA7C6}, {0xA7C7,0xA7C7,0xA7C7}, /* A7C6 */ + {0xA7C8,0xA7C8,0xA7C8}, {0xA7C9,0xA7C9,0xA7C9}, /* A7C8 */ + {0xA7CA,0xA7CA,0xA7CA}, {0xA7CB,0xA7CB,0xA7CB}, /* A7CA */ + {0xA7CC,0xA7CC,0xA7CC}, {0xA7CD,0xA7CD,0xA7CD}, /* A7CC */ + {0xA7CE,0xA7CE,0xA7CE}, {0xA7CF,0xA7CF,0xA7CF}, /* A7CE */ + {0xA7D0,0xA7D0,0xA7D0}, {0xA7D1,0xA7D1,0xA7D1}, /* A7D0 */ + {0xA7D2,0xA7D2,0xA7D2}, {0xA7D3,0xA7D3,0xA7D3}, /* A7D2 */ + {0xA7D4,0xA7D4,0xA7D4}, {0xA7D5,0xA7D5,0xA7D5}, /* A7D4 */ + {0xA7D6,0xA7D6,0xA7D6}, {0xA7D7,0xA7D7,0xA7D7}, /* A7D6 */ + {0xA7D8,0xA7D8,0xA7D8}, {0xA7D9,0xA7D9,0xA7D9}, /* A7D8 */ + {0xA7DA,0xA7DA,0xA7DA}, {0xA7DB,0xA7DB,0xA7DB}, /* A7DA */ + {0xA7DC,0xA7DC,0xA7DC}, {0xA7DD,0xA7DD,0xA7DD}, /* A7DC */ + {0xA7DE,0xA7DE,0xA7DE}, {0xA7DF,0xA7DF,0xA7DF}, /* A7DE */ + {0xA7E0,0xA7E0,0xA7E0}, {0xA7E1,0xA7E1,0xA7E1}, /* A7E0 */ + {0xA7E2,0xA7E2,0xA7E2}, {0xA7E3,0xA7E3,0xA7E3}, /* A7E2 */ + {0xA7E4,0xA7E4,0xA7E4}, {0xA7E5,0xA7E5,0xA7E5}, /* A7E4 */ + {0xA7E6,0xA7E6,0xA7E6}, {0xA7E7,0xA7E7,0xA7E7}, /* A7E6 */ + {0xA7E8,0xA7E8,0xA7E8}, {0xA7E9,0xA7E9,0xA7E9}, /* A7E8 */ + {0xA7EA,0xA7EA,0xA7EA}, {0xA7EB,0xA7EB,0xA7EB}, /* A7EA */ + {0xA7EC,0xA7EC,0xA7EC}, {0xA7ED,0xA7ED,0xA7ED}, /* A7EC */ + {0xA7EE,0xA7EE,0xA7EE}, {0xA7EF,0xA7EF,0xA7EF}, /* A7EE */ + {0xA7F0,0xA7F0,0xA7F0}, {0xA7F1,0xA7F1,0xA7F1}, /* A7F0 */ + {0xA7F2,0xA7F2,0xA7F2}, {0xA7F3,0xA7F3,0xA7F3}, /* A7F2 */ + {0xA7F4,0xA7F4,0xA7F4}, {0xA7F5,0xA7F5,0xA7F5}, /* A7F4 */ + {0xA7F6,0xA7F6,0xA7F6}, {0xA7F7,0xA7F7,0xA7F7}, /* A7F6 */ + {0xA7F8,0xA7F8,0xA7F8}, {0xA7F9,0xA7F9,0xA7F9}, /* A7F8 */ + {0xA7FA,0xA7FA,0xA7FA}, {0xA7FB,0xA7FB,0xA7FB}, /* A7FA */ + {0xA7FC,0xA7FC,0xA7FC}, {0xA7FD,0xA7FD,0xA7FD}, /* A7FC */ + {0xA7FE,0xA7FE,0xA7FE}, {0xA7FF,0xA7FF,0xA7FF} /* A7FE */ +}; + +static const MY_UNICASE_CHARACTER u520pFF[]={ + {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, /* FF00 */ + {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, /* FF02 */ + {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, /* FF04 */ + {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07}, /* FF06 */ + {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09}, /* FF08 */ + {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B}, /* FF0A */ + {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D}, /* FF0C */ + {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F}, /* FF0E */ + {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11}, /* FF10 */ + {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13}, /* FF12 */ + {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15}, /* FF14 */ + {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17}, /* FF16 */ + {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19}, /* FF18 */ + {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B}, /* FF1A */ + {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D}, /* FF1C */ + {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F}, /* FF1E */ + {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21}, /* FF20 */ + {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF22 */ + {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF24 */ + {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF26 */ + {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF28 */ + {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF2A */ + {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF2C */ + {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF2E */ + {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF30 */ + {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF32 */ + {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF34 */ + {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF36 */ + {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF38 */ + {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B}, /* FF3A */ + {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D}, /* FF3C */ + {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F}, /* FF3E */ + {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21}, /* FF40 */ + {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF42 */ + {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF44 */ + {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF46 */ + {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF48 */ + {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF4A */ + {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF4C */ + {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF4E */ + {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF50 */ + {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF52 */ + {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF54 */ + {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF56 */ + {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF58 */ + {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B}, /* FF5A */ + {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D}, /* FF5C */ + {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F}, /* FF5E */ + {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61}, /* FF60 */ + {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63}, /* FF62 */ + {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65}, /* FF64 */ + {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67}, /* FF66 */ + {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69}, /* FF68 */ + {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B}, /* FF6A */ + {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D}, /* FF6C */ + {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F}, /* FF6E */ + {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71}, /* FF70 */ + {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73}, /* FF72 */ + {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75}, /* FF74 */ + {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77}, /* FF76 */ + {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79}, /* FF78 */ + {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B}, /* FF7A */ + {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D}, /* FF7C */ + {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F}, /* FF7E */ + {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81}, /* FF80 */ + {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83}, /* FF82 */ + {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85}, /* FF84 */ + {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87}, /* FF86 */ + {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89}, /* FF88 */ + {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B}, /* FF8A */ + {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D}, /* FF8C */ + {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F}, /* FF8E */ + {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91}, /* FF90 */ + {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93}, /* FF92 */ + {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95}, /* FF94 */ + {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97}, /* FF96 */ + {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99}, /* FF98 */ + {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B}, /* FF9A */ + {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D}, /* FF9C */ + {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F}, /* FF9E */ + {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1}, /* FFA0 */ + {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3}, /* FFA2 */ + {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5}, /* FFA4 */ + {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7}, /* FFA6 */ + {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9}, /* FFA8 */ + {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB}, /* FFAA */ + {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD}, /* FFAC */ + {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF}, /* FFAE */ + {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1}, /* FFB0 */ + {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3}, /* FFB2 */ + {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5}, /* FFB4 */ + {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7}, /* FFB6 */ + {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9}, /* FFB8 */ + {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB}, /* FFBA */ + {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD}, /* FFBC */ + {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF}, /* FFBE */ + {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1}, /* FFC0 */ + {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3}, /* FFC2 */ + {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5}, /* FFC4 */ + {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7}, /* FFC6 */ + {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9}, /* FFC8 */ + {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB}, /* FFCA */ + {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD}, /* FFCC */ + {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF}, /* FFCE */ + {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1}, /* FFD0 */ + {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3}, /* FFD2 */ + {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5}, /* FFD4 */ + {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7}, /* FFD6 */ + {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9}, /* FFD8 */ + {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB}, /* FFDA */ + {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD}, /* FFDC */ + {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF}, /* FFDE */ + {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1}, /* FFE0 */ + {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3}, /* FFE2 */ + {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5}, /* FFE4 */ + {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7}, /* FFE6 */ + {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9}, /* FFE8 */ + {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB}, /* FFEA */ + {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED}, /* FFEC */ + {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF}, /* FFEE */ + {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1}, /* FFF0 */ + {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3}, /* FFF2 */ + {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5}, /* FFF4 */ + {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7}, /* FFF6 */ + {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9}, /* FFF8 */ + {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB}, /* FFFA */ + {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD}, /* FFFC */ + {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} /* FFFE */ +}; + +static const MY_UNICASE_CHARACTER u520p104[]={ + {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10400 */ + {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 10402 */ + {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 10404 */ + {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 10406 */ + {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10408 */ + {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 1040A */ + {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 1040C */ + {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 1040E */ + {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10410 */ + {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 10412 */ + {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 10414 */ + {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 10416 */ + {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10418 */ + {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 1041A */ + {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 1041C */ + {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 1041E */ + {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10420 */ + {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 10422 */ + {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 10424 */ + {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 10426 */ + {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10428 */ + {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 1042A */ + {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 1042C */ + {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 1042E */ + {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10430 */ + {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 10432 */ + {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 10434 */ + {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 10436 */ + {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10438 */ + {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 1043A */ + {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 1043C */ + {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 1043E */ + {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10440 */ + {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 10442 */ + {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 10444 */ + {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 10446 */ + {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10448 */ + {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 1044A */ + {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 1044C */ + {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 1044E */ + {0x10450,0x10450,0x10450}, {0x10451,0x10451,0x10451}, /* 10450 */ + {0x10452,0x10452,0x10452}, {0x10453,0x10453,0x10453}, /* 10452 */ + {0x10454,0x10454,0x10454}, {0x10455,0x10455,0x10455}, /* 10454 */ + {0x10456,0x10456,0x10456}, {0x10457,0x10457,0x10457}, /* 10456 */ + {0x10458,0x10458,0x10458}, {0x10459,0x10459,0x10459}, /* 10458 */ + {0x1045A,0x1045A,0x1045A}, {0x1045B,0x1045B,0x1045B}, /* 1045A */ + {0x1045C,0x1045C,0x1045C}, {0x1045D,0x1045D,0x1045D}, /* 1045C */ + {0x1045E,0x1045E,0x1045E}, {0x1045F,0x1045F,0x1045F}, /* 1045E */ + {0x10460,0x10460,0x10460}, {0x10461,0x10461,0x10461}, /* 10460 */ + {0x10462,0x10462,0x10462}, {0x10463,0x10463,0x10463}, /* 10462 */ + {0x10464,0x10464,0x10464}, {0x10465,0x10465,0x10465}, /* 10464 */ + {0x10466,0x10466,0x10466}, {0x10467,0x10467,0x10467}, /* 10466 */ + {0x10468,0x10468,0x10468}, {0x10469,0x10469,0x10469}, /* 10468 */ + {0x1046A,0x1046A,0x1046A}, {0x1046B,0x1046B,0x1046B}, /* 1046A */ + {0x1046C,0x1046C,0x1046C}, {0x1046D,0x1046D,0x1046D}, /* 1046C */ + {0x1046E,0x1046E,0x1046E}, {0x1046F,0x1046F,0x1046F}, /* 1046E */ + {0x10470,0x10470,0x10470}, {0x10471,0x10471,0x10471}, /* 10470 */ + {0x10472,0x10472,0x10472}, {0x10473,0x10473,0x10473}, /* 10472 */ + {0x10474,0x10474,0x10474}, {0x10475,0x10475,0x10475}, /* 10474 */ + {0x10476,0x10476,0x10476}, {0x10477,0x10477,0x10477}, /* 10476 */ + {0x10478,0x10478,0x10478}, {0x10479,0x10479,0x10479}, /* 10478 */ + {0x1047A,0x1047A,0x1047A}, {0x1047B,0x1047B,0x1047B}, /* 1047A */ + {0x1047C,0x1047C,0x1047C}, {0x1047D,0x1047D,0x1047D}, /* 1047C */ + {0x1047E,0x1047E,0x1047E}, {0x1047F,0x1047F,0x1047F}, /* 1047E */ + {0x10480,0x10480,0x10480}, {0x10481,0x10481,0x10481}, /* 10480 */ + {0x10482,0x10482,0x10482}, {0x10483,0x10483,0x10483}, /* 10482 */ + {0x10484,0x10484,0x10484}, {0x10485,0x10485,0x10485}, /* 10484 */ + {0x10486,0x10486,0x10486}, {0x10487,0x10487,0x10487}, /* 10486 */ + {0x10488,0x10488,0x10488}, {0x10489,0x10489,0x10489}, /* 10488 */ + {0x1048A,0x1048A,0x1048A}, {0x1048B,0x1048B,0x1048B}, /* 1048A */ + {0x1048C,0x1048C,0x1048C}, {0x1048D,0x1048D,0x1048D}, /* 1048C */ + {0x1048E,0x1048E,0x1048E}, {0x1048F,0x1048F,0x1048F}, /* 1048E */ + {0x10490,0x10490,0x10490}, {0x10491,0x10491,0x10491}, /* 10490 */ + {0x10492,0x10492,0x10492}, {0x10493,0x10493,0x10493}, /* 10492 */ + {0x10494,0x10494,0x10494}, {0x10495,0x10495,0x10495}, /* 10494 */ + {0x10496,0x10496,0x10496}, {0x10497,0x10497,0x10497}, /* 10496 */ + {0x10498,0x10498,0x10498}, {0x10499,0x10499,0x10499}, /* 10498 */ + {0x1049A,0x1049A,0x1049A}, {0x1049B,0x1049B,0x1049B}, /* 1049A */ + {0x1049C,0x1049C,0x1049C}, {0x1049D,0x1049D,0x1049D}, /* 1049C */ + {0x1049E,0x1049E,0x1049E}, {0x1049F,0x1049F,0x1049F}, /* 1049E */ + {0x104A0,0x104A0,0x104A0}, {0x104A1,0x104A1,0x104A1}, /* 104A0 */ + {0x104A2,0x104A2,0x104A2}, {0x104A3,0x104A3,0x104A3}, /* 104A2 */ + {0x104A4,0x104A4,0x104A4}, {0x104A5,0x104A5,0x104A5}, /* 104A4 */ + {0x104A6,0x104A6,0x104A6}, {0x104A7,0x104A7,0x104A7}, /* 104A6 */ + {0x104A8,0x104A8,0x104A8}, {0x104A9,0x104A9,0x104A9}, /* 104A8 */ + {0x104AA,0x104AA,0x104AA}, {0x104AB,0x104AB,0x104AB}, /* 104AA */ + {0x104AC,0x104AC,0x104AC}, {0x104AD,0x104AD,0x104AD}, /* 104AC */ + {0x104AE,0x104AE,0x104AE}, {0x104AF,0x104AF,0x104AF}, /* 104AE */ + {0x104B0,0x104B0,0x104B0}, {0x104B1,0x104B1,0x104B1}, /* 104B0 */ + {0x104B2,0x104B2,0x104B2}, {0x104B3,0x104B3,0x104B3}, /* 104B2 */ + {0x104B4,0x104B4,0x104B4}, {0x104B5,0x104B5,0x104B5}, /* 104B4 */ + {0x104B6,0x104B6,0x104B6}, {0x104B7,0x104B7,0x104B7}, /* 104B6 */ + {0x104B8,0x104B8,0x104B8}, {0x104B9,0x104B9,0x104B9}, /* 104B8 */ + {0x104BA,0x104BA,0x104BA}, {0x104BB,0x104BB,0x104BB}, /* 104BA */ + {0x104BC,0x104BC,0x104BC}, {0x104BD,0x104BD,0x104BD}, /* 104BC */ + {0x104BE,0x104BE,0x104BE}, {0x104BF,0x104BF,0x104BF}, /* 104BE */ + {0x104C0,0x104C0,0x104C0}, {0x104C1,0x104C1,0x104C1}, /* 104C0 */ + {0x104C2,0x104C2,0x104C2}, {0x104C3,0x104C3,0x104C3}, /* 104C2 */ + {0x104C4,0x104C4,0x104C4}, {0x104C5,0x104C5,0x104C5}, /* 104C4 */ + {0x104C6,0x104C6,0x104C6}, {0x104C7,0x104C7,0x104C7}, /* 104C6 */ + {0x104C8,0x104C8,0x104C8}, {0x104C9,0x104C9,0x104C9}, /* 104C8 */ + {0x104CA,0x104CA,0x104CA}, {0x104CB,0x104CB,0x104CB}, /* 104CA */ + {0x104CC,0x104CC,0x104CC}, {0x104CD,0x104CD,0x104CD}, /* 104CC */ + {0x104CE,0x104CE,0x104CE}, {0x104CF,0x104CF,0x104CF}, /* 104CE */ + {0x104D0,0x104D0,0x104D0}, {0x104D1,0x104D1,0x104D1}, /* 104D0 */ + {0x104D2,0x104D2,0x104D2}, {0x104D3,0x104D3,0x104D3}, /* 104D2 */ + {0x104D4,0x104D4,0x104D4}, {0x104D5,0x104D5,0x104D5}, /* 104D4 */ + {0x104D6,0x104D6,0x104D6}, {0x104D7,0x104D7,0x104D7}, /* 104D6 */ + {0x104D8,0x104D8,0x104D8}, {0x104D9,0x104D9,0x104D9}, /* 104D8 */ + {0x104DA,0x104DA,0x104DA}, {0x104DB,0x104DB,0x104DB}, /* 104DA */ + {0x104DC,0x104DC,0x104DC}, {0x104DD,0x104DD,0x104DD}, /* 104DC */ + {0x104DE,0x104DE,0x104DE}, {0x104DF,0x104DF,0x104DF}, /* 104DE */ + {0x104E0,0x104E0,0x104E0}, {0x104E1,0x104E1,0x104E1}, /* 104E0 */ + {0x104E2,0x104E2,0x104E2}, {0x104E3,0x104E3,0x104E3}, /* 104E2 */ + {0x104E4,0x104E4,0x104E4}, {0x104E5,0x104E5,0x104E5}, /* 104E4 */ + {0x104E6,0x104E6,0x104E6}, {0x104E7,0x104E7,0x104E7}, /* 104E6 */ + {0x104E8,0x104E8,0x104E8}, {0x104E9,0x104E9,0x104E9}, /* 104E8 */ + {0x104EA,0x104EA,0x104EA}, {0x104EB,0x104EB,0x104EB}, /* 104EA */ + {0x104EC,0x104EC,0x104EC}, {0x104ED,0x104ED,0x104ED}, /* 104EC */ + {0x104EE,0x104EE,0x104EE}, {0x104EF,0x104EF,0x104EF}, /* 104EE */ + {0x104F0,0x104F0,0x104F0}, {0x104F1,0x104F1,0x104F1}, /* 104F0 */ + {0x104F2,0x104F2,0x104F2}, {0x104F3,0x104F3,0x104F3}, /* 104F2 */ + {0x104F4,0x104F4,0x104F4}, {0x104F5,0x104F5,0x104F5}, /* 104F4 */ + {0x104F6,0x104F6,0x104F6}, {0x104F7,0x104F7,0x104F7}, /* 104F6 */ + {0x104F8,0x104F8,0x104F8}, {0x104F9,0x104F9,0x104F9}, /* 104F8 */ + {0x104FA,0x104FA,0x104FA}, {0x104FB,0x104FB,0x104FB}, /* 104FA */ + {0x104FC,0x104FC,0x104FC}, {0x104FD,0x104FD,0x104FD}, /* 104FC */ + {0x104FE,0x104FE,0x104FE}, {0x104FF,0x104FF,0x104FF} /* 104FE */ +}; + + +const MY_UNICASE_CHARACTER *my_unicase_pages_unicode520[4352]= +{ + u520p00, u520p01, u520p02, u520p03, u520p04, u520p05, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + u520p10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, u520p1D, u520p1E, u520p1F, + NULL, u520p21, NULL, NULL, u520p24, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, u520p2C, u520p2D, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, u520pA6, u520pA7, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, u520pFF, + NULL, NULL, NULL, NULL,u520p104, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, +}; + + +MY_UNICASE_INFO my_unicase_unicode520= +{ + 0x10FFFF, + my_unicase_pages_unicode520 +}; + + +static inline void +my_tosort_unicode(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc, uint flags) +{ + if (*wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[*wc >> 8])) + *wc= (flags & MY_CS_LOWER_SORT) ? + page[*wc & 0xFF].tolower : + page[*wc & 0xFF].sort; + } + else + { + *wc= MY_CS_REPLACEMENT_CHARACTER; + } +} + + +/* +** Compare string against string with wildcard +** This function is used in UTF8 and UCS2 +** +** 0 if matched +** -1 if not matched with wildcard +** 1 if matched with wildcard +*/ + +static +int +my_wildcmp_unicode_impl(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, + const MY_UNICASE_INFO *weights, int recurse_level) +{ + int result= -1; /* Not found, using wildcards */ + my_wc_t s_wc, w_wc; + int scan; + int (*mb_wc)(const struct charset_info_st *, my_wc_t *, + const uchar *, const uchar *); + mb_wc= cs->cset->mb_wc; + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; + while (wildstr != wildend) + { + while (1) + { + my_bool escaped= 0; + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + + if (w_wc == (my_wc_t) w_many) + { + result= 1; /* Found an anchor char */ + break; + } + + wildstr+= scan; + if (w_wc == (my_wc_t) escape && wildstr < wildend) + { + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + wildstr+= scan; + escaped= 1; + } + + if ((scan= mb_wc(cs, &s_wc, (const uchar*)str, + (const uchar*)str_end)) <= 0) + return 1; + str+= scan; + + if (!escaped && w_wc == (my_wc_t) w_one) + { + result= 1; /* Found an anchor char */ + } + else + { + if (weights) + { + my_tosort_unicode(weights, &s_wc, cs->state); + my_tosort_unicode(weights, &w_wc, cs->state); + } + if (s_wc != w_wc) + return 1; /* No match */ + } + if (wildstr == wildend) + return (str != str_end); /* Match if both are at end */ + } + + + if (w_wc == (my_wc_t) w_many) + { /* Found w_many */ + + /* Remove any '%' and '_' from the wild search string */ + for ( ; wildstr != wildend ; ) + { + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <= 0) + return 1; + + if (w_wc == (my_wc_t)w_many) + { + wildstr+= scan; + continue; + } + + if (w_wc == (my_wc_t)w_one) + { + wildstr+= scan; + if ((scan= mb_wc(cs, &s_wc, (const uchar*)str, + (const uchar*)str_end)) <=0) + return 1; + str+= scan; + continue; + } + break; /* Not a wild character */ + } + + if (wildstr == wildend) + return 0; /* Ok if w_many is last */ + + if (str == str_end) + return -1; + + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <=0) + return 1; + wildstr+= scan; + + if (w_wc == (my_wc_t)escape) + { + if (wildstr < wildend) + { + if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr, + (const uchar*)wildend)) <=0) + return 1; + wildstr+= scan; + } + } + + while (1) + { + /* Skip until the first character from wildstr is found */ + while (str != str_end) + { + if ((scan= mb_wc(cs, &s_wc, (const uchar*)str, + (const uchar*)str_end)) <=0) + return 1; + if (weights) + { + my_tosort_unicode(weights, &s_wc, cs->state); + my_tosort_unicode(weights, &w_wc, cs->state); + } + + if (s_wc == w_wc) + break; + str+= scan; + } + if (str == str_end) + return -1; + + str+= scan; + result= my_wildcmp_unicode_impl(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, + weights, recurse_level + 1); + if (result <= 0) + return result; + } + } + } + return (str != str_end ? 1 : 0); +} + +int +my_wildcmp_unicode(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, + const MY_UNICASE_INFO *weights) +{ + return my_wildcmp_unicode_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, weights, 1); +} + + +/** + Pad buffer with weights for space characters. + + @details + This functions fills the buffer pointed by "str" + with weights of space character. Not more than + "nweights" weights are put. If at some iteration + step only a half of weight can fit + (which is possible if buffer length is an odd number) + then a half of this weight is put - this gives + a little bit better ORDER BY result for long strings. + + @str Buffer + @strend End of buffer + @nweights Number of weights + + @return Result length +*/ + +static size_t +my_strxfrm_pad_nweights_unicode(uchar *str, + const uchar *const strend, + size_t nweights) +{ + const uchar *const str0 = str; + const uchar *const weightend = str + (nweights*2); + const uchar *const end = (weightend < strend) ? weightend : strend; + DBUG_ASSERT(str && str <= strend); + + while (str < end-3) + { + *str++= 0x00; + *str++= 0x20; + *str++= 0x00; + *str++= 0x20; + } + if (str < end-1) + { + *str++= 0x00; + *str++= 0x20; + } + if (str < end) + { + *str++= 0x00; + } + return str - str0; +} + + +/** + Pad buffer with weights for space characters. + + @details + This functions fills the buffer pointed by "str" + with weights of space character. Putting half of weight + (when buffer length is an odd number) is OK. + + @str Buffer + @strend End of buffer + + @return Result length +*/ + +static size_t +my_strxfrm_pad_unicode(uchar *str, const uchar *const strend) +{ + const uchar *const str0 = str; + DBUG_ASSERT(str && str <= strend); + + while (str < strend-3) + { + *str++= 0x00; + *str++= 0x20; + *str++= 0x00; + *str++= 0x20; + } + if (str < strend-1) + { + *str++= 0x00; + *str++= 0x20; + } + if (str < strend) + { + *str++= 0x00; + } + return str - str0; +} + + +/* + Store sorting weights using 2 bytes per character. + + This function is shared between + - utf8mb3_general_ci, utf8_bin, ucs2_general_ci, ucs2_bin + which support BMP only (U+0000..U+FFFF). + - utf8mb4_general_ci, utf16_general_ci, utf32_general_ci, + which map all supplementary characters to weight 0xFFFD. +*/ +size_t +my_strnxfrm_unicode(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + my_wc_t wc= 0; + int res; + uchar *const dst0= dst; + const uchar *const de= dst + dstlen; + const uchar *const se= src + srclen; + const MY_UNICASE_INFO *uni_plane= (cs->state & MY_CS_BINSORT) ? + NULL : cs->caseinfo; + DBUG_ASSERT(src); + + for (; dst < de && nweights; nweights--) + { + if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0) + break; + src+= res; + + if (uni_plane) + my_tosort_unicode(uni_plane, &wc, cs->state); + + *dst++= (uchar) (wc >> 8); + if (dst < de) + *dst++= (uchar) (wc & 0xFF); + } + + if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE)) + dst+= my_strxfrm_pad_nweights_unicode(dst, de, nweights); + + my_strxfrm_desc_and_reverse(dst0, dst, flags, 0); + + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de) + dst+= my_strxfrm_pad_unicode(dst, de); + return dst - dst0; +} + + +/* + Store sorting weights using 3 bytes per character. + This function is shared between utf8mb4_bin, utf16_bin, utf32_bin. +*/ +size_t +my_strnxfrm_unicode_full_bin(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) +{ + my_wc_t wc= 0; + uchar *const dst0= dst; + const uchar *const de= dst + dstlen; + const uchar *const se= src + srclen; + + DBUG_ASSERT(src); + DBUG_ASSERT(cs->state & MY_CS_BINSORT); + + for ( ; dst < de && nweights; nweights--) + { + int res; + if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0) + break; + src+= res; + *dst++= (uchar) (wc >> 16); + if (dst < de) + { + *dst++= (uchar) ((wc >> 8) & 0xFF); + if (dst < de) + *dst++= (uchar) (wc & 0xFF); + } + } + + if (flags & MY_STRXFRM_PAD_WITH_SPACE) + { + const uchar *const weightend = dst + (nweights*3); + const uchar *const end = (weightend < de) ? weightend : de; + + while (dst < end-2) + { + *dst++= 0x00; + *dst++= 0x00; + *dst++= 0x20; + nweights--; + } + if (dst < de && nweights > 0) + { + *dst++= 0x00; + if (dst < de) + { + *dst++= 0x00; + if (dst < de) + *dst++= 0x20; + } + } + } + + my_strxfrm_desc_and_reverse(dst0, dst, flags, 0); + + if (flags & MY_STRXFRM_PAD_TO_MAXLEN) + { + while (dst < de-2) + { + *dst++= 0x00; + *dst++= 0x00; + *dst++= 0x20; + } + if (dst < de) + { + *dst++= 0x00; + if (dst < de) + { + *dst++= 0x00; + if (dst < de) + *dst++= 0x20; + } + } + } + return dst - dst0; +} + + +size_t +my_strnxfrmlen_unicode_full_bin(const CHARSET_INFO *cs, size_t len) +{ + return ((len + 3) / cs->mbmaxlen) * 3; +} + + +#ifdef HAVE_CHARSET_utf8 + +/* + We consider bytes with code more than 127 as a letter. + This garantees that word boundaries work fine with regular + expressions. Note, there is no need to mark byte 255 as a + letter, it is illegal byte in UTF8. +*/ +static const uchar ctype_utf8[] = { + 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 +}; + +/* The below are taken from usa7 implementation */ + +static const uchar to_lower_utf8[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + +static const uchar to_upper_utf8[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + +static inline int bincmp(const uchar *s, const uchar *se, + const uchar *t, const uchar *te) +{ + int slen= (int) (se-s), tlen= (int) (te-t); + int len= MY_MIN(slen,tlen); + int cmp= memcmp(s,t,len); + return cmp ? cmp : slen-tlen; +} + + +static int my_utf8_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t * pwc, const uchar *s, const uchar *e) +{ + uchar c; + + if (s >= e) + return MY_CS_TOOSMALL; + + c= s[0]; + if (c < 0x80) + { + *pwc = c; + return 1; + } + else if (c < 0xc2) + return MY_CS_ILSEQ; + else if (c < 0xe0) + { + if (s+2 > e) /* We need 2 characters */ + return MY_CS_TOOSMALL2; + + if (!(IS_CONTINUATION_BYTE(s[1]))) + return MY_CS_ILSEQ; + + *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80); + return 2; + } + else if (c < 0xf0) + { + if (s+3 > e) /* We need 3 characters */ + return MY_CS_TOOSMALL3; + + if (!(IS_CONTINUATION_BYTE(s[1]) && IS_CONTINUATION_BYTE(s[2]) && + (c >= 0xe1 || s[1] >= 0xa0))) + return MY_CS_ILSEQ; + + *pwc = ((my_wc_t) (c & 0x0f) << 12) | + ((my_wc_t) (s[1] ^ 0x80) << 6) | + (my_wc_t) (s[2] ^ 0x80); + + return 3; + } + return MY_CS_ILSEQ; +} + + +/* + The same as above, but without range check + for example, for a null-terminated string +*/ +static int my_utf8_uni_no_range(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + my_wc_t * pwc, const uchar *s) +{ + uchar c; + + c= s[0]; + if (c < 0x80) + { + *pwc = c; + return 1; + } + + if (c < 0xc2) + return MY_CS_ILSEQ; + + if (c < 0xe0) + { + if (!((s[1] ^ 0x80) < 0x40)) + return MY_CS_ILSEQ; + + *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80); + return 2; + } + + if (c < 0xf0) + { + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + (c >= 0xe1 || s[1] >= 0xa0))) + return MY_CS_ILSEQ; + + *pwc= ((my_wc_t) (c & 0x0f) << 12) | + ((my_wc_t) (s[1] ^ 0x80) << 6) | + (my_wc_t) (s[2] ^ 0x80); + + return 3; + } + return MY_CS_ILSEQ; +} + + +static int my_uni_utf8 (const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *r, uchar *e) +{ + int count; + + if (r >= e) + return MY_CS_TOOSMALL; + + if (wc < 0x80) + count = 1; + else if (wc < 0x800) + count = 2; + else if (wc < 0x10000) + count = 3; + else return MY_CS_ILUNI; + + /* + e is a character after the string r, not the last character of it. + Because of it (r+count > e), not (r+count-1 >e ) + */ + if ( r+count > e ) + return MY_CS_TOOSMALLN(count); + + switch (count) { + /* Fall through all cases!!! */ + case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800; + case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0; + case 1: r[0] = (uchar) wc; + } + return count; +} + + +/* + The same as above, but without range check. +*/ +static int my_uni_utf8_no_range(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *r) +{ + int count; + + if (wc < 0x80) + count= 1; + else if (wc < 0x800) + count= 2; + else if (wc < 0x10000) + count= 3; + else + return MY_CS_ILUNI; + + switch (count) + { + /* Fall through all cases!!! */ + case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800; + case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0; + case 1: r[0]= (uchar) wc; + } + return count; +} + + +static inline void +my_tolower_utf8mb3(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].tolower; +} + + +static inline void +my_toupper_utf8mb3(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].toupper; +} + + +static size_t +my_caseup_utf8(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + my_wc_t wc; + int srcres, dstres; + char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + + while ((src < srcend) && + (srcres= my_utf8_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0) + { + my_toupper_utf8mb3(uni_plane, &wc); + if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + return (size_t) (dst - dst0); +} + + +static void my_hash_sort_utf8(const CHARSET_INFO *cs, const uchar *s, + size_t slen, ulong *n1, ulong *n2) +{ + my_wc_t wc; + int res; + const uchar *e=s+slen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + ulong tmp1; + ulong tmp2; + + /* + Remove end space. We have to do this to be able to compare + 'A ' and 'A' as identical + */ + while (e > s && e[-1] == ' ') + e--; + + tmp1= *n1; + tmp2= *n2; + + while ((s < e) && (res=my_utf8_uni(cs,&wc, (uchar *)s, (uchar*)e))>0 ) + { + my_tosort_unicode(uni_plane, &wc, cs->state); + tmp1^= (((tmp1 & 63) + tmp2) * (wc & 0xFF)) + (tmp1 << 8); + tmp2+=3; + tmp1^= (((tmp1 & 63) + tmp2) * (wc >> 8)) + (tmp1 << 8); + tmp2+=3; + s+=res; + } + + *n1= tmp1; + *n2= tmp2; +} + + +static size_t my_caseup_str_utf8(const CHARSET_INFO *cs, char *src) +{ + my_wc_t wc; + int srcres, dstres; + char *dst= src, *dst0= src; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(cs->caseup_multiply == 1); + + while (*src && + (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0) + { + my_toupper_utf8mb3(uni_plane, &wc); + if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + *dst= '\0'; + return (size_t) (dst - dst0); +} + + +static size_t my_casedn_utf8(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + my_wc_t wc; + int srcres, dstres; + char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + + while ((src < srcend) && + (srcres= my_utf8_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0) + { + my_tolower_utf8mb3(uni_plane, &wc); + if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + return (size_t) (dst - dst0); +} + + +static size_t my_casedn_str_utf8(const CHARSET_INFO *cs, char *src) +{ + my_wc_t wc; + int srcres, dstres; + char *dst= src, *dst0= src; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(cs->casedn_multiply == 1); + + while (*src && + (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0) + { + my_tolower_utf8mb3(uni_plane, &wc); + if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + + /* + In rare cases lower string can be shorter than + the original string, for example: + + "U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE" + (which is 0xC4B0 in utf8, i.e. two bytes) + + is converted into + + "U+0069 LATIN SMALL LETTER I" + (which is 0x69 in utf8, i.e. one byte) + + So, we need to put '\0' terminator after converting. + */ + + *dst= '\0'; + return (size_t) (dst - dst0); +} + + +static int my_strnncoll_utf8(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + int s_res,t_res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se=s+slen; + const uchar *te=t+tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + while ( s < se && t < te ) + { + s_res=my_utf8_uni(cs,&s_wc, s, se); + t_res=my_utf8_uni(cs,&t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare byte by byte value */ + return bincmp(s, se, t, te); + } + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+=s_res; + t+=t_res; + } + return (int) (t_is_prefix ? t-te : ((se-s) - (te-t))); +} + + + +/* + Compare strings, discarding end space + + SYNOPSIS + my_strnncollsp_utf8() + cs character set handler + a First string to compare + a_length Length of 'a' + b Second string to compare + b_length Length of 'b' + diff_if_only_endspace_difference + Set to 1 if the strings should be regarded as different + if they only difference in end space + + IMPLEMENTATION + If one string is shorter as the other, then we space extend the other + so that the strings have equal length. + + This will ensure that the following things hold: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + RETURN + < 0 a < b + = 0 a == b + > 0 a > b +*/ + +static int my_strnncollsp_utf8(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + int s_res, t_res, res; + my_wc_t s_wc= 0, t_wc= 0; + const uchar *se= s+slen, *te= t+tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + while ( s < se && t < te ) + { + s_res=my_utf8_uni(cs,&s_wc, s, se); + t_res=my_utf8_uni(cs,&t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare byte by byte value */ + return bincmp(s, se, t, te); + } + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+=s_res; + t+=t_res; + } + + slen= (size_t) (se-s); + tlen= (size_t) (te-t); + res= 0; + + if (slen != tlen) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + if (slen < tlen) + { + slen= tlen; + s= t; + se= te; + swap= -1; + res= -res; + } + /* + This following loop uses the fact that in UTF-8 + all multibyte characters are greater than space, + and all multibyte head characters are greater than + space. It means if we meet a character greater + than space, it always means that the longer string + is greater. So we can reuse the same loop from the + 8bit version, without having to process full multibute + sequences. + */ + for ( ; s < se; s++) + { + if (*s != ' ') + return (*s < ' ') ? -swap : swap; + } + } + return res; +} + + +/* + Compare 0-terminated UTF8 strings. + + SYNOPSIS + my_strcasecmp_utf8() + cs character set handler + s First 0-terminated string to compare + t Second 0-terminated string to compare + + IMPLEMENTATION + + RETURN + - negative number if s < t + - positive number if s > t + - 0 is the strings are equal +*/ + +static +int my_strcasecmp_utf8(const CHARSET_INFO *cs, const char *s, const char *t) +{ + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + while (s[0] && t[0]) + { + my_wc_t s_wc,t_wc; + + if ((uchar) s[0] < 128) + { + /* + s[0] is between 0 and 127. + It represents a single byte character. + Convert it into weight according to collation. + */ + s_wc= plane00[(uchar) s[0]].tolower; + s++; + } + else + { + int res; + + /* + Scan a multibyte character. + + In the future it is worth to write a special version of my_utf8_uni() + for 0-terminated strings which will not take in account length. Now + we call the regular version of my_utf8_uni() with s+3 in the + last argument. s+3 is enough to scan any multibyte sequence. + + Calling the regular version of my_utf8_uni is safe for 0-terminated + strings: we will never lose the end of the string: + If we have 0 character in the middle of a multibyte sequence, + then my_utf8_uni will always return a negative number, so the + loop with finish. + */ + + res= my_utf8_uni(cs,&s_wc, (const uchar*)s, (const uchar*) s + 3); + + /* + In the case of wrong multibyte sequence we will + call strcmp() for byte-to-byte comparison. + */ + if (res <= 0) + return strcmp(s, t); + s+= res; + + /* Convert Unicode code into weight according to collation */ + my_tolower_utf8mb3(uni_plane, &s_wc); + } + + + /* Do the same for the second string */ + + if ((uchar) t[0] < 128) + { + /* Convert single byte character into weight */ + t_wc= plane00[(uchar) t[0]].tolower; + t++; + } + else + { + int res=my_utf8_uni(cs,&t_wc, (const uchar*)t, (const uchar*) t + 3); + if (res <= 0) + return strcmp(s, t); + t+= res; + + /* Convert code into weight */ + my_tolower_utf8mb3(uni_plane, &t_wc); + } + + /* Now we have two weights, let's compare them */ + if ( s_wc != t_wc ) + return ((int) s_wc) - ((int) t_wc); + } + return ((int)(uchar)s[0]) - ((int) (uchar) t[0]); +} + + +static +int my_wildcmp_utf8(const CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend, + escape,w_one,w_many,uni_plane); +} + + +static +size_t my_strnxfrmlen_utf8(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + size_t len) +{ + return (len * 2 + 2) / 3; +} + + +static +int my_valid_mbcharlen_utf8(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, const uchar *e) +{ + uchar c; + + if (s >= e) + return MY_CS_TOOSMALL; + + c= s[0]; + if (c < 0xf0) + return my_valid_mbcharlen_utf8mb3(s, e); + +#ifdef UNICODE_32BIT + if (c < 0xf8 && sizeof(my_wc_t)*8 >= 32) + { + if (s+4 > e) /* We need 4 characters */ + return MY_CS_TOOSMALL4; + + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + IS_CONTINUATION_BYTE(s[3]) && + (c >= 0xf1 || s[1] >= 0x90))) + return MY_CS_ILSEQ; + + return 4; + } + if (c < 0xfc && sizeof(my_wc_t)*8 >= 32) + { + if (s+5 >e) /* We need 5 characters */ + return MY_CS_TOOSMALL5; + + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + IS_CONTINUATION_BYTE(s[3]) && + IS_CONTINUATION_BYTE(s[4]) && + (c >= 0xf9 || s[1] >= 0x88))) + return MY_CS_ILSEQ; + + return 5; + } + if (c < 0xfe && sizeof(my_wc_t)*8 >= 32) + { + if ( s+6 >e ) /* We need 6 characters */ + return MY_CS_TOOSMALL6; + + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + IS_CONTINUATION_BYTE(s[3]) && + IS_CONTINUATION_BYTE(s[4]) && + IS_CONTINUATION_BYTE(s[5]) && + (c >= 0xfd || s[1] >= 0x84))) + return MY_CS_ILSEQ; + + return 6; + } +#endif + return MY_CS_ILSEQ; +} + +static size_t +my_well_formed_len_utf8(const CHARSET_INFO *cs, const char *b, const char *e, + size_t pos, int *error) +{ + const char *b_start= b; + *error= 0; + while (pos) + { + int mb_len; + + if ((mb_len= my_valid_mbcharlen_utf8(cs, (uchar*) b, (uchar*) e)) <= 0) + { + *error= b < e ? 1 : 0; + break; + } + b+= mb_len; + pos--; + } + return (size_t) (b - b_start); +} + +static uint my_ismbchar_utf8(const CHARSET_INFO *cs,const char *b, + const char *e) +{ + int res= my_valid_mbcharlen_utf8(cs, (const uchar*)b, (const uchar*)e); + return (res>1) ? res : 0; +} + +static uint my_mbcharlen_utf8(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uint c) +{ + if (c < 0x80) + return 1; + else if (c < 0xc2) + return 0; /* Illegal mb head */ + else if (c < 0xe0) + return 2; + else if (c < 0xf0) + return 3; + return 0; /* Illegal mb head */; +} + + +static MY_COLLATION_HANDLER my_collation_utf8_general_ci_handler = +{ + NULL, /* init */ + my_strnncoll_utf8, + my_strnncollsp_utf8, + my_strnxfrm_unicode, + my_strnxfrmlen_utf8, + my_like_range_mb, + my_wildcmp_utf8, + my_strcasecmp_utf8, + my_instr_mb, + my_hash_sort_utf8, + my_propagate_complex +}; + + +static MY_COLLATION_HANDLER my_collation_utf8_bin_handler = +{ + NULL, /* init */ + my_strnncoll_mb_bin, + my_strnncollsp_mb_bin, + my_strnxfrm_unicode, + my_strnxfrmlen_utf8, + my_like_range_mb, + my_wildcmp_mb_bin, + my_strcasecmp_mb_bin, + my_instr_mb, + my_hash_sort_mb_bin, + my_propagate_simple +}; + +MY_CHARSET_HANDLER my_charset_utf8_handler= +{ + NULL, /* init */ + my_ismbchar_utf8, + my_mbcharlen_utf8, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_utf8, + my_lengthsp_8bit, + my_numcells_mb, + my_utf8_uni, + my_uni_utf8, + my_mb_ctype_mb, + my_caseup_str_utf8, + my_casedn_str_utf8, + my_caseup_utf8, + my_casedn_utf8, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + + +CHARSET_INFO my_charset_utf8_general_ci= +{ + 33,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ + "utf8", /* cs name */ + "utf8_general_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + to_upper_utf8, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_utf8_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf8_tolower_ci= +{ + 56,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_LOWER_SORT, + "utf8", /* cs name */ + "utf8_tolower_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + to_upper_utf8, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_utf8_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf8_general_mysql500_ci= +{ + 223,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ + "utf8", /* cs name */ + "utf8_general_mysql500_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + to_upper_utf8, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_mysql500, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_utf8_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf8_bin= +{ + 83,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM| + MY_CS_UNICODE, /* state */ + "utf8", /* cs name */ + "utf8_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_utf8_bin_handler +}; + +#ifdef HAVE_UTF8_GENERAL_CS + +/* + * These functions bacically do the same as their original, except + * that they return 0 only when two comparing unicode strings are + * strictly the same in case-sensitive way. See "save_diff" local + * variable to what they actually do. + */ + +static int my_strnncoll_utf8_cs(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + int s_res,t_res; + my_wc_t s_wc,t_wc; + const uchar *se=s+slen; + const uchar *te=t+tlen; + int save_diff = 0; + int diff; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + while ( s < se && t < te ) + { + s_res=my_utf8_uni(cs,&s_wc, s, se); + t_res=my_utf8_uni(cs,&t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + + { + /* Incorrect string, compare by char value */ + return ((int)s[0]-(int)t[0]); + } + + if ( save_diff == 0 ) + { + save_diff = ((int)s_wc) - ((int)t_wc); + } + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + + if ( s_wc != t_wc ) + { + return ((int) s_wc) - ((int) t_wc); + } + + s+=s_res; + t+=t_res; + } + diff = ( (se-s) - (te-t) ); + return t_is_prefix ? t-te : ((diff == 0) ? save_diff : diff); +} + +static int my_strnncollsp_utf8_cs(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + int s_res, t_res, res; + my_wc_t s_wc, t_wc; + const uchar *se= s + slen; + const uchar *te= t + tlen; + int save_diff= 0; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= 0; +#endif + + while ( s < se && t < te ) + { + s_res=my_utf8_uni(cs,&s_wc, s, se); + t_res=my_utf8_uni(cs,&t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare by char value */ + return ((int)s[0]-(int)t[0]); + } + + if ( save_diff == 0 ) + { + save_diff = ((int)s_wc) - ((int)t_wc); + } + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + + if ( s_wc != t_wc ) + { + return ((int) s_wc) - ((int) t_wc); + } + + s+=s_res; + t+=t_res; + } + + slen= se-s; + tlen= te-t; + res= 0; + + if (slen != tlen) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + if (slen < tlen) + { + slen= tlen; + s= t; + se= te; + swap= -1; + res= -res; + } + /* + This following loop uses the fact that in UTF-8 + all multibyte characters are greater than space, + and all multibyte head characters are greater than + space. It means if we meet a character greater + than space, it always means that the longer string + is greater. So we can reuse the same loop from the + 8bit version, without having to process full multibute + sequences. + */ + for ( ; s < se; s++) + { + if (*s != (uchar) ' ') + return (*s < (uchar) ' ') ? -swap : swap; + } + } + return save_diff; +} + +static MY_COLLATION_HANDLER my_collation_cs_handler = +{ + NULL, /* init */ + my_strnncoll_utf8_cs, + my_strnncollsp_utf8_cs, + my_strnxfrm_unicode, + my_strnxfrmlen_utf8, + my_like_range_simple, + my_wildcmp_mb, + my_strcasecmp_utf8, + my_instr_mb, + my_hash_sort_utf8, + my_propagate_simple +}; + +CHARSET_INFO my_charset_utf8_general_cs= +{ + 254,0,0, /* number */ + MY_CS_COMPILED|MY_CS_UNICODE, /* state */ + "utf8", /* cs name */ + "utf8_general_cs", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + to_upper_utf8, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 255, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_cs_handler +}; +#endif /* Cybozu Hack */ + + +/* + File system encoding components: + +Code range Pattern Number Used Unused Blocks +----------------------------------------------------------------------------- +00C0..017F [.][0..4][g..z] 5*20= 100 97 3 Latin1 Supplement + Ext A +0370..03FF [.][5..9][g..z] 5*20= 100 88 12 Greek + Coptic +0400..052F [.][g..z][0..6] 20*7= 140 140 137 Cyrillic +0530..058F [.][g..z][7..8] 20*2= 40 38 2 Armenian +2160..217F [.][g..z][9] 20*1= 20 16 4 Number Forms +0180..02AF [.][g..z][a..k] 28*11=220 203 17 Latin Ext B + IPA +1E00..0EFF [.][g..z][l..r] 20*7= 140 136 4 Latin Additional Extended +1F00..1FFF [.][g..z][s..z] 20*8= 160 144 16 Greek Extended +.... .... [.][a..f][g..z] 6*20= 120 0 120 RESERVED +24B6..24E9 [.][@][a..z] 26 26 0 Enclosed Alphanumerics +FF21..FF5A [.][a..z][@] 26 26 0 Full Width forms + +All other characters are encoded using five bytes: + +[.][0..9a..z][0..9a..z][0..9a..z][0..9a..z] + +*/ + + +static const uint16 touni[5994]= +{ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00C0, + 0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8, + 0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0, + 0x00D1,0x00D2,0x00D3,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0, + 0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8, + 0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0, + 0x00F1,0x00F2,0x00F3,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00D4, + 0x00D5,0x00D6,0x0000,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC, + 0x00DD,0x00DE,0x0178,0x0100,0x0102,0x0104,0x0106,0x0108, + 0x010A,0x010C,0x010E,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F4, + 0x00F5,0x00F6,0x00DF,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC, + 0x00FD,0x00FE,0x00FF,0x0101,0x0103,0x0105,0x0107,0x0109, + 0x010B,0x010D,0x010F,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0110, + 0x0112,0x0114,0x0116,0x0118,0x011A,0x011C,0x011E,0x0120, + 0x0122,0x0124,0x0126,0x0128,0x012A,0x012C,0x012E,0x0000, + 0x0132,0x0134,0x0136,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0111, + 0x0113,0x0115,0x0117,0x0119,0x011B,0x011D,0x011F,0x0121, + 0x0123,0x0125,0x0127,0x0129,0x012B,0x012D,0x012F,0x0131, + 0x0133,0x0135,0x0137,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0139,0x013B,0x013D,0x013F,0x0141,0x0143,0x0145,0x0147, + 0x0000,0x014A,0x014C,0x014E,0x0150,0x0152,0x0154,0x0156, + 0x0158,0x015A,0x015C,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0138, + 0x013A,0x013C,0x013E,0x0140,0x0142,0x0144,0x0146,0x0148, + 0x0149,0x014B,0x014D,0x014F,0x0151,0x0153,0x0155,0x0157, + 0x0159,0x015B,0x015D,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015E, + 0x0160,0x0162,0x0164,0x0166,0x0168,0x016A,0x016C,0x016E, + 0x0170,0x0172,0x0174,0x0176,0x0179,0x017B,0x017D,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015F, + 0x0161,0x0163,0x0165,0x0167,0x0169,0x016B,0x016D,0x016F, + 0x0171,0x0173,0x0175,0x0177,0x017A,0x017C,0x017E,0x017F, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0390,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0386, + 0x0388,0x0389,0x038A,0x0000,0x0391,0x0000,0x0393,0x0394, + 0x0395,0x0396,0x0397,0x0000,0x0399,0x0000,0x039B,0x039C, + 0x039D,0x039E,0x039F,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03AC, + 0x03AD,0x03AE,0x03AF,0x03B0,0x03B1,0x03B2,0x03B3,0x03B4, + 0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC, + 0x03BD,0x03BE,0x03BF,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x03A1,0x0000,0x0000,0x03A4,0x03A5,0x0000,0x03A7,0x03A8, + 0x03A9,0x03AA,0x03AB,0x038C,0x038E,0x038F,0x0000,0x0392, + 0x0398,0x03D2,0x03D3,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03C0, + 0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8, + 0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000,0x03D0, + 0x03D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03D4, + 0x03A6,0x03A0,0x0000,0x0000,0x03DA,0x03DC,0x03DE,0x03E0, + 0x03E2,0x03E4,0x03E6,0x03E8,0x03EA,0x03EC,0x03EE,0x039A, + 0x0000,0x03A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x03D5,0x03D6,0x03D7,0x03D9,0x03DB,0x03DD,0x03DF,0x03E1, + 0x03E3,0x03E5,0x03E7,0x03E9,0x03EB,0x03ED,0x03EF,0x03F0, + 0x03F1,0x03F2,0x03F3,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x03FD,0x03FE,0x03FF,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F5, + 0x03F6,0x03F8,0x03FB,0x03FC,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC, + 0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4, + 0x24C5,0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC, + 0x24CD,0x24CE,0x24CF,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6, + 0x24D7,0x24D8,0x24D9,0x24DA,0x24DB,0x24DC,0x24DD,0x24DE, + 0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6, + 0x24E7,0x24E8,0x24E9,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0410,0x0424,0x0408,0x0478,0x04A6,0x04CD,0x04F4,0x0000, + 0x0544,0x2160,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x01B3,0x01DE,0x0208,0x0230,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E00,0x1E28,0x1E50,0x1E78, + 0x1E60,0x1EBE,0x1EE6,0x1F08,0x1F2A,0x0000,0x1F6C,0x1F88, + 0x1FAC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0411,0x0425,0x0409,0x047A,0x04A8,0x0000,0x04F6,0x0531, + 0x0545,0x2161,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0182,0x01B5,0x01E0,0x020A,0x0232,0x0000,0x0000, + 0x019D,0x0000,0x0000,0x0000,0x1E02,0x1E2A,0x1E52,0x1E7A, + 0x0000,0x1EC0,0x1EE8,0x1F09,0x1F2B,0x0000,0x1F6D,0x1F89, + 0x1FAD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0412,0x0426,0x040A,0x047C,0x04AA,0x04D0,0x04F8,0x0532, + 0x0546,0x2162,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0184,0x01B8,0x01E2,0x020C,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E04,0x1E2C,0x1E54,0x1E7C, + 0x0000,0x1EC2,0x1EEA,0x1F0A,0x1F2C,0x0000,0x1F6E,0x1F8A, + 0x1FAE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0413,0x0427,0x040B,0x047E,0x04AC,0x04D2,0x0000,0x0533, + 0x0547,0x2163,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0187,0x0000,0x01E4,0x020E,0x0000,0x0000,0x0193, + 0x0000,0x01AE,0x0000,0x0000,0x1E06,0x1E2E,0x1E56,0x1E7E, + 0x0000,0x1EC4,0x1EEC,0x1F0B,0x1F2D,0x0000,0x1F6F,0x1F8B, + 0x1FAF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0414,0x0428,0x040C,0x0480,0x04AE,0x04D4,0x0000,0x0534, + 0x0548,0x2164,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x018B,0x0000,0x01E6,0x0210,0x0000,0x0000,0x0000, + 0x019F,0x0000,0x0000,0x0000,0x1E08,0x1E30,0x1E58,0x1E80, + 0x0000,0x1EC6,0x1EEE,0x1F0C,0x1F2E,0x0000,0x1FBA,0x1F8C, + 0x1FB8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0415,0x0429,0x040D,0x0000,0x04B0,0x04D6,0x0000,0x0535, + 0x0549,0x2165,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x01E8,0x0212,0x0000,0x0000,0x0000, + 0x0000,0x01B1,0x0000,0x0000,0x1E0A,0x1E32,0x1E5A,0x1E82, + 0x1EA0,0x1EC8,0x1EF0,0x1F0D,0x1F2F,0x1F59,0x1FBB,0x1F8D, + 0x1FB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0416,0x042A,0x040E,0x048A,0x04B2,0x04D8,0x0000,0x0536, + 0x054A,0x2166,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0191,0x0000,0x01EA,0x0214,0x0000,0x0000,0x0194, + 0x0000,0x01B2,0x0000,0x0000,0x1E0C,0x1E34,0x1E5C,0x1E84, + 0x1EA2,0x1ECA,0x1EF2,0x1F0E,0x1F38,0x0000,0x1FC8,0x1F8E, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0417,0x042B,0x040F,0x048C,0x04B4,0x04DA,0x0000,0x0537, + 0x054B,0x2167,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01F6,0x01BC,0x01EC,0x0216,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E0E,0x1E36,0x1E5E,0x1E86, + 0x1EA4,0x1ECC,0x1EF4,0x1F0F,0x1F39,0x1F5B,0x1FC9,0x1F8F, + 0x1FBC,0x1FE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0418,0x042C,0x0460,0x048E,0x04B6,0x04DC,0x0000,0x0538, + 0x054C,0x2168,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0198,0x01C4,0x01EE,0x0218,0x023A,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E10,0x1E38,0x0000,0x1E88, + 0x1EA6,0x1ECE,0x1EF6,0x1F18,0x1F3A,0x0000,0x1FCA,0x1F98, + 0x0000,0x1FE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0419,0x042D,0x0462,0x0490,0x04B8,0x04DE,0x0500,0x0539, + 0x054D,0x2169,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x023D,0x01C7,0x0000,0x021A,0x023B,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E12,0x1E3A,0x1E62,0x1E8A, + 0x1EA8,0x1ED0,0x1EF8,0x1F19,0x1F3B,0x1F5D,0x1FCB,0x1F99, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x041A,0x042E,0x0464,0x0492,0x04BA,0x04E0,0x0502,0x053A, + 0x054E,0x216A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x01CA,0x01F1,0x021C,0x023E,0x0181,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E14,0x1E3C,0x1E64,0x1E8C, + 0x1EAA,0x1ED2,0x0000,0x1F1A,0x1F3C,0x0000,0x1FDA,0x1F9A, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x041B,0x042F,0x0466,0x0494,0x04BC,0x04E2,0x0504,0x053B, + 0x054F,0x216B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0220,0x01CD,0x01F4,0x021E,0x0000,0x0186,0x0197, + 0x0000,0x0000,0x0000,0x0000,0x1E16,0x1E3E,0x1E66,0x1E8E, + 0x1EAC,0x1ED4,0x0000,0x1F1B,0x1F3D,0x1F5F,0x1FDB,0x1F9B, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x041C,0x0400,0x0468,0x0496,0x04BE,0x04E4,0x0506,0x053C, + 0x0550,0x216C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A0,0x01CF,0x01F8,0x0000,0x0000,0x0000,0x0196, + 0x0000,0x0000,0x0000,0x0000,0x1E18,0x1E40,0x1E68,0x1E90, + 0x1EAE,0x1ED6,0x0000,0x1F1C,0x1F3E,0x0000,0x1FF8,0x1F9C, + 0x0000,0x1FEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x041D,0x0401,0x046A,0x0498,0x04C0,0x04E6,0x0508,0x053D, + 0x0551,0x216D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A2,0x01D1,0x01FA,0x0222,0x0000,0x0189,0x0000, + 0x0000,0x01B7,0x0000,0x0000,0x1E1A,0x1E42,0x1E6A,0x1E92, + 0x1EB0,0x1ED8,0x0000,0x1F1D,0x1F3F,0x0000,0x1FF9,0x1F9D, + 0x1FCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x041E,0x0402,0x046C,0x049A,0x04C1,0x04E8,0x050A,0x053E, + 0x0552,0x216E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A4,0x01D3,0x01FC,0x0224,0x0000,0x018A,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E1C,0x1E44,0x1E6C,0x1E94, + 0x1EB2,0x1EDA,0x0000,0x0000,0x1F48,0x0000,0x1FEA,0x1F9E, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x041F,0x0403,0x046E,0x049C,0x04C3,0x04EA,0x050C,0x053F, + 0x0553,0x216F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A7,0x01D5,0x01FE,0x0226,0x0000,0x0000,0x0000, + 0x01A6,0x0241,0x0000,0x0000,0x1E1E,0x1E46,0x1E6E,0x0000, + 0x1EB4,0x1EDC,0x0000,0x0000,0x1F49,0x0000,0x1FEB,0x1F9F, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0420,0x0404,0x0470,0x049E,0x04C5,0x04EC,0x050E,0x0540, + 0x0554,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x01D7,0x0200,0x0228,0x0000,0x018F,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E20,0x1E48,0x1E70,0x0000, + 0x1EB6,0x1EDE,0x0000,0x0000,0x1F4A,0x1F68,0x1FFA,0x1FA8, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0421,0x0405,0x0472,0x04A0,0x04C7,0x04EE,0x0000,0x0541, + 0x0555,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x01D9,0x0202,0x022A,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E22,0x1E4A,0x1E72,0x0000, + 0x1EB8,0x1EE0,0x0000,0x0000,0x1F4B,0x1F69,0x1FFB,0x1FA9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0422,0x0406,0x0474,0x04A2,0x04C9,0x04F0,0x0000,0x0542, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01AC,0x01DB,0x0204,0x022C,0x0000,0x0190,0x019C, + 0x01A9,0x0000,0x0000,0x0000,0x1E24,0x1E4C,0x1E74,0x0000, + 0x1EBA,0x1EE2,0x0000,0x1F28,0x1F4C,0x1F6A,0x0000,0x1FAA, + 0x1FD8,0x1FFC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0423,0x0407,0x0476,0x04A4,0x04CB,0x04F2,0x0000,0x0543, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01AF,0x018E,0x0206,0x022E,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x1E26,0x1E4E,0x1E76,0x0000, + 0x1EBC,0x1EE4,0x0000,0x1F29,0x1F4D,0x1F6B,0x0000,0x1FAB, + 0x1FD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0430,0x0444,0x0458,0x0479,0x04A7,0x04CE,0x04F5,0x0000, + 0x0574,0x2170,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0180,0x01B4,0x01DF,0x0209,0x0231,0x0000,0x025D, + 0x0271,0x0285,0x0299,0x02AD,0x1E01,0x1E29,0x1E51,0x1E79, + 0x1E9B,0x1EBF,0x1EE7,0x1F00,0x1F22,0x0000,0x1F64,0x1F80, + 0x1FA4,0x1FD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0431,0x0445,0x0459,0x047B,0x04A9,0x0000,0x04F7,0x0561, + 0x0575,0x2171,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0183,0x01B6,0x01E1,0x020B,0x0233,0x0000,0x025E, + 0x0272,0x0286,0x029A,0x02AE,0x1E03,0x1E2B,0x1E53,0x1E7B, + 0x0000,0x1EC1,0x1EE9,0x1F01,0x1F23,0x0000,0x1F65,0x1F81, + 0x1FA5,0x1FD3,0x1FF6,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0432,0x0446,0x045A,0x047D,0x04AB,0x04D1,0x04F9,0x0562, + 0x0576,0x2172,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0185,0x01B9,0x01E3,0x020D,0x0234,0x0000,0x025F, + 0x0273,0x0287,0x029B,0x02AF,0x1E05,0x1E2D,0x1E55,0x1E7D, + 0x0000,0x1EC3,0x1EEB,0x1F02,0x1F24,0x0000,0x1F66,0x1F82, + 0x1FA6,0x0000,0x1FF7,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0433,0x0447,0x045B,0x047F,0x04AD,0x04D3,0x0000,0x0563, + 0x0577,0x2173,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0188,0x01BA,0x01E5,0x020F,0x0235,0x0000,0x0260, + 0x0274,0x0288,0x029C,0x0000,0x1E07,0x1E2F,0x1E57,0x1E7F, + 0x0000,0x1EC5,0x1EED,0x1F03,0x1F25,0x0000,0x1F67,0x1F83, + 0x1FA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0434,0x0448,0x045C,0x0481,0x04AF,0x04D5,0x0000,0x0564, + 0x0578,0x2174,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x018C,0x01BB,0x01E7,0x0211,0x0236,0x0000,0x0261, + 0x0275,0x0289,0x029D,0x0000,0x1E09,0x1E31,0x1E59,0x1E81, + 0x0000,0x1EC7,0x1EEF,0x1F04,0x1F26,0x1F50,0x1F70,0x1F84, + 0x1FB0,0x1FD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0435,0x0449,0x045D,0x0000,0x04B1,0x04D7,0x0000,0x0565, + 0x0579,0x2175,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x018D,0x0000,0x01E9,0x0213,0x0237,0x0000,0x0262, + 0x0276,0x028A,0x029E,0x0000,0x1E0B,0x1E33,0x1E5B,0x1E83, + 0x1EA1,0x1EC9,0x1EF1,0x1F05,0x1F27,0x1F51,0x1F71,0x1F85, + 0x1FB1,0x1FD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0436,0x044A,0x045E,0x048B,0x04B3,0x04D9,0x0000,0x0566, + 0x057A,0x2176,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0192,0x01BE,0x01EB,0x0215,0x0238,0x0000,0x0263, + 0x0277,0x028B,0x029F,0x0000,0x1E0D,0x1E35,0x1E5D,0x1E85, + 0x1EA3,0x1ECB,0x1EF3,0x1F06,0x1F30,0x1F52,0x1F72,0x1F86, + 0x1FB2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0437,0x044B,0x045F,0x048D,0x04B5,0x04DB,0x0000,0x0567, + 0x057B,0x2177,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0195,0x01BD,0x01ED,0x0217,0x0239,0x0250,0x0264, + 0x0278,0x028C,0x02A0,0x0000,0x1E0F,0x1E37,0x1E5F,0x1E87, + 0x1EA5,0x1ECD,0x1EF5,0x1F07,0x1F31,0x1F53,0x1F73,0x1F87, + 0x1FB3,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0438,0x044C,0x0461,0x048F,0x04B7,0x04DD,0x0000,0x0568, + 0x057C,0x2178,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0199,0x01C6,0x01EF,0x0219,0x0000,0x0251,0x0265, + 0x0279,0x028D,0x02A1,0x0000,0x1E11,0x1E39,0x1E61,0x1E89, + 0x1EA7,0x1ECF,0x1EF7,0x1F10,0x1F32,0x1F54,0x1F74,0x1F90, + 0x1FB4,0x1FE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0439,0x044D,0x0463,0x0491,0x04B9,0x04DF,0x0501,0x0569, + 0x057D,0x2179,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF50,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x019A,0x01C9,0x01F0,0x021B,0x023C,0x0252,0x0266, + 0x027A,0x028E,0x02A2,0x0000,0x1E13,0x1E3B,0x1E63,0x1E8B, + 0x1EA9,0x1ED1,0x1EF9,0x1F11,0x1F33,0x1F55,0x1F75,0x1F91, + 0x0000,0x1FE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x043A,0x044E,0x0465,0x0493,0x04BB,0x04E1,0x0503,0x056A, + 0x057E,0x217A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF51,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x019B,0x01CC,0x01F3,0x021D,0x0000,0x0253,0x0267, + 0x027B,0x028F,0x02A3,0x0000,0x1E15,0x1E3D,0x1E65,0x1E8D, + 0x1EAB,0x1ED3,0x0000,0x1F12,0x1F34,0x1F56,0x1F76,0x1F92, + 0x1FB6,0x1FE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x043B,0x044F,0x0467,0x0495,0x04BD,0x04E3,0x0505,0x056B, + 0x057F,0x217B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x019E,0x01CE,0x01F5,0x021F,0x023F,0x0254,0x0268, + 0x027C,0x0290,0x02A4,0x0000,0x1E17,0x1E3F,0x1E67,0x1E8F, + 0x1EAD,0x1ED5,0x0000,0x1F13,0x1F35,0x1F57,0x1F77,0x1F93, + 0x1FB7,0x1FE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x043C,0x0450,0x0469,0x0497,0x04BF,0x04E5,0x0507,0x056C, + 0x0580,0x217C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF53,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A1,0x01D0,0x01F9,0x0221,0x0240,0x0255,0x0269, + 0x027D,0x0291,0x02A5,0x0000,0x1E19,0x1E41,0x1E69,0x1E91, + 0x1EAF,0x1ED7,0x0000,0x1F14,0x1F36,0x0000,0x1F78,0x1F94, + 0x1FC2,0x1FE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x043D,0x0451,0x046B,0x0499,0x0000,0x04E7,0x0509,0x056D, + 0x0581,0x217D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF54,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A3,0x01D2,0x01FB,0x0223,0x0000,0x0256,0x026A, + 0x027E,0x0292,0x02A6,0x0000,0x1E1B,0x1E43,0x1E6B,0x1E93, + 0x1EB1,0x1ED9,0x0000,0x1F15,0x1F37,0x0000,0x1F79,0x1F95, + 0x1FC3,0x1FE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x043E,0x0452,0x046D,0x049B,0x04C2,0x04E9,0x050B,0x056E, + 0x0582,0x217E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A5,0x01D4,0x01FD,0x0225,0x0000,0x0257,0x026B, + 0x027F,0x0293,0x02A7,0x0000,0x1E1D,0x1E45,0x1E6D,0x1E95, + 0x1EB3,0x1EDB,0x0000,0x0000,0x1F40,0x0000,0x1F7A,0x1F96, + 0x1FC4,0x1FE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x043F,0x0453,0x046F,0x049D,0x04C4,0x04EB,0x050D,0x056F, + 0x0583,0x217F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01A8,0x01D6,0x01FF,0x0227,0x0000,0x0258,0x026C, + 0x0280,0x0294,0x02A8,0x0000,0x1E1F,0x1E47,0x1E6F,0x1E96, + 0x1EB5,0x1EDD,0x0000,0x0000,0x1F41,0x0000,0x1F7B,0x1F97, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0440,0x0454,0x0471,0x049F,0x04C6,0x04ED,0x050F,0x0570, + 0x0584,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01AA,0x01D8,0x0201,0x0229,0x0000,0x0259,0x026D, + 0x0281,0x0295,0x02A9,0x0000,0x1E21,0x1E49,0x1E71,0x1E97, + 0x1EB7,0x1EDF,0x0000,0x0000,0x1F42,0x1F60,0x1F7C,0x1FA0, + 0x1FC6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0441,0x0455,0x0473,0x04A1,0x04C8,0x04EF,0x0000,0x0571, + 0x0585,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01AB,0x01DA,0x0203,0x022B,0x0000,0x025A,0x026E, + 0x0282,0x0296,0x02AA,0x0000,0x1E23,0x1E4B,0x1E73,0x1E98, + 0x1EB9,0x1EE1,0x0000,0x0000,0x1F43,0x1F61,0x1F7D,0x1FA1, + 0x1FC7,0x1FF2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0442,0x0456,0x0475,0x04A3,0x04CA,0x04F1,0x0000,0x0572, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01AD,0x01DC,0x0205,0x022D,0x0000,0x025B,0x026F, + 0x0283,0x0297,0x02AB,0x0000,0x1E25,0x1E4D,0x1E75,0x1E99, + 0x1EBB,0x1EE3,0x0000,0x1F20,0x1F44,0x1F62,0x0000,0x1FA2, + 0x1FD0,0x1FF3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0443,0x0457,0x0477,0x04A5,0x04CC,0x04F3,0x0000,0x0573, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0xFF5A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x01B0,0x01DD,0x0207,0x022F,0x0000,0x025C,0x0270, + 0x0284,0x0298,0x02AC,0x0000,0x1E27,0x1E4F,0x1E77,0x1E9A, + 0x1EBD,0x1EE5,0x0000,0x1F21,0x1F45,0x1F63,0x0000,0x1FA3, + 0x1FD1,0x1FF4 +}; + + +/* 00C0-05FF */ +static const uint16 uni_0C00_05FF[1344]= +{ + 0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E, + 0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026, + 0x0027,0x0028,0x0029,0x002A,0x0067,0x0068,0x0069,0x0000, + 0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x008A, + 0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E, + 0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046, + 0x0047,0x0048,0x0049,0x004A,0x0087,0x0088,0x0089,0x0000, + 0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092, + 0x0073,0x0093,0x0074,0x0094,0x0075,0x0095,0x0076,0x0096, + 0x0077,0x0097,0x0078,0x0098,0x0079,0x0099,0x007A,0x009A, + 0x00B7,0x00D7,0x00B8,0x00D8,0x00B9,0x00D9,0x00BA,0x00DA, + 0x00BB,0x00DB,0x00BC,0x00DC,0x00BD,0x00DD,0x00BE,0x00DE, + 0x00BF,0x00DF,0x00C0,0x00E0,0x00C1,0x00E1,0x00C2,0x00E2, + 0x00C3,0x00E3,0x00C4,0x00E4,0x00C5,0x00E5,0x00C6,0x00E6, + 0x0000,0x00E7,0x00C8,0x00E8,0x00C9,0x00E9,0x00CA,0x00EA, + 0x0127,0x0108,0x0128,0x0109,0x0129,0x010A,0x012A,0x010B, + 0x012B,0x010C,0x012C,0x010D,0x012D,0x010E,0x012E,0x010F, + 0x012F,0x0130,0x0111,0x0131,0x0112,0x0132,0x0113,0x0133, + 0x0114,0x0134,0x0115,0x0135,0x0116,0x0136,0x0117,0x0137, + 0x0118,0x0138,0x0119,0x0139,0x011A,0x013A,0x0157,0x0177, + 0x0158,0x0178,0x0159,0x0179,0x015A,0x017A,0x015B,0x017B, + 0x015C,0x017C,0x015D,0x017D,0x015E,0x017E,0x015F,0x017F, + 0x0160,0x0180,0x0161,0x0181,0x0162,0x0182,0x0163,0x0183, + 0x0072,0x0164,0x0184,0x0165,0x0185,0x0166,0x0186,0x0187, + 0x1161,0x0A86,0x07B1,0x11B1,0x0801,0x1201,0x0AD6,0x0851, + 0x1251,0x0B76,0x0BC6,0x08A1,0x12A1,0x12F1,0x0D52,0x0C66, + 0x0D06,0x0941,0x1341,0x0857,0x0947,0x1391,0x0B27,0x0AD7, + 0x09E1,0x13E1,0x1431,0x1481,0x0D07,0x07B8,0x14D1,0x08A8, + 0x0B21,0x1521,0x0B71,0x1571,0x0BC1,0x15C1,0x0C18,0x0C11, + 0x1611,0x0D08,0x1661,0x16B1,0x0D01,0x1701,0x0859,0x0D51, + 0x1751,0x08F9,0x0949,0x0762,0x1162,0x07B2,0x11B2,0x0B79, + 0x0802,0x1202,0x1252,0x12A2,0x0992,0x1392,0x1342,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x09E2,0x0000,0x13E2,0x0A32, + 0x0000,0x1432,0x0A82,0x0000,0x1482,0x0AD2,0x14D2,0x0B22, + 0x1522,0x0B72,0x1572,0x0BC2,0x15C2,0x0C12,0x1612,0x0C62, + 0x1662,0x0CB2,0x16B2,0x0D02,0x1702,0x1752,0x0763,0x1163, + 0x07B3,0x11B3,0x0803,0x1203,0x0853,0x1253,0x08A3,0x12A3, + 0x08F3,0x12F3,0x0943,0x1343,0x0993,0x1393,0x09E3,0x13E3, + 0x1433,0x0A83,0x0000,0x1483,0x0AD3,0x14D3,0x0991,0x0000, + 0x0B23,0x1523,0x0B73,0x1573,0x0BC3,0x15C3,0x0C13,0x1613, + 0x0C63,0x1663,0x0CB3,0x16B3,0x0D03,0x1703,0x0D53,0x1753, + 0x0764,0x1164,0x07B4,0x11B4,0x0804,0x1204,0x0854,0x1254, + 0x08A4,0x12A4,0x08F4,0x12F4,0x0944,0x1344,0x0994,0x1394, + 0x09E4,0x13E4,0x0A34,0x1434,0x0A84,0x1484,0x0AD4,0x14D4, + 0x0AD1,0x1524,0x0B74,0x1574,0x0BC4,0x15C4,0x0C14,0x1614, + 0x0C64,0x1664,0x0CB4,0x16B4,0x0D04,0x1704,0x0D54,0x1754, + 0x0765,0x1165,0x07B5,0x11B5,0x1205,0x1255,0x12A5,0x12F5, + 0x1345,0x1395,0x09E5,0x0A35,0x1435,0x0A31,0x0A85,0x14D5, + 0x1525,0x0C19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x1396,0x13E6,0x1436,0x1486,0x14D6,0x1526,0x1576,0x15C6, + 0x1616,0x1666,0x16B6,0x1706,0x1756,0x1167,0x11B7,0x1207, + 0x1257,0x12A7,0x12F7,0x1347,0x1397,0x13E7,0x1437,0x1487, + 0x14D7,0x1527,0x1577,0x15C7,0x1617,0x1667,0x16B7,0x1707, + 0x1757,0x1168,0x11B8,0x1208,0x1258,0x12A8,0x12F8,0x1348, + 0x1398,0x13E8,0x1438,0x1488,0x14D8,0x1528,0x1578,0x15C8, + 0x1618,0x1668,0x16B8,0x1708,0x1758,0x1169,0x11B9,0x1209, + 0x1259,0x12A9,0x12F9,0x1349,0x1399,0x13E9,0x1439,0x1489, + 0x14D9,0x1529,0x1579,0x15C9,0x1619,0x1669,0x16B9,0x1709, + 0x1759,0x116A,0x11BA,0x120A,0x125A,0x12AA,0x12FA,0x134A, + 0x139A,0x13EA,0x143A,0x148A,0x14DA,0x152A,0x157A,0x15CA, + 0x161A,0x166A,0x16BA,0x170A,0x175A,0x116B,0x11BB,0x120B, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01F7,0x0000, + 0x01F8,0x01F9,0x01FA,0x0000,0x0253,0x0000,0x0254,0x0255, + 0x01D9,0x01FC,0x0257,0x01FE,0x01FF,0x0200,0x0201,0x0202, + 0x0258,0x0204,0x02A7,0x0206,0x0207,0x0208,0x0209,0x020A, + 0x0299,0x0248,0x0000,0x02A9,0x024B,0x024C,0x0298,0x024E, + 0x024F,0x0250,0x0251,0x0252,0x0217,0x0218,0x0219,0x021A, + 0x021B,0x021C,0x021D,0x021E,0x021F,0x0220,0x0221,0x0222, + 0x0223,0x0224,0x0225,0x0226,0x0227,0x0228,0x0229,0x022A, + 0x0267,0x0268,0x0269,0x026A,0x026B,0x026C,0x026D,0x026E, + 0x026F,0x0270,0x0271,0x0272,0x0273,0x0274,0x0275,0x0000, + 0x0277,0x0278,0x0259,0x025A,0x0297,0x02B8,0x02B9,0x02BA, + 0x0000,0x02BB,0x029C,0x02BC,0x029D,0x02BD,0x029E,0x02BE, + 0x029F,0x02BF,0x02A0,0x02C0,0x02A1,0x02C1,0x02A2,0x02C2, + 0x02A3,0x02C3,0x02A4,0x02C4,0x02A5,0x02C5,0x02A6,0x02C6, + 0x02C7,0x02C8,0x02C9,0x02CA,0x0000,0x0307,0x0308,0x0000, + 0x0309,0x0000,0x0000,0x030A,0x030B,0x02EC,0x02ED,0x02EE, + 0x0AF1,0x0B41,0x0B91,0x0BE1,0x0C31,0x0C81,0x0CD1,0x0D21, + 0x0732,0x0782,0x07D2,0x0822,0x0872,0x08C2,0x0912,0x0962, + 0x0730,0x0780,0x07D0,0x0820,0x0870,0x08C0,0x0910,0x0960, + 0x09B0,0x0A00,0x0A50,0x0AA0,0x0AF0,0x0B40,0x0B90,0x0BE0, + 0x0C30,0x0C80,0x0CD0,0x0D20,0x0731,0x0781,0x07D1,0x0821, + 0x0871,0x08C1,0x0911,0x0961,0x09B1,0x0A01,0x0A51,0x0AA1, + 0x1130,0x1180,0x11D0,0x1220,0x1270,0x12C0,0x1310,0x1360, + 0x13B0,0x1400,0x1450,0x14A0,0x14F0,0x1540,0x1590,0x15E0, + 0x1630,0x1680,0x16D0,0x1720,0x1131,0x1181,0x11D1,0x1221, + 0x1271,0x12C1,0x1311,0x1361,0x13B1,0x1401,0x1451,0x14A1, + 0x14F1,0x1541,0x1591,0x15E1,0x1631,0x1681,0x16D1,0x1721, + 0x1132,0x1182,0x11D2,0x1222,0x1272,0x12C2,0x1312,0x1362, + 0x09B2,0x13B2,0x0A02,0x1402,0x0A52,0x1452,0x0AA2,0x14A2, + 0x0AF2,0x14F2,0x0B42,0x1542,0x0B92,0x1592,0x0BE2,0x15E2, + 0x0C32,0x1632,0x0C82,0x1682,0x0CD2,0x16D2,0x0D22,0x1722, + 0x0733,0x1133,0x0783,0x1183,0x07D3,0x11D3,0x0823,0x1223, + 0x0873,0x1273,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0913,0x1313,0x0963,0x1363,0x09B3,0x13B3, + 0x0A03,0x1403,0x0A53,0x1453,0x0AA3,0x14A3,0x0AF3,0x14F3, + 0x0B43,0x1543,0x0B93,0x1593,0x0BE3,0x15E3,0x0C33,0x1633, + 0x0C83,0x1683,0x0CD3,0x16D3,0x0D23,0x1723,0x0734,0x1134, + 0x0784,0x1184,0x07D4,0x11D4,0x0824,0x1224,0x0874,0x1274, + 0x08C4,0x12C4,0x0914,0x1314,0x0964,0x1364,0x09B4,0x13B4, + 0x0A04,0x1404,0x0A54,0x1454,0x0AA4,0x14A4,0x0AF4,0x14F4, + 0x0B44,0x0B94,0x1594,0x0BE4,0x15E4,0x0C34,0x1634,0x0C84, + 0x1684,0x0CD4,0x16D4,0x0D24,0x1724,0x0735,0x1135,0x0000, + 0x07D5,0x11D5,0x0825,0x1225,0x0875,0x1275,0x08C5,0x12C5, + 0x0915,0x1315,0x0965,0x1365,0x09B5,0x13B5,0x0A05,0x1405, + 0x0A55,0x1455,0x0AA5,0x14A5,0x0AF5,0x14F5,0x0B45,0x1545, + 0x0B95,0x1595,0x0BE5,0x15E5,0x0C35,0x1635,0x0C85,0x1685, + 0x0CD5,0x16D5,0x0D25,0x1725,0x0736,0x1136,0x0786,0x1186, + 0x07D6,0x11D6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0A06,0x1406,0x0A56,0x1456,0x0AA6,0x14A6,0x0AF6,0x14F6, + 0x0B46,0x1546,0x0B96,0x1596,0x0BE6,0x15E6,0x0C36,0x1636, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0787,0x07D7,0x0827,0x0877,0x08C7,0x0917,0x0967, + 0x09B7,0x0A07,0x0A57,0x0AA7,0x0AF7,0x0B47,0x0B97,0x0BE7, + 0x0C37,0x0C87,0x0CD7,0x0D27,0x0738,0x0788,0x07D8,0x0828, + 0x0878,0x08C8,0x0918,0x0968,0x09B8,0x0A08,0x0A58,0x0AA8, + 0x0AF8,0x0B48,0x0B98,0x0BE8,0x0C38,0x0C88,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x1187,0x11D7,0x1227,0x1277,0x12C7,0x1317,0x1367, + 0x13B7,0x1407,0x1457,0x14A7,0x14F7,0x1547,0x1597,0x15E7, + 0x1637,0x1687,0x16D7,0x1727,0x1138,0x1188,0x11D8,0x1228, + 0x1278,0x12C8,0x1318,0x1368,0x13B8,0x1408,0x1458,0x14A8, + 0x14F8,0x1548,0x1598,0x15E8,0x1638,0x1688,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + + +/* 1E00-1FFF */ +static const uint16 uni_1E00_1FFF[512]= +{ + 0x076C,0x116C,0x07BC,0x11BC,0x080C,0x120C,0x085C,0x125C, + 0x08AC,0x12AC,0x08FC,0x12FC,0x094C,0x134C,0x099C,0x139C, + 0x09EC,0x13EC,0x0A3C,0x143C,0x0A8C,0x148C,0x0ADC,0x14DC, + 0x0B2C,0x152C,0x0B7C,0x157C,0x0BCC,0x15CC,0x0C1C,0x161C, + 0x0C6C,0x166C,0x0CBC,0x16BC,0x0D0C,0x170C,0x0D5C,0x175C, + 0x076D,0x116D,0x07BD,0x11BD,0x080D,0x120D,0x085D,0x125D, + 0x08AD,0x12AD,0x08FD,0x12FD,0x094D,0x134D,0x099D,0x139D, + 0x09ED,0x13ED,0x0A3D,0x143D,0x0A8D,0x148D,0x0ADD,0x14DD, + 0x0B2D,0x152D,0x0B7D,0x157D,0x0BCD,0x15CD,0x0C1D,0x161D, + 0x0C6D,0x166D,0x0CBD,0x16BD,0x0D0D,0x170D,0x0D5D,0x175D, + 0x076E,0x116E,0x07BE,0x11BE,0x080E,0x120E,0x085E,0x125E, + 0x08AE,0x12AE,0x08FE,0x12FE,0x094E,0x134E,0x099E,0x139E, + 0x0770,0x13EE,0x0A3E,0x143E,0x0A8E,0x148E,0x0ADE,0x14DE, + 0x0B2E,0x152E,0x0B7E,0x157E,0x0BCE,0x15CE,0x0C1E,0x161E, + 0x0C6E,0x166E,0x0CBE,0x16BE,0x0D0E,0x170E,0x0D5E,0x175E, + 0x076F,0x116F,0x07BF,0x11BF,0x080F,0x120F,0x085F,0x125F, + 0x08AF,0x12AF,0x08FF,0x12FF,0x094F,0x134F,0x099F,0x139F, + 0x09EF,0x13EF,0x0A3F,0x143F,0x0A8F,0x148F,0x0ADF,0x14DF, + 0x0B2F,0x152F,0x0B7F,0x157F,0x0BCF,0x15CF,0x161F,0x166F, + 0x16BF,0x170F,0x175F,0x1170,0x0000,0x0000,0x0000,0x0000, + 0x0900,0x1300,0x0950,0x1350,0x09A0,0x13A0,0x09F0,0x13F0, + 0x0A40,0x1440,0x0A90,0x1490,0x0AE0,0x14E0,0x0B30,0x1530, + 0x0B80,0x1580,0x0BD0,0x15D0,0x0C20,0x1620,0x0C70,0x1670, + 0x0CC0,0x16C0,0x0D10,0x1710,0x0D60,0x1760,0x0771,0x1171, + 0x07C1,0x11C1,0x0811,0x1211,0x0861,0x1261,0x08B1,0x12B1, + 0x0901,0x1301,0x0951,0x1351,0x09A1,0x13A1,0x09F1,0x13F1, + 0x0A41,0x1441,0x0A91,0x1491,0x0AE1,0x14E1,0x0B31,0x1531, + 0x0B81,0x1581,0x0BD1,0x15D1,0x0C21,0x1621,0x0C71,0x1671, + 0x0CC1,0x16C1,0x0D11,0x1711,0x0D61,0x1761,0x0772,0x1172, + 0x07C2,0x11C2,0x0812,0x1212,0x0862,0x1262,0x08B2,0x12B2, + 0x0902,0x1302,0x0952,0x1352,0x09A2,0x13A2,0x09F2,0x13F2, + 0x0A42,0x1442,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x1173,0x11C3,0x1213,0x1263,0x12B3,0x1303,0x1353,0x13A3, + 0x0773,0x07C3,0x0813,0x0863,0x08B3,0x0903,0x0953,0x09A3, + 0x13F3,0x1443,0x1493,0x14E3,0x1533,0x1583,0x0000,0x0000, + 0x09F3,0x0A43,0x0A93,0x0AE3,0x0B33,0x0B83,0x0000,0x0000, + 0x1713,0x1763,0x1174,0x11C4,0x1214,0x1264,0x12B4,0x1304, + 0x0D13,0x0D63,0x0774,0x07C4,0x0814,0x0864,0x08B4,0x0904, + 0x1354,0x13A4,0x13F4,0x1444,0x1494,0x14E4,0x1534,0x1584, + 0x0954,0x09A4,0x09F4,0x0A44,0x0A94,0x0AE4,0x0B34,0x0B84, + 0x15D4,0x1624,0x1674,0x16C4,0x1714,0x1764,0x0000,0x0000, + 0x0BD4,0x0C24,0x0C74,0x0CC4,0x0D14,0x0D64,0x0000,0x0000, + 0x12B5,0x1305,0x1355,0x13A5,0x13F5,0x1445,0x1495,0x14E5, + 0x0000,0x0905,0x0000,0x09A5,0x0000,0x0A45,0x0000,0x0AE5, + 0x1675,0x16C5,0x1715,0x1765,0x1176,0x11C6,0x1216,0x1266, + 0x0C75,0x0CC5,0x0D15,0x0D65,0x0776,0x07C6,0x0816,0x0866, + 0x12B6,0x1306,0x1356,0x13A6,0x13F6,0x1446,0x1496,0x14E6, + 0x1536,0x1586,0x15D6,0x1626,0x1676,0x16C6,0x0000,0x0000, + 0x1177,0x11C7,0x1217,0x1267,0x12B7,0x1307,0x1357,0x13A7, + 0x0777,0x07C7,0x0817,0x0867,0x08B7,0x0907,0x0957,0x09A7, + 0x13F7,0x1447,0x1497,0x14E7,0x1537,0x1587,0x15D7,0x1627, + 0x09F7,0x0A47,0x0A97,0x0AE7,0x0B37,0x0B87,0x0BD7,0x0C27, + 0x1677,0x16C7,0x1717,0x1767,0x1178,0x11C8,0x1218,0x1268, + 0x0C77,0x0CC7,0x0D17,0x0D67,0x0778,0x07C8,0x0818,0x0868, + 0x12B8,0x1308,0x1358,0x13A8,0x13F8,0x0000,0x1498,0x14E8, + 0x08B8,0x0908,0x08B6,0x0906,0x09A8,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x1538,0x1588,0x15D8,0x0000,0x1678,0x16C8, + 0x0956,0x09A6,0x09F6,0x0A46,0x0B88,0x0000,0x0000,0x0000, + 0x1718,0x1768,0x1179,0x11C9,0x0000,0x0000,0x12B9,0x1309, + 0x0D18,0x0D68,0x0A96,0x0AE6,0x0000,0x0000,0x0000,0x0000, + 0x13A9,0x13F9,0x1449,0x1499,0x14E9,0x1539,0x1589,0x15D9, + 0x09A9,0x09F9,0x0BD6,0x0C26,0x0B39,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x16C9,0x1719,0x0000,0x0000,0x11CA,0x121A, + 0x0B36,0x0B86,0x0C76,0x0CC6,0x0D19,0x0000,0x0000,0x0000 +}; + + +/* 2160-217F */ +static const uint16 uni_2160_217F[32]= +{ + 0x0739,0x0789,0x07D9,0x0829,0x0879,0x08C9,0x0919,0x0969, + 0x09B9,0x0A09,0x0A59,0x0AA9,0x0AF9,0x0B49,0x0B99,0x0BE9, + 0x1139,0x1189,0x11D9,0x1229,0x1279,0x12C9,0x1319,0x1369, + 0x13B9,0x1409,0x1459,0x14A9,0x14F9,0x1549,0x1599,0x15E9 +}; + + +/* 24B0-24EF */ +static const uint16 uni_24B0_24EF[64]= +{ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0511,0x0512, + 0x0513,0x0514,0x0515,0x0516,0x0517,0x0518,0x0519,0x051A, + 0x051B,0x051C,0x051D,0x051E,0x051F,0x0520,0x0521,0x0522, + 0x0523,0x0524,0x0525,0x0526,0x0527,0x0528,0x0529,0x052A, + 0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537,0x0538, + 0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F,0x0540, + 0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547,0x0548, + 0x0549,0x054A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + + +/* FF20-FF5F */ +static const uint16 uni_FF20_FF5F[64]= +{ + 0x0000,0x0560,0x05B0,0x0600,0x0650,0x06A0,0x06F0,0x0740, + 0x0790,0x07E0,0x0830,0x0880,0x08D0,0x0920,0x0970,0x09C0, + 0x0A10,0x0A60,0x0AB0,0x0B00,0x0B50,0x0BA0,0x0BF0,0x0C40, + 0x0C90,0x0CE0,0x0D30,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0F60,0x0FB0,0x1000,0x1050,0x10A0,0x10F0,0x1140, + 0x1190,0x11E0,0x1230,0x1280,0x12D0,0x1320,0x1370,0x13C0, + 0x1410,0x1460,0x14B0,0x1500,0x1550,0x15A0,0x15F0,0x1640, + 0x1690,0x16E0,0x1730,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + + + + + +/* + Returns + a number 0..15, if a valid HEX digit in lower case, + -1 otherwise. +*/ + +static int hexlo(int x) +{ + static char hex_lo_digit[256]= + { + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* !"#$%&'()*+,-./ */ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, /* 0123456789:;<=>? */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* @ABCDEFGHIJKLMNO */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* PQRSTUVWXYZ[\]^_ */ + -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* `abcdefghijklmno */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* pqrstuvwxyz{|}~. */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */ + }; + return hex_lo_digit[(unsigned int) x]; +} + + +/* + Safe characters: + '\0' NULL + A..Z capital letters, + a..z small letters + 0..9 digits + _ underscore +*/ +static const char filename_safe_char[128]= +{ + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* !"#$%&'()*+,-./ */ + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789:;<=>? */ + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* @ABCDEFGHIJKLMNO */ + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ[\]^_ */ + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* `abcdefghijklmno */ + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz{|}~. */ +}; + +#define MY_FILENAME_ESCAPE '@' + +static int +my_mb_wc_filename(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + int byte1, byte2; + if (s >= e) + return MY_CS_TOOSMALL; + + if (*s < 128 && filename_safe_char[*s]) + { + *pwc= *s; + return 1; + } + + if (*s != MY_FILENAME_ESCAPE) + return MY_CS_ILSEQ; + + if (s + 3 > e) + return MY_CS_TOOSMALL3; + + byte1= s[1]; + if (byte1 == 0) + return MY_CS_ILSEQ; /* avoid possible out-of-bounds read */ + byte2= s[2]; + + if (byte1 >= 0x30 && byte1 <= 0x7F && + byte2 >= 0x30 && byte2 <= 0x7F) + { + int code= (byte1 - 0x30) * 80 + byte2 - 0x30; + if (code < 5994 && touni[code]) + { + *pwc= touni[code]; + return 3; + } + if (byte1 == '@' && byte2 == '@') + { + *pwc= 0; + return 3; + } + } + + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + if ((byte1= hexlo(byte1)) >= 0 && + (byte2= hexlo(byte2)) >= 0) + { + int byte3= hexlo(s[3]); + int byte4= hexlo(s[4]); + if (byte3 >=0 && byte4 >=0) + { + *pwc= (byte1 << 12) + (byte2 << 8) + (byte3 << 4) + byte4; + return 5; + } + } + + return MY_CS_ILSEQ; +} + + +static int +my_wc_mb_filename(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + int code; + char hex[]= "0123456789abcdef"; + + if (s >= e) + return MY_CS_TOOSMALL; + + if (wc < 128 && filename_safe_char[wc]) + { + *s= (uchar) wc; + return 1; + } + + if (s + 3 > e) + return MY_CS_TOOSMALL3; + + *s++= MY_FILENAME_ESCAPE; + if ((wc >= 0x00C0 && wc <= 0x05FF && (code= uni_0C00_05FF[wc - 0x00C0])) || + (wc >= 0x1E00 && wc <= 0x1FFF && (code= uni_1E00_1FFF[wc - 0x1E00])) || + (wc >= 0x2160 && wc <= 0x217F && (code= uni_2160_217F[wc - 0x2160])) || + (wc >= 0x24B0 && wc <= 0x24EF && (code= uni_24B0_24EF[wc - 0x24B0])) || + (wc >= 0xFF20 && wc <= 0xFF5F && (code= uni_FF20_FF5F[wc - 0xFF20]))) + { + *s++= (code / 80) + 0x30; + *s++= (code % 80) + 0x30; + return 3; + } + + /* Non letter */ + if (s + 5 > e) + return MY_CS_TOOSMALL5; + + *s++= hex[(wc >> 12) & 15]; + *s++= hex[(wc >> 8) & 15]; + *s++= hex[(wc >> 4) & 15]; + *s++= hex[(wc) & 15]; + return 5; +} + + +static MY_COLLATION_HANDLER my_collation_filename_handler = +{ + NULL, /* init */ + my_strnncoll_utf8, + my_strnncollsp_utf8, + my_strnxfrm_unicode, + my_strnxfrmlen_utf8, + my_like_range_mb, + my_wildcmp_utf8, + my_strcasecmp_utf8, + my_instr_mb, + my_hash_sort_utf8, + my_propagate_complex +}; + +static MY_CHARSET_HANDLER my_charset_filename_handler= +{ + NULL, /* init */ + my_ismbchar_utf8, + my_mbcharlen_utf8, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_mb, + my_lengthsp_8bit, + my_numcells_mb, + my_mb_wc_filename, + my_wc_mb_filename, + my_mb_ctype_mb, + my_caseup_str_utf8, + my_casedn_str_utf8, + my_caseup_utf8, + my_casedn_utf8, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + + +CHARSET_INFO my_charset_filename= +{ + 17,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_HIDDEN|MY_CS_NONASCII, + "filename", /* cs name */ + "filename", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + to_upper_utf8, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 5, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_filename_handler, + &my_collation_filename_handler +}; + + +#ifdef MY_TEST_UTF8 +#include + +static void test_mb(const CHARSET_INFO *cs, uchar *s) +{ + while(*s) + { + if (my_ismbhead_utf8(cs,*s)) + { + uint len=my_mbcharlen_utf8(cs,*s); + while(len--) + { + printf("%c",*s); + s++; + } + printf("\n"); + } + else + { + printf("%c\n",*s); + s++; + } + } +} + +int main() +{ + char str[1024]=" utf8 test проба ПЕРРпо-РУССКИ"; + CHARSET_INFO *cs; + + test_mb(cs,(uchar*)str); + + printf("orig :'%s'\n",str); + + my_caseup_utf8(cs,str,15); + printf("caseup :'%s'\n",str); + + my_caseup_str_utf8(cs,str); + printf("caseup_str:'%s'\n",str); + + my_casedn_utf8(cs,str,15); + printf("casedn :'%s'\n",str); + + my_casedn_str_utf8(cs,str); + printf("casedn_str:'%s'\n",str); + + return 0; +} + +#endif + +#endif /* HAVE_CHARSET_UTF8 */ + + + +#ifdef HAVE_CHARSET_utf8mb4 + +/* + We consider bytes with code more than 127 as a letter. + This garantees that word boundaries work fine with regular + expressions. Note, there is no need to mark byte 255 as a + letter, it is illegal byte in UTF8. +*/ +static const uchar ctype_utf8mb4[]= +{ + 0, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, + 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 +}; + + +static const uchar to_lower_utf8mb4[]= +{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + + +static const uchar to_upper_utf8mb4[]= +{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, + 208,209,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 +}; + + +static inline int +bincmp_utf8mb4(const uchar *s, const uchar *se, + const uchar *t, const uchar *te) +{ + int slen= (int) (se - s), tlen= (int) (te - t); + int len= MY_MIN(slen, tlen); + int cmp= memcmp(s, t, len); + return cmp ? cmp : slen - tlen; +} + + +static int +my_mb_wc_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t * pwc, const uchar *s, const uchar *e) +{ + uchar c; + + if (s >= e) + return MY_CS_TOOSMALL; + + c= s[0]; + if (c < 0x80) + { + *pwc= c; + return 1; + } + else if (c < 0xc2) + return MY_CS_ILSEQ; + else if (c < 0xe0) + { + if (s + 2 > e) /* We need 2 characters */ + return MY_CS_TOOSMALL2; + + if (!(IS_CONTINUATION_BYTE(s[1]))) + return MY_CS_ILSEQ; + + *pwc= ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80); + return 2; + } + else if (c < 0xf0) + { + if (s + 3 > e) /* We need 3 characters */ + return MY_CS_TOOSMALL3; + + if (!(IS_CONTINUATION_BYTE(s[1]) && IS_CONTINUATION_BYTE(s[2]) && + (c >= 0xe1 || s[1] >= 0xa0))) + return MY_CS_ILSEQ; + + *pwc= ((my_wc_t) (c & 0x0f) << 12) | + ((my_wc_t) (s[1] ^ 0x80) << 6) | + (my_wc_t) (s[2] ^ 0x80); + return 3; + } + else if (c < 0xf5) + { + if (s + 4 > e) /* We need 4 characters */ + return MY_CS_TOOSMALL4; + + /* + UTF-8 quick four-byte mask: + 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + Encoding allows to encode U+00010000..U+001FFFFF + + The maximum character defined in the Unicode standard is U+0010FFFF. + Higher characters U+00110000..U+001FFFFF are not used. + + 11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min) + 11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max) + + Valid codes: + [F0][90..BF][80..BF][80..BF] + [F1][80..BF][80..BF][80..BF] + [F2][80..BF][80..BF][80..BF] + [F3][80..BF][80..BF][80..BF] + [F4][80..8F][80..BF][80..BF] + */ + + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + IS_CONTINUATION_BYTE(s[3]) && + (c >= 0xf1 || s[1] >= 0x90) && + (c <= 0xf3 || s[1] <= 0x8F))) + return MY_CS_ILSEQ; + *pwc = ((my_wc_t) (c & 0x07) << 18) | + ((my_wc_t) (s[1] ^ 0x80) << 12) | + ((my_wc_t) (s[2] ^ 0x80) << 6) | + (my_wc_t) (s[3] ^ 0x80); + return 4; + } + return MY_CS_ILSEQ; +} + + +/* + The same as above, but without range check + for example, for a null-terminated string +*/ +static int +my_mb_wc_utf8mb4_no_range(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t *pwc, const uchar *s) +{ + uchar c; + + c= s[0]; + if (c < 0x80) + { + *pwc = c; + return 1; + } + + if (c < 0xc2) + return MY_CS_ILSEQ; + + if (c < 0xe0) + { + if (!IS_CONTINUATION_BYTE(s[1])) + return MY_CS_ILSEQ; + + *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80); + return 2; + } + + if (c < 0xf0) + { + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + (c >= 0xe1 || s[1] >= 0xa0))) + return MY_CS_ILSEQ; + *pwc= ((my_wc_t) (c & 0x0f) << 12) | + ((my_wc_t) (s[1] ^ 0x80) << 6) | + (my_wc_t) (s[2] ^ 0x80); + + return 3; + } + else if (c < 0xf5) + { + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + IS_CONTINUATION_BYTE(s[3]) && + (c >= 0xf1 || s[1] >= 0x90) && + (c <= 0xf3 || s[1] <= 0x8F))) + return MY_CS_ILSEQ; + *pwc = ((my_wc_t) (c & 0x07) << 18) | + ((my_wc_t) (s[1] ^ 0x80) << 12) | + ((my_wc_t) (s[2] ^ 0x80) << 6) | + (my_wc_t) (s[3] ^ 0x80); + return 4; + } + return MY_CS_ILSEQ; +} + + +static int +my_wc_mb_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *r, uchar *e) +{ + int count; + + if (r >= e) + return MY_CS_TOOSMALL; + + if (wc < 0x80) + count= 1; + else if (wc < 0x800) + count= 2; + else if (wc < 0x10000) + count= 3; + else if (wc < 0x200000) + count= 4; + else return MY_CS_ILUNI; + + if (r + count > e) + return MY_CS_TOOSMALLN(count); + + switch (count) { + /* Fall through all cases!!! */ + case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000; + case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800; + case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0; + case 1: r[0] = (uchar) wc; + } + return count; +} + + +/* + The same as above, but without range check. +*/ +static int +my_wc_mb_utf8mb4_no_range(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + my_wc_t wc, uchar *r) +{ + int count; + + if (wc < 0x80) + count= 1; + else if (wc < 0x800) + count= 2; + else if (wc < 0x10000) + count= 3; + else if (wc < 0x200000) + count= 4; + else + return MY_CS_ILUNI; + + switch (count) + { + /* Fall through all cases!!! */ + case 4: r[3]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x10000; + case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800; + case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0; + case 1: r[0]= (uchar) wc; + } + return count; +} + + +static inline void +my_tolower_utf8mb4(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + if (*wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8)])) + *wc= page[*wc & 0xFF].tolower; + } +} + + +static inline void +my_toupper_utf8mb4(const MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + if (*wc <= uni_plane->maxchar) + { + const MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8)])) + *wc= page[*wc & 0xFF].toupper; + } +} + + +static size_t +my_caseup_utf8mb4(const CHARSET_INFO *cs, char *src, size_t srclen, + char *dst, size_t dstlen) +{ + my_wc_t wc; + int srcres, dstres; + char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + + while ((src < srcend) && + (srcres= my_mb_wc_utf8mb4(cs, &wc, + (uchar *) src, (uchar*) srcend)) > 0) + { + my_toupper_utf8mb4(uni_plane, &wc); + if ((dstres= my_wc_mb_utf8mb4(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + return (size_t) (dst - dst0); +} + + +static void +my_hash_sort_utf8mb4(const CHARSET_INFO *cs, const uchar *s, size_t slen, + ulong *n1, ulong *n2) +{ + my_wc_t wc; + int res; + const uchar *e= s + slen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + ulong tmp1; + ulong tmp2; + uint ch; + + /* + Remove end space. We do this to be able to compare + 'A ' and 'A' as identical + */ + while (e > s && e[-1] == ' ') + e--; + + tmp1= *n1; + tmp2= *n2; + + while ((res= my_mb_wc_utf8mb4(cs, &wc, (uchar*) s, (uchar*) e)) > 0) + { + my_tosort_unicode(uni_plane, &wc, cs->state); + + ch= (wc & 0xFF); + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + ch= (wc >> 8) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + + if (wc > 0xFFFF) + { + /* + Put the highest byte only if it is non-zero, + to make hash functions for utf8mb3 and utf8mb4 + compatible for BMP characters. + This is useful to keep order of records in + test results, e.g. for "SHOW GRANTS". + */ + ch= (wc >> 16) & 0xFF; + tmp1^= (((tmp1 & 63) + tmp2) * ch) + (tmp1 << 8); + tmp2+= 3; + } + s+= res; + } + + *n1= tmp1; + *n2= tmp2; +} + + +static size_t +my_caseup_str_utf8mb4(const CHARSET_INFO *cs, char *src) +{ + my_wc_t wc; + int srcres, dstres; + char *dst= src, *dst0= src; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(cs->caseup_multiply == 1); + + while (*src && + (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0) + { + my_toupper_utf8mb4(uni_plane, &wc); + if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (uchar*) dst)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + *dst= '\0'; + return (size_t) (dst - dst0); +} + + +static size_t +my_casedn_utf8mb4(const CHARSET_INFO *cs, + char *src, size_t srclen, + char *dst, size_t dstlen) +{ + my_wc_t wc; + int srcres, dstres; + char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + + while ((src < srcend) && + (srcres= my_mb_wc_utf8mb4(cs, &wc, + (uchar*) src, (uchar*) srcend)) > 0) + { + my_tolower_utf8mb4(uni_plane, &wc); + if ((dstres= my_wc_mb_utf8mb4(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + return (size_t) (dst - dst0); +} + + +static size_t +my_casedn_str_utf8mb4(const CHARSET_INFO *cs, char *src) +{ + my_wc_t wc; + int srcres, dstres; + char *dst= src, *dst0= src; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + DBUG_ASSERT(cs->casedn_multiply == 1); + + while (*src && + (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0) + { + my_tolower_utf8mb4(uni_plane, &wc); + if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (uchar*) dst)) <= 0) + break; + src+= srcres; + dst+= dstres; + } + + /* + In rare cases lower string can be shorter than + the original string, for example: + + "U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE" + (which is 0xC4B0 in utf8, i.e. two bytes) + + is converted into + + "U+0069 LATIN SMALL LETTER I" + (which is 0x69 in utf8, i.e. one byte) + + So, we need to put '\0' terminator after converting. + */ + + *dst= '\0'; + return (size_t) (dst - dst0); +} + + +static int +my_strnncoll_utf8mb4(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix) +{ + my_wc_t s_wc= 0; + my_wc_t t_wc= 0; + const uchar *se= s + slen; + const uchar *te= t + tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + + while ( s < se && t < te ) + { + int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se); + int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare bytewise */ + return bincmp_utf8mb4(s, se, t, te); + } + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+= s_res; + t+= t_res; + } + return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t))); +} + + +/** + + Compare strings, discarding end space + + If one string is shorter as the other, then we space extend the other + so that the strings have equal length. + + This will ensure that the following things hold: + + "a" == "a " + "a\0" < "a" + "a\0" < "a " + + @param cs Character set pinter. + @param a First string to compare. + @param a_length Length of 'a'. + @param b Second string to compare. + @param b_length Length of 'b'. + @param diff_if_only_endspace_difference + Set to 1 if the strings should be regarded as different + if they only difference in end space + + @return Comparison result. + @retval Negative number, if a less than b. + @retval 0, if a is equal to b + @retval Positive number, if a > b +*/ + +static int +my_strnncollsp_utf8mb4(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference) +{ + int res; + my_wc_t s_wc= 0; + my_wc_t t_wc= 0; + const uchar *se= s + slen, *te= t + tlen; + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + +#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE + diff_if_only_endspace_difference= FALSE; +#endif + + while ( s < se && t < te ) + { + int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se); + int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te); + + if ( s_res <= 0 || t_res <= 0 ) + { + /* Incorrect string, compare bytewise */ + return bincmp_utf8mb4(s, se, t, te); + } + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + + if ( s_wc != t_wc ) + { + return s_wc > t_wc ? 1 : -1; + } + + s+=s_res; + t+=t_res; + } + + slen= (size_t) (se-s); + tlen= (size_t) (te-t); + res= 0; + + if (slen != tlen) + { + int swap= 1; + if (diff_if_only_endspace_difference) + res= 1; /* Assume 'a' is bigger */ + if (slen < tlen) + { + slen= tlen; + s= t; + se= te; + swap= -1; + res= -res; + } + /* + This following loop uses the fact that in UTF-8 + all multibyte characters are greater than space, + and all multibyte head characters are greater than + space. It means if we meet a character greater + than space, it always means that the longer string + is greater. So we can reuse the same loop from the + 8bit version, without having to process full multibute + sequences. + */ + for ( ; s < se; s++) + { + if (*s != ' ') + return (*s < ' ') ? -swap : swap; + } + } + return res; +} + + +/** + Compare 0-terminated UTF8 strings. + + @param cs character set handler + @param s First 0-terminated string to compare + @param t Second 0-terminated string to compare + + @return Comparison result. + @retval negative number if s < t + @retval positive number if s > t + @retval 0 is the strings are equal +*/ + +static int +my_strcasecmp_utf8mb4(const CHARSET_INFO *cs, const char *s, const char *t) +{ + const MY_UNICASE_INFO *uni_plane= cs->caseinfo; + while (s[0] && t[0]) + { + my_wc_t s_wc,t_wc; + + if ((uchar) s[0] < 128) + { + /* + s[0] is between 0 and 127. + It represents a single byte character. + Convert it into weight according to collation. + */ + s_wc= plane00[(uchar) s[0]].tolower; + s++; + } + else + { + int res= my_mb_wc_utf8mb4_no_range(cs, &s_wc, (const uchar*) s); + + /* + In the case of wrong multibyte sequence we will + call strcmp() for byte-to-byte comparison. + */ + if (res <= 0) + return strcmp(s, t); + s+= res; + + my_tolower_utf8mb4(uni_plane, &s_wc); + } + + + /* Do the same for the second string */ + + if ((uchar) t[0] < 128) + { + /* Convert single byte character into weight */ + t_wc= plane00[(uchar) t[0]].tolower; + t++; + } + else + { + int res= my_mb_wc_utf8mb4_no_range(cs, &t_wc, (const uchar*) t); + if (res <= 0) + return strcmp(s, t); + t+= res; + + my_tolower_utf8mb4(uni_plane, &t_wc); + } + + /* Now we have two weights, let's compare them */ + if ( s_wc != t_wc ) + return ((int) s_wc) - ((int) t_wc); + } + return ((int) (uchar) s[0]) - ((int) (uchar) t[0]); +} + + +static int +my_wildcmp_utf8mb4(const CHARSET_INFO *cs, + const char *str, const char *strend, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_unicode(cs, str, strend, wildstr, wildend, + escape, w_one, w_many, cs->caseinfo); +} + + +static size_t +my_strnxfrmlen_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + size_t len) +{ + /* TODO: fix when working on WL "Unicode new version" */ + return (len * 2 + 2) / 4; +} + + +static int +my_valid_mbcharlen_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const uchar *s, const uchar *e) +{ + uchar c; + + if (s >= e) + return MY_CS_TOOSMALL; + + c= s[0]; + if (c < 0xf0) + return my_valid_mbcharlen_utf8mb3(s, e); + + if (c < 0xf5) + { + if (s + 4 > e) /* We need 4 characters */ + return MY_CS_TOOSMALL4; + + /* + UTF-8 quick four-byte mask: + 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + Encoding allows to encode U+00010000..U+001FFFFF + + The maximum character defined in the Unicode standard is U+0010FFFF. + Higher characters U+00110000..U+001FFFFF are not used. + + 11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min) + 11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max) + + Valid codes: + [F0][90..BF][80..BF][80..BF] + [F1][80..BF][80..BF][80..BF] + [F2][80..BF][80..BF][80..BF] + [F3][80..BF][80..BF][80..BF] + [F4][80..8F][80..BF][80..BF] + */ + + if (!(IS_CONTINUATION_BYTE(s[1]) && + IS_CONTINUATION_BYTE(s[2]) && + IS_CONTINUATION_BYTE(s[3]) && + (c >= 0xf1 || s[1] >= 0x90) && + (c <= 0xf3 || s[1] <= 0x8F))) + return MY_CS_ILSEQ; + + return 4; + } + + return MY_CS_ILSEQ; +} + + +static +size_t my_well_formed_len_utf8mb4(const CHARSET_INFO *cs, + const char *b, const char *e, + size_t pos, int *error) +{ + const char *b_start= b; + *error= 0; + while (pos) + { + int mb_len; + + if ((mb_len= my_valid_mbcharlen_utf8mb4(cs, (uchar*) b, (uchar*) e)) <= 0) + { + *error= b < e ? 1 : 0; + break; + } + b+= mb_len; + pos--; + } + return (size_t) (b - b_start); +} + + +static uint +my_ismbchar_utf8mb4(const CHARSET_INFO *cs, const char *b, const char *e) +{ + int res= my_valid_mbcharlen_utf8mb4(cs, (const uchar*)b, (const uchar*)e); + return (res > 1) ? res : 0; +} + + +static uint +my_mbcharlen_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), uint c) +{ + if (c < 0x80) + return 1; + if (c < 0xc2) + return 0; /* Illegal mb head */ + if (c < 0xe0) + return 2; + if (c < 0xf0) + return 3; + if (c < 0xf8) + return 4; + return 0; /* Illegal mb head */; +} + + +static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler= +{ + NULL, /* init */ + my_strnncoll_utf8mb4, + my_strnncollsp_utf8mb4, + my_strnxfrm_unicode, + my_strnxfrmlen_utf8mb4, + my_like_range_mb, + my_wildcmp_utf8mb4, + my_strcasecmp_utf8mb4, + my_instr_mb, + my_hash_sort_utf8mb4, + my_propagate_complex +}; + + +static MY_COLLATION_HANDLER my_collation_utf8mb4_bin_handler = +{ + NULL, /* init */ + my_strnncoll_mb_bin, + my_strnncollsp_mb_bin, + my_strnxfrm_unicode_full_bin, + my_strnxfrmlen_unicode_full_bin, + my_like_range_mb, + my_wildcmp_mb_bin, + my_strcasecmp_mb_bin, + my_instr_mb, + my_hash_sort_mb_bin, + my_propagate_simple +}; + + +MY_CHARSET_HANDLER my_charset_utf8mb4_handler= +{ + NULL, /* init */ + my_ismbchar_utf8mb4, + my_mbcharlen_utf8mb4, + my_numchars_mb, + my_charpos_mb, + my_well_formed_len_utf8mb4, + my_lengthsp_8bit, + my_numcells_mb, + my_mb_wc_utf8mb4, + my_wc_mb_utf8mb4, + my_mb_ctype_mb, + my_caseup_str_utf8mb4, + my_casedn_str_utf8mb4, + my_caseup_utf8mb4, + my_casedn_utf8mb4, + my_snprintf_8bit, + my_long10_to_str_8bit, + my_longlong10_to_str_8bit, + my_fill_8bit, + my_strntol_8bit, + my_strntoul_8bit, + my_strntoll_8bit, + my_strntoull_8bit, + my_strntod_8bit, + my_strtoll10_8bit, + my_strntoull10rnd_8bit, + my_scan_8bit +}; + + + +CHARSET_INFO my_charset_utf8mb4_general_ci= +{ + 45,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */ + MY_UTF8MB4, /* cs name */ + MY_UTF8MB4_GENERAL_CI,/* name */ + "UTF-8 Unicode", /* comment */ + NULL, /* tailoring */ + ctype_utf8mb4, /* ctype */ + to_lower_utf8mb4, /* to_lower */ + to_upper_utf8mb4, /* to_upper */ + to_upper_utf8mb4, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_utf8mb4_general_ci_handler +}; + + +CHARSET_INFO my_charset_utf8mb4_bin= +{ + 46,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM| + MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */ + MY_UTF8MB4, /* cs name */ + MY_UTF8MB4_BIN, /* name */ + "UTF-8 Unicode", /* comment */ + NULL, /* tailoring */ + ctype_utf8mb4, /* ctype */ + to_lower_utf8mb4, /* to_lower */ + to_upper_utf8mb4, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_compare */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_utf8mb4_bin_handler +}; + +#endif /* HAVE_CHARSET_utf8mb4 */ diff --git a/mysql/strings/ctype-win1250ch.c b/mysql/strings/ctype-win1250ch.c new file mode 100644 index 0000000..1a6b571 --- /dev/null +++ b/mysql/strings/ctype-win1250ch.c @@ -0,0 +1,715 @@ +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Shared, independent copyright: (C) 2001 Jan Pazdziora. + + Development of this software was supported by Neocortex, s.r.o. + MySQL AB expresses its gratitude to Jan for for giving us this software. + + Bug reports and suggestions are always welcome. + + This file implements the collating sequence for Windows-1250 + character set. It merely extends the binary sorting of US-ASCII + by adding characters with diacritical marks into proper places. + In addition, it sorts 'ch' between 'h' and 'i', and the sorting + is case sensitive, with uppercase being sorted first, in the + second pass. +*/ + +/* + * This comment is parsed by configure to create ctype.c, + * so don't change it unless you know what you are doing. + * + * .configure. strxfrm_multiply_win1250ch=2 + */ + +#include "my_global.h" +#include "m_string.h" +#include "m_ctype.h" + +#ifdef HAVE_CHARSET_cp1250 + + +static uint16 tab_cp1250_uni[256]={ + 0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, +0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, +0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, +0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, +0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, +0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, +0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, +0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, +0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, +0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, +0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, +0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, +0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, +0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, +0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, +0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, +0x20AC, 0,0x201A, 0,0x201E,0x2026,0x2020,0x2021, + 0,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, + 0,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, + 0,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, +0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, +0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, +0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + + +/* 0000-00FD , 254 chars */ +static const uchar tab_uni_cp1250_plane00[]={ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0x00,0x00,0x00,0xA4,0x00,0xA6,0xA7,0xA8,0xA9,0x00,0xAB,0xAC,0xAD,0xAE,0x00, +0xB0,0xB1,0x00,0x00,0xB4,0xB5,0xB6,0xB7,0xB8,0x00,0x00,0xBB,0x00,0x00,0x00,0x00, +0x00,0xC1,0xC2,0x00,0xC4,0x00,0x00,0xC7,0x00,0xC9,0x00,0xCB,0x00,0xCD,0xCE,0x00, +0x00,0x00,0x00,0xD3,0xD4,0x00,0xD6,0xD7,0x00,0x00,0xDA,0x00,0xDC,0xDD,0x00,0xDF, +0x00,0xE1,0xE2,0x00,0xE4,0x00,0x00,0xE7,0x00,0xE9,0x00,0xEB,0x00,0xED,0xEE,0x00, +0x00,0x00,0x00,0xF3,0xF4,0x00,0xF6,0xF7,0x00,0x00,0xFA,0x00,0xFC,0xFD}; + +/* 0102-017E , 125 chars */ +static const uchar tab_uni_cp1250_plane01[]={ +0xC3,0xE3,0xA5,0xB9,0xC6,0xE6,0x00,0x00,0x00,0x00,0xC8,0xE8,0xCF,0xEF,0xD0,0xF0, +0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC5,0xE5,0x00,0x00,0xBC,0xBE,0x00,0x00,0xA3, +0xB3,0xD1,0xF1,0x00,0x00,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD5,0xF5, +0x00,0x00,0xC0,0xE0,0x00,0x00,0xD8,0xF8,0x8C,0x9C,0x00,0x00,0xAA,0xBA,0x8A,0x9A, +0xDE,0xFE,0x8D,0x9D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD9,0xF9,0xDB,0xFB, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8F,0x9F,0xAF,0xBF,0x8E,0x9E}; + +/* 2013-20AC , 154 chars */ +static const uchar tab_uni_cp1250_plane20[]={ +0x96,0x97,0x00,0x00,0x00,0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00,0x86,0x87,0x95, +0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x8B,0x9B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80}; + +/* 02C7-02DD , 23 chars */ +static const uchar tab_uni_cp1250_plane02[]={ +0xA1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xA2,0xFF,0x00,0xB2,0x00,0xBD}; + +/* 2122-2122 , 1 chars */ +static const uchar tab_uni_cp1250_plane21[]={ +0x99}; + + +static MY_UNI_IDX idx_uni_cp1250[]={ + {0x0000,0x00FD,tab_uni_cp1250_plane00}, + {0x0102,0x017E,tab_uni_cp1250_plane01}, + {0x2013,0x20AC,tab_uni_cp1250_plane20}, + {0x02C7,0x02DD,tab_uni_cp1250_plane02}, + {0x2122,0x2122,tab_uni_cp1250_plane21}, + {0,0,NULL} +}; + + +static const uchar ctype_win1250ch[] = { +0x00, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x28, 0x28, 0x28, 0x28, 0x28, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x48, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, +0x84, 0x84, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 0x20, +0x20, 0x20, 0x10, 0x20, 0x10, 0x10, 0x10, 0x10, +0x20, 0x10, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, +0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x20, 0x10, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, +0x48, 0x10, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, +0x10, 0x10, 0x01, 0x10, 0x10, 0x10, 0x10, 0x01, +0x10, 0x10, 0x10, 0x02, 0x10, 0x10, 0x10, 0x10, +0x10, 0x02, 0x02, 0x10, 0x01, 0x10, 0x02, 0x02, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10 +}; + +static const uchar to_lower_win1250ch[] = { +0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, +0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, +0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, +0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, +0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, +0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, +0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, +0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, +0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, +0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, +0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, +0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, +0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, +0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, +0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, +0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +0x88, 0x89, 0x9a, 0x8b, 0x9c, 0x9d, 0x9e, 0x9f, +0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, +0xa0, 0xa1, 0xa2, 0xb3, 0xa4, 0xb9, 0xa6, 0xdf, +0xa8, 0xa9, 0xba, 0xab, 0xac, 0xad, 0xae, 0xbf, +0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, +0xb8, 0xb9, 0xba, 0xbb, 0xbe, 0xbd, 0xbe, 0xbf, +0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, +0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, +0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xd7, +0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, +0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, +0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, +0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, +0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff +}; + +static const uchar to_upper_win1250ch[] = { +0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, +0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, +0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, +0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, +0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, +0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, +0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, +0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, +0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, +0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, +0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, +0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, +0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, +0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, +0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, +0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +0x98, 0x99, 0x8a, 0x9b, 0x8c, 0x8d, 0x8e, 0x8f, +0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, +0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, +0xb0, 0xb1, 0xb2, 0xa3, 0xb4, 0xb5, 0xb6, 0xb7, +0xb8, 0xa5, 0xaa, 0xbb, 0xbc, 0xbd, 0xbc, 0xaf, +0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, +0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, +0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, +0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xa7, +0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, +0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, +0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xf7, +0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xff +}; + + + +static const uchar sort_order_win1250ch[] = { +0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, +16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, +32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, +48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, +64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, +80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, +96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, +112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, +128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, +144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, +160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, +176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, +192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, +208, 209, 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 +}; + +static const uchar _sort_order_win1250ch1[] = { +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +/* space ord 32 0x20 */ +0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, +0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, +/* 0 ord 48 0x30 */ +0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, +0x9a, 0x9b, + /* colon ord 58 0x3a */ + 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, +0xa2, + /* A ord 65 0x41 */ + 0xa4, 0xa5, + /* C ord 67 0x43 */ + 0xff, 0xa8, 0xa9, 0xaa, 0xab, +0xac, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, +0xb5, 0xb6, + /* R ord 82 0x52 */ + 0xb7, + /* S ord 83 0x53 */ + 0xb9, 0xbc, 0xbd, 0xbe, 0xbf, +0xc0, 0xc1, 0xc2, + /* [ ord 91 0x5b */ + 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, +0xc9, + /* a ord 97 0x61 */ + 0xa4, 0xa5, 0xff, 0xa8, 0xa9, 0xaa, 0xab, +0xac, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, +0xb5, 0xb6, 0xb7, 0xb9, 0xbc, 0xbd, 0xbe, 0xbf, +0xc0, 0xc1, 0xc2, + /* { ord 123 0x7b */ + 0xca, 0xcb, 0xcc, 0xcd, 0x81, +0x81, 0x81, 0xce, 0x81, 0xcf, 0xd0, 0xd1, 0xd2, +0x81, 0xd3, + /* Scaron ord 138 0x8a */ + 0xba, 0xd4, 0xb9, 0xbc, 0xc3, 0xc2, +0x81, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, +0x81, 0xdc, 0xba, 0xdd, 0xb9, 0xbc, 0xc3, 0xc2, +/* nobreakspace ord 160 0xa0 */ +0x82, 0xde, 0xdf, 0xb1, 0xe0, 0xa4, 0xe1, 0xe2, +0xe3, 0xe4, 0xb9, 0xe5, 0xe6, 0xe7, 0xe8, 0xc2, +0xe9, 0xea, 0xeb, 0xb1, 0xed, 0xee, 0x81, 0xef, +/* cedilla ord 183 0xb8 */ +0xf0, 0xa4, 0xb9, 0xf1, 0xb1, 0xf2, 0xb1, 0xc2, +0xb7, 0xa4, 0xa4, 0xa4, 0xa4, 0xb1, 0xa6, 0xa6, +0xa7, 0xa9, 0xa9, 0xa9, 0xa9, 0xae, 0xae, 0xa8, +/* Eth ord 208 0xd0 */ +0xa8, 0xb3, 0xb3, 0xb4, 0xb4, 0xb4, 0xb4, 0xf3, +0xb8, 0xbd, 0xbd, 0xbd, 0xbd, 0xc1, 0xbc, 0xbb, +/* racute ord 224 0xe0 */ +0xb7, 0xa4, 0xa4, 0xa4, 0xa4, 0xb1, 0xa6, 0xa6, +0xa7, 0xa9, 0xa9, 0xa9, 0xa9, 0xae, 0xae, 0xa8, +/* eth ord 240 0xf0 */ +0xa8, 0xb3, 0xb3, 0xb4, 0xb4, 0xb4, 0xb4, 0xf4, +0xb8, 0xbd, 0xbd, 0xbd, 0xbd, 0xc1, 0xbc, 0xf5 +}; + +static const uchar _sort_order_win1250ch2[] = { +0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, +0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, +0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, +0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, +/* space ord 32 0x20 */ +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +/* 0 ord 48 0x30 */ +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, + /* colon ord 58 0x3a */ + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, + /* A ord 65 0x41 */ + 0x01, 0x01, + /* C ord 67 0x43 */ + 0xff, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, + /* R ord 82 0x52 */ + 0x01, + /* S ord 83 0x53 */ + 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, + /* [ ord 91 0x5b */ + 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, + /* a ord 97 0x61 */ + 0x02, 0x02, 0xff, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x02, + /* { ord 123 0x7b */ + 0x01, 0x01, 0x01, 0x01, 0x22, +0x23, 0x24, 0x01, 0x25, 0x01, 0x01, 0x01, 0x01, +0x26, 0x01, + /* Scaron ord 138 0x8a */ + 0x01, 0x01, 0x03, 0x03, 0x01, 0x05, +0x27, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x28, 0x01, 0x02, 0x01, 0x04, 0x04, 0x02, 0x06, +/* nobreakspace ord 160 0xa0 */ +0x02, 0x01, 0x01, 0x07, 0x01, 0x11, 0x01, 0x01, +0x01, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x03, +0x01, 0x01, 0x01, 0x08, 0x01, 0x01, 0x29, 0x01, +/* cedilla ord 184 0xb8 */ +0x01, 0x12, 0x06, 0x01, 0x05, 0x01, 0x06, 0x04, +0x03, 0x03, 0x05, 0x07, 0x09, 0x03, 0x03, 0x05, +0x01, 0x03, 0x09, 0x07, 0x05, 0x03, 0x05, 0x03, +/* Eth ord 208 0xd0 */ +0x05, 0x03, 0x05, 0x03, 0x05, 0x09, 0x07, 0x01, +0x01, 0x05, 0x03, 0x09, 0x07, 0x03, 0x05, 0x01, +/* racute ord 224 0xe0 */ +0x04, 0x04, 0x06, 0x08, 0x0a, 0x04, 0x04, 0x06, +0x02, 0x04, 0x0a, 0x08, 0x06, 0x04, 0x06, 0x04, +/* eth ord 240 0xf0 */ +0x06, 0x04, 0x06, 0x04, 0x06, 0x0a, 0x08, 0x01, +0x02, 0x06, 0x04, 0x0a, 0x08, 0x04, 0x06, 0x01 +}; + +struct wordvalue { + const uchar *word; + uchar pass1; + uchar pass2; +}; +static struct wordvalue doubles[] = { + { (uchar*) "ch", 0xad, 0x03 }, + { (uchar*) "c", 0xa6, 0x02 }, + { (uchar*) "Ch", 0xad, 0x02 }, + { (uchar*) "CH", 0xad, 0x01 }, + { (uchar*) "C", 0xa6, 0x01 }, +}; + +#define NEXT_CMP_VALUE(src, p, pass, value, len) \ + while (1) { \ + if (IS_END(p, src, len)) { \ + if (pass == 0 && len > 0) { p= src; pass++; } \ + else { value = 0; break; } \ + } \ + value = ((pass == 0) ? _sort_order_win1250ch1[*p] \ + : _sort_order_win1250ch2[*p]); \ + if (value == 0xff) { \ + int i; \ + for (i = 0; i < (int) sizeof(doubles); i++) { \ + const uchar *patt = doubles[i].word; \ + const uchar *q = (const uchar *) p; \ + while (*patt \ + && !(IS_END(q, src, len)) \ + && (*patt == *q)) { \ + patt++; q++; \ + } \ + if (!(*patt)) { \ + value = (int)((pass == 0) \ + ? doubles[i].pass1 \ + : doubles[i].pass2); \ + p = (const uchar *) q - 1; \ + break; \ + } \ + } \ + } \ + p++; \ + break; \ + } + +#define IS_END(p, src, len) (((char *)p - (char *)src) >= (len)) + +static int my_strnncoll_win1250ch(const CHARSET_INFO *cs + MY_ATTRIBUTE((unused)), + const uchar *s1, size_t len1, + const uchar *s2, size_t len2, + my_bool s2_is_prefix) +{ + int v1, v2; + const uchar *p1, * p2; + int pass1 = 0, pass2 = 0; + int diff; + + if (s2_is_prefix && len1 > len2) + len1=len2; + + p1 = s1; p2 = s2; + + do + { + NEXT_CMP_VALUE(s1, p1, pass1, v1, (int)len1); + NEXT_CMP_VALUE(s2, p2, pass2, v2, (int)len2); + if ((diff = v1 - v2)) + return diff; + } while (v1); + return 0; +} + + +/* + TODO: Has to be fixed as strnncollsp in ctype-simple +*/ + +static +int my_strnncollsp_win1250ch(const CHARSET_INFO *cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool diff_if_only_endspace_difference + MY_ATTRIBUTE((unused))) +{ + for ( ; slen && s[slen-1] == ' ' ; slen--); + for ( ; tlen && t[tlen-1] == ' ' ; tlen--); + return my_strnncoll_win1250ch(cs,s,slen,t,tlen,0); +} + + +static size_t +my_strnxfrm_win1250ch(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + uchar *dest, size_t len, + uint nweights_arg MY_ATTRIBUTE((unused)), + const uchar *src, size_t srclen, uint flags) +{ + int value; + const uchar *p; + int pass = 0; + size_t totlen = 0; + p = src; + + if (!(flags & 0x0F)) /* All levels by default */ + flags|= 0x0F; + + for (; totlen < len;) + { + NEXT_CMP_VALUE(src, p, pass, value, (int)srclen); + if (!value) + break; + if (((1 << pass) & flags)) + dest[totlen++] = value; + } + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len > totlen) + { + memset(dest + totlen, 0x00, len - totlen); + totlen= len; + } + return totlen; +} + +#undef IS_END + + +static const uchar like_range_prefix_min_win1250ch[]= +{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, + 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF +}; + +/* + The letter "C" is a special case: + "CH" is sorted between "H" and "I". + prefix_max for "C" is "I": prefix_max[0x43] == 0x49 + prefix_max for "c" is "i": prefix_max[0x63] == 0x69 + For all other characters: prefix_max[i] == i +*/ + +static const uchar like_range_prefix_max_win1250ch[]= +{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + 0x40, 0x41, 0x42, 0x49, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, + 0x60, 0x61, 0x62, 0x69, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, + 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF +}; + +#define min_sort_char '\x20' +#define max_sort_char '\xff' + +/* +** Calculate min_str and max_str that ranges a LIKE string. +** Arguments: +** ptr Pointer to LIKE string. +** ptr_length Length of LIKE string. +** escape Escape character in LIKE. (Normally '\'). +** All escape characters should be removed from min_str and max_str +** res_length Length of min_str and max_str. +** min_str Smallest case sensitive string that ranges LIKE. +** Should be space padded to res_length. +** max_str Largest case sensitive string that ranges LIKE. +** Normally padded with the biggest character sort value. +** +** The function should return 0 if ok and 1 if the LIKE string can't be +** optimized ! +*/ + +static my_bool +my_like_range_win1250ch(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length) +{ + + int only_min_found= 1; + const char *end = ptr + ptr_length; + char *min_org = min_str; + char *min_end = min_str + res_length; + + /* return 1; */ + + for (; ptr != end && min_str != min_end ; ptr++) + { + if (*ptr == escape && ptr+1 != end) + ptr++; /* Skip escape */ + else if (*ptr == w_one || *ptr == w_many) /* '_' or '%' in SQL */ + break; + *min_str= like_range_prefix_min_win1250ch[(uint) (uchar) (*ptr)]; + if (*min_str != min_sort_char) + only_min_found= 0; + min_str++; + *max_str++= like_range_prefix_max_win1250ch[(uint) (uchar) (*ptr)]; + } + + if (cs->state & MY_CS_BINSORT) + *min_length= (size_t) (min_str - min_org); + else + { + /* 'a\0\0... is the smallest possible string */ + *min_length= res_length; + } + /* a\ff\ff... is the biggest possible string */ + *max_length= res_length; + + while (min_str != min_end) + { + *min_str++ = min_sort_char; + *max_str++ = max_sort_char; + } + return (only_min_found); +} + + +static MY_COLLATION_HANDLER my_collation_czech_ci_handler = +{ + NULL, /* init */ + my_strnncoll_win1250ch, + my_strnncollsp_win1250ch, + my_strnxfrm_win1250ch, + my_strnxfrmlen_simple, + my_like_range_win1250ch, + my_wildcmp_8bit, + my_strcasecmp_8bit, + my_instr_simple, + my_hash_sort_simple, + my_propagate_simple +}; + + +CHARSET_INFO my_charset_cp1250_czech_ci = +{ + 34,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */ + "cp1250", /* cs name */ + "cp1250_czech_cs", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_win1250ch, + to_lower_win1250ch, + to_upper_win1250ch, + sort_order_win1250ch, + NULL, /* uca */ + tab_cp1250_uni, /* tab_to_uni */ + idx_uni_cp1250, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 2, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 1, /* mbmaxlen */ + 1, /* mbmaxlenlen */ + 0, /* min_sort_char */ + 0, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 2, /* levels_for_compare */ + 2, /* levels_for_order */ + &my_charset_8bit_handler, + &my_collation_czech_ci_handler +}; + + +#endif /* HAVE_CHARSET_cp1250 */ diff --git a/mysql/strings/ctype.c b/mysql/strings/ctype.c new file mode 100644 index 0000000..f5401c0 --- /dev/null +++ b/mysql/strings/ctype.c @@ -0,0 +1,1104 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights + * reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include +#include + + +/* + + This files implements routines which parse XML based + character set and collation description files. + + Unicode collations are encoded according to + + Unicode Technical Standard #35 + Locale Data Markup Language (LDML) + http://www.unicode.org/reports/tr35/ + + and converted into ICU string according to + + Collation Customization + http://oss.software.ibm.com/icu/userguide/Collate_Customization.html + +*/ + + +/* + Avoid using my_snprintf + We cannot use my_snprintf() here, because ctype.o is + used to build conf_to_src, which must require minimun + dependency. +*/ + +#undef my_snprinf +#define my_snprintf "We cannot use my_snprintf in this file" + + +int (*my_string_stack_guard)(int)= NULL; + +static char *mstr(char *str,const char *src,size_t l1,size_t l2) +{ + l1= l1str; s++) + { + if (!strncmp(attr, s->str, len) && s->str[len] == 0) + return s; + } + return NULL; +} + +#define MY_CS_CSDESCR_SIZE 64 +#define MY_CS_TAILORING_SIZE 32*1024 +#define MY_CS_UCA_VERSION_SIZE 64 +#define MY_CS_CONTEXT_SIZE 64 + +typedef struct my_cs_file_info +{ + char csname[MY_CS_NAME_SIZE]; + char name[MY_CS_NAME_SIZE]; + uchar ctype[MY_CS_CTYPE_TABLE_SIZE]; + uchar to_lower[MY_CS_TO_LOWER_TABLE_SIZE]; + uchar to_upper[MY_CS_TO_UPPER_TABLE_SIZE]; + uchar sort_order[MY_CS_SORT_ORDER_TABLE_SIZE]; + uint16 tab_to_uni[MY_CS_TO_UNI_TABLE_SIZE]; + char comment[MY_CS_CSDESCR_SIZE]; + char *tailoring; + size_t tailoring_length; + size_t tailoring_alloced_length; + char context[MY_CS_CONTEXT_SIZE]; + CHARSET_INFO cs; + MY_CHARSET_LOADER *loader; +} MY_CHARSET_FILE; + + +static void +my_charset_file_reset_charset(MY_CHARSET_FILE *i) +{ + memset(&i->cs, 0, sizeof(i->cs)); +} + + +static void +my_charset_file_reset_collation(MY_CHARSET_FILE *i) +{ + i->tailoring_length= 0; + i->context[0]= '\0'; +} + + +static void +my_charset_file_init(MY_CHARSET_FILE *i) +{ + my_charset_file_reset_charset(i); + my_charset_file_reset_collation(i); + i->tailoring= NULL; + i->tailoring_alloced_length= 0; +} + + +static void +my_charset_file_free(MY_CHARSET_FILE *i) +{ + i->loader->mem_free(i->tailoring); +} + + +static int +my_charset_file_tailoring_realloc(MY_CHARSET_FILE *i, size_t newlen) +{ + if (i->tailoring_alloced_length > newlen || + (i->tailoring= i->loader->mem_realloc(i->tailoring, + (i->tailoring_alloced_length= + (newlen + 32*1024))))) + { + return MY_XML_OK; + } + return MY_XML_ERROR; +} + + +static int fill_uchar(uchar *a,uint size,const char *str, size_t len) +{ + uint i= 0; + const char *s, *b, *e=str+len; + + for (s=str ; s < e ; i++) + { + for ( ; (s < e) && strchr(" \t\r\n",s[0]); s++) ; + b=s; + for ( ; (s < e) && !strchr(" \t\r\n",s[0]); s++) ; + if (s == b || i > size) + break; + a[i]= (uchar) strtoul(b,NULL,16); + } + return 0; +} + +static int fill_uint16(uint16 *a,uint size,const char *str, size_t len) +{ + uint i= 0; + + const char *s, *b, *e=str+len; + for (s=str ; s < e ; i++) + { + for ( ; (s < e) && strchr(" \t\r\n",s[0]); s++) ; + b=s; + for ( ; (s < e) && !strchr(" \t\r\n",s[0]); s++) ; + if (s == b || i > size) + break; + a[i]= (uint16) strtol(b,NULL,16); + } + return 0; +} + + + + +static int +tailoring_append(MY_XML_PARSER *st, + const char *fmt, size_t len, const char *attr) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *) st->user_data; + size_t newlen= i->tailoring_length + len + 64; /* 64 for format */ + if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen)) + { + char *dst= i->tailoring + i->tailoring_length; + sprintf(dst, fmt, (int) len, attr); + i->tailoring_length+= strlen(dst); + return MY_XML_OK; + } + return MY_XML_ERROR; +} + + +static int +tailoring_append2(MY_XML_PARSER *st, + const char *fmt, + size_t len1, const char *attr1, + size_t len2, const char *attr2) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *) st->user_data; + size_t newlen= i->tailoring_length + len1 + len2 + 64; /* 64 for format */ + if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen)) + { + char *dst= i->tailoring + i->tailoring_length; + sprintf(dst, fmt, (int) len1, attr1, (int) len2, attr2); + i->tailoring_length+= strlen(dst); + return MY_XML_OK; + } + return MY_XML_ERROR; +} + + +static size_t +scan_one_character(const char *s, const char *e, my_wc_t *wc) +{ + CHARSET_INFO *cs= &my_charset_utf8_general_ci; + if (s >= e) + return 0; + + /* Escape sequence: \uXXXX */ + if (s[0] == '\\' && s + 2 < e && s[1] == 'u' && my_isxdigit(cs, s[2])) + { + size_t len= 3; /* We have at least one digit */ + for (s+= 3; s < e && my_isxdigit(cs, s[0]); s++, len++) + { + } + wc[0]= 0; + return len; + } + else if ((s[0] & 0x80) == 0) /* 7-bit character */ + { + wc[0]= 0; + return 1; + } + else /* Non-escaped character */ + { + int rc= cs->cset->mb_wc(cs, wc, (uchar *) s, (uchar *) e); + if (rc > 0) + return (size_t) rc; + } + return 0; +} + + +static int +tailoring_append_abbreviation(MY_XML_PARSER *st, + const char *fmt, size_t len, const char *attr) +{ + size_t clen; + const char *attrend= attr + len; + my_wc_t wc; + + for ( ; (clen= scan_one_character(attr, attrend, &wc)) > 0; attr+= clen) + { + DBUG_ASSERT(attr < attrend); + if (tailoring_append(st, fmt, clen, attr) != MY_XML_OK) + return MY_XML_ERROR; + } + return MY_XML_OK; +} + + +static int cs_enter(MY_XML_PARSER *st,const char *attr, size_t len) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data; + struct my_cs_file_section_st *s= cs_file_sec(attr,len); + int state= s ? s->state : 0; + + switch (state) { + case 0: + i->loader->reporter(WARNING_LEVEL, "Unknown LDML tag: '%.*s'", len, attr); + break; + + case _CS_CHARSET: + my_charset_file_reset_charset(i); + break; + + case _CS_COLLATION: + my_charset_file_reset_collation(i); + break; + + case _CS_RESET: + return tailoring_append(st, " &", 0, NULL); + + default: + break; + } + return MY_XML_OK; +} + + +static int cs_leave(MY_XML_PARSER *st,const char *attr, size_t len) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data; + struct my_cs_file_section_st *s= cs_file_sec(attr,len); + int state= s ? s->state : 0; + int rc; + + switch(state){ + case _CS_COLLATION: + if (i->tailoring_length) + i->cs.tailoring= i->tailoring; + rc= i->loader->add_collation ? i->loader->add_collation(&i->cs) : MY_XML_OK; + break; + + /* Rules: Logical Reset Positions */ + case _CS_RESET_FIRST_NON_IGNORABLE: + rc= tailoring_append(st, "[first non-ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_NON_IGNORABLE: + rc= tailoring_append(st, "[last non-ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_PRIMARY_IGNORABLE: + rc= tailoring_append(st, "[first primary ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_PRIMARY_IGNORABLE: + rc= tailoring_append(st, "[last primary ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_SECONDARY_IGNORABLE: + rc= tailoring_append(st, "[first secondary ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_SECONDARY_IGNORABLE: + rc= tailoring_append(st, "[last secondary ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_TERTIARY_IGNORABLE: + rc= tailoring_append(st, "[first tertiary ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_TERTIARY_IGNORABLE: + rc= tailoring_append(st, "[last tertiary ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_TRAILING: + rc= tailoring_append(st, "[first trailing]", 0, NULL); + break; + + case _CS_RESET_LAST_TRAILING: + rc= tailoring_append(st, "[last trailing]", 0, NULL); + break; + + case _CS_RESET_FIRST_VARIABLE: + rc= tailoring_append(st, "[first variable]", 0, NULL); + break; + + case _CS_RESET_LAST_VARIABLE: + rc= tailoring_append(st, "[last variable]", 0, NULL); + break; + + default: + rc=MY_XML_OK; + } + return rc; +} + + +static const char *diff_fmt[5]= +{ + "<%.*s", + "<<%.*s", + "<<<%.*s", + "<<<<%.*s", + "=%.*s" +}; + + +static const char *context_diff_fmt[5]= +{ + "<%.*s|%.*s", + "<<%.*s|%.*s", + "<<<%.*s|%.*s", + "<<<<%.*s|%.*s", + "=%.*s|%.*s" +}; + + +static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data; + struct my_cs_file_section_st *s; + int state= (int)((s= cs_file_sec(st->attr.start, + st->attr.end - st->attr.start)) ? + s->state : 0); + int rc= MY_XML_OK; + + switch (state) { + case _CS_MISC: + case _CS_FAMILY: + case _CS_ORDER: + break; + case _CS_ID: + i->cs.number= strtol(attr,(char**)NULL,10); + break; + case _CS_BINARY_ID: + i->cs.binary_number= strtol(attr,(char**)NULL,10); + break; + case _CS_PRIMARY_ID: + i->cs.primary_number= strtol(attr,(char**)NULL,10); + break; + case _CS_COLNAME: + i->cs.name=mstr(i->name,attr,len,MY_CS_NAME_SIZE-1); + break; + case _CS_CSNAME: + i->cs.csname=mstr(i->csname,attr,len,MY_CS_NAME_SIZE-1); + break; + case _CS_CSDESCRIPT: + i->cs.comment=mstr(i->comment,attr,len,MY_CS_CSDESCR_SIZE-1); + break; + case _CS_FLAG: + if (!strncmp("primary",attr,len)) + i->cs.state|= MY_CS_PRIMARY; + else if (!strncmp("binary",attr,len)) + i->cs.state|= MY_CS_BINSORT; + else if (!strncmp("compiled",attr,len)) + i->cs.state|= MY_CS_COMPILED; + break; + case _CS_UPPERMAP: + fill_uchar(i->to_upper,MY_CS_TO_UPPER_TABLE_SIZE,attr,len); + i->cs.to_upper=i->to_upper; + break; + case _CS_LOWERMAP: + fill_uchar(i->to_lower,MY_CS_TO_LOWER_TABLE_SIZE,attr,len); + i->cs.to_lower=i->to_lower; + break; + case _CS_UNIMAP: + fill_uint16(i->tab_to_uni,MY_CS_TO_UNI_TABLE_SIZE,attr,len); + i->cs.tab_to_uni=i->tab_to_uni; + break; + case _CS_COLLMAP: + fill_uchar(i->sort_order,MY_CS_SORT_ORDER_TABLE_SIZE,attr,len); + i->cs.sort_order=i->sort_order; + break; + case _CS_CTYPEMAP: + fill_uchar(i->ctype,MY_CS_CTYPE_TABLE_SIZE,attr,len); + i->cs.ctype=i->ctype; + break; + + /* Special purpose commands */ + case _CS_UCA_VERSION: + rc= tailoring_append(st, "[version %.*s]", len, attr); + break; + + case _CS_CL_SUPPRESS_CONTRACTIONS: + rc= tailoring_append(st, "[suppress contractions %.*s]", len, attr); + break; + + case _CS_CL_OPTIMIZE: + rc= tailoring_append(st, "[optimize %.*s]", len, attr); + break; + + case _CS_CL_SHIFT_AFTER_METHOD: + rc= tailoring_append(st, "[shift-after-method %.*s]", len, attr); + break; + + /* Collation Settings */ + case _CS_ST_STRENGTH: + /* 1, 2, 3, 4, 5, or primary, secondary, tertiary, quaternary, identical */ + rc= tailoring_append(st, "[strength %.*s]", len, attr); + break; + + case _CS_ST_ALTERNATE: + /* non-ignorable, shifted */ + rc= tailoring_append(st, "[alternate %.*s]", len, attr); + break; + + case _CS_ST_BACKWARDS: + /* on, off, 2 */ + rc= tailoring_append(st, "[backwards %.*s]", len, attr); + break; + + case _CS_ST_NORMALIZATION: + /* + TODO for WL#896: check collations for normalization: vi.xml + We want precomposed characters work well at this point. + */ + /* on, off */ + rc= tailoring_append(st, "[normalization %.*s]", len, attr); + break; + + case _CS_ST_CASE_LEVEL: + /* on, off */ + rc= tailoring_append(st, "[caseLevel %.*s]", len, attr); + break; + + case _CS_ST_CASE_FIRST: + /* upper, lower, off */ + rc= tailoring_append(st, "[caseFirst %.*s]", len, attr); + break; + + case _CS_ST_HIRAGANA_QUATERNARY: + /* on, off */ + rc= tailoring_append(st, "[hiraganaQ %.*s]", len, attr); + break; + + case _CS_ST_NUMERIC: + /* on, off */ + rc= tailoring_append(st, "[numeric %.*s]", len, attr); + break; + + case _CS_ST_VARIABLE_TOP: + /* TODO for WL#896: check value format */ + rc= tailoring_append(st, "[variableTop %.*s]", len, attr); + break; + + case _CS_ST_MATCH_BOUNDARIES: + /* none, whole-character, whole-word */ + rc= tailoring_append(st, "[match-boundaries %.*s]", len, attr); + break; + + case _CS_ST_MATCH_STYLE: + /* minimal, medial, maximal */ + rc= tailoring_append(st, "[match-style %.*s]", len, attr); + break; + + + /* Rules */ + case _CS_RESET: + rc= tailoring_append(st, "%.*s", len, attr); + break; + + case _CS_DIFF1: + case _CS_DIFF2: + case _CS_DIFF3: + case _CS_DIFF4: + case _CS_IDENTICAL: + rc= tailoring_append(st, diff_fmt[state - _CS_DIFF1], len, attr); + break; + + + /* Rules: Expansion */ + case _CS_EXP_EXTEND: + rc= tailoring_append(st, " / %.*s", len, attr); + break; + + case _CS_EXP_DIFF1: + case _CS_EXP_DIFF2: + case _CS_EXP_DIFF3: + case _CS_EXP_DIFF4: + case _CS_EXP_IDENTICAL: + if (i->context[0]) + { + rc= tailoring_append2(st, context_diff_fmt[state - _CS_EXP_DIFF1], + strlen(i->context), i->context, len, attr); + i->context[0]= 0; + } + else + rc= tailoring_append(st, diff_fmt[state - _CS_EXP_DIFF1], len, attr); + break; + + /* Rules: Context */ + case _CS_CONTEXT: + if (len < sizeof(i->context)) + { + memcpy(i->context, attr, len); + i->context[len]= '\0'; + } + break; + + /* Rules: Abbreviating Ordering Specifications */ + case _CS_A_DIFF1: + case _CS_A_DIFF2: + case _CS_A_DIFF3: + case _CS_A_DIFF4: + case _CS_A_IDENTICAL: + rc= tailoring_append_abbreviation(st, diff_fmt[state - _CS_A_DIFF1], len, attr); + break; + + /* Rules: Placing Characters Before Others */ + case _CS_RESET_BEFORE: + /* + TODO for WL#896: Add this check into text customization parser: + It is an error if the strength of the before relation is not identical + to the relation after the reset. We'll need this for WL#896. + */ + rc= tailoring_append(st, "[before %.*s]", len, attr); + break; + + + default: + break; + } + + return rc; +} + + +my_bool +my_parse_charset_xml(MY_CHARSET_LOADER *loader, const char *buf, size_t len) +{ + MY_XML_PARSER p; + struct my_cs_file_info info; + my_bool rc; + + my_charset_file_init(&info); + my_xml_parser_create(&p); + my_xml_set_enter_handler(&p,cs_enter); + my_xml_set_value_handler(&p,cs_value); + my_xml_set_leave_handler(&p,cs_leave); + info.loader= loader; + my_xml_set_user_data(&p, (void *) &info); + rc= (my_xml_parse(&p,buf,len) == MY_XML_OK) ? FALSE : TRUE; + my_xml_parser_free(&p); + my_charset_file_free(&info); + if (rc != MY_XML_OK) + { + const char *errstr= my_xml_error_string(&p); + if (sizeof(loader->error) > 32 + strlen(errstr)) + { + /* We cannot use my_snprintf() here. See previous comment. */ + sprintf(loader->error, "at line %d pos %d: %s", + my_xml_error_lineno(&p)+1, + (int) my_xml_error_pos(&p), + my_xml_error_string(&p)); + } + } + return rc; +} + + +/* + Check repertoire: detect pure ascii strings +*/ +uint +my_string_repertoire(const CHARSET_INFO *cs, const char *str, size_t length) +{ + const char *strend= str + length; + if (cs->mbminlen == 1) + { + for ( ; str < strend; str++) + { + if (((uchar) *str) > 0x7F) + return MY_REPERTOIRE_UNICODE30; + } + } + else + { + my_wc_t wc; + int chlen; + for (; + (chlen= cs->cset->mb_wc(cs, &wc, (uchar*) str, (uchar*) strend)) > 0; + str+= chlen) + { + if (wc > 0x7F) + return MY_REPERTOIRE_UNICODE30; + } + } + return MY_REPERTOIRE_ASCII; +} + + +/* + Returns repertoire for charset +*/ +uint my_charset_repertoire(const CHARSET_INFO *cs) +{ + return cs->state & MY_CS_PUREASCII ? + MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30; +} + + +/* + Detect whether a character set is ASCII compatible. + + Returns TRUE for: + + - all 8bit character sets whose Unicode mapping of 0x7B is '{' + (ignores swe7 which maps 0x7B to "LATIN LETTER A WITH DIAERESIS") + + - all multi-byte character sets having mbminlen == 1 + (ignores ucs2 whose mbminlen is 2) + + TODO: + + When merging to 5.2, this function should be changed + to check a new flag MY_CS_NONASCII, + + return (cs->flag & MY_CS_NONASCII) ? 0 : 1; + + This flag was previously added into 5.2 under terms + of WL#3759 "Optimize identifier conversion in client-server protocol" + especially to mark character sets not compatible with ASCII. + + We won't backport this flag to 5.0 or 5.1. + This function is Ok for 5.0 and 5.1, because we're not going + to introduce new tricky character sets between 5.0 and 5.2. +*/ +my_bool +my_charset_is_ascii_based(const CHARSET_INFO *cs) +{ + return + (cs->mbmaxlen == 1 && cs->tab_to_uni && cs->tab_to_uni['{'] == '{') || + (cs->mbminlen == 1 && cs->mbmaxlen > 1); +} + + +/* + Detect if a character set is 8bit, + and it is pure ascii, i.e. doesn't have + characters outside U+0000..U+007F + This functions is shared between "conf_to_src" + and dynamic charsets loader in "mysqld". +*/ +my_bool +my_charset_is_8bit_pure_ascii(const CHARSET_INFO *cs) +{ + size_t code; + if (!cs->tab_to_uni) + return 0; + for (code= 0; code < 256; code++) + { + if (cs->tab_to_uni[code] > 0x7F) + return 0; + } + return 1; +} + + +/* + Shared function between conf_to_src and mysys. + Check if a 8bit character set is compatible with + ascii on the range 0x00..0x7F. +*/ +my_bool +my_charset_is_ascii_compatible(const CHARSET_INFO *cs) +{ + uint i; + if (!cs->tab_to_uni) + return 1; + for (i= 0; i < 128; i++) + { + if (cs->tab_to_uni[i] != i) + return 0; + } + return 1; +} + + +/* + Convert a string between two character sets. + 'to' must be large enough to store (form_length * to_cs->mbmaxlen) bytes. + + @param to[OUT] Store result here + @param to_length Size of "to" buffer + @param to_cs Character set of result string + @param from Copy from here + @param from_length Length of the "from" string + @param from_cs Character set of the "from" string + @param errors[OUT] Number of conversion errors + + @return Number of bytes copied to 'to' string +*/ + +static size_t +my_convert_internal(char *to, size_t to_length, + const CHARSET_INFO *to_cs, + const char *from, size_t from_length, + const CHARSET_INFO *from_cs, uint *errors) +{ + int cnvres; + my_wc_t wc; + const uchar *from_end= (const uchar*) from + from_length; + char *to_start= to; + uchar *to_end= (uchar*) to + to_length; + my_charset_conv_mb_wc mb_wc= from_cs->cset->mb_wc; + my_charset_conv_wc_mb wc_mb= to_cs->cset->wc_mb; + uint error_count= 0; + + while (1) + { + if ((cnvres= (*mb_wc)(from_cs, &wc, (uchar*) from, from_end)) > 0) + from+= cnvres; + else if (cnvres == MY_CS_ILSEQ) + { + error_count++; + from++; + wc= '?'; + } + else if (cnvres > MY_CS_TOOSMALL) + { + /* + A correct multibyte sequence detected + But it doesn't have Unicode mapping. + */ + error_count++; + from+= (-cnvres); + wc= '?'; + } + else + break; // Not enough characters + +outp: + if ((cnvres= (*wc_mb)(to_cs, wc, (uchar*) to, to_end)) > 0) + to+= cnvres; + else if (cnvres == MY_CS_ILUNI && wc != '?') + { + error_count++; + wc= '?'; + goto outp; + } + else + break; + } + *errors= error_count; + return (uint32) (to - to_start); +} + + +/* + Convert a string between two character sets. + Optimized for quick copying of ASCII characters in the range 0x00..0x7F. + 'to' must be large enough to store (form_length * to_cs->mbmaxlen) bytes. + + @param to[OUT] Store result here + @param to_length Size of "to" buffer + @param to_cs Character set of result string + @param from Copy from here + @param from_length Length of the "from" string + @param from_cs Character set of the "from" string + @param errors[OUT] Number of conversion errors + + @return Number of bytes copied to 'to' string +*/ + +size_t +my_convert(char *to, size_t to_length, const CHARSET_INFO *to_cs, + const char *from, size_t from_length, + const CHARSET_INFO *from_cs, uint *errors) +{ + size_t length, length2; + /* + If any of the character sets is not ASCII compatible, + immediately switch to slow mb_wc->wc_mb method. + */ + if ((to_cs->state | from_cs->state) & MY_CS_NONASCII) + return my_convert_internal(to, to_length, to_cs, + from, from_length, from_cs, errors); + + length= length2= MY_MIN(to_length, from_length); + +#if defined(__i386__) + /* + Special loop for i386, it allows to refer to a + non-aligned memory block as UINT32, which makes + it possible to copy four bytes at once. This + gives about 10% performance improvement comparing + to byte-by-byte loop. + */ + for ( ; length >= 4; length-= 4, from+= 4, to+= 4) + { + if ((*(uint32*)from) & 0x80808080) + break; + *((uint32*) to)= *((const uint32*) from); + } +#endif /* __i386__ */ + + for (; ; *to++= *from++, length--) + { + if (!length) + { + *errors= 0; + return length2; + } + if (*((unsigned char*) from) > 0x7F) /* A non-ASCII character */ + { + size_t copied_length= length2 - length; + to_length-= copied_length; + from_length-= copied_length; + return copied_length + my_convert_internal(to, to_length, to_cs, + from, from_length, from_cs, + errors); + } + } + + DBUG_ASSERT(FALSE); // Should never get to here + return 0; // Make compiler happy +} + +/** + Get the length of the first code in given sequence of chars. + This func is introduced because we can't determine the length by + checking the first byte only for gb18030, so we first try my_mbcharlen, + and then my_mbcharlen_2 if necessary to get the length + + @param[in] cs charset_info + @param[in] s start of the char sequence + @param[in] e end of the char sequence + @return The length of the first code, or 0 for invalid code +*/ +uint +my_mbcharlen_ptr(const CHARSET_INFO *cs, const char *s, const char *e) +{ + uint len= my_mbcharlen(cs, (uchar) *s); + if (len == 0 && my_mbmaxlenlen(cs) == 2 && s + 1 < e) + { + len= my_mbcharlen_2(cs, (uchar) *s, (uchar) *(s + 1)); + /* It could be either a valid multi-byte GB18030 code, or invalid + gb18030 code if return value is 0 */ + DBUG_ASSERT(len == 0 || len == 2 || len == 4); + } + + return len; +} diff --git a/mysql/strings/decimal.c b/mysql/strings/decimal.c new file mode 100644 index 0000000..fc4e397 --- /dev/null +++ b/mysql/strings/decimal.c @@ -0,0 +1,2640 @@ +/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* +======================================================================= + NOTE: this library implements SQL standard "exact numeric" type + and is not at all generic, but rather intentinally crippled to + follow the standard :) +======================================================================= + Quoting the standard + (SQL:2003, Part 2 Foundations, aka ISO/IEC 9075-2:2003) + +4.4.2 Characteristics of numbers, page 27: + + An exact numeric type has a precision P and a scale S. P is a positive + integer that determines the number of significant digits in a + particular radix R, where R is either 2 or 10. S is a non-negative + integer. Every value of an exact numeric type of scale S is of the + form n*10^{-S}, where n is an integer such that ­-R^P <= n <= R^P. + + [...] + + If an assignment of some number would result in a loss of its most + significant digit, an exception condition is raised. If least + significant digits are lost, implementation-defined rounding or + truncating occurs, with no exception condition being raised. + + [...] + + Whenever an exact or approximate numeric value is assigned to an exact + numeric value site, an approximation of its value that preserves + leading significant digits after rounding or truncating is represented + in the declared type of the target. The value is converted to have the + precision and scale of the target. The choice of whether to truncate + or round is implementation-defined. + + [...] + + All numeric values between the smallest and the largest value, + inclusive, in a given exact numeric type have an approximation + obtained by rounding or truncation for that type; it is + implementation-defined which other numeric values have such + approximations. + +5.3 , page 143 + + ::= + [ [ ] ] + | + +6.1 , page 165: + + 19) The of an shall not be greater than + the of the . + + 20) For the s DECIMAL and NUMERIC: + + a) The maximum value of is implementation-defined. + shall not be greater than this value. + b) The maximum value of is implementation-defined. + shall not be greater than this maximum value. + + 21) NUMERIC specifies the data type exact numeric, with the decimal + precision and scale specified by the and . + + 22) DECIMAL specifies the data type exact numeric, with the decimal + scale specified by the and the implementation-defined + decimal precision equal to or greater than the value of the + specified . + +6.26 , page 241: + + 1) If the declared type of both operands of a dyadic arithmetic + operator is exact numeric, then the declared type of the result is + an implementation-defined exact numeric type, with precision and + scale determined as follows: + + a) Let S1 and S2 be the scale of the first and second operands + respectively. + b) The precision of the result of addition and subtraction is + implementation-defined, and the scale is the maximum of S1 and S2. + c) The precision of the result of multiplication is + implementation-defined, and the scale is S1 + S2. + d) The precision and scale of the result of division are + implementation-defined. +*/ + +#include +#include +#include +#include /* for my_alloca */ +#include +#include + +/* + Internally decimal numbers are stored base 10^9 (see DIG_BASE below) + So one variable of type decimal_digit_t is limited: + + 0 < decimal_digit <= DIG_MAX < DIG_BASE + + in the struct st_decimal_t: + + intg is the number of *decimal* digits (NOT number of decimal_digit_t's !) + before the point + frac - number of decimal digits after the point + buf is an array of decimal_digit_t's + len is the length of buf (length of allocated space) in decimal_digit_t's, + not in bytes +*/ +typedef decimal_digit_t dec1; +typedef longlong dec2; + +#define DIG_PER_DEC1 9 +#define DIG_MASK 100000000 +#define DIG_BASE 1000000000 +#define DIG_MAX (DIG_BASE-1) +#define DIG_BASE2 ((dec2)DIG_BASE * (dec2)DIG_BASE) +#define ROUND_UP(X) (((X)+DIG_PER_DEC1-1)/DIG_PER_DEC1) +static const dec1 powers10[DIG_PER_DEC1+1]={ + 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000}; +static const int dig2bytes[DIG_PER_DEC1+1]={0, 1, 1, 2, 2, 3, 3, 4, 4, 4}; +static const dec1 frac_max[DIG_PER_DEC1-1]={ + 900000000, 990000000, 999000000, + 999900000, 999990000, 999999000, + 999999900, 999999990 }; + +#define sanity(d) DBUG_ASSERT((d)->len >0) + +#define FIX_INTG_FRAC_ERROR(len, intg1, frac1, error) \ + do \ + { \ + if (unlikely(intg1+frac1 > (len))) \ + { \ + if (unlikely(intg1 > (len))) \ + { \ + intg1=(len); \ + frac1=0; \ + error=E_DEC_OVERFLOW; \ + } \ + else \ + { \ + frac1=(len)-intg1; \ + error=E_DEC_TRUNCATED; \ + } \ + } \ + else \ + error=E_DEC_OK; \ + } while(0) + +#define ADD(to, from1, from2, carry) /* assume carry <= 1 */ \ + do \ + { \ + dec1 a=(from1)+(from2)+(carry); \ + DBUG_ASSERT((carry) <= 1); \ + if (((carry)= a >= DIG_BASE)) /* no division here! */ \ + a-=DIG_BASE; \ + (to)=a; \ + } while(0) + +#define ADD2(to, from1, from2, carry) \ + do \ + { \ + dec2 a=((dec2)(from1))+(from2)+(carry); \ + if (((carry)= a >= DIG_BASE)) \ + a-=DIG_BASE; \ + if (unlikely(a >= DIG_BASE)) \ + { \ + a-=DIG_BASE; \ + carry++; \ + } \ + (to)=(dec1) a; \ + } while(0) + +#define SUB(to, from1, from2, carry) /* to=from1-from2 */ \ + do \ + { \ + dec1 a=(from1)-(from2)-(carry); \ + if (((carry)= a < 0)) \ + a+=DIG_BASE; \ + (to)=a; \ + } while(0) + +#define SUB2(to, from1, from2, carry) /* to=from1-from2 */ \ + do \ + { \ + dec1 a=(from1)-(from2)-(carry); \ + if (((carry)= a < 0)) \ + a+=DIG_BASE; \ + if (unlikely(a < 0)) \ + { \ + a+=DIG_BASE; \ + carry++; \ + } \ + (to)=a; \ + } while(0) + + +/* + This is a direct loop unrolling of code that used to look like this: + for (; *buf_beg < powers10[i--]; start++) ; + + @param i start index + @param val value to compare against list of powers of 10 + + @retval Number of leading zeroes that can be removed from fraction. + + @note Why unroll? To get rid of lots of compiler warnings [-Warray-bounds] + Nice bonus: unrolled code is significantly faster. + */ +static inline int count_leading_zeroes(int i, dec1 val) +{ + int ret= 0; + switch (i) + { + /* @note Intentional fallthrough in all case labels */ + case 9: if (val >= 1000000000) break; ++ret; + case 8: if (val >= 100000000) break; ++ret; + case 7: if (val >= 10000000) break; ++ret; + case 6: if (val >= 1000000) break; ++ret; + case 5: if (val >= 100000) break; ++ret; + case 4: if (val >= 10000) break; ++ret; + case 3: if (val >= 1000) break; ++ret; + case 2: if (val >= 100) break; ++ret; + case 1: if (val >= 10) break; ++ret; + case 0: if (val >= 1) break; ++ret; + default: { DBUG_ASSERT(FALSE); } + } + return ret; +} + +/* + This is a direct loop unrolling of code that used to look like this: + for (; *buf_end % powers10[i++] == 0; stop--) ; + + @param i start index + @param val value to compare against list of powers of 10 + + @retval Number of trailing zeroes that can be removed from fraction. + + @note Why unroll? To get rid of lots of compiler warnings [-Warray-bounds] + Nice bonus: unrolled code is significantly faster. + */ +static inline int count_trailing_zeroes(int i, dec1 val) +{ + int ret= 0; + switch(i) + { + /* @note Intentional fallthrough in all case labels */ + case 0: if ((val % 1) != 0) break; ++ret; + case 1: if ((val % 10) != 0) break; ++ret; + case 2: if ((val % 100) != 0) break; ++ret; + case 3: if ((val % 1000) != 0) break; ++ret; + case 4: if ((val % 10000) != 0) break; ++ret; + case 5: if ((val % 100000) != 0) break; ++ret; + case 6: if ((val % 1000000) != 0) break; ++ret; + case 7: if ((val % 10000000) != 0) break; ++ret; + case 8: if ((val % 100000000) != 0) break; ++ret; + case 9: if ((val % 1000000000) != 0) break; ++ret; + default: { DBUG_ASSERT(FALSE); } + } + return ret; +} + + +/* + Get maximum value for given precision and scale + + SYNOPSIS + max_decimal() + precision/scale - see decimal_bin_size() below + to - decimal where where the result will be stored + to->buf and to->len must be set. +*/ + +void max_decimal(int precision, int frac, decimal_t *to) +{ + int intpart; + dec1 *buf= to->buf; + DBUG_ASSERT(precision && precision >= frac); + + to->sign= 0; + if ((intpart= to->intg= (precision - frac))) + { + int firstdigits= intpart % DIG_PER_DEC1; + if (firstdigits) + *buf++= powers10[firstdigits] - 1; /* get 9 99 999 ... */ + for(intpart/= DIG_PER_DEC1; intpart; intpart--) + *buf++= DIG_MAX; + } + + if ((to->frac= frac)) + { + int lastdigits= frac % DIG_PER_DEC1; + for(frac/= DIG_PER_DEC1; frac; frac--) + *buf++= DIG_MAX; + if (lastdigits) + *buf= frac_max[lastdigits - 1]; + } +} + + +static dec1 *remove_leading_zeroes(const decimal_t *from, int *intg_result) +{ + int intg= from->intg, i; + dec1 *buf0= from->buf; + i= ((intg - 1) % DIG_PER_DEC1) + 1; + while (intg > 0 && *buf0 == 0) + { + intg-= i; + i= DIG_PER_DEC1; + buf0++; + } + if (intg > 0) + { + intg-= count_leading_zeroes((intg - 1) % DIG_PER_DEC1, *buf0); + DBUG_ASSERT(intg > 0); + } + else + intg=0; + *intg_result= intg; + return buf0; +} + + +/* + Count actual length of fraction part (without ending zeroes) + + SYNOPSIS + decimal_actual_fraction() + from number for processing +*/ + +int decimal_actual_fraction(decimal_t *from) +{ + int frac= from->frac, i; + dec1 *buf0= from->buf + ROUND_UP(from->intg) + ROUND_UP(frac) - 1; + + if (frac == 0) + return 0; + + i= ((frac - 1) % DIG_PER_DEC1 + 1); + while (frac > 0 && *buf0 == 0) + { + frac-= i; + i= DIG_PER_DEC1; + buf0--; + } + if (frac > 0) + { + frac-= + count_trailing_zeroes(DIG_PER_DEC1 - ((frac - 1) % DIG_PER_DEC1), *buf0); + } + return frac; +} + + +/* + Convert decimal to its printable string representation + + SYNOPSIS + decimal2string() + from - value to convert + to - points to buffer where string representation + should be stored + *to_len - in: size of to buffer (incl. terminating '\0') + out: length of the actually written string (excl. '\0') + fixed_precision - 0 if representation can be variable length and + fixed_decimals will not be checked in this case. + Put number as with fixed point position with this + number of digits (sign counted and decimal point is + counted) + fixed_decimals - number digits after point. + filler - character to fill gaps in case of fixed_precision > 0 + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW +*/ + +int decimal2string(const decimal_t *from, char *to, int *to_len, + int fixed_precision, int fixed_decimals, + char filler) +{ + /* {intg_len, frac_len} output widths; {intg, frac} places in input */ + int len, intg, frac= from->frac, i, intg_len, frac_len, fill; + /* number digits before decimal point */ + int fixed_intg= (fixed_precision ? + (fixed_precision - fixed_decimals) : 0); + int error=E_DEC_OK; + char *s=to; + dec1 *buf, *buf0=from->buf, tmp; + + DBUG_ASSERT(*to_len >= 2+from->sign); + + /* removing leading zeroes */ + buf0= remove_leading_zeroes(from, &intg); + if (unlikely(intg+frac==0)) + { + intg=1; + tmp=0; + buf0=&tmp; + } + + if (!(intg_len= fixed_precision ? fixed_intg : intg)) + intg_len= 1; + frac_len= fixed_precision ? fixed_decimals : frac; + len= from->sign + intg_len + MY_TEST(frac) + frac_len; + if (fixed_precision) + { + if (frac > fixed_decimals) + { + error= E_DEC_TRUNCATED; + frac= fixed_decimals; + } + if (intg > fixed_intg) + { + error= E_DEC_OVERFLOW; + intg= fixed_intg; + } + } + else if (unlikely(len > --*to_len)) /* reserve one byte for \0 */ + { + int j= len - *to_len; /* excess printable chars */ + error= (frac && j <= frac + 1) ? E_DEC_TRUNCATED : E_DEC_OVERFLOW; + + /* + If we need to cut more places than frac is wide, we'll end up + dropping the decimal point as well. Account for this. + */ + if (frac && j >= frac + 1) + j--; + + if (j > frac) + { + intg_len= intg-= j-frac; + frac= 0; + } + else + frac-=j; + frac_len= frac; + len= from->sign + intg_len + MY_TEST(frac) + frac_len; + } + *to_len= len; + s[len]= 0; + + if (from->sign) + *s++='-'; + + if (frac) + { + char *s1= s + intg_len; + fill= frac_len - frac; + buf=buf0+ROUND_UP(intg); + *s1++='.'; + for (; frac>0; frac-=DIG_PER_DEC1) + { + dec1 x=*buf++; + for (i= MY_MIN(frac, DIG_PER_DEC1); i; i--) + { + dec1 y=x/DIG_MASK; + *s1++='0'+(uchar)y; + x-=y*DIG_MASK; + x*=10; + } + } + for(; fill > 0; fill--) + *s1++=filler; + } + + fill= intg_len - intg; + if (intg == 0) + fill--; /* symbol 0 before digital point */ + for(; fill > 0; fill--) + *s++=filler; + if (intg) + { + s+=intg; + for (buf=buf0+ROUND_UP(intg); intg>0; intg-=DIG_PER_DEC1) + { + dec1 x=*--buf; + for (i= MY_MIN(intg, DIG_PER_DEC1); i; i--) + { + dec1 y=x/10; + *--s='0'+(uchar)(x-y*10); + x=y; + } + } + } + else + *s= '0'; + + return error; +} + + +/* + Return bounds of decimal digits in the number + + SYNOPSIS + digits_bounds() + from - decimal number for processing + start_result - index (from 0 ) of first decimal digits will + be written by this address + end_result - index of position just after last decimal digit + be written by this address +*/ + +static void digits_bounds(decimal_t *from, int *start_result, int *end_result) +{ + int start, stop, i; + dec1 *buf_beg= from->buf; + dec1 *end= from->buf + ROUND_UP(from->intg) + ROUND_UP(from->frac); + dec1 *buf_end= end - 1; + + /* find non-zero digit from number begining */ + while (buf_beg < end && *buf_beg == 0) + buf_beg++; + + if (buf_beg >= end) + { + /* it is zero */ + *start_result= *end_result= 0; + return; + } + + /* find non-zero decimal digit from number begining */ + if (buf_beg == from->buf && from->intg) + { + start= DIG_PER_DEC1 - (i= ((from->intg-1) % DIG_PER_DEC1 + 1)); + i--; + } + else + { + i= DIG_PER_DEC1 - 1; + start= (int) ((buf_beg - from->buf) * DIG_PER_DEC1); + } + if (buf_beg < end) + start+= count_leading_zeroes(i, *buf_beg); + + *start_result= start; /* index of first decimal digit (from 0) */ + + /* find non-zero digit at the end */ + while (buf_end > buf_beg && *buf_end == 0) + buf_end--; + /* find non-zero decimal digit from the end */ + if (buf_end == end - 1 && from->frac) + { + stop= (int) (((buf_end - from->buf) * DIG_PER_DEC1 + + (i= ((from->frac - 1) % DIG_PER_DEC1 + 1)))); + i= DIG_PER_DEC1 - i + 1; + } + else + { + stop= (int) ((buf_end - from->buf + 1) * DIG_PER_DEC1); + i= 1; + } + stop-= count_trailing_zeroes(i, *buf_end); + *end_result= stop; /* index of position after last decimal digit (from 0) */ +} + + +/* + Left shift for alignment of data in buffer + + SYNOPSIS + do_mini_left_shift() + dec pointer to decimal number which have to be shifted + shift number of decimal digits on which it should be shifted + beg/end bounds of decimal digits (see digits_bounds()) + + NOTE + Result fitting in the buffer should be garanted. + 'shift' have to be from 1 to DIG_PER_DEC1-1 (inclusive) +*/ + +void do_mini_left_shift(decimal_t *dec, int shift, int beg, int last) +{ + dec1 *from= dec->buf + ROUND_UP(beg + 1) - 1; + dec1 *end= dec->buf + ROUND_UP(last) - 1; + int c_shift= DIG_PER_DEC1 - shift; + DBUG_ASSERT(from >= dec->buf); + DBUG_ASSERT(end < dec->buf + dec->len); + if (beg % DIG_PER_DEC1 < shift) + *(from - 1)= (*from) / powers10[c_shift]; + for(; from < end; from++) + *from= ((*from % powers10[c_shift]) * powers10[shift] + + (*(from + 1)) / powers10[c_shift]); + *from= (*from % powers10[c_shift]) * powers10[shift]; +} + + +/* + Right shift for alignment of data in buffer + + SYNOPSIS + do_mini_left_shift() + dec pointer to decimal number which have to be shifted + shift number of decimal digits on which it should be shifted + beg/end bounds of decimal digits (see digits_bounds()) + + NOTE + Result fitting in the buffer should be garanted. + 'shift' have to be from 1 to DIG_PER_DEC1-1 (inclusive) +*/ + +void do_mini_right_shift(decimal_t *dec, int shift, int beg, int last) +{ + dec1 *from= dec->buf + ROUND_UP(last) - 1; + dec1 *end= dec->buf + ROUND_UP(beg + 1) - 1; + int c_shift= DIG_PER_DEC1 - shift; + DBUG_ASSERT(from < dec->buf + dec->len); + DBUG_ASSERT(end >= dec->buf); + if (DIG_PER_DEC1 - ((last - 1) % DIG_PER_DEC1 + 1) < shift) + *(from + 1)= (*from % powers10[shift]) * powers10[c_shift]; + for(; from > end; from--) + *from= (*from / powers10[shift] + + (*(from - 1) % powers10[shift]) * powers10[c_shift]); + *from= *from / powers10[shift]; +} + + +/* + Shift of decimal digits in given number (with rounding if it need) + + SYNOPSIS + decimal_shift() + dec number to be shifted + shift number of decimal positions + shift > 0 means shift to left shift + shift < 0 meand right shift + NOTE + In fact it is multipling on 10^shift. + RETURN + E_DEC_OK OK + E_DEC_OVERFLOW operation lead to overflow, number is untoched + E_DEC_TRUNCATED number was rounded to fit into buffer +*/ + +int decimal_shift(decimal_t *dec, int shift) +{ + /* index of first non zero digit (all indexes from 0) */ + int beg; + /* index of position after last decimal digit */ + int end; + /* index of digit position just after point */ + int point= ROUND_UP(dec->intg) * DIG_PER_DEC1; + /* new point position */ + int new_point= point + shift; + /* number of digits in result */ + int digits_int, digits_frac; + /* length of result and new fraction in big digits*/ + int new_len, new_frac_len; + /* return code */ + int err= E_DEC_OK; + int new_front; + + if (shift == 0) + return E_DEC_OK; + + digits_bounds(dec, &beg, &end); + + if (beg == end) + { + decimal_make_zero(dec); + return E_DEC_OK; + } + + digits_int= new_point - beg; + set_if_bigger(digits_int, 0); + digits_frac= end - new_point; + set_if_bigger(digits_frac, 0); + + if ((new_len= ROUND_UP(digits_int) + (new_frac_len= ROUND_UP(digits_frac))) > + dec->len) + { + int lack= new_len - dec->len; + int diff; + + if (new_frac_len < lack) + return E_DEC_OVERFLOW; /* lack more then we have in fraction */ + + /* cat off fraction part to allow new number to fit in our buffer */ + err= E_DEC_TRUNCATED; + new_frac_len-= lack; + diff= digits_frac - (new_frac_len * DIG_PER_DEC1); + /* Make rounding method as parameter? */ + decimal_round(dec, dec, end - point - diff, HALF_UP); + end-= diff; + digits_frac= new_frac_len * DIG_PER_DEC1; + + if (end <= beg) + { + /* + we lost all digits (they will be shifted out of buffer), so we can + just return 0 + */ + decimal_make_zero(dec); + return E_DEC_TRUNCATED; + } + } + + if (shift % DIG_PER_DEC1) + { + int l_mini_shift, r_mini_shift, mini_shift; + int do_left; + /* + Calculate left/right shift to align decimal digits inside our bug + digits correctly + */ + if (shift > 0) + { + l_mini_shift= shift % DIG_PER_DEC1; + r_mini_shift= DIG_PER_DEC1 - l_mini_shift; + /* + It is left shift so prefer left shift, but if we have not place from + left, we have to have it from right, because we checked length of + result + */ + do_left= l_mini_shift <= beg; + DBUG_ASSERT(do_left || (dec->len * DIG_PER_DEC1 - end) >= r_mini_shift); + } + else + { + r_mini_shift= (-shift) % DIG_PER_DEC1; + l_mini_shift= DIG_PER_DEC1 - r_mini_shift; + /* see comment above */ + do_left= !((dec->len * DIG_PER_DEC1 - end) >= r_mini_shift); + DBUG_ASSERT(!do_left || l_mini_shift <= beg); + } + if (do_left) + { + do_mini_left_shift(dec, l_mini_shift, beg, end); + mini_shift= -l_mini_shift; + } + else + { + do_mini_right_shift(dec, r_mini_shift, beg, end); + mini_shift= r_mini_shift; + } + new_point+= mini_shift; + /* + If number is shifted and correctly aligned in buffer we can + finish + */ + if (!(shift+= mini_shift) && (new_point - digits_int) < DIG_PER_DEC1) + { + dec->intg= digits_int; + dec->frac= digits_frac; + return err; /* already shifted as it should be */ + } + beg+= mini_shift; + end+= mini_shift; + } + + /* if new 'decimal front' is in first digit, we do not need move digits */ + if ((new_front= (new_point - digits_int)) >= DIG_PER_DEC1 || + new_front < 0) + { + /* need to move digits */ + int d_shift; + dec1 *to, *barier; + if (new_front > 0) + { + /* move left */ + d_shift= new_front / DIG_PER_DEC1; + to= dec->buf + (ROUND_UP(beg + 1) - 1 - d_shift); + barier= dec->buf + (ROUND_UP(end) - 1 - d_shift); + DBUG_ASSERT(to >= dec->buf); + DBUG_ASSERT(barier + d_shift < dec->buf + dec->len); + for(; to <= barier; to++) + *to= *(to + d_shift); + for(barier+= d_shift; to <= barier; to++) + *to= 0; + d_shift= -d_shift; + } + else + { + /* move right */ + d_shift= (1 - new_front) / DIG_PER_DEC1; + to= dec->buf + ROUND_UP(end) - 1 + d_shift; + barier= dec->buf + ROUND_UP(beg + 1) - 1 + d_shift; + DBUG_ASSERT(to < dec->buf + dec->len); + DBUG_ASSERT(barier - d_shift >= dec->buf); + for(; to >= barier; to--) + *to= *(to - d_shift); + for(barier-= d_shift; to >= barier; to--) + *to= 0; + } + d_shift*= DIG_PER_DEC1; + beg+= d_shift; + end+= d_shift; + new_point+= d_shift; + } + + /* + If there are gaps then fill ren with 0. + + Only one of following 'for' loops will work becouse beg <= end + */ + beg= ROUND_UP(beg + 1) - 1; + end= ROUND_UP(end) - 1; + DBUG_ASSERT(new_point >= 0); + + /* We don't want negative new_point below */ + if (new_point != 0) + new_point= ROUND_UP(new_point) - 1; + + if (new_point > end) + { + do + { + dec->buf[new_point]=0; + } while (--new_point > end); + } + else + { + for (; new_point < beg; new_point++) + dec->buf[new_point]= 0; + } + dec->intg= digits_int; + dec->frac= digits_frac; + return err; +} + + +/* + Convert string to decimal + + SYNOPSIS + internal_str2decl() + from - value to convert. Doesn't have to be \0 terminated! + to - decimal where where the result will be stored + to->buf and to->len must be set. + end - Pointer to pointer to end of string. Will on return be + set to the char after the last used character + fixed - use to->intg, to->frac as limits for input number + + NOTE + to->intg and to->frac can be modified even when fixed=1 + (but only decreased, in this case) + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW/E_DEC_BAD_NUM/E_DEC_OOM + In case of E_DEC_FATAL_ERROR *to is set to decimal zero + (to make error handling easier) +*/ + +int +internal_str2dec(const char *from, decimal_t *to, char **end, my_bool fixed) +{ + const char *s= from, *s1, *endp, *end_of_string= *end; + int i, intg, frac, error, intg1, frac1; + dec1 x,*buf; + sanity(to); + + error= E_DEC_BAD_NUM; /* In case of bad number */ + while (s < end_of_string && my_isspace(&my_charset_latin1, *s)) + s++; + if (s == end_of_string) + goto fatal_error; + + if ((to->sign= (*s == '-'))) + s++; + else if (*s == '+') + s++; + + s1=s; + while (s < end_of_string && my_isdigit(&my_charset_latin1, *s)) + s++; + intg= (int) (s-s1); + if (s < end_of_string && *s=='.') + { + endp= s+1; + while (endp < end_of_string && my_isdigit(&my_charset_latin1, *endp)) + endp++; + frac= (int) (endp - s - 1); + } + else + { + frac= 0; + endp= s; + } + + *end= (char*) endp; + + if (frac+intg == 0) + goto fatal_error; + + error= 0; + if (fixed) + { + if (frac > to->frac) + { + error=E_DEC_TRUNCATED; + frac=to->frac; + } + if (intg > to->intg) + { + error=E_DEC_OVERFLOW; + intg=to->intg; + } + intg1=ROUND_UP(intg); + frac1=ROUND_UP(frac); + if (intg1+frac1 > to->len) + { + error= E_DEC_OOM; + goto fatal_error; + } + } + else + { + intg1=ROUND_UP(intg); + frac1=ROUND_UP(frac); + FIX_INTG_FRAC_ERROR(to->len, intg1, frac1, error); + if (unlikely(error)) + { + frac=frac1*DIG_PER_DEC1; + if (error == E_DEC_OVERFLOW) + intg=intg1*DIG_PER_DEC1; + } + } + /* Error is guranteed to be set here */ + to->intg=intg; + to->frac=frac; + + buf=to->buf+intg1; + s1=s; + + for (x=0, i=0; intg; intg--) + { + x+= (*--s - '0')*powers10[i]; + + if (unlikely(++i == DIG_PER_DEC1)) + { + *--buf=x; + x=0; + i=0; + } + } + if (i) + *--buf=x; + + buf=to->buf+intg1; + for (x=0, i=0; frac; frac--) + { + x= (*++s1 - '0') + x*10; + + if (unlikely(++i == DIG_PER_DEC1)) + { + *buf++=x; + x=0; + i=0; + } + } + if (i) + *buf=x*powers10[DIG_PER_DEC1-i]; + + /* Handle exponent */ + if (endp+1 < end_of_string && (*endp == 'e' || *endp == 'E')) + { + int str_error; + longlong exponent= my_strtoll10(endp+1, (char**) &end_of_string, + &str_error); + + if (end_of_string != endp +1) /* If at least one digit */ + { + *end= (char*) end_of_string; + if (str_error > 0) + { + error= E_DEC_BAD_NUM; + goto fatal_error; + } + if (exponent > INT_MAX/2 || (str_error == 0 && exponent < 0)) + { + error= E_DEC_OVERFLOW; + goto fatal_error; + } + if (exponent < INT_MIN/2 && error != E_DEC_OVERFLOW) + { + error= E_DEC_TRUNCATED; + goto fatal_error; + } + if (error != E_DEC_OVERFLOW) + error= decimal_shift(to, (int) exponent); + } + } + /* Avoid returning negative zero, cfr. decimal_cmp() */ + if (to->sign && decimal_is_zero(to)) + to->sign= FALSE; + return error; + +fatal_error: + decimal_make_zero(to); + return error; +} + + +/* + Convert decimal to double + + SYNOPSIS + decimal2double() + from - value to convert + to - result will be stored there + + RETURN VALUE + E_DEC_OK/E_DEC_OVERFLOW/E_DEC_TRUNCATED +*/ + +int decimal2double(const decimal_t *from, double *to) +{ + char strbuf[FLOATING_POINT_BUFFER], *end; + int len= sizeof(strbuf); + int rc, error; + + rc = decimal2string(from, strbuf, &len, 0, 0, 0); + end= strbuf + len; + + DBUG_PRINT("info", ("interm.: %s", strbuf)); + + *to= my_strtod(strbuf, &end, &error); + + DBUG_PRINT("info", ("result: %f", *to)); + + return (rc != E_DEC_OK) ? rc : (error ? E_DEC_OVERFLOW : E_DEC_OK); +} + +/* + Convert double to decimal + + SYNOPSIS + double2decimal() + from - value to convert + to - result will be stored there + + RETURN VALUE + E_DEC_OK/E_DEC_OVERFLOW/E_DEC_TRUNCATED +*/ + +int double2decimal(double from, decimal_t *to) +{ + char buff[FLOATING_POINT_BUFFER], *end; + int res; + DBUG_ENTER("double2decimal"); + end= buff + my_gcvt(from, MY_GCVT_ARG_DOUBLE, (int)sizeof(buff) - 1, buff, NULL); + res= string2decimal(buff, to, &end); + DBUG_PRINT("exit", ("res: %d", res)); + DBUG_RETURN(res); +} + + +static int ull2dec(ulonglong from, decimal_t *to) +{ + int intg1; + int error= E_DEC_OK; + ulonglong x= from; + dec1 *buf; + + sanity(to); + + if (from == 0) + intg1= 1; + else + { + /* Count the number of decimal_digit_t's we need. */ + for (intg1= 0; from != 0; intg1++, from/= DIG_BASE) + ; + } + if (unlikely(intg1 > to->len)) + { + intg1= to->len; + error= E_DEC_OVERFLOW; + } + to->frac= 0; + to->intg= intg1 * DIG_PER_DEC1; + + for (buf= to->buf + intg1; intg1; intg1--) + { + ulonglong y= x / DIG_BASE; + *--buf=(dec1)(x - y * DIG_BASE); + x= y; + } + return error; +} + +int ulonglong2decimal(ulonglong from, decimal_t *to) +{ + to->sign=0; + return ull2dec(from, to); +} + +int longlong2decimal(longlong from, decimal_t *to) +{ + if ((to->sign= from < 0)) + return ull2dec(-from, to); + return ull2dec(from, to); +} + +int decimal2ulonglong(decimal_t *from, ulonglong *to) +{ + dec1 *buf=from->buf; + ulonglong x=0; + int intg, frac; + + if (from->sign) + { + *to=0ULL; + return E_DEC_OVERFLOW; + } + + for (intg=from->intg; intg > 0; intg-=DIG_PER_DEC1) + { + ulonglong y=x; + x=x*DIG_BASE + *buf++; + if (unlikely(y > ((ulonglong) ULLONG_MAX/DIG_BASE) || x < y)) + { + *to=ULLONG_MAX; + return E_DEC_OVERFLOW; + } + } + *to=x; + for (frac=from->frac; unlikely(frac > 0); frac-=DIG_PER_DEC1) + if (*buf++) + return E_DEC_TRUNCATED; + return E_DEC_OK; +} + +int decimal2longlong(decimal_t *from, longlong *to) +{ + dec1 *buf=from->buf; + longlong x=0; + int intg, frac; + + for (intg=from->intg; intg > 0; intg-=DIG_PER_DEC1) + { + longlong y=x; + /* + Attention: trick! + we're calculating -|from| instead of |from| here + because |LLONG_MIN| > LLONG_MAX + so we can convert -9223372036854775808 correctly + */ + x=x*DIG_BASE - *buf++; + if (unlikely(y < (LLONG_MIN/DIG_BASE) || x > y)) + { + /* + the decimal is bigger than any possible integer + return border integer depending on the sign + */ + *to= from->sign ? LLONG_MIN : LLONG_MAX; + return E_DEC_OVERFLOW; + } + } + /* boundary case: 9223372036854775808 */ + if (unlikely(from->sign==0 && x == LLONG_MIN)) + { + *to= LLONG_MAX; + return E_DEC_OVERFLOW; + } + + *to=from->sign ? x : -x; + for (frac=from->frac; unlikely(frac > 0); frac-=DIG_PER_DEC1) + if (*buf++) + return E_DEC_TRUNCATED; + return E_DEC_OK; +} + + +#define LLDIV_MIN -1000000000000000000LL +#define LLDIV_MAX 1000000000000000000LL + +/** + Convert decimal value to lldiv_t value. + @param from The decimal value to convert from. + @param OUT to The lldiv_t variable to convert to. + @return 0 on success, error code on error. +*/ +int decimal2lldiv_t(const decimal_t *from, lldiv_t *to) +{ + int int_part= ROUND_UP(from->intg); + int frac_part= ROUND_UP(from->frac); + if (int_part > 2) + { + to->rem= 0; + to->quot= from->sign ? LLDIV_MIN : LLDIV_MAX; + return E_DEC_OVERFLOW; + } + if (int_part == 2) + to->quot= ((longlong) from->buf[0]) * DIG_BASE + from->buf[1]; + else if (int_part == 1) + to->quot= from->buf[0]; + else + to->quot= 0; + to->rem= frac_part ? from->buf[int_part] : 0; + if (from->sign) + { + to->quot= -to->quot; + to->rem= -to->rem; + } + return 0; +} + + +/** + Convert double value to lldiv_t valie. + @param from The double value to convert from. + @param OUT to The lldit_t variable to convert to. + @return 0 on success, error code on error. + + Integer part goes into lld.quot. + Fractional part multiplied to 1000000000 (10^9) goes to lld.rem. + Typically used in datetime calculations to split seconds + and nanoseconds. +*/ +int double2lldiv_t(double nr, lldiv_t *lld) +{ + if (nr > LLDIV_MAX) + { + lld->quot= LLDIV_MAX; + lld->rem= 0; + return E_DEC_OVERFLOW; + } + else if (nr < LLDIV_MIN) + { + lld->quot= LLDIV_MIN; + lld->rem= 0; + return E_DEC_OVERFLOW; + } + /* Truncate fractional part toward zero and store into "quot" */ + lld->quot= (longlong) (nr > 0 ? floor(nr) : ceil(nr)); + /* Multiply reminder to 10^9 and store into "rem" */ + lld->rem= (longlong) rint((nr - (double) lld->quot) * 1000000000); + /* + Sometimes the expression "(double) 0.999999999xxx * (double) 10e9" + gives 1,000,000,000 instead of 999,999,999 due to lack of double precision. + The callers do not expect lld->rem to be greater than 999,999,999. + Let's catch this corner case and put the "nanounit" (e.g. nanosecond) + value in ldd->rem back into the valid range. + */ + if (lld->rem > 999999999LL) + lld->rem= 999999999LL; + else if (lld->rem < -999999999LL) + lld->rem= -999999999LL; + return E_DEC_OK; +} + + + +/* + Convert decimal to its binary fixed-length representation + two representations of the same length can be compared with memcmp + with the correct -1/0/+1 result + + SYNOPSIS + decimal2bin() + from - value to convert + to - points to buffer where string representation should be stored + precision/scale - see decimal_bin_size() below + + NOTE + the buffer is assumed to be of the size decimal_bin_size(precision, scale) + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW + + DESCRIPTION + for storage decimal numbers are converted to the "binary" format. + + This format has the following properties: + 1. length of the binary representation depends on the {precision, scale} + as provided by the caller and NOT on the intg/frac of the decimal to + convert. + 2. binary representations of the same {precision, scale} can be compared + with memcmp - with the same result as decimal_cmp() of the original + decimals (not taking into account possible precision loss during + conversion). + + This binary format is as follows: + 1. First the number is converted to have a requested precision and scale. + 2. Every full DIG_PER_DEC1 digits of intg part are stored in 4 bytes + as is + 3. The first intg % DIG_PER_DEC1 digits are stored in the reduced + number of bytes (enough bytes to store this number of digits - + see dig2bytes) + 4. same for frac - full decimal_digit_t's are stored as is, + the last frac % DIG_PER_DEC1 digits - in the reduced number of bytes. + 5. If the number is negative - every byte is inversed. + 5. The very first bit of the resulting byte array is inverted (because + memcmp compares unsigned bytes, see property 2 above) + + Example: + + 1234567890.1234 + + internally is represented as 3 decimal_digit_t's + + 1 234567890 123400000 + + (assuming we want a binary representation with precision=14, scale=4) + in hex it's + + 00-00-00-01 0D-FB-38-D2 07-5A-EF-40 + + now, middle decimal_digit_t is full - it stores 9 decimal digits. It goes + into binary representation as is: + + + ........... 0D-FB-38-D2 ............ + + First decimal_digit_t has only one decimal digit. We can store one digit in + one byte, no need to waste four: + + 01 0D-FB-38-D2 ............ + + now, last digit. It's 123400000. We can store 1234 in two bytes: + + 01 0D-FB-38-D2 04-D2 + + So, we've packed 12 bytes number in 7 bytes. + And now we invert the highest bit to get the final result: + + 81 0D FB 38 D2 04 D2 + + And for -1234567890.1234 it would be + + 7E F2 04 C7 2D FB 2D +*/ +int decimal2bin(decimal_t *from, uchar *to, int precision, int frac) +{ + dec1 mask=from->sign ? -1 : 0, *buf1=from->buf, *stop1; + int error=E_DEC_OK, intg=precision-frac, + isize1, intg1, intg1x, from_intg, + intg0=intg/DIG_PER_DEC1, + frac0=frac/DIG_PER_DEC1, + intg0x=intg-intg0*DIG_PER_DEC1, + frac0x=frac-frac0*DIG_PER_DEC1, + frac1=from->frac/DIG_PER_DEC1, + frac1x=from->frac-frac1*DIG_PER_DEC1, + isize0=intg0*sizeof(dec1)+dig2bytes[intg0x], + fsize0=frac0*sizeof(dec1)+dig2bytes[frac0x], + fsize1=frac1*sizeof(dec1)+dig2bytes[frac1x]; + const int orig_isize0= isize0; + const int orig_fsize0= fsize0; + uchar *orig_to= to; + + buf1= remove_leading_zeroes(from, &from_intg); + + if (unlikely(from_intg+fsize1==0)) + { + mask=0; /* just in case */ + intg=1; + buf1=&mask; + } + + intg1=from_intg/DIG_PER_DEC1; + intg1x=from_intg-intg1*DIG_PER_DEC1; + isize1=intg1*sizeof(dec1)+dig2bytes[intg1x]; + + if (intg < from_intg) + { + buf1+=intg1-intg0+(intg1x>0)-(intg0x>0); + intg1=intg0; intg1x=intg0x; + error=E_DEC_OVERFLOW; + } + else if (isize0 > isize1) + { + while (isize0-- > isize1) + *to++= (char)mask; + } + if (fsize0 < fsize1) + { + frac1=frac0; frac1x=frac0x; + error=E_DEC_TRUNCATED; + } + else if (fsize0 > fsize1 && frac1x) + { + if (frac0 == frac1) + { + frac1x=frac0x; + fsize0= fsize1; + } + else + { + frac1++; + frac1x=0; + } + } + + /* intg1x part */ + if (intg1x) + { + int i=dig2bytes[intg1x]; + dec1 x=(*buf1++ % powers10[intg1x]) ^ mask; + switch (i) + { + case 1: mi_int1store(to, x); break; + case 2: mi_int2store(to, x); break; + case 3: mi_int3store(to, x); break; + case 4: mi_int4store(to, x); break; + default: DBUG_ASSERT(0); + } + to+=i; + } + + /* intg1+frac1 part */ + for (stop1=buf1+intg1+frac1; buf1 < stop1; to+=sizeof(dec1)) + { + dec1 x=*buf1++ ^ mask; + DBUG_ASSERT(sizeof(dec1) == 4); + mi_int4store(to, x); + } + + /* frac1x part */ + if (frac1x) + { + dec1 x; + int i=dig2bytes[frac1x], + lim=(frac1 < frac0 ? DIG_PER_DEC1 : frac0x); + while (frac1x < lim && dig2bytes[frac1x] == i) + frac1x++; + x=(*buf1 / powers10[DIG_PER_DEC1 - frac1x]) ^ mask; + switch (i) + { + case 1: mi_int1store(to, x); break; + case 2: mi_int2store(to, x); break; + case 3: mi_int3store(to, x); break; + case 4: mi_int4store(to, x); break; + default: DBUG_ASSERT(0); + } + to+=i; + } + if (fsize0 > fsize1) + { + uchar *to_end= orig_to + orig_fsize0 + orig_isize0; + + while (fsize0-- > fsize1 && to < to_end) + *to++= (uchar)mask; + } + orig_to[0]^= 0x80; + + /* Check that we have written the whole decimal and nothing more */ + DBUG_ASSERT(to == orig_to + orig_fsize0 + orig_isize0); + return error; +} + +/* + Restores decimal from its binary fixed-length representation + + SYNOPSIS + bin2decimal() + from - value to convert + to - result + precision/scale - see decimal_bin_size() below + + NOTE + see decimal2bin() + the buffer is assumed to be of the size decimal_bin_size(precision, scale) + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW +*/ + +int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale) +{ + int error=E_DEC_OK, intg=precision-scale, + intg0=intg/DIG_PER_DEC1, frac0=scale/DIG_PER_DEC1, + intg0x=intg-intg0*DIG_PER_DEC1, frac0x=scale-frac0*DIG_PER_DEC1, + intg1=intg0+(intg0x>0), frac1=frac0+(frac0x>0); + dec1 *buf=to->buf, mask=(*from & 0x80) ? 0 : -1; + const uchar *stop; + uchar *d_copy; + int bin_size= decimal_bin_size(precision, scale); + + sanity(to); + d_copy= (uchar*) my_alloca(bin_size); + memcpy(d_copy, from, bin_size); + d_copy[0]^= 0x80; + from= d_copy; + + FIX_INTG_FRAC_ERROR(to->len, intg1, frac1, error); + if (unlikely(error)) + { + if (intg1 < intg0+(intg0x>0)) + { + from+=dig2bytes[intg0x]+sizeof(dec1)*(intg0-intg1); + frac0=frac0x=intg0x=0; + intg0=intg1; + } + else + { + frac0x=0; + frac0=frac1; + } + } + + to->sign=(mask != 0); + to->intg=intg0*DIG_PER_DEC1+intg0x; + to->frac=frac0*DIG_PER_DEC1+frac0x; + + if (intg0x) + { + int i=dig2bytes[intg0x]; + dec1 x= 0; + switch (i) + { + case 1: x=mi_sint1korr(from); break; + case 2: x=mi_sint2korr(from); break; + case 3: x=mi_sint3korr(from); break; + case 4: x=mi_sint4korr(from); break; + default: DBUG_ASSERT(0); + } + from+=i; + *buf=x ^ mask; + if (((ulonglong)*buf) >= (ulonglong) powers10[intg0x+1]) + goto err; + if (buf > to->buf || *buf != 0) + buf++; + else + to->intg-=intg0x; + } + for (stop=from+intg0*sizeof(dec1); from < stop; from+=sizeof(dec1)) + { + DBUG_ASSERT(sizeof(dec1) == 4); + *buf=mi_sint4korr(from) ^ mask; + if (((uint32)*buf) > DIG_MAX) + goto err; + if (buf > to->buf || *buf != 0) + buf++; + else + to->intg-=DIG_PER_DEC1; + } + DBUG_ASSERT(to->intg >=0); + for (stop=from+frac0*sizeof(dec1); from < stop; from+=sizeof(dec1)) + { + DBUG_ASSERT(sizeof(dec1) == 4); + *buf=mi_sint4korr(from) ^ mask; + if (((uint32)*buf) > DIG_MAX) + goto err; + buf++; + } + if (frac0x) + { + int i=dig2bytes[frac0x]; + dec1 x= 0; + switch (i) + { + case 1: x=mi_sint1korr(from); break; + case 2: x=mi_sint2korr(from); break; + case 3: x=mi_sint3korr(from); break; + case 4: x=mi_sint4korr(from); break; + default: DBUG_ASSERT(0); + } + *buf=(x ^ mask) * powers10[DIG_PER_DEC1 - frac0x]; + if (((uint32)*buf) > DIG_MAX) + goto err; + buf++; + } + + /* + No digits? We have read the number zero, of unspecified precision. + Make it a proper zero, with non-zero precision. + */ + if (to->intg == 0 && to->frac == 0) + decimal_make_zero(to); + return error; + +err: + decimal_make_zero(to); + return(E_DEC_BAD_NUM); +} + +/* + Returns the size of array to hold a decimal with given precision and scale + + RETURN VALUE + size in dec1 + (multiply by sizeof(dec1) to get the size if bytes) +*/ + +int decimal_size(int precision, int scale) +{ + DBUG_ASSERT(scale >= 0 && precision > 0 && scale <= precision); + return ROUND_UP(precision-scale)+ROUND_UP(scale); +} + +/* + Returns the size of array to hold a binary representation of a decimal + + RETURN VALUE + size in bytes +*/ + +int decimal_bin_size(int precision, int scale) +{ + int intg=precision-scale, + intg0=intg/DIG_PER_DEC1, frac0=scale/DIG_PER_DEC1, + intg0x=intg-intg0*DIG_PER_DEC1, frac0x=scale-frac0*DIG_PER_DEC1; + + DBUG_ASSERT(scale >= 0 && precision > 0 && scale <= precision); + DBUG_ASSERT(intg0x >= 0); + DBUG_ASSERT(intg0x <= DIG_PER_DEC1); + DBUG_ASSERT(frac0x >= 0); + DBUG_ASSERT(frac0x <= DIG_PER_DEC1); + return intg0*sizeof(dec1)+dig2bytes[intg0x]+ + frac0*sizeof(dec1)+dig2bytes[frac0x]; +} + +/* + Rounds the decimal to "scale" digits + + SYNOPSIS + decimal_round() + from - decimal to round, + to - result buffer. from==to is allowed + scale - to what position to round. can be negative! + mode - round to nearest even or truncate + + NOTES + scale can be negative ! + one TRUNCATED error (line XXX below) isn't treated very logical :( + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED +*/ + +int +decimal_round(const decimal_t *from, decimal_t *to, int scale, + decimal_round_mode mode) +{ + int frac0=scale>0 ? ROUND_UP(scale) : (scale + 1)/DIG_PER_DEC1, + frac1=ROUND_UP(from->frac), round_digit= 0, + intg0=ROUND_UP(from->intg), error=E_DEC_OK, len=to->len; + + dec1 *buf0=from->buf, *buf1=to->buf, x, y, carry=0; + int first_dig; + + sanity(to); + + switch (mode) { + case HALF_UP: + case HALF_EVEN: round_digit=5; break; + case CEILING: round_digit= from->sign ? 10 : 0; break; + case FLOOR: round_digit= from->sign ? 0 : 10; break; + case TRUNCATE: round_digit=10; break; + default: DBUG_ASSERT(0); + } + + /* + For my_decimal we always use len == DECIMAL_BUFF_LENGTH == 9 + For internal testing here (ifdef MAIN) we always use len == 100/4 + */ + DBUG_ASSERT(from->len == to->len); + + if (unlikely(frac0+intg0 > len)) + { + frac0=len-intg0; + scale=frac0*DIG_PER_DEC1; + error=E_DEC_TRUNCATED; + } + + if (scale+from->intg < 0) + { + decimal_make_zero(to); + return E_DEC_OK; + } + + if (to != from) + { + dec1 *p0= buf0 + intg0 + MY_MAX(frac1, frac0); + dec1 *p1= buf1 + intg0 + MY_MAX(frac1, frac0); + + DBUG_ASSERT(p0 - buf0 <= len); + DBUG_ASSERT(p1 - buf1 <= len); + + while (buf0 < p0) + *(--p1) = *(--p0); + + buf0=to->buf; + buf1=to->buf; + to->sign=from->sign; + to->intg= MY_MIN(intg0, len) * DIG_PER_DEC1; + } + + if (frac0 > frac1) + { + buf1+=intg0+frac1; + while (frac0-- > frac1) + *buf1++=0; + goto done; + } + + if (scale >= from->frac) + goto done; /* nothing to do */ + + buf0+=intg0+frac0-1; + buf1+=intg0+frac0-1; + if (scale == frac0*DIG_PER_DEC1) + { + int do_inc= FALSE; + DBUG_ASSERT(frac0+intg0 >= 0); + switch (round_digit) { + case 0: + { + dec1 *p0= buf0 + (frac1-frac0); + for (; p0 > buf0; p0--) + { + if (*p0) + { + do_inc= TRUE; + break; + } + } + break; + } + case 5: + { + x= buf0[1]/DIG_MASK; + do_inc= (x>5) || ((x == 5) && + (mode == HALF_UP || (frac0+intg0 > 0 && *buf0 & 1))); + break; + } + default: + break; + } + if (do_inc) + { + if (frac0+intg0>0) + (*buf1)++; + else + *(++buf1)=DIG_BASE; + } + else if (frac0+intg0==0) + { + decimal_make_zero(to); + return E_DEC_OK; + } + } + else + { + /* TODO - fix this code as it won't work for CEILING mode */ + int pos=frac0*DIG_PER_DEC1-scale-1; + DBUG_ASSERT(frac0+intg0 > 0); + x=*buf1 / powers10[pos]; + y=x % 10; + if (y > round_digit || + (round_digit == 5 && y == 5 && (mode == HALF_UP || (x/10) & 1))) + x+=10; + *buf1=powers10[pos]*(x-y); + } + /* + In case we're rounding e.g. 1.5e9 to 2.0e9, the decimal_digit_t's inside + the buffer are as follows. + + Before <1, 5e8> + After <2, 5e8> + + Hence we need to set the 2nd field to 0. + The same holds if we round 1.5e-9 to 2e-9. + */ + if (frac0 < frac1) + { + dec1 *buf= to->buf + ((scale == 0 && intg0 == 0) ? 1 : intg0 + frac0); + dec1 *end= to->buf + len; + + while (buf < end) + *buf++=0; + } + if (*buf1 >= DIG_BASE) + { + carry=1; + *buf1-=DIG_BASE; + while (carry && --buf1 >= to->buf) + ADD(*buf1, *buf1, 0, carry); + if (unlikely(carry)) + { + /* shifting the number to create space for new digit */ + if (frac0+intg0 >= len) + { + frac0--; + scale=frac0*DIG_PER_DEC1; + error=E_DEC_TRUNCATED; /* XXX */ + } + for (buf1=to->buf + intg0 + MY_MAX(frac0, 0); buf1 > to->buf; buf1--) + { + /* Avoid out-of-bounds write. */ + if (buf1 < to->buf + len) + buf1[0]=buf1[-1]; + else + error= E_DEC_OVERFLOW; + } + *buf1=1; + /* We cannot have more than 9 * 9 = 81 digits. */ + if (to->intg < len * DIG_PER_DEC1) + to->intg++; + else + error= E_DEC_OVERFLOW; + } + } + else + { + for (;;) + { + if (likely(*buf1)) + break; + if (buf1-- == to->buf) + { + /* making 'zero' with the proper scale */ + dec1 *p0= to->buf + frac0 + 1; + to->intg=1; + to->frac= MY_MAX(scale, 0); + to->sign= 0; + for (buf1= to->buf; buf1 1000 case when we need to increase intg */ + first_dig= to->intg % DIG_PER_DEC1; + if (first_dig && (*buf1 >= powers10[first_dig])) + to->intg++; + + if (scale<0) + scale=0; + +done: + DBUG_ASSERT(to->intg <= (len * DIG_PER_DEC1)); + to->frac=scale; + return error; +} + +/* + Returns the size of the result of the operation + + SYNOPSIS + decimal_result_size() + from1 - operand of the unary operation or first operand of the + binary operation + from2 - second operand of the binary operation + op - operation. one char '+', '-', '*', '/' are allowed + others may be added later + param - extra param to the operation. unused for '+', '-', '*' + scale increment for '/' + + NOTE + returned valued may be larger than the actual buffer requred + in the operation, as decimal_result_size, by design, operates on + precision/scale values only and not on the actual decimal number + + RETURN VALUE + size of to->buf array in dec1 elements. to get size in bytes + multiply by sizeof(dec1) +*/ + +int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, int param) +{ + switch (op) { + case '-': + return ROUND_UP(MY_MAX(from1->intg, from2->intg)) + + ROUND_UP(MY_MAX(from1->frac, from2->frac)); + case '+': + return ROUND_UP(MY_MAX(from1->intg, from2->intg)+1) + + ROUND_UP(MY_MAX(from1->frac, from2->frac)); + case '*': + return ROUND_UP(from1->intg+from2->intg)+ + ROUND_UP(from1->frac)+ROUND_UP(from2->frac); + case '/': + return ROUND_UP(from1->intg+from2->intg+1+from1->frac+from2->frac+param); + default: DBUG_ASSERT(0); + } + return -1; /* shut up the warning */ +} + +static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to) +{ + int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg), + frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac), + frac0= MY_MAX(frac1, frac2), intg0= MY_MAX(intg1, intg2), error; + dec1 *buf1, *buf2, *buf0, *stop, *stop2, x, carry; + + sanity(to); + + /* is there a need for extra word because of carry ? */ + x=intg1 > intg2 ? from1->buf[0] : + intg2 > intg1 ? from2->buf[0] : + from1->buf[0] + from2->buf[0] ; + if (unlikely(x > DIG_MAX-1)) /* yes, there is */ + { + intg0++; + to->buf[0]=0; /* safety */ + } + + FIX_INTG_FRAC_ERROR(to->len, intg0, frac0, error); + if (unlikely(error == E_DEC_OVERFLOW)) + { + max_decimal(to->len * DIG_PER_DEC1, 0, to); + return error; + } + + buf0=to->buf+intg0+frac0; + + to->sign=from1->sign; + to->frac= MY_MAX(from1->frac, from2->frac); + to->intg=intg0*DIG_PER_DEC1; + if (unlikely(error)) + { + set_if_smaller(to->frac, frac0*DIG_PER_DEC1); + set_if_smaller(frac1, frac0); + set_if_smaller(frac2, frac0); + set_if_smaller(intg1, intg0); + set_if_smaller(intg2, intg0); + } + + /* part 1 - max(frac) ... min (frac) */ + if (frac1 > frac2) + { + buf1=from1->buf+intg1+frac1; + stop=from1->buf+intg1+frac2; + buf2=from2->buf+intg2+frac2; + stop2=from1->buf+(intg1 > intg2 ? intg1-intg2 : 0); + } + else + { + buf1=from2->buf+intg2+frac2; + stop=from2->buf+intg2+frac1; + buf2=from1->buf+intg1+frac1; + stop2=from2->buf+(intg2 > intg1 ? intg2-intg1 : 0); + } + while (buf1 > stop) + *--buf0=*--buf1; + + /* part 2 - min(frac) ... min(intg) */ + carry=0; + while (buf1 > stop2) + { + ADD(*--buf0, *--buf1, *--buf2, carry); + } + + /* part 3 - min(intg) ... max(intg) */ + buf1= intg1 > intg2 ? ((stop=from1->buf)+intg1-intg2) : + ((stop=from2->buf)+intg2-intg1) ; + while (buf1 > stop) + { + ADD(*--buf0, *--buf1, 0, carry); + } + + if (unlikely(carry)) + *--buf0=1; + DBUG_ASSERT(buf0 == to->buf || buf0 == to->buf+1); + + return error; +} + +/* to=from1-from2. + if to==0, return -1/0/+1 - the result of the comparison */ +static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to) +{ + int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg), + frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac); + int frac0= MY_MAX(frac1, frac2), error; + dec1 *buf1, *buf2, *buf0, *stop1, *stop2, *start1, *start2, carry=0; + + /* let carry:=1 if from2 > from1 */ + start1=buf1=from1->buf; stop1=buf1+intg1; + start2=buf2=from2->buf; stop2=buf2+intg2; + if (unlikely(*buf1 == 0)) + { + while (buf1 < stop1 && *buf1 == 0) + buf1++; + start1=buf1; + intg1= (int) (stop1-buf1); + } + if (unlikely(*buf2 == 0)) + { + while (buf2 < stop2 && *buf2 == 0) + buf2++; + start2=buf2; + intg2= (int) (stop2-buf2); + } + if (intg2 > intg1) + carry=1; + else if (intg2 == intg1) + { + dec1 *end1= stop1 + (frac1 - 1); + dec1 *end2= stop2 + (frac2 - 1); + while (unlikely((buf1 <= end1) && (*end1 == 0))) + end1--; + while (unlikely((buf2 <= end2) && (*end2 == 0))) + end2--; + frac1= (int) (end1 - stop1) + 1; + frac2= (int) (end2 - stop2) + 1; + while (buf1 <=end1 && buf2 <= end2 && *buf1 == *buf2) + buf1++, buf2++; + if (buf1 <= end1) + { + if (buf2 <= end2) + carry= *buf2 > *buf1; + else + carry= 0; + } + else + { + if (buf2 <= end2) + carry=1; + else /* short-circuit everything: from1 == from2 */ + { + if (to == 0) /* decimal_cmp() */ + return 0; + decimal_make_zero(to); + return E_DEC_OK; + } + } + } + + if (to == 0) /* decimal_cmp() */ + return carry == from1->sign ? 1 : -1; + + sanity(to); + + to->sign=from1->sign; + + /* ensure that always from1 > from2 (and intg1 >= intg2) */ + if (carry) + { + swap_variables(const decimal_t *, from1, from2); + swap_variables(dec1 *,start1, start2); + swap_variables(int,intg1,intg2); + swap_variables(int,frac1,frac2); + to->sign= 1 - to->sign; + } + + FIX_INTG_FRAC_ERROR(to->len, intg1, frac0, error); + buf0=to->buf+intg1+frac0; + + to->frac= MY_MAX(from1->frac, from2->frac); + to->intg=intg1*DIG_PER_DEC1; + if (unlikely(error)) + { + set_if_smaller(to->frac, frac0*DIG_PER_DEC1); + set_if_smaller(frac1, frac0); + set_if_smaller(frac2, frac0); + set_if_smaller(intg2, intg1); + } + carry=0; + + /* part 1 - max(frac) ... min (frac) */ + if (frac1 > frac2) + { + buf1=start1+intg1+frac1; + stop1=start1+intg1+frac2; + buf2=start2+intg2+frac2; + while (frac0-- > frac1) + *--buf0=0; + while (buf1 > stop1) + *--buf0=*--buf1; + } + else + { + buf1=start1+intg1+frac1; + buf2=start2+intg2+frac2; + stop2=start2+intg2+frac1; + while (frac0-- > frac2) + *--buf0=0; + while (buf2 > stop2) + { + SUB(*--buf0, 0, *--buf2, carry); + } + } + + /* part 2 - min(frac) ... intg2 */ + while (buf2 > start2) + { + SUB(*--buf0, *--buf1, *--buf2, carry); + } + + /* part 3 - intg2 ... intg1 */ + while (carry && buf1 > start1) + { + SUB(*--buf0, *--buf1, 0, carry); + } + + while (buf1 > start1) + *--buf0=*--buf1; + + while (buf0 > to->buf) + *--buf0=0; + + return error; +} + +int decimal_intg(const decimal_t *from) +{ + int res; + remove_leading_zeroes(from, &res); + return res; +} + +int decimal_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to) +{ + if (likely(from1->sign == from2->sign)) + return do_add(from1, from2, to); + return do_sub(from1, from2, to); +} + +int decimal_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to) +{ + if (likely(from1->sign == from2->sign)) + return do_sub(from1, from2, to); + return do_add(from1, from2, to); +} + +int decimal_cmp(const decimal_t *from1, const decimal_t *from2) +{ + if (likely(from1->sign == from2->sign)) + return do_sub(from1, from2, 0); + + // Reject negative zero, cfr. internal_str2dec() + DBUG_ASSERT(!(decimal_is_zero(from1) && from1->sign)); + DBUG_ASSERT(!(decimal_is_zero(from2) && from2->sign)); + + return from1->sign > from2->sign ? -1 : 1; +} + +int decimal_is_zero(const decimal_t *from) +{ + dec1 *buf1=from->buf, + *end=buf1+ROUND_UP(from->intg)+ROUND_UP(from->frac); + while (buf1 < end) + if (*buf1++) + return 0; + return 1; +} + +/* + multiply two decimals + + SYNOPSIS + decimal_mul() + from1, from2 - factors + to - product + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW; + + NOTES + in this implementation, with sizeof(dec1)=4 we have DIG_PER_DEC1=9, + and 63-digit number will take only 7 dec1 words (basically a 7-digit + "base 999999999" number). Thus there's no need in fast multiplication + algorithms, 7-digit numbers can be multiplied with a naive O(n*n) + method. + + XXX if this library is to be used with huge numbers of thousands of + digits, fast multiplication must be implemented. +*/ +int decimal_mul(const decimal_t *from1, const decimal_t *from2, decimal_t *to) +{ + int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg), + frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac), + intg0=ROUND_UP(from1->intg+from2->intg), + frac0=frac1+frac2, error, iii, jjj, d_to_move; + dec1 *buf1=from1->buf+intg1, *buf2=from2->buf+intg2, *buf0, + *start2, *stop2, *stop1, *start0, carry; + + sanity(to); + + iii= intg0; /* save 'ideal' values */ + jjj= frac0; + FIX_INTG_FRAC_ERROR(to->len, intg0, frac0, error); /* bound size */ + to->sign= from1->sign != from2->sign; + to->frac= from1->frac + from2->frac; /* store size in digits */ + set_if_smaller(to->frac, NOT_FIXED_DEC); + to->intg=intg0*DIG_PER_DEC1; + + if (unlikely(error)) + { + set_if_smaller(to->frac, frac0*DIG_PER_DEC1); + set_if_smaller(to->intg, intg0*DIG_PER_DEC1); + if (unlikely(iii > intg0)) /* bounded integer-part */ + { + iii-=intg0; + jjj= iii >> 1; + intg1-= jjj; + intg2-=iii-jjj; + frac1=frac2=0; /* frac0 is already 0 here */ + } + else /* bounded fract part */ + { + jjj-=frac0; + iii=jjj >> 1; + if (frac1 <= frac2) + { + frac1-= iii; + frac2-=jjj-iii; + } + else + { + frac2-= iii; + frac1-=jjj-iii; + } + } + } + start0=to->buf+intg0+frac0-1; + start2=buf2+frac2-1; + stop1=buf1-intg1; + stop2=buf2-intg2; + + memset(to->buf, 0, (intg0+frac0)*sizeof(dec1)); + + for (buf1+=frac1-1; buf1 >= stop1; buf1--, start0--) + { + carry=0; + for (buf0=start0, buf2=start2; buf2 >= stop2; buf2--, buf0--) + { + dec1 hi, lo; + dec2 p= ((dec2)*buf1) * ((dec2)*buf2); + hi=(dec1)(p/DIG_BASE); + lo=(dec1)(p-((dec2)hi)*DIG_BASE); + ADD2(*buf0, *buf0, lo, carry); + carry+=hi; + } + if (carry) + { + if (buf0 < to->buf) + return E_DEC_OVERFLOW; + ADD2(*buf0, *buf0, 0, carry); + } + for (buf0--; carry; buf0--) + { + if (buf0 < to->buf) + return E_DEC_OVERFLOW; + ADD(*buf0, *buf0, 0, carry); + } + } + + /* Now we have to check for -0.000 case */ + if (to->sign) + { + dec1 *buf= to->buf; + dec1 *end= to->buf + intg0 + frac0; + DBUG_ASSERT(buf != end); + for (;;) + { + if (*buf) + break; + if (++buf == end) + { + /* We got decimal zero */ + decimal_make_zero(to); + break; + } + } + } + buf1= to->buf; + d_to_move= intg0 + ROUND_UP(to->frac); + while (!*buf1 && (to->intg > DIG_PER_DEC1)) + { + buf1++; + to->intg-= DIG_PER_DEC1; + d_to_move--; + } + if (to->buf < buf1) + { + dec1 *cur_d= to->buf; + for (; d_to_move--; cur_d++, buf1++) + *cur_d= *buf1; + } + return error; +} + +/* + naive division algorithm (Knuth's Algorithm D in 4.3.1) - + it's ok for short numbers + also we're using alloca() to allocate a temporary buffer + + XXX if this library is to be used with huge numbers of thousands of + digits, fast division must be implemented and alloca should be + changed to malloc (or at least fallback to malloc if alloca() fails) + but then, decimal_mul() should be rewritten too :( +*/ +static int do_div_mod(const decimal_t *from1, const decimal_t *from2, + decimal_t *to, decimal_t *mod, int scale_incr) +{ + + /* + frac* - number of digits in fractional part of the number + prec* - precision of the number + intg* - number of digits in the integer part + buf* - buffer having the actual number + All variables ending with 0 - like frac0, intg0 etc are + for the final result. Similarly frac1, intg1 etc are for + the first number and frac2, intg2 etc are for the second number + */ + int frac1=ROUND_UP(from1->frac)*DIG_PER_DEC1, prec1=from1->intg+frac1, + frac2=ROUND_UP(from2->frac)*DIG_PER_DEC1, prec2=from2->intg+frac2, + error= 0, i, intg0, frac0, len1, len2, + dintg, /* Holds the estimate of number of integer digits in final result */ + div_mod=(!mod) /*true if this is division */; + dec1 *buf0, *buf1=from1->buf, *buf2=from2->buf, *start1, *stop1, + *start2, *stop2, *stop0 ,norm2, carry, dcarry, *tmp1; + dec2 norm_factor, x, guess, y; + + if (mod) + to=mod; + + sanity(to); + + /* + removing all the leading zeroes in the second number. Leading zeroes are + added later to the result. + */ + i= ((prec2 - 1) % DIG_PER_DEC1) + 1; + while (prec2 > 0 && *buf2 == 0) + { + prec2-= i; + i= DIG_PER_DEC1; + buf2++; + } + if (prec2 <= 0) /* short-circuit everything: from2 == 0 */ + return E_DEC_DIV_ZERO; + + /* + Remove the remanining zeroes . For ex: for 0.000000000001 + the above while loop removes 9 zeroes and the result will have 0.0001 + these remaining zeroes are removed here + */ + prec2-= count_leading_zeroes((prec2 - 1) % DIG_PER_DEC1, *buf2); + DBUG_ASSERT(prec2 > 0); + + /* + Do the same for the first number. Remove the leading zeroes. + Check if the number is actually 0. Then remove the remaining zeroes. + */ + + i=((prec1-1) % DIG_PER_DEC1)+1; + while (prec1 > 0 && *buf1 == 0) + { + prec1-=i; + i=DIG_PER_DEC1; + buf1++; + } + if (prec1 <= 0) + { /* short-circuit everything: from1 == 0 */ + decimal_make_zero(to); + return E_DEC_OK; + } + prec1-= count_leading_zeroes((prec1-1) % DIG_PER_DEC1, *buf1); + DBUG_ASSERT(prec1 > 0); + + /* let's fix scale_incr, taking into account frac1,frac2 increase */ + if ((scale_incr-= frac1 - from1->frac + frac2 - from2->frac) < 0) + scale_incr=0; + + /* Calculate the integer digits in final result */ + dintg=(prec1-frac1)-(prec2-frac2)+(*buf1 >= *buf2); + if (dintg < 0) + { + dintg/=DIG_PER_DEC1; + intg0=0; + } + else + intg0=ROUND_UP(dintg); + if (mod) + { + /* we're calculating N1 % N2. + The result will have + frac=max(frac1, frac2), as for subtraction + intg=intg2 + */ + to->sign=from1->sign; + to->frac= MY_MAX(from1->frac, from2->frac); + frac0=0; + } + else + { + /* + we're calculating N1/N2. N1 is in the buf1, has prec1 digits + N2 is in the buf2, has prec2 digits. Scales are frac1 and + frac2 accordingly. + Thus, the result will have + frac = ROUND_UP(frac1+frac2+scale_incr) + and + intg = (prec1-frac1) - (prec2-frac2) + 1 + prec = intg+frac + */ + frac0=ROUND_UP(frac1+frac2+scale_incr); + FIX_INTG_FRAC_ERROR(to->len, intg0, frac0, error); + to->sign=from1->sign != from2->sign; + to->intg=intg0*DIG_PER_DEC1; + to->frac=frac0*DIG_PER_DEC1; + } + buf0=to->buf; + stop0=buf0+intg0+frac0; + if (likely(div_mod)) + while (dintg++ < 0 && buf0 < &to->buf[to->len]) + { + *buf0++=0; + } + + len1=(i=ROUND_UP(prec1))+ROUND_UP(2*frac2+scale_incr+1) + 1; + set_if_bigger(len1, 3); + if (!(tmp1=(dec1 *)my_alloca(len1*sizeof(dec1)))) + return E_DEC_OOM; + memcpy(tmp1, buf1, i*sizeof(dec1)); + memset(tmp1+i, 0, (len1-i)*sizeof(dec1)); + + start1=tmp1; + stop1=start1+len1; + start2=buf2; + stop2=buf2+ROUND_UP(prec2)-1; + + /* removing end zeroes */ + while (*stop2 == 0 && stop2 >= start2) + stop2--; + len2= (int) (stop2++ - start2); + + /* + calculating norm2 (normalized *start2) - we need *start2 to be large + (at least > DIG_BASE/2), but unlike Knuth's Alg. D we don't want to + normalize input numbers (as we don't make a copy of the divisor). + Thus we normalize first dec1 of buf2 only, and we'll normalize *start1 + on the fly for the purpose of guesstimation only. + It's also faster, as we're saving on normalization of buf2 + */ + norm_factor=DIG_BASE/(*start2+1); + norm2=(dec1)(norm_factor*start2[0]); + if (likely(len2>0)) + norm2+=(dec1)(norm_factor*start2[1]/DIG_BASE); + + if (*start1 < *start2) + dcarry=*start1++; + else + dcarry=0; + + /* main loop */ + for (; buf0 < stop0; buf0++) + { + /* short-circuit, if possible */ + if (unlikely(dcarry == 0 && *start1 < *start2)) + guess=0; + else + { + /* D3: make a guess */ + x=start1[0]+((dec2)dcarry)*DIG_BASE; + y=start1[1]; + guess=(norm_factor*x+norm_factor*y/DIG_BASE)/norm2; + if (unlikely(guess >= DIG_BASE)) + guess=DIG_BASE-1; + if (likely(len2>0)) + { + /* hmm, this is a suspicious trick - I removed normalization here */ + if (start2[1]*guess > (x-guess*start2[0])*DIG_BASE+y) + guess--; + if (unlikely(start2[1]*guess > (x-guess*start2[0])*DIG_BASE+y)) + guess--; + DBUG_ASSERT(start2[1]*guess <= (x-guess*start2[0])*DIG_BASE+y); + } + + /* D4: multiply and subtract */ + buf2=stop2; + buf1=start1+len2; + DBUG_ASSERT(buf1 < stop1); + for (carry=0; buf2 > start2; buf1--) + { + dec1 hi, lo; + x=guess * (*--buf2); + hi=(dec1)(x/DIG_BASE); + lo=(dec1)(x-((dec2)hi)*DIG_BASE); + SUB2(*buf1, *buf1, lo, carry); + carry+=hi; + } + carry= dcarry < carry; + + /* D5: check the remainder */ + if (unlikely(carry)) + { + /* D6: correct the guess */ + guess--; + buf2=stop2; + buf1=start1+len2; + for (carry=0; buf2 > start2; buf1--) + { + ADD(*buf1, *buf1, *--buf2, carry); + } + } + } + if (likely(div_mod)) + { + DBUG_ASSERT(buf0 < to->buf + to->len); + *buf0=(dec1)guess; + } + dcarry= *start1; + start1++; + } + if (mod) + { + /* + now the result is in tmp1, it has + intg=prec1-frac1 if there were no leading zeroes. + If leading zeroes were present, they have been removed + earlier. We need to now add them back to the result. + frac=max(frac1, frac2)=to->frac + */ + if (dcarry) + *--start1=dcarry; + buf0=to->buf; + /* Calculate the final result's integer digits */ + dintg= (prec1 - frac1) - ((start1 - tmp1) * DIG_PER_DEC1); + if (dintg < 0) + { + /* If leading zeroes in the fractional part were earlier stripped */ + intg0= dintg / DIG_PER_DEC1; + } + else + intg0= ROUND_UP(dintg); + frac0=ROUND_UP(to->frac); + error=E_DEC_OK; + if (unlikely(frac0==0 && intg0==0)) + { + decimal_make_zero(to); + goto done; + } + if (intg0<=0) + { + /* Add back the leading zeroes that were earlier stripped */ + if (unlikely(-intg0 >= to->len)) + { + decimal_make_zero(to); + error=E_DEC_TRUNCATED; + goto done; + } + stop1= start1 + frac0 + intg0; + frac0+=intg0; + to->intg=0; + while (intg0++ < 0) + *buf0++=0; + } + else + { + if (unlikely(intg0 > to->len)) + { + frac0=0; + intg0=to->len; + error=E_DEC_OVERFLOW; + goto done; + } + DBUG_ASSERT(intg0 <= ROUND_UP(from2->intg)); + stop1=start1+frac0+intg0; + to->intg= MY_MIN(intg0 * DIG_PER_DEC1, from2->intg); + } + if (unlikely(intg0+frac0 > to->len)) + { + stop1-=frac0+intg0-to->len; + frac0=to->len-intg0; + to->frac=frac0*DIG_PER_DEC1; + error=E_DEC_TRUNCATED; + } + DBUG_ASSERT(buf0 + (stop1 - start1) <= to->buf + to->len); + while (start1 < stop1) + *buf0++=*start1++; + } +done: + tmp1= remove_leading_zeroes(to, &to->intg); + if(to->buf != tmp1) + memmove(to->buf, tmp1, + (ROUND_UP(to->intg) + ROUND_UP(to->frac)) * sizeof(dec1)); + return error; +} + +/* + division of two decimals + + SYNOPSIS + decimal_div() + from1 - dividend + from2 - divisor + to - quotient + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW/E_DEC_DIV_ZERO; + + NOTES + see do_div_mod() +*/ + +int +decimal_div(const decimal_t *from1, const decimal_t *from2, decimal_t *to, + int scale_incr) +{ + return do_div_mod(from1, from2, to, 0, scale_incr); +} + +/* + modulus + + SYNOPSIS + decimal_mod() + from1 - dividend + from2 - divisor + to - modulus + + RETURN VALUE + E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW/E_DEC_DIV_ZERO; + + NOTES + see do_div_mod() + + DESCRIPTION + the modulus R in R = M mod N + + is defined as + + 0 <= |R| < |M| + sign R == sign M + R = M - k*N, where k is integer + + thus, there's no requirement for M or N to be integers +*/ + +int decimal_mod(const decimal_t *from1, const decimal_t *from2, decimal_t *to) +{ + return do_div_mod(from1, from2, 0, to, 0); +} + +#ifdef MAIN +/* + The main() program has been converted into a unit test. + */ +#endif diff --git a/mysql/strings/dtoa.c b/mysql/strings/dtoa.c new file mode 100644 index 0000000..e05f86a --- /dev/null +++ b/mysql/strings/dtoa.c @@ -0,0 +1,2784 @@ +/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/**************************************************************** + + This file incorporates work covered by the following copyright and + permission notice: + + The author of this software is David M. Gay. + + Copyright (c) 1991, 2000, 2001 by Lucent Technologies. + + Permission to use, copy, modify, and distribute this software for any + purpose without fee is hereby granted, provided that this entire notice + is included in all copies of any software which is or includes a copy + or modification of this software and in all copies of the supporting + documentation for such software. + + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY + REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + + ***************************************************************/ + +#include +#include /* for memcpy and NOT_FIXED_DEC */ + +#ifndef EOVERFLOW +#define EOVERFLOW 84 +#endif + +/** + Appears to suffice to not call malloc() in most cases. + @todo + see if it is possible to get rid of malloc(). + this constant is sufficient to avoid malloc() on all inputs I have tried. +*/ +#define DTOA_BUFF_SIZE (460 * sizeof(void *)) + +/* Magic value returned by dtoa() to indicate overflow */ +#define DTOA_OVERFLOW 9999 + +static double my_strtod_int(const char *, char **, int *, char *, size_t); +static char *dtoa(double, int, int, int *, int *, char **, char *, size_t); +static void dtoa_free(char *, char *, size_t); + +/** + @brief + Converts a given floating point number to a zero-terminated string + representation using the 'f' format. + + @details + This function is a wrapper around dtoa() to do the same as + sprintf(to, "%-.*f", precision, x), though the conversion is usually more + precise. The only difference is in handling [-,+]infinity and nan values, + in which case we print '0\0' to the output string and indicate an overflow. + + @param x the input floating point number. + @param precision the number of digits after the decimal point. + All properties of sprintf() apply: + - if the number of significant digits after the decimal + point is less than precision, the resulting string is + right-padded with zeros + - if the precision is 0, no decimal point appears + - if a decimal point appears, at least one digit appears + before it + @param to pointer to the output buffer. The longest string which + my_fcvt() can return is FLOATING_POINT_BUFFER bytes + (including the terminating '\0'). + @param error if not NULL, points to a location where the status of + conversion is stored upon return. + FALSE successful conversion + TRUE the input number is [-,+]infinity or nan. + The output string in this case is always '0'. + @return number of written characters (excluding terminating '\0') +*/ + +size_t my_fcvt(double x, int precision, char *to, my_bool *error) +{ + int decpt, sign, len, i; + char *res, *src, *end, *dst= to; + char buf[DTOA_BUFF_SIZE]; + DBUG_ASSERT(precision >= 0 && precision < NOT_FIXED_DEC && to != NULL); + + res= dtoa(x, 5, precision, &decpt, &sign, &end, buf, sizeof(buf)); + + if (decpt == DTOA_OVERFLOW) + { + dtoa_free(res, buf, sizeof(buf)); + *to++= '0'; + *to= '\0'; + if (error != NULL) + *error= TRUE; + return 1; + } + + src= res; + len= (int)(end - src); + + if (sign) + *dst++= '-'; + + if (decpt <= 0) + { + *dst++= '0'; + *dst++= '.'; + for (i= decpt; i < 0; i++) + *dst++= '0'; + } + + for (i= 1; i <= len; i++) + { + *dst++= *src++; + if (i == decpt && i < len) + *dst++= '.'; + } + while (i++ <= decpt) + *dst++= '0'; + + if (precision > 0) + { + if (len <= decpt) + *dst++= '.'; + + for (i= precision - MY_MAX(0, (len - decpt)); i > 0; i--) + *dst++= '0'; + } + + *dst= '\0'; + if (error != NULL) + *error= FALSE; + + dtoa_free(res, buf, sizeof(buf)); + + return dst - to; +} + +/** + @brief + Converts a given floating point number to a zero-terminated string + representation with a given field width using the 'e' format + (aka scientific notation) or the 'f' one. + + @details + The format is chosen automatically to provide the most number of significant + digits (and thus, precision) with a given field width. In many cases, the + result is similar to that of sprintf(to, "%g", x) with a few notable + differences: + - the conversion is usually more precise than C library functions. + - there is no 'precision' argument. instead, we specify the number of + characters available for conversion (i.e. a field width). + - the result never exceeds the specified field width. If the field is too + short to contain even a rounded decimal representation, my_gcvt() + indicates overflow and truncates the output string to the specified width. + - float-type arguments are handled differently than double ones. For a + float input number (i.e. when the 'type' argument is MY_GCVT_ARG_FLOAT) + we deliberately limit the precision of conversion by FLT_DIG digits to + avoid garbage past the significant digits. + - unlike sprintf(), in cases where the 'e' format is preferred, we don't + zero-pad the exponent to save space for significant digits. The '+' sign + for a positive exponent does not appear for the same reason. + + @param x the input floating point number. + @param type is either MY_GCVT_ARG_FLOAT or MY_GCVT_ARG_DOUBLE. + Specifies the type of the input number (see notes above). + @param width field width in characters. The minimal field width to + hold any number representation (albeit rounded) is 7 + characters ("-Ne-NNN"). + @param to pointer to the output buffer. The result is always + zero-terminated, and the longest returned string is thus + 'width + 1' bytes. + @param error if not NULL, points to a location where the status of + conversion is stored upon return. + FALSE successful conversion + TRUE the input number is [-,+]infinity or nan. + The output string in this case is always '0'. + @return number of written characters (excluding terminating '\0') + + @todo + Check if it is possible and makes sense to do our own rounding on top of + dtoa() instead of calling dtoa() twice in (rare) cases when the resulting + string representation does not fit in the specified field width and we want + to re-round the input number with fewer significant digits. Examples: + + my_gcvt(-9e-3, ..., 4, ...); + my_gcvt(-9e-3, ..., 2, ...); + my_gcvt(1.87e-3, ..., 4, ...); + my_gcvt(55, ..., 1, ...); + + We do our best to minimize such cases by: + + - passing to dtoa() the field width as the number of significant digits + + - removing the sign of the number early (and decreasing the width before + passing it to dtoa()) + + - choosing the proper format to preserve the most number of significant + digits. +*/ + +size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to, + my_bool *error) +{ + int decpt, sign, len, exp_len; + char *res, *src, *end, *dst= to, *dend= dst + width; + char buf[DTOA_BUFF_SIZE]; + my_bool have_space, force_e_format; + DBUG_ASSERT(width > 0 && to != NULL); + + /* We want to remove '-' from equations early */ + if (x < 0.) + width--; + + res= dtoa(x, 4, type == MY_GCVT_ARG_DOUBLE ? width : MY_MIN(width, FLT_DIG), + &decpt, &sign, &end, buf, sizeof(buf)); + if (decpt == DTOA_OVERFLOW) + { + dtoa_free(res, buf, sizeof(buf)); + *to++= '0'; + *to= '\0'; + if (error != NULL) + *error= TRUE; + return 1; + } + + if (error != NULL) + *error= FALSE; + + src= res; + len= (int)(end - res); + + /* + Number of digits in the exponent from the 'e' conversion. + The sign of the exponent is taken into account separetely, we don't need + to count it here. + */ + exp_len= 1 + (decpt >= 101 || decpt <= -99) + (decpt >= 11 || decpt <= -9); + + /* + Do we have enough space for all digits in the 'f' format? + Let 'len' be the number of significant digits returned by dtoa, + and F be the length of the resulting decimal representation. + Consider the following cases: + 1. decpt <= 0, i.e. we have "0.NNN" => F = len - decpt + 2 + 2. 0 < decpt < len, i.e. we have "NNN.NNN" => F = len + 1 + 3. len <= decpt, i.e. we have "NNN00" => F = decpt + */ + have_space= (decpt <= 0 ? len - decpt + 2 : + decpt > 0 && decpt < len ? len + 1 : + decpt) <= width; + /* + The following is true when no significant digits can be placed with the + specified field width using the 'f' format, and the 'e' format + will not be truncated. + */ + force_e_format= (decpt <= 0 && width <= 2 - decpt && width >= 3 + exp_len); + /* + Assume that we don't have enough space to place all significant digits in + the 'f' format. We have to choose between the 'e' format and the 'f' one + to keep as many significant digits as possible. + Let E and F be the lengths of decimal representaion in the 'e' and 'f' + formats, respectively. We want to use the 'f' format if, and only if F <= E. + Consider the following cases: + 1. decpt <= 0. + F = len - decpt + 2 (see above) + E = len + (len > 1) + 1 + 1 (decpt <= -99) + (decpt <= -9) + 1 + ("N.NNe-MMM") + (F <= E) <=> (len == 1 && decpt >= -1) || (len > 1 && decpt >= -2) + We also need to ensure that if the 'f' format is chosen, + the field width allows us to place at least one significant digit + (i.e. width > 2 - decpt). If not, we prefer the 'e' format. + 2. 0 < decpt < len + F = len + 1 (see above) + E = len + 1 + 1 + ... ("N.NNeMMM") + F is always less than E. + 3. len <= decpt <= width + In this case we have enough space to represent the number in the 'f' + format, so we prefer it with some exceptions. + 4. width < decpt + The number cannot be represented in the 'f' format at all, always use + the 'e' 'one. + */ + if ((have_space || + /* + Not enough space, let's see if the 'f' format provides the most number + of significant digits. + */ + ((decpt <= width && (decpt >= -1 || (decpt == -2 && + (len > 1 || !force_e_format)))) && + !force_e_format)) && + + /* + Use the 'e' format in some cases even if we have enough space for the + 'f' one. See comment for MAX_DECPT_FOR_F_FORMAT. + */ + (!have_space || (decpt >= -MAX_DECPT_FOR_F_FORMAT + 1 && + (decpt <= MAX_DECPT_FOR_F_FORMAT || len > decpt)))) + { + /* 'f' format */ + int i; + + width-= (decpt < len) + (decpt <= 0 ? 1 - decpt : 0); + + /* Do we have to truncate any digits? */ + if (width < len) + { + if (width < decpt) + { + if (error != NULL) + *error= TRUE; + width= decpt; + } + + /* + We want to truncate (len - width) least significant digits after the + decimal point. For this we are calling dtoa with mode=5, passing the + number of significant digits = (len-decpt) - (len-width) = width-decpt + */ + dtoa_free(res, buf, sizeof(buf)); + res= dtoa(x, 5, width - decpt, &decpt, &sign, &end, buf, sizeof(buf)); + src= res; + len= (int)(end - res); + } + + if (len == 0) + { + /* Underflow. Just print '0' and exit */ + *dst++= '0'; + goto end; + } + + /* + At this point we are sure we have enough space to put all digits + returned by dtoa + */ + if (sign && dst < dend) + *dst++= '-'; + if (decpt <= 0) + { + if (dst < dend) + *dst++= '0'; + if (len > 0 && dst < dend) + *dst++= '.'; + for (; decpt < 0 && dst < dend; decpt++) + *dst++= '0'; + } + + for (i= 1; i <= len && dst < dend; i++) + { + *dst++= *src++; + if (i == decpt && i < len && dst < dend) + *dst++= '.'; + } + while (i++ <= decpt && dst < dend) + *dst++= '0'; + } + else + { + /* 'e' format */ + int decpt_sign= 0; + + if (--decpt < 0) + { + decpt= -decpt; + width--; + decpt_sign= 1; + } + width-= 1 + exp_len; /* eNNN */ + + if (len > 1) + width--; + + if (width <= 0) + { + /* Overflow */ + if (error != NULL) + *error= TRUE; + width= 0; + } + + /* Do we have to truncate any digits? */ + if (width < len) + { + /* Yes, re-convert with a smaller width */ + dtoa_free(res, buf, sizeof(buf)); + res= dtoa(x, 4, width, &decpt, &sign, &end, buf, sizeof(buf)); + src= res; + len= (int)(end - res); + if (--decpt < 0) + decpt= -decpt; + } + /* + At this point we are sure we have enough space to put all digits + returned by dtoa + */ + if (sign && dst < dend) + *dst++= '-'; + if (dst < dend) + *dst++= *src++; + if (len > 1 && dst < dend) + { + *dst++= '.'; + while (src < end && dst < dend) + *dst++= *src++; + } + if (dst < dend) + *dst++= 'e'; + if (decpt_sign && dst < dend) + *dst++= '-'; + + if (decpt >= 100 && dst < dend) + { + *dst++= decpt / 100 + '0'; + decpt%= 100; + if (dst < dend) + *dst++= decpt / 10 + '0'; + } + else if (decpt >= 10 && dst < dend) + *dst++= decpt / 10 + '0'; + if (dst < dend) + *dst++= decpt % 10 + '0'; + + } + +end: + dtoa_free(res, buf, sizeof(buf)); + *dst= '\0'; + + return dst - to; +} + +/** + @brief + Converts string to double (string does not have to be zero-terminated) + + @details + This is a wrapper around dtoa's version of strtod(). + + @param str input string + @param end address of a pointer to the first character after the input + string. Upon return the pointer is set to point to the first + rejected character. + @param error Upon return is set to EOVERFLOW in case of underflow or + overflow. + + @return The resulting double value. In case of underflow, 0.0 is + returned. In case overflow, signed DBL_MAX is returned. +*/ + +double my_strtod(const char *str, char **end, int *error) +{ + char buf[DTOA_BUFF_SIZE]; + double res; + DBUG_ASSERT(end != NULL && ((str != NULL && *end != NULL) || + (str == NULL && *end == NULL)) && + error != NULL); + + res= my_strtod_int(str, end, error, buf, sizeof(buf)); + return (*error == 0) ? res : (res < 0 ? -DBL_MAX : DBL_MAX); +} + + +double my_atof(const char *nptr) +{ + int error; + const char *end= nptr+65535; /* Should be enough */ + return (my_strtod(nptr, (char**) &end, &error)); +} + + +/**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ +/* Please send bug reports to David M. Gay (dmg at acm dot org, + * with " at " changed at "@" and " dot " changed to "."). */ + +/* + Original copy of the software is located at http://www.netlib.org/fp/dtoa.c + It was adjusted to serve MySQL server needs: + * strtod() was modified to not expect a zero-terminated string. + It now honors 'se' (end of string) argument as the input parameter, + not just as the output one. + * in dtoa(), in case of overflow/underflow/NaN result string now contains "0"; + decpt is set to DTOA_OVERFLOW to indicate overflow. + * support for VAX, IBM mainframe and 16-bit hardware removed + * we always assume that 64-bit integer type is available + * support for Kernigan-Ritchie style headers (pre-ANSI compilers) + removed + * all gcc warnings ironed out + * we always assume multithreaded environment, so we had to change + memory allocation procedures to use stack in most cases; + malloc is used as the last resort. + * pow5mult rewritten to use pre-calculated pow5 list instead of + the one generated on the fly. +*/ + + +/* + On a machine with IEEE extended-precision registers, it is + necessary to specify double-precision (53-bit) rounding precision + before invoking strtod or dtoa. If the machine uses (the equivalent + of) Intel 80x87 arithmetic, the call + _control87(PC_53, MCW_PC); + does this with many compilers. Whether this or another call is + appropriate depends on the compiler; for this to work, it may be + necessary to #include "float.h" or another system-dependent header + file. +*/ + +/* + #define Honor_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3 + and dtoa should round accordingly. + #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3 + and Honor_FLT_ROUNDS is not #defined. + + TODO: check if we can get rid of the above two +*/ + +typedef int32 Long; +typedef uint32 ULong; +typedef int64 LLong; +typedef uint64 ULLong; + +typedef union { double d; ULong L[2]; } U; + +#if defined(WORDS_BIGENDIAN) || (defined(__FLOAT_WORD_ORDER) && \ + (__FLOAT_WORD_ORDER == __BIG_ENDIAN)) +#define word0(x) (x)->L[0] +#define word1(x) (x)->L[1] +#else +#define word0(x) (x)->L[1] +#define word1(x) (x)->L[0] +#endif + +#define dval(x) (x)->d + +/* #define P DBL_MANT_DIG */ +/* Ten_pmax= floor(P*log(2)/log(5)) */ +/* Bletch= (highest power of 2 < DBL_MAX_10_EXP) / 16 */ +/* Quick_max= floor((P-1)*log(FLT_RADIX)/log(10) - 1) */ +/* Int_max= floor(P*log(FLT_RADIX)/log(10) - 1) */ + +#define Exp_shift 20 +#define Exp_shift1 20 +#define Exp_msk1 0x100000 +#define Exp_mask 0x7ff00000 +#define P 53 +#define Bias 1023 +#define Emin (-1022) +#define Exp_1 0x3ff00000 +#define Exp_11 0x3ff00000 +#define Ebits 11 +#define Frac_mask 0xfffff +#define Frac_mask1 0xfffff +#define Ten_pmax 22 +#define Bletch 0x10 +#define Bndry_mask 0xfffff +#define Bndry_mask1 0xfffff +#define LSB 1 +#define Sign_bit 0x80000000 +#define Log2P 1 +#define Tiny1 1 +#define Quick_max 14 +#define Int_max 14 + +#ifndef Flt_Rounds +#ifdef FLT_ROUNDS +#define Flt_Rounds FLT_ROUNDS +#else +#define Flt_Rounds 1 +#endif +#endif /*Flt_Rounds*/ + +#ifdef Honor_FLT_ROUNDS +#define Rounding rounding +#undef Check_FLT_ROUNDS +#define Check_FLT_ROUNDS +#else +#define Rounding Flt_Rounds +#endif + +#define rounded_product(a,b) a*= b +#define rounded_quotient(a,b) a/= b + +#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1)) +#define Big1 0xffffffff +#define FFFFFFFF 0xffffffffUL + +/* This is tested to be enough for dtoa */ + +#define Kmax 15 + +#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \ + 2*sizeof(int) + y->wds*sizeof(ULong)) + +/* Arbitrary-length integer */ + +typedef struct Bigint +{ + union { + ULong *x; /* points right after this Bigint object */ + struct Bigint *next; /* to maintain free lists */ + } p; + int k; /* 2^k = maxwds */ + int maxwds; /* maximum length in 32-bit words */ + int sign; /* not zero if number is negative */ + int wds; /* current length in 32-bit words */ +} Bigint; + + +/* A simple stack-memory based allocator for Bigints */ + +typedef struct Stack_alloc +{ + char *begin; + char *free; + char *end; + /* + Having list of free blocks lets us reduce maximum required amount + of memory from ~4000 bytes to < 1680 (tested on x86). + */ + Bigint *freelist[Kmax+1]; +} Stack_alloc; + + +/* + Try to allocate object on stack, and resort to malloc if all + stack memory is used. Ensure allocated objects to be aligned by the pointer + size in order to not break the alignment rules when storing a pointer to a + Bigint. +*/ + +static Bigint *Balloc(int k, Stack_alloc *alloc) +{ + Bigint *rv; + DBUG_ASSERT(k <= Kmax); + if (k <= Kmax && alloc->freelist[k]) + { + rv= alloc->freelist[k]; + alloc->freelist[k]= rv->p.next; + } + else + { + int x, len; + + x= 1 << k; + len= MY_ALIGN(sizeof(Bigint) + x * sizeof(ULong), SIZEOF_CHARP); + + if (alloc->free + len <= alloc->end) + { + rv= (Bigint*) alloc->free; + alloc->free+= len; + } + else + rv= (Bigint*) malloc(len); + + rv->k= k; + rv->maxwds= x; + } + rv->sign= rv->wds= 0; + rv->p.x= (ULong*) (rv + 1); + return rv; +} + + +/* + If object was allocated on stack, try putting it to the free + list. Otherwise call free(). +*/ + +static void Bfree(Bigint *v, Stack_alloc *alloc) +{ + char *gptr= (char*) v; /* generic pointer */ + if (gptr < alloc->begin || gptr >= alloc->end) + free(gptr); + else if (v->k <= Kmax) + { + /* + Maintain free lists only for stack objects: this way we don't + have to bother with freeing lists in the end of dtoa; + heap should not be used normally anyway. + */ + v->p.next= alloc->freelist[v->k]; + alloc->freelist[v->k]= v; + } +} + + +/* + This is to place return value of dtoa in: tries to use stack + as well, but passes by free lists management and just aligns len by + the pointer size in order to not break the alignment rules when storing a + pointer to a Bigint. +*/ + +static char *dtoa_alloc(int i, Stack_alloc *alloc) +{ + char *rv; + int aligned_size= MY_ALIGN(i, SIZEOF_CHARP); + if (alloc->free + aligned_size <= alloc->end) + { + rv= alloc->free; + alloc->free+= aligned_size; + } + else + rv= malloc(i); + return rv; +} + + +/* + dtoa_free() must be used to free values s returned by dtoa() + This is the counterpart of dtoa_alloc() +*/ + +static void dtoa_free(char *gptr, char *buf, size_t buf_size) +{ + if (gptr < buf || gptr >= buf + buf_size) + free(gptr); +} + + +/* Bigint arithmetic functions */ + +/* Multiply by m and add a */ + +static Bigint *multadd(Bigint *b, int m, int a, Stack_alloc *alloc) +{ + int i, wds; + ULong *x; + ULLong carry, y; + Bigint *b1; + + wds= b->wds; + x= b->p.x; + i= 0; + carry= a; + do + { + y= *x * (ULLong)m + carry; + carry= y >> 32; + *x++= (ULong)(y & FFFFFFFF); + } + while (++i < wds); + if (carry) + { + if (wds >= b->maxwds) + { + b1= Balloc(b->k+1, alloc); + Bcopy(b1, b); + Bfree(b, alloc); + b= b1; + } + b->p.x[wds++]= (ULong) carry; + b->wds= wds; + } + return b; +} + +/** + Converts a string to Bigint. + + Now we have nd0 digits, starting at s, followed by a + decimal point, followed by nd-nd0 digits. + Unless nd0 == nd, in which case we have a number of the form: + ".xxxxxx" or "xxxxxx." + + @param s Input string, already partially parsed by my_strtod_int(). + @param nd0 Number of digits before decimal point. + @param nd Total number of digits. + @param y9 Pre-computed value of the first nine digits. + @param alloc Stack allocator for Bigints. + */ +static Bigint *s2b(const char *s, int nd0, int nd, ULong y9, Stack_alloc *alloc) +{ + Bigint *b; + int i, k; + Long x, y; + + x= (nd + 8) / 9; + for (k= 0, y= 1; x > y; y <<= 1, k++) ; + b= Balloc(k, alloc); + b->p.x[0]= y9; + b->wds= 1; + + i= 9; + if (9 < nd0) + { + s+= 9; + do + b= multadd(b, 10, *s++ - '0', alloc); + while (++i < nd0); + s++; /* skip '.' */ + } + else + s+= 10; + /* now do the fractional part */ + for(; i < nd; i++) + b= multadd(b, 10, *s++ - '0', alloc); + return b; +} + + +static int hi0bits(ULong x) +{ + int k= 0; + + if (!(x & 0xffff0000)) + { + k= 16; + x<<= 16; + } + if (!(x & 0xff000000)) + { + k+= 8; + x<<= 8; + } + if (!(x & 0xf0000000)) + { + k+= 4; + x<<= 4; + } + if (!(x & 0xc0000000)) + { + k+= 2; + x<<= 2; + } + if (!(x & 0x80000000)) + { + k++; + if (!(x & 0x40000000)) + return 32; + } + return k; +} + + +static int lo0bits(ULong *y) +{ + int k; + ULong x= *y; + + if (x & 7) + { + if (x & 1) + return 0; + if (x & 2) + { + *y= x >> 1; + return 1; + } + *y= x >> 2; + return 2; + } + k= 0; + if (!(x & 0xffff)) + { + k= 16; + x>>= 16; + } + if (!(x & 0xff)) + { + k+= 8; + x>>= 8; + } + if (!(x & 0xf)) + { + k+= 4; + x>>= 4; + } + if (!(x & 0x3)) + { + k+= 2; + x>>= 2; + } + if (!(x & 1)) + { + k++; + x>>= 1; + if (!x) + return 32; + } + *y= x; + return k; +} + + +/* Convert integer to Bigint number */ + +static Bigint *i2b(int i, Stack_alloc *alloc) +{ + Bigint *b; + + b= Balloc(1, alloc); + b->p.x[0]= i; + b->wds= 1; + return b; +} + + +/* Multiply two Bigint numbers */ + +static Bigint *mult(Bigint *a, Bigint *b, Stack_alloc *alloc) +{ + Bigint *c; + int k, wa, wb, wc; + ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0; + ULong y; + ULLong carry, z; + + if (a->wds < b->wds) + { + c= a; + a= b; + b= c; + } + k= a->k; + wa= a->wds; + wb= b->wds; + wc= wa + wb; + if (wc > a->maxwds) + k++; + c= Balloc(k, alloc); + for (x= c->p.x, xa= x + wc; x < xa; x++) + *x= 0; + xa= a->p.x; + xae= xa + wa; + xb= b->p.x; + xbe= xb + wb; + xc0= c->p.x; + for (; xb < xbe; xc0++) + { + if ((y= *xb++)) + { + x= xa; + xc= xc0; + carry= 0; + do + { + z= *x++ * (ULLong)y + *xc + carry; + carry= z >> 32; + *xc++= (ULong) (z & FFFFFFFF); + } + while (x < xae); + *xc= (ULong) carry; + } + } + for (xc0= c->p.x, xc= xc0 + wc; wc > 0 && !*--xc; --wc) ; + c->wds= wc; + return c; +} + + +/* + Precalculated array of powers of 5: tested to be enough for + vasting majority of dtoa_r cases. +*/ + +static ULong powers5[]= +{ + 625UL, + + 390625UL, + + 2264035265UL, 35UL, + + 2242703233UL, 762134875UL, 1262UL, + + 3211403009UL, 1849224548UL, 3668416493UL, 3913284084UL, 1593091UL, + + 781532673UL, 64985353UL, 253049085UL, 594863151UL, 3553621484UL, + 3288652808UL, 3167596762UL, 2788392729UL, 3911132675UL, 590UL, + + 2553183233UL, 3201533787UL, 3638140786UL, 303378311UL, 1809731782UL, + 3477761648UL, 3583367183UL, 649228654UL, 2915460784UL, 487929380UL, + 1011012442UL, 1677677582UL, 3428152256UL, 1710878487UL, 1438394610UL, + 2161952759UL, 4100910556UL, 1608314830UL, 349175UL +}; + + +static Bigint p5_a[]= +{ + /* { x } - k - maxwds - sign - wds */ + { { powers5 }, 1, 1, 0, 1 }, + { { powers5 + 1 }, 1, 1, 0, 1 }, + { { powers5 + 2 }, 1, 2, 0, 2 }, + { { powers5 + 4 }, 2, 3, 0, 3 }, + { { powers5 + 7 }, 3, 5, 0, 5 }, + { { powers5 + 12 }, 4, 10, 0, 10 }, + { { powers5 + 22 }, 5, 19, 0, 19 } +}; + +#define P5A_MAX (sizeof(p5_a)/sizeof(*p5_a) - 1) + +static Bigint *pow5mult(Bigint *b, int k, Stack_alloc *alloc) +{ + Bigint *b1, *p5, *p51=NULL; + int i; + static int p05[3]= { 5, 25, 125 }; + my_bool overflow= FALSE; + + if ((i= k & 3)) + b= multadd(b, p05[i-1], 0, alloc); + + if (!(k>>= 2)) + return b; + p5= p5_a; + for (;;) + { + if (k & 1) + { + b1= mult(b, p5, alloc); + Bfree(b, alloc); + b= b1; + } + if (!(k>>= 1)) + break; + /* Calculate next power of 5 */ + if (overflow) + { + p51= mult(p5, p5, alloc); + Bfree(p5, alloc); + p5= p51; + } + else if (p5 < p5_a + P5A_MAX) + ++p5; + else if (p5 == p5_a + P5A_MAX) + { + p5= mult(p5, p5, alloc); + overflow= TRUE; + } + } + if (p51) + Bfree(p51, alloc); + return b; +} + + +static Bigint *lshift(Bigint *b, int k, Stack_alloc *alloc) +{ + int i, k1, n, n1; + Bigint *b1; + ULong *x, *x1, *xe, z; + + n= k >> 5; + k1= b->k; + n1= n + b->wds + 1; + for (i= b->maxwds; n1 > i; i<<= 1) + k1++; + b1= Balloc(k1, alloc); + x1= b1->p.x; + for (i= 0; i < n; i++) + *x1++= 0; + x= b->p.x; + xe= x + b->wds; + if (k&= 0x1f) + { + k1= 32 - k; + z= 0; + do + { + *x1++= *x << k | z; + z= *x++ >> k1; + } + while (x < xe); + if ((*x1= z)) + ++n1; + } + else + do + *x1++= *x++; + while (x < xe); + b1->wds= n1 - 1; + Bfree(b, alloc); + return b1; +} + + +static int cmp(Bigint *a, Bigint *b) +{ + ULong *xa, *xa0, *xb, *xb0; + int i, j; + + i= a->wds; + j= b->wds; + if (i-= j) + return i; + xa0= a->p.x; + xa= xa0 + j; + xb0= b->p.x; + xb= xb0 + j; + for (;;) + { + if (*--xa != *--xb) + return *xa < *xb ? -1 : 1; + if (xa <= xa0) + break; + } + return 0; +} + + +static Bigint *diff(Bigint *a, Bigint *b, Stack_alloc *alloc) +{ + Bigint *c; + int i, wa, wb; + ULong *xa, *xae, *xb, *xbe, *xc; + ULLong borrow, y; + + i= cmp(a,b); + if (!i) + { + c= Balloc(0, alloc); + c->wds= 1; + c->p.x[0]= 0; + return c; + } + if (i < 0) + { + c= a; + a= b; + b= c; + i= 1; + } + else + i= 0; + c= Balloc(a->k, alloc); + c->sign= i; + wa= a->wds; + xa= a->p.x; + xae= xa + wa; + wb= b->wds; + xb= b->p.x; + xbe= xb + wb; + xc= c->p.x; + borrow= 0; + do + { + y= (ULLong)*xa++ - *xb++ - borrow; + borrow= y >> 32 & (ULong)1; + *xc++= (ULong) (y & FFFFFFFF); + } + while (xb < xbe); + while (xa < xae) + { + y= *xa++ - borrow; + borrow= y >> 32 & (ULong)1; + *xc++= (ULong) (y & FFFFFFFF); + } + while (!*--xc) + wa--; + c->wds= wa; + return c; +} + + +static double ulp(U *x) +{ + Long L; + U u; + + L= (word0(x) & Exp_mask) - (P - 1)*Exp_msk1; + word0(&u) = L; + word1(&u) = 0; + return dval(&u); +} + + +static double b2d(Bigint *a, int *e) +{ + ULong *xa, *xa0, w, y, z; + int k; + U d; +#define d0 word0(&d) +#define d1 word1(&d) + + xa0= a->p.x; + xa= xa0 + a->wds; + y= *--xa; + k= hi0bits(y); + *e= 32 - k; + if (k < Ebits) + { + d0= Exp_1 | y >> (Ebits - k); + w= xa > xa0 ? *--xa : 0; + d1= y << ((32-Ebits) + k) | w >> (Ebits - k); + goto ret_d; + } + z= xa > xa0 ? *--xa : 0; + if (k-= Ebits) + { + d0= Exp_1 | y << k | z >> (32 - k); + y= xa > xa0 ? *--xa : 0; + d1= z << k | y >> (32 - k); + } + else + { + d0= Exp_1 | y; + d1= z; + } + ret_d: +#undef d0 +#undef d1 + return dval(&d); +} + + +static Bigint *d2b(U *d, int *e, int *bits, Stack_alloc *alloc) +{ + Bigint *b; + int de, k; + ULong *x, y, z; + int i; +#define d0 word0(d) +#define d1 word1(d) + + b= Balloc(1, alloc); + x= b->p.x; + + z= d0 & Frac_mask; + d0 &= 0x7fffffff; /* clear sign bit, which we ignore */ + if ((de= (int)(d0 >> Exp_shift))) + z|= Exp_msk1; + if ((y= d1)) + { + if ((k= lo0bits(&y))) + { + x[0]= y | z << (32 - k); + z>>= k; + } + else + x[0]= y; + i= b->wds= (x[1]= z) ? 2 : 1; + } + else + { + k= lo0bits(&z); + x[0]= z; + i= b->wds= 1; + k+= 32; + } + if (de) + { + *e= de - Bias - (P-1) + k; + *bits= P - k; + } + else + { + *e= de - Bias - (P-1) + 1 + k; + *bits= 32*i - hi0bits(x[i-1]); + } + return b; +#undef d0 +#undef d1 +} + + +static double ratio(Bigint *a, Bigint *b) +{ + U da, db; + int k, ka, kb; + + dval(&da)= b2d(a, &ka); + dval(&db)= b2d(b, &kb); + k= ka - kb + 32*(a->wds - b->wds); + if (k > 0) + word0(&da)+= k*Exp_msk1; + else + { + k= -k; + word0(&db)+= k*Exp_msk1; + } + return dval(&da) / dval(&db); +} + +static const double tens[] = +{ + 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, + 1e20, 1e21, 1e22 +}; + +static const double bigtens[]= { 1e16, 1e32, 1e64, 1e128, 1e256 }; +static const double tinytens[]= +{ 1e-16, 1e-32, 1e-64, 1e-128, + 9007199254740992.*9007199254740992.e-256 /* = 2^106 * 1e-53 */ +}; +/* + The factor of 2^53 in tinytens[4] helps us avoid setting the underflow + flag unnecessarily. It leads to a song and dance at the end of strtod. +*/ +#define Scale_Bit 0x10 +#define n_bigtens 5 + +/* + strtod for IEEE--arithmetic machines. + + This strtod returns a nearest machine number to the input decimal + string (or sets errno to EOVERFLOW). Ties are broken by the IEEE round-even + rule. + + Inspired loosely by William D. Clinger's paper "How to Read Floating + Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101]. + + Modifications: + + 1. We only require IEEE (not IEEE double-extended). + 2. We get by with floating-point arithmetic in a case that + Clinger missed -- when we're computing d * 10^n + for a small integer d and the integer n is not too + much larger than 22 (the maximum integer k for which + we can represent 10^k exactly), we may be able to + compute (d*10^k) * 10^(e-k) with just one roundoff. + 3. Rather than a bit-at-a-time adjustment of the binary + result in the hard case, we use floating-point + arithmetic to determine the adjustment to within + one bit; only in really hard cases do we need to + compute a second residual. + 4. Because of 3., we don't need a large table of powers of 10 + for ten-to-e (just some small tables, e.g. of 10^k + for 0 <= k <= 22). +*/ + +static double my_strtod_int(const char *s00, char **se, int *error, char *buf, size_t buf_size) +{ + int scale; + int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c= 0, dsign, + e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign; + const char *s, *s0, *s1, *end = *se; + double aadj, aadj1; + U aadj2, adj, rv, rv0; + Long L; + ULong y, z; + Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; +#ifdef Honor_FLT_ROUNDS + int rounding; +#endif + Stack_alloc alloc; + + *error= 0; + + alloc.begin= alloc.free= buf; + alloc.end= buf + buf_size; + memset(alloc.freelist, 0, sizeof(alloc.freelist)); + + sign= nz0= nz= 0; + dval(&rv)= 0.; + for (s= s00; s < end; s++) + switch (*s) { + case '-': + sign= 1; + /* no break */ + case '+': + s++; + goto break2; + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + continue; + default: + goto break2; + } + break2: + if (s >= end) + goto ret0; + + if (*s == '0') + { + nz0= 1; + while (++s < end && *s == '0') ; + if (s >= end) + goto ret; + } + s0= s; + y= z= 0; + for (nd= nf= 0; s < end && (c= *s) >= '0' && c <= '9'; nd++, s++) + if (nd < 9) + y= 10*y + c - '0'; + else if (nd < 16) + z= 10*z + c - '0'; + nd0= nd; + if (s < end && c == '.') + { + c= *++s; + if (!nd) + { + for (; s < end; ++s) + { + c= *s; + if (c != '0') + break; + nz++; + } + if (s < end && c > '0' && c <= '9') + { + s0= s; + nf+= nz; + nz= 0; + } + else + goto dig_done; + } + for (; s < end; ++s) + { + c= *s; + if (c < '0' || c > '9') + break; + /* + Here we are parsing the fractional part. + We can stop counting digits after a while: the extra digits + will not contribute to the actual result produced by s2b(). + We have to continue scanning, in case there is an exponent part. + */ + if (nd < 2 * DBL_DIG) + { + nz++; + if (c-= '0') + { + nf+= nz; + for (i= 1; i < nz; i++) + if (nd++ < 9) + y*= 10; + else if (nd <= DBL_DIG + 1) + z*= 10; + if (nd++ < 9) + y= 10*y + c; + else if (nd <= DBL_DIG + 1) + z= 10*z + c; + nz= 0; + } + } + } + } + dig_done: + e= 0; + if (s < end && (c == 'e' || c == 'E')) + { + if (!nd && !nz && !nz0) + goto ret0; + s00= s; + esign= 0; + if (++s < end) + switch (c= *s) { + case '-': + esign= 1; + case '+': + if (++s < end) + c= *s; + } + if (s < end && c >= '0' && c <= '9') + { + while (s < end && c == '0') + c= *++s; + if (s < end && c > '0' && c <= '9') { + L= c - '0'; + s1= s; + while (++s < end && (c= *s) >= '0' && c <= '9') + L= 10*L + c - '0'; + if (s - s1 > 8 || L > 19999) + /* Avoid confusion from exponents + * so large that e might overflow. + */ + e= 19999; /* safe for 16 bit ints */ + else + e= (int)L; + if (esign) + e= -e; + } + else + e= 0; + } + else + s= s00; + } + if (!nd) + { + if (!nz && !nz0) + { + ret0: + s= s00; + sign= 0; + } + goto ret; + } + e1= e -= nf; + + /* + Now we have nd0 digits, starting at s0, followed by a + decimal point, followed by nd-nd0 digits. The number we're + after is the integer represented by those digits times + 10**e + */ + + if (!nd0) + nd0= nd; + k= nd < DBL_DIG + 1 ? nd : DBL_DIG + 1; + dval(&rv)= y; + if (k > 9) + { + dval(&rv)= tens[k - 9] * dval(&rv) + z; + } + bd0= 0; + if (nd <= DBL_DIG +#ifndef Honor_FLT_ROUNDS + && Flt_Rounds == 1 +#endif + ) + { + if (!e) + goto ret; + if (e > 0) + { + if (e <= Ten_pmax) + { +#ifdef Honor_FLT_ROUNDS + /* round correctly FLT_ROUNDS = 2 or 3 */ + if (sign) + { + rv.d= -rv.d; + sign= 0; + } +#endif + /* rv = */ rounded_product(dval(&rv), tens[e]); + goto ret; + } + i= DBL_DIG - nd; + if (e <= Ten_pmax + i) + { + /* + A fancier test would sometimes let us do + this for larger i values. + */ +#ifdef Honor_FLT_ROUNDS + /* round correctly FLT_ROUNDS = 2 or 3 */ + if (sign) + { + rv.d= -rv.d; + sign= 0; + } +#endif + e-= i; + dval(&rv)*= tens[i]; + /* rv = */ rounded_product(dval(&rv), tens[e]); + goto ret; + } + } +#ifndef Inaccurate_Divide + else if (e >= -Ten_pmax) + { +#ifdef Honor_FLT_ROUNDS + /* round correctly FLT_ROUNDS = 2 or 3 */ + if (sign) + { + rv.d= -rv.d; + sign= 0; + } +#endif + /* rv = */ rounded_quotient(dval(&rv), tens[-e]); + goto ret; + } +#endif + } + e1+= nd - k; + + scale= 0; +#ifdef Honor_FLT_ROUNDS + if ((rounding= Flt_Rounds) >= 2) + { + if (sign) + rounding= rounding == 2 ? 0 : 2; + else + if (rounding != 2) + rounding= 0; + } +#endif + + /* Get starting approximation = rv * 10**e1 */ + + if (e1 > 0) + { + if ((i= e1 & 15)) + dval(&rv)*= tens[i]; + if (e1&= ~15) + { + if (e1 > DBL_MAX_10_EXP) + { + ovfl: + *error= EOVERFLOW; + /* Can't trust HUGE_VAL */ +#ifdef Honor_FLT_ROUNDS + switch (rounding) + { + case 0: /* toward 0 */ + case 3: /* toward -infinity */ + word0(&rv)= Big0; + word1(&rv)= Big1; + break; + default: + word0(&rv)= Exp_mask; + word1(&rv)= 0; + } +#else /*Honor_FLT_ROUNDS*/ + word0(&rv)= Exp_mask; + word1(&rv)= 0; +#endif /*Honor_FLT_ROUNDS*/ + if (bd0) + goto retfree; + goto ret; + } + e1>>= 4; + for(j= 0; e1 > 1; j++, e1>>= 1) + if (e1 & 1) + dval(&rv)*= bigtens[j]; + /* The last multiplication could overflow. */ + word0(&rv)-= P*Exp_msk1; + dval(&rv)*= bigtens[j]; + if ((z= word0(&rv) & Exp_mask) > Exp_msk1 * (DBL_MAX_EXP + Bias - P)) + goto ovfl; + if (z > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P)) + { + /* set to largest number (Can't trust DBL_MAX) */ + word0(&rv)= Big0; + word1(&rv)= Big1; + } + else + word0(&rv)+= P*Exp_msk1; + } + } + else if (e1 < 0) + { + e1= -e1; + if ((i= e1 & 15)) + dval(&rv)/= tens[i]; + if ((e1>>= 4)) + { + if (e1 >= 1 << n_bigtens) + goto undfl; + if (e1 & Scale_Bit) + scale= 2 * P; + for(j= 0; e1 > 0; j++, e1>>= 1) + if (e1 & 1) + dval(&rv)*= tinytens[j]; + if (scale && (j = 2 * P + 1 - ((word0(&rv) & Exp_mask) >> Exp_shift)) > 0) + { + /* scaled rv is denormal; zap j low bits */ + if (j >= 32) + { + word1(&rv)= 0; + if (j >= 53) + word0(&rv)= (P + 2) * Exp_msk1; + else + word0(&rv)&= 0xffffffff << (j - 32); + } + else + word1(&rv)&= 0xffffffff << j; + } + if (!dval(&rv)) + { + undfl: + dval(&rv)= 0.; + if (bd0) + goto retfree; + goto ret; + } + } + } + + /* Now the hard part -- adjusting rv to the correct value.*/ + + /* Put digits into bd: true value = bd * 10^e */ + + bd0= s2b(s0, nd0, nd, y, &alloc); + + for(;;) + { + bd= Balloc(bd0->k, &alloc); + Bcopy(bd, bd0); + bb= d2b(&rv, &bbe, &bbbits, &alloc); /* rv = bb * 2^bbe */ + bs= i2b(1, &alloc); + + if (e >= 0) + { + bb2= bb5= 0; + bd2= bd5= e; + } + else + { + bb2= bb5= -e; + bd2= bd5= 0; + } + if (bbe >= 0) + bb2+= bbe; + else + bd2-= bbe; + bs2= bb2; +#ifdef Honor_FLT_ROUNDS + if (rounding != 1) + bs2++; +#endif + j= bbe - scale; + i= j + bbbits - 1; /* logb(rv) */ + if (i < Emin) /* denormal */ + j+= P - Emin; + else + j= P + 1 - bbbits; + bb2+= j; + bd2+= j; + bd2+= scale; + i= bb2 < bd2 ? bb2 : bd2; + if (i > bs2) + i= bs2; + if (i > 0) + { + bb2-= i; + bd2-= i; + bs2-= i; + } + if (bb5 > 0) + { + bs= pow5mult(bs, bb5, &alloc); + bb1= mult(bs, bb, &alloc); + Bfree(bb, &alloc); + bb= bb1; + } + if (bb2 > 0) + bb= lshift(bb, bb2, &alloc); + if (bd5 > 0) + bd= pow5mult(bd, bd5, &alloc); + if (bd2 > 0) + bd= lshift(bd, bd2, &alloc); + if (bs2 > 0) + bs= lshift(bs, bs2, &alloc); + delta= diff(bb, bd, &alloc); + dsign= delta->sign; + delta->sign= 0; + i= cmp(delta, bs); +#ifdef Honor_FLT_ROUNDS + if (rounding != 1) + { + if (i < 0) + { + /* Error is less than an ulp */ + if (!delta->p.x[0] && delta->wds <= 1) + { + /* exact */ + break; + } + if (rounding) + { + if (dsign) + { + adj.d= 1.; + goto apply_adj; + } + } + else if (!dsign) + { + adj.d= -1.; + if (!word1(&rv) && !(word0(&rv) & Frac_mask)) + { + y= word0(&rv) & Exp_mask; + if (!scale || y > 2*P*Exp_msk1) + { + delta= lshift(delta, Log2P, &alloc); + if (cmp(delta, bs) <= 0) + adj.d= -0.5; + } + } + apply_adj: + if (scale && (y= word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1) + word0(&adj)+= (2 * P + 1) * Exp_msk1 - y; + dval(&rv)+= adj.d * ulp(&rv); + } + break; + } + adj.d= ratio(delta, bs); + if (adj.d < 1.) + adj.d= 1.; + if (adj.d <= 0x7ffffffe) + { + /* adj = rounding ? ceil(adj) : floor(adj); */ + y= adj.d; + if (y != adj.d) + { + if (!((rounding >> 1) ^ dsign)) + y++; + adj.d= y; + } + } + if (scale && (y= word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1) + word0(&adj)+= (2 * P + 1) * Exp_msk1 - y; + adj.d*= ulp(&rv); + if (dsign) + dval(&rv)+= adj.d; + else + dval(&rv)-= adj.d; + goto cont; + } +#endif /*Honor_FLT_ROUNDS*/ + + if (i < 0) + { + /* + Error is less than half an ulp -- check for special case of mantissa + a power of two. + */ + if (dsign || word1(&rv) || word0(&rv) & Bndry_mask || + (word0(&rv) & Exp_mask) <= (2 * P + 1) * Exp_msk1) + { + break; + } + if (!delta->p.x[0] && delta->wds <= 1) + { + /* exact result */ + break; + } + delta= lshift(delta, Log2P, &alloc); + if (cmp(delta, bs) > 0) + goto drop_down; + break; + } + if (i == 0) + { + /* exactly half-way between */ + if (dsign) + { + if ((word0(&rv) & Bndry_mask1) == Bndry_mask1 && + word1(&rv) == + ((scale && (y = word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1) ? + (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) : + 0xffffffff)) + { + /*boundary case -- increment exponent*/ + word0(&rv)= (word0(&rv) & Exp_mask) + Exp_msk1; + word1(&rv) = 0; + dsign = 0; + break; + } + } + else if (!(word0(&rv) & Bndry_mask) && !word1(&rv)) + { + drop_down: + /* boundary case -- decrement exponent */ + if (scale) + { + L= word0(&rv) & Exp_mask; + if (L <= (2 *P + 1) * Exp_msk1) + { + if (L > (P + 2) * Exp_msk1) + /* round even ==> accept rv */ + break; + /* rv = smallest denormal */ + goto undfl; + } + } + L= (word0(&rv) & Exp_mask) - Exp_msk1; + word0(&rv)= L | Bndry_mask1; + word1(&rv)= 0xffffffff; + break; + } + if (!(word1(&rv) & LSB)) + break; + if (dsign) + dval(&rv)+= ulp(&rv); + else + { + dval(&rv)-= ulp(&rv); + if (!dval(&rv)) + goto undfl; + } + dsign= 1 - dsign; + break; + } + if ((aadj= ratio(delta, bs)) <= 2.) + { + if (dsign) + aadj= aadj1= 1.; + else if (word1(&rv) || word0(&rv) & Bndry_mask) + { + if (word1(&rv) == Tiny1 && !word0(&rv)) + goto undfl; + aadj= 1.; + aadj1= -1.; + } + else + { + /* special case -- power of FLT_RADIX to be rounded down... */ + if (aadj < 2. / FLT_RADIX) + aadj= 1. / FLT_RADIX; + else + aadj*= 0.5; + aadj1= -aadj; + } + } + else + { + aadj*= 0.5; + aadj1= dsign ? aadj : -aadj; +#ifdef Check_FLT_ROUNDS + switch (Rounding) + { + case 2: /* towards +infinity */ + aadj1-= 0.5; + break; + case 0: /* towards 0 */ + case 3: /* towards -infinity */ + aadj1+= 0.5; + } +#else + if (Flt_Rounds == 0) + aadj1+= 0.5; +#endif /*Check_FLT_ROUNDS*/ + } + y= word0(&rv) & Exp_mask; + + /* Check for overflow */ + + if (y == Exp_msk1 * (DBL_MAX_EXP + Bias - 1)) + { + dval(&rv0)= dval(&rv); + word0(&rv)-= P * Exp_msk1; + adj.d= aadj1 * ulp(&rv); + dval(&rv)+= adj.d; + if ((word0(&rv) & Exp_mask) >= Exp_msk1 * (DBL_MAX_EXP + Bias - P)) + { + if (word0(&rv0) == Big0 && word1(&rv0) == Big1) + goto ovfl; + word0(&rv)= Big0; + word1(&rv)= Big1; + goto cont; + } + else + word0(&rv)+= P * Exp_msk1; + } + else + { + if (scale && y <= 2 * P * Exp_msk1) + { + if (aadj <= 0x7fffffff) + { + if ((z= (ULong) aadj) <= 0) + z= 1; + aadj= z; + aadj1= dsign ? aadj : -aadj; + } + dval(&aadj2) = aadj1; + word0(&aadj2)+= (2 * P + 1) * Exp_msk1 - y; + aadj1= dval(&aadj2); + adj.d= aadj1 * ulp(&rv); + dval(&rv)+= adj.d; + if (rv.d == 0.) + goto undfl; + } + else + { + adj.d= aadj1 * ulp(&rv); + dval(&rv)+= adj.d; + } + } + z= word0(&rv) & Exp_mask; + if (!scale) + if (y == z) + { + /* Can we stop now? */ + L= (Long)aadj; + aadj-= L; + /* The tolerances below are conservative. */ + if (dsign || word1(&rv) || word0(&rv) & Bndry_mask) + { + if (aadj < .4999999 || aadj > .5000001) + break; + } + else if (aadj < .4999999 / FLT_RADIX) + break; + } + cont: + Bfree(bb, &alloc); + Bfree(bd, &alloc); + Bfree(bs, &alloc); + Bfree(delta, &alloc); + } + if (scale) + { + word0(&rv0)= Exp_1 - 2 * P * Exp_msk1; + word1(&rv0)= 0; + dval(&rv)*= dval(&rv0); + } + retfree: + Bfree(bb, &alloc); + Bfree(bd, &alloc); + Bfree(bs, &alloc); + Bfree(bd0, &alloc); + Bfree(delta, &alloc); + ret: + *se= (char *)s; + return sign ? -dval(&rv) : dval(&rv); +} + + +static int quorem(Bigint *b, Bigint *S) +{ + int n; + ULong *bx, *bxe, q, *sx, *sxe; + ULLong borrow, carry, y, ys; + + n= S->wds; + if (b->wds < n) + return 0; + sx= S->p.x; + sxe= sx + --n; + bx= b->p.x; + bxe= bx + n; + q= *bxe / (*sxe + 1); /* ensure q <= true quotient */ + if (q) + { + borrow= 0; + carry= 0; + do + { + ys= *sx++ * (ULLong)q + carry; + carry= ys >> 32; + y= *bx - (ys & FFFFFFFF) - borrow; + borrow= y >> 32 & (ULong)1; + *bx++= (ULong) (y & FFFFFFFF); + } + while (sx <= sxe); + if (!*bxe) + { + bx= b->p.x; + while (--bxe > bx && !*bxe) + --n; + b->wds= n; + } + } + if (cmp(b, S) >= 0) + { + q++; + borrow= 0; + carry= 0; + bx= b->p.x; + sx= S->p.x; + do + { + ys= *sx++ + carry; + carry= ys >> 32; + y= *bx - (ys & FFFFFFFF) - borrow; + borrow= y >> 32 & (ULong)1; + *bx++= (ULong) (y & FFFFFFFF); + } + while (sx <= sxe); + bx= b->p.x; + bxe= bx + n; + if (!*bxe) + { + while (--bxe > bx && !*bxe) + --n; + b->wds= n; + } + } + return q; +} + + +/* + dtoa for IEEE arithmetic (dmg): convert double to ASCII string. + + Inspired by "How to Print Floating-Point Numbers Accurately" by + Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126]. + + Modifications: + 1. Rather than iterating, we use a simple numeric overestimate + to determine k= floor(log10(d)). We scale relevant + quantities using O(log2(k)) rather than O(k) multiplications. + 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't + try to generate digits strictly left to right. Instead, we + compute with fewer bits and propagate the carry if necessary + when rounding the final digit up. This is often faster. + 3. Under the assumption that input will be rounded nearest, + mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22. + That is, we allow equality in stopping tests when the + round-nearest rule will give the same floating-point value + as would satisfaction of the stopping test with strict + inequality. + 4. We remove common factors of powers of 2 from relevant + quantities. + 5. When converting floating-point integers less than 1e16, + we use floating-point arithmetic rather than resorting + to multiple-precision integers. + 6. When asked to produce fewer than 15 digits, we first try + to get by with floating-point arithmetic; we resort to + multiple-precision integer arithmetic only if we cannot + guarantee that the floating-point calculation has given + the correctly rounded result. For k requested digits and + "uniformly" distributed input, the probability is + something like 10^(k-15) that we must resort to the Long + calculation. + */ + +static char *dtoa(double dd, int mode, int ndigits, int *decpt, int *sign, + char **rve, char *buf, size_t buf_size) +{ + /* + Arguments ndigits, decpt, sign are similar to those + of ecvt and fcvt; trailing zeros are suppressed from + the returned string. If not null, *rve is set to point + to the end of the return value. If d is +-Infinity or NaN, + then *decpt is set to DTOA_OVERFLOW. + + mode: + 0 ==> shortest string that yields d when read in + and rounded to nearest. + 1 ==> like 0, but with Steele & White stopping rule; + e.g. with IEEE P754 arithmetic , mode 0 gives + 1e23 whereas mode 1 gives 9.999999999999999e22. + 2 ==> max(1,ndigits) significant digits. This gives a + return value similar to that of ecvt, except + that trailing zeros are suppressed. + 3 ==> through ndigits past the decimal point. This + gives a return value similar to that from fcvt, + except that trailing zeros are suppressed, and + ndigits can be negative. + 4,5 ==> similar to 2 and 3, respectively, but (in + round-nearest mode) with the tests of mode 0 to + possibly return a shorter string that rounds to d. + With IEEE arithmetic and compilation with + -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same + as modes 2 and 3 when FLT_ROUNDS != 1. + 6-9 ==> Debugging modes similar to mode - 4: don't try + fast floating-point estimate (if applicable). + + Values of mode other than 0-9 are treated as mode 0. + + Sufficient space is allocated to the return value + to hold the suppressed trailing zeros. + */ + + int bbits, b2, b5, be, dig, i, ieps, ilim= 0, ilim0, + ilim1= 0, j, j1, k, k0, k_check, leftright, m2, m5, s2, s5, + spec_case, try_quick; + Long L; + int denorm; + ULong x; + Bigint *b, *b1, *delta, *mlo, *mhi, *S; + U d2, eps, u; + double ds; + char *s, *s0; +#ifdef Honor_FLT_ROUNDS + int rounding; +#endif + Stack_alloc alloc; + + alloc.begin= alloc.free= buf; + alloc.end= buf + buf_size; + memset(alloc.freelist, 0, sizeof(alloc.freelist)); + + u.d= dd; + if (word0(&u) & Sign_bit) + { + /* set sign for everything, including 0's and NaNs */ + *sign= 1; + word0(&u) &= ~Sign_bit; /* clear sign bit */ + } + else + *sign= 0; + + /* If infinity, set decpt to DTOA_OVERFLOW, if 0 set it to 1 */ + if (((word0(&u) & Exp_mask) == Exp_mask && (*decpt= DTOA_OVERFLOW)) || + (!dval(&u) && (*decpt= 1))) + { + /* Infinity, NaN, 0 */ + char *res= (char*) dtoa_alloc(2, &alloc); + res[0]= '0'; + res[1]= '\0'; + if (rve) + *rve= res + 1; + return res; + } + +#ifdef Honor_FLT_ROUNDS + if ((rounding= Flt_Rounds) >= 2) + { + if (*sign) + rounding= rounding == 2 ? 0 : 2; + else + if (rounding != 2) + rounding= 0; + } +#endif + + b= d2b(&u, &be, &bbits, &alloc); + if ((i= (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) + { + dval(&d2)= dval(&u); + word0(&d2) &= Frac_mask1; + word0(&d2) |= Exp_11; + + /* + log(x) ~=~ log(1.5) + (x-1.5)/1.5 + log10(x) = log(x) / log(10) + ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10)) + log10(d)= (i-Bias)*log(2)/log(10) + log10(d2) + + This suggests computing an approximation k to log10(d) by + + k= (i - Bias)*0.301029995663981 + + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 ); + + We want k to be too large rather than too small. + The error in the first-order Taylor series approximation + is in our favor, so we just round up the constant enough + to compensate for any error in the multiplication of + (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077, + and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14, + adding 1e-13 to the constant term more than suffices. + Hence we adjust the constant term to 0.1760912590558. + (We could get a more accurate k by invoking log10, + but this is probably not worthwhile.) + */ + + i-= Bias; + denorm= 0; + } + else + { + /* d is denormalized */ + + i= bbits + be + (Bias + (P-1) - 1); + x= i > 32 ? word0(&u) << (64 - i) | word1(&u) >> (i - 32) + : word1(&u) << (32 - i); + dval(&d2)= x; + word0(&d2)-= 31*Exp_msk1; /* adjust exponent */ + i-= (Bias + (P-1) - 1) + 1; + denorm= 1; + } + ds= (dval(&d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981; + k= (int)ds; + if (ds < 0. && ds != k) + k--; /* want k= floor(ds) */ + k_check= 1; + if (k >= 0 && k <= Ten_pmax) + { + if (dval(&u) < tens[k]) + k--; + k_check= 0; + } + j= bbits - i - 1; + if (j >= 0) + { + b2= 0; + s2= j; + } + else + { + b2= -j; + s2= 0; + } + if (k >= 0) + { + b5= 0; + s5= k; + s2+= k; + } + else + { + b2-= k; + b5= -k; + s5= 0; + } + if (mode < 0 || mode > 9) + mode= 0; + +#ifdef Check_FLT_ROUNDS + try_quick= Rounding == 1; +#else + try_quick= 1; +#endif + + if (mode > 5) + { + mode-= 4; + try_quick= 0; + } + leftright= 1; + switch (mode) { + case 0: + case 1: + ilim= ilim1= -1; + i= 18; + ndigits= 0; + break; + case 2: + leftright= 0; + /* no break */ + case 4: + if (ndigits <= 0) + ndigits= 1; + ilim= ilim1= i= ndigits; + break; + case 3: + leftright= 0; + /* no break */ + case 5: + i= ndigits + k + 1; + ilim= i; + ilim1= i - 1; + if (i <= 0) + i= 1; + } + s= s0= dtoa_alloc(i, &alloc); + +#ifdef Honor_FLT_ROUNDS + if (mode > 1 && rounding != 1) + leftright= 0; +#endif + + if (ilim >= 0 && ilim <= Quick_max && try_quick) + { + /* Try to get by with floating-point arithmetic. */ + i= 0; + dval(&d2)= dval(&u); + k0= k; + ilim0= ilim; + ieps= 2; /* conservative */ + if (k > 0) + { + ds= tens[k&0xf]; + j= k >> 4; + if (j & Bletch) + { + /* prevent overflows */ + j&= Bletch - 1; + dval(&u)/= bigtens[n_bigtens-1]; + ieps++; + } + for (; j; j>>= 1, i++) + { + if (j & 1) + { + ieps++; + ds*= bigtens[i]; + } + } + dval(&u)/= ds; + } + else if ((j1= -k)) + { + dval(&u)*= tens[j1 & 0xf]; + for (j= j1 >> 4; j; j>>= 1, i++) + { + if (j & 1) + { + ieps++; + dval(&u)*= bigtens[i]; + } + } + } + if (k_check && dval(&u) < 1. && ilim > 0) + { + if (ilim1 <= 0) + goto fast_failed; + ilim= ilim1; + k--; + dval(&u)*= 10.; + ieps++; + } + dval(&eps)= ieps*dval(&u) + 7.; + word0(&eps)-= (P-1)*Exp_msk1; + if (ilim == 0) + { + S= mhi= 0; + dval(&u)-= 5.; + if (dval(&u) > dval(&eps)) + goto one_digit; + if (dval(&u) < -dval(&eps)) + goto no_digits; + goto fast_failed; + } + if (leftright) + { + /* Use Steele & White method of only generating digits needed. */ + dval(&eps)= 0.5/tens[ilim-1] - dval(&eps); + for (i= 0;;) + { + L= (Long) dval(&u); + dval(&u)-= L; + *s++= '0' + (int)L; + if (dval(&u) < dval(&eps)) + goto ret1; + if (1. - dval(&u) < dval(&eps)) + goto bump_up; + if (++i >= ilim) + break; + dval(&eps)*= 10.; + dval(&u)*= 10.; + } + } + else + { + /* Generate ilim digits, then fix them up. */ + dval(&eps)*= tens[ilim-1]; + for (i= 1;; i++, dval(&u)*= 10.) + { + L= (Long)(dval(&u)); + if (!(dval(&u)-= L)) + ilim= i; + *s++= '0' + (int)L; + if (i == ilim) + { + if (dval(&u) > 0.5 + dval(&eps)) + goto bump_up; + else if (dval(&u) < 0.5 - dval(&eps)) + { + while (*--s == '0'); + s++; + goto ret1; + } + break; + } + } + } + fast_failed: + s= s0; + dval(&u)= dval(&d2); + k= k0; + ilim= ilim0; + } + + /* Do we have a "small" integer? */ + + if (be >= 0 && k <= Int_max) + { + /* Yes. */ + ds= tens[k]; + if (ndigits < 0 && ilim <= 0) + { + S= mhi= 0; + if (ilim < 0 || dval(&u) <= 5*ds) + goto no_digits; + goto one_digit; + } + for (i= 1;; i++, dval(&u)*= 10.) + { + L= (Long)(dval(&u) / ds); + dval(&u)-= L*ds; +#ifdef Check_FLT_ROUNDS + /* If FLT_ROUNDS == 2, L will usually be high by 1 */ + if (dval(&u) < 0) + { + L--; + dval(&u)+= ds; + } +#endif + *s++= '0' + (int)L; + if (!dval(&u)) + { + break; + } + if (i == ilim) + { +#ifdef Honor_FLT_ROUNDS + if (mode > 1) + { + switch (rounding) { + case 0: goto ret1; + case 2: goto bump_up; + } + } +#endif + dval(&u)+= dval(&u); + if (dval(&u) > ds || (dval(&u) == ds && L & 1)) + { +bump_up: + while (*--s == '9') + if (s == s0) + { + k++; + *s= '0'; + break; + } + ++*s++; + } + break; + } + } + goto ret1; + } + + m2= b2; + m5= b5; + mhi= mlo= 0; + if (leftright) + { + i = denorm ? be + (Bias + (P-1) - 1 + 1) : 1 + P - bbits; + b2+= i; + s2+= i; + mhi= i2b(1, &alloc); + } + if (m2 > 0 && s2 > 0) + { + i= m2 < s2 ? m2 : s2; + b2-= i; + m2-= i; + s2-= i; + } + if (b5 > 0) + { + if (leftright) + { + if (m5 > 0) + { + mhi= pow5mult(mhi, m5, &alloc); + b1= mult(mhi, b, &alloc); + Bfree(b, &alloc); + b= b1; + } + if ((j= b5 - m5)) + b= pow5mult(b, j, &alloc); + } + else + b= pow5mult(b, b5, &alloc); + } + S= i2b(1, &alloc); + if (s5 > 0) + S= pow5mult(S, s5, &alloc); + + /* Check for special case that d is a normalized power of 2. */ + + spec_case= 0; + if ((mode < 2 || leftright) +#ifdef Honor_FLT_ROUNDS + && rounding == 1 +#endif + ) + { + if (!word1(&u) && !(word0(&u) & Bndry_mask) && + word0(&u) & (Exp_mask & ~Exp_msk1) + ) + { + /* The special case */ + b2+= Log2P; + s2+= Log2P; + spec_case= 1; + } + } + + /* + Arrange for convenient computation of quotients: + shift left if necessary so divisor has 4 leading 0 bits. + + Perhaps we should just compute leading 28 bits of S once + a nd for all and pass them and a shift to quorem, so it + can do shifts and ors to compute the numerator for q. + */ + if ((i= ((s5 ? 32 - hi0bits(S->p.x[S->wds-1]) : 1) + s2) & 0x1f)) + i= 32 - i; + if (i > 4) + { + i-= 4; + b2+= i; + m2+= i; + s2+= i; + } + else if (i < 4) + { + i+= 28; + b2+= i; + m2+= i; + s2+= i; + } + if (b2 > 0) + b= lshift(b, b2, &alloc); + if (s2 > 0) + S= lshift(S, s2, &alloc); + if (k_check) + { + if (cmp(b,S) < 0) + { + k--; + /* we botched the k estimate */ + b= multadd(b, 10, 0, &alloc); + if (leftright) + mhi= multadd(mhi, 10, 0, &alloc); + ilim= ilim1; + } + } + if (ilim <= 0 && (mode == 3 || mode == 5)) + { + if (ilim < 0 || cmp(b,S= multadd(S,5,0, &alloc)) <= 0) + { + /* no digits, fcvt style */ +no_digits: + k= -1 - ndigits; + goto ret; + } +one_digit: + *s++= '1'; + k++; + goto ret; + } + if (leftright) + { + if (m2 > 0) + mhi= lshift(mhi, m2, &alloc); + + /* + Compute mlo -- check for special case that d is a normalized power of 2. + */ + + mlo= mhi; + if (spec_case) + { + mhi= Balloc(mhi->k, &alloc); + Bcopy(mhi, mlo); + mhi= lshift(mhi, Log2P, &alloc); + } + + for (i= 1;;i++) + { + dig= quorem(b,S) + '0'; + /* Do we yet have the shortest decimal string that will round to d? */ + j= cmp(b, mlo); + delta= diff(S, mhi, &alloc); + j1= delta->sign ? 1 : cmp(b, delta); + Bfree(delta, &alloc); + if (j1 == 0 && mode != 1 && !(word1(&u) & 1) +#ifdef Honor_FLT_ROUNDS + && rounding >= 1 +#endif + ) + { + if (dig == '9') + goto round_9_up; + if (j > 0) + dig++; + *s++= dig; + goto ret; + } + if (j < 0 || (j == 0 && mode != 1 && !(word1(&u) & 1))) + { + if (!b->p.x[0] && b->wds <= 1) + { + goto accept_dig; + } +#ifdef Honor_FLT_ROUNDS + if (mode > 1) + switch (rounding) { + case 0: goto accept_dig; + case 2: goto keep_dig; + } +#endif /*Honor_FLT_ROUNDS*/ + if (j1 > 0) + { + b= lshift(b, 1, &alloc); + j1= cmp(b, S); + if ((j1 > 0 || (j1 == 0 && dig & 1)) + && dig++ == '9') + goto round_9_up; + } +accept_dig: + *s++= dig; + goto ret; + } + if (j1 > 0) + { +#ifdef Honor_FLT_ROUNDS + if (!rounding) + goto accept_dig; +#endif + if (dig == '9') + { /* possible if i == 1 */ +round_9_up: + *s++= '9'; + goto roundoff; + } + *s++= dig + 1; + goto ret; + } +#ifdef Honor_FLT_ROUNDS +keep_dig: +#endif + *s++= dig; + if (i == ilim) + break; + b= multadd(b, 10, 0, &alloc); + if (mlo == mhi) + mlo= mhi= multadd(mhi, 10, 0, &alloc); + else + { + mlo= multadd(mlo, 10, 0, &alloc); + mhi= multadd(mhi, 10, 0, &alloc); + } + } + } + else + for (i= 1;; i++) + { + *s++= dig= quorem(b,S) + '0'; + if (!b->p.x[0] && b->wds <= 1) + { + goto ret; + } + if (i >= ilim) + break; + b= multadd(b, 10, 0, &alloc); + } + + /* Round off last digit */ + +#ifdef Honor_FLT_ROUNDS + switch (rounding) { + case 0: goto trimzeros; + case 2: goto roundoff; + } +#endif + b= lshift(b, 1, &alloc); + j= cmp(b, S); + if (j > 0 || (j == 0 && dig & 1)) + { +roundoff: + while (*--s == '9') + if (s == s0) + { + k++; + *s++= '1'; + goto ret; + } + ++*s++; + } + else + { +#ifdef Honor_FLT_ROUNDS +trimzeros: +#endif + while (*--s == '0'); + s++; + } +ret: + Bfree(S, &alloc); + if (mhi) + { + if (mlo && mlo != mhi) + Bfree(mlo, &alloc); + Bfree(mhi, &alloc); + } +ret1: + Bfree(b, &alloc); + *s= 0; + *decpt= k + 1; + if (rve) + *rve= s; + return s0; +} diff --git a/mysql/strings/int2str.c b/mysql/strings/int2str.c new file mode 100644 index 0000000..afb89e2 --- /dev/null +++ b/mysql/strings/int2str.c @@ -0,0 +1,155 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include "m_string.h" + +/* + _dig_vec arrays are public because they are used in several outer places. +*/ +char _dig_vec_upper[] = + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +char _dig_vec_lower[] = + "0123456789abcdefghijklmnopqrstuvwxyz"; + + +/* + Convert integer to its string representation in given scale of notation. + + SYNOPSIS + int2str() + val - value to convert + dst - points to buffer where string representation should be stored + radix - radix of scale of notation + upcase - set to 1 if we should use upper-case digits + + DESCRIPTION + Converts the (long) integer value to its character form and moves it to + the destination buffer followed by a terminating NUL. + If radix is -2..-36, val is taken to be SIGNED, if radix is 2..36, val is + taken to be UNSIGNED. That is, val is signed if and only if radix is. + All other radixes treated as bad and nothing will be changed in this case. + + For conversion to decimal representation (radix is -10 or 10) one can use + optimized int10_to_str() function. + + RETURN VALUE + Pointer to ending NUL character or NullS if radix is bad. +*/ + +char * +int2str(long int val, char *dst, int radix, + int upcase) +{ + char buffer[65]; + char *p; + long int new_val; + char *dig_vec= upcase ? _dig_vec_upper : _dig_vec_lower; + ulong uval= (ulong) val; + + if (radix < 0) + { + if (radix < -36 || radix > -2) + return NullS; + if (val < 0) + { + *dst++ = '-'; + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (ulong)0 - uval; + } + radix = -radix; + } + else if (radix > 36 || radix < 2) + return NullS; + + /* + The slightly contorted code which follows is due to the fact that + few machines directly support unsigned long / and %. Certainly + the VAX C compiler generates a subroutine call. In the interests + of efficiency (hollow laugh) I let this happen for the first digit + only; after that "val" will be in range so that signed integer + division will do. Sorry 'bout that. CHECK THE CODE PRODUCED BY + YOUR C COMPILER. The first % and / should be unsigned, the second + % and / signed, but C compilers tend to be extraordinarily + sensitive to minor details of style. This works on a VAX, that's + all I claim for it. + */ + p = &buffer[sizeof(buffer)-1]; + *p = '\0'; + new_val= uval / (ulong) radix; + *--p = dig_vec[(uchar) (uval- (ulong) new_val*(ulong) radix)]; + val = new_val; + while (val != 0) + { + ldiv_t res; + res=ldiv(val,radix); + *--p = dig_vec[res.rem]; + val= res.quot; + } + while ((*dst++ = *p++) != 0) ; + return dst-1; +} + + +/* + Converts integer to its string representation in decimal notation. + + SYNOPSIS + int10_to_str() + val - value to convert + dst - points to buffer where string representation should be stored + radix - flag that shows whenever val should be taken as signed or not + + DESCRIPTION + This is version of int2str() function which is optimized for normal case + of radix 10/-10. It takes only sign of radix parameter into account and + not its absolute value. + + RETURN VALUE + Pointer to ending NUL character. +*/ + +char *int10_to_str(long int val,char *dst,int radix) +{ + char buffer[65]; + char *p; + long int new_val; + unsigned long int uval = (unsigned long int) val; + + if (radix < 0) /* -10 */ + { + if (val < 0) + { + *dst++ = '-'; + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (unsigned long int)0 - uval; + } + } + + p = &buffer[sizeof(buffer)-1]; + *p = '\0'; + new_val= (long) (uval / 10); + *--p = '0'+ (char) (uval - (unsigned long) new_val * 10); + val = new_val; + + while (val != 0) + { + new_val=val/10; + *--p = '0' + (char) (val-new_val*10); + val= new_val; + } + while ((*dst++ = *p++) != 0) ; + return dst-1; +} diff --git a/mysql/strings/is_prefix.c b/mysql/strings/is_prefix.c new file mode 100644 index 0000000..885ed3d --- /dev/null +++ b/mysql/strings/is_prefix.c @@ -0,0 +1,33 @@ +/* Copyright (c) 2000, 2001, 2006 MySQL AB + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File : is_prefix.c + Author : Michael Widenius + Defines: is_prefix() + + is_prefix(s, t) returns 1 if s starts with t. + A empty t is allways a prefix. +*/ + +#include +#include "m_string.h" + +int is_prefix(const char *s, const char *t) +{ + while (*t) + if (*s++ != *t++) return 0; + return 1; /* WRONG */ +} diff --git a/mysql/strings/llstr.c b/mysql/strings/llstr.c new file mode 100644 index 0000000..5d904af --- /dev/null +++ b/mysql/strings/llstr.c @@ -0,0 +1,41 @@ +/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Defines: llstr(); + + llstr(value, buff); + + This function saves a longlong value in a buffer and returns the pointer to + the buffer. This is useful when trying to portable print longlong + variables with printf() as there is no usable printf() standard one can use. +*/ + + +#include +#include "m_string.h" + +char *llstr(longlong value,char *buff) +{ + longlong10_to_str(value,buff,-10); + return buff; +} + +char *ullstr(longlong value,char *buff) +{ + longlong10_to_str(value,buff,10); + return buff; +} diff --git a/mysql/strings/longlong2str.c b/mysql/strings/longlong2str.c new file mode 100644 index 0000000..e35bbe1 --- /dev/null +++ b/mysql/strings/longlong2str.c @@ -0,0 +1,144 @@ +/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Defines: longlong2str(); + + longlong2str(dst, radix, val) + converts the (longlong) integer "val" to character form and moves it to + the destination string "dst" followed by a terminating NUL. The + result is normally a pointer to this NUL character, but if the radix + is dud the result will be NullS and nothing will be changed. + + If radix is -2..-36, val is taken to be SIGNED. + If radix is 2.. 36, val is taken to be UNSIGNED. + That is, val is signed if and only if radix is. You will normally + use radix -10 only through itoa and ltoa, for radix 2, 8, or 16 + unsigned is what you generally want. + + _dig_vec is public just in case someone has a use for it. + The definitions of itoa and ltoa are actually macros in m_string.h, + but this is where the code is. + + Note: The standard itoa() returns a pointer to the argument, when int2str + returns the pointer to the end-null. + itoa assumes that 10 -base numbers are allways signed and other arn't. +*/ + +#include +#include "m_string.h" + +#ifndef ll2str + +/* + This assumes that longlong multiplication is faster than longlong division. +*/ + +char *ll2str(longlong val,char *dst,int radix, int upcase) +{ + char buffer[65]; + char *p; + long long_val; + char *dig_vec= upcase ? _dig_vec_upper : _dig_vec_lower; + ulonglong uval= (ulonglong) val; + + if (radix < 0) + { + if (radix < -36 || radix > -2) return (char*) 0; + if (val < 0) { + *dst++ = '-'; + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (ulonglong)0 - uval; + } + radix = -radix; + } + else + { + if (radix > 36 || radix < 2) return (char*) 0; + } + if (uval == 0) + { + *dst++='0'; + *dst='\0'; + return dst; + } + p = &buffer[sizeof(buffer)-1]; + *p = '\0'; + + while (uval > (ulonglong) LONG_MAX) + { + ulonglong quo= uval/(uint) radix; + uint rem= (uint) (uval- quo* (uint) radix); + *--p= dig_vec[rem]; + uval= quo; + } + long_val= (long) uval; + while (long_val != 0) + { + long quo= long_val/radix; + *--p= dig_vec[(uchar) (long_val - quo*radix)]; + long_val= quo; + } + while ((*dst++ = *p++) != 0) ; + return dst-1; +} +#endif + +#ifndef longlong10_to_str +char *longlong10_to_str(longlong val,char *dst,int radix) +{ + char buffer[65]; + char *p; + long long_val; + ulonglong uval= (ulonglong) val; + + if (radix < 0) + { + if (val < 0) + { + *dst++ = '-'; + /* Avoid integer overflow in (-val) for LLONG_MIN (BUG#31799). */ + uval = (ulonglong)0 - uval; + } + } + + if (uval == 0) + { + *dst++='0'; + *dst='\0'; + return dst; + } + p = &buffer[sizeof(buffer)-1]; + *p = '\0'; + + while (uval > (ulonglong) LONG_MAX) + { + ulonglong quo= uval/(uint) 10; + uint rem= (uint) (uval- quo* (uint) 10); + *--p = _dig_vec_upper[rem]; + uval= quo; + } + long_val= (long) uval; + while (long_val != 0) + { + long quo= long_val/10; + *--p = _dig_vec_upper[(uchar) (long_val - quo*10)]; + long_val= quo; + } + while ((*dst++ = *p++) != 0) ; + return dst-1; +} +#endif diff --git a/mysql/strings/my_stpmov.c b/mysql/strings/my_stpmov.c new file mode 100644 index 0000000..0259533 --- /dev/null +++ b/mysql/strings/my_stpmov.c @@ -0,0 +1,30 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + my_stpmov(dst, src) moves all the characters of src (including the + closing NUL) to dst, and returns a pointer to the new closing NUL in + dst. The similar UNIX routine strcpy returns the old value of dst, + which I have never found useful. my_stpmov(my_stpmov(dst,a),b) moves a//b + into dst, which seems useful. +*/ + +#include "m_string.h" + +char *my_stpmov(char *dst, const char *src) +{ + while ((*dst++ = *src++)) ; + return dst-1; +} diff --git a/mysql/strings/my_stpnmov.c b/mysql/strings/my_stpnmov.c new file mode 100644 index 0000000..a14e692 --- /dev/null +++ b/mysql/strings/my_stpnmov.c @@ -0,0 +1,33 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + my_stpnmov(dst,src,length) moves length characters, or until end, of src to + dst and appends a closing NUL to dst if src is shorter than length. + The result is a pointer to the first NUL in dst, or is dst+n if dst was + truncated. +*/ + +#include "m_string.h" + +char *my_stpnmov(char *dst, const char *src, size_t n) +{ + while (n-- != 0) { + if (!(*dst++ = *src++)) { + return (char*) dst-1; + } + } + return dst; +} diff --git a/mysql/strings/my_strchr.c b/mysql/strings/my_strchr.c new file mode 100644 index 0000000..bbfb7b4 --- /dev/null +++ b/mysql/strings/my_strchr.c @@ -0,0 +1,111 @@ +/* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include "m_string.h" +#include "m_ctype.h" + + +/* + Return pointer to first occurrence of character in a multi-byte string + or NULL if the character doesn't appear in the multi-byte string or + invalid character in charset of multi-byte string is found. + + @param cs Pointer to charset info. + @param str Pointer to start of multi-byte string. + @param end Pointer to end of multi-byte string. + @param c Character to find first occurrence of. + + @return Pointer to first occurence of c in str or NULL. +*/ + +char *my_strchr(const CHARSET_INFO *cs, const char *str, const char *end, + pchar c) +{ + while (str < end) + { + uint mbl= my_mbcharlen_ptr(cs, str, end); + if (mbl == 0) + return NULL; + if (mbl == 1) + { + if (*str == c) + return((char *)str); + str++; + } + else + str+= mbl; + } + return(0); +} + + +/** + Calculate the length of the initial segment of 'str' which consists + entirely of characters not in 'reject'. + + @param cs Pointer to charset info. + @param str Pointer to multi-byte string. + @param str_end Pointer to end of multi-byte string. + @param reject Pointer to start of single-byte reject string. + @param reject_length Length of single-byte reject string. + + @return Length of segment of multi-byte string that doesn't contain + any character of the single-byte reject string or zero if an + invalid encoding of a character of the multi-byte string is + found. + + @note The reject string points to single-byte characters so it is + only possible to find the first occurrence of a single-byte + character. Multi-byte characters in 'str' are treated as not + matching any character in the reject string. + This method returns zero if an invalid encoding of any character + in the string 'str' using charset 'cs' is found. + + @todo should be moved to CHARSET_INFO if it's going to be called + frequently. + + @internal The implementation builds on the assumption that 'str' is long, + while 'reject' is short. So it compares each character in string + with the characters in 'reject' in a tight loop over the characters + in 'reject'. +*/ + +size_t my_strcspn(const CHARSET_INFO *cs, const char *str, + const char *str_end, const char *reject, + size_t reject_length) +{ + const char *ptr_str, *ptr_reject; + const char *reject_end= reject + reject_length; + uint mbl= 0; + + for (ptr_str= str; ptr_str < str_end; ptr_str+= mbl) + { + mbl= my_mbcharlen_ptr(cs, ptr_str, str_end); + + if (mbl == 0) + return 0; + + if (mbl == 1) + { + for (ptr_reject= reject; ptr_reject < reject_end; ++ptr_reject) + { + if (*ptr_reject == *ptr_str) + return (size_t) (ptr_str - str); + } + } + } + return (size_t) (ptr_str - str); +} diff --git a/mysql/strings/my_strtoll10.c b/mysql/strings/my_strtoll10.c new file mode 100644 index 0000000..1fb4f0c --- /dev/null +++ b/mysql/strings/my_strtoll10.c @@ -0,0 +1,236 @@ +/* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include /* Needed for MY_ERRNO_ERANGE */ +#include + +#define MAX_NEGATIVE_NUMBER ((ulonglong) 0x8000000000000000LL) +#define INIT_CNT 9 +#define LFACTOR 1000000000ULL +#define LFACTOR1 10000000000ULL +#define LFACTOR2 100000000000ULL + +static unsigned long lfactor[9]= +{ + 1L, 10L, 100L, 1000L, 10000L, 100000L, 1000000L, 10000000L, 100000000L +}; + +/* + Convert a string to an to unsigned long long integer value + + SYNOPSYS + my_strtoll10() + nptr in pointer to the string to be converted + endptr in/out pointer to the end of the string/ + pointer to the stop character + error out returned error code + + DESCRIPTION + This function takes the decimal representation of integer number + from string nptr and converts it to an signed or unsigned + long long integer value. + Space characters and tab are ignored. + A sign character might precede the digit characters. The number + may have any number of pre-zero digits. + + The function stops reading the string nptr at the first character + that is not a decimal digit. If endptr is not NULL then the function + will not read characters after *endptr. + + RETURN VALUES + Value of string as a signed/unsigned longlong integer + + if no error and endptr != NULL, it will be set to point at the character + after the number + + The error parameter contains information how things went: + -1 Number was an ok negative number + 0 ok + ERANGE If the the value of the converted number exceeded the + maximum negative/unsigned long long integer. + In this case the return value is ~0 if value was + positive and LLONG_MIN if value was negative. + EDOM If the string didn't contain any digits. In this case + the return value is 0. + + If endptr is not NULL the function will store the end pointer to + the stop character here. +*/ + + +longlong my_strtoll10(const char *nptr, char **endptr, int *error) +{ + const char *s, *end, *start, *n_end, *true_end; + char *dummy; + uchar c; + unsigned long i, j, k; + ulonglong li; + int negative; + ulong cutoff, cutoff2, cutoff3; + + s= nptr; + /* If fixed length string */ + if (endptr) + { + end= *endptr; + while (s != end && (*s == ' ' || *s == '\t')) + s++; + if (s == end) + goto no_conv; + } + else + { + endptr= &dummy; /* Easier end test */ + while (*s == ' ' || *s == '\t') + s++; + if (!*s) + goto no_conv; + /* This number must be big to guard against a lot of pre-zeros */ + end= s+65535; /* Can't be longer than this */ + } + + /* Check for a sign. */ + negative= 0; + if (*s == '-') + { + *error= -1; /* Mark as negative number */ + negative= 1; + if (++s == end) + goto no_conv; + cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2; + cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100; + cutoff3= MAX_NEGATIVE_NUMBER % 100; + } + else + { + *error= 0; + if (*s == '+') + { + if (++s == end) + goto no_conv; + } + cutoff= ULLONG_MAX / LFACTOR2; + cutoff2= ULLONG_MAX % LFACTOR2 / 100; + cutoff3= ULLONG_MAX % 100; + } + + /* Handle case where we have a lot of pre-zero */ + if (*s == '0') + { + i= 0; + do + { + if (++s == end) + goto end_i; /* Return 0 */ + } + while (*s == '0'); + n_end= s+ INIT_CNT; + } + else + { + /* Read first digit to check that it's a valid number */ + if ((c= (*s-'0')) > 9) + goto no_conv; + i= c; + n_end= ++s+ INIT_CNT-1; + } + + /* Handle first 9 digits and store them in i */ + if (n_end > end) + n_end= end; + for (; s != n_end ; s++) + { + if ((c= (*s-'0')) > 9) + goto end_i; + i= i*10+c; + } + if (s == end) + goto end_i; + + /* Handle next 9 digits and store them in j */ + j= 0; + start= s; /* Used to know how much to shift i */ + n_end= true_end= s + INIT_CNT; + if (n_end > end) + n_end= end; + do + { + if ((c= (*s-'0')) > 9) + goto end_i_and_j; + j= j*10+c; + } while (++s != n_end); + if (s == end) + { + if (s != true_end) + goto end_i_and_j; + goto end3; + } + if ((c= (*s-'0')) > 9) + goto end3; + + /* Handle the next 1 or 2 digits and store them in k */ + k=c; + if (++s == end || (c= (*s-'0')) > 9) + goto end4; + k= k*10+c; + *endptr= (char*) ++s; + + /* number string should have ended here */ + if (s != end && (c= (*s-'0')) <= 9) + goto overflow; + + /* Check that we didn't get an overflow with the last digit */ + if (i > cutoff || (i == cutoff && (j > cutoff2 || (j == cutoff2 && + k > cutoff3)))) + goto overflow; + li=i*LFACTOR2+ (ulonglong) j*100 + k; + return (longlong) li; + +overflow: /* *endptr is set here */ + *error= MY_ERRNO_ERANGE; + return negative ? LLONG_MIN : (longlong) ULLONG_MAX; + +end_i: + *endptr= (char*) s; + return (negative ? ((longlong) -(long) i) : (longlong) i); + +end_i_and_j: + li= (ulonglong) i * lfactor[(uint) (s-start)] + j; + *endptr= (char*) s; + return (negative ? -((longlong) li) : (longlong) li); + +end3: + li=(ulonglong) i*LFACTOR+ (ulonglong) j; + *endptr= (char*) s; + return (negative ? -((longlong) li) : (longlong) li); + +end4: + li=(ulonglong) i*LFACTOR1+ (ulonglong) j * 10 + k; + *endptr= (char*) s; + if (negative) + { + if (li > MAX_NEGATIVE_NUMBER) + goto overflow; + return -((longlong) li); + } + return (longlong) li; + +no_conv: + /* There was no number to convert. */ + *error= MY_ERRNO_EDOM; + *endptr= (char *) nptr; + return 0; +} diff --git a/mysql/strings/my_vsnprintf.c b/mysql/strings/my_vsnprintf.c new file mode 100644 index 0000000..4da96cb --- /dev/null +++ b/mysql/strings/my_vsnprintf.c @@ -0,0 +1,683 @@ +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include +#include +#include + + +#define MAX_ARGS 32 /* max positional args count*/ +#define MAX_PRINT_INFO 32 /* max print position count */ + +#define LENGTH_ARG 1 +#define WIDTH_ARG 2 +#define PREZERO_ARG 4 +#define ESCAPED_ARG 8 + +typedef struct pos_arg_info ARGS_INFO; +typedef struct print_info PRINT_INFO; + +struct pos_arg_info +{ + char arg_type; /* argument type */ + uint have_longlong; /* used from integer values */ + char *str_arg; /* string value of the arg */ + longlong longlong_arg; /* integer value of the arg */ + double double_arg; /* double value of the arg */ +}; + + +struct print_info +{ + char arg_type; /* argument type */ + size_t arg_idx; /* index of the positional arg */ + size_t length; /* print width or arg index */ + size_t width; /* print width or arg index */ + uint flags; + const char *begin; /**/ + const char *end; /**/ +}; + + +/** + Calculates print length or index of positional argument + + @param fmt processed string + @param length print length or index of positional argument + @param pre_zero returns flags with PREZERO_ARG set if necessary + + @retval + string position right after length digits +*/ + +static const char *get_length(const char *fmt, size_t *length, uint *pre_zero) +{ + for (; my_isdigit(&my_charset_latin1, *fmt); fmt++) + { + *length= *length * 10 + (uint)(*fmt - '0'); + if (!*length) + *pre_zero|= PREZERO_ARG; /* first digit was 0 */ + } + return fmt; +} + + +/** + Calculates print width or index of positional argument + + @param fmt processed string + @param width print width or index of positional argument + + @retval + string position right after width digits +*/ + +static const char *get_width(const char *fmt, size_t *width) +{ + for (; my_isdigit(&my_charset_latin1, *fmt); fmt++) + { + *width= *width * 10 + (uint)(*fmt - '0'); + } + return fmt; +} + +/** + Calculates print width or index of positional argument + + @param fmt processed string + @param have_longlong TRUE if longlong is required + + @retval + string position right after modifier symbol +*/ + +static const char *check_longlong(const char *fmt, uint *have_longlong) +{ + *have_longlong= 0; + if (*fmt == 'l') + { + fmt++; + if (*fmt != 'l') + *have_longlong= (sizeof(long) == sizeof(longlong)); + else + { + fmt++; + *have_longlong= 1; + } + } + else if (*fmt == 'z') + { + fmt++; + *have_longlong= (sizeof(size_t) == sizeof(longlong)); + } + return fmt; +} + + +/** + Returns escaped string + + @param cs string charset + @param to buffer where escaped string will be placed + @param end end of buffer + @param par string to escape + @param par_len string length + @param quote_char character for quoting + + @retval + position in buffer which points on the end of escaped string +*/ + +static char *backtick_string(const CHARSET_INFO *cs, char *to, char *end, + char *par, size_t par_len, char quote_char) +{ + uint char_len; + char *start= to; + char *par_end= par + par_len; + size_t buff_length= (size_t) (end - to); + + if (buff_length <= par_len) + goto err; + *start++= quote_char; + + for ( ; par < par_end; par+= char_len) + { + if (!(char_len= my_mbcharlen_ptr(cs, par, par_end))) + goto err; + if (char_len == 1 && *par == quote_char) + { + if (start + 1 >= end) + goto err; + *start++= quote_char; + } + if (start + char_len >= end) + goto err; + start= my_stpnmov(start, par, char_len); + } + + if (start + 1 >= end) + goto err; + *start++= quote_char; + return start; + +err: + *to='\0'; + return to; +} + + +/** + Prints string argument +*/ + +static char *process_str_arg(const CHARSET_INFO *cs, char *to, char *end, + size_t width, char *par, uint print_type) +{ + int well_formed_error; + size_t plen, left_len= (size_t) (end - to) + 1; + if (!par) + par = (char*) "(null)"; + + plen= strnlen(par, width); + if (left_len <= plen) + plen = left_len - 1; + plen= cs->cset->well_formed_len(cs, par, par + plen, + width, &well_formed_error); + if (print_type & ESCAPED_ARG) + to= backtick_string(cs, to, end, par, plen, '`'); + else + to= my_stpnmov(to,par,plen); + return to; +} + + +/** + Prints binary argument +*/ + +static char *process_bin_arg(char *to, char *end, size_t width, char *par) +{ + DBUG_ASSERT(to <= end); + if (to + width + 1 > end) + width= end - to - 1; /* sign doesn't matter */ + memmove(to, par, width); + to+= width; + return to; +} + + +/** + Prints double or float argument +*/ + +static char *process_dbl_arg(char *to, char *end, size_t width, + double par, char arg_type) +{ + if (width == SIZE_T_MAX) + width= FLT_DIG; /* width not set, use default */ + else if (width >= NOT_FIXED_DEC) + width= NOT_FIXED_DEC - 1; /* max.precision for my_fcvt() */ + width= MY_MIN(width, (size_t)(end-to) - 1); + + if (arg_type == 'f') + to+= my_fcvt(par, (int)width , to, NULL); + else + to+= my_gcvt(par, MY_GCVT_ARG_DOUBLE, (int) width , to, NULL); + return to; +} + + +/** + Prints integer argument +*/ + +static char *process_int_arg(char *to, char *end, size_t length, + longlong par, char arg_type, uint print_type) +{ + size_t res_length, to_length; + char *store_start= to, *store_end; + char buff[32]; + + if ((to_length= (size_t) (end-to)) < 16 || length) + store_start= buff; + + if (arg_type == 'd' || arg_type == 'i') + store_end= longlong10_to_str(par, store_start, -10); + else if (arg_type == 'u') + store_end= longlong10_to_str(par, store_start, 10); + else if (arg_type == 'p') + { + store_start[0]= '0'; + store_start[1]= 'x'; + store_end= ll2str(par, store_start + 2, 16, 0); + } + else if (arg_type == 'o') + { + store_end= ll2str(par, store_start, 8, 0); + } + else + { + DBUG_ASSERT(arg_type == 'X' || arg_type =='x'); + store_end= ll2str(par, store_start, 16, (arg_type == 'X')); + } + + if ((res_length= (size_t) (store_end - store_start)) > to_length) + return to; /* num doesn't fit in output */ + /* If %#d syntax was used, we have to pre-zero/pre-space the string */ + if (store_start == buff) + { + length= MY_MIN(length, to_length); + if (res_length < length) + { + size_t diff= (length- res_length); + memset(to, (print_type & PREZERO_ARG) ? '0' : ' ', diff); + if (arg_type == 'p' && print_type & PREZERO_ARG) + { + if (diff > 1) + to[1]= 'x'; + else + store_start[0]= 'x'; + store_start[1]= '0'; + } + to+= diff; + } + memmove(to, store_start, res_length); + } + to+= res_length; + return to; +} + + +/** + Procesed positional arguments. + + @param cs string charset + @param to buffer where processed string will be place + @param end end of buffer + @param par format string + @param arg_index arg index of the first occurrence of positional arg + @param ap list of parameters + + @retval + end of buffer where processed string is placed +*/ + +static char *process_args(const CHARSET_INFO *cs, char *to, char *end, + const char* fmt, size_t arg_index, va_list ap) +{ + ARGS_INFO args_arr[MAX_ARGS]; + PRINT_INFO print_arr[MAX_PRINT_INFO]; + uint idx= 0; + size_t arg_count= arg_index; + +start: + /* Here we are at the beginning of positional argument, right after $ */ + arg_index--; + print_arr[idx].flags= 0; + if (*fmt == '`') + { + print_arr[idx].flags|= ESCAPED_ARG; + fmt++; + } + if (*fmt == '-') + fmt++; + print_arr[idx].length= print_arr[idx].width= 0; + /* Get print length */ + if (*fmt == '*') + { + fmt++; + fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags); + print_arr[idx].length--; + DBUG_ASSERT(*fmt == '$' && print_arr[idx].length < MAX_ARGS); + args_arr[print_arr[idx].length].arg_type= 'd'; + args_arr[print_arr[idx].length].have_longlong= 0; + print_arr[idx].flags|= LENGTH_ARG; + arg_count= MY_MAX(arg_count, print_arr[idx].length + 1); + fmt++; + } + else + fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags); + + if (*fmt == '.') + { + fmt++; + /* Get print width */ + if (*fmt == '*') + { + fmt++; + fmt= get_width(fmt, &print_arr[idx].width); + print_arr[idx].width--; + DBUG_ASSERT(*fmt == '$' && print_arr[idx].width < MAX_ARGS); + args_arr[print_arr[idx].width].arg_type= 'd'; + args_arr[print_arr[idx].width].have_longlong= 0; + print_arr[idx].flags|= WIDTH_ARG; + arg_count= MY_MAX(arg_count, print_arr[idx].width + 1); + fmt++; + } + else + fmt= get_width(fmt, &print_arr[idx].width); + } + else + print_arr[idx].width= SIZE_T_MAX; + + fmt= check_longlong(fmt, &args_arr[arg_index].have_longlong); + if (*fmt == 'p') + args_arr[arg_index].have_longlong= (sizeof(void *) == sizeof(longlong)); + args_arr[arg_index].arg_type= print_arr[idx].arg_type= *fmt; + + print_arr[idx].arg_idx= arg_index; + print_arr[idx].begin= ++fmt; + + while (*fmt && *fmt != '%') + fmt++; + + if (!*fmt) /* End of format string */ + { + uint i; + print_arr[idx].end= fmt; + /* Obtain parameters from the list */ + for (i= 0 ; i < arg_count; i++) + { + switch (args_arr[i].arg_type) { + case 's': + case 'b': + args_arr[i].str_arg= va_arg(ap, char *); + break; + case 'f': + case 'g': + args_arr[i].double_arg= va_arg(ap, double); + break; + case 'd': + case 'i': + case 'u': + case 'x': + case 'X': + case 'o': + case 'p': + if (args_arr[i].have_longlong) + args_arr[i].longlong_arg= va_arg(ap,longlong); + else if (args_arr[i].arg_type == 'd' || args_arr[i].arg_type == 'i') + args_arr[i].longlong_arg= va_arg(ap, int); + else + args_arr[i].longlong_arg= va_arg(ap, uint); + break; + case 'c': + args_arr[i].longlong_arg= va_arg(ap, int); + break; + default: + DBUG_ASSERT(0); + } + } + /* Print result string */ + for (i= 0; i <= idx; i++) + { + size_t width= 0, length= 0; + switch (print_arr[i].arg_type) { + case 's': + { + char *par= args_arr[print_arr[i].arg_idx].str_arg; + width= (print_arr[i].flags & WIDTH_ARG) + ? (size_t)args_arr[print_arr[i].width].longlong_arg + : print_arr[i].width; + to= process_str_arg(cs, to, end, width, par, print_arr[i].flags); + break; + } + case 'b': + { + char *par = args_arr[print_arr[i].arg_idx].str_arg; + width= (print_arr[i].flags & WIDTH_ARG) + ? (size_t)args_arr[print_arr[i].width].longlong_arg + : print_arr[i].width; + to= process_bin_arg(to, end, width, par); + break; + } + case 'c': + { + if (to == end) + break; + *to++= (char) args_arr[print_arr[i].arg_idx].longlong_arg; + break; + } + case 'f': + case 'g': + { + double d= args_arr[print_arr[i].arg_idx].double_arg; + width= (print_arr[i].flags & WIDTH_ARG) ? + (uint)args_arr[print_arr[i].width].longlong_arg : print_arr[i].width; + to= process_dbl_arg(to, end, width, d, print_arr[i].arg_type); + break; + } + case 'd': + case 'i': + case 'u': + case 'x': + case 'X': + case 'o': + case 'p': + { + /* Integer parameter */ + longlong larg; + length= (print_arr[i].flags & LENGTH_ARG) + ? (size_t)args_arr[print_arr[i].length].longlong_arg + : print_arr[i].length; + + if (args_arr[print_arr[i].arg_idx].have_longlong) + larg = args_arr[print_arr[i].arg_idx].longlong_arg; + else if (print_arr[i].arg_type == 'd' || print_arr[i].arg_type == 'i' ) + larg = (int) args_arr[print_arr[i].arg_idx].longlong_arg; + else + larg= (uint) args_arr[print_arr[i].arg_idx].longlong_arg; + + to= process_int_arg(to, end, length, larg, print_arr[i].arg_type, + print_arr[i].flags); + break; + } + default: + break; + } + + if (to == end) + break; + + length= MY_MIN(end - to , print_arr[i].end - print_arr[i].begin); + if (to + length < end) + length++; + to= my_stpnmov(to, print_arr[i].begin, length); + } + DBUG_ASSERT(to <= end); + *to='\0'; /* End of errmessage */ + return to; + } + else + { + /* Process next positional argument*/ + DBUG_ASSERT(*fmt == '%'); + print_arr[idx].end= fmt - 1; + idx++; + fmt++; + arg_index= 0; + fmt= get_width(fmt, &arg_index); + DBUG_ASSERT(*fmt == '$'); + fmt++; + arg_count= MY_MAX(arg_count, arg_index); + goto start; + } + + return 0; +} + + + +/** + Produces output string according to a format string + + See the detailed documentation around my_snprintf_service_st + + @param cs string charset + @param to buffer where processed string will be place + @param n size of buffer + @param par format string + @param ap list of parameters + + @retval + length of result string +*/ + +size_t my_vsnprintf_ex(const CHARSET_INFO *cs, char *to, size_t n, + const char* fmt, va_list ap) +{ + char *start=to, *end=to+n-1; + size_t length, width; + uint print_type, have_longlong; + + for (; *fmt ; fmt++) + { + if (*fmt != '%') + { + if (to == end) /* End of buffer */ + break; + *to++= *fmt; /* Copy ordinary char */ + continue; + } + fmt++; /* skip '%' */ + + length= width= 0; + print_type= 0; + + /* Read max fill size (only used with %d and %u) */ + if (my_isdigit(&my_charset_latin1, *fmt)) + { + fmt= get_length(fmt, &length, &print_type); + if (*fmt == '$') + { + to= process_args(cs, to, end, (fmt+1), length, ap); + return (size_t) (to - start); + } + } + else + { + if (*fmt == '`') + { + print_type|= ESCAPED_ARG; + fmt++; + } + if (*fmt == '-') + fmt++; + if (*fmt == '*') + { + fmt++; + length= va_arg(ap, int); + } + else + fmt= get_length(fmt, &length, &print_type); + } + + if (*fmt == '.') + { + fmt++; + if (*fmt == '*') + { + fmt++; + width= va_arg(ap, int); + } + else + fmt= get_width(fmt, &width); + } + else + width= SIZE_T_MAX; + + fmt= check_longlong(fmt, &have_longlong); + + if (*fmt == 's') /* String parameter */ + { + char *par= va_arg(ap, char *); + to= process_str_arg(cs, to, end, width, par, print_type); + continue; + } + else if (*fmt == 'b') /* Buffer parameter */ + { + char *par = va_arg(ap, char *); + to= process_bin_arg(to, end, width, par); + continue; + } + else if (*fmt == 'f' || *fmt == 'g') + { + double d= va_arg(ap, double); + to= process_dbl_arg(to, end, width, d, *fmt); + continue; + } + else if (*fmt == 'd' || *fmt == 'i' || *fmt == 'u' || *fmt == 'x' || + *fmt == 'X' || *fmt == 'p' || *fmt == 'o') + { + /* Integer parameter */ + longlong larg; + if (*fmt == 'p') + have_longlong= (sizeof(void *) == sizeof(longlong)); + + if (have_longlong) + larg = va_arg(ap,longlong); + else if (*fmt == 'd' || *fmt == 'i') + larg = va_arg(ap, int); + else + larg= va_arg(ap, uint); + + to= process_int_arg(to, end, length, larg, *fmt, print_type); + continue; + } + else if (*fmt == 'c') /* Character parameter */ + { + int larg; + if (to == end) + break; + larg = va_arg(ap, int); + *to++= (char) larg; + continue; + } + + /* We come here on '%%', unknown code or too long parameter */ + if (to == end) + break; + *to++='%'; /* % used as % or unknown code */ + } + DBUG_ASSERT(to <= end); + *to='\0'; /* End of errmessage */ + return (size_t) (to - start); +} + + +/* + Limited snprintf() implementations + + exported to plugins as a service, see the detailed documentation + around my_snprintf_service_st +*/ + +size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap) +{ + return my_vsnprintf_ex(&my_charset_latin1, to, n, fmt, ap); +} + + +size_t my_snprintf(char* to, size_t n, const char* fmt, ...) +{ + size_t result; + va_list args; + va_start(args,fmt); + result= my_vsnprintf(to, n, fmt, args); + va_end(args); + return result; +} + diff --git a/mysql/strings/str2int.c b/mysql/strings/str2int.c new file mode 100644 index 0000000..44fe836 --- /dev/null +++ b/mysql/strings/str2int.c @@ -0,0 +1,180 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + str2int(src, radix, lower, upper, &val) + converts the string pointed to by src to an integer and stores it in + val. It skips leading spaces and tabs (but not newlines, formfeeds, + backspaces), then it accepts an optional sign and a sequence of digits + in the specified radix. The result should satisfy lower <= *val <= upper. + The result is a pointer to the first character after the number; + trailing spaces will NOT be skipped. + + If an error is detected, the result will be NullS, the value put + in val will be 0, and errno will be set to + EDOM if there are no digits + ERANGE if the result would overflow or otherwise fail to lie + within the specified bounds. + Check that the bounds are right for your machine. + This looks amazingly complicated for what you probably thought was an + easy task. Coping with integer overflow and the asymmetric range of + twos complement machines is anything but easy. + + So that users of atoi and atol can check whether an error occured, + I have taken a wholly unprecedented step: errno is CLEARED if this + call has no problems. +*/ + +#include +#include "m_string.h" +#include "m_ctype.h" +#include "my_sys.h" /* defines errno */ +#include + +#define char_val(X) (X >= '0' && X <= '9' ? X-'0' :\ + X >= 'A' && X <= 'Z' ? X-'A'+10 :\ + X >= 'a' && X <= 'z' ? X-'a'+10 :\ + '\177') + +char *str2int(const char *src, int radix, long int lower, + long int upper, long int *val) +{ + int sign; /* is number negative (+1) or positive (-1) */ + int n; /* number of digits yet to be converted */ + long limit; /* "largest" possible valid input */ + long scale; /* the amount to multiply next digit by */ + long sofar; /* the running value */ + int d; /* (negative of) next digit */ + char *start; + int digits[32]; /* Room for numbers */ + + /* Make sure *val is sensible in case of error */ + + *val = 0; + + /* Check that the radix is in the range 2..36 */ + +#ifndef DBUG_OFF + if (radix < 2 || radix > 36) { + errno=EDOM; + return NullS; + } +#endif + + /* The basic problem is: how do we handle the conversion of + a number without resorting to machine-specific code to + check for overflow? Obviously, we have to ensure that + no calculation can overflow. We are guaranteed that the + "lower" and "upper" arguments are valid machine integers. + On sign-and-magnitude, twos-complement, and ones-complement + machines all, if +|n| is representable, so is -|n|, but on + twos complement machines the converse is not true. So the + "maximum" representable number has a negative representative. + Limit is set to min(-|lower|,-|upper|); this is the "largest" + number we are concerned with. */ + + /* Calculate Limit using Scale as a scratch variable */ + + if ((limit = lower) > 0) limit = -limit; + if ((scale = upper) > 0) scale = -scale; + if (scale < limit) limit = scale; + + /* Skip leading spaces and check for a sign. + Note: because on a 2s complement machine MinLong is a valid + integer but |MinLong| is not, we have to keep the current + converted value (and the scale!) as *negative* numbers, + so the sign is the opposite of what you might expect. + */ + while (my_isspace(&my_charset_latin1,*src)) src++; + sign = -1; + if (*src == '+') src++; else + if (*src == '-') src++, sign = 1; + + /* Skip leading zeros so that we never compute a power of radix + in scale that we won't have a need for. Otherwise sticking + enough 0s in front of a number could cause the multiplication + to overflow when it neededn't. + */ + start=(char*) src; + while (*src == '0') src++; + + /* Move over the remaining digits. We have to convert from left + to left in order to avoid overflow. Answer is after last digit. + */ + + for (n = 0; (digits[n]=char_val(*src)) < radix && n < 20; n++,src++) ; + + /* Check that there is at least one digit */ + + if (start == src) { + errno=EDOM; + return NullS; + } + + /* The invariant we want to maintain is that src is just + to the right of n digits, we've converted k digits to + sofar, scale = -radix**k, and scale < sofar < 0. Now + if the final number is to be within the original + Limit, we must have (to the left)*scale+sofar >= Limit, + or (to the left)*scale >= Limit-sofar, i.e. the digits + to the left of src must form an integer <= (Limit-sofar)/(scale). + In particular, this is true of the next digit. In our + incremental calculation of Limit, + + IT IS VITAL that (-|N|)/(-|D|) = |N|/|D| + */ + + for (sofar = 0, scale = -1; --n >= 1;) + { + if ((long) -(d=digits[n]) < limit) { + errno=ERANGE; + return NullS; + } + limit = (limit+d)/radix, sofar += d*scale; scale *= radix; + } + if (n == 0) + { + if ((long) -(d=digits[n]) < limit) /* get last digit */ + { + errno=ERANGE; + return NullS; + } + sofar+=d*scale; + } + + /* Now it might still happen that sofar = -32768 or its equivalent, + so we can't just multiply by the sign and check that the result + is in the range lower..upper. All of this caution is a right + pain in the neck. If only there were a standard routine which + says generate thus and such a signal on integer overflow... + But not enough machines can do it *SIGH*. + */ + if (sign < 0) + { + if (sofar < -LONG_MAX || (sofar= -sofar) > upper) + { + errno=ERANGE; + return NullS; + } + } + else if (sofar < lower) + { + errno=ERANGE; + return NullS; + } + *val = sofar; + errno=0; /* indicate that all went well */ + return (char*) src; +} diff --git a/mysql/strings/str_alloc.c b/mysql/strings/str_alloc.c new file mode 100644 index 0000000..9c692f8 --- /dev/null +++ b/mysql/strings/str_alloc.c @@ -0,0 +1,40 @@ +/* Copyright (c) 2000, 2005, 2006 MySQL AB + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include +#include + +static void *my_str_malloc_default(size_t size) +{ + void *ret= malloc(size); + if (!ret) + exit(1); + return ret; +} + +static void my_str_free_default(void *ptr) +{ + free(ptr); +} + +void *my_str_realloc_default(void *ptr, size_t size) +{ + return realloc(ptr, size); +} + +void *(*my_str_malloc)(size_t)= &my_str_malloc_default; +void (*my_str_free)(void *)= &my_str_free_default; +void *(*my_str_realloc)(void *, size_t)= &my_str_realloc_default; diff --git a/mysql/strings/strappend.c b/mysql/strings/strappend.c new file mode 100644 index 0000000..edafdf8 --- /dev/null +++ b/mysql/strings/strappend.c @@ -0,0 +1,40 @@ +/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File : strappend.c + Author : Monty + Updated: 1987.02.07 + Defines: strappend() + + strappend(dest, len, fill) appends fill-characters to a string so that + the result length == len. If the string is longer than len it's + trunked. The des+len character is allways set to NULL. +*/ + +#include +#include "m_string.h" + + +void strappend(char *s, size_t len, pchar fill) +{ + char *endpos; + + endpos = s+len; + while (*s++); + s--; + while (s +#include "m_string.h" + +char *strcend(const char *s, pchar c) +{ + for (;;) + { + if (*s == (char) c) return (char*) s; + if (!*s++) return (char*) s-1; + } +} + diff --git a/mysql/strings/strcont.c b/mysql/strings/strcont.c new file mode 100644 index 0000000..554d89c --- /dev/null +++ b/mysql/strings/strcont.c @@ -0,0 +1,45 @@ +/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File : strcont.c + Author : Monty + Updated: 1988.07.27 + Defines: strcont() + + strcont(str, set) if str contanies any character in the string set. + The result is the position of the first found character in str, or NullS + if there isn't anything found. + +*/ + +#include +#include "m_string.h" + +char * strcont(const char *str, const char *set) +{ + char * start = (char *) set; + + while (*str) + { + while (*set) + { + if (*set++ == *str) + return ((char*) str); + } + set=start; str++; + } + return (NullS); +} /* strcont */ diff --git a/mysql/strings/strend.c b/mysql/strings/strend.c new file mode 100644 index 0000000..d29048a --- /dev/null +++ b/mysql/strings/strend.c @@ -0,0 +1,37 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA */ + +/* File : strend.c + Author : Richard A. O'Keefe. + Updated: 23 April 1984 + Defines: strend() + + strend(s) returns a character pointer to the NUL which ends s. That + is, strend(s)-s == strlen(s). This is useful for adding things at + the end of strings. It is redundant, because strchr(s,'\0') could + be used instead, but this is clearer and faster. +*/ + +#include +#include "m_string.h" + +char *strend(const char *s) +{ + while (*s++); + return (char*) (s-1); +} + diff --git a/mysql/strings/strfill.c b/mysql/strings/strfill.c new file mode 100644 index 0000000..9fbb0c2 --- /dev/null +++ b/mysql/strings/strfill.c @@ -0,0 +1,35 @@ +/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File : strfill.c + Author : Monty + Updated: 1987.04.16 + Defines: strfill() + + strfill(dest, len, fill) makes a string of fill-characters. The result + string is of length == len. The des+len character is allways set to NULL. + strfill() returns pointer to dest+len; +*/ + +#include +#include "m_string.h" + +char * strfill(char *s, size_t len, pchar fill) +{ + while (len--) *s++ = fill; + *(s) = '\0'; + return(s); +} /* strfill */ diff --git a/mysql/strings/strmake.c b/mysql/strings/strmake.c new file mode 100644 index 0000000..605d05a --- /dev/null +++ b/mysql/strings/strmake.c @@ -0,0 +1,55 @@ +/* Copyright (c) 2000, 2001, 2003, 2006-2008 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* File : strmake.c + Author : Michael Widenius + Updated: 20 Jul 1984 + Defines: strmake() + + strmake(dst,src,length) moves length characters, or until end, of src to + dst and appends a closing NUL to dst. + Note that if strlen(src) >= length then dst[length] will be set to \0 + strmake() returns pointer to closing null +*/ + +#include +#include "m_string.h" + +char *strmake(char *dst, const char *src, size_t length) +{ +#ifdef EXTRA_DEBUG + /* + 'length' is the maximum length of the string; the buffer needs + to be one character larger to accomodate the terminating '\0'. + This is easy to get wrong, so we make sure we write to the + entire length of the buffer to identify incorrect buffer-sizes. + We only initialise the "unused" part of the buffer here, a) for + efficiency, and b) because dst==src is allowed, so initialising + the entire buffer would overwrite the source-string. Also, we + write a character rather than '\0' as this makes spotting these + problems in the results easier. + */ + uint n= 0; + while (n < length && src[n++]); + memset(dst + n, (int) 'Z', length - n + 1); +#endif + + while (length--) + if (! (*dst++ = *src++)) + return dst-1; + *dst=0; + return dst; +} diff --git a/mysql/strings/strxmov.c b/mysql/strings/strxmov.c new file mode 100644 index 0000000..de4e2fa --- /dev/null +++ b/mysql/strings/strxmov.c @@ -0,0 +1,51 @@ +/* Copyright (c) 2000-2002, 2006 MySQL AB + Use is subject to license terms. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA */ + +/* File : strxmov.c + Author : Richard A. O'Keefe. + Updated: 25 may 1984 + Defines: strxmov() + + strxmov(dst, src1, ..., srcn, NullS) + moves the concatenation of src1,...,srcn to dst, terminates it + with a NUL character, and returns a pointer to the terminating NUL. + It is just like strmov except that it concatenates multiple sources. + Beware: the last argument should be the null character pointer. + Take VERY great care not to omit it! Also be careful to use NullS + and NOT to use 0, as on some machines 0 is not the same size as a + character pointer, or not the same bit pattern as NullS. +*/ + +#include +#include "m_string.h" +#include + +char *strxmov(char *dst,const char *src, ...) +{ + va_list pvar; + + va_start(pvar,src); + while (src != NullS) { + while ((*dst++ = *src++)) ; + dst--; + src = va_arg(pvar, char *); + } + va_end(pvar); + *dst = 0; /* there might have been no sources! */ + return dst; +} diff --git a/mysql/strings/strxnmov.c b/mysql/strings/strxnmov.c new file mode 100644 index 0000000..5e70b54 --- /dev/null +++ b/mysql/strings/strxnmov.c @@ -0,0 +1,64 @@ +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB + Use is subject to license terms. + + This 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; version 2 + of the License. + + This 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 this library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA */ + +/* File : strxnmov.c + Author : Richard A. O'Keefe. + Updated: 2 June 1984 + Defines: strxnmov() + + strxnmov(dst, len, src1, ..., srcn, NullS) + moves the first len characters of the concatenation of src1,...,srcn + to dst and add a closing NUL character. + It is just like strnmov except that it concatenates multiple sources. + Beware: the last argument should be the null character pointer. + Take VERY great care not to omit it! Also be careful to use NullS + and NOT to use 0, as on some machines 0 is not the same size as a + character pointer, or not the same bit pattern as NullS. + + NOTE + strxnmov is like strnmov in that it moves up to len + characters; dst will be padded on the right with one '\0' character. + if total-string-length >= length then dst[length] will be set to \0 +*/ + +#include +#include "m_string.h" +#include + +char *strxnmov(char *dst, size_t len, const char *src, ...) +{ + va_list pvar; + char *end_of_dst=dst+len; + + va_start(pvar,src); + while (src != NullS) + { + do + { + if (dst == end_of_dst) + goto end; + } + while ((*dst++ = *src++)); + dst--; + src = va_arg(pvar, char *); + } +end: + *dst=0; + va_end(pvar); + return dst; +} diff --git a/mysql/strings/t_ctype.h b/mysql/strings/t_ctype.h new file mode 100644 index 0000000..651d6b4 --- /dev/null +++ b/mysql/strings/t_ctype.h @@ -0,0 +1,259 @@ +/* Copyright (c) 2000, 2001, 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +/* + Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved. + Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved. + Permission to use, copy, modify, distribute and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies. + Smaphan Raruenrom and Pruet Boonma makes no representations about + the suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. +*/ + +/* + LC_COLLATE category + Level information +*/ + +#ifndef _t_ctype_h +#define _t_ctype_h + +typedef unsigned char tchar; + +#define TOT_LEVELS 5 +#define LAST_LEVEL 4 /* TOT_LEVELS - 1 */ + +#define IGNORE 0 + + +/* level 1 symbols & order */ +enum l1_symbols { + L1_08 = TOT_LEVELS, + L1_18, + L1_28, + L1_38, + L1_48, + L1_58, + L1_68, + L1_78, + L1_88, + L1_98, + L1_A8, + L1_B8, + L1_C8, + L1_D8, + L1_E8, + L1_F8, + L1_G8, + L1_H8, + L1_I8, + L1_J8, + L1_K8, + L1_L8, + L1_M8, + L1_N8, + L1_O8, + L1_P8, + L1_Q8, + L1_R8, + L1_S8, + L1_T8, + L1_U8, + L1_V8, + L1_W8, + L1_X8, + L1_Y8, + L1_Z8, + L1_KO_KAI, + L1_KHO_KHAI, + L1_KHO_KHUAT, + L1_KHO_KHWAI, + L1_KHO_KHON, + L1_KHO_RAKHANG, + L1_NGO_NGU, + L1_CHO_CHAN, + L1_CHO_CHING, + L1_CHO_CHANG, + L1_SO_SO, + L1_CHO_CHOE, + L1_YO_YING, + L1_DO_CHADA, + L1_TO_PATAK, + L1_THO_THAN, + L1_THO_NANGMONTHO, + L1_THO_PHUTHAO, + L1_NO_NEN, + L1_DO_DEK, + L1_TO_TAO, + L1_THO_THUNG, + L1_THO_THAHAN, + L1_THO_THONG, + L1_NO_NU, + L1_BO_BAIMAI, + L1_PO_PLA, + L1_PHO_PHUNG, + L1_FO_FA, + L1_PHO_PHAN, + L1_FO_FAN, + L1_PHO_SAMPHAO, + L1_MO_MA, + L1_YO_YAK, + L1_RO_RUA, + L1_RU, + L1_LO_LING, + L1_LU, + L1_WO_WAEN, + L1_SO_SALA, + L1_SO_RUSI, + L1_SO_SUA, + L1_HO_HIP, + L1_LO_CHULA, + L1_O_ANG, + L1_HO_NOKHUK, + L1_NKHIT, + L1_SARA_A, + L1_MAI_HAN_AKAT, + L1_SARA_AA, + L1_SARA_AM, + L1_SARA_I, + L1_SARA_II, + L1_SARA_UE, + L1_SARA_UEE, + L1_SARA_U, + L1_SARA_UU, + L1_SARA_E, + L1_SARA_AE, + L1_SARA_O, + L1_SARA_AI_MAIMUAN, + L1_SARA_AI_MAIMALAI +}; + +/* level 2 symbols & order */ +enum l2_symbols { + L2_BLANK = TOT_LEVELS, + L2_THAII, + L2_YAMAK, + L2_PINTHU, + L2_GARAN, + L2_TYKHU, + L2_TONE1, + L2_TONE2, + L2_TONE3, + L2_TONE4 +}; + +/* level 3 symbols & order */ +enum l3_symbols { + L3_BLANK = TOT_LEVELS, + L3_SPACE, + L3_NB_SACE, + L3_LOW_LINE, + L3_HYPHEN, + L3_COMMA, + L3_SEMICOLON, + L3_COLON, + L3_EXCLAMATION, + L3_QUESTION, + L3_SOLIDUS, + L3_FULL_STOP, + L3_PAIYAN_NOI, + L3_MAI_YAMOK, + L3_GRAVE, + L3_CIRCUMFLEX, + L3_TILDE, + L3_APOSTROPHE, + L3_QUOTATION, + L3_L_PARANTHESIS, + L3_L_BRACKET, + L3_L_BRACE, + L3_R_BRACE, + L3_R_BRACKET, + L3_R_PARENTHESIS, + L3_AT, + L3_BAHT, + L3_DOLLAR, + L3_FONGMAN, + L3_ANGKHANKHU, + L3_KHOMUT, + L3_ASTERISK, + L3_BK_SOLIDUS, + L3_AMPERSAND, + L3_NUMBER, + L3_PERCENT, + L3_PLUS, + L3_LESS_THAN, + L3_EQUAL, + L3_GREATER_THAN, + L3_V_LINE +}; + +/* level 4 symbols & order */ +enum l4_symbols { + L4_BLANK = TOT_LEVELS, + L4_MIN, + L4_CAP, + L4_EXT +}; + +enum level_symbols { + L_UPRUPR = TOT_LEVELS, + L_UPPER, + L_MIDDLE, + L_LOWER +}; + +#define _is(c) (t_ctype[(c)][LAST_LEVEL]) +#define _level 8 +#define _consnt 16 +#define _ldvowel 32 +#define _fllwvowel 64 +#define _uprvowel 128 +#define _lwrvowel 256 +#define _tone 512 +#define _diacrt1 1024 +#define _diacrt2 2048 +#define _combine 4096 +#define _stone 8192 +#define _tdig 16384 +#define _rearvowel (_fllwvowel | _uprvowel | _lwrvowel) +#define _diacrt (_diacrt1 | _diacrt2) +#define levelof(c) ( _is(c) & _level ) +#define isthai(c) ( (c) >= 128 ) +#define istalpha(c) ( _is(c) & (_consnt|_ldvowel|_rearvowel|\ + _tone|_diacrt1|_diacrt2) ) +#define isconsnt(c) ( _is(c) & _consnt ) +#define isldvowel(c) ( _is(c) & _ldvowel ) +#define isfllwvowel(c) ( _is(c) & _fllwvowel ) +#define ismidvowel(c) ( _is(c) & (_ldvowel|_fllwvowel) ) +#define isuprvowel(c) ( _is(c) & _uprvowel ) +#define islwrvowel(c) ( _is(c) & _lwrvowel ) +#define isuprlwrvowel(c) ( _is(c) & (_lwrvowel | _uprvowel)) +#define isrearvowel(c) ( _is(c) & _rearvowel ) +#define isvowel(c) ( _is(c) & (_ldvowel|_rearvowel) ) +#define istone(c) ( _is(c) & _tone ) +#define isunldable(c) ( _is(c) & (_rearvowel|_tone|_diacrt1|_diacrt2) ) +#define iscombinable(c) ( _is(c) & _combine ) +#define istdigit(c) ( _is(c) & _tdig ) +#define isstone(c) ( _is(c) & _stone ) +#define isdiacrt1(c) ( _is(c) & _diacrt1) +#define isdiacrt2(c) ( _is(c) & _diacrt2) +#define isdiacrt(c) ( _is(c) & _diacrt) + +/* Function prototype called by sql/field.cc */ +void ThNormalize(uchar* ptr, uint field_length, const uchar* from, uint length); + +#endif diff --git a/mysql/strings/xml.c b/mysql/strings/xml.c new file mode 100644 index 0000000..07359f5 --- /dev/null +++ b/mysql/strings/xml.c @@ -0,0 +1,574 @@ +/* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include "my_global.h" +#include "m_string.h" +#include "my_xml.h" + + +#define MY_XML_UNKNOWN 'U' +#define MY_XML_EOF 'E' +#define MY_XML_STRING 'S' +#define MY_XML_IDENT 'I' +#define MY_XML_EQ '=' +#define MY_XML_LT '<' +#define MY_XML_GT '>' +#define MY_XML_SLASH '/' +#define MY_XML_COMMENT 'C' +#define MY_XML_TEXT 'T' +#define MY_XML_QUESTION '?' +#define MY_XML_EXCLAM '!' +#define MY_XML_CDATA 'D' + +typedef struct xml_attr_st +{ + const char *beg; + const char *end; +} MY_XML_ATTR; + + +/* + XML ctype: +*/ +#define MY_XML_ID0 0x01 /* Identifier initial character */ +#define MY_XML_ID1 0x02 /* Identifier medial character */ +#define MY_XML_SPC 0x08 /* Spacing character */ + + +/* + http://www.w3.org/TR/REC-xml/ + [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | + CombiningChar | Extender + [5] Name ::= (Letter | '_' | ':') (NameChar)* +*/ + +static char my_xml_ctype[256]= +{ +/*00*/ 0,0,0,0,0,0,0,0,0,8,8,0,0,8,0,0, +/*10*/ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +/*20*/ 8,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0, /* !"#$%&'()*+,-./ */ +/*30*/ 2,2,2,2,2,2,2,2,2,2,3,0,0,0,0,0, /* 0123456789:;<=>? */ +/*40*/ 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, /* @ABCDEFGHIJKLMNO */ +/*50*/ 3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3, /* PQRSTUVWXYZ[\]^_ */ +/*60*/ 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, /* `abcdefghijklmno */ +/*70*/ 3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0, /* pqrstuvwxyz{|}~ */ +/*80*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*90*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*A0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*B0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*C0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*D0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*E0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +/*F0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 +}; + +#define my_xml_is_space(c) (my_xml_ctype[(uchar) (c)] & MY_XML_SPC) +#define my_xml_is_id0(c) (my_xml_ctype[(uchar) (c)] & MY_XML_ID0) +#define my_xml_is_id1(c) (my_xml_ctype[(uchar) (c)] & MY_XML_ID1) + + +static const char *lex2str(int lex) +{ + switch(lex) + { + case MY_XML_EOF: return "END-OF-INPUT"; + case MY_XML_STRING: return "STRING"; + case MY_XML_IDENT: return "IDENT"; + case MY_XML_CDATA: return "CDATA"; + case MY_XML_EQ: return "'='"; + case MY_XML_LT: return "'<'"; + case MY_XML_GT: return "'>'"; + case MY_XML_SLASH: return "'/'"; + case MY_XML_COMMENT: return "COMMENT"; + case MY_XML_TEXT: return "TEXT"; + case MY_XML_QUESTION: return "'?'"; + case MY_XML_EXCLAM: return "'!'"; + } + return "unknown token"; +} + +static void my_xml_norm_text(MY_XML_ATTR *a) +{ + for ( ; (a->beg < a->end) && my_xml_is_space(a->beg[0]) ; a->beg++ ); + for ( ; (a->beg < a->end) && my_xml_is_space(a->end[-1]) ; a->end-- ); +} + + +static inline my_bool +my_xml_parser_prefix_cmp(MY_XML_PARSER *p, const char *s, size_t slen) +{ + return (p->cur + slen > p->end) || memcmp(p->cur, s, slen); +} + + +static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a) +{ + int lex; + + for (; ( p->cur < p->end) && my_xml_is_space(p->cur[0]) ; p->cur++); + + if (p->cur >= p->end) + { + a->beg=p->end; + a->end=p->end; + lex=MY_XML_EOF; + goto ret; + } + + a->beg=p->cur; + a->end=p->cur; + + if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN(""))) + { + p->cur+= 3; + break; + } + } + a->end=p->cur; + lex=MY_XML_COMMENT; + } + else if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("cur+= 9; + for (; p->cur < p->end - 2 ; p->cur++) + { + if (p->cur[0] == ']' && p->cur[1] == ']' && p->cur[2] == '>') + { + p->cur+= 3; + a->end= p->cur; + break; + } + } + lex= MY_XML_CDATA; + } + else if (strchr("?=/<>!",p->cur[0])) + { + p->cur++; + a->end=p->cur; + lex=a->beg[0]; + } + else if ( (p->cur[0] == '"') || (p->cur[0] == '\'') ) + { + /* + "string" or 'string' found. + Scan until the closing quote/doublequote, or until the END-OF-INPUT. + */ + p->cur++; + for (; ( p->cur < p->end ) && (p->cur[0] != a->beg[0]); p->cur++) + {} + a->end=p->cur; + if (p->cur < p->end) /* Closing quote or doublequote has been found */ + p->cur++; + a->beg++; + if (!(p->flags & MY_XML_FLAG_SKIP_TEXT_NORMALIZATION)) + my_xml_norm_text(a); + lex=MY_XML_STRING; + } + else if (my_xml_is_id0(p->cur[0])) + { + p->cur++; + while (p->cur < p->end && my_xml_is_id1(p->cur[0])) + p->cur++; + a->end=p->cur; + my_xml_norm_text(a); + lex=MY_XML_IDENT; + } + else + lex= MY_XML_UNKNOWN; + +#if 0 + printf("LEX=%s[%d]\n",lex2str(lex),a->end-a->beg); +#endif + +ret: + return lex; +} + + +static int my_xml_value(MY_XML_PARSER *st, const char *str, size_t len) +{ + return (st->value) ? (st->value)(st,str,len) : MY_XML_OK; +} + + +/** + Ensure the attr buffer is wide enough to hold the new value + + Expand and/or allocate dynamic buffer as needed to hold the concatenated + path and the terminating zero. + + @attr st the parser instance + @attr len the length of the attribute to be added + @return state + @retval 1 failed + @retval 0 success +*/ +static int my_xml_attr_ensure_space(MY_XML_PARSER *st, size_t len) +{ + size_t ofs= st->attr.end - st->attr.start; + len++; // Add terminating zero. + if (ofs + len > st->attr.buffer_size) + { + st->attr.buffer_size= (SIZE_T_MAX - len) / 2 > st->attr.buffer_size ? + st->attr.buffer_size * 2 + len : SIZE_T_MAX; + + if (!st->attr.buffer) + { + st->attr.buffer= (char *) my_str_malloc(st->attr.buffer_size); + if (st->attr.buffer) + memcpy(st->attr.buffer, st->attr.static_buffer, ofs + 1 /*term. zero */); + } + else + st->attr.buffer= (char *) my_str_realloc(st->attr.buffer, + st->attr.buffer_size); + st->attr.start= st->attr.buffer; + st->attr.end= st->attr.start + ofs; + + return st->attr.buffer ? MY_XML_OK : MY_XML_ERROR; + } + return MY_XML_OK; +} + + +/** rewind the attr buffer to initial state */ +static void my_xml_attr_rewind(MY_XML_PARSER *p) +{ + /* keep the buffer already allocated */ + p->attr.end= p->attr.start; +} + + +static int my_xml_enter(MY_XML_PARSER *st, const char *str, size_t len) +{ + if (my_xml_attr_ensure_space(st, len + 1 /* the separator char */)) + return MY_XML_ERROR; + + if (st->attr.end > st->attr.start) + { + st->attr.end[0]= '/'; + st->attr.end++; + } + memcpy(st->attr.end, str, len); + st->attr.end+= len; + st->attr.end[0]= '\0'; + if (st->flags & MY_XML_FLAG_RELATIVE_NAMES) + return st->enter ? st->enter(st, str, len) : MY_XML_OK; + else + return st->enter ? + st->enter(st, st->attr.start, st->attr.end - st->attr.start) : MY_XML_OK; +} + + +static void mstr(char *s,const char *src,size_t l1, size_t l2) +{ + l1 = l1attr.end; (e > p->attr.start) && (e[0] != '/') ; e--); + glen= (size_t) ((e[0] == '/') ? (p->attr.end - e - 1) : p->attr.end - e); + + if (str && (slen != glen)) + { + mstr(s,str,sizeof(s)-1,slen); + if (glen) + { + mstr(g,e+1,sizeof(g)-1,glen), + sprintf(p->errstr,"'' unexpected ('' wanted)",s,g); + } + else + sprintf(p->errstr,"'' unexpected (END-OF-INPUT wanted)", s); + return MY_XML_ERROR; + } + + if (p->flags & MY_XML_FLAG_RELATIVE_NAMES) + rc= p->leave_xml ? p->leave_xml(p, str, slen) : MY_XML_OK; + else + rc= (p->leave_xml ? + p->leave_xml(p, p->attr.start, p->attr.end - p->attr.start) : + MY_XML_OK); + + *e='\0'; + p->attr.end= e; + + return rc; +} + + +int my_xml_parse(MY_XML_PARSER *p,const char *str, size_t len) +{ + + my_xml_attr_rewind(p); + + p->beg=str; + p->cur=str; + p->end=str+len; + + while ( p->cur < p->end ) + { + MY_XML_ATTR a; + if (p->cur[0] == '<') + { + int lex; + int question=0; + int exclam=0; + + lex=my_xml_scan(p,&a); + + if (MY_XML_COMMENT == lex) + continue; + + if (lex == MY_XML_CDATA) + { + a.beg+= 9; + a.end-= 3; + my_xml_value(p, a.beg, (size_t) (a.end-a.beg)); + continue; + } + + lex=my_xml_scan(p,&a); + + if (MY_XML_SLASH == lex) + { + if (MY_XML_IDENT != (lex=my_xml_scan(p,&a))) + { + sprintf(p->errstr,"%s unexpected (ident wanted)",lex2str(lex)); + return MY_XML_ERROR; + } + if (MY_XML_OK != my_xml_leave(p,a.beg,(size_t) (a.end-a.beg))) + return MY_XML_ERROR; + lex=my_xml_scan(p,&a); + goto gt; + } + + if (MY_XML_EXCLAM == lex) + { + lex=my_xml_scan(p,&a); + exclam=1; + } + else if (MY_XML_QUESTION == lex) + { + lex=my_xml_scan(p,&a); + question=1; + } + + if (MY_XML_IDENT == lex) + { + p->current_node_type= MY_XML_NODE_TAG; + if (MY_XML_OK != my_xml_enter(p,a.beg,(size_t) (a.end-a.beg))) + return MY_XML_ERROR; + } + else + { + sprintf(p->errstr,"%s unexpected (ident or '/' wanted)", + lex2str(lex)); + return MY_XML_ERROR; + } + + while ((MY_XML_IDENT == (lex=my_xml_scan(p,&a))) || + ((MY_XML_STRING == lex && exclam))) + { + MY_XML_ATTR b; + if (MY_XML_EQ == (lex=my_xml_scan(p,&b))) + { + lex=my_xml_scan(p,&b); + if ( (lex == MY_XML_IDENT) || (lex == MY_XML_STRING) ) + { + p->current_node_type= MY_XML_NODE_ATTR; + if ((MY_XML_OK != my_xml_enter(p,a.beg,(size_t) (a.end-a.beg))) || + (MY_XML_OK != my_xml_value(p,b.beg,(size_t) (b.end-b.beg))) || + (MY_XML_OK != my_xml_leave(p,a.beg,(size_t) (a.end-a.beg)))) + return MY_XML_ERROR; + } + else + { + sprintf(p->errstr,"%s unexpected (ident or string wanted)", + lex2str(lex)); + return MY_XML_ERROR; + } + } + else if (MY_XML_IDENT == lex) + { + p->current_node_type= MY_XML_NODE_ATTR; + if ((MY_XML_OK != my_xml_enter(p,a.beg,(size_t) (a.end-a.beg))) || + (MY_XML_OK != my_xml_leave(p,a.beg,(size_t) (a.end-a.beg)))) + return MY_XML_ERROR; + } + else if ((MY_XML_STRING == lex) && exclam) + { + /* + We are in , e.g. + + + Just skip "SystemLiteral" and "PublicidLiteral" + */ + } + else + break; + } + + if (lex == MY_XML_SLASH) + { + if (MY_XML_OK != my_xml_leave(p,NULL,0)) + return MY_XML_ERROR; + lex=my_xml_scan(p,&a); + } + +gt: + if (question) + { + if (lex != MY_XML_QUESTION) + { + sprintf(p->errstr,"%s unexpected ('?' wanted)",lex2str(lex)); + return MY_XML_ERROR; + } + if (MY_XML_OK != my_xml_leave(p,NULL,0)) + return MY_XML_ERROR; + lex=my_xml_scan(p,&a); + } + + if (exclam) + { + if (MY_XML_OK != my_xml_leave(p,NULL,0)) + return MY_XML_ERROR; + } + + if (lex != MY_XML_GT) + { + sprintf(p->errstr,"%s unexpected ('>' wanted)",lex2str(lex)); + return MY_XML_ERROR; + } + } + else + { + a.beg=p->cur; + for ( ; (p->cur < p->end) && (p->cur[0] != '<') ; p->cur++); + a.end=p->cur; + + if (!(p->flags & MY_XML_FLAG_SKIP_TEXT_NORMALIZATION)) + my_xml_norm_text(&a); + if (a.beg != a.end) + { + my_xml_value(p,a.beg,(size_t) (a.end-a.beg)); + } + } + } + + if (p->attr.start[0]) + { + sprintf(p->errstr,"unexpected END-OF-INPUT"); + return MY_XML_ERROR; + } + return MY_XML_OK; +} + + +void my_xml_parser_create(MY_XML_PARSER *p) +{ + memset(p, 0, sizeof(p[0])); + /* + Use static buffer while it's sufficient. + */ + p->attr.start= p->attr.end= p->attr.static_buffer; + p->attr.buffer_size= sizeof(p->attr.static_buffer); +} + + +void my_xml_parser_free(MY_XML_PARSER *p) +{ + if (p->attr.buffer) + { + my_str_free(p->attr.buffer); + p->attr.buffer= NULL; + } +} + + +void my_xml_set_value_handler(MY_XML_PARSER *p, + int (*action)(MY_XML_PARSER *p, const char *s, + size_t l)) +{ + p->value=action; +} + +void my_xml_set_enter_handler(MY_XML_PARSER *p, + int (*action)(MY_XML_PARSER *p, const char *s, + size_t l)) +{ + p->enter=action; +} + + +void my_xml_set_leave_handler(MY_XML_PARSER *p, + int (*action)(MY_XML_PARSER *p, const char *s, + size_t l)) +{ + p->leave_xml=action; +} + + +void my_xml_set_user_data(MY_XML_PARSER *p, void *user_data) +{ + p->user_data=user_data; +} + + +const char *my_xml_error_string(MY_XML_PARSER *p) +{ + return p->errstr; +} + + +size_t my_xml_error_pos(MY_XML_PARSER *p) +{ + const char *beg=p->beg; + const char *s; + for ( s=p->cur - 1 ; s>p->beg - 1; s--) + { + if (s[0] == '\n') + { + beg=s; + break; + } + } + return (size_t) (p->cur-beg); +} + +uint my_xml_error_lineno(MY_XML_PARSER *p) +{ + uint res=0; + const char *s; + for (s=p->beg ; scur; s++) + { + if (s[0] == '\n') + res++; + } + return res; +} diff --git a/mysql/thr_cond.h b/mysql/thr_cond.h new file mode 100644 index 0000000..95df29d --- /dev/null +++ b/mysql/thr_cond.h @@ -0,0 +1,201 @@ +#ifndef THR_COND_INCLUDED +#define THR_COND_INCLUDED + +/* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + MySQL condition variable implementation. + + There are three "layers": + 1) native_cond_*() + Functions that map directly down to OS primitives. + Windows - ConditionVariable + Other OSes - pthread + 2) my_cond_*() + Functions that use SAFE_MUTEX (default for debug). + Otherwise native_cond_*() is used. + 3) mysql_cond*() + Functions that include Performance Schema instrumentation. + See include/mysql/psi/mysql_thread.h +*/ + +#include "my_thread.h" +#include "thr_mutex.h" + +C_MODE_START + +#ifdef _WIN32 +typedef CONDITION_VARIABLE native_cond_t; +#else +typedef pthread_cond_t native_cond_t; +#endif + +#ifdef _WIN32 +/** + Convert abstime to milliseconds +*/ + +static DWORD get_milliseconds(const struct timespec *abstime) +{ +#ifndef HAVE_STRUCT_TIMESPEC + long long millis; + union ft64 now; + + if (abstime == NULL) + return INFINITE; + + GetSystemTimeAsFileTime(&now.ft); + + /* + Calculate time left to abstime + - subtract start time from current time(values are in 100ns units) + - convert to millisec by dividing with 10000 + */ + millis= (abstime->tv.i64 - now.i64) / 10000; + + /* Don't allow the timeout to be negative */ + if (millis < 0) + return 0; + + /* + Make sure the calculated timeout does not exceed original timeout + value which could cause "wait for ever" if system time changes + */ + if (millis > abstime->max_timeout_msec) + millis= abstime->max_timeout_msec; + + if (millis > UINT_MAX) + millis= UINT_MAX; + + return (DWORD)millis; +#else + /* + Convert timespec to millis and subtract current time. + my_getsystime() returns time in 100 ns units. + */ + ulonglong future= abstime->tv_sec * 1000 + abstime->tv_nsec / 1000000; + ulonglong now= my_getsystime() / 10000; + /* Don't allow the timeout to be negative. */ + if (future < now) + return 0; + return (DWORD)(future - now); +#endif +} +#endif /* _WIN32 */ + +static inline int native_cond_init(native_cond_t *cond) +{ +#ifdef _WIN32 + InitializeConditionVariable(cond); + return 0; +#else + /* pthread_condattr_t is not used in MySQL */ + return pthread_cond_init(cond, NULL); +#endif +} + +static inline int native_cond_destroy(native_cond_t *cond) +{ +#ifdef _WIN32 + return 0; /* no destroy function */ +#else + return pthread_cond_destroy(cond); +#endif +} + +static inline int native_cond_timedwait(native_cond_t *cond, + native_mutex_t *mutex, + const struct timespec *abstime) +{ +#ifdef _WIN32 + DWORD timeout= get_milliseconds(abstime); + if (!SleepConditionVariableCS(cond, mutex, timeout)) + return ETIMEDOUT; + return 0; +#else + return pthread_cond_timedwait(cond, mutex, abstime); +#endif +} + +static inline int native_cond_wait(native_cond_t *cond, native_mutex_t *mutex) +{ +#ifdef _WIN32 + if (!SleepConditionVariableCS(cond, mutex, INFINITE)) + return ETIMEDOUT; + return 0; +#else + return pthread_cond_wait(cond, mutex); +#endif +} + +static inline int native_cond_signal(native_cond_t *cond) +{ +#ifdef _WIN32 + WakeConditionVariable(cond); + return 0; +#else + return pthread_cond_signal(cond); +#endif +} + +static inline int native_cond_broadcast(native_cond_t *cond) +{ +#ifdef _WIN32 + WakeAllConditionVariable(cond); + return 0; +#else + return pthread_cond_broadcast(cond); +#endif +} + +#ifdef SAFE_MUTEX +int safe_cond_wait(native_cond_t *cond, my_mutex_t *mp, + const char *file, uint line); +int safe_cond_timedwait(native_cond_t *cond, my_mutex_t *mp, + const struct timespec *abstime, + const char *file, uint line); +#endif + +static inline int my_cond_timedwait(native_cond_t *cond, my_mutex_t *mp, + const struct timespec *abstime +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_cond_timedwait(cond, mp, abstime, file, line); +#else + return native_cond_timedwait(cond, mp, abstime); +#endif +} + +static inline int my_cond_wait(native_cond_t *cond, my_mutex_t *mp +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_cond_wait(cond, mp, file, line); +#else + return native_cond_wait(cond, mp); +#endif +} + +C_MODE_END + +#endif /* THR_COND_INCLUDED */ diff --git a/mysql/thr_lock.h b/mysql/thr_lock.h new file mode 100644 index 0000000..884784e --- /dev/null +++ b/mysql/thr_lock.h @@ -0,0 +1,162 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* For use with thr_lock:s */ + +#ifndef _thr_lock_h +#define _thr_lock_h + +#include +#include +#include "mysql/psi/mysql_thread.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct st_thr_lock; +extern ulong locks_immediate,locks_waited ; + +/* + Important: if a new lock type is added, a matching lock description + must be added to sql_test.cc's lock_descriptions array. +*/ +enum thr_lock_type { TL_IGNORE=-1, + TL_UNLOCK, /* UNLOCK ANY LOCK */ + /* + Parser only! At open_tables() becomes TL_READ or + TL_READ_NO_INSERT depending on the binary log format + (SBR/RBR) and on the table category (log table). + Used for tables that are read by statements which + modify tables. + */ + TL_READ_DEFAULT, + TL_READ, /* Read lock */ + TL_READ_WITH_SHARED_LOCKS, + /* High prior. than TL_WRITE. Allow concurrent insert */ + TL_READ_HIGH_PRIORITY, + /* READ, Don't allow concurrent insert */ + TL_READ_NO_INSERT, + /* + Write lock, but allow other threads to read / write. + Used by BDB tables in MySQL to mark that someone is + reading/writing to the table. + */ + TL_WRITE_ALLOW_WRITE, + /* + parser only! Late bound low_priority_flag. + At open_tables() becomes thd->insert_lock_default. + */ + TL_WRITE_CONCURRENT_DEFAULT, + /* + WRITE lock used by concurrent insert. Will allow + READ, if one could use concurrent insert on table. + */ + TL_WRITE_CONCURRENT_INSERT, + /* + parser only! Late bound low_priority flag. + At open_tables() becomes thd->update_lock_default. + */ + TL_WRITE_DEFAULT, + /* WRITE lock that has lower priority than TL_READ */ + TL_WRITE_LOW_PRIORITY, + /* Normal WRITE lock */ + TL_WRITE, + /* Abort new lock request with an error */ + TL_WRITE_ONLY}; + +enum enum_thr_lock_result { THR_LOCK_SUCCESS= 0, THR_LOCK_ABORTED= 1, + THR_LOCK_WAIT_TIMEOUT= 2, THR_LOCK_DEADLOCK= 3 }; + + +extern ulong max_write_lock_count; +extern enum thr_lock_type thr_upgraded_concurrent_insert_lock; + +/* + A description of the thread which owns the lock. The address + of an instance of this structure is used to uniquely identify the thread. +*/ + +typedef struct st_thr_lock_info +{ + my_thread_id thread_id; + mysql_cond_t *suspend; +} THR_LOCK_INFO; + + +typedef struct st_thr_lock_data { + THR_LOCK_INFO *owner; + struct st_thr_lock_data *next,**prev; + struct st_thr_lock *lock; + mysql_cond_t *cond; + enum thr_lock_type type; + void *status_param; /* Param to status functions */ + void *debug_print_param; + struct PSI_table *m_psi; +} THR_LOCK_DATA; + +struct st_lock_list { + THR_LOCK_DATA *data,**last; +}; + +typedef struct st_thr_lock { + LIST list; + mysql_mutex_t mutex; + struct st_lock_list read_wait; + struct st_lock_list read; + struct st_lock_list write_wait; + struct st_lock_list write; + /* write_lock_count is incremented for write locks and reset on read locks */ + ulong write_lock_count; + uint read_no_write_count; + void (*get_status)(void*, int); /* When one gets a lock */ + void (*copy_status)(void*,void*); + void (*update_status)(void*); /* Before release of write */ + void (*restore_status)(void*); /* Before release of read */ + my_bool (*check_status)(void *); +} THR_LOCK; + + +extern LIST *thr_lock_thread_list; +extern mysql_mutex_t THR_LOCK_lock; + +void thr_lock_info_init(THR_LOCK_INFO *info, my_thread_id thread_id, + mysql_cond_t *suspend); +void thr_lock_init(THR_LOCK *lock); +void thr_lock_delete(THR_LOCK *lock); +void thr_lock_data_init(THR_LOCK *lock,THR_LOCK_DATA *data, + void *status_param); +enum enum_thr_lock_result thr_lock(THR_LOCK_DATA *data, + THR_LOCK_INFO *owner, + enum thr_lock_type lock_type, + ulong lock_wait_timeout); +void thr_unlock(THR_LOCK_DATA *data); +enum enum_thr_lock_result thr_multi_lock(THR_LOCK_DATA **data, + uint count, THR_LOCK_INFO *owner, + ulong lock_wait_timeout); +void thr_multi_unlock(THR_LOCK_DATA **data,uint count); +void +thr_lock_merge_status(THR_LOCK_DATA **data, uint count); +void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock); +void thr_abort_locks_for_thread(THR_LOCK *lock, my_thread_id thread); +void thr_print_locks(void); /* For debugging */ +void thr_downgrade_write_lock(THR_LOCK_DATA *data, + enum thr_lock_type new_lock_type); +void thr_set_lock_wait_callback(void (*before_wait)(void), + void (*after_wait)(void)); +#ifdef __cplusplus +} +#endif +#endif /* _thr_lock_h */ diff --git a/mysql/thr_mutex.h b/mysql/thr_mutex.h new file mode 100644 index 0000000..1b8c9d8 --- /dev/null +++ b/mysql/thr_mutex.h @@ -0,0 +1,227 @@ +#ifndef THR_MUTEX_INCLUDED +#define THR_MUTEX_INCLUDED + +/* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + MySQL mutex implementation. + + There are three "layers": + 1) native_mutex_*() + Functions that map directly down to OS primitives. + Windows - CriticalSection + Other OSes - pthread + 2) my_mutex_*() + Functions that implement SAFE_MUTEX (default for debug), + Otherwise native_mutex_*() is used. + 3) mysql_mutex_*() + Functions that include Performance Schema instrumentation. + See include/mysql/psi/mysql_thread.h +*/ + +#include +#include "my_thread.h" + +C_MODE_START + +#ifdef _WIN32 +typedef CRITICAL_SECTION native_mutex_t; +typedef int native_mutexattr_t; +#else +typedef pthread_mutex_t native_mutex_t; +typedef pthread_mutexattr_t native_mutexattr_t; +#endif + +/* Define mutex types, see my_thr_init.c */ +#define MY_MUTEX_INIT_SLOW NULL + +/* Can be set in /usr/include/pthread.h */ +#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +extern native_mutexattr_t my_fast_mutexattr; +#define MY_MUTEX_INIT_FAST &my_fast_mutexattr +#else +#define MY_MUTEX_INIT_FAST NULL +#endif + +/* Can be set in /usr/include/pthread.h */ +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +extern native_mutexattr_t my_errorcheck_mutexattr; +#define MY_MUTEX_INIT_ERRCHK &my_errorcheck_mutexattr +#else +#define MY_MUTEX_INIT_ERRCHK NULL +#endif + +static inline int native_mutex_init(native_mutex_t *mutex, + const native_mutexattr_t *attr) +{ +#ifdef _WIN32 + InitializeCriticalSection(mutex); + return 0; +#else + return pthread_mutex_init(mutex, attr); +#endif +} + +static inline int native_mutex_lock(native_mutex_t *mutex) +{ +#ifdef _WIN32 + EnterCriticalSection(mutex); + return 0; +#else + return pthread_mutex_lock(mutex); +#endif +} + +static inline int native_mutex_trylock(native_mutex_t *mutex) +{ +#ifdef _WIN32 + if (TryEnterCriticalSection(mutex)) + { + /* Don't allow recursive lock */ + if (mutex->RecursionCount > 1){ + LeaveCriticalSection(mutex); + return EBUSY; + } + return 0; + } + return EBUSY; +#else + return pthread_mutex_trylock(mutex); +#endif +} + +static inline int native_mutex_unlock(native_mutex_t *mutex) +{ +#ifdef _WIN32 + LeaveCriticalSection(mutex); + return 0; +#else + return pthread_mutex_unlock(mutex); +#endif +} + +static inline int native_mutex_destroy(native_mutex_t *mutex) +{ +#ifdef _WIN32 + DeleteCriticalSection(mutex); + return 0; +#else + return pthread_mutex_destroy(mutex); +#endif +} + + +#ifdef SAFE_MUTEX +/* safe_mutex adds checking to mutex for easier debugging */ +typedef struct st_safe_mutex_t +{ + native_mutex_t global, mutex; + const char *file; + uint line, count; + my_thread_t thread; +} my_mutex_t; + +void safe_mutex_global_init(); +int safe_mutex_init(my_mutex_t *mp, const native_mutexattr_t *attr, + const char *file, uint line); +int safe_mutex_lock(my_mutex_t *mp, my_bool try_lock, const char *file, uint line); +int safe_mutex_unlock(my_mutex_t *mp, const char *file, uint line); +int safe_mutex_destroy(my_mutex_t *mp, const char *file, uint line); + +static inline void safe_mutex_assert_owner(const my_mutex_t *mp) +{ + DBUG_ASSERT(mp->count > 0 && + my_thread_equal(my_thread_self(), mp->thread)); +} + +static inline void safe_mutex_assert_not_owner(const my_mutex_t *mp) +{ + DBUG_ASSERT(!mp->count || + !my_thread_equal(my_thread_self(), mp->thread)); +} + +#else +typedef native_mutex_t my_mutex_t; +#endif + +static inline int my_mutex_init(my_mutex_t *mp, const native_mutexattr_t *attr +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_mutex_init(mp, attr, file, line); +#else + return native_mutex_init(mp, attr); +#endif +} + +static inline int my_mutex_lock(my_mutex_t *mp +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_mutex_lock(mp, FALSE, file, line); +#else + return native_mutex_lock(mp); +#endif +} + +static inline int my_mutex_trylock(my_mutex_t *mp +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_mutex_lock(mp, TRUE, file, line); +#else + return native_mutex_trylock(mp); +#endif +} + +static inline int my_mutex_unlock(my_mutex_t *mp +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_mutex_unlock(mp, file, line); +#else + return native_mutex_unlock(mp); +#endif +} + +static inline int my_mutex_destroy(my_mutex_t *mp +#ifdef SAFE_MUTEX + , const char *file, uint line +#endif + ) +{ +#ifdef SAFE_MUTEX + return safe_mutex_destroy(mp, file, line); +#else + return native_mutex_destroy(mp); +#endif +} + +C_MODE_END + +#endif /* THR_MUTEX_INCLUDED */ diff --git a/mysql/thr_rwlock.h b/mysql/thr_rwlock.h new file mode 100644 index 0000000..c177e29 --- /dev/null +++ b/mysql/thr_rwlock.h @@ -0,0 +1,214 @@ +#ifndef THR_RWLOCK_INCLUDED +#define THR_RWLOCK_INCLUDED + +/* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/** + MySQL rwlock implementation. + + There are two "layers": + 1) native_rw_*() + Functions that map directly down to OS primitives. + Windows - SRWLock + Other OSes - pthread + 2) mysql_rw*() + Functions that include Performance Schema instrumentation. + See include/mysql/psi/mysql_thread.h + + This file also includes rw_pr_*(), which implements a special + version of rwlocks that prefer readers. The P_S version of these + are mysql_prlock_*() - see include/mysql/psi/mysql_thread.h +*/ + +#include "my_global.h" +#include "my_thread.h" +#include "thr_cond.h" + +C_MODE_START + +#ifdef _WIN32 +typedef struct st_my_rw_lock_t +{ + SRWLOCK srwlock; /* native reader writer lock */ + BOOL have_exclusive_srwlock; /* used for unlock */ +} native_rw_lock_t; +#else +typedef pthread_rwlock_t native_rw_lock_t; +#endif + +static inline int native_rw_init(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + InitializeSRWLock(&rwp->srwlock); + rwp->have_exclusive_srwlock = FALSE; + return 0; +#else + /* pthread_rwlockattr_t is not used in MySQL */ + return pthread_rwlock_init(rwp, NULL); +#endif +} + +static inline int native_rw_destroy(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + return 0; /* no destroy function */ +#else + return pthread_rwlock_destroy(rwp); +#endif +} + +static inline int native_rw_rdlock(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + AcquireSRWLockShared(&rwp->srwlock); + return 0; +#else + return pthread_rwlock_rdlock(rwp); +#endif +} + +static inline int native_rw_tryrdlock(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + if (!TryAcquireSRWLockShared(&rwp->srwlock)) + return EBUSY; + return 0; +#else + return pthread_rwlock_tryrdlock(rwp); +#endif +} + +static inline int native_rw_wrlock(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + AcquireSRWLockExclusive(&rwp->srwlock); + rwp->have_exclusive_srwlock= TRUE; + return 0; +#else + return pthread_rwlock_wrlock(rwp); +#endif +} + +static inline int native_rw_trywrlock(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + if (!TryAcquireSRWLockExclusive(&rwp->srwlock)) + return EBUSY; + rwp->have_exclusive_srwlock= TRUE; + return 0; +#else + return pthread_rwlock_trywrlock(rwp); +#endif +} + +static inline int native_rw_unlock(native_rw_lock_t *rwp) +{ +#ifdef _WIN32 + if (rwp->have_exclusive_srwlock) + { + rwp->have_exclusive_srwlock= FALSE; + ReleaseSRWLockExclusive(&rwp->srwlock); + } + else + ReleaseSRWLockShared(&rwp->srwlock); + return 0; +#else + return pthread_rwlock_unlock(rwp); +#endif +} + + +/** + Portable implementation of special type of read-write locks. + + These locks have two properties which are unusual for rwlocks: + 1) They "prefer readers" in the sense that they do not allow + situations in which rwlock is rd-locked and there is a + pending rd-lock which is blocked (e.g. due to pending + request for wr-lock). + This is a stronger guarantee than one which is provided for + PTHREAD_RWLOCK_PREFER_READER_NP rwlocks in Linux. + MDL subsystem deadlock detector relies on this property for + its correctness. + 2) They are optimized for uncontended wr-lock/unlock case. + This is scenario in which they are most oftenly used + within MDL subsystem. Optimizing for it gives significant + performance improvements in some of tests involving many + connections. + + Another important requirement imposed on this type of rwlock + by the MDL subsystem is that it should be OK to destroy rwlock + object which is in unlocked state even though some threads might + have not yet fully left unlock operation for it (of course there + is an external guarantee that no thread will try to lock rwlock + which is destroyed). + Putting it another way the unlock operation should not access + rwlock data after changing its state to unlocked. + + TODO/FIXME: We should consider alleviating this requirement as + it blocks us from doing certain performance optimizations. +*/ + +typedef struct st_rw_pr_lock_t { + /** + Lock which protects the structure. + Also held for the duration of wr-lock. + */ + native_mutex_t lock; + /** + Condition variable which is used to wake-up + writers waiting for readers to go away. + */ + native_cond_t no_active_readers; + /** Number of active readers. */ + uint active_readers; + /** Number of writers waiting for readers to go away. */ + uint writers_waiting_readers; + /** Indicates whether there is an active writer. */ + my_bool active_writer; +#ifdef SAFE_MUTEX + /** Thread holding wr-lock (for debug purposes only). */ + my_thread_t writer_thread; +#endif +} rw_pr_lock_t; + +extern int rw_pr_init(rw_pr_lock_t *); +extern int rw_pr_rdlock(rw_pr_lock_t *); +extern int rw_pr_wrlock(rw_pr_lock_t *); +extern int rw_pr_unlock(rw_pr_lock_t *); +extern int rw_pr_destroy(rw_pr_lock_t *); + +static inline void +rw_pr_lock_assert_write_owner(const rw_pr_lock_t *rwlock MY_ATTRIBUTE((unused))) +{ +#ifdef SAFE_MUTEX + DBUG_ASSERT(rwlock->active_writer && + my_thread_equal(my_thread_self(), rwlock->writer_thread)); +#endif +} + +static inline void +rw_pr_lock_assert_not_write_owner(const rw_pr_lock_t *rwlock MY_ATTRIBUTE((unused))) +{ +#ifdef SAFE_MUTEX + DBUG_ASSERT(!rwlock->active_writer || + !my_thread_equal(my_thread_self(), rwlock->writer_thread)); +#endif +} + +C_MODE_END + +#endif /* THR_RWLOCK_INCLUDED */ diff --git a/mysql/typelib.h b/mysql/typelib.h new file mode 100644 index 0000000..919dd69 --- /dev/null +++ b/mysql/typelib.h @@ -0,0 +1,54 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + + +#ifndef _typelib_h +#define _typelib_h + +#include "my_alloc.h" + +typedef struct st_typelib { /* Different types saved here */ + unsigned int count; /* How many types */ + const char *name; /* Name of typelib */ + const char **type_names; + unsigned int *type_lengths; +} TYPELIB; + +extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position); +extern int find_type_or_exit(const char *x, TYPELIB *typelib, + const char *option); +#define FIND_TYPE_BASIC 0 +/** makes @c find_type() require the whole name, no prefix */ +#define FIND_TYPE_NO_PREFIX (1 << 0) +/** always implicitely on, so unused, but old code may pass it */ +#define FIND_TYPE_NO_OVERWRITE (1 << 1) +/** makes @c find_type() accept a number */ +#define FIND_TYPE_ALLOW_NUMBER (1 << 2) +/** makes @c find_type() treat ',' as terminator */ +#define FIND_TYPE_COMMA_TERM (1 << 3) + +extern int find_type(const char *x, const TYPELIB *typelib, unsigned int flags); +extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); +extern const char *get_type(TYPELIB *typelib,unsigned int nr); +extern TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from); + +extern TYPELIB sql_protocol_typelib; + +my_ulonglong find_set_from_flags(const TYPELIB *lib, unsigned int default_name, + my_ulonglong cur_set, my_ulonglong default_set, + const char *str, unsigned int length, + char **err_pos, unsigned int *err_len); + +#endif /* _typelib_h */ diff --git a/mysql/version.h b/mysql/version.h new file mode 100644 index 0000000..e69de29 diff --git a/mysql/version.h.in b/mysql/version.h.in new file mode 100644 index 0000000..05e409a --- /dev/null +++ b/mysql/version.h.in @@ -0,0 +1,43 @@ +/* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB + & Detron HB, 1996, 1999-2004, 2007 MySQL AB. + This file is public domain and comes with NO WARRANTY of any kind +*/ + +/* Version numbers for protocol & mysqld */ + +#ifndef _mysql_version_h +#define _mysql_version_h + +#define PROTOCOL_VERSION @PROTOCOL_VERSION@ +#define MYSQL_SERVER_VERSION "@VERSION@" +#define MYSQL_BASE_VERSION "mysqld-@MYSQL_BASE_VERSION@" +#define MYSQL_SERVER_SUFFIX_DEF "@MYSQL_SERVER_SUFFIX@" +#define FRM_VER @DOT_FRM_VERSION@ +#define MYSQL_VERSION_ID @MYSQL_VERSION_ID@ +#define MYSQL_PORT @MYSQL_TCP_PORT@ +#define MYSQL_PORT_DEFAULT @MYSQL_TCP_PORT_DEFAULT@ +#define MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@" +#define MYSQL_CONFIG_NAME "my" +#define MYSQL_COMPILATION_COMMENT "@COMPILATION_COMMENT@" +#define LIBMYSQL_VERSION "@VERSION@" +#define LIBMYSQL_VERSION_ID @MYSQL_VERSION_ID@ +#define SYS_SCHEMA_VERSION "@SYS_SCHEMA_VERSION@" + +#ifndef LICENSE +#define LICENSE GPL +#endif /* LICENSE */ + +/* + * These macro definitions are added to the original ones during packaging the + * project for build2. + */ +#define MYSQL_VERSION_MAJOR @MYSQL_VERSION_MAJOR@ +#define MYSQL_VERSION_MINOR @MYSQL_VERSION_MINOR@ +#define MACHINE_TYPE "@MACHINE_TYPE@" +#define SYSTEM_TYPE "@SYSTEM_TYPE@" +#define DEFAULT_BASEDIR "@DEFAULT_BASEDIR@" +#define DEFAULT_CHARSET_HOME DEFAULT_BASEDIR +#define PLUGINDIR "@PLUGINDIR@" +#define SHAREDIR "@SHAREDIR@" + +#endif /* _mysql_version_h */ diff --git a/mysql/vio/vio.c b/mysql/vio/vio.c new file mode 100644 index 0000000..1be1540 --- /dev/null +++ b/mysql/vio/vio.c @@ -0,0 +1,459 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Note that we can't have assertion on file descriptors; The reason for + this is that during mysql shutdown, another thread can close a file + we are working on. In this case we should just return read errors from + the file descriptior. +*/ + +#include "vio_priv.h" + +#ifdef HAVE_OPENSSL +PSI_memory_key key_memory_vio_ssl_fd; +#endif + +PSI_memory_key key_memory_vio; +PSI_memory_key key_memory_vio_read_buffer; + +#ifdef HAVE_PSI_INTERFACE +static PSI_memory_info all_vio_memory[]= +{ +#ifdef HAVE_OPENSSL + {&key_memory_vio_ssl_fd, "ssl_fd", 0}, +#endif + + {&key_memory_vio, "vio", 0}, + {&key_memory_vio_read_buffer, "read_buffer", 0}, +}; + +void init_vio_psi_keys() +{ + const char* category= "vio"; + int count; + + count= array_elements(all_vio_memory); + mysql_memory_register(category, all_vio_memory, count); +} +#endif + +#ifdef _WIN32 + +/** + Stub io_wait method that defaults to indicate that + requested I/O event is ready. + + Used for named pipe and shared memory VIO types. + + @param vio Unused. + @param event Unused. + @param timeout Unused. + + @retval 1 The requested I/O event has occurred. +*/ + +static int no_io_wait(Vio *vio MY_ATTRIBUTE((unused)), + enum enum_vio_io_event event MY_ATTRIBUTE((unused)), + int timeout MY_ATTRIBUTE((unused))) +{ + return 1; +} + +#endif + +static my_bool has_no_data(Vio *vio MY_ATTRIBUTE((unused))) +{ + return FALSE; +} + +/* + * Helper to fill most of the Vio* with defaults. + */ + +static void vio_init(Vio *vio, enum enum_vio_type type, + my_socket sd, uint flags) +{ + DBUG_ENTER("vio_init"); + DBUG_PRINT("enter", ("type: %d sd: %d flags: %d", type, sd, flags)); + + memset(vio, 0, sizeof(*vio)); + vio->type= type; + vio->mysql_socket= MYSQL_INVALID_SOCKET; + mysql_socket_setfd(&vio->mysql_socket, sd); + vio->localhost= flags & VIO_LOCALHOST; + vio->read_timeout= vio->write_timeout= -1; + if ((flags & VIO_BUFFERED_READ) && + !(vio->read_buffer= (char*)my_malloc(key_memory_vio_read_buffer, + VIO_READ_BUFFER_SIZE, MYF(MY_WME)))) + flags&= ~VIO_BUFFERED_READ; +#ifdef _WIN32 + if (type == VIO_TYPE_NAMEDPIPE) + { + vio->viodelete =vio_delete; + vio->vioerrno =vio_errno; + vio->read =vio_read_pipe; + vio->write =vio_write_pipe; + vio->fastsend =vio_fastsend; + vio->viokeepalive =vio_keepalive; + vio->should_retry =vio_should_retry; + vio->was_timeout =vio_was_timeout; + vio->vioshutdown =vio_shutdown_pipe; + vio->peer_addr =vio_peer_addr; + vio->io_wait =no_io_wait; + vio->is_connected =vio_is_connected_pipe; + vio->has_data =has_no_data; + DBUG_VOID_RETURN; + } +#ifndef EMBEDDED_LIBRARY + if (type == VIO_TYPE_SHARED_MEMORY) + { + vio->viodelete =vio_delete_shared_memory; + vio->vioerrno =vio_errno; + vio->read =vio_read_shared_memory; + vio->write =vio_write_shared_memory; + vio->fastsend =vio_fastsend; + vio->viokeepalive =vio_keepalive; + vio->should_retry =vio_should_retry; + vio->was_timeout =vio_was_timeout; + vio->vioshutdown =vio_shutdown_shared_memory; + vio->peer_addr =vio_peer_addr; + vio->io_wait =no_io_wait; + vio->is_connected =vio_is_connected_shared_memory; + vio->has_data =has_no_data; + DBUG_VOID_RETURN; + } +#endif /* !EMBEDDED_LIBRARY */ +#endif /* _WIN32 */ +#ifdef HAVE_OPENSSL + if (type == VIO_TYPE_SSL) + { + vio->viodelete =vio_ssl_delete; + vio->vioerrno =vio_errno; + vio->read =vio_ssl_read; + vio->write =vio_ssl_write; + vio->fastsend =vio_fastsend; + vio->viokeepalive =vio_keepalive; + vio->should_retry =vio_should_retry; + vio->was_timeout =vio_was_timeout; + vio->vioshutdown =vio_ssl_shutdown; + vio->peer_addr =vio_peer_addr; + vio->io_wait =vio_io_wait; + vio->is_connected =vio_is_connected; + vio->has_data =vio_ssl_has_data; + vio->timeout =vio_socket_timeout; + DBUG_VOID_RETURN; + } +#endif /* HAVE_OPENSSL */ + vio->viodelete =vio_delete; + vio->vioerrno =vio_errno; + vio->read= (flags & VIO_BUFFERED_READ) ? vio_read_buff : vio_read; + vio->write =vio_write; + vio->fastsend =vio_fastsend; + vio->viokeepalive =vio_keepalive; + vio->should_retry =vio_should_retry; + vio->was_timeout =vio_was_timeout; + vio->vioshutdown =vio_shutdown; + vio->peer_addr =vio_peer_addr; + vio->io_wait =vio_io_wait; + vio->is_connected =vio_is_connected; + vio->timeout =vio_socket_timeout; + vio->has_data= (flags & VIO_BUFFERED_READ) ? + vio_buff_has_data : has_no_data; + DBUG_VOID_RETURN; +} + + +/** + Reinitialize an existing Vio object. + + @remark Used to rebind an initialized socket-based Vio object + to another socket-based transport type. For example, + rebind a TCP/IP transport to SSL. + + @remark If new socket handle passed to vio_reset() is not equal + to the socket handle stored in Vio then socket handle will + be closed before storing new value. If handles are equal + then old socket is not closed. This is important for + vio_reset() usage in ssl_do(). + + @remark If any error occurs then Vio members won't be altered thus + preserving socket handle stored in Vio and not taking + ownership over socket handle passed as parameter. + + @param vio A VIO object. + @param type A socket-based transport type. + @param sd The socket. + @param ssl An optional SSL structure. + @param flags Flags passed to vio_init. + + @return Return value is zero on success. +*/ + +my_bool vio_reset(Vio* vio, enum enum_vio_type type, + my_socket sd, void *ssl MY_ATTRIBUTE((unused)), uint flags) +{ + int ret= FALSE; + Vio new_vio; + DBUG_ENTER("vio_reset"); + + /* The only supported rebind is from a socket-based transport type. */ + DBUG_ASSERT(vio->type == VIO_TYPE_TCPIP || vio->type == VIO_TYPE_SOCKET); + + vio_init(&new_vio, type, sd, flags); + + /* Preserve perfschema info for this connection */ + new_vio.mysql_socket.m_psi= vio->mysql_socket.m_psi; + +#ifdef HAVE_OPENSSL + new_vio.ssl_arg= ssl; +#endif + + /* + Propagate the timeout values. Necessary to also propagate + the underlying proprieties associated with the timeout, + such as the socket blocking mode. + */ + if (vio->read_timeout >= 0) + ret|= vio_timeout(&new_vio, 0, vio->read_timeout / 1000); + + if (vio->write_timeout >= 0) + ret|= vio_timeout(&new_vio, 1, vio->write_timeout / 1000); + + if (ret) + { + /* + vio_reset() failed + free resources allocated by vio_init + */ + my_free(new_vio.read_buffer); + } + else + { + /* + vio_reset() succeeded + free old resources and then overwrite VIO structure + */ + + /* + Close socket only when it is not equal to the new one. + */ + if (sd != mysql_socket_getfd(vio->mysql_socket)) + if (vio->inactive == FALSE) + vio->vioshutdown(vio); + + my_free(vio->read_buffer); + + *vio= new_vio; + } + + DBUG_RETURN(MY_TEST(ret)); +} + + +/* Create a new VIO for socket or TCP/IP connection. */ + +Vio *mysql_socket_vio_new(MYSQL_SOCKET mysql_socket, enum enum_vio_type type, uint flags) +{ + Vio *vio; + my_socket sd= mysql_socket_getfd(mysql_socket); + DBUG_ENTER("mysql_socket_vio_new"); + DBUG_PRINT("enter", ("sd: %d", sd)); + if ((vio = (Vio*) my_malloc(key_memory_vio, + sizeof(*vio),MYF(MY_WME)))) + { + vio_init(vio, type, sd, flags); + vio->mysql_socket= mysql_socket; + } + DBUG_RETURN(vio); +} + +/* Open the socket or TCP/IP connection and read the fnctl() status */ + +Vio *vio_new(my_socket sd, enum enum_vio_type type, uint flags) +{ + Vio *vio; + MYSQL_SOCKET mysql_socket= MYSQL_INVALID_SOCKET; + DBUG_ENTER("vio_new"); + DBUG_PRINT("enter", ("sd: %d", sd)); + + mysql_socket_setfd(&mysql_socket, sd); + vio = mysql_socket_vio_new(mysql_socket, type, flags); + + DBUG_RETURN(vio); +} + +#ifdef _WIN32 + +Vio *vio_new_win32pipe(HANDLE hPipe) +{ + Vio *vio; + DBUG_ENTER("vio_new_handle"); + if ((vio = (Vio*) my_malloc(key_memory_vio, + sizeof(Vio),MYF(MY_WME)))) + { + vio_init(vio, VIO_TYPE_NAMEDPIPE, 0, VIO_LOCALHOST); + /* Create an object for event notification. */ + vio->overlapped.hEvent= CreateEvent(NULL, FALSE, FALSE, NULL); + if (vio->overlapped.hEvent == NULL) + { + my_free(vio); + DBUG_RETURN(NULL); + } + vio->hPipe= hPipe; + my_stpcpy(vio->desc, "named pipe"); + } + DBUG_RETURN(vio); +} + +#ifndef EMBEDDED_LIBRARY +Vio *vio_new_win32shared_memory(HANDLE handle_file_map, HANDLE handle_map, + HANDLE event_server_wrote, HANDLE event_server_read, + HANDLE event_client_wrote, HANDLE event_client_read, + HANDLE event_conn_closed) +{ + Vio *vio; + DBUG_ENTER("vio_new_win32shared_memory"); + if ((vio = (Vio*) my_malloc(key_memory_vio, + sizeof(Vio),MYF(MY_WME)))) + { + vio_init(vio, VIO_TYPE_SHARED_MEMORY, 0, VIO_LOCALHOST); + vio->handle_file_map= handle_file_map; + vio->handle_map= handle_map; + vio->event_server_wrote= event_server_wrote; + vio->event_server_read= event_server_read; + vio->event_client_wrote= event_client_wrote; + vio->event_client_read= event_client_read; + vio->event_conn_closed= event_conn_closed; + vio->shared_memory_remain= 0; + vio->shared_memory_pos= handle_map; + my_stpcpy(vio->desc, "shared memory"); + } + DBUG_RETURN(vio); +} +#endif +#endif + + +/** + Set timeout for a network send or receive operation. + + @remark A non-infinite timeout causes the socket to be + set to non-blocking mode. On infinite timeouts, + the socket is set to blocking mode. + + @remark A negative timeout means an infinite timeout. + + @param vio A VIO object. + @param which Whether timeout is for send (1) or receive (0). + @param timeout Timeout interval in seconds. + + @return FALSE on success, TRUE otherwise. +*/ + +int vio_timeout(Vio *vio, uint which, int timeout_sec) +{ + int timeout_ms; + my_bool old_mode; + + /* + Vio timeouts are measured in milliseconds. Check for a possible + overflow. In case of overflow, set to infinite. + */ + if (timeout_sec > INT_MAX/1000) + timeout_ms= -1; + else + timeout_ms= (int) (timeout_sec * 1000); + + /* Deduce the current timeout status mode. */ + old_mode= vio->write_timeout < 0 && vio->read_timeout < 0; + + if (which) + vio->write_timeout= timeout_ms; + else + vio->read_timeout= timeout_ms; + + /* VIO-specific timeout handling. Might change the blocking mode. */ + return vio->timeout ? vio->timeout(vio, which, old_mode) : 0; +} + + +void vio_delete(Vio* vio) +{ + if (!vio) + return; /* It must be safe to delete null pointers. */ + + if (vio->inactive == FALSE) + vio->vioshutdown(vio); + my_free(vio->read_buffer); + my_free(vio); +} + + +/* + Cleanup memory allocated by vio or the + components below it when application finish + +*/ +void vio_end(void) +{ +#if defined(HAVE_YASSL) + yaSSL_CleanUp(); +#elif defined(HAVE_OPENSSL) + vio_ssl_end(); +#endif +} + +struct vio_string +{ + const char * m_str; + int m_len; +}; +typedef struct vio_string vio_string; + +/** + Names for each VIO TYPE. + Indexed by enum_vio_type. + If you add more, please update audit_log.cc +*/ +static const vio_string vio_type_names[] = +{ + { "", 0}, + { C_STRING_WITH_LEN("TCP/IP") }, + { C_STRING_WITH_LEN("Socket") }, + { C_STRING_WITH_LEN("Named Pipe") }, + { C_STRING_WITH_LEN("SSL/TLS") }, + { C_STRING_WITH_LEN("Shared Memory") }, + { C_STRING_WITH_LEN("Internal") }, + { C_STRING_WITH_LEN("Plugin") } +}; + +void get_vio_type_name(enum enum_vio_type vio_type, const char ** str, int * len) +{ + int index; + + if ((vio_type >= FIRST_VIO_TYPE) && (vio_type <= LAST_VIO_TYPE)) + { + index= vio_type; + } + else + { + index= 0; + } + *str= vio_type_names[index].m_str; + *len= vio_type_names[index].m_len; + return; +} + diff --git a/mysql/vio/vio_priv.h b/mysql/vio/vio_priv.h new file mode 100644 index 0000000..11eadbb --- /dev/null +++ b/mysql/vio/vio_priv.h @@ -0,0 +1,67 @@ +/* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#ifndef VIO_PRIV_INCLUDED +#define VIO_PRIV_INCLUDED + +/* Structures and functions private to the vio package */ + +#define DONT_MAP_VIO +#include +#include +#include +#include +#include + +#include "mysql/psi/psi_memory.h" + +extern PSI_memory_key key_memory_vio; +extern PSI_memory_key key_memory_vio_read_buffer; + +#ifdef HAVE_OPENSSL +extern PSI_memory_key key_memory_vio_ssl_fd; +#endif + + +#ifdef _WIN32 +size_t vio_read_pipe(Vio *vio, uchar * buf, size_t size); +size_t vio_write_pipe(Vio *vio, const uchar * buf, size_t size); +my_bool vio_is_connected_pipe(Vio *vio); +int vio_shutdown_pipe(Vio * vio); + +#ifndef EMBEDDED_LIBRARY +size_t vio_read_shared_memory(Vio *vio, uchar * buf, size_t size); +size_t vio_write_shared_memory(Vio *vio, const uchar * buf, size_t size); +my_bool vio_is_connected_shared_memory(Vio *vio); +int vio_shutdown_shared_memory(Vio * vio); +void vio_delete_shared_memory(Vio *vio); +#endif /* !EMBEDDED_LIBRARY */ +#endif /* _WIN32 */ + +my_bool vio_buff_has_data(Vio *vio); +int vio_socket_io_wait(Vio *vio, enum enum_vio_io_event event); +int vio_socket_timeout(Vio *vio, uint which, my_bool old_mode); + +#ifdef HAVE_OPENSSL +size_t vio_ssl_read(Vio *vio,uchar* buf, size_t size); +size_t vio_ssl_write(Vio *vio,const uchar* buf, size_t size); + +/* When the workday is over... */ +int vio_ssl_shutdown(Vio *vio); +void vio_ssl_delete(Vio *vio); +my_bool vio_ssl_has_data(Vio *vio); + +#endif /* HAVE_OPENSSL */ +#endif /* VIO_PRIV_INCLUDED */ diff --git a/mysql/vio/viopipe.c b/mysql/vio/viopipe.c new file mode 100644 index 0000000..c2145cc --- /dev/null +++ b/mysql/vio/viopipe.c @@ -0,0 +1,117 @@ +/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "vio_priv.h" + +static size_t wait_overlapped_result(Vio *vio, int timeout) +{ + size_t ret= (size_t) -1; + DWORD transferred, wait_status, timeout_ms; + + timeout_ms= timeout >= 0 ? timeout : INFINITE; + + /* Wait for the overlapped operation to be completed. */ + wait_status= WaitForSingleObject(vio->overlapped.hEvent, timeout_ms); + + /* The operation might have completed, attempt to retrieve the result. */ + if (wait_status == WAIT_OBJECT_0) + { + /* If retrieval fails, a error code will have been set. */ + if (GetOverlappedResult(vio->hPipe, &vio->overlapped, &transferred, FALSE)) + ret= transferred; + } + else + { + /* Error or timeout, cancel the pending I/O operation. */ + CancelIo(vio->hPipe); + + /* + If the wait timed out, set error code to indicate a + timeout error. Otherwise, wait_status is WAIT_FAILED + and extended error information was already set. + */ + if (wait_status == WAIT_TIMEOUT) + SetLastError(SOCKET_ETIMEDOUT); + } + + return ret; +} + + +size_t vio_read_pipe(Vio *vio, uchar *buf, size_t count) +{ + DWORD transferred; + size_t ret= (size_t) -1; + DBUG_ENTER("vio_read_pipe"); + + /* Attempt to read from the pipe (overlapped I/O). */ + if (ReadFile(vio->hPipe, buf, (DWORD)count, &transferred, &vio->overlapped)) + { + /* The operation completed immediately. */ + ret= transferred; + } + /* Read operation is pending completion asynchronously? */ + else if (GetLastError() == ERROR_IO_PENDING) + ret= wait_overlapped_result(vio, vio->read_timeout); + + DBUG_RETURN(ret); +} + + +size_t vio_write_pipe(Vio *vio, const uchar *buf, size_t count) +{ + DWORD transferred; + size_t ret= (size_t) -1; + DBUG_ENTER("vio_write_pipe"); + + /* Attempt to write to the pipe (overlapped I/O). */ + if (WriteFile(vio->hPipe, buf, (DWORD)count, &transferred, &vio->overlapped)) + { + /* The operation completed immediately. */ + ret= transferred; + } + /* Write operation is pending completion asynchronously? */ + else if (GetLastError() == ERROR_IO_PENDING) + ret= wait_overlapped_result(vio, vio->write_timeout); + + DBUG_RETURN(ret); +} + + +my_bool vio_is_connected_pipe(Vio *vio) +{ + if (PeekNamedPipe(vio->hPipe, NULL, 0, NULL, NULL, NULL)) + return TRUE; + else + return (GetLastError() != ERROR_BROKEN_PIPE); +} + + +int vio_shutdown_pipe(Vio *vio) +{ + BOOL ret; + DBUG_ENTER("vio_shutdown_pipe"); + + CancelIo(vio->hPipe); + CloseHandle(vio->overlapped.hEvent); + DisconnectNamedPipe(vio->hPipe); + ret= CloseHandle(vio->hPipe); + + vio->inactive= TRUE; + vio->hPipe= NULL; + vio->mysql_socket= MYSQL_INVALID_SOCKET; + + DBUG_RETURN(ret); +} diff --git a/mysql/vio/vioshm.c b/mysql/vio/vioshm.c new file mode 100644 index 0000000..9bc3976 --- /dev/null +++ b/mysql/vio/vioshm.c @@ -0,0 +1,226 @@ +/* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "vio_priv.h" + +#if !defined(EMBEDDED_LIBRARY) + +size_t vio_read_shared_memory(Vio *vio, uchar *buf, size_t size) +{ + size_t length; + size_t remain_local; + char *current_position; + HANDLE events[2]; + DWORD timeout; + DBUG_ENTER("vio_read_shared_memory"); + + remain_local= size; + current_position= buf; + timeout= vio->read_timeout >= 0 ? vio->read_timeout : INFINITE; + + events[0]= vio->event_server_wrote; + events[1]= vio->event_conn_closed; + + do + { + if (vio->shared_memory_remain == 0) + { + DWORD wait_status; + + wait_status= WaitForMultipleObjects(array_elements(events), events, + FALSE, timeout); + + /* + WaitForMultipleObjects can return next values: + WAIT_OBJECT_0+0 - event from vio->event_server_wrote + WAIT_OBJECT_0+1 - event from vio->event_conn_closed. + We can't read anything + WAIT_ABANDONED_0 and WAIT_TIMEOUT - fail. We can't read anything + */ + if (wait_status != WAIT_OBJECT_0) + { + /* + If wait_status is WAIT_TIMEOUT, set error code to indicate a + timeout error. If vio->event_conn_closed was set, use an EOF + condition (return value of zero) to indicate that the operation + has been aborted. + */ + if (wait_status == WAIT_TIMEOUT) + SetLastError(SOCKET_ETIMEDOUT); + else if (wait_status == (WAIT_OBJECT_0 + 1)) + DBUG_RETURN(0); + + DBUG_RETURN(-1); + } + + vio->shared_memory_pos= vio->handle_map; + vio->shared_memory_remain= uint4korr(vio->shared_memory_pos); + vio->shared_memory_pos+= 4; + } + + length= size; + + if (vio->shared_memory_remain < length) + length= vio->shared_memory_remain; + if (length > remain_local) + length= remain_local; + + memcpy(current_position, vio->shared_memory_pos, length); + + vio->shared_memory_remain-= length; + vio->shared_memory_pos+= length; + current_position+= length; + remain_local-= length; + + if (!vio->shared_memory_remain) + { + if (!SetEvent(vio->event_client_read)) + DBUG_RETURN(-1); + } + } while (remain_local); + length= size; + + DBUG_RETURN(length); +} + + +size_t vio_write_shared_memory(Vio *vio, const uchar *buf, size_t size) +{ + size_t length, remain, sz; + HANDLE pos; + const uchar *current_position; + HANDLE events[2]; + DWORD timeout; + DBUG_ENTER("vio_write_shared_memory"); + + remain= size; + current_position= buf; + timeout= vio->write_timeout >= 0 ? vio->write_timeout : INFINITE; + + events[0]= vio->event_server_read; + events[1]= vio->event_conn_closed; + + while (remain != 0) + { + DWORD wait_status; + + wait_status= WaitForMultipleObjects(array_elements(events), events, + FALSE, timeout); + + if (wait_status != WAIT_OBJECT_0) + { + /* Set error code to indicate a timeout error or disconnect. */ + if (wait_status == WAIT_TIMEOUT) + SetLastError(SOCKET_ETIMEDOUT); + else + SetLastError(ERROR_GRACEFUL_DISCONNECT); + + DBUG_RETURN((size_t) -1); + } + + sz= (remain > shared_memory_buffer_length ? shared_memory_buffer_length : + remain); + + int4store(vio->handle_map, (uint32)sz); + pos= vio->handle_map + 4; + memcpy(pos, current_position, sz); + remain-= sz; + current_position+= sz; + if (!SetEvent(vio->event_client_wrote)) + DBUG_RETURN((size_t) -1); + } + length= size; + + DBUG_RETURN(length); +} + + +my_bool vio_is_connected_shared_memory(Vio *vio) +{ + return (WaitForSingleObject(vio->event_conn_closed, 0) != WAIT_OBJECT_0); +} + + +void vio_delete_shared_memory(Vio *vio) +{ + DBUG_ENTER("vio_delete_shared_memory"); + + if (!vio) + DBUG_VOID_RETURN; + + if (vio->inactive == FALSE) + vio->vioshutdown(vio); + + /* + Close all handlers. UnmapViewOfFile and CloseHandle return non-zero + result if they are success. + */ + if (UnmapViewOfFile(vio->handle_map) == 0) + DBUG_PRINT("vio_error", ("UnmapViewOfFile() failed")); + + if (CloseHandle(vio->event_server_wrote) == 0) + DBUG_PRINT("vio_error", ("CloseHandle(vio->esw) failed")); + + if (CloseHandle(vio->event_server_read) == 0) + DBUG_PRINT("vio_error", ("CloseHandle(vio->esr) failed")); + + if (CloseHandle(vio->event_client_wrote) == 0) + DBUG_PRINT("vio_error", ("CloseHandle(vio->ecw) failed")); + + if (CloseHandle(vio->event_client_read) == 0) + DBUG_PRINT("vio_error", ("CloseHandle(vio->ecr) failed")); + + if (CloseHandle(vio->handle_file_map) == 0) + DBUG_PRINT("vio_error", ("CloseHandle(vio->hfm) failed")); + + if (CloseHandle(vio->event_conn_closed) == 0) + DBUG_PRINT("vio_error", ("CloseHandle(vio->ecc) failed")); + + vio_delete(vio); + + DBUG_VOID_RETURN; +} + +/* + When "kill connection xx" is executed on an arbitrary thread it calls + THD::shutdown_active_vio() on the THD referred to by xx. Since the + thread serving the connection xx might be in the middle of a vio_read + or vio_write, we cannot unmap the shared memory here. + + Therefore we here just signal the connection_closed event and give + the thread servicing connection xx a chance to gracefully exit. + All handles are closed and the VIO is cleaned up when vio_delete() is + called and this completes the vio cleanup operation in its entirety. +*/ +int vio_shutdown_shared_memory(Vio * vio) +{ + DBUG_ENTER("vio_shutdown_shared_memory"); + if (vio->inactive == FALSE) + { + /* + Set event_conn_closed for notification of both client and server that + connection is closed + */ + SetEvent(vio->event_conn_closed); + } + + vio->inactive= TRUE; + vio->mysql_socket= MYSQL_INVALID_SOCKET; + + DBUG_RETURN(0); +} + +#endif /* #if !defined(!EMBEDDED_LIBRARY) */ + diff --git a/mysql/vio/viosocket.c b/mysql/vio/viosocket.c new file mode 100644 index 0000000..ee59292 --- /dev/null +++ b/mysql/vio/viosocket.c @@ -0,0 +1,1140 @@ +/* + Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; version 2 of + the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA */ + +/* + Note that we can't have assertion on file descriptors; The reason for + this is that during mysql shutdown, another thread can close a file + we are working on. In this case we should just return read errors from + the file descriptior. +*/ + +#include "vio_priv.h" + +#ifdef FIONREAD_IN_SYS_FILIO +# include +#endif +#ifndef _WIN32 +# include +#endif +#ifdef HAVE_POLL_H +# include +#endif +#ifdef HAVE_SYS_IOCTL_H +# include +#endif + +int vio_errno(Vio *vio MY_ATTRIBUTE((unused))) +{ + /* These transport types are not Winsock based. */ +#ifdef _WIN32 + if (vio->type == VIO_TYPE_NAMEDPIPE || + vio->type == VIO_TYPE_SHARED_MEMORY) + return GetLastError(); +#endif + + /* Mapped to WSAGetLastError() on Win32. */ + return socket_errno; +} + + +/** + Attempt to wait for an I/O event on a socket. + + @param vio VIO object representing a connected socket. + @param event The type of I/O event (read or write) to wait for. + + @return Return value is -1 on failure, 0 on success. +*/ + +int vio_socket_io_wait(Vio *vio, enum enum_vio_io_event event) +{ + int timeout, ret; + + DBUG_ASSERT(event == VIO_IO_EVENT_READ || event == VIO_IO_EVENT_WRITE); + + /* Choose an appropriate timeout. */ + if (event == VIO_IO_EVENT_READ) + timeout= vio->read_timeout; + else + timeout= vio->write_timeout; + + /* Wait for input data to become available. */ + switch (vio_io_wait(vio, event, timeout)) + { + case -1: + /* Upon failure, vio_read/write() shall return -1. */ + ret= -1; + break; + case 0: + /* The wait timed out. */ + ret= -1; + break; + default: + /* A positive value indicates an I/O event. */ + ret= 0; + break; + } + + return ret; +} + + +/* + Define a stub MSG_DONTWAIT if unavailable. In this case, fcntl + (or a equivalent) is used to enable non-blocking operations. + The flag must be supported in both send and recv operations. +*/ +#if defined(__linux__) +#define VIO_USE_DONTWAIT 1 +#define VIO_DONTWAIT MSG_DONTWAIT +#else +#define VIO_DONTWAIT 0 +#endif + + +size_t vio_read(Vio *vio, uchar *buf, size_t size) +{ + ssize_t ret; + int flags= 0; + DBUG_ENTER("vio_read"); + + /* Ensure nobody uses vio_read_buff and vio_read simultaneously. */ + DBUG_ASSERT(vio->read_end == vio->read_pos); + + /* If timeout is enabled, do not block if data is unavailable. */ + if (vio->read_timeout >= 0) + flags= VIO_DONTWAIT; + + while ((ret= mysql_socket_recv(vio->mysql_socket, (SOCKBUF_T *)buf, size, flags)) == -1) + { + int error= socket_errno; + + /* The operation would block? */ + if (error != SOCKET_EAGAIN && error != SOCKET_EWOULDBLOCK) + break; + + /* Wait for input data to become available. */ + if ((ret= vio_socket_io_wait(vio, VIO_IO_EVENT_READ))) + break; + } + + DBUG_RETURN(ret); +} + + +/* + Buffered read: if average read size is small it may + reduce number of syscalls. +*/ + +size_t vio_read_buff(Vio *vio, uchar* buf, size_t size) +{ + size_t rc; +#define VIO_UNBUFFERED_READ_MIN_SIZE 2048 + DBUG_ENTER("vio_read_buff"); + DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", + mysql_socket_getfd(vio->mysql_socket), (long)buf, (uint)size)); + + if (vio->read_pos < vio->read_end) + { + rc= MY_MIN((size_t) (vio->read_end - vio->read_pos), size); + memcpy(buf, vio->read_pos, rc); + vio->read_pos+= rc; + /* + Do not try to read from the socket now even if rc < size: + vio_read can return -1 due to an error or non-blocking mode, and + the safest way to handle it is to move to a separate branch. + */ + } + else if (size < VIO_UNBUFFERED_READ_MIN_SIZE) + { + rc= vio_read(vio, (uchar*) vio->read_buffer, VIO_READ_BUFFER_SIZE); + if (rc != 0 && rc != (size_t) -1) + { + if (rc > size) + { + vio->read_pos= vio->read_buffer + size; + vio->read_end= vio->read_buffer + rc; + rc= size; + } + memcpy(buf, vio->read_buffer, rc); + } + } + else + rc= vio_read(vio, buf, size); + DBUG_RETURN(rc); +#undef VIO_UNBUFFERED_READ_MIN_SIZE +} + + +my_bool vio_buff_has_data(Vio *vio) +{ + return (vio->read_pos != vio->read_end); +} + + +size_t vio_write(Vio *vio, const uchar* buf, size_t size) +{ + ssize_t ret; + int flags= 0; + DBUG_ENTER("vio_write"); + + /* If timeout is enabled, do not block. */ + if (vio->write_timeout >= 0) + flags= VIO_DONTWAIT; + + while ((ret= mysql_socket_send(vio->mysql_socket, (SOCKBUF_T *)buf, size, flags)) == -1) + { + int error= socket_errno; + + /* The operation would block? */ + if (error != SOCKET_EAGAIN && error != SOCKET_EWOULDBLOCK) + break; + + /* Wait for the output buffer to become writable.*/ + if ((ret= vio_socket_io_wait(vio, VIO_IO_EVENT_WRITE))) + break; + } + + DBUG_RETURN(ret); +} + +//WL#4896: Not covered +static int vio_set_blocking(Vio *vio, my_bool status) +{ + DBUG_ENTER("vio_set_blocking"); + +#ifdef _WIN32 + DBUG_ASSERT(vio->type != VIO_TYPE_NAMEDPIPE); + DBUG_ASSERT(vio->type != VIO_TYPE_SHARED_MEMORY); + { + int ret; + u_long arg= status ? 0 : 1; + ret= ioctlsocket(mysql_socket_getfd(vio->mysql_socket), FIONBIO, &arg); + DBUG_RETURN(ret); + } +#else + { + int flags; + + if ((flags= fcntl(mysql_socket_getfd(vio->mysql_socket), F_GETFL, NULL)) < 0) + DBUG_RETURN(-1); + + /* + Always set/clear the flag to avoid inheritance issues. This is + a issue mainly on Mac OS X Tiger (version 10.4) where although + the O_NONBLOCK flag is inherited from the parent socket, the + actual non-blocking behavior is not inherited. + */ + if (status) + flags&= ~O_NONBLOCK; + else + flags|= O_NONBLOCK; + + if (fcntl(mysql_socket_getfd(vio->mysql_socket), F_SETFL, flags) == -1) + DBUG_RETURN(-1); + } +#endif + + DBUG_RETURN(0); +} + + +int vio_socket_timeout(Vio *vio, + uint which MY_ATTRIBUTE((unused)), + my_bool old_mode MY_ATTRIBUTE((unused))) +{ + int ret= 0; + DBUG_ENTER("vio_socket_timeout"); + +#if defined(_WIN32) + { + int optname; + DWORD timeout= 0; + const char *optval= (const char *) &timeout; + + /* + The default socket timeout value is zero, which means an infinite + timeout. Values less than 500 milliseconds are interpreted to be of + 500 milliseconds. Hence, the VIO behavior for zero timeout, which is + intended to cause the send or receive operation to fail immediately + if no data is available, is not supported on WIN32 and neither is + necessary as it's not possible to set the VIO timeout value to zero. + + Assert that the VIO timeout is either positive or set to infinite. + */ + DBUG_ASSERT(which || vio->read_timeout); + DBUG_ASSERT(!which || vio->write_timeout); + + if (which) + { + optname= SO_SNDTIMEO; + if (vio->write_timeout > 0) + timeout= vio->write_timeout; + } + else + { + optname= SO_RCVTIMEO; + if (vio->read_timeout > 0) + timeout= vio->read_timeout; + } + + ret= mysql_socket_setsockopt(vio->mysql_socket, SOL_SOCKET, optname, + optval, sizeof(timeout)); + } +#else + /* + The MSG_DONTWAIT trick is not used with SSL sockets as the send and + receive I/O operations are wrapped through SSL-specific functions + (SSL_read and SSL_write) which are not equivalent to the standard + recv(2) and send(2) used in vio_read() and vio_write(). Hence, the + socket blocking mode is changed and vio_io_wait() is used to wait + for I/O or timeout. + */ +#ifdef VIO_USE_DONTWAIT + if (vio->type == VIO_TYPE_SSL) +#endif + { + /* Deduce what should be the new blocking mode of the socket. */ + my_bool new_mode= vio->write_timeout < 0 && vio->read_timeout < 0; + + /* If necessary, update the blocking mode. */ + if (new_mode != old_mode) + ret= vio_set_blocking(vio, new_mode); + } +#endif + + DBUG_RETURN(ret); +} + + +int vio_fastsend(Vio * vio MY_ATTRIBUTE((unused))) +{ + int r=0; + DBUG_ENTER("vio_fastsend"); + +#if defined(IPTOS_THROUGHPUT) + { + int tos = IPTOS_THROUGHPUT; + r= mysql_socket_setsockopt(vio->mysql_socket, IPPROTO_IP, IP_TOS, + (void *)&tos, sizeof(tos)); + } +#endif /* IPTOS_THROUGHPUT */ + if (!r) + { +#ifdef _WIN32 + BOOL nodelay= 1; +#else + int nodelay = 1; +#endif + + r= mysql_socket_setsockopt(vio->mysql_socket, IPPROTO_TCP, TCP_NODELAY, + IF_WIN((const char*), (void*)) &nodelay, + sizeof(nodelay)); + + } + if (r) + { + DBUG_PRINT("warning", ("Couldn't set socket option for fast send")); + r= -1; + } + DBUG_PRINT("exit", ("%d", r)); + DBUG_RETURN(r); +} + +int vio_keepalive(Vio* vio, my_bool set_keep_alive) +{ + int r=0; + uint opt = 0; + DBUG_ENTER("vio_keepalive"); + DBUG_PRINT("enter", ("sd: %d set_keep_alive: %d", + mysql_socket_getfd(vio->mysql_socket), (int)set_keep_alive)); + if (vio->type != VIO_TYPE_NAMEDPIPE) + { + if (set_keep_alive) + opt = 1; + r = mysql_socket_setsockopt(vio->mysql_socket, SOL_SOCKET, SO_KEEPALIVE, + (char *)&opt, sizeof(opt)); + } + DBUG_RETURN(r); +} + + +/** + Indicate whether a I/O operation must be retried later. + + @param vio A VIO object + + @return Whether a I/O operation should be deferred. + @retval TRUE Temporary failure, retry operation. + @retval FALSE Indeterminate failure. +*/ + +my_bool +vio_should_retry(Vio *vio) +{ + return (vio_errno(vio) == SOCKET_EINTR); +} + + +/** + Indicate whether a I/O operation timed out. + + @param vio A VIO object + + @return Whether a I/O operation timed out. + @retval TRUE Operation timed out. + @retval FALSE Not a timeout failure. +*/ + +my_bool +vio_was_timeout(Vio *vio) +{ + return (vio_errno(vio) == SOCKET_ETIMEDOUT); +} + + +int vio_shutdown(Vio * vio) +{ + int r=0; + DBUG_ENTER("vio_shutdown"); + + if (vio->inactive == FALSE) + { + DBUG_ASSERT(vio->type == VIO_TYPE_TCPIP || + vio->type == VIO_TYPE_SOCKET || + vio->type == VIO_TYPE_SSL); + + DBUG_ASSERT(mysql_socket_getfd(vio->mysql_socket) >= 0); + if (mysql_socket_shutdown(vio->mysql_socket, SHUT_RDWR)) + r= -1; + if (mysql_socket_close(vio->mysql_socket)) + r= -1; + } + if (r) + { + DBUG_PRINT("vio_error", ("close() failed, error: %d",socket_errno)); + /* FIXME: error handling (not critical for MySQL) */ + } + vio->inactive= TRUE; + vio->mysql_socket= MYSQL_INVALID_SOCKET; + DBUG_RETURN(r); +} + + +const char *vio_description(Vio * vio) +{ + if (!vio->desc[0]) + { + my_snprintf(vio->desc, VIO_DESCRIPTION_SIZE, + (vio->type == VIO_TYPE_SOCKET ? "socket (%d)" : "TCP/IP (%d)"), + mysql_socket_getfd(vio->mysql_socket)); + } + return vio->desc; +} + +enum enum_vio_type vio_type(Vio* vio) +{ + return vio->type; +} + +my_socket vio_fd(Vio* vio) +{ + return mysql_socket_getfd(vio->mysql_socket); +} + +/** + Convert a sock-address (AF_INET or AF_INET6) into the "normalized" form, + which is the IPv4 form for IPv4-mapped or IPv4-compatible IPv6 addresses. + + @note Background: when IPv4 and IPv6 are used simultaneously, IPv4 + addresses may be written in a form of IPv4-mapped or IPv4-compatible IPv6 + addresses. That means, one address (a.b.c.d) can be written in three forms: + - IPv4: a.b.c.d; + - IPv4-compatible IPv6: ::a.b.c.d; + - IPv4-mapped IPv4: ::ffff:a.b.c.d; + + Having three forms of one address makes it a little difficult to compare + addresses with each other (the IPv4-compatible IPv6-address of foo.bar + will be different from the IPv4-mapped IPv6-address of foo.bar). + + @note This function can be made public when it's needed. + + @param src [in] source IP address (AF_INET or AF_INET6). + @param src_length [in] length of the src. + @param dst [out] a buffer to store normalized IP address + (sockaddr_storage). + @param dst_length [out] actual length of the normalized IP address. +*/ +static void vio_get_normalized_ip(const struct sockaddr *src, + size_t src_length, + struct sockaddr *dst, + size_t *dst_length) +{ + switch (src->sa_family) { + case AF_INET: + memcpy(dst, src, src_length); + *dst_length= src_length; + break; + +#ifdef HAVE_IPV6 + case AF_INET6: + { + const struct sockaddr_in6 *src_addr6= (const struct sockaddr_in6 *) src; + const struct in6_addr *src_ip6= &(src_addr6->sin6_addr); + const uint32 *src_ip6_int32= (uint32 *) src_ip6->s6_addr; + + if (IN6_IS_ADDR_V4MAPPED(src_ip6) || IN6_IS_ADDR_V4COMPAT(src_ip6)) + { + struct sockaddr_in *dst_ip4= (struct sockaddr_in *) dst; + + /* + This is an IPv4-mapped or IPv4-compatible IPv6 address. It should + be converted to the IPv4 form. + */ + + *dst_length= sizeof (struct sockaddr_in); + + memset(dst_ip4, 0, *dst_length); + dst_ip4->sin_family= AF_INET; + dst_ip4->sin_port= src_addr6->sin6_port; + + /* + In an IPv4 mapped or compatible address, the last 32 bits represent + the IPv4 address. The byte orders for IPv6 and IPv4 addresses are + the same, so a simple copy is possible. + */ + dst_ip4->sin_addr.s_addr= src_ip6_int32[3]; + } + else + { + /* This is a "native" IPv6 address. */ + + memcpy(dst, src, src_length); + *dst_length= src_length; + } + + break; + } +#endif /* HAVE_IPV6 */ + } +} + + +/** + Return the normalized IP address string for a sock-address. + + The idea is to return an IPv4-address for an IPv4-mapped and + IPv4-compatible IPv6 address. + + The function writes the normalized IP address to the given buffer. + The buffer should have enough space, otherwise error flag is returned. + The system constant INET6_ADDRSTRLEN can be used to reserve buffers of + the right size. + + @param addr [in] sockaddr object (AF_INET or AF_INET6). + @param addr_length [in] length of the addr. + @param ip_string [out] buffer to write normalized IP address. + @param ip_string_size [in] size of the ip_string. + + @return Error status. + @retval TRUE in case of error (the ip_string buffer is not enough). + @retval FALSE on success. +*/ + +my_bool vio_get_normalized_ip_string(const struct sockaddr *addr, + size_t addr_length, + char *ip_string, + size_t ip_string_size) +{ + struct sockaddr_storage norm_addr_storage; + struct sockaddr *norm_addr= (struct sockaddr *) &norm_addr_storage; + size_t norm_addr_length; + int err_code; + + vio_get_normalized_ip(addr, addr_length, norm_addr, &norm_addr_length); + + err_code= vio_getnameinfo(norm_addr, ip_string, ip_string_size, NULL, 0, + NI_NUMERICHOST); + + if (!err_code) + return FALSE; + + DBUG_PRINT("error", ("getnameinfo() failed with %d (%s).", + (int) err_code, + (const char *) gai_strerror(err_code))); + return TRUE; +} + + +/** + Return IP address and port of a VIO client socket. + + The function returns an IPv4 address if IPv6 support is disabled. + + The function returns an IPv4 address if the client socket is associated + with an IPv4-compatible or IPv4-mapped IPv6 address. Otherwise, the native + IPv6 address is returned. +*/ + +my_bool vio_peer_addr(Vio *vio, char *ip_buffer, uint16 *port, + size_t ip_buffer_size) +{ + DBUG_ENTER("vio_peer_addr"); + DBUG_PRINT("enter", ("Client socked fd: %d", + (int)mysql_socket_getfd(vio->mysql_socket))); + + if (vio->localhost) + { + /* + Initialize vio->remote and vio->addLen. Set vio->remote to IPv4 loopback + address. + */ + struct in_addr *ip4= &((struct sockaddr_in *) &(vio->remote))->sin_addr; + + vio->remote.ss_family= AF_INET; + vio->addrLen= sizeof (struct sockaddr_in); + + ip4->s_addr= htonl(INADDR_LOOPBACK); + + /* Initialize ip_buffer and port. */ + + my_stpcpy(ip_buffer, "127.0.0.1"); + *port= 0; + } + else + { + int err_code; + char port_buffer[NI_MAXSERV]; + + struct sockaddr_storage addr_storage; + struct sockaddr *addr= (struct sockaddr *) &addr_storage; + socket_len_t addr_length= sizeof (addr_storage); + + /* Get sockaddr by socked fd. */ + + err_code= mysql_socket_getpeername(vio->mysql_socket, addr, &addr_length); + + if (err_code) + { + DBUG_PRINT("exit", ("getpeername() gave error: %d", socket_errno)); + DBUG_RETURN(TRUE); + } + + /* Normalize IP address. */ + + vio_get_normalized_ip(addr, addr_length, + (struct sockaddr *) &vio->remote, &vio->addrLen); + + /* Get IP address & port number. */ + + err_code= vio_getnameinfo((struct sockaddr *) &vio->remote, + ip_buffer, ip_buffer_size, + port_buffer, NI_MAXSERV, + NI_NUMERICHOST | NI_NUMERICSERV); + + if (err_code) + { + DBUG_PRINT("exit", ("getnameinfo() gave error: %s", + gai_strerror(err_code))); + DBUG_RETURN(TRUE); + } + + *port= (uint16) strtol(port_buffer, NULL, 10); + } + + DBUG_PRINT("exit", ("Client IP address: %s; port: %d", + (const char *) ip_buffer, + (int) *port)); + DBUG_RETURN(FALSE); +} + + +/** + Retrieve the amount of data that can be read from a socket. + + @param vio A VIO object. + @param bytes[out] The amount of bytes available. + + @retval FALSE Success. + @retval TRUE Failure. +*/ +// WL#4896: Not covered +static my_bool socket_peek_read(Vio *vio, uint *bytes) +{ + my_socket sd= mysql_socket_getfd(vio->mysql_socket); +#if defined(_WIN32) + int len; + if (ioctlsocket(sd, FIONREAD, &len)) + return TRUE; + *bytes= len; + return FALSE; +#elif defined(FIONREAD_IN_SYS_IOCTL) || defined(FIONREAD_IN_SYS_FILIO) + int len; + if (ioctl(sd, FIONREAD, &len) < 0) + return TRUE; + *bytes= len; + return FALSE; +#else + char buf[1024]; + ssize_t res= recv(sd, &buf, sizeof(buf), MSG_PEEK); + if (res < 0) + return TRUE; + *bytes= res; + return FALSE; +#endif +} + +#ifndef _WIN32 + +/** + Set of event flags grouped by operations. +*/ + +/* + Linux specific flag used to detect connection shutdown. The flag is + also used for half-closed notification, which here is interpreted as + if there is data available to be read from the socket. +*/ +#ifndef POLLRDHUP +#define POLLRDHUP 0 +#endif + +/* Data may be read. */ +#define MY_POLL_SET_IN (POLLIN | POLLPRI) +/* Data may be written. */ +#define MY_POLL_SET_OUT (POLLOUT) +/* An error or hangup. */ +#define MY_POLL_SET_ERR (POLLERR | POLLHUP | POLLNVAL) + +#endif + +/** + Wait for an I/O event on a VIO socket. + + @param vio VIO object representing a connected socket. + @param event The type of I/O event to wait for. + @param timeout Interval (in milliseconds) to wait for an I/O event. + A negative timeout value means an infinite timeout. + + @remark sock_errno is set to SOCKET_ETIMEDOUT on timeout. + + @return A three-state value which indicates the operation status. + @retval -1 Failure, socket_errno indicates the error. + @retval 0 The wait has timed out. + @retval 1 The requested I/O event has occurred. +*/ + +#if !defined(_WIN32) && !defined(__APPLE__) +int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout) +{ + int ret; +#ifndef DBUG_OFF + short revents= 0; +#endif + struct pollfd pfd; + my_socket sd= mysql_socket_getfd(vio->mysql_socket); + MYSQL_SOCKET_WAIT_VARIABLES(locker, state) /* no ';' */ + DBUG_ENTER("vio_io_wait"); + + memset(&pfd, 0, sizeof(pfd)); + + pfd.fd= sd; + + /* + Set the poll bitmask describing the type of events. + The error flags are only valid in the revents bitmask. + */ + switch (event) + { + case VIO_IO_EVENT_READ: + pfd.events= MY_POLL_SET_IN; +#ifndef DBUG_OFF + revents= MY_POLL_SET_IN | MY_POLL_SET_ERR | POLLRDHUP; +#endif + break; + case VIO_IO_EVENT_WRITE: + case VIO_IO_EVENT_CONNECT: + pfd.events= MY_POLL_SET_OUT; +#ifndef DBUG_OFF + revents= MY_POLL_SET_OUT | MY_POLL_SET_ERR; +#endif + break; + } + + MYSQL_START_SOCKET_WAIT(locker, &state, vio->mysql_socket, PSI_SOCKET_SELECT, 0); + + /* + Wait for the I/O event and return early in case of + error or timeout. + */ + switch ((ret= poll(&pfd, 1, timeout))) + { + case -1: + /* On error, -1 is returned. */ + break; + case 0: + /* + Set errno to indicate a timeout error. + (This is not compiled in on WIN32.) + */ + errno= SOCKET_ETIMEDOUT; + break; + default: + /* Ensure that the requested I/O event has completed. */ + DBUG_ASSERT(pfd.revents & revents); + break; + } + + MYSQL_END_SOCKET_WAIT(locker, 0); + DBUG_RETURN(ret); +} + +#else + +int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout) +{ + int ret; + struct timeval tm; + my_socket fd; + fd_set readfds, writefds, exceptfds; + MYSQL_SOCKET_WAIT_VARIABLES(locker, state) /* no ';' */ + DBUG_ENTER("vio_io_wait"); + + fd= mysql_socket_getfd(vio->mysql_socket); + + if (fd == INVALID_SOCKET) + DBUG_RETURN(-1); + +#ifdef __APPLE__ + if (fd >= FD_SETSIZE) + DBUG_RETURN(-1); +#endif + + /* Convert the timeout, in milliseconds, to seconds and microseconds. */ + if (timeout >= 0) + { + tm.tv_sec= timeout / 1000; + tm.tv_usec= (timeout % 1000) * 1000; + } + + FD_ZERO(&readfds); + FD_ZERO(&writefds); + FD_ZERO(&exceptfds); + + /* Always receive notification of exceptions. */ + FD_SET(fd, &exceptfds); + + switch (event) + { + case VIO_IO_EVENT_READ: + /* Readiness for reading. */ + FD_SET(fd, &readfds); + break; + case VIO_IO_EVENT_WRITE: + case VIO_IO_EVENT_CONNECT: + /* Readiness for writing. */ + FD_SET(fd, &writefds); + break; + } + + MYSQL_START_SOCKET_WAIT(locker, &state, vio->mysql_socket, PSI_SOCKET_SELECT, 0); + + /* The first argument is ignored on Windows. */ + ret= select((int)(fd + 1), &readfds, &writefds, &exceptfds, + (timeout >= 0) ? &tm : NULL); + + MYSQL_END_SOCKET_WAIT(locker, 0); + + /* Set error code to indicate a timeout error. */ + if (ret == 0) +#if defined(_WIN32) + WSASetLastError(SOCKET_ETIMEDOUT); +#elif defined(__APPLE__) + errno= SOCKET_ETIMEDOUT; +#else +#error Oops...Wrong OS +#endif + + /* Error or timeout? */ + if (ret <= 0) + DBUG_RETURN(ret); + + /* The requested I/O event is ready? */ + switch (event) + { + case VIO_IO_EVENT_READ: + ret= MY_TEST(FD_ISSET(fd, &readfds)); + break; + case VIO_IO_EVENT_WRITE: + case VIO_IO_EVENT_CONNECT: + ret= MY_TEST(FD_ISSET(fd, &writefds)); + break; + } + + /* Error conditions pending? */ + ret|= MY_TEST(FD_ISSET(fd, &exceptfds)); + + /* Not a timeout, ensure that a condition was met. */ + DBUG_ASSERT(ret); + + DBUG_RETURN(ret); +} + +#endif /* _WIN32 */ + + +/** + Connect to a peer address. + + @param vio A VIO object. + @param addr Socket address containing the peer address. + @param len Length of socket address. + @param timeout Interval (in milliseconds) to wait until a + connection is established. + + @retval FALSE A connection was successfully established. + @retval TRUE A fatal error. See socket_errno. +*/ + +my_bool +vio_socket_connect(Vio *vio, struct sockaddr *addr, socklen_t len, int timeout) +{ + int ret, wait; + DBUG_ENTER("vio_socket_connect"); + + /* Only for socket-based transport types. */ + DBUG_ASSERT(vio->type == VIO_TYPE_SOCKET || vio->type == VIO_TYPE_TCPIP); + + /* If timeout is not infinite, set socket to non-blocking mode. */ + if ((timeout > -1) && vio_set_blocking(vio, FALSE)) + DBUG_RETURN(TRUE); + + /* Initiate the connection. */ + ret= mysql_socket_connect(vio->mysql_socket, addr, len); + +#ifdef _WIN32 + wait= (ret == SOCKET_ERROR) && + (WSAGetLastError() == WSAEINPROGRESS || + WSAGetLastError() == WSAEWOULDBLOCK); +#else + wait= (ret == -1) && (errno == EINPROGRESS || errno == EALREADY); +#endif + + /* + The connection is in progress. The vio_io_wait() call can be used + to wait up to a specified period of time for the connection to + succeed. + + If vio_io_wait() returns 0 (after waiting however many seconds), + the socket never became writable (host is probably unreachable.) + Otherwise, if vio_io_wait() returns 1, then one of two conditions + exist: + + 1. An error occurred. Use getsockopt() to check for this. + 2. The connection was set up successfully: getsockopt() will + return 0 as an error. + */ + if (wait && (vio_io_wait(vio, VIO_IO_EVENT_CONNECT, timeout) == 1)) + { + int error; + IF_WIN(int, socklen_t) optlen= sizeof(error); + IF_WIN(char, void) *optval= (IF_WIN(char, void) *) &error; + + /* + At this point, we know that something happened on the socket. + But this does not means that everything is alright. The connect + might have failed. We need to retrieve the error code from the + socket layer. We must return success only if we are sure that + it was really a success. Otherwise we might prevent the caller + from trying another address to connect to. + */ + if (!(ret= mysql_socket_getsockopt(vio->mysql_socket, SOL_SOCKET, SO_ERROR, optval, &optlen))) + { +#ifdef _WIN32 + WSASetLastError(error); +#else + errno= error; +#endif + ret= MY_TEST(error); + } + } + + /* If necessary, restore the blocking mode, but only if connect succeeded. */ + if ((timeout > -1) && (ret == 0)) + { + if (vio_set_blocking(vio, TRUE)) + DBUG_RETURN(TRUE); + } + + DBUG_RETURN(MY_TEST(ret)); +} + + +/** + Determine if the endpoint of a connection is still available. + + @remark The socket is assumed to be disconnected if an EOF + condition is encountered. + + @param vio The VIO object. + + @retval TRUE EOF condition not found. + @retval FALSE EOF condition is signaled. +*/ + +my_bool vio_is_connected(Vio *vio) +{ + uint bytes= 0; + DBUG_ENTER("vio_is_connected"); + + /* + The first step of detecting an EOF condition is verifying + whether there is data to read. Data in this case would be + the EOF. An exceptional condition event and/or errors are + interpreted as if there is data to read. + */ + if (!vio_io_wait(vio, VIO_IO_EVENT_READ, 0)) + DBUG_RETURN(TRUE); + + /* + The second step is read() or recv() from the socket returning + 0 (EOF). Unfortunately, it's not possible to call read directly + as we could inadvertently read meaningful connection data. + Simulate a read by retrieving the number of bytes available to + read -- 0 meaning EOF. In the presence of unrecoverable errors, + the socket is assumed to be disconnected. + */ + while (socket_peek_read(vio, &bytes)) + { + if (socket_errno != SOCKET_EINTR) + DBUG_RETURN(FALSE); + } + +#ifdef HAVE_OPENSSL + /* There might be buffered data at the SSL layer. */ + if (!bytes && vio->type == VIO_TYPE_SSL) + bytes= SSL_pending((SSL*) vio->ssl_arg); +#endif + + DBUG_RETURN(bytes ? TRUE : FALSE); +} + +#ifndef DBUG_OFF + +/** + Number of bytes in the read or socket buffer + + @remark An EOF condition might count as one readable byte. + + @return number of bytes in one of the buffers or < 0 if error. +*/ + +ssize_t vio_pending(Vio *vio) +{ + uint bytes= 0; + + /* Data pending on the read buffer. */ + if (vio->read_pos < vio->read_end) + return vio->read_end - vio->read_pos; + + /* Skip non-socket based transport types. */ + if (vio->type == VIO_TYPE_TCPIP || vio->type == VIO_TYPE_SOCKET) + { + /* Obtain number of readable bytes in the socket buffer. */ + if (socket_peek_read(vio, &bytes)) + return -1; + } + + /* + SSL not checked due to a yaSSL bug in SSL_pending that + causes it to attempt to read from the socket. + */ + + return (ssize_t) bytes; +} + +#endif + +/** + Checks if the error code, returned by vio_getnameinfo(), means it was the + "No-name" error. + + Windows-specific note: getnameinfo() returns WSANO_DATA instead of + EAI_NODATA or EAI_NONAME when no reverse mapping is available at the host + (i.e. Windows can't get hostname by IP-address). This error should be + treated as EAI_NONAME. + + @return if the error code is actually EAI_NONAME. + @retval true if the error code is EAI_NONAME. + @retval false otherwise. +*/ + +my_bool vio_is_no_name_error(int err_code) +{ +#ifdef _WIN32 + + return err_code == WSANO_DATA || err_code == EAI_NONAME; + +#else + + return err_code == EAI_NONAME; + +#endif +} + + +/** + This is a wrapper for the system getnameinfo(), because different OS + differ in the getnameinfo() implementation: + - Solaris 10 requires that the 2nd argument (salen) must match the + actual size of the struct sockaddr_storage passed to it; + - Mac OS X has sockaddr_in::sin_len and sockaddr_in6::sin6_len and + requires them to be filled. +*/ + +int vio_getnameinfo(const struct sockaddr *sa, + char *hostname, size_t hostname_size, + char *port, size_t port_size, + int flags) +{ + int sa_length= 0; + + switch (sa->sa_family) { + case AF_INET: + sa_length= sizeof (struct sockaddr_in); +#ifdef HAVE_SOCKADDR_IN_SIN_LEN + ((struct sockaddr_in *) sa)->sin_len= sa_length; +#endif /* HAVE_SOCKADDR_IN_SIN_LEN */ + break; + +#ifdef HAVE_IPV6 + case AF_INET6: + sa_length= sizeof (struct sockaddr_in6); +# ifdef HAVE_SOCKADDR_IN6_SIN6_LEN + ((struct sockaddr_in6 *) sa)->sin6_len= sa_length; +# endif /* HAVE_SOCKADDR_IN6_SIN6_LEN */ + break; +#endif /* HAVE_IPV6 */ + } + + return getnameinfo(sa, sa_length, + hostname, hostname_size, + port, port_size, + flags); +} diff --git a/mysql/vio/viossl.c b/mysql/vio/viossl.c new file mode 100644 index 0000000..5622cb7 --- /dev/null +++ b/mysql/vio/viossl.c @@ -0,0 +1,511 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + Note that we can't have assertion on file descriptors; The reason for + this is that during mysql shutdown, another thread can close a file + we are working on. In this case we should just return read errors from + the file descriptior. +*/ + +#include "vio_priv.h" + +#ifdef HAVE_OPENSSL + +#ifndef DBUG_OFF + +static void +report_errors(SSL* ssl) +{ + unsigned long l; + const char *file; + const char *data; + int line, flags; + char buf[512]; + + DBUG_ENTER("report_errors"); + + while ((l= ERR_get_error_line_data(&file,&line,&data,&flags))) + { + DBUG_PRINT("error", ("OpenSSL: %s:%s:%d:%s\n", ERR_error_string(l,buf), + file,line,(flags&ERR_TXT_STRING)?data:"")) ; + } + + if (ssl) + DBUG_PRINT("error", ("error: %s", + ERR_error_string(SSL_get_error(ssl, l), buf))); + + DBUG_PRINT("info", ("socket_errno: %d", socket_errno)); + DBUG_VOID_RETURN; +} + +#endif + + +/** + Obtain the equivalent system error status for the last SSL I/O operation. + + @param ssl_error The result code of the failed TLS/SSL I/O operation. +*/ + +static void ssl_set_sys_error(int ssl_error) +{ + int error= 0; + + switch (ssl_error) + { + case SSL_ERROR_ZERO_RETURN: + error= SOCKET_ECONNRESET; + break; + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_WRITE: +#ifdef SSL_ERROR_WANT_CONNECT + case SSL_ERROR_WANT_CONNECT: +#endif +#ifdef SSL_ERROR_WANT_ACCEPT + case SSL_ERROR_WANT_ACCEPT: +#endif + error= SOCKET_EWOULDBLOCK; + break; + case SSL_ERROR_SSL: + /* Protocol error. */ +#ifdef EPROTO + error= EPROTO; +#else + error= SOCKET_ECONNRESET; +#endif + break; + case SSL_ERROR_SYSCALL: + case SSL_ERROR_NONE: + default: + break; + }; + + /* Set error status to a equivalent of the SSL error. */ + if (error) + { +#ifdef _WIN32 + WSASetLastError(error); +#else + errno= error; +#endif + } +} + + +/** + This function does two things: + - it indicates whether a SSL I/O operation must be retried later; + - it clears the OpenSSL error queue, thus the next OpenSSL-operation can be + performed even after failed OpenSSL-call. + + @param vio VIO object representing a SSL connection. + @param ret Value returned by a SSL I/O function. + @param event[out] The type of I/O event to wait/retry. + @param ssl_errno_holder[out] The SSL error code. + + @return Whether a SSL I/O operation should be deferred. + @retval TRUE Temporary failure, retry operation. + @retval FALSE Indeterminate failure. +*/ + +static my_bool ssl_should_retry(Vio *vio, int ret, + enum enum_vio_io_event *event, + unsigned long *ssl_errno_holder) +{ + int ssl_error; + SSL *ssl= vio->ssl_arg; + my_bool should_retry= TRUE; + + /* Retrieve the result for the SSL I/O operation. */ + ssl_error= SSL_get_error(ssl, ret); + + /* Retrieve the result for the SSL I/O operation. */ + switch (ssl_error) + { + case SSL_ERROR_WANT_READ: + *event= VIO_IO_EVENT_READ; + break; + case SSL_ERROR_WANT_WRITE: + *event= VIO_IO_EVENT_WRITE; + break; + default: +#ifndef DBUG_OFF /* Debug build */ + /* Note: the OpenSSL error queue gets cleared in report_errors(). */ + report_errors(ssl); +#else /* Release build */ +# ifndef HAVE_YASSL + /* OpenSSL: clear the error queue. */ + ERR_clear_error(); +# endif +#endif + should_retry= FALSE; + ssl_set_sys_error(ssl_error); + break; + } + + *ssl_errno_holder= ssl_error; + + return should_retry; +} + + +size_t vio_ssl_read(Vio *vio, uchar *buf, size_t size) +{ + int ret; + SSL *ssl= vio->ssl_arg; + unsigned long ssl_errno_not_used; + + DBUG_ENTER("vio_ssl_read"); + + while (1) + { + enum enum_vio_io_event event; + +#ifndef HAVE_YASSL + /* + OpenSSL: check that the SSL thread's error queue is cleared. Otherwise + SSL_read() returns an error from the error queue, when SSL_read() failed + because it would block. + */ + DBUG_ASSERT(ERR_peek_error() == 0); +#endif + + ret= SSL_read(ssl, buf, (int)size); + + if (ret >= 0) + break; + + /* Process the SSL I/O error. */ + if (!ssl_should_retry(vio, ret, &event, &ssl_errno_not_used)) + break; + + /* Attempt to wait for an I/O event. */ + if (vio_socket_io_wait(vio, event)) + break; + } + + DBUG_RETURN(ret < 0 ? -1 : ret); +} + + +size_t vio_ssl_write(Vio *vio, const uchar *buf, size_t size) +{ + int ret; + SSL *ssl= vio->ssl_arg; + unsigned long ssl_errno_not_used; + + DBUG_ENTER("vio_ssl_write"); + + while (1) + { + enum enum_vio_io_event event; + +#ifndef HAVE_YASSL + /* + OpenSSL: check that the SSL thread's error queue is cleared. Otherwise + SSL_write() returns an error from the error queue, when SSL_write() failed + because it would block. + */ + DBUG_ASSERT(ERR_peek_error() == 0); +#endif + + ret= SSL_write(ssl, buf, (int)size); + + if (ret >= 0) + break; + + /* Process the SSL I/O error. */ + if (!ssl_should_retry(vio, ret, &event, &ssl_errno_not_used)) + break; + + /* Attempt to wait for an I/O event. */ + if (vio_socket_io_wait(vio, event)) + break; + } + + DBUG_RETURN(ret < 0 ? -1 : ret); +} + +#ifdef HAVE_YASSL + +/* Emulate a blocking recv() call with vio_read(). */ +static long yassl_recv(void *ptr, void *buf, size_t len) +{ + return (long)vio_read(ptr, buf, len); +} + + +/* Emulate a blocking send() call with vio_write(). */ +static long yassl_send(void *ptr, const void *buf, size_t len) +{ + return (long)vio_write(ptr, buf, len); +} + +#endif + +int vio_ssl_shutdown(Vio *vio) +{ + int r= 0; + SSL *ssl= (SSL*)vio->ssl_arg; + DBUG_ENTER("vio_ssl_shutdown"); + + if (ssl) + { + /* + THE SSL standard says that SSL sockets must send and receive a close_notify + alert on socket shutdown to avoid truncation attacks. However, this can + cause problems since we often hold a lock during shutdown and this IO can + take an unbounded amount of time to complete. Since our packets are self + describing with length, we aren't vunerable to these attacks. Therefore, + we just shutdown by closing the socket (quiet shutdown). + */ + SSL_set_quiet_shutdown(ssl, 1); + + switch ((r= SSL_shutdown(ssl))) { + case 1: + /* Shutdown successful */ + break; + case 0: + /* + Shutdown not yet finished - since the socket is going to + be closed there is no need to call SSL_shutdown() a second + time to wait for the other side to respond + */ + break; + default: /* Shutdown failed */ + DBUG_PRINT("vio_error", ("SSL_shutdown() failed, error: %d", + SSL_get_error(ssl, r))); + break; + } + } + DBUG_RETURN(vio_shutdown(vio)); +} + + +void vio_ssl_delete(Vio *vio) +{ + if (!vio) + return; /* It must be safe to delete null pointer */ + + if (vio->inactive == FALSE) + vio_ssl_shutdown(vio); /* Still open, close connection first */ + + if (vio->ssl_arg) + { + SSL_free((SSL*) vio->ssl_arg); + vio->ssl_arg= 0; + } + +#ifndef HAVE_YASSL + ERR_remove_thread_state(0); +#endif + + vio_delete(vio); +} + + +/** SSL handshake handler. */ +typedef int (*ssl_handshake_func_t)(SSL*); + + +/** + Loop and wait until a SSL handshake is completed. + + @param vio VIO object representing a SSL connection. + @param ssl SSL structure for the connection. + @param func SSL handshake handler. + @param ssl_errno_holder[out] The SSL error code. + + @return Return value is 1 on success. +*/ + +static int ssl_handshake_loop(Vio *vio, SSL *ssl, + ssl_handshake_func_t func, + unsigned long *ssl_errno_holder) +{ + int ret; + + vio->ssl_arg= ssl; + + /* Initiate the SSL handshake. */ + while (1) + { + enum enum_vio_io_event event; + +#ifndef HAVE_YASSL + /* + OpenSSL: check that the SSL thread's error queue is cleared. Otherwise + SSL-handshake-function returns an error from the error queue, when the + function failed because it would block. + */ + DBUG_ASSERT(ERR_peek_error() == 0); +#endif + + ret= func(ssl); + + if (ret >= 1) + break; + + /* Process the SSL I/O error. */ + if (!ssl_should_retry(vio, ret, &event, ssl_errno_holder)) + break; + + /* Wait for I/O so that the handshake can proceed. */ + if (vio_socket_io_wait(vio, event)) + break; + } + + vio->ssl_arg= NULL; + + return ret; +} + + +static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout, + ssl_handshake_func_t func, + unsigned long *ssl_errno_holder) +{ + int r; + SSL *ssl; + my_socket sd= mysql_socket_getfd(vio->mysql_socket); + + /* Declared here to make compiler happy */ +#if !defined(HAVE_YASSL) && !defined(DBUG_OFF) + int j, n; +#endif + + DBUG_ENTER("ssl_do"); + DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx", + (long) ptr, sd, (long) ptr->ssl_context)); + + if (!(ssl= SSL_new(ptr->ssl_context))) + { + DBUG_PRINT("error", ("SSL_new failure")); + *ssl_errno_holder= ERR_get_error(); + DBUG_RETURN(1); + } + DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout)); + SSL_clear(ssl); + SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); + SSL_set_fd(ssl, sd); +#if !defined(HAVE_YASSL) && defined(SSL_OP_NO_COMPRESSION) + SSL_set_options(ssl, SSL_OP_NO_COMPRESSION); /* OpenSSL >= 1.0 only */ +#elif OPENSSL_VERSION_NUMBER >= 0x00908000L /* workaround for OpenSSL 0.9.8 */ + sk_SSL_COMP_zero(SSL_COMP_get_compression_methods()); +#endif + +#if !defined(HAVE_YASSL) && !defined(DBUG_OFF) + { + STACK_OF(SSL_COMP) *ssl_comp_methods = NULL; + ssl_comp_methods = SSL_COMP_get_compression_methods(); + n= sk_SSL_COMP_num(ssl_comp_methods); + DBUG_PRINT("info", ("Available compression methods:\n")); + if (n == 0) + DBUG_PRINT("info", ("NONE\n")); + else + for (j = 0; j < n; j++) + { + SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j); + DBUG_PRINT("info", (" %d: %s\n", c->id, c->name)); + } + } +#endif + + /* + Since yaSSL does not support non-blocking send operations, use + special transport functions that properly handles non-blocking + sockets. These functions emulate the behavior of blocking I/O + operations by waiting for I/O to become available. + */ +#ifdef HAVE_YASSL + /* Set first argument of the transport functions. */ + yaSSL_transport_set_ptr(ssl, vio); + /* Set functions to use in order to send and receive data. */ + yaSSL_transport_set_recv_function(ssl, yassl_recv); + yaSSL_transport_set_send_function(ssl, yassl_send); +#endif + + if ((r= ssl_handshake_loop(vio, ssl, func, ssl_errno_holder)) < 1) + { + DBUG_PRINT("error", ("SSL_connect/accept failure")); + SSL_free(ssl); + DBUG_RETURN(1); + } + + /* + Connection succeeded. Install new function handlers, + change type, set sd to the fd used when connecting + and set pointer to the SSL structure + */ + if (vio_reset(vio, VIO_TYPE_SSL, SSL_get_fd(ssl), ssl, 0)) + DBUG_RETURN(1); + +#ifndef DBUG_OFF + { + /* Print some info about the peer */ + X509 *cert; + char buf[512]; + + DBUG_PRINT("info",("SSL connection succeeded")); + DBUG_PRINT("info",("Using cipher: '%s'" , SSL_get_cipher_name(ssl))); + + if ((cert= SSL_get_peer_certificate (ssl))) + { + DBUG_PRINT("info",("Peer certificate:")); + X509_NAME_oneline(X509_get_subject_name(cert), buf, sizeof(buf)); + DBUG_PRINT("info",("\t subject: '%s'", buf)); + X509_NAME_oneline(X509_get_issuer_name(cert), buf, sizeof(buf)); + DBUG_PRINT("info",("\t issuer: '%s'", buf)); + X509_free(cert); + } + else + DBUG_PRINT("info",("Peer does not have certificate.")); + + if (SSL_get_shared_ciphers(ssl, buf, sizeof(buf))) + { + DBUG_PRINT("info",("shared_ciphers: '%s'", buf)); + } + else + DBUG_PRINT("info",("no shared ciphers!")); + } +#endif + + DBUG_RETURN(0); +} + + +int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout, + unsigned long *ssl_errno_holder) +{ + DBUG_ENTER("sslaccept"); + DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_accept, ssl_errno_holder)); +} + + +int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout, + unsigned long *ssl_errno_holder) +{ + DBUG_ENTER("sslconnect"); + DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_connect, ssl_errno_holder)); +} + + +my_bool vio_ssl_has_data(Vio *vio) +{ + return SSL_pending(vio->ssl_arg) > 0 ? TRUE : FALSE; +} + +#endif /* HAVE_OPENSSL */ diff --git a/mysql/vio/viosslfactories.c b/mysql/vio/viosslfactories.c new file mode 100644 index 0000000..da5449a --- /dev/null +++ b/mysql/vio/viosslfactories.c @@ -0,0 +1,729 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "vio_priv.h" + +#ifdef HAVE_OPENSSL + +#define TLS_VERSION_OPTION_SIZE 256 +#define SSL_CIPHER_LIST_SIZE 4096 + +#ifdef HAVE_YASSL +static const char tls_ciphers_list[]="DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:" + "AES128-RMD:DES-CBC3-RMD:DHE-RSA-AES256-RMD:" + "DHE-RSA-AES128-RMD:DHE-RSA-DES-CBC3-RMD:" + "AES256-SHA:RC4-SHA:RC4-MD5:DES-CBC3-SHA:" + "DES-CBC-SHA:EDH-RSA-DES-CBC3-SHA:" + "EDH-RSA-DES-CBC-SHA:AES128-SHA:AES256-RMD"; +static const char tls_cipher_blocked[]= "!aNULL:!eNULL:!EXPORT:!LOW:!MD5:!DES:!RC2:!RC4:!PSK:"; +#else +static const char tls_ciphers_list[]="ECDHE-ECDSA-AES128-GCM-SHA256:" + "ECDHE-ECDSA-AES256-GCM-SHA384:" + "ECDHE-RSA-AES128-GCM-SHA256:" + "ECDHE-RSA-AES256-GCM-SHA384:" + "ECDHE-ECDSA-AES128-SHA256:" + "ECDHE-RSA-AES128-SHA256:" + "ECDHE-ECDSA-AES256-SHA384:" + "ECDHE-RSA-AES256-SHA384:" + "DHE-RSA-AES128-GCM-SHA256:" + "DHE-DSS-AES128-GCM-SHA256:" + "DHE-RSA-AES128-SHA256:" + "DHE-DSS-AES128-SHA256:" + "DHE-DSS-AES256-GCM-SHA384:" + "DHE-RSA-AES256-SHA256:" + "DHE-DSS-AES256-SHA256:" + "ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:" + "ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:" + "DHE-DSS-AES128-SHA:DHE-RSA-AES128-SHA:" + "TLS_DHE_DSS_WITH_AES_256_CBC_SHA:DHE-RSA-AES256-SHA:" + "AES128-GCM-SHA256:DH-DSS-AES128-GCM-SHA256:" + "ECDH-ECDSA-AES128-GCM-SHA256:AES256-GCM-SHA384:" + "DH-DSS-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:" + "AES128-SHA256:DH-DSS-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:AES256-SHA256:" + "DH-DSS-AES256-SHA256:ECDH-ECDSA-AES256-SHA384:AES128-SHA:" + "DH-DSS-AES128-SHA:ECDH-ECDSA-AES128-SHA:AES256-SHA:" + "DH-DSS-AES256-SHA:ECDH-ECDSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:" + "DH-RSA-AES128-GCM-SHA256:ECDH-RSA-AES128-GCM-SHA256:DH-RSA-AES256-GCM-SHA384:" + "ECDH-RSA-AES256-GCM-SHA384:DH-RSA-AES128-SHA256:" + "ECDH-RSA-AES128-SHA256:DH-RSA-AES256-SHA256:" + "ECDH-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:" + "ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:" + "ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES128-SHA:" + "TLS_DHE_DSS_WITH_AES_256_CBC_SHA:DHE-RSA-AES256-SHA:" + "AES128-SHA:DH-DSS-AES128-SHA:ECDH-ECDSA-AES128-SHA:AES256-SHA:" + "DH-DSS-AES256-SHA:ECDH-ECDSA-AES256-SHA:DH-RSA-AES128-SHA:" + "ECDH-RSA-AES128-SHA:DH-RSA-AES256-SHA:ECDH-RSA-AES256-SHA:DES-CBC3-SHA"; +static const char tls_cipher_blocked[]= "!aNULL:!eNULL:!EXPORT:!LOW:!MD5:!DES:!RC2:!RC4:!PSK:" + "!DHE-DSS-DES-CBC3-SHA:!DHE-RSA-DES-CBC3-SHA:" + "!ECDH-RSA-DES-CBC3-SHA:!ECDH-ECDSA-DES-CBC3-SHA:" + "!ECDHE-RSA-DES-CBC3-SHA:!ECDHE-ECDSA-DES-CBC3-SHA:"; +#endif + +static my_bool ssl_initialized = FALSE; + +/* + Diffie-Hellman key. + Generated using: >openssl dhparam -5 -C 2048 + + -----BEGIN DH PARAMETERS----- + MIIBCAKCAQEAil36wGZ2TmH6ysA3V1xtP4MKofXx5n88xq/aiybmGnReZMviCPEJ + 46+7VCktl/RZ5iaDH1XNG1dVQmznt9pu2G3usU+k1/VB4bQL4ZgW4u0Wzxh9PyXD + glm99I9Xyj4Z5PVE4MyAsxCRGA1kWQpD9/zKAegUBPLNqSo886Uqg9hmn8ksyU9E + BV5eAEciCuawh6V0O+Sj/C3cSfLhgA0GcXp3OqlmcDu6jS5gWjn3LdP1U0duVxMB + h/neTSCSvtce4CAMYMjKNVh9P1nu+2d9ZH2Od2xhRIqMTfAS1KTqF3VmSWzPFCjG + mjxx/bg6bOOjpgZapvB6ABWlWmRmAAWFtwIBBQ== + -----END DH PARAMETERS----- + */ +static unsigned char dh2048_p[]= +{ + 0x8A, 0x5D, 0xFA, 0xC0, 0x66, 0x76, 0x4E, 0x61, 0xFA, 0xCA, 0xC0, 0x37, + 0x57, 0x5C, 0x6D, 0x3F, 0x83, 0x0A, 0xA1, 0xF5, 0xF1, 0xE6, 0x7F, 0x3C, + 0xC6, 0xAF, 0xDA, 0x8B, 0x26, 0xE6, 0x1A, 0x74, 0x5E, 0x64, 0xCB, 0xE2, + 0x08, 0xF1, 0x09, 0xE3, 0xAF, 0xBB, 0x54, 0x29, 0x2D, 0x97, 0xF4, 0x59, + 0xE6, 0x26, 0x83, 0x1F, 0x55, 0xCD, 0x1B, 0x57, 0x55, 0x42, 0x6C, 0xE7, + 0xB7, 0xDA, 0x6E, 0xD8, 0x6D, 0xEE, 0xB1, 0x4F, 0xA4, 0xD7, 0xF5, 0x41, + 0xE1, 0xB4, 0x0B, 0xE1, 0x98, 0x16, 0xE2, 0xED, 0x16, 0xCF, 0x18, 0x7D, + 0x3F, 0x25, 0xC3, 0x82, 0x59, 0xBD, 0xF4, 0x8F, 0x57, 0xCA, 0x3E, 0x19, + 0xE4, 0xF5, 0x44, 0xE0, 0xCC, 0x80, 0xB3, 0x10, 0x91, 0x18, 0x0D, 0x64, + 0x59, 0x0A, 0x43, 0xF7, 0xFC, 0xCA, 0x01, 0xE8, 0x14, 0x04, 0xF2, 0xCD, + 0xA9, 0x2A, 0x3C, 0xF3, 0xA5, 0x2A, 0x83, 0xD8, 0x66, 0x9F, 0xC9, 0x2C, + 0xC9, 0x4F, 0x44, 0x05, 0x5E, 0x5E, 0x00, 0x47, 0x22, 0x0A, 0xE6, 0xB0, + 0x87, 0xA5, 0x74, 0x3B, 0xE4, 0xA3, 0xFC, 0x2D, 0xDC, 0x49, 0xF2, 0xE1, + 0x80, 0x0D, 0x06, 0x71, 0x7A, 0x77, 0x3A, 0xA9, 0x66, 0x70, 0x3B, 0xBA, + 0x8D, 0x2E, 0x60, 0x5A, 0x39, 0xF7, 0x2D, 0xD3, 0xF5, 0x53, 0x47, 0x6E, + 0x57, 0x13, 0x01, 0x87, 0xF9, 0xDE, 0x4D, 0x20, 0x92, 0xBE, 0xD7, 0x1E, + 0xE0, 0x20, 0x0C, 0x60, 0xC8, 0xCA, 0x35, 0x58, 0x7D, 0x3F, 0x59, 0xEE, + 0xFB, 0x67, 0x7D, 0x64, 0x7D, 0x8E, 0x77, 0x6C, 0x61, 0x44, 0x8A, 0x8C, + 0x4D, 0xF0, 0x12, 0xD4, 0xA4, 0xEA, 0x17, 0x75, 0x66, 0x49, 0x6C, 0xCF, + 0x14, 0x28, 0xC6, 0x9A, 0x3C, 0x71, 0xFD, 0xB8, 0x3A, 0x6C, 0xE3, 0xA3, + 0xA6, 0x06, 0x5A, 0xA6, 0xF0, 0x7A, 0x00, 0x15, 0xA5, 0x5A, 0x64, 0x66, + 0x00, 0x05, 0x85, 0xB7, +}; + +static unsigned char dh2048_g[]={ + 0x05, +}; + +static DH *get_dh2048(void) +{ + DH *dh; + if ((dh=DH_new())) + { + dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL); + dh->g=BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL); + if (! dh->p || ! dh->g) + { + DH_free(dh); + dh=0; + } + } + return(dh); +} + + +static void +report_errors() +{ + unsigned long l; + const char* file; + const char* data; + int line,flags; + + DBUG_ENTER("report_errors"); + + while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0) + { +#ifndef DBUG_OFF /* Avoid warning */ + char buf[200]; + DBUG_PRINT("error", ("OpenSSL: %s:%s:%d:%s\n", ERR_error_string(l,buf), + file,line,(flags & ERR_TXT_STRING) ? data : "")) ; +#endif + } + DBUG_VOID_RETURN; +} + +static const char* +ssl_error_string[] = +{ + "No error", + "Unable to get certificate", + "Unable to get private key", + "Private key does not match the certificate public key", + "SSL_CTX_set_default_verify_paths failed", + "Failed to set ciphers to use", + "SSL_CTX_new failed", + "SSL context is not usable without certificate and private key", + "SSL_CTX_set_tmp_dh failed", + "TLS version is invalid" +}; + +const char* +sslGetErrString(enum enum_ssl_init_error e) +{ + DBUG_ASSERT(SSL_INITERR_NOERROR < e && e < SSL_INITERR_LASTERR); + return ssl_error_string[e]; +} + +static int +vio_set_cert_stuff(SSL_CTX *ctx, const char *cert_file, const char *key_file, + enum enum_ssl_init_error* error) +{ + DBUG_ENTER("vio_set_cert_stuff"); + DBUG_PRINT("enter", ("ctx: 0x%lx cert_file: %s key_file: %s", + (long) ctx, cert_file, key_file)); + + if (!cert_file && key_file) + cert_file= key_file; + + if (!key_file && cert_file) + key_file= cert_file; + + if (cert_file && + SSL_CTX_use_certificate_file(ctx, cert_file, SSL_FILETYPE_PEM) <= 0) + { + *error= SSL_INITERR_CERT; + DBUG_PRINT("error",("%s from file '%s'", sslGetErrString(*error), cert_file)); + DBUG_EXECUTE("error", ERR_print_errors_fp(DBUG_FILE);); + my_message_local(ERROR_LEVEL, "SSL error: %s from '%s'", + sslGetErrString(*error), cert_file); + DBUG_RETURN(1); + } + + if (key_file && + SSL_CTX_use_PrivateKey_file(ctx, key_file, SSL_FILETYPE_PEM) <= 0) + { + *error= SSL_INITERR_KEY; + DBUG_PRINT("error", ("%s from file '%s'", sslGetErrString(*error), key_file)); + DBUG_EXECUTE("error", ERR_print_errors_fp(DBUG_FILE);); + my_message_local(ERROR_LEVEL, "SSL error: %s from '%s'", + sslGetErrString(*error), key_file); + DBUG_RETURN(1); + } + + /* + If we are using DSA, we can copy the parameters from the private key + Now we know that a key and cert have been set against the SSL context + */ + if (cert_file && !SSL_CTX_check_private_key(ctx)) + { + *error= SSL_INITERR_NOMATCH; + DBUG_PRINT("error", ("%s",sslGetErrString(*error))); + DBUG_EXECUTE("error", ERR_print_errors_fp(DBUG_FILE);); + my_message_local(ERROR_LEVEL, "SSL error: %s", sslGetErrString(*error)); + DBUG_RETURN(1); + } + + DBUG_RETURN(0); +} + +#ifndef HAVE_YASSL +/* OpenSSL specific */ + +#ifdef HAVE_PSI_INTERFACE +static PSI_rwlock_key key_rwlock_openssl; + +static PSI_rwlock_info openssl_rwlocks[]= +{ + { &key_rwlock_openssl, "CRYPTO_dynlock_value::lock", 0} +}; +#endif + + +typedef struct CRYPTO_dynlock_value +{ + mysql_rwlock_t lock; +} openssl_lock_t; + + +/* Array of locks used by openssl internally for thread synchronization. + The number of locks is equal to CRYPTO_num_locks. +*/ +static openssl_lock_t *openssl_stdlocks; + +/*OpenSSL callback functions for multithreading. We implement all the functions + as we are using our own locking mechanism. +*/ +static void openssl_lock(int mode, openssl_lock_t *lock, + const char *file MY_ATTRIBUTE((unused)), + int line MY_ATTRIBUTE((unused))) +{ + int err; + char const *what; + + switch (mode) { + case CRYPTO_LOCK|CRYPTO_READ: + what = "read lock"; + err= mysql_rwlock_rdlock(&lock->lock); + break; + case CRYPTO_LOCK|CRYPTO_WRITE: + what = "write lock"; + err= mysql_rwlock_wrlock(&lock->lock); + break; + case CRYPTO_UNLOCK|CRYPTO_READ: + case CRYPTO_UNLOCK|CRYPTO_WRITE: + what = "unlock"; + err= mysql_rwlock_unlock(&lock->lock); + break; + default: + /* Unknown locking mode. */ + DBUG_PRINT("error", + ("Fatal OpenSSL: %s:%d: interface problem (mode=0x%x)\n", + file, line, mode)); + + fprintf(stderr, "Fatal: OpenSSL interface problem (mode=0x%x)", mode); + fflush(stderr); + abort(); + } + if (err) + { + DBUG_PRINT("error", + ("Fatal OpenSSL: %s:%d: can't %s OpenSSL lock\n", + file, line, what)); + + fprintf(stderr, "Fatal: can't %s OpenSSL lock", what); + fflush(stderr); + abort(); + } +} + +static void openssl_lock_function(int mode, int n, + const char *file MY_ATTRIBUTE((unused)), + int line MY_ATTRIBUTE((unused))) +{ + if (n < 0 || n > CRYPTO_num_locks()) + { + /* Lock number out of bounds. */ + DBUG_PRINT("error", + ("Fatal OpenSSL: %s:%d: interface problem (n = %d)", file, line, n)); + + fprintf(stderr, "Fatal: OpenSSL interface problem (n = %d)", n); + fflush(stderr); + abort(); + } + openssl_lock(mode, &openssl_stdlocks[n], file, line); +} + +static openssl_lock_t *openssl_dynlock_create(const char *file + MY_ATTRIBUTE((unused)), + int line MY_ATTRIBUTE((unused))) +{ + openssl_lock_t *lock; + + DBUG_PRINT("info", ("openssl_dynlock_create: %s:%d", file, line)); + + lock= (openssl_lock_t*) + my_malloc(PSI_NOT_INSTRUMENTED,sizeof(openssl_lock_t),MYF(0)); + +#ifdef HAVE_PSI_INTERFACE + mysql_rwlock_init(key_rwlock_openssl, &lock->lock); +#else + mysql_rwlock_init(0, &lock->lock); +#endif + return lock; +} + + +static void openssl_dynlock_destroy(openssl_lock_t *lock, + const char *file MY_ATTRIBUTE((unused)), + int line MY_ATTRIBUTE((unused))) +{ + DBUG_PRINT("info", ("openssl_dynlock_destroy: %s:%d", file, line)); + + mysql_rwlock_destroy(&lock->lock); + my_free(lock); +} + +static unsigned long openssl_id_function() +{ + return (unsigned long) my_thread_self(); +} + +//End of mutlithreading callback functions + +static void init_ssl_locks() +{ + int i= 0; +#ifdef HAVE_PSI_INTERFACE + const char* category= "sql"; + int count= array_elements(openssl_rwlocks); + mysql_rwlock_register(category, openssl_rwlocks, count); +#endif + + openssl_stdlocks= (openssl_lock_t*) OPENSSL_malloc(CRYPTO_num_locks() * + sizeof(openssl_lock_t)); + for (i= 0; i < CRYPTO_num_locks(); ++i) +#ifdef HAVE_PSI_INTERFACE + mysql_rwlock_init(key_rwlock_openssl, &openssl_stdlocks[i].lock); +#else + mysql_rwlock_init(0, &openssl_stdlocks[i].lock); +#endif +} + +static void set_lock_callback_functions(my_bool init) +{ + CRYPTO_set_locking_callback(init ? openssl_lock_function : NULL); + CRYPTO_set_id_callback(init ? openssl_id_function : NULL); + CRYPTO_set_dynlock_create_callback(init ? openssl_dynlock_create : NULL); + CRYPTO_set_dynlock_destroy_callback(init ? openssl_dynlock_destroy : NULL); + CRYPTO_set_dynlock_lock_callback(init ? openssl_lock : NULL); +} + +static void init_lock_callback_functions() +{ + set_lock_callback_functions(TRUE); +} + +static void deinit_lock_callback_functions() +{ + set_lock_callback_functions(FALSE); +} + +void vio_ssl_end() +{ + int i= 0; + + if (ssl_initialized) { + ERR_remove_state(0); + ERR_free_strings(); + EVP_cleanup(); + + CRYPTO_cleanup_all_ex_data(); + + deinit_lock_callback_functions(); + + for (; i < CRYPTO_num_locks(); ++i) + mysql_rwlock_destroy(&openssl_stdlocks[i].lock); + OPENSSL_free(openssl_stdlocks); + + ssl_initialized= FALSE; + } +} + +#endif //OpenSSL specific + +void ssl_start() +{ + if (!ssl_initialized) + { + ssl_initialized= TRUE; + + SSL_library_init(); + OpenSSL_add_all_algorithms(); + SSL_load_error_strings(); + +#ifndef HAVE_YASSL + init_ssl_locks(); + init_lock_callback_functions(); +#endif + } +} + +long process_tls_version(const char *tls_version) +{ + const char *separator= ","; + char *token, *lasts= NULL; +#ifndef HAVE_YASSL + unsigned int tls_versions_count= 3; + const char *tls_version_name_list[3]= {"TLSv1", "TLSv1.1", "TLSv1.2"}; + const char ctx_flag_default[]= "TLSv1,TLSv1.1,TLSv1.2"; + const long tls_ctx_list[3]= {SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1, SSL_OP_NO_TLSv1_2}; + long tls_ctx_flag= SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2; +#else + unsigned int tls_versions_count= 2; + const char *tls_version_name_list[2]= {"TLSv1", "TLSv1.1"}; + const long tls_ctx_list[2]= {SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1}; + const char ctx_flag_default[]= "TLSv1,TLSv1.1"; + long tls_ctx_flag= SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1; +#endif + unsigned int index= 0; + char tls_version_option[TLS_VERSION_OPTION_SIZE]= ""; + int tls_found= 0; + + if (!tls_version || !my_strcasecmp(&my_charset_latin1, tls_version, ctx_flag_default)) + return 0; + + if (strlen(tls_version)-1 > sizeof(tls_version_option)) + return -1; + + strncpy(tls_version_option, tls_version, sizeof(tls_version_option)); + token= my_strtok_r(tls_version_option, separator, &lasts); + while (token) + { + for (index=0; index < tls_versions_count; index++) + { + if (!my_strcasecmp(&my_charset_latin1, tls_version_name_list[index], token)) + { + tls_found= 1; + tls_ctx_flag= tls_ctx_flag & (~tls_ctx_list[index]); + break; + } + } + token= my_strtok_r(NULL, separator, &lasts); + } + + if (!tls_found) + return -1; + else + return tls_ctx_flag; +} + +/************************ VioSSLFd **********************************/ +static struct st_VioSSLFd * +new_VioSSLFd(const char *key_file, const char *cert_file, + const char *ca_file, const char *ca_path, + const char *cipher, my_bool is_client, + enum enum_ssl_init_error *error, + const char *crl_file, const char *crl_path, const long ssl_ctx_flags) +{ + DH *dh; + struct st_VioSSLFd *ssl_fd; + long ssl_ctx_options= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; + int ret_set_cipherlist= 0; + char cipher_list[SSL_CIPHER_LIST_SIZE]= {0}; + DBUG_ENTER("new_VioSSLFd"); + DBUG_PRINT("enter", + ("key_file: '%s' cert_file: '%s' ca_file: '%s' ca_path: '%s' " + "cipher: '%s' crl_file: '%s' crl_path: '%s' ssl_ctx_flags: '%ld' ", + key_file ? key_file : "NULL", + cert_file ? cert_file : "NULL", + ca_file ? ca_file : "NULL", + ca_path ? ca_path : "NULL", + cipher ? cipher : "NULL", + crl_file ? crl_file : "NULL", + crl_path ? crl_path : "NULL", + ssl_ctx_flags)); + + if (ssl_ctx_flags < 0) + { + *error= SSL_TLS_VERSION_INVALID; + DBUG_PRINT("error", ("TLS version invalid : %s", sslGetErrString(*error))); + report_errors(); + DBUG_RETURN(0); + } + + ssl_ctx_options= (ssl_ctx_options | ssl_ctx_flags) & + (SSL_OP_NO_SSLv2 | + SSL_OP_NO_SSLv3 | + SSL_OP_NO_TLSv1 | + SSL_OP_NO_TLSv1_1 +#ifndef HAVE_YASSL + | SSL_OP_NO_TLSv1_2 + + +#endif + ); + if (!(ssl_fd= ((struct st_VioSSLFd*) + my_malloc(key_memory_vio_ssl_fd, + sizeof(struct st_VioSSLFd),MYF(0))))) + DBUG_RETURN(0); + + if (!(ssl_fd->ssl_context= SSL_CTX_new(is_client ? + SSLv23_client_method() : + SSLv23_server_method()))) + { + *error= SSL_INITERR_MEMFAIL; + DBUG_PRINT("error", ("%s", sslGetErrString(*error))); + report_errors(); + my_free(ssl_fd); + DBUG_RETURN(0); + } + + SSL_CTX_set_options(ssl_fd->ssl_context, ssl_ctx_options); + + /* + Set the ciphers that can be used + NOTE: SSL_CTX_set_cipher_list will return 0 if + none of the provided ciphers could be selected + */ + strcat(cipher_list, tls_cipher_blocked); + if (cipher) + strcat(cipher_list, cipher); + else + strcat(cipher_list, tls_ciphers_list); + + if (ret_set_cipherlist == SSL_CTX_set_cipher_list(ssl_fd->ssl_context, cipher_list)) + { + *error= SSL_INITERR_CIPHERS; + DBUG_PRINT("error", ("%s", sslGetErrString(*error))); + report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } + + /* Load certs from the trusted ca */ + if (SSL_CTX_load_verify_locations(ssl_fd->ssl_context, ca_file, ca_path) <= 0) + { + DBUG_PRINT("warning", ("SSL_CTX_load_verify_locations failed")); + if (ca_file || ca_path) + { + /* fail only if ca file or ca path were supplied and looking into + them fails. */ + *error= SSL_INITERR_BAD_PATHS; + DBUG_PRINT("error", ("SSL_CTX_load_verify_locations failed : %s", + sslGetErrString(*error))); + report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } + + /* otherwise go use the defaults */ + if (SSL_CTX_set_default_verify_paths(ssl_fd->ssl_context) == 0) + { + *error= SSL_INITERR_BAD_PATHS; + DBUG_PRINT("error", ("%s", sslGetErrString(*error))); + report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } + } + + if (crl_file || crl_path) + { +#ifdef HAVE_YASSL + DBUG_PRINT("warning", ("yaSSL doesn't support CRL")); + DBUG_ASSERT(0); +#else + X509_STORE *store= SSL_CTX_get_cert_store(ssl_fd->ssl_context); + /* Load crls from the trusted ca */ + if (X509_STORE_load_locations(store, crl_file, crl_path) == 0 || + X509_STORE_set_flags(store, + X509_V_FLAG_CRL_CHECK | + X509_V_FLAG_CRL_CHECK_ALL) == 0) + { + DBUG_PRINT("warning", ("X509_STORE_load_locations for CRL failed")); + *error= SSL_INITERR_BAD_PATHS; + DBUG_PRINT("error", ("%s", sslGetErrString(*error))); + report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } +#endif + } + + if (vio_set_cert_stuff(ssl_fd->ssl_context, cert_file, key_file, error)) + { + DBUG_PRINT("error", ("vio_set_cert_stuff failed")); + report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } + + /* Server specific check : Must have certificate and key file */ + if (!is_client && !key_file && !cert_file) + { + *error= SSL_INITERR_NO_USABLE_CTX; + DBUG_PRINT("error", ("%s", sslGetErrString(*error))); + report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } + + /* DH stuff */ + dh= get_dh2048(); + if (SSL_CTX_set_tmp_dh(ssl_fd->ssl_context, dh) == 0) + { + *error= SSL_INITERR_DHFAIL; + DBUG_PRINT("error", ("%s", sslGetErrString(*error))); + report_errors(); + DH_free(dh); + SSL_CTX_free(ssl_fd->ssl_context); + my_free(ssl_fd); + DBUG_RETURN(0); + } + DH_free(dh); + + DBUG_PRINT("exit", ("OK 1")); + + DBUG_RETURN(ssl_fd); +} + + +/************************ VioSSLConnectorFd **********************************/ +struct st_VioSSLFd * +new_VioSSLConnectorFd(const char *key_file, const char *cert_file, + const char *ca_file, const char *ca_path, + const char *cipher, enum enum_ssl_init_error* error, + const char *crl_file, const char *crl_path, const long ssl_ctx_flags) +{ + struct st_VioSSLFd *ssl_fd; + int verify= SSL_VERIFY_PEER; + + /* + Turn off verification of servers certificate if both + ca_file and ca_path is set to NULL + */ + if (ca_file == 0 && ca_path == 0) + verify= SSL_VERIFY_NONE; + + if (!(ssl_fd= new_VioSSLFd(key_file, cert_file, ca_file, + ca_path, cipher, TRUE, error, + crl_file, crl_path, ssl_ctx_flags))) + { + return 0; + } + + /* Init the VioSSLFd as a "connector" ie. the client side */ + + SSL_CTX_set_verify(ssl_fd->ssl_context, verify, NULL); + + return ssl_fd; +} + + +/************************ VioSSLAcceptorFd **********************************/ +struct st_VioSSLFd * +new_VioSSLAcceptorFd(const char *key_file, const char *cert_file, + const char *ca_file, const char *ca_path, + const char *cipher, enum enum_ssl_init_error* error, + const char *crl_file, const char * crl_path, const long ssl_ctx_flags) +{ + struct st_VioSSLFd *ssl_fd; + int verify= SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE; + if (!(ssl_fd= new_VioSSLFd(key_file, cert_file, ca_file, + ca_path, cipher, FALSE, error, + crl_file, crl_path, ssl_ctx_flags))) + { + return 0; + } + /* Init the the VioSSLFd as a "acceptor" ie. the server side */ + + /* Set max number of cached sessions, returns the previous size */ + SSL_CTX_sess_set_cache_size(ssl_fd->ssl_context, 128); + + SSL_CTX_set_verify(ssl_fd->ssl_context, verify, NULL); + + /* + Set session_id - an identifier for this server session + Use the ssl_fd pointer + */ + SSL_CTX_set_session_id_context(ssl_fd->ssl_context, + (const unsigned char *)ssl_fd, + sizeof(ssl_fd)); + + return ssl_fd; +} + +void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd) +{ + SSL_CTX_free(fd->ssl_context); + my_free(fd); +} +#endif /* HAVE_OPENSSL */ diff --git a/mysql/violite.h b/mysql/violite.h new file mode 100644 index 0000000..27420f9 --- /dev/null +++ b/mysql/violite.h @@ -0,0 +1,338 @@ +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +/* + * Vio Lite. + * Purpose: include file for Vio that will work with C and C++ + */ + +#ifndef vio_violite_h_ +#define vio_violite_h_ + +#include /* my_thread_handle */ +#include +#include +#include + +/* Simple vio interface in C; The functions are implemented in violite.c */ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#ifdef HAVE_PSI_INTERFACE +void init_vio_psi_keys(); +#endif + +#ifdef __cplusplus +typedef struct st_vio Vio; +#endif /* __cplusplus */ + +enum enum_vio_type +{ + /** + Type of the connection is unknown. + */ + NO_VIO_TYPE= 0, + /** + Used in case of TCP/IP connections. + */ + VIO_TYPE_TCPIP= 1, + /** + Used for Unix Domain socket connections. Unix only. + */ + VIO_TYPE_SOCKET= 2, + /** + Used for named pipe connections. Windows only. + */ + VIO_TYPE_NAMEDPIPE= 3, + /** + Used in case of SSL connections. + */ + VIO_TYPE_SSL= 4, + /** + Used for shared memory connections. Windows only. + */ + VIO_TYPE_SHARED_MEMORY= 5, + /** + Used internally by the prepared statements + */ + VIO_TYPE_LOCAL= 6, + /** + Implicitly used by plugins that doesn't support any other VIO_TYPE. + */ + VIO_TYPE_PLUGIN= 7, + + FIRST_VIO_TYPE= VIO_TYPE_TCPIP, + /* + If a new type is added, please update LAST_VIO_TYPE. In addition, please + change get_vio_type_name() in vio/vio.c to return correct name for it. + */ + LAST_VIO_TYPE= VIO_TYPE_PLUGIN +}; + +/** + Convert a vio type to a printable string. + @param vio_type the type + @param[out] str the string + @param[out] len the string length +*/ +void get_vio_type_name(enum enum_vio_type vio_type, const char ** str, int * len); + +/** + VIO I/O events. +*/ +enum enum_vio_io_event +{ + VIO_IO_EVENT_READ, + VIO_IO_EVENT_WRITE, + VIO_IO_EVENT_CONNECT +}; + +#define VIO_LOCALHOST 1 /* a localhost connection */ +#define VIO_BUFFERED_READ 2 /* use buffered read */ +#define VIO_READ_BUFFER_SIZE 16384 /* size of read buffer */ +#define VIO_DESCRIPTION_SIZE 30 /* size of description */ + +Vio* vio_new(my_socket sd, enum enum_vio_type type, uint flags); +Vio* mysql_socket_vio_new(MYSQL_SOCKET mysql_socket, enum enum_vio_type type, uint flags); +#ifdef _WIN32 +Vio* vio_new_win32pipe(HANDLE hPipe); +Vio* vio_new_win32shared_memory(HANDLE handle_file_map, + HANDLE handle_map, + HANDLE event_server_wrote, + HANDLE event_server_read, + HANDLE event_client_wrote, + HANDLE event_client_read, + HANDLE event_conn_closed); +#else +#define HANDLE void * +#endif /* _WIN32 */ + +void vio_delete(Vio* vio); +int vio_shutdown(Vio* vio); +my_bool vio_reset(Vio* vio, enum enum_vio_type type, + my_socket sd, void *ssl, uint flags); +size_t vio_read(Vio *vio, uchar * buf, size_t size); +size_t vio_read_buff(Vio *vio, uchar * buf, size_t size); +size_t vio_write(Vio *vio, const uchar * buf, size_t size); +/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible */ +int vio_fastsend(Vio *vio); +/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible */ +int vio_keepalive(Vio *vio, my_bool onoff); +/* Whenever we should retry the last read/write operation. */ +my_bool vio_should_retry(Vio *vio); +/* Check that operation was timed out */ +my_bool vio_was_timeout(Vio *vio); +/* Short text description of the socket for those, who are curious.. */ +const char* vio_description(Vio *vio); +/* Return the type of the connection */ +enum enum_vio_type vio_type(Vio* vio); +/* Return last error number */ +int vio_errno(Vio*vio); +/* Get socket number */ +my_socket vio_fd(Vio*vio); +/* Remote peer's address and name in text form */ +my_bool vio_peer_addr(Vio *vio, char *buf, uint16 *port, size_t buflen); +/* Wait for an I/O event notification. */ +int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout); +my_bool vio_is_connected(Vio *vio); +#ifndef DBUG_OFF +ssize_t vio_pending(Vio *vio); +#endif +/* Set timeout for a network operation. */ +int vio_timeout(Vio *vio, uint which, int timeout_sec); +/* Connect to a peer. */ +my_bool vio_socket_connect(Vio *vio, struct sockaddr *addr, socklen_t len, + int timeout); + +my_bool vio_get_normalized_ip_string(const struct sockaddr *addr, size_t addr_length, + char *ip_string, size_t ip_string_size); + +my_bool vio_is_no_name_error(int err_code); + +int vio_getnameinfo(const struct sockaddr *sa, + char *hostname, size_t hostname_size, + char *port, size_t port_size, + int flags); + +#ifdef HAVE_OPENSSL +#include +#if OPENSSL_VERSION_NUMBER < 0x0090700f +#define DES_cblock des_cblock +#define DES_key_schedule des_key_schedule +#define DES_set_key_unchecked(k,ks) des_set_key_unchecked((k),*(ks)) +#define DES_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e) des_ede3_cbc_encrypt((i),(o),(l),*(k1),*(k2),*(k3),(iv),(e)) +#endif +/* apple deprecated openssl in MacOSX Lion */ +#ifdef __APPLE__ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + +#define HEADER_DES_LOCL_H dummy_something +#define YASSL_MYSQL_COMPATIBLE +#ifndef YASSL_PREFIX +#define YASSL_PREFIX +#endif +/* Set yaSSL to use same type as MySQL do for socket handles */ +typedef my_socket YASSL_SOCKET_T; +#define YASSL_SOCKET_T_DEFINED +#include +#include + +#ifndef EMBEDDED_LIBRARY +enum enum_ssl_init_error +{ + SSL_INITERR_NOERROR= 0, SSL_INITERR_CERT, SSL_INITERR_KEY, + SSL_INITERR_NOMATCH, SSL_INITERR_BAD_PATHS, SSL_INITERR_CIPHERS, + SSL_INITERR_MEMFAIL, SSL_INITERR_NO_USABLE_CTX, SSL_INITERR_DHFAIL, + SSL_TLS_VERSION_INVALID, SSL_INITERR_LASTERR +}; +const char* sslGetErrString(enum enum_ssl_init_error err); + +struct st_VioSSLFd +{ + SSL_CTX *ssl_context; +}; + +int sslaccept(struct st_VioSSLFd*, Vio *, long timeout, unsigned long *errptr); +int sslconnect(struct st_VioSSLFd*, Vio *, long timeout, unsigned long *errptr); + +struct st_VioSSLFd +*new_VioSSLConnectorFd(const char *key_file, const char *cert_file, + const char *ca_file, const char *ca_path, + const char *cipher, enum enum_ssl_init_error *error, + const char *crl_file, const char *crl_path, const long ssl_ctx_flags); + +long process_tls_version(const char *tls_version); + +struct st_VioSSLFd +*new_VioSSLAcceptorFd(const char *key_file, const char *cert_file, + const char *ca_file,const char *ca_path, + const char *cipher, enum enum_ssl_init_error *error, + const char *crl_file, const char *crl_path, const long ssl_ctx_flags); +void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd); + +void vio_ssl_end(); + +#endif /* ! EMBEDDED_LIBRARY */ +#endif /* HAVE_OPENSSL */ + +void ssl_start(void); +void vio_end(void); + +#ifdef __cplusplus +} +#endif + +#if !defined(DONT_MAP_VIO) +#define vio_delete(vio) (vio)->viodelete(vio) +#define vio_errno(vio) (vio)->vioerrno(vio) +#define vio_read(vio, buf, size) ((vio)->read)(vio,buf,size) +#define vio_write(vio, buf, size) ((vio)->write)(vio, buf, size) +#define vio_fastsend(vio) (vio)->fastsend(vio) +#define vio_keepalive(vio, set_keep_alive) (vio)->viokeepalive(vio, set_keep_alive) +#define vio_should_retry(vio) (vio)->should_retry(vio) +#define vio_was_timeout(vio) (vio)->was_timeout(vio) +#define vio_shutdown(vio) ((vio)->vioshutdown)(vio) +#define vio_peer_addr(vio, buf, prt, buflen) (vio)->peer_addr(vio, buf, prt, buflen) +#define vio_io_wait(vio, event, timeout) (vio)->io_wait(vio, event, timeout) +#define vio_is_connected(vio) (vio)->is_connected(vio) +#endif /* !defined(DONT_MAP_VIO) */ + +/* This enumerator is used in parser - should be always visible */ +enum SSL_type +{ + SSL_TYPE_NOT_SPECIFIED= -1, + SSL_TYPE_NONE, + SSL_TYPE_ANY, + SSL_TYPE_X509, + SSL_TYPE_SPECIFIED +}; + + +/* HFTODO - hide this if we don't want client in embedded server */ +/* This structure is for every connection on both sides */ +struct st_vio +{ + MYSQL_SOCKET mysql_socket; /* Instrumented socket */ + my_bool localhost; /* Are we from localhost? */ + struct sockaddr_storage local; /* Local internet address */ + struct sockaddr_storage remote; /* Remote internet address */ + size_t addrLen; /* Length of remote address */ + enum enum_vio_type type; /* Type of connection */ + my_bool inactive; /* Connection inactive (has been shutdown) */ + char desc[VIO_DESCRIPTION_SIZE]; /* Description string. This + member MUST NOT be + used directly, but only + via function + "vio_description" */ + char *read_buffer; /* buffer for vio_read_buff */ + char *read_pos; /* start of unfetched data in the + read buffer */ + char *read_end; /* end of unfetched data */ + int read_timeout; /* Timeout value (ms) for read ops. */ + int write_timeout; /* Timeout value (ms) for write ops. */ + + /* + VIO vtable interface to be implemented by VIO's like SSL, Socket, + Named Pipe, etc. + */ + + /* + viodelete is responsible for cleaning up the VIO object by freeing + internal buffers, closing descriptors, handles. + */ + void (*viodelete)(Vio*); + int (*vioerrno)(Vio*); + size_t (*read)(Vio*, uchar *, size_t); + size_t (*write)(Vio*, const uchar *, size_t); + int (*timeout)(Vio*, uint, my_bool); + int (*viokeepalive)(Vio*, my_bool); + int (*fastsend)(Vio*); + my_bool (*peer_addr)(Vio*, char *, uint16*, size_t); + void (*in_addr)(Vio*, struct sockaddr_storage*); + my_bool (*should_retry)(Vio*); + my_bool (*was_timeout)(Vio*); + /* + vioshutdown is resposnible to shutdown/close the channel, so that no + further communications can take place, however any related buffers, + descriptors, handles can remain valid after a shutdown. + */ + int (*vioshutdown)(Vio*); + my_bool (*is_connected)(Vio*); + my_bool (*has_data) (Vio*); + int (*io_wait)(Vio*, enum enum_vio_io_event, int); + my_bool (*connect)(Vio*, struct sockaddr *, socklen_t, int); +#ifdef _WIN32 + OVERLAPPED overlapped; + HANDLE hPipe; +#endif +#ifdef HAVE_OPENSSL + void *ssl_arg; +#endif +#if defined (_WIN32) && !defined (EMBEDDED_LIBRARY) + HANDLE handle_file_map; + char *handle_map; + HANDLE event_server_wrote; + HANDLE event_server_read; + HANDLE event_client_wrote; + HANDLE event_client_read; + HANDLE event_conn_closed; + size_t shared_memory_remain; + char *shared_memory_pos; +#endif /* _WIN32 && !EMBEDDED_LIBRARY */ +}; +#endif /* vio_violite_h_ */ diff --git a/mysql/zlib/README b/mysql/zlib/README new file mode 100644 index 0000000..758cc50 --- /dev/null +++ b/mysql/zlib/README @@ -0,0 +1,125 @@ +ZLIB DATA COMPRESSION LIBRARY + +zlib 1.2.3 is a general purpose data compression library. All the code is +thread safe. The data format used by the zlib library is described by RFCs +(Request for Comments) 1950 to 1952 in the files +http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) +and rfc1952.txt (gzip format). These documents are also available in other +formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html + +All functions of the compression library are documented in the file zlib.h +(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example +of the library is given in the file example.c which also tests that the library +is working correctly. Another example is given in the file minigzip.c. The +compression library itself is composed of all source files except example.c and +minigzip.c. + +To compile all files and run the test program, follow the instructions given at +the top of Makefile. In short "make test; make install" should work for most +machines. For Unix: "./configure; make test; make install". For MSDOS, use one +of the special makefiles such as Makefile.msc. For VMS, use make_vms.com. + +Questions about zlib should be sent to , or to Gilles Vollant + for the Windows DLL version. The zlib home page is +http://www.zlib.org or http://www.gzip.org/zlib/ Before reporting a problem, +please check this site to verify that you have the latest version of zlib; +otherwise get the latest version and check whether the problem still exists or +not. + +PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html before asking +for help. + +Mark Nelson wrote an article about zlib for the Jan. 1997 +issue of Dr. Dobb's Journal; a copy of the article is available in +http://dogma.net/markn/articles/zlibtool/zlibtool.htm + +The changes made in version 1.2.3 are documented in the file ChangeLog. + +Unsupported third party contributions are provided in directory "contrib". + +A Java implementation of zlib is available in the Java Development Kit +http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html +See the zlib home page http://www.zlib.org for details. + +A Perl interface to zlib written by Paul Marquess is in the +CPAN (Comprehensive Perl Archive Network) sites +http://www.cpan.org/modules/by-module/Compress/ + +A Python interface to zlib written by A.M. Kuchling is +available in Python 1.5 and later versions, see +http://www.python.org/doc/lib/module-zlib.html + +A zlib binding for TCL written by Andreas Kupries is +availlable at http://www.oche.de/~akupries/soft/trf/trf_zip.html + +An experimental package to read and write files in .zip format, written on top +of zlib by Gilles Vollant , is available in the +contrib/minizip directory of zlib. + + +Notes for some targets: + +- For Windows DLL versions, please see win32/DLL_FAQ.txt + +- For 64-bit Irix, deflate.c must be compiled without any optimization. With + -O, one libpng test fails. The test works in 32 bit mode (with the -n32 + compiler flag). The compiler bug has been reported to SGI. + +- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works + when compiled with cc. + +- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is + necessary to get gzprintf working correctly. This is done by configure. + +- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with + other compilers. Use "make test" to check your compiler. + +- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. + +- For PalmOs, see http://palmzlib.sourceforge.net/ + +- When building a shared, i.e. dynamic library on Mac OS X, the library must be + installed before testing (do "make install" before "make test"), since the + library location is specified in the library. + + +Acknowledgments: + + The deflate format used by zlib was defined by Phil Katz. The deflate + and zlib specifications were written by L. Peter Deutsch. Thanks to all the + people who reported problems and suggested various improvements in zlib; + they are too numerous to cite here. + +Copyright notice: + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* +receiving lengthy legal documents to sign. The sources are provided +for free but without warranty of any kind. The library has been +entirely written by Jean-loup Gailly and Mark Adler; it does not +include third-party code. + +If you redistribute modified sources, we would appreciate that you include +in the file ChangeLog history information documenting your changes. Please +read the FAQ for more information on the distribution of modified source +versions. diff --git a/mysql/zlib/README.MySQL b/mysql/zlib/README.MySQL new file mode 100644 index 0000000..c17d3ee --- /dev/null +++ b/mysql/zlib/README.MySQL @@ -0,0 +1,16 @@ +This an incomplete version of the zlib library -- it excludes some of the +platform-specific project files, contributed code, and examples from the +original zlib distribution. You can find the original distribution at + + http://www.gzip.org/zlib/ + or + http://www.zlib.net/ + +Revision history: + +20.01.2006. The following files were changed as part of #15787 fix: + makefile.am + gzio.c + zconf.h + README.mysql + diff --git a/mysql/zlib/adler32.c b/mysql/zlib/adler32.c new file mode 100644 index 0000000..007ba26 --- /dev/null +++ b/mysql/zlib/adler32.c @@ -0,0 +1,149 @@ +/* adler32.c -- compute the Adler-32 checksum of a data stream + * Copyright (C) 1995-2004 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#define ZLIB_INTERNAL +#include "zlib.h" + +#define BASE 65521UL /* largest prime smaller than 65536 */ +#define NMAX 5552 +/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ + +#define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} +#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); +#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); +#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); +#define DO16(buf) DO8(buf,0); DO8(buf,8); + +/* use NO_DIVIDE if your processor does not do division in hardware */ +#ifdef NO_DIVIDE +# define MOD(a) \ + do { \ + if (a >= (BASE << 16)) a -= (BASE << 16); \ + if (a >= (BASE << 15)) a -= (BASE << 15); \ + if (a >= (BASE << 14)) a -= (BASE << 14); \ + if (a >= (BASE << 13)) a -= (BASE << 13); \ + if (a >= (BASE << 12)) a -= (BASE << 12); \ + if (a >= (BASE << 11)) a -= (BASE << 11); \ + if (a >= (BASE << 10)) a -= (BASE << 10); \ + if (a >= (BASE << 9)) a -= (BASE << 9); \ + if (a >= (BASE << 8)) a -= (BASE << 8); \ + if (a >= (BASE << 7)) a -= (BASE << 7); \ + if (a >= (BASE << 6)) a -= (BASE << 6); \ + if (a >= (BASE << 5)) a -= (BASE << 5); \ + if (a >= (BASE << 4)) a -= (BASE << 4); \ + if (a >= (BASE << 3)) a -= (BASE << 3); \ + if (a >= (BASE << 2)) a -= (BASE << 2); \ + if (a >= (BASE << 1)) a -= (BASE << 1); \ + if (a >= BASE) a -= BASE; \ + } while (0) +# define MOD4(a) \ + do { \ + if (a >= (BASE << 4)) a -= (BASE << 4); \ + if (a >= (BASE << 3)) a -= (BASE << 3); \ + if (a >= (BASE << 2)) a -= (BASE << 2); \ + if (a >= (BASE << 1)) a -= (BASE << 1); \ + if (a >= BASE) a -= BASE; \ + } while (0) +#else +# define MOD(a) a %= BASE +# define MOD4(a) a %= BASE +#endif + +/* ========================================================================= */ +uLong ZEXPORT adler32(adler, buf, len) + uLong adler; + const Bytef *buf; + uInt len; +{ + unsigned long sum2; + unsigned n; + + /* split Adler-32 into component sums */ + sum2 = (adler >> 16) & 0xffff; + adler &= 0xffff; + + /* in case user likes doing a byte at a time, keep it fast */ + if (len == 1) { + adler += buf[0]; + if (adler >= BASE) + adler -= BASE; + sum2 += adler; + if (sum2 >= BASE) + sum2 -= BASE; + return adler | (sum2 << 16); + } + + /* initial Adler-32 value (deferred check for len == 1 speed) */ + if (buf == Z_NULL) + return 1L; + + /* in case short lengths are provided, keep it somewhat fast */ + if (len < 16) { + while (len--) { + adler += *buf++; + sum2 += adler; + } + if (adler >= BASE) + adler -= BASE; + MOD4(sum2); /* only added so many BASE's */ + return adler | (sum2 << 16); + } + + /* do length NMAX blocks -- requires just one modulo operation */ + while (len >= NMAX) { + len -= NMAX; + n = NMAX / 16; /* NMAX is divisible by 16 */ + do { + DO16(buf); /* 16 sums unrolled */ + buf += 16; + } while (--n); + MOD(adler); + MOD(sum2); + } + + /* do remaining bytes (less than NMAX, still just one modulo) */ + if (len) { /* avoid modulos if none remaining */ + while (len >= 16) { + len -= 16; + DO16(buf); + buf += 16; + } + while (len--) { + adler += *buf++; + sum2 += adler; + } + MOD(adler); + MOD(sum2); + } + + /* return recombined sums */ + return adler | (sum2 << 16); +} + +/* ========================================================================= */ +uLong ZEXPORT adler32_combine(adler1, adler2, len2) + uLong adler1; + uLong adler2; + z_off_t len2; +{ + unsigned long sum1; + unsigned long sum2; + unsigned rem; + + /* the derivation of this formula is left as an exercise for the reader */ + rem = (unsigned)(len2 % BASE); + sum1 = adler1 & 0xffff; + sum2 = rem * sum1; + MOD(sum2); + sum1 += (adler2 & 0xffff) + BASE - 1; + sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; + if (sum1 > BASE) sum1 -= BASE; + if (sum1 > BASE) sum1 -= BASE; + if (sum2 > (BASE << 1)) sum2 -= (BASE << 1); + if (sum2 > BASE) sum2 -= BASE; + return sum1 | (sum2 << 16); +} diff --git a/mysql/zlib/compress.c b/mysql/zlib/compress.c new file mode 100644 index 0000000..df04f01 --- /dev/null +++ b/mysql/zlib/compress.c @@ -0,0 +1,79 @@ +/* compress.c -- compress a memory buffer + * Copyright (C) 1995-2003 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#define ZLIB_INTERNAL +#include "zlib.h" + +/* =========================================================================== + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least 0.1% larger than sourceLen plus + 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ +int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) + Bytef *dest; + uLongf *destLen; + const Bytef *source; + uLong sourceLen; + int level; +{ + z_stream stream; + int err; + + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; +#ifdef MAXSEG_64K + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; +#endif + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + stream.opaque = (voidpf)0; + + err = deflateInit(&stream, level); + if (err != Z_OK) return err; + + err = deflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + deflateEnd(&stream); + return err == Z_OK ? Z_BUF_ERROR : err; + } + *destLen = stream.total_out; + + err = deflateEnd(&stream); + return err; +} + +/* =========================================================================== + */ +int ZEXPORT compress (dest, destLen, source, sourceLen) + Bytef *dest; + uLongf *destLen; + const Bytef *source; + uLong sourceLen; +{ + return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); +} + +/* =========================================================================== + If the default memLevel or windowBits for deflateInit() is changed, then + this function needs to be updated. + */ +uLong ZEXPORT compressBound (sourceLen) + uLong sourceLen; +{ + return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 11; +} diff --git a/mysql/zlib/crc32.c b/mysql/zlib/crc32.c new file mode 100644 index 0000000..5bbf9c6 --- /dev/null +++ b/mysql/zlib/crc32.c @@ -0,0 +1,423 @@ +/* crc32.c -- compute the CRC-32 of a data stream + * Copyright (C) 1995-2005 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + * + * Thanks to Rodney Brown for his contribution of faster + * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing + * tables for updating the shift register in one step with three exclusive-ors + * instead of four steps with four exclusive-ors. This results in about a + * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. + */ + +/* @(#) $Id$ */ + +/* + Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore + protection on the static variables used to control the first-use generation + of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should + first call get_crc_table() to initialize the tables before allowing more than + one thread to use crc32(). + */ + +#ifdef MAKECRCH +# include +# ifndef DYNAMIC_CRC_TABLE +# define DYNAMIC_CRC_TABLE +# endif /* !DYNAMIC_CRC_TABLE */ +#endif /* MAKECRCH */ + +#include "zutil.h" /* for STDC and FAR definitions */ + +#define local static + +/* Find a four-byte integer type for crc32_little() and crc32_big(). */ +#ifndef NOBYFOUR +# ifdef STDC /* need ANSI C limits.h to determine sizes */ +# include +# define BYFOUR +# if (UINT_MAX == 0xffffffffUL) + typedef unsigned int u4; +# else +# if (ULONG_MAX == 0xffffffffUL) + typedef unsigned long u4; +# else +# if (USHRT_MAX == 0xffffffffUL) + typedef unsigned short u4; +# else +# undef BYFOUR /* can't find a four-byte integer type! */ +# endif +# endif +# endif +# endif /* STDC */ +#endif /* !NOBYFOUR */ + +/* Definitions for doing the crc four data bytes at a time. */ +#ifdef BYFOUR +# define REV(w) (((w)>>24)+(((w)>>8)&0xff00)+ \ + (((w)&0xff00)<<8)+(((w)&0xff)<<24)) + local unsigned long crc32_little OF((unsigned long, + const unsigned char FAR *, unsigned)); + local unsigned long crc32_big OF((unsigned long, + const unsigned char FAR *, unsigned)); +# define TBLS 8 +#else +# define TBLS 1 +#endif /* BYFOUR */ + +/* Local functions for crc concatenation */ +local unsigned long gf2_matrix_times OF((unsigned long *mat, + unsigned long vec)); +local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); + +#ifdef DYNAMIC_CRC_TABLE + +local volatile int crc_table_empty = 1; +local unsigned long FAR crc_table[TBLS][256]; +local void make_crc_table OF((void)); +#ifdef MAKECRCH + local void write_table OF((FILE *, const unsigned long FAR *)); +#endif /* MAKECRCH */ +/* + Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The first table is simply the CRC of all possible eight bit values. This is + all the information needed to generate CRCs on data a byte at a time for all + combinations of CRC register values and incoming bytes. The remaining tables + allow for word-at-a-time CRC calculation for both big-endian and little- + endian machines, where a word is four bytes. +*/ +local void make_crc_table() +{ + unsigned long c; + int n, k; + unsigned long poly; /* polynomial exclusive-or pattern */ + /* terms of polynomial defining this crc (except x^32): */ + static volatile int first = 1; /* flag to limit concurrent making */ + static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + + /* See if another task is already doing this (not thread-safe, but better + than nothing -- significantly reduces duration of vulnerability in + case the advice about DYNAMIC_CRC_TABLE is ignored) */ + if (first) { + first = 0; + + /* make exclusive-or pattern from polynomial (0xedb88320UL) */ + poly = 0UL; + for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++) + poly |= 1UL << (31 - p[n]); + + /* generate a crc for every 8-bit value */ + for (n = 0; n < 256; n++) { + c = (unsigned long)n; + for (k = 0; k < 8; k++) + c = c & 1 ? poly ^ (c >> 1) : c >> 1; + crc_table[0][n] = c; + } + +#ifdef BYFOUR + /* generate crc for each value followed by one, two, and three zeros, + and then the byte reversal of those as well as the first table */ + for (n = 0; n < 256; n++) { + c = crc_table[0][n]; + crc_table[4][n] = REV(c); + for (k = 1; k < 4; k++) { + c = crc_table[0][c & 0xff] ^ (c >> 8); + crc_table[k][n] = c; + crc_table[k + 4][n] = REV(c); + } + } +#endif /* BYFOUR */ + + crc_table_empty = 0; + } + else { /* not first */ + /* wait for the other guy to finish (not efficient, but rare) */ + while (crc_table_empty) + ; + } + +#ifdef MAKECRCH + /* write out CRC tables to crc32.h */ + { + FILE *out; + + out = fopen("crc32.h", "w"); + if (out == NULL) return; + fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); + fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); + fprintf(out, "local const unsigned long FAR "); + fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); + write_table(out, crc_table[0]); +# ifdef BYFOUR + fprintf(out, "#ifdef BYFOUR\n"); + for (k = 1; k < 8; k++) { + fprintf(out, " },\n {\n"); + write_table(out, crc_table[k]); + } + fprintf(out, "#endif\n"); +# endif /* BYFOUR */ + fprintf(out, " }\n};\n"); + fclose(out); + } +#endif /* MAKECRCH */ +} + +#ifdef MAKECRCH +local void write_table(out, table) + FILE *out; + const unsigned long FAR *table; +{ + int n; + + for (n = 0; n < 256; n++) + fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", table[n], + n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); +} +#endif /* MAKECRCH */ + +#else /* !DYNAMIC_CRC_TABLE */ +/* ======================================================================== + * Tables of CRC-32s of all single-byte values, made by make_crc_table(). + */ +#include "crc32.h" +#endif /* DYNAMIC_CRC_TABLE */ + +/* ========================================================================= + * This function can be used by asm versions of crc32() + */ +const unsigned long FAR * ZEXPORT get_crc_table() +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif /* DYNAMIC_CRC_TABLE */ + return (const unsigned long FAR *)crc_table; +} + +/* ========================================================================= */ +#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) +#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 + +/* ========================================================================= */ +unsigned long ZEXPORT crc32(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + unsigned len; +{ + if (buf == Z_NULL) return 0UL; + +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif /* DYNAMIC_CRC_TABLE */ + +#ifdef BYFOUR + if (sizeof(void *) == sizeof(ptrdiff_t)) { + u4 endian; + + endian = 1; + if (*((unsigned char *)(&endian))) + return crc32_little(crc, buf, len); + else + return crc32_big(crc, buf, len); + } +#endif /* BYFOUR */ + crc = crc ^ 0xffffffffUL; + while (len >= 8) { + DO8; + len -= 8; + } + if (len) do { + DO1; + } while (--len); + return crc ^ 0xffffffffUL; +} + +#ifdef BYFOUR + +/* ========================================================================= */ +#define DOLIT4 c ^= *buf4++; \ + c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ + crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] +#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 + +/* ========================================================================= */ +local unsigned long crc32_little(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + unsigned len; +{ + u4 c; + const u4 FAR *buf4; + + c = (u4)crc; + c = ~c; + while (len && ((ptrdiff_t)buf & 3)) { + c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); + len--; + } + + buf4 = (const u4 FAR *)(const void FAR *)buf; + while (len >= 32) { + DOLIT32; + len -= 32; + } + while (len >= 4) { + DOLIT4; + len -= 4; + } + buf = (const unsigned char FAR *)buf4; + + if (len) do { + c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); + } while (--len); + c = ~c; + return (unsigned long)c; +} + +/* ========================================================================= */ +#define DOBIG4 c ^= *++buf4; \ + c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ + crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] +#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 + +/* ========================================================================= */ +local unsigned long crc32_big(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + unsigned len; +{ + u4 c; + const u4 FAR *buf4; + + c = REV((u4)crc); + c = ~c; + while (len && ((ptrdiff_t)buf & 3)) { + c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); + len--; + } + + buf4 = (const u4 FAR *)(const void FAR *)buf; + buf4--; + while (len >= 32) { + DOBIG32; + len -= 32; + } + while (len >= 4) { + DOBIG4; + len -= 4; + } + buf4++; + buf = (const unsigned char FAR *)buf4; + + if (len) do { + c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); + } while (--len); + c = ~c; + return (unsigned long)(REV(c)); +} + +#endif /* BYFOUR */ + +#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ + +/* ========================================================================= */ +local unsigned long gf2_matrix_times(mat, vec) + unsigned long *mat; + unsigned long vec; +{ + unsigned long sum; + + sum = 0; + while (vec) { + if (vec & 1) + sum ^= *mat; + vec >>= 1; + mat++; + } + return sum; +} + +/* ========================================================================= */ +local void gf2_matrix_square(square, mat) + unsigned long *square; + unsigned long *mat; +{ + int n; + + for (n = 0; n < GF2_DIM; n++) + square[n] = gf2_matrix_times(mat, mat[n]); +} + +/* ========================================================================= */ +uLong ZEXPORT crc32_combine(crc1, crc2, len2) + uLong crc1; + uLong crc2; + z_off_t len2; +{ + int n; + unsigned long row; + unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ + unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ + + /* degenerate case */ + if (len2 == 0) + return crc1; + + /* put operator for one zero bit in odd */ + odd[0] = 0xedb88320L; /* CRC-32 polynomial */ + row = 1; + for (n = 1; n < GF2_DIM; n++) { + odd[n] = row; + row <<= 1; + } + + /* put operator for two zero bits in even */ + gf2_matrix_square(even, odd); + + /* put operator for four zero bits in odd */ + gf2_matrix_square(odd, even); + + /* apply len2 zeros to crc1 (first square will put the operator for one + zero byte, eight zero bits, in even) */ + do { + /* apply zeros operator for this bit of len2 */ + gf2_matrix_square(even, odd); + if (len2 & 1) + crc1 = gf2_matrix_times(even, crc1); + len2 >>= 1; + + /* if no more bits set, then done */ + if (len2 == 0) + break; + + /* another iteration of the loop with odd and even swapped */ + gf2_matrix_square(odd, even); + if (len2 & 1) + crc1 = gf2_matrix_times(odd, crc1); + len2 >>= 1; + + /* if no more bits set, then done */ + } while (len2 != 0); + + /* return combined crc */ + crc1 ^= crc2; + return crc1; +} diff --git a/mysql/zlib/crc32.h b/mysql/zlib/crc32.h new file mode 100644 index 0000000..8053b61 --- /dev/null +++ b/mysql/zlib/crc32.h @@ -0,0 +1,441 @@ +/* crc32.h -- tables for rapid CRC calculation + * Generated automatically by crc32.c + */ + +local const unsigned long FAR crc_table[TBLS][256] = +{ + { + 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, + 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, + 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, + 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, + 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, + 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, + 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, + 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, + 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, + 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, + 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, + 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, + 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, + 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, + 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, + 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, + 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, + 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, + 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, + 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, + 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, + 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, + 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, + 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, + 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, + 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, + 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, + 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, + 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, + 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, + 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, + 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, + 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, + 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, + 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, + 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, + 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, + 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, + 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, + 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, + 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, + 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, + 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, + 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, + 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, + 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, + 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, + 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, + 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, + 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, + 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, + 0x2d02ef8dUL +#ifdef BYFOUR + }, + { + 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, + 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, + 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, + 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, + 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, + 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, + 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, + 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, + 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, + 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, + 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, + 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, + 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, + 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, + 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, + 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, + 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, + 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, + 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, + 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, + 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, + 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, + 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, + 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, + 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, + 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, + 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, + 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, + 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, + 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, + 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, + 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, + 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, + 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, + 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, + 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, + 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, + 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, + 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, + 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, + 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, + 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, + 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, + 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, + 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, + 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, + 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, + 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, + 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, + 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, + 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, + 0x9324fd72UL + }, + { + 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, + 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, + 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, + 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, + 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, + 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, + 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, + 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, + 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, + 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, + 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, + 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, + 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, + 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, + 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, + 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, + 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, + 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, + 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, + 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, + 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, + 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, + 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, + 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, + 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, + 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, + 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, + 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, + 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, + 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, + 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, + 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, + 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, + 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, + 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, + 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, + 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, + 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, + 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, + 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, + 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, + 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, + 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, + 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, + 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, + 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, + 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, + 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, + 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, + 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, + 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, + 0xbe9834edUL + }, + { + 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, + 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, + 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, + 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, + 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, + 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, + 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, + 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, + 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, + 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, + 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, + 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, + 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, + 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, + 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, + 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, + 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, + 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, + 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, + 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, + 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, + 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, + 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, + 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, + 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, + 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, + 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, + 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, + 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, + 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, + 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, + 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, + 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, + 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, + 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, + 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, + 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, + 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, + 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, + 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, + 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, + 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, + 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, + 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, + 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, + 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, + 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, + 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, + 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, + 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, + 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, + 0xde0506f1UL + }, + { + 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, + 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, + 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, + 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, + 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, + 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, + 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, + 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, + 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, + 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, + 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, + 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, + 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, + 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, + 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, + 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, + 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, + 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, + 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, + 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, + 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, + 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, + 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, + 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, + 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, + 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, + 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, + 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, + 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, + 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, + 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, + 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, + 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, + 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, + 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, + 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, + 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, + 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, + 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, + 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, + 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, + 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, + 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, + 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, + 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, + 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, + 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, + 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, + 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, + 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, + 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, + 0x8def022dUL + }, + { + 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, + 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, + 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, + 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, + 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, + 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, + 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, + 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, + 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, + 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, + 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, + 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, + 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, + 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, + 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, + 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, + 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, + 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, + 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, + 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, + 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, + 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, + 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, + 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, + 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, + 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, + 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, + 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, + 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, + 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, + 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, + 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, + 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, + 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, + 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, + 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, + 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, + 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, + 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, + 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, + 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, + 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, + 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, + 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, + 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, + 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, + 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, + 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, + 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, + 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, + 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, + 0x72fd2493UL + }, + { + 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, + 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, + 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, + 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, + 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, + 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, + 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, + 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, + 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, + 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, + 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, + 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, + 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, + 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, + 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, + 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, + 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, + 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, + 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, + 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, + 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, + 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, + 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, + 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, + 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, + 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, + 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, + 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, + 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, + 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, + 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, + 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, + 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, + 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, + 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, + 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, + 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, + 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, + 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, + 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, + 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, + 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, + 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, + 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, + 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, + 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, + 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, + 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, + 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, + 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, + 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, + 0xed3498beUL + }, + { + 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, + 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, + 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, + 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, + 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, + 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, + 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, + 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, + 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, + 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, + 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, + 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, + 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, + 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, + 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, + 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, + 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, + 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, + 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, + 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, + 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, + 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, + 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, + 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, + 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, + 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, + 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, + 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, + 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, + 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, + 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, + 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, + 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, + 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, + 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, + 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, + 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, + 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, + 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, + 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, + 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, + 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, + 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, + 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, + 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, + 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, + 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, + 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, + 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, + 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, + 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, + 0xf10605deUL +#endif + } +}; diff --git a/mysql/zlib/deflate.c b/mysql/zlib/deflate.c new file mode 100644 index 0000000..b00bdca --- /dev/null +++ b/mysql/zlib/deflate.c @@ -0,0 +1,1736 @@ +/* deflate.c -- compress data using the deflation algorithm + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * ALGORITHM + * + * The "deflation" process depends on being able to identify portions + * of the input text which are identical to earlier input (within a + * sliding window trailing behind the input currently being processed). + * + * The most straightforward technique turns out to be the fastest for + * most input files: try all possible matches and select the longest. + * The key feature of this algorithm is that insertions into the string + * dictionary are very simple and thus fast, and deletions are avoided + * completely. Insertions are performed at each input character, whereas + * string matches are performed only when the previous match ends. So it + * is preferable to spend more time in matches to allow very fast string + * insertions and avoid deletions. The matching algorithm for small + * strings is inspired from that of Rabin & Karp. A brute force approach + * is used to find longer strings when a small match has been found. + * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze + * (by Leonid Broukhis). + * A previous version of this file used a more sophisticated algorithm + * (by Fiala and Greene) which is guaranteed to run in linear amortized + * time, but has a larger average cost, uses more memory and is patented. + * However the F&G algorithm may be faster for some highly redundant + * files if the parameter max_chain_length (described below) is too large. + * + * ACKNOWLEDGEMENTS + * + * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and + * I found it in 'freeze' written by Leonid Broukhis. + * Thanks to many people for bug reports and testing. + * + * REFERENCES + * + * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". + * Available in http://www.ietf.org/rfc/rfc1951.txt + * + * A description of the Rabin and Karp algorithm is given in the book + * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. + * + * Fiala,E.R., and Greene,D.H. + * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 + * + */ + +/* @(#) $Id$ */ + +#include "deflate.h" + +const char deflate_copyright[] = + " deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly "; +/* + If you use the zlib library in a product, an acknowledgment is welcome + in the documentation of your product. If for some reason you cannot + include such an acknowledgment, I would appreciate that you keep this + copyright string in the executable of your product. + */ + +/* =========================================================================== + * Function prototypes. + */ +typedef enum { + need_more, /* block not completed, need more input or more output */ + block_done, /* block flush performed */ + finish_started, /* finish started, need only more output at next deflate */ + finish_done /* finish done, accept no more input or output */ +} block_state; + +typedef block_state (*compress_func) OF((deflate_state *s, int flush)); +/* Compression function. Returns the block state after the call. */ + +local void fill_window OF((deflate_state *s)); +local block_state deflate_stored OF((deflate_state *s, int flush)); +local block_state deflate_fast OF((deflate_state *s, int flush)); +#ifndef FASTEST +local block_state deflate_slow OF((deflate_state *s, int flush)); +#endif +local void lm_init OF((deflate_state *s)); +local void putShortMSB OF((deflate_state *s, uInt b)); +local void flush_pending OF((z_streamp strm)); +local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); +#ifndef FASTEST +#ifdef ASMV + void match_init OF((void)); /* asm code initialization */ + uInt longest_match OF((deflate_state *s, IPos cur_match)); +#else +local uInt longest_match OF((deflate_state *s, IPos cur_match)); +#endif +#endif +local uInt longest_match_fast OF((deflate_state *s, IPos cur_match)); + +#ifdef DEBUG +local void check_match OF((deflate_state *s, IPos start, IPos match, + int length)); +#endif + +/* =========================================================================== + * Local data + */ + +#define NIL 0 +/* Tail of hash chains */ + +#ifndef TOO_FAR +# define TOO_FAR 4096 +#endif +/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ + +#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) +/* Minimum amount of lookahead, except at the end of the input file. + * See deflate.c for comments about the MIN_MATCH+1. + */ + +/* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to + * exclude worst case performance for pathological files. Better values may be + * found for specific files. + */ +typedef struct config_s { + ush good_length; /* reduce lazy search above this match length */ + ush max_lazy; /* do not perform lazy search above this match length */ + ush nice_length; /* quit search above this match length */ + ush max_chain; + compress_func func; +} config; + +#ifdef FASTEST +local const config configuration_table[2] = { +/* good lazy nice chain */ +/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ +/* 1 */ {4, 4, 8, 4, deflate_fast}}; /* max speed, no lazy matches */ +#else +local const config configuration_table[10] = { +/* good lazy nice chain */ +/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ +/* 1 */ {4, 4, 8, 4, deflate_fast}, /* max speed, no lazy matches */ +/* 2 */ {4, 5, 16, 8, deflate_fast}, +/* 3 */ {4, 6, 32, 32, deflate_fast}, + +/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ +/* 5 */ {8, 16, 32, 32, deflate_slow}, +/* 6 */ {8, 16, 128, 128, deflate_slow}, +/* 7 */ {8, 32, 128, 256, deflate_slow}, +/* 8 */ {32, 128, 258, 1024, deflate_slow}, +/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */ +#endif + +/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 + * For deflate_fast() (levels <= 3) good is ignored and lazy has a different + * meaning. + */ + +#define EQUAL 0 +/* result of memcmp for equal strings */ + +#ifndef NO_DUMMY_DECL +struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ +#endif + +/* =========================================================================== + * Update a hash value with the given input byte + * IN assertion: all calls to to UPDATE_HASH are made with consecutive + * input characters, so that a running hash key can be computed from the + * previous key instead of complete recalculation each time. + */ +#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) + + +/* =========================================================================== + * Insert string str in the dictionary and set match_head to the previous head + * of the hash chain (the most recent string with same hash key). Return + * the previous length of the hash chain. + * If this file is compiled with -DFASTEST, the compression level is forced + * to 1, and no hash chains are maintained. + * IN assertion: all calls to to INSERT_STRING are made with consecutive + * input characters and the first MIN_MATCH bytes of str are valid + * (except for the last MIN_MATCH-1 bytes of the input file). + */ +#ifdef FASTEST +#define INSERT_STRING(s, str, match_head) \ + (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ + match_head = s->head[s->ins_h], \ + s->head[s->ins_h] = (Pos)(str)) +#else +#define INSERT_STRING(s, str, match_head) \ + (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ + match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \ + s->head[s->ins_h] = (Pos)(str)) +#endif + +/* =========================================================================== + * Initialize the hash table (avoiding 64K overflow for 16 bit systems). + * prev[] will be initialized on the fly. + */ +#define CLEAR_HASH(s) \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); + +/* ========================================================================= */ +int ZEXPORT deflateInit_(strm, level, version, stream_size) + z_streamp strm; + int level; + const char *version; + int stream_size; +{ + return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, + Z_DEFAULT_STRATEGY, version, stream_size); + /* To do: ignore strm->next_in if we use it as window */ +} + +/* ========================================================================= */ +int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, + version, stream_size) + z_streamp strm; + int level; + int method; + int windowBits; + int memLevel; + int strategy; + const char *version; + int stream_size; +{ + deflate_state *s; + int wrap = 1; + static const char my_version[] = ZLIB_VERSION; + + ushf *overlay; + /* We overlay pending_buf and d_buf+l_buf. This works since the average + * output size for (length,distance) codes is <= 24 bits. + */ + + if (version == Z_NULL || version[0] != my_version[0] || + stream_size != sizeof(z_stream)) { + return Z_VERSION_ERROR; + } + if (strm == Z_NULL) return Z_STREAM_ERROR; + + strm->msg = Z_NULL; + if (strm->zalloc == (alloc_func)0) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == (free_func)0) strm->zfree = zcfree; + +#ifdef FASTEST + if (level != 0) level = 1; +#else + if (level == Z_DEFAULT_COMPRESSION) level = 6; +#endif + + if (windowBits < 0) { /* suppress zlib wrapper */ + wrap = 0; + windowBits = -windowBits; + } +#ifdef GZIP + else if (windowBits > 15) { + wrap = 2; /* write gzip wrapper instead */ + windowBits -= 16; + } +#endif + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED) { + return Z_STREAM_ERROR; + } + if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */ + s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); + if (s == Z_NULL) return Z_MEM_ERROR; + strm->state = (struct internal_state FAR *)s; + s->strm = strm; + + s->wrap = wrap; + s->gzhead = Z_NULL; + s->w_bits = windowBits; + s->w_size = 1 << s->w_bits; + s->w_mask = s->w_size - 1; + + s->hash_bits = memLevel + 7; + s->hash_size = 1 << s->hash_bits; + s->hash_mask = s->hash_size - 1; + s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); + + s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); + s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); + s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); + + s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ + + overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); + s->pending_buf = (uchf *) overlay; + s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); + + if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || + s->pending_buf == Z_NULL) { + s->status = FINISH_STATE; + strm->msg = (char*)ERR_MSG(Z_MEM_ERROR); + deflateEnd (strm); + return Z_MEM_ERROR; + } + s->d_buf = overlay + s->lit_bufsize/sizeof(ush); + s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; + + s->level = level; + s->strategy = strategy; + s->method = (Byte)method; + + return deflateReset(strm); +} + +/* ========================================================================= */ +int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) + z_streamp strm; + const Bytef *dictionary; + uInt dictLength; +{ + deflate_state *s; + uInt length = dictLength; + uInt n; + IPos hash_head = 0; + + if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL || + strm->state->wrap == 2 || + (strm->state->wrap == 1 && strm->state->status != INIT_STATE)) + return Z_STREAM_ERROR; + + s = strm->state; + if (s->wrap) + strm->adler = adler32(strm->adler, dictionary, dictLength); + + if (length < MIN_MATCH) return Z_OK; + if (length > MAX_DIST(s)) { + length = MAX_DIST(s); + dictionary += dictLength - length; /* use the tail of the dictionary */ + } + zmemcpy(s->window, dictionary, length); + s->strstart = length; + s->block_start = (long)length; + + /* Insert all strings in the hash table (except for the last two bytes). + * s->lookahead stays null, so s->ins_h will be recomputed at the next + * call of fill_window. + */ + s->ins_h = s->window[0]; + UPDATE_HASH(s, s->ins_h, s->window[1]); + for (n = 0; n <= length - MIN_MATCH; n++) { + INSERT_STRING(s, n, hash_head); + } + if (hash_head) hash_head = 0; /* to make compiler happy */ + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateReset (strm) + z_streamp strm; +{ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL || + strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) { + return Z_STREAM_ERROR; + } + + strm->total_in = strm->total_out = 0; + strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ + strm->data_type = Z_UNKNOWN; + + s = (deflate_state *)strm->state; + s->pending = 0; + s->pending_out = s->pending_buf; + + if (s->wrap < 0) { + s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */ + } + s->status = s->wrap ? INIT_STATE : BUSY_STATE; + strm->adler = +#ifdef GZIP + s->wrap == 2 ? crc32(0L, Z_NULL, 0) : +#endif + adler32(0L, Z_NULL, 0); + s->last_flush = Z_NO_FLUSH; + + _tr_init(s); + lm_init(s); + + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateSetHeader (strm, head) + z_streamp strm; + gz_headerp head; +{ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + if (strm->state->wrap != 2) return Z_STREAM_ERROR; + strm->state->gzhead = head; + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflatePrime (strm, bits, value) + z_streamp strm; + int bits; + int value; +{ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + strm->state->bi_valid = bits; + strm->state->bi_buf = (ush)(value & ((1 << bits) - 1)); + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateParams(strm, level, strategy) + z_streamp strm; + int level; + int strategy; +{ + deflate_state *s; + compress_func func; + int err = Z_OK; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + s = strm->state; + +#ifdef FASTEST + if (level != 0) level = 1; +#else + if (level == Z_DEFAULT_COMPRESSION) level = 6; +#endif + if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return Z_STREAM_ERROR; + } + func = configuration_table[s->level].func; + + if (func != configuration_table[level].func && strm->total_in != 0) { + /* Flush the last buffer: */ + err = deflate(strm, Z_PARTIAL_FLUSH); + } + if (s->level != level) { + s->level = level; + s->max_lazy_match = configuration_table[level].max_lazy; + s->good_match = configuration_table[level].good_length; + s->nice_match = configuration_table[level].nice_length; + s->max_chain_length = configuration_table[level].max_chain; + } + s->strategy = strategy; + return err; +} + +/* ========================================================================= */ +int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) + z_streamp strm; + int good_length; + int max_lazy; + int nice_length; + int max_chain; +{ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + s = strm->state; + s->good_match = good_length; + s->max_lazy_match = max_lazy; + s->nice_match = nice_length; + s->max_chain_length = max_chain; + return Z_OK; +} + +/* ========================================================================= + * For the default windowBits of 15 and memLevel of 8, this function returns + * a close to exact, as well as small, upper bound on the compressed size. + * They are coded as constants here for a reason--if the #define's are + * changed, then this function needs to be changed as well. The return + * value for 15 and 8 only works for those exact settings. + * + * For any setting other than those defaults for windowBits and memLevel, + * the value returned is a conservative worst case for the maximum expansion + * resulting from using fixed blocks instead of stored blocks, which deflate + * can emit on compressed data for some combinations of the parameters. + * + * This function could be more sophisticated to provide closer upper bounds + * for every combination of windowBits and memLevel, as well as wrap. + * But even the conservative upper bound of about 14% expansion does not + * seem onerous for output buffer allocation. + */ +uLong ZEXPORT deflateBound(strm, sourceLen) + z_streamp strm; + uLong sourceLen; +{ + deflate_state *s; + uLong destLen; + + /* conservative upper bound */ + destLen = sourceLen + + ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 11; + + /* if can't get parameters, return conservative bound */ + if (strm == Z_NULL || strm->state == Z_NULL) + return destLen; + + /* if not default parameters, return conservative bound */ + s = strm->state; + if (s->w_bits != 15 || s->hash_bits != 8 + 7) + return destLen; + + /* default settings: return tight bound for that case */ + return compressBound(sourceLen); +} + +/* ========================================================================= + * Put a short in the pending buffer. The 16-bit value is put in MSB order. + * IN assertion: the stream state is correct and there is enough room in + * pending_buf. + */ +local void putShortMSB (s, b) + deflate_state *s; + uInt b; +{ + put_byte(s, (Byte)(b >> 8)); + put_byte(s, (Byte)(b & 0xff)); +} + +/* ========================================================================= + * Flush as much pending output as possible. All deflate() output goes + * through this function so some applications may wish to modify it + * to avoid allocating a large strm->next_out buffer and copying into it. + * (See also read_buf()). + */ +local void flush_pending(strm) + z_streamp strm; +{ + unsigned len = strm->state->pending; + + if (len > strm->avail_out) len = strm->avail_out; + if (len == 0) return; + + zmemcpy(strm->next_out, strm->state->pending_out, len); + strm->next_out += len; + strm->state->pending_out += len; + strm->total_out += len; + strm->avail_out -= len; + strm->state->pending -= len; + if (strm->state->pending == 0) { + strm->state->pending_out = strm->state->pending_buf; + } +} + +/* ========================================================================= */ +int ZEXPORT deflate (strm, flush) + z_streamp strm; + int flush; +{ + int old_flush; /* value of flush param for previous deflate call */ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL || + flush > Z_FINISH || flush < 0) { + return Z_STREAM_ERROR; + } + s = strm->state; + + if (strm->next_out == Z_NULL || + (strm->next_in == Z_NULL && strm->avail_in != 0) || + (s->status == FINISH_STATE && flush != Z_FINISH)) { + ERR_RETURN(strm, Z_STREAM_ERROR); + } + if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); + + s->strm = strm; /* just in case */ + old_flush = s->last_flush; + s->last_flush = flush; + + /* Write the header */ + if (s->status == INIT_STATE) { +#ifdef GZIP + if (s->wrap == 2) { + strm->adler = crc32(0L, Z_NULL, 0); + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (s->gzhead == NULL) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s->level == 9 ? 2 : + (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? + 4 : 0)); + put_byte(s, OS_CODE); + s->status = BUSY_STATE; + } + else { + put_byte(s, (s->gzhead->text ? 1 : 0) + + (s->gzhead->hcrc ? 2 : 0) + + (s->gzhead->extra == Z_NULL ? 0 : 4) + + (s->gzhead->name == Z_NULL ? 0 : 8) + + (s->gzhead->comment == Z_NULL ? 0 : 16) + ); + put_byte(s, (Byte)(s->gzhead->time & 0xff)); + put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff)); + put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff)); + put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff)); + put_byte(s, s->level == 9 ? 2 : + (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? + 4 : 0)); + put_byte(s, s->gzhead->os & 0xff); + if (s->gzhead->extra != NULL) { + put_byte(s, s->gzhead->extra_len & 0xff); + put_byte(s, (s->gzhead->extra_len >> 8) & 0xff); + } + if (s->gzhead->hcrc) + strm->adler = crc32(strm->adler, s->pending_buf, + s->pending); + s->gzindex = 0; + s->status = EXTRA_STATE; + } + } + else +#endif + { + uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; + uInt level_flags; + + if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2) + level_flags = 0; + else if (s->level < 6) + level_flags = 1; + else if (s->level == 6) + level_flags = 2; + else + level_flags = 3; + header |= (level_flags << 6); + if (s->strstart != 0) header |= PRESET_DICT; + header += 31 - (header % 31); + + s->status = BUSY_STATE; + putShortMSB(s, header); + + /* Save the adler32 of the preset dictionary: */ + if (s->strstart != 0) { + putShortMSB(s, (uInt)(strm->adler >> 16)); + putShortMSB(s, (uInt)(strm->adler & 0xffff)); + } + strm->adler = adler32(0L, Z_NULL, 0); + } + } +#ifdef GZIP + if (s->status == EXTRA_STATE) { + if (s->gzhead->extra != NULL) { + uInt beg = s->pending; /* start of bytes to update crc */ + + while (s->gzindex < (s->gzhead->extra_len & 0xffff)) { + if (s->pending == s->pending_buf_size) { + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + flush_pending(strm); + beg = s->pending; + if (s->pending == s->pending_buf_size) + break; + } + put_byte(s, s->gzhead->extra[s->gzindex]); + s->gzindex++; + } + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + if (s->gzindex == s->gzhead->extra_len) { + s->gzindex = 0; + s->status = NAME_STATE; + } + } + else + s->status = NAME_STATE; + } + if (s->status == NAME_STATE) { + if (s->gzhead->name != NULL) { + uInt beg = s->pending; /* start of bytes to update crc */ + int val; + + do { + if (s->pending == s->pending_buf_size) { + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + flush_pending(strm); + beg = s->pending; + if (s->pending == s->pending_buf_size) { + val = 1; + break; + } + } + val = s->gzhead->name[s->gzindex++]; + put_byte(s, val); + } while (val != 0); + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + if (val == 0) { + s->gzindex = 0; + s->status = COMMENT_STATE; + } + } + else + s->status = COMMENT_STATE; + } + if (s->status == COMMENT_STATE) { + if (s->gzhead->comment != NULL) { + uInt beg = s->pending; /* start of bytes to update crc */ + int val; + + do { + if (s->pending == s->pending_buf_size) { + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + flush_pending(strm); + beg = s->pending; + if (s->pending == s->pending_buf_size) { + val = 1; + break; + } + } + val = s->gzhead->comment[s->gzindex++]; + put_byte(s, val); + } while (val != 0); + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + if (val == 0) + s->status = HCRC_STATE; + } + else + s->status = HCRC_STATE; + } + if (s->status == HCRC_STATE) { + if (s->gzhead->hcrc) { + if (s->pending + 2 > s->pending_buf_size) + flush_pending(strm); + if (s->pending + 2 <= s->pending_buf_size) { + put_byte(s, (Byte)(strm->adler & 0xff)); + put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); + strm->adler = crc32(0L, Z_NULL, 0); + s->status = BUSY_STATE; + } + } + else + s->status = BUSY_STATE; + } +#endif + + /* Flush as much pending output as possible */ + if (s->pending != 0) { + flush_pending(strm); + if (strm->avail_out == 0) { + /* Since avail_out is 0, deflate will be called again with + * more output space, but possibly with both pending and + * avail_in equal to zero. There won't be anything to do, + * but this is not an error situation so make sure we + * return OK instead of BUF_ERROR at next call of deflate: + */ + s->last_flush = -1; + return Z_OK; + } + + /* Make sure there is something to do and avoid duplicate consecutive + * flushes. For repeated and useless calls with Z_FINISH, we keep + * returning Z_STREAM_END instead of Z_BUF_ERROR. + */ + } else if (strm->avail_in == 0 && flush <= old_flush && + flush != Z_FINISH) { + ERR_RETURN(strm, Z_BUF_ERROR); + } + + /* User must not provide more input after the first FINISH: */ + if (s->status == FINISH_STATE && strm->avail_in != 0) { + ERR_RETURN(strm, Z_BUF_ERROR); + } + + /* Start a new block or continue the current one. + */ + if (strm->avail_in != 0 || s->lookahead != 0 || + (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { + block_state bstate; + + bstate = (*(configuration_table[s->level].func))(s, flush); + + if (bstate == finish_started || bstate == finish_done) { + s->status = FINISH_STATE; + } + if (bstate == need_more || bstate == finish_started) { + if (strm->avail_out == 0) { + s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ + } + return Z_OK; + /* If flush != Z_NO_FLUSH && avail_out == 0, the next call + * of deflate should use the same flush parameter to make sure + * that the flush is complete. So we don't have to output an + * empty block here, this will be done at next call. This also + * ensures that for a very small output buffer, we emit at most + * one empty block. + */ + } + if (bstate == block_done) { + if (flush == Z_PARTIAL_FLUSH) { + _tr_align(s); + } else { /* FULL_FLUSH or SYNC_FLUSH */ + _tr_stored_block(s, (char*)0, 0L, 0); + /* For a full flush, this empty block will be recognized + * as a special marker by inflate_sync(). + */ + if (flush == Z_FULL_FLUSH) { + CLEAR_HASH(s); /* forget history */ + } + } + flush_pending(strm); + if (strm->avail_out == 0) { + s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ + return Z_OK; + } + } + } + Assert(strm->avail_out > 0, "bug2"); + + if (flush != Z_FINISH) return Z_OK; + if (s->wrap <= 0) return Z_STREAM_END; + + /* Write the trailer */ +#ifdef GZIP + if (s->wrap == 2) { + put_byte(s, (Byte)(strm->adler & 0xff)); + put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); + put_byte(s, (Byte)((strm->adler >> 16) & 0xff)); + put_byte(s, (Byte)((strm->adler >> 24) & 0xff)); + put_byte(s, (Byte)(strm->total_in & 0xff)); + put_byte(s, (Byte)((strm->total_in >> 8) & 0xff)); + put_byte(s, (Byte)((strm->total_in >> 16) & 0xff)); + put_byte(s, (Byte)((strm->total_in >> 24) & 0xff)); + } + else +#endif + { + putShortMSB(s, (uInt)(strm->adler >> 16)); + putShortMSB(s, (uInt)(strm->adler & 0xffff)); + } + flush_pending(strm); + /* If avail_out is zero, the application will call deflate again + * to flush the rest. + */ + if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */ + return s->pending != 0 ? Z_OK : Z_STREAM_END; +} + +/* ========================================================================= */ +int ZEXPORT deflateEnd (strm) + z_streamp strm; +{ + int status; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + + status = strm->state->status; + if (status != INIT_STATE && + status != EXTRA_STATE && + status != NAME_STATE && + status != COMMENT_STATE && + status != HCRC_STATE && + status != BUSY_STATE && + status != FINISH_STATE) { + return Z_STREAM_ERROR; + } + + /* Deallocate in reverse order of allocations: */ + TRY_FREE(strm, strm->state->pending_buf); + TRY_FREE(strm, strm->state->head); + TRY_FREE(strm, strm->state->prev); + TRY_FREE(strm, strm->state->window); + + ZFREE(strm, strm->state); + strm->state = Z_NULL; + + return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; +} + +/* ========================================================================= + * Copy the source state to the destination state. + * To simplify the source, this is not supported for 16-bit MSDOS (which + * doesn't have enough memory anyway to duplicate compression states). + */ +int ZEXPORT deflateCopy (dest, source) + z_streamp dest; + z_streamp source; +{ +#ifdef MAXSEG_64K + return Z_STREAM_ERROR; +#else + deflate_state *ds; + deflate_state *ss; + ushf *overlay; + + + if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) { + return Z_STREAM_ERROR; + } + + ss = source->state; + + zmemcpy(dest, source, sizeof(z_stream)); + + ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); + if (ds == Z_NULL) return Z_MEM_ERROR; + dest->state = (struct internal_state FAR *) ds; + zmemcpy(ds, ss, sizeof(deflate_state)); + ds->strm = dest; + + ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); + ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); + ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); + overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); + ds->pending_buf = (uchf *) overlay; + + if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || + ds->pending_buf == Z_NULL) { + deflateEnd (dest); + return Z_MEM_ERROR; + } + /* following zmemcpy do not work for 16-bit MSDOS */ + zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); + zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos)); + zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos)); + zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); + + ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); + ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); + ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; + + ds->l_desc.dyn_tree = ds->dyn_ltree; + ds->d_desc.dyn_tree = ds->dyn_dtree; + ds->bl_desc.dyn_tree = ds->bl_tree; + + return Z_OK; +#endif /* MAXSEG_64K */ +} + +/* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->next_in buffer and copying from it. + * (See also flush_pending()). + */ +local int read_buf(strm, buf, size) + z_streamp strm; + Bytef *buf; + unsigned size; +{ + unsigned len = strm->avail_in; + + if (len > size) len = size; + if (len == 0) return 0; + + strm->avail_in -= len; + + if (strm->state->wrap == 1) { + strm->adler = adler32(strm->adler, strm->next_in, len); + } +#ifdef GZIP + else if (strm->state->wrap == 2) { + strm->adler = crc32(strm->adler, strm->next_in, len); + } +#endif + zmemcpy(buf, strm->next_in, len); + strm->next_in += len; + strm->total_in += len; + + return (int)len; +} + +/* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ +local void lm_init (s) + deflate_state *s; +{ + s->window_size = (ulg)2L*s->w_size; + + CLEAR_HASH(s); + + /* Set the default configuration parameters: + */ + s->max_lazy_match = configuration_table[s->level].max_lazy; + s->good_match = configuration_table[s->level].good_length; + s->nice_match = configuration_table[s->level].nice_length; + s->max_chain_length = configuration_table[s->level].max_chain; + + s->strstart = 0; + s->block_start = 0L; + s->lookahead = 0; + s->match_length = s->prev_length = MIN_MATCH-1; + s->match_available = 0; + s->ins_h = 0; +#ifndef FASTEST +#ifdef ASMV + match_init(); /* initialize the asm code */ +#endif +#endif +} + +#ifndef FASTEST +/* =========================================================================== + * Set match_start to the longest match starting at the given string and + * return its length. Matches shorter or equal to prev_length are discarded, + * in which case the result is equal to prev_length and match_start is + * garbage. + * IN assertions: cur_match is the head of the hash chain for the current + * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 + * OUT assertion: the match length is not greater than s->lookahead. + */ +#ifndef ASMV +/* For 80x86 and 680x0, an optimized version will be provided in match.asm or + * match.S. The code will be functionally equivalent. + */ +local uInt longest_match(s, cur_match) + deflate_state *s; + IPos cur_match; /* current match */ +{ + unsigned chain_length = s->max_chain_length;/* max hash chain length */ + Bytef *scan = s->window + s->strstart; /* current string */ + Bytef *match; /* matched string */ + int len; /* length of current match */ + int best_len = s->prev_length; /* best match length so far */ + int nice_match = s->nice_match; /* stop if match long enough */ + IPos limit = s->strstart > (IPos)MAX_DIST(s) ? + s->strstart - (IPos)MAX_DIST(s) : NIL; + /* Stop when cur_match becomes <= limit. To simplify the code, + * we prevent matches with the string of window index 0. + */ + Posf *prev = s->prev; + uInt wmask = s->w_mask; + +#ifdef UNALIGNED_OK + /* Compare two bytes at a time. Note: this is not always beneficial. + * Try with and without -DUNALIGNED_OK to check. + */ + Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; + ush scan_start = *(ushf*)scan; + ush scan_end = *(ushf*)(scan+best_len-1); +#else + Bytef *strend = s->window + s->strstart + MAX_MATCH; + Byte scan_end1 = scan[best_len-1]; + Byte scan_end = scan[best_len]; +#endif + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + /* Do not waste too much time if we already have a good match: */ + if (s->prev_length >= s->good_match) { + chain_length >>= 2; + } + /* Do not look for matches beyond the end of the input. This is necessary + * to make deflate deterministic. + */ + if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; + + Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + Assert(cur_match < s->strstart, "no future"); + match = s->window + cur_match; + + /* Skip to next match if the match length cannot increase + * or if the match length is less than 2. Note that the checks below + * for insufficient lookahead only occur occasionally for performance + * reasons. Therefore uninitialized memory will be accessed, and + * conditional jumps will be made that depend on those values. + * However the length of the match is limited to the lookahead, so + * the output of deflate is not affected by the uninitialized values. + */ +#if (defined(UNALIGNED_OK) && MAX_MATCH == 258) + /* This code assumes sizeof(unsigned short) == 2. Do not use + * UNALIGNED_OK if your compiler uses a different size. + */ + if (*(ushf*)(match+best_len-1) != scan_end || + *(ushf*)match != scan_start) continue; + + /* It is not necessary to compare scan[2] and match[2] since they are + * always equal when the other bytes match, given that the hash keys + * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at + * strstart+3, +5, ... up to strstart+257. We check for insufficient + * lookahead only every 4th comparison; the 128th check will be made + * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is + * necessary to put more guard bytes at the end of the window, or + * to check more often for insufficient lookahead. + */ + Assert(scan[2] == match[2], "scan[2]?"); + scan++, match++; + do { + } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + scan < strend); + /* The funny "do {}" generates better code on most compilers */ + + /* Here, scan <= window+strstart+257 */ + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + if (*scan == *match) scan++; + + len = (MAX_MATCH - 1) - (int)(strend-scan); + scan = strend - (MAX_MATCH-1); + +#else /* UNALIGNED_OK */ + + if (match[best_len] != scan_end || + match[best_len-1] != scan_end1 || + *match != *scan || + *++match != scan[1]) continue; + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2, match++; + Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + } while (*++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + scan < strend); + + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (int)(strend - scan); + scan = strend - MAX_MATCH; + +#endif /* UNALIGNED_OK */ + + if (len > best_len) { + s->match_start = cur_match; + best_len = len; + if (len >= nice_match) break; +#ifdef UNALIGNED_OK + scan_end = *(ushf*)(scan+best_len-1); +#else + scan_end1 = scan[best_len-1]; + scan_end = scan[best_len]; +#endif + } + } while ((cur_match = prev[cur_match & wmask]) > limit + && --chain_length != 0); + + if ((uInt)best_len <= s->lookahead) return (uInt)best_len; + return s->lookahead; +} +#endif /* ASMV */ +#endif /* FASTEST */ + +/* --------------------------------------------------------------------------- + * Optimized version for level == 1 or strategy == Z_RLE only + */ +local uInt longest_match_fast(s, cur_match) + deflate_state *s; + IPos cur_match; /* current match */ +{ + Bytef *scan = s->window + s->strstart; /* current string */ + Bytef *match; /* matched string */ + int len; /* length of current match */ + Bytef *strend = s->window + s->strstart + MAX_MATCH; + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + Assert(cur_match < s->strstart, "no future"); + + match = s->window + cur_match; + + /* Return failure if the match length is less than 2: + */ + if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2, match += 2; + Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + } while (*++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + scan < strend); + + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (int)(strend - scan); + + if (len < MIN_MATCH) return MIN_MATCH - 1; + + s->match_start = cur_match; + return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead; +} + +#ifdef DEBUG +/* =========================================================================== + * Check that the match at match_start is indeed a match. + */ +local void check_match(s, start, match, length) + deflate_state *s; + IPos start, match; + int length; +{ + /* check that the match is indeed a match */ + if (zmemcmp(s->window + match, + s->window + start, length) != EQUAL) { + fprintf(stderr, " start %u, match %u, length %d\n", + start, match, length); + do { + fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); + } while (--length != 0); + z_error("invalid match"); + } + if (z_verbose > 1) { + fprintf(stderr,"\\[%d,%d]", start-match, length); + do { putc(s->window[start++], stderr); } while (--length != 0); + } +} +#else +# define check_match(s, start, match, length) +#endif /* DEBUG */ + +/* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ +local void fill_window(s) + deflate_state *s; +{ + unsigned n, m; + Posf *p; + unsigned more; /* Amount of free space at the end of the window. */ + uInt wsize = s->w_size; + + do { + more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); + + /* Deal with !@#$% 64K limit: */ + if (sizeof(int) <= 2) { + if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + more = wsize; + + } else if (more == (unsigned)(-1)) { + /* Very unlikely, but possible on 16 bit machine if + * strstart == 0 && lookahead == 1 (input done a byte at time) + */ + more--; + } + } + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (s->strstart >= wsize+MAX_DIST(s)) { + + zmemcpy(s->window, s->window+wsize, (unsigned)wsize); + s->match_start -= wsize; + s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ + s->block_start -= (long) wsize; + + /* Slide the hash table (could be avoided with 32 bit values + at the expense of memory usage). We slide even when level == 0 + to keep the hash table consistent if we switch back to level > 0 + later. (Using level 0 permanently is not an optimal usage of + zlib, so we don't care about this pathological case.) + */ + /* %%% avoid this when Z_RLE */ + n = s->hash_size; + p = &s->head[n]; + do { + m = *--p; + *p = (Pos)(m >= wsize ? m-wsize : NIL); + } while (--n); + + n = wsize; +#ifndef FASTEST + p = &s->prev[n]; + do { + m = *--p; + *p = (Pos)(m >= wsize ? m-wsize : NIL); + /* If n is not on any hash chain, prev[n] is garbage but + * its value will never be used. + */ + } while (--n); +#endif + more += wsize; + } + if (s->strm->avail_in == 0) return; + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + Assert(more >= 2, "more < 2"); + + n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); + s->lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s->lookahead >= MIN_MATCH) { + s->ins_h = s->window[s->strstart]; + UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); +} + +/* =========================================================================== + * Flush the current block, with given end-of-file flag. + * IN assertion: strstart is set to the end of the current match. + */ +#define FLUSH_BLOCK_ONLY(s, eof) { \ + _tr_flush_block(s, (s->block_start >= 0L ? \ + (charf *)&s->window[(unsigned)s->block_start] : \ + (charf *)Z_NULL), \ + (ulg)((long)s->strstart - s->block_start), \ + (eof)); \ + s->block_start = s->strstart; \ + flush_pending(s->strm); \ + Tracev((stderr,"[FLUSH]")); \ +} + +/* Same but force premature exit if necessary. */ +#define FLUSH_BLOCK(s, eof) { \ + FLUSH_BLOCK_ONLY(s, eof); \ + if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \ +} + +/* =========================================================================== + * Copy without compression as much as possible from the input stream, return + * the current block state. + * This function does not insert new strings in the dictionary since + * uncompressible data is probably not useful. This function is used + * only for the level=0 compression option. + * NOTE: this function should be optimized to avoid extra copying from + * window to pending_buf. + */ +local block_state deflate_stored(s, flush) + deflate_state *s; + int flush; +{ + /* Stored blocks are limited to 0xffff bytes, pending_buf is limited + * to pending_buf_size, and each stored block has a 5 byte header: + */ + ulg max_block_size = 0xffff; + ulg max_start; + + if (max_block_size > s->pending_buf_size - 5) { + max_block_size = s->pending_buf_size - 5; + } + + /* Copy as much as possible from input to output: */ + for (;;) { + /* Fill the window as much as possible: */ + if (s->lookahead <= 1) { + + Assert(s->strstart < s->w_size+MAX_DIST(s) || + s->block_start >= (long)s->w_size, "slide too late"); + + fill_window(s); + if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more; + + if (s->lookahead == 0) break; /* flush the current block */ + } + Assert(s->block_start >= 0L, "block gone"); + + s->strstart += s->lookahead; + s->lookahead = 0; + + /* Emit a stored block if pending_buf will be full: */ + max_start = s->block_start + max_block_size; + if (s->strstart == 0 || (ulg)s->strstart >= max_start) { + /* strstart == 0 is possible when wraparound on 16-bit machine */ + s->lookahead = (uInt)(s->strstart - max_start); + s->strstart = (uInt)max_start; + FLUSH_BLOCK(s, 0); + } + /* Flush if we may have to slide, otherwise block_start may become + * negative and the data will be gone: + */ + if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) { + FLUSH_BLOCK(s, 0); + } + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +/* =========================================================================== + * Compress as much as possible from the input stream, return the current + * block state. + * This function does not perform lazy evaluation of matches and inserts + * new strings in the dictionary only for unmatched strings or for short + * matches. It is used only for the fast compression options. + */ +local block_state deflate_fast(s, flush) + deflate_state *s; + int flush; +{ + IPos hash_head = NIL; /* head of the hash chain */ + int bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s->lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + if (s->lookahead >= MIN_MATCH) { + INSERT_STRING(s, s->strstart, hash_head); + } + + /* Find the longest match, discarding those <= prev_length. + * At this point we have always match_length < MIN_MATCH + */ + if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ +#ifdef FASTEST + if ((s->strategy != Z_HUFFMAN_ONLY && s->strategy != Z_RLE) || + (s->strategy == Z_RLE && s->strstart - hash_head == 1)) { + s->match_length = longest_match_fast (s, hash_head); + } +#else + if (s->strategy != Z_HUFFMAN_ONLY && s->strategy != Z_RLE) { + s->match_length = longest_match (s, hash_head); + } else if (s->strategy == Z_RLE && s->strstart - hash_head == 1) { + s->match_length = longest_match_fast (s, hash_head); + } +#endif + /* longest_match() or longest_match_fast() sets match_start */ + } + if (s->match_length >= MIN_MATCH) { + check_match(s, s->strstart, s->match_start, s->match_length); + + _tr_tally_dist(s, s->strstart - s->match_start, + s->match_length - MIN_MATCH, bflush); + + s->lookahead -= s->match_length; + + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ +#ifndef FASTEST + if (s->match_length <= s->max_insert_length && + s->lookahead >= MIN_MATCH) { + s->match_length--; /* string at strstart already in table */ + do { + s->strstart++; + INSERT_STRING(s, s->strstart, hash_head); + /* strstart never exceeds WSIZE-MAX_MATCH, so there are + * always MIN_MATCH bytes ahead. + */ + } while (--s->match_length != 0); + s->strstart++; + } else +#endif + { + s->strstart += s->match_length; + s->match_length = 0; + s->ins_h = s->window[s->strstart]; + UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not + * matter since it will be recomputed at next deflate call. + */ + } + } else { + /* No match, output a literal byte */ + Tracevv((stderr,"%c", s->window[s->strstart])); + _tr_tally_lit (s, s->window[s->strstart], bflush); + s->lookahead--; + s->strstart++; + } + if (bflush) FLUSH_BLOCK(s, 0); + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +#ifndef FASTEST +/* =========================================================================== + * Same as above, but achieves better compression. We use a lazy + * evaluation for matches: a match is finally adopted only if there is + * no better match at the next window position. + */ +local block_state deflate_slow(s, flush) + deflate_state *s; + int flush; +{ + IPos hash_head = NIL; /* head of hash chain */ + int bflush; /* set if current block must be flushed */ + + /* Process the input block. */ + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s->lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + if (s->lookahead >= MIN_MATCH) { + INSERT_STRING(s, s->strstart, hash_head); + } + + /* Find the longest match, discarding those <= prev_length. + */ + s->prev_length = s->match_length, s->prev_match = s->match_start; + s->match_length = MIN_MATCH-1; + + if (hash_head != NIL && s->prev_length < s->max_lazy_match && + s->strstart - hash_head <= MAX_DIST(s)) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + if (s->strategy != Z_HUFFMAN_ONLY && s->strategy != Z_RLE) { + s->match_length = longest_match (s, hash_head); + } else if (s->strategy == Z_RLE && s->strstart - hash_head == 1) { + s->match_length = longest_match_fast (s, hash_head); + } + /* longest_match() or longest_match_fast() sets match_start */ + + if (s->match_length <= 5 && (s->strategy == Z_FILTERED +#if TOO_FAR <= 32767 + || (s->match_length == MIN_MATCH && + s->strstart - s->match_start > TOO_FAR) +#endif + )) { + + /* If prev_match is also MIN_MATCH, match_start is garbage + * but we will ignore the current match anyway. + */ + s->match_length = MIN_MATCH-1; + } + } + /* If there was a match at the previous step and the current + * match is not better, output the previous match: + */ + if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { + uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; + /* Do not insert strings in hash table beyond this. */ + + check_match(s, s->strstart-1, s->prev_match, s->prev_length); + + _tr_tally_dist(s, s->strstart -1 - s->prev_match, + s->prev_length - MIN_MATCH, bflush); + + /* Insert in hash table all strings up to the end of the match. + * strstart-1 and strstart are already inserted. If there is not + * enough lookahead, the last two strings are not inserted in + * the hash table. + */ + s->lookahead -= s->prev_length-1; + s->prev_length -= 2; + do { + if (++s->strstart <= max_insert) { + INSERT_STRING(s, s->strstart, hash_head); + } + } while (--s->prev_length != 0); + s->match_available = 0; + s->match_length = MIN_MATCH-1; + s->strstart++; + + if (bflush) FLUSH_BLOCK(s, 0); + + } else if (s->match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + Tracevv((stderr,"%c", s->window[s->strstart-1])); + _tr_tally_lit(s, s->window[s->strstart-1], bflush); + if (bflush) { + FLUSH_BLOCK_ONLY(s, 0); + } + s->strstart++; + s->lookahead--; + if (s->strm->avail_out == 0) return need_more; + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ + s->match_available = 1; + s->strstart++; + s->lookahead--; + } + } + Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s->match_available) { + Tracevv((stderr,"%c", s->window[s->strstart-1])); + _tr_tally_lit(s, s->window[s->strstart-1], bflush); + s->match_available = 0; + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} +#endif /* FASTEST */ + +#if 0 +/* =========================================================================== + * For Z_RLE, simply look for runs of bytes, generate matches only of distance + * one. Do not maintain a hash table. (It will be regenerated if this run of + * deflate switches away from Z_RLE.) + */ +local block_state deflate_rle(s, flush) + deflate_state *s; + int flush; +{ + int bflush; /* set if current block must be flushed */ + uInt run; /* length of run */ + uInt max; /* maximum length of run */ + uInt prev; /* byte at distance one to match */ + Bytef *scan; /* scan for end of run */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the longest encodable run. + */ + if (s->lookahead < MAX_MATCH) { + fill_window(s); + if (s->lookahead < MAX_MATCH && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* See how many times the previous byte repeats */ + run = 0; + if (s->strstart > 0) { /* if there is a previous byte, that is */ + max = s->lookahead < MAX_MATCH ? s->lookahead : MAX_MATCH; + scan = s->window + s->strstart - 1; + prev = *scan++; + do { + if (*scan++ != prev) + break; + } while (++run < max); + } + + /* Emit match if have run of MIN_MATCH or longer, else emit literal */ + if (run >= MIN_MATCH) { + check_match(s, s->strstart, s->strstart - 1, run); + _tr_tally_dist(s, 1, run - MIN_MATCH, bflush); + s->lookahead -= run; + s->strstart += run; + } else { + /* No match, output a literal byte */ + Tracevv((stderr,"%c", s->window[s->strstart])); + _tr_tally_lit (s, s->window[s->strstart], bflush); + s->lookahead--; + s->strstart++; + } + if (bflush) FLUSH_BLOCK(s, 0); + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} +#endif diff --git a/mysql/zlib/deflate.h b/mysql/zlib/deflate.h new file mode 100644 index 0000000..05a5ab3 --- /dev/null +++ b/mysql/zlib/deflate.h @@ -0,0 +1,331 @@ +/* deflate.h -- internal compression state + * Copyright (C) 1995-2004 Jean-loup Gailly + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id$ */ + +#ifndef DEFLATE_H +#define DEFLATE_H + +#include "zutil.h" + +/* define NO_GZIP when compiling if you want to disable gzip header and + trailer creation by deflate(). NO_GZIP would be used to avoid linking in + the crc code when it is not needed. For shared libraries, gzip encoding + should be left enabled. */ +#ifndef NO_GZIP +# define GZIP +#endif + +/* =========================================================================== + * Internal compression state. + */ + +#define LENGTH_CODES 29 +/* number of length codes, not counting the special END_BLOCK code */ + +#define LITERALS 256 +/* number of literal bytes 0..255 */ + +#define L_CODES (LITERALS+1+LENGTH_CODES) +/* number of Literal or Length codes, including the END_BLOCK code */ + +#define D_CODES 30 +/* number of distance codes */ + +#define BL_CODES 19 +/* number of codes used to transfer the bit lengths */ + +#define HEAP_SIZE (2*L_CODES+1) +/* maximum heap size */ + +#define MAX_BITS 15 +/* All codes must not exceed MAX_BITS bits */ + +#define INIT_STATE 42 +#define EXTRA_STATE 69 +#define NAME_STATE 73 +#define COMMENT_STATE 91 +#define HCRC_STATE 103 +#define BUSY_STATE 113 +#define FINISH_STATE 666 +/* Stream status */ + + +/* Data structure describing a single value and its code string. */ +typedef struct ct_data_s { + union { + ush freq; /* frequency count */ + ush code; /* bit string */ + } fc; + union { + ush dad; /* father node in Huffman tree */ + ush len; /* length of bit string */ + } dl; +} FAR ct_data; + +#define Freq fc.freq +#define Code fc.code +#define Dad dl.dad +#define Len dl.len + +typedef struct static_tree_desc_s static_tree_desc; + +typedef struct tree_desc_s { + ct_data *dyn_tree; /* the dynamic tree */ + int max_code; /* largest code with non zero frequency */ + static_tree_desc *stat_desc; /* the corresponding static tree */ +} FAR tree_desc; + +typedef ush Pos; +typedef Pos FAR Posf; +typedef unsigned IPos; + +/* A Pos is an index in the character window. We use short instead of int to + * save space in the various tables. IPos is used only for parameter passing. + */ + +typedef struct internal_state { + z_streamp strm; /* pointer back to this zlib stream */ + int status; /* as the name implies */ + Bytef *pending_buf; /* output still pending */ + ulg pending_buf_size; /* size of pending_buf */ + Bytef *pending_out; /* next pending byte to output to the stream */ + uInt pending; /* nb of bytes in the pending buffer */ + int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ + gz_headerp gzhead; /* gzip header information to write */ + uInt gzindex; /* where in extra, name, or comment */ + Byte method; /* STORED (for zip only) or DEFLATED */ + int last_flush; /* value of flush param for previous deflate call */ + + /* used by deflate.c: */ + + uInt w_size; /* LZ77 window size (32K by default) */ + uInt w_bits; /* log2(w_size) (8..16) */ + uInt w_mask; /* w_size - 1 */ + + Bytef *window; + /* Sliding window. Input bytes are read into the second half of the window, + * and move to the first half later to keep a dictionary of at least wSize + * bytes. With this organization, matches are limited to a distance of + * wSize-MAX_MATCH bytes, but this ensures that IO is always + * performed with a length multiple of the block size. Also, it limits + * the window size to 64K, which is quite useful on MSDOS. + * To do: use the user input buffer as sliding window. + */ + + ulg window_size; + /* Actual size of window: 2*wSize, except when the user input buffer + * is directly used as sliding window. + */ + + Posf *prev; + /* Link to older string with same hash index. To limit the size of this + * array to 64K, this link is maintained only for the last 32K strings. + * An index in this array is thus a window index modulo 32K. + */ + + Posf *head; /* Heads of the hash chains or NIL. */ + + uInt ins_h; /* hash index of string to be inserted */ + uInt hash_size; /* number of elements in hash table */ + uInt hash_bits; /* log2(hash_size) */ + uInt hash_mask; /* hash_size-1 */ + + uInt hash_shift; + /* Number of bits by which ins_h must be shifted at each input + * step. It must be such that after MIN_MATCH steps, the oldest + * byte no longer takes part in the hash key, that is: + * hash_shift * MIN_MATCH >= hash_bits + */ + + long block_start; + /* Window position at the beginning of the current output block. Gets + * negative when the window is moved backwards. + */ + + uInt match_length; /* length of best match */ + IPos prev_match; /* previous match */ + int match_available; /* set if previous match exists */ + uInt strstart; /* start of string to insert */ + uInt match_start; /* start of matching string */ + uInt lookahead; /* number of valid bytes ahead in window */ + + uInt prev_length; + /* Length of the best match at previous step. Matches not greater than this + * are discarded. This is used in the lazy match evaluation. + */ + + uInt max_chain_length; + /* To speed up deflation, hash chains are never searched beyond this + * length. A higher limit improves compression ratio but degrades the + * speed. + */ + + uInt max_lazy_match; + /* Attempt to find a better match only when the current match is strictly + * smaller than this value. This mechanism is used only for compression + * levels >= 4. + */ +# define max_insert_length max_lazy_match + /* Insert new strings in the hash table only if the match length is not + * greater than this length. This saves time but degrades compression. + * max_insert_length is used only for compression levels <= 3. + */ + + int level; /* compression level (1..9) */ + int strategy; /* favor or force Huffman coding*/ + + uInt good_match; + /* Use a faster search when the previous match is longer than this */ + + int nice_match; /* Stop searching when current match exceeds this */ + + /* used by trees.c: */ + /* Didn't use ct_data typedef below to supress compiler warning */ + struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ + struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ + struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ + + struct tree_desc_s l_desc; /* desc. for literal tree */ + struct tree_desc_s d_desc; /* desc. for distance tree */ + struct tree_desc_s bl_desc; /* desc. for bit length tree */ + + ush bl_count[MAX_BITS+1]; + /* number of codes at each bit length for an optimal tree */ + + int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ + int heap_len; /* number of elements in the heap */ + int heap_max; /* element of largest frequency */ + /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. + * The same heap array is used to build all trees. + */ + + uch depth[2*L_CODES+1]; + /* Depth of each subtree used as tie breaker for trees of equal frequency + */ + + uchf *l_buf; /* buffer for literals or lengths */ + + uInt lit_bufsize; + /* Size of match buffer for literals/lengths. There are 4 reasons for + * limiting lit_bufsize to 64K: + * - frequencies can be kept in 16 bit counters + * - if compression is not successful for the first block, all input + * data is still in the window so we can still emit a stored block even + * when input comes from standard input. (This can also be done for + * all blocks if lit_bufsize is not greater than 32K.) + * - if compression is not successful for a file smaller than 64K, we can + * even emit a stored file instead of a stored block (saving 5 bytes). + * This is applicable only for zip (not gzip or zlib). + * - creating new Huffman trees less frequently may not provide fast + * adaptation to changes in the input data statistics. (Take for + * example a binary file with poorly compressible code followed by + * a highly compressible string table.) Smaller buffer sizes give + * fast adaptation but have of course the overhead of transmitting + * trees more frequently. + * - I can't count above 4 + */ + + uInt last_lit; /* running index in l_buf */ + + ushf *d_buf; + /* Buffer for distances. To simplify the code, d_buf and l_buf have + * the same number of elements. To use different lengths, an extra flag + * array would be necessary. + */ + + ulg opt_len; /* bit length of current block with optimal trees */ + ulg static_len; /* bit length of current block with static trees */ + uInt matches; /* number of string matches in current block */ + int last_eob_len; /* bit length of EOB code for last block */ + +#ifdef DEBUG + ulg compressed_len; /* total bit length of compressed file mod 2^32 */ + ulg bits_sent; /* bit length of compressed data sent mod 2^32 */ +#endif + + ush bi_buf; + /* Output buffer. bits are inserted starting at the bottom (least + * significant bits). + */ + int bi_valid; + /* Number of valid bits in bi_buf. All bits above the last valid bit + * are always zero. + */ + +} FAR deflate_state; + +/* Output a byte on the stream. + * IN assertion: there is enough room in pending_buf. + */ +#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} + + +#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) +/* Minimum amount of lookahead, except at the end of the input file. + * See deflate.c for comments about the MIN_MATCH+1. + */ + +#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) +/* In order to simplify the code, particularly on 16 bit machines, match + * distances are limited to MAX_DIST instead of WSIZE. + */ + + /* in trees.c */ +void _tr_init OF((deflate_state *s)); +int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); +void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len, + int eof)); +void _tr_align OF((deflate_state *s)); +void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, + int eof)); + +#define d_code(dist) \ + ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) +/* Mapping from a distance to a distance code. dist is the distance - 1 and + * must not have side effects. _dist_code[256] and _dist_code[257] are never + * used. + */ + +#ifndef DEBUG +/* Inline versions of _tr_tally for speed: */ + +#if defined(GEN_TREES_H) || !defined(STDC) + extern uch _length_code[]; + extern uch _dist_code[]; +#else + extern const uch _length_code[]; + extern const uch _dist_code[]; +#endif + +# define _tr_tally_lit(s, c, flush) \ + { uch cc = (c); \ + s->d_buf[s->last_lit] = 0; \ + s->l_buf[s->last_lit++] = cc; \ + s->dyn_ltree[cc].Freq++; \ + flush = (s->last_lit == s->lit_bufsize-1); \ + } +# define _tr_tally_dist(s, distance, length, flush) \ + { uch len = (length); \ + ush dist = (distance); \ + s->d_buf[s->last_lit] = dist; \ + s->l_buf[s->last_lit++] = len; \ + dist--; \ + s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ + s->dyn_dtree[d_code(dist)].Freq++; \ + flush = (s->last_lit == s->lit_bufsize-1); \ + } +#else +# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) +# define _tr_tally_dist(s, distance, length, flush) \ + flush = _tr_tally(s, distance, length) +#endif + +#endif /* DEFLATE_H */ diff --git a/mysql/zlib/gzio.c b/mysql/zlib/gzio.c new file mode 100644 index 0000000..ed4e77c --- /dev/null +++ b/mysql/zlib/gzio.c @@ -0,0 +1,1031 @@ +/* gzio.c -- IO on .gz files + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + * + * Compile this file with -DNO_GZCOMPRESS to avoid the compression code. + */ + +/* @(#) $Id$ */ + +/* Need to be included "early" to control other headers */ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include "zutil.h" + +#ifdef NO_DEFLATE /* for compatibility with old definition */ +# define NO_GZCOMPRESS +#endif + +#ifndef NO_DUMMY_DECL +struct internal_state {int dummy;}; /* for buggy compilers */ +#endif + +#ifndef Z_BUFSIZE +# ifdef MAXSEG_64K +# define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */ +# else +# define Z_BUFSIZE 16384 +# endif +#endif +#ifndef Z_PRINTF_BUFSIZE +# define Z_PRINTF_BUFSIZE 4096 +#endif + +#ifdef __MVS__ +# pragma map (fdopen , "\174\174FDOPEN") + FILE *fdopen(int, const char *); +#endif + +#ifndef STDC +extern voidp malloc OF((uInt size)); +extern void free OF((voidpf ptr)); +#endif + +#define ALLOC(size) malloc(size) +#define TRYFREE(p) {if (p) free(p);} + +static int const gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */ + +/* gzip flag byte */ +#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ +#define HEAD_CRC 0x02 /* bit 1 set: header CRC present */ +#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ +#define ORIG_NAME 0x08 /* bit 3 set: original file name present */ +#define COMMENT 0x10 /* bit 4 set: file comment present */ +#define RESERVED 0xE0 /* bits 5..7: reserved */ + +typedef struct gz_stream { + z_stream stream; + int z_err; /* error code for last stream operation */ + int z_eof; /* set if end of input file */ + FILE *file; /* .gz file */ + Byte *inbuf; /* input buffer */ + Byte *outbuf; /* output buffer */ + uLong crc; /* crc32 of uncompressed data */ + char *msg; /* error message */ + char *path; /* path name for debugging only */ + int transparent; /* 1 if input file is not a .gz file */ + char mode; /* 'w' or 'r' */ + z_off_t start; /* start of compressed data in file (header skipped) */ + z_off_t in; /* bytes into deflate or inflate */ + z_off_t out; /* bytes out of deflate or inflate */ + int back; /* one character push-back */ + int last; /* true if push-back is last character */ +} gz_stream; + + +local gzFile gz_open OF((const char *path, const char *mode, int fd)); +local int do_flush OF((gzFile file, int flush)); +local int get_byte OF((gz_stream *s)); +local void check_header OF((gz_stream *s)); +local int destroy OF((gz_stream *s)); +local void putLong OF((FILE *file, uLong x)); +local uLong getLong OF((gz_stream *s)); + +/* =========================================================================== + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb"). The file is given either by file descriptor + or path name (if fd == -1). + gz_open returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). +*/ +local gzFile gz_open (path, mode, fd) + const char *path; + const char *mode; + int fd; +{ + int err; + int level = Z_DEFAULT_COMPRESSION; /* compression level */ + int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */ + char *p = (char*)mode; + gz_stream *s; + char fmode[80]; /* copy of mode, without the compression level */ + char *m = fmode; + + if (!path || !mode) return Z_NULL; + + s = (gz_stream *)ALLOC(sizeof(gz_stream)); + if (!s) return Z_NULL; + + s->stream.zalloc = (alloc_func)0; + s->stream.zfree = (free_func)0; + s->stream.opaque = (voidpf)0; + s->stream.next_in = s->inbuf = Z_NULL; + s->stream.next_out = s->outbuf = Z_NULL; + s->stream.avail_in = s->stream.avail_out = 0; + s->file = NULL; + s->z_err = Z_OK; + s->z_eof = 0; + s->in = 0; + s->out = 0; + s->back = EOF; + s->crc = crc32(0L, Z_NULL, 0); + s->msg = NULL; + s->transparent = 0; + + s->path = (char*)ALLOC(strlen(path)+1); + if (s->path == NULL) { + return destroy(s), (gzFile)Z_NULL; + } + strcpy(s->path, path); /* do this early for debugging */ + + s->mode = '\0'; + do { + if (*p == 'r') s->mode = 'r'; + if (*p == 'w' || *p == 'a') s->mode = 'w'; + if (*p >= '0' && *p <= '9') { + level = *p - '0'; + } else if (*p == 'f') { + strategy = Z_FILTERED; + } else if (*p == 'h') { + strategy = Z_HUFFMAN_ONLY; + } else if (*p == 'R') { + strategy = Z_RLE; + } else { + *m++ = *p; /* copy the mode */ + } + } while (*p++ && m != fmode + sizeof(fmode)); + if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL; + + if (s->mode == 'w') { +#ifdef NO_GZCOMPRESS + err = Z_STREAM_ERROR; +#else + err = deflateInit2(&(s->stream), level, + Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy); + /* windowBits is passed < 0 to suppress zlib header */ + + s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); +#endif + if (err != Z_OK || s->outbuf == Z_NULL) { + return destroy(s), (gzFile)Z_NULL; + } + } else { + s->stream.next_in = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); + + err = inflateInit2(&(s->stream), -MAX_WBITS); + /* windowBits is passed < 0 to tell that there is no zlib header. + * Note that in this case inflate *requires* an extra "dummy" byte + * after the compressed stream in order to complete decompression and + * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are + * present after the compressed stream. + */ + if (err != Z_OK || s->inbuf == Z_NULL) { + return destroy(s), (gzFile)Z_NULL; + } + } + s->stream.avail_out = Z_BUFSIZE; + + errno = 0; + s->file = fd < 0 ? F_OPEN(path, fmode) : (FILE*)fdopen(fd, fmode); + + if (s->file == NULL) { + return destroy(s), (gzFile)Z_NULL; + } + if (s->mode == 'w') { + /* Write a very simple .gz header: + */ + fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], + Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE); + s->start = 10L; + /* We use 10L instead of ftell(s->file) to because ftell causes an + * fflush on some systems. This version of the library doesn't use + * start anyway in write mode, so this initialization is not + * necessary. + */ + } else { + check_header(s); /* skip the .gz header */ + s->start = ftell(s->file) - s->stream.avail_in; + } + + return (gzFile)s; +} + +/* =========================================================================== + Opens a gzip (.gz) file for reading or writing. +*/ +gzFile ZEXPORT gzopen (path, mode) + const char *path; + const char *mode; +{ + return gz_open (path, mode, -1); +} + +/* =========================================================================== + Associate a gzFile with the file descriptor fd. fd is not dup'ed here + to mimic the behavio(u)r of fdopen. +*/ +gzFile ZEXPORT gzdopen (fd, mode) + int fd; + const char *mode; +{ + char name[46]; /* allow for up to 128-bit integers */ + + if (fd < 0) return (gzFile)Z_NULL; + sprintf(name, "", fd); /* for debugging */ + + return gz_open (name, mode, fd); +} + +/* =========================================================================== + * Update the compression level and strategy + */ +int ZEXPORT gzsetparams (file, level, strategy) + gzFile file; + int level; + int strategy; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; + + /* Make room to allow flushing */ + if (s->stream.avail_out == 0) { + + s->stream.next_out = s->outbuf; + if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { + s->z_err = Z_ERRNO; + } + s->stream.avail_out = Z_BUFSIZE; + } + + return deflateParams (&(s->stream), level, strategy); +} + +/* =========================================================================== + Read a byte from a gz_stream; update next_in and avail_in. Return EOF + for end of file. + IN assertion: the stream s has been sucessfully opened for reading. +*/ +local int get_byte(s) + gz_stream *s; +{ + if (s->z_eof) return EOF; + if (s->stream.avail_in == 0) { + errno = 0; + s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file); + if (s->stream.avail_in == 0) { + s->z_eof = 1; + if (ferror(s->file)) s->z_err = Z_ERRNO; + return EOF; + } + s->stream.next_in = s->inbuf; + } + s->stream.avail_in--; + return *(s->stream.next_in)++; +} + +/* =========================================================================== + Check the gzip header of a gz_stream opened for reading. Set the stream + mode to transparent if the gzip magic header is not present; set s->err + to Z_DATA_ERROR if the magic header is present but the rest of the header + is incorrect. + IN assertion: the stream s has already been created sucessfully; + s->stream.avail_in is zero for the first time, but may be non-zero + for concatenated .gz files. +*/ +local void check_header(s) + gz_stream *s; +{ + int method; /* method byte */ + int flags; /* flags byte */ + uInt len; + int c; + + /* Assure two bytes in the buffer so we can peek ahead -- handle case + where first byte of header is at the end of the buffer after the last + gzip segment */ + len = s->stream.avail_in; + if (len < 2) { + if (len) s->inbuf[0] = s->stream.next_in[0]; + errno = 0; + len = (uInt)fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file); + if (len == 0 && ferror(s->file)) s->z_err = Z_ERRNO; + s->stream.avail_in += len; + s->stream.next_in = s->inbuf; + if (s->stream.avail_in < 2) { + s->transparent = s->stream.avail_in; + return; + } + } + + /* Peek ahead to check the gzip magic header */ + if (s->stream.next_in[0] != gz_magic[0] || + s->stream.next_in[1] != gz_magic[1]) { + s->transparent = 1; + return; + } + s->stream.avail_in -= 2; + s->stream.next_in += 2; + + /* Check the rest of the gzip header */ + method = get_byte(s); + flags = get_byte(s); + if (method != Z_DEFLATED || (flags & RESERVED) != 0) { + s->z_err = Z_DATA_ERROR; + return; + } + + /* Discard time, xflags and OS code: */ + for (len = 0; len < 6; len++) (void)get_byte(s); + + if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */ + len = (uInt)get_byte(s); + len += ((uInt)get_byte(s))<<8; + /* len is garbage if EOF but the loop below will quit anyway */ + while (len-- != 0 && get_byte(s) != EOF) ; + } + if ((flags & ORIG_NAME) != 0) { /* skip the original file name */ + while ((c = get_byte(s)) != 0 && c != EOF) ; + } + if ((flags & COMMENT) != 0) { /* skip the .gz file comment */ + while ((c = get_byte(s)) != 0 && c != EOF) ; + } + if ((flags & HEAD_CRC) != 0) { /* skip the header crc */ + for (len = 0; len < 2; len++) (void)get_byte(s); + } + s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK; +} + + /* =========================================================================== + * Cleanup then free the given gz_stream. Return a zlib error code. + Try freeing in the reverse order of allocations. + */ +local int destroy (s) + gz_stream *s; +{ + int err = Z_OK; + + if (!s) return Z_STREAM_ERROR; + + TRYFREE(s->msg); + + if (s->stream.state != NULL) { + if (s->mode == 'w') { +#ifdef NO_GZCOMPRESS + err = Z_STREAM_ERROR; +#else + err = deflateEnd(&(s->stream)); +#endif + } else if (s->mode == 'r') { + err = inflateEnd(&(s->stream)); + } + } + if (s->file != NULL && fclose(s->file)) { +#ifdef ESPIPE + if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */ +#endif + err = Z_ERRNO; + } + if (s->z_err < 0) err = s->z_err; + + TRYFREE(s->inbuf); + TRYFREE(s->outbuf); + TRYFREE(s->path); + TRYFREE(s); + return err; +} + +/* =========================================================================== + Reads the given number of uncompressed bytes from the compressed file. + gzread returns the number of bytes actually read (0 for end of file). +*/ +int ZEXPORT gzread (file, buf, len) + gzFile file; + voidp buf; + unsigned len; +{ + gz_stream *s = (gz_stream*)file; + Bytef *start = (Bytef*)buf; /* starting point for crc computation */ + Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ + + if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR; + + if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1; + if (s->z_err == Z_STREAM_END) return 0; /* EOF */ + + next_out = (Byte*)buf; + s->stream.next_out = (Bytef*)buf; + s->stream.avail_out = len; + + if (s->stream.avail_out && s->back != EOF) { + *next_out++ = s->back; + s->stream.next_out++; + s->stream.avail_out--; + s->back = EOF; + s->out++; + start++; + if (s->last) { + s->z_err = Z_STREAM_END; + return 1; + } + } + + while (s->stream.avail_out != 0) { + + if (s->transparent) { + /* Copy first the lookahead bytes: */ + uInt n = s->stream.avail_in; + if (n > s->stream.avail_out) n = s->stream.avail_out; + if (n > 0) { + zmemcpy(s->stream.next_out, s->stream.next_in, n); + next_out += n; + s->stream.next_out = next_out; + s->stream.next_in += n; + s->stream.avail_out -= n; + s->stream.avail_in -= n; + } + if (s->stream.avail_out > 0) { + s->stream.avail_out -= + (uInt)fread(next_out, 1, s->stream.avail_out, s->file); + } + len -= s->stream.avail_out; + s->in += len; + s->out += len; + if (len == 0) s->z_eof = 1; + return (int)len; + } + if (s->stream.avail_in == 0 && !s->z_eof) { + + errno = 0; + s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file); + if (s->stream.avail_in == 0) { + s->z_eof = 1; + if (ferror(s->file)) { + s->z_err = Z_ERRNO; + break; + } + } + s->stream.next_in = s->inbuf; + } + s->in += s->stream.avail_in; + s->out += s->stream.avail_out; + s->z_err = inflate(&(s->stream), Z_NO_FLUSH); + s->in -= s->stream.avail_in; + s->out -= s->stream.avail_out; + + if (s->z_err == Z_STREAM_END) { + /* Check CRC and original size */ + s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); + start = s->stream.next_out; + + if (getLong(s) != s->crc) { + s->z_err = Z_DATA_ERROR; + } else { + (void)getLong(s); + /* The uncompressed length returned by above getlong() may be + * different from s->out in case of concatenated .gz files. + * Check for such files: + */ + check_header(s); + if (s->z_err == Z_OK) { + inflateReset(&(s->stream)); + s->crc = crc32(0L, Z_NULL, 0); + } + } + } + if (s->z_err != Z_OK || s->z_eof) break; + } + s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); + + if (len == s->stream.avail_out && + (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO)) + return -1; + return (int)(len - s->stream.avail_out); +} + + +/* =========================================================================== + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ +int ZEXPORT gzgetc(file) + gzFile file; +{ + unsigned char c; + + return gzread(file, &c, 1) == 1 ? c : -1; +} + + +/* =========================================================================== + Push one byte back onto the stream. +*/ +int ZEXPORT gzungetc(c, file) + int c; + gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'r' || c == EOF || s->back != EOF) return EOF; + s->back = c; + s->out--; + s->last = (s->z_err == Z_STREAM_END); + if (s->last) s->z_err = Z_OK; + s->z_eof = 0; + return c; +} + + +/* =========================================================================== + Reads bytes from the compressed file until len-1 characters are + read, or a newline character is read and transferred to buf, or an + end-of-file condition is encountered. The string is then terminated + with a null character. + gzgets returns buf, or Z_NULL in case of error. + + The current implementation is not optimized at all. +*/ +char * ZEXPORT gzgets(file, buf, len) + gzFile file; + char *buf; + int len; +{ + char *b = buf; + if (buf == Z_NULL || len <= 0) return Z_NULL; + + while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ; + *buf = '\0'; + return b == buf && len > 0 ? Z_NULL : b; +} + + +#ifndef NO_GZCOMPRESS +/* =========================================================================== + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of bytes actually written (0 in case of error). +*/ +int ZEXPORT gzwrite (file, buf, len) + gzFile file; + voidpc buf; + unsigned len; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; + + s->stream.next_in = (Bytef*)buf; + s->stream.avail_in = len; + + while (s->stream.avail_in != 0) { + + if (s->stream.avail_out == 0) { + + s->stream.next_out = s->outbuf; + if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { + s->z_err = Z_ERRNO; + break; + } + s->stream.avail_out = Z_BUFSIZE; + } + s->in += s->stream.avail_in; + s->out += s->stream.avail_out; + s->z_err = deflate(&(s->stream), Z_NO_FLUSH); + s->in -= s->stream.avail_in; + s->out -= s->stream.avail_out; + if (s->z_err != Z_OK) break; + } + s->crc = crc32(s->crc, (const Bytef *)buf, len); + + return (int)(len - s->stream.avail_in); +} + + +/* =========================================================================== + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). +*/ +#ifdef STDC +#include + +int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) +{ + char buf[Z_PRINTF_BUFSIZE]; + va_list va; + int len; + + buf[sizeof(buf) - 1] = 0; + va_start(va, format); +#ifdef NO_vsnprintf +# ifdef HAS_vsprintf_void + (void)vsprintf(buf, format, va); + va_end(va); + for (len = 0; len < sizeof(buf); len++) + if (buf[len] == 0) break; +# else + len = vsprintf(buf, format, va); + va_end(va); +# endif +#else +# ifdef HAS_vsnprintf_void + (void)vsnprintf(buf, sizeof(buf), format, va); + va_end(va); + len = strlen(buf); +# else + len = vsnprintf(buf, sizeof(buf), format, va); + va_end(va); +# endif +#endif + if (len <= 0 || len >= (int)sizeof(buf) || buf[sizeof(buf) - 1] != 0) + return 0; + return gzwrite(file, buf, (unsigned)len); +} +#else /* not ANSI C */ + +int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + gzFile file; + const char *format; + int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; +{ + char buf[Z_PRINTF_BUFSIZE]; + int len; + + buf[sizeof(buf) - 1] = 0; +#ifdef NO_snprintf +# ifdef HAS_sprintf_void + sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); + for (len = 0; len < sizeof(buf); len++) + if (buf[len] == 0) break; +# else + len = sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +# endif +#else +# ifdef HAS_snprintf_void + snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); + len = strlen(buf); +# else + len = snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +# endif +#endif + if (len <= 0 || len >= sizeof(buf) || buf[sizeof(buf) - 1] != 0) + return 0; + return gzwrite(file, buf, len); +} +#endif + +/* =========================================================================== + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ +int ZEXPORT gzputc(file, c) + gzFile file; + int c; +{ + unsigned char cc = (unsigned char) c; /* required for big endian systems */ + + return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1; +} + + +/* =========================================================================== + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ +int ZEXPORT gzputs(file, s) + gzFile file; + const char *s; +{ + return gzwrite(file, (char*)s, (unsigned)strlen(s)); +} + + +/* =========================================================================== + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. +*/ +local int do_flush (file, flush) + gzFile file; + int flush; +{ + uInt len; + int done = 0; + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; + + s->stream.avail_in = 0; /* should be zero already anyway */ + + for (;;) { + len = Z_BUFSIZE - s->stream.avail_out; + + if (len != 0) { + if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) { + s->z_err = Z_ERRNO; + return Z_ERRNO; + } + s->stream.next_out = s->outbuf; + s->stream.avail_out = Z_BUFSIZE; + } + if (done) break; + s->out += s->stream.avail_out; + s->z_err = deflate(&(s->stream), flush); + s->out -= s->stream.avail_out; + + /* Ignore the second of two consecutive flushes: */ + if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK; + + /* deflate has finished flushing only when it hasn't used up + * all the available space in the output buffer: + */ + done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END); + + if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break; + } + return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; +} + +int ZEXPORT gzflush (file, flush) + gzFile file; + int flush; +{ + gz_stream *s = (gz_stream*)file; + int err = do_flush (file, flush); + + if (err) return err; + fflush(s->file); + return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; +} +#endif /* NO_GZCOMPRESS */ + +/* =========================================================================== + Sets the starting position for the next gzread or gzwrite on the given + compressed file. The offset represents a number of bytes in the + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error. + SEEK_END is not implemented, returns error. + In this version of the library, gzseek can be extremely slow. +*/ +z_off_t ZEXPORT gzseek (file, offset, whence) + gzFile file; + z_off_t offset; + int whence; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || whence == SEEK_END || + s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) { + return -1L; + } + + if (s->mode == 'w') { +#ifdef NO_GZCOMPRESS + return -1L; +#else + if (whence == SEEK_SET) { + offset -= s->in; + } + if (offset < 0) return -1L; + + /* At this point, offset is the number of zero bytes to write. */ + if (s->inbuf == Z_NULL) { + s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */ + if (s->inbuf == Z_NULL) return -1L; + zmemzero(s->inbuf, Z_BUFSIZE); + } + while (offset > 0) { + uInt size = Z_BUFSIZE; + if (offset < Z_BUFSIZE) size = (uInt)offset; + + size = gzwrite(file, s->inbuf, size); + if (size == 0) return -1L; + + offset -= size; + } + return s->in; +#endif + } + /* Rest of function is for reading only */ + + /* compute absolute position */ + if (whence == SEEK_CUR) { + offset += s->out; + } + if (offset < 0) return -1L; + + if (s->transparent) { + /* map to fseek */ + s->back = EOF; + s->stream.avail_in = 0; + s->stream.next_in = s->inbuf; + if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; + + s->in = s->out = offset; + return offset; + } + + /* For a negative seek, rewind and use positive seek */ + if (offset >= s->out) { + offset -= s->out; + } else if (gzrewind(file) < 0) { + return -1L; + } + /* offset is now the number of bytes to skip. */ + + if (offset != 0 && s->outbuf == Z_NULL) { + s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); + if (s->outbuf == Z_NULL) return -1L; + } + if (offset && s->back != EOF) { + s->back = EOF; + s->out++; + offset--; + if (s->last) s->z_err = Z_STREAM_END; + } + while (offset > 0) { + int size = Z_BUFSIZE; + if (offset < Z_BUFSIZE) size = (int)offset; + + size = gzread(file, s->outbuf, (uInt)size); + if (size <= 0) return -1L; + offset -= size; + } + return s->out; +} + +/* =========================================================================== + Rewinds input file. +*/ +int ZEXPORT gzrewind (file) + gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'r') return -1; + + s->z_err = Z_OK; + s->z_eof = 0; + s->back = EOF; + s->stream.avail_in = 0; + s->stream.next_in = s->inbuf; + s->crc = crc32(0L, Z_NULL, 0); + if (!s->transparent) (void)inflateReset(&s->stream); + s->in = 0; + s->out = 0; + return fseek(s->file, s->start, SEEK_SET); +} + +/* =========================================================================== + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. +*/ +z_off_t ZEXPORT gztell (file) + gzFile file; +{ + return gzseek(file, 0L, SEEK_CUR); +} + +/* =========================================================================== + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ +int ZEXPORT gzeof (file) + gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + /* With concatenated compressed files that can have embedded + * crc trailers, z_eof is no longer the only/best indicator of EOF + * on a gz_stream. Handle end-of-stream error explicitly here. + */ + if (s == NULL || s->mode != 'r') return 0; + if (s->z_eof) return 1; + return s->z_err == Z_STREAM_END; +} + +/* =========================================================================== + Returns 1 if reading and doing so transparently, otherwise zero. +*/ +int ZEXPORT gzdirect (file) + gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'r') return 0; + return s->transparent; +} + +/* =========================================================================== + Outputs a long in LSB order to the given file +*/ +local void putLong (file, x) + FILE *file; + uLong x; +{ + int n; + for (n = 0; n < 4; n++) { + fputc((int)(x & 0xff), file); + x >>= 8; + } +} + +/* =========================================================================== + Reads a long in LSB order from the given gz_stream. Sets z_err in case + of error. +*/ +local uLong getLong (s) + gz_stream *s; +{ + uLong x = (uLong)get_byte(s); + int c; + + x += ((uLong)get_byte(s))<<8; + x += ((uLong)get_byte(s))<<16; + c = get_byte(s); + if (c == EOF) s->z_err = Z_DATA_ERROR; + x += ((uLong)c)<<24; + return x; +} + +/* =========================================================================== + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. +*/ +int ZEXPORT gzclose (file) + gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL) return Z_STREAM_ERROR; + + if (s->mode == 'w') { +#ifdef NO_GZCOMPRESS + return Z_STREAM_ERROR; +#else + if (do_flush (file, Z_FINISH) != Z_OK) + return destroy((gz_stream*)file); + + putLong (s->file, s->crc); + putLong (s->file, (uLong)(s->in & 0xffffffff)); +#endif + } + return destroy((gz_stream*)file); +} + +#ifdef STDC +# define zstrerror(errnum) strerror(errnum) +#else +# define zstrerror(errnum) "" +#endif + +/* =========================================================================== + Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ +const char * ZEXPORT gzerror (file, errnum) + gzFile file; + int *errnum; +{ + char *m; + gz_stream *s = (gz_stream*)file; + + if (s == NULL) { + *errnum = Z_STREAM_ERROR; + return (const char*)ERR_MSG(Z_STREAM_ERROR); + } + *errnum = s->z_err; + if (*errnum == Z_OK) return (const char*)""; + + m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg); + + if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err); + + TRYFREE(s->msg); + s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3); + if (s->msg == Z_NULL) return (const char*)ERR_MSG(Z_MEM_ERROR); + strcpy(s->msg, s->path); + strcat(s->msg, ": "); + strcat(s->msg, m); + return (const char*)s->msg; +} + +/* =========================================================================== + Clear the error and end-of-file flags, and do the same for the real file. +*/ +void ZEXPORT gzclearerr (file) + gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL) return; + if (s->z_err != Z_STREAM_END) s->z_err = Z_OK; + s->z_eof = 0; + clearerr(s->file); +} diff --git a/mysql/zlib/infback.c b/mysql/zlib/infback.c new file mode 100644 index 0000000..455dbc9 --- /dev/null +++ b/mysql/zlib/infback.c @@ -0,0 +1,623 @@ +/* infback.c -- inflate using a call-back interface + * Copyright (C) 1995-2005 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + This code is largely copied from inflate.c. Normally either infback.o or + inflate.o would be linked into an application--not both. The interface + with inffast.c is retained so that optimized assembler-coded versions of + inflate_fast() can be used with either inflate.c or infback.c. + */ + +#include "zutil.h" +#include "inftrees.h" +#include "inflate.h" +#include "inffast.h" + +/* function prototypes */ +local void fixedtables OF((struct inflate_state FAR *state)); + +/* + strm provides memory allocation functions in zalloc and zfree, or + Z_NULL to use the library memory allocation functions. + + windowBits is in the range 8..15, and window is a user-supplied + window and output buffer that is 2**windowBits bytes. + */ +int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) +z_streamp strm; +int windowBits; +unsigned char FAR *window; +const char *version; +int stream_size; +{ + struct inflate_state FAR *state; + + if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || + stream_size != (int)(sizeof(z_stream))) + return Z_VERSION_ERROR; + if (strm == Z_NULL || window == Z_NULL || + windowBits < 8 || windowBits > 15) + return Z_STREAM_ERROR; + strm->msg = Z_NULL; /* in case we return an error */ + if (strm->zalloc == (alloc_func)0) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == (free_func)0) strm->zfree = zcfree; + state = (struct inflate_state FAR *)ZALLOC(strm, 1, + sizeof(struct inflate_state)); + if (state == Z_NULL) return Z_MEM_ERROR; + Tracev((stderr, "inflate: allocated\n")); + strm->state = (struct internal_state FAR *)state; + state->dmax = 32768U; + state->wbits = windowBits; + state->wsize = 1U << windowBits; + state->window = window; + state->write = 0; + state->whave = 0; + return Z_OK; +} + +/* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ +local void fixedtables(state) +struct inflate_state FAR *state; +{ +#ifdef BUILDFIXED + static int virgin = 1; + static code *lenfix, *distfix; + static code fixed[544]; + + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + unsigned sym, bits; + static code *next; + + /* literal/length table */ + sym = 0; + while (sym < 144) state->lens[sym++] = 8; + while (sym < 256) state->lens[sym++] = 9; + while (sym < 280) state->lens[sym++] = 7; + while (sym < 288) state->lens[sym++] = 8; + next = fixed; + lenfix = next; + bits = 9; + inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); + + /* distance table */ + sym = 0; + while (sym < 32) state->lens[sym++] = 5; + distfix = next; + bits = 5; + inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); + + /* do this just once */ + virgin = 0; + } +#else /* !BUILDFIXED */ +# include "inffixed.h" +#endif /* BUILDFIXED */ + state->lencode = lenfix; + state->lenbits = 9; + state->distcode = distfix; + state->distbits = 5; +} + +/* Macros for inflateBack(): */ + +/* Load returned state from inflate_fast() */ +#define LOAD() \ + do { \ + put = strm->next_out; \ + left = strm->avail_out; \ + next = strm->next_in; \ + have = strm->avail_in; \ + hold = state->hold; \ + bits = state->bits; \ + } while (0) + +/* Set state from registers for inflate_fast() */ +#define RESTORE() \ + do { \ + strm->next_out = put; \ + strm->avail_out = left; \ + strm->next_in = next; \ + strm->avail_in = have; \ + state->hold = hold; \ + state->bits = bits; \ + } while (0) + +/* Clear the input bit accumulator */ +#define INITBITS() \ + do { \ + hold = 0; \ + bits = 0; \ + } while (0) + +/* Assure that some input is available. If input is requested, but denied, + then return a Z_BUF_ERROR from inflateBack(). */ +#define PULL() \ + do { \ + if (have == 0) { \ + have = in(in_desc, &next); \ + if (have == 0) { \ + next = Z_NULL; \ + ret = Z_BUF_ERROR; \ + goto inf_leave; \ + } \ + } \ + } while (0) + +/* Get a byte of input into the bit accumulator, or return from inflateBack() + with an error if there is no input available. */ +#define PULLBYTE() \ + do { \ + PULL(); \ + have--; \ + hold += (unsigned long)(*next++) << bits; \ + bits += 8; \ + } while (0) + +/* Assure that there are at least n bits in the bit accumulator. If there is + not enough available input to do that, then return from inflateBack() with + an error. */ +#define NEEDBITS(n) \ + do { \ + while (bits < (unsigned)(n)) \ + PULLBYTE(); \ + } while (0) + +/* Return the low n bits of the bit accumulator (n < 16) */ +#define BITS(n) \ + ((unsigned)hold & ((1U << (n)) - 1)) + +/* Remove n bits from the bit accumulator */ +#define DROPBITS(n) \ + do { \ + hold >>= (n); \ + bits -= (unsigned)(n); \ + } while (0) + +/* Remove zero to seven bits as needed to go to a byte boundary */ +#define BYTEBITS() \ + do { \ + hold >>= bits & 7; \ + bits -= bits & 7; \ + } while (0) + +/* Assure that some output space is available, by writing out the window + if it's full. If the write fails, return from inflateBack() with a + Z_BUF_ERROR. */ +#define ROOM() \ + do { \ + if (left == 0) { \ + put = state->window; \ + left = state->wsize; \ + state->whave = left; \ + if (out(out_desc, put, left)) { \ + ret = Z_BUF_ERROR; \ + goto inf_leave; \ + } \ + } \ + } while (0) + +/* + strm provides the memory allocation functions and window buffer on input, + and provides information on the unused input on return. For Z_DATA_ERROR + returns, strm will also provide an error message. + + in() and out() are the call-back input and output functions. When + inflateBack() needs more input, it calls in(). When inflateBack() has + filled the window with output, or when it completes with data in the + window, it calls out() to write out the data. The application must not + change the provided input until in() is called again or inflateBack() + returns. The application must not change the window/output buffer until + inflateBack() returns. + + in() and out() are called with a descriptor parameter provided in the + inflateBack() call. This parameter can be a structure that provides the + information required to do the read or write, as well as accumulated + information on the input and output such as totals and check values. + + in() should return zero on failure. out() should return non-zero on + failure. If either in() or out() fails, than inflateBack() returns a + Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it + was in() or out() that caused in the error. Otherwise, inflateBack() + returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format + error, or Z_MEM_ERROR if it could not allocate memory for the state. + inflateBack() can also return Z_STREAM_ERROR if the input parameters + are not correct, i.e. strm is Z_NULL or the state was not initialized. + */ +int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) +z_streamp strm; +in_func in; +void FAR *in_desc; +out_func out; +void FAR *out_desc; +{ + struct inflate_state FAR *state; + unsigned char FAR *next; /* next input */ + unsigned char FAR *put; /* next output */ + unsigned have, left; /* available input and output */ + unsigned long hold; /* bit buffer */ + unsigned bits; /* bits in bit buffer */ + unsigned copy; /* number of stored or match bytes to copy */ + unsigned char FAR *from; /* where to copy match bytes from */ + code this; /* current decoding table entry */ + code last; /* parent table entry */ + unsigned len; /* length to copy for repeats, bits to drop */ + int ret; /* return code */ + static const unsigned short order[19] = /* permutation of code lengths */ + {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + + /* Check that the strm exists and that the state was initialized */ + if (strm == Z_NULL || strm->state == Z_NULL) + return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + + /* Reset the state */ + strm->msg = Z_NULL; + state->mode = TYPE; + state->last = 0; + state->whave = 0; + next = strm->next_in; + have = next != Z_NULL ? strm->avail_in : 0; + hold = 0; + bits = 0; + put = state->window; + left = state->wsize; + + /* Inflate until end of block marked as last */ + for (;;) + switch (state->mode) { + case TYPE: + /* determine and dispatch block type */ + if (state->last) { + BYTEBITS(); + state->mode = DONE; + break; + } + NEEDBITS(3); + state->last = BITS(1); + DROPBITS(1); + switch (BITS(2)) { + case 0: /* stored block */ + Tracev((stderr, "inflate: stored block%s\n", + state->last ? " (last)" : "")); + state->mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + Tracev((stderr, "inflate: fixed codes block%s\n", + state->last ? " (last)" : "")); + state->mode = LEN; /* decode codes */ + break; + case 2: /* dynamic block */ + Tracev((stderr, "inflate: dynamic codes block%s\n", + state->last ? " (last)" : "")); + state->mode = TABLE; + break; + case 3: + strm->msg = (char *)"invalid block type"; + state->mode = BAD; + } + DROPBITS(2); + break; + + case STORED: + /* get and verify stored block length */ + BYTEBITS(); /* go to byte boundary */ + NEEDBITS(32); + if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { + strm->msg = (char *)"invalid stored block lengths"; + state->mode = BAD; + break; + } + state->length = (unsigned)hold & 0xffff; + Tracev((stderr, "inflate: stored length %u\n", + state->length)); + INITBITS(); + + /* copy stored block from input to output */ + while (state->length != 0) { + copy = state->length; + PULL(); + ROOM(); + if (copy > have) copy = have; + if (copy > left) copy = left; + zmemcpy(put, next, copy); + have -= copy; + next += copy; + left -= copy; + put += copy; + state->length -= copy; + } + Tracev((stderr, "inflate: stored end\n")); + state->mode = TYPE; + break; + + case TABLE: + /* get dynamic table entries descriptor */ + NEEDBITS(14); + state->nlen = BITS(5) + 257; + DROPBITS(5); + state->ndist = BITS(5) + 1; + DROPBITS(5); + state->ncode = BITS(4) + 4; + DROPBITS(4); +#ifndef PKZIP_BUG_WORKAROUND + if (state->nlen > 286 || state->ndist > 30) { + strm->msg = (char *)"too many length or distance symbols"; + state->mode = BAD; + break; + } +#endif + Tracev((stderr, "inflate: table sizes ok\n")); + + /* get code length code lengths (not a typo) */ + state->have = 0; + while (state->have < state->ncode) { + NEEDBITS(3); + state->lens[order[state->have++]] = (unsigned short)BITS(3); + DROPBITS(3); + } + while (state->have < 19) + state->lens[order[state->have++]] = 0; + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 7; + ret = inflate_table(CODES, state->lens, 19, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid code lengths set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: code lengths ok\n")); + + /* get length and distance code code lengths */ + state->have = 0; + while (state->have < state->nlen + state->ndist) { + for (;;) { + this = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(this.bits) <= bits) break; + PULLBYTE(); + } + if (this.val < 16) { + NEEDBITS(this.bits); + DROPBITS(this.bits); + state->lens[state->have++] = this.val; + } + else { + if (this.val == 16) { + NEEDBITS(this.bits + 2); + DROPBITS(this.bits); + if (state->have == 0) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + len = (unsigned)(state->lens[state->have - 1]); + copy = 3 + BITS(2); + DROPBITS(2); + } + else if (this.val == 17) { + NEEDBITS(this.bits + 3); + DROPBITS(this.bits); + len = 0; + copy = 3 + BITS(3); + DROPBITS(3); + } + else { + NEEDBITS(this.bits + 7); + DROPBITS(this.bits); + len = 0; + copy = 11 + BITS(7); + DROPBITS(7); + } + if (state->have + copy > state->nlen + state->ndist) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + while (copy--) + state->lens[state->have++] = (unsigned short)len; + } + } + + /* handle error breaks in while */ + if (state->mode == BAD) break; + + /* build code tables */ + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 9; + ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid literal/lengths set"; + state->mode = BAD; + break; + } + state->distcode = (code const FAR *)(state->next); + state->distbits = 6; + ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, + &(state->next), &(state->distbits), state->work); + if (ret) { + strm->msg = (char *)"invalid distances set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: codes ok\n")); + state->mode = LEN; + + case LEN: + /* use inflate_fast() if we have enough input and output */ + if (have >= 6 && left >= 258) { + RESTORE(); + if (state->whave < state->wsize) + state->whave = state->wsize - left; + inflate_fast(strm, state->wsize); + LOAD(); + break; + } + + /* get a literal, length, or end-of-block code */ + for (;;) { + this = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(this.bits) <= bits) break; + PULLBYTE(); + } + if (this.op && (this.op & 0xf0) == 0) { + last = this; + for (;;) { + this = state->lencode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + this.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + } + DROPBITS(this.bits); + state->length = (unsigned)this.val; + + /* process literal */ + if (this.op == 0) { + Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", this.val)); + ROOM(); + *put++ = (unsigned char)(state->length); + left--; + state->mode = LEN; + break; + } + + /* process end of block */ + if (this.op & 32) { + Tracevv((stderr, "inflate: end of block\n")); + state->mode = TYPE; + break; + } + + /* invalid code */ + if (this.op & 64) { + strm->msg = (char *)"invalid literal/length code"; + state->mode = BAD; + break; + } + + /* length code -- get extra bits, if any */ + state->extra = (unsigned)(this.op) & 15; + if (state->extra != 0) { + NEEDBITS(state->extra); + state->length += BITS(state->extra); + DROPBITS(state->extra); + } + Tracevv((stderr, "inflate: length %u\n", state->length)); + + /* get distance code */ + for (;;) { + this = state->distcode[BITS(state->distbits)]; + if ((unsigned)(this.bits) <= bits) break; + PULLBYTE(); + } + if ((this.op & 0xf0) == 0) { + last = this; + for (;;) { + this = state->distcode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + this.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + } + DROPBITS(this.bits); + if (this.op & 64) { + strm->msg = (char *)"invalid distance code"; + state->mode = BAD; + break; + } + state->offset = (unsigned)this.val; + + /* get distance extra bits, if any */ + state->extra = (unsigned)(this.op) & 15; + if (state->extra != 0) { + NEEDBITS(state->extra); + state->offset += BITS(state->extra); + DROPBITS(state->extra); + } + if (state->offset > state->wsize - (state->whave < state->wsize ? + left : 0)) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } + Tracevv((stderr, "inflate: distance %u\n", state->offset)); + + /* copy match from window to output */ + do { + ROOM(); + copy = state->wsize - state->offset; + if (copy < left) { + from = put + copy; + copy = left - copy; + } + else { + from = put - state->offset; + copy = left; + } + if (copy > state->length) copy = state->length; + state->length -= copy; + left -= copy; + do { + *put++ = *from++; + } while (--copy); + } while (state->length != 0); + break; + + case DONE: + /* inflate stream terminated properly -- write leftover output */ + ret = Z_STREAM_END; + if (left < state->wsize) { + if (out(out_desc, state->window, state->wsize - left)) + ret = Z_BUF_ERROR; + } + goto inf_leave; + + case BAD: + ret = Z_DATA_ERROR; + goto inf_leave; + + default: /* can't happen, but makes compilers happy */ + ret = Z_STREAM_ERROR; + goto inf_leave; + } + + /* Return unused input */ + inf_leave: + strm->next_in = next; + strm->avail_in = have; + return ret; +} + +int ZEXPORT inflateBackEnd(strm) +z_streamp strm; +{ + if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) + return Z_STREAM_ERROR; + ZFREE(strm, strm->state); + strm->state = Z_NULL; + Tracev((stderr, "inflate: end\n")); + return Z_OK; +} diff --git a/mysql/zlib/inffast.c b/mysql/zlib/inffast.c new file mode 100644 index 0000000..bbee92e --- /dev/null +++ b/mysql/zlib/inffast.c @@ -0,0 +1,318 @@ +/* inffast.c -- fast decoding + * Copyright (C) 1995-2004 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" +#include "inflate.h" +#include "inffast.h" + +#ifndef ASMINF + +/* Allow machine dependent optimization for post-increment or pre-increment. + Based on testing to date, + Pre-increment preferred for: + - PowerPC G3 (Adler) + - MIPS R5000 (Randers-Pehrson) + Post-increment preferred for: + - none + No measurable difference: + - Pentium III (Anderson) + - M68060 (Nikl) + */ +#ifdef POSTINC +# define OFF 0 +# define PUP(a) *(a)++ +#else +# define OFF 1 +# define PUP(a) *++(a) +#endif + +/* + Decode literal, length, and distance codes and write out the resulting + literal and match bytes until either not enough input or output is + available, an end-of-block is encountered, or a data error is encountered. + When large enough input and output buffers are supplied to inflate(), for + example, a 16K input buffer and a 64K output buffer, more than 95% of the + inflate execution time is spent in this routine. + + Entry assumptions: + + state->mode == LEN + strm->avail_in >= 6 + strm->avail_out >= 258 + start >= strm->avail_out + state->bits < 8 + + On return, state->mode is one of: + + LEN -- ran out of enough output space or enough available input + TYPE -- reached end of block code, inflate() to interpret next block + BAD -- error in block data + + Notes: + + - The maximum input bits used by a length/distance pair is 15 bits for the + length code, 5 bits for the length extra, 15 bits for the distance code, + and 13 bits for the distance extra. This totals 48 bits, or six bytes. + Therefore if strm->avail_in >= 6, then there is enough input to avoid + checking for available input while decoding. + + - The maximum bytes that a single length/distance pair can output is 258 + bytes, which is the maximum length that can be coded. inflate_fast() + requires strm->avail_out >= 258 for each loop to avoid checking for + output space. + */ +void inflate_fast(strm, start) +z_streamp strm; +unsigned start; /* inflate()'s starting value for strm->avail_out */ +{ + struct inflate_state FAR *state; + unsigned char FAR *in; /* local strm->next_in */ + unsigned char FAR *last; /* while in < last, enough input available */ + unsigned char FAR *out; /* local strm->next_out */ + unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ + unsigned char FAR *end; /* while out < end, enough space available */ +#ifdef INFLATE_STRICT + unsigned dmax; /* maximum distance from zlib header */ +#endif + unsigned wsize; /* window size or zero if not using window */ + unsigned whave; /* valid bytes in the window */ + unsigned write; /* window write index */ + unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ + unsigned long hold; /* local strm->hold */ + unsigned bits; /* local strm->bits */ + code const FAR *lcode; /* local strm->lencode */ + code const FAR *dcode; /* local strm->distcode */ + unsigned lmask; /* mask for first level of length codes */ + unsigned dmask; /* mask for first level of distance codes */ + code this; /* retrieved table entry */ + unsigned op; /* code bits, operation, extra bits, or */ + /* window position, window bytes to copy */ + unsigned len; /* match length, unused bytes */ + unsigned dist; /* match distance */ + unsigned char FAR *from; /* where to copy match from */ + + /* copy state to local variables */ + state = (struct inflate_state FAR *)strm->state; + in = strm->next_in - OFF; + last = in + (strm->avail_in - 5); + out = strm->next_out - OFF; + beg = out - (start - strm->avail_out); + end = out + (strm->avail_out - 257); +#ifdef INFLATE_STRICT + dmax = state->dmax; +#endif + wsize = state->wsize; + whave = state->whave; + write = state->write; + window = state->window; + hold = state->hold; + bits = state->bits; + lcode = state->lencode; + dcode = state->distcode; + lmask = (1U << state->lenbits) - 1; + dmask = (1U << state->distbits) - 1; + + /* decode literals and length/distances until end-of-block or not enough + input data or output space */ + do { + if (bits < 15) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + this = lcode[hold & lmask]; + dolen: + op = (unsigned)(this.bits); + hold >>= op; + bits -= op; + op = (unsigned)(this.op); + if (op == 0) { /* literal */ + Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", this.val)); + PUP(out) = (unsigned char)(this.val); + } + else if (op & 16) { /* length base */ + len = (unsigned)(this.val); + op &= 15; /* number of extra bits */ + if (op) { + if (bits < op) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + len += (unsigned)hold & ((1U << op) - 1); + hold >>= op; + bits -= op; + } + Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + this = dcode[hold & dmask]; + dodist: + op = (unsigned)(this.bits); + hold >>= op; + bits -= op; + op = (unsigned)(this.op); + if (op & 16) { /* distance base */ + dist = (unsigned)(this.val); + op &= 15; /* number of extra bits */ + if (bits < op) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + if (bits < op) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + } + dist += (unsigned)hold & ((1U << op) - 1); +#ifdef INFLATE_STRICT + if (dist > dmax) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } +#endif + hold >>= op; + bits -= op; + Tracevv((stderr, "inflate: distance %u\n", dist)); + op = (unsigned)(out - beg); /* max distance in output */ + if (dist > op) { /* see if copy from window */ + op = dist - op; /* distance back in window */ + if (op > whave) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } + from = window - OFF; + if (write == 0) { /* very common case */ + from += wsize - op; + if (op < len) { /* some from window */ + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = out - dist; /* rest from output */ + } + } + else if (write < op) { /* wrap around window */ + from += wsize + write - op; + op -= write; + if (op < len) { /* some from end of window */ + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = window - OFF; + if (write < len) { /* some from start of window */ + op = write; + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = out - dist; /* rest from output */ + } + } + } + else { /* contiguous in window */ + from += write - op; + if (op < len) { /* some from window */ + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = out - dist; /* rest from output */ + } + } + while (len > 2) { + PUP(out) = PUP(from); + PUP(out) = PUP(from); + PUP(out) = PUP(from); + len -= 3; + } + if (len) { + PUP(out) = PUP(from); + if (len > 1) + PUP(out) = PUP(from); + } + } + else { + from = out - dist; /* copy direct from output */ + do { /* minimum length is three */ + PUP(out) = PUP(from); + PUP(out) = PUP(from); + PUP(out) = PUP(from); + len -= 3; + } while (len > 2); + if (len) { + PUP(out) = PUP(from); + if (len > 1) + PUP(out) = PUP(from); + } + } + } + else if ((op & 64) == 0) { /* 2nd level distance code */ + this = dcode[this.val + (hold & ((1U << op) - 1))]; + goto dodist; + } + else { + strm->msg = (char *)"invalid distance code"; + state->mode = BAD; + break; + } + } + else if ((op & 64) == 0) { /* 2nd level length code */ + this = lcode[this.val + (hold & ((1U << op) - 1))]; + goto dolen; + } + else if (op & 32) { /* end-of-block */ + Tracevv((stderr, "inflate: end of block\n")); + state->mode = TYPE; + break; + } + else { + strm->msg = (char *)"invalid literal/length code"; + state->mode = BAD; + break; + } + } while (in < last && out < end); + + /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ + len = bits >> 3; + in -= len; + bits -= len << 3; + hold &= (1U << bits) - 1; + + /* update state and return */ + strm->next_in = in + OFF; + strm->next_out = out + OFF; + strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); + strm->avail_out = (unsigned)(out < end ? + 257 + (end - out) : 257 - (out - end)); + state->hold = hold; + state->bits = bits; + return; +} + +/* + inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): + - Using bit fields for code structure + - Different op definition to avoid & for extra bits (do & for table bits) + - Three separate decoding do-loops for direct, window, and write == 0 + - Special case for distance > 1 copies to do overlapped load and store copy + - Explicit branch predictions (based on measured branch probabilities) + - Deferring match copy and interspersed it with decoding subsequent codes + - Swapping literal/length else + - Swapping window/direct else + - Larger unrolled copy loops (three is about right) + - Moving len -= 3 statement into middle of loop + */ + +#endif /* !ASMINF */ diff --git a/mysql/zlib/inffast.h b/mysql/zlib/inffast.h new file mode 100644 index 0000000..1e88d2d --- /dev/null +++ b/mysql/zlib/inffast.h @@ -0,0 +1,11 @@ +/* inffast.h -- header to use inffast.c + * Copyright (C) 1995-2003 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +void inflate_fast OF((z_streamp strm, unsigned start)); diff --git a/mysql/zlib/inffixed.h b/mysql/zlib/inffixed.h new file mode 100644 index 0000000..75ed4b5 --- /dev/null +++ b/mysql/zlib/inffixed.h @@ -0,0 +1,94 @@ + /* inffixed.h -- table for decoding fixed codes + * Generated automatically by makefixed(). + */ + + /* WARNING: this file should *not* be used by applications. It + is part of the implementation of the compression library and + is subject to change. Applications should only use zlib.h. + */ + + static const code lenfix[512] = { + {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, + {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, + {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, + {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, + {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, + {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, + {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, + {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, + {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, + {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, + {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, + {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, + {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, + {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, + {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, + {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, + {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, + {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, + {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, + {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, + {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, + {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, + {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, + {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, + {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, + {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, + {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, + {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, + {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, + {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, + {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, + {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, + {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, + {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, + {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, + {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, + {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, + {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, + {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, + {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, + {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, + {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, + {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, + {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, + {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, + {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, + {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, + {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, + {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, + {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, + {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, + {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, + {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, + {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, + {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, + {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, + {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, + {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, + {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, + {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, + {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, + {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, + {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, + {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, + {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, + {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, + {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, + {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, + {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, + {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, + {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, + {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, + {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, + {0,9,255} + }; + + static const code distfix[32] = { + {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, + {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, + {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, + {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, + {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, + {22,5,193},{64,5,0} + }; diff --git a/mysql/zlib/inflate.c b/mysql/zlib/inflate.c new file mode 100644 index 0000000..50830e2 --- /dev/null +++ b/mysql/zlib/inflate.c @@ -0,0 +1,1380 @@ +/* inflate.c -- zlib decompression + * Copyright (C) 1995-2005 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * Change history: + * + * 1.2.beta0 24 Nov 2002 + * - First version -- complete rewrite of inflate to simplify code, avoid + * creation of window when not needed, minimize use of window when it is + * needed, make inffast.c even faster, implement gzip decoding, and to + * improve code readability and style over the previous zlib inflate code + * + * 1.2.beta1 25 Nov 2002 + * - Use pointers for available input and output checking in inffast.c + * - Remove input and output counters in inffast.c + * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 + * - Remove unnecessary second byte pull from length extra in inffast.c + * - Unroll direct copy to three copies per loop in inffast.c + * + * 1.2.beta2 4 Dec 2002 + * - Change external routine names to reduce potential conflicts + * - Correct filename to inffixed.h for fixed tables in inflate.c + * - Make hbuf[] unsigned char to match parameter type in inflate.c + * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) + * to avoid negation problem on Alphas (64 bit) in inflate.c + * + * 1.2.beta3 22 Dec 2002 + * - Add comments on state->bits assertion in inffast.c + * - Add comments on op field in inftrees.h + * - Fix bug in reuse of allocated window after inflateReset() + * - Remove bit fields--back to byte structure for speed + * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths + * - Change post-increments to pre-increments in inflate_fast(), PPC biased? + * - Add compile time option, POSTINC, to use post-increments instead (Intel?) + * - Make MATCH copy in inflate() much faster for when inflate_fast() not used + * - Use local copies of stream next and avail values, as well as local bit + * buffer and bit count in inflate()--for speed when inflate_fast() not used + * + * 1.2.beta4 1 Jan 2003 + * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings + * - Move a comment on output buffer sizes from inffast.c to inflate.c + * - Add comments in inffast.c to introduce the inflate_fast() routine + * - Rearrange window copies in inflate_fast() for speed and simplification + * - Unroll last copy for window match in inflate_fast() + * - Use local copies of window variables in inflate_fast() for speed + * - Pull out common write == 0 case for speed in inflate_fast() + * - Make op and len in inflate_fast() unsigned for consistency + * - Add FAR to lcode and dcode declarations in inflate_fast() + * - Simplified bad distance check in inflate_fast() + * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new + * source file infback.c to provide a call-back interface to inflate for + * programs like gzip and unzip -- uses window as output buffer to avoid + * window copying + * + * 1.2.beta5 1 Jan 2003 + * - Improved inflateBack() interface to allow the caller to provide initial + * input in strm. + * - Fixed stored blocks bug in inflateBack() + * + * 1.2.beta6 4 Jan 2003 + * - Added comments in inffast.c on effectiveness of POSTINC + * - Typecasting all around to reduce compiler warnings + * - Changed loops from while (1) or do {} while (1) to for (;;), again to + * make compilers happy + * - Changed type of window in inflateBackInit() to unsigned char * + * + * 1.2.beta7 27 Jan 2003 + * - Changed many types to unsigned or unsigned short to avoid warnings + * - Added inflateCopy() function + * + * 1.2.0 9 Mar 2003 + * - Changed inflateBack() interface to provide separate opaque descriptors + * for the in() and out() functions + * - Changed inflateBack() argument and in_func typedef to swap the length + * and buffer address return values for the input function + * - Check next_in and next_out for Z_NULL on entry to inflate() + * + * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. + */ + +#include "zutil.h" +#include "inftrees.h" +#include "inflate.h" +#include "inffast.h" + +#ifdef MAKEFIXED +# ifndef BUILDFIXED +# define BUILDFIXED +# endif +#endif + +/* function prototypes */ +local void fixedtables OF((struct inflate_state FAR *state)); +local int updatewindow OF((z_streamp strm, unsigned out)); +#ifdef BUILDFIXED + void makefixed OF((void)); +#endif +local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf, + unsigned len)); + +int ZEXPORT inflateReset(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + strm->total_in = strm->total_out = state->total = 0; + strm->msg = Z_NULL; + strm->adler = 1; /* to support ill-conceived Java test suite */ + state->mode = HEAD; + state->last = 0; + state->havedict = 0; + state->dmax = 32768U; + state->head = Z_NULL; + state->wsize = 0; + state->whave = 0; + state->write = 0; + state->hold = 0; + state->bits = 0; + state->lencode = state->distcode = state->next = state->codes; + Tracev((stderr, "inflate: reset\n")); + return Z_OK; +} + +int ZEXPORT inflatePrime(strm, bits, value) +z_streamp strm; +int bits; +int value; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR; + value &= (1L << bits) - 1; + state->hold += value << state->bits; + state->bits += bits; + return Z_OK; +} + +int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) +z_streamp strm; +int windowBits; +const char *version; +int stream_size; +{ + struct inflate_state FAR *state; + + if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || + stream_size != (int)(sizeof(z_stream))) + return Z_VERSION_ERROR; + if (strm == Z_NULL) return Z_STREAM_ERROR; + strm->msg = Z_NULL; /* in case we return an error */ + if (strm->zalloc == (alloc_func)0) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == (free_func)0) strm->zfree = zcfree; + state = (struct inflate_state FAR *) + ZALLOC(strm, 1, sizeof(struct inflate_state)); + if (state == Z_NULL) return Z_MEM_ERROR; + Tracev((stderr, "inflate: allocated\n")); + strm->state = (struct internal_state FAR *)state; + if (windowBits < 0) { + state->wrap = 0; + windowBits = -windowBits; + } + else { + state->wrap = (windowBits >> 4) + 1; +#ifdef GUNZIP + if (windowBits < 48) windowBits &= 15; +#endif + } + if (windowBits < 8 || windowBits > 15) { + ZFREE(strm, state); + strm->state = Z_NULL; + return Z_STREAM_ERROR; + } + state->wbits = (unsigned)windowBits; + state->window = Z_NULL; + return inflateReset(strm); +} + +int ZEXPORT inflateInit_(strm, version, stream_size) +z_streamp strm; +const char *version; +int stream_size; +{ + return inflateInit2_(strm, DEF_WBITS, version, stream_size); +} + +/* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ +local void fixedtables(state) +struct inflate_state FAR *state; +{ +#ifdef BUILDFIXED + static int virgin = 1; + static code *lenfix, *distfix; + static code fixed[544]; + + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + unsigned sym, bits; + static code *next; + + /* literal/length table */ + sym = 0; + while (sym < 144) state->lens[sym++] = 8; + while (sym < 256) state->lens[sym++] = 9; + while (sym < 280) state->lens[sym++] = 7; + while (sym < 288) state->lens[sym++] = 8; + next = fixed; + lenfix = next; + bits = 9; + inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); + + /* distance table */ + sym = 0; + while (sym < 32) state->lens[sym++] = 5; + distfix = next; + bits = 5; + inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); + + /* do this just once */ + virgin = 0; + } +#else /* !BUILDFIXED */ +# include "inffixed.h" +#endif /* BUILDFIXED */ + state->lencode = lenfix; + state->lenbits = 9; + state->distcode = distfix; + state->distbits = 5; +} + +#ifdef MAKEFIXED +#include + +/* + Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also + defines BUILDFIXED, so the tables are built on the fly. makefixed() writes + those tables to stdout, which would be piped to inffixed.h. A small program + can simply call makefixed to do this: + + void makefixed(void); + + int main(void) + { + makefixed(); + return 0; + } + + Then that can be linked with zlib built with MAKEFIXED defined and run: + + a.out > inffixed.h + */ +void makefixed() +{ + unsigned low, size; + struct inflate_state state; + + fixedtables(&state); + puts(" /* inffixed.h -- table for decoding fixed codes"); + puts(" * Generated automatically by makefixed()."); + puts(" */"); + puts(""); + puts(" /* WARNING: this file should *not* be used by applications."); + puts(" It is part of the implementation of this library and is"); + puts(" subject to change. Applications should only use zlib.h."); + puts(" */"); + puts(""); + size = 1U << 9; + printf(" static const code lenfix[%u] = {", size); + low = 0; + for (;;) { + if ((low % 7) == 0) printf("\n "); + printf("{%u,%u,%d}", state.lencode[low].op, state.lencode[low].bits, + state.lencode[low].val); + if (++low == size) break; + putchar(','); + } + puts("\n };"); + size = 1U << 5; + printf("\n static const code distfix[%u] = {", size); + low = 0; + for (;;) { + if ((low % 6) == 0) printf("\n "); + printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, + state.distcode[low].val); + if (++low == size) break; + putchar(','); + } + puts("\n };"); +} +#endif /* MAKEFIXED */ + +/* + Update the window with the last wsize (normally 32K) bytes written before + returning. If window does not exist yet, create it. This is only called + when a window is already in use, or when output has been written during this + inflate call, but the end of the deflate stream has not been reached yet. + It is also called to create a window for dictionary data when a dictionary + is loaded. + + Providing output buffers larger than 32K to inflate() should provide a speed + advantage, since only the last 32K of output is copied to the sliding window + upon return from inflate(), and since all distances after the first 32K of + output will fall in the output data, making match copies simpler and faster. + The advantage may be dependent on the size of the processor's data caches. + */ +local int updatewindow(strm, out) +z_streamp strm; +unsigned out; +{ + struct inflate_state FAR *state; + unsigned copy, dist; + + state = (struct inflate_state FAR *)strm->state; + + /* if it hasn't been done already, allocate space for the window */ + if (state->window == Z_NULL) { + state->window = (unsigned char FAR *) + ZALLOC(strm, 1U << state->wbits, + sizeof(unsigned char)); + if (state->window == Z_NULL) return 1; + } + + /* if window not in use yet, initialize */ + if (state->wsize == 0) { + state->wsize = 1U << state->wbits; + state->write = 0; + state->whave = 0; + } + + /* copy state->wsize or less output bytes into the circular window */ + copy = out - strm->avail_out; + if (copy >= state->wsize) { + zmemcpy(state->window, strm->next_out - state->wsize, state->wsize); + state->write = 0; + state->whave = state->wsize; + } + else { + dist = state->wsize - state->write; + if (dist > copy) dist = copy; + zmemcpy(state->window + state->write, strm->next_out - copy, dist); + copy -= dist; + if (copy) { + zmemcpy(state->window, strm->next_out - copy, copy); + state->write = copy; + state->whave = state->wsize; + } + else { + state->write += dist; + if (state->write == state->wsize) state->write = 0; + if (state->whave < state->wsize) state->whave += dist; + } + } + return 0; +} + +/* Macros for inflate(): */ + +/* check function to use adler32() for zlib or crc32() for gzip */ +#ifdef GUNZIP +# define UPDATE(check, buf, len) \ + (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) +#else +# define UPDATE(check, buf, len) adler32(check, buf, len) +#endif + +/* check macros for header crc */ +#ifdef GUNZIP +# define CRC2(check, word) \ + do { \ + hbuf[0] = (unsigned char)(word); \ + hbuf[1] = (unsigned char)((word) >> 8); \ + check = crc32(check, hbuf, 2); \ + } while (0) + +# define CRC4(check, word) \ + do { \ + hbuf[0] = (unsigned char)(word); \ + hbuf[1] = (unsigned char)((word) >> 8); \ + hbuf[2] = (unsigned char)((word) >> 16); \ + hbuf[3] = (unsigned char)((word) >> 24); \ + check = crc32(check, hbuf, 4); \ + } while (0) +#endif + +/* Load registers with state in inflate() for speed */ +#define LOAD() \ + do { \ + put = strm->next_out; \ + left = strm->avail_out; \ + next = strm->next_in; \ + have = strm->avail_in; \ + hold = state->hold; \ + bits = state->bits; \ + } while (0) + +/* Restore state from registers in inflate() */ +#define RESTORE() \ + do { \ + strm->next_out = put; \ + strm->avail_out = left; \ + strm->next_in = next; \ + strm->avail_in = have; \ + state->hold = hold; \ + state->bits = bits; \ + } while (0) + +/* Clear the input bit accumulator */ +#define INITBITS() \ + do { \ + hold = 0; \ + bits = 0; \ + } while (0) + +/* Get a byte of input into the bit accumulator, or return from inflate() + if there is no input available. */ +#define PULLBYTE() \ + do { \ + if (have == 0) goto inf_leave; \ + have--; \ + hold += (unsigned long)(*next++) << bits; \ + bits += 8; \ + } while (0) + +/* Assure that there are at least n bits in the bit accumulator. If there is + not enough available input to do that, then return from inflate(). */ +#define NEEDBITS(n) \ + do { \ + while (bits < (unsigned)(n)) \ + PULLBYTE(); \ + } while (0) + +/* Return the low n bits of the bit accumulator (n < 16) */ +#define BITS(n) \ + ((unsigned)hold & ((1U << (n)) - 1)) + +/* Remove n bits from the bit accumulator */ +#define DROPBITS(n) \ + do { \ + hold >>= (n); \ + bits -= (unsigned)(n); \ + } while (0) + +/* Remove zero to seven bits as needed to go to a byte boundary */ +#define BYTEBITS() \ + do { \ + hold >>= bits & 7; \ + bits -= bits & 7; \ + } while (0) + +/* Reverse the bytes in a 32-bit value */ +#define REVERSE(q) \ + ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ + (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) + +/* + inflate() uses a state machine to process as much input data and generate as + much output data as possible before returning. The state machine is + structured roughly as follows: + + for (;;) switch (state) { + ... + case STATEn: + if (not enough input data or output space to make progress) + return; + ... make progress ... + state = STATEm; + break; + ... + } + + so when inflate() is called again, the same case is attempted again, and + if the appropriate resources are provided, the machine proceeds to the + next state. The NEEDBITS() macro is usually the way the state evaluates + whether it can proceed or should return. NEEDBITS() does the return if + the requested bits are not available. The typical use of the BITS macros + is: + + NEEDBITS(n); + ... do something with BITS(n) ... + DROPBITS(n); + + where NEEDBITS(n) either returns from inflate() if there isn't enough + input left to load n bits into the accumulator, or it continues. BITS(n) + gives the low n bits in the accumulator. When done, DROPBITS(n) drops + the low n bits off the accumulator. INITBITS() clears the accumulator + and sets the number of available bits to zero. BYTEBITS() discards just + enough bits to put the accumulator on a byte boundary. After BYTEBITS() + and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. + + NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return + if there is no input available. The decoding of variable length codes uses + PULLBYTE() directly in order to pull just enough bytes to decode the next + code, and no more. + + Some states loop until they get enough input, making sure that enough + state information is maintained to continue the loop where it left off + if NEEDBITS() returns in the loop. For example, want, need, and keep + would all have to actually be part of the saved state in case NEEDBITS() + returns: + + case STATEw: + while (want < need) { + NEEDBITS(n); + keep[want++] = BITS(n); + DROPBITS(n); + } + state = STATEx; + case STATEx: + + As shown above, if the next state is also the next case, then the break + is omitted. + + A state may also return if there is not enough output space available to + complete that state. Those states are copying stored data, writing a + literal byte, and copying a matching string. + + When returning, a "goto inf_leave" is used to update the total counters, + update the check value, and determine whether any progress has been made + during that inflate() call in order to return the proper return code. + Progress is defined as a change in either strm->avail_in or strm->avail_out. + When there is a window, goto inf_leave will update the window with the last + output written. If a goto inf_leave occurs in the middle of decompression + and there is no window currently, goto inf_leave will create one and copy + output to the window for the next call of inflate(). + + In this implementation, the flush parameter of inflate() only affects the + return code (per zlib.h). inflate() always writes as much as possible to + strm->next_out, given the space available and the provided input--the effect + documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers + the allocation of and copying into a sliding window until necessary, which + provides the effect documented in zlib.h for Z_FINISH when the entire input + stream available. So the only thing the flush parameter actually does is: + when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it + will return Z_BUF_ERROR if it has not reached the end of the stream. + */ + +int ZEXPORT inflate(strm, flush) +z_streamp strm; +int flush; +{ + struct inflate_state FAR *state; + unsigned char FAR *next; /* next input */ + unsigned char FAR *put; /* next output */ + unsigned have, left; /* available input and output */ + unsigned long hold; /* bit buffer */ + unsigned bits; /* bits in bit buffer */ + unsigned in, out; /* save starting available input and output */ + unsigned copy; /* number of stored or match bytes to copy */ + unsigned char FAR *from; /* where to copy match bytes from */ + code this; /* current decoding table entry */ + code last; /* parent table entry */ + unsigned len; /* length to copy for repeats, bits to drop */ + int ret; /* return code */ +#ifdef GUNZIP + unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ +#endif + static const unsigned short order[19] = /* permutation of code lengths */ + {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + + /* XXXMYSQL: To assert that put is never used uninitialized */ +#ifdef DEBUG + put = NULL; +#endif /* DEBUG */ + + if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL || + (strm->next_in == Z_NULL && strm->avail_in != 0)) + return Z_STREAM_ERROR; + + state = (struct inflate_state FAR *)strm->state; + if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ + LOAD(); + in = have; + out = left; + ret = Z_OK; + for (;;) + switch (state->mode) { + case HEAD: + if (state->wrap == 0) { + state->mode = TYPEDO; + break; + } + NEEDBITS(16); +#ifdef GUNZIP + if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ + state->check = crc32(0L, Z_NULL, 0); + CRC2(state->check, hold); + INITBITS(); + state->mode = FLAGS; + break; + } + state->flags = 0; /* expect zlib header */ + if (state->head != Z_NULL) + state->head->done = -1; + if (!(state->wrap & 1) || /* check if zlib header allowed */ +#else + if ( +#endif + ((BITS(8) << 8) + (hold >> 8)) % 31) { + strm->msg = (char *)"incorrect header check"; + state->mode = BAD; + break; + } + if (BITS(4) != Z_DEFLATED) { + strm->msg = (char *)"unknown compression method"; + state->mode = BAD; + break; + } + DROPBITS(4); + len = BITS(4) + 8; + if (len > state->wbits) { + strm->msg = (char *)"invalid window size"; + state->mode = BAD; + break; + } + state->dmax = 1U << len; + Tracev((stderr, "inflate: zlib header ok\n")); + strm->adler = state->check = adler32(0L, Z_NULL, 0); + state->mode = hold & 0x200 ? DICTID : TYPE; + INITBITS(); + break; +#ifdef GUNZIP + case FLAGS: + NEEDBITS(16); + state->flags = (int)(hold); + if ((state->flags & 0xff) != Z_DEFLATED) { + strm->msg = (char *)"unknown compression method"; + state->mode = BAD; + break; + } + if (state->flags & 0xe000) { + strm->msg = (char *)"unknown header flags set"; + state->mode = BAD; + break; + } + if (state->head != Z_NULL) + state->head->text = (int)((hold >> 8) & 1); + if (state->flags & 0x0200) CRC2(state->check, hold); + INITBITS(); + state->mode = TIME; + case TIME: + NEEDBITS(32); + if (state->head != Z_NULL) + state->head->time = hold; + if (state->flags & 0x0200) CRC4(state->check, hold); + INITBITS(); + state->mode = OS; + case OS: + NEEDBITS(16); + if (state->head != Z_NULL) { + state->head->xflags = (int)(hold & 0xff); + state->head->os = (int)(hold >> 8); + } + if (state->flags & 0x0200) CRC2(state->check, hold); + INITBITS(); + state->mode = EXLEN; + case EXLEN: + if (state->flags & 0x0400) { + NEEDBITS(16); + state->length = (unsigned)(hold); + if (state->head != Z_NULL) + state->head->extra_len = (unsigned)hold; + if (state->flags & 0x0200) CRC2(state->check, hold); + INITBITS(); + } + else if (state->head != Z_NULL) + state->head->extra = Z_NULL; + state->mode = EXTRA; + case EXTRA: + if (state->flags & 0x0400) { + copy = state->length; + if (copy > have) copy = have; + if (copy) { + if (state->head != Z_NULL && + state->head->extra != Z_NULL) { + len = state->head->extra_len - state->length; + zmemcpy(state->head->extra + len, next, + len + copy > state->head->extra_max ? + state->head->extra_max - len : copy); + } + if (state->flags & 0x0200) + state->check = crc32(state->check, next, copy); + have -= copy; + next += copy; + state->length -= copy; + } + if (state->length) goto inf_leave; + } + state->length = 0; + state->mode = NAME; + case NAME: + if (state->flags & 0x0800) { + if (have == 0) goto inf_leave; + copy = 0; + do { + len = (unsigned)(next[copy++]); + if (state->head != Z_NULL && + state->head->name != Z_NULL && + state->length < state->head->name_max) + state->head->name[state->length++] = len; + } while (len && copy < have); + if (state->flags & 0x0200) + state->check = crc32(state->check, next, copy); + have -= copy; + next += copy; + if (len) goto inf_leave; + } + else if (state->head != Z_NULL) + state->head->name = Z_NULL; + state->length = 0; + state->mode = COMMENT; + case COMMENT: + if (state->flags & 0x1000) { + if (have == 0) goto inf_leave; + copy = 0; + do { + len = (unsigned)(next[copy++]); + if (state->head != Z_NULL && + state->head->comment != Z_NULL && + state->length < state->head->comm_max) + state->head->comment[state->length++] = len; + } while (len && copy < have); + if (state->flags & 0x0200) + state->check = crc32(state->check, next, copy); + have -= copy; + next += copy; + if (len) goto inf_leave; + } + else if (state->head != Z_NULL) + state->head->comment = Z_NULL; + state->mode = HCRC; + case HCRC: + if (state->flags & 0x0200) { + NEEDBITS(16); + if (hold != (state->check & 0xffff)) { + strm->msg = (char *)"header crc mismatch"; + state->mode = BAD; + break; + } + INITBITS(); + } + if (state->head != Z_NULL) { + state->head->hcrc = (int)((state->flags >> 9) & 1); + state->head->done = 1; + } + strm->adler = state->check = crc32(0L, Z_NULL, 0); + state->mode = TYPE; + break; +#endif + case DICTID: + NEEDBITS(32); + strm->adler = state->check = REVERSE(hold); + INITBITS(); + state->mode = DICT; + case DICT: + if (state->havedict == 0) { + RESTORE(); + return Z_NEED_DICT; + } + strm->adler = state->check = adler32(0L, Z_NULL, 0); + state->mode = TYPE; + case TYPE: + if (flush == Z_BLOCK) goto inf_leave; + case TYPEDO: + if (state->last) { + BYTEBITS(); + state->mode = CHECK; + break; + } + NEEDBITS(3); + state->last = BITS(1); + DROPBITS(1); + switch (BITS(2)) { + case 0: /* stored block */ + Tracev((stderr, "inflate: stored block%s\n", + state->last ? " (last)" : "")); + state->mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + Tracev((stderr, "inflate: fixed codes block%s\n", + state->last ? " (last)" : "")); + state->mode = LEN; /* decode codes */ + break; + case 2: /* dynamic block */ + Tracev((stderr, "inflate: dynamic codes block%s\n", + state->last ? " (last)" : "")); + state->mode = TABLE; + break; + case 3: + strm->msg = (char *)"invalid block type"; + state->mode = BAD; + } + DROPBITS(2); + break; + case STORED: + BYTEBITS(); /* go to byte boundary */ + NEEDBITS(32); + if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { + strm->msg = (char *)"invalid stored block lengths"; + state->mode = BAD; + break; + } + state->length = (unsigned)hold & 0xffff; + Tracev((stderr, "inflate: stored length %u\n", + state->length)); + INITBITS(); + state->mode = COPY; + case COPY: + copy = state->length; + if (copy) { + if (copy > have) copy = have; + if (copy > left) copy = left; + if (copy == 0) goto inf_leave; + /* XXXMYSQL: Assert that put is not uninitialized */ + Assert ( put != NULL, "put is uninitialized" ); + zmemcpy(put, next, copy); + have -= copy; + next += copy; + left -= copy; + put += copy; + state->length -= copy; + break; + } + Tracev((stderr, "inflate: stored end\n")); + state->mode = TYPE; + break; + case TABLE: + NEEDBITS(14); + state->nlen = BITS(5) + 257; + DROPBITS(5); + state->ndist = BITS(5) + 1; + DROPBITS(5); + state->ncode = BITS(4) + 4; + DROPBITS(4); +#ifndef PKZIP_BUG_WORKAROUND + if (state->nlen > 286 || state->ndist > 30) { + strm->msg = (char *)"too many length or distance symbols"; + state->mode = BAD; + break; + } +#endif + Tracev((stderr, "inflate: table sizes ok\n")); + state->have = 0; + state->mode = LENLENS; + case LENLENS: + while (state->have < state->ncode) { + NEEDBITS(3); + state->lens[order[state->have++]] = (unsigned short)BITS(3); + DROPBITS(3); + } + while (state->have < 19) + state->lens[order[state->have++]] = 0; + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 7; + ret = inflate_table(CODES, state->lens, 19, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid code lengths set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: code lengths ok\n")); + state->have = 0; + state->mode = CODELENS; + case CODELENS: + while (state->have < state->nlen + state->ndist) { + for (;;) { + this = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(this.bits) <= bits) break; + PULLBYTE(); + } + if (this.val < 16) { + NEEDBITS(this.bits); + DROPBITS(this.bits); + state->lens[state->have++] = this.val; + } + else { + if (this.val == 16) { + NEEDBITS(this.bits + 2); + DROPBITS(this.bits); + if (state->have == 0) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + len = state->lens[state->have - 1]; + copy = 3 + BITS(2); + DROPBITS(2); + } + else if (this.val == 17) { + NEEDBITS(this.bits + 3); + DROPBITS(this.bits); + len = 0; + copy = 3 + BITS(3); + DROPBITS(3); + } + else { + NEEDBITS(this.bits + 7); + DROPBITS(this.bits); + len = 0; + copy = 11 + BITS(7); + DROPBITS(7); + } + if (state->have + copy > state->nlen + state->ndist) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + while (copy--) + state->lens[state->have++] = (unsigned short)len; + } + } + + /* handle error breaks in while */ + if (state->mode == BAD) break; + + /* build code tables */ + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 9; + ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid literal/lengths set"; + state->mode = BAD; + break; + } + state->distcode = (code const FAR *)(state->next); + state->distbits = 6; + ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, + &(state->next), &(state->distbits), state->work); + if (ret) { + strm->msg = (char *)"invalid distances set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: codes ok\n")); + state->mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + RESTORE(); + inflate_fast(strm, out); + LOAD(); + break; + } + for (;;) { + this = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(this.bits) <= bits) break; + PULLBYTE(); + } + if (this.op && (this.op & 0xf0) == 0) { + last = this; + for (;;) { + this = state->lencode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + this.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + } + DROPBITS(this.bits); + state->length = (unsigned)this.val; + if ((int)(this.op) == 0) { + Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", this.val)); + state->mode = LIT; + break; + } + if (this.op & 32) { + Tracevv((stderr, "inflate: end of block\n")); + state->mode = TYPE; + break; + } + if (this.op & 64) { + strm->msg = (char *)"invalid literal/length code"; + state->mode = BAD; + break; + } + state->extra = (unsigned)(this.op) & 15; + state->mode = LENEXT; + case LENEXT: + if (state->extra) { + NEEDBITS(state->extra); + state->length += BITS(state->extra); + DROPBITS(state->extra); + } + Tracevv((stderr, "inflate: length %u\n", state->length)); + state->mode = DIST; + case DIST: + for (;;) { + this = state->distcode[BITS(state->distbits)]; + if ((unsigned)(this.bits) <= bits) break; + PULLBYTE(); + } + if ((this.op & 0xf0) == 0) { + last = this; + for (;;) { + this = state->distcode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + this.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + } + DROPBITS(this.bits); + if (this.op & 64) { + strm->msg = (char *)"invalid distance code"; + state->mode = BAD; + break; + } + state->offset = (unsigned)this.val; + state->extra = (unsigned)(this.op) & 15; + state->mode = DISTEXT; + case DISTEXT: + if (state->extra) { + NEEDBITS(state->extra); + state->offset += BITS(state->extra); + DROPBITS(state->extra); + } +#ifdef INFLATE_STRICT + if (state->offset > state->dmax) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } +#endif + if (state->offset > state->whave + out - left) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } + Tracevv((stderr, "inflate: distance %u\n", state->offset)); + state->mode = MATCH; + case MATCH: + if (left == 0) goto inf_leave; + copy = out - left; + if (state->offset > copy) { /* copy from window */ + copy = state->offset - copy; + if (copy > state->write) { + copy -= state->write; + from = state->window + (state->wsize - copy); + } + else + from = state->window + (state->write - copy); + if (copy > state->length) copy = state->length; + } + else { /* copy from output */ + /* XXXMYSQL: Assert that put is not uninitialized */ + Assert ( put != NULL, "put is uninitialized" ); + from = put - state->offset; + copy = state->length; + } + if (copy > left) copy = left; + left -= copy; + state->length -= copy; + do { + *put++ = *from++; + } while (--copy); + if (state->length == 0) state->mode = LEN; + break; + case LIT: + if (left == 0) goto inf_leave; + *put++ = (unsigned char)(state->length); + left--; + state->mode = LEN; + break; + case CHECK: + if (state->wrap) { + NEEDBITS(32); + out -= left; + strm->total_out += out; + state->total += out; + if (out) { + /* XXXMYSQL: Assert that put is not uninitialized */ + Assert ( put != NULL, "put is uninitialized" ); + strm->adler = state->check = + UPDATE(state->check, put - out, out); + } + out = left; + if (( +#ifdef GUNZIP + state->flags ? hold : +#endif + REVERSE(hold)) != state->check) { + strm->msg = (char *)"incorrect data check"; + state->mode = BAD; + break; + } + INITBITS(); + Tracev((stderr, "inflate: check matches trailer\n")); + } +#ifdef GUNZIP + state->mode = LENGTH; + case LENGTH: + if (state->wrap && state->flags) { + NEEDBITS(32); + if (hold != (state->total & 0xffffffffUL)) { + strm->msg = (char *)"incorrect length check"; + state->mode = BAD; + break; + } + INITBITS(); + Tracev((stderr, "inflate: length matches trailer\n")); + } +#endif + state->mode = DONE; + case DONE: + ret = Z_STREAM_END; + goto inf_leave; + case BAD: + ret = Z_DATA_ERROR; + goto inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + + /* + Return from inflate(), updating the total counts and the check value. + If there was no progress during the inflate() call, return a buffer + error. Call updatewindow() to create and/or update the window state. + Note: a memory error from inflate() is non-recoverable. + */ + inf_leave: + RESTORE(); + if (state->wsize || (state->mode < CHECK && out != strm->avail_out)) + if (updatewindow(strm, out)) { + state->mode = MEM; + return Z_MEM_ERROR; + } + in -= strm->avail_in; + out -= strm->avail_out; + strm->total_in += in; + strm->total_out += out; + state->total += out; + if (state->wrap && out) + strm->adler = state->check = + UPDATE(state->check, strm->next_out - out, out); + strm->data_type = state->bits + (state->last ? 64 : 0) + + (state->mode == TYPE ? 128 : 0); + if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) + ret = Z_BUF_ERROR; + return ret; +} + +int ZEXPORT inflateEnd(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) + return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (state->window != Z_NULL) ZFREE(strm, state->window); + ZFREE(strm, strm->state); + strm->state = Z_NULL; + Tracev((stderr, "inflate: end\n")); + return Z_OK; +} + +int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) +z_streamp strm; +const Bytef *dictionary; +uInt dictLength; +{ + struct inflate_state FAR *state; + unsigned long id; + + /* check state */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (state->wrap != 0 && state->mode != DICT) + return Z_STREAM_ERROR; + + /* check for correct dictionary id */ + if (state->mode == DICT) { + id = adler32(0L, Z_NULL, 0); + id = adler32(id, dictionary, dictLength); + if (id != state->check) + return Z_DATA_ERROR; + } + + /* copy dictionary to window */ + if (updatewindow(strm, strm->avail_out)) { + state->mode = MEM; + return Z_MEM_ERROR; + } + if (dictLength > state->wsize) { + zmemcpy(state->window, dictionary + dictLength - state->wsize, + state->wsize); + state->whave = state->wsize; + } + else { + zmemcpy(state->window + state->wsize - dictLength, dictionary, + dictLength); + state->whave = dictLength; + } + state->havedict = 1; + Tracev((stderr, "inflate: dictionary set\n")); + return Z_OK; +} + +int ZEXPORT inflateGetHeader(strm, head) +z_streamp strm; +gz_headerp head; +{ + struct inflate_state FAR *state; + + /* check state */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; + + /* save header structure */ + state->head = head; + head->done = 0; + return Z_OK; +} + +/* + Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found + or when out of input. When called, *have is the number of pattern bytes + found in order so far, in 0..3. On return *have is updated to the new + state. If on return *have equals four, then the pattern was found and the + return value is how many bytes were read including the last byte of the + pattern. If *have is less than four, then the pattern has not been found + yet and the return value is len. In the latter case, syncsearch() can be + called again with more data and the *have state. *have is initialized to + zero for the first call. + */ +local unsigned syncsearch(have, buf, len) +unsigned FAR *have; +unsigned char FAR *buf; +unsigned len; +{ + unsigned got; + unsigned next; + + got = *have; + next = 0; + while (next < len && got < 4) { + if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) + got++; + else if (buf[next]) + got = 0; + else + got = 4 - got; + next++; + } + *have = got; + return next; +} + +int ZEXPORT inflateSync(strm) +z_streamp strm; +{ + unsigned len; /* number of bytes to look at or looked at */ + unsigned long in, out; /* temporary to save total_in and total_out */ + unsigned char buf[4]; /* to restore bit buffer to byte string */ + struct inflate_state FAR *state; + + /* check parameters */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; + + /* if first time, start search in bit buffer */ + if (state->mode != SYNC) { + state->mode = SYNC; + state->hold <<= state->bits & 7; + state->bits -= state->bits & 7; + len = 0; + while (state->bits >= 8) { + buf[len++] = (unsigned char)(state->hold); + state->hold >>= 8; + state->bits -= 8; + } + state->have = 0; + syncsearch(&(state->have), buf, len); + } + + /* search available input */ + len = syncsearch(&(state->have), strm->next_in, strm->avail_in); + strm->avail_in -= len; + strm->next_in += len; + strm->total_in += len; + + /* return no joy or set up to restart inflate() on a new block */ + if (state->have != 4) return Z_DATA_ERROR; + in = strm->total_in; out = strm->total_out; + inflateReset(strm); + strm->total_in = in; strm->total_out = out; + state->mode = TYPE; + return Z_OK; +} + +/* + Returns true if inflate is currently at the end of a block generated by + Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP + implementation to provide an additional safety check. PPP uses + Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored + block. When decompressing, PPP checks that at the end of input packet, + inflate is waiting for these length bytes. + */ +int ZEXPORT inflateSyncPoint(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + return state->mode == STORED && state->bits == 0; +} + +int ZEXPORT inflateCopy(dest, source) +z_streamp dest; +z_streamp source; +{ + struct inflate_state FAR *state; + struct inflate_state FAR *copy; + unsigned char FAR *window; + unsigned wsize; + + /* check input */ + if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL || + source->zalloc == (alloc_func)0 || source->zfree == (free_func)0) + return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)source->state; + + /* allocate space */ + copy = (struct inflate_state FAR *) + ZALLOC(source, 1, sizeof(struct inflate_state)); + if (copy == Z_NULL) return Z_MEM_ERROR; + window = Z_NULL; + if (state->window != Z_NULL) { + window = (unsigned char FAR *) + ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); + if (window == Z_NULL) { + ZFREE(source, copy); + return Z_MEM_ERROR; + } + } + + /* copy state */ + zmemcpy(dest, source, sizeof(z_stream)); + zmemcpy(copy, state, sizeof(struct inflate_state)); + if (state->lencode >= state->codes && + state->lencode <= state->codes + ENOUGH - 1) { + copy->lencode = copy->codes + (state->lencode - state->codes); + copy->distcode = copy->codes + (state->distcode - state->codes); + } + copy->next = copy->codes + (state->next - state->codes); + if (window != Z_NULL) { + wsize = 1U << state->wbits; + zmemcpy(window, state->window, wsize); + } + copy->window = window; + dest->state = (struct internal_state FAR *)copy; + return Z_OK; +} diff --git a/mysql/zlib/inflate.h b/mysql/zlib/inflate.h new file mode 100644 index 0000000..07bd3e7 --- /dev/null +++ b/mysql/zlib/inflate.h @@ -0,0 +1,115 @@ +/* inflate.h -- internal inflate state definition + * Copyright (C) 1995-2004 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* define NO_GZIP when compiling if you want to disable gzip header and + trailer decoding by inflate(). NO_GZIP would be used to avoid linking in + the crc code when it is not needed. For shared libraries, gzip decoding + should be left enabled. */ +#ifndef NO_GZIP +# define GUNZIP +#endif + +/* Possible inflate modes between inflate() calls */ +typedef enum { + HEAD, /* i: waiting for magic header */ + FLAGS, /* i: waiting for method and flags (gzip) */ + TIME, /* i: waiting for modification time (gzip) */ + OS, /* i: waiting for extra flags and operating system (gzip) */ + EXLEN, /* i: waiting for extra length (gzip) */ + EXTRA, /* i: waiting for extra bytes (gzip) */ + NAME, /* i: waiting for end of file name (gzip) */ + COMMENT, /* i: waiting for end of comment (gzip) */ + HCRC, /* i: waiting for header crc (gzip) */ + DICTID, /* i: waiting for dictionary check value */ + DICT, /* waiting for inflateSetDictionary() call */ + TYPE, /* i: waiting for type bits, including last-flag bit */ + TYPEDO, /* i: same, but skip check to exit inflate on new block */ + STORED, /* i: waiting for stored size (length and complement) */ + COPY, /* i/o: waiting for input or output to copy stored block */ + TABLE, /* i: waiting for dynamic block table lengths */ + LENLENS, /* i: waiting for code length code lengths */ + CODELENS, /* i: waiting for length/lit and distance code lengths */ + LEN, /* i: waiting for length/lit code */ + LENEXT, /* i: waiting for length extra bits */ + DIST, /* i: waiting for distance code */ + DISTEXT, /* i: waiting for distance extra bits */ + MATCH, /* o: waiting for output space to copy string */ + LIT, /* o: waiting for output space to write literal */ + CHECK, /* i: waiting for 32-bit check value */ + LENGTH, /* i: waiting for 32-bit length (gzip) */ + DONE, /* finished check, done -- remain here until reset */ + BAD, /* got a data error -- remain here until reset */ + MEM, /* got an inflate() memory error -- remain here until reset */ + SYNC /* looking for synchronization bytes to restart inflate() */ +} inflate_mode; + +/* + State transitions between above modes - + + (most modes can go to the BAD or MEM mode -- not shown for clarity) + + Process header: + HEAD -> (gzip) or (zlib) + (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME + NAME -> COMMENT -> HCRC -> TYPE + (zlib) -> DICTID or TYPE + DICTID -> DICT -> TYPE + Read deflate blocks: + TYPE -> STORED or TABLE or LEN or CHECK + STORED -> COPY -> TYPE + TABLE -> LENLENS -> CODELENS -> LEN + Read deflate codes: + LEN -> LENEXT or LIT or TYPE + LENEXT -> DIST -> DISTEXT -> MATCH -> LEN + LIT -> LEN + Process trailer: + CHECK -> LENGTH -> DONE + */ + +/* state maintained between inflate() calls. Approximately 7K bytes. */ +struct inflate_state { + inflate_mode mode; /* current inflate mode */ + int last; /* true if processing last block */ + int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ + int havedict; /* true if dictionary provided */ + int flags; /* gzip header method and flags (0 if zlib) */ + unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ + unsigned long check; /* protected copy of check value */ + unsigned long total; /* protected copy of output count */ + gz_headerp head; /* where to save gzip header information */ + /* sliding window */ + unsigned wbits; /* log base 2 of requested window size */ + unsigned wsize; /* window size or zero if not using window */ + unsigned whave; /* valid bytes in the window */ + unsigned write; /* window write index */ + unsigned char FAR *window; /* allocated sliding window, if needed */ + /* bit accumulator */ + unsigned long hold; /* input bit accumulator */ + unsigned bits; /* number of bits in "in" */ + /* for string and stored block copying */ + unsigned length; /* literal or length of data to copy */ + unsigned offset; /* distance back to copy string from */ + /* for table and code decoding */ + unsigned extra; /* extra bits needed */ + /* fixed and dynamic code tables */ + code const FAR *lencode; /* starting table for length/literal codes */ + code const FAR *distcode; /* starting table for distance codes */ + unsigned lenbits; /* index bits for lencode */ + unsigned distbits; /* index bits for distcode */ + /* dynamic table building */ + unsigned ncode; /* number of code length code lengths */ + unsigned nlen; /* number of length code lengths */ + unsigned ndist; /* number of distance code lengths */ + unsigned have; /* number of code lengths in lens[] */ + code FAR *next; /* next available space in codes[] */ + unsigned short lens[320]; /* temporary storage for code lengths */ + unsigned short work[288]; /* work area for code table building */ + code codes[ENOUGH]; /* space for code tables */ +}; diff --git a/mysql/zlib/inftrees.c b/mysql/zlib/inftrees.c new file mode 100644 index 0000000..8a9c13f --- /dev/null +++ b/mysql/zlib/inftrees.c @@ -0,0 +1,329 @@ +/* inftrees.c -- generate Huffman trees for efficient decoding + * Copyright (C) 1995-2005 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" + +#define MAXBITS 15 + +const char inflate_copyright[] = + " inflate 1.2.3 Copyright 1995-2005 Mark Adler "; +/* + If you use the zlib library in a product, an acknowledgment is welcome + in the documentation of your product. If for some reason you cannot + include such an acknowledgment, I would appreciate that you keep this + copyright string in the executable of your product. + */ + +/* + Build a set of tables to decode the provided canonical Huffman code. + The code lengths are lens[0..codes-1]. The result starts at *table, + whose indices are 0..2^bits-1. work is a writable array of at least + lens shorts, which is used as a work area. type is the type of code + to be generated, CODES, LENS, or DISTS. On return, zero is success, + -1 is an invalid code, and +1 means that ENOUGH isn't enough. table + on return points to the next available entry's address. bits is the + requested root table index bits, and on return it is the actual root + table index bits. It will differ if the request is greater than the + longest code or if it is less than the shortest code. + */ +int inflate_table(type, lens, codes, table, bits, work) +codetype type; +unsigned short FAR *lens; +unsigned codes; +code FAR * FAR *table; +unsigned FAR *bits; +unsigned short FAR *work; +{ + unsigned len; /* a code's length in bits */ + unsigned sym; /* index of code symbols */ + unsigned min, max; /* minimum and maximum code lengths */ + unsigned root; /* number of index bits for root table */ + unsigned curr; /* number of index bits for current table */ + unsigned drop; /* code bits to drop for sub-table */ + int left; /* number of prefix codes available */ + unsigned used; /* code entries in table used */ + unsigned huff; /* Huffman code */ + unsigned incr; /* for incrementing code, index */ + unsigned fill; /* index for replicating entries */ + unsigned low; /* low bits for current root entry */ + unsigned mask; /* mask for low root bits */ + code this; /* table entry for duplication */ + code FAR *next; /* next available space in table */ + const unsigned short FAR *base; /* base value table to use */ + const unsigned short FAR *extra; /* extra bits table to use */ + int end; /* use base and extra for symbol > end */ + unsigned short count[MAXBITS+1]; /* number of codes of each length */ + unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ + static const unsigned short lbase[31] = { /* Length codes 257..285 base */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + static const unsigned short lext[31] = { /* Length codes 257..285 extra */ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 201, 196}; + static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577, 0, 0}; + static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, + 28, 28, 29, 29, 64, 64}; + + /* + Process a set of code lengths to create a canonical Huffman code. The + code lengths are lens[0..codes-1]. Each length corresponds to the + symbols 0..codes-1. The Huffman code is generated by first sorting the + symbols by length from short to long, and retaining the symbol order + for codes with equal lengths. Then the code starts with all zero bits + for the first code of the shortest length, and the codes are integer + increments for the same length, and zeros are appended as the length + increases. For the deflate format, these bits are stored backwards + from their more natural integer increment ordering, and so when the + decoding tables are built in the large loop below, the integer codes + are incremented backwards. + + This routine assumes, but does not check, that all of the entries in + lens[] are in the range 0..MAXBITS. The caller must assure this. + 1..MAXBITS is interpreted as that code length. zero means that that + symbol does not occur in this code. + + The codes are sorted by computing a count of codes for each length, + creating from that a table of starting indices for each length in the + sorted table, and then entering the symbols in order in the sorted + table. The sorted table is work[], with that space being provided by + the caller. + + The length counts are used for other purposes as well, i.e. finding + the minimum and maximum length codes, determining if there are any + codes at all, checking for a valid set of lengths, and looking ahead + at length counts to determine sub-table sizes when building the + decoding tables. + */ + + /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ + for (len = 0; len <= MAXBITS; len++) + count[len] = 0; + for (sym = 0; sym < codes; sym++) + count[lens[sym]]++; + + /* bound code lengths, force root to be within code lengths */ + root = *bits; + for (max = MAXBITS; max >= 1; max--) + if (count[max] != 0) break; + if (root > max) root = max; + if (max == 0) { /* no symbols to code at all */ + this.op = (unsigned char)64; /* invalid code marker */ + this.bits = (unsigned char)1; + this.val = (unsigned short)0; + *(*table)++ = this; /* make a table to force an error */ + *(*table)++ = this; + *bits = 1; + return 0; /* no symbols, but wait for decoding to report error */ + } + for (min = 1; min <= MAXBITS; min++) + if (count[min] != 0) break; + if (root < min) root = min; + + /* check for an over-subscribed or incomplete set of lengths */ + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) return -1; /* over-subscribed */ + } + if (left > 0 && (type == CODES || max != 1)) + return -1; /* incomplete set */ + + /* generate offsets into symbol table for each length for sorting */ + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) + offs[len + 1] = offs[len] + count[len]; + + /* sort symbols by length, by symbol order within each length */ + for (sym = 0; sym < codes; sym++) + if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; + + /* + Create and fill in decoding tables. In this loop, the table being + filled is at next and has curr index bits. The code being used is huff + with length len. That code is converted to an index by dropping drop + bits off of the bottom. For codes where len is less than drop + curr, + those top drop + curr - len bits are incremented through all values to + fill the table with replicated entries. + + root is the number of index bits for the root table. When len exceeds + root, sub-tables are created pointed to by the root entry with an index + of the low root bits of huff. This is saved in low to check for when a + new sub-table should be started. drop is zero when the root table is + being filled, and drop is root when sub-tables are being filled. + + When a new sub-table is needed, it is necessary to look ahead in the + code lengths to determine what size sub-table is needed. The length + counts are used for this, and so count[] is decremented as codes are + entered in the tables. + + used keeps track of how many table entries have been allocated from the + provided *table space. It is checked when a LENS table is being made + against the space in *table, ENOUGH, minus the maximum space needed by + the worst case distance code, MAXD. This should never happen, but the + sufficiency of ENOUGH has not been proven exhaustively, hence the check. + This assumes that when type == LENS, bits == 9. + + sym increments through all symbols, and the loop terminates when + all codes of length max, i.e. all codes, have been processed. This + routine permits incomplete codes, so another loop after this one fills + in the rest of the decoding tables with invalid code markers. + */ + + /* set up for code type */ + switch (type) { + case CODES: + base = extra = work; /* dummy value--not used */ + end = 19; + break; + case LENS: + base = lbase; + base -= 257; + extra = lext; + extra -= 257; + end = 256; + break; + default: /* DISTS */ + base = dbase; + extra = dext; + end = -1; + } + + /* initialize state for loop */ + huff = 0; /* starting code */ + sym = 0; /* starting code symbol */ + len = min; /* starting code length */ + next = *table; /* current table to fill in */ + curr = root; /* current table index bits */ + drop = 0; /* current bits to drop from code for index */ + low = (unsigned)(-1); /* trigger new sub-table when len > root */ + used = 1U << root; /* use root table entries */ + mask = used - 1; /* mask for comparing low */ + + /* check available table space */ + if (type == LENS && used >= ENOUGH - MAXD) + return 1; + + /* process all codes and make table entries */ + for (;;) { + /* create table entry */ + this.bits = (unsigned char)(len - drop); + if ((int)(work[sym]) < end) { + this.op = (unsigned char)0; + this.val = work[sym]; + } + else if ((int)(work[sym]) > end) { + this.op = (unsigned char)(extra[work[sym]]); + this.val = base[work[sym]]; + } + else { + this.op = (unsigned char)(32 + 64); /* end of block */ + this.val = 0; + } + + /* replicate for those indices with low len bits equal to huff */ + incr = 1U << (len - drop); + fill = 1U << curr; + min = fill; /* save offset to next table */ + do { + fill -= incr; + next[(huff >> drop) + fill] = this; + } while (fill != 0); + + /* backwards increment the len-bit code huff */ + incr = 1U << (len - 1); + while (huff & incr) + incr >>= 1; + if (incr != 0) { + huff &= incr - 1; + huff += incr; + } + else + huff = 0; + + /* go to next symbol, update count, len */ + sym++; + if (--(count[len]) == 0) { + if (len == max) break; + len = lens[work[sym]]; + } + + /* create new sub-table if needed */ + if (len > root && (huff & mask) != low) { + /* if first time, transition to sub-tables */ + if (drop == 0) + drop = root; + + /* increment past last table */ + next += min; /* here min is 1 << curr */ + + /* determine length of next table */ + curr = len - drop; + left = (int)(1 << curr); + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) break; + curr++; + left <<= 1; + } + + /* check for enough space */ + used += 1U << curr; + if (type == LENS && used >= ENOUGH - MAXD) + return 1; + + /* point entry in root table to sub-table */ + low = huff & mask; + (*table)[low].op = (unsigned char)curr; + (*table)[low].bits = (unsigned char)root; + (*table)[low].val = (unsigned short)(next - *table); + } + } + + /* + Fill in rest of table for incomplete codes. This loop is similar to the + loop above in incrementing huff for table indices. It is assumed that + len is equal to curr + drop, so there is no loop needed to increment + through high index bits. When the current sub-table is filled, the loop + drops back to the root table to fill in any remaining entries there. + */ + this.op = (unsigned char)64; /* invalid code marker */ + this.bits = (unsigned char)(len - drop); + this.val = (unsigned short)0; + while (huff != 0) { + /* when done with sub-table, drop back to root table */ + if (drop != 0 && (huff & mask) != low) { + drop = 0; + len = root; + next = *table; + this.bits = (unsigned char)len; + } + + /* put invalid code marker in table */ + next[huff >> drop] = this; + + /* backwards increment the len-bit code huff */ + incr = 1U << (len - 1); + while (huff & incr) + incr >>= 1; + if (incr != 0) { + huff &= incr - 1; + huff += incr; + } + else + huff = 0; + } + + /* set return parameters */ + *table += used; + *bits = root; + return 0; +} diff --git a/mysql/zlib/inftrees.h b/mysql/zlib/inftrees.h new file mode 100644 index 0000000..b1104c8 --- /dev/null +++ b/mysql/zlib/inftrees.h @@ -0,0 +1,55 @@ +/* inftrees.h -- header to use inftrees.c + * Copyright (C) 1995-2005 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* Structure for decoding tables. Each entry provides either the + information needed to do the operation requested by the code that + indexed that table entry, or it provides a pointer to another + table that indexes more bits of the code. op indicates whether + the entry is a pointer to another table, a literal, a length or + distance, an end-of-block, or an invalid code. For a table + pointer, the low four bits of op is the number of index bits of + that table. For a length or distance, the low four bits of op + is the number of extra bits to get after the code. bits is + the number of bits in this code or part of the code to drop off + of the bit buffer. val is the actual byte to output in the case + of a literal, the base length or distance, or the offset from + the current table to the next table. Each entry is four bytes. */ +typedef struct { + unsigned char op; /* operation, extra bits, table bits */ + unsigned char bits; /* bits in this part of the code */ + unsigned short val; /* offset in table or code value */ +} code; + +/* op values as set by inflate_table(): + 00000000 - literal + 0000tttt - table link, tttt != 0 is the number of table index bits + 0001eeee - length or distance, eeee is the number of extra bits + 01100000 - end of block + 01000000 - invalid code + */ + +/* Maximum size of dynamic tree. The maximum found in a long but non- + exhaustive search was 1444 code structures (852 for length/literals + and 592 for distances, the latter actually the result of an + exhaustive search). The true maximum is not known, but the value + below is more than safe. */ +#define ENOUGH 2048 +#define MAXD 592 + +/* Type of code to build for inftable() */ +typedef enum { + CODES, + LENS, + DISTS +} codetype; + +extern int inflate_table OF((codetype type, unsigned short FAR *lens, + unsigned codes, code FAR * FAR *table, + unsigned FAR *bits, unsigned short FAR *work)); diff --git a/mysql/zlib/trees.c b/mysql/zlib/trees.c new file mode 100644 index 0000000..78024e8 --- /dev/null +++ b/mysql/zlib/trees.c @@ -0,0 +1,1219 @@ +/* trees.c -- output deflated data using Huffman coding + * Copyright (C) 1995-2005 Jean-loup Gailly + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * ALGORITHM + * + * The "deflation" process uses several Huffman trees. The more + * common source values are represented by shorter bit sequences. + * + * Each code tree is stored in a compressed form which is itself + * a Huffman encoding of the lengths of all the code strings (in + * ascending order by source values). The actual code strings are + * reconstructed from the lengths in the inflate process, as described + * in the deflate specification. + * + * REFERENCES + * + * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". + * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc + * + * Storer, James A. + * Data Compression: Methods and Theory, pp. 49-50. + * Computer Science Press, 1988. ISBN 0-7167-8156-5. + * + * Sedgewick, R. + * Algorithms, p290. + * Addison-Wesley, 1983. ISBN 0-201-06672-6. + */ + +/* @(#) $Id$ */ + +/* #define GEN_TREES_H */ + +#include "deflate.h" + +#ifdef DEBUG +# include +#endif + +/* =========================================================================== + * Constants + */ + +#define MAX_BL_BITS 7 +/* Bit length codes must not exceed MAX_BL_BITS bits */ + +#define END_BLOCK 256 +/* end of block literal code */ + +#define REP_3_6 16 +/* repeat previous bit length 3-6 times (2 bits of repeat count) */ + +#define REPZ_3_10 17 +/* repeat a zero length 3-10 times (3 bits of repeat count) */ + +#define REPZ_11_138 18 +/* repeat a zero length 11-138 times (7 bits of repeat count) */ + +local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ + = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; + +local const int extra_dbits[D_CODES] /* extra bits for each distance code */ + = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ + = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; + +local const uch bl_order[BL_CODES] + = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; +/* The lengths of the bit length codes are sent in order of decreasing + * probability, to avoid transmitting the lengths for unused bit length codes. + */ + +#define Buf_size (8 * 2*sizeof(char)) +/* Number of bits used within bi_buf. (bi_buf might be implemented on + * more than 16 bits on some systems.) + */ + +/* =========================================================================== + * Local data. These are initialized only once. + */ + +#define DIST_CODE_LEN 512 /* see definition of array dist_code below */ + +#if defined(GEN_TREES_H) || !defined(STDC) +/* non ANSI compilers may not accept trees.h */ + +local ct_data static_ltree[L_CODES+2]; +/* The static literal tree. Since the bit lengths are imposed, there is no + * need for the L_CODES extra codes used during heap construction. However + * The codes 286 and 287 are needed to build a canonical tree (see _tr_init + * below). + */ + +local ct_data static_dtree[D_CODES]; +/* The static distance tree. (Actually a trivial tree since all codes use + * 5 bits.) + */ + +uch _dist_code[DIST_CODE_LEN]; +/* Distance codes. The first 256 values correspond to the distances + * 3 .. 258, the last 256 values correspond to the top 8 bits of + * the 15 bit distances. + */ + +uch _length_code[MAX_MATCH-MIN_MATCH+1]; +/* length code for each normalized match length (0 == MIN_MATCH) */ + +local int base_length[LENGTH_CODES]; +/* First normalized length for each code (0 = MIN_MATCH) */ + +local int base_dist[D_CODES]; +/* First normalized distance for each code (0 = distance of 1) */ + +#else +# include "trees.h" +#endif /* GEN_TREES_H */ + +struct static_tree_desc_s { + const ct_data *static_tree; /* static tree or NULL */ + const intf *extra_bits; /* extra bits for each code or NULL */ + int extra_base; /* base index for extra_bits */ + int elems; /* max number of elements in the tree */ + int max_length; /* max bit length for the codes */ +}; + +local static_tree_desc static_l_desc = +{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; + +local static_tree_desc static_d_desc = +{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; + +local static_tree_desc static_bl_desc = +{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; + +/* =========================================================================== + * Local (static) routines in this file. + */ + +local void tr_static_init OF((void)); +local void init_block OF((deflate_state *s)); +local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); +local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); +local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); +local void build_tree OF((deflate_state *s, tree_desc *desc)); +local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); +local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); +local int build_bl_tree OF((deflate_state *s)); +local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, + int blcodes)); +local void compress_block OF((deflate_state *s, ct_data *ltree, + ct_data *dtree)); +local void set_data_type OF((deflate_state *s)); +local unsigned bi_reverse OF((unsigned value, int length)); +local void bi_windup OF((deflate_state *s)); +local void bi_flush OF((deflate_state *s)); +local void copy_block OF((deflate_state *s, charf *buf, unsigned len, + int header)); + +#ifdef GEN_TREES_H +local void gen_trees_header OF((void)); +#endif + +#ifndef DEBUG +# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) + /* Send a code of the given tree. c and tree must not have side effects */ + +#else /* DEBUG */ +# define send_code(s, c, tree) \ + { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ + send_bits(s, tree[c].Code, tree[c].Len); } +#endif + +/* =========================================================================== + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. + */ +#define put_short(s, w) { \ + put_byte(s, (uch)((w) & 0xff)); \ + put_byte(s, (uch)((ush)(w) >> 8)); \ +} + +/* =========================================================================== + * Send a value on a given number of bits. + * IN assertion: length <= 16 and value fits in length bits. + */ +#ifdef DEBUG +local void send_bits OF((deflate_state *s, int value, int length)); + +local void send_bits(s, value, length) + deflate_state *s; + int value; /* value to send */ + int length; /* number of bits */ +{ + Tracevv((stderr," l %2d v %4x ", length, value)); + Assert(length > 0 && length <= 15, "invalid length"); + s->bits_sent += (ulg)length; + + /* If not enough room in bi_buf, use (valid) bits from bi_buf and + * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) + * unused bits in value. + */ + if (s->bi_valid > (int)Buf_size - length) { + s->bi_buf |= (value << s->bi_valid); + put_short(s, s->bi_buf); + s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); + s->bi_valid += length - Buf_size; + } else { + s->bi_buf |= value << s->bi_valid; + s->bi_valid += length; + } +} +#else /* !DEBUG */ + +#define send_bits(s, value, length) \ +{ int len = length;\ + if (s->bi_valid > (int)Buf_size - len) {\ + int val = value;\ + s->bi_buf |= (val << s->bi_valid);\ + put_short(s, s->bi_buf);\ + s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ + s->bi_valid += len - Buf_size;\ + } else {\ + s->bi_buf |= (value) << s->bi_valid;\ + s->bi_valid += len;\ + }\ +} +#endif /* DEBUG */ + + +/* the arguments must not have side effects */ + +/* =========================================================================== + * Initialize the various 'constant' tables. + */ +local void tr_static_init() +{ +#if defined(GEN_TREES_H) || !defined(STDC) + static int static_init_done = 0; + int n; /* iterates over tree elements */ + int bits; /* bit counter */ + int length; /* length value */ + int code; /* code value */ + int dist; /* distance index */ + ush bl_count[MAX_BITS+1]; + /* number of codes at each bit length for an optimal tree */ + + if (static_init_done) return; + + /* For some embedded targets, global variables are not initialized: */ + static_l_desc.static_tree = static_ltree; + static_l_desc.extra_bits = extra_lbits; + static_d_desc.static_tree = static_dtree; + static_d_desc.extra_bits = extra_dbits; + static_bl_desc.extra_bits = extra_blbits; + + /* Initialize the mapping length (0..255) -> length code (0..28) */ + length = 0; + for (code = 0; code < LENGTH_CODES-1; code++) { + base_length[code] = length; + for (n = 0; n < (1< dist code (0..29) */ + dist = 0; + for (code = 0 ; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ + for ( ; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { + _dist_code[256 + dist++] = (uch)code; + } + } + Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + /* Construct the codes of the static literal tree */ + for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; + n = 0; + while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; + while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; + while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; + while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; + /* Codes 286 and 287 do not exist, but we must include them in the + * tree construction to get a canonical Huffman tree (longest code + * all ones) + */ + gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); + + /* The static distance tree is trivial: */ + for (n = 0; n < D_CODES; n++) { + static_dtree[n].Len = 5; + static_dtree[n].Code = bi_reverse((unsigned)n, 5); + } + static_init_done = 1; + +# ifdef GEN_TREES_H + gen_trees_header(); +# endif +#endif /* defined(GEN_TREES_H) || !defined(STDC) */ +} + +/* =========================================================================== + * Genererate the file trees.h describing the static trees. + */ +#ifdef GEN_TREES_H +# ifndef DEBUG +# include +# endif + +# define SEPARATOR(i, last, width) \ + ((i) == (last)? "\n};\n\n" : \ + ((i) % (width) == (width)-1 ? ",\n" : ", ")) + +void gen_trees_header() +{ + FILE *header = fopen("trees.h", "w"); + int i; + + Assert (header != NULL, "Can't open trees.h"); + fprintf(header, + "/* header created automatically with -DGEN_TREES_H */\n\n"); + + fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); + for (i = 0; i < L_CODES+2; i++) { + fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, + static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); + } + + fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); + for (i = 0; i < D_CODES; i++) { + fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, + static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); + } + + fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n"); + for (i = 0; i < DIST_CODE_LEN; i++) { + fprintf(header, "%2u%s", _dist_code[i], + SEPARATOR(i, DIST_CODE_LEN-1, 20)); + } + + fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); + for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { + fprintf(header, "%2u%s", _length_code[i], + SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); + } + + fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); + for (i = 0; i < LENGTH_CODES; i++) { + fprintf(header, "%1u%s", base_length[i], + SEPARATOR(i, LENGTH_CODES-1, 20)); + } + + fprintf(header, "local const int base_dist[D_CODES] = {\n"); + for (i = 0; i < D_CODES; i++) { + fprintf(header, "%5u%s", base_dist[i], + SEPARATOR(i, D_CODES-1, 10)); + } + + fclose(header); +} +#endif /* GEN_TREES_H */ + +/* =========================================================================== + * Initialize the tree data structures for a new zlib stream. + */ +void _tr_init(s) + deflate_state *s; +{ + tr_static_init(); + + s->l_desc.dyn_tree = s->dyn_ltree; + s->l_desc.stat_desc = &static_l_desc; + + s->d_desc.dyn_tree = s->dyn_dtree; + s->d_desc.stat_desc = &static_d_desc; + + s->bl_desc.dyn_tree = s->bl_tree; + s->bl_desc.stat_desc = &static_bl_desc; + + s->bi_buf = 0; + s->bi_valid = 0; + s->last_eob_len = 8; /* enough lookahead for inflate */ +#ifdef DEBUG + s->compressed_len = 0L; + s->bits_sent = 0L; +#endif + + /* Initialize the first block of the first file: */ + init_block(s); +} + +/* =========================================================================== + * Initialize a new block. + */ +local void init_block(s) + deflate_state *s; +{ + int n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; + for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; + for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; + + s->dyn_ltree[END_BLOCK].Freq = 1; + s->opt_len = s->static_len = 0L; + s->last_lit = s->matches = 0; +} + +#define SMALLEST 1 +/* Index within the heap array of least frequent node in the Huffman tree */ + + +/* =========================================================================== + * Remove the smallest element from the heap and recreate the heap with + * one less element. Updates heap and heap_len. + */ +#define pqremove(s, tree, top) \ +{\ + top = s->heap[SMALLEST]; \ + s->heap[SMALLEST] = s->heap[s->heap_len--]; \ + pqdownheap(s, tree, SMALLEST); \ +} + +/* =========================================================================== + * Compares to subtrees, using the tree depth as tie breaker when + * the subtrees have equal frequency. This minimizes the worst case length. + */ +#define smaller(tree, n, m, depth) \ + (tree[n].Freq < tree[m].Freq || \ + (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) + +/* =========================================================================== + * Restore the heap property by moving down the tree starting at node k, + * exchanging a node with the smallest of its two sons if necessary, stopping + * when the heap property is re-established (each father smaller than its + * two sons). + */ +local void pqdownheap(s, tree, k) + deflate_state *s; + ct_data *tree; /* the tree to restore */ + int k; /* node to move down */ +{ + int v = s->heap[k]; + int j = k << 1; /* left son of k */ + while (j <= s->heap_len) { + /* Set j to the smallest of the two sons: */ + if (j < s->heap_len && + smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { + j++; + } + /* Exit if v is smaller than both sons */ + if (smaller(tree, v, s->heap[j], s->depth)) break; + + /* Exchange v with the smallest son */ + s->heap[k] = s->heap[j]; k = j; + + /* And continue down the tree, setting j to the left son of k */ + j <<= 1; + } + s->heap[k] = v; +} + +/* =========================================================================== + * Compute the optimal bit lengths for a tree and update the total bit length + * for the current block. + * IN assertion: the fields freq and dad are set, heap[heap_max] and + * above are the tree nodes sorted by increasing frequency. + * OUT assertions: the field len is set to the optimal bit length, the + * array bl_count contains the frequencies for each bit length. + * The length opt_len is updated; static_len is also updated if stree is + * not null. + */ +local void gen_bitlen(s, desc) + deflate_state *s; + tree_desc *desc; /* the tree descriptor */ +{ + ct_data *tree = desc->dyn_tree; + int max_code = desc->max_code; + const ct_data *stree = desc->stat_desc->static_tree; + const intf *extra = desc->stat_desc->extra_bits; + int base = desc->stat_desc->extra_base; + int max_length = desc->stat_desc->max_length; + int h; /* heap index */ + int n, m; /* iterate over the tree elements */ + int bits; /* bit length */ + int xbits; /* extra bits */ + ush f; /* frequency */ + int overflow = 0; /* number of elements with bit length too large */ + + for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; + + /* In a first pass, compute the optimal bit lengths (which may + * overflow in the case of the bit length tree). + */ + tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ + + for (h = s->heap_max+1; h < HEAP_SIZE; h++) { + n = s->heap[h]; + bits = tree[tree[n].Dad].Len + 1; + if (bits > max_length) bits = max_length, overflow++; + tree[n].Len = (ush)bits; + /* We overwrite tree[n].Dad which is no longer needed */ + + if (n > max_code) continue; /* not a leaf node */ + + s->bl_count[bits]++; + xbits = 0; + if (n >= base) xbits = extra[n-base]; + f = tree[n].Freq; + s->opt_len += (ulg)f * (bits + xbits); + if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits); + } + if (overflow == 0) return; + + Trace((stderr,"\nbit length overflow\n")); + /* This happens for example on obj2 and pic of the Calgary corpus */ + + /* Find the first bit length which could increase: */ + do { + bits = max_length-1; + while (s->bl_count[bits] == 0) bits--; + s->bl_count[bits]--; /* move one leaf down the tree */ + s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ + s->bl_count[max_length]--; + /* The brother of the overflow item also moves one step up, + * but this does not affect bl_count[max_length] + */ + overflow -= 2; + } while (overflow > 0); + + /* Now recompute all bit lengths, scanning in increasing frequency. + * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all + * lengths instead of fixing only the wrong ones. This idea is taken + * from 'ar' written by Haruhiko Okumura.) + */ + for (bits = max_length; bits != 0; bits--) { + n = s->bl_count[bits]; + while (n != 0) { + m = s->heap[--h]; + if (m > max_code) continue; + if ((unsigned) tree[m].Len != (unsigned) bits) { + Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s->opt_len += ((long)bits - (long)tree[m].Len) + *(long)tree[m].Freq; + tree[m].Len = (ush)bits; + } + n--; + } + } +} + +/* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ +local void gen_codes (tree, max_code, bl_count) + ct_data *tree; /* the tree to decorate */ + int max_code; /* largest code with non zero frequency */ + ushf *bl_count; /* number of codes at each bit length */ +{ + ush next_code[MAX_BITS+1]; /* next code value for each bit length */ + ush code = 0; /* running code value */ + int bits; /* bit index */ + int n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = (code + bl_count[bits-1]) << 1; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; + const ct_data *stree = desc->stat_desc->static_tree; + int elems = desc->stat_desc->elems; + int n, m; /* iterate over heap elements */ + int max_code = -1; /* largest code with non zero frequency */ + int node; /* new node being created */ + + /* Construct the initial heap, with least frequent element in + * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. + * heap[0] is not used. + */ + s->heap_len = 0, s->heap_max = HEAP_SIZE; + + for (n = 0; n < elems; n++) { + if (tree[n].Freq != 0) { + s->heap[++(s->heap_len)] = max_code = n; + s->depth[n] = 0; + } else { + tree[n].Len = 0; + } + } + + /* The pkzip format requires that at least one distance code exists, + * and that at least one bit should be sent even if there is only one + * possible code. So to avoid special checks later on we force at least + * two codes of non zero frequency. + */ + while (s->heap_len < 2) { + node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); + tree[node].Freq = 1; + s->depth[node] = 0; + s->opt_len--; if (stree) s->static_len -= stree[node].Len; + /* node is 0 or 1 so it does not have extra bits */ + } + desc->max_code = max_code; + + /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, + * establish sub-heaps of increasing lengths: + */ + for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + node = elems; /* next internal node of the tree */ + do { + pqremove(s, tree, n); /* n = node of least frequency */ + m = s->heap[SMALLEST]; /* m = node of next least frequency */ + + s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ + s->heap[--(s->heap_max)] = m; + + /* Create a new node father of n and m */ + tree[node].Freq = tree[n].Freq + tree[m].Freq; + s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ? + s->depth[n] : s->depth[m]) + 1); + tree[n].Dad = tree[m].Dad = (ush)node; +#ifdef DUMP_BL_TREE + if (tree == s->bl_tree) { + fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", + node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); + } +#endif + /* and insert the new node in the heap */ + s->heap[SMALLEST] = node++; + pqdownheap(s, tree, SMALLEST); + + } while (s->heap_len >= 2); + + s->heap[--(s->heap_max)] = s->heap[SMALLEST]; + + /* At this point, the fields freq and dad are set. We can now + * generate the bit lengths. + */ + gen_bitlen(s, (tree_desc *)desc); + + /* The field len is now set, we can generate the bit codes */ + gen_codes ((ct_data *)tree, max_code, s->bl_count); +} + +/* =========================================================================== + * Scan a literal or distance tree to determine the frequencies of the codes + * in the bit length tree. + */ +local void scan_tree (s, tree, max_code) + deflate_state *s; + ct_data *tree; /* the tree to be scanned */ + int max_code; /* and its largest code of non zero frequency */ +{ + int n; /* iterates over all tree elements */ + int prevlen = -1; /* last emitted length */ + int curlen; /* length of current code */ + int nextlen = tree[0].Len; /* length of next code */ + int count = 0; /* repeat count of the current code */ + int max_count = 7; /* max repeat count */ + int min_count = 4; /* min repeat count */ + + if (nextlen == 0) max_count = 138, min_count = 3; + tree[max_code+1].Len = (ush)0xffff; /* guard */ + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; nextlen = tree[n+1].Len; + if (++count < max_count && curlen == nextlen) { + continue; + } else if (count < min_count) { + s->bl_tree[curlen].Freq += count; + } else if (curlen != 0) { + if (curlen != prevlen) s->bl_tree[curlen].Freq++; + s->bl_tree[REP_3_6].Freq++; + } else if (count <= 10) { + s->bl_tree[REPZ_3_10].Freq++; + } else { + s->bl_tree[REPZ_11_138].Freq++; + } + count = 0; prevlen = curlen; + if (nextlen == 0) { + max_count = 138, min_count = 3; + } else if (curlen == nextlen) { + max_count = 6, min_count = 3; + } else { + max_count = 7, min_count = 4; + } + } +} + +/* =========================================================================== + * Send a literal or distance tree in compressed form, using the codes in + * bl_tree. + */ +local void send_tree (s, tree, max_code) + deflate_state *s; + ct_data *tree; /* the tree to be scanned */ + int max_code; /* and its largest code of non zero frequency */ +{ + int n; /* iterates over all tree elements */ + int prevlen = -1; /* last emitted length */ + int curlen; /* length of current code */ + int nextlen = tree[0].Len; /* length of next code */ + int count = 0; /* repeat count of the current code */ + int max_count = 7; /* max repeat count */ + int min_count = 4; /* min repeat count */ + + /* tree[max_code+1].Len = -1; */ /* guard already set */ + if (nextlen == 0) max_count = 138, min_count = 3; + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; nextlen = tree[n+1].Len; + if (++count < max_count && curlen == nextlen) { + continue; + } else if (count < min_count) { + do { send_code(s, curlen, s->bl_tree); } while (--count != 0); + + } else if (curlen != 0) { + if (curlen != prevlen) { + send_code(s, curlen, s->bl_tree); count--; + } + Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); + + } else { + send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); + } + count = 0; prevlen = curlen; + if (nextlen == 0) { + max_count = 138, min_count = 3; + } else if (curlen == nextlen) { + max_count = 6, min_count = 3; + } else { + max_count = 7, min_count = 4; + } + } +} + +/* =========================================================================== + * Construct the Huffman tree for the bit lengths and return the index in + * bl_order of the last bit length code to send. + */ +local int build_bl_tree(s) + deflate_state *s; +{ + int max_blindex; /* index of last bit length code of non zero freq */ + + /* Determine the bit length frequencies for literal and distance trees */ + scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); + scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); + + /* Build the bit length tree: */ + build_tree(s, (tree_desc *)(&(s->bl_desc))); + /* opt_len now includes the length of the tree representations, except + * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. + */ + + /* Determine the number of bit length codes to send. The pkzip format + * requires that at least 4 bit length codes be sent. (appnote.txt says + * 3 but the actual value used is 4.) + */ + for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { + if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; + } + /* Update opt_len to include the bit length tree and counts */ + s->opt_len += 3*(max_blindex+1) + 5+5+4; + Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + s->opt_len, s->static_len)); + + return max_blindex; +} + +/* =========================================================================== + * Send the header for a block using dynamic Huffman trees: the counts, the + * lengths of the bit length codes, the literal tree and the distance tree. + * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. + */ +local void send_all_trees(s, lcodes, dcodes, blcodes) + deflate_state *s; + int lcodes, dcodes, blcodes; /* number of codes for each tree */ +{ + int rank; /* index in bl_order */ + + Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + "too many codes"); + Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ + send_bits(s, dcodes-1, 5); + send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ + for (rank = 0; rank < blcodes; rank++) { + Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); + } + Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ + Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ + Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); +} + +/* =========================================================================== + * Send a stored block + */ +void _tr_stored_block(s, buf, stored_len, eof) + deflate_state *s; + charf *buf; /* input block */ + ulg stored_len; /* length of input block */ + int eof; /* true if this is the last block for a file */ +{ + send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */ +#ifdef DEBUG + s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; + s->compressed_len += (stored_len + 4) << 3; +#endif + copy_block(s, buf, (unsigned)stored_len, 1); /* with header */ +} + +/* =========================================================================== + * Send one empty static block to give enough lookahead for inflate. + * This takes 10 bits, of which 7 may remain in the bit buffer. + * The current inflate code requires 9 bits of lookahead. If the + * last two codes for the previous block (real code plus EOB) were coded + * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode + * the last real code. In this case we send two empty static blocks instead + * of one. (There are no problems if the previous block is stored or fixed.) + * To simplify the code, we assume the worst case of last real code encoded + * on one bit only. + */ +void _tr_align(s) + deflate_state *s; +{ + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); +#ifdef DEBUG + s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ +#endif + bi_flush(s); + /* Of the 10 bits for the empty block, we have already sent + * (10 - bi_valid) bits. The lookahead for the last real code (before + * the EOB of the previous block) was thus at least one plus the length + * of the EOB plus what we have just sent of the empty static block. + */ + if (1 + s->last_eob_len + 10 - s->bi_valid < 9) { + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); +#ifdef DEBUG + s->compressed_len += 10L; +#endif + bi_flush(s); + } + s->last_eob_len = 7; +} + +/* =========================================================================== + * Determine the best encoding for the current block: dynamic trees, static + * trees or store, and output the encoded block to the zip file. + */ +void _tr_flush_block(s, buf, stored_len, eof) + deflate_state *s; + charf *buf; /* input block, or NULL if too old */ + ulg stored_len; /* length of input block */ + int eof; /* true if this is the last block for a file */ +{ + ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ + int max_blindex = 0; /* index of last bit length code of non zero freq */ + + /* Build the Huffman trees unless a stored block is forced */ + if (s->level > 0) { + + /* Check if the file is binary or text */ + if (stored_len > 0 && s->strm->data_type == Z_UNKNOWN) + set_data_type(s); + + /* Construct the literal and distance trees */ + build_tree(s, (tree_desc *)(&(s->l_desc))); + Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + s->static_len)); + + build_tree(s, (tree_desc *)(&(s->d_desc))); + Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + s->static_len)); + /* At this point, opt_len and static_len are the total bit lengths of + * the compressed block data, excluding the tree representations. + */ + + /* Build the bit length tree for the above two trees, and get the index + * in bl_order of the last bit length code to send. + */ + max_blindex = build_bl_tree(s); + + /* Determine the best encoding. Compute the block lengths in bytes. */ + opt_lenb = (s->opt_len+3+7)>>3; + static_lenb = (s->static_len+3+7)>>3; + + Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + s->last_lit)); + + if (static_lenb <= opt_lenb) opt_lenb = static_lenb; + + } else { + Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ + } + +#ifdef FORCE_STORED + if (buf != (char*)0) { /* force stored block */ +#else + if (stored_len+4 <= opt_lenb && buf != (char*)0) { + /* 4: two words for the lengths */ +#endif + /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. + * Otherwise we can't have processed more than WSIZE input bytes since + * the last block flush, because compression would have been + * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to + * transform a block into a stored block. + */ + _tr_stored_block(s, buf, stored_len, eof); + +#ifdef FORCE_STATIC + } else if (static_lenb >= 0) { /* force static trees */ +#else + } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) { +#endif + send_bits(s, (STATIC_TREES<<1)+eof, 3); + compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree); +#ifdef DEBUG + s->compressed_len += 3 + s->static_len; +#endif + } else { + send_bits(s, (DYN_TREES<<1)+eof, 3); + send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, + max_blindex+1); + compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree); +#ifdef DEBUG + s->compressed_len += 3 + s->opt_len; +#endif + } + Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + /* The above check is made mod 2^32, for files larger than 512 MB + * and uLong implemented on 32 bits. + */ + init_block(s); + + if (eof) { + bi_windup(s); +#ifdef DEBUG + s->compressed_len += 7; /* align on byte boundary */ +#endif + } + Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + s->compressed_len-7*eof)); +} + +/* =========================================================================== + * Save the match info and tally the frequency counts. Return true if + * the current block must be flushed. + */ +int _tr_tally (s, dist, lc) + deflate_state *s; + unsigned dist; /* distance of matched string */ + unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ +{ + s->d_buf[s->last_lit] = (ush)dist; + s->l_buf[s->last_lit++] = (uch)lc; + if (dist == 0) { + /* lc is the unmatched char */ + s->dyn_ltree[lc].Freq++; + } else { + s->matches++; + /* Here, lc is the match length - MIN_MATCH */ + dist--; /* dist = match distance - 1 */ + Assert((ush)dist < (ush)MAX_DIST(s) && + (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; + s->dyn_dtree[d_code(dist)].Freq++; + } + +#ifdef TRUNCATE_BLOCK + /* Try to guess if it is profitable to stop the current block here */ + if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { + /* Compute an upper bound for the compressed length */ + ulg out_length = (ulg)s->last_lit*8L; + ulg in_length = (ulg)((long)s->strstart - s->block_start); + int dcode; + for (dcode = 0; dcode < D_CODES; dcode++) { + out_length += (ulg)s->dyn_dtree[dcode].Freq * + (5L+extra_dbits[dcode]); + } + out_length >>= 3; + Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", + s->last_lit, in_length, out_length, + 100L - out_length*100L/in_length)); + if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; + } +#endif + return (s->last_lit == s->lit_bufsize-1); + /* We avoid equality with lit_bufsize because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ +} + +/* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ +local void compress_block(s, ltree, dtree) + deflate_state *s; + ct_data *ltree; /* literal tree */ + ct_data *dtree; /* distance tree */ +{ + unsigned dist; /* distance of matched string */ + int lc; /* match length or unmatched char (if dist == 0) */ + unsigned lx = 0; /* running index in l_buf */ + unsigned code; /* the code to send */ + int extra; /* number of extra bits to send */ + + if (s->last_lit != 0) do { + dist = s->d_buf[lx]; + lc = s->l_buf[lx++]; + if (dist == 0) { + send_code(s, lc, ltree); /* send a literal byte */ + Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code+LITERALS+1, ltree); /* send the length code */ + extra = extra_lbits[code]; + if (extra != 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra != 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ + Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, + "pendingBuf overflow"); + + } while (lx < s->last_lit); + + send_code(s, END_BLOCK, ltree); + s->last_eob_len = ltree[END_BLOCK].Len; +} + +/* =========================================================================== + * Set the data type to BINARY or TEXT, using a crude approximation: + * set it to Z_TEXT if all symbols are either printable characters (33 to 255) + * or white spaces (9 to 13, or 32); or set it to Z_BINARY otherwise. + * IN assertion: the fields Freq of dyn_ltree are set. + */ +local void set_data_type(s) + deflate_state *s; +{ + int n; + + for (n = 0; n < 9; n++) + if (s->dyn_ltree[n].Freq != 0) + break; + if (n == 9) + for (n = 14; n < 32; n++) + if (s->dyn_ltree[n].Freq != 0) + break; + s->strm->data_type = (n == 32) ? Z_TEXT : Z_BINARY; +} + +/* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ +local unsigned bi_reverse(code, len) + unsigned code; /* the value to invert */ + int len; /* its bit length */ +{ + unsigned res = 0; + do { + res |= code & 1; + code >>= 1, res <<= 1; + } while (--len > 0); + return res >> 1; +} + +/* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ +local void bi_flush(s) + deflate_state *s; +{ + if (s->bi_valid == 16) { + put_short(s, s->bi_buf); + s->bi_buf = 0; + s->bi_valid = 0; + } else if (s->bi_valid >= 8) { + put_byte(s, (Byte)s->bi_buf); + s->bi_buf >>= 8; + s->bi_valid -= 8; + } +} + +/* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ +local void bi_windup(s) + deflate_state *s; +{ + if (s->bi_valid > 8) { + put_short(s, s->bi_buf); + } else if (s->bi_valid > 0) { + put_byte(s, (Byte)s->bi_buf); + } + s->bi_buf = 0; + s->bi_valid = 0; +#ifdef DEBUG + s->bits_sent = (s->bits_sent+7) & ~7; +#endif +} + +/* =========================================================================== + * Copy a stored block, storing first the length and its + * one's complement if requested. + */ +local void copy_block(s, buf, len, header) + deflate_state *s; + charf *buf; /* the input data */ + unsigned len; /* its length */ + int header; /* true if block header must be written */ +{ + bi_windup(s); /* align on byte boundary */ + s->last_eob_len = 8; /* enough lookahead for inflate */ + + if (header) { + put_short(s, (ush)len); + put_short(s, (ush)~len); +#ifdef DEBUG + s->bits_sent += 2*16; +#endif + } +#ifdef DEBUG + s->bits_sent += (ulg)len<<3; +#endif + while (len--) { + put_byte(s, *buf++); + } +} diff --git a/mysql/zlib/trees.h b/mysql/zlib/trees.h new file mode 100644 index 0000000..72facf9 --- /dev/null +++ b/mysql/zlib/trees.h @@ -0,0 +1,128 @@ +/* header created automatically with -DGEN_TREES_H */ + +local const ct_data static_ltree[L_CODES+2] = { +{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, +{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, +{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, +{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, +{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, +{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, +{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, +{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, +{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, +{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, +{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, +{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, +{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, +{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, +{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, +{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, +{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, +{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, +{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, +{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, +{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, +{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, +{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, +{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, +{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, +{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, +{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, +{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, +{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, +{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, +{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, +{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, +{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, +{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, +{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, +{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, +{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, +{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, +{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, +{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, +{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, +{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, +{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, +{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, +{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, +{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, +{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, +{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, +{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, +{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, +{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, +{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, +{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, +{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, +{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, +{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, +{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, +{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} +}; + +local const ct_data static_dtree[D_CODES] = { +{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, +{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, +{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, +{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, +{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, +{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} +}; + +const uch _dist_code[DIST_CODE_LEN] = { + 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, +10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, +11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, +12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, +18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 +}; + +const uch _length_code[MAX_MATCH-MIN_MATCH+1]= { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, +13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, +17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, +19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, +21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, +22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 +}; + +local const int base_length[LENGTH_CODES] = { +0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, +64, 80, 96, 112, 128, 160, 192, 224, 0 +}; + +local const int base_dist[D_CODES] = { + 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, + 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, + 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 +}; + diff --git a/mysql/zlib/uncompr.c b/mysql/zlib/uncompr.c new file mode 100644 index 0000000..b59e3d0 --- /dev/null +++ b/mysql/zlib/uncompr.c @@ -0,0 +1,61 @@ +/* uncompr.c -- decompress a memory buffer + * Copyright (C) 1995-2003 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#define ZLIB_INTERNAL +#include "zlib.h" + +/* =========================================================================== + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted. +*/ +int ZEXPORT uncompress (dest, destLen, source, sourceLen) + Bytef *dest; + uLongf *destLen; + const Bytef *source; + uLong sourceLen; +{ + z_stream stream; + int err; + + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; + + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + + err = inflateInit(&stream); + if (err != Z_OK) return err; + + err = inflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + inflateEnd(&stream); + if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) + return Z_DATA_ERROR; + return err; + } + *destLen = stream.total_out; + + err = inflateEnd(&stream); + return err; +} diff --git a/mysql/zlib/zconf.h b/mysql/zlib/zconf.h new file mode 100644 index 0000000..7dbeb3b --- /dev/null +++ b/mysql/zlib/zconf.h @@ -0,0 +1,328 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#ifndef ZCONF_H +#define ZCONF_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + */ +#ifdef Z_PREFIX +# define deflateInit_ z_deflateInit_ +# define deflate z_deflate +# define deflateEnd z_deflateEnd +# define inflateInit_ z_inflateInit_ +# define inflate z_inflate +# define inflateEnd z_inflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateSetDictionary z_deflateSetDictionary +# define deflateCopy z_deflateCopy +# define deflateReset z_deflateReset +# define deflateParams z_deflateParams +# define deflateBound z_deflateBound +# define deflatePrime z_deflatePrime +# define inflateInit2_ z_inflateInit2_ +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateCopy z_inflateCopy +# define inflateReset z_inflateReset +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define uncompress z_uncompress +# define adler32 z_adler32 +# define crc32 z_crc32 +# define get_crc_table z_get_crc_table +# define zError z_zError + +# define alloc_func z_alloc_func +# define free_func z_free_func +# define in_func z_in_func +# define out_func z_out_func +# define Byte z_Byte +# define uInt z_uInt +# define uLong z_uLong +# define Bytef z_Bytef +# define charf z_charf +# define intf z_intf +# define uIntf z_uIntf +# define uLongf z_uLongf +# define voidpf z_voidpf +# define voidp z_voidp +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && defined(OS2) +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#ifdef HAVE_UNISTD_H +# include /* for off_t */ +# include /* for SEEK_* and off_t */ +# ifdef VMS +# include /* for off_t */ +# endif +# define z_off_t off_t +#endif +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif +#ifndef z_off_t +# define z_off_t long +#endif + +#if defined(__MVS__) +# define NO_vsnprintf +# ifdef FAR +# undef FAR +# endif +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) +# pragma map(deflateInit_,"DEIN") +# pragma map(deflateInit2_,"DEIN2") +# pragma map(deflateEnd,"DEEND") +# pragma map(deflateBound,"DEBND") +# pragma map(inflateInit_,"ININ") +# pragma map(inflateInit2_,"ININ2") +# pragma map(inflateEnd,"INEND") +# pragma map(inflateSync,"INSY") +# pragma map(inflateSetDictionary,"INSEDI") +# pragma map(compressBound,"CMBND") +# pragma map(inflate_table,"INTABL") +# pragma map(inflate_fast,"INFA") +# pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/mysql/zlib/zlib.h b/mysql/zlib/zlib.h new file mode 100644 index 0000000..0228179 --- /dev/null +++ b/mysql/zlib/zlib.h @@ -0,0 +1,1357 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.3, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.3" +#define ZLIB_VERNUM 0x1230 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms will be added later and will have the same + stream interface. + + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never + crash even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative + * values are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + This check is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. + If zalloc and zfree are set to Z_NULL, deflateInit updates them to + use default allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at + all (the input data is simply copied a block at a time). + Z_DEFAULT_COMPRESSION requests a default compromise between speed and + compression (currently equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if level is not a valid compression level, + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). + msg is set to null if there is no error message. deflateInit does not + perform any compression: this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce some + output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). + Some output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating avail_in or avail_out accordingly; avail_out + should never be zero before the call. The application can consume the + compressed output when it wants, for example when the output buffer is full + (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK + and with zero avail_out, it must be called again after making room in the + output buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumualte before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In particular + avail_in is zero after the call if enough output space has been provided + before the call.) Flushing may degrade compression for some compression + algorithms and so it should be used only when necessary. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there + was enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the + stream are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least + the value returned by deflateBound (see below). If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect + the compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, + msg may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the exact + value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller. msg is set to null if there is no error + message. inflateInit does not perform any decompression apart from reading + the zlib header if present: this will be done by inflate(). (So next_in and + avail_in may be modified, but next_out and avail_out are unchanged.) +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there + is no more input data or no more space in the output buffer (see below + about the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). If inflate returns Z_OK and with zero avail_out, it + must be called again after making room in the output buffer because there + might be more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, + Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() stop + if and when it gets to the next deflate block boundary. When decoding the + zlib or gzip format, this will cause inflate() to return immediately after + the header and before the first block. When doing a raw inflate, inflate() + will go ahead and process the first block, and will return when it gets to + the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 + if inflate() is currently decoding the last block in the deflate stream, + plus 128 if inflate() returned immediately after decoding an end-of-block + code or decoding the complete header up to just before the first byte of the + deflate stream. The end-of-block will not be indicated until all of the + uncompressed data from that block has been written to strm->next_out. The + number of unused bits may in general be greater than seven, except when + bit 7 of data_type is set, in which case the number of unused bits will be + less than eight. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster approach + may be used for the single inflate() call. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the only effect of the flush parameter in this implementation + is on the return value of inflate(), as noted below, or when it returns early + because Z_BLOCK is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the adler32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the adler32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() will decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically. Any information + contained in the gzip header is not retained, so applications that need that + information should instead use raw inflate, see inflateInit2() below, or + inflateBack() and perform their own processing of the gzip header and + trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may then + call inflateSync() to look for a good compression block if a partial recovery + of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by + the caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), + no header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but + is slow and reduces compression ratio; memLevel=9 uses maximum memory + for optimal speed. The default value is 8. See zconf.h for total memory + usage as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as + Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy + parameter only affects the compression ratio but not the correctness of the + compressed output even if it is not set appropriately. Z_FIXED prevents the + use of dynamic Huffman codes, allowing for a simpler decoder for special + applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid + method). msg is set to null if there is no error message. deflateInit2 does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any + call of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size in + deflate or deflate2. Thus the strings most likely to be useful should be + put at the end of the dictionary, not at the front. In addition, the + current implementation of deflate will use at most the window size minus + 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and + can consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. + The stream will keep the same compression level and any other attributes + that may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different + strategy. If the compression level is changed, the input available so far + is compressed with the old level (and may be flushed); the new level will + take effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to + be compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR + if strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() + or deflateInit2(). This would be used to allocate an output buffer + for deflation in a single pass, and so would be called before deflate(). +*/ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the + bits leftover from a previous deflate stream when appending to it. As such, + this function can only be used for raw deflate, and must be used before the + first deflate() call after a deflateInit2() or deflateReset(). bits must be + less than or equal to 16, and that many of the least significant bits of + value will be inserted in the output. + + deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is + a crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg + is set to null if there is no error message. inflateInit2 does not perform + any decompression apart from reading the zlib header if present: this will + be done by inflate(). (So next_in and avail_in may be modified, but next_out + and avail_out are unchanged.) +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called + immediately after inflateInit2() or inflateReset() and before any call of + inflate() to set the dictionary. The application must insure that the + dictionary that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK can be used to + force inflate() to return immediately after header processing is complete + and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When + any of extra, name, or comment are not Z_NULL and the respective field is + not present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the paramaters are invalid, Z_MEM_ERROR if the internal state could not + be allocated, or Z_VERSION_ERROR if the version of the library does not + match the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free + the allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects + only the raw deflate stream to decompress. This is different from the + normal behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format + error in the deflate stream (in which case strm->msg is set to indicate the + nature of the error), or Z_STREAM_ERROR if the stream was not properly + initialized. In the case of Z_BUF_ERROR, an input or output error can be + distinguished using strm->next_in which will be Z_NULL only if in() returned + an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to + out() returning non-zero. (in() will always be called before out(), so + strm->next_in is assured to be defined if out() returns non-zero.) Note + that inflateBack() cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the + basic stream-oriented functions. To simplify the interface, some + default options are assumed (compression level and memory usage, + standard memory allocation functions). The source code of these + utility functions can easily be modified if you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be at least the value returned + by compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + This function can be used to compress a whole file at once if the + input file is mmap'ed. + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before + a compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. +*/ + + +typedef voidp gzFile; + +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +/* + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb") but can also include a compression level + ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for + Huffman only compression as in "wb1h", or 'R' for run-length encoding + as in "wb1R". (See the description of deflateInit2 for more information + about the strategy parameter.) + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). */ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen() associates a gzFile with the file descriptor fd. File + descriptors are obtained from calls like open, dup, creat, pipe or + fileno (in the file has been previously opened with fopen). + The mode parameter is as in gzopen. + The next call of gzclose on the returned gzFile will also close the + file descriptor fd, just like fclose(fdopen(fd), mode) closes the file + descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). + gzdopen returns NULL if there was insufficient memory to allocate + the (de)compression state. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. + If the input file was not in gzip format, gzread copies the given number + of bytes into the buffer. + gzread returns the number of uncompressed bytes actually read (0 for + end of file, -1 for error). */ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes actually written + (0 in case of error). +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). The number of + uncompressed bytes written is limited to 4095. The caller should assure that + this limit is not exceeded. If it is exceeded, then gzprintf() will return + return an error (0) with nothing written. In this case, there may also be a + buffer overflow with unpredictable consequences, which is possible only if + zlib was compiled with the insecure functions sprintf() or vsprintf() + because the secure snprintf() or vsnprintf() functions were not available. +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or + a newline character is read and transferred to buf, or an end-of-file + condition is encountered. The string is then terminated with a null + character. + gzgets returns buf, or Z_NULL in case of error. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read again later. + Only one character of push-back is allowed. gzungetc() returns the + character pushed, or -1 on failure. gzungetc() will fail if a + character has been pushed but not read yet, or if c is -1. The pushed + character will be discarded if the stream is repositioned with gzseek() + or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. The return value is the zlib + error number (see function gzerror below). gzflush returns Z_OK if + the flush parameter is Z_FINISH and all output could be flushed. + gzflush should be called only when strictly necessary because it can + degrade compression. +*/ + +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); +/* + Sets the starting position for the next gzread or gzwrite on the + given compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +/* + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns 1 if file is being read directly without decompression, otherwise + zero. +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. The return value is the zlib + error number (see function gzerror below). +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the + compression library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); +/* + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is NULL, this function returns the required initial + value for the for the crc. Pre- and post-conditioning (one's complement) is + performed within this function so it shouldn't be done by the application. + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + +/* + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, sizeof(z_stream)) + + +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/mysql/zlib/zutil.c b/mysql/zlib/zutil.c new file mode 100644 index 0000000..fc88609 --- /dev/null +++ b/mysql/zlib/zutil.c @@ -0,0 +1,281 @@ +/* zutil.c -- target dependent utility functions for the compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#include "zutil.h" + +#ifndef NO_DUMMY_DECL +struct internal_state {int dummy;}; /* for buggy compilers */ +#endif + +const char * const z_errmsg[10] = { +"need dictionary", /* Z_NEED_DICT 2 */ +"stream end", /* Z_STREAM_END 1 */ +"", /* Z_OK 0 */ +"file error", /* Z_ERRNO (-1) */ +"stream error", /* Z_STREAM_ERROR (-2) */ +"data error", /* Z_DATA_ERROR (-3) */ +"insufficient memory", /* Z_MEM_ERROR (-4) */ +"buffer error", /* Z_BUF_ERROR (-5) */ +"incompatible version",/* Z_VERSION_ERROR (-6) */ +""}; + + +const char * ZEXPORT zlibVersion() +{ + return ZLIB_VERSION; +} + +uLong ZEXPORT zlibCompileFlags() +{ + uLong flags; + + flags = 0; + switch (sizeof(uInt)) { + case 2: break; + case 4: flags += 1; break; + case 8: flags += 2; break; + default: flags += 3; + } + switch (sizeof(uLong)) { + case 2: break; + case 4: flags += 1 << 2; break; + case 8: flags += 2 << 2; break; + default: flags += 3 << 2; + } + switch (sizeof(voidpf)) { + case 2: break; + case 4: flags += 1 << 4; break; + case 8: flags += 2 << 4; break; + default: flags += 3 << 4; + } + switch (sizeof(z_off_t)) { + case 2: break; + case 4: flags += 1 << 6; break; + case 8: flags += 2 << 6; break; + default: flags += 3 << 6; + } +#ifdef DEBUG + flags += 1 << 8; +#endif +#if defined(ASMV) || defined(ASMINF) + flags += 1 << 9; +#endif +#ifdef ZLIB_WINAPI + flags += 1 << 10; +#endif +#ifdef BUILDFIXED + flags += 1 << 12; +#endif +#ifdef DYNAMIC_CRC_TABLE + flags += 1 << 13; +#endif +#ifdef NO_GZCOMPRESS + flags += 1L << 16; +#endif +#ifdef NO_GZIP + flags += 1L << 17; +#endif +#ifdef PKZIP_BUG_WORKAROUND + flags += 1L << 20; +#endif +#ifdef FASTEST + flags += 1L << 21; +#endif +#ifdef STDC +# ifdef NO_vsnprintf + flags += 1L << 25; +# ifdef HAS_vsprintf_void + flags += 1L << 26; +# endif +# else +# ifdef HAS_vsnprintf_void + flags += 1L << 26; +# endif +# endif +#else + flags += 1L << 24; +# ifdef NO_snprintf + flags += 1L << 25; +# ifdef HAS_sprintf_void + flags += 1L << 26; +# endif +# else +# ifdef HAS_snprintf_void + flags += 1L << 26; +# endif +# endif +#endif + return flags; +} + +#ifdef DEBUG + +# ifndef verbose +# define verbose 0 +# endif +int z_verbose = verbose; + +void z_error (m) + char *m; +{ + fprintf(stderr, "%s\n", m); + exit(1); +} +#endif + +/* exported to allow conversion of error code to string for compress() and + * uncompress() + */ +const char * ZEXPORT zError(err) + int err; +{ + return ERR_MSG(err); +} + +#if defined(_WIN32_WCE) + /* The Microsoft C Run-Time Library for Windows CE doesn't have + * errno. We define it as a global variable to simplify porting. + * Its value is always 0 and should not be used. + */ + int errno = 0; +#endif + + +#ifdef SYS16BIT + +#ifdef __TURBOC__ +/* Turbo C in 16-bit mode */ + +# define MY_ZCALLOC + +/* Turbo C malloc() does not allow dynamic allocation of 64K bytes + * and farmalloc(64K) returns a pointer with an offset of 8, so we + * must fix the pointer. Warning: the pointer must be put back to its + * original form in order to free it, use zcfree(). + */ + +#define MAX_PTR 10 +/* 10*64K = 640K */ + +local int next_ptr = 0; + +typedef struct ptr_table_s { + voidpf org_ptr; + voidpf new_ptr; +} ptr_table; + +local ptr_table table[MAX_PTR]; +/* This table is used to remember the original form of pointers + * to large buffers (64K). Such pointers are normalized with a zero offset. + * Since MSDOS is not a preemptive multitasking OS, this table is not + * protected from concurrent access. This hack doesn't work anyway on + * a protected system like OS/2. Use Microsoft C instead. + */ + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +{ + voidpf buf = opaque; /* just to make some compilers happy */ + ulg bsize = (ulg)items*size; + + /* If we allocate less than 65520 bytes, we assume that farmalloc + * will return a usable pointer which doesn't have to be normalized. + */ + if (bsize < 65520L) { + buf = farmalloc(bsize); + if (*(ush*)&buf != 0) return buf; + } else { + buf = farmalloc(bsize + 16L); + } + if (buf == NULL || next_ptr >= MAX_PTR) return NULL; + table[next_ptr].org_ptr = buf; + + /* Normalize the pointer to seg:0 */ + *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; + *(ush*)&buf = 0; + table[next_ptr++].new_ptr = buf; + return buf; +} + +void zcfree (voidpf opaque, voidpf ptr) +{ + int n; + if (*(ush*)&ptr != 0) { /* object < 64K */ + farfree(ptr); + return; + } + /* Find the original pointer */ + for (n = 0; n < next_ptr; n++) { + if (ptr != table[n].new_ptr) continue; + + farfree(table[n].org_ptr); + while (++n < next_ptr) { + table[n-1] = table[n]; + } + next_ptr--; + return; + } + ptr = opaque; /* just to make some compilers happy */ + Assert(0, "zcfree: ptr not found"); +} + +#endif /* __TURBOC__ */ + + +#ifdef M_I86 +/* Microsoft C in 16-bit mode */ + +# define MY_ZCALLOC + +#if (!defined(_MSC_VER) || (_MSC_VER <= 600)) +# define _halloc halloc +# define _hfree hfree +#endif + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +{ + if (opaque) opaque = 0; /* to make compiler happy */ + return _halloc((long)items, size); +} + +void zcfree (voidpf opaque, voidpf ptr) +{ + if (opaque) opaque = 0; /* to make compiler happy */ + _hfree(ptr); +} + +#endif /* M_I86 */ + +#endif /* SYS16BIT */ + + +#ifndef MY_ZCALLOC /* Any system without a special alloc function */ + +#ifndef STDC +extern voidp malloc OF((uInt size)); +extern voidp calloc OF((uInt items, uInt size)); +extern void free OF((voidpf ptr)); +#endif + +voidpf zcalloc (opaque, items, size) + voidpf opaque; + unsigned items; + unsigned size; +{ + if (opaque) items += size - size; /* make compiler happy */ + return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : + (voidpf)calloc(items, size); +} + +void zcfree (opaque, ptr) + voidpf opaque; + voidpf ptr; +{ + free(ptr); + if (opaque) return; /* make compiler happy */ +} + +#endif /* MY_ZCALLOC */ diff --git a/mysql/zlib/zutil.h b/mysql/zlib/zutil.h new file mode 100644 index 0000000..8b4842a --- /dev/null +++ b/mysql/zlib/zutil.h @@ -0,0 +1,199 @@ +/* zutil.h -- internal interface and configuration of the compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id$ */ + +#ifndef ZUTIL_H +#define ZUTIL_H + +#define ZLIB_INTERNAL +#include "zlib.h" + +#ifdef STDC +# ifndef _WIN32_WCE +# include +# endif +# include +# include +#endif +#ifdef NO_ERRNO_H +# ifdef _WIN32_WCE + /* The Microsoft C Run-Time Library for Windows CE doesn't have + * errno. We define it as a global variable to simplify porting. + * Its value is always 0 and should not be used. We rename it to + * avoid conflict with other libraries that use the same workaround. + */ +# define errno z_errno +# endif + extern int errno; +#else +# ifndef _WIN32_WCE +# include +# endif +#endif + +#ifndef local +# define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + +typedef unsigned char uch; +typedef uch FAR uchf; +typedef unsigned short ush; +typedef ush FAR ushf; +typedef unsigned long ulg; + +extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ +/* (size given to avoid silly warnings with Visual C++) */ + +#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] + +#define ERR_RETURN(strm,err) \ + return (strm->msg = (char*)ERR_MSG(err), (err)) +/* To be used only when the state is known to be valid */ + + /* common constants */ + +#ifndef DEF_WBITS +# define DEF_WBITS MAX_WBITS +#endif +/* default windowBits for decompression. MAX_WBITS is for compression only */ + +#if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +#else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +#endif +/* default memLevel */ + +#define STORED_BLOCK 0 +#define STATIC_TREES 1 +#define DYN_TREES 2 +/* The three kinds of block type */ + +#define MIN_MATCH 3 +#define MAX_MATCH 258 +/* The minimum and maximum match lengths */ + +#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ + + /* target dependencies */ + +#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) +# define OS_CODE 0x00 +# if defined(__TURBOC__) || defined(__BORLANDC__) +# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) + /* Allow compilation with ANSI keywords only enabled */ + void _Cdecl farfree( void *block ); + void *_Cdecl farmalloc( unsigned long nbytes ); +# else +# include +# endif +# else /* MSC or DJGPP */ +# include +# endif +#endif + +#ifdef AMIGA +# define OS_CODE 0x01 +#endif + +#if defined(VAXC) || defined(VMS) +# define OS_CODE 0x02 +# define F_OPEN(name, mode) \ + fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") +#endif + +#if defined(ATARI) || defined(atarist) +# define OS_CODE 0x05 +#endif + +#ifdef OS2 +# define OS_CODE 0x06 +# ifdef M_I86 + #include +# endif +#endif + +#if defined(MACOS) || defined(TARGET_OS_MAC) +# define OS_CODE 0x07 +# ifndef fdopen +# define fdopen(fd,mode) NULL /* No fdopen() */ +# endif +#endif + +#ifdef TOPS20 +# define OS_CODE 0x0a +#endif + +#ifdef WIN32 +# define OS_CODE 0x0b +#endif + +#ifdef __50SERIES /* Prime/PRIMOS */ +# define OS_CODE 0x0f +#endif + +#if defined(_BEOS_) || defined(RISCOS) +# define fdopen(fd,mode) NULL /* No fdopen() */ +#endif + + /* common defaults */ + +#ifndef OS_CODE +# define OS_CODE 0x03 /* assume Unix */ +#endif + +#ifndef F_OPEN +# define F_OPEN(name, mode) fopen((name), (mode)) +#endif + + /* functions */ + +# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ +# define zmemcpy _fmemcpy +# define zmemcmp _fmemcmp +# define zmemzero(dest, len) _fmemset(dest, 0, len) +# else +# define zmemcpy memcpy +# define zmemcmp memcmp +# define zmemzero(dest, len) memset(dest, 0, len) +# endif + +/* Diagnostic functions */ +#ifdef DEBUG +# include + extern int z_verbose; + extern void z_error OF((char *m)); +# define Assert(cond,msg) {if(!(cond)) z_error(msg);} +# define Trace(x) {if (z_verbose>=0) fprintf x ;} +# define Tracev(x) {if (z_verbose>0) fprintf x ;} +# define Tracevv(x) {if (z_verbose>1) fprintf x ;} +# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} +# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} +#else +# define Assert(cond,msg) +# define Trace(x) +# define Tracev(x) +# define Tracevv(x) +# define Tracec(c,x) +# define Tracecv(c,x) +#endif + + +voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); +void zcfree OF((voidpf opaque, voidpf ptr)); + +#define ZALLOC(strm, items, size) \ + (*((strm)->zalloc))((strm)->opaque, (items), (size)) +#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) +#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} + +#endif /* ZUTIL_H */ diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..2e508a9 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,3 @@ +driver +test/ +test-*/ diff --git a/tests/basic/buildfile b/tests/basic/buildfile new file mode 100644 index 0000000..4c93d2e --- /dev/null +++ b/tests/basic/buildfile @@ -0,0 +1,7 @@ +# file : tests/basic/buildfile +# copyright : Copyright (c) 2009-2017 Code Synthesis Tools CC +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +import libs = libmysqlclient%lib{mysqlclient} + +exe{driver}: {h c}{*} $libs test{testscript} diff --git a/tests/basic/driver.c b/tests/basic/driver.c new file mode 100644 index 0000000..267f206 --- /dev/null +++ b/tests/basic/driver.c @@ -0,0 +1,23 @@ +/* + * file : tests/basic/driver.c + * copyright : Copyright (c) 2009-2017 Code Synthesis Tools CC + * license : GPLv2 with FOSS License Exception; see accompanying COPYING file + */ + +#include + +#include + +int +main () +{ + if (mysql_library_init (0, NULL, NULL)) + { + fprintf (stderr, "failed to initialize\n"); + return 1; + } + + printf ("libmysqlclient version: %s\n", mysql_get_client_info ()); + mysql_library_end (); + return 0; +} diff --git a/tests/basic/testscript b/tests/basic/testscript new file mode 100644 index 0000000..0d4c9da --- /dev/null +++ b/tests/basic/testscript @@ -0,0 +1,5 @@ +# file : tests/basic/testscript +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +$* >~'/libmysqlclient version: \d+\.\d+\.\d+(-.+)?/' diff --git a/tests/build/.gitignore b/tests/build/.gitignore new file mode 100644 index 0000000..225c27f --- /dev/null +++ b/tests/build/.gitignore @@ -0,0 +1 @@ +config.build diff --git a/tests/build/bootstrap.build b/tests/build/bootstrap.build new file mode 100644 index 0000000..d0577fd --- /dev/null +++ b/tests/build/bootstrap.build @@ -0,0 +1,9 @@ +# file : tests/build/bootstrap.build +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +project = # Unnamed subproject. + +using config +using dist +using test diff --git a/tests/build/root.build b/tests/build/root.build new file mode 100644 index 0000000..c008810 --- /dev/null +++ b/tests/build/root.build @@ -0,0 +1,21 @@ +# file : tests/build/root.build +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +# It would be good to make sure that libmysqlclient headers comply with an +# oldest C standard, but that's not the case (C++-style comments are used). +# +c.std = 99 + +using c + +h{*}: extension = h +c{*}: extension = c + +# Every exe{} in this subproject is by default a test. +# +exe{*}: test = true + +# Specify the test target for cross-testing. +# +test.target = $c.target diff --git a/tests/buildfile b/tests/buildfile new file mode 100644 index 0000000..d6154dd --- /dev/null +++ b/tests/buildfile @@ -0,0 +1,5 @@ +# file : tests/buildfile +# copyright : Copyright (c) 2016-2017 Code Synthesis Ltd +# license : GPLv2 with FOSS License Exception; see accompanying COPYING file + +./: {*/ -build/} -- cgit v1.1